diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index b627c1474..f5d33af51 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -59,6 +59,12 @@ jobs: just semver-lock-no-build git diff --exit-code snapshots/semver-lock.json + - name: Install Rust + uses: dtolnay/rust-toolchain@stable + + - name: Check Rust bindings + run: just bindings-check + - name: Run Forge tests run: just test id: test diff --git a/.gitignore b/.gitignore index afbd7e903..89badc510 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,9 @@ # Artifacts and Cache artifacts +!bindings/rust/artifacts/ forge-artifacts +target +Cargo.lock cache broadcast kout-proofs diff --git a/Makefile b/Makefile index 9fdfbdbe9..12ac31ba4 100644 --- a/Makefile +++ b/Makefile @@ -38,12 +38,3 @@ test: .PHONY: clean-lib clean-lib: rm -rf lib - -.PHONY: bindings -bindings: - go install github.com/ethereum/go-ethereum/cmd/abigen@v1.15.8 - forge build - mkdir -p bindings - abigen --abi out/BalanceTracker.sol/BalanceTracker.abi.json --pkg bindings --type BalanceTracker --out bindings/balance_tracker.go - abigen --abi out/FeeDisburser.sol/FeeDisburser.abi.json --pkg bindings --type FeeDisburser --out bindings/fee_disburser.go - cd bindings && go mod tidy diff --git a/bindings/balance_tracker.go b/bindings/balance_tracker.go deleted file mode 100644 index 951d45e6b..000000000 --- a/bindings/balance_tracker.go +++ /dev/null @@ -1,956 +0,0 @@ -// Code generated - DO NOT EDIT. -// This file is a generated binding and any manual changes will be lost. - -package bindings - -import ( - "errors" - "math/big" - "strings" - - ethereum "github.com/ethereum/go-ethereum" - "github.com/ethereum/go-ethereum/accounts/abi" - "github.com/ethereum/go-ethereum/accounts/abi/bind" - "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/core/types" - "github.com/ethereum/go-ethereum/event" -) - -// Reference imports to suppress errors if they are not otherwise used. -var ( - _ = errors.New - _ = big.NewInt - _ = strings.NewReader - _ = ethereum.NotFound - _ = bind.Bind - _ = common.Big1 - _ = types.BloomLookup - _ = event.NewSubscription - _ = abi.ConvertType -) - -// BalanceTrackerMetaData contains all meta data concerning the BalanceTracker contract. -var BalanceTrackerMetaData = &bind.MetaData{ - ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"_profitWallet\",\"type\":\"address\",\"internalType\":\"addresspayable\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"receive\",\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"MAX_SYSTEM_ADDRESS_COUNT\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"PROFIT_WALLET\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"addresspayable\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"initialize\",\"inputs\":[{\"name\":\"_systemAddresses\",\"type\":\"address[]\",\"internalType\":\"addresspayable[]\"},{\"name\":\"_targetBalances\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"processFees\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"systemAddresses\",\"inputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"addresspayable\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"targetBalances\",\"inputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"event\",\"name\":\"Initialized\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"uint8\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ProcessedFunds\",\"inputs\":[{\"name\":\"_systemAddress\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"_success\",\"type\":\"bool\",\"indexed\":true,\"internalType\":\"bool\"},{\"name\":\"_balanceNeeded\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"_balanceSent\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ReceivedFunds\",\"inputs\":[{\"name\":\"_sender\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"_amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"SentProfit\",\"inputs\":[{\"name\":\"_profitWallet\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"_success\",\"type\":\"bool\",\"indexed\":true,\"internalType\":\"bool\"},{\"name\":\"_balanceSent\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false}]", -} - -// BalanceTrackerABI is the input ABI used to generate the binding from. -// Deprecated: Use BalanceTrackerMetaData.ABI instead. -var BalanceTrackerABI = BalanceTrackerMetaData.ABI - -// BalanceTracker is an auto generated Go binding around an Ethereum contract. -type BalanceTracker struct { - BalanceTrackerCaller // Read-only binding to the contract - BalanceTrackerTransactor // Write-only binding to the contract - BalanceTrackerFilterer // Log filterer for contract events -} - -// BalanceTrackerCaller is an auto generated read-only Go binding around an Ethereum contract. -type BalanceTrackerCaller struct { - contract *bind.BoundContract // Generic contract wrapper for the low level calls -} - -// BalanceTrackerTransactor is an auto generated write-only Go binding around an Ethereum contract. -type BalanceTrackerTransactor struct { - contract *bind.BoundContract // Generic contract wrapper for the low level calls -} - -// BalanceTrackerFilterer is an auto generated log filtering Go binding around an Ethereum contract events. -type BalanceTrackerFilterer struct { - contract *bind.BoundContract // Generic contract wrapper for the low level calls -} - -// BalanceTrackerSession is an auto generated Go binding around an Ethereum contract, -// with pre-set call and transact options. -type BalanceTrackerSession struct { - Contract *BalanceTracker // Generic contract binding to set the session for - CallOpts bind.CallOpts // Call options to use throughout this session - TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session -} - -// BalanceTrackerCallerSession is an auto generated read-only Go binding around an Ethereum contract, -// with pre-set call options. -type BalanceTrackerCallerSession struct { - Contract *BalanceTrackerCaller // Generic contract caller binding to set the session for - CallOpts bind.CallOpts // Call options to use throughout this session -} - -// BalanceTrackerTransactorSession is an auto generated write-only Go binding around an Ethereum contract, -// with pre-set transact options. -type BalanceTrackerTransactorSession struct { - Contract *BalanceTrackerTransactor // Generic contract transactor binding to set the session for - TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session -} - -// BalanceTrackerRaw is an auto generated low-level Go binding around an Ethereum contract. -type BalanceTrackerRaw struct { - Contract *BalanceTracker // Generic contract binding to access the raw methods on -} - -// BalanceTrackerCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. -type BalanceTrackerCallerRaw struct { - Contract *BalanceTrackerCaller // Generic read-only contract binding to access the raw methods on -} - -// BalanceTrackerTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. -type BalanceTrackerTransactorRaw struct { - Contract *BalanceTrackerTransactor // Generic write-only contract binding to access the raw methods on -} - -// NewBalanceTracker creates a new instance of BalanceTracker, bound to a specific deployed contract. -func NewBalanceTracker(address common.Address, backend bind.ContractBackend) (*BalanceTracker, error) { - contract, err := bindBalanceTracker(address, backend, backend, backend) - if err != nil { - return nil, err - } - return &BalanceTracker{BalanceTrackerCaller: BalanceTrackerCaller{contract: contract}, BalanceTrackerTransactor: BalanceTrackerTransactor{contract: contract}, BalanceTrackerFilterer: BalanceTrackerFilterer{contract: contract}}, nil -} - -// NewBalanceTrackerCaller creates a new read-only instance of BalanceTracker, bound to a specific deployed contract. -func NewBalanceTrackerCaller(address common.Address, caller bind.ContractCaller) (*BalanceTrackerCaller, error) { - contract, err := bindBalanceTracker(address, caller, nil, nil) - if err != nil { - return nil, err - } - return &BalanceTrackerCaller{contract: contract}, nil -} - -// NewBalanceTrackerTransactor creates a new write-only instance of BalanceTracker, bound to a specific deployed contract. -func NewBalanceTrackerTransactor(address common.Address, transactor bind.ContractTransactor) (*BalanceTrackerTransactor, error) { - contract, err := bindBalanceTracker(address, nil, transactor, nil) - if err != nil { - return nil, err - } - return &BalanceTrackerTransactor{contract: contract}, nil -} - -// NewBalanceTrackerFilterer creates a new log filterer instance of BalanceTracker, bound to a specific deployed contract. -func NewBalanceTrackerFilterer(address common.Address, filterer bind.ContractFilterer) (*BalanceTrackerFilterer, error) { - contract, err := bindBalanceTracker(address, nil, nil, filterer) - if err != nil { - return nil, err - } - return &BalanceTrackerFilterer{contract: contract}, nil -} - -// bindBalanceTracker binds a generic wrapper to an already deployed contract. -func bindBalanceTracker(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { - parsed, err := BalanceTrackerMetaData.GetAbi() - if err != nil { - return nil, err - } - return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil -} - -// Call invokes the (constant) contract method with params as input values and -// sets the output to result. The result type might be a single field for simple -// returns, a slice of interfaces for anonymous returns and a struct for named -// returns. -func (_BalanceTracker *BalanceTrackerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { - return _BalanceTracker.Contract.BalanceTrackerCaller.contract.Call(opts, result, method, params...) -} - -// Transfer initiates a plain transaction to move funds to the contract, calling -// its default method if one is available. -func (_BalanceTracker *BalanceTrackerRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { - return _BalanceTracker.Contract.BalanceTrackerTransactor.contract.Transfer(opts) -} - -// Transact invokes the (paid) contract method with params as input values. -func (_BalanceTracker *BalanceTrackerRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { - return _BalanceTracker.Contract.BalanceTrackerTransactor.contract.Transact(opts, method, params...) -} - -// Call invokes the (constant) contract method with params as input values and -// sets the output to result. The result type might be a single field for simple -// returns, a slice of interfaces for anonymous returns and a struct for named -// returns. -func (_BalanceTracker *BalanceTrackerCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { - return _BalanceTracker.Contract.contract.Call(opts, result, method, params...) -} - -// Transfer initiates a plain transaction to move funds to the contract, calling -// its default method if one is available. -func (_BalanceTracker *BalanceTrackerTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { - return _BalanceTracker.Contract.contract.Transfer(opts) -} - -// Transact invokes the (paid) contract method with params as input values. -func (_BalanceTracker *BalanceTrackerTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { - return _BalanceTracker.Contract.contract.Transact(opts, method, params...) -} - -// MAXSYSTEMADDRESSCOUNT is a free data retrieval call binding the contract method 0x6d1eb022. -// -// Solidity: function MAX_SYSTEM_ADDRESS_COUNT() view returns(uint256) -func (_BalanceTracker *BalanceTrackerCaller) MAXSYSTEMADDRESSCOUNT(opts *bind.CallOpts) (*big.Int, error) { - var out []interface{} - err := _BalanceTracker.contract.Call(opts, &out, "MAX_SYSTEM_ADDRESS_COUNT") - - if err != nil { - return *new(*big.Int), err - } - - out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) - - return out0, err - -} - -// MAXSYSTEMADDRESSCOUNT is a free data retrieval call binding the contract method 0x6d1eb022. -// -// Solidity: function MAX_SYSTEM_ADDRESS_COUNT() view returns(uint256) -func (_BalanceTracker *BalanceTrackerSession) MAXSYSTEMADDRESSCOUNT() (*big.Int, error) { - return _BalanceTracker.Contract.MAXSYSTEMADDRESSCOUNT(&_BalanceTracker.CallOpts) -} - -// MAXSYSTEMADDRESSCOUNT is a free data retrieval call binding the contract method 0x6d1eb022. -// -// Solidity: function MAX_SYSTEM_ADDRESS_COUNT() view returns(uint256) -func (_BalanceTracker *BalanceTrackerCallerSession) MAXSYSTEMADDRESSCOUNT() (*big.Int, error) { - return _BalanceTracker.Contract.MAXSYSTEMADDRESSCOUNT(&_BalanceTracker.CallOpts) -} - -// PROFITWALLET is a free data retrieval call binding the contract method 0x981949e8. -// -// Solidity: function PROFIT_WALLET() view returns(address) -func (_BalanceTracker *BalanceTrackerCaller) PROFITWALLET(opts *bind.CallOpts) (common.Address, error) { - var out []interface{} - err := _BalanceTracker.contract.Call(opts, &out, "PROFIT_WALLET") - - if err != nil { - return *new(common.Address), err - } - - out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) - - return out0, err - -} - -// PROFITWALLET is a free data retrieval call binding the contract method 0x981949e8. -// -// Solidity: function PROFIT_WALLET() view returns(address) -func (_BalanceTracker *BalanceTrackerSession) PROFITWALLET() (common.Address, error) { - return _BalanceTracker.Contract.PROFITWALLET(&_BalanceTracker.CallOpts) -} - -// PROFITWALLET is a free data retrieval call binding the contract method 0x981949e8. -// -// Solidity: function PROFIT_WALLET() view returns(address) -func (_BalanceTracker *BalanceTrackerCallerSession) PROFITWALLET() (common.Address, error) { - return _BalanceTracker.Contract.PROFITWALLET(&_BalanceTracker.CallOpts) -} - -// SystemAddresses is a free data retrieval call binding the contract method 0x927a1a77. -// -// Solidity: function systemAddresses(uint256 ) view returns(address) -func (_BalanceTracker *BalanceTrackerCaller) SystemAddresses(opts *bind.CallOpts, arg0 *big.Int) (common.Address, error) { - var out []interface{} - err := _BalanceTracker.contract.Call(opts, &out, "systemAddresses", arg0) - - if err != nil { - return *new(common.Address), err - } - - out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) - - return out0, err - -} - -// SystemAddresses is a free data retrieval call binding the contract method 0x927a1a77. -// -// Solidity: function systemAddresses(uint256 ) view returns(address) -func (_BalanceTracker *BalanceTrackerSession) SystemAddresses(arg0 *big.Int) (common.Address, error) { - return _BalanceTracker.Contract.SystemAddresses(&_BalanceTracker.CallOpts, arg0) -} - -// SystemAddresses is a free data retrieval call binding the contract method 0x927a1a77. -// -// Solidity: function systemAddresses(uint256 ) view returns(address) -func (_BalanceTracker *BalanceTrackerCallerSession) SystemAddresses(arg0 *big.Int) (common.Address, error) { - return _BalanceTracker.Contract.SystemAddresses(&_BalanceTracker.CallOpts, arg0) -} - -// TargetBalances is a free data retrieval call binding the contract method 0x0a565720. -// -// Solidity: function targetBalances(uint256 ) view returns(uint256) -func (_BalanceTracker *BalanceTrackerCaller) TargetBalances(opts *bind.CallOpts, arg0 *big.Int) (*big.Int, error) { - var out []interface{} - err := _BalanceTracker.contract.Call(opts, &out, "targetBalances", arg0) - - if err != nil { - return *new(*big.Int), err - } - - out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) - - return out0, err - -} - -// TargetBalances is a free data retrieval call binding the contract method 0x0a565720. -// -// Solidity: function targetBalances(uint256 ) view returns(uint256) -func (_BalanceTracker *BalanceTrackerSession) TargetBalances(arg0 *big.Int) (*big.Int, error) { - return _BalanceTracker.Contract.TargetBalances(&_BalanceTracker.CallOpts, arg0) -} - -// TargetBalances is a free data retrieval call binding the contract method 0x0a565720. -// -// Solidity: function targetBalances(uint256 ) view returns(uint256) -func (_BalanceTracker *BalanceTrackerCallerSession) TargetBalances(arg0 *big.Int) (*big.Int, error) { - return _BalanceTracker.Contract.TargetBalances(&_BalanceTracker.CallOpts, arg0) -} - -// Initialize is a paid mutator transaction binding the contract method 0x7fbbe46f. -// -// Solidity: function initialize(address[] _systemAddresses, uint256[] _targetBalances) returns() -func (_BalanceTracker *BalanceTrackerTransactor) Initialize(opts *bind.TransactOpts, _systemAddresses []common.Address, _targetBalances []*big.Int) (*types.Transaction, error) { - return _BalanceTracker.contract.Transact(opts, "initialize", _systemAddresses, _targetBalances) -} - -// Initialize is a paid mutator transaction binding the contract method 0x7fbbe46f. -// -// Solidity: function initialize(address[] _systemAddresses, uint256[] _targetBalances) returns() -func (_BalanceTracker *BalanceTrackerSession) Initialize(_systemAddresses []common.Address, _targetBalances []*big.Int) (*types.Transaction, error) { - return _BalanceTracker.Contract.Initialize(&_BalanceTracker.TransactOpts, _systemAddresses, _targetBalances) -} - -// Initialize is a paid mutator transaction binding the contract method 0x7fbbe46f. -// -// Solidity: function initialize(address[] _systemAddresses, uint256[] _targetBalances) returns() -func (_BalanceTracker *BalanceTrackerTransactorSession) Initialize(_systemAddresses []common.Address, _targetBalances []*big.Int) (*types.Transaction, error) { - return _BalanceTracker.Contract.Initialize(&_BalanceTracker.TransactOpts, _systemAddresses, _targetBalances) -} - -// ProcessFees is a paid mutator transaction binding the contract method 0xba69ebed. -// -// Solidity: function processFees() returns() -func (_BalanceTracker *BalanceTrackerTransactor) ProcessFees(opts *bind.TransactOpts) (*types.Transaction, error) { - return _BalanceTracker.contract.Transact(opts, "processFees") -} - -// ProcessFees is a paid mutator transaction binding the contract method 0xba69ebed. -// -// Solidity: function processFees() returns() -func (_BalanceTracker *BalanceTrackerSession) ProcessFees() (*types.Transaction, error) { - return _BalanceTracker.Contract.ProcessFees(&_BalanceTracker.TransactOpts) -} - -// ProcessFees is a paid mutator transaction binding the contract method 0xba69ebed. -// -// Solidity: function processFees() returns() -func (_BalanceTracker *BalanceTrackerTransactorSession) ProcessFees() (*types.Transaction, error) { - return _BalanceTracker.Contract.ProcessFees(&_BalanceTracker.TransactOpts) -} - -// Receive is a paid mutator transaction binding the contract receive function. -// -// Solidity: receive() payable returns() -func (_BalanceTracker *BalanceTrackerTransactor) Receive(opts *bind.TransactOpts) (*types.Transaction, error) { - return _BalanceTracker.contract.RawTransact(opts, nil) // calldata is disallowed for receive function -} - -// Receive is a paid mutator transaction binding the contract receive function. -// -// Solidity: receive() payable returns() -func (_BalanceTracker *BalanceTrackerSession) Receive() (*types.Transaction, error) { - return _BalanceTracker.Contract.Receive(&_BalanceTracker.TransactOpts) -} - -// Receive is a paid mutator transaction binding the contract receive function. -// -// Solidity: receive() payable returns() -func (_BalanceTracker *BalanceTrackerTransactorSession) Receive() (*types.Transaction, error) { - return _BalanceTracker.Contract.Receive(&_BalanceTracker.TransactOpts) -} - -// BalanceTrackerInitializedIterator is returned from FilterInitialized and is used to iterate over the raw logs and unpacked data for Initialized events raised by the BalanceTracker contract. -type BalanceTrackerInitializedIterator struct { - Event *BalanceTrackerInitialized // Event containing the contract specifics and raw log - - contract *bind.BoundContract // Generic contract to use for unpacking event data - event string // Event name to use for unpacking event data - - logs chan types.Log // Log channel receiving the found contract events - sub ethereum.Subscription // Subscription for errors, completion and termination - done bool // Whether the subscription completed delivering logs - fail error // Occurred error to stop iteration -} - -// Next advances the iterator to the subsequent event, returning whether there -// are any more events found. In case of a retrieval or parsing error, false is -// returned and Error() can be queried for the exact failure. -func (it *BalanceTrackerInitializedIterator) Next() bool { - // If the iterator failed, stop iterating - if it.fail != nil { - return false - } - // If the iterator completed, deliver directly whatever's available - if it.done { - select { - case log := <-it.logs: - it.Event = new(BalanceTrackerInitialized) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - default: - return false - } - } - // Iterator still in progress, wait for either a data or an error event - select { - case log := <-it.logs: - it.Event = new(BalanceTrackerInitialized) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - case err := <-it.sub.Err(): - it.done = true - it.fail = err - return it.Next() - } -} - -// Error returns any retrieval or parsing error occurred during filtering. -func (it *BalanceTrackerInitializedIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *BalanceTrackerInitializedIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// BalanceTrackerInitialized represents a Initialized event raised by the BalanceTracker contract. -type BalanceTrackerInitialized struct { - Version uint8 - Raw types.Log // Blockchain specific contextual infos -} - -// FilterInitialized is a free log retrieval operation binding the contract event 0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498. -// -// Solidity: event Initialized(uint8 version) -func (_BalanceTracker *BalanceTrackerFilterer) FilterInitialized(opts *bind.FilterOpts) (*BalanceTrackerInitializedIterator, error) { - - logs, sub, err := _BalanceTracker.contract.FilterLogs(opts, "Initialized") - if err != nil { - return nil, err - } - return &BalanceTrackerInitializedIterator{contract: _BalanceTracker.contract, event: "Initialized", logs: logs, sub: sub}, nil -} - -// WatchInitialized is a free log subscription operation binding the contract event 0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498. -// -// Solidity: event Initialized(uint8 version) -func (_BalanceTracker *BalanceTrackerFilterer) WatchInitialized(opts *bind.WatchOpts, sink chan<- *BalanceTrackerInitialized) (event.Subscription, error) { - - logs, sub, err := _BalanceTracker.contract.WatchLogs(opts, "Initialized") - if err != nil { - return nil, err - } - return event.NewSubscription(func(quit <-chan struct{}) error { - defer sub.Unsubscribe() - for { - select { - case log := <-logs: - // New log arrived, parse the event and forward to the user - event := new(BalanceTrackerInitialized) - if err := _BalanceTracker.contract.UnpackLog(event, "Initialized", log); err != nil { - return err - } - event.Raw = log - - select { - case sink <- event: - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - } - }), nil -} - -// ParseInitialized is a log parse operation binding the contract event 0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498. -// -// Solidity: event Initialized(uint8 version) -func (_BalanceTracker *BalanceTrackerFilterer) ParseInitialized(log types.Log) (*BalanceTrackerInitialized, error) { - event := new(BalanceTrackerInitialized) - if err := _BalanceTracker.contract.UnpackLog(event, "Initialized", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} - -// BalanceTrackerProcessedFundsIterator is returned from FilterProcessedFunds and is used to iterate over the raw logs and unpacked data for ProcessedFunds events raised by the BalanceTracker contract. -type BalanceTrackerProcessedFundsIterator struct { - Event *BalanceTrackerProcessedFunds // Event containing the contract specifics and raw log - - contract *bind.BoundContract // Generic contract to use for unpacking event data - event string // Event name to use for unpacking event data - - logs chan types.Log // Log channel receiving the found contract events - sub ethereum.Subscription // Subscription for errors, completion and termination - done bool // Whether the subscription completed delivering logs - fail error // Occurred error to stop iteration -} - -// Next advances the iterator to the subsequent event, returning whether there -// are any more events found. In case of a retrieval or parsing error, false is -// returned and Error() can be queried for the exact failure. -func (it *BalanceTrackerProcessedFundsIterator) Next() bool { - // If the iterator failed, stop iterating - if it.fail != nil { - return false - } - // If the iterator completed, deliver directly whatever's available - if it.done { - select { - case log := <-it.logs: - it.Event = new(BalanceTrackerProcessedFunds) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - default: - return false - } - } - // Iterator still in progress, wait for either a data or an error event - select { - case log := <-it.logs: - it.Event = new(BalanceTrackerProcessedFunds) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - case err := <-it.sub.Err(): - it.done = true - it.fail = err - return it.Next() - } -} - -// Error returns any retrieval or parsing error occurred during filtering. -func (it *BalanceTrackerProcessedFundsIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *BalanceTrackerProcessedFundsIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// BalanceTrackerProcessedFunds represents a ProcessedFunds event raised by the BalanceTracker contract. -type BalanceTrackerProcessedFunds struct { - SystemAddress common.Address - Success bool - BalanceNeeded *big.Int - BalanceSent *big.Int - Raw types.Log // Blockchain specific contextual infos -} - -// FilterProcessedFunds is a free log retrieval operation binding the contract event 0x74273f98770936abfe9aad12868d2dbe403347b74b7f3a539d0359c123d5d31c. -// -// Solidity: event ProcessedFunds(address indexed _systemAddress, bool indexed _success, uint256 _balanceNeeded, uint256 _balanceSent) -func (_BalanceTracker *BalanceTrackerFilterer) FilterProcessedFunds(opts *bind.FilterOpts, _systemAddress []common.Address, _success []bool) (*BalanceTrackerProcessedFundsIterator, error) { - - var _systemAddressRule []interface{} - for _, _systemAddressItem := range _systemAddress { - _systemAddressRule = append(_systemAddressRule, _systemAddressItem) - } - var _successRule []interface{} - for _, _successItem := range _success { - _successRule = append(_successRule, _successItem) - } - - logs, sub, err := _BalanceTracker.contract.FilterLogs(opts, "ProcessedFunds", _systemAddressRule, _successRule) - if err != nil { - return nil, err - } - return &BalanceTrackerProcessedFundsIterator{contract: _BalanceTracker.contract, event: "ProcessedFunds", logs: logs, sub: sub}, nil -} - -// WatchProcessedFunds is a free log subscription operation binding the contract event 0x74273f98770936abfe9aad12868d2dbe403347b74b7f3a539d0359c123d5d31c. -// -// Solidity: event ProcessedFunds(address indexed _systemAddress, bool indexed _success, uint256 _balanceNeeded, uint256 _balanceSent) -func (_BalanceTracker *BalanceTrackerFilterer) WatchProcessedFunds(opts *bind.WatchOpts, sink chan<- *BalanceTrackerProcessedFunds, _systemAddress []common.Address, _success []bool) (event.Subscription, error) { - - var _systemAddressRule []interface{} - for _, _systemAddressItem := range _systemAddress { - _systemAddressRule = append(_systemAddressRule, _systemAddressItem) - } - var _successRule []interface{} - for _, _successItem := range _success { - _successRule = append(_successRule, _successItem) - } - - logs, sub, err := _BalanceTracker.contract.WatchLogs(opts, "ProcessedFunds", _systemAddressRule, _successRule) - if err != nil { - return nil, err - } - return event.NewSubscription(func(quit <-chan struct{}) error { - defer sub.Unsubscribe() - for { - select { - case log := <-logs: - // New log arrived, parse the event and forward to the user - event := new(BalanceTrackerProcessedFunds) - if err := _BalanceTracker.contract.UnpackLog(event, "ProcessedFunds", log); err != nil { - return err - } - event.Raw = log - - select { - case sink <- event: - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - } - }), nil -} - -// ParseProcessedFunds is a log parse operation binding the contract event 0x74273f98770936abfe9aad12868d2dbe403347b74b7f3a539d0359c123d5d31c. -// -// Solidity: event ProcessedFunds(address indexed _systemAddress, bool indexed _success, uint256 _balanceNeeded, uint256 _balanceSent) -func (_BalanceTracker *BalanceTrackerFilterer) ParseProcessedFunds(log types.Log) (*BalanceTrackerProcessedFunds, error) { - event := new(BalanceTrackerProcessedFunds) - if err := _BalanceTracker.contract.UnpackLog(event, "ProcessedFunds", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} - -// BalanceTrackerReceivedFundsIterator is returned from FilterReceivedFunds and is used to iterate over the raw logs and unpacked data for ReceivedFunds events raised by the BalanceTracker contract. -type BalanceTrackerReceivedFundsIterator struct { - Event *BalanceTrackerReceivedFunds // Event containing the contract specifics and raw log - - contract *bind.BoundContract // Generic contract to use for unpacking event data - event string // Event name to use for unpacking event data - - logs chan types.Log // Log channel receiving the found contract events - sub ethereum.Subscription // Subscription for errors, completion and termination - done bool // Whether the subscription completed delivering logs - fail error // Occurred error to stop iteration -} - -// Next advances the iterator to the subsequent event, returning whether there -// are any more events found. In case of a retrieval or parsing error, false is -// returned and Error() can be queried for the exact failure. -func (it *BalanceTrackerReceivedFundsIterator) Next() bool { - // If the iterator failed, stop iterating - if it.fail != nil { - return false - } - // If the iterator completed, deliver directly whatever's available - if it.done { - select { - case log := <-it.logs: - it.Event = new(BalanceTrackerReceivedFunds) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - default: - return false - } - } - // Iterator still in progress, wait for either a data or an error event - select { - case log := <-it.logs: - it.Event = new(BalanceTrackerReceivedFunds) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - case err := <-it.sub.Err(): - it.done = true - it.fail = err - return it.Next() - } -} - -// Error returns any retrieval or parsing error occurred during filtering. -func (it *BalanceTrackerReceivedFundsIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *BalanceTrackerReceivedFundsIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// BalanceTrackerReceivedFunds represents a ReceivedFunds event raised by the BalanceTracker contract. -type BalanceTrackerReceivedFunds struct { - Sender common.Address - Amount *big.Int - Raw types.Log // Blockchain specific contextual infos -} - -// FilterReceivedFunds is a free log retrieval operation binding the contract event 0x5741979df5f3e491501da74d3b0a83dd2496ab1f34929865b3e190a8ad75859a. -// -// Solidity: event ReceivedFunds(address indexed _sender, uint256 _amount) -func (_BalanceTracker *BalanceTrackerFilterer) FilterReceivedFunds(opts *bind.FilterOpts, _sender []common.Address) (*BalanceTrackerReceivedFundsIterator, error) { - - var _senderRule []interface{} - for _, _senderItem := range _sender { - _senderRule = append(_senderRule, _senderItem) - } - - logs, sub, err := _BalanceTracker.contract.FilterLogs(opts, "ReceivedFunds", _senderRule) - if err != nil { - return nil, err - } - return &BalanceTrackerReceivedFundsIterator{contract: _BalanceTracker.contract, event: "ReceivedFunds", logs: logs, sub: sub}, nil -} - -// WatchReceivedFunds is a free log subscription operation binding the contract event 0x5741979df5f3e491501da74d3b0a83dd2496ab1f34929865b3e190a8ad75859a. -// -// Solidity: event ReceivedFunds(address indexed _sender, uint256 _amount) -func (_BalanceTracker *BalanceTrackerFilterer) WatchReceivedFunds(opts *bind.WatchOpts, sink chan<- *BalanceTrackerReceivedFunds, _sender []common.Address) (event.Subscription, error) { - - var _senderRule []interface{} - for _, _senderItem := range _sender { - _senderRule = append(_senderRule, _senderItem) - } - - logs, sub, err := _BalanceTracker.contract.WatchLogs(opts, "ReceivedFunds", _senderRule) - if err != nil { - return nil, err - } - return event.NewSubscription(func(quit <-chan struct{}) error { - defer sub.Unsubscribe() - for { - select { - case log := <-logs: - // New log arrived, parse the event and forward to the user - event := new(BalanceTrackerReceivedFunds) - if err := _BalanceTracker.contract.UnpackLog(event, "ReceivedFunds", log); err != nil { - return err - } - event.Raw = log - - select { - case sink <- event: - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - } - }), nil -} - -// ParseReceivedFunds is a log parse operation binding the contract event 0x5741979df5f3e491501da74d3b0a83dd2496ab1f34929865b3e190a8ad75859a. -// -// Solidity: event ReceivedFunds(address indexed _sender, uint256 _amount) -func (_BalanceTracker *BalanceTrackerFilterer) ParseReceivedFunds(log types.Log) (*BalanceTrackerReceivedFunds, error) { - event := new(BalanceTrackerReceivedFunds) - if err := _BalanceTracker.contract.UnpackLog(event, "ReceivedFunds", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} - -// BalanceTrackerSentProfitIterator is returned from FilterSentProfit and is used to iterate over the raw logs and unpacked data for SentProfit events raised by the BalanceTracker contract. -type BalanceTrackerSentProfitIterator struct { - Event *BalanceTrackerSentProfit // Event containing the contract specifics and raw log - - contract *bind.BoundContract // Generic contract to use for unpacking event data - event string // Event name to use for unpacking event data - - logs chan types.Log // Log channel receiving the found contract events - sub ethereum.Subscription // Subscription for errors, completion and termination - done bool // Whether the subscription completed delivering logs - fail error // Occurred error to stop iteration -} - -// Next advances the iterator to the subsequent event, returning whether there -// are any more events found. In case of a retrieval or parsing error, false is -// returned and Error() can be queried for the exact failure. -func (it *BalanceTrackerSentProfitIterator) Next() bool { - // If the iterator failed, stop iterating - if it.fail != nil { - return false - } - // If the iterator completed, deliver directly whatever's available - if it.done { - select { - case log := <-it.logs: - it.Event = new(BalanceTrackerSentProfit) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - default: - return false - } - } - // Iterator still in progress, wait for either a data or an error event - select { - case log := <-it.logs: - it.Event = new(BalanceTrackerSentProfit) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - case err := <-it.sub.Err(): - it.done = true - it.fail = err - return it.Next() - } -} - -// Error returns any retrieval or parsing error occurred during filtering. -func (it *BalanceTrackerSentProfitIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *BalanceTrackerSentProfitIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// BalanceTrackerSentProfit represents a SentProfit event raised by the BalanceTracker contract. -type BalanceTrackerSentProfit struct { - ProfitWallet common.Address - Success bool - BalanceSent *big.Int - Raw types.Log // Blockchain specific contextual infos -} - -// FilterSentProfit is a free log retrieval operation binding the contract event 0xbadd9d7563efca77438dc132e885aa156837e0b784469f68fbd810cbfb6cda77. -// -// Solidity: event SentProfit(address indexed _profitWallet, bool indexed _success, uint256 _balanceSent) -func (_BalanceTracker *BalanceTrackerFilterer) FilterSentProfit(opts *bind.FilterOpts, _profitWallet []common.Address, _success []bool) (*BalanceTrackerSentProfitIterator, error) { - - var _profitWalletRule []interface{} - for _, _profitWalletItem := range _profitWallet { - _profitWalletRule = append(_profitWalletRule, _profitWalletItem) - } - var _successRule []interface{} - for _, _successItem := range _success { - _successRule = append(_successRule, _successItem) - } - - logs, sub, err := _BalanceTracker.contract.FilterLogs(opts, "SentProfit", _profitWalletRule, _successRule) - if err != nil { - return nil, err - } - return &BalanceTrackerSentProfitIterator{contract: _BalanceTracker.contract, event: "SentProfit", logs: logs, sub: sub}, nil -} - -// WatchSentProfit is a free log subscription operation binding the contract event 0xbadd9d7563efca77438dc132e885aa156837e0b784469f68fbd810cbfb6cda77. -// -// Solidity: event SentProfit(address indexed _profitWallet, bool indexed _success, uint256 _balanceSent) -func (_BalanceTracker *BalanceTrackerFilterer) WatchSentProfit(opts *bind.WatchOpts, sink chan<- *BalanceTrackerSentProfit, _profitWallet []common.Address, _success []bool) (event.Subscription, error) { - - var _profitWalletRule []interface{} - for _, _profitWalletItem := range _profitWallet { - _profitWalletRule = append(_profitWalletRule, _profitWalletItem) - } - var _successRule []interface{} - for _, _successItem := range _success { - _successRule = append(_successRule, _successItem) - } - - logs, sub, err := _BalanceTracker.contract.WatchLogs(opts, "SentProfit", _profitWalletRule, _successRule) - if err != nil { - return nil, err - } - return event.NewSubscription(func(quit <-chan struct{}) error { - defer sub.Unsubscribe() - for { - select { - case log := <-logs: - // New log arrived, parse the event and forward to the user - event := new(BalanceTrackerSentProfit) - if err := _BalanceTracker.contract.UnpackLog(event, "SentProfit", log); err != nil { - return err - } - event.Raw = log - - select { - case sink <- event: - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - } - }), nil -} - -// ParseSentProfit is a log parse operation binding the contract event 0xbadd9d7563efca77438dc132e885aa156837e0b784469f68fbd810cbfb6cda77. -// -// Solidity: event SentProfit(address indexed _profitWallet, bool indexed _success, uint256 _balanceSent) -func (_BalanceTracker *BalanceTrackerFilterer) ParseSentProfit(log types.Log) (*BalanceTrackerSentProfit, error) { - event := new(BalanceTrackerSentProfit) - if err := _BalanceTracker.contract.UnpackLog(event, "SentProfit", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} diff --git a/bindings/fee_disburser.go b/bindings/fee_disburser.go deleted file mode 100644 index 580869752..000000000 --- a/bindings/fee_disburser.go +++ /dev/null @@ -1,916 +0,0 @@ -// Code generated - DO NOT EDIT. -// This file is a generated binding and any manual changes will be lost. - -package bindings - -import ( - "errors" - "math/big" - "strings" - - ethereum "github.com/ethereum/go-ethereum" - "github.com/ethereum/go-ethereum/accounts/abi" - "github.com/ethereum/go-ethereum/accounts/abi/bind" - "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/core/types" - "github.com/ethereum/go-ethereum/event" -) - -// Reference imports to suppress errors if they are not otherwise used. -var ( - _ = errors.New - _ = big.NewInt - _ = strings.NewReader - _ = ethereum.NotFound - _ = bind.Bind - _ = common.Big1 - _ = types.BloomLookup - _ = event.NewSubscription - _ = abi.ConvertType -) - -// FeeDisburserMetaData contains all meta data concerning the FeeDisburser contract. -var FeeDisburserMetaData = &bind.MetaData{ - ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"_optimismWallet\",\"type\":\"address\",\"internalType\":\"addresspayable\"},{\"name\":\"_l1Wallet\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_feeDisbursementInterval\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"receive\",\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"BASIS_POINT_SCALE\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"FEE_DISBURSEMENT_INTERVAL\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"L1_WALLET\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"OPTIMISM_GROSS_REVENUE_SHARE_BASIS_POINTS\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"OPTIMISM_NET_REVENUE_SHARE_BASIS_POINTS\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"OPTIMISM_WALLET\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"addresspayable\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"WITHDRAWAL_MIN_GAS\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"disburseFees\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"lastDisbursementTime\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"netFeeRevenue\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"event\",\"name\":\"FeesDisbursed\",\"inputs\":[{\"name\":\"_disbursementTime\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"_paidToOptimism\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"_totalFeesDisbursed\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"FeesReceived\",\"inputs\":[{\"name\":\"_sender\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"_amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"NoFeesCollected\",\"inputs\":[],\"anonymous\":false}]", -} - -// FeeDisburserABI is the input ABI used to generate the binding from. -// Deprecated: Use FeeDisburserMetaData.ABI instead. -var FeeDisburserABI = FeeDisburserMetaData.ABI - -// FeeDisburser is an auto generated Go binding around an Ethereum contract. -type FeeDisburser struct { - FeeDisburserCaller // Read-only binding to the contract - FeeDisburserTransactor // Write-only binding to the contract - FeeDisburserFilterer // Log filterer for contract events -} - -// FeeDisburserCaller is an auto generated read-only Go binding around an Ethereum contract. -type FeeDisburserCaller struct { - contract *bind.BoundContract // Generic contract wrapper for the low level calls -} - -// FeeDisburserTransactor is an auto generated write-only Go binding around an Ethereum contract. -type FeeDisburserTransactor struct { - contract *bind.BoundContract // Generic contract wrapper for the low level calls -} - -// FeeDisburserFilterer is an auto generated log filtering Go binding around an Ethereum contract events. -type FeeDisburserFilterer struct { - contract *bind.BoundContract // Generic contract wrapper for the low level calls -} - -// FeeDisburserSession is an auto generated Go binding around an Ethereum contract, -// with pre-set call and transact options. -type FeeDisburserSession struct { - Contract *FeeDisburser // Generic contract binding to set the session for - CallOpts bind.CallOpts // Call options to use throughout this session - TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session -} - -// FeeDisburserCallerSession is an auto generated read-only Go binding around an Ethereum contract, -// with pre-set call options. -type FeeDisburserCallerSession struct { - Contract *FeeDisburserCaller // Generic contract caller binding to set the session for - CallOpts bind.CallOpts // Call options to use throughout this session -} - -// FeeDisburserTransactorSession is an auto generated write-only Go binding around an Ethereum contract, -// with pre-set transact options. -type FeeDisburserTransactorSession struct { - Contract *FeeDisburserTransactor // Generic contract transactor binding to set the session for - TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session -} - -// FeeDisburserRaw is an auto generated low-level Go binding around an Ethereum contract. -type FeeDisburserRaw struct { - Contract *FeeDisburser // Generic contract binding to access the raw methods on -} - -// FeeDisburserCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. -type FeeDisburserCallerRaw struct { - Contract *FeeDisburserCaller // Generic read-only contract binding to access the raw methods on -} - -// FeeDisburserTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. -type FeeDisburserTransactorRaw struct { - Contract *FeeDisburserTransactor // Generic write-only contract binding to access the raw methods on -} - -// NewFeeDisburser creates a new instance of FeeDisburser, bound to a specific deployed contract. -func NewFeeDisburser(address common.Address, backend bind.ContractBackend) (*FeeDisburser, error) { - contract, err := bindFeeDisburser(address, backend, backend, backend) - if err != nil { - return nil, err - } - return &FeeDisburser{FeeDisburserCaller: FeeDisburserCaller{contract: contract}, FeeDisburserTransactor: FeeDisburserTransactor{contract: contract}, FeeDisburserFilterer: FeeDisburserFilterer{contract: contract}}, nil -} - -// NewFeeDisburserCaller creates a new read-only instance of FeeDisburser, bound to a specific deployed contract. -func NewFeeDisburserCaller(address common.Address, caller bind.ContractCaller) (*FeeDisburserCaller, error) { - contract, err := bindFeeDisburser(address, caller, nil, nil) - if err != nil { - return nil, err - } - return &FeeDisburserCaller{contract: contract}, nil -} - -// NewFeeDisburserTransactor creates a new write-only instance of FeeDisburser, bound to a specific deployed contract. -func NewFeeDisburserTransactor(address common.Address, transactor bind.ContractTransactor) (*FeeDisburserTransactor, error) { - contract, err := bindFeeDisburser(address, nil, transactor, nil) - if err != nil { - return nil, err - } - return &FeeDisburserTransactor{contract: contract}, nil -} - -// NewFeeDisburserFilterer creates a new log filterer instance of FeeDisburser, bound to a specific deployed contract. -func NewFeeDisburserFilterer(address common.Address, filterer bind.ContractFilterer) (*FeeDisburserFilterer, error) { - contract, err := bindFeeDisburser(address, nil, nil, filterer) - if err != nil { - return nil, err - } - return &FeeDisburserFilterer{contract: contract}, nil -} - -// bindFeeDisburser binds a generic wrapper to an already deployed contract. -func bindFeeDisburser(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { - parsed, err := FeeDisburserMetaData.GetAbi() - if err != nil { - return nil, err - } - return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil -} - -// Call invokes the (constant) contract method with params as input values and -// sets the output to result. The result type might be a single field for simple -// returns, a slice of interfaces for anonymous returns and a struct for named -// returns. -func (_FeeDisburser *FeeDisburserRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { - return _FeeDisburser.Contract.FeeDisburserCaller.contract.Call(opts, result, method, params...) -} - -// Transfer initiates a plain transaction to move funds to the contract, calling -// its default method if one is available. -func (_FeeDisburser *FeeDisburserRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { - return _FeeDisburser.Contract.FeeDisburserTransactor.contract.Transfer(opts) -} - -// Transact invokes the (paid) contract method with params as input values. -func (_FeeDisburser *FeeDisburserRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { - return _FeeDisburser.Contract.FeeDisburserTransactor.contract.Transact(opts, method, params...) -} - -// Call invokes the (constant) contract method with params as input values and -// sets the output to result. The result type might be a single field for simple -// returns, a slice of interfaces for anonymous returns and a struct for named -// returns. -func (_FeeDisburser *FeeDisburserCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { - return _FeeDisburser.Contract.contract.Call(opts, result, method, params...) -} - -// Transfer initiates a plain transaction to move funds to the contract, calling -// its default method if one is available. -func (_FeeDisburser *FeeDisburserTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { - return _FeeDisburser.Contract.contract.Transfer(opts) -} - -// Transact invokes the (paid) contract method with params as input values. -func (_FeeDisburser *FeeDisburserTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { - return _FeeDisburser.Contract.contract.Transact(opts, method, params...) -} - -// BASISPOINTSCALE is a free data retrieval call binding the contract method 0x5b201d83. -// -// Solidity: function BASIS_POINT_SCALE() view returns(uint32) -func (_FeeDisburser *FeeDisburserCaller) BASISPOINTSCALE(opts *bind.CallOpts) (uint32, error) { - var out []interface{} - err := _FeeDisburser.contract.Call(opts, &out, "BASIS_POINT_SCALE") - - if err != nil { - return *new(uint32), err - } - - out0 := *abi.ConvertType(out[0], new(uint32)).(*uint32) - - return out0, err - -} - -// BASISPOINTSCALE is a free data retrieval call binding the contract method 0x5b201d83. -// -// Solidity: function BASIS_POINT_SCALE() view returns(uint32) -func (_FeeDisburser *FeeDisburserSession) BASISPOINTSCALE() (uint32, error) { - return _FeeDisburser.Contract.BASISPOINTSCALE(&_FeeDisburser.CallOpts) -} - -// BASISPOINTSCALE is a free data retrieval call binding the contract method 0x5b201d83. -// -// Solidity: function BASIS_POINT_SCALE() view returns(uint32) -func (_FeeDisburser *FeeDisburserCallerSession) BASISPOINTSCALE() (uint32, error) { - return _FeeDisburser.Contract.BASISPOINTSCALE(&_FeeDisburser.CallOpts) -} - -// FEEDISBURSEMENTINTERVAL is a free data retrieval call binding the contract method 0x54664de5. -// -// Solidity: function FEE_DISBURSEMENT_INTERVAL() view returns(uint256) -func (_FeeDisburser *FeeDisburserCaller) FEEDISBURSEMENTINTERVAL(opts *bind.CallOpts) (*big.Int, error) { - var out []interface{} - err := _FeeDisburser.contract.Call(opts, &out, "FEE_DISBURSEMENT_INTERVAL") - - if err != nil { - return *new(*big.Int), err - } - - out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) - - return out0, err - -} - -// FEEDISBURSEMENTINTERVAL is a free data retrieval call binding the contract method 0x54664de5. -// -// Solidity: function FEE_DISBURSEMENT_INTERVAL() view returns(uint256) -func (_FeeDisburser *FeeDisburserSession) FEEDISBURSEMENTINTERVAL() (*big.Int, error) { - return _FeeDisburser.Contract.FEEDISBURSEMENTINTERVAL(&_FeeDisburser.CallOpts) -} - -// FEEDISBURSEMENTINTERVAL is a free data retrieval call binding the contract method 0x54664de5. -// -// Solidity: function FEE_DISBURSEMENT_INTERVAL() view returns(uint256) -func (_FeeDisburser *FeeDisburserCallerSession) FEEDISBURSEMENTINTERVAL() (*big.Int, error) { - return _FeeDisburser.Contract.FEEDISBURSEMENTINTERVAL(&_FeeDisburser.CallOpts) -} - -// L1WALLET is a free data retrieval call binding the contract method 0x36f1a6e5. -// -// Solidity: function L1_WALLET() view returns(address) -func (_FeeDisburser *FeeDisburserCaller) L1WALLET(opts *bind.CallOpts) (common.Address, error) { - var out []interface{} - err := _FeeDisburser.contract.Call(opts, &out, "L1_WALLET") - - if err != nil { - return *new(common.Address), err - } - - out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) - - return out0, err - -} - -// L1WALLET is a free data retrieval call binding the contract method 0x36f1a6e5. -// -// Solidity: function L1_WALLET() view returns(address) -func (_FeeDisburser *FeeDisburserSession) L1WALLET() (common.Address, error) { - return _FeeDisburser.Contract.L1WALLET(&_FeeDisburser.CallOpts) -} - -// L1WALLET is a free data retrieval call binding the contract method 0x36f1a6e5. -// -// Solidity: function L1_WALLET() view returns(address) -func (_FeeDisburser *FeeDisburserCallerSession) L1WALLET() (common.Address, error) { - return _FeeDisburser.Contract.L1WALLET(&_FeeDisburser.CallOpts) -} - -// OPTIMISMGROSSREVENUESHAREBASISPOINTS is a free data retrieval call binding the contract method 0x235d506d. -// -// Solidity: function OPTIMISM_GROSS_REVENUE_SHARE_BASIS_POINTS() view returns(uint256) -func (_FeeDisburser *FeeDisburserCaller) OPTIMISMGROSSREVENUESHAREBASISPOINTS(opts *bind.CallOpts) (*big.Int, error) { - var out []interface{} - err := _FeeDisburser.contract.Call(opts, &out, "OPTIMISM_GROSS_REVENUE_SHARE_BASIS_POINTS") - - if err != nil { - return *new(*big.Int), err - } - - out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) - - return out0, err - -} - -// OPTIMISMGROSSREVENUESHAREBASISPOINTS is a free data retrieval call binding the contract method 0x235d506d. -// -// Solidity: function OPTIMISM_GROSS_REVENUE_SHARE_BASIS_POINTS() view returns(uint256) -func (_FeeDisburser *FeeDisburserSession) OPTIMISMGROSSREVENUESHAREBASISPOINTS() (*big.Int, error) { - return _FeeDisburser.Contract.OPTIMISMGROSSREVENUESHAREBASISPOINTS(&_FeeDisburser.CallOpts) -} - -// OPTIMISMGROSSREVENUESHAREBASISPOINTS is a free data retrieval call binding the contract method 0x235d506d. -// -// Solidity: function OPTIMISM_GROSS_REVENUE_SHARE_BASIS_POINTS() view returns(uint256) -func (_FeeDisburser *FeeDisburserCallerSession) OPTIMISMGROSSREVENUESHAREBASISPOINTS() (*big.Int, error) { - return _FeeDisburser.Contract.OPTIMISMGROSSREVENUESHAREBASISPOINTS(&_FeeDisburser.CallOpts) -} - -// OPTIMISMNETREVENUESHAREBASISPOINTS is a free data retrieval call binding the contract method 0x93819a3f. -// -// Solidity: function OPTIMISM_NET_REVENUE_SHARE_BASIS_POINTS() view returns(uint256) -func (_FeeDisburser *FeeDisburserCaller) OPTIMISMNETREVENUESHAREBASISPOINTS(opts *bind.CallOpts) (*big.Int, error) { - var out []interface{} - err := _FeeDisburser.contract.Call(opts, &out, "OPTIMISM_NET_REVENUE_SHARE_BASIS_POINTS") - - if err != nil { - return *new(*big.Int), err - } - - out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) - - return out0, err - -} - -// OPTIMISMNETREVENUESHAREBASISPOINTS is a free data retrieval call binding the contract method 0x93819a3f. -// -// Solidity: function OPTIMISM_NET_REVENUE_SHARE_BASIS_POINTS() view returns(uint256) -func (_FeeDisburser *FeeDisburserSession) OPTIMISMNETREVENUESHAREBASISPOINTS() (*big.Int, error) { - return _FeeDisburser.Contract.OPTIMISMNETREVENUESHAREBASISPOINTS(&_FeeDisburser.CallOpts) -} - -// OPTIMISMNETREVENUESHAREBASISPOINTS is a free data retrieval call binding the contract method 0x93819a3f. -// -// Solidity: function OPTIMISM_NET_REVENUE_SHARE_BASIS_POINTS() view returns(uint256) -func (_FeeDisburser *FeeDisburserCallerSession) OPTIMISMNETREVENUESHAREBASISPOINTS() (*big.Int, error) { - return _FeeDisburser.Contract.OPTIMISMNETREVENUESHAREBASISPOINTS(&_FeeDisburser.CallOpts) -} - -// OPTIMISMWALLET is a free data retrieval call binding the contract method 0x0c8cd070. -// -// Solidity: function OPTIMISM_WALLET() view returns(address) -func (_FeeDisburser *FeeDisburserCaller) OPTIMISMWALLET(opts *bind.CallOpts) (common.Address, error) { - var out []interface{} - err := _FeeDisburser.contract.Call(opts, &out, "OPTIMISM_WALLET") - - if err != nil { - return *new(common.Address), err - } - - out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) - - return out0, err - -} - -// OPTIMISMWALLET is a free data retrieval call binding the contract method 0x0c8cd070. -// -// Solidity: function OPTIMISM_WALLET() view returns(address) -func (_FeeDisburser *FeeDisburserSession) OPTIMISMWALLET() (common.Address, error) { - return _FeeDisburser.Contract.OPTIMISMWALLET(&_FeeDisburser.CallOpts) -} - -// OPTIMISMWALLET is a free data retrieval call binding the contract method 0x0c8cd070. -// -// Solidity: function OPTIMISM_WALLET() view returns(address) -func (_FeeDisburser *FeeDisburserCallerSession) OPTIMISMWALLET() (common.Address, error) { - return _FeeDisburser.Contract.OPTIMISMWALLET(&_FeeDisburser.CallOpts) -} - -// WITHDRAWALMINGAS is a free data retrieval call binding the contract method 0xad41d09c. -// -// Solidity: function WITHDRAWAL_MIN_GAS() view returns(uint32) -func (_FeeDisburser *FeeDisburserCaller) WITHDRAWALMINGAS(opts *bind.CallOpts) (uint32, error) { - var out []interface{} - err := _FeeDisburser.contract.Call(opts, &out, "WITHDRAWAL_MIN_GAS") - - if err != nil { - return *new(uint32), err - } - - out0 := *abi.ConvertType(out[0], new(uint32)).(*uint32) - - return out0, err - -} - -// WITHDRAWALMINGAS is a free data retrieval call binding the contract method 0xad41d09c. -// -// Solidity: function WITHDRAWAL_MIN_GAS() view returns(uint32) -func (_FeeDisburser *FeeDisburserSession) WITHDRAWALMINGAS() (uint32, error) { - return _FeeDisburser.Contract.WITHDRAWALMINGAS(&_FeeDisburser.CallOpts) -} - -// WITHDRAWALMINGAS is a free data retrieval call binding the contract method 0xad41d09c. -// -// Solidity: function WITHDRAWAL_MIN_GAS() view returns(uint32) -func (_FeeDisburser *FeeDisburserCallerSession) WITHDRAWALMINGAS() (uint32, error) { - return _FeeDisburser.Contract.WITHDRAWALMINGAS(&_FeeDisburser.CallOpts) -} - -// LastDisbursementTime is a free data retrieval call binding the contract method 0x394d2731. -// -// Solidity: function lastDisbursementTime() view returns(uint256) -func (_FeeDisburser *FeeDisburserCaller) LastDisbursementTime(opts *bind.CallOpts) (*big.Int, error) { - var out []interface{} - err := _FeeDisburser.contract.Call(opts, &out, "lastDisbursementTime") - - if err != nil { - return *new(*big.Int), err - } - - out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) - - return out0, err - -} - -// LastDisbursementTime is a free data retrieval call binding the contract method 0x394d2731. -// -// Solidity: function lastDisbursementTime() view returns(uint256) -func (_FeeDisburser *FeeDisburserSession) LastDisbursementTime() (*big.Int, error) { - return _FeeDisburser.Contract.LastDisbursementTime(&_FeeDisburser.CallOpts) -} - -// LastDisbursementTime is a free data retrieval call binding the contract method 0x394d2731. -// -// Solidity: function lastDisbursementTime() view returns(uint256) -func (_FeeDisburser *FeeDisburserCallerSession) LastDisbursementTime() (*big.Int, error) { - return _FeeDisburser.Contract.LastDisbursementTime(&_FeeDisburser.CallOpts) -} - -// NetFeeRevenue is a free data retrieval call binding the contract method 0x447eb5ac. -// -// Solidity: function netFeeRevenue() view returns(uint256) -func (_FeeDisburser *FeeDisburserCaller) NetFeeRevenue(opts *bind.CallOpts) (*big.Int, error) { - var out []interface{} - err := _FeeDisburser.contract.Call(opts, &out, "netFeeRevenue") - - if err != nil { - return *new(*big.Int), err - } - - out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) - - return out0, err - -} - -// NetFeeRevenue is a free data retrieval call binding the contract method 0x447eb5ac. -// -// Solidity: function netFeeRevenue() view returns(uint256) -func (_FeeDisburser *FeeDisburserSession) NetFeeRevenue() (*big.Int, error) { - return _FeeDisburser.Contract.NetFeeRevenue(&_FeeDisburser.CallOpts) -} - -// NetFeeRevenue is a free data retrieval call binding the contract method 0x447eb5ac. -// -// Solidity: function netFeeRevenue() view returns(uint256) -func (_FeeDisburser *FeeDisburserCallerSession) NetFeeRevenue() (*big.Int, error) { - return _FeeDisburser.Contract.NetFeeRevenue(&_FeeDisburser.CallOpts) -} - -// DisburseFees is a paid mutator transaction binding the contract method 0xb87ea8d4. -// -// Solidity: function disburseFees() returns() -func (_FeeDisburser *FeeDisburserTransactor) DisburseFees(opts *bind.TransactOpts) (*types.Transaction, error) { - return _FeeDisburser.contract.Transact(opts, "disburseFees") -} - -// DisburseFees is a paid mutator transaction binding the contract method 0xb87ea8d4. -// -// Solidity: function disburseFees() returns() -func (_FeeDisburser *FeeDisburserSession) DisburseFees() (*types.Transaction, error) { - return _FeeDisburser.Contract.DisburseFees(&_FeeDisburser.TransactOpts) -} - -// DisburseFees is a paid mutator transaction binding the contract method 0xb87ea8d4. -// -// Solidity: function disburseFees() returns() -func (_FeeDisburser *FeeDisburserTransactorSession) DisburseFees() (*types.Transaction, error) { - return _FeeDisburser.Contract.DisburseFees(&_FeeDisburser.TransactOpts) -} - -// Receive is a paid mutator transaction binding the contract receive function. -// -// Solidity: receive() payable returns() -func (_FeeDisburser *FeeDisburserTransactor) Receive(opts *bind.TransactOpts) (*types.Transaction, error) { - return _FeeDisburser.contract.RawTransact(opts, nil) // calldata is disallowed for receive function -} - -// Receive is a paid mutator transaction binding the contract receive function. -// -// Solidity: receive() payable returns() -func (_FeeDisburser *FeeDisburserSession) Receive() (*types.Transaction, error) { - return _FeeDisburser.Contract.Receive(&_FeeDisburser.TransactOpts) -} - -// Receive is a paid mutator transaction binding the contract receive function. -// -// Solidity: receive() payable returns() -func (_FeeDisburser *FeeDisburserTransactorSession) Receive() (*types.Transaction, error) { - return _FeeDisburser.Contract.Receive(&_FeeDisburser.TransactOpts) -} - -// FeeDisburserFeesDisbursedIterator is returned from FilterFeesDisbursed and is used to iterate over the raw logs and unpacked data for FeesDisbursed events raised by the FeeDisburser contract. -type FeeDisburserFeesDisbursedIterator struct { - Event *FeeDisburserFeesDisbursed // Event containing the contract specifics and raw log - - contract *bind.BoundContract // Generic contract to use for unpacking event data - event string // Event name to use for unpacking event data - - logs chan types.Log // Log channel receiving the found contract events - sub ethereum.Subscription // Subscription for errors, completion and termination - done bool // Whether the subscription completed delivering logs - fail error // Occurred error to stop iteration -} - -// Next advances the iterator to the subsequent event, returning whether there -// are any more events found. In case of a retrieval or parsing error, false is -// returned and Error() can be queried for the exact failure. -func (it *FeeDisburserFeesDisbursedIterator) Next() bool { - // If the iterator failed, stop iterating - if it.fail != nil { - return false - } - // If the iterator completed, deliver directly whatever's available - if it.done { - select { - case log := <-it.logs: - it.Event = new(FeeDisburserFeesDisbursed) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - default: - return false - } - } - // Iterator still in progress, wait for either a data or an error event - select { - case log := <-it.logs: - it.Event = new(FeeDisburserFeesDisbursed) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - case err := <-it.sub.Err(): - it.done = true - it.fail = err - return it.Next() - } -} - -// Error returns any retrieval or parsing error occurred during filtering. -func (it *FeeDisburserFeesDisbursedIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *FeeDisburserFeesDisbursedIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// FeeDisburserFeesDisbursed represents a FeesDisbursed event raised by the FeeDisburser contract. -type FeeDisburserFeesDisbursed struct { - DisbursementTime *big.Int - PaidToOptimism *big.Int - TotalFeesDisbursed *big.Int - Raw types.Log // Blockchain specific contextual infos -} - -// FilterFeesDisbursed is a free log retrieval operation binding the contract event 0xe155e054cfe69655d6d2f8bbfb856aa8cdf49ecbea6557901533364539caad94. -// -// Solidity: event FeesDisbursed(uint256 _disbursementTime, uint256 _paidToOptimism, uint256 _totalFeesDisbursed) -func (_FeeDisburser *FeeDisburserFilterer) FilterFeesDisbursed(opts *bind.FilterOpts) (*FeeDisburserFeesDisbursedIterator, error) { - - logs, sub, err := _FeeDisburser.contract.FilterLogs(opts, "FeesDisbursed") - if err != nil { - return nil, err - } - return &FeeDisburserFeesDisbursedIterator{contract: _FeeDisburser.contract, event: "FeesDisbursed", logs: logs, sub: sub}, nil -} - -// WatchFeesDisbursed is a free log subscription operation binding the contract event 0xe155e054cfe69655d6d2f8bbfb856aa8cdf49ecbea6557901533364539caad94. -// -// Solidity: event FeesDisbursed(uint256 _disbursementTime, uint256 _paidToOptimism, uint256 _totalFeesDisbursed) -func (_FeeDisburser *FeeDisburserFilterer) WatchFeesDisbursed(opts *bind.WatchOpts, sink chan<- *FeeDisburserFeesDisbursed) (event.Subscription, error) { - - logs, sub, err := _FeeDisburser.contract.WatchLogs(opts, "FeesDisbursed") - if err != nil { - return nil, err - } - return event.NewSubscription(func(quit <-chan struct{}) error { - defer sub.Unsubscribe() - for { - select { - case log := <-logs: - // New log arrived, parse the event and forward to the user - event := new(FeeDisburserFeesDisbursed) - if err := _FeeDisburser.contract.UnpackLog(event, "FeesDisbursed", log); err != nil { - return err - } - event.Raw = log - - select { - case sink <- event: - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - } - }), nil -} - -// ParseFeesDisbursed is a log parse operation binding the contract event 0xe155e054cfe69655d6d2f8bbfb856aa8cdf49ecbea6557901533364539caad94. -// -// Solidity: event FeesDisbursed(uint256 _disbursementTime, uint256 _paidToOptimism, uint256 _totalFeesDisbursed) -func (_FeeDisburser *FeeDisburserFilterer) ParseFeesDisbursed(log types.Log) (*FeeDisburserFeesDisbursed, error) { - event := new(FeeDisburserFeesDisbursed) - if err := _FeeDisburser.contract.UnpackLog(event, "FeesDisbursed", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} - -// FeeDisburserFeesReceivedIterator is returned from FilterFeesReceived and is used to iterate over the raw logs and unpacked data for FeesReceived events raised by the FeeDisburser contract. -type FeeDisburserFeesReceivedIterator struct { - Event *FeeDisburserFeesReceived // Event containing the contract specifics and raw log - - contract *bind.BoundContract // Generic contract to use for unpacking event data - event string // Event name to use for unpacking event data - - logs chan types.Log // Log channel receiving the found contract events - sub ethereum.Subscription // Subscription for errors, completion and termination - done bool // Whether the subscription completed delivering logs - fail error // Occurred error to stop iteration -} - -// Next advances the iterator to the subsequent event, returning whether there -// are any more events found. In case of a retrieval or parsing error, false is -// returned and Error() can be queried for the exact failure. -func (it *FeeDisburserFeesReceivedIterator) Next() bool { - // If the iterator failed, stop iterating - if it.fail != nil { - return false - } - // If the iterator completed, deliver directly whatever's available - if it.done { - select { - case log := <-it.logs: - it.Event = new(FeeDisburserFeesReceived) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - default: - return false - } - } - // Iterator still in progress, wait for either a data or an error event - select { - case log := <-it.logs: - it.Event = new(FeeDisburserFeesReceived) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - case err := <-it.sub.Err(): - it.done = true - it.fail = err - return it.Next() - } -} - -// Error returns any retrieval or parsing error occurred during filtering. -func (it *FeeDisburserFeesReceivedIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *FeeDisburserFeesReceivedIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// FeeDisburserFeesReceived represents a FeesReceived event raised by the FeeDisburser contract. -type FeeDisburserFeesReceived struct { - Sender common.Address - Amount *big.Int - Raw types.Log // Blockchain specific contextual infos -} - -// FilterFeesReceived is a free log retrieval operation binding the contract event 0x2ccfc58c2cef4ee590b5f16be0548cc54afc12e1c66a67b362b7d640fd16bb2d. -// -// Solidity: event FeesReceived(address indexed _sender, uint256 _amount) -func (_FeeDisburser *FeeDisburserFilterer) FilterFeesReceived(opts *bind.FilterOpts, _sender []common.Address) (*FeeDisburserFeesReceivedIterator, error) { - - var _senderRule []interface{} - for _, _senderItem := range _sender { - _senderRule = append(_senderRule, _senderItem) - } - - logs, sub, err := _FeeDisburser.contract.FilterLogs(opts, "FeesReceived", _senderRule) - if err != nil { - return nil, err - } - return &FeeDisburserFeesReceivedIterator{contract: _FeeDisburser.contract, event: "FeesReceived", logs: logs, sub: sub}, nil -} - -// WatchFeesReceived is a free log subscription operation binding the contract event 0x2ccfc58c2cef4ee590b5f16be0548cc54afc12e1c66a67b362b7d640fd16bb2d. -// -// Solidity: event FeesReceived(address indexed _sender, uint256 _amount) -func (_FeeDisburser *FeeDisburserFilterer) WatchFeesReceived(opts *bind.WatchOpts, sink chan<- *FeeDisburserFeesReceived, _sender []common.Address) (event.Subscription, error) { - - var _senderRule []interface{} - for _, _senderItem := range _sender { - _senderRule = append(_senderRule, _senderItem) - } - - logs, sub, err := _FeeDisburser.contract.WatchLogs(opts, "FeesReceived", _senderRule) - if err != nil { - return nil, err - } - return event.NewSubscription(func(quit <-chan struct{}) error { - defer sub.Unsubscribe() - for { - select { - case log := <-logs: - // New log arrived, parse the event and forward to the user - event := new(FeeDisburserFeesReceived) - if err := _FeeDisburser.contract.UnpackLog(event, "FeesReceived", log); err != nil { - return err - } - event.Raw = log - - select { - case sink <- event: - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - } - }), nil -} - -// ParseFeesReceived is a log parse operation binding the contract event 0x2ccfc58c2cef4ee590b5f16be0548cc54afc12e1c66a67b362b7d640fd16bb2d. -// -// Solidity: event FeesReceived(address indexed _sender, uint256 _amount) -func (_FeeDisburser *FeeDisburserFilterer) ParseFeesReceived(log types.Log) (*FeeDisburserFeesReceived, error) { - event := new(FeeDisburserFeesReceived) - if err := _FeeDisburser.contract.UnpackLog(event, "FeesReceived", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} - -// FeeDisburserNoFeesCollectedIterator is returned from FilterNoFeesCollected and is used to iterate over the raw logs and unpacked data for NoFeesCollected events raised by the FeeDisburser contract. -type FeeDisburserNoFeesCollectedIterator struct { - Event *FeeDisburserNoFeesCollected // Event containing the contract specifics and raw log - - contract *bind.BoundContract // Generic contract to use for unpacking event data - event string // Event name to use for unpacking event data - - logs chan types.Log // Log channel receiving the found contract events - sub ethereum.Subscription // Subscription for errors, completion and termination - done bool // Whether the subscription completed delivering logs - fail error // Occurred error to stop iteration -} - -// Next advances the iterator to the subsequent event, returning whether there -// are any more events found. In case of a retrieval or parsing error, false is -// returned and Error() can be queried for the exact failure. -func (it *FeeDisburserNoFeesCollectedIterator) Next() bool { - // If the iterator failed, stop iterating - if it.fail != nil { - return false - } - // If the iterator completed, deliver directly whatever's available - if it.done { - select { - case log := <-it.logs: - it.Event = new(FeeDisburserNoFeesCollected) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - default: - return false - } - } - // Iterator still in progress, wait for either a data or an error event - select { - case log := <-it.logs: - it.Event = new(FeeDisburserNoFeesCollected) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - case err := <-it.sub.Err(): - it.done = true - it.fail = err - return it.Next() - } -} - -// Error returns any retrieval or parsing error occurred during filtering. -func (it *FeeDisburserNoFeesCollectedIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *FeeDisburserNoFeesCollectedIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// FeeDisburserNoFeesCollected represents a NoFeesCollected event raised by the FeeDisburser contract. -type FeeDisburserNoFeesCollected struct { - Raw types.Log // Blockchain specific contextual infos -} - -// FilterNoFeesCollected is a free log retrieval operation binding the contract event 0x8c887b1215d5e6b119c1c1008fe1d0919b4c438301d5a0357362a13fb56f6a40. -// -// Solidity: event NoFeesCollected() -func (_FeeDisburser *FeeDisburserFilterer) FilterNoFeesCollected(opts *bind.FilterOpts) (*FeeDisburserNoFeesCollectedIterator, error) { - - logs, sub, err := _FeeDisburser.contract.FilterLogs(opts, "NoFeesCollected") - if err != nil { - return nil, err - } - return &FeeDisburserNoFeesCollectedIterator{contract: _FeeDisburser.contract, event: "NoFeesCollected", logs: logs, sub: sub}, nil -} - -// WatchNoFeesCollected is a free log subscription operation binding the contract event 0x8c887b1215d5e6b119c1c1008fe1d0919b4c438301d5a0357362a13fb56f6a40. -// -// Solidity: event NoFeesCollected() -func (_FeeDisburser *FeeDisburserFilterer) WatchNoFeesCollected(opts *bind.WatchOpts, sink chan<- *FeeDisburserNoFeesCollected) (event.Subscription, error) { - - logs, sub, err := _FeeDisburser.contract.WatchLogs(opts, "NoFeesCollected") - if err != nil { - return nil, err - } - return event.NewSubscription(func(quit <-chan struct{}) error { - defer sub.Unsubscribe() - for { - select { - case log := <-logs: - // New log arrived, parse the event and forward to the user - event := new(FeeDisburserNoFeesCollected) - if err := _FeeDisburser.contract.UnpackLog(event, "NoFeesCollected", log); err != nil { - return err - } - event.Raw = log - - select { - case sink <- event: - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - } - }), nil -} - -// ParseNoFeesCollected is a log parse operation binding the contract event 0x8c887b1215d5e6b119c1c1008fe1d0919b4c438301d5a0357362a13fb56f6a40. -// -// Solidity: event NoFeesCollected() -func (_FeeDisburser *FeeDisburserFilterer) ParseNoFeesCollected(log types.Log) (*FeeDisburserNoFeesCollected, error) { - event := new(FeeDisburserNoFeesCollected) - if err := _FeeDisburser.contract.UnpackLog(event, "NoFeesCollected", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} diff --git a/bindings/go.mod b/bindings/go.mod deleted file mode 100644 index 96c1023e9..000000000 --- a/bindings/go.mod +++ /dev/null @@ -1,35 +0,0 @@ -module github.com/base/contracts/bindings - -go 1.23.0 - -toolchain go1.23.8 - -require github.com/ethereum/go-ethereum v1.15.8 - -require ( - github.com/Microsoft/go-winio v0.6.2 // indirect - github.com/StackExchange/wmi v1.2.1 // indirect - github.com/bits-and-blooms/bitset v1.17.0 // indirect - github.com/consensys/bavard v0.1.22 // indirect - github.com/consensys/gnark-crypto v0.14.0 // indirect - github.com/crate-crypto/go-ipa v0.0.0-20240724233137-53bbb0ceb27a // indirect - github.com/crate-crypto/go-kzg-4844 v1.1.0 // indirect - github.com/deckarep/golang-set/v2 v2.6.0 // indirect - github.com/decred/dcrd/dcrec/secp256k1/v4 v4.0.1 // indirect - github.com/ethereum/c-kzg-4844 v1.0.0 // indirect - github.com/ethereum/go-verkle v0.2.2 // indirect - github.com/fsnotify/fsnotify v1.6.0 // indirect - github.com/go-ole/go-ole v1.3.0 // indirect - github.com/google/uuid v1.3.0 // indirect - github.com/gorilla/websocket v1.4.2 // indirect - github.com/holiman/uint256 v1.3.2 // indirect - github.com/mmcloughlin/addchain v0.4.0 // indirect - github.com/shirou/gopsutil v3.21.4-0.20210419000835-c7a38de76ee5+incompatible // indirect - github.com/supranational/blst v0.3.14 // indirect - github.com/tklauser/go-sysconf v0.3.12 // indirect - github.com/tklauser/numcpus v0.6.1 // indirect - golang.org/x/crypto v0.35.0 // indirect - golang.org/x/sync v0.11.0 // indirect - golang.org/x/sys v0.30.0 // indirect - rsc.io/tmplfunc v0.0.3 // indirect -) diff --git a/bindings/go.sum b/bindings/go.sum deleted file mode 100644 index 1636650d7..000000000 --- a/bindings/go.sum +++ /dev/null @@ -1,212 +0,0 @@ -github.com/DataDog/zstd v1.4.5 h1:EndNeuB0l9syBZhut0wns3gV1hL8zX8LIu6ZiVHWLIQ= -github.com/DataDog/zstd v1.4.5/go.mod h1:1jcaCB/ufaK+sKp1NBhlGmpz41jOoPQ35bpF36t7BBo= -github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= -github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= -github.com/StackExchange/wmi v1.2.1 h1:VIkavFPXSjcnS+O8yTq7NI32k0R5Aj+v39y29VYDOSA= -github.com/StackExchange/wmi v1.2.1/go.mod h1:rcmrprowKIVzvc+NUiLncP2uuArMWLCbu9SBzvHz7e8= -github.com/VictoriaMetrics/fastcache v1.12.2 h1:N0y9ASrJ0F6h0QaC3o6uJb3NIZ9VKLjCM7NQbSmF7WI= -github.com/VictoriaMetrics/fastcache v1.12.2/go.mod h1:AmC+Nzz1+3G2eCPapF6UcsnkThDcMsQicp4xDukwJYI= -github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= -github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= -github.com/bits-and-blooms/bitset v1.17.0 h1:1X2TS7aHz1ELcC0yU1y2stUs/0ig5oMU6STFZGrhvHI= -github.com/bits-and-blooms/bitset v1.17.0/go.mod h1:7hO7Gc7Pp1vODcmWvKMRA9BNmbv6a/7QIWpPxHddWR8= -github.com/cespare/cp v0.1.0 h1:SE+dxFebS7Iik5LK0tsi1k9ZCxEaFX4AjQmoyA+1dJk= -github.com/cespare/cp v0.1.0/go.mod h1:SOGHArjBr4JWaSDEVpWpo/hNg6RoKrls6Oh40hiwW+s= -github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= -github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/cockroachdb/errors v1.11.3 h1:5bA+k2Y6r+oz/6Z/RFlNeVCesGARKuC6YymtcDrbC/I= -github.com/cockroachdb/errors v1.11.3/go.mod h1:m4UIW4CDjx+R5cybPsNrRbreomiFqt8o1h1wUVazSd8= -github.com/cockroachdb/fifo v0.0.0-20240606204812-0bbfbd93a7ce h1:giXvy4KSc/6g/esnpM7Geqxka4WSqI1SZc7sMJFd3y4= -github.com/cockroachdb/fifo v0.0.0-20240606204812-0bbfbd93a7ce/go.mod h1:9/y3cnZ5GKakj/H4y9r9GTjCvAFta7KLgSHPJJYc52M= -github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b h1:r6VH0faHjZeQy818SGhaone5OnYfxFR/+AzdY3sf5aE= -github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b/go.mod h1:Vz9DsVWQQhf3vs21MhPMZpMGSht7O/2vFW2xusFUVOs= -github.com/cockroachdb/pebble v1.1.2 h1:CUh2IPtR4swHlEj48Rhfzw6l/d0qA31fItcIszQVIsA= -github.com/cockroachdb/pebble v1.1.2/go.mod h1:4exszw1r40423ZsmkG/09AFEG83I0uDgfujJdbL6kYU= -github.com/cockroachdb/redact v1.1.5 h1:u1PMllDkdFfPWaNGMyLD1+so+aq3uUItthCFqzwPJ30= -github.com/cockroachdb/redact v1.1.5/go.mod h1:BVNblN9mBWFyMyqK1k3AAiSxhvhfK2oOZZ2lK+dpvRg= -github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06 h1:zuQyyAKVxetITBuuhv3BI9cMrmStnpT18zmgmTxunpo= -github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06/go.mod h1:7nc4anLGjupUW/PeY5qiNYsdNXj7zopG+eqsS7To5IQ= -github.com/consensys/bavard v0.1.22 h1:Uw2CGvbXSZWhqK59X0VG/zOjpTFuOMcPLStrp1ihI0A= -github.com/consensys/bavard v0.1.22/go.mod h1:k/zVjHHC4B+PQy1Pg7fgvG3ALicQw540Crag8qx+dZs= -github.com/consensys/gnark-crypto v0.14.0 h1:DDBdl4HaBtdQsq/wfMwJvZNE80sHidrK3Nfrefatm0E= -github.com/consensys/gnark-crypto v0.14.0/go.mod h1:CU4UijNPsHawiVGNxe9co07FkzCeWHHrb1li/n1XoU0= -github.com/cpuguy83/go-md2man/v2 v2.0.5 h1:ZtcqGrnekaHpVLArFSe4HK5DoKx1T0rq2DwVB0alcyc= -github.com/cpuguy83/go-md2man/v2 v2.0.5/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= -github.com/crate-crypto/go-ipa v0.0.0-20240724233137-53bbb0ceb27a h1:W8mUrRp6NOVl3J+MYp5kPMoUZPp7aOYHtaua31lwRHg= -github.com/crate-crypto/go-ipa v0.0.0-20240724233137-53bbb0ceb27a/go.mod h1:sTwzHBvIzm2RfVCGNEBZgRyjwK40bVoun3ZnGOCafNM= -github.com/crate-crypto/go-kzg-4844 v1.1.0 h1:EN/u9k2TF6OWSHrCCDBBU6GLNMq88OspHHlMnHfoyU4= -github.com/crate-crypto/go-kzg-4844 v1.1.0/go.mod h1:JolLjpSff1tCCJKaJx4psrlEdlXuJEC996PL3tTAFks= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= -github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/deckarep/golang-set/v2 v2.6.0 h1:XfcQbWM1LlMB8BsJ8N9vW5ehnnPVIw0je80NsVHagjM= -github.com/deckarep/golang-set/v2 v2.6.0/go.mod h1:VAky9rY/yGXJOLEDv3OMci+7wtDpOF4IN+y82NBOac4= -github.com/decred/dcrd/crypto/blake256 v1.0.0 h1:/8DMNYp9SGi5f0w7uCm6d6M4OU2rGFK09Y2A4Xv7EE0= -github.com/decred/dcrd/crypto/blake256 v1.0.0/go.mod h1:sQl2p6Y26YV+ZOcSTP6thNdn47hh8kt6rqSlvmrXFAc= -github.com/decred/dcrd/dcrec/secp256k1/v4 v4.0.1 h1:YLtO71vCjJRCBcrPMtQ9nqBsqpA1m5sE92cU+pd5Mcc= -github.com/decred/dcrd/dcrec/secp256k1/v4 v4.0.1/go.mod h1:hyedUtir6IdtD/7lIxGeCxkaw7y45JueMRL4DIyJDKs= -github.com/deepmap/oapi-codegen v1.6.0 h1:w/d1ntwh91XI0b/8ja7+u5SvA4IFfM0UNNLmiDR1gg0= -github.com/deepmap/oapi-codegen v1.6.0/go.mod h1:ryDa9AgbELGeB+YEXE1dR53yAjHwFvE9iAUlWl9Al3M= -github.com/ethereum/c-kzg-4844 v1.0.0 h1:0X1LBXxaEtYD9xsyj9B9ctQEZIpnvVDeoBx8aHEwTNA= -github.com/ethereum/c-kzg-4844 v1.0.0/go.mod h1:VewdlzQmpT5QSrVhbBuGoCdFJkpaJlO1aQputP83wc0= -github.com/ethereum/go-ethereum v1.15.8 h1:H6NilvRXFVoHiXZ3zkuTqKW5XcxjLZniV5UjxJt1GJU= -github.com/ethereum/go-ethereum v1.15.8/go.mod h1:+S9k+jFzlyVTNcYGvqFhzN/SFhI6vA+aOY4T5tLSPL0= -github.com/ethereum/go-verkle v0.2.2 h1:I2W0WjnrFUIzzVPwm8ykY+7pL2d4VhlsePn4j7cnFk8= -github.com/ethereum/go-verkle v0.2.2/go.mod h1:M3b90YRnzqKyyzBEWJGqj8Qff4IDeXnzFw0P9bFw3uk= -github.com/ferranbt/fastssz v0.1.2 h1:Dky6dXlngF6Qjc+EfDipAkE83N5I5DE68bY6O0VLNPk= -github.com/ferranbt/fastssz v0.1.2/go.mod h1:X5UPrE2u1UJjxHA8X54u04SBwdAQjG2sFtWs39YxyWs= -github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY= -github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw= -github.com/gballet/go-libpcsclite v0.0.0-20190607065134-2772fd86a8ff h1:tY80oXqGNY4FhTFhk+o9oFHGINQ/+vhlm8HFzi6znCI= -github.com/gballet/go-libpcsclite v0.0.0-20190607065134-2772fd86a8ff/go.mod h1:x7DCsMOv1taUwEWCzT4cmDeAkigA5/QCwUodaVOe8Ww= -github.com/getsentry/sentry-go v0.27.0 h1:Pv98CIbtB3LkMWmXi4Joa5OOcwbmnX88sF5qbK3r3Ps= -github.com/getsentry/sentry-go v0.27.0/go.mod h1:lc76E2QywIyW8WuBnwl8Lc4bkmQH4+w1gwTf25trprY= -github.com/go-ole/go-ole v1.2.5/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= -github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= -github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= -github.com/gofrs/flock v0.8.1 h1:+gYjHKf32LDeiEEFhQaotPbLuUXjY5ZqxKgXy7n59aw= -github.com/gofrs/flock v0.8.1/go.mod h1:F1TvTiK9OcQqauNUHlbJvyl9Qa1QvF/gOUDKA14jxHU= -github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= -github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= -github.com/golang-jwt/jwt/v4 v4.5.1 h1:JdqV9zKUdtaa9gdPlywC3aeoEsR681PlKC+4F5gQgeo= -github.com/golang-jwt/jwt/v4 v4.5.1/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= -github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= -github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= -github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb h1:PBC98N2aIaM3XXiurYmW7fx4GZkL8feAMVq7nEjURHk= -github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= -github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= -github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= -github.com/google/subcommands v1.2.0/go.mod h1:ZjhPrFU+Olkh9WazFPsl27BQ4UPiG37m3yTrtFlrHVk= -github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I= -github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/gorilla/websocket v1.4.2 h1:+/TMaTYc4QFitKJxsQ7Yye35DkWvkdLcvGKqM+x0Ufc= -github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= -github.com/graph-gophers/graphql-go v1.3.0 h1:Eb9x/q6MFpCLz7jBCiP/WTxjSDrYLR1QY41SORZyNJ0= -github.com/graph-gophers/graphql-go v1.3.0/go.mod h1:9CQHMSxwO4MprSdzoIEobiHpoLtHm77vfxsvsIN5Vuc= -github.com/hashicorp/go-bexpr v0.1.10 h1:9kuI5PFotCboP3dkDYFr/wi0gg0QVbSNz5oFRpxn4uE= -github.com/hashicorp/go-bexpr v0.1.10/go.mod h1:oxlubA2vC/gFVfX1A6JGp7ls7uCDlfJn732ehYYg+g0= -github.com/holiman/billy v0.0.0-20240216141850-2abb0c79d3c4 h1:X4egAf/gcS1zATw6wn4Ej8vjuVGxeHdan+bRb2ebyv4= -github.com/holiman/billy v0.0.0-20240216141850-2abb0c79d3c4/go.mod h1:5GuXa7vkL8u9FkFuWdVvfR5ix8hRB7DbOAaYULamFpc= -github.com/holiman/bloomfilter/v2 v2.0.3 h1:73e0e/V0tCydx14a0SCYS/EWCxgwLZ18CZcZKVu0fao= -github.com/holiman/bloomfilter/v2 v2.0.3/go.mod h1:zpoh+gs7qcpqrHr3dB55AMiJwo0iURXE7ZOP9L9hSkA= -github.com/holiman/uint256 v1.3.2 h1:a9EgMPSC1AAaj1SZL5zIQD3WbwTuHrMGOerLjGmM/TA= -github.com/holiman/uint256 v1.3.2/go.mod h1:EOMSn4q6Nyt9P6efbI3bueV4e1b3dGlUCXeiRV4ng7E= -github.com/huin/goupnp v1.3.0 h1:UvLUlWDNpoUdYzb2TCn+MuTWtcjXKSza2n6CBdQ0xXc= -github.com/huin/goupnp v1.3.0/go.mod h1:gnGPsThkYa7bFi/KWmEysQRf48l2dvR5bxr2OFckNX8= -github.com/influxdata/influxdb-client-go/v2 v2.4.0 h1:HGBfZYStlx3Kqvsv1h2pJixbCl/jhnFtxpKFAv9Tu5k= -github.com/influxdata/influxdb-client-go/v2 v2.4.0/go.mod h1:vLNHdxTJkIf2mSLvGrpj8TCcISApPoXkaxP8g9uRlW8= -github.com/influxdata/influxdb1-client v0.0.0-20220302092344-a9ab5670611c h1:qSHzRbhzK8RdXOsAdfDgO49TtqC1oZ+acxPrkfTxcCs= -github.com/influxdata/influxdb1-client v0.0.0-20220302092344-a9ab5670611c/go.mod h1:qj24IKcXYK6Iy9ceXlo3Tc+vtHo9lIhSX5JddghvEPo= -github.com/influxdata/line-protocol v0.0.0-20200327222509-2487e7298839 h1:W9WBk7wlPfJLvMCdtV4zPulc4uCPrlywQOmbFOhgQNU= -github.com/influxdata/line-protocol v0.0.0-20200327222509-2487e7298839/go.mod h1:xaLFMmpvUxqXtVkUJfg9QmT88cDaCJ3ZKgdZ78oO8Qo= -github.com/jackpal/go-nat-pmp v1.0.2 h1:KzKSgb7qkJvOUTqYl9/Hg/me3pWgBmERKrTGD7BdWus= -github.com/jackpal/go-nat-pmp v1.0.2/go.mod h1:QPH045xvCAeXUZOxsnwmrtiCoxIr9eob+4orBN1SBKc= -github.com/klauspost/compress v1.16.0 h1:iULayQNOReoYUe+1qtKOqw9CwJv3aNQu8ivo7lw1HU4= -github.com/klauspost/compress v1.16.0/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= -github.com/klauspost/cpuid/v2 v2.0.9 h1:lgaqFMSdTdQYdZ04uHyN2d/eKdOMyi2YLSvlQIBFYa4= -github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= -github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= -github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= -github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= -github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= -github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= -github.com/leanovate/gopter v0.2.11 h1:vRjThO1EKPb/1NsDXuDrzldR28RLkBflWYcU9CvzWu4= -github.com/leanovate/gopter v0.2.11/go.mod h1:aK3tzZP/C+p1m3SPRE4SYZFGP7jjkuSI4f7Xvpt0S9c= -github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= -github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= -github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= -github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= -github.com/mattn/go-runewidth v0.0.13 h1:lTGmDsbAYt5DmK6OnoV7EuIF1wEIFAcxld6ypU4OSgU= -github.com/mattn/go-runewidth v0.0.13/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= -github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 h1:I0XW9+e1XWDxdcEniV4rQAIOPUGDq67JSCiRCgGCZLI= -github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= -github.com/minio/sha256-simd v1.0.0 h1:v1ta+49hkWZyvaKwrQB8elexRqm6Y0aMLjCNsrYxo6g= -github.com/minio/sha256-simd v1.0.0/go.mod h1:OuYzVNI5vcoYIAmbIvHPl3N3jUzVedXbKy5RFepssQM= -github.com/mitchellh/mapstructure v1.4.1 h1:CpVNEelQCZBooIPDn+AR3NpivK/TIKU8bDxdASFVQag= -github.com/mitchellh/mapstructure v1.4.1/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= -github.com/mitchellh/pointerstructure v1.2.0 h1:O+i9nHnXS3l/9Wu7r4NrEdwA2VFTicjUEN1uBnDo34A= -github.com/mitchellh/pointerstructure v1.2.0/go.mod h1:BRAsLI5zgXmw97Lf6s25bs8ohIXc3tViBH44KcwB2g4= -github.com/mmcloughlin/addchain v0.4.0 h1:SobOdjm2xLj1KkXN5/n0xTIWyZA2+s99UCY1iPfkHRY= -github.com/mmcloughlin/addchain v0.4.0/go.mod h1:A86O+tHqZLMNO4w6ZZ4FlVQEadcoqkyU72HC5wJ4RlU= -github.com/mmcloughlin/profile v0.1.1/go.mod h1:IhHD7q1ooxgwTgjxQYkACGA77oFTDdFVejUS1/tS/qU= -github.com/olekukonko/tablewriter v0.0.5 h1:P2Ga83D34wi1o9J6Wh1mRuqd4mF/x/lgBS7N7AbDhec= -github.com/olekukonko/tablewriter v0.0.5/go.mod h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY= -github.com/opentracing/opentracing-go v1.1.0 h1:pWlfV3Bxv7k65HYwkikxat0+s3pV4bsqf19k25Ur8rU= -github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= -github.com/peterh/liner v1.1.1-0.20190123174540-a2c9a5303de7 h1:oYW+YCJ1pachXTQmzR3rNLYGGz4g/UgFcjb28p/viDM= -github.com/peterh/liner v1.1.1-0.20190123174540-a2c9a5303de7/go.mod h1:CRroGNssyjTd/qIG2FyxByd2S8JEAZXBl4qUrZf8GS0= -github.com/pion/dtls/v2 v2.2.7 h1:cSUBsETxepsCSFSxC3mc/aDo14qQLMSL+O6IjG28yV8= -github.com/pion/dtls/v2 v2.2.7/go.mod h1:8WiMkebSHFD0T+dIU+UeBaoV7kDhOW5oDCzZ7WZ/F9s= -github.com/pion/logging v0.2.2 h1:M9+AIj/+pxNsDfAT64+MAVgJO0rsyLnoJKCqf//DoeY= -github.com/pion/logging v0.2.2/go.mod h1:k0/tDVsRCX2Mb2ZEmTqNa7CWsQPc+YYCB7Q+5pahoms= -github.com/pion/stun/v2 v2.0.0 h1:A5+wXKLAypxQri59+tmQKVs7+l6mMM+3d+eER9ifRU0= -github.com/pion/stun/v2 v2.0.0/go.mod h1:22qRSh08fSEttYUmJZGlriq9+03jtVmXNODgLccj8GQ= -github.com/pion/transport/v2 v2.2.1 h1:7qYnCBlpgSJNYMbLCKuSY9KbQdBFoETvPNETv0y4N7c= -github.com/pion/transport/v2 v2.2.1/go.mod h1:cXXWavvCnFF6McHTft3DWS9iic2Mftcz1Aq29pGcU5g= -github.com/pion/transport/v3 v3.0.1 h1:gDTlPJwROfSfz6QfSi0ZmeCSkFcnWWiiR9ES0ouANiM= -github.com/pion/transport/v3 v3.0.1/go.mod h1:UY7kiITrlMv7/IKgd5eTUcaahZx5oUN3l9SzK5f5xE0= -github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= -github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/prometheus/client_golang v1.12.0 h1:C+UIj/QWtmqY13Arb8kwMt5j34/0Z2iKamrJ+ryC0Gg= -github.com/prometheus/client_golang v1.12.0/go.mod h1:3Z9XVyYiZYEO+YQWt3RD2R3jrbd179Rt297l4aS6nDY= -github.com/prometheus/client_model v0.2.1-0.20210607210712-147c58e9608a h1:CmF68hwI0XsOQ5UwlBopMi2Ow4Pbg32akc4KIVCOm+Y= -github.com/prometheus/client_model v0.2.1-0.20210607210712-147c58e9608a/go.mod h1:LDGWKZIo7rky3hgvBe+caln+Dr3dPggB5dvjtD7w9+w= -github.com/prometheus/common v0.32.1 h1:hWIdL3N2HoUx3B8j3YN9mWor0qhY/NlEKZEaXxuIRh4= -github.com/prometheus/common v0.32.1/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls= -github.com/prometheus/procfs v0.7.3 h1:4jVXhlkAyzOScmCkXBTOLRLTz8EeU+eyjrwB/EPq0VU= -github.com/prometheus/procfs v0.7.3/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= -github.com/rivo/uniseg v0.2.0 h1:S1pD9weZBuJdFmowNwbpi7BJ8TNftyUImj/0WQi72jY= -github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= -github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8= -github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= -github.com/rs/cors v1.7.0 h1:+88SsELBHx5r+hZ8TCkggzSstaWNbDvThkVK8H6f9ik= -github.com/rs/cors v1.7.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU= -github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk= -github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/shirou/gopsutil v3.21.4-0.20210419000835-c7a38de76ee5+incompatible h1:Bn1aCHHRnjv4Bl16T8rcaFjYSrGrIZvpiGO6P3Q4GpU= -github.com/shirou/gopsutil v3.21.4-0.20210419000835-c7a38de76ee5+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA= -github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= -github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= -github.com/supranational/blst v0.3.14 h1:xNMoHRJOTwMn63ip6qoWJ2Ymgvj7E2b9jY2FAwY+qRo= -github.com/supranational/blst v0.3.14/go.mod h1:jZJtfjgudtNl4en1tzwPIV3KjUnQUvG3/j+w+fVonLw= -github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7 h1:epCh84lMvA70Z7CTTCmYQn2CKbY8j86K7/FAIr141uY= -github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7/go.mod h1:q4W45IWZaF22tdD+VEXcAWRA037jwmWEB5VWYORlTpc= -github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= -github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= -github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= -github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY= -github.com/urfave/cli/v2 v2.27.5 h1:WoHEJLdsXr6dDWoJgMq/CboDmyY/8HMMH1fTECbih+w= -github.com/urfave/cli/v2 v2.27.5/go.mod h1:3Sevf16NykTbInEnD0yKkjDAeZDS0A6bzhBH5hrMvTQ= -github.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1 h1:gEOO8jv9F4OT7lGCjxCBTO/36wtF6j2nSip77qHd4x4= -github.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1/go.mod h1:Ohn+xnUBiLI6FVj/9LpzZWtj1/D6lUovWYBkxHVV3aM= -golang.org/x/crypto v0.35.0 h1:b15kiHdrGCHrP6LvwaQ3c03kgNhhiMgvlhxHQhmg2Xs= -golang.org/x/crypto v0.35.0/go.mod h1:dy7dXNW32cAb/6/PRuTNsix8T+vJAqvuIy5Bli/x0YQ= -golang.org/x/exp v0.0.0-20230626212559-97b1e661b5df h1:UA2aFVmmsIlefxMk29Dp2juaUSth8Pyn3Tq5Y5mJGME= -golang.org/x/exp v0.0.0-20230626212559-97b1e661b5df/go.mod h1:FXUEEKJgO7OQYeo8N01OfiKP8RXMtf6e8aTskBGqWdc= -golang.org/x/net v0.36.0 h1:vWF2fRbw4qslQsQzgFqZff+BItCvGFQqKzKIzx1rmoA= -golang.org/x/net v0.36.0/go.mod h1:bFmbeoIPfrw4sMHNhb4J9f6+tPziuGjq7Jk/38fxi1I= -golang.org/x/sync v0.11.0 h1:GGz8+XQP4FvTTrjZPzNKTMFtSXH80RAzG+5ghFPgK9w= -golang.org/x/sync v0.11.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= -golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.30.0 h1:QjkSwP/36a20jFYWkSue1YwXzLmsV5Gfq7Eiy72C1uc= -golang.org/x/sys v0.30.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/text v0.22.0 h1:bofq7m3/HAFvbF51jz3Q9wLg3jkvSPuiZu/pD1XwgtM= -golang.org/x/text v0.22.0/go.mod h1:YRoo4H8PVmsu+E3Ou7cqLVH8oXWIHVoX0jqUWALQhfY= -golang.org/x/time v0.9.0 h1:EsRrnYcQiGH+5FfbgvV4AP7qEZstoyrHB0DzarOQ4ZY= -golang.org/x/time v0.9.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= -google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg= -google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw= -gopkg.in/natefinch/lumberjack.v2 v2.2.1 h1:bBRl1b0OH9s/DuPhuXpNl+VtCaJXFZ5/uEFST95x9zc= -gopkg.in/natefinch/lumberjack.v2 v2.2.1/go.mod h1:YD8tP3GAjkrDg1eZH7EGmyESg/lsYskCTPBJVb9jqSc= -gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= -gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= -gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= -gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -rsc.io/tmplfunc v0.0.3 h1:53XFQh69AfOa8Tw0Jm7t+GV7KZhOi6jzsCzTtKbMvzU= -rsc.io/tmplfunc v0.0.3/go.mod h1:AG3sTPzElb1Io3Yg4voV9AGZJuleGAwaVRxL9M49PhA= diff --git a/bindings/rust/Cargo.toml b/bindings/rust/Cargo.toml new file mode 100644 index 000000000..985b946dd --- /dev/null +++ b/bindings/rust/Cargo.toml @@ -0,0 +1,8 @@ +[package] +name = "base-contracts-bindings" +version = "0.1.0" +edition = "2021" + +[dependencies] +alloy = { version = "1.0", features = ["sol-types", "contract"] } +serde = { version = "1.0", features = ["derive"] } \ No newline at end of file diff --git a/bindings/rust/src/access_manager.rs b/bindings/rust/src/access_manager.rs new file mode 100644 index 000000000..2c744caf1 --- /dev/null +++ b/bindings/rust/src/access_manager.rs @@ -0,0 +1,3912 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface AccessManager { + event ChallengerPermissionUpdated(address indexed challenger, bool allowed); + event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); + event ProposerPermissionUpdated(address indexed proposer, bool allowed); + + function DEPLOYMENT_TIMESTAMP() external view returns (uint256); + function DISPUTE_GAME_FACTORY() external view returns (address); + function FALLBACK_TIMEOUT() external view returns (uint256); + function challengers(address) external view returns (bool); + function getLastProposalTimestamp() external view returns (uint256); + function isAllowedChallenger(address _challenger) external view returns (bool allowed_); + function isAllowedProposer(address _proposer) external view returns (bool allowed_); + function isProposalPermissionlessMode() external view returns (bool); + function owner() external view returns (address); + function proposers(address) external view returns (bool); + function renounceOwnership() external; + function setChallenger(address _challenger, bool _allowed) external; + function setProposer(address _proposer, bool _allowed) external; + function transferOwnership(address newOwner) external; +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "function", + "name": "DEPLOYMENT_TIMESTAMP", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "DISPUTE_GAME_FACTORY", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract IDisputeGameFactory" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "FALLBACK_TIMEOUT", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "challengers", + "inputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "getLastProposalTimestamp", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "isAllowedChallenger", + "inputs": [ + { + "name": "_challenger", + "type": "address", + "internalType": "address" + } + ], + "outputs": [ + { + "name": "allowed_", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "isAllowedProposer", + "inputs": [ + { + "name": "_proposer", + "type": "address", + "internalType": "address" + } + ], + "outputs": [ + { + "name": "allowed_", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "isProposalPermissionlessMode", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "owner", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "proposers", + "inputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "renounceOwnership", + "inputs": [], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "setChallenger", + "inputs": [ + { + "name": "_challenger", + "type": "address", + "internalType": "address" + }, + { + "name": "_allowed", + "type": "bool", + "internalType": "bool" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "setProposer", + "inputs": [ + { + "name": "_proposer", + "type": "address", + "internalType": "address" + }, + { + "name": "_allowed", + "type": "bool", + "internalType": "bool" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "transferOwnership", + "inputs": [ + { + "name": "newOwner", + "type": "address", + "internalType": "address" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "event", + "name": "ChallengerPermissionUpdated", + "inputs": [ + { + "name": "challenger", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "allowed", + "type": "bool", + "indexed": false, + "internalType": "bool" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "OwnershipTransferred", + "inputs": [ + { + "name": "previousOwner", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "newOwner", + "type": "address", + "indexed": true, + "internalType": "address" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "ProposerPermissionUpdated", + "inputs": [ + { + "name": "proposer", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "allowed", + "type": "bool", + "indexed": false, + "internalType": "bool" + } + ], + "anonymous": false + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod AccessManager { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"", + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `ChallengerPermissionUpdated(address,bool)` and selector `0x761bede702fa6507fd979a5c4213a8d5d38b47ae9f7736506eafe9149c6c6b77`. +```solidity +event ChallengerPermissionUpdated(address indexed challenger, bool allowed); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct ChallengerPermissionUpdated { + #[allow(missing_docs)] + pub challenger: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub allowed: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for ChallengerPermissionUpdated { + type DataTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "ChallengerPermissionUpdated(address,bool)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 118u8, 27u8, 237u8, 231u8, 2u8, 250u8, 101u8, 7u8, 253u8, 151u8, 154u8, + 92u8, 66u8, 19u8, 168u8, 213u8, 211u8, 139u8, 71u8, 174u8, 159u8, 119u8, + 54u8, 80u8, 110u8, 175u8, 233u8, 20u8, 156u8, 108u8, 107u8, 119u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + challenger: topics.1, + allowed: data.0, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + ::tokenize( + &self.allowed, + ), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.challenger.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.challenger, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for ChallengerPermissionUpdated { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&ChallengerPermissionUpdated> for alloy_sol_types::private::LogData { + #[inline] + fn from( + this: &ChallengerPermissionUpdated, + ) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `OwnershipTransferred(address,address)` and selector `0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0`. +```solidity +event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct OwnershipTransferred { + #[allow(missing_docs)] + pub previousOwner: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub newOwner: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for OwnershipTransferred { + type DataTuple<'a> = (); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "OwnershipTransferred(address,address)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 139u8, 224u8, 7u8, 156u8, 83u8, 22u8, 89u8, 20u8, 19u8, 68u8, 205u8, + 31u8, 208u8, 164u8, 242u8, 132u8, 25u8, 73u8, 127u8, 151u8, 34u8, 163u8, + 218u8, 175u8, 227u8, 180u8, 24u8, 111u8, 107u8, 100u8, 87u8, 224u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + previousOwner: topics.1, + newOwner: topics.2, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + () + } + #[inline] + fn topics(&self) -> ::RustType { + ( + Self::SIGNATURE_HASH.into(), + self.previousOwner.clone(), + self.newOwner.clone(), + ) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.previousOwner, + ); + out[2usize] = ::encode_topic( + &self.newOwner, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for OwnershipTransferred { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&OwnershipTransferred> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &OwnershipTransferred) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `ProposerPermissionUpdated(address,bool)` and selector `0x205b4586f0aad63e3849b0c69893bd6139aca673e7f16088c504691c6502cee4`. +```solidity +event ProposerPermissionUpdated(address indexed proposer, bool allowed); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct ProposerPermissionUpdated { + #[allow(missing_docs)] + pub proposer: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub allowed: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for ProposerPermissionUpdated { + type DataTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "ProposerPermissionUpdated(address,bool)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 32u8, 91u8, 69u8, 134u8, 240u8, 170u8, 214u8, 62u8, 56u8, 73u8, 176u8, + 198u8, 152u8, 147u8, 189u8, 97u8, 57u8, 172u8, 166u8, 115u8, 231u8, + 241u8, 96u8, 136u8, 197u8, 4u8, 105u8, 28u8, 101u8, 2u8, 206u8, 228u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + proposer: topics.1, + allowed: data.0, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + ::tokenize( + &self.allowed, + ), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.proposer.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.proposer, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for ProposerPermissionUpdated { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&ProposerPermissionUpdated> for alloy_sol_types::private::LogData { + #[inline] + fn from( + this: &ProposerPermissionUpdated, + ) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `DEPLOYMENT_TIMESTAMP()` and selector `0xfbc6def7`. +```solidity +function DEPLOYMENT_TIMESTAMP() external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct DEPLOYMENT_TIMESTAMPCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`DEPLOYMENT_TIMESTAMP()`](DEPLOYMENT_TIMESTAMPCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct DEPLOYMENT_TIMESTAMPReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: DEPLOYMENT_TIMESTAMPCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for DEPLOYMENT_TIMESTAMPCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: DEPLOYMENT_TIMESTAMPReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for DEPLOYMENT_TIMESTAMPReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for DEPLOYMENT_TIMESTAMPCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "DEPLOYMENT_TIMESTAMP()"; + const SELECTOR: [u8; 4] = [251u8, 198u8, 222u8, 247u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: DEPLOYMENT_TIMESTAMPReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: DEPLOYMENT_TIMESTAMPReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `DISPUTE_GAME_FACTORY()` and selector `0x82ff53a1`. +```solidity +function DISPUTE_GAME_FACTORY() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct DISPUTE_GAME_FACTORYCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`DISPUTE_GAME_FACTORY()`](DISPUTE_GAME_FACTORYCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct DISPUTE_GAME_FACTORYReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: DISPUTE_GAME_FACTORYCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for DISPUTE_GAME_FACTORYCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: DISPUTE_GAME_FACTORYReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for DISPUTE_GAME_FACTORYReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for DISPUTE_GAME_FACTORYCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "DISPUTE_GAME_FACTORY()"; + const SELECTOR: [u8; 4] = [130u8, 255u8, 83u8, 161u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: DISPUTE_GAME_FACTORYReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: DISPUTE_GAME_FACTORYReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `FALLBACK_TIMEOUT()` and selector `0xd33b3505`. +```solidity +function FALLBACK_TIMEOUT() external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct FALLBACK_TIMEOUTCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`FALLBACK_TIMEOUT()`](FALLBACK_TIMEOUTCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct FALLBACK_TIMEOUTReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: FALLBACK_TIMEOUTCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for FALLBACK_TIMEOUTCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: FALLBACK_TIMEOUTReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for FALLBACK_TIMEOUTReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for FALLBACK_TIMEOUTCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "FALLBACK_TIMEOUT()"; + const SELECTOR: [u8; 4] = [211u8, 59u8, 53u8, 5u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: FALLBACK_TIMEOUTReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: FALLBACK_TIMEOUTReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `challengers(address)` and selector `0xcfea71c0`. +```solidity +function challengers(address) external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct challengersCall(pub alloy::sol_types::private::Address); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`challengers(address)`](challengersCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct challengersReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: challengersCall) -> Self { + (value.0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for challengersCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self(tuple.0) + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: challengersReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for challengersReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for challengersCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "challengers(address)"; + const SELECTOR: [u8; 4] = [207u8, 234u8, 113u8, 192u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.0, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: challengersReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: challengersReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `getLastProposalTimestamp()` and selector `0x8620689d`. +```solidity +function getLastProposalTimestamp() external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getLastProposalTimestampCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`getLastProposalTimestamp()`](getLastProposalTimestampCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getLastProposalTimestampReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: getLastProposalTimestampCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for getLastProposalTimestampCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: getLastProposalTimestampReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for getLastProposalTimestampReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for getLastProposalTimestampCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "getLastProposalTimestamp()"; + const SELECTOR: [u8; 4] = [134u8, 32u8, 104u8, 157u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: getLastProposalTimestampReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: getLastProposalTimestampReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `isAllowedChallenger(address)` and selector `0xff59ae7d`. +```solidity +function isAllowedChallenger(address _challenger) external view returns (bool allowed_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct isAllowedChallengerCall { + #[allow(missing_docs)] + pub _challenger: alloy::sol_types::private::Address, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`isAllowedChallenger(address)`](isAllowedChallengerCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct isAllowedChallengerReturn { + #[allow(missing_docs)] + pub allowed_: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: isAllowedChallengerCall) -> Self { + (value._challenger,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for isAllowedChallengerCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _challenger: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: isAllowedChallengerReturn) -> Self { + (value.allowed_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for isAllowedChallengerReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { allowed_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for isAllowedChallengerCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "isAllowedChallenger(address)"; + const SELECTOR: [u8; 4] = [255u8, 89u8, 174u8, 125u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._challenger, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: isAllowedChallengerReturn = r.into(); + r.allowed_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: isAllowedChallengerReturn = r.into(); + r.allowed_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `isAllowedProposer(address)` and selector `0x1d3225e3`. +```solidity +function isAllowedProposer(address _proposer) external view returns (bool allowed_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct isAllowedProposerCall { + #[allow(missing_docs)] + pub _proposer: alloy::sol_types::private::Address, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`isAllowedProposer(address)`](isAllowedProposerCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct isAllowedProposerReturn { + #[allow(missing_docs)] + pub allowed_: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: isAllowedProposerCall) -> Self { + (value._proposer,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for isAllowedProposerCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _proposer: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: isAllowedProposerReturn) -> Self { + (value.allowed_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for isAllowedProposerReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { allowed_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for isAllowedProposerCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "isAllowedProposer(address)"; + const SELECTOR: [u8; 4] = [29u8, 50u8, 37u8, 227u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._proposer, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: isAllowedProposerReturn = r.into(); + r.allowed_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: isAllowedProposerReturn = r.into(); + r.allowed_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `isProposalPermissionlessMode()` and selector `0x0c8b0fdf`. +```solidity +function isProposalPermissionlessMode() external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct isProposalPermissionlessModeCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`isProposalPermissionlessMode()`](isProposalPermissionlessModeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct isProposalPermissionlessModeReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: isProposalPermissionlessModeCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for isProposalPermissionlessModeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: isProposalPermissionlessModeReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for isProposalPermissionlessModeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for isProposalPermissionlessModeCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "isProposalPermissionlessMode()"; + const SELECTOR: [u8; 4] = [12u8, 139u8, 15u8, 223u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: isProposalPermissionlessModeReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: isProposalPermissionlessModeReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `owner()` and selector `0x8da5cb5b`. +```solidity +function owner() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ownerCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`owner()`](ownerCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ownerReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ownerCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ownerCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ownerReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ownerReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for ownerCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "owner()"; + const SELECTOR: [u8; 4] = [141u8, 165u8, 203u8, 91u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: ownerReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: ownerReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `proposers(address)` and selector `0x18177497`. +```solidity +function proposers(address) external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct proposersCall(pub alloy::sol_types::private::Address); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`proposers(address)`](proposersCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct proposersReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: proposersCall) -> Self { + (value.0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for proposersCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self(tuple.0) + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: proposersReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for proposersReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for proposersCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "proposers(address)"; + const SELECTOR: [u8; 4] = [24u8, 23u8, 116u8, 151u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.0, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: proposersReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: proposersReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `renounceOwnership()` and selector `0x715018a6`. +```solidity +function renounceOwnership() external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct renounceOwnershipCall; + ///Container type for the return parameters of the [`renounceOwnership()`](renounceOwnershipCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct renounceOwnershipReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: renounceOwnershipCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for renounceOwnershipCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: renounceOwnershipReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for renounceOwnershipReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl renounceOwnershipReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for renounceOwnershipCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = renounceOwnershipReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "renounceOwnership()"; + const SELECTOR: [u8; 4] = [113u8, 80u8, 24u8, 166u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + renounceOwnershipReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `setChallenger(address,bool)` and selector `0x92b5d190`. +```solidity +function setChallenger(address _challenger, bool _allowed) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setChallengerCall { + #[allow(missing_docs)] + pub _challenger: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _allowed: bool, + } + ///Container type for the return parameters of the [`setChallenger(address,bool)`](setChallengerCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setChallengerReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Bool, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address, bool); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: setChallengerCall) -> Self { + (value._challenger, value._allowed) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for setChallengerCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _challenger: tuple.0, + _allowed: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: setChallengerReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for setChallengerReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl setChallengerReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for setChallengerCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Bool, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = setChallengerReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "setChallenger(address,bool)"; + const SELECTOR: [u8; 4] = [146u8, 181u8, 209u8, 144u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._challenger, + ), + ::tokenize( + &self._allowed, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + setChallengerReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `setProposer(address,bool)` and selector `0xe9ed9b64`. +```solidity +function setProposer(address _proposer, bool _allowed) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setProposerCall { + #[allow(missing_docs)] + pub _proposer: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _allowed: bool, + } + ///Container type for the return parameters of the [`setProposer(address,bool)`](setProposerCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setProposerReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Bool, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address, bool); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: setProposerCall) -> Self { + (value._proposer, value._allowed) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for setProposerCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _proposer: tuple.0, + _allowed: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: setProposerReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for setProposerReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl setProposerReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for setProposerCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Bool, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = setProposerReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "setProposer(address,bool)"; + const SELECTOR: [u8; 4] = [233u8, 237u8, 155u8, 100u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._proposer, + ), + ::tokenize( + &self._allowed, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + setProposerReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `transferOwnership(address)` and selector `0xf2fde38b`. +```solidity +function transferOwnership(address newOwner) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct transferOwnershipCall { + #[allow(missing_docs)] + pub newOwner: alloy::sol_types::private::Address, + } + ///Container type for the return parameters of the [`transferOwnership(address)`](transferOwnershipCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct transferOwnershipReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: transferOwnershipCall) -> Self { + (value.newOwner,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for transferOwnershipCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { newOwner: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: transferOwnershipReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for transferOwnershipReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl transferOwnershipReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for transferOwnershipCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = transferOwnershipReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "transferOwnership(address)"; + const SELECTOR: [u8; 4] = [242u8, 253u8, 227u8, 139u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.newOwner, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + transferOwnershipReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + ///Container for all the [`AccessManager`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum AccessManagerCalls { + #[allow(missing_docs)] + DEPLOYMENT_TIMESTAMP(DEPLOYMENT_TIMESTAMPCall), + #[allow(missing_docs)] + DISPUTE_GAME_FACTORY(DISPUTE_GAME_FACTORYCall), + #[allow(missing_docs)] + FALLBACK_TIMEOUT(FALLBACK_TIMEOUTCall), + #[allow(missing_docs)] + challengers(challengersCall), + #[allow(missing_docs)] + getLastProposalTimestamp(getLastProposalTimestampCall), + #[allow(missing_docs)] + isAllowedChallenger(isAllowedChallengerCall), + #[allow(missing_docs)] + isAllowedProposer(isAllowedProposerCall), + #[allow(missing_docs)] + isProposalPermissionlessMode(isProposalPermissionlessModeCall), + #[allow(missing_docs)] + owner(ownerCall), + #[allow(missing_docs)] + proposers(proposersCall), + #[allow(missing_docs)] + renounceOwnership(renounceOwnershipCall), + #[allow(missing_docs)] + setChallenger(setChallengerCall), + #[allow(missing_docs)] + setProposer(setProposerCall), + #[allow(missing_docs)] + transferOwnership(transferOwnershipCall), + } + impl AccessManagerCalls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [12u8, 139u8, 15u8, 223u8], + [24u8, 23u8, 116u8, 151u8], + [29u8, 50u8, 37u8, 227u8], + [113u8, 80u8, 24u8, 166u8], + [130u8, 255u8, 83u8, 161u8], + [134u8, 32u8, 104u8, 157u8], + [141u8, 165u8, 203u8, 91u8], + [146u8, 181u8, 209u8, 144u8], + [207u8, 234u8, 113u8, 192u8], + [211u8, 59u8, 53u8, 5u8], + [233u8, 237u8, 155u8, 100u8], + [242u8, 253u8, 227u8, 139u8], + [251u8, 198u8, 222u8, 247u8], + [255u8, 89u8, 174u8, 125u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(isProposalPermissionlessMode), + ::core::stringify!(proposers), + ::core::stringify!(isAllowedProposer), + ::core::stringify!(renounceOwnership), + ::core::stringify!(DISPUTE_GAME_FACTORY), + ::core::stringify!(getLastProposalTimestamp), + ::core::stringify!(owner), + ::core::stringify!(setChallenger), + ::core::stringify!(challengers), + ::core::stringify!(FALLBACK_TIMEOUT), + ::core::stringify!(setProposer), + ::core::stringify!(transferOwnership), + ::core::stringify!(DEPLOYMENT_TIMESTAMP), + ::core::stringify!(isAllowedChallenger), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for AccessManagerCalls { + const NAME: &'static str = "AccessManagerCalls"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 14usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::DEPLOYMENT_TIMESTAMP(_) => { + ::SELECTOR + } + Self::DISPUTE_GAME_FACTORY(_) => { + ::SELECTOR + } + Self::FALLBACK_TIMEOUT(_) => { + ::SELECTOR + } + Self::challengers(_) => { + ::SELECTOR + } + Self::getLastProposalTimestamp(_) => { + ::SELECTOR + } + Self::isAllowedChallenger(_) => { + ::SELECTOR + } + Self::isAllowedProposer(_) => { + ::SELECTOR + } + Self::isProposalPermissionlessMode(_) => { + ::SELECTOR + } + Self::owner(_) => ::SELECTOR, + Self::proposers(_) => { + ::SELECTOR + } + Self::renounceOwnership(_) => { + ::SELECTOR + } + Self::setChallenger(_) => { + ::SELECTOR + } + Self::setProposer(_) => { + ::SELECTOR + } + Self::transferOwnership(_) => { + ::SELECTOR + } + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn isProposalPermissionlessMode( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(AccessManagerCalls::isProposalPermissionlessMode) + } + isProposalPermissionlessMode + }, + { + fn proposers( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(AccessManagerCalls::proposers) + } + proposers + }, + { + fn isAllowedProposer( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(AccessManagerCalls::isAllowedProposer) + } + isAllowedProposer + }, + { + fn renounceOwnership( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(AccessManagerCalls::renounceOwnership) + } + renounceOwnership + }, + { + fn DISPUTE_GAME_FACTORY( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(AccessManagerCalls::DISPUTE_GAME_FACTORY) + } + DISPUTE_GAME_FACTORY + }, + { + fn getLastProposalTimestamp( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(AccessManagerCalls::getLastProposalTimestamp) + } + getLastProposalTimestamp + }, + { + fn owner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(AccessManagerCalls::owner) + } + owner + }, + { + fn setChallenger( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(AccessManagerCalls::setChallenger) + } + setChallenger + }, + { + fn challengers( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(AccessManagerCalls::challengers) + } + challengers + }, + { + fn FALLBACK_TIMEOUT( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(AccessManagerCalls::FALLBACK_TIMEOUT) + } + FALLBACK_TIMEOUT + }, + { + fn setProposer( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(AccessManagerCalls::setProposer) + } + setProposer + }, + { + fn transferOwnership( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(AccessManagerCalls::transferOwnership) + } + transferOwnership + }, + { + fn DEPLOYMENT_TIMESTAMP( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(AccessManagerCalls::DEPLOYMENT_TIMESTAMP) + } + DEPLOYMENT_TIMESTAMP + }, + { + fn isAllowedChallenger( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(AccessManagerCalls::isAllowedChallenger) + } + isAllowedChallenger + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn isProposalPermissionlessMode( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AccessManagerCalls::isProposalPermissionlessMode) + } + isProposalPermissionlessMode + }, + { + fn proposers( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AccessManagerCalls::proposers) + } + proposers + }, + { + fn isAllowedProposer( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AccessManagerCalls::isAllowedProposer) + } + isAllowedProposer + }, + { + fn renounceOwnership( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AccessManagerCalls::renounceOwnership) + } + renounceOwnership + }, + { + fn DISPUTE_GAME_FACTORY( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AccessManagerCalls::DISPUTE_GAME_FACTORY) + } + DISPUTE_GAME_FACTORY + }, + { + fn getLastProposalTimestamp( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AccessManagerCalls::getLastProposalTimestamp) + } + getLastProposalTimestamp + }, + { + fn owner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AccessManagerCalls::owner) + } + owner + }, + { + fn setChallenger( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AccessManagerCalls::setChallenger) + } + setChallenger + }, + { + fn challengers( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AccessManagerCalls::challengers) + } + challengers + }, + { + fn FALLBACK_TIMEOUT( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AccessManagerCalls::FALLBACK_TIMEOUT) + } + FALLBACK_TIMEOUT + }, + { + fn setProposer( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AccessManagerCalls::setProposer) + } + setProposer + }, + { + fn transferOwnership( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AccessManagerCalls::transferOwnership) + } + transferOwnership + }, + { + fn DEPLOYMENT_TIMESTAMP( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AccessManagerCalls::DEPLOYMENT_TIMESTAMP) + } + DEPLOYMENT_TIMESTAMP + }, + { + fn isAllowedChallenger( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AccessManagerCalls::isAllowedChallenger) + } + isAllowedChallenger + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::DEPLOYMENT_TIMESTAMP(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::DISPUTE_GAME_FACTORY(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::FALLBACK_TIMEOUT(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::challengers(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::getLastProposalTimestamp(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::isAllowedChallenger(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::isAllowedProposer(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::isProposalPermissionlessMode(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::owner(inner) => { + ::abi_encoded_size(inner) + } + Self::proposers(inner) => { + ::abi_encoded_size(inner) + } + Self::renounceOwnership(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::setChallenger(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::setProposer(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::transferOwnership(inner) => { + ::abi_encoded_size( + inner, + ) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::DEPLOYMENT_TIMESTAMP(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::DISPUTE_GAME_FACTORY(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::FALLBACK_TIMEOUT(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::challengers(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::getLastProposalTimestamp(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::isAllowedChallenger(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::isAllowedProposer(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::isProposalPermissionlessMode(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::owner(inner) => { + ::abi_encode_raw(inner, out) + } + Self::proposers(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::renounceOwnership(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::setChallenger(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::setProposer(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::transferOwnership(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + } + } + } + ///Container for all the [`AccessManager`](self) events. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum AccessManagerEvents { + #[allow(missing_docs)] + ChallengerPermissionUpdated(ChallengerPermissionUpdated), + #[allow(missing_docs)] + OwnershipTransferred(OwnershipTransferred), + #[allow(missing_docs)] + ProposerPermissionUpdated(ProposerPermissionUpdated), + } + impl AccessManagerEvents { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 32usize]] = &[ + [ + 32u8, 91u8, 69u8, 134u8, 240u8, 170u8, 214u8, 62u8, 56u8, 73u8, 176u8, + 198u8, 152u8, 147u8, 189u8, 97u8, 57u8, 172u8, 166u8, 115u8, 231u8, + 241u8, 96u8, 136u8, 197u8, 4u8, 105u8, 28u8, 101u8, 2u8, 206u8, 228u8, + ], + [ + 118u8, 27u8, 237u8, 231u8, 2u8, 250u8, 101u8, 7u8, 253u8, 151u8, 154u8, + 92u8, 66u8, 19u8, 168u8, 213u8, 211u8, 139u8, 71u8, 174u8, 159u8, 119u8, + 54u8, 80u8, 110u8, 175u8, 233u8, 20u8, 156u8, 108u8, 107u8, 119u8, + ], + [ + 139u8, 224u8, 7u8, 156u8, 83u8, 22u8, 89u8, 20u8, 19u8, 68u8, 205u8, + 31u8, 208u8, 164u8, 242u8, 132u8, 25u8, 73u8, 127u8, 151u8, 34u8, 163u8, + 218u8, 175u8, 227u8, 180u8, 24u8, 111u8, 107u8, 100u8, 87u8, 224u8, + ], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(ProposerPermissionUpdated), + ::core::stringify!(ChallengerPermissionUpdated), + ::core::stringify!(OwnershipTransferred), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolEventInterface for AccessManagerEvents { + const NAME: &'static str = "AccessManagerEvents"; + const COUNT: usize = 3usize; + fn decode_raw_log( + topics: &[alloy_sol_types::Word], + data: &[u8], + ) -> alloy_sol_types::Result { + match topics.first().copied() { + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::ChallengerPermissionUpdated) + } + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::OwnershipTransferred) + } + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::ProposerPermissionUpdated) + } + _ => { + alloy_sol_types::private::Err(alloy_sol_types::Error::InvalidLog { + name: ::NAME, + log: alloy_sol_types::private::Box::new( + alloy_sol_types::private::LogData::new_unchecked( + topics.to_vec(), + data.to_vec().into(), + ), + ), + }) + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for AccessManagerEvents { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + match self { + Self::ChallengerPermissionUpdated(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::OwnershipTransferred(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::ProposerPermissionUpdated(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + } + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + match self { + Self::ChallengerPermissionUpdated(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::OwnershipTransferred(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::ProposerPermissionUpdated(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`AccessManager`](self) contract instance. + +See the [wrapper's documentation](`AccessManagerInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> AccessManagerInstance { + AccessManagerInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + AccessManagerInstance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + AccessManagerInstance::::deploy_builder(__provider) + } + /**A [`AccessManager`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`AccessManager`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct AccessManagerInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for AccessManagerInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("AccessManagerInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > AccessManagerInstance { + /**Creates a new wrapper around an on-chain [`AccessManager`](self) contract instance. + +See the [wrapper's documentation](`AccessManagerInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl AccessManagerInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> AccessManagerInstance { + AccessManagerInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > AccessManagerInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`DEPLOYMENT_TIMESTAMP`] function. + pub fn DEPLOYMENT_TIMESTAMP( + &self, + ) -> alloy_contract::SolCallBuilder<&P, DEPLOYMENT_TIMESTAMPCall, N> { + self.call_builder(&DEPLOYMENT_TIMESTAMPCall) + } + ///Creates a new call builder for the [`DISPUTE_GAME_FACTORY`] function. + pub fn DISPUTE_GAME_FACTORY( + &self, + ) -> alloy_contract::SolCallBuilder<&P, DISPUTE_GAME_FACTORYCall, N> { + self.call_builder(&DISPUTE_GAME_FACTORYCall) + } + ///Creates a new call builder for the [`FALLBACK_TIMEOUT`] function. + pub fn FALLBACK_TIMEOUT( + &self, + ) -> alloy_contract::SolCallBuilder<&P, FALLBACK_TIMEOUTCall, N> { + self.call_builder(&FALLBACK_TIMEOUTCall) + } + ///Creates a new call builder for the [`challengers`] function. + pub fn challengers( + &self, + _0: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, challengersCall, N> { + self.call_builder(&challengersCall(_0)) + } + ///Creates a new call builder for the [`getLastProposalTimestamp`] function. + pub fn getLastProposalTimestamp( + &self, + ) -> alloy_contract::SolCallBuilder<&P, getLastProposalTimestampCall, N> { + self.call_builder(&getLastProposalTimestampCall) + } + ///Creates a new call builder for the [`isAllowedChallenger`] function. + pub fn isAllowedChallenger( + &self, + _challenger: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, isAllowedChallengerCall, N> { + self.call_builder( + &isAllowedChallengerCall { + _challenger, + }, + ) + } + ///Creates a new call builder for the [`isAllowedProposer`] function. + pub fn isAllowedProposer( + &self, + _proposer: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, isAllowedProposerCall, N> { + self.call_builder(&isAllowedProposerCall { _proposer }) + } + ///Creates a new call builder for the [`isProposalPermissionlessMode`] function. + pub fn isProposalPermissionlessMode( + &self, + ) -> alloy_contract::SolCallBuilder<&P, isProposalPermissionlessModeCall, N> { + self.call_builder(&isProposalPermissionlessModeCall) + } + ///Creates a new call builder for the [`owner`] function. + pub fn owner(&self) -> alloy_contract::SolCallBuilder<&P, ownerCall, N> { + self.call_builder(&ownerCall) + } + ///Creates a new call builder for the [`proposers`] function. + pub fn proposers( + &self, + _0: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, proposersCall, N> { + self.call_builder(&proposersCall(_0)) + } + ///Creates a new call builder for the [`renounceOwnership`] function. + pub fn renounceOwnership( + &self, + ) -> alloy_contract::SolCallBuilder<&P, renounceOwnershipCall, N> { + self.call_builder(&renounceOwnershipCall) + } + ///Creates a new call builder for the [`setChallenger`] function. + pub fn setChallenger( + &self, + _challenger: alloy::sol_types::private::Address, + _allowed: bool, + ) -> alloy_contract::SolCallBuilder<&P, setChallengerCall, N> { + self.call_builder( + &setChallengerCall { + _challenger, + _allowed, + }, + ) + } + ///Creates a new call builder for the [`setProposer`] function. + pub fn setProposer( + &self, + _proposer: alloy::sol_types::private::Address, + _allowed: bool, + ) -> alloy_contract::SolCallBuilder<&P, setProposerCall, N> { + self.call_builder( + &setProposerCall { + _proposer, + _allowed, + }, + ) + } + ///Creates a new call builder for the [`transferOwnership`] function. + pub fn transferOwnership( + &self, + newOwner: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, transferOwnershipCall, N> { + self.call_builder(&transferOwnershipCall { newOwner }) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > AccessManagerInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + ///Creates a new event filter for the [`ChallengerPermissionUpdated`] event. + pub fn ChallengerPermissionUpdated_filter( + &self, + ) -> alloy_contract::Event<&P, ChallengerPermissionUpdated, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`OwnershipTransferred`] event. + pub fn OwnershipTransferred_filter( + &self, + ) -> alloy_contract::Event<&P, OwnershipTransferred, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`ProposerPermissionUpdated`] event. + pub fn ProposerPermissionUpdated_filter( + &self, + ) -> alloy_contract::Event<&P, ProposerPermissionUpdated, N> { + self.event_filter::() + } + } +} diff --git a/bindings/rust/src/address_alias_helper.rs b/bindings/rust/src/address_alias_helper.rs new file mode 100644 index 000000000..0b7e9e4f3 --- /dev/null +++ b/bindings/rust/src/address_alias_helper.rs @@ -0,0 +1,215 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface AddressAliasHelper {} +``` + +...which was generated by the following JSON ABI: +```json +[] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod AddressAliasHelper { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`-`7`\x0B\x82\x82\x829\x80Q`\0\x1A`s\x14`*WcNH{q`\xE0\x1B`\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`\0\x80\xFD\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + 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`\0\x80\xFD\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`AddressAliasHelper`](self) contract instance. + +See the [wrapper's documentation](`AddressAliasHelperInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> AddressAliasHelperInstance { + AddressAliasHelperInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + AddressAliasHelperInstance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + AddressAliasHelperInstance::::deploy_builder(__provider) + } + /**A [`AddressAliasHelper`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`AddressAliasHelper`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct AddressAliasHelperInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for AddressAliasHelperInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("AddressAliasHelperInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > AddressAliasHelperInstance { + /**Creates a new wrapper around an on-chain [`AddressAliasHelper`](self) contract instance. + +See the [wrapper's documentation](`AddressAliasHelperInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl AddressAliasHelperInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> AddressAliasHelperInstance { + AddressAliasHelperInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > AddressAliasHelperInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > AddressAliasHelperInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + } +} diff --git a/bindings/rust/src/address_manager.rs b/bindings/rust/src/address_manager.rs new file mode 100644 index 000000000..68d114aed --- /dev/null +++ b/bindings/rust/src/address_manager.rs @@ -0,0 +1,1798 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface AddressManager { + event AddressSet(string indexed name, address newAddress, address oldAddress); + event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); + + function getAddress(string memory _name) external view returns (address); + function owner() external view returns (address); + function renounceOwnership() external; + function setAddress(string memory _name, address _address) external; + function transferOwnership(address newOwner) external; +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "function", + "name": "getAddress", + "inputs": [ + { + "name": "_name", + "type": "string", + "internalType": "string" + } + ], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "owner", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "renounceOwnership", + "inputs": [], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "setAddress", + "inputs": [ + { + "name": "_name", + "type": "string", + "internalType": "string" + }, + { + "name": "_address", + "type": "address", + "internalType": "address" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "transferOwnership", + "inputs": [ + { + "name": "newOwner", + "type": "address", + "internalType": "address" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "event", + "name": "AddressSet", + "inputs": [ + { + "name": "name", + "type": "string", + "indexed": true, + "internalType": "string" + }, + { + "name": "newAddress", + "type": "address", + "indexed": false, + "internalType": "address" + }, + { + "name": "oldAddress", + "type": "address", + "indexed": false, + "internalType": "address" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "OwnershipTransferred", + "inputs": [ + { + "name": "previousOwner", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "newOwner", + "type": "address", + "indexed": true, + "internalType": "address" + } + ], + "anonymous": false + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod AddressManager { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x608060405234801561001057600080fd5b5061001a3361001f565b61006f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6105ef8061007e6000396000f3fe608060405234801561001057600080fd5b50600436106100675760003560e01c80639b2ea4bd116100505780639b2ea4bd146100b9578063bf40fac1146100cc578063f2fde38b146100df57600080fd5b8063715018a61461006c5780638da5cb5b14610076575b600080fd5b6100746100f2565b005b60005473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b6100746100c73660046104fa565b610106565b6100906100da366004610548565b6101d9565b6100746100ed366004610585565b610215565b6100fa6102d1565b6101046000610352565b565b61010e6102d1565b6000610119836103c7565b60008181526001602052604090819020805473ffffffffffffffffffffffffffffffffffffffff8681167fffffffffffffffffffffffff00000000000000000000000000000000000000008316179092559151929350169061017c9085906105a7565b6040805191829003822073ffffffffffffffffffffffffffffffffffffffff808716845284166020840152917f9416a153a346f93d95f94b064ae3f148b6460473c6e82b3f9fc2521b873fcd6c910160405180910390a250505050565b6000600160006101e8846103c7565b815260208101919091526040016000205473ffffffffffffffffffffffffffffffffffffffff1692915050565b61021d6102d1565b73ffffffffffffffffffffffffffffffffffffffff81166102c5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6102ce81610352565b50565b60005473ffffffffffffffffffffffffffffffffffffffff163314610104576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102bc565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000816040516020016103da91906105a7565b604051602081830303815290604052805190602001209050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f83011261043757600080fd5b813567ffffffffffffffff80821115610452576104526103f7565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908282118183101715610498576104986103f7565b816040528381528660208588010111156104b157600080fd5b836020870160208301376000602085830101528094505050505092915050565b803573ffffffffffffffffffffffffffffffffffffffff811681146104f557600080fd5b919050565b6000806040838503121561050d57600080fd5b823567ffffffffffffffff81111561052457600080fd5b61053085828601610426565b92505061053f602084016104d1565b90509250929050565b60006020828403121561055a57600080fd5b813567ffffffffffffffff81111561057157600080fd5b61057d84828501610426565b949350505050565b60006020828403121561059757600080fd5b6105a0826104d1565b9392505050565b6000825160005b818110156105c857602081860181015185830152016105ae565b818111156105d7576000828501525b50919091019291505056fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[Pa\0\x1A3a\0\x1FV[a\0oV[`\0\x80T`\x01`\x01`\xA0\x1B\x03\x83\x81\x16`\x01`\x01`\xA0\x1B\x03\x19\x83\x16\x81\x17\x84U`@Q\x91\x90\x92\x16\x92\x83\x91\x7F\x8B\xE0\x07\x9CS\x16Y\x14\x13D\xCD\x1F\xD0\xA4\xF2\x84\x19I\x7F\x97\"\xA3\xDA\xAF\xE3\xB4\x18okdW\xE0\x91\x90\xA3PPV[a\x05\xEF\x80a\0~`\09`\0\xF3\xFE`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`\x046\x10a\0gW`\x005`\xE0\x1C\x80c\x9B.\xA4\xBD\x11a\0PW\x80c\x9B.\xA4\xBD\x14a\0\xB9W\x80c\xBF@\xFA\xC1\x14a\0\xCCW\x80c\xF2\xFD\xE3\x8B\x14a\0\xDFW`\0\x80\xFD[\x80cqP\x18\xA6\x14a\0lW\x80c\x8D\xA5\xCB[\x14a\0vW[`\0\x80\xFD[a\0ta\0\xF2V[\0[`\0Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16[`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01`@Q\x80\x91\x03\x90\xF3[a\0ta\0\xC76`\x04a\x04\xFAV[a\x01\x06V[a\0\x90a\0\xDA6`\x04a\x05HV[a\x01\xD9V[a\0ta\0\xED6`\x04a\x05\x85V[a\x02\x15V[a\0\xFAa\x02\xD1V[a\x01\x04`\0a\x03RV[V[a\x01\x0Ea\x02\xD1V[`\0a\x01\x19\x83a\x03\xC7V[`\0\x81\x81R`\x01` R`@\x90\x81\x90 \x80Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x86\x81\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x83\x16\x17\x90\x92U\x91Q\x92\x93P\x16\x90a\x01|\x90\x85\x90a\x05\xA7V[`@\x80Q\x91\x82\x90\x03\x82 s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x87\x16\x84R\x84\x16` \x84\x01R\x91\x7F\x94\x16\xA1S\xA3F\xF9=\x95\xF9K\x06J\xE3\xF1H\xB6F\x04s\xC6\xE8+?\x9F\xC2R\x1B\x87?\xCDl\x91\x01`@Q\x80\x91\x03\x90\xA2PPPPV[`\0`\x01`\0a\x01\xE8\x84a\x03\xC7V[\x81R` \x81\x01\x91\x90\x91R`@\x01`\0 Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x92\x91PPV[a\x02\x1Da\x02\xD1V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16a\x02\xC5W`@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\x82\x01R`&`$\x82\x01R\x7FOwnable: new owner is the zero a`D\x82\x01R\x7Fddress\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`d\x82\x01R`\x84\x01[`@Q\x80\x91\x03\x90\xFD[a\x02\xCE\x81a\x03RV[PV[`\0Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x163\x14a\x01\x04W`@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\x82\x01\x81\x90R`$\x82\x01R\x7FOwnable: caller is not the owner`D\x82\x01R`d\x01a\x02\xBCV[`\0\x80Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x81\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x83\x16\x81\x17\x84U`@Q\x91\x90\x92\x16\x92\x83\x91\x7F\x8B\xE0\x07\x9CS\x16Y\x14\x13D\xCD\x1F\xD0\xA4\xF2\x84\x19I\x7F\x97\"\xA3\xDA\xAF\xE3\xB4\x18okdW\xE0\x91\x90\xA3PPV[`\0\x81`@Q` \x01a\x03\xDA\x91\x90a\x05\xA7V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 \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[`\0\x82`\x1F\x83\x01\x12a\x047W`\0\x80\xFD[\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x04RWa\x04Ra\x03\xF7V[`@Q`\x1F\x83\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x90\x81\x16`?\x01\x16\x81\x01\x90\x82\x82\x11\x81\x83\x10\x17\x15a\x04\x98Wa\x04\x98a\x03\xF7V[\x81`@R\x83\x81R\x86` \x85\x88\x01\x01\x11\x15a\x04\xB1W`\0\x80\xFD[\x83` \x87\x01` \x83\x017`\0` \x85\x83\x01\x01R\x80\x94PPPPP\x92\x91PPV[\x805s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x04\xF5W`\0\x80\xFD[\x91\x90PV[`\0\x80`@\x83\x85\x03\x12\x15a\x05\rW`\0\x80\xFD[\x825g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x05$W`\0\x80\xFD[a\x050\x85\x82\x86\x01a\x04&V[\x92PPa\x05?` \x84\x01a\x04\xD1V[\x90P\x92P\x92\x90PV[`\0` \x82\x84\x03\x12\x15a\x05ZW`\0\x80\xFD[\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x05qW`\0\x80\xFD[a\x05}\x84\x82\x85\x01a\x04&V[\x94\x93PPPPV[`\0` \x82\x84\x03\x12\x15a\x05\x97W`\0\x80\xFD[a\x05\xA0\x82a\x04\xD1V[\x93\x92PPPV[`\0\x82Q`\0[\x81\x81\x10\x15a\x05\xC8W` \x81\x86\x01\x81\x01Q\x85\x83\x01R\x01a\x05\xAEV[\x81\x81\x11\x15a\x05\xD7W`\0\x82\x85\x01R[P\x91\x90\x91\x01\x92\x91PPV\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x608060405234801561001057600080fd5b50600436106100675760003560e01c80639b2ea4bd116100505780639b2ea4bd146100b9578063bf40fac1146100cc578063f2fde38b146100df57600080fd5b8063715018a61461006c5780638da5cb5b14610076575b600080fd5b6100746100f2565b005b60005473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b6100746100c73660046104fa565b610106565b6100906100da366004610548565b6101d9565b6100746100ed366004610585565b610215565b6100fa6102d1565b6101046000610352565b565b61010e6102d1565b6000610119836103c7565b60008181526001602052604090819020805473ffffffffffffffffffffffffffffffffffffffff8681167fffffffffffffffffffffffff00000000000000000000000000000000000000008316179092559151929350169061017c9085906105a7565b6040805191829003822073ffffffffffffffffffffffffffffffffffffffff808716845284166020840152917f9416a153a346f93d95f94b064ae3f148b6460473c6e82b3f9fc2521b873fcd6c910160405180910390a250505050565b6000600160006101e8846103c7565b815260208101919091526040016000205473ffffffffffffffffffffffffffffffffffffffff1692915050565b61021d6102d1565b73ffffffffffffffffffffffffffffffffffffffff81166102c5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6102ce81610352565b50565b60005473ffffffffffffffffffffffffffffffffffffffff163314610104576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102bc565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000816040516020016103da91906105a7565b604051602081830303815290604052805190602001209050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f83011261043757600080fd5b813567ffffffffffffffff80821115610452576104526103f7565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908282118183101715610498576104986103f7565b816040528381528660208588010111156104b157600080fd5b836020870160208301376000602085830101528094505050505092915050565b803573ffffffffffffffffffffffffffffffffffffffff811681146104f557600080fd5b919050565b6000806040838503121561050d57600080fd5b823567ffffffffffffffff81111561052457600080fd5b61053085828601610426565b92505061053f602084016104d1565b90509250929050565b60006020828403121561055a57600080fd5b813567ffffffffffffffff81111561057157600080fd5b61057d84828501610426565b949350505050565b60006020828403121561059757600080fd5b6105a0826104d1565b9392505050565b6000825160005b818110156105c857602081860181015185830152016105ae565b818111156105d7576000828501525b50919091019291505056fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`\x046\x10a\0gW`\x005`\xE0\x1C\x80c\x9B.\xA4\xBD\x11a\0PW\x80c\x9B.\xA4\xBD\x14a\0\xB9W\x80c\xBF@\xFA\xC1\x14a\0\xCCW\x80c\xF2\xFD\xE3\x8B\x14a\0\xDFW`\0\x80\xFD[\x80cqP\x18\xA6\x14a\0lW\x80c\x8D\xA5\xCB[\x14a\0vW[`\0\x80\xFD[a\0ta\0\xF2V[\0[`\0Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16[`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01`@Q\x80\x91\x03\x90\xF3[a\0ta\0\xC76`\x04a\x04\xFAV[a\x01\x06V[a\0\x90a\0\xDA6`\x04a\x05HV[a\x01\xD9V[a\0ta\0\xED6`\x04a\x05\x85V[a\x02\x15V[a\0\xFAa\x02\xD1V[a\x01\x04`\0a\x03RV[V[a\x01\x0Ea\x02\xD1V[`\0a\x01\x19\x83a\x03\xC7V[`\0\x81\x81R`\x01` R`@\x90\x81\x90 \x80Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x86\x81\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x83\x16\x17\x90\x92U\x91Q\x92\x93P\x16\x90a\x01|\x90\x85\x90a\x05\xA7V[`@\x80Q\x91\x82\x90\x03\x82 s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x87\x16\x84R\x84\x16` \x84\x01R\x91\x7F\x94\x16\xA1S\xA3F\xF9=\x95\xF9K\x06J\xE3\xF1H\xB6F\x04s\xC6\xE8+?\x9F\xC2R\x1B\x87?\xCDl\x91\x01`@Q\x80\x91\x03\x90\xA2PPPPV[`\0`\x01`\0a\x01\xE8\x84a\x03\xC7V[\x81R` \x81\x01\x91\x90\x91R`@\x01`\0 Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x92\x91PPV[a\x02\x1Da\x02\xD1V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16a\x02\xC5W`@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\x82\x01R`&`$\x82\x01R\x7FOwnable: new owner is the zero a`D\x82\x01R\x7Fddress\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`d\x82\x01R`\x84\x01[`@Q\x80\x91\x03\x90\xFD[a\x02\xCE\x81a\x03RV[PV[`\0Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x163\x14a\x01\x04W`@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\x82\x01\x81\x90R`$\x82\x01R\x7FOwnable: caller is not the owner`D\x82\x01R`d\x01a\x02\xBCV[`\0\x80Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x81\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x83\x16\x81\x17\x84U`@Q\x91\x90\x92\x16\x92\x83\x91\x7F\x8B\xE0\x07\x9CS\x16Y\x14\x13D\xCD\x1F\xD0\xA4\xF2\x84\x19I\x7F\x97\"\xA3\xDA\xAF\xE3\xB4\x18okdW\xE0\x91\x90\xA3PPV[`\0\x81`@Q` \x01a\x03\xDA\x91\x90a\x05\xA7V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 \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[`\0\x82`\x1F\x83\x01\x12a\x047W`\0\x80\xFD[\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x04RWa\x04Ra\x03\xF7V[`@Q`\x1F\x83\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x90\x81\x16`?\x01\x16\x81\x01\x90\x82\x82\x11\x81\x83\x10\x17\x15a\x04\x98Wa\x04\x98a\x03\xF7V[\x81`@R\x83\x81R\x86` \x85\x88\x01\x01\x11\x15a\x04\xB1W`\0\x80\xFD[\x83` \x87\x01` \x83\x017`\0` \x85\x83\x01\x01R\x80\x94PPPPP\x92\x91PPV[\x805s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x04\xF5W`\0\x80\xFD[\x91\x90PV[`\0\x80`@\x83\x85\x03\x12\x15a\x05\rW`\0\x80\xFD[\x825g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x05$W`\0\x80\xFD[a\x050\x85\x82\x86\x01a\x04&V[\x92PPa\x05?` \x84\x01a\x04\xD1V[\x90P\x92P\x92\x90PV[`\0` \x82\x84\x03\x12\x15a\x05ZW`\0\x80\xFD[\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x05qW`\0\x80\xFD[a\x05}\x84\x82\x85\x01a\x04&V[\x94\x93PPPPV[`\0` \x82\x84\x03\x12\x15a\x05\x97W`\0\x80\xFD[a\x05\xA0\x82a\x04\xD1V[\x93\x92PPPV[`\0\x82Q`\0[\x81\x81\x10\x15a\x05\xC8W` \x81\x86\x01\x81\x01Q\x85\x83\x01R\x01a\x05\xAEV[\x81\x81\x11\x15a\x05\xD7W`\0\x82\x85\x01R[P\x91\x90\x91\x01\x92\x91PPV\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `AddressSet(string,address,address)` and selector `0x9416a153a346f93d95f94b064ae3f148b6460473c6e82b3f9fc2521b873fcd6c`. +```solidity +event AddressSet(string indexed name, address newAddress, address oldAddress); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct AddressSet { + #[allow(missing_docs)] + pub name: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub newAddress: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub oldAddress: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for AddressSet { + type DataTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + const SIGNATURE: &'static str = "AddressSet(string,address,address)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 148u8, 22u8, 161u8, 83u8, 163u8, 70u8, 249u8, 61u8, 149u8, 249u8, 75u8, + 6u8, 74u8, 227u8, 241u8, 72u8, 182u8, 70u8, 4u8, 115u8, 198u8, 232u8, + 43u8, 63u8, 159u8, 194u8, 82u8, 27u8, 135u8, 63u8, 205u8, 108u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + name: topics.1, + newAddress: data.0, + oldAddress: data.1, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + ::tokenize( + &self.newAddress, + ), + ::tokenize( + &self.oldAddress, + ), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.name.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = as alloy_sol_types::EventTopic>::encode_topic(&self.name); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for AddressSet { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&AddressSet> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &AddressSet) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `OwnershipTransferred(address,address)` and selector `0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0`. +```solidity +event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct OwnershipTransferred { + #[allow(missing_docs)] + pub previousOwner: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub newOwner: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for OwnershipTransferred { + type DataTuple<'a> = (); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "OwnershipTransferred(address,address)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 139u8, 224u8, 7u8, 156u8, 83u8, 22u8, 89u8, 20u8, 19u8, 68u8, 205u8, + 31u8, 208u8, 164u8, 242u8, 132u8, 25u8, 73u8, 127u8, 151u8, 34u8, 163u8, + 218u8, 175u8, 227u8, 180u8, 24u8, 111u8, 107u8, 100u8, 87u8, 224u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + previousOwner: topics.1, + newOwner: topics.2, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + () + } + #[inline] + fn topics(&self) -> ::RustType { + ( + Self::SIGNATURE_HASH.into(), + self.previousOwner.clone(), + self.newOwner.clone(), + ) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.previousOwner, + ); + out[2usize] = ::encode_topic( + &self.newOwner, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for OwnershipTransferred { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&OwnershipTransferred> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &OwnershipTransferred) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `getAddress(string)` and selector `0xbf40fac1`. +```solidity +function getAddress(string memory _name) external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getAddressCall { + #[allow(missing_docs)] + pub _name: alloy::sol_types::private::String, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`getAddress(string)`](getAddressCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getAddressReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: getAddressCall) -> Self { + (value._name,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for getAddressCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _name: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: getAddressReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for getAddressReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for getAddressCall { + type Parameters<'a> = (alloy::sol_types::sol_data::String,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "getAddress(string)"; + const SELECTOR: [u8; 4] = [191u8, 64u8, 250u8, 193u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._name, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: getAddressReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: getAddressReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `owner()` and selector `0x8da5cb5b`. +```solidity +function owner() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ownerCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`owner()`](ownerCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ownerReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ownerCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ownerCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ownerReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ownerReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for ownerCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "owner()"; + const SELECTOR: [u8; 4] = [141u8, 165u8, 203u8, 91u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: ownerReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: ownerReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `renounceOwnership()` and selector `0x715018a6`. +```solidity +function renounceOwnership() external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct renounceOwnershipCall; + ///Container type for the return parameters of the [`renounceOwnership()`](renounceOwnershipCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct renounceOwnershipReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: renounceOwnershipCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for renounceOwnershipCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: renounceOwnershipReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for renounceOwnershipReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl renounceOwnershipReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for renounceOwnershipCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = renounceOwnershipReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "renounceOwnership()"; + const SELECTOR: [u8; 4] = [113u8, 80u8, 24u8, 166u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + renounceOwnershipReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `setAddress(string,address)` and selector `0x9b2ea4bd`. +```solidity +function setAddress(string memory _name, address _address) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setAddressCall { + #[allow(missing_docs)] + pub _name: alloy::sol_types::private::String, + #[allow(missing_docs)] + pub _address: alloy::sol_types::private::Address, + } + ///Container type for the return parameters of the [`setAddress(string,address)`](setAddressCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setAddressReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::String, + alloy::sol_types::sol_data::Address, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::String, + alloy::sol_types::private::Address, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: setAddressCall) -> Self { + (value._name, value._address) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for setAddressCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _name: tuple.0, + _address: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: setAddressReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for setAddressReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl setAddressReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for setAddressCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::String, + alloy::sol_types::sol_data::Address, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = setAddressReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "setAddress(string,address)"; + const SELECTOR: [u8; 4] = [155u8, 46u8, 164u8, 189u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._name, + ), + ::tokenize( + &self._address, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + setAddressReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `transferOwnership(address)` and selector `0xf2fde38b`. +```solidity +function transferOwnership(address newOwner) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct transferOwnershipCall { + #[allow(missing_docs)] + pub newOwner: alloy::sol_types::private::Address, + } + ///Container type for the return parameters of the [`transferOwnership(address)`](transferOwnershipCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct transferOwnershipReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: transferOwnershipCall) -> Self { + (value.newOwner,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for transferOwnershipCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { newOwner: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: transferOwnershipReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for transferOwnershipReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl transferOwnershipReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for transferOwnershipCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = transferOwnershipReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "transferOwnership(address)"; + const SELECTOR: [u8; 4] = [242u8, 253u8, 227u8, 139u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.newOwner, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + transferOwnershipReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + ///Container for all the [`AddressManager`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum AddressManagerCalls { + #[allow(missing_docs)] + getAddress(getAddressCall), + #[allow(missing_docs)] + owner(ownerCall), + #[allow(missing_docs)] + renounceOwnership(renounceOwnershipCall), + #[allow(missing_docs)] + setAddress(setAddressCall), + #[allow(missing_docs)] + transferOwnership(transferOwnershipCall), + } + impl AddressManagerCalls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [113u8, 80u8, 24u8, 166u8], + [141u8, 165u8, 203u8, 91u8], + [155u8, 46u8, 164u8, 189u8], + [191u8, 64u8, 250u8, 193u8], + [242u8, 253u8, 227u8, 139u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(renounceOwnership), + ::core::stringify!(owner), + ::core::stringify!(setAddress), + ::core::stringify!(getAddress), + ::core::stringify!(transferOwnership), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for AddressManagerCalls { + const NAME: &'static str = "AddressManagerCalls"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 5usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::getAddress(_) => { + ::SELECTOR + } + Self::owner(_) => ::SELECTOR, + Self::renounceOwnership(_) => { + ::SELECTOR + } + Self::setAddress(_) => { + ::SELECTOR + } + Self::transferOwnership(_) => { + ::SELECTOR + } + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn renounceOwnership( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(AddressManagerCalls::renounceOwnership) + } + renounceOwnership + }, + { + fn owner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(AddressManagerCalls::owner) + } + owner + }, + { + fn setAddress( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(AddressManagerCalls::setAddress) + } + setAddress + }, + { + fn getAddress( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(AddressManagerCalls::getAddress) + } + getAddress + }, + { + fn transferOwnership( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(AddressManagerCalls::transferOwnership) + } + transferOwnership + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn renounceOwnership( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AddressManagerCalls::renounceOwnership) + } + renounceOwnership + }, + { + fn owner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AddressManagerCalls::owner) + } + owner + }, + { + fn setAddress( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AddressManagerCalls::setAddress) + } + setAddress + }, + { + fn getAddress( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AddressManagerCalls::getAddress) + } + getAddress + }, + { + fn transferOwnership( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AddressManagerCalls::transferOwnership) + } + transferOwnership + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::getAddress(inner) => { + ::abi_encoded_size(inner) + } + Self::owner(inner) => { + ::abi_encoded_size(inner) + } + Self::renounceOwnership(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::setAddress(inner) => { + ::abi_encoded_size(inner) + } + Self::transferOwnership(inner) => { + ::abi_encoded_size( + inner, + ) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::getAddress(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::owner(inner) => { + ::abi_encode_raw(inner, out) + } + Self::renounceOwnership(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::setAddress(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::transferOwnership(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + } + } + } + ///Container for all the [`AddressManager`](self) events. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum AddressManagerEvents { + #[allow(missing_docs)] + AddressSet(AddressSet), + #[allow(missing_docs)] + OwnershipTransferred(OwnershipTransferred), + } + impl AddressManagerEvents { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 32usize]] = &[ + [ + 139u8, 224u8, 7u8, 156u8, 83u8, 22u8, 89u8, 20u8, 19u8, 68u8, 205u8, + 31u8, 208u8, 164u8, 242u8, 132u8, 25u8, 73u8, 127u8, 151u8, 34u8, 163u8, + 218u8, 175u8, 227u8, 180u8, 24u8, 111u8, 107u8, 100u8, 87u8, 224u8, + ], + [ + 148u8, 22u8, 161u8, 83u8, 163u8, 70u8, 249u8, 61u8, 149u8, 249u8, 75u8, + 6u8, 74u8, 227u8, 241u8, 72u8, 182u8, 70u8, 4u8, 115u8, 198u8, 232u8, + 43u8, 63u8, 159u8, 194u8, 82u8, 27u8, 135u8, 63u8, 205u8, 108u8, + ], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(OwnershipTransferred), + ::core::stringify!(AddressSet), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolEventInterface for AddressManagerEvents { + const NAME: &'static str = "AddressManagerEvents"; + const COUNT: usize = 2usize; + fn decode_raw_log( + topics: &[alloy_sol_types::Word], + data: &[u8], + ) -> alloy_sol_types::Result { + match topics.first().copied() { + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::AddressSet) + } + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::OwnershipTransferred) + } + _ => { + alloy_sol_types::private::Err(alloy_sol_types::Error::InvalidLog { + name: ::NAME, + log: alloy_sol_types::private::Box::new( + alloy_sol_types::private::LogData::new_unchecked( + topics.to_vec(), + data.to_vec().into(), + ), + ), + }) + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for AddressManagerEvents { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + match self { + Self::AddressSet(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::OwnershipTransferred(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + } + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + match self { + Self::AddressSet(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::OwnershipTransferred(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`AddressManager`](self) contract instance. + +See the [wrapper's documentation](`AddressManagerInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> AddressManagerInstance { + AddressManagerInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + AddressManagerInstance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + AddressManagerInstance::::deploy_builder(__provider) + } + /**A [`AddressManager`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`AddressManager`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct AddressManagerInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for AddressManagerInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("AddressManagerInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > AddressManagerInstance { + /**Creates a new wrapper around an on-chain [`AddressManager`](self) contract instance. + +See the [wrapper's documentation](`AddressManagerInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl AddressManagerInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> AddressManagerInstance { + AddressManagerInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > AddressManagerInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`getAddress`] function. + pub fn getAddress( + &self, + _name: alloy::sol_types::private::String, + ) -> alloy_contract::SolCallBuilder<&P, getAddressCall, N> { + self.call_builder(&getAddressCall { _name }) + } + ///Creates a new call builder for the [`owner`] function. + pub fn owner(&self) -> alloy_contract::SolCallBuilder<&P, ownerCall, N> { + self.call_builder(&ownerCall) + } + ///Creates a new call builder for the [`renounceOwnership`] function. + pub fn renounceOwnership( + &self, + ) -> alloy_contract::SolCallBuilder<&P, renounceOwnershipCall, N> { + self.call_builder(&renounceOwnershipCall) + } + ///Creates a new call builder for the [`setAddress`] function. + pub fn setAddress( + &self, + _name: alloy::sol_types::private::String, + _address: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, setAddressCall, N> { + self.call_builder(&setAddressCall { _name, _address }) + } + ///Creates a new call builder for the [`transferOwnership`] function. + pub fn transferOwnership( + &self, + newOwner: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, transferOwnershipCall, N> { + self.call_builder(&transferOwnershipCall { newOwner }) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > AddressManagerInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + ///Creates a new event filter for the [`AddressSet`] event. + pub fn AddressSet_filter(&self) -> alloy_contract::Event<&P, AddressSet, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`OwnershipTransferred`] event. + pub fn OwnershipTransferred_filter( + &self, + ) -> alloy_contract::Event<&P, OwnershipTransferred, N> { + self.event_filter::() + } + } +} diff --git a/bindings/rust/src/admin_faucet_auth_module.rs b/bindings/rust/src/admin_faucet_auth_module.rs new file mode 100644 index 000000000..3955d2ec2 --- /dev/null +++ b/bindings/rust/src/admin_faucet_auth_module.rs @@ -0,0 +1,1563 @@ +///Module containing a contract's types and functions. +/** + +```solidity +library Faucet { + struct DripParameters { address recipient; bytes data; bytes32 nonce; uint32 gasLimit; } +} +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod Faucet { + use super::*; + use alloy::sol_types as alloy_sol_types; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**```solidity +struct DripParameters { address recipient; bytes data; bytes32 nonce; uint32 gasLimit; } +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct DripParameters { + #[allow(missing_docs)] + pub recipient: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub data: alloy::sol_types::private::Bytes, + #[allow(missing_docs)] + pub nonce: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub gasLimit: u32, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Bytes, + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Uint<32>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Bytes, + alloy::sol_types::private::FixedBytes<32>, + u32, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: DripParameters) -> Self { + (value.recipient, value.data, value.nonce, value.gasLimit) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for DripParameters { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + recipient: tuple.0, + data: tuple.1, + nonce: tuple.2, + gasLimit: tuple.3, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolValue for DripParameters { + type SolType = Self; + } + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for DripParameters { + #[inline] + fn stv_to_tokens(&self) -> ::Token<'_> { + ( + ::tokenize( + &self.recipient, + ), + ::tokenize( + &self.data, + ), + as alloy_sol_types::SolType>::tokenize(&self.nonce), + as alloy_sol_types::SolType>::tokenize(&self.gasLimit), + ) + } + #[inline] + fn stv_abi_encoded_size(&self) -> usize { + if let Some(size) = ::ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encoded_size(&tuple) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + ::eip712_hash_struct(self) + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + if let Some(size) = ::PACKED_ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for DripParameters { + type RustType = Self; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = ::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + as alloy_sol_types::SolType>::valid_token(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + let tuple = as alloy_sol_types::SolType>::detokenize(token); + >>::from(tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolStruct for DripParameters { + const NAME: &'static str = "DripParameters"; + #[inline] + fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> { + alloy_sol_types::private::Cow::Borrowed( + "DripParameters(address recipient,bytes data,bytes32 nonce,uint32 gasLimit)", + ) + } + #[inline] + fn eip712_components() -> alloy_sol_types::private::Vec< + alloy_sol_types::private::Cow<'static, str>, + > { + alloy_sol_types::private::Vec::new() + } + #[inline] + fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> { + ::eip712_root_type() + } + #[inline] + fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec { + [ + ::eip712_data_word( + &self.recipient, + ) + .0, + ::eip712_data_word( + &self.data, + ) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.nonce) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.gasLimit) + .0, + ] + .concat() + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for DripParameters { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + 0usize + + ::topic_preimage_length( + &rust.recipient, + ) + + ::topic_preimage_length( + &rust.data, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length(&rust.nonce) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.gasLimit, + ) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + out.reserve( + ::topic_preimage_length(rust), + ); + ::encode_topic_preimage( + &rust.recipient, + out, + ); + ::encode_topic_preimage( + &rust.data, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.nonce, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.gasLimit, + out, + ); + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + let mut out = alloy_sol_types::private::Vec::new(); + ::encode_topic_preimage( + rust, + &mut out, + ); + alloy_sol_types::abi::token::WordToken( + alloy_sol_types::private::keccak256(out), + ) + } + } + }; + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`Faucet`](self) contract instance. + +See the [wrapper's documentation](`FaucetInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> FaucetInstance { + FaucetInstance::::new(address, __provider) + } + /**A [`Faucet`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`Faucet`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct FaucetInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for FaucetInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("FaucetInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > FaucetInstance { + /**Creates a new wrapper around an on-chain [`Faucet`](self) contract instance. + +See the [wrapper's documentation](`FaucetInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl FaucetInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> FaucetInstance { + FaucetInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > FaucetInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > FaucetInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + } +} +/** + +Generated by the following Solidity interface... +```solidity +library Faucet { + struct DripParameters { + address payable recipient; + bytes data; + bytes32 nonce; + uint32 gasLimit; + } +} + +interface AdminFaucetAuthModule { + constructor(address _admin, string _name, string _version); + + function ADMIN() external view returns (address); + function PROOF_TYPEHASH() external view returns (bytes32); + function verify(Faucet.DripParameters memory _params, bytes32 _id, bytes memory _proof) external view returns (bool valid_); +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "constructor", + "inputs": [ + { + "name": "_admin", + "type": "address", + "internalType": "address" + }, + { + "name": "_name", + "type": "string", + "internalType": "string" + }, + { + "name": "_version", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "ADMIN", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "PROOF_TYPEHASH", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "verify", + "inputs": [ + { + "name": "_params", + "type": "tuple", + "internalType": "struct Faucet.DripParameters", + "components": [ + { + "name": "recipient", + "type": "address", + "internalType": "address payable" + }, + { + "name": "data", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "nonce", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "gasLimit", + "type": "uint32", + "internalType": "uint32" + } + ] + }, + { + "name": "_id", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "_proof", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [ + { + "name": "valid_", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod AdminFaucetAuthModule { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x6101806040527fd4283507dc7a8282faa6b4c8c18bacbb74dbbab5467342e6f581656f3577236e6101605234801561003657600080fd5b50604051610b92380380610b92833981016040819052610055916101b8565b815160209283012081519183019190912060e08290526101008190524660a0818152604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f818801819052818301969096526060810194909452608080850193909352308483018190528151808603909301835260c094850190915281519190950120905291909152610120526001600160a01b03166101405261023a565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261011d57600080fd5b81516001600160401b0380821115610137576101376100f6565b604051601f8301601f19908116603f0116810190828211818310171561015f5761015f6100f6565b8160405283815260209250868385880101111561017b57600080fd5b600091505b8382101561019d5785820183015181830184015290820190610180565b838211156101ae5760008385830101525b9695505050505050565b6000806000606084860312156101cd57600080fd5b83516001600160a01b03811681146101e457600080fd5b60208501519093506001600160401b038082111561020157600080fd5b61020d8783880161010c565b9350604086015191508082111561022357600080fd5b506102308682870161010c565b9150509250925092565b60805160a05160c05160e051610100516101205161014051610160516108e86102aa60003960008181609c015260fb015260008181604b01526101530152600061045a015260006104a901526000610484015260006103dd015260006104070152600061043101526108e86000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80632a0acc6a146100465780638b3e3bf614610097578063d855814f146100cc575b600080fd5b61006d7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b6100be7f000000000000000000000000000000000000000000000000000000000000000081565b60405190815260200161008e565b6100df6100da36600461071b565b6100ef565b604051901515815260200161008e565b825160408085015181517f0000000000000000000000000000000000000000000000000000000000000000602082015273ffffffffffffffffffffffffffffffffffffffff9093169183019190915260608201526080810183905260009061019b907f0000000000000000000000000000000000000000000000000000000000000000906101959060a001604051602081830303815290604052805190602001206101a3565b84610212565b949350505050565b600061020c6101b06103c3565b836040517f19010000000000000000000000000000000000000000000000000000000000006020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b92915050565b600080600061022185856104f7565b9092509050600081600481111561023a5761023a61080d565b14801561027257508573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b15610282576001925050506103bc565b6000808773ffffffffffffffffffffffffffffffffffffffff16631626ba7e60e01b88886040516024016102b792919061086c565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090941693909317909252905161032291906108a6565b600060405180830381855afa9150503d806000811461035d576040519150601f19603f3d011682016040523d82523d6000602084013e610362565b606091505b5091509150818015610375575080516020145b80156103b5575080517f1626ba7e00000000000000000000000000000000000000000000000000000000906103b390830160209081019084016108c2565b145b9450505050505b9392505050565b60003073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614801561042957507f000000000000000000000000000000000000000000000000000000000000000046145b1561045357507f000000000000000000000000000000000000000000000000000000000000000090565b50604080517f00000000000000000000000000000000000000000000000000000000000000006020808301919091527f0000000000000000000000000000000000000000000000000000000000000000828401527f000000000000000000000000000000000000000000000000000000000000000060608301524660808301523060a0808401919091528351808403909101815260c0909201909252805191012090565b600080825160410361052d5760208301516040840151606085015160001a6105218782858561053c565b94509450505050610535565b506000905060025b9250929050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115610573575060009050600361062d565b8460ff16601b1415801561058b57508460ff16601c14155b1561059c575060009050600461062d565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156105f0573d6000803e3d6000fd5b5050604051601f19015191505073ffffffffffffffffffffffffffffffffffffffff81166106265760006001925092505061062d565b9150600090505b94509492505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040516080810167ffffffffffffffff8111828210171561068857610688610636565b60405290565b600082601f83011261069f57600080fd5b813567ffffffffffffffff808211156106ba576106ba610636565b604051601f8301601f19908116603f011681019082821181831017156106e2576106e2610636565b816040528381528660208588010111156106fb57600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008060006060848603121561073057600080fd5b833567ffffffffffffffff8082111561074857600080fd5b908501906080828803121561075c57600080fd5b610764610665565b823573ffffffffffffffffffffffffffffffffffffffff8116811461078857600080fd5b815260208301358281111561079c57600080fd5b6107a88982860161068e565b602083015250604083013560408201526060830135925063ffffffff831683146107d157600080fd5b826060820152809550506020860135935060408601359150808211156107f657600080fd5b506108038682870161068e565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60005b8381101561085757818101518382015260200161083f565b83811115610866576000848401525b50505050565b828152604060208201526000825180604084015261089181606085016020870161083c565b601f01601f1916919091016060019392505050565b600082516108b881846020870161083c565b9190910192915050565b6000602082840312156108d457600080fd5b505191905056fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"a\x01\x80`@R\x7F\xD4(5\x07\xDCz\x82\x82\xFA\xA6\xB4\xC8\xC1\x8B\xAC\xBBt\xDB\xBA\xB5FsB\xE6\xF5\x81eo5w#na\x01`R4\x80\x15a\x006W`\0\x80\xFD[P`@Qa\x0B\x928\x03\x80a\x0B\x92\x839\x81\x01`@\x81\x90Ra\0U\x91a\x01\xB8V[\x81Q` \x92\x83\x01 \x81Q\x91\x83\x01\x91\x90\x91 `\xE0\x82\x90Ra\x01\0\x81\x90RF`\xA0\x81\x81R`@\x80Q\x7F\x8Bs\xC3\xC6\x9B\xB8\xFE=Q.\xCCL\xF7Y\xCCy#\x9F{\x17\x9B\x0F\xFA\xCA\xA9\xA7]R+9@\x0F\x81\x88\x01\x81\x90R\x81\x83\x01\x96\x90\x96R``\x81\x01\x94\x90\x94R`\x80\x80\x85\x01\x93\x90\x93R0\x84\x83\x01\x81\x90R\x81Q\x80\x86\x03\x90\x93\x01\x83R`\xC0\x94\x85\x01\x90\x91R\x81Q\x91\x90\x95\x01 \x90R\x91\x90\x91Ra\x01 R`\x01`\x01`\xA0\x1B\x03\x16a\x01@Ra\x02:V[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[`\0\x82`\x1F\x83\x01\x12a\x01\x1DW`\0\x80\xFD[\x81Q`\x01`\x01`@\x1B\x03\x80\x82\x11\x15a\x017Wa\x017a\0\xF6V[`@Q`\x1F\x83\x01`\x1F\x19\x90\x81\x16`?\x01\x16\x81\x01\x90\x82\x82\x11\x81\x83\x10\x17\x15a\x01_Wa\x01_a\0\xF6V[\x81`@R\x83\x81R` \x92P\x86\x83\x85\x88\x01\x01\x11\x15a\x01{W`\0\x80\xFD[`\0\x91P[\x83\x82\x10\x15a\x01\x9DW\x85\x82\x01\x83\x01Q\x81\x83\x01\x84\x01R\x90\x82\x01\x90a\x01\x80V[\x83\x82\x11\x15a\x01\xAEW`\0\x83\x85\x83\x01\x01R[\x96\x95PPPPPPV[`\0\x80`\0``\x84\x86\x03\x12\x15a\x01\xCDW`\0\x80\xFD[\x83Q`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a\x01\xE4W`\0\x80\xFD[` \x85\x01Q\x90\x93P`\x01`\x01`@\x1B\x03\x80\x82\x11\x15a\x02\x01W`\0\x80\xFD[a\x02\r\x87\x83\x88\x01a\x01\x0CV[\x93P`@\x86\x01Q\x91P\x80\x82\x11\x15a\x02#W`\0\x80\xFD[Pa\x020\x86\x82\x87\x01a\x01\x0CV[\x91PP\x92P\x92P\x92V[`\x80Q`\xA0Q`\xC0Q`\xE0Qa\x01\0Qa\x01 Qa\x01@Qa\x01`Qa\x08\xE8a\x02\xAA`\09`\0\x81\x81`\x9C\x01R`\xFB\x01R`\0\x81\x81`K\x01Ra\x01S\x01R`\0a\x04Z\x01R`\0a\x04\xA9\x01R`\0a\x04\x84\x01R`\0a\x03\xDD\x01R`\0a\x04\x07\x01R`\0a\x041\x01Ra\x08\xE8`\0\xF3\xFE`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`\x046\x10a\0AW`\x005`\xE0\x1C\x80c*\n\xCCj\x14a\0FW\x80c\x8B>;\xF6\x14a\0\x97W\x80c\xD8U\x81O\x14a\0\xCCW[`\0\x80\xFD[a\0m\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[a\0\xBE\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[`@Q\x90\x81R` \x01a\0\x8EV[a\0\xDFa\0\xDA6`\x04a\x07\x1BV[a\0\xEFV[`@Q\x90\x15\x15\x81R` \x01a\0\x8EV[\x82Q`@\x80\x85\x01Q\x81Q\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0` \x82\x01Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x93\x16\x91\x83\x01\x91\x90\x91R``\x82\x01R`\x80\x81\x01\x83\x90R`\0\x90a\x01\x9B\x90\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90a\x01\x95\x90`\xA0\x01`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 a\x01\xA3V[\x84a\x02\x12V[\x94\x93PPPPV[`\0a\x02\x0Ca\x01\xB0a\x03\xC3V[\x83`@Q\x7F\x19\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0` \x82\x01R`\"\x81\x01\x83\x90R`B\x81\x01\x82\x90R`\0\x90`b\x01`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 \x90P\x92\x91PPV[\x92\x91PPV[`\0\x80`\0a\x02!\x85\x85a\x04\xF7V[\x90\x92P\x90P`\0\x81`\x04\x81\x11\x15a\x02:Wa\x02:a\x08\rV[\x14\x80\x15a\x02rWP\x85s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x82s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14[\x15a\x02\x82W`\x01\x92PPPa\x03\xBCV[`\0\x80\x87s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\x16&\xBA~`\xE0\x1B\x88\x88`@Q`$\x01a\x02\xB7\x92\x91\x90a\x08lV[`@\x80Q`\x1F\x19\x81\x84\x03\x01\x81R\x91\x81R` \x82\x01\x80Q{\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xFF\xFF\xFF\xFF\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\x90\x94\x16\x93\x90\x93\x17\x90\x92R\x90Qa\x03\"\x91\x90a\x08\xA6V[`\0`@Q\x80\x83\x03\x81\x85Z\xFA\x91PP=\x80`\0\x81\x14a\x03]W`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=`\0` \x84\x01>a\x03bV[``\x91P[P\x91P\x91P\x81\x80\x15a\x03uWP\x80Q` \x14[\x80\x15a\x03\xB5WP\x80Q\x7F\x16&\xBA~\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\x90a\x03\xB3\x90\x83\x01` \x90\x81\x01\x90\x84\x01a\x08\xC2V[\x14[\x94PPPPP[\x93\x92PPPV[`\x000s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x14\x80\x15a\x04)WP\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0F\x14[\x15a\x04SWP\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90V[P`@\x80Q\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0` \x80\x83\x01\x91\x90\x91R\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x82\x84\x01R\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0``\x83\x01RF`\x80\x83\x01R0`\xA0\x80\x84\x01\x91\x90\x91R\x83Q\x80\x84\x03\x90\x91\x01\x81R`\xC0\x90\x92\x01\x90\x92R\x80Q\x91\x01 \x90V[`\0\x80\x82Q`A\x03a\x05-W` \x83\x01Q`@\x84\x01Q``\x85\x01Q`\0\x1Aa\x05!\x87\x82\x85\x85a\x05=`\0\xFD[PP`@Q`\x1F\x19\x01Q\x91PPs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16a\x06&W`\0`\x01\x92P\x92PPa\x06-V[\x91P`\0\x90P[\x94P\x94\x92PPPV[\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[`@Q`\x80\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a\x06\x88Wa\x06\x88a\x066V[`@R\x90V[`\0\x82`\x1F\x83\x01\x12a\x06\x9FW`\0\x80\xFD[\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x06\xBAWa\x06\xBAa\x066V[`@Q`\x1F\x83\x01`\x1F\x19\x90\x81\x16`?\x01\x16\x81\x01\x90\x82\x82\x11\x81\x83\x10\x17\x15a\x06\xE2Wa\x06\xE2a\x066V[\x81`@R\x83\x81R\x86` \x85\x88\x01\x01\x11\x15a\x06\xFBW`\0\x80\xFD[\x83` \x87\x01` \x83\x017`\0` \x85\x83\x01\x01R\x80\x94PPPPP\x92\x91PPV[`\0\x80`\0``\x84\x86\x03\x12\x15a\x070W`\0\x80\xFD[\x835g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x07HW`\0\x80\xFD[\x90\x85\x01\x90`\x80\x82\x88\x03\x12\x15a\x07\\W`\0\x80\xFD[a\x07da\x06eV[\x825s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x07\x88W`\0\x80\xFD[\x81R` \x83\x015\x82\x81\x11\x15a\x07\x9CW`\0\x80\xFD[a\x07\xA8\x89\x82\x86\x01a\x06\x8EV[` \x83\x01RP`@\x83\x015`@\x82\x01R``\x83\x015\x92Pc\xFF\xFF\xFF\xFF\x83\x16\x83\x14a\x07\xD1W`\0\x80\xFD[\x82``\x82\x01R\x80\x95PP` \x86\x015\x93P`@\x86\x015\x91P\x80\x82\x11\x15a\x07\xF6W`\0\x80\xFD[Pa\x08\x03\x86\x82\x87\x01a\x06\x8EV[\x91PP\x92P\x92P\x92V[\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`!`\x04R`$`\0\xFD[`\0[\x83\x81\x10\x15a\x08WW\x81\x81\x01Q\x83\x82\x01R` \x01a\x08?V[\x83\x81\x11\x15a\x08fW`\0\x84\x84\x01R[PPPPV[\x82\x81R`@` \x82\x01R`\0\x82Q\x80`@\x84\x01Ra\x08\x91\x81``\x85\x01` \x87\x01a\x08;\xF6\x14a\0\x97W\x80c\xD8U\x81O\x14a\0\xCCW[`\0\x80\xFD[a\0m\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[a\0\xBE\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[`@Q\x90\x81R` \x01a\0\x8EV[a\0\xDFa\0\xDA6`\x04a\x07\x1BV[a\0\xEFV[`@Q\x90\x15\x15\x81R` \x01a\0\x8EV[\x82Q`@\x80\x85\x01Q\x81Q\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0` \x82\x01Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x93\x16\x91\x83\x01\x91\x90\x91R``\x82\x01R`\x80\x81\x01\x83\x90R`\0\x90a\x01\x9B\x90\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90a\x01\x95\x90`\xA0\x01`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 a\x01\xA3V[\x84a\x02\x12V[\x94\x93PPPPV[`\0a\x02\x0Ca\x01\xB0a\x03\xC3V[\x83`@Q\x7F\x19\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0` \x82\x01R`\"\x81\x01\x83\x90R`B\x81\x01\x82\x90R`\0\x90`b\x01`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 \x90P\x92\x91PPV[\x92\x91PPV[`\0\x80`\0a\x02!\x85\x85a\x04\xF7V[\x90\x92P\x90P`\0\x81`\x04\x81\x11\x15a\x02:Wa\x02:a\x08\rV[\x14\x80\x15a\x02rWP\x85s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x82s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14[\x15a\x02\x82W`\x01\x92PPPa\x03\xBCV[`\0\x80\x87s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\x16&\xBA~`\xE0\x1B\x88\x88`@Q`$\x01a\x02\xB7\x92\x91\x90a\x08lV[`@\x80Q`\x1F\x19\x81\x84\x03\x01\x81R\x91\x81R` \x82\x01\x80Q{\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xFF\xFF\xFF\xFF\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\x90\x94\x16\x93\x90\x93\x17\x90\x92R\x90Qa\x03\"\x91\x90a\x08\xA6V[`\0`@Q\x80\x83\x03\x81\x85Z\xFA\x91PP=\x80`\0\x81\x14a\x03]W`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=`\0` \x84\x01>a\x03bV[``\x91P[P\x91P\x91P\x81\x80\x15a\x03uWP\x80Q` \x14[\x80\x15a\x03\xB5WP\x80Q\x7F\x16&\xBA~\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\x90a\x03\xB3\x90\x83\x01` \x90\x81\x01\x90\x84\x01a\x08\xC2V[\x14[\x94PPPPP[\x93\x92PPPV[`\x000s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x14\x80\x15a\x04)WP\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0F\x14[\x15a\x04SWP\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90V[P`@\x80Q\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0` \x80\x83\x01\x91\x90\x91R\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x82\x84\x01R\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0``\x83\x01RF`\x80\x83\x01R0`\xA0\x80\x84\x01\x91\x90\x91R\x83Q\x80\x84\x03\x90\x91\x01\x81R`\xC0\x90\x92\x01\x90\x92R\x80Q\x91\x01 \x90V[`\0\x80\x82Q`A\x03a\x05-W` \x83\x01Q`@\x84\x01Q``\x85\x01Q`\0\x1Aa\x05!\x87\x82\x85\x85a\x05=`\0\xFD[PP`@Q`\x1F\x19\x01Q\x91PPs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16a\x06&W`\0`\x01\x92P\x92PPa\x06-V[\x91P`\0\x90P[\x94P\x94\x92PPPV[\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[`@Q`\x80\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a\x06\x88Wa\x06\x88a\x066V[`@R\x90V[`\0\x82`\x1F\x83\x01\x12a\x06\x9FW`\0\x80\xFD[\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x06\xBAWa\x06\xBAa\x066V[`@Q`\x1F\x83\x01`\x1F\x19\x90\x81\x16`?\x01\x16\x81\x01\x90\x82\x82\x11\x81\x83\x10\x17\x15a\x06\xE2Wa\x06\xE2a\x066V[\x81`@R\x83\x81R\x86` \x85\x88\x01\x01\x11\x15a\x06\xFBW`\0\x80\xFD[\x83` \x87\x01` \x83\x017`\0` \x85\x83\x01\x01R\x80\x94PPPPP\x92\x91PPV[`\0\x80`\0``\x84\x86\x03\x12\x15a\x070W`\0\x80\xFD[\x835g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x07HW`\0\x80\xFD[\x90\x85\x01\x90`\x80\x82\x88\x03\x12\x15a\x07\\W`\0\x80\xFD[a\x07da\x06eV[\x825s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x07\x88W`\0\x80\xFD[\x81R` \x83\x015\x82\x81\x11\x15a\x07\x9CW`\0\x80\xFD[a\x07\xA8\x89\x82\x86\x01a\x06\x8EV[` \x83\x01RP`@\x83\x015`@\x82\x01R``\x83\x015\x92Pc\xFF\xFF\xFF\xFF\x83\x16\x83\x14a\x07\xD1W`\0\x80\xFD[\x82``\x82\x01R\x80\x95PP` \x86\x015\x93P`@\x86\x015\x91P\x80\x82\x11\x15a\x07\xF6W`\0\x80\xFD[Pa\x08\x03\x86\x82\x87\x01a\x06\x8EV[\x91PP\x92P\x92P\x92V[\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`!`\x04R`$`\0\xFD[`\0[\x83\x81\x10\x15a\x08WW\x81\x81\x01Q\x83\x82\x01R` \x01a\x08?V[\x83\x81\x11\x15a\x08fW`\0\x84\x84\x01R[PPPPV[\x82\x81R`@` \x82\x01R`\0\x82Q\x80`@\x84\x01Ra\x08\x91\x81``\x85\x01` \x87\x01a\x08 = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::String, + alloy::sol_types::sol_data::String, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::String, + alloy::sol_types::private::String, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: constructorCall) -> Self { + (value._admin, value._name, value._version) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for constructorCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _admin: tuple.0, + _name: tuple.1, + _version: tuple.2, + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolConstructor for constructorCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::String, + alloy::sol_types::sol_data::String, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._admin, + ), + ::tokenize( + &self._name, + ), + ::tokenize( + &self._version, + ), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `ADMIN()` and selector `0x2a0acc6a`. +```solidity +function ADMIN() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ADMINCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`ADMIN()`](ADMINCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ADMINReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ADMINCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ADMINCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ADMINReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ADMINReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for ADMINCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ADMIN()"; + const SELECTOR: [u8; 4] = [42u8, 10u8, 204u8, 106u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: ADMINReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: ADMINReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `PROOF_TYPEHASH()` and selector `0x8b3e3bf6`. +```solidity +function PROOF_TYPEHASH() external view returns (bytes32); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct PROOF_TYPEHASHCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`PROOF_TYPEHASH()`](PROOF_TYPEHASHCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct PROOF_TYPEHASHReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: PROOF_TYPEHASHCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for PROOF_TYPEHASHCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: PROOF_TYPEHASHReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for PROOF_TYPEHASHReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for PROOF_TYPEHASHCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::FixedBytes<32>; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "PROOF_TYPEHASH()"; + const SELECTOR: [u8; 4] = [139u8, 62u8, 59u8, 246u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: PROOF_TYPEHASHReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: PROOF_TYPEHASHReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `verify((address,bytes,bytes32,uint32),bytes32,bytes)` and selector `0xd855814f`. +```solidity +function verify(Faucet.DripParameters memory _params, bytes32 _id, bytes memory _proof) external view returns (bool valid_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct verifyCall { + #[allow(missing_docs)] + pub _params: ::RustType, + #[allow(missing_docs)] + pub _id: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub _proof: alloy::sol_types::private::Bytes, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`verify((address,bytes,bytes32,uint32),bytes32,bytes)`](verifyCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct verifyReturn { + #[allow(missing_docs)] + pub valid_: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + Faucet::DripParameters, + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + alloy::sol_types::private::FixedBytes<32>, + alloy::sol_types::private::Bytes, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: verifyCall) -> Self { + (value._params, value._id, value._proof) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for verifyCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _params: tuple.0, + _id: tuple.1, + _proof: tuple.2, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: verifyReturn) -> Self { + (value.valid_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for verifyReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { valid_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for verifyCall { + type Parameters<'a> = ( + Faucet::DripParameters, + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Bytes, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "verify((address,bytes,bytes32,uint32),bytes32,bytes)"; + const SELECTOR: [u8; 4] = [216u8, 85u8, 129u8, 79u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._params, + ), + as alloy_sol_types::SolType>::tokenize(&self._id), + ::tokenize( + &self._proof, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: verifyReturn = r.into(); + r.valid_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: verifyReturn = r.into(); + r.valid_ + }) + } + } + }; + ///Container for all the [`AdminFaucetAuthModule`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum AdminFaucetAuthModuleCalls { + #[allow(missing_docs)] + ADMIN(ADMINCall), + #[allow(missing_docs)] + PROOF_TYPEHASH(PROOF_TYPEHASHCall), + #[allow(missing_docs)] + verify(verifyCall), + } + impl AdminFaucetAuthModuleCalls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [42u8, 10u8, 204u8, 106u8], + [139u8, 62u8, 59u8, 246u8], + [216u8, 85u8, 129u8, 79u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(ADMIN), + ::core::stringify!(PROOF_TYPEHASH), + ::core::stringify!(verify), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for AdminFaucetAuthModuleCalls { + const NAME: &'static str = "AdminFaucetAuthModuleCalls"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 3usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::ADMIN(_) => ::SELECTOR, + Self::PROOF_TYPEHASH(_) => { + ::SELECTOR + } + Self::verify(_) => ::SELECTOR, + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn ADMIN( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(AdminFaucetAuthModuleCalls::ADMIN) + } + ADMIN + }, + { + fn PROOF_TYPEHASH( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(AdminFaucetAuthModuleCalls::PROOF_TYPEHASH) + } + PROOF_TYPEHASH + }, + { + fn verify( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(AdminFaucetAuthModuleCalls::verify) + } + verify + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn ADMIN( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AdminFaucetAuthModuleCalls::ADMIN) + } + ADMIN + }, + { + fn PROOF_TYPEHASH( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AdminFaucetAuthModuleCalls::PROOF_TYPEHASH) + } + PROOF_TYPEHASH + }, + { + fn verify( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AdminFaucetAuthModuleCalls::verify) + } + verify + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::ADMIN(inner) => { + ::abi_encoded_size(inner) + } + Self::PROOF_TYPEHASH(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::verify(inner) => { + ::abi_encoded_size(inner) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::ADMIN(inner) => { + ::abi_encode_raw(inner, out) + } + Self::PROOF_TYPEHASH(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::verify(inner) => { + ::abi_encode_raw(inner, out) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`AdminFaucetAuthModule`](self) contract instance. + +See the [wrapper's documentation](`AdminFaucetAuthModuleInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> AdminFaucetAuthModuleInstance { + AdminFaucetAuthModuleInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + _admin: alloy::sol_types::private::Address, + _name: alloy::sol_types::private::String, + _version: alloy::sol_types::private::String, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + AdminFaucetAuthModuleInstance::< + P, + N, + >::deploy(__provider, _admin, _name, _version) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + _admin: alloy::sol_types::private::Address, + _name: alloy::sol_types::private::String, + _version: alloy::sol_types::private::String, + ) -> alloy_contract::RawCallBuilder { + AdminFaucetAuthModuleInstance::< + P, + N, + >::deploy_builder(__provider, _admin, _name, _version) + } + /**A [`AdminFaucetAuthModule`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`AdminFaucetAuthModule`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct AdminFaucetAuthModuleInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for AdminFaucetAuthModuleInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("AdminFaucetAuthModuleInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > AdminFaucetAuthModuleInstance { + /**Creates a new wrapper around an on-chain [`AdminFaucetAuthModule`](self) contract instance. + +See the [wrapper's documentation](`AdminFaucetAuthModuleInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + _admin: alloy::sol_types::private::Address, + _name: alloy::sol_types::private::String, + _version: alloy::sol_types::private::String, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider, _admin, _name, _version); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder( + __provider: P, + _admin: alloy::sol_types::private::Address, + _name: alloy::sol_types::private::String, + _version: alloy::sol_types::private::String, + ) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + [ + &BYTECODE[..], + &alloy_sol_types::SolConstructor::abi_encode( + &constructorCall { + _admin, + _name, + _version, + }, + )[..], + ] + .concat() + .into(), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl AdminFaucetAuthModuleInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> AdminFaucetAuthModuleInstance { + AdminFaucetAuthModuleInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > AdminFaucetAuthModuleInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`ADMIN`] function. + pub fn ADMIN(&self) -> alloy_contract::SolCallBuilder<&P, ADMINCall, N> { + self.call_builder(&ADMINCall) + } + ///Creates a new call builder for the [`PROOF_TYPEHASH`] function. + pub fn PROOF_TYPEHASH( + &self, + ) -> alloy_contract::SolCallBuilder<&P, PROOF_TYPEHASHCall, N> { + self.call_builder(&PROOF_TYPEHASHCall) + } + ///Creates a new call builder for the [`verify`] function. + pub fn verify( + &self, + _params: ::RustType, + _id: alloy::sol_types::private::FixedBytes<32>, + _proof: alloy::sol_types::private::Bytes, + ) -> alloy_contract::SolCallBuilder<&P, verifyCall, N> { + self.call_builder(&verifyCall { _params, _id, _proof }) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > AdminFaucetAuthModuleInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + } +} diff --git a/bindings/rust/src/aggregate_verifier.rs b/bindings/rust/src/aggregate_verifier.rs new file mode 100644 index 000000000..a27884252 --- /dev/null +++ b/bindings/rust/src/aggregate_verifier.rs @@ -0,0 +1,17148 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface AggregateVerifier { + type GameStatus is uint8; + type ProofType is uint8; + type Claim is bytes32; + type GameType is uint32; + type Hash is bytes32; + type Timestamp is uint64; + + error AlreadyInitialized(); + error AlreadyProven(ProofType proofType); + error BondTransferFailed(); + error ClaimAlreadyResolved(); + error GameNotFinalized(); + error GameNotInProgress(); + error GameNotOver(); + error GameNotResolved(); + error GameOver(); + error GamePaused(); + error IntermediateRootMismatch(bytes32 intermediateRoot, bytes32 claim); + error IntermediateRootSameAsProposed(); + error InvalidBlockInterval(uint256 blockInterval, uint256 intermediateBlockInterval); + error InvalidGame(); + error InvalidIntermediateRootIndex(); + error InvalidParentGame(); + error InvalidProof(); + error InvalidProofThreshold(); + error InvalidProofType(); + error L1OriginHashMismatch(bytes32 claimed, bytes32 actual); + error L1OriginInFuture(uint256 l1OriginNumber, uint256 currentBlock); + error L1OriginTooOld(uint256 l1OriginNumber, uint256 currentBlock); + error MissingProof(ProofType proofType); + error NoCreditToClaim(); + error NotEnoughProofs(); + error ParentGameNotResolved(); + error Reentrancy(); + error UnexpectedBlockNumber(uint256 expectedBlockNumber, uint256 actualBlockNumber); + + event Challenged(address indexed challenger, uint256 intermediateRootIndex); + event CreditClaimed(address indexed recipient, uint256 amount); + event Nullified(address indexed nullifier, uint256 intermediateRootIndex, bytes32 intermediateRoot); + event Proved(address indexed prover, ProofType indexed proofType); + event Resolved(GameStatus status); + + constructor(GameType gameType_, address anchorStateRegistry_, address delayedWETH, address teeVerifier, address zkVerifier, bytes32 teeImageHash, bytes32 zkImageHash, bytes32 configHash, uint256 l2ChainId, uint256 blockInterval, uint256 intermediateBlockInterval, uint256 proofThreshold); + + function BLOCKHASH_WINDOW() external view returns (uint256); + function BLOCK_INTERVAL() external view returns (uint256); + function CONFIG_HASH() external view returns (bytes32); + function DELAYED_WETH() external view returns (address); + function DISPUTE_GAME_FACTORY() external view returns (address); + function EIP2935_CONTRACT() external view returns (address); + function EIP2935_WINDOW() external view returns (uint256); + function FAST_FINALIZATION_DELAY() external view returns (uint64); + function INTERMEDIATE_BLOCK_INTERVAL() external view returns (uint256); + function L2_CHAIN_ID() external view returns (uint256); + function PROOF_THRESHOLD() external view returns (uint256); + function SLOW_FINALIZATION_DELAY() external view returns (uint64); + function TEE_IMAGE_HASH() external view returns (bytes32); + function TEE_VERIFIER() external view returns (address); + function ZK_IMAGE_HASH() external view returns (bytes32); + function ZK_VERIFIER() external view returns (address); + function anchorStateRegistry() external view returns (address); + function bondAmount() external view returns (uint256); + function bondClaimed() external view returns (bool); + function bondRecipient() external view returns (address); + function bondUnlocked() external view returns (bool); + function challenge(bytes memory proofBytes, uint256 intermediateRootIndex, bytes32 intermediateRootToProve) external; + function claimCredit() external; + function closeGame() external; + function counteredByIntermediateRootIndexPlusOne() external view returns (uint256); + function createdAt() external view returns (Timestamp); + function expectedResolution() external view returns (Timestamp); + function extraData() external view returns (bytes memory); + function gameCreator() external pure returns (address); + function gameData() external view returns (GameType, Claim, bytes memory); + function gameOver() external view returns (bool); + function gameType() external view returns (GameType); + function initializeWithInitData(bytes memory proof) external payable; + function intermediateOutputRoot(uint256 index) external view returns (bytes32); + function intermediateOutputRoots() external view returns (bytes memory); + function intermediateOutputRootsCount() external view returns (uint256); + function l1Head() external pure returns (Hash); + function l2SequenceNumber() external pure returns (uint256); + function nullify(bytes memory proofBytes, uint256 intermediateRootIndex, bytes32 intermediateRootToProve) external; + function parentIndex() external pure returns (uint32); + function proofCount() external view returns (uint8); + function resolve() external returns (GameStatus); + function resolvedAt() external view returns (Timestamp); + function rootClaim() external pure returns (Claim); + function startingBlockNumber() external view returns (uint256); + function startingOutputRoot() external view returns (Hash root, uint256 l2SequenceNumber); + function startingRootHash() external view returns (Hash); + function status() external view returns (GameStatus); + function teeProver() external view returns (address); + function verifyProposalProof(bytes memory proofBytes) external; + function version() external pure returns (string memory); + function wasRespectedGameTypeWhenCreated() external view returns (bool); + function zkProver() external view returns (address); +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "constructor", + "inputs": [ + { + "name": "gameType_", + "type": "uint32", + "internalType": "GameType" + }, + { + "name": "anchorStateRegistry_", + "type": "address", + "internalType": "contract IAnchorStateRegistry" + }, + { + "name": "delayedWETH", + "type": "address", + "internalType": "contract IDelayedWETH" + }, + { + "name": "teeVerifier", + "type": "address", + "internalType": "contract IVerifier" + }, + { + "name": "zkVerifier", + "type": "address", + "internalType": "contract IVerifier" + }, + { + "name": "teeImageHash", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "zkImageHash", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "configHash", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "l2ChainId", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "blockInterval", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "intermediateBlockInterval", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "proofThreshold", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "BLOCKHASH_WINDOW", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "BLOCK_INTERVAL", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "CONFIG_HASH", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "DELAYED_WETH", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract IDelayedWETH" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "DISPUTE_GAME_FACTORY", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract IDisputeGameFactory" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "EIP2935_CONTRACT", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "EIP2935_WINDOW", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "FAST_FINALIZATION_DELAY", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint64", + "internalType": "uint64" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "INTERMEDIATE_BLOCK_INTERVAL", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "L2_CHAIN_ID", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "PROOF_THRESHOLD", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "SLOW_FINALIZATION_DELAY", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint64", + "internalType": "uint64" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "TEE_IMAGE_HASH", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "TEE_VERIFIER", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract IVerifier" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "ZK_IMAGE_HASH", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "ZK_VERIFIER", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract IVerifier" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "anchorStateRegistry", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract IAnchorStateRegistry" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "bondAmount", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "bondClaimed", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "bondRecipient", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "bondUnlocked", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "challenge", + "inputs": [ + { + "name": "proofBytes", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "intermediateRootIndex", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "intermediateRootToProve", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "claimCredit", + "inputs": [], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "closeGame", + "inputs": [], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "counteredByIntermediateRootIndexPlusOne", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "createdAt", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint64", + "internalType": "Timestamp" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "expectedResolution", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint64", + "internalType": "Timestamp" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "extraData", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bytes", + "internalType": "bytes" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "gameCreator", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "gameData", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint32", + "internalType": "GameType" + }, + { + "name": "", + "type": "bytes32", + "internalType": "Claim" + }, + { + "name": "", + "type": "bytes", + "internalType": "bytes" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "gameOver", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "gameType", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint32", + "internalType": "GameType" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "initializeWithInitData", + "inputs": [ + { + "name": "proof", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "intermediateOutputRoot", + "inputs": [ + { + "name": "index", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "intermediateOutputRoots", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bytes", + "internalType": "bytes" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "intermediateOutputRootsCount", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "l1Head", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bytes32", + "internalType": "Hash" + } + ], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "l2SequenceNumber", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "nullify", + "inputs": [ + { + "name": "proofBytes", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "intermediateRootIndex", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "intermediateRootToProve", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "parentIndex", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint32", + "internalType": "uint32" + } + ], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "proofCount", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint8", + "internalType": "uint8" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "resolve", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint8", + "internalType": "enum GameStatus" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "resolvedAt", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint64", + "internalType": "Timestamp" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "rootClaim", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bytes32", + "internalType": "Claim" + } + ], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "startingBlockNumber", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "startingOutputRoot", + "inputs": [], + "outputs": [ + { + "name": "root", + "type": "bytes32", + "internalType": "Hash" + }, + { + "name": "l2SequenceNumber", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "startingRootHash", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bytes32", + "internalType": "Hash" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "status", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint8", + "internalType": "enum GameStatus" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "teeProver", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "verifyProposalProof", + "inputs": [ + { + "name": "proofBytes", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "version", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "wasRespectedGameTypeWhenCreated", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "zkProver", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "event", + "name": "Challenged", + "inputs": [ + { + "name": "challenger", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "intermediateRootIndex", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "CreditClaimed", + "inputs": [ + { + "name": "recipient", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "Nullified", + "inputs": [ + { + "name": "nullifier", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "intermediateRootIndex", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + }, + { + "name": "intermediateRoot", + "type": "bytes32", + "indexed": false, + "internalType": "bytes32" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "Proved", + "inputs": [ + { + "name": "prover", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "proofType", + "type": "uint8", + "indexed": true, + "internalType": "enum AggregateVerifier.ProofType" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "Resolved", + "inputs": [ + { + "name": "status", + "type": "uint8", + "indexed": false, + "internalType": "enum GameStatus" + } + ], + "anonymous": false + }, + { + "type": "error", + "name": "AlreadyInitialized", + "inputs": [] + }, + { + "type": "error", + "name": "AlreadyProven", + "inputs": [ + { + "name": "proofType", + "type": "uint8", + "internalType": "enum AggregateVerifier.ProofType" + } + ] + }, + { + "type": "error", + "name": "BondTransferFailed", + "inputs": [] + }, + { + "type": "error", + "name": "ClaimAlreadyResolved", + "inputs": [] + }, + { + "type": "error", + "name": "GameNotFinalized", + "inputs": [] + }, + { + "type": "error", + "name": "GameNotInProgress", + "inputs": [] + }, + { + "type": "error", + "name": "GameNotOver", + "inputs": [] + }, + { + "type": "error", + "name": "GameNotResolved", + "inputs": [] + }, + { + "type": "error", + "name": "GameOver", + "inputs": [] + }, + { + "type": "error", + "name": "GamePaused", + "inputs": [] + }, + { + "type": "error", + "name": "IntermediateRootMismatch", + "inputs": [ + { + "name": "intermediateRoot", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "claim", + "type": "bytes32", + "internalType": "bytes32" + } + ] + }, + { + "type": "error", + "name": "IntermediateRootSameAsProposed", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidBlockInterval", + "inputs": [ + { + "name": "blockInterval", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "intermediateBlockInterval", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { + "type": "error", + "name": "InvalidGame", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidIntermediateRootIndex", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidParentGame", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidProof", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidProofThreshold", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidProofType", + "inputs": [] + }, + { + "type": "error", + "name": "L1OriginHashMismatch", + "inputs": [ + { + "name": "claimed", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "actual", + "type": "bytes32", + "internalType": "bytes32" + } + ] + }, + { + "type": "error", + "name": "L1OriginInFuture", + "inputs": [ + { + "name": "l1OriginNumber", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "currentBlock", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { + "type": "error", + "name": "L1OriginTooOld", + "inputs": [ + { + "name": "l1OriginNumber", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "currentBlock", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { + "type": "error", + "name": "MissingProof", + "inputs": [ + { + "name": "proofType", + "type": "uint8", + "internalType": "enum AggregateVerifier.ProofType" + } + ] + }, + { + "type": "error", + "name": "NoCreditToClaim", + "inputs": [] + }, + { + "type": "error", + "name": "NotEnoughProofs", + "inputs": [] + }, + { + "type": "error", + "name": "ParentGameNotResolved", + "inputs": [] + }, + { + "type": "error", + "name": "Reentrancy", + "inputs": [] + }, + { + "type": "error", + "name": "UnexpectedBlockNumber", + "inputs": [ + { + "name": "expectedBlockNumber", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "actualBlockNumber", + "type": "uint256", + "internalType": "uint256" + } + ] + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod AggregateVerifier { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x6102406040523480156200001257600080fd5b50604051620042ae380380620042ae8339810160408190526200003591620001fd565b82158062000041575081155b80620000575750620000548284620002d3565b15155b15620000845760405163462b853960e11b8152600481018490526024810183905260440160405180910390fd5b8060011415801562000097575080600214155b15620000b65760405163b1016ea760e01b815260040160405180910390fd5b63ffffffff8c16610200526001600160a01b038b1660808190526040805163f2b4e61760e01b8152905163f2b4e617916004808201926020929091908290030181865afa1580156200010c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001329190620002ea565b6001600160a01b0390811660a0528a811660c05289811660e0528816610120526101008790526101408690526101608590526101808490526101a08390526101c082905261022081905262000186620001b7565b6200019390602062000327565b620001a090607e62000349565b6101e052506200037b9a5050505050505050505050565b60006101c0516101a051620001cd919062000364565b905090565b6001600160a01b0381168114620001e857600080fd5b50565b8051620001f881620001d2565b919050565b6000806000806000806000806000806000806101808d8f0312156200022157600080fd5b8c5163ffffffff811681146200023657600080fd5b9b506200024660208e01620001eb565b9a506200025660408e01620001eb565b99506200026660608e01620001eb565b98506200027660808e01620001eb565b975060a08d0151965060c08d0151955060e08d015194506101008d015193506101208d015192506101408d015191506101608d015190509295989b509295989b509295989b565b634e487b7160e01b600052601260045260246000fd5b600082620002e557620002e5620002bd565b500690565b600060208284031215620002fd57600080fd5b81516200030a81620001d2565b9392505050565b634e487b7160e01b600052601160045260246000fd5b600081600019048311821515161562000344576200034462000311565b500290565b600082198211156200035f576200035f62000311565b500190565b600082620003765762000376620002bd565b500490565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c0516101e0516102005161022051613d9d62000511600039600081816103a8015261119f015260008181610a0a015281816118610152612778015260006113b10152600081816107b401528181611e6e015281816131af01526131ea0152600081816105ca01528181611734015281816117770152611e8f015260006108da015260008181610b120152818161331e01526134cd0152600081816103f3015281816134ee015261359e01526000818161096c01528181612152015261356d0152600081816103610152818161333f015261341401526000818161049a015281816121e301526133e5015260008181610a8601528181610d3501528181610e5d0152611ab20152600081816108a6015281816114b901526127e50152600081816107300152818161169f0152818161188c01528181611be701528181611d2b01528181611e05015281816128d60152818161298301528181612aa401528181612b500152612bfc0152613d9d6000f3fe60806040526004361061034a5760003560e01c806364d12136116101bb5780639ded3952116100f7578063c26783e911610095578063d1ee5e4b1161006f578063d1ee5e4b14610ae9578063d28cb06f14610b00578063e41f96ad14610b34578063fa24f74314610b5457600080fd5b8063c26783e914610a74578063cf09e0d014610aa8578063cfcf984b14610ac957600080fd5b8063b97cb80f116100d1578063b97cb80f146109db578063bbdc02db146109fb578063bcef3b5514610a2e578063bdb337d114610a5057600080fd5b80639ded39521461095a578063addecc061461098e578063b74df35a146109c657600080fd5b80637a6bc9e1116101645780638417d3c21161013e5780638417d3c2146108c85780639730163d146108fc5780639840fd841461091257806399735e321461093857600080fd5b80637a6bc9e11461084b57806380f323a71461087e57806382ff53a11461089457600080fd5b806374f8bf321161019557806374f8bf32146107eb578063786b844b146108005780637948690a1461081557600080fd5b806364d121361461078b5780636dc86e81146107a257806370872aa5146107d657600080fd5b8063324a13c91161028a57806349edf35a1161023357806357da950e1161020d57806357da950e146106f15780635c0cba3314610721578063609d3334146107545780636361506d1461076957600080fd5b806349edf35a146106755780634e95eb581461069557806354fd4d50146106ab57600080fd5b80633fada3fd116102645780633fada3fd1461060e5780634224b1e714610640578063423161821461065357600080fd5b8063324a13c9146105a257806335c4377b146105b857806337b1b229146105ec57600080fd5b80631f837574116102f7578063250e69bd116102d1578063250e69bd1461051757806325fc2ace146105575780632810e1d61461056c5780632845e5bb1461058157600080fd5b80631f83757414610488578063200d2ed2146104bc57806323edb2e0146104f757600080fd5b80631405762f116103285780631405762f146103e157806319effeb4146104155780631ee5d7c81461045b57600080fd5b80630183fd441461034f57806310fbee28146103965780631333db2e146103ca575b600080fd5b34801561035b57600080fd5b506103837f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020015b60405180910390f35b3480156103a257600080fd5b506103837f000000000000000000000000000000000000000000000000000000000000000081565b3480156103d657600080fd5b506103df610b78565b005b3480156103ed57600080fd5b506103837f000000000000000000000000000000000000000000000000000000000000000081565b34801561042157600080fd5b506000546104429068010000000000000000900467ffffffffffffffff1681565b60405167ffffffffffffffff909116815260200161038d565b34801561046757600080fd5b50610470610fa2565b6040516001600160a01b03909116815260200161038d565b34801561049457600080fd5b506104707f000000000000000000000000000000000000000000000000000000000000000081565b3480156104c857600080fd5b506000546104ea90700100000000000000000000000000000000900460ff1681565b60405161038d91906137aa565b34801561050357600080fd5b50600354610470906001600160a01b031681565b34801561052357600080fd5b50600054610547907201000000000000000000000000000000000000900460ff1681565b604051901515815260200161038d565b34801561056357600080fd5b50600154610383565b34801561057857600080fd5b506104ea610fd9565b34801561058d57600080fd5b506007546104429067ffffffffffffffff1681565b3480156105ae57600080fd5b5061038360055481565b3480156105c457600080fd5b506103837f000000000000000000000000000000000000000000000000000000000000000081565b3480156105f857600080fd5b503660011981013560f01c90033560601c610470565b34801561061a57600080fd5b506003546105479074010000000000000000000000000000000000000000900460ff1681565b6103df61064e36600461380d565b611326565b34801561065f57600080fd5b50610668611b23565b60405161038d91906138a7565b34801561068157600080fd5b506103836106903660046138c1565b611b42565b3480156106a157600080fd5b5061038361010081565b3480156106b757600080fd5b5060408051808201909152600581527f302e312e300000000000000000000000000000000000000000000000000000006020820152610668565b3480156106fd57600080fd5b5060015460025461070c919082565b6040805192835260208301919091520161038d565b34801561072d57600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610470565b34801561076057600080fd5b50610668611bb4565b34801561077557600080fd5b503660011981013560f01c900360340135610383565b34801561079757600080fd5b506104426201518081565b3480156107ae57600080fd5b506103837f000000000000000000000000000000000000000000000000000000000000000081565b3480156107e257600080fd5b50600254610383565b3480156107f757600080fd5b50610470611bd9565b34801561080c57600080fd5b506103df611be5565b34801561082157600080fd5b503660011981013560f01c90036074013560e01c5b60405163ffffffff909116815260200161038d565b34801561085757600080fd5b50600354610547907501000000000000000000000000000000000000000000900460ff1681565b34801561088a57600080fd5b5061038360045481565b3480156108a057600080fd5b506104707f000000000000000000000000000000000000000000000000000000000000000081565b3480156108d457600080fd5b506103837f000000000000000000000000000000000000000000000000000000000000000081565b34801561090857600080fd5b50610383611fff81565b34801561091e57600080fd5b5061047071f90827f1c53a10cb7a02335b17532000293581565b34801561094457600080fd5b503660011981013560f01c900360540135610383565b34801561096657600080fd5b506104707f000000000000000000000000000000000000000000000000000000000000000081565b34801561099a57600080fd5b506007546109b49068010000000000000000900460ff1681565b60405160ff909116815260200161038d565b3480156109d257600080fd5b50610383611e67565b3480156109e757600080fd5b506103df6109f63660046138da565b611eb3565b348015610a0757600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610836565b348015610a3a57600080fd5b503660011981013560f01c900360140135610383565b348015610a5c57600080fd5b506007544267ffffffffffffffff9091161115610547565b348015610a8057600080fd5b506104707f000000000000000000000000000000000000000000000000000000000000000081565b348015610ab457600080fd5b506000546104429067ffffffffffffffff1681565b348015610ad557600080fd5b506103df610ae436600461380d565b612246565b348015610af557600080fd5b5061044262093a8081565b348015610b0c57600080fd5b506103837f000000000000000000000000000000000000000000000000000000000000000081565b348015610b4057600080fd5b506103df610b4f3660046138da565b6123dc565b348015610b6057600080fd5b50610b69612771565b60405161038d9392919061392b565b600268929eee149b4bd212685403610b985763ab143c066000526004601cfd5b600268929eee149b4bd21268556003547501000000000000000000000000000000000000000000900460ff1615610bfb576040517f17bfe5f700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60075467ffffffffffffffff90811614610c705760005468010000000000000000900467ffffffffffffffff1667ffffffffffffffff16600003610c6b576040517fc105260a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610ccd565b60005467ffffffffffffffff16610c8a9062127500613988565b67ffffffffffffffff16421015610ccd576040517f04643c3900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60035474010000000000000000000000000000000000000000900460ff16610dd857600354600480546040517f7eee288d0000000000000000000000000000000000000000000000000000000081526001600160a01b039384169281019290925260248201527f000000000000000000000000000000000000000000000000000000000000000090911690637eee288d90604401600060405180830381600087803b158015610d7b57600080fd5b505af1158015610d8f573d6000803e3d6000fd5b5050600380547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000017905550610f939050565b6003805475010000000000000000000000000000000000000000007fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff821617909155600480546040517ff3fef3a30000000000000000000000000000000000000000000000000000000081526001600160a01b039384169281019290925260248201527f00000000000000000000000000000000000000000000000000000000000000009091169063f3fef3a390604401600060405180830381600087803b158015610ea357600080fd5b505af1158015610eb7573d6000803e3d6000fd5b5050600354600454604051600094506001600160a01b039092169250908381818185875af1925050503d8060008114610f0c576040519150601f19603f3d011682016040523d82523d6000602084013e610f11565b606091505b5050905080610f4c576040517f83e6cc6b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6003546004546040519081526001600160a01b03909116907f87e12c2565042763daa6bf5842ed2b6447f17f7e28f9a4905fe3959581396ead9060200160405180910390a2505b600168929eee149b4bd2126855565b6000600681805b6001811115610fba57610fba61377b565b81526020810191909152604001600020546001600160a01b0316919050565b600080600054700100000000000000000000000000000000900460ff1660028111156110075761100761377b565b1461103e576040517ff1a9458100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006110486127ba565b9050600081600281111561105e5761105e61377b565b03611095576040517f92c506ae00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600554151560018260028111156110ae576110ae61377b565b036110f357600080547fffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff1670010000000000000000000000000000000017905561119a565b6007544267ffffffffffffffff909116111561113b576040517f04643c3900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8061114757600261114a565b60015b600080547fffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff167001000000000000000000000000000000008360028111156111945761119461377b565b02179055505b6007547f00000000000000000000000000000000000000000000000000000000000000006801000000000000000090910460ff161015611206576040517f344de4bf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b801561127057600160005260066020527f3e5fec24aa4dc4e5aee2e025e51e1392c72a2500577559fae9665c6d52bd6a3154600380547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039092169190911790555b600080547fffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff16680100000000000000004267ffffffffffffffff160217908190556040517f5e186f09b9c93491f14e277eea7faa5de6a2d4bda75a79af7a3684fbfb42da60916112f89170010000000000000000000000000000000090910460ff16906137aa565b60405180910390a15050600054700100000000000000000000000000000000900460ff16919050565b905090565b60005471010000000000000000000000000000000000900460ff1615611378576040517f0dc149f000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006020600161138884836139b4565b61139291906139cc565b61139c91906139e3565b6113a7906020613a1e565b90506000816113d77f000000000000000000000000000000000000000000000000000000000000000060406139b4565b6113e191906139b4565b90508036146113f857639824bdab6000526004601cfd5b6114113660011981013560f01c90036014013590565b90565b611428600161141e611e67565b61069091906139cc565b146114905761143a600161141e611e67565b6114503660011981013560f01c90036014013590565b6040517ff33fa6cf000000000000000000000000000000000000000000000000000000008152600481019290925260248201526044015b60405180910390fd5b63ffffffff3660011981013560f01c90036074013560e01c1461169d5760006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663bb8aa1fc3660011981013560f01c90036074013560e01c6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815263ffffffff919091166004820152602401606060405180830381865afa15801561154b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061156f9190613a56565b9250505061157c81612a69565b6115b2576040517f346119f700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040518060400160405280611622836001600160a01b031663bcef3b556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156115fe573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061140e9190613ab9565b8152602001826001600160a01b03166399735e326040518163ffffffff1660e01b8152600401602060405180830381865afa158015611665573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116899190613ab9565b90528051600155602001516002555061172b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663664ed8306040518163ffffffff1660e01b81526004016040805180830381865afa1580156116fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061171e9190613ad2565b8051600155602001516002555b600254611759907f0000000000000000000000000000000000000000000000000000000000000000906139b4565b3660011981013560f01c900360540135146117e75760025461179c907f0000000000000000000000000000000000000000000000000000000000000000906139b4565b3660011981013560f01c9003605401356040517f087b2d7600000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401611487565b6000805467ffffffffffffffff42167fffffffffffffffffffffffffffff00ffffffffffffffffff00000000000000009091161771010000000000000000000000000000000000179055604080517f3c9f397c000000000000000000000000000000000000000000000000000000008152905163ffffffff7f000000000000000000000000000000000000000000000000000000000000000016916001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691633c9f397c916004808201926020929091908290030181865afa1580156118d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118fc9190613b48565b600080547fffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffff1663ffffffff92909216929092147201000000000000000000000000000000000000021781556007805467ffffffffffffffff67ffffffffffffffff199091161790558484828161197457611974613b63565b919091013560f81c9050600181111561198f5761198f61377b565b905060006119a1602160018789613b92565b6119aa91613bbc565b905060006119bc60416021888a613b92565b6119c591613bbc565b90506119d18282612ced565b611a2e6119e1876041818b613b92565b853660011981013560f01c90033560601c60015487905b600254611a113660011981013560f01c90036014013590565b3660011981013560f01c900360540135611a29611b23565b612f1a565b611a47833660011981013560f01c90033560601c612fec565b600380547fffffffffffffffffffffffff000000000000000000000000000000000000000016600119369081013560f01c90033560601c179055346004818155604080517fd0e30db000000000000000000000000000000000000000000000000000000000815290517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169363d0e30db093909280820192600092909182900301818588803b158015611b0157600080fd5b505af1158015611b15573d6000803e3d6000fd5b505050505050505050505050565b60606113216078611b32611e67565b611b3d906020613a1e565b6130cf565b6000611b4c611e67565b8210611b84576040517fa6c661fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611bae611b92836020613a1e565b611b9d9060786139b4565b3660011981013560f01c9003013590565b92915050565b60606113216054611bc3611e67565b611bce906020613a1e565b611b3d9060246139b4565b60006006816001610fa9565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c43573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c679190613bda565b15611c9e576040517f379a7ed900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005468010000000000000000900467ffffffffffffffff1667ffffffffffffffff16600003611cfa576040517fc105260a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f0314d2b30000000000000000000000000000000000000000000000000000000081523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690630314d2b390602401602060405180830381865afa158015611d7a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d9e9190613bda565b905080611dd7576040517f4851bd9b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f17cf21a90000000000000000000000000000000000000000000000000000000081523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906317cf21a990602401600060405180830381600087803b158015611e5157600080fd5b505af1925050508015611e62575060015b505b50565b60006113217f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006139e3565b60008054700100000000000000000000000000000000900460ff166002811115611edf57611edf61377b565b14611f16576040517ff1a9458100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600084846000818110611f2b57611f2b613b63565b919091013560f81c90506001811115611f4657611f4661377b565b90506000600681836001811115611f5f57611f5f61377b565b6001811115611f7057611f7061377b565b81526020810191909152604001600020546001600160a01b031603611fc357806040517f25822d380000000000000000000000000000000000000000000000000000000081526004016114879190613bfc565b6005541561207b576001600554611fda91906139cc565b8314612012576040517fa6c661fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61201b83611b42565b821461202b578161145084611b42565b600181600181111561203f5761203f61377b565b14612076576040517f69ed70ab00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612085565b6120858383613103565b600080600061209386613184565b919450925090506120ed6120aa886001818c613b92565b86336120c23660011981013560f01c90036034013590565b88888c898e6040516020016120d991815260200190565b604051602081830303815290604052612f1a565b6120f68461321d565b604080518781526020810187905233917f5a8d9d181e6a59fe5477a50721401b6332a810b9183e15ac62d386379a05a717910160405180910390a260018460018111156121455761214561377b565b036121c8576005600090557f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ece20f366040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156121ab57600080fd5b505af11580156121bf573d6000803e3d6000fd5b5050505061223c565b60008460018111156121dc576121dc61377b565b0361223c577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ece20f366040518163ffffffff1660e01b8152600401600060405180830381600087803b158015611b0157600080fd5b5050505050505050565b60008054700100000000000000000000000000000000900460ff1660028111156122725761227261377b565b146122a9576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6007544267ffffffffffffffff909116116122f0576040517fdf469ccb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008282600081811061230557612305613b63565b919091013560f81c905060018111156123205761232061377b565b905060006006818360018111156123395761233961377b565b600181111561234a5761234a61377b565b81526020810191909152604001600020546001600160a01b03161461239d57806040517f7141297a0000000000000000000000000000000000000000000000000000000081526004016114879190613bfc565b6123cd6123ad8360018187613b92565b83336123c53660011981013560f01c90036034013590565b6001546119f8565b6123d78133612fec565b505050565b60008054700100000000000000000000000000000000900460ff1660028111156124085761240861377b565b1461243f576040517ff1a9458100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61244830612a69565b61247e576040517f57e25a0900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60016124886127ba565b60028111156124995761249961377b565b036124d0576040517f346119f700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000805260066020527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f8546001600160a01b031661253d5760006040517f25822d380000000000000000000000000000000000000000000000000000000081526004016114879190613bfc565b600160005260066020527f3e5fec24aa4dc4e5aee2e025e51e1392c72a2500577559fae9665c6d52bd6a31546001600160a01b0316156125ac5760016040517f7141297a0000000000000000000000000000000000000000000000000000000081526004016114879190613bfc565b6000848460008181106125c1576125c1613b63565b919091013560f81c905060018111156125dc576125dc61377b565b905060018160018111156125f2576125f261377b565b14612629576040517f69ed70ab00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6126338383613103565b600080600061264186613184565b919450925090506126586120aa886001818c613b92565b336006600086600181111561266f5761266f61377b565b60018111156126805761268061377b565b815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b031602179055506001600760088282829054906101000a900460ff166126d19190613c10565b92506101000a81548160ff021916908360ff16021790555062093a8067ffffffffffffffff164261270291906139b4565b6007805467ffffffffffffffff191667ffffffffffffffff9290921691909117905561272f8660016139b4565b60055560405186815233907f7a180232c19fd38c83e493856a42688c477bae7e82039103b2c1ea6a6162e5299060200160405180910390a25050505050505050565b60008060607f00000000000000000000000000000000000000000000000000000000000000003660011981013560f01c9003601401356127af611bb4565b925092509250909192565b600063ffffffff3660011981013560f01c90036074013560e01c14612a635760006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663bb8aa1fc3660011981013560f01c90036074013560e01c6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815263ffffffff919091166004820152602401606060405180830381865afa158015612877573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061289b9190613a56565b6040517f34a346ea0000000000000000000000000000000000000000000000000000000081526001600160a01b0380831660048301529194507f000000000000000000000000000000000000000000000000000000000000000090911692506334a346ea9150602401602060405180830381865afa158015612921573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129459190613bda565b806129ee57506040517f5958a1930000000000000000000000000000000000000000000000000000000081526001600160a01b0382811660048301527f00000000000000000000000000000000000000000000000000000000000000001690635958a19390602401602060405180830381865afa1580156129ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129ee9190613bda565b156129fb57600191505090565b806001600160a01b031663200d2ed26040518163ffffffff1660e01b8152600401602060405180830381865afa158015612a39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a5d9190613c35565b91505090565b50600290565b6040517f04e50fed0000000000000000000000000000000000000000000000000000000081526001600160a01b0382811660048301526000917f0000000000000000000000000000000000000000000000000000000000000000909116906304e50fed90602401602060405180830381865afa158015612aed573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b119190613bda565b8015612bbd57506040517f34a346ea0000000000000000000000000000000000000000000000000000000081526001600160a01b0383811660048301527f000000000000000000000000000000000000000000000000000000000000000016906334a346ea90602401602060405180830381865afa158015612b97573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bbb9190613bda565b155b8015612c6957506040517f5958a1930000000000000000000000000000000000000000000000000000000081526001600160a01b0383811660048301527f00000000000000000000000000000000000000000000000000000000000000001690635958a19390602401602060405180830381865afa158015612c43573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c679190613bda565b155b8015611bae57506001826001600160a01b031663200d2ed26040518163ffffffff1660e01b8152600401602060405180830381865afa158015612cb0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cd49190613c35565b6002811115612ce557612ce561377b565b141592915050565b438110612d2f576040517f25bfb0a400000000000000000000000000000000000000000000000000000000815260048101829052436024820152604401611487565b600080612d3c83436139cc565b90506101008111612d505782409150612e91565b611fff8111612e565760008071f90827f1c53a10cb7a02335b1753200029356001600160a01b031685604051602001612d8b91815260200190565b60408051601f1981840301815290829052612da591613c56565b600060405180830381855afa9150503d8060008114612de0576040519150601f19603f3d011682016040523d82523d6000602084013e612de5565b606091505b5091509150811580612df957508051602014155b15612e39576040517f0f0b8f8100000000000000000000000000000000000000000000000000000000815260048101869052436024820152604401611487565b80806020019051810190612e4d9190613ab9565b93505050612e91565b6040517f0f0b8f8100000000000000000000000000000000000000000000000000000000815260048101849052436024820152604401611487565b81612ed1576040517f0f0b8f8100000000000000000000000000000000000000000000000000000000815260048101849052436024820152604401611487565b838214612f14576040517f80b1ae510000000000000000000000000000000000000000000000000000000081526004810185905260248101839052604401611487565b50505050565b6001891015612f55576040517f09bde33900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000886001811115612f6957612f6961377b565b03612f8457612f7f8a8a89898989898989613313565b612fe0565b6001886001811115612f9857612f9861377b565b03612fae57612f7f8a8a898989898989896134c2565b6040517f69ed70ab00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505050505050505050565b80600660008460018111156130035761300361377b565b60018111156130145761301461377b565b815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b031602179055506001600760088282829054906101000a900460ff166130659190613c10565b92506101000a81548160ff021916908360ff16021790555061308561363f565b8160018111156130975761309761377b565b6040516001600160a01b038316907f62f393acfb3d3425116fe9be7a6509a4b652bda54fdac2df2b7273135ecd58e790600090a35050565b6040518181523660011981013560f01c90038284820160208401378260208301016000815260208101604052505092915050565b61310b611e67565b8210613143576040517fa6c661fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8061314d83611b42565b03611e62576040517fbbcafae600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080808084156131a25761319d6106906001876139cc565b6131a6565b6001545b905060006131d47f000000000000000000000000000000000000000000000000000000000000000087613a1e565b6002546131e191906139b4565b9050600061320f7f0000000000000000000000000000000000000000000000000000000000000000836139b4565b929791965091945092505050565b600660008260018111156132335761323361377b565b60018111156132445761324461377b565b81526020810191909152604001600090812080547fffffffffffffffffffffffff000000000000000000000000000000000000000016905560075468010000000000000000900460ff1690036132c6576040517f344de4bf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6007805460001960ff6801000000000000000080840482169290920116027fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff909116179055611e64613706565b6000878787878787877f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000060405160200161337699989796959493929190613c72565b6040516020818303038152906040528051906020012090506000888b8b6040516020016133a593929190613cec565b60408051601f19818403018152908290527fab750e7500000000000000000000000000000000000000000000000000000000825291506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063ab750e759061343e9084907f0000000000000000000000000000000000000000000000000000000000000000908790600401613d2b565b602060405180830381865afa15801561345b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061347f9190613bda565b6134b5576040517f09bde33900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050505050505050505050565b6000878787878787877f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000060405160200161352599989796959493929190613c72565b60408051601f198184030181529082905280516020909101207fab750e7500000000000000000000000000000000000000000000000000000000825291506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063ab750e75906135c8908d908d907f0000000000000000000000000000000000000000000000000000000000000000908790600401613d50565b602060405180830381865afa1580156135e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136099190613bda565b612fe0576040517f09bde33900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60075460009060026801000000000000000090910460ff16106136665750620151806136a7565b60075468010000000000000000900460ff16600103613689575062093a806136a7565b506007805467ffffffffffffffff191667ffffffffffffffff179055565b60006136b38242613988565b6007549091506136e09067ffffffffffffffff808416911667ffffffffffffffff16808218908211021890565b6007805467ffffffffffffffff191667ffffffffffffffff929092169190911790555050565b60075460009060026801000000000000000090910460ff161061372d57506201518061374c565b60075468010000000000000000900460ff16600103613689575062093a805b6137568142613988565b6007805467ffffffffffffffff191667ffffffffffffffff9290921691909117905550565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60208101600383106137be576137be61377b565b91905290565b60008083601f8401126137d657600080fd5b50813567ffffffffffffffff8111156137ee57600080fd5b60208301915083602082850101111561380657600080fd5b9250929050565b6000806020838503121561382057600080fd5b823567ffffffffffffffff81111561383757600080fd5b613843858286016137c4565b90969095509350505050565b60005b8381101561386a578181015183820152602001613852565b83811115612f145750506000910152565b6000815180845261389381602086016020860161384f565b601f01601f19169290920160200192915050565b6020815260006138ba602083018461387b565b9392505050565b6000602082840312156138d357600080fd5b5035919050565b600080600080606085870312156138f057600080fd5b843567ffffffffffffffff81111561390757600080fd5b613913878288016137c4565b90989097506020870135966040013595509350505050565b63ffffffff84168152826020820152606060408201526000613950606083018461387b565b95945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600067ffffffffffffffff8083168185168083038211156139ab576139ab613959565b01949350505050565b600082198211156139c7576139c7613959565b500190565b6000828210156139de576139de613959565b500390565b600082613a19577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b6000816000190483118215151615613a3857613a38613959565b500290565b805163ffffffff81168114613a5157600080fd5b919050565b600080600060608486031215613a6b57600080fd5b613a7484613a3d565b9250602084015167ffffffffffffffff81168114613a9157600080fd5b60408501519092506001600160a01b0381168114613aae57600080fd5b809150509250925092565b600060208284031215613acb57600080fd5b5051919050565b600060408284031215613ae457600080fd5b6040516040810181811067ffffffffffffffff82111715613b2e577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604052825181526020928301519281019290925250919050565b600060208284031215613b5a57600080fd5b6138ba82613a3d565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008085851115613ba257600080fd5b83861115613baf57600080fd5b5050820193919092039150565b80356020831015611bae57600019602084900360031b1b1692915050565b600060208284031215613bec57600080fd5b815180151581146138ba57600080fd5b60208101600283106137be576137be61377b565b600060ff821660ff84168060ff03821115613c2d57613c2d613959565b019392505050565b600060208284031215613c4757600080fd5b8151600381106138ba57600080fd5b60008251613c6881846020870161384f565b9190910192915050565b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008a60601b16815288601482015287603482015286605482015285607482015284609482015260008451613ccd8160b485016020890161384f565b90910160b48101939093525060d482015260f401979650505050505050565b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008460601b168152818360148301376000910160140190815292915050565b606081526000613d3e606083018661387b565b60208301949094525060400152919050565b606081528360608201528385608083013760006080858301015260006080601f19601f87011683010190508360208301528260408301529594505050505056fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"a\x02@`@R4\x80\x15b\0\0\x12W`\0\x80\xFD[P`@Qb\0B\xAE8\x03\x80b\0B\xAE\x839\x81\x01`@\x81\x90Rb\0\x005\x91b\0\x01\xFDV[\x82\x15\x80b\0\0AWP\x81\x15[\x80b\0\0WWPb\0\0T\x82\x84b\0\x02\xD3V[\x15\x15[\x15b\0\0\x84W`@QcF+\x859`\xE1\x1B\x81R`\x04\x81\x01\x84\x90R`$\x81\x01\x83\x90R`D\x01`@Q\x80\x91\x03\x90\xFD[\x80`\x01\x14\x15\x80\x15b\0\0\x97WP\x80`\x02\x14\x15[\x15b\0\0\xB6W`@Qc\xB1\x01n\xA7`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[c\xFF\xFF\xFF\xFF\x8C\x16a\x02\0R`\x01`\x01`\xA0\x1B\x03\x8B\x16`\x80\x81\x90R`@\x80Qc\xF2\xB4\xE6\x17`\xE0\x1B\x81R\x90Qc\xF2\xB4\xE6\x17\x91`\x04\x80\x82\x01\x92` \x92\x90\x91\x90\x82\x90\x03\x01\x81\x86Z\xFA\x15\x80\x15b\0\x01\x0CW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90b\0\x012\x91\x90b\0\x02\xEAV[`\x01`\x01`\xA0\x1B\x03\x90\x81\x16`\xA0R\x8A\x81\x16`\xC0R\x89\x81\x16`\xE0R\x88\x16a\x01 Ra\x01\0\x87\x90Ra\x01@\x86\x90Ra\x01`\x85\x90Ra\x01\x80\x84\x90Ra\x01\xA0\x83\x90Ra\x01\xC0\x82\x90Ra\x02 \x81\x90Rb\0\x01\x86b\0\x01\xB7V[b\0\x01\x93\x90` b\0\x03'V[b\0\x01\xA0\x90`~b\0\x03IV[a\x01\xE0RPb\0\x03{\x9APPPPPPPPPPPV[`\0a\x01\xC0Qa\x01\xA0Qb\0\x01\xCD\x91\x90b\0\x03dV[\x90P\x90V[`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14b\0\x01\xE8W`\0\x80\xFD[PV[\x80Qb\0\x01\xF8\x81b\0\x01\xD2V[\x91\x90PV[`\0\x80`\0\x80`\0\x80`\0\x80`\0\x80`\0\x80a\x01\x80\x8D\x8F\x03\x12\x15b\0\x02!W`\0\x80\xFD[\x8CQc\xFF\xFF\xFF\xFF\x81\x16\x81\x14b\0\x026W`\0\x80\xFD[\x9BPb\0\x02F` \x8E\x01b\0\x01\xEBV[\x9APb\0\x02V`@\x8E\x01b\0\x01\xEBV[\x99Pb\0\x02f``\x8E\x01b\0\x01\xEBV[\x98Pb\0\x02v`\x80\x8E\x01b\0\x01\xEBV[\x97P`\xA0\x8D\x01Q\x96P`\xC0\x8D\x01Q\x95P`\xE0\x8D\x01Q\x94Pa\x01\0\x8D\x01Q\x93Pa\x01 \x8D\x01Q\x92Pa\x01@\x8D\x01Q\x91Pa\x01`\x8D\x01Q\x90P\x92\x95\x98\x9BP\x92\x95\x98\x9BP\x92\x95\x98\x9BV[cNH{q`\xE0\x1B`\0R`\x12`\x04R`$`\0\xFD[`\0\x82b\0\x02\xE5Wb\0\x02\xE5b\0\x02\xBDV[P\x06\x90V[`\0` \x82\x84\x03\x12\x15b\0\x02\xFDW`\0\x80\xFD[\x81Qb\0\x03\n\x81b\0\x01\xD2V[\x93\x92PPPV[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[`\0\x81`\0\x19\x04\x83\x11\x82\x15\x15\x16\x15b\0\x03DWb\0\x03Db\0\x03\x11V[P\x02\x90V[`\0\x82\x19\x82\x11\x15b\0\x03_Wb\0\x03_b\0\x03\x11V[P\x01\x90V[`\0\x82b\0\x03vWb\0\x03vb\0\x02\xBDV[P\x04\x90V[`\x80Q`\xA0Q`\xC0Q`\xE0Qa\x01\0Qa\x01 Qa\x01@Qa\x01`Qa\x01\x80Qa\x01\xA0Qa\x01\xC0Qa\x01\xE0Qa\x02\0Qa\x02 Qa=\x9Db\0\x05\x11`\09`\0\x81\x81a\x03\xA8\x01Ra\x11\x9F\x01R`\0\x81\x81a\n\n\x01R\x81\x81a\x18a\x01Ra'x\x01R`\0a\x13\xB1\x01R`\0\x81\x81a\x07\xB4\x01R\x81\x81a\x1En\x01R\x81\x81a1\xAF\x01Ra1\xEA\x01R`\0\x81\x81a\x05\xCA\x01R\x81\x81a\x174\x01R\x81\x81a\x17w\x01Ra\x1E\x8F\x01R`\0a\x08\xDA\x01R`\0\x81\x81a\x0B\x12\x01R\x81\x81a3\x1E\x01Ra4\xCD\x01R`\0\x81\x81a\x03\xF3\x01R\x81\x81a4\xEE\x01Ra5\x9E\x01R`\0\x81\x81a\tl\x01R\x81\x81a!R\x01Ra5m\x01R`\0\x81\x81a\x03a\x01R\x81\x81a3?\x01Ra4\x14\x01R`\0\x81\x81a\x04\x9A\x01R\x81\x81a!\xE3\x01Ra3\xE5\x01R`\0\x81\x81a\n\x86\x01R\x81\x81a\r5\x01R\x81\x81a\x0E]\x01Ra\x1A\xB2\x01R`\0\x81\x81a\x08\xA6\x01R\x81\x81a\x14\xB9\x01Ra'\xE5\x01R`\0\x81\x81a\x070\x01R\x81\x81a\x16\x9F\x01R\x81\x81a\x18\x8C\x01R\x81\x81a\x1B\xE7\x01R\x81\x81a\x1D+\x01R\x81\x81a\x1E\x05\x01R\x81\x81a(\xD6\x01R\x81\x81a)\x83\x01R\x81\x81a*\xA4\x01R\x81\x81a+P\x01Ra+\xFC\x01Ra=\x9D`\0\xF3\xFE`\x80`@R`\x046\x10a\x03JW`\x005`\xE0\x1C\x80cd\xD1!6\x11a\x01\xBBW\x80c\x9D\xED9R\x11a\0\xF7W\x80c\xC2g\x83\xE9\x11a\0\x95W\x80c\xD1\xEE^K\x11a\0oW\x80c\xD1\xEE^K\x14a\n\xE9W\x80c\xD2\x8C\xB0o\x14a\x0B\0W\x80c\xE4\x1F\x96\xAD\x14a\x0B4W\x80c\xFA$\xF7C\x14a\x0BTW`\0\x80\xFD[\x80c\xC2g\x83\xE9\x14a\ntW\x80c\xCF\t\xE0\xD0\x14a\n\xA8W\x80c\xCF\xCF\x98K\x14a\n\xC9W`\0\x80\xFD[\x80c\xB9|\xB8\x0F\x11a\0\xD1W\x80c\xB9|\xB8\x0F\x14a\t\xDBW\x80c\xBB\xDC\x02\xDB\x14a\t\xFBW\x80c\xBC\xEF;U\x14a\n.W\x80c\xBD\xB37\xD1\x14a\nPW`\0\x80\xFD[\x80c\x9D\xED9R\x14a\tZW\x80c\xAD\xDE\xCC\x06\x14a\t\x8EW\x80c\xB7M\xF3Z\x14a\t\xC6W`\0\x80\xFD[\x80czk\xC9\xE1\x11a\x01dW\x80c\x84\x17\xD3\xC2\x11a\x01>W\x80c\x84\x17\xD3\xC2\x14a\x08\xC8W\x80c\x970\x16=\x14a\x08\xFCW\x80c\x98@\xFD\x84\x14a\t\x12W\x80c\x99s^2\x14a\t8W`\0\x80\xFD[\x80czk\xC9\xE1\x14a\x08KW\x80c\x80\xF3#\xA7\x14a\x08~W\x80c\x82\xFFS\xA1\x14a\x08\x94W`\0\x80\xFD[\x80ct\xF8\xBF2\x11a\x01\x95W\x80ct\xF8\xBF2\x14a\x07\xEBW\x80cxk\x84K\x14a\x08\0W\x80cyHi\n\x14a\x08\x15W`\0\x80\xFD[\x80cd\xD1!6\x14a\x07\x8BW\x80cm\xC8n\x81\x14a\x07\xA2W\x80cp\x87*\xA5\x14a\x07\xD6W`\0\x80\xFD[\x80c2J\x13\xC9\x11a\x02\x8AW\x80cI\xED\xF3Z\x11a\x023W\x80cW\xDA\x95\x0E\x11a\x02\rW\x80cW\xDA\x95\x0E\x14a\x06\xF1W\x80c\\\x0C\xBA3\x14a\x07!W\x80c`\x9D34\x14a\x07TW\x80ccaPm\x14a\x07iW`\0\x80\xFD[\x80cI\xED\xF3Z\x14a\x06uW\x80cN\x95\xEBX\x14a\x06\x95W\x80cT\xFDMP\x14a\x06\xABW`\0\x80\xFD[\x80c?\xAD\xA3\xFD\x11a\x02dW\x80c?\xAD\xA3\xFD\x14a\x06\x0EW\x80cB$\xB1\xE7\x14a\x06@W\x80cB1a\x82\x14a\x06SW`\0\x80\xFD[\x80c2J\x13\xC9\x14a\x05\xA2W\x80c5\xC47{\x14a\x05\xB8W\x80c7\xB1\xB2)\x14a\x05\xECW`\0\x80\xFD[\x80c\x1F\x83ut\x11a\x02\xF7W\x80c%\x0Ei\xBD\x11a\x02\xD1W\x80c%\x0Ei\xBD\x14a\x05\x17W\x80c%\xFC*\xCE\x14a\x05WW\x80c(\x10\xE1\xD6\x14a\x05lW\x80c(E\xE5\xBB\x14a\x05\x81W`\0\x80\xFD[\x80c\x1F\x83ut\x14a\x04\x88W\x80c \r.\xD2\x14a\x04\xBCW\x80c#\xED\xB2\xE0\x14a\x04\xF7W`\0\x80\xFD[\x80c\x14\x05v/\x11a\x03(W\x80c\x14\x05v/\x14a\x03\xE1W\x80c\x19\xEF\xFE\xB4\x14a\x04\x15W\x80c\x1E\xE5\xD7\xC8\x14a\x04[W`\0\x80\xFD[\x80c\x01\x83\xFDD\x14a\x03OW\x80c\x10\xFB\xEE(\x14a\x03\x96W\x80c\x133\xDB.\x14a\x03\xCAW[`\0\x80\xFD[4\x80\x15a\x03[W`\0\x80\xFD[Pa\x03\x83\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[`@Q\x90\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[4\x80\x15a\x03\xA2W`\0\x80\xFD[Pa\x03\x83\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[4\x80\x15a\x03\xD6W`\0\x80\xFD[Pa\x03\xDFa\x0BxV[\0[4\x80\x15a\x03\xEDW`\0\x80\xFD[Pa\x03\x83\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[4\x80\x15a\x04!W`\0\x80\xFD[P`\0Ta\x04B\x90h\x01\0\0\0\0\0\0\0\0\x90\x04g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[`@Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01a\x03\x8DV[4\x80\x15a\x04gW`\0\x80\xFD[Pa\x04pa\x0F\xA2V[`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x01a\x03\x8DV[4\x80\x15a\x04\x94W`\0\x80\xFD[Pa\x04p\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[4\x80\x15a\x04\xC8W`\0\x80\xFD[P`\0Ta\x04\xEA\x90p\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16\x81V[`@Qa\x03\x8D\x91\x90a7\xAAV[4\x80\x15a\x05\x03W`\0\x80\xFD[P`\x03Ta\x04p\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[4\x80\x15a\x05#W`\0\x80\xFD[P`\0Ta\x05G\x90r\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16\x81V[`@Q\x90\x15\x15\x81R` \x01a\x03\x8DV[4\x80\x15a\x05cW`\0\x80\xFD[P`\x01Ta\x03\x83V[4\x80\x15a\x05xW`\0\x80\xFD[Pa\x04\xEAa\x0F\xD9V[4\x80\x15a\x05\x8DW`\0\x80\xFD[P`\x07Ta\x04B\x90g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[4\x80\x15a\x05\xAEW`\0\x80\xFD[Pa\x03\x83`\x05T\x81V[4\x80\x15a\x05\xC4W`\0\x80\xFD[Pa\x03\x83\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[4\x80\x15a\x05\xF8W`\0\x80\xFD[P6`\x01\x19\x81\x015`\xF0\x1C\x90\x035``\x1Ca\x04pV[4\x80\x15a\x06\x1AW`\0\x80\xFD[P`\x03Ta\x05G\x90t\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16\x81V[a\x03\xDFa\x06N6`\x04a8\rV[a\x13&V[4\x80\x15a\x06_W`\0\x80\xFD[Pa\x06ha\x1B#V[`@Qa\x03\x8D\x91\x90a8\xA7V[4\x80\x15a\x06\x81W`\0\x80\xFD[Pa\x03\x83a\x06\x906`\x04a8\xC1V[a\x1BBV[4\x80\x15a\x06\xA1W`\0\x80\xFD[Pa\x03\x83a\x01\0\x81V[4\x80\x15a\x06\xB7W`\0\x80\xFD[P`@\x80Q\x80\x82\x01\x90\x91R`\x05\x81R\x7F0.1.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` \x82\x01Ra\x06hV[4\x80\x15a\x06\xFDW`\0\x80\xFD[P`\x01T`\x02Ta\x07\x0C\x91\x90\x82V[`@\x80Q\x92\x83R` \x83\x01\x91\x90\x91R\x01a\x03\x8DV[4\x80\x15a\x07-W`\0\x80\xFD[P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x04pV[4\x80\x15a\x07`W`\0\x80\xFD[Pa\x06ha\x1B\xB4V[4\x80\x15a\x07uW`\0\x80\xFD[P6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`4\x015a\x03\x83V[4\x80\x15a\x07\x97W`\0\x80\xFD[Pa\x04Bb\x01Q\x80\x81V[4\x80\x15a\x07\xAEW`\0\x80\xFD[Pa\x03\x83\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[4\x80\x15a\x07\xE2W`\0\x80\xFD[P`\x02Ta\x03\x83V[4\x80\x15a\x07\xF7W`\0\x80\xFD[Pa\x04pa\x1B\xD9V[4\x80\x15a\x08\x0CW`\0\x80\xFD[Pa\x03\xDFa\x1B\xE5V[4\x80\x15a\x08!W`\0\x80\xFD[P6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`t\x015`\xE0\x1C[`@Qc\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01a\x03\x8DV[4\x80\x15a\x08WW`\0\x80\xFD[P`\x03Ta\x05G\x90u\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16\x81V[4\x80\x15a\x08\x8AW`\0\x80\xFD[Pa\x03\x83`\x04T\x81V[4\x80\x15a\x08\xA0W`\0\x80\xFD[Pa\x04p\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[4\x80\x15a\x08\xD4W`\0\x80\xFD[Pa\x03\x83\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[4\x80\x15a\t\x08W`\0\x80\xFD[Pa\x03\x83a\x1F\xFF\x81V[4\x80\x15a\t\x1EW`\0\x80\xFD[Pa\x04pq\xF9\x08'\xF1\xC5:\x10\xCBz\x023[\x17S \0)5\x81V[4\x80\x15a\tDW`\0\x80\xFD[P6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`T\x015a\x03\x83V[4\x80\x15a\tfW`\0\x80\xFD[Pa\x04p\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[4\x80\x15a\t\x9AW`\0\x80\xFD[P`\x07Ta\t\xB4\x90h\x01\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16\x81V[`@Q`\xFF\x90\x91\x16\x81R` \x01a\x03\x8DV[4\x80\x15a\t\xD2W`\0\x80\xFD[Pa\x03\x83a\x1EgV[4\x80\x15a\t\xE7W`\0\x80\xFD[Pa\x03\xDFa\t\xF66`\x04a8\xDAV[a\x1E\xB3V[4\x80\x15a\n\x07W`\0\x80\xFD[P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x086V[4\x80\x15a\n:W`\0\x80\xFD[P6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\x14\x015a\x03\x83V[4\x80\x15a\n\\W`\0\x80\xFD[P`\x07TBg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x11\x15a\x05GV[4\x80\x15a\n\x80W`\0\x80\xFD[Pa\x04p\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[4\x80\x15a\n\xB4W`\0\x80\xFD[P`\0Ta\x04B\x90g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[4\x80\x15a\n\xD5W`\0\x80\xFD[Pa\x03\xDFa\n\xE46`\x04a8\rV[a\"FV[4\x80\x15a\n\xF5W`\0\x80\xFD[Pa\x04Bb\t:\x80\x81V[4\x80\x15a\x0B\x0CW`\0\x80\xFD[Pa\x03\x83\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[4\x80\x15a\x0B@W`\0\x80\xFD[Pa\x03\xDFa\x0BO6`\x04a8\xDAV[a#\xDCV[4\x80\x15a\x0B`W`\0\x80\xFD[Pa\x0Bia'qV[`@Qa\x03\x8D\x93\x92\x91\x90a9+V[`\x02h\x92\x9E\xEE\x14\x9BK\xD2\x12hT\x03a\x0B\x98Wc\xAB\x14<\x06`\0R`\x04`\x1C\xFD[`\x02h\x92\x9E\xEE\x14\x9BK\xD2\x12hU`\x03Tu\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16\x15a\x0B\xFBW`@Q\x7F\x17\xBF\xE5\xF7\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\x01`@Q\x80\x91\x03\x90\xFD[`\x07Tg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x81\x16\x14a\x0CpW`\0Th\x01\0\0\0\0\0\0\0\0\x90\x04g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\0\x03a\x0CkW`@Q\x7F\xC1\x05&\n\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\x01`@Q\x80\x91\x03\x90\xFD[a\x0C\xCDV[`\0Tg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a\x0C\x8A\x90b\x12u\0a9\x88V[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16B\x10\x15a\x0C\xCDW`@Q\x7F\x04d<9\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\x01`@Q\x80\x91\x03\x90\xFD[`\x03Tt\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16a\r\xD8W`\x03T`\x04\x80T`@Q\x7F~\xEE(\x8D\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`\x01`\x01`\xA0\x1B\x03\x93\x84\x16\x92\x81\x01\x92\x90\x92R`$\x82\x01R\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x91\x16\x90c~\xEE(\x8D\x90`D\x01`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a\r{W`\0\x80\xFD[PZ\xF1\x15\x80\x15a\r\x8FW=`\0\x80>=`\0\xFD[PP`\x03\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16t\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x17\x90UPa\x0F\x93\x90PV[`\x03\x80Tu\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16\x17\x90\x91U`\x04\x80T`@Q\x7F\xF3\xFE\xF3\xA3\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`\x01`\x01`\xA0\x1B\x03\x93\x84\x16\x92\x81\x01\x92\x90\x92R`$\x82\x01R\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x91\x16\x90c\xF3\xFE\xF3\xA3\x90`D\x01`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a\x0E\xA3W`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x0E\xB7W=`\0\x80>=`\0\xFD[PP`\x03T`\x04T`@Q`\0\x94P`\x01`\x01`\xA0\x1B\x03\x90\x92\x16\x92P\x90\x83\x81\x81\x81\x85\x87Z\xF1\x92PPP=\x80`\0\x81\x14a\x0F\x0CW`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=`\0` \x84\x01>a\x0F\x11V[``\x91P[PP\x90P\x80a\x0FLW`@Q\x7F\x83\xE6\xCCk\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\x01`@Q\x80\x91\x03\x90\xFD[`\x03T`\x04T`@Q\x90\x81R`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x90\x7F\x87\xE1,%e\x04'c\xDA\xA6\xBFXB\xED+dG\xF1\x7F~(\xF9\xA4\x90_\xE3\x95\x95\x819n\xAD\x90` \x01`@Q\x80\x91\x03\x90\xA2P[`\x01h\x92\x9E\xEE\x14\x9BK\xD2\x12hUV[`\0`\x06\x81\x80[`\x01\x81\x11\x15a\x0F\xBAWa\x0F\xBAa7{V[\x81R` \x81\x01\x91\x90\x91R`@\x01`\0 T`\x01`\x01`\xA0\x1B\x03\x16\x91\x90PV[`\0\x80`\0Tp\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16`\x02\x81\x11\x15a\x10\x07Wa\x10\x07a7{V[\x14a\x10>W`@Q\x7F\xF1\xA9E\x81\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\x01`@Q\x80\x91\x03\x90\xFD[`\0a\x10Ha'\xBAV[\x90P`\0\x81`\x02\x81\x11\x15a\x10^Wa\x10^a7{V[\x03a\x10\x95W`@Q\x7F\x92\xC5\x06\xAE\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\x01`@Q\x80\x91\x03\x90\xFD[`\x05T\x15\x15`\x01\x82`\x02\x81\x11\x15a\x10\xAEWa\x10\xAEa7{V[\x03a\x10\xF3W`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16p\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x17\x90Ua\x11\x9AV[`\x07TBg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x11\x15a\x11;W`@Q\x7F\x04d<9\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\x01`@Q\x80\x91\x03\x90\xFD[\x80a\x11GW`\x02a\x11JV[`\x01[`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16p\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x83`\x02\x81\x11\x15a\x11\x94Wa\x11\x94a7{V[\x02\x17\x90UP[`\x07T\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0h\x01\0\0\0\0\0\0\0\0\x90\x91\x04`\xFF\x16\x10\x15a\x12\x06W`@Q\x7F4M\xE4\xBF\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\x01`@Q\x80\x91\x03\x90\xFD[\x80\x15a\x12pW`\x01`\0R`\x06` R\x7F>_\xEC$\xAAM\xC4\xE5\xAE\xE2\xE0%\xE5\x1E\x13\x92\xC7*%\0WuY\xFA\xE9f\\mR\xBDj1T`\x03\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16`\x01`\x01`\xA0\x1B\x03\x90\x92\x16\x91\x90\x91\x17\x90U[`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16h\x01\0\0\0\0\0\0\0\0Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x02\x17\x90\x81\x90U`@Q\x7F^\x18o\t\xB9\xC94\x91\xF1N'~\xEA\x7F\xAA]\xE6\xA2\xD4\xBD\xA7Zy\xAFz6\x84\xFB\xFBB\xDA`\x91a\x12\xF8\x91p\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x91\x04`\xFF\x16\x90a7\xAAV[`@Q\x80\x91\x03\x90\xA1PP`\0Tp\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16\x91\x90PV[\x90P\x90V[`\0Tq\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16\x15a\x13xW`@Q\x7F\r\xC1I\xF0\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\x01`@Q\x80\x91\x03\x90\xFD[`\0` `\x01a\x13\x88\x84\x83a9\xB4V[a\x13\x92\x91\x90a9\xCCV[a\x13\x9C\x91\x90a9\xE3V[a\x13\xA7\x90` a:\x1EV[\x90P`\0\x81a\x13\xD7\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`@a9\xB4V[a\x13\xE1\x91\x90a9\xB4V[\x90P\x806\x14a\x13\xF8Wc\x98$\xBD\xAB`\0R`\x04`\x1C\xFD[a\x14\x116`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\x14\x015\x90V[\x90V[a\x14(`\x01a\x14\x1Ea\x1EgV[a\x06\x90\x91\x90a9\xCCV[\x14a\x14\x90Wa\x14:`\x01a\x14\x1Ea\x1EgV[a\x14P6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\x14\x015\x90V[`@Q\x7F\xF3?\xA6\xCF\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\x81\x01\x92\x90\x92R`$\x82\x01R`D\x01[`@Q\x80\x91\x03\x90\xFD[c\xFF\xFF\xFF\xFF6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`t\x015`\xE0\x1C\x14a\x16\x9DW`\0`\x01`\x01`\xA0\x1B\x03\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16c\xBB\x8A\xA1\xFC6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`t\x015`\xE0\x1C`@Q\x7F\xFF\xFF\xFF\xFF\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`\xE0\x84\x90\x1B\x16\x81Rc\xFF\xFF\xFF\xFF\x91\x90\x91\x16`\x04\x82\x01R`$\x01```@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x15KW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x15o\x91\x90a:VV[\x92PPPa\x15|\x81a*iV[a\x15\xB2W`@Q\x7F4a\x19\xF7\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\x01`@Q\x80\x91\x03\x90\xFD[`@Q\x80`@\x01`@R\x80a\x16\"\x83`\x01`\x01`\xA0\x1B\x03\x16c\xBC\xEF;U`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x15\xFEW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x14\x0E\x91\x90a:\xB9V[\x81R` \x01\x82`\x01`\x01`\xA0\x1B\x03\x16c\x99s^2`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x16eW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x16\x89\x91\x90a:\xB9V[\x90R\x80Q`\x01U` \x01Q`\x02UPa\x17+V[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16cfN\xD80`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01`@\x80Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x16\xFAW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x17\x1E\x91\x90a:\xD2V[\x80Q`\x01U` \x01Q`\x02U[`\x02Ta\x17Y\x90\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90a9\xB4V[6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`T\x015\x14a\x17\xE7W`\x02Ta\x17\x9C\x90\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90a9\xB4V[6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`T\x015`@Q\x7F\x08{-v\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\x81\x01\x92\x90\x92R`$\x82\x01R`D\x01a\x14\x87V[`\0\x80Tg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFFB\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\x90\x91\x16\x17q\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x17\x90U`@\x80Q\x7F<\x9F9|\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\x90Qc\xFF\xFF\xFF\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x91`\x01`\x01`\xA0\x1B\x03\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x91c<\x9F9|\x91`\x04\x80\x82\x01\x92` \x92\x90\x91\x90\x82\x90\x03\x01\x81\x86Z\xFA\x15\x80\x15a\x18\xD8W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x18\xFC\x91\x90a;HV[`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xFF\xFF\xFF\xFF\x92\x90\x92\x16\x92\x90\x92\x14r\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x02\x17\x81U`\x07\x80Tg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFFg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x19\x90\x91\x16\x17\x90U\x84\x84\x82\x81a\x19tWa\x19ta;cV[\x91\x90\x91\x015`\xF8\x1C\x90P`\x01\x81\x11\x15a\x19\x8FWa\x19\x8Fa7{V[\x90P`\0a\x19\xA1`!`\x01\x87\x89a;\x92V[a\x19\xAA\x91a;\xBCV[\x90P`\0a\x19\xBC`A`!\x88\x8Aa;\x92V[a\x19\xC5\x91a;\xBCV[\x90Pa\x19\xD1\x82\x82a,\xEDV[a\x1A.a\x19\xE1\x87`A\x81\x8Ba;\x92V[\x856`\x01\x19\x81\x015`\xF0\x1C\x90\x035``\x1C`\x01T\x87\x90[`\x02Ta\x1A\x116`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\x14\x015\x90V[6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`T\x015a\x1A)a\x1B#V[a/\x1AV[a\x1AG\x836`\x01\x19\x81\x015`\xF0\x1C\x90\x035``\x1Ca/\xECV[`\x03\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16`\x01\x196\x90\x81\x015`\xF0\x1C\x90\x035``\x1C\x17\x90U4`\x04\x81\x81U`@\x80Q\x7F\xD0\xE3\r\xB0\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\x90Q\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16\x93c\xD0\xE3\r\xB0\x93\x90\x92\x80\x82\x01\x92`\0\x92\x90\x91\x82\x90\x03\x01\x81\x85\x88\x80;\x15\x80\x15a\x1B\x01W`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x1B\x15W=`\0\x80>=`\0\xFD[PPPPPPPPPPPPV[``a\x13!`xa\x1B2a\x1EgV[a\x1B=\x90` a:\x1EV[a0\xCFV[`\0a\x1BLa\x1EgV[\x82\x10a\x1B\x84W`@Q\x7F\xA6\xC6a\xFD\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\x01`@Q\x80\x91\x03\x90\xFD[a\x1B\xAEa\x1B\x92\x83` a:\x1EV[a\x1B\x9D\x90`xa9\xB4V[6`\x01\x19\x81\x015`\xF0\x1C\x90\x03\x015\x90V[\x92\x91PPV[``a\x13!`Ta\x1B\xC3a\x1EgV[a\x1B\xCE\x90` a:\x1EV[a\x1B=\x90`$a9\xB4V[`\0`\x06\x81`\x01a\x0F\xA9V[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16c\\\x97Z\xBB`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x1CCW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x1Cg\x91\x90a;\xDAV[\x15a\x1C\x9EW`@Q\x7F7\x9A~\xD9\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\x01`@Q\x80\x91\x03\x90\xFD[`\0Th\x01\0\0\0\0\0\0\0\0\x90\x04g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\0\x03a\x1C\xFAW`@Q\x7F\xC1\x05&\n\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\x01`@Q\x80\x91\x03\x90\xFD[`@Q\x7F\x03\x14\xD2\xB3\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\x81R0`\x04\x82\x01R`\0\x90\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16\x90c\x03\x14\xD2\xB3\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x1DzW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x1D\x9E\x91\x90a;\xDAV[\x90P\x80a\x1D\xD7W`@Q\x7FHQ\xBD\x9B\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\x01`@Q\x80\x91\x03\x90\xFD[`@Q\x7F\x17\xCF!\xA9\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\x81R0`\x04\x82\x01R\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16\x90c\x17\xCF!\xA9\x90`$\x01`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a\x1EQW`\0\x80\xFD[PZ\xF1\x92PPP\x80\x15a\x1EbWP`\x01[P[PV[`\0a\x13!\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a9\xE3V[`\0\x80Tp\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16`\x02\x81\x11\x15a\x1E\xDFWa\x1E\xDFa7{V[\x14a\x1F\x16W`@Q\x7F\xF1\xA9E\x81\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\x01`@Q\x80\x91\x03\x90\xFD[`\0\x84\x84`\0\x81\x81\x10a\x1F+Wa\x1F+a;cV[\x91\x90\x91\x015`\xF8\x1C\x90P`\x01\x81\x11\x15a\x1FFWa\x1FFa7{V[\x90P`\0`\x06\x81\x83`\x01\x81\x11\x15a\x1F_Wa\x1F_a7{V[`\x01\x81\x11\x15a\x1FpWa\x1Fpa7{V[\x81R` \x81\x01\x91\x90\x91R`@\x01`\0 T`\x01`\x01`\xA0\x1B\x03\x16\x03a\x1F\xC3W\x80`@Q\x7F%\x82-8\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\x14\x87\x91\x90a;\xFCV[`\x05T\x15a {W`\x01`\x05Ta\x1F\xDA\x91\x90a9\xCCV[\x83\x14a \x12W`@Q\x7F\xA6\xC6a\xFD\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\x01`@Q\x80\x91\x03\x90\xFD[a \x1B\x83a\x1BBV[\x82\x14a +W\x81a\x14P\x84a\x1BBV[`\x01\x81`\x01\x81\x11\x15a ?Wa ?a7{V[\x14a vW`@Q\x7Fi\xEDp\xAB\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\x01`@Q\x80\x91\x03\x90\xFD[a \x85V[a \x85\x83\x83a1\x03V[`\0\x80`\0a \x93\x86a1\x84V[\x91\x94P\x92P\x90Pa \xEDa \xAA\x88`\x01\x81\x8Ca;\x92V[\x863a \xC26`\x01\x19\x81\x015`\xF0\x1C\x90\x03`4\x015\x90V[\x88\x88\x8C\x89\x8E`@Q` \x01a \xD9\x91\x81R` \x01\x90V[`@Q` \x81\x83\x03\x03\x81R\x90`@Ra/\x1AV[a \xF6\x84a2\x1DV[`@\x80Q\x87\x81R` \x81\x01\x87\x90R3\x91\x7FZ\x8D\x9D\x18\x1EjY\xFETw\xA5\x07!@\x1Bc2\xA8\x10\xB9\x18>\x15\xACb\xD3\x867\x9A\x05\xA7\x17\x91\x01`@Q\x80\x91\x03\x90\xA2`\x01\x84`\x01\x81\x11\x15a!EWa!Ea7{V[\x03a!\xC8W`\x05`\0\x90U\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16c\xEC\xE2\x0F6`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a!\xABW`\0\x80\xFD[PZ\xF1\x15\x80\x15a!\xBFW=`\0\x80>=`\0\xFD[PPPPa\"_\xEC$\xAAM\xC4\xE5\xAE\xE2\xE0%\xE5\x1E\x13\x92\xC7*%\0WuY\xFA\xE9f\\mR\xBDj1T`\x01`\x01`\xA0\x1B\x03\x16\x15a%\xACW`\x01`@Q\x7FqA)z\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\x14\x87\x91\x90a;\xFCV[`\0\x84\x84`\0\x81\x81\x10a%\xC1Wa%\xC1a;cV[\x91\x90\x91\x015`\xF8\x1C\x90P`\x01\x81\x11\x15a%\xDCWa%\xDCa7{V[\x90P`\x01\x81`\x01\x81\x11\x15a%\xF2Wa%\xF2a7{V[\x14a&)W`@Q\x7Fi\xEDp\xAB\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\x01`@Q\x80\x91\x03\x90\xFD[a&3\x83\x83a1\x03V[`\0\x80`\0a&A\x86a1\x84V[\x91\x94P\x92P\x90Pa&Xa \xAA\x88`\x01\x81\x8Ca;\x92V[3`\x06`\0\x86`\x01\x81\x11\x15a&oWa&oa7{V[`\x01\x81\x11\x15a&\x80Wa&\x80a7{V[\x81R` \x01\x90\x81R` \x01`\0 `\0a\x01\0\n\x81T\x81`\x01`\x01`\xA0\x1B\x03\x02\x19\x16\x90\x83`\x01`\x01`\xA0\x1B\x03\x16\x02\x17\x90UP`\x01`\x07`\x08\x82\x82\x82\x90T\x90a\x01\0\n\x90\x04`\xFF\x16a&\xD1\x91\x90a<\x10V[\x92Pa\x01\0\n\x81T\x81`\xFF\x02\x19\x16\x90\x83`\xFF\x16\x02\x17\x90UPb\t:\x80g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16Ba'\x02\x91\x90a9\xB4V[`\x07\x80Tg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x19\x16g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x92\x90\x92\x16\x91\x90\x91\x17\x90Ua'/\x86`\x01a9\xB4V[`\x05U`@Q\x86\x81R3\x90\x7Fz\x18\x022\xC1\x9F\xD3\x8C\x83\xE4\x93\x85jBh\x8CG{\xAE~\x82\x03\x91\x03\xB2\xC1\xEAjab\xE5)\x90` \x01`@Q\x80\x91\x03\x90\xA2PPPPPPPPV[`\0\x80``\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x006`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\x14\x015a'\xAFa\x1B\xB4V[\x92P\x92P\x92P\x90\x91\x92V[`\0c\xFF\xFF\xFF\xFF6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`t\x015`\xE0\x1C\x14a*cW`\0`\x01`\x01`\xA0\x1B\x03\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16c\xBB\x8A\xA1\xFC6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`t\x015`\xE0\x1C`@Q\x7F\xFF\xFF\xFF\xFF\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`\xE0\x84\x90\x1B\x16\x81Rc\xFF\xFF\xFF\xFF\x91\x90\x91\x16`\x04\x82\x01R`$\x01```@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a(wW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a(\x9B\x91\x90a:VV[`@Q\x7F4\xA3F\xEA\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`\x01`\x01`\xA0\x1B\x03\x80\x83\x16`\x04\x83\x01R\x91\x94P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x91\x16\x92Pc4\xA3F\xEA\x91P`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a)!W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a)E\x91\x90a;\xDAV[\x80a)\xEEWP`@Q\x7FYX\xA1\x93\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`\x01`\x01`\xA0\x1B\x03\x82\x81\x16`\x04\x83\x01R\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x90cYX\xA1\x93\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a)\xCAW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a)\xEE\x91\x90a;\xDAV[\x15a)\xFBW`\x01\x91PP\x90V[\x80`\x01`\x01`\xA0\x1B\x03\x16c \r.\xD2`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a*9W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a*]\x91\x90a<5V[\x91PP\x90V[P`\x02\x90V[`@Q\x7F\x04\xE5\x0F\xED\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`\x01`\x01`\xA0\x1B\x03\x82\x81\x16`\x04\x83\x01R`\0\x91\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x91\x16\x90c\x04\xE5\x0F\xED\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a*\xEDW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a+\x11\x91\x90a;\xDAV[\x80\x15a+\xBDWP`@Q\x7F4\xA3F\xEA\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`\x01`\x01`\xA0\x1B\x03\x83\x81\x16`\x04\x83\x01R\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x90c4\xA3F\xEA\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a+\x97W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a+\xBB\x91\x90a;\xDAV[\x15[\x80\x15a,iWP`@Q\x7FYX\xA1\x93\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`\x01`\x01`\xA0\x1B\x03\x83\x81\x16`\x04\x83\x01R\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x90cYX\xA1\x93\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a,CW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a,g\x91\x90a;\xDAV[\x15[\x80\x15a\x1B\xAEWP`\x01\x82`\x01`\x01`\xA0\x1B\x03\x16c \r.\xD2`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a,\xB0W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a,\xD4\x91\x90a<5V[`\x02\x81\x11\x15a,\xE5Wa,\xE5a7{V[\x14\x15\x92\x91PPV[C\x81\x10a-/W`@Q\x7F%\xBF\xB0\xA4\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\x81\x01\x82\x90RC`$\x82\x01R`D\x01a\x14\x87V[`\0\x80a-<\x83Ca9\xCCV[\x90Pa\x01\0\x81\x11a-PW\x82@\x91Pa.\x91V[a\x1F\xFF\x81\x11a.VW`\0\x80q\xF9\x08'\xF1\xC5:\x10\xCBz\x023[\x17S \0)5`\x01`\x01`\xA0\x1B\x03\x16\x85`@Q` \x01a-\x8B\x91\x81R` \x01\x90V[`@\x80Q`\x1F\x19\x81\x84\x03\x01\x81R\x90\x82\x90Ra-\xA5\x91aa-\xE5V[``\x91P[P\x91P\x91P\x81\x15\x80a-\xF9WP\x80Q` \x14\x15[\x15a.9W`@Q\x7F\x0F\x0B\x8F\x81\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\x81\x01\x86\x90RC`$\x82\x01R`D\x01a\x14\x87V[\x80\x80` \x01\x90Q\x81\x01\x90a.M\x91\x90a:\xB9V[\x93PPPa.\x91V[`@Q\x7F\x0F\x0B\x8F\x81\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\x81\x01\x84\x90RC`$\x82\x01R`D\x01a\x14\x87V[\x81a.\xD1W`@Q\x7F\x0F\x0B\x8F\x81\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\x81\x01\x84\x90RC`$\x82\x01R`D\x01a\x14\x87V[\x83\x82\x14a/\x14W`@Q\x7F\x80\xB1\xAEQ\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\x81\x01\x85\x90R`$\x81\x01\x83\x90R`D\x01a\x14\x87V[PPPPV[`\x01\x89\x10\x15a/UW`@Q\x7F\t\xBD\xE39\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\x01`@Q\x80\x91\x03\x90\xFD[`\0\x88`\x01\x81\x11\x15a/iWa/ia7{V[\x03a/\x84Wa/\x7F\x8A\x8A\x89\x89\x89\x89\x89\x89\x89a3\x13V[a/\xE0V[`\x01\x88`\x01\x81\x11\x15a/\x98Wa/\x98a7{V[\x03a/\xAEWa/\x7F\x8A\x8A\x89\x89\x89\x89\x89\x89\x89a4\xC2V[`@Q\x7Fi\xEDp\xAB\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\x01`@Q\x80\x91\x03\x90\xFD[PPPPPPPPPPV[\x80`\x06`\0\x84`\x01\x81\x11\x15a0\x03Wa0\x03a7{V[`\x01\x81\x11\x15a0\x14Wa0\x14a7{V[\x81R` \x01\x90\x81R` \x01`\0 `\0a\x01\0\n\x81T\x81`\x01`\x01`\xA0\x1B\x03\x02\x19\x16\x90\x83`\x01`\x01`\xA0\x1B\x03\x16\x02\x17\x90UP`\x01`\x07`\x08\x82\x82\x82\x90T\x90a\x01\0\n\x90\x04`\xFF\x16a0e\x91\x90a<\x10V[\x92Pa\x01\0\n\x81T\x81`\xFF\x02\x19\x16\x90\x83`\xFF\x16\x02\x17\x90UPa0\x85a6?V[\x81`\x01\x81\x11\x15a0\x97Wa0\x97a7{V[`@Q`\x01`\x01`\xA0\x1B\x03\x83\x16\x90\x7Fb\xF3\x93\xAC\xFB=4%\x11o\xE9\xBEze\t\xA4\xB6R\xBD\xA5O\xDA\xC2\xDF+rs\x13^\xCDX\xE7\x90`\0\x90\xA3PPV[`@Q\x81\x81R6`\x01\x19\x81\x015`\xF0\x1C\x90\x03\x82\x84\x82\x01` \x84\x017\x82` \x83\x01\x01`\0\x81R` \x81\x01`@RPP\x92\x91PPV[a1\x0Ba\x1EgV[\x82\x10a1CW`@Q\x7F\xA6\xC6a\xFD\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\x01`@Q\x80\x91\x03\x90\xFD[\x80a1M\x83a\x1BBV[\x03a\x1EbW`@Q\x7F\xBB\xCA\xFA\xE6\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\x01`@Q\x80\x91\x03\x90\xFD[`\0\x80\x80\x80\x84\x15a1\xA2Wa1\x9Da\x06\x90`\x01\x87a9\xCCV[a1\xA6V[`\x01T[\x90P`\0a1\xD4\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x87a:\x1EV[`\x02Ta1\xE1\x91\x90a9\xB4V[\x90P`\0a2\x0F\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x83a9\xB4V[\x92\x97\x91\x96P\x91\x94P\x92PPPV[`\x06`\0\x82`\x01\x81\x11\x15a23Wa23a7{V[`\x01\x81\x11\x15a2DWa2Da7{V[\x81R` \x81\x01\x91\x90\x91R`@\x01`\0\x90\x81 \x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x90U`\x07Th\x01\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16\x90\x03a2\xC6W`@Q\x7F4M\xE4\xBF\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\x01`@Q\x80\x91\x03\x90\xFD[`\x07\x80T`\0\x19`\xFFh\x01\0\0\0\0\0\0\0\0\x80\x84\x04\x82\x16\x92\x90\x92\x01\x16\x02\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x17\x90Ua\x1Eda7\x06V[`\0\x87\x87\x87\x87\x87\x87\x87\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`@Q` \x01a3v\x99\x98\x97\x96\x95\x94\x93\x92\x91\x90a\x90\x84\x90\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x87\x90`\x04\x01a=+V[` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a4[W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a4\x7F\x91\x90a;\xDAV[a4\xB5W`@Q\x7F\t\xBD\xE39\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\x01`@Q\x80\x91\x03\x90\xFD[PPPPPPPPPPPV[`\0\x87\x87\x87\x87\x87\x87\x87\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`@Q` \x01a5%\x99\x98\x97\x96\x95\x94\x93\x92\x91\x90a=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a6\t\x91\x90a;\xDAV[a/\xE0W`@Q\x7F\t\xBD\xE39\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\x01`@Q\x80\x91\x03\x90\xFD[`\x07T`\0\x90`\x02h\x01\0\0\0\0\0\0\0\0\x90\x91\x04`\xFF\x16\x10a6fWPb\x01Q\x80a6\xA7V[`\x07Th\x01\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16`\x01\x03a6\x89WPb\t:\x80a6\xA7V[P`\x07\x80Tg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x19\x16g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x17\x90UV[`\0a6\xB3\x82Ba9\x88V[`\x07T\x90\x91Pa6\xE0\x90g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x84\x16\x91\x16g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x80\x82\x18\x90\x82\x11\x02\x18\x90V[`\x07\x80Tg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x19\x16g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x92\x90\x92\x16\x91\x90\x91\x17\x90UPPV[`\x07T`\0\x90`\x02h\x01\0\0\0\0\0\0\0\0\x90\x91\x04`\xFF\x16\x10a7-WPb\x01Q\x80a7LV[`\x07Th\x01\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16`\x01\x03a6\x89WPb\t:\x80[a7V\x81Ba9\x88V[`\x07\x80Tg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x19\x16g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x92\x90\x92\x16\x91\x90\x91\x17\x90UPV[\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`!`\x04R`$`\0\xFD[` \x81\x01`\x03\x83\x10a7\xBEWa7\xBEa7{V[\x91\x90R\x90V[`\0\x80\x83`\x1F\x84\x01\x12a7\xD6W`\0\x80\xFD[P\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a7\xEEW`\0\x80\xFD[` \x83\x01\x91P\x83` \x82\x85\x01\x01\x11\x15a8\x06W`\0\x80\xFD[\x92P\x92\x90PV[`\0\x80` \x83\x85\x03\x12\x15a8 W`\0\x80\xFD[\x825g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a87W`\0\x80\xFD[a8C\x85\x82\x86\x01a7\xC4V[\x90\x96\x90\x95P\x93PPPPV[`\0[\x83\x81\x10\x15a8jW\x81\x81\x01Q\x83\x82\x01R` \x01a8RV[\x83\x81\x11\x15a/\x14WPP`\0\x91\x01RV[`\0\x81Q\x80\x84Ra8\x93\x81` \x86\x01` \x86\x01a8OV[`\x1F\x01`\x1F\x19\x16\x92\x90\x92\x01` \x01\x92\x91PPV[` \x81R`\0a8\xBA` \x83\x01\x84a8{V[\x93\x92PPPV[`\0` \x82\x84\x03\x12\x15a8\xD3W`\0\x80\xFD[P5\x91\x90PV[`\0\x80`\0\x80``\x85\x87\x03\x12\x15a8\xF0W`\0\x80\xFD[\x845g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a9\x07W`\0\x80\xFD[a9\x13\x87\x82\x88\x01a7\xC4V[\x90\x98\x90\x97P` \x87\x015\x96`@\x015\x95P\x93PPPPV[c\xFF\xFF\xFF\xFF\x84\x16\x81R\x82` \x82\x01R```@\x82\x01R`\0a9P``\x83\x01\x84a8{V[\x95\x94PPPPPV[\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`\x11`\x04R`$`\0\xFD[`\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x83\x16\x81\x85\x16\x80\x83\x03\x82\x11\x15a9\xABWa9\xABa9YV[\x01\x94\x93PPPPV[`\0\x82\x19\x82\x11\x15a9\xC7Wa9\xC7a9YV[P\x01\x90V[`\0\x82\x82\x10\x15a9\xDEWa9\xDEa9YV[P\x03\x90V[`\0\x82a:\x19W\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`\x12`\x04R`$`\0\xFD[P\x04\x90V[`\0\x81`\0\x19\x04\x83\x11\x82\x15\x15\x16\x15a:8Wa:8a9YV[P\x02\x90V[\x80Qc\xFF\xFF\xFF\xFF\x81\x16\x81\x14a:QW`\0\x80\xFD[\x91\x90PV[`\0\x80`\0``\x84\x86\x03\x12\x15a:kW`\0\x80\xFD[a:t\x84a:=V[\x92P` \x84\x01Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a:\x91W`\0\x80\xFD[`@\x85\x01Q\x90\x92P`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a:\xAEW`\0\x80\xFD[\x80\x91PP\x92P\x92P\x92V[`\0` \x82\x84\x03\x12\x15a:\xCBW`\0\x80\xFD[PQ\x91\x90PV[`\0`@\x82\x84\x03\x12\x15a:\xE4W`\0\x80\xFD[`@Q`@\x81\x01\x81\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17\x15a;.W\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[`@R\x82Q\x81R` \x92\x83\x01Q\x92\x81\x01\x92\x90\x92RP\x91\x90PV[`\0` \x82\x84\x03\x12\x15a;ZW`\0\x80\xFD[a8\xBA\x82a:=V[\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`2`\x04R`$`\0\xFD[`\0\x80\x85\x85\x11\x15a;\xA2W`\0\x80\xFD[\x83\x86\x11\x15a;\xAFW`\0\x80\xFD[PP\x82\x01\x93\x91\x90\x92\x03\x91PV[\x805` \x83\x10\x15a\x1B\xAEW`\0\x19` \x84\x90\x03`\x03\x1B\x1B\x16\x92\x91PPV[`\0` \x82\x84\x03\x12\x15a;\xECW`\0\x80\xFD[\x81Q\x80\x15\x15\x81\x14a8\xBAW`\0\x80\xFD[` \x81\x01`\x02\x83\x10a7\xBEWa7\xBEa7{V[`\0`\xFF\x82\x16`\xFF\x84\x16\x80`\xFF\x03\x82\x11\x15a<-Wa<-a9YV[\x01\x93\x92PPPV[`\0` \x82\x84\x03\x12\x15a``\x83\x01\x86a8{V[` \x83\x01\x94\x90\x94RP`@\x01R\x91\x90PV[``\x81R\x83``\x82\x01R\x83\x85`\x80\x83\x017`\0`\x80\x85\x83\x01\x01R`\0`\x80`\x1F\x19`\x1F\x87\x01\x16\x83\x01\x01\x90P\x83` \x83\x01R\x82`@\x83\x01R\x95\x94PPPPPV\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x60806040526004361061034a5760003560e01c806364d12136116101bb5780639ded3952116100f7578063c26783e911610095578063d1ee5e4b1161006f578063d1ee5e4b14610ae9578063d28cb06f14610b00578063e41f96ad14610b34578063fa24f74314610b5457600080fd5b8063c26783e914610a74578063cf09e0d014610aa8578063cfcf984b14610ac957600080fd5b8063b97cb80f116100d1578063b97cb80f146109db578063bbdc02db146109fb578063bcef3b5514610a2e578063bdb337d114610a5057600080fd5b80639ded39521461095a578063addecc061461098e578063b74df35a146109c657600080fd5b80637a6bc9e1116101645780638417d3c21161013e5780638417d3c2146108c85780639730163d146108fc5780639840fd841461091257806399735e321461093857600080fd5b80637a6bc9e11461084b57806380f323a71461087e57806382ff53a11461089457600080fd5b806374f8bf321161019557806374f8bf32146107eb578063786b844b146108005780637948690a1461081557600080fd5b806364d121361461078b5780636dc86e81146107a257806370872aa5146107d657600080fd5b8063324a13c91161028a57806349edf35a1161023357806357da950e1161020d57806357da950e146106f15780635c0cba3314610721578063609d3334146107545780636361506d1461076957600080fd5b806349edf35a146106755780634e95eb581461069557806354fd4d50146106ab57600080fd5b80633fada3fd116102645780633fada3fd1461060e5780634224b1e714610640578063423161821461065357600080fd5b8063324a13c9146105a257806335c4377b146105b857806337b1b229146105ec57600080fd5b80631f837574116102f7578063250e69bd116102d1578063250e69bd1461051757806325fc2ace146105575780632810e1d61461056c5780632845e5bb1461058157600080fd5b80631f83757414610488578063200d2ed2146104bc57806323edb2e0146104f757600080fd5b80631405762f116103285780631405762f146103e157806319effeb4146104155780631ee5d7c81461045b57600080fd5b80630183fd441461034f57806310fbee28146103965780631333db2e146103ca575b600080fd5b34801561035b57600080fd5b506103837f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020015b60405180910390f35b3480156103a257600080fd5b506103837f000000000000000000000000000000000000000000000000000000000000000081565b3480156103d657600080fd5b506103df610b78565b005b3480156103ed57600080fd5b506103837f000000000000000000000000000000000000000000000000000000000000000081565b34801561042157600080fd5b506000546104429068010000000000000000900467ffffffffffffffff1681565b60405167ffffffffffffffff909116815260200161038d565b34801561046757600080fd5b50610470610fa2565b6040516001600160a01b03909116815260200161038d565b34801561049457600080fd5b506104707f000000000000000000000000000000000000000000000000000000000000000081565b3480156104c857600080fd5b506000546104ea90700100000000000000000000000000000000900460ff1681565b60405161038d91906137aa565b34801561050357600080fd5b50600354610470906001600160a01b031681565b34801561052357600080fd5b50600054610547907201000000000000000000000000000000000000900460ff1681565b604051901515815260200161038d565b34801561056357600080fd5b50600154610383565b34801561057857600080fd5b506104ea610fd9565b34801561058d57600080fd5b506007546104429067ffffffffffffffff1681565b3480156105ae57600080fd5b5061038360055481565b3480156105c457600080fd5b506103837f000000000000000000000000000000000000000000000000000000000000000081565b3480156105f857600080fd5b503660011981013560f01c90033560601c610470565b34801561061a57600080fd5b506003546105479074010000000000000000000000000000000000000000900460ff1681565b6103df61064e36600461380d565b611326565b34801561065f57600080fd5b50610668611b23565b60405161038d91906138a7565b34801561068157600080fd5b506103836106903660046138c1565b611b42565b3480156106a157600080fd5b5061038361010081565b3480156106b757600080fd5b5060408051808201909152600581527f302e312e300000000000000000000000000000000000000000000000000000006020820152610668565b3480156106fd57600080fd5b5060015460025461070c919082565b6040805192835260208301919091520161038d565b34801561072d57600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610470565b34801561076057600080fd5b50610668611bb4565b34801561077557600080fd5b503660011981013560f01c900360340135610383565b34801561079757600080fd5b506104426201518081565b3480156107ae57600080fd5b506103837f000000000000000000000000000000000000000000000000000000000000000081565b3480156107e257600080fd5b50600254610383565b3480156107f757600080fd5b50610470611bd9565b34801561080c57600080fd5b506103df611be5565b34801561082157600080fd5b503660011981013560f01c90036074013560e01c5b60405163ffffffff909116815260200161038d565b34801561085757600080fd5b50600354610547907501000000000000000000000000000000000000000000900460ff1681565b34801561088a57600080fd5b5061038360045481565b3480156108a057600080fd5b506104707f000000000000000000000000000000000000000000000000000000000000000081565b3480156108d457600080fd5b506103837f000000000000000000000000000000000000000000000000000000000000000081565b34801561090857600080fd5b50610383611fff81565b34801561091e57600080fd5b5061047071f90827f1c53a10cb7a02335b17532000293581565b34801561094457600080fd5b503660011981013560f01c900360540135610383565b34801561096657600080fd5b506104707f000000000000000000000000000000000000000000000000000000000000000081565b34801561099a57600080fd5b506007546109b49068010000000000000000900460ff1681565b60405160ff909116815260200161038d565b3480156109d257600080fd5b50610383611e67565b3480156109e757600080fd5b506103df6109f63660046138da565b611eb3565b348015610a0757600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610836565b348015610a3a57600080fd5b503660011981013560f01c900360140135610383565b348015610a5c57600080fd5b506007544267ffffffffffffffff9091161115610547565b348015610a8057600080fd5b506104707f000000000000000000000000000000000000000000000000000000000000000081565b348015610ab457600080fd5b506000546104429067ffffffffffffffff1681565b348015610ad557600080fd5b506103df610ae436600461380d565b612246565b348015610af557600080fd5b5061044262093a8081565b348015610b0c57600080fd5b506103837f000000000000000000000000000000000000000000000000000000000000000081565b348015610b4057600080fd5b506103df610b4f3660046138da565b6123dc565b348015610b6057600080fd5b50610b69612771565b60405161038d9392919061392b565b600268929eee149b4bd212685403610b985763ab143c066000526004601cfd5b600268929eee149b4bd21268556003547501000000000000000000000000000000000000000000900460ff1615610bfb576040517f17bfe5f700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60075467ffffffffffffffff90811614610c705760005468010000000000000000900467ffffffffffffffff1667ffffffffffffffff16600003610c6b576040517fc105260a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610ccd565b60005467ffffffffffffffff16610c8a9062127500613988565b67ffffffffffffffff16421015610ccd576040517f04643c3900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60035474010000000000000000000000000000000000000000900460ff16610dd857600354600480546040517f7eee288d0000000000000000000000000000000000000000000000000000000081526001600160a01b039384169281019290925260248201527f000000000000000000000000000000000000000000000000000000000000000090911690637eee288d90604401600060405180830381600087803b158015610d7b57600080fd5b505af1158015610d8f573d6000803e3d6000fd5b5050600380547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000017905550610f939050565b6003805475010000000000000000000000000000000000000000007fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff821617909155600480546040517ff3fef3a30000000000000000000000000000000000000000000000000000000081526001600160a01b039384169281019290925260248201527f00000000000000000000000000000000000000000000000000000000000000009091169063f3fef3a390604401600060405180830381600087803b158015610ea357600080fd5b505af1158015610eb7573d6000803e3d6000fd5b5050600354600454604051600094506001600160a01b039092169250908381818185875af1925050503d8060008114610f0c576040519150601f19603f3d011682016040523d82523d6000602084013e610f11565b606091505b5050905080610f4c576040517f83e6cc6b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6003546004546040519081526001600160a01b03909116907f87e12c2565042763daa6bf5842ed2b6447f17f7e28f9a4905fe3959581396ead9060200160405180910390a2505b600168929eee149b4bd2126855565b6000600681805b6001811115610fba57610fba61377b565b81526020810191909152604001600020546001600160a01b0316919050565b600080600054700100000000000000000000000000000000900460ff1660028111156110075761100761377b565b1461103e576040517ff1a9458100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006110486127ba565b9050600081600281111561105e5761105e61377b565b03611095576040517f92c506ae00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600554151560018260028111156110ae576110ae61377b565b036110f357600080547fffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff1670010000000000000000000000000000000017905561119a565b6007544267ffffffffffffffff909116111561113b576040517f04643c3900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8061114757600261114a565b60015b600080547fffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff167001000000000000000000000000000000008360028111156111945761119461377b565b02179055505b6007547f00000000000000000000000000000000000000000000000000000000000000006801000000000000000090910460ff161015611206576040517f344de4bf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b801561127057600160005260066020527f3e5fec24aa4dc4e5aee2e025e51e1392c72a2500577559fae9665c6d52bd6a3154600380547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039092169190911790555b600080547fffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff16680100000000000000004267ffffffffffffffff160217908190556040517f5e186f09b9c93491f14e277eea7faa5de6a2d4bda75a79af7a3684fbfb42da60916112f89170010000000000000000000000000000000090910460ff16906137aa565b60405180910390a15050600054700100000000000000000000000000000000900460ff16919050565b905090565b60005471010000000000000000000000000000000000900460ff1615611378576040517f0dc149f000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006020600161138884836139b4565b61139291906139cc565b61139c91906139e3565b6113a7906020613a1e565b90506000816113d77f000000000000000000000000000000000000000000000000000000000000000060406139b4565b6113e191906139b4565b90508036146113f857639824bdab6000526004601cfd5b6114113660011981013560f01c90036014013590565b90565b611428600161141e611e67565b61069091906139cc565b146114905761143a600161141e611e67565b6114503660011981013560f01c90036014013590565b6040517ff33fa6cf000000000000000000000000000000000000000000000000000000008152600481019290925260248201526044015b60405180910390fd5b63ffffffff3660011981013560f01c90036074013560e01c1461169d5760006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663bb8aa1fc3660011981013560f01c90036074013560e01c6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815263ffffffff919091166004820152602401606060405180830381865afa15801561154b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061156f9190613a56565b9250505061157c81612a69565b6115b2576040517f346119f700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040518060400160405280611622836001600160a01b031663bcef3b556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156115fe573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061140e9190613ab9565b8152602001826001600160a01b03166399735e326040518163ffffffff1660e01b8152600401602060405180830381865afa158015611665573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116899190613ab9565b90528051600155602001516002555061172b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663664ed8306040518163ffffffff1660e01b81526004016040805180830381865afa1580156116fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061171e9190613ad2565b8051600155602001516002555b600254611759907f0000000000000000000000000000000000000000000000000000000000000000906139b4565b3660011981013560f01c900360540135146117e75760025461179c907f0000000000000000000000000000000000000000000000000000000000000000906139b4565b3660011981013560f01c9003605401356040517f087b2d7600000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401611487565b6000805467ffffffffffffffff42167fffffffffffffffffffffffffffff00ffffffffffffffffff00000000000000009091161771010000000000000000000000000000000000179055604080517f3c9f397c000000000000000000000000000000000000000000000000000000008152905163ffffffff7f000000000000000000000000000000000000000000000000000000000000000016916001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691633c9f397c916004808201926020929091908290030181865afa1580156118d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118fc9190613b48565b600080547fffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffff1663ffffffff92909216929092147201000000000000000000000000000000000000021781556007805467ffffffffffffffff67ffffffffffffffff199091161790558484828161197457611974613b63565b919091013560f81c9050600181111561198f5761198f61377b565b905060006119a1602160018789613b92565b6119aa91613bbc565b905060006119bc60416021888a613b92565b6119c591613bbc565b90506119d18282612ced565b611a2e6119e1876041818b613b92565b853660011981013560f01c90033560601c60015487905b600254611a113660011981013560f01c90036014013590565b3660011981013560f01c900360540135611a29611b23565b612f1a565b611a47833660011981013560f01c90033560601c612fec565b600380547fffffffffffffffffffffffff000000000000000000000000000000000000000016600119369081013560f01c90033560601c179055346004818155604080517fd0e30db000000000000000000000000000000000000000000000000000000000815290517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169363d0e30db093909280820192600092909182900301818588803b158015611b0157600080fd5b505af1158015611b15573d6000803e3d6000fd5b505050505050505050505050565b60606113216078611b32611e67565b611b3d906020613a1e565b6130cf565b6000611b4c611e67565b8210611b84576040517fa6c661fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611bae611b92836020613a1e565b611b9d9060786139b4565b3660011981013560f01c9003013590565b92915050565b60606113216054611bc3611e67565b611bce906020613a1e565b611b3d9060246139b4565b60006006816001610fa9565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c43573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c679190613bda565b15611c9e576040517f379a7ed900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005468010000000000000000900467ffffffffffffffff1667ffffffffffffffff16600003611cfa576040517fc105260a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f0314d2b30000000000000000000000000000000000000000000000000000000081523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690630314d2b390602401602060405180830381865afa158015611d7a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d9e9190613bda565b905080611dd7576040517f4851bd9b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f17cf21a90000000000000000000000000000000000000000000000000000000081523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906317cf21a990602401600060405180830381600087803b158015611e5157600080fd5b505af1925050508015611e62575060015b505b50565b60006113217f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006139e3565b60008054700100000000000000000000000000000000900460ff166002811115611edf57611edf61377b565b14611f16576040517ff1a9458100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600084846000818110611f2b57611f2b613b63565b919091013560f81c90506001811115611f4657611f4661377b565b90506000600681836001811115611f5f57611f5f61377b565b6001811115611f7057611f7061377b565b81526020810191909152604001600020546001600160a01b031603611fc357806040517f25822d380000000000000000000000000000000000000000000000000000000081526004016114879190613bfc565b6005541561207b576001600554611fda91906139cc565b8314612012576040517fa6c661fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61201b83611b42565b821461202b578161145084611b42565b600181600181111561203f5761203f61377b565b14612076576040517f69ed70ab00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612085565b6120858383613103565b600080600061209386613184565b919450925090506120ed6120aa886001818c613b92565b86336120c23660011981013560f01c90036034013590565b88888c898e6040516020016120d991815260200190565b604051602081830303815290604052612f1a565b6120f68461321d565b604080518781526020810187905233917f5a8d9d181e6a59fe5477a50721401b6332a810b9183e15ac62d386379a05a717910160405180910390a260018460018111156121455761214561377b565b036121c8576005600090557f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ece20f366040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156121ab57600080fd5b505af11580156121bf573d6000803e3d6000fd5b5050505061223c565b60008460018111156121dc576121dc61377b565b0361223c577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ece20f366040518163ffffffff1660e01b8152600401600060405180830381600087803b158015611b0157600080fd5b5050505050505050565b60008054700100000000000000000000000000000000900460ff1660028111156122725761227261377b565b146122a9576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6007544267ffffffffffffffff909116116122f0576040517fdf469ccb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008282600081811061230557612305613b63565b919091013560f81c905060018111156123205761232061377b565b905060006006818360018111156123395761233961377b565b600181111561234a5761234a61377b565b81526020810191909152604001600020546001600160a01b03161461239d57806040517f7141297a0000000000000000000000000000000000000000000000000000000081526004016114879190613bfc565b6123cd6123ad8360018187613b92565b83336123c53660011981013560f01c90036034013590565b6001546119f8565b6123d78133612fec565b505050565b60008054700100000000000000000000000000000000900460ff1660028111156124085761240861377b565b1461243f576040517ff1a9458100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61244830612a69565b61247e576040517f57e25a0900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60016124886127ba565b60028111156124995761249961377b565b036124d0576040517f346119f700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000805260066020527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f8546001600160a01b031661253d5760006040517f25822d380000000000000000000000000000000000000000000000000000000081526004016114879190613bfc565b600160005260066020527f3e5fec24aa4dc4e5aee2e025e51e1392c72a2500577559fae9665c6d52bd6a31546001600160a01b0316156125ac5760016040517f7141297a0000000000000000000000000000000000000000000000000000000081526004016114879190613bfc565b6000848460008181106125c1576125c1613b63565b919091013560f81c905060018111156125dc576125dc61377b565b905060018160018111156125f2576125f261377b565b14612629576040517f69ed70ab00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6126338383613103565b600080600061264186613184565b919450925090506126586120aa886001818c613b92565b336006600086600181111561266f5761266f61377b565b60018111156126805761268061377b565b815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b031602179055506001600760088282829054906101000a900460ff166126d19190613c10565b92506101000a81548160ff021916908360ff16021790555062093a8067ffffffffffffffff164261270291906139b4565b6007805467ffffffffffffffff191667ffffffffffffffff9290921691909117905561272f8660016139b4565b60055560405186815233907f7a180232c19fd38c83e493856a42688c477bae7e82039103b2c1ea6a6162e5299060200160405180910390a25050505050505050565b60008060607f00000000000000000000000000000000000000000000000000000000000000003660011981013560f01c9003601401356127af611bb4565b925092509250909192565b600063ffffffff3660011981013560f01c90036074013560e01c14612a635760006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663bb8aa1fc3660011981013560f01c90036074013560e01c6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815263ffffffff919091166004820152602401606060405180830381865afa158015612877573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061289b9190613a56565b6040517f34a346ea0000000000000000000000000000000000000000000000000000000081526001600160a01b0380831660048301529194507f000000000000000000000000000000000000000000000000000000000000000090911692506334a346ea9150602401602060405180830381865afa158015612921573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129459190613bda565b806129ee57506040517f5958a1930000000000000000000000000000000000000000000000000000000081526001600160a01b0382811660048301527f00000000000000000000000000000000000000000000000000000000000000001690635958a19390602401602060405180830381865afa1580156129ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129ee9190613bda565b156129fb57600191505090565b806001600160a01b031663200d2ed26040518163ffffffff1660e01b8152600401602060405180830381865afa158015612a39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a5d9190613c35565b91505090565b50600290565b6040517f04e50fed0000000000000000000000000000000000000000000000000000000081526001600160a01b0382811660048301526000917f0000000000000000000000000000000000000000000000000000000000000000909116906304e50fed90602401602060405180830381865afa158015612aed573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b119190613bda565b8015612bbd57506040517f34a346ea0000000000000000000000000000000000000000000000000000000081526001600160a01b0383811660048301527f000000000000000000000000000000000000000000000000000000000000000016906334a346ea90602401602060405180830381865afa158015612b97573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bbb9190613bda565b155b8015612c6957506040517f5958a1930000000000000000000000000000000000000000000000000000000081526001600160a01b0383811660048301527f00000000000000000000000000000000000000000000000000000000000000001690635958a19390602401602060405180830381865afa158015612c43573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c679190613bda565b155b8015611bae57506001826001600160a01b031663200d2ed26040518163ffffffff1660e01b8152600401602060405180830381865afa158015612cb0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cd49190613c35565b6002811115612ce557612ce561377b565b141592915050565b438110612d2f576040517f25bfb0a400000000000000000000000000000000000000000000000000000000815260048101829052436024820152604401611487565b600080612d3c83436139cc565b90506101008111612d505782409150612e91565b611fff8111612e565760008071f90827f1c53a10cb7a02335b1753200029356001600160a01b031685604051602001612d8b91815260200190565b60408051601f1981840301815290829052612da591613c56565b600060405180830381855afa9150503d8060008114612de0576040519150601f19603f3d011682016040523d82523d6000602084013e612de5565b606091505b5091509150811580612df957508051602014155b15612e39576040517f0f0b8f8100000000000000000000000000000000000000000000000000000000815260048101869052436024820152604401611487565b80806020019051810190612e4d9190613ab9565b93505050612e91565b6040517f0f0b8f8100000000000000000000000000000000000000000000000000000000815260048101849052436024820152604401611487565b81612ed1576040517f0f0b8f8100000000000000000000000000000000000000000000000000000000815260048101849052436024820152604401611487565b838214612f14576040517f80b1ae510000000000000000000000000000000000000000000000000000000081526004810185905260248101839052604401611487565b50505050565b6001891015612f55576040517f09bde33900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000886001811115612f6957612f6961377b565b03612f8457612f7f8a8a89898989898989613313565b612fe0565b6001886001811115612f9857612f9861377b565b03612fae57612f7f8a8a898989898989896134c2565b6040517f69ed70ab00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505050505050505050565b80600660008460018111156130035761300361377b565b60018111156130145761301461377b565b815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b031602179055506001600760088282829054906101000a900460ff166130659190613c10565b92506101000a81548160ff021916908360ff16021790555061308561363f565b8160018111156130975761309761377b565b6040516001600160a01b038316907f62f393acfb3d3425116fe9be7a6509a4b652bda54fdac2df2b7273135ecd58e790600090a35050565b6040518181523660011981013560f01c90038284820160208401378260208301016000815260208101604052505092915050565b61310b611e67565b8210613143576040517fa6c661fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8061314d83611b42565b03611e62576040517fbbcafae600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080808084156131a25761319d6106906001876139cc565b6131a6565b6001545b905060006131d47f000000000000000000000000000000000000000000000000000000000000000087613a1e565b6002546131e191906139b4565b9050600061320f7f0000000000000000000000000000000000000000000000000000000000000000836139b4565b929791965091945092505050565b600660008260018111156132335761323361377b565b60018111156132445761324461377b565b81526020810191909152604001600090812080547fffffffffffffffffffffffff000000000000000000000000000000000000000016905560075468010000000000000000900460ff1690036132c6576040517f344de4bf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6007805460001960ff6801000000000000000080840482169290920116027fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff909116179055611e64613706565b6000878787878787877f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000060405160200161337699989796959493929190613c72565b6040516020818303038152906040528051906020012090506000888b8b6040516020016133a593929190613cec565b60408051601f19818403018152908290527fab750e7500000000000000000000000000000000000000000000000000000000825291506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063ab750e759061343e9084907f0000000000000000000000000000000000000000000000000000000000000000908790600401613d2b565b602060405180830381865afa15801561345b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061347f9190613bda565b6134b5576040517f09bde33900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050505050505050505050565b6000878787878787877f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000060405160200161352599989796959493929190613c72565b60408051601f198184030181529082905280516020909101207fab750e7500000000000000000000000000000000000000000000000000000000825291506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063ab750e75906135c8908d908d907f0000000000000000000000000000000000000000000000000000000000000000908790600401613d50565b602060405180830381865afa1580156135e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136099190613bda565b612fe0576040517f09bde33900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60075460009060026801000000000000000090910460ff16106136665750620151806136a7565b60075468010000000000000000900460ff16600103613689575062093a806136a7565b506007805467ffffffffffffffff191667ffffffffffffffff179055565b60006136b38242613988565b6007549091506136e09067ffffffffffffffff808416911667ffffffffffffffff16808218908211021890565b6007805467ffffffffffffffff191667ffffffffffffffff929092169190911790555050565b60075460009060026801000000000000000090910460ff161061372d57506201518061374c565b60075468010000000000000000900460ff16600103613689575062093a805b6137568142613988565b6007805467ffffffffffffffff191667ffffffffffffffff9290921691909117905550565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60208101600383106137be576137be61377b565b91905290565b60008083601f8401126137d657600080fd5b50813567ffffffffffffffff8111156137ee57600080fd5b60208301915083602082850101111561380657600080fd5b9250929050565b6000806020838503121561382057600080fd5b823567ffffffffffffffff81111561383757600080fd5b613843858286016137c4565b90969095509350505050565b60005b8381101561386a578181015183820152602001613852565b83811115612f145750506000910152565b6000815180845261389381602086016020860161384f565b601f01601f19169290920160200192915050565b6020815260006138ba602083018461387b565b9392505050565b6000602082840312156138d357600080fd5b5035919050565b600080600080606085870312156138f057600080fd5b843567ffffffffffffffff81111561390757600080fd5b613913878288016137c4565b90989097506020870135966040013595509350505050565b63ffffffff84168152826020820152606060408201526000613950606083018461387b565b95945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600067ffffffffffffffff8083168185168083038211156139ab576139ab613959565b01949350505050565b600082198211156139c7576139c7613959565b500190565b6000828210156139de576139de613959565b500390565b600082613a19577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b6000816000190483118215151615613a3857613a38613959565b500290565b805163ffffffff81168114613a5157600080fd5b919050565b600080600060608486031215613a6b57600080fd5b613a7484613a3d565b9250602084015167ffffffffffffffff81168114613a9157600080fd5b60408501519092506001600160a01b0381168114613aae57600080fd5b809150509250925092565b600060208284031215613acb57600080fd5b5051919050565b600060408284031215613ae457600080fd5b6040516040810181811067ffffffffffffffff82111715613b2e577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604052825181526020928301519281019290925250919050565b600060208284031215613b5a57600080fd5b6138ba82613a3d565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008085851115613ba257600080fd5b83861115613baf57600080fd5b5050820193919092039150565b80356020831015611bae57600019602084900360031b1b1692915050565b600060208284031215613bec57600080fd5b815180151581146138ba57600080fd5b60208101600283106137be576137be61377b565b600060ff821660ff84168060ff03821115613c2d57613c2d613959565b019392505050565b600060208284031215613c4757600080fd5b8151600381106138ba57600080fd5b60008251613c6881846020870161384f565b9190910192915050565b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008a60601b16815288601482015287603482015286605482015285607482015284609482015260008451613ccd8160b485016020890161384f565b90910160b48101939093525060d482015260f401979650505050505050565b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008460601b168152818360148301376000910160140190815292915050565b606081526000613d3e606083018661387b565b60208301949094525060400152919050565b606081528360608201528385608083013760006080858301015260006080601f19601f87011683010190508360208301528260408301529594505050505056fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R`\x046\x10a\x03JW`\x005`\xE0\x1C\x80cd\xD1!6\x11a\x01\xBBW\x80c\x9D\xED9R\x11a\0\xF7W\x80c\xC2g\x83\xE9\x11a\0\x95W\x80c\xD1\xEE^K\x11a\0oW\x80c\xD1\xEE^K\x14a\n\xE9W\x80c\xD2\x8C\xB0o\x14a\x0B\0W\x80c\xE4\x1F\x96\xAD\x14a\x0B4W\x80c\xFA$\xF7C\x14a\x0BTW`\0\x80\xFD[\x80c\xC2g\x83\xE9\x14a\ntW\x80c\xCF\t\xE0\xD0\x14a\n\xA8W\x80c\xCF\xCF\x98K\x14a\n\xC9W`\0\x80\xFD[\x80c\xB9|\xB8\x0F\x11a\0\xD1W\x80c\xB9|\xB8\x0F\x14a\t\xDBW\x80c\xBB\xDC\x02\xDB\x14a\t\xFBW\x80c\xBC\xEF;U\x14a\n.W\x80c\xBD\xB37\xD1\x14a\nPW`\0\x80\xFD[\x80c\x9D\xED9R\x14a\tZW\x80c\xAD\xDE\xCC\x06\x14a\t\x8EW\x80c\xB7M\xF3Z\x14a\t\xC6W`\0\x80\xFD[\x80czk\xC9\xE1\x11a\x01dW\x80c\x84\x17\xD3\xC2\x11a\x01>W\x80c\x84\x17\xD3\xC2\x14a\x08\xC8W\x80c\x970\x16=\x14a\x08\xFCW\x80c\x98@\xFD\x84\x14a\t\x12W\x80c\x99s^2\x14a\t8W`\0\x80\xFD[\x80czk\xC9\xE1\x14a\x08KW\x80c\x80\xF3#\xA7\x14a\x08~W\x80c\x82\xFFS\xA1\x14a\x08\x94W`\0\x80\xFD[\x80ct\xF8\xBF2\x11a\x01\x95W\x80ct\xF8\xBF2\x14a\x07\xEBW\x80cxk\x84K\x14a\x08\0W\x80cyHi\n\x14a\x08\x15W`\0\x80\xFD[\x80cd\xD1!6\x14a\x07\x8BW\x80cm\xC8n\x81\x14a\x07\xA2W\x80cp\x87*\xA5\x14a\x07\xD6W`\0\x80\xFD[\x80c2J\x13\xC9\x11a\x02\x8AW\x80cI\xED\xF3Z\x11a\x023W\x80cW\xDA\x95\x0E\x11a\x02\rW\x80cW\xDA\x95\x0E\x14a\x06\xF1W\x80c\\\x0C\xBA3\x14a\x07!W\x80c`\x9D34\x14a\x07TW\x80ccaPm\x14a\x07iW`\0\x80\xFD[\x80cI\xED\xF3Z\x14a\x06uW\x80cN\x95\xEBX\x14a\x06\x95W\x80cT\xFDMP\x14a\x06\xABW`\0\x80\xFD[\x80c?\xAD\xA3\xFD\x11a\x02dW\x80c?\xAD\xA3\xFD\x14a\x06\x0EW\x80cB$\xB1\xE7\x14a\x06@W\x80cB1a\x82\x14a\x06SW`\0\x80\xFD[\x80c2J\x13\xC9\x14a\x05\xA2W\x80c5\xC47{\x14a\x05\xB8W\x80c7\xB1\xB2)\x14a\x05\xECW`\0\x80\xFD[\x80c\x1F\x83ut\x11a\x02\xF7W\x80c%\x0Ei\xBD\x11a\x02\xD1W\x80c%\x0Ei\xBD\x14a\x05\x17W\x80c%\xFC*\xCE\x14a\x05WW\x80c(\x10\xE1\xD6\x14a\x05lW\x80c(E\xE5\xBB\x14a\x05\x81W`\0\x80\xFD[\x80c\x1F\x83ut\x14a\x04\x88W\x80c \r.\xD2\x14a\x04\xBCW\x80c#\xED\xB2\xE0\x14a\x04\xF7W`\0\x80\xFD[\x80c\x14\x05v/\x11a\x03(W\x80c\x14\x05v/\x14a\x03\xE1W\x80c\x19\xEF\xFE\xB4\x14a\x04\x15W\x80c\x1E\xE5\xD7\xC8\x14a\x04[W`\0\x80\xFD[\x80c\x01\x83\xFDD\x14a\x03OW\x80c\x10\xFB\xEE(\x14a\x03\x96W\x80c\x133\xDB.\x14a\x03\xCAW[`\0\x80\xFD[4\x80\x15a\x03[W`\0\x80\xFD[Pa\x03\x83\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[`@Q\x90\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[4\x80\x15a\x03\xA2W`\0\x80\xFD[Pa\x03\x83\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[4\x80\x15a\x03\xD6W`\0\x80\xFD[Pa\x03\xDFa\x0BxV[\0[4\x80\x15a\x03\xEDW`\0\x80\xFD[Pa\x03\x83\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[4\x80\x15a\x04!W`\0\x80\xFD[P`\0Ta\x04B\x90h\x01\0\0\0\0\0\0\0\0\x90\x04g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[`@Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01a\x03\x8DV[4\x80\x15a\x04gW`\0\x80\xFD[Pa\x04pa\x0F\xA2V[`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x01a\x03\x8DV[4\x80\x15a\x04\x94W`\0\x80\xFD[Pa\x04p\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[4\x80\x15a\x04\xC8W`\0\x80\xFD[P`\0Ta\x04\xEA\x90p\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16\x81V[`@Qa\x03\x8D\x91\x90a7\xAAV[4\x80\x15a\x05\x03W`\0\x80\xFD[P`\x03Ta\x04p\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[4\x80\x15a\x05#W`\0\x80\xFD[P`\0Ta\x05G\x90r\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16\x81V[`@Q\x90\x15\x15\x81R` \x01a\x03\x8DV[4\x80\x15a\x05cW`\0\x80\xFD[P`\x01Ta\x03\x83V[4\x80\x15a\x05xW`\0\x80\xFD[Pa\x04\xEAa\x0F\xD9V[4\x80\x15a\x05\x8DW`\0\x80\xFD[P`\x07Ta\x04B\x90g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[4\x80\x15a\x05\xAEW`\0\x80\xFD[Pa\x03\x83`\x05T\x81V[4\x80\x15a\x05\xC4W`\0\x80\xFD[Pa\x03\x83\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[4\x80\x15a\x05\xF8W`\0\x80\xFD[P6`\x01\x19\x81\x015`\xF0\x1C\x90\x035``\x1Ca\x04pV[4\x80\x15a\x06\x1AW`\0\x80\xFD[P`\x03Ta\x05G\x90t\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16\x81V[a\x03\xDFa\x06N6`\x04a8\rV[a\x13&V[4\x80\x15a\x06_W`\0\x80\xFD[Pa\x06ha\x1B#V[`@Qa\x03\x8D\x91\x90a8\xA7V[4\x80\x15a\x06\x81W`\0\x80\xFD[Pa\x03\x83a\x06\x906`\x04a8\xC1V[a\x1BBV[4\x80\x15a\x06\xA1W`\0\x80\xFD[Pa\x03\x83a\x01\0\x81V[4\x80\x15a\x06\xB7W`\0\x80\xFD[P`@\x80Q\x80\x82\x01\x90\x91R`\x05\x81R\x7F0.1.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` \x82\x01Ra\x06hV[4\x80\x15a\x06\xFDW`\0\x80\xFD[P`\x01T`\x02Ta\x07\x0C\x91\x90\x82V[`@\x80Q\x92\x83R` \x83\x01\x91\x90\x91R\x01a\x03\x8DV[4\x80\x15a\x07-W`\0\x80\xFD[P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x04pV[4\x80\x15a\x07`W`\0\x80\xFD[Pa\x06ha\x1B\xB4V[4\x80\x15a\x07uW`\0\x80\xFD[P6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`4\x015a\x03\x83V[4\x80\x15a\x07\x97W`\0\x80\xFD[Pa\x04Bb\x01Q\x80\x81V[4\x80\x15a\x07\xAEW`\0\x80\xFD[Pa\x03\x83\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[4\x80\x15a\x07\xE2W`\0\x80\xFD[P`\x02Ta\x03\x83V[4\x80\x15a\x07\xF7W`\0\x80\xFD[Pa\x04pa\x1B\xD9V[4\x80\x15a\x08\x0CW`\0\x80\xFD[Pa\x03\xDFa\x1B\xE5V[4\x80\x15a\x08!W`\0\x80\xFD[P6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`t\x015`\xE0\x1C[`@Qc\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01a\x03\x8DV[4\x80\x15a\x08WW`\0\x80\xFD[P`\x03Ta\x05G\x90u\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16\x81V[4\x80\x15a\x08\x8AW`\0\x80\xFD[Pa\x03\x83`\x04T\x81V[4\x80\x15a\x08\xA0W`\0\x80\xFD[Pa\x04p\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[4\x80\x15a\x08\xD4W`\0\x80\xFD[Pa\x03\x83\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[4\x80\x15a\t\x08W`\0\x80\xFD[Pa\x03\x83a\x1F\xFF\x81V[4\x80\x15a\t\x1EW`\0\x80\xFD[Pa\x04pq\xF9\x08'\xF1\xC5:\x10\xCBz\x023[\x17S \0)5\x81V[4\x80\x15a\tDW`\0\x80\xFD[P6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`T\x015a\x03\x83V[4\x80\x15a\tfW`\0\x80\xFD[Pa\x04p\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[4\x80\x15a\t\x9AW`\0\x80\xFD[P`\x07Ta\t\xB4\x90h\x01\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16\x81V[`@Q`\xFF\x90\x91\x16\x81R` \x01a\x03\x8DV[4\x80\x15a\t\xD2W`\0\x80\xFD[Pa\x03\x83a\x1EgV[4\x80\x15a\t\xE7W`\0\x80\xFD[Pa\x03\xDFa\t\xF66`\x04a8\xDAV[a\x1E\xB3V[4\x80\x15a\n\x07W`\0\x80\xFD[P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x086V[4\x80\x15a\n:W`\0\x80\xFD[P6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\x14\x015a\x03\x83V[4\x80\x15a\n\\W`\0\x80\xFD[P`\x07TBg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x11\x15a\x05GV[4\x80\x15a\n\x80W`\0\x80\xFD[Pa\x04p\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[4\x80\x15a\n\xB4W`\0\x80\xFD[P`\0Ta\x04B\x90g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[4\x80\x15a\n\xD5W`\0\x80\xFD[Pa\x03\xDFa\n\xE46`\x04a8\rV[a\"FV[4\x80\x15a\n\xF5W`\0\x80\xFD[Pa\x04Bb\t:\x80\x81V[4\x80\x15a\x0B\x0CW`\0\x80\xFD[Pa\x03\x83\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[4\x80\x15a\x0B@W`\0\x80\xFD[Pa\x03\xDFa\x0BO6`\x04a8\xDAV[a#\xDCV[4\x80\x15a\x0B`W`\0\x80\xFD[Pa\x0Bia'qV[`@Qa\x03\x8D\x93\x92\x91\x90a9+V[`\x02h\x92\x9E\xEE\x14\x9BK\xD2\x12hT\x03a\x0B\x98Wc\xAB\x14<\x06`\0R`\x04`\x1C\xFD[`\x02h\x92\x9E\xEE\x14\x9BK\xD2\x12hU`\x03Tu\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16\x15a\x0B\xFBW`@Q\x7F\x17\xBF\xE5\xF7\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\x01`@Q\x80\x91\x03\x90\xFD[`\x07Tg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x81\x16\x14a\x0CpW`\0Th\x01\0\0\0\0\0\0\0\0\x90\x04g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\0\x03a\x0CkW`@Q\x7F\xC1\x05&\n\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\x01`@Q\x80\x91\x03\x90\xFD[a\x0C\xCDV[`\0Tg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a\x0C\x8A\x90b\x12u\0a9\x88V[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16B\x10\x15a\x0C\xCDW`@Q\x7F\x04d<9\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\x01`@Q\x80\x91\x03\x90\xFD[`\x03Tt\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16a\r\xD8W`\x03T`\x04\x80T`@Q\x7F~\xEE(\x8D\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`\x01`\x01`\xA0\x1B\x03\x93\x84\x16\x92\x81\x01\x92\x90\x92R`$\x82\x01R\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x91\x16\x90c~\xEE(\x8D\x90`D\x01`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a\r{W`\0\x80\xFD[PZ\xF1\x15\x80\x15a\r\x8FW=`\0\x80>=`\0\xFD[PP`\x03\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16t\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x17\x90UPa\x0F\x93\x90PV[`\x03\x80Tu\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16\x17\x90\x91U`\x04\x80T`@Q\x7F\xF3\xFE\xF3\xA3\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`\x01`\x01`\xA0\x1B\x03\x93\x84\x16\x92\x81\x01\x92\x90\x92R`$\x82\x01R\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x91\x16\x90c\xF3\xFE\xF3\xA3\x90`D\x01`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a\x0E\xA3W`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x0E\xB7W=`\0\x80>=`\0\xFD[PP`\x03T`\x04T`@Q`\0\x94P`\x01`\x01`\xA0\x1B\x03\x90\x92\x16\x92P\x90\x83\x81\x81\x81\x85\x87Z\xF1\x92PPP=\x80`\0\x81\x14a\x0F\x0CW`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=`\0` \x84\x01>a\x0F\x11V[``\x91P[PP\x90P\x80a\x0FLW`@Q\x7F\x83\xE6\xCCk\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\x01`@Q\x80\x91\x03\x90\xFD[`\x03T`\x04T`@Q\x90\x81R`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x90\x7F\x87\xE1,%e\x04'c\xDA\xA6\xBFXB\xED+dG\xF1\x7F~(\xF9\xA4\x90_\xE3\x95\x95\x819n\xAD\x90` \x01`@Q\x80\x91\x03\x90\xA2P[`\x01h\x92\x9E\xEE\x14\x9BK\xD2\x12hUV[`\0`\x06\x81\x80[`\x01\x81\x11\x15a\x0F\xBAWa\x0F\xBAa7{V[\x81R` \x81\x01\x91\x90\x91R`@\x01`\0 T`\x01`\x01`\xA0\x1B\x03\x16\x91\x90PV[`\0\x80`\0Tp\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16`\x02\x81\x11\x15a\x10\x07Wa\x10\x07a7{V[\x14a\x10>W`@Q\x7F\xF1\xA9E\x81\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\x01`@Q\x80\x91\x03\x90\xFD[`\0a\x10Ha'\xBAV[\x90P`\0\x81`\x02\x81\x11\x15a\x10^Wa\x10^a7{V[\x03a\x10\x95W`@Q\x7F\x92\xC5\x06\xAE\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\x01`@Q\x80\x91\x03\x90\xFD[`\x05T\x15\x15`\x01\x82`\x02\x81\x11\x15a\x10\xAEWa\x10\xAEa7{V[\x03a\x10\xF3W`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16p\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x17\x90Ua\x11\x9AV[`\x07TBg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x11\x15a\x11;W`@Q\x7F\x04d<9\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\x01`@Q\x80\x91\x03\x90\xFD[\x80a\x11GW`\x02a\x11JV[`\x01[`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16p\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x83`\x02\x81\x11\x15a\x11\x94Wa\x11\x94a7{V[\x02\x17\x90UP[`\x07T\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0h\x01\0\0\0\0\0\0\0\0\x90\x91\x04`\xFF\x16\x10\x15a\x12\x06W`@Q\x7F4M\xE4\xBF\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\x01`@Q\x80\x91\x03\x90\xFD[\x80\x15a\x12pW`\x01`\0R`\x06` R\x7F>_\xEC$\xAAM\xC4\xE5\xAE\xE2\xE0%\xE5\x1E\x13\x92\xC7*%\0WuY\xFA\xE9f\\mR\xBDj1T`\x03\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16`\x01`\x01`\xA0\x1B\x03\x90\x92\x16\x91\x90\x91\x17\x90U[`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16h\x01\0\0\0\0\0\0\0\0Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x02\x17\x90\x81\x90U`@Q\x7F^\x18o\t\xB9\xC94\x91\xF1N'~\xEA\x7F\xAA]\xE6\xA2\xD4\xBD\xA7Zy\xAFz6\x84\xFB\xFBB\xDA`\x91a\x12\xF8\x91p\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x91\x04`\xFF\x16\x90a7\xAAV[`@Q\x80\x91\x03\x90\xA1PP`\0Tp\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16\x91\x90PV[\x90P\x90V[`\0Tq\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16\x15a\x13xW`@Q\x7F\r\xC1I\xF0\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\x01`@Q\x80\x91\x03\x90\xFD[`\0` `\x01a\x13\x88\x84\x83a9\xB4V[a\x13\x92\x91\x90a9\xCCV[a\x13\x9C\x91\x90a9\xE3V[a\x13\xA7\x90` a:\x1EV[\x90P`\0\x81a\x13\xD7\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`@a9\xB4V[a\x13\xE1\x91\x90a9\xB4V[\x90P\x806\x14a\x13\xF8Wc\x98$\xBD\xAB`\0R`\x04`\x1C\xFD[a\x14\x116`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\x14\x015\x90V[\x90V[a\x14(`\x01a\x14\x1Ea\x1EgV[a\x06\x90\x91\x90a9\xCCV[\x14a\x14\x90Wa\x14:`\x01a\x14\x1Ea\x1EgV[a\x14P6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\x14\x015\x90V[`@Q\x7F\xF3?\xA6\xCF\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\x81\x01\x92\x90\x92R`$\x82\x01R`D\x01[`@Q\x80\x91\x03\x90\xFD[c\xFF\xFF\xFF\xFF6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`t\x015`\xE0\x1C\x14a\x16\x9DW`\0`\x01`\x01`\xA0\x1B\x03\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16c\xBB\x8A\xA1\xFC6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`t\x015`\xE0\x1C`@Q\x7F\xFF\xFF\xFF\xFF\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`\xE0\x84\x90\x1B\x16\x81Rc\xFF\xFF\xFF\xFF\x91\x90\x91\x16`\x04\x82\x01R`$\x01```@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x15KW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x15o\x91\x90a:VV[\x92PPPa\x15|\x81a*iV[a\x15\xB2W`@Q\x7F4a\x19\xF7\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\x01`@Q\x80\x91\x03\x90\xFD[`@Q\x80`@\x01`@R\x80a\x16\"\x83`\x01`\x01`\xA0\x1B\x03\x16c\xBC\xEF;U`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x15\xFEW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x14\x0E\x91\x90a:\xB9V[\x81R` \x01\x82`\x01`\x01`\xA0\x1B\x03\x16c\x99s^2`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x16eW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x16\x89\x91\x90a:\xB9V[\x90R\x80Q`\x01U` \x01Q`\x02UPa\x17+V[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16cfN\xD80`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01`@\x80Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x16\xFAW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x17\x1E\x91\x90a:\xD2V[\x80Q`\x01U` \x01Q`\x02U[`\x02Ta\x17Y\x90\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90a9\xB4V[6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`T\x015\x14a\x17\xE7W`\x02Ta\x17\x9C\x90\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90a9\xB4V[6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`T\x015`@Q\x7F\x08{-v\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\x81\x01\x92\x90\x92R`$\x82\x01R`D\x01a\x14\x87V[`\0\x80Tg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFFB\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\x90\x91\x16\x17q\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x17\x90U`@\x80Q\x7F<\x9F9|\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\x90Qc\xFF\xFF\xFF\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x91`\x01`\x01`\xA0\x1B\x03\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x91c<\x9F9|\x91`\x04\x80\x82\x01\x92` \x92\x90\x91\x90\x82\x90\x03\x01\x81\x86Z\xFA\x15\x80\x15a\x18\xD8W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x18\xFC\x91\x90a;HV[`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xFF\xFF\xFF\xFF\x92\x90\x92\x16\x92\x90\x92\x14r\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x02\x17\x81U`\x07\x80Tg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFFg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x19\x90\x91\x16\x17\x90U\x84\x84\x82\x81a\x19tWa\x19ta;cV[\x91\x90\x91\x015`\xF8\x1C\x90P`\x01\x81\x11\x15a\x19\x8FWa\x19\x8Fa7{V[\x90P`\0a\x19\xA1`!`\x01\x87\x89a;\x92V[a\x19\xAA\x91a;\xBCV[\x90P`\0a\x19\xBC`A`!\x88\x8Aa;\x92V[a\x19\xC5\x91a;\xBCV[\x90Pa\x19\xD1\x82\x82a,\xEDV[a\x1A.a\x19\xE1\x87`A\x81\x8Ba;\x92V[\x856`\x01\x19\x81\x015`\xF0\x1C\x90\x035``\x1C`\x01T\x87\x90[`\x02Ta\x1A\x116`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\x14\x015\x90V[6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`T\x015a\x1A)a\x1B#V[a/\x1AV[a\x1AG\x836`\x01\x19\x81\x015`\xF0\x1C\x90\x035``\x1Ca/\xECV[`\x03\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16`\x01\x196\x90\x81\x015`\xF0\x1C\x90\x035``\x1C\x17\x90U4`\x04\x81\x81U`@\x80Q\x7F\xD0\xE3\r\xB0\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\x90Q\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16\x93c\xD0\xE3\r\xB0\x93\x90\x92\x80\x82\x01\x92`\0\x92\x90\x91\x82\x90\x03\x01\x81\x85\x88\x80;\x15\x80\x15a\x1B\x01W`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x1B\x15W=`\0\x80>=`\0\xFD[PPPPPPPPPPPPV[``a\x13!`xa\x1B2a\x1EgV[a\x1B=\x90` a:\x1EV[a0\xCFV[`\0a\x1BLa\x1EgV[\x82\x10a\x1B\x84W`@Q\x7F\xA6\xC6a\xFD\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\x01`@Q\x80\x91\x03\x90\xFD[a\x1B\xAEa\x1B\x92\x83` a:\x1EV[a\x1B\x9D\x90`xa9\xB4V[6`\x01\x19\x81\x015`\xF0\x1C\x90\x03\x015\x90V[\x92\x91PPV[``a\x13!`Ta\x1B\xC3a\x1EgV[a\x1B\xCE\x90` a:\x1EV[a\x1B=\x90`$a9\xB4V[`\0`\x06\x81`\x01a\x0F\xA9V[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16c\\\x97Z\xBB`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x1CCW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x1Cg\x91\x90a;\xDAV[\x15a\x1C\x9EW`@Q\x7F7\x9A~\xD9\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\x01`@Q\x80\x91\x03\x90\xFD[`\0Th\x01\0\0\0\0\0\0\0\0\x90\x04g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\0\x03a\x1C\xFAW`@Q\x7F\xC1\x05&\n\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\x01`@Q\x80\x91\x03\x90\xFD[`@Q\x7F\x03\x14\xD2\xB3\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\x81R0`\x04\x82\x01R`\0\x90\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16\x90c\x03\x14\xD2\xB3\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x1DzW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x1D\x9E\x91\x90a;\xDAV[\x90P\x80a\x1D\xD7W`@Q\x7FHQ\xBD\x9B\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\x01`@Q\x80\x91\x03\x90\xFD[`@Q\x7F\x17\xCF!\xA9\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\x81R0`\x04\x82\x01R\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16\x90c\x17\xCF!\xA9\x90`$\x01`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a\x1EQW`\0\x80\xFD[PZ\xF1\x92PPP\x80\x15a\x1EbWP`\x01[P[PV[`\0a\x13!\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a9\xE3V[`\0\x80Tp\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16`\x02\x81\x11\x15a\x1E\xDFWa\x1E\xDFa7{V[\x14a\x1F\x16W`@Q\x7F\xF1\xA9E\x81\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\x01`@Q\x80\x91\x03\x90\xFD[`\0\x84\x84`\0\x81\x81\x10a\x1F+Wa\x1F+a;cV[\x91\x90\x91\x015`\xF8\x1C\x90P`\x01\x81\x11\x15a\x1FFWa\x1FFa7{V[\x90P`\0`\x06\x81\x83`\x01\x81\x11\x15a\x1F_Wa\x1F_a7{V[`\x01\x81\x11\x15a\x1FpWa\x1Fpa7{V[\x81R` \x81\x01\x91\x90\x91R`@\x01`\0 T`\x01`\x01`\xA0\x1B\x03\x16\x03a\x1F\xC3W\x80`@Q\x7F%\x82-8\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\x14\x87\x91\x90a;\xFCV[`\x05T\x15a {W`\x01`\x05Ta\x1F\xDA\x91\x90a9\xCCV[\x83\x14a \x12W`@Q\x7F\xA6\xC6a\xFD\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\x01`@Q\x80\x91\x03\x90\xFD[a \x1B\x83a\x1BBV[\x82\x14a +W\x81a\x14P\x84a\x1BBV[`\x01\x81`\x01\x81\x11\x15a ?Wa ?a7{V[\x14a vW`@Q\x7Fi\xEDp\xAB\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\x01`@Q\x80\x91\x03\x90\xFD[a \x85V[a \x85\x83\x83a1\x03V[`\0\x80`\0a \x93\x86a1\x84V[\x91\x94P\x92P\x90Pa \xEDa \xAA\x88`\x01\x81\x8Ca;\x92V[\x863a \xC26`\x01\x19\x81\x015`\xF0\x1C\x90\x03`4\x015\x90V[\x88\x88\x8C\x89\x8E`@Q` \x01a \xD9\x91\x81R` \x01\x90V[`@Q` \x81\x83\x03\x03\x81R\x90`@Ra/\x1AV[a \xF6\x84a2\x1DV[`@\x80Q\x87\x81R` \x81\x01\x87\x90R3\x91\x7FZ\x8D\x9D\x18\x1EjY\xFETw\xA5\x07!@\x1Bc2\xA8\x10\xB9\x18>\x15\xACb\xD3\x867\x9A\x05\xA7\x17\x91\x01`@Q\x80\x91\x03\x90\xA2`\x01\x84`\x01\x81\x11\x15a!EWa!Ea7{V[\x03a!\xC8W`\x05`\0\x90U\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16c\xEC\xE2\x0F6`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a!\xABW`\0\x80\xFD[PZ\xF1\x15\x80\x15a!\xBFW=`\0\x80>=`\0\xFD[PPPPa\"_\xEC$\xAAM\xC4\xE5\xAE\xE2\xE0%\xE5\x1E\x13\x92\xC7*%\0WuY\xFA\xE9f\\mR\xBDj1T`\x01`\x01`\xA0\x1B\x03\x16\x15a%\xACW`\x01`@Q\x7FqA)z\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\x14\x87\x91\x90a;\xFCV[`\0\x84\x84`\0\x81\x81\x10a%\xC1Wa%\xC1a;cV[\x91\x90\x91\x015`\xF8\x1C\x90P`\x01\x81\x11\x15a%\xDCWa%\xDCa7{V[\x90P`\x01\x81`\x01\x81\x11\x15a%\xF2Wa%\xF2a7{V[\x14a&)W`@Q\x7Fi\xEDp\xAB\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\x01`@Q\x80\x91\x03\x90\xFD[a&3\x83\x83a1\x03V[`\0\x80`\0a&A\x86a1\x84V[\x91\x94P\x92P\x90Pa&Xa \xAA\x88`\x01\x81\x8Ca;\x92V[3`\x06`\0\x86`\x01\x81\x11\x15a&oWa&oa7{V[`\x01\x81\x11\x15a&\x80Wa&\x80a7{V[\x81R` \x01\x90\x81R` \x01`\0 `\0a\x01\0\n\x81T\x81`\x01`\x01`\xA0\x1B\x03\x02\x19\x16\x90\x83`\x01`\x01`\xA0\x1B\x03\x16\x02\x17\x90UP`\x01`\x07`\x08\x82\x82\x82\x90T\x90a\x01\0\n\x90\x04`\xFF\x16a&\xD1\x91\x90a<\x10V[\x92Pa\x01\0\n\x81T\x81`\xFF\x02\x19\x16\x90\x83`\xFF\x16\x02\x17\x90UPb\t:\x80g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16Ba'\x02\x91\x90a9\xB4V[`\x07\x80Tg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x19\x16g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x92\x90\x92\x16\x91\x90\x91\x17\x90Ua'/\x86`\x01a9\xB4V[`\x05U`@Q\x86\x81R3\x90\x7Fz\x18\x022\xC1\x9F\xD3\x8C\x83\xE4\x93\x85jBh\x8CG{\xAE~\x82\x03\x91\x03\xB2\xC1\xEAjab\xE5)\x90` \x01`@Q\x80\x91\x03\x90\xA2PPPPPPPPV[`\0\x80``\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x006`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\x14\x015a'\xAFa\x1B\xB4V[\x92P\x92P\x92P\x90\x91\x92V[`\0c\xFF\xFF\xFF\xFF6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`t\x015`\xE0\x1C\x14a*cW`\0`\x01`\x01`\xA0\x1B\x03\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16c\xBB\x8A\xA1\xFC6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`t\x015`\xE0\x1C`@Q\x7F\xFF\xFF\xFF\xFF\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`\xE0\x84\x90\x1B\x16\x81Rc\xFF\xFF\xFF\xFF\x91\x90\x91\x16`\x04\x82\x01R`$\x01```@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a(wW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a(\x9B\x91\x90a:VV[`@Q\x7F4\xA3F\xEA\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`\x01`\x01`\xA0\x1B\x03\x80\x83\x16`\x04\x83\x01R\x91\x94P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x91\x16\x92Pc4\xA3F\xEA\x91P`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a)!W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a)E\x91\x90a;\xDAV[\x80a)\xEEWP`@Q\x7FYX\xA1\x93\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`\x01`\x01`\xA0\x1B\x03\x82\x81\x16`\x04\x83\x01R\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x90cYX\xA1\x93\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a)\xCAW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a)\xEE\x91\x90a;\xDAV[\x15a)\xFBW`\x01\x91PP\x90V[\x80`\x01`\x01`\xA0\x1B\x03\x16c \r.\xD2`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a*9W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a*]\x91\x90a<5V[\x91PP\x90V[P`\x02\x90V[`@Q\x7F\x04\xE5\x0F\xED\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`\x01`\x01`\xA0\x1B\x03\x82\x81\x16`\x04\x83\x01R`\0\x91\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x91\x16\x90c\x04\xE5\x0F\xED\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a*\xEDW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a+\x11\x91\x90a;\xDAV[\x80\x15a+\xBDWP`@Q\x7F4\xA3F\xEA\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`\x01`\x01`\xA0\x1B\x03\x83\x81\x16`\x04\x83\x01R\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x90c4\xA3F\xEA\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a+\x97W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a+\xBB\x91\x90a;\xDAV[\x15[\x80\x15a,iWP`@Q\x7FYX\xA1\x93\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`\x01`\x01`\xA0\x1B\x03\x83\x81\x16`\x04\x83\x01R\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x90cYX\xA1\x93\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a,CW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a,g\x91\x90a;\xDAV[\x15[\x80\x15a\x1B\xAEWP`\x01\x82`\x01`\x01`\xA0\x1B\x03\x16c \r.\xD2`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a,\xB0W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a,\xD4\x91\x90a<5V[`\x02\x81\x11\x15a,\xE5Wa,\xE5a7{V[\x14\x15\x92\x91PPV[C\x81\x10a-/W`@Q\x7F%\xBF\xB0\xA4\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\x81\x01\x82\x90RC`$\x82\x01R`D\x01a\x14\x87V[`\0\x80a-<\x83Ca9\xCCV[\x90Pa\x01\0\x81\x11a-PW\x82@\x91Pa.\x91V[a\x1F\xFF\x81\x11a.VW`\0\x80q\xF9\x08'\xF1\xC5:\x10\xCBz\x023[\x17S \0)5`\x01`\x01`\xA0\x1B\x03\x16\x85`@Q` \x01a-\x8B\x91\x81R` \x01\x90V[`@\x80Q`\x1F\x19\x81\x84\x03\x01\x81R\x90\x82\x90Ra-\xA5\x91aa-\xE5V[``\x91P[P\x91P\x91P\x81\x15\x80a-\xF9WP\x80Q` \x14\x15[\x15a.9W`@Q\x7F\x0F\x0B\x8F\x81\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\x81\x01\x86\x90RC`$\x82\x01R`D\x01a\x14\x87V[\x80\x80` \x01\x90Q\x81\x01\x90a.M\x91\x90a:\xB9V[\x93PPPa.\x91V[`@Q\x7F\x0F\x0B\x8F\x81\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\x81\x01\x84\x90RC`$\x82\x01R`D\x01a\x14\x87V[\x81a.\xD1W`@Q\x7F\x0F\x0B\x8F\x81\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\x81\x01\x84\x90RC`$\x82\x01R`D\x01a\x14\x87V[\x83\x82\x14a/\x14W`@Q\x7F\x80\xB1\xAEQ\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\x81\x01\x85\x90R`$\x81\x01\x83\x90R`D\x01a\x14\x87V[PPPPV[`\x01\x89\x10\x15a/UW`@Q\x7F\t\xBD\xE39\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\x01`@Q\x80\x91\x03\x90\xFD[`\0\x88`\x01\x81\x11\x15a/iWa/ia7{V[\x03a/\x84Wa/\x7F\x8A\x8A\x89\x89\x89\x89\x89\x89\x89a3\x13V[a/\xE0V[`\x01\x88`\x01\x81\x11\x15a/\x98Wa/\x98a7{V[\x03a/\xAEWa/\x7F\x8A\x8A\x89\x89\x89\x89\x89\x89\x89a4\xC2V[`@Q\x7Fi\xEDp\xAB\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\x01`@Q\x80\x91\x03\x90\xFD[PPPPPPPPPPV[\x80`\x06`\0\x84`\x01\x81\x11\x15a0\x03Wa0\x03a7{V[`\x01\x81\x11\x15a0\x14Wa0\x14a7{V[\x81R` \x01\x90\x81R` \x01`\0 `\0a\x01\0\n\x81T\x81`\x01`\x01`\xA0\x1B\x03\x02\x19\x16\x90\x83`\x01`\x01`\xA0\x1B\x03\x16\x02\x17\x90UP`\x01`\x07`\x08\x82\x82\x82\x90T\x90a\x01\0\n\x90\x04`\xFF\x16a0e\x91\x90a<\x10V[\x92Pa\x01\0\n\x81T\x81`\xFF\x02\x19\x16\x90\x83`\xFF\x16\x02\x17\x90UPa0\x85a6?V[\x81`\x01\x81\x11\x15a0\x97Wa0\x97a7{V[`@Q`\x01`\x01`\xA0\x1B\x03\x83\x16\x90\x7Fb\xF3\x93\xAC\xFB=4%\x11o\xE9\xBEze\t\xA4\xB6R\xBD\xA5O\xDA\xC2\xDF+rs\x13^\xCDX\xE7\x90`\0\x90\xA3PPV[`@Q\x81\x81R6`\x01\x19\x81\x015`\xF0\x1C\x90\x03\x82\x84\x82\x01` \x84\x017\x82` \x83\x01\x01`\0\x81R` \x81\x01`@RPP\x92\x91PPV[a1\x0Ba\x1EgV[\x82\x10a1CW`@Q\x7F\xA6\xC6a\xFD\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\x01`@Q\x80\x91\x03\x90\xFD[\x80a1M\x83a\x1BBV[\x03a\x1EbW`@Q\x7F\xBB\xCA\xFA\xE6\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\x01`@Q\x80\x91\x03\x90\xFD[`\0\x80\x80\x80\x84\x15a1\xA2Wa1\x9Da\x06\x90`\x01\x87a9\xCCV[a1\xA6V[`\x01T[\x90P`\0a1\xD4\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x87a:\x1EV[`\x02Ta1\xE1\x91\x90a9\xB4V[\x90P`\0a2\x0F\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x83a9\xB4V[\x92\x97\x91\x96P\x91\x94P\x92PPPV[`\x06`\0\x82`\x01\x81\x11\x15a23Wa23a7{V[`\x01\x81\x11\x15a2DWa2Da7{V[\x81R` \x81\x01\x91\x90\x91R`@\x01`\0\x90\x81 \x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x90U`\x07Th\x01\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16\x90\x03a2\xC6W`@Q\x7F4M\xE4\xBF\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\x01`@Q\x80\x91\x03\x90\xFD[`\x07\x80T`\0\x19`\xFFh\x01\0\0\0\0\0\0\0\0\x80\x84\x04\x82\x16\x92\x90\x92\x01\x16\x02\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x17\x90Ua\x1Eda7\x06V[`\0\x87\x87\x87\x87\x87\x87\x87\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`@Q` \x01a3v\x99\x98\x97\x96\x95\x94\x93\x92\x91\x90a\x90\x84\x90\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x87\x90`\x04\x01a=+V[` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a4[W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a4\x7F\x91\x90a;\xDAV[a4\xB5W`@Q\x7F\t\xBD\xE39\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\x01`@Q\x80\x91\x03\x90\xFD[PPPPPPPPPPPV[`\0\x87\x87\x87\x87\x87\x87\x87\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`@Q` \x01a5%\x99\x98\x97\x96\x95\x94\x93\x92\x91\x90a=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a6\t\x91\x90a;\xDAV[a/\xE0W`@Q\x7F\t\xBD\xE39\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\x01`@Q\x80\x91\x03\x90\xFD[`\x07T`\0\x90`\x02h\x01\0\0\0\0\0\0\0\0\x90\x91\x04`\xFF\x16\x10a6fWPb\x01Q\x80a6\xA7V[`\x07Th\x01\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16`\x01\x03a6\x89WPb\t:\x80a6\xA7V[P`\x07\x80Tg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x19\x16g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x17\x90UV[`\0a6\xB3\x82Ba9\x88V[`\x07T\x90\x91Pa6\xE0\x90g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x84\x16\x91\x16g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x80\x82\x18\x90\x82\x11\x02\x18\x90V[`\x07\x80Tg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x19\x16g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x92\x90\x92\x16\x91\x90\x91\x17\x90UPPV[`\x07T`\0\x90`\x02h\x01\0\0\0\0\0\0\0\0\x90\x91\x04`\xFF\x16\x10a7-WPb\x01Q\x80a7LV[`\x07Th\x01\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16`\x01\x03a6\x89WPb\t:\x80[a7V\x81Ba9\x88V[`\x07\x80Tg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x19\x16g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x92\x90\x92\x16\x91\x90\x91\x17\x90UPV[\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`!`\x04R`$`\0\xFD[` \x81\x01`\x03\x83\x10a7\xBEWa7\xBEa7{V[\x91\x90R\x90V[`\0\x80\x83`\x1F\x84\x01\x12a7\xD6W`\0\x80\xFD[P\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a7\xEEW`\0\x80\xFD[` \x83\x01\x91P\x83` \x82\x85\x01\x01\x11\x15a8\x06W`\0\x80\xFD[\x92P\x92\x90PV[`\0\x80` \x83\x85\x03\x12\x15a8 W`\0\x80\xFD[\x825g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a87W`\0\x80\xFD[a8C\x85\x82\x86\x01a7\xC4V[\x90\x96\x90\x95P\x93PPPPV[`\0[\x83\x81\x10\x15a8jW\x81\x81\x01Q\x83\x82\x01R` \x01a8RV[\x83\x81\x11\x15a/\x14WPP`\0\x91\x01RV[`\0\x81Q\x80\x84Ra8\x93\x81` \x86\x01` \x86\x01a8OV[`\x1F\x01`\x1F\x19\x16\x92\x90\x92\x01` \x01\x92\x91PPV[` \x81R`\0a8\xBA` \x83\x01\x84a8{V[\x93\x92PPPV[`\0` \x82\x84\x03\x12\x15a8\xD3W`\0\x80\xFD[P5\x91\x90PV[`\0\x80`\0\x80``\x85\x87\x03\x12\x15a8\xF0W`\0\x80\xFD[\x845g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a9\x07W`\0\x80\xFD[a9\x13\x87\x82\x88\x01a7\xC4V[\x90\x98\x90\x97P` \x87\x015\x96`@\x015\x95P\x93PPPPV[c\xFF\xFF\xFF\xFF\x84\x16\x81R\x82` \x82\x01R```@\x82\x01R`\0a9P``\x83\x01\x84a8{V[\x95\x94PPPPPV[\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`\x11`\x04R`$`\0\xFD[`\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x83\x16\x81\x85\x16\x80\x83\x03\x82\x11\x15a9\xABWa9\xABa9YV[\x01\x94\x93PPPPV[`\0\x82\x19\x82\x11\x15a9\xC7Wa9\xC7a9YV[P\x01\x90V[`\0\x82\x82\x10\x15a9\xDEWa9\xDEa9YV[P\x03\x90V[`\0\x82a:\x19W\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`\x12`\x04R`$`\0\xFD[P\x04\x90V[`\0\x81`\0\x19\x04\x83\x11\x82\x15\x15\x16\x15a:8Wa:8a9YV[P\x02\x90V[\x80Qc\xFF\xFF\xFF\xFF\x81\x16\x81\x14a:QW`\0\x80\xFD[\x91\x90PV[`\0\x80`\0``\x84\x86\x03\x12\x15a:kW`\0\x80\xFD[a:t\x84a:=V[\x92P` \x84\x01Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a:\x91W`\0\x80\xFD[`@\x85\x01Q\x90\x92P`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a:\xAEW`\0\x80\xFD[\x80\x91PP\x92P\x92P\x92V[`\0` \x82\x84\x03\x12\x15a:\xCBW`\0\x80\xFD[PQ\x91\x90PV[`\0`@\x82\x84\x03\x12\x15a:\xE4W`\0\x80\xFD[`@Q`@\x81\x01\x81\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17\x15a;.W\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[`@R\x82Q\x81R` \x92\x83\x01Q\x92\x81\x01\x92\x90\x92RP\x91\x90PV[`\0` \x82\x84\x03\x12\x15a;ZW`\0\x80\xFD[a8\xBA\x82a:=V[\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`2`\x04R`$`\0\xFD[`\0\x80\x85\x85\x11\x15a;\xA2W`\0\x80\xFD[\x83\x86\x11\x15a;\xAFW`\0\x80\xFD[PP\x82\x01\x93\x91\x90\x92\x03\x91PV[\x805` \x83\x10\x15a\x1B\xAEW`\0\x19` \x84\x90\x03`\x03\x1B\x1B\x16\x92\x91PPV[`\0` \x82\x84\x03\x12\x15a;\xECW`\0\x80\xFD[\x81Q\x80\x15\x15\x81\x14a8\xBAW`\0\x80\xFD[` \x81\x01`\x02\x83\x10a7\xBEWa7\xBEa7{V[`\0`\xFF\x82\x16`\xFF\x84\x16\x80`\xFF\x03\x82\x11\x15a<-Wa<-a9YV[\x01\x93\x92PPPV[`\0` \x82\x84\x03\x12\x15a``\x83\x01\x86a8{V[` \x83\x01\x94\x90\x94RP`@\x01R\x91\x90PV[``\x81R\x83``\x82\x01R\x83\x85`\x80\x83\x017`\0`\x80\x85\x83\x01\x01R`\0`\x80`\x1F\x19`\x1F\x87\x01\x16\x83\x01\x01\x90P\x83` \x83\x01R\x82`@\x83\x01R\x95\x94PPPPPV\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct GameStatus(u8); + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for u8 { + #[inline] + fn stv_to_tokens( + &self, + ) -> as alloy_sol_types::SolType>::Token<'_> { + alloy_sol_types::private::SolTypeValue::< + alloy::sol_types::sol_data::Uint<8>, + >::stv_to_tokens(self) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + as alloy_sol_types::SolType>::tokenize(self) + .0 + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::SolType>::abi_encode_packed_to(self, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + as alloy_sol_types::SolType>::abi_encoded_size(self) + } + } + impl GameStatus { + /// The Solidity type name. + pub const NAME: &'static str = stringify!(@ name); + /// Convert from the underlying value type. + #[inline] + pub const fn from_underlying(value: u8) -> Self { + Self(value) + } + /// Return the underlying value. + #[inline] + pub const fn into_underlying(self) -> u8 { + self.0 + } + /// Return the single encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode(&self) -> alloy_sol_types::private::Vec { + ::abi_encode(&self.0) + } + /// Return the packed encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec { + ::abi_encode_packed(&self.0) + } + } + #[automatically_derived] + impl From for GameStatus { + fn from(value: u8) -> Self { + Self::from_underlying(value) + } + } + #[automatically_derived] + impl From for u8 { + fn from(value: GameStatus) -> Self { + value.into_underlying() + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for GameStatus { + type RustType = u8; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = Self::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + Self::type_check(token).is_ok() + } + #[inline] + fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> { + as alloy_sol_types::SolType>::type_check(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + as alloy_sol_types::SolType>::detokenize(token) + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for GameStatus { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + as alloy_sol_types::EventTopic>::topic_preimage_length(rust) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out) + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + as alloy_sol_types::EventTopic>::encode_topic(rust) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ProofType(u8); + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for u8 { + #[inline] + fn stv_to_tokens( + &self, + ) -> as alloy_sol_types::SolType>::Token<'_> { + alloy_sol_types::private::SolTypeValue::< + alloy::sol_types::sol_data::Uint<8>, + >::stv_to_tokens(self) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + as alloy_sol_types::SolType>::tokenize(self) + .0 + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::SolType>::abi_encode_packed_to(self, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + as alloy_sol_types::SolType>::abi_encoded_size(self) + } + } + impl ProofType { + /// The Solidity type name. + pub const NAME: &'static str = stringify!(@ name); + /// Convert from the underlying value type. + #[inline] + pub const fn from_underlying(value: u8) -> Self { + Self(value) + } + /// Return the underlying value. + #[inline] + pub const fn into_underlying(self) -> u8 { + self.0 + } + /// Return the single encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode(&self) -> alloy_sol_types::private::Vec { + ::abi_encode(&self.0) + } + /// Return the packed encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec { + ::abi_encode_packed(&self.0) + } + } + #[automatically_derived] + impl From for ProofType { + fn from(value: u8) -> Self { + Self::from_underlying(value) + } + } + #[automatically_derived] + impl From for u8 { + fn from(value: ProofType) -> Self { + value.into_underlying() + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for ProofType { + type RustType = u8; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = Self::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + Self::type_check(token).is_ok() + } + #[inline] + fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> { + as alloy_sol_types::SolType>::type_check(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + as alloy_sol_types::SolType>::detokenize(token) + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for ProofType { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + as alloy_sol_types::EventTopic>::topic_preimage_length(rust) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out) + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + as alloy_sol_types::EventTopic>::encode_topic(rust) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct Claim(alloy::sol_types::private::FixedBytes<32>); + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue + for alloy::sol_types::private::FixedBytes<32> { + #[inline] + fn stv_to_tokens( + &self, + ) -> as alloy_sol_types::SolType>::Token<'_> { + alloy_sol_types::private::SolTypeValue::< + alloy::sol_types::sol_data::FixedBytes<32>, + >::stv_to_tokens(self) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + as alloy_sol_types::SolType>::tokenize(self) + .0 + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::SolType>::abi_encode_packed_to(self, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + as alloy_sol_types::SolType>::abi_encoded_size(self) + } + } + impl Claim { + /// The Solidity type name. + pub const NAME: &'static str = stringify!(@ name); + /// Convert from the underlying value type. + #[inline] + pub const fn from_underlying( + value: alloy::sol_types::private::FixedBytes<32>, + ) -> Self { + Self(value) + } + /// Return the underlying value. + #[inline] + pub const fn into_underlying( + self, + ) -> alloy::sol_types::private::FixedBytes<32> { + self.0 + } + /// Return the single encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode(&self) -> alloy_sol_types::private::Vec { + ::abi_encode(&self.0) + } + /// Return the packed encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec { + ::abi_encode_packed(&self.0) + } + } + #[automatically_derived] + impl From> for Claim { + fn from(value: alloy::sol_types::private::FixedBytes<32>) -> Self { + Self::from_underlying(value) + } + } + #[automatically_derived] + impl From for alloy::sol_types::private::FixedBytes<32> { + fn from(value: Claim) -> Self { + value.into_underlying() + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for Claim { + type RustType = alloy::sol_types::private::FixedBytes<32>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = Self::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + Self::type_check(token).is_ok() + } + #[inline] + fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> { + as alloy_sol_types::SolType>::type_check(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + as alloy_sol_types::SolType>::detokenize(token) + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for Claim { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + as alloy_sol_types::EventTopic>::topic_preimage_length(rust) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out) + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + as alloy_sol_types::EventTopic>::encode_topic(rust) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct GameType(u32); + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for u32 { + #[inline] + fn stv_to_tokens( + &self, + ) -> as alloy_sol_types::SolType>::Token<'_> { + alloy_sol_types::private::SolTypeValue::< + alloy::sol_types::sol_data::Uint<32>, + >::stv_to_tokens(self) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + as alloy_sol_types::SolType>::tokenize(self) + .0 + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::SolType>::abi_encode_packed_to(self, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + as alloy_sol_types::SolType>::abi_encoded_size(self) + } + } + impl GameType { + /// The Solidity type name. + pub const NAME: &'static str = stringify!(@ name); + /// Convert from the underlying value type. + #[inline] + pub const fn from_underlying(value: u32) -> Self { + Self(value) + } + /// Return the underlying value. + #[inline] + pub const fn into_underlying(self) -> u32 { + self.0 + } + /// Return the single encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode(&self) -> alloy_sol_types::private::Vec { + ::abi_encode(&self.0) + } + /// Return the packed encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec { + ::abi_encode_packed(&self.0) + } + } + #[automatically_derived] + impl From for GameType { + fn from(value: u32) -> Self { + Self::from_underlying(value) + } + } + #[automatically_derived] + impl From for u32 { + fn from(value: GameType) -> Self { + value.into_underlying() + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for GameType { + type RustType = u32; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = Self::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + Self::type_check(token).is_ok() + } + #[inline] + fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> { + as alloy_sol_types::SolType>::type_check(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + as alloy_sol_types::SolType>::detokenize(token) + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for GameType { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + as alloy_sol_types::EventTopic>::topic_preimage_length(rust) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out) + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + as alloy_sol_types::EventTopic>::encode_topic(rust) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct Hash(alloy::sol_types::private::FixedBytes<32>); + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue + for alloy::sol_types::private::FixedBytes<32> { + #[inline] + fn stv_to_tokens( + &self, + ) -> as alloy_sol_types::SolType>::Token<'_> { + alloy_sol_types::private::SolTypeValue::< + alloy::sol_types::sol_data::FixedBytes<32>, + >::stv_to_tokens(self) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + as alloy_sol_types::SolType>::tokenize(self) + .0 + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::SolType>::abi_encode_packed_to(self, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + as alloy_sol_types::SolType>::abi_encoded_size(self) + } + } + impl Hash { + /// The Solidity type name. + pub const NAME: &'static str = stringify!(@ name); + /// Convert from the underlying value type. + #[inline] + pub const fn from_underlying( + value: alloy::sol_types::private::FixedBytes<32>, + ) -> Self { + Self(value) + } + /// Return the underlying value. + #[inline] + pub const fn into_underlying( + self, + ) -> alloy::sol_types::private::FixedBytes<32> { + self.0 + } + /// Return the single encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode(&self) -> alloy_sol_types::private::Vec { + ::abi_encode(&self.0) + } + /// Return the packed encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec { + ::abi_encode_packed(&self.0) + } + } + #[automatically_derived] + impl From> for Hash { + fn from(value: alloy::sol_types::private::FixedBytes<32>) -> Self { + Self::from_underlying(value) + } + } + #[automatically_derived] + impl From for alloy::sol_types::private::FixedBytes<32> { + fn from(value: Hash) -> Self { + value.into_underlying() + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for Hash { + type RustType = alloy::sol_types::private::FixedBytes<32>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = Self::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + Self::type_check(token).is_ok() + } + #[inline] + fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> { + as alloy_sol_types::SolType>::type_check(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + as alloy_sol_types::SolType>::detokenize(token) + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for Hash { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + as alloy_sol_types::EventTopic>::topic_preimage_length(rust) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out) + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + as alloy_sol_types::EventTopic>::encode_topic(rust) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct Timestamp(u64); + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for u64 { + #[inline] + fn stv_to_tokens( + &self, + ) -> as alloy_sol_types::SolType>::Token<'_> { + alloy_sol_types::private::SolTypeValue::< + alloy::sol_types::sol_data::Uint<64>, + >::stv_to_tokens(self) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + as alloy_sol_types::SolType>::tokenize(self) + .0 + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::SolType>::abi_encode_packed_to(self, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + as alloy_sol_types::SolType>::abi_encoded_size(self) + } + } + impl Timestamp { + /// The Solidity type name. + pub const NAME: &'static str = stringify!(@ name); + /// Convert from the underlying value type. + #[inline] + pub const fn from_underlying(value: u64) -> Self { + Self(value) + } + /// Return the underlying value. + #[inline] + pub const fn into_underlying(self) -> u64 { + self.0 + } + /// Return the single encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode(&self) -> alloy_sol_types::private::Vec { + ::abi_encode(&self.0) + } + /// Return the packed encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec { + ::abi_encode_packed(&self.0) + } + } + #[automatically_derived] + impl From for Timestamp { + fn from(value: u64) -> Self { + Self::from_underlying(value) + } + } + #[automatically_derived] + impl From for u64 { + fn from(value: Timestamp) -> Self { + value.into_underlying() + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for Timestamp { + type RustType = u64; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = Self::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + Self::type_check(token).is_ok() + } + #[inline] + fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> { + as alloy_sol_types::SolType>::type_check(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + as alloy_sol_types::SolType>::detokenize(token) + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for Timestamp { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + as alloy_sol_types::EventTopic>::topic_preimage_length(rust) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out) + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + as alloy_sol_types::EventTopic>::encode_topic(rust) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `AlreadyInitialized()` and selector `0x0dc149f0`. +```solidity +error AlreadyInitialized(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct AlreadyInitialized; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: AlreadyInitialized) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for AlreadyInitialized { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for AlreadyInitialized { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "AlreadyInitialized()"; + const SELECTOR: [u8; 4] = [13u8, 193u8, 73u8, 240u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `AlreadyProven(uint8)` and selector `0x7141297a`. +```solidity +error AlreadyProven(ProofType proofType); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct AlreadyProven { + #[allow(missing_docs)] + pub proofType: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (ProofType,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: AlreadyProven) -> Self { + (value.proofType,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for AlreadyProven { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { proofType: tuple.0 } + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for AlreadyProven { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "AlreadyProven(uint8)"; + const SELECTOR: [u8; 4] = [113u8, 65u8, 41u8, 122u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + (::tokenize(&self.proofType),) + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `BondTransferFailed()` and selector `0x83e6cc6b`. +```solidity +error BondTransferFailed(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct BondTransferFailed; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: BondTransferFailed) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for BondTransferFailed { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for BondTransferFailed { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "BondTransferFailed()"; + const SELECTOR: [u8; 4] = [131u8, 230u8, 204u8, 107u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ClaimAlreadyResolved()` and selector `0xf1a94581`. +```solidity +error ClaimAlreadyResolved(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ClaimAlreadyResolved; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ClaimAlreadyResolved) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ClaimAlreadyResolved { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ClaimAlreadyResolved { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ClaimAlreadyResolved()"; + const SELECTOR: [u8; 4] = [241u8, 169u8, 69u8, 129u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `GameNotFinalized()` and selector `0x4851bd9b`. +```solidity +error GameNotFinalized(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct GameNotFinalized; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: GameNotFinalized) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for GameNotFinalized { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for GameNotFinalized { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "GameNotFinalized()"; + const SELECTOR: [u8; 4] = [72u8, 81u8, 189u8, 155u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `GameNotInProgress()` and selector `0x67fe1950`. +```solidity +error GameNotInProgress(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct GameNotInProgress; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: GameNotInProgress) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for GameNotInProgress { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for GameNotInProgress { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "GameNotInProgress()"; + const SELECTOR: [u8; 4] = [103u8, 254u8, 25u8, 80u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `GameNotOver()` and selector `0x04643c39`. +```solidity +error GameNotOver(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct GameNotOver; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: GameNotOver) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for GameNotOver { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for GameNotOver { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "GameNotOver()"; + const SELECTOR: [u8; 4] = [4u8, 100u8, 60u8, 57u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `GameNotResolved()` and selector `0xc105260a`. +```solidity +error GameNotResolved(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct GameNotResolved; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: GameNotResolved) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for GameNotResolved { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for GameNotResolved { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "GameNotResolved()"; + const SELECTOR: [u8; 4] = [193u8, 5u8, 38u8, 10u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `GameOver()` and selector `0xdf469ccb`. +```solidity +error GameOver(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct GameOver; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: GameOver) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for GameOver { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for GameOver { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "GameOver()"; + const SELECTOR: [u8; 4] = [223u8, 70u8, 156u8, 203u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `GamePaused()` and selector `0x379a7ed9`. +```solidity +error GamePaused(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct GamePaused; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: GamePaused) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for GamePaused { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for GamePaused { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "GamePaused()"; + const SELECTOR: [u8; 4] = [55u8, 154u8, 126u8, 217u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `IntermediateRootMismatch(bytes32,bytes32)` and selector `0xf33fa6cf`. +```solidity +error IntermediateRootMismatch(bytes32 intermediateRoot, bytes32 claim); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct IntermediateRootMismatch { + #[allow(missing_docs)] + pub intermediateRoot: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub claim: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::FixedBytes<32>, + alloy::sol_types::private::FixedBytes<32>, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: IntermediateRootMismatch) -> Self { + (value.intermediateRoot, value.claim) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for IntermediateRootMismatch { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + intermediateRoot: tuple.0, + claim: tuple.1, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for IntermediateRootMismatch { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "IntermediateRootMismatch(bytes32,bytes32)"; + const SELECTOR: [u8; 4] = [243u8, 63u8, 166u8, 207u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.intermediateRoot), + as alloy_sol_types::SolType>::tokenize(&self.claim), + ) + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `IntermediateRootSameAsProposed()` and selector `0xbbcafae6`. +```solidity +error IntermediateRootSameAsProposed(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct IntermediateRootSameAsProposed; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: IntermediateRootSameAsProposed) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for IntermediateRootSameAsProposed { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for IntermediateRootSameAsProposed { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "IntermediateRootSameAsProposed()"; + const SELECTOR: [u8; 4] = [187u8, 202u8, 250u8, 230u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidBlockInterval(uint256,uint256)` and selector `0x8c570a72`. +```solidity +error InvalidBlockInterval(uint256 blockInterval, uint256 intermediateBlockInterval); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidBlockInterval { + #[allow(missing_docs)] + pub blockInterval: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub intermediateBlockInterval: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InvalidBlockInterval) -> Self { + (value.blockInterval, value.intermediateBlockInterval) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InvalidBlockInterval { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + blockInterval: tuple.0, + intermediateBlockInterval: tuple.1, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidBlockInterval { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidBlockInterval(uint256,uint256)"; + const SELECTOR: [u8; 4] = [140u8, 87u8, 10u8, 114u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.blockInterval), + as alloy_sol_types::SolType>::tokenize( + &self.intermediateBlockInterval, + ), + ) + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidGame()` and selector `0x57e25a09`. +```solidity +error InvalidGame(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidGame; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InvalidGame) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InvalidGame { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidGame { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidGame()"; + const SELECTOR: [u8; 4] = [87u8, 226u8, 90u8, 9u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidIntermediateRootIndex()` and selector `0xa6c661fd`. +```solidity +error InvalidIntermediateRootIndex(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidIntermediateRootIndex; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: InvalidIntermediateRootIndex) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for InvalidIntermediateRootIndex { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidIntermediateRootIndex { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidIntermediateRootIndex()"; + const SELECTOR: [u8; 4] = [166u8, 198u8, 97u8, 253u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidParentGame()` and selector `0x346119f7`. +```solidity +error InvalidParentGame(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidParentGame; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InvalidParentGame) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InvalidParentGame { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidParentGame { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidParentGame()"; + const SELECTOR: [u8; 4] = [52u8, 97u8, 25u8, 247u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidProof()` and selector `0x09bde339`. +```solidity +error InvalidProof(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidProof; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InvalidProof) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InvalidProof { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidProof { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidProof()"; + const SELECTOR: [u8; 4] = [9u8, 189u8, 227u8, 57u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidProofThreshold()` and selector `0xb1016ea7`. +```solidity +error InvalidProofThreshold(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidProofThreshold; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InvalidProofThreshold) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InvalidProofThreshold { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidProofThreshold { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidProofThreshold()"; + const SELECTOR: [u8; 4] = [177u8, 1u8, 110u8, 167u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidProofType()` and selector `0x69ed70ab`. +```solidity +error InvalidProofType(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidProofType; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InvalidProofType) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InvalidProofType { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidProofType { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidProofType()"; + const SELECTOR: [u8; 4] = [105u8, 237u8, 112u8, 171u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `L1OriginHashMismatch(bytes32,bytes32)` and selector `0x80b1ae51`. +```solidity +error L1OriginHashMismatch(bytes32 claimed, bytes32 actual); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct L1OriginHashMismatch { + #[allow(missing_docs)] + pub claimed: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub actual: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::FixedBytes<32>, + alloy::sol_types::private::FixedBytes<32>, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: L1OriginHashMismatch) -> Self { + (value.claimed, value.actual) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for L1OriginHashMismatch { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + claimed: tuple.0, + actual: tuple.1, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for L1OriginHashMismatch { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "L1OriginHashMismatch(bytes32,bytes32)"; + const SELECTOR: [u8; 4] = [128u8, 177u8, 174u8, 81u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.claimed), + as alloy_sol_types::SolType>::tokenize(&self.actual), + ) + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `L1OriginInFuture(uint256,uint256)` and selector `0x25bfb0a4`. +```solidity +error L1OriginInFuture(uint256 l1OriginNumber, uint256 currentBlock); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct L1OriginInFuture { + #[allow(missing_docs)] + pub l1OriginNumber: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub currentBlock: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: L1OriginInFuture) -> Self { + (value.l1OriginNumber, value.currentBlock) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for L1OriginInFuture { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + l1OriginNumber: tuple.0, + currentBlock: tuple.1, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for L1OriginInFuture { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "L1OriginInFuture(uint256,uint256)"; + const SELECTOR: [u8; 4] = [37u8, 191u8, 176u8, 164u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.l1OriginNumber), + as alloy_sol_types::SolType>::tokenize(&self.currentBlock), + ) + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `L1OriginTooOld(uint256,uint256)` and selector `0x0f0b8f81`. +```solidity +error L1OriginTooOld(uint256 l1OriginNumber, uint256 currentBlock); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct L1OriginTooOld { + #[allow(missing_docs)] + pub l1OriginNumber: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub currentBlock: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: L1OriginTooOld) -> Self { + (value.l1OriginNumber, value.currentBlock) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for L1OriginTooOld { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + l1OriginNumber: tuple.0, + currentBlock: tuple.1, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for L1OriginTooOld { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "L1OriginTooOld(uint256,uint256)"; + const SELECTOR: [u8; 4] = [15u8, 11u8, 143u8, 129u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.l1OriginNumber), + as alloy_sol_types::SolType>::tokenize(&self.currentBlock), + ) + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `MissingProof(uint8)` and selector `0x25822d38`. +```solidity +error MissingProof(ProofType proofType); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct MissingProof { + #[allow(missing_docs)] + pub proofType: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (ProofType,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: MissingProof) -> Self { + (value.proofType,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for MissingProof { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { proofType: tuple.0 } + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for MissingProof { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "MissingProof(uint8)"; + const SELECTOR: [u8; 4] = [37u8, 130u8, 45u8, 56u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + (::tokenize(&self.proofType),) + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `NoCreditToClaim()` and selector `0x17bfe5f7`. +```solidity +error NoCreditToClaim(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct NoCreditToClaim; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: NoCreditToClaim) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for NoCreditToClaim { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for NoCreditToClaim { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "NoCreditToClaim()"; + const SELECTOR: [u8; 4] = [23u8, 191u8, 229u8, 247u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `NotEnoughProofs()` and selector `0x344de4bf`. +```solidity +error NotEnoughProofs(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct NotEnoughProofs; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: NotEnoughProofs) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for NotEnoughProofs { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for NotEnoughProofs { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "NotEnoughProofs()"; + const SELECTOR: [u8; 4] = [52u8, 77u8, 228u8, 191u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ParentGameNotResolved()` and selector `0x92c506ae`. +```solidity +error ParentGameNotResolved(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ParentGameNotResolved; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ParentGameNotResolved) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ParentGameNotResolved { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ParentGameNotResolved { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ParentGameNotResolved()"; + const SELECTOR: [u8; 4] = [146u8, 197u8, 6u8, 174u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `Reentrancy()` and selector `0xab143c06`. +```solidity +error Reentrancy(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct Reentrancy; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: Reentrancy) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for Reentrancy { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for Reentrancy { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "Reentrancy()"; + const SELECTOR: [u8; 4] = [171u8, 20u8, 60u8, 6u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `UnexpectedBlockNumber(uint256,uint256)` and selector `0x087b2d76`. +```solidity +error UnexpectedBlockNumber(uint256 expectedBlockNumber, uint256 actualBlockNumber); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct UnexpectedBlockNumber { + #[allow(missing_docs)] + pub expectedBlockNumber: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub actualBlockNumber: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: UnexpectedBlockNumber) -> Self { + (value.expectedBlockNumber, value.actualBlockNumber) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for UnexpectedBlockNumber { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + expectedBlockNumber: tuple.0, + actualBlockNumber: tuple.1, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for UnexpectedBlockNumber { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "UnexpectedBlockNumber(uint256,uint256)"; + const SELECTOR: [u8; 4] = [8u8, 123u8, 45u8, 118u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.expectedBlockNumber), + as alloy_sol_types::SolType>::tokenize(&self.actualBlockNumber), + ) + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `Challenged(address,uint256)` and selector `0x7a180232c19fd38c83e493856a42688c477bae7e82039103b2c1ea6a6162e529`. +```solidity +event Challenged(address indexed challenger, uint256 intermediateRootIndex); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct Challenged { + #[allow(missing_docs)] + pub challenger: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub intermediateRootIndex: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for Challenged { + type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "Challenged(address,uint256)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 122u8, 24u8, 2u8, 50u8, 193u8, 159u8, 211u8, 140u8, 131u8, 228u8, 147u8, + 133u8, 106u8, 66u8, 104u8, 140u8, 71u8, 123u8, 174u8, 126u8, 130u8, 3u8, + 145u8, 3u8, 178u8, 193u8, 234u8, 106u8, 97u8, 98u8, 229u8, 41u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + challenger: topics.1, + intermediateRootIndex: data.0, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize( + &self.intermediateRootIndex, + ), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.challenger.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.challenger, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for Challenged { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&Challenged> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &Challenged) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `CreditClaimed(address,uint256)` and selector `0x87e12c2565042763daa6bf5842ed2b6447f17f7e28f9a4905fe3959581396ead`. +```solidity +event CreditClaimed(address indexed recipient, uint256 amount); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct CreditClaimed { + #[allow(missing_docs)] + pub recipient: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub amount: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for CreditClaimed { + type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "CreditClaimed(address,uint256)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 135u8, 225u8, 44u8, 37u8, 101u8, 4u8, 39u8, 99u8, 218u8, 166u8, 191u8, + 88u8, 66u8, 237u8, 43u8, 100u8, 71u8, 241u8, 127u8, 126u8, 40u8, 249u8, + 164u8, 144u8, 95u8, 227u8, 149u8, 149u8, 129u8, 57u8, 110u8, 173u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + recipient: topics.1, + amount: data.0, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.amount), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.recipient.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.recipient, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for CreditClaimed { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&CreditClaimed> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &CreditClaimed) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `Nullified(address,uint256,bytes32)` and selector `0x5a8d9d181e6a59fe5477a50721401b6332a810b9183e15ac62d386379a05a717`. +```solidity +event Nullified(address indexed nullifier, uint256 intermediateRootIndex, bytes32 intermediateRoot); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct Nullified { + #[allow(missing_docs)] + pub nullifier: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub intermediateRootIndex: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub intermediateRoot: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for Nullified { + type DataTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "Nullified(address,uint256,bytes32)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 90u8, 141u8, 157u8, 24u8, 30u8, 106u8, 89u8, 254u8, 84u8, 119u8, 165u8, + 7u8, 33u8, 64u8, 27u8, 99u8, 50u8, 168u8, 16u8, 185u8, 24u8, 62u8, 21u8, + 172u8, 98u8, 211u8, 134u8, 55u8, 154u8, 5u8, 167u8, 23u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + nullifier: topics.1, + intermediateRootIndex: data.0, + intermediateRoot: data.1, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize( + &self.intermediateRootIndex, + ), + as alloy_sol_types::SolType>::tokenize(&self.intermediateRoot), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.nullifier.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.nullifier, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for Nullified { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&Nullified> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &Nullified) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `Proved(address,uint8)` and selector `0x62f393acfb3d3425116fe9be7a6509a4b652bda54fdac2df2b7273135ecd58e7`. +```solidity +event Proved(address indexed prover, ProofType indexed proofType); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct Proved { + #[allow(missing_docs)] + pub prover: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub proofType: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for Proved { + type DataTuple<'a> = (); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + ProofType, + ); + const SIGNATURE: &'static str = "Proved(address,uint8)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 98u8, 243u8, 147u8, 172u8, 251u8, 61u8, 52u8, 37u8, 17u8, 111u8, 233u8, + 190u8, 122u8, 101u8, 9u8, 164u8, 182u8, 82u8, 189u8, 165u8, 79u8, 218u8, + 194u8, 223u8, 43u8, 114u8, 115u8, 19u8, 94u8, 205u8, 88u8, 231u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + prover: topics.1, + proofType: topics.2, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + () + } + #[inline] + fn topics(&self) -> ::RustType { + ( + Self::SIGNATURE_HASH.into(), + self.prover.clone(), + self.proofType.clone(), + ) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.prover, + ); + out[2usize] = ::encode_topic( + &self.proofType, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for Proved { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&Proved> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &Proved) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `Resolved(uint8)` and selector `0x5e186f09b9c93491f14e277eea7faa5de6a2d4bda75a79af7a3684fbfb42da60`. +```solidity +event Resolved(GameStatus status); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct Resolved { + #[allow(missing_docs)] + pub status: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for Resolved { + type DataTuple<'a> = (GameStatus,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,); + const SIGNATURE: &'static str = "Resolved(uint8)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 94u8, 24u8, 111u8, 9u8, 185u8, 201u8, 52u8, 145u8, 241u8, 78u8, 39u8, + 126u8, 234u8, 127u8, 170u8, 93u8, 230u8, 162u8, 212u8, 189u8, 167u8, + 90u8, 121u8, 175u8, 122u8, 54u8, 132u8, 251u8, 251u8, 66u8, 218u8, 96u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { status: data.0 } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + (::tokenize(&self.status),) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(),) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for Resolved { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&Resolved> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &Resolved) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + /**Constructor`. +```solidity +constructor(GameType gameType_, address anchorStateRegistry_, address delayedWETH, address teeVerifier, address zkVerifier, bytes32 teeImageHash, bytes32 zkImageHash, bytes32 configHash, uint256 l2ChainId, uint256 blockInterval, uint256 intermediateBlockInterval, uint256 proofThreshold); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct constructorCall { + #[allow(missing_docs)] + pub gameType_: ::RustType, + #[allow(missing_docs)] + pub anchorStateRegistry_: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub delayedWETH: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub teeVerifier: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub zkVerifier: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub teeImageHash: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub zkImageHash: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub configHash: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub l2ChainId: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub blockInterval: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub intermediateBlockInterval: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub proofThreshold: alloy::sol_types::private::primitives::aliases::U256, + } + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + GameType, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::FixedBytes<32>, + alloy::sol_types::private::FixedBytes<32>, + alloy::sol_types::private::FixedBytes<32>, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: constructorCall) -> Self { + ( + value.gameType_, + value.anchorStateRegistry_, + value.delayedWETH, + value.teeVerifier, + value.zkVerifier, + value.teeImageHash, + value.zkImageHash, + value.configHash, + value.l2ChainId, + value.blockInterval, + value.intermediateBlockInterval, + value.proofThreshold, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for constructorCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + gameType_: tuple.0, + anchorStateRegistry_: tuple.1, + delayedWETH: tuple.2, + teeVerifier: tuple.3, + zkVerifier: tuple.4, + teeImageHash: tuple.5, + zkImageHash: tuple.6, + configHash: tuple.7, + l2ChainId: tuple.8, + blockInterval: tuple.9, + intermediateBlockInterval: tuple.10, + proofThreshold: tuple.11, + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolConstructor for constructorCall { + type Parameters<'a> = ( + GameType, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize(&self.gameType_), + ::tokenize( + &self.anchorStateRegistry_, + ), + ::tokenize( + &self.delayedWETH, + ), + ::tokenize( + &self.teeVerifier, + ), + ::tokenize( + &self.zkVerifier, + ), + as alloy_sol_types::SolType>::tokenize(&self.teeImageHash), + as alloy_sol_types::SolType>::tokenize(&self.zkImageHash), + as alloy_sol_types::SolType>::tokenize(&self.configHash), + as alloy_sol_types::SolType>::tokenize(&self.l2ChainId), + as alloy_sol_types::SolType>::tokenize(&self.blockInterval), + as alloy_sol_types::SolType>::tokenize( + &self.intermediateBlockInterval, + ), + as alloy_sol_types::SolType>::tokenize(&self.proofThreshold), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `BLOCKHASH_WINDOW()` and selector `0x4e95eb58`. +```solidity +function BLOCKHASH_WINDOW() external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct BLOCKHASH_WINDOWCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`BLOCKHASH_WINDOW()`](BLOCKHASH_WINDOWCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct BLOCKHASH_WINDOWReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: BLOCKHASH_WINDOWCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for BLOCKHASH_WINDOWCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: BLOCKHASH_WINDOWReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for BLOCKHASH_WINDOWReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for BLOCKHASH_WINDOWCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "BLOCKHASH_WINDOW()"; + const SELECTOR: [u8; 4] = [78u8, 149u8, 235u8, 88u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: BLOCKHASH_WINDOWReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: BLOCKHASH_WINDOWReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `BLOCK_INTERVAL()` and selector `0x35c4377b`. +```solidity +function BLOCK_INTERVAL() external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct BLOCK_INTERVALCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`BLOCK_INTERVAL()`](BLOCK_INTERVALCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct BLOCK_INTERVALReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: BLOCK_INTERVALCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for BLOCK_INTERVALCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: BLOCK_INTERVALReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for BLOCK_INTERVALReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for BLOCK_INTERVALCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "BLOCK_INTERVAL()"; + const SELECTOR: [u8; 4] = [53u8, 196u8, 55u8, 123u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: BLOCK_INTERVALReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: BLOCK_INTERVALReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `CONFIG_HASH()` and selector `0xd28cb06f`. +```solidity +function CONFIG_HASH() external view returns (bytes32); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct CONFIG_HASHCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`CONFIG_HASH()`](CONFIG_HASHCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct CONFIG_HASHReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: CONFIG_HASHCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for CONFIG_HASHCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: CONFIG_HASHReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for CONFIG_HASHReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for CONFIG_HASHCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::FixedBytes<32>; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "CONFIG_HASH()"; + const SELECTOR: [u8; 4] = [210u8, 140u8, 176u8, 111u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: CONFIG_HASHReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: CONFIG_HASHReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `DELAYED_WETH()` and selector `0xc26783e9`. +```solidity +function DELAYED_WETH() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct DELAYED_WETHCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`DELAYED_WETH()`](DELAYED_WETHCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct DELAYED_WETHReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: DELAYED_WETHCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for DELAYED_WETHCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: DELAYED_WETHReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for DELAYED_WETHReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for DELAYED_WETHCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "DELAYED_WETH()"; + const SELECTOR: [u8; 4] = [194u8, 103u8, 131u8, 233u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: DELAYED_WETHReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: DELAYED_WETHReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `DISPUTE_GAME_FACTORY()` and selector `0x82ff53a1`. +```solidity +function DISPUTE_GAME_FACTORY() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct DISPUTE_GAME_FACTORYCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`DISPUTE_GAME_FACTORY()`](DISPUTE_GAME_FACTORYCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct DISPUTE_GAME_FACTORYReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: DISPUTE_GAME_FACTORYCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for DISPUTE_GAME_FACTORYCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: DISPUTE_GAME_FACTORYReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for DISPUTE_GAME_FACTORYReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for DISPUTE_GAME_FACTORYCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "DISPUTE_GAME_FACTORY()"; + const SELECTOR: [u8; 4] = [130u8, 255u8, 83u8, 161u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: DISPUTE_GAME_FACTORYReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: DISPUTE_GAME_FACTORYReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `EIP2935_CONTRACT()` and selector `0x9840fd84`. +```solidity +function EIP2935_CONTRACT() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct EIP2935_CONTRACTCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`EIP2935_CONTRACT()`](EIP2935_CONTRACTCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct EIP2935_CONTRACTReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: EIP2935_CONTRACTCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for EIP2935_CONTRACTCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: EIP2935_CONTRACTReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for EIP2935_CONTRACTReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for EIP2935_CONTRACTCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "EIP2935_CONTRACT()"; + const SELECTOR: [u8; 4] = [152u8, 64u8, 253u8, 132u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: EIP2935_CONTRACTReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: EIP2935_CONTRACTReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `EIP2935_WINDOW()` and selector `0x9730163d`. +```solidity +function EIP2935_WINDOW() external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct EIP2935_WINDOWCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`EIP2935_WINDOW()`](EIP2935_WINDOWCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct EIP2935_WINDOWReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: EIP2935_WINDOWCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for EIP2935_WINDOWCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: EIP2935_WINDOWReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for EIP2935_WINDOWReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for EIP2935_WINDOWCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "EIP2935_WINDOW()"; + const SELECTOR: [u8; 4] = [151u8, 48u8, 22u8, 61u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: EIP2935_WINDOWReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: EIP2935_WINDOWReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `FAST_FINALIZATION_DELAY()` and selector `0x64d12136`. +```solidity +function FAST_FINALIZATION_DELAY() external view returns (uint64); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct FAST_FINALIZATION_DELAYCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`FAST_FINALIZATION_DELAY()`](FAST_FINALIZATION_DELAYCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct FAST_FINALIZATION_DELAYReturn { + #[allow(missing_docs)] + pub _0: u64, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: FAST_FINALIZATION_DELAYCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for FAST_FINALIZATION_DELAYCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u64,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: FAST_FINALIZATION_DELAYReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for FAST_FINALIZATION_DELAYReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for FAST_FINALIZATION_DELAYCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u64; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "FAST_FINALIZATION_DELAY()"; + const SELECTOR: [u8; 4] = [100u8, 209u8, 33u8, 54u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: FAST_FINALIZATION_DELAYReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: FAST_FINALIZATION_DELAYReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `INTERMEDIATE_BLOCK_INTERVAL()` and selector `0x6dc86e81`. +```solidity +function INTERMEDIATE_BLOCK_INTERVAL() external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct INTERMEDIATE_BLOCK_INTERVALCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`INTERMEDIATE_BLOCK_INTERVAL()`](INTERMEDIATE_BLOCK_INTERVALCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct INTERMEDIATE_BLOCK_INTERVALReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: INTERMEDIATE_BLOCK_INTERVALCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for INTERMEDIATE_BLOCK_INTERVALCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: INTERMEDIATE_BLOCK_INTERVALReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for INTERMEDIATE_BLOCK_INTERVALReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for INTERMEDIATE_BLOCK_INTERVALCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "INTERMEDIATE_BLOCK_INTERVAL()"; + const SELECTOR: [u8; 4] = [109u8, 200u8, 110u8, 129u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: INTERMEDIATE_BLOCK_INTERVALReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: INTERMEDIATE_BLOCK_INTERVALReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `L2_CHAIN_ID()` and selector `0x8417d3c2`. +```solidity +function L2_CHAIN_ID() external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct L2_CHAIN_IDCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`L2_CHAIN_ID()`](L2_CHAIN_IDCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct L2_CHAIN_IDReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: L2_CHAIN_IDCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for L2_CHAIN_IDCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: L2_CHAIN_IDReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for L2_CHAIN_IDReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for L2_CHAIN_IDCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "L2_CHAIN_ID()"; + const SELECTOR: [u8; 4] = [132u8, 23u8, 211u8, 194u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: L2_CHAIN_IDReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: L2_CHAIN_IDReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `PROOF_THRESHOLD()` and selector `0x10fbee28`. +```solidity +function PROOF_THRESHOLD() external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct PROOF_THRESHOLDCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`PROOF_THRESHOLD()`](PROOF_THRESHOLDCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct PROOF_THRESHOLDReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: PROOF_THRESHOLDCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for PROOF_THRESHOLDCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: PROOF_THRESHOLDReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for PROOF_THRESHOLDReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for PROOF_THRESHOLDCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "PROOF_THRESHOLD()"; + const SELECTOR: [u8; 4] = [16u8, 251u8, 238u8, 40u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: PROOF_THRESHOLDReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: PROOF_THRESHOLDReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `SLOW_FINALIZATION_DELAY()` and selector `0xd1ee5e4b`. +```solidity +function SLOW_FINALIZATION_DELAY() external view returns (uint64); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct SLOW_FINALIZATION_DELAYCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`SLOW_FINALIZATION_DELAY()`](SLOW_FINALIZATION_DELAYCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct SLOW_FINALIZATION_DELAYReturn { + #[allow(missing_docs)] + pub _0: u64, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: SLOW_FINALIZATION_DELAYCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for SLOW_FINALIZATION_DELAYCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u64,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: SLOW_FINALIZATION_DELAYReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for SLOW_FINALIZATION_DELAYReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for SLOW_FINALIZATION_DELAYCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u64; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "SLOW_FINALIZATION_DELAY()"; + const SELECTOR: [u8; 4] = [209u8, 238u8, 94u8, 75u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: SLOW_FINALIZATION_DELAYReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: SLOW_FINALIZATION_DELAYReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `TEE_IMAGE_HASH()` and selector `0x0183fd44`. +```solidity +function TEE_IMAGE_HASH() external view returns (bytes32); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct TEE_IMAGE_HASHCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`TEE_IMAGE_HASH()`](TEE_IMAGE_HASHCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct TEE_IMAGE_HASHReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: TEE_IMAGE_HASHCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for TEE_IMAGE_HASHCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: TEE_IMAGE_HASHReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for TEE_IMAGE_HASHReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for TEE_IMAGE_HASHCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::FixedBytes<32>; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "TEE_IMAGE_HASH()"; + const SELECTOR: [u8; 4] = [1u8, 131u8, 253u8, 68u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: TEE_IMAGE_HASHReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: TEE_IMAGE_HASHReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `TEE_VERIFIER()` and selector `0x1f837574`. +```solidity +function TEE_VERIFIER() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct TEE_VERIFIERCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`TEE_VERIFIER()`](TEE_VERIFIERCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct TEE_VERIFIERReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: TEE_VERIFIERCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for TEE_VERIFIERCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: TEE_VERIFIERReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for TEE_VERIFIERReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for TEE_VERIFIERCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "TEE_VERIFIER()"; + const SELECTOR: [u8; 4] = [31u8, 131u8, 117u8, 116u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: TEE_VERIFIERReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: TEE_VERIFIERReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `ZK_IMAGE_HASH()` and selector `0x1405762f`. +```solidity +function ZK_IMAGE_HASH() external view returns (bytes32); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ZK_IMAGE_HASHCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`ZK_IMAGE_HASH()`](ZK_IMAGE_HASHCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ZK_IMAGE_HASHReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ZK_IMAGE_HASHCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ZK_IMAGE_HASHCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ZK_IMAGE_HASHReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ZK_IMAGE_HASHReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for ZK_IMAGE_HASHCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::FixedBytes<32>; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ZK_IMAGE_HASH()"; + const SELECTOR: [u8; 4] = [20u8, 5u8, 118u8, 47u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: ZK_IMAGE_HASHReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: ZK_IMAGE_HASHReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `ZK_VERIFIER()` and selector `0x9ded3952`. +```solidity +function ZK_VERIFIER() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ZK_VERIFIERCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`ZK_VERIFIER()`](ZK_VERIFIERCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ZK_VERIFIERReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ZK_VERIFIERCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ZK_VERIFIERCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ZK_VERIFIERReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ZK_VERIFIERReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for ZK_VERIFIERCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ZK_VERIFIER()"; + const SELECTOR: [u8; 4] = [157u8, 237u8, 57u8, 82u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: ZK_VERIFIERReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: ZK_VERIFIERReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `anchorStateRegistry()` and selector `0x5c0cba33`. +```solidity +function anchorStateRegistry() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct anchorStateRegistryCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`anchorStateRegistry()`](anchorStateRegistryCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct anchorStateRegistryReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: anchorStateRegistryCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for anchorStateRegistryCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: anchorStateRegistryReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for anchorStateRegistryReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for anchorStateRegistryCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "anchorStateRegistry()"; + const SELECTOR: [u8; 4] = [92u8, 12u8, 186u8, 51u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: anchorStateRegistryReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: anchorStateRegistryReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `bondAmount()` and selector `0x80f323a7`. +```solidity +function bondAmount() external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct bondAmountCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`bondAmount()`](bondAmountCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct bondAmountReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: bondAmountCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for bondAmountCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: bondAmountReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for bondAmountReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for bondAmountCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "bondAmount()"; + const SELECTOR: [u8; 4] = [128u8, 243u8, 35u8, 167u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: bondAmountReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: bondAmountReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `bondClaimed()` and selector `0x7a6bc9e1`. +```solidity +function bondClaimed() external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct bondClaimedCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`bondClaimed()`](bondClaimedCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct bondClaimedReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: bondClaimedCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for bondClaimedCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: bondClaimedReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for bondClaimedReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for bondClaimedCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "bondClaimed()"; + const SELECTOR: [u8; 4] = [122u8, 107u8, 201u8, 225u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: bondClaimedReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: bondClaimedReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `bondRecipient()` and selector `0x23edb2e0`. +```solidity +function bondRecipient() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct bondRecipientCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`bondRecipient()`](bondRecipientCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct bondRecipientReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: bondRecipientCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for bondRecipientCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: bondRecipientReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for bondRecipientReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for bondRecipientCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "bondRecipient()"; + const SELECTOR: [u8; 4] = [35u8, 237u8, 178u8, 224u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: bondRecipientReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: bondRecipientReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `bondUnlocked()` and selector `0x3fada3fd`. +```solidity +function bondUnlocked() external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct bondUnlockedCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`bondUnlocked()`](bondUnlockedCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct bondUnlockedReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: bondUnlockedCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for bondUnlockedCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: bondUnlockedReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for bondUnlockedReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for bondUnlockedCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "bondUnlocked()"; + const SELECTOR: [u8; 4] = [63u8, 173u8, 163u8, 253u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: bondUnlockedReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: bondUnlockedReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `challenge(bytes,uint256,bytes32)` and selector `0xe41f96ad`. +```solidity +function challenge(bytes memory proofBytes, uint256 intermediateRootIndex, bytes32 intermediateRootToProve) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct challengeCall { + #[allow(missing_docs)] + pub proofBytes: alloy::sol_types::private::Bytes, + #[allow(missing_docs)] + pub intermediateRootIndex: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub intermediateRootToProve: alloy::sol_types::private::FixedBytes<32>, + } + ///Container type for the return parameters of the [`challenge(bytes,uint256,bytes32)`](challengeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct challengeReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Bytes, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Bytes, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::FixedBytes<32>, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: challengeCall) -> Self { + ( + value.proofBytes, + value.intermediateRootIndex, + value.intermediateRootToProve, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for challengeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + proofBytes: tuple.0, + intermediateRootIndex: tuple.1, + intermediateRootToProve: tuple.2, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: challengeReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for challengeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl challengeReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for challengeCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Bytes, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = challengeReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "challenge(bytes,uint256,bytes32)"; + const SELECTOR: [u8; 4] = [228u8, 31u8, 150u8, 173u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.proofBytes, + ), + as alloy_sol_types::SolType>::tokenize( + &self.intermediateRootIndex, + ), + as alloy_sol_types::SolType>::tokenize( + &self.intermediateRootToProve, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + challengeReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `claimCredit()` and selector `0x1333db2e`. +```solidity +function claimCredit() external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct claimCreditCall; + ///Container type for the return parameters of the [`claimCredit()`](claimCreditCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct claimCreditReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: claimCreditCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for claimCreditCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: claimCreditReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for claimCreditReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl claimCreditReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for claimCreditCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = claimCreditReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "claimCredit()"; + const SELECTOR: [u8; 4] = [19u8, 51u8, 219u8, 46u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + claimCreditReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `closeGame()` and selector `0x786b844b`. +```solidity +function closeGame() external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct closeGameCall; + ///Container type for the return parameters of the [`closeGame()`](closeGameCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct closeGameReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: closeGameCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for closeGameCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: closeGameReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for closeGameReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl closeGameReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for closeGameCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = closeGameReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "closeGame()"; + const SELECTOR: [u8; 4] = [120u8, 107u8, 132u8, 75u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + closeGameReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `counteredByIntermediateRootIndexPlusOne()` and selector `0x324a13c9`. +```solidity +function counteredByIntermediateRootIndexPlusOne() external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct counteredByIntermediateRootIndexPlusOneCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`counteredByIntermediateRootIndexPlusOne()`](counteredByIntermediateRootIndexPlusOneCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct counteredByIntermediateRootIndexPlusOneReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: counteredByIntermediateRootIndexPlusOneCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for counteredByIntermediateRootIndexPlusOneCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: counteredByIntermediateRootIndexPlusOneReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for counteredByIntermediateRootIndexPlusOneReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for counteredByIntermediateRootIndexPlusOneCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "counteredByIntermediateRootIndexPlusOne()"; + const SELECTOR: [u8; 4] = [50u8, 74u8, 19u8, 201u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: counteredByIntermediateRootIndexPlusOneReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: counteredByIntermediateRootIndexPlusOneReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `createdAt()` and selector `0xcf09e0d0`. +```solidity +function createdAt() external view returns (Timestamp); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct createdAtCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`createdAt()`](createdAtCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct createdAtReturn { + #[allow(missing_docs)] + pub _0: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: createdAtCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for createdAtCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Timestamp,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: createdAtReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for createdAtReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for createdAtCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (Timestamp,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "createdAt()"; + const SELECTOR: [u8; 4] = [207u8, 9u8, 224u8, 208u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: createdAtReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: createdAtReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `expectedResolution()` and selector `0x2845e5bb`. +```solidity +function expectedResolution() external view returns (Timestamp); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct expectedResolutionCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`expectedResolution()`](expectedResolutionCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct expectedResolutionReturn { + #[allow(missing_docs)] + pub _0: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: expectedResolutionCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for expectedResolutionCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Timestamp,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: expectedResolutionReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for expectedResolutionReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for expectedResolutionCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (Timestamp,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "expectedResolution()"; + const SELECTOR: [u8; 4] = [40u8, 69u8, 229u8, 187u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: expectedResolutionReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: expectedResolutionReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `extraData()` and selector `0x609d3334`. +```solidity +function extraData() external view returns (bytes memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct extraDataCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`extraData()`](extraDataCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct extraDataReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Bytes, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: extraDataCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for extraDataCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bytes,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Bytes,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: extraDataReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for extraDataReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for extraDataCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Bytes; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bytes,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "extraData()"; + const SELECTOR: [u8; 4] = [96u8, 157u8, 51u8, 52u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: extraDataReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: extraDataReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `gameCreator()` and selector `0x37b1b229`. +```solidity +function gameCreator() external pure returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct gameCreatorCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`gameCreator()`](gameCreatorCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct gameCreatorReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: gameCreatorCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for gameCreatorCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: gameCreatorReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for gameCreatorReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for gameCreatorCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "gameCreator()"; + const SELECTOR: [u8; 4] = [55u8, 177u8, 178u8, 41u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: gameCreatorReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: gameCreatorReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `gameData()` and selector `0xfa24f743`. +```solidity +function gameData() external view returns (GameType, Claim, bytes memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct gameDataCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`gameData()`](gameDataCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct gameDataReturn { + #[allow(missing_docs)] + pub _0: ::RustType, + #[allow(missing_docs)] + pub _1: ::RustType, + #[allow(missing_docs)] + pub _2: alloy::sol_types::private::Bytes, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: gameDataCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for gameDataCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + GameType, + Claim, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ::RustType, + alloy::sol_types::private::Bytes, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: gameDataReturn) -> Self { + (value._0, value._1, value._2) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for gameDataReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _0: tuple.0, + _1: tuple.1, + _2: tuple.2, + } + } + } + } + impl gameDataReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + ( + ::tokenize(&self._0), + ::tokenize(&self._1), + ::tokenize( + &self._2, + ), + ) + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for gameDataCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = gameDataReturn; + type ReturnTuple<'a> = (GameType, Claim, alloy::sol_types::sol_data::Bytes); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "gameData()"; + const SELECTOR: [u8; 4] = [250u8, 36u8, 247u8, 67u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + gameDataReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `gameOver()` and selector `0xbdb337d1`. +```solidity +function gameOver() external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct gameOverCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`gameOver()`](gameOverCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct gameOverReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: gameOverCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for gameOverCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: gameOverReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for gameOverReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for gameOverCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "gameOver()"; + const SELECTOR: [u8; 4] = [189u8, 179u8, 55u8, 209u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: gameOverReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: gameOverReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `gameType()` and selector `0xbbdc02db`. +```solidity +function gameType() external view returns (GameType); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct gameTypeCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`gameType()`](gameTypeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct gameTypeReturn { + #[allow(missing_docs)] + pub _0: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: gameTypeCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for gameTypeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (GameType,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: gameTypeReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for gameTypeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for gameTypeCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (GameType,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "gameType()"; + const SELECTOR: [u8; 4] = [187u8, 220u8, 2u8, 219u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: gameTypeReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: gameTypeReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `initializeWithInitData(bytes)` and selector `0x4224b1e7`. +```solidity +function initializeWithInitData(bytes memory proof) external payable; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct initializeWithInitDataCall { + #[allow(missing_docs)] + pub proof: alloy::sol_types::private::Bytes, + } + ///Container type for the return parameters of the [`initializeWithInitData(bytes)`](initializeWithInitDataCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct initializeWithInitDataReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bytes,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Bytes,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: initializeWithInitDataCall) -> Self { + (value.proof,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for initializeWithInitDataCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { proof: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: initializeWithInitDataReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for initializeWithInitDataReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl initializeWithInitDataReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken< + '_, + > { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for initializeWithInitDataCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Bytes,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = initializeWithInitDataReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "initializeWithInitData(bytes)"; + const SELECTOR: [u8; 4] = [66u8, 36u8, 177u8, 231u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.proof, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + initializeWithInitDataReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `intermediateOutputRoot(uint256)` and selector `0x49edf35a`. +```solidity +function intermediateOutputRoot(uint256 index) external view returns (bytes32); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct intermediateOutputRootCall { + #[allow(missing_docs)] + pub index: alloy::sol_types::private::primitives::aliases::U256, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`intermediateOutputRoot(uint256)`](intermediateOutputRootCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct intermediateOutputRootReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: intermediateOutputRootCall) -> Self { + (value.index,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for intermediateOutputRootCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { index: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: intermediateOutputRootReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for intermediateOutputRootReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for intermediateOutputRootCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::FixedBytes<32>; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "intermediateOutputRoot(uint256)"; + const SELECTOR: [u8; 4] = [73u8, 237u8, 243u8, 90u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.index), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: intermediateOutputRootReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: intermediateOutputRootReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `intermediateOutputRoots()` and selector `0x42316182`. +```solidity +function intermediateOutputRoots() external view returns (bytes memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct intermediateOutputRootsCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`intermediateOutputRoots()`](intermediateOutputRootsCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct intermediateOutputRootsReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Bytes, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: intermediateOutputRootsCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for intermediateOutputRootsCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bytes,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Bytes,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: intermediateOutputRootsReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for intermediateOutputRootsReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for intermediateOutputRootsCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Bytes; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bytes,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "intermediateOutputRoots()"; + const SELECTOR: [u8; 4] = [66u8, 49u8, 97u8, 130u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: intermediateOutputRootsReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: intermediateOutputRootsReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `intermediateOutputRootsCount()` and selector `0xb74df35a`. +```solidity +function intermediateOutputRootsCount() external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct intermediateOutputRootsCountCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`intermediateOutputRootsCount()`](intermediateOutputRootsCountCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct intermediateOutputRootsCountReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: intermediateOutputRootsCountCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for intermediateOutputRootsCountCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: intermediateOutputRootsCountReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for intermediateOutputRootsCountReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for intermediateOutputRootsCountCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "intermediateOutputRootsCount()"; + const SELECTOR: [u8; 4] = [183u8, 77u8, 243u8, 90u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: intermediateOutputRootsCountReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: intermediateOutputRootsCountReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `l1Head()` and selector `0x6361506d`. +```solidity +function l1Head() external pure returns (Hash); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct l1HeadCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`l1Head()`](l1HeadCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct l1HeadReturn { + #[allow(missing_docs)] + pub _0: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: l1HeadCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for l1HeadCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Hash,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: l1HeadReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for l1HeadReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for l1HeadCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (Hash,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "l1Head()"; + const SELECTOR: [u8; 4] = [99u8, 97u8, 80u8, 109u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: l1HeadReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: l1HeadReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `l2SequenceNumber()` and selector `0x99735e32`. +```solidity +function l2SequenceNumber() external pure returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct l2SequenceNumberCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`l2SequenceNumber()`](l2SequenceNumberCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct l2SequenceNumberReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: l2SequenceNumberCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for l2SequenceNumberCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: l2SequenceNumberReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for l2SequenceNumberReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for l2SequenceNumberCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "l2SequenceNumber()"; + const SELECTOR: [u8; 4] = [153u8, 115u8, 94u8, 50u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: l2SequenceNumberReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: l2SequenceNumberReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `nullify(bytes,uint256,bytes32)` and selector `0xb97cb80f`. +```solidity +function nullify(bytes memory proofBytes, uint256 intermediateRootIndex, bytes32 intermediateRootToProve) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct nullifyCall { + #[allow(missing_docs)] + pub proofBytes: alloy::sol_types::private::Bytes, + #[allow(missing_docs)] + pub intermediateRootIndex: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub intermediateRootToProve: alloy::sol_types::private::FixedBytes<32>, + } + ///Container type for the return parameters of the [`nullify(bytes,uint256,bytes32)`](nullifyCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct nullifyReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Bytes, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Bytes, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::FixedBytes<32>, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: nullifyCall) -> Self { + ( + value.proofBytes, + value.intermediateRootIndex, + value.intermediateRootToProve, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for nullifyCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + proofBytes: tuple.0, + intermediateRootIndex: tuple.1, + intermediateRootToProve: tuple.2, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: nullifyReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for nullifyReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl nullifyReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for nullifyCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Bytes, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = nullifyReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "nullify(bytes,uint256,bytes32)"; + const SELECTOR: [u8; 4] = [185u8, 124u8, 184u8, 15u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.proofBytes, + ), + as alloy_sol_types::SolType>::tokenize( + &self.intermediateRootIndex, + ), + as alloy_sol_types::SolType>::tokenize( + &self.intermediateRootToProve, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + nullifyReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `parentIndex()` and selector `0x7948690a`. +```solidity +function parentIndex() external pure returns (uint32); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct parentIndexCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`parentIndex()`](parentIndexCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct parentIndexReturn { + #[allow(missing_docs)] + pub _0: u32, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: parentIndexCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for parentIndexCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u32,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: parentIndexReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for parentIndexReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for parentIndexCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u32; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<32>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "parentIndex()"; + const SELECTOR: [u8; 4] = [121u8, 72u8, 105u8, 10u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: parentIndexReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: parentIndexReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `proofCount()` and selector `0xaddecc06`. +```solidity +function proofCount() external view returns (uint8); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct proofCountCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`proofCount()`](proofCountCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct proofCountReturn { + #[allow(missing_docs)] + pub _0: u8, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: proofCountCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for proofCountCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<8>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u8,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: proofCountReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for proofCountReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for proofCountCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u8; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<8>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "proofCount()"; + const SELECTOR: [u8; 4] = [173u8, 222u8, 204u8, 6u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: proofCountReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: proofCountReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `resolve()` and selector `0x2810e1d6`. +```solidity +function resolve() external returns (GameStatus); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct resolveCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`resolve()`](resolveCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct resolveReturn { + #[allow(missing_docs)] + pub _0: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: resolveCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for resolveCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (GameStatus,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: resolveReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for resolveReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for resolveCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (GameStatus,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "resolve()"; + const SELECTOR: [u8; 4] = [40u8, 16u8, 225u8, 214u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: resolveReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: resolveReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `resolvedAt()` and selector `0x19effeb4`. +```solidity +function resolvedAt() external view returns (Timestamp); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct resolvedAtCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`resolvedAt()`](resolvedAtCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct resolvedAtReturn { + #[allow(missing_docs)] + pub _0: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: resolvedAtCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for resolvedAtCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Timestamp,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: resolvedAtReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for resolvedAtReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for resolvedAtCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (Timestamp,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "resolvedAt()"; + const SELECTOR: [u8; 4] = [25u8, 239u8, 254u8, 180u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: resolvedAtReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: resolvedAtReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `rootClaim()` and selector `0xbcef3b55`. +```solidity +function rootClaim() external pure returns (Claim); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct rootClaimCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`rootClaim()`](rootClaimCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct rootClaimReturn { + #[allow(missing_docs)] + pub _0: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: rootClaimCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for rootClaimCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Claim,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: rootClaimReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for rootClaimReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for rootClaimCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (Claim,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "rootClaim()"; + const SELECTOR: [u8; 4] = [188u8, 239u8, 59u8, 85u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: rootClaimReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: rootClaimReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `startingBlockNumber()` and selector `0x70872aa5`. +```solidity +function startingBlockNumber() external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct startingBlockNumberCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`startingBlockNumber()`](startingBlockNumberCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct startingBlockNumberReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: startingBlockNumberCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for startingBlockNumberCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: startingBlockNumberReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for startingBlockNumberReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for startingBlockNumberCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "startingBlockNumber()"; + const SELECTOR: [u8; 4] = [112u8, 135u8, 42u8, 165u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: startingBlockNumberReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: startingBlockNumberReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `startingOutputRoot()` and selector `0x57da950e`. +```solidity +function startingOutputRoot() external view returns (Hash root, uint256 l2SequenceNumber); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct startingOutputRootCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`startingOutputRoot()`](startingOutputRootCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct startingOutputRootReturn { + #[allow(missing_docs)] + pub root: ::RustType, + #[allow(missing_docs)] + pub l2SequenceNumber: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: startingOutputRootCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for startingOutputRootCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Hash, alloy::sol_types::sol_data::Uint<256>); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: startingOutputRootReturn) -> Self { + (value.root, value.l2SequenceNumber) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for startingOutputRootReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + root: tuple.0, + l2SequenceNumber: tuple.1, + } + } + } + } + impl startingOutputRootReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + ( + ::tokenize(&self.root), + as alloy_sol_types::SolType>::tokenize(&self.l2SequenceNumber), + ) + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for startingOutputRootCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = startingOutputRootReturn; + type ReturnTuple<'a> = (Hash, alloy::sol_types::sol_data::Uint<256>); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "startingOutputRoot()"; + const SELECTOR: [u8; 4] = [87u8, 218u8, 149u8, 14u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + startingOutputRootReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `startingRootHash()` and selector `0x25fc2ace`. +```solidity +function startingRootHash() external view returns (Hash); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct startingRootHashCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`startingRootHash()`](startingRootHashCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct startingRootHashReturn { + #[allow(missing_docs)] + pub _0: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: startingRootHashCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for startingRootHashCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Hash,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: startingRootHashReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for startingRootHashReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for startingRootHashCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (Hash,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "startingRootHash()"; + const SELECTOR: [u8; 4] = [37u8, 252u8, 42u8, 206u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: startingRootHashReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: startingRootHashReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `status()` and selector `0x200d2ed2`. +```solidity +function status() external view returns (GameStatus); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct statusCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`status()`](statusCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct statusReturn { + #[allow(missing_docs)] + pub _0: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: statusCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for statusCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (GameStatus,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: statusReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for statusReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for statusCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (GameStatus,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "status()"; + const SELECTOR: [u8; 4] = [32u8, 13u8, 46u8, 210u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: statusReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: statusReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `teeProver()` and selector `0x1ee5d7c8`. +```solidity +function teeProver() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct teeProverCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`teeProver()`](teeProverCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct teeProverReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: teeProverCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for teeProverCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: teeProverReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for teeProverReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for teeProverCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "teeProver()"; + const SELECTOR: [u8; 4] = [30u8, 229u8, 215u8, 200u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: teeProverReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: teeProverReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `verifyProposalProof(bytes)` and selector `0xcfcf984b`. +```solidity +function verifyProposalProof(bytes memory proofBytes) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct verifyProposalProofCall { + #[allow(missing_docs)] + pub proofBytes: alloy::sol_types::private::Bytes, + } + ///Container type for the return parameters of the [`verifyProposalProof(bytes)`](verifyProposalProofCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct verifyProposalProofReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bytes,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Bytes,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: verifyProposalProofCall) -> Self { + (value.proofBytes,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for verifyProposalProofCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { proofBytes: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: verifyProposalProofReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for verifyProposalProofReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl verifyProposalProofReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for verifyProposalProofCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Bytes,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = verifyProposalProofReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "verifyProposalProof(bytes)"; + const SELECTOR: [u8; 4] = [207u8, 207u8, 152u8, 75u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.proofBytes, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + verifyProposalProofReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `version()` and selector `0x54fd4d50`. +```solidity +function version() external pure returns (string memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`version()`](versionCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for versionCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::String; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "version()"; + const SELECTOR: [u8; 4] = [84u8, 253u8, 77u8, 80u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `wasRespectedGameTypeWhenCreated()` and selector `0x250e69bd`. +```solidity +function wasRespectedGameTypeWhenCreated() external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct wasRespectedGameTypeWhenCreatedCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`wasRespectedGameTypeWhenCreated()`](wasRespectedGameTypeWhenCreatedCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct wasRespectedGameTypeWhenCreatedReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: wasRespectedGameTypeWhenCreatedCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for wasRespectedGameTypeWhenCreatedCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: wasRespectedGameTypeWhenCreatedReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for wasRespectedGameTypeWhenCreatedReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for wasRespectedGameTypeWhenCreatedCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "wasRespectedGameTypeWhenCreated()"; + const SELECTOR: [u8; 4] = [37u8, 14u8, 105u8, 189u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: wasRespectedGameTypeWhenCreatedReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: wasRespectedGameTypeWhenCreatedReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `zkProver()` and selector `0x74f8bf32`. +```solidity +function zkProver() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct zkProverCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`zkProver()`](zkProverCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct zkProverReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: zkProverCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for zkProverCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: zkProverReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for zkProverReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for zkProverCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "zkProver()"; + const SELECTOR: [u8; 4] = [116u8, 248u8, 191u8, 50u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: zkProverReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: zkProverReturn = r.into(); + r._0 + }) + } + } + }; + ///Container for all the [`AggregateVerifier`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum AggregateVerifierCalls { + #[allow(missing_docs)] + BLOCKHASH_WINDOW(BLOCKHASH_WINDOWCall), + #[allow(missing_docs)] + BLOCK_INTERVAL(BLOCK_INTERVALCall), + #[allow(missing_docs)] + CONFIG_HASH(CONFIG_HASHCall), + #[allow(missing_docs)] + DELAYED_WETH(DELAYED_WETHCall), + #[allow(missing_docs)] + DISPUTE_GAME_FACTORY(DISPUTE_GAME_FACTORYCall), + #[allow(missing_docs)] + EIP2935_CONTRACT(EIP2935_CONTRACTCall), + #[allow(missing_docs)] + EIP2935_WINDOW(EIP2935_WINDOWCall), + #[allow(missing_docs)] + FAST_FINALIZATION_DELAY(FAST_FINALIZATION_DELAYCall), + #[allow(missing_docs)] + INTERMEDIATE_BLOCK_INTERVAL(INTERMEDIATE_BLOCK_INTERVALCall), + #[allow(missing_docs)] + L2_CHAIN_ID(L2_CHAIN_IDCall), + #[allow(missing_docs)] + PROOF_THRESHOLD(PROOF_THRESHOLDCall), + #[allow(missing_docs)] + SLOW_FINALIZATION_DELAY(SLOW_FINALIZATION_DELAYCall), + #[allow(missing_docs)] + TEE_IMAGE_HASH(TEE_IMAGE_HASHCall), + #[allow(missing_docs)] + TEE_VERIFIER(TEE_VERIFIERCall), + #[allow(missing_docs)] + ZK_IMAGE_HASH(ZK_IMAGE_HASHCall), + #[allow(missing_docs)] + ZK_VERIFIER(ZK_VERIFIERCall), + #[allow(missing_docs)] + anchorStateRegistry(anchorStateRegistryCall), + #[allow(missing_docs)] + bondAmount(bondAmountCall), + #[allow(missing_docs)] + bondClaimed(bondClaimedCall), + #[allow(missing_docs)] + bondRecipient(bondRecipientCall), + #[allow(missing_docs)] + bondUnlocked(bondUnlockedCall), + #[allow(missing_docs)] + challenge(challengeCall), + #[allow(missing_docs)] + claimCredit(claimCreditCall), + #[allow(missing_docs)] + closeGame(closeGameCall), + #[allow(missing_docs)] + counteredByIntermediateRootIndexPlusOne( + counteredByIntermediateRootIndexPlusOneCall, + ), + #[allow(missing_docs)] + createdAt(createdAtCall), + #[allow(missing_docs)] + expectedResolution(expectedResolutionCall), + #[allow(missing_docs)] + extraData(extraDataCall), + #[allow(missing_docs)] + gameCreator(gameCreatorCall), + #[allow(missing_docs)] + gameData(gameDataCall), + #[allow(missing_docs)] + gameOver(gameOverCall), + #[allow(missing_docs)] + gameType(gameTypeCall), + #[allow(missing_docs)] + initializeWithInitData(initializeWithInitDataCall), + #[allow(missing_docs)] + intermediateOutputRoot(intermediateOutputRootCall), + #[allow(missing_docs)] + intermediateOutputRoots(intermediateOutputRootsCall), + #[allow(missing_docs)] + intermediateOutputRootsCount(intermediateOutputRootsCountCall), + #[allow(missing_docs)] + l1Head(l1HeadCall), + #[allow(missing_docs)] + l2SequenceNumber(l2SequenceNumberCall), + #[allow(missing_docs)] + nullify(nullifyCall), + #[allow(missing_docs)] + parentIndex(parentIndexCall), + #[allow(missing_docs)] + proofCount(proofCountCall), + #[allow(missing_docs)] + resolve(resolveCall), + #[allow(missing_docs)] + resolvedAt(resolvedAtCall), + #[allow(missing_docs)] + rootClaim(rootClaimCall), + #[allow(missing_docs)] + startingBlockNumber(startingBlockNumberCall), + #[allow(missing_docs)] + startingOutputRoot(startingOutputRootCall), + #[allow(missing_docs)] + startingRootHash(startingRootHashCall), + #[allow(missing_docs)] + status(statusCall), + #[allow(missing_docs)] + teeProver(teeProverCall), + #[allow(missing_docs)] + verifyProposalProof(verifyProposalProofCall), + #[allow(missing_docs)] + version(versionCall), + #[allow(missing_docs)] + wasRespectedGameTypeWhenCreated(wasRespectedGameTypeWhenCreatedCall), + #[allow(missing_docs)] + zkProver(zkProverCall), + } + impl AggregateVerifierCalls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [1u8, 131u8, 253u8, 68u8], + [16u8, 251u8, 238u8, 40u8], + [19u8, 51u8, 219u8, 46u8], + [20u8, 5u8, 118u8, 47u8], + [25u8, 239u8, 254u8, 180u8], + [30u8, 229u8, 215u8, 200u8], + [31u8, 131u8, 117u8, 116u8], + [32u8, 13u8, 46u8, 210u8], + [35u8, 237u8, 178u8, 224u8], + [37u8, 14u8, 105u8, 189u8], + [37u8, 252u8, 42u8, 206u8], + [40u8, 16u8, 225u8, 214u8], + [40u8, 69u8, 229u8, 187u8], + [50u8, 74u8, 19u8, 201u8], + [53u8, 196u8, 55u8, 123u8], + [55u8, 177u8, 178u8, 41u8], + [63u8, 173u8, 163u8, 253u8], + [66u8, 36u8, 177u8, 231u8], + [66u8, 49u8, 97u8, 130u8], + [73u8, 237u8, 243u8, 90u8], + [78u8, 149u8, 235u8, 88u8], + [84u8, 253u8, 77u8, 80u8], + [87u8, 218u8, 149u8, 14u8], + [92u8, 12u8, 186u8, 51u8], + [96u8, 157u8, 51u8, 52u8], + [99u8, 97u8, 80u8, 109u8], + [100u8, 209u8, 33u8, 54u8], + [109u8, 200u8, 110u8, 129u8], + [112u8, 135u8, 42u8, 165u8], + [116u8, 248u8, 191u8, 50u8], + [120u8, 107u8, 132u8, 75u8], + [121u8, 72u8, 105u8, 10u8], + [122u8, 107u8, 201u8, 225u8], + [128u8, 243u8, 35u8, 167u8], + [130u8, 255u8, 83u8, 161u8], + [132u8, 23u8, 211u8, 194u8], + [151u8, 48u8, 22u8, 61u8], + [152u8, 64u8, 253u8, 132u8], + [153u8, 115u8, 94u8, 50u8], + [157u8, 237u8, 57u8, 82u8], + [173u8, 222u8, 204u8, 6u8], + [183u8, 77u8, 243u8, 90u8], + [185u8, 124u8, 184u8, 15u8], + [187u8, 220u8, 2u8, 219u8], + [188u8, 239u8, 59u8, 85u8], + [189u8, 179u8, 55u8, 209u8], + [194u8, 103u8, 131u8, 233u8], + [207u8, 9u8, 224u8, 208u8], + [207u8, 207u8, 152u8, 75u8], + [209u8, 238u8, 94u8, 75u8], + [210u8, 140u8, 176u8, 111u8], + [228u8, 31u8, 150u8, 173u8], + [250u8, 36u8, 247u8, 67u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(TEE_IMAGE_HASH), + ::core::stringify!(PROOF_THRESHOLD), + ::core::stringify!(claimCredit), + ::core::stringify!(ZK_IMAGE_HASH), + ::core::stringify!(resolvedAt), + ::core::stringify!(teeProver), + ::core::stringify!(TEE_VERIFIER), + ::core::stringify!(status), + ::core::stringify!(bondRecipient), + ::core::stringify!(wasRespectedGameTypeWhenCreated), + ::core::stringify!(startingRootHash), + ::core::stringify!(resolve), + ::core::stringify!(expectedResolution), + ::core::stringify!(counteredByIntermediateRootIndexPlusOne), + ::core::stringify!(BLOCK_INTERVAL), + ::core::stringify!(gameCreator), + ::core::stringify!(bondUnlocked), + ::core::stringify!(initializeWithInitData), + ::core::stringify!(intermediateOutputRoots), + ::core::stringify!(intermediateOutputRoot), + ::core::stringify!(BLOCKHASH_WINDOW), + ::core::stringify!(version), + ::core::stringify!(startingOutputRoot), + ::core::stringify!(anchorStateRegistry), + ::core::stringify!(extraData), + ::core::stringify!(l1Head), + ::core::stringify!(FAST_FINALIZATION_DELAY), + ::core::stringify!(INTERMEDIATE_BLOCK_INTERVAL), + ::core::stringify!(startingBlockNumber), + ::core::stringify!(zkProver), + ::core::stringify!(closeGame), + ::core::stringify!(parentIndex), + ::core::stringify!(bondClaimed), + ::core::stringify!(bondAmount), + ::core::stringify!(DISPUTE_GAME_FACTORY), + ::core::stringify!(L2_CHAIN_ID), + ::core::stringify!(EIP2935_WINDOW), + ::core::stringify!(EIP2935_CONTRACT), + ::core::stringify!(l2SequenceNumber), + ::core::stringify!(ZK_VERIFIER), + ::core::stringify!(proofCount), + ::core::stringify!(intermediateOutputRootsCount), + ::core::stringify!(nullify), + ::core::stringify!(gameType), + ::core::stringify!(rootClaim), + ::core::stringify!(gameOver), + ::core::stringify!(DELAYED_WETH), + ::core::stringify!(createdAt), + ::core::stringify!(verifyProposalProof), + ::core::stringify!(SLOW_FINALIZATION_DELAY), + ::core::stringify!(CONFIG_HASH), + ::core::stringify!(challenge), + ::core::stringify!(gameData), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for AggregateVerifierCalls { + const NAME: &'static str = "AggregateVerifierCalls"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 53usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::BLOCKHASH_WINDOW(_) => { + ::SELECTOR + } + Self::BLOCK_INTERVAL(_) => { + ::SELECTOR + } + Self::CONFIG_HASH(_) => { + ::SELECTOR + } + Self::DELAYED_WETH(_) => { + ::SELECTOR + } + Self::DISPUTE_GAME_FACTORY(_) => { + ::SELECTOR + } + Self::EIP2935_CONTRACT(_) => { + ::SELECTOR + } + Self::EIP2935_WINDOW(_) => { + ::SELECTOR + } + Self::FAST_FINALIZATION_DELAY(_) => { + ::SELECTOR + } + Self::INTERMEDIATE_BLOCK_INTERVAL(_) => { + ::SELECTOR + } + Self::L2_CHAIN_ID(_) => { + ::SELECTOR + } + Self::PROOF_THRESHOLD(_) => { + ::SELECTOR + } + Self::SLOW_FINALIZATION_DELAY(_) => { + ::SELECTOR + } + Self::TEE_IMAGE_HASH(_) => { + ::SELECTOR + } + Self::TEE_VERIFIER(_) => { + ::SELECTOR + } + Self::ZK_IMAGE_HASH(_) => { + ::SELECTOR + } + Self::ZK_VERIFIER(_) => { + ::SELECTOR + } + Self::anchorStateRegistry(_) => { + ::SELECTOR + } + Self::bondAmount(_) => { + ::SELECTOR + } + Self::bondClaimed(_) => { + ::SELECTOR + } + Self::bondRecipient(_) => { + ::SELECTOR + } + Self::bondUnlocked(_) => { + ::SELECTOR + } + Self::challenge(_) => { + ::SELECTOR + } + Self::claimCredit(_) => { + ::SELECTOR + } + Self::closeGame(_) => { + ::SELECTOR + } + Self::counteredByIntermediateRootIndexPlusOne(_) => { + ::SELECTOR + } + Self::createdAt(_) => { + ::SELECTOR + } + Self::expectedResolution(_) => { + ::SELECTOR + } + Self::extraData(_) => { + ::SELECTOR + } + Self::gameCreator(_) => { + ::SELECTOR + } + Self::gameData(_) => ::SELECTOR, + Self::gameOver(_) => ::SELECTOR, + Self::gameType(_) => ::SELECTOR, + Self::initializeWithInitData(_) => { + ::SELECTOR + } + Self::intermediateOutputRoot(_) => { + ::SELECTOR + } + Self::intermediateOutputRoots(_) => { + ::SELECTOR + } + Self::intermediateOutputRootsCount(_) => { + ::SELECTOR + } + Self::l1Head(_) => ::SELECTOR, + Self::l2SequenceNumber(_) => { + ::SELECTOR + } + Self::nullify(_) => ::SELECTOR, + Self::parentIndex(_) => { + ::SELECTOR + } + Self::proofCount(_) => { + ::SELECTOR + } + Self::resolve(_) => ::SELECTOR, + Self::resolvedAt(_) => { + ::SELECTOR + } + Self::rootClaim(_) => { + ::SELECTOR + } + Self::startingBlockNumber(_) => { + ::SELECTOR + } + Self::startingOutputRoot(_) => { + ::SELECTOR + } + Self::startingRootHash(_) => { + ::SELECTOR + } + Self::status(_) => ::SELECTOR, + Self::teeProver(_) => { + ::SELECTOR + } + Self::verifyProposalProof(_) => { + ::SELECTOR + } + Self::version(_) => ::SELECTOR, + Self::wasRespectedGameTypeWhenCreated(_) => { + ::SELECTOR + } + Self::zkProver(_) => ::SELECTOR, + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn TEE_IMAGE_HASH( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(AggregateVerifierCalls::TEE_IMAGE_HASH) + } + TEE_IMAGE_HASH + }, + { + fn PROOF_THRESHOLD( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(AggregateVerifierCalls::PROOF_THRESHOLD) + } + PROOF_THRESHOLD + }, + { + fn claimCredit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(AggregateVerifierCalls::claimCredit) + } + claimCredit + }, + { + fn ZK_IMAGE_HASH( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(AggregateVerifierCalls::ZK_IMAGE_HASH) + } + ZK_IMAGE_HASH + }, + { + fn resolvedAt( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(AggregateVerifierCalls::resolvedAt) + } + resolvedAt + }, + { + fn teeProver( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(AggregateVerifierCalls::teeProver) + } + teeProver + }, + { + fn TEE_VERIFIER( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(AggregateVerifierCalls::TEE_VERIFIER) + } + TEE_VERIFIER + }, + { + fn status( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(AggregateVerifierCalls::status) + } + status + }, + { + fn bondRecipient( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(AggregateVerifierCalls::bondRecipient) + } + bondRecipient + }, + { + fn wasRespectedGameTypeWhenCreated( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(AggregateVerifierCalls::wasRespectedGameTypeWhenCreated) + } + wasRespectedGameTypeWhenCreated + }, + { + fn startingRootHash( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(AggregateVerifierCalls::startingRootHash) + } + startingRootHash + }, + { + fn resolve( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(AggregateVerifierCalls::resolve) + } + resolve + }, + { + fn expectedResolution( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(AggregateVerifierCalls::expectedResolution) + } + expectedResolution + }, + { + fn counteredByIntermediateRootIndexPlusOne( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + AggregateVerifierCalls::counteredByIntermediateRootIndexPlusOne, + ) + } + counteredByIntermediateRootIndexPlusOne + }, + { + fn BLOCK_INTERVAL( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(AggregateVerifierCalls::BLOCK_INTERVAL) + } + BLOCK_INTERVAL + }, + { + fn gameCreator( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(AggregateVerifierCalls::gameCreator) + } + gameCreator + }, + { + fn bondUnlocked( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(AggregateVerifierCalls::bondUnlocked) + } + bondUnlocked + }, + { + fn initializeWithInitData( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(AggregateVerifierCalls::initializeWithInitData) + } + initializeWithInitData + }, + { + fn intermediateOutputRoots( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(AggregateVerifierCalls::intermediateOutputRoots) + } + intermediateOutputRoots + }, + { + fn intermediateOutputRoot( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(AggregateVerifierCalls::intermediateOutputRoot) + } + intermediateOutputRoot + }, + { + fn BLOCKHASH_WINDOW( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(AggregateVerifierCalls::BLOCKHASH_WINDOW) + } + BLOCKHASH_WINDOW + }, + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(AggregateVerifierCalls::version) + } + version + }, + { + fn startingOutputRoot( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(AggregateVerifierCalls::startingOutputRoot) + } + startingOutputRoot + }, + { + fn anchorStateRegistry( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(AggregateVerifierCalls::anchorStateRegistry) + } + anchorStateRegistry + }, + { + fn extraData( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(AggregateVerifierCalls::extraData) + } + extraData + }, + { + fn l1Head( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(AggregateVerifierCalls::l1Head) + } + l1Head + }, + { + fn FAST_FINALIZATION_DELAY( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(AggregateVerifierCalls::FAST_FINALIZATION_DELAY) + } + FAST_FINALIZATION_DELAY + }, + { + fn INTERMEDIATE_BLOCK_INTERVAL( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(AggregateVerifierCalls::INTERMEDIATE_BLOCK_INTERVAL) + } + INTERMEDIATE_BLOCK_INTERVAL + }, + { + fn startingBlockNumber( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(AggregateVerifierCalls::startingBlockNumber) + } + startingBlockNumber + }, + { + fn zkProver( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(AggregateVerifierCalls::zkProver) + } + zkProver + }, + { + fn closeGame( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(AggregateVerifierCalls::closeGame) + } + closeGame + }, + { + fn parentIndex( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(AggregateVerifierCalls::parentIndex) + } + parentIndex + }, + { + fn bondClaimed( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(AggregateVerifierCalls::bondClaimed) + } + bondClaimed + }, + { + fn bondAmount( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(AggregateVerifierCalls::bondAmount) + } + bondAmount + }, + { + fn DISPUTE_GAME_FACTORY( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(AggregateVerifierCalls::DISPUTE_GAME_FACTORY) + } + DISPUTE_GAME_FACTORY + }, + { + fn L2_CHAIN_ID( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(AggregateVerifierCalls::L2_CHAIN_ID) + } + L2_CHAIN_ID + }, + { + fn EIP2935_WINDOW( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(AggregateVerifierCalls::EIP2935_WINDOW) + } + EIP2935_WINDOW + }, + { + fn EIP2935_CONTRACT( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(AggregateVerifierCalls::EIP2935_CONTRACT) + } + EIP2935_CONTRACT + }, + { + fn l2SequenceNumber( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(AggregateVerifierCalls::l2SequenceNumber) + } + l2SequenceNumber + }, + { + fn ZK_VERIFIER( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(AggregateVerifierCalls::ZK_VERIFIER) + } + ZK_VERIFIER + }, + { + fn proofCount( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(AggregateVerifierCalls::proofCount) + } + proofCount + }, + { + fn intermediateOutputRootsCount( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(AggregateVerifierCalls::intermediateOutputRootsCount) + } + intermediateOutputRootsCount + }, + { + fn nullify( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(AggregateVerifierCalls::nullify) + } + nullify + }, + { + fn gameType( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(AggregateVerifierCalls::gameType) + } + gameType + }, + { + fn rootClaim( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(AggregateVerifierCalls::rootClaim) + } + rootClaim + }, + { + fn gameOver( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(AggregateVerifierCalls::gameOver) + } + gameOver + }, + { + fn DELAYED_WETH( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(AggregateVerifierCalls::DELAYED_WETH) + } + DELAYED_WETH + }, + { + fn createdAt( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(AggregateVerifierCalls::createdAt) + } + createdAt + }, + { + fn verifyProposalProof( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(AggregateVerifierCalls::verifyProposalProof) + } + verifyProposalProof + }, + { + fn SLOW_FINALIZATION_DELAY( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(AggregateVerifierCalls::SLOW_FINALIZATION_DELAY) + } + SLOW_FINALIZATION_DELAY + }, + { + fn CONFIG_HASH( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(AggregateVerifierCalls::CONFIG_HASH) + } + CONFIG_HASH + }, + { + fn challenge( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(AggregateVerifierCalls::challenge) + } + challenge + }, + { + fn gameData( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(AggregateVerifierCalls::gameData) + } + gameData + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn TEE_IMAGE_HASH( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AggregateVerifierCalls::TEE_IMAGE_HASH) + } + TEE_IMAGE_HASH + }, + { + fn PROOF_THRESHOLD( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AggregateVerifierCalls::PROOF_THRESHOLD) + } + PROOF_THRESHOLD + }, + { + fn claimCredit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AggregateVerifierCalls::claimCredit) + } + claimCredit + }, + { + fn ZK_IMAGE_HASH( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AggregateVerifierCalls::ZK_IMAGE_HASH) + } + ZK_IMAGE_HASH + }, + { + fn resolvedAt( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AggregateVerifierCalls::resolvedAt) + } + resolvedAt + }, + { + fn teeProver( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AggregateVerifierCalls::teeProver) + } + teeProver + }, + { + fn TEE_VERIFIER( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AggregateVerifierCalls::TEE_VERIFIER) + } + TEE_VERIFIER + }, + { + fn status( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AggregateVerifierCalls::status) + } + status + }, + { + fn bondRecipient( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AggregateVerifierCalls::bondRecipient) + } + bondRecipient + }, + { + fn wasRespectedGameTypeWhenCreated( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AggregateVerifierCalls::wasRespectedGameTypeWhenCreated) + } + wasRespectedGameTypeWhenCreated + }, + { + fn startingRootHash( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AggregateVerifierCalls::startingRootHash) + } + startingRootHash + }, + { + fn resolve( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AggregateVerifierCalls::resolve) + } + resolve + }, + { + fn expectedResolution( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AggregateVerifierCalls::expectedResolution) + } + expectedResolution + }, + { + fn counteredByIntermediateRootIndexPlusOne( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + AggregateVerifierCalls::counteredByIntermediateRootIndexPlusOne, + ) + } + counteredByIntermediateRootIndexPlusOne + }, + { + fn BLOCK_INTERVAL( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AggregateVerifierCalls::BLOCK_INTERVAL) + } + BLOCK_INTERVAL + }, + { + fn gameCreator( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AggregateVerifierCalls::gameCreator) + } + gameCreator + }, + { + fn bondUnlocked( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AggregateVerifierCalls::bondUnlocked) + } + bondUnlocked + }, + { + fn initializeWithInitData( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AggregateVerifierCalls::initializeWithInitData) + } + initializeWithInitData + }, + { + fn intermediateOutputRoots( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AggregateVerifierCalls::intermediateOutputRoots) + } + intermediateOutputRoots + }, + { + fn intermediateOutputRoot( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AggregateVerifierCalls::intermediateOutputRoot) + } + intermediateOutputRoot + }, + { + fn BLOCKHASH_WINDOW( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AggregateVerifierCalls::BLOCKHASH_WINDOW) + } + BLOCKHASH_WINDOW + }, + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AggregateVerifierCalls::version) + } + version + }, + { + fn startingOutputRoot( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AggregateVerifierCalls::startingOutputRoot) + } + startingOutputRoot + }, + { + fn anchorStateRegistry( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AggregateVerifierCalls::anchorStateRegistry) + } + anchorStateRegistry + }, + { + fn extraData( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AggregateVerifierCalls::extraData) + } + extraData + }, + { + fn l1Head( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AggregateVerifierCalls::l1Head) + } + l1Head + }, + { + fn FAST_FINALIZATION_DELAY( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AggregateVerifierCalls::FAST_FINALIZATION_DELAY) + } + FAST_FINALIZATION_DELAY + }, + { + fn INTERMEDIATE_BLOCK_INTERVAL( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AggregateVerifierCalls::INTERMEDIATE_BLOCK_INTERVAL) + } + INTERMEDIATE_BLOCK_INTERVAL + }, + { + fn startingBlockNumber( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AggregateVerifierCalls::startingBlockNumber) + } + startingBlockNumber + }, + { + fn zkProver( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AggregateVerifierCalls::zkProver) + } + zkProver + }, + { + fn closeGame( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AggregateVerifierCalls::closeGame) + } + closeGame + }, + { + fn parentIndex( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AggregateVerifierCalls::parentIndex) + } + parentIndex + }, + { + fn bondClaimed( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AggregateVerifierCalls::bondClaimed) + } + bondClaimed + }, + { + fn bondAmount( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AggregateVerifierCalls::bondAmount) + } + bondAmount + }, + { + fn DISPUTE_GAME_FACTORY( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AggregateVerifierCalls::DISPUTE_GAME_FACTORY) + } + DISPUTE_GAME_FACTORY + }, + { + fn L2_CHAIN_ID( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AggregateVerifierCalls::L2_CHAIN_ID) + } + L2_CHAIN_ID + }, + { + fn EIP2935_WINDOW( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AggregateVerifierCalls::EIP2935_WINDOW) + } + EIP2935_WINDOW + }, + { + fn EIP2935_CONTRACT( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AggregateVerifierCalls::EIP2935_CONTRACT) + } + EIP2935_CONTRACT + }, + { + fn l2SequenceNumber( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AggregateVerifierCalls::l2SequenceNumber) + } + l2SequenceNumber + }, + { + fn ZK_VERIFIER( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AggregateVerifierCalls::ZK_VERIFIER) + } + ZK_VERIFIER + }, + { + fn proofCount( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AggregateVerifierCalls::proofCount) + } + proofCount + }, + { + fn intermediateOutputRootsCount( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AggregateVerifierCalls::intermediateOutputRootsCount) + } + intermediateOutputRootsCount + }, + { + fn nullify( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AggregateVerifierCalls::nullify) + } + nullify + }, + { + fn gameType( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AggregateVerifierCalls::gameType) + } + gameType + }, + { + fn rootClaim( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AggregateVerifierCalls::rootClaim) + } + rootClaim + }, + { + fn gameOver( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AggregateVerifierCalls::gameOver) + } + gameOver + }, + { + fn DELAYED_WETH( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AggregateVerifierCalls::DELAYED_WETH) + } + DELAYED_WETH + }, + { + fn createdAt( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AggregateVerifierCalls::createdAt) + } + createdAt + }, + { + fn verifyProposalProof( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AggregateVerifierCalls::verifyProposalProof) + } + verifyProposalProof + }, + { + fn SLOW_FINALIZATION_DELAY( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AggregateVerifierCalls::SLOW_FINALIZATION_DELAY) + } + SLOW_FINALIZATION_DELAY + }, + { + fn CONFIG_HASH( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AggregateVerifierCalls::CONFIG_HASH) + } + CONFIG_HASH + }, + { + fn challenge( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AggregateVerifierCalls::challenge) + } + challenge + }, + { + fn gameData( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AggregateVerifierCalls::gameData) + } + gameData + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::BLOCKHASH_WINDOW(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::BLOCK_INTERVAL(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::CONFIG_HASH(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::DELAYED_WETH(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::DISPUTE_GAME_FACTORY(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::EIP2935_CONTRACT(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::EIP2935_WINDOW(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::FAST_FINALIZATION_DELAY(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::INTERMEDIATE_BLOCK_INTERVAL(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::L2_CHAIN_ID(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::PROOF_THRESHOLD(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::SLOW_FINALIZATION_DELAY(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::TEE_IMAGE_HASH(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::TEE_VERIFIER(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ZK_IMAGE_HASH(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ZK_VERIFIER(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::anchorStateRegistry(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::bondAmount(inner) => { + ::abi_encoded_size(inner) + } + Self::bondClaimed(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::bondRecipient(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::bondUnlocked(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::challenge(inner) => { + ::abi_encoded_size(inner) + } + Self::claimCredit(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::closeGame(inner) => { + ::abi_encoded_size(inner) + } + Self::counteredByIntermediateRootIndexPlusOne(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::createdAt(inner) => { + ::abi_encoded_size(inner) + } + Self::expectedResolution(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::extraData(inner) => { + ::abi_encoded_size(inner) + } + Self::gameCreator(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::gameData(inner) => { + ::abi_encoded_size(inner) + } + Self::gameOver(inner) => { + ::abi_encoded_size(inner) + } + Self::gameType(inner) => { + ::abi_encoded_size(inner) + } + Self::initializeWithInitData(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::intermediateOutputRoot(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::intermediateOutputRoots(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::intermediateOutputRootsCount(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::l1Head(inner) => { + ::abi_encoded_size(inner) + } + Self::l2SequenceNumber(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::nullify(inner) => { + ::abi_encoded_size(inner) + } + Self::parentIndex(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::proofCount(inner) => { + ::abi_encoded_size(inner) + } + Self::resolve(inner) => { + ::abi_encoded_size(inner) + } + Self::resolvedAt(inner) => { + ::abi_encoded_size(inner) + } + Self::rootClaim(inner) => { + ::abi_encoded_size(inner) + } + Self::startingBlockNumber(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::startingOutputRoot(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::startingRootHash(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::status(inner) => { + ::abi_encoded_size(inner) + } + Self::teeProver(inner) => { + ::abi_encoded_size(inner) + } + Self::verifyProposalProof(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::version(inner) => { + ::abi_encoded_size(inner) + } + Self::wasRespectedGameTypeWhenCreated(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::zkProver(inner) => { + ::abi_encoded_size(inner) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::BLOCKHASH_WINDOW(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::BLOCK_INTERVAL(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::CONFIG_HASH(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::DELAYED_WETH(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::DISPUTE_GAME_FACTORY(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::EIP2935_CONTRACT(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::EIP2935_WINDOW(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::FAST_FINALIZATION_DELAY(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::INTERMEDIATE_BLOCK_INTERVAL(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::L2_CHAIN_ID(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::PROOF_THRESHOLD(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::SLOW_FINALIZATION_DELAY(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::TEE_IMAGE_HASH(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::TEE_VERIFIER(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ZK_IMAGE_HASH(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ZK_VERIFIER(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::anchorStateRegistry(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::bondAmount(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::bondClaimed(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::bondRecipient(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::bondUnlocked(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::challenge(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::claimCredit(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::closeGame(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::counteredByIntermediateRootIndexPlusOne(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::createdAt(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::expectedResolution(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::extraData(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::gameCreator(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::gameData(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::gameOver(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::gameType(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::initializeWithInitData(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::intermediateOutputRoot(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::intermediateOutputRoots(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::intermediateOutputRootsCount(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::l1Head(inner) => { + ::abi_encode_raw(inner, out) + } + Self::l2SequenceNumber(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::nullify(inner) => { + ::abi_encode_raw(inner, out) + } + Self::parentIndex(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::proofCount(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::resolve(inner) => { + ::abi_encode_raw(inner, out) + } + Self::resolvedAt(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::rootClaim(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::startingBlockNumber(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::startingOutputRoot(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::startingRootHash(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::status(inner) => { + ::abi_encode_raw(inner, out) + } + Self::teeProver(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::verifyProposalProof(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::version(inner) => { + ::abi_encode_raw(inner, out) + } + Self::wasRespectedGameTypeWhenCreated(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::zkProver(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + } + } + } + ///Container for all the [`AggregateVerifier`](self) custom errors. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum AggregateVerifierErrors { + #[allow(missing_docs)] + AlreadyInitialized(AlreadyInitialized), + #[allow(missing_docs)] + AlreadyProven(AlreadyProven), + #[allow(missing_docs)] + BondTransferFailed(BondTransferFailed), + #[allow(missing_docs)] + ClaimAlreadyResolved(ClaimAlreadyResolved), + #[allow(missing_docs)] + GameNotFinalized(GameNotFinalized), + #[allow(missing_docs)] + GameNotInProgress(GameNotInProgress), + #[allow(missing_docs)] + GameNotOver(GameNotOver), + #[allow(missing_docs)] + GameNotResolved(GameNotResolved), + #[allow(missing_docs)] + GameOver(GameOver), + #[allow(missing_docs)] + GamePaused(GamePaused), + #[allow(missing_docs)] + IntermediateRootMismatch(IntermediateRootMismatch), + #[allow(missing_docs)] + IntermediateRootSameAsProposed(IntermediateRootSameAsProposed), + #[allow(missing_docs)] + InvalidBlockInterval(InvalidBlockInterval), + #[allow(missing_docs)] + InvalidGame(InvalidGame), + #[allow(missing_docs)] + InvalidIntermediateRootIndex(InvalidIntermediateRootIndex), + #[allow(missing_docs)] + InvalidParentGame(InvalidParentGame), + #[allow(missing_docs)] + InvalidProof(InvalidProof), + #[allow(missing_docs)] + InvalidProofThreshold(InvalidProofThreshold), + #[allow(missing_docs)] + InvalidProofType(InvalidProofType), + #[allow(missing_docs)] + L1OriginHashMismatch(L1OriginHashMismatch), + #[allow(missing_docs)] + L1OriginInFuture(L1OriginInFuture), + #[allow(missing_docs)] + L1OriginTooOld(L1OriginTooOld), + #[allow(missing_docs)] + MissingProof(MissingProof), + #[allow(missing_docs)] + NoCreditToClaim(NoCreditToClaim), + #[allow(missing_docs)] + NotEnoughProofs(NotEnoughProofs), + #[allow(missing_docs)] + ParentGameNotResolved(ParentGameNotResolved), + #[allow(missing_docs)] + Reentrancy(Reentrancy), + #[allow(missing_docs)] + UnexpectedBlockNumber(UnexpectedBlockNumber), + } + impl AggregateVerifierErrors { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [4u8, 100u8, 60u8, 57u8], + [8u8, 123u8, 45u8, 118u8], + [9u8, 189u8, 227u8, 57u8], + [13u8, 193u8, 73u8, 240u8], + [15u8, 11u8, 143u8, 129u8], + [23u8, 191u8, 229u8, 247u8], + [37u8, 130u8, 45u8, 56u8], + [37u8, 191u8, 176u8, 164u8], + [52u8, 77u8, 228u8, 191u8], + [52u8, 97u8, 25u8, 247u8], + [55u8, 154u8, 126u8, 217u8], + [72u8, 81u8, 189u8, 155u8], + [87u8, 226u8, 90u8, 9u8], + [103u8, 254u8, 25u8, 80u8], + [105u8, 237u8, 112u8, 171u8], + [113u8, 65u8, 41u8, 122u8], + [128u8, 177u8, 174u8, 81u8], + [131u8, 230u8, 204u8, 107u8], + [140u8, 87u8, 10u8, 114u8], + [146u8, 197u8, 6u8, 174u8], + [166u8, 198u8, 97u8, 253u8], + [171u8, 20u8, 60u8, 6u8], + [177u8, 1u8, 110u8, 167u8], + [187u8, 202u8, 250u8, 230u8], + [193u8, 5u8, 38u8, 10u8], + [223u8, 70u8, 156u8, 203u8], + [241u8, 169u8, 69u8, 129u8], + [243u8, 63u8, 166u8, 207u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(GameNotOver), + ::core::stringify!(UnexpectedBlockNumber), + ::core::stringify!(InvalidProof), + ::core::stringify!(AlreadyInitialized), + ::core::stringify!(L1OriginTooOld), + ::core::stringify!(NoCreditToClaim), + ::core::stringify!(MissingProof), + ::core::stringify!(L1OriginInFuture), + ::core::stringify!(NotEnoughProofs), + ::core::stringify!(InvalidParentGame), + ::core::stringify!(GamePaused), + ::core::stringify!(GameNotFinalized), + ::core::stringify!(InvalidGame), + ::core::stringify!(GameNotInProgress), + ::core::stringify!(InvalidProofType), + ::core::stringify!(AlreadyProven), + ::core::stringify!(L1OriginHashMismatch), + ::core::stringify!(BondTransferFailed), + ::core::stringify!(InvalidBlockInterval), + ::core::stringify!(ParentGameNotResolved), + ::core::stringify!(InvalidIntermediateRootIndex), + ::core::stringify!(Reentrancy), + ::core::stringify!(InvalidProofThreshold), + ::core::stringify!(IntermediateRootSameAsProposed), + ::core::stringify!(GameNotResolved), + ::core::stringify!(GameOver), + ::core::stringify!(ClaimAlreadyResolved), + ::core::stringify!(IntermediateRootMismatch), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for AggregateVerifierErrors { + const NAME: &'static str = "AggregateVerifierErrors"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 28usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::AlreadyInitialized(_) => { + ::SELECTOR + } + Self::AlreadyProven(_) => { + ::SELECTOR + } + Self::BondTransferFailed(_) => { + ::SELECTOR + } + Self::ClaimAlreadyResolved(_) => { + ::SELECTOR + } + Self::GameNotFinalized(_) => { + ::SELECTOR + } + Self::GameNotInProgress(_) => { + ::SELECTOR + } + Self::GameNotOver(_) => { + ::SELECTOR + } + Self::GameNotResolved(_) => { + ::SELECTOR + } + Self::GameOver(_) => ::SELECTOR, + Self::GamePaused(_) => { + ::SELECTOR + } + Self::IntermediateRootMismatch(_) => { + ::SELECTOR + } + Self::IntermediateRootSameAsProposed(_) => { + ::SELECTOR + } + Self::InvalidBlockInterval(_) => { + ::SELECTOR + } + Self::InvalidGame(_) => { + ::SELECTOR + } + Self::InvalidIntermediateRootIndex(_) => { + ::SELECTOR + } + Self::InvalidParentGame(_) => { + ::SELECTOR + } + Self::InvalidProof(_) => { + ::SELECTOR + } + Self::InvalidProofThreshold(_) => { + ::SELECTOR + } + Self::InvalidProofType(_) => { + ::SELECTOR + } + Self::L1OriginHashMismatch(_) => { + ::SELECTOR + } + Self::L1OriginInFuture(_) => { + ::SELECTOR + } + Self::L1OriginTooOld(_) => { + ::SELECTOR + } + Self::MissingProof(_) => { + ::SELECTOR + } + Self::NoCreditToClaim(_) => { + ::SELECTOR + } + Self::NotEnoughProofs(_) => { + ::SELECTOR + } + Self::ParentGameNotResolved(_) => { + ::SELECTOR + } + Self::Reentrancy(_) => { + ::SELECTOR + } + Self::UnexpectedBlockNumber(_) => { + ::SELECTOR + } + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn GameNotOver( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(AggregateVerifierErrors::GameNotOver) + } + GameNotOver + }, + { + fn UnexpectedBlockNumber( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(AggregateVerifierErrors::UnexpectedBlockNumber) + } + UnexpectedBlockNumber + }, + { + fn InvalidProof( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(AggregateVerifierErrors::InvalidProof) + } + InvalidProof + }, + { + fn AlreadyInitialized( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(AggregateVerifierErrors::AlreadyInitialized) + } + AlreadyInitialized + }, + { + fn L1OriginTooOld( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(AggregateVerifierErrors::L1OriginTooOld) + } + L1OriginTooOld + }, + { + fn NoCreditToClaim( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(AggregateVerifierErrors::NoCreditToClaim) + } + NoCreditToClaim + }, + { + fn MissingProof( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(AggregateVerifierErrors::MissingProof) + } + MissingProof + }, + { + fn L1OriginInFuture( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(AggregateVerifierErrors::L1OriginInFuture) + } + L1OriginInFuture + }, + { + fn NotEnoughProofs( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(AggregateVerifierErrors::NotEnoughProofs) + } + NotEnoughProofs + }, + { + fn InvalidParentGame( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(AggregateVerifierErrors::InvalidParentGame) + } + InvalidParentGame + }, + { + fn GamePaused( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(AggregateVerifierErrors::GamePaused) + } + GamePaused + }, + { + fn GameNotFinalized( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(AggregateVerifierErrors::GameNotFinalized) + } + GameNotFinalized + }, + { + fn InvalidGame( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(AggregateVerifierErrors::InvalidGame) + } + InvalidGame + }, + { + fn GameNotInProgress( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(AggregateVerifierErrors::GameNotInProgress) + } + GameNotInProgress + }, + { + fn InvalidProofType( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(AggregateVerifierErrors::InvalidProofType) + } + InvalidProofType + }, + { + fn AlreadyProven( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(AggregateVerifierErrors::AlreadyProven) + } + AlreadyProven + }, + { + fn L1OriginHashMismatch( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(AggregateVerifierErrors::L1OriginHashMismatch) + } + L1OriginHashMismatch + }, + { + fn BondTransferFailed( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(AggregateVerifierErrors::BondTransferFailed) + } + BondTransferFailed + }, + { + fn InvalidBlockInterval( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(AggregateVerifierErrors::InvalidBlockInterval) + } + InvalidBlockInterval + }, + { + fn ParentGameNotResolved( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(AggregateVerifierErrors::ParentGameNotResolved) + } + ParentGameNotResolved + }, + { + fn InvalidIntermediateRootIndex( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(AggregateVerifierErrors::InvalidIntermediateRootIndex) + } + InvalidIntermediateRootIndex + }, + { + fn Reentrancy( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(AggregateVerifierErrors::Reentrancy) + } + Reentrancy + }, + { + fn InvalidProofThreshold( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(AggregateVerifierErrors::InvalidProofThreshold) + } + InvalidProofThreshold + }, + { + fn IntermediateRootSameAsProposed( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(AggregateVerifierErrors::IntermediateRootSameAsProposed) + } + IntermediateRootSameAsProposed + }, + { + fn GameNotResolved( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(AggregateVerifierErrors::GameNotResolved) + } + GameNotResolved + }, + { + fn GameOver( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(AggregateVerifierErrors::GameOver) + } + GameOver + }, + { + fn ClaimAlreadyResolved( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(AggregateVerifierErrors::ClaimAlreadyResolved) + } + ClaimAlreadyResolved + }, + { + fn IntermediateRootMismatch( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(AggregateVerifierErrors::IntermediateRootMismatch) + } + IntermediateRootMismatch + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn GameNotOver( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AggregateVerifierErrors::GameNotOver) + } + GameNotOver + }, + { + fn UnexpectedBlockNumber( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AggregateVerifierErrors::UnexpectedBlockNumber) + } + UnexpectedBlockNumber + }, + { + fn InvalidProof( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AggregateVerifierErrors::InvalidProof) + } + InvalidProof + }, + { + fn AlreadyInitialized( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AggregateVerifierErrors::AlreadyInitialized) + } + AlreadyInitialized + }, + { + fn L1OriginTooOld( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AggregateVerifierErrors::L1OriginTooOld) + } + L1OriginTooOld + }, + { + fn NoCreditToClaim( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AggregateVerifierErrors::NoCreditToClaim) + } + NoCreditToClaim + }, + { + fn MissingProof( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AggregateVerifierErrors::MissingProof) + } + MissingProof + }, + { + fn L1OriginInFuture( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AggregateVerifierErrors::L1OriginInFuture) + } + L1OriginInFuture + }, + { + fn NotEnoughProofs( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AggregateVerifierErrors::NotEnoughProofs) + } + NotEnoughProofs + }, + { + fn InvalidParentGame( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AggregateVerifierErrors::InvalidParentGame) + } + InvalidParentGame + }, + { + fn GamePaused( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AggregateVerifierErrors::GamePaused) + } + GamePaused + }, + { + fn GameNotFinalized( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AggregateVerifierErrors::GameNotFinalized) + } + GameNotFinalized + }, + { + fn InvalidGame( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AggregateVerifierErrors::InvalidGame) + } + InvalidGame + }, + { + fn GameNotInProgress( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AggregateVerifierErrors::GameNotInProgress) + } + GameNotInProgress + }, + { + fn InvalidProofType( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AggregateVerifierErrors::InvalidProofType) + } + InvalidProofType + }, + { + fn AlreadyProven( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AggregateVerifierErrors::AlreadyProven) + } + AlreadyProven + }, + { + fn L1OriginHashMismatch( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AggregateVerifierErrors::L1OriginHashMismatch) + } + L1OriginHashMismatch + }, + { + fn BondTransferFailed( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AggregateVerifierErrors::BondTransferFailed) + } + BondTransferFailed + }, + { + fn InvalidBlockInterval( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AggregateVerifierErrors::InvalidBlockInterval) + } + InvalidBlockInterval + }, + { + fn ParentGameNotResolved( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AggregateVerifierErrors::ParentGameNotResolved) + } + ParentGameNotResolved + }, + { + fn InvalidIntermediateRootIndex( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AggregateVerifierErrors::InvalidIntermediateRootIndex) + } + InvalidIntermediateRootIndex + }, + { + fn Reentrancy( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AggregateVerifierErrors::Reentrancy) + } + Reentrancy + }, + { + fn InvalidProofThreshold( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AggregateVerifierErrors::InvalidProofThreshold) + } + InvalidProofThreshold + }, + { + fn IntermediateRootSameAsProposed( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AggregateVerifierErrors::IntermediateRootSameAsProposed) + } + IntermediateRootSameAsProposed + }, + { + fn GameNotResolved( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AggregateVerifierErrors::GameNotResolved) + } + GameNotResolved + }, + { + fn GameOver( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AggregateVerifierErrors::GameOver) + } + GameOver + }, + { + fn ClaimAlreadyResolved( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AggregateVerifierErrors::ClaimAlreadyResolved) + } + ClaimAlreadyResolved + }, + { + fn IntermediateRootMismatch( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AggregateVerifierErrors::IntermediateRootMismatch) + } + IntermediateRootMismatch + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::AlreadyInitialized(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::AlreadyProven(inner) => { + ::abi_encoded_size(inner) + } + Self::BondTransferFailed(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ClaimAlreadyResolved(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::GameNotFinalized(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::GameNotInProgress(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::GameNotOver(inner) => { + ::abi_encoded_size(inner) + } + Self::GameNotResolved(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::GameOver(inner) => { + ::abi_encoded_size(inner) + } + Self::GamePaused(inner) => { + ::abi_encoded_size(inner) + } + Self::IntermediateRootMismatch(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::IntermediateRootSameAsProposed(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::InvalidBlockInterval(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::InvalidGame(inner) => { + ::abi_encoded_size(inner) + } + Self::InvalidIntermediateRootIndex(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::InvalidParentGame(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::InvalidProof(inner) => { + ::abi_encoded_size(inner) + } + Self::InvalidProofThreshold(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::InvalidProofType(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::L1OriginHashMismatch(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::L1OriginInFuture(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::L1OriginTooOld(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::MissingProof(inner) => { + ::abi_encoded_size(inner) + } + Self::NoCreditToClaim(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::NotEnoughProofs(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ParentGameNotResolved(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::Reentrancy(inner) => { + ::abi_encoded_size(inner) + } + Self::UnexpectedBlockNumber(inner) => { + ::abi_encoded_size( + inner, + ) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::AlreadyInitialized(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::AlreadyProven(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::BondTransferFailed(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ClaimAlreadyResolved(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::GameNotFinalized(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::GameNotInProgress(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::GameNotOver(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::GameNotResolved(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::GameOver(inner) => { + ::abi_encode_raw(inner, out) + } + Self::GamePaused(inner) => { + ::abi_encode_raw(inner, out) + } + Self::IntermediateRootMismatch(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::IntermediateRootSameAsProposed(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidBlockInterval(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidGame(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidIntermediateRootIndex(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidParentGame(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidProof(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidProofThreshold(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidProofType(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::L1OriginHashMismatch(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::L1OriginInFuture(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::L1OriginTooOld(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::MissingProof(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::NoCreditToClaim(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::NotEnoughProofs(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ParentGameNotResolved(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::Reentrancy(inner) => { + ::abi_encode_raw(inner, out) + } + Self::UnexpectedBlockNumber(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + } + } + } + ///Container for all the [`AggregateVerifier`](self) events. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum AggregateVerifierEvents { + #[allow(missing_docs)] + Challenged(Challenged), + #[allow(missing_docs)] + CreditClaimed(CreditClaimed), + #[allow(missing_docs)] + Nullified(Nullified), + #[allow(missing_docs)] + Proved(Proved), + #[allow(missing_docs)] + Resolved(Resolved), + } + impl AggregateVerifierEvents { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 32usize]] = &[ + [ + 90u8, 141u8, 157u8, 24u8, 30u8, 106u8, 89u8, 254u8, 84u8, 119u8, 165u8, + 7u8, 33u8, 64u8, 27u8, 99u8, 50u8, 168u8, 16u8, 185u8, 24u8, 62u8, 21u8, + 172u8, 98u8, 211u8, 134u8, 55u8, 154u8, 5u8, 167u8, 23u8, + ], + [ + 94u8, 24u8, 111u8, 9u8, 185u8, 201u8, 52u8, 145u8, 241u8, 78u8, 39u8, + 126u8, 234u8, 127u8, 170u8, 93u8, 230u8, 162u8, 212u8, 189u8, 167u8, + 90u8, 121u8, 175u8, 122u8, 54u8, 132u8, 251u8, 251u8, 66u8, 218u8, 96u8, + ], + [ + 98u8, 243u8, 147u8, 172u8, 251u8, 61u8, 52u8, 37u8, 17u8, 111u8, 233u8, + 190u8, 122u8, 101u8, 9u8, 164u8, 182u8, 82u8, 189u8, 165u8, 79u8, 218u8, + 194u8, 223u8, 43u8, 114u8, 115u8, 19u8, 94u8, 205u8, 88u8, 231u8, + ], + [ + 122u8, 24u8, 2u8, 50u8, 193u8, 159u8, 211u8, 140u8, 131u8, 228u8, 147u8, + 133u8, 106u8, 66u8, 104u8, 140u8, 71u8, 123u8, 174u8, 126u8, 130u8, 3u8, + 145u8, 3u8, 178u8, 193u8, 234u8, 106u8, 97u8, 98u8, 229u8, 41u8, + ], + [ + 135u8, 225u8, 44u8, 37u8, 101u8, 4u8, 39u8, 99u8, 218u8, 166u8, 191u8, + 88u8, 66u8, 237u8, 43u8, 100u8, 71u8, 241u8, 127u8, 126u8, 40u8, 249u8, + 164u8, 144u8, 95u8, 227u8, 149u8, 149u8, 129u8, 57u8, 110u8, 173u8, + ], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(Nullified), + ::core::stringify!(Resolved), + ::core::stringify!(Proved), + ::core::stringify!(Challenged), + ::core::stringify!(CreditClaimed), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolEventInterface for AggregateVerifierEvents { + const NAME: &'static str = "AggregateVerifierEvents"; + const COUNT: usize = 5usize; + fn decode_raw_log( + topics: &[alloy_sol_types::Word], + data: &[u8], + ) -> alloy_sol_types::Result { + match topics.first().copied() { + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::Challenged) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::CreditClaimed) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::Nullified) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log(topics, data) + .map(Self::Proved) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log(topics, data) + .map(Self::Resolved) + } + _ => { + alloy_sol_types::private::Err(alloy_sol_types::Error::InvalidLog { + name: ::NAME, + log: alloy_sol_types::private::Box::new( + alloy_sol_types::private::LogData::new_unchecked( + topics.to_vec(), + data.to_vec().into(), + ), + ), + }) + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for AggregateVerifierEvents { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + match self { + Self::Challenged(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::CreditClaimed(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::Nullified(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::Proved(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::Resolved(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + } + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + match self { + Self::Challenged(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::CreditClaimed(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::Nullified(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::Proved(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::Resolved(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`AggregateVerifier`](self) contract instance. + +See the [wrapper's documentation](`AggregateVerifierInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> AggregateVerifierInstance { + AggregateVerifierInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + gameType_: ::RustType, + anchorStateRegistry_: alloy::sol_types::private::Address, + delayedWETH: alloy::sol_types::private::Address, + teeVerifier: alloy::sol_types::private::Address, + zkVerifier: alloy::sol_types::private::Address, + teeImageHash: alloy::sol_types::private::FixedBytes<32>, + zkImageHash: alloy::sol_types::private::FixedBytes<32>, + configHash: alloy::sol_types::private::FixedBytes<32>, + l2ChainId: alloy::sol_types::private::primitives::aliases::U256, + blockInterval: alloy::sol_types::private::primitives::aliases::U256, + intermediateBlockInterval: alloy::sol_types::private::primitives::aliases::U256, + proofThreshold: alloy::sol_types::private::primitives::aliases::U256, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + AggregateVerifierInstance::< + P, + N, + >::deploy( + __provider, + gameType_, + anchorStateRegistry_, + delayedWETH, + teeVerifier, + zkVerifier, + teeImageHash, + zkImageHash, + configHash, + l2ChainId, + blockInterval, + intermediateBlockInterval, + proofThreshold, + ) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + gameType_: ::RustType, + anchorStateRegistry_: alloy::sol_types::private::Address, + delayedWETH: alloy::sol_types::private::Address, + teeVerifier: alloy::sol_types::private::Address, + zkVerifier: alloy::sol_types::private::Address, + teeImageHash: alloy::sol_types::private::FixedBytes<32>, + zkImageHash: alloy::sol_types::private::FixedBytes<32>, + configHash: alloy::sol_types::private::FixedBytes<32>, + l2ChainId: alloy::sol_types::private::primitives::aliases::U256, + blockInterval: alloy::sol_types::private::primitives::aliases::U256, + intermediateBlockInterval: alloy::sol_types::private::primitives::aliases::U256, + proofThreshold: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::RawCallBuilder { + AggregateVerifierInstance::< + P, + N, + >::deploy_builder( + __provider, + gameType_, + anchorStateRegistry_, + delayedWETH, + teeVerifier, + zkVerifier, + teeImageHash, + zkImageHash, + configHash, + l2ChainId, + blockInterval, + intermediateBlockInterval, + proofThreshold, + ) + } + /**A [`AggregateVerifier`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`AggregateVerifier`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct AggregateVerifierInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for AggregateVerifierInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("AggregateVerifierInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > AggregateVerifierInstance { + /**Creates a new wrapper around an on-chain [`AggregateVerifier`](self) contract instance. + +See the [wrapper's documentation](`AggregateVerifierInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + gameType_: ::RustType, + anchorStateRegistry_: alloy::sol_types::private::Address, + delayedWETH: alloy::sol_types::private::Address, + teeVerifier: alloy::sol_types::private::Address, + zkVerifier: alloy::sol_types::private::Address, + teeImageHash: alloy::sol_types::private::FixedBytes<32>, + zkImageHash: alloy::sol_types::private::FixedBytes<32>, + configHash: alloy::sol_types::private::FixedBytes<32>, + l2ChainId: alloy::sol_types::private::primitives::aliases::U256, + blockInterval: alloy::sol_types::private::primitives::aliases::U256, + intermediateBlockInterval: alloy::sol_types::private::primitives::aliases::U256, + proofThreshold: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder( + __provider, + gameType_, + anchorStateRegistry_, + delayedWETH, + teeVerifier, + zkVerifier, + teeImageHash, + zkImageHash, + configHash, + l2ChainId, + blockInterval, + intermediateBlockInterval, + proofThreshold, + ); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder( + __provider: P, + gameType_: ::RustType, + anchorStateRegistry_: alloy::sol_types::private::Address, + delayedWETH: alloy::sol_types::private::Address, + teeVerifier: alloy::sol_types::private::Address, + zkVerifier: alloy::sol_types::private::Address, + teeImageHash: alloy::sol_types::private::FixedBytes<32>, + zkImageHash: alloy::sol_types::private::FixedBytes<32>, + configHash: alloy::sol_types::private::FixedBytes<32>, + l2ChainId: alloy::sol_types::private::primitives::aliases::U256, + blockInterval: alloy::sol_types::private::primitives::aliases::U256, + intermediateBlockInterval: alloy::sol_types::private::primitives::aliases::U256, + proofThreshold: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + [ + &BYTECODE[..], + &alloy_sol_types::SolConstructor::abi_encode( + &constructorCall { + gameType_, + anchorStateRegistry_, + delayedWETH, + teeVerifier, + zkVerifier, + teeImageHash, + zkImageHash, + configHash, + l2ChainId, + blockInterval, + intermediateBlockInterval, + proofThreshold, + }, + )[..], + ] + .concat() + .into(), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl AggregateVerifierInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> AggregateVerifierInstance { + AggregateVerifierInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > AggregateVerifierInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`BLOCKHASH_WINDOW`] function. + pub fn BLOCKHASH_WINDOW( + &self, + ) -> alloy_contract::SolCallBuilder<&P, BLOCKHASH_WINDOWCall, N> { + self.call_builder(&BLOCKHASH_WINDOWCall) + } + ///Creates a new call builder for the [`BLOCK_INTERVAL`] function. + pub fn BLOCK_INTERVAL( + &self, + ) -> alloy_contract::SolCallBuilder<&P, BLOCK_INTERVALCall, N> { + self.call_builder(&BLOCK_INTERVALCall) + } + ///Creates a new call builder for the [`CONFIG_HASH`] function. + pub fn CONFIG_HASH( + &self, + ) -> alloy_contract::SolCallBuilder<&P, CONFIG_HASHCall, N> { + self.call_builder(&CONFIG_HASHCall) + } + ///Creates a new call builder for the [`DELAYED_WETH`] function. + pub fn DELAYED_WETH( + &self, + ) -> alloy_contract::SolCallBuilder<&P, DELAYED_WETHCall, N> { + self.call_builder(&DELAYED_WETHCall) + } + ///Creates a new call builder for the [`DISPUTE_GAME_FACTORY`] function. + pub fn DISPUTE_GAME_FACTORY( + &self, + ) -> alloy_contract::SolCallBuilder<&P, DISPUTE_GAME_FACTORYCall, N> { + self.call_builder(&DISPUTE_GAME_FACTORYCall) + } + ///Creates a new call builder for the [`EIP2935_CONTRACT`] function. + pub fn EIP2935_CONTRACT( + &self, + ) -> alloy_contract::SolCallBuilder<&P, EIP2935_CONTRACTCall, N> { + self.call_builder(&EIP2935_CONTRACTCall) + } + ///Creates a new call builder for the [`EIP2935_WINDOW`] function. + pub fn EIP2935_WINDOW( + &self, + ) -> alloy_contract::SolCallBuilder<&P, EIP2935_WINDOWCall, N> { + self.call_builder(&EIP2935_WINDOWCall) + } + ///Creates a new call builder for the [`FAST_FINALIZATION_DELAY`] function. + pub fn FAST_FINALIZATION_DELAY( + &self, + ) -> alloy_contract::SolCallBuilder<&P, FAST_FINALIZATION_DELAYCall, N> { + self.call_builder(&FAST_FINALIZATION_DELAYCall) + } + ///Creates a new call builder for the [`INTERMEDIATE_BLOCK_INTERVAL`] function. + pub fn INTERMEDIATE_BLOCK_INTERVAL( + &self, + ) -> alloy_contract::SolCallBuilder<&P, INTERMEDIATE_BLOCK_INTERVALCall, N> { + self.call_builder(&INTERMEDIATE_BLOCK_INTERVALCall) + } + ///Creates a new call builder for the [`L2_CHAIN_ID`] function. + pub fn L2_CHAIN_ID( + &self, + ) -> alloy_contract::SolCallBuilder<&P, L2_CHAIN_IDCall, N> { + self.call_builder(&L2_CHAIN_IDCall) + } + ///Creates a new call builder for the [`PROOF_THRESHOLD`] function. + pub fn PROOF_THRESHOLD( + &self, + ) -> alloy_contract::SolCallBuilder<&P, PROOF_THRESHOLDCall, N> { + self.call_builder(&PROOF_THRESHOLDCall) + } + ///Creates a new call builder for the [`SLOW_FINALIZATION_DELAY`] function. + pub fn SLOW_FINALIZATION_DELAY( + &self, + ) -> alloy_contract::SolCallBuilder<&P, SLOW_FINALIZATION_DELAYCall, N> { + self.call_builder(&SLOW_FINALIZATION_DELAYCall) + } + ///Creates a new call builder for the [`TEE_IMAGE_HASH`] function. + pub fn TEE_IMAGE_HASH( + &self, + ) -> alloy_contract::SolCallBuilder<&P, TEE_IMAGE_HASHCall, N> { + self.call_builder(&TEE_IMAGE_HASHCall) + } + ///Creates a new call builder for the [`TEE_VERIFIER`] function. + pub fn TEE_VERIFIER( + &self, + ) -> alloy_contract::SolCallBuilder<&P, TEE_VERIFIERCall, N> { + self.call_builder(&TEE_VERIFIERCall) + } + ///Creates a new call builder for the [`ZK_IMAGE_HASH`] function. + pub fn ZK_IMAGE_HASH( + &self, + ) -> alloy_contract::SolCallBuilder<&P, ZK_IMAGE_HASHCall, N> { + self.call_builder(&ZK_IMAGE_HASHCall) + } + ///Creates a new call builder for the [`ZK_VERIFIER`] function. + pub fn ZK_VERIFIER( + &self, + ) -> alloy_contract::SolCallBuilder<&P, ZK_VERIFIERCall, N> { + self.call_builder(&ZK_VERIFIERCall) + } + ///Creates a new call builder for the [`anchorStateRegistry`] function. + pub fn anchorStateRegistry( + &self, + ) -> alloy_contract::SolCallBuilder<&P, anchorStateRegistryCall, N> { + self.call_builder(&anchorStateRegistryCall) + } + ///Creates a new call builder for the [`bondAmount`] function. + pub fn bondAmount( + &self, + ) -> alloy_contract::SolCallBuilder<&P, bondAmountCall, N> { + self.call_builder(&bondAmountCall) + } + ///Creates a new call builder for the [`bondClaimed`] function. + pub fn bondClaimed( + &self, + ) -> alloy_contract::SolCallBuilder<&P, bondClaimedCall, N> { + self.call_builder(&bondClaimedCall) + } + ///Creates a new call builder for the [`bondRecipient`] function. + pub fn bondRecipient( + &self, + ) -> alloy_contract::SolCallBuilder<&P, bondRecipientCall, N> { + self.call_builder(&bondRecipientCall) + } + ///Creates a new call builder for the [`bondUnlocked`] function. + pub fn bondUnlocked( + &self, + ) -> alloy_contract::SolCallBuilder<&P, bondUnlockedCall, N> { + self.call_builder(&bondUnlockedCall) + } + ///Creates a new call builder for the [`challenge`] function. + pub fn challenge( + &self, + proofBytes: alloy::sol_types::private::Bytes, + intermediateRootIndex: alloy::sol_types::private::primitives::aliases::U256, + intermediateRootToProve: alloy::sol_types::private::FixedBytes<32>, + ) -> alloy_contract::SolCallBuilder<&P, challengeCall, N> { + self.call_builder( + &challengeCall { + proofBytes, + intermediateRootIndex, + intermediateRootToProve, + }, + ) + } + ///Creates a new call builder for the [`claimCredit`] function. + pub fn claimCredit( + &self, + ) -> alloy_contract::SolCallBuilder<&P, claimCreditCall, N> { + self.call_builder(&claimCreditCall) + } + ///Creates a new call builder for the [`closeGame`] function. + pub fn closeGame(&self) -> alloy_contract::SolCallBuilder<&P, closeGameCall, N> { + self.call_builder(&closeGameCall) + } + ///Creates a new call builder for the [`counteredByIntermediateRootIndexPlusOne`] function. + pub fn counteredByIntermediateRootIndexPlusOne( + &self, + ) -> alloy_contract::SolCallBuilder< + &P, + counteredByIntermediateRootIndexPlusOneCall, + N, + > { + self.call_builder(&counteredByIntermediateRootIndexPlusOneCall) + } + ///Creates a new call builder for the [`createdAt`] function. + pub fn createdAt(&self) -> alloy_contract::SolCallBuilder<&P, createdAtCall, N> { + self.call_builder(&createdAtCall) + } + ///Creates a new call builder for the [`expectedResolution`] function. + pub fn expectedResolution( + &self, + ) -> alloy_contract::SolCallBuilder<&P, expectedResolutionCall, N> { + self.call_builder(&expectedResolutionCall) + } + ///Creates a new call builder for the [`extraData`] function. + pub fn extraData(&self) -> alloy_contract::SolCallBuilder<&P, extraDataCall, N> { + self.call_builder(&extraDataCall) + } + ///Creates a new call builder for the [`gameCreator`] function. + pub fn gameCreator( + &self, + ) -> alloy_contract::SolCallBuilder<&P, gameCreatorCall, N> { + self.call_builder(&gameCreatorCall) + } + ///Creates a new call builder for the [`gameData`] function. + pub fn gameData(&self) -> alloy_contract::SolCallBuilder<&P, gameDataCall, N> { + self.call_builder(&gameDataCall) + } + ///Creates a new call builder for the [`gameOver`] function. + pub fn gameOver(&self) -> alloy_contract::SolCallBuilder<&P, gameOverCall, N> { + self.call_builder(&gameOverCall) + } + ///Creates a new call builder for the [`gameType`] function. + pub fn gameType(&self) -> alloy_contract::SolCallBuilder<&P, gameTypeCall, N> { + self.call_builder(&gameTypeCall) + } + ///Creates a new call builder for the [`initializeWithInitData`] function. + pub fn initializeWithInitData( + &self, + proof: alloy::sol_types::private::Bytes, + ) -> alloy_contract::SolCallBuilder<&P, initializeWithInitDataCall, N> { + self.call_builder( + &initializeWithInitDataCall { + proof, + }, + ) + } + ///Creates a new call builder for the [`intermediateOutputRoot`] function. + pub fn intermediateOutputRoot( + &self, + index: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, intermediateOutputRootCall, N> { + self.call_builder( + &intermediateOutputRootCall { + index, + }, + ) + } + ///Creates a new call builder for the [`intermediateOutputRoots`] function. + pub fn intermediateOutputRoots( + &self, + ) -> alloy_contract::SolCallBuilder<&P, intermediateOutputRootsCall, N> { + self.call_builder(&intermediateOutputRootsCall) + } + ///Creates a new call builder for the [`intermediateOutputRootsCount`] function. + pub fn intermediateOutputRootsCount( + &self, + ) -> alloy_contract::SolCallBuilder<&P, intermediateOutputRootsCountCall, N> { + self.call_builder(&intermediateOutputRootsCountCall) + } + ///Creates a new call builder for the [`l1Head`] function. + pub fn l1Head(&self) -> alloy_contract::SolCallBuilder<&P, l1HeadCall, N> { + self.call_builder(&l1HeadCall) + } + ///Creates a new call builder for the [`l2SequenceNumber`] function. + pub fn l2SequenceNumber( + &self, + ) -> alloy_contract::SolCallBuilder<&P, l2SequenceNumberCall, N> { + self.call_builder(&l2SequenceNumberCall) + } + ///Creates a new call builder for the [`nullify`] function. + pub fn nullify( + &self, + proofBytes: alloy::sol_types::private::Bytes, + intermediateRootIndex: alloy::sol_types::private::primitives::aliases::U256, + intermediateRootToProve: alloy::sol_types::private::FixedBytes<32>, + ) -> alloy_contract::SolCallBuilder<&P, nullifyCall, N> { + self.call_builder( + &nullifyCall { + proofBytes, + intermediateRootIndex, + intermediateRootToProve, + }, + ) + } + ///Creates a new call builder for the [`parentIndex`] function. + pub fn parentIndex( + &self, + ) -> alloy_contract::SolCallBuilder<&P, parentIndexCall, N> { + self.call_builder(&parentIndexCall) + } + ///Creates a new call builder for the [`proofCount`] function. + pub fn proofCount( + &self, + ) -> alloy_contract::SolCallBuilder<&P, proofCountCall, N> { + self.call_builder(&proofCountCall) + } + ///Creates a new call builder for the [`resolve`] function. + pub fn resolve(&self) -> alloy_contract::SolCallBuilder<&P, resolveCall, N> { + self.call_builder(&resolveCall) + } + ///Creates a new call builder for the [`resolvedAt`] function. + pub fn resolvedAt( + &self, + ) -> alloy_contract::SolCallBuilder<&P, resolvedAtCall, N> { + self.call_builder(&resolvedAtCall) + } + ///Creates a new call builder for the [`rootClaim`] function. + pub fn rootClaim(&self) -> alloy_contract::SolCallBuilder<&P, rootClaimCall, N> { + self.call_builder(&rootClaimCall) + } + ///Creates a new call builder for the [`startingBlockNumber`] function. + pub fn startingBlockNumber( + &self, + ) -> alloy_contract::SolCallBuilder<&P, startingBlockNumberCall, N> { + self.call_builder(&startingBlockNumberCall) + } + ///Creates a new call builder for the [`startingOutputRoot`] function. + pub fn startingOutputRoot( + &self, + ) -> alloy_contract::SolCallBuilder<&P, startingOutputRootCall, N> { + self.call_builder(&startingOutputRootCall) + } + ///Creates a new call builder for the [`startingRootHash`] function. + pub fn startingRootHash( + &self, + ) -> alloy_contract::SolCallBuilder<&P, startingRootHashCall, N> { + self.call_builder(&startingRootHashCall) + } + ///Creates a new call builder for the [`status`] function. + pub fn status(&self) -> alloy_contract::SolCallBuilder<&P, statusCall, N> { + self.call_builder(&statusCall) + } + ///Creates a new call builder for the [`teeProver`] function. + pub fn teeProver(&self) -> alloy_contract::SolCallBuilder<&P, teeProverCall, N> { + self.call_builder(&teeProverCall) + } + ///Creates a new call builder for the [`verifyProposalProof`] function. + pub fn verifyProposalProof( + &self, + proofBytes: alloy::sol_types::private::Bytes, + ) -> alloy_contract::SolCallBuilder<&P, verifyProposalProofCall, N> { + self.call_builder( + &verifyProposalProofCall { + proofBytes, + }, + ) + } + ///Creates a new call builder for the [`version`] function. + pub fn version(&self) -> alloy_contract::SolCallBuilder<&P, versionCall, N> { + self.call_builder(&versionCall) + } + ///Creates a new call builder for the [`wasRespectedGameTypeWhenCreated`] function. + pub fn wasRespectedGameTypeWhenCreated( + &self, + ) -> alloy_contract::SolCallBuilder<&P, wasRespectedGameTypeWhenCreatedCall, N> { + self.call_builder(&wasRespectedGameTypeWhenCreatedCall) + } + ///Creates a new call builder for the [`zkProver`] function. + pub fn zkProver(&self) -> alloy_contract::SolCallBuilder<&P, zkProverCall, N> { + self.call_builder(&zkProverCall) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > AggregateVerifierInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + ///Creates a new event filter for the [`Challenged`] event. + pub fn Challenged_filter(&self) -> alloy_contract::Event<&P, Challenged, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`CreditClaimed`] event. + pub fn CreditClaimed_filter( + &self, + ) -> alloy_contract::Event<&P, CreditClaimed, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`Nullified`] event. + pub fn Nullified_filter(&self) -> alloy_contract::Event<&P, Nullified, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`Proved`] event. + pub fn Proved_filter(&self) -> alloy_contract::Event<&P, Proved, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`Resolved`] event. + pub fn Resolved_filter(&self) -> alloy_contract::Event<&P, Resolved, N> { + self.event_filter::() + } + } +} diff --git a/bindings/rust/src/anchor_state_registry.rs b/bindings/rust/src/anchor_state_registry.rs new file mode 100644 index 000000000..f8fa1e33c --- /dev/null +++ b/bindings/rust/src/anchor_state_registry.rs @@ -0,0 +1,9266 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface AnchorStateRegistry { + type GameType is uint32; + type Hash is bytes32; + struct Proposal { + Hash root; + uint256 l2SequenceNumber; + } + + error AnchorStateRegistry_InvalidAnchorGame(); + error AnchorStateRegistry_Unauthorized(); + error ProxyAdminOwnedBase_NotProxyAdmin(); + error ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner(); + error ProxyAdminOwnedBase_NotProxyAdminOwner(); + error ProxyAdminOwnedBase_NotResolvedDelegateProxy(); + error ProxyAdminOwnedBase_NotSharedProxyAdminOwner(); + error ProxyAdminOwnedBase_ProxyAdminNotFound(); + error ReinitializableBase_ZeroInitVersion(); + + event AnchorUpdated(address indexed game); + event DisputeGameBlacklisted(address indexed disputeGame); + event Initialized(uint8 version); + event RespectedGameTypeSet(GameType gameType); + event RetirementTimestampSet(uint256 timestamp); + + constructor(uint256 _disputeGameFinalityDelaySeconds); + + function anchorGame() external view returns (address); + function anchors(GameType) external view returns (Hash, uint256); + function blacklistDisputeGame(address _disputeGame) external; + function disputeGameBlacklist(address) external view returns (bool); + function disputeGameFactory() external view returns (address); + function disputeGameFinalityDelaySeconds() external view returns (uint256); + function getAnchorRoot() external view returns (Hash, uint256); + function getStartingAnchorRoot() external view returns (Proposal memory); + function initVersion() external view returns (uint8); + function initialize(address _systemConfig, address _disputeGameFactory, Proposal memory _startingAnchorRoot, GameType _startingRespectedGameType) external; + function isGameBlacklisted(address _game) external view returns (bool); + function isGameClaimValid(address _game) external view returns (bool); + function isGameFinalized(address _game) external view returns (bool); + function isGameProper(address _game) external view returns (bool); + function isGameRegistered(address _game) external view returns (bool); + function isGameResolved(address _game) external view returns (bool); + function isGameRespected(address _game) external view returns (bool); + function isGameRetired(address _game) external view returns (bool); + function paused() external view returns (bool); + function proxyAdmin() external view returns (address); + function proxyAdminOwner() external view returns (address); + function respectedGameType() external view returns (GameType); + function retirementTimestamp() external view returns (uint64); + function setAnchorState(address _game) external; + function setRespectedGameType(GameType _gameType) external; + function superchainConfig() external view returns (address); + function systemConfig() external view returns (address); + function updateRetirementTimestamp() external; + function version() external view returns (string memory); +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "constructor", + "inputs": [ + { + "name": "_disputeGameFinalityDelaySeconds", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "anchorGame", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract IFaultDisputeGame" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "anchors", + "inputs": [ + { + "name": "", + "type": "uint32", + "internalType": "GameType" + } + ], + "outputs": [ + { + "name": "", + "type": "bytes32", + "internalType": "Hash" + }, + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "blacklistDisputeGame", + "inputs": [ + { + "name": "_disputeGame", + "type": "address", + "internalType": "contract IDisputeGame" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "disputeGameBlacklist", + "inputs": [ + { + "name": "", + "type": "address", + "internalType": "contract IDisputeGame" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "disputeGameFactory", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract IDisputeGameFactory" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "disputeGameFinalityDelaySeconds", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "getAnchorRoot", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bytes32", + "internalType": "Hash" + }, + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "getStartingAnchorRoot", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "tuple", + "internalType": "struct Proposal", + "components": [ + { + "name": "root", + "type": "bytes32", + "internalType": "Hash" + }, + { + "name": "l2SequenceNumber", + "type": "uint256", + "internalType": "uint256" + } + ] + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "initVersion", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint8", + "internalType": "uint8" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "initialize", + "inputs": [ + { + "name": "_systemConfig", + "type": "address", + "internalType": "contract ISystemConfig" + }, + { + "name": "_disputeGameFactory", + "type": "address", + "internalType": "contract IDisputeGameFactory" + }, + { + "name": "_startingAnchorRoot", + "type": "tuple", + "internalType": "struct Proposal", + "components": [ + { + "name": "root", + "type": "bytes32", + "internalType": "Hash" + }, + { + "name": "l2SequenceNumber", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { + "name": "_startingRespectedGameType", + "type": "uint32", + "internalType": "GameType" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "isGameBlacklisted", + "inputs": [ + { + "name": "_game", + "type": "address", + "internalType": "contract IDisputeGame" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "isGameClaimValid", + "inputs": [ + { + "name": "_game", + "type": "address", + "internalType": "contract IDisputeGame" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "isGameFinalized", + "inputs": [ + { + "name": "_game", + "type": "address", + "internalType": "contract IDisputeGame" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "isGameProper", + "inputs": [ + { + "name": "_game", + "type": "address", + "internalType": "contract IDisputeGame" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "isGameRegistered", + "inputs": [ + { + "name": "_game", + "type": "address", + "internalType": "contract IDisputeGame" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "isGameResolved", + "inputs": [ + { + "name": "_game", + "type": "address", + "internalType": "contract IDisputeGame" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "isGameRespected", + "inputs": [ + { + "name": "_game", + "type": "address", + "internalType": "contract IDisputeGame" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "isGameRetired", + "inputs": [ + { + "name": "_game", + "type": "address", + "internalType": "contract IDisputeGame" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "paused", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "proxyAdmin", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract IProxyAdmin" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "proxyAdminOwner", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "respectedGameType", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint32", + "internalType": "GameType" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "retirementTimestamp", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint64", + "internalType": "uint64" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "setAnchorState", + "inputs": [ + { + "name": "_game", + "type": "address", + "internalType": "contract IDisputeGame" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "setRespectedGameType", + "inputs": [ + { + "name": "_gameType", + "type": "uint32", + "internalType": "GameType" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "superchainConfig", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract ISuperchainConfig" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "systemConfig", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract ISystemConfig" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "updateRetirementTimestamp", + "inputs": [], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "version", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "view" + }, + { + "type": "event", + "name": "AnchorUpdated", + "inputs": [ + { + "name": "game", + "type": "address", + "indexed": true, + "internalType": "contract IFaultDisputeGame" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "DisputeGameBlacklisted", + "inputs": [ + { + "name": "disputeGame", + "type": "address", + "indexed": true, + "internalType": "contract IDisputeGame" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "Initialized", + "inputs": [ + { + "name": "version", + "type": "uint8", + "indexed": false, + "internalType": "uint8" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "RespectedGameTypeSet", + "inputs": [ + { + "name": "gameType", + "type": "uint32", + "indexed": false, + "internalType": "GameType" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "RetirementTimestampSet", + "inputs": [ + { + "name": "timestamp", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "error", + "name": "AnchorStateRegistry_InvalidAnchorGame", + "inputs": [] + }, + { + "type": "error", + "name": "AnchorStateRegistry_Unauthorized", + "inputs": [] + }, + { + "type": "error", + "name": "ProxyAdminOwnedBase_NotProxyAdmin", + "inputs": [] + }, + { + "type": "error", + "name": "ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner", + "inputs": [] + }, + { + "type": "error", + "name": "ProxyAdminOwnedBase_NotProxyAdminOwner", + "inputs": [] + }, + { + "type": "error", + "name": "ProxyAdminOwnedBase_NotResolvedDelegateProxy", + "inputs": [] + }, + { + "type": "error", + "name": "ProxyAdminOwnedBase_NotSharedProxyAdminOwner", + "inputs": [] + }, + { + "type": "error", + "name": "ProxyAdminOwnedBase_ProxyAdminNotFound", + "inputs": [] + }, + { + "type": "error", + "name": "ReinitializableBase_ZeroInitVersion", + "inputs": [] + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod AnchorStateRegistry { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x60c06040523480156200001157600080fd5b5060405162001b4638038062001b46833981016040819052620000349162000111565b600160805260a0819052620000486200004f565b506200012b565b600054610100900460ff1615620000bc5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811610156200010f576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6000602082840312156200012457600080fd5b5051919050565b60805160a0516119e76200015f6000396000818161046d015261051301526000818161029001526109e501526119e76000f3fe608060405234801561001057600080fd5b50600436106101cf5760003560e01c80635958a19311610104578063952b2797116100a2578063e0a840eb11610071578063e0a840eb146104ae578063ee658e45146104c1578063f2b4e617146104d4578063fdbb3dcf146104e757600080fd5b8063952b279714610468578063d5a3e12e14610496578063d83ef2671461049e578063dad544e0146104a657600080fd5b80636c4f4467116100de5780636c4f4467146104075780637258a8071461041a5780637d6be8dc146104425780637fc485041461045557600080fd5b80635958a193146103ae5780635c975abb146103c1578063664ed830146103c957600080fd5b80633c9f397c1161017157806345884d321161014b57806345884d321461031c57806347a222c51461033f578063496b9c161461035257806354fd4d501461036557600080fd5b80633c9f397c146102ba5780633e47158c146102df5780634086d183146102e757600080fd5b806333d7e2bd116101ad57806333d7e2bd1461022457806334a346ea1461025557806335e80ab31461028157806338d38c971461028957600080fd5b80630314d2b3146101d457806304e50fed146101fc57806317cf21a91461020f575b600080fd5b6101e76101e2366004611588565b6104fa565b60405190151581526020015b60405180910390f35b6101e761020a366004611588565b6105cd565b61022261021d366004611588565b610637565b005b60005461023d906201000090046001600160a01b031681565b6040516001600160a01b0390911681526020016101f3565b6101e7610263366004611588565b6001600160a01b031660009081526005602052604090205460ff1690565b61023d610782565b60405160ff7f00000000000000000000000000000000000000000000000000000000000000001681526020016101f3565b6006546102ca9063ffffffff1681565b60405163ffffffff90911681526020016101f3565b61023d6107ff565b60065461030390640100000000900467ffffffffffffffff1681565b60405167ffffffffffffffff90911681526020016101f3565b6101e761032a366004611588565b60056020526000908152604090205460ff1681565b61022261034d36600461161e565b6109e3565b6101e7610360366004611588565b610c52565b6103a16040518060400160405280600581526020017f332e372e3000000000000000000000000000000000000000000000000000000081525081565b6040516101f39190611731565b6101e76103bc366004611588565b610cbd565b6101e7610d33565b6040805180820182526000808252602091820152815180830183526003548082526004549183019182528351908152905191810191909152016101f3565b6101e7610415366004611588565b610dab565b61042d610428366004611744565b610e6e565b604080519283526020830191909152016101f3565b610222610450366004611588565b610e82565b610222610463366004611744565b610ef4565b6040517f000000000000000000000000000000000000000000000000000000000000000081526020016101f3565b610222610f65565b61042d610fe5565b61023d611110565b60025461023d906001600160a01b031681565b6101e76104cf366004611588565b611157565b60015461023d906001600160a01b031681565b6101e76104f5366004611588565b6112f8565b6000610505826112f8565b61051157506000919050565b7f00000000000000000000000000000000000000000000000000000000000000006105a4836001600160a01b03166319effeb46040518163ffffffff1660e01b8152600401602060405180830381865afa158015610573573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610597919061177e565b67ffffffffffffffff1690565b6105b89067ffffffffffffffff16426117c8565b116105c557506000919050565b506001919050565b6000816001600160a01b031663250e69bd6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561060d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061063191906117df565b92915050565b8061064181610dab565b610677576040517f47ad367a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000610681610fe5565b91505080826001600160a01b03166399735e326040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106e79190611801565b1161071e576040517f47ad367a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600280547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0384169081179091556040517f474f180d74ea8751955ee261c93ff8270411b180408d1014c49f552c92a4d11e90600090a2505050565b60008060029054906101000a90046001600160a01b03166001600160a01b03166335e80ab36040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107fa919061181a565b905090565b60008061082a7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b90506001600160a01b0381161561084057919050565b6040518060400160405280601a81526020017f4f564d5f4c3143726f7373446f6d61696e4d657373656e6765720000000000008152505160026108839190611837565b604080513060208201526000918101919091527f4f564d5f4c3143726f7373446f6d61696e4d657373656e67657200000000000091909117906108de906060015b604051602081830303815290604052805190602001205490565b14610915576040517f54e433cd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60408051306020820152600191810191909152600090610937906060016108c4565b90506001600160a01b038116156109b157806001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610986573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109aa919061181a565b9250505090565b6040517f332144db00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f0000000000000000000000000000000000000000000000000000000000000000600054610100900460ff16158015610a23575060005460ff8083169116105b610ab3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840160405180910390fd5b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001660ff831617610100179055610aec611446565b600080547fffffffffffffffffffff0000000000000000000000000000000000000000ffff16620100006001600160a01b0388811691909102919091178255600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001691871691909117905583516003556020840151600455600680547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff85161790819055640100000000900467ffffffffffffffff169003610bed57600680547fffffffffffffffffffffffffffffffffffffffff0000000000000000ffffffff166401000000004267ffffffffffffffff16021790555b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050565b6000610c5d82611157565b610c6957506000919050565b6001600160a01b03821660009081526005602052604090205460ff1615610c9257506000919050565b610c9b82610cbd565b15610ca857506000919050565b610cb0610d33565b156105c557506000919050565b6000600660049054906101000a900467ffffffffffffffff1667ffffffffffffffff16610d21836001600160a01b031663cf09e0d06040518163ffffffff1660e01b8152600401602060405180830381865afa158015610573573d6000803e3d6000fd5b67ffffffffffffffff16111592915050565b60008060029054906101000a90046001600160a01b03166001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d87573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107fa91906117df565b6000610db682610c52565b610dc257506000919050565b610dcb826105cd565b610dd757506000919050565b610de0826104fa565b610dec57506000919050565b6002826001600160a01b031663200d2ed26040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e2c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e5091906118a3565b6002811115610e6157610e61611874565b146105c557506000919050565b600080610e79610fe5565b91509150915091565b610e8a6114af565b6001600160a01b03811660008181526005602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055517f192c289026d59a41a27f5aea08f3969b57931b0589202d14f4368cded95d3cda9190a250565b610efc6114af565b600680547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff83169081179091556040519081527fcee0703b5e4bad4efededab85c9fd1aec17dee7c5f6c584330e0509b677745a29060200160405180910390a150565b610f6d6114af565b600680547fffffffffffffffffffffffffffffffffffffffff0000000000000000ffffffff166401000000004267ffffffffffffffff811691909102919091179091556040519081527f6e5b1ba771e8e484f741ed085f039ff4e5c6e882eaf68f550fb390922d0ae4a79060200160405180910390a1565b60025460009081906001600160a01b03166110065750506003546004549091565b600254604080517fbcef3b550000000000000000000000000000000000000000000000000000000081529051611091926001600160a01b03169163bcef3b559160048083019260209291908290030181865afa15801561106a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061108e9190611801565b90565b600260009054906101000a90046001600160a01b03166001600160a01b03166399735e326040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110e4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111089190611801565b915091509091565b600061111a6107ff565b6001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107d6573d6000803e3d6000fd5b600080600080846001600160a01b031663fa24f7436040518163ffffffff1660e01b8152600401600060405180830381865afa15801561119b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526111c391908101906118c4565b6001546040517f5f0150cb00000000000000000000000000000000000000000000000000000000815293965091945092506000916001600160a01b0390911690635f0150cb9061121b90879087908790600401611977565b6040805180830381865afa158015611237573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061125b91906119a5565b5090506000866001600160a01b0316635c0cba336040518163ffffffff1660e01b8152600401602060405180830381865afa15801561129e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112c2919061181a565b9050866001600160a01b0316826001600160a01b03161480156112ed57506001600160a01b03811630145b979650505050505050565b600061133b826001600160a01b03166319effeb46040518163ffffffff1660e01b8152600401602060405180830381865afa158015610573573d6000803e3d6000fd5b67ffffffffffffffff161580159061063157506002826001600160a01b031663200d2ed26040518163ffffffff1660e01b8152600401602060405180830381865afa15801561138e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113b291906118a3565b60028111156113c3576113c3611874565b148061063157506001826001600160a01b031663200d2ed26040518163ffffffff1660e01b8152600401602060405180830381865afa15801561140a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061142e91906118a3565b600281111561143f5761143f611874565b1492915050565b3361144f6107ff565b6001600160a01b03161415801561147657503361146a611110565b6001600160a01b031614155b156114ad576040517fc4050a2600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b600060029054906101000a90046001600160a01b03166001600160a01b031663452a93206040518163ffffffff1660e01b8152600401602060405180830381865afa158015611502573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611526919061181a565b6001600160a01b0316336001600160a01b0316146114ad576040517f2e5321ac00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038116811461158557600080fd5b50565b60006020828403121561159a57600080fd5b81356115a581611570565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715611604576116046115ac565b604052919050565b63ffffffff8116811461158557600080fd5b60008060008084860360a081121561163557600080fd5b853561164081611570565b9450602086013561165081611570565b935060407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08201121561168257600080fd5b506040516040810181811067ffffffffffffffff821117156116a6576116a66115ac565b6040908152860135815260608601356020820152915060808501356116ca8161160c565b939692955090935050565b60005b838110156116f05781810151838201526020016116d8565b838111156116ff576000848401525b50505050565b6000815180845261171d8160208601602086016116d5565b601f01601f19169290920160200192915050565b6020815260006115a56020830184611705565b60006020828403121561175657600080fd5b81356115a58161160c565b805167ffffffffffffffff8116811461177957600080fd5b919050565b60006020828403121561179057600080fd5b6115a582611761565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000828210156117da576117da611799565b500390565b6000602082840312156117f157600080fd5b815180151581146115a557600080fd5b60006020828403121561181357600080fd5b5051919050565b60006020828403121561182c57600080fd5b81516115a581611570565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561186f5761186f611799565b500290565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6000602082840312156118b557600080fd5b8151600381106115a557600080fd5b6000806000606084860312156118d957600080fd5b83516118e48161160c565b60208501516040860151919450925067ffffffffffffffff8082111561190957600080fd5b818601915086601f83011261191d57600080fd5b81518181111561192f5761192f6115ac565b6119426020601f19601f840116016115db565b915080825287602082850101111561195957600080fd5b61196a8160208401602086016116d5565b5080925050509250925092565b63ffffffff8416815282602082015260606040820152600061199c6060830184611705565b95945050505050565b600080604083850312156119b857600080fd5b82516119c381611570565b91506119d160208401611761565b9050925092905056fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\xC0`@R4\x80\x15b\0\0\x11W`\0\x80\xFD[P`@Qb\0\x1BF8\x03\x80b\0\x1BF\x839\x81\x01`@\x81\x90Rb\0\x004\x91b\0\x01\x11V[`\x01`\x80R`\xA0\x81\x90Rb\0\0Hb\0\0OV[Pb\0\x01+V[`\0Ta\x01\0\x90\x04`\xFF\x16\x15b\0\0\xBCW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`'`$\x82\x01R\x7FInitializable: contract is initi`D\x82\x01Rfalizing`\xC8\x1B`d\x82\x01R`\x84\x01`@Q\x80\x91\x03\x90\xFD[`\0T`\xFF\x90\x81\x16\x10\x15b\0\x01\x0FW`\0\x80T`\xFF\x19\x16`\xFF\x90\x81\x17\x90\x91U`@Q\x90\x81R\x7F\x7F&\xB8?\xF9n\x1F+jh/\x138R\xF6y\x8A\t\xC4e\xDA\x95\x92\x14`\xCE\xFB8G@$\x98\x90` \x01`@Q\x80\x91\x03\x90\xA1[V[`\0` \x82\x84\x03\x12\x15b\0\x01$W`\0\x80\xFD[PQ\x91\x90PV[`\x80Q`\xA0Qa\x19\xE7b\0\x01_`\09`\0\x81\x81a\x04m\x01Ra\x05\x13\x01R`\0\x81\x81a\x02\x90\x01Ra\t\xE5\x01Ra\x19\xE7`\0\xF3\xFE`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`\x046\x10a\x01\xCFW`\x005`\xE0\x1C\x80cYX\xA1\x93\x11a\x01\x04W\x80c\x95+'\x97\x11a\0\xA2W\x80c\xE0\xA8@\xEB\x11a\0qW\x80c\xE0\xA8@\xEB\x14a\x04\xAEW\x80c\xEEe\x8EE\x14a\x04\xC1W\x80c\xF2\xB4\xE6\x17\x14a\x04\xD4W\x80c\xFD\xBB=\xCF\x14a\x04\xE7W`\0\x80\xFD[\x80c\x95+'\x97\x14a\x04hW\x80c\xD5\xA3\xE1.\x14a\x04\x96W\x80c\xD8>\xF2g\x14a\x04\x9EW\x80c\xDA\xD5D\xE0\x14a\x04\xA6W`\0\x80\xFD[\x80clODg\x11a\0\xDEW\x80clODg\x14a\x04\x07W\x80crX\xA8\x07\x14a\x04\x1AW\x80c}k\xE8\xDC\x14a\x04BW\x80c\x7F\xC4\x85\x04\x14a\x04UW`\0\x80\xFD[\x80cYX\xA1\x93\x14a\x03\xAEW\x80c\\\x97Z\xBB\x14a\x03\xC1W\x80cfN\xD80\x14a\x03\xC9W`\0\x80\xFD[\x80c<\x9F9|\x11a\x01qW\x80cE\x88M2\x11a\x01KW\x80cE\x88M2\x14a\x03\x1CW\x80cG\xA2\"\xC5\x14a\x03?W\x80cIk\x9C\x16\x14a\x03RW\x80cT\xFDMP\x14a\x03eW`\0\x80\xFD[\x80c<\x9F9|\x14a\x02\xBAW\x80c>G\x15\x8C\x14a\x02\xDFW\x80c@\x86\xD1\x83\x14a\x02\xE7W`\0\x80\xFD[\x80c3\xD7\xE2\xBD\x11a\x01\xADW\x80c3\xD7\xE2\xBD\x14a\x02$W\x80c4\xA3F\xEA\x14a\x02UW\x80c5\xE8\n\xB3\x14a\x02\x81W\x80c8\xD3\x8C\x97\x14a\x02\x89W`\0\x80\xFD[\x80c\x03\x14\xD2\xB3\x14a\x01\xD4W\x80c\x04\xE5\x0F\xED\x14a\x01\xFCW\x80c\x17\xCF!\xA9\x14a\x02\x0FW[`\0\x80\xFD[a\x01\xE7a\x01\xE26`\x04a\x15\x88V[a\x04\xFAV[`@Q\x90\x15\x15\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[a\x01\xE7a\x02\n6`\x04a\x15\x88V[a\x05\xCDV[a\x02\"a\x02\x1D6`\x04a\x15\x88V[a\x067V[\0[`\0Ta\x02=\x90b\x01\0\0\x90\x04`\x01`\x01`\xA0\x1B\x03\x16\x81V[`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x01a\x01\xF3V[a\x01\xE7a\x02c6`\x04a\x15\x88V[`\x01`\x01`\xA0\x1B\x03\x16`\0\x90\x81R`\x05` R`@\x90 T`\xFF\x16\x90V[a\x02=a\x07\x82V[`@Q`\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x81R` \x01a\x01\xF3V[`\x06Ta\x02\xCA\x90c\xFF\xFF\xFF\xFF\x16\x81V[`@Qc\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01a\x01\xF3V[a\x02=a\x07\xFFV[`\x06Ta\x03\x03\x90d\x01\0\0\0\0\x90\x04g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[`@Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01a\x01\xF3V[a\x01\xE7a\x03*6`\x04a\x15\x88V[`\x05` R`\0\x90\x81R`@\x90 T`\xFF\x16\x81V[a\x02\"a\x03M6`\x04a\x16\x1EV[a\t\xE3V[a\x01\xE7a\x03`6`\x04a\x15\x88V[a\x0CRV[a\x03\xA1`@Q\x80`@\x01`@R\x80`\x05\x81R` \x01\x7F3.7.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\x81RP\x81V[`@Qa\x01\xF3\x91\x90a\x171V[a\x01\xE7a\x03\xBC6`\x04a\x15\x88V[a\x0C\xBDV[a\x01\xE7a\r3V[`@\x80Q\x80\x82\x01\x82R`\0\x80\x82R` \x91\x82\x01R\x81Q\x80\x83\x01\x83R`\x03T\x80\x82R`\x04T\x91\x83\x01\x91\x82R\x83Q\x90\x81R\x90Q\x91\x81\x01\x91\x90\x91R\x01a\x01\xF3V[a\x01\xE7a\x04\x156`\x04a\x15\x88V[a\r\xABV[a\x04-a\x04(6`\x04a\x17DV[a\x0EnV[`@\x80Q\x92\x83R` \x83\x01\x91\x90\x91R\x01a\x01\xF3V[a\x02\"a\x04P6`\x04a\x15\x88V[a\x0E\x82V[a\x02\"a\x04c6`\x04a\x17DV[a\x0E\xF4V[`@Q\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81R` \x01a\x01\xF3V[a\x02\"a\x0FeV[a\x04-a\x0F\xE5V[a\x02=a\x11\x10V[`\x02Ta\x02=\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[a\x01\xE7a\x04\xCF6`\x04a\x15\x88V[a\x11WV[`\x01Ta\x02=\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[a\x01\xE7a\x04\xF56`\x04a\x15\x88V[a\x12\xF8V[`\0a\x05\x05\x82a\x12\xF8V[a\x05\x11WP`\0\x91\x90PV[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x05\xA4\x83`\x01`\x01`\xA0\x1B\x03\x16c\x19\xEF\xFE\xB4`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x05sW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x05\x97\x91\x90a\x17~V[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90V[a\x05\xB8\x90g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16Ba\x17\xC8V[\x11a\x05\xC5WP`\0\x91\x90PV[P`\x01\x91\x90PV[`\0\x81`\x01`\x01`\xA0\x1B\x03\x16c%\x0Ei\xBD`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x06\rW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x061\x91\x90a\x17\xDFV[\x92\x91PPV[\x80a\x06A\x81a\r\xABV[a\x06wW`@Q\x7FG\xAD6z\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\x01`@Q\x80\x91\x03\x90\xFD[`\0a\x06\x81a\x0F\xE5V[\x91PP\x80\x82`\x01`\x01`\xA0\x1B\x03\x16c\x99s^2`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x06\xC3W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x06\xE7\x91\x90a\x18\x01V[\x11a\x07\x1EW`@Q\x7FG\xAD6z\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\x01`@Q\x80\x91\x03\x90\xFD[`\x02\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16`\x01`\x01`\xA0\x1B\x03\x84\x16\x90\x81\x17\x90\x91U`@Q\x7FGO\x18\rt\xEA\x87Q\x95^\xE2a\xC9?\xF8'\x04\x11\xB1\x80@\x8D\x10\x14\xC4\x9FU,\x92\xA4\xD1\x1E\x90`\0\x90\xA2PPPV[`\0\x80`\x02\x90T\x90a\x01\0\n\x90\x04`\x01`\x01`\xA0\x1B\x03\x16`\x01`\x01`\xA0\x1B\x03\x16c5\xE8\n\xB3`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x07\xD6W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x07\xFA\x91\x90a\x18\x1AV[\x90P\x90V[`\0\x80a\x08*\x7F\xB51'hJV\x8B1s\xAE\x13\xB9\xF8\xA6\x01n$>c\xB6\xE8\xEE\x11x\xD6\xA7\x17\x85\x0B]a\x03T\x90V[\x90P`\x01`\x01`\xA0\x1B\x03\x81\x16\x15a\x08@W\x91\x90PV[`@Q\x80`@\x01`@R\x80`\x1A\x81R` \x01\x7FOVM_L1CrossDomainMessenger\0\0\0\0\0\0\x81RPQ`\x02a\x08\x83\x91\x90a\x187V[`@\x80Q0` \x82\x01R`\0\x91\x81\x01\x91\x90\x91R\x7FOVM_L1CrossDomainMessenger\0\0\0\0\0\0\x91\x90\x91\x17\x90a\x08\xDE\x90``\x01[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 T\x90V[\x14a\t\x15W`@Q\x7FT\xE43\xCD\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\x01`@Q\x80\x91\x03\x90\xFD[`@\x80Q0` \x82\x01R`\x01\x91\x81\x01\x91\x90\x91R`\0\x90a\t7\x90``\x01a\x08\xC4V[\x90P`\x01`\x01`\xA0\x1B\x03\x81\x16\x15a\t\xB1W\x80`\x01`\x01`\xA0\x1B\x03\x16c\x8D\xA5\xCB[`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\t\x86W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\t\xAA\x91\x90a\x18\x1AV[\x92PPP\x90V[`@Q\x7F3!D\xDB\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\x01`@Q\x80\x91\x03\x90\xFD[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\0Ta\x01\0\x90\x04`\xFF\x16\x15\x80\x15a\n#WP`\0T`\xFF\x80\x83\x16\x91\x16\x10[a\n\xB3W`@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\x82\x01R`.`$\x82\x01R\x7FInitializable: contract is alrea`D\x82\x01R\x7Fdy initialized\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01`@Q\x80\x91\x03\x90\xFD[`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\x16`\xFF\x83\x16\x17a\x01\0\x17\x90Ua\n\xECa\x14FV[`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xFF\xFF\x16b\x01\0\0`\x01`\x01`\xA0\x1B\x03\x88\x81\x16\x91\x90\x91\x02\x91\x90\x91\x17\x82U`\x01\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x91\x87\x16\x91\x90\x91\x17\x90U\x83Q`\x03U` \x84\x01Q`\x04U`\x06\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\x16c\xFF\xFF\xFF\xFF\x85\x16\x17\x90\x81\x90Ud\x01\0\0\0\0\x90\x04g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90\x03a\x0B\xEDW`\x06\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\xFF\xFF\xFF\xFF\x16d\x01\0\0\0\0Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x02\x17\x90U[`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\x16\x90U`@Q`\xFF\x82\x16\x81R\x7F\x7F&\xB8?\xF9n\x1F+jh/\x138R\xF6y\x8A\t\xC4e\xDA\x95\x92\x14`\xCE\xFB8G@$\x98\x90` \x01`@Q\x80\x91\x03\x90\xA1PPPPPV[`\0a\x0C]\x82a\x11WV[a\x0CiWP`\0\x91\x90PV[`\x01`\x01`\xA0\x1B\x03\x82\x16`\0\x90\x81R`\x05` R`@\x90 T`\xFF\x16\x15a\x0C\x92WP`\0\x91\x90PV[a\x0C\x9B\x82a\x0C\xBDV[\x15a\x0C\xA8WP`\0\x91\x90PV[a\x0C\xB0a\r3V[\x15a\x05\xC5WP`\0\x91\x90PV[`\0`\x06`\x04\x90T\x90a\x01\0\n\x90\x04g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a\r!\x83`\x01`\x01`\xA0\x1B\x03\x16c\xCF\t\xE0\xD0`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x05sW=`\0\x80>=`\0\xFD[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x11\x15\x92\x91PPV[`\0\x80`\x02\x90T\x90a\x01\0\n\x90\x04`\x01`\x01`\xA0\x1B\x03\x16`\x01`\x01`\xA0\x1B\x03\x16c\\\x97Z\xBB`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\r\x87W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x07\xFA\x91\x90a\x17\xDFV[`\0a\r\xB6\x82a\x0CRV[a\r\xC2WP`\0\x91\x90PV[a\r\xCB\x82a\x05\xCDV[a\r\xD7WP`\0\x91\x90PV[a\r\xE0\x82a\x04\xFAV[a\r\xECWP`\0\x91\x90PV[`\x02\x82`\x01`\x01`\xA0\x1B\x03\x16c \r.\xD2`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x0E,W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x0EP\x91\x90a\x18\xA3V[`\x02\x81\x11\x15a\x0EaWa\x0Eaa\x18tV[\x14a\x05\xC5WP`\0\x91\x90PV[`\0\x80a\x0Eya\x0F\xE5V[\x91P\x91P\x91P\x91V[a\x0E\x8Aa\x14\xAFV[`\x01`\x01`\xA0\x1B\x03\x81\x16`\0\x81\x81R`\x05` R`@\x80\x82 \x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x16`\x01\x17\x90UQ\x7F\x19,(\x90&\xD5\x9AA\xA2\x7FZ\xEA\x08\xF3\x96\x9BW\x93\x1B\x05\x89 -\x14\xF46\x8C\xDE\xD9]<\xDA\x91\x90\xA2PV[a\x0E\xFCa\x14\xAFV[`\x06\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\x16c\xFF\xFF\xFF\xFF\x83\x16\x90\x81\x17\x90\x91U`@Q\x90\x81R\x7F\xCE\xE0p;^K\xADN\xFE\xDE\xDA\xB8\\\x9F\xD1\xAE\xC1}\xEE|_lXC0\xE0P\x9BgwE\xA2\x90` \x01`@Q\x80\x91\x03\x90\xA1PV[a\x0Fma\x14\xAFV[`\x06\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\xFF\xFF\xFF\xFF\x16d\x01\0\0\0\0Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x91\x90\x91\x02\x91\x90\x91\x17\x90\x91U`@Q\x90\x81R\x7Fn[\x1B\xA7q\xE8\xE4\x84\xF7A\xED\x08_\x03\x9F\xF4\xE5\xC6\xE8\x82\xEA\xF6\x8FU\x0F\xB3\x90\x92-\n\xE4\xA7\x90` \x01`@Q\x80\x91\x03\x90\xA1V[`\x02T`\0\x90\x81\x90`\x01`\x01`\xA0\x1B\x03\x16a\x10\x06WPP`\x03T`\x04T\x90\x91V[`\x02T`@\x80Q\x7F\xBC\xEF;U\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\x90Qa\x10\x91\x92`\x01`\x01`\xA0\x1B\x03\x16\x91c\xBC\xEF;U\x91`\x04\x80\x83\x01\x92` \x92\x91\x90\x82\x90\x03\x01\x81\x86Z\xFA\x15\x80\x15a\x10jW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x10\x8E\x91\x90a\x18\x01V[\x90V[`\x02`\0\x90T\x90a\x01\0\n\x90\x04`\x01`\x01`\xA0\x1B\x03\x16`\x01`\x01`\xA0\x1B\x03\x16c\x99s^2`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x10\xE4W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x11\x08\x91\x90a\x18\x01V[\x91P\x91P\x90\x91V[`\0a\x11\x1Aa\x07\xFFV[`\x01`\x01`\xA0\x1B\x03\x16c\x8D\xA5\xCB[`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x07\xD6W=`\0\x80>=`\0\xFD[`\0\x80`\0\x80\x84`\x01`\x01`\xA0\x1B\x03\x16c\xFA$\xF7C`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01`\0`@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x11\x9BW=`\0\x80>=`\0\xFD[PPPP`@Q=`\0\x82>`\x1F=\x90\x81\x01`\x1F\x19\x16\x82\x01`@Ra\x11\xC3\x91\x90\x81\x01\x90a\x18\xC4V[`\x01T`@Q\x7F_\x01P\xCB\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\x93\x96P\x91\x94P\x92P`\0\x91`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x90c_\x01P\xCB\x90a\x12\x1B\x90\x87\x90\x87\x90\x87\x90`\x04\x01a\x19wV[`@\x80Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x127W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x12[\x91\x90a\x19\xA5V[P\x90P`\0\x86`\x01`\x01`\xA0\x1B\x03\x16c\\\x0C\xBA3`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x12\x9EW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x12\xC2\x91\x90a\x18\x1AV[\x90P\x86`\x01`\x01`\xA0\x1B\x03\x16\x82`\x01`\x01`\xA0\x1B\x03\x16\x14\x80\x15a\x12\xEDWP`\x01`\x01`\xA0\x1B\x03\x81\x160\x14[\x97\x96PPPPPPPV[`\0a\x13;\x82`\x01`\x01`\xA0\x1B\x03\x16c\x19\xEF\xFE\xB4`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x05sW=`\0\x80>=`\0\xFD[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x15\x80\x15\x90a\x061WP`\x02\x82`\x01`\x01`\xA0\x1B\x03\x16c \r.\xD2`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x13\x8EW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x13\xB2\x91\x90a\x18\xA3V[`\x02\x81\x11\x15a\x13\xC3Wa\x13\xC3a\x18tV[\x14\x80a\x061WP`\x01\x82`\x01`\x01`\xA0\x1B\x03\x16c \r.\xD2`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x14\nW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x14.\x91\x90a\x18\xA3V[`\x02\x81\x11\x15a\x14?Wa\x14?a\x18tV[\x14\x92\x91PPV[3a\x14Oa\x07\xFFV[`\x01`\x01`\xA0\x1B\x03\x16\x14\x15\x80\x15a\x14vWP3a\x14ja\x11\x10V[`\x01`\x01`\xA0\x1B\x03\x16\x14\x15[\x15a\x14\xADW`@Q\x7F\xC4\x05\n&\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\x01`@Q\x80\x91\x03\x90\xFD[V[`\0`\x02\x90T\x90a\x01\0\n\x90\x04`\x01`\x01`\xA0\x1B\x03\x16`\x01`\x01`\xA0\x1B\x03\x16cE*\x93 `@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x15\x02W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x15&\x91\x90a\x18\x1AV[`\x01`\x01`\xA0\x1B\x03\x163`\x01`\x01`\xA0\x1B\x03\x16\x14a\x14\xADW`@Q\x7F.S!\xAC\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a\x15\x85W`\0\x80\xFD[PV[`\0` \x82\x84\x03\x12\x15a\x15\x9AW`\0\x80\xFD[\x815a\x15\xA5\x81a\x15pV[\x93\x92PPPV[\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[`@Q`\x1F\x82\x01`\x1F\x19\x16\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a\x16\x04Wa\x16\x04a\x15\xACV[`@R\x91\x90PV[c\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x15\x85W`\0\x80\xFD[`\0\x80`\0\x80\x84\x86\x03`\xA0\x81\x12\x15a\x165W`\0\x80\xFD[\x855a\x16@\x81a\x15pV[\x94P` \x86\x015a\x16P\x81a\x15pV[\x93P`@\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xC0\x82\x01\x12\x15a\x16\x82W`\0\x80\xFD[P`@Q`@\x81\x01\x81\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17\x15a\x16\xA6Wa\x16\xA6a\x15\xACV[`@\x90\x81R\x86\x015\x81R``\x86\x015` \x82\x01R\x91P`\x80\x85\x015a\x16\xCA\x81a\x16\x0CV[\x93\x96\x92\x95P\x90\x93PPV[`\0[\x83\x81\x10\x15a\x16\xF0W\x81\x81\x01Q\x83\x82\x01R` \x01a\x16\xD8V[\x83\x81\x11\x15a\x16\xFFW`\0\x84\x84\x01R[PPPPV[`\0\x81Q\x80\x84Ra\x17\x1D\x81` \x86\x01` \x86\x01a\x16\xD5V[`\x1F\x01`\x1F\x19\x16\x92\x90\x92\x01` \x01\x92\x91PPV[` \x81R`\0a\x15\xA5` \x83\x01\x84a\x17\x05V[`\0` \x82\x84\x03\x12\x15a\x17VW`\0\x80\xFD[\x815a\x15\xA5\x81a\x16\x0CV[\x80Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x17yW`\0\x80\xFD[\x91\x90PV[`\0` \x82\x84\x03\x12\x15a\x17\x90W`\0\x80\xFD[a\x15\xA5\x82a\x17aV[\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`\x11`\x04R`$`\0\xFD[`\0\x82\x82\x10\x15a\x17\xDAWa\x17\xDAa\x17\x99V[P\x03\x90V[`\0` \x82\x84\x03\x12\x15a\x17\xF1W`\0\x80\xFD[\x81Q\x80\x15\x15\x81\x14a\x15\xA5W`\0\x80\xFD[`\0` \x82\x84\x03\x12\x15a\x18\x13W`\0\x80\xFD[PQ\x91\x90PV[`\0` \x82\x84\x03\x12\x15a\x18,W`\0\x80\xFD[\x81Qa\x15\xA5\x81a\x15pV[`\0\x81\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x04\x83\x11\x82\x15\x15\x16\x15a\x18oWa\x18oa\x17\x99V[P\x02\x90V[\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`!`\x04R`$`\0\xFD[`\0` \x82\x84\x03\x12\x15a\x18\xB5W`\0\x80\xFD[\x81Q`\x03\x81\x10a\x15\xA5W`\0\x80\xFD[`\0\x80`\0``\x84\x86\x03\x12\x15a\x18\xD9W`\0\x80\xFD[\x83Qa\x18\xE4\x81a\x16\x0CV[` \x85\x01Q`@\x86\x01Q\x91\x94P\x92Pg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x19\tW`\0\x80\xFD[\x81\x86\x01\x91P\x86`\x1F\x83\x01\x12a\x19\x1DW`\0\x80\xFD[\x81Q\x81\x81\x11\x15a\x19/Wa\x19/a\x15\xACV[a\x19B` `\x1F\x19`\x1F\x84\x01\x16\x01a\x15\xDBV[\x91P\x80\x82R\x87` \x82\x85\x01\x01\x11\x15a\x19YW`\0\x80\xFD[a\x19j\x81` \x84\x01` \x86\x01a\x16\xD5V[P\x80\x92PPP\x92P\x92P\x92V[c\xFF\xFF\xFF\xFF\x84\x16\x81R\x82` \x82\x01R```@\x82\x01R`\0a\x19\x9C``\x83\x01\x84a\x17\x05V[\x95\x94PPPPPV[`\0\x80`@\x83\x85\x03\x12\x15a\x19\xB8W`\0\x80\xFD[\x82Qa\x19\xC3\x81a\x15pV[\x91Pa\x19\xD1` \x84\x01a\x17aV[\x90P\x92P\x92\x90PV\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x608060405234801561001057600080fd5b50600436106101cf5760003560e01c80635958a19311610104578063952b2797116100a2578063e0a840eb11610071578063e0a840eb146104ae578063ee658e45146104c1578063f2b4e617146104d4578063fdbb3dcf146104e757600080fd5b8063952b279714610468578063d5a3e12e14610496578063d83ef2671461049e578063dad544e0146104a657600080fd5b80636c4f4467116100de5780636c4f4467146104075780637258a8071461041a5780637d6be8dc146104425780637fc485041461045557600080fd5b80635958a193146103ae5780635c975abb146103c1578063664ed830146103c957600080fd5b80633c9f397c1161017157806345884d321161014b57806345884d321461031c57806347a222c51461033f578063496b9c161461035257806354fd4d501461036557600080fd5b80633c9f397c146102ba5780633e47158c146102df5780634086d183146102e757600080fd5b806333d7e2bd116101ad57806333d7e2bd1461022457806334a346ea1461025557806335e80ab31461028157806338d38c971461028957600080fd5b80630314d2b3146101d457806304e50fed146101fc57806317cf21a91461020f575b600080fd5b6101e76101e2366004611588565b6104fa565b60405190151581526020015b60405180910390f35b6101e761020a366004611588565b6105cd565b61022261021d366004611588565b610637565b005b60005461023d906201000090046001600160a01b031681565b6040516001600160a01b0390911681526020016101f3565b6101e7610263366004611588565b6001600160a01b031660009081526005602052604090205460ff1690565b61023d610782565b60405160ff7f00000000000000000000000000000000000000000000000000000000000000001681526020016101f3565b6006546102ca9063ffffffff1681565b60405163ffffffff90911681526020016101f3565b61023d6107ff565b60065461030390640100000000900467ffffffffffffffff1681565b60405167ffffffffffffffff90911681526020016101f3565b6101e761032a366004611588565b60056020526000908152604090205460ff1681565b61022261034d36600461161e565b6109e3565b6101e7610360366004611588565b610c52565b6103a16040518060400160405280600581526020017f332e372e3000000000000000000000000000000000000000000000000000000081525081565b6040516101f39190611731565b6101e76103bc366004611588565b610cbd565b6101e7610d33565b6040805180820182526000808252602091820152815180830183526003548082526004549183019182528351908152905191810191909152016101f3565b6101e7610415366004611588565b610dab565b61042d610428366004611744565b610e6e565b604080519283526020830191909152016101f3565b610222610450366004611588565b610e82565b610222610463366004611744565b610ef4565b6040517f000000000000000000000000000000000000000000000000000000000000000081526020016101f3565b610222610f65565b61042d610fe5565b61023d611110565b60025461023d906001600160a01b031681565b6101e76104cf366004611588565b611157565b60015461023d906001600160a01b031681565b6101e76104f5366004611588565b6112f8565b6000610505826112f8565b61051157506000919050565b7f00000000000000000000000000000000000000000000000000000000000000006105a4836001600160a01b03166319effeb46040518163ffffffff1660e01b8152600401602060405180830381865afa158015610573573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610597919061177e565b67ffffffffffffffff1690565b6105b89067ffffffffffffffff16426117c8565b116105c557506000919050565b506001919050565b6000816001600160a01b031663250e69bd6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561060d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061063191906117df565b92915050565b8061064181610dab565b610677576040517f47ad367a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000610681610fe5565b91505080826001600160a01b03166399735e326040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106e79190611801565b1161071e576040517f47ad367a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600280547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0384169081179091556040517f474f180d74ea8751955ee261c93ff8270411b180408d1014c49f552c92a4d11e90600090a2505050565b60008060029054906101000a90046001600160a01b03166001600160a01b03166335e80ab36040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107fa919061181a565b905090565b60008061082a7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b90506001600160a01b0381161561084057919050565b6040518060400160405280601a81526020017f4f564d5f4c3143726f7373446f6d61696e4d657373656e6765720000000000008152505160026108839190611837565b604080513060208201526000918101919091527f4f564d5f4c3143726f7373446f6d61696e4d657373656e67657200000000000091909117906108de906060015b604051602081830303815290604052805190602001205490565b14610915576040517f54e433cd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60408051306020820152600191810191909152600090610937906060016108c4565b90506001600160a01b038116156109b157806001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610986573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109aa919061181a565b9250505090565b6040517f332144db00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f0000000000000000000000000000000000000000000000000000000000000000600054610100900460ff16158015610a23575060005460ff8083169116105b610ab3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840160405180910390fd5b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001660ff831617610100179055610aec611446565b600080547fffffffffffffffffffff0000000000000000000000000000000000000000ffff16620100006001600160a01b0388811691909102919091178255600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001691871691909117905583516003556020840151600455600680547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff85161790819055640100000000900467ffffffffffffffff169003610bed57600680547fffffffffffffffffffffffffffffffffffffffff0000000000000000ffffffff166401000000004267ffffffffffffffff16021790555b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050565b6000610c5d82611157565b610c6957506000919050565b6001600160a01b03821660009081526005602052604090205460ff1615610c9257506000919050565b610c9b82610cbd565b15610ca857506000919050565b610cb0610d33565b156105c557506000919050565b6000600660049054906101000a900467ffffffffffffffff1667ffffffffffffffff16610d21836001600160a01b031663cf09e0d06040518163ffffffff1660e01b8152600401602060405180830381865afa158015610573573d6000803e3d6000fd5b67ffffffffffffffff16111592915050565b60008060029054906101000a90046001600160a01b03166001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d87573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107fa91906117df565b6000610db682610c52565b610dc257506000919050565b610dcb826105cd565b610dd757506000919050565b610de0826104fa565b610dec57506000919050565b6002826001600160a01b031663200d2ed26040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e2c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e5091906118a3565b6002811115610e6157610e61611874565b146105c557506000919050565b600080610e79610fe5565b91509150915091565b610e8a6114af565b6001600160a01b03811660008181526005602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055517f192c289026d59a41a27f5aea08f3969b57931b0589202d14f4368cded95d3cda9190a250565b610efc6114af565b600680547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff83169081179091556040519081527fcee0703b5e4bad4efededab85c9fd1aec17dee7c5f6c584330e0509b677745a29060200160405180910390a150565b610f6d6114af565b600680547fffffffffffffffffffffffffffffffffffffffff0000000000000000ffffffff166401000000004267ffffffffffffffff811691909102919091179091556040519081527f6e5b1ba771e8e484f741ed085f039ff4e5c6e882eaf68f550fb390922d0ae4a79060200160405180910390a1565b60025460009081906001600160a01b03166110065750506003546004549091565b600254604080517fbcef3b550000000000000000000000000000000000000000000000000000000081529051611091926001600160a01b03169163bcef3b559160048083019260209291908290030181865afa15801561106a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061108e9190611801565b90565b600260009054906101000a90046001600160a01b03166001600160a01b03166399735e326040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110e4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111089190611801565b915091509091565b600061111a6107ff565b6001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107d6573d6000803e3d6000fd5b600080600080846001600160a01b031663fa24f7436040518163ffffffff1660e01b8152600401600060405180830381865afa15801561119b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526111c391908101906118c4565b6001546040517f5f0150cb00000000000000000000000000000000000000000000000000000000815293965091945092506000916001600160a01b0390911690635f0150cb9061121b90879087908790600401611977565b6040805180830381865afa158015611237573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061125b91906119a5565b5090506000866001600160a01b0316635c0cba336040518163ffffffff1660e01b8152600401602060405180830381865afa15801561129e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112c2919061181a565b9050866001600160a01b0316826001600160a01b03161480156112ed57506001600160a01b03811630145b979650505050505050565b600061133b826001600160a01b03166319effeb46040518163ffffffff1660e01b8152600401602060405180830381865afa158015610573573d6000803e3d6000fd5b67ffffffffffffffff161580159061063157506002826001600160a01b031663200d2ed26040518163ffffffff1660e01b8152600401602060405180830381865afa15801561138e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113b291906118a3565b60028111156113c3576113c3611874565b148061063157506001826001600160a01b031663200d2ed26040518163ffffffff1660e01b8152600401602060405180830381865afa15801561140a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061142e91906118a3565b600281111561143f5761143f611874565b1492915050565b3361144f6107ff565b6001600160a01b03161415801561147657503361146a611110565b6001600160a01b031614155b156114ad576040517fc4050a2600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b600060029054906101000a90046001600160a01b03166001600160a01b031663452a93206040518163ffffffff1660e01b8152600401602060405180830381865afa158015611502573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611526919061181a565b6001600160a01b0316336001600160a01b0316146114ad576040517f2e5321ac00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038116811461158557600080fd5b50565b60006020828403121561159a57600080fd5b81356115a581611570565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715611604576116046115ac565b604052919050565b63ffffffff8116811461158557600080fd5b60008060008084860360a081121561163557600080fd5b853561164081611570565b9450602086013561165081611570565b935060407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08201121561168257600080fd5b506040516040810181811067ffffffffffffffff821117156116a6576116a66115ac565b6040908152860135815260608601356020820152915060808501356116ca8161160c565b939692955090935050565b60005b838110156116f05781810151838201526020016116d8565b838111156116ff576000848401525b50505050565b6000815180845261171d8160208601602086016116d5565b601f01601f19169290920160200192915050565b6020815260006115a56020830184611705565b60006020828403121561175657600080fd5b81356115a58161160c565b805167ffffffffffffffff8116811461177957600080fd5b919050565b60006020828403121561179057600080fd5b6115a582611761565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000828210156117da576117da611799565b500390565b6000602082840312156117f157600080fd5b815180151581146115a557600080fd5b60006020828403121561181357600080fd5b5051919050565b60006020828403121561182c57600080fd5b81516115a581611570565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561186f5761186f611799565b500290565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6000602082840312156118b557600080fd5b8151600381106115a557600080fd5b6000806000606084860312156118d957600080fd5b83516118e48161160c565b60208501516040860151919450925067ffffffffffffffff8082111561190957600080fd5b818601915086601f83011261191d57600080fd5b81518181111561192f5761192f6115ac565b6119426020601f19601f840116016115db565b915080825287602082850101111561195957600080fd5b61196a8160208401602086016116d5565b5080925050509250925092565b63ffffffff8416815282602082015260606040820152600061199c6060830184611705565b95945050505050565b600080604083850312156119b857600080fd5b82516119c381611570565b91506119d160208401611761565b9050925092905056fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`\x046\x10a\x01\xCFW`\x005`\xE0\x1C\x80cYX\xA1\x93\x11a\x01\x04W\x80c\x95+'\x97\x11a\0\xA2W\x80c\xE0\xA8@\xEB\x11a\0qW\x80c\xE0\xA8@\xEB\x14a\x04\xAEW\x80c\xEEe\x8EE\x14a\x04\xC1W\x80c\xF2\xB4\xE6\x17\x14a\x04\xD4W\x80c\xFD\xBB=\xCF\x14a\x04\xE7W`\0\x80\xFD[\x80c\x95+'\x97\x14a\x04hW\x80c\xD5\xA3\xE1.\x14a\x04\x96W\x80c\xD8>\xF2g\x14a\x04\x9EW\x80c\xDA\xD5D\xE0\x14a\x04\xA6W`\0\x80\xFD[\x80clODg\x11a\0\xDEW\x80clODg\x14a\x04\x07W\x80crX\xA8\x07\x14a\x04\x1AW\x80c}k\xE8\xDC\x14a\x04BW\x80c\x7F\xC4\x85\x04\x14a\x04UW`\0\x80\xFD[\x80cYX\xA1\x93\x14a\x03\xAEW\x80c\\\x97Z\xBB\x14a\x03\xC1W\x80cfN\xD80\x14a\x03\xC9W`\0\x80\xFD[\x80c<\x9F9|\x11a\x01qW\x80cE\x88M2\x11a\x01KW\x80cE\x88M2\x14a\x03\x1CW\x80cG\xA2\"\xC5\x14a\x03?W\x80cIk\x9C\x16\x14a\x03RW\x80cT\xFDMP\x14a\x03eW`\0\x80\xFD[\x80c<\x9F9|\x14a\x02\xBAW\x80c>G\x15\x8C\x14a\x02\xDFW\x80c@\x86\xD1\x83\x14a\x02\xE7W`\0\x80\xFD[\x80c3\xD7\xE2\xBD\x11a\x01\xADW\x80c3\xD7\xE2\xBD\x14a\x02$W\x80c4\xA3F\xEA\x14a\x02UW\x80c5\xE8\n\xB3\x14a\x02\x81W\x80c8\xD3\x8C\x97\x14a\x02\x89W`\0\x80\xFD[\x80c\x03\x14\xD2\xB3\x14a\x01\xD4W\x80c\x04\xE5\x0F\xED\x14a\x01\xFCW\x80c\x17\xCF!\xA9\x14a\x02\x0FW[`\0\x80\xFD[a\x01\xE7a\x01\xE26`\x04a\x15\x88V[a\x04\xFAV[`@Q\x90\x15\x15\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[a\x01\xE7a\x02\n6`\x04a\x15\x88V[a\x05\xCDV[a\x02\"a\x02\x1D6`\x04a\x15\x88V[a\x067V[\0[`\0Ta\x02=\x90b\x01\0\0\x90\x04`\x01`\x01`\xA0\x1B\x03\x16\x81V[`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x01a\x01\xF3V[a\x01\xE7a\x02c6`\x04a\x15\x88V[`\x01`\x01`\xA0\x1B\x03\x16`\0\x90\x81R`\x05` R`@\x90 T`\xFF\x16\x90V[a\x02=a\x07\x82V[`@Q`\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x81R` \x01a\x01\xF3V[`\x06Ta\x02\xCA\x90c\xFF\xFF\xFF\xFF\x16\x81V[`@Qc\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01a\x01\xF3V[a\x02=a\x07\xFFV[`\x06Ta\x03\x03\x90d\x01\0\0\0\0\x90\x04g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[`@Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01a\x01\xF3V[a\x01\xE7a\x03*6`\x04a\x15\x88V[`\x05` R`\0\x90\x81R`@\x90 T`\xFF\x16\x81V[a\x02\"a\x03M6`\x04a\x16\x1EV[a\t\xE3V[a\x01\xE7a\x03`6`\x04a\x15\x88V[a\x0CRV[a\x03\xA1`@Q\x80`@\x01`@R\x80`\x05\x81R` \x01\x7F3.7.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\x81RP\x81V[`@Qa\x01\xF3\x91\x90a\x171V[a\x01\xE7a\x03\xBC6`\x04a\x15\x88V[a\x0C\xBDV[a\x01\xE7a\r3V[`@\x80Q\x80\x82\x01\x82R`\0\x80\x82R` \x91\x82\x01R\x81Q\x80\x83\x01\x83R`\x03T\x80\x82R`\x04T\x91\x83\x01\x91\x82R\x83Q\x90\x81R\x90Q\x91\x81\x01\x91\x90\x91R\x01a\x01\xF3V[a\x01\xE7a\x04\x156`\x04a\x15\x88V[a\r\xABV[a\x04-a\x04(6`\x04a\x17DV[a\x0EnV[`@\x80Q\x92\x83R` \x83\x01\x91\x90\x91R\x01a\x01\xF3V[a\x02\"a\x04P6`\x04a\x15\x88V[a\x0E\x82V[a\x02\"a\x04c6`\x04a\x17DV[a\x0E\xF4V[`@Q\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81R` \x01a\x01\xF3V[a\x02\"a\x0FeV[a\x04-a\x0F\xE5V[a\x02=a\x11\x10V[`\x02Ta\x02=\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[a\x01\xE7a\x04\xCF6`\x04a\x15\x88V[a\x11WV[`\x01Ta\x02=\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[a\x01\xE7a\x04\xF56`\x04a\x15\x88V[a\x12\xF8V[`\0a\x05\x05\x82a\x12\xF8V[a\x05\x11WP`\0\x91\x90PV[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x05\xA4\x83`\x01`\x01`\xA0\x1B\x03\x16c\x19\xEF\xFE\xB4`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x05sW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x05\x97\x91\x90a\x17~V[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90V[a\x05\xB8\x90g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16Ba\x17\xC8V[\x11a\x05\xC5WP`\0\x91\x90PV[P`\x01\x91\x90PV[`\0\x81`\x01`\x01`\xA0\x1B\x03\x16c%\x0Ei\xBD`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x06\rW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x061\x91\x90a\x17\xDFV[\x92\x91PPV[\x80a\x06A\x81a\r\xABV[a\x06wW`@Q\x7FG\xAD6z\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\x01`@Q\x80\x91\x03\x90\xFD[`\0a\x06\x81a\x0F\xE5V[\x91PP\x80\x82`\x01`\x01`\xA0\x1B\x03\x16c\x99s^2`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x06\xC3W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x06\xE7\x91\x90a\x18\x01V[\x11a\x07\x1EW`@Q\x7FG\xAD6z\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\x01`@Q\x80\x91\x03\x90\xFD[`\x02\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16`\x01`\x01`\xA0\x1B\x03\x84\x16\x90\x81\x17\x90\x91U`@Q\x7FGO\x18\rt\xEA\x87Q\x95^\xE2a\xC9?\xF8'\x04\x11\xB1\x80@\x8D\x10\x14\xC4\x9FU,\x92\xA4\xD1\x1E\x90`\0\x90\xA2PPPV[`\0\x80`\x02\x90T\x90a\x01\0\n\x90\x04`\x01`\x01`\xA0\x1B\x03\x16`\x01`\x01`\xA0\x1B\x03\x16c5\xE8\n\xB3`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x07\xD6W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x07\xFA\x91\x90a\x18\x1AV[\x90P\x90V[`\0\x80a\x08*\x7F\xB51'hJV\x8B1s\xAE\x13\xB9\xF8\xA6\x01n$>c\xB6\xE8\xEE\x11x\xD6\xA7\x17\x85\x0B]a\x03T\x90V[\x90P`\x01`\x01`\xA0\x1B\x03\x81\x16\x15a\x08@W\x91\x90PV[`@Q\x80`@\x01`@R\x80`\x1A\x81R` \x01\x7FOVM_L1CrossDomainMessenger\0\0\0\0\0\0\x81RPQ`\x02a\x08\x83\x91\x90a\x187V[`@\x80Q0` \x82\x01R`\0\x91\x81\x01\x91\x90\x91R\x7FOVM_L1CrossDomainMessenger\0\0\0\0\0\0\x91\x90\x91\x17\x90a\x08\xDE\x90``\x01[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 T\x90V[\x14a\t\x15W`@Q\x7FT\xE43\xCD\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\x01`@Q\x80\x91\x03\x90\xFD[`@\x80Q0` \x82\x01R`\x01\x91\x81\x01\x91\x90\x91R`\0\x90a\t7\x90``\x01a\x08\xC4V[\x90P`\x01`\x01`\xA0\x1B\x03\x81\x16\x15a\t\xB1W\x80`\x01`\x01`\xA0\x1B\x03\x16c\x8D\xA5\xCB[`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\t\x86W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\t\xAA\x91\x90a\x18\x1AV[\x92PPP\x90V[`@Q\x7F3!D\xDB\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\x01`@Q\x80\x91\x03\x90\xFD[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\0Ta\x01\0\x90\x04`\xFF\x16\x15\x80\x15a\n#WP`\0T`\xFF\x80\x83\x16\x91\x16\x10[a\n\xB3W`@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\x82\x01R`.`$\x82\x01R\x7FInitializable: contract is alrea`D\x82\x01R\x7Fdy initialized\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01`@Q\x80\x91\x03\x90\xFD[`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\x16`\xFF\x83\x16\x17a\x01\0\x17\x90Ua\n\xECa\x14FV[`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xFF\xFF\x16b\x01\0\0`\x01`\x01`\xA0\x1B\x03\x88\x81\x16\x91\x90\x91\x02\x91\x90\x91\x17\x82U`\x01\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x91\x87\x16\x91\x90\x91\x17\x90U\x83Q`\x03U` \x84\x01Q`\x04U`\x06\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\x16c\xFF\xFF\xFF\xFF\x85\x16\x17\x90\x81\x90Ud\x01\0\0\0\0\x90\x04g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90\x03a\x0B\xEDW`\x06\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\xFF\xFF\xFF\xFF\x16d\x01\0\0\0\0Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x02\x17\x90U[`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\x16\x90U`@Q`\xFF\x82\x16\x81R\x7F\x7F&\xB8?\xF9n\x1F+jh/\x138R\xF6y\x8A\t\xC4e\xDA\x95\x92\x14`\xCE\xFB8G@$\x98\x90` \x01`@Q\x80\x91\x03\x90\xA1PPPPPV[`\0a\x0C]\x82a\x11WV[a\x0CiWP`\0\x91\x90PV[`\x01`\x01`\xA0\x1B\x03\x82\x16`\0\x90\x81R`\x05` R`@\x90 T`\xFF\x16\x15a\x0C\x92WP`\0\x91\x90PV[a\x0C\x9B\x82a\x0C\xBDV[\x15a\x0C\xA8WP`\0\x91\x90PV[a\x0C\xB0a\r3V[\x15a\x05\xC5WP`\0\x91\x90PV[`\0`\x06`\x04\x90T\x90a\x01\0\n\x90\x04g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a\r!\x83`\x01`\x01`\xA0\x1B\x03\x16c\xCF\t\xE0\xD0`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x05sW=`\0\x80>=`\0\xFD[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x11\x15\x92\x91PPV[`\0\x80`\x02\x90T\x90a\x01\0\n\x90\x04`\x01`\x01`\xA0\x1B\x03\x16`\x01`\x01`\xA0\x1B\x03\x16c\\\x97Z\xBB`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\r\x87W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x07\xFA\x91\x90a\x17\xDFV[`\0a\r\xB6\x82a\x0CRV[a\r\xC2WP`\0\x91\x90PV[a\r\xCB\x82a\x05\xCDV[a\r\xD7WP`\0\x91\x90PV[a\r\xE0\x82a\x04\xFAV[a\r\xECWP`\0\x91\x90PV[`\x02\x82`\x01`\x01`\xA0\x1B\x03\x16c \r.\xD2`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x0E,W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x0EP\x91\x90a\x18\xA3V[`\x02\x81\x11\x15a\x0EaWa\x0Eaa\x18tV[\x14a\x05\xC5WP`\0\x91\x90PV[`\0\x80a\x0Eya\x0F\xE5V[\x91P\x91P\x91P\x91V[a\x0E\x8Aa\x14\xAFV[`\x01`\x01`\xA0\x1B\x03\x81\x16`\0\x81\x81R`\x05` R`@\x80\x82 \x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x16`\x01\x17\x90UQ\x7F\x19,(\x90&\xD5\x9AA\xA2\x7FZ\xEA\x08\xF3\x96\x9BW\x93\x1B\x05\x89 -\x14\xF46\x8C\xDE\xD9]<\xDA\x91\x90\xA2PV[a\x0E\xFCa\x14\xAFV[`\x06\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\x16c\xFF\xFF\xFF\xFF\x83\x16\x90\x81\x17\x90\x91U`@Q\x90\x81R\x7F\xCE\xE0p;^K\xADN\xFE\xDE\xDA\xB8\\\x9F\xD1\xAE\xC1}\xEE|_lXC0\xE0P\x9BgwE\xA2\x90` \x01`@Q\x80\x91\x03\x90\xA1PV[a\x0Fma\x14\xAFV[`\x06\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\xFF\xFF\xFF\xFF\x16d\x01\0\0\0\0Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x91\x90\x91\x02\x91\x90\x91\x17\x90\x91U`@Q\x90\x81R\x7Fn[\x1B\xA7q\xE8\xE4\x84\xF7A\xED\x08_\x03\x9F\xF4\xE5\xC6\xE8\x82\xEA\xF6\x8FU\x0F\xB3\x90\x92-\n\xE4\xA7\x90` \x01`@Q\x80\x91\x03\x90\xA1V[`\x02T`\0\x90\x81\x90`\x01`\x01`\xA0\x1B\x03\x16a\x10\x06WPP`\x03T`\x04T\x90\x91V[`\x02T`@\x80Q\x7F\xBC\xEF;U\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\x90Qa\x10\x91\x92`\x01`\x01`\xA0\x1B\x03\x16\x91c\xBC\xEF;U\x91`\x04\x80\x83\x01\x92` \x92\x91\x90\x82\x90\x03\x01\x81\x86Z\xFA\x15\x80\x15a\x10jW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x10\x8E\x91\x90a\x18\x01V[\x90V[`\x02`\0\x90T\x90a\x01\0\n\x90\x04`\x01`\x01`\xA0\x1B\x03\x16`\x01`\x01`\xA0\x1B\x03\x16c\x99s^2`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x10\xE4W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x11\x08\x91\x90a\x18\x01V[\x91P\x91P\x90\x91V[`\0a\x11\x1Aa\x07\xFFV[`\x01`\x01`\xA0\x1B\x03\x16c\x8D\xA5\xCB[`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x07\xD6W=`\0\x80>=`\0\xFD[`\0\x80`\0\x80\x84`\x01`\x01`\xA0\x1B\x03\x16c\xFA$\xF7C`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01`\0`@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x11\x9BW=`\0\x80>=`\0\xFD[PPPP`@Q=`\0\x82>`\x1F=\x90\x81\x01`\x1F\x19\x16\x82\x01`@Ra\x11\xC3\x91\x90\x81\x01\x90a\x18\xC4V[`\x01T`@Q\x7F_\x01P\xCB\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\x93\x96P\x91\x94P\x92P`\0\x91`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x90c_\x01P\xCB\x90a\x12\x1B\x90\x87\x90\x87\x90\x87\x90`\x04\x01a\x19wV[`@\x80Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x127W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x12[\x91\x90a\x19\xA5V[P\x90P`\0\x86`\x01`\x01`\xA0\x1B\x03\x16c\\\x0C\xBA3`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x12\x9EW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x12\xC2\x91\x90a\x18\x1AV[\x90P\x86`\x01`\x01`\xA0\x1B\x03\x16\x82`\x01`\x01`\xA0\x1B\x03\x16\x14\x80\x15a\x12\xEDWP`\x01`\x01`\xA0\x1B\x03\x81\x160\x14[\x97\x96PPPPPPPV[`\0a\x13;\x82`\x01`\x01`\xA0\x1B\x03\x16c\x19\xEF\xFE\xB4`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x05sW=`\0\x80>=`\0\xFD[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x15\x80\x15\x90a\x061WP`\x02\x82`\x01`\x01`\xA0\x1B\x03\x16c \r.\xD2`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x13\x8EW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x13\xB2\x91\x90a\x18\xA3V[`\x02\x81\x11\x15a\x13\xC3Wa\x13\xC3a\x18tV[\x14\x80a\x061WP`\x01\x82`\x01`\x01`\xA0\x1B\x03\x16c \r.\xD2`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x14\nW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x14.\x91\x90a\x18\xA3V[`\x02\x81\x11\x15a\x14?Wa\x14?a\x18tV[\x14\x92\x91PPV[3a\x14Oa\x07\xFFV[`\x01`\x01`\xA0\x1B\x03\x16\x14\x15\x80\x15a\x14vWP3a\x14ja\x11\x10V[`\x01`\x01`\xA0\x1B\x03\x16\x14\x15[\x15a\x14\xADW`@Q\x7F\xC4\x05\n&\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\x01`@Q\x80\x91\x03\x90\xFD[V[`\0`\x02\x90T\x90a\x01\0\n\x90\x04`\x01`\x01`\xA0\x1B\x03\x16`\x01`\x01`\xA0\x1B\x03\x16cE*\x93 `@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x15\x02W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x15&\x91\x90a\x18\x1AV[`\x01`\x01`\xA0\x1B\x03\x163`\x01`\x01`\xA0\x1B\x03\x16\x14a\x14\xADW`@Q\x7F.S!\xAC\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a\x15\x85W`\0\x80\xFD[PV[`\0` \x82\x84\x03\x12\x15a\x15\x9AW`\0\x80\xFD[\x815a\x15\xA5\x81a\x15pV[\x93\x92PPPV[\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[`@Q`\x1F\x82\x01`\x1F\x19\x16\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a\x16\x04Wa\x16\x04a\x15\xACV[`@R\x91\x90PV[c\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x15\x85W`\0\x80\xFD[`\0\x80`\0\x80\x84\x86\x03`\xA0\x81\x12\x15a\x165W`\0\x80\xFD[\x855a\x16@\x81a\x15pV[\x94P` \x86\x015a\x16P\x81a\x15pV[\x93P`@\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xC0\x82\x01\x12\x15a\x16\x82W`\0\x80\xFD[P`@Q`@\x81\x01\x81\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17\x15a\x16\xA6Wa\x16\xA6a\x15\xACV[`@\x90\x81R\x86\x015\x81R``\x86\x015` \x82\x01R\x91P`\x80\x85\x015a\x16\xCA\x81a\x16\x0CV[\x93\x96\x92\x95P\x90\x93PPV[`\0[\x83\x81\x10\x15a\x16\xF0W\x81\x81\x01Q\x83\x82\x01R` \x01a\x16\xD8V[\x83\x81\x11\x15a\x16\xFFW`\0\x84\x84\x01R[PPPPV[`\0\x81Q\x80\x84Ra\x17\x1D\x81` \x86\x01` \x86\x01a\x16\xD5V[`\x1F\x01`\x1F\x19\x16\x92\x90\x92\x01` \x01\x92\x91PPV[` \x81R`\0a\x15\xA5` \x83\x01\x84a\x17\x05V[`\0` \x82\x84\x03\x12\x15a\x17VW`\0\x80\xFD[\x815a\x15\xA5\x81a\x16\x0CV[\x80Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x17yW`\0\x80\xFD[\x91\x90PV[`\0` \x82\x84\x03\x12\x15a\x17\x90W`\0\x80\xFD[a\x15\xA5\x82a\x17aV[\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`\x11`\x04R`$`\0\xFD[`\0\x82\x82\x10\x15a\x17\xDAWa\x17\xDAa\x17\x99V[P\x03\x90V[`\0` \x82\x84\x03\x12\x15a\x17\xF1W`\0\x80\xFD[\x81Q\x80\x15\x15\x81\x14a\x15\xA5W`\0\x80\xFD[`\0` \x82\x84\x03\x12\x15a\x18\x13W`\0\x80\xFD[PQ\x91\x90PV[`\0` \x82\x84\x03\x12\x15a\x18,W`\0\x80\xFD[\x81Qa\x15\xA5\x81a\x15pV[`\0\x81\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x04\x83\x11\x82\x15\x15\x16\x15a\x18oWa\x18oa\x17\x99V[P\x02\x90V[\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`!`\x04R`$`\0\xFD[`\0` \x82\x84\x03\x12\x15a\x18\xB5W`\0\x80\xFD[\x81Q`\x03\x81\x10a\x15\xA5W`\0\x80\xFD[`\0\x80`\0``\x84\x86\x03\x12\x15a\x18\xD9W`\0\x80\xFD[\x83Qa\x18\xE4\x81a\x16\x0CV[` \x85\x01Q`@\x86\x01Q\x91\x94P\x92Pg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x19\tW`\0\x80\xFD[\x81\x86\x01\x91P\x86`\x1F\x83\x01\x12a\x19\x1DW`\0\x80\xFD[\x81Q\x81\x81\x11\x15a\x19/Wa\x19/a\x15\xACV[a\x19B` `\x1F\x19`\x1F\x84\x01\x16\x01a\x15\xDBV[\x91P\x80\x82R\x87` \x82\x85\x01\x01\x11\x15a\x19YW`\0\x80\xFD[a\x19j\x81` \x84\x01` \x86\x01a\x16\xD5V[P\x80\x92PPP\x92P\x92P\x92V[c\xFF\xFF\xFF\xFF\x84\x16\x81R\x82` \x82\x01R```@\x82\x01R`\0a\x19\x9C``\x83\x01\x84a\x17\x05V[\x95\x94PPPPPV[`\0\x80`@\x83\x85\x03\x12\x15a\x19\xB8W`\0\x80\xFD[\x82Qa\x19\xC3\x81a\x15pV[\x91Pa\x19\xD1` \x84\x01a\x17aV[\x90P\x92P\x92\x90PV\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct GameType(u32); + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for u32 { + #[inline] + fn stv_to_tokens( + &self, + ) -> as alloy_sol_types::SolType>::Token<'_> { + alloy_sol_types::private::SolTypeValue::< + alloy::sol_types::sol_data::Uint<32>, + >::stv_to_tokens(self) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + as alloy_sol_types::SolType>::tokenize(self) + .0 + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::SolType>::abi_encode_packed_to(self, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + as alloy_sol_types::SolType>::abi_encoded_size(self) + } + } + impl GameType { + /// The Solidity type name. + pub const NAME: &'static str = stringify!(@ name); + /// Convert from the underlying value type. + #[inline] + pub const fn from_underlying(value: u32) -> Self { + Self(value) + } + /// Return the underlying value. + #[inline] + pub const fn into_underlying(self) -> u32 { + self.0 + } + /// Return the single encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode(&self) -> alloy_sol_types::private::Vec { + ::abi_encode(&self.0) + } + /// Return the packed encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec { + ::abi_encode_packed(&self.0) + } + } + #[automatically_derived] + impl From for GameType { + fn from(value: u32) -> Self { + Self::from_underlying(value) + } + } + #[automatically_derived] + impl From for u32 { + fn from(value: GameType) -> Self { + value.into_underlying() + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for GameType { + type RustType = u32; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = Self::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + Self::type_check(token).is_ok() + } + #[inline] + fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> { + as alloy_sol_types::SolType>::type_check(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + as alloy_sol_types::SolType>::detokenize(token) + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for GameType { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + as alloy_sol_types::EventTopic>::topic_preimage_length(rust) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out) + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + as alloy_sol_types::EventTopic>::encode_topic(rust) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct Hash(alloy::sol_types::private::FixedBytes<32>); + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue + for alloy::sol_types::private::FixedBytes<32> { + #[inline] + fn stv_to_tokens( + &self, + ) -> as alloy_sol_types::SolType>::Token<'_> { + alloy_sol_types::private::SolTypeValue::< + alloy::sol_types::sol_data::FixedBytes<32>, + >::stv_to_tokens(self) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + as alloy_sol_types::SolType>::tokenize(self) + .0 + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::SolType>::abi_encode_packed_to(self, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + as alloy_sol_types::SolType>::abi_encoded_size(self) + } + } + impl Hash { + /// The Solidity type name. + pub const NAME: &'static str = stringify!(@ name); + /// Convert from the underlying value type. + #[inline] + pub const fn from_underlying( + value: alloy::sol_types::private::FixedBytes<32>, + ) -> Self { + Self(value) + } + /// Return the underlying value. + #[inline] + pub const fn into_underlying( + self, + ) -> alloy::sol_types::private::FixedBytes<32> { + self.0 + } + /// Return the single encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode(&self) -> alloy_sol_types::private::Vec { + ::abi_encode(&self.0) + } + /// Return the packed encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec { + ::abi_encode_packed(&self.0) + } + } + #[automatically_derived] + impl From> for Hash { + fn from(value: alloy::sol_types::private::FixedBytes<32>) -> Self { + Self::from_underlying(value) + } + } + #[automatically_derived] + impl From for alloy::sol_types::private::FixedBytes<32> { + fn from(value: Hash) -> Self { + value.into_underlying() + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for Hash { + type RustType = alloy::sol_types::private::FixedBytes<32>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = Self::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + Self::type_check(token).is_ok() + } + #[inline] + fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> { + as alloy_sol_types::SolType>::type_check(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + as alloy_sol_types::SolType>::detokenize(token) + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for Hash { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + as alloy_sol_types::EventTopic>::topic_preimage_length(rust) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out) + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + as alloy_sol_types::EventTopic>::encode_topic(rust) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**```solidity +struct Proposal { Hash root; uint256 l2SequenceNumber; } +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct Proposal { + #[allow(missing_docs)] + pub root: ::RustType, + #[allow(missing_docs)] + pub l2SequenceNumber: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Hash, alloy::sol_types::sol_data::Uint<256>); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: Proposal) -> Self { + (value.root, value.l2SequenceNumber) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for Proposal { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + root: tuple.0, + l2SequenceNumber: tuple.1, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolValue for Proposal { + type SolType = Self; + } + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for Proposal { + #[inline] + fn stv_to_tokens(&self) -> ::Token<'_> { + ( + ::tokenize(&self.root), + as alloy_sol_types::SolType>::tokenize(&self.l2SequenceNumber), + ) + } + #[inline] + fn stv_abi_encoded_size(&self) -> usize { + if let Some(size) = ::ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encoded_size(&tuple) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + ::eip712_hash_struct(self) + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + if let Some(size) = ::PACKED_ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for Proposal { + type RustType = Self; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = ::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + as alloy_sol_types::SolType>::valid_token(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + let tuple = as alloy_sol_types::SolType>::detokenize(token); + >>::from(tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolStruct for Proposal { + const NAME: &'static str = "Proposal"; + #[inline] + fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> { + alloy_sol_types::private::Cow::Borrowed( + "Proposal(bytes32 root,uint256 l2SequenceNumber)", + ) + } + #[inline] + fn eip712_components() -> alloy_sol_types::private::Vec< + alloy_sol_types::private::Cow<'static, str>, + > { + alloy_sol_types::private::Vec::new() + } + #[inline] + fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> { + ::eip712_root_type() + } + #[inline] + fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec { + [ + ::eip712_data_word(&self.root).0, + as alloy_sol_types::SolType>::eip712_data_word( + &self.l2SequenceNumber, + ) + .0, + ] + .concat() + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for Proposal { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + 0usize + + ::topic_preimage_length( + &rust.root, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.l2SequenceNumber, + ) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + out.reserve( + ::topic_preimage_length(rust), + ); + ::encode_topic_preimage( + &rust.root, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.l2SequenceNumber, + out, + ); + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + let mut out = alloy_sol_types::private::Vec::new(); + ::encode_topic_preimage( + rust, + &mut out, + ); + alloy_sol_types::abi::token::WordToken( + alloy_sol_types::private::keccak256(out), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `AnchorStateRegistry_InvalidAnchorGame()` and selector `0x47ad367a`. +```solidity +error AnchorStateRegistry_InvalidAnchorGame(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct AnchorStateRegistry_InvalidAnchorGame; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: AnchorStateRegistry_InvalidAnchorGame) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for AnchorStateRegistry_InvalidAnchorGame { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for AnchorStateRegistry_InvalidAnchorGame { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "AnchorStateRegistry_InvalidAnchorGame()"; + const SELECTOR: [u8; 4] = [71u8, 173u8, 54u8, 122u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `AnchorStateRegistry_Unauthorized()` and selector `0x2e5321ac`. +```solidity +error AnchorStateRegistry_Unauthorized(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct AnchorStateRegistry_Unauthorized; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: AnchorStateRegistry_Unauthorized) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for AnchorStateRegistry_Unauthorized { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for AnchorStateRegistry_Unauthorized { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "AnchorStateRegistry_Unauthorized()"; + const SELECTOR: [u8; 4] = [46u8, 83u8, 33u8, 172u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ProxyAdminOwnedBase_NotProxyAdmin()` and selector `0xe818dcc3`. +```solidity +error ProxyAdminOwnedBase_NotProxyAdmin(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ProxyAdminOwnedBase_NotProxyAdmin; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: ProxyAdminOwnedBase_NotProxyAdmin) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for ProxyAdminOwnedBase_NotProxyAdmin { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ProxyAdminOwnedBase_NotProxyAdmin { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ProxyAdminOwnedBase_NotProxyAdmin()"; + const SELECTOR: [u8; 4] = [232u8, 24u8, 220u8, 195u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner()` and selector `0xc4050a26`. +```solidity +error ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError + for ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner()"; + const SELECTOR: [u8; 4] = [196u8, 5u8, 10u8, 38u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ProxyAdminOwnedBase_NotProxyAdminOwner()` and selector `0x7f12c64b`. +```solidity +error ProxyAdminOwnedBase_NotProxyAdminOwner(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ProxyAdminOwnedBase_NotProxyAdminOwner; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: ProxyAdminOwnedBase_NotProxyAdminOwner) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for ProxyAdminOwnedBase_NotProxyAdminOwner { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ProxyAdminOwnedBase_NotProxyAdminOwner { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ProxyAdminOwnedBase_NotProxyAdminOwner()"; + const SELECTOR: [u8; 4] = [127u8, 18u8, 198u8, 75u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ProxyAdminOwnedBase_NotResolvedDelegateProxy()` and selector `0x54e433cd`. +```solidity +error ProxyAdminOwnedBase_NotResolvedDelegateProxy(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ProxyAdminOwnedBase_NotResolvedDelegateProxy; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: ProxyAdminOwnedBase_NotResolvedDelegateProxy) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for ProxyAdminOwnedBase_NotResolvedDelegateProxy { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ProxyAdminOwnedBase_NotResolvedDelegateProxy { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ProxyAdminOwnedBase_NotResolvedDelegateProxy()"; + const SELECTOR: [u8; 4] = [84u8, 228u8, 51u8, 205u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ProxyAdminOwnedBase_NotSharedProxyAdminOwner()` and selector `0x075c4314`. +```solidity +error ProxyAdminOwnedBase_NotSharedProxyAdminOwner(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ProxyAdminOwnedBase_NotSharedProxyAdminOwner; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: ProxyAdminOwnedBase_NotSharedProxyAdminOwner) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for ProxyAdminOwnedBase_NotSharedProxyAdminOwner { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ProxyAdminOwnedBase_NotSharedProxyAdminOwner { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ProxyAdminOwnedBase_NotSharedProxyAdminOwner()"; + const SELECTOR: [u8; 4] = [7u8, 92u8, 67u8, 20u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ProxyAdminOwnedBase_ProxyAdminNotFound()` and selector `0x332144db`. +```solidity +error ProxyAdminOwnedBase_ProxyAdminNotFound(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ProxyAdminOwnedBase_ProxyAdminNotFound; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: ProxyAdminOwnedBase_ProxyAdminNotFound) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for ProxyAdminOwnedBase_ProxyAdminNotFound { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ProxyAdminOwnedBase_ProxyAdminNotFound { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ProxyAdminOwnedBase_ProxyAdminNotFound()"; + const SELECTOR: [u8; 4] = [51u8, 33u8, 68u8, 219u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ReinitializableBase_ZeroInitVersion()` and selector `0x9b01afed`. +```solidity +error ReinitializableBase_ZeroInitVersion(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ReinitializableBase_ZeroInitVersion; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: ReinitializableBase_ZeroInitVersion) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for ReinitializableBase_ZeroInitVersion { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ReinitializableBase_ZeroInitVersion { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ReinitializableBase_ZeroInitVersion()"; + const SELECTOR: [u8; 4] = [155u8, 1u8, 175u8, 237u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `AnchorUpdated(address)` and selector `0x474f180d74ea8751955ee261c93ff8270411b180408d1014c49f552c92a4d11e`. +```solidity +event AnchorUpdated(address indexed game); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct AnchorUpdated { + #[allow(missing_docs)] + pub game: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for AnchorUpdated { + type DataTuple<'a> = (); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "AnchorUpdated(address)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 71u8, 79u8, 24u8, 13u8, 116u8, 234u8, 135u8, 81u8, 149u8, 94u8, 226u8, + 97u8, 201u8, 63u8, 248u8, 39u8, 4u8, 17u8, 177u8, 128u8, 64u8, 141u8, + 16u8, 20u8, 196u8, 159u8, 85u8, 44u8, 146u8, 164u8, 209u8, 30u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { game: topics.1 } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + () + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.game.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.game, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for AnchorUpdated { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&AnchorUpdated> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &AnchorUpdated) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `DisputeGameBlacklisted(address)` and selector `0x192c289026d59a41a27f5aea08f3969b57931b0589202d14f4368cded95d3cda`. +```solidity +event DisputeGameBlacklisted(address indexed disputeGame); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct DisputeGameBlacklisted { + #[allow(missing_docs)] + pub disputeGame: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for DisputeGameBlacklisted { + type DataTuple<'a> = (); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "DisputeGameBlacklisted(address)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 25u8, 44u8, 40u8, 144u8, 38u8, 213u8, 154u8, 65u8, 162u8, 127u8, 90u8, + 234u8, 8u8, 243u8, 150u8, 155u8, 87u8, 147u8, 27u8, 5u8, 137u8, 32u8, + 45u8, 20u8, 244u8, 54u8, 140u8, 222u8, 217u8, 93u8, 60u8, 218u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { disputeGame: topics.1 } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + () + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.disputeGame.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.disputeGame, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for DisputeGameBlacklisted { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&DisputeGameBlacklisted> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &DisputeGameBlacklisted) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `Initialized(uint8)` and selector `0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498`. +```solidity +event Initialized(uint8 version); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct Initialized { + #[allow(missing_docs)] + pub version: u8, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for Initialized { + type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<8>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,); + const SIGNATURE: &'static str = "Initialized(uint8)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 127u8, 38u8, 184u8, 63u8, 249u8, 110u8, 31u8, 43u8, 106u8, 104u8, 47u8, + 19u8, 56u8, 82u8, 246u8, 121u8, 138u8, 9u8, 196u8, 101u8, 218u8, 149u8, + 146u8, 20u8, 96u8, 206u8, 251u8, 56u8, 71u8, 64u8, 36u8, 152u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { version: data.0 } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.version), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(),) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for Initialized { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&Initialized> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &Initialized) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `RespectedGameTypeSet(uint32)` and selector `0xcee0703b5e4bad4efededab85c9fd1aec17dee7c5f6c584330e0509b677745a2`. +```solidity +event RespectedGameTypeSet(GameType gameType); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct RespectedGameTypeSet { + #[allow(missing_docs)] + pub gameType: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for RespectedGameTypeSet { + type DataTuple<'a> = (GameType,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,); + const SIGNATURE: &'static str = "RespectedGameTypeSet(uint32)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 206u8, 224u8, 112u8, 59u8, 94u8, 75u8, 173u8, 78u8, 254u8, 222u8, 218u8, + 184u8, 92u8, 159u8, 209u8, 174u8, 193u8, 125u8, 238u8, 124u8, 95u8, + 108u8, 88u8, 67u8, 48u8, 224u8, 80u8, 155u8, 103u8, 119u8, 69u8, 162u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { gameType: data.0 } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + (::tokenize(&self.gameType),) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(),) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for RespectedGameTypeSet { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&RespectedGameTypeSet> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &RespectedGameTypeSet) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `RetirementTimestampSet(uint256)` and selector `0x6e5b1ba771e8e484f741ed085f039ff4e5c6e882eaf68f550fb390922d0ae4a7`. +```solidity +event RetirementTimestampSet(uint256 timestamp); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct RetirementTimestampSet { + #[allow(missing_docs)] + pub timestamp: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for RetirementTimestampSet { + type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,); + const SIGNATURE: &'static str = "RetirementTimestampSet(uint256)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 110u8, 91u8, 27u8, 167u8, 113u8, 232u8, 228u8, 132u8, 247u8, 65u8, 237u8, + 8u8, 95u8, 3u8, 159u8, 244u8, 229u8, 198u8, 232u8, 130u8, 234u8, 246u8, + 143u8, 85u8, 15u8, 179u8, 144u8, 146u8, 45u8, 10u8, 228u8, 167u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { timestamp: data.0 } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.timestamp), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(),) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for RetirementTimestampSet { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&RetirementTimestampSet> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &RetirementTimestampSet) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + /**Constructor`. +```solidity +constructor(uint256 _disputeGameFinalityDelaySeconds); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct constructorCall { + #[allow(missing_docs)] + pub _disputeGameFinalityDelaySeconds: alloy::sol_types::private::primitives::aliases::U256, + } + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: constructorCall) -> Self { + (value._disputeGameFinalityDelaySeconds,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for constructorCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _disputeGameFinalityDelaySeconds: tuple.0, + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolConstructor for constructorCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize( + &self._disputeGameFinalityDelaySeconds, + ), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `anchorGame()` and selector `0xe0a840eb`. +```solidity +function anchorGame() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct anchorGameCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`anchorGame()`](anchorGameCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct anchorGameReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: anchorGameCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for anchorGameCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: anchorGameReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for anchorGameReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for anchorGameCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "anchorGame()"; + const SELECTOR: [u8; 4] = [224u8, 168u8, 64u8, 235u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: anchorGameReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: anchorGameReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `anchors(uint32)` and selector `0x7258a807`. +```solidity +function anchors(GameType) external view returns (Hash, uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct anchorsCall(pub ::RustType); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`anchors(uint32)`](anchorsCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct anchorsReturn { + #[allow(missing_docs)] + pub _0: ::RustType, + #[allow(missing_docs)] + pub _1: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (GameType,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: anchorsCall) -> Self { + (value.0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for anchorsCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self(tuple.0) + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Hash, alloy::sol_types::sol_data::Uint<256>); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: anchorsReturn) -> Self { + (value._0, value._1) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for anchorsReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0, _1: tuple.1 } + } + } + } + impl anchorsReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + ( + ::tokenize(&self._0), + as alloy_sol_types::SolType>::tokenize(&self._1), + ) + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for anchorsCall { + type Parameters<'a> = (GameType,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = anchorsReturn; + type ReturnTuple<'a> = (Hash, alloy::sol_types::sol_data::Uint<256>); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "anchors(uint32)"; + const SELECTOR: [u8; 4] = [114u8, 88u8, 168u8, 7u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + (::tokenize(&self.0),) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + anchorsReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `blacklistDisputeGame(address)` and selector `0x7d6be8dc`. +```solidity +function blacklistDisputeGame(address _disputeGame) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct blacklistDisputeGameCall { + #[allow(missing_docs)] + pub _disputeGame: alloy::sol_types::private::Address, + } + ///Container type for the return parameters of the [`blacklistDisputeGame(address)`](blacklistDisputeGameCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct blacklistDisputeGameReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: blacklistDisputeGameCall) -> Self { + (value._disputeGame,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for blacklistDisputeGameCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _disputeGame: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: blacklistDisputeGameReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for blacklistDisputeGameReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl blacklistDisputeGameReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken< + '_, + > { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for blacklistDisputeGameCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = blacklistDisputeGameReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "blacklistDisputeGame(address)"; + const SELECTOR: [u8; 4] = [125u8, 107u8, 232u8, 220u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._disputeGame, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + blacklistDisputeGameReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `disputeGameBlacklist(address)` and selector `0x45884d32`. +```solidity +function disputeGameBlacklist(address) external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct disputeGameBlacklistCall(pub alloy::sol_types::private::Address); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`disputeGameBlacklist(address)`](disputeGameBlacklistCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct disputeGameBlacklistReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: disputeGameBlacklistCall) -> Self { + (value.0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for disputeGameBlacklistCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self(tuple.0) + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: disputeGameBlacklistReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for disputeGameBlacklistReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for disputeGameBlacklistCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "disputeGameBlacklist(address)"; + const SELECTOR: [u8; 4] = [69u8, 136u8, 77u8, 50u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.0, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: disputeGameBlacklistReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: disputeGameBlacklistReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `disputeGameFactory()` and selector `0xf2b4e617`. +```solidity +function disputeGameFactory() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct disputeGameFactoryCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`disputeGameFactory()`](disputeGameFactoryCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct disputeGameFactoryReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: disputeGameFactoryCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for disputeGameFactoryCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: disputeGameFactoryReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for disputeGameFactoryReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for disputeGameFactoryCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "disputeGameFactory()"; + const SELECTOR: [u8; 4] = [242u8, 180u8, 230u8, 23u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: disputeGameFactoryReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: disputeGameFactoryReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `disputeGameFinalityDelaySeconds()` and selector `0x952b2797`. +```solidity +function disputeGameFinalityDelaySeconds() external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct disputeGameFinalityDelaySecondsCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`disputeGameFinalityDelaySeconds()`](disputeGameFinalityDelaySecondsCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct disputeGameFinalityDelaySecondsReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: disputeGameFinalityDelaySecondsCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for disputeGameFinalityDelaySecondsCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: disputeGameFinalityDelaySecondsReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for disputeGameFinalityDelaySecondsReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for disputeGameFinalityDelaySecondsCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "disputeGameFinalityDelaySeconds()"; + const SELECTOR: [u8; 4] = [149u8, 43u8, 39u8, 151u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: disputeGameFinalityDelaySecondsReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: disputeGameFinalityDelaySecondsReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `getAnchorRoot()` and selector `0xd83ef267`. +```solidity +function getAnchorRoot() external view returns (Hash, uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getAnchorRootCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`getAnchorRoot()`](getAnchorRootCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getAnchorRootReturn { + #[allow(missing_docs)] + pub _0: ::RustType, + #[allow(missing_docs)] + pub _1: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: getAnchorRootCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for getAnchorRootCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Hash, alloy::sol_types::sol_data::Uint<256>); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: getAnchorRootReturn) -> Self { + (value._0, value._1) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for getAnchorRootReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0, _1: tuple.1 } + } + } + } + impl getAnchorRootReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + ( + ::tokenize(&self._0), + as alloy_sol_types::SolType>::tokenize(&self._1), + ) + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for getAnchorRootCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = getAnchorRootReturn; + type ReturnTuple<'a> = (Hash, alloy::sol_types::sol_data::Uint<256>); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "getAnchorRoot()"; + const SELECTOR: [u8; 4] = [216u8, 62u8, 242u8, 103u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + getAnchorRootReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `getStartingAnchorRoot()` and selector `0x664ed830`. +```solidity +function getStartingAnchorRoot() external view returns (Proposal memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getStartingAnchorRootCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`getStartingAnchorRoot()`](getStartingAnchorRootCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getStartingAnchorRootReturn { + #[allow(missing_docs)] + pub _0: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: getStartingAnchorRootCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for getStartingAnchorRootCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Proposal,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: getStartingAnchorRootReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for getStartingAnchorRootReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for getStartingAnchorRootCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (Proposal,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "getStartingAnchorRoot()"; + const SELECTOR: [u8; 4] = [102u8, 78u8, 216u8, 48u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: getStartingAnchorRootReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: getStartingAnchorRootReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `initVersion()` and selector `0x38d38c97`. +```solidity +function initVersion() external view returns (uint8); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct initVersionCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`initVersion()`](initVersionCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct initVersionReturn { + #[allow(missing_docs)] + pub _0: u8, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: initVersionCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for initVersionCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<8>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u8,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: initVersionReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for initVersionReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for initVersionCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u8; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<8>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "initVersion()"; + const SELECTOR: [u8; 4] = [56u8, 211u8, 140u8, 151u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: initVersionReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: initVersionReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `initialize(address,address,(bytes32,uint256),uint32)` and selector `0x47a222c5`. +```solidity +function initialize(address _systemConfig, address _disputeGameFactory, Proposal memory _startingAnchorRoot, GameType _startingRespectedGameType) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct initializeCall { + #[allow(missing_docs)] + pub _systemConfig: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _disputeGameFactory: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _startingAnchorRoot: ::RustType, + #[allow(missing_docs)] + pub _startingRespectedGameType: ::RustType, + } + ///Container type for the return parameters of the [`initialize(address,address,(bytes32,uint256),uint32)`](initializeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct initializeReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + Proposal, + GameType, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + ::RustType, + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: initializeCall) -> Self { + ( + value._systemConfig, + value._disputeGameFactory, + value._startingAnchorRoot, + value._startingRespectedGameType, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for initializeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _systemConfig: tuple.0, + _disputeGameFactory: tuple.1, + _startingAnchorRoot: tuple.2, + _startingRespectedGameType: tuple.3, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: initializeReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for initializeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl initializeReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for initializeCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + Proposal, + GameType, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = initializeReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "initialize(address,address,(bytes32,uint256),uint32)"; + const SELECTOR: [u8; 4] = [71u8, 162u8, 34u8, 197u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._systemConfig, + ), + ::tokenize( + &self._disputeGameFactory, + ), + ::tokenize( + &self._startingAnchorRoot, + ), + ::tokenize( + &self._startingRespectedGameType, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + initializeReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `isGameBlacklisted(address)` and selector `0x34a346ea`. +```solidity +function isGameBlacklisted(address _game) external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct isGameBlacklistedCall { + #[allow(missing_docs)] + pub _game: alloy::sol_types::private::Address, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`isGameBlacklisted(address)`](isGameBlacklistedCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct isGameBlacklistedReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: isGameBlacklistedCall) -> Self { + (value._game,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for isGameBlacklistedCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _game: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: isGameBlacklistedReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for isGameBlacklistedReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for isGameBlacklistedCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "isGameBlacklisted(address)"; + const SELECTOR: [u8; 4] = [52u8, 163u8, 70u8, 234u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._game, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: isGameBlacklistedReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: isGameBlacklistedReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `isGameClaimValid(address)` and selector `0x6c4f4467`. +```solidity +function isGameClaimValid(address _game) external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct isGameClaimValidCall { + #[allow(missing_docs)] + pub _game: alloy::sol_types::private::Address, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`isGameClaimValid(address)`](isGameClaimValidCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct isGameClaimValidReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: isGameClaimValidCall) -> Self { + (value._game,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for isGameClaimValidCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _game: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: isGameClaimValidReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for isGameClaimValidReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for isGameClaimValidCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "isGameClaimValid(address)"; + const SELECTOR: [u8; 4] = [108u8, 79u8, 68u8, 103u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._game, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: isGameClaimValidReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: isGameClaimValidReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `isGameFinalized(address)` and selector `0x0314d2b3`. +```solidity +function isGameFinalized(address _game) external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct isGameFinalizedCall { + #[allow(missing_docs)] + pub _game: alloy::sol_types::private::Address, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`isGameFinalized(address)`](isGameFinalizedCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct isGameFinalizedReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: isGameFinalizedCall) -> Self { + (value._game,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for isGameFinalizedCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _game: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: isGameFinalizedReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for isGameFinalizedReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for isGameFinalizedCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "isGameFinalized(address)"; + const SELECTOR: [u8; 4] = [3u8, 20u8, 210u8, 179u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._game, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: isGameFinalizedReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: isGameFinalizedReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `isGameProper(address)` and selector `0x496b9c16`. +```solidity +function isGameProper(address _game) external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct isGameProperCall { + #[allow(missing_docs)] + pub _game: alloy::sol_types::private::Address, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`isGameProper(address)`](isGameProperCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct isGameProperReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: isGameProperCall) -> Self { + (value._game,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for isGameProperCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _game: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: isGameProperReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for isGameProperReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for isGameProperCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "isGameProper(address)"; + const SELECTOR: [u8; 4] = [73u8, 107u8, 156u8, 22u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._game, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: isGameProperReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: isGameProperReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `isGameRegistered(address)` and selector `0xee658e45`. +```solidity +function isGameRegistered(address _game) external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct isGameRegisteredCall { + #[allow(missing_docs)] + pub _game: alloy::sol_types::private::Address, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`isGameRegistered(address)`](isGameRegisteredCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct isGameRegisteredReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: isGameRegisteredCall) -> Self { + (value._game,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for isGameRegisteredCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _game: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: isGameRegisteredReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for isGameRegisteredReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for isGameRegisteredCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "isGameRegistered(address)"; + const SELECTOR: [u8; 4] = [238u8, 101u8, 142u8, 69u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._game, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: isGameRegisteredReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: isGameRegisteredReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `isGameResolved(address)` and selector `0xfdbb3dcf`. +```solidity +function isGameResolved(address _game) external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct isGameResolvedCall { + #[allow(missing_docs)] + pub _game: alloy::sol_types::private::Address, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`isGameResolved(address)`](isGameResolvedCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct isGameResolvedReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: isGameResolvedCall) -> Self { + (value._game,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for isGameResolvedCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _game: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: isGameResolvedReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for isGameResolvedReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for isGameResolvedCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "isGameResolved(address)"; + const SELECTOR: [u8; 4] = [253u8, 187u8, 61u8, 207u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._game, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: isGameResolvedReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: isGameResolvedReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `isGameRespected(address)` and selector `0x04e50fed`. +```solidity +function isGameRespected(address _game) external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct isGameRespectedCall { + #[allow(missing_docs)] + pub _game: alloy::sol_types::private::Address, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`isGameRespected(address)`](isGameRespectedCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct isGameRespectedReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: isGameRespectedCall) -> Self { + (value._game,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for isGameRespectedCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _game: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: isGameRespectedReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for isGameRespectedReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for isGameRespectedCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "isGameRespected(address)"; + const SELECTOR: [u8; 4] = [4u8, 229u8, 15u8, 237u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._game, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: isGameRespectedReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: isGameRespectedReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `isGameRetired(address)` and selector `0x5958a193`. +```solidity +function isGameRetired(address _game) external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct isGameRetiredCall { + #[allow(missing_docs)] + pub _game: alloy::sol_types::private::Address, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`isGameRetired(address)`](isGameRetiredCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct isGameRetiredReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: isGameRetiredCall) -> Self { + (value._game,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for isGameRetiredCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _game: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: isGameRetiredReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for isGameRetiredReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for isGameRetiredCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "isGameRetired(address)"; + const SELECTOR: [u8; 4] = [89u8, 88u8, 161u8, 147u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._game, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: isGameRetiredReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: isGameRetiredReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `paused()` and selector `0x5c975abb`. +```solidity +function paused() external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct pausedCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`paused()`](pausedCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct pausedReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: pausedCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for pausedCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: pausedReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for pausedReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for pausedCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "paused()"; + const SELECTOR: [u8; 4] = [92u8, 151u8, 90u8, 187u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: pausedReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: pausedReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `proxyAdmin()` and selector `0x3e47158c`. +```solidity +function proxyAdmin() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct proxyAdminCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`proxyAdmin()`](proxyAdminCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct proxyAdminReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: proxyAdminCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for proxyAdminCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: proxyAdminReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for proxyAdminReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for proxyAdminCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "proxyAdmin()"; + const SELECTOR: [u8; 4] = [62u8, 71u8, 21u8, 140u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: proxyAdminReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: proxyAdminReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `proxyAdminOwner()` and selector `0xdad544e0`. +```solidity +function proxyAdminOwner() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct proxyAdminOwnerCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`proxyAdminOwner()`](proxyAdminOwnerCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct proxyAdminOwnerReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: proxyAdminOwnerCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for proxyAdminOwnerCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: proxyAdminOwnerReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for proxyAdminOwnerReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for proxyAdminOwnerCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "proxyAdminOwner()"; + const SELECTOR: [u8; 4] = [218u8, 213u8, 68u8, 224u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: proxyAdminOwnerReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: proxyAdminOwnerReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `respectedGameType()` and selector `0x3c9f397c`. +```solidity +function respectedGameType() external view returns (GameType); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct respectedGameTypeCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`respectedGameType()`](respectedGameTypeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct respectedGameTypeReturn { + #[allow(missing_docs)] + pub _0: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: respectedGameTypeCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for respectedGameTypeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (GameType,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: respectedGameTypeReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for respectedGameTypeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for respectedGameTypeCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (GameType,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "respectedGameType()"; + const SELECTOR: [u8; 4] = [60u8, 159u8, 57u8, 124u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: respectedGameTypeReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: respectedGameTypeReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `retirementTimestamp()` and selector `0x4086d183`. +```solidity +function retirementTimestamp() external view returns (uint64); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct retirementTimestampCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`retirementTimestamp()`](retirementTimestampCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct retirementTimestampReturn { + #[allow(missing_docs)] + pub _0: u64, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: retirementTimestampCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for retirementTimestampCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u64,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: retirementTimestampReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for retirementTimestampReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for retirementTimestampCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u64; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "retirementTimestamp()"; + const SELECTOR: [u8; 4] = [64u8, 134u8, 209u8, 131u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: retirementTimestampReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: retirementTimestampReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `setAnchorState(address)` and selector `0x17cf21a9`. +```solidity +function setAnchorState(address _game) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setAnchorStateCall { + #[allow(missing_docs)] + pub _game: alloy::sol_types::private::Address, + } + ///Container type for the return parameters of the [`setAnchorState(address)`](setAnchorStateCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setAnchorStateReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: setAnchorStateCall) -> Self { + (value._game,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for setAnchorStateCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _game: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: setAnchorStateReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for setAnchorStateReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl setAnchorStateReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for setAnchorStateCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = setAnchorStateReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "setAnchorState(address)"; + const SELECTOR: [u8; 4] = [23u8, 207u8, 33u8, 169u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._game, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + setAnchorStateReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `setRespectedGameType(uint32)` and selector `0x7fc48504`. +```solidity +function setRespectedGameType(GameType _gameType) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setRespectedGameTypeCall { + #[allow(missing_docs)] + pub _gameType: ::RustType, + } + ///Container type for the return parameters of the [`setRespectedGameType(uint32)`](setRespectedGameTypeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setRespectedGameTypeReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (GameType,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: setRespectedGameTypeCall) -> Self { + (value._gameType,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for setRespectedGameTypeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _gameType: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: setRespectedGameTypeReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for setRespectedGameTypeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl setRespectedGameTypeReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken< + '_, + > { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for setRespectedGameTypeCall { + type Parameters<'a> = (GameType,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = setRespectedGameTypeReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "setRespectedGameType(uint32)"; + const SELECTOR: [u8; 4] = [127u8, 196u8, 133u8, 4u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + (::tokenize(&self._gameType),) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + setRespectedGameTypeReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `superchainConfig()` and selector `0x35e80ab3`. +```solidity +function superchainConfig() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct superchainConfigCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`superchainConfig()`](superchainConfigCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct superchainConfigReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: superchainConfigCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for superchainConfigCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: superchainConfigReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for superchainConfigReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for superchainConfigCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "superchainConfig()"; + const SELECTOR: [u8; 4] = [53u8, 232u8, 10u8, 179u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: superchainConfigReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: superchainConfigReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `systemConfig()` and selector `0x33d7e2bd`. +```solidity +function systemConfig() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct systemConfigCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`systemConfig()`](systemConfigCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct systemConfigReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: systemConfigCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for systemConfigCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: systemConfigReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for systemConfigReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for systemConfigCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "systemConfig()"; + const SELECTOR: [u8; 4] = [51u8, 215u8, 226u8, 189u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: systemConfigReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: systemConfigReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `updateRetirementTimestamp()` and selector `0xd5a3e12e`. +```solidity +function updateRetirementTimestamp() external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct updateRetirementTimestampCall; + ///Container type for the return parameters of the [`updateRetirementTimestamp()`](updateRetirementTimestampCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct updateRetirementTimestampReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: updateRetirementTimestampCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for updateRetirementTimestampCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: updateRetirementTimestampReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for updateRetirementTimestampReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl updateRetirementTimestampReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken< + '_, + > { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for updateRetirementTimestampCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = updateRetirementTimestampReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "updateRetirementTimestamp()"; + const SELECTOR: [u8; 4] = [213u8, 163u8, 225u8, 46u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + updateRetirementTimestampReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `version()` and selector `0x54fd4d50`. +```solidity +function version() external view returns (string memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`version()`](versionCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for versionCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::String; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "version()"; + const SELECTOR: [u8; 4] = [84u8, 253u8, 77u8, 80u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + } + }; + ///Container for all the [`AnchorStateRegistry`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum AnchorStateRegistryCalls { + #[allow(missing_docs)] + anchorGame(anchorGameCall), + #[allow(missing_docs)] + anchors(anchorsCall), + #[allow(missing_docs)] + blacklistDisputeGame(blacklistDisputeGameCall), + #[allow(missing_docs)] + disputeGameBlacklist(disputeGameBlacklistCall), + #[allow(missing_docs)] + disputeGameFactory(disputeGameFactoryCall), + #[allow(missing_docs)] + disputeGameFinalityDelaySeconds(disputeGameFinalityDelaySecondsCall), + #[allow(missing_docs)] + getAnchorRoot(getAnchorRootCall), + #[allow(missing_docs)] + getStartingAnchorRoot(getStartingAnchorRootCall), + #[allow(missing_docs)] + initVersion(initVersionCall), + #[allow(missing_docs)] + initialize(initializeCall), + #[allow(missing_docs)] + isGameBlacklisted(isGameBlacklistedCall), + #[allow(missing_docs)] + isGameClaimValid(isGameClaimValidCall), + #[allow(missing_docs)] + isGameFinalized(isGameFinalizedCall), + #[allow(missing_docs)] + isGameProper(isGameProperCall), + #[allow(missing_docs)] + isGameRegistered(isGameRegisteredCall), + #[allow(missing_docs)] + isGameResolved(isGameResolvedCall), + #[allow(missing_docs)] + isGameRespected(isGameRespectedCall), + #[allow(missing_docs)] + isGameRetired(isGameRetiredCall), + #[allow(missing_docs)] + paused(pausedCall), + #[allow(missing_docs)] + proxyAdmin(proxyAdminCall), + #[allow(missing_docs)] + proxyAdminOwner(proxyAdminOwnerCall), + #[allow(missing_docs)] + respectedGameType(respectedGameTypeCall), + #[allow(missing_docs)] + retirementTimestamp(retirementTimestampCall), + #[allow(missing_docs)] + setAnchorState(setAnchorStateCall), + #[allow(missing_docs)] + setRespectedGameType(setRespectedGameTypeCall), + #[allow(missing_docs)] + superchainConfig(superchainConfigCall), + #[allow(missing_docs)] + systemConfig(systemConfigCall), + #[allow(missing_docs)] + updateRetirementTimestamp(updateRetirementTimestampCall), + #[allow(missing_docs)] + version(versionCall), + } + impl AnchorStateRegistryCalls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [3u8, 20u8, 210u8, 179u8], + [4u8, 229u8, 15u8, 237u8], + [23u8, 207u8, 33u8, 169u8], + [51u8, 215u8, 226u8, 189u8], + [52u8, 163u8, 70u8, 234u8], + [53u8, 232u8, 10u8, 179u8], + [56u8, 211u8, 140u8, 151u8], + [60u8, 159u8, 57u8, 124u8], + [62u8, 71u8, 21u8, 140u8], + [64u8, 134u8, 209u8, 131u8], + [69u8, 136u8, 77u8, 50u8], + [71u8, 162u8, 34u8, 197u8], + [73u8, 107u8, 156u8, 22u8], + [84u8, 253u8, 77u8, 80u8], + [89u8, 88u8, 161u8, 147u8], + [92u8, 151u8, 90u8, 187u8], + [102u8, 78u8, 216u8, 48u8], + [108u8, 79u8, 68u8, 103u8], + [114u8, 88u8, 168u8, 7u8], + [125u8, 107u8, 232u8, 220u8], + [127u8, 196u8, 133u8, 4u8], + [149u8, 43u8, 39u8, 151u8], + [213u8, 163u8, 225u8, 46u8], + [216u8, 62u8, 242u8, 103u8], + [218u8, 213u8, 68u8, 224u8], + [224u8, 168u8, 64u8, 235u8], + [238u8, 101u8, 142u8, 69u8], + [242u8, 180u8, 230u8, 23u8], + [253u8, 187u8, 61u8, 207u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(isGameFinalized), + ::core::stringify!(isGameRespected), + ::core::stringify!(setAnchorState), + ::core::stringify!(systemConfig), + ::core::stringify!(isGameBlacklisted), + ::core::stringify!(superchainConfig), + ::core::stringify!(initVersion), + ::core::stringify!(respectedGameType), + ::core::stringify!(proxyAdmin), + ::core::stringify!(retirementTimestamp), + ::core::stringify!(disputeGameBlacklist), + ::core::stringify!(initialize), + ::core::stringify!(isGameProper), + ::core::stringify!(version), + ::core::stringify!(isGameRetired), + ::core::stringify!(paused), + ::core::stringify!(getStartingAnchorRoot), + ::core::stringify!(isGameClaimValid), + ::core::stringify!(anchors), + ::core::stringify!(blacklistDisputeGame), + ::core::stringify!(setRespectedGameType), + ::core::stringify!(disputeGameFinalityDelaySeconds), + ::core::stringify!(updateRetirementTimestamp), + ::core::stringify!(getAnchorRoot), + ::core::stringify!(proxyAdminOwner), + ::core::stringify!(anchorGame), + ::core::stringify!(isGameRegistered), + ::core::stringify!(disputeGameFactory), + ::core::stringify!(isGameResolved), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for AnchorStateRegistryCalls { + const NAME: &'static str = "AnchorStateRegistryCalls"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 29usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::anchorGame(_) => { + ::SELECTOR + } + Self::anchors(_) => ::SELECTOR, + Self::blacklistDisputeGame(_) => { + ::SELECTOR + } + Self::disputeGameBlacklist(_) => { + ::SELECTOR + } + Self::disputeGameFactory(_) => { + ::SELECTOR + } + Self::disputeGameFinalityDelaySeconds(_) => { + ::SELECTOR + } + Self::getAnchorRoot(_) => { + ::SELECTOR + } + Self::getStartingAnchorRoot(_) => { + ::SELECTOR + } + Self::initVersion(_) => { + ::SELECTOR + } + Self::initialize(_) => { + ::SELECTOR + } + Self::isGameBlacklisted(_) => { + ::SELECTOR + } + Self::isGameClaimValid(_) => { + ::SELECTOR + } + Self::isGameFinalized(_) => { + ::SELECTOR + } + Self::isGameProper(_) => { + ::SELECTOR + } + Self::isGameRegistered(_) => { + ::SELECTOR + } + Self::isGameResolved(_) => { + ::SELECTOR + } + Self::isGameRespected(_) => { + ::SELECTOR + } + Self::isGameRetired(_) => { + ::SELECTOR + } + Self::paused(_) => ::SELECTOR, + Self::proxyAdmin(_) => { + ::SELECTOR + } + Self::proxyAdminOwner(_) => { + ::SELECTOR + } + Self::respectedGameType(_) => { + ::SELECTOR + } + Self::retirementTimestamp(_) => { + ::SELECTOR + } + Self::setAnchorState(_) => { + ::SELECTOR + } + Self::setRespectedGameType(_) => { + ::SELECTOR + } + Self::superchainConfig(_) => { + ::SELECTOR + } + Self::systemConfig(_) => { + ::SELECTOR + } + Self::updateRetirementTimestamp(_) => { + ::SELECTOR + } + Self::version(_) => ::SELECTOR, + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn isGameFinalized( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(AnchorStateRegistryCalls::isGameFinalized) + } + isGameFinalized + }, + { + fn isGameRespected( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(AnchorStateRegistryCalls::isGameRespected) + } + isGameRespected + }, + { + fn setAnchorState( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(AnchorStateRegistryCalls::setAnchorState) + } + setAnchorState + }, + { + fn systemConfig( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(AnchorStateRegistryCalls::systemConfig) + } + systemConfig + }, + { + fn isGameBlacklisted( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(AnchorStateRegistryCalls::isGameBlacklisted) + } + isGameBlacklisted + }, + { + fn superchainConfig( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(AnchorStateRegistryCalls::superchainConfig) + } + superchainConfig + }, + { + fn initVersion( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(AnchorStateRegistryCalls::initVersion) + } + initVersion + }, + { + fn respectedGameType( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(AnchorStateRegistryCalls::respectedGameType) + } + respectedGameType + }, + { + fn proxyAdmin( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(AnchorStateRegistryCalls::proxyAdmin) + } + proxyAdmin + }, + { + fn retirementTimestamp( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(AnchorStateRegistryCalls::retirementTimestamp) + } + retirementTimestamp + }, + { + fn disputeGameBlacklist( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(AnchorStateRegistryCalls::disputeGameBlacklist) + } + disputeGameBlacklist + }, + { + fn initialize( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(AnchorStateRegistryCalls::initialize) + } + initialize + }, + { + fn isGameProper( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(AnchorStateRegistryCalls::isGameProper) + } + isGameProper + }, + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(AnchorStateRegistryCalls::version) + } + version + }, + { + fn isGameRetired( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(AnchorStateRegistryCalls::isGameRetired) + } + isGameRetired + }, + { + fn paused( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(AnchorStateRegistryCalls::paused) + } + paused + }, + { + fn getStartingAnchorRoot( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(AnchorStateRegistryCalls::getStartingAnchorRoot) + } + getStartingAnchorRoot + }, + { + fn isGameClaimValid( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(AnchorStateRegistryCalls::isGameClaimValid) + } + isGameClaimValid + }, + { + fn anchors( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(AnchorStateRegistryCalls::anchors) + } + anchors + }, + { + fn blacklistDisputeGame( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(AnchorStateRegistryCalls::blacklistDisputeGame) + } + blacklistDisputeGame + }, + { + fn setRespectedGameType( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(AnchorStateRegistryCalls::setRespectedGameType) + } + setRespectedGameType + }, + { + fn disputeGameFinalityDelaySeconds( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + AnchorStateRegistryCalls::disputeGameFinalityDelaySeconds, + ) + } + disputeGameFinalityDelaySeconds + }, + { + fn updateRetirementTimestamp( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(AnchorStateRegistryCalls::updateRetirementTimestamp) + } + updateRetirementTimestamp + }, + { + fn getAnchorRoot( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(AnchorStateRegistryCalls::getAnchorRoot) + } + getAnchorRoot + }, + { + fn proxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(AnchorStateRegistryCalls::proxyAdminOwner) + } + proxyAdminOwner + }, + { + fn anchorGame( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(AnchorStateRegistryCalls::anchorGame) + } + anchorGame + }, + { + fn isGameRegistered( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(AnchorStateRegistryCalls::isGameRegistered) + } + isGameRegistered + }, + { + fn disputeGameFactory( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(AnchorStateRegistryCalls::disputeGameFactory) + } + disputeGameFactory + }, + { + fn isGameResolved( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(AnchorStateRegistryCalls::isGameResolved) + } + isGameResolved + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn isGameFinalized( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AnchorStateRegistryCalls::isGameFinalized) + } + isGameFinalized + }, + { + fn isGameRespected( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AnchorStateRegistryCalls::isGameRespected) + } + isGameRespected + }, + { + fn setAnchorState( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AnchorStateRegistryCalls::setAnchorState) + } + setAnchorState + }, + { + fn systemConfig( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AnchorStateRegistryCalls::systemConfig) + } + systemConfig + }, + { + fn isGameBlacklisted( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AnchorStateRegistryCalls::isGameBlacklisted) + } + isGameBlacklisted + }, + { + fn superchainConfig( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AnchorStateRegistryCalls::superchainConfig) + } + superchainConfig + }, + { + fn initVersion( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AnchorStateRegistryCalls::initVersion) + } + initVersion + }, + { + fn respectedGameType( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AnchorStateRegistryCalls::respectedGameType) + } + respectedGameType + }, + { + fn proxyAdmin( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AnchorStateRegistryCalls::proxyAdmin) + } + proxyAdmin + }, + { + fn retirementTimestamp( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AnchorStateRegistryCalls::retirementTimestamp) + } + retirementTimestamp + }, + { + fn disputeGameBlacklist( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AnchorStateRegistryCalls::disputeGameBlacklist) + } + disputeGameBlacklist + }, + { + fn initialize( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AnchorStateRegistryCalls::initialize) + } + initialize + }, + { + fn isGameProper( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AnchorStateRegistryCalls::isGameProper) + } + isGameProper + }, + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AnchorStateRegistryCalls::version) + } + version + }, + { + fn isGameRetired( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AnchorStateRegistryCalls::isGameRetired) + } + isGameRetired + }, + { + fn paused( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AnchorStateRegistryCalls::paused) + } + paused + }, + { + fn getStartingAnchorRoot( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AnchorStateRegistryCalls::getStartingAnchorRoot) + } + getStartingAnchorRoot + }, + { + fn isGameClaimValid( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AnchorStateRegistryCalls::isGameClaimValid) + } + isGameClaimValid + }, + { + fn anchors( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AnchorStateRegistryCalls::anchors) + } + anchors + }, + { + fn blacklistDisputeGame( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AnchorStateRegistryCalls::blacklistDisputeGame) + } + blacklistDisputeGame + }, + { + fn setRespectedGameType( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AnchorStateRegistryCalls::setRespectedGameType) + } + setRespectedGameType + }, + { + fn disputeGameFinalityDelaySeconds( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + AnchorStateRegistryCalls::disputeGameFinalityDelaySeconds, + ) + } + disputeGameFinalityDelaySeconds + }, + { + fn updateRetirementTimestamp( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AnchorStateRegistryCalls::updateRetirementTimestamp) + } + updateRetirementTimestamp + }, + { + fn getAnchorRoot( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AnchorStateRegistryCalls::getAnchorRoot) + } + getAnchorRoot + }, + { + fn proxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AnchorStateRegistryCalls::proxyAdminOwner) + } + proxyAdminOwner + }, + { + fn anchorGame( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AnchorStateRegistryCalls::anchorGame) + } + anchorGame + }, + { + fn isGameRegistered( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AnchorStateRegistryCalls::isGameRegistered) + } + isGameRegistered + }, + { + fn disputeGameFactory( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AnchorStateRegistryCalls::disputeGameFactory) + } + disputeGameFactory + }, + { + fn isGameResolved( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AnchorStateRegistryCalls::isGameResolved) + } + isGameResolved + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::anchorGame(inner) => { + ::abi_encoded_size(inner) + } + Self::anchors(inner) => { + ::abi_encoded_size(inner) + } + Self::blacklistDisputeGame(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::disputeGameBlacklist(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::disputeGameFactory(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::disputeGameFinalityDelaySeconds(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::getAnchorRoot(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::getStartingAnchorRoot(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::initVersion(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::initialize(inner) => { + ::abi_encoded_size(inner) + } + Self::isGameBlacklisted(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::isGameClaimValid(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::isGameFinalized(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::isGameProper(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::isGameRegistered(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::isGameResolved(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::isGameRespected(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::isGameRetired(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::paused(inner) => { + ::abi_encoded_size(inner) + } + Self::proxyAdmin(inner) => { + ::abi_encoded_size(inner) + } + Self::proxyAdminOwner(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::respectedGameType(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::retirementTimestamp(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::setAnchorState(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::setRespectedGameType(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::superchainConfig(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::systemConfig(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::updateRetirementTimestamp(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::version(inner) => { + ::abi_encoded_size(inner) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::anchorGame(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::anchors(inner) => { + ::abi_encode_raw(inner, out) + } + Self::blacklistDisputeGame(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::disputeGameBlacklist(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::disputeGameFactory(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::disputeGameFinalityDelaySeconds(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::getAnchorRoot(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::getStartingAnchorRoot(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::initVersion(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::initialize(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::isGameBlacklisted(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::isGameClaimValid(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::isGameFinalized(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::isGameProper(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::isGameRegistered(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::isGameResolved(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::isGameRespected(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::isGameRetired(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::paused(inner) => { + ::abi_encode_raw(inner, out) + } + Self::proxyAdmin(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::proxyAdminOwner(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::respectedGameType(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::retirementTimestamp(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::setAnchorState(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::setRespectedGameType(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::superchainConfig(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::systemConfig(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::updateRetirementTimestamp(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::version(inner) => { + ::abi_encode_raw(inner, out) + } + } + } + } + ///Container for all the [`AnchorStateRegistry`](self) custom errors. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum AnchorStateRegistryErrors { + #[allow(missing_docs)] + AnchorStateRegistry_InvalidAnchorGame(AnchorStateRegistry_InvalidAnchorGame), + #[allow(missing_docs)] + AnchorStateRegistry_Unauthorized(AnchorStateRegistry_Unauthorized), + #[allow(missing_docs)] + ProxyAdminOwnedBase_NotProxyAdmin(ProxyAdminOwnedBase_NotProxyAdmin), + #[allow(missing_docs)] + ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner( + ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner, + ), + #[allow(missing_docs)] + ProxyAdminOwnedBase_NotProxyAdminOwner(ProxyAdminOwnedBase_NotProxyAdminOwner), + #[allow(missing_docs)] + ProxyAdminOwnedBase_NotResolvedDelegateProxy( + ProxyAdminOwnedBase_NotResolvedDelegateProxy, + ), + #[allow(missing_docs)] + ProxyAdminOwnedBase_NotSharedProxyAdminOwner( + ProxyAdminOwnedBase_NotSharedProxyAdminOwner, + ), + #[allow(missing_docs)] + ProxyAdminOwnedBase_ProxyAdminNotFound(ProxyAdminOwnedBase_ProxyAdminNotFound), + #[allow(missing_docs)] + ReinitializableBase_ZeroInitVersion(ReinitializableBase_ZeroInitVersion), + } + impl AnchorStateRegistryErrors { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [7u8, 92u8, 67u8, 20u8], + [46u8, 83u8, 33u8, 172u8], + [51u8, 33u8, 68u8, 219u8], + [71u8, 173u8, 54u8, 122u8], + [84u8, 228u8, 51u8, 205u8], + [127u8, 18u8, 198u8, 75u8], + [155u8, 1u8, 175u8, 237u8], + [196u8, 5u8, 10u8, 38u8], + [232u8, 24u8, 220u8, 195u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(ProxyAdminOwnedBase_NotSharedProxyAdminOwner), + ::core::stringify!(AnchorStateRegistry_Unauthorized), + ::core::stringify!(ProxyAdminOwnedBase_ProxyAdminNotFound), + ::core::stringify!(AnchorStateRegistry_InvalidAnchorGame), + ::core::stringify!(ProxyAdminOwnedBase_NotResolvedDelegateProxy), + ::core::stringify!(ProxyAdminOwnedBase_NotProxyAdminOwner), + ::core::stringify!(ReinitializableBase_ZeroInitVersion), + ::core::stringify!(ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner), + ::core::stringify!(ProxyAdminOwnedBase_NotProxyAdmin), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for AnchorStateRegistryErrors { + const NAME: &'static str = "AnchorStateRegistryErrors"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 9usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::AnchorStateRegistry_InvalidAnchorGame(_) => { + ::SELECTOR + } + Self::AnchorStateRegistry_Unauthorized(_) => { + ::SELECTOR + } + Self::ProxyAdminOwnedBase_NotProxyAdmin(_) => { + ::SELECTOR + } + Self::ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner(_) => { + ::SELECTOR + } + Self::ProxyAdminOwnedBase_NotProxyAdminOwner(_) => { + ::SELECTOR + } + Self::ProxyAdminOwnedBase_NotResolvedDelegateProxy(_) => { + ::SELECTOR + } + Self::ProxyAdminOwnedBase_NotSharedProxyAdminOwner(_) => { + ::SELECTOR + } + Self::ProxyAdminOwnedBase_ProxyAdminNotFound(_) => { + ::SELECTOR + } + Self::ReinitializableBase_ZeroInitVersion(_) => { + ::SELECTOR + } + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn ProxyAdminOwnedBase_NotSharedProxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + AnchorStateRegistryErrors::ProxyAdminOwnedBase_NotSharedProxyAdminOwner, + ) + } + ProxyAdminOwnedBase_NotSharedProxyAdminOwner + }, + { + fn AnchorStateRegistry_Unauthorized( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + AnchorStateRegistryErrors::AnchorStateRegistry_Unauthorized, + ) + } + AnchorStateRegistry_Unauthorized + }, + { + fn ProxyAdminOwnedBase_ProxyAdminNotFound( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + AnchorStateRegistryErrors::ProxyAdminOwnedBase_ProxyAdminNotFound, + ) + } + ProxyAdminOwnedBase_ProxyAdminNotFound + }, + { + fn AnchorStateRegistry_InvalidAnchorGame( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + AnchorStateRegistryErrors::AnchorStateRegistry_InvalidAnchorGame, + ) + } + AnchorStateRegistry_InvalidAnchorGame + }, + { + fn ProxyAdminOwnedBase_NotResolvedDelegateProxy( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + AnchorStateRegistryErrors::ProxyAdminOwnedBase_NotResolvedDelegateProxy, + ) + } + ProxyAdminOwnedBase_NotResolvedDelegateProxy + }, + { + fn ProxyAdminOwnedBase_NotProxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + AnchorStateRegistryErrors::ProxyAdminOwnedBase_NotProxyAdminOwner, + ) + } + ProxyAdminOwnedBase_NotProxyAdminOwner + }, + { + fn ReinitializableBase_ZeroInitVersion( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + AnchorStateRegistryErrors::ReinitializableBase_ZeroInitVersion, + ) + } + ReinitializableBase_ZeroInitVersion + }, + { + fn ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + AnchorStateRegistryErrors::ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner, + ) + } + ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner + }, + { + fn ProxyAdminOwnedBase_NotProxyAdmin( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + AnchorStateRegistryErrors::ProxyAdminOwnedBase_NotProxyAdmin, + ) + } + ProxyAdminOwnedBase_NotProxyAdmin + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn ProxyAdminOwnedBase_NotSharedProxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + AnchorStateRegistryErrors::ProxyAdminOwnedBase_NotSharedProxyAdminOwner, + ) + } + ProxyAdminOwnedBase_NotSharedProxyAdminOwner + }, + { + fn AnchorStateRegistry_Unauthorized( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + AnchorStateRegistryErrors::AnchorStateRegistry_Unauthorized, + ) + } + AnchorStateRegistry_Unauthorized + }, + { + fn ProxyAdminOwnedBase_ProxyAdminNotFound( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + AnchorStateRegistryErrors::ProxyAdminOwnedBase_ProxyAdminNotFound, + ) + } + ProxyAdminOwnedBase_ProxyAdminNotFound + }, + { + fn AnchorStateRegistry_InvalidAnchorGame( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + AnchorStateRegistryErrors::AnchorStateRegistry_InvalidAnchorGame, + ) + } + AnchorStateRegistry_InvalidAnchorGame + }, + { + fn ProxyAdminOwnedBase_NotResolvedDelegateProxy( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + AnchorStateRegistryErrors::ProxyAdminOwnedBase_NotResolvedDelegateProxy, + ) + } + ProxyAdminOwnedBase_NotResolvedDelegateProxy + }, + { + fn ProxyAdminOwnedBase_NotProxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + AnchorStateRegistryErrors::ProxyAdminOwnedBase_NotProxyAdminOwner, + ) + } + ProxyAdminOwnedBase_NotProxyAdminOwner + }, + { + fn ReinitializableBase_ZeroInitVersion( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + AnchorStateRegistryErrors::ReinitializableBase_ZeroInitVersion, + ) + } + ReinitializableBase_ZeroInitVersion + }, + { + fn ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + AnchorStateRegistryErrors::ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner, + ) + } + ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner + }, + { + fn ProxyAdminOwnedBase_NotProxyAdmin( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + AnchorStateRegistryErrors::ProxyAdminOwnedBase_NotProxyAdmin, + ) + } + ProxyAdminOwnedBase_NotProxyAdmin + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::AnchorStateRegistry_InvalidAnchorGame(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::AnchorStateRegistry_Unauthorized(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ProxyAdminOwnedBase_NotProxyAdmin(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ProxyAdminOwnedBase_NotProxyAdminOwner(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ProxyAdminOwnedBase_NotResolvedDelegateProxy(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ProxyAdminOwnedBase_NotSharedProxyAdminOwner(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ProxyAdminOwnedBase_ProxyAdminNotFound(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ReinitializableBase_ZeroInitVersion(inner) => { + ::abi_encoded_size( + inner, + ) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::AnchorStateRegistry_InvalidAnchorGame(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::AnchorStateRegistry_Unauthorized(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ProxyAdminOwnedBase_NotProxyAdmin(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ProxyAdminOwnedBase_NotProxyAdminOwner(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ProxyAdminOwnedBase_NotResolvedDelegateProxy(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ProxyAdminOwnedBase_NotSharedProxyAdminOwner(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ProxyAdminOwnedBase_ProxyAdminNotFound(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ReinitializableBase_ZeroInitVersion(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + } + } + } + ///Container for all the [`AnchorStateRegistry`](self) events. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum AnchorStateRegistryEvents { + #[allow(missing_docs)] + AnchorUpdated(AnchorUpdated), + #[allow(missing_docs)] + DisputeGameBlacklisted(DisputeGameBlacklisted), + #[allow(missing_docs)] + Initialized(Initialized), + #[allow(missing_docs)] + RespectedGameTypeSet(RespectedGameTypeSet), + #[allow(missing_docs)] + RetirementTimestampSet(RetirementTimestampSet), + } + impl AnchorStateRegistryEvents { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 32usize]] = &[ + [ + 25u8, 44u8, 40u8, 144u8, 38u8, 213u8, 154u8, 65u8, 162u8, 127u8, 90u8, + 234u8, 8u8, 243u8, 150u8, 155u8, 87u8, 147u8, 27u8, 5u8, 137u8, 32u8, + 45u8, 20u8, 244u8, 54u8, 140u8, 222u8, 217u8, 93u8, 60u8, 218u8, + ], + [ + 71u8, 79u8, 24u8, 13u8, 116u8, 234u8, 135u8, 81u8, 149u8, 94u8, 226u8, + 97u8, 201u8, 63u8, 248u8, 39u8, 4u8, 17u8, 177u8, 128u8, 64u8, 141u8, + 16u8, 20u8, 196u8, 159u8, 85u8, 44u8, 146u8, 164u8, 209u8, 30u8, + ], + [ + 110u8, 91u8, 27u8, 167u8, 113u8, 232u8, 228u8, 132u8, 247u8, 65u8, 237u8, + 8u8, 95u8, 3u8, 159u8, 244u8, 229u8, 198u8, 232u8, 130u8, 234u8, 246u8, + 143u8, 85u8, 15u8, 179u8, 144u8, 146u8, 45u8, 10u8, 228u8, 167u8, + ], + [ + 127u8, 38u8, 184u8, 63u8, 249u8, 110u8, 31u8, 43u8, 106u8, 104u8, 47u8, + 19u8, 56u8, 82u8, 246u8, 121u8, 138u8, 9u8, 196u8, 101u8, 218u8, 149u8, + 146u8, 20u8, 96u8, 206u8, 251u8, 56u8, 71u8, 64u8, 36u8, 152u8, + ], + [ + 206u8, 224u8, 112u8, 59u8, 94u8, 75u8, 173u8, 78u8, 254u8, 222u8, 218u8, + 184u8, 92u8, 159u8, 209u8, 174u8, 193u8, 125u8, 238u8, 124u8, 95u8, + 108u8, 88u8, 67u8, 48u8, 224u8, 80u8, 155u8, 103u8, 119u8, 69u8, 162u8, + ], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(DisputeGameBlacklisted), + ::core::stringify!(AnchorUpdated), + ::core::stringify!(RetirementTimestampSet), + ::core::stringify!(Initialized), + ::core::stringify!(RespectedGameTypeSet), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolEventInterface for AnchorStateRegistryEvents { + const NAME: &'static str = "AnchorStateRegistryEvents"; + const COUNT: usize = 5usize; + fn decode_raw_log( + topics: &[alloy_sol_types::Word], + data: &[u8], + ) -> alloy_sol_types::Result { + match topics.first().copied() { + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::AnchorUpdated) + } + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::DisputeGameBlacklisted) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::Initialized) + } + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::RespectedGameTypeSet) + } + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::RetirementTimestampSet) + } + _ => { + alloy_sol_types::private::Err(alloy_sol_types::Error::InvalidLog { + name: ::NAME, + log: alloy_sol_types::private::Box::new( + alloy_sol_types::private::LogData::new_unchecked( + topics.to_vec(), + data.to_vec().into(), + ), + ), + }) + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for AnchorStateRegistryEvents { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + match self { + Self::AnchorUpdated(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::DisputeGameBlacklisted(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::Initialized(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::RespectedGameTypeSet(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::RetirementTimestampSet(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + } + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + match self { + Self::AnchorUpdated(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::DisputeGameBlacklisted(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::Initialized(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::RespectedGameTypeSet(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::RetirementTimestampSet(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`AnchorStateRegistry`](self) contract instance. + +See the [wrapper's documentation](`AnchorStateRegistryInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> AnchorStateRegistryInstance { + AnchorStateRegistryInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + _disputeGameFinalityDelaySeconds: alloy::sol_types::private::primitives::aliases::U256, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + AnchorStateRegistryInstance::< + P, + N, + >::deploy(__provider, _disputeGameFinalityDelaySeconds) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + _disputeGameFinalityDelaySeconds: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::RawCallBuilder { + AnchorStateRegistryInstance::< + P, + N, + >::deploy_builder(__provider, _disputeGameFinalityDelaySeconds) + } + /**A [`AnchorStateRegistry`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`AnchorStateRegistry`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct AnchorStateRegistryInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for AnchorStateRegistryInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("AnchorStateRegistryInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > AnchorStateRegistryInstance { + /**Creates a new wrapper around an on-chain [`AnchorStateRegistry`](self) contract instance. + +See the [wrapper's documentation](`AnchorStateRegistryInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + _disputeGameFinalityDelaySeconds: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder( + __provider, + _disputeGameFinalityDelaySeconds, + ); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder( + __provider: P, + _disputeGameFinalityDelaySeconds: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + [ + &BYTECODE[..], + &alloy_sol_types::SolConstructor::abi_encode( + &constructorCall { + _disputeGameFinalityDelaySeconds, + }, + )[..], + ] + .concat() + .into(), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl AnchorStateRegistryInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> AnchorStateRegistryInstance { + AnchorStateRegistryInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > AnchorStateRegistryInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`anchorGame`] function. + pub fn anchorGame( + &self, + ) -> alloy_contract::SolCallBuilder<&P, anchorGameCall, N> { + self.call_builder(&anchorGameCall) + } + ///Creates a new call builder for the [`anchors`] function. + pub fn anchors( + &self, + _0: ::RustType, + ) -> alloy_contract::SolCallBuilder<&P, anchorsCall, N> { + self.call_builder(&anchorsCall(_0)) + } + ///Creates a new call builder for the [`blacklistDisputeGame`] function. + pub fn blacklistDisputeGame( + &self, + _disputeGame: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, blacklistDisputeGameCall, N> { + self.call_builder( + &blacklistDisputeGameCall { + _disputeGame, + }, + ) + } + ///Creates a new call builder for the [`disputeGameBlacklist`] function. + pub fn disputeGameBlacklist( + &self, + _0: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, disputeGameBlacklistCall, N> { + self.call_builder(&disputeGameBlacklistCall(_0)) + } + ///Creates a new call builder for the [`disputeGameFactory`] function. + pub fn disputeGameFactory( + &self, + ) -> alloy_contract::SolCallBuilder<&P, disputeGameFactoryCall, N> { + self.call_builder(&disputeGameFactoryCall) + } + ///Creates a new call builder for the [`disputeGameFinalityDelaySeconds`] function. + pub fn disputeGameFinalityDelaySeconds( + &self, + ) -> alloy_contract::SolCallBuilder<&P, disputeGameFinalityDelaySecondsCall, N> { + self.call_builder(&disputeGameFinalityDelaySecondsCall) + } + ///Creates a new call builder for the [`getAnchorRoot`] function. + pub fn getAnchorRoot( + &self, + ) -> alloy_contract::SolCallBuilder<&P, getAnchorRootCall, N> { + self.call_builder(&getAnchorRootCall) + } + ///Creates a new call builder for the [`getStartingAnchorRoot`] function. + pub fn getStartingAnchorRoot( + &self, + ) -> alloy_contract::SolCallBuilder<&P, getStartingAnchorRootCall, N> { + self.call_builder(&getStartingAnchorRootCall) + } + ///Creates a new call builder for the [`initVersion`] function. + pub fn initVersion( + &self, + ) -> alloy_contract::SolCallBuilder<&P, initVersionCall, N> { + self.call_builder(&initVersionCall) + } + ///Creates a new call builder for the [`initialize`] function. + pub fn initialize( + &self, + _systemConfig: alloy::sol_types::private::Address, + _disputeGameFactory: alloy::sol_types::private::Address, + _startingAnchorRoot: ::RustType, + _startingRespectedGameType: ::RustType, + ) -> alloy_contract::SolCallBuilder<&P, initializeCall, N> { + self.call_builder( + &initializeCall { + _systemConfig, + _disputeGameFactory, + _startingAnchorRoot, + _startingRespectedGameType, + }, + ) + } + ///Creates a new call builder for the [`isGameBlacklisted`] function. + pub fn isGameBlacklisted( + &self, + _game: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, isGameBlacklistedCall, N> { + self.call_builder(&isGameBlacklistedCall { _game }) + } + ///Creates a new call builder for the [`isGameClaimValid`] function. + pub fn isGameClaimValid( + &self, + _game: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, isGameClaimValidCall, N> { + self.call_builder(&isGameClaimValidCall { _game }) + } + ///Creates a new call builder for the [`isGameFinalized`] function. + pub fn isGameFinalized( + &self, + _game: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, isGameFinalizedCall, N> { + self.call_builder(&isGameFinalizedCall { _game }) + } + ///Creates a new call builder for the [`isGameProper`] function. + pub fn isGameProper( + &self, + _game: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, isGameProperCall, N> { + self.call_builder(&isGameProperCall { _game }) + } + ///Creates a new call builder for the [`isGameRegistered`] function. + pub fn isGameRegistered( + &self, + _game: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, isGameRegisteredCall, N> { + self.call_builder(&isGameRegisteredCall { _game }) + } + ///Creates a new call builder for the [`isGameResolved`] function. + pub fn isGameResolved( + &self, + _game: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, isGameResolvedCall, N> { + self.call_builder(&isGameResolvedCall { _game }) + } + ///Creates a new call builder for the [`isGameRespected`] function. + pub fn isGameRespected( + &self, + _game: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, isGameRespectedCall, N> { + self.call_builder(&isGameRespectedCall { _game }) + } + ///Creates a new call builder for the [`isGameRetired`] function. + pub fn isGameRetired( + &self, + _game: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, isGameRetiredCall, N> { + self.call_builder(&isGameRetiredCall { _game }) + } + ///Creates a new call builder for the [`paused`] function. + pub fn paused(&self) -> alloy_contract::SolCallBuilder<&P, pausedCall, N> { + self.call_builder(&pausedCall) + } + ///Creates a new call builder for the [`proxyAdmin`] function. + pub fn proxyAdmin( + &self, + ) -> alloy_contract::SolCallBuilder<&P, proxyAdminCall, N> { + self.call_builder(&proxyAdminCall) + } + ///Creates a new call builder for the [`proxyAdminOwner`] function. + pub fn proxyAdminOwner( + &self, + ) -> alloy_contract::SolCallBuilder<&P, proxyAdminOwnerCall, N> { + self.call_builder(&proxyAdminOwnerCall) + } + ///Creates a new call builder for the [`respectedGameType`] function. + pub fn respectedGameType( + &self, + ) -> alloy_contract::SolCallBuilder<&P, respectedGameTypeCall, N> { + self.call_builder(&respectedGameTypeCall) + } + ///Creates a new call builder for the [`retirementTimestamp`] function. + pub fn retirementTimestamp( + &self, + ) -> alloy_contract::SolCallBuilder<&P, retirementTimestampCall, N> { + self.call_builder(&retirementTimestampCall) + } + ///Creates a new call builder for the [`setAnchorState`] function. + pub fn setAnchorState( + &self, + _game: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, setAnchorStateCall, N> { + self.call_builder(&setAnchorStateCall { _game }) + } + ///Creates a new call builder for the [`setRespectedGameType`] function. + pub fn setRespectedGameType( + &self, + _gameType: ::RustType, + ) -> alloy_contract::SolCallBuilder<&P, setRespectedGameTypeCall, N> { + self.call_builder( + &setRespectedGameTypeCall { + _gameType, + }, + ) + } + ///Creates a new call builder for the [`superchainConfig`] function. + pub fn superchainConfig( + &self, + ) -> alloy_contract::SolCallBuilder<&P, superchainConfigCall, N> { + self.call_builder(&superchainConfigCall) + } + ///Creates a new call builder for the [`systemConfig`] function. + pub fn systemConfig( + &self, + ) -> alloy_contract::SolCallBuilder<&P, systemConfigCall, N> { + self.call_builder(&systemConfigCall) + } + ///Creates a new call builder for the [`updateRetirementTimestamp`] function. + pub fn updateRetirementTimestamp( + &self, + ) -> alloy_contract::SolCallBuilder<&P, updateRetirementTimestampCall, N> { + self.call_builder(&updateRetirementTimestampCall) + } + ///Creates a new call builder for the [`version`] function. + pub fn version(&self) -> alloy_contract::SolCallBuilder<&P, versionCall, N> { + self.call_builder(&versionCall) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > AnchorStateRegistryInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + ///Creates a new event filter for the [`AnchorUpdated`] event. + pub fn AnchorUpdated_filter( + &self, + ) -> alloy_contract::Event<&P, AnchorUpdated, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`DisputeGameBlacklisted`] event. + pub fn DisputeGameBlacklisted_filter( + &self, + ) -> alloy_contract::Event<&P, DisputeGameBlacklisted, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`Initialized`] event. + pub fn Initialized_filter(&self) -> alloy_contract::Event<&P, Initialized, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`RespectedGameTypeSet`] event. + pub fn RespectedGameTypeSet_filter( + &self, + ) -> alloy_contract::Event<&P, RespectedGameTypeSet, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`RetirementTimestampSet`] event. + pub fn RetirementTimestampSet_filter( + &self, + ) -> alloy_contract::Event<&P, RetirementTimestampSet, N> { + self.event_filter::() + } + } +} diff --git a/bindings/rust/src/arithmetic.rs b/bindings/rust/src/arithmetic.rs new file mode 100644 index 000000000..239e4955d --- /dev/null +++ b/bindings/rust/src/arithmetic.rs @@ -0,0 +1,215 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface Arithmetic {} +``` + +...which was generated by the following JSON ABI: +```json +[] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod Arithmetic { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`-`7`\x0B\x82\x82\x829\x80Q`\0\x1A`s\x14`*WcNH{q`\xE0\x1B`\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`\0\x80\xFD\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + 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`\0\x80\xFD\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`Arithmetic`](self) contract instance. + +See the [wrapper's documentation](`ArithmeticInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> ArithmeticInstance { + ArithmeticInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + ArithmeticInstance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + ArithmeticInstance::::deploy_builder(__provider) + } + /**A [`Arithmetic`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`Arithmetic`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct ArithmeticInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for ArithmeticInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("ArithmeticInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > ArithmeticInstance { + /**Creates a new wrapper around an on-chain [`Arithmetic`](self) contract instance. + +See the [wrapper's documentation](`ArithmeticInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl ArithmeticInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> ArithmeticInstance { + ArithmeticInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > ArithmeticInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > ArithmeticInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + } +} diff --git a/bindings/rust/src/asset_receiver.rs b/bindings/rust/src/asset_receiver.rs new file mode 100644 index 000000000..5cfdfc522 --- /dev/null +++ b/bindings/rust/src/asset_receiver.rs @@ -0,0 +1,3491 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface AssetReceiver { + event OwnerUpdated(address indexed user, address indexed newOwner); + event ReceivedETH(address indexed from, uint256 amount); + event WithdrewERC20(address indexed withdrawer, address indexed recipient, address indexed asset, uint256 amount); + event WithdrewERC721(address indexed withdrawer, address indexed recipient, address indexed asset, uint256 id); + event WithdrewETH(address indexed withdrawer, address indexed recipient, uint256 amount); + + constructor(address _owner); + + receive() external payable; + + function CALL(address _target, bytes memory _data, uint256 _value) external payable returns (bool success_, bytes memory data_); + function DELEGATECALL(address _target, bytes memory _data) external payable returns (bool success_, bytes memory data_); + function owner() external view returns (address); + function setOwner(address newOwner) external; + function withdrawERC20(address _asset, address _to, uint256 _amount) external; + function withdrawERC20(address _asset, address _to) external; + function withdrawERC721(address _asset, address _to, uint256 _id) external; + function withdrawETH(address payable _to, uint256 _amount) external; + function withdrawETH(address payable _to) external; +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "constructor", + "inputs": [ + { + "name": "_owner", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "receive", + "stateMutability": "payable" + }, + { + "type": "function", + "name": "CALL", + "inputs": [ + { + "name": "_target", + "type": "address", + "internalType": "address" + }, + { + "name": "_data", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "_value", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "success_", + "type": "bool", + "internalType": "bool" + }, + { + "name": "data_", + "type": "bytes", + "internalType": "bytes" + } + ], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "DELEGATECALL", + "inputs": [ + { + "name": "_target", + "type": "address", + "internalType": "address" + }, + { + "name": "_data", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [ + { + "name": "success_", + "type": "bool", + "internalType": "bool" + }, + { + "name": "data_", + "type": "bytes", + "internalType": "bytes" + } + ], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "owner", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "setOwner", + "inputs": [ + { + "name": "newOwner", + "type": "address", + "internalType": "address" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "withdrawERC20", + "inputs": [ + { + "name": "_asset", + "type": "address", + "internalType": "contract ERC20" + }, + { + "name": "_to", + "type": "address", + "internalType": "address" + }, + { + "name": "_amount", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "withdrawERC20", + "inputs": [ + { + "name": "_asset", + "type": "address", + "internalType": "contract ERC20" + }, + { + "name": "_to", + "type": "address", + "internalType": "address" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "withdrawERC721", + "inputs": [ + { + "name": "_asset", + "type": "address", + "internalType": "contract ERC721" + }, + { + "name": "_to", + "type": "address", + "internalType": "address" + }, + { + "name": "_id", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "withdrawETH", + "inputs": [ + { + "name": "_to", + "type": "address", + "internalType": "address payable" + }, + { + "name": "_amount", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "withdrawETH", + "inputs": [ + { + "name": "_to", + "type": "address", + "internalType": "address payable" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "event", + "name": "OwnerUpdated", + "inputs": [ + { + "name": "user", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "newOwner", + "type": "address", + "indexed": true, + "internalType": "address" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "ReceivedETH", + "inputs": [ + { + "name": "from", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "WithdrewERC20", + "inputs": [ + { + "name": "withdrawer", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "recipient", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "asset", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "WithdrewERC721", + "inputs": [ + { + "name": "withdrawer", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "recipient", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "asset", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "id", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "WithdrewETH", + "inputs": [ + { + "name": "withdrawer", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "recipient", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod AssetReceiver { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x608060405234801561001057600080fd5b50604051610d29380380610d2983398101604081905261002f91610081565b600080546001600160a01b0319166001600160a01b038316908117825560405183928392917f8292fce18fa69edf4db7b94ea2e58241df0ae57f97e0a6c9b29067028bf92d76908290a35050506100b1565b60006020828403121561009357600080fd5b81516001600160a01b03811681146100aa57600080fd5b9392505050565b610c69806100c06000396000f3fe60806040526004361061009a5760003560e01c8063690d8320116100695780638da5cb5b1161004e5780638da5cb5b146101a75780639456fbcc146101df578063edee6239146101ff57600080fd5b8063690d83201461015d5780636e2d44ae1461017d57600080fd5b806313af4035146100db5780634025feb2146100fd57806344004cc11461011d5780634782f7791461013d57600080fd5b366100d65760405134815233907f4103257eaac983ca79a70d28f90dfc4fa16b619bb0c17ee7cab0d4034c2796249060200160405180910390a2005b600080fd5b3480156100e757600080fd5b506100fb6100f636600461092e565b610212565b005b34801561010957600080fd5b506100fb610118366004610952565b6102d4565b34801561012957600080fd5b506100fb610138366004610952565b61040b565b34801561014957600080fd5b506100fb610158366004610993565b610541565b34801561016957600080fd5b506100fb61017836600461092e565b610643565b61019061018b366004610a99565b6106aa565b60405161019e929190610b22565b60405180910390f35b3480156101b357600080fd5b506000546101c7906001600160a01b031681565b6040516001600160a01b03909116815260200161019e565b3480156101eb57600080fd5b506100fb6101fa366004610b7c565b610770565b61019061020d366004610bb5565b610857565b6000546001600160a01b031633146102715760405162461bcd60e51b815260206004820152600c60248201527f554e415554484f52495a4544000000000000000000000000000000000000000060448201526064015b60405180910390fd5b600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0383169081178255604051909133917f8292fce18fa69edf4db7b94ea2e58241df0ae57f97e0a6c9b29067028bf92d769190a350565b6000546001600160a01b0316331461032e5760405162461bcd60e51b815260206004820152600c60248201527f554e415554484f52495a454400000000000000000000000000000000000000006044820152606401610268565b6040517f23b872dd0000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b038381166024830152604482018390528416906323b872dd90606401600060405180830381600087803b15801561039757600080fd5b505af11580156103ab573d6000803e3d6000fd5b50505050826001600160a01b0316826001600160a01b0316336001600160a01b03167f30b478a5e196e55886228aa87ba74a7dfeba655e0a4d7ba275eabfc22aabb7a8846040516103fe91815260200190565b60405180910390a4505050565b6000546001600160a01b031633146104655760405162461bcd60e51b815260206004820152600c60248201527f554e415554484f52495a454400000000000000000000000000000000000000006044820152606401610268565b6040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b0383811660048301526024820183905284169063a9059cbb906044016020604051808303816000875af11580156104cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f19190610c05565b50826001600160a01b0316826001600160a01b0316336001600160a01b03167f6b00f1c7883f053ba83e907fd1965b22fffe3c4111383e725f04638a566cdbfa846040516103fe91815260200190565b6000546001600160a01b0316331461059b5760405162461bcd60e51b815260206004820152600c60248201527f554e415554484f52495a454400000000000000000000000000000000000000006044820152606401610268565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146105e8576040519150601f19603f3d011682016040523d82523d6000602084013e6105ed565b606091505b50509050826001600160a01b0316336001600160a01b03167f1f12aa8b6d492dd9b98e2b00b0b20830c2a7ded65afac13b60d169a034ae90bc8460405161063691815260200190565b60405180910390a3505050565b6000546001600160a01b0316331461069d5760405162461bcd60e51b815260206004820152600c60248201527f554e415554484f52495a454400000000000000000000000000000000000000006044820152606401610268565b6106a78147610541565b50565b600080546060906001600160a01b031633146107085760405162461bcd60e51b815260206004820152600c60248201527f554e415554484f52495a454400000000000000000000000000000000000000006044820152606401610268565b846001600160a01b031683856040516107219190610c27565b60006040518083038185875af1925050503d806000811461075e576040519150601f19603f3d011682016040523d82523d6000602084013e610763565b606091505b5090969095509350505050565b6000546001600160a01b031633146107ca5760405162461bcd60e51b815260206004820152600c60248201527f554e415554484f52495a454400000000000000000000000000000000000000006044820152606401610268565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015261085390839083906001600160a01b038316906370a0823190602401602060405180830381865afa15801561082f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101389190610c43565b5050565b600080546060906001600160a01b031633146108b55760405162461bcd60e51b815260206004820152600c60248201527f554e415554484f52495a454400000000000000000000000000000000000000006044820152606401610268565b836001600160a01b0316836040516108cd9190610c27565b600060405180830381855af49150503d8060008114610908576040519150601f19603f3d011682016040523d82523d6000602084013e61090d565b606091505b50909590945092505050565b6001600160a01b03811681146106a757600080fd5b60006020828403121561094057600080fd5b813561094b81610919565b9392505050565b60008060006060848603121561096757600080fd5b833561097281610919565b9250602084013561098281610919565b929592945050506040919091013590565b600080604083850312156109a657600080fd5b82356109b181610919565b946020939093013593505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f8301126109ff57600080fd5b813567ffffffffffffffff80821115610a1a57610a1a6109bf565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908282118183101715610a6057610a606109bf565b81604052838152866020858801011115610a7957600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600060608486031215610aae57600080fd5b8335610ab981610919565b9250602084013567ffffffffffffffff811115610ad557600080fd5b610ae1868287016109ee565b925050604084013590509250925092565b60005b83811015610b0d578181015183820152602001610af5565b83811115610b1c576000848401525b50505050565b82151581526040602082015260008251806040840152610b49816060850160208701610af2565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016060019392505050565b60008060408385031215610b8f57600080fd5b8235610b9a81610919565b91506020830135610baa81610919565b809150509250929050565b60008060408385031215610bc857600080fd5b8235610bd381610919565b9150602083013567ffffffffffffffff811115610bef57600080fd5b610bfb858286016109ee565b9150509250929050565b600060208284031215610c1757600080fd5b8151801515811461094b57600080fd5b60008251610c39818460208701610af2565b9190910192915050565b600060208284031215610c5557600080fd5b505191905056fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`@Qa\r)8\x03\x80a\r)\x839\x81\x01`@\x81\x90Ra\0/\x91a\0\x81V[`\0\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x83\x16\x90\x81\x17\x82U`@Q\x83\x92\x83\x92\x91\x7F\x82\x92\xFC\xE1\x8F\xA6\x9E\xDFM\xB7\xB9N\xA2\xE5\x82A\xDF\n\xE5\x7F\x97\xE0\xA6\xC9\xB2\x90g\x02\x8B\xF9-v\x90\x82\x90\xA3PPPa\0\xB1V[`\0` \x82\x84\x03\x12\x15a\0\x93W`\0\x80\xFD[\x81Q`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a\0\xAAW`\0\x80\xFD[\x93\x92PPPV[a\x0Ci\x80a\0\xC0`\09`\0\xF3\xFE`\x80`@R`\x046\x10a\0\x9AW`\x005`\xE0\x1C\x80ci\r\x83 \x11a\0iW\x80c\x8D\xA5\xCB[\x11a\0NW\x80c\x8D\xA5\xCB[\x14a\x01\xA7W\x80c\x94V\xFB\xCC\x14a\x01\xDFW\x80c\xED\xEEb9\x14a\x01\xFFW`\0\x80\xFD[\x80ci\r\x83 \x14a\x01]W\x80cn-D\xAE\x14a\x01}W`\0\x80\xFD[\x80c\x13\xAF@5\x14a\0\xDBW\x80c@%\xFE\xB2\x14a\0\xFDW\x80cD\0L\xC1\x14a\x01\x1DW\x80cG\x82\xF7y\x14a\x01=W`\0\x80\xFD[6a\0\xD6W`@Q4\x81R3\x90\x7FA\x03%~\xAA\xC9\x83\xCAy\xA7\r(\xF9\r\xFCO\xA1ka\x9B\xB0\xC1~\xE7\xCA\xB0\xD4\x03L'\x96$\x90` \x01`@Q\x80\x91\x03\x90\xA2\0[`\0\x80\xFD[4\x80\x15a\0\xE7W`\0\x80\xFD[Pa\0\xFBa\0\xF66`\x04a\t.V[a\x02\x12V[\0[4\x80\x15a\x01\tW`\0\x80\xFD[Pa\0\xFBa\x01\x186`\x04a\tRV[a\x02\xD4V[4\x80\x15a\x01)W`\0\x80\xFD[Pa\0\xFBa\x0186`\x04a\tRV[a\x04\x0BV[4\x80\x15a\x01IW`\0\x80\xFD[Pa\0\xFBa\x01X6`\x04a\t\x93V[a\x05AV[4\x80\x15a\x01iW`\0\x80\xFD[Pa\0\xFBa\x01x6`\x04a\t.V[a\x06CV[a\x01\x90a\x01\x8B6`\x04a\n\x99V[a\x06\xAAV[`@Qa\x01\x9E\x92\x91\x90a\x0B\"V[`@Q\x80\x91\x03\x90\xF3[4\x80\x15a\x01\xB3W`\0\x80\xFD[P`\0Ta\x01\xC7\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x01a\x01\x9EV[4\x80\x15a\x01\xEBW`\0\x80\xFD[Pa\0\xFBa\x01\xFA6`\x04a\x0B|V[a\x07pV[a\x01\x90a\x02\r6`\x04a\x0B\xB5V[a\x08WV[`\0T`\x01`\x01`\xA0\x1B\x03\x163\x14a\x02qW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x0C`$\x82\x01R\x7FUNAUTHORIZED\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`D\x82\x01R`d\x01[`@Q\x80\x91\x03\x90\xFD[`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16`\x01`\x01`\xA0\x1B\x03\x83\x16\x90\x81\x17\x82U`@Q\x90\x913\x91\x7F\x82\x92\xFC\xE1\x8F\xA6\x9E\xDFM\xB7\xB9N\xA2\xE5\x82A\xDF\n\xE5\x7F\x97\xE0\xA6\xC9\xB2\x90g\x02\x8B\xF9-v\x91\x90\xA3PV[`\0T`\x01`\x01`\xA0\x1B\x03\x163\x14a\x03.W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x0C`$\x82\x01R\x7FUNAUTHORIZED\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`D\x82\x01R`d\x01a\x02hV[`@Q\x7F#\xB8r\xDD\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\x81R0`\x04\x82\x01R`\x01`\x01`\xA0\x1B\x03\x83\x81\x16`$\x83\x01R`D\x82\x01\x83\x90R\x84\x16\x90c#\xB8r\xDD\x90`d\x01`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a\x03\x97W`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x03\xABW=`\0\x80>=`\0\xFD[PPPP\x82`\x01`\x01`\xA0\x1B\x03\x16\x82`\x01`\x01`\xA0\x1B\x03\x163`\x01`\x01`\xA0\x1B\x03\x16\x7F0\xB4x\xA5\xE1\x96\xE5X\x86\"\x8A\xA8{\xA7J}\xFE\xBAe^\nM{\xA2u\xEA\xBF\xC2*\xAB\xB7\xA8\x84`@Qa\x03\xFE\x91\x81R` \x01\x90V[`@Q\x80\x91\x03\x90\xA4PPPV[`\0T`\x01`\x01`\xA0\x1B\x03\x163\x14a\x04eW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x0C`$\x82\x01R\x7FUNAUTHORIZED\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`D\x82\x01R`d\x01a\x02hV[`@Q\x7F\xA9\x05\x9C\xBB\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`\x01`\x01`\xA0\x1B\x03\x83\x81\x16`\x04\x83\x01R`$\x82\x01\x83\x90R\x84\x16\x90c\xA9\x05\x9C\xBB\x90`D\x01` `@Q\x80\x83\x03\x81`\0\x87Z\xF1\x15\x80\x15a\x04\xCDW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x04\xF1\x91\x90a\x0C\x05V[P\x82`\x01`\x01`\xA0\x1B\x03\x16\x82`\x01`\x01`\xA0\x1B\x03\x163`\x01`\x01`\xA0\x1B\x03\x16\x7Fk\0\xF1\xC7\x88?\x05;\xA8>\x90\x7F\xD1\x96[\"\xFF\xFEr_\x04c\x8AVl\xDB\xFA\x84`@Qa\x03\xFE\x91\x81R` \x01\x90V[`\0T`\x01`\x01`\xA0\x1B\x03\x163\x14a\x05\x9BW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x0C`$\x82\x01R\x7FUNAUTHORIZED\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`D\x82\x01R`d\x01a\x02hV[`\0\x82`\x01`\x01`\xA0\x1B\x03\x16\x82`@Q`\0`@Q\x80\x83\x03\x81\x85\x87Z\xF1\x92PPP=\x80`\0\x81\x14a\x05\xE8W`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=`\0` \x84\x01>a\x05\xEDV[``\x91P[PP\x90P\x82`\x01`\x01`\xA0\x1B\x03\x163`\x01`\x01`\xA0\x1B\x03\x16\x7F\x1F\x12\xAA\x8BmI-\xD9\xB9\x8E+\0\xB0\xB2\x080\xC2\xA7\xDE\xD6Z\xFA\xC1;`\xD1i\xA04\xAE\x90\xBC\x84`@Qa\x066\x91\x81R` \x01\x90V[`@Q\x80\x91\x03\x90\xA3PPPV[`\0T`\x01`\x01`\xA0\x1B\x03\x163\x14a\x06\x9DW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x0C`$\x82\x01R\x7FUNAUTHORIZED\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`D\x82\x01R`d\x01a\x02hV[a\x06\xA7\x81Ga\x05AV[PV[`\0\x80T``\x90`\x01`\x01`\xA0\x1B\x03\x163\x14a\x07\x08W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x0C`$\x82\x01R\x7FUNAUTHORIZED\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`D\x82\x01R`d\x01a\x02hV[\x84`\x01`\x01`\xA0\x1B\x03\x16\x83\x85`@Qa\x07!\x91\x90a\x0C'V[`\0`@Q\x80\x83\x03\x81\x85\x87Z\xF1\x92PPP=\x80`\0\x81\x14a\x07^W`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=`\0` \x84\x01>a\x07cV[``\x91P[P\x90\x96\x90\x95P\x93PPPPV[`\0T`\x01`\x01`\xA0\x1B\x03\x163\x14a\x07\xCAW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x0C`$\x82\x01R\x7FUNAUTHORIZED\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`D\x82\x01R`d\x01a\x02hV[`@Q\x7Fp\xA0\x821\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\x81R0`\x04\x82\x01Ra\x08S\x90\x83\x90\x83\x90`\x01`\x01`\xA0\x1B\x03\x83\x16\x90cp\xA0\x821\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x08/W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x018\x91\x90a\x0CCV[PPV[`\0\x80T``\x90`\x01`\x01`\xA0\x1B\x03\x163\x14a\x08\xB5W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x0C`$\x82\x01R\x7FUNAUTHORIZED\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`D\x82\x01R`d\x01a\x02hV[\x83`\x01`\x01`\xA0\x1B\x03\x16\x83`@Qa\x08\xCD\x91\x90a\x0C'V[`\0`@Q\x80\x83\x03\x81\x85Z\xF4\x91PP=\x80`\0\x81\x14a\t\x08W`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=`\0` \x84\x01>a\t\rV[``\x91P[P\x90\x95\x90\x94P\x92PPPV[`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a\x06\xA7W`\0\x80\xFD[`\0` \x82\x84\x03\x12\x15a\t@W`\0\x80\xFD[\x815a\tK\x81a\t\x19V[\x93\x92PPPV[`\0\x80`\0``\x84\x86\x03\x12\x15a\tgW`\0\x80\xFD[\x835a\tr\x81a\t\x19V[\x92P` \x84\x015a\t\x82\x81a\t\x19V[\x92\x95\x92\x94PPP`@\x91\x90\x91\x015\x90V[`\0\x80`@\x83\x85\x03\x12\x15a\t\xA6W`\0\x80\xFD[\x825a\t\xB1\x81a\t\x19V[\x94` \x93\x90\x93\x015\x93PPPV[\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[`\0\x82`\x1F\x83\x01\x12a\t\xFFW`\0\x80\xFD[\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\n\x1AWa\n\x1Aa\t\xBFV[`@Q`\x1F\x83\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x90\x81\x16`?\x01\x16\x81\x01\x90\x82\x82\x11\x81\x83\x10\x17\x15a\n`Wa\n`a\t\xBFV[\x81`@R\x83\x81R\x86` \x85\x88\x01\x01\x11\x15a\nyW`\0\x80\xFD[\x83` \x87\x01` \x83\x017`\0` \x85\x83\x01\x01R\x80\x94PPPPP\x92\x91PPV[`\0\x80`\0``\x84\x86\x03\x12\x15a\n\xAEW`\0\x80\xFD[\x835a\n\xB9\x81a\t\x19V[\x92P` \x84\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\n\xD5W`\0\x80\xFD[a\n\xE1\x86\x82\x87\x01a\t\xEEV[\x92PP`@\x84\x015\x90P\x92P\x92P\x92V[`\0[\x83\x81\x10\x15a\x0B\rW\x81\x81\x01Q\x83\x82\x01R` \x01a\n\xF5V[\x83\x81\x11\x15a\x0B\x1CW`\0\x84\x84\x01R[PPPPV[\x82\x15\x15\x81R`@` \x82\x01R`\0\x82Q\x80`@\x84\x01Ra\x0BI\x81``\x85\x01` \x87\x01a\n\xF2V[`\x1F\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x91\x90\x91\x01``\x01\x93\x92PPPV[`\0\x80`@\x83\x85\x03\x12\x15a\x0B\x8FW`\0\x80\xFD[\x825a\x0B\x9A\x81a\t\x19V[\x91P` \x83\x015a\x0B\xAA\x81a\t\x19V[\x80\x91PP\x92P\x92\x90PV[`\0\x80`@\x83\x85\x03\x12\x15a\x0B\xC8W`\0\x80\xFD[\x825a\x0B\xD3\x81a\t\x19V[\x91P` \x83\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x0B\xEFW`\0\x80\xFD[a\x0B\xFB\x85\x82\x86\x01a\t\xEEV[\x91PP\x92P\x92\x90PV[`\0` \x82\x84\x03\x12\x15a\x0C\x17W`\0\x80\xFD[\x81Q\x80\x15\x15\x81\x14a\tKW`\0\x80\xFD[`\0\x82Qa\x0C9\x81\x84` \x87\x01a\n\xF2V[\x91\x90\x91\x01\x92\x91PPV[`\0` \x82\x84\x03\x12\x15a\x0CUW`\0\x80\xFD[PQ\x91\x90PV\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x60806040526004361061009a5760003560e01c8063690d8320116100695780638da5cb5b1161004e5780638da5cb5b146101a75780639456fbcc146101df578063edee6239146101ff57600080fd5b8063690d83201461015d5780636e2d44ae1461017d57600080fd5b806313af4035146100db5780634025feb2146100fd57806344004cc11461011d5780634782f7791461013d57600080fd5b366100d65760405134815233907f4103257eaac983ca79a70d28f90dfc4fa16b619bb0c17ee7cab0d4034c2796249060200160405180910390a2005b600080fd5b3480156100e757600080fd5b506100fb6100f636600461092e565b610212565b005b34801561010957600080fd5b506100fb610118366004610952565b6102d4565b34801561012957600080fd5b506100fb610138366004610952565b61040b565b34801561014957600080fd5b506100fb610158366004610993565b610541565b34801561016957600080fd5b506100fb61017836600461092e565b610643565b61019061018b366004610a99565b6106aa565b60405161019e929190610b22565b60405180910390f35b3480156101b357600080fd5b506000546101c7906001600160a01b031681565b6040516001600160a01b03909116815260200161019e565b3480156101eb57600080fd5b506100fb6101fa366004610b7c565b610770565b61019061020d366004610bb5565b610857565b6000546001600160a01b031633146102715760405162461bcd60e51b815260206004820152600c60248201527f554e415554484f52495a4544000000000000000000000000000000000000000060448201526064015b60405180910390fd5b600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0383169081178255604051909133917f8292fce18fa69edf4db7b94ea2e58241df0ae57f97e0a6c9b29067028bf92d769190a350565b6000546001600160a01b0316331461032e5760405162461bcd60e51b815260206004820152600c60248201527f554e415554484f52495a454400000000000000000000000000000000000000006044820152606401610268565b6040517f23b872dd0000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b038381166024830152604482018390528416906323b872dd90606401600060405180830381600087803b15801561039757600080fd5b505af11580156103ab573d6000803e3d6000fd5b50505050826001600160a01b0316826001600160a01b0316336001600160a01b03167f30b478a5e196e55886228aa87ba74a7dfeba655e0a4d7ba275eabfc22aabb7a8846040516103fe91815260200190565b60405180910390a4505050565b6000546001600160a01b031633146104655760405162461bcd60e51b815260206004820152600c60248201527f554e415554484f52495a454400000000000000000000000000000000000000006044820152606401610268565b6040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b0383811660048301526024820183905284169063a9059cbb906044016020604051808303816000875af11580156104cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f19190610c05565b50826001600160a01b0316826001600160a01b0316336001600160a01b03167f6b00f1c7883f053ba83e907fd1965b22fffe3c4111383e725f04638a566cdbfa846040516103fe91815260200190565b6000546001600160a01b0316331461059b5760405162461bcd60e51b815260206004820152600c60248201527f554e415554484f52495a454400000000000000000000000000000000000000006044820152606401610268565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146105e8576040519150601f19603f3d011682016040523d82523d6000602084013e6105ed565b606091505b50509050826001600160a01b0316336001600160a01b03167f1f12aa8b6d492dd9b98e2b00b0b20830c2a7ded65afac13b60d169a034ae90bc8460405161063691815260200190565b60405180910390a3505050565b6000546001600160a01b0316331461069d5760405162461bcd60e51b815260206004820152600c60248201527f554e415554484f52495a454400000000000000000000000000000000000000006044820152606401610268565b6106a78147610541565b50565b600080546060906001600160a01b031633146107085760405162461bcd60e51b815260206004820152600c60248201527f554e415554484f52495a454400000000000000000000000000000000000000006044820152606401610268565b846001600160a01b031683856040516107219190610c27565b60006040518083038185875af1925050503d806000811461075e576040519150601f19603f3d011682016040523d82523d6000602084013e610763565b606091505b5090969095509350505050565b6000546001600160a01b031633146107ca5760405162461bcd60e51b815260206004820152600c60248201527f554e415554484f52495a454400000000000000000000000000000000000000006044820152606401610268565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015261085390839083906001600160a01b038316906370a0823190602401602060405180830381865afa15801561082f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101389190610c43565b5050565b600080546060906001600160a01b031633146108b55760405162461bcd60e51b815260206004820152600c60248201527f554e415554484f52495a454400000000000000000000000000000000000000006044820152606401610268565b836001600160a01b0316836040516108cd9190610c27565b600060405180830381855af49150503d8060008114610908576040519150601f19603f3d011682016040523d82523d6000602084013e61090d565b606091505b50909590945092505050565b6001600160a01b03811681146106a757600080fd5b60006020828403121561094057600080fd5b813561094b81610919565b9392505050565b60008060006060848603121561096757600080fd5b833561097281610919565b9250602084013561098281610919565b929592945050506040919091013590565b600080604083850312156109a657600080fd5b82356109b181610919565b946020939093013593505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f8301126109ff57600080fd5b813567ffffffffffffffff80821115610a1a57610a1a6109bf565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908282118183101715610a6057610a606109bf565b81604052838152866020858801011115610a7957600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600060608486031215610aae57600080fd5b8335610ab981610919565b9250602084013567ffffffffffffffff811115610ad557600080fd5b610ae1868287016109ee565b925050604084013590509250925092565b60005b83811015610b0d578181015183820152602001610af5565b83811115610b1c576000848401525b50505050565b82151581526040602082015260008251806040840152610b49816060850160208701610af2565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016060019392505050565b60008060408385031215610b8f57600080fd5b8235610b9a81610919565b91506020830135610baa81610919565b809150509250929050565b60008060408385031215610bc857600080fd5b8235610bd381610919565b9150602083013567ffffffffffffffff811115610bef57600080fd5b610bfb858286016109ee565b9150509250929050565b600060208284031215610c1757600080fd5b8151801515811461094b57600080fd5b60008251610c39818460208701610af2565b9190910192915050565b600060208284031215610c5557600080fd5b505191905056fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R`\x046\x10a\0\x9AW`\x005`\xE0\x1C\x80ci\r\x83 \x11a\0iW\x80c\x8D\xA5\xCB[\x11a\0NW\x80c\x8D\xA5\xCB[\x14a\x01\xA7W\x80c\x94V\xFB\xCC\x14a\x01\xDFW\x80c\xED\xEEb9\x14a\x01\xFFW`\0\x80\xFD[\x80ci\r\x83 \x14a\x01]W\x80cn-D\xAE\x14a\x01}W`\0\x80\xFD[\x80c\x13\xAF@5\x14a\0\xDBW\x80c@%\xFE\xB2\x14a\0\xFDW\x80cD\0L\xC1\x14a\x01\x1DW\x80cG\x82\xF7y\x14a\x01=W`\0\x80\xFD[6a\0\xD6W`@Q4\x81R3\x90\x7FA\x03%~\xAA\xC9\x83\xCAy\xA7\r(\xF9\r\xFCO\xA1ka\x9B\xB0\xC1~\xE7\xCA\xB0\xD4\x03L'\x96$\x90` \x01`@Q\x80\x91\x03\x90\xA2\0[`\0\x80\xFD[4\x80\x15a\0\xE7W`\0\x80\xFD[Pa\0\xFBa\0\xF66`\x04a\t.V[a\x02\x12V[\0[4\x80\x15a\x01\tW`\0\x80\xFD[Pa\0\xFBa\x01\x186`\x04a\tRV[a\x02\xD4V[4\x80\x15a\x01)W`\0\x80\xFD[Pa\0\xFBa\x0186`\x04a\tRV[a\x04\x0BV[4\x80\x15a\x01IW`\0\x80\xFD[Pa\0\xFBa\x01X6`\x04a\t\x93V[a\x05AV[4\x80\x15a\x01iW`\0\x80\xFD[Pa\0\xFBa\x01x6`\x04a\t.V[a\x06CV[a\x01\x90a\x01\x8B6`\x04a\n\x99V[a\x06\xAAV[`@Qa\x01\x9E\x92\x91\x90a\x0B\"V[`@Q\x80\x91\x03\x90\xF3[4\x80\x15a\x01\xB3W`\0\x80\xFD[P`\0Ta\x01\xC7\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x01a\x01\x9EV[4\x80\x15a\x01\xEBW`\0\x80\xFD[Pa\0\xFBa\x01\xFA6`\x04a\x0B|V[a\x07pV[a\x01\x90a\x02\r6`\x04a\x0B\xB5V[a\x08WV[`\0T`\x01`\x01`\xA0\x1B\x03\x163\x14a\x02qW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x0C`$\x82\x01R\x7FUNAUTHORIZED\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`D\x82\x01R`d\x01[`@Q\x80\x91\x03\x90\xFD[`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16`\x01`\x01`\xA0\x1B\x03\x83\x16\x90\x81\x17\x82U`@Q\x90\x913\x91\x7F\x82\x92\xFC\xE1\x8F\xA6\x9E\xDFM\xB7\xB9N\xA2\xE5\x82A\xDF\n\xE5\x7F\x97\xE0\xA6\xC9\xB2\x90g\x02\x8B\xF9-v\x91\x90\xA3PV[`\0T`\x01`\x01`\xA0\x1B\x03\x163\x14a\x03.W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x0C`$\x82\x01R\x7FUNAUTHORIZED\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`D\x82\x01R`d\x01a\x02hV[`@Q\x7F#\xB8r\xDD\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\x81R0`\x04\x82\x01R`\x01`\x01`\xA0\x1B\x03\x83\x81\x16`$\x83\x01R`D\x82\x01\x83\x90R\x84\x16\x90c#\xB8r\xDD\x90`d\x01`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a\x03\x97W`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x03\xABW=`\0\x80>=`\0\xFD[PPPP\x82`\x01`\x01`\xA0\x1B\x03\x16\x82`\x01`\x01`\xA0\x1B\x03\x163`\x01`\x01`\xA0\x1B\x03\x16\x7F0\xB4x\xA5\xE1\x96\xE5X\x86\"\x8A\xA8{\xA7J}\xFE\xBAe^\nM{\xA2u\xEA\xBF\xC2*\xAB\xB7\xA8\x84`@Qa\x03\xFE\x91\x81R` \x01\x90V[`@Q\x80\x91\x03\x90\xA4PPPV[`\0T`\x01`\x01`\xA0\x1B\x03\x163\x14a\x04eW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x0C`$\x82\x01R\x7FUNAUTHORIZED\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`D\x82\x01R`d\x01a\x02hV[`@Q\x7F\xA9\x05\x9C\xBB\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`\x01`\x01`\xA0\x1B\x03\x83\x81\x16`\x04\x83\x01R`$\x82\x01\x83\x90R\x84\x16\x90c\xA9\x05\x9C\xBB\x90`D\x01` `@Q\x80\x83\x03\x81`\0\x87Z\xF1\x15\x80\x15a\x04\xCDW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x04\xF1\x91\x90a\x0C\x05V[P\x82`\x01`\x01`\xA0\x1B\x03\x16\x82`\x01`\x01`\xA0\x1B\x03\x163`\x01`\x01`\xA0\x1B\x03\x16\x7Fk\0\xF1\xC7\x88?\x05;\xA8>\x90\x7F\xD1\x96[\"\xFF\xFEr_\x04c\x8AVl\xDB\xFA\x84`@Qa\x03\xFE\x91\x81R` \x01\x90V[`\0T`\x01`\x01`\xA0\x1B\x03\x163\x14a\x05\x9BW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x0C`$\x82\x01R\x7FUNAUTHORIZED\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`D\x82\x01R`d\x01a\x02hV[`\0\x82`\x01`\x01`\xA0\x1B\x03\x16\x82`@Q`\0`@Q\x80\x83\x03\x81\x85\x87Z\xF1\x92PPP=\x80`\0\x81\x14a\x05\xE8W`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=`\0` \x84\x01>a\x05\xEDV[``\x91P[PP\x90P\x82`\x01`\x01`\xA0\x1B\x03\x163`\x01`\x01`\xA0\x1B\x03\x16\x7F\x1F\x12\xAA\x8BmI-\xD9\xB9\x8E+\0\xB0\xB2\x080\xC2\xA7\xDE\xD6Z\xFA\xC1;`\xD1i\xA04\xAE\x90\xBC\x84`@Qa\x066\x91\x81R` \x01\x90V[`@Q\x80\x91\x03\x90\xA3PPPV[`\0T`\x01`\x01`\xA0\x1B\x03\x163\x14a\x06\x9DW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x0C`$\x82\x01R\x7FUNAUTHORIZED\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`D\x82\x01R`d\x01a\x02hV[a\x06\xA7\x81Ga\x05AV[PV[`\0\x80T``\x90`\x01`\x01`\xA0\x1B\x03\x163\x14a\x07\x08W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x0C`$\x82\x01R\x7FUNAUTHORIZED\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`D\x82\x01R`d\x01a\x02hV[\x84`\x01`\x01`\xA0\x1B\x03\x16\x83\x85`@Qa\x07!\x91\x90a\x0C'V[`\0`@Q\x80\x83\x03\x81\x85\x87Z\xF1\x92PPP=\x80`\0\x81\x14a\x07^W`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=`\0` \x84\x01>a\x07cV[``\x91P[P\x90\x96\x90\x95P\x93PPPPV[`\0T`\x01`\x01`\xA0\x1B\x03\x163\x14a\x07\xCAW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x0C`$\x82\x01R\x7FUNAUTHORIZED\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`D\x82\x01R`d\x01a\x02hV[`@Q\x7Fp\xA0\x821\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\x81R0`\x04\x82\x01Ra\x08S\x90\x83\x90\x83\x90`\x01`\x01`\xA0\x1B\x03\x83\x16\x90cp\xA0\x821\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x08/W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x018\x91\x90a\x0CCV[PPV[`\0\x80T``\x90`\x01`\x01`\xA0\x1B\x03\x163\x14a\x08\xB5W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x0C`$\x82\x01R\x7FUNAUTHORIZED\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`D\x82\x01R`d\x01a\x02hV[\x83`\x01`\x01`\xA0\x1B\x03\x16\x83`@Qa\x08\xCD\x91\x90a\x0C'V[`\0`@Q\x80\x83\x03\x81\x85Z\xF4\x91PP=\x80`\0\x81\x14a\t\x08W`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=`\0` \x84\x01>a\t\rV[``\x91P[P\x90\x95\x90\x94P\x92PPPV[`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a\x06\xA7W`\0\x80\xFD[`\0` \x82\x84\x03\x12\x15a\t@W`\0\x80\xFD[\x815a\tK\x81a\t\x19V[\x93\x92PPPV[`\0\x80`\0``\x84\x86\x03\x12\x15a\tgW`\0\x80\xFD[\x835a\tr\x81a\t\x19V[\x92P` \x84\x015a\t\x82\x81a\t\x19V[\x92\x95\x92\x94PPP`@\x91\x90\x91\x015\x90V[`\0\x80`@\x83\x85\x03\x12\x15a\t\xA6W`\0\x80\xFD[\x825a\t\xB1\x81a\t\x19V[\x94` \x93\x90\x93\x015\x93PPPV[\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[`\0\x82`\x1F\x83\x01\x12a\t\xFFW`\0\x80\xFD[\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\n\x1AWa\n\x1Aa\t\xBFV[`@Q`\x1F\x83\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x90\x81\x16`?\x01\x16\x81\x01\x90\x82\x82\x11\x81\x83\x10\x17\x15a\n`Wa\n`a\t\xBFV[\x81`@R\x83\x81R\x86` \x85\x88\x01\x01\x11\x15a\nyW`\0\x80\xFD[\x83` \x87\x01` \x83\x017`\0` \x85\x83\x01\x01R\x80\x94PPPPP\x92\x91PPV[`\0\x80`\0``\x84\x86\x03\x12\x15a\n\xAEW`\0\x80\xFD[\x835a\n\xB9\x81a\t\x19V[\x92P` \x84\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\n\xD5W`\0\x80\xFD[a\n\xE1\x86\x82\x87\x01a\t\xEEV[\x92PP`@\x84\x015\x90P\x92P\x92P\x92V[`\0[\x83\x81\x10\x15a\x0B\rW\x81\x81\x01Q\x83\x82\x01R` \x01a\n\xF5V[\x83\x81\x11\x15a\x0B\x1CW`\0\x84\x84\x01R[PPPPV[\x82\x15\x15\x81R`@` \x82\x01R`\0\x82Q\x80`@\x84\x01Ra\x0BI\x81``\x85\x01` \x87\x01a\n\xF2V[`\x1F\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x91\x90\x91\x01``\x01\x93\x92PPPV[`\0\x80`@\x83\x85\x03\x12\x15a\x0B\x8FW`\0\x80\xFD[\x825a\x0B\x9A\x81a\t\x19V[\x91P` \x83\x015a\x0B\xAA\x81a\t\x19V[\x80\x91PP\x92P\x92\x90PV[`\0\x80`@\x83\x85\x03\x12\x15a\x0B\xC8W`\0\x80\xFD[\x825a\x0B\xD3\x81a\t\x19V[\x91P` \x83\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x0B\xEFW`\0\x80\xFD[a\x0B\xFB\x85\x82\x86\x01a\t\xEEV[\x91PP\x92P\x92\x90PV[`\0` \x82\x84\x03\x12\x15a\x0C\x17W`\0\x80\xFD[\x81Q\x80\x15\x15\x81\x14a\tKW`\0\x80\xFD[`\0\x82Qa\x0C9\x81\x84` \x87\x01a\n\xF2V[\x91\x90\x91\x01\x92\x91PPV[`\0` \x82\x84\x03\x12\x15a\x0CUW`\0\x80\xFD[PQ\x91\x90PV\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `OwnerUpdated(address,address)` and selector `0x8292fce18fa69edf4db7b94ea2e58241df0ae57f97e0a6c9b29067028bf92d76`. +```solidity +event OwnerUpdated(address indexed user, address indexed newOwner); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct OwnerUpdated { + #[allow(missing_docs)] + pub user: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub newOwner: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for OwnerUpdated { + type DataTuple<'a> = (); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "OwnerUpdated(address,address)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 130u8, 146u8, 252u8, 225u8, 143u8, 166u8, 158u8, 223u8, 77u8, 183u8, + 185u8, 78u8, 162u8, 229u8, 130u8, 65u8, 223u8, 10u8, 229u8, 127u8, 151u8, + 224u8, 166u8, 201u8, 178u8, 144u8, 103u8, 2u8, 139u8, 249u8, 45u8, 118u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + user: topics.1, + newOwner: topics.2, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + () + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.user.clone(), self.newOwner.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.user, + ); + out[2usize] = ::encode_topic( + &self.newOwner, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for OwnerUpdated { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&OwnerUpdated> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &OwnerUpdated) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `ReceivedETH(address,uint256)` and selector `0x4103257eaac983ca79a70d28f90dfc4fa16b619bb0c17ee7cab0d4034c279624`. +```solidity +event ReceivedETH(address indexed from, uint256 amount); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct ReceivedETH { + #[allow(missing_docs)] + pub from: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub amount: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for ReceivedETH { + type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "ReceivedETH(address,uint256)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 65u8, 3u8, 37u8, 126u8, 170u8, 201u8, 131u8, 202u8, 121u8, 167u8, 13u8, + 40u8, 249u8, 13u8, 252u8, 79u8, 161u8, 107u8, 97u8, 155u8, 176u8, 193u8, + 126u8, 231u8, 202u8, 176u8, 212u8, 3u8, 76u8, 39u8, 150u8, 36u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + from: topics.1, + amount: data.0, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.amount), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.from.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.from, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for ReceivedETH { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&ReceivedETH> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &ReceivedETH) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `WithdrewERC20(address,address,address,uint256)` and selector `0x6b00f1c7883f053ba83e907fd1965b22fffe3c4111383e725f04638a566cdbfa`. +```solidity +event WithdrewERC20(address indexed withdrawer, address indexed recipient, address indexed asset, uint256 amount); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct WithdrewERC20 { + #[allow(missing_docs)] + pub withdrawer: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub recipient: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub asset: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub amount: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for WithdrewERC20 { + type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "WithdrewERC20(address,address,address,uint256)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 107u8, 0u8, 241u8, 199u8, 136u8, 63u8, 5u8, 59u8, 168u8, 62u8, 144u8, + 127u8, 209u8, 150u8, 91u8, 34u8, 255u8, 254u8, 60u8, 65u8, 17u8, 56u8, + 62u8, 114u8, 95u8, 4u8, 99u8, 138u8, 86u8, 108u8, 219u8, 250u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + withdrawer: topics.1, + recipient: topics.2, + asset: topics.3, + amount: data.0, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.amount), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + ( + Self::SIGNATURE_HASH.into(), + self.withdrawer.clone(), + self.recipient.clone(), + self.asset.clone(), + ) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.withdrawer, + ); + out[2usize] = ::encode_topic( + &self.recipient, + ); + out[3usize] = ::encode_topic( + &self.asset, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for WithdrewERC20 { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&WithdrewERC20> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &WithdrewERC20) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `WithdrewERC721(address,address,address,uint256)` and selector `0x30b478a5e196e55886228aa87ba74a7dfeba655e0a4d7ba275eabfc22aabb7a8`. +```solidity +event WithdrewERC721(address indexed withdrawer, address indexed recipient, address indexed asset, uint256 id); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct WithdrewERC721 { + #[allow(missing_docs)] + pub withdrawer: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub recipient: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub asset: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub id: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for WithdrewERC721 { + type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "WithdrewERC721(address,address,address,uint256)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 48u8, 180u8, 120u8, 165u8, 225u8, 150u8, 229u8, 88u8, 134u8, 34u8, 138u8, + 168u8, 123u8, 167u8, 74u8, 125u8, 254u8, 186u8, 101u8, 94u8, 10u8, 77u8, + 123u8, 162u8, 117u8, 234u8, 191u8, 194u8, 42u8, 171u8, 183u8, 168u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + withdrawer: topics.1, + recipient: topics.2, + asset: topics.3, + id: data.0, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.id), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + ( + Self::SIGNATURE_HASH.into(), + self.withdrawer.clone(), + self.recipient.clone(), + self.asset.clone(), + ) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.withdrawer, + ); + out[2usize] = ::encode_topic( + &self.recipient, + ); + out[3usize] = ::encode_topic( + &self.asset, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for WithdrewERC721 { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&WithdrewERC721> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &WithdrewERC721) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `WithdrewETH(address,address,uint256)` and selector `0x1f12aa8b6d492dd9b98e2b00b0b20830c2a7ded65afac13b60d169a034ae90bc`. +```solidity +event WithdrewETH(address indexed withdrawer, address indexed recipient, uint256 amount); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct WithdrewETH { + #[allow(missing_docs)] + pub withdrawer: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub recipient: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub amount: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for WithdrewETH { + type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "WithdrewETH(address,address,uint256)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 31u8, 18u8, 170u8, 139u8, 109u8, 73u8, 45u8, 217u8, 185u8, 142u8, 43u8, + 0u8, 176u8, 178u8, 8u8, 48u8, 194u8, 167u8, 222u8, 214u8, 90u8, 250u8, + 193u8, 59u8, 96u8, 209u8, 105u8, 160u8, 52u8, 174u8, 144u8, 188u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + withdrawer: topics.1, + recipient: topics.2, + amount: data.0, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.amount), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + ( + Self::SIGNATURE_HASH.into(), + self.withdrawer.clone(), + self.recipient.clone(), + ) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.withdrawer, + ); + out[2usize] = ::encode_topic( + &self.recipient, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for WithdrewETH { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&WithdrewETH> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &WithdrewETH) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + /**Constructor`. +```solidity +constructor(address _owner); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct constructorCall { + #[allow(missing_docs)] + pub _owner: alloy::sol_types::private::Address, + } + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: constructorCall) -> Self { + (value._owner,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for constructorCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _owner: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolConstructor for constructorCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._owner, + ), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `CALL(address,bytes,uint256)` and selector `0x6e2d44ae`. +```solidity +function CALL(address _target, bytes memory _data, uint256 _value) external payable returns (bool success_, bytes memory data_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct CALLCall { + #[allow(missing_docs)] + pub _target: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _data: alloy::sol_types::private::Bytes, + #[allow(missing_docs)] + pub _value: alloy::sol_types::private::primitives::aliases::U256, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`CALL(address,bytes,uint256)`](CALLCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct CALLReturn { + #[allow(missing_docs)] + pub success_: bool, + #[allow(missing_docs)] + pub data_: alloy::sol_types::private::Bytes, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Bytes, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Bytes, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: CALLCall) -> Self { + (value._target, value._data, value._value) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for CALLCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _target: tuple.0, + _data: tuple.1, + _value: tuple.2, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Bool, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool, alloy::sol_types::private::Bytes); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: CALLReturn) -> Self { + (value.success_, value.data_) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for CALLReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + success_: tuple.0, + data_: tuple.1, + } + } + } + } + impl CALLReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + ( + ::tokenize( + &self.success_, + ), + ::tokenize( + &self.data_, + ), + ) + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for CALLCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Bytes, + alloy::sol_types::sol_data::Uint<256>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = CALLReturn; + type ReturnTuple<'a> = ( + alloy::sol_types::sol_data::Bool, + alloy::sol_types::sol_data::Bytes, + ); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "CALL(address,bytes,uint256)"; + const SELECTOR: [u8; 4] = [110u8, 45u8, 68u8, 174u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._target, + ), + ::tokenize( + &self._data, + ), + as alloy_sol_types::SolType>::tokenize(&self._value), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + CALLReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `DELEGATECALL(address,bytes)` and selector `0xedee6239`. +```solidity +function DELEGATECALL(address _target, bytes memory _data) external payable returns (bool success_, bytes memory data_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct DELEGATECALLCall { + #[allow(missing_docs)] + pub _target: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _data: alloy::sol_types::private::Bytes, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`DELEGATECALL(address,bytes)`](DELEGATECALLCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct DELEGATECALLReturn { + #[allow(missing_docs)] + pub success_: bool, + #[allow(missing_docs)] + pub data_: alloy::sol_types::private::Bytes, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Bytes, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: DELEGATECALLCall) -> Self { + (value._target, value._data) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for DELEGATECALLCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _target: tuple.0, + _data: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Bool, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool, alloy::sol_types::private::Bytes); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: DELEGATECALLReturn) -> Self { + (value.success_, value.data_) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for DELEGATECALLReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + success_: tuple.0, + data_: tuple.1, + } + } + } + } + impl DELEGATECALLReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + ( + ::tokenize( + &self.success_, + ), + ::tokenize( + &self.data_, + ), + ) + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for DELEGATECALLCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Bytes, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = DELEGATECALLReturn; + type ReturnTuple<'a> = ( + alloy::sol_types::sol_data::Bool, + alloy::sol_types::sol_data::Bytes, + ); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "DELEGATECALL(address,bytes)"; + const SELECTOR: [u8; 4] = [237u8, 238u8, 98u8, 57u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._target, + ), + ::tokenize( + &self._data, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + DELEGATECALLReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `owner()` and selector `0x8da5cb5b`. +```solidity +function owner() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ownerCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`owner()`](ownerCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ownerReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ownerCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ownerCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ownerReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ownerReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for ownerCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "owner()"; + const SELECTOR: [u8; 4] = [141u8, 165u8, 203u8, 91u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: ownerReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: ownerReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `setOwner(address)` and selector `0x13af4035`. +```solidity +function setOwner(address newOwner) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setOwnerCall { + #[allow(missing_docs)] + pub newOwner: alloy::sol_types::private::Address, + } + ///Container type for the return parameters of the [`setOwner(address)`](setOwnerCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setOwnerReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: setOwnerCall) -> Self { + (value.newOwner,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for setOwnerCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { newOwner: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: setOwnerReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for setOwnerReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl setOwnerReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for setOwnerCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = setOwnerReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "setOwner(address)"; + const SELECTOR: [u8; 4] = [19u8, 175u8, 64u8, 53u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.newOwner, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + setOwnerReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `withdrawERC20(address,address,uint256)` and selector `0x44004cc1`. +```solidity +function withdrawERC20(address _asset, address _to, uint256 _amount) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct withdrawERC20_0Call { + #[allow(missing_docs)] + pub _asset: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _amount: alloy::sol_types::private::primitives::aliases::U256, + } + ///Container type for the return parameters of the [`withdrawERC20(address,address,uint256)`](withdrawERC20_0Call) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct withdrawERC20_0Return {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: withdrawERC20_0Call) -> Self { + (value._asset, value._to, value._amount) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for withdrawERC20_0Call { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _asset: tuple.0, + _to: tuple.1, + _amount: tuple.2, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: withdrawERC20_0Return) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for withdrawERC20_0Return { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl withdrawERC20_0Return { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for withdrawERC20_0Call { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = withdrawERC20_0Return; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "withdrawERC20(address,address,uint256)"; + const SELECTOR: [u8; 4] = [68u8, 0u8, 76u8, 193u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._asset, + ), + ::tokenize( + &self._to, + ), + as alloy_sol_types::SolType>::tokenize(&self._amount), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + withdrawERC20_0Return::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `withdrawERC20(address,address)` and selector `0x9456fbcc`. +```solidity +function withdrawERC20(address _asset, address _to) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct withdrawERC20_1Call { + #[allow(missing_docs)] + pub _asset: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _to: alloy::sol_types::private::Address, + } + ///Container type for the return parameters of the [`withdrawERC20(address,address)`](withdrawERC20_1Call) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct withdrawERC20_1Return {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: withdrawERC20_1Call) -> Self { + (value._asset, value._to) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for withdrawERC20_1Call { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _asset: tuple.0, + _to: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: withdrawERC20_1Return) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for withdrawERC20_1Return { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl withdrawERC20_1Return { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for withdrawERC20_1Call { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = withdrawERC20_1Return; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "withdrawERC20(address,address)"; + const SELECTOR: [u8; 4] = [148u8, 86u8, 251u8, 204u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._asset, + ), + ::tokenize( + &self._to, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + withdrawERC20_1Return::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `withdrawERC721(address,address,uint256)` and selector `0x4025feb2`. +```solidity +function withdrawERC721(address _asset, address _to, uint256 _id) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct withdrawERC721Call { + #[allow(missing_docs)] + pub _asset: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _id: alloy::sol_types::private::primitives::aliases::U256, + } + ///Container type for the return parameters of the [`withdrawERC721(address,address,uint256)`](withdrawERC721Call) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct withdrawERC721Return {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: withdrawERC721Call) -> Self { + (value._asset, value._to, value._id) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for withdrawERC721Call { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _asset: tuple.0, + _to: tuple.1, + _id: tuple.2, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: withdrawERC721Return) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for withdrawERC721Return { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl withdrawERC721Return { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for withdrawERC721Call { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = withdrawERC721Return; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "withdrawERC721(address,address,uint256)"; + const SELECTOR: [u8; 4] = [64u8, 37u8, 254u8, 178u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._asset, + ), + ::tokenize( + &self._to, + ), + as alloy_sol_types::SolType>::tokenize(&self._id), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + withdrawERC721Return::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `withdrawETH(address,uint256)` and selector `0x4782f779`. +```solidity +function withdrawETH(address _to, uint256 _amount) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct withdrawETH_0Call { + #[allow(missing_docs)] + pub _to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _amount: alloy::sol_types::private::primitives::aliases::U256, + } + ///Container type for the return parameters of the [`withdrawETH(address,uint256)`](withdrawETH_0Call) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct withdrawETH_0Return {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: withdrawETH_0Call) -> Self { + (value._to, value._amount) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for withdrawETH_0Call { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _to: tuple.0, + _amount: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: withdrawETH_0Return) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for withdrawETH_0Return { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl withdrawETH_0Return { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for withdrawETH_0Call { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = withdrawETH_0Return; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "withdrawETH(address,uint256)"; + const SELECTOR: [u8; 4] = [71u8, 130u8, 247u8, 121u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._to, + ), + as alloy_sol_types::SolType>::tokenize(&self._amount), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + withdrawETH_0Return::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `withdrawETH(address)` and selector `0x690d8320`. +```solidity +function withdrawETH(address _to) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct withdrawETH_1Call { + #[allow(missing_docs)] + pub _to: alloy::sol_types::private::Address, + } + ///Container type for the return parameters of the [`withdrawETH(address)`](withdrawETH_1Call) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct withdrawETH_1Return {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: withdrawETH_1Call) -> Self { + (value._to,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for withdrawETH_1Call { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _to: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: withdrawETH_1Return) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for withdrawETH_1Return { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl withdrawETH_1Return { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for withdrawETH_1Call { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = withdrawETH_1Return; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "withdrawETH(address)"; + const SELECTOR: [u8; 4] = [105u8, 13u8, 131u8, 32u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._to, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + withdrawETH_1Return::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + ///Container for all the [`AssetReceiver`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum AssetReceiverCalls { + #[allow(missing_docs)] + CALL(CALLCall), + #[allow(missing_docs)] + DELEGATECALL(DELEGATECALLCall), + #[allow(missing_docs)] + owner(ownerCall), + #[allow(missing_docs)] + setOwner(setOwnerCall), + #[allow(missing_docs)] + withdrawERC20_0(withdrawERC20_0Call), + #[allow(missing_docs)] + withdrawERC20_1(withdrawERC20_1Call), + #[allow(missing_docs)] + withdrawERC721(withdrawERC721Call), + #[allow(missing_docs)] + withdrawETH_0(withdrawETH_0Call), + #[allow(missing_docs)] + withdrawETH_1(withdrawETH_1Call), + } + impl AssetReceiverCalls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [19u8, 175u8, 64u8, 53u8], + [64u8, 37u8, 254u8, 178u8], + [68u8, 0u8, 76u8, 193u8], + [71u8, 130u8, 247u8, 121u8], + [105u8, 13u8, 131u8, 32u8], + [110u8, 45u8, 68u8, 174u8], + [141u8, 165u8, 203u8, 91u8], + [148u8, 86u8, 251u8, 204u8], + [237u8, 238u8, 98u8, 57u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(setOwner), + ::core::stringify!(withdrawERC721), + ::core::stringify!(withdrawERC20_0), + ::core::stringify!(withdrawETH_0), + ::core::stringify!(withdrawETH_1), + ::core::stringify!(CALL), + ::core::stringify!(owner), + ::core::stringify!(withdrawERC20_1), + ::core::stringify!(DELEGATECALL), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for AssetReceiverCalls { + const NAME: &'static str = "AssetReceiverCalls"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 9usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::CALL(_) => ::SELECTOR, + Self::DELEGATECALL(_) => { + ::SELECTOR + } + Self::owner(_) => ::SELECTOR, + Self::setOwner(_) => ::SELECTOR, + Self::withdrawERC20_0(_) => { + ::SELECTOR + } + Self::withdrawERC20_1(_) => { + ::SELECTOR + } + Self::withdrawERC721(_) => { + ::SELECTOR + } + Self::withdrawETH_0(_) => { + ::SELECTOR + } + Self::withdrawETH_1(_) => { + ::SELECTOR + } + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn setOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(AssetReceiverCalls::setOwner) + } + setOwner + }, + { + fn withdrawERC721( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(AssetReceiverCalls::withdrawERC721) + } + withdrawERC721 + }, + { + fn withdrawERC20_0( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(AssetReceiverCalls::withdrawERC20_0) + } + withdrawERC20_0 + }, + { + fn withdrawETH_0( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(AssetReceiverCalls::withdrawETH_0) + } + withdrawETH_0 + }, + { + fn withdrawETH_1( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(AssetReceiverCalls::withdrawETH_1) + } + withdrawETH_1 + }, + { + fn CALL(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(AssetReceiverCalls::CALL) + } + CALL + }, + { + fn owner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(AssetReceiverCalls::owner) + } + owner + }, + { + fn withdrawERC20_1( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(AssetReceiverCalls::withdrawERC20_1) + } + withdrawERC20_1 + }, + { + fn DELEGATECALL( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(AssetReceiverCalls::DELEGATECALL) + } + DELEGATECALL + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn setOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AssetReceiverCalls::setOwner) + } + setOwner + }, + { + fn withdrawERC721( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AssetReceiverCalls::withdrawERC721) + } + withdrawERC721 + }, + { + fn withdrawERC20_0( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AssetReceiverCalls::withdrawERC20_0) + } + withdrawERC20_0 + }, + { + fn withdrawETH_0( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AssetReceiverCalls::withdrawETH_0) + } + withdrawETH_0 + }, + { + fn withdrawETH_1( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AssetReceiverCalls::withdrawETH_1) + } + withdrawETH_1 + }, + { + fn CALL(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AssetReceiverCalls::CALL) + } + CALL + }, + { + fn owner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AssetReceiverCalls::owner) + } + owner + }, + { + fn withdrawERC20_1( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AssetReceiverCalls::withdrawERC20_1) + } + withdrawERC20_1 + }, + { + fn DELEGATECALL( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(AssetReceiverCalls::DELEGATECALL) + } + DELEGATECALL + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::CALL(inner) => { + ::abi_encoded_size(inner) + } + Self::DELEGATECALL(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::owner(inner) => { + ::abi_encoded_size(inner) + } + Self::setOwner(inner) => { + ::abi_encoded_size(inner) + } + Self::withdrawERC20_0(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::withdrawERC20_1(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::withdrawERC721(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::withdrawETH_0(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::withdrawETH_1(inner) => { + ::abi_encoded_size( + inner, + ) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::CALL(inner) => { + ::abi_encode_raw(inner, out) + } + Self::DELEGATECALL(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::owner(inner) => { + ::abi_encode_raw(inner, out) + } + Self::setOwner(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::withdrawERC20_0(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::withdrawERC20_1(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::withdrawERC721(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::withdrawETH_0(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::withdrawETH_1(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + } + } + } + ///Container for all the [`AssetReceiver`](self) events. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum AssetReceiverEvents { + #[allow(missing_docs)] + OwnerUpdated(OwnerUpdated), + #[allow(missing_docs)] + ReceivedETH(ReceivedETH), + #[allow(missing_docs)] + WithdrewERC20(WithdrewERC20), + #[allow(missing_docs)] + WithdrewERC721(WithdrewERC721), + #[allow(missing_docs)] + WithdrewETH(WithdrewETH), + } + impl AssetReceiverEvents { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 32usize]] = &[ + [ + 31u8, 18u8, 170u8, 139u8, 109u8, 73u8, 45u8, 217u8, 185u8, 142u8, 43u8, + 0u8, 176u8, 178u8, 8u8, 48u8, 194u8, 167u8, 222u8, 214u8, 90u8, 250u8, + 193u8, 59u8, 96u8, 209u8, 105u8, 160u8, 52u8, 174u8, 144u8, 188u8, + ], + [ + 48u8, 180u8, 120u8, 165u8, 225u8, 150u8, 229u8, 88u8, 134u8, 34u8, 138u8, + 168u8, 123u8, 167u8, 74u8, 125u8, 254u8, 186u8, 101u8, 94u8, 10u8, 77u8, + 123u8, 162u8, 117u8, 234u8, 191u8, 194u8, 42u8, 171u8, 183u8, 168u8, + ], + [ + 65u8, 3u8, 37u8, 126u8, 170u8, 201u8, 131u8, 202u8, 121u8, 167u8, 13u8, + 40u8, 249u8, 13u8, 252u8, 79u8, 161u8, 107u8, 97u8, 155u8, 176u8, 193u8, + 126u8, 231u8, 202u8, 176u8, 212u8, 3u8, 76u8, 39u8, 150u8, 36u8, + ], + [ + 107u8, 0u8, 241u8, 199u8, 136u8, 63u8, 5u8, 59u8, 168u8, 62u8, 144u8, + 127u8, 209u8, 150u8, 91u8, 34u8, 255u8, 254u8, 60u8, 65u8, 17u8, 56u8, + 62u8, 114u8, 95u8, 4u8, 99u8, 138u8, 86u8, 108u8, 219u8, 250u8, + ], + [ + 130u8, 146u8, 252u8, 225u8, 143u8, 166u8, 158u8, 223u8, 77u8, 183u8, + 185u8, 78u8, 162u8, 229u8, 130u8, 65u8, 223u8, 10u8, 229u8, 127u8, 151u8, + 224u8, 166u8, 201u8, 178u8, 144u8, 103u8, 2u8, 139u8, 249u8, 45u8, 118u8, + ], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(WithdrewETH), + ::core::stringify!(WithdrewERC721), + ::core::stringify!(ReceivedETH), + ::core::stringify!(WithdrewERC20), + ::core::stringify!(OwnerUpdated), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolEventInterface for AssetReceiverEvents { + const NAME: &'static str = "AssetReceiverEvents"; + const COUNT: usize = 5usize; + fn decode_raw_log( + topics: &[alloy_sol_types::Word], + data: &[u8], + ) -> alloy_sol_types::Result { + match topics.first().copied() { + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::OwnerUpdated) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::ReceivedETH) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::WithdrewERC20) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::WithdrewERC721) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::WithdrewETH) + } + _ => { + alloy_sol_types::private::Err(alloy_sol_types::Error::InvalidLog { + name: ::NAME, + log: alloy_sol_types::private::Box::new( + alloy_sol_types::private::LogData::new_unchecked( + topics.to_vec(), + data.to_vec().into(), + ), + ), + }) + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for AssetReceiverEvents { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + match self { + Self::OwnerUpdated(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::ReceivedETH(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::WithdrewERC20(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::WithdrewERC721(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::WithdrewETH(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + } + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + match self { + Self::OwnerUpdated(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::ReceivedETH(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::WithdrewERC20(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::WithdrewERC721(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::WithdrewETH(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`AssetReceiver`](self) contract instance. + +See the [wrapper's documentation](`AssetReceiverInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> AssetReceiverInstance { + AssetReceiverInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + _owner: alloy::sol_types::private::Address, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + AssetReceiverInstance::::deploy(__provider, _owner) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + _owner: alloy::sol_types::private::Address, + ) -> alloy_contract::RawCallBuilder { + AssetReceiverInstance::::deploy_builder(__provider, _owner) + } + /**A [`AssetReceiver`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`AssetReceiver`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct AssetReceiverInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for AssetReceiverInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("AssetReceiverInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > AssetReceiverInstance { + /**Creates a new wrapper around an on-chain [`AssetReceiver`](self) contract instance. + +See the [wrapper's documentation](`AssetReceiverInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + _owner: alloy::sol_types::private::Address, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider, _owner); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder( + __provider: P, + _owner: alloy::sol_types::private::Address, + ) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + [ + &BYTECODE[..], + &alloy_sol_types::SolConstructor::abi_encode( + &constructorCall { _owner }, + )[..], + ] + .concat() + .into(), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl AssetReceiverInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> AssetReceiverInstance { + AssetReceiverInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > AssetReceiverInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`CALL`] function. + pub fn CALL( + &self, + _target: alloy::sol_types::private::Address, + _data: alloy::sol_types::private::Bytes, + _value: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, CALLCall, N> { + self.call_builder(&CALLCall { _target, _data, _value }) + } + ///Creates a new call builder for the [`DELEGATECALL`] function. + pub fn DELEGATECALL( + &self, + _target: alloy::sol_types::private::Address, + _data: alloy::sol_types::private::Bytes, + ) -> alloy_contract::SolCallBuilder<&P, DELEGATECALLCall, N> { + self.call_builder(&DELEGATECALLCall { _target, _data }) + } + ///Creates a new call builder for the [`owner`] function. + pub fn owner(&self) -> alloy_contract::SolCallBuilder<&P, ownerCall, N> { + self.call_builder(&ownerCall) + } + ///Creates a new call builder for the [`setOwner`] function. + pub fn setOwner( + &self, + newOwner: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, setOwnerCall, N> { + self.call_builder(&setOwnerCall { newOwner }) + } + ///Creates a new call builder for the [`withdrawERC20_0`] function. + pub fn withdrawERC20_0( + &self, + _asset: alloy::sol_types::private::Address, + _to: alloy::sol_types::private::Address, + _amount: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, withdrawERC20_0Call, N> { + self.call_builder( + &withdrawERC20_0Call { + _asset, + _to, + _amount, + }, + ) + } + ///Creates a new call builder for the [`withdrawERC20_1`] function. + pub fn withdrawERC20_1( + &self, + _asset: alloy::sol_types::private::Address, + _to: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, withdrawERC20_1Call, N> { + self.call_builder(&withdrawERC20_1Call { _asset, _to }) + } + ///Creates a new call builder for the [`withdrawERC721`] function. + pub fn withdrawERC721( + &self, + _asset: alloy::sol_types::private::Address, + _to: alloy::sol_types::private::Address, + _id: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, withdrawERC721Call, N> { + self.call_builder( + &withdrawERC721Call { + _asset, + _to, + _id, + }, + ) + } + ///Creates a new call builder for the [`withdrawETH_0`] function. + pub fn withdrawETH_0( + &self, + _to: alloy::sol_types::private::Address, + _amount: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, withdrawETH_0Call, N> { + self.call_builder(&withdrawETH_0Call { _to, _amount }) + } + ///Creates a new call builder for the [`withdrawETH_1`] function. + pub fn withdrawETH_1( + &self, + _to: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, withdrawETH_1Call, N> { + self.call_builder(&withdrawETH_1Call { _to }) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > AssetReceiverInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + ///Creates a new event filter for the [`OwnerUpdated`] event. + pub fn OwnerUpdated_filter(&self) -> alloy_contract::Event<&P, OwnerUpdated, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`ReceivedETH`] event. + pub fn ReceivedETH_filter(&self) -> alloy_contract::Event<&P, ReceivedETH, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`WithdrewERC20`] event. + pub fn WithdrewERC20_filter( + &self, + ) -> alloy_contract::Event<&P, WithdrewERC20, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`WithdrewERC721`] event. + pub fn WithdrewERC721_filter( + &self, + ) -> alloy_contract::Event<&P, WithdrewERC721, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`WithdrewETH`] event. + pub fn WithdrewETH_filter(&self) -> alloy_contract::Event<&P, WithdrewETH, N> { + self.event_filter::() + } + } +} diff --git a/bindings/rust/src/balance_tracker.rs b/bindings/rust/src/balance_tracker.rs new file mode 100644 index 000000000..705d62a3a --- /dev/null +++ b/bindings/rust/src/balance_tracker.rs @@ -0,0 +1,2489 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface BalanceTracker { + event Initialized(uint8 version); + event ProcessedFunds(address indexed systemAddress, bool indexed success, uint256 balanceNeeded, uint256 balanceSent); + event ReceivedFunds(address indexed sender, uint256 amount); + event SentProfit(address indexed profitWallet, bool indexed success, uint256 balanceSent); + + constructor(address payable profitWallet); + + receive() external payable; + + function MAX_SYSTEM_ADDRESS_COUNT() external view returns (uint256); + function PROFIT_WALLET() external view returns (address payable); + function initialize(address payable[] memory systemAddresses_, uint256[] memory targetBalances_) external; + function processFees() external; + function systemAddresses(uint256) external view returns (address payable); + function targetBalances(uint256) external view returns (uint256); +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "constructor", + "inputs": [ + { + "name": "profitWallet", + "type": "address", + "internalType": "address payable" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "receive", + "stateMutability": "payable" + }, + { + "type": "function", + "name": "MAX_SYSTEM_ADDRESS_COUNT", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "PROFIT_WALLET", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address payable" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "initialize", + "inputs": [ + { + "name": "systemAddresses_", + "type": "address[]", + "internalType": "address payable[]" + }, + { + "name": "targetBalances_", + "type": "uint256[]", + "internalType": "uint256[]" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "processFees", + "inputs": [], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "systemAddresses", + "inputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address payable" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "targetBalances", + "inputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "event", + "name": "Initialized", + "inputs": [ + { + "name": "version", + "type": "uint8", + "indexed": false, + "internalType": "uint8" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "ProcessedFunds", + "inputs": [ + { + "name": "systemAddress", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "success", + "type": "bool", + "indexed": true, + "internalType": "bool" + }, + { + "name": "balanceNeeded", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + }, + { + "name": "balanceSent", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "ReceivedFunds", + "inputs": [ + { + "name": "sender", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "SentProfit", + "inputs": [ + { + "name": "profitWallet", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "success", + "type": "bool", + "indexed": true, + "internalType": "bool" + }, + { + "name": "balanceSent", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod BalanceTracker { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x60a060405234801561001057600080fd5b50604051610fa8380380610fa883398101604081905261002f9161017c565b6001600160a01b0381166100a55760405162461bcd60e51b815260206004820152603260248201527f42616c616e6365547261636b65723a2050524f4649545f57414c4c45542063616044820152716e6e6f74206265206164647265737328302960701b60648201526084015b60405180910390fd5b6001600160a01b0381166080526100ba6100c0565b506101ac565b600054610100900460ff16156101285760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840161009c565b60005460ff908116101561017a576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b60006020828403121561018e57600080fd5b81516001600160a01b03811681146101a557600080fd5b9392505050565b608051610dd36101d56000396000818161016b015281816107ad01526107da0152610dd36000f3fe6080604052600436106100695760003560e01c8063927a1a7711610043578063927a1a7714610114578063981949e814610159578063ba69ebed1461018d57600080fd5b80630a565720146100aa5780636d1eb022146100dd5780637fbbe46f146100f257600080fd5b366100a55760405134815233907f5741979df5f3e491501da74d3b0a83dd2496ab1f34929865b3e190a8ad75859a9060200160405180910390a2005b600080fd5b3480156100b657600080fd5b506100ca6100c5366004610b57565b6101a2565b6040519081526020015b60405180910390f35b3480156100e957600080fd5b506100ca601481565b3480156100fe57600080fd5b5061011261010d366004610c7d565b6101c3565b005b34801561012057600080fd5b5061013461012f366004610b57565b61062e565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100d4565b34801561016557600080fd5b506101347f000000000000000000000000000000000000000000000000000000000000000081565b34801561019957600080fd5b50610112610665565b603481815481106101b257600080fd5b600091825260209091200154905081565b600054600290610100900460ff161580156101e5575060005460ff8083169116105b61025c5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084015b60405180910390fd5b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001660ff8316176101001790558251806103025760405162461bcd60e51b815260206004820152603c60248201527f42616c616e6365547261636b65723a2073797374656d4164647265737365732060448201527f63616e6e6f7420686176652061206c656e677468206f66207a65726f000000006064820152608401610253565b60148111156103a05760405162461bcd60e51b8152602060048201526044602482018190527f42616c616e6365547261636b65723a2073797374656d41646472657373657320908201527f63616e6e6f7420686176652061206c656e67746820677265617465722074686160648201527f6e20323000000000000000000000000000000000000000000000000000000000608482015260a401610253565b8251811461043c5760405162461bcd60e51b815260206004820152604760248201527f42616c616e6365547261636b65723a2073797374656d4164647265737365732060448201527f616e642074617267657442616c616e636573206c656e677468206d757374206260648201527f6520657175616c00000000000000000000000000000000000000000000000000608482015260a401610253565b60005b8181101561059957600073ffffffffffffffffffffffffffffffffffffffff1685828151811061047157610471610d59565b602002602001015173ffffffffffffffffffffffffffffffffffffffff16036105025760405162461bcd60e51b815260206004820152603960248201527f42616c616e6365547261636b65723a2073797374656d4164647265737365732060448201527f63616e6e6f7420636f6e7461696e2061646472657373283029000000000000006064820152608401610253565b600084828151811061051657610516610d59565b6020026020010151116105915760405162461bcd60e51b815260206004820152603660248201527f42616c616e6365547261636b65723a2074617267657442616c616e636573206360448201527f616e6e6f7420636f6e7461696e203020746172676574000000000000000000006064820152608401610253565b60010161043f565b5083516105ad906033906020870190610a7d565b5082516105c1906034906020860190610b07565b506105ca610851565b50600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050565b6033818154811061063e57600080fd5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16905081565b6002600154036106b75760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610253565b6002600155603354806107325760405162461bcd60e51b815260206004820152603c60248201527f42616c616e6365547261636b65723a2073797374656d4164647265737365732060448201527f63616e6e6f7420686176652061206c656e677468206f66207a65726f000000006064820152608401610253565b60005b818110156107a45761079c6033828154811061075357610753610d59565b6000918252602090912001546034805473ffffffffffffffffffffffffffffffffffffffff909216918490811061078c5761078c610d59565b90600052602060002001546108d8565b600101610735565b504760006107d37f00000000000000000000000000000000000000000000000000000000000000005a846109e6565b90508015157f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff167fbadd9d7563efca77438dc132e885aa156837e0b784469f68fbd810cbfb6cda778460405161084091815260200190565b60405180910390a350506001805550565b600054610100900460ff166108ce5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610253565b6108d66109fa565b565b73ffffffffffffffffffffffffffffffffffffffff82163181811061095057604080516000808252602082018190529173ffffffffffffffffffffffffffffffffffffffff8616917f74273f98770936abfe9aad12868d2dbe403347b74b7f3a539d0359c123d5d31c910160405180910390a3505050565b600061095c8284610d88565b905047600081831161096e5782610970565b815b9050600061097f875a846109e6565b90508015158773ffffffffffffffffffffffffffffffffffffffff167f74273f98770936abfe9aad12868d2dbe403347b74b7f3a539d0359c123d5d31c86856040516109d5929190918252602082015260400190565b60405180910390a350505050505050565b6000806000806000858888f1949350505050565b600054610100900460ff16610a775760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610253565b60018055565b828054828255906000526020600020908101928215610af7579160200282015b82811115610af757825182547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff909116178255602090920191600190910190610a9d565b50610b03929150610b42565b5090565b828054828255906000526020600020908101928215610af7579160200282015b82811115610af7578251825591602001919060010190610b27565b5b80821115610b035760008155600101610b43565b600060208284031215610b6957600080fd5b5035919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715610be657610be6610b70565b604052919050565b600067ffffffffffffffff821115610c0857610c08610b70565b5060051b60200190565b600082601f830112610c2357600080fd5b81356020610c38610c3383610bee565b610b9f565b82815260059290921b84018101918181019086841115610c5757600080fd5b8286015b84811015610c725780358352918301918301610c5b565b509695505050505050565b60008060408385031215610c9057600080fd5b823567ffffffffffffffff80821115610ca857600080fd5b818501915085601f830112610cbc57600080fd5b81356020610ccc610c3383610bee565b82815260059290921b84018101918181019089841115610ceb57600080fd5b948201945b83861015610d2c57853573ffffffffffffffffffffffffffffffffffffffff81168114610d1d5760008081fd5b82529482019490820190610cf0565b96505086013592505080821115610d4257600080fd5b50610d4f85828601610c12565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600082821015610dc1577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b50039056fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\xA0`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`@Qa\x0F\xA88\x03\x80a\x0F\xA8\x839\x81\x01`@\x81\x90Ra\0/\x91a\x01|V[`\x01`\x01`\xA0\x1B\x03\x81\x16a\0\xA5W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`2`$\x82\x01R\x7FBalanceTracker: PROFIT_WALLET ca`D\x82\x01Rqnnot be address(0)`p\x1B`d\x82\x01R`\x84\x01[`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xA0\x1B\x03\x81\x16`\x80Ra\0\xBAa\0\xC0V[Pa\x01\xACV[`\0Ta\x01\0\x90\x04`\xFF\x16\x15a\x01(W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`'`$\x82\x01R\x7FInitializable: contract is initi`D\x82\x01Rfalizing`\xC8\x1B`d\x82\x01R`\x84\x01a\0\x9CV[`\0T`\xFF\x90\x81\x16\x10\x15a\x01zW`\0\x80T`\xFF\x19\x16`\xFF\x90\x81\x17\x90\x91U`@Q\x90\x81R\x7F\x7F&\xB8?\xF9n\x1F+jh/\x138R\xF6y\x8A\t\xC4e\xDA\x95\x92\x14`\xCE\xFB8G@$\x98\x90` \x01`@Q\x80\x91\x03\x90\xA1[V[`\0` \x82\x84\x03\x12\x15a\x01\x8EW`\0\x80\xFD[\x81Q`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a\x01\xA5W`\0\x80\xFD[\x93\x92PPPV[`\x80Qa\r\xD3a\x01\xD5`\09`\0\x81\x81a\x01k\x01R\x81\x81a\x07\xAD\x01Ra\x07\xDA\x01Ra\r\xD3`\0\xF3\xFE`\x80`@R`\x046\x10a\0iW`\x005`\xE0\x1C\x80c\x92z\x1Aw\x11a\0CW\x80c\x92z\x1Aw\x14a\x01\x14W\x80c\x98\x19I\xE8\x14a\x01YW\x80c\xBAi\xEB\xED\x14a\x01\x8DW`\0\x80\xFD[\x80c\nVW \x14a\0\xAAW\x80cm\x1E\xB0\"\x14a\0\xDDW\x80c\x7F\xBB\xE4o\x14a\0\xF2W`\0\x80\xFD[6a\0\xA5W`@Q4\x81R3\x90\x7FWA\x97\x9D\xF5\xF3\xE4\x91P\x1D\xA7M;\n\x83\xDD$\x96\xAB\x1F4\x92\x98e\xB3\xE1\x90\xA8\xADu\x85\x9A\x90` \x01`@Q\x80\x91\x03\x90\xA2\0[`\0\x80\xFD[4\x80\x15a\0\xB6W`\0\x80\xFD[Pa\0\xCAa\0\xC56`\x04a\x0BWV[a\x01\xA2V[`@Q\x90\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[4\x80\x15a\0\xE9W`\0\x80\xFD[Pa\0\xCA`\x14\x81V[4\x80\x15a\0\xFEW`\0\x80\xFD[Pa\x01\x12a\x01\r6`\x04a\x0C}V[a\x01\xC3V[\0[4\x80\x15a\x01 W`\0\x80\xFD[Pa\x014a\x01/6`\x04a\x0BWV[a\x06.V[`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01a\0\xD4V[4\x80\x15a\x01eW`\0\x80\xFD[Pa\x014\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[4\x80\x15a\x01\x99W`\0\x80\xFD[Pa\x01\x12a\x06eV[`4\x81\x81T\x81\x10a\x01\xB2W`\0\x80\xFD[`\0\x91\x82R` \x90\x91 \x01T\x90P\x81V[`\0T`\x02\x90a\x01\0\x90\x04`\xFF\x16\x15\x80\x15a\x01\xE5WP`\0T`\xFF\x80\x83\x16\x91\x16\x10[a\x02\\W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`.`$\x82\x01R\x7FInitializable: contract is alrea`D\x82\x01R\x7Fdy initialized\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01[`@Q\x80\x91\x03\x90\xFD[`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\x16`\xFF\x83\x16\x17a\x01\0\x17\x90U\x82Q\x80a\x03\x02W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`<`$\x82\x01R\x7FBalanceTracker: systemAddresses `D\x82\x01R\x7Fcannot have a length of zero\0\0\0\0`d\x82\x01R`\x84\x01a\x02SV[`\x14\x81\x11\x15a\x03\xA0W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`D`$\x82\x01\x81\x90R\x7FBalanceTracker: systemAddresses \x90\x82\x01R\x7Fcannot have a length greater tha`d\x82\x01R\x7Fn 20\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`\x84\x82\x01R`\xA4\x01a\x02SV[\x82Q\x81\x14a\x04W`\0\x80\xFD[`\0\x91\x82R` \x90\x91 \x01Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90P\x81V[`\x02`\x01T\x03a\x06\xB7W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1F`$\x82\x01R\x7FReentrancyGuard: reentrant call\0`D\x82\x01R`d\x01a\x02SV[`\x02`\x01U`3T\x80a\x072W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`<`$\x82\x01R\x7FBalanceTracker: systemAddresses `D\x82\x01R\x7Fcannot have a length of zero\0\0\0\0`d\x82\x01R`\x84\x01a\x02SV[`\0[\x81\x81\x10\x15a\x07\xA4Wa\x07\x9C`3\x82\x81T\x81\x10a\x07SWa\x07Sa\rYV[`\0\x91\x82R` \x90\x91 \x01T`4\x80Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x92\x16\x91\x84\x90\x81\x10a\x07\x8CWa\x07\x8Ca\rYV[\x90`\0R` `\0 \x01Ta\x08\xD8V[`\x01\x01a\x075V[PG`\0a\x07\xD3\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Z\x84a\t\xE6V[\x90P\x80\x15\x15\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xBA\xDD\x9Duc\xEF\xCAwC\x8D\xC12\xE8\x85\xAA\x15h7\xE0\xB7\x84F\x9Fh\xFB\xD8\x10\xCB\xFBl\xDAw\x84`@Qa\x08@\x91\x81R` \x01\x90V[`@Q\x80\x91\x03\x90\xA3PP`\x01\x80UPV[`\0Ta\x01\0\x90\x04`\xFF\x16a\x08\xCEW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FInitializable: contract is not i`D\x82\x01R\x7Fnitializing\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x02SV[a\x08\xD6a\t\xFAV[V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x161\x81\x81\x10a\tPW`@\x80Q`\0\x80\x82R` \x82\x01\x81\x90R\x91s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x86\x16\x91\x7Ft'?\x98w\t6\xAB\xFE\x9A\xAD\x12\x86\x8D-\xBE@3G\xB7K\x7F:S\x9D\x03Y\xC1#\xD5\xD3\x1C\x91\x01`@Q\x80\x91\x03\x90\xA3PPPV[`\0a\t\\\x82\x84a\r\x88V[\x90PG`\0\x81\x83\x11a\tnW\x82a\tpV[\x81[\x90P`\0a\t\x7F\x87Z\x84a\t\xE6V[\x90P\x80\x15\x15\x87s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7Ft'?\x98w\t6\xAB\xFE\x9A\xAD\x12\x86\x8D-\xBE@3G\xB7K\x7F:S\x9D\x03Y\xC1#\xD5\xD3\x1C\x86\x85`@Qa\t\xD5\x92\x91\x90\x91\x82R` \x82\x01R`@\x01\x90V[`@Q\x80\x91\x03\x90\xA3PPPPPPPV[`\0\x80`\0\x80`\0\x85\x88\x88\xF1\x94\x93PPPPV[`\0Ta\x01\0\x90\x04`\xFF\x16a\nwW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FInitializable: contract is not i`D\x82\x01R\x7Fnitializing\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x02SV[`\x01\x80UV[\x82\x80T\x82\x82U\x90`\0R` `\0 \x90\x81\x01\x92\x82\x15a\n\xF7W\x91` \x02\x82\x01[\x82\x81\x11\x15a\n\xF7W\x82Q\x82T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x17\x82U` \x90\x92\x01\x91`\x01\x90\x91\x01\x90a\n\x9DV[Pa\x0B\x03\x92\x91Pa\x0BBV[P\x90V[\x82\x80T\x82\x82U\x90`\0R` `\0 \x90\x81\x01\x92\x82\x15a\n\xF7W\x91` \x02\x82\x01[\x82\x81\x11\x15a\n\xF7W\x82Q\x82U\x91` \x01\x91\x90`\x01\x01\x90a\x0B'V[[\x80\x82\x11\x15a\x0B\x03W`\0\x81U`\x01\x01a\x0BCV[`\0` \x82\x84\x03\x12\x15a\x0BiW`\0\x80\xFD[P5\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[`@Q`\x1F\x82\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a\x0B\xE6Wa\x0B\xE6a\x0BpV[`@R\x91\x90PV[`\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x15a\x0C\x08Wa\x0C\x08a\x0BpV[P`\x05\x1B` \x01\x90V[`\0\x82`\x1F\x83\x01\x12a\x0C#W`\0\x80\xFD[\x815` a\x0C8a\x0C3\x83a\x0B\xEEV[a\x0B\x9FV[\x82\x81R`\x05\x92\x90\x92\x1B\x84\x01\x81\x01\x91\x81\x81\x01\x90\x86\x84\x11\x15a\x0CWW`\0\x80\xFD[\x82\x86\x01[\x84\x81\x10\x15a\x0CrW\x805\x83R\x91\x83\x01\x91\x83\x01a\x0C[V[P\x96\x95PPPPPPV[`\0\x80`@\x83\x85\x03\x12\x15a\x0C\x90W`\0\x80\xFD[\x825g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x0C\xA8W`\0\x80\xFD[\x81\x85\x01\x91P\x85`\x1F\x83\x01\x12a\x0C\xBCW`\0\x80\xFD[\x815` a\x0C\xCCa\x0C3\x83a\x0B\xEEV[\x82\x81R`\x05\x92\x90\x92\x1B\x84\x01\x81\x01\x91\x81\x81\x01\x90\x89\x84\x11\x15a\x0C\xEBW`\0\x80\xFD[\x94\x82\x01\x94[\x83\x86\x10\x15a\r,W\x855s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\r\x1DW`\0\x80\x81\xFD[\x82R\x94\x82\x01\x94\x90\x82\x01\x90a\x0C\xF0V[\x96PP\x86\x015\x92PP\x80\x82\x11\x15a\rBW`\0\x80\xFD[Pa\rO\x85\x82\x86\x01a\x0C\x12V[\x91PP\x92P\x92\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`2`\x04R`$`\0\xFD[`\0\x82\x82\x10\x15a\r\xC1W\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`\x11`\x04R`$`\0\xFD[P\x03\x90V\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x6080604052600436106100695760003560e01c8063927a1a7711610043578063927a1a7714610114578063981949e814610159578063ba69ebed1461018d57600080fd5b80630a565720146100aa5780636d1eb022146100dd5780637fbbe46f146100f257600080fd5b366100a55760405134815233907f5741979df5f3e491501da74d3b0a83dd2496ab1f34929865b3e190a8ad75859a9060200160405180910390a2005b600080fd5b3480156100b657600080fd5b506100ca6100c5366004610b57565b6101a2565b6040519081526020015b60405180910390f35b3480156100e957600080fd5b506100ca601481565b3480156100fe57600080fd5b5061011261010d366004610c7d565b6101c3565b005b34801561012057600080fd5b5061013461012f366004610b57565b61062e565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100d4565b34801561016557600080fd5b506101347f000000000000000000000000000000000000000000000000000000000000000081565b34801561019957600080fd5b50610112610665565b603481815481106101b257600080fd5b600091825260209091200154905081565b600054600290610100900460ff161580156101e5575060005460ff8083169116105b61025c5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084015b60405180910390fd5b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001660ff8316176101001790558251806103025760405162461bcd60e51b815260206004820152603c60248201527f42616c616e6365547261636b65723a2073797374656d4164647265737365732060448201527f63616e6e6f7420686176652061206c656e677468206f66207a65726f000000006064820152608401610253565b60148111156103a05760405162461bcd60e51b8152602060048201526044602482018190527f42616c616e6365547261636b65723a2073797374656d41646472657373657320908201527f63616e6e6f7420686176652061206c656e67746820677265617465722074686160648201527f6e20323000000000000000000000000000000000000000000000000000000000608482015260a401610253565b8251811461043c5760405162461bcd60e51b815260206004820152604760248201527f42616c616e6365547261636b65723a2073797374656d4164647265737365732060448201527f616e642074617267657442616c616e636573206c656e677468206d757374206260648201527f6520657175616c00000000000000000000000000000000000000000000000000608482015260a401610253565b60005b8181101561059957600073ffffffffffffffffffffffffffffffffffffffff1685828151811061047157610471610d59565b602002602001015173ffffffffffffffffffffffffffffffffffffffff16036105025760405162461bcd60e51b815260206004820152603960248201527f42616c616e6365547261636b65723a2073797374656d4164647265737365732060448201527f63616e6e6f7420636f6e7461696e2061646472657373283029000000000000006064820152608401610253565b600084828151811061051657610516610d59565b6020026020010151116105915760405162461bcd60e51b815260206004820152603660248201527f42616c616e6365547261636b65723a2074617267657442616c616e636573206360448201527f616e6e6f7420636f6e7461696e203020746172676574000000000000000000006064820152608401610253565b60010161043f565b5083516105ad906033906020870190610a7d565b5082516105c1906034906020860190610b07565b506105ca610851565b50600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050565b6033818154811061063e57600080fd5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16905081565b6002600154036106b75760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610253565b6002600155603354806107325760405162461bcd60e51b815260206004820152603c60248201527f42616c616e6365547261636b65723a2073797374656d4164647265737365732060448201527f63616e6e6f7420686176652061206c656e677468206f66207a65726f000000006064820152608401610253565b60005b818110156107a45761079c6033828154811061075357610753610d59565b6000918252602090912001546034805473ffffffffffffffffffffffffffffffffffffffff909216918490811061078c5761078c610d59565b90600052602060002001546108d8565b600101610735565b504760006107d37f00000000000000000000000000000000000000000000000000000000000000005a846109e6565b90508015157f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff167fbadd9d7563efca77438dc132e885aa156837e0b784469f68fbd810cbfb6cda778460405161084091815260200190565b60405180910390a350506001805550565b600054610100900460ff166108ce5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610253565b6108d66109fa565b565b73ffffffffffffffffffffffffffffffffffffffff82163181811061095057604080516000808252602082018190529173ffffffffffffffffffffffffffffffffffffffff8616917f74273f98770936abfe9aad12868d2dbe403347b74b7f3a539d0359c123d5d31c910160405180910390a3505050565b600061095c8284610d88565b905047600081831161096e5782610970565b815b9050600061097f875a846109e6565b90508015158773ffffffffffffffffffffffffffffffffffffffff167f74273f98770936abfe9aad12868d2dbe403347b74b7f3a539d0359c123d5d31c86856040516109d5929190918252602082015260400190565b60405180910390a350505050505050565b6000806000806000858888f1949350505050565b600054610100900460ff16610a775760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610253565b60018055565b828054828255906000526020600020908101928215610af7579160200282015b82811115610af757825182547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff909116178255602090920191600190910190610a9d565b50610b03929150610b42565b5090565b828054828255906000526020600020908101928215610af7579160200282015b82811115610af7578251825591602001919060010190610b27565b5b80821115610b035760008155600101610b43565b600060208284031215610b6957600080fd5b5035919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715610be657610be6610b70565b604052919050565b600067ffffffffffffffff821115610c0857610c08610b70565b5060051b60200190565b600082601f830112610c2357600080fd5b81356020610c38610c3383610bee565b610b9f565b82815260059290921b84018101918181019086841115610c5757600080fd5b8286015b84811015610c725780358352918301918301610c5b565b509695505050505050565b60008060408385031215610c9057600080fd5b823567ffffffffffffffff80821115610ca857600080fd5b818501915085601f830112610cbc57600080fd5b81356020610ccc610c3383610bee565b82815260059290921b84018101918181019089841115610ceb57600080fd5b948201945b83861015610d2c57853573ffffffffffffffffffffffffffffffffffffffff81168114610d1d5760008081fd5b82529482019490820190610cf0565b96505086013592505080821115610d4257600080fd5b50610d4f85828601610c12565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600082821015610dc1577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b50039056fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R`\x046\x10a\0iW`\x005`\xE0\x1C\x80c\x92z\x1Aw\x11a\0CW\x80c\x92z\x1Aw\x14a\x01\x14W\x80c\x98\x19I\xE8\x14a\x01YW\x80c\xBAi\xEB\xED\x14a\x01\x8DW`\0\x80\xFD[\x80c\nVW \x14a\0\xAAW\x80cm\x1E\xB0\"\x14a\0\xDDW\x80c\x7F\xBB\xE4o\x14a\0\xF2W`\0\x80\xFD[6a\0\xA5W`@Q4\x81R3\x90\x7FWA\x97\x9D\xF5\xF3\xE4\x91P\x1D\xA7M;\n\x83\xDD$\x96\xAB\x1F4\x92\x98e\xB3\xE1\x90\xA8\xADu\x85\x9A\x90` \x01`@Q\x80\x91\x03\x90\xA2\0[`\0\x80\xFD[4\x80\x15a\0\xB6W`\0\x80\xFD[Pa\0\xCAa\0\xC56`\x04a\x0BWV[a\x01\xA2V[`@Q\x90\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[4\x80\x15a\0\xE9W`\0\x80\xFD[Pa\0\xCA`\x14\x81V[4\x80\x15a\0\xFEW`\0\x80\xFD[Pa\x01\x12a\x01\r6`\x04a\x0C}V[a\x01\xC3V[\0[4\x80\x15a\x01 W`\0\x80\xFD[Pa\x014a\x01/6`\x04a\x0BWV[a\x06.V[`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01a\0\xD4V[4\x80\x15a\x01eW`\0\x80\xFD[Pa\x014\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[4\x80\x15a\x01\x99W`\0\x80\xFD[Pa\x01\x12a\x06eV[`4\x81\x81T\x81\x10a\x01\xB2W`\0\x80\xFD[`\0\x91\x82R` \x90\x91 \x01T\x90P\x81V[`\0T`\x02\x90a\x01\0\x90\x04`\xFF\x16\x15\x80\x15a\x01\xE5WP`\0T`\xFF\x80\x83\x16\x91\x16\x10[a\x02\\W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`.`$\x82\x01R\x7FInitializable: contract is alrea`D\x82\x01R\x7Fdy initialized\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01[`@Q\x80\x91\x03\x90\xFD[`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\x16`\xFF\x83\x16\x17a\x01\0\x17\x90U\x82Q\x80a\x03\x02W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`<`$\x82\x01R\x7FBalanceTracker: systemAddresses `D\x82\x01R\x7Fcannot have a length of zero\0\0\0\0`d\x82\x01R`\x84\x01a\x02SV[`\x14\x81\x11\x15a\x03\xA0W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`D`$\x82\x01\x81\x90R\x7FBalanceTracker: systemAddresses \x90\x82\x01R\x7Fcannot have a length greater tha`d\x82\x01R\x7Fn 20\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`\x84\x82\x01R`\xA4\x01a\x02SV[\x82Q\x81\x14a\x04W`\0\x80\xFD[`\0\x91\x82R` \x90\x91 \x01Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90P\x81V[`\x02`\x01T\x03a\x06\xB7W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1F`$\x82\x01R\x7FReentrancyGuard: reentrant call\0`D\x82\x01R`d\x01a\x02SV[`\x02`\x01U`3T\x80a\x072W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`<`$\x82\x01R\x7FBalanceTracker: systemAddresses `D\x82\x01R\x7Fcannot have a length of zero\0\0\0\0`d\x82\x01R`\x84\x01a\x02SV[`\0[\x81\x81\x10\x15a\x07\xA4Wa\x07\x9C`3\x82\x81T\x81\x10a\x07SWa\x07Sa\rYV[`\0\x91\x82R` \x90\x91 \x01T`4\x80Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x92\x16\x91\x84\x90\x81\x10a\x07\x8CWa\x07\x8Ca\rYV[\x90`\0R` `\0 \x01Ta\x08\xD8V[`\x01\x01a\x075V[PG`\0a\x07\xD3\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Z\x84a\t\xE6V[\x90P\x80\x15\x15\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xBA\xDD\x9Duc\xEF\xCAwC\x8D\xC12\xE8\x85\xAA\x15h7\xE0\xB7\x84F\x9Fh\xFB\xD8\x10\xCB\xFBl\xDAw\x84`@Qa\x08@\x91\x81R` \x01\x90V[`@Q\x80\x91\x03\x90\xA3PP`\x01\x80UPV[`\0Ta\x01\0\x90\x04`\xFF\x16a\x08\xCEW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FInitializable: contract is not i`D\x82\x01R\x7Fnitializing\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x02SV[a\x08\xD6a\t\xFAV[V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x161\x81\x81\x10a\tPW`@\x80Q`\0\x80\x82R` \x82\x01\x81\x90R\x91s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x86\x16\x91\x7Ft'?\x98w\t6\xAB\xFE\x9A\xAD\x12\x86\x8D-\xBE@3G\xB7K\x7F:S\x9D\x03Y\xC1#\xD5\xD3\x1C\x91\x01`@Q\x80\x91\x03\x90\xA3PPPV[`\0a\t\\\x82\x84a\r\x88V[\x90PG`\0\x81\x83\x11a\tnW\x82a\tpV[\x81[\x90P`\0a\t\x7F\x87Z\x84a\t\xE6V[\x90P\x80\x15\x15\x87s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7Ft'?\x98w\t6\xAB\xFE\x9A\xAD\x12\x86\x8D-\xBE@3G\xB7K\x7F:S\x9D\x03Y\xC1#\xD5\xD3\x1C\x86\x85`@Qa\t\xD5\x92\x91\x90\x91\x82R` \x82\x01R`@\x01\x90V[`@Q\x80\x91\x03\x90\xA3PPPPPPPV[`\0\x80`\0\x80`\0\x85\x88\x88\xF1\x94\x93PPPPV[`\0Ta\x01\0\x90\x04`\xFF\x16a\nwW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FInitializable: contract is not i`D\x82\x01R\x7Fnitializing\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x02SV[`\x01\x80UV[\x82\x80T\x82\x82U\x90`\0R` `\0 \x90\x81\x01\x92\x82\x15a\n\xF7W\x91` \x02\x82\x01[\x82\x81\x11\x15a\n\xF7W\x82Q\x82T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x17\x82U` \x90\x92\x01\x91`\x01\x90\x91\x01\x90a\n\x9DV[Pa\x0B\x03\x92\x91Pa\x0BBV[P\x90V[\x82\x80T\x82\x82U\x90`\0R` `\0 \x90\x81\x01\x92\x82\x15a\n\xF7W\x91` \x02\x82\x01[\x82\x81\x11\x15a\n\xF7W\x82Q\x82U\x91` \x01\x91\x90`\x01\x01\x90a\x0B'V[[\x80\x82\x11\x15a\x0B\x03W`\0\x81U`\x01\x01a\x0BCV[`\0` \x82\x84\x03\x12\x15a\x0BiW`\0\x80\xFD[P5\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[`@Q`\x1F\x82\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a\x0B\xE6Wa\x0B\xE6a\x0BpV[`@R\x91\x90PV[`\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x15a\x0C\x08Wa\x0C\x08a\x0BpV[P`\x05\x1B` \x01\x90V[`\0\x82`\x1F\x83\x01\x12a\x0C#W`\0\x80\xFD[\x815` a\x0C8a\x0C3\x83a\x0B\xEEV[a\x0B\x9FV[\x82\x81R`\x05\x92\x90\x92\x1B\x84\x01\x81\x01\x91\x81\x81\x01\x90\x86\x84\x11\x15a\x0CWW`\0\x80\xFD[\x82\x86\x01[\x84\x81\x10\x15a\x0CrW\x805\x83R\x91\x83\x01\x91\x83\x01a\x0C[V[P\x96\x95PPPPPPV[`\0\x80`@\x83\x85\x03\x12\x15a\x0C\x90W`\0\x80\xFD[\x825g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x0C\xA8W`\0\x80\xFD[\x81\x85\x01\x91P\x85`\x1F\x83\x01\x12a\x0C\xBCW`\0\x80\xFD[\x815` a\x0C\xCCa\x0C3\x83a\x0B\xEEV[\x82\x81R`\x05\x92\x90\x92\x1B\x84\x01\x81\x01\x91\x81\x81\x01\x90\x89\x84\x11\x15a\x0C\xEBW`\0\x80\xFD[\x94\x82\x01\x94[\x83\x86\x10\x15a\r,W\x855s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\r\x1DW`\0\x80\x81\xFD[\x82R\x94\x82\x01\x94\x90\x82\x01\x90a\x0C\xF0V[\x96PP\x86\x015\x92PP\x80\x82\x11\x15a\rBW`\0\x80\xFD[Pa\rO\x85\x82\x86\x01a\x0C\x12V[\x91PP\x92P\x92\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`2`\x04R`$`\0\xFD[`\0\x82\x82\x10\x15a\r\xC1W\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`\x11`\x04R`$`\0\xFD[P\x03\x90V\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `Initialized(uint8)` and selector `0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498`. +```solidity +event Initialized(uint8 version); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct Initialized { + #[allow(missing_docs)] + pub version: u8, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for Initialized { + type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<8>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,); + const SIGNATURE: &'static str = "Initialized(uint8)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 127u8, 38u8, 184u8, 63u8, 249u8, 110u8, 31u8, 43u8, 106u8, 104u8, 47u8, + 19u8, 56u8, 82u8, 246u8, 121u8, 138u8, 9u8, 196u8, 101u8, 218u8, 149u8, + 146u8, 20u8, 96u8, 206u8, 251u8, 56u8, 71u8, 64u8, 36u8, 152u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { version: data.0 } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.version), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(),) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for Initialized { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&Initialized> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &Initialized) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `ProcessedFunds(address,bool,uint256,uint256)` and selector `0x74273f98770936abfe9aad12868d2dbe403347b74b7f3a539d0359c123d5d31c`. +```solidity +event ProcessedFunds(address indexed systemAddress, bool indexed success, uint256 balanceNeeded, uint256 balanceSent); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct ProcessedFunds { + #[allow(missing_docs)] + pub systemAddress: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub success: bool, + #[allow(missing_docs)] + pub balanceNeeded: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub balanceSent: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for ProcessedFunds { + type DataTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + ); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Bool, + ); + const SIGNATURE: &'static str = "ProcessedFunds(address,bool,uint256,uint256)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 116u8, 39u8, 63u8, 152u8, 119u8, 9u8, 54u8, 171u8, 254u8, 154u8, 173u8, + 18u8, 134u8, 141u8, 45u8, 190u8, 64u8, 51u8, 71u8, 183u8, 75u8, 127u8, + 58u8, 83u8, 157u8, 3u8, 89u8, 193u8, 35u8, 213u8, 211u8, 28u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + systemAddress: topics.1, + success: topics.2, + balanceNeeded: data.0, + balanceSent: data.1, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.balanceNeeded), + as alloy_sol_types::SolType>::tokenize(&self.balanceSent), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + ( + Self::SIGNATURE_HASH.into(), + self.systemAddress.clone(), + self.success.clone(), + ) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.systemAddress, + ); + out[2usize] = ::encode_topic( + &self.success, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for ProcessedFunds { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&ProcessedFunds> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &ProcessedFunds) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `ReceivedFunds(address,uint256)` and selector `0x5741979df5f3e491501da74d3b0a83dd2496ab1f34929865b3e190a8ad75859a`. +```solidity +event ReceivedFunds(address indexed sender, uint256 amount); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct ReceivedFunds { + #[allow(missing_docs)] + pub sender: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub amount: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for ReceivedFunds { + type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "ReceivedFunds(address,uint256)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 87u8, 65u8, 151u8, 157u8, 245u8, 243u8, 228u8, 145u8, 80u8, 29u8, 167u8, + 77u8, 59u8, 10u8, 131u8, 221u8, 36u8, 150u8, 171u8, 31u8, 52u8, 146u8, + 152u8, 101u8, 179u8, 225u8, 144u8, 168u8, 173u8, 117u8, 133u8, 154u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + sender: topics.1, + amount: data.0, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.amount), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.sender.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.sender, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for ReceivedFunds { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&ReceivedFunds> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &ReceivedFunds) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `SentProfit(address,bool,uint256)` and selector `0xbadd9d7563efca77438dc132e885aa156837e0b784469f68fbd810cbfb6cda77`. +```solidity +event SentProfit(address indexed profitWallet, bool indexed success, uint256 balanceSent); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct SentProfit { + #[allow(missing_docs)] + pub profitWallet: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub success: bool, + #[allow(missing_docs)] + pub balanceSent: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for SentProfit { + type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Bool, + ); + const SIGNATURE: &'static str = "SentProfit(address,bool,uint256)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 186u8, 221u8, 157u8, 117u8, 99u8, 239u8, 202u8, 119u8, 67u8, 141u8, + 193u8, 50u8, 232u8, 133u8, 170u8, 21u8, 104u8, 55u8, 224u8, 183u8, 132u8, + 70u8, 159u8, 104u8, 251u8, 216u8, 16u8, 203u8, 251u8, 108u8, 218u8, 119u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + profitWallet: topics.1, + success: topics.2, + balanceSent: data.0, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.balanceSent), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + ( + Self::SIGNATURE_HASH.into(), + self.profitWallet.clone(), + self.success.clone(), + ) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.profitWallet, + ); + out[2usize] = ::encode_topic( + &self.success, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for SentProfit { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&SentProfit> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &SentProfit) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + /**Constructor`. +```solidity +constructor(address profitWallet); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct constructorCall { + #[allow(missing_docs)] + pub profitWallet: alloy::sol_types::private::Address, + } + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: constructorCall) -> Self { + (value.profitWallet,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for constructorCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { profitWallet: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolConstructor for constructorCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.profitWallet, + ), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `MAX_SYSTEM_ADDRESS_COUNT()` and selector `0x6d1eb022`. +```solidity +function MAX_SYSTEM_ADDRESS_COUNT() external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct MAX_SYSTEM_ADDRESS_COUNTCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`MAX_SYSTEM_ADDRESS_COUNT()`](MAX_SYSTEM_ADDRESS_COUNTCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct MAX_SYSTEM_ADDRESS_COUNTReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: MAX_SYSTEM_ADDRESS_COUNTCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for MAX_SYSTEM_ADDRESS_COUNTCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: MAX_SYSTEM_ADDRESS_COUNTReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for MAX_SYSTEM_ADDRESS_COUNTReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for MAX_SYSTEM_ADDRESS_COUNTCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "MAX_SYSTEM_ADDRESS_COUNT()"; + const SELECTOR: [u8; 4] = [109u8, 30u8, 176u8, 34u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: MAX_SYSTEM_ADDRESS_COUNTReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: MAX_SYSTEM_ADDRESS_COUNTReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `PROFIT_WALLET()` and selector `0x981949e8`. +```solidity +function PROFIT_WALLET() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct PROFIT_WALLETCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`PROFIT_WALLET()`](PROFIT_WALLETCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct PROFIT_WALLETReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: PROFIT_WALLETCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for PROFIT_WALLETCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: PROFIT_WALLETReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for PROFIT_WALLETReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for PROFIT_WALLETCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "PROFIT_WALLET()"; + const SELECTOR: [u8; 4] = [152u8, 25u8, 73u8, 232u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: PROFIT_WALLETReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: PROFIT_WALLETReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `initialize(address[],uint256[])` and selector `0x7fbbe46f`. +```solidity +function initialize(address[] memory systemAddresses_, uint256[] memory targetBalances_) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct initializeCall { + #[allow(missing_docs)] + pub systemAddresses_: alloy::sol_types::private::Vec< + alloy::sol_types::private::Address, + >, + #[allow(missing_docs)] + pub targetBalances_: alloy::sol_types::private::Vec< + alloy::sol_types::private::primitives::aliases::U256, + >, + } + ///Container type for the return parameters of the [`initialize(address[],uint256[])`](initializeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct initializeReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Array, + alloy::sol_types::sol_data::Array>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Vec, + alloy::sol_types::private::Vec< + alloy::sol_types::private::primitives::aliases::U256, + >, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: initializeCall) -> Self { + (value.systemAddresses_, value.targetBalances_) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for initializeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + systemAddresses_: tuple.0, + targetBalances_: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: initializeReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for initializeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl initializeReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for initializeCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Array, + alloy::sol_types::sol_data::Array>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = initializeReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "initialize(address[],uint256[])"; + const SELECTOR: [u8; 4] = [127u8, 187u8, 228u8, 111u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.systemAddresses_), + , + > as alloy_sol_types::SolType>::tokenize(&self.targetBalances_), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + initializeReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `processFees()` and selector `0xba69ebed`. +```solidity +function processFees() external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct processFeesCall; + ///Container type for the return parameters of the [`processFees()`](processFeesCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct processFeesReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: processFeesCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for processFeesCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: processFeesReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for processFeesReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl processFeesReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for processFeesCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = processFeesReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "processFees()"; + const SELECTOR: [u8; 4] = [186u8, 105u8, 235u8, 237u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + processFeesReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `systemAddresses(uint256)` and selector `0x927a1a77`. +```solidity +function systemAddresses(uint256) external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct systemAddressesCall( + pub alloy::sol_types::private::primitives::aliases::U256, + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`systemAddresses(uint256)`](systemAddressesCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct systemAddressesReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: systemAddressesCall) -> Self { + (value.0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for systemAddressesCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self(tuple.0) + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: systemAddressesReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for systemAddressesReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for systemAddressesCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "systemAddresses(uint256)"; + const SELECTOR: [u8; 4] = [146u8, 122u8, 26u8, 119u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.0), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: systemAddressesReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: systemAddressesReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `targetBalances(uint256)` and selector `0x0a565720`. +```solidity +function targetBalances(uint256) external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct targetBalancesCall( + pub alloy::sol_types::private::primitives::aliases::U256, + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`targetBalances(uint256)`](targetBalancesCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct targetBalancesReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: targetBalancesCall) -> Self { + (value.0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for targetBalancesCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self(tuple.0) + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: targetBalancesReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for targetBalancesReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for targetBalancesCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "targetBalances(uint256)"; + const SELECTOR: [u8; 4] = [10u8, 86u8, 87u8, 32u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.0), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: targetBalancesReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: targetBalancesReturn = r.into(); + r._0 + }) + } + } + }; + ///Container for all the [`BalanceTracker`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum BalanceTrackerCalls { + #[allow(missing_docs)] + MAX_SYSTEM_ADDRESS_COUNT(MAX_SYSTEM_ADDRESS_COUNTCall), + #[allow(missing_docs)] + PROFIT_WALLET(PROFIT_WALLETCall), + #[allow(missing_docs)] + initialize(initializeCall), + #[allow(missing_docs)] + processFees(processFeesCall), + #[allow(missing_docs)] + systemAddresses(systemAddressesCall), + #[allow(missing_docs)] + targetBalances(targetBalancesCall), + } + impl BalanceTrackerCalls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [10u8, 86u8, 87u8, 32u8], + [109u8, 30u8, 176u8, 34u8], + [127u8, 187u8, 228u8, 111u8], + [146u8, 122u8, 26u8, 119u8], + [152u8, 25u8, 73u8, 232u8], + [186u8, 105u8, 235u8, 237u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(targetBalances), + ::core::stringify!(MAX_SYSTEM_ADDRESS_COUNT), + ::core::stringify!(initialize), + ::core::stringify!(systemAddresses), + ::core::stringify!(PROFIT_WALLET), + ::core::stringify!(processFees), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for BalanceTrackerCalls { + const NAME: &'static str = "BalanceTrackerCalls"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 6usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::MAX_SYSTEM_ADDRESS_COUNT(_) => { + ::SELECTOR + } + Self::PROFIT_WALLET(_) => { + ::SELECTOR + } + Self::initialize(_) => { + ::SELECTOR + } + Self::processFees(_) => { + ::SELECTOR + } + Self::systemAddresses(_) => { + ::SELECTOR + } + Self::targetBalances(_) => { + ::SELECTOR + } + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn targetBalances( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(BalanceTrackerCalls::targetBalances) + } + targetBalances + }, + { + fn MAX_SYSTEM_ADDRESS_COUNT( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(BalanceTrackerCalls::MAX_SYSTEM_ADDRESS_COUNT) + } + MAX_SYSTEM_ADDRESS_COUNT + }, + { + fn initialize( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(BalanceTrackerCalls::initialize) + } + initialize + }, + { + fn systemAddresses( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(BalanceTrackerCalls::systemAddresses) + } + systemAddresses + }, + { + fn PROFIT_WALLET( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(BalanceTrackerCalls::PROFIT_WALLET) + } + PROFIT_WALLET + }, + { + fn processFees( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(BalanceTrackerCalls::processFees) + } + processFees + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn targetBalances( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(BalanceTrackerCalls::targetBalances) + } + targetBalances + }, + { + fn MAX_SYSTEM_ADDRESS_COUNT( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(BalanceTrackerCalls::MAX_SYSTEM_ADDRESS_COUNT) + } + MAX_SYSTEM_ADDRESS_COUNT + }, + { + fn initialize( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(BalanceTrackerCalls::initialize) + } + initialize + }, + { + fn systemAddresses( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(BalanceTrackerCalls::systemAddresses) + } + systemAddresses + }, + { + fn PROFIT_WALLET( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(BalanceTrackerCalls::PROFIT_WALLET) + } + PROFIT_WALLET + }, + { + fn processFees( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(BalanceTrackerCalls::processFees) + } + processFees + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::MAX_SYSTEM_ADDRESS_COUNT(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::PROFIT_WALLET(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::initialize(inner) => { + ::abi_encoded_size(inner) + } + Self::processFees(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::systemAddresses(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::targetBalances(inner) => { + ::abi_encoded_size( + inner, + ) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::MAX_SYSTEM_ADDRESS_COUNT(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::PROFIT_WALLET(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::initialize(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::processFees(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::systemAddresses(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::targetBalances(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + } + } + } + ///Container for all the [`BalanceTracker`](self) events. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum BalanceTrackerEvents { + #[allow(missing_docs)] + Initialized(Initialized), + #[allow(missing_docs)] + ProcessedFunds(ProcessedFunds), + #[allow(missing_docs)] + ReceivedFunds(ReceivedFunds), + #[allow(missing_docs)] + SentProfit(SentProfit), + } + impl BalanceTrackerEvents { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 32usize]] = &[ + [ + 87u8, 65u8, 151u8, 157u8, 245u8, 243u8, 228u8, 145u8, 80u8, 29u8, 167u8, + 77u8, 59u8, 10u8, 131u8, 221u8, 36u8, 150u8, 171u8, 31u8, 52u8, 146u8, + 152u8, 101u8, 179u8, 225u8, 144u8, 168u8, 173u8, 117u8, 133u8, 154u8, + ], + [ + 116u8, 39u8, 63u8, 152u8, 119u8, 9u8, 54u8, 171u8, 254u8, 154u8, 173u8, + 18u8, 134u8, 141u8, 45u8, 190u8, 64u8, 51u8, 71u8, 183u8, 75u8, 127u8, + 58u8, 83u8, 157u8, 3u8, 89u8, 193u8, 35u8, 213u8, 211u8, 28u8, + ], + [ + 127u8, 38u8, 184u8, 63u8, 249u8, 110u8, 31u8, 43u8, 106u8, 104u8, 47u8, + 19u8, 56u8, 82u8, 246u8, 121u8, 138u8, 9u8, 196u8, 101u8, 218u8, 149u8, + 146u8, 20u8, 96u8, 206u8, 251u8, 56u8, 71u8, 64u8, 36u8, 152u8, + ], + [ + 186u8, 221u8, 157u8, 117u8, 99u8, 239u8, 202u8, 119u8, 67u8, 141u8, + 193u8, 50u8, 232u8, 133u8, 170u8, 21u8, 104u8, 55u8, 224u8, 183u8, 132u8, + 70u8, 159u8, 104u8, 251u8, 216u8, 16u8, 203u8, 251u8, 108u8, 218u8, 119u8, + ], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(ReceivedFunds), + ::core::stringify!(ProcessedFunds), + ::core::stringify!(Initialized), + ::core::stringify!(SentProfit), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolEventInterface for BalanceTrackerEvents { + const NAME: &'static str = "BalanceTrackerEvents"; + const COUNT: usize = 4usize; + fn decode_raw_log( + topics: &[alloy_sol_types::Word], + data: &[u8], + ) -> alloy_sol_types::Result { + match topics.first().copied() { + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::Initialized) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::ProcessedFunds) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::ReceivedFunds) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::SentProfit) + } + _ => { + alloy_sol_types::private::Err(alloy_sol_types::Error::InvalidLog { + name: ::NAME, + log: alloy_sol_types::private::Box::new( + alloy_sol_types::private::LogData::new_unchecked( + topics.to_vec(), + data.to_vec().into(), + ), + ), + }) + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for BalanceTrackerEvents { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + match self { + Self::Initialized(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::ProcessedFunds(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::ReceivedFunds(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::SentProfit(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + } + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + match self { + Self::Initialized(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::ProcessedFunds(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::ReceivedFunds(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::SentProfit(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`BalanceTracker`](self) contract instance. + +See the [wrapper's documentation](`BalanceTrackerInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> BalanceTrackerInstance { + BalanceTrackerInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + profitWallet: alloy::sol_types::private::Address, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + BalanceTrackerInstance::::deploy(__provider, profitWallet) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + profitWallet: alloy::sol_types::private::Address, + ) -> alloy_contract::RawCallBuilder { + BalanceTrackerInstance::::deploy_builder(__provider, profitWallet) + } + /**A [`BalanceTracker`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`BalanceTracker`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct BalanceTrackerInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for BalanceTrackerInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("BalanceTrackerInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > BalanceTrackerInstance { + /**Creates a new wrapper around an on-chain [`BalanceTracker`](self) contract instance. + +See the [wrapper's documentation](`BalanceTrackerInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + profitWallet: alloy::sol_types::private::Address, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider, profitWallet); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder( + __provider: P, + profitWallet: alloy::sol_types::private::Address, + ) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + [ + &BYTECODE[..], + &alloy_sol_types::SolConstructor::abi_encode( + &constructorCall { profitWallet }, + )[..], + ] + .concat() + .into(), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl BalanceTrackerInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> BalanceTrackerInstance { + BalanceTrackerInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > BalanceTrackerInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`MAX_SYSTEM_ADDRESS_COUNT`] function. + pub fn MAX_SYSTEM_ADDRESS_COUNT( + &self, + ) -> alloy_contract::SolCallBuilder<&P, MAX_SYSTEM_ADDRESS_COUNTCall, N> { + self.call_builder(&MAX_SYSTEM_ADDRESS_COUNTCall) + } + ///Creates a new call builder for the [`PROFIT_WALLET`] function. + pub fn PROFIT_WALLET( + &self, + ) -> alloy_contract::SolCallBuilder<&P, PROFIT_WALLETCall, N> { + self.call_builder(&PROFIT_WALLETCall) + } + ///Creates a new call builder for the [`initialize`] function. + pub fn initialize( + &self, + systemAddresses_: alloy::sol_types::private::Vec< + alloy::sol_types::private::Address, + >, + targetBalances_: alloy::sol_types::private::Vec< + alloy::sol_types::private::primitives::aliases::U256, + >, + ) -> alloy_contract::SolCallBuilder<&P, initializeCall, N> { + self.call_builder( + &initializeCall { + systemAddresses_, + targetBalances_, + }, + ) + } + ///Creates a new call builder for the [`processFees`] function. + pub fn processFees( + &self, + ) -> alloy_contract::SolCallBuilder<&P, processFeesCall, N> { + self.call_builder(&processFeesCall) + } + ///Creates a new call builder for the [`systemAddresses`] function. + pub fn systemAddresses( + &self, + _0: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, systemAddressesCall, N> { + self.call_builder(&systemAddressesCall(_0)) + } + ///Creates a new call builder for the [`targetBalances`] function. + pub fn targetBalances( + &self, + _0: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, targetBalancesCall, N> { + self.call_builder(&targetBalancesCall(_0)) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > BalanceTrackerInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + ///Creates a new event filter for the [`Initialized`] event. + pub fn Initialized_filter(&self) -> alloy_contract::Event<&P, Initialized, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`ProcessedFunds`] event. + pub fn ProcessedFunds_filter( + &self, + ) -> alloy_contract::Event<&P, ProcessedFunds, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`ReceivedFunds`] event. + pub fn ReceivedFunds_filter( + &self, + ) -> alloy_contract::Event<&P, ReceivedFunds, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`SentProfit`] event. + pub fn SentProfit_filter(&self) -> alloy_contract::Event<&P, SentProfit, N> { + self.event_filter::() + } + } +} diff --git a/bindings/rust/src/base_fee_vault.rs b/bindings/rust/src/base_fee_vault.rs new file mode 100644 index 000000000..6daf054de --- /dev/null +++ b/bindings/rust/src/base_fee_vault.rs @@ -0,0 +1,4915 @@ +///Module containing a contract's types and functions. +/** + +```solidity +library Types { + type WithdrawalNetwork is uint8; +} +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod Types { + use super::*; + use alloy::sol_types as alloy_sol_types; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct WithdrawalNetwork(u8); + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for u8 { + #[inline] + fn stv_to_tokens( + &self, + ) -> as alloy_sol_types::SolType>::Token<'_> { + alloy_sol_types::private::SolTypeValue::< + alloy::sol_types::sol_data::Uint<8>, + >::stv_to_tokens(self) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + as alloy_sol_types::SolType>::tokenize(self) + .0 + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::SolType>::abi_encode_packed_to(self, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + as alloy_sol_types::SolType>::abi_encoded_size(self) + } + } + impl WithdrawalNetwork { + /// The Solidity type name. + pub const NAME: &'static str = stringify!(@ name); + /// Convert from the underlying value type. + #[inline] + pub const fn from_underlying(value: u8) -> Self { + Self(value) + } + /// Return the underlying value. + #[inline] + pub const fn into_underlying(self) -> u8 { + self.0 + } + /// Return the single encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode(&self) -> alloy_sol_types::private::Vec { + ::abi_encode(&self.0) + } + /// Return the packed encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec { + ::abi_encode_packed(&self.0) + } + } + #[automatically_derived] + impl From for WithdrawalNetwork { + fn from(value: u8) -> Self { + Self::from_underlying(value) + } + } + #[automatically_derived] + impl From for u8 { + fn from(value: WithdrawalNetwork) -> Self { + value.into_underlying() + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for WithdrawalNetwork { + type RustType = u8; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = Self::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + Self::type_check(token).is_ok() + } + #[inline] + fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> { + as alloy_sol_types::SolType>::type_check(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + as alloy_sol_types::SolType>::detokenize(token) + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for WithdrawalNetwork { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + as alloy_sol_types::EventTopic>::topic_preimage_length(rust) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out) + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + as alloy_sol_types::EventTopic>::encode_topic(rust) + } + } + }; + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`Types`](self) contract instance. + +See the [wrapper's documentation](`TypesInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(address: alloy_sol_types::private::Address, __provider: P) -> TypesInstance { + TypesInstance::::new(address, __provider) + } + /**A [`Types`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`Types`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct TypesInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for TypesInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("TypesInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > TypesInstance { + /**Creates a new wrapper around an on-chain [`Types`](self) contract instance. + +See the [wrapper's documentation](`TypesInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl TypesInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> TypesInstance { + TypesInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > TypesInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > TypesInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + } +} +/** + +Generated by the following Solidity interface... +```solidity +library Types { + type WithdrawalNetwork is uint8; +} + +interface BaseFeeVault { + error FeeVault_OnlyProxyAdminOwner(); + error InvalidInitialization(); + error NotInitializing(); + + event Initialized(uint64 version); + event MinWithdrawalAmountUpdated(uint256 oldWithdrawalAmount, uint256 newWithdrawalAmount); + event RecipientUpdated(address oldRecipient, address newRecipient); + event Withdrawal(uint256 value, address to, address from); + event Withdrawal(uint256 value, address to, address from, Types.WithdrawalNetwork withdrawalNetwork); + event WithdrawalNetworkUpdated(Types.WithdrawalNetwork oldWithdrawalNetwork, Types.WithdrawalNetwork newWithdrawalNetwork); + + receive() external payable; + + function MIN_WITHDRAWAL_AMOUNT() external view returns (uint256); + function RECIPIENT() external view returns (address); + function WITHDRAWAL_NETWORK() external view returns (Types.WithdrawalNetwork); + function initialize(address _recipient, uint256 _minWithdrawalAmount, Types.WithdrawalNetwork _withdrawalNetwork) external; + function minWithdrawalAmount() external view returns (uint256); + function recipient() external view returns (address); + function setMinWithdrawalAmount(uint256 _newMinWithdrawalAmount) external; + function setRecipient(address _newRecipient) external; + function setWithdrawalNetwork(Types.WithdrawalNetwork _newWithdrawalNetwork) external; + function totalProcessed() external view returns (uint256); + function version() external view returns (string memory); + function withdraw() external returns (uint256 value_); + function withdrawalNetwork() external view returns (Types.WithdrawalNetwork); +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "receive", + "stateMutability": "payable" + }, + { + "type": "function", + "name": "MIN_WITHDRAWAL_AMOUNT", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "RECIPIENT", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "WITHDRAWAL_NETWORK", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint8", + "internalType": "enum Types.WithdrawalNetwork" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "initialize", + "inputs": [ + { + "name": "_recipient", + "type": "address", + "internalType": "address" + }, + { + "name": "_minWithdrawalAmount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_withdrawalNetwork", + "type": "uint8", + "internalType": "enum Types.WithdrawalNetwork" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "minWithdrawalAmount", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "recipient", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "setMinWithdrawalAmount", + "inputs": [ + { + "name": "_newMinWithdrawalAmount", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "setRecipient", + "inputs": [ + { + "name": "_newRecipient", + "type": "address", + "internalType": "address" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "setWithdrawalNetwork", + "inputs": [ + { + "name": "_newWithdrawalNetwork", + "type": "uint8", + "internalType": "enum Types.WithdrawalNetwork" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "totalProcessed", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "version", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "withdraw", + "inputs": [], + "outputs": [ + { + "name": "value_", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "withdrawalNetwork", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint8", + "internalType": "enum Types.WithdrawalNetwork" + } + ], + "stateMutability": "view" + }, + { + "type": "event", + "name": "Initialized", + "inputs": [ + { + "name": "version", + "type": "uint64", + "indexed": false, + "internalType": "uint64" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "MinWithdrawalAmountUpdated", + "inputs": [ + { + "name": "oldWithdrawalAmount", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + }, + { + "name": "newWithdrawalAmount", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "RecipientUpdated", + "inputs": [ + { + "name": "oldRecipient", + "type": "address", + "indexed": false, + "internalType": "address" + }, + { + "name": "newRecipient", + "type": "address", + "indexed": false, + "internalType": "address" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "Withdrawal", + "inputs": [ + { + "name": "value", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + }, + { + "name": "to", + "type": "address", + "indexed": false, + "internalType": "address" + }, + { + "name": "from", + "type": "address", + "indexed": false, + "internalType": "address" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "Withdrawal", + "inputs": [ + { + "name": "value", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + }, + { + "name": "to", + "type": "address", + "indexed": false, + "internalType": "address" + }, + { + "name": "from", + "type": "address", + "indexed": false, + "internalType": "address" + }, + { + "name": "withdrawalNetwork", + "type": "uint8", + "indexed": false, + "internalType": "enum Types.WithdrawalNetwork" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "WithdrawalNetworkUpdated", + "inputs": [ + { + "name": "oldWithdrawalNetwork", + "type": "uint8", + "indexed": false, + "internalType": "enum Types.WithdrawalNetwork" + }, + { + "name": "newWithdrawalNetwork", + "type": "uint8", + "indexed": false, + "internalType": "enum Types.WithdrawalNetwork" + } + ], + "anonymous": false + }, + { + "type": "error", + "name": "FeeVault_OnlyProxyAdminOwner", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidInitialization", + "inputs": [] + }, + { + "type": "error", + "name": "NotInitializing", + "inputs": [] + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod BaseFeeVault { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x6080604052348015600e575f80fd5b5060156019565b60c9565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff161560685760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b039081161460c65780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b610e8d806100d65f395ff3fe6080604052600436106100d1575f3560e01c806382356d8a1161007c57806385b5b14d1161005757806385b5b14d14610276578063b49dc74114610295578063d0e12f90146102b4578063d3e5792b146102e3575f80fd5b806382356d8a1461020f5780638312f1491461024d57806384411d6514610262575f80fd5b80633ccfd60b116100ac5780633ccfd60b1461016c57806354fd4d501461018e57806366d003ac146101e3575f80fd5b80630d9019e1146100dc578063307f29621461012c5780633bbed4a01461014d575f80fd5b366100d857005b5f80fd5b3480156100e7575f80fd5b5060025473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b348015610137575f80fd5b5061014b610146366004610c5a565b6102f7565b005b348015610158575f80fd5b5061014b610167366004610c97565b61047a565b348015610177575f80fd5b506101806105de565b604051908152602001610123565b348015610199575f80fd5b506101d66040518060400160405280600581526020017f312e362e3000000000000000000000000000000000000000000000000000000081525081565b6040516101239190610cb2565b3480156101ee575f80fd5b506002546101029073ffffffffffffffffffffffffffffffffffffffff1681565b34801561021a575f80fd5b506002546102409074010000000000000000000000000000000000000000900460ff1681565b6040516101239190610d6b565b348015610258575f80fd5b5061018060015481565b34801561026d575f80fd5b506101805f5481565b348015610281575f80fd5b5061014b610290366004610d7f565b6108ec565b3480156102a0575f80fd5b5061014b6102af366004610d96565b610a0f565b3480156102bf575f80fd5b5060025474010000000000000000000000000000000000000000900460ff16610240565b3480156102ee575f80fd5b50600154610180565b73420000000000000000000000000000000000001873ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610354573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103789190610dd1565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146103dc576040517f7cd7e09f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600280547401000000000000000000000000000000000000000080820460ff1692849290917fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff9091169083600181111561043857610438610d05565b02179055507ff2ec44eb1c3b3acd547b76333eb2c4b27eee311860c57a9fdb04c95f62398fc8818360405161046e929190610dec565b60405180910390a15050565b73420000000000000000000000000000000000001873ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104d7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104fb9190610dd1565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461055f576040517f7cd7e09f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff000000000000000000000000000000000000000083168117909355604080519190921680825260208201939093527f62e69886a5df0ba8ffcacbfc1388754e7abd9bde24b036354c561f1acd4e4593910161046e565b5f60015447101561069c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f4665655661756c743a207769746864726177616c20616d6f756e74206d75737460448201527f2062652067726561746572207468616e206d696e696d756d207769746864726160648201527f77616c20616d6f756e7400000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b479050805f808282546106af9190610e07565b90915550506002546040805183815273ffffffffffffffffffffffffffffffffffffffff909216602083018190523383830152905190917fc8a211cc64b6ed1b50595a9fcb1932b6d1e5a6e8ef15b60e5b1f988ea9086bba919081900360600190a16002546040517f38e04cbeb8c10f8f568618aa75be0f10b6729b8b4237743b4de20cbcde2839ee916107649185918591339174010000000000000000000000000000000000000000900460ff1690610e3f565b60405180910390a1600160025474010000000000000000000000000000000000000000900460ff16600181111561079d5761079d610d05565b03610841575f6107ad8284610c23565b90508061083c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f4665655661756c743a206661696c656420746f2073656e642045544820746f2060448201527f4c322066656520726563697069656e74000000000000000000000000000000006064820152608401610693565b505090565b6040517fc2b3e5ac00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8216600482015262061a806024820152606060448201525f60648201527342000000000000000000000000000000000000169063c2b3e5ac9084906084015f604051808303818588803b1580156108d1575f80fd5b505af11580156108e3573d5f803e3d5ffd5b50505050505090565b73420000000000000000000000000000000000001873ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610949573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061096d9190610dd1565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146109d1576040517f7cd7e09f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600180549082905560408051828152602081018490527f895a067c78583e800418fabf3da26a9496aab2ff3429cebdf7fefa642b2e4203910161046e565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff165f81158015610a595750825b90505f8267ffffffffffffffff166001148015610a755750303b155b905081158015610a83575080155b15610aba576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001660011785558315610b1b5784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b6002805473ffffffffffffffffffffffffffffffffffffffff8a167fffffffffffffffffffffffff000000000000000000000000000000000000000082168117835560018a81558993927fffffffffffffffffffffff000000000000000000000000000000000000000000169091179074010000000000000000000000000000000000000000908490811115610bb357610bb3610d05565b02179055508315610c195784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050565b5f610c2f835a84610c36565b9392505050565b5f805f805f858888f1949350505050565b803560028110610c55575f80fd5b919050565b5f60208284031215610c6a575f80fd5b610c2f82610c47565b73ffffffffffffffffffffffffffffffffffffffff81168114610c94575f80fd5b50565b5f60208284031215610ca7575f80fd5b8135610c2f81610c73565b602081525f82518060208401528060208501604085015e5f6040828501015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011684010191505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b60028110610d67577f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b9052565b60208101610d798284610d32565b92915050565b5f60208284031215610d8f575f80fd5b5035919050565b5f805f60608486031215610da8575f80fd5b8335610db381610c73565b925060208401359150610dc860408501610c47565b90509250925092565b5f60208284031215610de1575f80fd5b8151610c2f81610c73565b60408101610dfa8285610d32565b610c2f6020830184610d32565b80820180821115610d79577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b84815273ffffffffffffffffffffffffffffffffffffffff84811660208301528316604082015260808101610e776060830184610d32565b9594505050505056fea164736f6c6343000819000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R4\x80\x15`\x0EW_\x80\xFD[P`\x15`\x19V[`\xC9V[\x7F\xF0\xC5~\x16\x84\r\xF0@\xF1P\x88\xDC/\x81\xFE9\x1C9#\xBE\xC7>#\xA9f.\xFC\x9C\"\x9Cj\0\x80Th\x01\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16\x15`hW`@Qc\xF9.\xE8\xA9`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[\x80T`\x01`\x01`@\x1B\x03\x90\x81\x16\x14`\xC6W\x80T`\x01`\x01`@\x1B\x03\x19\x16`\x01`\x01`@\x1B\x03\x90\x81\x17\x82U`@Q\x90\x81R\x7F\xC7\xF5\x05\xB2\xF3q\xAE!u\xEEI\x13\xF4I\x9E\x1F&3\xA7\xB5\x93c!\xEE\xD1\xCD\xAE\xB6\x11Q\x81\xD2\x90` \x01`@Q\x80\x91\x03\x90\xA1[PV[a\x0E\x8D\x80a\0\xD6_9_\xF3\xFE`\x80`@R`\x046\x10a\0\xD1W_5`\xE0\x1C\x80c\x825m\x8A\x11a\0|W\x80c\x85\xB5\xB1M\x11a\0WW\x80c\x85\xB5\xB1M\x14a\x02vW\x80c\xB4\x9D\xC7A\x14a\x02\x95W\x80c\xD0\xE1/\x90\x14a\x02\xB4W\x80c\xD3\xE5y+\x14a\x02\xE3W_\x80\xFD[\x80c\x825m\x8A\x14a\x02\x0FW\x80c\x83\x12\xF1I\x14a\x02MW\x80c\x84A\x1De\x14a\x02bW_\x80\xFD[\x80c<\xCF\xD6\x0B\x11a\0\xACW\x80c<\xCF\xD6\x0B\x14a\x01lW\x80cT\xFDMP\x14a\x01\x8EW\x80cf\xD0\x03\xAC\x14a\x01\xE3W_\x80\xFD[\x80c\r\x90\x19\xE1\x14a\0\xDCW\x80c0\x7F)b\x14a\x01,W\x80c;\xBE\xD4\xA0\x14a\x01MW_\x80\xFD[6a\0\xD8W\0[_\x80\xFD[4\x80\x15a\0\xE7W_\x80\xFD[P`\x02Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16[`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[4\x80\x15a\x017W_\x80\xFD[Pa\x01Ka\x01F6`\x04a\x0CZV[a\x02\xF7V[\0[4\x80\x15a\x01XW_\x80\xFD[Pa\x01Ka\x01g6`\x04a\x0C\x97V[a\x04zV[4\x80\x15a\x01wW_\x80\xFD[Pa\x01\x80a\x05\xDEV[`@Q\x90\x81R` \x01a\x01#V[4\x80\x15a\x01\x99W_\x80\xFD[Pa\x01\xD6`@Q\x80`@\x01`@R\x80`\x05\x81R` \x01\x7F1.6.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\x81RP\x81V[`@Qa\x01#\x91\x90a\x0C\xB2V[4\x80\x15a\x01\xEEW_\x80\xFD[P`\x02Ta\x01\x02\x90s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[4\x80\x15a\x02\x1AW_\x80\xFD[P`\x02Ta\x02@\x90t\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16\x81V[`@Qa\x01#\x91\x90a\rkV[4\x80\x15a\x02XW_\x80\xFD[Pa\x01\x80`\x01T\x81V[4\x80\x15a\x02mW_\x80\xFD[Pa\x01\x80_T\x81V[4\x80\x15a\x02\x81W_\x80\xFD[Pa\x01Ka\x02\x906`\x04a\r\x7FV[a\x08\xECV[4\x80\x15a\x02\xA0W_\x80\xFD[Pa\x01Ka\x02\xAF6`\x04a\r\x96V[a\n\x0FV[4\x80\x15a\x02\xBFW_\x80\xFD[P`\x02Tt\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16a\x02@V[4\x80\x15a\x02\xEEW_\x80\xFD[P`\x01Ta\x01\x80V[sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x18s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\x8D\xA5\xCB[`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x03TW=_\x80>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x03x\x91\x90a\r\xD1V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x163s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14a\x03\xDCW`@Q\x7F|\xD7\xE0\x9F\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\x01`@Q\x80\x91\x03\x90\xFD[`\x02\x80Tt\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x80\x82\x04`\xFF\x16\x92\x84\x92\x90\x91\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x90\x83`\x01\x81\x11\x15a\x048Wa\x048a\r\x05V[\x02\x17\x90UP\x7F\xF2\xECD\xEB\x1C;:\xCDT{v3>\xB2\xC4\xB2~\xEE1\x18`\xC5z\x9F\xDB\x04\xC9_b9\x8F\xC8\x81\x83`@Qa\x04n\x92\x91\x90a\r\xECV[`@Q\x80\x91\x03\x90\xA1PPV[sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x18s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\x8D\xA5\xCB[`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x04\xD7W=_\x80>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x04\xFB\x91\x90a\r\xD1V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x163s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14a\x05_W`@Q\x7F|\xD7\xE0\x9F\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\x01`@Q\x80\x91\x03\x90\xFD[`\x02\x80Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x81\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x83\x16\x81\x17\x90\x93U`@\x80Q\x91\x90\x92\x16\x80\x82R` \x82\x01\x93\x90\x93R\x7Fb\xE6\x98\x86\xA5\xDF\x0B\xA8\xFF\xCA\xCB\xFC\x13\x88uNz\xBD\x9B\xDE$\xB065LV\x1F\x1A\xCDNE\x93\x91\x01a\x04nV[_`\x01TG\x10\x15a\x06\x9CW`@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\x82\x01R`J`$\x82\x01R\x7FFeeVault: withdrawal amount must`D\x82\x01R\x7F be greater than minimum withdra`d\x82\x01R\x7Fwal amount\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x84\x82\x01R`\xA4\x01[`@Q\x80\x91\x03\x90\xFD[G\x90P\x80_\x80\x82\x82Ta\x06\xAF\x91\x90a\x0E\x07V[\x90\x91UPP`\x02T`@\x80Q\x83\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x92\x16` \x83\x01\x81\x90R3\x83\x83\x01R\x90Q\x90\x91\x7F\xC8\xA2\x11\xCCd\xB6\xED\x1BPYZ\x9F\xCB\x192\xB6\xD1\xE5\xA6\xE8\xEF\x15\xB6\x0E[\x1F\x98\x8E\xA9\x08k\xBA\x91\x90\x81\x90\x03``\x01\x90\xA1`\x02T`@Q\x7F8\xE0L\xBE\xB8\xC1\x0F\x8FV\x86\x18\xAAu\xBE\x0F\x10\xB6r\x9B\x8BB7t;M\xE2\x0C\xBC\xDE(9\xEE\x91a\x07d\x91\x85\x91\x85\x913\x91t\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16\x90a\x0E?V[`@Q\x80\x91\x03\x90\xA1`\x01`\x02Tt\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16`\x01\x81\x11\x15a\x07\x9DWa\x07\x9Da\r\x05V[\x03a\x08AW_a\x07\xAD\x82\x84a\x0C#V[\x90P\x80a\x08=_\xFD[PPPPPP\x90V[sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x18s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\x8D\xA5\xCB[`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\tIW=_\x80>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\tm\x91\x90a\r\xD1V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x163s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14a\t\xD1W`@Q\x7F|\xD7\xE0\x9F\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01\x80T\x90\x82\x90U`@\x80Q\x82\x81R` \x81\x01\x84\x90R\x7F\x89Z\x06|xX>\x80\x04\x18\xFA\xBF=\xA2j\x94\x96\xAA\xB2\xFF4)\xCE\xBD\xF7\xFE\xFAd+.B\x03\x91\x01a\x04nV[\x7F\xF0\xC5~\x16\x84\r\xF0@\xF1P\x88\xDC/\x81\xFE9\x1C9#\xBE\xC7>#\xA9f.\xFC\x9C\"\x9Cj\0\x80Th\x01\0\0\0\0\0\0\0\0\x81\x04`\xFF\x16\x15\x90g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16_\x81\x15\x80\x15a\nYWP\x82[\x90P_\x82g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\x01\x14\x80\x15a\nuWP0;\x15[\x90P\x81\x15\x80\x15a\n\x83WP\x80\x15[\x15a\n\xBAW`@Q\x7F\xF9.\xE8\xA9\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\x01`@Q\x80\x91\x03\x90\xFD[\x84T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\x16`\x01\x17\x85U\x83\x15a\x0B\x1BW\x84T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16h\x01\0\0\0\0\0\0\0\0\x17\x85U[`\x02\x80Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x8A\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x82\x16\x81\x17\x83U`\x01\x8A\x81U\x89\x93\x92\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x90\x91\x17\x90t\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x84\x90\x81\x11\x15a\x0B\xB3Wa\x0B\xB3a\r\x05V[\x02\x17\x90UP\x83\x15a\x0C\x19W\x84T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x85U`@Q`\x01\x81R\x7F\xC7\xF5\x05\xB2\xF3q\xAE!u\xEEI\x13\xF4I\x9E\x1F&3\xA7\xB5\x93c!\xEE\xD1\xCD\xAE\xB6\x11Q\x81\xD2\x90` \x01`@Q\x80\x91\x03\x90\xA1[PPPPPPPPV[_a\x0C/\x83Z\x84a\x0C6V[\x93\x92PPPV[_\x80_\x80_\x85\x88\x88\xF1\x94\x93PPPPV[\x805`\x02\x81\x10a\x0CUW_\x80\xFD[\x91\x90PV[_` \x82\x84\x03\x12\x15a\x0CjW_\x80\xFD[a\x0C/\x82a\x0CGV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x0C\x94W_\x80\xFD[PV[_` \x82\x84\x03\x12\x15a\x0C\xA7W_\x80\xFD[\x815a\x0C/\x81a\x0CsV[` \x81R_\x82Q\x80` \x84\x01R\x80` \x85\x01`@\x85\x01^_`@\x82\x85\x01\x01R`@\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0`\x1F\x83\x01\x16\x84\x01\x01\x91PP\x92\x91PPV[\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_R`!`\x04R`$_\xFD[`\x02\x81\x10a\rgW\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_R`!`\x04R`$_\xFD[\x90RV[` \x81\x01a\ry\x82\x84a\r2V[\x92\x91PPV[_` \x82\x84\x03\x12\x15a\r\x8FW_\x80\xFD[P5\x91\x90PV[_\x80_``\x84\x86\x03\x12\x15a\r\xA8W_\x80\xFD[\x835a\r\xB3\x81a\x0CsV[\x92P` \x84\x015\x91Pa\r\xC8`@\x85\x01a\x0CGV[\x90P\x92P\x92P\x92V[_` \x82\x84\x03\x12\x15a\r\xE1W_\x80\xFD[\x81Qa\x0C/\x81a\x0CsV[`@\x81\x01a\r\xFA\x82\x85a\r2V[a\x0C/` \x83\x01\x84a\r2V[\x80\x82\x01\x80\x82\x11\x15a\ryW\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_R`\x11`\x04R`$_\xFD[\x84\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x81\x16` \x83\x01R\x83\x16`@\x82\x01R`\x80\x81\x01a\x0Ew``\x83\x01\x84a\r2V[\x95\x94PPPPPV\xFE\xA1dsolcC\0\x08\x19\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x6080604052600436106100d1575f3560e01c806382356d8a1161007c57806385b5b14d1161005757806385b5b14d14610276578063b49dc74114610295578063d0e12f90146102b4578063d3e5792b146102e3575f80fd5b806382356d8a1461020f5780638312f1491461024d57806384411d6514610262575f80fd5b80633ccfd60b116100ac5780633ccfd60b1461016c57806354fd4d501461018e57806366d003ac146101e3575f80fd5b80630d9019e1146100dc578063307f29621461012c5780633bbed4a01461014d575f80fd5b366100d857005b5f80fd5b3480156100e7575f80fd5b5060025473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b348015610137575f80fd5b5061014b610146366004610c5a565b6102f7565b005b348015610158575f80fd5b5061014b610167366004610c97565b61047a565b348015610177575f80fd5b506101806105de565b604051908152602001610123565b348015610199575f80fd5b506101d66040518060400160405280600581526020017f312e362e3000000000000000000000000000000000000000000000000000000081525081565b6040516101239190610cb2565b3480156101ee575f80fd5b506002546101029073ffffffffffffffffffffffffffffffffffffffff1681565b34801561021a575f80fd5b506002546102409074010000000000000000000000000000000000000000900460ff1681565b6040516101239190610d6b565b348015610258575f80fd5b5061018060015481565b34801561026d575f80fd5b506101805f5481565b348015610281575f80fd5b5061014b610290366004610d7f565b6108ec565b3480156102a0575f80fd5b5061014b6102af366004610d96565b610a0f565b3480156102bf575f80fd5b5060025474010000000000000000000000000000000000000000900460ff16610240565b3480156102ee575f80fd5b50600154610180565b73420000000000000000000000000000000000001873ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610354573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103789190610dd1565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146103dc576040517f7cd7e09f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600280547401000000000000000000000000000000000000000080820460ff1692849290917fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff9091169083600181111561043857610438610d05565b02179055507ff2ec44eb1c3b3acd547b76333eb2c4b27eee311860c57a9fdb04c95f62398fc8818360405161046e929190610dec565b60405180910390a15050565b73420000000000000000000000000000000000001873ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104d7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104fb9190610dd1565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461055f576040517f7cd7e09f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff000000000000000000000000000000000000000083168117909355604080519190921680825260208201939093527f62e69886a5df0ba8ffcacbfc1388754e7abd9bde24b036354c561f1acd4e4593910161046e565b5f60015447101561069c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f4665655661756c743a207769746864726177616c20616d6f756e74206d75737460448201527f2062652067726561746572207468616e206d696e696d756d207769746864726160648201527f77616c20616d6f756e7400000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b479050805f808282546106af9190610e07565b90915550506002546040805183815273ffffffffffffffffffffffffffffffffffffffff909216602083018190523383830152905190917fc8a211cc64b6ed1b50595a9fcb1932b6d1e5a6e8ef15b60e5b1f988ea9086bba919081900360600190a16002546040517f38e04cbeb8c10f8f568618aa75be0f10b6729b8b4237743b4de20cbcde2839ee916107649185918591339174010000000000000000000000000000000000000000900460ff1690610e3f565b60405180910390a1600160025474010000000000000000000000000000000000000000900460ff16600181111561079d5761079d610d05565b03610841575f6107ad8284610c23565b90508061083c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f4665655661756c743a206661696c656420746f2073656e642045544820746f2060448201527f4c322066656520726563697069656e74000000000000000000000000000000006064820152608401610693565b505090565b6040517fc2b3e5ac00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8216600482015262061a806024820152606060448201525f60648201527342000000000000000000000000000000000000169063c2b3e5ac9084906084015f604051808303818588803b1580156108d1575f80fd5b505af11580156108e3573d5f803e3d5ffd5b50505050505090565b73420000000000000000000000000000000000001873ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610949573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061096d9190610dd1565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146109d1576040517f7cd7e09f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600180549082905560408051828152602081018490527f895a067c78583e800418fabf3da26a9496aab2ff3429cebdf7fefa642b2e4203910161046e565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff165f81158015610a595750825b90505f8267ffffffffffffffff166001148015610a755750303b155b905081158015610a83575080155b15610aba576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001660011785558315610b1b5784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b6002805473ffffffffffffffffffffffffffffffffffffffff8a167fffffffffffffffffffffffff000000000000000000000000000000000000000082168117835560018a81558993927fffffffffffffffffffffff000000000000000000000000000000000000000000169091179074010000000000000000000000000000000000000000908490811115610bb357610bb3610d05565b02179055508315610c195784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050565b5f610c2f835a84610c36565b9392505050565b5f805f805f858888f1949350505050565b803560028110610c55575f80fd5b919050565b5f60208284031215610c6a575f80fd5b610c2f82610c47565b73ffffffffffffffffffffffffffffffffffffffff81168114610c94575f80fd5b50565b5f60208284031215610ca7575f80fd5b8135610c2f81610c73565b602081525f82518060208401528060208501604085015e5f6040828501015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011684010191505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b60028110610d67577f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b9052565b60208101610d798284610d32565b92915050565b5f60208284031215610d8f575f80fd5b5035919050565b5f805f60608486031215610da8575f80fd5b8335610db381610c73565b925060208401359150610dc860408501610c47565b90509250925092565b5f60208284031215610de1575f80fd5b8151610c2f81610c73565b60408101610dfa8285610d32565b610c2f6020830184610d32565b80820180821115610d79577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b84815273ffffffffffffffffffffffffffffffffffffffff84811660208301528316604082015260808101610e776060830184610d32565b9594505050505056fea164736f6c6343000819000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R`\x046\x10a\0\xD1W_5`\xE0\x1C\x80c\x825m\x8A\x11a\0|W\x80c\x85\xB5\xB1M\x11a\0WW\x80c\x85\xB5\xB1M\x14a\x02vW\x80c\xB4\x9D\xC7A\x14a\x02\x95W\x80c\xD0\xE1/\x90\x14a\x02\xB4W\x80c\xD3\xE5y+\x14a\x02\xE3W_\x80\xFD[\x80c\x825m\x8A\x14a\x02\x0FW\x80c\x83\x12\xF1I\x14a\x02MW\x80c\x84A\x1De\x14a\x02bW_\x80\xFD[\x80c<\xCF\xD6\x0B\x11a\0\xACW\x80c<\xCF\xD6\x0B\x14a\x01lW\x80cT\xFDMP\x14a\x01\x8EW\x80cf\xD0\x03\xAC\x14a\x01\xE3W_\x80\xFD[\x80c\r\x90\x19\xE1\x14a\0\xDCW\x80c0\x7F)b\x14a\x01,W\x80c;\xBE\xD4\xA0\x14a\x01MW_\x80\xFD[6a\0\xD8W\0[_\x80\xFD[4\x80\x15a\0\xE7W_\x80\xFD[P`\x02Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16[`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[4\x80\x15a\x017W_\x80\xFD[Pa\x01Ka\x01F6`\x04a\x0CZV[a\x02\xF7V[\0[4\x80\x15a\x01XW_\x80\xFD[Pa\x01Ka\x01g6`\x04a\x0C\x97V[a\x04zV[4\x80\x15a\x01wW_\x80\xFD[Pa\x01\x80a\x05\xDEV[`@Q\x90\x81R` \x01a\x01#V[4\x80\x15a\x01\x99W_\x80\xFD[Pa\x01\xD6`@Q\x80`@\x01`@R\x80`\x05\x81R` \x01\x7F1.6.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\x81RP\x81V[`@Qa\x01#\x91\x90a\x0C\xB2V[4\x80\x15a\x01\xEEW_\x80\xFD[P`\x02Ta\x01\x02\x90s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[4\x80\x15a\x02\x1AW_\x80\xFD[P`\x02Ta\x02@\x90t\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16\x81V[`@Qa\x01#\x91\x90a\rkV[4\x80\x15a\x02XW_\x80\xFD[Pa\x01\x80`\x01T\x81V[4\x80\x15a\x02mW_\x80\xFD[Pa\x01\x80_T\x81V[4\x80\x15a\x02\x81W_\x80\xFD[Pa\x01Ka\x02\x906`\x04a\r\x7FV[a\x08\xECV[4\x80\x15a\x02\xA0W_\x80\xFD[Pa\x01Ka\x02\xAF6`\x04a\r\x96V[a\n\x0FV[4\x80\x15a\x02\xBFW_\x80\xFD[P`\x02Tt\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16a\x02@V[4\x80\x15a\x02\xEEW_\x80\xFD[P`\x01Ta\x01\x80V[sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x18s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\x8D\xA5\xCB[`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x03TW=_\x80>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x03x\x91\x90a\r\xD1V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x163s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14a\x03\xDCW`@Q\x7F|\xD7\xE0\x9F\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\x01`@Q\x80\x91\x03\x90\xFD[`\x02\x80Tt\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x80\x82\x04`\xFF\x16\x92\x84\x92\x90\x91\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x90\x83`\x01\x81\x11\x15a\x048Wa\x048a\r\x05V[\x02\x17\x90UP\x7F\xF2\xECD\xEB\x1C;:\xCDT{v3>\xB2\xC4\xB2~\xEE1\x18`\xC5z\x9F\xDB\x04\xC9_b9\x8F\xC8\x81\x83`@Qa\x04n\x92\x91\x90a\r\xECV[`@Q\x80\x91\x03\x90\xA1PPV[sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x18s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\x8D\xA5\xCB[`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x04\xD7W=_\x80>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x04\xFB\x91\x90a\r\xD1V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x163s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14a\x05_W`@Q\x7F|\xD7\xE0\x9F\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\x01`@Q\x80\x91\x03\x90\xFD[`\x02\x80Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x81\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x83\x16\x81\x17\x90\x93U`@\x80Q\x91\x90\x92\x16\x80\x82R` \x82\x01\x93\x90\x93R\x7Fb\xE6\x98\x86\xA5\xDF\x0B\xA8\xFF\xCA\xCB\xFC\x13\x88uNz\xBD\x9B\xDE$\xB065LV\x1F\x1A\xCDNE\x93\x91\x01a\x04nV[_`\x01TG\x10\x15a\x06\x9CW`@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\x82\x01R`J`$\x82\x01R\x7FFeeVault: withdrawal amount must`D\x82\x01R\x7F be greater than minimum withdra`d\x82\x01R\x7Fwal amount\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x84\x82\x01R`\xA4\x01[`@Q\x80\x91\x03\x90\xFD[G\x90P\x80_\x80\x82\x82Ta\x06\xAF\x91\x90a\x0E\x07V[\x90\x91UPP`\x02T`@\x80Q\x83\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x92\x16` \x83\x01\x81\x90R3\x83\x83\x01R\x90Q\x90\x91\x7F\xC8\xA2\x11\xCCd\xB6\xED\x1BPYZ\x9F\xCB\x192\xB6\xD1\xE5\xA6\xE8\xEF\x15\xB6\x0E[\x1F\x98\x8E\xA9\x08k\xBA\x91\x90\x81\x90\x03``\x01\x90\xA1`\x02T`@Q\x7F8\xE0L\xBE\xB8\xC1\x0F\x8FV\x86\x18\xAAu\xBE\x0F\x10\xB6r\x9B\x8BB7t;M\xE2\x0C\xBC\xDE(9\xEE\x91a\x07d\x91\x85\x91\x85\x913\x91t\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16\x90a\x0E?V[`@Q\x80\x91\x03\x90\xA1`\x01`\x02Tt\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16`\x01\x81\x11\x15a\x07\x9DWa\x07\x9Da\r\x05V[\x03a\x08AW_a\x07\xAD\x82\x84a\x0C#V[\x90P\x80a\x08=_\xFD[PPPPPP\x90V[sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x18s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\x8D\xA5\xCB[`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\tIW=_\x80>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\tm\x91\x90a\r\xD1V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x163s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14a\t\xD1W`@Q\x7F|\xD7\xE0\x9F\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01\x80T\x90\x82\x90U`@\x80Q\x82\x81R` \x81\x01\x84\x90R\x7F\x89Z\x06|xX>\x80\x04\x18\xFA\xBF=\xA2j\x94\x96\xAA\xB2\xFF4)\xCE\xBD\xF7\xFE\xFAd+.B\x03\x91\x01a\x04nV[\x7F\xF0\xC5~\x16\x84\r\xF0@\xF1P\x88\xDC/\x81\xFE9\x1C9#\xBE\xC7>#\xA9f.\xFC\x9C\"\x9Cj\0\x80Th\x01\0\0\0\0\0\0\0\0\x81\x04`\xFF\x16\x15\x90g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16_\x81\x15\x80\x15a\nYWP\x82[\x90P_\x82g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\x01\x14\x80\x15a\nuWP0;\x15[\x90P\x81\x15\x80\x15a\n\x83WP\x80\x15[\x15a\n\xBAW`@Q\x7F\xF9.\xE8\xA9\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\x01`@Q\x80\x91\x03\x90\xFD[\x84T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\x16`\x01\x17\x85U\x83\x15a\x0B\x1BW\x84T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16h\x01\0\0\0\0\0\0\0\0\x17\x85U[`\x02\x80Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x8A\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x82\x16\x81\x17\x83U`\x01\x8A\x81U\x89\x93\x92\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x90\x91\x17\x90t\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x84\x90\x81\x11\x15a\x0B\xB3Wa\x0B\xB3a\r\x05V[\x02\x17\x90UP\x83\x15a\x0C\x19W\x84T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x85U`@Q`\x01\x81R\x7F\xC7\xF5\x05\xB2\xF3q\xAE!u\xEEI\x13\xF4I\x9E\x1F&3\xA7\xB5\x93c!\xEE\xD1\xCD\xAE\xB6\x11Q\x81\xD2\x90` \x01`@Q\x80\x91\x03\x90\xA1[PPPPPPPPV[_a\x0C/\x83Z\x84a\x0C6V[\x93\x92PPPV[_\x80_\x80_\x85\x88\x88\xF1\x94\x93PPPPV[\x805`\x02\x81\x10a\x0CUW_\x80\xFD[\x91\x90PV[_` \x82\x84\x03\x12\x15a\x0CjW_\x80\xFD[a\x0C/\x82a\x0CGV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x0C\x94W_\x80\xFD[PV[_` \x82\x84\x03\x12\x15a\x0C\xA7W_\x80\xFD[\x815a\x0C/\x81a\x0CsV[` \x81R_\x82Q\x80` \x84\x01R\x80` \x85\x01`@\x85\x01^_`@\x82\x85\x01\x01R`@\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0`\x1F\x83\x01\x16\x84\x01\x01\x91PP\x92\x91PPV[\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_R`!`\x04R`$_\xFD[`\x02\x81\x10a\rgW\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_R`!`\x04R`$_\xFD[\x90RV[` \x81\x01a\ry\x82\x84a\r2V[\x92\x91PPV[_` \x82\x84\x03\x12\x15a\r\x8FW_\x80\xFD[P5\x91\x90PV[_\x80_``\x84\x86\x03\x12\x15a\r\xA8W_\x80\xFD[\x835a\r\xB3\x81a\x0CsV[\x92P` \x84\x015\x91Pa\r\xC8`@\x85\x01a\x0CGV[\x90P\x92P\x92P\x92V[_` \x82\x84\x03\x12\x15a\r\xE1W_\x80\xFD[\x81Qa\x0C/\x81a\x0CsV[`@\x81\x01a\r\xFA\x82\x85a\r2V[a\x0C/` \x83\x01\x84a\r2V[\x80\x82\x01\x80\x82\x11\x15a\ryW\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_R`\x11`\x04R`$_\xFD[\x84\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x81\x16` \x83\x01R\x83\x16`@\x82\x01R`\x80\x81\x01a\x0Ew``\x83\x01\x84a\r2V[\x95\x94PPPPPV\xFE\xA1dsolcC\0\x08\x19\0\n", + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `FeeVault_OnlyProxyAdminOwner()` and selector `0x7cd7e09f`. +```solidity +error FeeVault_OnlyProxyAdminOwner(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct FeeVault_OnlyProxyAdminOwner; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: FeeVault_OnlyProxyAdminOwner) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for FeeVault_OnlyProxyAdminOwner { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for FeeVault_OnlyProxyAdminOwner { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "FeeVault_OnlyProxyAdminOwner()"; + const SELECTOR: [u8; 4] = [124u8, 215u8, 224u8, 159u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidInitialization()` and selector `0xf92ee8a9`. +```solidity +error InvalidInitialization(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidInitialization; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InvalidInitialization) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InvalidInitialization { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidInitialization { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidInitialization()"; + const SELECTOR: [u8; 4] = [249u8, 46u8, 232u8, 169u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `NotInitializing()` and selector `0xd7e6bcf8`. +```solidity +error NotInitializing(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct NotInitializing; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: NotInitializing) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for NotInitializing { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for NotInitializing { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "NotInitializing()"; + const SELECTOR: [u8; 4] = [215u8, 230u8, 188u8, 248u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `Initialized(uint64)` and selector `0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2`. +```solidity +event Initialized(uint64 version); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct Initialized { + #[allow(missing_docs)] + pub version: u64, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for Initialized { + type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,); + const SIGNATURE: &'static str = "Initialized(uint64)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 199u8, 245u8, 5u8, 178u8, 243u8, 113u8, 174u8, 33u8, 117u8, 238u8, 73u8, + 19u8, 244u8, 73u8, 158u8, 31u8, 38u8, 51u8, 167u8, 181u8, 147u8, 99u8, + 33u8, 238u8, 209u8, 205u8, 174u8, 182u8, 17u8, 81u8, 129u8, 210u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { version: data.0 } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.version), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(),) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for Initialized { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&Initialized> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &Initialized) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `MinWithdrawalAmountUpdated(uint256,uint256)` and selector `0x895a067c78583e800418fabf3da26a9496aab2ff3429cebdf7fefa642b2e4203`. +```solidity +event MinWithdrawalAmountUpdated(uint256 oldWithdrawalAmount, uint256 newWithdrawalAmount); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct MinWithdrawalAmountUpdated { + #[allow(missing_docs)] + pub oldWithdrawalAmount: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub newWithdrawalAmount: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for MinWithdrawalAmountUpdated { + type DataTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + ); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,); + const SIGNATURE: &'static str = "MinWithdrawalAmountUpdated(uint256,uint256)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 137u8, 90u8, 6u8, 124u8, 120u8, 88u8, 62u8, 128u8, 4u8, 24u8, 250u8, + 191u8, 61u8, 162u8, 106u8, 148u8, 150u8, 170u8, 178u8, 255u8, 52u8, 41u8, + 206u8, 189u8, 247u8, 254u8, 250u8, 100u8, 43u8, 46u8, 66u8, 3u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + oldWithdrawalAmount: data.0, + newWithdrawalAmount: data.1, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.oldWithdrawalAmount), + as alloy_sol_types::SolType>::tokenize(&self.newWithdrawalAmount), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(),) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for MinWithdrawalAmountUpdated { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&MinWithdrawalAmountUpdated> for alloy_sol_types::private::LogData { + #[inline] + fn from( + this: &MinWithdrawalAmountUpdated, + ) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `RecipientUpdated(address,address)` and selector `0x62e69886a5df0ba8ffcacbfc1388754e7abd9bde24b036354c561f1acd4e4593`. +```solidity +event RecipientUpdated(address oldRecipient, address newRecipient); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct RecipientUpdated { + #[allow(missing_docs)] + pub oldRecipient: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub newRecipient: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for RecipientUpdated { + type DataTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,); + const SIGNATURE: &'static str = "RecipientUpdated(address,address)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 98u8, 230u8, 152u8, 134u8, 165u8, 223u8, 11u8, 168u8, 255u8, 202u8, + 203u8, 252u8, 19u8, 136u8, 117u8, 78u8, 122u8, 189u8, 155u8, 222u8, 36u8, + 176u8, 54u8, 53u8, 76u8, 86u8, 31u8, 26u8, 205u8, 78u8, 69u8, 147u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + oldRecipient: data.0, + newRecipient: data.1, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + ::tokenize( + &self.oldRecipient, + ), + ::tokenize( + &self.newRecipient, + ), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(),) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for RecipientUpdated { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&RecipientUpdated> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &RecipientUpdated) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `Withdrawal(uint256,address,address)` and selector `0xc8a211cc64b6ed1b50595a9fcb1932b6d1e5a6e8ef15b60e5b1f988ea9086bba`. +```solidity +event Withdrawal(uint256 value, address to, address from); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct Withdrawal_0 { + #[allow(missing_docs)] + pub value: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub from: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for Withdrawal_0 { + type DataTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,); + const SIGNATURE: &'static str = "Withdrawal(uint256,address,address)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 200u8, 162u8, 17u8, 204u8, 100u8, 182u8, 237u8, 27u8, 80u8, 89u8, 90u8, + 159u8, 203u8, 25u8, 50u8, 182u8, 209u8, 229u8, 166u8, 232u8, 239u8, 21u8, + 182u8, 14u8, 91u8, 31u8, 152u8, 142u8, 169u8, 8u8, 107u8, 186u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + value: data.0, + to: data.1, + from: data.2, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.value), + ::tokenize( + &self.to, + ), + ::tokenize( + &self.from, + ), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(),) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for Withdrawal_0 { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&Withdrawal_0> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &Withdrawal_0) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `Withdrawal(uint256,address,address,uint8)` and selector `0x38e04cbeb8c10f8f568618aa75be0f10b6729b8b4237743b4de20cbcde2839ee`. +```solidity +event Withdrawal(uint256 value, address to, address from, Types.WithdrawalNetwork withdrawalNetwork); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct Withdrawal_1 { + #[allow(missing_docs)] + pub value: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub from: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub withdrawalNetwork: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for Withdrawal_1 { + type DataTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + Types::WithdrawalNetwork, + ); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,); + const SIGNATURE: &'static str = "Withdrawal(uint256,address,address,uint8)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 56u8, 224u8, 76u8, 190u8, 184u8, 193u8, 15u8, 143u8, 86u8, 134u8, 24u8, + 170u8, 117u8, 190u8, 15u8, 16u8, 182u8, 114u8, 155u8, 139u8, 66u8, 55u8, + 116u8, 59u8, 77u8, 226u8, 12u8, 188u8, 222u8, 40u8, 57u8, 238u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + value: data.0, + to: data.1, + from: data.2, + withdrawalNetwork: data.3, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.value), + ::tokenize( + &self.to, + ), + ::tokenize( + &self.from, + ), + ::tokenize( + &self.withdrawalNetwork, + ), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(),) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for Withdrawal_1 { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&Withdrawal_1> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &Withdrawal_1) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `WithdrawalNetworkUpdated(uint8,uint8)` and selector `0xf2ec44eb1c3b3acd547b76333eb2c4b27eee311860c57a9fdb04c95f62398fc8`. +```solidity +event WithdrawalNetworkUpdated(Types.WithdrawalNetwork oldWithdrawalNetwork, Types.WithdrawalNetwork newWithdrawalNetwork); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct WithdrawalNetworkUpdated { + #[allow(missing_docs)] + pub oldWithdrawalNetwork: ::RustType, + #[allow(missing_docs)] + pub newWithdrawalNetwork: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for WithdrawalNetworkUpdated { + type DataTuple<'a> = (Types::WithdrawalNetwork, Types::WithdrawalNetwork); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,); + const SIGNATURE: &'static str = "WithdrawalNetworkUpdated(uint8,uint8)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 242u8, 236u8, 68u8, 235u8, 28u8, 59u8, 58u8, 205u8, 84u8, 123u8, 118u8, + 51u8, 62u8, 178u8, 196u8, 178u8, 126u8, 238u8, 49u8, 24u8, 96u8, 197u8, + 122u8, 159u8, 219u8, 4u8, 201u8, 95u8, 98u8, 57u8, 143u8, 200u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + oldWithdrawalNetwork: data.0, + newWithdrawalNetwork: data.1, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + ::tokenize( + &self.oldWithdrawalNetwork, + ), + ::tokenize( + &self.newWithdrawalNetwork, + ), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(),) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for WithdrawalNetworkUpdated { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&WithdrawalNetworkUpdated> for alloy_sol_types::private::LogData { + #[inline] + fn from( + this: &WithdrawalNetworkUpdated, + ) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `MIN_WITHDRAWAL_AMOUNT()` and selector `0xd3e5792b`. +```solidity +function MIN_WITHDRAWAL_AMOUNT() external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct MIN_WITHDRAWAL_AMOUNTCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`MIN_WITHDRAWAL_AMOUNT()`](MIN_WITHDRAWAL_AMOUNTCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct MIN_WITHDRAWAL_AMOUNTReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: MIN_WITHDRAWAL_AMOUNTCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for MIN_WITHDRAWAL_AMOUNTCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: MIN_WITHDRAWAL_AMOUNTReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for MIN_WITHDRAWAL_AMOUNTReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for MIN_WITHDRAWAL_AMOUNTCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "MIN_WITHDRAWAL_AMOUNT()"; + const SELECTOR: [u8; 4] = [211u8, 229u8, 121u8, 43u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: MIN_WITHDRAWAL_AMOUNTReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: MIN_WITHDRAWAL_AMOUNTReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `RECIPIENT()` and selector `0x0d9019e1`. +```solidity +function RECIPIENT() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct RECIPIENTCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`RECIPIENT()`](RECIPIENTCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct RECIPIENTReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: RECIPIENTCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for RECIPIENTCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: RECIPIENTReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for RECIPIENTReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for RECIPIENTCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "RECIPIENT()"; + const SELECTOR: [u8; 4] = [13u8, 144u8, 25u8, 225u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: RECIPIENTReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: RECIPIENTReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `WITHDRAWAL_NETWORK()` and selector `0xd0e12f90`. +```solidity +function WITHDRAWAL_NETWORK() external view returns (Types.WithdrawalNetwork); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct WITHDRAWAL_NETWORKCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`WITHDRAWAL_NETWORK()`](WITHDRAWAL_NETWORKCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct WITHDRAWAL_NETWORKReturn { + #[allow(missing_docs)] + pub _0: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: WITHDRAWAL_NETWORKCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for WITHDRAWAL_NETWORKCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Types::WithdrawalNetwork,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: WITHDRAWAL_NETWORKReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for WITHDRAWAL_NETWORKReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for WITHDRAWAL_NETWORKCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (Types::WithdrawalNetwork,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "WITHDRAWAL_NETWORK()"; + const SELECTOR: [u8; 4] = [208u8, 225u8, 47u8, 144u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: WITHDRAWAL_NETWORKReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: WITHDRAWAL_NETWORKReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `initialize(address,uint256,uint8)` and selector `0xb49dc741`. +```solidity +function initialize(address _recipient, uint256 _minWithdrawalAmount, Types.WithdrawalNetwork _withdrawalNetwork) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct initializeCall { + #[allow(missing_docs)] + pub _recipient: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _minWithdrawalAmount: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _withdrawalNetwork: ::RustType, + } + ///Container type for the return parameters of the [`initialize(address,uint256,uint8)`](initializeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct initializeReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + Types::WithdrawalNetwork, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: initializeCall) -> Self { + ( + value._recipient, + value._minWithdrawalAmount, + value._withdrawalNetwork, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for initializeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _recipient: tuple.0, + _minWithdrawalAmount: tuple.1, + _withdrawalNetwork: tuple.2, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: initializeReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for initializeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl initializeReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for initializeCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + Types::WithdrawalNetwork, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = initializeReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "initialize(address,uint256,uint8)"; + const SELECTOR: [u8; 4] = [180u8, 157u8, 199u8, 65u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._recipient, + ), + as alloy_sol_types::SolType>::tokenize(&self._minWithdrawalAmount), + ::tokenize( + &self._withdrawalNetwork, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + initializeReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `minWithdrawalAmount()` and selector `0x8312f149`. +```solidity +function minWithdrawalAmount() external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct minWithdrawalAmountCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`minWithdrawalAmount()`](minWithdrawalAmountCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct minWithdrawalAmountReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: minWithdrawalAmountCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for minWithdrawalAmountCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: minWithdrawalAmountReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for minWithdrawalAmountReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for minWithdrawalAmountCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "minWithdrawalAmount()"; + const SELECTOR: [u8; 4] = [131u8, 18u8, 241u8, 73u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: minWithdrawalAmountReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: minWithdrawalAmountReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `recipient()` and selector `0x66d003ac`. +```solidity +function recipient() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct recipientCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`recipient()`](recipientCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct recipientReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: recipientCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for recipientCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: recipientReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for recipientReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for recipientCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "recipient()"; + const SELECTOR: [u8; 4] = [102u8, 208u8, 3u8, 172u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: recipientReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: recipientReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `setMinWithdrawalAmount(uint256)` and selector `0x85b5b14d`. +```solidity +function setMinWithdrawalAmount(uint256 _newMinWithdrawalAmount) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setMinWithdrawalAmountCall { + #[allow(missing_docs)] + pub _newMinWithdrawalAmount: alloy::sol_types::private::primitives::aliases::U256, + } + ///Container type for the return parameters of the [`setMinWithdrawalAmount(uint256)`](setMinWithdrawalAmountCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setMinWithdrawalAmountReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: setMinWithdrawalAmountCall) -> Self { + (value._newMinWithdrawalAmount,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for setMinWithdrawalAmountCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _newMinWithdrawalAmount: tuple.0, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: setMinWithdrawalAmountReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for setMinWithdrawalAmountReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl setMinWithdrawalAmountReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken< + '_, + > { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for setMinWithdrawalAmountCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = setMinWithdrawalAmountReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "setMinWithdrawalAmount(uint256)"; + const SELECTOR: [u8; 4] = [133u8, 181u8, 177u8, 77u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize( + &self._newMinWithdrawalAmount, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + setMinWithdrawalAmountReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `setRecipient(address)` and selector `0x3bbed4a0`. +```solidity +function setRecipient(address _newRecipient) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setRecipientCall { + #[allow(missing_docs)] + pub _newRecipient: alloy::sol_types::private::Address, + } + ///Container type for the return parameters of the [`setRecipient(address)`](setRecipientCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setRecipientReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: setRecipientCall) -> Self { + (value._newRecipient,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for setRecipientCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _newRecipient: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: setRecipientReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for setRecipientReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl setRecipientReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for setRecipientCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = setRecipientReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "setRecipient(address)"; + const SELECTOR: [u8; 4] = [59u8, 190u8, 212u8, 160u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._newRecipient, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + setRecipientReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `setWithdrawalNetwork(uint8)` and selector `0x307f2962`. +```solidity +function setWithdrawalNetwork(Types.WithdrawalNetwork _newWithdrawalNetwork) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setWithdrawalNetworkCall { + #[allow(missing_docs)] + pub _newWithdrawalNetwork: ::RustType, + } + ///Container type for the return parameters of the [`setWithdrawalNetwork(uint8)`](setWithdrawalNetworkCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setWithdrawalNetworkReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Types::WithdrawalNetwork,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: setWithdrawalNetworkCall) -> Self { + (value._newWithdrawalNetwork,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for setWithdrawalNetworkCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _newWithdrawalNetwork: tuple.0, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: setWithdrawalNetworkReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for setWithdrawalNetworkReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl setWithdrawalNetworkReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken< + '_, + > { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for setWithdrawalNetworkCall { + type Parameters<'a> = (Types::WithdrawalNetwork,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = setWithdrawalNetworkReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "setWithdrawalNetwork(uint8)"; + const SELECTOR: [u8; 4] = [48u8, 127u8, 41u8, 98u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._newWithdrawalNetwork, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + setWithdrawalNetworkReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `totalProcessed()` and selector `0x84411d65`. +```solidity +function totalProcessed() external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct totalProcessedCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`totalProcessed()`](totalProcessedCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct totalProcessedReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: totalProcessedCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for totalProcessedCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: totalProcessedReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for totalProcessedReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for totalProcessedCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "totalProcessed()"; + const SELECTOR: [u8; 4] = [132u8, 65u8, 29u8, 101u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: totalProcessedReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: totalProcessedReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `version()` and selector `0x54fd4d50`. +```solidity +function version() external view returns (string memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`version()`](versionCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for versionCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::String; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "version()"; + const SELECTOR: [u8; 4] = [84u8, 253u8, 77u8, 80u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `withdraw()` and selector `0x3ccfd60b`. +```solidity +function withdraw() external returns (uint256 value_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct withdrawCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`withdraw()`](withdrawCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct withdrawReturn { + #[allow(missing_docs)] + pub value_: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: withdrawCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for withdrawCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: withdrawReturn) -> Self { + (value.value_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for withdrawReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { value_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for withdrawCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "withdraw()"; + const SELECTOR: [u8; 4] = [60u8, 207u8, 214u8, 11u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: withdrawReturn = r.into(); + r.value_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: withdrawReturn = r.into(); + r.value_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `withdrawalNetwork()` and selector `0x82356d8a`. +```solidity +function withdrawalNetwork() external view returns (Types.WithdrawalNetwork); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct withdrawalNetworkCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`withdrawalNetwork()`](withdrawalNetworkCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct withdrawalNetworkReturn { + #[allow(missing_docs)] + pub _0: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: withdrawalNetworkCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for withdrawalNetworkCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Types::WithdrawalNetwork,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: withdrawalNetworkReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for withdrawalNetworkReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for withdrawalNetworkCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (Types::WithdrawalNetwork,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "withdrawalNetwork()"; + const SELECTOR: [u8; 4] = [130u8, 53u8, 109u8, 138u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: withdrawalNetworkReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: withdrawalNetworkReturn = r.into(); + r._0 + }) + } + } + }; + ///Container for all the [`BaseFeeVault`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum BaseFeeVaultCalls { + #[allow(missing_docs)] + MIN_WITHDRAWAL_AMOUNT(MIN_WITHDRAWAL_AMOUNTCall), + #[allow(missing_docs)] + RECIPIENT(RECIPIENTCall), + #[allow(missing_docs)] + WITHDRAWAL_NETWORK(WITHDRAWAL_NETWORKCall), + #[allow(missing_docs)] + initialize(initializeCall), + #[allow(missing_docs)] + minWithdrawalAmount(minWithdrawalAmountCall), + #[allow(missing_docs)] + recipient(recipientCall), + #[allow(missing_docs)] + setMinWithdrawalAmount(setMinWithdrawalAmountCall), + #[allow(missing_docs)] + setRecipient(setRecipientCall), + #[allow(missing_docs)] + setWithdrawalNetwork(setWithdrawalNetworkCall), + #[allow(missing_docs)] + totalProcessed(totalProcessedCall), + #[allow(missing_docs)] + version(versionCall), + #[allow(missing_docs)] + withdraw(withdrawCall), + #[allow(missing_docs)] + withdrawalNetwork(withdrawalNetworkCall), + } + impl BaseFeeVaultCalls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [13u8, 144u8, 25u8, 225u8], + [48u8, 127u8, 41u8, 98u8], + [59u8, 190u8, 212u8, 160u8], + [60u8, 207u8, 214u8, 11u8], + [84u8, 253u8, 77u8, 80u8], + [102u8, 208u8, 3u8, 172u8], + [130u8, 53u8, 109u8, 138u8], + [131u8, 18u8, 241u8, 73u8], + [132u8, 65u8, 29u8, 101u8], + [133u8, 181u8, 177u8, 77u8], + [180u8, 157u8, 199u8, 65u8], + [208u8, 225u8, 47u8, 144u8], + [211u8, 229u8, 121u8, 43u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(RECIPIENT), + ::core::stringify!(setWithdrawalNetwork), + ::core::stringify!(setRecipient), + ::core::stringify!(withdraw), + ::core::stringify!(version), + ::core::stringify!(recipient), + ::core::stringify!(withdrawalNetwork), + ::core::stringify!(minWithdrawalAmount), + ::core::stringify!(totalProcessed), + ::core::stringify!(setMinWithdrawalAmount), + ::core::stringify!(initialize), + ::core::stringify!(WITHDRAWAL_NETWORK), + ::core::stringify!(MIN_WITHDRAWAL_AMOUNT), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for BaseFeeVaultCalls { + const NAME: &'static str = "BaseFeeVaultCalls"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 13usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::MIN_WITHDRAWAL_AMOUNT(_) => { + ::SELECTOR + } + Self::RECIPIENT(_) => { + ::SELECTOR + } + Self::WITHDRAWAL_NETWORK(_) => { + ::SELECTOR + } + Self::initialize(_) => { + ::SELECTOR + } + Self::minWithdrawalAmount(_) => { + ::SELECTOR + } + Self::recipient(_) => { + ::SELECTOR + } + Self::setMinWithdrawalAmount(_) => { + ::SELECTOR + } + Self::setRecipient(_) => { + ::SELECTOR + } + Self::setWithdrawalNetwork(_) => { + ::SELECTOR + } + Self::totalProcessed(_) => { + ::SELECTOR + } + Self::version(_) => ::SELECTOR, + Self::withdraw(_) => ::SELECTOR, + Self::withdrawalNetwork(_) => { + ::SELECTOR + } + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn RECIPIENT( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(BaseFeeVaultCalls::RECIPIENT) + } + RECIPIENT + }, + { + fn setWithdrawalNetwork( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(BaseFeeVaultCalls::setWithdrawalNetwork) + } + setWithdrawalNetwork + }, + { + fn setRecipient( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(BaseFeeVaultCalls::setRecipient) + } + setRecipient + }, + { + fn withdraw( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(BaseFeeVaultCalls::withdraw) + } + withdraw + }, + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(BaseFeeVaultCalls::version) + } + version + }, + { + fn recipient( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(BaseFeeVaultCalls::recipient) + } + recipient + }, + { + fn withdrawalNetwork( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(BaseFeeVaultCalls::withdrawalNetwork) + } + withdrawalNetwork + }, + { + fn minWithdrawalAmount( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(BaseFeeVaultCalls::minWithdrawalAmount) + } + minWithdrawalAmount + }, + { + fn totalProcessed( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(BaseFeeVaultCalls::totalProcessed) + } + totalProcessed + }, + { + fn setMinWithdrawalAmount( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(BaseFeeVaultCalls::setMinWithdrawalAmount) + } + setMinWithdrawalAmount + }, + { + fn initialize( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(BaseFeeVaultCalls::initialize) + } + initialize + }, + { + fn WITHDRAWAL_NETWORK( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(BaseFeeVaultCalls::WITHDRAWAL_NETWORK) + } + WITHDRAWAL_NETWORK + }, + { + fn MIN_WITHDRAWAL_AMOUNT( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(BaseFeeVaultCalls::MIN_WITHDRAWAL_AMOUNT) + } + MIN_WITHDRAWAL_AMOUNT + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn RECIPIENT( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(BaseFeeVaultCalls::RECIPIENT) + } + RECIPIENT + }, + { + fn setWithdrawalNetwork( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(BaseFeeVaultCalls::setWithdrawalNetwork) + } + setWithdrawalNetwork + }, + { + fn setRecipient( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(BaseFeeVaultCalls::setRecipient) + } + setRecipient + }, + { + fn withdraw( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(BaseFeeVaultCalls::withdraw) + } + withdraw + }, + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(BaseFeeVaultCalls::version) + } + version + }, + { + fn recipient( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(BaseFeeVaultCalls::recipient) + } + recipient + }, + { + fn withdrawalNetwork( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(BaseFeeVaultCalls::withdrawalNetwork) + } + withdrawalNetwork + }, + { + fn minWithdrawalAmount( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(BaseFeeVaultCalls::minWithdrawalAmount) + } + minWithdrawalAmount + }, + { + fn totalProcessed( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(BaseFeeVaultCalls::totalProcessed) + } + totalProcessed + }, + { + fn setMinWithdrawalAmount( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(BaseFeeVaultCalls::setMinWithdrawalAmount) + } + setMinWithdrawalAmount + }, + { + fn initialize( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(BaseFeeVaultCalls::initialize) + } + initialize + }, + { + fn WITHDRAWAL_NETWORK( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(BaseFeeVaultCalls::WITHDRAWAL_NETWORK) + } + WITHDRAWAL_NETWORK + }, + { + fn MIN_WITHDRAWAL_AMOUNT( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(BaseFeeVaultCalls::MIN_WITHDRAWAL_AMOUNT) + } + MIN_WITHDRAWAL_AMOUNT + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::MIN_WITHDRAWAL_AMOUNT(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::RECIPIENT(inner) => { + ::abi_encoded_size(inner) + } + Self::WITHDRAWAL_NETWORK(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::initialize(inner) => { + ::abi_encoded_size(inner) + } + Self::minWithdrawalAmount(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::recipient(inner) => { + ::abi_encoded_size(inner) + } + Self::setMinWithdrawalAmount(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::setRecipient(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::setWithdrawalNetwork(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::totalProcessed(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::version(inner) => { + ::abi_encoded_size(inner) + } + Self::withdraw(inner) => { + ::abi_encoded_size(inner) + } + Self::withdrawalNetwork(inner) => { + ::abi_encoded_size( + inner, + ) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::MIN_WITHDRAWAL_AMOUNT(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::RECIPIENT(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::WITHDRAWAL_NETWORK(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::initialize(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::minWithdrawalAmount(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::recipient(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::setMinWithdrawalAmount(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::setRecipient(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::setWithdrawalNetwork(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::totalProcessed(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::version(inner) => { + ::abi_encode_raw(inner, out) + } + Self::withdraw(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::withdrawalNetwork(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + } + } + } + ///Container for all the [`BaseFeeVault`](self) custom errors. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum BaseFeeVaultErrors { + #[allow(missing_docs)] + FeeVault_OnlyProxyAdminOwner(FeeVault_OnlyProxyAdminOwner), + #[allow(missing_docs)] + InvalidInitialization(InvalidInitialization), + #[allow(missing_docs)] + NotInitializing(NotInitializing), + } + impl BaseFeeVaultErrors { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [124u8, 215u8, 224u8, 159u8], + [215u8, 230u8, 188u8, 248u8], + [249u8, 46u8, 232u8, 169u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(FeeVault_OnlyProxyAdminOwner), + ::core::stringify!(NotInitializing), + ::core::stringify!(InvalidInitialization), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for BaseFeeVaultErrors { + const NAME: &'static str = "BaseFeeVaultErrors"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 3usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::FeeVault_OnlyProxyAdminOwner(_) => { + ::SELECTOR + } + Self::InvalidInitialization(_) => { + ::SELECTOR + } + Self::NotInitializing(_) => { + ::SELECTOR + } + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn FeeVault_OnlyProxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(BaseFeeVaultErrors::FeeVault_OnlyProxyAdminOwner) + } + FeeVault_OnlyProxyAdminOwner + }, + { + fn NotInitializing( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(BaseFeeVaultErrors::NotInitializing) + } + NotInitializing + }, + { + fn InvalidInitialization( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(BaseFeeVaultErrors::InvalidInitialization) + } + InvalidInitialization + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn FeeVault_OnlyProxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(BaseFeeVaultErrors::FeeVault_OnlyProxyAdminOwner) + } + FeeVault_OnlyProxyAdminOwner + }, + { + fn NotInitializing( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(BaseFeeVaultErrors::NotInitializing) + } + NotInitializing + }, + { + fn InvalidInitialization( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(BaseFeeVaultErrors::InvalidInitialization) + } + InvalidInitialization + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::FeeVault_OnlyProxyAdminOwner(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::InvalidInitialization(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::NotInitializing(inner) => { + ::abi_encoded_size( + inner, + ) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::FeeVault_OnlyProxyAdminOwner(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidInitialization(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::NotInitializing(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + } + } + } + ///Container for all the [`BaseFeeVault`](self) events. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum BaseFeeVaultEvents { + #[allow(missing_docs)] + Initialized(Initialized), + #[allow(missing_docs)] + MinWithdrawalAmountUpdated(MinWithdrawalAmountUpdated), + #[allow(missing_docs)] + RecipientUpdated(RecipientUpdated), + #[allow(missing_docs)] + Withdrawal_0(Withdrawal_0), + #[allow(missing_docs)] + Withdrawal_1(Withdrawal_1), + #[allow(missing_docs)] + WithdrawalNetworkUpdated(WithdrawalNetworkUpdated), + } + impl BaseFeeVaultEvents { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 32usize]] = &[ + [ + 56u8, 224u8, 76u8, 190u8, 184u8, 193u8, 15u8, 143u8, 86u8, 134u8, 24u8, + 170u8, 117u8, 190u8, 15u8, 16u8, 182u8, 114u8, 155u8, 139u8, 66u8, 55u8, + 116u8, 59u8, 77u8, 226u8, 12u8, 188u8, 222u8, 40u8, 57u8, 238u8, + ], + [ + 98u8, 230u8, 152u8, 134u8, 165u8, 223u8, 11u8, 168u8, 255u8, 202u8, + 203u8, 252u8, 19u8, 136u8, 117u8, 78u8, 122u8, 189u8, 155u8, 222u8, 36u8, + 176u8, 54u8, 53u8, 76u8, 86u8, 31u8, 26u8, 205u8, 78u8, 69u8, 147u8, + ], + [ + 137u8, 90u8, 6u8, 124u8, 120u8, 88u8, 62u8, 128u8, 4u8, 24u8, 250u8, + 191u8, 61u8, 162u8, 106u8, 148u8, 150u8, 170u8, 178u8, 255u8, 52u8, 41u8, + 206u8, 189u8, 247u8, 254u8, 250u8, 100u8, 43u8, 46u8, 66u8, 3u8, + ], + [ + 199u8, 245u8, 5u8, 178u8, 243u8, 113u8, 174u8, 33u8, 117u8, 238u8, 73u8, + 19u8, 244u8, 73u8, 158u8, 31u8, 38u8, 51u8, 167u8, 181u8, 147u8, 99u8, + 33u8, 238u8, 209u8, 205u8, 174u8, 182u8, 17u8, 81u8, 129u8, 210u8, + ], + [ + 200u8, 162u8, 17u8, 204u8, 100u8, 182u8, 237u8, 27u8, 80u8, 89u8, 90u8, + 159u8, 203u8, 25u8, 50u8, 182u8, 209u8, 229u8, 166u8, 232u8, 239u8, 21u8, + 182u8, 14u8, 91u8, 31u8, 152u8, 142u8, 169u8, 8u8, 107u8, 186u8, + ], + [ + 242u8, 236u8, 68u8, 235u8, 28u8, 59u8, 58u8, 205u8, 84u8, 123u8, 118u8, + 51u8, 62u8, 178u8, 196u8, 178u8, 126u8, 238u8, 49u8, 24u8, 96u8, 197u8, + 122u8, 159u8, 219u8, 4u8, 201u8, 95u8, 98u8, 57u8, 143u8, 200u8, + ], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(Withdrawal_1), + ::core::stringify!(RecipientUpdated), + ::core::stringify!(MinWithdrawalAmountUpdated), + ::core::stringify!(Initialized), + ::core::stringify!(Withdrawal_0), + ::core::stringify!(WithdrawalNetworkUpdated), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolEventInterface for BaseFeeVaultEvents { + const NAME: &'static str = "BaseFeeVaultEvents"; + const COUNT: usize = 6usize; + fn decode_raw_log( + topics: &[alloy_sol_types::Word], + data: &[u8], + ) -> alloy_sol_types::Result { + match topics.first().copied() { + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::Initialized) + } + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::MinWithdrawalAmountUpdated) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::RecipientUpdated) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::Withdrawal_0) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::Withdrawal_1) + } + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::WithdrawalNetworkUpdated) + } + _ => { + alloy_sol_types::private::Err(alloy_sol_types::Error::InvalidLog { + name: ::NAME, + log: alloy_sol_types::private::Box::new( + alloy_sol_types::private::LogData::new_unchecked( + topics.to_vec(), + data.to_vec().into(), + ), + ), + }) + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for BaseFeeVaultEvents { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + match self { + Self::Initialized(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::MinWithdrawalAmountUpdated(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::RecipientUpdated(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::Withdrawal_0(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::Withdrawal_1(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::WithdrawalNetworkUpdated(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + } + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + match self { + Self::Initialized(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::MinWithdrawalAmountUpdated(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::RecipientUpdated(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::Withdrawal_0(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::Withdrawal_1(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::WithdrawalNetworkUpdated(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`BaseFeeVault`](self) contract instance. + +See the [wrapper's documentation](`BaseFeeVaultInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> BaseFeeVaultInstance { + BaseFeeVaultInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + BaseFeeVaultInstance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + BaseFeeVaultInstance::::deploy_builder(__provider) + } + /**A [`BaseFeeVault`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`BaseFeeVault`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct BaseFeeVaultInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for BaseFeeVaultInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("BaseFeeVaultInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > BaseFeeVaultInstance { + /**Creates a new wrapper around an on-chain [`BaseFeeVault`](self) contract instance. + +See the [wrapper's documentation](`BaseFeeVaultInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl BaseFeeVaultInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> BaseFeeVaultInstance { + BaseFeeVaultInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > BaseFeeVaultInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`MIN_WITHDRAWAL_AMOUNT`] function. + pub fn MIN_WITHDRAWAL_AMOUNT( + &self, + ) -> alloy_contract::SolCallBuilder<&P, MIN_WITHDRAWAL_AMOUNTCall, N> { + self.call_builder(&MIN_WITHDRAWAL_AMOUNTCall) + } + ///Creates a new call builder for the [`RECIPIENT`] function. + pub fn RECIPIENT(&self) -> alloy_contract::SolCallBuilder<&P, RECIPIENTCall, N> { + self.call_builder(&RECIPIENTCall) + } + ///Creates a new call builder for the [`WITHDRAWAL_NETWORK`] function. + pub fn WITHDRAWAL_NETWORK( + &self, + ) -> alloy_contract::SolCallBuilder<&P, WITHDRAWAL_NETWORKCall, N> { + self.call_builder(&WITHDRAWAL_NETWORKCall) + } + ///Creates a new call builder for the [`initialize`] function. + pub fn initialize( + &self, + _recipient: alloy::sol_types::private::Address, + _minWithdrawalAmount: alloy::sol_types::private::primitives::aliases::U256, + _withdrawalNetwork: ::RustType, + ) -> alloy_contract::SolCallBuilder<&P, initializeCall, N> { + self.call_builder( + &initializeCall { + _recipient, + _minWithdrawalAmount, + _withdrawalNetwork, + }, + ) + } + ///Creates a new call builder for the [`minWithdrawalAmount`] function. + pub fn minWithdrawalAmount( + &self, + ) -> alloy_contract::SolCallBuilder<&P, minWithdrawalAmountCall, N> { + self.call_builder(&minWithdrawalAmountCall) + } + ///Creates a new call builder for the [`recipient`] function. + pub fn recipient(&self) -> alloy_contract::SolCallBuilder<&P, recipientCall, N> { + self.call_builder(&recipientCall) + } + ///Creates a new call builder for the [`setMinWithdrawalAmount`] function. + pub fn setMinWithdrawalAmount( + &self, + _newMinWithdrawalAmount: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, setMinWithdrawalAmountCall, N> { + self.call_builder( + &setMinWithdrawalAmountCall { + _newMinWithdrawalAmount, + }, + ) + } + ///Creates a new call builder for the [`setRecipient`] function. + pub fn setRecipient( + &self, + _newRecipient: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, setRecipientCall, N> { + self.call_builder(&setRecipientCall { _newRecipient }) + } + ///Creates a new call builder for the [`setWithdrawalNetwork`] function. + pub fn setWithdrawalNetwork( + &self, + _newWithdrawalNetwork: ::RustType, + ) -> alloy_contract::SolCallBuilder<&P, setWithdrawalNetworkCall, N> { + self.call_builder( + &setWithdrawalNetworkCall { + _newWithdrawalNetwork, + }, + ) + } + ///Creates a new call builder for the [`totalProcessed`] function. + pub fn totalProcessed( + &self, + ) -> alloy_contract::SolCallBuilder<&P, totalProcessedCall, N> { + self.call_builder(&totalProcessedCall) + } + ///Creates a new call builder for the [`version`] function. + pub fn version(&self) -> alloy_contract::SolCallBuilder<&P, versionCall, N> { + self.call_builder(&versionCall) + } + ///Creates a new call builder for the [`withdraw`] function. + pub fn withdraw(&self) -> alloy_contract::SolCallBuilder<&P, withdrawCall, N> { + self.call_builder(&withdrawCall) + } + ///Creates a new call builder for the [`withdrawalNetwork`] function. + pub fn withdrawalNetwork( + &self, + ) -> alloy_contract::SolCallBuilder<&P, withdrawalNetworkCall, N> { + self.call_builder(&withdrawalNetworkCall) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > BaseFeeVaultInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + ///Creates a new event filter for the [`Initialized`] event. + pub fn Initialized_filter(&self) -> alloy_contract::Event<&P, Initialized, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`MinWithdrawalAmountUpdated`] event. + pub fn MinWithdrawalAmountUpdated_filter( + &self, + ) -> alloy_contract::Event<&P, MinWithdrawalAmountUpdated, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`RecipientUpdated`] event. + pub fn RecipientUpdated_filter( + &self, + ) -> alloy_contract::Event<&P, RecipientUpdated, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`Withdrawal_0`] event. + pub fn Withdrawal_0_filter(&self) -> alloy_contract::Event<&P, Withdrawal_0, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`Withdrawal_1`] event. + pub fn Withdrawal_1_filter(&self) -> alloy_contract::Event<&P, Withdrawal_1, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`WithdrawalNetworkUpdated`] event. + pub fn WithdrawalNetworkUpdated_filter( + &self, + ) -> alloy_contract::Event<&P, WithdrawalNetworkUpdated, N> { + self.event_filter::() + } + } +} diff --git a/bindings/rust/src/blueprint.rs b/bindings/rust/src/blueprint.rs new file mode 100644 index 000000000..1ecfc42b4 --- /dev/null +++ b/bindings/rust/src/blueprint.rs @@ -0,0 +1,1320 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface Blueprint { + error BytesArrayTooLong(); + error DeploymentFailed(); + error EmptyInitcode(); + error IdentityPrecompileCallFailed(); + error NotABlueprint(); + error ReservedBitsSet(); + error UnexpectedPreambleData(bytes data); + error UnsupportedERCVersion(uint8 version); +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "error", + "name": "BytesArrayTooLong", + "inputs": [] + }, + { + "type": "error", + "name": "DeploymentFailed", + "inputs": [] + }, + { + "type": "error", + "name": "EmptyInitcode", + "inputs": [] + }, + { + "type": "error", + "name": "IdentityPrecompileCallFailed", + "inputs": [] + }, + { + "type": "error", + "name": "NotABlueprint", + "inputs": [] + }, + { + "type": "error", + "name": "ReservedBitsSet", + "inputs": [] + }, + { + "type": "error", + "name": "UnexpectedPreambleData", + "inputs": [ + { + "name": "data", + "type": "bytes", + "internalType": "bytes" + } + ] + }, + { + "type": "error", + "name": "UnsupportedERCVersion", + "inputs": [ + { + "name": "version", + "type": "uint8", + "internalType": "uint8" + } + ] + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod Blueprint { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`-`7`\x0B\x82\x82\x829\x80Q`\0\x1A`s\x14`*WcNH{q`\xE0\x1B`\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`\0\x80\xFD\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + 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`\0\x80\xFD\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `BytesArrayTooLong()` and selector `0x5623dc1c`. +```solidity +error BytesArrayTooLong(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct BytesArrayTooLong; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: BytesArrayTooLong) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for BytesArrayTooLong { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for BytesArrayTooLong { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "BytesArrayTooLong()"; + const SELECTOR: [u8; 4] = [86u8, 35u8, 220u8, 28u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `DeploymentFailed()` and selector `0x30116425`. +```solidity +error DeploymentFailed(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct DeploymentFailed; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: DeploymentFailed) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for DeploymentFailed { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for DeploymentFailed { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "DeploymentFailed()"; + const SELECTOR: [u8; 4] = [48u8, 17u8, 100u8, 37u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `EmptyInitcode()` and selector `0x028512d4`. +```solidity +error EmptyInitcode(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct EmptyInitcode; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: EmptyInitcode) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for EmptyInitcode { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for EmptyInitcode { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "EmptyInitcode()"; + const SELECTOR: [u8; 4] = [2u8, 133u8, 18u8, 212u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `IdentityPrecompileCallFailed()` and selector `0xf7046f30`. +```solidity +error IdentityPrecompileCallFailed(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct IdentityPrecompileCallFailed; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: IdentityPrecompileCallFailed) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for IdentityPrecompileCallFailed { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for IdentityPrecompileCallFailed { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "IdentityPrecompileCallFailed()"; + const SELECTOR: [u8; 4] = [247u8, 4u8, 111u8, 48u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `NotABlueprint()` and selector `0x31f56e1f`. +```solidity +error NotABlueprint(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct NotABlueprint; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: NotABlueprint) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for NotABlueprint { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for NotABlueprint { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "NotABlueprint()"; + const SELECTOR: [u8; 4] = [49u8, 245u8, 110u8, 31u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ReservedBitsSet()` and selector `0xb214675a`. +```solidity +error ReservedBitsSet(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ReservedBitsSet; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ReservedBitsSet) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ReservedBitsSet { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ReservedBitsSet { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ReservedBitsSet()"; + const SELECTOR: [u8; 4] = [178u8, 20u8, 103u8, 90u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `UnexpectedPreambleData(bytes)` and selector `0x57a05835`. +```solidity +error UnexpectedPreambleData(bytes data); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct UnexpectedPreambleData { + #[allow(missing_docs)] + pub data: alloy::sol_types::private::Bytes, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bytes,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Bytes,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: UnexpectedPreambleData) -> Self { + (value.data,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for UnexpectedPreambleData { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { data: tuple.0 } + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for UnexpectedPreambleData { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "UnexpectedPreambleData(bytes)"; + const SELECTOR: [u8; 4] = [87u8, 160u8, 88u8, 53u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.data, + ), + ) + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `UnsupportedERCVersion(uint8)` and selector `0x1a66c692`. +```solidity +error UnsupportedERCVersion(uint8 version); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct UnsupportedERCVersion { + #[allow(missing_docs)] + pub version: u8, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<8>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u8,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: UnsupportedERCVersion) -> Self { + (value.version,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for UnsupportedERCVersion { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { version: tuple.0 } + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for UnsupportedERCVersion { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "UnsupportedERCVersion(uint8)"; + const SELECTOR: [u8; 4] = [26u8, 102u8, 198u8, 146u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.version), + ) + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + ///Container for all the [`Blueprint`](self) custom errors. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum BlueprintErrors { + #[allow(missing_docs)] + BytesArrayTooLong(BytesArrayTooLong), + #[allow(missing_docs)] + DeploymentFailed(DeploymentFailed), + #[allow(missing_docs)] + EmptyInitcode(EmptyInitcode), + #[allow(missing_docs)] + IdentityPrecompileCallFailed(IdentityPrecompileCallFailed), + #[allow(missing_docs)] + NotABlueprint(NotABlueprint), + #[allow(missing_docs)] + ReservedBitsSet(ReservedBitsSet), + #[allow(missing_docs)] + UnexpectedPreambleData(UnexpectedPreambleData), + #[allow(missing_docs)] + UnsupportedERCVersion(UnsupportedERCVersion), + } + impl BlueprintErrors { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [2u8, 133u8, 18u8, 212u8], + [26u8, 102u8, 198u8, 146u8], + [48u8, 17u8, 100u8, 37u8], + [49u8, 245u8, 110u8, 31u8], + [86u8, 35u8, 220u8, 28u8], + [87u8, 160u8, 88u8, 53u8], + [178u8, 20u8, 103u8, 90u8], + [247u8, 4u8, 111u8, 48u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(EmptyInitcode), + ::core::stringify!(UnsupportedERCVersion), + ::core::stringify!(DeploymentFailed), + ::core::stringify!(NotABlueprint), + ::core::stringify!(BytesArrayTooLong), + ::core::stringify!(UnexpectedPreambleData), + ::core::stringify!(ReservedBitsSet), + ::core::stringify!(IdentityPrecompileCallFailed), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for BlueprintErrors { + const NAME: &'static str = "BlueprintErrors"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 8usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::BytesArrayTooLong(_) => { + ::SELECTOR + } + Self::DeploymentFailed(_) => { + ::SELECTOR + } + Self::EmptyInitcode(_) => { + ::SELECTOR + } + Self::IdentityPrecompileCallFailed(_) => { + ::SELECTOR + } + Self::NotABlueprint(_) => { + ::SELECTOR + } + Self::ReservedBitsSet(_) => { + ::SELECTOR + } + Self::UnexpectedPreambleData(_) => { + ::SELECTOR + } + Self::UnsupportedERCVersion(_) => { + ::SELECTOR + } + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn EmptyInitcode( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(BlueprintErrors::EmptyInitcode) + } + EmptyInitcode + }, + { + fn UnsupportedERCVersion( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(BlueprintErrors::UnsupportedERCVersion) + } + UnsupportedERCVersion + }, + { + fn DeploymentFailed( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(BlueprintErrors::DeploymentFailed) + } + DeploymentFailed + }, + { + fn NotABlueprint( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(BlueprintErrors::NotABlueprint) + } + NotABlueprint + }, + { + fn BytesArrayTooLong( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(BlueprintErrors::BytesArrayTooLong) + } + BytesArrayTooLong + }, + { + fn UnexpectedPreambleData( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(BlueprintErrors::UnexpectedPreambleData) + } + UnexpectedPreambleData + }, + { + fn ReservedBitsSet( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(BlueprintErrors::ReservedBitsSet) + } + ReservedBitsSet + }, + { + fn IdentityPrecompileCallFailed( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(BlueprintErrors::IdentityPrecompileCallFailed) + } + IdentityPrecompileCallFailed + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn EmptyInitcode( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(BlueprintErrors::EmptyInitcode) + } + EmptyInitcode + }, + { + fn UnsupportedERCVersion( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(BlueprintErrors::UnsupportedERCVersion) + } + UnsupportedERCVersion + }, + { + fn DeploymentFailed( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(BlueprintErrors::DeploymentFailed) + } + DeploymentFailed + }, + { + fn NotABlueprint( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(BlueprintErrors::NotABlueprint) + } + NotABlueprint + }, + { + fn BytesArrayTooLong( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(BlueprintErrors::BytesArrayTooLong) + } + BytesArrayTooLong + }, + { + fn UnexpectedPreambleData( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(BlueprintErrors::UnexpectedPreambleData) + } + UnexpectedPreambleData + }, + { + fn ReservedBitsSet( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(BlueprintErrors::ReservedBitsSet) + } + ReservedBitsSet + }, + { + fn IdentityPrecompileCallFailed( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(BlueprintErrors::IdentityPrecompileCallFailed) + } + IdentityPrecompileCallFailed + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::BytesArrayTooLong(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::DeploymentFailed(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::EmptyInitcode(inner) => { + ::abi_encoded_size(inner) + } + Self::IdentityPrecompileCallFailed(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::NotABlueprint(inner) => { + ::abi_encoded_size(inner) + } + Self::ReservedBitsSet(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::UnexpectedPreambleData(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::UnsupportedERCVersion(inner) => { + ::abi_encoded_size( + inner, + ) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::BytesArrayTooLong(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::DeploymentFailed(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::EmptyInitcode(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::IdentityPrecompileCallFailed(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::NotABlueprint(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ReservedBitsSet(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::UnexpectedPreambleData(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::UnsupportedERCVersion(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`Blueprint`](self) contract instance. + +See the [wrapper's documentation](`BlueprintInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> BlueprintInstance { + BlueprintInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + BlueprintInstance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + BlueprintInstance::::deploy_builder(__provider) + } + /**A [`Blueprint`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`Blueprint`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct BlueprintInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for BlueprintInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("BlueprintInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > BlueprintInstance { + /**Creates a new wrapper around an on-chain [`Blueprint`](self) contract instance. + +See the [wrapper's documentation](`BlueprintInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl BlueprintInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> BlueprintInstance { + BlueprintInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > BlueprintInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > BlueprintInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + } +} diff --git a/bindings/rust/src/burn.rs b/bindings/rust/src/burn.rs new file mode 100644 index 000000000..d40806273 --- /dev/null +++ b/bindings/rust/src/burn.rs @@ -0,0 +1,212 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface Burn {} +``` + +...which was generated by the following JSON ABI: +```json +[] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod Burn { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`-`7`\x0B\x82\x82\x829\x80Q`\0\x1A`s\x14`*WcNH{q`\xE0\x1B`\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`\0\x80\xFD\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + 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`\0\x80\xFD\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`Burn`](self) contract instance. + +See the [wrapper's documentation](`BurnInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(address: alloy_sol_types::private::Address, __provider: P) -> BurnInstance { + BurnInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + BurnInstance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + BurnInstance::::deploy_builder(__provider) + } + /**A [`Burn`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`Burn`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct BurnInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for BurnInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("BurnInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > BurnInstance { + /**Creates a new wrapper around an on-chain [`Burn`](self) contract instance. + +See the [wrapper's documentation](`BurnInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl BurnInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> BurnInstance { + BurnInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > BurnInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > BurnInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + } +} diff --git a/bindings/rust/src/bytes.rs b/bindings/rust/src/bytes.rs new file mode 100644 index 000000000..a68cddab4 --- /dev/null +++ b/bindings/rust/src/bytes.rs @@ -0,0 +1,212 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface Bytes {} +``` + +...which was generated by the following JSON ABI: +```json +[] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod Bytes { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`-`7`\x0B\x82\x82\x829\x80Q`\0\x1A`s\x14`*WcNH{q`\xE0\x1B`\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`\0\x80\xFD\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + 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`\0\x80\xFD\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`Bytes`](self) contract instance. + +See the [wrapper's documentation](`BytesInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(address: alloy_sol_types::private::Address, __provider: P) -> BytesInstance { + BytesInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + BytesInstance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + BytesInstance::::deploy_builder(__provider) + } + /**A [`Bytes`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`Bytes`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct BytesInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for BytesInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("BytesInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > BytesInstance { + /**Creates a new wrapper around an on-chain [`Bytes`](self) contract instance. + +See the [wrapper's documentation](`BytesInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl BytesInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> BytesInstance { + BytesInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > BytesInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > BytesInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + } +} diff --git a/bindings/rust/src/cannon_errors.rs b/bindings/rust/src/cannon_errors.rs new file mode 100644 index 000000000..3f2f6bbb9 --- /dev/null +++ b/bindings/rust/src/cannon_errors.rs @@ -0,0 +1,215 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface CannonErrors {} +``` + +...which was generated by the following JSON ABI: +```json +[] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod CannonErrors { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"", + ); + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`CannonErrors`](self) contract instance. + +See the [wrapper's documentation](`CannonErrorsInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> CannonErrorsInstance { + CannonErrorsInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + CannonErrorsInstance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + CannonErrorsInstance::::deploy_builder(__provider) + } + /**A [`CannonErrors`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`CannonErrors`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct CannonErrorsInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for CannonErrorsInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("CannonErrorsInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > CannonErrorsInstance { + /**Creates a new wrapper around an on-chain [`CannonErrors`](self) contract instance. + +See the [wrapper's documentation](`CannonErrorsInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl CannonErrorsInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> CannonErrorsInstance { + CannonErrorsInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > CannonErrorsInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > CannonErrorsInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + } +} diff --git a/bindings/rust/src/cb_multicall.rs b/bindings/rust/src/cb_multicall.rs new file mode 100644 index 000000000..5151883e9 --- /dev/null +++ b/bindings/rust/src/cb_multicall.rs @@ -0,0 +1,5472 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface CBMulticall { + struct Call { + address target; + bytes callData; + } + struct Call3 { + address target; + bool allowFailure; + bytes callData; + } + struct Call3Value { + address target; + bool allowFailure; + uint256 value; + bytes callData; + } + struct Result { + bool success; + bytes returnData; + } + + error MustDelegateCall(); + + constructor(); + + function aggregate(Call[] memory calls) external payable returns (uint256 blockNumber, bytes[] memory returnData); + function aggregate3(Call3[] memory calls) external payable returns (Result[] memory returnData); + function aggregate3Value(Call3Value[] memory calls) external payable returns (Result[] memory returnData); + function aggregateDelegateCalls(Call3[] memory calls) external payable returns (Result[] memory returnData); + function blockAndAggregate(Call[] memory calls) external payable returns (uint256 blockNumber, bytes32 blockHash, Result[] memory returnData); + function getBasefee() external view returns (uint256 basefee); + function getBlockHash(uint256 blockNumber) external view returns (bytes32 blockHash); + function getBlockNumber() external view returns (uint256 blockNumber); + function getChainId() external view returns (uint256 chainid); + function getCurrentBlockCoinbase() external view returns (address coinbase); + function getCurrentBlockGasLimit() external view returns (uint256 gaslimit); + function getCurrentBlockTimestamp() external view returns (uint256 timestamp); + function getEthBalance(address addr) external view returns (uint256 balance); + function getLastBlockHash() external view returns (bytes32 blockHash); + function tryAggregate(bool requireSuccess, Call[] memory calls) external payable returns (Result[] memory returnData); + function tryBlockAndAggregate(bool requireSuccess, Call[] memory calls) external payable returns (uint256 blockNumber, bytes32 blockHash, Result[] memory returnData); +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "constructor", + "inputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "aggregate", + "inputs": [ + { + "name": "calls", + "type": "tuple[]", + "internalType": "struct Call[]", + "components": [ + { + "name": "target", + "type": "address", + "internalType": "address" + }, + { + "name": "callData", + "type": "bytes", + "internalType": "bytes" + } + ] + } + ], + "outputs": [ + { + "name": "blockNumber", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "returnData", + "type": "bytes[]", + "internalType": "bytes[]" + } + ], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "aggregate3", + "inputs": [ + { + "name": "calls", + "type": "tuple[]", + "internalType": "struct Call3[]", + "components": [ + { + "name": "target", + "type": "address", + "internalType": "address" + }, + { + "name": "allowFailure", + "type": "bool", + "internalType": "bool" + }, + { + "name": "callData", + "type": "bytes", + "internalType": "bytes" + } + ] + } + ], + "outputs": [ + { + "name": "returnData", + "type": "tuple[]", + "internalType": "struct Result[]", + "components": [ + { + "name": "success", + "type": "bool", + "internalType": "bool" + }, + { + "name": "returnData", + "type": "bytes", + "internalType": "bytes" + } + ] + } + ], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "aggregate3Value", + "inputs": [ + { + "name": "calls", + "type": "tuple[]", + "internalType": "struct Call3Value[]", + "components": [ + { + "name": "target", + "type": "address", + "internalType": "address" + }, + { + "name": "allowFailure", + "type": "bool", + "internalType": "bool" + }, + { + "name": "value", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "callData", + "type": "bytes", + "internalType": "bytes" + } + ] + } + ], + "outputs": [ + { + "name": "returnData", + "type": "tuple[]", + "internalType": "struct Result[]", + "components": [ + { + "name": "success", + "type": "bool", + "internalType": "bool" + }, + { + "name": "returnData", + "type": "bytes", + "internalType": "bytes" + } + ] + } + ], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "aggregateDelegateCalls", + "inputs": [ + { + "name": "calls", + "type": "tuple[]", + "internalType": "struct Call3[]", + "components": [ + { + "name": "target", + "type": "address", + "internalType": "address" + }, + { + "name": "allowFailure", + "type": "bool", + "internalType": "bool" + }, + { + "name": "callData", + "type": "bytes", + "internalType": "bytes" + } + ] + } + ], + "outputs": [ + { + "name": "returnData", + "type": "tuple[]", + "internalType": "struct Result[]", + "components": [ + { + "name": "success", + "type": "bool", + "internalType": "bool" + }, + { + "name": "returnData", + "type": "bytes", + "internalType": "bytes" + } + ] + } + ], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "blockAndAggregate", + "inputs": [ + { + "name": "calls", + "type": "tuple[]", + "internalType": "struct Call[]", + "components": [ + { + "name": "target", + "type": "address", + "internalType": "address" + }, + { + "name": "callData", + "type": "bytes", + "internalType": "bytes" + } + ] + } + ], + "outputs": [ + { + "name": "blockNumber", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "blockHash", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "returnData", + "type": "tuple[]", + "internalType": "struct Result[]", + "components": [ + { + "name": "success", + "type": "bool", + "internalType": "bool" + }, + { + "name": "returnData", + "type": "bytes", + "internalType": "bytes" + } + ] + } + ], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "getBasefee", + "inputs": [], + "outputs": [ + { + "name": "basefee", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "getBlockHash", + "inputs": [ + { + "name": "blockNumber", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "blockHash", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "getBlockNumber", + "inputs": [], + "outputs": [ + { + "name": "blockNumber", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "getChainId", + "inputs": [], + "outputs": [ + { + "name": "chainid", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "getCurrentBlockCoinbase", + "inputs": [], + "outputs": [ + { + "name": "coinbase", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "getCurrentBlockGasLimit", + "inputs": [], + "outputs": [ + { + "name": "gaslimit", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "getCurrentBlockTimestamp", + "inputs": [], + "outputs": [ + { + "name": "timestamp", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "getEthBalance", + "inputs": [ + { + "name": "addr", + "type": "address", + "internalType": "address" + } + ], + "outputs": [ + { + "name": "balance", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "getLastBlockHash", + "inputs": [], + "outputs": [ + { + "name": "blockHash", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "tryAggregate", + "inputs": [ + { + "name": "requireSuccess", + "type": "bool", + "internalType": "bool" + }, + { + "name": "calls", + "type": "tuple[]", + "internalType": "struct Call[]", + "components": [ + { + "name": "target", + "type": "address", + "internalType": "address" + }, + { + "name": "callData", + "type": "bytes", + "internalType": "bytes" + } + ] + } + ], + "outputs": [ + { + "name": "returnData", + "type": "tuple[]", + "internalType": "struct Result[]", + "components": [ + { + "name": "success", + "type": "bool", + "internalType": "bool" + }, + { + "name": "returnData", + "type": "bytes", + "internalType": "bytes" + } + ] + } + ], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "tryBlockAndAggregate", + "inputs": [ + { + "name": "requireSuccess", + "type": "bool", + "internalType": "bool" + }, + { + "name": "calls", + "type": "tuple[]", + "internalType": "struct Call[]", + "components": [ + { + "name": "target", + "type": "address", + "internalType": "address" + }, + { + "name": "callData", + "type": "bytes", + "internalType": "bytes" + } + ] + } + ], + "outputs": [ + { + "name": "blockNumber", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "blockHash", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "returnData", + "type": "tuple[]", + "internalType": "struct Result[]", + "components": [ + { + "name": "success", + "type": "bool", + "internalType": "bool" + }, + { + "name": "returnData", + "type": "bytes", + "internalType": "bytes" + } + ] + } + ], + "stateMutability": "payable" + }, + { + "type": "error", + "name": "MustDelegateCall", + "inputs": [] + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod CBMulticall { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x60a0604052348015600e575f80fd5b503060805260805161103e61002b5f395f610807015261103e5ff3fe6080604052600436106100ef575f3560e01c80634d2301cc11610087578063a8b0574e11610057578063a8b0574e1461024e578063bce38bd714610268578063c3077fa91461027b578063ee82ac5e1461028e575f80fd5b80634d2301cc146101e257806382ad56cb14610216578063858cc8321461022957806386d516e81461023c575f80fd5b80633408e470116100c25780633408e4701461018a578063399542e91461019c5780633e64a696146101be57806342cbb15c146101d0575f80fd5b80630f28c97d146100f3578063174dea7114610114578063252dba421461013457806327e86d6e14610155575b5f80fd5b3480156100fe575f80fd5b50425b6040519081526020015b60405180910390f35b610127610122366004610c4b565b6102ac565b60405161010b9190610d60565b610147610142366004610c4b565b610478565b60405161010b929190610d79565b348015610160575f80fd5b50437fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0140610101565b348015610195575f80fd5b5046610101565b6101af6101aa366004610e01565b610618565b60405161010b93929190610e56565b3480156101c9575f80fd5b5048610101565b3480156101db575f80fd5b5043610101565b3480156101ed575f80fd5b506101016101fc366004610e7d565b73ffffffffffffffffffffffffffffffffffffffff163190565b610127610224366004610c4b565b610633565b610127610237366004610c4b565b6107ee565b348015610247575f80fd5b5045610101565b348015610259575f80fd5b5060405141815260200161010b565b610127610276366004610e01565b610a17565b6101af610289366004610c4b565b610be5565b348015610299575f80fd5b506101016102a8366004610eb0565b4090565b6060818067ffffffffffffffff8111156102c8576102c8610ec7565b60405190808252806020026020018201604052801561030d57816020015b604080518082019091525f8152606060208201528152602001906001900390816102e65790505b509150365f5b8281101561046f57604080518082019091525f81526060602082015286868381811061034157610341610ef4565b90506020028101906103539190610f21565b925060408301356103676020850185610e7d565b73ffffffffffffffffffffffffffffffffffffffff168161038b6060870187610f5d565b604051610399929190610fbe565b5f6040518083038185875af1925050503d805f81146103d3576040519150601f19603f3d011682016040523d82523d5f602084013e6103d8565b606091505b506020808501919091529015158084529085013517610447577f08c379a0000000000000000000000000000000000000000000000000000000005f52602060045260176024527f4d756c746963616c6c333a2063616c6c206661696c656400000000000000000060445260645ffd5b8186848151811061045a5761045a610ef4565b60209081029190910101525050600101610313565b50505092915050565b436060828067ffffffffffffffff81111561049557610495610ec7565b6040519080825280602002602001820160405280156104c857816020015b60608152602001906001900390816104b35790505b509150365f5b8281101561060e575f8787838181106104e9576104e9610ef4565b90506020028101906104fb9190610fcd565b925061050a6020840184610e7d565b73ffffffffffffffffffffffffffffffffffffffff1661052d6020850185610f5d565b60405161053b929190610fbe565b5f604051808303815f865af19150503d805f8114610574576040519150601f19603f3d011682016040523d82523d5f602084013e610579565b606091505b5086848151811061058c5761058c610ef4565b6020908102919091010152905080610605576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f4d756c746963616c6c333a2063616c6c206661696c656400000000000000000060448201526064015b60405180910390fd5b506001016104ce565b5050509250929050565b4380406060610628868686610a17565b905093509350939050565b6060818067ffffffffffffffff81111561064f5761064f610ec7565b60405190808252806020026020018201604052801561069457816020015b604080518082019091525f81526060602082015281526020019060019003908161066d5790505b509150365f5b8281101561046f57604080518082019091525f8152606060208201528686838181106106c8576106c8610ef4565b90506020028101906106da9190610fff565b92506106e96020840184610e7d565b73ffffffffffffffffffffffffffffffffffffffff1661070c6040850185610f5d565b60405161071a929190610fbe565b5f604051808303815f865af19150503d805f8114610753576040519150601f19603f3d011682016040523d82523d5f602084013e610758565b606091505b5060208084019190915290151580835290840135176107c7577f08c379a0000000000000000000000000000000000000000000000000000000005f52602060045260176024527f4d756c746963616c6c333a2063616c6c206661696c656400000000000000000060445260645ffd5b808583815181106107da576107da610ef4565b60209081029190910101525060010161069a565b606073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016300361085f576040517fb25caa5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b818067ffffffffffffffff81111561087957610879610ec7565b6040519080825280602002602001820160405280156108be57816020015b604080518082019091525f8152606060208201528152602001906001900390816108975790505b509150365f5b8281101561046f57604080518082019091525f8152606060208201528686838181106108f2576108f2610ef4565b90506020028101906109049190610fff565b92506109136020840184610e7d565b73ffffffffffffffffffffffffffffffffffffffff166109366040850185610f5d565b604051610944929190610fbe565b5f60405180830381855af49150503d805f811461097c576040519150601f19603f3d011682016040523d82523d5f602084013e610981565b606091505b5060208084019190915290151580835290840135176109f0577f08c379a0000000000000000000000000000000000000000000000000000000005f52602060045260176024527f4d756c746963616c6c333a2063616c6c206661696c656400000000000000000060445260645ffd5b80858381518110610a0357610a03610ef4565b6020908102919091010152506001016108c4565b6060818067ffffffffffffffff811115610a3357610a33610ec7565b604051908082528060200260200182016040528015610a7857816020015b604080518082019091525f815260606020820152815260200190600190039081610a515790505b509150365f5b82811015610bdb57604080518082019091525f815260606020820152868683818110610aac57610aac610ef4565b9050602002810190610abe9190610fcd565b9250610acd6020840184610e7d565b73ffffffffffffffffffffffffffffffffffffffff16610af06020850185610f5d565b604051610afe929190610fbe565b5f604051808303815f865af19150503d805f8114610b37576040519150601f19603f3d011682016040523d82523d5f602084013e610b3c565b606091505b506020830152151581528715610bb4578051610bb4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f4d756c746963616c6c333a2063616c6c206661696c656400000000000000000060448201526064016105fc565b80858381518110610bc757610bc7610ef4565b602090810291909101015250600101610a7e565b5050509392505050565b5f806060610bf560018686610618565b919790965090945092505050565b5f8083601f840112610c13575f80fd5b50813567ffffffffffffffff811115610c2a575f80fd5b6020830191508360208260051b8501011115610c44575f80fd5b9250929050565b5f8060208385031215610c5c575f80fd5b823567ffffffffffffffff811115610c72575f80fd5b610c7e85828601610c03565b90969095509350505050565b5f81518084528060208401602086015e5f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b5f82825180855260208086019550808260051b8401018186015f5b84811015610d53578583037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe001895281518051151584528401516040858501819052610d3f81860183610c8a565b9a86019a9450505090830190600101610cf1565b5090979650505050505050565b602081525f610d726020830184610cd6565b9392505050565b5f6040820184835260206040602085015281855180845260608601915060608160051b8701019350602087015f5b82811015610df3577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0888703018452610de1868351610c8a565b95509284019290840190600101610da7565b509398975050505050505050565b5f805f60408486031215610e13575f80fd5b83358015158114610e22575f80fd5b9250602084013567ffffffffffffffff811115610e3d575f80fd5b610e4986828701610c03565b9497909650939450505050565b838152826020820152606060408201525f610e746060830184610cd6565b95945050505050565b5f60208284031215610e8d575f80fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610d72575f80fd5b5f60208284031215610ec0575f80fd5b5035919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f82357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81833603018112610f53575f80fd5b9190910192915050565b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112610f90575f80fd5b83018035915067ffffffffffffffff821115610faa575f80fd5b602001915036819003821315610c44575f80fd5b818382375f9101908152919050565b5f82357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc1833603018112610f53575f80fd5b5f82357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa1833603018112610f53575f80fdfea164736f6c6343000819000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\xA0`@R4\x80\x15`\x0EW_\x80\xFD[P0`\x80R`\x80Qa\x10>a\0+_9_a\x08\x07\x01Ra\x10>_\xF3\xFE`\x80`@R`\x046\x10a\0\xEFW_5`\xE0\x1C\x80cM#\x01\xCC\x11a\0\x87W\x80c\xA8\xB0WN\x11a\0WW\x80c\xA8\xB0WN\x14a\x02NW\x80c\xBC\xE3\x8B\xD7\x14a\x02hW\x80c\xC3\x07\x7F\xA9\x14a\x02{W\x80c\xEE\x82\xAC^\x14a\x02\x8EW_\x80\xFD[\x80cM#\x01\xCC\x14a\x01\xE2W\x80c\x82\xADV\xCB\x14a\x02\x16W\x80c\x85\x8C\xC82\x14a\x02)W\x80c\x86\xD5\x16\xE8\x14a\x02d\xA6\x96\x14a\x01\xBEW\x80cB\xCB\xB1\\\x14a\x01\xD0W_\x80\xFD[\x80c\x0F(\xC9}\x14a\0\xF3W\x80c\x17M\xEAq\x14a\x01\x14W\x80c%-\xBAB\x14a\x014W\x80c'\xE8mn\x14a\x01UW[_\x80\xFD[4\x80\x15a\0\xFEW_\x80\xFD[PB[`@Q\x90\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[a\x01'a\x01\"6`\x04a\x0CKV[a\x02\xACV[`@Qa\x01\x0B\x91\x90a\r`V[a\x01Ga\x01B6`\x04a\x0CKV[a\x04xV[`@Qa\x01\x0B\x92\x91\x90a\ryV[4\x80\x15a\x01`W_\x80\xFD[PC\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x01@a\x01\x01V[4\x80\x15a\x01\x95W_\x80\xFD[PFa\x01\x01V[a\x01\xAFa\x01\xAA6`\x04a\x0E\x01V[a\x06\x18V[`@Qa\x01\x0B\x93\x92\x91\x90a\x0EVV[4\x80\x15a\x01\xC9W_\x80\xFD[PHa\x01\x01V[4\x80\x15a\x01\xDBW_\x80\xFD[PCa\x01\x01V[4\x80\x15a\x01\xEDW_\x80\xFD[Pa\x01\x01a\x01\xFC6`\x04a\x0E}V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x161\x90V[a\x01'a\x02$6`\x04a\x0CKV[a\x063V[a\x01'a\x0276`\x04a\x0CKV[a\x07\xEEV[4\x80\x15a\x02GW_\x80\xFD[PEa\x01\x01V[4\x80\x15a\x02YW_\x80\xFD[P`@QA\x81R` \x01a\x01\x0BV[a\x01'a\x02v6`\x04a\x0E\x01V[a\n\x17V[a\x01\xAFa\x02\x896`\x04a\x0CKV[a\x0B\xE5V[4\x80\x15a\x02\x99W_\x80\xFD[Pa\x01\x01a\x02\xA86`\x04a\x0E\xB0V[@\x90V[``\x81\x80g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x02\xC8Wa\x02\xC8a\x0E\xC7V[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a\x03\rW\x81` \x01[`@\x80Q\x80\x82\x01\x90\x91R_\x81R``` \x82\x01R\x81R` \x01\x90`\x01\x90\x03\x90\x81a\x02\xE6W\x90P[P\x91P6_[\x82\x81\x10\x15a\x04oW`@\x80Q\x80\x82\x01\x90\x91R_\x81R``` \x82\x01R\x86\x86\x83\x81\x81\x10a\x03AWa\x03Aa\x0E\xF4V[\x90P` \x02\x81\x01\x90a\x03S\x91\x90a\x0F!V[\x92P`@\x83\x015a\x03g` \x85\x01\x85a\x0E}V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81a\x03\x8B``\x87\x01\x87a\x0F]V[`@Qa\x03\x99\x92\x91\x90a\x0F\xBEV[_`@Q\x80\x83\x03\x81\x85\x87Z\xF1\x92PPP=\x80_\x81\x14a\x03\xD3W`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=_` \x84\x01>a\x03\xD8V[``\x91P[P` \x80\x85\x01\x91\x90\x91R\x90\x15\x15\x80\x84R\x90\x85\x015\x17a\x04GW\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_R` `\x04R`\x17`$R\x7FMulticall3: call failed\0\0\0\0\0\0\0\0\0`DR`d_\xFD[\x81\x86\x84\x81Q\x81\x10a\x04ZWa\x04Za\x0E\xF4V[` \x90\x81\x02\x91\x90\x91\x01\x01RPP`\x01\x01a\x03\x13V[PPP\x92\x91PPV[C``\x82\x80g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x04\x95Wa\x04\x95a\x0E\xC7V[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a\x04\xC8W\x81` \x01[``\x81R` \x01\x90`\x01\x90\x03\x90\x81a\x04\xB3W\x90P[P\x91P6_[\x82\x81\x10\x15a\x06\x0EW_\x87\x87\x83\x81\x81\x10a\x04\xE9Wa\x04\xE9a\x0E\xF4V[\x90P` \x02\x81\x01\x90a\x04\xFB\x91\x90a\x0F\xCDV[\x92Pa\x05\n` \x84\x01\x84a\x0E}V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a\x05-` \x85\x01\x85a\x0F]V[`@Qa\x05;\x92\x91\x90a\x0F\xBEV[_`@Q\x80\x83\x03\x81_\x86Z\xF1\x91PP=\x80_\x81\x14a\x05tW`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=_` \x84\x01>a\x05yV[``\x91P[P\x86\x84\x81Q\x81\x10a\x05\x8CWa\x05\x8Ca\x0E\xF4V[` \x90\x81\x02\x91\x90\x91\x01\x01R\x90P\x80a\x06\x05W`@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\x82\x01R`\x17`$\x82\x01R\x7FMulticall3: call failed\0\0\0\0\0\0\0\0\0`D\x82\x01R`d\x01[`@Q\x80\x91\x03\x90\xFD[P`\x01\x01a\x04\xCEV[PPP\x92P\x92\x90PV[C\x80@``a\x06(\x86\x86\x86a\n\x17V[\x90P\x93P\x93P\x93\x90PV[``\x81\x80g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x06OWa\x06Oa\x0E\xC7V[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a\x06\x94W\x81` \x01[`@\x80Q\x80\x82\x01\x90\x91R_\x81R``` \x82\x01R\x81R` \x01\x90`\x01\x90\x03\x90\x81a\x06mW\x90P[P\x91P6_[\x82\x81\x10\x15a\x04oW`@\x80Q\x80\x82\x01\x90\x91R_\x81R``` \x82\x01R\x86\x86\x83\x81\x81\x10a\x06\xC8Wa\x06\xC8a\x0E\xF4V[\x90P` \x02\x81\x01\x90a\x06\xDA\x91\x90a\x0F\xFFV[\x92Pa\x06\xE9` \x84\x01\x84a\x0E}V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a\x07\x0C`@\x85\x01\x85a\x0F]V[`@Qa\x07\x1A\x92\x91\x90a\x0F\xBEV[_`@Q\x80\x83\x03\x81_\x86Z\xF1\x91PP=\x80_\x81\x14a\x07SW`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=_` \x84\x01>a\x07XV[``\x91P[P` \x80\x84\x01\x91\x90\x91R\x90\x15\x15\x80\x83R\x90\x84\x015\x17a\x07\xC7W\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_R` `\x04R`\x17`$R\x7FMulticall3: call failed\0\0\0\0\0\0\0\0\0`DR`d_\xFD[\x80\x85\x83\x81Q\x81\x10a\x07\xDAWa\x07\xDAa\x0E\xF4V[` \x90\x81\x02\x91\x90\x91\x01\x01RP`\x01\x01a\x06\x9AV[``s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x160\x03a\x08_W`@Q\x7F\xB2\\\xAAQ\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\x01`@Q\x80\x91\x03\x90\xFD[\x81\x80g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x08yWa\x08ya\x0E\xC7V[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a\x08\xBEW\x81` \x01[`@\x80Q\x80\x82\x01\x90\x91R_\x81R``` \x82\x01R\x81R` \x01\x90`\x01\x90\x03\x90\x81a\x08\x97W\x90P[P\x91P6_[\x82\x81\x10\x15a\x04oW`@\x80Q\x80\x82\x01\x90\x91R_\x81R``` \x82\x01R\x86\x86\x83\x81\x81\x10a\x08\xF2Wa\x08\xF2a\x0E\xF4V[\x90P` \x02\x81\x01\x90a\t\x04\x91\x90a\x0F\xFFV[\x92Pa\t\x13` \x84\x01\x84a\x0E}V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a\t6`@\x85\x01\x85a\x0F]V[`@Qa\tD\x92\x91\x90a\x0F\xBEV[_`@Q\x80\x83\x03\x81\x85Z\xF4\x91PP=\x80_\x81\x14a\t|W`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=_` \x84\x01>a\t\x81V[``\x91P[P` \x80\x84\x01\x91\x90\x91R\x90\x15\x15\x80\x83R\x90\x84\x015\x17a\t\xF0W\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_R` `\x04R`\x17`$R\x7FMulticall3: call failed\0\0\0\0\0\0\0\0\0`DR`d_\xFD[\x80\x85\x83\x81Q\x81\x10a\n\x03Wa\n\x03a\x0E\xF4V[` \x90\x81\x02\x91\x90\x91\x01\x01RP`\x01\x01a\x08\xC4V[``\x81\x80g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\n3Wa\n3a\x0E\xC7V[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a\nxW\x81` \x01[`@\x80Q\x80\x82\x01\x90\x91R_\x81R``` \x82\x01R\x81R` \x01\x90`\x01\x90\x03\x90\x81a\nQW\x90P[P\x91P6_[\x82\x81\x10\x15a\x0B\xDBW`@\x80Q\x80\x82\x01\x90\x91R_\x81R``` \x82\x01R\x86\x86\x83\x81\x81\x10a\n\xACWa\n\xACa\x0E\xF4V[\x90P` \x02\x81\x01\x90a\n\xBE\x91\x90a\x0F\xCDV[\x92Pa\n\xCD` \x84\x01\x84a\x0E}V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a\n\xF0` \x85\x01\x85a\x0F]V[`@Qa\n\xFE\x92\x91\x90a\x0F\xBEV[_`@Q\x80\x83\x03\x81_\x86Z\xF1\x91PP=\x80_\x81\x14a\x0B7W`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=_` \x84\x01>a\x0Bd\xA6\x96\x14a\x01\xBEW\x80cB\xCB\xB1\\\x14a\x01\xD0W_\x80\xFD[\x80c\x0F(\xC9}\x14a\0\xF3W\x80c\x17M\xEAq\x14a\x01\x14W\x80c%-\xBAB\x14a\x014W\x80c'\xE8mn\x14a\x01UW[_\x80\xFD[4\x80\x15a\0\xFEW_\x80\xFD[PB[`@Q\x90\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[a\x01'a\x01\"6`\x04a\x0CKV[a\x02\xACV[`@Qa\x01\x0B\x91\x90a\r`V[a\x01Ga\x01B6`\x04a\x0CKV[a\x04xV[`@Qa\x01\x0B\x92\x91\x90a\ryV[4\x80\x15a\x01`W_\x80\xFD[PC\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x01@a\x01\x01V[4\x80\x15a\x01\x95W_\x80\xFD[PFa\x01\x01V[a\x01\xAFa\x01\xAA6`\x04a\x0E\x01V[a\x06\x18V[`@Qa\x01\x0B\x93\x92\x91\x90a\x0EVV[4\x80\x15a\x01\xC9W_\x80\xFD[PHa\x01\x01V[4\x80\x15a\x01\xDBW_\x80\xFD[PCa\x01\x01V[4\x80\x15a\x01\xEDW_\x80\xFD[Pa\x01\x01a\x01\xFC6`\x04a\x0E}V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x161\x90V[a\x01'a\x02$6`\x04a\x0CKV[a\x063V[a\x01'a\x0276`\x04a\x0CKV[a\x07\xEEV[4\x80\x15a\x02GW_\x80\xFD[PEa\x01\x01V[4\x80\x15a\x02YW_\x80\xFD[P`@QA\x81R` \x01a\x01\x0BV[a\x01'a\x02v6`\x04a\x0E\x01V[a\n\x17V[a\x01\xAFa\x02\x896`\x04a\x0CKV[a\x0B\xE5V[4\x80\x15a\x02\x99W_\x80\xFD[Pa\x01\x01a\x02\xA86`\x04a\x0E\xB0V[@\x90V[``\x81\x80g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x02\xC8Wa\x02\xC8a\x0E\xC7V[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a\x03\rW\x81` \x01[`@\x80Q\x80\x82\x01\x90\x91R_\x81R``` \x82\x01R\x81R` \x01\x90`\x01\x90\x03\x90\x81a\x02\xE6W\x90P[P\x91P6_[\x82\x81\x10\x15a\x04oW`@\x80Q\x80\x82\x01\x90\x91R_\x81R``` \x82\x01R\x86\x86\x83\x81\x81\x10a\x03AWa\x03Aa\x0E\xF4V[\x90P` \x02\x81\x01\x90a\x03S\x91\x90a\x0F!V[\x92P`@\x83\x015a\x03g` \x85\x01\x85a\x0E}V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81a\x03\x8B``\x87\x01\x87a\x0F]V[`@Qa\x03\x99\x92\x91\x90a\x0F\xBEV[_`@Q\x80\x83\x03\x81\x85\x87Z\xF1\x92PPP=\x80_\x81\x14a\x03\xD3W`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=_` \x84\x01>a\x03\xD8V[``\x91P[P` \x80\x85\x01\x91\x90\x91R\x90\x15\x15\x80\x84R\x90\x85\x015\x17a\x04GW\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_R` `\x04R`\x17`$R\x7FMulticall3: call failed\0\0\0\0\0\0\0\0\0`DR`d_\xFD[\x81\x86\x84\x81Q\x81\x10a\x04ZWa\x04Za\x0E\xF4V[` \x90\x81\x02\x91\x90\x91\x01\x01RPP`\x01\x01a\x03\x13V[PPP\x92\x91PPV[C``\x82\x80g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x04\x95Wa\x04\x95a\x0E\xC7V[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a\x04\xC8W\x81` \x01[``\x81R` \x01\x90`\x01\x90\x03\x90\x81a\x04\xB3W\x90P[P\x91P6_[\x82\x81\x10\x15a\x06\x0EW_\x87\x87\x83\x81\x81\x10a\x04\xE9Wa\x04\xE9a\x0E\xF4V[\x90P` \x02\x81\x01\x90a\x04\xFB\x91\x90a\x0F\xCDV[\x92Pa\x05\n` \x84\x01\x84a\x0E}V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a\x05-` \x85\x01\x85a\x0F]V[`@Qa\x05;\x92\x91\x90a\x0F\xBEV[_`@Q\x80\x83\x03\x81_\x86Z\xF1\x91PP=\x80_\x81\x14a\x05tW`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=_` \x84\x01>a\x05yV[``\x91P[P\x86\x84\x81Q\x81\x10a\x05\x8CWa\x05\x8Ca\x0E\xF4V[` \x90\x81\x02\x91\x90\x91\x01\x01R\x90P\x80a\x06\x05W`@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\x82\x01R`\x17`$\x82\x01R\x7FMulticall3: call failed\0\0\0\0\0\0\0\0\0`D\x82\x01R`d\x01[`@Q\x80\x91\x03\x90\xFD[P`\x01\x01a\x04\xCEV[PPP\x92P\x92\x90PV[C\x80@``a\x06(\x86\x86\x86a\n\x17V[\x90P\x93P\x93P\x93\x90PV[``\x81\x80g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x06OWa\x06Oa\x0E\xC7V[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a\x06\x94W\x81` \x01[`@\x80Q\x80\x82\x01\x90\x91R_\x81R``` \x82\x01R\x81R` \x01\x90`\x01\x90\x03\x90\x81a\x06mW\x90P[P\x91P6_[\x82\x81\x10\x15a\x04oW`@\x80Q\x80\x82\x01\x90\x91R_\x81R``` \x82\x01R\x86\x86\x83\x81\x81\x10a\x06\xC8Wa\x06\xC8a\x0E\xF4V[\x90P` \x02\x81\x01\x90a\x06\xDA\x91\x90a\x0F\xFFV[\x92Pa\x06\xE9` \x84\x01\x84a\x0E}V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a\x07\x0C`@\x85\x01\x85a\x0F]V[`@Qa\x07\x1A\x92\x91\x90a\x0F\xBEV[_`@Q\x80\x83\x03\x81_\x86Z\xF1\x91PP=\x80_\x81\x14a\x07SW`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=_` \x84\x01>a\x07XV[``\x91P[P` \x80\x84\x01\x91\x90\x91R\x90\x15\x15\x80\x83R\x90\x84\x015\x17a\x07\xC7W\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_R` `\x04R`\x17`$R\x7FMulticall3: call failed\0\0\0\0\0\0\0\0\0`DR`d_\xFD[\x80\x85\x83\x81Q\x81\x10a\x07\xDAWa\x07\xDAa\x0E\xF4V[` \x90\x81\x02\x91\x90\x91\x01\x01RP`\x01\x01a\x06\x9AV[``s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x160\x03a\x08_W`@Q\x7F\xB2\\\xAAQ\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\x01`@Q\x80\x91\x03\x90\xFD[\x81\x80g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x08yWa\x08ya\x0E\xC7V[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a\x08\xBEW\x81` \x01[`@\x80Q\x80\x82\x01\x90\x91R_\x81R``` \x82\x01R\x81R` \x01\x90`\x01\x90\x03\x90\x81a\x08\x97W\x90P[P\x91P6_[\x82\x81\x10\x15a\x04oW`@\x80Q\x80\x82\x01\x90\x91R_\x81R``` \x82\x01R\x86\x86\x83\x81\x81\x10a\x08\xF2Wa\x08\xF2a\x0E\xF4V[\x90P` \x02\x81\x01\x90a\t\x04\x91\x90a\x0F\xFFV[\x92Pa\t\x13` \x84\x01\x84a\x0E}V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a\t6`@\x85\x01\x85a\x0F]V[`@Qa\tD\x92\x91\x90a\x0F\xBEV[_`@Q\x80\x83\x03\x81\x85Z\xF4\x91PP=\x80_\x81\x14a\t|W`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=_` \x84\x01>a\t\x81V[``\x91P[P` \x80\x84\x01\x91\x90\x91R\x90\x15\x15\x80\x83R\x90\x84\x015\x17a\t\xF0W\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_R` `\x04R`\x17`$R\x7FMulticall3: call failed\0\0\0\0\0\0\0\0\0`DR`d_\xFD[\x80\x85\x83\x81Q\x81\x10a\n\x03Wa\n\x03a\x0E\xF4V[` \x90\x81\x02\x91\x90\x91\x01\x01RP`\x01\x01a\x08\xC4V[``\x81\x80g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\n3Wa\n3a\x0E\xC7V[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a\nxW\x81` \x01[`@\x80Q\x80\x82\x01\x90\x91R_\x81R``` \x82\x01R\x81R` \x01\x90`\x01\x90\x03\x90\x81a\nQW\x90P[P\x91P6_[\x82\x81\x10\x15a\x0B\xDBW`@\x80Q\x80\x82\x01\x90\x91R_\x81R``` \x82\x01R\x86\x86\x83\x81\x81\x10a\n\xACWa\n\xACa\x0E\xF4V[\x90P` \x02\x81\x01\x90a\n\xBE\x91\x90a\x0F\xCDV[\x92Pa\n\xCD` \x84\x01\x84a\x0E}V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a\n\xF0` \x85\x01\x85a\x0F]V[`@Qa\n\xFE\x92\x91\x90a\x0F\xBEV[_`@Q\x80\x83\x03\x81_\x86Z\xF1\x91PP=\x80_\x81\x14a\x0B7W`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=_` \x84\x01>a\x0B = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Bytes, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: Call) -> Self { + (value.target, value.callData) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for Call { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + target: tuple.0, + callData: tuple.1, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolValue for Call { + type SolType = Self; + } + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for Call { + #[inline] + fn stv_to_tokens(&self) -> ::Token<'_> { + ( + ::tokenize( + &self.target, + ), + ::tokenize( + &self.callData, + ), + ) + } + #[inline] + fn stv_abi_encoded_size(&self) -> usize { + if let Some(size) = ::ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encoded_size(&tuple) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + ::eip712_hash_struct(self) + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + if let Some(size) = ::PACKED_ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for Call { + type RustType = Self; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = ::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + as alloy_sol_types::SolType>::valid_token(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + let tuple = as alloy_sol_types::SolType>::detokenize(token); + >>::from(tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolStruct for Call { + const NAME: &'static str = "Call"; + #[inline] + fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> { + alloy_sol_types::private::Cow::Borrowed( + "Call(address target,bytes callData)", + ) + } + #[inline] + fn eip712_components() -> alloy_sol_types::private::Vec< + alloy_sol_types::private::Cow<'static, str>, + > { + alloy_sol_types::private::Vec::new() + } + #[inline] + fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> { + ::eip712_root_type() + } + #[inline] + fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec { + [ + ::eip712_data_word( + &self.target, + ) + .0, + ::eip712_data_word( + &self.callData, + ) + .0, + ] + .concat() + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for Call { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + 0usize + + ::topic_preimage_length( + &rust.target, + ) + + ::topic_preimage_length( + &rust.callData, + ) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + out.reserve( + ::topic_preimage_length(rust), + ); + ::encode_topic_preimage( + &rust.target, + out, + ); + ::encode_topic_preimage( + &rust.callData, + out, + ); + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + let mut out = alloy_sol_types::private::Vec::new(); + ::encode_topic_preimage( + rust, + &mut out, + ); + alloy_sol_types::abi::token::WordToken( + alloy_sol_types::private::keccak256(out), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**```solidity +struct Call3 { address target; bool allowFailure; bytes callData; } +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct Call3 { + #[allow(missing_docs)] + pub target: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub allowFailure: bool, + #[allow(missing_docs)] + pub callData: alloy::sol_types::private::Bytes, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Bool, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + bool, + alloy::sol_types::private::Bytes, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: Call3) -> Self { + (value.target, value.allowFailure, value.callData) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for Call3 { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + target: tuple.0, + allowFailure: tuple.1, + callData: tuple.2, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolValue for Call3 { + type SolType = Self; + } + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for Call3 { + #[inline] + fn stv_to_tokens(&self) -> ::Token<'_> { + ( + ::tokenize( + &self.target, + ), + ::tokenize( + &self.allowFailure, + ), + ::tokenize( + &self.callData, + ), + ) + } + #[inline] + fn stv_abi_encoded_size(&self) -> usize { + if let Some(size) = ::ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encoded_size(&tuple) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + ::eip712_hash_struct(self) + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + if let Some(size) = ::PACKED_ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for Call3 { + type RustType = Self; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = ::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + as alloy_sol_types::SolType>::valid_token(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + let tuple = as alloy_sol_types::SolType>::detokenize(token); + >>::from(tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolStruct for Call3 { + const NAME: &'static str = "Call3"; + #[inline] + fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> { + alloy_sol_types::private::Cow::Borrowed( + "Call3(address target,bool allowFailure,bytes callData)", + ) + } + #[inline] + fn eip712_components() -> alloy_sol_types::private::Vec< + alloy_sol_types::private::Cow<'static, str>, + > { + alloy_sol_types::private::Vec::new() + } + #[inline] + fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> { + ::eip712_root_type() + } + #[inline] + fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec { + [ + ::eip712_data_word( + &self.target, + ) + .0, + ::eip712_data_word( + &self.allowFailure, + ) + .0, + ::eip712_data_word( + &self.callData, + ) + .0, + ] + .concat() + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for Call3 { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + 0usize + + ::topic_preimage_length( + &rust.target, + ) + + ::topic_preimage_length( + &rust.allowFailure, + ) + + ::topic_preimage_length( + &rust.callData, + ) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + out.reserve( + ::topic_preimage_length(rust), + ); + ::encode_topic_preimage( + &rust.target, + out, + ); + ::encode_topic_preimage( + &rust.allowFailure, + out, + ); + ::encode_topic_preimage( + &rust.callData, + out, + ); + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + let mut out = alloy_sol_types::private::Vec::new(); + ::encode_topic_preimage( + rust, + &mut out, + ); + alloy_sol_types::abi::token::WordToken( + alloy_sol_types::private::keccak256(out), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**```solidity +struct Call3Value { address target; bool allowFailure; uint256 value; bytes callData; } +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct Call3Value { + #[allow(missing_docs)] + pub target: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub allowFailure: bool, + #[allow(missing_docs)] + pub value: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub callData: alloy::sol_types::private::Bytes, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Bool, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + bool, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::Bytes, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: Call3Value) -> Self { + (value.target, value.allowFailure, value.value, value.callData) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for Call3Value { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + target: tuple.0, + allowFailure: tuple.1, + value: tuple.2, + callData: tuple.3, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolValue for Call3Value { + type SolType = Self; + } + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for Call3Value { + #[inline] + fn stv_to_tokens(&self) -> ::Token<'_> { + ( + ::tokenize( + &self.target, + ), + ::tokenize( + &self.allowFailure, + ), + as alloy_sol_types::SolType>::tokenize(&self.value), + ::tokenize( + &self.callData, + ), + ) + } + #[inline] + fn stv_abi_encoded_size(&self) -> usize { + if let Some(size) = ::ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encoded_size(&tuple) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + ::eip712_hash_struct(self) + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + if let Some(size) = ::PACKED_ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for Call3Value { + type RustType = Self; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = ::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + as alloy_sol_types::SolType>::valid_token(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + let tuple = as alloy_sol_types::SolType>::detokenize(token); + >>::from(tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolStruct for Call3Value { + const NAME: &'static str = "Call3Value"; + #[inline] + fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> { + alloy_sol_types::private::Cow::Borrowed( + "Call3Value(address target,bool allowFailure,uint256 value,bytes callData)", + ) + } + #[inline] + fn eip712_components() -> alloy_sol_types::private::Vec< + alloy_sol_types::private::Cow<'static, str>, + > { + alloy_sol_types::private::Vec::new() + } + #[inline] + fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> { + ::eip712_root_type() + } + #[inline] + fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec { + [ + ::eip712_data_word( + &self.target, + ) + .0, + ::eip712_data_word( + &self.allowFailure, + ) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.value) + .0, + ::eip712_data_word( + &self.callData, + ) + .0, + ] + .concat() + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for Call3Value { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + 0usize + + ::topic_preimage_length( + &rust.target, + ) + + ::topic_preimage_length( + &rust.allowFailure, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length(&rust.value) + + ::topic_preimage_length( + &rust.callData, + ) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + out.reserve( + ::topic_preimage_length(rust), + ); + ::encode_topic_preimage( + &rust.target, + out, + ); + ::encode_topic_preimage( + &rust.allowFailure, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.value, + out, + ); + ::encode_topic_preimage( + &rust.callData, + out, + ); + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + let mut out = alloy_sol_types::private::Vec::new(); + ::encode_topic_preimage( + rust, + &mut out, + ); + alloy_sol_types::abi::token::WordToken( + alloy_sol_types::private::keccak256(out), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**```solidity +struct Result { bool success; bytes returnData; } +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct Result { + #[allow(missing_docs)] + pub success: bool, + #[allow(missing_docs)] + pub returnData: alloy::sol_types::private::Bytes, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Bool, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool, alloy::sol_types::private::Bytes); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: Result) -> Self { + (value.success, value.returnData) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for Result { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + success: tuple.0, + returnData: tuple.1, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolValue for Result { + type SolType = Self; + } + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for Result { + #[inline] + fn stv_to_tokens(&self) -> ::Token<'_> { + ( + ::tokenize( + &self.success, + ), + ::tokenize( + &self.returnData, + ), + ) + } + #[inline] + fn stv_abi_encoded_size(&self) -> usize { + if let Some(size) = ::ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encoded_size(&tuple) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + ::eip712_hash_struct(self) + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + if let Some(size) = ::PACKED_ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for Result { + type RustType = Self; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = ::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + as alloy_sol_types::SolType>::valid_token(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + let tuple = as alloy_sol_types::SolType>::detokenize(token); + >>::from(tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolStruct for Result { + const NAME: &'static str = "Result"; + #[inline] + fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> { + alloy_sol_types::private::Cow::Borrowed( + "Result(bool success,bytes returnData)", + ) + } + #[inline] + fn eip712_components() -> alloy_sol_types::private::Vec< + alloy_sol_types::private::Cow<'static, str>, + > { + alloy_sol_types::private::Vec::new() + } + #[inline] + fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> { + ::eip712_root_type() + } + #[inline] + fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec { + [ + ::eip712_data_word( + &self.success, + ) + .0, + ::eip712_data_word( + &self.returnData, + ) + .0, + ] + .concat() + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for Result { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + 0usize + + ::topic_preimage_length( + &rust.success, + ) + + ::topic_preimage_length( + &rust.returnData, + ) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + out.reserve( + ::topic_preimage_length(rust), + ); + ::encode_topic_preimage( + &rust.success, + out, + ); + ::encode_topic_preimage( + &rust.returnData, + out, + ); + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + let mut out = alloy_sol_types::private::Vec::new(); + ::encode_topic_preimage( + rust, + &mut out, + ); + alloy_sol_types::abi::token::WordToken( + alloy_sol_types::private::keccak256(out), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `MustDelegateCall()` and selector `0xb25caa51`. +```solidity +error MustDelegateCall(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct MustDelegateCall; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: MustDelegateCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for MustDelegateCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for MustDelegateCall { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "MustDelegateCall()"; + const SELECTOR: [u8; 4] = [178u8, 92u8, 170u8, 81u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + /**Constructor`. +```solidity +constructor(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct constructorCall {} + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: constructorCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for constructorCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolConstructor for constructorCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `aggregate((address,bytes)[])` and selector `0x252dba42`. +```solidity +function aggregate(Call[] memory calls) external payable returns (uint256 blockNumber, bytes[] memory returnData); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct aggregateCall { + #[allow(missing_docs)] + pub calls: alloy::sol_types::private::Vec< + ::RustType, + >, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`aggregate((address,bytes)[])`](aggregateCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct aggregateReturn { + #[allow(missing_docs)] + pub blockNumber: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub returnData: alloy::sol_types::private::Vec, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Array,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Vec< + ::RustType, + >, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: aggregateCall) -> Self { + (value.calls,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for aggregateCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { calls: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Array, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::Vec, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: aggregateReturn) -> Self { + (value.blockNumber, value.returnData) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for aggregateReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + blockNumber: tuple.0, + returnData: tuple.1, + } + } + } + } + impl aggregateReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.blockNumber), + as alloy_sol_types::SolType>::tokenize(&self.returnData), + ) + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for aggregateCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Array,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = aggregateReturn; + type ReturnTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Array, + ); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "aggregate((address,bytes)[])"; + const SELECTOR: [u8; 4] = [37u8, 45u8, 186u8, 66u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.calls), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + aggregateReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `aggregate3((address,bool,bytes)[])` and selector `0x82ad56cb`. +```solidity +function aggregate3(Call3[] memory calls) external payable returns (Result[] memory returnData); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct aggregate3Call { + #[allow(missing_docs)] + pub calls: alloy::sol_types::private::Vec< + ::RustType, + >, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`aggregate3((address,bool,bytes)[])`](aggregate3Call) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct aggregate3Return { + #[allow(missing_docs)] + pub returnData: alloy::sol_types::private::Vec< + ::RustType, + >, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Array,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Vec< + ::RustType, + >, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: aggregate3Call) -> Self { + (value.calls,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for aggregate3Call { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { calls: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Array,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Vec< + ::RustType, + >, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: aggregate3Return) -> Self { + (value.returnData,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for aggregate3Return { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { returnData: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for aggregate3Call { + type Parameters<'a> = (alloy::sol_types::sol_data::Array,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Vec< + ::RustType, + >; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Array,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "aggregate3((address,bool,bytes)[])"; + const SELECTOR: [u8; 4] = [130u8, 173u8, 86u8, 203u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.calls), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: aggregate3Return = r.into(); + r.returnData + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: aggregate3Return = r.into(); + r.returnData + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `aggregate3Value((address,bool,uint256,bytes)[])` and selector `0x174dea71`. +```solidity +function aggregate3Value(Call3Value[] memory calls) external payable returns (Result[] memory returnData); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct aggregate3ValueCall { + #[allow(missing_docs)] + pub calls: alloy::sol_types::private::Vec< + ::RustType, + >, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`aggregate3Value((address,bool,uint256,bytes)[])`](aggregate3ValueCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct aggregate3ValueReturn { + #[allow(missing_docs)] + pub returnData: alloy::sol_types::private::Vec< + ::RustType, + >, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Array, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Vec< + ::RustType, + >, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: aggregate3ValueCall) -> Self { + (value.calls,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for aggregate3ValueCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { calls: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Array,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Vec< + ::RustType, + >, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: aggregate3ValueReturn) -> Self { + (value.returnData,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for aggregate3ValueReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { returnData: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for aggregate3ValueCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Array,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Vec< + ::RustType, + >; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Array,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "aggregate3Value((address,bool,uint256,bytes)[])"; + const SELECTOR: [u8; 4] = [23u8, 77u8, 234u8, 113u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.calls), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: aggregate3ValueReturn = r.into(); + r.returnData + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: aggregate3ValueReturn = r.into(); + r.returnData + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `aggregateDelegateCalls((address,bool,bytes)[])` and selector `0x858cc832`. +```solidity +function aggregateDelegateCalls(Call3[] memory calls) external payable returns (Result[] memory returnData); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct aggregateDelegateCallsCall { + #[allow(missing_docs)] + pub calls: alloy::sol_types::private::Vec< + ::RustType, + >, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`aggregateDelegateCalls((address,bool,bytes)[])`](aggregateDelegateCallsCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct aggregateDelegateCallsReturn { + #[allow(missing_docs)] + pub returnData: alloy::sol_types::private::Vec< + ::RustType, + >, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Array,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Vec< + ::RustType, + >, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: aggregateDelegateCallsCall) -> Self { + (value.calls,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for aggregateDelegateCallsCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { calls: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Array,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Vec< + ::RustType, + >, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: aggregateDelegateCallsReturn) -> Self { + (value.returnData,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for aggregateDelegateCallsReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { returnData: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for aggregateDelegateCallsCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Array,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Vec< + ::RustType, + >; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Array,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "aggregateDelegateCalls((address,bool,bytes)[])"; + const SELECTOR: [u8; 4] = [133u8, 140u8, 200u8, 50u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.calls), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: aggregateDelegateCallsReturn = r.into(); + r.returnData + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: aggregateDelegateCallsReturn = r.into(); + r.returnData + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `blockAndAggregate((address,bytes)[])` and selector `0xc3077fa9`. +```solidity +function blockAndAggregate(Call[] memory calls) external payable returns (uint256 blockNumber, bytes32 blockHash, Result[] memory returnData); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct blockAndAggregateCall { + #[allow(missing_docs)] + pub calls: alloy::sol_types::private::Vec< + ::RustType, + >, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`blockAndAggregate((address,bytes)[])`](blockAndAggregateCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct blockAndAggregateReturn { + #[allow(missing_docs)] + pub blockNumber: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub blockHash: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub returnData: alloy::sol_types::private::Vec< + ::RustType, + >, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Array,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Vec< + ::RustType, + >, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: blockAndAggregateCall) -> Self { + (value.calls,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for blockAndAggregateCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { calls: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Array, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::FixedBytes<32>, + alloy::sol_types::private::Vec< + ::RustType, + >, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: blockAndAggregateReturn) -> Self { + (value.blockNumber, value.blockHash, value.returnData) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for blockAndAggregateReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + blockNumber: tuple.0, + blockHash: tuple.1, + returnData: tuple.2, + } + } + } + } + impl blockAndAggregateReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.blockNumber), + as alloy_sol_types::SolType>::tokenize(&self.blockHash), + as alloy_sol_types::SolType>::tokenize(&self.returnData), + ) + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for blockAndAggregateCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Array,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = blockAndAggregateReturn; + type ReturnTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Array, + ); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "blockAndAggregate((address,bytes)[])"; + const SELECTOR: [u8; 4] = [195u8, 7u8, 127u8, 169u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.calls), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + blockAndAggregateReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `getBasefee()` and selector `0x3e64a696`. +```solidity +function getBasefee() external view returns (uint256 basefee); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getBasefeeCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`getBasefee()`](getBasefeeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getBasefeeReturn { + #[allow(missing_docs)] + pub basefee: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: getBasefeeCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for getBasefeeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: getBasefeeReturn) -> Self { + (value.basefee,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for getBasefeeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { basefee: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for getBasefeeCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "getBasefee()"; + const SELECTOR: [u8; 4] = [62u8, 100u8, 166u8, 150u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: getBasefeeReturn = r.into(); + r.basefee + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: getBasefeeReturn = r.into(); + r.basefee + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `getBlockHash(uint256)` and selector `0xee82ac5e`. +```solidity +function getBlockHash(uint256 blockNumber) external view returns (bytes32 blockHash); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getBlockHashCall { + #[allow(missing_docs)] + pub blockNumber: alloy::sol_types::private::primitives::aliases::U256, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`getBlockHash(uint256)`](getBlockHashCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getBlockHashReturn { + #[allow(missing_docs)] + pub blockHash: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: getBlockHashCall) -> Self { + (value.blockNumber,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for getBlockHashCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { blockNumber: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: getBlockHashReturn) -> Self { + (value.blockHash,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for getBlockHashReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { blockHash: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for getBlockHashCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::FixedBytes<32>; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "getBlockHash(uint256)"; + const SELECTOR: [u8; 4] = [238u8, 130u8, 172u8, 94u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.blockNumber), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: getBlockHashReturn = r.into(); + r.blockHash + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: getBlockHashReturn = r.into(); + r.blockHash + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `getBlockNumber()` and selector `0x42cbb15c`. +```solidity +function getBlockNumber() external view returns (uint256 blockNumber); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getBlockNumberCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`getBlockNumber()`](getBlockNumberCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getBlockNumberReturn { + #[allow(missing_docs)] + pub blockNumber: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: getBlockNumberCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for getBlockNumberCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: getBlockNumberReturn) -> Self { + (value.blockNumber,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for getBlockNumberReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { blockNumber: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for getBlockNumberCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "getBlockNumber()"; + const SELECTOR: [u8; 4] = [66u8, 203u8, 177u8, 92u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: getBlockNumberReturn = r.into(); + r.blockNumber + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: getBlockNumberReturn = r.into(); + r.blockNumber + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `getChainId()` and selector `0x3408e470`. +```solidity +function getChainId() external view returns (uint256 chainid); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getChainIdCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`getChainId()`](getChainIdCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getChainIdReturn { + #[allow(missing_docs)] + pub chainid: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: getChainIdCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for getChainIdCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: getChainIdReturn) -> Self { + (value.chainid,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for getChainIdReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { chainid: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for getChainIdCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "getChainId()"; + const SELECTOR: [u8; 4] = [52u8, 8u8, 228u8, 112u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: getChainIdReturn = r.into(); + r.chainid + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: getChainIdReturn = r.into(); + r.chainid + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `getCurrentBlockCoinbase()` and selector `0xa8b0574e`. +```solidity +function getCurrentBlockCoinbase() external view returns (address coinbase); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getCurrentBlockCoinbaseCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`getCurrentBlockCoinbase()`](getCurrentBlockCoinbaseCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getCurrentBlockCoinbaseReturn { + #[allow(missing_docs)] + pub coinbase: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: getCurrentBlockCoinbaseCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for getCurrentBlockCoinbaseCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: getCurrentBlockCoinbaseReturn) -> Self { + (value.coinbase,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for getCurrentBlockCoinbaseReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { coinbase: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for getCurrentBlockCoinbaseCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "getCurrentBlockCoinbase()"; + const SELECTOR: [u8; 4] = [168u8, 176u8, 87u8, 78u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: getCurrentBlockCoinbaseReturn = r.into(); + r.coinbase + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: getCurrentBlockCoinbaseReturn = r.into(); + r.coinbase + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `getCurrentBlockGasLimit()` and selector `0x86d516e8`. +```solidity +function getCurrentBlockGasLimit() external view returns (uint256 gaslimit); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getCurrentBlockGasLimitCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`getCurrentBlockGasLimit()`](getCurrentBlockGasLimitCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getCurrentBlockGasLimitReturn { + #[allow(missing_docs)] + pub gaslimit: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: getCurrentBlockGasLimitCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for getCurrentBlockGasLimitCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: getCurrentBlockGasLimitReturn) -> Self { + (value.gaslimit,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for getCurrentBlockGasLimitReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { gaslimit: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for getCurrentBlockGasLimitCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "getCurrentBlockGasLimit()"; + const SELECTOR: [u8; 4] = [134u8, 213u8, 22u8, 232u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: getCurrentBlockGasLimitReturn = r.into(); + r.gaslimit + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: getCurrentBlockGasLimitReturn = r.into(); + r.gaslimit + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `getCurrentBlockTimestamp()` and selector `0x0f28c97d`. +```solidity +function getCurrentBlockTimestamp() external view returns (uint256 timestamp); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getCurrentBlockTimestampCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`getCurrentBlockTimestamp()`](getCurrentBlockTimestampCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getCurrentBlockTimestampReturn { + #[allow(missing_docs)] + pub timestamp: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: getCurrentBlockTimestampCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for getCurrentBlockTimestampCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: getCurrentBlockTimestampReturn) -> Self { + (value.timestamp,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for getCurrentBlockTimestampReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { timestamp: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for getCurrentBlockTimestampCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "getCurrentBlockTimestamp()"; + const SELECTOR: [u8; 4] = [15u8, 40u8, 201u8, 125u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: getCurrentBlockTimestampReturn = r.into(); + r.timestamp + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: getCurrentBlockTimestampReturn = r.into(); + r.timestamp + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `getEthBalance(address)` and selector `0x4d2301cc`. +```solidity +function getEthBalance(address addr) external view returns (uint256 balance); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getEthBalanceCall { + #[allow(missing_docs)] + pub addr: alloy::sol_types::private::Address, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`getEthBalance(address)`](getEthBalanceCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getEthBalanceReturn { + #[allow(missing_docs)] + pub balance: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: getEthBalanceCall) -> Self { + (value.addr,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for getEthBalanceCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { addr: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: getEthBalanceReturn) -> Self { + (value.balance,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for getEthBalanceReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { balance: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for getEthBalanceCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "getEthBalance(address)"; + const SELECTOR: [u8; 4] = [77u8, 35u8, 1u8, 204u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.addr, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: getEthBalanceReturn = r.into(); + r.balance + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: getEthBalanceReturn = r.into(); + r.balance + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `getLastBlockHash()` and selector `0x27e86d6e`. +```solidity +function getLastBlockHash() external view returns (bytes32 blockHash); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getLastBlockHashCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`getLastBlockHash()`](getLastBlockHashCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getLastBlockHashReturn { + #[allow(missing_docs)] + pub blockHash: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: getLastBlockHashCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for getLastBlockHashCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: getLastBlockHashReturn) -> Self { + (value.blockHash,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for getLastBlockHashReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { blockHash: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for getLastBlockHashCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::FixedBytes<32>; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "getLastBlockHash()"; + const SELECTOR: [u8; 4] = [39u8, 232u8, 109u8, 110u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: getLastBlockHashReturn = r.into(); + r.blockHash + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: getLastBlockHashReturn = r.into(); + r.blockHash + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `tryAggregate(bool,(address,bytes)[])` and selector `0xbce38bd7`. +```solidity +function tryAggregate(bool requireSuccess, Call[] memory calls) external payable returns (Result[] memory returnData); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct tryAggregateCall { + #[allow(missing_docs)] + pub requireSuccess: bool, + #[allow(missing_docs)] + pub calls: alloy::sol_types::private::Vec< + ::RustType, + >, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`tryAggregate(bool,(address,bytes)[])`](tryAggregateCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct tryAggregateReturn { + #[allow(missing_docs)] + pub returnData: alloy::sol_types::private::Vec< + ::RustType, + >, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Bool, + alloy::sol_types::sol_data::Array, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + bool, + alloy::sol_types::private::Vec< + ::RustType, + >, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: tryAggregateCall) -> Self { + (value.requireSuccess, value.calls) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for tryAggregateCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + requireSuccess: tuple.0, + calls: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Array,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Vec< + ::RustType, + >, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: tryAggregateReturn) -> Self { + (value.returnData,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for tryAggregateReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { returnData: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for tryAggregateCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Bool, + alloy::sol_types::sol_data::Array, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Vec< + ::RustType, + >; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Array,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "tryAggregate(bool,(address,bytes)[])"; + const SELECTOR: [u8; 4] = [188u8, 227u8, 139u8, 215u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.requireSuccess, + ), + as alloy_sol_types::SolType>::tokenize(&self.calls), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: tryAggregateReturn = r.into(); + r.returnData + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: tryAggregateReturn = r.into(); + r.returnData + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `tryBlockAndAggregate(bool,(address,bytes)[])` and selector `0x399542e9`. +```solidity +function tryBlockAndAggregate(bool requireSuccess, Call[] memory calls) external payable returns (uint256 blockNumber, bytes32 blockHash, Result[] memory returnData); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct tryBlockAndAggregateCall { + #[allow(missing_docs)] + pub requireSuccess: bool, + #[allow(missing_docs)] + pub calls: alloy::sol_types::private::Vec< + ::RustType, + >, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`tryBlockAndAggregate(bool,(address,bytes)[])`](tryBlockAndAggregateCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct tryBlockAndAggregateReturn { + #[allow(missing_docs)] + pub blockNumber: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub blockHash: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub returnData: alloy::sol_types::private::Vec< + ::RustType, + >, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Bool, + alloy::sol_types::sol_data::Array, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + bool, + alloy::sol_types::private::Vec< + ::RustType, + >, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: tryBlockAndAggregateCall) -> Self { + (value.requireSuccess, value.calls) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for tryBlockAndAggregateCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + requireSuccess: tuple.0, + calls: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Array, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::FixedBytes<32>, + alloy::sol_types::private::Vec< + ::RustType, + >, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: tryBlockAndAggregateReturn) -> Self { + (value.blockNumber, value.blockHash, value.returnData) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for tryBlockAndAggregateReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + blockNumber: tuple.0, + blockHash: tuple.1, + returnData: tuple.2, + } + } + } + } + impl tryBlockAndAggregateReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken< + '_, + > { + ( + as alloy_sol_types::SolType>::tokenize(&self.blockNumber), + as alloy_sol_types::SolType>::tokenize(&self.blockHash), + as alloy_sol_types::SolType>::tokenize(&self.returnData), + ) + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for tryBlockAndAggregateCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Bool, + alloy::sol_types::sol_data::Array, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = tryBlockAndAggregateReturn; + type ReturnTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Array, + ); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "tryBlockAndAggregate(bool,(address,bytes)[])"; + const SELECTOR: [u8; 4] = [57u8, 149u8, 66u8, 233u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.requireSuccess, + ), + as alloy_sol_types::SolType>::tokenize(&self.calls), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + tryBlockAndAggregateReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + ///Container for all the [`CBMulticall`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum CBMulticallCalls { + #[allow(missing_docs)] + aggregate(aggregateCall), + #[allow(missing_docs)] + aggregate3(aggregate3Call), + #[allow(missing_docs)] + aggregate3Value(aggregate3ValueCall), + #[allow(missing_docs)] + aggregateDelegateCalls(aggregateDelegateCallsCall), + #[allow(missing_docs)] + blockAndAggregate(blockAndAggregateCall), + #[allow(missing_docs)] + getBasefee(getBasefeeCall), + #[allow(missing_docs)] + getBlockHash(getBlockHashCall), + #[allow(missing_docs)] + getBlockNumber(getBlockNumberCall), + #[allow(missing_docs)] + getChainId(getChainIdCall), + #[allow(missing_docs)] + getCurrentBlockCoinbase(getCurrentBlockCoinbaseCall), + #[allow(missing_docs)] + getCurrentBlockGasLimit(getCurrentBlockGasLimitCall), + #[allow(missing_docs)] + getCurrentBlockTimestamp(getCurrentBlockTimestampCall), + #[allow(missing_docs)] + getEthBalance(getEthBalanceCall), + #[allow(missing_docs)] + getLastBlockHash(getLastBlockHashCall), + #[allow(missing_docs)] + tryAggregate(tryAggregateCall), + #[allow(missing_docs)] + tryBlockAndAggregate(tryBlockAndAggregateCall), + } + impl CBMulticallCalls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [15u8, 40u8, 201u8, 125u8], + [23u8, 77u8, 234u8, 113u8], + [37u8, 45u8, 186u8, 66u8], + [39u8, 232u8, 109u8, 110u8], + [52u8, 8u8, 228u8, 112u8], + [57u8, 149u8, 66u8, 233u8], + [62u8, 100u8, 166u8, 150u8], + [66u8, 203u8, 177u8, 92u8], + [77u8, 35u8, 1u8, 204u8], + [130u8, 173u8, 86u8, 203u8], + [133u8, 140u8, 200u8, 50u8], + [134u8, 213u8, 22u8, 232u8], + [168u8, 176u8, 87u8, 78u8], + [188u8, 227u8, 139u8, 215u8], + [195u8, 7u8, 127u8, 169u8], + [238u8, 130u8, 172u8, 94u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(getCurrentBlockTimestamp), + ::core::stringify!(aggregate3Value), + ::core::stringify!(aggregate), + ::core::stringify!(getLastBlockHash), + ::core::stringify!(getChainId), + ::core::stringify!(tryBlockAndAggregate), + ::core::stringify!(getBasefee), + ::core::stringify!(getBlockNumber), + ::core::stringify!(getEthBalance), + ::core::stringify!(aggregate3), + ::core::stringify!(aggregateDelegateCalls), + ::core::stringify!(getCurrentBlockGasLimit), + ::core::stringify!(getCurrentBlockCoinbase), + ::core::stringify!(tryAggregate), + ::core::stringify!(blockAndAggregate), + ::core::stringify!(getBlockHash), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for CBMulticallCalls { + const NAME: &'static str = "CBMulticallCalls"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 16usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::aggregate(_) => { + ::SELECTOR + } + Self::aggregate3(_) => { + ::SELECTOR + } + Self::aggregate3Value(_) => { + ::SELECTOR + } + Self::aggregateDelegateCalls(_) => { + ::SELECTOR + } + Self::blockAndAggregate(_) => { + ::SELECTOR + } + Self::getBasefee(_) => { + ::SELECTOR + } + Self::getBlockHash(_) => { + ::SELECTOR + } + Self::getBlockNumber(_) => { + ::SELECTOR + } + Self::getChainId(_) => { + ::SELECTOR + } + Self::getCurrentBlockCoinbase(_) => { + ::SELECTOR + } + Self::getCurrentBlockGasLimit(_) => { + ::SELECTOR + } + Self::getCurrentBlockTimestamp(_) => { + ::SELECTOR + } + Self::getEthBalance(_) => { + ::SELECTOR + } + Self::getLastBlockHash(_) => { + ::SELECTOR + } + Self::tryAggregate(_) => { + ::SELECTOR + } + Self::tryBlockAndAggregate(_) => { + ::SELECTOR + } + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn getCurrentBlockTimestamp( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(CBMulticallCalls::getCurrentBlockTimestamp) + } + getCurrentBlockTimestamp + }, + { + fn aggregate3Value( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(CBMulticallCalls::aggregate3Value) + } + aggregate3Value + }, + { + fn aggregate( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(CBMulticallCalls::aggregate) + } + aggregate + }, + { + fn getLastBlockHash( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(CBMulticallCalls::getLastBlockHash) + } + getLastBlockHash + }, + { + fn getChainId( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(CBMulticallCalls::getChainId) + } + getChainId + }, + { + fn tryBlockAndAggregate( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(CBMulticallCalls::tryBlockAndAggregate) + } + tryBlockAndAggregate + }, + { + fn getBasefee( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(CBMulticallCalls::getBasefee) + } + getBasefee + }, + { + fn getBlockNumber( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(CBMulticallCalls::getBlockNumber) + } + getBlockNumber + }, + { + fn getEthBalance( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(CBMulticallCalls::getEthBalance) + } + getEthBalance + }, + { + fn aggregate3( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(CBMulticallCalls::aggregate3) + } + aggregate3 + }, + { + fn aggregateDelegateCalls( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(CBMulticallCalls::aggregateDelegateCalls) + } + aggregateDelegateCalls + }, + { + fn getCurrentBlockGasLimit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(CBMulticallCalls::getCurrentBlockGasLimit) + } + getCurrentBlockGasLimit + }, + { + fn getCurrentBlockCoinbase( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(CBMulticallCalls::getCurrentBlockCoinbase) + } + getCurrentBlockCoinbase + }, + { + fn tryAggregate( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(CBMulticallCalls::tryAggregate) + } + tryAggregate + }, + { + fn blockAndAggregate( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(CBMulticallCalls::blockAndAggregate) + } + blockAndAggregate + }, + { + fn getBlockHash( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(CBMulticallCalls::getBlockHash) + } + getBlockHash + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn getCurrentBlockTimestamp( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(CBMulticallCalls::getCurrentBlockTimestamp) + } + getCurrentBlockTimestamp + }, + { + fn aggregate3Value( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(CBMulticallCalls::aggregate3Value) + } + aggregate3Value + }, + { + fn aggregate( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(CBMulticallCalls::aggregate) + } + aggregate + }, + { + fn getLastBlockHash( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(CBMulticallCalls::getLastBlockHash) + } + getLastBlockHash + }, + { + fn getChainId( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(CBMulticallCalls::getChainId) + } + getChainId + }, + { + fn tryBlockAndAggregate( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(CBMulticallCalls::tryBlockAndAggregate) + } + tryBlockAndAggregate + }, + { + fn getBasefee( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(CBMulticallCalls::getBasefee) + } + getBasefee + }, + { + fn getBlockNumber( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(CBMulticallCalls::getBlockNumber) + } + getBlockNumber + }, + { + fn getEthBalance( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(CBMulticallCalls::getEthBalance) + } + getEthBalance + }, + { + fn aggregate3( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(CBMulticallCalls::aggregate3) + } + aggregate3 + }, + { + fn aggregateDelegateCalls( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(CBMulticallCalls::aggregateDelegateCalls) + } + aggregateDelegateCalls + }, + { + fn getCurrentBlockGasLimit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(CBMulticallCalls::getCurrentBlockGasLimit) + } + getCurrentBlockGasLimit + }, + { + fn getCurrentBlockCoinbase( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(CBMulticallCalls::getCurrentBlockCoinbase) + } + getCurrentBlockCoinbase + }, + { + fn tryAggregate( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(CBMulticallCalls::tryAggregate) + } + tryAggregate + }, + { + fn blockAndAggregate( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(CBMulticallCalls::blockAndAggregate) + } + blockAndAggregate + }, + { + fn getBlockHash( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(CBMulticallCalls::getBlockHash) + } + getBlockHash + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::aggregate(inner) => { + ::abi_encoded_size(inner) + } + Self::aggregate3(inner) => { + ::abi_encoded_size(inner) + } + Self::aggregate3Value(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::aggregateDelegateCalls(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::blockAndAggregate(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::getBasefee(inner) => { + ::abi_encoded_size(inner) + } + Self::getBlockHash(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::getBlockNumber(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::getChainId(inner) => { + ::abi_encoded_size(inner) + } + Self::getCurrentBlockCoinbase(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::getCurrentBlockGasLimit(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::getCurrentBlockTimestamp(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::getEthBalance(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::getLastBlockHash(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::tryAggregate(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::tryBlockAndAggregate(inner) => { + ::abi_encoded_size( + inner, + ) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::aggregate(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::aggregate3(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::aggregate3Value(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::aggregateDelegateCalls(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::blockAndAggregate(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::getBasefee(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::getBlockHash(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::getBlockNumber(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::getChainId(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::getCurrentBlockCoinbase(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::getCurrentBlockGasLimit(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::getCurrentBlockTimestamp(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::getEthBalance(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::getLastBlockHash(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::tryAggregate(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::tryBlockAndAggregate(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + } + } + } + ///Container for all the [`CBMulticall`](self) custom errors. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum CBMulticallErrors { + #[allow(missing_docs)] + MustDelegateCall(MustDelegateCall), + } + impl CBMulticallErrors { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[[178u8, 92u8, 170u8, 81u8]]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(MustDelegateCall), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for CBMulticallErrors { + const NAME: &'static str = "CBMulticallErrors"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 1usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::MustDelegateCall(_) => { + ::SELECTOR + } + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn MustDelegateCall( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(CBMulticallErrors::MustDelegateCall) + } + MustDelegateCall + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn MustDelegateCall( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(CBMulticallErrors::MustDelegateCall) + } + MustDelegateCall + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::MustDelegateCall(inner) => { + ::abi_encoded_size( + inner, + ) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::MustDelegateCall(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`CBMulticall`](self) contract instance. + +See the [wrapper's documentation](`CBMulticallInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> CBMulticallInstance { + CBMulticallInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + CBMulticallInstance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + CBMulticallInstance::::deploy_builder(__provider) + } + /**A [`CBMulticall`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`CBMulticall`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct CBMulticallInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for CBMulticallInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("CBMulticallInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > CBMulticallInstance { + /**Creates a new wrapper around an on-chain [`CBMulticall`](self) contract instance. + +See the [wrapper's documentation](`CBMulticallInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl CBMulticallInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> CBMulticallInstance { + CBMulticallInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > CBMulticallInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`aggregate`] function. + pub fn aggregate( + &self, + calls: alloy::sol_types::private::Vec< + ::RustType, + >, + ) -> alloy_contract::SolCallBuilder<&P, aggregateCall, N> { + self.call_builder(&aggregateCall { calls }) + } + ///Creates a new call builder for the [`aggregate3`] function. + pub fn aggregate3( + &self, + calls: alloy::sol_types::private::Vec< + ::RustType, + >, + ) -> alloy_contract::SolCallBuilder<&P, aggregate3Call, N> { + self.call_builder(&aggregate3Call { calls }) + } + ///Creates a new call builder for the [`aggregate3Value`] function. + pub fn aggregate3Value( + &self, + calls: alloy::sol_types::private::Vec< + ::RustType, + >, + ) -> alloy_contract::SolCallBuilder<&P, aggregate3ValueCall, N> { + self.call_builder(&aggregate3ValueCall { calls }) + } + ///Creates a new call builder for the [`aggregateDelegateCalls`] function. + pub fn aggregateDelegateCalls( + &self, + calls: alloy::sol_types::private::Vec< + ::RustType, + >, + ) -> alloy_contract::SolCallBuilder<&P, aggregateDelegateCallsCall, N> { + self.call_builder( + &aggregateDelegateCallsCall { + calls, + }, + ) + } + ///Creates a new call builder for the [`blockAndAggregate`] function. + pub fn blockAndAggregate( + &self, + calls: alloy::sol_types::private::Vec< + ::RustType, + >, + ) -> alloy_contract::SolCallBuilder<&P, blockAndAggregateCall, N> { + self.call_builder(&blockAndAggregateCall { calls }) + } + ///Creates a new call builder for the [`getBasefee`] function. + pub fn getBasefee( + &self, + ) -> alloy_contract::SolCallBuilder<&P, getBasefeeCall, N> { + self.call_builder(&getBasefeeCall) + } + ///Creates a new call builder for the [`getBlockHash`] function. + pub fn getBlockHash( + &self, + blockNumber: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, getBlockHashCall, N> { + self.call_builder(&getBlockHashCall { blockNumber }) + } + ///Creates a new call builder for the [`getBlockNumber`] function. + pub fn getBlockNumber( + &self, + ) -> alloy_contract::SolCallBuilder<&P, getBlockNumberCall, N> { + self.call_builder(&getBlockNumberCall) + } + ///Creates a new call builder for the [`getChainId`] function. + pub fn getChainId( + &self, + ) -> alloy_contract::SolCallBuilder<&P, getChainIdCall, N> { + self.call_builder(&getChainIdCall) + } + ///Creates a new call builder for the [`getCurrentBlockCoinbase`] function. + pub fn getCurrentBlockCoinbase( + &self, + ) -> alloy_contract::SolCallBuilder<&P, getCurrentBlockCoinbaseCall, N> { + self.call_builder(&getCurrentBlockCoinbaseCall) + } + ///Creates a new call builder for the [`getCurrentBlockGasLimit`] function. + pub fn getCurrentBlockGasLimit( + &self, + ) -> alloy_contract::SolCallBuilder<&P, getCurrentBlockGasLimitCall, N> { + self.call_builder(&getCurrentBlockGasLimitCall) + } + ///Creates a new call builder for the [`getCurrentBlockTimestamp`] function. + pub fn getCurrentBlockTimestamp( + &self, + ) -> alloy_contract::SolCallBuilder<&P, getCurrentBlockTimestampCall, N> { + self.call_builder(&getCurrentBlockTimestampCall) + } + ///Creates a new call builder for the [`getEthBalance`] function. + pub fn getEthBalance( + &self, + addr: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, getEthBalanceCall, N> { + self.call_builder(&getEthBalanceCall { addr }) + } + ///Creates a new call builder for the [`getLastBlockHash`] function. + pub fn getLastBlockHash( + &self, + ) -> alloy_contract::SolCallBuilder<&P, getLastBlockHashCall, N> { + self.call_builder(&getLastBlockHashCall) + } + ///Creates a new call builder for the [`tryAggregate`] function. + pub fn tryAggregate( + &self, + requireSuccess: bool, + calls: alloy::sol_types::private::Vec< + ::RustType, + >, + ) -> alloy_contract::SolCallBuilder<&P, tryAggregateCall, N> { + self.call_builder( + &tryAggregateCall { + requireSuccess, + calls, + }, + ) + } + ///Creates a new call builder for the [`tryBlockAndAggregate`] function. + pub fn tryBlockAndAggregate( + &self, + requireSuccess: bool, + calls: alloy::sol_types::private::Vec< + ::RustType, + >, + ) -> alloy_contract::SolCallBuilder<&P, tryBlockAndAggregateCall, N> { + self.call_builder( + &tryBlockAndAggregateCall { + requireSuccess, + calls, + }, + ) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > CBMulticallInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + } +} diff --git a/bindings/rust/src/check_balance_low.rs b/bindings/rust/src/check_balance_low.rs new file mode 100644 index 000000000..fc49466ec --- /dev/null +++ b/bindings/rust/src/check_balance_low.rs @@ -0,0 +1,1202 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface CheckBalanceLow { + struct Params { + address target; + uint256 threshold; + } + + event _EventToExposeStructInABI__Params(Params params); + + function check(bytes memory _params) external view returns (bool execute_); + function name() external view returns (string memory); +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "function", + "name": "check", + "inputs": [ + { + "name": "_params", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [ + { + "name": "execute_", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "name", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "view" + }, + { + "type": "event", + "name": "_EventToExposeStructInABI__Params", + "inputs": [ + { + "name": "params", + "type": "tuple", + "indexed": false, + "internalType": "struct CheckBalanceLow.Params", + "components": [ + { + "name": "target", + "type": "address", + "internalType": "address" + }, + { + "name": "threshold", + "type": "uint256", + "internalType": "uint256" + } + ] + } + ], + "anonymous": false + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod CheckBalanceLow { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x60c0604052600f60809081526e436865636b42616c616e63654c6f7760881b60a05260009061002e90826100e0565b5034801561003b57600080fd5b5061019f565b634e487b7160e01b600052604160045260246000fd5b600181811c9082168061006b57607f821691505b60208210810361008b57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156100db57600081815260208120601f850160051c810160208610156100b85750805b601f850160051c820191505b818110156100d7578281556001016100c4565b5050505b505050565b81516001600160401b038111156100f9576100f9610041565b61010d816101078454610057565b84610091565b602080601f831160018114610142576000841561012a5750858301515b600019600386901b1c1916600185901b1785556100d7565b600085815260208120601f198616915b8281101561017157888601518255948401946001909101908401610152565b508582101561018f5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b610389806101ae6000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c806306fdde031461003b578063c64b3bb514610059575b600080fd5b61004361007c565b6040516100509190610147565b60405180910390f35b61006c6100673660046101e9565b61010a565b6040519015158152602001610050565b60008054610089906102b8565b80601f01602080910402602001604051908101604052809291908181526020018280546100b5906102b8565b80156101025780601f106100d757610100808354040283529160200191610102565b820191906000526020600020905b8154815290600101906020018083116100e557829003601f168201915b505050505081565b60008082806020019051810190610121919061030b565b6020810151905173ffffffffffffffffffffffffffffffffffffffff1631109392505050565b600060208083528351808285015260005b8181101561017457858101830151858201604001528201610158565b81811115610186576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000602082840312156101fb57600080fd5b813567ffffffffffffffff8082111561021357600080fd5b818401915084601f83011261022757600080fd5b813581811115610239576102396101ba565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190838211818310171561027f5761027f6101ba565b8160405282815287602084870101111561029857600080fd5b826020860160208301376000928101602001929092525095945050505050565b600181811c908216806102cc57607f821691505b602082108103610305577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b60006040828403121561031d57600080fd5b6040516040810181811067ffffffffffffffff82111715610340576103406101ba565b604052825173ffffffffffffffffffffffffffffffffffffffff8116811461036757600080fd5b8152602092830151928101929092525091905056fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\xC0`@R`\x0F`\x80\x90\x81RnCheckBalanceLow`\x88\x1B`\xA0R`\0\x90a\0.\x90\x82a\0\xE0V[P4\x80\x15a\0;W`\0\x80\xFD[Pa\x01\x9FV[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[`\x01\x81\x81\x1C\x90\x82\x16\x80a\0kW`\x7F\x82\x16\x91P[` \x82\x10\x81\x03a\0\x8BWcNH{q`\xE0\x1B`\0R`\"`\x04R`$`\0\xFD[P\x91\x90PV[`\x1F\x82\x11\x15a\0\xDBW`\0\x81\x81R` \x81 `\x1F\x85\x01`\x05\x1C\x81\x01` \x86\x10\x15a\0\xB8WP\x80[`\x1F\x85\x01`\x05\x1C\x82\x01\x91P[\x81\x81\x10\x15a\0\xD7W\x82\x81U`\x01\x01a\0\xC4V[PPP[PPPV[\x81Q`\x01`\x01`@\x1B\x03\x81\x11\x15a\0\xF9Wa\0\xF9a\0AV[a\x01\r\x81a\x01\x07\x84Ta\0WV[\x84a\0\x91V[` \x80`\x1F\x83\x11`\x01\x81\x14a\x01BW`\0\x84\x15a\x01*WP\x85\x83\x01Q[`\0\x19`\x03\x86\x90\x1B\x1C\x19\x16`\x01\x85\x90\x1B\x17\x85Ua\0\xD7V[`\0\x85\x81R` \x81 `\x1F\x19\x86\x16\x91[\x82\x81\x10\x15a\x01qW\x88\x86\x01Q\x82U\x94\x84\x01\x94`\x01\x90\x91\x01\x90\x84\x01a\x01RV[P\x85\x82\x10\x15a\x01\x8FW\x87\x85\x01Q`\0\x19`\x03\x88\x90\x1B`\xF8\x16\x1C\x19\x16\x81U[PPPPP`\x01\x90\x81\x1B\x01\x90UPV[a\x03\x89\x80a\x01\xAE`\09`\0\xF3\xFE`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`\x046\x10a\x006W`\x005`\xE0\x1C\x80c\x06\xFD\xDE\x03\x14a\0;W\x80c\xC6K;\xB5\x14a\0YW[`\0\x80\xFD[a\0Ca\0|V[`@Qa\0P\x91\x90a\x01GV[`@Q\x80\x91\x03\x90\xF3[a\0la\0g6`\x04a\x01\xE9V[a\x01\nV[`@Q\x90\x15\x15\x81R` \x01a\0PV[`\0\x80Ta\0\x89\x90a\x02\xB8V[\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x92\x91\x90\x81\x81R` \x01\x82\x80Ta\0\xB5\x90a\x02\xB8V[\x80\x15a\x01\x02W\x80`\x1F\x10a\0\xD7Wa\x01\0\x80\x83T\x04\x02\x83R\x91` \x01\x91a\x01\x02V[\x82\x01\x91\x90`\0R` `\0 \x90[\x81T\x81R\x90`\x01\x01\x90` \x01\x80\x83\x11a\0\xE5W\x82\x90\x03`\x1F\x16\x82\x01\x91[PPPPP\x81V[`\0\x80\x82\x80` \x01\x90Q\x81\x01\x90a\x01!\x91\x90a\x03\x0BV[` \x81\x01Q\x90Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x161\x10\x93\x92PPPV[`\0` \x80\x83R\x83Q\x80\x82\x85\x01R`\0[\x81\x81\x10\x15a\x01tW\x85\x81\x01\x83\x01Q\x85\x82\x01`@\x01R\x82\x01a\x01XV[\x81\x81\x11\x15a\x01\x86W`\0`@\x83\x87\x01\x01R[P`\x1F\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x92\x90\x92\x01`@\x01\x93\x92PPPV[\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[`\0` \x82\x84\x03\x12\x15a\x01\xFBW`\0\x80\xFD[\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x02\x13W`\0\x80\xFD[\x81\x84\x01\x91P\x84`\x1F\x83\x01\x12a\x02'W`\0\x80\xFD[\x815\x81\x81\x11\x15a\x029Wa\x029a\x01\xBAV[`@Q`\x1F\x82\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x90\x81\x16`?\x01\x16\x81\x01\x90\x83\x82\x11\x81\x83\x10\x17\x15a\x02\x7FWa\x02\x7Fa\x01\xBAV[\x81`@R\x82\x81R\x87` \x84\x87\x01\x01\x11\x15a\x02\x98W`\0\x80\xFD[\x82` \x86\x01` \x83\x017`\0\x92\x81\x01` \x01\x92\x90\x92RP\x95\x94PPPPPV[`\x01\x81\x81\x1C\x90\x82\x16\x80a\x02\xCCW`\x7F\x82\x16\x91P[` \x82\x10\x81\x03a\x03\x05W\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`\"`\x04R`$`\0\xFD[P\x91\x90PV[`\0`@\x82\x84\x03\x12\x15a\x03\x1DW`\0\x80\xFD[`@Q`@\x81\x01\x81\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17\x15a\x03@Wa\x03@a\x01\xBAV[`@R\x82Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x03gW`\0\x80\xFD[\x81R` \x92\x83\x01Q\x92\x81\x01\x92\x90\x92RP\x91\x90PV\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x608060405234801561001057600080fd5b50600436106100365760003560e01c806306fdde031461003b578063c64b3bb514610059575b600080fd5b61004361007c565b6040516100509190610147565b60405180910390f35b61006c6100673660046101e9565b61010a565b6040519015158152602001610050565b60008054610089906102b8565b80601f01602080910402602001604051908101604052809291908181526020018280546100b5906102b8565b80156101025780601f106100d757610100808354040283529160200191610102565b820191906000526020600020905b8154815290600101906020018083116100e557829003601f168201915b505050505081565b60008082806020019051810190610121919061030b565b6020810151905173ffffffffffffffffffffffffffffffffffffffff1631109392505050565b600060208083528351808285015260005b8181101561017457858101830151858201604001528201610158565b81811115610186576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000602082840312156101fb57600080fd5b813567ffffffffffffffff8082111561021357600080fd5b818401915084601f83011261022757600080fd5b813581811115610239576102396101ba565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190838211818310171561027f5761027f6101ba565b8160405282815287602084870101111561029857600080fd5b826020860160208301376000928101602001929092525095945050505050565b600181811c908216806102cc57607f821691505b602082108103610305577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b60006040828403121561031d57600080fd5b6040516040810181811067ffffffffffffffff82111715610340576103406101ba565b604052825173ffffffffffffffffffffffffffffffffffffffff8116811461036757600080fd5b8152602092830151928101929092525091905056fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`\x046\x10a\x006W`\x005`\xE0\x1C\x80c\x06\xFD\xDE\x03\x14a\0;W\x80c\xC6K;\xB5\x14a\0YW[`\0\x80\xFD[a\0Ca\0|V[`@Qa\0P\x91\x90a\x01GV[`@Q\x80\x91\x03\x90\xF3[a\0la\0g6`\x04a\x01\xE9V[a\x01\nV[`@Q\x90\x15\x15\x81R` \x01a\0PV[`\0\x80Ta\0\x89\x90a\x02\xB8V[\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x92\x91\x90\x81\x81R` \x01\x82\x80Ta\0\xB5\x90a\x02\xB8V[\x80\x15a\x01\x02W\x80`\x1F\x10a\0\xD7Wa\x01\0\x80\x83T\x04\x02\x83R\x91` \x01\x91a\x01\x02V[\x82\x01\x91\x90`\0R` `\0 \x90[\x81T\x81R\x90`\x01\x01\x90` \x01\x80\x83\x11a\0\xE5W\x82\x90\x03`\x1F\x16\x82\x01\x91[PPPPP\x81V[`\0\x80\x82\x80` \x01\x90Q\x81\x01\x90a\x01!\x91\x90a\x03\x0BV[` \x81\x01Q\x90Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x161\x10\x93\x92PPPV[`\0` \x80\x83R\x83Q\x80\x82\x85\x01R`\0[\x81\x81\x10\x15a\x01tW\x85\x81\x01\x83\x01Q\x85\x82\x01`@\x01R\x82\x01a\x01XV[\x81\x81\x11\x15a\x01\x86W`\0`@\x83\x87\x01\x01R[P`\x1F\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x92\x90\x92\x01`@\x01\x93\x92PPPV[\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[`\0` \x82\x84\x03\x12\x15a\x01\xFBW`\0\x80\xFD[\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x02\x13W`\0\x80\xFD[\x81\x84\x01\x91P\x84`\x1F\x83\x01\x12a\x02'W`\0\x80\xFD[\x815\x81\x81\x11\x15a\x029Wa\x029a\x01\xBAV[`@Q`\x1F\x82\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x90\x81\x16`?\x01\x16\x81\x01\x90\x83\x82\x11\x81\x83\x10\x17\x15a\x02\x7FWa\x02\x7Fa\x01\xBAV[\x81`@R\x82\x81R\x87` \x84\x87\x01\x01\x11\x15a\x02\x98W`\0\x80\xFD[\x82` \x86\x01` \x83\x017`\0\x92\x81\x01` \x01\x92\x90\x92RP\x95\x94PPPPPV[`\x01\x81\x81\x1C\x90\x82\x16\x80a\x02\xCCW`\x7F\x82\x16\x91P[` \x82\x10\x81\x03a\x03\x05W\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`\"`\x04R`$`\0\xFD[P\x91\x90PV[`\0`@\x82\x84\x03\x12\x15a\x03\x1DW`\0\x80\xFD[`@Q`@\x81\x01\x81\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17\x15a\x03@Wa\x03@a\x01\xBAV[`@R\x82Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x03gW`\0\x80\xFD[\x81R` \x92\x83\x01Q\x92\x81\x01\x92\x90\x92RP\x91\x90PV\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**```solidity +struct Params { address target; uint256 threshold; } +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct Params { + #[allow(missing_docs)] + pub target: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub threshold: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: Params) -> Self { + (value.target, value.threshold) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for Params { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + target: tuple.0, + threshold: tuple.1, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolValue for Params { + type SolType = Self; + } + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for Params { + #[inline] + fn stv_to_tokens(&self) -> ::Token<'_> { + ( + ::tokenize( + &self.target, + ), + as alloy_sol_types::SolType>::tokenize(&self.threshold), + ) + } + #[inline] + fn stv_abi_encoded_size(&self) -> usize { + if let Some(size) = ::ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encoded_size(&tuple) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + ::eip712_hash_struct(self) + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + if let Some(size) = ::PACKED_ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for Params { + type RustType = Self; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = ::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + as alloy_sol_types::SolType>::valid_token(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + let tuple = as alloy_sol_types::SolType>::detokenize(token); + >>::from(tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolStruct for Params { + const NAME: &'static str = "Params"; + #[inline] + fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> { + alloy_sol_types::private::Cow::Borrowed( + "Params(address target,uint256 threshold)", + ) + } + #[inline] + fn eip712_components() -> alloy_sol_types::private::Vec< + alloy_sol_types::private::Cow<'static, str>, + > { + alloy_sol_types::private::Vec::new() + } + #[inline] + fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> { + ::eip712_root_type() + } + #[inline] + fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec { + [ + ::eip712_data_word( + &self.target, + ) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.threshold) + .0, + ] + .concat() + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for Params { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + 0usize + + ::topic_preimage_length( + &rust.target, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.threshold, + ) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + out.reserve( + ::topic_preimage_length(rust), + ); + ::encode_topic_preimage( + &rust.target, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.threshold, + out, + ); + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + let mut out = alloy_sol_types::private::Vec::new(); + ::encode_topic_preimage( + rust, + &mut out, + ); + alloy_sol_types::abi::token::WordToken( + alloy_sol_types::private::keccak256(out), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `_EventToExposeStructInABI__Params((address,uint256))` and selector `0xd675e8c1bf2f28f052b74c311412663dd60576c00ce3346b9a6d614df2b0b60b`. +```solidity +event _EventToExposeStructInABI__Params(Params params); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct _EventToExposeStructInABI__Params { + #[allow(missing_docs)] + pub params: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for _EventToExposeStructInABI__Params { + type DataTuple<'a> = (Params,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,); + const SIGNATURE: &'static str = "_EventToExposeStructInABI__Params((address,uint256))"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 214u8, 117u8, 232u8, 193u8, 191u8, 47u8, 40u8, 240u8, 82u8, 183u8, 76u8, + 49u8, 20u8, 18u8, 102u8, 61u8, 214u8, 5u8, 118u8, 192u8, 12u8, 227u8, + 52u8, 107u8, 154u8, 109u8, 97u8, 77u8, 242u8, 176u8, 182u8, 11u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { params: data.0 } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + (::tokenize(&self.params),) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(),) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData + for _EventToExposeStructInABI__Params { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&_EventToExposeStructInABI__Params> + for alloy_sol_types::private::LogData { + #[inline] + fn from( + this: &_EventToExposeStructInABI__Params, + ) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `check(bytes)` and selector `0xc64b3bb5`. +```solidity +function check(bytes memory _params) external view returns (bool execute_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct checkCall { + #[allow(missing_docs)] + pub _params: alloy::sol_types::private::Bytes, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`check(bytes)`](checkCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct checkReturn { + #[allow(missing_docs)] + pub execute_: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bytes,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Bytes,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: checkCall) -> Self { + (value._params,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for checkCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _params: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: checkReturn) -> Self { + (value.execute_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for checkReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { execute_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for checkCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Bytes,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "check(bytes)"; + const SELECTOR: [u8; 4] = [198u8, 75u8, 59u8, 181u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._params, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: checkReturn = r.into(); + r.execute_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: checkReturn = r.into(); + r.execute_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `name()` and selector `0x06fdde03`. +```solidity +function name() external view returns (string memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct nameCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`name()`](nameCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct nameReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: nameCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for nameCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: nameReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for nameReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for nameCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::String; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "name()"; + const SELECTOR: [u8; 4] = [6u8, 253u8, 222u8, 3u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: nameReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: nameReturn = r.into(); + r._0 + }) + } + } + }; + ///Container for all the [`CheckBalanceLow`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum CheckBalanceLowCalls { + #[allow(missing_docs)] + check(checkCall), + #[allow(missing_docs)] + name(nameCall), + } + impl CheckBalanceLowCalls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [6u8, 253u8, 222u8, 3u8], + [198u8, 75u8, 59u8, 181u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(name), + ::core::stringify!(check), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for CheckBalanceLowCalls { + const NAME: &'static str = "CheckBalanceLowCalls"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 2usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::check(_) => ::SELECTOR, + Self::name(_) => ::SELECTOR, + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn name( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(CheckBalanceLowCalls::name) + } + name + }, + { + fn check( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(CheckBalanceLowCalls::check) + } + check + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn name( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(CheckBalanceLowCalls::name) + } + name + }, + { + fn check( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(CheckBalanceLowCalls::check) + } + check + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::check(inner) => { + ::abi_encoded_size(inner) + } + Self::name(inner) => { + ::abi_encoded_size(inner) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::check(inner) => { + ::abi_encode_raw(inner, out) + } + Self::name(inner) => { + ::abi_encode_raw(inner, out) + } + } + } + } + ///Container for all the [`CheckBalanceLow`](self) events. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum CheckBalanceLowEvents { + #[allow(missing_docs)] + _EventToExposeStructInABI__Params(_EventToExposeStructInABI__Params), + } + impl CheckBalanceLowEvents { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 32usize]] = &[ + [ + 214u8, 117u8, 232u8, 193u8, 191u8, 47u8, 40u8, 240u8, 82u8, 183u8, 76u8, + 49u8, 20u8, 18u8, 102u8, 61u8, 214u8, 5u8, 118u8, 192u8, 12u8, 227u8, + 52u8, 107u8, 154u8, 109u8, 97u8, 77u8, 242u8, 176u8, 182u8, 11u8, + ], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(_EventToExposeStructInABI__Params), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + <_EventToExposeStructInABI__Params as alloy_sol_types::SolEvent>::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolEventInterface for CheckBalanceLowEvents { + const NAME: &'static str = "CheckBalanceLowEvents"; + const COUNT: usize = 1usize; + fn decode_raw_log( + topics: &[alloy_sol_types::Word], + data: &[u8], + ) -> alloy_sol_types::Result { + match topics.first().copied() { + Some( + <_EventToExposeStructInABI__Params as alloy_sol_types::SolEvent>::SIGNATURE_HASH, + ) => { + <_EventToExposeStructInABI__Params as alloy_sol_types::SolEvent>::decode_raw_log( + topics, + data, + ) + .map(Self::_EventToExposeStructInABI__Params) + } + _ => { + alloy_sol_types::private::Err(alloy_sol_types::Error::InvalidLog { + name: ::NAME, + log: alloy_sol_types::private::Box::new( + alloy_sol_types::private::LogData::new_unchecked( + topics.to_vec(), + data.to_vec().into(), + ), + ), + }) + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for CheckBalanceLowEvents { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + match self { + Self::_EventToExposeStructInABI__Params(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + } + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + match self { + Self::_EventToExposeStructInABI__Params(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`CheckBalanceLow`](self) contract instance. + +See the [wrapper's documentation](`CheckBalanceLowInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> CheckBalanceLowInstance { + CheckBalanceLowInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + CheckBalanceLowInstance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + CheckBalanceLowInstance::::deploy_builder(__provider) + } + /**A [`CheckBalanceLow`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`CheckBalanceLow`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct CheckBalanceLowInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for CheckBalanceLowInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("CheckBalanceLowInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > CheckBalanceLowInstance { + /**Creates a new wrapper around an on-chain [`CheckBalanceLow`](self) contract instance. + +See the [wrapper's documentation](`CheckBalanceLowInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl CheckBalanceLowInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> CheckBalanceLowInstance { + CheckBalanceLowInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > CheckBalanceLowInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`check`] function. + pub fn check( + &self, + _params: alloy::sol_types::private::Bytes, + ) -> alloy_contract::SolCallBuilder<&P, checkCall, N> { + self.call_builder(&checkCall { _params }) + } + ///Creates a new call builder for the [`name`] function. + pub fn name(&self) -> alloy_contract::SolCallBuilder<&P, nameCall, N> { + self.call_builder(&nameCall) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > CheckBalanceLowInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + ///Creates a new event filter for the [`_EventToExposeStructInABI__Params`] event. + pub fn _EventToExposeStructInABI__Params_filter( + &self, + ) -> alloy_contract::Event<&P, _EventToExposeStructInABI__Params, N> { + self.event_filter::<_EventToExposeStructInABI__Params>() + } + } +} diff --git a/bindings/rust/src/check_secrets.rs b/bindings/rust/src/check_secrets.rs new file mode 100644 index 000000000..865ce79bc --- /dev/null +++ b/bindings/rust/src/check_secrets.rs @@ -0,0 +1,1813 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface CheckSecrets { + struct Params { + uint256 delay; + bytes32 secretHashMustExist; + bytes32 secretHashMustNotExist; + } + + event SecretRevealed(bytes32 indexed secretHash, bytes secret); + event _EventToExposeStructInABI__Params(Params params); + + function check(bytes memory _params) external view returns (bool execute_); + function name() external view returns (string memory); + function reveal(bytes memory _secret) external; + function revealedSecrets(bytes32) external view returns (uint256); +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "function", + "name": "check", + "inputs": [ + { + "name": "_params", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [ + { + "name": "execute_", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "name", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "reveal", + "inputs": [ + { + "name": "_secret", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "revealedSecrets", + "inputs": [ + { + "name": "", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "event", + "name": "SecretRevealed", + "inputs": [ + { + "name": "secretHash", + "type": "bytes32", + "indexed": true, + "internalType": "bytes32" + }, + { + "name": "secret", + "type": "bytes", + "indexed": false, + "internalType": "bytes" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "_EventToExposeStructInABI__Params", + "inputs": [ + { + "name": "params", + "type": "tuple", + "indexed": false, + "internalType": "struct CheckSecrets.Params", + "components": [ + { + "name": "delay", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "secretHashMustExist", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "secretHashMustNotExist", + "type": "bytes32", + "internalType": "bytes32" + } + ] + } + ], + "anonymous": false + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod CheckSecrets { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x60c0604052600c60809081526b436865636b5365637265747360a01b60a05260009061002b90826100dd565b5034801561003857600080fd5b5061019c565b634e487b7160e01b600052604160045260246000fd5b600181811c9082168061006857607f821691505b60208210810361008857634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156100d857600081815260208120601f850160051c810160208610156100b55750805b601f850160051c820191505b818110156100d4578281556001016100c1565b5050505b505050565b81516001600160401b038111156100f6576100f661003e565b61010a816101048454610054565b8461008e565b602080601f83116001811461013f57600084156101275750858301515b600019600386901b1c1916600185901b1785556100d4565b600085815260208120601f198616915b8281101561016e5788860151825594840194600190910190840161014f565b508582101561018c5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b610570806101ab6000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c806306fdde0314610051578063246167bc1461006f57806372f12a5d1461009d578063c64b3bb5146100b2575b600080fd5b6100596100d5565b604051610066919061034b565b60405180910390f35b61008f61007d36600461035e565b60016020526000908152604090205481565b604051908152602001610066565b6100b06100ab3660046103a6565b610163565b005b6100c56100c03660046103a6565b61025e565b6040519015158152602001610066565b600080546100e290610475565b80601f016020809104026020016040519081016040528092919081815260200182805461010e90610475565b801561015b5780601f106101305761010080835404028352916020019161015b565b820191906000526020600020905b81548152906001019060200180831161013e57829003601f168201915b505050505081565b8051602080830191909120600081815260019092526040909120541561020f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f436865636b536563726574733a2073656372657420616c72656164792072657660448201527f65616c6564000000000000000000000000000000000000000000000000000000606482015260840160405180910390fd5b600081815260016020526040908190204290555181907fbab2b812958b05e36be1f0553f496fa5d27441155d6be0469e1c3fe1e51ad8589061025290859061034b565b60405180910390a25050565b6000808280602001905181019061027591906104c8565b905060006001600083602001518152602001908152602001600020541180156102be575080516020808301516000908152600190915260409020546102ba9190610524565b4210155b80156102d95750604080820151600090815260016020522054155b9392505050565b6000815180845260005b81811015610306576020818501810151868301820152016102ea565b81811115610318576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006102d960208301846102e0565b60006020828403121561037057600080fd5b5035919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000602082840312156103b857600080fd5b813567ffffffffffffffff808211156103d057600080fd5b818401915084601f8301126103e457600080fd5b8135818111156103f6576103f6610377565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190838211818310171561043c5761043c610377565b8160405282815287602084870101111561045557600080fd5b826020860160208301376000928101602001929092525095945050505050565b600181811c9082168061048957607f821691505b6020821081036104c2577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b6000606082840312156104da57600080fd5b6040516060810181811067ffffffffffffffff821117156104fd576104fd610377565b80604052508251815260208301516020820152604083015160408201528091505092915050565b6000821982111561055e577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b50019056fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\xC0`@R`\x0C`\x80\x90\x81RkCheckSecrets`\xA0\x1B`\xA0R`\0\x90a\0+\x90\x82a\0\xDDV[P4\x80\x15a\08W`\0\x80\xFD[Pa\x01\x9CV[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[`\x01\x81\x81\x1C\x90\x82\x16\x80a\0hW`\x7F\x82\x16\x91P[` \x82\x10\x81\x03a\0\x88WcNH{q`\xE0\x1B`\0R`\"`\x04R`$`\0\xFD[P\x91\x90PV[`\x1F\x82\x11\x15a\0\xD8W`\0\x81\x81R` \x81 `\x1F\x85\x01`\x05\x1C\x81\x01` \x86\x10\x15a\0\xB5WP\x80[`\x1F\x85\x01`\x05\x1C\x82\x01\x91P[\x81\x81\x10\x15a\0\xD4W\x82\x81U`\x01\x01a\0\xC1V[PPP[PPPV[\x81Q`\x01`\x01`@\x1B\x03\x81\x11\x15a\0\xF6Wa\0\xF6a\0>V[a\x01\n\x81a\x01\x04\x84Ta\0TV[\x84a\0\x8EV[` \x80`\x1F\x83\x11`\x01\x81\x14a\x01?W`\0\x84\x15a\x01'WP\x85\x83\x01Q[`\0\x19`\x03\x86\x90\x1B\x1C\x19\x16`\x01\x85\x90\x1B\x17\x85Ua\0\xD4V[`\0\x85\x81R` \x81 `\x1F\x19\x86\x16\x91[\x82\x81\x10\x15a\x01nW\x88\x86\x01Q\x82U\x94\x84\x01\x94`\x01\x90\x91\x01\x90\x84\x01a\x01OV[P\x85\x82\x10\x15a\x01\x8CW\x87\x85\x01Q`\0\x19`\x03\x88\x90\x1B`\xF8\x16\x1C\x19\x16\x81U[PPPPP`\x01\x90\x81\x1B\x01\x90UPV[a\x05p\x80a\x01\xAB`\09`\0\xF3\xFE`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`\x046\x10a\0LW`\x005`\xE0\x1C\x80c\x06\xFD\xDE\x03\x14a\0QW\x80c$ag\xBC\x14a\0oW\x80cr\xF1*]\x14a\0\x9DW\x80c\xC6K;\xB5\x14a\0\xB2W[`\0\x80\xFD[a\0Ya\0\xD5V[`@Qa\0f\x91\x90a\x03KV[`@Q\x80\x91\x03\x90\xF3[a\0\x8Fa\0}6`\x04a\x03^V[`\x01` R`\0\x90\x81R`@\x90 T\x81V[`@Q\x90\x81R` \x01a\0fV[a\0\xB0a\0\xAB6`\x04a\x03\xA6V[a\x01cV[\0[a\0\xC5a\0\xC06`\x04a\x03\xA6V[a\x02^V[`@Q\x90\x15\x15\x81R` \x01a\0fV[`\0\x80Ta\0\xE2\x90a\x04uV[\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x92\x91\x90\x81\x81R` \x01\x82\x80Ta\x01\x0E\x90a\x04uV[\x80\x15a\x01[W\x80`\x1F\x10a\x010Wa\x01\0\x80\x83T\x04\x02\x83R\x91` \x01\x91a\x01[V[\x82\x01\x91\x90`\0R` `\0 \x90[\x81T\x81R\x90`\x01\x01\x90` \x01\x80\x83\x11a\x01>W\x82\x90\x03`\x1F\x16\x82\x01\x91[PPPPP\x81V[\x80Q` \x80\x83\x01\x91\x90\x91 `\0\x81\x81R`\x01\x90\x92R`@\x90\x91 T\x15a\x02\x0FW`@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\x82\x01R`%`$\x82\x01R\x7FCheckSecrets: secret already rev`D\x82\x01R\x7Fealed\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`d\x82\x01R`\x84\x01`@Q\x80\x91\x03\x90\xFD[`\0\x81\x81R`\x01` R`@\x90\x81\x90 B\x90UQ\x81\x90\x7F\xBA\xB2\xB8\x12\x95\x8B\x05\xE3k\xE1\xF0U?Io\xA5\xD2tA\x15]k\xE0F\x9E\x1C?\xE1\xE5\x1A\xD8X\x90a\x02R\x90\x85\x90a\x03KV[`@Q\x80\x91\x03\x90\xA2PPV[`\0\x80\x82\x80` \x01\x90Q\x81\x01\x90a\x02u\x91\x90a\x04\xC8V[\x90P`\0`\x01`\0\x83` \x01Q\x81R` \x01\x90\x81R` \x01`\0 T\x11\x80\x15a\x02\xBEWP\x80Q` \x80\x83\x01Q`\0\x90\x81R`\x01\x90\x91R`@\x90 Ta\x02\xBA\x91\x90a\x05$V[B\x10\x15[\x80\x15a\x02\xD9WP`@\x80\x82\x01Q`\0\x90\x81R`\x01` R T\x15[\x93\x92PPPV[`\0\x81Q\x80\x84R`\0[\x81\x81\x10\x15a\x03\x06W` \x81\x85\x01\x81\x01Q\x86\x83\x01\x82\x01R\x01a\x02\xEAV[\x81\x81\x11\x15a\x03\x18W`\0` \x83\x87\x01\x01R[P`\x1F\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x92\x90\x92\x01` \x01\x92\x91PPV[` \x81R`\0a\x02\xD9` \x83\x01\x84a\x02\xE0V[`\0` \x82\x84\x03\x12\x15a\x03pW`\0\x80\xFD[P5\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[`\0` \x82\x84\x03\x12\x15a\x03\xB8W`\0\x80\xFD[\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x03\xD0W`\0\x80\xFD[\x81\x84\x01\x91P\x84`\x1F\x83\x01\x12a\x03\xE4W`\0\x80\xFD[\x815\x81\x81\x11\x15a\x03\xF6Wa\x03\xF6a\x03wV[`@Q`\x1F\x82\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x90\x81\x16`?\x01\x16\x81\x01\x90\x83\x82\x11\x81\x83\x10\x17\x15a\x04W\x82\x90\x03`\x1F\x16\x82\x01\x91[PPPPP\x81V[\x80Q` \x80\x83\x01\x91\x90\x91 `\0\x81\x81R`\x01\x90\x92R`@\x90\x91 T\x15a\x02\x0FW`@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\x82\x01R`%`$\x82\x01R\x7FCheckSecrets: secret already rev`D\x82\x01R\x7Fealed\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`d\x82\x01R`\x84\x01`@Q\x80\x91\x03\x90\xFD[`\0\x81\x81R`\x01` R`@\x90\x81\x90 B\x90UQ\x81\x90\x7F\xBA\xB2\xB8\x12\x95\x8B\x05\xE3k\xE1\xF0U?Io\xA5\xD2tA\x15]k\xE0F\x9E\x1C?\xE1\xE5\x1A\xD8X\x90a\x02R\x90\x85\x90a\x03KV[`@Q\x80\x91\x03\x90\xA2PPV[`\0\x80\x82\x80` \x01\x90Q\x81\x01\x90a\x02u\x91\x90a\x04\xC8V[\x90P`\0`\x01`\0\x83` \x01Q\x81R` \x01\x90\x81R` \x01`\0 T\x11\x80\x15a\x02\xBEWP\x80Q` \x80\x83\x01Q`\0\x90\x81R`\x01\x90\x91R`@\x90 Ta\x02\xBA\x91\x90a\x05$V[B\x10\x15[\x80\x15a\x02\xD9WP`@\x80\x82\x01Q`\0\x90\x81R`\x01` R T\x15[\x93\x92PPPV[`\0\x81Q\x80\x84R`\0[\x81\x81\x10\x15a\x03\x06W` \x81\x85\x01\x81\x01Q\x86\x83\x01\x82\x01R\x01a\x02\xEAV[\x81\x81\x11\x15a\x03\x18W`\0` \x83\x87\x01\x01R[P`\x1F\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x92\x90\x92\x01` \x01\x92\x91PPV[` \x81R`\0a\x02\xD9` \x83\x01\x84a\x02\xE0V[`\0` \x82\x84\x03\x12\x15a\x03pW`\0\x80\xFD[P5\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[`\0` \x82\x84\x03\x12\x15a\x03\xB8W`\0\x80\xFD[\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x03\xD0W`\0\x80\xFD[\x81\x84\x01\x91P\x84`\x1F\x83\x01\x12a\x03\xE4W`\0\x80\xFD[\x815\x81\x81\x11\x15a\x03\xF6Wa\x03\xF6a\x03wV[`@Q`\x1F\x82\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x90\x81\x16`?\x01\x16\x81\x01\x90\x83\x82\x11\x81\x83\x10\x17\x15a\x04, + #[allow(missing_docs)] + pub secretHashMustNotExist: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::FixedBytes<32>, + alloy::sol_types::private::FixedBytes<32>, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: Params) -> Self { + (value.delay, value.secretHashMustExist, value.secretHashMustNotExist) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for Params { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + delay: tuple.0, + secretHashMustExist: tuple.1, + secretHashMustNotExist: tuple.2, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolValue for Params { + type SolType = Self; + } + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for Params { + #[inline] + fn stv_to_tokens(&self) -> ::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.delay), + as alloy_sol_types::SolType>::tokenize(&self.secretHashMustExist), + as alloy_sol_types::SolType>::tokenize( + &self.secretHashMustNotExist, + ), + ) + } + #[inline] + fn stv_abi_encoded_size(&self) -> usize { + if let Some(size) = ::ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encoded_size(&tuple) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + ::eip712_hash_struct(self) + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + if let Some(size) = ::PACKED_ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for Params { + type RustType = Self; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = ::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + as alloy_sol_types::SolType>::valid_token(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + let tuple = as alloy_sol_types::SolType>::detokenize(token); + >>::from(tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolStruct for Params { + const NAME: &'static str = "Params"; + #[inline] + fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> { + alloy_sol_types::private::Cow::Borrowed( + "Params(uint256 delay,bytes32 secretHashMustExist,bytes32 secretHashMustNotExist)", + ) + } + #[inline] + fn eip712_components() -> alloy_sol_types::private::Vec< + alloy_sol_types::private::Cow<'static, str>, + > { + alloy_sol_types::private::Vec::new() + } + #[inline] + fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> { + ::eip712_root_type() + } + #[inline] + fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec { + [ + as alloy_sol_types::SolType>::eip712_data_word(&self.delay) + .0, + as alloy_sol_types::SolType>::eip712_data_word( + &self.secretHashMustExist, + ) + .0, + as alloy_sol_types::SolType>::eip712_data_word( + &self.secretHashMustNotExist, + ) + .0, + ] + .concat() + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for Params { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + 0usize + + as alloy_sol_types::EventTopic>::topic_preimage_length(&rust.delay) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.secretHashMustExist, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.secretHashMustNotExist, + ) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + out.reserve( + ::topic_preimage_length(rust), + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.delay, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.secretHashMustExist, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.secretHashMustNotExist, + out, + ); + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + let mut out = alloy_sol_types::private::Vec::new(); + ::encode_topic_preimage( + rust, + &mut out, + ); + alloy_sol_types::abi::token::WordToken( + alloy_sol_types::private::keccak256(out), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `SecretRevealed(bytes32,bytes)` and selector `0xbab2b812958b05e36be1f0553f496fa5d27441155d6be0469e1c3fe1e51ad858`. +```solidity +event SecretRevealed(bytes32 indexed secretHash, bytes secret); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct SecretRevealed { + #[allow(missing_docs)] + pub secretHash: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub secret: alloy::sol_types::private::Bytes, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for SecretRevealed { + type DataTuple<'a> = (alloy::sol_types::sol_data::Bytes,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + const SIGNATURE: &'static str = "SecretRevealed(bytes32,bytes)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 186u8, 178u8, 184u8, 18u8, 149u8, 139u8, 5u8, 227u8, 107u8, 225u8, 240u8, + 85u8, 63u8, 73u8, 111u8, 165u8, 210u8, 116u8, 65u8, 21u8, 93u8, 107u8, + 224u8, 70u8, 158u8, 28u8, 63u8, 225u8, 229u8, 26u8, 216u8, 88u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + secretHash: topics.1, + secret: data.0, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + ::tokenize( + &self.secret, + ), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.secretHash.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = as alloy_sol_types::EventTopic>::encode_topic(&self.secretHash); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for SecretRevealed { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&SecretRevealed> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &SecretRevealed) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `_EventToExposeStructInABI__Params((uint256,bytes32,bytes32))` and selector `0xe696aefa5d73185c96c67a87c9597f9ef8d746736183999616f1e6f5a839b282`. +```solidity +event _EventToExposeStructInABI__Params(Params params); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct _EventToExposeStructInABI__Params { + #[allow(missing_docs)] + pub params: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for _EventToExposeStructInABI__Params { + type DataTuple<'a> = (Params,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,); + const SIGNATURE: &'static str = "_EventToExposeStructInABI__Params((uint256,bytes32,bytes32))"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 230u8, 150u8, 174u8, 250u8, 93u8, 115u8, 24u8, 92u8, 150u8, 198u8, 122u8, + 135u8, 201u8, 89u8, 127u8, 158u8, 248u8, 215u8, 70u8, 115u8, 97u8, 131u8, + 153u8, 150u8, 22u8, 241u8, 230u8, 245u8, 168u8, 57u8, 178u8, 130u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { params: data.0 } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + (::tokenize(&self.params),) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(),) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData + for _EventToExposeStructInABI__Params { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&_EventToExposeStructInABI__Params> + for alloy_sol_types::private::LogData { + #[inline] + fn from( + this: &_EventToExposeStructInABI__Params, + ) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `check(bytes)` and selector `0xc64b3bb5`. +```solidity +function check(bytes memory _params) external view returns (bool execute_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct checkCall { + #[allow(missing_docs)] + pub _params: alloy::sol_types::private::Bytes, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`check(bytes)`](checkCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct checkReturn { + #[allow(missing_docs)] + pub execute_: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bytes,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Bytes,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: checkCall) -> Self { + (value._params,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for checkCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _params: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: checkReturn) -> Self { + (value.execute_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for checkReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { execute_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for checkCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Bytes,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "check(bytes)"; + const SELECTOR: [u8; 4] = [198u8, 75u8, 59u8, 181u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._params, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: checkReturn = r.into(); + r.execute_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: checkReturn = r.into(); + r.execute_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `name()` and selector `0x06fdde03`. +```solidity +function name() external view returns (string memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct nameCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`name()`](nameCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct nameReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: nameCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for nameCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: nameReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for nameReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for nameCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::String; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "name()"; + const SELECTOR: [u8; 4] = [6u8, 253u8, 222u8, 3u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: nameReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: nameReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `reveal(bytes)` and selector `0x72f12a5d`. +```solidity +function reveal(bytes memory _secret) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct revealCall { + #[allow(missing_docs)] + pub _secret: alloy::sol_types::private::Bytes, + } + ///Container type for the return parameters of the [`reveal(bytes)`](revealCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct revealReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bytes,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Bytes,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: revealCall) -> Self { + (value._secret,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for revealCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _secret: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: revealReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for revealReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl revealReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for revealCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Bytes,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = revealReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "reveal(bytes)"; + const SELECTOR: [u8; 4] = [114u8, 241u8, 42u8, 93u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._secret, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + revealReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `revealedSecrets(bytes32)` and selector `0x246167bc`. +```solidity +function revealedSecrets(bytes32) external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct revealedSecretsCall(pub alloy::sol_types::private::FixedBytes<32>); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`revealedSecrets(bytes32)`](revealedSecretsCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct revealedSecretsReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: revealedSecretsCall) -> Self { + (value.0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for revealedSecretsCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self(tuple.0) + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: revealedSecretsReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for revealedSecretsReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for revealedSecretsCall { + type Parameters<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "revealedSecrets(bytes32)"; + const SELECTOR: [u8; 4] = [36u8, 97u8, 103u8, 188u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.0), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: revealedSecretsReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: revealedSecretsReturn = r.into(); + r._0 + }) + } + } + }; + ///Container for all the [`CheckSecrets`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum CheckSecretsCalls { + #[allow(missing_docs)] + check(checkCall), + #[allow(missing_docs)] + name(nameCall), + #[allow(missing_docs)] + reveal(revealCall), + #[allow(missing_docs)] + revealedSecrets(revealedSecretsCall), + } + impl CheckSecretsCalls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [6u8, 253u8, 222u8, 3u8], + [36u8, 97u8, 103u8, 188u8], + [114u8, 241u8, 42u8, 93u8], + [198u8, 75u8, 59u8, 181u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(name), + ::core::stringify!(revealedSecrets), + ::core::stringify!(reveal), + ::core::stringify!(check), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for CheckSecretsCalls { + const NAME: &'static str = "CheckSecretsCalls"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 4usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::check(_) => ::SELECTOR, + Self::name(_) => ::SELECTOR, + Self::reveal(_) => ::SELECTOR, + Self::revealedSecrets(_) => { + ::SELECTOR + } + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn name(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(CheckSecretsCalls::name) + } + name + }, + { + fn revealedSecrets( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(CheckSecretsCalls::revealedSecrets) + } + revealedSecrets + }, + { + fn reveal( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(CheckSecretsCalls::reveal) + } + reveal + }, + { + fn check(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(CheckSecretsCalls::check) + } + check + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn name(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(CheckSecretsCalls::name) + } + name + }, + { + fn revealedSecrets( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(CheckSecretsCalls::revealedSecrets) + } + revealedSecrets + }, + { + fn reveal( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(CheckSecretsCalls::reveal) + } + reveal + }, + { + fn check(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(CheckSecretsCalls::check) + } + check + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::check(inner) => { + ::abi_encoded_size(inner) + } + Self::name(inner) => { + ::abi_encoded_size(inner) + } + Self::reveal(inner) => { + ::abi_encoded_size(inner) + } + Self::revealedSecrets(inner) => { + ::abi_encoded_size( + inner, + ) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::check(inner) => { + ::abi_encode_raw(inner, out) + } + Self::name(inner) => { + ::abi_encode_raw(inner, out) + } + Self::reveal(inner) => { + ::abi_encode_raw(inner, out) + } + Self::revealedSecrets(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + } + } + } + ///Container for all the [`CheckSecrets`](self) events. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum CheckSecretsEvents { + #[allow(missing_docs)] + SecretRevealed(SecretRevealed), + #[allow(missing_docs)] + _EventToExposeStructInABI__Params(_EventToExposeStructInABI__Params), + } + impl CheckSecretsEvents { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 32usize]] = &[ + [ + 186u8, 178u8, 184u8, 18u8, 149u8, 139u8, 5u8, 227u8, 107u8, 225u8, 240u8, + 85u8, 63u8, 73u8, 111u8, 165u8, 210u8, 116u8, 65u8, 21u8, 93u8, 107u8, + 224u8, 70u8, 158u8, 28u8, 63u8, 225u8, 229u8, 26u8, 216u8, 88u8, + ], + [ + 230u8, 150u8, 174u8, 250u8, 93u8, 115u8, 24u8, 92u8, 150u8, 198u8, 122u8, + 135u8, 201u8, 89u8, 127u8, 158u8, 248u8, 215u8, 70u8, 115u8, 97u8, 131u8, + 153u8, 150u8, 22u8, 241u8, 230u8, 245u8, 168u8, 57u8, 178u8, 130u8, + ], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(SecretRevealed), + ::core::stringify!(_EventToExposeStructInABI__Params), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + <_EventToExposeStructInABI__Params as alloy_sol_types::SolEvent>::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolEventInterface for CheckSecretsEvents { + const NAME: &'static str = "CheckSecretsEvents"; + const COUNT: usize = 2usize; + fn decode_raw_log( + topics: &[alloy_sol_types::Word], + data: &[u8], + ) -> alloy_sol_types::Result { + match topics.first().copied() { + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::SecretRevealed) + } + Some( + <_EventToExposeStructInABI__Params as alloy_sol_types::SolEvent>::SIGNATURE_HASH, + ) => { + <_EventToExposeStructInABI__Params as alloy_sol_types::SolEvent>::decode_raw_log( + topics, + data, + ) + .map(Self::_EventToExposeStructInABI__Params) + } + _ => { + alloy_sol_types::private::Err(alloy_sol_types::Error::InvalidLog { + name: ::NAME, + log: alloy_sol_types::private::Box::new( + alloy_sol_types::private::LogData::new_unchecked( + topics.to_vec(), + data.to_vec().into(), + ), + ), + }) + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for CheckSecretsEvents { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + match self { + Self::SecretRevealed(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::_EventToExposeStructInABI__Params(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + } + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + match self { + Self::SecretRevealed(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::_EventToExposeStructInABI__Params(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`CheckSecrets`](self) contract instance. + +See the [wrapper's documentation](`CheckSecretsInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> CheckSecretsInstance { + CheckSecretsInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + CheckSecretsInstance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + CheckSecretsInstance::::deploy_builder(__provider) + } + /**A [`CheckSecrets`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`CheckSecrets`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct CheckSecretsInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for CheckSecretsInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("CheckSecretsInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > CheckSecretsInstance { + /**Creates a new wrapper around an on-chain [`CheckSecrets`](self) contract instance. + +See the [wrapper's documentation](`CheckSecretsInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl CheckSecretsInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> CheckSecretsInstance { + CheckSecretsInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > CheckSecretsInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`check`] function. + pub fn check( + &self, + _params: alloy::sol_types::private::Bytes, + ) -> alloy_contract::SolCallBuilder<&P, checkCall, N> { + self.call_builder(&checkCall { _params }) + } + ///Creates a new call builder for the [`name`] function. + pub fn name(&self) -> alloy_contract::SolCallBuilder<&P, nameCall, N> { + self.call_builder(&nameCall) + } + ///Creates a new call builder for the [`reveal`] function. + pub fn reveal( + &self, + _secret: alloy::sol_types::private::Bytes, + ) -> alloy_contract::SolCallBuilder<&P, revealCall, N> { + self.call_builder(&revealCall { _secret }) + } + ///Creates a new call builder for the [`revealedSecrets`] function. + pub fn revealedSecrets( + &self, + _0: alloy::sol_types::private::FixedBytes<32>, + ) -> alloy_contract::SolCallBuilder<&P, revealedSecretsCall, N> { + self.call_builder(&revealedSecretsCall(_0)) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > CheckSecretsInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + ///Creates a new event filter for the [`SecretRevealed`] event. + pub fn SecretRevealed_filter( + &self, + ) -> alloy_contract::Event<&P, SecretRevealed, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`_EventToExposeStructInABI__Params`] event. + pub fn _EventToExposeStructInABI__Params_filter( + &self, + ) -> alloy_contract::Event<&P, _EventToExposeStructInABI__Params, N> { + self.event_filter::<_EventToExposeStructInABI__Params>() + } + } +} diff --git a/bindings/rust/src/check_true.rs b/bindings/rust/src/check_true.rs new file mode 100644 index 000000000..c63708ed8 --- /dev/null +++ b/bindings/rust/src/check_true.rs @@ -0,0 +1,723 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface CheckTrue { + function check(bytes memory) external pure returns (bool execute_); + function name() external view returns (string memory); +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "function", + "name": "check", + "inputs": [ + { + "name": "", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [ + { + "name": "execute_", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "name", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "view" + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod CheckTrue { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x60c06040526009608090815268436865636b5472756560b81b60a05260009061002890826100da565b5034801561003557600080fd5b50610199565b634e487b7160e01b600052604160045260246000fd5b600181811c9082168061006557607f821691505b60208210810361008557634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156100d557600081815260208120601f850160051c810160208610156100b25750805b601f850160051c820191505b818110156100d1578281556001016100be565b5050505b505050565b81516001600160401b038111156100f3576100f361003b565b610107816101018454610051565b8461008b565b602080601f83116001811461013c57600084156101245750858301515b600019600386901b1c1916600185901b1785556100d1565b600085815260208120601f198616915b8281101561016b5788860151825594840194600190910190840161014c565b50858210156101895787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6102dc806101a86000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c806306fdde031461003b578063c64b3bb514610059575b600080fd5b61004361007d565b604051610050919061010b565b60405180910390f35b61006d6100673660046101ad565b50600190565b6040519015158152602001610050565b6000805461008a9061027c565b80601f01602080910402602001604051908101604052809291908181526020018280546100b69061027c565b80156101035780601f106100d857610100808354040283529160200191610103565b820191906000526020600020905b8154815290600101906020018083116100e657829003601f168201915b505050505081565b600060208083528351808285015260005b818110156101385785810183015185820160400152820161011c565b8181111561014a576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000602082840312156101bf57600080fd5b813567ffffffffffffffff808211156101d757600080fd5b818401915084601f8301126101eb57600080fd5b8135818111156101fd576101fd61017e565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019083821181831017156102435761024361017e565b8160405282815287602084870101111561025c57600080fd5b826020860160208301376000928101602001929092525095945050505050565b600181811c9082168061029057607f821691505b6020821081036102c9577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b5091905056fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\xC0`@R`\t`\x80\x90\x81RhCheckTrue`\xB8\x1B`\xA0R`\0\x90a\0(\x90\x82a\0\xDAV[P4\x80\x15a\x005W`\0\x80\xFD[Pa\x01\x99V[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[`\x01\x81\x81\x1C\x90\x82\x16\x80a\0eW`\x7F\x82\x16\x91P[` \x82\x10\x81\x03a\0\x85WcNH{q`\xE0\x1B`\0R`\"`\x04R`$`\0\xFD[P\x91\x90PV[`\x1F\x82\x11\x15a\0\xD5W`\0\x81\x81R` \x81 `\x1F\x85\x01`\x05\x1C\x81\x01` \x86\x10\x15a\0\xB2WP\x80[`\x1F\x85\x01`\x05\x1C\x82\x01\x91P[\x81\x81\x10\x15a\0\xD1W\x82\x81U`\x01\x01a\0\xBEV[PPP[PPPV[\x81Q`\x01`\x01`@\x1B\x03\x81\x11\x15a\0\xF3Wa\0\xF3a\0;V[a\x01\x07\x81a\x01\x01\x84Ta\0QV[\x84a\0\x8BV[` \x80`\x1F\x83\x11`\x01\x81\x14a\x01 = (alloy::sol_types::sol_data::Bytes,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Bytes,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: checkCall) -> Self { + (value.0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for checkCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self(tuple.0) + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: checkReturn) -> Self { + (value.execute_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for checkReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { execute_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for checkCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Bytes,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "check(bytes)"; + const SELECTOR: [u8; 4] = [198u8, 75u8, 59u8, 181u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.0, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: checkReturn = r.into(); + r.execute_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: checkReturn = r.into(); + r.execute_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `name()` and selector `0x06fdde03`. +```solidity +function name() external view returns (string memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct nameCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`name()`](nameCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct nameReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: nameCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for nameCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: nameReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for nameReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for nameCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::String; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "name()"; + const SELECTOR: [u8; 4] = [6u8, 253u8, 222u8, 3u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: nameReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: nameReturn = r.into(); + r._0 + }) + } + } + }; + ///Container for all the [`CheckTrue`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum CheckTrueCalls { + #[allow(missing_docs)] + check(checkCall), + #[allow(missing_docs)] + name(nameCall), + } + impl CheckTrueCalls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [6u8, 253u8, 222u8, 3u8], + [198u8, 75u8, 59u8, 181u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(name), + ::core::stringify!(check), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for CheckTrueCalls { + const NAME: &'static str = "CheckTrueCalls"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 2usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::check(_) => ::SELECTOR, + Self::name(_) => ::SELECTOR, + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn name(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(CheckTrueCalls::name) + } + name + }, + { + fn check(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(CheckTrueCalls::check) + } + check + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn name(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(CheckTrueCalls::name) + } + name + }, + { + fn check(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(CheckTrueCalls::check) + } + check + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::check(inner) => { + ::abi_encoded_size(inner) + } + Self::name(inner) => { + ::abi_encoded_size(inner) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::check(inner) => { + ::abi_encode_raw(inner, out) + } + Self::name(inner) => { + ::abi_encode_raw(inner, out) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`CheckTrue`](self) contract instance. + +See the [wrapper's documentation](`CheckTrueInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> CheckTrueInstance { + CheckTrueInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + CheckTrueInstance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + CheckTrueInstance::::deploy_builder(__provider) + } + /**A [`CheckTrue`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`CheckTrue`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct CheckTrueInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for CheckTrueInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("CheckTrueInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > CheckTrueInstance { + /**Creates a new wrapper around an on-chain [`CheckTrue`](self) contract instance. + +See the [wrapper's documentation](`CheckTrueInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl CheckTrueInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> CheckTrueInstance { + CheckTrueInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > CheckTrueInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`check`] function. + pub fn check( + &self, + _0: alloy::sol_types::private::Bytes, + ) -> alloy_contract::SolCallBuilder<&P, checkCall, N> { + self.call_builder(&checkCall(_0)) + } + ///Creates a new call builder for the [`name`] function. + pub fn name(&self) -> alloy_contract::SolCallBuilder<&P, nameCall, N> { + self.call_builder(&nameCall) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > CheckTrueInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + } +} diff --git a/bindings/rust/src/common.rs b/bindings/rust/src/common.rs new file mode 100644 index 000000000..3a2dbdd9e --- /dev/null +++ b/bindings/rust/src/common.rs @@ -0,0 +1,215 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface Common {} +``` + +...which was generated by the following JSON ABI: +```json +[] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod Common { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"", + ); + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`Common`](self) contract instance. + +See the [wrapper's documentation](`CommonInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> CommonInstance { + CommonInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + CommonInstance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + CommonInstance::::deploy_builder(__provider) + } + /**A [`Common`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`Common`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct CommonInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for CommonInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("CommonInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > CommonInstance { + /**Creates a new wrapper around an on-chain [`Common`](self) contract instance. + +See the [wrapper's documentation](`CommonInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl CommonInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> CommonInstance { + CommonInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > CommonInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > CommonInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + } +} diff --git a/bindings/rust/src/common_errors.rs b/bindings/rust/src/common_errors.rs new file mode 100644 index 000000000..77411131a --- /dev/null +++ b/bindings/rust/src/common_errors.rs @@ -0,0 +1,215 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface CommonErrors {} +``` + +...which was generated by the following JSON ABI: +```json +[] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod CommonErrors { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"", + ); + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`CommonErrors`](self) contract instance. + +See the [wrapper's documentation](`CommonErrorsInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> CommonErrorsInstance { + CommonErrorsInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + CommonErrorsInstance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + CommonErrorsInstance::::deploy_builder(__provider) + } + /**A [`CommonErrors`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`CommonErrors`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct CommonErrorsInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for CommonErrorsInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("CommonErrorsInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > CommonErrorsInstance { + /**Creates a new wrapper around an on-chain [`CommonErrors`](self) contract instance. + +See the [wrapper's documentation](`CommonErrorsInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl CommonErrorsInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> CommonErrorsInstance { + CommonErrorsInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > CommonErrorsInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > CommonErrorsInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + } +} diff --git a/bindings/rust/src/constants.rs b/bindings/rust/src/constants.rs new file mode 100644 index 000000000..024696f00 --- /dev/null +++ b/bindings/rust/src/constants.rs @@ -0,0 +1,215 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface Constants {} +``` + +...which was generated by the following JSON ABI: +```json +[] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod Constants { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`-`7`\x0B\x82\x82\x829\x80Q`\0\x1A`s\x14`*WcNH{q`\xE0\x1B`\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`\0\x80\xFD\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + 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`\0\x80\xFD\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`Constants`](self) contract instance. + +See the [wrapper's documentation](`ConstantsInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> ConstantsInstance { + ConstantsInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + ConstantsInstance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + ConstantsInstance::::deploy_builder(__provider) + } + /**A [`Constants`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`Constants`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct ConstantsInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for ConstantsInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("ConstantsInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > ConstantsInstance { + /**Creates a new wrapper around an on-chain [`Constants`](self) contract instance. + +See the [wrapper's documentation](`ConstantsInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl ConstantsInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> ConstantsInstance { + ConstantsInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > ConstantsInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > ConstantsInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + } +} diff --git a/bindings/rust/src/cross_domain_messenger.rs b/bindings/rust/src/cross_domain_messenger.rs new file mode 100644 index 000000000..08fe4b7e7 --- /dev/null +++ b/bindings/rust/src/cross_domain_messenger.rs @@ -0,0 +1,5801 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface CrossDomainMessenger { + event FailedRelayedMessage(bytes32 indexed msgHash); + event Initialized(uint8 version); + event RelayedMessage(bytes32 indexed msgHash); + event SentMessage(address indexed target, address sender, bytes message, uint256 messageNonce, uint256 gasLimit); + event SentMessageExtension1(address indexed sender, uint256 value); + + function ENCODING_OVERHEAD() external view returns (uint64); + function FLOOR_CALLDATA_OVERHEAD() external view returns (uint64); + function MESSAGE_VERSION() external view returns (uint16); + function MIN_GAS_CALLDATA_OVERHEAD() external view returns (uint64); + function MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR() external view returns (uint64); + function MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR() external view returns (uint64); + function OTHER_MESSENGER() external view returns (address); + function RELAY_CALL_OVERHEAD() external view returns (uint64); + function RELAY_CONSTANT_OVERHEAD() external view returns (uint64); + function RELAY_GAS_CHECK_BUFFER() external view returns (uint64); + function RELAY_RESERVED_GAS() external view returns (uint64); + function TX_BASE_GAS() external view returns (uint64); + function baseGas(bytes memory _message, uint32 _minGasLimit) external pure returns (uint64); + function failedMessages(bytes32) external view returns (bool); + function messageNonce() external view returns (uint256); + function otherMessenger() external view returns (address); + function paused() external view returns (bool); + function relayMessage(uint256 _nonce, address _sender, address _target, uint256 _value, uint256 _minGasLimit, bytes memory _message) external payable; + function sendMessage(address _target, bytes memory _message, uint32 _minGasLimit) external payable; + function successfulMessages(bytes32) external view returns (bool); + function xDomainMessageSender() external view returns (address); +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "function", + "name": "ENCODING_OVERHEAD", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint64", + "internalType": "uint64" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "FLOOR_CALLDATA_OVERHEAD", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint64", + "internalType": "uint64" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "MESSAGE_VERSION", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint16", + "internalType": "uint16" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "MIN_GAS_CALLDATA_OVERHEAD", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint64", + "internalType": "uint64" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint64", + "internalType": "uint64" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint64", + "internalType": "uint64" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "OTHER_MESSENGER", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract CrossDomainMessenger" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "RELAY_CALL_OVERHEAD", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint64", + "internalType": "uint64" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "RELAY_CONSTANT_OVERHEAD", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint64", + "internalType": "uint64" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "RELAY_GAS_CHECK_BUFFER", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint64", + "internalType": "uint64" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "RELAY_RESERVED_GAS", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint64", + "internalType": "uint64" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "TX_BASE_GAS", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint64", + "internalType": "uint64" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "baseGas", + "inputs": [ + { + "name": "_message", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "_minGasLimit", + "type": "uint32", + "internalType": "uint32" + } + ], + "outputs": [ + { + "name": "", + "type": "uint64", + "internalType": "uint64" + } + ], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "failedMessages", + "inputs": [ + { + "name": "", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "messageNonce", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "otherMessenger", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract CrossDomainMessenger" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "paused", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "relayMessage", + "inputs": [ + { + "name": "_nonce", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_sender", + "type": "address", + "internalType": "address" + }, + { + "name": "_target", + "type": "address", + "internalType": "address" + }, + { + "name": "_value", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_minGasLimit", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_message", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "sendMessage", + "inputs": [ + { + "name": "_target", + "type": "address", + "internalType": "address" + }, + { + "name": "_message", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "_minGasLimit", + "type": "uint32", + "internalType": "uint32" + } + ], + "outputs": [], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "successfulMessages", + "inputs": [ + { + "name": "", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "xDomainMessageSender", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "event", + "name": "FailedRelayedMessage", + "inputs": [ + { + "name": "msgHash", + "type": "bytes32", + "indexed": true, + "internalType": "bytes32" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "Initialized", + "inputs": [ + { + "name": "version", + "type": "uint8", + "indexed": false, + "internalType": "uint8" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "RelayedMessage", + "inputs": [ + { + "name": "msgHash", + "type": "bytes32", + "indexed": true, + "internalType": "bytes32" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "SentMessage", + "inputs": [ + { + "name": "target", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "sender", + "type": "address", + "indexed": false, + "internalType": "address" + }, + { + "name": "message", + "type": "bytes", + "indexed": false, + "internalType": "bytes" + }, + { + "name": "messageNonce", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + }, + { + "name": "gasLimit", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "SentMessageExtension1", + "inputs": [ + { + "name": "sender", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "value", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod CrossDomainMessenger { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"", + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `FailedRelayedMessage(bytes32)` and selector `0x99d0e048484baa1b1540b1367cb128acd7ab2946d1ed91ec10e3c85e4bf51b8f`. +```solidity +event FailedRelayedMessage(bytes32 indexed msgHash); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct FailedRelayedMessage { + #[allow(missing_docs)] + pub msgHash: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for FailedRelayedMessage { + type DataTuple<'a> = (); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + const SIGNATURE: &'static str = "FailedRelayedMessage(bytes32)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 153u8, 208u8, 224u8, 72u8, 72u8, 75u8, 170u8, 27u8, 21u8, 64u8, 177u8, + 54u8, 124u8, 177u8, 40u8, 172u8, 215u8, 171u8, 41u8, 70u8, 209u8, 237u8, + 145u8, 236u8, 16u8, 227u8, 200u8, 94u8, 75u8, 245u8, 27u8, 143u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { msgHash: topics.1 } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + () + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.msgHash.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = as alloy_sol_types::EventTopic>::encode_topic(&self.msgHash); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for FailedRelayedMessage { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&FailedRelayedMessage> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &FailedRelayedMessage) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `Initialized(uint8)` and selector `0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498`. +```solidity +event Initialized(uint8 version); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct Initialized { + #[allow(missing_docs)] + pub version: u8, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for Initialized { + type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<8>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,); + const SIGNATURE: &'static str = "Initialized(uint8)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 127u8, 38u8, 184u8, 63u8, 249u8, 110u8, 31u8, 43u8, 106u8, 104u8, 47u8, + 19u8, 56u8, 82u8, 246u8, 121u8, 138u8, 9u8, 196u8, 101u8, 218u8, 149u8, + 146u8, 20u8, 96u8, 206u8, 251u8, 56u8, 71u8, 64u8, 36u8, 152u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { version: data.0 } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.version), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(),) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for Initialized { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&Initialized> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &Initialized) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `RelayedMessage(bytes32)` and selector `0x4641df4a962071e12719d8c8c8e5ac7fc4d97b927346a3d7a335b1f7517e133c`. +```solidity +event RelayedMessage(bytes32 indexed msgHash); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct RelayedMessage { + #[allow(missing_docs)] + pub msgHash: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for RelayedMessage { + type DataTuple<'a> = (); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + const SIGNATURE: &'static str = "RelayedMessage(bytes32)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 70u8, 65u8, 223u8, 74u8, 150u8, 32u8, 113u8, 225u8, 39u8, 25u8, 216u8, + 200u8, 200u8, 229u8, 172u8, 127u8, 196u8, 217u8, 123u8, 146u8, 115u8, + 70u8, 163u8, 215u8, 163u8, 53u8, 177u8, 247u8, 81u8, 126u8, 19u8, 60u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { msgHash: topics.1 } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + () + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.msgHash.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = as alloy_sol_types::EventTopic>::encode_topic(&self.msgHash); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for RelayedMessage { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&RelayedMessage> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &RelayedMessage) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `SentMessage(address,address,bytes,uint256,uint256)` and selector `0xcb0f7ffd78f9aee47a248fae8db181db6eee833039123e026dcbff529522e52a`. +```solidity +event SentMessage(address indexed target, address sender, bytes message, uint256 messageNonce, uint256 gasLimit); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct SentMessage { + #[allow(missing_docs)] + pub target: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub sender: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub message: alloy::sol_types::private::Bytes, + #[allow(missing_docs)] + pub messageNonce: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub gasLimit: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for SentMessage { + type DataTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Bytes, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + ); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "SentMessage(address,address,bytes,uint256,uint256)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 203u8, 15u8, 127u8, 253u8, 120u8, 249u8, 174u8, 228u8, 122u8, 36u8, + 143u8, 174u8, 141u8, 177u8, 129u8, 219u8, 110u8, 238u8, 131u8, 48u8, + 57u8, 18u8, 62u8, 2u8, 109u8, 203u8, 255u8, 82u8, 149u8, 34u8, 229u8, + 42u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + target: topics.1, + sender: data.0, + message: data.1, + messageNonce: data.2, + gasLimit: data.3, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + ::tokenize( + &self.sender, + ), + ::tokenize( + &self.message, + ), + as alloy_sol_types::SolType>::tokenize(&self.messageNonce), + as alloy_sol_types::SolType>::tokenize(&self.gasLimit), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.target.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.target, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for SentMessage { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&SentMessage> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &SentMessage) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `SentMessageExtension1(address,uint256)` and selector `0x8ebb2ec2465bdb2a06a66fc37a0963af8a2a6a1479d81d56fdb8cbb98096d546`. +```solidity +event SentMessageExtension1(address indexed sender, uint256 value); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct SentMessageExtension1 { + #[allow(missing_docs)] + pub sender: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub value: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for SentMessageExtension1 { + type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "SentMessageExtension1(address,uint256)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 142u8, 187u8, 46u8, 194u8, 70u8, 91u8, 219u8, 42u8, 6u8, 166u8, 111u8, + 195u8, 122u8, 9u8, 99u8, 175u8, 138u8, 42u8, 106u8, 20u8, 121u8, 216u8, + 29u8, 86u8, 253u8, 184u8, 203u8, 185u8, 128u8, 150u8, 213u8, 70u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + sender: topics.1, + value: data.0, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.value), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.sender.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.sender, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for SentMessageExtension1 { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&SentMessageExtension1> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &SentMessageExtension1) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `ENCODING_OVERHEAD()` and selector `0xddd5a40f`. +```solidity +function ENCODING_OVERHEAD() external view returns (uint64); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ENCODING_OVERHEADCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`ENCODING_OVERHEAD()`](ENCODING_OVERHEADCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ENCODING_OVERHEADReturn { + #[allow(missing_docs)] + pub _0: u64, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: ENCODING_OVERHEADCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for ENCODING_OVERHEADCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u64,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: ENCODING_OVERHEADReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for ENCODING_OVERHEADReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for ENCODING_OVERHEADCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u64; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ENCODING_OVERHEAD()"; + const SELECTOR: [u8; 4] = [221u8, 213u8, 164u8, 15u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: ENCODING_OVERHEADReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: ENCODING_OVERHEADReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `FLOOR_CALLDATA_OVERHEAD()` and selector `0xe46e245a`. +```solidity +function FLOOR_CALLDATA_OVERHEAD() external view returns (uint64); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct FLOOR_CALLDATA_OVERHEADCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`FLOOR_CALLDATA_OVERHEAD()`](FLOOR_CALLDATA_OVERHEADCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct FLOOR_CALLDATA_OVERHEADReturn { + #[allow(missing_docs)] + pub _0: u64, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: FLOOR_CALLDATA_OVERHEADCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for FLOOR_CALLDATA_OVERHEADCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u64,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: FLOOR_CALLDATA_OVERHEADReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for FLOOR_CALLDATA_OVERHEADReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for FLOOR_CALLDATA_OVERHEADCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u64; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "FLOOR_CALLDATA_OVERHEAD()"; + const SELECTOR: [u8; 4] = [228u8, 110u8, 36u8, 90u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: FLOOR_CALLDATA_OVERHEADReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: FLOOR_CALLDATA_OVERHEADReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `MESSAGE_VERSION()` and selector `0x3f827a5a`. +```solidity +function MESSAGE_VERSION() external view returns (uint16); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct MESSAGE_VERSIONCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`MESSAGE_VERSION()`](MESSAGE_VERSIONCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct MESSAGE_VERSIONReturn { + #[allow(missing_docs)] + pub _0: u16, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: MESSAGE_VERSIONCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for MESSAGE_VERSIONCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<16>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u16,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: MESSAGE_VERSIONReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for MESSAGE_VERSIONReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for MESSAGE_VERSIONCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u16; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<16>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "MESSAGE_VERSION()"; + const SELECTOR: [u8; 4] = [63u8, 130u8, 122u8, 90u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: MESSAGE_VERSIONReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: MESSAGE_VERSIONReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `MIN_GAS_CALLDATA_OVERHEAD()` and selector `0x028f85f7`. +```solidity +function MIN_GAS_CALLDATA_OVERHEAD() external view returns (uint64); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct MIN_GAS_CALLDATA_OVERHEADCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`MIN_GAS_CALLDATA_OVERHEAD()`](MIN_GAS_CALLDATA_OVERHEADCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct MIN_GAS_CALLDATA_OVERHEADReturn { + #[allow(missing_docs)] + pub _0: u64, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: MIN_GAS_CALLDATA_OVERHEADCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for MIN_GAS_CALLDATA_OVERHEADCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u64,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: MIN_GAS_CALLDATA_OVERHEADReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for MIN_GAS_CALLDATA_OVERHEADReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for MIN_GAS_CALLDATA_OVERHEADCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u64; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "MIN_GAS_CALLDATA_OVERHEAD()"; + const SELECTOR: [u8; 4] = [2u8, 143u8, 133u8, 247u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: MIN_GAS_CALLDATA_OVERHEADReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: MIN_GAS_CALLDATA_OVERHEADReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR()` and selector `0x0c568498`. +```solidity +function MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR() external view returns (uint64); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATORCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR()`](MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATORCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATORReturn { + #[allow(missing_docs)] + pub _0: u64, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATORCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATORCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u64,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATORReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATORReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATORCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u64; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR()"; + const SELECTOR: [u8; 4] = [12u8, 86u8, 132u8, 152u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATORReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATORReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR()` and selector `0x2828d7e8`. +```solidity +function MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR() external view returns (uint64); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct MIN_GAS_DYNAMIC_OVERHEAD_NUMERATORCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR()`](MIN_GAS_DYNAMIC_OVERHEAD_NUMERATORCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct MIN_GAS_DYNAMIC_OVERHEAD_NUMERATORReturn { + #[allow(missing_docs)] + pub _0: u64, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: MIN_GAS_DYNAMIC_OVERHEAD_NUMERATORCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for MIN_GAS_DYNAMIC_OVERHEAD_NUMERATORCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u64,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: MIN_GAS_DYNAMIC_OVERHEAD_NUMERATORReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for MIN_GAS_DYNAMIC_OVERHEAD_NUMERATORReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for MIN_GAS_DYNAMIC_OVERHEAD_NUMERATORCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u64; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR()"; + const SELECTOR: [u8; 4] = [40u8, 40u8, 215u8, 232u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: MIN_GAS_DYNAMIC_OVERHEAD_NUMERATORReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: MIN_GAS_DYNAMIC_OVERHEAD_NUMERATORReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `OTHER_MESSENGER()` and selector `0x9fce812c`. +```solidity +function OTHER_MESSENGER() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct OTHER_MESSENGERCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`OTHER_MESSENGER()`](OTHER_MESSENGERCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct OTHER_MESSENGERReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: OTHER_MESSENGERCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for OTHER_MESSENGERCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: OTHER_MESSENGERReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for OTHER_MESSENGERReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for OTHER_MESSENGERCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "OTHER_MESSENGER()"; + const SELECTOR: [u8; 4] = [159u8, 206u8, 129u8, 44u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: OTHER_MESSENGERReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: OTHER_MESSENGERReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `RELAY_CALL_OVERHEAD()` and selector `0x4c1d6a69`. +```solidity +function RELAY_CALL_OVERHEAD() external view returns (uint64); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct RELAY_CALL_OVERHEADCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`RELAY_CALL_OVERHEAD()`](RELAY_CALL_OVERHEADCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct RELAY_CALL_OVERHEADReturn { + #[allow(missing_docs)] + pub _0: u64, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: RELAY_CALL_OVERHEADCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for RELAY_CALL_OVERHEADCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u64,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: RELAY_CALL_OVERHEADReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for RELAY_CALL_OVERHEADReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for RELAY_CALL_OVERHEADCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u64; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "RELAY_CALL_OVERHEAD()"; + const SELECTOR: [u8; 4] = [76u8, 29u8, 106u8, 105u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: RELAY_CALL_OVERHEADReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: RELAY_CALL_OVERHEADReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `RELAY_CONSTANT_OVERHEAD()` and selector `0x83a74074`. +```solidity +function RELAY_CONSTANT_OVERHEAD() external view returns (uint64); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct RELAY_CONSTANT_OVERHEADCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`RELAY_CONSTANT_OVERHEAD()`](RELAY_CONSTANT_OVERHEADCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct RELAY_CONSTANT_OVERHEADReturn { + #[allow(missing_docs)] + pub _0: u64, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: RELAY_CONSTANT_OVERHEADCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for RELAY_CONSTANT_OVERHEADCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u64,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: RELAY_CONSTANT_OVERHEADReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for RELAY_CONSTANT_OVERHEADReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for RELAY_CONSTANT_OVERHEADCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u64; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "RELAY_CONSTANT_OVERHEAD()"; + const SELECTOR: [u8; 4] = [131u8, 167u8, 64u8, 116u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: RELAY_CONSTANT_OVERHEADReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: RELAY_CONSTANT_OVERHEADReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `RELAY_GAS_CHECK_BUFFER()` and selector `0x5644cfdf`. +```solidity +function RELAY_GAS_CHECK_BUFFER() external view returns (uint64); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct RELAY_GAS_CHECK_BUFFERCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`RELAY_GAS_CHECK_BUFFER()`](RELAY_GAS_CHECK_BUFFERCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct RELAY_GAS_CHECK_BUFFERReturn { + #[allow(missing_docs)] + pub _0: u64, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: RELAY_GAS_CHECK_BUFFERCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for RELAY_GAS_CHECK_BUFFERCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u64,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: RELAY_GAS_CHECK_BUFFERReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for RELAY_GAS_CHECK_BUFFERReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for RELAY_GAS_CHECK_BUFFERCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u64; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "RELAY_GAS_CHECK_BUFFER()"; + const SELECTOR: [u8; 4] = [86u8, 68u8, 207u8, 223u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: RELAY_GAS_CHECK_BUFFERReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: RELAY_GAS_CHECK_BUFFERReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `RELAY_RESERVED_GAS()` and selector `0x8cbeeef2`. +```solidity +function RELAY_RESERVED_GAS() external view returns (uint64); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct RELAY_RESERVED_GASCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`RELAY_RESERVED_GAS()`](RELAY_RESERVED_GASCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct RELAY_RESERVED_GASReturn { + #[allow(missing_docs)] + pub _0: u64, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: RELAY_RESERVED_GASCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for RELAY_RESERVED_GASCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u64,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: RELAY_RESERVED_GASReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for RELAY_RESERVED_GASReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for RELAY_RESERVED_GASCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u64; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "RELAY_RESERVED_GAS()"; + const SELECTOR: [u8; 4] = [140u8, 190u8, 238u8, 242u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: RELAY_RESERVED_GASReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: RELAY_RESERVED_GASReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `TX_BASE_GAS()` and selector `0x2f7d3922`. +```solidity +function TX_BASE_GAS() external view returns (uint64); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct TX_BASE_GASCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`TX_BASE_GAS()`](TX_BASE_GASCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct TX_BASE_GASReturn { + #[allow(missing_docs)] + pub _0: u64, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: TX_BASE_GASCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for TX_BASE_GASCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u64,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: TX_BASE_GASReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for TX_BASE_GASReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for TX_BASE_GASCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u64; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "TX_BASE_GAS()"; + const SELECTOR: [u8; 4] = [47u8, 125u8, 57u8, 34u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: TX_BASE_GASReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: TX_BASE_GASReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `baseGas(bytes,uint32)` and selector `0xb28ade25`. +```solidity +function baseGas(bytes memory _message, uint32 _minGasLimit) external pure returns (uint64); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct baseGasCall { + #[allow(missing_docs)] + pub _message: alloy::sol_types::private::Bytes, + #[allow(missing_docs)] + pub _minGasLimit: u32, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`baseGas(bytes,uint32)`](baseGasCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct baseGasReturn { + #[allow(missing_docs)] + pub _0: u64, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Bytes, + alloy::sol_types::sol_data::Uint<32>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Bytes, u32); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: baseGasCall) -> Self { + (value._message, value._minGasLimit) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for baseGasCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _message: tuple.0, + _minGasLimit: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u64,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: baseGasReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for baseGasReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for baseGasCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Bytes, + alloy::sol_types::sol_data::Uint<32>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u64; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "baseGas(bytes,uint32)"; + const SELECTOR: [u8; 4] = [178u8, 138u8, 222u8, 37u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._message, + ), + as alloy_sol_types::SolType>::tokenize(&self._minGasLimit), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: baseGasReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: baseGasReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `failedMessages(bytes32)` and selector `0xa4e7f8bd`. +```solidity +function failedMessages(bytes32) external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct failedMessagesCall(pub alloy::sol_types::private::FixedBytes<32>); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`failedMessages(bytes32)`](failedMessagesCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct failedMessagesReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: failedMessagesCall) -> Self { + (value.0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for failedMessagesCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self(tuple.0) + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: failedMessagesReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for failedMessagesReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for failedMessagesCall { + type Parameters<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "failedMessages(bytes32)"; + const SELECTOR: [u8; 4] = [164u8, 231u8, 248u8, 189u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.0), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: failedMessagesReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: failedMessagesReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `messageNonce()` and selector `0xecc70428`. +```solidity +function messageNonce() external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct messageNonceCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`messageNonce()`](messageNonceCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct messageNonceReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: messageNonceCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for messageNonceCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: messageNonceReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for messageNonceReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for messageNonceCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "messageNonce()"; + const SELECTOR: [u8; 4] = [236u8, 199u8, 4u8, 40u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: messageNonceReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: messageNonceReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `otherMessenger()` and selector `0xdb505d80`. +```solidity +function otherMessenger() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct otherMessengerCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`otherMessenger()`](otherMessengerCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct otherMessengerReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: otherMessengerCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for otherMessengerCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: otherMessengerReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for otherMessengerReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for otherMessengerCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "otherMessenger()"; + const SELECTOR: [u8; 4] = [219u8, 80u8, 93u8, 128u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: otherMessengerReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: otherMessengerReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `paused()` and selector `0x5c975abb`. +```solidity +function paused() external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct pausedCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`paused()`](pausedCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct pausedReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: pausedCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for pausedCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: pausedReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for pausedReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for pausedCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "paused()"; + const SELECTOR: [u8; 4] = [92u8, 151u8, 90u8, 187u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: pausedReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: pausedReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `relayMessage(uint256,address,address,uint256,uint256,bytes)` and selector `0xd764ad0b`. +```solidity +function relayMessage(uint256 _nonce, address _sender, address _target, uint256 _value, uint256 _minGasLimit, bytes memory _message) external payable; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct relayMessageCall { + #[allow(missing_docs)] + pub _nonce: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _sender: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _target: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _value: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _minGasLimit: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _message: alloy::sol_types::private::Bytes, + } + ///Container type for the return parameters of the [`relayMessage(uint256,address,address,uint256,uint256,bytes)`](relayMessageCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct relayMessageReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::Bytes, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: relayMessageCall) -> Self { + ( + value._nonce, + value._sender, + value._target, + value._value, + value._minGasLimit, + value._message, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for relayMessageCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _nonce: tuple.0, + _sender: tuple.1, + _target: tuple.2, + _value: tuple.3, + _minGasLimit: tuple.4, + _message: tuple.5, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: relayMessageReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for relayMessageReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl relayMessageReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for relayMessageCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Bytes, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = relayMessageReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "relayMessage(uint256,address,address,uint256,uint256,bytes)"; + const SELECTOR: [u8; 4] = [215u8, 100u8, 173u8, 11u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._nonce), + ::tokenize( + &self._sender, + ), + ::tokenize( + &self._target, + ), + as alloy_sol_types::SolType>::tokenize(&self._value), + as alloy_sol_types::SolType>::tokenize(&self._minGasLimit), + ::tokenize( + &self._message, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + relayMessageReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `sendMessage(address,bytes,uint32)` and selector `0x3dbb202b`. +```solidity +function sendMessage(address _target, bytes memory _message, uint32 _minGasLimit) external payable; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct sendMessageCall { + #[allow(missing_docs)] + pub _target: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _message: alloy::sol_types::private::Bytes, + #[allow(missing_docs)] + pub _minGasLimit: u32, + } + ///Container type for the return parameters of the [`sendMessage(address,bytes,uint32)`](sendMessageCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct sendMessageReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Bytes, + alloy::sol_types::sol_data::Uint<32>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Bytes, + u32, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: sendMessageCall) -> Self { + (value._target, value._message, value._minGasLimit) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for sendMessageCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _target: tuple.0, + _message: tuple.1, + _minGasLimit: tuple.2, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: sendMessageReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for sendMessageReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl sendMessageReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for sendMessageCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Bytes, + alloy::sol_types::sol_data::Uint<32>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = sendMessageReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "sendMessage(address,bytes,uint32)"; + const SELECTOR: [u8; 4] = [61u8, 187u8, 32u8, 43u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._target, + ), + ::tokenize( + &self._message, + ), + as alloy_sol_types::SolType>::tokenize(&self._minGasLimit), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + sendMessageReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `successfulMessages(bytes32)` and selector `0xb1b1b209`. +```solidity +function successfulMessages(bytes32) external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct successfulMessagesCall(pub alloy::sol_types::private::FixedBytes<32>); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`successfulMessages(bytes32)`](successfulMessagesCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct successfulMessagesReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: successfulMessagesCall) -> Self { + (value.0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for successfulMessagesCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self(tuple.0) + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: successfulMessagesReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for successfulMessagesReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for successfulMessagesCall { + type Parameters<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "successfulMessages(bytes32)"; + const SELECTOR: [u8; 4] = [177u8, 177u8, 178u8, 9u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.0), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: successfulMessagesReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: successfulMessagesReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `xDomainMessageSender()` and selector `0x6e296e45`. +```solidity +function xDomainMessageSender() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct xDomainMessageSenderCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`xDomainMessageSender()`](xDomainMessageSenderCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct xDomainMessageSenderReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: xDomainMessageSenderCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for xDomainMessageSenderCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: xDomainMessageSenderReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for xDomainMessageSenderReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for xDomainMessageSenderCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "xDomainMessageSender()"; + const SELECTOR: [u8; 4] = [110u8, 41u8, 110u8, 69u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: xDomainMessageSenderReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: xDomainMessageSenderReturn = r.into(); + r._0 + }) + } + } + }; + ///Container for all the [`CrossDomainMessenger`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum CrossDomainMessengerCalls { + #[allow(missing_docs)] + ENCODING_OVERHEAD(ENCODING_OVERHEADCall), + #[allow(missing_docs)] + FLOOR_CALLDATA_OVERHEAD(FLOOR_CALLDATA_OVERHEADCall), + #[allow(missing_docs)] + MESSAGE_VERSION(MESSAGE_VERSIONCall), + #[allow(missing_docs)] + MIN_GAS_CALLDATA_OVERHEAD(MIN_GAS_CALLDATA_OVERHEADCall), + #[allow(missing_docs)] + MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR(MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATORCall), + #[allow(missing_docs)] + MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR(MIN_GAS_DYNAMIC_OVERHEAD_NUMERATORCall), + #[allow(missing_docs)] + OTHER_MESSENGER(OTHER_MESSENGERCall), + #[allow(missing_docs)] + RELAY_CALL_OVERHEAD(RELAY_CALL_OVERHEADCall), + #[allow(missing_docs)] + RELAY_CONSTANT_OVERHEAD(RELAY_CONSTANT_OVERHEADCall), + #[allow(missing_docs)] + RELAY_GAS_CHECK_BUFFER(RELAY_GAS_CHECK_BUFFERCall), + #[allow(missing_docs)] + RELAY_RESERVED_GAS(RELAY_RESERVED_GASCall), + #[allow(missing_docs)] + TX_BASE_GAS(TX_BASE_GASCall), + #[allow(missing_docs)] + baseGas(baseGasCall), + #[allow(missing_docs)] + failedMessages(failedMessagesCall), + #[allow(missing_docs)] + messageNonce(messageNonceCall), + #[allow(missing_docs)] + otherMessenger(otherMessengerCall), + #[allow(missing_docs)] + paused(pausedCall), + #[allow(missing_docs)] + relayMessage(relayMessageCall), + #[allow(missing_docs)] + sendMessage(sendMessageCall), + #[allow(missing_docs)] + successfulMessages(successfulMessagesCall), + #[allow(missing_docs)] + xDomainMessageSender(xDomainMessageSenderCall), + } + impl CrossDomainMessengerCalls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [2u8, 143u8, 133u8, 247u8], + [12u8, 86u8, 132u8, 152u8], + [40u8, 40u8, 215u8, 232u8], + [47u8, 125u8, 57u8, 34u8], + [61u8, 187u8, 32u8, 43u8], + [63u8, 130u8, 122u8, 90u8], + [76u8, 29u8, 106u8, 105u8], + [86u8, 68u8, 207u8, 223u8], + [92u8, 151u8, 90u8, 187u8], + [110u8, 41u8, 110u8, 69u8], + [131u8, 167u8, 64u8, 116u8], + [140u8, 190u8, 238u8, 242u8], + [159u8, 206u8, 129u8, 44u8], + [164u8, 231u8, 248u8, 189u8], + [177u8, 177u8, 178u8, 9u8], + [178u8, 138u8, 222u8, 37u8], + [215u8, 100u8, 173u8, 11u8], + [219u8, 80u8, 93u8, 128u8], + [221u8, 213u8, 164u8, 15u8], + [228u8, 110u8, 36u8, 90u8], + [236u8, 199u8, 4u8, 40u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(MIN_GAS_CALLDATA_OVERHEAD), + ::core::stringify!(MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR), + ::core::stringify!(MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR), + ::core::stringify!(TX_BASE_GAS), + ::core::stringify!(sendMessage), + ::core::stringify!(MESSAGE_VERSION), + ::core::stringify!(RELAY_CALL_OVERHEAD), + ::core::stringify!(RELAY_GAS_CHECK_BUFFER), + ::core::stringify!(paused), + ::core::stringify!(xDomainMessageSender), + ::core::stringify!(RELAY_CONSTANT_OVERHEAD), + ::core::stringify!(RELAY_RESERVED_GAS), + ::core::stringify!(OTHER_MESSENGER), + ::core::stringify!(failedMessages), + ::core::stringify!(successfulMessages), + ::core::stringify!(baseGas), + ::core::stringify!(relayMessage), + ::core::stringify!(otherMessenger), + ::core::stringify!(ENCODING_OVERHEAD), + ::core::stringify!(FLOOR_CALLDATA_OVERHEAD), + ::core::stringify!(messageNonce), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for CrossDomainMessengerCalls { + const NAME: &'static str = "CrossDomainMessengerCalls"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 21usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::ENCODING_OVERHEAD(_) => { + ::SELECTOR + } + Self::FLOOR_CALLDATA_OVERHEAD(_) => { + ::SELECTOR + } + Self::MESSAGE_VERSION(_) => { + ::SELECTOR + } + Self::MIN_GAS_CALLDATA_OVERHEAD(_) => { + ::SELECTOR + } + Self::MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR(_) => { + ::SELECTOR + } + Self::MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR(_) => { + ::SELECTOR + } + Self::OTHER_MESSENGER(_) => { + ::SELECTOR + } + Self::RELAY_CALL_OVERHEAD(_) => { + ::SELECTOR + } + Self::RELAY_CONSTANT_OVERHEAD(_) => { + ::SELECTOR + } + Self::RELAY_GAS_CHECK_BUFFER(_) => { + ::SELECTOR + } + Self::RELAY_RESERVED_GAS(_) => { + ::SELECTOR + } + Self::TX_BASE_GAS(_) => { + ::SELECTOR + } + Self::baseGas(_) => ::SELECTOR, + Self::failedMessages(_) => { + ::SELECTOR + } + Self::messageNonce(_) => { + ::SELECTOR + } + Self::otherMessenger(_) => { + ::SELECTOR + } + Self::paused(_) => ::SELECTOR, + Self::relayMessage(_) => { + ::SELECTOR + } + Self::sendMessage(_) => { + ::SELECTOR + } + Self::successfulMessages(_) => { + ::SELECTOR + } + Self::xDomainMessageSender(_) => { + ::SELECTOR + } + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn MIN_GAS_CALLDATA_OVERHEAD( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(CrossDomainMessengerCalls::MIN_GAS_CALLDATA_OVERHEAD) + } + MIN_GAS_CALLDATA_OVERHEAD + }, + { + fn MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + CrossDomainMessengerCalls::MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR, + ) + } + MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR + }, + { + fn MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + CrossDomainMessengerCalls::MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR, + ) + } + MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR + }, + { + fn TX_BASE_GAS( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(CrossDomainMessengerCalls::TX_BASE_GAS) + } + TX_BASE_GAS + }, + { + fn sendMessage( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(CrossDomainMessengerCalls::sendMessage) + } + sendMessage + }, + { + fn MESSAGE_VERSION( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(CrossDomainMessengerCalls::MESSAGE_VERSION) + } + MESSAGE_VERSION + }, + { + fn RELAY_CALL_OVERHEAD( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(CrossDomainMessengerCalls::RELAY_CALL_OVERHEAD) + } + RELAY_CALL_OVERHEAD + }, + { + fn RELAY_GAS_CHECK_BUFFER( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(CrossDomainMessengerCalls::RELAY_GAS_CHECK_BUFFER) + } + RELAY_GAS_CHECK_BUFFER + }, + { + fn paused( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(CrossDomainMessengerCalls::paused) + } + paused + }, + { + fn xDomainMessageSender( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(CrossDomainMessengerCalls::xDomainMessageSender) + } + xDomainMessageSender + }, + { + fn RELAY_CONSTANT_OVERHEAD( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(CrossDomainMessengerCalls::RELAY_CONSTANT_OVERHEAD) + } + RELAY_CONSTANT_OVERHEAD + }, + { + fn RELAY_RESERVED_GAS( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(CrossDomainMessengerCalls::RELAY_RESERVED_GAS) + } + RELAY_RESERVED_GAS + }, + { + fn OTHER_MESSENGER( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(CrossDomainMessengerCalls::OTHER_MESSENGER) + } + OTHER_MESSENGER + }, + { + fn failedMessages( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(CrossDomainMessengerCalls::failedMessages) + } + failedMessages + }, + { + fn successfulMessages( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(CrossDomainMessengerCalls::successfulMessages) + } + successfulMessages + }, + { + fn baseGas( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(CrossDomainMessengerCalls::baseGas) + } + baseGas + }, + { + fn relayMessage( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(CrossDomainMessengerCalls::relayMessage) + } + relayMessage + }, + { + fn otherMessenger( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(CrossDomainMessengerCalls::otherMessenger) + } + otherMessenger + }, + { + fn ENCODING_OVERHEAD( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(CrossDomainMessengerCalls::ENCODING_OVERHEAD) + } + ENCODING_OVERHEAD + }, + { + fn FLOOR_CALLDATA_OVERHEAD( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(CrossDomainMessengerCalls::FLOOR_CALLDATA_OVERHEAD) + } + FLOOR_CALLDATA_OVERHEAD + }, + { + fn messageNonce( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(CrossDomainMessengerCalls::messageNonce) + } + messageNonce + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn MIN_GAS_CALLDATA_OVERHEAD( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(CrossDomainMessengerCalls::MIN_GAS_CALLDATA_OVERHEAD) + } + MIN_GAS_CALLDATA_OVERHEAD + }, + { + fn MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + CrossDomainMessengerCalls::MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR, + ) + } + MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR + }, + { + fn MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + CrossDomainMessengerCalls::MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR, + ) + } + MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR + }, + { + fn TX_BASE_GAS( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(CrossDomainMessengerCalls::TX_BASE_GAS) + } + TX_BASE_GAS + }, + { + fn sendMessage( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(CrossDomainMessengerCalls::sendMessage) + } + sendMessage + }, + { + fn MESSAGE_VERSION( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(CrossDomainMessengerCalls::MESSAGE_VERSION) + } + MESSAGE_VERSION + }, + { + fn RELAY_CALL_OVERHEAD( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(CrossDomainMessengerCalls::RELAY_CALL_OVERHEAD) + } + RELAY_CALL_OVERHEAD + }, + { + fn RELAY_GAS_CHECK_BUFFER( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(CrossDomainMessengerCalls::RELAY_GAS_CHECK_BUFFER) + } + RELAY_GAS_CHECK_BUFFER + }, + { + fn paused( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(CrossDomainMessengerCalls::paused) + } + paused + }, + { + fn xDomainMessageSender( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(CrossDomainMessengerCalls::xDomainMessageSender) + } + xDomainMessageSender + }, + { + fn RELAY_CONSTANT_OVERHEAD( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(CrossDomainMessengerCalls::RELAY_CONSTANT_OVERHEAD) + } + RELAY_CONSTANT_OVERHEAD + }, + { + fn RELAY_RESERVED_GAS( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(CrossDomainMessengerCalls::RELAY_RESERVED_GAS) + } + RELAY_RESERVED_GAS + }, + { + fn OTHER_MESSENGER( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(CrossDomainMessengerCalls::OTHER_MESSENGER) + } + OTHER_MESSENGER + }, + { + fn failedMessages( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(CrossDomainMessengerCalls::failedMessages) + } + failedMessages + }, + { + fn successfulMessages( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(CrossDomainMessengerCalls::successfulMessages) + } + successfulMessages + }, + { + fn baseGas( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(CrossDomainMessengerCalls::baseGas) + } + baseGas + }, + { + fn relayMessage( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(CrossDomainMessengerCalls::relayMessage) + } + relayMessage + }, + { + fn otherMessenger( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(CrossDomainMessengerCalls::otherMessenger) + } + otherMessenger + }, + { + fn ENCODING_OVERHEAD( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(CrossDomainMessengerCalls::ENCODING_OVERHEAD) + } + ENCODING_OVERHEAD + }, + { + fn FLOOR_CALLDATA_OVERHEAD( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(CrossDomainMessengerCalls::FLOOR_CALLDATA_OVERHEAD) + } + FLOOR_CALLDATA_OVERHEAD + }, + { + fn messageNonce( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(CrossDomainMessengerCalls::messageNonce) + } + messageNonce + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::ENCODING_OVERHEAD(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::FLOOR_CALLDATA_OVERHEAD(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::MESSAGE_VERSION(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::MIN_GAS_CALLDATA_OVERHEAD(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::OTHER_MESSENGER(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::RELAY_CALL_OVERHEAD(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::RELAY_CONSTANT_OVERHEAD(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::RELAY_GAS_CHECK_BUFFER(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::RELAY_RESERVED_GAS(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::TX_BASE_GAS(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::baseGas(inner) => { + ::abi_encoded_size(inner) + } + Self::failedMessages(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::messageNonce(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::otherMessenger(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::paused(inner) => { + ::abi_encoded_size(inner) + } + Self::relayMessage(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::sendMessage(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::successfulMessages(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::xDomainMessageSender(inner) => { + ::abi_encoded_size( + inner, + ) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::ENCODING_OVERHEAD(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::FLOOR_CALLDATA_OVERHEAD(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::MESSAGE_VERSION(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::MIN_GAS_CALLDATA_OVERHEAD(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::OTHER_MESSENGER(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::RELAY_CALL_OVERHEAD(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::RELAY_CONSTANT_OVERHEAD(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::RELAY_GAS_CHECK_BUFFER(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::RELAY_RESERVED_GAS(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::TX_BASE_GAS(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::baseGas(inner) => { + ::abi_encode_raw(inner, out) + } + Self::failedMessages(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::messageNonce(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::otherMessenger(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::paused(inner) => { + ::abi_encode_raw(inner, out) + } + Self::relayMessage(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::sendMessage(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::successfulMessages(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::xDomainMessageSender(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + } + } + } + ///Container for all the [`CrossDomainMessenger`](self) events. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum CrossDomainMessengerEvents { + #[allow(missing_docs)] + FailedRelayedMessage(FailedRelayedMessage), + #[allow(missing_docs)] + Initialized(Initialized), + #[allow(missing_docs)] + RelayedMessage(RelayedMessage), + #[allow(missing_docs)] + SentMessage(SentMessage), + #[allow(missing_docs)] + SentMessageExtension1(SentMessageExtension1), + } + impl CrossDomainMessengerEvents { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 32usize]] = &[ + [ + 70u8, 65u8, 223u8, 74u8, 150u8, 32u8, 113u8, 225u8, 39u8, 25u8, 216u8, + 200u8, 200u8, 229u8, 172u8, 127u8, 196u8, 217u8, 123u8, 146u8, 115u8, + 70u8, 163u8, 215u8, 163u8, 53u8, 177u8, 247u8, 81u8, 126u8, 19u8, 60u8, + ], + [ + 127u8, 38u8, 184u8, 63u8, 249u8, 110u8, 31u8, 43u8, 106u8, 104u8, 47u8, + 19u8, 56u8, 82u8, 246u8, 121u8, 138u8, 9u8, 196u8, 101u8, 218u8, 149u8, + 146u8, 20u8, 96u8, 206u8, 251u8, 56u8, 71u8, 64u8, 36u8, 152u8, + ], + [ + 142u8, 187u8, 46u8, 194u8, 70u8, 91u8, 219u8, 42u8, 6u8, 166u8, 111u8, + 195u8, 122u8, 9u8, 99u8, 175u8, 138u8, 42u8, 106u8, 20u8, 121u8, 216u8, + 29u8, 86u8, 253u8, 184u8, 203u8, 185u8, 128u8, 150u8, 213u8, 70u8, + ], + [ + 153u8, 208u8, 224u8, 72u8, 72u8, 75u8, 170u8, 27u8, 21u8, 64u8, 177u8, + 54u8, 124u8, 177u8, 40u8, 172u8, 215u8, 171u8, 41u8, 70u8, 209u8, 237u8, + 145u8, 236u8, 16u8, 227u8, 200u8, 94u8, 75u8, 245u8, 27u8, 143u8, + ], + [ + 203u8, 15u8, 127u8, 253u8, 120u8, 249u8, 174u8, 228u8, 122u8, 36u8, + 143u8, 174u8, 141u8, 177u8, 129u8, 219u8, 110u8, 238u8, 131u8, 48u8, + 57u8, 18u8, 62u8, 2u8, 109u8, 203u8, 255u8, 82u8, 149u8, 34u8, 229u8, + 42u8, + ], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(RelayedMessage), + ::core::stringify!(Initialized), + ::core::stringify!(SentMessageExtension1), + ::core::stringify!(FailedRelayedMessage), + ::core::stringify!(SentMessage), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolEventInterface for CrossDomainMessengerEvents { + const NAME: &'static str = "CrossDomainMessengerEvents"; + const COUNT: usize = 5usize; + fn decode_raw_log( + topics: &[alloy_sol_types::Word], + data: &[u8], + ) -> alloy_sol_types::Result { + match topics.first().copied() { + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::FailedRelayedMessage) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::Initialized) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::RelayedMessage) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::SentMessage) + } + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::SentMessageExtension1) + } + _ => { + alloy_sol_types::private::Err(alloy_sol_types::Error::InvalidLog { + name: ::NAME, + log: alloy_sol_types::private::Box::new( + alloy_sol_types::private::LogData::new_unchecked( + topics.to_vec(), + data.to_vec().into(), + ), + ), + }) + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for CrossDomainMessengerEvents { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + match self { + Self::FailedRelayedMessage(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::Initialized(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::RelayedMessage(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::SentMessage(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::SentMessageExtension1(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + } + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + match self { + Self::FailedRelayedMessage(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::Initialized(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::RelayedMessage(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::SentMessage(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::SentMessageExtension1(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`CrossDomainMessenger`](self) contract instance. + +See the [wrapper's documentation](`CrossDomainMessengerInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> CrossDomainMessengerInstance { + CrossDomainMessengerInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + CrossDomainMessengerInstance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + CrossDomainMessengerInstance::::deploy_builder(__provider) + } + /**A [`CrossDomainMessenger`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`CrossDomainMessenger`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct CrossDomainMessengerInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for CrossDomainMessengerInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("CrossDomainMessengerInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > CrossDomainMessengerInstance { + /**Creates a new wrapper around an on-chain [`CrossDomainMessenger`](self) contract instance. + +See the [wrapper's documentation](`CrossDomainMessengerInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl CrossDomainMessengerInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> CrossDomainMessengerInstance { + CrossDomainMessengerInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > CrossDomainMessengerInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`ENCODING_OVERHEAD`] function. + pub fn ENCODING_OVERHEAD( + &self, + ) -> alloy_contract::SolCallBuilder<&P, ENCODING_OVERHEADCall, N> { + self.call_builder(&ENCODING_OVERHEADCall) + } + ///Creates a new call builder for the [`FLOOR_CALLDATA_OVERHEAD`] function. + pub fn FLOOR_CALLDATA_OVERHEAD( + &self, + ) -> alloy_contract::SolCallBuilder<&P, FLOOR_CALLDATA_OVERHEADCall, N> { + self.call_builder(&FLOOR_CALLDATA_OVERHEADCall) + } + ///Creates a new call builder for the [`MESSAGE_VERSION`] function. + pub fn MESSAGE_VERSION( + &self, + ) -> alloy_contract::SolCallBuilder<&P, MESSAGE_VERSIONCall, N> { + self.call_builder(&MESSAGE_VERSIONCall) + } + ///Creates a new call builder for the [`MIN_GAS_CALLDATA_OVERHEAD`] function. + pub fn MIN_GAS_CALLDATA_OVERHEAD( + &self, + ) -> alloy_contract::SolCallBuilder<&P, MIN_GAS_CALLDATA_OVERHEADCall, N> { + self.call_builder(&MIN_GAS_CALLDATA_OVERHEADCall) + } + ///Creates a new call builder for the [`MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR`] function. + pub fn MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR( + &self, + ) -> alloy_contract::SolCallBuilder< + &P, + MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATORCall, + N, + > { + self.call_builder(&MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATORCall) + } + ///Creates a new call builder for the [`MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR`] function. + pub fn MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR( + &self, + ) -> alloy_contract::SolCallBuilder< + &P, + MIN_GAS_DYNAMIC_OVERHEAD_NUMERATORCall, + N, + > { + self.call_builder(&MIN_GAS_DYNAMIC_OVERHEAD_NUMERATORCall) + } + ///Creates a new call builder for the [`OTHER_MESSENGER`] function. + pub fn OTHER_MESSENGER( + &self, + ) -> alloy_contract::SolCallBuilder<&P, OTHER_MESSENGERCall, N> { + self.call_builder(&OTHER_MESSENGERCall) + } + ///Creates a new call builder for the [`RELAY_CALL_OVERHEAD`] function. + pub fn RELAY_CALL_OVERHEAD( + &self, + ) -> alloy_contract::SolCallBuilder<&P, RELAY_CALL_OVERHEADCall, N> { + self.call_builder(&RELAY_CALL_OVERHEADCall) + } + ///Creates a new call builder for the [`RELAY_CONSTANT_OVERHEAD`] function. + pub fn RELAY_CONSTANT_OVERHEAD( + &self, + ) -> alloy_contract::SolCallBuilder<&P, RELAY_CONSTANT_OVERHEADCall, N> { + self.call_builder(&RELAY_CONSTANT_OVERHEADCall) + } + ///Creates a new call builder for the [`RELAY_GAS_CHECK_BUFFER`] function. + pub fn RELAY_GAS_CHECK_BUFFER( + &self, + ) -> alloy_contract::SolCallBuilder<&P, RELAY_GAS_CHECK_BUFFERCall, N> { + self.call_builder(&RELAY_GAS_CHECK_BUFFERCall) + } + ///Creates a new call builder for the [`RELAY_RESERVED_GAS`] function. + pub fn RELAY_RESERVED_GAS( + &self, + ) -> alloy_contract::SolCallBuilder<&P, RELAY_RESERVED_GASCall, N> { + self.call_builder(&RELAY_RESERVED_GASCall) + } + ///Creates a new call builder for the [`TX_BASE_GAS`] function. + pub fn TX_BASE_GAS( + &self, + ) -> alloy_contract::SolCallBuilder<&P, TX_BASE_GASCall, N> { + self.call_builder(&TX_BASE_GASCall) + } + ///Creates a new call builder for the [`baseGas`] function. + pub fn baseGas( + &self, + _message: alloy::sol_types::private::Bytes, + _minGasLimit: u32, + ) -> alloy_contract::SolCallBuilder<&P, baseGasCall, N> { + self.call_builder( + &baseGasCall { + _message, + _minGasLimit, + }, + ) + } + ///Creates a new call builder for the [`failedMessages`] function. + pub fn failedMessages( + &self, + _0: alloy::sol_types::private::FixedBytes<32>, + ) -> alloy_contract::SolCallBuilder<&P, failedMessagesCall, N> { + self.call_builder(&failedMessagesCall(_0)) + } + ///Creates a new call builder for the [`messageNonce`] function. + pub fn messageNonce( + &self, + ) -> alloy_contract::SolCallBuilder<&P, messageNonceCall, N> { + self.call_builder(&messageNonceCall) + } + ///Creates a new call builder for the [`otherMessenger`] function. + pub fn otherMessenger( + &self, + ) -> alloy_contract::SolCallBuilder<&P, otherMessengerCall, N> { + self.call_builder(&otherMessengerCall) + } + ///Creates a new call builder for the [`paused`] function. + pub fn paused(&self) -> alloy_contract::SolCallBuilder<&P, pausedCall, N> { + self.call_builder(&pausedCall) + } + ///Creates a new call builder for the [`relayMessage`] function. + pub fn relayMessage( + &self, + _nonce: alloy::sol_types::private::primitives::aliases::U256, + _sender: alloy::sol_types::private::Address, + _target: alloy::sol_types::private::Address, + _value: alloy::sol_types::private::primitives::aliases::U256, + _minGasLimit: alloy::sol_types::private::primitives::aliases::U256, + _message: alloy::sol_types::private::Bytes, + ) -> alloy_contract::SolCallBuilder<&P, relayMessageCall, N> { + self.call_builder( + &relayMessageCall { + _nonce, + _sender, + _target, + _value, + _minGasLimit, + _message, + }, + ) + } + ///Creates a new call builder for the [`sendMessage`] function. + pub fn sendMessage( + &self, + _target: alloy::sol_types::private::Address, + _message: alloy::sol_types::private::Bytes, + _minGasLimit: u32, + ) -> alloy_contract::SolCallBuilder<&P, sendMessageCall, N> { + self.call_builder( + &sendMessageCall { + _target, + _message, + _minGasLimit, + }, + ) + } + ///Creates a new call builder for the [`successfulMessages`] function. + pub fn successfulMessages( + &self, + _0: alloy::sol_types::private::FixedBytes<32>, + ) -> alloy_contract::SolCallBuilder<&P, successfulMessagesCall, N> { + self.call_builder(&successfulMessagesCall(_0)) + } + ///Creates a new call builder for the [`xDomainMessageSender`] function. + pub fn xDomainMessageSender( + &self, + ) -> alloy_contract::SolCallBuilder<&P, xDomainMessageSenderCall, N> { + self.call_builder(&xDomainMessageSenderCall) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > CrossDomainMessengerInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + ///Creates a new event filter for the [`FailedRelayedMessage`] event. + pub fn FailedRelayedMessage_filter( + &self, + ) -> alloy_contract::Event<&P, FailedRelayedMessage, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`Initialized`] event. + pub fn Initialized_filter(&self) -> alloy_contract::Event<&P, Initialized, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`RelayedMessage`] event. + pub fn RelayedMessage_filter( + &self, + ) -> alloy_contract::Event<&P, RelayedMessage, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`SentMessage`] event. + pub fn SentMessage_filter(&self) -> alloy_contract::Event<&P, SentMessage, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`SentMessageExtension1`] event. + pub fn SentMessageExtension1_filter( + &self, + ) -> alloy_contract::Event<&P, SentMessageExtension1, N> { + self.event_filter::() + } + } +} diff --git a/bindings/rust/src/cross_domain_ownable.rs b/bindings/rust/src/cross_domain_ownable.rs new file mode 100644 index 000000000..17114d879 --- /dev/null +++ b/bindings/rust/src/cross_domain_ownable.rs @@ -0,0 +1,1176 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface CrossDomainOwnable { + event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); + + function owner() external view returns (address); + function renounceOwnership() external; + function transferOwnership(address newOwner) external; +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "function", + "name": "owner", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "renounceOwnership", + "inputs": [], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "transferOwnership", + "inputs": [ + { + "name": "newOwner", + "type": "address", + "internalType": "address" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "event", + "name": "OwnershipTransferred", + "inputs": [ + { + "name": "previousOwner", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "newOwner", + "type": "address", + "indexed": true, + "internalType": "address" + } + ], + "anonymous": false + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod CrossDomainOwnable { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"", + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `OwnershipTransferred(address,address)` and selector `0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0`. +```solidity +event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct OwnershipTransferred { + #[allow(missing_docs)] + pub previousOwner: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub newOwner: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for OwnershipTransferred { + type DataTuple<'a> = (); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "OwnershipTransferred(address,address)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 139u8, 224u8, 7u8, 156u8, 83u8, 22u8, 89u8, 20u8, 19u8, 68u8, 205u8, + 31u8, 208u8, 164u8, 242u8, 132u8, 25u8, 73u8, 127u8, 151u8, 34u8, 163u8, + 218u8, 175u8, 227u8, 180u8, 24u8, 111u8, 107u8, 100u8, 87u8, 224u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + previousOwner: topics.1, + newOwner: topics.2, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + () + } + #[inline] + fn topics(&self) -> ::RustType { + ( + Self::SIGNATURE_HASH.into(), + self.previousOwner.clone(), + self.newOwner.clone(), + ) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.previousOwner, + ); + out[2usize] = ::encode_topic( + &self.newOwner, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for OwnershipTransferred { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&OwnershipTransferred> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &OwnershipTransferred) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `owner()` and selector `0x8da5cb5b`. +```solidity +function owner() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ownerCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`owner()`](ownerCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ownerReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ownerCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ownerCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ownerReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ownerReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for ownerCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "owner()"; + const SELECTOR: [u8; 4] = [141u8, 165u8, 203u8, 91u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: ownerReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: ownerReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `renounceOwnership()` and selector `0x715018a6`. +```solidity +function renounceOwnership() external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct renounceOwnershipCall; + ///Container type for the return parameters of the [`renounceOwnership()`](renounceOwnershipCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct renounceOwnershipReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: renounceOwnershipCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for renounceOwnershipCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: renounceOwnershipReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for renounceOwnershipReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl renounceOwnershipReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for renounceOwnershipCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = renounceOwnershipReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "renounceOwnership()"; + const SELECTOR: [u8; 4] = [113u8, 80u8, 24u8, 166u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + renounceOwnershipReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `transferOwnership(address)` and selector `0xf2fde38b`. +```solidity +function transferOwnership(address newOwner) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct transferOwnershipCall { + #[allow(missing_docs)] + pub newOwner: alloy::sol_types::private::Address, + } + ///Container type for the return parameters of the [`transferOwnership(address)`](transferOwnershipCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct transferOwnershipReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: transferOwnershipCall) -> Self { + (value.newOwner,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for transferOwnershipCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { newOwner: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: transferOwnershipReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for transferOwnershipReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl transferOwnershipReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for transferOwnershipCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = transferOwnershipReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "transferOwnership(address)"; + const SELECTOR: [u8; 4] = [242u8, 253u8, 227u8, 139u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.newOwner, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + transferOwnershipReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + ///Container for all the [`CrossDomainOwnable`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum CrossDomainOwnableCalls { + #[allow(missing_docs)] + owner(ownerCall), + #[allow(missing_docs)] + renounceOwnership(renounceOwnershipCall), + #[allow(missing_docs)] + transferOwnership(transferOwnershipCall), + } + impl CrossDomainOwnableCalls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [113u8, 80u8, 24u8, 166u8], + [141u8, 165u8, 203u8, 91u8], + [242u8, 253u8, 227u8, 139u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(renounceOwnership), + ::core::stringify!(owner), + ::core::stringify!(transferOwnership), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for CrossDomainOwnableCalls { + const NAME: &'static str = "CrossDomainOwnableCalls"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 3usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::owner(_) => ::SELECTOR, + Self::renounceOwnership(_) => { + ::SELECTOR + } + Self::transferOwnership(_) => { + ::SELECTOR + } + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn renounceOwnership( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(CrossDomainOwnableCalls::renounceOwnership) + } + renounceOwnership + }, + { + fn owner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(CrossDomainOwnableCalls::owner) + } + owner + }, + { + fn transferOwnership( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(CrossDomainOwnableCalls::transferOwnership) + } + transferOwnership + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn renounceOwnership( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(CrossDomainOwnableCalls::renounceOwnership) + } + renounceOwnership + }, + { + fn owner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(CrossDomainOwnableCalls::owner) + } + owner + }, + { + fn transferOwnership( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(CrossDomainOwnableCalls::transferOwnership) + } + transferOwnership + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::owner(inner) => { + ::abi_encoded_size(inner) + } + Self::renounceOwnership(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::transferOwnership(inner) => { + ::abi_encoded_size( + inner, + ) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::owner(inner) => { + ::abi_encode_raw(inner, out) + } + Self::renounceOwnership(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::transferOwnership(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + } + } + } + ///Container for all the [`CrossDomainOwnable`](self) events. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum CrossDomainOwnableEvents { + #[allow(missing_docs)] + OwnershipTransferred(OwnershipTransferred), + } + impl CrossDomainOwnableEvents { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 32usize]] = &[ + [ + 139u8, 224u8, 7u8, 156u8, 83u8, 22u8, 89u8, 20u8, 19u8, 68u8, 205u8, + 31u8, 208u8, 164u8, 242u8, 132u8, 25u8, 73u8, 127u8, 151u8, 34u8, 163u8, + 218u8, 175u8, 227u8, 180u8, 24u8, 111u8, 107u8, 100u8, 87u8, 224u8, + ], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(OwnershipTransferred), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolEventInterface for CrossDomainOwnableEvents { + const NAME: &'static str = "CrossDomainOwnableEvents"; + const COUNT: usize = 1usize; + fn decode_raw_log( + topics: &[alloy_sol_types::Word], + data: &[u8], + ) -> alloy_sol_types::Result { + match topics.first().copied() { + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::OwnershipTransferred) + } + _ => { + alloy_sol_types::private::Err(alloy_sol_types::Error::InvalidLog { + name: ::NAME, + log: alloy_sol_types::private::Box::new( + alloy_sol_types::private::LogData::new_unchecked( + topics.to_vec(), + data.to_vec().into(), + ), + ), + }) + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for CrossDomainOwnableEvents { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + match self { + Self::OwnershipTransferred(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + } + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + match self { + Self::OwnershipTransferred(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`CrossDomainOwnable`](self) contract instance. + +See the [wrapper's documentation](`CrossDomainOwnableInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> CrossDomainOwnableInstance { + CrossDomainOwnableInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + CrossDomainOwnableInstance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + CrossDomainOwnableInstance::::deploy_builder(__provider) + } + /**A [`CrossDomainOwnable`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`CrossDomainOwnable`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct CrossDomainOwnableInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for CrossDomainOwnableInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("CrossDomainOwnableInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > CrossDomainOwnableInstance { + /**Creates a new wrapper around an on-chain [`CrossDomainOwnable`](self) contract instance. + +See the [wrapper's documentation](`CrossDomainOwnableInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl CrossDomainOwnableInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> CrossDomainOwnableInstance { + CrossDomainOwnableInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > CrossDomainOwnableInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`owner`] function. + pub fn owner(&self) -> alloy_contract::SolCallBuilder<&P, ownerCall, N> { + self.call_builder(&ownerCall) + } + ///Creates a new call builder for the [`renounceOwnership`] function. + pub fn renounceOwnership( + &self, + ) -> alloy_contract::SolCallBuilder<&P, renounceOwnershipCall, N> { + self.call_builder(&renounceOwnershipCall) + } + ///Creates a new call builder for the [`transferOwnership`] function. + pub fn transferOwnership( + &self, + newOwner: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, transferOwnershipCall, N> { + self.call_builder(&transferOwnershipCall { newOwner }) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > CrossDomainOwnableInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + ///Creates a new event filter for the [`OwnershipTransferred`] event. + pub fn OwnershipTransferred_filter( + &self, + ) -> alloy_contract::Event<&P, OwnershipTransferred, N> { + self.event_filter::() + } + } +} diff --git a/bindings/rust/src/cross_domain_ownable2.rs b/bindings/rust/src/cross_domain_ownable2.rs new file mode 100644 index 000000000..1097f5342 --- /dev/null +++ b/bindings/rust/src/cross_domain_ownable2.rs @@ -0,0 +1,1176 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface CrossDomainOwnable2 { + event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); + + function owner() external view returns (address); + function renounceOwnership() external; + function transferOwnership(address newOwner) external; +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "function", + "name": "owner", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "renounceOwnership", + "inputs": [], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "transferOwnership", + "inputs": [ + { + "name": "newOwner", + "type": "address", + "internalType": "address" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "event", + "name": "OwnershipTransferred", + "inputs": [ + { + "name": "previousOwner", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "newOwner", + "type": "address", + "indexed": true, + "internalType": "address" + } + ], + "anonymous": false + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod CrossDomainOwnable2 { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"", + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `OwnershipTransferred(address,address)` and selector `0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0`. +```solidity +event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct OwnershipTransferred { + #[allow(missing_docs)] + pub previousOwner: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub newOwner: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for OwnershipTransferred { + type DataTuple<'a> = (); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "OwnershipTransferred(address,address)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 139u8, 224u8, 7u8, 156u8, 83u8, 22u8, 89u8, 20u8, 19u8, 68u8, 205u8, + 31u8, 208u8, 164u8, 242u8, 132u8, 25u8, 73u8, 127u8, 151u8, 34u8, 163u8, + 218u8, 175u8, 227u8, 180u8, 24u8, 111u8, 107u8, 100u8, 87u8, 224u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + previousOwner: topics.1, + newOwner: topics.2, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + () + } + #[inline] + fn topics(&self) -> ::RustType { + ( + Self::SIGNATURE_HASH.into(), + self.previousOwner.clone(), + self.newOwner.clone(), + ) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.previousOwner, + ); + out[2usize] = ::encode_topic( + &self.newOwner, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for OwnershipTransferred { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&OwnershipTransferred> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &OwnershipTransferred) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `owner()` and selector `0x8da5cb5b`. +```solidity +function owner() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ownerCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`owner()`](ownerCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ownerReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ownerCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ownerCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ownerReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ownerReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for ownerCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "owner()"; + const SELECTOR: [u8; 4] = [141u8, 165u8, 203u8, 91u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: ownerReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: ownerReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `renounceOwnership()` and selector `0x715018a6`. +```solidity +function renounceOwnership() external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct renounceOwnershipCall; + ///Container type for the return parameters of the [`renounceOwnership()`](renounceOwnershipCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct renounceOwnershipReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: renounceOwnershipCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for renounceOwnershipCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: renounceOwnershipReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for renounceOwnershipReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl renounceOwnershipReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for renounceOwnershipCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = renounceOwnershipReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "renounceOwnership()"; + const SELECTOR: [u8; 4] = [113u8, 80u8, 24u8, 166u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + renounceOwnershipReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `transferOwnership(address)` and selector `0xf2fde38b`. +```solidity +function transferOwnership(address newOwner) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct transferOwnershipCall { + #[allow(missing_docs)] + pub newOwner: alloy::sol_types::private::Address, + } + ///Container type for the return parameters of the [`transferOwnership(address)`](transferOwnershipCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct transferOwnershipReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: transferOwnershipCall) -> Self { + (value.newOwner,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for transferOwnershipCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { newOwner: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: transferOwnershipReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for transferOwnershipReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl transferOwnershipReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for transferOwnershipCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = transferOwnershipReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "transferOwnership(address)"; + const SELECTOR: [u8; 4] = [242u8, 253u8, 227u8, 139u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.newOwner, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + transferOwnershipReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + ///Container for all the [`CrossDomainOwnable2`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum CrossDomainOwnable2Calls { + #[allow(missing_docs)] + owner(ownerCall), + #[allow(missing_docs)] + renounceOwnership(renounceOwnershipCall), + #[allow(missing_docs)] + transferOwnership(transferOwnershipCall), + } + impl CrossDomainOwnable2Calls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [113u8, 80u8, 24u8, 166u8], + [141u8, 165u8, 203u8, 91u8], + [242u8, 253u8, 227u8, 139u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(renounceOwnership), + ::core::stringify!(owner), + ::core::stringify!(transferOwnership), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for CrossDomainOwnable2Calls { + const NAME: &'static str = "CrossDomainOwnable2Calls"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 3usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::owner(_) => ::SELECTOR, + Self::renounceOwnership(_) => { + ::SELECTOR + } + Self::transferOwnership(_) => { + ::SELECTOR + } + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn renounceOwnership( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(CrossDomainOwnable2Calls::renounceOwnership) + } + renounceOwnership + }, + { + fn owner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(CrossDomainOwnable2Calls::owner) + } + owner + }, + { + fn transferOwnership( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(CrossDomainOwnable2Calls::transferOwnership) + } + transferOwnership + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn renounceOwnership( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(CrossDomainOwnable2Calls::renounceOwnership) + } + renounceOwnership + }, + { + fn owner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(CrossDomainOwnable2Calls::owner) + } + owner + }, + { + fn transferOwnership( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(CrossDomainOwnable2Calls::transferOwnership) + } + transferOwnership + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::owner(inner) => { + ::abi_encoded_size(inner) + } + Self::renounceOwnership(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::transferOwnership(inner) => { + ::abi_encoded_size( + inner, + ) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::owner(inner) => { + ::abi_encode_raw(inner, out) + } + Self::renounceOwnership(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::transferOwnership(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + } + } + } + ///Container for all the [`CrossDomainOwnable2`](self) events. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum CrossDomainOwnable2Events { + #[allow(missing_docs)] + OwnershipTransferred(OwnershipTransferred), + } + impl CrossDomainOwnable2Events { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 32usize]] = &[ + [ + 139u8, 224u8, 7u8, 156u8, 83u8, 22u8, 89u8, 20u8, 19u8, 68u8, 205u8, + 31u8, 208u8, 164u8, 242u8, 132u8, 25u8, 73u8, 127u8, 151u8, 34u8, 163u8, + 218u8, 175u8, 227u8, 180u8, 24u8, 111u8, 107u8, 100u8, 87u8, 224u8, + ], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(OwnershipTransferred), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolEventInterface for CrossDomainOwnable2Events { + const NAME: &'static str = "CrossDomainOwnable2Events"; + const COUNT: usize = 1usize; + fn decode_raw_log( + topics: &[alloy_sol_types::Word], + data: &[u8], + ) -> alloy_sol_types::Result { + match topics.first().copied() { + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::OwnershipTransferred) + } + _ => { + alloy_sol_types::private::Err(alloy_sol_types::Error::InvalidLog { + name: ::NAME, + log: alloy_sol_types::private::Box::new( + alloy_sol_types::private::LogData::new_unchecked( + topics.to_vec(), + data.to_vec().into(), + ), + ), + }) + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for CrossDomainOwnable2Events { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + match self { + Self::OwnershipTransferred(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + } + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + match self { + Self::OwnershipTransferred(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`CrossDomainOwnable2`](self) contract instance. + +See the [wrapper's documentation](`CrossDomainOwnable2Instance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> CrossDomainOwnable2Instance { + CrossDomainOwnable2Instance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + CrossDomainOwnable2Instance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + CrossDomainOwnable2Instance::::deploy_builder(__provider) + } + /**A [`CrossDomainOwnable2`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`CrossDomainOwnable2`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct CrossDomainOwnable2Instance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for CrossDomainOwnable2Instance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("CrossDomainOwnable2Instance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > CrossDomainOwnable2Instance { + /**Creates a new wrapper around an on-chain [`CrossDomainOwnable2`](self) contract instance. + +See the [wrapper's documentation](`CrossDomainOwnable2Instance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl CrossDomainOwnable2Instance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> CrossDomainOwnable2Instance { + CrossDomainOwnable2Instance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > CrossDomainOwnable2Instance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`owner`] function. + pub fn owner(&self) -> alloy_contract::SolCallBuilder<&P, ownerCall, N> { + self.call_builder(&ownerCall) + } + ///Creates a new call builder for the [`renounceOwnership`] function. + pub fn renounceOwnership( + &self, + ) -> alloy_contract::SolCallBuilder<&P, renounceOwnershipCall, N> { + self.call_builder(&renounceOwnershipCall) + } + ///Creates a new call builder for the [`transferOwnership`] function. + pub fn transferOwnership( + &self, + newOwner: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, transferOwnershipCall, N> { + self.call_builder(&transferOwnershipCall { newOwner }) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > CrossDomainOwnable2Instance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + ///Creates a new event filter for the [`OwnershipTransferred`] event. + pub fn OwnershipTransferred_filter( + &self, + ) -> alloy_contract::Event<&P, OwnershipTransferred, N> { + self.event_filter::() + } + } +} diff --git a/bindings/rust/src/cross_domain_ownable3.rs b/bindings/rust/src/cross_domain_ownable3.rs new file mode 100644 index 000000000..caa71f993 --- /dev/null +++ b/bindings/rust/src/cross_domain_ownable3.rs @@ -0,0 +1,1793 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface CrossDomainOwnable3 { + event OwnershipTransferred(address indexed previousOwner, address indexed newOwner, bool isLocal); + event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); + + function isLocal() external view returns (bool); + function owner() external view returns (address); + function renounceOwnership() external; + function transferOwnership(address _owner, bool _isLocal) external; + function transferOwnership(address newOwner) external; +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "function", + "name": "isLocal", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "owner", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "renounceOwnership", + "inputs": [], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "transferOwnership", + "inputs": [ + { + "name": "_owner", + "type": "address", + "internalType": "address" + }, + { + "name": "_isLocal", + "type": "bool", + "internalType": "bool" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "transferOwnership", + "inputs": [ + { + "name": "newOwner", + "type": "address", + "internalType": "address" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "event", + "name": "OwnershipTransferred", + "inputs": [ + { + "name": "previousOwner", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "newOwner", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "isLocal", + "type": "bool", + "indexed": false, + "internalType": "bool" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "OwnershipTransferred", + "inputs": [ + { + "name": "previousOwner", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "newOwner", + "type": "address", + "indexed": true, + "internalType": "address" + } + ], + "anonymous": false + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod CrossDomainOwnable3 { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"", + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `OwnershipTransferred(address,address,bool)` and selector `0x7fdc2a4b6eb39ec3363d710d188620bd1e97b3c434161f187b4d0dc0544faa58`. +```solidity +event OwnershipTransferred(address indexed previousOwner, address indexed newOwner, bool isLocal); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct OwnershipTransferred_0 { + #[allow(missing_docs)] + pub previousOwner: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub newOwner: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub isLocal: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for OwnershipTransferred_0 { + type DataTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "OwnershipTransferred(address,address,bool)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 127u8, 220u8, 42u8, 75u8, 110u8, 179u8, 158u8, 195u8, 54u8, 61u8, 113u8, + 13u8, 24u8, 134u8, 32u8, 189u8, 30u8, 151u8, 179u8, 196u8, 52u8, 22u8, + 31u8, 24u8, 123u8, 77u8, 13u8, 192u8, 84u8, 79u8, 170u8, 88u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + previousOwner: topics.1, + newOwner: topics.2, + isLocal: data.0, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + ::tokenize( + &self.isLocal, + ), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + ( + Self::SIGNATURE_HASH.into(), + self.previousOwner.clone(), + self.newOwner.clone(), + ) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.previousOwner, + ); + out[2usize] = ::encode_topic( + &self.newOwner, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for OwnershipTransferred_0 { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&OwnershipTransferred_0> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &OwnershipTransferred_0) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `OwnershipTransferred(address,address)` and selector `0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0`. +```solidity +event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct OwnershipTransferred_1 { + #[allow(missing_docs)] + pub previousOwner: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub newOwner: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for OwnershipTransferred_1 { + type DataTuple<'a> = (); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "OwnershipTransferred(address,address)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 139u8, 224u8, 7u8, 156u8, 83u8, 22u8, 89u8, 20u8, 19u8, 68u8, 205u8, + 31u8, 208u8, 164u8, 242u8, 132u8, 25u8, 73u8, 127u8, 151u8, 34u8, 163u8, + 218u8, 175u8, 227u8, 180u8, 24u8, 111u8, 107u8, 100u8, 87u8, 224u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + previousOwner: topics.1, + newOwner: topics.2, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + () + } + #[inline] + fn topics(&self) -> ::RustType { + ( + Self::SIGNATURE_HASH.into(), + self.previousOwner.clone(), + self.newOwner.clone(), + ) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.previousOwner, + ); + out[2usize] = ::encode_topic( + &self.newOwner, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for OwnershipTransferred_1 { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&OwnershipTransferred_1> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &OwnershipTransferred_1) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `isLocal()` and selector `0x0ee04629`. +```solidity +function isLocal() external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct isLocalCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`isLocal()`](isLocalCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct isLocalReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: isLocalCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for isLocalCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: isLocalReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for isLocalReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for isLocalCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "isLocal()"; + const SELECTOR: [u8; 4] = [14u8, 224u8, 70u8, 41u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: isLocalReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: isLocalReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `owner()` and selector `0x8da5cb5b`. +```solidity +function owner() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ownerCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`owner()`](ownerCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ownerReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ownerCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ownerCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ownerReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ownerReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for ownerCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "owner()"; + const SELECTOR: [u8; 4] = [141u8, 165u8, 203u8, 91u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: ownerReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: ownerReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `renounceOwnership()` and selector `0x715018a6`. +```solidity +function renounceOwnership() external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct renounceOwnershipCall; + ///Container type for the return parameters of the [`renounceOwnership()`](renounceOwnershipCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct renounceOwnershipReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: renounceOwnershipCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for renounceOwnershipCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: renounceOwnershipReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for renounceOwnershipReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl renounceOwnershipReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for renounceOwnershipCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = renounceOwnershipReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "renounceOwnership()"; + const SELECTOR: [u8; 4] = [113u8, 80u8, 24u8, 166u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + renounceOwnershipReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `transferOwnership(address,bool)` and selector `0xb242e534`. +```solidity +function transferOwnership(address _owner, bool _isLocal) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct transferOwnership_0Call { + #[allow(missing_docs)] + pub _owner: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _isLocal: bool, + } + ///Container type for the return parameters of the [`transferOwnership(address,bool)`](transferOwnership_0Call) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct transferOwnership_0Return {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Bool, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address, bool); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: transferOwnership_0Call) -> Self { + (value._owner, value._isLocal) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for transferOwnership_0Call { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _owner: tuple.0, + _isLocal: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: transferOwnership_0Return) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for transferOwnership_0Return { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl transferOwnership_0Return { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for transferOwnership_0Call { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Bool, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = transferOwnership_0Return; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "transferOwnership(address,bool)"; + const SELECTOR: [u8; 4] = [178u8, 66u8, 229u8, 52u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._owner, + ), + ::tokenize( + &self._isLocal, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + transferOwnership_0Return::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `transferOwnership(address)` and selector `0xf2fde38b`. +```solidity +function transferOwnership(address newOwner) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct transferOwnership_1Call { + #[allow(missing_docs)] + pub newOwner: alloy::sol_types::private::Address, + } + ///Container type for the return parameters of the [`transferOwnership(address)`](transferOwnership_1Call) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct transferOwnership_1Return {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: transferOwnership_1Call) -> Self { + (value.newOwner,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for transferOwnership_1Call { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { newOwner: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: transferOwnership_1Return) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for transferOwnership_1Return { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl transferOwnership_1Return { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for transferOwnership_1Call { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = transferOwnership_1Return; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "transferOwnership(address)"; + const SELECTOR: [u8; 4] = [242u8, 253u8, 227u8, 139u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.newOwner, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + transferOwnership_1Return::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + ///Container for all the [`CrossDomainOwnable3`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum CrossDomainOwnable3Calls { + #[allow(missing_docs)] + isLocal(isLocalCall), + #[allow(missing_docs)] + owner(ownerCall), + #[allow(missing_docs)] + renounceOwnership(renounceOwnershipCall), + #[allow(missing_docs)] + transferOwnership_0(transferOwnership_0Call), + #[allow(missing_docs)] + transferOwnership_1(transferOwnership_1Call), + } + impl CrossDomainOwnable3Calls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [14u8, 224u8, 70u8, 41u8], + [113u8, 80u8, 24u8, 166u8], + [141u8, 165u8, 203u8, 91u8], + [178u8, 66u8, 229u8, 52u8], + [242u8, 253u8, 227u8, 139u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(isLocal), + ::core::stringify!(renounceOwnership), + ::core::stringify!(owner), + ::core::stringify!(transferOwnership_0), + ::core::stringify!(transferOwnership_1), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for CrossDomainOwnable3Calls { + const NAME: &'static str = "CrossDomainOwnable3Calls"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 5usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::isLocal(_) => ::SELECTOR, + Self::owner(_) => ::SELECTOR, + Self::renounceOwnership(_) => { + ::SELECTOR + } + Self::transferOwnership_0(_) => { + ::SELECTOR + } + Self::transferOwnership_1(_) => { + ::SELECTOR + } + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn isLocal( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(CrossDomainOwnable3Calls::isLocal) + } + isLocal + }, + { + fn renounceOwnership( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(CrossDomainOwnable3Calls::renounceOwnership) + } + renounceOwnership + }, + { + fn owner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(CrossDomainOwnable3Calls::owner) + } + owner + }, + { + fn transferOwnership_0( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(CrossDomainOwnable3Calls::transferOwnership_0) + } + transferOwnership_0 + }, + { + fn transferOwnership_1( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(CrossDomainOwnable3Calls::transferOwnership_1) + } + transferOwnership_1 + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn isLocal( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(CrossDomainOwnable3Calls::isLocal) + } + isLocal + }, + { + fn renounceOwnership( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(CrossDomainOwnable3Calls::renounceOwnership) + } + renounceOwnership + }, + { + fn owner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(CrossDomainOwnable3Calls::owner) + } + owner + }, + { + fn transferOwnership_0( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(CrossDomainOwnable3Calls::transferOwnership_0) + } + transferOwnership_0 + }, + { + fn transferOwnership_1( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(CrossDomainOwnable3Calls::transferOwnership_1) + } + transferOwnership_1 + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::isLocal(inner) => { + ::abi_encoded_size(inner) + } + Self::owner(inner) => { + ::abi_encoded_size(inner) + } + Self::renounceOwnership(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::transferOwnership_0(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::transferOwnership_1(inner) => { + ::abi_encoded_size( + inner, + ) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::isLocal(inner) => { + ::abi_encode_raw(inner, out) + } + Self::owner(inner) => { + ::abi_encode_raw(inner, out) + } + Self::renounceOwnership(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::transferOwnership_0(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::transferOwnership_1(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + } + } + } + ///Container for all the [`CrossDomainOwnable3`](self) events. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum CrossDomainOwnable3Events { + #[allow(missing_docs)] + OwnershipTransferred_0(OwnershipTransferred_0), + #[allow(missing_docs)] + OwnershipTransferred_1(OwnershipTransferred_1), + } + impl CrossDomainOwnable3Events { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 32usize]] = &[ + [ + 127u8, 220u8, 42u8, 75u8, 110u8, 179u8, 158u8, 195u8, 54u8, 61u8, 113u8, + 13u8, 24u8, 134u8, 32u8, 189u8, 30u8, 151u8, 179u8, 196u8, 52u8, 22u8, + 31u8, 24u8, 123u8, 77u8, 13u8, 192u8, 84u8, 79u8, 170u8, 88u8, + ], + [ + 139u8, 224u8, 7u8, 156u8, 83u8, 22u8, 89u8, 20u8, 19u8, 68u8, 205u8, + 31u8, 208u8, 164u8, 242u8, 132u8, 25u8, 73u8, 127u8, 151u8, 34u8, 163u8, + 218u8, 175u8, 227u8, 180u8, 24u8, 111u8, 107u8, 100u8, 87u8, 224u8, + ], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(OwnershipTransferred_0), + ::core::stringify!(OwnershipTransferred_1), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolEventInterface for CrossDomainOwnable3Events { + const NAME: &'static str = "CrossDomainOwnable3Events"; + const COUNT: usize = 2usize; + fn decode_raw_log( + topics: &[alloy_sol_types::Word], + data: &[u8], + ) -> alloy_sol_types::Result { + match topics.first().copied() { + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::OwnershipTransferred_0) + } + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::OwnershipTransferred_1) + } + _ => { + alloy_sol_types::private::Err(alloy_sol_types::Error::InvalidLog { + name: ::NAME, + log: alloy_sol_types::private::Box::new( + alloy_sol_types::private::LogData::new_unchecked( + topics.to_vec(), + data.to_vec().into(), + ), + ), + }) + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for CrossDomainOwnable3Events { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + match self { + Self::OwnershipTransferred_0(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::OwnershipTransferred_1(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + } + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + match self { + Self::OwnershipTransferred_0(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::OwnershipTransferred_1(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`CrossDomainOwnable3`](self) contract instance. + +See the [wrapper's documentation](`CrossDomainOwnable3Instance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> CrossDomainOwnable3Instance { + CrossDomainOwnable3Instance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + CrossDomainOwnable3Instance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + CrossDomainOwnable3Instance::::deploy_builder(__provider) + } + /**A [`CrossDomainOwnable3`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`CrossDomainOwnable3`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct CrossDomainOwnable3Instance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for CrossDomainOwnable3Instance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("CrossDomainOwnable3Instance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > CrossDomainOwnable3Instance { + /**Creates a new wrapper around an on-chain [`CrossDomainOwnable3`](self) contract instance. + +See the [wrapper's documentation](`CrossDomainOwnable3Instance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl CrossDomainOwnable3Instance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> CrossDomainOwnable3Instance { + CrossDomainOwnable3Instance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > CrossDomainOwnable3Instance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`isLocal`] function. + pub fn isLocal(&self) -> alloy_contract::SolCallBuilder<&P, isLocalCall, N> { + self.call_builder(&isLocalCall) + } + ///Creates a new call builder for the [`owner`] function. + pub fn owner(&self) -> alloy_contract::SolCallBuilder<&P, ownerCall, N> { + self.call_builder(&ownerCall) + } + ///Creates a new call builder for the [`renounceOwnership`] function. + pub fn renounceOwnership( + &self, + ) -> alloy_contract::SolCallBuilder<&P, renounceOwnershipCall, N> { + self.call_builder(&renounceOwnershipCall) + } + ///Creates a new call builder for the [`transferOwnership_0`] function. + pub fn transferOwnership_0( + &self, + _owner: alloy::sol_types::private::Address, + _isLocal: bool, + ) -> alloy_contract::SolCallBuilder<&P, transferOwnership_0Call, N> { + self.call_builder( + &transferOwnership_0Call { + _owner, + _isLocal, + }, + ) + } + ///Creates a new call builder for the [`transferOwnership_1`] function. + pub fn transferOwnership_1( + &self, + newOwner: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, transferOwnership_1Call, N> { + self.call_builder( + &transferOwnership_1Call { + newOwner, + }, + ) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > CrossDomainOwnable3Instance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + ///Creates a new event filter for the [`OwnershipTransferred_0`] event. + pub fn OwnershipTransferred_0_filter( + &self, + ) -> alloy_contract::Event<&P, OwnershipTransferred_0, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`OwnershipTransferred_1`] event. + pub fn OwnershipTransferred_1_filter( + &self, + ) -> alloy_contract::Event<&P, OwnershipTransferred_1, N> { + self.event_filter::() + } + } +} diff --git a/bindings/rust/src/cross_l2_inbox.rs b/bindings/rust/src/cross_l2_inbox.rs new file mode 100644 index 000000000..9ded07ea4 --- /dev/null +++ b/bindings/rust/src/cross_l2_inbox.rs @@ -0,0 +1,2229 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface CrossL2Inbox { + struct Identifier { + address origin; + uint256 blockNumber; + uint256 logIndex; + uint256 timestamp; + uint256 chainId; + } + + error BlockNumberTooHigh(); + error LogIndexTooHigh(); + error NotInAccessList(); + error TimestampTooHigh(); + + event ExecutingMessage(bytes32 indexed msgHash, Identifier id); + + function calculateChecksum(Identifier memory _id, bytes32 _msgHash) external pure returns (bytes32 checksum_); + function validateMessage(Identifier memory _id, bytes32 _msgHash) external; + function version() external view returns (string memory); +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "function", + "name": "calculateChecksum", + "inputs": [ + { + "name": "_id", + "type": "tuple", + "internalType": "struct Identifier", + "components": [ + { + "name": "origin", + "type": "address", + "internalType": "address" + }, + { + "name": "blockNumber", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "logIndex", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "timestamp", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "chainId", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { + "name": "_msgHash", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "outputs": [ + { + "name": "checksum_", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "validateMessage", + "inputs": [ + { + "name": "_id", + "type": "tuple", + "internalType": "struct Identifier", + "components": [ + { + "name": "origin", + "type": "address", + "internalType": "address" + }, + { + "name": "blockNumber", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "logIndex", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "timestamp", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "chainId", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { + "name": "_msgHash", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "version", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "view" + }, + { + "type": "event", + "name": "ExecutingMessage", + "inputs": [ + { + "name": "msgHash", + "type": "bytes32", + "indexed": true, + "internalType": "bytes32" + }, + { + "name": "id", + "type": "tuple", + "indexed": false, + "internalType": "struct Identifier", + "components": [ + { + "name": "origin", + "type": "address", + "internalType": "address" + }, + { + "name": "blockNumber", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "logIndex", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "timestamp", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "chainId", + "type": "uint256", + "internalType": "uint256" + } + ] + } + ], + "anonymous": false + }, + { + "type": "error", + "name": "BlockNumberTooHigh", + "inputs": [] + }, + { + "type": "error", + "name": "LogIndexTooHigh", + "inputs": [] + }, + { + "type": "error", + "name": "NotInAccessList", + "inputs": [] + }, + { + "type": "error", + "name": "TimestampTooHigh", + "inputs": [] + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod CrossL2Inbox { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x6080604052348015600e575f80fd5b506106828061001c5f395ff3fe608060405234801561000f575f80fd5b506004361061003f575f3560e01c8063331b637f1461004357806354fd4d5014610069578063ab4d6f75146100b2575b5f80fd5b610056610051366004610512565b6100c7565b6040519081526020015b60405180910390f35b6100a56040518060400160405280600581526020017f312e302e3200000000000000000000000000000000000000000000000000000081525081565b604051610060919061053b565b6100c56100c036600461058e565b61039e565b005b5f67ffffffffffffffff801683602001511115610110576040517fd1f79e8200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604083015163ffffffff1015610152576040517f94338eba00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b606083015167ffffffffffffffff1015610198576040517f596a19a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b82516040515f916101dd91859060200160609290921b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000168252601482015260340190565b604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe00181528282528051602091820120878201516060890151898501515f9487018590527fffffffffffffffff00000000000000000000000000000000000000000000000060c084811b8216602c8a015283901b1660348801527fffffffff0000000000000000000000000000000000000000000000000000000060e082901b16603c88015292965090949093919291016040516020818303038152906040526102ac906105bc565b90505f85826040516020016102cb929190918252602082015260400190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152828252805160209182012060808d01519184018190529183015291505f90606001604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291905280516020909101207effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f0300000000000000000000000000000000000000000000000000000000000000179a9950505050505050505050565b5f6103b76103b136859003850185610601565b836100c7565b90505f6103c38261043b565b509050806103fd576040517fe3c0081600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b827f5c37832d2e8d10e346e55ad62071a6a2f9fa5130614ef2ec6617555c6f467ba78560405161042d9190610622565b60405180910390a250505050565b5f805a835491505a6103e891031115939092509050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610475575f80fd5b919050565b5f60a0828403121561048a575f80fd5b60405160a0810181811067ffffffffffffffff821117156104d2577f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040529050806104e183610452565b8152602083013560208201526040830135604082015260608301356060820152608083013560808201525092915050565b5f8060c08385031215610523575f80fd5b61052d848461047a565b9460a0939093013593505050565b602081525f82518060208401528060208501604085015e5f6040828501015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011684010191505092915050565b5f8082840360c08112156105a0575f80fd5b60a08112156105ad575f80fd5b50919360a08501359350915050565b805160208083015191908110156105fb577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8160200360031b1b821691505b50919050565b5f60a08284031215610611575f80fd5b61061b838361047a565b9392505050565b60a0810173ffffffffffffffffffffffffffffffffffffffff61064484610452565b168252602083013560208301526040830135604083015260608301356060830152608083013560808301529291505056fea164736f6c6343000819000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R4\x80\x15`\x0EW_\x80\xFD[Pa\x06\x82\x80a\0\x1C_9_\xF3\xFE`\x80`@R4\x80\x15a\0\x0FW_\x80\xFD[P`\x046\x10a\0?W_5`\xE0\x1C\x80c3\x1Bc\x7F\x14a\0CW\x80cT\xFDMP\x14a\0iW\x80c\xABMou\x14a\0\xB2W[_\x80\xFD[a\0Va\0Q6`\x04a\x05\x12V[a\0\xC7V[`@Q\x90\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[a\0\xA5`@Q\x80`@\x01`@R\x80`\x05\x81R` \x01\x7F1.0.2\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\x81RP\x81V[`@Qa\0`\x91\x90a\x05;V[a\0\xC5a\0\xC06`\x04a\x05\x8EV[a\x03\x9EV[\0[_g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x16\x83` \x01Q\x11\x15a\x01\x10W`@Q\x7F\xD1\xF7\x9E\x82\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\x01`@Q\x80\x91\x03\x90\xFD[`@\x83\x01Qc\xFF\xFF\xFF\xFF\x10\x15a\x01RW`@Q\x7F\x943\x8E\xBA\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\x01`@Q\x80\x91\x03\x90\xFD[``\x83\x01Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x10\x15a\x01\x98W`@Q\x7FYj\x19\xA9\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\x01`@Q\x80\x91\x03\x90\xFD[\x82Q`@Q_\x91a\x01\xDD\x91\x85\x90` \x01``\x92\x90\x92\x1B\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\x16\x82R`\x14\x82\x01R`4\x01\x90V[`@\x80Q\x80\x83\x03\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x01\x81R\x82\x82R\x80Q` \x91\x82\x01 \x87\x82\x01Q``\x89\x01Q\x89\x85\x01Q_\x94\x87\x01\x85\x90R\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\xC0\x84\x81\x1B\x82\x16`,\x8A\x01R\x83\x90\x1B\x16`4\x88\x01R\x7F\xFF\xFF\xFF\xFF\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`\xE0\x82\x90\x1B\x16`<\x88\x01R\x92\x96P\x90\x94\x90\x93\x91\x92\x91\x01`@Q` \x81\x83\x03\x03\x81R\x90`@Ra\x02\xAC\x90a\x05\xBCV[\x90P_\x85\x82`@Q` \x01a\x02\xCB\x92\x91\x90\x91\x82R` \x82\x01R`@\x01\x90V[`@\x80Q\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x81\x84\x03\x01\x81R\x82\x82R\x80Q` \x91\x82\x01 `\x80\x8D\x01Q\x91\x84\x01\x81\x90R\x91\x83\x01R\x91P_\x90``\x01`@\x80Q\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x81\x84\x03\x01\x81R\x91\x90R\x80Q` \x90\x91\x01 ~\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\x03\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x17\x9A\x99PPPPPPPPPPV[_a\x03\xB7a\x03\xB16\x85\x90\x03\x85\x01\x85a\x06\x01V[\x83a\0\xC7V[\x90P_a\x03\xC3\x82a\x04;V[P\x90P\x80a\x03\xFDW`@Q\x7F\xE3\xC0\x08\x16\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\x01`@Q\x80\x91\x03\x90\xFD[\x82\x7F\\7\x83-.\x8D\x10\xE3F\xE5Z\xD6 q\xA6\xA2\xF9\xFAQ0aN\xF2\xECf\x17U\\oF{\xA7\x85`@Qa\x04-\x91\x90a\x06\"V[`@Q\x80\x91\x03\x90\xA2PPPPV[_\x80Z\x83T\x91PZa\x03\xE8\x91\x03\x11\x15\x93\x90\x92P\x90PV[\x805s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x04uW_\x80\xFD[\x91\x90PV[_`\xA0\x82\x84\x03\x12\x15a\x04\x8AW_\x80\xFD[`@Q`\xA0\x81\x01\x81\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17\x15a\x04\xD2W\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_R`A`\x04R`$_\xFD[`@R\x90P\x80a\x04\xE1\x83a\x04RV[\x81R` \x83\x015` \x82\x01R`@\x83\x015`@\x82\x01R``\x83\x015``\x82\x01R`\x80\x83\x015`\x80\x82\x01RP\x92\x91PPV[_\x80`\xC0\x83\x85\x03\x12\x15a\x05#W_\x80\xFD[a\x05-\x84\x84a\x04zV[\x94`\xA0\x93\x90\x93\x015\x93PPPV[` \x81R_\x82Q\x80` \x84\x01R\x80` \x85\x01`@\x85\x01^_`@\x82\x85\x01\x01R`@\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0`\x1F\x83\x01\x16\x84\x01\x01\x91PP\x92\x91PPV[_\x80\x82\x84\x03`\xC0\x81\x12\x15a\x05\xA0W_\x80\xFD[`\xA0\x81\x12\x15a\x05\xADW_\x80\xFD[P\x91\x93`\xA0\x85\x015\x93P\x91PPV[\x80Q` \x80\x83\x01Q\x91\x90\x81\x10\x15a\x05\xFBW\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81` \x03`\x03\x1B\x1B\x82\x16\x91P[P\x91\x90PV[_`\xA0\x82\x84\x03\x12\x15a\x06\x11W_\x80\xFD[a\x06\x1B\x83\x83a\x04zV[\x93\x92PPPV[`\xA0\x81\x01s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFFa\x06D\x84a\x04RV[\x16\x82R` \x83\x015` \x83\x01R`@\x83\x015`@\x83\x01R``\x83\x015``\x83\x01R`\x80\x83\x015`\x80\x83\x01R\x92\x91PPV\xFE\xA1dsolcC\0\x08\x19\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x608060405234801561000f575f80fd5b506004361061003f575f3560e01c8063331b637f1461004357806354fd4d5014610069578063ab4d6f75146100b2575b5f80fd5b610056610051366004610512565b6100c7565b6040519081526020015b60405180910390f35b6100a56040518060400160405280600581526020017f312e302e3200000000000000000000000000000000000000000000000000000081525081565b604051610060919061053b565b6100c56100c036600461058e565b61039e565b005b5f67ffffffffffffffff801683602001511115610110576040517fd1f79e8200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604083015163ffffffff1015610152576040517f94338eba00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b606083015167ffffffffffffffff1015610198576040517f596a19a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b82516040515f916101dd91859060200160609290921b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000168252601482015260340190565b604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe00181528282528051602091820120878201516060890151898501515f9487018590527fffffffffffffffff00000000000000000000000000000000000000000000000060c084811b8216602c8a015283901b1660348801527fffffffff0000000000000000000000000000000000000000000000000000000060e082901b16603c88015292965090949093919291016040516020818303038152906040526102ac906105bc565b90505f85826040516020016102cb929190918252602082015260400190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152828252805160209182012060808d01519184018190529183015291505f90606001604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291905280516020909101207effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f0300000000000000000000000000000000000000000000000000000000000000179a9950505050505050505050565b5f6103b76103b136859003850185610601565b836100c7565b90505f6103c38261043b565b509050806103fd576040517fe3c0081600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b827f5c37832d2e8d10e346e55ad62071a6a2f9fa5130614ef2ec6617555c6f467ba78560405161042d9190610622565b60405180910390a250505050565b5f805a835491505a6103e891031115939092509050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610475575f80fd5b919050565b5f60a0828403121561048a575f80fd5b60405160a0810181811067ffffffffffffffff821117156104d2577f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040529050806104e183610452565b8152602083013560208201526040830135604082015260608301356060820152608083013560808201525092915050565b5f8060c08385031215610523575f80fd5b61052d848461047a565b9460a0939093013593505050565b602081525f82518060208401528060208501604085015e5f6040828501015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011684010191505092915050565b5f8082840360c08112156105a0575f80fd5b60a08112156105ad575f80fd5b50919360a08501359350915050565b805160208083015191908110156105fb577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8160200360031b1b821691505b50919050565b5f60a08284031215610611575f80fd5b61061b838361047a565b9392505050565b60a0810173ffffffffffffffffffffffffffffffffffffffff61064484610452565b168252602083013560208301526040830135604083015260608301356060830152608083013560808301529291505056fea164736f6c6343000819000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R4\x80\x15a\0\x0FW_\x80\xFD[P`\x046\x10a\0?W_5`\xE0\x1C\x80c3\x1Bc\x7F\x14a\0CW\x80cT\xFDMP\x14a\0iW\x80c\xABMou\x14a\0\xB2W[_\x80\xFD[a\0Va\0Q6`\x04a\x05\x12V[a\0\xC7V[`@Q\x90\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[a\0\xA5`@Q\x80`@\x01`@R\x80`\x05\x81R` \x01\x7F1.0.2\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\x81RP\x81V[`@Qa\0`\x91\x90a\x05;V[a\0\xC5a\0\xC06`\x04a\x05\x8EV[a\x03\x9EV[\0[_g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x16\x83` \x01Q\x11\x15a\x01\x10W`@Q\x7F\xD1\xF7\x9E\x82\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\x01`@Q\x80\x91\x03\x90\xFD[`@\x83\x01Qc\xFF\xFF\xFF\xFF\x10\x15a\x01RW`@Q\x7F\x943\x8E\xBA\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\x01`@Q\x80\x91\x03\x90\xFD[``\x83\x01Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x10\x15a\x01\x98W`@Q\x7FYj\x19\xA9\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\x01`@Q\x80\x91\x03\x90\xFD[\x82Q`@Q_\x91a\x01\xDD\x91\x85\x90` \x01``\x92\x90\x92\x1B\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\x16\x82R`\x14\x82\x01R`4\x01\x90V[`@\x80Q\x80\x83\x03\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x01\x81R\x82\x82R\x80Q` \x91\x82\x01 \x87\x82\x01Q``\x89\x01Q\x89\x85\x01Q_\x94\x87\x01\x85\x90R\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\xC0\x84\x81\x1B\x82\x16`,\x8A\x01R\x83\x90\x1B\x16`4\x88\x01R\x7F\xFF\xFF\xFF\xFF\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`\xE0\x82\x90\x1B\x16`<\x88\x01R\x92\x96P\x90\x94\x90\x93\x91\x92\x91\x01`@Q` \x81\x83\x03\x03\x81R\x90`@Ra\x02\xAC\x90a\x05\xBCV[\x90P_\x85\x82`@Q` \x01a\x02\xCB\x92\x91\x90\x91\x82R` \x82\x01R`@\x01\x90V[`@\x80Q\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x81\x84\x03\x01\x81R\x82\x82R\x80Q` \x91\x82\x01 `\x80\x8D\x01Q\x91\x84\x01\x81\x90R\x91\x83\x01R\x91P_\x90``\x01`@\x80Q\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x81\x84\x03\x01\x81R\x91\x90R\x80Q` \x90\x91\x01 ~\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\x03\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x17\x9A\x99PPPPPPPPPPV[_a\x03\xB7a\x03\xB16\x85\x90\x03\x85\x01\x85a\x06\x01V[\x83a\0\xC7V[\x90P_a\x03\xC3\x82a\x04;V[P\x90P\x80a\x03\xFDW`@Q\x7F\xE3\xC0\x08\x16\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\x01`@Q\x80\x91\x03\x90\xFD[\x82\x7F\\7\x83-.\x8D\x10\xE3F\xE5Z\xD6 q\xA6\xA2\xF9\xFAQ0aN\xF2\xECf\x17U\\oF{\xA7\x85`@Qa\x04-\x91\x90a\x06\"V[`@Q\x80\x91\x03\x90\xA2PPPPV[_\x80Z\x83T\x91PZa\x03\xE8\x91\x03\x11\x15\x93\x90\x92P\x90PV[\x805s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x04uW_\x80\xFD[\x91\x90PV[_`\xA0\x82\x84\x03\x12\x15a\x04\x8AW_\x80\xFD[`@Q`\xA0\x81\x01\x81\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17\x15a\x04\xD2W\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_R`A`\x04R`$_\xFD[`@R\x90P\x80a\x04\xE1\x83a\x04RV[\x81R` \x83\x015` \x82\x01R`@\x83\x015`@\x82\x01R``\x83\x015``\x82\x01R`\x80\x83\x015`\x80\x82\x01RP\x92\x91PPV[_\x80`\xC0\x83\x85\x03\x12\x15a\x05#W_\x80\xFD[a\x05-\x84\x84a\x04zV[\x94`\xA0\x93\x90\x93\x015\x93PPPV[` \x81R_\x82Q\x80` \x84\x01R\x80` \x85\x01`@\x85\x01^_`@\x82\x85\x01\x01R`@\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0`\x1F\x83\x01\x16\x84\x01\x01\x91PP\x92\x91PPV[_\x80\x82\x84\x03`\xC0\x81\x12\x15a\x05\xA0W_\x80\xFD[`\xA0\x81\x12\x15a\x05\xADW_\x80\xFD[P\x91\x93`\xA0\x85\x015\x93P\x91PPV[\x80Q` \x80\x83\x01Q\x91\x90\x81\x10\x15a\x05\xFBW\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81` \x03`\x03\x1B\x1B\x82\x16\x91P[P\x91\x90PV[_`\xA0\x82\x84\x03\x12\x15a\x06\x11W_\x80\xFD[a\x06\x1B\x83\x83a\x04zV[\x93\x92PPPV[`\xA0\x81\x01s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFFa\x06D\x84a\x04RV[\x16\x82R` \x83\x015` \x83\x01R`@\x83\x015`@\x83\x01R``\x83\x015``\x83\x01R`\x80\x83\x015`\x80\x83\x01R\x92\x91PPV\xFE\xA1dsolcC\0\x08\x19\0\n", + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**```solidity +struct Identifier { address origin; uint256 blockNumber; uint256 logIndex; uint256 timestamp; uint256 chainId; } +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct Identifier { + #[allow(missing_docs)] + pub origin: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub blockNumber: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub logIndex: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub timestamp: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub chainId: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: Identifier) -> Self { + ( + value.origin, + value.blockNumber, + value.logIndex, + value.timestamp, + value.chainId, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for Identifier { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + origin: tuple.0, + blockNumber: tuple.1, + logIndex: tuple.2, + timestamp: tuple.3, + chainId: tuple.4, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolValue for Identifier { + type SolType = Self; + } + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for Identifier { + #[inline] + fn stv_to_tokens(&self) -> ::Token<'_> { + ( + ::tokenize( + &self.origin, + ), + as alloy_sol_types::SolType>::tokenize(&self.blockNumber), + as alloy_sol_types::SolType>::tokenize(&self.logIndex), + as alloy_sol_types::SolType>::tokenize(&self.timestamp), + as alloy_sol_types::SolType>::tokenize(&self.chainId), + ) + } + #[inline] + fn stv_abi_encoded_size(&self) -> usize { + if let Some(size) = ::ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encoded_size(&tuple) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + ::eip712_hash_struct(self) + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + if let Some(size) = ::PACKED_ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for Identifier { + type RustType = Self; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = ::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + as alloy_sol_types::SolType>::valid_token(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + let tuple = as alloy_sol_types::SolType>::detokenize(token); + >>::from(tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolStruct for Identifier { + const NAME: &'static str = "Identifier"; + #[inline] + fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> { + alloy_sol_types::private::Cow::Borrowed( + "Identifier(address origin,uint256 blockNumber,uint256 logIndex,uint256 timestamp,uint256 chainId)", + ) + } + #[inline] + fn eip712_components() -> alloy_sol_types::private::Vec< + alloy_sol_types::private::Cow<'static, str>, + > { + alloy_sol_types::private::Vec::new() + } + #[inline] + fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> { + ::eip712_root_type() + } + #[inline] + fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec { + [ + ::eip712_data_word( + &self.origin, + ) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.blockNumber) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.logIndex) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.timestamp) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.chainId) + .0, + ] + .concat() + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for Identifier { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + 0usize + + ::topic_preimage_length( + &rust.origin, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.blockNumber, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.logIndex, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.timestamp, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.chainId, + ) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + out.reserve( + ::topic_preimage_length(rust), + ); + ::encode_topic_preimage( + &rust.origin, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.blockNumber, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.logIndex, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.timestamp, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.chainId, + out, + ); + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + let mut out = alloy_sol_types::private::Vec::new(); + ::encode_topic_preimage( + rust, + &mut out, + ); + alloy_sol_types::abi::token::WordToken( + alloy_sol_types::private::keccak256(out), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `BlockNumberTooHigh()` and selector `0xd1f79e82`. +```solidity +error BlockNumberTooHigh(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct BlockNumberTooHigh; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: BlockNumberTooHigh) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for BlockNumberTooHigh { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for BlockNumberTooHigh { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "BlockNumberTooHigh()"; + const SELECTOR: [u8; 4] = [209u8, 247u8, 158u8, 130u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `LogIndexTooHigh()` and selector `0x94338eba`. +```solidity +error LogIndexTooHigh(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct LogIndexTooHigh; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: LogIndexTooHigh) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for LogIndexTooHigh { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for LogIndexTooHigh { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "LogIndexTooHigh()"; + const SELECTOR: [u8; 4] = [148u8, 51u8, 142u8, 186u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `NotInAccessList()` and selector `0xe3c00816`. +```solidity +error NotInAccessList(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct NotInAccessList; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: NotInAccessList) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for NotInAccessList { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for NotInAccessList { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "NotInAccessList()"; + const SELECTOR: [u8; 4] = [227u8, 192u8, 8u8, 22u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `TimestampTooHigh()` and selector `0x596a19a9`. +```solidity +error TimestampTooHigh(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct TimestampTooHigh; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: TimestampTooHigh) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for TimestampTooHigh { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for TimestampTooHigh { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "TimestampTooHigh()"; + const SELECTOR: [u8; 4] = [89u8, 106u8, 25u8, 169u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `ExecutingMessage(bytes32,(address,uint256,uint256,uint256,uint256))` and selector `0x5c37832d2e8d10e346e55ad62071a6a2f9fa5130614ef2ec6617555c6f467ba7`. +```solidity +event ExecutingMessage(bytes32 indexed msgHash, Identifier id); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct ExecutingMessage { + #[allow(missing_docs)] + pub msgHash: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub id: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for ExecutingMessage { + type DataTuple<'a> = (Identifier,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + const SIGNATURE: &'static str = "ExecutingMessage(bytes32,(address,uint256,uint256,uint256,uint256))"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 92u8, 55u8, 131u8, 45u8, 46u8, 141u8, 16u8, 227u8, 70u8, 229u8, 90u8, + 214u8, 32u8, 113u8, 166u8, 162u8, 249u8, 250u8, 81u8, 48u8, 97u8, 78u8, + 242u8, 236u8, 102u8, 23u8, 85u8, 92u8, 111u8, 70u8, 123u8, 167u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + msgHash: topics.1, + id: data.0, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + (::tokenize(&self.id),) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.msgHash.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = as alloy_sol_types::EventTopic>::encode_topic(&self.msgHash); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for ExecutingMessage { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&ExecutingMessage> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &ExecutingMessage) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `calculateChecksum((address,uint256,uint256,uint256,uint256),bytes32)` and selector `0x331b637f`. +```solidity +function calculateChecksum(Identifier memory _id, bytes32 _msgHash) external pure returns (bytes32 checksum_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct calculateChecksumCall { + #[allow(missing_docs)] + pub _id: ::RustType, + #[allow(missing_docs)] + pub _msgHash: alloy::sol_types::private::FixedBytes<32>, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`calculateChecksum((address,uint256,uint256,uint256,uint256),bytes32)`](calculateChecksumCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct calculateChecksumReturn { + #[allow(missing_docs)] + pub checksum_: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + Identifier, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + alloy::sol_types::private::FixedBytes<32>, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: calculateChecksumCall) -> Self { + (value._id, value._msgHash) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for calculateChecksumCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _id: tuple.0, + _msgHash: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: calculateChecksumReturn) -> Self { + (value.checksum_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for calculateChecksumReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { checksum_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for calculateChecksumCall { + type Parameters<'a> = ( + Identifier, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::FixedBytes<32>; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "calculateChecksum((address,uint256,uint256,uint256,uint256),bytes32)"; + const SELECTOR: [u8; 4] = [51u8, 27u8, 99u8, 127u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize(&self._id), + as alloy_sol_types::SolType>::tokenize(&self._msgHash), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: calculateChecksumReturn = r.into(); + r.checksum_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: calculateChecksumReturn = r.into(); + r.checksum_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `validateMessage((address,uint256,uint256,uint256,uint256),bytes32)` and selector `0xab4d6f75`. +```solidity +function validateMessage(Identifier memory _id, bytes32 _msgHash) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct validateMessageCall { + #[allow(missing_docs)] + pub _id: ::RustType, + #[allow(missing_docs)] + pub _msgHash: alloy::sol_types::private::FixedBytes<32>, + } + ///Container type for the return parameters of the [`validateMessage((address,uint256,uint256,uint256,uint256),bytes32)`](validateMessageCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct validateMessageReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + Identifier, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + alloy::sol_types::private::FixedBytes<32>, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: validateMessageCall) -> Self { + (value._id, value._msgHash) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for validateMessageCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _id: tuple.0, + _msgHash: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: validateMessageReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for validateMessageReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl validateMessageReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for validateMessageCall { + type Parameters<'a> = ( + Identifier, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = validateMessageReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "validateMessage((address,uint256,uint256,uint256,uint256),bytes32)"; + const SELECTOR: [u8; 4] = [171u8, 77u8, 111u8, 117u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize(&self._id), + as alloy_sol_types::SolType>::tokenize(&self._msgHash), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + validateMessageReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `version()` and selector `0x54fd4d50`. +```solidity +function version() external view returns (string memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`version()`](versionCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for versionCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::String; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "version()"; + const SELECTOR: [u8; 4] = [84u8, 253u8, 77u8, 80u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + } + }; + ///Container for all the [`CrossL2Inbox`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum CrossL2InboxCalls { + #[allow(missing_docs)] + calculateChecksum(calculateChecksumCall), + #[allow(missing_docs)] + validateMessage(validateMessageCall), + #[allow(missing_docs)] + version(versionCall), + } + impl CrossL2InboxCalls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [51u8, 27u8, 99u8, 127u8], + [84u8, 253u8, 77u8, 80u8], + [171u8, 77u8, 111u8, 117u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(calculateChecksum), + ::core::stringify!(version), + ::core::stringify!(validateMessage), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for CrossL2InboxCalls { + const NAME: &'static str = "CrossL2InboxCalls"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 3usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::calculateChecksum(_) => { + ::SELECTOR + } + Self::validateMessage(_) => { + ::SELECTOR + } + Self::version(_) => ::SELECTOR, + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn calculateChecksum( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(CrossL2InboxCalls::calculateChecksum) + } + calculateChecksum + }, + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(CrossL2InboxCalls::version) + } + version + }, + { + fn validateMessage( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(CrossL2InboxCalls::validateMessage) + } + validateMessage + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn calculateChecksum( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(CrossL2InboxCalls::calculateChecksum) + } + calculateChecksum + }, + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(CrossL2InboxCalls::version) + } + version + }, + { + fn validateMessage( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(CrossL2InboxCalls::validateMessage) + } + validateMessage + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::calculateChecksum(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::validateMessage(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::version(inner) => { + ::abi_encoded_size(inner) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::calculateChecksum(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::validateMessage(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::version(inner) => { + ::abi_encode_raw(inner, out) + } + } + } + } + ///Container for all the [`CrossL2Inbox`](self) custom errors. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum CrossL2InboxErrors { + #[allow(missing_docs)] + BlockNumberTooHigh(BlockNumberTooHigh), + #[allow(missing_docs)] + LogIndexTooHigh(LogIndexTooHigh), + #[allow(missing_docs)] + NotInAccessList(NotInAccessList), + #[allow(missing_docs)] + TimestampTooHigh(TimestampTooHigh), + } + impl CrossL2InboxErrors { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [89u8, 106u8, 25u8, 169u8], + [148u8, 51u8, 142u8, 186u8], + [209u8, 247u8, 158u8, 130u8], + [227u8, 192u8, 8u8, 22u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(TimestampTooHigh), + ::core::stringify!(LogIndexTooHigh), + ::core::stringify!(BlockNumberTooHigh), + ::core::stringify!(NotInAccessList), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for CrossL2InboxErrors { + const NAME: &'static str = "CrossL2InboxErrors"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 4usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::BlockNumberTooHigh(_) => { + ::SELECTOR + } + Self::LogIndexTooHigh(_) => { + ::SELECTOR + } + Self::NotInAccessList(_) => { + ::SELECTOR + } + Self::TimestampTooHigh(_) => { + ::SELECTOR + } + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn TimestampTooHigh( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(CrossL2InboxErrors::TimestampTooHigh) + } + TimestampTooHigh + }, + { + fn LogIndexTooHigh( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(CrossL2InboxErrors::LogIndexTooHigh) + } + LogIndexTooHigh + }, + { + fn BlockNumberTooHigh( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(CrossL2InboxErrors::BlockNumberTooHigh) + } + BlockNumberTooHigh + }, + { + fn NotInAccessList( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(CrossL2InboxErrors::NotInAccessList) + } + NotInAccessList + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn TimestampTooHigh( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(CrossL2InboxErrors::TimestampTooHigh) + } + TimestampTooHigh + }, + { + fn LogIndexTooHigh( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(CrossL2InboxErrors::LogIndexTooHigh) + } + LogIndexTooHigh + }, + { + fn BlockNumberTooHigh( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(CrossL2InboxErrors::BlockNumberTooHigh) + } + BlockNumberTooHigh + }, + { + fn NotInAccessList( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(CrossL2InboxErrors::NotInAccessList) + } + NotInAccessList + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::BlockNumberTooHigh(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::LogIndexTooHigh(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::NotInAccessList(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::TimestampTooHigh(inner) => { + ::abi_encoded_size( + inner, + ) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::BlockNumberTooHigh(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::LogIndexTooHigh(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::NotInAccessList(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::TimestampTooHigh(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + } + } + } + ///Container for all the [`CrossL2Inbox`](self) events. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum CrossL2InboxEvents { + #[allow(missing_docs)] + ExecutingMessage(ExecutingMessage), + } + impl CrossL2InboxEvents { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 32usize]] = &[ + [ + 92u8, 55u8, 131u8, 45u8, 46u8, 141u8, 16u8, 227u8, 70u8, 229u8, 90u8, + 214u8, 32u8, 113u8, 166u8, 162u8, 249u8, 250u8, 81u8, 48u8, 97u8, 78u8, + 242u8, 236u8, 102u8, 23u8, 85u8, 92u8, 111u8, 70u8, 123u8, 167u8, + ], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(ExecutingMessage), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolEventInterface for CrossL2InboxEvents { + const NAME: &'static str = "CrossL2InboxEvents"; + const COUNT: usize = 1usize; + fn decode_raw_log( + topics: &[alloy_sol_types::Word], + data: &[u8], + ) -> alloy_sol_types::Result { + match topics.first().copied() { + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::ExecutingMessage) + } + _ => { + alloy_sol_types::private::Err(alloy_sol_types::Error::InvalidLog { + name: ::NAME, + log: alloy_sol_types::private::Box::new( + alloy_sol_types::private::LogData::new_unchecked( + topics.to_vec(), + data.to_vec().into(), + ), + ), + }) + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for CrossL2InboxEvents { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + match self { + Self::ExecutingMessage(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + } + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + match self { + Self::ExecutingMessage(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`CrossL2Inbox`](self) contract instance. + +See the [wrapper's documentation](`CrossL2InboxInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> CrossL2InboxInstance { + CrossL2InboxInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + CrossL2InboxInstance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + CrossL2InboxInstance::::deploy_builder(__provider) + } + /**A [`CrossL2Inbox`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`CrossL2Inbox`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct CrossL2InboxInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for CrossL2InboxInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("CrossL2InboxInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > CrossL2InboxInstance { + /**Creates a new wrapper around an on-chain [`CrossL2Inbox`](self) contract instance. + +See the [wrapper's documentation](`CrossL2InboxInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl CrossL2InboxInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> CrossL2InboxInstance { + CrossL2InboxInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > CrossL2InboxInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`calculateChecksum`] function. + pub fn calculateChecksum( + &self, + _id: ::RustType, + _msgHash: alloy::sol_types::private::FixedBytes<32>, + ) -> alloy_contract::SolCallBuilder<&P, calculateChecksumCall, N> { + self.call_builder( + &calculateChecksumCall { + _id, + _msgHash, + }, + ) + } + ///Creates a new call builder for the [`validateMessage`] function. + pub fn validateMessage( + &self, + _id: ::RustType, + _msgHash: alloy::sol_types::private::FixedBytes<32>, + ) -> alloy_contract::SolCallBuilder<&P, validateMessageCall, N> { + self.call_builder( + &validateMessageCall { + _id, + _msgHash, + }, + ) + } + ///Creates a new call builder for the [`version`] function. + pub fn version(&self) -> alloy_contract::SolCallBuilder<&P, versionCall, N> { + self.call_builder(&versionCall) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > CrossL2InboxInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + ///Creates a new event filter for the [`ExecutingMessage`] event. + pub fn ExecutingMessage_filter( + &self, + ) -> alloy_contract::Event<&P, ExecutingMessage, N> { + self.event_filter::() + } + } +} diff --git a/bindings/rust/src/data_availability_challenge.rs b/bindings/rust/src/data_availability_challenge.rs new file mode 100644 index 000000000..070225651 --- /dev/null +++ b/bindings/rust/src/data_availability_challenge.rs @@ -0,0 +1,8354 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface DataAvailabilityChallenge { + type ChallengeStatus is uint8; + struct Challenge { + address challenger; + uint256 lockedBond; + uint256 startBlock; + uint256 resolvedBlock; + } + + error BondTooLow(uint256 balance, uint256 required); + error ChallengeExists(); + error ChallengeNotActive(); + error ChallengeNotExpired(); + error ChallengeWindowNotOpen(); + error InvalidCommitmentLength(uint8 commitmentType, uint256 expectedLength, uint256 actualLength); + error InvalidInputData(bytes providedDataCommitment, bytes expectedCommitment); + error InvalidResolverRefundPercentage(uint256 invalidResolverRefundPercentage); + error UnknownCommitmentType(uint8 commitmentType); + error WithdrawalFailed(); + + event BalanceChanged(address account, uint256 balance); + event ChallengeStatusChanged(uint256 indexed challengedBlockNumber, bytes challengedCommitment, ChallengeStatus status); + event Initialized(uint8 version); + event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); + event RequiredBondSizeChanged(uint256 challengeWindow); + event ResolverRefundPercentageChanged(uint256 resolverRefundPercentage); + + constructor(); + + receive() external payable; + + function balances(address) external view returns (uint256); + function bondSize() external view returns (uint256); + function challenge(uint256 _challengedBlockNumber, bytes memory _challengedCommitment) external payable; + function challengeWindow() external view returns (uint256); + function deposit() external payable; + function fixedResolutionCost() external view returns (uint256); + function getChallenge(uint256 _challengedBlockNumber, bytes memory _challengedCommitment) external view returns (Challenge memory); + function getChallengeStatus(uint256 _challengedBlockNumber, bytes memory _challengedCommitment) external view returns (ChallengeStatus); + function initialize(address _owner, uint256 _challengeWindow, uint256 _resolveWindow, uint256 _bondSize, uint256 _resolverRefundPercentage) external; + function owner() external view returns (address); + function renounceOwnership() external; + function resolve(uint256 _challengedBlockNumber, bytes memory _challengedCommitment, bytes memory _resolveData) external; + function resolveWindow() external view returns (uint256); + function resolverRefundPercentage() external view returns (uint256); + function setBondSize(uint256 _bondSize) external; + function setResolverRefundPercentage(uint256 _resolverRefundPercentage) external; + function transferOwnership(address newOwner) external; + function unlockBond(uint256 _challengedBlockNumber, bytes memory _challengedCommitment) external; + function validateCommitment(bytes memory _commitment) external pure; + function variableResolutionCost() external view returns (uint256); + function variableResolutionCostPrecision() external view returns (uint256); + function version() external view returns (string memory); + function withdraw() external; +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "constructor", + "inputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "receive", + "stateMutability": "payable" + }, + { + "type": "function", + "name": "balances", + "inputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "bondSize", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "challenge", + "inputs": [ + { + "name": "_challengedBlockNumber", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_challengedCommitment", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "challengeWindow", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "deposit", + "inputs": [], + "outputs": [], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "fixedResolutionCost", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "getChallenge", + "inputs": [ + { + "name": "_challengedBlockNumber", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_challengedCommitment", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [ + { + "name": "", + "type": "tuple", + "internalType": "struct Challenge", + "components": [ + { + "name": "challenger", + "type": "address", + "internalType": "address" + }, + { + "name": "lockedBond", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "startBlock", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "resolvedBlock", + "type": "uint256", + "internalType": "uint256" + } + ] + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "getChallengeStatus", + "inputs": [ + { + "name": "_challengedBlockNumber", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_challengedCommitment", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [ + { + "name": "", + "type": "uint8", + "internalType": "enum ChallengeStatus" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "initialize", + "inputs": [ + { + "name": "_owner", + "type": "address", + "internalType": "address" + }, + { + "name": "_challengeWindow", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_resolveWindow", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_bondSize", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_resolverRefundPercentage", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "owner", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "renounceOwnership", + "inputs": [], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "resolve", + "inputs": [ + { + "name": "_challengedBlockNumber", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_challengedCommitment", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "_resolveData", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "resolveWindow", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "resolverRefundPercentage", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "setBondSize", + "inputs": [ + { + "name": "_bondSize", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "setResolverRefundPercentage", + "inputs": [ + { + "name": "_resolverRefundPercentage", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "transferOwnership", + "inputs": [ + { + "name": "newOwner", + "type": "address", + "internalType": "address" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "unlockBond", + "inputs": [ + { + "name": "_challengedBlockNumber", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_challengedCommitment", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "validateCommitment", + "inputs": [ + { + "name": "_commitment", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "variableResolutionCost", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "variableResolutionCostPrecision", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "version", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "withdraw", + "inputs": [], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "event", + "name": "BalanceChanged", + "inputs": [ + { + "name": "account", + "type": "address", + "indexed": false, + "internalType": "address" + }, + { + "name": "balance", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "ChallengeStatusChanged", + "inputs": [ + { + "name": "challengedBlockNumber", + "type": "uint256", + "indexed": true, + "internalType": "uint256" + }, + { + "name": "challengedCommitment", + "type": "bytes", + "indexed": false, + "internalType": "bytes" + }, + { + "name": "status", + "type": "uint8", + "indexed": false, + "internalType": "enum ChallengeStatus" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "Initialized", + "inputs": [ + { + "name": "version", + "type": "uint8", + "indexed": false, + "internalType": "uint8" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "OwnershipTransferred", + "inputs": [ + { + "name": "previousOwner", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "newOwner", + "type": "address", + "indexed": true, + "internalType": "address" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "RequiredBondSizeChanged", + "inputs": [ + { + "name": "challengeWindow", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "ResolverRefundPercentageChanged", + "inputs": [ + { + "name": "resolverRefundPercentage", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "error", + "name": "BondTooLow", + "inputs": [ + { + "name": "balance", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "required", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { + "type": "error", + "name": "ChallengeExists", + "inputs": [] + }, + { + "type": "error", + "name": "ChallengeNotActive", + "inputs": [] + }, + { + "type": "error", + "name": "ChallengeNotExpired", + "inputs": [] + }, + { + "type": "error", + "name": "ChallengeWindowNotOpen", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidCommitmentLength", + "inputs": [ + { + "name": "commitmentType", + "type": "uint8", + "internalType": "uint8" + }, + { + "name": "expectedLength", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "actualLength", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { + "type": "error", + "name": "InvalidInputData", + "inputs": [ + { + "name": "providedDataCommitment", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "expectedCommitment", + "type": "bytes", + "internalType": "bytes" + } + ] + }, + { + "type": "error", + "name": "InvalidResolverRefundPercentage", + "inputs": [ + { + "name": "invalidResolverRefundPercentage", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { + "type": "error", + "name": "UnknownCommitmentType", + "inputs": [ + { + "name": "commitmentType", + "type": "uint8", + "internalType": "uint8" + } + ] + }, + { + "type": "error", + "name": "WithdrawalFailed", + "inputs": [] + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod DataAvailabilityChallenge { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x608060405234801561001057600080fd5b5061001961001e565b6100de565b600054610100900460ff161561008a5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811610156100dc576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6119b7806100ed6000396000f3fe6080604052600436106101845760003560e01c8063848afb3d116100d6578063956118521161007f578063d7d04e5411610059578063d7d04e5414610459578063f2fde38b14610479578063f92ad2191461049957600080fd5b80639561185214610427578063a03aafbf1461043e578063d0e30db01461045157600080fd5b80638ecb85e1116100b05780638ecb85e1146103d157806393988233146103e757806393fb19441461040757600080fd5b8063848afb3d1461031d578063861a1412146103865780638da5cb5b1461039c57600080fd5b80634ebaf3ce11610138578063715018a611610112578063715018a6146102bb57806379e8a8b3146102d05780637ae929d9146102fd57600080fd5b80634ebaf3ce1461023957806354fd4d501461024f5780637099c581146102a557600080fd5b806327e235e31161016957806327e235e3146101d7578063336409fd146102045780633ccfd60b1461022457600080fd5b806321cf39ee1461019857806323c30f59146101c157600080fd5b36610193576101916104b9565b005b600080fd5b3480156101a457600080fd5b506101ae60665481565b6040519081526020015b60405180910390f35b3480156101cd57600080fd5b506101ae61410081565b3480156101e357600080fd5b506101ae6101f236600461151b565b60696020526000908152604090205481565b34801561021057600080fd5b5061019161021f366004611536565b610527565b34801561023057600080fd5b50610191610577565b34801561024557600080fd5b506101ae6103e881565b34801561025b57600080fd5b506102986040518060400160405280600581526020017f312e302e3100000000000000000000000000000000000000000000000000000081525081565b6040516101b891906115ba565b3480156102b157600080fd5b506101ae60675481565b3480156102c757600080fd5b50610191610611565b3480156102dc57600080fd5b506102f06102eb366004611616565b610625565b6040516101b891906116cc565b34801561030957600080fd5b506101916103183660046116da565b6106e8565b34801561032957600080fd5b5061033d610338366004611616565b610884565b6040516101b89190815173ffffffffffffffffffffffffffffffffffffffff16815260208083015190820152604080830151908201526060918201519181019190915260800190565b34801561039257600080fd5b506101ae60655481565b3480156103a857600080fd5b5060335460405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101b8565b3480156103dd57600080fd5b506101ae60685481565b3480156103f357600080fd5b50610191610402366004611616565b610940565b34801561041357600080fd5b50610191610422366004611754565b610a72565b34801561043357600080fd5b506101ae62011cdd81565b61019161044c366004611616565b610b0f565b6101916104b9565b34801561046557600080fd5b50610191610474366004611536565b610d58565b34801561048557600080fd5b5061019161049436600461151b565b610d9b565b3480156104a557600080fd5b506101916104b4366004611796565b610e52565b33600090815260696020526040812080543492906104d8908490611807565b909155505033600081815260696020908152604091829020548251938452908301527fa448afda7ea1e3a7a10fcab0c29fe9a9dd85791503bf0171f281521551c7ec05910160405180910390a1565b61052f61100e565b6064811115610572576040517f16aa4e80000000000000000000000000000000000000000000000000000000008152600481018290526024015b60405180910390fd5b606855565b336000818152606960209081526040808320805490849055815194855291840192909252917fa448afda7ea1e3a7a10fcab0c29fe9a9dd85791503bf0171f281521551c7ec05910160405180910390a160006105d4335a8461108f565b90508061060d576040517f27fcd9d100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050565b61061961100e565b61062360006110a3565b565b6000838152606a60205260408082209051829190610646908690869061181f565b9081526040805160209281900383018120608082018352805473ffffffffffffffffffffffffffffffffffffffff16808352600182015494830194909452600281015492820192909252600390910154606082015291506106ab5760009150506106e1565b6060810151156106bf5760029150506106e1565b6106cc816040015161111a565b156106db5760019150506106e1565b60039150505b9392505050565b6106f28484610a72565b60016106ff868686610625565b600381111561071057610710611662565b14610747576040517fbeb11d3b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006107538585611133565b9050606060ff82166107a15761079e84848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061114b92505050565b90505b85856040516107b192919061181f565b60405180910390208180519060200120146107fe578086866040517f1a0bbf9f00000000000000000000000000000000000000000000000000000000815260040161056993929190611878565b6000878152606a6020526040808220905161081c908990899061181f565b908152604051908190036020018120436003820155915088907fc5d8c630ba2fdacb1db24c4599df78c7fb8cf97b5aecde34939597f6697bb1ad90610867908a908a906002906118a8565b60405180910390a261087a81853361117e565b5050505050505050565b6108c56040518060800160405280600073ffffffffffffffffffffffffffffffffffffffff1681526020016000815260200160008152602001600081525090565b6000848152606a60205260409081902090516108e4908590859061181f565b908152604080519182900360209081018320608084018352805473ffffffffffffffffffffffffffffffffffffffff16845260018101549184019190915260028101549183019190915260030154606082015290509392505050565b600361094d848484610625565b600381111561095e5761095e611662565b14610995576040517f151f07fe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000838152606a602052604080822090516109b3908590859061181f565b90815260408051602092819003830190206001810154815473ffffffffffffffffffffffffffffffffffffffff16600090815260699094529183208054919450919290610a01908490611807565b9091555050600060018201819055815473ffffffffffffffffffffffffffffffffffffffff1680825260696020908152604092839020548351928352908201527fa448afda7ea1e3a7a10fcab0c29fe9a9dd85791503bf0171f281521551c7ec05910160405180910390a150505050565b6000610a7e8383611133565b905060ff8116610ad85760218214610ad3576040517ffd9a7e5b000000000000000000000000000000000000000000000000000000008152600060048201526021602482015260448101839052606401610569565b505050565b6040517f81ff071300000000000000000000000000000000000000000000000000000000815260ff82166004820152602401610569565b610b198282610a72565b610b216104b9565b606754336000908152606960205260409020541015610b895733600090815260696020526040908190205460675491517e0155b50000000000000000000000000000000000000000000000000000000081526105699290600401918252602082015260400190565b6000610b96848484610625565b6003811115610ba757610ba7611662565b14610bde576040517f9bb6c64e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610be78361139e565b610c1d576040517ff9e0d1f300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6067543360009081526069602052604081208054909190610c3f9084906118d3565b9250508190555060405180608001604052803373ffffffffffffffffffffffffffffffffffffffff16815260200160675481526020014381526020016000815250606a60008581526020019081526020016000208383604051610ca392919061181f565b9081526040805160209281900383018120845181547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9091161781559284015160018085019190915591840151600284015560609093015160039092019190915584917fc5d8c630ba2fdacb1db24c4599df78c7fb8cf97b5aecde34939597f6697bb1ad91610d4b91869186916118a8565b60405180910390a2505050565b610d6061100e565b60678190556040518181527f4468d695a0389e5f9e8ef0c9aee6d84e74cc0d0e0a28c8413badb54697d1bbae9060200160405180910390a150565b610da361100e565b73ffffffffffffffffffffffffffffffffffffffff8116610e46576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610569565b610e4f816110a3565b50565b600054610100900460ff1615808015610e725750600054600160ff909116105b80610e8c5750303b158015610e8c575060005460ff166001145b610f18576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610569565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015610f7657600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b610f7e6113b8565b60658590556066849055610f9183610d58565b610f9a82610527565b610fa3866110a3565b801561100657600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050565b60335473ffffffffffffffffffffffffffffffffffffffff163314610623576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610569565b6000806000806000858888f1949350505050565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60006066548261112a9190611807565b43111592915050565b600061113f82846118ea565b60f81c90505b92915050565b80516020918201206040805160009381019390935260218084019290925280518084039092018252604190920190915290565b6001830154835473ffffffffffffffffffffffffffffffffffffffff166000486103e86111ad61410088611932565b6111b7919061196f565b6111c49062011cdd611807565b6111ce9190611932565b905080831115611280576111e281846118d3565b73ffffffffffffffffffffffffffffffffffffffff831660009081526069602052604081208054909190611217908490611807565b909155505073ffffffffffffffffffffffffffffffffffffffff82166000818152606960209081526040918290205482519384529083015291935083917fa448afda7ea1e3a7a10fcab0c29fe9a9dd85791503bf0171f281521551c7ec05910160405180910390a15b60006064606854836112929190611932565b61129c919061196f565b9050838111156112a95750825b80156113565773ffffffffffffffffffffffffffffffffffffffff8516600090815260696020526040812080548392906112e4908490611807565b909155506112f4905081856118d3565b73ffffffffffffffffffffffffffffffffffffffff8616600081815260696020908152604091829020548251938452908301529195507fa448afda7ea1e3a7a10fcab0c29fe9a9dd85791503bf0171f281521551c7ec05910160405180910390a15b831561138b5760405160009085156108fc0290869083818181858288f19350505050158015611389573d6000803e3d6000fd5b505b6000876001018190555050505050505050565b6000814310158015611145575060655461112a9083611807565b600054610100900460ff1661144f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610569565b610623600054610100900460ff166114e9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610569565b610623336110a3565b803573ffffffffffffffffffffffffffffffffffffffff8116811461151657600080fd5b919050565b60006020828403121561152d57600080fd5b6106e1826114f2565b60006020828403121561154857600080fd5b5035919050565b6000815180845260005b8181101561157557602081850181015186830182015201611559565b81811115611587576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006106e1602083018461154f565b60008083601f8401126115df57600080fd5b50813567ffffffffffffffff8111156115f757600080fd5b60208301915083602082850101111561160f57600080fd5b9250929050565b60008060006040848603121561162b57600080fd5b83359250602084013567ffffffffffffffff81111561164957600080fd5b611655868287016115cd565b9497909650939450505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600481106116c8577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b9052565b602081016111458284611691565b6000806000806000606086880312156116f257600080fd5b85359450602086013567ffffffffffffffff8082111561171157600080fd5b61171d89838a016115cd565b9096509450604088013591508082111561173657600080fd5b50611743888289016115cd565b969995985093965092949392505050565b6000806020838503121561176757600080fd5b823567ffffffffffffffff81111561177e57600080fd5b61178a858286016115cd565b90969095509350505050565b600080600080600060a086880312156117ae57600080fd5b6117b7866114f2565b97602087013597506040870135966060810135965060800135945092505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000821982111561181a5761181a6117d8565b500190565b8183823760009101908152919050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b60408152600061188b604083018661154f565b828103602084015261189e81858761182f565b9695505050505050565b6040815260006118bc60408301858761182f565b90506118cb6020830184611691565b949350505050565b6000828210156118e5576118e56117d8565b500390565b7fff00000000000000000000000000000000000000000000000000000000000000813581811691600185101561192a5780818660010360031b1b83161692505b505092915050565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561196a5761196a6117d8565b500290565b6000826119a5577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b50049056fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[Pa\0\x19a\0\x1EV[a\0\xDEV[`\0Ta\x01\0\x90\x04`\xFF\x16\x15a\0\x8AW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`'`$\x82\x01R\x7FInitializable: contract is initi`D\x82\x01Rfalizing`\xC8\x1B`d\x82\x01R`\x84\x01`@Q\x80\x91\x03\x90\xFD[`\0T`\xFF\x90\x81\x16\x10\x15a\0\xDCW`\0\x80T`\xFF\x19\x16`\xFF\x90\x81\x17\x90\x91U`@Q\x90\x81R\x7F\x7F&\xB8?\xF9n\x1F+jh/\x138R\xF6y\x8A\t\xC4e\xDA\x95\x92\x14`\xCE\xFB8G@$\x98\x90` \x01`@Q\x80\x91\x03\x90\xA1[V[a\x19\xB7\x80a\0\xED`\09`\0\xF3\xFE`\x80`@R`\x046\x10a\x01\x84W`\x005`\xE0\x1C\x80c\x84\x8A\xFB=\x11a\0\xD6W\x80c\x95a\x18R\x11a\0\x7FW\x80c\xD7\xD0NT\x11a\0YW\x80c\xD7\xD0NT\x14a\x04YW\x80c\xF2\xFD\xE3\x8B\x14a\x04yW\x80c\xF9*\xD2\x19\x14a\x04\x99W`\0\x80\xFD[\x80c\x95a\x18R\x14a\x04'W\x80c\xA0:\xAF\xBF\x14a\x04>W\x80c\xD0\xE3\r\xB0\x14a\x04QW`\0\x80\xFD[\x80c\x8E\xCB\x85\xE1\x11a\0\xB0W\x80c\x8E\xCB\x85\xE1\x14a\x03\xD1W\x80c\x93\x98\x823\x14a\x03\xE7W\x80c\x93\xFB\x19D\x14a\x04\x07W`\0\x80\xFD[\x80c\x84\x8A\xFB=\x14a\x03\x1DW\x80c\x86\x1A\x14\x12\x14a\x03\x86W\x80c\x8D\xA5\xCB[\x14a\x03\x9CW`\0\x80\xFD[\x80cN\xBA\xF3\xCE\x11a\x018W\x80cqP\x18\xA6\x11a\x01\x12W\x80cqP\x18\xA6\x14a\x02\xBBW\x80cy\xE8\xA8\xB3\x14a\x02\xD0W\x80cz\xE9)\xD9\x14a\x02\xFDW`\0\x80\xFD[\x80cN\xBA\xF3\xCE\x14a\x029W\x80cT\xFDMP\x14a\x02OW\x80cp\x99\xC5\x81\x14a\x02\xA5W`\0\x80\xFD[\x80c'\xE25\xE3\x11a\x01iW\x80c'\xE25\xE3\x14a\x01\xD7W\x80c3d\t\xFD\x14a\x02\x04W\x80c<\xCF\xD6\x0B\x14a\x02$W`\0\x80\xFD[\x80c!\xCF9\xEE\x14a\x01\x98W\x80c#\xC3\x0FY\x14a\x01\xC1W`\0\x80\xFD[6a\x01\x93Wa\x01\x91a\x04\xB9V[\0[`\0\x80\xFD[4\x80\x15a\x01\xA4W`\0\x80\xFD[Pa\x01\xAE`fT\x81V[`@Q\x90\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[4\x80\x15a\x01\xCDW`\0\x80\xFD[Pa\x01\xAEaA\0\x81V[4\x80\x15a\x01\xE3W`\0\x80\xFD[Pa\x01\xAEa\x01\xF26`\x04a\x15\x1BV[`i` R`\0\x90\x81R`@\x90 T\x81V[4\x80\x15a\x02\x10W`\0\x80\xFD[Pa\x01\x91a\x02\x1F6`\x04a\x156V[a\x05'V[4\x80\x15a\x020W`\0\x80\xFD[Pa\x01\x91a\x05wV[4\x80\x15a\x02EW`\0\x80\xFD[Pa\x01\xAEa\x03\xE8\x81V[4\x80\x15a\x02[W`\0\x80\xFD[Pa\x02\x98`@Q\x80`@\x01`@R\x80`\x05\x81R` \x01\x7F1.0.1\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\x81RP\x81V[`@Qa\x01\xB8\x91\x90a\x15\xBAV[4\x80\x15a\x02\xB1W`\0\x80\xFD[Pa\x01\xAE`gT\x81V[4\x80\x15a\x02\xC7W`\0\x80\xFD[Pa\x01\x91a\x06\x11V[4\x80\x15a\x02\xDCW`\0\x80\xFD[Pa\x02\xF0a\x02\xEB6`\x04a\x16\x16V[a\x06%V[`@Qa\x01\xB8\x91\x90a\x16\xCCV[4\x80\x15a\x03\tW`\0\x80\xFD[Pa\x01\x91a\x03\x186`\x04a\x16\xDAV[a\x06\xE8V[4\x80\x15a\x03)W`\0\x80\xFD[Pa\x03=a\x0386`\x04a\x16\x16V[a\x08\x84V[`@Qa\x01\xB8\x91\x90\x81Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81R` \x80\x83\x01Q\x90\x82\x01R`@\x80\x83\x01Q\x90\x82\x01R``\x91\x82\x01Q\x91\x81\x01\x91\x90\x91R`\x80\x01\x90V[4\x80\x15a\x03\x92W`\0\x80\xFD[Pa\x01\xAE`eT\x81V[4\x80\x15a\x03\xA8W`\0\x80\xFD[P`3T`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01a\x01\xB8V[4\x80\x15a\x03\xDDW`\0\x80\xFD[Pa\x01\xAE`hT\x81V[4\x80\x15a\x03\xF3W`\0\x80\xFD[Pa\x01\x91a\x04\x026`\x04a\x16\x16V[a\t@V[4\x80\x15a\x04\x13W`\0\x80\xFD[Pa\x01\x91a\x04\"6`\x04a\x17TV[a\nrV[4\x80\x15a\x043W`\0\x80\xFD[Pa\x01\xAEb\x01\x1C\xDD\x81V[a\x01\x91a\x04L6`\x04a\x16\x16V[a\x0B\x0FV[a\x01\x91a\x04\xB9V[4\x80\x15a\x04eW`\0\x80\xFD[Pa\x01\x91a\x04t6`\x04a\x156V[a\rXV[4\x80\x15a\x04\x85W`\0\x80\xFD[Pa\x01\x91a\x04\x946`\x04a\x15\x1BV[a\r\x9BV[4\x80\x15a\x04\xA5W`\0\x80\xFD[Pa\x01\x91a\x04\xB46`\x04a\x17\x96V[a\x0ERV[3`\0\x90\x81R`i` R`@\x81 \x80T4\x92\x90a\x04\xD8\x90\x84\x90a\x18\x07V[\x90\x91UPP3`\0\x81\x81R`i` \x90\x81R`@\x91\x82\x90 T\x82Q\x93\x84R\x90\x83\x01R\x7F\xA4H\xAF\xDA~\xA1\xE3\xA7\xA1\x0F\xCA\xB0\xC2\x9F\xE9\xA9\xDD\x85y\x15\x03\xBF\x01q\xF2\x81R\x15Q\xC7\xEC\x05\x91\x01`@Q\x80\x91\x03\x90\xA1V[a\x05/a\x10\x0EV[`d\x81\x11\x15a\x05rW`@Q\x7F\x16\xAAN\x80\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\x81\x01\x82\x90R`$\x01[`@Q\x80\x91\x03\x90\xFD[`hUV[3`\0\x81\x81R`i` \x90\x81R`@\x80\x83 \x80T\x90\x84\x90U\x81Q\x94\x85R\x91\x84\x01\x92\x90\x92R\x91\x7F\xA4H\xAF\xDA~\xA1\xE3\xA7\xA1\x0F\xCA\xB0\xC2\x9F\xE9\xA9\xDD\x85y\x15\x03\xBF\x01q\xF2\x81R\x15Q\xC7\xEC\x05\x91\x01`@Q\x80\x91\x03\x90\xA1`\0a\x05\xD43Z\x84a\x10\x8FV[\x90P\x80a\x06\rW`@Q\x7F'\xFC\xD9\xD1\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\x01`@Q\x80\x91\x03\x90\xFD[PPV[a\x06\x19a\x10\x0EV[a\x06#`\0a\x10\xA3V[V[`\0\x83\x81R`j` R`@\x80\x82 \x90Q\x82\x91\x90a\x06F\x90\x86\x90\x86\x90a\x18\x1FV[\x90\x81R`@\x80Q` \x92\x81\x90\x03\x83\x01\x81 `\x80\x82\x01\x83R\x80Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x80\x83R`\x01\x82\x01T\x94\x83\x01\x94\x90\x94R`\x02\x81\x01T\x92\x82\x01\x92\x90\x92R`\x03\x90\x91\x01T``\x82\x01R\x91Pa\x06\xABW`\0\x91PPa\x06\xE1V[``\x81\x01Q\x15a\x06\xBFW`\x02\x91PPa\x06\xE1V[a\x06\xCC\x81`@\x01Qa\x11\x1AV[\x15a\x06\xDBW`\x01\x91PPa\x06\xE1V[`\x03\x91PP[\x93\x92PPPV[a\x06\xF2\x84\x84a\nrV[`\x01a\x06\xFF\x86\x86\x86a\x06%V[`\x03\x81\x11\x15a\x07\x10Wa\x07\x10a\x16bV[\x14a\x07GW`@Q\x7F\xBE\xB1\x1D;\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\x01`@Q\x80\x91\x03\x90\xFD[`\0a\x07S\x85\x85a\x113V[\x90P```\xFF\x82\x16a\x07\xA1Wa\x07\x9E\x84\x84\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RPa\x11K\x92PPPV[\x90P[\x85\x85`@Qa\x07\xB1\x92\x91\x90a\x18\x1FV[`@Q\x80\x91\x03\x90 \x81\x80Q\x90` \x01 \x14a\x07\xFEW\x80\x86\x86`@Q\x7F\x1A\x0B\xBF\x9F\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\x05i\x93\x92\x91\x90a\x18xV[`\0\x87\x81R`j` R`@\x80\x82 \x90Qa\x08\x1C\x90\x89\x90\x89\x90a\x18\x1FV[\x90\x81R`@Q\x90\x81\x90\x03` \x01\x81 C`\x03\x82\x01U\x91P\x88\x90\x7F\xC5\xD8\xC60\xBA/\xDA\xCB\x1D\xB2LE\x99\xDFx\xC7\xFB\x8C\xF9{Z\xEC\xDE4\x93\x95\x97\xF6i{\xB1\xAD\x90a\x08g\x90\x8A\x90\x8A\x90`\x02\x90a\x18\xA8V[`@Q\x80\x91\x03\x90\xA2a\x08z\x81\x853a\x11~V[PPPPPPPPV[a\x08\xC5`@Q\x80`\x80\x01`@R\x80`\0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81R` \x01`\0\x81R` \x01`\0\x81R` \x01`\0\x81RP\x90V[`\0\x84\x81R`j` R`@\x90\x81\x90 \x90Qa\x08\xE4\x90\x85\x90\x85\x90a\x18\x1FV[\x90\x81R`@\x80Q\x91\x82\x90\x03` \x90\x81\x01\x83 `\x80\x84\x01\x83R\x80Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x84R`\x01\x81\x01T\x91\x84\x01\x91\x90\x91R`\x02\x81\x01T\x91\x83\x01\x91\x90\x91R`\x03\x01T``\x82\x01R\x90P\x93\x92PPPV[`\x03a\tM\x84\x84\x84a\x06%V[`\x03\x81\x11\x15a\t^Wa\t^a\x16bV[\x14a\t\x95W`@Q\x7F\x15\x1F\x07\xFE\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\x01`@Q\x80\x91\x03\x90\xFD[`\0\x83\x81R`j` R`@\x80\x82 \x90Qa\t\xB3\x90\x85\x90\x85\x90a\x18\x1FV[\x90\x81R`@\x80Q` \x92\x81\x90\x03\x83\x01\x90 `\x01\x81\x01T\x81Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\0\x90\x81R`i\x90\x94R\x91\x83 \x80T\x91\x94P\x91\x92\x90a\n\x01\x90\x84\x90a\x18\x07V[\x90\x91UPP`\0`\x01\x82\x01\x81\x90U\x81Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x80\x82R`i` \x90\x81R`@\x92\x83\x90 T\x83Q\x92\x83R\x90\x82\x01R\x7F\xA4H\xAF\xDA~\xA1\xE3\xA7\xA1\x0F\xCA\xB0\xC2\x9F\xE9\xA9\xDD\x85y\x15\x03\xBF\x01q\xF2\x81R\x15Q\xC7\xEC\x05\x91\x01`@Q\x80\x91\x03\x90\xA1PPPPV[`\0a\n~\x83\x83a\x113V[\x90P`\xFF\x81\x16a\n\xD8W`!\x82\x14a\n\xD3W`@Q\x7F\xFD\x9A~[\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`\0`\x04\x82\x01R`!`$\x82\x01R`D\x81\x01\x83\x90R`d\x01a\x05iV[PPPV[`@Q\x7F\x81\xFF\x07\x13\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`\xFF\x82\x16`\x04\x82\x01R`$\x01a\x05iV[a\x0B\x19\x82\x82a\nrV[a\x0B!a\x04\xB9V[`gT3`\0\x90\x81R`i` R`@\x90 T\x10\x15a\x0B\x89W3`\0\x90\x81R`i` R`@\x90\x81\x90 T`gT\x91Q~\x01U\xB5\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\x81Ra\x05i\x92\x90`\x04\x01\x91\x82R` \x82\x01R`@\x01\x90V[`\0a\x0B\x96\x84\x84\x84a\x06%V[`\x03\x81\x11\x15a\x0B\xA7Wa\x0B\xA7a\x16bV[\x14a\x0B\xDEW`@Q\x7F\x9B\xB6\xC6N\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\x01`@Q\x80\x91\x03\x90\xFD[a\x0B\xE7\x83a\x13\x9EV[a\x0C\x1DW`@Q\x7F\xF9\xE0\xD1\xF3\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\x01`@Q\x80\x91\x03\x90\xFD[`gT3`\0\x90\x81R`i` R`@\x81 \x80T\x90\x91\x90a\x0C?\x90\x84\x90a\x18\xD3V[\x92PP\x81\x90UP`@Q\x80`\x80\x01`@R\x803s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81R` \x01`gT\x81R` \x01C\x81R` \x01`\0\x81RP`j`\0\x85\x81R` \x01\x90\x81R` \x01`\0 \x83\x83`@Qa\x0C\xA3\x92\x91\x90a\x18\x1FV[\x90\x81R`@\x80Q` \x92\x81\x90\x03\x83\x01\x81 \x84Q\x81T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x17\x81U\x92\x84\x01Q`\x01\x80\x85\x01\x91\x90\x91U\x91\x84\x01Q`\x02\x84\x01U``\x90\x93\x01Q`\x03\x90\x92\x01\x91\x90\x91U\x84\x91\x7F\xC5\xD8\xC60\xBA/\xDA\xCB\x1D\xB2LE\x99\xDFx\xC7\xFB\x8C\xF9{Z\xEC\xDE4\x93\x95\x97\xF6i{\xB1\xAD\x91a\rK\x91\x86\x91\x86\x91a\x18\xA8V[`@Q\x80\x91\x03\x90\xA2PPPV[a\r`a\x10\x0EV[`g\x81\x90U`@Q\x81\x81R\x7FDh\xD6\x95\xA08\x9E_\x9E\x8E\xF0\xC9\xAE\xE6\xD8Nt\xCC\r\x0E\n(\xC8A;\xAD\xB5F\x97\xD1\xBB\xAE\x90` \x01`@Q\x80\x91\x03\x90\xA1PV[a\r\xA3a\x10\x0EV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16a\x0EFW`@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\x82\x01R`&`$\x82\x01R\x7FOwnable: new owner is the zero a`D\x82\x01R\x7Fddress\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`d\x82\x01R`\x84\x01a\x05iV[a\x0EO\x81a\x10\xA3V[PV[`\0Ta\x01\0\x90\x04`\xFF\x16\x15\x80\x80\x15a\x0ErWP`\0T`\x01`\xFF\x90\x91\x16\x10[\x80a\x0E\x8CWP0;\x15\x80\x15a\x0E\x8CWP`\0T`\xFF\x16`\x01\x14[a\x0F\x18W`@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\x82\x01R`.`$\x82\x01R\x7FInitializable: contract is alrea`D\x82\x01R\x7Fdy initialized\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x05iV[`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x16`\x01\x17\x90U\x80\x15a\x0FvW`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\x16a\x01\0\x17\x90U[a\x0F~a\x13\xB8V[`e\x85\x90U`f\x84\x90Ua\x0F\x91\x83a\rXV[a\x0F\x9A\x82a\x05'V[a\x0F\xA3\x86a\x10\xA3V[\x80\x15a\x10\x06W`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\x16\x90U`@Q`\x01\x81R\x7F\x7F&\xB8?\xF9n\x1F+jh/\x138R\xF6y\x8A\t\xC4e\xDA\x95\x92\x14`\xCE\xFB8G@$\x98\x90` \x01`@Q\x80\x91\x03\x90\xA1[PPPPPPV[`3Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x163\x14a\x06#W`@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\x82\x01\x81\x90R`$\x82\x01R\x7FOwnable: caller is not the owner`D\x82\x01R`d\x01a\x05iV[`\0\x80`\0\x80`\0\x85\x88\x88\xF1\x94\x93PPPPV[`3\x80Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x81\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x83\x16\x81\x17\x90\x93U`@Q\x91\x16\x91\x90\x82\x90\x7F\x8B\xE0\x07\x9CS\x16Y\x14\x13D\xCD\x1F\xD0\xA4\xF2\x84\x19I\x7F\x97\"\xA3\xDA\xAF\xE3\xB4\x18okdW\xE0\x90`\0\x90\xA3PPV[`\0`fT\x82a\x11*\x91\x90a\x18\x07V[C\x11\x15\x92\x91PPV[`\0a\x11?\x82\x84a\x18\xEAV[`\xF8\x1C\x90P[\x92\x91PPV[\x80Q` \x91\x82\x01 `@\x80Q`\0\x93\x81\x01\x93\x90\x93R`!\x80\x84\x01\x92\x90\x92R\x80Q\x80\x84\x03\x90\x92\x01\x82R`A\x90\x92\x01\x90\x91R\x90V[`\x01\x83\x01T\x83Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\0Ha\x03\xE8a\x11\xADaA\0\x88a\x192V[a\x11\xB7\x91\x90a\x19oV[a\x11\xC4\x90b\x01\x1C\xDDa\x18\x07V[a\x11\xCE\x91\x90a\x192V[\x90P\x80\x83\x11\x15a\x12\x80Wa\x11\xE2\x81\x84a\x18\xD3V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x16`\0\x90\x81R`i` R`@\x81 \x80T\x90\x91\x90a\x12\x17\x90\x84\x90a\x18\x07V[\x90\x91UPPs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16`\0\x81\x81R`i` \x90\x81R`@\x91\x82\x90 T\x82Q\x93\x84R\x90\x83\x01R\x91\x93P\x83\x91\x7F\xA4H\xAF\xDA~\xA1\xE3\xA7\xA1\x0F\xCA\xB0\xC2\x9F\xE9\xA9\xDD\x85y\x15\x03\xBF\x01q\xF2\x81R\x15Q\xC7\xEC\x05\x91\x01`@Q\x80\x91\x03\x90\xA1[`\0`d`hT\x83a\x12\x92\x91\x90a\x192V[a\x12\x9C\x91\x90a\x19oV[\x90P\x83\x81\x11\x15a\x12\xA9WP\x82[\x80\x15a\x13VWs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x85\x16`\0\x90\x81R`i` R`@\x81 \x80T\x83\x92\x90a\x12\xE4\x90\x84\x90a\x18\x07V[\x90\x91UPa\x12\xF4\x90P\x81\x85a\x18\xD3V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x86\x16`\0\x81\x81R`i` \x90\x81R`@\x91\x82\x90 T\x82Q\x93\x84R\x90\x83\x01R\x91\x95P\x7F\xA4H\xAF\xDA~\xA1\xE3\xA7\xA1\x0F\xCA\xB0\xC2\x9F\xE9\xA9\xDD\x85y\x15\x03\xBF\x01q\xF2\x81R\x15Q\xC7\xEC\x05\x91\x01`@Q\x80\x91\x03\x90\xA1[\x83\x15a\x13\x8BW`@Q`\0\x90\x85\x15a\x08\xFC\x02\x90\x86\x90\x83\x81\x81\x81\x85\x82\x88\xF1\x93PPPP\x15\x80\x15a\x13\x89W=`\0\x80>=`\0\xFD[P[`\0\x87`\x01\x01\x81\x90UPPPPPPPPV[`\0\x81C\x10\x15\x80\x15a\x11EWP`eTa\x11*\x90\x83a\x18\x07V[`\0Ta\x01\0\x90\x04`\xFF\x16a\x14OW`@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\x82\x01R`+`$\x82\x01R\x7FInitializable: contract is not i`D\x82\x01R\x7Fnitializing\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x05iV[a\x06#`\0Ta\x01\0\x90\x04`\xFF\x16a\x14\xE9W`@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\x82\x01R`+`$\x82\x01R\x7FInitializable: contract is not i`D\x82\x01R\x7Fnitializing\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x05iV[a\x06#3a\x10\xA3V[\x805s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x15\x16W`\0\x80\xFD[\x91\x90PV[`\0` \x82\x84\x03\x12\x15a\x15-W`\0\x80\xFD[a\x06\xE1\x82a\x14\xF2V[`\0` \x82\x84\x03\x12\x15a\x15HW`\0\x80\xFD[P5\x91\x90PV[`\0\x81Q\x80\x84R`\0[\x81\x81\x10\x15a\x15uW` \x81\x85\x01\x81\x01Q\x86\x83\x01\x82\x01R\x01a\x15YV[\x81\x81\x11\x15a\x15\x87W`\0` \x83\x87\x01\x01R[P`\x1F\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x92\x90\x92\x01` \x01\x92\x91PPV[` \x81R`\0a\x06\xE1` \x83\x01\x84a\x15OV[`\0\x80\x83`\x1F\x84\x01\x12a\x15\xDFW`\0\x80\xFD[P\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x15\xF7W`\0\x80\xFD[` \x83\x01\x91P\x83` \x82\x85\x01\x01\x11\x15a\x16\x0FW`\0\x80\xFD[\x92P\x92\x90PV[`\0\x80`\0`@\x84\x86\x03\x12\x15a\x16+W`\0\x80\xFD[\x835\x92P` \x84\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x16IW`\0\x80\xFD[a\x16U\x86\x82\x87\x01a\x15\xCDV[\x94\x97\x90\x96P\x93\x94PPPPV[\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`!`\x04R`$`\0\xFD[`\x04\x81\x10a\x16\xC8W\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`!`\x04R`$`\0\xFD[\x90RV[` \x81\x01a\x11E\x82\x84a\x16\x91V[`\0\x80`\0\x80`\0``\x86\x88\x03\x12\x15a\x16\xF2W`\0\x80\xFD[\x855\x94P` \x86\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x17\x11W`\0\x80\xFD[a\x17\x1D\x89\x83\x8A\x01a\x15\xCDV[\x90\x96P\x94P`@\x88\x015\x91P\x80\x82\x11\x15a\x176W`\0\x80\xFD[Pa\x17C\x88\x82\x89\x01a\x15\xCDV[\x96\x99\x95\x98P\x93\x96P\x92\x94\x93\x92PPPV[`\0\x80` \x83\x85\x03\x12\x15a\x17gW`\0\x80\xFD[\x825g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x17~W`\0\x80\xFD[a\x17\x8A\x85\x82\x86\x01a\x15\xCDV[\x90\x96\x90\x95P\x93PPPPV[`\0\x80`\0\x80`\0`\xA0\x86\x88\x03\x12\x15a\x17\xAEW`\0\x80\xFD[a\x17\xB7\x86a\x14\xF2V[\x97` \x87\x015\x97P`@\x87\x015\x96``\x81\x015\x96P`\x80\x015\x94P\x92PPPV[\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`\x11`\x04R`$`\0\xFD[`\0\x82\x19\x82\x11\x15a\x18\x1AWa\x18\x1Aa\x17\xD8V[P\x01\x90V[\x81\x83\x827`\0\x91\x01\x90\x81R\x91\x90PV[\x81\x83R\x81\x81` \x85\x017P`\0` \x82\x84\x01\x01R`\0` \x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0`\x1F\x84\x01\x16\x84\x01\x01\x90P\x92\x91PPV[`@\x81R`\0a\x18\x8B`@\x83\x01\x86a\x15OV[\x82\x81\x03` \x84\x01Ra\x18\x9E\x81\x85\x87a\x18/V[\x96\x95PPPPPPV[`@\x81R`\0a\x18\xBC`@\x83\x01\x85\x87a\x18/V[\x90Pa\x18\xCB` \x83\x01\x84a\x16\x91V[\x94\x93PPPPV[`\0\x82\x82\x10\x15a\x18\xE5Wa\x18\xE5a\x17\xD8V[P\x03\x90V[\x7F\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x815\x81\x81\x16\x91`\x01\x85\x10\x15a\x19*W\x80\x81\x86`\x01\x03`\x03\x1B\x1B\x83\x16\x16\x92P[PP\x92\x91PPV[`\0\x81\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x04\x83\x11\x82\x15\x15\x16\x15a\x19jWa\x19ja\x17\xD8V[P\x02\x90V[`\0\x82a\x19\xA5W\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`\x12`\x04R`$`\0\xFD[P\x04\x90V\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x6080604052600436106101845760003560e01c8063848afb3d116100d6578063956118521161007f578063d7d04e5411610059578063d7d04e5414610459578063f2fde38b14610479578063f92ad2191461049957600080fd5b80639561185214610427578063a03aafbf1461043e578063d0e30db01461045157600080fd5b80638ecb85e1116100b05780638ecb85e1146103d157806393988233146103e757806393fb19441461040757600080fd5b8063848afb3d1461031d578063861a1412146103865780638da5cb5b1461039c57600080fd5b80634ebaf3ce11610138578063715018a611610112578063715018a6146102bb57806379e8a8b3146102d05780637ae929d9146102fd57600080fd5b80634ebaf3ce1461023957806354fd4d501461024f5780637099c581146102a557600080fd5b806327e235e31161016957806327e235e3146101d7578063336409fd146102045780633ccfd60b1461022457600080fd5b806321cf39ee1461019857806323c30f59146101c157600080fd5b36610193576101916104b9565b005b600080fd5b3480156101a457600080fd5b506101ae60665481565b6040519081526020015b60405180910390f35b3480156101cd57600080fd5b506101ae61410081565b3480156101e357600080fd5b506101ae6101f236600461151b565b60696020526000908152604090205481565b34801561021057600080fd5b5061019161021f366004611536565b610527565b34801561023057600080fd5b50610191610577565b34801561024557600080fd5b506101ae6103e881565b34801561025b57600080fd5b506102986040518060400160405280600581526020017f312e302e3100000000000000000000000000000000000000000000000000000081525081565b6040516101b891906115ba565b3480156102b157600080fd5b506101ae60675481565b3480156102c757600080fd5b50610191610611565b3480156102dc57600080fd5b506102f06102eb366004611616565b610625565b6040516101b891906116cc565b34801561030957600080fd5b506101916103183660046116da565b6106e8565b34801561032957600080fd5b5061033d610338366004611616565b610884565b6040516101b89190815173ffffffffffffffffffffffffffffffffffffffff16815260208083015190820152604080830151908201526060918201519181019190915260800190565b34801561039257600080fd5b506101ae60655481565b3480156103a857600080fd5b5060335460405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101b8565b3480156103dd57600080fd5b506101ae60685481565b3480156103f357600080fd5b50610191610402366004611616565b610940565b34801561041357600080fd5b50610191610422366004611754565b610a72565b34801561043357600080fd5b506101ae62011cdd81565b61019161044c366004611616565b610b0f565b6101916104b9565b34801561046557600080fd5b50610191610474366004611536565b610d58565b34801561048557600080fd5b5061019161049436600461151b565b610d9b565b3480156104a557600080fd5b506101916104b4366004611796565b610e52565b33600090815260696020526040812080543492906104d8908490611807565b909155505033600081815260696020908152604091829020548251938452908301527fa448afda7ea1e3a7a10fcab0c29fe9a9dd85791503bf0171f281521551c7ec05910160405180910390a1565b61052f61100e565b6064811115610572576040517f16aa4e80000000000000000000000000000000000000000000000000000000008152600481018290526024015b60405180910390fd5b606855565b336000818152606960209081526040808320805490849055815194855291840192909252917fa448afda7ea1e3a7a10fcab0c29fe9a9dd85791503bf0171f281521551c7ec05910160405180910390a160006105d4335a8461108f565b90508061060d576040517f27fcd9d100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050565b61061961100e565b61062360006110a3565b565b6000838152606a60205260408082209051829190610646908690869061181f565b9081526040805160209281900383018120608082018352805473ffffffffffffffffffffffffffffffffffffffff16808352600182015494830194909452600281015492820192909252600390910154606082015291506106ab5760009150506106e1565b6060810151156106bf5760029150506106e1565b6106cc816040015161111a565b156106db5760019150506106e1565b60039150505b9392505050565b6106f28484610a72565b60016106ff868686610625565b600381111561071057610710611662565b14610747576040517fbeb11d3b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006107538585611133565b9050606060ff82166107a15761079e84848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061114b92505050565b90505b85856040516107b192919061181f565b60405180910390208180519060200120146107fe578086866040517f1a0bbf9f00000000000000000000000000000000000000000000000000000000815260040161056993929190611878565b6000878152606a6020526040808220905161081c908990899061181f565b908152604051908190036020018120436003820155915088907fc5d8c630ba2fdacb1db24c4599df78c7fb8cf97b5aecde34939597f6697bb1ad90610867908a908a906002906118a8565b60405180910390a261087a81853361117e565b5050505050505050565b6108c56040518060800160405280600073ffffffffffffffffffffffffffffffffffffffff1681526020016000815260200160008152602001600081525090565b6000848152606a60205260409081902090516108e4908590859061181f565b908152604080519182900360209081018320608084018352805473ffffffffffffffffffffffffffffffffffffffff16845260018101549184019190915260028101549183019190915260030154606082015290509392505050565b600361094d848484610625565b600381111561095e5761095e611662565b14610995576040517f151f07fe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000838152606a602052604080822090516109b3908590859061181f565b90815260408051602092819003830190206001810154815473ffffffffffffffffffffffffffffffffffffffff16600090815260699094529183208054919450919290610a01908490611807565b9091555050600060018201819055815473ffffffffffffffffffffffffffffffffffffffff1680825260696020908152604092839020548351928352908201527fa448afda7ea1e3a7a10fcab0c29fe9a9dd85791503bf0171f281521551c7ec05910160405180910390a150505050565b6000610a7e8383611133565b905060ff8116610ad85760218214610ad3576040517ffd9a7e5b000000000000000000000000000000000000000000000000000000008152600060048201526021602482015260448101839052606401610569565b505050565b6040517f81ff071300000000000000000000000000000000000000000000000000000000815260ff82166004820152602401610569565b610b198282610a72565b610b216104b9565b606754336000908152606960205260409020541015610b895733600090815260696020526040908190205460675491517e0155b50000000000000000000000000000000000000000000000000000000081526105699290600401918252602082015260400190565b6000610b96848484610625565b6003811115610ba757610ba7611662565b14610bde576040517f9bb6c64e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610be78361139e565b610c1d576040517ff9e0d1f300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6067543360009081526069602052604081208054909190610c3f9084906118d3565b9250508190555060405180608001604052803373ffffffffffffffffffffffffffffffffffffffff16815260200160675481526020014381526020016000815250606a60008581526020019081526020016000208383604051610ca392919061181f565b9081526040805160209281900383018120845181547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9091161781559284015160018085019190915591840151600284015560609093015160039092019190915584917fc5d8c630ba2fdacb1db24c4599df78c7fb8cf97b5aecde34939597f6697bb1ad91610d4b91869186916118a8565b60405180910390a2505050565b610d6061100e565b60678190556040518181527f4468d695a0389e5f9e8ef0c9aee6d84e74cc0d0e0a28c8413badb54697d1bbae9060200160405180910390a150565b610da361100e565b73ffffffffffffffffffffffffffffffffffffffff8116610e46576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610569565b610e4f816110a3565b50565b600054610100900460ff1615808015610e725750600054600160ff909116105b80610e8c5750303b158015610e8c575060005460ff166001145b610f18576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610569565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015610f7657600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b610f7e6113b8565b60658590556066849055610f9183610d58565b610f9a82610527565b610fa3866110a3565b801561100657600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050565b60335473ffffffffffffffffffffffffffffffffffffffff163314610623576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610569565b6000806000806000858888f1949350505050565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60006066548261112a9190611807565b43111592915050565b600061113f82846118ea565b60f81c90505b92915050565b80516020918201206040805160009381019390935260218084019290925280518084039092018252604190920190915290565b6001830154835473ffffffffffffffffffffffffffffffffffffffff166000486103e86111ad61410088611932565b6111b7919061196f565b6111c49062011cdd611807565b6111ce9190611932565b905080831115611280576111e281846118d3565b73ffffffffffffffffffffffffffffffffffffffff831660009081526069602052604081208054909190611217908490611807565b909155505073ffffffffffffffffffffffffffffffffffffffff82166000818152606960209081526040918290205482519384529083015291935083917fa448afda7ea1e3a7a10fcab0c29fe9a9dd85791503bf0171f281521551c7ec05910160405180910390a15b60006064606854836112929190611932565b61129c919061196f565b9050838111156112a95750825b80156113565773ffffffffffffffffffffffffffffffffffffffff8516600090815260696020526040812080548392906112e4908490611807565b909155506112f4905081856118d3565b73ffffffffffffffffffffffffffffffffffffffff8616600081815260696020908152604091829020548251938452908301529195507fa448afda7ea1e3a7a10fcab0c29fe9a9dd85791503bf0171f281521551c7ec05910160405180910390a15b831561138b5760405160009085156108fc0290869083818181858288f19350505050158015611389573d6000803e3d6000fd5b505b6000876001018190555050505050505050565b6000814310158015611145575060655461112a9083611807565b600054610100900460ff1661144f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610569565b610623600054610100900460ff166114e9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610569565b610623336110a3565b803573ffffffffffffffffffffffffffffffffffffffff8116811461151657600080fd5b919050565b60006020828403121561152d57600080fd5b6106e1826114f2565b60006020828403121561154857600080fd5b5035919050565b6000815180845260005b8181101561157557602081850181015186830182015201611559565b81811115611587576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006106e1602083018461154f565b60008083601f8401126115df57600080fd5b50813567ffffffffffffffff8111156115f757600080fd5b60208301915083602082850101111561160f57600080fd5b9250929050565b60008060006040848603121561162b57600080fd5b83359250602084013567ffffffffffffffff81111561164957600080fd5b611655868287016115cd565b9497909650939450505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600481106116c8577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b9052565b602081016111458284611691565b6000806000806000606086880312156116f257600080fd5b85359450602086013567ffffffffffffffff8082111561171157600080fd5b61171d89838a016115cd565b9096509450604088013591508082111561173657600080fd5b50611743888289016115cd565b969995985093965092949392505050565b6000806020838503121561176757600080fd5b823567ffffffffffffffff81111561177e57600080fd5b61178a858286016115cd565b90969095509350505050565b600080600080600060a086880312156117ae57600080fd5b6117b7866114f2565b97602087013597506040870135966060810135965060800135945092505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000821982111561181a5761181a6117d8565b500190565b8183823760009101908152919050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b60408152600061188b604083018661154f565b828103602084015261189e81858761182f565b9695505050505050565b6040815260006118bc60408301858761182f565b90506118cb6020830184611691565b949350505050565b6000828210156118e5576118e56117d8565b500390565b7fff00000000000000000000000000000000000000000000000000000000000000813581811691600185101561192a5780818660010360031b1b83161692505b505092915050565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561196a5761196a6117d8565b500290565b6000826119a5577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b50049056fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R`\x046\x10a\x01\x84W`\x005`\xE0\x1C\x80c\x84\x8A\xFB=\x11a\0\xD6W\x80c\x95a\x18R\x11a\0\x7FW\x80c\xD7\xD0NT\x11a\0YW\x80c\xD7\xD0NT\x14a\x04YW\x80c\xF2\xFD\xE3\x8B\x14a\x04yW\x80c\xF9*\xD2\x19\x14a\x04\x99W`\0\x80\xFD[\x80c\x95a\x18R\x14a\x04'W\x80c\xA0:\xAF\xBF\x14a\x04>W\x80c\xD0\xE3\r\xB0\x14a\x04QW`\0\x80\xFD[\x80c\x8E\xCB\x85\xE1\x11a\0\xB0W\x80c\x8E\xCB\x85\xE1\x14a\x03\xD1W\x80c\x93\x98\x823\x14a\x03\xE7W\x80c\x93\xFB\x19D\x14a\x04\x07W`\0\x80\xFD[\x80c\x84\x8A\xFB=\x14a\x03\x1DW\x80c\x86\x1A\x14\x12\x14a\x03\x86W\x80c\x8D\xA5\xCB[\x14a\x03\x9CW`\0\x80\xFD[\x80cN\xBA\xF3\xCE\x11a\x018W\x80cqP\x18\xA6\x11a\x01\x12W\x80cqP\x18\xA6\x14a\x02\xBBW\x80cy\xE8\xA8\xB3\x14a\x02\xD0W\x80cz\xE9)\xD9\x14a\x02\xFDW`\0\x80\xFD[\x80cN\xBA\xF3\xCE\x14a\x029W\x80cT\xFDMP\x14a\x02OW\x80cp\x99\xC5\x81\x14a\x02\xA5W`\0\x80\xFD[\x80c'\xE25\xE3\x11a\x01iW\x80c'\xE25\xE3\x14a\x01\xD7W\x80c3d\t\xFD\x14a\x02\x04W\x80c<\xCF\xD6\x0B\x14a\x02$W`\0\x80\xFD[\x80c!\xCF9\xEE\x14a\x01\x98W\x80c#\xC3\x0FY\x14a\x01\xC1W`\0\x80\xFD[6a\x01\x93Wa\x01\x91a\x04\xB9V[\0[`\0\x80\xFD[4\x80\x15a\x01\xA4W`\0\x80\xFD[Pa\x01\xAE`fT\x81V[`@Q\x90\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[4\x80\x15a\x01\xCDW`\0\x80\xFD[Pa\x01\xAEaA\0\x81V[4\x80\x15a\x01\xE3W`\0\x80\xFD[Pa\x01\xAEa\x01\xF26`\x04a\x15\x1BV[`i` R`\0\x90\x81R`@\x90 T\x81V[4\x80\x15a\x02\x10W`\0\x80\xFD[Pa\x01\x91a\x02\x1F6`\x04a\x156V[a\x05'V[4\x80\x15a\x020W`\0\x80\xFD[Pa\x01\x91a\x05wV[4\x80\x15a\x02EW`\0\x80\xFD[Pa\x01\xAEa\x03\xE8\x81V[4\x80\x15a\x02[W`\0\x80\xFD[Pa\x02\x98`@Q\x80`@\x01`@R\x80`\x05\x81R` \x01\x7F1.0.1\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\x81RP\x81V[`@Qa\x01\xB8\x91\x90a\x15\xBAV[4\x80\x15a\x02\xB1W`\0\x80\xFD[Pa\x01\xAE`gT\x81V[4\x80\x15a\x02\xC7W`\0\x80\xFD[Pa\x01\x91a\x06\x11V[4\x80\x15a\x02\xDCW`\0\x80\xFD[Pa\x02\xF0a\x02\xEB6`\x04a\x16\x16V[a\x06%V[`@Qa\x01\xB8\x91\x90a\x16\xCCV[4\x80\x15a\x03\tW`\0\x80\xFD[Pa\x01\x91a\x03\x186`\x04a\x16\xDAV[a\x06\xE8V[4\x80\x15a\x03)W`\0\x80\xFD[Pa\x03=a\x0386`\x04a\x16\x16V[a\x08\x84V[`@Qa\x01\xB8\x91\x90\x81Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81R` \x80\x83\x01Q\x90\x82\x01R`@\x80\x83\x01Q\x90\x82\x01R``\x91\x82\x01Q\x91\x81\x01\x91\x90\x91R`\x80\x01\x90V[4\x80\x15a\x03\x92W`\0\x80\xFD[Pa\x01\xAE`eT\x81V[4\x80\x15a\x03\xA8W`\0\x80\xFD[P`3T`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01a\x01\xB8V[4\x80\x15a\x03\xDDW`\0\x80\xFD[Pa\x01\xAE`hT\x81V[4\x80\x15a\x03\xF3W`\0\x80\xFD[Pa\x01\x91a\x04\x026`\x04a\x16\x16V[a\t@V[4\x80\x15a\x04\x13W`\0\x80\xFD[Pa\x01\x91a\x04\"6`\x04a\x17TV[a\nrV[4\x80\x15a\x043W`\0\x80\xFD[Pa\x01\xAEb\x01\x1C\xDD\x81V[a\x01\x91a\x04L6`\x04a\x16\x16V[a\x0B\x0FV[a\x01\x91a\x04\xB9V[4\x80\x15a\x04eW`\0\x80\xFD[Pa\x01\x91a\x04t6`\x04a\x156V[a\rXV[4\x80\x15a\x04\x85W`\0\x80\xFD[Pa\x01\x91a\x04\x946`\x04a\x15\x1BV[a\r\x9BV[4\x80\x15a\x04\xA5W`\0\x80\xFD[Pa\x01\x91a\x04\xB46`\x04a\x17\x96V[a\x0ERV[3`\0\x90\x81R`i` R`@\x81 \x80T4\x92\x90a\x04\xD8\x90\x84\x90a\x18\x07V[\x90\x91UPP3`\0\x81\x81R`i` \x90\x81R`@\x91\x82\x90 T\x82Q\x93\x84R\x90\x83\x01R\x7F\xA4H\xAF\xDA~\xA1\xE3\xA7\xA1\x0F\xCA\xB0\xC2\x9F\xE9\xA9\xDD\x85y\x15\x03\xBF\x01q\xF2\x81R\x15Q\xC7\xEC\x05\x91\x01`@Q\x80\x91\x03\x90\xA1V[a\x05/a\x10\x0EV[`d\x81\x11\x15a\x05rW`@Q\x7F\x16\xAAN\x80\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\x81\x01\x82\x90R`$\x01[`@Q\x80\x91\x03\x90\xFD[`hUV[3`\0\x81\x81R`i` \x90\x81R`@\x80\x83 \x80T\x90\x84\x90U\x81Q\x94\x85R\x91\x84\x01\x92\x90\x92R\x91\x7F\xA4H\xAF\xDA~\xA1\xE3\xA7\xA1\x0F\xCA\xB0\xC2\x9F\xE9\xA9\xDD\x85y\x15\x03\xBF\x01q\xF2\x81R\x15Q\xC7\xEC\x05\x91\x01`@Q\x80\x91\x03\x90\xA1`\0a\x05\xD43Z\x84a\x10\x8FV[\x90P\x80a\x06\rW`@Q\x7F'\xFC\xD9\xD1\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\x01`@Q\x80\x91\x03\x90\xFD[PPV[a\x06\x19a\x10\x0EV[a\x06#`\0a\x10\xA3V[V[`\0\x83\x81R`j` R`@\x80\x82 \x90Q\x82\x91\x90a\x06F\x90\x86\x90\x86\x90a\x18\x1FV[\x90\x81R`@\x80Q` \x92\x81\x90\x03\x83\x01\x81 `\x80\x82\x01\x83R\x80Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x80\x83R`\x01\x82\x01T\x94\x83\x01\x94\x90\x94R`\x02\x81\x01T\x92\x82\x01\x92\x90\x92R`\x03\x90\x91\x01T``\x82\x01R\x91Pa\x06\xABW`\0\x91PPa\x06\xE1V[``\x81\x01Q\x15a\x06\xBFW`\x02\x91PPa\x06\xE1V[a\x06\xCC\x81`@\x01Qa\x11\x1AV[\x15a\x06\xDBW`\x01\x91PPa\x06\xE1V[`\x03\x91PP[\x93\x92PPPV[a\x06\xF2\x84\x84a\nrV[`\x01a\x06\xFF\x86\x86\x86a\x06%V[`\x03\x81\x11\x15a\x07\x10Wa\x07\x10a\x16bV[\x14a\x07GW`@Q\x7F\xBE\xB1\x1D;\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\x01`@Q\x80\x91\x03\x90\xFD[`\0a\x07S\x85\x85a\x113V[\x90P```\xFF\x82\x16a\x07\xA1Wa\x07\x9E\x84\x84\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RPa\x11K\x92PPPV[\x90P[\x85\x85`@Qa\x07\xB1\x92\x91\x90a\x18\x1FV[`@Q\x80\x91\x03\x90 \x81\x80Q\x90` \x01 \x14a\x07\xFEW\x80\x86\x86`@Q\x7F\x1A\x0B\xBF\x9F\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\x05i\x93\x92\x91\x90a\x18xV[`\0\x87\x81R`j` R`@\x80\x82 \x90Qa\x08\x1C\x90\x89\x90\x89\x90a\x18\x1FV[\x90\x81R`@Q\x90\x81\x90\x03` \x01\x81 C`\x03\x82\x01U\x91P\x88\x90\x7F\xC5\xD8\xC60\xBA/\xDA\xCB\x1D\xB2LE\x99\xDFx\xC7\xFB\x8C\xF9{Z\xEC\xDE4\x93\x95\x97\xF6i{\xB1\xAD\x90a\x08g\x90\x8A\x90\x8A\x90`\x02\x90a\x18\xA8V[`@Q\x80\x91\x03\x90\xA2a\x08z\x81\x853a\x11~V[PPPPPPPPV[a\x08\xC5`@Q\x80`\x80\x01`@R\x80`\0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81R` \x01`\0\x81R` \x01`\0\x81R` \x01`\0\x81RP\x90V[`\0\x84\x81R`j` R`@\x90\x81\x90 \x90Qa\x08\xE4\x90\x85\x90\x85\x90a\x18\x1FV[\x90\x81R`@\x80Q\x91\x82\x90\x03` \x90\x81\x01\x83 `\x80\x84\x01\x83R\x80Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x84R`\x01\x81\x01T\x91\x84\x01\x91\x90\x91R`\x02\x81\x01T\x91\x83\x01\x91\x90\x91R`\x03\x01T``\x82\x01R\x90P\x93\x92PPPV[`\x03a\tM\x84\x84\x84a\x06%V[`\x03\x81\x11\x15a\t^Wa\t^a\x16bV[\x14a\t\x95W`@Q\x7F\x15\x1F\x07\xFE\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\x01`@Q\x80\x91\x03\x90\xFD[`\0\x83\x81R`j` R`@\x80\x82 \x90Qa\t\xB3\x90\x85\x90\x85\x90a\x18\x1FV[\x90\x81R`@\x80Q` \x92\x81\x90\x03\x83\x01\x90 `\x01\x81\x01T\x81Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\0\x90\x81R`i\x90\x94R\x91\x83 \x80T\x91\x94P\x91\x92\x90a\n\x01\x90\x84\x90a\x18\x07V[\x90\x91UPP`\0`\x01\x82\x01\x81\x90U\x81Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x80\x82R`i` \x90\x81R`@\x92\x83\x90 T\x83Q\x92\x83R\x90\x82\x01R\x7F\xA4H\xAF\xDA~\xA1\xE3\xA7\xA1\x0F\xCA\xB0\xC2\x9F\xE9\xA9\xDD\x85y\x15\x03\xBF\x01q\xF2\x81R\x15Q\xC7\xEC\x05\x91\x01`@Q\x80\x91\x03\x90\xA1PPPPV[`\0a\n~\x83\x83a\x113V[\x90P`\xFF\x81\x16a\n\xD8W`!\x82\x14a\n\xD3W`@Q\x7F\xFD\x9A~[\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`\0`\x04\x82\x01R`!`$\x82\x01R`D\x81\x01\x83\x90R`d\x01a\x05iV[PPPV[`@Q\x7F\x81\xFF\x07\x13\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`\xFF\x82\x16`\x04\x82\x01R`$\x01a\x05iV[a\x0B\x19\x82\x82a\nrV[a\x0B!a\x04\xB9V[`gT3`\0\x90\x81R`i` R`@\x90 T\x10\x15a\x0B\x89W3`\0\x90\x81R`i` R`@\x90\x81\x90 T`gT\x91Q~\x01U\xB5\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\x81Ra\x05i\x92\x90`\x04\x01\x91\x82R` \x82\x01R`@\x01\x90V[`\0a\x0B\x96\x84\x84\x84a\x06%V[`\x03\x81\x11\x15a\x0B\xA7Wa\x0B\xA7a\x16bV[\x14a\x0B\xDEW`@Q\x7F\x9B\xB6\xC6N\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\x01`@Q\x80\x91\x03\x90\xFD[a\x0B\xE7\x83a\x13\x9EV[a\x0C\x1DW`@Q\x7F\xF9\xE0\xD1\xF3\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\x01`@Q\x80\x91\x03\x90\xFD[`gT3`\0\x90\x81R`i` R`@\x81 \x80T\x90\x91\x90a\x0C?\x90\x84\x90a\x18\xD3V[\x92PP\x81\x90UP`@Q\x80`\x80\x01`@R\x803s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81R` \x01`gT\x81R` \x01C\x81R` \x01`\0\x81RP`j`\0\x85\x81R` \x01\x90\x81R` \x01`\0 \x83\x83`@Qa\x0C\xA3\x92\x91\x90a\x18\x1FV[\x90\x81R`@\x80Q` \x92\x81\x90\x03\x83\x01\x81 \x84Q\x81T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x17\x81U\x92\x84\x01Q`\x01\x80\x85\x01\x91\x90\x91U\x91\x84\x01Q`\x02\x84\x01U``\x90\x93\x01Q`\x03\x90\x92\x01\x91\x90\x91U\x84\x91\x7F\xC5\xD8\xC60\xBA/\xDA\xCB\x1D\xB2LE\x99\xDFx\xC7\xFB\x8C\xF9{Z\xEC\xDE4\x93\x95\x97\xF6i{\xB1\xAD\x91a\rK\x91\x86\x91\x86\x91a\x18\xA8V[`@Q\x80\x91\x03\x90\xA2PPPV[a\r`a\x10\x0EV[`g\x81\x90U`@Q\x81\x81R\x7FDh\xD6\x95\xA08\x9E_\x9E\x8E\xF0\xC9\xAE\xE6\xD8Nt\xCC\r\x0E\n(\xC8A;\xAD\xB5F\x97\xD1\xBB\xAE\x90` \x01`@Q\x80\x91\x03\x90\xA1PV[a\r\xA3a\x10\x0EV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16a\x0EFW`@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\x82\x01R`&`$\x82\x01R\x7FOwnable: new owner is the zero a`D\x82\x01R\x7Fddress\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`d\x82\x01R`\x84\x01a\x05iV[a\x0EO\x81a\x10\xA3V[PV[`\0Ta\x01\0\x90\x04`\xFF\x16\x15\x80\x80\x15a\x0ErWP`\0T`\x01`\xFF\x90\x91\x16\x10[\x80a\x0E\x8CWP0;\x15\x80\x15a\x0E\x8CWP`\0T`\xFF\x16`\x01\x14[a\x0F\x18W`@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\x82\x01R`.`$\x82\x01R\x7FInitializable: contract is alrea`D\x82\x01R\x7Fdy initialized\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x05iV[`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x16`\x01\x17\x90U\x80\x15a\x0FvW`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\x16a\x01\0\x17\x90U[a\x0F~a\x13\xB8V[`e\x85\x90U`f\x84\x90Ua\x0F\x91\x83a\rXV[a\x0F\x9A\x82a\x05'V[a\x0F\xA3\x86a\x10\xA3V[\x80\x15a\x10\x06W`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\x16\x90U`@Q`\x01\x81R\x7F\x7F&\xB8?\xF9n\x1F+jh/\x138R\xF6y\x8A\t\xC4e\xDA\x95\x92\x14`\xCE\xFB8G@$\x98\x90` \x01`@Q\x80\x91\x03\x90\xA1[PPPPPPV[`3Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x163\x14a\x06#W`@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\x82\x01\x81\x90R`$\x82\x01R\x7FOwnable: caller is not the owner`D\x82\x01R`d\x01a\x05iV[`\0\x80`\0\x80`\0\x85\x88\x88\xF1\x94\x93PPPPV[`3\x80Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x81\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x83\x16\x81\x17\x90\x93U`@Q\x91\x16\x91\x90\x82\x90\x7F\x8B\xE0\x07\x9CS\x16Y\x14\x13D\xCD\x1F\xD0\xA4\xF2\x84\x19I\x7F\x97\"\xA3\xDA\xAF\xE3\xB4\x18okdW\xE0\x90`\0\x90\xA3PPV[`\0`fT\x82a\x11*\x91\x90a\x18\x07V[C\x11\x15\x92\x91PPV[`\0a\x11?\x82\x84a\x18\xEAV[`\xF8\x1C\x90P[\x92\x91PPV[\x80Q` \x91\x82\x01 `@\x80Q`\0\x93\x81\x01\x93\x90\x93R`!\x80\x84\x01\x92\x90\x92R\x80Q\x80\x84\x03\x90\x92\x01\x82R`A\x90\x92\x01\x90\x91R\x90V[`\x01\x83\x01T\x83Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\0Ha\x03\xE8a\x11\xADaA\0\x88a\x192V[a\x11\xB7\x91\x90a\x19oV[a\x11\xC4\x90b\x01\x1C\xDDa\x18\x07V[a\x11\xCE\x91\x90a\x192V[\x90P\x80\x83\x11\x15a\x12\x80Wa\x11\xE2\x81\x84a\x18\xD3V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x16`\0\x90\x81R`i` R`@\x81 \x80T\x90\x91\x90a\x12\x17\x90\x84\x90a\x18\x07V[\x90\x91UPPs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16`\0\x81\x81R`i` \x90\x81R`@\x91\x82\x90 T\x82Q\x93\x84R\x90\x83\x01R\x91\x93P\x83\x91\x7F\xA4H\xAF\xDA~\xA1\xE3\xA7\xA1\x0F\xCA\xB0\xC2\x9F\xE9\xA9\xDD\x85y\x15\x03\xBF\x01q\xF2\x81R\x15Q\xC7\xEC\x05\x91\x01`@Q\x80\x91\x03\x90\xA1[`\0`d`hT\x83a\x12\x92\x91\x90a\x192V[a\x12\x9C\x91\x90a\x19oV[\x90P\x83\x81\x11\x15a\x12\xA9WP\x82[\x80\x15a\x13VWs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x85\x16`\0\x90\x81R`i` R`@\x81 \x80T\x83\x92\x90a\x12\xE4\x90\x84\x90a\x18\x07V[\x90\x91UPa\x12\xF4\x90P\x81\x85a\x18\xD3V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x86\x16`\0\x81\x81R`i` \x90\x81R`@\x91\x82\x90 T\x82Q\x93\x84R\x90\x83\x01R\x91\x95P\x7F\xA4H\xAF\xDA~\xA1\xE3\xA7\xA1\x0F\xCA\xB0\xC2\x9F\xE9\xA9\xDD\x85y\x15\x03\xBF\x01q\xF2\x81R\x15Q\xC7\xEC\x05\x91\x01`@Q\x80\x91\x03\x90\xA1[\x83\x15a\x13\x8BW`@Q`\0\x90\x85\x15a\x08\xFC\x02\x90\x86\x90\x83\x81\x81\x81\x85\x82\x88\xF1\x93PPPP\x15\x80\x15a\x13\x89W=`\0\x80>=`\0\xFD[P[`\0\x87`\x01\x01\x81\x90UPPPPPPPPV[`\0\x81C\x10\x15\x80\x15a\x11EWP`eTa\x11*\x90\x83a\x18\x07V[`\0Ta\x01\0\x90\x04`\xFF\x16a\x14OW`@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\x82\x01R`+`$\x82\x01R\x7FInitializable: contract is not i`D\x82\x01R\x7Fnitializing\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x05iV[a\x06#`\0Ta\x01\0\x90\x04`\xFF\x16a\x14\xE9W`@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\x82\x01R`+`$\x82\x01R\x7FInitializable: contract is not i`D\x82\x01R\x7Fnitializing\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x05iV[a\x06#3a\x10\xA3V[\x805s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x15\x16W`\0\x80\xFD[\x91\x90PV[`\0` \x82\x84\x03\x12\x15a\x15-W`\0\x80\xFD[a\x06\xE1\x82a\x14\xF2V[`\0` \x82\x84\x03\x12\x15a\x15HW`\0\x80\xFD[P5\x91\x90PV[`\0\x81Q\x80\x84R`\0[\x81\x81\x10\x15a\x15uW` \x81\x85\x01\x81\x01Q\x86\x83\x01\x82\x01R\x01a\x15YV[\x81\x81\x11\x15a\x15\x87W`\0` \x83\x87\x01\x01R[P`\x1F\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x92\x90\x92\x01` \x01\x92\x91PPV[` \x81R`\0a\x06\xE1` \x83\x01\x84a\x15OV[`\0\x80\x83`\x1F\x84\x01\x12a\x15\xDFW`\0\x80\xFD[P\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x15\xF7W`\0\x80\xFD[` \x83\x01\x91P\x83` \x82\x85\x01\x01\x11\x15a\x16\x0FW`\0\x80\xFD[\x92P\x92\x90PV[`\0\x80`\0`@\x84\x86\x03\x12\x15a\x16+W`\0\x80\xFD[\x835\x92P` \x84\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x16IW`\0\x80\xFD[a\x16U\x86\x82\x87\x01a\x15\xCDV[\x94\x97\x90\x96P\x93\x94PPPPV[\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`!`\x04R`$`\0\xFD[`\x04\x81\x10a\x16\xC8W\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`!`\x04R`$`\0\xFD[\x90RV[` \x81\x01a\x11E\x82\x84a\x16\x91V[`\0\x80`\0\x80`\0``\x86\x88\x03\x12\x15a\x16\xF2W`\0\x80\xFD[\x855\x94P` \x86\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x17\x11W`\0\x80\xFD[a\x17\x1D\x89\x83\x8A\x01a\x15\xCDV[\x90\x96P\x94P`@\x88\x015\x91P\x80\x82\x11\x15a\x176W`\0\x80\xFD[Pa\x17C\x88\x82\x89\x01a\x15\xCDV[\x96\x99\x95\x98P\x93\x96P\x92\x94\x93\x92PPPV[`\0\x80` \x83\x85\x03\x12\x15a\x17gW`\0\x80\xFD[\x825g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x17~W`\0\x80\xFD[a\x17\x8A\x85\x82\x86\x01a\x15\xCDV[\x90\x96\x90\x95P\x93PPPPV[`\0\x80`\0\x80`\0`\xA0\x86\x88\x03\x12\x15a\x17\xAEW`\0\x80\xFD[a\x17\xB7\x86a\x14\xF2V[\x97` \x87\x015\x97P`@\x87\x015\x96``\x81\x015\x96P`\x80\x015\x94P\x92PPPV[\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`\x11`\x04R`$`\0\xFD[`\0\x82\x19\x82\x11\x15a\x18\x1AWa\x18\x1Aa\x17\xD8V[P\x01\x90V[\x81\x83\x827`\0\x91\x01\x90\x81R\x91\x90PV[\x81\x83R\x81\x81` \x85\x017P`\0` \x82\x84\x01\x01R`\0` \x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0`\x1F\x84\x01\x16\x84\x01\x01\x90P\x92\x91PPV[`@\x81R`\0a\x18\x8B`@\x83\x01\x86a\x15OV[\x82\x81\x03` \x84\x01Ra\x18\x9E\x81\x85\x87a\x18/V[\x96\x95PPPPPPV[`@\x81R`\0a\x18\xBC`@\x83\x01\x85\x87a\x18/V[\x90Pa\x18\xCB` \x83\x01\x84a\x16\x91V[\x94\x93PPPPV[`\0\x82\x82\x10\x15a\x18\xE5Wa\x18\xE5a\x17\xD8V[P\x03\x90V[\x7F\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x815\x81\x81\x16\x91`\x01\x85\x10\x15a\x19*W\x80\x81\x86`\x01\x03`\x03\x1B\x1B\x83\x16\x16\x92P[PP\x92\x91PPV[`\0\x81\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x04\x83\x11\x82\x15\x15\x16\x15a\x19jWa\x19ja\x17\xD8V[P\x02\x90V[`\0\x82a\x19\xA5W\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`\x12`\x04R`$`\0\xFD[P\x04\x90V\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ChallengeStatus(u8); + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for u8 { + #[inline] + fn stv_to_tokens( + &self, + ) -> as alloy_sol_types::SolType>::Token<'_> { + alloy_sol_types::private::SolTypeValue::< + alloy::sol_types::sol_data::Uint<8>, + >::stv_to_tokens(self) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + as alloy_sol_types::SolType>::tokenize(self) + .0 + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::SolType>::abi_encode_packed_to(self, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + as alloy_sol_types::SolType>::abi_encoded_size(self) + } + } + impl ChallengeStatus { + /// The Solidity type name. + pub const NAME: &'static str = stringify!(@ name); + /// Convert from the underlying value type. + #[inline] + pub const fn from_underlying(value: u8) -> Self { + Self(value) + } + /// Return the underlying value. + #[inline] + pub const fn into_underlying(self) -> u8 { + self.0 + } + /// Return the single encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode(&self) -> alloy_sol_types::private::Vec { + ::abi_encode(&self.0) + } + /// Return the packed encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec { + ::abi_encode_packed(&self.0) + } + } + #[automatically_derived] + impl From for ChallengeStatus { + fn from(value: u8) -> Self { + Self::from_underlying(value) + } + } + #[automatically_derived] + impl From for u8 { + fn from(value: ChallengeStatus) -> Self { + value.into_underlying() + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for ChallengeStatus { + type RustType = u8; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = Self::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + Self::type_check(token).is_ok() + } + #[inline] + fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> { + as alloy_sol_types::SolType>::type_check(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + as alloy_sol_types::SolType>::detokenize(token) + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for ChallengeStatus { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + as alloy_sol_types::EventTopic>::topic_preimage_length(rust) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out) + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + as alloy_sol_types::EventTopic>::encode_topic(rust) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**```solidity +struct Challenge { address challenger; uint256 lockedBond; uint256 startBlock; uint256 resolvedBlock; } +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct Challenge { + #[allow(missing_docs)] + pub challenger: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub lockedBond: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub startBlock: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub resolvedBlock: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: Challenge) -> Self { + ( + value.challenger, + value.lockedBond, + value.startBlock, + value.resolvedBlock, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for Challenge { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + challenger: tuple.0, + lockedBond: tuple.1, + startBlock: tuple.2, + resolvedBlock: tuple.3, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolValue for Challenge { + type SolType = Self; + } + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for Challenge { + #[inline] + fn stv_to_tokens(&self) -> ::Token<'_> { + ( + ::tokenize( + &self.challenger, + ), + as alloy_sol_types::SolType>::tokenize(&self.lockedBond), + as alloy_sol_types::SolType>::tokenize(&self.startBlock), + as alloy_sol_types::SolType>::tokenize(&self.resolvedBlock), + ) + } + #[inline] + fn stv_abi_encoded_size(&self) -> usize { + if let Some(size) = ::ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encoded_size(&tuple) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + ::eip712_hash_struct(self) + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + if let Some(size) = ::PACKED_ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for Challenge { + type RustType = Self; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = ::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + as alloy_sol_types::SolType>::valid_token(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + let tuple = as alloy_sol_types::SolType>::detokenize(token); + >>::from(tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolStruct for Challenge { + const NAME: &'static str = "Challenge"; + #[inline] + fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> { + alloy_sol_types::private::Cow::Borrowed( + "Challenge(address challenger,uint256 lockedBond,uint256 startBlock,uint256 resolvedBlock)", + ) + } + #[inline] + fn eip712_components() -> alloy_sol_types::private::Vec< + alloy_sol_types::private::Cow<'static, str>, + > { + alloy_sol_types::private::Vec::new() + } + #[inline] + fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> { + ::eip712_root_type() + } + #[inline] + fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec { + [ + ::eip712_data_word( + &self.challenger, + ) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.lockedBond) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.startBlock) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.resolvedBlock) + .0, + ] + .concat() + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for Challenge { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + 0usize + + ::topic_preimage_length( + &rust.challenger, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.lockedBond, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.startBlock, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.resolvedBlock, + ) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + out.reserve( + ::topic_preimage_length(rust), + ); + ::encode_topic_preimage( + &rust.challenger, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.lockedBond, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.startBlock, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.resolvedBlock, + out, + ); + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + let mut out = alloy_sol_types::private::Vec::new(); + ::encode_topic_preimage( + rust, + &mut out, + ); + alloy_sol_types::abi::token::WordToken( + alloy_sol_types::private::keccak256(out), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `BondTooLow(uint256,uint256)` and selector `0x000155b5`. +```solidity +error BondTooLow(uint256 balance, uint256 required); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct BondTooLow { + #[allow(missing_docs)] + pub balance: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub required: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: BondTooLow) -> Self { + (value.balance, value.required) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for BondTooLow { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + balance: tuple.0, + required: tuple.1, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for BondTooLow { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "BondTooLow(uint256,uint256)"; + const SELECTOR: [u8; 4] = [0u8, 1u8, 85u8, 181u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.balance), + as alloy_sol_types::SolType>::tokenize(&self.required), + ) + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ChallengeExists()` and selector `0x9bb6c64e`. +```solidity +error ChallengeExists(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ChallengeExists; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ChallengeExists) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ChallengeExists { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ChallengeExists { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ChallengeExists()"; + const SELECTOR: [u8; 4] = [155u8, 182u8, 198u8, 78u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ChallengeNotActive()` and selector `0xbeb11d3b`. +```solidity +error ChallengeNotActive(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ChallengeNotActive; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ChallengeNotActive) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ChallengeNotActive { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ChallengeNotActive { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ChallengeNotActive()"; + const SELECTOR: [u8; 4] = [190u8, 177u8, 29u8, 59u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ChallengeNotExpired()` and selector `0x151f07fe`. +```solidity +error ChallengeNotExpired(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ChallengeNotExpired; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ChallengeNotExpired) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ChallengeNotExpired { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ChallengeNotExpired { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ChallengeNotExpired()"; + const SELECTOR: [u8; 4] = [21u8, 31u8, 7u8, 254u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ChallengeWindowNotOpen()` and selector `0xf9e0d1f3`. +```solidity +error ChallengeWindowNotOpen(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ChallengeWindowNotOpen; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ChallengeWindowNotOpen) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ChallengeWindowNotOpen { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ChallengeWindowNotOpen { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ChallengeWindowNotOpen()"; + const SELECTOR: [u8; 4] = [249u8, 224u8, 209u8, 243u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidCommitmentLength(uint8,uint256,uint256)` and selector `0xfd9a7e5b`. +```solidity +error InvalidCommitmentLength(uint8 commitmentType, uint256 expectedLength, uint256 actualLength); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidCommitmentLength { + #[allow(missing_docs)] + pub commitmentType: u8, + #[allow(missing_docs)] + pub expectedLength: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub actualLength: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Uint<8>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + u8, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InvalidCommitmentLength) -> Self { + (value.commitmentType, value.expectedLength, value.actualLength) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InvalidCommitmentLength { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + commitmentType: tuple.0, + expectedLength: tuple.1, + actualLength: tuple.2, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidCommitmentLength { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidCommitmentLength(uint8,uint256,uint256)"; + const SELECTOR: [u8; 4] = [253u8, 154u8, 126u8, 91u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.commitmentType), + as alloy_sol_types::SolType>::tokenize(&self.expectedLength), + as alloy_sol_types::SolType>::tokenize(&self.actualLength), + ) + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidInputData(bytes,bytes)` and selector `0x1a0bbf9f`. +```solidity +error InvalidInputData(bytes providedDataCommitment, bytes expectedCommitment); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidInputData { + #[allow(missing_docs)] + pub providedDataCommitment: alloy::sol_types::private::Bytes, + #[allow(missing_docs)] + pub expectedCommitment: alloy::sol_types::private::Bytes, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Bytes, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Bytes, + alloy::sol_types::private::Bytes, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InvalidInputData) -> Self { + (value.providedDataCommitment, value.expectedCommitment) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InvalidInputData { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + providedDataCommitment: tuple.0, + expectedCommitment: tuple.1, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidInputData { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidInputData(bytes,bytes)"; + const SELECTOR: [u8; 4] = [26u8, 11u8, 191u8, 159u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.providedDataCommitment, + ), + ::tokenize( + &self.expectedCommitment, + ), + ) + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidResolverRefundPercentage(uint256)` and selector `0x16aa4e80`. +```solidity +error InvalidResolverRefundPercentage(uint256 invalidResolverRefundPercentage); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidResolverRefundPercentage { + #[allow(missing_docs)] + pub invalidResolverRefundPercentage: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: InvalidResolverRefundPercentage) -> Self { + (value.invalidResolverRefundPercentage,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for InvalidResolverRefundPercentage { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + invalidResolverRefundPercentage: tuple.0, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidResolverRefundPercentage { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidResolverRefundPercentage(uint256)"; + const SELECTOR: [u8; 4] = [22u8, 170u8, 78u8, 128u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize( + &self.invalidResolverRefundPercentage, + ), + ) + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `UnknownCommitmentType(uint8)` and selector `0x81ff0713`. +```solidity +error UnknownCommitmentType(uint8 commitmentType); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct UnknownCommitmentType { + #[allow(missing_docs)] + pub commitmentType: u8, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<8>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u8,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: UnknownCommitmentType) -> Self { + (value.commitmentType,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for UnknownCommitmentType { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { commitmentType: tuple.0 } + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for UnknownCommitmentType { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "UnknownCommitmentType(uint8)"; + const SELECTOR: [u8; 4] = [129u8, 255u8, 7u8, 19u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.commitmentType), + ) + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `WithdrawalFailed()` and selector `0x27fcd9d1`. +```solidity +error WithdrawalFailed(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct WithdrawalFailed; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: WithdrawalFailed) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for WithdrawalFailed { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for WithdrawalFailed { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "WithdrawalFailed()"; + const SELECTOR: [u8; 4] = [39u8, 252u8, 217u8, 209u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `BalanceChanged(address,uint256)` and selector `0xa448afda7ea1e3a7a10fcab0c29fe9a9dd85791503bf0171f281521551c7ec05`. +```solidity +event BalanceChanged(address account, uint256 balance); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct BalanceChanged { + #[allow(missing_docs)] + pub account: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub balance: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for BalanceChanged { + type DataTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,); + const SIGNATURE: &'static str = "BalanceChanged(address,uint256)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 164u8, 72u8, 175u8, 218u8, 126u8, 161u8, 227u8, 167u8, 161u8, 15u8, + 202u8, 176u8, 194u8, 159u8, 233u8, 169u8, 221u8, 133u8, 121u8, 21u8, 3u8, + 191u8, 1u8, 113u8, 242u8, 129u8, 82u8, 21u8, 81u8, 199u8, 236u8, 5u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + account: data.0, + balance: data.1, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + ::tokenize( + &self.account, + ), + as alloy_sol_types::SolType>::tokenize(&self.balance), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(),) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for BalanceChanged { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&BalanceChanged> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &BalanceChanged) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `ChallengeStatusChanged(uint256,bytes,uint8)` and selector `0xc5d8c630ba2fdacb1db24c4599df78c7fb8cf97b5aecde34939597f6697bb1ad`. +```solidity +event ChallengeStatusChanged(uint256 indexed challengedBlockNumber, bytes challengedCommitment, ChallengeStatus status); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct ChallengeStatusChanged { + #[allow(missing_docs)] + pub challengedBlockNumber: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub challengedCommitment: alloy::sol_types::private::Bytes, + #[allow(missing_docs)] + pub status: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for ChallengeStatusChanged { + type DataTuple<'a> = (alloy::sol_types::sol_data::Bytes, ChallengeStatus); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Uint<256>, + ); + const SIGNATURE: &'static str = "ChallengeStatusChanged(uint256,bytes,uint8)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 197u8, 216u8, 198u8, 48u8, 186u8, 47u8, 218u8, 203u8, 29u8, 178u8, 76u8, + 69u8, 153u8, 223u8, 120u8, 199u8, 251u8, 140u8, 249u8, 123u8, 90u8, + 236u8, 222u8, 52u8, 147u8, 149u8, 151u8, 246u8, 105u8, 123u8, 177u8, + 173u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + challengedBlockNumber: topics.1, + challengedCommitment: data.0, + status: data.1, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + ::tokenize( + &self.challengedCommitment, + ), + ::tokenize(&self.status), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.challengedBlockNumber.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = as alloy_sol_types::EventTopic>::encode_topic( + &self.challengedBlockNumber, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for ChallengeStatusChanged { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&ChallengeStatusChanged> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &ChallengeStatusChanged) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `Initialized(uint8)` and selector `0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498`. +```solidity +event Initialized(uint8 version); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct Initialized { + #[allow(missing_docs)] + pub version: u8, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for Initialized { + type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<8>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,); + const SIGNATURE: &'static str = "Initialized(uint8)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 127u8, 38u8, 184u8, 63u8, 249u8, 110u8, 31u8, 43u8, 106u8, 104u8, 47u8, + 19u8, 56u8, 82u8, 246u8, 121u8, 138u8, 9u8, 196u8, 101u8, 218u8, 149u8, + 146u8, 20u8, 96u8, 206u8, 251u8, 56u8, 71u8, 64u8, 36u8, 152u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { version: data.0 } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.version), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(),) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for Initialized { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&Initialized> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &Initialized) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `OwnershipTransferred(address,address)` and selector `0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0`. +```solidity +event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct OwnershipTransferred { + #[allow(missing_docs)] + pub previousOwner: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub newOwner: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for OwnershipTransferred { + type DataTuple<'a> = (); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "OwnershipTransferred(address,address)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 139u8, 224u8, 7u8, 156u8, 83u8, 22u8, 89u8, 20u8, 19u8, 68u8, 205u8, + 31u8, 208u8, 164u8, 242u8, 132u8, 25u8, 73u8, 127u8, 151u8, 34u8, 163u8, + 218u8, 175u8, 227u8, 180u8, 24u8, 111u8, 107u8, 100u8, 87u8, 224u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + previousOwner: topics.1, + newOwner: topics.2, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + () + } + #[inline] + fn topics(&self) -> ::RustType { + ( + Self::SIGNATURE_HASH.into(), + self.previousOwner.clone(), + self.newOwner.clone(), + ) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.previousOwner, + ); + out[2usize] = ::encode_topic( + &self.newOwner, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for OwnershipTransferred { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&OwnershipTransferred> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &OwnershipTransferred) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `RequiredBondSizeChanged(uint256)` and selector `0x4468d695a0389e5f9e8ef0c9aee6d84e74cc0d0e0a28c8413badb54697d1bbae`. +```solidity +event RequiredBondSizeChanged(uint256 challengeWindow); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct RequiredBondSizeChanged { + #[allow(missing_docs)] + pub challengeWindow: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for RequiredBondSizeChanged { + type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,); + const SIGNATURE: &'static str = "RequiredBondSizeChanged(uint256)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 68u8, 104u8, 214u8, 149u8, 160u8, 56u8, 158u8, 95u8, 158u8, 142u8, 240u8, + 201u8, 174u8, 230u8, 216u8, 78u8, 116u8, 204u8, 13u8, 14u8, 10u8, 40u8, + 200u8, 65u8, 59u8, 173u8, 181u8, 70u8, 151u8, 209u8, 187u8, 174u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { challengeWindow: data.0 } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.challengeWindow), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(),) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for RequiredBondSizeChanged { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&RequiredBondSizeChanged> for alloy_sol_types::private::LogData { + #[inline] + fn from( + this: &RequiredBondSizeChanged, + ) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `ResolverRefundPercentageChanged(uint256)` and selector `0xbbd8605de8f773fedb355c2fecd4b6b2e16a10a44e6676a63b375ac8f693758d`. +```solidity +event ResolverRefundPercentageChanged(uint256 resolverRefundPercentage); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct ResolverRefundPercentageChanged { + #[allow(missing_docs)] + pub resolverRefundPercentage: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for ResolverRefundPercentageChanged { + type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,); + const SIGNATURE: &'static str = "ResolverRefundPercentageChanged(uint256)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 187u8, 216u8, 96u8, 93u8, 232u8, 247u8, 115u8, 254u8, 219u8, 53u8, 92u8, + 47u8, 236u8, 212u8, 182u8, 178u8, 225u8, 106u8, 16u8, 164u8, 78u8, 102u8, + 118u8, 166u8, 59u8, 55u8, 90u8, 200u8, 246u8, 147u8, 117u8, 141u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + resolverRefundPercentage: data.0, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize( + &self.resolverRefundPercentage, + ), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(),) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for ResolverRefundPercentageChanged { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&ResolverRefundPercentageChanged> + for alloy_sol_types::private::LogData { + #[inline] + fn from( + this: &ResolverRefundPercentageChanged, + ) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + /**Constructor`. +```solidity +constructor(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct constructorCall {} + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: constructorCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for constructorCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolConstructor for constructorCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `balances(address)` and selector `0x27e235e3`. +```solidity +function balances(address) external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct balancesCall(pub alloy::sol_types::private::Address); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`balances(address)`](balancesCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct balancesReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: balancesCall) -> Self { + (value.0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for balancesCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self(tuple.0) + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: balancesReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for balancesReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for balancesCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "balances(address)"; + const SELECTOR: [u8; 4] = [39u8, 226u8, 53u8, 227u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.0, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: balancesReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: balancesReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `bondSize()` and selector `0x7099c581`. +```solidity +function bondSize() external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct bondSizeCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`bondSize()`](bondSizeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct bondSizeReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: bondSizeCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for bondSizeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: bondSizeReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for bondSizeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for bondSizeCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "bondSize()"; + const SELECTOR: [u8; 4] = [112u8, 153u8, 197u8, 129u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: bondSizeReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: bondSizeReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `challenge(uint256,bytes)` and selector `0xa03aafbf`. +```solidity +function challenge(uint256 _challengedBlockNumber, bytes memory _challengedCommitment) external payable; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct challengeCall { + #[allow(missing_docs)] + pub _challengedBlockNumber: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _challengedCommitment: alloy::sol_types::private::Bytes, + } + ///Container type for the return parameters of the [`challenge(uint256,bytes)`](challengeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct challengeReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::Bytes, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: challengeCall) -> Self { + (value._challengedBlockNumber, value._challengedCommitment) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for challengeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _challengedBlockNumber: tuple.0, + _challengedCommitment: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: challengeReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for challengeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl challengeReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for challengeCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Bytes, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = challengeReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "challenge(uint256,bytes)"; + const SELECTOR: [u8; 4] = [160u8, 58u8, 175u8, 191u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize( + &self._challengedBlockNumber, + ), + ::tokenize( + &self._challengedCommitment, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + challengeReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `challengeWindow()` and selector `0x861a1412`. +```solidity +function challengeWindow() external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct challengeWindowCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`challengeWindow()`](challengeWindowCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct challengeWindowReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: challengeWindowCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for challengeWindowCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: challengeWindowReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for challengeWindowReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for challengeWindowCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "challengeWindow()"; + const SELECTOR: [u8; 4] = [134u8, 26u8, 20u8, 18u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: challengeWindowReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: challengeWindowReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `deposit()` and selector `0xd0e30db0`. +```solidity +function deposit() external payable; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct depositCall; + ///Container type for the return parameters of the [`deposit()`](depositCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct depositReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: depositCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for depositCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: depositReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for depositReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl depositReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for depositCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = depositReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "deposit()"; + const SELECTOR: [u8; 4] = [208u8, 227u8, 13u8, 176u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + depositReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `fixedResolutionCost()` and selector `0x95611852`. +```solidity +function fixedResolutionCost() external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct fixedResolutionCostCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`fixedResolutionCost()`](fixedResolutionCostCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct fixedResolutionCostReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: fixedResolutionCostCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for fixedResolutionCostCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: fixedResolutionCostReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for fixedResolutionCostReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for fixedResolutionCostCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "fixedResolutionCost()"; + const SELECTOR: [u8; 4] = [149u8, 97u8, 24u8, 82u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: fixedResolutionCostReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: fixedResolutionCostReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `getChallenge(uint256,bytes)` and selector `0x848afb3d`. +```solidity +function getChallenge(uint256 _challengedBlockNumber, bytes memory _challengedCommitment) external view returns (Challenge memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getChallengeCall { + #[allow(missing_docs)] + pub _challengedBlockNumber: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _challengedCommitment: alloy::sol_types::private::Bytes, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`getChallenge(uint256,bytes)`](getChallengeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getChallengeReturn { + #[allow(missing_docs)] + pub _0: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::Bytes, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: getChallengeCall) -> Self { + (value._challengedBlockNumber, value._challengedCommitment) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for getChallengeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _challengedBlockNumber: tuple.0, + _challengedCommitment: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Challenge,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: getChallengeReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for getChallengeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for getChallengeCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Bytes, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (Challenge,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "getChallenge(uint256,bytes)"; + const SELECTOR: [u8; 4] = [132u8, 138u8, 251u8, 61u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize( + &self._challengedBlockNumber, + ), + ::tokenize( + &self._challengedCommitment, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: getChallengeReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: getChallengeReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `getChallengeStatus(uint256,bytes)` and selector `0x79e8a8b3`. +```solidity +function getChallengeStatus(uint256 _challengedBlockNumber, bytes memory _challengedCommitment) external view returns (ChallengeStatus); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getChallengeStatusCall { + #[allow(missing_docs)] + pub _challengedBlockNumber: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _challengedCommitment: alloy::sol_types::private::Bytes, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`getChallengeStatus(uint256,bytes)`](getChallengeStatusCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getChallengeStatusReturn { + #[allow(missing_docs)] + pub _0: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::Bytes, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: getChallengeStatusCall) -> Self { + (value._challengedBlockNumber, value._challengedCommitment) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for getChallengeStatusCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _challengedBlockNumber: tuple.0, + _challengedCommitment: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (ChallengeStatus,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: getChallengeStatusReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for getChallengeStatusReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for getChallengeStatusCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Bytes, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (ChallengeStatus,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "getChallengeStatus(uint256,bytes)"; + const SELECTOR: [u8; 4] = [121u8, 232u8, 168u8, 179u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize( + &self._challengedBlockNumber, + ), + ::tokenize( + &self._challengedCommitment, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: getChallengeStatusReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: getChallengeStatusReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `initialize(address,uint256,uint256,uint256,uint256)` and selector `0xf92ad219`. +```solidity +function initialize(address _owner, uint256 _challengeWindow, uint256 _resolveWindow, uint256 _bondSize, uint256 _resolverRefundPercentage) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct initializeCall { + #[allow(missing_docs)] + pub _owner: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _challengeWindow: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _resolveWindow: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _bondSize: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _resolverRefundPercentage: alloy::sol_types::private::primitives::aliases::U256, + } + ///Container type for the return parameters of the [`initialize(address,uint256,uint256,uint256,uint256)`](initializeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct initializeReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: initializeCall) -> Self { + ( + value._owner, + value._challengeWindow, + value._resolveWindow, + value._bondSize, + value._resolverRefundPercentage, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for initializeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _owner: tuple.0, + _challengeWindow: tuple.1, + _resolveWindow: tuple.2, + _bondSize: tuple.3, + _resolverRefundPercentage: tuple.4, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: initializeReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for initializeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl initializeReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for initializeCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = initializeReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "initialize(address,uint256,uint256,uint256,uint256)"; + const SELECTOR: [u8; 4] = [249u8, 42u8, 210u8, 25u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._owner, + ), + as alloy_sol_types::SolType>::tokenize(&self._challengeWindow), + as alloy_sol_types::SolType>::tokenize(&self._resolveWindow), + as alloy_sol_types::SolType>::tokenize(&self._bondSize), + as alloy_sol_types::SolType>::tokenize( + &self._resolverRefundPercentage, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + initializeReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `owner()` and selector `0x8da5cb5b`. +```solidity +function owner() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ownerCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`owner()`](ownerCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ownerReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ownerCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ownerCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ownerReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ownerReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for ownerCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "owner()"; + const SELECTOR: [u8; 4] = [141u8, 165u8, 203u8, 91u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: ownerReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: ownerReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `renounceOwnership()` and selector `0x715018a6`. +```solidity +function renounceOwnership() external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct renounceOwnershipCall; + ///Container type for the return parameters of the [`renounceOwnership()`](renounceOwnershipCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct renounceOwnershipReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: renounceOwnershipCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for renounceOwnershipCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: renounceOwnershipReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for renounceOwnershipReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl renounceOwnershipReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for renounceOwnershipCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = renounceOwnershipReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "renounceOwnership()"; + const SELECTOR: [u8; 4] = [113u8, 80u8, 24u8, 166u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + renounceOwnershipReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `resolve(uint256,bytes,bytes)` and selector `0x7ae929d9`. +```solidity +function resolve(uint256 _challengedBlockNumber, bytes memory _challengedCommitment, bytes memory _resolveData) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct resolveCall { + #[allow(missing_docs)] + pub _challengedBlockNumber: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _challengedCommitment: alloy::sol_types::private::Bytes, + #[allow(missing_docs)] + pub _resolveData: alloy::sol_types::private::Bytes, + } + ///Container type for the return parameters of the [`resolve(uint256,bytes,bytes)`](resolveCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct resolveReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Bytes, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::Bytes, + alloy::sol_types::private::Bytes, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: resolveCall) -> Self { + ( + value._challengedBlockNumber, + value._challengedCommitment, + value._resolveData, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for resolveCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _challengedBlockNumber: tuple.0, + _challengedCommitment: tuple.1, + _resolveData: tuple.2, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: resolveReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for resolveReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl resolveReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for resolveCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Bytes, + alloy::sol_types::sol_data::Bytes, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = resolveReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "resolve(uint256,bytes,bytes)"; + const SELECTOR: [u8; 4] = [122u8, 233u8, 41u8, 217u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize( + &self._challengedBlockNumber, + ), + ::tokenize( + &self._challengedCommitment, + ), + ::tokenize( + &self._resolveData, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + resolveReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `resolveWindow()` and selector `0x21cf39ee`. +```solidity +function resolveWindow() external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct resolveWindowCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`resolveWindow()`](resolveWindowCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct resolveWindowReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: resolveWindowCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for resolveWindowCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: resolveWindowReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for resolveWindowReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for resolveWindowCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "resolveWindow()"; + const SELECTOR: [u8; 4] = [33u8, 207u8, 57u8, 238u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: resolveWindowReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: resolveWindowReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `resolverRefundPercentage()` and selector `0x8ecb85e1`. +```solidity +function resolverRefundPercentage() external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct resolverRefundPercentageCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`resolverRefundPercentage()`](resolverRefundPercentageCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct resolverRefundPercentageReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: resolverRefundPercentageCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for resolverRefundPercentageCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: resolverRefundPercentageReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for resolverRefundPercentageReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for resolverRefundPercentageCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "resolverRefundPercentage()"; + const SELECTOR: [u8; 4] = [142u8, 203u8, 133u8, 225u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: resolverRefundPercentageReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: resolverRefundPercentageReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `setBondSize(uint256)` and selector `0xd7d04e54`. +```solidity +function setBondSize(uint256 _bondSize) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setBondSizeCall { + #[allow(missing_docs)] + pub _bondSize: alloy::sol_types::private::primitives::aliases::U256, + } + ///Container type for the return parameters of the [`setBondSize(uint256)`](setBondSizeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setBondSizeReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: setBondSizeCall) -> Self { + (value._bondSize,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for setBondSizeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _bondSize: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: setBondSizeReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for setBondSizeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl setBondSizeReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for setBondSizeCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = setBondSizeReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "setBondSize(uint256)"; + const SELECTOR: [u8; 4] = [215u8, 208u8, 78u8, 84u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._bondSize), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + setBondSizeReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `setResolverRefundPercentage(uint256)` and selector `0x336409fd`. +```solidity +function setResolverRefundPercentage(uint256 _resolverRefundPercentage) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setResolverRefundPercentageCall { + #[allow(missing_docs)] + pub _resolverRefundPercentage: alloy::sol_types::private::primitives::aliases::U256, + } + ///Container type for the return parameters of the [`setResolverRefundPercentage(uint256)`](setResolverRefundPercentageCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setResolverRefundPercentageReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: setResolverRefundPercentageCall) -> Self { + (value._resolverRefundPercentage,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for setResolverRefundPercentageCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _resolverRefundPercentage: tuple.0, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: setResolverRefundPercentageReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for setResolverRefundPercentageReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl setResolverRefundPercentageReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken< + '_, + > { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for setResolverRefundPercentageCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = setResolverRefundPercentageReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "setResolverRefundPercentage(uint256)"; + const SELECTOR: [u8; 4] = [51u8, 100u8, 9u8, 253u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize( + &self._resolverRefundPercentage, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + setResolverRefundPercentageReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `transferOwnership(address)` and selector `0xf2fde38b`. +```solidity +function transferOwnership(address newOwner) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct transferOwnershipCall { + #[allow(missing_docs)] + pub newOwner: alloy::sol_types::private::Address, + } + ///Container type for the return parameters of the [`transferOwnership(address)`](transferOwnershipCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct transferOwnershipReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: transferOwnershipCall) -> Self { + (value.newOwner,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for transferOwnershipCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { newOwner: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: transferOwnershipReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for transferOwnershipReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl transferOwnershipReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for transferOwnershipCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = transferOwnershipReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "transferOwnership(address)"; + const SELECTOR: [u8; 4] = [242u8, 253u8, 227u8, 139u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.newOwner, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + transferOwnershipReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `unlockBond(uint256,bytes)` and selector `0x93988233`. +```solidity +function unlockBond(uint256 _challengedBlockNumber, bytes memory _challengedCommitment) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct unlockBondCall { + #[allow(missing_docs)] + pub _challengedBlockNumber: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _challengedCommitment: alloy::sol_types::private::Bytes, + } + ///Container type for the return parameters of the [`unlockBond(uint256,bytes)`](unlockBondCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct unlockBondReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::Bytes, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: unlockBondCall) -> Self { + (value._challengedBlockNumber, value._challengedCommitment) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for unlockBondCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _challengedBlockNumber: tuple.0, + _challengedCommitment: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: unlockBondReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for unlockBondReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl unlockBondReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for unlockBondCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Bytes, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = unlockBondReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "unlockBond(uint256,bytes)"; + const SELECTOR: [u8; 4] = [147u8, 152u8, 130u8, 51u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize( + &self._challengedBlockNumber, + ), + ::tokenize( + &self._challengedCommitment, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + unlockBondReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `validateCommitment(bytes)` and selector `0x93fb1944`. +```solidity +function validateCommitment(bytes memory _commitment) external pure; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct validateCommitmentCall { + #[allow(missing_docs)] + pub _commitment: alloy::sol_types::private::Bytes, + } + ///Container type for the return parameters of the [`validateCommitment(bytes)`](validateCommitmentCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct validateCommitmentReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bytes,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Bytes,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: validateCommitmentCall) -> Self { + (value._commitment,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for validateCommitmentCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _commitment: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: validateCommitmentReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for validateCommitmentReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl validateCommitmentReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for validateCommitmentCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Bytes,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = validateCommitmentReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "validateCommitment(bytes)"; + const SELECTOR: [u8; 4] = [147u8, 251u8, 25u8, 68u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._commitment, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + validateCommitmentReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `variableResolutionCost()` and selector `0x23c30f59`. +```solidity +function variableResolutionCost() external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct variableResolutionCostCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`variableResolutionCost()`](variableResolutionCostCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct variableResolutionCostReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: variableResolutionCostCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for variableResolutionCostCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: variableResolutionCostReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for variableResolutionCostReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for variableResolutionCostCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "variableResolutionCost()"; + const SELECTOR: [u8; 4] = [35u8, 195u8, 15u8, 89u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: variableResolutionCostReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: variableResolutionCostReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `variableResolutionCostPrecision()` and selector `0x4ebaf3ce`. +```solidity +function variableResolutionCostPrecision() external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct variableResolutionCostPrecisionCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`variableResolutionCostPrecision()`](variableResolutionCostPrecisionCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct variableResolutionCostPrecisionReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: variableResolutionCostPrecisionCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for variableResolutionCostPrecisionCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: variableResolutionCostPrecisionReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for variableResolutionCostPrecisionReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for variableResolutionCostPrecisionCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "variableResolutionCostPrecision()"; + const SELECTOR: [u8; 4] = [78u8, 186u8, 243u8, 206u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: variableResolutionCostPrecisionReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: variableResolutionCostPrecisionReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `version()` and selector `0x54fd4d50`. +```solidity +function version() external view returns (string memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`version()`](versionCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for versionCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::String; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "version()"; + const SELECTOR: [u8; 4] = [84u8, 253u8, 77u8, 80u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `withdraw()` and selector `0x3ccfd60b`. +```solidity +function withdraw() external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct withdrawCall; + ///Container type for the return parameters of the [`withdraw()`](withdrawCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct withdrawReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: withdrawCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for withdrawCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: withdrawReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for withdrawReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl withdrawReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for withdrawCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = withdrawReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "withdraw()"; + const SELECTOR: [u8; 4] = [60u8, 207u8, 214u8, 11u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + withdrawReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + ///Container for all the [`DataAvailabilityChallenge`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum DataAvailabilityChallengeCalls { + #[allow(missing_docs)] + balances(balancesCall), + #[allow(missing_docs)] + bondSize(bondSizeCall), + #[allow(missing_docs)] + challenge(challengeCall), + #[allow(missing_docs)] + challengeWindow(challengeWindowCall), + #[allow(missing_docs)] + deposit(depositCall), + #[allow(missing_docs)] + fixedResolutionCost(fixedResolutionCostCall), + #[allow(missing_docs)] + getChallenge(getChallengeCall), + #[allow(missing_docs)] + getChallengeStatus(getChallengeStatusCall), + #[allow(missing_docs)] + initialize(initializeCall), + #[allow(missing_docs)] + owner(ownerCall), + #[allow(missing_docs)] + renounceOwnership(renounceOwnershipCall), + #[allow(missing_docs)] + resolve(resolveCall), + #[allow(missing_docs)] + resolveWindow(resolveWindowCall), + #[allow(missing_docs)] + resolverRefundPercentage(resolverRefundPercentageCall), + #[allow(missing_docs)] + setBondSize(setBondSizeCall), + #[allow(missing_docs)] + setResolverRefundPercentage(setResolverRefundPercentageCall), + #[allow(missing_docs)] + transferOwnership(transferOwnershipCall), + #[allow(missing_docs)] + unlockBond(unlockBondCall), + #[allow(missing_docs)] + validateCommitment(validateCommitmentCall), + #[allow(missing_docs)] + variableResolutionCost(variableResolutionCostCall), + #[allow(missing_docs)] + variableResolutionCostPrecision(variableResolutionCostPrecisionCall), + #[allow(missing_docs)] + version(versionCall), + #[allow(missing_docs)] + withdraw(withdrawCall), + } + impl DataAvailabilityChallengeCalls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [33u8, 207u8, 57u8, 238u8], + [35u8, 195u8, 15u8, 89u8], + [39u8, 226u8, 53u8, 227u8], + [51u8, 100u8, 9u8, 253u8], + [60u8, 207u8, 214u8, 11u8], + [78u8, 186u8, 243u8, 206u8], + [84u8, 253u8, 77u8, 80u8], + [112u8, 153u8, 197u8, 129u8], + [113u8, 80u8, 24u8, 166u8], + [121u8, 232u8, 168u8, 179u8], + [122u8, 233u8, 41u8, 217u8], + [132u8, 138u8, 251u8, 61u8], + [134u8, 26u8, 20u8, 18u8], + [141u8, 165u8, 203u8, 91u8], + [142u8, 203u8, 133u8, 225u8], + [147u8, 152u8, 130u8, 51u8], + [147u8, 251u8, 25u8, 68u8], + [149u8, 97u8, 24u8, 82u8], + [160u8, 58u8, 175u8, 191u8], + [208u8, 227u8, 13u8, 176u8], + [215u8, 208u8, 78u8, 84u8], + [242u8, 253u8, 227u8, 139u8], + [249u8, 42u8, 210u8, 25u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(resolveWindow), + ::core::stringify!(variableResolutionCost), + ::core::stringify!(balances), + ::core::stringify!(setResolverRefundPercentage), + ::core::stringify!(withdraw), + ::core::stringify!(variableResolutionCostPrecision), + ::core::stringify!(version), + ::core::stringify!(bondSize), + ::core::stringify!(renounceOwnership), + ::core::stringify!(getChallengeStatus), + ::core::stringify!(resolve), + ::core::stringify!(getChallenge), + ::core::stringify!(challengeWindow), + ::core::stringify!(owner), + ::core::stringify!(resolverRefundPercentage), + ::core::stringify!(unlockBond), + ::core::stringify!(validateCommitment), + ::core::stringify!(fixedResolutionCost), + ::core::stringify!(challenge), + ::core::stringify!(deposit), + ::core::stringify!(setBondSize), + ::core::stringify!(transferOwnership), + ::core::stringify!(initialize), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for DataAvailabilityChallengeCalls { + const NAME: &'static str = "DataAvailabilityChallengeCalls"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 23usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::balances(_) => ::SELECTOR, + Self::bondSize(_) => ::SELECTOR, + Self::challenge(_) => { + ::SELECTOR + } + Self::challengeWindow(_) => { + ::SELECTOR + } + Self::deposit(_) => ::SELECTOR, + Self::fixedResolutionCost(_) => { + ::SELECTOR + } + Self::getChallenge(_) => { + ::SELECTOR + } + Self::getChallengeStatus(_) => { + ::SELECTOR + } + Self::initialize(_) => { + ::SELECTOR + } + Self::owner(_) => ::SELECTOR, + Self::renounceOwnership(_) => { + ::SELECTOR + } + Self::resolve(_) => ::SELECTOR, + Self::resolveWindow(_) => { + ::SELECTOR + } + Self::resolverRefundPercentage(_) => { + ::SELECTOR + } + Self::setBondSize(_) => { + ::SELECTOR + } + Self::setResolverRefundPercentage(_) => { + ::SELECTOR + } + Self::transferOwnership(_) => { + ::SELECTOR + } + Self::unlockBond(_) => { + ::SELECTOR + } + Self::validateCommitment(_) => { + ::SELECTOR + } + Self::variableResolutionCost(_) => { + ::SELECTOR + } + Self::variableResolutionCostPrecision(_) => { + ::SELECTOR + } + Self::version(_) => ::SELECTOR, + Self::withdraw(_) => ::SELECTOR, + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn resolveWindow( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(DataAvailabilityChallengeCalls::resolveWindow) + } + resolveWindow + }, + { + fn variableResolutionCost( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(DataAvailabilityChallengeCalls::variableResolutionCost) + } + variableResolutionCost + }, + { + fn balances( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(DataAvailabilityChallengeCalls::balances) + } + balances + }, + { + fn setResolverRefundPercentage( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + DataAvailabilityChallengeCalls::setResolverRefundPercentage, + ) + } + setResolverRefundPercentage + }, + { + fn withdraw( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(DataAvailabilityChallengeCalls::withdraw) + } + withdraw + }, + { + fn variableResolutionCostPrecision( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + DataAvailabilityChallengeCalls::variableResolutionCostPrecision, + ) + } + variableResolutionCostPrecision + }, + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(DataAvailabilityChallengeCalls::version) + } + version + }, + { + fn bondSize( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(DataAvailabilityChallengeCalls::bondSize) + } + bondSize + }, + { + fn renounceOwnership( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(DataAvailabilityChallengeCalls::renounceOwnership) + } + renounceOwnership + }, + { + fn getChallengeStatus( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(DataAvailabilityChallengeCalls::getChallengeStatus) + } + getChallengeStatus + }, + { + fn resolve( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(DataAvailabilityChallengeCalls::resolve) + } + resolve + }, + { + fn getChallenge( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(DataAvailabilityChallengeCalls::getChallenge) + } + getChallenge + }, + { + fn challengeWindow( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(DataAvailabilityChallengeCalls::challengeWindow) + } + challengeWindow + }, + { + fn owner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(DataAvailabilityChallengeCalls::owner) + } + owner + }, + { + fn resolverRefundPercentage( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + DataAvailabilityChallengeCalls::resolverRefundPercentage, + ) + } + resolverRefundPercentage + }, + { + fn unlockBond( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(DataAvailabilityChallengeCalls::unlockBond) + } + unlockBond + }, + { + fn validateCommitment( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(DataAvailabilityChallengeCalls::validateCommitment) + } + validateCommitment + }, + { + fn fixedResolutionCost( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(DataAvailabilityChallengeCalls::fixedResolutionCost) + } + fixedResolutionCost + }, + { + fn challenge( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(DataAvailabilityChallengeCalls::challenge) + } + challenge + }, + { + fn deposit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(DataAvailabilityChallengeCalls::deposit) + } + deposit + }, + { + fn setBondSize( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(DataAvailabilityChallengeCalls::setBondSize) + } + setBondSize + }, + { + fn transferOwnership( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(DataAvailabilityChallengeCalls::transferOwnership) + } + transferOwnership + }, + { + fn initialize( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(DataAvailabilityChallengeCalls::initialize) + } + initialize + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn resolveWindow( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DataAvailabilityChallengeCalls::resolveWindow) + } + resolveWindow + }, + { + fn variableResolutionCost( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DataAvailabilityChallengeCalls::variableResolutionCost) + } + variableResolutionCost + }, + { + fn balances( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DataAvailabilityChallengeCalls::balances) + } + balances + }, + { + fn setResolverRefundPercentage( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + DataAvailabilityChallengeCalls::setResolverRefundPercentage, + ) + } + setResolverRefundPercentage + }, + { + fn withdraw( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DataAvailabilityChallengeCalls::withdraw) + } + withdraw + }, + { + fn variableResolutionCostPrecision( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + DataAvailabilityChallengeCalls::variableResolutionCostPrecision, + ) + } + variableResolutionCostPrecision + }, + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DataAvailabilityChallengeCalls::version) + } + version + }, + { + fn bondSize( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DataAvailabilityChallengeCalls::bondSize) + } + bondSize + }, + { + fn renounceOwnership( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DataAvailabilityChallengeCalls::renounceOwnership) + } + renounceOwnership + }, + { + fn getChallengeStatus( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DataAvailabilityChallengeCalls::getChallengeStatus) + } + getChallengeStatus + }, + { + fn resolve( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DataAvailabilityChallengeCalls::resolve) + } + resolve + }, + { + fn getChallenge( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DataAvailabilityChallengeCalls::getChallenge) + } + getChallenge + }, + { + fn challengeWindow( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DataAvailabilityChallengeCalls::challengeWindow) + } + challengeWindow + }, + { + fn owner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DataAvailabilityChallengeCalls::owner) + } + owner + }, + { + fn resolverRefundPercentage( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + DataAvailabilityChallengeCalls::resolverRefundPercentage, + ) + } + resolverRefundPercentage + }, + { + fn unlockBond( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DataAvailabilityChallengeCalls::unlockBond) + } + unlockBond + }, + { + fn validateCommitment( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DataAvailabilityChallengeCalls::validateCommitment) + } + validateCommitment + }, + { + fn fixedResolutionCost( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DataAvailabilityChallengeCalls::fixedResolutionCost) + } + fixedResolutionCost + }, + { + fn challenge( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DataAvailabilityChallengeCalls::challenge) + } + challenge + }, + { + fn deposit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DataAvailabilityChallengeCalls::deposit) + } + deposit + }, + { + fn setBondSize( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DataAvailabilityChallengeCalls::setBondSize) + } + setBondSize + }, + { + fn transferOwnership( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DataAvailabilityChallengeCalls::transferOwnership) + } + transferOwnership + }, + { + fn initialize( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DataAvailabilityChallengeCalls::initialize) + } + initialize + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::balances(inner) => { + ::abi_encoded_size(inner) + } + Self::bondSize(inner) => { + ::abi_encoded_size(inner) + } + Self::challenge(inner) => { + ::abi_encoded_size(inner) + } + Self::challengeWindow(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::deposit(inner) => { + ::abi_encoded_size(inner) + } + Self::fixedResolutionCost(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::getChallenge(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::getChallengeStatus(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::initialize(inner) => { + ::abi_encoded_size(inner) + } + Self::owner(inner) => { + ::abi_encoded_size(inner) + } + Self::renounceOwnership(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::resolve(inner) => { + ::abi_encoded_size(inner) + } + Self::resolveWindow(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::resolverRefundPercentage(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::setBondSize(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::setResolverRefundPercentage(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::transferOwnership(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::unlockBond(inner) => { + ::abi_encoded_size(inner) + } + Self::validateCommitment(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::variableResolutionCost(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::variableResolutionCostPrecision(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::version(inner) => { + ::abi_encoded_size(inner) + } + Self::withdraw(inner) => { + ::abi_encoded_size(inner) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::balances(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::bondSize(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::challenge(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::challengeWindow(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::deposit(inner) => { + ::abi_encode_raw(inner, out) + } + Self::fixedResolutionCost(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::getChallenge(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::getChallengeStatus(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::initialize(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::owner(inner) => { + ::abi_encode_raw(inner, out) + } + Self::renounceOwnership(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::resolve(inner) => { + ::abi_encode_raw(inner, out) + } + Self::resolveWindow(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::resolverRefundPercentage(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::setBondSize(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::setResolverRefundPercentage(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::transferOwnership(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::unlockBond(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::validateCommitment(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::variableResolutionCost(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::variableResolutionCostPrecision(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::version(inner) => { + ::abi_encode_raw(inner, out) + } + Self::withdraw(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + } + } + } + ///Container for all the [`DataAvailabilityChallenge`](self) custom errors. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum DataAvailabilityChallengeErrors { + #[allow(missing_docs)] + BondTooLow(BondTooLow), + #[allow(missing_docs)] + ChallengeExists(ChallengeExists), + #[allow(missing_docs)] + ChallengeNotActive(ChallengeNotActive), + #[allow(missing_docs)] + ChallengeNotExpired(ChallengeNotExpired), + #[allow(missing_docs)] + ChallengeWindowNotOpen(ChallengeWindowNotOpen), + #[allow(missing_docs)] + InvalidCommitmentLength(InvalidCommitmentLength), + #[allow(missing_docs)] + InvalidInputData(InvalidInputData), + #[allow(missing_docs)] + InvalidResolverRefundPercentage(InvalidResolverRefundPercentage), + #[allow(missing_docs)] + UnknownCommitmentType(UnknownCommitmentType), + #[allow(missing_docs)] + WithdrawalFailed(WithdrawalFailed), + } + impl DataAvailabilityChallengeErrors { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [0u8, 1u8, 85u8, 181u8], + [21u8, 31u8, 7u8, 254u8], + [22u8, 170u8, 78u8, 128u8], + [26u8, 11u8, 191u8, 159u8], + [39u8, 252u8, 217u8, 209u8], + [129u8, 255u8, 7u8, 19u8], + [155u8, 182u8, 198u8, 78u8], + [190u8, 177u8, 29u8, 59u8], + [249u8, 224u8, 209u8, 243u8], + [253u8, 154u8, 126u8, 91u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(BondTooLow), + ::core::stringify!(ChallengeNotExpired), + ::core::stringify!(InvalidResolverRefundPercentage), + ::core::stringify!(InvalidInputData), + ::core::stringify!(WithdrawalFailed), + ::core::stringify!(UnknownCommitmentType), + ::core::stringify!(ChallengeExists), + ::core::stringify!(ChallengeNotActive), + ::core::stringify!(ChallengeWindowNotOpen), + ::core::stringify!(InvalidCommitmentLength), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for DataAvailabilityChallengeErrors { + const NAME: &'static str = "DataAvailabilityChallengeErrors"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 10usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::BondTooLow(_) => { + ::SELECTOR + } + Self::ChallengeExists(_) => { + ::SELECTOR + } + Self::ChallengeNotActive(_) => { + ::SELECTOR + } + Self::ChallengeNotExpired(_) => { + ::SELECTOR + } + Self::ChallengeWindowNotOpen(_) => { + ::SELECTOR + } + Self::InvalidCommitmentLength(_) => { + ::SELECTOR + } + Self::InvalidInputData(_) => { + ::SELECTOR + } + Self::InvalidResolverRefundPercentage(_) => { + ::SELECTOR + } + Self::UnknownCommitmentType(_) => { + ::SELECTOR + } + Self::WithdrawalFailed(_) => { + ::SELECTOR + } + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn BondTooLow( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(DataAvailabilityChallengeErrors::BondTooLow) + } + BondTooLow + }, + { + fn ChallengeNotExpired( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(DataAvailabilityChallengeErrors::ChallengeNotExpired) + } + ChallengeNotExpired + }, + { + fn InvalidResolverRefundPercentage( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + DataAvailabilityChallengeErrors::InvalidResolverRefundPercentage, + ) + } + InvalidResolverRefundPercentage + }, + { + fn InvalidInputData( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(DataAvailabilityChallengeErrors::InvalidInputData) + } + InvalidInputData + }, + { + fn WithdrawalFailed( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(DataAvailabilityChallengeErrors::WithdrawalFailed) + } + WithdrawalFailed + }, + { + fn UnknownCommitmentType( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(DataAvailabilityChallengeErrors::UnknownCommitmentType) + } + UnknownCommitmentType + }, + { + fn ChallengeExists( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(DataAvailabilityChallengeErrors::ChallengeExists) + } + ChallengeExists + }, + { + fn ChallengeNotActive( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(DataAvailabilityChallengeErrors::ChallengeNotActive) + } + ChallengeNotActive + }, + { + fn ChallengeWindowNotOpen( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(DataAvailabilityChallengeErrors::ChallengeWindowNotOpen) + } + ChallengeWindowNotOpen + }, + { + fn InvalidCommitmentLength( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + DataAvailabilityChallengeErrors::InvalidCommitmentLength, + ) + } + InvalidCommitmentLength + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn BondTooLow( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DataAvailabilityChallengeErrors::BondTooLow) + } + BondTooLow + }, + { + fn ChallengeNotExpired( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DataAvailabilityChallengeErrors::ChallengeNotExpired) + } + ChallengeNotExpired + }, + { + fn InvalidResolverRefundPercentage( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + DataAvailabilityChallengeErrors::InvalidResolverRefundPercentage, + ) + } + InvalidResolverRefundPercentage + }, + { + fn InvalidInputData( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DataAvailabilityChallengeErrors::InvalidInputData) + } + InvalidInputData + }, + { + fn WithdrawalFailed( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DataAvailabilityChallengeErrors::WithdrawalFailed) + } + WithdrawalFailed + }, + { + fn UnknownCommitmentType( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DataAvailabilityChallengeErrors::UnknownCommitmentType) + } + UnknownCommitmentType + }, + { + fn ChallengeExists( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DataAvailabilityChallengeErrors::ChallengeExists) + } + ChallengeExists + }, + { + fn ChallengeNotActive( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DataAvailabilityChallengeErrors::ChallengeNotActive) + } + ChallengeNotActive + }, + { + fn ChallengeWindowNotOpen( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DataAvailabilityChallengeErrors::ChallengeWindowNotOpen) + } + ChallengeWindowNotOpen + }, + { + fn InvalidCommitmentLength( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + DataAvailabilityChallengeErrors::InvalidCommitmentLength, + ) + } + InvalidCommitmentLength + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::BondTooLow(inner) => { + ::abi_encoded_size(inner) + } + Self::ChallengeExists(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ChallengeNotActive(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ChallengeNotExpired(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ChallengeWindowNotOpen(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::InvalidCommitmentLength(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::InvalidInputData(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::InvalidResolverRefundPercentage(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::UnknownCommitmentType(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::WithdrawalFailed(inner) => { + ::abi_encoded_size( + inner, + ) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::BondTooLow(inner) => { + ::abi_encode_raw(inner, out) + } + Self::ChallengeExists(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ChallengeNotActive(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ChallengeNotExpired(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ChallengeWindowNotOpen(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidCommitmentLength(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidInputData(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidResolverRefundPercentage(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::UnknownCommitmentType(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::WithdrawalFailed(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + } + } + } + ///Container for all the [`DataAvailabilityChallenge`](self) events. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum DataAvailabilityChallengeEvents { + #[allow(missing_docs)] + BalanceChanged(BalanceChanged), + #[allow(missing_docs)] + ChallengeStatusChanged(ChallengeStatusChanged), + #[allow(missing_docs)] + Initialized(Initialized), + #[allow(missing_docs)] + OwnershipTransferred(OwnershipTransferred), + #[allow(missing_docs)] + RequiredBondSizeChanged(RequiredBondSizeChanged), + #[allow(missing_docs)] + ResolverRefundPercentageChanged(ResolverRefundPercentageChanged), + } + impl DataAvailabilityChallengeEvents { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 32usize]] = &[ + [ + 68u8, 104u8, 214u8, 149u8, 160u8, 56u8, 158u8, 95u8, 158u8, 142u8, 240u8, + 201u8, 174u8, 230u8, 216u8, 78u8, 116u8, 204u8, 13u8, 14u8, 10u8, 40u8, + 200u8, 65u8, 59u8, 173u8, 181u8, 70u8, 151u8, 209u8, 187u8, 174u8, + ], + [ + 127u8, 38u8, 184u8, 63u8, 249u8, 110u8, 31u8, 43u8, 106u8, 104u8, 47u8, + 19u8, 56u8, 82u8, 246u8, 121u8, 138u8, 9u8, 196u8, 101u8, 218u8, 149u8, + 146u8, 20u8, 96u8, 206u8, 251u8, 56u8, 71u8, 64u8, 36u8, 152u8, + ], + [ + 139u8, 224u8, 7u8, 156u8, 83u8, 22u8, 89u8, 20u8, 19u8, 68u8, 205u8, + 31u8, 208u8, 164u8, 242u8, 132u8, 25u8, 73u8, 127u8, 151u8, 34u8, 163u8, + 218u8, 175u8, 227u8, 180u8, 24u8, 111u8, 107u8, 100u8, 87u8, 224u8, + ], + [ + 164u8, 72u8, 175u8, 218u8, 126u8, 161u8, 227u8, 167u8, 161u8, 15u8, + 202u8, 176u8, 194u8, 159u8, 233u8, 169u8, 221u8, 133u8, 121u8, 21u8, 3u8, + 191u8, 1u8, 113u8, 242u8, 129u8, 82u8, 21u8, 81u8, 199u8, 236u8, 5u8, + ], + [ + 187u8, 216u8, 96u8, 93u8, 232u8, 247u8, 115u8, 254u8, 219u8, 53u8, 92u8, + 47u8, 236u8, 212u8, 182u8, 178u8, 225u8, 106u8, 16u8, 164u8, 78u8, 102u8, + 118u8, 166u8, 59u8, 55u8, 90u8, 200u8, 246u8, 147u8, 117u8, 141u8, + ], + [ + 197u8, 216u8, 198u8, 48u8, 186u8, 47u8, 218u8, 203u8, 29u8, 178u8, 76u8, + 69u8, 153u8, 223u8, 120u8, 199u8, 251u8, 140u8, 249u8, 123u8, 90u8, + 236u8, 222u8, 52u8, 147u8, 149u8, 151u8, 246u8, 105u8, 123u8, 177u8, + 173u8, + ], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(RequiredBondSizeChanged), + ::core::stringify!(Initialized), + ::core::stringify!(OwnershipTransferred), + ::core::stringify!(BalanceChanged), + ::core::stringify!(ResolverRefundPercentageChanged), + ::core::stringify!(ChallengeStatusChanged), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolEventInterface for DataAvailabilityChallengeEvents { + const NAME: &'static str = "DataAvailabilityChallengeEvents"; + const COUNT: usize = 6usize; + fn decode_raw_log( + topics: &[alloy_sol_types::Word], + data: &[u8], + ) -> alloy_sol_types::Result { + match topics.first().copied() { + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::BalanceChanged) + } + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::ChallengeStatusChanged) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::Initialized) + } + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::OwnershipTransferred) + } + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::RequiredBondSizeChanged) + } + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::ResolverRefundPercentageChanged) + } + _ => { + alloy_sol_types::private::Err(alloy_sol_types::Error::InvalidLog { + name: ::NAME, + log: alloy_sol_types::private::Box::new( + alloy_sol_types::private::LogData::new_unchecked( + topics.to_vec(), + data.to_vec().into(), + ), + ), + }) + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for DataAvailabilityChallengeEvents { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + match self { + Self::BalanceChanged(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::ChallengeStatusChanged(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::Initialized(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::OwnershipTransferred(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::RequiredBondSizeChanged(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::ResolverRefundPercentageChanged(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + } + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + match self { + Self::BalanceChanged(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::ChallengeStatusChanged(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::Initialized(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::OwnershipTransferred(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::RequiredBondSizeChanged(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::ResolverRefundPercentageChanged(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`DataAvailabilityChallenge`](self) contract instance. + +See the [wrapper's documentation](`DataAvailabilityChallengeInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> DataAvailabilityChallengeInstance { + DataAvailabilityChallengeInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + DataAvailabilityChallengeInstance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + DataAvailabilityChallengeInstance::::deploy_builder(__provider) + } + /**A [`DataAvailabilityChallenge`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`DataAvailabilityChallenge`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct DataAvailabilityChallengeInstance< + P, + N = alloy_contract::private::Ethereum, + > { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for DataAvailabilityChallengeInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("DataAvailabilityChallengeInstance") + .field(&self.address) + .finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > DataAvailabilityChallengeInstance { + /**Creates a new wrapper around an on-chain [`DataAvailabilityChallenge`](self) contract instance. + +See the [wrapper's documentation](`DataAvailabilityChallengeInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl DataAvailabilityChallengeInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> DataAvailabilityChallengeInstance { + DataAvailabilityChallengeInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > DataAvailabilityChallengeInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`balances`] function. + pub fn balances( + &self, + _0: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, balancesCall, N> { + self.call_builder(&balancesCall(_0)) + } + ///Creates a new call builder for the [`bondSize`] function. + pub fn bondSize(&self) -> alloy_contract::SolCallBuilder<&P, bondSizeCall, N> { + self.call_builder(&bondSizeCall) + } + ///Creates a new call builder for the [`challenge`] function. + pub fn challenge( + &self, + _challengedBlockNumber: alloy::sol_types::private::primitives::aliases::U256, + _challengedCommitment: alloy::sol_types::private::Bytes, + ) -> alloy_contract::SolCallBuilder<&P, challengeCall, N> { + self.call_builder( + &challengeCall { + _challengedBlockNumber, + _challengedCommitment, + }, + ) + } + ///Creates a new call builder for the [`challengeWindow`] function. + pub fn challengeWindow( + &self, + ) -> alloy_contract::SolCallBuilder<&P, challengeWindowCall, N> { + self.call_builder(&challengeWindowCall) + } + ///Creates a new call builder for the [`deposit`] function. + pub fn deposit(&self) -> alloy_contract::SolCallBuilder<&P, depositCall, N> { + self.call_builder(&depositCall) + } + ///Creates a new call builder for the [`fixedResolutionCost`] function. + pub fn fixedResolutionCost( + &self, + ) -> alloy_contract::SolCallBuilder<&P, fixedResolutionCostCall, N> { + self.call_builder(&fixedResolutionCostCall) + } + ///Creates a new call builder for the [`getChallenge`] function. + pub fn getChallenge( + &self, + _challengedBlockNumber: alloy::sol_types::private::primitives::aliases::U256, + _challengedCommitment: alloy::sol_types::private::Bytes, + ) -> alloy_contract::SolCallBuilder<&P, getChallengeCall, N> { + self.call_builder( + &getChallengeCall { + _challengedBlockNumber, + _challengedCommitment, + }, + ) + } + ///Creates a new call builder for the [`getChallengeStatus`] function. + pub fn getChallengeStatus( + &self, + _challengedBlockNumber: alloy::sol_types::private::primitives::aliases::U256, + _challengedCommitment: alloy::sol_types::private::Bytes, + ) -> alloy_contract::SolCallBuilder<&P, getChallengeStatusCall, N> { + self.call_builder( + &getChallengeStatusCall { + _challengedBlockNumber, + _challengedCommitment, + }, + ) + } + ///Creates a new call builder for the [`initialize`] function. + pub fn initialize( + &self, + _owner: alloy::sol_types::private::Address, + _challengeWindow: alloy::sol_types::private::primitives::aliases::U256, + _resolveWindow: alloy::sol_types::private::primitives::aliases::U256, + _bondSize: alloy::sol_types::private::primitives::aliases::U256, + _resolverRefundPercentage: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, initializeCall, N> { + self.call_builder( + &initializeCall { + _owner, + _challengeWindow, + _resolveWindow, + _bondSize, + _resolverRefundPercentage, + }, + ) + } + ///Creates a new call builder for the [`owner`] function. + pub fn owner(&self) -> alloy_contract::SolCallBuilder<&P, ownerCall, N> { + self.call_builder(&ownerCall) + } + ///Creates a new call builder for the [`renounceOwnership`] function. + pub fn renounceOwnership( + &self, + ) -> alloy_contract::SolCallBuilder<&P, renounceOwnershipCall, N> { + self.call_builder(&renounceOwnershipCall) + } + ///Creates a new call builder for the [`resolve`] function. + pub fn resolve( + &self, + _challengedBlockNumber: alloy::sol_types::private::primitives::aliases::U256, + _challengedCommitment: alloy::sol_types::private::Bytes, + _resolveData: alloy::sol_types::private::Bytes, + ) -> alloy_contract::SolCallBuilder<&P, resolveCall, N> { + self.call_builder( + &resolveCall { + _challengedBlockNumber, + _challengedCommitment, + _resolveData, + }, + ) + } + ///Creates a new call builder for the [`resolveWindow`] function. + pub fn resolveWindow( + &self, + ) -> alloy_contract::SolCallBuilder<&P, resolveWindowCall, N> { + self.call_builder(&resolveWindowCall) + } + ///Creates a new call builder for the [`resolverRefundPercentage`] function. + pub fn resolverRefundPercentage( + &self, + ) -> alloy_contract::SolCallBuilder<&P, resolverRefundPercentageCall, N> { + self.call_builder(&resolverRefundPercentageCall) + } + ///Creates a new call builder for the [`setBondSize`] function. + pub fn setBondSize( + &self, + _bondSize: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, setBondSizeCall, N> { + self.call_builder(&setBondSizeCall { _bondSize }) + } + ///Creates a new call builder for the [`setResolverRefundPercentage`] function. + pub fn setResolverRefundPercentage( + &self, + _resolverRefundPercentage: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, setResolverRefundPercentageCall, N> { + self.call_builder( + &setResolverRefundPercentageCall { + _resolverRefundPercentage, + }, + ) + } + ///Creates a new call builder for the [`transferOwnership`] function. + pub fn transferOwnership( + &self, + newOwner: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, transferOwnershipCall, N> { + self.call_builder(&transferOwnershipCall { newOwner }) + } + ///Creates a new call builder for the [`unlockBond`] function. + pub fn unlockBond( + &self, + _challengedBlockNumber: alloy::sol_types::private::primitives::aliases::U256, + _challengedCommitment: alloy::sol_types::private::Bytes, + ) -> alloy_contract::SolCallBuilder<&P, unlockBondCall, N> { + self.call_builder( + &unlockBondCall { + _challengedBlockNumber, + _challengedCommitment, + }, + ) + } + ///Creates a new call builder for the [`validateCommitment`] function. + pub fn validateCommitment( + &self, + _commitment: alloy::sol_types::private::Bytes, + ) -> alloy_contract::SolCallBuilder<&P, validateCommitmentCall, N> { + self.call_builder( + &validateCommitmentCall { + _commitment, + }, + ) + } + ///Creates a new call builder for the [`variableResolutionCost`] function. + pub fn variableResolutionCost( + &self, + ) -> alloy_contract::SolCallBuilder<&P, variableResolutionCostCall, N> { + self.call_builder(&variableResolutionCostCall) + } + ///Creates a new call builder for the [`variableResolutionCostPrecision`] function. + pub fn variableResolutionCostPrecision( + &self, + ) -> alloy_contract::SolCallBuilder<&P, variableResolutionCostPrecisionCall, N> { + self.call_builder(&variableResolutionCostPrecisionCall) + } + ///Creates a new call builder for the [`version`] function. + pub fn version(&self) -> alloy_contract::SolCallBuilder<&P, versionCall, N> { + self.call_builder(&versionCall) + } + ///Creates a new call builder for the [`withdraw`] function. + pub fn withdraw(&self) -> alloy_contract::SolCallBuilder<&P, withdrawCall, N> { + self.call_builder(&withdrawCall) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > DataAvailabilityChallengeInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + ///Creates a new event filter for the [`BalanceChanged`] event. + pub fn BalanceChanged_filter( + &self, + ) -> alloy_contract::Event<&P, BalanceChanged, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`ChallengeStatusChanged`] event. + pub fn ChallengeStatusChanged_filter( + &self, + ) -> alloy_contract::Event<&P, ChallengeStatusChanged, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`Initialized`] event. + pub fn Initialized_filter(&self) -> alloy_contract::Event<&P, Initialized, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`OwnershipTransferred`] event. + pub fn OwnershipTransferred_filter( + &self, + ) -> alloy_contract::Event<&P, OwnershipTransferred, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`RequiredBondSizeChanged`] event. + pub fn RequiredBondSizeChanged_filter( + &self, + ) -> alloy_contract::Event<&P, RequiredBondSizeChanged, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`ResolverRefundPercentageChanged`] event. + pub fn ResolverRefundPercentageChanged_filter( + &self, + ) -> alloy_contract::Event<&P, ResolverRefundPercentageChanged, N> { + self.event_filter::() + } + } +} diff --git a/bindings/rust/src/delayed_weth.rs b/bindings/rust/src/delayed_weth.rs new file mode 100644 index 000000000..b13285ec2 --- /dev/null +++ b/bindings/rust/src/delayed_weth.rs @@ -0,0 +1,7595 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface DelayedWETH { + error ProxyAdminOwnedBase_NotProxyAdmin(); + error ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner(); + error ProxyAdminOwnedBase_NotProxyAdminOwner(); + error ProxyAdminOwnedBase_NotResolvedDelegateProxy(); + error ProxyAdminOwnedBase_NotSharedProxyAdminOwner(); + error ProxyAdminOwnedBase_ProxyAdminNotFound(); + error ReinitializableBase_ZeroInitVersion(); + + event Approval(address indexed src, address indexed guy, uint256 wad); + event Deposit(address indexed dst, uint256 wad); + event Initialized(uint8 version); + event Transfer(address indexed src, address indexed dst, uint256 wad); + event Withdrawal(address indexed src, uint256 wad); + + constructor(uint256 _delay); + + fallback() external payable; + + receive() external payable; + + function allowance(address owner, address spender) external view returns (uint256); + function approve(address guy, uint256 wad) external returns (bool); + function balanceOf(address src) external view returns (uint256); + function config() external view returns (address); + function decimals() external view returns (uint8); + function delay() external view returns (uint256); + function deposit() external payable; + function hold(address _guy, uint256 _wad) external; + function hold(address _guy) external; + function initVersion() external view returns (uint8); + function initialize(address _systemConfig) external; + function name() external view returns (string memory); + function proxyAdmin() external view returns (address); + function proxyAdminOwner() external view returns (address); + function recover(uint256 _wad) external; + function symbol() external view returns (string memory); + function systemConfig() external view returns (address); + function totalSupply() external view returns (uint256); + function transfer(address dst, uint256 wad) external returns (bool); + function transferFrom(address src, address dst, uint256 wad) external returns (bool); + function unlock(address _guy, uint256 _wad) external; + function version() external view returns (string memory); + function withdraw(uint256 _wad) external; + function withdraw(address _guy, uint256 _wad) external; + function withdrawals(address, address) external view returns (uint256 amount, uint256 timestamp); +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "constructor", + "inputs": [ + { + "name": "_delay", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "fallback", + "stateMutability": "payable" + }, + { + "type": "receive", + "stateMutability": "payable" + }, + { + "type": "function", + "name": "allowance", + "inputs": [ + { + "name": "owner", + "type": "address", + "internalType": "address" + }, + { + "name": "spender", + "type": "address", + "internalType": "address" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "approve", + "inputs": [ + { + "name": "guy", + "type": "address", + "internalType": "address" + }, + { + "name": "wad", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "balanceOf", + "inputs": [ + { + "name": "src", + "type": "address", + "internalType": "address" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "config", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract ISuperchainConfig" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "decimals", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint8", + "internalType": "uint8" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "delay", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "deposit", + "inputs": [], + "outputs": [], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "hold", + "inputs": [ + { + "name": "_guy", + "type": "address", + "internalType": "address" + }, + { + "name": "_wad", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "hold", + "inputs": [ + { + "name": "_guy", + "type": "address", + "internalType": "address" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "initVersion", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint8", + "internalType": "uint8" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "initialize", + "inputs": [ + { + "name": "_systemConfig", + "type": "address", + "internalType": "contract ISystemConfig" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "name", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "proxyAdmin", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract IProxyAdmin" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "proxyAdminOwner", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "recover", + "inputs": [ + { + "name": "_wad", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "symbol", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "systemConfig", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract ISystemConfig" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "totalSupply", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "transfer", + "inputs": [ + { + "name": "dst", + "type": "address", + "internalType": "address" + }, + { + "name": "wad", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "transferFrom", + "inputs": [ + { + "name": "src", + "type": "address", + "internalType": "address" + }, + { + "name": "dst", + "type": "address", + "internalType": "address" + }, + { + "name": "wad", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "unlock", + "inputs": [ + { + "name": "_guy", + "type": "address", + "internalType": "address" + }, + { + "name": "_wad", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "version", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "withdraw", + "inputs": [ + { + "name": "_wad", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "withdraw", + "inputs": [ + { + "name": "_guy", + "type": "address", + "internalType": "address" + }, + { + "name": "_wad", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "withdrawals", + "inputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + }, + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "outputs": [ + { + "name": "amount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "timestamp", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "event", + "name": "Approval", + "inputs": [ + { + "name": "src", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "guy", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "wad", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "Deposit", + "inputs": [ + { + "name": "dst", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "wad", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "Initialized", + "inputs": [ + { + "name": "version", + "type": "uint8", + "indexed": false, + "internalType": "uint8" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "Transfer", + "inputs": [ + { + "name": "src", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "dst", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "wad", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "Withdrawal", + "inputs": [ + { + "name": "src", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "wad", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "error", + "name": "ProxyAdminOwnedBase_NotProxyAdmin", + "inputs": [] + }, + { + "type": "error", + "name": "ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner", + "inputs": [] + }, + { + "type": "error", + "name": "ProxyAdminOwnedBase_NotProxyAdminOwner", + "inputs": [] + }, + { + "type": "error", + "name": "ProxyAdminOwnedBase_NotResolvedDelegateProxy", + "inputs": [] + }, + { + "type": "error", + "name": "ProxyAdminOwnedBase_NotSharedProxyAdminOwner", + "inputs": [] + }, + { + "type": "error", + "name": "ProxyAdminOwnedBase_ProxyAdminNotFound", + "inputs": [] + }, + { + "type": "error", + "name": "ReinitializableBase_ZeroInitVersion", + "inputs": [] + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod DelayedWETH { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x60c060405234801561001057600080fd5b5060405161161138038061161183398101604081905261002f91610107565b600160805260a0819052610041610047565b50610120565b600054610100900460ff16156100b35760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff9081161015610105576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b60006020828403121561011957600080fd5b5051919050565b60805160a0516114be610153600039600081816103b5015261109f0152600081816103240152610cf301526114be6000f3fe60806040526004361061019a5760003560e01c806370a08231116100e1578063a9059cbb1161008a578063d0e30db011610064578063d0e30db0146101a9578063dad544e01461055e578063dd62ed3e14610573578063f3fef3a3146105b9576101a9565b8063a9059cbb146104ca578063c4d66de8146104ea578063cd47bde11461050a576101a9565b806395d89b41116100bb57806395d89b4114610444578063977a5ec51461048a578063a7e21e80146104aa576101a9565b806370a08231146103d957806379502c551461040f5780637eee288d14610424576101a9565b8063313ce567116101435780633e47158c1161011d5780633e47158c1461034857806354fd4d501461035d5780636a42b8f8146103a6576101a9565b8063313ce567146102b657806333d7e2bd146102dd57806338d38c9714610315576101a9565b806318160ddd1161017457806318160ddd1461025957806323b872dd146102765780632e1a7d4d14610296576101a9565b806306fdde03146101b1578063095ea7b3146102095780630ca3568214610239576101a9565b366101a9576101a76105d9565b005b6101a76105d9565b3480156101bd57600080fd5b5060408051808201909152600d81527f577261707065642045746865720000000000000000000000000000000000000060208201525b6040516102009190611273565b60405180910390f35b34801561021557600080fd5b506102296102243660046112fb565b610634565b6040519015158152602001610200565b34801561024557600080fd5b506101a7610254366004611327565b6106a0565b34801561026557600080fd5b50475b604051908152602001610200565b34801561028257600080fd5b50610229610291366004611340565b6107be565b3480156102a257600080fd5b506101a76102b1366004611327565b610936565b3480156102c257600080fd5b506102cb601281565b60405160ff9091168152602001610200565b3480156102e957600080fd5b506004546102fd906001600160a01b031681565b6040516001600160a01b039091168152602001610200565b34801561032157600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006102cb565b34801561035457600080fd5b506102fd610943565b34801561036957600080fd5b506101f36040518060400160405280600581526020017f312e352e3000000000000000000000000000000000000000000000000000000081525081565b3480156103b257600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610268565b3480156103e557600080fd5b506102686103f4366004611381565b6001600160a01b031660009081526001602052604090205490565b34801561041b57600080fd5b506102fd610b27565b34801561043057600080fd5b506101a761043f3660046112fb565b610ba5565b34801561045057600080fd5b5060408051808201909152600481527f574554480000000000000000000000000000000000000000000000000000000060208201526101f3565b34801561049657600080fd5b506101a76104a53660046112fb565b610bec565b3480156104b657600080fd5b506101a76104c5366004611381565b610cba565b3480156104d657600080fd5b506102296104e53660046112fb565b610cdd565b3480156104f657600080fd5b506101a7610505366004611381565b610cf1565b34801561051657600080fd5b5061054961052536600461139e565b60036020908152600092835260408084209091529082529020805460019091015482565b60408051928352602083019190915201610200565b34801561056a57600080fd5b506102fd610e71565b34801561057f57600080fd5b5061026861058e36600461139e565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3480156105c557600080fd5b506101a76105d43660046112fb565b610eb8565b33600090815260016020526040812080543492906105f8908490611406565b909155505060405134815233907fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c9060200160405180910390a2565b3360008181526002602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061068f9086815260200190565b60405180910390a350600192915050565b6106a8610e71565b6001600160a01b0316336001600160a01b03161461070d5760405162461bcd60e51b815260206004820152601660248201527f44656c61796564574554483a206e6f74206f776e65720000000000000000000060448201526064015b60405180910390fd5b600047821061071c574761071e565b815b604051909150600090339083908381818185875af1925050503d8060008114610763576040519150601f19603f3d011682016040523d82523d6000602084013e610768565b606091505b50509050806107b95760405162461bcd60e51b815260206004820152601b60248201527f44656c61796564574554483a207265636f766572206661696c656400000000006044820152606401610704565b505050565b6001600160a01b0383166000908152600160205260408120548211156107e357600080fd5b6001600160a01b038416600081815260026020908152604080832033808552925290912054911480159061083757507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114155b15610882578281101561084957600080fd5b6001600160a01b03851660009081526002602090815260408083203384529091528120805485929061087c90849061141e565b90915550505b6001600160a01b038516600090815260016020526040812080548592906108aa90849061141e565b90915550506001600160a01b038416600090815260016020526040812080548592906108d7908490611406565b92505081905550836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161092391815260200190565b60405180910390a3506001949350505050565b6109403382610eb8565b50565b60008061096e7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b90506001600160a01b0381161561098457919050565b6040518060400160405280601a81526020017f4f564d5f4c3143726f7373446f6d61696e4d657373656e6765720000000000008152505160026109c79190611435565b604080513060208201526000918101919091527f4f564d5f4c3143726f7373446f6d61696e4d657373656e6765720000000000009190911790610a22906060015b604051602081830303815290604052805190602001205490565b14610a59576040517f54e433cd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60408051306020820152600191810191909152600090610a7b90606001610a08565b90506001600160a01b03811615610af557806001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610aca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aee9190611472565b9250505090565b6040517f332144db00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600460009054906101000a90046001600160a01b03166001600160a01b03166335e80ab36040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b7c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ba09190611472565b905090565b3360009081526003602090815260408083206001600160a01b03861684529091528120426001820155805490918391839190610be2908490611406565b9091555050505050565b610bf4610e71565b6001600160a01b0316336001600160a01b031614610c545760405162461bcd60e51b815260206004820152601660248201527f44656c61796564574554483a206e6f74206f776e6572000000000000000000006044820152606401610704565b6001600160a01b03821660008181526002602090815260408083203380855290835292819020859055518481529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a36107b98233836107be565b610940816104a5836001600160a01b031660009081526001602052604090205490565b6000610cea3384846107be565b9392505050565b7f0000000000000000000000000000000000000000000000000000000000000000600054610100900460ff16158015610d31575060005460ff8083169116105b610da35760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610704565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001660ff831617610100179055610ddc611164565b600480547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b038416179055600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b6000610e7b610943565b6001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b7c573d6000803e3d6000fd5b60048054604080517f5c975abb00000000000000000000000000000000000000000000000000000000815290516001600160a01b0390921692635c975abb9282820192602092908290030181865afa158015610f18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f3c919061148f565b15610f895760405162461bcd60e51b815260206004820152601f60248201527f44656c61796564574554483a20636f6e747261637420697320706175736564006044820152606401610704565b3360009081526003602090815260408083206001600160a01b0386168452909152902080548211156110235760405162461bcd60e51b815260206004820152602d60248201527f44656c61796564574554483a20696e73756666696369656e7420756e6c6f636b60448201527f6564207769746864726177616c000000000000000000000000000000000000006064820152608401610704565b600081600101541161109c5760405162461bcd60e51b8152602060048201526024808201527f44656c61796564574554483a207769746864726177616c206e6f7420756e6c6f60448201527f636b6564000000000000000000000000000000000000000000000000000000006064820152608401610704565b427f000000000000000000000000000000000000000000000000000000000000000082600101546110cd9190611406565b11156111415760405162461bcd60e51b815260206004820152602560248201527f44656c61796564574554483a207769746864726177616c2064656c6179206e6f60448201527f74206d65740000000000000000000000000000000000000000000000000000006064820152608401610704565b81816000016000828254611155919061141e565b909155506107b99050826111cd565b3361116d610943565b6001600160a01b031614158015611194575033611188610e71565b6001600160a01b031614155b156111cb576040517fc4050a2600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b336000908152600160205260409020548111156111e957600080fd5b336000908152600160205260408120805483929061120890849061141e565b9091555050604051339082156108fc029083906000818181858888f1935050505015801561123a573d6000803e3d6000fd5b5060405181815233907f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b659060200160405180910390a250565b600060208083528351808285015260005b818110156112a057858101830151858201604001528201611284565b818111156112b2576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b6001600160a01b038116811461094057600080fd5b6000806040838503121561130e57600080fd5b8235611319816112e6565b946020939093013593505050565b60006020828403121561133957600080fd5b5035919050565b60008060006060848603121561135557600080fd5b8335611360816112e6565b92506020840135611370816112e6565b929592945050506040919091013590565b60006020828403121561139357600080fd5b8135610cea816112e6565b600080604083850312156113b157600080fd5b82356113bc816112e6565b915060208301356113cc816112e6565b809150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008219821115611419576114196113d7565b500190565b600082821015611430576114306113d7565b500390565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561146d5761146d6113d7565b500290565b60006020828403121561148457600080fd5b8151610cea816112e6565b6000602082840312156114a157600080fd5b81518015158114610cea57600080fdfea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\xC0`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`@Qa\x16\x118\x03\x80a\x16\x11\x839\x81\x01`@\x81\x90Ra\0/\x91a\x01\x07V[`\x01`\x80R`\xA0\x81\x90Ra\0Aa\0GV[Pa\x01 V[`\0Ta\x01\0\x90\x04`\xFF\x16\x15a\0\xB3W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`'`$\x82\x01R\x7FInitializable: contract is initi`D\x82\x01Rfalizing`\xC8\x1B`d\x82\x01R`\x84\x01`@Q\x80\x91\x03\x90\xFD[`\0T`\xFF\x90\x81\x16\x10\x15a\x01\x05W`\0\x80T`\xFF\x19\x16`\xFF\x90\x81\x17\x90\x91U`@Q\x90\x81R\x7F\x7F&\xB8?\xF9n\x1F+jh/\x138R\xF6y\x8A\t\xC4e\xDA\x95\x92\x14`\xCE\xFB8G@$\x98\x90` \x01`@Q\x80\x91\x03\x90\xA1[V[`\0` \x82\x84\x03\x12\x15a\x01\x19W`\0\x80\xFD[PQ\x91\x90PV[`\x80Q`\xA0Qa\x14\xBEa\x01S`\09`\0\x81\x81a\x03\xB5\x01Ra\x10\x9F\x01R`\0\x81\x81a\x03$\x01Ra\x0C\xF3\x01Ra\x14\xBE`\0\xF3\xFE`\x80`@R`\x046\x10a\x01\x9AW`\x005`\xE0\x1C\x80cp\xA0\x821\x11a\0\xE1W\x80c\xA9\x05\x9C\xBB\x11a\0\x8AW\x80c\xD0\xE3\r\xB0\x11a\0dW\x80c\xD0\xE3\r\xB0\x14a\x01\xA9W\x80c\xDA\xD5D\xE0\x14a\x05^W\x80c\xDDb\xED>\x14a\x05sW\x80c\xF3\xFE\xF3\xA3\x14a\x05\xB9Wa\x01\xA9V[\x80c\xA9\x05\x9C\xBB\x14a\x04\xCAW\x80c\xC4\xD6m\xE8\x14a\x04\xEAW\x80c\xCDG\xBD\xE1\x14a\x05\nWa\x01\xA9V[\x80c\x95\xD8\x9BA\x11a\0\xBBW\x80c\x95\xD8\x9BA\x14a\x04DW\x80c\x97z^\xC5\x14a\x04\x8AW\x80c\xA7\xE2\x1E\x80\x14a\x04\xAAWa\x01\xA9V[\x80cp\xA0\x821\x14a\x03\xD9W\x80cyP,U\x14a\x04\x0FW\x80c~\xEE(\x8D\x14a\x04$Wa\x01\xA9V[\x80c1<\xE5g\x11a\x01CW\x80c>G\x15\x8C\x11a\x01\x1DW\x80c>G\x15\x8C\x14a\x03HW\x80cT\xFDMP\x14a\x03]W\x80cjB\xB8\xF8\x14a\x03\xA6Wa\x01\xA9V[\x80c1<\xE5g\x14a\x02\xB6W\x80c3\xD7\xE2\xBD\x14a\x02\xDDW\x80c8\xD3\x8C\x97\x14a\x03\x15Wa\x01\xA9V[\x80c\x18\x16\r\xDD\x11a\x01tW\x80c\x18\x16\r\xDD\x14a\x02YW\x80c#\xB8r\xDD\x14a\x02vW\x80c.\x1A}M\x14a\x02\x96Wa\x01\xA9V[\x80c\x06\xFD\xDE\x03\x14a\x01\xB1W\x80c\t^\xA7\xB3\x14a\x02\tW\x80c\x0C\xA3V\x82\x14a\x029Wa\x01\xA9V[6a\x01\xA9Wa\x01\xA7a\x05\xD9V[\0[a\x01\xA7a\x05\xD9V[4\x80\x15a\x01\xBDW`\0\x80\xFD[P`@\x80Q\x80\x82\x01\x90\x91R`\r\x81R\x7FWrapped Ether\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0` \x82\x01R[`@Qa\x02\0\x91\x90a\x12sV[`@Q\x80\x91\x03\x90\xF3[4\x80\x15a\x02\x15W`\0\x80\xFD[Pa\x02)a\x02$6`\x04a\x12\xFBV[a\x064V[`@Q\x90\x15\x15\x81R` \x01a\x02\0V[4\x80\x15a\x02EW`\0\x80\xFD[Pa\x01\xA7a\x02T6`\x04a\x13'V[a\x06\xA0V[4\x80\x15a\x02eW`\0\x80\xFD[PG[`@Q\x90\x81R` \x01a\x02\0V[4\x80\x15a\x02\x82W`\0\x80\xFD[Pa\x02)a\x02\x916`\x04a\x13@V[a\x07\xBEV[4\x80\x15a\x02\xA2W`\0\x80\xFD[Pa\x01\xA7a\x02\xB16`\x04a\x13'V[a\t6V[4\x80\x15a\x02\xC2W`\0\x80\xFD[Pa\x02\xCB`\x12\x81V[`@Q`\xFF\x90\x91\x16\x81R` \x01a\x02\0V[4\x80\x15a\x02\xE9W`\0\x80\xFD[P`\x04Ta\x02\xFD\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x01a\x02\0V[4\x80\x15a\x03!W`\0\x80\xFD[P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x02\xCBV[4\x80\x15a\x03TW`\0\x80\xFD[Pa\x02\xFDa\tCV[4\x80\x15a\x03iW`\0\x80\xFD[Pa\x01\xF3`@Q\x80`@\x01`@R\x80`\x05\x81R` \x01\x7F1.5.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\x81RP\x81V[4\x80\x15a\x03\xB2W`\0\x80\xFD[P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x02hV[4\x80\x15a\x03\xE5W`\0\x80\xFD[Pa\x02ha\x03\xF46`\x04a\x13\x81V[`\x01`\x01`\xA0\x1B\x03\x16`\0\x90\x81R`\x01` R`@\x90 T\x90V[4\x80\x15a\x04\x1BW`\0\x80\xFD[Pa\x02\xFDa\x0B'V[4\x80\x15a\x040W`\0\x80\xFD[Pa\x01\xA7a\x04?6`\x04a\x12\xFBV[a\x0B\xA5V[4\x80\x15a\x04PW`\0\x80\xFD[P`@\x80Q\x80\x82\x01\x90\x91R`\x04\x81R\x7FWETH\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` \x82\x01Ra\x01\xF3V[4\x80\x15a\x04\x96W`\0\x80\xFD[Pa\x01\xA7a\x04\xA56`\x04a\x12\xFBV[a\x0B\xECV[4\x80\x15a\x04\xB6W`\0\x80\xFD[Pa\x01\xA7a\x04\xC56`\x04a\x13\x81V[a\x0C\xBAV[4\x80\x15a\x04\xD6W`\0\x80\xFD[Pa\x02)a\x04\xE56`\x04a\x12\xFBV[a\x0C\xDDV[4\x80\x15a\x04\xF6W`\0\x80\xFD[Pa\x01\xA7a\x05\x056`\x04a\x13\x81V[a\x0C\xF1V[4\x80\x15a\x05\x16W`\0\x80\xFD[Pa\x05Ia\x05%6`\x04a\x13\x9EV[`\x03` \x90\x81R`\0\x92\x83R`@\x80\x84 \x90\x91R\x90\x82R\x90 \x80T`\x01\x90\x91\x01T\x82V[`@\x80Q\x92\x83R` \x83\x01\x91\x90\x91R\x01a\x02\0V[4\x80\x15a\x05jW`\0\x80\xFD[Pa\x02\xFDa\x0EqV[4\x80\x15a\x05\x7FW`\0\x80\xFD[Pa\x02ha\x05\x8E6`\x04a\x13\x9EV[`\x01`\x01`\xA0\x1B\x03\x91\x82\x16`\0\x90\x81R`\x02` \x90\x81R`@\x80\x83 \x93\x90\x94\x16\x82R\x91\x90\x91R T\x90V[4\x80\x15a\x05\xC5W`\0\x80\xFD[Pa\x01\xA7a\x05\xD46`\x04a\x12\xFBV[a\x0E\xB8V[3`\0\x90\x81R`\x01` R`@\x81 \x80T4\x92\x90a\x05\xF8\x90\x84\x90a\x14\x06V[\x90\x91UPP`@Q4\x81R3\x90\x7F\xE1\xFF\xFC\xC4\x92=\x04\xB5Y\xF4\xD2\x9A\x8B\xFCl\xDA\x04\xEB[\ra\x07hV[``\x91P[PP\x90P\x80a\x07\xB9W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1B`$\x82\x01R\x7FDelayedWETH: recover failed\0\0\0\0\0`D\x82\x01R`d\x01a\x07\x04V[PPPV[`\x01`\x01`\xA0\x1B\x03\x83\x16`\0\x90\x81R`\x01` R`@\x81 T\x82\x11\x15a\x07\xE3W`\0\x80\xFD[`\x01`\x01`\xA0\x1B\x03\x84\x16`\0\x81\x81R`\x02` \x90\x81R`@\x80\x83 3\x80\x85R\x92R\x90\x91 T\x91\x14\x80\x15\x90a\x087WP\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x14\x15[\x15a\x08\x82W\x82\x81\x10\x15a\x08IW`\0\x80\xFD[`\x01`\x01`\xA0\x1B\x03\x85\x16`\0\x90\x81R`\x02` \x90\x81R`@\x80\x83 3\x84R\x90\x91R\x81 \x80T\x85\x92\x90a\x08|\x90\x84\x90a\x14\x1EV[\x90\x91UPP[`\x01`\x01`\xA0\x1B\x03\x85\x16`\0\x90\x81R`\x01` R`@\x81 \x80T\x85\x92\x90a\x08\xAA\x90\x84\x90a\x14\x1EV[\x90\x91UPP`\x01`\x01`\xA0\x1B\x03\x84\x16`\0\x90\x81R`\x01` R`@\x81 \x80T\x85\x92\x90a\x08\xD7\x90\x84\x90a\x14\x06V[\x92PP\x81\x90UP\x83`\x01`\x01`\xA0\x1B\x03\x16\x85`\x01`\x01`\xA0\x1B\x03\x16\x7F\xDD\xF2R\xAD\x1B\xE2\xC8\x9Bi\xC2\xB0h\xFC7\x8D\xAA\x95+\xA7\xF1c\xC4\xA1\x16(\xF5ZM\xF5#\xB3\xEF\x85`@Qa\t#\x91\x81R` \x01\x90V[`@Q\x80\x91\x03\x90\xA3P`\x01\x94\x93PPPPV[a\t@3\x82a\x0E\xB8V[PV[`\0\x80a\tn\x7F\xB51'hJV\x8B1s\xAE\x13\xB9\xF8\xA6\x01n$>c\xB6\xE8\xEE\x11x\xD6\xA7\x17\x85\x0B]a\x03T\x90V[\x90P`\x01`\x01`\xA0\x1B\x03\x81\x16\x15a\t\x84W\x91\x90PV[`@Q\x80`@\x01`@R\x80`\x1A\x81R` \x01\x7FOVM_L1CrossDomainMessenger\0\0\0\0\0\0\x81RPQ`\x02a\t\xC7\x91\x90a\x145V[`@\x80Q0` \x82\x01R`\0\x91\x81\x01\x91\x90\x91R\x7FOVM_L1CrossDomainMessenger\0\0\0\0\0\0\x91\x90\x91\x17\x90a\n\"\x90``\x01[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 T\x90V[\x14a\nYW`@Q\x7FT\xE43\xCD\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\x01`@Q\x80\x91\x03\x90\xFD[`@\x80Q0` \x82\x01R`\x01\x91\x81\x01\x91\x90\x91R`\0\x90a\n{\x90``\x01a\n\x08V[\x90P`\x01`\x01`\xA0\x1B\x03\x81\x16\x15a\n\xF5W\x80`\x01`\x01`\xA0\x1B\x03\x16c\x8D\xA5\xCB[`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\n\xCAW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\n\xEE\x91\x90a\x14rV[\x92PPP\x90V[`@Q\x7F3!D\xDB\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\x01`@Q\x80\x91\x03\x90\xFD[`\0`\x04`\0\x90T\x90a\x01\0\n\x90\x04`\x01`\x01`\xA0\x1B\x03\x16`\x01`\x01`\xA0\x1B\x03\x16c5\xE8\n\xB3`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x0B|W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x0B\xA0\x91\x90a\x14rV[\x90P\x90V[3`\0\x90\x81R`\x03` \x90\x81R`@\x80\x83 `\x01`\x01`\xA0\x1B\x03\x86\x16\x84R\x90\x91R\x81 B`\x01\x82\x01U\x80T\x90\x91\x83\x91\x83\x91\x90a\x0B\xE2\x90\x84\x90a\x14\x06V[\x90\x91UPPPPPV[a\x0B\xF4a\x0EqV[`\x01`\x01`\xA0\x1B\x03\x163`\x01`\x01`\xA0\x1B\x03\x16\x14a\x0CTW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x16`$\x82\x01R\x7FDelayedWETH: not owner\0\0\0\0\0\0\0\0\0\0`D\x82\x01R`d\x01a\x07\x04V[`\x01`\x01`\xA0\x1B\x03\x82\x16`\0\x81\x81R`\x02` \x90\x81R`@\x80\x83 3\x80\x85R\x90\x83R\x92\x81\x90 \x85\x90UQ\x84\x81R\x91\x92\x91\x7F\x8C[\xE1\xE5\xEB\xEC}[\xD1OqB}\x1E\x84\xF3\xDD\x03\x14\xC0\xF7\xB2)\x1E[ \n\xC8\xC7\xC3\xB9%\x91\x01`@Q\x80\x91\x03\x90\xA3a\x07\xB9\x823\x83a\x07\xBEV[a\t@\x81a\x04\xA5\x83`\x01`\x01`\xA0\x1B\x03\x16`\0\x90\x81R`\x01` R`@\x90 T\x90V[`\0a\x0C\xEA3\x84\x84a\x07\xBEV[\x93\x92PPPV[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\0Ta\x01\0\x90\x04`\xFF\x16\x15\x80\x15a\r1WP`\0T`\xFF\x80\x83\x16\x91\x16\x10[a\r\xA3W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`.`$\x82\x01R\x7FInitializable: contract is alrea`D\x82\x01R\x7Fdy initialized\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x07\x04V[`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\x16`\xFF\x83\x16\x17a\x01\0\x17\x90Ua\r\xDCa\x11dV[`\x04\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16`\x01`\x01`\xA0\x1B\x03\x84\x16\x17\x90U`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\x16\x90U`@Q`\xFF\x82\x16\x81R\x7F\x7F&\xB8?\xF9n\x1F+jh/\x138R\xF6y\x8A\t\xC4e\xDA\x95\x92\x14`\xCE\xFB8G@$\x98\x90` \x01`@Q\x80\x91\x03\x90\xA1PPV[`\0a\x0E{a\tCV[`\x01`\x01`\xA0\x1B\x03\x16c\x8D\xA5\xCB[`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x0B|W=`\0\x80>=`\0\xFD[`\x04\x80T`@\x80Q\x7F\\\x97Z\xBB\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\x90Q`\x01`\x01`\xA0\x1B\x03\x90\x92\x16\x92c\\\x97Z\xBB\x92\x82\x82\x01\x92` \x92\x90\x82\x90\x03\x01\x81\x86Z\xFA\x15\x80\x15a\x0F\x18W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x0F<\x91\x90a\x14\x8FV[\x15a\x0F\x89W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1F`$\x82\x01R\x7FDelayedWETH: contract is paused\0`D\x82\x01R`d\x01a\x07\x04V[3`\0\x90\x81R`\x03` \x90\x81R`@\x80\x83 `\x01`\x01`\xA0\x1B\x03\x86\x16\x84R\x90\x91R\x90 \x80T\x82\x11\x15a\x10#W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`-`$\x82\x01R\x7FDelayedWETH: insufficient unlock`D\x82\x01R\x7Fed withdrawal\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x07\x04V[`\0\x81`\x01\x01T\x11a\x10\x9CW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`$\x80\x82\x01R\x7FDelayedWETH: withdrawal not unlo`D\x82\x01R\x7Fcked\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`d\x82\x01R`\x84\x01a\x07\x04V[B\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x82`\x01\x01Ta\x10\xCD\x91\x90a\x14\x06V[\x11\x15a\x11AW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`%`$\x82\x01R\x7FDelayedWETH: withdrawal delay no`D\x82\x01R\x7Ft met\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`d\x82\x01R`\x84\x01a\x07\x04V[\x81\x81`\0\x01`\0\x82\x82Ta\x11U\x91\x90a\x14\x1EV[\x90\x91UPa\x07\xB9\x90P\x82a\x11\xCDV[3a\x11ma\tCV[`\x01`\x01`\xA0\x1B\x03\x16\x14\x15\x80\x15a\x11\x94WP3a\x11\x88a\x0EqV[`\x01`\x01`\xA0\x1B\x03\x16\x14\x15[\x15a\x11\xCBW`@Q\x7F\xC4\x05\n&\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\x01`@Q\x80\x91\x03\x90\xFD[V[3`\0\x90\x81R`\x01` R`@\x90 T\x81\x11\x15a\x11\xE9W`\0\x80\xFD[3`\0\x90\x81R`\x01` R`@\x81 \x80T\x83\x92\x90a\x12\x08\x90\x84\x90a\x14\x1EV[\x90\x91UPP`@Q3\x90\x82\x15a\x08\xFC\x02\x90\x83\x90`\0\x81\x81\x81\x85\x88\x88\xF1\x93PPPP\x15\x80\x15a\x12:W=`\0\x80>=`\0\xFD[P`@Q\x81\x81R3\x90\x7F\x7F\xCFS,\x15\xF0\xA6\xDB\x0B\xD6\xD0\xE08\xBE\xA7\x1D0\xD8\x08\xC7\xD9\x8C\xB3\xBFrh\xA9[\xF5\x08\x1Be\x90` \x01`@Q\x80\x91\x03\x90\xA2PV[`\0` \x80\x83R\x83Q\x80\x82\x85\x01R`\0[\x81\x81\x10\x15a\x12\xA0W\x85\x81\x01\x83\x01Q\x85\x82\x01`@\x01R\x82\x01a\x12\x84V[\x81\x81\x11\x15a\x12\xB2W`\0`@\x83\x87\x01\x01R[P`\x1F\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x92\x90\x92\x01`@\x01\x93\x92PPPV[`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a\t@W`\0\x80\xFD[`\0\x80`@\x83\x85\x03\x12\x15a\x13\x0EW`\0\x80\xFD[\x825a\x13\x19\x81a\x12\xE6V[\x94` \x93\x90\x93\x015\x93PPPV[`\0` \x82\x84\x03\x12\x15a\x139W`\0\x80\xFD[P5\x91\x90PV[`\0\x80`\0``\x84\x86\x03\x12\x15a\x13UW`\0\x80\xFD[\x835a\x13`\x81a\x12\xE6V[\x92P` \x84\x015a\x13p\x81a\x12\xE6V[\x92\x95\x92\x94PPP`@\x91\x90\x91\x015\x90V[`\0` \x82\x84\x03\x12\x15a\x13\x93W`\0\x80\xFD[\x815a\x0C\xEA\x81a\x12\xE6V[`\0\x80`@\x83\x85\x03\x12\x15a\x13\xB1W`\0\x80\xFD[\x825a\x13\xBC\x81a\x12\xE6V[\x91P` \x83\x015a\x13\xCC\x81a\x12\xE6V[\x80\x91PP\x92P\x92\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`\x11`\x04R`$`\0\xFD[`\0\x82\x19\x82\x11\x15a\x14\x19Wa\x14\x19a\x13\xD7V[P\x01\x90V[`\0\x82\x82\x10\x15a\x140Wa\x140a\x13\xD7V[P\x03\x90V[`\0\x81\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x04\x83\x11\x82\x15\x15\x16\x15a\x14mWa\x14ma\x13\xD7V[P\x02\x90V[`\0` \x82\x84\x03\x12\x15a\x14\x84W`\0\x80\xFD[\x81Qa\x0C\xEA\x81a\x12\xE6V[`\0` \x82\x84\x03\x12\x15a\x14\xA1W`\0\x80\xFD[\x81Q\x80\x15\x15\x81\x14a\x0C\xEAW`\0\x80\xFD\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x60806040526004361061019a5760003560e01c806370a08231116100e1578063a9059cbb1161008a578063d0e30db011610064578063d0e30db0146101a9578063dad544e01461055e578063dd62ed3e14610573578063f3fef3a3146105b9576101a9565b8063a9059cbb146104ca578063c4d66de8146104ea578063cd47bde11461050a576101a9565b806395d89b41116100bb57806395d89b4114610444578063977a5ec51461048a578063a7e21e80146104aa576101a9565b806370a08231146103d957806379502c551461040f5780637eee288d14610424576101a9565b8063313ce567116101435780633e47158c1161011d5780633e47158c1461034857806354fd4d501461035d5780636a42b8f8146103a6576101a9565b8063313ce567146102b657806333d7e2bd146102dd57806338d38c9714610315576101a9565b806318160ddd1161017457806318160ddd1461025957806323b872dd146102765780632e1a7d4d14610296576101a9565b806306fdde03146101b1578063095ea7b3146102095780630ca3568214610239576101a9565b366101a9576101a76105d9565b005b6101a76105d9565b3480156101bd57600080fd5b5060408051808201909152600d81527f577261707065642045746865720000000000000000000000000000000000000060208201525b6040516102009190611273565b60405180910390f35b34801561021557600080fd5b506102296102243660046112fb565b610634565b6040519015158152602001610200565b34801561024557600080fd5b506101a7610254366004611327565b6106a0565b34801561026557600080fd5b50475b604051908152602001610200565b34801561028257600080fd5b50610229610291366004611340565b6107be565b3480156102a257600080fd5b506101a76102b1366004611327565b610936565b3480156102c257600080fd5b506102cb601281565b60405160ff9091168152602001610200565b3480156102e957600080fd5b506004546102fd906001600160a01b031681565b6040516001600160a01b039091168152602001610200565b34801561032157600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006102cb565b34801561035457600080fd5b506102fd610943565b34801561036957600080fd5b506101f36040518060400160405280600581526020017f312e352e3000000000000000000000000000000000000000000000000000000081525081565b3480156103b257600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610268565b3480156103e557600080fd5b506102686103f4366004611381565b6001600160a01b031660009081526001602052604090205490565b34801561041b57600080fd5b506102fd610b27565b34801561043057600080fd5b506101a761043f3660046112fb565b610ba5565b34801561045057600080fd5b5060408051808201909152600481527f574554480000000000000000000000000000000000000000000000000000000060208201526101f3565b34801561049657600080fd5b506101a76104a53660046112fb565b610bec565b3480156104b657600080fd5b506101a76104c5366004611381565b610cba565b3480156104d657600080fd5b506102296104e53660046112fb565b610cdd565b3480156104f657600080fd5b506101a7610505366004611381565b610cf1565b34801561051657600080fd5b5061054961052536600461139e565b60036020908152600092835260408084209091529082529020805460019091015482565b60408051928352602083019190915201610200565b34801561056a57600080fd5b506102fd610e71565b34801561057f57600080fd5b5061026861058e36600461139e565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3480156105c557600080fd5b506101a76105d43660046112fb565b610eb8565b33600090815260016020526040812080543492906105f8908490611406565b909155505060405134815233907fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c9060200160405180910390a2565b3360008181526002602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061068f9086815260200190565b60405180910390a350600192915050565b6106a8610e71565b6001600160a01b0316336001600160a01b03161461070d5760405162461bcd60e51b815260206004820152601660248201527f44656c61796564574554483a206e6f74206f776e65720000000000000000000060448201526064015b60405180910390fd5b600047821061071c574761071e565b815b604051909150600090339083908381818185875af1925050503d8060008114610763576040519150601f19603f3d011682016040523d82523d6000602084013e610768565b606091505b50509050806107b95760405162461bcd60e51b815260206004820152601b60248201527f44656c61796564574554483a207265636f766572206661696c656400000000006044820152606401610704565b505050565b6001600160a01b0383166000908152600160205260408120548211156107e357600080fd5b6001600160a01b038416600081815260026020908152604080832033808552925290912054911480159061083757507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114155b15610882578281101561084957600080fd5b6001600160a01b03851660009081526002602090815260408083203384529091528120805485929061087c90849061141e565b90915550505b6001600160a01b038516600090815260016020526040812080548592906108aa90849061141e565b90915550506001600160a01b038416600090815260016020526040812080548592906108d7908490611406565b92505081905550836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161092391815260200190565b60405180910390a3506001949350505050565b6109403382610eb8565b50565b60008061096e7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b90506001600160a01b0381161561098457919050565b6040518060400160405280601a81526020017f4f564d5f4c3143726f7373446f6d61696e4d657373656e6765720000000000008152505160026109c79190611435565b604080513060208201526000918101919091527f4f564d5f4c3143726f7373446f6d61696e4d657373656e6765720000000000009190911790610a22906060015b604051602081830303815290604052805190602001205490565b14610a59576040517f54e433cd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60408051306020820152600191810191909152600090610a7b90606001610a08565b90506001600160a01b03811615610af557806001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610aca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aee9190611472565b9250505090565b6040517f332144db00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600460009054906101000a90046001600160a01b03166001600160a01b03166335e80ab36040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b7c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ba09190611472565b905090565b3360009081526003602090815260408083206001600160a01b03861684529091528120426001820155805490918391839190610be2908490611406565b9091555050505050565b610bf4610e71565b6001600160a01b0316336001600160a01b031614610c545760405162461bcd60e51b815260206004820152601660248201527f44656c61796564574554483a206e6f74206f776e6572000000000000000000006044820152606401610704565b6001600160a01b03821660008181526002602090815260408083203380855290835292819020859055518481529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a36107b98233836107be565b610940816104a5836001600160a01b031660009081526001602052604090205490565b6000610cea3384846107be565b9392505050565b7f0000000000000000000000000000000000000000000000000000000000000000600054610100900460ff16158015610d31575060005460ff8083169116105b610da35760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610704565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001660ff831617610100179055610ddc611164565b600480547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b038416179055600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b6000610e7b610943565b6001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b7c573d6000803e3d6000fd5b60048054604080517f5c975abb00000000000000000000000000000000000000000000000000000000815290516001600160a01b0390921692635c975abb9282820192602092908290030181865afa158015610f18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f3c919061148f565b15610f895760405162461bcd60e51b815260206004820152601f60248201527f44656c61796564574554483a20636f6e747261637420697320706175736564006044820152606401610704565b3360009081526003602090815260408083206001600160a01b0386168452909152902080548211156110235760405162461bcd60e51b815260206004820152602d60248201527f44656c61796564574554483a20696e73756666696369656e7420756e6c6f636b60448201527f6564207769746864726177616c000000000000000000000000000000000000006064820152608401610704565b600081600101541161109c5760405162461bcd60e51b8152602060048201526024808201527f44656c61796564574554483a207769746864726177616c206e6f7420756e6c6f60448201527f636b6564000000000000000000000000000000000000000000000000000000006064820152608401610704565b427f000000000000000000000000000000000000000000000000000000000000000082600101546110cd9190611406565b11156111415760405162461bcd60e51b815260206004820152602560248201527f44656c61796564574554483a207769746864726177616c2064656c6179206e6f60448201527f74206d65740000000000000000000000000000000000000000000000000000006064820152608401610704565b81816000016000828254611155919061141e565b909155506107b99050826111cd565b3361116d610943565b6001600160a01b031614158015611194575033611188610e71565b6001600160a01b031614155b156111cb576040517fc4050a2600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b336000908152600160205260409020548111156111e957600080fd5b336000908152600160205260408120805483929061120890849061141e565b9091555050604051339082156108fc029083906000818181858888f1935050505015801561123a573d6000803e3d6000fd5b5060405181815233907f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b659060200160405180910390a250565b600060208083528351808285015260005b818110156112a057858101830151858201604001528201611284565b818111156112b2576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b6001600160a01b038116811461094057600080fd5b6000806040838503121561130e57600080fd5b8235611319816112e6565b946020939093013593505050565b60006020828403121561133957600080fd5b5035919050565b60008060006060848603121561135557600080fd5b8335611360816112e6565b92506020840135611370816112e6565b929592945050506040919091013590565b60006020828403121561139357600080fd5b8135610cea816112e6565b600080604083850312156113b157600080fd5b82356113bc816112e6565b915060208301356113cc816112e6565b809150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008219821115611419576114196113d7565b500190565b600082821015611430576114306113d7565b500390565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561146d5761146d6113d7565b500290565b60006020828403121561148457600080fd5b8151610cea816112e6565b6000602082840312156114a157600080fd5b81518015158114610cea57600080fdfea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R`\x046\x10a\x01\x9AW`\x005`\xE0\x1C\x80cp\xA0\x821\x11a\0\xE1W\x80c\xA9\x05\x9C\xBB\x11a\0\x8AW\x80c\xD0\xE3\r\xB0\x11a\0dW\x80c\xD0\xE3\r\xB0\x14a\x01\xA9W\x80c\xDA\xD5D\xE0\x14a\x05^W\x80c\xDDb\xED>\x14a\x05sW\x80c\xF3\xFE\xF3\xA3\x14a\x05\xB9Wa\x01\xA9V[\x80c\xA9\x05\x9C\xBB\x14a\x04\xCAW\x80c\xC4\xD6m\xE8\x14a\x04\xEAW\x80c\xCDG\xBD\xE1\x14a\x05\nWa\x01\xA9V[\x80c\x95\xD8\x9BA\x11a\0\xBBW\x80c\x95\xD8\x9BA\x14a\x04DW\x80c\x97z^\xC5\x14a\x04\x8AW\x80c\xA7\xE2\x1E\x80\x14a\x04\xAAWa\x01\xA9V[\x80cp\xA0\x821\x14a\x03\xD9W\x80cyP,U\x14a\x04\x0FW\x80c~\xEE(\x8D\x14a\x04$Wa\x01\xA9V[\x80c1<\xE5g\x11a\x01CW\x80c>G\x15\x8C\x11a\x01\x1DW\x80c>G\x15\x8C\x14a\x03HW\x80cT\xFDMP\x14a\x03]W\x80cjB\xB8\xF8\x14a\x03\xA6Wa\x01\xA9V[\x80c1<\xE5g\x14a\x02\xB6W\x80c3\xD7\xE2\xBD\x14a\x02\xDDW\x80c8\xD3\x8C\x97\x14a\x03\x15Wa\x01\xA9V[\x80c\x18\x16\r\xDD\x11a\x01tW\x80c\x18\x16\r\xDD\x14a\x02YW\x80c#\xB8r\xDD\x14a\x02vW\x80c.\x1A}M\x14a\x02\x96Wa\x01\xA9V[\x80c\x06\xFD\xDE\x03\x14a\x01\xB1W\x80c\t^\xA7\xB3\x14a\x02\tW\x80c\x0C\xA3V\x82\x14a\x029Wa\x01\xA9V[6a\x01\xA9Wa\x01\xA7a\x05\xD9V[\0[a\x01\xA7a\x05\xD9V[4\x80\x15a\x01\xBDW`\0\x80\xFD[P`@\x80Q\x80\x82\x01\x90\x91R`\r\x81R\x7FWrapped Ether\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0` \x82\x01R[`@Qa\x02\0\x91\x90a\x12sV[`@Q\x80\x91\x03\x90\xF3[4\x80\x15a\x02\x15W`\0\x80\xFD[Pa\x02)a\x02$6`\x04a\x12\xFBV[a\x064V[`@Q\x90\x15\x15\x81R` \x01a\x02\0V[4\x80\x15a\x02EW`\0\x80\xFD[Pa\x01\xA7a\x02T6`\x04a\x13'V[a\x06\xA0V[4\x80\x15a\x02eW`\0\x80\xFD[PG[`@Q\x90\x81R` \x01a\x02\0V[4\x80\x15a\x02\x82W`\0\x80\xFD[Pa\x02)a\x02\x916`\x04a\x13@V[a\x07\xBEV[4\x80\x15a\x02\xA2W`\0\x80\xFD[Pa\x01\xA7a\x02\xB16`\x04a\x13'V[a\t6V[4\x80\x15a\x02\xC2W`\0\x80\xFD[Pa\x02\xCB`\x12\x81V[`@Q`\xFF\x90\x91\x16\x81R` \x01a\x02\0V[4\x80\x15a\x02\xE9W`\0\x80\xFD[P`\x04Ta\x02\xFD\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x01a\x02\0V[4\x80\x15a\x03!W`\0\x80\xFD[P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x02\xCBV[4\x80\x15a\x03TW`\0\x80\xFD[Pa\x02\xFDa\tCV[4\x80\x15a\x03iW`\0\x80\xFD[Pa\x01\xF3`@Q\x80`@\x01`@R\x80`\x05\x81R` \x01\x7F1.5.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\x81RP\x81V[4\x80\x15a\x03\xB2W`\0\x80\xFD[P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x02hV[4\x80\x15a\x03\xE5W`\0\x80\xFD[Pa\x02ha\x03\xF46`\x04a\x13\x81V[`\x01`\x01`\xA0\x1B\x03\x16`\0\x90\x81R`\x01` R`@\x90 T\x90V[4\x80\x15a\x04\x1BW`\0\x80\xFD[Pa\x02\xFDa\x0B'V[4\x80\x15a\x040W`\0\x80\xFD[Pa\x01\xA7a\x04?6`\x04a\x12\xFBV[a\x0B\xA5V[4\x80\x15a\x04PW`\0\x80\xFD[P`@\x80Q\x80\x82\x01\x90\x91R`\x04\x81R\x7FWETH\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` \x82\x01Ra\x01\xF3V[4\x80\x15a\x04\x96W`\0\x80\xFD[Pa\x01\xA7a\x04\xA56`\x04a\x12\xFBV[a\x0B\xECV[4\x80\x15a\x04\xB6W`\0\x80\xFD[Pa\x01\xA7a\x04\xC56`\x04a\x13\x81V[a\x0C\xBAV[4\x80\x15a\x04\xD6W`\0\x80\xFD[Pa\x02)a\x04\xE56`\x04a\x12\xFBV[a\x0C\xDDV[4\x80\x15a\x04\xF6W`\0\x80\xFD[Pa\x01\xA7a\x05\x056`\x04a\x13\x81V[a\x0C\xF1V[4\x80\x15a\x05\x16W`\0\x80\xFD[Pa\x05Ia\x05%6`\x04a\x13\x9EV[`\x03` \x90\x81R`\0\x92\x83R`@\x80\x84 \x90\x91R\x90\x82R\x90 \x80T`\x01\x90\x91\x01T\x82V[`@\x80Q\x92\x83R` \x83\x01\x91\x90\x91R\x01a\x02\0V[4\x80\x15a\x05jW`\0\x80\xFD[Pa\x02\xFDa\x0EqV[4\x80\x15a\x05\x7FW`\0\x80\xFD[Pa\x02ha\x05\x8E6`\x04a\x13\x9EV[`\x01`\x01`\xA0\x1B\x03\x91\x82\x16`\0\x90\x81R`\x02` \x90\x81R`@\x80\x83 \x93\x90\x94\x16\x82R\x91\x90\x91R T\x90V[4\x80\x15a\x05\xC5W`\0\x80\xFD[Pa\x01\xA7a\x05\xD46`\x04a\x12\xFBV[a\x0E\xB8V[3`\0\x90\x81R`\x01` R`@\x81 \x80T4\x92\x90a\x05\xF8\x90\x84\x90a\x14\x06V[\x90\x91UPP`@Q4\x81R3\x90\x7F\xE1\xFF\xFC\xC4\x92=\x04\xB5Y\xF4\xD2\x9A\x8B\xFCl\xDA\x04\xEB[\ra\x07hV[``\x91P[PP\x90P\x80a\x07\xB9W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1B`$\x82\x01R\x7FDelayedWETH: recover failed\0\0\0\0\0`D\x82\x01R`d\x01a\x07\x04V[PPPV[`\x01`\x01`\xA0\x1B\x03\x83\x16`\0\x90\x81R`\x01` R`@\x81 T\x82\x11\x15a\x07\xE3W`\0\x80\xFD[`\x01`\x01`\xA0\x1B\x03\x84\x16`\0\x81\x81R`\x02` \x90\x81R`@\x80\x83 3\x80\x85R\x92R\x90\x91 T\x91\x14\x80\x15\x90a\x087WP\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x14\x15[\x15a\x08\x82W\x82\x81\x10\x15a\x08IW`\0\x80\xFD[`\x01`\x01`\xA0\x1B\x03\x85\x16`\0\x90\x81R`\x02` \x90\x81R`@\x80\x83 3\x84R\x90\x91R\x81 \x80T\x85\x92\x90a\x08|\x90\x84\x90a\x14\x1EV[\x90\x91UPP[`\x01`\x01`\xA0\x1B\x03\x85\x16`\0\x90\x81R`\x01` R`@\x81 \x80T\x85\x92\x90a\x08\xAA\x90\x84\x90a\x14\x1EV[\x90\x91UPP`\x01`\x01`\xA0\x1B\x03\x84\x16`\0\x90\x81R`\x01` R`@\x81 \x80T\x85\x92\x90a\x08\xD7\x90\x84\x90a\x14\x06V[\x92PP\x81\x90UP\x83`\x01`\x01`\xA0\x1B\x03\x16\x85`\x01`\x01`\xA0\x1B\x03\x16\x7F\xDD\xF2R\xAD\x1B\xE2\xC8\x9Bi\xC2\xB0h\xFC7\x8D\xAA\x95+\xA7\xF1c\xC4\xA1\x16(\xF5ZM\xF5#\xB3\xEF\x85`@Qa\t#\x91\x81R` \x01\x90V[`@Q\x80\x91\x03\x90\xA3P`\x01\x94\x93PPPPV[a\t@3\x82a\x0E\xB8V[PV[`\0\x80a\tn\x7F\xB51'hJV\x8B1s\xAE\x13\xB9\xF8\xA6\x01n$>c\xB6\xE8\xEE\x11x\xD6\xA7\x17\x85\x0B]a\x03T\x90V[\x90P`\x01`\x01`\xA0\x1B\x03\x81\x16\x15a\t\x84W\x91\x90PV[`@Q\x80`@\x01`@R\x80`\x1A\x81R` \x01\x7FOVM_L1CrossDomainMessenger\0\0\0\0\0\0\x81RPQ`\x02a\t\xC7\x91\x90a\x145V[`@\x80Q0` \x82\x01R`\0\x91\x81\x01\x91\x90\x91R\x7FOVM_L1CrossDomainMessenger\0\0\0\0\0\0\x91\x90\x91\x17\x90a\n\"\x90``\x01[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 T\x90V[\x14a\nYW`@Q\x7FT\xE43\xCD\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\x01`@Q\x80\x91\x03\x90\xFD[`@\x80Q0` \x82\x01R`\x01\x91\x81\x01\x91\x90\x91R`\0\x90a\n{\x90``\x01a\n\x08V[\x90P`\x01`\x01`\xA0\x1B\x03\x81\x16\x15a\n\xF5W\x80`\x01`\x01`\xA0\x1B\x03\x16c\x8D\xA5\xCB[`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\n\xCAW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\n\xEE\x91\x90a\x14rV[\x92PPP\x90V[`@Q\x7F3!D\xDB\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\x01`@Q\x80\x91\x03\x90\xFD[`\0`\x04`\0\x90T\x90a\x01\0\n\x90\x04`\x01`\x01`\xA0\x1B\x03\x16`\x01`\x01`\xA0\x1B\x03\x16c5\xE8\n\xB3`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x0B|W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x0B\xA0\x91\x90a\x14rV[\x90P\x90V[3`\0\x90\x81R`\x03` \x90\x81R`@\x80\x83 `\x01`\x01`\xA0\x1B\x03\x86\x16\x84R\x90\x91R\x81 B`\x01\x82\x01U\x80T\x90\x91\x83\x91\x83\x91\x90a\x0B\xE2\x90\x84\x90a\x14\x06V[\x90\x91UPPPPPV[a\x0B\xF4a\x0EqV[`\x01`\x01`\xA0\x1B\x03\x163`\x01`\x01`\xA0\x1B\x03\x16\x14a\x0CTW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x16`$\x82\x01R\x7FDelayedWETH: not owner\0\0\0\0\0\0\0\0\0\0`D\x82\x01R`d\x01a\x07\x04V[`\x01`\x01`\xA0\x1B\x03\x82\x16`\0\x81\x81R`\x02` \x90\x81R`@\x80\x83 3\x80\x85R\x90\x83R\x92\x81\x90 \x85\x90UQ\x84\x81R\x91\x92\x91\x7F\x8C[\xE1\xE5\xEB\xEC}[\xD1OqB}\x1E\x84\xF3\xDD\x03\x14\xC0\xF7\xB2)\x1E[ \n\xC8\xC7\xC3\xB9%\x91\x01`@Q\x80\x91\x03\x90\xA3a\x07\xB9\x823\x83a\x07\xBEV[a\t@\x81a\x04\xA5\x83`\x01`\x01`\xA0\x1B\x03\x16`\0\x90\x81R`\x01` R`@\x90 T\x90V[`\0a\x0C\xEA3\x84\x84a\x07\xBEV[\x93\x92PPPV[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\0Ta\x01\0\x90\x04`\xFF\x16\x15\x80\x15a\r1WP`\0T`\xFF\x80\x83\x16\x91\x16\x10[a\r\xA3W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`.`$\x82\x01R\x7FInitializable: contract is alrea`D\x82\x01R\x7Fdy initialized\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x07\x04V[`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\x16`\xFF\x83\x16\x17a\x01\0\x17\x90Ua\r\xDCa\x11dV[`\x04\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16`\x01`\x01`\xA0\x1B\x03\x84\x16\x17\x90U`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\x16\x90U`@Q`\xFF\x82\x16\x81R\x7F\x7F&\xB8?\xF9n\x1F+jh/\x138R\xF6y\x8A\t\xC4e\xDA\x95\x92\x14`\xCE\xFB8G@$\x98\x90` \x01`@Q\x80\x91\x03\x90\xA1PPV[`\0a\x0E{a\tCV[`\x01`\x01`\xA0\x1B\x03\x16c\x8D\xA5\xCB[`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x0B|W=`\0\x80>=`\0\xFD[`\x04\x80T`@\x80Q\x7F\\\x97Z\xBB\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\x90Q`\x01`\x01`\xA0\x1B\x03\x90\x92\x16\x92c\\\x97Z\xBB\x92\x82\x82\x01\x92` \x92\x90\x82\x90\x03\x01\x81\x86Z\xFA\x15\x80\x15a\x0F\x18W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x0F<\x91\x90a\x14\x8FV[\x15a\x0F\x89W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1F`$\x82\x01R\x7FDelayedWETH: contract is paused\0`D\x82\x01R`d\x01a\x07\x04V[3`\0\x90\x81R`\x03` \x90\x81R`@\x80\x83 `\x01`\x01`\xA0\x1B\x03\x86\x16\x84R\x90\x91R\x90 \x80T\x82\x11\x15a\x10#W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`-`$\x82\x01R\x7FDelayedWETH: insufficient unlock`D\x82\x01R\x7Fed withdrawal\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x07\x04V[`\0\x81`\x01\x01T\x11a\x10\x9CW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`$\x80\x82\x01R\x7FDelayedWETH: withdrawal not unlo`D\x82\x01R\x7Fcked\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`d\x82\x01R`\x84\x01a\x07\x04V[B\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x82`\x01\x01Ta\x10\xCD\x91\x90a\x14\x06V[\x11\x15a\x11AW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`%`$\x82\x01R\x7FDelayedWETH: withdrawal delay no`D\x82\x01R\x7Ft met\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`d\x82\x01R`\x84\x01a\x07\x04V[\x81\x81`\0\x01`\0\x82\x82Ta\x11U\x91\x90a\x14\x1EV[\x90\x91UPa\x07\xB9\x90P\x82a\x11\xCDV[3a\x11ma\tCV[`\x01`\x01`\xA0\x1B\x03\x16\x14\x15\x80\x15a\x11\x94WP3a\x11\x88a\x0EqV[`\x01`\x01`\xA0\x1B\x03\x16\x14\x15[\x15a\x11\xCBW`@Q\x7F\xC4\x05\n&\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\x01`@Q\x80\x91\x03\x90\xFD[V[3`\0\x90\x81R`\x01` R`@\x90 T\x81\x11\x15a\x11\xE9W`\0\x80\xFD[3`\0\x90\x81R`\x01` R`@\x81 \x80T\x83\x92\x90a\x12\x08\x90\x84\x90a\x14\x1EV[\x90\x91UPP`@Q3\x90\x82\x15a\x08\xFC\x02\x90\x83\x90`\0\x81\x81\x81\x85\x88\x88\xF1\x93PPPP\x15\x80\x15a\x12:W=`\0\x80>=`\0\xFD[P`@Q\x81\x81R3\x90\x7F\x7F\xCFS,\x15\xF0\xA6\xDB\x0B\xD6\xD0\xE08\xBE\xA7\x1D0\xD8\x08\xC7\xD9\x8C\xB3\xBFrh\xA9[\xF5\x08\x1Be\x90` \x01`@Q\x80\x91\x03\x90\xA2PV[`\0` \x80\x83R\x83Q\x80\x82\x85\x01R`\0[\x81\x81\x10\x15a\x12\xA0W\x85\x81\x01\x83\x01Q\x85\x82\x01`@\x01R\x82\x01a\x12\x84V[\x81\x81\x11\x15a\x12\xB2W`\0`@\x83\x87\x01\x01R[P`\x1F\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x92\x90\x92\x01`@\x01\x93\x92PPPV[`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a\t@W`\0\x80\xFD[`\0\x80`@\x83\x85\x03\x12\x15a\x13\x0EW`\0\x80\xFD[\x825a\x13\x19\x81a\x12\xE6V[\x94` \x93\x90\x93\x015\x93PPPV[`\0` \x82\x84\x03\x12\x15a\x139W`\0\x80\xFD[P5\x91\x90PV[`\0\x80`\0``\x84\x86\x03\x12\x15a\x13UW`\0\x80\xFD[\x835a\x13`\x81a\x12\xE6V[\x92P` \x84\x015a\x13p\x81a\x12\xE6V[\x92\x95\x92\x94PPP`@\x91\x90\x91\x015\x90V[`\0` \x82\x84\x03\x12\x15a\x13\x93W`\0\x80\xFD[\x815a\x0C\xEA\x81a\x12\xE6V[`\0\x80`@\x83\x85\x03\x12\x15a\x13\xB1W`\0\x80\xFD[\x825a\x13\xBC\x81a\x12\xE6V[\x91P` \x83\x015a\x13\xCC\x81a\x12\xE6V[\x80\x91PP\x92P\x92\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`\x11`\x04R`$`\0\xFD[`\0\x82\x19\x82\x11\x15a\x14\x19Wa\x14\x19a\x13\xD7V[P\x01\x90V[`\0\x82\x82\x10\x15a\x140Wa\x140a\x13\xD7V[P\x03\x90V[`\0\x81\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x04\x83\x11\x82\x15\x15\x16\x15a\x14mWa\x14ma\x13\xD7V[P\x02\x90V[`\0` \x82\x84\x03\x12\x15a\x14\x84W`\0\x80\xFD[\x81Qa\x0C\xEA\x81a\x12\xE6V[`\0` \x82\x84\x03\x12\x15a\x14\xA1W`\0\x80\xFD[\x81Q\x80\x15\x15\x81\x14a\x0C\xEAW`\0\x80\xFD\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ProxyAdminOwnedBase_NotProxyAdmin()` and selector `0xe818dcc3`. +```solidity +error ProxyAdminOwnedBase_NotProxyAdmin(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ProxyAdminOwnedBase_NotProxyAdmin; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: ProxyAdminOwnedBase_NotProxyAdmin) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for ProxyAdminOwnedBase_NotProxyAdmin { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ProxyAdminOwnedBase_NotProxyAdmin { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ProxyAdminOwnedBase_NotProxyAdmin()"; + const SELECTOR: [u8; 4] = [232u8, 24u8, 220u8, 195u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner()` and selector `0xc4050a26`. +```solidity +error ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError + for ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner()"; + const SELECTOR: [u8; 4] = [196u8, 5u8, 10u8, 38u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ProxyAdminOwnedBase_NotProxyAdminOwner()` and selector `0x7f12c64b`. +```solidity +error ProxyAdminOwnedBase_NotProxyAdminOwner(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ProxyAdminOwnedBase_NotProxyAdminOwner; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: ProxyAdminOwnedBase_NotProxyAdminOwner) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for ProxyAdminOwnedBase_NotProxyAdminOwner { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ProxyAdminOwnedBase_NotProxyAdminOwner { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ProxyAdminOwnedBase_NotProxyAdminOwner()"; + const SELECTOR: [u8; 4] = [127u8, 18u8, 198u8, 75u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ProxyAdminOwnedBase_NotResolvedDelegateProxy()` and selector `0x54e433cd`. +```solidity +error ProxyAdminOwnedBase_NotResolvedDelegateProxy(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ProxyAdminOwnedBase_NotResolvedDelegateProxy; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: ProxyAdminOwnedBase_NotResolvedDelegateProxy) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for ProxyAdminOwnedBase_NotResolvedDelegateProxy { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ProxyAdminOwnedBase_NotResolvedDelegateProxy { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ProxyAdminOwnedBase_NotResolvedDelegateProxy()"; + const SELECTOR: [u8; 4] = [84u8, 228u8, 51u8, 205u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ProxyAdminOwnedBase_NotSharedProxyAdminOwner()` and selector `0x075c4314`. +```solidity +error ProxyAdminOwnedBase_NotSharedProxyAdminOwner(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ProxyAdminOwnedBase_NotSharedProxyAdminOwner; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: ProxyAdminOwnedBase_NotSharedProxyAdminOwner) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for ProxyAdminOwnedBase_NotSharedProxyAdminOwner { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ProxyAdminOwnedBase_NotSharedProxyAdminOwner { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ProxyAdminOwnedBase_NotSharedProxyAdminOwner()"; + const SELECTOR: [u8; 4] = [7u8, 92u8, 67u8, 20u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ProxyAdminOwnedBase_ProxyAdminNotFound()` and selector `0x332144db`. +```solidity +error ProxyAdminOwnedBase_ProxyAdminNotFound(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ProxyAdminOwnedBase_ProxyAdminNotFound; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: ProxyAdminOwnedBase_ProxyAdminNotFound) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for ProxyAdminOwnedBase_ProxyAdminNotFound { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ProxyAdminOwnedBase_ProxyAdminNotFound { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ProxyAdminOwnedBase_ProxyAdminNotFound()"; + const SELECTOR: [u8; 4] = [51u8, 33u8, 68u8, 219u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ReinitializableBase_ZeroInitVersion()` and selector `0x9b01afed`. +```solidity +error ReinitializableBase_ZeroInitVersion(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ReinitializableBase_ZeroInitVersion; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: ReinitializableBase_ZeroInitVersion) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for ReinitializableBase_ZeroInitVersion { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ReinitializableBase_ZeroInitVersion { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ReinitializableBase_ZeroInitVersion()"; + const SELECTOR: [u8; 4] = [155u8, 1u8, 175u8, 237u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `Approval(address,address,uint256)` and selector `0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925`. +```solidity +event Approval(address indexed src, address indexed guy, uint256 wad); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct Approval { + #[allow(missing_docs)] + pub src: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub guy: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub wad: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for Approval { + type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "Approval(address,address,uint256)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 140u8, 91u8, 225u8, 229u8, 235u8, 236u8, 125u8, 91u8, 209u8, 79u8, 113u8, + 66u8, 125u8, 30u8, 132u8, 243u8, 221u8, 3u8, 20u8, 192u8, 247u8, 178u8, + 41u8, 30u8, 91u8, 32u8, 10u8, 200u8, 199u8, 195u8, 185u8, 37u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + src: topics.1, + guy: topics.2, + wad: data.0, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.wad), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.src.clone(), self.guy.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.src, + ); + out[2usize] = ::encode_topic( + &self.guy, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for Approval { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&Approval> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &Approval) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `Deposit(address,uint256)` and selector `0xe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c`. +```solidity +event Deposit(address indexed dst, uint256 wad); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct Deposit { + #[allow(missing_docs)] + pub dst: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub wad: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for Deposit { + type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "Deposit(address,uint256)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 225u8, 255u8, 252u8, 196u8, 146u8, 61u8, 4u8, 181u8, 89u8, 244u8, 210u8, + 154u8, 139u8, 252u8, 108u8, 218u8, 4u8, 235u8, 91u8, 13u8, 60u8, 70u8, + 7u8, 81u8, 194u8, 64u8, 44u8, 92u8, 92u8, 201u8, 16u8, 156u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { dst: topics.1, wad: data.0 } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.wad), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.dst.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.dst, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for Deposit { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&Deposit> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &Deposit) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `Initialized(uint8)` and selector `0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498`. +```solidity +event Initialized(uint8 version); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct Initialized { + #[allow(missing_docs)] + pub version: u8, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for Initialized { + type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<8>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,); + const SIGNATURE: &'static str = "Initialized(uint8)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 127u8, 38u8, 184u8, 63u8, 249u8, 110u8, 31u8, 43u8, 106u8, 104u8, 47u8, + 19u8, 56u8, 82u8, 246u8, 121u8, 138u8, 9u8, 196u8, 101u8, 218u8, 149u8, + 146u8, 20u8, 96u8, 206u8, 251u8, 56u8, 71u8, 64u8, 36u8, 152u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { version: data.0 } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.version), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(),) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for Initialized { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&Initialized> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &Initialized) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `Transfer(address,address,uint256)` and selector `0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef`. +```solidity +event Transfer(address indexed src, address indexed dst, uint256 wad); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct Transfer { + #[allow(missing_docs)] + pub src: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub dst: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub wad: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for Transfer { + type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "Transfer(address,address,uint256)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 221u8, 242u8, 82u8, 173u8, 27u8, 226u8, 200u8, 155u8, 105u8, 194u8, + 176u8, 104u8, 252u8, 55u8, 141u8, 170u8, 149u8, 43u8, 167u8, 241u8, 99u8, + 196u8, 161u8, 22u8, 40u8, 245u8, 90u8, 77u8, 245u8, 35u8, 179u8, 239u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + src: topics.1, + dst: topics.2, + wad: data.0, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.wad), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.src.clone(), self.dst.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.src, + ); + out[2usize] = ::encode_topic( + &self.dst, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for Transfer { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&Transfer> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &Transfer) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `Withdrawal(address,uint256)` and selector `0x7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65`. +```solidity +event Withdrawal(address indexed src, uint256 wad); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct Withdrawal { + #[allow(missing_docs)] + pub src: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub wad: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for Withdrawal { + type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "Withdrawal(address,uint256)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 127u8, 207u8, 83u8, 44u8, 21u8, 240u8, 166u8, 219u8, 11u8, 214u8, 208u8, + 224u8, 56u8, 190u8, 167u8, 29u8, 48u8, 216u8, 8u8, 199u8, 217u8, 140u8, + 179u8, 191u8, 114u8, 104u8, 169u8, 91u8, 245u8, 8u8, 27u8, 101u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { src: topics.1, wad: data.0 } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.wad), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.src.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.src, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for Withdrawal { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&Withdrawal> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &Withdrawal) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + /**Constructor`. +```solidity +constructor(uint256 _delay); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct constructorCall { + #[allow(missing_docs)] + pub _delay: alloy::sol_types::private::primitives::aliases::U256, + } + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: constructorCall) -> Self { + (value._delay,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for constructorCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _delay: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolConstructor for constructorCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._delay), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `allowance(address,address)` and selector `0xdd62ed3e`. +```solidity +function allowance(address owner, address spender) external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct allowanceCall { + #[allow(missing_docs)] + pub owner: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub spender: alloy::sol_types::private::Address, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`allowance(address,address)`](allowanceCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct allowanceReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: allowanceCall) -> Self { + (value.owner, value.spender) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for allowanceCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + owner: tuple.0, + spender: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: allowanceReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for allowanceReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for allowanceCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "allowance(address,address)"; + const SELECTOR: [u8; 4] = [221u8, 98u8, 237u8, 62u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.owner, + ), + ::tokenize( + &self.spender, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: allowanceReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: allowanceReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `approve(address,uint256)` and selector `0x095ea7b3`. +```solidity +function approve(address guy, uint256 wad) external returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct approveCall { + #[allow(missing_docs)] + pub guy: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub wad: alloy::sol_types::private::primitives::aliases::U256, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`approve(address,uint256)`](approveCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct approveReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: approveCall) -> Self { + (value.guy, value.wad) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for approveCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { guy: tuple.0, wad: tuple.1 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: approveReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for approveReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for approveCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "approve(address,uint256)"; + const SELECTOR: [u8; 4] = [9u8, 94u8, 167u8, 179u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.guy, + ), + as alloy_sol_types::SolType>::tokenize(&self.wad), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: approveReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: approveReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `balanceOf(address)` and selector `0x70a08231`. +```solidity +function balanceOf(address src) external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct balanceOfCall { + #[allow(missing_docs)] + pub src: alloy::sol_types::private::Address, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`balanceOf(address)`](balanceOfCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct balanceOfReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: balanceOfCall) -> Self { + (value.src,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for balanceOfCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { src: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: balanceOfReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for balanceOfReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for balanceOfCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "balanceOf(address)"; + const SELECTOR: [u8; 4] = [112u8, 160u8, 130u8, 49u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.src, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: balanceOfReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: balanceOfReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `config()` and selector `0x79502c55`. +```solidity +function config() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct configCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`config()`](configCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct configReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: configCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for configCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: configReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for configReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for configCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "config()"; + const SELECTOR: [u8; 4] = [121u8, 80u8, 44u8, 85u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: configReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: configReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `decimals()` and selector `0x313ce567`. +```solidity +function decimals() external view returns (uint8); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct decimalsCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`decimals()`](decimalsCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct decimalsReturn { + #[allow(missing_docs)] + pub _0: u8, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: decimalsCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for decimalsCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<8>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u8,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: decimalsReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for decimalsReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for decimalsCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u8; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<8>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "decimals()"; + const SELECTOR: [u8; 4] = [49u8, 60u8, 229u8, 103u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: decimalsReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: decimalsReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `delay()` and selector `0x6a42b8f8`. +```solidity +function delay() external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct delayCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`delay()`](delayCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct delayReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: delayCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for delayCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: delayReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for delayReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for delayCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "delay()"; + const SELECTOR: [u8; 4] = [106u8, 66u8, 184u8, 248u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: delayReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: delayReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `deposit()` and selector `0xd0e30db0`. +```solidity +function deposit() external payable; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct depositCall; + ///Container type for the return parameters of the [`deposit()`](depositCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct depositReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: depositCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for depositCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: depositReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for depositReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl depositReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for depositCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = depositReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "deposit()"; + const SELECTOR: [u8; 4] = [208u8, 227u8, 13u8, 176u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + depositReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `hold(address,uint256)` and selector `0x977a5ec5`. +```solidity +function hold(address _guy, uint256 _wad) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct hold_0Call { + #[allow(missing_docs)] + pub _guy: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _wad: alloy::sol_types::private::primitives::aliases::U256, + } + ///Container type for the return parameters of the [`hold(address,uint256)`](hold_0Call) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct hold_0Return {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: hold_0Call) -> Self { + (value._guy, value._wad) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for hold_0Call { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _guy: tuple.0, + _wad: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: hold_0Return) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for hold_0Return { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl hold_0Return { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for hold_0Call { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = hold_0Return; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "hold(address,uint256)"; + const SELECTOR: [u8; 4] = [151u8, 122u8, 94u8, 197u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._guy, + ), + as alloy_sol_types::SolType>::tokenize(&self._wad), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + hold_0Return::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `hold(address)` and selector `0xa7e21e80`. +```solidity +function hold(address _guy) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct hold_1Call { + #[allow(missing_docs)] + pub _guy: alloy::sol_types::private::Address, + } + ///Container type for the return parameters of the [`hold(address)`](hold_1Call) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct hold_1Return {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: hold_1Call) -> Self { + (value._guy,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for hold_1Call { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _guy: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: hold_1Return) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for hold_1Return { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl hold_1Return { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for hold_1Call { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = hold_1Return; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "hold(address)"; + const SELECTOR: [u8; 4] = [167u8, 226u8, 30u8, 128u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._guy, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + hold_1Return::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `initVersion()` and selector `0x38d38c97`. +```solidity +function initVersion() external view returns (uint8); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct initVersionCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`initVersion()`](initVersionCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct initVersionReturn { + #[allow(missing_docs)] + pub _0: u8, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: initVersionCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for initVersionCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<8>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u8,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: initVersionReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for initVersionReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for initVersionCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u8; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<8>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "initVersion()"; + const SELECTOR: [u8; 4] = [56u8, 211u8, 140u8, 151u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: initVersionReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: initVersionReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `initialize(address)` and selector `0xc4d66de8`. +```solidity +function initialize(address _systemConfig) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct initializeCall { + #[allow(missing_docs)] + pub _systemConfig: alloy::sol_types::private::Address, + } + ///Container type for the return parameters of the [`initialize(address)`](initializeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct initializeReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: initializeCall) -> Self { + (value._systemConfig,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for initializeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _systemConfig: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: initializeReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for initializeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl initializeReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for initializeCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = initializeReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "initialize(address)"; + const SELECTOR: [u8; 4] = [196u8, 214u8, 109u8, 232u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._systemConfig, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + initializeReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `name()` and selector `0x06fdde03`. +```solidity +function name() external view returns (string memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct nameCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`name()`](nameCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct nameReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: nameCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for nameCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: nameReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for nameReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for nameCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::String; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "name()"; + const SELECTOR: [u8; 4] = [6u8, 253u8, 222u8, 3u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: nameReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: nameReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `proxyAdmin()` and selector `0x3e47158c`. +```solidity +function proxyAdmin() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct proxyAdminCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`proxyAdmin()`](proxyAdminCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct proxyAdminReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: proxyAdminCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for proxyAdminCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: proxyAdminReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for proxyAdminReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for proxyAdminCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "proxyAdmin()"; + const SELECTOR: [u8; 4] = [62u8, 71u8, 21u8, 140u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: proxyAdminReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: proxyAdminReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `proxyAdminOwner()` and selector `0xdad544e0`. +```solidity +function proxyAdminOwner() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct proxyAdminOwnerCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`proxyAdminOwner()`](proxyAdminOwnerCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct proxyAdminOwnerReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: proxyAdminOwnerCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for proxyAdminOwnerCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: proxyAdminOwnerReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for proxyAdminOwnerReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for proxyAdminOwnerCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "proxyAdminOwner()"; + const SELECTOR: [u8; 4] = [218u8, 213u8, 68u8, 224u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: proxyAdminOwnerReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: proxyAdminOwnerReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `recover(uint256)` and selector `0x0ca35682`. +```solidity +function recover(uint256 _wad) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct recoverCall { + #[allow(missing_docs)] + pub _wad: alloy::sol_types::private::primitives::aliases::U256, + } + ///Container type for the return parameters of the [`recover(uint256)`](recoverCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct recoverReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: recoverCall) -> Self { + (value._wad,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for recoverCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _wad: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: recoverReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for recoverReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl recoverReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for recoverCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = recoverReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "recover(uint256)"; + const SELECTOR: [u8; 4] = [12u8, 163u8, 86u8, 130u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._wad), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + recoverReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `symbol()` and selector `0x95d89b41`. +```solidity +function symbol() external view returns (string memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct symbolCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`symbol()`](symbolCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct symbolReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: symbolCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for symbolCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: symbolReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for symbolReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for symbolCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::String; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "symbol()"; + const SELECTOR: [u8; 4] = [149u8, 216u8, 155u8, 65u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: symbolReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: symbolReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `systemConfig()` and selector `0x33d7e2bd`. +```solidity +function systemConfig() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct systemConfigCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`systemConfig()`](systemConfigCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct systemConfigReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: systemConfigCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for systemConfigCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: systemConfigReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for systemConfigReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for systemConfigCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "systemConfig()"; + const SELECTOR: [u8; 4] = [51u8, 215u8, 226u8, 189u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: systemConfigReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: systemConfigReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `totalSupply()` and selector `0x18160ddd`. +```solidity +function totalSupply() external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct totalSupplyCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`totalSupply()`](totalSupplyCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct totalSupplyReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: totalSupplyCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for totalSupplyCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: totalSupplyReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for totalSupplyReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for totalSupplyCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "totalSupply()"; + const SELECTOR: [u8; 4] = [24u8, 22u8, 13u8, 221u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: totalSupplyReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: totalSupplyReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `transfer(address,uint256)` and selector `0xa9059cbb`. +```solidity +function transfer(address dst, uint256 wad) external returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct transferCall { + #[allow(missing_docs)] + pub dst: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub wad: alloy::sol_types::private::primitives::aliases::U256, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`transfer(address,uint256)`](transferCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct transferReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: transferCall) -> Self { + (value.dst, value.wad) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for transferCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { dst: tuple.0, wad: tuple.1 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: transferReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for transferReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for transferCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "transfer(address,uint256)"; + const SELECTOR: [u8; 4] = [169u8, 5u8, 156u8, 187u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.dst, + ), + as alloy_sol_types::SolType>::tokenize(&self.wad), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: transferReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: transferReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd`. +```solidity +function transferFrom(address src, address dst, uint256 wad) external returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct transferFromCall { + #[allow(missing_docs)] + pub src: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub dst: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub wad: alloy::sol_types::private::primitives::aliases::U256, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`transferFrom(address,address,uint256)`](transferFromCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct transferFromReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: transferFromCall) -> Self { + (value.src, value.dst, value.wad) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for transferFromCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + src: tuple.0, + dst: tuple.1, + wad: tuple.2, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: transferFromReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for transferFromReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for transferFromCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "transferFrom(address,address,uint256)"; + const SELECTOR: [u8; 4] = [35u8, 184u8, 114u8, 221u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.src, + ), + ::tokenize( + &self.dst, + ), + as alloy_sol_types::SolType>::tokenize(&self.wad), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: transferFromReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: transferFromReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `unlock(address,uint256)` and selector `0x7eee288d`. +```solidity +function unlock(address _guy, uint256 _wad) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct unlockCall { + #[allow(missing_docs)] + pub _guy: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _wad: alloy::sol_types::private::primitives::aliases::U256, + } + ///Container type for the return parameters of the [`unlock(address,uint256)`](unlockCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct unlockReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: unlockCall) -> Self { + (value._guy, value._wad) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for unlockCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _guy: tuple.0, + _wad: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: unlockReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for unlockReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl unlockReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for unlockCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = unlockReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "unlock(address,uint256)"; + const SELECTOR: [u8; 4] = [126u8, 238u8, 40u8, 141u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._guy, + ), + as alloy_sol_types::SolType>::tokenize(&self._wad), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + unlockReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `version()` and selector `0x54fd4d50`. +```solidity +function version() external view returns (string memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`version()`](versionCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for versionCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::String; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "version()"; + const SELECTOR: [u8; 4] = [84u8, 253u8, 77u8, 80u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `withdraw(uint256)` and selector `0x2e1a7d4d`. +```solidity +function withdraw(uint256 _wad) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct withdraw_0Call { + #[allow(missing_docs)] + pub _wad: alloy::sol_types::private::primitives::aliases::U256, + } + ///Container type for the return parameters of the [`withdraw(uint256)`](withdraw_0Call) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct withdraw_0Return {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: withdraw_0Call) -> Self { + (value._wad,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for withdraw_0Call { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _wad: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: withdraw_0Return) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for withdraw_0Return { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl withdraw_0Return { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for withdraw_0Call { + type Parameters<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = withdraw_0Return; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "withdraw(uint256)"; + const SELECTOR: [u8; 4] = [46u8, 26u8, 125u8, 77u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._wad), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + withdraw_0Return::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `withdraw(address,uint256)` and selector `0xf3fef3a3`. +```solidity +function withdraw(address _guy, uint256 _wad) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct withdraw_1Call { + #[allow(missing_docs)] + pub _guy: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _wad: alloy::sol_types::private::primitives::aliases::U256, + } + ///Container type for the return parameters of the [`withdraw(address,uint256)`](withdraw_1Call) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct withdraw_1Return {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: withdraw_1Call) -> Self { + (value._guy, value._wad) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for withdraw_1Call { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _guy: tuple.0, + _wad: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: withdraw_1Return) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for withdraw_1Return { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl withdraw_1Return { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for withdraw_1Call { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = withdraw_1Return; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "withdraw(address,uint256)"; + const SELECTOR: [u8; 4] = [243u8, 254u8, 243u8, 163u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._guy, + ), + as alloy_sol_types::SolType>::tokenize(&self._wad), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + withdraw_1Return::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `withdrawals(address,address)` and selector `0xcd47bde1`. +```solidity +function withdrawals(address, address) external view returns (uint256 amount, uint256 timestamp); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct withdrawalsCall { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _1: alloy::sol_types::private::Address, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`withdrawals(address,address)`](withdrawalsCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct withdrawalsReturn { + #[allow(missing_docs)] + pub amount: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub timestamp: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: withdrawalsCall) -> Self { + (value._0, value._1) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for withdrawalsCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0, _1: tuple.1 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: withdrawalsReturn) -> Self { + (value.amount, value.timestamp) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for withdrawalsReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + amount: tuple.0, + timestamp: tuple.1, + } + } + } + } + impl withdrawalsReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.amount), + as alloy_sol_types::SolType>::tokenize(&self.timestamp), + ) + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for withdrawalsCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = withdrawalsReturn; + type ReturnTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + ); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "withdrawals(address,address)"; + const SELECTOR: [u8; 4] = [205u8, 71u8, 189u8, 225u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._0, + ), + ::tokenize( + &self._1, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + withdrawalsReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + ///Container for all the [`DelayedWETH`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum DelayedWETHCalls { + #[allow(missing_docs)] + allowance(allowanceCall), + #[allow(missing_docs)] + approve(approveCall), + #[allow(missing_docs)] + balanceOf(balanceOfCall), + #[allow(missing_docs)] + config(configCall), + #[allow(missing_docs)] + decimals(decimalsCall), + #[allow(missing_docs)] + delay(delayCall), + #[allow(missing_docs)] + deposit(depositCall), + #[allow(missing_docs)] + hold_0(hold_0Call), + #[allow(missing_docs)] + hold_1(hold_1Call), + #[allow(missing_docs)] + initVersion(initVersionCall), + #[allow(missing_docs)] + initialize(initializeCall), + #[allow(missing_docs)] + name(nameCall), + #[allow(missing_docs)] + proxyAdmin(proxyAdminCall), + #[allow(missing_docs)] + proxyAdminOwner(proxyAdminOwnerCall), + #[allow(missing_docs)] + recover(recoverCall), + #[allow(missing_docs)] + symbol(symbolCall), + #[allow(missing_docs)] + systemConfig(systemConfigCall), + #[allow(missing_docs)] + totalSupply(totalSupplyCall), + #[allow(missing_docs)] + transfer(transferCall), + #[allow(missing_docs)] + transferFrom(transferFromCall), + #[allow(missing_docs)] + unlock(unlockCall), + #[allow(missing_docs)] + version(versionCall), + #[allow(missing_docs)] + withdraw_0(withdraw_0Call), + #[allow(missing_docs)] + withdraw_1(withdraw_1Call), + #[allow(missing_docs)] + withdrawals(withdrawalsCall), + } + impl DelayedWETHCalls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [6u8, 253u8, 222u8, 3u8], + [9u8, 94u8, 167u8, 179u8], + [12u8, 163u8, 86u8, 130u8], + [24u8, 22u8, 13u8, 221u8], + [35u8, 184u8, 114u8, 221u8], + [46u8, 26u8, 125u8, 77u8], + [49u8, 60u8, 229u8, 103u8], + [51u8, 215u8, 226u8, 189u8], + [56u8, 211u8, 140u8, 151u8], + [62u8, 71u8, 21u8, 140u8], + [84u8, 253u8, 77u8, 80u8], + [106u8, 66u8, 184u8, 248u8], + [112u8, 160u8, 130u8, 49u8], + [121u8, 80u8, 44u8, 85u8], + [126u8, 238u8, 40u8, 141u8], + [149u8, 216u8, 155u8, 65u8], + [151u8, 122u8, 94u8, 197u8], + [167u8, 226u8, 30u8, 128u8], + [169u8, 5u8, 156u8, 187u8], + [196u8, 214u8, 109u8, 232u8], + [205u8, 71u8, 189u8, 225u8], + [208u8, 227u8, 13u8, 176u8], + [218u8, 213u8, 68u8, 224u8], + [221u8, 98u8, 237u8, 62u8], + [243u8, 254u8, 243u8, 163u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(name), + ::core::stringify!(approve), + ::core::stringify!(recover), + ::core::stringify!(totalSupply), + ::core::stringify!(transferFrom), + ::core::stringify!(withdraw_0), + ::core::stringify!(decimals), + ::core::stringify!(systemConfig), + ::core::stringify!(initVersion), + ::core::stringify!(proxyAdmin), + ::core::stringify!(version), + ::core::stringify!(delay), + ::core::stringify!(balanceOf), + ::core::stringify!(config), + ::core::stringify!(unlock), + ::core::stringify!(symbol), + ::core::stringify!(hold_0), + ::core::stringify!(hold_1), + ::core::stringify!(transfer), + ::core::stringify!(initialize), + ::core::stringify!(withdrawals), + ::core::stringify!(deposit), + ::core::stringify!(proxyAdminOwner), + ::core::stringify!(allowance), + ::core::stringify!(withdraw_1), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for DelayedWETHCalls { + const NAME: &'static str = "DelayedWETHCalls"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 25usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::allowance(_) => { + ::SELECTOR + } + Self::approve(_) => ::SELECTOR, + Self::balanceOf(_) => { + ::SELECTOR + } + Self::config(_) => ::SELECTOR, + Self::decimals(_) => ::SELECTOR, + Self::delay(_) => ::SELECTOR, + Self::deposit(_) => ::SELECTOR, + Self::hold_0(_) => ::SELECTOR, + Self::hold_1(_) => ::SELECTOR, + Self::initVersion(_) => { + ::SELECTOR + } + Self::initialize(_) => { + ::SELECTOR + } + Self::name(_) => ::SELECTOR, + Self::proxyAdmin(_) => { + ::SELECTOR + } + Self::proxyAdminOwner(_) => { + ::SELECTOR + } + Self::recover(_) => ::SELECTOR, + Self::symbol(_) => ::SELECTOR, + Self::systemConfig(_) => { + ::SELECTOR + } + Self::totalSupply(_) => { + ::SELECTOR + } + Self::transfer(_) => ::SELECTOR, + Self::transferFrom(_) => { + ::SELECTOR + } + Self::unlock(_) => ::SELECTOR, + Self::version(_) => ::SELECTOR, + Self::withdraw_0(_) => { + ::SELECTOR + } + Self::withdraw_1(_) => { + ::SELECTOR + } + Self::withdrawals(_) => { + ::SELECTOR + } + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn name(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(DelayedWETHCalls::name) + } + name + }, + { + fn approve( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(DelayedWETHCalls::approve) + } + approve + }, + { + fn recover( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(DelayedWETHCalls::recover) + } + recover + }, + { + fn totalSupply( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(DelayedWETHCalls::totalSupply) + } + totalSupply + }, + { + fn transferFrom( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(DelayedWETHCalls::transferFrom) + } + transferFrom + }, + { + fn withdraw_0( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(DelayedWETHCalls::withdraw_0) + } + withdraw_0 + }, + { + fn decimals( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(DelayedWETHCalls::decimals) + } + decimals + }, + { + fn systemConfig( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(DelayedWETHCalls::systemConfig) + } + systemConfig + }, + { + fn initVersion( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(DelayedWETHCalls::initVersion) + } + initVersion + }, + { + fn proxyAdmin( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(DelayedWETHCalls::proxyAdmin) + } + proxyAdmin + }, + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(DelayedWETHCalls::version) + } + version + }, + { + fn delay(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(DelayedWETHCalls::delay) + } + delay + }, + { + fn balanceOf( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(DelayedWETHCalls::balanceOf) + } + balanceOf + }, + { + fn config(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(DelayedWETHCalls::config) + } + config + }, + { + fn unlock(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(DelayedWETHCalls::unlock) + } + unlock + }, + { + fn symbol(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(DelayedWETHCalls::symbol) + } + symbol + }, + { + fn hold_0(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(DelayedWETHCalls::hold_0) + } + hold_0 + }, + { + fn hold_1(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(DelayedWETHCalls::hold_1) + } + hold_1 + }, + { + fn transfer( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(DelayedWETHCalls::transfer) + } + transfer + }, + { + fn initialize( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(DelayedWETHCalls::initialize) + } + initialize + }, + { + fn withdrawals( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(DelayedWETHCalls::withdrawals) + } + withdrawals + }, + { + fn deposit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(DelayedWETHCalls::deposit) + } + deposit + }, + { + fn proxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(DelayedWETHCalls::proxyAdminOwner) + } + proxyAdminOwner + }, + { + fn allowance( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(DelayedWETHCalls::allowance) + } + allowance + }, + { + fn withdraw_1( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(DelayedWETHCalls::withdraw_1) + } + withdraw_1 + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn name(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DelayedWETHCalls::name) + } + name + }, + { + fn approve( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DelayedWETHCalls::approve) + } + approve + }, + { + fn recover( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DelayedWETHCalls::recover) + } + recover + }, + { + fn totalSupply( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DelayedWETHCalls::totalSupply) + } + totalSupply + }, + { + fn transferFrom( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DelayedWETHCalls::transferFrom) + } + transferFrom + }, + { + fn withdraw_0( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DelayedWETHCalls::withdraw_0) + } + withdraw_0 + }, + { + fn decimals( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DelayedWETHCalls::decimals) + } + decimals + }, + { + fn systemConfig( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DelayedWETHCalls::systemConfig) + } + systemConfig + }, + { + fn initVersion( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DelayedWETHCalls::initVersion) + } + initVersion + }, + { + fn proxyAdmin( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DelayedWETHCalls::proxyAdmin) + } + proxyAdmin + }, + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DelayedWETHCalls::version) + } + version + }, + { + fn delay(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DelayedWETHCalls::delay) + } + delay + }, + { + fn balanceOf( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DelayedWETHCalls::balanceOf) + } + balanceOf + }, + { + fn config(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DelayedWETHCalls::config) + } + config + }, + { + fn unlock(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DelayedWETHCalls::unlock) + } + unlock + }, + { + fn symbol(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DelayedWETHCalls::symbol) + } + symbol + }, + { + fn hold_0(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DelayedWETHCalls::hold_0) + } + hold_0 + }, + { + fn hold_1(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DelayedWETHCalls::hold_1) + } + hold_1 + }, + { + fn transfer( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DelayedWETHCalls::transfer) + } + transfer + }, + { + fn initialize( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DelayedWETHCalls::initialize) + } + initialize + }, + { + fn withdrawals( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DelayedWETHCalls::withdrawals) + } + withdrawals + }, + { + fn deposit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DelayedWETHCalls::deposit) + } + deposit + }, + { + fn proxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DelayedWETHCalls::proxyAdminOwner) + } + proxyAdminOwner + }, + { + fn allowance( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DelayedWETHCalls::allowance) + } + allowance + }, + { + fn withdraw_1( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DelayedWETHCalls::withdraw_1) + } + withdraw_1 + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::allowance(inner) => { + ::abi_encoded_size(inner) + } + Self::approve(inner) => { + ::abi_encoded_size(inner) + } + Self::balanceOf(inner) => { + ::abi_encoded_size(inner) + } + Self::config(inner) => { + ::abi_encoded_size(inner) + } + Self::decimals(inner) => { + ::abi_encoded_size(inner) + } + Self::delay(inner) => { + ::abi_encoded_size(inner) + } + Self::deposit(inner) => { + ::abi_encoded_size(inner) + } + Self::hold_0(inner) => { + ::abi_encoded_size(inner) + } + Self::hold_1(inner) => { + ::abi_encoded_size(inner) + } + Self::initVersion(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::initialize(inner) => { + ::abi_encoded_size(inner) + } + Self::name(inner) => { + ::abi_encoded_size(inner) + } + Self::proxyAdmin(inner) => { + ::abi_encoded_size(inner) + } + Self::proxyAdminOwner(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::recover(inner) => { + ::abi_encoded_size(inner) + } + Self::symbol(inner) => { + ::abi_encoded_size(inner) + } + Self::systemConfig(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::totalSupply(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::transfer(inner) => { + ::abi_encoded_size(inner) + } + Self::transferFrom(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::unlock(inner) => { + ::abi_encoded_size(inner) + } + Self::version(inner) => { + ::abi_encoded_size(inner) + } + Self::withdraw_0(inner) => { + ::abi_encoded_size(inner) + } + Self::withdraw_1(inner) => { + ::abi_encoded_size(inner) + } + Self::withdrawals(inner) => { + ::abi_encoded_size( + inner, + ) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::allowance(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::approve(inner) => { + ::abi_encode_raw(inner, out) + } + Self::balanceOf(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::config(inner) => { + ::abi_encode_raw(inner, out) + } + Self::decimals(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::delay(inner) => { + ::abi_encode_raw(inner, out) + } + Self::deposit(inner) => { + ::abi_encode_raw(inner, out) + } + Self::hold_0(inner) => { + ::abi_encode_raw(inner, out) + } + Self::hold_1(inner) => { + ::abi_encode_raw(inner, out) + } + Self::initVersion(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::initialize(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::name(inner) => { + ::abi_encode_raw(inner, out) + } + Self::proxyAdmin(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::proxyAdminOwner(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::recover(inner) => { + ::abi_encode_raw(inner, out) + } + Self::symbol(inner) => { + ::abi_encode_raw(inner, out) + } + Self::systemConfig(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::totalSupply(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::transfer(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::transferFrom(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::unlock(inner) => { + ::abi_encode_raw(inner, out) + } + Self::version(inner) => { + ::abi_encode_raw(inner, out) + } + Self::withdraw_0(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::withdraw_1(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::withdrawals(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + } + } + } + ///Container for all the [`DelayedWETH`](self) custom errors. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum DelayedWETHErrors { + #[allow(missing_docs)] + ProxyAdminOwnedBase_NotProxyAdmin(ProxyAdminOwnedBase_NotProxyAdmin), + #[allow(missing_docs)] + ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner( + ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner, + ), + #[allow(missing_docs)] + ProxyAdminOwnedBase_NotProxyAdminOwner(ProxyAdminOwnedBase_NotProxyAdminOwner), + #[allow(missing_docs)] + ProxyAdminOwnedBase_NotResolvedDelegateProxy( + ProxyAdminOwnedBase_NotResolvedDelegateProxy, + ), + #[allow(missing_docs)] + ProxyAdminOwnedBase_NotSharedProxyAdminOwner( + ProxyAdminOwnedBase_NotSharedProxyAdminOwner, + ), + #[allow(missing_docs)] + ProxyAdminOwnedBase_ProxyAdminNotFound(ProxyAdminOwnedBase_ProxyAdminNotFound), + #[allow(missing_docs)] + ReinitializableBase_ZeroInitVersion(ReinitializableBase_ZeroInitVersion), + } + impl DelayedWETHErrors { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [7u8, 92u8, 67u8, 20u8], + [51u8, 33u8, 68u8, 219u8], + [84u8, 228u8, 51u8, 205u8], + [127u8, 18u8, 198u8, 75u8], + [155u8, 1u8, 175u8, 237u8], + [196u8, 5u8, 10u8, 38u8], + [232u8, 24u8, 220u8, 195u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(ProxyAdminOwnedBase_NotSharedProxyAdminOwner), + ::core::stringify!(ProxyAdminOwnedBase_ProxyAdminNotFound), + ::core::stringify!(ProxyAdminOwnedBase_NotResolvedDelegateProxy), + ::core::stringify!(ProxyAdminOwnedBase_NotProxyAdminOwner), + ::core::stringify!(ReinitializableBase_ZeroInitVersion), + ::core::stringify!(ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner), + ::core::stringify!(ProxyAdminOwnedBase_NotProxyAdmin), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for DelayedWETHErrors { + const NAME: &'static str = "DelayedWETHErrors"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 7usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::ProxyAdminOwnedBase_NotProxyAdmin(_) => { + ::SELECTOR + } + Self::ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner(_) => { + ::SELECTOR + } + Self::ProxyAdminOwnedBase_NotProxyAdminOwner(_) => { + ::SELECTOR + } + Self::ProxyAdminOwnedBase_NotResolvedDelegateProxy(_) => { + ::SELECTOR + } + Self::ProxyAdminOwnedBase_NotSharedProxyAdminOwner(_) => { + ::SELECTOR + } + Self::ProxyAdminOwnedBase_ProxyAdminNotFound(_) => { + ::SELECTOR + } + Self::ReinitializableBase_ZeroInitVersion(_) => { + ::SELECTOR + } + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn ProxyAdminOwnedBase_NotSharedProxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + DelayedWETHErrors::ProxyAdminOwnedBase_NotSharedProxyAdminOwner, + ) + } + ProxyAdminOwnedBase_NotSharedProxyAdminOwner + }, + { + fn ProxyAdminOwnedBase_ProxyAdminNotFound( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + DelayedWETHErrors::ProxyAdminOwnedBase_ProxyAdminNotFound, + ) + } + ProxyAdminOwnedBase_ProxyAdminNotFound + }, + { + fn ProxyAdminOwnedBase_NotResolvedDelegateProxy( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + DelayedWETHErrors::ProxyAdminOwnedBase_NotResolvedDelegateProxy, + ) + } + ProxyAdminOwnedBase_NotResolvedDelegateProxy + }, + { + fn ProxyAdminOwnedBase_NotProxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + DelayedWETHErrors::ProxyAdminOwnedBase_NotProxyAdminOwner, + ) + } + ProxyAdminOwnedBase_NotProxyAdminOwner + }, + { + fn ReinitializableBase_ZeroInitVersion( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(DelayedWETHErrors::ReinitializableBase_ZeroInitVersion) + } + ReinitializableBase_ZeroInitVersion + }, + { + fn ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + DelayedWETHErrors::ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner, + ) + } + ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner + }, + { + fn ProxyAdminOwnedBase_NotProxyAdmin( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(DelayedWETHErrors::ProxyAdminOwnedBase_NotProxyAdmin) + } + ProxyAdminOwnedBase_NotProxyAdmin + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn ProxyAdminOwnedBase_NotSharedProxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + DelayedWETHErrors::ProxyAdminOwnedBase_NotSharedProxyAdminOwner, + ) + } + ProxyAdminOwnedBase_NotSharedProxyAdminOwner + }, + { + fn ProxyAdminOwnedBase_ProxyAdminNotFound( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + DelayedWETHErrors::ProxyAdminOwnedBase_ProxyAdminNotFound, + ) + } + ProxyAdminOwnedBase_ProxyAdminNotFound + }, + { + fn ProxyAdminOwnedBase_NotResolvedDelegateProxy( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + DelayedWETHErrors::ProxyAdminOwnedBase_NotResolvedDelegateProxy, + ) + } + ProxyAdminOwnedBase_NotResolvedDelegateProxy + }, + { + fn ProxyAdminOwnedBase_NotProxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + DelayedWETHErrors::ProxyAdminOwnedBase_NotProxyAdminOwner, + ) + } + ProxyAdminOwnedBase_NotProxyAdminOwner + }, + { + fn ReinitializableBase_ZeroInitVersion( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DelayedWETHErrors::ReinitializableBase_ZeroInitVersion) + } + ReinitializableBase_ZeroInitVersion + }, + { + fn ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + DelayedWETHErrors::ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner, + ) + } + ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner + }, + { + fn ProxyAdminOwnedBase_NotProxyAdmin( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DelayedWETHErrors::ProxyAdminOwnedBase_NotProxyAdmin) + } + ProxyAdminOwnedBase_NotProxyAdmin + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::ProxyAdminOwnedBase_NotProxyAdmin(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ProxyAdminOwnedBase_NotProxyAdminOwner(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ProxyAdminOwnedBase_NotResolvedDelegateProxy(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ProxyAdminOwnedBase_NotSharedProxyAdminOwner(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ProxyAdminOwnedBase_ProxyAdminNotFound(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ReinitializableBase_ZeroInitVersion(inner) => { + ::abi_encoded_size( + inner, + ) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::ProxyAdminOwnedBase_NotProxyAdmin(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ProxyAdminOwnedBase_NotProxyAdminOwner(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ProxyAdminOwnedBase_NotResolvedDelegateProxy(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ProxyAdminOwnedBase_NotSharedProxyAdminOwner(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ProxyAdminOwnedBase_ProxyAdminNotFound(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ReinitializableBase_ZeroInitVersion(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + } + } + } + ///Container for all the [`DelayedWETH`](self) events. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum DelayedWETHEvents { + #[allow(missing_docs)] + Approval(Approval), + #[allow(missing_docs)] + Deposit(Deposit), + #[allow(missing_docs)] + Initialized(Initialized), + #[allow(missing_docs)] + Transfer(Transfer), + #[allow(missing_docs)] + Withdrawal(Withdrawal), + } + impl DelayedWETHEvents { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 32usize]] = &[ + [ + 127u8, 38u8, 184u8, 63u8, 249u8, 110u8, 31u8, 43u8, 106u8, 104u8, 47u8, + 19u8, 56u8, 82u8, 246u8, 121u8, 138u8, 9u8, 196u8, 101u8, 218u8, 149u8, + 146u8, 20u8, 96u8, 206u8, 251u8, 56u8, 71u8, 64u8, 36u8, 152u8, + ], + [ + 127u8, 207u8, 83u8, 44u8, 21u8, 240u8, 166u8, 219u8, 11u8, 214u8, 208u8, + 224u8, 56u8, 190u8, 167u8, 29u8, 48u8, 216u8, 8u8, 199u8, 217u8, 140u8, + 179u8, 191u8, 114u8, 104u8, 169u8, 91u8, 245u8, 8u8, 27u8, 101u8, + ], + [ + 140u8, 91u8, 225u8, 229u8, 235u8, 236u8, 125u8, 91u8, 209u8, 79u8, 113u8, + 66u8, 125u8, 30u8, 132u8, 243u8, 221u8, 3u8, 20u8, 192u8, 247u8, 178u8, + 41u8, 30u8, 91u8, 32u8, 10u8, 200u8, 199u8, 195u8, 185u8, 37u8, + ], + [ + 221u8, 242u8, 82u8, 173u8, 27u8, 226u8, 200u8, 155u8, 105u8, 194u8, + 176u8, 104u8, 252u8, 55u8, 141u8, 170u8, 149u8, 43u8, 167u8, 241u8, 99u8, + 196u8, 161u8, 22u8, 40u8, 245u8, 90u8, 77u8, 245u8, 35u8, 179u8, 239u8, + ], + [ + 225u8, 255u8, 252u8, 196u8, 146u8, 61u8, 4u8, 181u8, 89u8, 244u8, 210u8, + 154u8, 139u8, 252u8, 108u8, 218u8, 4u8, 235u8, 91u8, 13u8, 60u8, 70u8, + 7u8, 81u8, 194u8, 64u8, 44u8, 92u8, 92u8, 201u8, 16u8, 156u8, + ], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(Initialized), + ::core::stringify!(Withdrawal), + ::core::stringify!(Approval), + ::core::stringify!(Transfer), + ::core::stringify!(Deposit), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolEventInterface for DelayedWETHEvents { + const NAME: &'static str = "DelayedWETHEvents"; + const COUNT: usize = 5usize; + fn decode_raw_log( + topics: &[alloy_sol_types::Word], + data: &[u8], + ) -> alloy_sol_types::Result { + match topics.first().copied() { + Some(::SIGNATURE_HASH) => { + ::decode_raw_log(topics, data) + .map(Self::Approval) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log(topics, data) + .map(Self::Deposit) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::Initialized) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log(topics, data) + .map(Self::Transfer) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::Withdrawal) + } + _ => { + alloy_sol_types::private::Err(alloy_sol_types::Error::InvalidLog { + name: ::NAME, + log: alloy_sol_types::private::Box::new( + alloy_sol_types::private::LogData::new_unchecked( + topics.to_vec(), + data.to_vec().into(), + ), + ), + }) + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for DelayedWETHEvents { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + match self { + Self::Approval(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::Deposit(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::Initialized(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::Transfer(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::Withdrawal(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + } + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + match self { + Self::Approval(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::Deposit(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::Initialized(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::Transfer(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::Withdrawal(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`DelayedWETH`](self) contract instance. + +See the [wrapper's documentation](`DelayedWETHInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> DelayedWETHInstance { + DelayedWETHInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + _delay: alloy::sol_types::private::primitives::aliases::U256, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + DelayedWETHInstance::::deploy(__provider, _delay) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + _delay: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::RawCallBuilder { + DelayedWETHInstance::::deploy_builder(__provider, _delay) + } + /**A [`DelayedWETH`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`DelayedWETH`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct DelayedWETHInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for DelayedWETHInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("DelayedWETHInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > DelayedWETHInstance { + /**Creates a new wrapper around an on-chain [`DelayedWETH`](self) contract instance. + +See the [wrapper's documentation](`DelayedWETHInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + _delay: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider, _delay); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder( + __provider: P, + _delay: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + [ + &BYTECODE[..], + &alloy_sol_types::SolConstructor::abi_encode( + &constructorCall { _delay }, + )[..], + ] + .concat() + .into(), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl DelayedWETHInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> DelayedWETHInstance { + DelayedWETHInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > DelayedWETHInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`allowance`] function. + pub fn allowance( + &self, + owner: alloy::sol_types::private::Address, + spender: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, allowanceCall, N> { + self.call_builder(&allowanceCall { owner, spender }) + } + ///Creates a new call builder for the [`approve`] function. + pub fn approve( + &self, + guy: alloy::sol_types::private::Address, + wad: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, approveCall, N> { + self.call_builder(&approveCall { guy, wad }) + } + ///Creates a new call builder for the [`balanceOf`] function. + pub fn balanceOf( + &self, + src: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, balanceOfCall, N> { + self.call_builder(&balanceOfCall { src }) + } + ///Creates a new call builder for the [`config`] function. + pub fn config(&self) -> alloy_contract::SolCallBuilder<&P, configCall, N> { + self.call_builder(&configCall) + } + ///Creates a new call builder for the [`decimals`] function. + pub fn decimals(&self) -> alloy_contract::SolCallBuilder<&P, decimalsCall, N> { + self.call_builder(&decimalsCall) + } + ///Creates a new call builder for the [`delay`] function. + pub fn delay(&self) -> alloy_contract::SolCallBuilder<&P, delayCall, N> { + self.call_builder(&delayCall) + } + ///Creates a new call builder for the [`deposit`] function. + pub fn deposit(&self) -> alloy_contract::SolCallBuilder<&P, depositCall, N> { + self.call_builder(&depositCall) + } + ///Creates a new call builder for the [`hold_0`] function. + pub fn hold_0( + &self, + _guy: alloy::sol_types::private::Address, + _wad: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, hold_0Call, N> { + self.call_builder(&hold_0Call { _guy, _wad }) + } + ///Creates a new call builder for the [`hold_1`] function. + pub fn hold_1( + &self, + _guy: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, hold_1Call, N> { + self.call_builder(&hold_1Call { _guy }) + } + ///Creates a new call builder for the [`initVersion`] function. + pub fn initVersion( + &self, + ) -> alloy_contract::SolCallBuilder<&P, initVersionCall, N> { + self.call_builder(&initVersionCall) + } + ///Creates a new call builder for the [`initialize`] function. + pub fn initialize( + &self, + _systemConfig: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, initializeCall, N> { + self.call_builder(&initializeCall { _systemConfig }) + } + ///Creates a new call builder for the [`name`] function. + pub fn name(&self) -> alloy_contract::SolCallBuilder<&P, nameCall, N> { + self.call_builder(&nameCall) + } + ///Creates a new call builder for the [`proxyAdmin`] function. + pub fn proxyAdmin( + &self, + ) -> alloy_contract::SolCallBuilder<&P, proxyAdminCall, N> { + self.call_builder(&proxyAdminCall) + } + ///Creates a new call builder for the [`proxyAdminOwner`] function. + pub fn proxyAdminOwner( + &self, + ) -> alloy_contract::SolCallBuilder<&P, proxyAdminOwnerCall, N> { + self.call_builder(&proxyAdminOwnerCall) + } + ///Creates a new call builder for the [`recover`] function. + pub fn recover( + &self, + _wad: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, recoverCall, N> { + self.call_builder(&recoverCall { _wad }) + } + ///Creates a new call builder for the [`symbol`] function. + pub fn symbol(&self) -> alloy_contract::SolCallBuilder<&P, symbolCall, N> { + self.call_builder(&symbolCall) + } + ///Creates a new call builder for the [`systemConfig`] function. + pub fn systemConfig( + &self, + ) -> alloy_contract::SolCallBuilder<&P, systemConfigCall, N> { + self.call_builder(&systemConfigCall) + } + ///Creates a new call builder for the [`totalSupply`] function. + pub fn totalSupply( + &self, + ) -> alloy_contract::SolCallBuilder<&P, totalSupplyCall, N> { + self.call_builder(&totalSupplyCall) + } + ///Creates a new call builder for the [`transfer`] function. + pub fn transfer( + &self, + dst: alloy::sol_types::private::Address, + wad: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, transferCall, N> { + self.call_builder(&transferCall { dst, wad }) + } + ///Creates a new call builder for the [`transferFrom`] function. + pub fn transferFrom( + &self, + src: alloy::sol_types::private::Address, + dst: alloy::sol_types::private::Address, + wad: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, transferFromCall, N> { + self.call_builder(&transferFromCall { src, dst, wad }) + } + ///Creates a new call builder for the [`unlock`] function. + pub fn unlock( + &self, + _guy: alloy::sol_types::private::Address, + _wad: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, unlockCall, N> { + self.call_builder(&unlockCall { _guy, _wad }) + } + ///Creates a new call builder for the [`version`] function. + pub fn version(&self) -> alloy_contract::SolCallBuilder<&P, versionCall, N> { + self.call_builder(&versionCall) + } + ///Creates a new call builder for the [`withdraw_0`] function. + pub fn withdraw_0( + &self, + _wad: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, withdraw_0Call, N> { + self.call_builder(&withdraw_0Call { _wad }) + } + ///Creates a new call builder for the [`withdraw_1`] function. + pub fn withdraw_1( + &self, + _guy: alloy::sol_types::private::Address, + _wad: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, withdraw_1Call, N> { + self.call_builder(&withdraw_1Call { _guy, _wad }) + } + ///Creates a new call builder for the [`withdrawals`] function. + pub fn withdrawals( + &self, + _0: alloy::sol_types::private::Address, + _1: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, withdrawalsCall, N> { + self.call_builder(&withdrawalsCall { _0, _1 }) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > DelayedWETHInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + ///Creates a new event filter for the [`Approval`] event. + pub fn Approval_filter(&self) -> alloy_contract::Event<&P, Approval, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`Deposit`] event. + pub fn Deposit_filter(&self) -> alloy_contract::Event<&P, Deposit, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`Initialized`] event. + pub fn Initialized_filter(&self) -> alloy_contract::Event<&P, Initialized, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`Transfer`] event. + pub fn Transfer_filter(&self) -> alloy_contract::Event<&P, Transfer, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`Withdrawal`] event. + pub fn Withdrawal_filter(&self) -> alloy_contract::Event<&P, Withdrawal, N> { + self.event_filter::() + } + } +} diff --git a/bindings/rust/src/deployer_whitelist.rs b/bindings/rust/src/deployer_whitelist.rs new file mode 100644 index 000000000..f25358f05 --- /dev/null +++ b/bindings/rust/src/deployer_whitelist.rs @@ -0,0 +1,2352 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface DeployerWhitelist { + event OwnerChanged(address oldOwner, address newOwner); + event WhitelistDisabled(address oldOwner); + event WhitelistStatusChanged(address deployer, bool whitelisted); + + function enableArbitraryContractDeployment() external; + function isDeployerAllowed(address _deployer) external view returns (bool); + function owner() external view returns (address); + function setOwner(address _owner) external; + function setWhitelistedDeployer(address _deployer, bool _isWhitelisted) external; + function version() external view returns (string memory); + function whitelist(address) external view returns (bool); +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "function", + "name": "enableArbitraryContractDeployment", + "inputs": [], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "isDeployerAllowed", + "inputs": [ + { + "name": "_deployer", + "type": "address", + "internalType": "address" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "owner", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "setOwner", + "inputs": [ + { + "name": "_owner", + "type": "address", + "internalType": "address" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "setWhitelistedDeployer", + "inputs": [ + { + "name": "_deployer", + "type": "address", + "internalType": "address" + }, + { + "name": "_isWhitelisted", + "type": "bool", + "internalType": "bool" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "version", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "whitelist", + "inputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "event", + "name": "OwnerChanged", + "inputs": [ + { + "name": "oldOwner", + "type": "address", + "indexed": false, + "internalType": "address" + }, + { + "name": "newOwner", + "type": "address", + "indexed": false, + "internalType": "address" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "WhitelistDisabled", + "inputs": [ + { + "name": "oldOwner", + "type": "address", + "indexed": false, + "internalType": "address" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "WhitelistStatusChanged", + "inputs": [ + { + "name": "deployer", + "type": "address", + "indexed": false, + "internalType": "address" + }, + { + "name": "whitelisted", + "type": "bool", + "indexed": false, + "internalType": "bool" + } + ], + "anonymous": false + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod DeployerWhitelist { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x608060405234801561001057600080fd5b506107bc806100206000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c80638da5cb5b1161005b5780638da5cb5b146100fc5780639b19251a14610141578063b1540a0114610174578063bdc7b54f1461018757600080fd5b806308fd63221461008257806313af40351461009757806354fd4d50146100aa575b600080fd5b6100956100903660046106de565b61018f565b005b6100956100a536600461071a565b6102ef565b6100e66040518060400160405280600581526020017f312e312e3200000000000000000000000000000000000000000000000000000081525081565b6040516100f3919061073c565b60405180910390f35b60005461011c9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100f3565b61016461014f36600461071a565b60016020526000908152604090205460ff1681565b60405190151581526020016100f3565b61016461018236600461071a565b610520565b610095610571565b60005473ffffffffffffffffffffffffffffffffffffffff163314610261576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604c60248201527f4465706c6f79657257686974656c6973743a2066756e6374696f6e2063616e2060448201527f6f6e6c792062652063616c6c656420627920746865206f776e6572206f66207460648201527f68697320636f6e74726163740000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff821660008181526001602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168515159081179091558251938452908301527f8daaf060c3306c38e068a75c054bf96ecd85a3db1252712c4d93632744c42e0d910160405180910390a15050565b60005473ffffffffffffffffffffffffffffffffffffffff1633146103bc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604c60248201527f4465706c6f79657257686974656c6973743a2066756e6374696f6e2063616e2060448201527f6f6e6c792062652063616c6c656420627920746865206f776e6572206f66207460648201527f68697320636f6e74726163740000000000000000000000000000000000000000608482015260a401610258565b73ffffffffffffffffffffffffffffffffffffffff8116610485576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604d60248201527f4465706c6f79657257686974656c6973743a2063616e206f6e6c79206265206460448201527f697361626c65642076696120656e61626c65417262697472617279436f6e747260648201527f6163744465706c6f796d656e7400000000000000000000000000000000000000608482015260a401610258565b6000546040805173ffffffffffffffffffffffffffffffffffffffff928316815291831660208301527fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c910160405180910390a1600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6000805473ffffffffffffffffffffffffffffffffffffffff16158061056b575073ffffffffffffffffffffffffffffffffffffffff821660009081526001602052604090205460ff165b92915050565b60005473ffffffffffffffffffffffffffffffffffffffff16331461063e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604c60248201527f4465706c6f79657257686974656c6973743a2066756e6374696f6e2063616e2060448201527f6f6e6c792062652063616c6c656420627920746865206f776e6572206f66207460648201527f68697320636f6e74726163740000000000000000000000000000000000000000608482015260a401610258565b60005460405173ffffffffffffffffffffffffffffffffffffffff90911681527fc0e106cf568e50698fdbde1eff56f5a5c966cc7958e37e276918e9e4ccdf8cd49060200160405180910390a1600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b803573ffffffffffffffffffffffffffffffffffffffff811681146106d957600080fd5b919050565b600080604083850312156106f157600080fd5b6106fa836106b5565b91506020830135801515811461070f57600080fd5b809150509250929050565b60006020828403121561072c57600080fd5b610735826106b5565b9392505050565b600060208083528351808285015260005b818110156107695785810183015185820160400152820161074d565b8181111561077b576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01692909201604001939250505056fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[Pa\x07\xBC\x80a\0 `\09`\0\xF3\xFE`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`\x046\x10a\0}W`\x005`\xE0\x1C\x80c\x8D\xA5\xCB[\x11a\0[W\x80c\x8D\xA5\xCB[\x14a\0\xFCW\x80c\x9B\x19%\x1A\x14a\x01AW\x80c\xB1T\n\x01\x14a\x01tW\x80c\xBD\xC7\xB5O\x14a\x01\x87W`\0\x80\xFD[\x80c\x08\xFDc\"\x14a\0\x82W\x80c\x13\xAF@5\x14a\0\x97W\x80cT\xFDMP\x14a\0\xAAW[`\0\x80\xFD[a\0\x95a\0\x906`\x04a\x06\xDEV[a\x01\x8FV[\0[a\0\x95a\0\xA56`\x04a\x07\x1AV[a\x02\xEFV[a\0\xE6`@Q\x80`@\x01`@R\x80`\x05\x81R` \x01\x7F1.1.2\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\x81RP\x81V[`@Qa\0\xF3\x91\x90a\x07W`@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\x82\x01R`L`$\x82\x01R\x7FDeployerWhitelist: function can `D\x82\x01R\x7Fonly be called by the owner of t`d\x82\x01R\x7Fhis contract\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x84\x82\x01R`\xA4\x01a\x02XV[`\0T`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R\x7F\xC0\xE1\x06\xCFV\x8EPi\x8F\xDB\xDE\x1E\xFFV\xF5\xA5\xC9f\xCCyX\xE3~'i\x18\xE9\xE4\xCC\xDF\x8C\xD4\x90` \x01`@Q\x80\x91\x03\x90\xA1`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x90UV[\x805s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x06\xD9W`\0\x80\xFD[\x91\x90PV[`\0\x80`@\x83\x85\x03\x12\x15a\x06\xF1W`\0\x80\xFD[a\x06\xFA\x83a\x06\xB5V[\x91P` \x83\x015\x80\x15\x15\x81\x14a\x07\x0FW`\0\x80\xFD[\x80\x91PP\x92P\x92\x90PV[`\0` \x82\x84\x03\x12\x15a\x07,W`\0\x80\xFD[a\x075\x82a\x06\xB5V[\x93\x92PPPV[`\0` \x80\x83R\x83Q\x80\x82\x85\x01R`\0[\x81\x81\x10\x15a\x07iW\x85\x81\x01\x83\x01Q\x85\x82\x01`@\x01R\x82\x01a\x07MV[\x81\x81\x11\x15a\x07{W`\0`@\x83\x87\x01\x01R[P`\x1F\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x92\x90\x92\x01`@\x01\x93\x92PPPV\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x608060405234801561001057600080fd5b506004361061007d5760003560e01c80638da5cb5b1161005b5780638da5cb5b146100fc5780639b19251a14610141578063b1540a0114610174578063bdc7b54f1461018757600080fd5b806308fd63221461008257806313af40351461009757806354fd4d50146100aa575b600080fd5b6100956100903660046106de565b61018f565b005b6100956100a536600461071a565b6102ef565b6100e66040518060400160405280600581526020017f312e312e3200000000000000000000000000000000000000000000000000000081525081565b6040516100f3919061073c565b60405180910390f35b60005461011c9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100f3565b61016461014f36600461071a565b60016020526000908152604090205460ff1681565b60405190151581526020016100f3565b61016461018236600461071a565b610520565b610095610571565b60005473ffffffffffffffffffffffffffffffffffffffff163314610261576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604c60248201527f4465706c6f79657257686974656c6973743a2066756e6374696f6e2063616e2060448201527f6f6e6c792062652063616c6c656420627920746865206f776e6572206f66207460648201527f68697320636f6e74726163740000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff821660008181526001602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168515159081179091558251938452908301527f8daaf060c3306c38e068a75c054bf96ecd85a3db1252712c4d93632744c42e0d910160405180910390a15050565b60005473ffffffffffffffffffffffffffffffffffffffff1633146103bc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604c60248201527f4465706c6f79657257686974656c6973743a2066756e6374696f6e2063616e2060448201527f6f6e6c792062652063616c6c656420627920746865206f776e6572206f66207460648201527f68697320636f6e74726163740000000000000000000000000000000000000000608482015260a401610258565b73ffffffffffffffffffffffffffffffffffffffff8116610485576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604d60248201527f4465706c6f79657257686974656c6973743a2063616e206f6e6c79206265206460448201527f697361626c65642076696120656e61626c65417262697472617279436f6e747260648201527f6163744465706c6f796d656e7400000000000000000000000000000000000000608482015260a401610258565b6000546040805173ffffffffffffffffffffffffffffffffffffffff928316815291831660208301527fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c910160405180910390a1600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6000805473ffffffffffffffffffffffffffffffffffffffff16158061056b575073ffffffffffffffffffffffffffffffffffffffff821660009081526001602052604090205460ff165b92915050565b60005473ffffffffffffffffffffffffffffffffffffffff16331461063e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604c60248201527f4465706c6f79657257686974656c6973743a2066756e6374696f6e2063616e2060448201527f6f6e6c792062652063616c6c656420627920746865206f776e6572206f66207460648201527f68697320636f6e74726163740000000000000000000000000000000000000000608482015260a401610258565b60005460405173ffffffffffffffffffffffffffffffffffffffff90911681527fc0e106cf568e50698fdbde1eff56f5a5c966cc7958e37e276918e9e4ccdf8cd49060200160405180910390a1600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b803573ffffffffffffffffffffffffffffffffffffffff811681146106d957600080fd5b919050565b600080604083850312156106f157600080fd5b6106fa836106b5565b91506020830135801515811461070f57600080fd5b809150509250929050565b60006020828403121561072c57600080fd5b610735826106b5565b9392505050565b600060208083528351808285015260005b818110156107695785810183015185820160400152820161074d565b8181111561077b576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01692909201604001939250505056fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`\x046\x10a\0}W`\x005`\xE0\x1C\x80c\x8D\xA5\xCB[\x11a\0[W\x80c\x8D\xA5\xCB[\x14a\0\xFCW\x80c\x9B\x19%\x1A\x14a\x01AW\x80c\xB1T\n\x01\x14a\x01tW\x80c\xBD\xC7\xB5O\x14a\x01\x87W`\0\x80\xFD[\x80c\x08\xFDc\"\x14a\0\x82W\x80c\x13\xAF@5\x14a\0\x97W\x80cT\xFDMP\x14a\0\xAAW[`\0\x80\xFD[a\0\x95a\0\x906`\x04a\x06\xDEV[a\x01\x8FV[\0[a\0\x95a\0\xA56`\x04a\x07\x1AV[a\x02\xEFV[a\0\xE6`@Q\x80`@\x01`@R\x80`\x05\x81R` \x01\x7F1.1.2\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\x81RP\x81V[`@Qa\0\xF3\x91\x90a\x07W`@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\x82\x01R`L`$\x82\x01R\x7FDeployerWhitelist: function can `D\x82\x01R\x7Fonly be called by the owner of t`d\x82\x01R\x7Fhis contract\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x84\x82\x01R`\xA4\x01a\x02XV[`\0T`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R\x7F\xC0\xE1\x06\xCFV\x8EPi\x8F\xDB\xDE\x1E\xFFV\xF5\xA5\xC9f\xCCyX\xE3~'i\x18\xE9\xE4\xCC\xDF\x8C\xD4\x90` \x01`@Q\x80\x91\x03\x90\xA1`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x90UV[\x805s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x06\xD9W`\0\x80\xFD[\x91\x90PV[`\0\x80`@\x83\x85\x03\x12\x15a\x06\xF1W`\0\x80\xFD[a\x06\xFA\x83a\x06\xB5V[\x91P` \x83\x015\x80\x15\x15\x81\x14a\x07\x0FW`\0\x80\xFD[\x80\x91PP\x92P\x92\x90PV[`\0` \x82\x84\x03\x12\x15a\x07,W`\0\x80\xFD[a\x075\x82a\x06\xB5V[\x93\x92PPPV[`\0` \x80\x83R\x83Q\x80\x82\x85\x01R`\0[\x81\x81\x10\x15a\x07iW\x85\x81\x01\x83\x01Q\x85\x82\x01`@\x01R\x82\x01a\x07MV[\x81\x81\x11\x15a\x07{W`\0`@\x83\x87\x01\x01R[P`\x1F\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x92\x90\x92\x01`@\x01\x93\x92PPPV\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `OwnerChanged(address,address)` and selector `0xb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c`. +```solidity +event OwnerChanged(address oldOwner, address newOwner); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct OwnerChanged { + #[allow(missing_docs)] + pub oldOwner: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub newOwner: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for OwnerChanged { + type DataTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,); + const SIGNATURE: &'static str = "OwnerChanged(address,address)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 181u8, 50u8, 7u8, 59u8, 56u8, 200u8, 49u8, 69u8, 227u8, 229u8, 19u8, + 83u8, 119u8, 160u8, 139u8, 249u8, 170u8, 181u8, 91u8, 192u8, 253u8, + 124u8, 17u8, 121u8, 205u8, 79u8, 185u8, 149u8, 210u8, 165u8, 21u8, 156u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + oldOwner: data.0, + newOwner: data.1, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + ::tokenize( + &self.oldOwner, + ), + ::tokenize( + &self.newOwner, + ), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(),) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for OwnerChanged { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&OwnerChanged> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &OwnerChanged) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `WhitelistDisabled(address)` and selector `0xc0e106cf568e50698fdbde1eff56f5a5c966cc7958e37e276918e9e4ccdf8cd4`. +```solidity +event WhitelistDisabled(address oldOwner); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct WhitelistDisabled { + #[allow(missing_docs)] + pub oldOwner: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for WhitelistDisabled { + type DataTuple<'a> = (alloy::sol_types::sol_data::Address,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,); + const SIGNATURE: &'static str = "WhitelistDisabled(address)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 192u8, 225u8, 6u8, 207u8, 86u8, 142u8, 80u8, 105u8, 143u8, 219u8, 222u8, + 30u8, 255u8, 86u8, 245u8, 165u8, 201u8, 102u8, 204u8, 121u8, 88u8, 227u8, + 126u8, 39u8, 105u8, 24u8, 233u8, 228u8, 204u8, 223u8, 140u8, 212u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { oldOwner: data.0 } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + ::tokenize( + &self.oldOwner, + ), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(),) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for WhitelistDisabled { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&WhitelistDisabled> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &WhitelistDisabled) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `WhitelistStatusChanged(address,bool)` and selector `0x8daaf060c3306c38e068a75c054bf96ecd85a3db1252712c4d93632744c42e0d`. +```solidity +event WhitelistStatusChanged(address deployer, bool whitelisted); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct WhitelistStatusChanged { + #[allow(missing_docs)] + pub deployer: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub whitelisted: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for WhitelistStatusChanged { + type DataTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Bool, + ); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,); + const SIGNATURE: &'static str = "WhitelistStatusChanged(address,bool)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 141u8, 170u8, 240u8, 96u8, 195u8, 48u8, 108u8, 56u8, 224u8, 104u8, 167u8, + 92u8, 5u8, 75u8, 249u8, 110u8, 205u8, 133u8, 163u8, 219u8, 18u8, 82u8, + 113u8, 44u8, 77u8, 147u8, 99u8, 39u8, 68u8, 196u8, 46u8, 13u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + deployer: data.0, + whitelisted: data.1, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + ::tokenize( + &self.deployer, + ), + ::tokenize( + &self.whitelisted, + ), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(),) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for WhitelistStatusChanged { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&WhitelistStatusChanged> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &WhitelistStatusChanged) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `enableArbitraryContractDeployment()` and selector `0xbdc7b54f`. +```solidity +function enableArbitraryContractDeployment() external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct enableArbitraryContractDeploymentCall; + ///Container type for the return parameters of the [`enableArbitraryContractDeployment()`](enableArbitraryContractDeploymentCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct enableArbitraryContractDeploymentReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: enableArbitraryContractDeploymentCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for enableArbitraryContractDeploymentCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: enableArbitraryContractDeploymentReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for enableArbitraryContractDeploymentReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl enableArbitraryContractDeploymentReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken< + '_, + > { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for enableArbitraryContractDeploymentCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = enableArbitraryContractDeploymentReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "enableArbitraryContractDeployment()"; + const SELECTOR: [u8; 4] = [189u8, 199u8, 181u8, 79u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + enableArbitraryContractDeploymentReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `isDeployerAllowed(address)` and selector `0xb1540a01`. +```solidity +function isDeployerAllowed(address _deployer) external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct isDeployerAllowedCall { + #[allow(missing_docs)] + pub _deployer: alloy::sol_types::private::Address, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`isDeployerAllowed(address)`](isDeployerAllowedCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct isDeployerAllowedReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: isDeployerAllowedCall) -> Self { + (value._deployer,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for isDeployerAllowedCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _deployer: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: isDeployerAllowedReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for isDeployerAllowedReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for isDeployerAllowedCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "isDeployerAllowed(address)"; + const SELECTOR: [u8; 4] = [177u8, 84u8, 10u8, 1u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._deployer, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: isDeployerAllowedReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: isDeployerAllowedReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `owner()` and selector `0x8da5cb5b`. +```solidity +function owner() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ownerCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`owner()`](ownerCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ownerReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ownerCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ownerCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ownerReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ownerReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for ownerCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "owner()"; + const SELECTOR: [u8; 4] = [141u8, 165u8, 203u8, 91u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: ownerReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: ownerReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `setOwner(address)` and selector `0x13af4035`. +```solidity +function setOwner(address _owner) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setOwnerCall { + #[allow(missing_docs)] + pub _owner: alloy::sol_types::private::Address, + } + ///Container type for the return parameters of the [`setOwner(address)`](setOwnerCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setOwnerReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: setOwnerCall) -> Self { + (value._owner,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for setOwnerCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _owner: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: setOwnerReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for setOwnerReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl setOwnerReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for setOwnerCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = setOwnerReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "setOwner(address)"; + const SELECTOR: [u8; 4] = [19u8, 175u8, 64u8, 53u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._owner, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + setOwnerReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `setWhitelistedDeployer(address,bool)` and selector `0x08fd6322`. +```solidity +function setWhitelistedDeployer(address _deployer, bool _isWhitelisted) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setWhitelistedDeployerCall { + #[allow(missing_docs)] + pub _deployer: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _isWhitelisted: bool, + } + ///Container type for the return parameters of the [`setWhitelistedDeployer(address,bool)`](setWhitelistedDeployerCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setWhitelistedDeployerReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Bool, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address, bool); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: setWhitelistedDeployerCall) -> Self { + (value._deployer, value._isWhitelisted) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for setWhitelistedDeployerCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _deployer: tuple.0, + _isWhitelisted: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: setWhitelistedDeployerReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for setWhitelistedDeployerReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl setWhitelistedDeployerReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken< + '_, + > { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for setWhitelistedDeployerCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Bool, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = setWhitelistedDeployerReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "setWhitelistedDeployer(address,bool)"; + const SELECTOR: [u8; 4] = [8u8, 253u8, 99u8, 34u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._deployer, + ), + ::tokenize( + &self._isWhitelisted, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + setWhitelistedDeployerReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `version()` and selector `0x54fd4d50`. +```solidity +function version() external view returns (string memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`version()`](versionCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for versionCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::String; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "version()"; + const SELECTOR: [u8; 4] = [84u8, 253u8, 77u8, 80u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `whitelist(address)` and selector `0x9b19251a`. +```solidity +function whitelist(address) external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct whitelistCall(pub alloy::sol_types::private::Address); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`whitelist(address)`](whitelistCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct whitelistReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: whitelistCall) -> Self { + (value.0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for whitelistCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self(tuple.0) + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: whitelistReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for whitelistReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for whitelistCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "whitelist(address)"; + const SELECTOR: [u8; 4] = [155u8, 25u8, 37u8, 26u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.0, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: whitelistReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: whitelistReturn = r.into(); + r._0 + }) + } + } + }; + ///Container for all the [`DeployerWhitelist`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum DeployerWhitelistCalls { + #[allow(missing_docs)] + enableArbitraryContractDeployment(enableArbitraryContractDeploymentCall), + #[allow(missing_docs)] + isDeployerAllowed(isDeployerAllowedCall), + #[allow(missing_docs)] + owner(ownerCall), + #[allow(missing_docs)] + setOwner(setOwnerCall), + #[allow(missing_docs)] + setWhitelistedDeployer(setWhitelistedDeployerCall), + #[allow(missing_docs)] + version(versionCall), + #[allow(missing_docs)] + whitelist(whitelistCall), + } + impl DeployerWhitelistCalls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [8u8, 253u8, 99u8, 34u8], + [19u8, 175u8, 64u8, 53u8], + [84u8, 253u8, 77u8, 80u8], + [141u8, 165u8, 203u8, 91u8], + [155u8, 25u8, 37u8, 26u8], + [177u8, 84u8, 10u8, 1u8], + [189u8, 199u8, 181u8, 79u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(setWhitelistedDeployer), + ::core::stringify!(setOwner), + ::core::stringify!(version), + ::core::stringify!(owner), + ::core::stringify!(whitelist), + ::core::stringify!(isDeployerAllowed), + ::core::stringify!(enableArbitraryContractDeployment), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for DeployerWhitelistCalls { + const NAME: &'static str = "DeployerWhitelistCalls"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 7usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::enableArbitraryContractDeployment(_) => { + ::SELECTOR + } + Self::isDeployerAllowed(_) => { + ::SELECTOR + } + Self::owner(_) => ::SELECTOR, + Self::setOwner(_) => ::SELECTOR, + Self::setWhitelistedDeployer(_) => { + ::SELECTOR + } + Self::version(_) => ::SELECTOR, + Self::whitelist(_) => { + ::SELECTOR + } + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn setWhitelistedDeployer( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(DeployerWhitelistCalls::setWhitelistedDeployer) + } + setWhitelistedDeployer + }, + { + fn setOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(DeployerWhitelistCalls::setOwner) + } + setOwner + }, + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(DeployerWhitelistCalls::version) + } + version + }, + { + fn owner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(DeployerWhitelistCalls::owner) + } + owner + }, + { + fn whitelist( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(DeployerWhitelistCalls::whitelist) + } + whitelist + }, + { + fn isDeployerAllowed( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(DeployerWhitelistCalls::isDeployerAllowed) + } + isDeployerAllowed + }, + { + fn enableArbitraryContractDeployment( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + DeployerWhitelistCalls::enableArbitraryContractDeployment, + ) + } + enableArbitraryContractDeployment + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn setWhitelistedDeployer( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DeployerWhitelistCalls::setWhitelistedDeployer) + } + setWhitelistedDeployer + }, + { + fn setOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DeployerWhitelistCalls::setOwner) + } + setOwner + }, + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DeployerWhitelistCalls::version) + } + version + }, + { + fn owner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DeployerWhitelistCalls::owner) + } + owner + }, + { + fn whitelist( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DeployerWhitelistCalls::whitelist) + } + whitelist + }, + { + fn isDeployerAllowed( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DeployerWhitelistCalls::isDeployerAllowed) + } + isDeployerAllowed + }, + { + fn enableArbitraryContractDeployment( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + DeployerWhitelistCalls::enableArbitraryContractDeployment, + ) + } + enableArbitraryContractDeployment + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::enableArbitraryContractDeployment(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::isDeployerAllowed(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::owner(inner) => { + ::abi_encoded_size(inner) + } + Self::setOwner(inner) => { + ::abi_encoded_size(inner) + } + Self::setWhitelistedDeployer(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::version(inner) => { + ::abi_encoded_size(inner) + } + Self::whitelist(inner) => { + ::abi_encoded_size(inner) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::enableArbitraryContractDeployment(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::isDeployerAllowed(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::owner(inner) => { + ::abi_encode_raw(inner, out) + } + Self::setOwner(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::setWhitelistedDeployer(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::version(inner) => { + ::abi_encode_raw(inner, out) + } + Self::whitelist(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + } + } + } + ///Container for all the [`DeployerWhitelist`](self) events. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum DeployerWhitelistEvents { + #[allow(missing_docs)] + OwnerChanged(OwnerChanged), + #[allow(missing_docs)] + WhitelistDisabled(WhitelistDisabled), + #[allow(missing_docs)] + WhitelistStatusChanged(WhitelistStatusChanged), + } + impl DeployerWhitelistEvents { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 32usize]] = &[ + [ + 141u8, 170u8, 240u8, 96u8, 195u8, 48u8, 108u8, 56u8, 224u8, 104u8, 167u8, + 92u8, 5u8, 75u8, 249u8, 110u8, 205u8, 133u8, 163u8, 219u8, 18u8, 82u8, + 113u8, 44u8, 77u8, 147u8, 99u8, 39u8, 68u8, 196u8, 46u8, 13u8, + ], + [ + 181u8, 50u8, 7u8, 59u8, 56u8, 200u8, 49u8, 69u8, 227u8, 229u8, 19u8, + 83u8, 119u8, 160u8, 139u8, 249u8, 170u8, 181u8, 91u8, 192u8, 253u8, + 124u8, 17u8, 121u8, 205u8, 79u8, 185u8, 149u8, 210u8, 165u8, 21u8, 156u8, + ], + [ + 192u8, 225u8, 6u8, 207u8, 86u8, 142u8, 80u8, 105u8, 143u8, 219u8, 222u8, + 30u8, 255u8, 86u8, 245u8, 165u8, 201u8, 102u8, 204u8, 121u8, 88u8, 227u8, + 126u8, 39u8, 105u8, 24u8, 233u8, 228u8, 204u8, 223u8, 140u8, 212u8, + ], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(WhitelistStatusChanged), + ::core::stringify!(OwnerChanged), + ::core::stringify!(WhitelistDisabled), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolEventInterface for DeployerWhitelistEvents { + const NAME: &'static str = "DeployerWhitelistEvents"; + const COUNT: usize = 3usize; + fn decode_raw_log( + topics: &[alloy_sol_types::Word], + data: &[u8], + ) -> alloy_sol_types::Result { + match topics.first().copied() { + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::OwnerChanged) + } + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::WhitelistDisabled) + } + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::WhitelistStatusChanged) + } + _ => { + alloy_sol_types::private::Err(alloy_sol_types::Error::InvalidLog { + name: ::NAME, + log: alloy_sol_types::private::Box::new( + alloy_sol_types::private::LogData::new_unchecked( + topics.to_vec(), + data.to_vec().into(), + ), + ), + }) + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for DeployerWhitelistEvents { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + match self { + Self::OwnerChanged(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::WhitelistDisabled(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::WhitelistStatusChanged(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + } + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + match self { + Self::OwnerChanged(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::WhitelistDisabled(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::WhitelistStatusChanged(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`DeployerWhitelist`](self) contract instance. + +See the [wrapper's documentation](`DeployerWhitelistInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> DeployerWhitelistInstance { + DeployerWhitelistInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + DeployerWhitelistInstance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + DeployerWhitelistInstance::::deploy_builder(__provider) + } + /**A [`DeployerWhitelist`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`DeployerWhitelist`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct DeployerWhitelistInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for DeployerWhitelistInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("DeployerWhitelistInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > DeployerWhitelistInstance { + /**Creates a new wrapper around an on-chain [`DeployerWhitelist`](self) contract instance. + +See the [wrapper's documentation](`DeployerWhitelistInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl DeployerWhitelistInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> DeployerWhitelistInstance { + DeployerWhitelistInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > DeployerWhitelistInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`enableArbitraryContractDeployment`] function. + pub fn enableArbitraryContractDeployment( + &self, + ) -> alloy_contract::SolCallBuilder< + &P, + enableArbitraryContractDeploymentCall, + N, + > { + self.call_builder(&enableArbitraryContractDeploymentCall) + } + ///Creates a new call builder for the [`isDeployerAllowed`] function. + pub fn isDeployerAllowed( + &self, + _deployer: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, isDeployerAllowedCall, N> { + self.call_builder(&isDeployerAllowedCall { _deployer }) + } + ///Creates a new call builder for the [`owner`] function. + pub fn owner(&self) -> alloy_contract::SolCallBuilder<&P, ownerCall, N> { + self.call_builder(&ownerCall) + } + ///Creates a new call builder for the [`setOwner`] function. + pub fn setOwner( + &self, + _owner: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, setOwnerCall, N> { + self.call_builder(&setOwnerCall { _owner }) + } + ///Creates a new call builder for the [`setWhitelistedDeployer`] function. + pub fn setWhitelistedDeployer( + &self, + _deployer: alloy::sol_types::private::Address, + _isWhitelisted: bool, + ) -> alloy_contract::SolCallBuilder<&P, setWhitelistedDeployerCall, N> { + self.call_builder( + &setWhitelistedDeployerCall { + _deployer, + _isWhitelisted, + }, + ) + } + ///Creates a new call builder for the [`version`] function. + pub fn version(&self) -> alloy_contract::SolCallBuilder<&P, versionCall, N> { + self.call_builder(&versionCall) + } + ///Creates a new call builder for the [`whitelist`] function. + pub fn whitelist( + &self, + _0: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, whitelistCall, N> { + self.call_builder(&whitelistCall(_0)) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > DeployerWhitelistInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + ///Creates a new event filter for the [`OwnerChanged`] event. + pub fn OwnerChanged_filter(&self) -> alloy_contract::Event<&P, OwnerChanged, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`WhitelistDisabled`] event. + pub fn WhitelistDisabled_filter( + &self, + ) -> alloy_contract::Event<&P, WhitelistDisabled, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`WhitelistStatusChanged`] event. + pub fn WhitelistStatusChanged_filter( + &self, + ) -> alloy_contract::Event<&P, WhitelistStatusChanged, N> { + self.event_filter::() + } + } +} diff --git a/bindings/rust/src/deputy_pause_module.rs b/bindings/rust/src/deputy_pause_module.rs new file mode 100644 index 000000000..dae5a5fd9 --- /dev/null +++ b/bindings/rust/src/deputy_pause_module.rs @@ -0,0 +1,5038 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface DeputyPauseModule { + error DeputyPauseModule_ExecutionFailed(string); + error DeputyPauseModule_InvalidDeputy(); + error DeputyPauseModule_NonceAlreadyUsed(); + error DeputyPauseModule_NotFromSafe(); + error DeputyPauseModule_SuperchainNotPaused(); + error DeputyPauseModule_Unauthorized(); + error ECDSAInvalidSignature(); + error ECDSAInvalidSignatureLength(uint256 length); + error ECDSAInvalidSignatureS(bytes32 s); + error InvalidShortString(); + error StringTooLong(string str); + + event DeputySet(address indexed deputy); + event EIP712DomainChanged(); + event PauseTriggered(address indexed deputy, bytes32 nonce, address identifier); + + constructor(address _guardianSafe, address _foundationSafe, address _superchainConfig, address _deputy, bytes _deputySignature); + + function deputy() external view returns (address); + function deputyAuthMessageTypehash() external pure returns (bytes32 deputyAuthMessageTypehash_); + function eip712Domain() external view returns (bytes1 fields, string memory name, string memory version, uint256 chainId, address verifyingContract, bytes32 salt, uint256[] memory extensions); + function foundationSafe() external view returns (address foundationSafe_); + function guardianSafe() external view returns (address guardianSafe_); + function pause(bytes32 _nonce, address _identifier, bytes memory _signature) external; + function pauseMessageTypehash() external pure returns (bytes32 pauseMessageTypehash_); + function setDeputy(address _deputy, bytes memory _deputySignature) external; + function superchainConfig() external view returns (address superchainConfig_); + function usedNonces(bytes32) external view returns (bool); + function version() external view returns (string memory); +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "constructor", + "inputs": [ + { + "name": "_guardianSafe", + "type": "address", + "internalType": "contract Safe" + }, + { + "name": "_foundationSafe", + "type": "address", + "internalType": "contract Safe" + }, + { + "name": "_superchainConfig", + "type": "address", + "internalType": "contract ISuperchainConfig" + }, + { + "name": "_deputy", + "type": "address", + "internalType": "address" + }, + { + "name": "_deputySignature", + "type": "bytes", + "internalType": "bytes" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "deputy", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "deputyAuthMessageTypehash", + "inputs": [], + "outputs": [ + { + "name": "deputyAuthMessageTypehash_", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "eip712Domain", + "inputs": [], + "outputs": [ + { + "name": "fields", + "type": "bytes1", + "internalType": "bytes1" + }, + { + "name": "name", + "type": "string", + "internalType": "string" + }, + { + "name": "version", + "type": "string", + "internalType": "string" + }, + { + "name": "chainId", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "verifyingContract", + "type": "address", + "internalType": "address" + }, + { + "name": "salt", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "extensions", + "type": "uint256[]", + "internalType": "uint256[]" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "foundationSafe", + "inputs": [], + "outputs": [ + { + "name": "foundationSafe_", + "type": "address", + "internalType": "contract Safe" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "guardianSafe", + "inputs": [], + "outputs": [ + { + "name": "guardianSafe_", + "type": "address", + "internalType": "contract Safe" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "pause", + "inputs": [ + { + "name": "_nonce", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "_identifier", + "type": "address", + "internalType": "address" + }, + { + "name": "_signature", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "pauseMessageTypehash", + "inputs": [], + "outputs": [ + { + "name": "pauseMessageTypehash_", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "setDeputy", + "inputs": [ + { + "name": "_deputy", + "type": "address", + "internalType": "address" + }, + { + "name": "_deputySignature", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "superchainConfig", + "inputs": [], + "outputs": [ + { + "name": "superchainConfig_", + "type": "address", + "internalType": "contract ISuperchainConfig" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "usedNonces", + "inputs": [ + { + "name": "", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "version", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "view" + }, + { + "type": "event", + "name": "DeputySet", + "inputs": [ + { + "name": "deputy", + "type": "address", + "indexed": true, + "internalType": "address" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "EIP712DomainChanged", + "inputs": [], + "anonymous": false + }, + { + "type": "event", + "name": "PauseTriggered", + "inputs": [ + { + "name": "deputy", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "nonce", + "type": "bytes32", + "indexed": false, + "internalType": "bytes32" + }, + { + "name": "identifier", + "type": "address", + "indexed": false, + "internalType": "address" + } + ], + "anonymous": false + }, + { + "type": "error", + "name": "DeputyPauseModule_ExecutionFailed", + "inputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ] + }, + { + "type": "error", + "name": "DeputyPauseModule_InvalidDeputy", + "inputs": [] + }, + { + "type": "error", + "name": "DeputyPauseModule_NonceAlreadyUsed", + "inputs": [] + }, + { + "type": "error", + "name": "DeputyPauseModule_NotFromSafe", + "inputs": [] + }, + { + "type": "error", + "name": "DeputyPauseModule_SuperchainNotPaused", + "inputs": [] + }, + { + "type": "error", + "name": "DeputyPauseModule_Unauthorized", + "inputs": [] + }, + { + "type": "error", + "name": "ECDSAInvalidSignature", + "inputs": [] + }, + { + "type": "error", + "name": "ECDSAInvalidSignatureLength", + "inputs": [ + { + "name": "length", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { + "type": "error", + "name": "ECDSAInvalidSignatureS", + "inputs": [ + { + "name": "s", + "type": "bytes32", + "internalType": "bytes32" + } + ] + }, + { + "type": "error", + "name": "InvalidShortString", + "inputs": [] + }, + { + "type": "error", + "name": "StringTooLong", + "inputs": [ + { + "name": "str", + "type": "string", + "internalType": "string" + } + ] + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod DeputyPauseModule { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x6101c0604052348015610010575f80fd5b50604051611c0c380380611c0c83398101604081905261002f91610573565b604080518082018252601181527044657075747950617573654d6f64756c6560781b602080830191909152825180840190935260018352603160f81b908301529061007a825f610137565b61012052610089816001610137565b61014052815160208084019190912060e052815190820120610100524660a05261010260e05161010051604080515f80516020611bec83398151915260208201529081019290925260608201524660808201523060a08201525f9060c00160405160208183030381529060405280519060200120905090565b60805250503060c0526101158282610169565b50506001600160a01b039283166101605290821661018052166101a052610819565b5f6020835110156101525761014b8361025b565b9050610163565b8161015d84826106ee565b5060ff90505b92915050565b5f6101d37f92e47526b2e32be4f66cd2600e9cda9147735107631c0b241a067693f49b7f38846040516020016101b29291909182526001600160a01b0316602082015260400190565b604051602081830303815290604052805190602001206102a160201b60201c565b90506001600160a01b0383166101e982846102cd565b6001600160a01b03161461021057604051630618de0760e01b815260040160405180910390fd5b600280546001600160a01b0319166001600160a01b0385169081179091556040517f6b5500f6cd2cd4a29ab2c706a6c65833d0633a568f7263460775cebcc8e9a99b905f90a2505050565b5f80829050601f8151111561028e578260405163305a27a960e01b815260040161028591906107ad565b60405180910390fd5b8051610299826107e2565b179392505050565b5f6101636102ad6102f6565b8360405161190160f01b8152600281019290925260228201526042902090565b5f8080806102db8686610385565b919450925090506102ec82826103ce565b5090949350505050565b5f60c0516001600160a01b0316306001600160a01b031614801561031b575060a05146145b15610327575060805190565b61038060e05161010051604080515f80516020611bec83398151915260208201529081019290925260608201524660808201523060a08201525f9060c00160405160208183030381529060405280519060200120905090565b905090565b5f805f83516041036103bc576020840151604085015160608601515f1a6103ae8882858561048a565b9550955095505050506103c7565b505081515f91506002905b9250925092565b5f8260038111156103e1576103e1610805565b036103ea575050565b60018260038111156103fe576103fe610805565b0361041c5760405163f645eedf60e01b815260040160405180910390fd5b600282600381111561043057610430610805565b036104515760405163fce698f760e01b815260048101829052602401610285565b600382600381111561046557610465610805565b03610486576040516335e2f38360e21b815260048101829052602401610285565b5050565b5f80806fa2a8918ca85bafe22016d0b997e4df60600160ff1b038411156104b957505f9150600390508261053e565b604080515f808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa15801561050a573d5f803e3d5ffd5b5050604051601f1901519150506001600160a01b03811661053557505f92506001915082905061053e565b92505f91508190505b9450945094915050565b6001600160a01b038116811461055c575f80fd5b50565b634e487b7160e01b5f52604160045260245ffd5b5f805f805f60a08688031215610587575f80fd5b855161059281610548565b60208701519095506105a381610548565b60408701519094506105b481610548565b60608701519093506105c581610548565b60808701519092506001600160401b03808211156105e1575f80fd5b818801915088601f8301126105f4575f80fd5b8151818111156106065761060661055f565b604051601f8201601f19908116603f0116810190838211818310171561062e5761062e61055f565b816040528281528b6020848701011115610646575f80fd5b8260208601602083015e5f6020848301015280955050505050509295509295909350565b600181811c9082168061067e57607f821691505b60208210810361069c57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156106e957805f5260205f20601f840160051c810160208510156106c75750805b601f840160051c820191505b818110156106e6575f81556001016106d3565b50505b505050565b81516001600160401b038111156107075761070761055f565b61071b81610715845461066a565b846106a2565b602080601f83116001811461074e575f84156107375750858301515b5f19600386901b1c1916600185901b1785556107a5565b5f85815260208120601f198616915b8281101561077c5788860151825594840194600190910190840161075d565b508582101561079957878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b8051602080830151919081101561069c575f1960209190910360031b1b16919050565b634e487b7160e01b5f52602160045260245ffd5b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516113496108a35f395f818160f201528181610444015261060501525f81816101a2015261071a01525f81816101c8015261041901525f6109c001525f61098f01525f610acc01525f610aa401525f6109ff01525f610a2901525f610a5301526113495ff3fe608060405234801561000f575f80fd5b50600436106100c4575f3560e01c80638851bfbd1161007d578063da931fe411610058578063da931fe41461021c578063f1c9eed714610242578063feb6172414610262575f80fd5b80638851bfbd146101a05780639d786a02146101c6578063cf2e2379146101ec575f80fd5b806335e80ab3116100ad57806335e80ab3146100f057806354fd4d501461013c57806384b0196e14610185575f80fd5b8063142b53c9146100c8578063183b708b146100dd575b5f80fd5b6100db6100d6366004610fbc565b610294565b005b6100db6100eb36600461100f565b610702565b7f00000000000000000000000000000000000000000000000000000000000000005b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b6101786040518060400160405280600581526020017f332e302e3000000000000000000000000000000000000000000000000000000081525081565b60405161013391906110a6565b61018d61077f565b60405161013397969594939291906110bf565b7f0000000000000000000000000000000000000000000000000000000000000000610112565b7f0000000000000000000000000000000000000000000000000000000000000000610112565b7f92e47526b2e32be4f66cd2600e9cda9147735107631c0b241a067693f49b7f385b604051908152602001610133565b7f0ad9a3778ba0f89045b0ba6e23129cdbd178a22b085d85b5dd8a48c8af831b5461020e565b6002546101129073ffffffffffffffffffffffffffffffffffffffff1681565b61028461027036600461117f565b60036020525f908152604090205460ff1681565b6040519015158152602001610133565b604080517f0ad9a3778ba0f89045b0ba6e23129cdbd178a22b085d85b5dd8a48c8af831b54602082015290810184905273ffffffffffffffffffffffffffffffffffffffff831660608201525f90610305906080015b604051602081830303815290604052805190602001206107dd565b60025490915073ffffffffffffffffffffffffffffffffffffffff1661032b828461082a565b73ffffffffffffffffffffffffffffffffffffffff1614610378576040517f8d279ab500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8481526003602052604090205460ff16156103c0576040517f7313456500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8481526003602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555173ffffffffffffffffffffffffffffffffffffffff858116602483015282917f000000000000000000000000000000000000000000000000000000000000000090911690635229073f907f0000000000000000000000000000000000000000000000000000000000000000908490604401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f76a67a5100000000000000000000000000000000000000000000000000000000179052517fffffffff0000000000000000000000000000000000000000000000000000000060e086901b16815261051a939291905f906004016111c3565b5f604051808303815f875af1158015610535573d5f803e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405261057a919081019061124c565b91509150816105c057806040517f8d1364be0000000000000000000000000000000000000000000000000000000081526004016105b791906110a6565b60405180910390fd5b6040517f2e48152c00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff86811660048301527f00000000000000000000000000000000000000000000000000000000000000001690632e48152c90602401602060405180830381865afa15801561064a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061066e91906112d2565b6106a4576040517feb7171cd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002546040805188815273ffffffffffffffffffffffffffffffffffffffff8881166020830152909216917faa64a95e3acb9db4deaf865d9fcc62a5d47996b643e7fcc799e3b499c9bff2d9910160405180910390a2505050505050565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610771576040517f71da2c9100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61077b8282610852565b5050565b5f6060805f805f6060610790610988565b6107986109b9565b604080515f808252602082019092527f0f000000000000000000000000000000000000000000000000000000000000009b939a50919850469750309650945092509050565b5f6108246107e96109e6565b836040517f19010000000000000000000000000000000000000000000000000000000000008152600281019290925260228201526042902090565b92915050565b5f805f806108388686610b1c565b9250925092506108488282610b65565b5090949350505050565b5f6108a87f92e47526b2e32be4f66cd2600e9cda9147735107631c0b241a067693f49b7f38846040516020016102ea92919091825273ffffffffffffffffffffffffffffffffffffffff16602082015260400190565b90508273ffffffffffffffffffffffffffffffffffffffff166108cb828461082a565b73ffffffffffffffffffffffffffffffffffffffff1614610918576040517f0618de0700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff85169081179091556040517f6b5500f6cd2cd4a29ab2c706a6c65833d0633a568f7263460775cebcc8e9a99b905f90a2505050565b60606109b47f00000000000000000000000000000000000000000000000000000000000000005f610c68565b905090565b60606109b47f00000000000000000000000000000000000000000000000000000000000000006001610c68565b5f3073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016148015610a4b57507f000000000000000000000000000000000000000000000000000000000000000046145b15610a7557507f000000000000000000000000000000000000000000000000000000000000000090565b6109b4604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201527f0000000000000000000000000000000000000000000000000000000000000000918101919091527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a08201525f9060c00160405160208183030381529060405280519060200120905090565b5f805f8351604103610b53576020840151604085015160608601515f1a610b4588828585610d11565b955095509550505050610b5e565b505081515f91506002905b9250925092565b5f826003811115610b7857610b78611196565b03610b81575050565b6001826003811115610b9557610b95611196565b03610bcc576040517ff645eedf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002826003811115610be057610be0611196565b03610c1a576040517ffce698f7000000000000000000000000000000000000000000000000000000008152600481018290526024016105b7565b6003826003811115610c2e57610c2e611196565b0361077b576040517fd78bce0c000000000000000000000000000000000000000000000000000000008152600481018290526024016105b7565b606060ff8314610c8257610c7b83610e04565b9050610824565b818054610c8e906112eb565b80601f0160208091040260200160405190810160405280929190818152602001828054610cba906112eb565b8015610d055780601f10610cdc57610100808354040283529160200191610d05565b820191905f5260205f20905b815481529060010190602001808311610ce857829003601f168201915b50505050509050610824565b5f80807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841115610d4a57505f91506003905082610dfa565b604080515f808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015610d9b573d5f803e3d5ffd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116610df157505f925060019150829050610dfa565b92505f91508190505b9450945094915050565b60605f610e1083610e41565b6040805160208082528183019092529192505f91906020820181803683375050509182525060208101929092525090565b5f60ff8216601f811115610824576040517fb3512b0c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b803573ffffffffffffffffffffffffffffffffffffffff81168114610ea4575f80fd5b919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715610f1d57610f1d610ea9565b604052919050565b5f67ffffffffffffffff821115610f3e57610f3e610ea9565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b5f82601f830112610f79575f80fd5b8135610f8c610f8782610f25565b610ed6565b818152846020838601011115610fa0575f80fd5b816020850160208301375f918101602001919091529392505050565b5f805f60608486031215610fce575f80fd5b83359250610fde60208501610e81565b9150604084013567ffffffffffffffff811115610ff9575f80fd5b61100586828701610f6a565b9150509250925092565b5f8060408385031215611020575f80fd5b61102983610e81565b9150602083013567ffffffffffffffff811115611044575f80fd5b61105085828601610f6a565b9150509250929050565b5f81518084528060208401602086015e5f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b602081525f6110b8602083018461105a565b9392505050565b7fff00000000000000000000000000000000000000000000000000000000000000881681525f602060e060208401526110fb60e084018a61105a565b838103604085015261110d818a61105a565b6060850189905273ffffffffffffffffffffffffffffffffffffffff8816608086015260a0850187905284810360c0860152855180825260208088019350909101905f5b8181101561116d57835183529284019291840191600101611151565b50909c9b505050505050505050505050565b5f6020828403121561118f575f80fd5b5035919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b73ffffffffffffffffffffffffffffffffffffffff85168152836020820152608060408201525f6111f7608083018561105a565b90506002831061122e577f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b82606083015295945050505050565b80518015158114610ea4575f80fd5b5f806040838503121561125d575f80fd5b6112668361123d565b9150602083015167ffffffffffffffff811115611281575f80fd5b8301601f81018513611291575f80fd5b805161129f610f8782610f25565b8181528660208385010111156112b3575f80fd5b8160208401602083015e5f602083830101528093505050509250929050565b5f602082840312156112e2575f80fd5b6110b88261123d565b600181811c908216806112ff57607f821691505b602082108103611336577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5091905056fea164736f6c6343000819000a8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"a\x01\xC0`@R4\x80\x15a\0\x10W_\x80\xFD[P`@Qa\x1C\x0C8\x03\x80a\x1C\x0C\x839\x81\x01`@\x81\x90Ra\0/\x91a\x05sV[`@\x80Q\x80\x82\x01\x82R`\x11\x81RpDeputyPauseModule`x\x1B` \x80\x83\x01\x91\x90\x91R\x82Q\x80\x84\x01\x90\x93R`\x01\x83R`1`\xF8\x1B\x90\x83\x01R\x90a\0z\x82_a\x017V[a\x01 Ra\0\x89\x81`\x01a\x017V[a\x01@R\x81Q` \x80\x84\x01\x91\x90\x91 `\xE0R\x81Q\x90\x82\x01 a\x01\0RF`\xA0Ra\x01\x02`\xE0Qa\x01\0Q`@\x80Q_\x80Q` a\x1B\xEC\x839\x81Q\x91R` \x82\x01R\x90\x81\x01\x92\x90\x92R``\x82\x01RF`\x80\x82\x01R0`\xA0\x82\x01R_\x90`\xC0\x01`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 \x90P\x90V[`\x80RPP0`\xC0Ra\x01\x15\x82\x82a\x01iV[PP`\x01`\x01`\xA0\x1B\x03\x92\x83\x16a\x01`R\x90\x82\x16a\x01\x80R\x16a\x01\xA0Ra\x08\x19V[_` \x83Q\x10\x15a\x01RWa\x01K\x83a\x02[V[\x90Pa\x01cV[\x81a\x01]\x84\x82a\x06\xEEV[P`\xFF\x90P[\x92\x91PPV[_a\x01\xD3\x7F\x92\xE4u&\xB2\xE3+\xE4\xF6l\xD2`\x0E\x9C\xDA\x91GsQ\x07c\x1C\x0B$\x1A\x06v\x93\xF4\x9B\x7F8\x84`@Q` \x01a\x01\xB2\x92\x91\x90\x91\x82R`\x01`\x01`\xA0\x1B\x03\x16` \x82\x01R`@\x01\x90V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 a\x02\xA1` \x1B` \x1CV[\x90P`\x01`\x01`\xA0\x1B\x03\x83\x16a\x01\xE9\x82\x84a\x02\xCDV[`\x01`\x01`\xA0\x1B\x03\x16\x14a\x02\x10W`@Qc\x06\x18\xDE\x07`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x02\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x85\x16\x90\x81\x17\x90\x91U`@Q\x7FkU\0\xF6\xCD,\xD4\xA2\x9A\xB2\xC7\x06\xA6\xC6X3\xD0c:V\x8FrcF\x07u\xCE\xBC\xC8\xE9\xA9\x9B\x90_\x90\xA2PPPV[_\x80\x82\x90P`\x1F\x81Q\x11\x15a\x02\x8EW\x82`@Qc0Z'\xA9`\xE0\x1B\x81R`\x04\x01a\x02\x85\x91\x90a\x07\xADV[`@Q\x80\x91\x03\x90\xFD[\x80Qa\x02\x99\x82a\x07\xE2V[\x17\x93\x92PPPV[_a\x01ca\x02\xADa\x02\xF6V[\x83`@Qa\x19\x01`\xF0\x1B\x81R`\x02\x81\x01\x92\x90\x92R`\"\x82\x01R`B\x90 \x90V[_\x80\x80\x80a\x02\xDB\x86\x86a\x03\x85V[\x91\x94P\x92P\x90Pa\x02\xEC\x82\x82a\x03\xCEV[P\x90\x94\x93PPPPV[_`\xC0Q`\x01`\x01`\xA0\x1B\x03\x160`\x01`\x01`\xA0\x1B\x03\x16\x14\x80\x15a\x03\x1BWP`\xA0QF\x14[\x15a\x03'WP`\x80Q\x90V[a\x03\x80`\xE0Qa\x01\0Q`@\x80Q_\x80Q` a\x1B\xEC\x839\x81Q\x91R` \x82\x01R\x90\x81\x01\x92\x90\x92R``\x82\x01RF`\x80\x82\x01R0`\xA0\x82\x01R_\x90`\xC0\x01`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 \x90P\x90V[\x90P\x90V[_\x80_\x83Q`A\x03a\x03\xBCW` \x84\x01Q`@\x85\x01Q``\x86\x01Q_\x1Aa\x03\xAE\x88\x82\x85\x85a\x04\x8AV[\x95P\x95P\x95PPPPa\x03\xC7V[PP\x81Q_\x91P`\x02\x90[\x92P\x92P\x92V[_\x82`\x03\x81\x11\x15a\x03\xE1Wa\x03\xE1a\x08\x05V[\x03a\x03\xEAWPPV[`\x01\x82`\x03\x81\x11\x15a\x03\xFEWa\x03\xFEa\x08\x05V[\x03a\x04\x1CW`@Qc\xF6E\xEE\xDF`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x02\x82`\x03\x81\x11\x15a\x040Wa\x040a\x08\x05V[\x03a\x04QW`@Qc\xFC\xE6\x98\xF7`\xE0\x1B\x81R`\x04\x81\x01\x82\x90R`$\x01a\x02\x85V[`\x03\x82`\x03\x81\x11\x15a\x04eWa\x04ea\x08\x05V[\x03a\x04\x86W`@Qc5\xE2\xF3\x83`\xE2\x1B\x81R`\x04\x81\x01\x82\x90R`$\x01a\x02\x85V[PPV[_\x80\x80o\xA2\xA8\x91\x8C\xA8[\xAF\xE2 \x16\xD0\xB9\x97\xE4\xDF``\x01`\xFF\x1B\x03\x84\x11\x15a\x04\xB9WP_\x91P`\x03\x90P\x82a\x05>V[`@\x80Q_\x80\x82R` \x82\x01\x80\x84R\x8A\x90R`\xFF\x89\x16\x92\x82\x01\x92\x90\x92R``\x81\x01\x87\x90R`\x80\x81\x01\x86\x90R`\x01\x90`\xA0\x01` `@Q` \x81\x03\x90\x80\x84\x03\x90\x85Z\xFA\x15\x80\x15a\x05\nW=_\x80>=_\xFD[PP`@Q`\x1F\x19\x01Q\x91PP`\x01`\x01`\xA0\x1B\x03\x81\x16a\x055WP_\x92P`\x01\x91P\x82\x90Pa\x05>V[\x92P_\x91P\x81\x90P[\x94P\x94P\x94\x91PPV[`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a\x05\\W_\x80\xFD[PV[cNH{q`\xE0\x1B_R`A`\x04R`$_\xFD[_\x80_\x80_`\xA0\x86\x88\x03\x12\x15a\x05\x87W_\x80\xFD[\x85Qa\x05\x92\x81a\x05HV[` \x87\x01Q\x90\x95Pa\x05\xA3\x81a\x05HV[`@\x87\x01Q\x90\x94Pa\x05\xB4\x81a\x05HV[``\x87\x01Q\x90\x93Pa\x05\xC5\x81a\x05HV[`\x80\x87\x01Q\x90\x92P`\x01`\x01`@\x1B\x03\x80\x82\x11\x15a\x05\xE1W_\x80\xFD[\x81\x88\x01\x91P\x88`\x1F\x83\x01\x12a\x05\xF4W_\x80\xFD[\x81Q\x81\x81\x11\x15a\x06\x06Wa\x06\x06a\x05_V[`@Q`\x1F\x82\x01`\x1F\x19\x90\x81\x16`?\x01\x16\x81\x01\x90\x83\x82\x11\x81\x83\x10\x17\x15a\x06.Wa\x06.a\x05_V[\x81`@R\x82\x81R\x8B` \x84\x87\x01\x01\x11\x15a\x06FW_\x80\xFD[\x82` \x86\x01` \x83\x01^_` \x84\x83\x01\x01R\x80\x95PPPPPP\x92\x95P\x92\x95\x90\x93PV[`\x01\x81\x81\x1C\x90\x82\x16\x80a\x06~W`\x7F\x82\x16\x91P[` \x82\x10\x81\x03a\x06\x9CWcNH{q`\xE0\x1B_R`\"`\x04R`$_\xFD[P\x91\x90PV[`\x1F\x82\x11\x15a\x06\xE9W\x80_R` _ `\x1F\x84\x01`\x05\x1C\x81\x01` \x85\x10\x15a\x06\xC7WP\x80[`\x1F\x84\x01`\x05\x1C\x82\x01\x91P[\x81\x81\x10\x15a\x06\xE6W_\x81U`\x01\x01a\x06\xD3V[PP[PPPV[\x81Q`\x01`\x01`@\x1B\x03\x81\x11\x15a\x07\x07Wa\x07\x07a\x05_V[a\x07\x1B\x81a\x07\x15\x84Ta\x06jV[\x84a\x06\xA2V[` \x80`\x1F\x83\x11`\x01\x81\x14a\x07NW_\x84\x15a\x077WP\x85\x83\x01Q[_\x19`\x03\x86\x90\x1B\x1C\x19\x16`\x01\x85\x90\x1B\x17\x85Ua\x07\xA5V[_\x85\x81R` \x81 `\x1F\x19\x86\x16\x91[\x82\x81\x10\x15a\x07|W\x88\x86\x01Q\x82U\x94\x84\x01\x94`\x01\x90\x91\x01\x90\x84\x01a\x07]V[P\x85\x82\x10\x15a\x07\x99W\x87\x85\x01Q_\x19`\x03\x88\x90\x1B`\xF8\x16\x1C\x19\x16\x81U[PP`\x01\x84`\x01\x1B\x01\x85U[PPPPPPV[` \x81R_\x82Q\x80` \x84\x01R\x80` \x85\x01`@\x85\x01^_`@\x82\x85\x01\x01R`@`\x1F\x19`\x1F\x83\x01\x16\x84\x01\x01\x91PP\x92\x91PPV[\x80Q` \x80\x83\x01Q\x91\x90\x81\x10\x15a\x06\x9CW_\x19` \x91\x90\x91\x03`\x03\x1B\x1B\x16\x91\x90PV[cNH{q`\xE0\x1B_R`!`\x04R`$_\xFD[`\x80Q`\xA0Q`\xC0Q`\xE0Qa\x01\0Qa\x01 Qa\x01@Qa\x01`Qa\x01\x80Qa\x01\xA0Qa\x13Ia\x08\xA3_9_\x81\x81`\xF2\x01R\x81\x81a\x04D\x01Ra\x06\x05\x01R_\x81\x81a\x01\xA2\x01Ra\x07\x1A\x01R_\x81\x81a\x01\xC8\x01Ra\x04\x19\x01R_a\t\xC0\x01R_a\t\x8F\x01R_a\n\xCC\x01R_a\n\xA4\x01R_a\t\xFF\x01R_a\n)\x01R_a\nS\x01Ra\x13I_\xF3\xFE`\x80`@R4\x80\x15a\0\x0FW_\x80\xFD[P`\x046\x10a\0\xC4W_5`\xE0\x1C\x80c\x88Q\xBF\xBD\x11a\0}W\x80c\xDA\x93\x1F\xE4\x11a\0XW\x80c\xDA\x93\x1F\xE4\x14a\x02\x1CW\x80c\xF1\xC9\xEE\xD7\x14a\x02BW\x80c\xFE\xB6\x17$\x14a\x02bW_\x80\xFD[\x80c\x88Q\xBF\xBD\x14a\x01\xA0W\x80c\x9Dxj\x02\x14a\x01\xC6W\x80c\xCF.#y\x14a\x01\xECW_\x80\xFD[\x80c5\xE8\n\xB3\x11a\0\xADW\x80c5\xE8\n\xB3\x14a\0\xF0W\x80cT\xFDMP\x14a\x01=_\xFD[PPPP`@Q=_\x82>`\x1F=\x90\x81\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x82\x01`@Ra\x05z\x91\x90\x81\x01\x90a\x12LV[\x91P\x91P\x81a\x05\xC0W\x80`@Q\x7F\x8D\x13d\xBE\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\x05\xB7\x91\x90a\x10\xA6V[`@Q\x80\x91\x03\x90\xFD[`@Q\x7F.H\x15,\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\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x86\x81\x16`\x04\x83\x01R\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x90c.H\x15,\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x06JW=_\x80>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x06n\x91\x90a\x12\xD2V[a\x06\xA4W`@Q\x7F\xEBqq\xCD\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\x01`@Q\x80\x91\x03\x90\xFD[`\x02T`@\x80Q\x88\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x88\x81\x16` \x83\x01R\x90\x92\x16\x91\x7F\xAAd\xA9^:\xCB\x9D\xB4\xDE\xAF\x86]\x9F\xCCb\xA5\xD4y\x96\xB6C\xE7\xFC\xC7\x99\xE3\xB4\x99\xC9\xBF\xF2\xD9\x91\x01`@Q\x80\x91\x03\x90\xA2PPPPPPV[3s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x14a\x07qW`@Q\x7Fq\xDA,\x91\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\x01`@Q\x80\x91\x03\x90\xFD[a\x07{\x82\x82a\x08RV[PPV[_``\x80_\x80_``a\x07\x90a\t\x88V[a\x07\x98a\t\xB9V[`@\x80Q_\x80\x82R` \x82\x01\x90\x92R\x7F\x0F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x9B\x93\x9AP\x91\x98PF\x97P0\x96P\x94P\x92P\x90PV[_a\x08$a\x07\xE9a\t\xE6V[\x83`@Q\x7F\x19\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81R`\x02\x81\x01\x92\x90\x92R`\"\x82\x01R`B\x90 \x90V[\x92\x91PPV[_\x80_\x80a\x088\x86\x86a\x0B\x1CV[\x92P\x92P\x92Pa\x08H\x82\x82a\x0BeV[P\x90\x94\x93PPPPV[_a\x08\xA8\x7F\x92\xE4u&\xB2\xE3+\xE4\xF6l\xD2`\x0E\x9C\xDA\x91GsQ\x07c\x1C\x0B$\x1A\x06v\x93\xF4\x9B\x7F8\x84`@Q` \x01a\x02\xEA\x92\x91\x90\x91\x82Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16` \x82\x01R`@\x01\x90V[\x90P\x82s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a\x08\xCB\x82\x84a\x08*V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14a\t\x18W`@Q\x7F\x06\x18\xDE\x07\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\x01`@Q\x80\x91\x03\x90\xFD[`\x02\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x85\x16\x90\x81\x17\x90\x91U`@Q\x7FkU\0\xF6\xCD,\xD4\xA2\x9A\xB2\xC7\x06\xA6\xC6X3\xD0c:V\x8FrcF\x07u\xCE\xBC\xC8\xE9\xA9\x9B\x90_\x90\xA2PPPV[``a\t\xB4\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0_a\x0ChV[\x90P\x90V[``a\t\xB4\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01a\x0ChV[_0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x14\x80\x15a\nKWP\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0F\x14[\x15a\nuWP\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90V[a\t\xB4`@\x80Q\x7F\x8Bs\xC3\xC6\x9B\xB8\xFE=Q.\xCCL\xF7Y\xCCy#\x9F{\x17\x9B\x0F\xFA\xCA\xA9\xA7]R+9@\x0F` \x82\x01R\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x91\x81\x01\x91\x90\x91R\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0``\x82\x01RF`\x80\x82\x01R0`\xA0\x82\x01R_\x90`\xC0\x01`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 \x90P\x90V[_\x80_\x83Q`A\x03a\x0BSW` \x84\x01Q`@\x85\x01Q``\x86\x01Q_\x1Aa\x0BE\x88\x82\x85\x85a\r\x11V[\x95P\x95P\x95PPPPa\x0B^V[PP\x81Q_\x91P`\x02\x90[\x92P\x92P\x92V[_\x82`\x03\x81\x11\x15a\x0BxWa\x0Bxa\x11\x96V[\x03a\x0B\x81WPPV[`\x01\x82`\x03\x81\x11\x15a\x0B\x95Wa\x0B\x95a\x11\x96V[\x03a\x0B\xCCW`@Q\x7F\xF6E\xEE\xDF\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\x01`@Q\x80\x91\x03\x90\xFD[`\x02\x82`\x03\x81\x11\x15a\x0B\xE0Wa\x0B\xE0a\x11\x96V[\x03a\x0C\x1AW`@Q\x7F\xFC\xE6\x98\xF7\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\x81\x01\x82\x90R`$\x01a\x05\xB7V[`\x03\x82`\x03\x81\x11\x15a\x0C.Wa\x0C.a\x11\x96V[\x03a\x07{W`@Q\x7F\xD7\x8B\xCE\x0C\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\x81\x01\x82\x90R`$\x01a\x05\xB7V[```\xFF\x83\x14a\x0C\x82Wa\x0C{\x83a\x0E\x04V[\x90Pa\x08$V[\x81\x80Ta\x0C\x8E\x90a\x12\xEBV[\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x92\x91\x90\x81\x81R` \x01\x82\x80Ta\x0C\xBA\x90a\x12\xEBV[\x80\x15a\r\x05W\x80`\x1F\x10a\x0C\xDCWa\x01\0\x80\x83T\x04\x02\x83R\x91` \x01\x91a\r\x05V[\x82\x01\x91\x90_R` _ \x90[\x81T\x81R\x90`\x01\x01\x90` \x01\x80\x83\x11a\x0C\xE8W\x82\x90\x03`\x1F\x16\x82\x01\x91[PPPPP\x90Pa\x08$V[_\x80\x80\x7F\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF]WnsW\xA4P\x1D\xDF\xE9/Fh\x1B \xA0\x84\x11\x15a\rJWP_\x91P`\x03\x90P\x82a\r\xFAV[`@\x80Q_\x80\x82R` \x82\x01\x80\x84R\x8A\x90R`\xFF\x89\x16\x92\x82\x01\x92\x90\x92R``\x81\x01\x87\x90R`\x80\x81\x01\x86\x90R`\x01\x90`\xA0\x01` `@Q` \x81\x03\x90\x80\x84\x03\x90\x85Z\xFA\x15\x80\x15a\r\x9BW=_\x80>=_\xFD[PP`@Q\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x01Q\x91PPs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16a\r\xF1WP_\x92P`\x01\x91P\x82\x90Pa\r\xFAV[\x92P_\x91P\x81\x90P[\x94P\x94P\x94\x91PPV[``_a\x0E\x10\x83a\x0EAV[`@\x80Q` \x80\x82R\x81\x83\x01\x90\x92R\x91\x92P_\x91\x90` \x82\x01\x81\x806\x837PPP\x91\x82RP` \x81\x01\x92\x90\x92RP\x90V[_`\xFF\x82\x16`\x1F\x81\x11\x15a\x08$W`@Q\x7F\xB3Q+\x0C\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\x01`@Q\x80\x91\x03\x90\xFD[\x805s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x0E\xA4W_\x80\xFD[\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_R`A`\x04R`$_\xFD[`@Q`\x1F\x82\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a\x0F\x1DWa\x0F\x1Da\x0E\xA9V[`@R\x91\x90PV[_g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x15a\x0F>Wa\x0F>a\x0E\xA9V[P`\x1F\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16` \x01\x90V[_\x82`\x1F\x83\x01\x12a\x0FyW_\x80\xFD[\x815a\x0F\x8Ca\x0F\x87\x82a\x0F%V[a\x0E\xD6V[\x81\x81R\x84` \x83\x86\x01\x01\x11\x15a\x0F\xA0W_\x80\xFD[\x81` \x85\x01` \x83\x017_\x91\x81\x01` \x01\x91\x90\x91R\x93\x92PPPV[_\x80_``\x84\x86\x03\x12\x15a\x0F\xCEW_\x80\xFD[\x835\x92Pa\x0F\xDE` \x85\x01a\x0E\x81V[\x91P`@\x84\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x0F\xF9W_\x80\xFD[a\x10\x05\x86\x82\x87\x01a\x0FjV[\x91PP\x92P\x92P\x92V[_\x80`@\x83\x85\x03\x12\x15a\x10 W_\x80\xFD[a\x10)\x83a\x0E\x81V[\x91P` \x83\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x10DW_\x80\xFD[a\x10P\x85\x82\x86\x01a\x0FjV[\x91PP\x92P\x92\x90PV[_\x81Q\x80\x84R\x80` \x84\x01` \x86\x01^_` \x82\x86\x01\x01R` \x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0`\x1F\x83\x01\x16\x85\x01\x01\x91PP\x92\x91PPV[` \x81R_a\x10\xB8` \x83\x01\x84a\x10ZV[\x93\x92PPPV[\x7F\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x88\x16\x81R_` `\xE0` \x84\x01Ra\x10\xFB`\xE0\x84\x01\x8Aa\x10ZV[\x83\x81\x03`@\x85\x01Ra\x11\r\x81\x8Aa\x10ZV[``\x85\x01\x89\x90Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x88\x16`\x80\x86\x01R`\xA0\x85\x01\x87\x90R\x84\x81\x03`\xC0\x86\x01R\x85Q\x80\x82R` \x80\x88\x01\x93P\x90\x91\x01\x90_[\x81\x81\x10\x15a\x11mW\x83Q\x83R\x92\x84\x01\x92\x91\x84\x01\x91`\x01\x01a\x11QV[P\x90\x9C\x9BPPPPPPPPPPPPV[_` \x82\x84\x03\x12\x15a\x11\x8FW_\x80\xFD[P5\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_R`!`\x04R`$_\xFD[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x85\x16\x81R\x83` \x82\x01R`\x80`@\x82\x01R_a\x11\xF7`\x80\x83\x01\x85a\x10ZV[\x90P`\x02\x83\x10a\x12.W\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_R`!`\x04R`$_\xFD[\x82``\x83\x01R\x95\x94PPPPPV[\x80Q\x80\x15\x15\x81\x14a\x0E\xA4W_\x80\xFD[_\x80`@\x83\x85\x03\x12\x15a\x12]W_\x80\xFD[a\x12f\x83a\x12=V[\x91P` \x83\x01Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x12\x81W_\x80\xFD[\x83\x01`\x1F\x81\x01\x85\x13a\x12\x91W_\x80\xFD[\x80Qa\x12\x9Fa\x0F\x87\x82a\x0F%V[\x81\x81R\x86` \x83\x85\x01\x01\x11\x15a\x12\xB3W_\x80\xFD[\x81` \x84\x01` \x83\x01^_` \x83\x83\x01\x01R\x80\x93PPPP\x92P\x92\x90PV[_` \x82\x84\x03\x12\x15a\x12\xE2W_\x80\xFD[a\x10\xB8\x82a\x12=V[`\x01\x81\x81\x1C\x90\x82\x16\x80a\x12\xFFW`\x7F\x82\x16\x91P[` \x82\x10\x81\x03a\x136W\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_R`\"`\x04R`$_\xFD[P\x91\x90PV\xFE\xA1dsolcC\0\x08\x19\0\n\x8Bs\xC3\xC6\x9B\xB8\xFE=Q.\xCCL\xF7Y\xCCy#\x9F{\x17\x9B\x0F\xFA\xCA\xA9\xA7]R+9@\x0F", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x608060405234801561000f575f80fd5b50600436106100c4575f3560e01c80638851bfbd1161007d578063da931fe411610058578063da931fe41461021c578063f1c9eed714610242578063feb6172414610262575f80fd5b80638851bfbd146101a05780639d786a02146101c6578063cf2e2379146101ec575f80fd5b806335e80ab3116100ad57806335e80ab3146100f057806354fd4d501461013c57806384b0196e14610185575f80fd5b8063142b53c9146100c8578063183b708b146100dd575b5f80fd5b6100db6100d6366004610fbc565b610294565b005b6100db6100eb36600461100f565b610702565b7f00000000000000000000000000000000000000000000000000000000000000005b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b6101786040518060400160405280600581526020017f332e302e3000000000000000000000000000000000000000000000000000000081525081565b60405161013391906110a6565b61018d61077f565b60405161013397969594939291906110bf565b7f0000000000000000000000000000000000000000000000000000000000000000610112565b7f0000000000000000000000000000000000000000000000000000000000000000610112565b7f92e47526b2e32be4f66cd2600e9cda9147735107631c0b241a067693f49b7f385b604051908152602001610133565b7f0ad9a3778ba0f89045b0ba6e23129cdbd178a22b085d85b5dd8a48c8af831b5461020e565b6002546101129073ffffffffffffffffffffffffffffffffffffffff1681565b61028461027036600461117f565b60036020525f908152604090205460ff1681565b6040519015158152602001610133565b604080517f0ad9a3778ba0f89045b0ba6e23129cdbd178a22b085d85b5dd8a48c8af831b54602082015290810184905273ffffffffffffffffffffffffffffffffffffffff831660608201525f90610305906080015b604051602081830303815290604052805190602001206107dd565b60025490915073ffffffffffffffffffffffffffffffffffffffff1661032b828461082a565b73ffffffffffffffffffffffffffffffffffffffff1614610378576040517f8d279ab500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8481526003602052604090205460ff16156103c0576040517f7313456500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8481526003602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555173ffffffffffffffffffffffffffffffffffffffff858116602483015282917f000000000000000000000000000000000000000000000000000000000000000090911690635229073f907f0000000000000000000000000000000000000000000000000000000000000000908490604401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f76a67a5100000000000000000000000000000000000000000000000000000000179052517fffffffff0000000000000000000000000000000000000000000000000000000060e086901b16815261051a939291905f906004016111c3565b5f604051808303815f875af1158015610535573d5f803e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405261057a919081019061124c565b91509150816105c057806040517f8d1364be0000000000000000000000000000000000000000000000000000000081526004016105b791906110a6565b60405180910390fd5b6040517f2e48152c00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff86811660048301527f00000000000000000000000000000000000000000000000000000000000000001690632e48152c90602401602060405180830381865afa15801561064a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061066e91906112d2565b6106a4576040517feb7171cd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002546040805188815273ffffffffffffffffffffffffffffffffffffffff8881166020830152909216917faa64a95e3acb9db4deaf865d9fcc62a5d47996b643e7fcc799e3b499c9bff2d9910160405180910390a2505050505050565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610771576040517f71da2c9100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61077b8282610852565b5050565b5f6060805f805f6060610790610988565b6107986109b9565b604080515f808252602082019092527f0f000000000000000000000000000000000000000000000000000000000000009b939a50919850469750309650945092509050565b5f6108246107e96109e6565b836040517f19010000000000000000000000000000000000000000000000000000000000008152600281019290925260228201526042902090565b92915050565b5f805f806108388686610b1c565b9250925092506108488282610b65565b5090949350505050565b5f6108a87f92e47526b2e32be4f66cd2600e9cda9147735107631c0b241a067693f49b7f38846040516020016102ea92919091825273ffffffffffffffffffffffffffffffffffffffff16602082015260400190565b90508273ffffffffffffffffffffffffffffffffffffffff166108cb828461082a565b73ffffffffffffffffffffffffffffffffffffffff1614610918576040517f0618de0700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff85169081179091556040517f6b5500f6cd2cd4a29ab2c706a6c65833d0633a568f7263460775cebcc8e9a99b905f90a2505050565b60606109b47f00000000000000000000000000000000000000000000000000000000000000005f610c68565b905090565b60606109b47f00000000000000000000000000000000000000000000000000000000000000006001610c68565b5f3073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016148015610a4b57507f000000000000000000000000000000000000000000000000000000000000000046145b15610a7557507f000000000000000000000000000000000000000000000000000000000000000090565b6109b4604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201527f0000000000000000000000000000000000000000000000000000000000000000918101919091527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a08201525f9060c00160405160208183030381529060405280519060200120905090565b5f805f8351604103610b53576020840151604085015160608601515f1a610b4588828585610d11565b955095509550505050610b5e565b505081515f91506002905b9250925092565b5f826003811115610b7857610b78611196565b03610b81575050565b6001826003811115610b9557610b95611196565b03610bcc576040517ff645eedf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002826003811115610be057610be0611196565b03610c1a576040517ffce698f7000000000000000000000000000000000000000000000000000000008152600481018290526024016105b7565b6003826003811115610c2e57610c2e611196565b0361077b576040517fd78bce0c000000000000000000000000000000000000000000000000000000008152600481018290526024016105b7565b606060ff8314610c8257610c7b83610e04565b9050610824565b818054610c8e906112eb565b80601f0160208091040260200160405190810160405280929190818152602001828054610cba906112eb565b8015610d055780601f10610cdc57610100808354040283529160200191610d05565b820191905f5260205f20905b815481529060010190602001808311610ce857829003601f168201915b50505050509050610824565b5f80807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841115610d4a57505f91506003905082610dfa565b604080515f808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015610d9b573d5f803e3d5ffd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116610df157505f925060019150829050610dfa565b92505f91508190505b9450945094915050565b60605f610e1083610e41565b6040805160208082528183019092529192505f91906020820181803683375050509182525060208101929092525090565b5f60ff8216601f811115610824576040517fb3512b0c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b803573ffffffffffffffffffffffffffffffffffffffff81168114610ea4575f80fd5b919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715610f1d57610f1d610ea9565b604052919050565b5f67ffffffffffffffff821115610f3e57610f3e610ea9565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b5f82601f830112610f79575f80fd5b8135610f8c610f8782610f25565b610ed6565b818152846020838601011115610fa0575f80fd5b816020850160208301375f918101602001919091529392505050565b5f805f60608486031215610fce575f80fd5b83359250610fde60208501610e81565b9150604084013567ffffffffffffffff811115610ff9575f80fd5b61100586828701610f6a565b9150509250925092565b5f8060408385031215611020575f80fd5b61102983610e81565b9150602083013567ffffffffffffffff811115611044575f80fd5b61105085828601610f6a565b9150509250929050565b5f81518084528060208401602086015e5f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b602081525f6110b8602083018461105a565b9392505050565b7fff00000000000000000000000000000000000000000000000000000000000000881681525f602060e060208401526110fb60e084018a61105a565b838103604085015261110d818a61105a565b6060850189905273ffffffffffffffffffffffffffffffffffffffff8816608086015260a0850187905284810360c0860152855180825260208088019350909101905f5b8181101561116d57835183529284019291840191600101611151565b50909c9b505050505050505050505050565b5f6020828403121561118f575f80fd5b5035919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b73ffffffffffffffffffffffffffffffffffffffff85168152836020820152608060408201525f6111f7608083018561105a565b90506002831061122e577f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b82606083015295945050505050565b80518015158114610ea4575f80fd5b5f806040838503121561125d575f80fd5b6112668361123d565b9150602083015167ffffffffffffffff811115611281575f80fd5b8301601f81018513611291575f80fd5b805161129f610f8782610f25565b8181528660208385010111156112b3575f80fd5b8160208401602083015e5f602083830101528093505050509250929050565b5f602082840312156112e2575f80fd5b6110b88261123d565b600181811c908216806112ff57607f821691505b602082108103611336577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5091905056fea164736f6c6343000819000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R4\x80\x15a\0\x0FW_\x80\xFD[P`\x046\x10a\0\xC4W_5`\xE0\x1C\x80c\x88Q\xBF\xBD\x11a\0}W\x80c\xDA\x93\x1F\xE4\x11a\0XW\x80c\xDA\x93\x1F\xE4\x14a\x02\x1CW\x80c\xF1\xC9\xEE\xD7\x14a\x02BW\x80c\xFE\xB6\x17$\x14a\x02bW_\x80\xFD[\x80c\x88Q\xBF\xBD\x14a\x01\xA0W\x80c\x9Dxj\x02\x14a\x01\xC6W\x80c\xCF.#y\x14a\x01\xECW_\x80\xFD[\x80c5\xE8\n\xB3\x11a\0\xADW\x80c5\xE8\n\xB3\x14a\0\xF0W\x80cT\xFDMP\x14a\x01=_\xFD[PPPP`@Q=_\x82>`\x1F=\x90\x81\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x82\x01`@Ra\x05z\x91\x90\x81\x01\x90a\x12LV[\x91P\x91P\x81a\x05\xC0W\x80`@Q\x7F\x8D\x13d\xBE\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\x05\xB7\x91\x90a\x10\xA6V[`@Q\x80\x91\x03\x90\xFD[`@Q\x7F.H\x15,\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\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x86\x81\x16`\x04\x83\x01R\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x90c.H\x15,\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x06JW=_\x80>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x06n\x91\x90a\x12\xD2V[a\x06\xA4W`@Q\x7F\xEBqq\xCD\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\x01`@Q\x80\x91\x03\x90\xFD[`\x02T`@\x80Q\x88\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x88\x81\x16` \x83\x01R\x90\x92\x16\x91\x7F\xAAd\xA9^:\xCB\x9D\xB4\xDE\xAF\x86]\x9F\xCCb\xA5\xD4y\x96\xB6C\xE7\xFC\xC7\x99\xE3\xB4\x99\xC9\xBF\xF2\xD9\x91\x01`@Q\x80\x91\x03\x90\xA2PPPPPPV[3s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x14a\x07qW`@Q\x7Fq\xDA,\x91\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\x01`@Q\x80\x91\x03\x90\xFD[a\x07{\x82\x82a\x08RV[PPV[_``\x80_\x80_``a\x07\x90a\t\x88V[a\x07\x98a\t\xB9V[`@\x80Q_\x80\x82R` \x82\x01\x90\x92R\x7F\x0F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x9B\x93\x9AP\x91\x98PF\x97P0\x96P\x94P\x92P\x90PV[_a\x08$a\x07\xE9a\t\xE6V[\x83`@Q\x7F\x19\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81R`\x02\x81\x01\x92\x90\x92R`\"\x82\x01R`B\x90 \x90V[\x92\x91PPV[_\x80_\x80a\x088\x86\x86a\x0B\x1CV[\x92P\x92P\x92Pa\x08H\x82\x82a\x0BeV[P\x90\x94\x93PPPPV[_a\x08\xA8\x7F\x92\xE4u&\xB2\xE3+\xE4\xF6l\xD2`\x0E\x9C\xDA\x91GsQ\x07c\x1C\x0B$\x1A\x06v\x93\xF4\x9B\x7F8\x84`@Q` \x01a\x02\xEA\x92\x91\x90\x91\x82Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16` \x82\x01R`@\x01\x90V[\x90P\x82s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a\x08\xCB\x82\x84a\x08*V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14a\t\x18W`@Q\x7F\x06\x18\xDE\x07\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\x01`@Q\x80\x91\x03\x90\xFD[`\x02\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x85\x16\x90\x81\x17\x90\x91U`@Q\x7FkU\0\xF6\xCD,\xD4\xA2\x9A\xB2\xC7\x06\xA6\xC6X3\xD0c:V\x8FrcF\x07u\xCE\xBC\xC8\xE9\xA9\x9B\x90_\x90\xA2PPPV[``a\t\xB4\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0_a\x0ChV[\x90P\x90V[``a\t\xB4\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01a\x0ChV[_0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x14\x80\x15a\nKWP\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0F\x14[\x15a\nuWP\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90V[a\t\xB4`@\x80Q\x7F\x8Bs\xC3\xC6\x9B\xB8\xFE=Q.\xCCL\xF7Y\xCCy#\x9F{\x17\x9B\x0F\xFA\xCA\xA9\xA7]R+9@\x0F` \x82\x01R\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x91\x81\x01\x91\x90\x91R\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0``\x82\x01RF`\x80\x82\x01R0`\xA0\x82\x01R_\x90`\xC0\x01`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 \x90P\x90V[_\x80_\x83Q`A\x03a\x0BSW` \x84\x01Q`@\x85\x01Q``\x86\x01Q_\x1Aa\x0BE\x88\x82\x85\x85a\r\x11V[\x95P\x95P\x95PPPPa\x0B^V[PP\x81Q_\x91P`\x02\x90[\x92P\x92P\x92V[_\x82`\x03\x81\x11\x15a\x0BxWa\x0Bxa\x11\x96V[\x03a\x0B\x81WPPV[`\x01\x82`\x03\x81\x11\x15a\x0B\x95Wa\x0B\x95a\x11\x96V[\x03a\x0B\xCCW`@Q\x7F\xF6E\xEE\xDF\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\x01`@Q\x80\x91\x03\x90\xFD[`\x02\x82`\x03\x81\x11\x15a\x0B\xE0Wa\x0B\xE0a\x11\x96V[\x03a\x0C\x1AW`@Q\x7F\xFC\xE6\x98\xF7\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\x81\x01\x82\x90R`$\x01a\x05\xB7V[`\x03\x82`\x03\x81\x11\x15a\x0C.Wa\x0C.a\x11\x96V[\x03a\x07{W`@Q\x7F\xD7\x8B\xCE\x0C\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\x81\x01\x82\x90R`$\x01a\x05\xB7V[```\xFF\x83\x14a\x0C\x82Wa\x0C{\x83a\x0E\x04V[\x90Pa\x08$V[\x81\x80Ta\x0C\x8E\x90a\x12\xEBV[\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x92\x91\x90\x81\x81R` \x01\x82\x80Ta\x0C\xBA\x90a\x12\xEBV[\x80\x15a\r\x05W\x80`\x1F\x10a\x0C\xDCWa\x01\0\x80\x83T\x04\x02\x83R\x91` \x01\x91a\r\x05V[\x82\x01\x91\x90_R` _ \x90[\x81T\x81R\x90`\x01\x01\x90` \x01\x80\x83\x11a\x0C\xE8W\x82\x90\x03`\x1F\x16\x82\x01\x91[PPPPP\x90Pa\x08$V[_\x80\x80\x7F\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF]WnsW\xA4P\x1D\xDF\xE9/Fh\x1B \xA0\x84\x11\x15a\rJWP_\x91P`\x03\x90P\x82a\r\xFAV[`@\x80Q_\x80\x82R` \x82\x01\x80\x84R\x8A\x90R`\xFF\x89\x16\x92\x82\x01\x92\x90\x92R``\x81\x01\x87\x90R`\x80\x81\x01\x86\x90R`\x01\x90`\xA0\x01` `@Q` \x81\x03\x90\x80\x84\x03\x90\x85Z\xFA\x15\x80\x15a\r\x9BW=_\x80>=_\xFD[PP`@Q\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x01Q\x91PPs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16a\r\xF1WP_\x92P`\x01\x91P\x82\x90Pa\r\xFAV[\x92P_\x91P\x81\x90P[\x94P\x94P\x94\x91PPV[``_a\x0E\x10\x83a\x0EAV[`@\x80Q` \x80\x82R\x81\x83\x01\x90\x92R\x91\x92P_\x91\x90` \x82\x01\x81\x806\x837PPP\x91\x82RP` \x81\x01\x92\x90\x92RP\x90V[_`\xFF\x82\x16`\x1F\x81\x11\x15a\x08$W`@Q\x7F\xB3Q+\x0C\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\x01`@Q\x80\x91\x03\x90\xFD[\x805s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x0E\xA4W_\x80\xFD[\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_R`A`\x04R`$_\xFD[`@Q`\x1F\x82\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a\x0F\x1DWa\x0F\x1Da\x0E\xA9V[`@R\x91\x90PV[_g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x15a\x0F>Wa\x0F>a\x0E\xA9V[P`\x1F\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16` \x01\x90V[_\x82`\x1F\x83\x01\x12a\x0FyW_\x80\xFD[\x815a\x0F\x8Ca\x0F\x87\x82a\x0F%V[a\x0E\xD6V[\x81\x81R\x84` \x83\x86\x01\x01\x11\x15a\x0F\xA0W_\x80\xFD[\x81` \x85\x01` \x83\x017_\x91\x81\x01` \x01\x91\x90\x91R\x93\x92PPPV[_\x80_``\x84\x86\x03\x12\x15a\x0F\xCEW_\x80\xFD[\x835\x92Pa\x0F\xDE` \x85\x01a\x0E\x81V[\x91P`@\x84\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x0F\xF9W_\x80\xFD[a\x10\x05\x86\x82\x87\x01a\x0FjV[\x91PP\x92P\x92P\x92V[_\x80`@\x83\x85\x03\x12\x15a\x10 W_\x80\xFD[a\x10)\x83a\x0E\x81V[\x91P` \x83\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x10DW_\x80\xFD[a\x10P\x85\x82\x86\x01a\x0FjV[\x91PP\x92P\x92\x90PV[_\x81Q\x80\x84R\x80` \x84\x01` \x86\x01^_` \x82\x86\x01\x01R` \x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0`\x1F\x83\x01\x16\x85\x01\x01\x91PP\x92\x91PPV[` \x81R_a\x10\xB8` \x83\x01\x84a\x10ZV[\x93\x92PPPV[\x7F\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x88\x16\x81R_` `\xE0` \x84\x01Ra\x10\xFB`\xE0\x84\x01\x8Aa\x10ZV[\x83\x81\x03`@\x85\x01Ra\x11\r\x81\x8Aa\x10ZV[``\x85\x01\x89\x90Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x88\x16`\x80\x86\x01R`\xA0\x85\x01\x87\x90R\x84\x81\x03`\xC0\x86\x01R\x85Q\x80\x82R` \x80\x88\x01\x93P\x90\x91\x01\x90_[\x81\x81\x10\x15a\x11mW\x83Q\x83R\x92\x84\x01\x92\x91\x84\x01\x91`\x01\x01a\x11QV[P\x90\x9C\x9BPPPPPPPPPPPPV[_` \x82\x84\x03\x12\x15a\x11\x8FW_\x80\xFD[P5\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_R`!`\x04R`$_\xFD[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x85\x16\x81R\x83` \x82\x01R`\x80`@\x82\x01R_a\x11\xF7`\x80\x83\x01\x85a\x10ZV[\x90P`\x02\x83\x10a\x12.W\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_R`!`\x04R`$_\xFD[\x82``\x83\x01R\x95\x94PPPPPV[\x80Q\x80\x15\x15\x81\x14a\x0E\xA4W_\x80\xFD[_\x80`@\x83\x85\x03\x12\x15a\x12]W_\x80\xFD[a\x12f\x83a\x12=V[\x91P` \x83\x01Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x12\x81W_\x80\xFD[\x83\x01`\x1F\x81\x01\x85\x13a\x12\x91W_\x80\xFD[\x80Qa\x12\x9Fa\x0F\x87\x82a\x0F%V[\x81\x81R\x86` \x83\x85\x01\x01\x11\x15a\x12\xB3W_\x80\xFD[\x81` \x84\x01` \x83\x01^_` \x83\x83\x01\x01R\x80\x93PPPP\x92P\x92\x90PV[_` \x82\x84\x03\x12\x15a\x12\xE2W_\x80\xFD[a\x10\xB8\x82a\x12=V[`\x01\x81\x81\x1C\x90\x82\x16\x80a\x12\xFFW`\x7F\x82\x16\x91P[` \x82\x10\x81\x03a\x136W\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_R`\"`\x04R`$_\xFD[P\x91\x90PV\xFE\xA1dsolcC\0\x08\x19\0\n", + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `DeputyPauseModule_ExecutionFailed(string)` and selector `0x8d1364be`. +```solidity +error DeputyPauseModule_ExecutionFailed(string); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct DeputyPauseModule_ExecutionFailed(pub alloy::sol_types::private::String); + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: DeputyPauseModule_ExecutionFailed) -> Self { + (value.0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for DeputyPauseModule_ExecutionFailed { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self(tuple.0) + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for DeputyPauseModule_ExecutionFailed { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "DeputyPauseModule_ExecutionFailed(string)"; + const SELECTOR: [u8; 4] = [141u8, 19u8, 100u8, 190u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.0, + ), + ) + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `DeputyPauseModule_InvalidDeputy()` and selector `0x0618de07`. +```solidity +error DeputyPauseModule_InvalidDeputy(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct DeputyPauseModule_InvalidDeputy; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: DeputyPauseModule_InvalidDeputy) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for DeputyPauseModule_InvalidDeputy { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for DeputyPauseModule_InvalidDeputy { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "DeputyPauseModule_InvalidDeputy()"; + const SELECTOR: [u8; 4] = [6u8, 24u8, 222u8, 7u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `DeputyPauseModule_NonceAlreadyUsed()` and selector `0x73134565`. +```solidity +error DeputyPauseModule_NonceAlreadyUsed(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct DeputyPauseModule_NonceAlreadyUsed; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: DeputyPauseModule_NonceAlreadyUsed) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for DeputyPauseModule_NonceAlreadyUsed { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for DeputyPauseModule_NonceAlreadyUsed { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "DeputyPauseModule_NonceAlreadyUsed()"; + const SELECTOR: [u8; 4] = [115u8, 19u8, 69u8, 101u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `DeputyPauseModule_NotFromSafe()` and selector `0x71da2c91`. +```solidity +error DeputyPauseModule_NotFromSafe(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct DeputyPauseModule_NotFromSafe; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: DeputyPauseModule_NotFromSafe) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for DeputyPauseModule_NotFromSafe { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for DeputyPauseModule_NotFromSafe { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "DeputyPauseModule_NotFromSafe()"; + const SELECTOR: [u8; 4] = [113u8, 218u8, 44u8, 145u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `DeputyPauseModule_SuperchainNotPaused()` and selector `0xeb7171cd`. +```solidity +error DeputyPauseModule_SuperchainNotPaused(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct DeputyPauseModule_SuperchainNotPaused; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: DeputyPauseModule_SuperchainNotPaused) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for DeputyPauseModule_SuperchainNotPaused { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for DeputyPauseModule_SuperchainNotPaused { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "DeputyPauseModule_SuperchainNotPaused()"; + const SELECTOR: [u8; 4] = [235u8, 113u8, 113u8, 205u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `DeputyPauseModule_Unauthorized()` and selector `0x8d279ab5`. +```solidity +error DeputyPauseModule_Unauthorized(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct DeputyPauseModule_Unauthorized; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: DeputyPauseModule_Unauthorized) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for DeputyPauseModule_Unauthorized { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for DeputyPauseModule_Unauthorized { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "DeputyPauseModule_Unauthorized()"; + const SELECTOR: [u8; 4] = [141u8, 39u8, 154u8, 181u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ECDSAInvalidSignature()` and selector `0xf645eedf`. +```solidity +error ECDSAInvalidSignature(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ECDSAInvalidSignature; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ECDSAInvalidSignature) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ECDSAInvalidSignature { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ECDSAInvalidSignature { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ECDSAInvalidSignature()"; + const SELECTOR: [u8; 4] = [246u8, 69u8, 238u8, 223u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ECDSAInvalidSignatureLength(uint256)` and selector `0xfce698f7`. +```solidity +error ECDSAInvalidSignatureLength(uint256 length); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ECDSAInvalidSignatureLength { + #[allow(missing_docs)] + pub length: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: ECDSAInvalidSignatureLength) -> Self { + (value.length,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for ECDSAInvalidSignatureLength { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { length: tuple.0 } + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ECDSAInvalidSignatureLength { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ECDSAInvalidSignatureLength(uint256)"; + const SELECTOR: [u8; 4] = [252u8, 230u8, 152u8, 247u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.length), + ) + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ECDSAInvalidSignatureS(bytes32)` and selector `0xd78bce0c`. +```solidity +error ECDSAInvalidSignatureS(bytes32 s); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ECDSAInvalidSignatureS { + #[allow(missing_docs)] + pub s: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ECDSAInvalidSignatureS) -> Self { + (value.s,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ECDSAInvalidSignatureS { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { s: tuple.0 } + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ECDSAInvalidSignatureS { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ECDSAInvalidSignatureS(bytes32)"; + const SELECTOR: [u8; 4] = [215u8, 139u8, 206u8, 12u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.s), + ) + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidShortString()` and selector `0xb3512b0c`. +```solidity +error InvalidShortString(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidShortString; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InvalidShortString) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InvalidShortString { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidShortString { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidShortString()"; + const SELECTOR: [u8; 4] = [179u8, 81u8, 43u8, 12u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `StringTooLong(string)` and selector `0x305a27a9`. +```solidity +error StringTooLong(string str); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct StringTooLong { + #[allow(missing_docs)] + pub str: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: StringTooLong) -> Self { + (value.str,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for StringTooLong { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { str: tuple.0 } + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for StringTooLong { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "StringTooLong(string)"; + const SELECTOR: [u8; 4] = [48u8, 90u8, 39u8, 169u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.str, + ), + ) + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `DeputySet(address)` and selector `0x6b5500f6cd2cd4a29ab2c706a6c65833d0633a568f7263460775cebcc8e9a99b`. +```solidity +event DeputySet(address indexed deputy); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct DeputySet { + #[allow(missing_docs)] + pub deputy: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for DeputySet { + type DataTuple<'a> = (); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "DeputySet(address)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 107u8, 85u8, 0u8, 246u8, 205u8, 44u8, 212u8, 162u8, 154u8, 178u8, 199u8, + 6u8, 166u8, 198u8, 88u8, 51u8, 208u8, 99u8, 58u8, 86u8, 143u8, 114u8, + 99u8, 70u8, 7u8, 117u8, 206u8, 188u8, 200u8, 233u8, 169u8, 155u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { deputy: topics.1 } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + () + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.deputy.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.deputy, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for DeputySet { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&DeputySet> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &DeputySet) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `EIP712DomainChanged()` and selector `0x0a6387c9ea3628b88a633bb4f3b151770f70085117a15f9bf3787cda53f13d31`. +```solidity +event EIP712DomainChanged(); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct EIP712DomainChanged; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for EIP712DomainChanged { + type DataTuple<'a> = (); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,); + const SIGNATURE: &'static str = "EIP712DomainChanged()"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 10u8, 99u8, 135u8, 201u8, 234u8, 54u8, 40u8, 184u8, 138u8, 99u8, 59u8, + 180u8, 243u8, 177u8, 81u8, 119u8, 15u8, 112u8, 8u8, 81u8, 23u8, 161u8, + 95u8, 155u8, 243u8, 120u8, 124u8, 218u8, 83u8, 241u8, 61u8, 49u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self {} + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + () + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(),) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for EIP712DomainChanged { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&EIP712DomainChanged> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &EIP712DomainChanged) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `PauseTriggered(address,bytes32,address)` and selector `0xaa64a95e3acb9db4deaf865d9fcc62a5d47996b643e7fcc799e3b499c9bff2d9`. +```solidity +event PauseTriggered(address indexed deputy, bytes32 nonce, address identifier); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct PauseTriggered { + #[allow(missing_docs)] + pub deputy: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub nonce: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub identifier: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for PauseTriggered { + type DataTuple<'a> = ( + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + ); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "PauseTriggered(address,bytes32,address)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 170u8, 100u8, 169u8, 94u8, 58u8, 203u8, 157u8, 180u8, 222u8, 175u8, + 134u8, 93u8, 159u8, 204u8, 98u8, 165u8, 212u8, 121u8, 150u8, 182u8, 67u8, + 231u8, 252u8, 199u8, 153u8, 227u8, 180u8, 153u8, 201u8, 191u8, 242u8, + 217u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + deputy: topics.1, + nonce: data.0, + identifier: data.1, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.nonce), + ::tokenize( + &self.identifier, + ), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.deputy.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.deputy, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for PauseTriggered { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&PauseTriggered> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &PauseTriggered) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + /**Constructor`. +```solidity +constructor(address _guardianSafe, address _foundationSafe, address _superchainConfig, address _deputy, bytes _deputySignature); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct constructorCall { + #[allow(missing_docs)] + pub _guardianSafe: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _foundationSafe: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _superchainConfig: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _deputy: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _deputySignature: alloy::sol_types::private::Bytes, + } + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::Bytes, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: constructorCall) -> Self { + ( + value._guardianSafe, + value._foundationSafe, + value._superchainConfig, + value._deputy, + value._deputySignature, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for constructorCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _guardianSafe: tuple.0, + _foundationSafe: tuple.1, + _superchainConfig: tuple.2, + _deputy: tuple.3, + _deputySignature: tuple.4, + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolConstructor for constructorCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Bytes, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._guardianSafe, + ), + ::tokenize( + &self._foundationSafe, + ), + ::tokenize( + &self._superchainConfig, + ), + ::tokenize( + &self._deputy, + ), + ::tokenize( + &self._deputySignature, + ), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `deputy()` and selector `0xf1c9eed7`. +```solidity +function deputy() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct deputyCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`deputy()`](deputyCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct deputyReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: deputyCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for deputyCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: deputyReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for deputyReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for deputyCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "deputy()"; + const SELECTOR: [u8; 4] = [241u8, 201u8, 238u8, 215u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: deputyReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: deputyReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `deputyAuthMessageTypehash()` and selector `0xcf2e2379`. +```solidity +function deputyAuthMessageTypehash() external pure returns (bytes32 deputyAuthMessageTypehash_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct deputyAuthMessageTypehashCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`deputyAuthMessageTypehash()`](deputyAuthMessageTypehashCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct deputyAuthMessageTypehashReturn { + #[allow(missing_docs)] + pub deputyAuthMessageTypehash_: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: deputyAuthMessageTypehashCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for deputyAuthMessageTypehashCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: deputyAuthMessageTypehashReturn) -> Self { + (value.deputyAuthMessageTypehash_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for deputyAuthMessageTypehashReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + deputyAuthMessageTypehash_: tuple.0, + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for deputyAuthMessageTypehashCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::FixedBytes<32>; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "deputyAuthMessageTypehash()"; + const SELECTOR: [u8; 4] = [207u8, 46u8, 35u8, 121u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: deputyAuthMessageTypehashReturn = r.into(); + r.deputyAuthMessageTypehash_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: deputyAuthMessageTypehashReturn = r.into(); + r.deputyAuthMessageTypehash_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `eip712Domain()` and selector `0x84b0196e`. +```solidity +function eip712Domain() external view returns (bytes1 fields, string memory name, string memory version, uint256 chainId, address verifyingContract, bytes32 salt, uint256[] memory extensions); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct eip712DomainCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`eip712Domain()`](eip712DomainCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct eip712DomainReturn { + #[allow(missing_docs)] + pub fields: alloy::sol_types::private::FixedBytes<1>, + #[allow(missing_docs)] + pub name: alloy::sol_types::private::String, + #[allow(missing_docs)] + pub version: alloy::sol_types::private::String, + #[allow(missing_docs)] + pub chainId: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub verifyingContract: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub salt: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub extensions: alloy::sol_types::private::Vec< + alloy::sol_types::private::primitives::aliases::U256, + >, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: eip712DomainCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for eip712DomainCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::FixedBytes<1>, + alloy::sol_types::sol_data::String, + alloy::sol_types::sol_data::String, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Array>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::FixedBytes<1>, + alloy::sol_types::private::String, + alloy::sol_types::private::String, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::Address, + alloy::sol_types::private::FixedBytes<32>, + alloy::sol_types::private::Vec< + alloy::sol_types::private::primitives::aliases::U256, + >, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: eip712DomainReturn) -> Self { + ( + value.fields, + value.name, + value.version, + value.chainId, + value.verifyingContract, + value.salt, + value.extensions, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for eip712DomainReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + fields: tuple.0, + name: tuple.1, + version: tuple.2, + chainId: tuple.3, + verifyingContract: tuple.4, + salt: tuple.5, + extensions: tuple.6, + } + } + } + } + impl eip712DomainReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.fields), + ::tokenize( + &self.name, + ), + ::tokenize( + &self.version, + ), + as alloy_sol_types::SolType>::tokenize(&self.chainId), + ::tokenize( + &self.verifyingContract, + ), + as alloy_sol_types::SolType>::tokenize(&self.salt), + , + > as alloy_sol_types::SolType>::tokenize(&self.extensions), + ) + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for eip712DomainCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = eip712DomainReturn; + type ReturnTuple<'a> = ( + alloy::sol_types::sol_data::FixedBytes<1>, + alloy::sol_types::sol_data::String, + alloy::sol_types::sol_data::String, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Array>, + ); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "eip712Domain()"; + const SELECTOR: [u8; 4] = [132u8, 176u8, 25u8, 110u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + eip712DomainReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `foundationSafe()` and selector `0x8851bfbd`. +```solidity +function foundationSafe() external view returns (address foundationSafe_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct foundationSafeCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`foundationSafe()`](foundationSafeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct foundationSafeReturn { + #[allow(missing_docs)] + pub foundationSafe_: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: foundationSafeCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for foundationSafeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: foundationSafeReturn) -> Self { + (value.foundationSafe_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for foundationSafeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { foundationSafe_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for foundationSafeCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "foundationSafe()"; + const SELECTOR: [u8; 4] = [136u8, 81u8, 191u8, 189u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: foundationSafeReturn = r.into(); + r.foundationSafe_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: foundationSafeReturn = r.into(); + r.foundationSafe_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `guardianSafe()` and selector `0x9d786a02`. +```solidity +function guardianSafe() external view returns (address guardianSafe_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct guardianSafeCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`guardianSafe()`](guardianSafeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct guardianSafeReturn { + #[allow(missing_docs)] + pub guardianSafe_: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: guardianSafeCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for guardianSafeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: guardianSafeReturn) -> Self { + (value.guardianSafe_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for guardianSafeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { guardianSafe_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for guardianSafeCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "guardianSafe()"; + const SELECTOR: [u8; 4] = [157u8, 120u8, 106u8, 2u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: guardianSafeReturn = r.into(); + r.guardianSafe_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: guardianSafeReturn = r.into(); + r.guardianSafe_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `pause(bytes32,address,bytes)` and selector `0x142b53c9`. +```solidity +function pause(bytes32 _nonce, address _identifier, bytes memory _signature) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct pauseCall { + #[allow(missing_docs)] + pub _nonce: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub _identifier: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _signature: alloy::sol_types::private::Bytes, + } + ///Container type for the return parameters of the [`pause(bytes32,address,bytes)`](pauseCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct pauseReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::FixedBytes<32>, + alloy::sol_types::private::Address, + alloy::sol_types::private::Bytes, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: pauseCall) -> Self { + (value._nonce, value._identifier, value._signature) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for pauseCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _nonce: tuple.0, + _identifier: tuple.1, + _signature: tuple.2, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: pauseReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for pauseReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl pauseReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for pauseCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Bytes, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = pauseReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "pause(bytes32,address,bytes)"; + const SELECTOR: [u8; 4] = [20u8, 43u8, 83u8, 201u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._nonce), + ::tokenize( + &self._identifier, + ), + ::tokenize( + &self._signature, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + pauseReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `pauseMessageTypehash()` and selector `0xda931fe4`. +```solidity +function pauseMessageTypehash() external pure returns (bytes32 pauseMessageTypehash_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct pauseMessageTypehashCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`pauseMessageTypehash()`](pauseMessageTypehashCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct pauseMessageTypehashReturn { + #[allow(missing_docs)] + pub pauseMessageTypehash_: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: pauseMessageTypehashCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for pauseMessageTypehashCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: pauseMessageTypehashReturn) -> Self { + (value.pauseMessageTypehash_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for pauseMessageTypehashReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + pauseMessageTypehash_: tuple.0, + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for pauseMessageTypehashCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::FixedBytes<32>; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "pauseMessageTypehash()"; + const SELECTOR: [u8; 4] = [218u8, 147u8, 31u8, 228u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: pauseMessageTypehashReturn = r.into(); + r.pauseMessageTypehash_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: pauseMessageTypehashReturn = r.into(); + r.pauseMessageTypehash_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `setDeputy(address,bytes)` and selector `0x183b708b`. +```solidity +function setDeputy(address _deputy, bytes memory _deputySignature) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setDeputyCall { + #[allow(missing_docs)] + pub _deputy: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _deputySignature: alloy::sol_types::private::Bytes, + } + ///Container type for the return parameters of the [`setDeputy(address,bytes)`](setDeputyCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setDeputyReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Bytes, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: setDeputyCall) -> Self { + (value._deputy, value._deputySignature) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for setDeputyCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _deputy: tuple.0, + _deputySignature: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: setDeputyReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for setDeputyReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl setDeputyReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for setDeputyCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Bytes, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = setDeputyReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "setDeputy(address,bytes)"; + const SELECTOR: [u8; 4] = [24u8, 59u8, 112u8, 139u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._deputy, + ), + ::tokenize( + &self._deputySignature, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + setDeputyReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `superchainConfig()` and selector `0x35e80ab3`. +```solidity +function superchainConfig() external view returns (address superchainConfig_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct superchainConfigCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`superchainConfig()`](superchainConfigCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct superchainConfigReturn { + #[allow(missing_docs)] + pub superchainConfig_: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: superchainConfigCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for superchainConfigCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: superchainConfigReturn) -> Self { + (value.superchainConfig_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for superchainConfigReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { superchainConfig_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for superchainConfigCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "superchainConfig()"; + const SELECTOR: [u8; 4] = [53u8, 232u8, 10u8, 179u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: superchainConfigReturn = r.into(); + r.superchainConfig_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: superchainConfigReturn = r.into(); + r.superchainConfig_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `usedNonces(bytes32)` and selector `0xfeb61724`. +```solidity +function usedNonces(bytes32) external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct usedNoncesCall(pub alloy::sol_types::private::FixedBytes<32>); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`usedNonces(bytes32)`](usedNoncesCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct usedNoncesReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: usedNoncesCall) -> Self { + (value.0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for usedNoncesCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self(tuple.0) + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: usedNoncesReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for usedNoncesReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for usedNoncesCall { + type Parameters<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "usedNonces(bytes32)"; + const SELECTOR: [u8; 4] = [254u8, 182u8, 23u8, 36u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.0), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: usedNoncesReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: usedNoncesReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `version()` and selector `0x54fd4d50`. +```solidity +function version() external view returns (string memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`version()`](versionCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for versionCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::String; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "version()"; + const SELECTOR: [u8; 4] = [84u8, 253u8, 77u8, 80u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + } + }; + ///Container for all the [`DeputyPauseModule`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum DeputyPauseModuleCalls { + #[allow(missing_docs)] + deputy(deputyCall), + #[allow(missing_docs)] + deputyAuthMessageTypehash(deputyAuthMessageTypehashCall), + #[allow(missing_docs)] + eip712Domain(eip712DomainCall), + #[allow(missing_docs)] + foundationSafe(foundationSafeCall), + #[allow(missing_docs)] + guardianSafe(guardianSafeCall), + #[allow(missing_docs)] + pause(pauseCall), + #[allow(missing_docs)] + pauseMessageTypehash(pauseMessageTypehashCall), + #[allow(missing_docs)] + setDeputy(setDeputyCall), + #[allow(missing_docs)] + superchainConfig(superchainConfigCall), + #[allow(missing_docs)] + usedNonces(usedNoncesCall), + #[allow(missing_docs)] + version(versionCall), + } + impl DeputyPauseModuleCalls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [20u8, 43u8, 83u8, 201u8], + [24u8, 59u8, 112u8, 139u8], + [53u8, 232u8, 10u8, 179u8], + [84u8, 253u8, 77u8, 80u8], + [132u8, 176u8, 25u8, 110u8], + [136u8, 81u8, 191u8, 189u8], + [157u8, 120u8, 106u8, 2u8], + [207u8, 46u8, 35u8, 121u8], + [218u8, 147u8, 31u8, 228u8], + [241u8, 201u8, 238u8, 215u8], + [254u8, 182u8, 23u8, 36u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(pause), + ::core::stringify!(setDeputy), + ::core::stringify!(superchainConfig), + ::core::stringify!(version), + ::core::stringify!(eip712Domain), + ::core::stringify!(foundationSafe), + ::core::stringify!(guardianSafe), + ::core::stringify!(deputyAuthMessageTypehash), + ::core::stringify!(pauseMessageTypehash), + ::core::stringify!(deputy), + ::core::stringify!(usedNonces), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for DeputyPauseModuleCalls { + const NAME: &'static str = "DeputyPauseModuleCalls"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 11usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::deputy(_) => ::SELECTOR, + Self::deputyAuthMessageTypehash(_) => { + ::SELECTOR + } + Self::eip712Domain(_) => { + ::SELECTOR + } + Self::foundationSafe(_) => { + ::SELECTOR + } + Self::guardianSafe(_) => { + ::SELECTOR + } + Self::pause(_) => ::SELECTOR, + Self::pauseMessageTypehash(_) => { + ::SELECTOR + } + Self::setDeputy(_) => { + ::SELECTOR + } + Self::superchainConfig(_) => { + ::SELECTOR + } + Self::usedNonces(_) => { + ::SELECTOR + } + Self::version(_) => ::SELECTOR, + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn pause( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(DeputyPauseModuleCalls::pause) + } + pause + }, + { + fn setDeputy( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(DeputyPauseModuleCalls::setDeputy) + } + setDeputy + }, + { + fn superchainConfig( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(DeputyPauseModuleCalls::superchainConfig) + } + superchainConfig + }, + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(DeputyPauseModuleCalls::version) + } + version + }, + { + fn eip712Domain( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(DeputyPauseModuleCalls::eip712Domain) + } + eip712Domain + }, + { + fn foundationSafe( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(DeputyPauseModuleCalls::foundationSafe) + } + foundationSafe + }, + { + fn guardianSafe( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(DeputyPauseModuleCalls::guardianSafe) + } + guardianSafe + }, + { + fn deputyAuthMessageTypehash( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(DeputyPauseModuleCalls::deputyAuthMessageTypehash) + } + deputyAuthMessageTypehash + }, + { + fn pauseMessageTypehash( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(DeputyPauseModuleCalls::pauseMessageTypehash) + } + pauseMessageTypehash + }, + { + fn deputy( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(DeputyPauseModuleCalls::deputy) + } + deputy + }, + { + fn usedNonces( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(DeputyPauseModuleCalls::usedNonces) + } + usedNonces + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn pause( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DeputyPauseModuleCalls::pause) + } + pause + }, + { + fn setDeputy( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DeputyPauseModuleCalls::setDeputy) + } + setDeputy + }, + { + fn superchainConfig( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DeputyPauseModuleCalls::superchainConfig) + } + superchainConfig + }, + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DeputyPauseModuleCalls::version) + } + version + }, + { + fn eip712Domain( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DeputyPauseModuleCalls::eip712Domain) + } + eip712Domain + }, + { + fn foundationSafe( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DeputyPauseModuleCalls::foundationSafe) + } + foundationSafe + }, + { + fn guardianSafe( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DeputyPauseModuleCalls::guardianSafe) + } + guardianSafe + }, + { + fn deputyAuthMessageTypehash( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DeputyPauseModuleCalls::deputyAuthMessageTypehash) + } + deputyAuthMessageTypehash + }, + { + fn pauseMessageTypehash( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DeputyPauseModuleCalls::pauseMessageTypehash) + } + pauseMessageTypehash + }, + { + fn deputy( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DeputyPauseModuleCalls::deputy) + } + deputy + }, + { + fn usedNonces( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DeputyPauseModuleCalls::usedNonces) + } + usedNonces + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::deputy(inner) => { + ::abi_encoded_size(inner) + } + Self::deputyAuthMessageTypehash(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::eip712Domain(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::foundationSafe(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::guardianSafe(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::pause(inner) => { + ::abi_encoded_size(inner) + } + Self::pauseMessageTypehash(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::setDeputy(inner) => { + ::abi_encoded_size(inner) + } + Self::superchainConfig(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::usedNonces(inner) => { + ::abi_encoded_size(inner) + } + Self::version(inner) => { + ::abi_encoded_size(inner) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::deputy(inner) => { + ::abi_encode_raw(inner, out) + } + Self::deputyAuthMessageTypehash(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::eip712Domain(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::foundationSafe(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::guardianSafe(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::pause(inner) => { + ::abi_encode_raw(inner, out) + } + Self::pauseMessageTypehash(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::setDeputy(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::superchainConfig(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::usedNonces(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::version(inner) => { + ::abi_encode_raw(inner, out) + } + } + } + } + ///Container for all the [`DeputyPauseModule`](self) custom errors. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum DeputyPauseModuleErrors { + #[allow(missing_docs)] + DeputyPauseModule_ExecutionFailed(DeputyPauseModule_ExecutionFailed), + #[allow(missing_docs)] + DeputyPauseModule_InvalidDeputy(DeputyPauseModule_InvalidDeputy), + #[allow(missing_docs)] + DeputyPauseModule_NonceAlreadyUsed(DeputyPauseModule_NonceAlreadyUsed), + #[allow(missing_docs)] + DeputyPauseModule_NotFromSafe(DeputyPauseModule_NotFromSafe), + #[allow(missing_docs)] + DeputyPauseModule_SuperchainNotPaused(DeputyPauseModule_SuperchainNotPaused), + #[allow(missing_docs)] + DeputyPauseModule_Unauthorized(DeputyPauseModule_Unauthorized), + #[allow(missing_docs)] + ECDSAInvalidSignature(ECDSAInvalidSignature), + #[allow(missing_docs)] + ECDSAInvalidSignatureLength(ECDSAInvalidSignatureLength), + #[allow(missing_docs)] + ECDSAInvalidSignatureS(ECDSAInvalidSignatureS), + #[allow(missing_docs)] + InvalidShortString(InvalidShortString), + #[allow(missing_docs)] + StringTooLong(StringTooLong), + } + impl DeputyPauseModuleErrors { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [6u8, 24u8, 222u8, 7u8], + [48u8, 90u8, 39u8, 169u8], + [113u8, 218u8, 44u8, 145u8], + [115u8, 19u8, 69u8, 101u8], + [141u8, 19u8, 100u8, 190u8], + [141u8, 39u8, 154u8, 181u8], + [179u8, 81u8, 43u8, 12u8], + [215u8, 139u8, 206u8, 12u8], + [235u8, 113u8, 113u8, 205u8], + [246u8, 69u8, 238u8, 223u8], + [252u8, 230u8, 152u8, 247u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(DeputyPauseModule_InvalidDeputy), + ::core::stringify!(StringTooLong), + ::core::stringify!(DeputyPauseModule_NotFromSafe), + ::core::stringify!(DeputyPauseModule_NonceAlreadyUsed), + ::core::stringify!(DeputyPauseModule_ExecutionFailed), + ::core::stringify!(DeputyPauseModule_Unauthorized), + ::core::stringify!(InvalidShortString), + ::core::stringify!(ECDSAInvalidSignatureS), + ::core::stringify!(DeputyPauseModule_SuperchainNotPaused), + ::core::stringify!(ECDSAInvalidSignature), + ::core::stringify!(ECDSAInvalidSignatureLength), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for DeputyPauseModuleErrors { + const NAME: &'static str = "DeputyPauseModuleErrors"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 11usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::DeputyPauseModule_ExecutionFailed(_) => { + ::SELECTOR + } + Self::DeputyPauseModule_InvalidDeputy(_) => { + ::SELECTOR + } + Self::DeputyPauseModule_NonceAlreadyUsed(_) => { + ::SELECTOR + } + Self::DeputyPauseModule_NotFromSafe(_) => { + ::SELECTOR + } + Self::DeputyPauseModule_SuperchainNotPaused(_) => { + ::SELECTOR + } + Self::DeputyPauseModule_Unauthorized(_) => { + ::SELECTOR + } + Self::ECDSAInvalidSignature(_) => { + ::SELECTOR + } + Self::ECDSAInvalidSignatureLength(_) => { + ::SELECTOR + } + Self::ECDSAInvalidSignatureS(_) => { + ::SELECTOR + } + Self::InvalidShortString(_) => { + ::SELECTOR + } + Self::StringTooLong(_) => { + ::SELECTOR + } + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn DeputyPauseModule_InvalidDeputy( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + DeputyPauseModuleErrors::DeputyPauseModule_InvalidDeputy, + ) + } + DeputyPauseModule_InvalidDeputy + }, + { + fn StringTooLong( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(DeputyPauseModuleErrors::StringTooLong) + } + StringTooLong + }, + { + fn DeputyPauseModule_NotFromSafe( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(DeputyPauseModuleErrors::DeputyPauseModule_NotFromSafe) + } + DeputyPauseModule_NotFromSafe + }, + { + fn DeputyPauseModule_NonceAlreadyUsed( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + DeputyPauseModuleErrors::DeputyPauseModule_NonceAlreadyUsed, + ) + } + DeputyPauseModule_NonceAlreadyUsed + }, + { + fn DeputyPauseModule_ExecutionFailed( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + DeputyPauseModuleErrors::DeputyPauseModule_ExecutionFailed, + ) + } + DeputyPauseModule_ExecutionFailed + }, + { + fn DeputyPauseModule_Unauthorized( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(DeputyPauseModuleErrors::DeputyPauseModule_Unauthorized) + } + DeputyPauseModule_Unauthorized + }, + { + fn InvalidShortString( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(DeputyPauseModuleErrors::InvalidShortString) + } + InvalidShortString + }, + { + fn ECDSAInvalidSignatureS( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(DeputyPauseModuleErrors::ECDSAInvalidSignatureS) + } + ECDSAInvalidSignatureS + }, + { + fn DeputyPauseModule_SuperchainNotPaused( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + DeputyPauseModuleErrors::DeputyPauseModule_SuperchainNotPaused, + ) + } + DeputyPauseModule_SuperchainNotPaused + }, + { + fn ECDSAInvalidSignature( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(DeputyPauseModuleErrors::ECDSAInvalidSignature) + } + ECDSAInvalidSignature + }, + { + fn ECDSAInvalidSignatureLength( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(DeputyPauseModuleErrors::ECDSAInvalidSignatureLength) + } + ECDSAInvalidSignatureLength + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn DeputyPauseModule_InvalidDeputy( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + DeputyPauseModuleErrors::DeputyPauseModule_InvalidDeputy, + ) + } + DeputyPauseModule_InvalidDeputy + }, + { + fn StringTooLong( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DeputyPauseModuleErrors::StringTooLong) + } + StringTooLong + }, + { + fn DeputyPauseModule_NotFromSafe( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DeputyPauseModuleErrors::DeputyPauseModule_NotFromSafe) + } + DeputyPauseModule_NotFromSafe + }, + { + fn DeputyPauseModule_NonceAlreadyUsed( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + DeputyPauseModuleErrors::DeputyPauseModule_NonceAlreadyUsed, + ) + } + DeputyPauseModule_NonceAlreadyUsed + }, + { + fn DeputyPauseModule_ExecutionFailed( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + DeputyPauseModuleErrors::DeputyPauseModule_ExecutionFailed, + ) + } + DeputyPauseModule_ExecutionFailed + }, + { + fn DeputyPauseModule_Unauthorized( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DeputyPauseModuleErrors::DeputyPauseModule_Unauthorized) + } + DeputyPauseModule_Unauthorized + }, + { + fn InvalidShortString( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DeputyPauseModuleErrors::InvalidShortString) + } + InvalidShortString + }, + { + fn ECDSAInvalidSignatureS( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DeputyPauseModuleErrors::ECDSAInvalidSignatureS) + } + ECDSAInvalidSignatureS + }, + { + fn DeputyPauseModule_SuperchainNotPaused( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + DeputyPauseModuleErrors::DeputyPauseModule_SuperchainNotPaused, + ) + } + DeputyPauseModule_SuperchainNotPaused + }, + { + fn ECDSAInvalidSignature( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DeputyPauseModuleErrors::ECDSAInvalidSignature) + } + ECDSAInvalidSignature + }, + { + fn ECDSAInvalidSignatureLength( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DeputyPauseModuleErrors::ECDSAInvalidSignatureLength) + } + ECDSAInvalidSignatureLength + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::DeputyPauseModule_ExecutionFailed(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::DeputyPauseModule_InvalidDeputy(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::DeputyPauseModule_NonceAlreadyUsed(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::DeputyPauseModule_NotFromSafe(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::DeputyPauseModule_SuperchainNotPaused(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::DeputyPauseModule_Unauthorized(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ECDSAInvalidSignature(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ECDSAInvalidSignatureLength(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ECDSAInvalidSignatureS(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::InvalidShortString(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::StringTooLong(inner) => { + ::abi_encoded_size(inner) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::DeputyPauseModule_ExecutionFailed(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::DeputyPauseModule_InvalidDeputy(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::DeputyPauseModule_NonceAlreadyUsed(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::DeputyPauseModule_NotFromSafe(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::DeputyPauseModule_SuperchainNotPaused(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::DeputyPauseModule_Unauthorized(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ECDSAInvalidSignature(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ECDSAInvalidSignatureLength(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ECDSAInvalidSignatureS(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidShortString(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::StringTooLong(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + } + } + } + ///Container for all the [`DeputyPauseModule`](self) events. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum DeputyPauseModuleEvents { + #[allow(missing_docs)] + DeputySet(DeputySet), + #[allow(missing_docs)] + EIP712DomainChanged(EIP712DomainChanged), + #[allow(missing_docs)] + PauseTriggered(PauseTriggered), + } + impl DeputyPauseModuleEvents { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 32usize]] = &[ + [ + 10u8, 99u8, 135u8, 201u8, 234u8, 54u8, 40u8, 184u8, 138u8, 99u8, 59u8, + 180u8, 243u8, 177u8, 81u8, 119u8, 15u8, 112u8, 8u8, 81u8, 23u8, 161u8, + 95u8, 155u8, 243u8, 120u8, 124u8, 218u8, 83u8, 241u8, 61u8, 49u8, + ], + [ + 107u8, 85u8, 0u8, 246u8, 205u8, 44u8, 212u8, 162u8, 154u8, 178u8, 199u8, + 6u8, 166u8, 198u8, 88u8, 51u8, 208u8, 99u8, 58u8, 86u8, 143u8, 114u8, + 99u8, 70u8, 7u8, 117u8, 206u8, 188u8, 200u8, 233u8, 169u8, 155u8, + ], + [ + 170u8, 100u8, 169u8, 94u8, 58u8, 203u8, 157u8, 180u8, 222u8, 175u8, + 134u8, 93u8, 159u8, 204u8, 98u8, 165u8, 212u8, 121u8, 150u8, 182u8, 67u8, + 231u8, 252u8, 199u8, 153u8, 227u8, 180u8, 153u8, 201u8, 191u8, 242u8, + 217u8, + ], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(EIP712DomainChanged), + ::core::stringify!(DeputySet), + ::core::stringify!(PauseTriggered), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolEventInterface for DeputyPauseModuleEvents { + const NAME: &'static str = "DeputyPauseModuleEvents"; + const COUNT: usize = 3usize; + fn decode_raw_log( + topics: &[alloy_sol_types::Word], + data: &[u8], + ) -> alloy_sol_types::Result { + match topics.first().copied() { + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::DeputySet) + } + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::EIP712DomainChanged) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::PauseTriggered) + } + _ => { + alloy_sol_types::private::Err(alloy_sol_types::Error::InvalidLog { + name: ::NAME, + log: alloy_sol_types::private::Box::new( + alloy_sol_types::private::LogData::new_unchecked( + topics.to_vec(), + data.to_vec().into(), + ), + ), + }) + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for DeputyPauseModuleEvents { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + match self { + Self::DeputySet(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::EIP712DomainChanged(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::PauseTriggered(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + } + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + match self { + Self::DeputySet(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::EIP712DomainChanged(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::PauseTriggered(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`DeputyPauseModule`](self) contract instance. + +See the [wrapper's documentation](`DeputyPauseModuleInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> DeputyPauseModuleInstance { + DeputyPauseModuleInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + _guardianSafe: alloy::sol_types::private::Address, + _foundationSafe: alloy::sol_types::private::Address, + _superchainConfig: alloy::sol_types::private::Address, + _deputy: alloy::sol_types::private::Address, + _deputySignature: alloy::sol_types::private::Bytes, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + DeputyPauseModuleInstance::< + P, + N, + >::deploy( + __provider, + _guardianSafe, + _foundationSafe, + _superchainConfig, + _deputy, + _deputySignature, + ) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + _guardianSafe: alloy::sol_types::private::Address, + _foundationSafe: alloy::sol_types::private::Address, + _superchainConfig: alloy::sol_types::private::Address, + _deputy: alloy::sol_types::private::Address, + _deputySignature: alloy::sol_types::private::Bytes, + ) -> alloy_contract::RawCallBuilder { + DeputyPauseModuleInstance::< + P, + N, + >::deploy_builder( + __provider, + _guardianSafe, + _foundationSafe, + _superchainConfig, + _deputy, + _deputySignature, + ) + } + /**A [`DeputyPauseModule`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`DeputyPauseModule`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct DeputyPauseModuleInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for DeputyPauseModuleInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("DeputyPauseModuleInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > DeputyPauseModuleInstance { + /**Creates a new wrapper around an on-chain [`DeputyPauseModule`](self) contract instance. + +See the [wrapper's documentation](`DeputyPauseModuleInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + _guardianSafe: alloy::sol_types::private::Address, + _foundationSafe: alloy::sol_types::private::Address, + _superchainConfig: alloy::sol_types::private::Address, + _deputy: alloy::sol_types::private::Address, + _deputySignature: alloy::sol_types::private::Bytes, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder( + __provider, + _guardianSafe, + _foundationSafe, + _superchainConfig, + _deputy, + _deputySignature, + ); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder( + __provider: P, + _guardianSafe: alloy::sol_types::private::Address, + _foundationSafe: alloy::sol_types::private::Address, + _superchainConfig: alloy::sol_types::private::Address, + _deputy: alloy::sol_types::private::Address, + _deputySignature: alloy::sol_types::private::Bytes, + ) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + [ + &BYTECODE[..], + &alloy_sol_types::SolConstructor::abi_encode( + &constructorCall { + _guardianSafe, + _foundationSafe, + _superchainConfig, + _deputy, + _deputySignature, + }, + )[..], + ] + .concat() + .into(), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl DeputyPauseModuleInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> DeputyPauseModuleInstance { + DeputyPauseModuleInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > DeputyPauseModuleInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`deputy`] function. + pub fn deputy(&self) -> alloy_contract::SolCallBuilder<&P, deputyCall, N> { + self.call_builder(&deputyCall) + } + ///Creates a new call builder for the [`deputyAuthMessageTypehash`] function. + pub fn deputyAuthMessageTypehash( + &self, + ) -> alloy_contract::SolCallBuilder<&P, deputyAuthMessageTypehashCall, N> { + self.call_builder(&deputyAuthMessageTypehashCall) + } + ///Creates a new call builder for the [`eip712Domain`] function. + pub fn eip712Domain( + &self, + ) -> alloy_contract::SolCallBuilder<&P, eip712DomainCall, N> { + self.call_builder(&eip712DomainCall) + } + ///Creates a new call builder for the [`foundationSafe`] function. + pub fn foundationSafe( + &self, + ) -> alloy_contract::SolCallBuilder<&P, foundationSafeCall, N> { + self.call_builder(&foundationSafeCall) + } + ///Creates a new call builder for the [`guardianSafe`] function. + pub fn guardianSafe( + &self, + ) -> alloy_contract::SolCallBuilder<&P, guardianSafeCall, N> { + self.call_builder(&guardianSafeCall) + } + ///Creates a new call builder for the [`pause`] function. + pub fn pause( + &self, + _nonce: alloy::sol_types::private::FixedBytes<32>, + _identifier: alloy::sol_types::private::Address, + _signature: alloy::sol_types::private::Bytes, + ) -> alloy_contract::SolCallBuilder<&P, pauseCall, N> { + self.call_builder( + &pauseCall { + _nonce, + _identifier, + _signature, + }, + ) + } + ///Creates a new call builder for the [`pauseMessageTypehash`] function. + pub fn pauseMessageTypehash( + &self, + ) -> alloy_contract::SolCallBuilder<&P, pauseMessageTypehashCall, N> { + self.call_builder(&pauseMessageTypehashCall) + } + ///Creates a new call builder for the [`setDeputy`] function. + pub fn setDeputy( + &self, + _deputy: alloy::sol_types::private::Address, + _deputySignature: alloy::sol_types::private::Bytes, + ) -> alloy_contract::SolCallBuilder<&P, setDeputyCall, N> { + self.call_builder( + &setDeputyCall { + _deputy, + _deputySignature, + }, + ) + } + ///Creates a new call builder for the [`superchainConfig`] function. + pub fn superchainConfig( + &self, + ) -> alloy_contract::SolCallBuilder<&P, superchainConfigCall, N> { + self.call_builder(&superchainConfigCall) + } + ///Creates a new call builder for the [`usedNonces`] function. + pub fn usedNonces( + &self, + _0: alloy::sol_types::private::FixedBytes<32>, + ) -> alloy_contract::SolCallBuilder<&P, usedNoncesCall, N> { + self.call_builder(&usedNoncesCall(_0)) + } + ///Creates a new call builder for the [`version`] function. + pub fn version(&self) -> alloy_contract::SolCallBuilder<&P, versionCall, N> { + self.call_builder(&versionCall) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > DeputyPauseModuleInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + ///Creates a new event filter for the [`DeputySet`] event. + pub fn DeputySet_filter(&self) -> alloy_contract::Event<&P, DeputySet, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`EIP712DomainChanged`] event. + pub fn EIP712DomainChanged_filter( + &self, + ) -> alloy_contract::Event<&P, EIP712DomainChanged, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`PauseTriggered`] event. + pub fn PauseTriggered_filter( + &self, + ) -> alloy_contract::Event<&P, PauseTriggered, N> { + self.event_filter::() + } + } +} diff --git a/bindings/rust/src/dev_features.rs b/bindings/rust/src/dev_features.rs new file mode 100644 index 000000000..cb17180ce --- /dev/null +++ b/bindings/rust/src/dev_features.rs @@ -0,0 +1,954 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface DevFeatures { + function CANNON_KONA() external view returns (bytes32); + function DEPLOY_V2_DISPUTE_GAMES() external view returns (bytes32); + function OPTIMISM_PORTAL_INTEROP() external view returns (bytes32); +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "function", + "name": "CANNON_KONA", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "DEPLOY_V2_DISPUTE_GAMES", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "OPTIMISM_PORTAL_INTEROP", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "stateMutability": "view" + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod DevFeatures { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x6081610039600b82828239805160001a60731461002c57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe730000000000000000000000000000000000000000301460806040526004361060475760003560e01c806398e1596214604c578063d95fb3d8146065578063e3ffb8ea14606c575b600080fd5b6053600181565b60405190815260200160405180910390f35b6053601081565b60536101008156fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x81a\09`\x0B\x82\x82\x829\x80Q`\0\x1A`s\x14a\0,WcNH{q`\xE0\x1B`\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\x10`GW`\x005`\xE0\x1C\x80c\x98\xE1Yb\x14`LW\x80c\xD9_\xB3\xD8\x14`eW\x80c\xE3\xFF\xB8\xEA\x14`lW[`\0\x80\xFD[`S`\x01\x81V[`@Q\x90\x81R` \x01`@Q\x80\x91\x03\x90\xF3[`S`\x10\x81V[`Sa\x01\0\x81V\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x730000000000000000000000000000000000000000301460806040526004361060475760003560e01c806398e1596214604c578063d95fb3d8146065578063e3ffb8ea14606c575b600080fd5b6053600181565b60405190815260200160405180910390f35b6053601081565b60536101008156fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + 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\x10`GW`\x005`\xE0\x1C\x80c\x98\xE1Yb\x14`LW\x80c\xD9_\xB3\xD8\x14`eW\x80c\xE3\xFF\xB8\xEA\x14`lW[`\0\x80\xFD[`S`\x01\x81V[`@Q\x90\x81R` \x01`@Q\x80\x91\x03\x90\xF3[`S`\x10\x81V[`Sa\x01\0\x81V\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `CANNON_KONA()` and selector `0xd95fb3d8`. +```solidity +function CANNON_KONA() external view returns (bytes32); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct CANNON_KONACall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`CANNON_KONA()`](CANNON_KONACall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct CANNON_KONAReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: CANNON_KONACall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for CANNON_KONACall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: CANNON_KONAReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for CANNON_KONAReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for CANNON_KONACall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::FixedBytes<32>; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "CANNON_KONA()"; + const SELECTOR: [u8; 4] = [217u8, 95u8, 179u8, 216u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: CANNON_KONAReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: CANNON_KONAReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `DEPLOY_V2_DISPUTE_GAMES()` and selector `0xe3ffb8ea`. +```solidity +function DEPLOY_V2_DISPUTE_GAMES() external view returns (bytes32); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct DEPLOY_V2_DISPUTE_GAMESCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`DEPLOY_V2_DISPUTE_GAMES()`](DEPLOY_V2_DISPUTE_GAMESCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct DEPLOY_V2_DISPUTE_GAMESReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: DEPLOY_V2_DISPUTE_GAMESCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for DEPLOY_V2_DISPUTE_GAMESCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: DEPLOY_V2_DISPUTE_GAMESReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for DEPLOY_V2_DISPUTE_GAMESReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for DEPLOY_V2_DISPUTE_GAMESCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::FixedBytes<32>; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "DEPLOY_V2_DISPUTE_GAMES()"; + const SELECTOR: [u8; 4] = [227u8, 255u8, 184u8, 234u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: DEPLOY_V2_DISPUTE_GAMESReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: DEPLOY_V2_DISPUTE_GAMESReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `OPTIMISM_PORTAL_INTEROP()` and selector `0x98e15962`. +```solidity +function OPTIMISM_PORTAL_INTEROP() external view returns (bytes32); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct OPTIMISM_PORTAL_INTEROPCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`OPTIMISM_PORTAL_INTEROP()`](OPTIMISM_PORTAL_INTEROPCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct OPTIMISM_PORTAL_INTEROPReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: OPTIMISM_PORTAL_INTEROPCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for OPTIMISM_PORTAL_INTEROPCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: OPTIMISM_PORTAL_INTEROPReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for OPTIMISM_PORTAL_INTEROPReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for OPTIMISM_PORTAL_INTEROPCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::FixedBytes<32>; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "OPTIMISM_PORTAL_INTEROP()"; + const SELECTOR: [u8; 4] = [152u8, 225u8, 89u8, 98u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: OPTIMISM_PORTAL_INTEROPReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: OPTIMISM_PORTAL_INTEROPReturn = r.into(); + r._0 + }) + } + } + }; + ///Container for all the [`DevFeatures`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum DevFeaturesCalls { + #[allow(missing_docs)] + CANNON_KONA(CANNON_KONACall), + #[allow(missing_docs)] + DEPLOY_V2_DISPUTE_GAMES(DEPLOY_V2_DISPUTE_GAMESCall), + #[allow(missing_docs)] + OPTIMISM_PORTAL_INTEROP(OPTIMISM_PORTAL_INTEROPCall), + } + impl DevFeaturesCalls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [152u8, 225u8, 89u8, 98u8], + [217u8, 95u8, 179u8, 216u8], + [227u8, 255u8, 184u8, 234u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(OPTIMISM_PORTAL_INTEROP), + ::core::stringify!(CANNON_KONA), + ::core::stringify!(DEPLOY_V2_DISPUTE_GAMES), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for DevFeaturesCalls { + const NAME: &'static str = "DevFeaturesCalls"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 3usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::CANNON_KONA(_) => { + ::SELECTOR + } + Self::DEPLOY_V2_DISPUTE_GAMES(_) => { + ::SELECTOR + } + Self::OPTIMISM_PORTAL_INTEROP(_) => { + ::SELECTOR + } + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn OPTIMISM_PORTAL_INTEROP( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(DevFeaturesCalls::OPTIMISM_PORTAL_INTEROP) + } + OPTIMISM_PORTAL_INTEROP + }, + { + fn CANNON_KONA( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(DevFeaturesCalls::CANNON_KONA) + } + CANNON_KONA + }, + { + fn DEPLOY_V2_DISPUTE_GAMES( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(DevFeaturesCalls::DEPLOY_V2_DISPUTE_GAMES) + } + DEPLOY_V2_DISPUTE_GAMES + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn OPTIMISM_PORTAL_INTEROP( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DevFeaturesCalls::OPTIMISM_PORTAL_INTEROP) + } + OPTIMISM_PORTAL_INTEROP + }, + { + fn CANNON_KONA( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DevFeaturesCalls::CANNON_KONA) + } + CANNON_KONA + }, + { + fn DEPLOY_V2_DISPUTE_GAMES( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DevFeaturesCalls::DEPLOY_V2_DISPUTE_GAMES) + } + DEPLOY_V2_DISPUTE_GAMES + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::CANNON_KONA(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::DEPLOY_V2_DISPUTE_GAMES(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::OPTIMISM_PORTAL_INTEROP(inner) => { + ::abi_encoded_size( + inner, + ) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::CANNON_KONA(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::DEPLOY_V2_DISPUTE_GAMES(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::OPTIMISM_PORTAL_INTEROP(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`DevFeatures`](self) contract instance. + +See the [wrapper's documentation](`DevFeaturesInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> DevFeaturesInstance { + DevFeaturesInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + DevFeaturesInstance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + DevFeaturesInstance::::deploy_builder(__provider) + } + /**A [`DevFeatures`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`DevFeatures`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct DevFeaturesInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for DevFeaturesInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("DevFeaturesInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > DevFeaturesInstance { + /**Creates a new wrapper around an on-chain [`DevFeatures`](self) contract instance. + +See the [wrapper's documentation](`DevFeaturesInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl DevFeaturesInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> DevFeaturesInstance { + DevFeaturesInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > DevFeaturesInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`CANNON_KONA`] function. + pub fn CANNON_KONA( + &self, + ) -> alloy_contract::SolCallBuilder<&P, CANNON_KONACall, N> { + self.call_builder(&CANNON_KONACall) + } + ///Creates a new call builder for the [`DEPLOY_V2_DISPUTE_GAMES`] function. + pub fn DEPLOY_V2_DISPUTE_GAMES( + &self, + ) -> alloy_contract::SolCallBuilder<&P, DEPLOY_V2_DISPUTE_GAMESCall, N> { + self.call_builder(&DEPLOY_V2_DISPUTE_GAMESCall) + } + ///Creates a new call builder for the [`OPTIMISM_PORTAL_INTEROP`] function. + pub fn OPTIMISM_PORTAL_INTEROP( + &self, + ) -> alloy_contract::SolCallBuilder<&P, OPTIMISM_PORTAL_INTEROPCall, N> { + self.call_builder(&OPTIMISM_PORTAL_INTEROPCall) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > DevFeaturesInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + } +} diff --git a/bindings/rust/src/dispute_game_factory.rs b/bindings/rust/src/dispute_game_factory.rs new file mode 100644 index 000000000..2265ce693 --- /dev/null +++ b/bindings/rust/src/dispute_game_factory.rs @@ -0,0 +1,8627 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface DisputeGameFactory { + type Claim is bytes32; + type GameId is bytes32; + type GameType is uint32; + type Hash is bytes32; + type Timestamp is uint64; + struct GameSearchResult { + uint256 index; + GameId metadata; + Timestamp timestamp; + Claim rootClaim; + bytes extraData; + } + + error GameAlreadyExists(Hash uuid); + error IncorrectBondAmount(); + error NoImplementation(GameType gameType); + error ProxyAdminOwnedBase_NotProxyAdmin(); + error ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner(); + error ProxyAdminOwnedBase_NotProxyAdminOwner(); + error ProxyAdminOwnedBase_NotResolvedDelegateProxy(); + error ProxyAdminOwnedBase_NotSharedProxyAdminOwner(); + error ProxyAdminOwnedBase_ProxyAdminNotFound(); + error ReinitializableBase_ZeroInitVersion(); + + event DisputeGameCreated(address indexed disputeProxy, GameType indexed gameType, Claim indexed rootClaim); + event ImplementationArgsSet(GameType indexed gameType, bytes args); + event ImplementationSet(address indexed impl, GameType indexed gameType); + event InitBondUpdated(GameType indexed gameType, uint256 indexed newBond); + event Initialized(uint8 version); + event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); + + constructor(); + + function create(GameType _gameType, Claim _rootClaim, bytes memory _extraData) external payable returns (address proxy_); + function createWithInitData(GameType _gameType, Claim _rootClaim, bytes memory _extraData, bytes memory _initData) external payable returns (address proxy_); + function findLatestGames(GameType _gameType, uint256 _start, uint256 _n) external view returns (GameSearchResult[] memory games_); + function gameArgs(GameType) external view returns (bytes memory); + function gameAtIndex(uint256 _index) external view returns (GameType gameType_, Timestamp timestamp_, address proxy_); + function gameCount() external view returns (uint256 gameCount_); + function gameImpls(GameType) external view returns (address); + function games(GameType _gameType, Claim _rootClaim, bytes memory _extraData) external view returns (address proxy_, Timestamp timestamp_); + function getGameUUID(GameType _gameType, Claim _rootClaim, bytes memory _extraData) external pure returns (Hash uuid_); + function initBonds(GameType) external view returns (uint256); + function initVersion() external view returns (uint8); + function initialize(address _owner) external; + function owner() external view returns (address); + function proxyAdmin() external view returns (address); + function proxyAdminOwner() external view returns (address); + function renounceOwnership() external; + function setImplementation(GameType _gameType, address _impl) external; + function setImplementation(GameType _gameType, address _impl, bytes memory _args) external; + function setInitBond(GameType _gameType, uint256 _initBond) external; + function transferOwnership(address newOwner) external; + function version() external view returns (string memory); +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "constructor", + "inputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "create", + "inputs": [ + { + "name": "_gameType", + "type": "uint32", + "internalType": "GameType" + }, + { + "name": "_rootClaim", + "type": "bytes32", + "internalType": "Claim" + }, + { + "name": "_extraData", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [ + { + "name": "proxy_", + "type": "address", + "internalType": "contract IDisputeGame" + } + ], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "createWithInitData", + "inputs": [ + { + "name": "_gameType", + "type": "uint32", + "internalType": "GameType" + }, + { + "name": "_rootClaim", + "type": "bytes32", + "internalType": "Claim" + }, + { + "name": "_extraData", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "_initData", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [ + { + "name": "proxy_", + "type": "address", + "internalType": "contract IDisputeGame" + } + ], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "findLatestGames", + "inputs": [ + { + "name": "_gameType", + "type": "uint32", + "internalType": "GameType" + }, + { + "name": "_start", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_n", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "games_", + "type": "tuple[]", + "internalType": "struct DisputeGameFactory.GameSearchResult[]", + "components": [ + { + "name": "index", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "metadata", + "type": "bytes32", + "internalType": "GameId" + }, + { + "name": "timestamp", + "type": "uint64", + "internalType": "Timestamp" + }, + { + "name": "rootClaim", + "type": "bytes32", + "internalType": "Claim" + }, + { + "name": "extraData", + "type": "bytes", + "internalType": "bytes" + } + ] + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "gameArgs", + "inputs": [ + { + "name": "", + "type": "uint32", + "internalType": "GameType" + } + ], + "outputs": [ + { + "name": "", + "type": "bytes", + "internalType": "bytes" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "gameAtIndex", + "inputs": [ + { + "name": "_index", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "gameType_", + "type": "uint32", + "internalType": "GameType" + }, + { + "name": "timestamp_", + "type": "uint64", + "internalType": "Timestamp" + }, + { + "name": "proxy_", + "type": "address", + "internalType": "contract IDisputeGame" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "gameCount", + "inputs": [], + "outputs": [ + { + "name": "gameCount_", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "gameImpls", + "inputs": [ + { + "name": "", + "type": "uint32", + "internalType": "GameType" + } + ], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract IDisputeGame" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "games", + "inputs": [ + { + "name": "_gameType", + "type": "uint32", + "internalType": "GameType" + }, + { + "name": "_rootClaim", + "type": "bytes32", + "internalType": "Claim" + }, + { + "name": "_extraData", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [ + { + "name": "proxy_", + "type": "address", + "internalType": "contract IDisputeGame" + }, + { + "name": "timestamp_", + "type": "uint64", + "internalType": "Timestamp" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "getGameUUID", + "inputs": [ + { + "name": "_gameType", + "type": "uint32", + "internalType": "GameType" + }, + { + "name": "_rootClaim", + "type": "bytes32", + "internalType": "Claim" + }, + { + "name": "_extraData", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [ + { + "name": "uuid_", + "type": "bytes32", + "internalType": "Hash" + } + ], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "initBonds", + "inputs": [ + { + "name": "", + "type": "uint32", + "internalType": "GameType" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "initVersion", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint8", + "internalType": "uint8" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "initialize", + "inputs": [ + { + "name": "_owner", + "type": "address", + "internalType": "address" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "owner", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "proxyAdmin", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract IProxyAdmin" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "proxyAdminOwner", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "renounceOwnership", + "inputs": [], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "setImplementation", + "inputs": [ + { + "name": "_gameType", + "type": "uint32", + "internalType": "GameType" + }, + { + "name": "_impl", + "type": "address", + "internalType": "contract IDisputeGame" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "setImplementation", + "inputs": [ + { + "name": "_gameType", + "type": "uint32", + "internalType": "GameType" + }, + { + "name": "_impl", + "type": "address", + "internalType": "contract IDisputeGame" + }, + { + "name": "_args", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "setInitBond", + "inputs": [ + { + "name": "_gameType", + "type": "uint32", + "internalType": "GameType" + }, + { + "name": "_initBond", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "transferOwnership", + "inputs": [ + { + "name": "newOwner", + "type": "address", + "internalType": "address" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "version", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "view" + }, + { + "type": "event", + "name": "DisputeGameCreated", + "inputs": [ + { + "name": "disputeProxy", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "gameType", + "type": "uint32", + "indexed": true, + "internalType": "GameType" + }, + { + "name": "rootClaim", + "type": "bytes32", + "indexed": true, + "internalType": "Claim" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "ImplementationArgsSet", + "inputs": [ + { + "name": "gameType", + "type": "uint32", + "indexed": true, + "internalType": "GameType" + }, + { + "name": "args", + "type": "bytes", + "indexed": false, + "internalType": "bytes" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "ImplementationSet", + "inputs": [ + { + "name": "impl", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "gameType", + "type": "uint32", + "indexed": true, + "internalType": "GameType" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "InitBondUpdated", + "inputs": [ + { + "name": "gameType", + "type": "uint32", + "indexed": true, + "internalType": "GameType" + }, + { + "name": "newBond", + "type": "uint256", + "indexed": true, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "Initialized", + "inputs": [ + { + "name": "version", + "type": "uint8", + "indexed": false, + "internalType": "uint8" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "OwnershipTransferred", + "inputs": [ + { + "name": "previousOwner", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "newOwner", + "type": "address", + "indexed": true, + "internalType": "address" + } + ], + "anonymous": false + }, + { + "type": "error", + "name": "GameAlreadyExists", + "inputs": [ + { + "name": "uuid", + "type": "bytes32", + "internalType": "Hash" + } + ] + }, + { + "type": "error", + "name": "IncorrectBondAmount", + "inputs": [] + }, + { + "type": "error", + "name": "NoImplementation", + "inputs": [ + { + "name": "gameType", + "type": "uint32", + "internalType": "GameType" + } + ] + }, + { + "type": "error", + "name": "ProxyAdminOwnedBase_NotProxyAdmin", + "inputs": [] + }, + { + "type": "error", + "name": "ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner", + "inputs": [] + }, + { + "type": "error", + "name": "ProxyAdminOwnedBase_NotProxyAdminOwner", + "inputs": [] + }, + { + "type": "error", + "name": "ProxyAdminOwnedBase_NotResolvedDelegateProxy", + "inputs": [] + }, + { + "type": "error", + "name": "ProxyAdminOwnedBase_NotSharedProxyAdminOwner", + "inputs": [] + }, + { + "type": "error", + "name": "ProxyAdminOwnedBase_ProxyAdminNotFound", + "inputs": [] + }, + { + "type": "error", + "name": "ReinitializableBase_ZeroInitVersion", + "inputs": [] + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod DisputeGameFactory { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x60a060405234801561001057600080fd5b50600160805261001e610023565b6100e3565b600054610100900460ff161561008f5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811610156100e1576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b608051611e01610105600039600081816102580152610cd00152611e016000f3fe60806040526004361061016a5760003560e01c80636593dc6e116100cb57806396cd97201161007f578063c4d66de811610059578063c4d66de81461047b578063dad544e01461049b578063f2fde38b146104b057600080fd5b806396cd9720146103e7578063b107095714610407578063bb8aa1fc1461042757600080fd5b806374cc86ac116100b057806374cc86ac1461039657806382ecf2f6146103b65780638da5cb5b146103c957600080fd5b80636593dc6e14610354578063715018a61461038157600080fd5b806338d38c97116101225780634d1975b4116101075780634d1975b41461029757806354fd4d50146102b65780635f0150cb1461030c57600080fd5b806338d38c97146102445780633e47158c1461028257600080fd5b80631b685b9e116101535780631b685b9e146101c15780631e334240146101f7578063254bd6831461021757600080fd5b80631011f3771461016f57806314f6b1a31461019f575b600080fd5b61018261017d36600461164c565b6104d0565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156101ab57600080fd5b506101bf6101ba3660046116eb565b610558565b005b3480156101cd57600080fd5b506101826101dc366004611722565b6065602052600090815260409020546001600160a01b031681565b34801561020357600080fd5b506101bf61021236600461173d565b6105d5565b34801561022357600080fd5b50610237610232366004611767565b610621565b60405161019691906117f6565b34801561025057600080fd5b5060405160ff7f0000000000000000000000000000000000000000000000000000000000000000168152602001610196565b34801561028e57600080fd5b50610182610802565b3480156102a357600080fd5b506068545b604051908152602001610196565b3480156102c257600080fd5b506102ff6040518060400160405280600581526020017f312e342e3000000000000000000000000000000000000000000000000000000081525081565b60405161019691906118b3565b34801561031857600080fd5b5061032c6103273660046118c6565b6109e6565b604080516001600160a01b03909316835267ffffffffffffffff909116602083015201610196565b34801561036057600080fd5b506102a861036f366004611722565b60666020526000908152604090205481565b34801561038d57600080fd5b506101bf610a2c565b3480156103a257600080fd5b506102ff6103b1366004611722565b610a40565b6101826103c43660046118c6565b610ada565b3480156103d557600080fd5b506033546001600160a01b0316610182565b3480156103f357600080fd5b506102a86104023660046118c6565b610b53565b34801561041357600080fd5b506101bf610422366004611920565b610b8c565b34801561043357600080fd5b5061044761044236600461196b565b610c72565b6040805163ffffffff909416845267ffffffffffffffff90921660208401526001600160a01b031690820152606001610196565b34801561048757600080fd5b506101bf610496366004611984565b610cce565b3480156104a757600080fd5b50610182610e4b565b3480156104bc57600080fd5b506101bf6104cb366004611984565b610ebb565b60006104de87878787610f65565b9050806001600160a01b0316634224b1e73485856040518463ffffffff1660e01b815260040161050f9291906119cc565b6000604051808303818588803b15801561052857600080fd5b505af115801561053c573d6000803e3d6000fd5b505050505061054e878787878561113e565b9695505050505050565b610560611230565b63ffffffff821660008181526065602052604080822080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b038616908117909155905190917fff513d80e2c7fa487608f70a618dfbc0cf415699dc69588c747e8c71566c88de91a35050565b6105dd611230565b63ffffffff8216600081815260666020526040808220849055518392917f74d6665c4b26d5596a5aa13d3014e0c06af4d322075a797f87b03cd4c5bc91ca91a35050565b60685460609083101580610633575081155b6107fb575060408051600583901b8101602001909152825b8381116107f957600060688281548110610667576106676119e0565b600091825260209091200154905060e081901c60a082901c67ffffffffffffffff166001600160a01b03831663ffffffff891683036107e857600186510186526000816001600160a01b031663609d33346040518163ffffffff1660e01b8152600401600060405180830381865afa1580156106e7573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261070f9190810190611a3e565b90506000826001600160a01b031663bcef3b556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610751573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107759190611aeb565b90506040518060a001604052808881526020018781526020018567ffffffffffffffff168152602001828152602001838152508860018a516107b79190611b33565b815181106107c7576107c76119e0565b6020026020010181905250888851106107e5575050505050506107f9565b50505b5050600019909201915061064b9050565b505b9392505050565b60008061082d7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b90506001600160a01b0381161561084357919050565b6040518060400160405280601a81526020017f4f564d5f4c3143726f7373446f6d61696e4d657373656e6765720000000000008152505160026108869190611b4a565b604080513060208201526000918101919091527f4f564d5f4c3143726f7373446f6d61696e4d657373656e67657200000000000091909117906108e1906060015b604051602081830303815290604052805190602001205490565b14610918576040517f54e433cd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805130602082015260019181019190915260009061093a906060016108c7565b90506001600160a01b038116156109b457806001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610989573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ad9190611b69565b9250505090565b6040517f332144db00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008060006109f787878787610b53565b6000908152606760205260409020546001600160a01b0381169860a09190911c67ffffffffffffffff16975095505050505050565b610a34611230565b610a3e60006112a4565b565b60696020526000908152604090208054610a5990611b86565b80601f0160208091040260200160405190810160405280929190818152602001828054610a8590611b86565b8015610ad25780601f10610aa757610100808354040283529160200191610ad2565b820191906000526020600020905b815481529060010190602001808311610ab557829003601f168201915b505050505081565b6000610ae885858585610f65565b9050806001600160a01b0316638129fc1c346040518263ffffffff1660e01b81526004016000604051808303818588803b158015610b2557600080fd5b505af1158015610b39573d6000803e3d6000fd5b5050505050610b4b858585858561113e565b949350505050565b600084848484604051602001610b6c9493929190611bd9565b604051602081830303815290604052805190602001209050949350505050565b610b94611230565b63ffffffff8416600090815260656020908152604080832080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03881617905560699091529020610bef828483611c4e565b5060405163ffffffff8516906001600160a01b038516907fff513d80e2c7fa487608f70a618dfbc0cf415699dc69588c747e8c71566c88de90600090a38363ffffffff167fa47fcdf075d680d3817bfca7973b373e1a5f6cfc3b444748299cc2b83d8348f98383604051610c649291906119cc565b60405180910390a250505050565b600080600080600080610cbe60688881548110610c9157610c916119e0565b906000526020600020015460e081901c9160a082901c67ffffffffffffffff16916001600160a01b031690565b9199909850909650945050505050565b7f0000000000000000000000000000000000000000000000000000000000000000600054610100900460ff16158015610d0e575060005460ff8083169116105b610d9f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084015b60405180910390fd5b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001660ff831617610100179055610dd861130e565b610de0611375565b610de9826112a4565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b6000610e55610802565b6001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e92573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eb69190611b69565b905090565b610ec3611230565b6001600160a01b038116610f59576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610d96565b610f62816112a4565b50565b63ffffffff84166000908152606560205260408120546001600160a01b031680610fc3576040517f031c6de400000000000000000000000000000000000000000000000000000000815263ffffffff87166004820152602401610d96565b63ffffffff86166000908152606660205260409020543414611011576040517f8620aa1900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061101e600143611b33565b63ffffffff88166000908152606960205260408120805492409350909161104490611b86565b80601f016020809104026020016040519081016040528092919081815260200182805461107090611b86565b80156110bd5780601f10611092576101008083540402835291602001916110bd565b820191906000526020600020905b8154815290600101906020018083116110a057829003601f168201915b5050505050905080516000036111105761110933888489896040516020016110e9959493929190611d0f565b60408051601f198184030181529190526001600160a01b03851690611414565b9350611133565b6111303388848b8a8a876040516020016110e99796959493929190611d5c565b93505b505050949350505050565b600061114c86868686610b53565b60008181526067602052604090205490915015611198576040517f014f6fe500000000000000000000000000000000000000000000000000000000815260048101829052602401610d96565b60004260a01b60e088901b178317600083815260676020526040808220839055606880546001810182559083527fa2153420d844928b4421650203c77babc8b33d7f2e7b450e2966db0c220977530183905551919250879163ffffffff8a16916001600160a01b038716917f5b565efe82411da98814f356d0e7bcb8f0219b8d970307c5afb4a6903a8b2e359190a450505050505050565b6033546001600160a01b03163314610a3e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610d96565b603380546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b33611317610802565b6001600160a01b03161415801561133e575033611332610e4b565b6001600160a01b031614155b15610a3e576040517fc4050a2600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600054610100900460ff1661140c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610d96565b610a3e611422565b60006107fb600084846114c2565b600054610100900460ff166114b9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610d96565b610a3e336112a4565b600060608203516040830351602084035184518060208701018051600283016c5af43d3d93803e606057fd5bf3895289600d8a035278593da1005b363d3d373d3d3d3d610000806062363936013d738160481b1760218a03527f9e4ac34f21c619cefc926c8bd93b54bf5a39c7ab2127a895af1cc0691d7e3dff603a8a035272fd6100003d81600a3d39f336602c57343d527f6062820160781b1761ff9e82106059018a03528060f01b8352606c8101604c8a038cf09750508661158e5763301164256000526004601cfd5b90528552601f198501527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08401527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa09092019190915292915050565b803563ffffffff811681146115fe57600080fd5b919050565b60008083601f84011261161557600080fd5b50813567ffffffffffffffff81111561162d57600080fd5b60208301915083602082850101111561164557600080fd5b9250929050565b6000806000806000806080878903121561166557600080fd5b61166e876115ea565b955060208701359450604087013567ffffffffffffffff8082111561169257600080fd5b61169e8a838b01611603565b909650945060608901359150808211156116b757600080fd5b506116c489828a01611603565b979a9699509497509295939492505050565b6001600160a01b0381168114610f6257600080fd5b600080604083850312156116fe57600080fd5b611707836115ea565b91506020830135611717816116d6565b809150509250929050565b60006020828403121561173457600080fd5b6107fb826115ea565b6000806040838503121561175057600080fd5b611759836115ea565b946020939093013593505050565b60008060006060848603121561177c57600080fd5b611785846115ea565b95602085013595506040909401359392505050565b60005b838110156117b557818101518382015260200161179d565b838111156117c4576000848401525b50505050565b600081518084526117e281602086016020860161179a565b601f01601f19169290920160200192915050565b60006020808301818452808551808352604092508286019150828160051b87010184880160005b838110156118a5578883037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc001855281518051845287810151888501528681015167ffffffffffffffff16878501526060808201519085015260809081015160a091850182905290611891818601836117ca565b96890196945050509086019060010161181d565b509098975050505050505050565b6020815260006107fb60208301846117ca565b600080600080606085870312156118dc57600080fd5b6118e5856115ea565b935060208501359250604085013567ffffffffffffffff81111561190857600080fd5b61191487828801611603565b95989497509550505050565b6000806000806060858703121561193657600080fd5b61193f856115ea565b9350602085013561194f816116d6565b9250604085013567ffffffffffffffff81111561190857600080fd5b60006020828403121561197d57600080fd5b5035919050565b60006020828403121561199657600080fd5b81356107fb816116d6565b818352818160208501375060006020828401015260006020601f19601f840116840101905092915050565b602081526000610b4b6020830184866119a1565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600060208284031215611a5057600080fd5b815167ffffffffffffffff80821115611a6857600080fd5b818401915084601f830112611a7c57600080fd5b815181811115611a8e57611a8e611a0f565b604051601f8201601f19908116603f01168101908382118183101715611ab657611ab6611a0f565b81604052828152876020848701011115611acf57600080fd5b611ae083602083016020880161179a565b979650505050505050565b600060208284031215611afd57600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600082821015611b4557611b45611b04565b500390565b6000816000190483118215151615611b6457611b64611b04565b500290565b600060208284031215611b7b57600080fd5b81516107fb816116d6565b600181811c90821680611b9a57607f821691505b602082108103611bd3577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b63ffffffff8516815283602082015260606040820152600061054e6060830184866119a1565b601f821115611c4957600081815260208120601f850160051c81016020861015611c265750805b601f850160051c820191505b81811015611c4557828155600101611c32565b5050505b505050565b67ffffffffffffffff831115611c6657611c66611a0f565b611c7a83611c748354611b86565b83611bff565b6000601f841160018114611cae5760008515611c965750838201355b600019600387901b1c1916600186901b178355611d08565b600083815260209020601f19861690835b82811015611cdf5786850135825560209485019460019092019101611cbf565b5086821015611cfc5760001960f88860031b161c19848701351681555b505060018560011b0183555b5050505050565b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008660601b1681528460148201528360348201528183605483013760009101605401908152949350505050565b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008860601b1681528660148201528560348201527fffffffff000000000000000000000000000000000000000000000000000000008560e01b16605482015282846058830137600083820160588101600081528451611ddf81836020890161179a565b919091016058019a995050505050505050505056fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\xA0`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`\x01`\x80Ra\0\x1Ea\0#V[a\0\xE3V[`\0Ta\x01\0\x90\x04`\xFF\x16\x15a\0\x8FW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`'`$\x82\x01R\x7FInitializable: contract is initi`D\x82\x01Rfalizing`\xC8\x1B`d\x82\x01R`\x84\x01`@Q\x80\x91\x03\x90\xFD[`\0T`\xFF\x90\x81\x16\x10\x15a\0\xE1W`\0\x80T`\xFF\x19\x16`\xFF\x90\x81\x17\x90\x91U`@Q\x90\x81R\x7F\x7F&\xB8?\xF9n\x1F+jh/\x138R\xF6y\x8A\t\xC4e\xDA\x95\x92\x14`\xCE\xFB8G@$\x98\x90` \x01`@Q\x80\x91\x03\x90\xA1[V[`\x80Qa\x1E\x01a\x01\x05`\09`\0\x81\x81a\x02X\x01Ra\x0C\xD0\x01Ra\x1E\x01`\0\xF3\xFE`\x80`@R`\x046\x10a\x01jW`\x005`\xE0\x1C\x80ce\x93\xDCn\x11a\0\xCBW\x80c\x96\xCD\x97 \x11a\0\x7FW\x80c\xC4\xD6m\xE8\x11a\0YW\x80c\xC4\xD6m\xE8\x14a\x04{W\x80c\xDA\xD5D\xE0\x14a\x04\x9BW\x80c\xF2\xFD\xE3\x8B\x14a\x04\xB0W`\0\x80\xFD[\x80c\x96\xCD\x97 \x14a\x03\xE7W\x80c\xB1\x07\tW\x14a\x04\x07W\x80c\xBB\x8A\xA1\xFC\x14a\x04'W`\0\x80\xFD[\x80ct\xCC\x86\xAC\x11a\0\xB0W\x80ct\xCC\x86\xAC\x14a\x03\x96W\x80c\x82\xEC\xF2\xF6\x14a\x03\xB6W\x80c\x8D\xA5\xCB[\x14a\x03\xC9W`\0\x80\xFD[\x80ce\x93\xDCn\x14a\x03TW\x80cqP\x18\xA6\x14a\x03\x81W`\0\x80\xFD[\x80c8\xD3\x8C\x97\x11a\x01\"W\x80cM\x19u\xB4\x11a\x01\x07W\x80cM\x19u\xB4\x14a\x02\x97W\x80cT\xFDMP\x14a\x02\xB6W\x80c_\x01P\xCB\x14a\x03\x0CW`\0\x80\xFD[\x80c8\xD3\x8C\x97\x14a\x02DW\x80c>G\x15\x8C\x14a\x02\x82W`\0\x80\xFD[\x80c\x1Bh[\x9E\x11a\x01SW\x80c\x1Bh[\x9E\x14a\x01\xC1W\x80c\x1E3B@\x14a\x01\xF7W\x80c%K\xD6\x83\x14a\x02\x17W`\0\x80\xFD[\x80c\x10\x11\xF3w\x14a\x01oW\x80c\x14\xF6\xB1\xA3\x14a\x01\x9FW[`\0\x80\xFD[a\x01\x82a\x01}6`\x04a\x16LV[a\x04\xD0V[`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[4\x80\x15a\x01\xABW`\0\x80\xFD[Pa\x01\xBFa\x01\xBA6`\x04a\x16\xEBV[a\x05XV[\0[4\x80\x15a\x01\xCDW`\0\x80\xFD[Pa\x01\x82a\x01\xDC6`\x04a\x17\"V[`e` R`\0\x90\x81R`@\x90 T`\x01`\x01`\xA0\x1B\x03\x16\x81V[4\x80\x15a\x02\x03W`\0\x80\xFD[Pa\x01\xBFa\x02\x126`\x04a\x17=V[a\x05\xD5V[4\x80\x15a\x02#W`\0\x80\xFD[Pa\x027a\x0226`\x04a\x17gV[a\x06!V[`@Qa\x01\x96\x91\x90a\x17\xF6V[4\x80\x15a\x02PW`\0\x80\xFD[P`@Q`\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x81R` \x01a\x01\x96V[4\x80\x15a\x02\x8EW`\0\x80\xFD[Pa\x01\x82a\x08\x02V[4\x80\x15a\x02\xA3W`\0\x80\xFD[P`hT[`@Q\x90\x81R` \x01a\x01\x96V[4\x80\x15a\x02\xC2W`\0\x80\xFD[Pa\x02\xFF`@Q\x80`@\x01`@R\x80`\x05\x81R` \x01\x7F1.4.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\x81RP\x81V[`@Qa\x01\x96\x91\x90a\x18\xB3V[4\x80\x15a\x03\x18W`\0\x80\xFD[Pa\x03,a\x03'6`\x04a\x18\xC6V[a\t\xE6V[`@\x80Q`\x01`\x01`\xA0\x1B\x03\x90\x93\x16\x83Rg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16` \x83\x01R\x01a\x01\x96V[4\x80\x15a\x03`W`\0\x80\xFD[Pa\x02\xA8a\x03o6`\x04a\x17\"V[`f` R`\0\x90\x81R`@\x90 T\x81V[4\x80\x15a\x03\x8DW`\0\x80\xFD[Pa\x01\xBFa\n,V[4\x80\x15a\x03\xA2W`\0\x80\xFD[Pa\x02\xFFa\x03\xB16`\x04a\x17\"V[a\n@V[a\x01\x82a\x03\xC46`\x04a\x18\xC6V[a\n\xDAV[4\x80\x15a\x03\xD5W`\0\x80\xFD[P`3T`\x01`\x01`\xA0\x1B\x03\x16a\x01\x82V[4\x80\x15a\x03\xF3W`\0\x80\xFD[Pa\x02\xA8a\x04\x026`\x04a\x18\xC6V[a\x0BSV[4\x80\x15a\x04\x13W`\0\x80\xFD[Pa\x01\xBFa\x04\"6`\x04a\x19 V[a\x0B\x8CV[4\x80\x15a\x043W`\0\x80\xFD[Pa\x04Ga\x04B6`\x04a\x19kV[a\x0CrV[`@\x80Qc\xFF\xFF\xFF\xFF\x90\x94\x16\x84Rg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x92\x16` \x84\x01R`\x01`\x01`\xA0\x1B\x03\x16\x90\x82\x01R``\x01a\x01\x96V[4\x80\x15a\x04\x87W`\0\x80\xFD[Pa\x01\xBFa\x04\x966`\x04a\x19\x84V[a\x0C\xCEV[4\x80\x15a\x04\xA7W`\0\x80\xFD[Pa\x01\x82a\x0EKV[4\x80\x15a\x04\xBCW`\0\x80\xFD[Pa\x01\xBFa\x04\xCB6`\x04a\x19\x84V[a\x0E\xBBV[`\0a\x04\xDE\x87\x87\x87\x87a\x0FeV[\x90P\x80`\x01`\x01`\xA0\x1B\x03\x16cB$\xB1\xE74\x85\x85`@Q\x84c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01a\x05\x0F\x92\x91\x90a\x19\xCCV[`\0`@Q\x80\x83\x03\x81\x85\x88\x80;\x15\x80\x15a\x05(W`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x05=`\0\xFD[PPPPPa\x05N\x87\x87\x87\x87\x85a\x11>V[\x96\x95PPPPPPV[a\x05`a\x120V[c\xFF\xFF\xFF\xFF\x82\x16`\0\x81\x81R`e` R`@\x80\x82 \x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16`\x01`\x01`\xA0\x1B\x03\x86\x16\x90\x81\x17\x90\x91U\x90Q\x90\x91\x7F\xFFQ=\x80\xE2\xC7\xFAHv\x08\xF7\na\x8D\xFB\xC0\xCFAV\x99\xDCiX\x8Ct~\x8CqVl\x88\xDE\x91\xA3PPV[a\x05\xDDa\x120V[c\xFF\xFF\xFF\xFF\x82\x16`\0\x81\x81R`f` R`@\x80\x82 \x84\x90UQ\x83\x92\x91\x7Ft\xD6f\\K&\xD5YjZ\xA1=0\x14\xE0\xC0j\xF4\xD3\"\x07Zy\x7F\x87\xB0<\xD4\xC5\xBC\x91\xCA\x91\xA3PPV[`hT``\x90\x83\x10\x15\x80a\x063WP\x81\x15[a\x07\xFBWP`@\x80Q`\x05\x83\x90\x1B\x81\x01` \x01\x90\x91R\x82[\x83\x81\x11a\x07\xF9W`\0`h\x82\x81T\x81\x10a\x06gWa\x06ga\x19\xE0V[`\0\x91\x82R` \x90\x91 \x01T\x90P`\xE0\x81\x90\x1C`\xA0\x82\x90\x1Cg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\x01`\x01`\xA0\x1B\x03\x83\x16c\xFF\xFF\xFF\xFF\x89\x16\x83\x03a\x07\xE8W`\x01\x86Q\x01\x86R`\0\x81`\x01`\x01`\xA0\x1B\x03\x16c`\x9D34`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01`\0`@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x06\xE7W=`\0\x80>=`\0\xFD[PPPP`@Q=`\0\x82>`\x1F=\x90\x81\x01`\x1F\x19\x16\x82\x01`@Ra\x07\x0F\x91\x90\x81\x01\x90a\x1A>V[\x90P`\0\x82`\x01`\x01`\xA0\x1B\x03\x16c\xBC\xEF;U`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x07QW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x07u\x91\x90a\x1A\xEBV[\x90P`@Q\x80`\xA0\x01`@R\x80\x88\x81R` \x01\x87\x81R` \x01\x85g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81R` \x01\x82\x81R` \x01\x83\x81RP\x88`\x01\x8AQa\x07\xB7\x91\x90a\x1B3V[\x81Q\x81\x10a\x07\xC7Wa\x07\xC7a\x19\xE0V[` \x02` \x01\x01\x81\x90RP\x88\x88Q\x10a\x07\xE5WPPPPPPa\x07\xF9V[PP[PP`\0\x19\x90\x92\x01\x91Pa\x06K\x90PV[P[\x93\x92PPPV[`\0\x80a\x08-\x7F\xB51'hJV\x8B1s\xAE\x13\xB9\xF8\xA6\x01n$>c\xB6\xE8\xEE\x11x\xD6\xA7\x17\x85\x0B]a\x03T\x90V[\x90P`\x01`\x01`\xA0\x1B\x03\x81\x16\x15a\x08CW\x91\x90PV[`@Q\x80`@\x01`@R\x80`\x1A\x81R` \x01\x7FOVM_L1CrossDomainMessenger\0\0\0\0\0\0\x81RPQ`\x02a\x08\x86\x91\x90a\x1BJV[`@\x80Q0` \x82\x01R`\0\x91\x81\x01\x91\x90\x91R\x7FOVM_L1CrossDomainMessenger\0\0\0\0\0\0\x91\x90\x91\x17\x90a\x08\xE1\x90``\x01[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 T\x90V[\x14a\t\x18W`@Q\x7FT\xE43\xCD\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\x01`@Q\x80\x91\x03\x90\xFD[`@\x80Q0` \x82\x01R`\x01\x91\x81\x01\x91\x90\x91R`\0\x90a\t:\x90``\x01a\x08\xC7V[\x90P`\x01`\x01`\xA0\x1B\x03\x81\x16\x15a\t\xB4W\x80`\x01`\x01`\xA0\x1B\x03\x16c\x8D\xA5\xCB[`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\t\x89W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\t\xAD\x91\x90a\x1BiV[\x92PPP\x90V[`@Q\x7F3!D\xDB\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\x01`@Q\x80\x91\x03\x90\xFD[`\0\x80`\0a\t\xF7\x87\x87\x87\x87a\x0BSV[`\0\x90\x81R`g` R`@\x90 T`\x01`\x01`\xA0\x1B\x03\x81\x16\x98`\xA0\x91\x90\x91\x1Cg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x97P\x95PPPPPPV[a\n4a\x120V[a\n>`\0a\x12\xA4V[V[`i` R`\0\x90\x81R`@\x90 \x80Ta\nY\x90a\x1B\x86V[\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x92\x91\x90\x81\x81R` \x01\x82\x80Ta\n\x85\x90a\x1B\x86V[\x80\x15a\n\xD2W\x80`\x1F\x10a\n\xA7Wa\x01\0\x80\x83T\x04\x02\x83R\x91` \x01\x91a\n\xD2V[\x82\x01\x91\x90`\0R` `\0 \x90[\x81T\x81R\x90`\x01\x01\x90` \x01\x80\x83\x11a\n\xB5W\x82\x90\x03`\x1F\x16\x82\x01\x91[PPPPP\x81V[`\0a\n\xE8\x85\x85\x85\x85a\x0FeV[\x90P\x80`\x01`\x01`\xA0\x1B\x03\x16c\x81)\xFC\x1C4`@Q\x82c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01`\0`@Q\x80\x83\x03\x81\x85\x88\x80;\x15\x80\x15a\x0B%W`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x0B9W=`\0\x80>=`\0\xFD[PPPPPa\x0BK\x85\x85\x85\x85\x85a\x11>V[\x94\x93PPPPV[`\0\x84\x84\x84\x84`@Q` \x01a\x0Bl\x94\x93\x92\x91\x90a\x1B\xD9V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 \x90P\x94\x93PPPPV[a\x0B\x94a\x120V[c\xFF\xFF\xFF\xFF\x84\x16`\0\x90\x81R`e` \x90\x81R`@\x80\x83 \x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16`\x01`\x01`\xA0\x1B\x03\x88\x16\x17\x90U`i\x90\x91R\x90 a\x0B\xEF\x82\x84\x83a\x1CNV[P`@Qc\xFF\xFF\xFF\xFF\x85\x16\x90`\x01`\x01`\xA0\x1B\x03\x85\x16\x90\x7F\xFFQ=\x80\xE2\xC7\xFAHv\x08\xF7\na\x8D\xFB\xC0\xCFAV\x99\xDCiX\x8Ct~\x8CqVl\x88\xDE\x90`\0\x90\xA3\x83c\xFF\xFF\xFF\xFF\x16\x7F\xA4\x7F\xCD\xF0u\xD6\x80\xD3\x81{\xFC\xA7\x97;7>\x1A_l\xFC;DGH)\x9C\xC2\xB8=\x83H\xF9\x83\x83`@Qa\x0Cd\x92\x91\x90a\x19\xCCV[`@Q\x80\x91\x03\x90\xA2PPPPV[`\0\x80`\0\x80`\0\x80a\x0C\xBE`h\x88\x81T\x81\x10a\x0C\x91Wa\x0C\x91a\x19\xE0V[\x90`\0R` `\0 \x01T`\xE0\x81\x90\x1C\x91`\xA0\x82\x90\x1Cg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x91`\x01`\x01`\xA0\x1B\x03\x16\x90V[\x91\x99\x90\x98P\x90\x96P\x94PPPPPV[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\0Ta\x01\0\x90\x04`\xFF\x16\x15\x80\x15a\r\x0EWP`\0T`\xFF\x80\x83\x16\x91\x16\x10[a\r\x9FW`@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\x82\x01R`.`$\x82\x01R\x7FInitializable: contract is alrea`D\x82\x01R\x7Fdy initialized\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01[`@Q\x80\x91\x03\x90\xFD[`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\x16`\xFF\x83\x16\x17a\x01\0\x17\x90Ua\r\xD8a\x13\x0EV[a\r\xE0a\x13uV[a\r\xE9\x82a\x12\xA4V[`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\x16\x90U`@Q`\xFF\x82\x16\x81R\x7F\x7F&\xB8?\xF9n\x1F+jh/\x138R\xF6y\x8A\t\xC4e\xDA\x95\x92\x14`\xCE\xFB8G@$\x98\x90` \x01`@Q\x80\x91\x03\x90\xA1PPV[`\0a\x0EUa\x08\x02V[`\x01`\x01`\xA0\x1B\x03\x16c\x8D\xA5\xCB[`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x0E\x92W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x0E\xB6\x91\x90a\x1BiV[\x90P\x90V[a\x0E\xC3a\x120V[`\x01`\x01`\xA0\x1B\x03\x81\x16a\x0FYW`@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\x82\x01R`&`$\x82\x01R\x7FOwnable: new owner is the zero a`D\x82\x01R\x7Fddress\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`d\x82\x01R`\x84\x01a\r\x96V[a\x0Fb\x81a\x12\xA4V[PV[c\xFF\xFF\xFF\xFF\x84\x16`\0\x90\x81R`e` R`@\x81 T`\x01`\x01`\xA0\x1B\x03\x16\x80a\x0F\xC3W`@Q\x7F\x03\x1Cm\xE4\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\x81Rc\xFF\xFF\xFF\xFF\x87\x16`\x04\x82\x01R`$\x01a\r\x96V[c\xFF\xFF\xFF\xFF\x86\x16`\0\x90\x81R`f` R`@\x90 T4\x14a\x10\x11W`@Q\x7F\x86 \xAA\x19\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\x01`@Q\x80\x91\x03\x90\xFD[`\0a\x10\x1E`\x01Ca\x1B3V[c\xFF\xFF\xFF\xFF\x88\x16`\0\x90\x81R`i` R`@\x81 \x80T\x92@\x93P\x90\x91a\x10D\x90a\x1B\x86V[\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x92\x91\x90\x81\x81R` \x01\x82\x80Ta\x10p\x90a\x1B\x86V[\x80\x15a\x10\xBDW\x80`\x1F\x10a\x10\x92Wa\x01\0\x80\x83T\x04\x02\x83R\x91` \x01\x91a\x10\xBDV[\x82\x01\x91\x90`\0R` `\0 \x90[\x81T\x81R\x90`\x01\x01\x90` \x01\x80\x83\x11a\x10\xA0W\x82\x90\x03`\x1F\x16\x82\x01\x91[PPPPP\x90P\x80Q`\0\x03a\x11\x10Wa\x11\t3\x88\x84\x89\x89`@Q` \x01a\x10\xE9\x95\x94\x93\x92\x91\x90a\x1D\x0FV[`@\x80Q`\x1F\x19\x81\x84\x03\x01\x81R\x91\x90R`\x01`\x01`\xA0\x1B\x03\x85\x16\x90a\x14\x14V[\x93Pa\x113V[a\x1103\x88\x84\x8B\x8A\x8A\x87`@Q` \x01a\x10\xE9\x97\x96\x95\x94\x93\x92\x91\x90a\x1D\\V[\x93P[PPP\x94\x93PPPPV[`\0a\x11L\x86\x86\x86\x86a\x0BSV[`\0\x81\x81R`g` R`@\x90 T\x90\x91P\x15a\x11\x98W`@Q\x7F\x01Oo\xE5\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\x81\x01\x82\x90R`$\x01a\r\x96V[`\0B`\xA0\x1B`\xE0\x88\x90\x1B\x17\x83\x17`\0\x83\x81R`g` R`@\x80\x82 \x83\x90U`h\x80T`\x01\x81\x01\x82U\x90\x83R\x7F\xA2\x154 \xD8D\x92\x8BD!e\x02\x03\xC7{\xAB\xC8\xB3=\x7F.{E\x0E)f\xDB\x0C\"\twS\x01\x83\x90UQ\x91\x92P\x87\x91c\xFF\xFF\xFF\xFF\x8A\x16\x91`\x01`\x01`\xA0\x1B\x03\x87\x16\x91\x7F[V^\xFE\x82A\x1D\xA9\x88\x14\xF3V\xD0\xE7\xBC\xB8\xF0!\x9B\x8D\x97\x03\x07\xC5\xAF\xB4\xA6\x90:\x8B.5\x91\x90\xA4PPPPPPPV[`3T`\x01`\x01`\xA0\x1B\x03\x163\x14a\n>W`@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\x82\x01\x81\x90R`$\x82\x01R\x7FOwnable: caller is not the owner`D\x82\x01R`d\x01a\r\x96V[`3\x80T`\x01`\x01`\xA0\x1B\x03\x83\x81\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x83\x16\x81\x17\x90\x93U`@Q\x91\x16\x91\x90\x82\x90\x7F\x8B\xE0\x07\x9CS\x16Y\x14\x13D\xCD\x1F\xD0\xA4\xF2\x84\x19I\x7F\x97\"\xA3\xDA\xAF\xE3\xB4\x18okdW\xE0\x90`\0\x90\xA3PPV[3a\x13\x17a\x08\x02V[`\x01`\x01`\xA0\x1B\x03\x16\x14\x15\x80\x15a\x13>WP3a\x132a\x0EKV[`\x01`\x01`\xA0\x1B\x03\x16\x14\x15[\x15a\n>W`@Q\x7F\xC4\x05\n&\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\x01`@Q\x80\x91\x03\x90\xFD[`\0Ta\x01\0\x90\x04`\xFF\x16a\x14\x0CW`@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\x82\x01R`+`$\x82\x01R\x7FInitializable: contract is not i`D\x82\x01R\x7Fnitializing\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\r\x96V[a\n>a\x14\"V[`\0a\x07\xFB`\0\x84\x84a\x14\xC2V[`\0Ta\x01\0\x90\x04`\xFF\x16a\x14\xB9W`@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\x82\x01R`+`$\x82\x01R\x7FInitializable: contract is not i`D\x82\x01R\x7Fnitializing\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\r\x96V[a\n>3a\x12\xA4V[`\0``\x82\x03Q`@\x83\x03Q` \x84\x03Q\x84Q\x80` \x87\x01\x01\x80Q`\x02\x83\x01lZ\xF4==\x93\x80>``W\xFD[\xF3\x89R\x89`\r\x8A\x03RxY=\xA1\0[6==7====a\0\0\x80`b696\x01=s\x81`H\x1B\x17`!\x8A\x03R\x7F\x9EJ\xC3O!\xC6\x19\xCE\xFC\x92l\x8B\xD9;T\xBFZ9\xC7\xAB!'\xA8\x95\xAF\x1C\xC0i\x1D~=\xFF`:\x8A\x03Rr\xFDa\0\0=\x81`\n=9\xF36`,W4=R\x7F`b\x82\x01`x\x1B\x17a\xFF\x9E\x82\x10`Y\x01\x8A\x03R\x80`\xF0\x1B\x83R`l\x81\x01`L\x8A\x03\x8C\xF0\x97PP\x86a\x15\x8EWc0\x11d%`\0R`\x04`\x1C\xFD[\x90R\x85R`\x1F\x19\x85\x01R\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xC0\x84\x01R\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xA0\x90\x92\x01\x91\x90\x91R\x92\x91PPV[\x805c\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x15\xFEW`\0\x80\xFD[\x91\x90PV[`\0\x80\x83`\x1F\x84\x01\x12a\x16\x15W`\0\x80\xFD[P\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x16-W`\0\x80\xFD[` \x83\x01\x91P\x83` \x82\x85\x01\x01\x11\x15a\x16EW`\0\x80\xFD[\x92P\x92\x90PV[`\0\x80`\0\x80`\0\x80`\x80\x87\x89\x03\x12\x15a\x16eW`\0\x80\xFD[a\x16n\x87a\x15\xEAV[\x95P` \x87\x015\x94P`@\x87\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x16\x92W`\0\x80\xFD[a\x16\x9E\x8A\x83\x8B\x01a\x16\x03V[\x90\x96P\x94P``\x89\x015\x91P\x80\x82\x11\x15a\x16\xB7W`\0\x80\xFD[Pa\x16\xC4\x89\x82\x8A\x01a\x16\x03V[\x97\x9A\x96\x99P\x94\x97P\x92\x95\x93\x94\x92PPPV[`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a\x0FbW`\0\x80\xFD[`\0\x80`@\x83\x85\x03\x12\x15a\x16\xFEW`\0\x80\xFD[a\x17\x07\x83a\x15\xEAV[\x91P` \x83\x015a\x17\x17\x81a\x16\xD6V[\x80\x91PP\x92P\x92\x90PV[`\0` \x82\x84\x03\x12\x15a\x174W`\0\x80\xFD[a\x07\xFB\x82a\x15\xEAV[`\0\x80`@\x83\x85\x03\x12\x15a\x17PW`\0\x80\xFD[a\x17Y\x83a\x15\xEAV[\x94` \x93\x90\x93\x015\x93PPPV[`\0\x80`\0``\x84\x86\x03\x12\x15a\x17|W`\0\x80\xFD[a\x17\x85\x84a\x15\xEAV[\x95` \x85\x015\x95P`@\x90\x94\x015\x93\x92PPPV[`\0[\x83\x81\x10\x15a\x17\xB5W\x81\x81\x01Q\x83\x82\x01R` \x01a\x17\x9DV[\x83\x81\x11\x15a\x17\xC4W`\0\x84\x84\x01R[PPPPV[`\0\x81Q\x80\x84Ra\x17\xE2\x81` \x86\x01` \x86\x01a\x17\x9AV[`\x1F\x01`\x1F\x19\x16\x92\x90\x92\x01` \x01\x92\x91PPV[`\0` \x80\x83\x01\x81\x84R\x80\x85Q\x80\x83R`@\x92P\x82\x86\x01\x91P\x82\x81`\x05\x1B\x87\x01\x01\x84\x88\x01`\0[\x83\x81\x10\x15a\x18\xA5W\x88\x83\x03\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xC0\x01\x85R\x81Q\x80Q\x84R\x87\x81\x01Q\x88\x85\x01R\x86\x81\x01Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x87\x85\x01R``\x80\x82\x01Q\x90\x85\x01R`\x80\x90\x81\x01Q`\xA0\x91\x85\x01\x82\x90R\x90a\x18\x91\x81\x86\x01\x83a\x17\xCAV[\x96\x89\x01\x96\x94PPP\x90\x86\x01\x90`\x01\x01a\x18\x1DV[P\x90\x98\x97PPPPPPPPV[` \x81R`\0a\x07\xFB` \x83\x01\x84a\x17\xCAV[`\0\x80`\0\x80``\x85\x87\x03\x12\x15a\x18\xDCW`\0\x80\xFD[a\x18\xE5\x85a\x15\xEAV[\x93P` \x85\x015\x92P`@\x85\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x19\x08W`\0\x80\xFD[a\x19\x14\x87\x82\x88\x01a\x16\x03V[\x95\x98\x94\x97P\x95PPPPV[`\0\x80`\0\x80``\x85\x87\x03\x12\x15a\x196W`\0\x80\xFD[a\x19?\x85a\x15\xEAV[\x93P` \x85\x015a\x19O\x81a\x16\xD6V[\x92P`@\x85\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x19\x08W`\0\x80\xFD[`\0` \x82\x84\x03\x12\x15a\x19}W`\0\x80\xFD[P5\x91\x90PV[`\0` \x82\x84\x03\x12\x15a\x19\x96W`\0\x80\xFD[\x815a\x07\xFB\x81a\x16\xD6V[\x81\x83R\x81\x81` \x85\x017P`\0` \x82\x84\x01\x01R`\0` `\x1F\x19`\x1F\x84\x01\x16\x84\x01\x01\x90P\x92\x91PPV[` \x81R`\0a\x0BK` \x83\x01\x84\x86a\x19\xA1V[\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`2`\x04R`$`\0\xFD[\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[`\0` \x82\x84\x03\x12\x15a\x1APW`\0\x80\xFD[\x81Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x1AhW`\0\x80\xFD[\x81\x84\x01\x91P\x84`\x1F\x83\x01\x12a\x1A|W`\0\x80\xFD[\x81Q\x81\x81\x11\x15a\x1A\x8EWa\x1A\x8Ea\x1A\x0FV[`@Q`\x1F\x82\x01`\x1F\x19\x90\x81\x16`?\x01\x16\x81\x01\x90\x83\x82\x11\x81\x83\x10\x17\x15a\x1A\xB6Wa\x1A\xB6a\x1A\x0FV[\x81`@R\x82\x81R\x87` \x84\x87\x01\x01\x11\x15a\x1A\xCFW`\0\x80\xFD[a\x1A\xE0\x83` \x83\x01` \x88\x01a\x17\x9AV[\x97\x96PPPPPPPV[`\0` \x82\x84\x03\x12\x15a\x1A\xFDW`\0\x80\xFD[PQ\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`\x11`\x04R`$`\0\xFD[`\0\x82\x82\x10\x15a\x1BEWa\x1BEa\x1B\x04V[P\x03\x90V[`\0\x81`\0\x19\x04\x83\x11\x82\x15\x15\x16\x15a\x1BdWa\x1Bda\x1B\x04V[P\x02\x90V[`\0` \x82\x84\x03\x12\x15a\x1B{W`\0\x80\xFD[\x81Qa\x07\xFB\x81a\x16\xD6V[`\x01\x81\x81\x1C\x90\x82\x16\x80a\x1B\x9AW`\x7F\x82\x16\x91P[` \x82\x10\x81\x03a\x1B\xD3W\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`\"`\x04R`$`\0\xFD[P\x91\x90PV[c\xFF\xFF\xFF\xFF\x85\x16\x81R\x83` \x82\x01R```@\x82\x01R`\0a\x05N``\x83\x01\x84\x86a\x19\xA1V[`\x1F\x82\x11\x15a\x1CIW`\0\x81\x81R` \x81 `\x1F\x85\x01`\x05\x1C\x81\x01` \x86\x10\x15a\x1C&WP\x80[`\x1F\x85\x01`\x05\x1C\x82\x01\x91P[\x81\x81\x10\x15a\x1CEW\x82\x81U`\x01\x01a\x1C2V[PPP[PPPV[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11\x15a\x1CfWa\x1Cfa\x1A\x0FV[a\x1Cz\x83a\x1Ct\x83Ta\x1B\x86V[\x83a\x1B\xFFV[`\0`\x1F\x84\x11`\x01\x81\x14a\x1C\xAEW`\0\x85\x15a\x1C\x96WP\x83\x82\x015[`\0\x19`\x03\x87\x90\x1B\x1C\x19\x16`\x01\x86\x90\x1B\x17\x83Ua\x1D\x08V[`\0\x83\x81R` \x90 `\x1F\x19\x86\x16\x90\x83[\x82\x81\x10\x15a\x1C\xDFW\x86\x85\x015\x82U` \x94\x85\x01\x94`\x01\x90\x92\x01\x91\x01a\x1C\xBFV[P\x86\x82\x10\x15a\x1C\xFCW`\0\x19`\xF8\x88`\x03\x1B\x16\x1C\x19\x84\x87\x015\x16\x81U[PP`\x01\x85`\x01\x1B\x01\x83U[PPPPPV[\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\x86``\x1B\x16\x81R\x84`\x14\x82\x01R\x83`4\x82\x01R\x81\x83`T\x83\x017`\0\x91\x01`T\x01\x90\x81R\x94\x93PPPPV[\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\x88``\x1B\x16\x81R\x86`\x14\x82\x01R\x85`4\x82\x01R\x7F\xFF\xFF\xFF\xFF\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\x85`\xE0\x1B\x16`T\x82\x01R\x82\x84`X\x83\x017`\0\x83\x82\x01`X\x81\x01`\0\x81R\x84Qa\x1D\xDF\x81\x83` \x89\x01a\x17\x9AV[\x91\x90\x91\x01`X\x01\x9A\x99PPPPPPPPPPV\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x60806040526004361061016a5760003560e01c80636593dc6e116100cb57806396cd97201161007f578063c4d66de811610059578063c4d66de81461047b578063dad544e01461049b578063f2fde38b146104b057600080fd5b806396cd9720146103e7578063b107095714610407578063bb8aa1fc1461042757600080fd5b806374cc86ac116100b057806374cc86ac1461039657806382ecf2f6146103b65780638da5cb5b146103c957600080fd5b80636593dc6e14610354578063715018a61461038157600080fd5b806338d38c97116101225780634d1975b4116101075780634d1975b41461029757806354fd4d50146102b65780635f0150cb1461030c57600080fd5b806338d38c97146102445780633e47158c1461028257600080fd5b80631b685b9e116101535780631b685b9e146101c15780631e334240146101f7578063254bd6831461021757600080fd5b80631011f3771461016f57806314f6b1a31461019f575b600080fd5b61018261017d36600461164c565b6104d0565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156101ab57600080fd5b506101bf6101ba3660046116eb565b610558565b005b3480156101cd57600080fd5b506101826101dc366004611722565b6065602052600090815260409020546001600160a01b031681565b34801561020357600080fd5b506101bf61021236600461173d565b6105d5565b34801561022357600080fd5b50610237610232366004611767565b610621565b60405161019691906117f6565b34801561025057600080fd5b5060405160ff7f0000000000000000000000000000000000000000000000000000000000000000168152602001610196565b34801561028e57600080fd5b50610182610802565b3480156102a357600080fd5b506068545b604051908152602001610196565b3480156102c257600080fd5b506102ff6040518060400160405280600581526020017f312e342e3000000000000000000000000000000000000000000000000000000081525081565b60405161019691906118b3565b34801561031857600080fd5b5061032c6103273660046118c6565b6109e6565b604080516001600160a01b03909316835267ffffffffffffffff909116602083015201610196565b34801561036057600080fd5b506102a861036f366004611722565b60666020526000908152604090205481565b34801561038d57600080fd5b506101bf610a2c565b3480156103a257600080fd5b506102ff6103b1366004611722565b610a40565b6101826103c43660046118c6565b610ada565b3480156103d557600080fd5b506033546001600160a01b0316610182565b3480156103f357600080fd5b506102a86104023660046118c6565b610b53565b34801561041357600080fd5b506101bf610422366004611920565b610b8c565b34801561043357600080fd5b5061044761044236600461196b565b610c72565b6040805163ffffffff909416845267ffffffffffffffff90921660208401526001600160a01b031690820152606001610196565b34801561048757600080fd5b506101bf610496366004611984565b610cce565b3480156104a757600080fd5b50610182610e4b565b3480156104bc57600080fd5b506101bf6104cb366004611984565b610ebb565b60006104de87878787610f65565b9050806001600160a01b0316634224b1e73485856040518463ffffffff1660e01b815260040161050f9291906119cc565b6000604051808303818588803b15801561052857600080fd5b505af115801561053c573d6000803e3d6000fd5b505050505061054e878787878561113e565b9695505050505050565b610560611230565b63ffffffff821660008181526065602052604080822080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b038616908117909155905190917fff513d80e2c7fa487608f70a618dfbc0cf415699dc69588c747e8c71566c88de91a35050565b6105dd611230565b63ffffffff8216600081815260666020526040808220849055518392917f74d6665c4b26d5596a5aa13d3014e0c06af4d322075a797f87b03cd4c5bc91ca91a35050565b60685460609083101580610633575081155b6107fb575060408051600583901b8101602001909152825b8381116107f957600060688281548110610667576106676119e0565b600091825260209091200154905060e081901c60a082901c67ffffffffffffffff166001600160a01b03831663ffffffff891683036107e857600186510186526000816001600160a01b031663609d33346040518163ffffffff1660e01b8152600401600060405180830381865afa1580156106e7573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261070f9190810190611a3e565b90506000826001600160a01b031663bcef3b556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610751573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107759190611aeb565b90506040518060a001604052808881526020018781526020018567ffffffffffffffff168152602001828152602001838152508860018a516107b79190611b33565b815181106107c7576107c76119e0565b6020026020010181905250888851106107e5575050505050506107f9565b50505b5050600019909201915061064b9050565b505b9392505050565b60008061082d7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b90506001600160a01b0381161561084357919050565b6040518060400160405280601a81526020017f4f564d5f4c3143726f7373446f6d61696e4d657373656e6765720000000000008152505160026108869190611b4a565b604080513060208201526000918101919091527f4f564d5f4c3143726f7373446f6d61696e4d657373656e67657200000000000091909117906108e1906060015b604051602081830303815290604052805190602001205490565b14610918576040517f54e433cd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805130602082015260019181019190915260009061093a906060016108c7565b90506001600160a01b038116156109b457806001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610989573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ad9190611b69565b9250505090565b6040517f332144db00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008060006109f787878787610b53565b6000908152606760205260409020546001600160a01b0381169860a09190911c67ffffffffffffffff16975095505050505050565b610a34611230565b610a3e60006112a4565b565b60696020526000908152604090208054610a5990611b86565b80601f0160208091040260200160405190810160405280929190818152602001828054610a8590611b86565b8015610ad25780601f10610aa757610100808354040283529160200191610ad2565b820191906000526020600020905b815481529060010190602001808311610ab557829003601f168201915b505050505081565b6000610ae885858585610f65565b9050806001600160a01b0316638129fc1c346040518263ffffffff1660e01b81526004016000604051808303818588803b158015610b2557600080fd5b505af1158015610b39573d6000803e3d6000fd5b5050505050610b4b858585858561113e565b949350505050565b600084848484604051602001610b6c9493929190611bd9565b604051602081830303815290604052805190602001209050949350505050565b610b94611230565b63ffffffff8416600090815260656020908152604080832080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03881617905560699091529020610bef828483611c4e565b5060405163ffffffff8516906001600160a01b038516907fff513d80e2c7fa487608f70a618dfbc0cf415699dc69588c747e8c71566c88de90600090a38363ffffffff167fa47fcdf075d680d3817bfca7973b373e1a5f6cfc3b444748299cc2b83d8348f98383604051610c649291906119cc565b60405180910390a250505050565b600080600080600080610cbe60688881548110610c9157610c916119e0565b906000526020600020015460e081901c9160a082901c67ffffffffffffffff16916001600160a01b031690565b9199909850909650945050505050565b7f0000000000000000000000000000000000000000000000000000000000000000600054610100900460ff16158015610d0e575060005460ff8083169116105b610d9f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084015b60405180910390fd5b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001660ff831617610100179055610dd861130e565b610de0611375565b610de9826112a4565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b6000610e55610802565b6001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e92573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eb69190611b69565b905090565b610ec3611230565b6001600160a01b038116610f59576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610d96565b610f62816112a4565b50565b63ffffffff84166000908152606560205260408120546001600160a01b031680610fc3576040517f031c6de400000000000000000000000000000000000000000000000000000000815263ffffffff87166004820152602401610d96565b63ffffffff86166000908152606660205260409020543414611011576040517f8620aa1900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061101e600143611b33565b63ffffffff88166000908152606960205260408120805492409350909161104490611b86565b80601f016020809104026020016040519081016040528092919081815260200182805461107090611b86565b80156110bd5780601f10611092576101008083540402835291602001916110bd565b820191906000526020600020905b8154815290600101906020018083116110a057829003601f168201915b5050505050905080516000036111105761110933888489896040516020016110e9959493929190611d0f565b60408051601f198184030181529190526001600160a01b03851690611414565b9350611133565b6111303388848b8a8a876040516020016110e99796959493929190611d5c565b93505b505050949350505050565b600061114c86868686610b53565b60008181526067602052604090205490915015611198576040517f014f6fe500000000000000000000000000000000000000000000000000000000815260048101829052602401610d96565b60004260a01b60e088901b178317600083815260676020526040808220839055606880546001810182559083527fa2153420d844928b4421650203c77babc8b33d7f2e7b450e2966db0c220977530183905551919250879163ffffffff8a16916001600160a01b038716917f5b565efe82411da98814f356d0e7bcb8f0219b8d970307c5afb4a6903a8b2e359190a450505050505050565b6033546001600160a01b03163314610a3e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610d96565b603380546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b33611317610802565b6001600160a01b03161415801561133e575033611332610e4b565b6001600160a01b031614155b15610a3e576040517fc4050a2600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600054610100900460ff1661140c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610d96565b610a3e611422565b60006107fb600084846114c2565b600054610100900460ff166114b9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610d96565b610a3e336112a4565b600060608203516040830351602084035184518060208701018051600283016c5af43d3d93803e606057fd5bf3895289600d8a035278593da1005b363d3d373d3d3d3d610000806062363936013d738160481b1760218a03527f9e4ac34f21c619cefc926c8bd93b54bf5a39c7ab2127a895af1cc0691d7e3dff603a8a035272fd6100003d81600a3d39f336602c57343d527f6062820160781b1761ff9e82106059018a03528060f01b8352606c8101604c8a038cf09750508661158e5763301164256000526004601cfd5b90528552601f198501527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08401527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa09092019190915292915050565b803563ffffffff811681146115fe57600080fd5b919050565b60008083601f84011261161557600080fd5b50813567ffffffffffffffff81111561162d57600080fd5b60208301915083602082850101111561164557600080fd5b9250929050565b6000806000806000806080878903121561166557600080fd5b61166e876115ea565b955060208701359450604087013567ffffffffffffffff8082111561169257600080fd5b61169e8a838b01611603565b909650945060608901359150808211156116b757600080fd5b506116c489828a01611603565b979a9699509497509295939492505050565b6001600160a01b0381168114610f6257600080fd5b600080604083850312156116fe57600080fd5b611707836115ea565b91506020830135611717816116d6565b809150509250929050565b60006020828403121561173457600080fd5b6107fb826115ea565b6000806040838503121561175057600080fd5b611759836115ea565b946020939093013593505050565b60008060006060848603121561177c57600080fd5b611785846115ea565b95602085013595506040909401359392505050565b60005b838110156117b557818101518382015260200161179d565b838111156117c4576000848401525b50505050565b600081518084526117e281602086016020860161179a565b601f01601f19169290920160200192915050565b60006020808301818452808551808352604092508286019150828160051b87010184880160005b838110156118a5578883037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc001855281518051845287810151888501528681015167ffffffffffffffff16878501526060808201519085015260809081015160a091850182905290611891818601836117ca565b96890196945050509086019060010161181d565b509098975050505050505050565b6020815260006107fb60208301846117ca565b600080600080606085870312156118dc57600080fd5b6118e5856115ea565b935060208501359250604085013567ffffffffffffffff81111561190857600080fd5b61191487828801611603565b95989497509550505050565b6000806000806060858703121561193657600080fd5b61193f856115ea565b9350602085013561194f816116d6565b9250604085013567ffffffffffffffff81111561190857600080fd5b60006020828403121561197d57600080fd5b5035919050565b60006020828403121561199657600080fd5b81356107fb816116d6565b818352818160208501375060006020828401015260006020601f19601f840116840101905092915050565b602081526000610b4b6020830184866119a1565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600060208284031215611a5057600080fd5b815167ffffffffffffffff80821115611a6857600080fd5b818401915084601f830112611a7c57600080fd5b815181811115611a8e57611a8e611a0f565b604051601f8201601f19908116603f01168101908382118183101715611ab657611ab6611a0f565b81604052828152876020848701011115611acf57600080fd5b611ae083602083016020880161179a565b979650505050505050565b600060208284031215611afd57600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600082821015611b4557611b45611b04565b500390565b6000816000190483118215151615611b6457611b64611b04565b500290565b600060208284031215611b7b57600080fd5b81516107fb816116d6565b600181811c90821680611b9a57607f821691505b602082108103611bd3577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b63ffffffff8516815283602082015260606040820152600061054e6060830184866119a1565b601f821115611c4957600081815260208120601f850160051c81016020861015611c265750805b601f850160051c820191505b81811015611c4557828155600101611c32565b5050505b505050565b67ffffffffffffffff831115611c6657611c66611a0f565b611c7a83611c748354611b86565b83611bff565b6000601f841160018114611cae5760008515611c965750838201355b600019600387901b1c1916600186901b178355611d08565b600083815260209020601f19861690835b82811015611cdf5786850135825560209485019460019092019101611cbf565b5086821015611cfc5760001960f88860031b161c19848701351681555b505060018560011b0183555b5050505050565b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008660601b1681528460148201528360348201528183605483013760009101605401908152949350505050565b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008860601b1681528660148201528560348201527fffffffff000000000000000000000000000000000000000000000000000000008560e01b16605482015282846058830137600083820160588101600081528451611ddf81836020890161179a565b919091016058019a995050505050505050505056fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R`\x046\x10a\x01jW`\x005`\xE0\x1C\x80ce\x93\xDCn\x11a\0\xCBW\x80c\x96\xCD\x97 \x11a\0\x7FW\x80c\xC4\xD6m\xE8\x11a\0YW\x80c\xC4\xD6m\xE8\x14a\x04{W\x80c\xDA\xD5D\xE0\x14a\x04\x9BW\x80c\xF2\xFD\xE3\x8B\x14a\x04\xB0W`\0\x80\xFD[\x80c\x96\xCD\x97 \x14a\x03\xE7W\x80c\xB1\x07\tW\x14a\x04\x07W\x80c\xBB\x8A\xA1\xFC\x14a\x04'W`\0\x80\xFD[\x80ct\xCC\x86\xAC\x11a\0\xB0W\x80ct\xCC\x86\xAC\x14a\x03\x96W\x80c\x82\xEC\xF2\xF6\x14a\x03\xB6W\x80c\x8D\xA5\xCB[\x14a\x03\xC9W`\0\x80\xFD[\x80ce\x93\xDCn\x14a\x03TW\x80cqP\x18\xA6\x14a\x03\x81W`\0\x80\xFD[\x80c8\xD3\x8C\x97\x11a\x01\"W\x80cM\x19u\xB4\x11a\x01\x07W\x80cM\x19u\xB4\x14a\x02\x97W\x80cT\xFDMP\x14a\x02\xB6W\x80c_\x01P\xCB\x14a\x03\x0CW`\0\x80\xFD[\x80c8\xD3\x8C\x97\x14a\x02DW\x80c>G\x15\x8C\x14a\x02\x82W`\0\x80\xFD[\x80c\x1Bh[\x9E\x11a\x01SW\x80c\x1Bh[\x9E\x14a\x01\xC1W\x80c\x1E3B@\x14a\x01\xF7W\x80c%K\xD6\x83\x14a\x02\x17W`\0\x80\xFD[\x80c\x10\x11\xF3w\x14a\x01oW\x80c\x14\xF6\xB1\xA3\x14a\x01\x9FW[`\0\x80\xFD[a\x01\x82a\x01}6`\x04a\x16LV[a\x04\xD0V[`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[4\x80\x15a\x01\xABW`\0\x80\xFD[Pa\x01\xBFa\x01\xBA6`\x04a\x16\xEBV[a\x05XV[\0[4\x80\x15a\x01\xCDW`\0\x80\xFD[Pa\x01\x82a\x01\xDC6`\x04a\x17\"V[`e` R`\0\x90\x81R`@\x90 T`\x01`\x01`\xA0\x1B\x03\x16\x81V[4\x80\x15a\x02\x03W`\0\x80\xFD[Pa\x01\xBFa\x02\x126`\x04a\x17=V[a\x05\xD5V[4\x80\x15a\x02#W`\0\x80\xFD[Pa\x027a\x0226`\x04a\x17gV[a\x06!V[`@Qa\x01\x96\x91\x90a\x17\xF6V[4\x80\x15a\x02PW`\0\x80\xFD[P`@Q`\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x81R` \x01a\x01\x96V[4\x80\x15a\x02\x8EW`\0\x80\xFD[Pa\x01\x82a\x08\x02V[4\x80\x15a\x02\xA3W`\0\x80\xFD[P`hT[`@Q\x90\x81R` \x01a\x01\x96V[4\x80\x15a\x02\xC2W`\0\x80\xFD[Pa\x02\xFF`@Q\x80`@\x01`@R\x80`\x05\x81R` \x01\x7F1.4.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\x81RP\x81V[`@Qa\x01\x96\x91\x90a\x18\xB3V[4\x80\x15a\x03\x18W`\0\x80\xFD[Pa\x03,a\x03'6`\x04a\x18\xC6V[a\t\xE6V[`@\x80Q`\x01`\x01`\xA0\x1B\x03\x90\x93\x16\x83Rg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16` \x83\x01R\x01a\x01\x96V[4\x80\x15a\x03`W`\0\x80\xFD[Pa\x02\xA8a\x03o6`\x04a\x17\"V[`f` R`\0\x90\x81R`@\x90 T\x81V[4\x80\x15a\x03\x8DW`\0\x80\xFD[Pa\x01\xBFa\n,V[4\x80\x15a\x03\xA2W`\0\x80\xFD[Pa\x02\xFFa\x03\xB16`\x04a\x17\"V[a\n@V[a\x01\x82a\x03\xC46`\x04a\x18\xC6V[a\n\xDAV[4\x80\x15a\x03\xD5W`\0\x80\xFD[P`3T`\x01`\x01`\xA0\x1B\x03\x16a\x01\x82V[4\x80\x15a\x03\xF3W`\0\x80\xFD[Pa\x02\xA8a\x04\x026`\x04a\x18\xC6V[a\x0BSV[4\x80\x15a\x04\x13W`\0\x80\xFD[Pa\x01\xBFa\x04\"6`\x04a\x19 V[a\x0B\x8CV[4\x80\x15a\x043W`\0\x80\xFD[Pa\x04Ga\x04B6`\x04a\x19kV[a\x0CrV[`@\x80Qc\xFF\xFF\xFF\xFF\x90\x94\x16\x84Rg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x92\x16` \x84\x01R`\x01`\x01`\xA0\x1B\x03\x16\x90\x82\x01R``\x01a\x01\x96V[4\x80\x15a\x04\x87W`\0\x80\xFD[Pa\x01\xBFa\x04\x966`\x04a\x19\x84V[a\x0C\xCEV[4\x80\x15a\x04\xA7W`\0\x80\xFD[Pa\x01\x82a\x0EKV[4\x80\x15a\x04\xBCW`\0\x80\xFD[Pa\x01\xBFa\x04\xCB6`\x04a\x19\x84V[a\x0E\xBBV[`\0a\x04\xDE\x87\x87\x87\x87a\x0FeV[\x90P\x80`\x01`\x01`\xA0\x1B\x03\x16cB$\xB1\xE74\x85\x85`@Q\x84c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01a\x05\x0F\x92\x91\x90a\x19\xCCV[`\0`@Q\x80\x83\x03\x81\x85\x88\x80;\x15\x80\x15a\x05(W`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x05=`\0\xFD[PPPPPa\x05N\x87\x87\x87\x87\x85a\x11>V[\x96\x95PPPPPPV[a\x05`a\x120V[c\xFF\xFF\xFF\xFF\x82\x16`\0\x81\x81R`e` R`@\x80\x82 \x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16`\x01`\x01`\xA0\x1B\x03\x86\x16\x90\x81\x17\x90\x91U\x90Q\x90\x91\x7F\xFFQ=\x80\xE2\xC7\xFAHv\x08\xF7\na\x8D\xFB\xC0\xCFAV\x99\xDCiX\x8Ct~\x8CqVl\x88\xDE\x91\xA3PPV[a\x05\xDDa\x120V[c\xFF\xFF\xFF\xFF\x82\x16`\0\x81\x81R`f` R`@\x80\x82 \x84\x90UQ\x83\x92\x91\x7Ft\xD6f\\K&\xD5YjZ\xA1=0\x14\xE0\xC0j\xF4\xD3\"\x07Zy\x7F\x87\xB0<\xD4\xC5\xBC\x91\xCA\x91\xA3PPV[`hT``\x90\x83\x10\x15\x80a\x063WP\x81\x15[a\x07\xFBWP`@\x80Q`\x05\x83\x90\x1B\x81\x01` \x01\x90\x91R\x82[\x83\x81\x11a\x07\xF9W`\0`h\x82\x81T\x81\x10a\x06gWa\x06ga\x19\xE0V[`\0\x91\x82R` \x90\x91 \x01T\x90P`\xE0\x81\x90\x1C`\xA0\x82\x90\x1Cg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\x01`\x01`\xA0\x1B\x03\x83\x16c\xFF\xFF\xFF\xFF\x89\x16\x83\x03a\x07\xE8W`\x01\x86Q\x01\x86R`\0\x81`\x01`\x01`\xA0\x1B\x03\x16c`\x9D34`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01`\0`@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x06\xE7W=`\0\x80>=`\0\xFD[PPPP`@Q=`\0\x82>`\x1F=\x90\x81\x01`\x1F\x19\x16\x82\x01`@Ra\x07\x0F\x91\x90\x81\x01\x90a\x1A>V[\x90P`\0\x82`\x01`\x01`\xA0\x1B\x03\x16c\xBC\xEF;U`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x07QW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x07u\x91\x90a\x1A\xEBV[\x90P`@Q\x80`\xA0\x01`@R\x80\x88\x81R` \x01\x87\x81R` \x01\x85g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81R` \x01\x82\x81R` \x01\x83\x81RP\x88`\x01\x8AQa\x07\xB7\x91\x90a\x1B3V[\x81Q\x81\x10a\x07\xC7Wa\x07\xC7a\x19\xE0V[` \x02` \x01\x01\x81\x90RP\x88\x88Q\x10a\x07\xE5WPPPPPPa\x07\xF9V[PP[PP`\0\x19\x90\x92\x01\x91Pa\x06K\x90PV[P[\x93\x92PPPV[`\0\x80a\x08-\x7F\xB51'hJV\x8B1s\xAE\x13\xB9\xF8\xA6\x01n$>c\xB6\xE8\xEE\x11x\xD6\xA7\x17\x85\x0B]a\x03T\x90V[\x90P`\x01`\x01`\xA0\x1B\x03\x81\x16\x15a\x08CW\x91\x90PV[`@Q\x80`@\x01`@R\x80`\x1A\x81R` \x01\x7FOVM_L1CrossDomainMessenger\0\0\0\0\0\0\x81RPQ`\x02a\x08\x86\x91\x90a\x1BJV[`@\x80Q0` \x82\x01R`\0\x91\x81\x01\x91\x90\x91R\x7FOVM_L1CrossDomainMessenger\0\0\0\0\0\0\x91\x90\x91\x17\x90a\x08\xE1\x90``\x01[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 T\x90V[\x14a\t\x18W`@Q\x7FT\xE43\xCD\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\x01`@Q\x80\x91\x03\x90\xFD[`@\x80Q0` \x82\x01R`\x01\x91\x81\x01\x91\x90\x91R`\0\x90a\t:\x90``\x01a\x08\xC7V[\x90P`\x01`\x01`\xA0\x1B\x03\x81\x16\x15a\t\xB4W\x80`\x01`\x01`\xA0\x1B\x03\x16c\x8D\xA5\xCB[`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\t\x89W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\t\xAD\x91\x90a\x1BiV[\x92PPP\x90V[`@Q\x7F3!D\xDB\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\x01`@Q\x80\x91\x03\x90\xFD[`\0\x80`\0a\t\xF7\x87\x87\x87\x87a\x0BSV[`\0\x90\x81R`g` R`@\x90 T`\x01`\x01`\xA0\x1B\x03\x81\x16\x98`\xA0\x91\x90\x91\x1Cg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x97P\x95PPPPPPV[a\n4a\x120V[a\n>`\0a\x12\xA4V[V[`i` R`\0\x90\x81R`@\x90 \x80Ta\nY\x90a\x1B\x86V[\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x92\x91\x90\x81\x81R` \x01\x82\x80Ta\n\x85\x90a\x1B\x86V[\x80\x15a\n\xD2W\x80`\x1F\x10a\n\xA7Wa\x01\0\x80\x83T\x04\x02\x83R\x91` \x01\x91a\n\xD2V[\x82\x01\x91\x90`\0R` `\0 \x90[\x81T\x81R\x90`\x01\x01\x90` \x01\x80\x83\x11a\n\xB5W\x82\x90\x03`\x1F\x16\x82\x01\x91[PPPPP\x81V[`\0a\n\xE8\x85\x85\x85\x85a\x0FeV[\x90P\x80`\x01`\x01`\xA0\x1B\x03\x16c\x81)\xFC\x1C4`@Q\x82c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01`\0`@Q\x80\x83\x03\x81\x85\x88\x80;\x15\x80\x15a\x0B%W`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x0B9W=`\0\x80>=`\0\xFD[PPPPPa\x0BK\x85\x85\x85\x85\x85a\x11>V[\x94\x93PPPPV[`\0\x84\x84\x84\x84`@Q` \x01a\x0Bl\x94\x93\x92\x91\x90a\x1B\xD9V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 \x90P\x94\x93PPPPV[a\x0B\x94a\x120V[c\xFF\xFF\xFF\xFF\x84\x16`\0\x90\x81R`e` \x90\x81R`@\x80\x83 \x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16`\x01`\x01`\xA0\x1B\x03\x88\x16\x17\x90U`i\x90\x91R\x90 a\x0B\xEF\x82\x84\x83a\x1CNV[P`@Qc\xFF\xFF\xFF\xFF\x85\x16\x90`\x01`\x01`\xA0\x1B\x03\x85\x16\x90\x7F\xFFQ=\x80\xE2\xC7\xFAHv\x08\xF7\na\x8D\xFB\xC0\xCFAV\x99\xDCiX\x8Ct~\x8CqVl\x88\xDE\x90`\0\x90\xA3\x83c\xFF\xFF\xFF\xFF\x16\x7F\xA4\x7F\xCD\xF0u\xD6\x80\xD3\x81{\xFC\xA7\x97;7>\x1A_l\xFC;DGH)\x9C\xC2\xB8=\x83H\xF9\x83\x83`@Qa\x0Cd\x92\x91\x90a\x19\xCCV[`@Q\x80\x91\x03\x90\xA2PPPPV[`\0\x80`\0\x80`\0\x80a\x0C\xBE`h\x88\x81T\x81\x10a\x0C\x91Wa\x0C\x91a\x19\xE0V[\x90`\0R` `\0 \x01T`\xE0\x81\x90\x1C\x91`\xA0\x82\x90\x1Cg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x91`\x01`\x01`\xA0\x1B\x03\x16\x90V[\x91\x99\x90\x98P\x90\x96P\x94PPPPPV[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\0Ta\x01\0\x90\x04`\xFF\x16\x15\x80\x15a\r\x0EWP`\0T`\xFF\x80\x83\x16\x91\x16\x10[a\r\x9FW`@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\x82\x01R`.`$\x82\x01R\x7FInitializable: contract is alrea`D\x82\x01R\x7Fdy initialized\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01[`@Q\x80\x91\x03\x90\xFD[`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\x16`\xFF\x83\x16\x17a\x01\0\x17\x90Ua\r\xD8a\x13\x0EV[a\r\xE0a\x13uV[a\r\xE9\x82a\x12\xA4V[`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\x16\x90U`@Q`\xFF\x82\x16\x81R\x7F\x7F&\xB8?\xF9n\x1F+jh/\x138R\xF6y\x8A\t\xC4e\xDA\x95\x92\x14`\xCE\xFB8G@$\x98\x90` \x01`@Q\x80\x91\x03\x90\xA1PPV[`\0a\x0EUa\x08\x02V[`\x01`\x01`\xA0\x1B\x03\x16c\x8D\xA5\xCB[`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x0E\x92W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x0E\xB6\x91\x90a\x1BiV[\x90P\x90V[a\x0E\xC3a\x120V[`\x01`\x01`\xA0\x1B\x03\x81\x16a\x0FYW`@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\x82\x01R`&`$\x82\x01R\x7FOwnable: new owner is the zero a`D\x82\x01R\x7Fddress\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`d\x82\x01R`\x84\x01a\r\x96V[a\x0Fb\x81a\x12\xA4V[PV[c\xFF\xFF\xFF\xFF\x84\x16`\0\x90\x81R`e` R`@\x81 T`\x01`\x01`\xA0\x1B\x03\x16\x80a\x0F\xC3W`@Q\x7F\x03\x1Cm\xE4\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\x81Rc\xFF\xFF\xFF\xFF\x87\x16`\x04\x82\x01R`$\x01a\r\x96V[c\xFF\xFF\xFF\xFF\x86\x16`\0\x90\x81R`f` R`@\x90 T4\x14a\x10\x11W`@Q\x7F\x86 \xAA\x19\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\x01`@Q\x80\x91\x03\x90\xFD[`\0a\x10\x1E`\x01Ca\x1B3V[c\xFF\xFF\xFF\xFF\x88\x16`\0\x90\x81R`i` R`@\x81 \x80T\x92@\x93P\x90\x91a\x10D\x90a\x1B\x86V[\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x92\x91\x90\x81\x81R` \x01\x82\x80Ta\x10p\x90a\x1B\x86V[\x80\x15a\x10\xBDW\x80`\x1F\x10a\x10\x92Wa\x01\0\x80\x83T\x04\x02\x83R\x91` \x01\x91a\x10\xBDV[\x82\x01\x91\x90`\0R` `\0 \x90[\x81T\x81R\x90`\x01\x01\x90` \x01\x80\x83\x11a\x10\xA0W\x82\x90\x03`\x1F\x16\x82\x01\x91[PPPPP\x90P\x80Q`\0\x03a\x11\x10Wa\x11\t3\x88\x84\x89\x89`@Q` \x01a\x10\xE9\x95\x94\x93\x92\x91\x90a\x1D\x0FV[`@\x80Q`\x1F\x19\x81\x84\x03\x01\x81R\x91\x90R`\x01`\x01`\xA0\x1B\x03\x85\x16\x90a\x14\x14V[\x93Pa\x113V[a\x1103\x88\x84\x8B\x8A\x8A\x87`@Q` \x01a\x10\xE9\x97\x96\x95\x94\x93\x92\x91\x90a\x1D\\V[\x93P[PPP\x94\x93PPPPV[`\0a\x11L\x86\x86\x86\x86a\x0BSV[`\0\x81\x81R`g` R`@\x90 T\x90\x91P\x15a\x11\x98W`@Q\x7F\x01Oo\xE5\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\x81\x01\x82\x90R`$\x01a\r\x96V[`\0B`\xA0\x1B`\xE0\x88\x90\x1B\x17\x83\x17`\0\x83\x81R`g` R`@\x80\x82 \x83\x90U`h\x80T`\x01\x81\x01\x82U\x90\x83R\x7F\xA2\x154 \xD8D\x92\x8BD!e\x02\x03\xC7{\xAB\xC8\xB3=\x7F.{E\x0E)f\xDB\x0C\"\twS\x01\x83\x90UQ\x91\x92P\x87\x91c\xFF\xFF\xFF\xFF\x8A\x16\x91`\x01`\x01`\xA0\x1B\x03\x87\x16\x91\x7F[V^\xFE\x82A\x1D\xA9\x88\x14\xF3V\xD0\xE7\xBC\xB8\xF0!\x9B\x8D\x97\x03\x07\xC5\xAF\xB4\xA6\x90:\x8B.5\x91\x90\xA4PPPPPPPV[`3T`\x01`\x01`\xA0\x1B\x03\x163\x14a\n>W`@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\x82\x01\x81\x90R`$\x82\x01R\x7FOwnable: caller is not the owner`D\x82\x01R`d\x01a\r\x96V[`3\x80T`\x01`\x01`\xA0\x1B\x03\x83\x81\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x83\x16\x81\x17\x90\x93U`@Q\x91\x16\x91\x90\x82\x90\x7F\x8B\xE0\x07\x9CS\x16Y\x14\x13D\xCD\x1F\xD0\xA4\xF2\x84\x19I\x7F\x97\"\xA3\xDA\xAF\xE3\xB4\x18okdW\xE0\x90`\0\x90\xA3PPV[3a\x13\x17a\x08\x02V[`\x01`\x01`\xA0\x1B\x03\x16\x14\x15\x80\x15a\x13>WP3a\x132a\x0EKV[`\x01`\x01`\xA0\x1B\x03\x16\x14\x15[\x15a\n>W`@Q\x7F\xC4\x05\n&\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\x01`@Q\x80\x91\x03\x90\xFD[`\0Ta\x01\0\x90\x04`\xFF\x16a\x14\x0CW`@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\x82\x01R`+`$\x82\x01R\x7FInitializable: contract is not i`D\x82\x01R\x7Fnitializing\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\r\x96V[a\n>a\x14\"V[`\0a\x07\xFB`\0\x84\x84a\x14\xC2V[`\0Ta\x01\0\x90\x04`\xFF\x16a\x14\xB9W`@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\x82\x01R`+`$\x82\x01R\x7FInitializable: contract is not i`D\x82\x01R\x7Fnitializing\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\r\x96V[a\n>3a\x12\xA4V[`\0``\x82\x03Q`@\x83\x03Q` \x84\x03Q\x84Q\x80` \x87\x01\x01\x80Q`\x02\x83\x01lZ\xF4==\x93\x80>``W\xFD[\xF3\x89R\x89`\r\x8A\x03RxY=\xA1\0[6==7====a\0\0\x80`b696\x01=s\x81`H\x1B\x17`!\x8A\x03R\x7F\x9EJ\xC3O!\xC6\x19\xCE\xFC\x92l\x8B\xD9;T\xBFZ9\xC7\xAB!'\xA8\x95\xAF\x1C\xC0i\x1D~=\xFF`:\x8A\x03Rr\xFDa\0\0=\x81`\n=9\xF36`,W4=R\x7F`b\x82\x01`x\x1B\x17a\xFF\x9E\x82\x10`Y\x01\x8A\x03R\x80`\xF0\x1B\x83R`l\x81\x01`L\x8A\x03\x8C\xF0\x97PP\x86a\x15\x8EWc0\x11d%`\0R`\x04`\x1C\xFD[\x90R\x85R`\x1F\x19\x85\x01R\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xC0\x84\x01R\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xA0\x90\x92\x01\x91\x90\x91R\x92\x91PPV[\x805c\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x15\xFEW`\0\x80\xFD[\x91\x90PV[`\0\x80\x83`\x1F\x84\x01\x12a\x16\x15W`\0\x80\xFD[P\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x16-W`\0\x80\xFD[` \x83\x01\x91P\x83` \x82\x85\x01\x01\x11\x15a\x16EW`\0\x80\xFD[\x92P\x92\x90PV[`\0\x80`\0\x80`\0\x80`\x80\x87\x89\x03\x12\x15a\x16eW`\0\x80\xFD[a\x16n\x87a\x15\xEAV[\x95P` \x87\x015\x94P`@\x87\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x16\x92W`\0\x80\xFD[a\x16\x9E\x8A\x83\x8B\x01a\x16\x03V[\x90\x96P\x94P``\x89\x015\x91P\x80\x82\x11\x15a\x16\xB7W`\0\x80\xFD[Pa\x16\xC4\x89\x82\x8A\x01a\x16\x03V[\x97\x9A\x96\x99P\x94\x97P\x92\x95\x93\x94\x92PPPV[`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a\x0FbW`\0\x80\xFD[`\0\x80`@\x83\x85\x03\x12\x15a\x16\xFEW`\0\x80\xFD[a\x17\x07\x83a\x15\xEAV[\x91P` \x83\x015a\x17\x17\x81a\x16\xD6V[\x80\x91PP\x92P\x92\x90PV[`\0` \x82\x84\x03\x12\x15a\x174W`\0\x80\xFD[a\x07\xFB\x82a\x15\xEAV[`\0\x80`@\x83\x85\x03\x12\x15a\x17PW`\0\x80\xFD[a\x17Y\x83a\x15\xEAV[\x94` \x93\x90\x93\x015\x93PPPV[`\0\x80`\0``\x84\x86\x03\x12\x15a\x17|W`\0\x80\xFD[a\x17\x85\x84a\x15\xEAV[\x95` \x85\x015\x95P`@\x90\x94\x015\x93\x92PPPV[`\0[\x83\x81\x10\x15a\x17\xB5W\x81\x81\x01Q\x83\x82\x01R` \x01a\x17\x9DV[\x83\x81\x11\x15a\x17\xC4W`\0\x84\x84\x01R[PPPPV[`\0\x81Q\x80\x84Ra\x17\xE2\x81` \x86\x01` \x86\x01a\x17\x9AV[`\x1F\x01`\x1F\x19\x16\x92\x90\x92\x01` \x01\x92\x91PPV[`\0` \x80\x83\x01\x81\x84R\x80\x85Q\x80\x83R`@\x92P\x82\x86\x01\x91P\x82\x81`\x05\x1B\x87\x01\x01\x84\x88\x01`\0[\x83\x81\x10\x15a\x18\xA5W\x88\x83\x03\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xC0\x01\x85R\x81Q\x80Q\x84R\x87\x81\x01Q\x88\x85\x01R\x86\x81\x01Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x87\x85\x01R``\x80\x82\x01Q\x90\x85\x01R`\x80\x90\x81\x01Q`\xA0\x91\x85\x01\x82\x90R\x90a\x18\x91\x81\x86\x01\x83a\x17\xCAV[\x96\x89\x01\x96\x94PPP\x90\x86\x01\x90`\x01\x01a\x18\x1DV[P\x90\x98\x97PPPPPPPPV[` \x81R`\0a\x07\xFB` \x83\x01\x84a\x17\xCAV[`\0\x80`\0\x80``\x85\x87\x03\x12\x15a\x18\xDCW`\0\x80\xFD[a\x18\xE5\x85a\x15\xEAV[\x93P` \x85\x015\x92P`@\x85\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x19\x08W`\0\x80\xFD[a\x19\x14\x87\x82\x88\x01a\x16\x03V[\x95\x98\x94\x97P\x95PPPPV[`\0\x80`\0\x80``\x85\x87\x03\x12\x15a\x196W`\0\x80\xFD[a\x19?\x85a\x15\xEAV[\x93P` \x85\x015a\x19O\x81a\x16\xD6V[\x92P`@\x85\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x19\x08W`\0\x80\xFD[`\0` \x82\x84\x03\x12\x15a\x19}W`\0\x80\xFD[P5\x91\x90PV[`\0` \x82\x84\x03\x12\x15a\x19\x96W`\0\x80\xFD[\x815a\x07\xFB\x81a\x16\xD6V[\x81\x83R\x81\x81` \x85\x017P`\0` \x82\x84\x01\x01R`\0` `\x1F\x19`\x1F\x84\x01\x16\x84\x01\x01\x90P\x92\x91PPV[` \x81R`\0a\x0BK` \x83\x01\x84\x86a\x19\xA1V[\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`2`\x04R`$`\0\xFD[\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[`\0` \x82\x84\x03\x12\x15a\x1APW`\0\x80\xFD[\x81Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x1AhW`\0\x80\xFD[\x81\x84\x01\x91P\x84`\x1F\x83\x01\x12a\x1A|W`\0\x80\xFD[\x81Q\x81\x81\x11\x15a\x1A\x8EWa\x1A\x8Ea\x1A\x0FV[`@Q`\x1F\x82\x01`\x1F\x19\x90\x81\x16`?\x01\x16\x81\x01\x90\x83\x82\x11\x81\x83\x10\x17\x15a\x1A\xB6Wa\x1A\xB6a\x1A\x0FV[\x81`@R\x82\x81R\x87` \x84\x87\x01\x01\x11\x15a\x1A\xCFW`\0\x80\xFD[a\x1A\xE0\x83` \x83\x01` \x88\x01a\x17\x9AV[\x97\x96PPPPPPPV[`\0` \x82\x84\x03\x12\x15a\x1A\xFDW`\0\x80\xFD[PQ\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`\x11`\x04R`$`\0\xFD[`\0\x82\x82\x10\x15a\x1BEWa\x1BEa\x1B\x04V[P\x03\x90V[`\0\x81`\0\x19\x04\x83\x11\x82\x15\x15\x16\x15a\x1BdWa\x1Bda\x1B\x04V[P\x02\x90V[`\0` \x82\x84\x03\x12\x15a\x1B{W`\0\x80\xFD[\x81Qa\x07\xFB\x81a\x16\xD6V[`\x01\x81\x81\x1C\x90\x82\x16\x80a\x1B\x9AW`\x7F\x82\x16\x91P[` \x82\x10\x81\x03a\x1B\xD3W\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`\"`\x04R`$`\0\xFD[P\x91\x90PV[c\xFF\xFF\xFF\xFF\x85\x16\x81R\x83` \x82\x01R```@\x82\x01R`\0a\x05N``\x83\x01\x84\x86a\x19\xA1V[`\x1F\x82\x11\x15a\x1CIW`\0\x81\x81R` \x81 `\x1F\x85\x01`\x05\x1C\x81\x01` \x86\x10\x15a\x1C&WP\x80[`\x1F\x85\x01`\x05\x1C\x82\x01\x91P[\x81\x81\x10\x15a\x1CEW\x82\x81U`\x01\x01a\x1C2V[PPP[PPPV[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11\x15a\x1CfWa\x1Cfa\x1A\x0FV[a\x1Cz\x83a\x1Ct\x83Ta\x1B\x86V[\x83a\x1B\xFFV[`\0`\x1F\x84\x11`\x01\x81\x14a\x1C\xAEW`\0\x85\x15a\x1C\x96WP\x83\x82\x015[`\0\x19`\x03\x87\x90\x1B\x1C\x19\x16`\x01\x86\x90\x1B\x17\x83Ua\x1D\x08V[`\0\x83\x81R` \x90 `\x1F\x19\x86\x16\x90\x83[\x82\x81\x10\x15a\x1C\xDFW\x86\x85\x015\x82U` \x94\x85\x01\x94`\x01\x90\x92\x01\x91\x01a\x1C\xBFV[P\x86\x82\x10\x15a\x1C\xFCW`\0\x19`\xF8\x88`\x03\x1B\x16\x1C\x19\x84\x87\x015\x16\x81U[PP`\x01\x85`\x01\x1B\x01\x83U[PPPPPV[\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\x86``\x1B\x16\x81R\x84`\x14\x82\x01R\x83`4\x82\x01R\x81\x83`T\x83\x017`\0\x91\x01`T\x01\x90\x81R\x94\x93PPPPV[\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\x88``\x1B\x16\x81R\x86`\x14\x82\x01R\x85`4\x82\x01R\x7F\xFF\xFF\xFF\xFF\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\x85`\xE0\x1B\x16`T\x82\x01R\x82\x84`X\x83\x017`\0\x83\x82\x01`X\x81\x01`\0\x81R\x84Qa\x1D\xDF\x81\x83` \x89\x01a\x17\x9AV[\x91\x90\x91\x01`X\x01\x9A\x99PPPPPPPPPPV\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct Claim(alloy::sol_types::private::FixedBytes<32>); + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue + for alloy::sol_types::private::FixedBytes<32> { + #[inline] + fn stv_to_tokens( + &self, + ) -> as alloy_sol_types::SolType>::Token<'_> { + alloy_sol_types::private::SolTypeValue::< + alloy::sol_types::sol_data::FixedBytes<32>, + >::stv_to_tokens(self) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + as alloy_sol_types::SolType>::tokenize(self) + .0 + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::SolType>::abi_encode_packed_to(self, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + as alloy_sol_types::SolType>::abi_encoded_size(self) + } + } + impl Claim { + /// The Solidity type name. + pub const NAME: &'static str = stringify!(@ name); + /// Convert from the underlying value type. + #[inline] + pub const fn from_underlying( + value: alloy::sol_types::private::FixedBytes<32>, + ) -> Self { + Self(value) + } + /// Return the underlying value. + #[inline] + pub const fn into_underlying( + self, + ) -> alloy::sol_types::private::FixedBytes<32> { + self.0 + } + /// Return the single encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode(&self) -> alloy_sol_types::private::Vec { + ::abi_encode(&self.0) + } + /// Return the packed encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec { + ::abi_encode_packed(&self.0) + } + } + #[automatically_derived] + impl From> for Claim { + fn from(value: alloy::sol_types::private::FixedBytes<32>) -> Self { + Self::from_underlying(value) + } + } + #[automatically_derived] + impl From for alloy::sol_types::private::FixedBytes<32> { + fn from(value: Claim) -> Self { + value.into_underlying() + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for Claim { + type RustType = alloy::sol_types::private::FixedBytes<32>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = Self::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + Self::type_check(token).is_ok() + } + #[inline] + fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> { + as alloy_sol_types::SolType>::type_check(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + as alloy_sol_types::SolType>::detokenize(token) + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for Claim { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + as alloy_sol_types::EventTopic>::topic_preimage_length(rust) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out) + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + as alloy_sol_types::EventTopic>::encode_topic(rust) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct GameId(alloy::sol_types::private::FixedBytes<32>); + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue + for alloy::sol_types::private::FixedBytes<32> { + #[inline] + fn stv_to_tokens( + &self, + ) -> as alloy_sol_types::SolType>::Token<'_> { + alloy_sol_types::private::SolTypeValue::< + alloy::sol_types::sol_data::FixedBytes<32>, + >::stv_to_tokens(self) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + as alloy_sol_types::SolType>::tokenize(self) + .0 + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::SolType>::abi_encode_packed_to(self, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + as alloy_sol_types::SolType>::abi_encoded_size(self) + } + } + impl GameId { + /// The Solidity type name. + pub const NAME: &'static str = stringify!(@ name); + /// Convert from the underlying value type. + #[inline] + pub const fn from_underlying( + value: alloy::sol_types::private::FixedBytes<32>, + ) -> Self { + Self(value) + } + /// Return the underlying value. + #[inline] + pub const fn into_underlying( + self, + ) -> alloy::sol_types::private::FixedBytes<32> { + self.0 + } + /// Return the single encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode(&self) -> alloy_sol_types::private::Vec { + ::abi_encode(&self.0) + } + /// Return the packed encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec { + ::abi_encode_packed(&self.0) + } + } + #[automatically_derived] + impl From> for GameId { + fn from(value: alloy::sol_types::private::FixedBytes<32>) -> Self { + Self::from_underlying(value) + } + } + #[automatically_derived] + impl From for alloy::sol_types::private::FixedBytes<32> { + fn from(value: GameId) -> Self { + value.into_underlying() + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for GameId { + type RustType = alloy::sol_types::private::FixedBytes<32>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = Self::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + Self::type_check(token).is_ok() + } + #[inline] + fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> { + as alloy_sol_types::SolType>::type_check(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + as alloy_sol_types::SolType>::detokenize(token) + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for GameId { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + as alloy_sol_types::EventTopic>::topic_preimage_length(rust) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out) + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + as alloy_sol_types::EventTopic>::encode_topic(rust) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct GameType(u32); + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for u32 { + #[inline] + fn stv_to_tokens( + &self, + ) -> as alloy_sol_types::SolType>::Token<'_> { + alloy_sol_types::private::SolTypeValue::< + alloy::sol_types::sol_data::Uint<32>, + >::stv_to_tokens(self) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + as alloy_sol_types::SolType>::tokenize(self) + .0 + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::SolType>::abi_encode_packed_to(self, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + as alloy_sol_types::SolType>::abi_encoded_size(self) + } + } + impl GameType { + /// The Solidity type name. + pub const NAME: &'static str = stringify!(@ name); + /// Convert from the underlying value type. + #[inline] + pub const fn from_underlying(value: u32) -> Self { + Self(value) + } + /// Return the underlying value. + #[inline] + pub const fn into_underlying(self) -> u32 { + self.0 + } + /// Return the single encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode(&self) -> alloy_sol_types::private::Vec { + ::abi_encode(&self.0) + } + /// Return the packed encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec { + ::abi_encode_packed(&self.0) + } + } + #[automatically_derived] + impl From for GameType { + fn from(value: u32) -> Self { + Self::from_underlying(value) + } + } + #[automatically_derived] + impl From for u32 { + fn from(value: GameType) -> Self { + value.into_underlying() + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for GameType { + type RustType = u32; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = Self::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + Self::type_check(token).is_ok() + } + #[inline] + fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> { + as alloy_sol_types::SolType>::type_check(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + as alloy_sol_types::SolType>::detokenize(token) + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for GameType { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + as alloy_sol_types::EventTopic>::topic_preimage_length(rust) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out) + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + as alloy_sol_types::EventTopic>::encode_topic(rust) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct Hash(alloy::sol_types::private::FixedBytes<32>); + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue + for alloy::sol_types::private::FixedBytes<32> { + #[inline] + fn stv_to_tokens( + &self, + ) -> as alloy_sol_types::SolType>::Token<'_> { + alloy_sol_types::private::SolTypeValue::< + alloy::sol_types::sol_data::FixedBytes<32>, + >::stv_to_tokens(self) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + as alloy_sol_types::SolType>::tokenize(self) + .0 + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::SolType>::abi_encode_packed_to(self, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + as alloy_sol_types::SolType>::abi_encoded_size(self) + } + } + impl Hash { + /// The Solidity type name. + pub const NAME: &'static str = stringify!(@ name); + /// Convert from the underlying value type. + #[inline] + pub const fn from_underlying( + value: alloy::sol_types::private::FixedBytes<32>, + ) -> Self { + Self(value) + } + /// Return the underlying value. + #[inline] + pub const fn into_underlying( + self, + ) -> alloy::sol_types::private::FixedBytes<32> { + self.0 + } + /// Return the single encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode(&self) -> alloy_sol_types::private::Vec { + ::abi_encode(&self.0) + } + /// Return the packed encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec { + ::abi_encode_packed(&self.0) + } + } + #[automatically_derived] + impl From> for Hash { + fn from(value: alloy::sol_types::private::FixedBytes<32>) -> Self { + Self::from_underlying(value) + } + } + #[automatically_derived] + impl From for alloy::sol_types::private::FixedBytes<32> { + fn from(value: Hash) -> Self { + value.into_underlying() + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for Hash { + type RustType = alloy::sol_types::private::FixedBytes<32>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = Self::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + Self::type_check(token).is_ok() + } + #[inline] + fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> { + as alloy_sol_types::SolType>::type_check(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + as alloy_sol_types::SolType>::detokenize(token) + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for Hash { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + as alloy_sol_types::EventTopic>::topic_preimage_length(rust) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out) + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + as alloy_sol_types::EventTopic>::encode_topic(rust) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct Timestamp(u64); + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for u64 { + #[inline] + fn stv_to_tokens( + &self, + ) -> as alloy_sol_types::SolType>::Token<'_> { + alloy_sol_types::private::SolTypeValue::< + alloy::sol_types::sol_data::Uint<64>, + >::stv_to_tokens(self) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + as alloy_sol_types::SolType>::tokenize(self) + .0 + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::SolType>::abi_encode_packed_to(self, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + as alloy_sol_types::SolType>::abi_encoded_size(self) + } + } + impl Timestamp { + /// The Solidity type name. + pub const NAME: &'static str = stringify!(@ name); + /// Convert from the underlying value type. + #[inline] + pub const fn from_underlying(value: u64) -> Self { + Self(value) + } + /// Return the underlying value. + #[inline] + pub const fn into_underlying(self) -> u64 { + self.0 + } + /// Return the single encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode(&self) -> alloy_sol_types::private::Vec { + ::abi_encode(&self.0) + } + /// Return the packed encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec { + ::abi_encode_packed(&self.0) + } + } + #[automatically_derived] + impl From for Timestamp { + fn from(value: u64) -> Self { + Self::from_underlying(value) + } + } + #[automatically_derived] + impl From for u64 { + fn from(value: Timestamp) -> Self { + value.into_underlying() + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for Timestamp { + type RustType = u64; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = Self::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + Self::type_check(token).is_ok() + } + #[inline] + fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> { + as alloy_sol_types::SolType>::type_check(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + as alloy_sol_types::SolType>::detokenize(token) + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for Timestamp { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + as alloy_sol_types::EventTopic>::topic_preimage_length(rust) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out) + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + as alloy_sol_types::EventTopic>::encode_topic(rust) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**```solidity +struct GameSearchResult { uint256 index; GameId metadata; Timestamp timestamp; Claim rootClaim; bytes extraData; } +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct GameSearchResult { + #[allow(missing_docs)] + pub index: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub metadata: ::RustType, + #[allow(missing_docs)] + pub timestamp: ::RustType, + #[allow(missing_docs)] + pub rootClaim: ::RustType, + #[allow(missing_docs)] + pub extraData: alloy::sol_types::private::Bytes, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + GameId, + Timestamp, + Claim, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ::RustType, + ::RustType, + ::RustType, + alloy::sol_types::private::Bytes, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: GameSearchResult) -> Self { + ( + value.index, + value.metadata, + value.timestamp, + value.rootClaim, + value.extraData, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for GameSearchResult { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + index: tuple.0, + metadata: tuple.1, + timestamp: tuple.2, + rootClaim: tuple.3, + extraData: tuple.4, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolValue for GameSearchResult { + type SolType = Self; + } + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for GameSearchResult { + #[inline] + fn stv_to_tokens(&self) -> ::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.index), + ::tokenize(&self.metadata), + ::tokenize(&self.timestamp), + ::tokenize(&self.rootClaim), + ::tokenize( + &self.extraData, + ), + ) + } + #[inline] + fn stv_abi_encoded_size(&self) -> usize { + if let Some(size) = ::ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encoded_size(&tuple) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + ::eip712_hash_struct(self) + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + if let Some(size) = ::PACKED_ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for GameSearchResult { + type RustType = Self; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = ::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + as alloy_sol_types::SolType>::valid_token(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + let tuple = as alloy_sol_types::SolType>::detokenize(token); + >>::from(tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolStruct for GameSearchResult { + const NAME: &'static str = "GameSearchResult"; + #[inline] + fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> { + alloy_sol_types::private::Cow::Borrowed( + "GameSearchResult(uint256 index,bytes32 metadata,uint64 timestamp,bytes32 rootClaim,bytes extraData)", + ) + } + #[inline] + fn eip712_components() -> alloy_sol_types::private::Vec< + alloy_sol_types::private::Cow<'static, str>, + > { + alloy_sol_types::private::Vec::new() + } + #[inline] + fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> { + ::eip712_root_type() + } + #[inline] + fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec { + [ + as alloy_sol_types::SolType>::eip712_data_word(&self.index) + .0, + ::eip712_data_word( + &self.metadata, + ) + .0, + ::eip712_data_word( + &self.timestamp, + ) + .0, + ::eip712_data_word( + &self.rootClaim, + ) + .0, + ::eip712_data_word( + &self.extraData, + ) + .0, + ] + .concat() + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for GameSearchResult { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + 0usize + + as alloy_sol_types::EventTopic>::topic_preimage_length(&rust.index) + + ::topic_preimage_length( + &rust.metadata, + ) + + ::topic_preimage_length( + &rust.timestamp, + ) + + ::topic_preimage_length( + &rust.rootClaim, + ) + + ::topic_preimage_length( + &rust.extraData, + ) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + out.reserve( + ::topic_preimage_length(rust), + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.index, + out, + ); + ::encode_topic_preimage( + &rust.metadata, + out, + ); + ::encode_topic_preimage( + &rust.timestamp, + out, + ); + ::encode_topic_preimage( + &rust.rootClaim, + out, + ); + ::encode_topic_preimage( + &rust.extraData, + out, + ); + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + let mut out = alloy_sol_types::private::Vec::new(); + ::encode_topic_preimage( + rust, + &mut out, + ); + alloy_sol_types::abi::token::WordToken( + alloy_sol_types::private::keccak256(out), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `GameAlreadyExists(bytes32)` and selector `0x014f6fe5`. +```solidity +error GameAlreadyExists(Hash uuid); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct GameAlreadyExists { + #[allow(missing_docs)] + pub uuid: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Hash,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (::RustType,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: GameAlreadyExists) -> Self { + (value.uuid,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for GameAlreadyExists { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { uuid: tuple.0 } + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for GameAlreadyExists { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "GameAlreadyExists(bytes32)"; + const SELECTOR: [u8; 4] = [1u8, 79u8, 111u8, 229u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + (::tokenize(&self.uuid),) + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `IncorrectBondAmount()` and selector `0x8620aa19`. +```solidity +error IncorrectBondAmount(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct IncorrectBondAmount; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: IncorrectBondAmount) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for IncorrectBondAmount { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for IncorrectBondAmount { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "IncorrectBondAmount()"; + const SELECTOR: [u8; 4] = [134u8, 32u8, 170u8, 25u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `NoImplementation(uint32)` and selector `0x031c6de4`. +```solidity +error NoImplementation(GameType gameType); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct NoImplementation { + #[allow(missing_docs)] + pub gameType: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (GameType,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: NoImplementation) -> Self { + (value.gameType,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for NoImplementation { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { gameType: tuple.0 } + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for NoImplementation { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "NoImplementation(uint32)"; + const SELECTOR: [u8; 4] = [3u8, 28u8, 109u8, 228u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + (::tokenize(&self.gameType),) + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ProxyAdminOwnedBase_NotProxyAdmin()` and selector `0xe818dcc3`. +```solidity +error ProxyAdminOwnedBase_NotProxyAdmin(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ProxyAdminOwnedBase_NotProxyAdmin; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: ProxyAdminOwnedBase_NotProxyAdmin) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for ProxyAdminOwnedBase_NotProxyAdmin { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ProxyAdminOwnedBase_NotProxyAdmin { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ProxyAdminOwnedBase_NotProxyAdmin()"; + const SELECTOR: [u8; 4] = [232u8, 24u8, 220u8, 195u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner()` and selector `0xc4050a26`. +```solidity +error ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError + for ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner()"; + const SELECTOR: [u8; 4] = [196u8, 5u8, 10u8, 38u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ProxyAdminOwnedBase_NotProxyAdminOwner()` and selector `0x7f12c64b`. +```solidity +error ProxyAdminOwnedBase_NotProxyAdminOwner(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ProxyAdminOwnedBase_NotProxyAdminOwner; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: ProxyAdminOwnedBase_NotProxyAdminOwner) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for ProxyAdminOwnedBase_NotProxyAdminOwner { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ProxyAdminOwnedBase_NotProxyAdminOwner { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ProxyAdminOwnedBase_NotProxyAdminOwner()"; + const SELECTOR: [u8; 4] = [127u8, 18u8, 198u8, 75u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ProxyAdminOwnedBase_NotResolvedDelegateProxy()` and selector `0x54e433cd`. +```solidity +error ProxyAdminOwnedBase_NotResolvedDelegateProxy(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ProxyAdminOwnedBase_NotResolvedDelegateProxy; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: ProxyAdminOwnedBase_NotResolvedDelegateProxy) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for ProxyAdminOwnedBase_NotResolvedDelegateProxy { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ProxyAdminOwnedBase_NotResolvedDelegateProxy { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ProxyAdminOwnedBase_NotResolvedDelegateProxy()"; + const SELECTOR: [u8; 4] = [84u8, 228u8, 51u8, 205u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ProxyAdminOwnedBase_NotSharedProxyAdminOwner()` and selector `0x075c4314`. +```solidity +error ProxyAdminOwnedBase_NotSharedProxyAdminOwner(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ProxyAdminOwnedBase_NotSharedProxyAdminOwner; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: ProxyAdminOwnedBase_NotSharedProxyAdminOwner) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for ProxyAdminOwnedBase_NotSharedProxyAdminOwner { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ProxyAdminOwnedBase_NotSharedProxyAdminOwner { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ProxyAdminOwnedBase_NotSharedProxyAdminOwner()"; + const SELECTOR: [u8; 4] = [7u8, 92u8, 67u8, 20u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ProxyAdminOwnedBase_ProxyAdminNotFound()` and selector `0x332144db`. +```solidity +error ProxyAdminOwnedBase_ProxyAdminNotFound(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ProxyAdminOwnedBase_ProxyAdminNotFound; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: ProxyAdminOwnedBase_ProxyAdminNotFound) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for ProxyAdminOwnedBase_ProxyAdminNotFound { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ProxyAdminOwnedBase_ProxyAdminNotFound { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ProxyAdminOwnedBase_ProxyAdminNotFound()"; + const SELECTOR: [u8; 4] = [51u8, 33u8, 68u8, 219u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ReinitializableBase_ZeroInitVersion()` and selector `0x9b01afed`. +```solidity +error ReinitializableBase_ZeroInitVersion(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ReinitializableBase_ZeroInitVersion; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: ReinitializableBase_ZeroInitVersion) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for ReinitializableBase_ZeroInitVersion { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ReinitializableBase_ZeroInitVersion { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ReinitializableBase_ZeroInitVersion()"; + const SELECTOR: [u8; 4] = [155u8, 1u8, 175u8, 237u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `DisputeGameCreated(address,uint32,bytes32)` and selector `0x5b565efe82411da98814f356d0e7bcb8f0219b8d970307c5afb4a6903a8b2e35`. +```solidity +event DisputeGameCreated(address indexed disputeProxy, GameType indexed gameType, Claim indexed rootClaim); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct DisputeGameCreated { + #[allow(missing_docs)] + pub disputeProxy: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub gameType: ::RustType, + #[allow(missing_docs)] + pub rootClaim: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for DisputeGameCreated { + type DataTuple<'a> = (); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + GameType, + Claim, + ); + const SIGNATURE: &'static str = "DisputeGameCreated(address,uint32,bytes32)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 91u8, 86u8, 94u8, 254u8, 130u8, 65u8, 29u8, 169u8, 136u8, 20u8, 243u8, + 86u8, 208u8, 231u8, 188u8, 184u8, 240u8, 33u8, 155u8, 141u8, 151u8, 3u8, + 7u8, 197u8, 175u8, 180u8, 166u8, 144u8, 58u8, 139u8, 46u8, 53u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + disputeProxy: topics.1, + gameType: topics.2, + rootClaim: topics.3, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + () + } + #[inline] + fn topics(&self) -> ::RustType { + ( + Self::SIGNATURE_HASH.into(), + self.disputeProxy.clone(), + self.gameType.clone(), + self.rootClaim.clone(), + ) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.disputeProxy, + ); + out[2usize] = ::encode_topic( + &self.gameType, + ); + out[3usize] = ::encode_topic( + &self.rootClaim, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for DisputeGameCreated { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&DisputeGameCreated> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &DisputeGameCreated) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `ImplementationArgsSet(uint32,bytes)` and selector `0xa47fcdf075d680d3817bfca7973b373e1a5f6cfc3b444748299cc2b83d8348f9`. +```solidity +event ImplementationArgsSet(GameType indexed gameType, bytes args); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct ImplementationArgsSet { + #[allow(missing_docs)] + pub gameType: ::RustType, + #[allow(missing_docs)] + pub args: alloy::sol_types::private::Bytes, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for ImplementationArgsSet { + type DataTuple<'a> = (alloy::sol_types::sol_data::Bytes,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>, GameType); + const SIGNATURE: &'static str = "ImplementationArgsSet(uint32,bytes)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 164u8, 127u8, 205u8, 240u8, 117u8, 214u8, 128u8, 211u8, 129u8, 123u8, + 252u8, 167u8, 151u8, 59u8, 55u8, 62u8, 26u8, 95u8, 108u8, 252u8, 59u8, + 68u8, 71u8, 72u8, 41u8, 156u8, 194u8, 184u8, 61u8, 131u8, 72u8, 249u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + gameType: topics.1, + args: data.0, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + ::tokenize( + &self.args, + ), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.gameType.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.gameType, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for ImplementationArgsSet { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&ImplementationArgsSet> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &ImplementationArgsSet) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `ImplementationSet(address,uint32)` and selector `0xff513d80e2c7fa487608f70a618dfbc0cf415699dc69588c747e8c71566c88de`. +```solidity +event ImplementationSet(address indexed r#impl, GameType indexed gameType); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct ImplementationSet { + #[allow(missing_docs)] + pub r#impl: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub gameType: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for ImplementationSet { + type DataTuple<'a> = (); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + GameType, + ); + const SIGNATURE: &'static str = "ImplementationSet(address,uint32)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 255u8, 81u8, 61u8, 128u8, 226u8, 199u8, 250u8, 72u8, 118u8, 8u8, 247u8, + 10u8, 97u8, 141u8, 251u8, 192u8, 207u8, 65u8, 86u8, 153u8, 220u8, 105u8, + 88u8, 140u8, 116u8, 126u8, 140u8, 113u8, 86u8, 108u8, 136u8, 222u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + r#impl: topics.1, + gameType: topics.2, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + () + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.r#impl.clone(), self.gameType.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.r#impl, + ); + out[2usize] = ::encode_topic( + &self.gameType, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for ImplementationSet { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&ImplementationSet> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &ImplementationSet) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `InitBondUpdated(uint32,uint256)` and selector `0x74d6665c4b26d5596a5aa13d3014e0c06af4d322075a797f87b03cd4c5bc91ca`. +```solidity +event InitBondUpdated(GameType indexed gameType, uint256 indexed newBond); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct InitBondUpdated { + #[allow(missing_docs)] + pub gameType: ::RustType, + #[allow(missing_docs)] + pub newBond: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for InitBondUpdated { + type DataTuple<'a> = (); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + GameType, + alloy::sol_types::sol_data::Uint<256>, + ); + const SIGNATURE: &'static str = "InitBondUpdated(uint32,uint256)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 116u8, 214u8, 102u8, 92u8, 75u8, 38u8, 213u8, 89u8, 106u8, 90u8, 161u8, + 61u8, 48u8, 20u8, 224u8, 192u8, 106u8, 244u8, 211u8, 34u8, 7u8, 90u8, + 121u8, 127u8, 135u8, 176u8, 60u8, 212u8, 197u8, 188u8, 145u8, 202u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + gameType: topics.1, + newBond: topics.2, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + () + } + #[inline] + fn topics(&self) -> ::RustType { + ( + Self::SIGNATURE_HASH.into(), + self.gameType.clone(), + self.newBond.clone(), + ) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.gameType, + ); + out[2usize] = as alloy_sol_types::EventTopic>::encode_topic(&self.newBond); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for InitBondUpdated { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&InitBondUpdated> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &InitBondUpdated) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `Initialized(uint8)` and selector `0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498`. +```solidity +event Initialized(uint8 version); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct Initialized { + #[allow(missing_docs)] + pub version: u8, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for Initialized { + type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<8>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,); + const SIGNATURE: &'static str = "Initialized(uint8)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 127u8, 38u8, 184u8, 63u8, 249u8, 110u8, 31u8, 43u8, 106u8, 104u8, 47u8, + 19u8, 56u8, 82u8, 246u8, 121u8, 138u8, 9u8, 196u8, 101u8, 218u8, 149u8, + 146u8, 20u8, 96u8, 206u8, 251u8, 56u8, 71u8, 64u8, 36u8, 152u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { version: data.0 } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.version), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(),) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for Initialized { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&Initialized> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &Initialized) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `OwnershipTransferred(address,address)` and selector `0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0`. +```solidity +event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct OwnershipTransferred { + #[allow(missing_docs)] + pub previousOwner: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub newOwner: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for OwnershipTransferred { + type DataTuple<'a> = (); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "OwnershipTransferred(address,address)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 139u8, 224u8, 7u8, 156u8, 83u8, 22u8, 89u8, 20u8, 19u8, 68u8, 205u8, + 31u8, 208u8, 164u8, 242u8, 132u8, 25u8, 73u8, 127u8, 151u8, 34u8, 163u8, + 218u8, 175u8, 227u8, 180u8, 24u8, 111u8, 107u8, 100u8, 87u8, 224u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + previousOwner: topics.1, + newOwner: topics.2, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + () + } + #[inline] + fn topics(&self) -> ::RustType { + ( + Self::SIGNATURE_HASH.into(), + self.previousOwner.clone(), + self.newOwner.clone(), + ) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.previousOwner, + ); + out[2usize] = ::encode_topic( + &self.newOwner, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for OwnershipTransferred { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&OwnershipTransferred> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &OwnershipTransferred) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + /**Constructor`. +```solidity +constructor(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct constructorCall {} + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: constructorCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for constructorCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolConstructor for constructorCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `create(uint32,bytes32,bytes)` and selector `0x82ecf2f6`. +```solidity +function create(GameType _gameType, Claim _rootClaim, bytes memory _extraData) external payable returns (address proxy_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct createCall { + #[allow(missing_docs)] + pub _gameType: ::RustType, + #[allow(missing_docs)] + pub _rootClaim: ::RustType, + #[allow(missing_docs)] + pub _extraData: alloy::sol_types::private::Bytes, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`create(uint32,bytes32,bytes)`](createCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct createReturn { + #[allow(missing_docs)] + pub proxy_: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + GameType, + Claim, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ::RustType, + alloy::sol_types::private::Bytes, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: createCall) -> Self { + (value._gameType, value._rootClaim, value._extraData) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for createCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _gameType: tuple.0, + _rootClaim: tuple.1, + _extraData: tuple.2, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: createReturn) -> Self { + (value.proxy_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for createReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { proxy_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for createCall { + type Parameters<'a> = (GameType, Claim, alloy::sol_types::sol_data::Bytes); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "create(uint32,bytes32,bytes)"; + const SELECTOR: [u8; 4] = [130u8, 236u8, 242u8, 246u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize(&self._gameType), + ::tokenize(&self._rootClaim), + ::tokenize( + &self._extraData, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: createReturn = r.into(); + r.proxy_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: createReturn = r.into(); + r.proxy_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `createWithInitData(uint32,bytes32,bytes,bytes)` and selector `0x1011f377`. +```solidity +function createWithInitData(GameType _gameType, Claim _rootClaim, bytes memory _extraData, bytes memory _initData) external payable returns (address proxy_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct createWithInitDataCall { + #[allow(missing_docs)] + pub _gameType: ::RustType, + #[allow(missing_docs)] + pub _rootClaim: ::RustType, + #[allow(missing_docs)] + pub _extraData: alloy::sol_types::private::Bytes, + #[allow(missing_docs)] + pub _initData: alloy::sol_types::private::Bytes, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`createWithInitData(uint32,bytes32,bytes,bytes)`](createWithInitDataCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct createWithInitDataReturn { + #[allow(missing_docs)] + pub proxy_: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + GameType, + Claim, + alloy::sol_types::sol_data::Bytes, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ::RustType, + alloy::sol_types::private::Bytes, + alloy::sol_types::private::Bytes, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: createWithInitDataCall) -> Self { + ( + value._gameType, + value._rootClaim, + value._extraData, + value._initData, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for createWithInitDataCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _gameType: tuple.0, + _rootClaim: tuple.1, + _extraData: tuple.2, + _initData: tuple.3, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: createWithInitDataReturn) -> Self { + (value.proxy_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for createWithInitDataReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { proxy_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for createWithInitDataCall { + type Parameters<'a> = ( + GameType, + Claim, + alloy::sol_types::sol_data::Bytes, + alloy::sol_types::sol_data::Bytes, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "createWithInitData(uint32,bytes32,bytes,bytes)"; + const SELECTOR: [u8; 4] = [16u8, 17u8, 243u8, 119u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize(&self._gameType), + ::tokenize(&self._rootClaim), + ::tokenize( + &self._extraData, + ), + ::tokenize( + &self._initData, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: createWithInitDataReturn = r.into(); + r.proxy_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: createWithInitDataReturn = r.into(); + r.proxy_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `findLatestGames(uint32,uint256,uint256)` and selector `0x254bd683`. +```solidity +function findLatestGames(GameType _gameType, uint256 _start, uint256 _n) external view returns (GameSearchResult[] memory games_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct findLatestGamesCall { + #[allow(missing_docs)] + pub _gameType: ::RustType, + #[allow(missing_docs)] + pub _start: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _n: alloy::sol_types::private::primitives::aliases::U256, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`findLatestGames(uint32,uint256,uint256)`](findLatestGamesCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct findLatestGamesReturn { + #[allow(missing_docs)] + pub games_: alloy::sol_types::private::Vec< + ::RustType, + >, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + GameType, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: findLatestGamesCall) -> Self { + (value._gameType, value._start, value._n) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for findLatestGamesCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _gameType: tuple.0, + _start: tuple.1, + _n: tuple.2, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Array, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Vec< + ::RustType, + >, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: findLatestGamesReturn) -> Self { + (value.games_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for findLatestGamesReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { games_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for findLatestGamesCall { + type Parameters<'a> = ( + GameType, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Vec< + ::RustType, + >; + type ReturnTuple<'a> = ( + alloy::sol_types::sol_data::Array, + ); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "findLatestGames(uint32,uint256,uint256)"; + const SELECTOR: [u8; 4] = [37u8, 75u8, 214u8, 131u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize(&self._gameType), + as alloy_sol_types::SolType>::tokenize(&self._start), + as alloy_sol_types::SolType>::tokenize(&self._n), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: findLatestGamesReturn = r.into(); + r.games_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: findLatestGamesReturn = r.into(); + r.games_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `gameArgs(uint32)` and selector `0x74cc86ac`. +```solidity +function gameArgs(GameType) external view returns (bytes memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct gameArgsCall(pub ::RustType); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`gameArgs(uint32)`](gameArgsCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct gameArgsReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Bytes, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (GameType,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: gameArgsCall) -> Self { + (value.0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for gameArgsCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self(tuple.0) + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bytes,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Bytes,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: gameArgsReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for gameArgsReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for gameArgsCall { + type Parameters<'a> = (GameType,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Bytes; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bytes,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "gameArgs(uint32)"; + const SELECTOR: [u8; 4] = [116u8, 204u8, 134u8, 172u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + (::tokenize(&self.0),) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: gameArgsReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: gameArgsReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `gameAtIndex(uint256)` and selector `0xbb8aa1fc`. +```solidity +function gameAtIndex(uint256 _index) external view returns (GameType gameType_, Timestamp timestamp_, address proxy_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct gameAtIndexCall { + #[allow(missing_docs)] + pub _index: alloy::sol_types::private::primitives::aliases::U256, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`gameAtIndex(uint256)`](gameAtIndexCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct gameAtIndexReturn { + #[allow(missing_docs)] + pub gameType_: ::RustType, + #[allow(missing_docs)] + pub timestamp_: ::RustType, + #[allow(missing_docs)] + pub proxy_: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: gameAtIndexCall) -> Self { + (value._index,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for gameAtIndexCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _index: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + GameType, + Timestamp, + alloy::sol_types::sol_data::Address, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ::RustType, + alloy::sol_types::private::Address, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: gameAtIndexReturn) -> Self { + (value.gameType_, value.timestamp_, value.proxy_) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for gameAtIndexReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + gameType_: tuple.0, + timestamp_: tuple.1, + proxy_: tuple.2, + } + } + } + } + impl gameAtIndexReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + ( + ::tokenize(&self.gameType_), + ::tokenize(&self.timestamp_), + ::tokenize( + &self.proxy_, + ), + ) + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for gameAtIndexCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = gameAtIndexReturn; + type ReturnTuple<'a> = ( + GameType, + Timestamp, + alloy::sol_types::sol_data::Address, + ); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "gameAtIndex(uint256)"; + const SELECTOR: [u8; 4] = [187u8, 138u8, 161u8, 252u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._index), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + gameAtIndexReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `gameCount()` and selector `0x4d1975b4`. +```solidity +function gameCount() external view returns (uint256 gameCount_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct gameCountCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`gameCount()`](gameCountCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct gameCountReturn { + #[allow(missing_docs)] + pub gameCount_: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: gameCountCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for gameCountCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: gameCountReturn) -> Self { + (value.gameCount_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for gameCountReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { gameCount_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for gameCountCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "gameCount()"; + const SELECTOR: [u8; 4] = [77u8, 25u8, 117u8, 180u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: gameCountReturn = r.into(); + r.gameCount_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: gameCountReturn = r.into(); + r.gameCount_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `gameImpls(uint32)` and selector `0x1b685b9e`. +```solidity +function gameImpls(GameType) external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct gameImplsCall(pub ::RustType); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`gameImpls(uint32)`](gameImplsCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct gameImplsReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (GameType,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: gameImplsCall) -> Self { + (value.0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for gameImplsCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self(tuple.0) + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: gameImplsReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for gameImplsReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for gameImplsCall { + type Parameters<'a> = (GameType,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "gameImpls(uint32)"; + const SELECTOR: [u8; 4] = [27u8, 104u8, 91u8, 158u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + (::tokenize(&self.0),) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: gameImplsReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: gameImplsReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `games(uint32,bytes32,bytes)` and selector `0x5f0150cb`. +```solidity +function games(GameType _gameType, Claim _rootClaim, bytes memory _extraData) external view returns (address proxy_, Timestamp timestamp_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct gamesCall { + #[allow(missing_docs)] + pub _gameType: ::RustType, + #[allow(missing_docs)] + pub _rootClaim: ::RustType, + #[allow(missing_docs)] + pub _extraData: alloy::sol_types::private::Bytes, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`games(uint32,bytes32,bytes)`](gamesCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct gamesReturn { + #[allow(missing_docs)] + pub proxy_: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub timestamp_: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + GameType, + Claim, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ::RustType, + alloy::sol_types::private::Bytes, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: gamesCall) -> Self { + (value._gameType, value._rootClaim, value._extraData) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for gamesCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _gameType: tuple.0, + _rootClaim: tuple.1, + _extraData: tuple.2, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + Timestamp, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: gamesReturn) -> Self { + (value.proxy_, value.timestamp_) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for gamesReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + proxy_: tuple.0, + timestamp_: tuple.1, + } + } + } + } + impl gamesReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + ( + ::tokenize( + &self.proxy_, + ), + ::tokenize(&self.timestamp_), + ) + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for gamesCall { + type Parameters<'a> = (GameType, Claim, alloy::sol_types::sol_data::Bytes); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = gamesReturn; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address, Timestamp); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "games(uint32,bytes32,bytes)"; + const SELECTOR: [u8; 4] = [95u8, 1u8, 80u8, 203u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize(&self._gameType), + ::tokenize(&self._rootClaim), + ::tokenize( + &self._extraData, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + gamesReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `getGameUUID(uint32,bytes32,bytes)` and selector `0x96cd9720`. +```solidity +function getGameUUID(GameType _gameType, Claim _rootClaim, bytes memory _extraData) external pure returns (Hash uuid_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getGameUUIDCall { + #[allow(missing_docs)] + pub _gameType: ::RustType, + #[allow(missing_docs)] + pub _rootClaim: ::RustType, + #[allow(missing_docs)] + pub _extraData: alloy::sol_types::private::Bytes, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`getGameUUID(uint32,bytes32,bytes)`](getGameUUIDCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getGameUUIDReturn { + #[allow(missing_docs)] + pub uuid_: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + GameType, + Claim, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ::RustType, + alloy::sol_types::private::Bytes, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: getGameUUIDCall) -> Self { + (value._gameType, value._rootClaim, value._extraData) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for getGameUUIDCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _gameType: tuple.0, + _rootClaim: tuple.1, + _extraData: tuple.2, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Hash,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: getGameUUIDReturn) -> Self { + (value.uuid_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for getGameUUIDReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { uuid_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for getGameUUIDCall { + type Parameters<'a> = (GameType, Claim, alloy::sol_types::sol_data::Bytes); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (Hash,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "getGameUUID(uint32,bytes32,bytes)"; + const SELECTOR: [u8; 4] = [150u8, 205u8, 151u8, 32u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize(&self._gameType), + ::tokenize(&self._rootClaim), + ::tokenize( + &self._extraData, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: getGameUUIDReturn = r.into(); + r.uuid_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: getGameUUIDReturn = r.into(); + r.uuid_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `initBonds(uint32)` and selector `0x6593dc6e`. +```solidity +function initBonds(GameType) external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct initBondsCall(pub ::RustType); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`initBonds(uint32)`](initBondsCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct initBondsReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (GameType,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: initBondsCall) -> Self { + (value.0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for initBondsCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self(tuple.0) + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: initBondsReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for initBondsReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for initBondsCall { + type Parameters<'a> = (GameType,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "initBonds(uint32)"; + const SELECTOR: [u8; 4] = [101u8, 147u8, 220u8, 110u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + (::tokenize(&self.0),) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: initBondsReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: initBondsReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `initVersion()` and selector `0x38d38c97`. +```solidity +function initVersion() external view returns (uint8); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct initVersionCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`initVersion()`](initVersionCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct initVersionReturn { + #[allow(missing_docs)] + pub _0: u8, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: initVersionCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for initVersionCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<8>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u8,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: initVersionReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for initVersionReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for initVersionCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u8; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<8>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "initVersion()"; + const SELECTOR: [u8; 4] = [56u8, 211u8, 140u8, 151u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: initVersionReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: initVersionReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `initialize(address)` and selector `0xc4d66de8`. +```solidity +function initialize(address _owner) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct initializeCall { + #[allow(missing_docs)] + pub _owner: alloy::sol_types::private::Address, + } + ///Container type for the return parameters of the [`initialize(address)`](initializeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct initializeReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: initializeCall) -> Self { + (value._owner,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for initializeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _owner: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: initializeReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for initializeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl initializeReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for initializeCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = initializeReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "initialize(address)"; + const SELECTOR: [u8; 4] = [196u8, 214u8, 109u8, 232u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._owner, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + initializeReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `owner()` and selector `0x8da5cb5b`. +```solidity +function owner() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ownerCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`owner()`](ownerCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ownerReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ownerCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ownerCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ownerReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ownerReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for ownerCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "owner()"; + const SELECTOR: [u8; 4] = [141u8, 165u8, 203u8, 91u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: ownerReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: ownerReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `proxyAdmin()` and selector `0x3e47158c`. +```solidity +function proxyAdmin() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct proxyAdminCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`proxyAdmin()`](proxyAdminCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct proxyAdminReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: proxyAdminCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for proxyAdminCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: proxyAdminReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for proxyAdminReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for proxyAdminCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "proxyAdmin()"; + const SELECTOR: [u8; 4] = [62u8, 71u8, 21u8, 140u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: proxyAdminReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: proxyAdminReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `proxyAdminOwner()` and selector `0xdad544e0`. +```solidity +function proxyAdminOwner() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct proxyAdminOwnerCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`proxyAdminOwner()`](proxyAdminOwnerCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct proxyAdminOwnerReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: proxyAdminOwnerCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for proxyAdminOwnerCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: proxyAdminOwnerReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for proxyAdminOwnerReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for proxyAdminOwnerCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "proxyAdminOwner()"; + const SELECTOR: [u8; 4] = [218u8, 213u8, 68u8, 224u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: proxyAdminOwnerReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: proxyAdminOwnerReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `renounceOwnership()` and selector `0x715018a6`. +```solidity +function renounceOwnership() external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct renounceOwnershipCall; + ///Container type for the return parameters of the [`renounceOwnership()`](renounceOwnershipCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct renounceOwnershipReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: renounceOwnershipCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for renounceOwnershipCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: renounceOwnershipReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for renounceOwnershipReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl renounceOwnershipReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for renounceOwnershipCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = renounceOwnershipReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "renounceOwnership()"; + const SELECTOR: [u8; 4] = [113u8, 80u8, 24u8, 166u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + renounceOwnershipReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `setImplementation(uint32,address)` and selector `0x14f6b1a3`. +```solidity +function setImplementation(GameType _gameType, address _impl) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setImplementation_0Call { + #[allow(missing_docs)] + pub _gameType: ::RustType, + #[allow(missing_docs)] + pub _impl: alloy::sol_types::private::Address, + } + ///Container type for the return parameters of the [`setImplementation(uint32,address)`](setImplementation_0Call) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setImplementation_0Return {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + GameType, + alloy::sol_types::sol_data::Address, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + alloy::sol_types::private::Address, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: setImplementation_0Call) -> Self { + (value._gameType, value._impl) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for setImplementation_0Call { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _gameType: tuple.0, + _impl: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: setImplementation_0Return) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for setImplementation_0Return { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl setImplementation_0Return { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for setImplementation_0Call { + type Parameters<'a> = (GameType, alloy::sol_types::sol_data::Address); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = setImplementation_0Return; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "setImplementation(uint32,address)"; + const SELECTOR: [u8; 4] = [20u8, 246u8, 177u8, 163u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize(&self._gameType), + ::tokenize( + &self._impl, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + setImplementation_0Return::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `setImplementation(uint32,address,bytes)` and selector `0xb1070957`. +```solidity +function setImplementation(GameType _gameType, address _impl, bytes memory _args) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setImplementation_1Call { + #[allow(missing_docs)] + pub _gameType: ::RustType, + #[allow(missing_docs)] + pub _impl: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _args: alloy::sol_types::private::Bytes, + } + ///Container type for the return parameters of the [`setImplementation(uint32,address,bytes)`](setImplementation_1Call) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setImplementation_1Return {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + GameType, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + alloy::sol_types::private::Address, + alloy::sol_types::private::Bytes, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: setImplementation_1Call) -> Self { + (value._gameType, value._impl, value._args) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for setImplementation_1Call { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _gameType: tuple.0, + _impl: tuple.1, + _args: tuple.2, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: setImplementation_1Return) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for setImplementation_1Return { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl setImplementation_1Return { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for setImplementation_1Call { + type Parameters<'a> = ( + GameType, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Bytes, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = setImplementation_1Return; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "setImplementation(uint32,address,bytes)"; + const SELECTOR: [u8; 4] = [177u8, 7u8, 9u8, 87u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize(&self._gameType), + ::tokenize( + &self._impl, + ), + ::tokenize( + &self._args, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + setImplementation_1Return::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `setInitBond(uint32,uint256)` and selector `0x1e334240`. +```solidity +function setInitBond(GameType _gameType, uint256 _initBond) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setInitBondCall { + #[allow(missing_docs)] + pub _gameType: ::RustType, + #[allow(missing_docs)] + pub _initBond: alloy::sol_types::private::primitives::aliases::U256, + } + ///Container type for the return parameters of the [`setInitBond(uint32,uint256)`](setInitBondCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setInitBondReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + GameType, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: setInitBondCall) -> Self { + (value._gameType, value._initBond) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for setInitBondCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _gameType: tuple.0, + _initBond: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: setInitBondReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for setInitBondReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl setInitBondReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for setInitBondCall { + type Parameters<'a> = (GameType, alloy::sol_types::sol_data::Uint<256>); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = setInitBondReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "setInitBond(uint32,uint256)"; + const SELECTOR: [u8; 4] = [30u8, 51u8, 66u8, 64u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize(&self._gameType), + as alloy_sol_types::SolType>::tokenize(&self._initBond), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + setInitBondReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `transferOwnership(address)` and selector `0xf2fde38b`. +```solidity +function transferOwnership(address newOwner) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct transferOwnershipCall { + #[allow(missing_docs)] + pub newOwner: alloy::sol_types::private::Address, + } + ///Container type for the return parameters of the [`transferOwnership(address)`](transferOwnershipCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct transferOwnershipReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: transferOwnershipCall) -> Self { + (value.newOwner,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for transferOwnershipCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { newOwner: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: transferOwnershipReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for transferOwnershipReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl transferOwnershipReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for transferOwnershipCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = transferOwnershipReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "transferOwnership(address)"; + const SELECTOR: [u8; 4] = [242u8, 253u8, 227u8, 139u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.newOwner, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + transferOwnershipReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `version()` and selector `0x54fd4d50`. +```solidity +function version() external view returns (string memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`version()`](versionCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for versionCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::String; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "version()"; + const SELECTOR: [u8; 4] = [84u8, 253u8, 77u8, 80u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + } + }; + ///Container for all the [`DisputeGameFactory`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum DisputeGameFactoryCalls { + #[allow(missing_docs)] + create(createCall), + #[allow(missing_docs)] + createWithInitData(createWithInitDataCall), + #[allow(missing_docs)] + findLatestGames(findLatestGamesCall), + #[allow(missing_docs)] + gameArgs(gameArgsCall), + #[allow(missing_docs)] + gameAtIndex(gameAtIndexCall), + #[allow(missing_docs)] + gameCount(gameCountCall), + #[allow(missing_docs)] + gameImpls(gameImplsCall), + #[allow(missing_docs)] + games(gamesCall), + #[allow(missing_docs)] + getGameUUID(getGameUUIDCall), + #[allow(missing_docs)] + initBonds(initBondsCall), + #[allow(missing_docs)] + initVersion(initVersionCall), + #[allow(missing_docs)] + initialize(initializeCall), + #[allow(missing_docs)] + owner(ownerCall), + #[allow(missing_docs)] + proxyAdmin(proxyAdminCall), + #[allow(missing_docs)] + proxyAdminOwner(proxyAdminOwnerCall), + #[allow(missing_docs)] + renounceOwnership(renounceOwnershipCall), + #[allow(missing_docs)] + setImplementation_0(setImplementation_0Call), + #[allow(missing_docs)] + setImplementation_1(setImplementation_1Call), + #[allow(missing_docs)] + setInitBond(setInitBondCall), + #[allow(missing_docs)] + transferOwnership(transferOwnershipCall), + #[allow(missing_docs)] + version(versionCall), + } + impl DisputeGameFactoryCalls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [16u8, 17u8, 243u8, 119u8], + [20u8, 246u8, 177u8, 163u8], + [27u8, 104u8, 91u8, 158u8], + [30u8, 51u8, 66u8, 64u8], + [37u8, 75u8, 214u8, 131u8], + [56u8, 211u8, 140u8, 151u8], + [62u8, 71u8, 21u8, 140u8], + [77u8, 25u8, 117u8, 180u8], + [84u8, 253u8, 77u8, 80u8], + [95u8, 1u8, 80u8, 203u8], + [101u8, 147u8, 220u8, 110u8], + [113u8, 80u8, 24u8, 166u8], + [116u8, 204u8, 134u8, 172u8], + [130u8, 236u8, 242u8, 246u8], + [141u8, 165u8, 203u8, 91u8], + [150u8, 205u8, 151u8, 32u8], + [177u8, 7u8, 9u8, 87u8], + [187u8, 138u8, 161u8, 252u8], + [196u8, 214u8, 109u8, 232u8], + [218u8, 213u8, 68u8, 224u8], + [242u8, 253u8, 227u8, 139u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(createWithInitData), + ::core::stringify!(setImplementation_0), + ::core::stringify!(gameImpls), + ::core::stringify!(setInitBond), + ::core::stringify!(findLatestGames), + ::core::stringify!(initVersion), + ::core::stringify!(proxyAdmin), + ::core::stringify!(gameCount), + ::core::stringify!(version), + ::core::stringify!(games), + ::core::stringify!(initBonds), + ::core::stringify!(renounceOwnership), + ::core::stringify!(gameArgs), + ::core::stringify!(create), + ::core::stringify!(owner), + ::core::stringify!(getGameUUID), + ::core::stringify!(setImplementation_1), + ::core::stringify!(gameAtIndex), + ::core::stringify!(initialize), + ::core::stringify!(proxyAdminOwner), + ::core::stringify!(transferOwnership), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for DisputeGameFactoryCalls { + const NAME: &'static str = "DisputeGameFactoryCalls"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 21usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::create(_) => ::SELECTOR, + Self::createWithInitData(_) => { + ::SELECTOR + } + Self::findLatestGames(_) => { + ::SELECTOR + } + Self::gameArgs(_) => ::SELECTOR, + Self::gameAtIndex(_) => { + ::SELECTOR + } + Self::gameCount(_) => { + ::SELECTOR + } + Self::gameImpls(_) => { + ::SELECTOR + } + Self::games(_) => ::SELECTOR, + Self::getGameUUID(_) => { + ::SELECTOR + } + Self::initBonds(_) => { + ::SELECTOR + } + Self::initVersion(_) => { + ::SELECTOR + } + Self::initialize(_) => { + ::SELECTOR + } + Self::owner(_) => ::SELECTOR, + Self::proxyAdmin(_) => { + ::SELECTOR + } + Self::proxyAdminOwner(_) => { + ::SELECTOR + } + Self::renounceOwnership(_) => { + ::SELECTOR + } + Self::setImplementation_0(_) => { + ::SELECTOR + } + Self::setImplementation_1(_) => { + ::SELECTOR + } + Self::setInitBond(_) => { + ::SELECTOR + } + Self::transferOwnership(_) => { + ::SELECTOR + } + Self::version(_) => ::SELECTOR, + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn createWithInitData( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(DisputeGameFactoryCalls::createWithInitData) + } + createWithInitData + }, + { + fn setImplementation_0( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(DisputeGameFactoryCalls::setImplementation_0) + } + setImplementation_0 + }, + { + fn gameImpls( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(DisputeGameFactoryCalls::gameImpls) + } + gameImpls + }, + { + fn setInitBond( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(DisputeGameFactoryCalls::setInitBond) + } + setInitBond + }, + { + fn findLatestGames( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(DisputeGameFactoryCalls::findLatestGames) + } + findLatestGames + }, + { + fn initVersion( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(DisputeGameFactoryCalls::initVersion) + } + initVersion + }, + { + fn proxyAdmin( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(DisputeGameFactoryCalls::proxyAdmin) + } + proxyAdmin + }, + { + fn gameCount( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(DisputeGameFactoryCalls::gameCount) + } + gameCount + }, + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(DisputeGameFactoryCalls::version) + } + version + }, + { + fn games( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(DisputeGameFactoryCalls::games) + } + games + }, + { + fn initBonds( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(DisputeGameFactoryCalls::initBonds) + } + initBonds + }, + { + fn renounceOwnership( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(DisputeGameFactoryCalls::renounceOwnership) + } + renounceOwnership + }, + { + fn gameArgs( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(DisputeGameFactoryCalls::gameArgs) + } + gameArgs + }, + { + fn create( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(DisputeGameFactoryCalls::create) + } + create + }, + { + fn owner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(DisputeGameFactoryCalls::owner) + } + owner + }, + { + fn getGameUUID( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(DisputeGameFactoryCalls::getGameUUID) + } + getGameUUID + }, + { + fn setImplementation_1( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(DisputeGameFactoryCalls::setImplementation_1) + } + setImplementation_1 + }, + { + fn gameAtIndex( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(DisputeGameFactoryCalls::gameAtIndex) + } + gameAtIndex + }, + { + fn initialize( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(DisputeGameFactoryCalls::initialize) + } + initialize + }, + { + fn proxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(DisputeGameFactoryCalls::proxyAdminOwner) + } + proxyAdminOwner + }, + { + fn transferOwnership( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(DisputeGameFactoryCalls::transferOwnership) + } + transferOwnership + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn createWithInitData( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DisputeGameFactoryCalls::createWithInitData) + } + createWithInitData + }, + { + fn setImplementation_0( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DisputeGameFactoryCalls::setImplementation_0) + } + setImplementation_0 + }, + { + fn gameImpls( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DisputeGameFactoryCalls::gameImpls) + } + gameImpls + }, + { + fn setInitBond( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DisputeGameFactoryCalls::setInitBond) + } + setInitBond + }, + { + fn findLatestGames( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DisputeGameFactoryCalls::findLatestGames) + } + findLatestGames + }, + { + fn initVersion( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DisputeGameFactoryCalls::initVersion) + } + initVersion + }, + { + fn proxyAdmin( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DisputeGameFactoryCalls::proxyAdmin) + } + proxyAdmin + }, + { + fn gameCount( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DisputeGameFactoryCalls::gameCount) + } + gameCount + }, + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DisputeGameFactoryCalls::version) + } + version + }, + { + fn games( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DisputeGameFactoryCalls::games) + } + games + }, + { + fn initBonds( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DisputeGameFactoryCalls::initBonds) + } + initBonds + }, + { + fn renounceOwnership( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DisputeGameFactoryCalls::renounceOwnership) + } + renounceOwnership + }, + { + fn gameArgs( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DisputeGameFactoryCalls::gameArgs) + } + gameArgs + }, + { + fn create( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DisputeGameFactoryCalls::create) + } + create + }, + { + fn owner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DisputeGameFactoryCalls::owner) + } + owner + }, + { + fn getGameUUID( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DisputeGameFactoryCalls::getGameUUID) + } + getGameUUID + }, + { + fn setImplementation_1( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DisputeGameFactoryCalls::setImplementation_1) + } + setImplementation_1 + }, + { + fn gameAtIndex( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DisputeGameFactoryCalls::gameAtIndex) + } + gameAtIndex + }, + { + fn initialize( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DisputeGameFactoryCalls::initialize) + } + initialize + }, + { + fn proxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DisputeGameFactoryCalls::proxyAdminOwner) + } + proxyAdminOwner + }, + { + fn transferOwnership( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DisputeGameFactoryCalls::transferOwnership) + } + transferOwnership + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::create(inner) => { + ::abi_encoded_size(inner) + } + Self::createWithInitData(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::findLatestGames(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::gameArgs(inner) => { + ::abi_encoded_size(inner) + } + Self::gameAtIndex(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::gameCount(inner) => { + ::abi_encoded_size(inner) + } + Self::gameImpls(inner) => { + ::abi_encoded_size(inner) + } + Self::games(inner) => { + ::abi_encoded_size(inner) + } + Self::getGameUUID(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::initBonds(inner) => { + ::abi_encoded_size(inner) + } + Self::initVersion(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::initialize(inner) => { + ::abi_encoded_size(inner) + } + Self::owner(inner) => { + ::abi_encoded_size(inner) + } + Self::proxyAdmin(inner) => { + ::abi_encoded_size(inner) + } + Self::proxyAdminOwner(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::renounceOwnership(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::setImplementation_0(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::setImplementation_1(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::setInitBond(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::transferOwnership(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::version(inner) => { + ::abi_encoded_size(inner) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::create(inner) => { + ::abi_encode_raw(inner, out) + } + Self::createWithInitData(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::findLatestGames(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::gameArgs(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::gameAtIndex(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::gameCount(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::gameImpls(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::games(inner) => { + ::abi_encode_raw(inner, out) + } + Self::getGameUUID(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::initBonds(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::initVersion(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::initialize(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::owner(inner) => { + ::abi_encode_raw(inner, out) + } + Self::proxyAdmin(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::proxyAdminOwner(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::renounceOwnership(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::setImplementation_0(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::setImplementation_1(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::setInitBond(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::transferOwnership(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::version(inner) => { + ::abi_encode_raw(inner, out) + } + } + } + } + ///Container for all the [`DisputeGameFactory`](self) custom errors. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum DisputeGameFactoryErrors { + #[allow(missing_docs)] + GameAlreadyExists(GameAlreadyExists), + #[allow(missing_docs)] + IncorrectBondAmount(IncorrectBondAmount), + #[allow(missing_docs)] + NoImplementation(NoImplementation), + #[allow(missing_docs)] + ProxyAdminOwnedBase_NotProxyAdmin(ProxyAdminOwnedBase_NotProxyAdmin), + #[allow(missing_docs)] + ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner( + ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner, + ), + #[allow(missing_docs)] + ProxyAdminOwnedBase_NotProxyAdminOwner(ProxyAdminOwnedBase_NotProxyAdminOwner), + #[allow(missing_docs)] + ProxyAdminOwnedBase_NotResolvedDelegateProxy( + ProxyAdminOwnedBase_NotResolvedDelegateProxy, + ), + #[allow(missing_docs)] + ProxyAdminOwnedBase_NotSharedProxyAdminOwner( + ProxyAdminOwnedBase_NotSharedProxyAdminOwner, + ), + #[allow(missing_docs)] + ProxyAdminOwnedBase_ProxyAdminNotFound(ProxyAdminOwnedBase_ProxyAdminNotFound), + #[allow(missing_docs)] + ReinitializableBase_ZeroInitVersion(ReinitializableBase_ZeroInitVersion), + } + impl DisputeGameFactoryErrors { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [1u8, 79u8, 111u8, 229u8], + [3u8, 28u8, 109u8, 228u8], + [7u8, 92u8, 67u8, 20u8], + [51u8, 33u8, 68u8, 219u8], + [84u8, 228u8, 51u8, 205u8], + [127u8, 18u8, 198u8, 75u8], + [134u8, 32u8, 170u8, 25u8], + [155u8, 1u8, 175u8, 237u8], + [196u8, 5u8, 10u8, 38u8], + [232u8, 24u8, 220u8, 195u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(GameAlreadyExists), + ::core::stringify!(NoImplementation), + ::core::stringify!(ProxyAdminOwnedBase_NotSharedProxyAdminOwner), + ::core::stringify!(ProxyAdminOwnedBase_ProxyAdminNotFound), + ::core::stringify!(ProxyAdminOwnedBase_NotResolvedDelegateProxy), + ::core::stringify!(ProxyAdminOwnedBase_NotProxyAdminOwner), + ::core::stringify!(IncorrectBondAmount), + ::core::stringify!(ReinitializableBase_ZeroInitVersion), + ::core::stringify!(ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner), + ::core::stringify!(ProxyAdminOwnedBase_NotProxyAdmin), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for DisputeGameFactoryErrors { + const NAME: &'static str = "DisputeGameFactoryErrors"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 10usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::GameAlreadyExists(_) => { + ::SELECTOR + } + Self::IncorrectBondAmount(_) => { + ::SELECTOR + } + Self::NoImplementation(_) => { + ::SELECTOR + } + Self::ProxyAdminOwnedBase_NotProxyAdmin(_) => { + ::SELECTOR + } + Self::ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner(_) => { + ::SELECTOR + } + Self::ProxyAdminOwnedBase_NotProxyAdminOwner(_) => { + ::SELECTOR + } + Self::ProxyAdminOwnedBase_NotResolvedDelegateProxy(_) => { + ::SELECTOR + } + Self::ProxyAdminOwnedBase_NotSharedProxyAdminOwner(_) => { + ::SELECTOR + } + Self::ProxyAdminOwnedBase_ProxyAdminNotFound(_) => { + ::SELECTOR + } + Self::ReinitializableBase_ZeroInitVersion(_) => { + ::SELECTOR + } + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn GameAlreadyExists( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(DisputeGameFactoryErrors::GameAlreadyExists) + } + GameAlreadyExists + }, + { + fn NoImplementation( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(DisputeGameFactoryErrors::NoImplementation) + } + NoImplementation + }, + { + fn ProxyAdminOwnedBase_NotSharedProxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + DisputeGameFactoryErrors::ProxyAdminOwnedBase_NotSharedProxyAdminOwner, + ) + } + ProxyAdminOwnedBase_NotSharedProxyAdminOwner + }, + { + fn ProxyAdminOwnedBase_ProxyAdminNotFound( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + DisputeGameFactoryErrors::ProxyAdminOwnedBase_ProxyAdminNotFound, + ) + } + ProxyAdminOwnedBase_ProxyAdminNotFound + }, + { + fn ProxyAdminOwnedBase_NotResolvedDelegateProxy( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + DisputeGameFactoryErrors::ProxyAdminOwnedBase_NotResolvedDelegateProxy, + ) + } + ProxyAdminOwnedBase_NotResolvedDelegateProxy + }, + { + fn ProxyAdminOwnedBase_NotProxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + DisputeGameFactoryErrors::ProxyAdminOwnedBase_NotProxyAdminOwner, + ) + } + ProxyAdminOwnedBase_NotProxyAdminOwner + }, + { + fn IncorrectBondAmount( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(DisputeGameFactoryErrors::IncorrectBondAmount) + } + IncorrectBondAmount + }, + { + fn ReinitializableBase_ZeroInitVersion( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + DisputeGameFactoryErrors::ReinitializableBase_ZeroInitVersion, + ) + } + ReinitializableBase_ZeroInitVersion + }, + { + fn ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + DisputeGameFactoryErrors::ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner, + ) + } + ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner + }, + { + fn ProxyAdminOwnedBase_NotProxyAdmin( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + DisputeGameFactoryErrors::ProxyAdminOwnedBase_NotProxyAdmin, + ) + } + ProxyAdminOwnedBase_NotProxyAdmin + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn GameAlreadyExists( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DisputeGameFactoryErrors::GameAlreadyExists) + } + GameAlreadyExists + }, + { + fn NoImplementation( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DisputeGameFactoryErrors::NoImplementation) + } + NoImplementation + }, + { + fn ProxyAdminOwnedBase_NotSharedProxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + DisputeGameFactoryErrors::ProxyAdminOwnedBase_NotSharedProxyAdminOwner, + ) + } + ProxyAdminOwnedBase_NotSharedProxyAdminOwner + }, + { + fn ProxyAdminOwnedBase_ProxyAdminNotFound( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + DisputeGameFactoryErrors::ProxyAdminOwnedBase_ProxyAdminNotFound, + ) + } + ProxyAdminOwnedBase_ProxyAdminNotFound + }, + { + fn ProxyAdminOwnedBase_NotResolvedDelegateProxy( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + DisputeGameFactoryErrors::ProxyAdminOwnedBase_NotResolvedDelegateProxy, + ) + } + ProxyAdminOwnedBase_NotResolvedDelegateProxy + }, + { + fn ProxyAdminOwnedBase_NotProxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + DisputeGameFactoryErrors::ProxyAdminOwnedBase_NotProxyAdminOwner, + ) + } + ProxyAdminOwnedBase_NotProxyAdminOwner + }, + { + fn IncorrectBondAmount( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DisputeGameFactoryErrors::IncorrectBondAmount) + } + IncorrectBondAmount + }, + { + fn ReinitializableBase_ZeroInitVersion( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + DisputeGameFactoryErrors::ReinitializableBase_ZeroInitVersion, + ) + } + ReinitializableBase_ZeroInitVersion + }, + { + fn ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + DisputeGameFactoryErrors::ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner, + ) + } + ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner + }, + { + fn ProxyAdminOwnedBase_NotProxyAdmin( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + DisputeGameFactoryErrors::ProxyAdminOwnedBase_NotProxyAdmin, + ) + } + ProxyAdminOwnedBase_NotProxyAdmin + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::GameAlreadyExists(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::IncorrectBondAmount(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::NoImplementation(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ProxyAdminOwnedBase_NotProxyAdmin(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ProxyAdminOwnedBase_NotProxyAdminOwner(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ProxyAdminOwnedBase_NotResolvedDelegateProxy(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ProxyAdminOwnedBase_NotSharedProxyAdminOwner(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ProxyAdminOwnedBase_ProxyAdminNotFound(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ReinitializableBase_ZeroInitVersion(inner) => { + ::abi_encoded_size( + inner, + ) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::GameAlreadyExists(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::IncorrectBondAmount(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::NoImplementation(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ProxyAdminOwnedBase_NotProxyAdmin(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ProxyAdminOwnedBase_NotProxyAdminOwner(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ProxyAdminOwnedBase_NotResolvedDelegateProxy(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ProxyAdminOwnedBase_NotSharedProxyAdminOwner(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ProxyAdminOwnedBase_ProxyAdminNotFound(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ReinitializableBase_ZeroInitVersion(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + } + } + } + ///Container for all the [`DisputeGameFactory`](self) events. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum DisputeGameFactoryEvents { + #[allow(missing_docs)] + DisputeGameCreated(DisputeGameCreated), + #[allow(missing_docs)] + ImplementationArgsSet(ImplementationArgsSet), + #[allow(missing_docs)] + ImplementationSet(ImplementationSet), + #[allow(missing_docs)] + InitBondUpdated(InitBondUpdated), + #[allow(missing_docs)] + Initialized(Initialized), + #[allow(missing_docs)] + OwnershipTransferred(OwnershipTransferred), + } + impl DisputeGameFactoryEvents { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 32usize]] = &[ + [ + 91u8, 86u8, 94u8, 254u8, 130u8, 65u8, 29u8, 169u8, 136u8, 20u8, 243u8, + 86u8, 208u8, 231u8, 188u8, 184u8, 240u8, 33u8, 155u8, 141u8, 151u8, 3u8, + 7u8, 197u8, 175u8, 180u8, 166u8, 144u8, 58u8, 139u8, 46u8, 53u8, + ], + [ + 116u8, 214u8, 102u8, 92u8, 75u8, 38u8, 213u8, 89u8, 106u8, 90u8, 161u8, + 61u8, 48u8, 20u8, 224u8, 192u8, 106u8, 244u8, 211u8, 34u8, 7u8, 90u8, + 121u8, 127u8, 135u8, 176u8, 60u8, 212u8, 197u8, 188u8, 145u8, 202u8, + ], + [ + 127u8, 38u8, 184u8, 63u8, 249u8, 110u8, 31u8, 43u8, 106u8, 104u8, 47u8, + 19u8, 56u8, 82u8, 246u8, 121u8, 138u8, 9u8, 196u8, 101u8, 218u8, 149u8, + 146u8, 20u8, 96u8, 206u8, 251u8, 56u8, 71u8, 64u8, 36u8, 152u8, + ], + [ + 139u8, 224u8, 7u8, 156u8, 83u8, 22u8, 89u8, 20u8, 19u8, 68u8, 205u8, + 31u8, 208u8, 164u8, 242u8, 132u8, 25u8, 73u8, 127u8, 151u8, 34u8, 163u8, + 218u8, 175u8, 227u8, 180u8, 24u8, 111u8, 107u8, 100u8, 87u8, 224u8, + ], + [ + 164u8, 127u8, 205u8, 240u8, 117u8, 214u8, 128u8, 211u8, 129u8, 123u8, + 252u8, 167u8, 151u8, 59u8, 55u8, 62u8, 26u8, 95u8, 108u8, 252u8, 59u8, + 68u8, 71u8, 72u8, 41u8, 156u8, 194u8, 184u8, 61u8, 131u8, 72u8, 249u8, + ], + [ + 255u8, 81u8, 61u8, 128u8, 226u8, 199u8, 250u8, 72u8, 118u8, 8u8, 247u8, + 10u8, 97u8, 141u8, 251u8, 192u8, 207u8, 65u8, 86u8, 153u8, 220u8, 105u8, + 88u8, 140u8, 116u8, 126u8, 140u8, 113u8, 86u8, 108u8, 136u8, 222u8, + ], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(DisputeGameCreated), + ::core::stringify!(InitBondUpdated), + ::core::stringify!(Initialized), + ::core::stringify!(OwnershipTransferred), + ::core::stringify!(ImplementationArgsSet), + ::core::stringify!(ImplementationSet), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolEventInterface for DisputeGameFactoryEvents { + const NAME: &'static str = "DisputeGameFactoryEvents"; + const COUNT: usize = 6usize; + fn decode_raw_log( + topics: &[alloy_sol_types::Word], + data: &[u8], + ) -> alloy_sol_types::Result { + match topics.first().copied() { + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::DisputeGameCreated) + } + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::ImplementationArgsSet) + } + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::ImplementationSet) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::InitBondUpdated) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::Initialized) + } + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::OwnershipTransferred) + } + _ => { + alloy_sol_types::private::Err(alloy_sol_types::Error::InvalidLog { + name: ::NAME, + log: alloy_sol_types::private::Box::new( + alloy_sol_types::private::LogData::new_unchecked( + topics.to_vec(), + data.to_vec().into(), + ), + ), + }) + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for DisputeGameFactoryEvents { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + match self { + Self::DisputeGameCreated(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::ImplementationArgsSet(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::ImplementationSet(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::InitBondUpdated(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::Initialized(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::OwnershipTransferred(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + } + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + match self { + Self::DisputeGameCreated(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::ImplementationArgsSet(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::ImplementationSet(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::InitBondUpdated(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::Initialized(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::OwnershipTransferred(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`DisputeGameFactory`](self) contract instance. + +See the [wrapper's documentation](`DisputeGameFactoryInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> DisputeGameFactoryInstance { + DisputeGameFactoryInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + DisputeGameFactoryInstance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + DisputeGameFactoryInstance::::deploy_builder(__provider) + } + /**A [`DisputeGameFactory`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`DisputeGameFactory`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct DisputeGameFactoryInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for DisputeGameFactoryInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("DisputeGameFactoryInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > DisputeGameFactoryInstance { + /**Creates a new wrapper around an on-chain [`DisputeGameFactory`](self) contract instance. + +See the [wrapper's documentation](`DisputeGameFactoryInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl DisputeGameFactoryInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> DisputeGameFactoryInstance { + DisputeGameFactoryInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > DisputeGameFactoryInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`create`] function. + pub fn create( + &self, + _gameType: ::RustType, + _rootClaim: ::RustType, + _extraData: alloy::sol_types::private::Bytes, + ) -> alloy_contract::SolCallBuilder<&P, createCall, N> { + self.call_builder( + &createCall { + _gameType, + _rootClaim, + _extraData, + }, + ) + } + ///Creates a new call builder for the [`createWithInitData`] function. + pub fn createWithInitData( + &self, + _gameType: ::RustType, + _rootClaim: ::RustType, + _extraData: alloy::sol_types::private::Bytes, + _initData: alloy::sol_types::private::Bytes, + ) -> alloy_contract::SolCallBuilder<&P, createWithInitDataCall, N> { + self.call_builder( + &createWithInitDataCall { + _gameType, + _rootClaim, + _extraData, + _initData, + }, + ) + } + ///Creates a new call builder for the [`findLatestGames`] function. + pub fn findLatestGames( + &self, + _gameType: ::RustType, + _start: alloy::sol_types::private::primitives::aliases::U256, + _n: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, findLatestGamesCall, N> { + self.call_builder( + &findLatestGamesCall { + _gameType, + _start, + _n, + }, + ) + } + ///Creates a new call builder for the [`gameArgs`] function. + pub fn gameArgs( + &self, + _0: ::RustType, + ) -> alloy_contract::SolCallBuilder<&P, gameArgsCall, N> { + self.call_builder(&gameArgsCall(_0)) + } + ///Creates a new call builder for the [`gameAtIndex`] function. + pub fn gameAtIndex( + &self, + _index: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, gameAtIndexCall, N> { + self.call_builder(&gameAtIndexCall { _index }) + } + ///Creates a new call builder for the [`gameCount`] function. + pub fn gameCount(&self) -> alloy_contract::SolCallBuilder<&P, gameCountCall, N> { + self.call_builder(&gameCountCall) + } + ///Creates a new call builder for the [`gameImpls`] function. + pub fn gameImpls( + &self, + _0: ::RustType, + ) -> alloy_contract::SolCallBuilder<&P, gameImplsCall, N> { + self.call_builder(&gameImplsCall(_0)) + } + ///Creates a new call builder for the [`games`] function. + pub fn games( + &self, + _gameType: ::RustType, + _rootClaim: ::RustType, + _extraData: alloy::sol_types::private::Bytes, + ) -> alloy_contract::SolCallBuilder<&P, gamesCall, N> { + self.call_builder( + &gamesCall { + _gameType, + _rootClaim, + _extraData, + }, + ) + } + ///Creates a new call builder for the [`getGameUUID`] function. + pub fn getGameUUID( + &self, + _gameType: ::RustType, + _rootClaim: ::RustType, + _extraData: alloy::sol_types::private::Bytes, + ) -> alloy_contract::SolCallBuilder<&P, getGameUUIDCall, N> { + self.call_builder( + &getGameUUIDCall { + _gameType, + _rootClaim, + _extraData, + }, + ) + } + ///Creates a new call builder for the [`initBonds`] function. + pub fn initBonds( + &self, + _0: ::RustType, + ) -> alloy_contract::SolCallBuilder<&P, initBondsCall, N> { + self.call_builder(&initBondsCall(_0)) + } + ///Creates a new call builder for the [`initVersion`] function. + pub fn initVersion( + &self, + ) -> alloy_contract::SolCallBuilder<&P, initVersionCall, N> { + self.call_builder(&initVersionCall) + } + ///Creates a new call builder for the [`initialize`] function. + pub fn initialize( + &self, + _owner: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, initializeCall, N> { + self.call_builder(&initializeCall { _owner }) + } + ///Creates a new call builder for the [`owner`] function. + pub fn owner(&self) -> alloy_contract::SolCallBuilder<&P, ownerCall, N> { + self.call_builder(&ownerCall) + } + ///Creates a new call builder for the [`proxyAdmin`] function. + pub fn proxyAdmin( + &self, + ) -> alloy_contract::SolCallBuilder<&P, proxyAdminCall, N> { + self.call_builder(&proxyAdminCall) + } + ///Creates a new call builder for the [`proxyAdminOwner`] function. + pub fn proxyAdminOwner( + &self, + ) -> alloy_contract::SolCallBuilder<&P, proxyAdminOwnerCall, N> { + self.call_builder(&proxyAdminOwnerCall) + } + ///Creates a new call builder for the [`renounceOwnership`] function. + pub fn renounceOwnership( + &self, + ) -> alloy_contract::SolCallBuilder<&P, renounceOwnershipCall, N> { + self.call_builder(&renounceOwnershipCall) + } + ///Creates a new call builder for the [`setImplementation_0`] function. + pub fn setImplementation_0( + &self, + _gameType: ::RustType, + _impl: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, setImplementation_0Call, N> { + self.call_builder( + &setImplementation_0Call { + _gameType, + _impl, + }, + ) + } + ///Creates a new call builder for the [`setImplementation_1`] function. + pub fn setImplementation_1( + &self, + _gameType: ::RustType, + _impl: alloy::sol_types::private::Address, + _args: alloy::sol_types::private::Bytes, + ) -> alloy_contract::SolCallBuilder<&P, setImplementation_1Call, N> { + self.call_builder( + &setImplementation_1Call { + _gameType, + _impl, + _args, + }, + ) + } + ///Creates a new call builder for the [`setInitBond`] function. + pub fn setInitBond( + &self, + _gameType: ::RustType, + _initBond: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, setInitBondCall, N> { + self.call_builder( + &setInitBondCall { + _gameType, + _initBond, + }, + ) + } + ///Creates a new call builder for the [`transferOwnership`] function. + pub fn transferOwnership( + &self, + newOwner: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, transferOwnershipCall, N> { + self.call_builder(&transferOwnershipCall { newOwner }) + } + ///Creates a new call builder for the [`version`] function. + pub fn version(&self) -> alloy_contract::SolCallBuilder<&P, versionCall, N> { + self.call_builder(&versionCall) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > DisputeGameFactoryInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + ///Creates a new event filter for the [`DisputeGameCreated`] event. + pub fn DisputeGameCreated_filter( + &self, + ) -> alloy_contract::Event<&P, DisputeGameCreated, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`ImplementationArgsSet`] event. + pub fn ImplementationArgsSet_filter( + &self, + ) -> alloy_contract::Event<&P, ImplementationArgsSet, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`ImplementationSet`] event. + pub fn ImplementationSet_filter( + &self, + ) -> alloy_contract::Event<&P, ImplementationSet, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`InitBondUpdated`] event. + pub fn InitBondUpdated_filter( + &self, + ) -> alloy_contract::Event<&P, InitBondUpdated, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`Initialized`] event. + pub fn Initialized_filter(&self) -> alloy_contract::Event<&P, Initialized, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`OwnershipTransferred`] event. + pub fn OwnershipTransferred_filter( + &self, + ) -> alloy_contract::Event<&P, OwnershipTransferred, N> { + self.event_filter::() + } + } +} diff --git a/bindings/rust/src/dispute_monitor_helper.rs b/bindings/rust/src/dispute_monitor_helper.rs new file mode 100644 index 000000000..6c1aa2697 --- /dev/null +++ b/bindings/rust/src/dispute_monitor_helper.rs @@ -0,0 +1,1715 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface DisputeMonitorHelper { + type SearchDirection is uint8; + + error DisputeMonitorHelper_InvalidSearchRange(); + + function getUnresolvedGames(address _factory, uint256 _creationRangeStart, uint256 _creationRangeEnd) external view returns (address[] memory unresolvedGames_); + function isGameRegistered(address _factory, address _game) external view returns (bool isValid_); + function search(address _factory, uint256 _targetTimestamp, SearchDirection _direction) external view returns (uint256 index_); + function toRpcHexString(uint256 _value) external pure returns (string memory hexString_); +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "function", + "name": "getUnresolvedGames", + "inputs": [ + { + "name": "_factory", + "type": "address", + "internalType": "contract IDisputeGameFactory" + }, + { + "name": "_creationRangeStart", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_creationRangeEnd", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "unresolvedGames_", + "type": "address[]", + "internalType": "contract IDisputeGame[]" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "isGameRegistered", + "inputs": [ + { + "name": "_factory", + "type": "address", + "internalType": "contract IDisputeGameFactory" + }, + { + "name": "_game", + "type": "address", + "internalType": "contract IDisputeGame" + } + ], + "outputs": [ + { + "name": "isValid_", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "search", + "inputs": [ + { + "name": "_factory", + "type": "address", + "internalType": "contract IDisputeGameFactory" + }, + { + "name": "_targetTimestamp", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_direction", + "type": "uint8", + "internalType": "enum DisputeMonitorHelper.SearchDirection" + } + ], + "outputs": [ + { + "name": "index_", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "toRpcHexString", + "inputs": [ + { + "name": "_value", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "hexString_", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "pure" + }, + { + "type": "error", + "name": "DisputeMonitorHelper_InvalidSearchRange", + "inputs": [] + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod DisputeMonitorHelper { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x608060405234801561001057600080fd5b50610dd6806100206000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80633e7d773314610051578063c376d31f1461007a578063cb4e6ab11461009d578063cf8d0f75146100be575b600080fd5b61006461005f3660046108a7565b6100de565b604051610071919061093a565b60405180910390f35b61008d610088366004610972565b6100ef565b6040519015158152602001610071565b6100b06100ab3660046109ab565b610234565b604051908152602001610071565b6100d16100cc3660046109f1565b610482565b6040516100719190610a26565b60606100e9826107ef565b92915050565b6000806000808473ffffffffffffffffffffffffffffffffffffffff1663fa24f7436040518163ffffffff1660e01b8152600401600060405180830381865afa158015610140573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526101869190810190610ac8565b92509250925060008673ffffffffffffffffffffffffffffffffffffffff16635f0150cb8585856040518463ffffffff1660e01b81526004016101cb93929190610baf565b6040805180830381865afa1580156101e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061020b9190610bf5565b5073ffffffffffffffffffffffffffffffffffffffff9081169616959095149695505050505050565b6000808473ffffffffffffffffffffffffffffffffffffffff16634d1975b46040518163ffffffff1660e01b8152600401602060405180830381865afa158015610282573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102a69190610c2a565b9050806000036102d9577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff91505061047b565b6000806102e7600184610c72565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff93505b80821161047757600060026103228484610c72565b61032c9190610c89565b6103369084610cc4565b6040517fbb8aa1fc0000000000000000000000000000000000000000000000000000000081526004810182905290915060009073ffffffffffffffffffffffffffffffffffffffff8a169063bb8aa1fc90602401606060405180830381865afa1580156103a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103cb9190610cdc565b5091505060006103e28267ffffffffffffffff1690565b67ffffffffffffffff169050600088600181111561040257610402610d18565b03610447578881116104255782965082600161041e9190610cc4565b945061046f565b8260000361043557505050610477565b610440600184610c72565b935061046f565b888110610461578296508260000361043557505050610477565b61046c836001610cc4565b94505b50505061030d565b5050505b9392505050565b6060828210156104be576040517fb22d5a5c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff16634d1975b46040518163ffffffff1660e01b8152600401602060405180830381865afa158015610509573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061052d9190610c2a565b600003610549575060408051600081526020810190915261047b565b600061055785856001610234565b9050600061056786856000610234565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214806105b657507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81145b156105f15760005b6040519080825280602002602001820160405280156105e7578160200160208202803683370190505b509250505061047b565b818110156106005760006105be565b61060a8282610c72565b610615906001610cc4565b67ffffffffffffffff81111561062d5761062d610a99565b604051908082528060200260200182016040528015610656578160200160208202803683370190505b5092506000825b8281116107e3576040517fbb8aa1fc0000000000000000000000000000000000000000000000000000000081526004810182905260009073ffffffffffffffffffffffffffffffffffffffff8a169063bb8aa1fc90602401606060405180830381865afa1580156106d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106f69190610cdc565b925050506107798173ffffffffffffffffffffffffffffffffffffffff166319effeb46040518163ffffffff1660e01b8152600401602060405180830381865afa158015610748573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061076c9190610d47565b67ffffffffffffffff1690565b67ffffffffffffffff166000036107d0578086848151811061079d5761079d610d62565b73ffffffffffffffffffffffffffffffffffffffff90921660209283029190910190910152826107cc81610d91565b9350505b50806107db81610d91565b91505061065d565b50835250509392505050565b60606107fa82610827565b90506030602082015160001a14600282510161307882840152600282840103925081810383525050919050565b606060806040510190506020810160405260008152806f30313233343536373839616263646566600f52600119835b600f811651938201936001850153600f8160041c1651845360081c806108565750508190037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909101908152919050565b6000602082840312156108b957600080fd5b5035919050565b60005b838110156108db5781810151838201526020016108c3565b838111156108ea576000848401525b50505050565b600081518084526109088160208601602086016108c0565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60208152600061047b60208301846108f0565b73ffffffffffffffffffffffffffffffffffffffff8116811461096f57600080fd5b50565b6000806040838503121561098557600080fd5b82356109908161094d565b915060208301356109a08161094d565b809150509250929050565b6000806000606084860312156109c057600080fd5b83356109cb8161094d565b9250602084013591506040840135600281106109e657600080fd5b809150509250925092565b600080600060608486031215610a0657600080fd5b8335610a118161094d565b95602085013595506040909401359392505050565b6020808252825182820181905260009190848201906040850190845b81811015610a7457835173ffffffffffffffffffffffffffffffffffffffff1683529284019291840191600101610a42565b50909695505050505050565b805163ffffffff81168114610a9457600080fd5b919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080600060608486031215610add57600080fd5b610ae684610a80565b925060208401519150604084015167ffffffffffffffff80821115610b0a57600080fd5b818601915086601f830112610b1e57600080fd5b815181811115610b3057610b30610a99565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908382118183101715610b7657610b76610a99565b81604052828152896020848701011115610b8f57600080fd5b610ba08360208301602088016108c0565b80955050505050509250925092565b63ffffffff84168152826020820152606060408201526000610bd460608301846108f0565b95945050505050565b805167ffffffffffffffff81168114610a9457600080fd5b60008060408385031215610c0857600080fd5b8251610c138161094d565b9150610c2160208401610bdd565b90509250929050565b600060208284031215610c3c57600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600082821015610c8457610c84610c43565b500390565b600082610cbf577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b60008219821115610cd757610cd7610c43565b500190565b600080600060608486031215610cf157600080fd5b610cfa84610a80565b9250610d0860208501610bdd565b915060408401516109e68161094d565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600060208284031215610d5957600080fd5b61047b82610bdd565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610dc257610dc2610c43565b506001019056fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[Pa\r\xD6\x80a\0 `\09`\0\xF3\xFE`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`\x046\x10a\0LW`\x005`\xE0\x1C\x80c>}w3\x14a\0QW\x80c\xC3v\xD3\x1F\x14a\0zW\x80c\xCBNj\xB1\x14a\0\x9DW\x80c\xCF\x8D\x0Fu\x14a\0\xBEW[`\0\x80\xFD[a\0da\0_6`\x04a\x08\xA7V[a\0\xDEV[`@Qa\0q\x91\x90a\t:V[`@Q\x80\x91\x03\x90\xF3[a\0\x8Da\0\x886`\x04a\trV[a\0\xEFV[`@Q\x90\x15\x15\x81R` \x01a\0qV[a\0\xB0a\0\xAB6`\x04a\t\xABV[a\x024V[`@Q\x90\x81R` \x01a\0qV[a\0\xD1a\0\xCC6`\x04a\t\xF1V[a\x04\x82V[`@Qa\0q\x91\x90a\n&V[``a\0\xE9\x82a\x07\xEFV[\x92\x91PPV[`\0\x80`\0\x80\x84s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xFA$\xF7C`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01`\0`@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x01@W=`\0\x80>=`\0\xFD[PPPP`@Q=`\0\x82>`\x1F=\x90\x81\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x82\x01`@Ra\x01\x86\x91\x90\x81\x01\x90a\n\xC8V[\x92P\x92P\x92P`\0\x86s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c_\x01P\xCB\x85\x85\x85`@Q\x84c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01a\x01\xCB\x93\x92\x91\x90a\x0B\xAFV[`@\x80Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x01\xE7W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x02\x0B\x91\x90a\x0B\xF5V[Ps\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x81\x16\x96\x16\x95\x90\x95\x14\x96\x95PPPPPPV[`\0\x80\x84s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16cM\x19u\xB4`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x02\x82W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x02\xA6\x91\x90a\x0C*V[\x90P\x80`\0\x03a\x02\xD9W\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x91PPa\x04{V[`\0\x80a\x02\xE7`\x01\x84a\x0CrV[\x90P\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x93P[\x80\x82\x11a\x04wW`\0`\x02a\x03\"\x84\x84a\x0CrV[a\x03,\x91\x90a\x0C\x89V[a\x036\x90\x84a\x0C\xC4V[`@Q\x7F\xBB\x8A\xA1\xFC\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\x81\x01\x82\x90R\x90\x91P`\0\x90s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x8A\x16\x90c\xBB\x8A\xA1\xFC\x90`$\x01```@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x03\xA7W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x03\xCB\x91\x90a\x0C\xDCV[P\x91PP`\0a\x03\xE2\x82g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90V[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90P`\0\x88`\x01\x81\x11\x15a\x04\x02Wa\x04\x02a\r\x18V[\x03a\x04GW\x88\x81\x11a\x04%W\x82\x96P\x82`\x01a\x04\x1E\x91\x90a\x0C\xC4V[\x94Pa\x04oV[\x82`\0\x03a\x045WPPPa\x04wV[a\x04@`\x01\x84a\x0CrV[\x93Pa\x04oV[\x88\x81\x10a\x04aW\x82\x96P\x82`\0\x03a\x045WPPPa\x04wV[a\x04l\x83`\x01a\x0C\xC4V[\x94P[PPPa\x03\rV[PPP[\x93\x92PPPV[``\x82\x82\x10\x15a\x04\xBEW`@Q\x7F\xB2-Z\\\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\x01`@Q\x80\x91\x03\x90\xFD[\x83s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16cM\x19u\xB4`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x05\tW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x05-\x91\x90a\x0C*V[`\0\x03a\x05IWP`@\x80Q`\0\x81R` \x81\x01\x90\x91Ra\x04{V[`\0a\x05W\x85\x85`\x01a\x024V[\x90P`\0a\x05g\x86\x85`\0a\x024V[\x90P\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x14\x80a\x05\xB6WP\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x14[\x15a\x05\xF1W`\0[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a\x05\xE7W\x81` \x01` \x82\x02\x806\x837\x01\x90P[P\x92PPPa\x04{V[\x81\x81\x10\x15a\x06\0W`\0a\x05\xBEV[a\x06\n\x82\x82a\x0CrV[a\x06\x15\x90`\x01a\x0C\xC4V[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x06-Wa\x06-a\n\x99V[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a\x06VW\x81` \x01` \x82\x02\x806\x837\x01\x90P[P\x92P`\0\x82[\x82\x81\x11a\x07\xE3W`@Q\x7F\xBB\x8A\xA1\xFC\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\x81\x01\x82\x90R`\0\x90s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x8A\x16\x90c\xBB\x8A\xA1\xFC\x90`$\x01```@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x06\xD2W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x06\xF6\x91\x90a\x0C\xDCV[\x92PPPa\x07y\x81s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\x19\xEF\xFE\xB4`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x07HW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x07l\x91\x90a\rGV[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90V[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\0\x03a\x07\xD0W\x80\x86\x84\x81Q\x81\x10a\x07\x9DWa\x07\x9Da\rbV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x92\x16` \x92\x83\x02\x91\x90\x91\x01\x90\x91\x01R\x82a\x07\xCC\x81a\r\x91V[\x93PP[P\x80a\x07\xDB\x81a\r\x91V[\x91PPa\x06]V[P\x83RPP\x93\x92PPPV[``a\x07\xFA\x82a\x08'V[\x90P`0` \x82\x01Q`\0\x1A\x14`\x02\x82Q\x01a0x\x82\x84\x01R`\x02\x82\x84\x01\x03\x92P\x81\x81\x03\x83RPP\x91\x90PV[```\x80`@Q\x01\x90P` \x81\x01`@R`\0\x81R\x80o0123456789abcdef`\x0FR`\x01\x19\x83[`\x0F\x81\x16Q\x93\x82\x01\x93`\x01\x85\x01S`\x0F\x81`\x04\x1C\x16Q\x84S`\x08\x1C\x80a\x08VWPP\x81\x90\x03\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x90\x91\x01\x90\x81R\x91\x90PV[`\0` \x82\x84\x03\x12\x15a\x08\xB9W`\0\x80\xFD[P5\x91\x90PV[`\0[\x83\x81\x10\x15a\x08\xDBW\x81\x81\x01Q\x83\x82\x01R` \x01a\x08\xC3V[\x83\x81\x11\x15a\x08\xEAW`\0\x84\x84\x01R[PPPPV[`\0\x81Q\x80\x84Ra\t\x08\x81` \x86\x01` \x86\x01a\x08\xC0V[`\x1F\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x92\x90\x92\x01` \x01\x92\x91PPV[` \x81R`\0a\x04{` \x83\x01\x84a\x08\xF0V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\toW`\0\x80\xFD[PV[`\0\x80`@\x83\x85\x03\x12\x15a\t\x85W`\0\x80\xFD[\x825a\t\x90\x81a\tMV[\x91P` \x83\x015a\t\xA0\x81a\tMV[\x80\x91PP\x92P\x92\x90PV[`\0\x80`\0``\x84\x86\x03\x12\x15a\t\xC0W`\0\x80\xFD[\x835a\t\xCB\x81a\tMV[\x92P` \x84\x015\x91P`@\x84\x015`\x02\x81\x10a\t\xE6W`\0\x80\xFD[\x80\x91PP\x92P\x92P\x92V[`\0\x80`\0``\x84\x86\x03\x12\x15a\n\x06W`\0\x80\xFD[\x835a\n\x11\x81a\tMV[\x95` \x85\x015\x95P`@\x90\x94\x015\x93\x92PPPV[` \x80\x82R\x82Q\x82\x82\x01\x81\x90R`\0\x91\x90\x84\x82\x01\x90`@\x85\x01\x90\x84[\x81\x81\x10\x15a\ntW\x83Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x83R\x92\x84\x01\x92\x91\x84\x01\x91`\x01\x01a\nBV[P\x90\x96\x95PPPPPPV[\x80Qc\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\n\x94W`\0\x80\xFD[\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[`\0\x80`\0``\x84\x86\x03\x12\x15a\n\xDDW`\0\x80\xFD[a\n\xE6\x84a\n\x80V[\x92P` \x84\x01Q\x91P`@\x84\x01Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x0B\nW`\0\x80\xFD[\x81\x86\x01\x91P\x86`\x1F\x83\x01\x12a\x0B\x1EW`\0\x80\xFD[\x81Q\x81\x81\x11\x15a\x0B0Wa\x0B0a\n\x99V[`@Q`\x1F\x82\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x90\x81\x16`?\x01\x16\x81\x01\x90\x83\x82\x11\x81\x83\x10\x17\x15a\x0BvWa\x0Bva\n\x99V[\x81`@R\x82\x81R\x89` \x84\x87\x01\x01\x11\x15a\x0B\x8FW`\0\x80\xFD[a\x0B\xA0\x83` \x83\x01` \x88\x01a\x08\xC0V[\x80\x95PPPPPP\x92P\x92P\x92V[c\xFF\xFF\xFF\xFF\x84\x16\x81R\x82` \x82\x01R```@\x82\x01R`\0a\x0B\xD4``\x83\x01\x84a\x08\xF0V[\x95\x94PPPPPV[\x80Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\n\x94W`\0\x80\xFD[`\0\x80`@\x83\x85\x03\x12\x15a\x0C\x08W`\0\x80\xFD[\x82Qa\x0C\x13\x81a\tMV[\x91Pa\x0C!` \x84\x01a\x0B\xDDV[\x90P\x92P\x92\x90PV[`\0` \x82\x84\x03\x12\x15a\x0C}w3\x14a\0QW\x80c\xC3v\xD3\x1F\x14a\0zW\x80c\xCBNj\xB1\x14a\0\x9DW\x80c\xCF\x8D\x0Fu\x14a\0\xBEW[`\0\x80\xFD[a\0da\0_6`\x04a\x08\xA7V[a\0\xDEV[`@Qa\0q\x91\x90a\t:V[`@Q\x80\x91\x03\x90\xF3[a\0\x8Da\0\x886`\x04a\trV[a\0\xEFV[`@Q\x90\x15\x15\x81R` \x01a\0qV[a\0\xB0a\0\xAB6`\x04a\t\xABV[a\x024V[`@Q\x90\x81R` \x01a\0qV[a\0\xD1a\0\xCC6`\x04a\t\xF1V[a\x04\x82V[`@Qa\0q\x91\x90a\n&V[``a\0\xE9\x82a\x07\xEFV[\x92\x91PPV[`\0\x80`\0\x80\x84s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xFA$\xF7C`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01`\0`@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x01@W=`\0\x80>=`\0\xFD[PPPP`@Q=`\0\x82>`\x1F=\x90\x81\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x82\x01`@Ra\x01\x86\x91\x90\x81\x01\x90a\n\xC8V[\x92P\x92P\x92P`\0\x86s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c_\x01P\xCB\x85\x85\x85`@Q\x84c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01a\x01\xCB\x93\x92\x91\x90a\x0B\xAFV[`@\x80Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x01\xE7W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x02\x0B\x91\x90a\x0B\xF5V[Ps\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x81\x16\x96\x16\x95\x90\x95\x14\x96\x95PPPPPPV[`\0\x80\x84s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16cM\x19u\xB4`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x02\x82W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x02\xA6\x91\x90a\x0C*V[\x90P\x80`\0\x03a\x02\xD9W\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x91PPa\x04{V[`\0\x80a\x02\xE7`\x01\x84a\x0CrV[\x90P\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x93P[\x80\x82\x11a\x04wW`\0`\x02a\x03\"\x84\x84a\x0CrV[a\x03,\x91\x90a\x0C\x89V[a\x036\x90\x84a\x0C\xC4V[`@Q\x7F\xBB\x8A\xA1\xFC\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\x81\x01\x82\x90R\x90\x91P`\0\x90s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x8A\x16\x90c\xBB\x8A\xA1\xFC\x90`$\x01```@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x03\xA7W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x03\xCB\x91\x90a\x0C\xDCV[P\x91PP`\0a\x03\xE2\x82g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90V[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90P`\0\x88`\x01\x81\x11\x15a\x04\x02Wa\x04\x02a\r\x18V[\x03a\x04GW\x88\x81\x11a\x04%W\x82\x96P\x82`\x01a\x04\x1E\x91\x90a\x0C\xC4V[\x94Pa\x04oV[\x82`\0\x03a\x045WPPPa\x04wV[a\x04@`\x01\x84a\x0CrV[\x93Pa\x04oV[\x88\x81\x10a\x04aW\x82\x96P\x82`\0\x03a\x045WPPPa\x04wV[a\x04l\x83`\x01a\x0C\xC4V[\x94P[PPPa\x03\rV[PPP[\x93\x92PPPV[``\x82\x82\x10\x15a\x04\xBEW`@Q\x7F\xB2-Z\\\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\x01`@Q\x80\x91\x03\x90\xFD[\x83s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16cM\x19u\xB4`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x05\tW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x05-\x91\x90a\x0C*V[`\0\x03a\x05IWP`@\x80Q`\0\x81R` \x81\x01\x90\x91Ra\x04{V[`\0a\x05W\x85\x85`\x01a\x024V[\x90P`\0a\x05g\x86\x85`\0a\x024V[\x90P\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x14\x80a\x05\xB6WP\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x14[\x15a\x05\xF1W`\0[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a\x05\xE7W\x81` \x01` \x82\x02\x806\x837\x01\x90P[P\x92PPPa\x04{V[\x81\x81\x10\x15a\x06\0W`\0a\x05\xBEV[a\x06\n\x82\x82a\x0CrV[a\x06\x15\x90`\x01a\x0C\xC4V[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x06-Wa\x06-a\n\x99V[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a\x06VW\x81` \x01` \x82\x02\x806\x837\x01\x90P[P\x92P`\0\x82[\x82\x81\x11a\x07\xE3W`@Q\x7F\xBB\x8A\xA1\xFC\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\x81\x01\x82\x90R`\0\x90s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x8A\x16\x90c\xBB\x8A\xA1\xFC\x90`$\x01```@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x06\xD2W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x06\xF6\x91\x90a\x0C\xDCV[\x92PPPa\x07y\x81s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\x19\xEF\xFE\xB4`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x07HW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x07l\x91\x90a\rGV[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90V[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\0\x03a\x07\xD0W\x80\x86\x84\x81Q\x81\x10a\x07\x9DWa\x07\x9Da\rbV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x92\x16` \x92\x83\x02\x91\x90\x91\x01\x90\x91\x01R\x82a\x07\xCC\x81a\r\x91V[\x93PP[P\x80a\x07\xDB\x81a\r\x91V[\x91PPa\x06]V[P\x83RPP\x93\x92PPPV[``a\x07\xFA\x82a\x08'V[\x90P`0` \x82\x01Q`\0\x1A\x14`\x02\x82Q\x01a0x\x82\x84\x01R`\x02\x82\x84\x01\x03\x92P\x81\x81\x03\x83RPP\x91\x90PV[```\x80`@Q\x01\x90P` \x81\x01`@R`\0\x81R\x80o0123456789abcdef`\x0FR`\x01\x19\x83[`\x0F\x81\x16Q\x93\x82\x01\x93`\x01\x85\x01S`\x0F\x81`\x04\x1C\x16Q\x84S`\x08\x1C\x80a\x08VWPP\x81\x90\x03\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x90\x91\x01\x90\x81R\x91\x90PV[`\0` \x82\x84\x03\x12\x15a\x08\xB9W`\0\x80\xFD[P5\x91\x90PV[`\0[\x83\x81\x10\x15a\x08\xDBW\x81\x81\x01Q\x83\x82\x01R` \x01a\x08\xC3V[\x83\x81\x11\x15a\x08\xEAW`\0\x84\x84\x01R[PPPPV[`\0\x81Q\x80\x84Ra\t\x08\x81` \x86\x01` \x86\x01a\x08\xC0V[`\x1F\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x92\x90\x92\x01` \x01\x92\x91PPV[` \x81R`\0a\x04{` \x83\x01\x84a\x08\xF0V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\toW`\0\x80\xFD[PV[`\0\x80`@\x83\x85\x03\x12\x15a\t\x85W`\0\x80\xFD[\x825a\t\x90\x81a\tMV[\x91P` \x83\x015a\t\xA0\x81a\tMV[\x80\x91PP\x92P\x92\x90PV[`\0\x80`\0``\x84\x86\x03\x12\x15a\t\xC0W`\0\x80\xFD[\x835a\t\xCB\x81a\tMV[\x92P` \x84\x015\x91P`@\x84\x015`\x02\x81\x10a\t\xE6W`\0\x80\xFD[\x80\x91PP\x92P\x92P\x92V[`\0\x80`\0``\x84\x86\x03\x12\x15a\n\x06W`\0\x80\xFD[\x835a\n\x11\x81a\tMV[\x95` \x85\x015\x95P`@\x90\x94\x015\x93\x92PPPV[` \x80\x82R\x82Q\x82\x82\x01\x81\x90R`\0\x91\x90\x84\x82\x01\x90`@\x85\x01\x90\x84[\x81\x81\x10\x15a\ntW\x83Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x83R\x92\x84\x01\x92\x91\x84\x01\x91`\x01\x01a\nBV[P\x90\x96\x95PPPPPPV[\x80Qc\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\n\x94W`\0\x80\xFD[\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[`\0\x80`\0``\x84\x86\x03\x12\x15a\n\xDDW`\0\x80\xFD[a\n\xE6\x84a\n\x80V[\x92P` \x84\x01Q\x91P`@\x84\x01Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x0B\nW`\0\x80\xFD[\x81\x86\x01\x91P\x86`\x1F\x83\x01\x12a\x0B\x1EW`\0\x80\xFD[\x81Q\x81\x81\x11\x15a\x0B0Wa\x0B0a\n\x99V[`@Q`\x1F\x82\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x90\x81\x16`?\x01\x16\x81\x01\x90\x83\x82\x11\x81\x83\x10\x17\x15a\x0BvWa\x0Bva\n\x99V[\x81`@R\x82\x81R\x89` \x84\x87\x01\x01\x11\x15a\x0B\x8FW`\0\x80\xFD[a\x0B\xA0\x83` \x83\x01` \x88\x01a\x08\xC0V[\x80\x95PPPPPP\x92P\x92P\x92V[c\xFF\xFF\xFF\xFF\x84\x16\x81R\x82` \x82\x01R```@\x82\x01R`\0a\x0B\xD4``\x83\x01\x84a\x08\xF0V[\x95\x94PPPPPV[\x80Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\n\x94W`\0\x80\xFD[`\0\x80`@\x83\x85\x03\x12\x15a\x0C\x08W`\0\x80\xFD[\x82Qa\x0C\x13\x81a\tMV[\x91Pa\x0C!` \x84\x01a\x0B\xDDV[\x90P\x92P\x92\x90PV[`\0` \x82\x84\x03\x12\x15a\x0C for u8 { + #[inline] + fn stv_to_tokens( + &self, + ) -> as alloy_sol_types::SolType>::Token<'_> { + alloy_sol_types::private::SolTypeValue::< + alloy::sol_types::sol_data::Uint<8>, + >::stv_to_tokens(self) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + as alloy_sol_types::SolType>::tokenize(self) + .0 + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::SolType>::abi_encode_packed_to(self, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + as alloy_sol_types::SolType>::abi_encoded_size(self) + } + } + impl SearchDirection { + /// The Solidity type name. + pub const NAME: &'static str = stringify!(@ name); + /// Convert from the underlying value type. + #[inline] + pub const fn from_underlying(value: u8) -> Self { + Self(value) + } + /// Return the underlying value. + #[inline] + pub const fn into_underlying(self) -> u8 { + self.0 + } + /// Return the single encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode(&self) -> alloy_sol_types::private::Vec { + ::abi_encode(&self.0) + } + /// Return the packed encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec { + ::abi_encode_packed(&self.0) + } + } + #[automatically_derived] + impl From for SearchDirection { + fn from(value: u8) -> Self { + Self::from_underlying(value) + } + } + #[automatically_derived] + impl From for u8 { + fn from(value: SearchDirection) -> Self { + value.into_underlying() + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for SearchDirection { + type RustType = u8; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = Self::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + Self::type_check(token).is_ok() + } + #[inline] + fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> { + as alloy_sol_types::SolType>::type_check(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + as alloy_sol_types::SolType>::detokenize(token) + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for SearchDirection { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + as alloy_sol_types::EventTopic>::topic_preimage_length(rust) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out) + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + as alloy_sol_types::EventTopic>::encode_topic(rust) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `DisputeMonitorHelper_InvalidSearchRange()` and selector `0xb22d5a5c`. +```solidity +error DisputeMonitorHelper_InvalidSearchRange(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct DisputeMonitorHelper_InvalidSearchRange; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: DisputeMonitorHelper_InvalidSearchRange) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for DisputeMonitorHelper_InvalidSearchRange { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for DisputeMonitorHelper_InvalidSearchRange { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "DisputeMonitorHelper_InvalidSearchRange()"; + const SELECTOR: [u8; 4] = [178u8, 45u8, 90u8, 92u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `getUnresolvedGames(address,uint256,uint256)` and selector `0xcf8d0f75`. +```solidity +function getUnresolvedGames(address _factory, uint256 _creationRangeStart, uint256 _creationRangeEnd) external view returns (address[] memory unresolvedGames_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getUnresolvedGamesCall { + #[allow(missing_docs)] + pub _factory: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _creationRangeStart: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _creationRangeEnd: alloy::sol_types::private::primitives::aliases::U256, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`getUnresolvedGames(address,uint256,uint256)`](getUnresolvedGamesCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getUnresolvedGamesReturn { + #[allow(missing_docs)] + pub unresolvedGames_: alloy::sol_types::private::Vec< + alloy::sol_types::private::Address, + >, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: getUnresolvedGamesCall) -> Self { + (value._factory, value._creationRangeStart, value._creationRangeEnd) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for getUnresolvedGamesCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _factory: tuple.0, + _creationRangeStart: tuple.1, + _creationRangeEnd: tuple.2, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Array, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Vec, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: getUnresolvedGamesReturn) -> Self { + (value.unresolvedGames_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for getUnresolvedGamesReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { unresolvedGames_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for getUnresolvedGamesCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Vec< + alloy::sol_types::private::Address, + >; + type ReturnTuple<'a> = ( + alloy::sol_types::sol_data::Array, + ); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "getUnresolvedGames(address,uint256,uint256)"; + const SELECTOR: [u8; 4] = [207u8, 141u8, 15u8, 117u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._factory, + ), + as alloy_sol_types::SolType>::tokenize(&self._creationRangeStart), + as alloy_sol_types::SolType>::tokenize(&self._creationRangeEnd), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: getUnresolvedGamesReturn = r.into(); + r.unresolvedGames_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: getUnresolvedGamesReturn = r.into(); + r.unresolvedGames_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `isGameRegistered(address,address)` and selector `0xc376d31f`. +```solidity +function isGameRegistered(address _factory, address _game) external view returns (bool isValid_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct isGameRegisteredCall { + #[allow(missing_docs)] + pub _factory: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _game: alloy::sol_types::private::Address, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`isGameRegistered(address,address)`](isGameRegisteredCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct isGameRegisteredReturn { + #[allow(missing_docs)] + pub isValid_: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: isGameRegisteredCall) -> Self { + (value._factory, value._game) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for isGameRegisteredCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _factory: tuple.0, + _game: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: isGameRegisteredReturn) -> Self { + (value.isValid_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for isGameRegisteredReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { isValid_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for isGameRegisteredCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "isGameRegistered(address,address)"; + const SELECTOR: [u8; 4] = [195u8, 118u8, 211u8, 31u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._factory, + ), + ::tokenize( + &self._game, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: isGameRegisteredReturn = r.into(); + r.isValid_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: isGameRegisteredReturn = r.into(); + r.isValid_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `search(address,uint256,uint8)` and selector `0xcb4e6ab1`. +```solidity +function search(address _factory, uint256 _targetTimestamp, SearchDirection _direction) external view returns (uint256 index_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct searchCall { + #[allow(missing_docs)] + pub _factory: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _targetTimestamp: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _direction: ::RustType, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`search(address,uint256,uint8)`](searchCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct searchReturn { + #[allow(missing_docs)] + pub index_: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + SearchDirection, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: searchCall) -> Self { + (value._factory, value._targetTimestamp, value._direction) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for searchCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _factory: tuple.0, + _targetTimestamp: tuple.1, + _direction: tuple.2, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: searchReturn) -> Self { + (value.index_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for searchReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { index_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for searchCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + SearchDirection, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "search(address,uint256,uint8)"; + const SELECTOR: [u8; 4] = [203u8, 78u8, 106u8, 177u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._factory, + ), + as alloy_sol_types::SolType>::tokenize(&self._targetTimestamp), + ::tokenize( + &self._direction, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: searchReturn = r.into(); + r.index_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: searchReturn = r.into(); + r.index_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `toRpcHexString(uint256)` and selector `0x3e7d7733`. +```solidity +function toRpcHexString(uint256 _value) external pure returns (string memory hexString_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct toRpcHexStringCall { + #[allow(missing_docs)] + pub _value: alloy::sol_types::private::primitives::aliases::U256, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`toRpcHexString(uint256)`](toRpcHexStringCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct toRpcHexStringReturn { + #[allow(missing_docs)] + pub hexString_: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: toRpcHexStringCall) -> Self { + (value._value,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for toRpcHexStringCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _value: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: toRpcHexStringReturn) -> Self { + (value.hexString_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for toRpcHexStringReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { hexString_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for toRpcHexStringCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::String; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "toRpcHexString(uint256)"; + const SELECTOR: [u8; 4] = [62u8, 125u8, 119u8, 51u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._value), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: toRpcHexStringReturn = r.into(); + r.hexString_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: toRpcHexStringReturn = r.into(); + r.hexString_ + }) + } + } + }; + ///Container for all the [`DisputeMonitorHelper`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum DisputeMonitorHelperCalls { + #[allow(missing_docs)] + getUnresolvedGames(getUnresolvedGamesCall), + #[allow(missing_docs)] + isGameRegistered(isGameRegisteredCall), + #[allow(missing_docs)] + search(searchCall), + #[allow(missing_docs)] + toRpcHexString(toRpcHexStringCall), + } + impl DisputeMonitorHelperCalls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [62u8, 125u8, 119u8, 51u8], + [195u8, 118u8, 211u8, 31u8], + [203u8, 78u8, 106u8, 177u8], + [207u8, 141u8, 15u8, 117u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(toRpcHexString), + ::core::stringify!(isGameRegistered), + ::core::stringify!(search), + ::core::stringify!(getUnresolvedGames), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for DisputeMonitorHelperCalls { + const NAME: &'static str = "DisputeMonitorHelperCalls"; + const MIN_DATA_LENGTH: usize = 32usize; + const COUNT: usize = 4usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::getUnresolvedGames(_) => { + ::SELECTOR + } + Self::isGameRegistered(_) => { + ::SELECTOR + } + Self::search(_) => ::SELECTOR, + Self::toRpcHexString(_) => { + ::SELECTOR + } + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn toRpcHexString( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(DisputeMonitorHelperCalls::toRpcHexString) + } + toRpcHexString + }, + { + fn isGameRegistered( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(DisputeMonitorHelperCalls::isGameRegistered) + } + isGameRegistered + }, + { + fn search( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(DisputeMonitorHelperCalls::search) + } + search + }, + { + fn getUnresolvedGames( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(DisputeMonitorHelperCalls::getUnresolvedGames) + } + getUnresolvedGames + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn toRpcHexString( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DisputeMonitorHelperCalls::toRpcHexString) + } + toRpcHexString + }, + { + fn isGameRegistered( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DisputeMonitorHelperCalls::isGameRegistered) + } + isGameRegistered + }, + { + fn search( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DisputeMonitorHelperCalls::search) + } + search + }, + { + fn getUnresolvedGames( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DisputeMonitorHelperCalls::getUnresolvedGames) + } + getUnresolvedGames + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::getUnresolvedGames(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::isGameRegistered(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::search(inner) => { + ::abi_encoded_size(inner) + } + Self::toRpcHexString(inner) => { + ::abi_encoded_size( + inner, + ) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::getUnresolvedGames(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::isGameRegistered(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::search(inner) => { + ::abi_encode_raw(inner, out) + } + Self::toRpcHexString(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + } + } + } + ///Container for all the [`DisputeMonitorHelper`](self) custom errors. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum DisputeMonitorHelperErrors { + #[allow(missing_docs)] + DisputeMonitorHelper_InvalidSearchRange(DisputeMonitorHelper_InvalidSearchRange), + } + impl DisputeMonitorHelperErrors { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[[178u8, 45u8, 90u8, 92u8]]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(DisputeMonitorHelper_InvalidSearchRange), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for DisputeMonitorHelperErrors { + const NAME: &'static str = "DisputeMonitorHelperErrors"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 1usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::DisputeMonitorHelper_InvalidSearchRange(_) => { + ::SELECTOR + } + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn DisputeMonitorHelper_InvalidSearchRange( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + DisputeMonitorHelperErrors::DisputeMonitorHelper_InvalidSearchRange, + ) + } + DisputeMonitorHelper_InvalidSearchRange + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn DisputeMonitorHelper_InvalidSearchRange( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + DisputeMonitorHelperErrors::DisputeMonitorHelper_InvalidSearchRange, + ) + } + DisputeMonitorHelper_InvalidSearchRange + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::DisputeMonitorHelper_InvalidSearchRange(inner) => { + ::abi_encoded_size( + inner, + ) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::DisputeMonitorHelper_InvalidSearchRange(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`DisputeMonitorHelper`](self) contract instance. + +See the [wrapper's documentation](`DisputeMonitorHelperInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> DisputeMonitorHelperInstance { + DisputeMonitorHelperInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + DisputeMonitorHelperInstance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + DisputeMonitorHelperInstance::::deploy_builder(__provider) + } + /**A [`DisputeMonitorHelper`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`DisputeMonitorHelper`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct DisputeMonitorHelperInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for DisputeMonitorHelperInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("DisputeMonitorHelperInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > DisputeMonitorHelperInstance { + /**Creates a new wrapper around an on-chain [`DisputeMonitorHelper`](self) contract instance. + +See the [wrapper's documentation](`DisputeMonitorHelperInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl DisputeMonitorHelperInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> DisputeMonitorHelperInstance { + DisputeMonitorHelperInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > DisputeMonitorHelperInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`getUnresolvedGames`] function. + pub fn getUnresolvedGames( + &self, + _factory: alloy::sol_types::private::Address, + _creationRangeStart: alloy::sol_types::private::primitives::aliases::U256, + _creationRangeEnd: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, getUnresolvedGamesCall, N> { + self.call_builder( + &getUnresolvedGamesCall { + _factory, + _creationRangeStart, + _creationRangeEnd, + }, + ) + } + ///Creates a new call builder for the [`isGameRegistered`] function. + pub fn isGameRegistered( + &self, + _factory: alloy::sol_types::private::Address, + _game: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, isGameRegisteredCall, N> { + self.call_builder( + &isGameRegisteredCall { + _factory, + _game, + }, + ) + } + ///Creates a new call builder for the [`search`] function. + pub fn search( + &self, + _factory: alloy::sol_types::private::Address, + _targetTimestamp: alloy::sol_types::private::primitives::aliases::U256, + _direction: ::RustType, + ) -> alloy_contract::SolCallBuilder<&P, searchCall, N> { + self.call_builder( + &searchCall { + _factory, + _targetTimestamp, + _direction, + }, + ) + } + ///Creates a new call builder for the [`toRpcHexString`] function. + pub fn toRpcHexString( + &self, + _value: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, toRpcHexStringCall, N> { + self.call_builder(&toRpcHexStringCall { _value }) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > DisputeMonitorHelperInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + } +} diff --git a/bindings/rust/src/drippie.rs b/bindings/rust/src/drippie.rs new file mode 100644 index 000000000..e4b5c5deb --- /dev/null +++ b/bindings/rust/src/drippie.rs @@ -0,0 +1,6783 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface Drippie { + type DripStatus is uint8; + struct DripAction { + address payable target; + bytes data; + uint256 value; + } + struct DripConfig { + bool reentrant; + uint256 interval; + address dripcheck; + bytes checkparams; + DripAction[] actions; + } + + event DripCreated(string indexed nameref, string name, DripConfig config); + event DripExecuted(string indexed nameref, string name, address executor, uint256 timestamp); + event DripStatusUpdated(string indexed nameref, string name, DripStatus status); + event OwnerUpdated(address indexed user, address indexed newOwner); + event ReceivedETH(address indexed from, uint256 amount); + event WithdrewERC20(address indexed withdrawer, address indexed recipient, address indexed asset, uint256 amount); + event WithdrewERC721(address indexed withdrawer, address indexed recipient, address indexed asset, uint256 id); + event WithdrewETH(address indexed withdrawer, address indexed recipient, uint256 amount); + + constructor(address _owner); + + receive() external payable; + + function CALL(address _target, bytes memory _data, uint256 _value) external payable returns (bool success_, bytes memory data_); + function DELEGATECALL(address _target, bytes memory _data) external payable returns (bool success_, bytes memory data_); + function create(string memory _name, DripConfig memory _config) external; + function created(uint256) external view returns (string memory); + function drip(string memory _name) external; + function drips(string memory) external view returns (DripStatus status, DripConfig memory config, uint256 last, uint256 count); + function executable(string memory _name) external view returns (bool); + function getDripCount() external view returns (uint256); + function getDripInterval(string memory _name) external view returns (uint256); + function getDripStatus(string memory _name) external view returns (DripStatus); + function owner() external view returns (address); + function setOwner(address newOwner) external; + function status(string memory _name, DripStatus _status) external; + function withdrawERC20(address _asset, address _to, uint256 _amount) external; + function withdrawERC20(address _asset, address _to) external; + function withdrawERC721(address _asset, address _to, uint256 _id) external; + function withdrawETH(address payable _to, uint256 _amount) external; + function withdrawETH(address payable _to) external; +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "constructor", + "inputs": [ + { + "name": "_owner", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "receive", + "stateMutability": "payable" + }, + { + "type": "function", + "name": "CALL", + "inputs": [ + { + "name": "_target", + "type": "address", + "internalType": "address" + }, + { + "name": "_data", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "_value", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "success_", + "type": "bool", + "internalType": "bool" + }, + { + "name": "data_", + "type": "bytes", + "internalType": "bytes" + } + ], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "DELEGATECALL", + "inputs": [ + { + "name": "_target", + "type": "address", + "internalType": "address" + }, + { + "name": "_data", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [ + { + "name": "success_", + "type": "bool", + "internalType": "bool" + }, + { + "name": "data_", + "type": "bytes", + "internalType": "bytes" + } + ], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "create", + "inputs": [ + { + "name": "_name", + "type": "string", + "internalType": "string" + }, + { + "name": "_config", + "type": "tuple", + "internalType": "struct Drippie.DripConfig", + "components": [ + { + "name": "reentrant", + "type": "bool", + "internalType": "bool" + }, + { + "name": "interval", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "dripcheck", + "type": "address", + "internalType": "contract IDripCheck" + }, + { + "name": "checkparams", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "actions", + "type": "tuple[]", + "internalType": "struct Drippie.DripAction[]", + "components": [ + { + "name": "target", + "type": "address", + "internalType": "address payable" + }, + { + "name": "data", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "value", + "type": "uint256", + "internalType": "uint256" + } + ] + } + ] + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "created", + "inputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "drip", + "inputs": [ + { + "name": "_name", + "type": "string", + "internalType": "string" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "drips", + "inputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "outputs": [ + { + "name": "status", + "type": "uint8", + "internalType": "enum Drippie.DripStatus" + }, + { + "name": "config", + "type": "tuple", + "internalType": "struct Drippie.DripConfig", + "components": [ + { + "name": "reentrant", + "type": "bool", + "internalType": "bool" + }, + { + "name": "interval", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "dripcheck", + "type": "address", + "internalType": "contract IDripCheck" + }, + { + "name": "checkparams", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "actions", + "type": "tuple[]", + "internalType": "struct Drippie.DripAction[]", + "components": [ + { + "name": "target", + "type": "address", + "internalType": "address payable" + }, + { + "name": "data", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "value", + "type": "uint256", + "internalType": "uint256" + } + ] + } + ] + }, + { + "name": "last", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "count", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "executable", + "inputs": [ + { + "name": "_name", + "type": "string", + "internalType": "string" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "getDripCount", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "getDripInterval", + "inputs": [ + { + "name": "_name", + "type": "string", + "internalType": "string" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "getDripStatus", + "inputs": [ + { + "name": "_name", + "type": "string", + "internalType": "string" + } + ], + "outputs": [ + { + "name": "", + "type": "uint8", + "internalType": "enum Drippie.DripStatus" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "owner", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "setOwner", + "inputs": [ + { + "name": "newOwner", + "type": "address", + "internalType": "address" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "status", + "inputs": [ + { + "name": "_name", + "type": "string", + "internalType": "string" + }, + { + "name": "_status", + "type": "uint8", + "internalType": "enum Drippie.DripStatus" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "withdrawERC20", + "inputs": [ + { + "name": "_asset", + "type": "address", + "internalType": "contract ERC20" + }, + { + "name": "_to", + "type": "address", + "internalType": "address" + }, + { + "name": "_amount", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "withdrawERC20", + "inputs": [ + { + "name": "_asset", + "type": "address", + "internalType": "contract ERC20" + }, + { + "name": "_to", + "type": "address", + "internalType": "address" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "withdrawERC721", + "inputs": [ + { + "name": "_asset", + "type": "address", + "internalType": "contract ERC721" + }, + { + "name": "_to", + "type": "address", + "internalType": "address" + }, + { + "name": "_id", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "withdrawETH", + "inputs": [ + { + "name": "_to", + "type": "address", + "internalType": "address payable" + }, + { + "name": "_amount", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "withdrawETH", + "inputs": [ + { + "name": "_to", + "type": "address", + "internalType": "address payable" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "event", + "name": "DripCreated", + "inputs": [ + { + "name": "nameref", + "type": "string", + "indexed": true, + "internalType": "string" + }, + { + "name": "name", + "type": "string", + "indexed": false, + "internalType": "string" + }, + { + "name": "config", + "type": "tuple", + "indexed": false, + "internalType": "struct Drippie.DripConfig", + "components": [ + { + "name": "reentrant", + "type": "bool", + "internalType": "bool" + }, + { + "name": "interval", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "dripcheck", + "type": "address", + "internalType": "contract IDripCheck" + }, + { + "name": "checkparams", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "actions", + "type": "tuple[]", + "internalType": "struct Drippie.DripAction[]", + "components": [ + { + "name": "target", + "type": "address", + "internalType": "address payable" + }, + { + "name": "data", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "value", + "type": "uint256", + "internalType": "uint256" + } + ] + } + ] + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "DripExecuted", + "inputs": [ + { + "name": "nameref", + "type": "string", + "indexed": true, + "internalType": "string" + }, + { + "name": "name", + "type": "string", + "indexed": false, + "internalType": "string" + }, + { + "name": "executor", + "type": "address", + "indexed": false, + "internalType": "address" + }, + { + "name": "timestamp", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "DripStatusUpdated", + "inputs": [ + { + "name": "nameref", + "type": "string", + "indexed": true, + "internalType": "string" + }, + { + "name": "name", + "type": "string", + "indexed": false, + "internalType": "string" + }, + { + "name": "status", + "type": "uint8", + "indexed": false, + "internalType": "enum Drippie.DripStatus" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "OwnerUpdated", + "inputs": [ + { + "name": "user", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "newOwner", + "type": "address", + "indexed": true, + "internalType": "address" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "ReceivedETH", + "inputs": [ + { + "name": "from", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "WithdrewERC20", + "inputs": [ + { + "name": "withdrawer", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "recipient", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "asset", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "WithdrewERC721", + "inputs": [ + { + "name": "withdrawer", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "recipient", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "asset", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "id", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "WithdrewETH", + "inputs": [ + { + "name": "withdrawer", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "recipient", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod Drippie { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x60806040523480156200001157600080fd5b506040516200292f3803806200292f83398101604081905262000034916200008c565b600080546001600160a01b0319166001600160a01b03831690811782556040518392839283929091907f8292fce18fa69edf4db7b94ea2e58241df0ae57f97e0a6c9b29067028bf92d76908290a350505050620000be565b6000602082840312156200009f57600080fd5b81516001600160a01b0381168114620000b757600080fd5b9392505050565b61286180620000ce6000396000f3fe60806040526004361061012d5760003560e01c806382cb6b72116100a55780639bc94d0111610074578063edee623911610059578063edee6239146103aa578063f1d42b47146103bd578063fc3e3eba146103d257600080fd5b80639bc94d011461036a578063e551cdaa1461038a57600080fd5b806382cb6b72146102b75780638da5cb5b146102e457806390547c141461031c5780639456fbcc1461034a57600080fd5b80634782f779116100fc57806367148cd2116100e157806367148cd214610256578063690d8320146102765780636e2d44ae1461029657600080fd5b80634782f779146102065780634d7fba6e1461022657600080fd5b80630d8f46971461016e57806313af4035146101a45780634025feb2146101c657806344004cc1146101e657600080fd5b366101695760405134815233907f4103257eaac983ca79a70d28f90dfc4fa16b619bb0c17ee7cab0d4034c2796249060200160405180910390a2005b600080fd5b34801561017a57600080fd5b5061018e610189366004611aab565b610402565b60405161019b9190611b57565b60405180910390f35b3480156101b057600080fd5b506101c46101bf366004611b7a565b610432565b005b3480156101d257600080fd5b506101c46101e1366004611b9e565b6104e3565b3480156101f257600080fd5b506101c4610201366004611b9e565b610609565b34801561021257600080fd5b506101c4610221366004611bdf565b61072e565b34801561023257600080fd5b50610246610241366004611cb0565b61081f565b60405161019b9493929190611d5d565b34801561026257600080fd5b506101c4610271366004611aab565b610a37565b34801561028257600080fd5b506101c4610291366004611b7a565b610c33565b6102a96102a4366004611e88565b610c89565b60405161019b929190611ee1565b3480156102c357600080fd5b506102d76102d2366004611efc565b610d3e565b60405161019b9190611f15565b3480156102f057600080fd5b50600054610304906001600160a01b031681565b6040516001600160a01b03909116815260200161019b565b34801561032857600080fd5b5061033c610337366004611aab565b610dea565b60405190815260200161019b565b34801561035657600080fd5b506101c4610365366004611f28565b610e19565b34801561037657600080fd5b506101c4610385366004611f61565b610eef565b34801561039657600080fd5b506101c46103a5366004611fbc565b611352565b6102a96103b8366004612021565b611745565b3480156103c957600080fd5b5060025461033c565b3480156103de57600080fd5b506103f26103ed366004611aab565b6117f6565b604051901515815260200161019b565b600060018383604051610416929190612071565b9081526040519081900360200190205460ff1690505b92915050565b6000546001600160a01b031633146104805760405162461bcd60e51b815260206004820152600c60248201526b15539055551213d49256915160a21b60448201526064015b60405180910390fd5b600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0383169081178255604051909133917f8292fce18fa69edf4db7b94ea2e58241df0ae57f97e0a6c9b29067028bf92d769190a350565b6000546001600160a01b0316331461052c5760405162461bcd60e51b815260206004820152600c60248201526b15539055551213d49256915160a21b6044820152606401610477565b6040517f23b872dd0000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b038381166024830152604482018390528416906323b872dd90606401600060405180830381600087803b15801561059557600080fd5b505af11580156105a9573d6000803e3d6000fd5b50505050826001600160a01b0316826001600160a01b0316336001600160a01b03167f30b478a5e196e55886228aa87ba74a7dfeba655e0a4d7ba275eabfc22aabb7a8846040516105fc91815260200190565b60405180910390a4505050565b6000546001600160a01b031633146106525760405162461bcd60e51b815260206004820152600c60248201526b15539055551213d49256915160a21b6044820152606401610477565b6040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b0383811660048301526024820183905284169063a9059cbb906044016020604051808303816000875af11580156106ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106de919061208f565b50826001600160a01b0316826001600160a01b0316336001600160a01b03167f6b00f1c7883f053ba83e907fd1965b22fffe3c4111383e725f04638a566cdbfa846040516105fc91815260200190565b6000546001600160a01b031633146107775760405162461bcd60e51b815260206004820152600c60248201526b15539055551213d49256915160a21b6044820152606401610477565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146107c4576040519150601f19603f3d011682016040523d82523d6000602084013e6107c9565b606091505b50509050826001600160a01b0316336001600160a01b03167f1f12aa8b6d492dd9b98e2b00b0b20830c2a7ded65afac13b60d169a034ae90bc8460405161081291815260200190565b60405180910390a3505050565b805160208183018101805160018083529383019483019490942093905282546040805160a081018252938501805460ff9081161515865260028701549486019490945260038601546001600160a01b0316918501919091526004850180549390921694939290916060840191610894906120ac565b80601f01602080910402602001604051908101604052809291908181526020018280546108c0906120ac565b801561090d5780601f106108e25761010080835404028352916020019161090d565b820191906000526020600020905b8154815290600101906020018083116108f057829003601f168201915b5050505050815260200160048201805480602002602001604051908101604052809291908181526020016000905b82821015610a1f57600084815260209081902060408051606081019091526003850290910180546001600160a01b031682526001810180549293919291840191610984906120ac565b80601f01602080910402602001604051908101604052809291908181526020018280546109b0906120ac565b80156109fd5780601f106109d2576101008083540402835291602001916109fd565b820191906000526020600020905b8154815290600101906020018083116109e057829003601f168201915b505050505081526020016002820154815250508152602001906001019061093b565b50505091525050600682015460079092015490919084565b600060018383604051610a4b929190612071565b90815260200160405180910390209050610a6583836117f6565b50426006820155600781018054906000610a7e8361212e565b9091555050600581015460005b81811015610bd7576000836001016004018281548110610aad57610aad612148565b600091825260208220600390910201805460028201546040519294506001600160a01b0390911691610ae3906001860190612177565b60006040518083038185875af1925050503d8060008114610b20576040519150601f19603f3d011682016040523d82523d6000602084013e610b25565b606091505b5050905080610bc25760405162461bcd60e51b815260206004820152604c60248201527f447269707069653a20647269702077617320756e7375636365737366756c2c2060448201527f706c6561736520636865636b20796f757220636f6e66696775726174696f6e2060648201527f666f72206d697374616b65730000000000000000000000000000000000000000608482015260a401610477565b50508080610bcf9061212e565b915050610a8b565b508383604051610be8929190612071565b60405180910390207fea21435419aad9c54a9d90e2522b6f60bd566401f36fcef661f5f5a28cc0d2c685853342604051610c259493929190612218565b60405180910390a250505050565b6000546001600160a01b03163314610c7c5760405162461bcd60e51b815260206004820152600c60248201526b15539055551213d49256915160a21b6044820152606401610477565b610c86814761072e565b50565b600080546060906001600160a01b03163314610cd65760405162461bcd60e51b815260206004820152600c60248201526b15539055551213d49256915160a21b6044820152606401610477565b846001600160a01b03168385604051610cef9190612248565b60006040518083038185875af1925050503d8060008114610d2c576040519150601f19603f3d011682016040523d82523d6000602084013e610d31565b606091505b5090969095509350505050565b60028181548110610d4e57600080fd5b906000526020600020016000915090508054610d69906120ac565b80601f0160208091040260200160405190810160405280929190818152602001828054610d95906120ac565b8015610de25780601f10610db757610100808354040283529160200191610de2565b820191906000526020600020905b815481529060010190602001808311610dc557829003601f168201915b505050505081565b600060018383604051610dfe929190612071565b90815260405190819003602001902060020154905092915050565b6000546001600160a01b03163314610e625760405162461bcd60e51b815260206004820152600c60248201526b15539055551213d49256915160a21b6044820152606401610477565b6040517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152610eeb90839083906001600160a01b038316906370a0823190602401602060405180830381865afa158015610ec7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102019190612264565b5050565b6000546001600160a01b03163314610f385760405162461bcd60e51b815260206004820152600c60248201526b15539055551213d49256915160a21b6044820152606401610477565b6000816003811115610f4c57610f4c611aed565b03610fe55760405162461bcd60e51b815260206004820152604160248201527f447269707069653a2064726970207374617475732063616e206e65766572206260448201527f6520736574206261636b20746f204e4f4e45206166746572206372656174696f60648201527f6e00000000000000000000000000000000000000000000000000000000000000608482015260a401610477565b600060018484604051610ff9929190612071565b9081526040519081900360200190205460ff169050600081600381111561102257611022611aed565b036110bb5760405162461bcd60e51b815260206004820152604160248201527f447269707069653a206472697020776974682074686174206e616d6520646f6560448201527f73206e6f7420657869737420616e642063616e6e6f742062652075706461746560648201527f6400000000000000000000000000000000000000000000000000000000000000608482015260a401610477565b60038160038111156110cf576110cf611aed565b036111695760405162461bcd60e51b8152602060048201526044602482018190527f447269707069653a206472697020776974682074686174206e616d6520686173908201527f206265656e20617263686976656420616e642063616e6e6f742062652075706460648201527f6174656400000000000000000000000000000000000000000000000000000000608482015260a401610477565b81600381111561117b5761117b611aed565b81600381111561118d5761118d611aed565b036112265760405162461bcd60e51b815260206004820152604860248201527f447269707069653a2063616e6e6f74207365742064726970207374617475732060448201527f746f207468652073616d6520737461747573206173206974732063757272656e60648201527f7420737461747573000000000000000000000000000000000000000000000000608482015260a401610477565b600382600381111561123a5761123a611aed565b036112c657600181600381111561125357611253611aed565b146112c65760405162461bcd60e51b815260206004820152603860248201527f447269707069653a2064726970206d757374206669727374206265207061757360448201527f6564206265666f7265206265696e6720617263686976656400000000000000006064820152608401610477565b81600185856040516112d9929190612071565b908152604051908190036020019020805460ff1916600183600381111561130257611302611aed565b02179055508383604051611317929190612071565b60405180910390207f407cb3ad05e60ec498fb39417c7a4f6b82d5ba80f82fe512a37b02c93181a2a1858585604051610c259392919061227d565b6000546001600160a01b0316331461139b5760405162461bcd60e51b815260206004820152600c60248201526b15539055551213d49256915160a21b6044820152606401610477565b6000600184846040516113af929190612071565b9081526040519081900360200190205460ff1660038111156113d3576113d3611aed565b146114465760405162461bcd60e51b815260206004820152602b60248201527f447269707069653a206472697020776974682074686174206e616d6520616c7260448201527f65616479206578697374730000000000000000000000000000000000000000006064820152608401610477565b61145360208201826122a0565b156114d5576020810135156114d05760405162461bcd60e51b815260206004820152603e60248201527f447269707069653a20696620616c6c6f77696e67207265656e7472616e74206460448201527f7269702c206d7573742073657420696e74657276616c20746f207a65726f00006064820152608401610477565b611576565b60008160200135116115765760405162461bcd60e51b8152602060048201526044602482018190527f447269707069653a20696e74657276616c206d75737420626520677265617465908201527f72207468616e207a65726f2069662064726970206973206e6f74207265656e7460648201527f72616e7400000000000000000000000000000000000000000000000000000000608482015260a401610477565b60006001848460405161158a929190612071565b90815260405160209181900382019020805460ff1916600117815591506115b3908301836122a0565b60018201805460ff1916911515919091179055602082013560028201556115e06060830160408401611b7a565b6003820180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905561162760608301836122bd565b6004830191611637919083612353565b5060005b6116486080840184612414565b90508110156116bb57600582016116626080850185612414565b8381811061167257611672612148565b9050602002810190611684919061245e565b8154600181018355600092835260209092209091600302016116a68282612492565b505080806116b39061212e565b91505061163b565b50600280546001810182556000919091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace016116f9848683612353565b50838360405161170a929190612071565b60405180910390207fe38d8d98e6cc66f6f520d483c6c5a89289681f897799c4c29d767cf57e76d9a6858585604051610c25939291906126d5565b600080546060906001600160a01b031633146117925760405162461bcd60e51b815260206004820152600c60248201526b15539055551213d49256915160a21b6044820152606401610477565b836001600160a01b0316836040516117aa9190612248565b600060405180830381855af49150503d80600081146117e5576040519150601f19603f3d011682016040523d82523d6000602084013e6117ea565b606091505b50909590945092505050565b6000806001848460405161180b929190612071565b90815260405190819003602001902090506002815460ff16600381111561183457611834611aed565b146118a9576040805162461bcd60e51b81526020600482015260248101919091527f447269707069653a2073656c6563746564206472697020646f6573206e6f742060448201527f6578697374206f72206973206e6f742063757272656e746c79206163746976656064820152608401610477565b6002810154600682015442916118be916127b1565b11156119325760405162461bcd60e51b815260206004820152603660248201527f447269707069653a206472697020696e74657276616c20686173206e6f74206560448201527f6c61707365642073696e6365206c6173742064726970000000000000000000006064820152608401610477565b60038101546040517fc64b3bb50000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063c64b3bb59061197f90600480860191016127c9565b602060405180830381865afa15801561199c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119c0919061208f565b611a585760405162461bcd60e51b815260206004820152604260248201527f447269707069653a2064726970636865636b206661696c656420736f2064726960448201527f70206973206e6f742079657420726561647920746f206265207472696767657260648201527f6564000000000000000000000000000000000000000000000000000000000000608482015260a401610477565b5060019392505050565b60008083601f840112611a7457600080fd5b50813567ffffffffffffffff811115611a8c57600080fd5b602083019150836020828501011115611aa457600080fd5b9250929050565b60008060208385031215611abe57600080fd5b823567ffffffffffffffff811115611ad557600080fd5b611ae185828601611a62565b90969095509350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60048110611b53577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b9052565b6020810161042c8284611b1c565b6001600160a01b0381168114610c8657600080fd5b600060208284031215611b8c57600080fd5b8135611b9781611b65565b9392505050565b600080600060608486031215611bb357600080fd5b8335611bbe81611b65565b92506020840135611bce81611b65565b929592945050506040919091013590565b60008060408385031215611bf257600080fd5b8235611bfd81611b65565b946020939093013593505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600067ffffffffffffffff80841115611c5557611c55611c0b565b604051601f8501601f19908116603f01168101908282118183101715611c7d57611c7d611c0b565b81604052809350858152868686011115611c9657600080fd5b858560208301376000602087830101525050509392505050565b600060208284031215611cc257600080fd5b813567ffffffffffffffff811115611cd957600080fd5b8201601f81018413611cea57600080fd5b611cf984823560208401611c3a565b949350505050565b60005b83811015611d1c578181015183820152602001611d04565b83811115611d2b576000848401525b50505050565b60008151808452611d49816020860160208601611d01565b601f01601f19169290920160200192915050565b611d678186611b1c565b600060206080818401528551151560808401528086015160a08401526040808701516001600160a01b0380821660c0870152606091508189015160a060e0880152611db6610120880182611d31565b60808b01518882037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80016101008a0152805180835291925086019086830190600581901b8401880160005b82811015611e4c57601f1986830301845284518781511683528a810151898c850152611e2f8a850182611d31565b918b0151938b0193909352948a0194938a01939150600101611e01565b50968a019b909b52505050509093019390935250949350505050565b600082601f830112611e7957600080fd5b611b9783833560208501611c3a565b600080600060608486031215611e9d57600080fd5b8335611ea881611b65565b9250602084013567ffffffffffffffff811115611ec457600080fd5b611ed086828701611e68565b925050604084013590509250925092565b8215158152604060208201526000611cf96040830184611d31565b600060208284031215611f0e57600080fd5b5035919050565b602081526000611b976020830184611d31565b60008060408385031215611f3b57600080fd5b8235611f4681611b65565b91506020830135611f5681611b65565b809150509250929050565b600080600060408486031215611f7657600080fd5b833567ffffffffffffffff811115611f8d57600080fd5b611f9986828701611a62565b909450925050602084013560048110611fb157600080fd5b809150509250925092565b600080600060408486031215611fd157600080fd5b833567ffffffffffffffff80821115611fe957600080fd5b611ff587838801611a62565b9095509350602086013591508082111561200e57600080fd5b50840160a08187031215611fb157600080fd5b6000806040838503121561203457600080fd5b823561203f81611b65565b9150602083013567ffffffffffffffff81111561205b57600080fd5b61206785828601611e68565b9150509250929050565b8183823760009101908152919050565b8015158114610c8657600080fd5b6000602082840312156120a157600080fd5b8151611b9781612081565b600181811c908216806120c057607f821691505b6020821081036120f9577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006000198203612141576121416120ff565b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000808354612185816120ac565b6001828116801561219d57600181146121b2576121e1565b60ff19841687528215158302870194506121e1565b8760005260208060002060005b858110156121d85781548a8201529084019082016121bf565b50505082870194505b50929695505050505050565b818352818160208501375060006020828401015260006020601f19601f840116840101905092915050565b60608152600061222c6060830186886121ed565b6001600160a01b03949094166020830152506040015292915050565b6000825161225a818460208701611d01565b9190910192915050565b60006020828403121561227657600080fd5b5051919050565b6040815260006122916040830185876121ed565b9050611cf96020830184611b1c565b6000602082840312156122b257600080fd5b8135611b9781612081565b6000808335601e198436030181126122d457600080fd5b83018035915067ffffffffffffffff8211156122ef57600080fd5b602001915036819003821315611aa457600080fd5b601f82111561234e57600081815260208120601f850160051c8101602086101561232b5750805b601f850160051c820191505b8181101561234a57828155600101612337565b5050505b505050565b67ffffffffffffffff83111561236b5761236b611c0b565b61237f8361237983546120ac565b83612304565b6000601f8411600181146123b3576000851561239b5750838201355b600019600387901b1c1916600186901b17835561240d565b600083815260209020601f19861690835b828110156123e457868501358255602094850194600190920191016123c4565b50868210156124015760001960f88860031b161c19848701351681555b505060018560011b0183555b5050505050565b6000808335601e1984360301811261242b57600080fd5b83018035915067ffffffffffffffff82111561244657600080fd5b6020019150600581901b3603821315611aa457600080fd5b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa183360301811261225a57600080fd5b813561249d81611b65565b6001600160a01b0381167fffffffffffffffffffffffff0000000000000000000000000000000000000000835416178255506001808201602080850135601e198636030181126124ec57600080fd5b8501803567ffffffffffffffff81111561250557600080fd5b803603838301131561251657600080fd5b61252a8161252486546120ac565b86612304565b6000601f821160018114612560576000831561254857508382018501355b600019600385901b1c1916600184901b1786556125b9565b600086815260209020601f19841690835b8281101561259057868501880135825593870193908901908701612571565b50848210156125af5760001960f88660031b161c198785880101351681555b50508683881b0186555b50505050505050604082013560028201555050565b6000808335601e198436030181126125e557600080fd5b830160208101925035905067ffffffffffffffff81111561260557600080fd5b803603821315611aa457600080fd5b81835260006020808501808196508560051b81019150846000805b888110156126c7578385038a5282357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa189360301811261266d578283fd5b88016060813561267c81611b65565b6001600160a01b03168752612693828901836125ce565b828a8a01526126a5838a0182846121ed565b604094850135999094019890985250509986019994509185019160010161262f565b509298975050505050505050565b6040815260006126e96040830185876121ed565b828103602084015283356126fc81612081565b1515815260208481013590820152604084013561271881611b65565b6001600160a01b0316604082015261273360608501856125ce565b60a0606084015261274860a0840182846121ed565b9150506080850135601e1986360301811261276257600080fd5b850160208101903567ffffffffffffffff81111561277f57600080fd5b8060051b360382131561279157600080fd5b83830360808501526127a4838284612614565b9998505050505050505050565b600082198211156127c4576127c46120ff565b500190565b60006020808352600084546127dd816120ac565b808487015260406001808416600081146127fe576001811461281857612846565b60ff198516838a01528284151560051b8a01019550612846565b896000528660002060005b8581101561283e5781548b8201860152908301908801612823565b8a0184019650505b50939897505050505050505056fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R4\x80\x15b\0\0\x11W`\0\x80\xFD[P`@Qb\0)/8\x03\x80b\0)/\x839\x81\x01`@\x81\x90Rb\0\x004\x91b\0\0\x8CV[`\0\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x83\x16\x90\x81\x17\x82U`@Q\x83\x92\x83\x92\x83\x92\x90\x91\x90\x7F\x82\x92\xFC\xE1\x8F\xA6\x9E\xDFM\xB7\xB9N\xA2\xE5\x82A\xDF\n\xE5\x7F\x97\xE0\xA6\xC9\xB2\x90g\x02\x8B\xF9-v\x90\x82\x90\xA3PPPPb\0\0\xBEV[`\0` \x82\x84\x03\x12\x15b\0\0\x9FW`\0\x80\xFD[\x81Q`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14b\0\0\xB7W`\0\x80\xFD[\x93\x92PPPV[a(a\x80b\0\0\xCE`\09`\0\xF3\xFE`\x80`@R`\x046\x10a\x01-W`\x005`\xE0\x1C\x80c\x82\xCBkr\x11a\0\xA5W\x80c\x9B\xC9M\x01\x11a\0tW\x80c\xED\xEEb9\x11a\0YW\x80c\xED\xEEb9\x14a\x03\xAAW\x80c\xF1\xD4+G\x14a\x03\xBDW\x80c\xFC>>\xBA\x14a\x03\xD2W`\0\x80\xFD[\x80c\x9B\xC9M\x01\x14a\x03jW\x80c\xE5Q\xCD\xAA\x14a\x03\x8AW`\0\x80\xFD[\x80c\x82\xCBkr\x14a\x02\xB7W\x80c\x8D\xA5\xCB[\x14a\x02\xE4W\x80c\x90T|\x14\x14a\x03\x1CW\x80c\x94V\xFB\xCC\x14a\x03JW`\0\x80\xFD[\x80cG\x82\xF7y\x11a\0\xFCW\x80cg\x14\x8C\xD2\x11a\0\xE1W\x80cg\x14\x8C\xD2\x14a\x02VW\x80ci\r\x83 \x14a\x02vW\x80cn-D\xAE\x14a\x02\x96W`\0\x80\xFD[\x80cG\x82\xF7y\x14a\x02\x06W\x80cM\x7F\xBAn\x14a\x02&W`\0\x80\xFD[\x80c\r\x8FF\x97\x14a\x01nW\x80c\x13\xAF@5\x14a\x01\xA4W\x80c@%\xFE\xB2\x14a\x01\xC6W\x80cD\0L\xC1\x14a\x01\xE6W`\0\x80\xFD[6a\x01iW`@Q4\x81R3\x90\x7FA\x03%~\xAA\xC9\x83\xCAy\xA7\r(\xF9\r\xFCO\xA1ka\x9B\xB0\xC1~\xE7\xCA\xB0\xD4\x03L'\x96$\x90` \x01`@Q\x80\x91\x03\x90\xA2\0[`\0\x80\xFD[4\x80\x15a\x01zW`\0\x80\xFD[Pa\x01\x8Ea\x01\x896`\x04a\x1A\xABV[a\x04\x02V[`@Qa\x01\x9B\x91\x90a\x1BWV[`@Q\x80\x91\x03\x90\xF3[4\x80\x15a\x01\xB0W`\0\x80\xFD[Pa\x01\xC4a\x01\xBF6`\x04a\x1BzV[a\x042V[\0[4\x80\x15a\x01\xD2W`\0\x80\xFD[Pa\x01\xC4a\x01\xE16`\x04a\x1B\x9EV[a\x04\xE3V[4\x80\x15a\x01\xF2W`\0\x80\xFD[Pa\x01\xC4a\x02\x016`\x04a\x1B\x9EV[a\x06\tV[4\x80\x15a\x02\x12W`\0\x80\xFD[Pa\x01\xC4a\x02!6`\x04a\x1B\xDFV[a\x07.V[4\x80\x15a\x022W`\0\x80\xFD[Pa\x02Fa\x02A6`\x04a\x1C\xB0V[a\x08\x1FV[`@Qa\x01\x9B\x94\x93\x92\x91\x90a\x1D]V[4\x80\x15a\x02bW`\0\x80\xFD[Pa\x01\xC4a\x02q6`\x04a\x1A\xABV[a\n7V[4\x80\x15a\x02\x82W`\0\x80\xFD[Pa\x01\xC4a\x02\x916`\x04a\x1BzV[a\x0C3V[a\x02\xA9a\x02\xA46`\x04a\x1E\x88V[a\x0C\x89V[`@Qa\x01\x9B\x92\x91\x90a\x1E\xE1V[4\x80\x15a\x02\xC3W`\0\x80\xFD[Pa\x02\xD7a\x02\xD26`\x04a\x1E\xFCV[a\r>V[`@Qa\x01\x9B\x91\x90a\x1F\x15V[4\x80\x15a\x02\xF0W`\0\x80\xFD[P`\0Ta\x03\x04\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x01a\x01\x9BV[4\x80\x15a\x03(W`\0\x80\xFD[Pa\x03=`\0\xFD[PPPP\x82`\x01`\x01`\xA0\x1B\x03\x16\x82`\x01`\x01`\xA0\x1B\x03\x163`\x01`\x01`\xA0\x1B\x03\x16\x7F0\xB4x\xA5\xE1\x96\xE5X\x86\"\x8A\xA8{\xA7J}\xFE\xBAe^\nM{\xA2u\xEA\xBF\xC2*\xAB\xB7\xA8\x84`@Qa\x05\xFC\x91\x81R` \x01\x90V[`@Q\x80\x91\x03\x90\xA4PPPV[`\0T`\x01`\x01`\xA0\x1B\x03\x163\x14a\x06RW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x0C`$\x82\x01Rk\x15S\x90UU\x12\x13\xD4\x92V\x91Q`\xA2\x1B`D\x82\x01R`d\x01a\x04wV[`@Q\x7F\xA9\x05\x9C\xBB\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`\x01`\x01`\xA0\x1B\x03\x83\x81\x16`\x04\x83\x01R`$\x82\x01\x83\x90R\x84\x16\x90c\xA9\x05\x9C\xBB\x90`D\x01` `@Q\x80\x83\x03\x81`\0\x87Z\xF1\x15\x80\x15a\x06\xBAW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x06\xDE\x91\x90a \x8FV[P\x82`\x01`\x01`\xA0\x1B\x03\x16\x82`\x01`\x01`\xA0\x1B\x03\x163`\x01`\x01`\xA0\x1B\x03\x16\x7Fk\0\xF1\xC7\x88?\x05;\xA8>\x90\x7F\xD1\x96[\"\xFF\xFEr_\x04c\x8AVl\xDB\xFA\x84`@Qa\x05\xFC\x91\x81R` \x01\x90V[`\0T`\x01`\x01`\xA0\x1B\x03\x163\x14a\x07wW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x0C`$\x82\x01Rk\x15S\x90UU\x12\x13\xD4\x92V\x91Q`\xA2\x1B`D\x82\x01R`d\x01a\x04wV[`\0\x82`\x01`\x01`\xA0\x1B\x03\x16\x82`@Q`\0`@Q\x80\x83\x03\x81\x85\x87Z\xF1\x92PPP=\x80`\0\x81\x14a\x07\xC4W`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=`\0` \x84\x01>a\x07\xC9V[``\x91P[PP\x90P\x82`\x01`\x01`\xA0\x1B\x03\x163`\x01`\x01`\xA0\x1B\x03\x16\x7F\x1F\x12\xAA\x8BmI-\xD9\xB9\x8E+\0\xB0\xB2\x080\xC2\xA7\xDE\xD6Z\xFA\xC1;`\xD1i\xA04\xAE\x90\xBC\x84`@Qa\x08\x12\x91\x81R` \x01\x90V[`@Q\x80\x91\x03\x90\xA3PPPV[\x80Q` \x81\x83\x01\x81\x01\x80Q`\x01\x80\x83R\x93\x83\x01\x94\x83\x01\x94\x90\x94 \x93\x90R\x82T`@\x80Q`\xA0\x81\x01\x82R\x93\x85\x01\x80T`\xFF\x90\x81\x16\x15\x15\x86R`\x02\x87\x01T\x94\x86\x01\x94\x90\x94R`\x03\x86\x01T`\x01`\x01`\xA0\x1B\x03\x16\x91\x85\x01\x91\x90\x91R`\x04\x85\x01\x80T\x93\x90\x92\x16\x94\x93\x92\x90\x91``\x84\x01\x91a\x08\x94\x90a \xACV[\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x92\x91\x90\x81\x81R` \x01\x82\x80Ta\x08\xC0\x90a \xACV[\x80\x15a\t\rW\x80`\x1F\x10a\x08\xE2Wa\x01\0\x80\x83T\x04\x02\x83R\x91` \x01\x91a\t\rV[\x82\x01\x91\x90`\0R` `\0 \x90[\x81T\x81R\x90`\x01\x01\x90` \x01\x80\x83\x11a\x08\xF0W\x82\x90\x03`\x1F\x16\x82\x01\x91[PPPPP\x81R` \x01`\x04\x82\x01\x80T\x80` \x02` \x01`@Q\x90\x81\x01`@R\x80\x92\x91\x90\x81\x81R` \x01`\0\x90[\x82\x82\x10\x15a\n\x1FW`\0\x84\x81R` \x90\x81\x90 `@\x80Q``\x81\x01\x90\x91R`\x03\x85\x02\x90\x91\x01\x80T`\x01`\x01`\xA0\x1B\x03\x16\x82R`\x01\x81\x01\x80T\x92\x93\x91\x92\x91\x84\x01\x91a\t\x84\x90a \xACV[\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x92\x91\x90\x81\x81R` \x01\x82\x80Ta\t\xB0\x90a \xACV[\x80\x15a\t\xFDW\x80`\x1F\x10a\t\xD2Wa\x01\0\x80\x83T\x04\x02\x83R\x91` \x01\x91a\t\xFDV[\x82\x01\x91\x90`\0R` `\0 \x90[\x81T\x81R\x90`\x01\x01\x90` \x01\x80\x83\x11a\t\xE0W\x82\x90\x03`\x1F\x16\x82\x01\x91[PPPPP\x81R` \x01`\x02\x82\x01T\x81RPP\x81R` \x01\x90`\x01\x01\x90a\t;V[PPP\x91RPP`\x06\x82\x01T`\x07\x90\x92\x01T\x90\x91\x90\x84V[`\0`\x01\x83\x83`@Qa\nK\x92\x91\x90a qV[\x90\x81R` \x01`@Q\x80\x91\x03\x90 \x90Pa\ne\x83\x83a\x17\xF6V[PB`\x06\x82\x01U`\x07\x81\x01\x80T\x90`\0a\n~\x83a!.V[\x90\x91UPP`\x05\x81\x01T`\0[\x81\x81\x10\x15a\x0B\xD7W`\0\x83`\x01\x01`\x04\x01\x82\x81T\x81\x10a\n\xADWa\n\xADa!HV[`\0\x91\x82R` \x82 `\x03\x90\x91\x02\x01\x80T`\x02\x82\x01T`@Q\x92\x94P`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x91a\n\xE3\x90`\x01\x86\x01\x90a!wV[`\0`@Q\x80\x83\x03\x81\x85\x87Z\xF1\x92PPP=\x80`\0\x81\x14a\x0B W`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=`\0` \x84\x01>a\x0B%V[``\x91P[PP\x90P\x80a\x0B\xC2W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`L`$\x82\x01R\x7FDrippie: drip was unsuccessful, `D\x82\x01R\x7Fplease check your configuration `d\x82\x01R\x7Ffor mistakes\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x84\x82\x01R`\xA4\x01a\x04wV[PP\x80\x80a\x0B\xCF\x90a!.V[\x91PPa\n\x8BV[P\x83\x83`@Qa\x0B\xE8\x92\x91\x90a qV[`@Q\x80\x91\x03\x90 \x7F\xEA!CT\x19\xAA\xD9\xC5J\x9D\x90\xE2R+o`\xBDVd\x01\xF3o\xCE\xF6a\xF5\xF5\xA2\x8C\xC0\xD2\xC6\x85\x853B`@Qa\x0C%\x94\x93\x92\x91\x90a\"\x18V[`@Q\x80\x91\x03\x90\xA2PPPPV[`\0T`\x01`\x01`\xA0\x1B\x03\x163\x14a\x0C|W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x0C`$\x82\x01Rk\x15S\x90UU\x12\x13\xD4\x92V\x91Q`\xA2\x1B`D\x82\x01R`d\x01a\x04wV[a\x0C\x86\x81Ga\x07.V[PV[`\0\x80T``\x90`\x01`\x01`\xA0\x1B\x03\x163\x14a\x0C\xD6W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x0C`$\x82\x01Rk\x15S\x90UU\x12\x13\xD4\x92V\x91Q`\xA2\x1B`D\x82\x01R`d\x01a\x04wV[\x84`\x01`\x01`\xA0\x1B\x03\x16\x83\x85`@Qa\x0C\xEF\x91\x90a\"HV[`\0`@Q\x80\x83\x03\x81\x85\x87Z\xF1\x92PPP=\x80`\0\x81\x14a\r,W`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=`\0` \x84\x01>a\r1V[``\x91P[P\x90\x96\x90\x95P\x93PPPPV[`\x02\x81\x81T\x81\x10a\rNW`\0\x80\xFD[\x90`\0R` `\0 \x01`\0\x91P\x90P\x80Ta\ri\x90a \xACV[\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x92\x91\x90\x81\x81R` \x01\x82\x80Ta\r\x95\x90a \xACV[\x80\x15a\r\xE2W\x80`\x1F\x10a\r\xB7Wa\x01\0\x80\x83T\x04\x02\x83R\x91` \x01\x91a\r\xE2V[\x82\x01\x91\x90`\0R` `\0 \x90[\x81T\x81R\x90`\x01\x01\x90` \x01\x80\x83\x11a\r\xC5W\x82\x90\x03`\x1F\x16\x82\x01\x91[PPPPP\x81V[`\0`\x01\x83\x83`@Qa\r\xFE\x92\x91\x90a qV[\x90\x81R`@Q\x90\x81\x90\x03` \x01\x90 `\x02\x01T\x90P\x92\x91PPV[`\0T`\x01`\x01`\xA0\x1B\x03\x163\x14a\x0EbW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x0C`$\x82\x01Rk\x15S\x90UU\x12\x13\xD4\x92V\x91Q`\xA2\x1B`D\x82\x01R`d\x01a\x04wV[`@Q\x7Fp\xA0\x821\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\x81R0`\x04\x82\x01Ra\x0E\xEB\x90\x83\x90\x83\x90`\x01`\x01`\xA0\x1B\x03\x83\x16\x90cp\xA0\x821\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x0E\xC7W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x02\x01\x91\x90a\"dV[PPV[`\0T`\x01`\x01`\xA0\x1B\x03\x163\x14a\x0F8W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x0C`$\x82\x01Rk\x15S\x90UU\x12\x13\xD4\x92V\x91Q`\xA2\x1B`D\x82\x01R`d\x01a\x04wV[`\0\x81`\x03\x81\x11\x15a\x0FLWa\x0FLa\x1A\xEDV[\x03a\x0F\xE5W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`A`$\x82\x01R\x7FDrippie: drip status can never b`D\x82\x01R\x7Fe set back to NONE after creatio`d\x82\x01R\x7Fn\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x84\x82\x01R`\xA4\x01a\x04wV[`\0`\x01\x84\x84`@Qa\x0F\xF9\x92\x91\x90a qV[\x90\x81R`@Q\x90\x81\x90\x03` \x01\x90 T`\xFF\x16\x90P`\0\x81`\x03\x81\x11\x15a\x10\"Wa\x10\"a\x1A\xEDV[\x03a\x10\xBBW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`A`$\x82\x01R\x7FDrippie: drip with that name doe`D\x82\x01R\x7Fs not exist and cannot be update`d\x82\x01R\x7Fd\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x84\x82\x01R`\xA4\x01a\x04wV[`\x03\x81`\x03\x81\x11\x15a\x10\xCFWa\x10\xCFa\x1A\xEDV[\x03a\x11iW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`D`$\x82\x01\x81\x90R\x7FDrippie: drip with that name has\x90\x82\x01R\x7F been archived and cannot be upd`d\x82\x01R\x7Fated\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`\x84\x82\x01R`\xA4\x01a\x04wV[\x81`\x03\x81\x11\x15a\x11{Wa\x11{a\x1A\xEDV[\x81`\x03\x81\x11\x15a\x11\x8DWa\x11\x8Da\x1A\xEDV[\x03a\x12&W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`H`$\x82\x01R\x7FDrippie: cannot set drip status `D\x82\x01R\x7Fto the same status as its curren`d\x82\x01R\x7Ft status\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x84\x82\x01R`\xA4\x01a\x04wV[`\x03\x82`\x03\x81\x11\x15a\x12:Wa\x12:a\x1A\xEDV[\x03a\x12\xC6W`\x01\x81`\x03\x81\x11\x15a\x12SWa\x12Sa\x1A\xEDV[\x14a\x12\xC6W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`8`$\x82\x01R\x7FDrippie: drip must first be paus`D\x82\x01R\x7Fed before being archived\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x04wV[\x81`\x01\x85\x85`@Qa\x12\xD9\x92\x91\x90a qV[\x90\x81R`@Q\x90\x81\x90\x03` \x01\x90 \x80T`\xFF\x19\x16`\x01\x83`\x03\x81\x11\x15a\x13\x02Wa\x13\x02a\x1A\xEDV[\x02\x17\x90UP\x83\x83`@Qa\x13\x17\x92\x91\x90a qV[`@Q\x80\x91\x03\x90 \x7F@|\xB3\xAD\x05\xE6\x0E\xC4\x98\xFB9A|zOk\x82\xD5\xBA\x80\xF8/\xE5\x12\xA3{\x02\xC91\x81\xA2\xA1\x85\x85\x85`@Qa\x0C%\x93\x92\x91\x90a\"}V[`\0T`\x01`\x01`\xA0\x1B\x03\x163\x14a\x13\x9BW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x0C`$\x82\x01Rk\x15S\x90UU\x12\x13\xD4\x92V\x91Q`\xA2\x1B`D\x82\x01R`d\x01a\x04wV[`\0`\x01\x84\x84`@Qa\x13\xAF\x92\x91\x90a qV[\x90\x81R`@Q\x90\x81\x90\x03` \x01\x90 T`\xFF\x16`\x03\x81\x11\x15a\x13\xD3Wa\x13\xD3a\x1A\xEDV[\x14a\x14FW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FDrippie: drip with that name alr`D\x82\x01R\x7Feady exists\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x04wV[a\x14S` \x82\x01\x82a\"\xA0V[\x15a\x14\xD5W` \x81\x015\x15a\x14\xD0W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`>`$\x82\x01R\x7FDrippie: if allowing reentrant d`D\x82\x01R\x7Frip, must set interval to zero\0\0`d\x82\x01R`\x84\x01a\x04wV[a\x15vV[`\0\x81` \x015\x11a\x15vW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`D`$\x82\x01\x81\x90R\x7FDrippie: interval must be greate\x90\x82\x01R\x7Fr than zero if drip is not reent`d\x82\x01R\x7Frant\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`\x84\x82\x01R`\xA4\x01a\x04wV[`\0`\x01\x84\x84`@Qa\x15\x8A\x92\x91\x90a qV[\x90\x81R`@Q` \x91\x81\x90\x03\x82\x01\x90 \x80T`\xFF\x19\x16`\x01\x17\x81U\x91Pa\x15\xB3\x90\x83\x01\x83a\"\xA0V[`\x01\x82\x01\x80T`\xFF\x19\x16\x91\x15\x15\x91\x90\x91\x17\x90U` \x82\x015`\x02\x82\x01Ua\x15\xE0``\x83\x01`@\x84\x01a\x1BzV[`\x03\x82\x01\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16`\x01`\x01`\xA0\x1B\x03\x92\x90\x92\x16\x91\x90\x91\x17\x90Ua\x16'``\x83\x01\x83a\"\xBDV[`\x04\x83\x01\x91a\x167\x91\x90\x83a#SV[P`\0[a\x16H`\x80\x84\x01\x84a$\x14V[\x90P\x81\x10\x15a\x16\xBBW`\x05\x82\x01a\x16b`\x80\x85\x01\x85a$\x14V[\x83\x81\x81\x10a\x16rWa\x16ra!HV[\x90P` \x02\x81\x01\x90a\x16\x84\x91\x90a$^V[\x81T`\x01\x81\x01\x83U`\0\x92\x83R` \x90\x92 \x90\x91`\x03\x02\x01a\x16\xA6\x82\x82a$\x92V[PP\x80\x80a\x16\xB3\x90a!.V[\x91PPa\x16;V[P`\x02\x80T`\x01\x81\x01\x82U`\0\x91\x90\x91R\x7F@W\x87\xFA\x12\xA8#\xE0\xF2\xB7c\x1C\xC4\x1B;\xA8\x82\x8B3!\xCA\x81\x11\x11\xFAu\xCD:\xA3\xBBZ\xCE\x01a\x16\xF9\x84\x86\x83a#SV[P\x83\x83`@Qa\x17\n\x92\x91\x90a qV[`@Q\x80\x91\x03\x90 \x7F\xE3\x8D\x8D\x98\xE6\xCCf\xF6\xF5 \xD4\x83\xC6\xC5\xA8\x92\x89h\x1F\x89w\x99\xC4\xC2\x9Dv|\xF5~v\xD9\xA6\x85\x85\x85`@Qa\x0C%\x93\x92\x91\x90a&\xD5V[`\0\x80T``\x90`\x01`\x01`\xA0\x1B\x03\x163\x14a\x17\x92W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x0C`$\x82\x01Rk\x15S\x90UU\x12\x13\xD4\x92V\x91Q`\xA2\x1B`D\x82\x01R`d\x01a\x04wV[\x83`\x01`\x01`\xA0\x1B\x03\x16\x83`@Qa\x17\xAA\x91\x90a\"HV[`\0`@Q\x80\x83\x03\x81\x85Z\xF4\x91PP=\x80`\0\x81\x14a\x17\xE5W`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=`\0` \x84\x01>a\x17\xEAV[``\x91P[P\x90\x95\x90\x94P\x92PPPV[`\0\x80`\x01\x84\x84`@Qa\x18\x0B\x92\x91\x90a qV[\x90\x81R`@Q\x90\x81\x90\x03` \x01\x90 \x90P`\x02\x81T`\xFF\x16`\x03\x81\x11\x15a\x184Wa\x184a\x1A\xEDV[\x14a\x18\xA9W`@\x80QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`$\x81\x01\x91\x90\x91R\x7FDrippie: selected drip does not `D\x82\x01R\x7Fexist or is not currently active`d\x82\x01R`\x84\x01a\x04wV[`\x02\x81\x01T`\x06\x82\x01TB\x91a\x18\xBE\x91a'\xB1V[\x11\x15a\x192W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`6`$\x82\x01R\x7FDrippie: drip interval has not e`D\x82\x01R\x7Flapsed since last drip\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x04wV[`\x03\x81\x01T`@Q\x7F\xC6K;\xB5\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`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x90c\xC6K;\xB5\x90a\x19\x7F\x90`\x04\x80\x86\x01\x91\x01a'\xC9V[` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x19\x9CW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x19\xC0\x91\x90a \x8FV[a\x1AXW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`B`$\x82\x01R\x7FDrippie: dripcheck failed so dri`D\x82\x01R\x7Fp is not yet ready to be trigger`d\x82\x01R\x7Fed\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x84\x82\x01R`\xA4\x01a\x04wV[P`\x01\x93\x92PPPV[`\0\x80\x83`\x1F\x84\x01\x12a\x1AtW`\0\x80\xFD[P\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x1A\x8CW`\0\x80\xFD[` \x83\x01\x91P\x83` \x82\x85\x01\x01\x11\x15a\x1A\xA4W`\0\x80\xFD[\x92P\x92\x90PV[`\0\x80` \x83\x85\x03\x12\x15a\x1A\xBEW`\0\x80\xFD[\x825g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x1A\xD5W`\0\x80\xFD[a\x1A\xE1\x85\x82\x86\x01a\x1AbV[\x90\x96\x90\x95P\x93PPPPV[\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`!`\x04R`$`\0\xFD[`\x04\x81\x10a\x1BSW\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`!`\x04R`$`\0\xFD[\x90RV[` \x81\x01a\x04,\x82\x84a\x1B\x1CV[`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a\x0C\x86W`\0\x80\xFD[`\0` \x82\x84\x03\x12\x15a\x1B\x8CW`\0\x80\xFD[\x815a\x1B\x97\x81a\x1BeV[\x93\x92PPPV[`\0\x80`\0``\x84\x86\x03\x12\x15a\x1B\xB3W`\0\x80\xFD[\x835a\x1B\xBE\x81a\x1BeV[\x92P` \x84\x015a\x1B\xCE\x81a\x1BeV[\x92\x95\x92\x94PPP`@\x91\x90\x91\x015\x90V[`\0\x80`@\x83\x85\x03\x12\x15a\x1B\xF2W`\0\x80\xFD[\x825a\x1B\xFD\x81a\x1BeV[\x94` \x93\x90\x93\x015\x93PPPV[\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[`\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x84\x11\x15a\x1CUWa\x1CUa\x1C\x0BV[`@Q`\x1F\x85\x01`\x1F\x19\x90\x81\x16`?\x01\x16\x81\x01\x90\x82\x82\x11\x81\x83\x10\x17\x15a\x1C}Wa\x1C}a\x1C\x0BV[\x81`@R\x80\x93P\x85\x81R\x86\x86\x86\x01\x11\x15a\x1C\x96W`\0\x80\xFD[\x85\x85` \x83\x017`\0` \x87\x83\x01\x01RPPP\x93\x92PPPV[`\0` \x82\x84\x03\x12\x15a\x1C\xC2W`\0\x80\xFD[\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x1C\xD9W`\0\x80\xFD[\x82\x01`\x1F\x81\x01\x84\x13a\x1C\xEAW`\0\x80\xFD[a\x1C\xF9\x84\x825` \x84\x01a\x1C:V[\x94\x93PPPPV[`\0[\x83\x81\x10\x15a\x1D\x1CW\x81\x81\x01Q\x83\x82\x01R` \x01a\x1D\x04V[\x83\x81\x11\x15a\x1D+W`\0\x84\x84\x01R[PPPPV[`\0\x81Q\x80\x84Ra\x1DI\x81` \x86\x01` \x86\x01a\x1D\x01V[`\x1F\x01`\x1F\x19\x16\x92\x90\x92\x01` \x01\x92\x91PPV[a\x1Dg\x81\x86a\x1B\x1CV[`\0` `\x80\x81\x84\x01R\x85Q\x15\x15`\x80\x84\x01R\x80\x86\x01Q`\xA0\x84\x01R`@\x80\x87\x01Q`\x01`\x01`\xA0\x1B\x03\x80\x82\x16`\xC0\x87\x01R``\x91P\x81\x89\x01Q`\xA0`\xE0\x88\x01Ra\x1D\xB6a\x01 \x88\x01\x82a\x1D1V[`\x80\x8B\x01Q\x88\x82\x03\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x01a\x01\0\x8A\x01R\x80Q\x80\x83R\x91\x92P\x86\x01\x90\x86\x83\x01\x90`\x05\x81\x90\x1B\x84\x01\x88\x01`\0[\x82\x81\x10\x15a\x1ELW`\x1F\x19\x86\x83\x03\x01\x84R\x84Q\x87\x81Q\x16\x83R\x8A\x81\x01Q\x89\x8C\x85\x01Ra\x1E/\x8A\x85\x01\x82a\x1D1V[\x91\x8B\x01Q\x93\x8B\x01\x93\x90\x93R\x94\x8A\x01\x94\x93\x8A\x01\x93\x91P`\x01\x01a\x1E\x01V[P\x96\x8A\x01\x9B\x90\x9BRPPPP\x90\x93\x01\x93\x90\x93RP\x94\x93PPPPV[`\0\x82`\x1F\x83\x01\x12a\x1EyW`\0\x80\xFD[a\x1B\x97\x83\x835` \x85\x01a\x1C:V[`\0\x80`\0``\x84\x86\x03\x12\x15a\x1E\x9DW`\0\x80\xFD[\x835a\x1E\xA8\x81a\x1BeV[\x92P` \x84\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x1E\xC4W`\0\x80\xFD[a\x1E\xD0\x86\x82\x87\x01a\x1EhV[\x92PP`@\x84\x015\x90P\x92P\x92P\x92V[\x82\x15\x15\x81R`@` \x82\x01R`\0a\x1C\xF9`@\x83\x01\x84a\x1D1V[`\0` \x82\x84\x03\x12\x15a\x1F\x0EW`\0\x80\xFD[P5\x91\x90PV[` \x81R`\0a\x1B\x97` \x83\x01\x84a\x1D1V[`\0\x80`@\x83\x85\x03\x12\x15a\x1F;W`\0\x80\xFD[\x825a\x1FF\x81a\x1BeV[\x91P` \x83\x015a\x1FV\x81a\x1BeV[\x80\x91PP\x92P\x92\x90PV[`\0\x80`\0`@\x84\x86\x03\x12\x15a\x1FvW`\0\x80\xFD[\x835g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x1F\x8DW`\0\x80\xFD[a\x1F\x99\x86\x82\x87\x01a\x1AbV[\x90\x94P\x92PP` \x84\x015`\x04\x81\x10a\x1F\xB1W`\0\x80\xFD[\x80\x91PP\x92P\x92P\x92V[`\0\x80`\0`@\x84\x86\x03\x12\x15a\x1F\xD1W`\0\x80\xFD[\x835g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x1F\xE9W`\0\x80\xFD[a\x1F\xF5\x87\x83\x88\x01a\x1AbV[\x90\x95P\x93P` \x86\x015\x91P\x80\x82\x11\x15a \x0EW`\0\x80\xFD[P\x84\x01`\xA0\x81\x87\x03\x12\x15a\x1F\xB1W`\0\x80\xFD[`\0\x80`@\x83\x85\x03\x12\x15a 4W`\0\x80\xFD[\x825a ?\x81a\x1BeV[\x91P` \x83\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a [W`\0\x80\xFD[a g\x85\x82\x86\x01a\x1EhV[\x91PP\x92P\x92\x90PV[\x81\x83\x827`\0\x91\x01\x90\x81R\x91\x90PV[\x80\x15\x15\x81\x14a\x0C\x86W`\0\x80\xFD[`\0` \x82\x84\x03\x12\x15a \xA1W`\0\x80\xFD[\x81Qa\x1B\x97\x81a \x81V[`\x01\x81\x81\x1C\x90\x82\x16\x80a \xC0W`\x7F\x82\x16\x91P[` \x82\x10\x81\x03a \xF9W\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`\"`\x04R`$`\0\xFD[P\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`\x11`\x04R`$`\0\xFD[`\0`\0\x19\x82\x03a!AWa!Aa \xFFV[P`\x01\x01\x90V[\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`2`\x04R`$`\0\xFD[`\0\x80\x83Ta!\x85\x81a \xACV[`\x01\x82\x81\x16\x80\x15a!\x9DW`\x01\x81\x14a!\xB2Wa!\xE1V[`\xFF\x19\x84\x16\x87R\x82\x15\x15\x83\x02\x87\x01\x94Pa!\xE1V[\x87`\0R` \x80`\0 `\0[\x85\x81\x10\x15a!\xD8W\x81T\x8A\x82\x01R\x90\x84\x01\x90\x82\x01a!\xBFV[PPP\x82\x87\x01\x94P[P\x92\x96\x95PPPPPPV[\x81\x83R\x81\x81` \x85\x017P`\0` \x82\x84\x01\x01R`\0` `\x1F\x19`\x1F\x84\x01\x16\x84\x01\x01\x90P\x92\x91PPV[``\x81R`\0a\",``\x83\x01\x86\x88a!\xEDV[`\x01`\x01`\xA0\x1B\x03\x94\x90\x94\x16` \x83\x01RP`@\x01R\x92\x91PPV[`\0\x82Qa\"Z\x81\x84` \x87\x01a\x1D\x01V[\x91\x90\x91\x01\x92\x91PPV[`\0` \x82\x84\x03\x12\x15a\"vW`\0\x80\xFD[PQ\x91\x90PV[`@\x81R`\0a\"\x91`@\x83\x01\x85\x87a!\xEDV[\x90Pa\x1C\xF9` \x83\x01\x84a\x1B\x1CV[`\0` \x82\x84\x03\x12\x15a\"\xB2W`\0\x80\xFD[\x815a\x1B\x97\x81a \x81V[`\0\x80\x835`\x1E\x19\x846\x03\x01\x81\x12a\"\xD4W`\0\x80\xFD[\x83\x01\x805\x91Pg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x15a\"\xEFW`\0\x80\xFD[` \x01\x91P6\x81\x90\x03\x82\x13\x15a\x1A\xA4W`\0\x80\xFD[`\x1F\x82\x11\x15a#NW`\0\x81\x81R` \x81 `\x1F\x85\x01`\x05\x1C\x81\x01` \x86\x10\x15a#+WP\x80[`\x1F\x85\x01`\x05\x1C\x82\x01\x91P[\x81\x81\x10\x15a#JW\x82\x81U`\x01\x01a#7V[PPP[PPPV[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11\x15a#kWa#ka\x1C\x0BV[a#\x7F\x83a#y\x83Ta \xACV[\x83a#\x04V[`\0`\x1F\x84\x11`\x01\x81\x14a#\xB3W`\0\x85\x15a#\x9BWP\x83\x82\x015[`\0\x19`\x03\x87\x90\x1B\x1C\x19\x16`\x01\x86\x90\x1B\x17\x83Ua$\rV[`\0\x83\x81R` \x90 `\x1F\x19\x86\x16\x90\x83[\x82\x81\x10\x15a#\xE4W\x86\x85\x015\x82U` \x94\x85\x01\x94`\x01\x90\x92\x01\x91\x01a#\xC4V[P\x86\x82\x10\x15a$\x01W`\0\x19`\xF8\x88`\x03\x1B\x16\x1C\x19\x84\x87\x015\x16\x81U[PP`\x01\x85`\x01\x1B\x01\x83U[PPPPPV[`\0\x80\x835`\x1E\x19\x846\x03\x01\x81\x12a$+W`\0\x80\xFD[\x83\x01\x805\x91Pg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x15a$FW`\0\x80\xFD[` \x01\x91P`\x05\x81\x90\x1B6\x03\x82\x13\x15a\x1A\xA4W`\0\x80\xFD[`\0\x825\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xA1\x836\x03\x01\x81\x12a\"ZW`\0\x80\xFD[\x815a$\x9D\x81a\x1BeV[`\x01`\x01`\xA0\x1B\x03\x81\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x83T\x16\x17\x82UP`\x01\x80\x82\x01` \x80\x85\x015`\x1E\x19\x866\x03\x01\x81\x12a$\xECW`\0\x80\xFD[\x85\x01\x805g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a%\x05W`\0\x80\xFD[\x806\x03\x83\x83\x01\x13\x15a%\x16W`\0\x80\xFD[a%*\x81a%$\x86Ta \xACV[\x86a#\x04V[`\0`\x1F\x82\x11`\x01\x81\x14a%`W`\0\x83\x15a%HWP\x83\x82\x01\x85\x015[`\0\x19`\x03\x85\x90\x1B\x1C\x19\x16`\x01\x84\x90\x1B\x17\x86Ua%\xB9V[`\0\x86\x81R` \x90 `\x1F\x19\x84\x16\x90\x83[\x82\x81\x10\x15a%\x90W\x86\x85\x01\x88\x015\x82U\x93\x87\x01\x93\x90\x89\x01\x90\x87\x01a%qV[P\x84\x82\x10\x15a%\xAFW`\0\x19`\xF8\x86`\x03\x1B\x16\x1C\x19\x87\x85\x88\x01\x015\x16\x81U[PP\x86\x83\x88\x1B\x01\x86U[PPPPPPP`@\x82\x015`\x02\x82\x01UPPV[`\0\x80\x835`\x1E\x19\x846\x03\x01\x81\x12a%\xE5W`\0\x80\xFD[\x83\x01` \x81\x01\x92P5\x90Pg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a&\x05W`\0\x80\xFD[\x806\x03\x82\x13\x15a\x1A\xA4W`\0\x80\xFD[\x81\x83R`\0` \x80\x85\x01\x80\x81\x96P\x85`\x05\x1B\x81\x01\x91P\x84`\0\x80[\x88\x81\x10\x15a&\xC7W\x83\x85\x03\x8AR\x825\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xA1\x896\x03\x01\x81\x12a&mW\x82\x83\xFD[\x88\x01``\x815a&|\x81a\x1BeV[`\x01`\x01`\xA0\x1B\x03\x16\x87Ra&\x93\x82\x89\x01\x83a%\xCEV[\x82\x8A\x8A\x01Ra&\xA5\x83\x8A\x01\x82\x84a!\xEDV[`@\x94\x85\x015\x99\x90\x94\x01\x98\x90\x98RPP\x99\x86\x01\x99\x94P\x91\x85\x01\x91`\x01\x01a&/V[P\x92\x98\x97PPPPPPPPV[`@\x81R`\0a&\xE9`@\x83\x01\x85\x87a!\xEDV[\x82\x81\x03` \x84\x01R\x835a&\xFC\x81a \x81V[\x15\x15\x81R` \x84\x81\x015\x90\x82\x01R`@\x84\x015a'\x18\x81a\x1BeV[`\x01`\x01`\xA0\x1B\x03\x16`@\x82\x01Ra'3``\x85\x01\x85a%\xCEV[`\xA0``\x84\x01Ra'H`\xA0\x84\x01\x82\x84a!\xEDV[\x91PP`\x80\x85\x015`\x1E\x19\x866\x03\x01\x81\x12a'bW`\0\x80\xFD[\x85\x01` \x81\x01\x905g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a'\x7FW`\0\x80\xFD[\x80`\x05\x1B6\x03\x82\x13\x15a'\x91W`\0\x80\xFD[\x83\x83\x03`\x80\x85\x01Ra'\xA4\x83\x82\x84a&\x14V[\x99\x98PPPPPPPPPV[`\0\x82\x19\x82\x11\x15a'\xC4Wa'\xC4a \xFFV[P\x01\x90V[`\0` \x80\x83R`\0\x84Ta'\xDD\x81a \xACV[\x80\x84\x87\x01R`@`\x01\x80\x84\x16`\0\x81\x14a'\xFEW`\x01\x81\x14a(\x18Wa(FV[`\xFF\x19\x85\x16\x83\x8A\x01R\x82\x84\x15\x15`\x05\x1B\x8A\x01\x01\x95Pa(FV[\x89`\0R\x86`\0 `\0[\x85\x81\x10\x15a(>W\x81T\x8B\x82\x01\x86\x01R\x90\x83\x01\x90\x88\x01a(#V[\x8A\x01\x84\x01\x96PP[P\x93\x98\x97PPPPPPPPV\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x60806040526004361061012d5760003560e01c806382cb6b72116100a55780639bc94d0111610074578063edee623911610059578063edee6239146103aa578063f1d42b47146103bd578063fc3e3eba146103d257600080fd5b80639bc94d011461036a578063e551cdaa1461038a57600080fd5b806382cb6b72146102b75780638da5cb5b146102e457806390547c141461031c5780639456fbcc1461034a57600080fd5b80634782f779116100fc57806367148cd2116100e157806367148cd214610256578063690d8320146102765780636e2d44ae1461029657600080fd5b80634782f779146102065780634d7fba6e1461022657600080fd5b80630d8f46971461016e57806313af4035146101a45780634025feb2146101c657806344004cc1146101e657600080fd5b366101695760405134815233907f4103257eaac983ca79a70d28f90dfc4fa16b619bb0c17ee7cab0d4034c2796249060200160405180910390a2005b600080fd5b34801561017a57600080fd5b5061018e610189366004611aab565b610402565b60405161019b9190611b57565b60405180910390f35b3480156101b057600080fd5b506101c46101bf366004611b7a565b610432565b005b3480156101d257600080fd5b506101c46101e1366004611b9e565b6104e3565b3480156101f257600080fd5b506101c4610201366004611b9e565b610609565b34801561021257600080fd5b506101c4610221366004611bdf565b61072e565b34801561023257600080fd5b50610246610241366004611cb0565b61081f565b60405161019b9493929190611d5d565b34801561026257600080fd5b506101c4610271366004611aab565b610a37565b34801561028257600080fd5b506101c4610291366004611b7a565b610c33565b6102a96102a4366004611e88565b610c89565b60405161019b929190611ee1565b3480156102c357600080fd5b506102d76102d2366004611efc565b610d3e565b60405161019b9190611f15565b3480156102f057600080fd5b50600054610304906001600160a01b031681565b6040516001600160a01b03909116815260200161019b565b34801561032857600080fd5b5061033c610337366004611aab565b610dea565b60405190815260200161019b565b34801561035657600080fd5b506101c4610365366004611f28565b610e19565b34801561037657600080fd5b506101c4610385366004611f61565b610eef565b34801561039657600080fd5b506101c46103a5366004611fbc565b611352565b6102a96103b8366004612021565b611745565b3480156103c957600080fd5b5060025461033c565b3480156103de57600080fd5b506103f26103ed366004611aab565b6117f6565b604051901515815260200161019b565b600060018383604051610416929190612071565b9081526040519081900360200190205460ff1690505b92915050565b6000546001600160a01b031633146104805760405162461bcd60e51b815260206004820152600c60248201526b15539055551213d49256915160a21b60448201526064015b60405180910390fd5b600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0383169081178255604051909133917f8292fce18fa69edf4db7b94ea2e58241df0ae57f97e0a6c9b29067028bf92d769190a350565b6000546001600160a01b0316331461052c5760405162461bcd60e51b815260206004820152600c60248201526b15539055551213d49256915160a21b6044820152606401610477565b6040517f23b872dd0000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b038381166024830152604482018390528416906323b872dd90606401600060405180830381600087803b15801561059557600080fd5b505af11580156105a9573d6000803e3d6000fd5b50505050826001600160a01b0316826001600160a01b0316336001600160a01b03167f30b478a5e196e55886228aa87ba74a7dfeba655e0a4d7ba275eabfc22aabb7a8846040516105fc91815260200190565b60405180910390a4505050565b6000546001600160a01b031633146106525760405162461bcd60e51b815260206004820152600c60248201526b15539055551213d49256915160a21b6044820152606401610477565b6040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b0383811660048301526024820183905284169063a9059cbb906044016020604051808303816000875af11580156106ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106de919061208f565b50826001600160a01b0316826001600160a01b0316336001600160a01b03167f6b00f1c7883f053ba83e907fd1965b22fffe3c4111383e725f04638a566cdbfa846040516105fc91815260200190565b6000546001600160a01b031633146107775760405162461bcd60e51b815260206004820152600c60248201526b15539055551213d49256915160a21b6044820152606401610477565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146107c4576040519150601f19603f3d011682016040523d82523d6000602084013e6107c9565b606091505b50509050826001600160a01b0316336001600160a01b03167f1f12aa8b6d492dd9b98e2b00b0b20830c2a7ded65afac13b60d169a034ae90bc8460405161081291815260200190565b60405180910390a3505050565b805160208183018101805160018083529383019483019490942093905282546040805160a081018252938501805460ff9081161515865260028701549486019490945260038601546001600160a01b0316918501919091526004850180549390921694939290916060840191610894906120ac565b80601f01602080910402602001604051908101604052809291908181526020018280546108c0906120ac565b801561090d5780601f106108e25761010080835404028352916020019161090d565b820191906000526020600020905b8154815290600101906020018083116108f057829003601f168201915b5050505050815260200160048201805480602002602001604051908101604052809291908181526020016000905b82821015610a1f57600084815260209081902060408051606081019091526003850290910180546001600160a01b031682526001810180549293919291840191610984906120ac565b80601f01602080910402602001604051908101604052809291908181526020018280546109b0906120ac565b80156109fd5780601f106109d2576101008083540402835291602001916109fd565b820191906000526020600020905b8154815290600101906020018083116109e057829003601f168201915b505050505081526020016002820154815250508152602001906001019061093b565b50505091525050600682015460079092015490919084565b600060018383604051610a4b929190612071565b90815260200160405180910390209050610a6583836117f6565b50426006820155600781018054906000610a7e8361212e565b9091555050600581015460005b81811015610bd7576000836001016004018281548110610aad57610aad612148565b600091825260208220600390910201805460028201546040519294506001600160a01b0390911691610ae3906001860190612177565b60006040518083038185875af1925050503d8060008114610b20576040519150601f19603f3d011682016040523d82523d6000602084013e610b25565b606091505b5050905080610bc25760405162461bcd60e51b815260206004820152604c60248201527f447269707069653a20647269702077617320756e7375636365737366756c2c2060448201527f706c6561736520636865636b20796f757220636f6e66696775726174696f6e2060648201527f666f72206d697374616b65730000000000000000000000000000000000000000608482015260a401610477565b50508080610bcf9061212e565b915050610a8b565b508383604051610be8929190612071565b60405180910390207fea21435419aad9c54a9d90e2522b6f60bd566401f36fcef661f5f5a28cc0d2c685853342604051610c259493929190612218565b60405180910390a250505050565b6000546001600160a01b03163314610c7c5760405162461bcd60e51b815260206004820152600c60248201526b15539055551213d49256915160a21b6044820152606401610477565b610c86814761072e565b50565b600080546060906001600160a01b03163314610cd65760405162461bcd60e51b815260206004820152600c60248201526b15539055551213d49256915160a21b6044820152606401610477565b846001600160a01b03168385604051610cef9190612248565b60006040518083038185875af1925050503d8060008114610d2c576040519150601f19603f3d011682016040523d82523d6000602084013e610d31565b606091505b5090969095509350505050565b60028181548110610d4e57600080fd5b906000526020600020016000915090508054610d69906120ac565b80601f0160208091040260200160405190810160405280929190818152602001828054610d95906120ac565b8015610de25780601f10610db757610100808354040283529160200191610de2565b820191906000526020600020905b815481529060010190602001808311610dc557829003601f168201915b505050505081565b600060018383604051610dfe929190612071565b90815260405190819003602001902060020154905092915050565b6000546001600160a01b03163314610e625760405162461bcd60e51b815260206004820152600c60248201526b15539055551213d49256915160a21b6044820152606401610477565b6040517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152610eeb90839083906001600160a01b038316906370a0823190602401602060405180830381865afa158015610ec7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102019190612264565b5050565b6000546001600160a01b03163314610f385760405162461bcd60e51b815260206004820152600c60248201526b15539055551213d49256915160a21b6044820152606401610477565b6000816003811115610f4c57610f4c611aed565b03610fe55760405162461bcd60e51b815260206004820152604160248201527f447269707069653a2064726970207374617475732063616e206e65766572206260448201527f6520736574206261636b20746f204e4f4e45206166746572206372656174696f60648201527f6e00000000000000000000000000000000000000000000000000000000000000608482015260a401610477565b600060018484604051610ff9929190612071565b9081526040519081900360200190205460ff169050600081600381111561102257611022611aed565b036110bb5760405162461bcd60e51b815260206004820152604160248201527f447269707069653a206472697020776974682074686174206e616d6520646f6560448201527f73206e6f7420657869737420616e642063616e6e6f742062652075706461746560648201527f6400000000000000000000000000000000000000000000000000000000000000608482015260a401610477565b60038160038111156110cf576110cf611aed565b036111695760405162461bcd60e51b8152602060048201526044602482018190527f447269707069653a206472697020776974682074686174206e616d6520686173908201527f206265656e20617263686976656420616e642063616e6e6f742062652075706460648201527f6174656400000000000000000000000000000000000000000000000000000000608482015260a401610477565b81600381111561117b5761117b611aed565b81600381111561118d5761118d611aed565b036112265760405162461bcd60e51b815260206004820152604860248201527f447269707069653a2063616e6e6f74207365742064726970207374617475732060448201527f746f207468652073616d6520737461747573206173206974732063757272656e60648201527f7420737461747573000000000000000000000000000000000000000000000000608482015260a401610477565b600382600381111561123a5761123a611aed565b036112c657600181600381111561125357611253611aed565b146112c65760405162461bcd60e51b815260206004820152603860248201527f447269707069653a2064726970206d757374206669727374206265207061757360448201527f6564206265666f7265206265696e6720617263686976656400000000000000006064820152608401610477565b81600185856040516112d9929190612071565b908152604051908190036020019020805460ff1916600183600381111561130257611302611aed565b02179055508383604051611317929190612071565b60405180910390207f407cb3ad05e60ec498fb39417c7a4f6b82d5ba80f82fe512a37b02c93181a2a1858585604051610c259392919061227d565b6000546001600160a01b0316331461139b5760405162461bcd60e51b815260206004820152600c60248201526b15539055551213d49256915160a21b6044820152606401610477565b6000600184846040516113af929190612071565b9081526040519081900360200190205460ff1660038111156113d3576113d3611aed565b146114465760405162461bcd60e51b815260206004820152602b60248201527f447269707069653a206472697020776974682074686174206e616d6520616c7260448201527f65616479206578697374730000000000000000000000000000000000000000006064820152608401610477565b61145360208201826122a0565b156114d5576020810135156114d05760405162461bcd60e51b815260206004820152603e60248201527f447269707069653a20696620616c6c6f77696e67207265656e7472616e74206460448201527f7269702c206d7573742073657420696e74657276616c20746f207a65726f00006064820152608401610477565b611576565b60008160200135116115765760405162461bcd60e51b8152602060048201526044602482018190527f447269707069653a20696e74657276616c206d75737420626520677265617465908201527f72207468616e207a65726f2069662064726970206973206e6f74207265656e7460648201527f72616e7400000000000000000000000000000000000000000000000000000000608482015260a401610477565b60006001848460405161158a929190612071565b90815260405160209181900382019020805460ff1916600117815591506115b3908301836122a0565b60018201805460ff1916911515919091179055602082013560028201556115e06060830160408401611b7a565b6003820180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905561162760608301836122bd565b6004830191611637919083612353565b5060005b6116486080840184612414565b90508110156116bb57600582016116626080850185612414565b8381811061167257611672612148565b9050602002810190611684919061245e565b8154600181018355600092835260209092209091600302016116a68282612492565b505080806116b39061212e565b91505061163b565b50600280546001810182556000919091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace016116f9848683612353565b50838360405161170a929190612071565b60405180910390207fe38d8d98e6cc66f6f520d483c6c5a89289681f897799c4c29d767cf57e76d9a6858585604051610c25939291906126d5565b600080546060906001600160a01b031633146117925760405162461bcd60e51b815260206004820152600c60248201526b15539055551213d49256915160a21b6044820152606401610477565b836001600160a01b0316836040516117aa9190612248565b600060405180830381855af49150503d80600081146117e5576040519150601f19603f3d011682016040523d82523d6000602084013e6117ea565b606091505b50909590945092505050565b6000806001848460405161180b929190612071565b90815260405190819003602001902090506002815460ff16600381111561183457611834611aed565b146118a9576040805162461bcd60e51b81526020600482015260248101919091527f447269707069653a2073656c6563746564206472697020646f6573206e6f742060448201527f6578697374206f72206973206e6f742063757272656e746c79206163746976656064820152608401610477565b6002810154600682015442916118be916127b1565b11156119325760405162461bcd60e51b815260206004820152603660248201527f447269707069653a206472697020696e74657276616c20686173206e6f74206560448201527f6c61707365642073696e6365206c6173742064726970000000000000000000006064820152608401610477565b60038101546040517fc64b3bb50000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063c64b3bb59061197f90600480860191016127c9565b602060405180830381865afa15801561199c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119c0919061208f565b611a585760405162461bcd60e51b815260206004820152604260248201527f447269707069653a2064726970636865636b206661696c656420736f2064726960448201527f70206973206e6f742079657420726561647920746f206265207472696767657260648201527f6564000000000000000000000000000000000000000000000000000000000000608482015260a401610477565b5060019392505050565b60008083601f840112611a7457600080fd5b50813567ffffffffffffffff811115611a8c57600080fd5b602083019150836020828501011115611aa457600080fd5b9250929050565b60008060208385031215611abe57600080fd5b823567ffffffffffffffff811115611ad557600080fd5b611ae185828601611a62565b90969095509350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60048110611b53577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b9052565b6020810161042c8284611b1c565b6001600160a01b0381168114610c8657600080fd5b600060208284031215611b8c57600080fd5b8135611b9781611b65565b9392505050565b600080600060608486031215611bb357600080fd5b8335611bbe81611b65565b92506020840135611bce81611b65565b929592945050506040919091013590565b60008060408385031215611bf257600080fd5b8235611bfd81611b65565b946020939093013593505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600067ffffffffffffffff80841115611c5557611c55611c0b565b604051601f8501601f19908116603f01168101908282118183101715611c7d57611c7d611c0b565b81604052809350858152868686011115611c9657600080fd5b858560208301376000602087830101525050509392505050565b600060208284031215611cc257600080fd5b813567ffffffffffffffff811115611cd957600080fd5b8201601f81018413611cea57600080fd5b611cf984823560208401611c3a565b949350505050565b60005b83811015611d1c578181015183820152602001611d04565b83811115611d2b576000848401525b50505050565b60008151808452611d49816020860160208601611d01565b601f01601f19169290920160200192915050565b611d678186611b1c565b600060206080818401528551151560808401528086015160a08401526040808701516001600160a01b0380821660c0870152606091508189015160a060e0880152611db6610120880182611d31565b60808b01518882037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80016101008a0152805180835291925086019086830190600581901b8401880160005b82811015611e4c57601f1986830301845284518781511683528a810151898c850152611e2f8a850182611d31565b918b0151938b0193909352948a0194938a01939150600101611e01565b50968a019b909b52505050509093019390935250949350505050565b600082601f830112611e7957600080fd5b611b9783833560208501611c3a565b600080600060608486031215611e9d57600080fd5b8335611ea881611b65565b9250602084013567ffffffffffffffff811115611ec457600080fd5b611ed086828701611e68565b925050604084013590509250925092565b8215158152604060208201526000611cf96040830184611d31565b600060208284031215611f0e57600080fd5b5035919050565b602081526000611b976020830184611d31565b60008060408385031215611f3b57600080fd5b8235611f4681611b65565b91506020830135611f5681611b65565b809150509250929050565b600080600060408486031215611f7657600080fd5b833567ffffffffffffffff811115611f8d57600080fd5b611f9986828701611a62565b909450925050602084013560048110611fb157600080fd5b809150509250925092565b600080600060408486031215611fd157600080fd5b833567ffffffffffffffff80821115611fe957600080fd5b611ff587838801611a62565b9095509350602086013591508082111561200e57600080fd5b50840160a08187031215611fb157600080fd5b6000806040838503121561203457600080fd5b823561203f81611b65565b9150602083013567ffffffffffffffff81111561205b57600080fd5b61206785828601611e68565b9150509250929050565b8183823760009101908152919050565b8015158114610c8657600080fd5b6000602082840312156120a157600080fd5b8151611b9781612081565b600181811c908216806120c057607f821691505b6020821081036120f9577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006000198203612141576121416120ff565b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000808354612185816120ac565b6001828116801561219d57600181146121b2576121e1565b60ff19841687528215158302870194506121e1565b8760005260208060002060005b858110156121d85781548a8201529084019082016121bf565b50505082870194505b50929695505050505050565b818352818160208501375060006020828401015260006020601f19601f840116840101905092915050565b60608152600061222c6060830186886121ed565b6001600160a01b03949094166020830152506040015292915050565b6000825161225a818460208701611d01565b9190910192915050565b60006020828403121561227657600080fd5b5051919050565b6040815260006122916040830185876121ed565b9050611cf96020830184611b1c565b6000602082840312156122b257600080fd5b8135611b9781612081565b6000808335601e198436030181126122d457600080fd5b83018035915067ffffffffffffffff8211156122ef57600080fd5b602001915036819003821315611aa457600080fd5b601f82111561234e57600081815260208120601f850160051c8101602086101561232b5750805b601f850160051c820191505b8181101561234a57828155600101612337565b5050505b505050565b67ffffffffffffffff83111561236b5761236b611c0b565b61237f8361237983546120ac565b83612304565b6000601f8411600181146123b3576000851561239b5750838201355b600019600387901b1c1916600186901b17835561240d565b600083815260209020601f19861690835b828110156123e457868501358255602094850194600190920191016123c4565b50868210156124015760001960f88860031b161c19848701351681555b505060018560011b0183555b5050505050565b6000808335601e1984360301811261242b57600080fd5b83018035915067ffffffffffffffff82111561244657600080fd5b6020019150600581901b3603821315611aa457600080fd5b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa183360301811261225a57600080fd5b813561249d81611b65565b6001600160a01b0381167fffffffffffffffffffffffff0000000000000000000000000000000000000000835416178255506001808201602080850135601e198636030181126124ec57600080fd5b8501803567ffffffffffffffff81111561250557600080fd5b803603838301131561251657600080fd5b61252a8161252486546120ac565b86612304565b6000601f821160018114612560576000831561254857508382018501355b600019600385901b1c1916600184901b1786556125b9565b600086815260209020601f19841690835b8281101561259057868501880135825593870193908901908701612571565b50848210156125af5760001960f88660031b161c198785880101351681555b50508683881b0186555b50505050505050604082013560028201555050565b6000808335601e198436030181126125e557600080fd5b830160208101925035905067ffffffffffffffff81111561260557600080fd5b803603821315611aa457600080fd5b81835260006020808501808196508560051b81019150846000805b888110156126c7578385038a5282357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa189360301811261266d578283fd5b88016060813561267c81611b65565b6001600160a01b03168752612693828901836125ce565b828a8a01526126a5838a0182846121ed565b604094850135999094019890985250509986019994509185019160010161262f565b509298975050505050505050565b6040815260006126e96040830185876121ed565b828103602084015283356126fc81612081565b1515815260208481013590820152604084013561271881611b65565b6001600160a01b0316604082015261273360608501856125ce565b60a0606084015261274860a0840182846121ed565b9150506080850135601e1986360301811261276257600080fd5b850160208101903567ffffffffffffffff81111561277f57600080fd5b8060051b360382131561279157600080fd5b83830360808501526127a4838284612614565b9998505050505050505050565b600082198211156127c4576127c46120ff565b500190565b60006020808352600084546127dd816120ac565b808487015260406001808416600081146127fe576001811461281857612846565b60ff198516838a01528284151560051b8a01019550612846565b896000528660002060005b8581101561283e5781548b8201860152908301908801612823565b8a0184019650505b50939897505050505050505056fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R`\x046\x10a\x01-W`\x005`\xE0\x1C\x80c\x82\xCBkr\x11a\0\xA5W\x80c\x9B\xC9M\x01\x11a\0tW\x80c\xED\xEEb9\x11a\0YW\x80c\xED\xEEb9\x14a\x03\xAAW\x80c\xF1\xD4+G\x14a\x03\xBDW\x80c\xFC>>\xBA\x14a\x03\xD2W`\0\x80\xFD[\x80c\x9B\xC9M\x01\x14a\x03jW\x80c\xE5Q\xCD\xAA\x14a\x03\x8AW`\0\x80\xFD[\x80c\x82\xCBkr\x14a\x02\xB7W\x80c\x8D\xA5\xCB[\x14a\x02\xE4W\x80c\x90T|\x14\x14a\x03\x1CW\x80c\x94V\xFB\xCC\x14a\x03JW`\0\x80\xFD[\x80cG\x82\xF7y\x11a\0\xFCW\x80cg\x14\x8C\xD2\x11a\0\xE1W\x80cg\x14\x8C\xD2\x14a\x02VW\x80ci\r\x83 \x14a\x02vW\x80cn-D\xAE\x14a\x02\x96W`\0\x80\xFD[\x80cG\x82\xF7y\x14a\x02\x06W\x80cM\x7F\xBAn\x14a\x02&W`\0\x80\xFD[\x80c\r\x8FF\x97\x14a\x01nW\x80c\x13\xAF@5\x14a\x01\xA4W\x80c@%\xFE\xB2\x14a\x01\xC6W\x80cD\0L\xC1\x14a\x01\xE6W`\0\x80\xFD[6a\x01iW`@Q4\x81R3\x90\x7FA\x03%~\xAA\xC9\x83\xCAy\xA7\r(\xF9\r\xFCO\xA1ka\x9B\xB0\xC1~\xE7\xCA\xB0\xD4\x03L'\x96$\x90` \x01`@Q\x80\x91\x03\x90\xA2\0[`\0\x80\xFD[4\x80\x15a\x01zW`\0\x80\xFD[Pa\x01\x8Ea\x01\x896`\x04a\x1A\xABV[a\x04\x02V[`@Qa\x01\x9B\x91\x90a\x1BWV[`@Q\x80\x91\x03\x90\xF3[4\x80\x15a\x01\xB0W`\0\x80\xFD[Pa\x01\xC4a\x01\xBF6`\x04a\x1BzV[a\x042V[\0[4\x80\x15a\x01\xD2W`\0\x80\xFD[Pa\x01\xC4a\x01\xE16`\x04a\x1B\x9EV[a\x04\xE3V[4\x80\x15a\x01\xF2W`\0\x80\xFD[Pa\x01\xC4a\x02\x016`\x04a\x1B\x9EV[a\x06\tV[4\x80\x15a\x02\x12W`\0\x80\xFD[Pa\x01\xC4a\x02!6`\x04a\x1B\xDFV[a\x07.V[4\x80\x15a\x022W`\0\x80\xFD[Pa\x02Fa\x02A6`\x04a\x1C\xB0V[a\x08\x1FV[`@Qa\x01\x9B\x94\x93\x92\x91\x90a\x1D]V[4\x80\x15a\x02bW`\0\x80\xFD[Pa\x01\xC4a\x02q6`\x04a\x1A\xABV[a\n7V[4\x80\x15a\x02\x82W`\0\x80\xFD[Pa\x01\xC4a\x02\x916`\x04a\x1BzV[a\x0C3V[a\x02\xA9a\x02\xA46`\x04a\x1E\x88V[a\x0C\x89V[`@Qa\x01\x9B\x92\x91\x90a\x1E\xE1V[4\x80\x15a\x02\xC3W`\0\x80\xFD[Pa\x02\xD7a\x02\xD26`\x04a\x1E\xFCV[a\r>V[`@Qa\x01\x9B\x91\x90a\x1F\x15V[4\x80\x15a\x02\xF0W`\0\x80\xFD[P`\0Ta\x03\x04\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x01a\x01\x9BV[4\x80\x15a\x03(W`\0\x80\xFD[Pa\x03=`\0\xFD[PPPP\x82`\x01`\x01`\xA0\x1B\x03\x16\x82`\x01`\x01`\xA0\x1B\x03\x163`\x01`\x01`\xA0\x1B\x03\x16\x7F0\xB4x\xA5\xE1\x96\xE5X\x86\"\x8A\xA8{\xA7J}\xFE\xBAe^\nM{\xA2u\xEA\xBF\xC2*\xAB\xB7\xA8\x84`@Qa\x05\xFC\x91\x81R` \x01\x90V[`@Q\x80\x91\x03\x90\xA4PPPV[`\0T`\x01`\x01`\xA0\x1B\x03\x163\x14a\x06RW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x0C`$\x82\x01Rk\x15S\x90UU\x12\x13\xD4\x92V\x91Q`\xA2\x1B`D\x82\x01R`d\x01a\x04wV[`@Q\x7F\xA9\x05\x9C\xBB\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`\x01`\x01`\xA0\x1B\x03\x83\x81\x16`\x04\x83\x01R`$\x82\x01\x83\x90R\x84\x16\x90c\xA9\x05\x9C\xBB\x90`D\x01` `@Q\x80\x83\x03\x81`\0\x87Z\xF1\x15\x80\x15a\x06\xBAW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x06\xDE\x91\x90a \x8FV[P\x82`\x01`\x01`\xA0\x1B\x03\x16\x82`\x01`\x01`\xA0\x1B\x03\x163`\x01`\x01`\xA0\x1B\x03\x16\x7Fk\0\xF1\xC7\x88?\x05;\xA8>\x90\x7F\xD1\x96[\"\xFF\xFEr_\x04c\x8AVl\xDB\xFA\x84`@Qa\x05\xFC\x91\x81R` \x01\x90V[`\0T`\x01`\x01`\xA0\x1B\x03\x163\x14a\x07wW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x0C`$\x82\x01Rk\x15S\x90UU\x12\x13\xD4\x92V\x91Q`\xA2\x1B`D\x82\x01R`d\x01a\x04wV[`\0\x82`\x01`\x01`\xA0\x1B\x03\x16\x82`@Q`\0`@Q\x80\x83\x03\x81\x85\x87Z\xF1\x92PPP=\x80`\0\x81\x14a\x07\xC4W`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=`\0` \x84\x01>a\x07\xC9V[``\x91P[PP\x90P\x82`\x01`\x01`\xA0\x1B\x03\x163`\x01`\x01`\xA0\x1B\x03\x16\x7F\x1F\x12\xAA\x8BmI-\xD9\xB9\x8E+\0\xB0\xB2\x080\xC2\xA7\xDE\xD6Z\xFA\xC1;`\xD1i\xA04\xAE\x90\xBC\x84`@Qa\x08\x12\x91\x81R` \x01\x90V[`@Q\x80\x91\x03\x90\xA3PPPV[\x80Q` \x81\x83\x01\x81\x01\x80Q`\x01\x80\x83R\x93\x83\x01\x94\x83\x01\x94\x90\x94 \x93\x90R\x82T`@\x80Q`\xA0\x81\x01\x82R\x93\x85\x01\x80T`\xFF\x90\x81\x16\x15\x15\x86R`\x02\x87\x01T\x94\x86\x01\x94\x90\x94R`\x03\x86\x01T`\x01`\x01`\xA0\x1B\x03\x16\x91\x85\x01\x91\x90\x91R`\x04\x85\x01\x80T\x93\x90\x92\x16\x94\x93\x92\x90\x91``\x84\x01\x91a\x08\x94\x90a \xACV[\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x92\x91\x90\x81\x81R` \x01\x82\x80Ta\x08\xC0\x90a \xACV[\x80\x15a\t\rW\x80`\x1F\x10a\x08\xE2Wa\x01\0\x80\x83T\x04\x02\x83R\x91` \x01\x91a\t\rV[\x82\x01\x91\x90`\0R` `\0 \x90[\x81T\x81R\x90`\x01\x01\x90` \x01\x80\x83\x11a\x08\xF0W\x82\x90\x03`\x1F\x16\x82\x01\x91[PPPPP\x81R` \x01`\x04\x82\x01\x80T\x80` \x02` \x01`@Q\x90\x81\x01`@R\x80\x92\x91\x90\x81\x81R` \x01`\0\x90[\x82\x82\x10\x15a\n\x1FW`\0\x84\x81R` \x90\x81\x90 `@\x80Q``\x81\x01\x90\x91R`\x03\x85\x02\x90\x91\x01\x80T`\x01`\x01`\xA0\x1B\x03\x16\x82R`\x01\x81\x01\x80T\x92\x93\x91\x92\x91\x84\x01\x91a\t\x84\x90a \xACV[\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x92\x91\x90\x81\x81R` \x01\x82\x80Ta\t\xB0\x90a \xACV[\x80\x15a\t\xFDW\x80`\x1F\x10a\t\xD2Wa\x01\0\x80\x83T\x04\x02\x83R\x91` \x01\x91a\t\xFDV[\x82\x01\x91\x90`\0R` `\0 \x90[\x81T\x81R\x90`\x01\x01\x90` \x01\x80\x83\x11a\t\xE0W\x82\x90\x03`\x1F\x16\x82\x01\x91[PPPPP\x81R` \x01`\x02\x82\x01T\x81RPP\x81R` \x01\x90`\x01\x01\x90a\t;V[PPP\x91RPP`\x06\x82\x01T`\x07\x90\x92\x01T\x90\x91\x90\x84V[`\0`\x01\x83\x83`@Qa\nK\x92\x91\x90a qV[\x90\x81R` \x01`@Q\x80\x91\x03\x90 \x90Pa\ne\x83\x83a\x17\xF6V[PB`\x06\x82\x01U`\x07\x81\x01\x80T\x90`\0a\n~\x83a!.V[\x90\x91UPP`\x05\x81\x01T`\0[\x81\x81\x10\x15a\x0B\xD7W`\0\x83`\x01\x01`\x04\x01\x82\x81T\x81\x10a\n\xADWa\n\xADa!HV[`\0\x91\x82R` \x82 `\x03\x90\x91\x02\x01\x80T`\x02\x82\x01T`@Q\x92\x94P`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x91a\n\xE3\x90`\x01\x86\x01\x90a!wV[`\0`@Q\x80\x83\x03\x81\x85\x87Z\xF1\x92PPP=\x80`\0\x81\x14a\x0B W`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=`\0` \x84\x01>a\x0B%V[``\x91P[PP\x90P\x80a\x0B\xC2W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`L`$\x82\x01R\x7FDrippie: drip was unsuccessful, `D\x82\x01R\x7Fplease check your configuration `d\x82\x01R\x7Ffor mistakes\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x84\x82\x01R`\xA4\x01a\x04wV[PP\x80\x80a\x0B\xCF\x90a!.V[\x91PPa\n\x8BV[P\x83\x83`@Qa\x0B\xE8\x92\x91\x90a qV[`@Q\x80\x91\x03\x90 \x7F\xEA!CT\x19\xAA\xD9\xC5J\x9D\x90\xE2R+o`\xBDVd\x01\xF3o\xCE\xF6a\xF5\xF5\xA2\x8C\xC0\xD2\xC6\x85\x853B`@Qa\x0C%\x94\x93\x92\x91\x90a\"\x18V[`@Q\x80\x91\x03\x90\xA2PPPPV[`\0T`\x01`\x01`\xA0\x1B\x03\x163\x14a\x0C|W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x0C`$\x82\x01Rk\x15S\x90UU\x12\x13\xD4\x92V\x91Q`\xA2\x1B`D\x82\x01R`d\x01a\x04wV[a\x0C\x86\x81Ga\x07.V[PV[`\0\x80T``\x90`\x01`\x01`\xA0\x1B\x03\x163\x14a\x0C\xD6W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x0C`$\x82\x01Rk\x15S\x90UU\x12\x13\xD4\x92V\x91Q`\xA2\x1B`D\x82\x01R`d\x01a\x04wV[\x84`\x01`\x01`\xA0\x1B\x03\x16\x83\x85`@Qa\x0C\xEF\x91\x90a\"HV[`\0`@Q\x80\x83\x03\x81\x85\x87Z\xF1\x92PPP=\x80`\0\x81\x14a\r,W`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=`\0` \x84\x01>a\r1V[``\x91P[P\x90\x96\x90\x95P\x93PPPPV[`\x02\x81\x81T\x81\x10a\rNW`\0\x80\xFD[\x90`\0R` `\0 \x01`\0\x91P\x90P\x80Ta\ri\x90a \xACV[\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x92\x91\x90\x81\x81R` \x01\x82\x80Ta\r\x95\x90a \xACV[\x80\x15a\r\xE2W\x80`\x1F\x10a\r\xB7Wa\x01\0\x80\x83T\x04\x02\x83R\x91` \x01\x91a\r\xE2V[\x82\x01\x91\x90`\0R` `\0 \x90[\x81T\x81R\x90`\x01\x01\x90` \x01\x80\x83\x11a\r\xC5W\x82\x90\x03`\x1F\x16\x82\x01\x91[PPPPP\x81V[`\0`\x01\x83\x83`@Qa\r\xFE\x92\x91\x90a qV[\x90\x81R`@Q\x90\x81\x90\x03` \x01\x90 `\x02\x01T\x90P\x92\x91PPV[`\0T`\x01`\x01`\xA0\x1B\x03\x163\x14a\x0EbW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x0C`$\x82\x01Rk\x15S\x90UU\x12\x13\xD4\x92V\x91Q`\xA2\x1B`D\x82\x01R`d\x01a\x04wV[`@Q\x7Fp\xA0\x821\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\x81R0`\x04\x82\x01Ra\x0E\xEB\x90\x83\x90\x83\x90`\x01`\x01`\xA0\x1B\x03\x83\x16\x90cp\xA0\x821\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x0E\xC7W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x02\x01\x91\x90a\"dV[PPV[`\0T`\x01`\x01`\xA0\x1B\x03\x163\x14a\x0F8W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x0C`$\x82\x01Rk\x15S\x90UU\x12\x13\xD4\x92V\x91Q`\xA2\x1B`D\x82\x01R`d\x01a\x04wV[`\0\x81`\x03\x81\x11\x15a\x0FLWa\x0FLa\x1A\xEDV[\x03a\x0F\xE5W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`A`$\x82\x01R\x7FDrippie: drip status can never b`D\x82\x01R\x7Fe set back to NONE after creatio`d\x82\x01R\x7Fn\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x84\x82\x01R`\xA4\x01a\x04wV[`\0`\x01\x84\x84`@Qa\x0F\xF9\x92\x91\x90a qV[\x90\x81R`@Q\x90\x81\x90\x03` \x01\x90 T`\xFF\x16\x90P`\0\x81`\x03\x81\x11\x15a\x10\"Wa\x10\"a\x1A\xEDV[\x03a\x10\xBBW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`A`$\x82\x01R\x7FDrippie: drip with that name doe`D\x82\x01R\x7Fs not exist and cannot be update`d\x82\x01R\x7Fd\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x84\x82\x01R`\xA4\x01a\x04wV[`\x03\x81`\x03\x81\x11\x15a\x10\xCFWa\x10\xCFa\x1A\xEDV[\x03a\x11iW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`D`$\x82\x01\x81\x90R\x7FDrippie: drip with that name has\x90\x82\x01R\x7F been archived and cannot be upd`d\x82\x01R\x7Fated\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`\x84\x82\x01R`\xA4\x01a\x04wV[\x81`\x03\x81\x11\x15a\x11{Wa\x11{a\x1A\xEDV[\x81`\x03\x81\x11\x15a\x11\x8DWa\x11\x8Da\x1A\xEDV[\x03a\x12&W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`H`$\x82\x01R\x7FDrippie: cannot set drip status `D\x82\x01R\x7Fto the same status as its curren`d\x82\x01R\x7Ft status\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x84\x82\x01R`\xA4\x01a\x04wV[`\x03\x82`\x03\x81\x11\x15a\x12:Wa\x12:a\x1A\xEDV[\x03a\x12\xC6W`\x01\x81`\x03\x81\x11\x15a\x12SWa\x12Sa\x1A\xEDV[\x14a\x12\xC6W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`8`$\x82\x01R\x7FDrippie: drip must first be paus`D\x82\x01R\x7Fed before being archived\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x04wV[\x81`\x01\x85\x85`@Qa\x12\xD9\x92\x91\x90a qV[\x90\x81R`@Q\x90\x81\x90\x03` \x01\x90 \x80T`\xFF\x19\x16`\x01\x83`\x03\x81\x11\x15a\x13\x02Wa\x13\x02a\x1A\xEDV[\x02\x17\x90UP\x83\x83`@Qa\x13\x17\x92\x91\x90a qV[`@Q\x80\x91\x03\x90 \x7F@|\xB3\xAD\x05\xE6\x0E\xC4\x98\xFB9A|zOk\x82\xD5\xBA\x80\xF8/\xE5\x12\xA3{\x02\xC91\x81\xA2\xA1\x85\x85\x85`@Qa\x0C%\x93\x92\x91\x90a\"}V[`\0T`\x01`\x01`\xA0\x1B\x03\x163\x14a\x13\x9BW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x0C`$\x82\x01Rk\x15S\x90UU\x12\x13\xD4\x92V\x91Q`\xA2\x1B`D\x82\x01R`d\x01a\x04wV[`\0`\x01\x84\x84`@Qa\x13\xAF\x92\x91\x90a qV[\x90\x81R`@Q\x90\x81\x90\x03` \x01\x90 T`\xFF\x16`\x03\x81\x11\x15a\x13\xD3Wa\x13\xD3a\x1A\xEDV[\x14a\x14FW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FDrippie: drip with that name alr`D\x82\x01R\x7Feady exists\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x04wV[a\x14S` \x82\x01\x82a\"\xA0V[\x15a\x14\xD5W` \x81\x015\x15a\x14\xD0W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`>`$\x82\x01R\x7FDrippie: if allowing reentrant d`D\x82\x01R\x7Frip, must set interval to zero\0\0`d\x82\x01R`\x84\x01a\x04wV[a\x15vV[`\0\x81` \x015\x11a\x15vW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`D`$\x82\x01\x81\x90R\x7FDrippie: interval must be greate\x90\x82\x01R\x7Fr than zero if drip is not reent`d\x82\x01R\x7Frant\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`\x84\x82\x01R`\xA4\x01a\x04wV[`\0`\x01\x84\x84`@Qa\x15\x8A\x92\x91\x90a qV[\x90\x81R`@Q` \x91\x81\x90\x03\x82\x01\x90 \x80T`\xFF\x19\x16`\x01\x17\x81U\x91Pa\x15\xB3\x90\x83\x01\x83a\"\xA0V[`\x01\x82\x01\x80T`\xFF\x19\x16\x91\x15\x15\x91\x90\x91\x17\x90U` \x82\x015`\x02\x82\x01Ua\x15\xE0``\x83\x01`@\x84\x01a\x1BzV[`\x03\x82\x01\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16`\x01`\x01`\xA0\x1B\x03\x92\x90\x92\x16\x91\x90\x91\x17\x90Ua\x16'``\x83\x01\x83a\"\xBDV[`\x04\x83\x01\x91a\x167\x91\x90\x83a#SV[P`\0[a\x16H`\x80\x84\x01\x84a$\x14V[\x90P\x81\x10\x15a\x16\xBBW`\x05\x82\x01a\x16b`\x80\x85\x01\x85a$\x14V[\x83\x81\x81\x10a\x16rWa\x16ra!HV[\x90P` \x02\x81\x01\x90a\x16\x84\x91\x90a$^V[\x81T`\x01\x81\x01\x83U`\0\x92\x83R` \x90\x92 \x90\x91`\x03\x02\x01a\x16\xA6\x82\x82a$\x92V[PP\x80\x80a\x16\xB3\x90a!.V[\x91PPa\x16;V[P`\x02\x80T`\x01\x81\x01\x82U`\0\x91\x90\x91R\x7F@W\x87\xFA\x12\xA8#\xE0\xF2\xB7c\x1C\xC4\x1B;\xA8\x82\x8B3!\xCA\x81\x11\x11\xFAu\xCD:\xA3\xBBZ\xCE\x01a\x16\xF9\x84\x86\x83a#SV[P\x83\x83`@Qa\x17\n\x92\x91\x90a qV[`@Q\x80\x91\x03\x90 \x7F\xE3\x8D\x8D\x98\xE6\xCCf\xF6\xF5 \xD4\x83\xC6\xC5\xA8\x92\x89h\x1F\x89w\x99\xC4\xC2\x9Dv|\xF5~v\xD9\xA6\x85\x85\x85`@Qa\x0C%\x93\x92\x91\x90a&\xD5V[`\0\x80T``\x90`\x01`\x01`\xA0\x1B\x03\x163\x14a\x17\x92W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x0C`$\x82\x01Rk\x15S\x90UU\x12\x13\xD4\x92V\x91Q`\xA2\x1B`D\x82\x01R`d\x01a\x04wV[\x83`\x01`\x01`\xA0\x1B\x03\x16\x83`@Qa\x17\xAA\x91\x90a\"HV[`\0`@Q\x80\x83\x03\x81\x85Z\xF4\x91PP=\x80`\0\x81\x14a\x17\xE5W`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=`\0` \x84\x01>a\x17\xEAV[``\x91P[P\x90\x95\x90\x94P\x92PPPV[`\0\x80`\x01\x84\x84`@Qa\x18\x0B\x92\x91\x90a qV[\x90\x81R`@Q\x90\x81\x90\x03` \x01\x90 \x90P`\x02\x81T`\xFF\x16`\x03\x81\x11\x15a\x184Wa\x184a\x1A\xEDV[\x14a\x18\xA9W`@\x80QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`$\x81\x01\x91\x90\x91R\x7FDrippie: selected drip does not `D\x82\x01R\x7Fexist or is not currently active`d\x82\x01R`\x84\x01a\x04wV[`\x02\x81\x01T`\x06\x82\x01TB\x91a\x18\xBE\x91a'\xB1V[\x11\x15a\x192W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`6`$\x82\x01R\x7FDrippie: drip interval has not e`D\x82\x01R\x7Flapsed since last drip\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x04wV[`\x03\x81\x01T`@Q\x7F\xC6K;\xB5\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`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x90c\xC6K;\xB5\x90a\x19\x7F\x90`\x04\x80\x86\x01\x91\x01a'\xC9V[` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x19\x9CW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x19\xC0\x91\x90a \x8FV[a\x1AXW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`B`$\x82\x01R\x7FDrippie: dripcheck failed so dri`D\x82\x01R\x7Fp is not yet ready to be trigger`d\x82\x01R\x7Fed\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x84\x82\x01R`\xA4\x01a\x04wV[P`\x01\x93\x92PPPV[`\0\x80\x83`\x1F\x84\x01\x12a\x1AtW`\0\x80\xFD[P\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x1A\x8CW`\0\x80\xFD[` \x83\x01\x91P\x83` \x82\x85\x01\x01\x11\x15a\x1A\xA4W`\0\x80\xFD[\x92P\x92\x90PV[`\0\x80` \x83\x85\x03\x12\x15a\x1A\xBEW`\0\x80\xFD[\x825g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x1A\xD5W`\0\x80\xFD[a\x1A\xE1\x85\x82\x86\x01a\x1AbV[\x90\x96\x90\x95P\x93PPPPV[\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`!`\x04R`$`\0\xFD[`\x04\x81\x10a\x1BSW\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`!`\x04R`$`\0\xFD[\x90RV[` \x81\x01a\x04,\x82\x84a\x1B\x1CV[`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a\x0C\x86W`\0\x80\xFD[`\0` \x82\x84\x03\x12\x15a\x1B\x8CW`\0\x80\xFD[\x815a\x1B\x97\x81a\x1BeV[\x93\x92PPPV[`\0\x80`\0``\x84\x86\x03\x12\x15a\x1B\xB3W`\0\x80\xFD[\x835a\x1B\xBE\x81a\x1BeV[\x92P` \x84\x015a\x1B\xCE\x81a\x1BeV[\x92\x95\x92\x94PPP`@\x91\x90\x91\x015\x90V[`\0\x80`@\x83\x85\x03\x12\x15a\x1B\xF2W`\0\x80\xFD[\x825a\x1B\xFD\x81a\x1BeV[\x94` \x93\x90\x93\x015\x93PPPV[\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[`\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x84\x11\x15a\x1CUWa\x1CUa\x1C\x0BV[`@Q`\x1F\x85\x01`\x1F\x19\x90\x81\x16`?\x01\x16\x81\x01\x90\x82\x82\x11\x81\x83\x10\x17\x15a\x1C}Wa\x1C}a\x1C\x0BV[\x81`@R\x80\x93P\x85\x81R\x86\x86\x86\x01\x11\x15a\x1C\x96W`\0\x80\xFD[\x85\x85` \x83\x017`\0` \x87\x83\x01\x01RPPP\x93\x92PPPV[`\0` \x82\x84\x03\x12\x15a\x1C\xC2W`\0\x80\xFD[\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x1C\xD9W`\0\x80\xFD[\x82\x01`\x1F\x81\x01\x84\x13a\x1C\xEAW`\0\x80\xFD[a\x1C\xF9\x84\x825` \x84\x01a\x1C:V[\x94\x93PPPPV[`\0[\x83\x81\x10\x15a\x1D\x1CW\x81\x81\x01Q\x83\x82\x01R` \x01a\x1D\x04V[\x83\x81\x11\x15a\x1D+W`\0\x84\x84\x01R[PPPPV[`\0\x81Q\x80\x84Ra\x1DI\x81` \x86\x01` \x86\x01a\x1D\x01V[`\x1F\x01`\x1F\x19\x16\x92\x90\x92\x01` \x01\x92\x91PPV[a\x1Dg\x81\x86a\x1B\x1CV[`\0` `\x80\x81\x84\x01R\x85Q\x15\x15`\x80\x84\x01R\x80\x86\x01Q`\xA0\x84\x01R`@\x80\x87\x01Q`\x01`\x01`\xA0\x1B\x03\x80\x82\x16`\xC0\x87\x01R``\x91P\x81\x89\x01Q`\xA0`\xE0\x88\x01Ra\x1D\xB6a\x01 \x88\x01\x82a\x1D1V[`\x80\x8B\x01Q\x88\x82\x03\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x01a\x01\0\x8A\x01R\x80Q\x80\x83R\x91\x92P\x86\x01\x90\x86\x83\x01\x90`\x05\x81\x90\x1B\x84\x01\x88\x01`\0[\x82\x81\x10\x15a\x1ELW`\x1F\x19\x86\x83\x03\x01\x84R\x84Q\x87\x81Q\x16\x83R\x8A\x81\x01Q\x89\x8C\x85\x01Ra\x1E/\x8A\x85\x01\x82a\x1D1V[\x91\x8B\x01Q\x93\x8B\x01\x93\x90\x93R\x94\x8A\x01\x94\x93\x8A\x01\x93\x91P`\x01\x01a\x1E\x01V[P\x96\x8A\x01\x9B\x90\x9BRPPPP\x90\x93\x01\x93\x90\x93RP\x94\x93PPPPV[`\0\x82`\x1F\x83\x01\x12a\x1EyW`\0\x80\xFD[a\x1B\x97\x83\x835` \x85\x01a\x1C:V[`\0\x80`\0``\x84\x86\x03\x12\x15a\x1E\x9DW`\0\x80\xFD[\x835a\x1E\xA8\x81a\x1BeV[\x92P` \x84\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x1E\xC4W`\0\x80\xFD[a\x1E\xD0\x86\x82\x87\x01a\x1EhV[\x92PP`@\x84\x015\x90P\x92P\x92P\x92V[\x82\x15\x15\x81R`@` \x82\x01R`\0a\x1C\xF9`@\x83\x01\x84a\x1D1V[`\0` \x82\x84\x03\x12\x15a\x1F\x0EW`\0\x80\xFD[P5\x91\x90PV[` \x81R`\0a\x1B\x97` \x83\x01\x84a\x1D1V[`\0\x80`@\x83\x85\x03\x12\x15a\x1F;W`\0\x80\xFD[\x825a\x1FF\x81a\x1BeV[\x91P` \x83\x015a\x1FV\x81a\x1BeV[\x80\x91PP\x92P\x92\x90PV[`\0\x80`\0`@\x84\x86\x03\x12\x15a\x1FvW`\0\x80\xFD[\x835g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x1F\x8DW`\0\x80\xFD[a\x1F\x99\x86\x82\x87\x01a\x1AbV[\x90\x94P\x92PP` \x84\x015`\x04\x81\x10a\x1F\xB1W`\0\x80\xFD[\x80\x91PP\x92P\x92P\x92V[`\0\x80`\0`@\x84\x86\x03\x12\x15a\x1F\xD1W`\0\x80\xFD[\x835g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x1F\xE9W`\0\x80\xFD[a\x1F\xF5\x87\x83\x88\x01a\x1AbV[\x90\x95P\x93P` \x86\x015\x91P\x80\x82\x11\x15a \x0EW`\0\x80\xFD[P\x84\x01`\xA0\x81\x87\x03\x12\x15a\x1F\xB1W`\0\x80\xFD[`\0\x80`@\x83\x85\x03\x12\x15a 4W`\0\x80\xFD[\x825a ?\x81a\x1BeV[\x91P` \x83\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a [W`\0\x80\xFD[a g\x85\x82\x86\x01a\x1EhV[\x91PP\x92P\x92\x90PV[\x81\x83\x827`\0\x91\x01\x90\x81R\x91\x90PV[\x80\x15\x15\x81\x14a\x0C\x86W`\0\x80\xFD[`\0` \x82\x84\x03\x12\x15a \xA1W`\0\x80\xFD[\x81Qa\x1B\x97\x81a \x81V[`\x01\x81\x81\x1C\x90\x82\x16\x80a \xC0W`\x7F\x82\x16\x91P[` \x82\x10\x81\x03a \xF9W\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`\"`\x04R`$`\0\xFD[P\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`\x11`\x04R`$`\0\xFD[`\0`\0\x19\x82\x03a!AWa!Aa \xFFV[P`\x01\x01\x90V[\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`2`\x04R`$`\0\xFD[`\0\x80\x83Ta!\x85\x81a \xACV[`\x01\x82\x81\x16\x80\x15a!\x9DW`\x01\x81\x14a!\xB2Wa!\xE1V[`\xFF\x19\x84\x16\x87R\x82\x15\x15\x83\x02\x87\x01\x94Pa!\xE1V[\x87`\0R` \x80`\0 `\0[\x85\x81\x10\x15a!\xD8W\x81T\x8A\x82\x01R\x90\x84\x01\x90\x82\x01a!\xBFV[PPP\x82\x87\x01\x94P[P\x92\x96\x95PPPPPPV[\x81\x83R\x81\x81` \x85\x017P`\0` \x82\x84\x01\x01R`\0` `\x1F\x19`\x1F\x84\x01\x16\x84\x01\x01\x90P\x92\x91PPV[``\x81R`\0a\",``\x83\x01\x86\x88a!\xEDV[`\x01`\x01`\xA0\x1B\x03\x94\x90\x94\x16` \x83\x01RP`@\x01R\x92\x91PPV[`\0\x82Qa\"Z\x81\x84` \x87\x01a\x1D\x01V[\x91\x90\x91\x01\x92\x91PPV[`\0` \x82\x84\x03\x12\x15a\"vW`\0\x80\xFD[PQ\x91\x90PV[`@\x81R`\0a\"\x91`@\x83\x01\x85\x87a!\xEDV[\x90Pa\x1C\xF9` \x83\x01\x84a\x1B\x1CV[`\0` \x82\x84\x03\x12\x15a\"\xB2W`\0\x80\xFD[\x815a\x1B\x97\x81a \x81V[`\0\x80\x835`\x1E\x19\x846\x03\x01\x81\x12a\"\xD4W`\0\x80\xFD[\x83\x01\x805\x91Pg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x15a\"\xEFW`\0\x80\xFD[` \x01\x91P6\x81\x90\x03\x82\x13\x15a\x1A\xA4W`\0\x80\xFD[`\x1F\x82\x11\x15a#NW`\0\x81\x81R` \x81 `\x1F\x85\x01`\x05\x1C\x81\x01` \x86\x10\x15a#+WP\x80[`\x1F\x85\x01`\x05\x1C\x82\x01\x91P[\x81\x81\x10\x15a#JW\x82\x81U`\x01\x01a#7V[PPP[PPPV[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11\x15a#kWa#ka\x1C\x0BV[a#\x7F\x83a#y\x83Ta \xACV[\x83a#\x04V[`\0`\x1F\x84\x11`\x01\x81\x14a#\xB3W`\0\x85\x15a#\x9BWP\x83\x82\x015[`\0\x19`\x03\x87\x90\x1B\x1C\x19\x16`\x01\x86\x90\x1B\x17\x83Ua$\rV[`\0\x83\x81R` \x90 `\x1F\x19\x86\x16\x90\x83[\x82\x81\x10\x15a#\xE4W\x86\x85\x015\x82U` \x94\x85\x01\x94`\x01\x90\x92\x01\x91\x01a#\xC4V[P\x86\x82\x10\x15a$\x01W`\0\x19`\xF8\x88`\x03\x1B\x16\x1C\x19\x84\x87\x015\x16\x81U[PP`\x01\x85`\x01\x1B\x01\x83U[PPPPPV[`\0\x80\x835`\x1E\x19\x846\x03\x01\x81\x12a$+W`\0\x80\xFD[\x83\x01\x805\x91Pg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x15a$FW`\0\x80\xFD[` \x01\x91P`\x05\x81\x90\x1B6\x03\x82\x13\x15a\x1A\xA4W`\0\x80\xFD[`\0\x825\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xA1\x836\x03\x01\x81\x12a\"ZW`\0\x80\xFD[\x815a$\x9D\x81a\x1BeV[`\x01`\x01`\xA0\x1B\x03\x81\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x83T\x16\x17\x82UP`\x01\x80\x82\x01` \x80\x85\x015`\x1E\x19\x866\x03\x01\x81\x12a$\xECW`\0\x80\xFD[\x85\x01\x805g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a%\x05W`\0\x80\xFD[\x806\x03\x83\x83\x01\x13\x15a%\x16W`\0\x80\xFD[a%*\x81a%$\x86Ta \xACV[\x86a#\x04V[`\0`\x1F\x82\x11`\x01\x81\x14a%`W`\0\x83\x15a%HWP\x83\x82\x01\x85\x015[`\0\x19`\x03\x85\x90\x1B\x1C\x19\x16`\x01\x84\x90\x1B\x17\x86Ua%\xB9V[`\0\x86\x81R` \x90 `\x1F\x19\x84\x16\x90\x83[\x82\x81\x10\x15a%\x90W\x86\x85\x01\x88\x015\x82U\x93\x87\x01\x93\x90\x89\x01\x90\x87\x01a%qV[P\x84\x82\x10\x15a%\xAFW`\0\x19`\xF8\x86`\x03\x1B\x16\x1C\x19\x87\x85\x88\x01\x015\x16\x81U[PP\x86\x83\x88\x1B\x01\x86U[PPPPPPP`@\x82\x015`\x02\x82\x01UPPV[`\0\x80\x835`\x1E\x19\x846\x03\x01\x81\x12a%\xE5W`\0\x80\xFD[\x83\x01` \x81\x01\x92P5\x90Pg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a&\x05W`\0\x80\xFD[\x806\x03\x82\x13\x15a\x1A\xA4W`\0\x80\xFD[\x81\x83R`\0` \x80\x85\x01\x80\x81\x96P\x85`\x05\x1B\x81\x01\x91P\x84`\0\x80[\x88\x81\x10\x15a&\xC7W\x83\x85\x03\x8AR\x825\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xA1\x896\x03\x01\x81\x12a&mW\x82\x83\xFD[\x88\x01``\x815a&|\x81a\x1BeV[`\x01`\x01`\xA0\x1B\x03\x16\x87Ra&\x93\x82\x89\x01\x83a%\xCEV[\x82\x8A\x8A\x01Ra&\xA5\x83\x8A\x01\x82\x84a!\xEDV[`@\x94\x85\x015\x99\x90\x94\x01\x98\x90\x98RPP\x99\x86\x01\x99\x94P\x91\x85\x01\x91`\x01\x01a&/V[P\x92\x98\x97PPPPPPPPV[`@\x81R`\0a&\xE9`@\x83\x01\x85\x87a!\xEDV[\x82\x81\x03` \x84\x01R\x835a&\xFC\x81a \x81V[\x15\x15\x81R` \x84\x81\x015\x90\x82\x01R`@\x84\x015a'\x18\x81a\x1BeV[`\x01`\x01`\xA0\x1B\x03\x16`@\x82\x01Ra'3``\x85\x01\x85a%\xCEV[`\xA0``\x84\x01Ra'H`\xA0\x84\x01\x82\x84a!\xEDV[\x91PP`\x80\x85\x015`\x1E\x19\x866\x03\x01\x81\x12a'bW`\0\x80\xFD[\x85\x01` \x81\x01\x905g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a'\x7FW`\0\x80\xFD[\x80`\x05\x1B6\x03\x82\x13\x15a'\x91W`\0\x80\xFD[\x83\x83\x03`\x80\x85\x01Ra'\xA4\x83\x82\x84a&\x14V[\x99\x98PPPPPPPPPV[`\0\x82\x19\x82\x11\x15a'\xC4Wa'\xC4a \xFFV[P\x01\x90V[`\0` \x80\x83R`\0\x84Ta'\xDD\x81a \xACV[\x80\x84\x87\x01R`@`\x01\x80\x84\x16`\0\x81\x14a'\xFEW`\x01\x81\x14a(\x18Wa(FV[`\xFF\x19\x85\x16\x83\x8A\x01R\x82\x84\x15\x15`\x05\x1B\x8A\x01\x01\x95Pa(FV[\x89`\0R\x86`\0 `\0[\x85\x81\x10\x15a(>W\x81T\x8B\x82\x01\x86\x01R\x90\x83\x01\x90\x88\x01a(#V[\x8A\x01\x84\x01\x96PP[P\x93\x98\x97PPPPPPPPV\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct DripStatus(u8); + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for u8 { + #[inline] + fn stv_to_tokens( + &self, + ) -> as alloy_sol_types::SolType>::Token<'_> { + alloy_sol_types::private::SolTypeValue::< + alloy::sol_types::sol_data::Uint<8>, + >::stv_to_tokens(self) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + as alloy_sol_types::SolType>::tokenize(self) + .0 + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::SolType>::abi_encode_packed_to(self, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + as alloy_sol_types::SolType>::abi_encoded_size(self) + } + } + impl DripStatus { + /// The Solidity type name. + pub const NAME: &'static str = stringify!(@ name); + /// Convert from the underlying value type. + #[inline] + pub const fn from_underlying(value: u8) -> Self { + Self(value) + } + /// Return the underlying value. + #[inline] + pub const fn into_underlying(self) -> u8 { + self.0 + } + /// Return the single encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode(&self) -> alloy_sol_types::private::Vec { + ::abi_encode(&self.0) + } + /// Return the packed encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec { + ::abi_encode_packed(&self.0) + } + } + #[automatically_derived] + impl From for DripStatus { + fn from(value: u8) -> Self { + Self::from_underlying(value) + } + } + #[automatically_derived] + impl From for u8 { + fn from(value: DripStatus) -> Self { + value.into_underlying() + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for DripStatus { + type RustType = u8; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = Self::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + Self::type_check(token).is_ok() + } + #[inline] + fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> { + as alloy_sol_types::SolType>::type_check(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + as alloy_sol_types::SolType>::detokenize(token) + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for DripStatus { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + as alloy_sol_types::EventTopic>::topic_preimage_length(rust) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out) + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + as alloy_sol_types::EventTopic>::encode_topic(rust) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**```solidity +struct DripAction { address target; bytes data; uint256 value; } +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct DripAction { + #[allow(missing_docs)] + pub target: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub data: alloy::sol_types::private::Bytes, + #[allow(missing_docs)] + pub value: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Bytes, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Bytes, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: DripAction) -> Self { + (value.target, value.data, value.value) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for DripAction { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + target: tuple.0, + data: tuple.1, + value: tuple.2, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolValue for DripAction { + type SolType = Self; + } + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for DripAction { + #[inline] + fn stv_to_tokens(&self) -> ::Token<'_> { + ( + ::tokenize( + &self.target, + ), + ::tokenize( + &self.data, + ), + as alloy_sol_types::SolType>::tokenize(&self.value), + ) + } + #[inline] + fn stv_abi_encoded_size(&self) -> usize { + if let Some(size) = ::ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encoded_size(&tuple) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + ::eip712_hash_struct(self) + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + if let Some(size) = ::PACKED_ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for DripAction { + type RustType = Self; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = ::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + as alloy_sol_types::SolType>::valid_token(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + let tuple = as alloy_sol_types::SolType>::detokenize(token); + >>::from(tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolStruct for DripAction { + const NAME: &'static str = "DripAction"; + #[inline] + fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> { + alloy_sol_types::private::Cow::Borrowed( + "DripAction(address target,bytes data,uint256 value)", + ) + } + #[inline] + fn eip712_components() -> alloy_sol_types::private::Vec< + alloy_sol_types::private::Cow<'static, str>, + > { + alloy_sol_types::private::Vec::new() + } + #[inline] + fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> { + ::eip712_root_type() + } + #[inline] + fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec { + [ + ::eip712_data_word( + &self.target, + ) + .0, + ::eip712_data_word( + &self.data, + ) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.value) + .0, + ] + .concat() + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for DripAction { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + 0usize + + ::topic_preimage_length( + &rust.target, + ) + + ::topic_preimage_length( + &rust.data, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length(&rust.value) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + out.reserve( + ::topic_preimage_length(rust), + ); + ::encode_topic_preimage( + &rust.target, + out, + ); + ::encode_topic_preimage( + &rust.data, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.value, + out, + ); + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + let mut out = alloy_sol_types::private::Vec::new(); + ::encode_topic_preimage( + rust, + &mut out, + ); + alloy_sol_types::abi::token::WordToken( + alloy_sol_types::private::keccak256(out), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**```solidity +struct DripConfig { bool reentrant; uint256 interval; address dripcheck; bytes checkparams; DripAction[] actions; } +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct DripConfig { + #[allow(missing_docs)] + pub reentrant: bool, + #[allow(missing_docs)] + pub interval: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub dripcheck: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub checkparams: alloy::sol_types::private::Bytes, + #[allow(missing_docs)] + pub actions: alloy::sol_types::private::Vec< + ::RustType, + >, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Bool, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Bytes, + alloy::sol_types::sol_data::Array, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + bool, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::Address, + alloy::sol_types::private::Bytes, + alloy::sol_types::private::Vec< + ::RustType, + >, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: DripConfig) -> Self { + ( + value.reentrant, + value.interval, + value.dripcheck, + value.checkparams, + value.actions, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for DripConfig { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + reentrant: tuple.0, + interval: tuple.1, + dripcheck: tuple.2, + checkparams: tuple.3, + actions: tuple.4, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolValue for DripConfig { + type SolType = Self; + } + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for DripConfig { + #[inline] + fn stv_to_tokens(&self) -> ::Token<'_> { + ( + ::tokenize( + &self.reentrant, + ), + as alloy_sol_types::SolType>::tokenize(&self.interval), + ::tokenize( + &self.dripcheck, + ), + ::tokenize( + &self.checkparams, + ), + as alloy_sol_types::SolType>::tokenize(&self.actions), + ) + } + #[inline] + fn stv_abi_encoded_size(&self) -> usize { + if let Some(size) = ::ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encoded_size(&tuple) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + ::eip712_hash_struct(self) + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + if let Some(size) = ::PACKED_ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for DripConfig { + type RustType = Self; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = ::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + as alloy_sol_types::SolType>::valid_token(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + let tuple = as alloy_sol_types::SolType>::detokenize(token); + >>::from(tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolStruct for DripConfig { + const NAME: &'static str = "DripConfig"; + #[inline] + fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> { + alloy_sol_types::private::Cow::Borrowed( + "DripConfig(bool reentrant,uint256 interval,address dripcheck,bytes checkparams,DripAction[] actions)", + ) + } + #[inline] + fn eip712_components() -> alloy_sol_types::private::Vec< + alloy_sol_types::private::Cow<'static, str>, + > { + let mut components = alloy_sol_types::private::Vec::with_capacity(1); + components + .push( + ::eip712_root_type(), + ); + components + .extend( + ::eip712_components(), + ); + components + } + #[inline] + fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec { + [ + ::eip712_data_word( + &self.reentrant, + ) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.interval) + .0, + ::eip712_data_word( + &self.dripcheck, + ) + .0, + ::eip712_data_word( + &self.checkparams, + ) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.actions) + .0, + ] + .concat() + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for DripConfig { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + 0usize + + ::topic_preimage_length( + &rust.reentrant, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.interval, + ) + + ::topic_preimage_length( + &rust.dripcheck, + ) + + ::topic_preimage_length( + &rust.checkparams, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.actions, + ) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + out.reserve( + ::topic_preimage_length(rust), + ); + ::encode_topic_preimage( + &rust.reentrant, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.interval, + out, + ); + ::encode_topic_preimage( + &rust.dripcheck, + out, + ); + ::encode_topic_preimage( + &rust.checkparams, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.actions, + out, + ); + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + let mut out = alloy_sol_types::private::Vec::new(); + ::encode_topic_preimage( + rust, + &mut out, + ); + alloy_sol_types::abi::token::WordToken( + alloy_sol_types::private::keccak256(out), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `DripCreated(string,string,(bool,uint256,address,bytes,(address,bytes,uint256)[]))` and selector `0xe38d8d98e6cc66f6f520d483c6c5a89289681f897799c4c29d767cf57e76d9a6`. +```solidity +event DripCreated(string indexed nameref, string name, DripConfig config); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct DripCreated { + #[allow(missing_docs)] + pub nameref: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub name: alloy::sol_types::private::String, + #[allow(missing_docs)] + pub config: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for DripCreated { + type DataTuple<'a> = (alloy::sol_types::sol_data::String, DripConfig); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + const SIGNATURE: &'static str = "DripCreated(string,string,(bool,uint256,address,bytes,(address,bytes,uint256)[]))"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 227u8, 141u8, 141u8, 152u8, 230u8, 204u8, 102u8, 246u8, 245u8, 32u8, + 212u8, 131u8, 198u8, 197u8, 168u8, 146u8, 137u8, 104u8, 31u8, 137u8, + 119u8, 153u8, 196u8, 194u8, 157u8, 118u8, 124u8, 245u8, 126u8, 118u8, + 217u8, 166u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + nameref: topics.1, + name: data.0, + config: data.1, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + ::tokenize( + &self.name, + ), + ::tokenize(&self.config), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.nameref.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = as alloy_sol_types::EventTopic>::encode_topic(&self.nameref); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for DripCreated { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&DripCreated> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &DripCreated) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `DripExecuted(string,string,address,uint256)` and selector `0xea21435419aad9c54a9d90e2522b6f60bd566401f36fcef661f5f5a28cc0d2c6`. +```solidity +event DripExecuted(string indexed nameref, string name, address executor, uint256 timestamp); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct DripExecuted { + #[allow(missing_docs)] + pub nameref: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub name: alloy::sol_types::private::String, + #[allow(missing_docs)] + pub executor: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub timestamp: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for DripExecuted { + type DataTuple<'a> = ( + alloy::sol_types::sol_data::String, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + const SIGNATURE: &'static str = "DripExecuted(string,string,address,uint256)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 234u8, 33u8, 67u8, 84u8, 25u8, 170u8, 217u8, 197u8, 74u8, 157u8, 144u8, + 226u8, 82u8, 43u8, 111u8, 96u8, 189u8, 86u8, 100u8, 1u8, 243u8, 111u8, + 206u8, 246u8, 97u8, 245u8, 245u8, 162u8, 140u8, 192u8, 210u8, 198u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + nameref: topics.1, + name: data.0, + executor: data.1, + timestamp: data.2, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + ::tokenize( + &self.name, + ), + ::tokenize( + &self.executor, + ), + as alloy_sol_types::SolType>::tokenize(&self.timestamp), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.nameref.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = as alloy_sol_types::EventTopic>::encode_topic(&self.nameref); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for DripExecuted { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&DripExecuted> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &DripExecuted) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `DripStatusUpdated(string,string,uint8)` and selector `0x407cb3ad05e60ec498fb39417c7a4f6b82d5ba80f82fe512a37b02c93181a2a1`. +```solidity +event DripStatusUpdated(string indexed nameref, string name, DripStatus status); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct DripStatusUpdated { + #[allow(missing_docs)] + pub nameref: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub name: alloy::sol_types::private::String, + #[allow(missing_docs)] + pub status: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for DripStatusUpdated { + type DataTuple<'a> = (alloy::sol_types::sol_data::String, DripStatus); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + const SIGNATURE: &'static str = "DripStatusUpdated(string,string,uint8)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 64u8, 124u8, 179u8, 173u8, 5u8, 230u8, 14u8, 196u8, 152u8, 251u8, 57u8, + 65u8, 124u8, 122u8, 79u8, 107u8, 130u8, 213u8, 186u8, 128u8, 248u8, 47u8, + 229u8, 18u8, 163u8, 123u8, 2u8, 201u8, 49u8, 129u8, 162u8, 161u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + nameref: topics.1, + name: data.0, + status: data.1, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + ::tokenize( + &self.name, + ), + ::tokenize(&self.status), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.nameref.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = as alloy_sol_types::EventTopic>::encode_topic(&self.nameref); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for DripStatusUpdated { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&DripStatusUpdated> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &DripStatusUpdated) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `OwnerUpdated(address,address)` and selector `0x8292fce18fa69edf4db7b94ea2e58241df0ae57f97e0a6c9b29067028bf92d76`. +```solidity +event OwnerUpdated(address indexed user, address indexed newOwner); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct OwnerUpdated { + #[allow(missing_docs)] + pub user: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub newOwner: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for OwnerUpdated { + type DataTuple<'a> = (); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "OwnerUpdated(address,address)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 130u8, 146u8, 252u8, 225u8, 143u8, 166u8, 158u8, 223u8, 77u8, 183u8, + 185u8, 78u8, 162u8, 229u8, 130u8, 65u8, 223u8, 10u8, 229u8, 127u8, 151u8, + 224u8, 166u8, 201u8, 178u8, 144u8, 103u8, 2u8, 139u8, 249u8, 45u8, 118u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + user: topics.1, + newOwner: topics.2, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + () + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.user.clone(), self.newOwner.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.user, + ); + out[2usize] = ::encode_topic( + &self.newOwner, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for OwnerUpdated { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&OwnerUpdated> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &OwnerUpdated) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `ReceivedETH(address,uint256)` and selector `0x4103257eaac983ca79a70d28f90dfc4fa16b619bb0c17ee7cab0d4034c279624`. +```solidity +event ReceivedETH(address indexed from, uint256 amount); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct ReceivedETH { + #[allow(missing_docs)] + pub from: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub amount: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for ReceivedETH { + type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "ReceivedETH(address,uint256)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 65u8, 3u8, 37u8, 126u8, 170u8, 201u8, 131u8, 202u8, 121u8, 167u8, 13u8, + 40u8, 249u8, 13u8, 252u8, 79u8, 161u8, 107u8, 97u8, 155u8, 176u8, 193u8, + 126u8, 231u8, 202u8, 176u8, 212u8, 3u8, 76u8, 39u8, 150u8, 36u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + from: topics.1, + amount: data.0, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.amount), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.from.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.from, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for ReceivedETH { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&ReceivedETH> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &ReceivedETH) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `WithdrewERC20(address,address,address,uint256)` and selector `0x6b00f1c7883f053ba83e907fd1965b22fffe3c4111383e725f04638a566cdbfa`. +```solidity +event WithdrewERC20(address indexed withdrawer, address indexed recipient, address indexed asset, uint256 amount); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct WithdrewERC20 { + #[allow(missing_docs)] + pub withdrawer: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub recipient: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub asset: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub amount: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for WithdrewERC20 { + type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "WithdrewERC20(address,address,address,uint256)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 107u8, 0u8, 241u8, 199u8, 136u8, 63u8, 5u8, 59u8, 168u8, 62u8, 144u8, + 127u8, 209u8, 150u8, 91u8, 34u8, 255u8, 254u8, 60u8, 65u8, 17u8, 56u8, + 62u8, 114u8, 95u8, 4u8, 99u8, 138u8, 86u8, 108u8, 219u8, 250u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + withdrawer: topics.1, + recipient: topics.2, + asset: topics.3, + amount: data.0, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.amount), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + ( + Self::SIGNATURE_HASH.into(), + self.withdrawer.clone(), + self.recipient.clone(), + self.asset.clone(), + ) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.withdrawer, + ); + out[2usize] = ::encode_topic( + &self.recipient, + ); + out[3usize] = ::encode_topic( + &self.asset, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for WithdrewERC20 { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&WithdrewERC20> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &WithdrewERC20) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `WithdrewERC721(address,address,address,uint256)` and selector `0x30b478a5e196e55886228aa87ba74a7dfeba655e0a4d7ba275eabfc22aabb7a8`. +```solidity +event WithdrewERC721(address indexed withdrawer, address indexed recipient, address indexed asset, uint256 id); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct WithdrewERC721 { + #[allow(missing_docs)] + pub withdrawer: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub recipient: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub asset: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub id: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for WithdrewERC721 { + type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "WithdrewERC721(address,address,address,uint256)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 48u8, 180u8, 120u8, 165u8, 225u8, 150u8, 229u8, 88u8, 134u8, 34u8, 138u8, + 168u8, 123u8, 167u8, 74u8, 125u8, 254u8, 186u8, 101u8, 94u8, 10u8, 77u8, + 123u8, 162u8, 117u8, 234u8, 191u8, 194u8, 42u8, 171u8, 183u8, 168u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + withdrawer: topics.1, + recipient: topics.2, + asset: topics.3, + id: data.0, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.id), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + ( + Self::SIGNATURE_HASH.into(), + self.withdrawer.clone(), + self.recipient.clone(), + self.asset.clone(), + ) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.withdrawer, + ); + out[2usize] = ::encode_topic( + &self.recipient, + ); + out[3usize] = ::encode_topic( + &self.asset, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for WithdrewERC721 { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&WithdrewERC721> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &WithdrewERC721) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `WithdrewETH(address,address,uint256)` and selector `0x1f12aa8b6d492dd9b98e2b00b0b20830c2a7ded65afac13b60d169a034ae90bc`. +```solidity +event WithdrewETH(address indexed withdrawer, address indexed recipient, uint256 amount); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct WithdrewETH { + #[allow(missing_docs)] + pub withdrawer: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub recipient: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub amount: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for WithdrewETH { + type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "WithdrewETH(address,address,uint256)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 31u8, 18u8, 170u8, 139u8, 109u8, 73u8, 45u8, 217u8, 185u8, 142u8, 43u8, + 0u8, 176u8, 178u8, 8u8, 48u8, 194u8, 167u8, 222u8, 214u8, 90u8, 250u8, + 193u8, 59u8, 96u8, 209u8, 105u8, 160u8, 52u8, 174u8, 144u8, 188u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + withdrawer: topics.1, + recipient: topics.2, + amount: data.0, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.amount), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + ( + Self::SIGNATURE_HASH.into(), + self.withdrawer.clone(), + self.recipient.clone(), + ) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.withdrawer, + ); + out[2usize] = ::encode_topic( + &self.recipient, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for WithdrewETH { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&WithdrewETH> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &WithdrewETH) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + /**Constructor`. +```solidity +constructor(address _owner); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct constructorCall { + #[allow(missing_docs)] + pub _owner: alloy::sol_types::private::Address, + } + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: constructorCall) -> Self { + (value._owner,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for constructorCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _owner: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolConstructor for constructorCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._owner, + ), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `CALL(address,bytes,uint256)` and selector `0x6e2d44ae`. +```solidity +function CALL(address _target, bytes memory _data, uint256 _value) external payable returns (bool success_, bytes memory data_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct CALLCall { + #[allow(missing_docs)] + pub _target: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _data: alloy::sol_types::private::Bytes, + #[allow(missing_docs)] + pub _value: alloy::sol_types::private::primitives::aliases::U256, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`CALL(address,bytes,uint256)`](CALLCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct CALLReturn { + #[allow(missing_docs)] + pub success_: bool, + #[allow(missing_docs)] + pub data_: alloy::sol_types::private::Bytes, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Bytes, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Bytes, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: CALLCall) -> Self { + (value._target, value._data, value._value) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for CALLCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _target: tuple.0, + _data: tuple.1, + _value: tuple.2, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Bool, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool, alloy::sol_types::private::Bytes); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: CALLReturn) -> Self { + (value.success_, value.data_) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for CALLReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + success_: tuple.0, + data_: tuple.1, + } + } + } + } + impl CALLReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + ( + ::tokenize( + &self.success_, + ), + ::tokenize( + &self.data_, + ), + ) + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for CALLCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Bytes, + alloy::sol_types::sol_data::Uint<256>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = CALLReturn; + type ReturnTuple<'a> = ( + alloy::sol_types::sol_data::Bool, + alloy::sol_types::sol_data::Bytes, + ); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "CALL(address,bytes,uint256)"; + const SELECTOR: [u8; 4] = [110u8, 45u8, 68u8, 174u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._target, + ), + ::tokenize( + &self._data, + ), + as alloy_sol_types::SolType>::tokenize(&self._value), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + CALLReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `DELEGATECALL(address,bytes)` and selector `0xedee6239`. +```solidity +function DELEGATECALL(address _target, bytes memory _data) external payable returns (bool success_, bytes memory data_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct DELEGATECALLCall { + #[allow(missing_docs)] + pub _target: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _data: alloy::sol_types::private::Bytes, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`DELEGATECALL(address,bytes)`](DELEGATECALLCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct DELEGATECALLReturn { + #[allow(missing_docs)] + pub success_: bool, + #[allow(missing_docs)] + pub data_: alloy::sol_types::private::Bytes, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Bytes, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: DELEGATECALLCall) -> Self { + (value._target, value._data) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for DELEGATECALLCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _target: tuple.0, + _data: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Bool, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool, alloy::sol_types::private::Bytes); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: DELEGATECALLReturn) -> Self { + (value.success_, value.data_) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for DELEGATECALLReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + success_: tuple.0, + data_: tuple.1, + } + } + } + } + impl DELEGATECALLReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + ( + ::tokenize( + &self.success_, + ), + ::tokenize( + &self.data_, + ), + ) + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for DELEGATECALLCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Bytes, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = DELEGATECALLReturn; + type ReturnTuple<'a> = ( + alloy::sol_types::sol_data::Bool, + alloy::sol_types::sol_data::Bytes, + ); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "DELEGATECALL(address,bytes)"; + const SELECTOR: [u8; 4] = [237u8, 238u8, 98u8, 57u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._target, + ), + ::tokenize( + &self._data, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + DELEGATECALLReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `create(string,(bool,uint256,address,bytes,(address,bytes,uint256)[]))` and selector `0xe551cdaa`. +```solidity +function create(string memory _name, DripConfig memory _config) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct createCall { + #[allow(missing_docs)] + pub _name: alloy::sol_types::private::String, + #[allow(missing_docs)] + pub _config: ::RustType, + } + ///Container type for the return parameters of the [`create(string,(bool,uint256,address,bytes,(address,bytes,uint256)[]))`](createCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct createReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::String, + DripConfig, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::String, + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: createCall) -> Self { + (value._name, value._config) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for createCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _name: tuple.0, + _config: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: createReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for createReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl createReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for createCall { + type Parameters<'a> = (alloy::sol_types::sol_data::String, DripConfig); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = createReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "create(string,(bool,uint256,address,bytes,(address,bytes,uint256)[]))"; + const SELECTOR: [u8; 4] = [229u8, 81u8, 205u8, 170u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._name, + ), + ::tokenize(&self._config), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + createReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `created(uint256)` and selector `0x82cb6b72`. +```solidity +function created(uint256) external view returns (string memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct createdCall(pub alloy::sol_types::private::primitives::aliases::U256); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`created(uint256)`](createdCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct createdReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: createdCall) -> Self { + (value.0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for createdCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self(tuple.0) + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: createdReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for createdReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for createdCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::String; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "created(uint256)"; + const SELECTOR: [u8; 4] = [130u8, 203u8, 107u8, 114u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.0), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: createdReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: createdReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `drip(string)` and selector `0x67148cd2`. +```solidity +function drip(string memory _name) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct dripCall { + #[allow(missing_docs)] + pub _name: alloy::sol_types::private::String, + } + ///Container type for the return parameters of the [`drip(string)`](dripCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct dripReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: dripCall) -> Self { + (value._name,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for dripCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _name: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: dripReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for dripReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl dripReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for dripCall { + type Parameters<'a> = (alloy::sol_types::sol_data::String,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = dripReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "drip(string)"; + const SELECTOR: [u8; 4] = [103u8, 20u8, 140u8, 210u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._name, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + dripReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `drips(string)` and selector `0x4d7fba6e`. +```solidity +function drips(string memory) external view returns (DripStatus status, DripConfig memory config, uint256 last, uint256 count); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct dripsCall(pub alloy::sol_types::private::String); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`drips(string)`](dripsCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct dripsReturn { + #[allow(missing_docs)] + pub status: ::RustType, + #[allow(missing_docs)] + pub config: ::RustType, + #[allow(missing_docs)] + pub last: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub count: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: dripsCall) -> Self { + (value.0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for dripsCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self(tuple.0) + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + DripStatus, + DripConfig, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ::RustType, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: dripsReturn) -> Self { + (value.status, value.config, value.last, value.count) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for dripsReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + status: tuple.0, + config: tuple.1, + last: tuple.2, + count: tuple.3, + } + } + } + } + impl dripsReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + ( + ::tokenize(&self.status), + ::tokenize(&self.config), + as alloy_sol_types::SolType>::tokenize(&self.last), + as alloy_sol_types::SolType>::tokenize(&self.count), + ) + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for dripsCall { + type Parameters<'a> = (alloy::sol_types::sol_data::String,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = dripsReturn; + type ReturnTuple<'a> = ( + DripStatus, + DripConfig, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + ); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "drips(string)"; + const SELECTOR: [u8; 4] = [77u8, 127u8, 186u8, 110u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.0, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + dripsReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `executable(string)` and selector `0xfc3e3eba`. +```solidity +function executable(string memory _name) external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct executableCall { + #[allow(missing_docs)] + pub _name: alloy::sol_types::private::String, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`executable(string)`](executableCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct executableReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: executableCall) -> Self { + (value._name,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for executableCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _name: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: executableReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for executableReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for executableCall { + type Parameters<'a> = (alloy::sol_types::sol_data::String,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "executable(string)"; + const SELECTOR: [u8; 4] = [252u8, 62u8, 62u8, 186u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._name, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: executableReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: executableReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `getDripCount()` and selector `0xf1d42b47`. +```solidity +function getDripCount() external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getDripCountCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`getDripCount()`](getDripCountCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getDripCountReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: getDripCountCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for getDripCountCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: getDripCountReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for getDripCountReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for getDripCountCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "getDripCount()"; + const SELECTOR: [u8; 4] = [241u8, 212u8, 43u8, 71u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: getDripCountReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: getDripCountReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `getDripInterval(string)` and selector `0x90547c14`. +```solidity +function getDripInterval(string memory _name) external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getDripIntervalCall { + #[allow(missing_docs)] + pub _name: alloy::sol_types::private::String, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`getDripInterval(string)`](getDripIntervalCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getDripIntervalReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: getDripIntervalCall) -> Self { + (value._name,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for getDripIntervalCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _name: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: getDripIntervalReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for getDripIntervalReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for getDripIntervalCall { + type Parameters<'a> = (alloy::sol_types::sol_data::String,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "getDripInterval(string)"; + const SELECTOR: [u8; 4] = [144u8, 84u8, 124u8, 20u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._name, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: getDripIntervalReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: getDripIntervalReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `getDripStatus(string)` and selector `0x0d8f4697`. +```solidity +function getDripStatus(string memory _name) external view returns (DripStatus); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getDripStatusCall { + #[allow(missing_docs)] + pub _name: alloy::sol_types::private::String, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`getDripStatus(string)`](getDripStatusCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getDripStatusReturn { + #[allow(missing_docs)] + pub _0: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: getDripStatusCall) -> Self { + (value._name,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for getDripStatusCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _name: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (DripStatus,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: getDripStatusReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for getDripStatusReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for getDripStatusCall { + type Parameters<'a> = (alloy::sol_types::sol_data::String,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (DripStatus,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "getDripStatus(string)"; + const SELECTOR: [u8; 4] = [13u8, 143u8, 70u8, 151u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._name, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: getDripStatusReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: getDripStatusReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `owner()` and selector `0x8da5cb5b`. +```solidity +function owner() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ownerCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`owner()`](ownerCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ownerReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ownerCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ownerCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ownerReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ownerReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for ownerCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "owner()"; + const SELECTOR: [u8; 4] = [141u8, 165u8, 203u8, 91u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: ownerReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: ownerReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `setOwner(address)` and selector `0x13af4035`. +```solidity +function setOwner(address newOwner) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setOwnerCall { + #[allow(missing_docs)] + pub newOwner: alloy::sol_types::private::Address, + } + ///Container type for the return parameters of the [`setOwner(address)`](setOwnerCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setOwnerReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: setOwnerCall) -> Self { + (value.newOwner,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for setOwnerCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { newOwner: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: setOwnerReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for setOwnerReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl setOwnerReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for setOwnerCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = setOwnerReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "setOwner(address)"; + const SELECTOR: [u8; 4] = [19u8, 175u8, 64u8, 53u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.newOwner, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + setOwnerReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `status(string,uint8)` and selector `0x9bc94d01`. +```solidity +function status(string memory _name, DripStatus _status) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct statusCall { + #[allow(missing_docs)] + pub _name: alloy::sol_types::private::String, + #[allow(missing_docs)] + pub _status: ::RustType, + } + ///Container type for the return parameters of the [`status(string,uint8)`](statusCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct statusReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::String, + DripStatus, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::String, + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: statusCall) -> Self { + (value._name, value._status) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for statusCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _name: tuple.0, + _status: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: statusReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for statusReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl statusReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for statusCall { + type Parameters<'a> = (alloy::sol_types::sol_data::String, DripStatus); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = statusReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "status(string,uint8)"; + const SELECTOR: [u8; 4] = [155u8, 201u8, 77u8, 1u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._name, + ), + ::tokenize(&self._status), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + statusReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `withdrawERC20(address,address,uint256)` and selector `0x44004cc1`. +```solidity +function withdrawERC20(address _asset, address _to, uint256 _amount) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct withdrawERC20_0Call { + #[allow(missing_docs)] + pub _asset: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _amount: alloy::sol_types::private::primitives::aliases::U256, + } + ///Container type for the return parameters of the [`withdrawERC20(address,address,uint256)`](withdrawERC20_0Call) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct withdrawERC20_0Return {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: withdrawERC20_0Call) -> Self { + (value._asset, value._to, value._amount) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for withdrawERC20_0Call { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _asset: tuple.0, + _to: tuple.1, + _amount: tuple.2, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: withdrawERC20_0Return) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for withdrawERC20_0Return { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl withdrawERC20_0Return { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for withdrawERC20_0Call { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = withdrawERC20_0Return; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "withdrawERC20(address,address,uint256)"; + const SELECTOR: [u8; 4] = [68u8, 0u8, 76u8, 193u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._asset, + ), + ::tokenize( + &self._to, + ), + as alloy_sol_types::SolType>::tokenize(&self._amount), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + withdrawERC20_0Return::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `withdrawERC20(address,address)` and selector `0x9456fbcc`. +```solidity +function withdrawERC20(address _asset, address _to) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct withdrawERC20_1Call { + #[allow(missing_docs)] + pub _asset: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _to: alloy::sol_types::private::Address, + } + ///Container type for the return parameters of the [`withdrawERC20(address,address)`](withdrawERC20_1Call) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct withdrawERC20_1Return {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: withdrawERC20_1Call) -> Self { + (value._asset, value._to) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for withdrawERC20_1Call { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _asset: tuple.0, + _to: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: withdrawERC20_1Return) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for withdrawERC20_1Return { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl withdrawERC20_1Return { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for withdrawERC20_1Call { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = withdrawERC20_1Return; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "withdrawERC20(address,address)"; + const SELECTOR: [u8; 4] = [148u8, 86u8, 251u8, 204u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._asset, + ), + ::tokenize( + &self._to, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + withdrawERC20_1Return::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `withdrawERC721(address,address,uint256)` and selector `0x4025feb2`. +```solidity +function withdrawERC721(address _asset, address _to, uint256 _id) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct withdrawERC721Call { + #[allow(missing_docs)] + pub _asset: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _id: alloy::sol_types::private::primitives::aliases::U256, + } + ///Container type for the return parameters of the [`withdrawERC721(address,address,uint256)`](withdrawERC721Call) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct withdrawERC721Return {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: withdrawERC721Call) -> Self { + (value._asset, value._to, value._id) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for withdrawERC721Call { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _asset: tuple.0, + _to: tuple.1, + _id: tuple.2, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: withdrawERC721Return) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for withdrawERC721Return { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl withdrawERC721Return { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for withdrawERC721Call { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = withdrawERC721Return; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "withdrawERC721(address,address,uint256)"; + const SELECTOR: [u8; 4] = [64u8, 37u8, 254u8, 178u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._asset, + ), + ::tokenize( + &self._to, + ), + as alloy_sol_types::SolType>::tokenize(&self._id), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + withdrawERC721Return::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `withdrawETH(address,uint256)` and selector `0x4782f779`. +```solidity +function withdrawETH(address _to, uint256 _amount) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct withdrawETH_0Call { + #[allow(missing_docs)] + pub _to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _amount: alloy::sol_types::private::primitives::aliases::U256, + } + ///Container type for the return parameters of the [`withdrawETH(address,uint256)`](withdrawETH_0Call) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct withdrawETH_0Return {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: withdrawETH_0Call) -> Self { + (value._to, value._amount) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for withdrawETH_0Call { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _to: tuple.0, + _amount: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: withdrawETH_0Return) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for withdrawETH_0Return { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl withdrawETH_0Return { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for withdrawETH_0Call { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = withdrawETH_0Return; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "withdrawETH(address,uint256)"; + const SELECTOR: [u8; 4] = [71u8, 130u8, 247u8, 121u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._to, + ), + as alloy_sol_types::SolType>::tokenize(&self._amount), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + withdrawETH_0Return::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `withdrawETH(address)` and selector `0x690d8320`. +```solidity +function withdrawETH(address _to) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct withdrawETH_1Call { + #[allow(missing_docs)] + pub _to: alloy::sol_types::private::Address, + } + ///Container type for the return parameters of the [`withdrawETH(address)`](withdrawETH_1Call) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct withdrawETH_1Return {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: withdrawETH_1Call) -> Self { + (value._to,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for withdrawETH_1Call { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _to: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: withdrawETH_1Return) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for withdrawETH_1Return { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl withdrawETH_1Return { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for withdrawETH_1Call { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = withdrawETH_1Return; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "withdrawETH(address)"; + const SELECTOR: [u8; 4] = [105u8, 13u8, 131u8, 32u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._to, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + withdrawETH_1Return::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + ///Container for all the [`Drippie`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum DrippieCalls { + #[allow(missing_docs)] + CALL(CALLCall), + #[allow(missing_docs)] + DELEGATECALL(DELEGATECALLCall), + #[allow(missing_docs)] + create(createCall), + #[allow(missing_docs)] + created(createdCall), + #[allow(missing_docs)] + drip(dripCall), + #[allow(missing_docs)] + drips(dripsCall), + #[allow(missing_docs)] + executable(executableCall), + #[allow(missing_docs)] + getDripCount(getDripCountCall), + #[allow(missing_docs)] + getDripInterval(getDripIntervalCall), + #[allow(missing_docs)] + getDripStatus(getDripStatusCall), + #[allow(missing_docs)] + owner(ownerCall), + #[allow(missing_docs)] + setOwner(setOwnerCall), + #[allow(missing_docs)] + status(statusCall), + #[allow(missing_docs)] + withdrawERC20_0(withdrawERC20_0Call), + #[allow(missing_docs)] + withdrawERC20_1(withdrawERC20_1Call), + #[allow(missing_docs)] + withdrawERC721(withdrawERC721Call), + #[allow(missing_docs)] + withdrawETH_0(withdrawETH_0Call), + #[allow(missing_docs)] + withdrawETH_1(withdrawETH_1Call), + } + impl DrippieCalls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [13u8, 143u8, 70u8, 151u8], + [19u8, 175u8, 64u8, 53u8], + [64u8, 37u8, 254u8, 178u8], + [68u8, 0u8, 76u8, 193u8], + [71u8, 130u8, 247u8, 121u8], + [77u8, 127u8, 186u8, 110u8], + [103u8, 20u8, 140u8, 210u8], + [105u8, 13u8, 131u8, 32u8], + [110u8, 45u8, 68u8, 174u8], + [130u8, 203u8, 107u8, 114u8], + [141u8, 165u8, 203u8, 91u8], + [144u8, 84u8, 124u8, 20u8], + [148u8, 86u8, 251u8, 204u8], + [155u8, 201u8, 77u8, 1u8], + [229u8, 81u8, 205u8, 170u8], + [237u8, 238u8, 98u8, 57u8], + [241u8, 212u8, 43u8, 71u8], + [252u8, 62u8, 62u8, 186u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(getDripStatus), + ::core::stringify!(setOwner), + ::core::stringify!(withdrawERC721), + ::core::stringify!(withdrawERC20_0), + ::core::stringify!(withdrawETH_0), + ::core::stringify!(drips), + ::core::stringify!(drip), + ::core::stringify!(withdrawETH_1), + ::core::stringify!(CALL), + ::core::stringify!(created), + ::core::stringify!(owner), + ::core::stringify!(getDripInterval), + ::core::stringify!(withdrawERC20_1), + ::core::stringify!(status), + ::core::stringify!(create), + ::core::stringify!(DELEGATECALL), + ::core::stringify!(getDripCount), + ::core::stringify!(executable), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for DrippieCalls { + const NAME: &'static str = "DrippieCalls"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 18usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::CALL(_) => ::SELECTOR, + Self::DELEGATECALL(_) => { + ::SELECTOR + } + Self::create(_) => ::SELECTOR, + Self::created(_) => ::SELECTOR, + Self::drip(_) => ::SELECTOR, + Self::drips(_) => ::SELECTOR, + Self::executable(_) => { + ::SELECTOR + } + Self::getDripCount(_) => { + ::SELECTOR + } + Self::getDripInterval(_) => { + ::SELECTOR + } + Self::getDripStatus(_) => { + ::SELECTOR + } + Self::owner(_) => ::SELECTOR, + Self::setOwner(_) => ::SELECTOR, + Self::status(_) => ::SELECTOR, + Self::withdrawERC20_0(_) => { + ::SELECTOR + } + Self::withdrawERC20_1(_) => { + ::SELECTOR + } + Self::withdrawERC721(_) => { + ::SELECTOR + } + Self::withdrawETH_0(_) => { + ::SELECTOR + } + Self::withdrawETH_1(_) => { + ::SELECTOR + } + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn(&[u8]) -> alloy_sol_types::Result] = &[ + { + fn getDripStatus( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(DrippieCalls::getDripStatus) + } + getDripStatus + }, + { + fn setOwner(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(DrippieCalls::setOwner) + } + setOwner + }, + { + fn withdrawERC721( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(DrippieCalls::withdrawERC721) + } + withdrawERC721 + }, + { + fn withdrawERC20_0( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(DrippieCalls::withdrawERC20_0) + } + withdrawERC20_0 + }, + { + fn withdrawETH_0( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(DrippieCalls::withdrawETH_0) + } + withdrawETH_0 + }, + { + fn drips(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(DrippieCalls::drips) + } + drips + }, + { + fn drip(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(DrippieCalls::drip) + } + drip + }, + { + fn withdrawETH_1( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(DrippieCalls::withdrawETH_1) + } + withdrawETH_1 + }, + { + fn CALL(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(DrippieCalls::CALL) + } + CALL + }, + { + fn created(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(DrippieCalls::created) + } + created + }, + { + fn owner(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(DrippieCalls::owner) + } + owner + }, + { + fn getDripInterval( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(DrippieCalls::getDripInterval) + } + getDripInterval + }, + { + fn withdrawERC20_1( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(DrippieCalls::withdrawERC20_1) + } + withdrawERC20_1 + }, + { + fn status(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(DrippieCalls::status) + } + status + }, + { + fn create(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(DrippieCalls::create) + } + create + }, + { + fn DELEGATECALL( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(DrippieCalls::DELEGATECALL) + } + DELEGATECALL + }, + { + fn getDripCount( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(DrippieCalls::getDripCount) + } + getDripCount + }, + { + fn executable(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(DrippieCalls::executable) + } + executable + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn getDripStatus( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DrippieCalls::getDripStatus) + } + getDripStatus + }, + { + fn setOwner(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DrippieCalls::setOwner) + } + setOwner + }, + { + fn withdrawERC721( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DrippieCalls::withdrawERC721) + } + withdrawERC721 + }, + { + fn withdrawERC20_0( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DrippieCalls::withdrawERC20_0) + } + withdrawERC20_0 + }, + { + fn withdrawETH_0( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DrippieCalls::withdrawETH_0) + } + withdrawETH_0 + }, + { + fn drips(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DrippieCalls::drips) + } + drips + }, + { + fn drip(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DrippieCalls::drip) + } + drip + }, + { + fn withdrawETH_1( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DrippieCalls::withdrawETH_1) + } + withdrawETH_1 + }, + { + fn CALL(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DrippieCalls::CALL) + } + CALL + }, + { + fn created(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DrippieCalls::created) + } + created + }, + { + fn owner(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DrippieCalls::owner) + } + owner + }, + { + fn getDripInterval( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DrippieCalls::getDripInterval) + } + getDripInterval + }, + { + fn withdrawERC20_1( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DrippieCalls::withdrawERC20_1) + } + withdrawERC20_1 + }, + { + fn status(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DrippieCalls::status) + } + status + }, + { + fn create(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DrippieCalls::create) + } + create + }, + { + fn DELEGATECALL( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DrippieCalls::DELEGATECALL) + } + DELEGATECALL + }, + { + fn getDripCount( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DrippieCalls::getDripCount) + } + getDripCount + }, + { + fn executable(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(DrippieCalls::executable) + } + executable + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::CALL(inner) => { + ::abi_encoded_size(inner) + } + Self::DELEGATECALL(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::create(inner) => { + ::abi_encoded_size(inner) + } + Self::created(inner) => { + ::abi_encoded_size(inner) + } + Self::drip(inner) => { + ::abi_encoded_size(inner) + } + Self::drips(inner) => { + ::abi_encoded_size(inner) + } + Self::executable(inner) => { + ::abi_encoded_size(inner) + } + Self::getDripCount(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::getDripInterval(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::getDripStatus(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::owner(inner) => { + ::abi_encoded_size(inner) + } + Self::setOwner(inner) => { + ::abi_encoded_size(inner) + } + Self::status(inner) => { + ::abi_encoded_size(inner) + } + Self::withdrawERC20_0(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::withdrawERC20_1(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::withdrawERC721(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::withdrawETH_0(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::withdrawETH_1(inner) => { + ::abi_encoded_size( + inner, + ) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::CALL(inner) => { + ::abi_encode_raw(inner, out) + } + Self::DELEGATECALL(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::create(inner) => { + ::abi_encode_raw(inner, out) + } + Self::created(inner) => { + ::abi_encode_raw(inner, out) + } + Self::drip(inner) => { + ::abi_encode_raw(inner, out) + } + Self::drips(inner) => { + ::abi_encode_raw(inner, out) + } + Self::executable(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::getDripCount(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::getDripInterval(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::getDripStatus(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::owner(inner) => { + ::abi_encode_raw(inner, out) + } + Self::setOwner(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::status(inner) => { + ::abi_encode_raw(inner, out) + } + Self::withdrawERC20_0(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::withdrawERC20_1(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::withdrawERC721(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::withdrawETH_0(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::withdrawETH_1(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + } + } + } + ///Container for all the [`Drippie`](self) events. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum DrippieEvents { + #[allow(missing_docs)] + DripCreated(DripCreated), + #[allow(missing_docs)] + DripExecuted(DripExecuted), + #[allow(missing_docs)] + DripStatusUpdated(DripStatusUpdated), + #[allow(missing_docs)] + OwnerUpdated(OwnerUpdated), + #[allow(missing_docs)] + ReceivedETH(ReceivedETH), + #[allow(missing_docs)] + WithdrewERC20(WithdrewERC20), + #[allow(missing_docs)] + WithdrewERC721(WithdrewERC721), + #[allow(missing_docs)] + WithdrewETH(WithdrewETH), + } + impl DrippieEvents { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 32usize]] = &[ + [ + 31u8, 18u8, 170u8, 139u8, 109u8, 73u8, 45u8, 217u8, 185u8, 142u8, 43u8, + 0u8, 176u8, 178u8, 8u8, 48u8, 194u8, 167u8, 222u8, 214u8, 90u8, 250u8, + 193u8, 59u8, 96u8, 209u8, 105u8, 160u8, 52u8, 174u8, 144u8, 188u8, + ], + [ + 48u8, 180u8, 120u8, 165u8, 225u8, 150u8, 229u8, 88u8, 134u8, 34u8, 138u8, + 168u8, 123u8, 167u8, 74u8, 125u8, 254u8, 186u8, 101u8, 94u8, 10u8, 77u8, + 123u8, 162u8, 117u8, 234u8, 191u8, 194u8, 42u8, 171u8, 183u8, 168u8, + ], + [ + 64u8, 124u8, 179u8, 173u8, 5u8, 230u8, 14u8, 196u8, 152u8, 251u8, 57u8, + 65u8, 124u8, 122u8, 79u8, 107u8, 130u8, 213u8, 186u8, 128u8, 248u8, 47u8, + 229u8, 18u8, 163u8, 123u8, 2u8, 201u8, 49u8, 129u8, 162u8, 161u8, + ], + [ + 65u8, 3u8, 37u8, 126u8, 170u8, 201u8, 131u8, 202u8, 121u8, 167u8, 13u8, + 40u8, 249u8, 13u8, 252u8, 79u8, 161u8, 107u8, 97u8, 155u8, 176u8, 193u8, + 126u8, 231u8, 202u8, 176u8, 212u8, 3u8, 76u8, 39u8, 150u8, 36u8, + ], + [ + 107u8, 0u8, 241u8, 199u8, 136u8, 63u8, 5u8, 59u8, 168u8, 62u8, 144u8, + 127u8, 209u8, 150u8, 91u8, 34u8, 255u8, 254u8, 60u8, 65u8, 17u8, 56u8, + 62u8, 114u8, 95u8, 4u8, 99u8, 138u8, 86u8, 108u8, 219u8, 250u8, + ], + [ + 130u8, 146u8, 252u8, 225u8, 143u8, 166u8, 158u8, 223u8, 77u8, 183u8, + 185u8, 78u8, 162u8, 229u8, 130u8, 65u8, 223u8, 10u8, 229u8, 127u8, 151u8, + 224u8, 166u8, 201u8, 178u8, 144u8, 103u8, 2u8, 139u8, 249u8, 45u8, 118u8, + ], + [ + 227u8, 141u8, 141u8, 152u8, 230u8, 204u8, 102u8, 246u8, 245u8, 32u8, + 212u8, 131u8, 198u8, 197u8, 168u8, 146u8, 137u8, 104u8, 31u8, 137u8, + 119u8, 153u8, 196u8, 194u8, 157u8, 118u8, 124u8, 245u8, 126u8, 118u8, + 217u8, 166u8, + ], + [ + 234u8, 33u8, 67u8, 84u8, 25u8, 170u8, 217u8, 197u8, 74u8, 157u8, 144u8, + 226u8, 82u8, 43u8, 111u8, 96u8, 189u8, 86u8, 100u8, 1u8, 243u8, 111u8, + 206u8, 246u8, 97u8, 245u8, 245u8, 162u8, 140u8, 192u8, 210u8, 198u8, + ], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(WithdrewETH), + ::core::stringify!(WithdrewERC721), + ::core::stringify!(DripStatusUpdated), + ::core::stringify!(ReceivedETH), + ::core::stringify!(WithdrewERC20), + ::core::stringify!(OwnerUpdated), + ::core::stringify!(DripCreated), + ::core::stringify!(DripExecuted), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolEventInterface for DrippieEvents { + const NAME: &'static str = "DrippieEvents"; + const COUNT: usize = 8usize; + fn decode_raw_log( + topics: &[alloy_sol_types::Word], + data: &[u8], + ) -> alloy_sol_types::Result { + match topics.first().copied() { + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::DripCreated) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::DripExecuted) + } + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::DripStatusUpdated) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::OwnerUpdated) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::ReceivedETH) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::WithdrewERC20) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::WithdrewERC721) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::WithdrewETH) + } + _ => { + alloy_sol_types::private::Err(alloy_sol_types::Error::InvalidLog { + name: ::NAME, + log: alloy_sol_types::private::Box::new( + alloy_sol_types::private::LogData::new_unchecked( + topics.to_vec(), + data.to_vec().into(), + ), + ), + }) + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for DrippieEvents { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + match self { + Self::DripCreated(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::DripExecuted(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::DripStatusUpdated(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::OwnerUpdated(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::ReceivedETH(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::WithdrewERC20(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::WithdrewERC721(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::WithdrewETH(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + } + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + match self { + Self::DripCreated(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::DripExecuted(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::DripStatusUpdated(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::OwnerUpdated(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::ReceivedETH(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::WithdrewERC20(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::WithdrewERC721(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::WithdrewETH(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`Drippie`](self) contract instance. + +See the [wrapper's documentation](`DrippieInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> DrippieInstance { + DrippieInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + _owner: alloy::sol_types::private::Address, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + DrippieInstance::::deploy(__provider, _owner) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + _owner: alloy::sol_types::private::Address, + ) -> alloy_contract::RawCallBuilder { + DrippieInstance::::deploy_builder(__provider, _owner) + } + /**A [`Drippie`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`Drippie`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct DrippieInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for DrippieInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("DrippieInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > DrippieInstance { + /**Creates a new wrapper around an on-chain [`Drippie`](self) contract instance. + +See the [wrapper's documentation](`DrippieInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + _owner: alloy::sol_types::private::Address, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider, _owner); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder( + __provider: P, + _owner: alloy::sol_types::private::Address, + ) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + [ + &BYTECODE[..], + &alloy_sol_types::SolConstructor::abi_encode( + &constructorCall { _owner }, + )[..], + ] + .concat() + .into(), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl DrippieInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> DrippieInstance { + DrippieInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > DrippieInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`CALL`] function. + pub fn CALL( + &self, + _target: alloy::sol_types::private::Address, + _data: alloy::sol_types::private::Bytes, + _value: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, CALLCall, N> { + self.call_builder(&CALLCall { _target, _data, _value }) + } + ///Creates a new call builder for the [`DELEGATECALL`] function. + pub fn DELEGATECALL( + &self, + _target: alloy::sol_types::private::Address, + _data: alloy::sol_types::private::Bytes, + ) -> alloy_contract::SolCallBuilder<&P, DELEGATECALLCall, N> { + self.call_builder(&DELEGATECALLCall { _target, _data }) + } + ///Creates a new call builder for the [`create`] function. + pub fn create( + &self, + _name: alloy::sol_types::private::String, + _config: ::RustType, + ) -> alloy_contract::SolCallBuilder<&P, createCall, N> { + self.call_builder(&createCall { _name, _config }) + } + ///Creates a new call builder for the [`created`] function. + pub fn created( + &self, + _0: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, createdCall, N> { + self.call_builder(&createdCall(_0)) + } + ///Creates a new call builder for the [`drip`] function. + pub fn drip( + &self, + _name: alloy::sol_types::private::String, + ) -> alloy_contract::SolCallBuilder<&P, dripCall, N> { + self.call_builder(&dripCall { _name }) + } + ///Creates a new call builder for the [`drips`] function. + pub fn drips( + &self, + _0: alloy::sol_types::private::String, + ) -> alloy_contract::SolCallBuilder<&P, dripsCall, N> { + self.call_builder(&dripsCall(_0)) + } + ///Creates a new call builder for the [`executable`] function. + pub fn executable( + &self, + _name: alloy::sol_types::private::String, + ) -> alloy_contract::SolCallBuilder<&P, executableCall, N> { + self.call_builder(&executableCall { _name }) + } + ///Creates a new call builder for the [`getDripCount`] function. + pub fn getDripCount( + &self, + ) -> alloy_contract::SolCallBuilder<&P, getDripCountCall, N> { + self.call_builder(&getDripCountCall) + } + ///Creates a new call builder for the [`getDripInterval`] function. + pub fn getDripInterval( + &self, + _name: alloy::sol_types::private::String, + ) -> alloy_contract::SolCallBuilder<&P, getDripIntervalCall, N> { + self.call_builder(&getDripIntervalCall { _name }) + } + ///Creates a new call builder for the [`getDripStatus`] function. + pub fn getDripStatus( + &self, + _name: alloy::sol_types::private::String, + ) -> alloy_contract::SolCallBuilder<&P, getDripStatusCall, N> { + self.call_builder(&getDripStatusCall { _name }) + } + ///Creates a new call builder for the [`owner`] function. + pub fn owner(&self) -> alloy_contract::SolCallBuilder<&P, ownerCall, N> { + self.call_builder(&ownerCall) + } + ///Creates a new call builder for the [`setOwner`] function. + pub fn setOwner( + &self, + newOwner: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, setOwnerCall, N> { + self.call_builder(&setOwnerCall { newOwner }) + } + ///Creates a new call builder for the [`status`] function. + pub fn status( + &self, + _name: alloy::sol_types::private::String, + _status: ::RustType, + ) -> alloy_contract::SolCallBuilder<&P, statusCall, N> { + self.call_builder(&statusCall { _name, _status }) + } + ///Creates a new call builder for the [`withdrawERC20_0`] function. + pub fn withdrawERC20_0( + &self, + _asset: alloy::sol_types::private::Address, + _to: alloy::sol_types::private::Address, + _amount: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, withdrawERC20_0Call, N> { + self.call_builder( + &withdrawERC20_0Call { + _asset, + _to, + _amount, + }, + ) + } + ///Creates a new call builder for the [`withdrawERC20_1`] function. + pub fn withdrawERC20_1( + &self, + _asset: alloy::sol_types::private::Address, + _to: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, withdrawERC20_1Call, N> { + self.call_builder(&withdrawERC20_1Call { _asset, _to }) + } + ///Creates a new call builder for the [`withdrawERC721`] function. + pub fn withdrawERC721( + &self, + _asset: alloy::sol_types::private::Address, + _to: alloy::sol_types::private::Address, + _id: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, withdrawERC721Call, N> { + self.call_builder( + &withdrawERC721Call { + _asset, + _to, + _id, + }, + ) + } + ///Creates a new call builder for the [`withdrawETH_0`] function. + pub fn withdrawETH_0( + &self, + _to: alloy::sol_types::private::Address, + _amount: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, withdrawETH_0Call, N> { + self.call_builder(&withdrawETH_0Call { _to, _amount }) + } + ///Creates a new call builder for the [`withdrawETH_1`] function. + pub fn withdrawETH_1( + &self, + _to: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, withdrawETH_1Call, N> { + self.call_builder(&withdrawETH_1Call { _to }) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > DrippieInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + ///Creates a new event filter for the [`DripCreated`] event. + pub fn DripCreated_filter(&self) -> alloy_contract::Event<&P, DripCreated, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`DripExecuted`] event. + pub fn DripExecuted_filter(&self) -> alloy_contract::Event<&P, DripExecuted, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`DripStatusUpdated`] event. + pub fn DripStatusUpdated_filter( + &self, + ) -> alloy_contract::Event<&P, DripStatusUpdated, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`OwnerUpdated`] event. + pub fn OwnerUpdated_filter(&self) -> alloy_contract::Event<&P, OwnerUpdated, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`ReceivedETH`] event. + pub fn ReceivedETH_filter(&self) -> alloy_contract::Event<&P, ReceivedETH, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`WithdrewERC20`] event. + pub fn WithdrewERC20_filter( + &self, + ) -> alloy_contract::Event<&P, WithdrewERC20, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`WithdrewERC721`] event. + pub fn WithdrewERC721_filter( + &self, + ) -> alloy_contract::Event<&P, WithdrewERC721, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`WithdrewETH`] event. + pub fn WithdrewETH_filter(&self) -> alloy_contract::Event<&P, WithdrewETH, N> { + self.event_filter::() + } + } +} diff --git a/bindings/rust/src/eas.rs b/bindings/rust/src/eas.rs new file mode 100644 index 000000000..8ff12946d --- /dev/null +++ b/bindings/rust/src/eas.rs @@ -0,0 +1,13186 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface EAS { + struct Attestation { + bytes32 uid; + bytes32 schema; + uint64 time; + uint64 expirationTime; + uint64 revocationTime; + bytes32 refUID; + address recipient; + address attester; + bool revocable; + bytes data; + } + struct AttestationRequest { + bytes32 schema; + AttestationRequestData data; + } + struct AttestationRequestData { + address recipient; + uint64 expirationTime; + bool revocable; + bytes32 refUID; + bytes data; + uint256 value; + } + struct DelegatedAttestationRequest { + bytes32 schema; + AttestationRequestData data; + Signature signature; + address attester; + uint64 deadline; + } + struct DelegatedRevocationRequest { + bytes32 schema; + RevocationRequestData data; + Signature signature; + address revoker; + uint64 deadline; + } + struct MultiAttestationRequest { + bytes32 schema; + AttestationRequestData[] data; + } + struct MultiDelegatedAttestationRequest { + bytes32 schema; + AttestationRequestData[] data; + Signature[] signatures; + address attester; + uint64 deadline; + } + struct MultiDelegatedRevocationRequest { + bytes32 schema; + RevocationRequestData[] data; + Signature[] signatures; + address revoker; + uint64 deadline; + } + struct MultiRevocationRequest { + bytes32 schema; + RevocationRequestData[] data; + } + struct RevocationRequest { + bytes32 schema; + RevocationRequestData data; + } + struct RevocationRequestData { + bytes32 uid; + uint256 value; + } + struct Signature { + uint8 v; + bytes32 r; + bytes32 s; + } + + error AccessDenied(); + error AlreadyRevoked(); + error AlreadyRevokedOffchain(); + error AlreadyTimestamped(); + error DeadlineExpired(); + error InsufficientValue(); + error InvalidAttestation(); + error InvalidAttestations(); + error InvalidExpirationTime(); + error InvalidLength(); + error InvalidNonce(); + error InvalidOffset(); + error InvalidRegistry(); + error InvalidRevocation(); + error InvalidRevocations(); + error InvalidSchema(); + error InvalidSignature(); + error InvalidVerifier(); + error Irrevocable(); + error NotFound(); + error NotPayable(); + error WrongSchema(); + + event Attested(address indexed recipient, address indexed attester, bytes32 uid, bytes32 indexed schemaUID); + event NonceIncreased(uint256 oldNonce, uint256 newNonce); + event Revoked(address indexed recipient, address indexed attester, bytes32 uid, bytes32 indexed schemaUID); + event RevokedOffchain(address indexed revoker, bytes32 indexed data, uint64 indexed timestamp); + event Timestamped(bytes32 indexed data, uint64 indexed timestamp); + + constructor(); + + function attest(AttestationRequest memory request) external payable returns (bytes32); + function attestByDelegation(DelegatedAttestationRequest memory delegatedRequest) external payable returns (bytes32); + function getAttestTypeHash() external pure returns (bytes32); + function getAttestation(bytes32 uid) external view returns (Attestation memory); + function getDomainSeparator() external view returns (bytes32); + function getName() external view returns (string memory); + function getNonce(address account) external view returns (uint256); + function getRevokeOffchain(address revoker, bytes32 data) external view returns (uint64); + function getRevokeTypeHash() external pure returns (bytes32); + function getSchemaRegistry() external pure returns (address); + function getTimestamp(bytes32 data) external view returns (uint64); + function increaseNonce(uint256 newNonce) external; + function isAttestationValid(bytes32 uid) external view returns (bool); + function multiAttest(MultiAttestationRequest[] memory multiRequests) external payable returns (bytes32[] memory); + function multiAttestByDelegation(MultiDelegatedAttestationRequest[] memory multiDelegatedRequests) external payable returns (bytes32[] memory); + function multiRevoke(MultiRevocationRequest[] memory multiRequests) external payable; + function multiRevokeByDelegation(MultiDelegatedRevocationRequest[] memory multiDelegatedRequests) external payable; + function multiRevokeOffchain(bytes32[] memory data) external returns (uint64); + function multiTimestamp(bytes32[] memory data) external returns (uint64); + function revoke(RevocationRequest memory request) external payable; + function revokeByDelegation(DelegatedRevocationRequest memory delegatedRequest) external payable; + function revokeOffchain(bytes32 data) external returns (uint64); + function timestamp(bytes32 data) external returns (uint64); + function version() external view returns (string memory); +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "constructor", + "inputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "attest", + "inputs": [ + { + "name": "request", + "type": "tuple", + "internalType": "struct AttestationRequest", + "components": [ + { + "name": "schema", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "data", + "type": "tuple", + "internalType": "struct AttestationRequestData", + "components": [ + { + "name": "recipient", + "type": "address", + "internalType": "address" + }, + { + "name": "expirationTime", + "type": "uint64", + "internalType": "uint64" + }, + { + "name": "revocable", + "type": "bool", + "internalType": "bool" + }, + { + "name": "refUID", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "data", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "value", + "type": "uint256", + "internalType": "uint256" + } + ] + } + ] + } + ], + "outputs": [ + { + "name": "", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "attestByDelegation", + "inputs": [ + { + "name": "delegatedRequest", + "type": "tuple", + "internalType": "struct DelegatedAttestationRequest", + "components": [ + { + "name": "schema", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "data", + "type": "tuple", + "internalType": "struct AttestationRequestData", + "components": [ + { + "name": "recipient", + "type": "address", + "internalType": "address" + }, + { + "name": "expirationTime", + "type": "uint64", + "internalType": "uint64" + }, + { + "name": "revocable", + "type": "bool", + "internalType": "bool" + }, + { + "name": "refUID", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "data", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "value", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { + "name": "signature", + "type": "tuple", + "internalType": "struct Signature", + "components": [ + { + "name": "v", + "type": "uint8", + "internalType": "uint8" + }, + { + "name": "r", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "s", + "type": "bytes32", + "internalType": "bytes32" + } + ] + }, + { + "name": "attester", + "type": "address", + "internalType": "address" + }, + { + "name": "deadline", + "type": "uint64", + "internalType": "uint64" + } + ] + } + ], + "outputs": [ + { + "name": "", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "getAttestTypeHash", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "getAttestation", + "inputs": [ + { + "name": "uid", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "outputs": [ + { + "name": "", + "type": "tuple", + "internalType": "struct Attestation", + "components": [ + { + "name": "uid", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "schema", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "time", + "type": "uint64", + "internalType": "uint64" + }, + { + "name": "expirationTime", + "type": "uint64", + "internalType": "uint64" + }, + { + "name": "revocationTime", + "type": "uint64", + "internalType": "uint64" + }, + { + "name": "refUID", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "recipient", + "type": "address", + "internalType": "address" + }, + { + "name": "attester", + "type": "address", + "internalType": "address" + }, + { + "name": "revocable", + "type": "bool", + "internalType": "bool" + }, + { + "name": "data", + "type": "bytes", + "internalType": "bytes" + } + ] + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "getDomainSeparator", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "getName", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "getNonce", + "inputs": [ + { + "name": "account", + "type": "address", + "internalType": "address" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "getRevokeOffchain", + "inputs": [ + { + "name": "revoker", + "type": "address", + "internalType": "address" + }, + { + "name": "data", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "outputs": [ + { + "name": "", + "type": "uint64", + "internalType": "uint64" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "getRevokeTypeHash", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "getSchemaRegistry", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract ISchemaRegistry" + } + ], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "getTimestamp", + "inputs": [ + { + "name": "data", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "outputs": [ + { + "name": "", + "type": "uint64", + "internalType": "uint64" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "increaseNonce", + "inputs": [ + { + "name": "newNonce", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "isAttestationValid", + "inputs": [ + { + "name": "uid", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "multiAttest", + "inputs": [ + { + "name": "multiRequests", + "type": "tuple[]", + "internalType": "struct MultiAttestationRequest[]", + "components": [ + { + "name": "schema", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "data", + "type": "tuple[]", + "internalType": "struct AttestationRequestData[]", + "components": [ + { + "name": "recipient", + "type": "address", + "internalType": "address" + }, + { + "name": "expirationTime", + "type": "uint64", + "internalType": "uint64" + }, + { + "name": "revocable", + "type": "bool", + "internalType": "bool" + }, + { + "name": "refUID", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "data", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "value", + "type": "uint256", + "internalType": "uint256" + } + ] + } + ] + } + ], + "outputs": [ + { + "name": "", + "type": "bytes32[]", + "internalType": "bytes32[]" + } + ], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "multiAttestByDelegation", + "inputs": [ + { + "name": "multiDelegatedRequests", + "type": "tuple[]", + "internalType": "struct MultiDelegatedAttestationRequest[]", + "components": [ + { + "name": "schema", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "data", + "type": "tuple[]", + "internalType": "struct AttestationRequestData[]", + "components": [ + { + "name": "recipient", + "type": "address", + "internalType": "address" + }, + { + "name": "expirationTime", + "type": "uint64", + "internalType": "uint64" + }, + { + "name": "revocable", + "type": "bool", + "internalType": "bool" + }, + { + "name": "refUID", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "data", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "value", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { + "name": "signatures", + "type": "tuple[]", + "internalType": "struct Signature[]", + "components": [ + { + "name": "v", + "type": "uint8", + "internalType": "uint8" + }, + { + "name": "r", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "s", + "type": "bytes32", + "internalType": "bytes32" + } + ] + }, + { + "name": "attester", + "type": "address", + "internalType": "address" + }, + { + "name": "deadline", + "type": "uint64", + "internalType": "uint64" + } + ] + } + ], + "outputs": [ + { + "name": "", + "type": "bytes32[]", + "internalType": "bytes32[]" + } + ], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "multiRevoke", + "inputs": [ + { + "name": "multiRequests", + "type": "tuple[]", + "internalType": "struct MultiRevocationRequest[]", + "components": [ + { + "name": "schema", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "data", + "type": "tuple[]", + "internalType": "struct RevocationRequestData[]", + "components": [ + { + "name": "uid", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "value", + "type": "uint256", + "internalType": "uint256" + } + ] + } + ] + } + ], + "outputs": [], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "multiRevokeByDelegation", + "inputs": [ + { + "name": "multiDelegatedRequests", + "type": "tuple[]", + "internalType": "struct MultiDelegatedRevocationRequest[]", + "components": [ + { + "name": "schema", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "data", + "type": "tuple[]", + "internalType": "struct RevocationRequestData[]", + "components": [ + { + "name": "uid", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "value", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { + "name": "signatures", + "type": "tuple[]", + "internalType": "struct Signature[]", + "components": [ + { + "name": "v", + "type": "uint8", + "internalType": "uint8" + }, + { + "name": "r", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "s", + "type": "bytes32", + "internalType": "bytes32" + } + ] + }, + { + "name": "revoker", + "type": "address", + "internalType": "address" + }, + { + "name": "deadline", + "type": "uint64", + "internalType": "uint64" + } + ] + } + ], + "outputs": [], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "multiRevokeOffchain", + "inputs": [ + { + "name": "data", + "type": "bytes32[]", + "internalType": "bytes32[]" + } + ], + "outputs": [ + { + "name": "", + "type": "uint64", + "internalType": "uint64" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "multiTimestamp", + "inputs": [ + { + "name": "data", + "type": "bytes32[]", + "internalType": "bytes32[]" + } + ], + "outputs": [ + { + "name": "", + "type": "uint64", + "internalType": "uint64" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "revoke", + "inputs": [ + { + "name": "request", + "type": "tuple", + "internalType": "struct RevocationRequest", + "components": [ + { + "name": "schema", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "data", + "type": "tuple", + "internalType": "struct RevocationRequestData", + "components": [ + { + "name": "uid", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "value", + "type": "uint256", + "internalType": "uint256" + } + ] + } + ] + } + ], + "outputs": [], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "revokeByDelegation", + "inputs": [ + { + "name": "delegatedRequest", + "type": "tuple", + "internalType": "struct DelegatedRevocationRequest", + "components": [ + { + "name": "schema", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "data", + "type": "tuple", + "internalType": "struct RevocationRequestData", + "components": [ + { + "name": "uid", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "value", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { + "name": "signature", + "type": "tuple", + "internalType": "struct Signature", + "components": [ + { + "name": "v", + "type": "uint8", + "internalType": "uint8" + }, + { + "name": "r", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "s", + "type": "bytes32", + "internalType": "bytes32" + } + ] + }, + { + "name": "revoker", + "type": "address", + "internalType": "address" + }, + { + "name": "deadline", + "type": "uint64", + "internalType": "uint64" + } + ] + } + ], + "outputs": [], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "revokeOffchain", + "inputs": [ + { + "name": "data", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "outputs": [ + { + "name": "", + "type": "uint64", + "internalType": "uint64" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "timestamp", + "inputs": [ + { + "name": "data", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "outputs": [ + { + "name": "", + "type": "uint64", + "internalType": "uint64" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "version", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "view" + }, + { + "type": "event", + "name": "Attested", + "inputs": [ + { + "name": "recipient", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "attester", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "uid", + "type": "bytes32", + "indexed": false, + "internalType": "bytes32" + }, + { + "name": "schemaUID", + "type": "bytes32", + "indexed": true, + "internalType": "bytes32" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "NonceIncreased", + "inputs": [ + { + "name": "oldNonce", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + }, + { + "name": "newNonce", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "Revoked", + "inputs": [ + { + "name": "recipient", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "attester", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "uid", + "type": "bytes32", + "indexed": false, + "internalType": "bytes32" + }, + { + "name": "schemaUID", + "type": "bytes32", + "indexed": true, + "internalType": "bytes32" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "RevokedOffchain", + "inputs": [ + { + "name": "revoker", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "data", + "type": "bytes32", + "indexed": true, + "internalType": "bytes32" + }, + { + "name": "timestamp", + "type": "uint64", + "indexed": true, + "internalType": "uint64" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "Timestamped", + "inputs": [ + { + "name": "data", + "type": "bytes32", + "indexed": true, + "internalType": "bytes32" + }, + { + "name": "timestamp", + "type": "uint64", + "indexed": true, + "internalType": "uint64" + } + ], + "anonymous": false + }, + { + "type": "error", + "name": "AccessDenied", + "inputs": [] + }, + { + "type": "error", + "name": "AlreadyRevoked", + "inputs": [] + }, + { + "type": "error", + "name": "AlreadyRevokedOffchain", + "inputs": [] + }, + { + "type": "error", + "name": "AlreadyTimestamped", + "inputs": [] + }, + { + "type": "error", + "name": "DeadlineExpired", + "inputs": [] + }, + { + "type": "error", + "name": "InsufficientValue", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidAttestation", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidAttestations", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidExpirationTime", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidLength", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidNonce", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidOffset", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidRegistry", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidRevocation", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidRevocations", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidSchema", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidSignature", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidVerifier", + "inputs": [] + }, + { + "type": "error", + "name": "Irrevocable", + "inputs": [] + }, + { + "type": "error", + "name": "NotFound", + "inputs": [] + }, + { + "type": "error", + "name": "NotPayable", + "inputs": [] + }, + { + "type": "error", + "name": "WrongSchema", + "inputs": [] + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod EAS { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x61016060405234801561001157600080fd5b50604080518082018252600381526245415360e81b60208083019182528351808501855260058152640312e332e360dc1b908201529151812060e08190527f6a08c3e203132c561752255a4d52ffae85bb9c5d33cb3291520dea1b843563896101008190524660a081815286517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f818801819052818901959095526060810193909352608080840192909252308382018190528751808503909201825260c093840190975280519501949094209093529290915261012091909152516101405260805160a05160c05160e05161010051610120516101405161457e61014b600039600061073701526000612784015260006127d3015260006127ae01526000612707015260006127310152600061275b015261457e6000f3fe60806040526004361061018b5760003560e01c806395411525116100d6578063d45c44351161007f578063ed24911d11610059578063ed24911d146104fd578063f10b5cc814610512578063f17325e71461054157600080fd5b8063d45c443514610467578063e30bb5631461049e578063e71ff365146104dd57600080fd5b8063b469318d116100b0578063b469318d146103ba578063b83010d314610414578063cf190f341461044757600080fd5b80639541152514610367578063a3112a641461037a578063a6d4dbc7146103a757600080fd5b806344adc90e116101385780634d003070116101125780634d003070146102de57806354fd4d50146102fe57806379f7573a1461034757600080fd5b806344adc90e1461029857806346926267146102b85780634cb7e9e5146102cb57600080fd5b806317d7de7c1161016957806317d7de7c146102205780632d0335ab146102425780633c0427151461028557600080fd5b80630eabf6601461019057806312b11a17146101a557806313893f61146101e7575b600080fd5b6101a361019e3660046134c8565b610554565b005b3480156101b157600080fd5b507ffeb2925a02bae3dae48d424a0437a2b6ac939aa9230ddc55a1a76f065d9880765b6040519081526020015b60405180910390f35b3480156101f357600080fd5b506102076102023660046134c8565b6106eb565b60405167ffffffffffffffff90911681526020016101de565b34801561022c57600080fd5b50610235610730565b6040516101de9190613578565b34801561024e57600080fd5b506101d461025d3660046135bd565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b6101d46102933660046135da565b610760565b6102ab6102a63660046134c8565b610863565b6040516101de9190613615565b6101a36102c6366004613659565b6109e4565b6101a36102d93660046134c8565b610a68565b3480156102ea57600080fd5b506102076102f9366004613671565b610b4b565b34801561030a57600080fd5b506102356040518060400160405280600c81526020017f312e342e312d626574612e33000000000000000000000000000000000000000081525081565b34801561035357600080fd5b506101a3610362366004613671565b610b58565b6102ab6103753660046134c8565b610bef565b34801561038657600080fd5b5061039a610395366004613671565b610e62565b6040516101de9190613771565b6101a36103b5366004613784565b611025565b3480156103c657600080fd5b506102076103d5366004613797565b73ffffffffffffffffffffffffffffffffffffffff919091166000908152603460209081526040808320938352929052205467ffffffffffffffff1690565b34801561042057600080fd5b507fb5d556f07587ec0f08cf386545cc4362c702a001650c2058002615ee5c9d1e756101d4565b34801561045357600080fd5b50610207610462366004613671565b6110ca565b34801561047357600080fd5b50610207610482366004613671565b60009081526033602052604090205467ffffffffffffffff1690565b3480156104aa57600080fd5b506104cd6104b9366004613671565b600090815260326020526040902054151590565b60405190151581526020016101de565b3480156104e957600080fd5b506102076104f83660046134c8565b6110d8565b34801561050957600080fd5b506101d4611110565b34801561051e57600080fd5b5060405173420000000000000000000000000000000000002081526020016101de565b6101d461054f3660046137c3565b61111a565b348160005b818110156106e4577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82018114600086868481811061059a5761059a6137fe565b90506020028101906105ac919061382d565b6105b590613ac3565b60208101518051919250908015806105d257508260400151518114155b15610609576040517f947d5a8400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005b818110156106ad576106a56040518060a001604052808660000151815260200185848151811061063e5761063e6137fe565b6020026020010151815260200186604001518481518110610661576106616137fe565b60200260200101518152602001866060015173ffffffffffffffffffffffffffffffffffffffff168152602001866080015167ffffffffffffffff168152506111d8565b60010161060c565b506106c383600001518385606001518a886113e9565b6106cd9088613bed565b9650505050506106dd8160010190565b9050610559565b5050505050565b60004282825b818110156107245761071c3387878481811061070f5761070f6137fe565b9050602002013585611a18565b6001016106f1565b50909150505b92915050565b606061075b7f0000000000000000000000000000000000000000000000000000000000000000611b17565b905090565b600061077361076e83613d22565b611ca5565b604080516001808252818301909252600091816020015b6040805160c081018252600080825260208083018290529282018190526060808301829052608083015260a082015282527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90920191018161078a5790505090506107f86020840184613d9d565b61080190613dd1565b81600081518110610814576108146137fe565b602090810291909101015261083d83358261083560c0870160a088016135bd565b346001611e2f565b60200151600081518110610853576108536137fe565b6020026020010151915050919050565b60608160008167ffffffffffffffff8111156108815761088161386b565b6040519080825280602002602001820160405280156108b457816020015b606081526020019060019003908161089f5790505b509050600034815b848110156109ce577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff85018114368989848181106108fc576108fc6137fe565b905060200281019061090e9190613ddd565b905061091d6020820182613e11565b9050600003610958576040517f947d5a8400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061097d823561096c6020850185613e11565b61097591613e79565b338887611e2f565b805190915061098c9086613bed565b945080602001518785815181106109a5576109a56137fe565b6020026020010181905250806020015151860195505050506109c78160010190565b90506108bc565b506109d98383612541565b979650505050505050565b604080516001808252818301909252600091816020015b60408051808201909152600080825260208201528152602001906001900390816109fb579050509050610a3636839003830160208401613eed565b81600081518110610a4957610a496137fe565b6020908102919091010152610a63823582333460016113e9565b505050565b348160005b818110156106e4577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8201811436868684818110610aad57610aad6137fe565b9050602002810190610abf9190613ddd565b9050610b2c8135610ad36020840184613f09565b808060200260200160405190810160405280939291908181526020016000905b82821015610b1f57610b1060408302860136819003810190613eed565b81526020019060010190610af3565b50505050503388866113e9565b610b369086613bed565b94505050610b448160010190565b9050610a6d565b60004261072a838261262b565b33600090815260208190526040902054808211610ba1576040517f756688fe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b336000908152602081815260409182902084905581518381529081018490527f57b09af877df9068fd60a69d7b21f5576b8b38955812d6ae4ac52942f1e38fb7910160405180910390a15050565b60608160008167ffffffffffffffff811115610c0d57610c0d61386b565b604051908082528060200260200182016040528015610c4057816020015b6060815260200190600190039081610c2b5790505b509050600034815b848110156109ce577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8501811436898984818110610c8857610c886137fe565b9050602002810190610c9a919061382d565b9050366000610cac6020840184613e11565b909250905080801580610ccd5750610cc76040850185613f71565b90508114155b15610d04576040517f947d5a8400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005b81811015610de557610ddd6040518060a0016040528087600001358152602001868685818110610d3957610d396137fe565b9050602002810190610d4b9190613d9d565b610d5490613dd1565b8152602001610d666040890189613f71565b85818110610d7657610d766137fe565b905060600201803603810190610d8c9190613fd8565b8152602001610da16080890160608a016135bd565b73ffffffffffffffffffffffffffffffffffffffff168152602001610dcc60a0890160808a01613ff4565b67ffffffffffffffff169052611ca5565b600101610d07565b506000610e0e8535610df78587613e79565b610e076080890160608a016135bd565b8b8a611e2f565b8051909150610e1d9089613bed565b975080602001518a8881518110610e3657610e366137fe565b602002602001018190525080602001515189019850505050505050610e5b8160010190565b9050610c48565b604080516101408101825260008082526020820181905291810182905260608082018390526080820183905260a0820183905260c0820183905260e0820183905261010082019290925261012081019190915260008281526032602090815260409182902082516101408101845281548152600182015492810192909252600281015467ffffffffffffffff808216948401949094526801000000000000000081048416606084015270010000000000000000000000000000000090049092166080820152600382015460a0820152600482015473ffffffffffffffffffffffffffffffffffffffff90811660c0830152600583015490811660e083015274010000000000000000000000000000000000000000900460ff16151561010082015260068201805491929161012084019190610f9c9061400f565b80601f0160208091040260200160405190810160405280929190818152602001828054610fc89061400f565b80156110155780601f10610fea57610100808354040283529160200191611015565b820191906000526020600020905b815481529060010190602001808311610ff857829003601f168201915b5050505050815250509050919050565b61103c6110373683900383018361405c565b6111d8565b604080516001808252818301909252600091816020015b604080518082019091526000808252602082015281526020019060019003908161105357905050905061108e36839003830160208401613eed565b816000815181106110a1576110a16137fe565b6020908102919091010152610a638235826110c260e0860160c087016135bd565b3460016113e9565b60004261072a338483611a18565b60004282825b81811015610724576111088686838181106110fb576110fb6137fe565b905060200201358461262b565b6001016110de565b600061075b6126ed565b604080516001808252818301909252600091829190816020015b6040805160c081018252600080825260208083018290529282018190526060808301829052608083015260a082015282527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9092019101816111345790505090506111a26020840184613d9d565b6111ab90613dd1565b816000815181106111be576111be6137fe565b602090810291909101015261083d83358233346001611e2f565b608081015167ffffffffffffffff161580159061120c57504267ffffffffffffffff16816080015167ffffffffffffffff16105b15611243576040517f1ab7da6b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6020808201516040808401516060850151855184518587015173ffffffffffffffffffffffffffffffffffffffff84166000908152978890529487208054969794969495611337957fb5d556f07587ec0f08cf386545cc4362c702a001650c2058002615ee5c9d1e7595949392886112ba836140ca565b909155506080808c015160408051602081019990995273ffffffffffffffffffffffffffffffffffffffff9097169688019690965260608701949094529285019190915260a084015260c083015267ffffffffffffffff1660e0820152610100015b60405160208183030381529060405280519060200120612821565b90506113ad84606001518284602001518560400151866000015160405160200161139993929190928352602083019190915260f81b7fff0000000000000000000000000000000000000000000000000000000000000016604082015260410190565b604051602081830303815290604052612834565b6113e3576040517f8baa579f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505050565b6040517fa2ea7c6e0000000000000000000000000000000000000000000000000000000081526004810186905260009081907342000000000000000000000000000000000000209063a2ea7c6e90602401600060405180830381865afa158015611457573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405261149d9190810190614102565b80519091506114d8576040517fbf37b20e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b855160008167ffffffffffffffff8111156114f5576114f561386b565b60405190808252806020026020018201604052801561159457816020015b60408051610140810182526000808252602080830182905292820181905260608083018290526080830182905260a0830182905260c0830182905260e0830182905261010083019190915261012082015282527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9092019101816115135790505b50905060008267ffffffffffffffff8111156115b2576115b261386b565b6040519080825280602002602001820160405280156115db578160200160208202803683370190505b50905060005b838110156119fa5760008a82815181106115fd576115fd6137fe565b6020908102919091018101518051600090815260329092526040909120805491925090611656576040517fc5723b5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8c816001015414611693576040517fbf37b20e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600581015473ffffffffffffffffffffffffffffffffffffffff8c81169116146116e9576040517f4ca8886700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600581015474010000000000000000000000000000000000000000900460ff1661173f576040517f157bd4c300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002810154700100000000000000000000000000000000900467ffffffffffffffff1615611799576040517f905e710700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b426002820180547fffffffffffffffff0000000000000000ffffffffffffffffffffffffffffffff811670010000000000000000000000000000000067ffffffffffffffff948516810291821793849055604080516101408101825287548152600188015460208201529386169286169290921791830191909152680100000000000000008304841660608301529091049091166080820152600382015460a0820152600482015473ffffffffffffffffffffffffffffffffffffffff90811660c0830152600583015490811660e083015274010000000000000000000000000000000000000000900460ff16151561010082015260068201805483916101208401916118a59061400f565b80601f01602080910402602001604051908101604052809291908181526020018280546118d19061400f565b801561191e5780601f106118f35761010080835404028352916020019161191e565b820191906000526020600020905b81548152906001019060200180831161190157829003601f168201915b505050505081525050858481518110611939576119396137fe565b6020026020010181905250816020015184848151811061195b5761195b6137fe565b6020026020010181815250508c8b73ffffffffffffffffffffffffffffffffffffffff16868581518110611991576119916137fe565b602002602001015160c0015173ffffffffffffffffffffffffffffffffffffffff167ff930a6e2523c9cc298691873087a740550b8fc85a0680830414c148ed927f61585600001516040516119e891815260200190565b60405180910390a450506001016115e1565b50611a0a84838360018b8b612a03565b9a9950505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff83166000908152603460209081526040808320858452918290529091205467ffffffffffffffff1615611a8c576040517fec9d6eeb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008381526020829052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001667ffffffffffffffff861690811790915590519091859173ffffffffffffffffffffffffffffffffffffffff8816917f92a1f7a41a7c585a8b09e25b195e225b1d43248daca46b0faf9e0792777a222991a450505050565b604080516020808252818301909252606091600091906020820181803683370190505090506000805b6020811015611be2576000858260208110611b5d57611b5d6137fe565b1a60f81b90507fff000000000000000000000000000000000000000000000000000000000000008116600003611b935750611be2565b80848481518110611ba657611ba66137fe565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053505060019182019101611b40565b5060008167ffffffffffffffff811115611bfe57611bfe61386b565b6040519080825280601f01601f191660200182016040528015611c28576020820181803683370190505b50905060005b82811015611c9c57838181518110611c4857611c486137fe565b602001015160f81c60f81b828281518110611c6557611c656137fe565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600101611c2e565b50949350505050565b608081015167ffffffffffffffff1615801590611cd957504267ffffffffffffffff16816080015167ffffffffffffffff16105b15611d10576040517f1ab7da6b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6020808201516040808401516060808601518651855186880151868801519488015160808901518051908b012060a08a015173ffffffffffffffffffffffffffffffffffffffff871660009081529b8c9052988b2080549a9b989a9899611337997ffeb2925a02bae3dae48d424a0437a2b6ac939aa9230ddc55a1a76f065d988076999493928c611da0836140ca565b919050558e6080015160405160200161131c9b9a999897969594939291909a8b5273ffffffffffffffffffffffffffffffffffffffff998a1660208c015260408b019890985295909716606089015267ffffffffffffffff938416608089015291151560a088015260c087015260e0860152610100850193909352610120840152166101408201526101600190565b60408051808201909152600081526060602082015284516040805180820190915260008152606060208201528167ffffffffffffffff811115611e7457611e7461386b565b604051908082528060200260200182016040528015611e9d578160200160208202803683370190505b5060208201526040517fa2ea7c6e000000000000000000000000000000000000000000000000000000008152600481018990526000907342000000000000000000000000000000000000209063a2ea7c6e90602401600060405180830381865afa158015611f0f573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052611f559190810190614102565b8051909150611f90576040517fbf37b20e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008367ffffffffffffffff811115611fab57611fab61386b565b60405190808252806020026020018201604052801561204a57816020015b60408051610140810182526000808252602080830182905292820181905260608083018290526080830182905260a0830182905260c0830182905260e0830182905261010083019190915261012082015282527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff909201910181611fc95790505b50905060008467ffffffffffffffff8111156120685761206861386b565b604051908082528060200260200182016040528015612091578160200160208202803683370190505b50905060005b858110156125205760008b82815181106120b3576120b36137fe565b60200260200101519050600067ffffffffffffffff16816020015167ffffffffffffffff16141580156120fe57504267ffffffffffffffff16816020015167ffffffffffffffff1611155b15612135576040517f08e8b93700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8460400151158015612148575080604001515b1561217f576040517f157bd4c300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006040518061014001604052806000801b81526020018f81526020016121a34290565b67ffffffffffffffff168152602001836020015167ffffffffffffffff168152602001600067ffffffffffffffff16815260200183606001518152602001836000015173ffffffffffffffffffffffffffffffffffffffff1681526020018d73ffffffffffffffffffffffffffffffffffffffff16815260200183604001511515815260200183608001518152509050600080600090505b6122458382612df4565b600081815260326020526040902054909250156122645760010161223b565b81835260008281526032602090815260409182902085518155908501516001820155908401516002820180546060870151608088015167ffffffffffffffff908116700100000000000000000000000000000000027fffffffffffffffff0000000000000000ffffffffffffffffffffffffffffffff92821668010000000000000000027fffffffffffffffffffffffffffffffff000000000000000000000000000000009094169190951617919091171691909117905560a0840151600382015560c084015160048201805473ffffffffffffffffffffffffffffffffffffffff9283167fffffffffffffffffffffffff000000000000000000000000000000000000000090911617905560e0850151600583018054610100880151151574010000000000000000000000000000000000000000027fffffffffffffffffffffff000000000000000000000000000000000000000000909116929093169190911791909117905561012084015184919060068201906123e49082614228565b50505060608401511561243b57606084015160009081526032602052604090205461243b576040517fc5723b5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8287868151811061244e5761244e6137fe565b60200260200101819052508360a00151868681518110612470576124706137fe565b6020026020010181815250508189602001518681518110612493576124936137fe565b6020026020010181815250508f8e73ffffffffffffffffffffffffffffffffffffffff16856000015173ffffffffffffffffffffffffffffffffffffffff167f8bf46bf4cfd674fa735a3d63ec1c9ad4153f033c290341f3a588b75685141b358560405161250391815260200190565b60405180910390a4505050506125198160010190565b9050612097565b5061253083838360008c8c612a03565b845250919998505050505050505050565b606060008267ffffffffffffffff81111561255e5761255e61386b565b604051908082528060200260200182016040528015612587578160200160208202803683370190505b508451909150600090815b818110156126205760008782815181106125ae576125ae6137fe565b6020026020010151905060008151905060005b8181101561260c578281815181106125db576125db6137fe565b60200260200101518787815181106125f5576125f56137fe565b6020908102919091010152600195860195016125c1565b5050506126198160010190565b9050612592565b509195945050505050565b60008281526033602052604090205467ffffffffffffffff161561267b576040517f2e26794600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008281526033602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001667ffffffffffffffff85169081179091559051909184917f5aafceeb1c7ad58e4a84898bdee37c02c0fc46e7d24e6b60e8209449f183459f9190a35050565b60003073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614801561275357507f000000000000000000000000000000000000000000000000000000000000000046145b1561277d57507f000000000000000000000000000000000000000000000000000000000000000090565b50604080517f00000000000000000000000000000000000000000000000000000000000000006020808301919091527f0000000000000000000000000000000000000000000000000000000000000000828401527f000000000000000000000000000000000000000000000000000000000000000060608301524660808301523060a0808401919091528351808403909101815260c0909201909252805191012090565b600061072a61282e6126ed565b83612e53565b60008060006128438585612e95565b9092509050600081600481111561285c5761285c614342565b14801561289457508573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b156128a4576001925050506129fc565b6000808773ffffffffffffffffffffffffffffffffffffffff16631626ba7e60e01b88886040516024016128d9929190614371565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009094169390931790925290516129629190614392565b600060405180830381855afa9150503d806000811461299d576040519150601f19603f3d011682016040523d82523d6000602084013e6129a2565b606091505b50915091508180156129b5575080516020145b80156129f5575080517f1626ba7e00000000000000000000000000000000000000000000000000000000906129f390830160209081019084016143a4565b145b9450505050505b9392505050565b84516000906001819003612a5b57612a538888600081518110612a2857612a286137fe565b602002602001015188600081518110612a4357612a436137fe565b6020026020010151888888612eda565b915050612dea565b602088015173ffffffffffffffffffffffffffffffffffffffff8116612afc5760005b82811015612ae157878181518110612a9857612a986137fe565b6020026020010151600014612ad9576040517f1574f9f300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600101612a7e565b508315612af157612af1856131f9565b600092505050612dea565b6000808273ffffffffffffffffffffffffffffffffffffffff1663ce46e0466040518163ffffffff1660e01b8152600401602060405180830381865afa158015612b4a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b6e91906143bd565b905060005b84811015612c2b5760008a8281518110612b8f57612b8f6137fe565b6020026020010151905080600003612ba75750612c23565b82612bde576040517f1574f9f300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b88811115612c18576040517f1101129400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b978890039792909201915b600101612b73565b508715612d06576040517f88e5b2d900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8416906388e5b2d9908490612c88908e908e906004016143da565b60206040518083038185885af1158015612ca6573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612ccb91906143bd565b612d01576040517fbf2f3a8b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612dd5565b6040517f91db0b7e00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8416906391db0b7e908490612d5c908e908e906004016143da565b60206040518083038185885af1158015612d7a573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612d9f91906143bd565b612dd5576040517fe8bee83900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8515612de457612de4876131f9565b50925050505b9695505050505050565b60208083015160c084015160e0850151604080870151606088015161010089015160a08a01516101208b01519451600099612e3599989796918c9101614493565b60405160208183030381529060405280519060200120905092915050565b6040517f190100000000000000000000000000000000000000000000000000000000000060208201526022810183905260428101829052600090606201612e35565b6000808251604103612ecb5760208301516040840151606085015160001a612ebf8782858561320c565b94509450505050612ed3565b506000905060025b9250929050565b602086015160009073ffffffffffffffffffffffffffffffffffffffff8116612f4e578515612f35576040517f1574f9f300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8215612f4457612f44846131f9565b6000915050612dea565b8515613039578073ffffffffffffffffffffffffffffffffffffffff1663ce46e0466040518163ffffffff1660e01b8152600401602060405180830381865afa158015612f9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612fc391906143bd565b612ff9576040517f1574f9f300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b83861115613033576040517f1101129400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b85840393505b8415613111576040517fe49617e100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82169063e49617e1908890613093908b90600401613771565b60206040518083038185885af11580156130b1573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906130d691906143bd565b61310c576040517fccf3bb2700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6131de565b6040517fe60c350500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82169063e60c3505908890613165908b90600401613771565b60206040518083038185885af1158015613183573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906131a891906143bd565b6131de576040517fbd8ba84d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b82156131ed576131ed846131f9565b50939695505050505050565b8015613209576132093382613324565b50565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115613243575060009050600361331b565b8460ff16601b1415801561325b57508460ff16601c14155b1561326c575060009050600461331b565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156132c0573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff81166133145760006001925092505061331b565b9150600090505b94509492505050565b80471015613393576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064015b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d80600081146133ed576040519150601f19603f3d011682016040523d82523d6000602084013e6133f2565b606091505b5050905080610a63576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d61792068617665207265766572746564000000000000606482015260840161338a565b60008083601f84011261349557600080fd5b50813567ffffffffffffffff8111156134ad57600080fd5b6020830191508360208260051b8501011115612ed357600080fd5b600080602083850312156134db57600080fd5b823567ffffffffffffffff8111156134f257600080fd5b6134fe85828601613483565b90969095509350505050565b60005b8381101561352557818101518382015260200161350d565b50506000910152565b6000815180845261354681602086016020860161350a565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006129fc602083018461352e565b73ffffffffffffffffffffffffffffffffffffffff8116811461320957600080fd5b80356135b88161358b565b919050565b6000602082840312156135cf57600080fd5b81356129fc8161358b565b6000602082840312156135ec57600080fd5b813567ffffffffffffffff81111561360357600080fd5b820160e081850312156129fc57600080fd5b6020808252825182820181905260009190848201906040850190845b8181101561364d57835183529284019291840191600101613631565b50909695505050505050565b60006060828403121561366b57600080fd5b50919050565b60006020828403121561368357600080fd5b5035919050565b6000610140825184526020830151602085015260408301516136b8604086018267ffffffffffffffff169052565b5060608301516136d4606086018267ffffffffffffffff169052565b5060808301516136f0608086018267ffffffffffffffff169052565b5060a083015160a085015260c083015161372260c086018273ffffffffffffffffffffffffffffffffffffffff169052565b5060e083015161374a60e086018273ffffffffffffffffffffffffffffffffffffffff169052565b506101008381015115159085015261012080840151818601839052612dea8387018261352e565b6020815260006129fc602083018461368a565b6000610100828403121561366b57600080fd5b600080604083850312156137aa57600080fd5b82356137b58161358b565b946020939093013593505050565b6000602082840312156137d557600080fd5b813567ffffffffffffffff8111156137ec57600080fd5b8201604081850312156129fc57600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6183360301811261386157600080fd5b9190910192915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405160a0810167ffffffffffffffff811182821017156138bd576138bd61386b565b60405290565b60405160c0810167ffffffffffffffff811182821017156138bd576138bd61386b565b6040516080810167ffffffffffffffff811182821017156138bd576138bd61386b565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff811182821017156139505761395061386b565b604052919050565b600067ffffffffffffffff8211156139725761397261386b565b5060051b60200190565b60006040828403121561398e57600080fd5b6040516040810181811067ffffffffffffffff821117156139b1576139b161386b565b604052823581526020928301359281019290925250919050565b6000606082840312156139dd57600080fd5b6040516060810181811067ffffffffffffffff82111715613a0057613a0061386b565b604052905080823560ff81168114613a1757600080fd5b8082525060208301356020820152604083013560408201525092915050565b600082601f830112613a4757600080fd5b81356020613a5c613a5783613958565b613909565b82815260609283028501820192828201919087851115613a7b57600080fd5b8387015b85811015613a9e57613a9189826139cb565b8452928401928101613a7f565b5090979650505050505050565b803567ffffffffffffffff811681146135b857600080fd5b600060a08236031215613ad557600080fd5b613add61389a565b8235815260208084013567ffffffffffffffff80821115613afd57600080fd5b9085019036601f830112613b1057600080fd5b8135613b1e613a5782613958565b81815260069190911b83018401908481019036831115613b3d57600080fd5b938501935b82851015613b6657613b54368661397c565b82528582019150604085019450613b42565b80868801525050506040860135925080831115613b8257600080fd5b5050613b9036828601613a36565b604083015250613ba2606084016135ad565b6060820152613bb360808401613aab565b608082015292915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8181038181111561072a5761072a613bbe565b801515811461320957600080fd5b600067ffffffffffffffff821115613c2857613c2861386b565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b600060c08284031215613c6657600080fd5b613c6e6138c3565b90508135613c7b8161358b565b81526020613c8a838201613aab565b818301526040830135613c9c81613c00565b604083015260608381013590830152608083013567ffffffffffffffff811115613cc557600080fd5b8301601f81018513613cd657600080fd5b8035613ce4613a5782613c0e565b8181528684838501011115613cf857600080fd5b818484018583013760008483830101528060808601525050505060a082013560a082015292915050565b600060e08236031215613d3457600080fd5b613d3c61389a565b82358152602083013567ffffffffffffffff811115613d5a57600080fd5b613d6636828601613c54565b602083015250613d7936604085016139cb565b604082015260a0830135613d8c8161358b565b6060820152613bb360c08401613aab565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff4183360301811261386157600080fd5b600061072a3683613c54565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc183360301811261386157600080fd5b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112613e4657600080fd5b83018035915067ffffffffffffffff821115613e6157600080fd5b6020019150600581901b3603821315612ed357600080fd5b6000613e87613a5784613958565b80848252602080830192508560051b850136811115613ea557600080fd5b855b81811015613ee157803567ffffffffffffffff811115613ec75760008081fd5b613ed336828a01613c54565b865250938201938201613ea7565b50919695505050505050565b600060408284031215613eff57600080fd5b6129fc838361397c565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112613f3e57600080fd5b83018035915067ffffffffffffffff821115613f5957600080fd5b6020019150600681901b3603821315612ed357600080fd5b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112613fa657600080fd5b83018035915067ffffffffffffffff821115613fc157600080fd5b6020019150606081023603821315612ed357600080fd5b600060608284031215613fea57600080fd5b6129fc83836139cb565b60006020828403121561400657600080fd5b6129fc82613aab565b600181811c9082168061402357607f821691505b60208210810361366b577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000610100828403121561406f57600080fd5b61407761389a565b82358152614088846020850161397c565b602082015261409a84606085016139cb565b604082015260c08301356140ad8161358b565b60608201526140be60e08401613aab565b60808201529392505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036140fb576140fb613bbe565b5060010190565b6000602080838503121561411557600080fd5b825167ffffffffffffffff8082111561412d57600080fd5b908401906080828703121561414157600080fd5b6141496138e6565b825181528383015161415a8161358b565b81850152604083015161416c81613c00565b604082015260608301518281111561418357600080fd5b80840193505086601f84011261419857600080fd5b825191506141a8613a5783613c0e565b82815287858486010111156141bc57600080fd5b6141cb8386830187870161350a565b60608201529695505050505050565b601f821115610a6357600081815260208120601f850160051c810160208610156142015750805b601f850160051c820191505b818110156142205782815560010161420d565b505050505050565b815167ffffffffffffffff8111156142425761424261386b565b61425681614250845461400f565b846141da565b602080601f8311600181146142a957600084156142735750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555614220565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b828110156142f6578886015182559484019460019091019084016142d7565b508582101561433257878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b82815260406020820152600061438a604083018461352e565b949350505050565b6000825161386181846020870161350a565b6000602082840312156143b657600080fd5b5051919050565b6000602082840312156143cf57600080fd5b81516129fc81613c00565b6000604082016040835280855180835260608501915060608160051b8601019250602080880160005b8381101561444f577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa088870301855261443d86835161368a565b95509382019390820190600101614403565b50508584038187015286518085528782019482019350915060005b828110156144865784518452938101939281019260010161446a565b5091979650505050505050565b89815260007fffffffffffffffffffffffffffffffffffffffff000000000000000000000000808b60601b166020840152808a60601b166034840152507fffffffffffffffff000000000000000000000000000000000000000000000000808960c01b166048840152808860c01b1660508401525085151560f81b6058830152846059830152835161452c81607985016020880161350a565b80830190507fffffffff000000000000000000000000000000000000000000000000000000008460e01b166079820152607d81019150509a995050505050505050505056fea164736f6c6343000813000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"a\x01``@R4\x80\x15a\0\x11W`\0\x80\xFD[P`@\x80Q\x80\x82\x01\x82R`\x03\x81RbEAS`\xE8\x1B` \x80\x83\x01\x91\x82R\x83Q\x80\x85\x01\x85R`\x05\x81Rd\x03\x12\xE32\xE3`\xDC\x1B\x90\x82\x01R\x91Q\x81 `\xE0\x81\x90R\x7Fj\x08\xC3\xE2\x03\x13,V\x17R%ZMR\xFF\xAE\x85\xBB\x9C]3\xCB2\x91R\r\xEA\x1B\x845c\x89a\x01\0\x81\x90RF`\xA0\x81\x81R\x86Q\x7F\x8Bs\xC3\xC6\x9B\xB8\xFE=Q.\xCCL\xF7Y\xCCy#\x9F{\x17\x9B\x0F\xFA\xCA\xA9\xA7]R+9@\x0F\x81\x88\x01\x81\x90R\x81\x89\x01\x95\x90\x95R``\x81\x01\x93\x90\x93R`\x80\x80\x84\x01\x92\x90\x92R0\x83\x82\x01\x81\x90R\x87Q\x80\x85\x03\x90\x92\x01\x82R`\xC0\x93\x84\x01\x90\x97R\x80Q\x95\x01\x94\x90\x94 \x90\x93R\x92\x90\x91Ra\x01 \x91\x90\x91RQa\x01@R`\x80Q`\xA0Q`\xC0Q`\xE0Qa\x01\0Qa\x01 Qa\x01@QaE~a\x01K`\09`\0a\x077\x01R`\0a'\x84\x01R`\0a'\xD3\x01R`\0a'\xAE\x01R`\0a'\x07\x01R`\0a'1\x01R`\0a'[\x01RaE~`\0\xF3\xFE`\x80`@R`\x046\x10a\x01\x8BW`\x005`\xE0\x1C\x80c\x95A\x15%\x11a\0\xD6W\x80c\xD4\\D5\x11a\0\x7FW\x80c\xED$\x91\x1D\x11a\0YW\x80c\xED$\x91\x1D\x14a\x04\xFDW\x80c\xF1\x0B\\\xC8\x14a\x05\x12W\x80c\xF1s%\xE7\x14a\x05AW`\0\x80\xFD[\x80c\xD4\\D5\x14a\x04gW\x80c\xE3\x0B\xB5c\x14a\x04\x9EW\x80c\xE7\x1F\xF3e\x14a\x04\xDDW`\0\x80\xFD[\x80c\xB4i1\x8D\x11a\0\xB0W\x80c\xB4i1\x8D\x14a\x03\xBAW\x80c\xB80\x10\xD3\x14a\x04\x14W\x80c\xCF\x19\x0F4\x14a\x04GW`\0\x80\xFD[\x80c\x95A\x15%\x14a\x03gW\x80c\xA3\x11*d\x14a\x03zW\x80c\xA6\xD4\xDB\xC7\x14a\x03\xA7W`\0\x80\xFD[\x80cD\xAD\xC9\x0E\x11a\x018W\x80cM\x000p\x11a\x01\x12W\x80cM\x000p\x14a\x02\xDEW\x80cT\xFDMP\x14a\x02\xFEW\x80cy\xF7W:\x14a\x03GW`\0\x80\xFD[\x80cD\xAD\xC9\x0E\x14a\x02\x98W\x80cF\x92bg\x14a\x02\xB8W\x80cL\xB7\xE9\xE5\x14a\x02\xCBW`\0\x80\xFD[\x80c\x17\xD7\xDE|\x11a\x01iW\x80c\x17\xD7\xDE|\x14a\x02 W\x80c-\x035\xAB\x14a\x02BW\x80c<\x04'\x15\x14a\x02\x85W`\0\x80\xFD[\x80c\x0E\xAB\xF6`\x14a\x01\x90W\x80c\x12\xB1\x1A\x17\x14a\x01\xA5W\x80c\x13\x89?a\x14a\x01\xE7W[`\0\x80\xFD[a\x01\xA3a\x01\x9E6`\x04a4\xC8V[a\x05TV[\0[4\x80\x15a\x01\xB1W`\0\x80\xFD[P\x7F\xFE\xB2\x92Z\x02\xBA\xE3\xDA\xE4\x8DBJ\x047\xA2\xB6\xAC\x93\x9A\xA9#\r\xDCU\xA1\xA7o\x06]\x98\x80v[`@Q\x90\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[4\x80\x15a\x01\xF3W`\0\x80\xFD[Pa\x02\x07a\x02\x026`\x04a4\xC8V[a\x06\xEBV[`@Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01a\x01\xDEV[4\x80\x15a\x02,W`\0\x80\xFD[Pa\x025a\x070V[`@Qa\x01\xDE\x91\x90a5xV[4\x80\x15a\x02NW`\0\x80\xFD[Pa\x01\xD4a\x02]6`\x04a5\xBDV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\0\x90\x81R` \x81\x90R`@\x90 T\x90V[a\x01\xD4a\x02\x936`\x04a5\xDAV[a\x07`V[a\x02\xABa\x02\xA66`\x04a4\xC8V[a\x08cV[`@Qa\x01\xDE\x91\x90a6\x15V[a\x01\xA3a\x02\xC66`\x04a6YV[a\t\xE4V[a\x01\xA3a\x02\xD96`\x04a4\xC8V[a\nhV[4\x80\x15a\x02\xEAW`\0\x80\xFD[Pa\x02\x07a\x02\xF96`\x04a6qV[a\x0BKV[4\x80\x15a\x03\nW`\0\x80\xFD[Pa\x025`@Q\x80`@\x01`@R\x80`\x0C\x81R` \x01\x7F1.4.1-beta.3\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RP\x81V[4\x80\x15a\x03SW`\0\x80\xFD[Pa\x01\xA3a\x03b6`\x04a6qV[a\x0BXV[a\x02\xABa\x03u6`\x04a4\xC8V[a\x0B\xEFV[4\x80\x15a\x03\x86W`\0\x80\xFD[Pa\x03\x9Aa\x03\x956`\x04a6qV[a\x0EbV[`@Qa\x01\xDE\x91\x90a7qV[a\x01\xA3a\x03\xB56`\x04a7\x84V[a\x10%V[4\x80\x15a\x03\xC6W`\0\x80\xFD[Pa\x02\x07a\x03\xD56`\x04a7\x97V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x91\x90\x91\x16`\0\x90\x81R`4` \x90\x81R`@\x80\x83 \x93\x83R\x92\x90R Tg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90V[4\x80\x15a\x04 W`\0\x80\xFD[P\x7F\xB5\xD5V\xF0u\x87\xEC\x0F\x08\xCF8eE\xCCCb\xC7\x02\xA0\x01e\x0C X\0&\x15\xEE\\\x9D\x1Eua\x01\xD4V[4\x80\x15a\x04SW`\0\x80\xFD[Pa\x02\x07a\x04b6`\x04a6qV[a\x10\xCAV[4\x80\x15a\x04sW`\0\x80\xFD[Pa\x02\x07a\x04\x826`\x04a6qV[`\0\x90\x81R`3` R`@\x90 Tg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90V[4\x80\x15a\x04\xAAW`\0\x80\xFD[Pa\x04\xCDa\x04\xB96`\x04a6qV[`\0\x90\x81R`2` R`@\x90 T\x15\x15\x90V[`@Q\x90\x15\x15\x81R` \x01a\x01\xDEV[4\x80\x15a\x04\xE9W`\0\x80\xFD[Pa\x02\x07a\x04\xF86`\x04a4\xC8V[a\x10\xD8V[4\x80\x15a\x05\tW`\0\x80\xFD[Pa\x01\xD4a\x11\x10V[4\x80\x15a\x05\x1EW`\0\x80\xFD[P`@QsB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \x81R` \x01a\x01\xDEV[a\x01\xD4a\x05O6`\x04a7\xC3V[a\x11\x1AV[4\x81`\0[\x81\x81\x10\x15a\x06\xE4W\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x01\x81\x14`\0\x86\x86\x84\x81\x81\x10a\x05\x9AWa\x05\x9Aa7\xFEV[\x90P` \x02\x81\x01\x90a\x05\xAC\x91\x90a8-V[a\x05\xB5\x90a:\xC3V[` \x81\x01Q\x80Q\x91\x92P\x90\x80\x15\x80a\x05\xD2WP\x82`@\x01QQ\x81\x14\x15[\x15a\x06\tW`@Q\x7F\x94}Z\x84\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\x01`@Q\x80\x91\x03\x90\xFD[`\0[\x81\x81\x10\x15a\x06\xADWa\x06\xA5`@Q\x80`\xA0\x01`@R\x80\x86`\0\x01Q\x81R` \x01\x85\x84\x81Q\x81\x10a\x06>Wa\x06>a7\xFEV[` \x02` \x01\x01Q\x81R` \x01\x86`@\x01Q\x84\x81Q\x81\x10a\x06aWa\x06aa7\xFEV[` \x02` \x01\x01Q\x81R` \x01\x86``\x01Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81R` \x01\x86`\x80\x01Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81RPa\x11\xD8V[`\x01\x01a\x06\x0CV[Pa\x06\xC3\x83`\0\x01Q\x83\x85``\x01Q\x8A\x88a\x13\xE9V[a\x06\xCD\x90\x88a;\xEDV[\x96PPPPPa\x06\xDD\x81`\x01\x01\x90V[\x90Pa\x05YV[PPPPPV[`\0B\x82\x82[\x81\x81\x10\x15a\x07$Wa\x07\x1C3\x87\x87\x84\x81\x81\x10a\x07\x0FWa\x07\x0Fa7\xFEV[\x90P` \x02\x015\x85a\x1A\x18V[`\x01\x01a\x06\xF1V[P\x90\x91PP[\x92\x91PPV[``a\x07[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x1B\x17V[\x90P\x90V[`\0a\x07sa\x07n\x83a=\"V[a\x1C\xA5V[`@\x80Q`\x01\x80\x82R\x81\x83\x01\x90\x92R`\0\x91\x81` \x01[`@\x80Q`\xC0\x81\x01\x82R`\0\x80\x82R` \x80\x83\x01\x82\x90R\x92\x82\x01\x81\x90R``\x80\x83\x01\x82\x90R`\x80\x83\x01R`\xA0\x82\x01R\x82R\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x92\x01\x91\x01\x81a\x07\x8AW\x90PP\x90Pa\x07\xF8` \x84\x01\x84a=\x9DV[a\x08\x01\x90a=\xD1V[\x81`\0\x81Q\x81\x10a\x08\x14Wa\x08\x14a7\xFEV[` \x90\x81\x02\x91\x90\x91\x01\x01Ra\x08=\x835\x82a\x085`\xC0\x87\x01`\xA0\x88\x01a5\xBDV[4`\x01a\x1E/V[` \x01Q`\0\x81Q\x81\x10a\x08SWa\x08Sa7\xFEV[` \x02` \x01\x01Q\x91PP\x91\x90PV[``\x81`\0\x81g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x08\x81Wa\x08\x81a8kV[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a\x08\xB4W\x81` \x01[``\x81R` \x01\x90`\x01\x90\x03\x90\x81a\x08\x9FW\x90P[P\x90P`\x004\x81[\x84\x81\x10\x15a\t\xCEW\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x85\x01\x81\x146\x89\x89\x84\x81\x81\x10a\x08\xFCWa\x08\xFCa7\xFEV[\x90P` \x02\x81\x01\x90a\t\x0E\x91\x90a=\xDDV[\x90Pa\t\x1D` \x82\x01\x82a>\x11V[\x90P`\0\x03a\tXW`@Q\x7F\x94}Z\x84\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\x01`@Q\x80\x91\x03\x90\xFD[`\0a\t}\x825a\tl` \x85\x01\x85a>\x11V[a\tu\x91a>yV[3\x88\x87a\x1E/V[\x80Q\x90\x91Pa\t\x8C\x90\x86a;\xEDV[\x94P\x80` \x01Q\x87\x85\x81Q\x81\x10a\t\xA5Wa\t\xA5a7\xFEV[` \x02` \x01\x01\x81\x90RP\x80` \x01QQ\x86\x01\x95PPPPa\t\xC7\x81`\x01\x01\x90V[\x90Pa\x08\xBCV[Pa\t\xD9\x83\x83a%AV[\x97\x96PPPPPPPV[`@\x80Q`\x01\x80\x82R\x81\x83\x01\x90\x92R`\0\x91\x81` \x01[`@\x80Q\x80\x82\x01\x90\x91R`\0\x80\x82R` \x82\x01R\x81R` \x01\x90`\x01\x90\x03\x90\x81a\t\xFBW\x90PP\x90Pa\n66\x83\x90\x03\x83\x01` \x84\x01a>\xEDV[\x81`\0\x81Q\x81\x10a\nIWa\nIa7\xFEV[` \x90\x81\x02\x91\x90\x91\x01\x01Ra\nc\x825\x8234`\x01a\x13\xE9V[PPPV[4\x81`\0[\x81\x81\x10\x15a\x06\xE4W\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x01\x81\x146\x86\x86\x84\x81\x81\x10a\n\xADWa\n\xADa7\xFEV[\x90P` \x02\x81\x01\x90a\n\xBF\x91\x90a=\xDDV[\x90Pa\x0B,\x815a\n\xD3` \x84\x01\x84a?\tV[\x80\x80` \x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01`\0\x90[\x82\x82\x10\x15a\x0B\x1FWa\x0B\x10`@\x83\x02\x86\x016\x81\x90\x03\x81\x01\x90a>\xEDV[\x81R` \x01\x90`\x01\x01\x90a\n\xF3V[PPPPP3\x88\x86a\x13\xE9V[a\x0B6\x90\x86a;\xEDV[\x94PPPa\x0BD\x81`\x01\x01\x90V[\x90Pa\nmV[`\0Ba\x07*\x83\x82a&+V[3`\0\x90\x81R` \x81\x90R`@\x90 T\x80\x82\x11a\x0B\xA1W`@Q\x7Fuf\x88\xFE\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\x01`@Q\x80\x91\x03\x90\xFD[3`\0\x90\x81R` \x81\x81R`@\x91\x82\x90 \x84\x90U\x81Q\x83\x81R\x90\x81\x01\x84\x90R\x7FW\xB0\x9A\xF8w\xDF\x90h\xFD`\xA6\x9D{!\xF5Wk\x8B8\x95X\x12\xD6\xAEJ\xC5)B\xF1\xE3\x8F\xB7\x91\x01`@Q\x80\x91\x03\x90\xA1PPV[``\x81`\0\x81g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x0C\rWa\x0C\ra8kV[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a\x0C@W\x81` \x01[``\x81R` \x01\x90`\x01\x90\x03\x90\x81a\x0C+W\x90P[P\x90P`\x004\x81[\x84\x81\x10\x15a\t\xCEW\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x85\x01\x81\x146\x89\x89\x84\x81\x81\x10a\x0C\x88Wa\x0C\x88a7\xFEV[\x90P` \x02\x81\x01\x90a\x0C\x9A\x91\x90a8-V[\x90P6`\0a\x0C\xAC` \x84\x01\x84a>\x11V[\x90\x92P\x90P\x80\x80\x15\x80a\x0C\xCDWPa\x0C\xC7`@\x85\x01\x85a?qV[\x90P\x81\x14\x15[\x15a\r\x04W`@Q\x7F\x94}Z\x84\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\x01`@Q\x80\x91\x03\x90\xFD[`\0[\x81\x81\x10\x15a\r\xE5Wa\r\xDD`@Q\x80`\xA0\x01`@R\x80\x87`\0\x015\x81R` \x01\x86\x86\x85\x81\x81\x10a\r9Wa\r9a7\xFEV[\x90P` \x02\x81\x01\x90a\rK\x91\x90a=\x9DV[a\rT\x90a=\xD1V[\x81R` \x01a\rf`@\x89\x01\x89a?qV[\x85\x81\x81\x10a\rvWa\rva7\xFEV[\x90P``\x02\x01\x806\x03\x81\x01\x90a\r\x8C\x91\x90a?\xD8V[\x81R` \x01a\r\xA1`\x80\x89\x01``\x8A\x01a5\xBDV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81R` \x01a\r\xCC`\xA0\x89\x01`\x80\x8A\x01a?\xF4V[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90Ra\x1C\xA5V[`\x01\x01a\r\x07V[P`\0a\x0E\x0E\x855a\r\xF7\x85\x87a>yV[a\x0E\x07`\x80\x89\x01``\x8A\x01a5\xBDV[\x8B\x8Aa\x1E/V[\x80Q\x90\x91Pa\x0E\x1D\x90\x89a;\xEDV[\x97P\x80` \x01Q\x8A\x88\x81Q\x81\x10a\x0E6Wa\x0E6a7\xFEV[` \x02` \x01\x01\x81\x90RP\x80` \x01QQ\x89\x01\x98PPPPPPPa\x0E[\x81`\x01\x01\x90V[\x90Pa\x0CHV[`@\x80Qa\x01@\x81\x01\x82R`\0\x80\x82R` \x82\x01\x81\x90R\x91\x81\x01\x82\x90R``\x80\x82\x01\x83\x90R`\x80\x82\x01\x83\x90R`\xA0\x82\x01\x83\x90R`\xC0\x82\x01\x83\x90R`\xE0\x82\x01\x83\x90Ra\x01\0\x82\x01\x92\x90\x92Ra\x01 \x81\x01\x91\x90\x91R`\0\x82\x81R`2` \x90\x81R`@\x91\x82\x90 \x82Qa\x01@\x81\x01\x84R\x81T\x81R`\x01\x82\x01T\x92\x81\x01\x92\x90\x92R`\x02\x81\x01Tg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x16\x94\x84\x01\x94\x90\x94Rh\x01\0\0\0\0\0\0\0\0\x81\x04\x84\x16``\x84\x01Rp\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04\x90\x92\x16`\x80\x82\x01R`\x03\x82\x01T`\xA0\x82\x01R`\x04\x82\x01Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x81\x16`\xC0\x83\x01R`\x05\x83\x01T\x90\x81\x16`\xE0\x83\x01Rt\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16\x15\x15a\x01\0\x82\x01R`\x06\x82\x01\x80T\x91\x92\x91a\x01 \x84\x01\x91\x90a\x0F\x9C\x90a@\x0FV[\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x92\x91\x90\x81\x81R` \x01\x82\x80Ta\x0F\xC8\x90a@\x0FV[\x80\x15a\x10\x15W\x80`\x1F\x10a\x0F\xEAWa\x01\0\x80\x83T\x04\x02\x83R\x91` \x01\x91a\x10\x15V[\x82\x01\x91\x90`\0R` `\0 \x90[\x81T\x81R\x90`\x01\x01\x90` \x01\x80\x83\x11a\x0F\xF8W\x82\x90\x03`\x1F\x16\x82\x01\x91[PPPPP\x81RPP\x90P\x91\x90PV[a\x10\xEDV[\x81`\0\x81Q\x81\x10a\x10\xA1Wa\x10\xA1a7\xFEV[` \x90\x81\x02\x91\x90\x91\x01\x01Ra\nc\x825\x82a\x10\xC2`\xE0\x86\x01`\xC0\x87\x01a5\xBDV[4`\x01a\x13\xE9V[`\0Ba\x07*3\x84\x83a\x1A\x18V[`\0B\x82\x82[\x81\x81\x10\x15a\x07$Wa\x11\x08\x86\x86\x83\x81\x81\x10a\x10\xFBWa\x10\xFBa7\xFEV[\x90P` \x02\x015\x84a&+V[`\x01\x01a\x10\xDEV[`\0a\x07[a&\xEDV[`@\x80Q`\x01\x80\x82R\x81\x83\x01\x90\x92R`\0\x91\x82\x91\x90\x81` \x01[`@\x80Q`\xC0\x81\x01\x82R`\0\x80\x82R` \x80\x83\x01\x82\x90R\x92\x82\x01\x81\x90R``\x80\x83\x01\x82\x90R`\x80\x83\x01R`\xA0\x82\x01R\x82R\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x92\x01\x91\x01\x81a\x114W\x90PP\x90Pa\x11\xA2` \x84\x01\x84a=\x9DV[a\x11\xAB\x90a=\xD1V[\x81`\0\x81Q\x81\x10a\x11\xBEWa\x11\xBEa7\xFEV[` \x90\x81\x02\x91\x90\x91\x01\x01Ra\x08=\x835\x8234`\x01a\x1E/V[`\x80\x81\x01Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x15\x80\x15\x90a\x12\x0CWPBg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81`\x80\x01Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x10[\x15a\x12CW`@Q\x7F\x1A\xB7\xDAk\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\x01`@Q\x80\x91\x03\x90\xFD[` \x80\x82\x01Q`@\x80\x84\x01Q``\x85\x01Q\x85Q\x84Q\x85\x87\x01Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x16`\0\x90\x81R\x97\x88\x90R\x94\x87 \x80T\x96\x97\x94\x96\x94\x95a\x137\x95\x7F\xB5\xD5V\xF0u\x87\xEC\x0F\x08\xCF8eE\xCCCb\xC7\x02\xA0\x01e\x0C X\0&\x15\xEE\\\x9D\x1Eu\x95\x94\x93\x92\x88a\x12\xBA\x83a@\xCAV[\x90\x91UP`\x80\x80\x8C\x01Q`@\x80Q` \x81\x01\x99\x90\x99Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x97\x16\x96\x88\x01\x96\x90\x96R``\x87\x01\x94\x90\x94R\x92\x85\x01\x91\x90\x91R`\xA0\x84\x01R`\xC0\x83\x01Rg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\xE0\x82\x01Ra\x01\0\x01[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 a(!V[\x90Pa\x13\xAD\x84``\x01Q\x82\x84` \x01Q\x85`@\x01Q\x86`\0\x01Q`@Q` \x01a\x13\x99\x93\x92\x91\x90\x92\x83R` \x83\x01\x91\x90\x91R`\xF8\x1B\x7F\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16`@\x82\x01R`A\x01\x90V[`@Q` \x81\x83\x03\x03\x81R\x90`@Ra(4V[a\x13\xE3W`@Q\x7F\x8B\xAAW\x9F\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\x01`@Q\x80\x91\x03\x90\xFD[PPPPV[`@Q\x7F\xA2\xEA|n\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\x81\x01\x86\x90R`\0\x90\x81\x90sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \x90c\xA2\xEA|n\x90`$\x01`\0`@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x14WW=`\0\x80>=`\0\xFD[PPPP`@Q=`\0\x82>`\x1F=\x90\x81\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x82\x01`@Ra\x14\x9D\x91\x90\x81\x01\x90aA\x02V[\x80Q\x90\x91Pa\x14\xD8W`@Q\x7F\xBF7\xB2\x0E\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\x01`@Q\x80\x91\x03\x90\xFD[\x85Q`\0\x81g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x14\xF5Wa\x14\xF5a8kV[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a\x15\x94W\x81` \x01[`@\x80Qa\x01@\x81\x01\x82R`\0\x80\x82R` \x80\x83\x01\x82\x90R\x92\x82\x01\x81\x90R``\x80\x83\x01\x82\x90R`\x80\x83\x01\x82\x90R`\xA0\x83\x01\x82\x90R`\xC0\x83\x01\x82\x90R`\xE0\x83\x01\x82\x90Ra\x01\0\x83\x01\x91\x90\x91Ra\x01 \x82\x01R\x82R\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x92\x01\x91\x01\x81a\x15\x13W\x90P[P\x90P`\0\x82g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x15\xB2Wa\x15\xB2a8kV[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a\x15\xDBW\x81` \x01` \x82\x02\x806\x837\x01\x90P[P\x90P`\0[\x83\x81\x10\x15a\x19\xFAW`\0\x8A\x82\x81Q\x81\x10a\x15\xFDWa\x15\xFDa7\xFEV[` \x90\x81\x02\x91\x90\x91\x01\x81\x01Q\x80Q`\0\x90\x81R`2\x90\x92R`@\x90\x91 \x80T\x91\x92P\x90a\x16VW`@Q\x7F\xC5r;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\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[\x8C\x81`\x01\x01T\x14a\x16\x93W`@Q\x7F\xBF7\xB2\x0E\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\x01`@Q\x80\x91\x03\x90\xFD[`\x05\x81\x01Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x8C\x81\x16\x91\x16\x14a\x16\xE9W`@Q\x7FL\xA8\x88g\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\x01`@Q\x80\x91\x03\x90\xFD[`\x05\x81\x01Tt\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16a\x17?W`@Q\x7F\x15{\xD4\xC3\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\x01`@Q\x80\x91\x03\x90\xFD[`\x02\x81\x01Tp\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x15a\x17\x99W`@Q\x7F\x90^q\x07\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\x01`@Q\x80\x91\x03\x90\xFD[B`\x02\x82\x01\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16p\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x94\x85\x16\x81\x02\x91\x82\x17\x93\x84\x90U`@\x80Qa\x01@\x81\x01\x82R\x87T\x81R`\x01\x88\x01T` \x82\x01R\x93\x86\x16\x92\x86\x16\x92\x90\x92\x17\x91\x83\x01\x91\x90\x91Rh\x01\0\0\0\0\0\0\0\0\x83\x04\x84\x16``\x83\x01R\x90\x91\x04\x90\x91\x16`\x80\x82\x01R`\x03\x82\x01T`\xA0\x82\x01R`\x04\x82\x01Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x81\x16`\xC0\x83\x01R`\x05\x83\x01T\x90\x81\x16`\xE0\x83\x01Rt\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16\x15\x15a\x01\0\x82\x01R`\x06\x82\x01\x80T\x83\x91a\x01 \x84\x01\x91a\x18\xA5\x90a@\x0FV[\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x92\x91\x90\x81\x81R` \x01\x82\x80Ta\x18\xD1\x90a@\x0FV[\x80\x15a\x19\x1EW\x80`\x1F\x10a\x18\xF3Wa\x01\0\x80\x83T\x04\x02\x83R\x91` \x01\x91a\x19\x1EV[\x82\x01\x91\x90`\0R` `\0 \x90[\x81T\x81R\x90`\x01\x01\x90` \x01\x80\x83\x11a\x19\x01W\x82\x90\x03`\x1F\x16\x82\x01\x91[PPPPP\x81RPP\x85\x84\x81Q\x81\x10a\x199Wa\x199a7\xFEV[` \x02` \x01\x01\x81\x90RP\x81` \x01Q\x84\x84\x81Q\x81\x10a\x19[Wa\x19[a7\xFEV[` \x02` \x01\x01\x81\x81RPP\x8C\x8Bs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x86\x85\x81Q\x81\x10a\x19\x91Wa\x19\x91a7\xFEV[` \x02` \x01\x01Q`\xC0\x01Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xF90\xA6\xE2R<\x9C\xC2\x98i\x18s\x08zt\x05P\xB8\xFC\x85\xA0h\x080AL\x14\x8E\xD9'\xF6\x15\x85`\0\x01Q`@Qa\x19\xE8\x91\x81R` \x01\x90V[`@Q\x80\x91\x03\x90\xA4PP`\x01\x01a\x15\xE1V[Pa\x1A\n\x84\x83\x83`\x01\x8B\x8Ba*\x03V[\x9A\x99PPPPPPPPPPV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x16`\0\x90\x81R`4` \x90\x81R`@\x80\x83 \x85\x84R\x91\x82\x90R\x90\x91 Tg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x15a\x1A\x8CW`@Q\x7F\xEC\x9Dn\xEB\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\x01`@Q\x80\x91\x03\x90\xFD[`\0\x83\x81R` \x82\x90R`@\x80\x82 \x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\x16g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x86\x16\x90\x81\x17\x90\x91U\x90Q\x90\x91\x85\x91s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x88\x16\x91\x7F\x92\xA1\xF7\xA4\x1A|XZ\x8B\t\xE2[\x19^\"[\x1DC$\x8D\xAC\xA4k\x0F\xAF\x9E\x07\x92wz\")\x91\xA4PPPPV[`@\x80Q` \x80\x82R\x81\x83\x01\x90\x92R``\x91`\0\x91\x90` \x82\x01\x81\x806\x837\x01\x90PP\x90P`\0\x80[` \x81\x10\x15a\x1B\xE2W`\0\x85\x82` \x81\x10a\x1B]Wa\x1B]a7\xFEV[\x1A`\xF8\x1B\x90P\x7F\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81\x16`\0\x03a\x1B\x93WPa\x1B\xE2V[\x80\x84\x84\x81Q\x81\x10a\x1B\xA6Wa\x1B\xA6a7\xFEV[` \x01\x01\x90~\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x19\x16\x90\x81`\0\x1A\x90SPP`\x01\x91\x82\x01\x91\x01a\x1B@V[P`\0\x81g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x1B\xFEWa\x1B\xFEa8kV[`@Q\x90\x80\x82R\x80`\x1F\x01`\x1F\x19\x16` \x01\x82\x01`@R\x80\x15a\x1C(W` \x82\x01\x81\x806\x837\x01\x90P[P\x90P`\0[\x82\x81\x10\x15a\x1C\x9CW\x83\x81\x81Q\x81\x10a\x1CHWa\x1CHa7\xFEV[` \x01\x01Q`\xF8\x1C`\xF8\x1B\x82\x82\x81Q\x81\x10a\x1CeWa\x1Cea7\xFEV[` \x01\x01\x90~\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x19\x16\x90\x81`\0\x1A\x90SP`\x01\x01a\x1C.V[P\x94\x93PPPPV[`\x80\x81\x01Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x15\x80\x15\x90a\x1C\xD9WPBg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81`\x80\x01Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x10[\x15a\x1D\x10W`@Q\x7F\x1A\xB7\xDAk\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\x01`@Q\x80\x91\x03\x90\xFD[` \x80\x82\x01Q`@\x80\x84\x01Q``\x80\x86\x01Q\x86Q\x85Q\x86\x88\x01Q\x86\x88\x01Q\x94\x88\x01Q`\x80\x89\x01Q\x80Q\x90\x8B\x01 `\xA0\x8A\x01Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x16`\0\x90\x81R\x9B\x8C\x90R\x98\x8B \x80T\x9A\x9B\x98\x9A\x98\x99a\x137\x99\x7F\xFE\xB2\x92Z\x02\xBA\xE3\xDA\xE4\x8DBJ\x047\xA2\xB6\xAC\x93\x9A\xA9#\r\xDCU\xA1\xA7o\x06]\x98\x80v\x99\x94\x93\x92\x8Ca\x1D\xA0\x83a@\xCAV[\x91\x90PU\x8E`\x80\x01Q`@Q` \x01a\x13\x1C\x9B\x9A\x99\x98\x97\x96\x95\x94\x93\x92\x91\x90\x9A\x8BRs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x99\x8A\x16` \x8C\x01R`@\x8B\x01\x98\x90\x98R\x95\x90\x97\x16``\x89\x01Rg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x93\x84\x16`\x80\x89\x01R\x91\x15\x15`\xA0\x88\x01R`\xC0\x87\x01R`\xE0\x86\x01Ra\x01\0\x85\x01\x93\x90\x93Ra\x01 \x84\x01R\x16a\x01@\x82\x01Ra\x01`\x01\x90V[`@\x80Q\x80\x82\x01\x90\x91R`\0\x81R``` \x82\x01R\x84Q`@\x80Q\x80\x82\x01\x90\x91R`\0\x81R``` \x82\x01R\x81g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x1EtWa\x1Eta8kV[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a\x1E\x9DW\x81` \x01` \x82\x02\x806\x837\x01\x90P[P` \x82\x01R`@Q\x7F\xA2\xEA|n\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\x81\x01\x89\x90R`\0\x90sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \x90c\xA2\xEA|n\x90`$\x01`\0`@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x1F\x0FW=`\0\x80>=`\0\xFD[PPPP`@Q=`\0\x82>`\x1F=\x90\x81\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x82\x01`@Ra\x1FU\x91\x90\x81\x01\x90aA\x02V[\x80Q\x90\x91Pa\x1F\x90W`@Q\x7F\xBF7\xB2\x0E\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\x01`@Q\x80\x91\x03\x90\xFD[`\0\x83g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x1F\xABWa\x1F\xABa8kV[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a JW\x81` \x01[`@\x80Qa\x01@\x81\x01\x82R`\0\x80\x82R` \x80\x83\x01\x82\x90R\x92\x82\x01\x81\x90R``\x80\x83\x01\x82\x90R`\x80\x83\x01\x82\x90R`\xA0\x83\x01\x82\x90R`\xC0\x83\x01\x82\x90R`\xE0\x83\x01\x82\x90Ra\x01\0\x83\x01\x91\x90\x91Ra\x01 \x82\x01R\x82R\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x92\x01\x91\x01\x81a\x1F\xC9W\x90P[P\x90P`\0\x84g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a hWa ha8kV[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a \x91W\x81` \x01` \x82\x02\x806\x837\x01\x90P[P\x90P`\0[\x85\x81\x10\x15a% W`\0\x8B\x82\x81Q\x81\x10a \xB3Wa \xB3a7\xFEV[` \x02` \x01\x01Q\x90P`\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81` \x01Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14\x15\x80\x15a \xFEWPBg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81` \x01Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x11\x15[\x15a!5W`@Q\x7F\x08\xE8\xB97\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\x01`@Q\x80\x91\x03\x90\xFD[\x84`@\x01Q\x15\x80\x15a!HWP\x80`@\x01Q[\x15a!\x7FW`@Q\x7F\x15{\xD4\xC3\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\x01`@Q\x80\x91\x03\x90\xFD[`\0`@Q\x80a\x01@\x01`@R\x80`\0\x80\x1B\x81R` \x01\x8F\x81R` \x01a!\xA3B\x90V[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81R` \x01\x83` \x01Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81R` \x01`\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81R` \x01\x83``\x01Q\x81R` \x01\x83`\0\x01Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81R` \x01\x8Ds\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81R` \x01\x83`@\x01Q\x15\x15\x81R` \x01\x83`\x80\x01Q\x81RP\x90P`\0\x80`\0\x90P[a\"E\x83\x82a-\xF4V[`\0\x81\x81R`2` R`@\x90 T\x90\x92P\x15a\"dW`\x01\x01a\";V[\x81\x83R`\0\x82\x81R`2` \x90\x81R`@\x91\x82\x90 \x85Q\x81U\x90\x85\x01Q`\x01\x82\x01U\x90\x84\x01Q`\x02\x82\x01\x80T``\x87\x01Q`\x80\x88\x01Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x81\x16p\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x02\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x92\x82\x16h\x01\0\0\0\0\0\0\0\0\x02\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x94\x16\x91\x90\x95\x16\x17\x91\x90\x91\x17\x16\x91\x90\x91\x17\x90U`\xA0\x84\x01Q`\x03\x82\x01U`\xC0\x84\x01Q`\x04\x82\x01\x80Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x92\x83\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x91\x16\x17\x90U`\xE0\x85\x01Q`\x05\x83\x01\x80Ta\x01\0\x88\x01Q\x15\x15t\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x02\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x91\x16\x92\x90\x93\x16\x91\x90\x91\x17\x91\x90\x91\x17\x90Ua\x01 \x84\x01Q\x84\x91\x90`\x06\x82\x01\x90a#\xE4\x90\x82aB(V[PPP``\x84\x01Q\x15a$;W``\x84\x01Q`\0\x90\x81R`2` R`@\x90 Ta$;W`@Q\x7F\xC5r;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\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[\x82\x87\x86\x81Q\x81\x10a$NWa$Na7\xFEV[` \x02` \x01\x01\x81\x90RP\x83`\xA0\x01Q\x86\x86\x81Q\x81\x10a$pWa$pa7\xFEV[` \x02` \x01\x01\x81\x81RPP\x81\x89` \x01Q\x86\x81Q\x81\x10a$\x93Wa$\x93a7\xFEV[` \x02` \x01\x01\x81\x81RPP\x8F\x8Es\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x85`\0\x01Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\x8B\xF4k\xF4\xCF\xD6t\xFAsZ=c\xEC\x1C\x9A\xD4\x15?\x03<)\x03A\xF3\xA5\x88\xB7V\x85\x14\x1B5\x85`@Qa%\x03\x91\x81R` \x01\x90V[`@Q\x80\x91\x03\x90\xA4PPPPa%\x19\x81`\x01\x01\x90V[\x90Pa \x97V[Pa%0\x83\x83\x83`\0\x8C\x8Ca*\x03V[\x84RP\x91\x99\x98PPPPPPPPPV[```\0\x82g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a%^Wa%^a8kV[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a%\x87W\x81` \x01` \x82\x02\x806\x837\x01\x90P[P\x84Q\x90\x91P`\0\x90\x81[\x81\x81\x10\x15a& W`\0\x87\x82\x81Q\x81\x10a%\xAEWa%\xAEa7\xFEV[` \x02` \x01\x01Q\x90P`\0\x81Q\x90P`\0[\x81\x81\x10\x15a&\x0CW\x82\x81\x81Q\x81\x10a%\xDBWa%\xDBa7\xFEV[` \x02` \x01\x01Q\x87\x87\x81Q\x81\x10a%\xF5Wa%\xF5a7\xFEV[` \x90\x81\x02\x91\x90\x91\x01\x01R`\x01\x95\x86\x01\x95\x01a%\xC1V[PPPa&\x19\x81`\x01\x01\x90V[\x90Pa%\x92V[P\x91\x95\x94PPPPPV[`\0\x82\x81R`3` R`@\x90 Tg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x15a&{W`@Q\x7F.&yF\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\x01`@Q\x80\x91\x03\x90\xFD[`\0\x82\x81R`3` R`@\x80\x82 \x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\x16g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x85\x16\x90\x81\x17\x90\x91U\x90Q\x90\x91\x84\x91\x7FZ\xAF\xCE\xEB\x1Cz\xD5\x8EJ\x84\x89\x8B\xDE\xE3|\x02\xC0\xFCF\xE7\xD2Nk`\xE8 \x94I\xF1\x83E\x9F\x91\x90\xA3PPV[`\x000s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x14\x80\x15a'SWP\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0F\x14[\x15a'}WP\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90V[P`@\x80Q\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0` \x80\x83\x01\x91\x90\x91R\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x82\x84\x01R\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0``\x83\x01RF`\x80\x83\x01R0`\xA0\x80\x84\x01\x91\x90\x91R\x83Q\x80\x84\x03\x90\x91\x01\x81R`\xC0\x90\x92\x01\x90\x92R\x80Q\x91\x01 \x90V[`\0a\x07*a(.a&\xEDV[\x83a.SV[`\0\x80`\0a(C\x85\x85a.\x95V[\x90\x92P\x90P`\0\x81`\x04\x81\x11\x15a(\\Wa(\\aCBV[\x14\x80\x15a(\x94WP\x85s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x82s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14[\x15a(\xA4W`\x01\x92PPPa)\xFCV[`\0\x80\x87s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\x16&\xBA~`\xE0\x1B\x88\x88`@Q`$\x01a(\xD9\x92\x91\x90aCqV[`@\x80Q\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x81\x84\x03\x01\x81R\x91\x81R` \x82\x01\x80Q{\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xFF\xFF\xFF\xFF\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\x90\x94\x16\x93\x90\x93\x17\x90\x92R\x90Qa)b\x91\x90aC\x92V[`\0`@Q\x80\x83\x03\x81\x85Z\xFA\x91PP=\x80`\0\x81\x14a)\x9DW`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=`\0` \x84\x01>a)\xA2V[``\x91P[P\x91P\x91P\x81\x80\x15a)\xB5WP\x80Q` \x14[\x80\x15a)\xF5WP\x80Q\x7F\x16&\xBA~\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\x90a)\xF3\x90\x83\x01` \x90\x81\x01\x90\x84\x01aC\xA4V[\x14[\x94PPPPP[\x93\x92PPPV[\x84Q`\0\x90`\x01\x81\x90\x03a*[Wa*S\x88\x88`\0\x81Q\x81\x10a*(Wa*(a7\xFEV[` \x02` \x01\x01Q\x88`\0\x81Q\x81\x10a*CWa*Ca7\xFEV[` \x02` \x01\x01Q\x88\x88\x88a.\xDAV[\x91PPa-\xEAV[` \x88\x01Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16a*\xFCW`\0[\x82\x81\x10\x15a*\xE1W\x87\x81\x81Q\x81\x10a*\x98Wa*\x98a7\xFEV[` \x02` \x01\x01Q`\0\x14a*\xD9W`@Q\x7F\x15t\xF9\xF3\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01\x01a*~V[P\x83\x15a*\xF1Wa*\xF1\x85a1\xF9V[`\0\x92PPPa-\xEAV[`\0\x80\x82s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xCEF\xE0F`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a+JW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a+n\x91\x90aC\xBDV[\x90P`\0[\x84\x81\x10\x15a,+W`\0\x8A\x82\x81Q\x81\x10a+\x8FWa+\x8Fa7\xFEV[` \x02` \x01\x01Q\x90P\x80`\0\x03a+\xA7WPa,#V[\x82a+\xDEW`@Q\x7F\x15t\xF9\xF3\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\x01`@Q\x80\x91\x03\x90\xFD[\x88\x81\x11\x15a,\x18W`@Q\x7F\x11\x01\x12\x94\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\x01`@Q\x80\x91\x03\x90\xFD[\x97\x88\x90\x03\x97\x92\x90\x92\x01\x91[`\x01\x01a+sV[P\x87\x15a-\x06W`@Q\x7F\x88\xE5\xB2\xD9\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\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x16\x90c\x88\xE5\xB2\xD9\x90\x84\x90a,\x88\x90\x8E\x90\x8E\x90`\x04\x01aC\xDAV[` `@Q\x80\x83\x03\x81\x85\x88Z\xF1\x15\x80\x15a,\xA6W=`\0\x80>=`\0\xFD[PPPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a,\xCB\x91\x90aC\xBDV[a-\x01W`@Q\x7F\xBF/:\x8B\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\x01`@Q\x80\x91\x03\x90\xFD[a-\xD5V[`@Q\x7F\x91\xDB\x0B~\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\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x16\x90c\x91\xDB\x0B~\x90\x84\x90a-\\\x90\x8E\x90\x8E\x90`\x04\x01aC\xDAV[` `@Q\x80\x83\x03\x81\x85\x88Z\xF1\x15\x80\x15a-zW=`\0\x80>=`\0\xFD[PPPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a-\x9F\x91\x90aC\xBDV[a-\xD5W`@Q\x7F\xE8\xBE\xE89\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\x01`@Q\x80\x91\x03\x90\xFD[\x85\x15a-\xE4Wa-\xE4\x87a1\xF9V[P\x92PPP[\x96\x95PPPPPPV[` \x80\x83\x01Q`\xC0\x84\x01Q`\xE0\x85\x01Q`@\x80\x87\x01Q``\x88\x01Qa\x01\0\x89\x01Q`\xA0\x8A\x01Qa\x01 \x8B\x01Q\x94Q`\0\x99a.5\x99\x98\x97\x96\x91\x8C\x91\x01aD\x93V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 \x90P\x92\x91PPV[`@Q\x7F\x19\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0` \x82\x01R`\"\x81\x01\x83\x90R`B\x81\x01\x82\x90R`\0\x90`b\x01a.5V[`\0\x80\x82Q`A\x03a.\xCBW` \x83\x01Q`@\x84\x01Q``\x85\x01Q`\0\x1Aa.\xBF\x87\x82\x85\x85a2\x0CV[\x94P\x94PPPPa.\xD3V[P`\0\x90P`\x02[\x92P\x92\x90PV[` \x86\x01Q`\0\x90s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16a/NW\x85\x15a/5W`@Q\x7F\x15t\xF9\xF3\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\x01`@Q\x80\x91\x03\x90\xFD[\x82\x15a/DWa/D\x84a1\xF9V[`\0\x91PPa-\xEAV[\x85\x15a09W\x80s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xCEF\xE0F`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a/\x9FW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a/\xC3\x91\x90aC\xBDV[a/\xF9W`@Q\x7F\x15t\xF9\xF3\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\x01`@Q\x80\x91\x03\x90\xFD[\x83\x86\x11\x15a03W`@Q\x7F\x11\x01\x12\x94\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\x01`@Q\x80\x91\x03\x90\xFD[\x85\x84\x03\x93P[\x84\x15a1\x11W`@Q\x7F\xE4\x96\x17\xE1\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\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16\x90c\xE4\x96\x17\xE1\x90\x88\x90a0\x93\x90\x8B\x90`\x04\x01a7qV[` `@Q\x80\x83\x03\x81\x85\x88Z\xF1\x15\x80\x15a0\xB1W=`\0\x80>=`\0\xFD[PPPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a0\xD6\x91\x90aC\xBDV[a1\x0CW`@Q\x7F\xCC\xF3\xBB'\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\x01`@Q\x80\x91\x03\x90\xFD[a1\xDEV[`@Q\x7F\xE6\x0C5\x05\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\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16\x90c\xE6\x0C5\x05\x90\x88\x90a1e\x90\x8B\x90`\x04\x01a7qV[` `@Q\x80\x83\x03\x81\x85\x88Z\xF1\x15\x80\x15a1\x83W=`\0\x80>=`\0\xFD[PPPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a1\xA8\x91\x90aC\xBDV[a1\xDEW`@Q\x7F\xBD\x8B\xA8M\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\x01`@Q\x80\x91\x03\x90\xFD[\x82\x15a1\xEDWa1\xED\x84a1\xF9V[P\x93\x96\x95PPPPPPV[\x80\x15a2\tWa2\t3\x82a3$V[PV[`\0\x80\x7F\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF]WnsW\xA4P\x1D\xDF\xE9/Fh\x1B \xA0\x83\x11\x15a2CWP`\0\x90P`\x03a3\x1BV[\x84`\xFF\x16`\x1B\x14\x15\x80\x15a2[WP\x84`\xFF\x16`\x1C\x14\x15[\x15a2lWP`\0\x90P`\x04a3\x1BV[`@\x80Q`\0\x80\x82R` \x82\x01\x80\x84R\x89\x90R`\xFF\x88\x16\x92\x82\x01\x92\x90\x92R``\x81\x01\x86\x90R`\x80\x81\x01\x85\x90R`\x01\x90`\xA0\x01` `@Q` \x81\x03\x90\x80\x84\x03\x90\x85Z\xFA\x15\x80\x15a2\xC0W=`\0\x80>=`\0\xFD[PP`@Q\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x01Q\x91PPs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16a3\x14W`\0`\x01\x92P\x92PPa3\x1BV[\x91P`\0\x90P[\x94P\x94\x92PPPV[\x80G\x10\x15a3\x93W`@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\x82\x01R`\x1D`$\x82\x01R\x7FAddress: insufficient balance\0\0\0`D\x82\x01R`d\x01[`@Q\x80\x91\x03\x90\xFD[`\0\x82s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x82`@Q`\0`@Q\x80\x83\x03\x81\x85\x87Z\xF1\x92PPP=\x80`\0\x81\x14a3\xEDW`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=`\0` \x84\x01>a3\xF2V[``\x91P[PP\x90P\x80a\ncW`@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\x82\x01R`:`$\x82\x01R\x7FAddress: unable to send value, r`D\x82\x01R\x7Fecipient may have reverted\0\0\0\0\0\0`d\x82\x01R`\x84\x01a3\x8AV[`\0\x80\x83`\x1F\x84\x01\x12a4\x95W`\0\x80\xFD[P\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a4\xADW`\0\x80\xFD[` \x83\x01\x91P\x83` \x82`\x05\x1B\x85\x01\x01\x11\x15a.\xD3W`\0\x80\xFD[`\0\x80` \x83\x85\x03\x12\x15a4\xDBW`\0\x80\xFD[\x825g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a4\xF2W`\0\x80\xFD[a4\xFE\x85\x82\x86\x01a4\x83V[\x90\x96\x90\x95P\x93PPPPV[`\0[\x83\x81\x10\x15a5%W\x81\x81\x01Q\x83\x82\x01R` \x01a5\rV[PP`\0\x91\x01RV[`\0\x81Q\x80\x84Ra5F\x81` \x86\x01` \x86\x01a5\nV[`\x1F\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x92\x90\x92\x01` \x01\x92\x91PPV[` \x81R`\0a)\xFC` \x83\x01\x84a5.V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a2\tW`\0\x80\xFD[\x805a5\xB8\x81a5\x8BV[\x91\x90PV[`\0` \x82\x84\x03\x12\x15a5\xCFW`\0\x80\xFD[\x815a)\xFC\x81a5\x8BV[`\0` \x82\x84\x03\x12\x15a5\xECW`\0\x80\xFD[\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a6\x03W`\0\x80\xFD[\x82\x01`\xE0\x81\x85\x03\x12\x15a)\xFCW`\0\x80\xFD[` \x80\x82R\x82Q\x82\x82\x01\x81\x90R`\0\x91\x90\x84\x82\x01\x90`@\x85\x01\x90\x84[\x81\x81\x10\x15a6MW\x83Q\x83R\x92\x84\x01\x92\x91\x84\x01\x91`\x01\x01a61V[P\x90\x96\x95PPPPPPV[`\0``\x82\x84\x03\x12\x15a6kW`\0\x80\xFD[P\x91\x90PV[`\0` \x82\x84\x03\x12\x15a6\x83W`\0\x80\xFD[P5\x91\x90PV[`\0a\x01@\x82Q\x84R` \x83\x01Q` \x85\x01R`@\x83\x01Qa6\xB8`@\x86\x01\x82g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90RV[P``\x83\x01Qa6\xD4``\x86\x01\x82g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90RV[P`\x80\x83\x01Qa6\xF0`\x80\x86\x01\x82g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90RV[P`\xA0\x83\x01Q`\xA0\x85\x01R`\xC0\x83\x01Qa7\"`\xC0\x86\x01\x82s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90RV[P`\xE0\x83\x01Qa7J`\xE0\x86\x01\x82s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90RV[Pa\x01\0\x83\x81\x01Q\x15\x15\x90\x85\x01Ra\x01 \x80\x84\x01Q\x81\x86\x01\x83\x90Ra-\xEA\x83\x87\x01\x82a5.V[` \x81R`\0a)\xFC` \x83\x01\x84a6\x8AV[`\0a\x01\0\x82\x84\x03\x12\x15a6kW`\0\x80\xFD[`\0\x80`@\x83\x85\x03\x12\x15a7\xAAW`\0\x80\xFD[\x825a7\xB5\x81a5\x8BV[\x94` \x93\x90\x93\x015\x93PPPV[`\0` \x82\x84\x03\x12\x15a7\xD5W`\0\x80\xFD[\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a7\xECW`\0\x80\xFD[\x82\x01`@\x81\x85\x03\x12\x15a)\xFCW`\0\x80\xFD[\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`2`\x04R`$`\0\xFD[`\0\x825\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFFa\x836\x03\x01\x81\x12a8aW`\0\x80\xFD[\x91\x90\x91\x01\x92\x91PPV[\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[`@Q`\xA0\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a8\xBDWa8\xBDa8kV[`@R\x90V[`@Q`\xC0\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a8\xBDWa8\xBDa8kV[`@Q`\x80\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a8\xBDWa8\xBDa8kV[`@Q`\x1F\x82\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a9PWa9Pa8kV[`@R\x91\x90PV[`\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x15a9rWa9ra8kV[P`\x05\x1B` \x01\x90V[`\0`@\x82\x84\x03\x12\x15a9\x8EW`\0\x80\xFD[`@Q`@\x81\x01\x81\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17\x15a9\xB1Wa9\xB1a8kV[`@R\x825\x81R` \x92\x83\x015\x92\x81\x01\x92\x90\x92RP\x91\x90PV[`\0``\x82\x84\x03\x12\x15a9\xDDW`\0\x80\xFD[`@Q``\x81\x01\x81\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17\x15a:\0Wa:\0a8kV[`@R\x90P\x80\x825`\xFF\x81\x16\x81\x14a:\x17W`\0\x80\xFD[\x80\x82RP` \x83\x015` \x82\x01R`@\x83\x015`@\x82\x01RP\x92\x91PPV[`\0\x82`\x1F\x83\x01\x12a:GW`\0\x80\xFD[\x815` a:\\a:W\x83a9XV[a9\tV[\x82\x81R``\x92\x83\x02\x85\x01\x82\x01\x92\x82\x82\x01\x91\x90\x87\x85\x11\x15a:{W`\0\x80\xFD[\x83\x87\x01[\x85\x81\x10\x15a:\x9EWa:\x91\x89\x82a9\xCBV[\x84R\x92\x84\x01\x92\x81\x01a:\x7FV[P\x90\x97\x96PPPPPPPV[\x805g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a5\xB8W`\0\x80\xFD[`\0`\xA0\x826\x03\x12\x15a:\xD5W`\0\x80\xFD[a:\xDDa8\x9AV[\x825\x81R` \x80\x84\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a:\xFDW`\0\x80\xFD[\x90\x85\x01\x906`\x1F\x83\x01\x12a;\x10W`\0\x80\xFD[\x815a;\x1Ea:W\x82a9XV[\x81\x81R`\x06\x91\x90\x91\x1B\x83\x01\x84\x01\x90\x84\x81\x01\x906\x83\x11\x15a;=W`\0\x80\xFD[\x93\x85\x01\x93[\x82\x85\x10\x15a;fWa;T6\x86a9|V[\x82R\x85\x82\x01\x91P`@\x85\x01\x94Pa;BV[\x80\x86\x88\x01RPPP`@\x86\x015\x92P\x80\x83\x11\x15a;\x82W`\0\x80\xFD[PPa;\x906\x82\x86\x01a:6V[`@\x83\x01RPa;\xA2``\x84\x01a5\xADV[``\x82\x01Ra;\xB3`\x80\x84\x01a:\xABV[`\x80\x82\x01R\x92\x91PPV[\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`\x11`\x04R`$`\0\xFD[\x81\x81\x03\x81\x81\x11\x15a\x07*Wa\x07*a;\xBEV[\x80\x15\x15\x81\x14a2\tW`\0\x80\xFD[`\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x15a<(Wa<(a8kV[P`\x1F\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16` \x01\x90V[`\0`\xC0\x82\x84\x03\x12\x15aFW`\0\x80\xFD[\x83\x01\x805\x91Pg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x15a>aW`\0\x80\xFD[` \x01\x91P`\x05\x81\x90\x1B6\x03\x82\x13\x15a.\xD3W`\0\x80\xFD[`\0a>\x87a:W\x84a9XV[\x80\x84\x82R` \x80\x83\x01\x92P\x85`\x05\x1B\x85\x016\x81\x11\x15a>\xA5W`\0\x80\xFD[\x85[\x81\x81\x10\x15a>\xE1W\x805g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a>\xC7W`\0\x80\x81\xFD[a>\xD36\x82\x8A\x01a\xA7V[P\x91\x96\x95PPPPPPV[`\0`@\x82\x84\x03\x12\x15a>\xFFW`\0\x80\xFD[a)\xFC\x83\x83a9|V[`\0\x80\x835\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE1\x846\x03\x01\x81\x12a?>W`\0\x80\xFD[\x83\x01\x805\x91Pg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x15a?YW`\0\x80\xFD[` \x01\x91P`\x06\x81\x90\x1B6\x03\x82\x13\x15a.\xD3W`\0\x80\xFD[`\0\x80\x835\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE1\x846\x03\x01\x81\x12a?\xA6W`\0\x80\xFD[\x83\x01\x805\x91Pg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x15a?\xC1W`\0\x80\xFD[` \x01\x91P``\x81\x026\x03\x82\x13\x15a.\xD3W`\0\x80\xFD[`\0``\x82\x84\x03\x12\x15a?\xEAW`\0\x80\xFD[a)\xFC\x83\x83a9\xCBV[`\0` \x82\x84\x03\x12\x15a@\x06W`\0\x80\xFD[a)\xFC\x82a:\xABV[`\x01\x81\x81\x1C\x90\x82\x16\x80a@#W`\x7F\x82\x16\x91P[` \x82\x10\x81\x03a6kW\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`\"`\x04R`$`\0\xFD[`\0a\x01\0\x82\x84\x03\x12\x15a@oW`\0\x80\xFD[a@wa8\x9AV[\x825\x81Ra@\x88\x84` \x85\x01a9|V[` \x82\x01Ra@\x9A\x84``\x85\x01a9\xCBV[`@\x82\x01R`\xC0\x83\x015a@\xAD\x81a5\x8BV[``\x82\x01Ra@\xBE`\xE0\x84\x01a:\xABV[`\x80\x82\x01R\x93\x92PPPV[`\0\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x03a@\xFBWa@\xFBa;\xBEV[P`\x01\x01\x90V[`\0` \x80\x83\x85\x03\x12\x15aA\x15W`\0\x80\xFD[\x82Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15aA-W`\0\x80\xFD[\x90\x84\x01\x90`\x80\x82\x87\x03\x12\x15aAAW`\0\x80\xFD[aAIa8\xE6V[\x82Q\x81R\x83\x83\x01QaAZ\x81a5\x8BV[\x81\x85\x01R`@\x83\x01QaAl\x81a<\0V[`@\x82\x01R``\x83\x01Q\x82\x81\x11\x15aA\x83W`\0\x80\xFD[\x80\x84\x01\x93PP\x86`\x1F\x84\x01\x12aA\x98W`\0\x80\xFD[\x82Q\x91PaA\xA8a:W\x83a<\x0EV[\x82\x81R\x87\x85\x84\x86\x01\x01\x11\x15aA\xBCW`\0\x80\xFD[aA\xCB\x83\x86\x83\x01\x87\x87\x01a5\nV[``\x82\x01R\x96\x95PPPPPPV[`\x1F\x82\x11\x15a\ncW`\0\x81\x81R` \x81 `\x1F\x85\x01`\x05\x1C\x81\x01` \x86\x10\x15aB\x01WP\x80[`\x1F\x85\x01`\x05\x1C\x82\x01\x91P[\x81\x81\x10\x15aB W\x82\x81U`\x01\x01aB\rV[PPPPPPV[\x81Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15aBBWaBBa8kV[aBV\x81aBP\x84Ta@\x0FV[\x84aA\xDAV[` \x80`\x1F\x83\x11`\x01\x81\x14aB\xA9W`\0\x84\x15aBsWP\x85\x83\x01Q[\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF`\x03\x86\x90\x1B\x1C\x19\x16`\x01\x85\x90\x1B\x17\x85UaB V[`\0\x85\x81R` \x81 \x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x86\x16\x91[\x82\x81\x10\x15aB\xF6W\x88\x86\x01Q\x82U\x94\x84\x01\x94`\x01\x90\x91\x01\x90\x84\x01aB\xD7V[P\x85\x82\x10\x15aC2W\x87\x85\x01Q\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF`\x03\x88\x90\x1B`\xF8\x16\x1C\x19\x16\x81U[PPPPP`\x01\x90\x81\x1B\x01\x90UPV[\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`!`\x04R`$`\0\xFD[\x82\x81R`@` \x82\x01R`\0aC\x8A`@\x83\x01\x84a5.V[\x94\x93PPPPV[`\0\x82Qa8a\x81\x84` \x87\x01a5\nV[`\0` \x82\x84\x03\x12\x15aC\xB6W`\0\x80\xFD[PQ\x91\x90PV[`\0` \x82\x84\x03\x12\x15aC\xCFW`\0\x80\xFD[\x81Qa)\xFC\x81a<\0V[`\0`@\x82\x01`@\x83R\x80\x85Q\x80\x83R``\x85\x01\x91P``\x81`\x05\x1B\x86\x01\x01\x92P` \x80\x88\x01`\0[\x83\x81\x10\x15aDOW\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xA0\x88\x87\x03\x01\x85RaD=\x86\x83Qa6\x8AV[\x95P\x93\x82\x01\x93\x90\x82\x01\x90`\x01\x01aD\x03V[PP\x85\x84\x03\x81\x87\x01R\x86Q\x80\x85R\x87\x82\x01\x94\x82\x01\x93P\x91P`\0[\x82\x81\x10\x15aD\x86W\x84Q\x84R\x93\x81\x01\x93\x92\x81\x01\x92`\x01\x01aDjV[P\x91\x97\x96PPPPPPPV[\x89\x81R`\0\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\x80\x8B``\x1B\x16` \x84\x01R\x80\x8A``\x1B\x16`4\x84\x01RP\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x80\x89`\xC0\x1B\x16`H\x84\x01R\x80\x88`\xC0\x1B\x16`P\x84\x01RP\x85\x15\x15`\xF8\x1B`X\x83\x01R\x84`Y\x83\x01R\x83QaE,\x81`y\x85\x01` \x88\x01a5\nV[\x80\x83\x01\x90P\x7F\xFF\xFF\xFF\xFF\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\x84`\xE0\x1B\x16`y\x82\x01R`}\x81\x01\x91PP\x9A\x99PPPPPPPPPPV\xFE\xA1dsolcC\0\x08\x13\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x60806040526004361061018b5760003560e01c806395411525116100d6578063d45c44351161007f578063ed24911d11610059578063ed24911d146104fd578063f10b5cc814610512578063f17325e71461054157600080fd5b8063d45c443514610467578063e30bb5631461049e578063e71ff365146104dd57600080fd5b8063b469318d116100b0578063b469318d146103ba578063b83010d314610414578063cf190f341461044757600080fd5b80639541152514610367578063a3112a641461037a578063a6d4dbc7146103a757600080fd5b806344adc90e116101385780634d003070116101125780634d003070146102de57806354fd4d50146102fe57806379f7573a1461034757600080fd5b806344adc90e1461029857806346926267146102b85780634cb7e9e5146102cb57600080fd5b806317d7de7c1161016957806317d7de7c146102205780632d0335ab146102425780633c0427151461028557600080fd5b80630eabf6601461019057806312b11a17146101a557806313893f61146101e7575b600080fd5b6101a361019e3660046134c8565b610554565b005b3480156101b157600080fd5b507ffeb2925a02bae3dae48d424a0437a2b6ac939aa9230ddc55a1a76f065d9880765b6040519081526020015b60405180910390f35b3480156101f357600080fd5b506102076102023660046134c8565b6106eb565b60405167ffffffffffffffff90911681526020016101de565b34801561022c57600080fd5b50610235610730565b6040516101de9190613578565b34801561024e57600080fd5b506101d461025d3660046135bd565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b6101d46102933660046135da565b610760565b6102ab6102a63660046134c8565b610863565b6040516101de9190613615565b6101a36102c6366004613659565b6109e4565b6101a36102d93660046134c8565b610a68565b3480156102ea57600080fd5b506102076102f9366004613671565b610b4b565b34801561030a57600080fd5b506102356040518060400160405280600c81526020017f312e342e312d626574612e33000000000000000000000000000000000000000081525081565b34801561035357600080fd5b506101a3610362366004613671565b610b58565b6102ab6103753660046134c8565b610bef565b34801561038657600080fd5b5061039a610395366004613671565b610e62565b6040516101de9190613771565b6101a36103b5366004613784565b611025565b3480156103c657600080fd5b506102076103d5366004613797565b73ffffffffffffffffffffffffffffffffffffffff919091166000908152603460209081526040808320938352929052205467ffffffffffffffff1690565b34801561042057600080fd5b507fb5d556f07587ec0f08cf386545cc4362c702a001650c2058002615ee5c9d1e756101d4565b34801561045357600080fd5b50610207610462366004613671565b6110ca565b34801561047357600080fd5b50610207610482366004613671565b60009081526033602052604090205467ffffffffffffffff1690565b3480156104aa57600080fd5b506104cd6104b9366004613671565b600090815260326020526040902054151590565b60405190151581526020016101de565b3480156104e957600080fd5b506102076104f83660046134c8565b6110d8565b34801561050957600080fd5b506101d4611110565b34801561051e57600080fd5b5060405173420000000000000000000000000000000000002081526020016101de565b6101d461054f3660046137c3565b61111a565b348160005b818110156106e4577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82018114600086868481811061059a5761059a6137fe565b90506020028101906105ac919061382d565b6105b590613ac3565b60208101518051919250908015806105d257508260400151518114155b15610609576040517f947d5a8400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005b818110156106ad576106a56040518060a001604052808660000151815260200185848151811061063e5761063e6137fe565b6020026020010151815260200186604001518481518110610661576106616137fe565b60200260200101518152602001866060015173ffffffffffffffffffffffffffffffffffffffff168152602001866080015167ffffffffffffffff168152506111d8565b60010161060c565b506106c383600001518385606001518a886113e9565b6106cd9088613bed565b9650505050506106dd8160010190565b9050610559565b5050505050565b60004282825b818110156107245761071c3387878481811061070f5761070f6137fe565b9050602002013585611a18565b6001016106f1565b50909150505b92915050565b606061075b7f0000000000000000000000000000000000000000000000000000000000000000611b17565b905090565b600061077361076e83613d22565b611ca5565b604080516001808252818301909252600091816020015b6040805160c081018252600080825260208083018290529282018190526060808301829052608083015260a082015282527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90920191018161078a5790505090506107f86020840184613d9d565b61080190613dd1565b81600081518110610814576108146137fe565b602090810291909101015261083d83358261083560c0870160a088016135bd565b346001611e2f565b60200151600081518110610853576108536137fe565b6020026020010151915050919050565b60608160008167ffffffffffffffff8111156108815761088161386b565b6040519080825280602002602001820160405280156108b457816020015b606081526020019060019003908161089f5790505b509050600034815b848110156109ce577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff85018114368989848181106108fc576108fc6137fe565b905060200281019061090e9190613ddd565b905061091d6020820182613e11565b9050600003610958576040517f947d5a8400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061097d823561096c6020850185613e11565b61097591613e79565b338887611e2f565b805190915061098c9086613bed565b945080602001518785815181106109a5576109a56137fe565b6020026020010181905250806020015151860195505050506109c78160010190565b90506108bc565b506109d98383612541565b979650505050505050565b604080516001808252818301909252600091816020015b60408051808201909152600080825260208201528152602001906001900390816109fb579050509050610a3636839003830160208401613eed565b81600081518110610a4957610a496137fe565b6020908102919091010152610a63823582333460016113e9565b505050565b348160005b818110156106e4577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8201811436868684818110610aad57610aad6137fe565b9050602002810190610abf9190613ddd565b9050610b2c8135610ad36020840184613f09565b808060200260200160405190810160405280939291908181526020016000905b82821015610b1f57610b1060408302860136819003810190613eed565b81526020019060010190610af3565b50505050503388866113e9565b610b369086613bed565b94505050610b448160010190565b9050610a6d565b60004261072a838261262b565b33600090815260208190526040902054808211610ba1576040517f756688fe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b336000908152602081815260409182902084905581518381529081018490527f57b09af877df9068fd60a69d7b21f5576b8b38955812d6ae4ac52942f1e38fb7910160405180910390a15050565b60608160008167ffffffffffffffff811115610c0d57610c0d61386b565b604051908082528060200260200182016040528015610c4057816020015b6060815260200190600190039081610c2b5790505b509050600034815b848110156109ce577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8501811436898984818110610c8857610c886137fe565b9050602002810190610c9a919061382d565b9050366000610cac6020840184613e11565b909250905080801580610ccd5750610cc76040850185613f71565b90508114155b15610d04576040517f947d5a8400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005b81811015610de557610ddd6040518060a0016040528087600001358152602001868685818110610d3957610d396137fe565b9050602002810190610d4b9190613d9d565b610d5490613dd1565b8152602001610d666040890189613f71565b85818110610d7657610d766137fe565b905060600201803603810190610d8c9190613fd8565b8152602001610da16080890160608a016135bd565b73ffffffffffffffffffffffffffffffffffffffff168152602001610dcc60a0890160808a01613ff4565b67ffffffffffffffff169052611ca5565b600101610d07565b506000610e0e8535610df78587613e79565b610e076080890160608a016135bd565b8b8a611e2f565b8051909150610e1d9089613bed565b975080602001518a8881518110610e3657610e366137fe565b602002602001018190525080602001515189019850505050505050610e5b8160010190565b9050610c48565b604080516101408101825260008082526020820181905291810182905260608082018390526080820183905260a0820183905260c0820183905260e0820183905261010082019290925261012081019190915260008281526032602090815260409182902082516101408101845281548152600182015492810192909252600281015467ffffffffffffffff808216948401949094526801000000000000000081048416606084015270010000000000000000000000000000000090049092166080820152600382015460a0820152600482015473ffffffffffffffffffffffffffffffffffffffff90811660c0830152600583015490811660e083015274010000000000000000000000000000000000000000900460ff16151561010082015260068201805491929161012084019190610f9c9061400f565b80601f0160208091040260200160405190810160405280929190818152602001828054610fc89061400f565b80156110155780601f10610fea57610100808354040283529160200191611015565b820191906000526020600020905b815481529060010190602001808311610ff857829003601f168201915b5050505050815250509050919050565b61103c6110373683900383018361405c565b6111d8565b604080516001808252818301909252600091816020015b604080518082019091526000808252602082015281526020019060019003908161105357905050905061108e36839003830160208401613eed565b816000815181106110a1576110a16137fe565b6020908102919091010152610a638235826110c260e0860160c087016135bd565b3460016113e9565b60004261072a338483611a18565b60004282825b81811015610724576111088686838181106110fb576110fb6137fe565b905060200201358461262b565b6001016110de565b600061075b6126ed565b604080516001808252818301909252600091829190816020015b6040805160c081018252600080825260208083018290529282018190526060808301829052608083015260a082015282527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9092019101816111345790505090506111a26020840184613d9d565b6111ab90613dd1565b816000815181106111be576111be6137fe565b602090810291909101015261083d83358233346001611e2f565b608081015167ffffffffffffffff161580159061120c57504267ffffffffffffffff16816080015167ffffffffffffffff16105b15611243576040517f1ab7da6b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6020808201516040808401516060850151855184518587015173ffffffffffffffffffffffffffffffffffffffff84166000908152978890529487208054969794969495611337957fb5d556f07587ec0f08cf386545cc4362c702a001650c2058002615ee5c9d1e7595949392886112ba836140ca565b909155506080808c015160408051602081019990995273ffffffffffffffffffffffffffffffffffffffff9097169688019690965260608701949094529285019190915260a084015260c083015267ffffffffffffffff1660e0820152610100015b60405160208183030381529060405280519060200120612821565b90506113ad84606001518284602001518560400151866000015160405160200161139993929190928352602083019190915260f81b7fff0000000000000000000000000000000000000000000000000000000000000016604082015260410190565b604051602081830303815290604052612834565b6113e3576040517f8baa579f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505050565b6040517fa2ea7c6e0000000000000000000000000000000000000000000000000000000081526004810186905260009081907342000000000000000000000000000000000000209063a2ea7c6e90602401600060405180830381865afa158015611457573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405261149d9190810190614102565b80519091506114d8576040517fbf37b20e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b855160008167ffffffffffffffff8111156114f5576114f561386b565b60405190808252806020026020018201604052801561159457816020015b60408051610140810182526000808252602080830182905292820181905260608083018290526080830182905260a0830182905260c0830182905260e0830182905261010083019190915261012082015282527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9092019101816115135790505b50905060008267ffffffffffffffff8111156115b2576115b261386b565b6040519080825280602002602001820160405280156115db578160200160208202803683370190505b50905060005b838110156119fa5760008a82815181106115fd576115fd6137fe565b6020908102919091018101518051600090815260329092526040909120805491925090611656576040517fc5723b5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8c816001015414611693576040517fbf37b20e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600581015473ffffffffffffffffffffffffffffffffffffffff8c81169116146116e9576040517f4ca8886700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600581015474010000000000000000000000000000000000000000900460ff1661173f576040517f157bd4c300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002810154700100000000000000000000000000000000900467ffffffffffffffff1615611799576040517f905e710700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b426002820180547fffffffffffffffff0000000000000000ffffffffffffffffffffffffffffffff811670010000000000000000000000000000000067ffffffffffffffff948516810291821793849055604080516101408101825287548152600188015460208201529386169286169290921791830191909152680100000000000000008304841660608301529091049091166080820152600382015460a0820152600482015473ffffffffffffffffffffffffffffffffffffffff90811660c0830152600583015490811660e083015274010000000000000000000000000000000000000000900460ff16151561010082015260068201805483916101208401916118a59061400f565b80601f01602080910402602001604051908101604052809291908181526020018280546118d19061400f565b801561191e5780601f106118f35761010080835404028352916020019161191e565b820191906000526020600020905b81548152906001019060200180831161190157829003601f168201915b505050505081525050858481518110611939576119396137fe565b6020026020010181905250816020015184848151811061195b5761195b6137fe565b6020026020010181815250508c8b73ffffffffffffffffffffffffffffffffffffffff16868581518110611991576119916137fe565b602002602001015160c0015173ffffffffffffffffffffffffffffffffffffffff167ff930a6e2523c9cc298691873087a740550b8fc85a0680830414c148ed927f61585600001516040516119e891815260200190565b60405180910390a450506001016115e1565b50611a0a84838360018b8b612a03565b9a9950505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff83166000908152603460209081526040808320858452918290529091205467ffffffffffffffff1615611a8c576040517fec9d6eeb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008381526020829052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001667ffffffffffffffff861690811790915590519091859173ffffffffffffffffffffffffffffffffffffffff8816917f92a1f7a41a7c585a8b09e25b195e225b1d43248daca46b0faf9e0792777a222991a450505050565b604080516020808252818301909252606091600091906020820181803683370190505090506000805b6020811015611be2576000858260208110611b5d57611b5d6137fe565b1a60f81b90507fff000000000000000000000000000000000000000000000000000000000000008116600003611b935750611be2565b80848481518110611ba657611ba66137fe565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053505060019182019101611b40565b5060008167ffffffffffffffff811115611bfe57611bfe61386b565b6040519080825280601f01601f191660200182016040528015611c28576020820181803683370190505b50905060005b82811015611c9c57838181518110611c4857611c486137fe565b602001015160f81c60f81b828281518110611c6557611c656137fe565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600101611c2e565b50949350505050565b608081015167ffffffffffffffff1615801590611cd957504267ffffffffffffffff16816080015167ffffffffffffffff16105b15611d10576040517f1ab7da6b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6020808201516040808401516060808601518651855186880151868801519488015160808901518051908b012060a08a015173ffffffffffffffffffffffffffffffffffffffff871660009081529b8c9052988b2080549a9b989a9899611337997ffeb2925a02bae3dae48d424a0437a2b6ac939aa9230ddc55a1a76f065d988076999493928c611da0836140ca565b919050558e6080015160405160200161131c9b9a999897969594939291909a8b5273ffffffffffffffffffffffffffffffffffffffff998a1660208c015260408b019890985295909716606089015267ffffffffffffffff938416608089015291151560a088015260c087015260e0860152610100850193909352610120840152166101408201526101600190565b60408051808201909152600081526060602082015284516040805180820190915260008152606060208201528167ffffffffffffffff811115611e7457611e7461386b565b604051908082528060200260200182016040528015611e9d578160200160208202803683370190505b5060208201526040517fa2ea7c6e000000000000000000000000000000000000000000000000000000008152600481018990526000907342000000000000000000000000000000000000209063a2ea7c6e90602401600060405180830381865afa158015611f0f573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052611f559190810190614102565b8051909150611f90576040517fbf37b20e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008367ffffffffffffffff811115611fab57611fab61386b565b60405190808252806020026020018201604052801561204a57816020015b60408051610140810182526000808252602080830182905292820181905260608083018290526080830182905260a0830182905260c0830182905260e0830182905261010083019190915261012082015282527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff909201910181611fc95790505b50905060008467ffffffffffffffff8111156120685761206861386b565b604051908082528060200260200182016040528015612091578160200160208202803683370190505b50905060005b858110156125205760008b82815181106120b3576120b36137fe565b60200260200101519050600067ffffffffffffffff16816020015167ffffffffffffffff16141580156120fe57504267ffffffffffffffff16816020015167ffffffffffffffff1611155b15612135576040517f08e8b93700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8460400151158015612148575080604001515b1561217f576040517f157bd4c300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006040518061014001604052806000801b81526020018f81526020016121a34290565b67ffffffffffffffff168152602001836020015167ffffffffffffffff168152602001600067ffffffffffffffff16815260200183606001518152602001836000015173ffffffffffffffffffffffffffffffffffffffff1681526020018d73ffffffffffffffffffffffffffffffffffffffff16815260200183604001511515815260200183608001518152509050600080600090505b6122458382612df4565b600081815260326020526040902054909250156122645760010161223b565b81835260008281526032602090815260409182902085518155908501516001820155908401516002820180546060870151608088015167ffffffffffffffff908116700100000000000000000000000000000000027fffffffffffffffff0000000000000000ffffffffffffffffffffffffffffffff92821668010000000000000000027fffffffffffffffffffffffffffffffff000000000000000000000000000000009094169190951617919091171691909117905560a0840151600382015560c084015160048201805473ffffffffffffffffffffffffffffffffffffffff9283167fffffffffffffffffffffffff000000000000000000000000000000000000000090911617905560e0850151600583018054610100880151151574010000000000000000000000000000000000000000027fffffffffffffffffffffff000000000000000000000000000000000000000000909116929093169190911791909117905561012084015184919060068201906123e49082614228565b50505060608401511561243b57606084015160009081526032602052604090205461243b576040517fc5723b5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8287868151811061244e5761244e6137fe565b60200260200101819052508360a00151868681518110612470576124706137fe565b6020026020010181815250508189602001518681518110612493576124936137fe565b6020026020010181815250508f8e73ffffffffffffffffffffffffffffffffffffffff16856000015173ffffffffffffffffffffffffffffffffffffffff167f8bf46bf4cfd674fa735a3d63ec1c9ad4153f033c290341f3a588b75685141b358560405161250391815260200190565b60405180910390a4505050506125198160010190565b9050612097565b5061253083838360008c8c612a03565b845250919998505050505050505050565b606060008267ffffffffffffffff81111561255e5761255e61386b565b604051908082528060200260200182016040528015612587578160200160208202803683370190505b508451909150600090815b818110156126205760008782815181106125ae576125ae6137fe565b6020026020010151905060008151905060005b8181101561260c578281815181106125db576125db6137fe565b60200260200101518787815181106125f5576125f56137fe565b6020908102919091010152600195860195016125c1565b5050506126198160010190565b9050612592565b509195945050505050565b60008281526033602052604090205467ffffffffffffffff161561267b576040517f2e26794600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008281526033602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001667ffffffffffffffff85169081179091559051909184917f5aafceeb1c7ad58e4a84898bdee37c02c0fc46e7d24e6b60e8209449f183459f9190a35050565b60003073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614801561275357507f000000000000000000000000000000000000000000000000000000000000000046145b1561277d57507f000000000000000000000000000000000000000000000000000000000000000090565b50604080517f00000000000000000000000000000000000000000000000000000000000000006020808301919091527f0000000000000000000000000000000000000000000000000000000000000000828401527f000000000000000000000000000000000000000000000000000000000000000060608301524660808301523060a0808401919091528351808403909101815260c0909201909252805191012090565b600061072a61282e6126ed565b83612e53565b60008060006128438585612e95565b9092509050600081600481111561285c5761285c614342565b14801561289457508573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b156128a4576001925050506129fc565b6000808773ffffffffffffffffffffffffffffffffffffffff16631626ba7e60e01b88886040516024016128d9929190614371565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009094169390931790925290516129629190614392565b600060405180830381855afa9150503d806000811461299d576040519150601f19603f3d011682016040523d82523d6000602084013e6129a2565b606091505b50915091508180156129b5575080516020145b80156129f5575080517f1626ba7e00000000000000000000000000000000000000000000000000000000906129f390830160209081019084016143a4565b145b9450505050505b9392505050565b84516000906001819003612a5b57612a538888600081518110612a2857612a286137fe565b602002602001015188600081518110612a4357612a436137fe565b6020026020010151888888612eda565b915050612dea565b602088015173ffffffffffffffffffffffffffffffffffffffff8116612afc5760005b82811015612ae157878181518110612a9857612a986137fe565b6020026020010151600014612ad9576040517f1574f9f300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600101612a7e565b508315612af157612af1856131f9565b600092505050612dea565b6000808273ffffffffffffffffffffffffffffffffffffffff1663ce46e0466040518163ffffffff1660e01b8152600401602060405180830381865afa158015612b4a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b6e91906143bd565b905060005b84811015612c2b5760008a8281518110612b8f57612b8f6137fe565b6020026020010151905080600003612ba75750612c23565b82612bde576040517f1574f9f300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b88811115612c18576040517f1101129400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b978890039792909201915b600101612b73565b508715612d06576040517f88e5b2d900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8416906388e5b2d9908490612c88908e908e906004016143da565b60206040518083038185885af1158015612ca6573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612ccb91906143bd565b612d01576040517fbf2f3a8b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612dd5565b6040517f91db0b7e00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8416906391db0b7e908490612d5c908e908e906004016143da565b60206040518083038185885af1158015612d7a573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612d9f91906143bd565b612dd5576040517fe8bee83900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8515612de457612de4876131f9565b50925050505b9695505050505050565b60208083015160c084015160e0850151604080870151606088015161010089015160a08a01516101208b01519451600099612e3599989796918c9101614493565b60405160208183030381529060405280519060200120905092915050565b6040517f190100000000000000000000000000000000000000000000000000000000000060208201526022810183905260428101829052600090606201612e35565b6000808251604103612ecb5760208301516040840151606085015160001a612ebf8782858561320c565b94509450505050612ed3565b506000905060025b9250929050565b602086015160009073ffffffffffffffffffffffffffffffffffffffff8116612f4e578515612f35576040517f1574f9f300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8215612f4457612f44846131f9565b6000915050612dea565b8515613039578073ffffffffffffffffffffffffffffffffffffffff1663ce46e0466040518163ffffffff1660e01b8152600401602060405180830381865afa158015612f9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612fc391906143bd565b612ff9576040517f1574f9f300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b83861115613033576040517f1101129400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b85840393505b8415613111576040517fe49617e100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82169063e49617e1908890613093908b90600401613771565b60206040518083038185885af11580156130b1573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906130d691906143bd565b61310c576040517fccf3bb2700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6131de565b6040517fe60c350500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82169063e60c3505908890613165908b90600401613771565b60206040518083038185885af1158015613183573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906131a891906143bd565b6131de576040517fbd8ba84d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b82156131ed576131ed846131f9565b50939695505050505050565b8015613209576132093382613324565b50565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115613243575060009050600361331b565b8460ff16601b1415801561325b57508460ff16601c14155b1561326c575060009050600461331b565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156132c0573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff81166133145760006001925092505061331b565b9150600090505b94509492505050565b80471015613393576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064015b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d80600081146133ed576040519150601f19603f3d011682016040523d82523d6000602084013e6133f2565b606091505b5050905080610a63576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d61792068617665207265766572746564000000000000606482015260840161338a565b60008083601f84011261349557600080fd5b50813567ffffffffffffffff8111156134ad57600080fd5b6020830191508360208260051b8501011115612ed357600080fd5b600080602083850312156134db57600080fd5b823567ffffffffffffffff8111156134f257600080fd5b6134fe85828601613483565b90969095509350505050565b60005b8381101561352557818101518382015260200161350d565b50506000910152565b6000815180845261354681602086016020860161350a565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006129fc602083018461352e565b73ffffffffffffffffffffffffffffffffffffffff8116811461320957600080fd5b80356135b88161358b565b919050565b6000602082840312156135cf57600080fd5b81356129fc8161358b565b6000602082840312156135ec57600080fd5b813567ffffffffffffffff81111561360357600080fd5b820160e081850312156129fc57600080fd5b6020808252825182820181905260009190848201906040850190845b8181101561364d57835183529284019291840191600101613631565b50909695505050505050565b60006060828403121561366b57600080fd5b50919050565b60006020828403121561368357600080fd5b5035919050565b6000610140825184526020830151602085015260408301516136b8604086018267ffffffffffffffff169052565b5060608301516136d4606086018267ffffffffffffffff169052565b5060808301516136f0608086018267ffffffffffffffff169052565b5060a083015160a085015260c083015161372260c086018273ffffffffffffffffffffffffffffffffffffffff169052565b5060e083015161374a60e086018273ffffffffffffffffffffffffffffffffffffffff169052565b506101008381015115159085015261012080840151818601839052612dea8387018261352e565b6020815260006129fc602083018461368a565b6000610100828403121561366b57600080fd5b600080604083850312156137aa57600080fd5b82356137b58161358b565b946020939093013593505050565b6000602082840312156137d557600080fd5b813567ffffffffffffffff8111156137ec57600080fd5b8201604081850312156129fc57600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6183360301811261386157600080fd5b9190910192915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405160a0810167ffffffffffffffff811182821017156138bd576138bd61386b565b60405290565b60405160c0810167ffffffffffffffff811182821017156138bd576138bd61386b565b6040516080810167ffffffffffffffff811182821017156138bd576138bd61386b565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff811182821017156139505761395061386b565b604052919050565b600067ffffffffffffffff8211156139725761397261386b565b5060051b60200190565b60006040828403121561398e57600080fd5b6040516040810181811067ffffffffffffffff821117156139b1576139b161386b565b604052823581526020928301359281019290925250919050565b6000606082840312156139dd57600080fd5b6040516060810181811067ffffffffffffffff82111715613a0057613a0061386b565b604052905080823560ff81168114613a1757600080fd5b8082525060208301356020820152604083013560408201525092915050565b600082601f830112613a4757600080fd5b81356020613a5c613a5783613958565b613909565b82815260609283028501820192828201919087851115613a7b57600080fd5b8387015b85811015613a9e57613a9189826139cb565b8452928401928101613a7f565b5090979650505050505050565b803567ffffffffffffffff811681146135b857600080fd5b600060a08236031215613ad557600080fd5b613add61389a565b8235815260208084013567ffffffffffffffff80821115613afd57600080fd5b9085019036601f830112613b1057600080fd5b8135613b1e613a5782613958565b81815260069190911b83018401908481019036831115613b3d57600080fd5b938501935b82851015613b6657613b54368661397c565b82528582019150604085019450613b42565b80868801525050506040860135925080831115613b8257600080fd5b5050613b9036828601613a36565b604083015250613ba2606084016135ad565b6060820152613bb360808401613aab565b608082015292915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8181038181111561072a5761072a613bbe565b801515811461320957600080fd5b600067ffffffffffffffff821115613c2857613c2861386b565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b600060c08284031215613c6657600080fd5b613c6e6138c3565b90508135613c7b8161358b565b81526020613c8a838201613aab565b818301526040830135613c9c81613c00565b604083015260608381013590830152608083013567ffffffffffffffff811115613cc557600080fd5b8301601f81018513613cd657600080fd5b8035613ce4613a5782613c0e565b8181528684838501011115613cf857600080fd5b818484018583013760008483830101528060808601525050505060a082013560a082015292915050565b600060e08236031215613d3457600080fd5b613d3c61389a565b82358152602083013567ffffffffffffffff811115613d5a57600080fd5b613d6636828601613c54565b602083015250613d7936604085016139cb565b604082015260a0830135613d8c8161358b565b6060820152613bb360c08401613aab565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff4183360301811261386157600080fd5b600061072a3683613c54565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc183360301811261386157600080fd5b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112613e4657600080fd5b83018035915067ffffffffffffffff821115613e6157600080fd5b6020019150600581901b3603821315612ed357600080fd5b6000613e87613a5784613958565b80848252602080830192508560051b850136811115613ea557600080fd5b855b81811015613ee157803567ffffffffffffffff811115613ec75760008081fd5b613ed336828a01613c54565b865250938201938201613ea7565b50919695505050505050565b600060408284031215613eff57600080fd5b6129fc838361397c565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112613f3e57600080fd5b83018035915067ffffffffffffffff821115613f5957600080fd5b6020019150600681901b3603821315612ed357600080fd5b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112613fa657600080fd5b83018035915067ffffffffffffffff821115613fc157600080fd5b6020019150606081023603821315612ed357600080fd5b600060608284031215613fea57600080fd5b6129fc83836139cb565b60006020828403121561400657600080fd5b6129fc82613aab565b600181811c9082168061402357607f821691505b60208210810361366b577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000610100828403121561406f57600080fd5b61407761389a565b82358152614088846020850161397c565b602082015261409a84606085016139cb565b604082015260c08301356140ad8161358b565b60608201526140be60e08401613aab565b60808201529392505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036140fb576140fb613bbe565b5060010190565b6000602080838503121561411557600080fd5b825167ffffffffffffffff8082111561412d57600080fd5b908401906080828703121561414157600080fd5b6141496138e6565b825181528383015161415a8161358b565b81850152604083015161416c81613c00565b604082015260608301518281111561418357600080fd5b80840193505086601f84011261419857600080fd5b825191506141a8613a5783613c0e565b82815287858486010111156141bc57600080fd5b6141cb8386830187870161350a565b60608201529695505050505050565b601f821115610a6357600081815260208120601f850160051c810160208610156142015750805b601f850160051c820191505b818110156142205782815560010161420d565b505050505050565b815167ffffffffffffffff8111156142425761424261386b565b61425681614250845461400f565b846141da565b602080601f8311600181146142a957600084156142735750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555614220565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b828110156142f6578886015182559484019460019091019084016142d7565b508582101561433257878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b82815260406020820152600061438a604083018461352e565b949350505050565b6000825161386181846020870161350a565b6000602082840312156143b657600080fd5b5051919050565b6000602082840312156143cf57600080fd5b81516129fc81613c00565b6000604082016040835280855180835260608501915060608160051b8601019250602080880160005b8381101561444f577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa088870301855261443d86835161368a565b95509382019390820190600101614403565b50508584038187015286518085528782019482019350915060005b828110156144865784518452938101939281019260010161446a565b5091979650505050505050565b89815260007fffffffffffffffffffffffffffffffffffffffff000000000000000000000000808b60601b166020840152808a60601b166034840152507fffffffffffffffff000000000000000000000000000000000000000000000000808960c01b166048840152808860c01b1660508401525085151560f81b6058830152846059830152835161452c81607985016020880161350a565b80830190507fffffffff000000000000000000000000000000000000000000000000000000008460e01b166079820152607d81019150509a995050505050505050505056fea164736f6c6343000813000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R`\x046\x10a\x01\x8BW`\x005`\xE0\x1C\x80c\x95A\x15%\x11a\0\xD6W\x80c\xD4\\D5\x11a\0\x7FW\x80c\xED$\x91\x1D\x11a\0YW\x80c\xED$\x91\x1D\x14a\x04\xFDW\x80c\xF1\x0B\\\xC8\x14a\x05\x12W\x80c\xF1s%\xE7\x14a\x05AW`\0\x80\xFD[\x80c\xD4\\D5\x14a\x04gW\x80c\xE3\x0B\xB5c\x14a\x04\x9EW\x80c\xE7\x1F\xF3e\x14a\x04\xDDW`\0\x80\xFD[\x80c\xB4i1\x8D\x11a\0\xB0W\x80c\xB4i1\x8D\x14a\x03\xBAW\x80c\xB80\x10\xD3\x14a\x04\x14W\x80c\xCF\x19\x0F4\x14a\x04GW`\0\x80\xFD[\x80c\x95A\x15%\x14a\x03gW\x80c\xA3\x11*d\x14a\x03zW\x80c\xA6\xD4\xDB\xC7\x14a\x03\xA7W`\0\x80\xFD[\x80cD\xAD\xC9\x0E\x11a\x018W\x80cM\x000p\x11a\x01\x12W\x80cM\x000p\x14a\x02\xDEW\x80cT\xFDMP\x14a\x02\xFEW\x80cy\xF7W:\x14a\x03GW`\0\x80\xFD[\x80cD\xAD\xC9\x0E\x14a\x02\x98W\x80cF\x92bg\x14a\x02\xB8W\x80cL\xB7\xE9\xE5\x14a\x02\xCBW`\0\x80\xFD[\x80c\x17\xD7\xDE|\x11a\x01iW\x80c\x17\xD7\xDE|\x14a\x02 W\x80c-\x035\xAB\x14a\x02BW\x80c<\x04'\x15\x14a\x02\x85W`\0\x80\xFD[\x80c\x0E\xAB\xF6`\x14a\x01\x90W\x80c\x12\xB1\x1A\x17\x14a\x01\xA5W\x80c\x13\x89?a\x14a\x01\xE7W[`\0\x80\xFD[a\x01\xA3a\x01\x9E6`\x04a4\xC8V[a\x05TV[\0[4\x80\x15a\x01\xB1W`\0\x80\xFD[P\x7F\xFE\xB2\x92Z\x02\xBA\xE3\xDA\xE4\x8DBJ\x047\xA2\xB6\xAC\x93\x9A\xA9#\r\xDCU\xA1\xA7o\x06]\x98\x80v[`@Q\x90\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[4\x80\x15a\x01\xF3W`\0\x80\xFD[Pa\x02\x07a\x02\x026`\x04a4\xC8V[a\x06\xEBV[`@Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01a\x01\xDEV[4\x80\x15a\x02,W`\0\x80\xFD[Pa\x025a\x070V[`@Qa\x01\xDE\x91\x90a5xV[4\x80\x15a\x02NW`\0\x80\xFD[Pa\x01\xD4a\x02]6`\x04a5\xBDV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\0\x90\x81R` \x81\x90R`@\x90 T\x90V[a\x01\xD4a\x02\x936`\x04a5\xDAV[a\x07`V[a\x02\xABa\x02\xA66`\x04a4\xC8V[a\x08cV[`@Qa\x01\xDE\x91\x90a6\x15V[a\x01\xA3a\x02\xC66`\x04a6YV[a\t\xE4V[a\x01\xA3a\x02\xD96`\x04a4\xC8V[a\nhV[4\x80\x15a\x02\xEAW`\0\x80\xFD[Pa\x02\x07a\x02\xF96`\x04a6qV[a\x0BKV[4\x80\x15a\x03\nW`\0\x80\xFD[Pa\x025`@Q\x80`@\x01`@R\x80`\x0C\x81R` \x01\x7F1.4.1-beta.3\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RP\x81V[4\x80\x15a\x03SW`\0\x80\xFD[Pa\x01\xA3a\x03b6`\x04a6qV[a\x0BXV[a\x02\xABa\x03u6`\x04a4\xC8V[a\x0B\xEFV[4\x80\x15a\x03\x86W`\0\x80\xFD[Pa\x03\x9Aa\x03\x956`\x04a6qV[a\x0EbV[`@Qa\x01\xDE\x91\x90a7qV[a\x01\xA3a\x03\xB56`\x04a7\x84V[a\x10%V[4\x80\x15a\x03\xC6W`\0\x80\xFD[Pa\x02\x07a\x03\xD56`\x04a7\x97V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x91\x90\x91\x16`\0\x90\x81R`4` \x90\x81R`@\x80\x83 \x93\x83R\x92\x90R Tg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90V[4\x80\x15a\x04 W`\0\x80\xFD[P\x7F\xB5\xD5V\xF0u\x87\xEC\x0F\x08\xCF8eE\xCCCb\xC7\x02\xA0\x01e\x0C X\0&\x15\xEE\\\x9D\x1Eua\x01\xD4V[4\x80\x15a\x04SW`\0\x80\xFD[Pa\x02\x07a\x04b6`\x04a6qV[a\x10\xCAV[4\x80\x15a\x04sW`\0\x80\xFD[Pa\x02\x07a\x04\x826`\x04a6qV[`\0\x90\x81R`3` R`@\x90 Tg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90V[4\x80\x15a\x04\xAAW`\0\x80\xFD[Pa\x04\xCDa\x04\xB96`\x04a6qV[`\0\x90\x81R`2` R`@\x90 T\x15\x15\x90V[`@Q\x90\x15\x15\x81R` \x01a\x01\xDEV[4\x80\x15a\x04\xE9W`\0\x80\xFD[Pa\x02\x07a\x04\xF86`\x04a4\xC8V[a\x10\xD8V[4\x80\x15a\x05\tW`\0\x80\xFD[Pa\x01\xD4a\x11\x10V[4\x80\x15a\x05\x1EW`\0\x80\xFD[P`@QsB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \x81R` \x01a\x01\xDEV[a\x01\xD4a\x05O6`\x04a7\xC3V[a\x11\x1AV[4\x81`\0[\x81\x81\x10\x15a\x06\xE4W\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x01\x81\x14`\0\x86\x86\x84\x81\x81\x10a\x05\x9AWa\x05\x9Aa7\xFEV[\x90P` \x02\x81\x01\x90a\x05\xAC\x91\x90a8-V[a\x05\xB5\x90a:\xC3V[` \x81\x01Q\x80Q\x91\x92P\x90\x80\x15\x80a\x05\xD2WP\x82`@\x01QQ\x81\x14\x15[\x15a\x06\tW`@Q\x7F\x94}Z\x84\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\x01`@Q\x80\x91\x03\x90\xFD[`\0[\x81\x81\x10\x15a\x06\xADWa\x06\xA5`@Q\x80`\xA0\x01`@R\x80\x86`\0\x01Q\x81R` \x01\x85\x84\x81Q\x81\x10a\x06>Wa\x06>a7\xFEV[` \x02` \x01\x01Q\x81R` \x01\x86`@\x01Q\x84\x81Q\x81\x10a\x06aWa\x06aa7\xFEV[` \x02` \x01\x01Q\x81R` \x01\x86``\x01Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81R` \x01\x86`\x80\x01Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81RPa\x11\xD8V[`\x01\x01a\x06\x0CV[Pa\x06\xC3\x83`\0\x01Q\x83\x85``\x01Q\x8A\x88a\x13\xE9V[a\x06\xCD\x90\x88a;\xEDV[\x96PPPPPa\x06\xDD\x81`\x01\x01\x90V[\x90Pa\x05YV[PPPPPV[`\0B\x82\x82[\x81\x81\x10\x15a\x07$Wa\x07\x1C3\x87\x87\x84\x81\x81\x10a\x07\x0FWa\x07\x0Fa7\xFEV[\x90P` \x02\x015\x85a\x1A\x18V[`\x01\x01a\x06\xF1V[P\x90\x91PP[\x92\x91PPV[``a\x07[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x1B\x17V[\x90P\x90V[`\0a\x07sa\x07n\x83a=\"V[a\x1C\xA5V[`@\x80Q`\x01\x80\x82R\x81\x83\x01\x90\x92R`\0\x91\x81` \x01[`@\x80Q`\xC0\x81\x01\x82R`\0\x80\x82R` \x80\x83\x01\x82\x90R\x92\x82\x01\x81\x90R``\x80\x83\x01\x82\x90R`\x80\x83\x01R`\xA0\x82\x01R\x82R\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x92\x01\x91\x01\x81a\x07\x8AW\x90PP\x90Pa\x07\xF8` \x84\x01\x84a=\x9DV[a\x08\x01\x90a=\xD1V[\x81`\0\x81Q\x81\x10a\x08\x14Wa\x08\x14a7\xFEV[` \x90\x81\x02\x91\x90\x91\x01\x01Ra\x08=\x835\x82a\x085`\xC0\x87\x01`\xA0\x88\x01a5\xBDV[4`\x01a\x1E/V[` \x01Q`\0\x81Q\x81\x10a\x08SWa\x08Sa7\xFEV[` \x02` \x01\x01Q\x91PP\x91\x90PV[``\x81`\0\x81g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x08\x81Wa\x08\x81a8kV[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a\x08\xB4W\x81` \x01[``\x81R` \x01\x90`\x01\x90\x03\x90\x81a\x08\x9FW\x90P[P\x90P`\x004\x81[\x84\x81\x10\x15a\t\xCEW\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x85\x01\x81\x146\x89\x89\x84\x81\x81\x10a\x08\xFCWa\x08\xFCa7\xFEV[\x90P` \x02\x81\x01\x90a\t\x0E\x91\x90a=\xDDV[\x90Pa\t\x1D` \x82\x01\x82a>\x11V[\x90P`\0\x03a\tXW`@Q\x7F\x94}Z\x84\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\x01`@Q\x80\x91\x03\x90\xFD[`\0a\t}\x825a\tl` \x85\x01\x85a>\x11V[a\tu\x91a>yV[3\x88\x87a\x1E/V[\x80Q\x90\x91Pa\t\x8C\x90\x86a;\xEDV[\x94P\x80` \x01Q\x87\x85\x81Q\x81\x10a\t\xA5Wa\t\xA5a7\xFEV[` \x02` \x01\x01\x81\x90RP\x80` \x01QQ\x86\x01\x95PPPPa\t\xC7\x81`\x01\x01\x90V[\x90Pa\x08\xBCV[Pa\t\xD9\x83\x83a%AV[\x97\x96PPPPPPPV[`@\x80Q`\x01\x80\x82R\x81\x83\x01\x90\x92R`\0\x91\x81` \x01[`@\x80Q\x80\x82\x01\x90\x91R`\0\x80\x82R` \x82\x01R\x81R` \x01\x90`\x01\x90\x03\x90\x81a\t\xFBW\x90PP\x90Pa\n66\x83\x90\x03\x83\x01` \x84\x01a>\xEDV[\x81`\0\x81Q\x81\x10a\nIWa\nIa7\xFEV[` \x90\x81\x02\x91\x90\x91\x01\x01Ra\nc\x825\x8234`\x01a\x13\xE9V[PPPV[4\x81`\0[\x81\x81\x10\x15a\x06\xE4W\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x01\x81\x146\x86\x86\x84\x81\x81\x10a\n\xADWa\n\xADa7\xFEV[\x90P` \x02\x81\x01\x90a\n\xBF\x91\x90a=\xDDV[\x90Pa\x0B,\x815a\n\xD3` \x84\x01\x84a?\tV[\x80\x80` \x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01`\0\x90[\x82\x82\x10\x15a\x0B\x1FWa\x0B\x10`@\x83\x02\x86\x016\x81\x90\x03\x81\x01\x90a>\xEDV[\x81R` \x01\x90`\x01\x01\x90a\n\xF3V[PPPPP3\x88\x86a\x13\xE9V[a\x0B6\x90\x86a;\xEDV[\x94PPPa\x0BD\x81`\x01\x01\x90V[\x90Pa\nmV[`\0Ba\x07*\x83\x82a&+V[3`\0\x90\x81R` \x81\x90R`@\x90 T\x80\x82\x11a\x0B\xA1W`@Q\x7Fuf\x88\xFE\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\x01`@Q\x80\x91\x03\x90\xFD[3`\0\x90\x81R` \x81\x81R`@\x91\x82\x90 \x84\x90U\x81Q\x83\x81R\x90\x81\x01\x84\x90R\x7FW\xB0\x9A\xF8w\xDF\x90h\xFD`\xA6\x9D{!\xF5Wk\x8B8\x95X\x12\xD6\xAEJ\xC5)B\xF1\xE3\x8F\xB7\x91\x01`@Q\x80\x91\x03\x90\xA1PPV[``\x81`\0\x81g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x0C\rWa\x0C\ra8kV[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a\x0C@W\x81` \x01[``\x81R` \x01\x90`\x01\x90\x03\x90\x81a\x0C+W\x90P[P\x90P`\x004\x81[\x84\x81\x10\x15a\t\xCEW\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x85\x01\x81\x146\x89\x89\x84\x81\x81\x10a\x0C\x88Wa\x0C\x88a7\xFEV[\x90P` \x02\x81\x01\x90a\x0C\x9A\x91\x90a8-V[\x90P6`\0a\x0C\xAC` \x84\x01\x84a>\x11V[\x90\x92P\x90P\x80\x80\x15\x80a\x0C\xCDWPa\x0C\xC7`@\x85\x01\x85a?qV[\x90P\x81\x14\x15[\x15a\r\x04W`@Q\x7F\x94}Z\x84\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\x01`@Q\x80\x91\x03\x90\xFD[`\0[\x81\x81\x10\x15a\r\xE5Wa\r\xDD`@Q\x80`\xA0\x01`@R\x80\x87`\0\x015\x81R` \x01\x86\x86\x85\x81\x81\x10a\r9Wa\r9a7\xFEV[\x90P` \x02\x81\x01\x90a\rK\x91\x90a=\x9DV[a\rT\x90a=\xD1V[\x81R` \x01a\rf`@\x89\x01\x89a?qV[\x85\x81\x81\x10a\rvWa\rva7\xFEV[\x90P``\x02\x01\x806\x03\x81\x01\x90a\r\x8C\x91\x90a?\xD8V[\x81R` \x01a\r\xA1`\x80\x89\x01``\x8A\x01a5\xBDV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81R` \x01a\r\xCC`\xA0\x89\x01`\x80\x8A\x01a?\xF4V[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90Ra\x1C\xA5V[`\x01\x01a\r\x07V[P`\0a\x0E\x0E\x855a\r\xF7\x85\x87a>yV[a\x0E\x07`\x80\x89\x01``\x8A\x01a5\xBDV[\x8B\x8Aa\x1E/V[\x80Q\x90\x91Pa\x0E\x1D\x90\x89a;\xEDV[\x97P\x80` \x01Q\x8A\x88\x81Q\x81\x10a\x0E6Wa\x0E6a7\xFEV[` \x02` \x01\x01\x81\x90RP\x80` \x01QQ\x89\x01\x98PPPPPPPa\x0E[\x81`\x01\x01\x90V[\x90Pa\x0CHV[`@\x80Qa\x01@\x81\x01\x82R`\0\x80\x82R` \x82\x01\x81\x90R\x91\x81\x01\x82\x90R``\x80\x82\x01\x83\x90R`\x80\x82\x01\x83\x90R`\xA0\x82\x01\x83\x90R`\xC0\x82\x01\x83\x90R`\xE0\x82\x01\x83\x90Ra\x01\0\x82\x01\x92\x90\x92Ra\x01 \x81\x01\x91\x90\x91R`\0\x82\x81R`2` \x90\x81R`@\x91\x82\x90 \x82Qa\x01@\x81\x01\x84R\x81T\x81R`\x01\x82\x01T\x92\x81\x01\x92\x90\x92R`\x02\x81\x01Tg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x16\x94\x84\x01\x94\x90\x94Rh\x01\0\0\0\0\0\0\0\0\x81\x04\x84\x16``\x84\x01Rp\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04\x90\x92\x16`\x80\x82\x01R`\x03\x82\x01T`\xA0\x82\x01R`\x04\x82\x01Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x81\x16`\xC0\x83\x01R`\x05\x83\x01T\x90\x81\x16`\xE0\x83\x01Rt\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16\x15\x15a\x01\0\x82\x01R`\x06\x82\x01\x80T\x91\x92\x91a\x01 \x84\x01\x91\x90a\x0F\x9C\x90a@\x0FV[\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x92\x91\x90\x81\x81R` \x01\x82\x80Ta\x0F\xC8\x90a@\x0FV[\x80\x15a\x10\x15W\x80`\x1F\x10a\x0F\xEAWa\x01\0\x80\x83T\x04\x02\x83R\x91` \x01\x91a\x10\x15V[\x82\x01\x91\x90`\0R` `\0 \x90[\x81T\x81R\x90`\x01\x01\x90` \x01\x80\x83\x11a\x0F\xF8W\x82\x90\x03`\x1F\x16\x82\x01\x91[PPPPP\x81RPP\x90P\x91\x90PV[a\x10\xEDV[\x81`\0\x81Q\x81\x10a\x10\xA1Wa\x10\xA1a7\xFEV[` \x90\x81\x02\x91\x90\x91\x01\x01Ra\nc\x825\x82a\x10\xC2`\xE0\x86\x01`\xC0\x87\x01a5\xBDV[4`\x01a\x13\xE9V[`\0Ba\x07*3\x84\x83a\x1A\x18V[`\0B\x82\x82[\x81\x81\x10\x15a\x07$Wa\x11\x08\x86\x86\x83\x81\x81\x10a\x10\xFBWa\x10\xFBa7\xFEV[\x90P` \x02\x015\x84a&+V[`\x01\x01a\x10\xDEV[`\0a\x07[a&\xEDV[`@\x80Q`\x01\x80\x82R\x81\x83\x01\x90\x92R`\0\x91\x82\x91\x90\x81` \x01[`@\x80Q`\xC0\x81\x01\x82R`\0\x80\x82R` \x80\x83\x01\x82\x90R\x92\x82\x01\x81\x90R``\x80\x83\x01\x82\x90R`\x80\x83\x01R`\xA0\x82\x01R\x82R\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x92\x01\x91\x01\x81a\x114W\x90PP\x90Pa\x11\xA2` \x84\x01\x84a=\x9DV[a\x11\xAB\x90a=\xD1V[\x81`\0\x81Q\x81\x10a\x11\xBEWa\x11\xBEa7\xFEV[` \x90\x81\x02\x91\x90\x91\x01\x01Ra\x08=\x835\x8234`\x01a\x1E/V[`\x80\x81\x01Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x15\x80\x15\x90a\x12\x0CWPBg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81`\x80\x01Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x10[\x15a\x12CW`@Q\x7F\x1A\xB7\xDAk\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\x01`@Q\x80\x91\x03\x90\xFD[` \x80\x82\x01Q`@\x80\x84\x01Q``\x85\x01Q\x85Q\x84Q\x85\x87\x01Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x16`\0\x90\x81R\x97\x88\x90R\x94\x87 \x80T\x96\x97\x94\x96\x94\x95a\x137\x95\x7F\xB5\xD5V\xF0u\x87\xEC\x0F\x08\xCF8eE\xCCCb\xC7\x02\xA0\x01e\x0C X\0&\x15\xEE\\\x9D\x1Eu\x95\x94\x93\x92\x88a\x12\xBA\x83a@\xCAV[\x90\x91UP`\x80\x80\x8C\x01Q`@\x80Q` \x81\x01\x99\x90\x99Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x97\x16\x96\x88\x01\x96\x90\x96R``\x87\x01\x94\x90\x94R\x92\x85\x01\x91\x90\x91R`\xA0\x84\x01R`\xC0\x83\x01Rg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\xE0\x82\x01Ra\x01\0\x01[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 a(!V[\x90Pa\x13\xAD\x84``\x01Q\x82\x84` \x01Q\x85`@\x01Q\x86`\0\x01Q`@Q` \x01a\x13\x99\x93\x92\x91\x90\x92\x83R` \x83\x01\x91\x90\x91R`\xF8\x1B\x7F\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16`@\x82\x01R`A\x01\x90V[`@Q` \x81\x83\x03\x03\x81R\x90`@Ra(4V[a\x13\xE3W`@Q\x7F\x8B\xAAW\x9F\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\x01`@Q\x80\x91\x03\x90\xFD[PPPPV[`@Q\x7F\xA2\xEA|n\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\x81\x01\x86\x90R`\0\x90\x81\x90sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \x90c\xA2\xEA|n\x90`$\x01`\0`@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x14WW=`\0\x80>=`\0\xFD[PPPP`@Q=`\0\x82>`\x1F=\x90\x81\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x82\x01`@Ra\x14\x9D\x91\x90\x81\x01\x90aA\x02V[\x80Q\x90\x91Pa\x14\xD8W`@Q\x7F\xBF7\xB2\x0E\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\x01`@Q\x80\x91\x03\x90\xFD[\x85Q`\0\x81g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x14\xF5Wa\x14\xF5a8kV[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a\x15\x94W\x81` \x01[`@\x80Qa\x01@\x81\x01\x82R`\0\x80\x82R` \x80\x83\x01\x82\x90R\x92\x82\x01\x81\x90R``\x80\x83\x01\x82\x90R`\x80\x83\x01\x82\x90R`\xA0\x83\x01\x82\x90R`\xC0\x83\x01\x82\x90R`\xE0\x83\x01\x82\x90Ra\x01\0\x83\x01\x91\x90\x91Ra\x01 \x82\x01R\x82R\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x92\x01\x91\x01\x81a\x15\x13W\x90P[P\x90P`\0\x82g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x15\xB2Wa\x15\xB2a8kV[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a\x15\xDBW\x81` \x01` \x82\x02\x806\x837\x01\x90P[P\x90P`\0[\x83\x81\x10\x15a\x19\xFAW`\0\x8A\x82\x81Q\x81\x10a\x15\xFDWa\x15\xFDa7\xFEV[` \x90\x81\x02\x91\x90\x91\x01\x81\x01Q\x80Q`\0\x90\x81R`2\x90\x92R`@\x90\x91 \x80T\x91\x92P\x90a\x16VW`@Q\x7F\xC5r;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\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[\x8C\x81`\x01\x01T\x14a\x16\x93W`@Q\x7F\xBF7\xB2\x0E\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\x01`@Q\x80\x91\x03\x90\xFD[`\x05\x81\x01Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x8C\x81\x16\x91\x16\x14a\x16\xE9W`@Q\x7FL\xA8\x88g\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\x01`@Q\x80\x91\x03\x90\xFD[`\x05\x81\x01Tt\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16a\x17?W`@Q\x7F\x15{\xD4\xC3\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\x01`@Q\x80\x91\x03\x90\xFD[`\x02\x81\x01Tp\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x15a\x17\x99W`@Q\x7F\x90^q\x07\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\x01`@Q\x80\x91\x03\x90\xFD[B`\x02\x82\x01\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16p\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x94\x85\x16\x81\x02\x91\x82\x17\x93\x84\x90U`@\x80Qa\x01@\x81\x01\x82R\x87T\x81R`\x01\x88\x01T` \x82\x01R\x93\x86\x16\x92\x86\x16\x92\x90\x92\x17\x91\x83\x01\x91\x90\x91Rh\x01\0\0\0\0\0\0\0\0\x83\x04\x84\x16``\x83\x01R\x90\x91\x04\x90\x91\x16`\x80\x82\x01R`\x03\x82\x01T`\xA0\x82\x01R`\x04\x82\x01Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x81\x16`\xC0\x83\x01R`\x05\x83\x01T\x90\x81\x16`\xE0\x83\x01Rt\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16\x15\x15a\x01\0\x82\x01R`\x06\x82\x01\x80T\x83\x91a\x01 \x84\x01\x91a\x18\xA5\x90a@\x0FV[\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x92\x91\x90\x81\x81R` \x01\x82\x80Ta\x18\xD1\x90a@\x0FV[\x80\x15a\x19\x1EW\x80`\x1F\x10a\x18\xF3Wa\x01\0\x80\x83T\x04\x02\x83R\x91` \x01\x91a\x19\x1EV[\x82\x01\x91\x90`\0R` `\0 \x90[\x81T\x81R\x90`\x01\x01\x90` \x01\x80\x83\x11a\x19\x01W\x82\x90\x03`\x1F\x16\x82\x01\x91[PPPPP\x81RPP\x85\x84\x81Q\x81\x10a\x199Wa\x199a7\xFEV[` \x02` \x01\x01\x81\x90RP\x81` \x01Q\x84\x84\x81Q\x81\x10a\x19[Wa\x19[a7\xFEV[` \x02` \x01\x01\x81\x81RPP\x8C\x8Bs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x86\x85\x81Q\x81\x10a\x19\x91Wa\x19\x91a7\xFEV[` \x02` \x01\x01Q`\xC0\x01Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xF90\xA6\xE2R<\x9C\xC2\x98i\x18s\x08zt\x05P\xB8\xFC\x85\xA0h\x080AL\x14\x8E\xD9'\xF6\x15\x85`\0\x01Q`@Qa\x19\xE8\x91\x81R` \x01\x90V[`@Q\x80\x91\x03\x90\xA4PP`\x01\x01a\x15\xE1V[Pa\x1A\n\x84\x83\x83`\x01\x8B\x8Ba*\x03V[\x9A\x99PPPPPPPPPPV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x16`\0\x90\x81R`4` \x90\x81R`@\x80\x83 \x85\x84R\x91\x82\x90R\x90\x91 Tg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x15a\x1A\x8CW`@Q\x7F\xEC\x9Dn\xEB\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\x01`@Q\x80\x91\x03\x90\xFD[`\0\x83\x81R` \x82\x90R`@\x80\x82 \x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\x16g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x86\x16\x90\x81\x17\x90\x91U\x90Q\x90\x91\x85\x91s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x88\x16\x91\x7F\x92\xA1\xF7\xA4\x1A|XZ\x8B\t\xE2[\x19^\"[\x1DC$\x8D\xAC\xA4k\x0F\xAF\x9E\x07\x92wz\")\x91\xA4PPPPV[`@\x80Q` \x80\x82R\x81\x83\x01\x90\x92R``\x91`\0\x91\x90` \x82\x01\x81\x806\x837\x01\x90PP\x90P`\0\x80[` \x81\x10\x15a\x1B\xE2W`\0\x85\x82` \x81\x10a\x1B]Wa\x1B]a7\xFEV[\x1A`\xF8\x1B\x90P\x7F\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81\x16`\0\x03a\x1B\x93WPa\x1B\xE2V[\x80\x84\x84\x81Q\x81\x10a\x1B\xA6Wa\x1B\xA6a7\xFEV[` \x01\x01\x90~\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x19\x16\x90\x81`\0\x1A\x90SPP`\x01\x91\x82\x01\x91\x01a\x1B@V[P`\0\x81g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x1B\xFEWa\x1B\xFEa8kV[`@Q\x90\x80\x82R\x80`\x1F\x01`\x1F\x19\x16` \x01\x82\x01`@R\x80\x15a\x1C(W` \x82\x01\x81\x806\x837\x01\x90P[P\x90P`\0[\x82\x81\x10\x15a\x1C\x9CW\x83\x81\x81Q\x81\x10a\x1CHWa\x1CHa7\xFEV[` \x01\x01Q`\xF8\x1C`\xF8\x1B\x82\x82\x81Q\x81\x10a\x1CeWa\x1Cea7\xFEV[` \x01\x01\x90~\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x19\x16\x90\x81`\0\x1A\x90SP`\x01\x01a\x1C.V[P\x94\x93PPPPV[`\x80\x81\x01Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x15\x80\x15\x90a\x1C\xD9WPBg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81`\x80\x01Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x10[\x15a\x1D\x10W`@Q\x7F\x1A\xB7\xDAk\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\x01`@Q\x80\x91\x03\x90\xFD[` \x80\x82\x01Q`@\x80\x84\x01Q``\x80\x86\x01Q\x86Q\x85Q\x86\x88\x01Q\x86\x88\x01Q\x94\x88\x01Q`\x80\x89\x01Q\x80Q\x90\x8B\x01 `\xA0\x8A\x01Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x16`\0\x90\x81R\x9B\x8C\x90R\x98\x8B \x80T\x9A\x9B\x98\x9A\x98\x99a\x137\x99\x7F\xFE\xB2\x92Z\x02\xBA\xE3\xDA\xE4\x8DBJ\x047\xA2\xB6\xAC\x93\x9A\xA9#\r\xDCU\xA1\xA7o\x06]\x98\x80v\x99\x94\x93\x92\x8Ca\x1D\xA0\x83a@\xCAV[\x91\x90PU\x8E`\x80\x01Q`@Q` \x01a\x13\x1C\x9B\x9A\x99\x98\x97\x96\x95\x94\x93\x92\x91\x90\x9A\x8BRs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x99\x8A\x16` \x8C\x01R`@\x8B\x01\x98\x90\x98R\x95\x90\x97\x16``\x89\x01Rg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x93\x84\x16`\x80\x89\x01R\x91\x15\x15`\xA0\x88\x01R`\xC0\x87\x01R`\xE0\x86\x01Ra\x01\0\x85\x01\x93\x90\x93Ra\x01 \x84\x01R\x16a\x01@\x82\x01Ra\x01`\x01\x90V[`@\x80Q\x80\x82\x01\x90\x91R`\0\x81R``` \x82\x01R\x84Q`@\x80Q\x80\x82\x01\x90\x91R`\0\x81R``` \x82\x01R\x81g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x1EtWa\x1Eta8kV[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a\x1E\x9DW\x81` \x01` \x82\x02\x806\x837\x01\x90P[P` \x82\x01R`@Q\x7F\xA2\xEA|n\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\x81\x01\x89\x90R`\0\x90sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \x90c\xA2\xEA|n\x90`$\x01`\0`@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x1F\x0FW=`\0\x80>=`\0\xFD[PPPP`@Q=`\0\x82>`\x1F=\x90\x81\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x82\x01`@Ra\x1FU\x91\x90\x81\x01\x90aA\x02V[\x80Q\x90\x91Pa\x1F\x90W`@Q\x7F\xBF7\xB2\x0E\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\x01`@Q\x80\x91\x03\x90\xFD[`\0\x83g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x1F\xABWa\x1F\xABa8kV[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a JW\x81` \x01[`@\x80Qa\x01@\x81\x01\x82R`\0\x80\x82R` \x80\x83\x01\x82\x90R\x92\x82\x01\x81\x90R``\x80\x83\x01\x82\x90R`\x80\x83\x01\x82\x90R`\xA0\x83\x01\x82\x90R`\xC0\x83\x01\x82\x90R`\xE0\x83\x01\x82\x90Ra\x01\0\x83\x01\x91\x90\x91Ra\x01 \x82\x01R\x82R\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x92\x01\x91\x01\x81a\x1F\xC9W\x90P[P\x90P`\0\x84g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a hWa ha8kV[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a \x91W\x81` \x01` \x82\x02\x806\x837\x01\x90P[P\x90P`\0[\x85\x81\x10\x15a% W`\0\x8B\x82\x81Q\x81\x10a \xB3Wa \xB3a7\xFEV[` \x02` \x01\x01Q\x90P`\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81` \x01Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14\x15\x80\x15a \xFEWPBg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81` \x01Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x11\x15[\x15a!5W`@Q\x7F\x08\xE8\xB97\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\x01`@Q\x80\x91\x03\x90\xFD[\x84`@\x01Q\x15\x80\x15a!HWP\x80`@\x01Q[\x15a!\x7FW`@Q\x7F\x15{\xD4\xC3\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\x01`@Q\x80\x91\x03\x90\xFD[`\0`@Q\x80a\x01@\x01`@R\x80`\0\x80\x1B\x81R` \x01\x8F\x81R` \x01a!\xA3B\x90V[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81R` \x01\x83` \x01Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81R` \x01`\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81R` \x01\x83``\x01Q\x81R` \x01\x83`\0\x01Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81R` \x01\x8Ds\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81R` \x01\x83`@\x01Q\x15\x15\x81R` \x01\x83`\x80\x01Q\x81RP\x90P`\0\x80`\0\x90P[a\"E\x83\x82a-\xF4V[`\0\x81\x81R`2` R`@\x90 T\x90\x92P\x15a\"dW`\x01\x01a\";V[\x81\x83R`\0\x82\x81R`2` \x90\x81R`@\x91\x82\x90 \x85Q\x81U\x90\x85\x01Q`\x01\x82\x01U\x90\x84\x01Q`\x02\x82\x01\x80T``\x87\x01Q`\x80\x88\x01Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x81\x16p\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x02\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x92\x82\x16h\x01\0\0\0\0\0\0\0\0\x02\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x94\x16\x91\x90\x95\x16\x17\x91\x90\x91\x17\x16\x91\x90\x91\x17\x90U`\xA0\x84\x01Q`\x03\x82\x01U`\xC0\x84\x01Q`\x04\x82\x01\x80Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x92\x83\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x91\x16\x17\x90U`\xE0\x85\x01Q`\x05\x83\x01\x80Ta\x01\0\x88\x01Q\x15\x15t\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x02\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x91\x16\x92\x90\x93\x16\x91\x90\x91\x17\x91\x90\x91\x17\x90Ua\x01 \x84\x01Q\x84\x91\x90`\x06\x82\x01\x90a#\xE4\x90\x82aB(V[PPP``\x84\x01Q\x15a$;W``\x84\x01Q`\0\x90\x81R`2` R`@\x90 Ta$;W`@Q\x7F\xC5r;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\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[\x82\x87\x86\x81Q\x81\x10a$NWa$Na7\xFEV[` \x02` \x01\x01\x81\x90RP\x83`\xA0\x01Q\x86\x86\x81Q\x81\x10a$pWa$pa7\xFEV[` \x02` \x01\x01\x81\x81RPP\x81\x89` \x01Q\x86\x81Q\x81\x10a$\x93Wa$\x93a7\xFEV[` \x02` \x01\x01\x81\x81RPP\x8F\x8Es\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x85`\0\x01Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\x8B\xF4k\xF4\xCF\xD6t\xFAsZ=c\xEC\x1C\x9A\xD4\x15?\x03<)\x03A\xF3\xA5\x88\xB7V\x85\x14\x1B5\x85`@Qa%\x03\x91\x81R` \x01\x90V[`@Q\x80\x91\x03\x90\xA4PPPPa%\x19\x81`\x01\x01\x90V[\x90Pa \x97V[Pa%0\x83\x83\x83`\0\x8C\x8Ca*\x03V[\x84RP\x91\x99\x98PPPPPPPPPV[```\0\x82g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a%^Wa%^a8kV[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a%\x87W\x81` \x01` \x82\x02\x806\x837\x01\x90P[P\x84Q\x90\x91P`\0\x90\x81[\x81\x81\x10\x15a& W`\0\x87\x82\x81Q\x81\x10a%\xAEWa%\xAEa7\xFEV[` \x02` \x01\x01Q\x90P`\0\x81Q\x90P`\0[\x81\x81\x10\x15a&\x0CW\x82\x81\x81Q\x81\x10a%\xDBWa%\xDBa7\xFEV[` \x02` \x01\x01Q\x87\x87\x81Q\x81\x10a%\xF5Wa%\xF5a7\xFEV[` \x90\x81\x02\x91\x90\x91\x01\x01R`\x01\x95\x86\x01\x95\x01a%\xC1V[PPPa&\x19\x81`\x01\x01\x90V[\x90Pa%\x92V[P\x91\x95\x94PPPPPV[`\0\x82\x81R`3` R`@\x90 Tg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x15a&{W`@Q\x7F.&yF\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\x01`@Q\x80\x91\x03\x90\xFD[`\0\x82\x81R`3` R`@\x80\x82 \x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\x16g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x85\x16\x90\x81\x17\x90\x91U\x90Q\x90\x91\x84\x91\x7FZ\xAF\xCE\xEB\x1Cz\xD5\x8EJ\x84\x89\x8B\xDE\xE3|\x02\xC0\xFCF\xE7\xD2Nk`\xE8 \x94I\xF1\x83E\x9F\x91\x90\xA3PPV[`\x000s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x14\x80\x15a'SWP\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0F\x14[\x15a'}WP\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90V[P`@\x80Q\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0` \x80\x83\x01\x91\x90\x91R\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x82\x84\x01R\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0``\x83\x01RF`\x80\x83\x01R0`\xA0\x80\x84\x01\x91\x90\x91R\x83Q\x80\x84\x03\x90\x91\x01\x81R`\xC0\x90\x92\x01\x90\x92R\x80Q\x91\x01 \x90V[`\0a\x07*a(.a&\xEDV[\x83a.SV[`\0\x80`\0a(C\x85\x85a.\x95V[\x90\x92P\x90P`\0\x81`\x04\x81\x11\x15a(\\Wa(\\aCBV[\x14\x80\x15a(\x94WP\x85s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x82s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14[\x15a(\xA4W`\x01\x92PPPa)\xFCV[`\0\x80\x87s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\x16&\xBA~`\xE0\x1B\x88\x88`@Q`$\x01a(\xD9\x92\x91\x90aCqV[`@\x80Q\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x81\x84\x03\x01\x81R\x91\x81R` \x82\x01\x80Q{\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xFF\xFF\xFF\xFF\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\x90\x94\x16\x93\x90\x93\x17\x90\x92R\x90Qa)b\x91\x90aC\x92V[`\0`@Q\x80\x83\x03\x81\x85Z\xFA\x91PP=\x80`\0\x81\x14a)\x9DW`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=`\0` \x84\x01>a)\xA2V[``\x91P[P\x91P\x91P\x81\x80\x15a)\xB5WP\x80Q` \x14[\x80\x15a)\xF5WP\x80Q\x7F\x16&\xBA~\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\x90a)\xF3\x90\x83\x01` \x90\x81\x01\x90\x84\x01aC\xA4V[\x14[\x94PPPPP[\x93\x92PPPV[\x84Q`\0\x90`\x01\x81\x90\x03a*[Wa*S\x88\x88`\0\x81Q\x81\x10a*(Wa*(a7\xFEV[` \x02` \x01\x01Q\x88`\0\x81Q\x81\x10a*CWa*Ca7\xFEV[` \x02` \x01\x01Q\x88\x88\x88a.\xDAV[\x91PPa-\xEAV[` \x88\x01Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16a*\xFCW`\0[\x82\x81\x10\x15a*\xE1W\x87\x81\x81Q\x81\x10a*\x98Wa*\x98a7\xFEV[` \x02` \x01\x01Q`\0\x14a*\xD9W`@Q\x7F\x15t\xF9\xF3\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01\x01a*~V[P\x83\x15a*\xF1Wa*\xF1\x85a1\xF9V[`\0\x92PPPa-\xEAV[`\0\x80\x82s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xCEF\xE0F`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a+JW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a+n\x91\x90aC\xBDV[\x90P`\0[\x84\x81\x10\x15a,+W`\0\x8A\x82\x81Q\x81\x10a+\x8FWa+\x8Fa7\xFEV[` \x02` \x01\x01Q\x90P\x80`\0\x03a+\xA7WPa,#V[\x82a+\xDEW`@Q\x7F\x15t\xF9\xF3\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\x01`@Q\x80\x91\x03\x90\xFD[\x88\x81\x11\x15a,\x18W`@Q\x7F\x11\x01\x12\x94\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\x01`@Q\x80\x91\x03\x90\xFD[\x97\x88\x90\x03\x97\x92\x90\x92\x01\x91[`\x01\x01a+sV[P\x87\x15a-\x06W`@Q\x7F\x88\xE5\xB2\xD9\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\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x16\x90c\x88\xE5\xB2\xD9\x90\x84\x90a,\x88\x90\x8E\x90\x8E\x90`\x04\x01aC\xDAV[` `@Q\x80\x83\x03\x81\x85\x88Z\xF1\x15\x80\x15a,\xA6W=`\0\x80>=`\0\xFD[PPPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a,\xCB\x91\x90aC\xBDV[a-\x01W`@Q\x7F\xBF/:\x8B\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\x01`@Q\x80\x91\x03\x90\xFD[a-\xD5V[`@Q\x7F\x91\xDB\x0B~\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\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x16\x90c\x91\xDB\x0B~\x90\x84\x90a-\\\x90\x8E\x90\x8E\x90`\x04\x01aC\xDAV[` `@Q\x80\x83\x03\x81\x85\x88Z\xF1\x15\x80\x15a-zW=`\0\x80>=`\0\xFD[PPPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a-\x9F\x91\x90aC\xBDV[a-\xD5W`@Q\x7F\xE8\xBE\xE89\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\x01`@Q\x80\x91\x03\x90\xFD[\x85\x15a-\xE4Wa-\xE4\x87a1\xF9V[P\x92PPP[\x96\x95PPPPPPV[` \x80\x83\x01Q`\xC0\x84\x01Q`\xE0\x85\x01Q`@\x80\x87\x01Q``\x88\x01Qa\x01\0\x89\x01Q`\xA0\x8A\x01Qa\x01 \x8B\x01Q\x94Q`\0\x99a.5\x99\x98\x97\x96\x91\x8C\x91\x01aD\x93V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 \x90P\x92\x91PPV[`@Q\x7F\x19\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0` \x82\x01R`\"\x81\x01\x83\x90R`B\x81\x01\x82\x90R`\0\x90`b\x01a.5V[`\0\x80\x82Q`A\x03a.\xCBW` \x83\x01Q`@\x84\x01Q``\x85\x01Q`\0\x1Aa.\xBF\x87\x82\x85\x85a2\x0CV[\x94P\x94PPPPa.\xD3V[P`\0\x90P`\x02[\x92P\x92\x90PV[` \x86\x01Q`\0\x90s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16a/NW\x85\x15a/5W`@Q\x7F\x15t\xF9\xF3\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\x01`@Q\x80\x91\x03\x90\xFD[\x82\x15a/DWa/D\x84a1\xF9V[`\0\x91PPa-\xEAV[\x85\x15a09W\x80s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xCEF\xE0F`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a/\x9FW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a/\xC3\x91\x90aC\xBDV[a/\xF9W`@Q\x7F\x15t\xF9\xF3\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\x01`@Q\x80\x91\x03\x90\xFD[\x83\x86\x11\x15a03W`@Q\x7F\x11\x01\x12\x94\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\x01`@Q\x80\x91\x03\x90\xFD[\x85\x84\x03\x93P[\x84\x15a1\x11W`@Q\x7F\xE4\x96\x17\xE1\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\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16\x90c\xE4\x96\x17\xE1\x90\x88\x90a0\x93\x90\x8B\x90`\x04\x01a7qV[` `@Q\x80\x83\x03\x81\x85\x88Z\xF1\x15\x80\x15a0\xB1W=`\0\x80>=`\0\xFD[PPPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a0\xD6\x91\x90aC\xBDV[a1\x0CW`@Q\x7F\xCC\xF3\xBB'\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\x01`@Q\x80\x91\x03\x90\xFD[a1\xDEV[`@Q\x7F\xE6\x0C5\x05\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\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16\x90c\xE6\x0C5\x05\x90\x88\x90a1e\x90\x8B\x90`\x04\x01a7qV[` `@Q\x80\x83\x03\x81\x85\x88Z\xF1\x15\x80\x15a1\x83W=`\0\x80>=`\0\xFD[PPPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a1\xA8\x91\x90aC\xBDV[a1\xDEW`@Q\x7F\xBD\x8B\xA8M\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\x01`@Q\x80\x91\x03\x90\xFD[\x82\x15a1\xEDWa1\xED\x84a1\xF9V[P\x93\x96\x95PPPPPPV[\x80\x15a2\tWa2\t3\x82a3$V[PV[`\0\x80\x7F\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF]WnsW\xA4P\x1D\xDF\xE9/Fh\x1B \xA0\x83\x11\x15a2CWP`\0\x90P`\x03a3\x1BV[\x84`\xFF\x16`\x1B\x14\x15\x80\x15a2[WP\x84`\xFF\x16`\x1C\x14\x15[\x15a2lWP`\0\x90P`\x04a3\x1BV[`@\x80Q`\0\x80\x82R` \x82\x01\x80\x84R\x89\x90R`\xFF\x88\x16\x92\x82\x01\x92\x90\x92R``\x81\x01\x86\x90R`\x80\x81\x01\x85\x90R`\x01\x90`\xA0\x01` `@Q` \x81\x03\x90\x80\x84\x03\x90\x85Z\xFA\x15\x80\x15a2\xC0W=`\0\x80>=`\0\xFD[PP`@Q\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x01Q\x91PPs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16a3\x14W`\0`\x01\x92P\x92PPa3\x1BV[\x91P`\0\x90P[\x94P\x94\x92PPPV[\x80G\x10\x15a3\x93W`@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\x82\x01R`\x1D`$\x82\x01R\x7FAddress: insufficient balance\0\0\0`D\x82\x01R`d\x01[`@Q\x80\x91\x03\x90\xFD[`\0\x82s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x82`@Q`\0`@Q\x80\x83\x03\x81\x85\x87Z\xF1\x92PPP=\x80`\0\x81\x14a3\xEDW`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=`\0` \x84\x01>a3\xF2V[``\x91P[PP\x90P\x80a\ncW`@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\x82\x01R`:`$\x82\x01R\x7FAddress: unable to send value, r`D\x82\x01R\x7Fecipient may have reverted\0\0\0\0\0\0`d\x82\x01R`\x84\x01a3\x8AV[`\0\x80\x83`\x1F\x84\x01\x12a4\x95W`\0\x80\xFD[P\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a4\xADW`\0\x80\xFD[` \x83\x01\x91P\x83` \x82`\x05\x1B\x85\x01\x01\x11\x15a.\xD3W`\0\x80\xFD[`\0\x80` \x83\x85\x03\x12\x15a4\xDBW`\0\x80\xFD[\x825g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a4\xF2W`\0\x80\xFD[a4\xFE\x85\x82\x86\x01a4\x83V[\x90\x96\x90\x95P\x93PPPPV[`\0[\x83\x81\x10\x15a5%W\x81\x81\x01Q\x83\x82\x01R` \x01a5\rV[PP`\0\x91\x01RV[`\0\x81Q\x80\x84Ra5F\x81` \x86\x01` \x86\x01a5\nV[`\x1F\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x92\x90\x92\x01` \x01\x92\x91PPV[` \x81R`\0a)\xFC` \x83\x01\x84a5.V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a2\tW`\0\x80\xFD[\x805a5\xB8\x81a5\x8BV[\x91\x90PV[`\0` \x82\x84\x03\x12\x15a5\xCFW`\0\x80\xFD[\x815a)\xFC\x81a5\x8BV[`\0` \x82\x84\x03\x12\x15a5\xECW`\0\x80\xFD[\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a6\x03W`\0\x80\xFD[\x82\x01`\xE0\x81\x85\x03\x12\x15a)\xFCW`\0\x80\xFD[` \x80\x82R\x82Q\x82\x82\x01\x81\x90R`\0\x91\x90\x84\x82\x01\x90`@\x85\x01\x90\x84[\x81\x81\x10\x15a6MW\x83Q\x83R\x92\x84\x01\x92\x91\x84\x01\x91`\x01\x01a61V[P\x90\x96\x95PPPPPPV[`\0``\x82\x84\x03\x12\x15a6kW`\0\x80\xFD[P\x91\x90PV[`\0` \x82\x84\x03\x12\x15a6\x83W`\0\x80\xFD[P5\x91\x90PV[`\0a\x01@\x82Q\x84R` \x83\x01Q` \x85\x01R`@\x83\x01Qa6\xB8`@\x86\x01\x82g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90RV[P``\x83\x01Qa6\xD4``\x86\x01\x82g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90RV[P`\x80\x83\x01Qa6\xF0`\x80\x86\x01\x82g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90RV[P`\xA0\x83\x01Q`\xA0\x85\x01R`\xC0\x83\x01Qa7\"`\xC0\x86\x01\x82s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90RV[P`\xE0\x83\x01Qa7J`\xE0\x86\x01\x82s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90RV[Pa\x01\0\x83\x81\x01Q\x15\x15\x90\x85\x01Ra\x01 \x80\x84\x01Q\x81\x86\x01\x83\x90Ra-\xEA\x83\x87\x01\x82a5.V[` \x81R`\0a)\xFC` \x83\x01\x84a6\x8AV[`\0a\x01\0\x82\x84\x03\x12\x15a6kW`\0\x80\xFD[`\0\x80`@\x83\x85\x03\x12\x15a7\xAAW`\0\x80\xFD[\x825a7\xB5\x81a5\x8BV[\x94` \x93\x90\x93\x015\x93PPPV[`\0` \x82\x84\x03\x12\x15a7\xD5W`\0\x80\xFD[\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a7\xECW`\0\x80\xFD[\x82\x01`@\x81\x85\x03\x12\x15a)\xFCW`\0\x80\xFD[\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`2`\x04R`$`\0\xFD[`\0\x825\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFFa\x836\x03\x01\x81\x12a8aW`\0\x80\xFD[\x91\x90\x91\x01\x92\x91PPV[\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[`@Q`\xA0\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a8\xBDWa8\xBDa8kV[`@R\x90V[`@Q`\xC0\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a8\xBDWa8\xBDa8kV[`@Q`\x80\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a8\xBDWa8\xBDa8kV[`@Q`\x1F\x82\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a9PWa9Pa8kV[`@R\x91\x90PV[`\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x15a9rWa9ra8kV[P`\x05\x1B` \x01\x90V[`\0`@\x82\x84\x03\x12\x15a9\x8EW`\0\x80\xFD[`@Q`@\x81\x01\x81\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17\x15a9\xB1Wa9\xB1a8kV[`@R\x825\x81R` \x92\x83\x015\x92\x81\x01\x92\x90\x92RP\x91\x90PV[`\0``\x82\x84\x03\x12\x15a9\xDDW`\0\x80\xFD[`@Q``\x81\x01\x81\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17\x15a:\0Wa:\0a8kV[`@R\x90P\x80\x825`\xFF\x81\x16\x81\x14a:\x17W`\0\x80\xFD[\x80\x82RP` \x83\x015` \x82\x01R`@\x83\x015`@\x82\x01RP\x92\x91PPV[`\0\x82`\x1F\x83\x01\x12a:GW`\0\x80\xFD[\x815` a:\\a:W\x83a9XV[a9\tV[\x82\x81R``\x92\x83\x02\x85\x01\x82\x01\x92\x82\x82\x01\x91\x90\x87\x85\x11\x15a:{W`\0\x80\xFD[\x83\x87\x01[\x85\x81\x10\x15a:\x9EWa:\x91\x89\x82a9\xCBV[\x84R\x92\x84\x01\x92\x81\x01a:\x7FV[P\x90\x97\x96PPPPPPPV[\x805g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a5\xB8W`\0\x80\xFD[`\0`\xA0\x826\x03\x12\x15a:\xD5W`\0\x80\xFD[a:\xDDa8\x9AV[\x825\x81R` \x80\x84\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a:\xFDW`\0\x80\xFD[\x90\x85\x01\x906`\x1F\x83\x01\x12a;\x10W`\0\x80\xFD[\x815a;\x1Ea:W\x82a9XV[\x81\x81R`\x06\x91\x90\x91\x1B\x83\x01\x84\x01\x90\x84\x81\x01\x906\x83\x11\x15a;=W`\0\x80\xFD[\x93\x85\x01\x93[\x82\x85\x10\x15a;fWa;T6\x86a9|V[\x82R\x85\x82\x01\x91P`@\x85\x01\x94Pa;BV[\x80\x86\x88\x01RPPP`@\x86\x015\x92P\x80\x83\x11\x15a;\x82W`\0\x80\xFD[PPa;\x906\x82\x86\x01a:6V[`@\x83\x01RPa;\xA2``\x84\x01a5\xADV[``\x82\x01Ra;\xB3`\x80\x84\x01a:\xABV[`\x80\x82\x01R\x92\x91PPV[\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`\x11`\x04R`$`\0\xFD[\x81\x81\x03\x81\x81\x11\x15a\x07*Wa\x07*a;\xBEV[\x80\x15\x15\x81\x14a2\tW`\0\x80\xFD[`\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x15a<(Wa<(a8kV[P`\x1F\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16` \x01\x90V[`\0`\xC0\x82\x84\x03\x12\x15aFW`\0\x80\xFD[\x83\x01\x805\x91Pg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x15a>aW`\0\x80\xFD[` \x01\x91P`\x05\x81\x90\x1B6\x03\x82\x13\x15a.\xD3W`\0\x80\xFD[`\0a>\x87a:W\x84a9XV[\x80\x84\x82R` \x80\x83\x01\x92P\x85`\x05\x1B\x85\x016\x81\x11\x15a>\xA5W`\0\x80\xFD[\x85[\x81\x81\x10\x15a>\xE1W\x805g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a>\xC7W`\0\x80\x81\xFD[a>\xD36\x82\x8A\x01a\xA7V[P\x91\x96\x95PPPPPPV[`\0`@\x82\x84\x03\x12\x15a>\xFFW`\0\x80\xFD[a)\xFC\x83\x83a9|V[`\0\x80\x835\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE1\x846\x03\x01\x81\x12a?>W`\0\x80\xFD[\x83\x01\x805\x91Pg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x15a?YW`\0\x80\xFD[` \x01\x91P`\x06\x81\x90\x1B6\x03\x82\x13\x15a.\xD3W`\0\x80\xFD[`\0\x80\x835\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE1\x846\x03\x01\x81\x12a?\xA6W`\0\x80\xFD[\x83\x01\x805\x91Pg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x15a?\xC1W`\0\x80\xFD[` \x01\x91P``\x81\x026\x03\x82\x13\x15a.\xD3W`\0\x80\xFD[`\0``\x82\x84\x03\x12\x15a?\xEAW`\0\x80\xFD[a)\xFC\x83\x83a9\xCBV[`\0` \x82\x84\x03\x12\x15a@\x06W`\0\x80\xFD[a)\xFC\x82a:\xABV[`\x01\x81\x81\x1C\x90\x82\x16\x80a@#W`\x7F\x82\x16\x91P[` \x82\x10\x81\x03a6kW\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`\"`\x04R`$`\0\xFD[`\0a\x01\0\x82\x84\x03\x12\x15a@oW`\0\x80\xFD[a@wa8\x9AV[\x825\x81Ra@\x88\x84` \x85\x01a9|V[` \x82\x01Ra@\x9A\x84``\x85\x01a9\xCBV[`@\x82\x01R`\xC0\x83\x015a@\xAD\x81a5\x8BV[``\x82\x01Ra@\xBE`\xE0\x84\x01a:\xABV[`\x80\x82\x01R\x93\x92PPPV[`\0\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x03a@\xFBWa@\xFBa;\xBEV[P`\x01\x01\x90V[`\0` \x80\x83\x85\x03\x12\x15aA\x15W`\0\x80\xFD[\x82Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15aA-W`\0\x80\xFD[\x90\x84\x01\x90`\x80\x82\x87\x03\x12\x15aAAW`\0\x80\xFD[aAIa8\xE6V[\x82Q\x81R\x83\x83\x01QaAZ\x81a5\x8BV[\x81\x85\x01R`@\x83\x01QaAl\x81a<\0V[`@\x82\x01R``\x83\x01Q\x82\x81\x11\x15aA\x83W`\0\x80\xFD[\x80\x84\x01\x93PP\x86`\x1F\x84\x01\x12aA\x98W`\0\x80\xFD[\x82Q\x91PaA\xA8a:W\x83a<\x0EV[\x82\x81R\x87\x85\x84\x86\x01\x01\x11\x15aA\xBCW`\0\x80\xFD[aA\xCB\x83\x86\x83\x01\x87\x87\x01a5\nV[``\x82\x01R\x96\x95PPPPPPV[`\x1F\x82\x11\x15a\ncW`\0\x81\x81R` \x81 `\x1F\x85\x01`\x05\x1C\x81\x01` \x86\x10\x15aB\x01WP\x80[`\x1F\x85\x01`\x05\x1C\x82\x01\x91P[\x81\x81\x10\x15aB W\x82\x81U`\x01\x01aB\rV[PPPPPPV[\x81Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15aBBWaBBa8kV[aBV\x81aBP\x84Ta@\x0FV[\x84aA\xDAV[` \x80`\x1F\x83\x11`\x01\x81\x14aB\xA9W`\0\x84\x15aBsWP\x85\x83\x01Q[\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF`\x03\x86\x90\x1B\x1C\x19\x16`\x01\x85\x90\x1B\x17\x85UaB V[`\0\x85\x81R` \x81 \x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x86\x16\x91[\x82\x81\x10\x15aB\xF6W\x88\x86\x01Q\x82U\x94\x84\x01\x94`\x01\x90\x91\x01\x90\x84\x01aB\xD7V[P\x85\x82\x10\x15aC2W\x87\x85\x01Q\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF`\x03\x88\x90\x1B`\xF8\x16\x1C\x19\x16\x81U[PPPPP`\x01\x90\x81\x1B\x01\x90UPV[\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`!`\x04R`$`\0\xFD[\x82\x81R`@` \x82\x01R`\0aC\x8A`@\x83\x01\x84a5.V[\x94\x93PPPPV[`\0\x82Qa8a\x81\x84` \x87\x01a5\nV[`\0` \x82\x84\x03\x12\x15aC\xB6W`\0\x80\xFD[PQ\x91\x90PV[`\0` \x82\x84\x03\x12\x15aC\xCFW`\0\x80\xFD[\x81Qa)\xFC\x81a<\0V[`\0`@\x82\x01`@\x83R\x80\x85Q\x80\x83R``\x85\x01\x91P``\x81`\x05\x1B\x86\x01\x01\x92P` \x80\x88\x01`\0[\x83\x81\x10\x15aDOW\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xA0\x88\x87\x03\x01\x85RaD=\x86\x83Qa6\x8AV[\x95P\x93\x82\x01\x93\x90\x82\x01\x90`\x01\x01aD\x03V[PP\x85\x84\x03\x81\x87\x01R\x86Q\x80\x85R\x87\x82\x01\x94\x82\x01\x93P\x91P`\0[\x82\x81\x10\x15aD\x86W\x84Q\x84R\x93\x81\x01\x93\x92\x81\x01\x92`\x01\x01aDjV[P\x91\x97\x96PPPPPPPV[\x89\x81R`\0\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\x80\x8B``\x1B\x16` \x84\x01R\x80\x8A``\x1B\x16`4\x84\x01RP\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x80\x89`\xC0\x1B\x16`H\x84\x01R\x80\x88`\xC0\x1B\x16`P\x84\x01RP\x85\x15\x15`\xF8\x1B`X\x83\x01R\x84`Y\x83\x01R\x83QaE,\x81`y\x85\x01` \x88\x01a5\nV[\x80\x83\x01\x90P\x7F\xFF\xFF\xFF\xFF\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\x84`\xE0\x1B\x16`y\x82\x01R`}\x81\x01\x91PP\x9A\x99PPPPPPPPPPV\xFE\xA1dsolcC\0\x08\x13\0\n", + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**```solidity +struct Attestation { bytes32 uid; bytes32 schema; uint64 time; uint64 expirationTime; uint64 revocationTime; bytes32 refUID; address recipient; address attester; bool revocable; bytes data; } +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct Attestation { + #[allow(missing_docs)] + pub uid: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub schema: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub time: u64, + #[allow(missing_docs)] + pub expirationTime: u64, + #[allow(missing_docs)] + pub revocationTime: u64, + #[allow(missing_docs)] + pub refUID: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub recipient: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub attester: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub revocable: bool, + #[allow(missing_docs)] + pub data: alloy::sol_types::private::Bytes, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Uint<64>, + alloy::sol_types::sol_data::Uint<64>, + alloy::sol_types::sol_data::Uint<64>, + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Bool, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::FixedBytes<32>, + alloy::sol_types::private::FixedBytes<32>, + u64, + u64, + u64, + alloy::sol_types::private::FixedBytes<32>, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + bool, + alloy::sol_types::private::Bytes, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: Attestation) -> Self { + ( + value.uid, + value.schema, + value.time, + value.expirationTime, + value.revocationTime, + value.refUID, + value.recipient, + value.attester, + value.revocable, + value.data, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for Attestation { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + uid: tuple.0, + schema: tuple.1, + time: tuple.2, + expirationTime: tuple.3, + revocationTime: tuple.4, + refUID: tuple.5, + recipient: tuple.6, + attester: tuple.7, + revocable: tuple.8, + data: tuple.9, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolValue for Attestation { + type SolType = Self; + } + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for Attestation { + #[inline] + fn stv_to_tokens(&self) -> ::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.uid), + as alloy_sol_types::SolType>::tokenize(&self.schema), + as alloy_sol_types::SolType>::tokenize(&self.time), + as alloy_sol_types::SolType>::tokenize(&self.expirationTime), + as alloy_sol_types::SolType>::tokenize(&self.revocationTime), + as alloy_sol_types::SolType>::tokenize(&self.refUID), + ::tokenize( + &self.recipient, + ), + ::tokenize( + &self.attester, + ), + ::tokenize( + &self.revocable, + ), + ::tokenize( + &self.data, + ), + ) + } + #[inline] + fn stv_abi_encoded_size(&self) -> usize { + if let Some(size) = ::ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encoded_size(&tuple) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + ::eip712_hash_struct(self) + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + if let Some(size) = ::PACKED_ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for Attestation { + type RustType = Self; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = ::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + as alloy_sol_types::SolType>::valid_token(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + let tuple = as alloy_sol_types::SolType>::detokenize(token); + >>::from(tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolStruct for Attestation { + const NAME: &'static str = "Attestation"; + #[inline] + fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> { + alloy_sol_types::private::Cow::Borrowed( + "Attestation(bytes32 uid,bytes32 schema,uint64 time,uint64 expirationTime,uint64 revocationTime,bytes32 refUID,address recipient,address attester,bool revocable,bytes data)", + ) + } + #[inline] + fn eip712_components() -> alloy_sol_types::private::Vec< + alloy_sol_types::private::Cow<'static, str>, + > { + alloy_sol_types::private::Vec::new() + } + #[inline] + fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> { + ::eip712_root_type() + } + #[inline] + fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec { + [ + as alloy_sol_types::SolType>::eip712_data_word(&self.uid) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.schema) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.time) + .0, + as alloy_sol_types::SolType>::eip712_data_word( + &self.expirationTime, + ) + .0, + as alloy_sol_types::SolType>::eip712_data_word( + &self.revocationTime, + ) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.refUID) + .0, + ::eip712_data_word( + &self.recipient, + ) + .0, + ::eip712_data_word( + &self.attester, + ) + .0, + ::eip712_data_word( + &self.revocable, + ) + .0, + ::eip712_data_word( + &self.data, + ) + .0, + ] + .concat() + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for Attestation { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + 0usize + + as alloy_sol_types::EventTopic>::topic_preimage_length(&rust.uid) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.schema, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length(&rust.time) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.expirationTime, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.revocationTime, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.refUID, + ) + + ::topic_preimage_length( + &rust.recipient, + ) + + ::topic_preimage_length( + &rust.attester, + ) + + ::topic_preimage_length( + &rust.revocable, + ) + + ::topic_preimage_length( + &rust.data, + ) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + out.reserve( + ::topic_preimage_length(rust), + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage(&rust.uid, out); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.schema, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.time, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.expirationTime, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.revocationTime, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.refUID, + out, + ); + ::encode_topic_preimage( + &rust.recipient, + out, + ); + ::encode_topic_preimage( + &rust.attester, + out, + ); + ::encode_topic_preimage( + &rust.revocable, + out, + ); + ::encode_topic_preimage( + &rust.data, + out, + ); + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + let mut out = alloy_sol_types::private::Vec::new(); + ::encode_topic_preimage( + rust, + &mut out, + ); + alloy_sol_types::abi::token::WordToken( + alloy_sol_types::private::keccak256(out), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**```solidity +struct AttestationRequest { bytes32 schema; AttestationRequestData data; } +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct AttestationRequest { + #[allow(missing_docs)] + pub schema: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub data: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::FixedBytes<32>, + AttestationRequestData, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::FixedBytes<32>, + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: AttestationRequest) -> Self { + (value.schema, value.data) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for AttestationRequest { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + schema: tuple.0, + data: tuple.1, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolValue for AttestationRequest { + type SolType = Self; + } + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for AttestationRequest { + #[inline] + fn stv_to_tokens(&self) -> ::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.schema), + ::tokenize( + &self.data, + ), + ) + } + #[inline] + fn stv_abi_encoded_size(&self) -> usize { + if let Some(size) = ::ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encoded_size(&tuple) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + ::eip712_hash_struct(self) + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + if let Some(size) = ::PACKED_ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for AttestationRequest { + type RustType = Self; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = ::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + as alloy_sol_types::SolType>::valid_token(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + let tuple = as alloy_sol_types::SolType>::detokenize(token); + >>::from(tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolStruct for AttestationRequest { + const NAME: &'static str = "AttestationRequest"; + #[inline] + fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> { + alloy_sol_types::private::Cow::Borrowed( + "AttestationRequest(bytes32 schema,AttestationRequestData data)", + ) + } + #[inline] + fn eip712_components() -> alloy_sol_types::private::Vec< + alloy_sol_types::private::Cow<'static, str>, + > { + let mut components = alloy_sol_types::private::Vec::with_capacity(1); + components + .push( + ::eip712_root_type(), + ); + components + .extend( + ::eip712_components(), + ); + components + } + #[inline] + fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec { + [ + as alloy_sol_types::SolType>::eip712_data_word(&self.schema) + .0, + ::eip712_data_word( + &self.data, + ) + .0, + ] + .concat() + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for AttestationRequest { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + 0usize + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.schema, + ) + + ::topic_preimage_length( + &rust.data, + ) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + out.reserve( + ::topic_preimage_length(rust), + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.schema, + out, + ); + ::encode_topic_preimage( + &rust.data, + out, + ); + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + let mut out = alloy_sol_types::private::Vec::new(); + ::encode_topic_preimage( + rust, + &mut out, + ); + alloy_sol_types::abi::token::WordToken( + alloy_sol_types::private::keccak256(out), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**```solidity +struct AttestationRequestData { address recipient; uint64 expirationTime; bool revocable; bytes32 refUID; bytes data; uint256 value; } +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct AttestationRequestData { + #[allow(missing_docs)] + pub recipient: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub expirationTime: u64, + #[allow(missing_docs)] + pub revocable: bool, + #[allow(missing_docs)] + pub refUID: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub data: alloy::sol_types::private::Bytes, + #[allow(missing_docs)] + pub value: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<64>, + alloy::sol_types::sol_data::Bool, + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Bytes, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + u64, + bool, + alloy::sol_types::private::FixedBytes<32>, + alloy::sol_types::private::Bytes, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: AttestationRequestData) -> Self { + ( + value.recipient, + value.expirationTime, + value.revocable, + value.refUID, + value.data, + value.value, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for AttestationRequestData { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + recipient: tuple.0, + expirationTime: tuple.1, + revocable: tuple.2, + refUID: tuple.3, + data: tuple.4, + value: tuple.5, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolValue for AttestationRequestData { + type SolType = Self; + } + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for AttestationRequestData { + #[inline] + fn stv_to_tokens(&self) -> ::Token<'_> { + ( + ::tokenize( + &self.recipient, + ), + as alloy_sol_types::SolType>::tokenize(&self.expirationTime), + ::tokenize( + &self.revocable, + ), + as alloy_sol_types::SolType>::tokenize(&self.refUID), + ::tokenize( + &self.data, + ), + as alloy_sol_types::SolType>::tokenize(&self.value), + ) + } + #[inline] + fn stv_abi_encoded_size(&self) -> usize { + if let Some(size) = ::ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encoded_size(&tuple) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + ::eip712_hash_struct(self) + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + if let Some(size) = ::PACKED_ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for AttestationRequestData { + type RustType = Self; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = ::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + as alloy_sol_types::SolType>::valid_token(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + let tuple = as alloy_sol_types::SolType>::detokenize(token); + >>::from(tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolStruct for AttestationRequestData { + const NAME: &'static str = "AttestationRequestData"; + #[inline] + fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> { + alloy_sol_types::private::Cow::Borrowed( + "AttestationRequestData(address recipient,uint64 expirationTime,bool revocable,bytes32 refUID,bytes data,uint256 value)", + ) + } + #[inline] + fn eip712_components() -> alloy_sol_types::private::Vec< + alloy_sol_types::private::Cow<'static, str>, + > { + alloy_sol_types::private::Vec::new() + } + #[inline] + fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> { + ::eip712_root_type() + } + #[inline] + fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec { + [ + ::eip712_data_word( + &self.recipient, + ) + .0, + as alloy_sol_types::SolType>::eip712_data_word( + &self.expirationTime, + ) + .0, + ::eip712_data_word( + &self.revocable, + ) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.refUID) + .0, + ::eip712_data_word( + &self.data, + ) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.value) + .0, + ] + .concat() + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for AttestationRequestData { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + 0usize + + ::topic_preimage_length( + &rust.recipient, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.expirationTime, + ) + + ::topic_preimage_length( + &rust.revocable, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.refUID, + ) + + ::topic_preimage_length( + &rust.data, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length(&rust.value) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + out.reserve( + ::topic_preimage_length(rust), + ); + ::encode_topic_preimage( + &rust.recipient, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.expirationTime, + out, + ); + ::encode_topic_preimage( + &rust.revocable, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.refUID, + out, + ); + ::encode_topic_preimage( + &rust.data, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.value, + out, + ); + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + let mut out = alloy_sol_types::private::Vec::new(); + ::encode_topic_preimage( + rust, + &mut out, + ); + alloy_sol_types::abi::token::WordToken( + alloy_sol_types::private::keccak256(out), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**```solidity +struct DelegatedAttestationRequest { bytes32 schema; AttestationRequestData data; Signature signature; address attester; uint64 deadline; } +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct DelegatedAttestationRequest { + #[allow(missing_docs)] + pub schema: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub data: ::RustType, + #[allow(missing_docs)] + pub signature: ::RustType, + #[allow(missing_docs)] + pub attester: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub deadline: u64, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::FixedBytes<32>, + AttestationRequestData, + Signature, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<64>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::FixedBytes<32>, + ::RustType, + ::RustType, + alloy::sol_types::private::Address, + u64, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: DelegatedAttestationRequest) -> Self { + ( + value.schema, + value.data, + value.signature, + value.attester, + value.deadline, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for DelegatedAttestationRequest { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + schema: tuple.0, + data: tuple.1, + signature: tuple.2, + attester: tuple.3, + deadline: tuple.4, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolValue for DelegatedAttestationRequest { + type SolType = Self; + } + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue + for DelegatedAttestationRequest { + #[inline] + fn stv_to_tokens(&self) -> ::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.schema), + ::tokenize( + &self.data, + ), + ::tokenize(&self.signature), + ::tokenize( + &self.attester, + ), + as alloy_sol_types::SolType>::tokenize(&self.deadline), + ) + } + #[inline] + fn stv_abi_encoded_size(&self) -> usize { + if let Some(size) = ::ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encoded_size(&tuple) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + ::eip712_hash_struct(self) + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + if let Some(size) = ::PACKED_ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for DelegatedAttestationRequest { + type RustType = Self; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = ::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + as alloy_sol_types::SolType>::valid_token(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + let tuple = as alloy_sol_types::SolType>::detokenize(token); + >>::from(tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolStruct for DelegatedAttestationRequest { + const NAME: &'static str = "DelegatedAttestationRequest"; + #[inline] + fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> { + alloy_sol_types::private::Cow::Borrowed( + "DelegatedAttestationRequest(bytes32 schema,AttestationRequestData data,Signature signature,address attester,uint64 deadline)", + ) + } + #[inline] + fn eip712_components() -> alloy_sol_types::private::Vec< + alloy_sol_types::private::Cow<'static, str>, + > { + let mut components = alloy_sol_types::private::Vec::with_capacity(2); + components + .push( + ::eip712_root_type(), + ); + components + .extend( + ::eip712_components(), + ); + components + .push(::eip712_root_type()); + components + .extend( + ::eip712_components(), + ); + components + } + #[inline] + fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec { + [ + as alloy_sol_types::SolType>::eip712_data_word(&self.schema) + .0, + ::eip712_data_word( + &self.data, + ) + .0, + ::eip712_data_word( + &self.signature, + ) + .0, + ::eip712_data_word( + &self.attester, + ) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.deadline) + .0, + ] + .concat() + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for DelegatedAttestationRequest { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + 0usize + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.schema, + ) + + ::topic_preimage_length( + &rust.data, + ) + + ::topic_preimage_length( + &rust.signature, + ) + + ::topic_preimage_length( + &rust.attester, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.deadline, + ) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + out.reserve( + ::topic_preimage_length(rust), + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.schema, + out, + ); + ::encode_topic_preimage( + &rust.data, + out, + ); + ::encode_topic_preimage( + &rust.signature, + out, + ); + ::encode_topic_preimage( + &rust.attester, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.deadline, + out, + ); + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + let mut out = alloy_sol_types::private::Vec::new(); + ::encode_topic_preimage( + rust, + &mut out, + ); + alloy_sol_types::abi::token::WordToken( + alloy_sol_types::private::keccak256(out), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**```solidity +struct DelegatedRevocationRequest { bytes32 schema; RevocationRequestData data; Signature signature; address revoker; uint64 deadline; } +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct DelegatedRevocationRequest { + #[allow(missing_docs)] + pub schema: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub data: ::RustType, + #[allow(missing_docs)] + pub signature: ::RustType, + #[allow(missing_docs)] + pub revoker: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub deadline: u64, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::FixedBytes<32>, + RevocationRequestData, + Signature, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<64>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::FixedBytes<32>, + ::RustType, + ::RustType, + alloy::sol_types::private::Address, + u64, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: DelegatedRevocationRequest) -> Self { + ( + value.schema, + value.data, + value.signature, + value.revoker, + value.deadline, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for DelegatedRevocationRequest { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + schema: tuple.0, + data: tuple.1, + signature: tuple.2, + revoker: tuple.3, + deadline: tuple.4, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolValue for DelegatedRevocationRequest { + type SolType = Self; + } + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue + for DelegatedRevocationRequest { + #[inline] + fn stv_to_tokens(&self) -> ::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.schema), + ::tokenize( + &self.data, + ), + ::tokenize(&self.signature), + ::tokenize( + &self.revoker, + ), + as alloy_sol_types::SolType>::tokenize(&self.deadline), + ) + } + #[inline] + fn stv_abi_encoded_size(&self) -> usize { + if let Some(size) = ::ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encoded_size(&tuple) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + ::eip712_hash_struct(self) + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + if let Some(size) = ::PACKED_ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for DelegatedRevocationRequest { + type RustType = Self; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = ::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + as alloy_sol_types::SolType>::valid_token(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + let tuple = as alloy_sol_types::SolType>::detokenize(token); + >>::from(tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolStruct for DelegatedRevocationRequest { + const NAME: &'static str = "DelegatedRevocationRequest"; + #[inline] + fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> { + alloy_sol_types::private::Cow::Borrowed( + "DelegatedRevocationRequest(bytes32 schema,RevocationRequestData data,Signature signature,address revoker,uint64 deadline)", + ) + } + #[inline] + fn eip712_components() -> alloy_sol_types::private::Vec< + alloy_sol_types::private::Cow<'static, str>, + > { + let mut components = alloy_sol_types::private::Vec::with_capacity(2); + components + .push( + ::eip712_root_type(), + ); + components + .extend( + ::eip712_components(), + ); + components + .push(::eip712_root_type()); + components + .extend( + ::eip712_components(), + ); + components + } + #[inline] + fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec { + [ + as alloy_sol_types::SolType>::eip712_data_word(&self.schema) + .0, + ::eip712_data_word( + &self.data, + ) + .0, + ::eip712_data_word( + &self.signature, + ) + .0, + ::eip712_data_word( + &self.revoker, + ) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.deadline) + .0, + ] + .concat() + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for DelegatedRevocationRequest { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + 0usize + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.schema, + ) + + ::topic_preimage_length( + &rust.data, + ) + + ::topic_preimage_length( + &rust.signature, + ) + + ::topic_preimage_length( + &rust.revoker, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.deadline, + ) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + out.reserve( + ::topic_preimage_length(rust), + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.schema, + out, + ); + ::encode_topic_preimage( + &rust.data, + out, + ); + ::encode_topic_preimage( + &rust.signature, + out, + ); + ::encode_topic_preimage( + &rust.revoker, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.deadline, + out, + ); + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + let mut out = alloy_sol_types::private::Vec::new(); + ::encode_topic_preimage( + rust, + &mut out, + ); + alloy_sol_types::abi::token::WordToken( + alloy_sol_types::private::keccak256(out), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**```solidity +struct MultiAttestationRequest { bytes32 schema; AttestationRequestData[] data; } +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct MultiAttestationRequest { + #[allow(missing_docs)] + pub schema: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub data: alloy::sol_types::private::Vec< + ::RustType, + >, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Array, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::FixedBytes<32>, + alloy::sol_types::private::Vec< + ::RustType, + >, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: MultiAttestationRequest) -> Self { + (value.schema, value.data) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for MultiAttestationRequest { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + schema: tuple.0, + data: tuple.1, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolValue for MultiAttestationRequest { + type SolType = Self; + } + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for MultiAttestationRequest { + #[inline] + fn stv_to_tokens(&self) -> ::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.schema), + as alloy_sol_types::SolType>::tokenize(&self.data), + ) + } + #[inline] + fn stv_abi_encoded_size(&self) -> usize { + if let Some(size) = ::ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encoded_size(&tuple) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + ::eip712_hash_struct(self) + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + if let Some(size) = ::PACKED_ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for MultiAttestationRequest { + type RustType = Self; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = ::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + as alloy_sol_types::SolType>::valid_token(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + let tuple = as alloy_sol_types::SolType>::detokenize(token); + >>::from(tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolStruct for MultiAttestationRequest { + const NAME: &'static str = "MultiAttestationRequest"; + #[inline] + fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> { + alloy_sol_types::private::Cow::Borrowed( + "MultiAttestationRequest(bytes32 schema,AttestationRequestData[] data)", + ) + } + #[inline] + fn eip712_components() -> alloy_sol_types::private::Vec< + alloy_sol_types::private::Cow<'static, str>, + > { + let mut components = alloy_sol_types::private::Vec::with_capacity(1); + components + .push( + ::eip712_root_type(), + ); + components + .extend( + ::eip712_components(), + ); + components + } + #[inline] + fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec { + [ + as alloy_sol_types::SolType>::eip712_data_word(&self.schema) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.data) + .0, + ] + .concat() + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for MultiAttestationRequest { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + 0usize + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.schema, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length(&rust.data) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + out.reserve( + ::topic_preimage_length(rust), + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.schema, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.data, + out, + ); + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + let mut out = alloy_sol_types::private::Vec::new(); + ::encode_topic_preimage( + rust, + &mut out, + ); + alloy_sol_types::abi::token::WordToken( + alloy_sol_types::private::keccak256(out), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**```solidity +struct MultiDelegatedAttestationRequest { bytes32 schema; AttestationRequestData[] data; Signature[] signatures; address attester; uint64 deadline; } +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct MultiDelegatedAttestationRequest { + #[allow(missing_docs)] + pub schema: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub data: alloy::sol_types::private::Vec< + ::RustType, + >, + #[allow(missing_docs)] + pub signatures: alloy::sol_types::private::Vec< + ::RustType, + >, + #[allow(missing_docs)] + pub attester: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub deadline: u64, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Array, + alloy::sol_types::sol_data::Array, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<64>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::FixedBytes<32>, + alloy::sol_types::private::Vec< + ::RustType, + >, + alloy::sol_types::private::Vec< + ::RustType, + >, + alloy::sol_types::private::Address, + u64, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: MultiDelegatedAttestationRequest) -> Self { + ( + value.schema, + value.data, + value.signatures, + value.attester, + value.deadline, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for MultiDelegatedAttestationRequest { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + schema: tuple.0, + data: tuple.1, + signatures: tuple.2, + attester: tuple.3, + deadline: tuple.4, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolValue for MultiDelegatedAttestationRequest { + type SolType = Self; + } + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue + for MultiDelegatedAttestationRequest { + #[inline] + fn stv_to_tokens(&self) -> ::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.schema), + as alloy_sol_types::SolType>::tokenize(&self.data), + as alloy_sol_types::SolType>::tokenize(&self.signatures), + ::tokenize( + &self.attester, + ), + as alloy_sol_types::SolType>::tokenize(&self.deadline), + ) + } + #[inline] + fn stv_abi_encoded_size(&self) -> usize { + if let Some(size) = ::ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encoded_size(&tuple) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + ::eip712_hash_struct(self) + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + if let Some(size) = ::PACKED_ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for MultiDelegatedAttestationRequest { + type RustType = Self; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = ::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + as alloy_sol_types::SolType>::valid_token(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + let tuple = as alloy_sol_types::SolType>::detokenize(token); + >>::from(tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolStruct for MultiDelegatedAttestationRequest { + const NAME: &'static str = "MultiDelegatedAttestationRequest"; + #[inline] + fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> { + alloy_sol_types::private::Cow::Borrowed( + "MultiDelegatedAttestationRequest(bytes32 schema,AttestationRequestData[] data,Signature[] signatures,address attester,uint64 deadline)", + ) + } + #[inline] + fn eip712_components() -> alloy_sol_types::private::Vec< + alloy_sol_types::private::Cow<'static, str>, + > { + let mut components = alloy_sol_types::private::Vec::with_capacity(2); + components + .push( + ::eip712_root_type(), + ); + components + .extend( + ::eip712_components(), + ); + components + .push(::eip712_root_type()); + components + .extend( + ::eip712_components(), + ); + components + } + #[inline] + fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec { + [ + as alloy_sol_types::SolType>::eip712_data_word(&self.schema) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.data) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.signatures) + .0, + ::eip712_data_word( + &self.attester, + ) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.deadline) + .0, + ] + .concat() + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for MultiDelegatedAttestationRequest { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + 0usize + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.schema, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length(&rust.data) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.signatures, + ) + + ::topic_preimage_length( + &rust.attester, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.deadline, + ) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + out.reserve( + ::topic_preimage_length(rust), + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.schema, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.data, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.signatures, + out, + ); + ::encode_topic_preimage( + &rust.attester, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.deadline, + out, + ); + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + let mut out = alloy_sol_types::private::Vec::new(); + ::encode_topic_preimage( + rust, + &mut out, + ); + alloy_sol_types::abi::token::WordToken( + alloy_sol_types::private::keccak256(out), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**```solidity +struct MultiDelegatedRevocationRequest { bytes32 schema; RevocationRequestData[] data; Signature[] signatures; address revoker; uint64 deadline; } +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct MultiDelegatedRevocationRequest { + #[allow(missing_docs)] + pub schema: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub data: alloy::sol_types::private::Vec< + ::RustType, + >, + #[allow(missing_docs)] + pub signatures: alloy::sol_types::private::Vec< + ::RustType, + >, + #[allow(missing_docs)] + pub revoker: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub deadline: u64, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Array, + alloy::sol_types::sol_data::Array, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<64>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::FixedBytes<32>, + alloy::sol_types::private::Vec< + ::RustType, + >, + alloy::sol_types::private::Vec< + ::RustType, + >, + alloy::sol_types::private::Address, + u64, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: MultiDelegatedRevocationRequest) -> Self { + ( + value.schema, + value.data, + value.signatures, + value.revoker, + value.deadline, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for MultiDelegatedRevocationRequest { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + schema: tuple.0, + data: tuple.1, + signatures: tuple.2, + revoker: tuple.3, + deadline: tuple.4, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolValue for MultiDelegatedRevocationRequest { + type SolType = Self; + } + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue + for MultiDelegatedRevocationRequest { + #[inline] + fn stv_to_tokens(&self) -> ::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.schema), + as alloy_sol_types::SolType>::tokenize(&self.data), + as alloy_sol_types::SolType>::tokenize(&self.signatures), + ::tokenize( + &self.revoker, + ), + as alloy_sol_types::SolType>::tokenize(&self.deadline), + ) + } + #[inline] + fn stv_abi_encoded_size(&self) -> usize { + if let Some(size) = ::ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encoded_size(&tuple) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + ::eip712_hash_struct(self) + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + if let Some(size) = ::PACKED_ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for MultiDelegatedRevocationRequest { + type RustType = Self; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = ::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + as alloy_sol_types::SolType>::valid_token(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + let tuple = as alloy_sol_types::SolType>::detokenize(token); + >>::from(tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolStruct for MultiDelegatedRevocationRequest { + const NAME: &'static str = "MultiDelegatedRevocationRequest"; + #[inline] + fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> { + alloy_sol_types::private::Cow::Borrowed( + "MultiDelegatedRevocationRequest(bytes32 schema,RevocationRequestData[] data,Signature[] signatures,address revoker,uint64 deadline)", + ) + } + #[inline] + fn eip712_components() -> alloy_sol_types::private::Vec< + alloy_sol_types::private::Cow<'static, str>, + > { + let mut components = alloy_sol_types::private::Vec::with_capacity(2); + components + .push( + ::eip712_root_type(), + ); + components + .extend( + ::eip712_components(), + ); + components + .push(::eip712_root_type()); + components + .extend( + ::eip712_components(), + ); + components + } + #[inline] + fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec { + [ + as alloy_sol_types::SolType>::eip712_data_word(&self.schema) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.data) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.signatures) + .0, + ::eip712_data_word( + &self.revoker, + ) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.deadline) + .0, + ] + .concat() + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for MultiDelegatedRevocationRequest { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + 0usize + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.schema, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length(&rust.data) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.signatures, + ) + + ::topic_preimage_length( + &rust.revoker, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.deadline, + ) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + out.reserve( + ::topic_preimage_length(rust), + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.schema, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.data, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.signatures, + out, + ); + ::encode_topic_preimage( + &rust.revoker, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.deadline, + out, + ); + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + let mut out = alloy_sol_types::private::Vec::new(); + ::encode_topic_preimage( + rust, + &mut out, + ); + alloy_sol_types::abi::token::WordToken( + alloy_sol_types::private::keccak256(out), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**```solidity +struct MultiRevocationRequest { bytes32 schema; RevocationRequestData[] data; } +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct MultiRevocationRequest { + #[allow(missing_docs)] + pub schema: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub data: alloy::sol_types::private::Vec< + ::RustType, + >, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Array, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::FixedBytes<32>, + alloy::sol_types::private::Vec< + ::RustType, + >, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: MultiRevocationRequest) -> Self { + (value.schema, value.data) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for MultiRevocationRequest { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + schema: tuple.0, + data: tuple.1, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolValue for MultiRevocationRequest { + type SolType = Self; + } + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for MultiRevocationRequest { + #[inline] + fn stv_to_tokens(&self) -> ::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.schema), + as alloy_sol_types::SolType>::tokenize(&self.data), + ) + } + #[inline] + fn stv_abi_encoded_size(&self) -> usize { + if let Some(size) = ::ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encoded_size(&tuple) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + ::eip712_hash_struct(self) + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + if let Some(size) = ::PACKED_ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for MultiRevocationRequest { + type RustType = Self; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = ::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + as alloy_sol_types::SolType>::valid_token(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + let tuple = as alloy_sol_types::SolType>::detokenize(token); + >>::from(tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolStruct for MultiRevocationRequest { + const NAME: &'static str = "MultiRevocationRequest"; + #[inline] + fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> { + alloy_sol_types::private::Cow::Borrowed( + "MultiRevocationRequest(bytes32 schema,RevocationRequestData[] data)", + ) + } + #[inline] + fn eip712_components() -> alloy_sol_types::private::Vec< + alloy_sol_types::private::Cow<'static, str>, + > { + let mut components = alloy_sol_types::private::Vec::with_capacity(1); + components + .push( + ::eip712_root_type(), + ); + components + .extend( + ::eip712_components(), + ); + components + } + #[inline] + fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec { + [ + as alloy_sol_types::SolType>::eip712_data_word(&self.schema) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.data) + .0, + ] + .concat() + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for MultiRevocationRequest { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + 0usize + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.schema, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length(&rust.data) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + out.reserve( + ::topic_preimage_length(rust), + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.schema, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.data, + out, + ); + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + let mut out = alloy_sol_types::private::Vec::new(); + ::encode_topic_preimage( + rust, + &mut out, + ); + alloy_sol_types::abi::token::WordToken( + alloy_sol_types::private::keccak256(out), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**```solidity +struct RevocationRequest { bytes32 schema; RevocationRequestData data; } +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct RevocationRequest { + #[allow(missing_docs)] + pub schema: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub data: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::FixedBytes<32>, + RevocationRequestData, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::FixedBytes<32>, + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: RevocationRequest) -> Self { + (value.schema, value.data) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for RevocationRequest { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + schema: tuple.0, + data: tuple.1, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolValue for RevocationRequest { + type SolType = Self; + } + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for RevocationRequest { + #[inline] + fn stv_to_tokens(&self) -> ::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.schema), + ::tokenize( + &self.data, + ), + ) + } + #[inline] + fn stv_abi_encoded_size(&self) -> usize { + if let Some(size) = ::ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encoded_size(&tuple) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + ::eip712_hash_struct(self) + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + if let Some(size) = ::PACKED_ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for RevocationRequest { + type RustType = Self; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = ::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + as alloy_sol_types::SolType>::valid_token(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + let tuple = as alloy_sol_types::SolType>::detokenize(token); + >>::from(tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolStruct for RevocationRequest { + const NAME: &'static str = "RevocationRequest"; + #[inline] + fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> { + alloy_sol_types::private::Cow::Borrowed( + "RevocationRequest(bytes32 schema,RevocationRequestData data)", + ) + } + #[inline] + fn eip712_components() -> alloy_sol_types::private::Vec< + alloy_sol_types::private::Cow<'static, str>, + > { + let mut components = alloy_sol_types::private::Vec::with_capacity(1); + components + .push( + ::eip712_root_type(), + ); + components + .extend( + ::eip712_components(), + ); + components + } + #[inline] + fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec { + [ + as alloy_sol_types::SolType>::eip712_data_word(&self.schema) + .0, + ::eip712_data_word( + &self.data, + ) + .0, + ] + .concat() + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for RevocationRequest { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + 0usize + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.schema, + ) + + ::topic_preimage_length( + &rust.data, + ) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + out.reserve( + ::topic_preimage_length(rust), + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.schema, + out, + ); + ::encode_topic_preimage( + &rust.data, + out, + ); + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + let mut out = alloy_sol_types::private::Vec::new(); + ::encode_topic_preimage( + rust, + &mut out, + ); + alloy_sol_types::abi::token::WordToken( + alloy_sol_types::private::keccak256(out), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**```solidity +struct RevocationRequestData { bytes32 uid; uint256 value; } +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct RevocationRequestData { + #[allow(missing_docs)] + pub uid: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub value: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::FixedBytes<32>, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: RevocationRequestData) -> Self { + (value.uid, value.value) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for RevocationRequestData { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + uid: tuple.0, + value: tuple.1, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolValue for RevocationRequestData { + type SolType = Self; + } + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for RevocationRequestData { + #[inline] + fn stv_to_tokens(&self) -> ::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.uid), + as alloy_sol_types::SolType>::tokenize(&self.value), + ) + } + #[inline] + fn stv_abi_encoded_size(&self) -> usize { + if let Some(size) = ::ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encoded_size(&tuple) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + ::eip712_hash_struct(self) + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + if let Some(size) = ::PACKED_ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for RevocationRequestData { + type RustType = Self; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = ::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + as alloy_sol_types::SolType>::valid_token(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + let tuple = as alloy_sol_types::SolType>::detokenize(token); + >>::from(tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolStruct for RevocationRequestData { + const NAME: &'static str = "RevocationRequestData"; + #[inline] + fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> { + alloy_sol_types::private::Cow::Borrowed( + "RevocationRequestData(bytes32 uid,uint256 value)", + ) + } + #[inline] + fn eip712_components() -> alloy_sol_types::private::Vec< + alloy_sol_types::private::Cow<'static, str>, + > { + alloy_sol_types::private::Vec::new() + } + #[inline] + fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> { + ::eip712_root_type() + } + #[inline] + fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec { + [ + as alloy_sol_types::SolType>::eip712_data_word(&self.uid) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.value) + .0, + ] + .concat() + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for RevocationRequestData { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + 0usize + + as alloy_sol_types::EventTopic>::topic_preimage_length(&rust.uid) + + as alloy_sol_types::EventTopic>::topic_preimage_length(&rust.value) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + out.reserve( + ::topic_preimage_length(rust), + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage(&rust.uid, out); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.value, + out, + ); + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + let mut out = alloy_sol_types::private::Vec::new(); + ::encode_topic_preimage( + rust, + &mut out, + ); + alloy_sol_types::abi::token::WordToken( + alloy_sol_types::private::keccak256(out), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**```solidity +struct Signature { uint8 v; bytes32 r; bytes32 s; } +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct Signature { + #[allow(missing_docs)] + pub v: u8, + #[allow(missing_docs)] + pub r: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub s: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Uint<8>, + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + u8, + alloy::sol_types::private::FixedBytes<32>, + alloy::sol_types::private::FixedBytes<32>, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: Signature) -> Self { + (value.v, value.r, value.s) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for Signature { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + v: tuple.0, + r: tuple.1, + s: tuple.2, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolValue for Signature { + type SolType = Self; + } + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for Signature { + #[inline] + fn stv_to_tokens(&self) -> ::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.v), + as alloy_sol_types::SolType>::tokenize(&self.r), + as alloy_sol_types::SolType>::tokenize(&self.s), + ) + } + #[inline] + fn stv_abi_encoded_size(&self) -> usize { + if let Some(size) = ::ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encoded_size(&tuple) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + ::eip712_hash_struct(self) + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + if let Some(size) = ::PACKED_ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for Signature { + type RustType = Self; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = ::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + as alloy_sol_types::SolType>::valid_token(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + let tuple = as alloy_sol_types::SolType>::detokenize(token); + >>::from(tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolStruct for Signature { + const NAME: &'static str = "Signature"; + #[inline] + fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> { + alloy_sol_types::private::Cow::Borrowed( + "Signature(uint8 v,bytes32 r,bytes32 s)", + ) + } + #[inline] + fn eip712_components() -> alloy_sol_types::private::Vec< + alloy_sol_types::private::Cow<'static, str>, + > { + alloy_sol_types::private::Vec::new() + } + #[inline] + fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> { + ::eip712_root_type() + } + #[inline] + fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec { + [ + as alloy_sol_types::SolType>::eip712_data_word(&self.v) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.r) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.s) + .0, + ] + .concat() + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for Signature { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + 0usize + + as alloy_sol_types::EventTopic>::topic_preimage_length(&rust.v) + + as alloy_sol_types::EventTopic>::topic_preimage_length(&rust.r) + + as alloy_sol_types::EventTopic>::topic_preimage_length(&rust.s) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + out.reserve( + ::topic_preimage_length(rust), + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage(&rust.v, out); + as alloy_sol_types::EventTopic>::encode_topic_preimage(&rust.r, out); + as alloy_sol_types::EventTopic>::encode_topic_preimage(&rust.s, out); + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + let mut out = alloy_sol_types::private::Vec::new(); + ::encode_topic_preimage( + rust, + &mut out, + ); + alloy_sol_types::abi::token::WordToken( + alloy_sol_types::private::keccak256(out), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `AccessDenied()` and selector `0x4ca88867`. +```solidity +error AccessDenied(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct AccessDenied; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: AccessDenied) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for AccessDenied { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for AccessDenied { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "AccessDenied()"; + const SELECTOR: [u8; 4] = [76u8, 168u8, 136u8, 103u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `AlreadyRevoked()` and selector `0x905e7107`. +```solidity +error AlreadyRevoked(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct AlreadyRevoked; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: AlreadyRevoked) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for AlreadyRevoked { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for AlreadyRevoked { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "AlreadyRevoked()"; + const SELECTOR: [u8; 4] = [144u8, 94u8, 113u8, 7u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `AlreadyRevokedOffchain()` and selector `0xec9d6eeb`. +```solidity +error AlreadyRevokedOffchain(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct AlreadyRevokedOffchain; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: AlreadyRevokedOffchain) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for AlreadyRevokedOffchain { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for AlreadyRevokedOffchain { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "AlreadyRevokedOffchain()"; + const SELECTOR: [u8; 4] = [236u8, 157u8, 110u8, 235u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `AlreadyTimestamped()` and selector `0x2e267946`. +```solidity +error AlreadyTimestamped(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct AlreadyTimestamped; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: AlreadyTimestamped) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for AlreadyTimestamped { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for AlreadyTimestamped { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "AlreadyTimestamped()"; + const SELECTOR: [u8; 4] = [46u8, 38u8, 121u8, 70u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `DeadlineExpired()` and selector `0x1ab7da6b`. +```solidity +error DeadlineExpired(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct DeadlineExpired; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: DeadlineExpired) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for DeadlineExpired { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for DeadlineExpired { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "DeadlineExpired()"; + const SELECTOR: [u8; 4] = [26u8, 183u8, 218u8, 107u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InsufficientValue()` and selector `0x11011294`. +```solidity +error InsufficientValue(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InsufficientValue; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InsufficientValue) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InsufficientValue { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InsufficientValue { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InsufficientValue()"; + const SELECTOR: [u8; 4] = [17u8, 1u8, 18u8, 148u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidAttestation()` and selector `0xbd8ba84d`. +```solidity +error InvalidAttestation(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidAttestation; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InvalidAttestation) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InvalidAttestation { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidAttestation { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidAttestation()"; + const SELECTOR: [u8; 4] = [189u8, 139u8, 168u8, 77u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidAttestations()` and selector `0xe8bee839`. +```solidity +error InvalidAttestations(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidAttestations; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InvalidAttestations) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InvalidAttestations { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidAttestations { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidAttestations()"; + const SELECTOR: [u8; 4] = [232u8, 190u8, 232u8, 57u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidExpirationTime()` and selector `0x08e8b937`. +```solidity +error InvalidExpirationTime(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidExpirationTime; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InvalidExpirationTime) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InvalidExpirationTime { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidExpirationTime { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidExpirationTime()"; + const SELECTOR: [u8; 4] = [8u8, 232u8, 185u8, 55u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidLength()` and selector `0x947d5a84`. +```solidity +error InvalidLength(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidLength; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InvalidLength) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InvalidLength { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidLength { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidLength()"; + const SELECTOR: [u8; 4] = [148u8, 125u8, 90u8, 132u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidNonce()` and selector `0x756688fe`. +```solidity +error InvalidNonce(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidNonce; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InvalidNonce) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InvalidNonce { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidNonce { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidNonce()"; + const SELECTOR: [u8; 4] = [117u8, 102u8, 136u8, 254u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidOffset()` and selector `0x01da1572`. +```solidity +error InvalidOffset(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidOffset; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InvalidOffset) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InvalidOffset { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidOffset { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidOffset()"; + const SELECTOR: [u8; 4] = [1u8, 218u8, 21u8, 114u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidRegistry()` and selector `0x11a1e697`. +```solidity +error InvalidRegistry(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidRegistry; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InvalidRegistry) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InvalidRegistry { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidRegistry { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidRegistry()"; + const SELECTOR: [u8; 4] = [17u8, 161u8, 230u8, 151u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidRevocation()` and selector `0xccf3bb27`. +```solidity +error InvalidRevocation(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidRevocation; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InvalidRevocation) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InvalidRevocation { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidRevocation { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidRevocation()"; + const SELECTOR: [u8; 4] = [204u8, 243u8, 187u8, 39u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidRevocations()` and selector `0xbf2f3a8b`. +```solidity +error InvalidRevocations(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidRevocations; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InvalidRevocations) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InvalidRevocations { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidRevocations { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidRevocations()"; + const SELECTOR: [u8; 4] = [191u8, 47u8, 58u8, 139u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidSchema()` and selector `0xbf37b20e`. +```solidity +error InvalidSchema(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidSchema; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InvalidSchema) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InvalidSchema { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidSchema { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidSchema()"; + const SELECTOR: [u8; 4] = [191u8, 55u8, 178u8, 14u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidSignature()` and selector `0x8baa579f`. +```solidity +error InvalidSignature(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidSignature; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InvalidSignature) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InvalidSignature { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidSignature { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidSignature()"; + const SELECTOR: [u8; 4] = [139u8, 170u8, 87u8, 159u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidVerifier()` and selector `0xbaa3de5f`. +```solidity +error InvalidVerifier(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidVerifier; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InvalidVerifier) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InvalidVerifier { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidVerifier { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidVerifier()"; + const SELECTOR: [u8; 4] = [186u8, 163u8, 222u8, 95u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `Irrevocable()` and selector `0x157bd4c3`. +```solidity +error Irrevocable(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct Irrevocable; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: Irrevocable) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for Irrevocable { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for Irrevocable { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "Irrevocable()"; + const SELECTOR: [u8; 4] = [21u8, 123u8, 212u8, 195u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `NotFound()` and selector `0xc5723b51`. +```solidity +error NotFound(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct NotFound; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: NotFound) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for NotFound { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for NotFound { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "NotFound()"; + const SELECTOR: [u8; 4] = [197u8, 114u8, 59u8, 81u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `NotPayable()` and selector `0x1574f9f3`. +```solidity +error NotPayable(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct NotPayable; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: NotPayable) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for NotPayable { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for NotPayable { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "NotPayable()"; + const SELECTOR: [u8; 4] = [21u8, 116u8, 249u8, 243u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `WrongSchema()` and selector `0x21b8eeb9`. +```solidity +error WrongSchema(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct WrongSchema; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: WrongSchema) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for WrongSchema { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for WrongSchema { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "WrongSchema()"; + const SELECTOR: [u8; 4] = [33u8, 184u8, 238u8, 185u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `Attested(address,address,bytes32,bytes32)` and selector `0x8bf46bf4cfd674fa735a3d63ec1c9ad4153f033c290341f3a588b75685141b35`. +```solidity +event Attested(address indexed recipient, address indexed attester, bytes32 uid, bytes32 indexed schemaUID); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct Attested { + #[allow(missing_docs)] + pub recipient: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub attester: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub uid: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub schemaUID: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for Attested { + type DataTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + const SIGNATURE: &'static str = "Attested(address,address,bytes32,bytes32)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 139u8, 244u8, 107u8, 244u8, 207u8, 214u8, 116u8, 250u8, 115u8, 90u8, + 61u8, 99u8, 236u8, 28u8, 154u8, 212u8, 21u8, 63u8, 3u8, 60u8, 41u8, 3u8, + 65u8, 243u8, 165u8, 136u8, 183u8, 86u8, 133u8, 20u8, 27u8, 53u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + recipient: topics.1, + attester: topics.2, + uid: data.0, + schemaUID: topics.3, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.uid), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + ( + Self::SIGNATURE_HASH.into(), + self.recipient.clone(), + self.attester.clone(), + self.schemaUID.clone(), + ) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.recipient, + ); + out[2usize] = ::encode_topic( + &self.attester, + ); + out[3usize] = as alloy_sol_types::EventTopic>::encode_topic(&self.schemaUID); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for Attested { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&Attested> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &Attested) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `NonceIncreased(uint256,uint256)` and selector `0x57b09af877df9068fd60a69d7b21f5576b8b38955812d6ae4ac52942f1e38fb7`. +```solidity +event NonceIncreased(uint256 oldNonce, uint256 newNonce); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct NonceIncreased { + #[allow(missing_docs)] + pub oldNonce: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub newNonce: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for NonceIncreased { + type DataTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + ); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,); + const SIGNATURE: &'static str = "NonceIncreased(uint256,uint256)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 87u8, 176u8, 154u8, 248u8, 119u8, 223u8, 144u8, 104u8, 253u8, 96u8, + 166u8, 157u8, 123u8, 33u8, 245u8, 87u8, 107u8, 139u8, 56u8, 149u8, 88u8, + 18u8, 214u8, 174u8, 74u8, 197u8, 41u8, 66u8, 241u8, 227u8, 143u8, 183u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + oldNonce: data.0, + newNonce: data.1, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.oldNonce), + as alloy_sol_types::SolType>::tokenize(&self.newNonce), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(),) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for NonceIncreased { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&NonceIncreased> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &NonceIncreased) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `Revoked(address,address,bytes32,bytes32)` and selector `0xf930a6e2523c9cc298691873087a740550b8fc85a0680830414c148ed927f615`. +```solidity +event Revoked(address indexed recipient, address indexed attester, bytes32 uid, bytes32 indexed schemaUID); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct Revoked { + #[allow(missing_docs)] + pub recipient: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub attester: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub uid: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub schemaUID: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for Revoked { + type DataTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + const SIGNATURE: &'static str = "Revoked(address,address,bytes32,bytes32)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 249u8, 48u8, 166u8, 226u8, 82u8, 60u8, 156u8, 194u8, 152u8, 105u8, 24u8, + 115u8, 8u8, 122u8, 116u8, 5u8, 80u8, 184u8, 252u8, 133u8, 160u8, 104u8, + 8u8, 48u8, 65u8, 76u8, 20u8, 142u8, 217u8, 39u8, 246u8, 21u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + recipient: topics.1, + attester: topics.2, + uid: data.0, + schemaUID: topics.3, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.uid), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + ( + Self::SIGNATURE_HASH.into(), + self.recipient.clone(), + self.attester.clone(), + self.schemaUID.clone(), + ) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.recipient, + ); + out[2usize] = ::encode_topic( + &self.attester, + ); + out[3usize] = as alloy_sol_types::EventTopic>::encode_topic(&self.schemaUID); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for Revoked { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&Revoked> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &Revoked) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `RevokedOffchain(address,bytes32,uint64)` and selector `0x92a1f7a41a7c585a8b09e25b195e225b1d43248daca46b0faf9e0792777a2229`. +```solidity +event RevokedOffchain(address indexed revoker, bytes32 indexed data, uint64 indexed timestamp); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct RevokedOffchain { + #[allow(missing_docs)] + pub revoker: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub data: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub timestamp: u64, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for RevokedOffchain { + type DataTuple<'a> = (); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Uint<64>, + ); + const SIGNATURE: &'static str = "RevokedOffchain(address,bytes32,uint64)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 146u8, 161u8, 247u8, 164u8, 26u8, 124u8, 88u8, 90u8, 139u8, 9u8, 226u8, + 91u8, 25u8, 94u8, 34u8, 91u8, 29u8, 67u8, 36u8, 141u8, 172u8, 164u8, + 107u8, 15u8, 175u8, 158u8, 7u8, 146u8, 119u8, 122u8, 34u8, 41u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + revoker: topics.1, + data: topics.2, + timestamp: topics.3, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + () + } + #[inline] + fn topics(&self) -> ::RustType { + ( + Self::SIGNATURE_HASH.into(), + self.revoker.clone(), + self.data.clone(), + self.timestamp.clone(), + ) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.revoker, + ); + out[2usize] = as alloy_sol_types::EventTopic>::encode_topic(&self.data); + out[3usize] = as alloy_sol_types::EventTopic>::encode_topic(&self.timestamp); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for RevokedOffchain { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&RevokedOffchain> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &RevokedOffchain) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `Timestamped(bytes32,uint64)` and selector `0x5aafceeb1c7ad58e4a84898bdee37c02c0fc46e7d24e6b60e8209449f183459f`. +```solidity +event Timestamped(bytes32 indexed data, uint64 indexed timestamp); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct Timestamped { + #[allow(missing_docs)] + pub data: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub timestamp: u64, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for Timestamped { + type DataTuple<'a> = (); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Uint<64>, + ); + const SIGNATURE: &'static str = "Timestamped(bytes32,uint64)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 90u8, 175u8, 206u8, 235u8, 28u8, 122u8, 213u8, 142u8, 74u8, 132u8, 137u8, + 139u8, 222u8, 227u8, 124u8, 2u8, 192u8, 252u8, 70u8, 231u8, 210u8, 78u8, + 107u8, 96u8, 232u8, 32u8, 148u8, 73u8, 241u8, 131u8, 69u8, 159u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + data: topics.1, + timestamp: topics.2, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + () + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.data.clone(), self.timestamp.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = as alloy_sol_types::EventTopic>::encode_topic(&self.data); + out[2usize] = as alloy_sol_types::EventTopic>::encode_topic(&self.timestamp); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for Timestamped { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&Timestamped> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &Timestamped) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + /**Constructor`. +```solidity +constructor(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct constructorCall {} + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: constructorCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for constructorCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolConstructor for constructorCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `attest((bytes32,(address,uint64,bool,bytes32,bytes,uint256)))` and selector `0xf17325e7`. +```solidity +function attest(AttestationRequest memory request) external payable returns (bytes32); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct attestCall { + #[allow(missing_docs)] + pub request: ::RustType, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`attest((bytes32,(address,uint64,bool,bytes32,bytes,uint256)))`](attestCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct attestReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (AttestationRequest,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: attestCall) -> Self { + (value.request,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for attestCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { request: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: attestReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for attestReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for attestCall { + type Parameters<'a> = (AttestationRequest,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::FixedBytes<32>; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "attest((bytes32,(address,uint64,bool,bytes32,bytes,uint256)))"; + const SELECTOR: [u8; 4] = [241u8, 115u8, 37u8, 231u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.request, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: attestReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: attestReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `attestByDelegation((bytes32,(address,uint64,bool,bytes32,bytes,uint256),(uint8,bytes32,bytes32),address,uint64))` and selector `0x3c042715`. +```solidity +function attestByDelegation(DelegatedAttestationRequest memory delegatedRequest) external payable returns (bytes32); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct attestByDelegationCall { + #[allow(missing_docs)] + pub delegatedRequest: ::RustType, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`attestByDelegation((bytes32,(address,uint64,bool,bytes32,bytes,uint256),(uint8,bytes32,bytes32),address,uint64))`](attestByDelegationCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct attestByDelegationReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (DelegatedAttestationRequest,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: attestByDelegationCall) -> Self { + (value.delegatedRequest,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for attestByDelegationCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { delegatedRequest: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: attestByDelegationReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for attestByDelegationReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for attestByDelegationCall { + type Parameters<'a> = (DelegatedAttestationRequest,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::FixedBytes<32>; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "attestByDelegation((bytes32,(address,uint64,bool,bytes32,bytes,uint256),(uint8,bytes32,bytes32),address,uint64))"; + const SELECTOR: [u8; 4] = [60u8, 4u8, 39u8, 21u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.delegatedRequest, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: attestByDelegationReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: attestByDelegationReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `getAttestTypeHash()` and selector `0x12b11a17`. +```solidity +function getAttestTypeHash() external pure returns (bytes32); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getAttestTypeHashCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`getAttestTypeHash()`](getAttestTypeHashCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getAttestTypeHashReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: getAttestTypeHashCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for getAttestTypeHashCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: getAttestTypeHashReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for getAttestTypeHashReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for getAttestTypeHashCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::FixedBytes<32>; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "getAttestTypeHash()"; + const SELECTOR: [u8; 4] = [18u8, 177u8, 26u8, 23u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: getAttestTypeHashReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: getAttestTypeHashReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `getAttestation(bytes32)` and selector `0xa3112a64`. +```solidity +function getAttestation(bytes32 uid) external view returns (Attestation memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getAttestationCall { + #[allow(missing_docs)] + pub uid: alloy::sol_types::private::FixedBytes<32>, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`getAttestation(bytes32)`](getAttestationCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getAttestationReturn { + #[allow(missing_docs)] + pub _0: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: getAttestationCall) -> Self { + (value.uid,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for getAttestationCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { uid: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Attestation,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: getAttestationReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for getAttestationReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for getAttestationCall { + type Parameters<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (Attestation,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "getAttestation(bytes32)"; + const SELECTOR: [u8; 4] = [163u8, 17u8, 42u8, 100u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.uid), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: getAttestationReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: getAttestationReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `getDomainSeparator()` and selector `0xed24911d`. +```solidity +function getDomainSeparator() external view returns (bytes32); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getDomainSeparatorCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`getDomainSeparator()`](getDomainSeparatorCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getDomainSeparatorReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: getDomainSeparatorCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for getDomainSeparatorCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: getDomainSeparatorReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for getDomainSeparatorReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for getDomainSeparatorCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::FixedBytes<32>; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "getDomainSeparator()"; + const SELECTOR: [u8; 4] = [237u8, 36u8, 145u8, 29u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: getDomainSeparatorReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: getDomainSeparatorReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `getName()` and selector `0x17d7de7c`. +```solidity +function getName() external view returns (string memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getNameCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`getName()`](getNameCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getNameReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: getNameCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for getNameCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: getNameReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for getNameReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for getNameCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::String; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "getName()"; + const SELECTOR: [u8; 4] = [23u8, 215u8, 222u8, 124u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: getNameReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: getNameReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `getNonce(address)` and selector `0x2d0335ab`. +```solidity +function getNonce(address account) external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getNonceCall { + #[allow(missing_docs)] + pub account: alloy::sol_types::private::Address, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`getNonce(address)`](getNonceCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getNonceReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: getNonceCall) -> Self { + (value.account,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for getNonceCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { account: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: getNonceReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for getNonceReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for getNonceCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "getNonce(address)"; + const SELECTOR: [u8; 4] = [45u8, 3u8, 53u8, 171u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.account, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: getNonceReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: getNonceReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `getRevokeOffchain(address,bytes32)` and selector `0xb469318d`. +```solidity +function getRevokeOffchain(address revoker, bytes32 data) external view returns (uint64); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getRevokeOffchainCall { + #[allow(missing_docs)] + pub revoker: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub data: alloy::sol_types::private::FixedBytes<32>, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`getRevokeOffchain(address,bytes32)`](getRevokeOffchainCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getRevokeOffchainReturn { + #[allow(missing_docs)] + pub _0: u64, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::FixedBytes<32>, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: getRevokeOffchainCall) -> Self { + (value.revoker, value.data) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for getRevokeOffchainCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + revoker: tuple.0, + data: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u64,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: getRevokeOffchainReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for getRevokeOffchainReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for getRevokeOffchainCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u64; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "getRevokeOffchain(address,bytes32)"; + const SELECTOR: [u8; 4] = [180u8, 105u8, 49u8, 141u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.revoker, + ), + as alloy_sol_types::SolType>::tokenize(&self.data), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: getRevokeOffchainReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: getRevokeOffchainReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `getRevokeTypeHash()` and selector `0xb83010d3`. +```solidity +function getRevokeTypeHash() external pure returns (bytes32); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getRevokeTypeHashCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`getRevokeTypeHash()`](getRevokeTypeHashCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getRevokeTypeHashReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: getRevokeTypeHashCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for getRevokeTypeHashCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: getRevokeTypeHashReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for getRevokeTypeHashReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for getRevokeTypeHashCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::FixedBytes<32>; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "getRevokeTypeHash()"; + const SELECTOR: [u8; 4] = [184u8, 48u8, 16u8, 211u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: getRevokeTypeHashReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: getRevokeTypeHashReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `getSchemaRegistry()` and selector `0xf10b5cc8`. +```solidity +function getSchemaRegistry() external pure returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getSchemaRegistryCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`getSchemaRegistry()`](getSchemaRegistryCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getSchemaRegistryReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: getSchemaRegistryCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for getSchemaRegistryCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: getSchemaRegistryReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for getSchemaRegistryReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for getSchemaRegistryCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "getSchemaRegistry()"; + const SELECTOR: [u8; 4] = [241u8, 11u8, 92u8, 200u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: getSchemaRegistryReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: getSchemaRegistryReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `getTimestamp(bytes32)` and selector `0xd45c4435`. +```solidity +function getTimestamp(bytes32 data) external view returns (uint64); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getTimestampCall { + #[allow(missing_docs)] + pub data: alloy::sol_types::private::FixedBytes<32>, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`getTimestamp(bytes32)`](getTimestampCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getTimestampReturn { + #[allow(missing_docs)] + pub _0: u64, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: getTimestampCall) -> Self { + (value.data,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for getTimestampCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { data: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u64,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: getTimestampReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for getTimestampReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for getTimestampCall { + type Parameters<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u64; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "getTimestamp(bytes32)"; + const SELECTOR: [u8; 4] = [212u8, 92u8, 68u8, 53u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.data), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: getTimestampReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: getTimestampReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `increaseNonce(uint256)` and selector `0x79f7573a`. +```solidity +function increaseNonce(uint256 newNonce) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct increaseNonceCall { + #[allow(missing_docs)] + pub newNonce: alloy::sol_types::private::primitives::aliases::U256, + } + ///Container type for the return parameters of the [`increaseNonce(uint256)`](increaseNonceCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct increaseNonceReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: increaseNonceCall) -> Self { + (value.newNonce,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for increaseNonceCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { newNonce: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: increaseNonceReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for increaseNonceReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl increaseNonceReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for increaseNonceCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = increaseNonceReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "increaseNonce(uint256)"; + const SELECTOR: [u8; 4] = [121u8, 247u8, 87u8, 58u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.newNonce), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + increaseNonceReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `isAttestationValid(bytes32)` and selector `0xe30bb563`. +```solidity +function isAttestationValid(bytes32 uid) external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct isAttestationValidCall { + #[allow(missing_docs)] + pub uid: alloy::sol_types::private::FixedBytes<32>, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`isAttestationValid(bytes32)`](isAttestationValidCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct isAttestationValidReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: isAttestationValidCall) -> Self { + (value.uid,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for isAttestationValidCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { uid: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: isAttestationValidReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for isAttestationValidReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for isAttestationValidCall { + type Parameters<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "isAttestationValid(bytes32)"; + const SELECTOR: [u8; 4] = [227u8, 11u8, 181u8, 99u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.uid), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: isAttestationValidReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: isAttestationValidReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `multiAttest((bytes32,(address,uint64,bool,bytes32,bytes,uint256)[])[])` and selector `0x44adc90e`. +```solidity +function multiAttest(MultiAttestationRequest[] memory multiRequests) external payable returns (bytes32[] memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct multiAttestCall { + #[allow(missing_docs)] + pub multiRequests: alloy::sol_types::private::Vec< + ::RustType, + >, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`multiAttest((bytes32,(address,uint64,bool,bytes32,bytes,uint256)[])[])`](multiAttestCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct multiAttestReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Vec< + alloy::sol_types::private::FixedBytes<32>, + >, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Array, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Vec< + ::RustType, + >, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: multiAttestCall) -> Self { + (value.multiRequests,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for multiAttestCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { multiRequests: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Array< + alloy::sol_types::sol_data::FixedBytes<32>, + >, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Vec< + alloy::sol_types::private::FixedBytes<32>, + >, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: multiAttestReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for multiAttestReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for multiAttestCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Array, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Vec< + alloy::sol_types::private::FixedBytes<32>, + >; + type ReturnTuple<'a> = ( + alloy::sol_types::sol_data::Array< + alloy::sol_types::sol_data::FixedBytes<32>, + >, + ); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "multiAttest((bytes32,(address,uint64,bool,bytes32,bytes,uint256)[])[])"; + const SELECTOR: [u8; 4] = [68u8, 173u8, 201u8, 14u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.multiRequests), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + , + > as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: multiAttestReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: multiAttestReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `multiAttestByDelegation((bytes32,(address,uint64,bool,bytes32,bytes,uint256)[],(uint8,bytes32,bytes32)[],address,uint64)[])` and selector `0x95411525`. +```solidity +function multiAttestByDelegation(MultiDelegatedAttestationRequest[] memory multiDelegatedRequests) external payable returns (bytes32[] memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct multiAttestByDelegationCall { + #[allow(missing_docs)] + pub multiDelegatedRequests: alloy::sol_types::private::Vec< + ::RustType, + >, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`multiAttestByDelegation((bytes32,(address,uint64,bool,bytes32,bytes,uint256)[],(uint8,bytes32,bytes32)[],address,uint64)[])`](multiAttestByDelegationCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct multiAttestByDelegationReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Vec< + alloy::sol_types::private::FixedBytes<32>, + >, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Array, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Vec< + ::RustType, + >, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: multiAttestByDelegationCall) -> Self { + (value.multiDelegatedRequests,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for multiAttestByDelegationCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + multiDelegatedRequests: tuple.0, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Array< + alloy::sol_types::sol_data::FixedBytes<32>, + >, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Vec< + alloy::sol_types::private::FixedBytes<32>, + >, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: multiAttestByDelegationReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for multiAttestByDelegationReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for multiAttestByDelegationCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Array, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Vec< + alloy::sol_types::private::FixedBytes<32>, + >; + type ReturnTuple<'a> = ( + alloy::sol_types::sol_data::Array< + alloy::sol_types::sol_data::FixedBytes<32>, + >, + ); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "multiAttestByDelegation((bytes32,(address,uint64,bool,bytes32,bytes,uint256)[],(uint8,bytes32,bytes32)[],address,uint64)[])"; + const SELECTOR: [u8; 4] = [149u8, 65u8, 21u8, 37u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize( + &self.multiDelegatedRequests, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + , + > as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: multiAttestByDelegationReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: multiAttestByDelegationReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `multiRevoke((bytes32,(bytes32,uint256)[])[])` and selector `0x4cb7e9e5`. +```solidity +function multiRevoke(MultiRevocationRequest[] memory multiRequests) external payable; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct multiRevokeCall { + #[allow(missing_docs)] + pub multiRequests: alloy::sol_types::private::Vec< + ::RustType, + >, + } + ///Container type for the return parameters of the [`multiRevoke((bytes32,(bytes32,uint256)[])[])`](multiRevokeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct multiRevokeReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Array, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Vec< + ::RustType, + >, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: multiRevokeCall) -> Self { + (value.multiRequests,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for multiRevokeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { multiRequests: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: multiRevokeReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for multiRevokeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl multiRevokeReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for multiRevokeCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Array, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = multiRevokeReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "multiRevoke((bytes32,(bytes32,uint256)[])[])"; + const SELECTOR: [u8; 4] = [76u8, 183u8, 233u8, 229u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.multiRequests), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + multiRevokeReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `multiRevokeByDelegation((bytes32,(bytes32,uint256)[],(uint8,bytes32,bytes32)[],address,uint64)[])` and selector `0x0eabf660`. +```solidity +function multiRevokeByDelegation(MultiDelegatedRevocationRequest[] memory multiDelegatedRequests) external payable; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct multiRevokeByDelegationCall { + #[allow(missing_docs)] + pub multiDelegatedRequests: alloy::sol_types::private::Vec< + ::RustType, + >, + } + ///Container type for the return parameters of the [`multiRevokeByDelegation((bytes32,(bytes32,uint256)[],(uint8,bytes32,bytes32)[],address,uint64)[])`](multiRevokeByDelegationCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct multiRevokeByDelegationReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Array, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Vec< + ::RustType, + >, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: multiRevokeByDelegationCall) -> Self { + (value.multiDelegatedRequests,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for multiRevokeByDelegationCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + multiDelegatedRequests: tuple.0, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: multiRevokeByDelegationReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for multiRevokeByDelegationReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl multiRevokeByDelegationReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken< + '_, + > { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for multiRevokeByDelegationCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Array, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = multiRevokeByDelegationReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "multiRevokeByDelegation((bytes32,(bytes32,uint256)[],(uint8,bytes32,bytes32)[],address,uint64)[])"; + const SELECTOR: [u8; 4] = [14u8, 171u8, 246u8, 96u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize( + &self.multiDelegatedRequests, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + multiRevokeByDelegationReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `multiRevokeOffchain(bytes32[])` and selector `0x13893f61`. +```solidity +function multiRevokeOffchain(bytes32[] memory data) external returns (uint64); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct multiRevokeOffchainCall { + #[allow(missing_docs)] + pub data: alloy::sol_types::private::Vec< + alloy::sol_types::private::FixedBytes<32>, + >, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`multiRevokeOffchain(bytes32[])`](multiRevokeOffchainCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct multiRevokeOffchainReturn { + #[allow(missing_docs)] + pub _0: u64, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Array< + alloy::sol_types::sol_data::FixedBytes<32>, + >, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Vec< + alloy::sol_types::private::FixedBytes<32>, + >, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: multiRevokeOffchainCall) -> Self { + (value.data,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for multiRevokeOffchainCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { data: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u64,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: multiRevokeOffchainReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for multiRevokeOffchainReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for multiRevokeOffchainCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Array< + alloy::sol_types::sol_data::FixedBytes<32>, + >, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u64; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "multiRevokeOffchain(bytes32[])"; + const SELECTOR: [u8; 4] = [19u8, 137u8, 63u8, 97u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + , + > as alloy_sol_types::SolType>::tokenize(&self.data), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: multiRevokeOffchainReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: multiRevokeOffchainReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `multiTimestamp(bytes32[])` and selector `0xe71ff365`. +```solidity +function multiTimestamp(bytes32[] memory data) external returns (uint64); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct multiTimestampCall { + #[allow(missing_docs)] + pub data: alloy::sol_types::private::Vec< + alloy::sol_types::private::FixedBytes<32>, + >, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`multiTimestamp(bytes32[])`](multiTimestampCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct multiTimestampReturn { + #[allow(missing_docs)] + pub _0: u64, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Array< + alloy::sol_types::sol_data::FixedBytes<32>, + >, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Vec< + alloy::sol_types::private::FixedBytes<32>, + >, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: multiTimestampCall) -> Self { + (value.data,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for multiTimestampCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { data: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u64,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: multiTimestampReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for multiTimestampReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for multiTimestampCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Array< + alloy::sol_types::sol_data::FixedBytes<32>, + >, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u64; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "multiTimestamp(bytes32[])"; + const SELECTOR: [u8; 4] = [231u8, 31u8, 243u8, 101u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + , + > as alloy_sol_types::SolType>::tokenize(&self.data), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: multiTimestampReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: multiTimestampReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `revoke((bytes32,(bytes32,uint256)))` and selector `0x46926267`. +```solidity +function revoke(RevocationRequest memory request) external payable; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct revokeCall { + #[allow(missing_docs)] + pub request: ::RustType, + } + ///Container type for the return parameters of the [`revoke((bytes32,(bytes32,uint256)))`](revokeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct revokeReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (RevocationRequest,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: revokeCall) -> Self { + (value.request,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for revokeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { request: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: revokeReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for revokeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl revokeReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for revokeCall { + type Parameters<'a> = (RevocationRequest,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = revokeReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "revoke((bytes32,(bytes32,uint256)))"; + const SELECTOR: [u8; 4] = [70u8, 146u8, 98u8, 103u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.request, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + revokeReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `revokeByDelegation((bytes32,(bytes32,uint256),(uint8,bytes32,bytes32),address,uint64))` and selector `0xa6d4dbc7`. +```solidity +function revokeByDelegation(DelegatedRevocationRequest memory delegatedRequest) external payable; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct revokeByDelegationCall { + #[allow(missing_docs)] + pub delegatedRequest: ::RustType, + } + ///Container type for the return parameters of the [`revokeByDelegation((bytes32,(bytes32,uint256),(uint8,bytes32,bytes32),address,uint64))`](revokeByDelegationCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct revokeByDelegationReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (DelegatedRevocationRequest,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: revokeByDelegationCall) -> Self { + (value.delegatedRequest,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for revokeByDelegationCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { delegatedRequest: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: revokeByDelegationReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for revokeByDelegationReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl revokeByDelegationReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for revokeByDelegationCall { + type Parameters<'a> = (DelegatedRevocationRequest,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = revokeByDelegationReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "revokeByDelegation((bytes32,(bytes32,uint256),(uint8,bytes32,bytes32),address,uint64))"; + const SELECTOR: [u8; 4] = [166u8, 212u8, 219u8, 199u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.delegatedRequest, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + revokeByDelegationReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `revokeOffchain(bytes32)` and selector `0xcf190f34`. +```solidity +function revokeOffchain(bytes32 data) external returns (uint64); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct revokeOffchainCall { + #[allow(missing_docs)] + pub data: alloy::sol_types::private::FixedBytes<32>, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`revokeOffchain(bytes32)`](revokeOffchainCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct revokeOffchainReturn { + #[allow(missing_docs)] + pub _0: u64, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: revokeOffchainCall) -> Self { + (value.data,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for revokeOffchainCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { data: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u64,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: revokeOffchainReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for revokeOffchainReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for revokeOffchainCall { + type Parameters<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u64; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "revokeOffchain(bytes32)"; + const SELECTOR: [u8; 4] = [207u8, 25u8, 15u8, 52u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.data), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: revokeOffchainReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: revokeOffchainReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `timestamp(bytes32)` and selector `0x4d003070`. +```solidity +function timestamp(bytes32 data) external returns (uint64); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct timestampCall { + #[allow(missing_docs)] + pub data: alloy::sol_types::private::FixedBytes<32>, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`timestamp(bytes32)`](timestampCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct timestampReturn { + #[allow(missing_docs)] + pub _0: u64, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: timestampCall) -> Self { + (value.data,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for timestampCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { data: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u64,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: timestampReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for timestampReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for timestampCall { + type Parameters<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u64; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "timestamp(bytes32)"; + const SELECTOR: [u8; 4] = [77u8, 0u8, 48u8, 112u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.data), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: timestampReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: timestampReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `version()` and selector `0x54fd4d50`. +```solidity +function version() external view returns (string memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`version()`](versionCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for versionCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::String; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "version()"; + const SELECTOR: [u8; 4] = [84u8, 253u8, 77u8, 80u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + } + }; + ///Container for all the [`EAS`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum EASCalls { + #[allow(missing_docs)] + attest(attestCall), + #[allow(missing_docs)] + attestByDelegation(attestByDelegationCall), + #[allow(missing_docs)] + getAttestTypeHash(getAttestTypeHashCall), + #[allow(missing_docs)] + getAttestation(getAttestationCall), + #[allow(missing_docs)] + getDomainSeparator(getDomainSeparatorCall), + #[allow(missing_docs)] + getName(getNameCall), + #[allow(missing_docs)] + getNonce(getNonceCall), + #[allow(missing_docs)] + getRevokeOffchain(getRevokeOffchainCall), + #[allow(missing_docs)] + getRevokeTypeHash(getRevokeTypeHashCall), + #[allow(missing_docs)] + getSchemaRegistry(getSchemaRegistryCall), + #[allow(missing_docs)] + getTimestamp(getTimestampCall), + #[allow(missing_docs)] + increaseNonce(increaseNonceCall), + #[allow(missing_docs)] + isAttestationValid(isAttestationValidCall), + #[allow(missing_docs)] + multiAttest(multiAttestCall), + #[allow(missing_docs)] + multiAttestByDelegation(multiAttestByDelegationCall), + #[allow(missing_docs)] + multiRevoke(multiRevokeCall), + #[allow(missing_docs)] + multiRevokeByDelegation(multiRevokeByDelegationCall), + #[allow(missing_docs)] + multiRevokeOffchain(multiRevokeOffchainCall), + #[allow(missing_docs)] + multiTimestamp(multiTimestampCall), + #[allow(missing_docs)] + revoke(revokeCall), + #[allow(missing_docs)] + revokeByDelegation(revokeByDelegationCall), + #[allow(missing_docs)] + revokeOffchain(revokeOffchainCall), + #[allow(missing_docs)] + timestamp(timestampCall), + #[allow(missing_docs)] + version(versionCall), + } + impl EASCalls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [14u8, 171u8, 246u8, 96u8], + [18u8, 177u8, 26u8, 23u8], + [19u8, 137u8, 63u8, 97u8], + [23u8, 215u8, 222u8, 124u8], + [45u8, 3u8, 53u8, 171u8], + [60u8, 4u8, 39u8, 21u8], + [68u8, 173u8, 201u8, 14u8], + [70u8, 146u8, 98u8, 103u8], + [76u8, 183u8, 233u8, 229u8], + [77u8, 0u8, 48u8, 112u8], + [84u8, 253u8, 77u8, 80u8], + [121u8, 247u8, 87u8, 58u8], + [149u8, 65u8, 21u8, 37u8], + [163u8, 17u8, 42u8, 100u8], + [166u8, 212u8, 219u8, 199u8], + [180u8, 105u8, 49u8, 141u8], + [184u8, 48u8, 16u8, 211u8], + [207u8, 25u8, 15u8, 52u8], + [212u8, 92u8, 68u8, 53u8], + [227u8, 11u8, 181u8, 99u8], + [231u8, 31u8, 243u8, 101u8], + [237u8, 36u8, 145u8, 29u8], + [241u8, 11u8, 92u8, 200u8], + [241u8, 115u8, 37u8, 231u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(multiRevokeByDelegation), + ::core::stringify!(getAttestTypeHash), + ::core::stringify!(multiRevokeOffchain), + ::core::stringify!(getName), + ::core::stringify!(getNonce), + ::core::stringify!(attestByDelegation), + ::core::stringify!(multiAttest), + ::core::stringify!(revoke), + ::core::stringify!(multiRevoke), + ::core::stringify!(timestamp), + ::core::stringify!(version), + ::core::stringify!(increaseNonce), + ::core::stringify!(multiAttestByDelegation), + ::core::stringify!(getAttestation), + ::core::stringify!(revokeByDelegation), + ::core::stringify!(getRevokeOffchain), + ::core::stringify!(getRevokeTypeHash), + ::core::stringify!(revokeOffchain), + ::core::stringify!(getTimestamp), + ::core::stringify!(isAttestationValid), + ::core::stringify!(multiTimestamp), + ::core::stringify!(getDomainSeparator), + ::core::stringify!(getSchemaRegistry), + ::core::stringify!(attest), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for EASCalls { + const NAME: &'static str = "EASCalls"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 24usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::attest(_) => ::SELECTOR, + Self::attestByDelegation(_) => { + ::SELECTOR + } + Self::getAttestTypeHash(_) => { + ::SELECTOR + } + Self::getAttestation(_) => { + ::SELECTOR + } + Self::getDomainSeparator(_) => { + ::SELECTOR + } + Self::getName(_) => ::SELECTOR, + Self::getNonce(_) => ::SELECTOR, + Self::getRevokeOffchain(_) => { + ::SELECTOR + } + Self::getRevokeTypeHash(_) => { + ::SELECTOR + } + Self::getSchemaRegistry(_) => { + ::SELECTOR + } + Self::getTimestamp(_) => { + ::SELECTOR + } + Self::increaseNonce(_) => { + ::SELECTOR + } + Self::isAttestationValid(_) => { + ::SELECTOR + } + Self::multiAttest(_) => { + ::SELECTOR + } + Self::multiAttestByDelegation(_) => { + ::SELECTOR + } + Self::multiRevoke(_) => { + ::SELECTOR + } + Self::multiRevokeByDelegation(_) => { + ::SELECTOR + } + Self::multiRevokeOffchain(_) => { + ::SELECTOR + } + Self::multiTimestamp(_) => { + ::SELECTOR + } + Self::revoke(_) => ::SELECTOR, + Self::revokeByDelegation(_) => { + ::SELECTOR + } + Self::revokeOffchain(_) => { + ::SELECTOR + } + Self::timestamp(_) => { + ::SELECTOR + } + Self::version(_) => ::SELECTOR, + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn(&[u8]) -> alloy_sol_types::Result] = &[ + { + fn multiRevokeByDelegation( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(EASCalls::multiRevokeByDelegation) + } + multiRevokeByDelegation + }, + { + fn getAttestTypeHash( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(EASCalls::getAttestTypeHash) + } + getAttestTypeHash + }, + { + fn multiRevokeOffchain( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(EASCalls::multiRevokeOffchain) + } + multiRevokeOffchain + }, + { + fn getName(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(EASCalls::getName) + } + getName + }, + { + fn getNonce(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(EASCalls::getNonce) + } + getNonce + }, + { + fn attestByDelegation( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(EASCalls::attestByDelegation) + } + attestByDelegation + }, + { + fn multiAttest(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(EASCalls::multiAttest) + } + multiAttest + }, + { + fn revoke(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(EASCalls::revoke) + } + revoke + }, + { + fn multiRevoke(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(EASCalls::multiRevoke) + } + multiRevoke + }, + { + fn timestamp(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(EASCalls::timestamp) + } + timestamp + }, + { + fn version(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(EASCalls::version) + } + version + }, + { + fn increaseNonce(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(EASCalls::increaseNonce) + } + increaseNonce + }, + { + fn multiAttestByDelegation( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(EASCalls::multiAttestByDelegation) + } + multiAttestByDelegation + }, + { + fn getAttestation(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(EASCalls::getAttestation) + } + getAttestation + }, + { + fn revokeByDelegation( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(EASCalls::revokeByDelegation) + } + revokeByDelegation + }, + { + fn getRevokeOffchain( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(EASCalls::getRevokeOffchain) + } + getRevokeOffchain + }, + { + fn getRevokeTypeHash( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(EASCalls::getRevokeTypeHash) + } + getRevokeTypeHash + }, + { + fn revokeOffchain(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(EASCalls::revokeOffchain) + } + revokeOffchain + }, + { + fn getTimestamp(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(EASCalls::getTimestamp) + } + getTimestamp + }, + { + fn isAttestationValid( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(EASCalls::isAttestationValid) + } + isAttestationValid + }, + { + fn multiTimestamp(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(EASCalls::multiTimestamp) + } + multiTimestamp + }, + { + fn getDomainSeparator( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(EASCalls::getDomainSeparator) + } + getDomainSeparator + }, + { + fn getSchemaRegistry( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(EASCalls::getSchemaRegistry) + } + getSchemaRegistry + }, + { + fn attest(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(EASCalls::attest) + } + attest + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn multiRevokeByDelegation( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(EASCalls::multiRevokeByDelegation) + } + multiRevokeByDelegation + }, + { + fn getAttestTypeHash( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(EASCalls::getAttestTypeHash) + } + getAttestTypeHash + }, + { + fn multiRevokeOffchain( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(EASCalls::multiRevokeOffchain) + } + multiRevokeOffchain + }, + { + fn getName(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(EASCalls::getName) + } + getName + }, + { + fn getNonce(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(EASCalls::getNonce) + } + getNonce + }, + { + fn attestByDelegation( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(EASCalls::attestByDelegation) + } + attestByDelegation + }, + { + fn multiAttest(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(EASCalls::multiAttest) + } + multiAttest + }, + { + fn revoke(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(EASCalls::revoke) + } + revoke + }, + { + fn multiRevoke(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(EASCalls::multiRevoke) + } + multiRevoke + }, + { + fn timestamp(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(EASCalls::timestamp) + } + timestamp + }, + { + fn version(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(EASCalls::version) + } + version + }, + { + fn increaseNonce(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(EASCalls::increaseNonce) + } + increaseNonce + }, + { + fn multiAttestByDelegation( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(EASCalls::multiAttestByDelegation) + } + multiAttestByDelegation + }, + { + fn getAttestation(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(EASCalls::getAttestation) + } + getAttestation + }, + { + fn revokeByDelegation( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(EASCalls::revokeByDelegation) + } + revokeByDelegation + }, + { + fn getRevokeOffchain( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(EASCalls::getRevokeOffchain) + } + getRevokeOffchain + }, + { + fn getRevokeTypeHash( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(EASCalls::getRevokeTypeHash) + } + getRevokeTypeHash + }, + { + fn revokeOffchain(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(EASCalls::revokeOffchain) + } + revokeOffchain + }, + { + fn getTimestamp(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(EASCalls::getTimestamp) + } + getTimestamp + }, + { + fn isAttestationValid( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(EASCalls::isAttestationValid) + } + isAttestationValid + }, + { + fn multiTimestamp(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(EASCalls::multiTimestamp) + } + multiTimestamp + }, + { + fn getDomainSeparator( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(EASCalls::getDomainSeparator) + } + getDomainSeparator + }, + { + fn getSchemaRegistry( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(EASCalls::getSchemaRegistry) + } + getSchemaRegistry + }, + { + fn attest(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(EASCalls::attest) + } + attest + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::attest(inner) => { + ::abi_encoded_size(inner) + } + Self::attestByDelegation(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::getAttestTypeHash(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::getAttestation(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::getDomainSeparator(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::getName(inner) => { + ::abi_encoded_size(inner) + } + Self::getNonce(inner) => { + ::abi_encoded_size(inner) + } + Self::getRevokeOffchain(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::getRevokeTypeHash(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::getSchemaRegistry(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::getTimestamp(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::increaseNonce(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::isAttestationValid(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::multiAttest(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::multiAttestByDelegation(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::multiRevoke(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::multiRevokeByDelegation(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::multiRevokeOffchain(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::multiTimestamp(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::revoke(inner) => { + ::abi_encoded_size(inner) + } + Self::revokeByDelegation(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::revokeOffchain(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::timestamp(inner) => { + ::abi_encoded_size(inner) + } + Self::version(inner) => { + ::abi_encoded_size(inner) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::attest(inner) => { + ::abi_encode_raw(inner, out) + } + Self::attestByDelegation(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::getAttestTypeHash(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::getAttestation(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::getDomainSeparator(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::getName(inner) => { + ::abi_encode_raw(inner, out) + } + Self::getNonce(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::getRevokeOffchain(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::getRevokeTypeHash(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::getSchemaRegistry(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::getTimestamp(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::increaseNonce(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::isAttestationValid(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::multiAttest(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::multiAttestByDelegation(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::multiRevoke(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::multiRevokeByDelegation(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::multiRevokeOffchain(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::multiTimestamp(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::revoke(inner) => { + ::abi_encode_raw(inner, out) + } + Self::revokeByDelegation(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::revokeOffchain(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::timestamp(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::version(inner) => { + ::abi_encode_raw(inner, out) + } + } + } + } + ///Container for all the [`EAS`](self) custom errors. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum EASErrors { + #[allow(missing_docs)] + AccessDenied(AccessDenied), + #[allow(missing_docs)] + AlreadyRevoked(AlreadyRevoked), + #[allow(missing_docs)] + AlreadyRevokedOffchain(AlreadyRevokedOffchain), + #[allow(missing_docs)] + AlreadyTimestamped(AlreadyTimestamped), + #[allow(missing_docs)] + DeadlineExpired(DeadlineExpired), + #[allow(missing_docs)] + InsufficientValue(InsufficientValue), + #[allow(missing_docs)] + InvalidAttestation(InvalidAttestation), + #[allow(missing_docs)] + InvalidAttestations(InvalidAttestations), + #[allow(missing_docs)] + InvalidExpirationTime(InvalidExpirationTime), + #[allow(missing_docs)] + InvalidLength(InvalidLength), + #[allow(missing_docs)] + InvalidNonce(InvalidNonce), + #[allow(missing_docs)] + InvalidOffset(InvalidOffset), + #[allow(missing_docs)] + InvalidRegistry(InvalidRegistry), + #[allow(missing_docs)] + InvalidRevocation(InvalidRevocation), + #[allow(missing_docs)] + InvalidRevocations(InvalidRevocations), + #[allow(missing_docs)] + InvalidSchema(InvalidSchema), + #[allow(missing_docs)] + InvalidSignature(InvalidSignature), + #[allow(missing_docs)] + InvalidVerifier(InvalidVerifier), + #[allow(missing_docs)] + Irrevocable(Irrevocable), + #[allow(missing_docs)] + NotFound(NotFound), + #[allow(missing_docs)] + NotPayable(NotPayable), + #[allow(missing_docs)] + WrongSchema(WrongSchema), + } + impl EASErrors { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [1u8, 218u8, 21u8, 114u8], + [8u8, 232u8, 185u8, 55u8], + [17u8, 1u8, 18u8, 148u8], + [17u8, 161u8, 230u8, 151u8], + [21u8, 116u8, 249u8, 243u8], + [21u8, 123u8, 212u8, 195u8], + [26u8, 183u8, 218u8, 107u8], + [33u8, 184u8, 238u8, 185u8], + [46u8, 38u8, 121u8, 70u8], + [76u8, 168u8, 136u8, 103u8], + [117u8, 102u8, 136u8, 254u8], + [139u8, 170u8, 87u8, 159u8], + [144u8, 94u8, 113u8, 7u8], + [148u8, 125u8, 90u8, 132u8], + [186u8, 163u8, 222u8, 95u8], + [189u8, 139u8, 168u8, 77u8], + [191u8, 47u8, 58u8, 139u8], + [191u8, 55u8, 178u8, 14u8], + [197u8, 114u8, 59u8, 81u8], + [204u8, 243u8, 187u8, 39u8], + [232u8, 190u8, 232u8, 57u8], + [236u8, 157u8, 110u8, 235u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(InvalidOffset), + ::core::stringify!(InvalidExpirationTime), + ::core::stringify!(InsufficientValue), + ::core::stringify!(InvalidRegistry), + ::core::stringify!(NotPayable), + ::core::stringify!(Irrevocable), + ::core::stringify!(DeadlineExpired), + ::core::stringify!(WrongSchema), + ::core::stringify!(AlreadyTimestamped), + ::core::stringify!(AccessDenied), + ::core::stringify!(InvalidNonce), + ::core::stringify!(InvalidSignature), + ::core::stringify!(AlreadyRevoked), + ::core::stringify!(InvalidLength), + ::core::stringify!(InvalidVerifier), + ::core::stringify!(InvalidAttestation), + ::core::stringify!(InvalidRevocations), + ::core::stringify!(InvalidSchema), + ::core::stringify!(NotFound), + ::core::stringify!(InvalidRevocation), + ::core::stringify!(InvalidAttestations), + ::core::stringify!(AlreadyRevokedOffchain), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for EASErrors { + const NAME: &'static str = "EASErrors"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 22usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::AccessDenied(_) => { + ::SELECTOR + } + Self::AlreadyRevoked(_) => { + ::SELECTOR + } + Self::AlreadyRevokedOffchain(_) => { + ::SELECTOR + } + Self::AlreadyTimestamped(_) => { + ::SELECTOR + } + Self::DeadlineExpired(_) => { + ::SELECTOR + } + Self::InsufficientValue(_) => { + ::SELECTOR + } + Self::InvalidAttestation(_) => { + ::SELECTOR + } + Self::InvalidAttestations(_) => { + ::SELECTOR + } + Self::InvalidExpirationTime(_) => { + ::SELECTOR + } + Self::InvalidLength(_) => { + ::SELECTOR + } + Self::InvalidNonce(_) => { + ::SELECTOR + } + Self::InvalidOffset(_) => { + ::SELECTOR + } + Self::InvalidRegistry(_) => { + ::SELECTOR + } + Self::InvalidRevocation(_) => { + ::SELECTOR + } + Self::InvalidRevocations(_) => { + ::SELECTOR + } + Self::InvalidSchema(_) => { + ::SELECTOR + } + Self::InvalidSignature(_) => { + ::SELECTOR + } + Self::InvalidVerifier(_) => { + ::SELECTOR + } + Self::Irrevocable(_) => { + ::SELECTOR + } + Self::NotFound(_) => ::SELECTOR, + Self::NotPayable(_) => { + ::SELECTOR + } + Self::WrongSchema(_) => { + ::SELECTOR + } + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn(&[u8]) -> alloy_sol_types::Result] = &[ + { + fn InvalidOffset(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(EASErrors::InvalidOffset) + } + InvalidOffset + }, + { + fn InvalidExpirationTime( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(EASErrors::InvalidExpirationTime) + } + InvalidExpirationTime + }, + { + fn InsufficientValue( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(EASErrors::InsufficientValue) + } + InsufficientValue + }, + { + fn InvalidRegistry( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(EASErrors::InvalidRegistry) + } + InvalidRegistry + }, + { + fn NotPayable(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(EASErrors::NotPayable) + } + NotPayable + }, + { + fn Irrevocable(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(EASErrors::Irrevocable) + } + Irrevocable + }, + { + fn DeadlineExpired( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(EASErrors::DeadlineExpired) + } + DeadlineExpired + }, + { + fn WrongSchema(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(EASErrors::WrongSchema) + } + WrongSchema + }, + { + fn AlreadyTimestamped( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(EASErrors::AlreadyTimestamped) + } + AlreadyTimestamped + }, + { + fn AccessDenied(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(EASErrors::AccessDenied) + } + AccessDenied + }, + { + fn InvalidNonce(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(EASErrors::InvalidNonce) + } + InvalidNonce + }, + { + fn InvalidSignature( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(EASErrors::InvalidSignature) + } + InvalidSignature + }, + { + fn AlreadyRevoked( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(EASErrors::AlreadyRevoked) + } + AlreadyRevoked + }, + { + fn InvalidLength(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(EASErrors::InvalidLength) + } + InvalidLength + }, + { + fn InvalidVerifier( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(EASErrors::InvalidVerifier) + } + InvalidVerifier + }, + { + fn InvalidAttestation( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(EASErrors::InvalidAttestation) + } + InvalidAttestation + }, + { + fn InvalidRevocations( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(EASErrors::InvalidRevocations) + } + InvalidRevocations + }, + { + fn InvalidSchema(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(EASErrors::InvalidSchema) + } + InvalidSchema + }, + { + fn NotFound(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(EASErrors::NotFound) + } + NotFound + }, + { + fn InvalidRevocation( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(EASErrors::InvalidRevocation) + } + InvalidRevocation + }, + { + fn InvalidAttestations( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(EASErrors::InvalidAttestations) + } + InvalidAttestations + }, + { + fn AlreadyRevokedOffchain( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(EASErrors::AlreadyRevokedOffchain) + } + AlreadyRevokedOffchain + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn InvalidOffset(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(EASErrors::InvalidOffset) + } + InvalidOffset + }, + { + fn InvalidExpirationTime( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(EASErrors::InvalidExpirationTime) + } + InvalidExpirationTime + }, + { + fn InsufficientValue( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(EASErrors::InsufficientValue) + } + InsufficientValue + }, + { + fn InvalidRegistry( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(EASErrors::InvalidRegistry) + } + InvalidRegistry + }, + { + fn NotPayable(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(EASErrors::NotPayable) + } + NotPayable + }, + { + fn Irrevocable(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(EASErrors::Irrevocable) + } + Irrevocable + }, + { + fn DeadlineExpired( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(EASErrors::DeadlineExpired) + } + DeadlineExpired + }, + { + fn WrongSchema(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(EASErrors::WrongSchema) + } + WrongSchema + }, + { + fn AlreadyTimestamped( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(EASErrors::AlreadyTimestamped) + } + AlreadyTimestamped + }, + { + fn AccessDenied(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(EASErrors::AccessDenied) + } + AccessDenied + }, + { + fn InvalidNonce(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(EASErrors::InvalidNonce) + } + InvalidNonce + }, + { + fn InvalidSignature( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(EASErrors::InvalidSignature) + } + InvalidSignature + }, + { + fn AlreadyRevoked( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(EASErrors::AlreadyRevoked) + } + AlreadyRevoked + }, + { + fn InvalidLength(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(EASErrors::InvalidLength) + } + InvalidLength + }, + { + fn InvalidVerifier( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(EASErrors::InvalidVerifier) + } + InvalidVerifier + }, + { + fn InvalidAttestation( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(EASErrors::InvalidAttestation) + } + InvalidAttestation + }, + { + fn InvalidRevocations( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(EASErrors::InvalidRevocations) + } + InvalidRevocations + }, + { + fn InvalidSchema(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(EASErrors::InvalidSchema) + } + InvalidSchema + }, + { + fn NotFound(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(EASErrors::NotFound) + } + NotFound + }, + { + fn InvalidRevocation( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(EASErrors::InvalidRevocation) + } + InvalidRevocation + }, + { + fn InvalidAttestations( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(EASErrors::InvalidAttestations) + } + InvalidAttestations + }, + { + fn AlreadyRevokedOffchain( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(EASErrors::AlreadyRevokedOffchain) + } + AlreadyRevokedOffchain + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::AccessDenied(inner) => { + ::abi_encoded_size(inner) + } + Self::AlreadyRevoked(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::AlreadyRevokedOffchain(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::AlreadyTimestamped(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::DeadlineExpired(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::InsufficientValue(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::InvalidAttestation(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::InvalidAttestations(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::InvalidExpirationTime(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::InvalidLength(inner) => { + ::abi_encoded_size(inner) + } + Self::InvalidNonce(inner) => { + ::abi_encoded_size(inner) + } + Self::InvalidOffset(inner) => { + ::abi_encoded_size(inner) + } + Self::InvalidRegistry(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::InvalidRevocation(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::InvalidRevocations(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::InvalidSchema(inner) => { + ::abi_encoded_size(inner) + } + Self::InvalidSignature(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::InvalidVerifier(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::Irrevocable(inner) => { + ::abi_encoded_size(inner) + } + Self::NotFound(inner) => { + ::abi_encoded_size(inner) + } + Self::NotPayable(inner) => { + ::abi_encoded_size(inner) + } + Self::WrongSchema(inner) => { + ::abi_encoded_size(inner) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::AccessDenied(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::AlreadyRevoked(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::AlreadyRevokedOffchain(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::AlreadyTimestamped(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::DeadlineExpired(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InsufficientValue(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidAttestation(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidAttestations(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidExpirationTime(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidLength(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidNonce(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidOffset(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidRegistry(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidRevocation(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidRevocations(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidSchema(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidSignature(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidVerifier(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::Irrevocable(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::NotFound(inner) => { + ::abi_encode_raw(inner, out) + } + Self::NotPayable(inner) => { + ::abi_encode_raw(inner, out) + } + Self::WrongSchema(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + } + } + } + ///Container for all the [`EAS`](self) events. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum EASEvents { + #[allow(missing_docs)] + Attested(Attested), + #[allow(missing_docs)] + NonceIncreased(NonceIncreased), + #[allow(missing_docs)] + Revoked(Revoked), + #[allow(missing_docs)] + RevokedOffchain(RevokedOffchain), + #[allow(missing_docs)] + Timestamped(Timestamped), + } + impl EASEvents { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 32usize]] = &[ + [ + 87u8, 176u8, 154u8, 248u8, 119u8, 223u8, 144u8, 104u8, 253u8, 96u8, + 166u8, 157u8, 123u8, 33u8, 245u8, 87u8, 107u8, 139u8, 56u8, 149u8, 88u8, + 18u8, 214u8, 174u8, 74u8, 197u8, 41u8, 66u8, 241u8, 227u8, 143u8, 183u8, + ], + [ + 90u8, 175u8, 206u8, 235u8, 28u8, 122u8, 213u8, 142u8, 74u8, 132u8, 137u8, + 139u8, 222u8, 227u8, 124u8, 2u8, 192u8, 252u8, 70u8, 231u8, 210u8, 78u8, + 107u8, 96u8, 232u8, 32u8, 148u8, 73u8, 241u8, 131u8, 69u8, 159u8, + ], + [ + 139u8, 244u8, 107u8, 244u8, 207u8, 214u8, 116u8, 250u8, 115u8, 90u8, + 61u8, 99u8, 236u8, 28u8, 154u8, 212u8, 21u8, 63u8, 3u8, 60u8, 41u8, 3u8, + 65u8, 243u8, 165u8, 136u8, 183u8, 86u8, 133u8, 20u8, 27u8, 53u8, + ], + [ + 146u8, 161u8, 247u8, 164u8, 26u8, 124u8, 88u8, 90u8, 139u8, 9u8, 226u8, + 91u8, 25u8, 94u8, 34u8, 91u8, 29u8, 67u8, 36u8, 141u8, 172u8, 164u8, + 107u8, 15u8, 175u8, 158u8, 7u8, 146u8, 119u8, 122u8, 34u8, 41u8, + ], + [ + 249u8, 48u8, 166u8, 226u8, 82u8, 60u8, 156u8, 194u8, 152u8, 105u8, 24u8, + 115u8, 8u8, 122u8, 116u8, 5u8, 80u8, 184u8, 252u8, 133u8, 160u8, 104u8, + 8u8, 48u8, 65u8, 76u8, 20u8, 142u8, 217u8, 39u8, 246u8, 21u8, + ], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(NonceIncreased), + ::core::stringify!(Timestamped), + ::core::stringify!(Attested), + ::core::stringify!(RevokedOffchain), + ::core::stringify!(Revoked), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolEventInterface for EASEvents { + const NAME: &'static str = "EASEvents"; + const COUNT: usize = 5usize; + fn decode_raw_log( + topics: &[alloy_sol_types::Word], + data: &[u8], + ) -> alloy_sol_types::Result { + match topics.first().copied() { + Some(::SIGNATURE_HASH) => { + ::decode_raw_log(topics, data) + .map(Self::Attested) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::NonceIncreased) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log(topics, data) + .map(Self::Revoked) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::RevokedOffchain) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::Timestamped) + } + _ => { + alloy_sol_types::private::Err(alloy_sol_types::Error::InvalidLog { + name: ::NAME, + log: alloy_sol_types::private::Box::new( + alloy_sol_types::private::LogData::new_unchecked( + topics.to_vec(), + data.to_vec().into(), + ), + ), + }) + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for EASEvents { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + match self { + Self::Attested(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::NonceIncreased(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::Revoked(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::RevokedOffchain(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::Timestamped(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + } + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + match self { + Self::Attested(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::NonceIncreased(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::Revoked(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::RevokedOffchain(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::Timestamped(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`EAS`](self) contract instance. + +See the [wrapper's documentation](`EASInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(address: alloy_sol_types::private::Address, __provider: P) -> EASInstance { + EASInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + EASInstance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + EASInstance::::deploy_builder(__provider) + } + /**A [`EAS`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`EAS`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct EASInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for EASInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("EASInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > EASInstance { + /**Creates a new wrapper around an on-chain [`EAS`](self) contract instance. + +See the [wrapper's documentation](`EASInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy(__provider: P) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl EASInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> EASInstance { + EASInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > EASInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`attest`] function. + pub fn attest( + &self, + request: ::RustType, + ) -> alloy_contract::SolCallBuilder<&P, attestCall, N> { + self.call_builder(&attestCall { request }) + } + ///Creates a new call builder for the [`attestByDelegation`] function. + pub fn attestByDelegation( + &self, + delegatedRequest: ::RustType, + ) -> alloy_contract::SolCallBuilder<&P, attestByDelegationCall, N> { + self.call_builder( + &attestByDelegationCall { + delegatedRequest, + }, + ) + } + ///Creates a new call builder for the [`getAttestTypeHash`] function. + pub fn getAttestTypeHash( + &self, + ) -> alloy_contract::SolCallBuilder<&P, getAttestTypeHashCall, N> { + self.call_builder(&getAttestTypeHashCall) + } + ///Creates a new call builder for the [`getAttestation`] function. + pub fn getAttestation( + &self, + uid: alloy::sol_types::private::FixedBytes<32>, + ) -> alloy_contract::SolCallBuilder<&P, getAttestationCall, N> { + self.call_builder(&getAttestationCall { uid }) + } + ///Creates a new call builder for the [`getDomainSeparator`] function. + pub fn getDomainSeparator( + &self, + ) -> alloy_contract::SolCallBuilder<&P, getDomainSeparatorCall, N> { + self.call_builder(&getDomainSeparatorCall) + } + ///Creates a new call builder for the [`getName`] function. + pub fn getName(&self) -> alloy_contract::SolCallBuilder<&P, getNameCall, N> { + self.call_builder(&getNameCall) + } + ///Creates a new call builder for the [`getNonce`] function. + pub fn getNonce( + &self, + account: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, getNonceCall, N> { + self.call_builder(&getNonceCall { account }) + } + ///Creates a new call builder for the [`getRevokeOffchain`] function. + pub fn getRevokeOffchain( + &self, + revoker: alloy::sol_types::private::Address, + data: alloy::sol_types::private::FixedBytes<32>, + ) -> alloy_contract::SolCallBuilder<&P, getRevokeOffchainCall, N> { + self.call_builder( + &getRevokeOffchainCall { + revoker, + data, + }, + ) + } + ///Creates a new call builder for the [`getRevokeTypeHash`] function. + pub fn getRevokeTypeHash( + &self, + ) -> alloy_contract::SolCallBuilder<&P, getRevokeTypeHashCall, N> { + self.call_builder(&getRevokeTypeHashCall) + } + ///Creates a new call builder for the [`getSchemaRegistry`] function. + pub fn getSchemaRegistry( + &self, + ) -> alloy_contract::SolCallBuilder<&P, getSchemaRegistryCall, N> { + self.call_builder(&getSchemaRegistryCall) + } + ///Creates a new call builder for the [`getTimestamp`] function. + pub fn getTimestamp( + &self, + data: alloy::sol_types::private::FixedBytes<32>, + ) -> alloy_contract::SolCallBuilder<&P, getTimestampCall, N> { + self.call_builder(&getTimestampCall { data }) + } + ///Creates a new call builder for the [`increaseNonce`] function. + pub fn increaseNonce( + &self, + newNonce: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, increaseNonceCall, N> { + self.call_builder(&increaseNonceCall { newNonce }) + } + ///Creates a new call builder for the [`isAttestationValid`] function. + pub fn isAttestationValid( + &self, + uid: alloy::sol_types::private::FixedBytes<32>, + ) -> alloy_contract::SolCallBuilder<&P, isAttestationValidCall, N> { + self.call_builder(&isAttestationValidCall { uid }) + } + ///Creates a new call builder for the [`multiAttest`] function. + pub fn multiAttest( + &self, + multiRequests: alloy::sol_types::private::Vec< + ::RustType, + >, + ) -> alloy_contract::SolCallBuilder<&P, multiAttestCall, N> { + self.call_builder(&multiAttestCall { multiRequests }) + } + ///Creates a new call builder for the [`multiAttestByDelegation`] function. + pub fn multiAttestByDelegation( + &self, + multiDelegatedRequests: alloy::sol_types::private::Vec< + ::RustType, + >, + ) -> alloy_contract::SolCallBuilder<&P, multiAttestByDelegationCall, N> { + self.call_builder( + &multiAttestByDelegationCall { + multiDelegatedRequests, + }, + ) + } + ///Creates a new call builder for the [`multiRevoke`] function. + pub fn multiRevoke( + &self, + multiRequests: alloy::sol_types::private::Vec< + ::RustType, + >, + ) -> alloy_contract::SolCallBuilder<&P, multiRevokeCall, N> { + self.call_builder(&multiRevokeCall { multiRequests }) + } + ///Creates a new call builder for the [`multiRevokeByDelegation`] function. + pub fn multiRevokeByDelegation( + &self, + multiDelegatedRequests: alloy::sol_types::private::Vec< + ::RustType, + >, + ) -> alloy_contract::SolCallBuilder<&P, multiRevokeByDelegationCall, N> { + self.call_builder( + &multiRevokeByDelegationCall { + multiDelegatedRequests, + }, + ) + } + ///Creates a new call builder for the [`multiRevokeOffchain`] function. + pub fn multiRevokeOffchain( + &self, + data: alloy::sol_types::private::Vec< + alloy::sol_types::private::FixedBytes<32>, + >, + ) -> alloy_contract::SolCallBuilder<&P, multiRevokeOffchainCall, N> { + self.call_builder(&multiRevokeOffchainCall { data }) + } + ///Creates a new call builder for the [`multiTimestamp`] function. + pub fn multiTimestamp( + &self, + data: alloy::sol_types::private::Vec< + alloy::sol_types::private::FixedBytes<32>, + >, + ) -> alloy_contract::SolCallBuilder<&P, multiTimestampCall, N> { + self.call_builder(&multiTimestampCall { data }) + } + ///Creates a new call builder for the [`revoke`] function. + pub fn revoke( + &self, + request: ::RustType, + ) -> alloy_contract::SolCallBuilder<&P, revokeCall, N> { + self.call_builder(&revokeCall { request }) + } + ///Creates a new call builder for the [`revokeByDelegation`] function. + pub fn revokeByDelegation( + &self, + delegatedRequest: ::RustType, + ) -> alloy_contract::SolCallBuilder<&P, revokeByDelegationCall, N> { + self.call_builder( + &revokeByDelegationCall { + delegatedRequest, + }, + ) + } + ///Creates a new call builder for the [`revokeOffchain`] function. + pub fn revokeOffchain( + &self, + data: alloy::sol_types::private::FixedBytes<32>, + ) -> alloy_contract::SolCallBuilder<&P, revokeOffchainCall, N> { + self.call_builder(&revokeOffchainCall { data }) + } + ///Creates a new call builder for the [`timestamp`] function. + pub fn timestamp( + &self, + data: alloy::sol_types::private::FixedBytes<32>, + ) -> alloy_contract::SolCallBuilder<&P, timestampCall, N> { + self.call_builder(×tampCall { data }) + } + ///Creates a new call builder for the [`version`] function. + pub fn version(&self) -> alloy_contract::SolCallBuilder<&P, versionCall, N> { + self.call_builder(&versionCall) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > EASInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + ///Creates a new event filter for the [`Attested`] event. + pub fn Attested_filter(&self) -> alloy_contract::Event<&P, Attested, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`NonceIncreased`] event. + pub fn NonceIncreased_filter( + &self, + ) -> alloy_contract::Event<&P, NonceIncreased, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`Revoked`] event. + pub fn Revoked_filter(&self) -> alloy_contract::Event<&P, Revoked, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`RevokedOffchain`] event. + pub fn RevokedOffchain_filter( + &self, + ) -> alloy_contract::Event<&P, RevokedOffchain, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`Timestamped`] event. + pub fn Timestamped_filter(&self) -> alloy_contract::Event<&P, Timestamped, N> { + self.event_filter::() + } + } +} diff --git a/bindings/rust/src/eip1271_verifier.rs b/bindings/rust/src/eip1271_verifier.rs new file mode 100644 index 000000000..97d5056a0 --- /dev/null +++ b/bindings/rust/src/eip1271_verifier.rs @@ -0,0 +1,2045 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface EIP1271Verifier { + error InvalidNonce(); + + event NonceIncreased(uint256 oldNonce, uint256 newNonce); + + function getAttestTypeHash() external pure returns (bytes32); + function getDomainSeparator() external view returns (bytes32); + function getName() external view returns (string memory); + function getNonce(address account) external view returns (uint256); + function getRevokeTypeHash() external pure returns (bytes32); + function increaseNonce(uint256 newNonce) external; +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "function", + "name": "getAttestTypeHash", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "getDomainSeparator", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "getName", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "getNonce", + "inputs": [ + { + "name": "account", + "type": "address", + "internalType": "address" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "getRevokeTypeHash", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "increaseNonce", + "inputs": [ + { + "name": "newNonce", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "event", + "name": "NonceIncreased", + "inputs": [ + { + "name": "oldNonce", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + }, + { + "name": "newNonce", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "error", + "name": "InvalidNonce", + "inputs": [] + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod EIP1271Verifier { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"", + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidNonce()` and selector `0x756688fe`. +```solidity +error InvalidNonce(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidNonce; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InvalidNonce) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InvalidNonce { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidNonce { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidNonce()"; + const SELECTOR: [u8; 4] = [117u8, 102u8, 136u8, 254u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `NonceIncreased(uint256,uint256)` and selector `0x57b09af877df9068fd60a69d7b21f5576b8b38955812d6ae4ac52942f1e38fb7`. +```solidity +event NonceIncreased(uint256 oldNonce, uint256 newNonce); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct NonceIncreased { + #[allow(missing_docs)] + pub oldNonce: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub newNonce: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for NonceIncreased { + type DataTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + ); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,); + const SIGNATURE: &'static str = "NonceIncreased(uint256,uint256)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 87u8, 176u8, 154u8, 248u8, 119u8, 223u8, 144u8, 104u8, 253u8, 96u8, + 166u8, 157u8, 123u8, 33u8, 245u8, 87u8, 107u8, 139u8, 56u8, 149u8, 88u8, + 18u8, 214u8, 174u8, 74u8, 197u8, 41u8, 66u8, 241u8, 227u8, 143u8, 183u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + oldNonce: data.0, + newNonce: data.1, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.oldNonce), + as alloy_sol_types::SolType>::tokenize(&self.newNonce), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(),) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for NonceIncreased { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&NonceIncreased> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &NonceIncreased) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `getAttestTypeHash()` and selector `0x12b11a17`. +```solidity +function getAttestTypeHash() external pure returns (bytes32); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getAttestTypeHashCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`getAttestTypeHash()`](getAttestTypeHashCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getAttestTypeHashReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: getAttestTypeHashCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for getAttestTypeHashCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: getAttestTypeHashReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for getAttestTypeHashReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for getAttestTypeHashCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::FixedBytes<32>; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "getAttestTypeHash()"; + const SELECTOR: [u8; 4] = [18u8, 177u8, 26u8, 23u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: getAttestTypeHashReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: getAttestTypeHashReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `getDomainSeparator()` and selector `0xed24911d`. +```solidity +function getDomainSeparator() external view returns (bytes32); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getDomainSeparatorCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`getDomainSeparator()`](getDomainSeparatorCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getDomainSeparatorReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: getDomainSeparatorCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for getDomainSeparatorCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: getDomainSeparatorReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for getDomainSeparatorReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for getDomainSeparatorCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::FixedBytes<32>; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "getDomainSeparator()"; + const SELECTOR: [u8; 4] = [237u8, 36u8, 145u8, 29u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: getDomainSeparatorReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: getDomainSeparatorReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `getName()` and selector `0x17d7de7c`. +```solidity +function getName() external view returns (string memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getNameCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`getName()`](getNameCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getNameReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: getNameCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for getNameCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: getNameReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for getNameReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for getNameCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::String; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "getName()"; + const SELECTOR: [u8; 4] = [23u8, 215u8, 222u8, 124u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: getNameReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: getNameReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `getNonce(address)` and selector `0x2d0335ab`. +```solidity +function getNonce(address account) external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getNonceCall { + #[allow(missing_docs)] + pub account: alloy::sol_types::private::Address, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`getNonce(address)`](getNonceCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getNonceReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: getNonceCall) -> Self { + (value.account,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for getNonceCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { account: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: getNonceReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for getNonceReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for getNonceCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "getNonce(address)"; + const SELECTOR: [u8; 4] = [45u8, 3u8, 53u8, 171u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.account, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: getNonceReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: getNonceReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `getRevokeTypeHash()` and selector `0xb83010d3`. +```solidity +function getRevokeTypeHash() external pure returns (bytes32); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getRevokeTypeHashCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`getRevokeTypeHash()`](getRevokeTypeHashCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getRevokeTypeHashReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: getRevokeTypeHashCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for getRevokeTypeHashCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: getRevokeTypeHashReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for getRevokeTypeHashReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for getRevokeTypeHashCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::FixedBytes<32>; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "getRevokeTypeHash()"; + const SELECTOR: [u8; 4] = [184u8, 48u8, 16u8, 211u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: getRevokeTypeHashReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: getRevokeTypeHashReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `increaseNonce(uint256)` and selector `0x79f7573a`. +```solidity +function increaseNonce(uint256 newNonce) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct increaseNonceCall { + #[allow(missing_docs)] + pub newNonce: alloy::sol_types::private::primitives::aliases::U256, + } + ///Container type for the return parameters of the [`increaseNonce(uint256)`](increaseNonceCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct increaseNonceReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: increaseNonceCall) -> Self { + (value.newNonce,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for increaseNonceCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { newNonce: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: increaseNonceReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for increaseNonceReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl increaseNonceReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for increaseNonceCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = increaseNonceReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "increaseNonce(uint256)"; + const SELECTOR: [u8; 4] = [121u8, 247u8, 87u8, 58u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.newNonce), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + increaseNonceReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + ///Container for all the [`EIP1271Verifier`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum EIP1271VerifierCalls { + #[allow(missing_docs)] + getAttestTypeHash(getAttestTypeHashCall), + #[allow(missing_docs)] + getDomainSeparator(getDomainSeparatorCall), + #[allow(missing_docs)] + getName(getNameCall), + #[allow(missing_docs)] + getNonce(getNonceCall), + #[allow(missing_docs)] + getRevokeTypeHash(getRevokeTypeHashCall), + #[allow(missing_docs)] + increaseNonce(increaseNonceCall), + } + impl EIP1271VerifierCalls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [18u8, 177u8, 26u8, 23u8], + [23u8, 215u8, 222u8, 124u8], + [45u8, 3u8, 53u8, 171u8], + [121u8, 247u8, 87u8, 58u8], + [184u8, 48u8, 16u8, 211u8], + [237u8, 36u8, 145u8, 29u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(getAttestTypeHash), + ::core::stringify!(getName), + ::core::stringify!(getNonce), + ::core::stringify!(increaseNonce), + ::core::stringify!(getRevokeTypeHash), + ::core::stringify!(getDomainSeparator), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for EIP1271VerifierCalls { + const NAME: &'static str = "EIP1271VerifierCalls"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 6usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::getAttestTypeHash(_) => { + ::SELECTOR + } + Self::getDomainSeparator(_) => { + ::SELECTOR + } + Self::getName(_) => ::SELECTOR, + Self::getNonce(_) => ::SELECTOR, + Self::getRevokeTypeHash(_) => { + ::SELECTOR + } + Self::increaseNonce(_) => { + ::SELECTOR + } + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn getAttestTypeHash( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(EIP1271VerifierCalls::getAttestTypeHash) + } + getAttestTypeHash + }, + { + fn getName( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(EIP1271VerifierCalls::getName) + } + getName + }, + { + fn getNonce( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(EIP1271VerifierCalls::getNonce) + } + getNonce + }, + { + fn increaseNonce( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(EIP1271VerifierCalls::increaseNonce) + } + increaseNonce + }, + { + fn getRevokeTypeHash( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(EIP1271VerifierCalls::getRevokeTypeHash) + } + getRevokeTypeHash + }, + { + fn getDomainSeparator( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(EIP1271VerifierCalls::getDomainSeparator) + } + getDomainSeparator + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn getAttestTypeHash( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(EIP1271VerifierCalls::getAttestTypeHash) + } + getAttestTypeHash + }, + { + fn getName( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(EIP1271VerifierCalls::getName) + } + getName + }, + { + fn getNonce( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(EIP1271VerifierCalls::getNonce) + } + getNonce + }, + { + fn increaseNonce( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(EIP1271VerifierCalls::increaseNonce) + } + increaseNonce + }, + { + fn getRevokeTypeHash( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(EIP1271VerifierCalls::getRevokeTypeHash) + } + getRevokeTypeHash + }, + { + fn getDomainSeparator( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(EIP1271VerifierCalls::getDomainSeparator) + } + getDomainSeparator + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::getAttestTypeHash(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::getDomainSeparator(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::getName(inner) => { + ::abi_encoded_size(inner) + } + Self::getNonce(inner) => { + ::abi_encoded_size(inner) + } + Self::getRevokeTypeHash(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::increaseNonce(inner) => { + ::abi_encoded_size( + inner, + ) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::getAttestTypeHash(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::getDomainSeparator(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::getName(inner) => { + ::abi_encode_raw(inner, out) + } + Self::getNonce(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::getRevokeTypeHash(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::increaseNonce(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + } + } + } + ///Container for all the [`EIP1271Verifier`](self) custom errors. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum EIP1271VerifierErrors { + #[allow(missing_docs)] + InvalidNonce(InvalidNonce), + } + impl EIP1271VerifierErrors { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[[117u8, 102u8, 136u8, 254u8]]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(InvalidNonce), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for EIP1271VerifierErrors { + const NAME: &'static str = "EIP1271VerifierErrors"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 1usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::InvalidNonce(_) => { + ::SELECTOR + } + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn InvalidNonce( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(EIP1271VerifierErrors::InvalidNonce) + } + InvalidNonce + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn InvalidNonce( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(EIP1271VerifierErrors::InvalidNonce) + } + InvalidNonce + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::InvalidNonce(inner) => { + ::abi_encoded_size(inner) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::InvalidNonce(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + } + } + } + ///Container for all the [`EIP1271Verifier`](self) events. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum EIP1271VerifierEvents { + #[allow(missing_docs)] + NonceIncreased(NonceIncreased), + } + impl EIP1271VerifierEvents { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 32usize]] = &[ + [ + 87u8, 176u8, 154u8, 248u8, 119u8, 223u8, 144u8, 104u8, 253u8, 96u8, + 166u8, 157u8, 123u8, 33u8, 245u8, 87u8, 107u8, 139u8, 56u8, 149u8, 88u8, + 18u8, 214u8, 174u8, 74u8, 197u8, 41u8, 66u8, 241u8, 227u8, 143u8, 183u8, + ], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(NonceIncreased), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolEventInterface for EIP1271VerifierEvents { + const NAME: &'static str = "EIP1271VerifierEvents"; + const COUNT: usize = 1usize; + fn decode_raw_log( + topics: &[alloy_sol_types::Word], + data: &[u8], + ) -> alloy_sol_types::Result { + match topics.first().copied() { + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::NonceIncreased) + } + _ => { + alloy_sol_types::private::Err(alloy_sol_types::Error::InvalidLog { + name: ::NAME, + log: alloy_sol_types::private::Box::new( + alloy_sol_types::private::LogData::new_unchecked( + topics.to_vec(), + data.to_vec().into(), + ), + ), + }) + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for EIP1271VerifierEvents { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + match self { + Self::NonceIncreased(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + } + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + match self { + Self::NonceIncreased(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`EIP1271Verifier`](self) contract instance. + +See the [wrapper's documentation](`EIP1271VerifierInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> EIP1271VerifierInstance { + EIP1271VerifierInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + EIP1271VerifierInstance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + EIP1271VerifierInstance::::deploy_builder(__provider) + } + /**A [`EIP1271Verifier`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`EIP1271Verifier`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct EIP1271VerifierInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for EIP1271VerifierInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("EIP1271VerifierInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > EIP1271VerifierInstance { + /**Creates a new wrapper around an on-chain [`EIP1271Verifier`](self) contract instance. + +See the [wrapper's documentation](`EIP1271VerifierInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl EIP1271VerifierInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> EIP1271VerifierInstance { + EIP1271VerifierInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > EIP1271VerifierInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`getAttestTypeHash`] function. + pub fn getAttestTypeHash( + &self, + ) -> alloy_contract::SolCallBuilder<&P, getAttestTypeHashCall, N> { + self.call_builder(&getAttestTypeHashCall) + } + ///Creates a new call builder for the [`getDomainSeparator`] function. + pub fn getDomainSeparator( + &self, + ) -> alloy_contract::SolCallBuilder<&P, getDomainSeparatorCall, N> { + self.call_builder(&getDomainSeparatorCall) + } + ///Creates a new call builder for the [`getName`] function. + pub fn getName(&self) -> alloy_contract::SolCallBuilder<&P, getNameCall, N> { + self.call_builder(&getNameCall) + } + ///Creates a new call builder for the [`getNonce`] function. + pub fn getNonce( + &self, + account: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, getNonceCall, N> { + self.call_builder(&getNonceCall { account }) + } + ///Creates a new call builder for the [`getRevokeTypeHash`] function. + pub fn getRevokeTypeHash( + &self, + ) -> alloy_contract::SolCallBuilder<&P, getRevokeTypeHashCall, N> { + self.call_builder(&getRevokeTypeHashCall) + } + ///Creates a new call builder for the [`increaseNonce`] function. + pub fn increaseNonce( + &self, + newNonce: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, increaseNonceCall, N> { + self.call_builder(&increaseNonceCall { newNonce }) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > EIP1271VerifierInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + ///Creates a new event filter for the [`NonceIncreased`] event. + pub fn NonceIncreased_filter( + &self, + ) -> alloy_contract::Event<&P, NonceIncreased, N> { + self.event_filter::() + } + } +} diff --git a/bindings/rust/src/encoding.rs b/bindings/rust/src/encoding.rs new file mode 100644 index 000000000..976e5bda6 --- /dev/null +++ b/bindings/rust/src/encoding.rs @@ -0,0 +1,572 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface Encoding { + error Encoding_EmptySuperRoot(); + error Encoding_InvalidSuperRootVersion(); +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "error", + "name": "Encoding_EmptySuperRoot", + "inputs": [] + }, + { + "type": "error", + "name": "Encoding_InvalidSuperRootVersion", + "inputs": [] + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod Encoding { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`-`7`\x0B\x82\x82\x829\x80Q`\0\x1A`s\x14`*WcNH{q`\xE0\x1B`\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`\0\x80\xFD\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + 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`\0\x80\xFD\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `Encoding_EmptySuperRoot()` and selector `0x9103e7cd`. +```solidity +error Encoding_EmptySuperRoot(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct Encoding_EmptySuperRoot; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: Encoding_EmptySuperRoot) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for Encoding_EmptySuperRoot { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for Encoding_EmptySuperRoot { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "Encoding_EmptySuperRoot()"; + const SELECTOR: [u8; 4] = [145u8, 3u8, 231u8, 205u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `Encoding_InvalidSuperRootVersion()` and selector `0xc06b5238`. +```solidity +error Encoding_InvalidSuperRootVersion(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct Encoding_InvalidSuperRootVersion; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: Encoding_InvalidSuperRootVersion) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for Encoding_InvalidSuperRootVersion { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for Encoding_InvalidSuperRootVersion { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "Encoding_InvalidSuperRootVersion()"; + const SELECTOR: [u8; 4] = [192u8, 107u8, 82u8, 56u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + ///Container for all the [`Encoding`](self) custom errors. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum EncodingErrors { + #[allow(missing_docs)] + Encoding_EmptySuperRoot(Encoding_EmptySuperRoot), + #[allow(missing_docs)] + Encoding_InvalidSuperRootVersion(Encoding_InvalidSuperRootVersion), + } + impl EncodingErrors { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [145u8, 3u8, 231u8, 205u8], + [192u8, 107u8, 82u8, 56u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(Encoding_EmptySuperRoot), + ::core::stringify!(Encoding_InvalidSuperRootVersion), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for EncodingErrors { + const NAME: &'static str = "EncodingErrors"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 2usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::Encoding_EmptySuperRoot(_) => { + ::SELECTOR + } + Self::Encoding_InvalidSuperRootVersion(_) => { + ::SELECTOR + } + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn Encoding_EmptySuperRoot( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(EncodingErrors::Encoding_EmptySuperRoot) + } + Encoding_EmptySuperRoot + }, + { + fn Encoding_InvalidSuperRootVersion( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(EncodingErrors::Encoding_InvalidSuperRootVersion) + } + Encoding_InvalidSuperRootVersion + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn Encoding_EmptySuperRoot( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(EncodingErrors::Encoding_EmptySuperRoot) + } + Encoding_EmptySuperRoot + }, + { + fn Encoding_InvalidSuperRootVersion( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(EncodingErrors::Encoding_InvalidSuperRootVersion) + } + Encoding_InvalidSuperRootVersion + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::Encoding_EmptySuperRoot(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::Encoding_InvalidSuperRootVersion(inner) => { + ::abi_encoded_size( + inner, + ) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::Encoding_EmptySuperRoot(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::Encoding_InvalidSuperRootVersion(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`Encoding`](self) contract instance. + +See the [wrapper's documentation](`EncodingInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> EncodingInstance { + EncodingInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + EncodingInstance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + EncodingInstance::::deploy_builder(__provider) + } + /**A [`Encoding`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`Encoding`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct EncodingInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for EncodingInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("EncodingInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > EncodingInstance { + /**Creates a new wrapper around an on-chain [`Encoding`](self) contract instance. + +See the [wrapper's documentation](`EncodingInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl EncodingInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> EncodingInstance { + EncodingInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > EncodingInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > EncodingInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + } +} diff --git a/bindings/rust/src/eoa.rs b/bindings/rust/src/eoa.rs new file mode 100644 index 000000000..8c27ee00a --- /dev/null +++ b/bindings/rust/src/eoa.rs @@ -0,0 +1,210 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface EOA {} +``` + +...which was generated by the following JSON ABI: +```json +[] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod EOA { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`-`7`\x0B\x82\x82\x829\x80Q`\0\x1A`s\x14`*WcNH{q`\xE0\x1B`\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`\0\x80\xFD\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + 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`\0\x80\xFD\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`EOA`](self) contract instance. + +See the [wrapper's documentation](`EOAInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(address: alloy_sol_types::private::Address, __provider: P) -> EOAInstance { + EOAInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + EOAInstance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + EOAInstance::::deploy_builder(__provider) + } + /**A [`EOA`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`EOA`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct EOAInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for EOAInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("EOAInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > EOAInstance { + /**Creates a new wrapper around an on-chain [`EOA`](self) contract instance. + +See the [wrapper's documentation](`EOAInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy(__provider: P) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl EOAInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> EOAInstance { + EOAInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > EOAInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > EOAInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + } +} diff --git a/bindings/rust/src/erc721_bridge.rs b/bindings/rust/src/erc721_bridge.rs new file mode 100644 index 000000000..6e43c8cc2 --- /dev/null +++ b/bindings/rust/src/erc721_bridge.rs @@ -0,0 +1,2602 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface ERC721Bridge { + event ERC721BridgeFinalized(address indexed localToken, address indexed remoteToken, address indexed from, address to, uint256 tokenId, bytes extraData); + event ERC721BridgeInitiated(address indexed localToken, address indexed remoteToken, address indexed from, address to, uint256 tokenId, bytes extraData); + event Initialized(uint8 version); + + function MESSENGER() external view returns (address); + function OTHER_BRIDGE() external view returns (address); + function bridgeERC721(address _localToken, address _remoteToken, uint256 _tokenId, uint32 _minGasLimit, bytes memory _extraData) external; + function bridgeERC721To(address _localToken, address _remoteToken, address _to, uint256 _tokenId, uint32 _minGasLimit, bytes memory _extraData) external; + function messenger() external view returns (address); + function otherBridge() external view returns (address); + function paused() external view returns (bool); +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "function", + "name": "MESSENGER", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract ICrossDomainMessenger" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "OTHER_BRIDGE", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract ERC721Bridge" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "bridgeERC721", + "inputs": [ + { + "name": "_localToken", + "type": "address", + "internalType": "address" + }, + { + "name": "_remoteToken", + "type": "address", + "internalType": "address" + }, + { + "name": "_tokenId", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_minGasLimit", + "type": "uint32", + "internalType": "uint32" + }, + { + "name": "_extraData", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "bridgeERC721To", + "inputs": [ + { + "name": "_localToken", + "type": "address", + "internalType": "address" + }, + { + "name": "_remoteToken", + "type": "address", + "internalType": "address" + }, + { + "name": "_to", + "type": "address", + "internalType": "address" + }, + { + "name": "_tokenId", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_minGasLimit", + "type": "uint32", + "internalType": "uint32" + }, + { + "name": "_extraData", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "messenger", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract ICrossDomainMessenger" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "otherBridge", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract ERC721Bridge" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "paused", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "event", + "name": "ERC721BridgeFinalized", + "inputs": [ + { + "name": "localToken", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "remoteToken", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "from", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "to", + "type": "address", + "indexed": false, + "internalType": "address" + }, + { + "name": "tokenId", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + }, + { + "name": "extraData", + "type": "bytes", + "indexed": false, + "internalType": "bytes" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "ERC721BridgeInitiated", + "inputs": [ + { + "name": "localToken", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "remoteToken", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "from", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "to", + "type": "address", + "indexed": false, + "internalType": "address" + }, + { + "name": "tokenId", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + }, + { + "name": "extraData", + "type": "bytes", + "indexed": false, + "internalType": "bytes" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "Initialized", + "inputs": [ + { + "name": "version", + "type": "uint8", + "indexed": false, + "internalType": "uint8" + } + ], + "anonymous": false + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod ERC721Bridge { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"", + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `ERC721BridgeFinalized(address,address,address,address,uint256,bytes)` and selector `0x1f39bf6707b5d608453e0ae4c067b562bcc4c85c0f562ef5d2c774d2e7f131ac`. +```solidity +event ERC721BridgeFinalized(address indexed localToken, address indexed remoteToken, address indexed from, address to, uint256 tokenId, bytes extraData); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct ERC721BridgeFinalized { + #[allow(missing_docs)] + pub localToken: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub remoteToken: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub from: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub tokenId: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub extraData: alloy::sol_types::private::Bytes, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for ERC721BridgeFinalized { + type DataTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Bytes, + ); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "ERC721BridgeFinalized(address,address,address,address,uint256,bytes)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 31u8, 57u8, 191u8, 103u8, 7u8, 181u8, 214u8, 8u8, 69u8, 62u8, 10u8, + 228u8, 192u8, 103u8, 181u8, 98u8, 188u8, 196u8, 200u8, 92u8, 15u8, 86u8, + 46u8, 245u8, 210u8, 199u8, 116u8, 210u8, 231u8, 241u8, 49u8, 172u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + localToken: topics.1, + remoteToken: topics.2, + from: topics.3, + to: data.0, + tokenId: data.1, + extraData: data.2, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + ::tokenize( + &self.to, + ), + as alloy_sol_types::SolType>::tokenize(&self.tokenId), + ::tokenize( + &self.extraData, + ), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + ( + Self::SIGNATURE_HASH.into(), + self.localToken.clone(), + self.remoteToken.clone(), + self.from.clone(), + ) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.localToken, + ); + out[2usize] = ::encode_topic( + &self.remoteToken, + ); + out[3usize] = ::encode_topic( + &self.from, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for ERC721BridgeFinalized { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&ERC721BridgeFinalized> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &ERC721BridgeFinalized) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `ERC721BridgeInitiated(address,address,address,address,uint256,bytes)` and selector `0xb7460e2a880f256ebef3406116ff3eee0cee51ebccdc2a40698f87ebb2e9c1a5`. +```solidity +event ERC721BridgeInitiated(address indexed localToken, address indexed remoteToken, address indexed from, address to, uint256 tokenId, bytes extraData); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct ERC721BridgeInitiated { + #[allow(missing_docs)] + pub localToken: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub remoteToken: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub from: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub tokenId: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub extraData: alloy::sol_types::private::Bytes, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for ERC721BridgeInitiated { + type DataTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Bytes, + ); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "ERC721BridgeInitiated(address,address,address,address,uint256,bytes)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 183u8, 70u8, 14u8, 42u8, 136u8, 15u8, 37u8, 110u8, 190u8, 243u8, 64u8, + 97u8, 22u8, 255u8, 62u8, 238u8, 12u8, 238u8, 81u8, 235u8, 204u8, 220u8, + 42u8, 64u8, 105u8, 143u8, 135u8, 235u8, 178u8, 233u8, 193u8, 165u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + localToken: topics.1, + remoteToken: topics.2, + from: topics.3, + to: data.0, + tokenId: data.1, + extraData: data.2, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + ::tokenize( + &self.to, + ), + as alloy_sol_types::SolType>::tokenize(&self.tokenId), + ::tokenize( + &self.extraData, + ), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + ( + Self::SIGNATURE_HASH.into(), + self.localToken.clone(), + self.remoteToken.clone(), + self.from.clone(), + ) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.localToken, + ); + out[2usize] = ::encode_topic( + &self.remoteToken, + ); + out[3usize] = ::encode_topic( + &self.from, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for ERC721BridgeInitiated { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&ERC721BridgeInitiated> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &ERC721BridgeInitiated) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `Initialized(uint8)` and selector `0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498`. +```solidity +event Initialized(uint8 version); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct Initialized { + #[allow(missing_docs)] + pub version: u8, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for Initialized { + type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<8>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,); + const SIGNATURE: &'static str = "Initialized(uint8)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 127u8, 38u8, 184u8, 63u8, 249u8, 110u8, 31u8, 43u8, 106u8, 104u8, 47u8, + 19u8, 56u8, 82u8, 246u8, 121u8, 138u8, 9u8, 196u8, 101u8, 218u8, 149u8, + 146u8, 20u8, 96u8, 206u8, 251u8, 56u8, 71u8, 64u8, 36u8, 152u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { version: data.0 } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.version), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(),) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for Initialized { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&Initialized> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &Initialized) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `MESSENGER()` and selector `0x927ede2d`. +```solidity +function MESSENGER() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct MESSENGERCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`MESSENGER()`](MESSENGERCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct MESSENGERReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: MESSENGERCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for MESSENGERCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: MESSENGERReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for MESSENGERReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for MESSENGERCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "MESSENGER()"; + const SELECTOR: [u8; 4] = [146u8, 126u8, 222u8, 45u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: MESSENGERReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: MESSENGERReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `OTHER_BRIDGE()` and selector `0x7f46ddb2`. +```solidity +function OTHER_BRIDGE() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct OTHER_BRIDGECall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`OTHER_BRIDGE()`](OTHER_BRIDGECall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct OTHER_BRIDGEReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: OTHER_BRIDGECall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for OTHER_BRIDGECall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: OTHER_BRIDGEReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for OTHER_BRIDGEReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for OTHER_BRIDGECall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "OTHER_BRIDGE()"; + const SELECTOR: [u8; 4] = [127u8, 70u8, 221u8, 178u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: OTHER_BRIDGEReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: OTHER_BRIDGEReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `bridgeERC721(address,address,uint256,uint32,bytes)` and selector `0x3687011a`. +```solidity +function bridgeERC721(address _localToken, address _remoteToken, uint256 _tokenId, uint32 _minGasLimit, bytes memory _extraData) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct bridgeERC721Call { + #[allow(missing_docs)] + pub _localToken: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _remoteToken: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _tokenId: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _minGasLimit: u32, + #[allow(missing_docs)] + pub _extraData: alloy::sol_types::private::Bytes, + } + ///Container type for the return parameters of the [`bridgeERC721(address,address,uint256,uint32,bytes)`](bridgeERC721Call) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct bridgeERC721Return {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<32>, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + u32, + alloy::sol_types::private::Bytes, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: bridgeERC721Call) -> Self { + ( + value._localToken, + value._remoteToken, + value._tokenId, + value._minGasLimit, + value._extraData, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for bridgeERC721Call { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _localToken: tuple.0, + _remoteToken: tuple.1, + _tokenId: tuple.2, + _minGasLimit: tuple.3, + _extraData: tuple.4, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: bridgeERC721Return) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for bridgeERC721Return { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl bridgeERC721Return { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for bridgeERC721Call { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<32>, + alloy::sol_types::sol_data::Bytes, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bridgeERC721Return; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "bridgeERC721(address,address,uint256,uint32,bytes)"; + const SELECTOR: [u8; 4] = [54u8, 135u8, 1u8, 26u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._localToken, + ), + ::tokenize( + &self._remoteToken, + ), + as alloy_sol_types::SolType>::tokenize(&self._tokenId), + as alloy_sol_types::SolType>::tokenize(&self._minGasLimit), + ::tokenize( + &self._extraData, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + bridgeERC721Return::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `bridgeERC721To(address,address,address,uint256,uint32,bytes)` and selector `0xaa557452`. +```solidity +function bridgeERC721To(address _localToken, address _remoteToken, address _to, uint256 _tokenId, uint32 _minGasLimit, bytes memory _extraData) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct bridgeERC721ToCall { + #[allow(missing_docs)] + pub _localToken: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _remoteToken: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _tokenId: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _minGasLimit: u32, + #[allow(missing_docs)] + pub _extraData: alloy::sol_types::private::Bytes, + } + ///Container type for the return parameters of the [`bridgeERC721To(address,address,address,uint256,uint32,bytes)`](bridgeERC721ToCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct bridgeERC721ToReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<32>, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + u32, + alloy::sol_types::private::Bytes, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: bridgeERC721ToCall) -> Self { + ( + value._localToken, + value._remoteToken, + value._to, + value._tokenId, + value._minGasLimit, + value._extraData, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for bridgeERC721ToCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _localToken: tuple.0, + _remoteToken: tuple.1, + _to: tuple.2, + _tokenId: tuple.3, + _minGasLimit: tuple.4, + _extraData: tuple.5, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: bridgeERC721ToReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for bridgeERC721ToReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl bridgeERC721ToReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for bridgeERC721ToCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<32>, + alloy::sol_types::sol_data::Bytes, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bridgeERC721ToReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "bridgeERC721To(address,address,address,uint256,uint32,bytes)"; + const SELECTOR: [u8; 4] = [170u8, 85u8, 116u8, 82u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._localToken, + ), + ::tokenize( + &self._remoteToken, + ), + ::tokenize( + &self._to, + ), + as alloy_sol_types::SolType>::tokenize(&self._tokenId), + as alloy_sol_types::SolType>::tokenize(&self._minGasLimit), + ::tokenize( + &self._extraData, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + bridgeERC721ToReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `messenger()` and selector `0x3cb747bf`. +```solidity +function messenger() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct messengerCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`messenger()`](messengerCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct messengerReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: messengerCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for messengerCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: messengerReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for messengerReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for messengerCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "messenger()"; + const SELECTOR: [u8; 4] = [60u8, 183u8, 71u8, 191u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: messengerReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: messengerReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `otherBridge()` and selector `0xc89701a2`. +```solidity +function otherBridge() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct otherBridgeCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`otherBridge()`](otherBridgeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct otherBridgeReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: otherBridgeCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for otherBridgeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: otherBridgeReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for otherBridgeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for otherBridgeCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "otherBridge()"; + const SELECTOR: [u8; 4] = [200u8, 151u8, 1u8, 162u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: otherBridgeReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: otherBridgeReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `paused()` and selector `0x5c975abb`. +```solidity +function paused() external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct pausedCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`paused()`](pausedCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct pausedReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: pausedCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for pausedCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: pausedReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for pausedReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for pausedCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "paused()"; + const SELECTOR: [u8; 4] = [92u8, 151u8, 90u8, 187u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: pausedReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: pausedReturn = r.into(); + r._0 + }) + } + } + }; + ///Container for all the [`ERC721Bridge`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum ERC721BridgeCalls { + #[allow(missing_docs)] + MESSENGER(MESSENGERCall), + #[allow(missing_docs)] + OTHER_BRIDGE(OTHER_BRIDGECall), + #[allow(missing_docs)] + bridgeERC721(bridgeERC721Call), + #[allow(missing_docs)] + bridgeERC721To(bridgeERC721ToCall), + #[allow(missing_docs)] + messenger(messengerCall), + #[allow(missing_docs)] + otherBridge(otherBridgeCall), + #[allow(missing_docs)] + paused(pausedCall), + } + impl ERC721BridgeCalls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [54u8, 135u8, 1u8, 26u8], + [60u8, 183u8, 71u8, 191u8], + [92u8, 151u8, 90u8, 187u8], + [127u8, 70u8, 221u8, 178u8], + [146u8, 126u8, 222u8, 45u8], + [170u8, 85u8, 116u8, 82u8], + [200u8, 151u8, 1u8, 162u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(bridgeERC721), + ::core::stringify!(messenger), + ::core::stringify!(paused), + ::core::stringify!(OTHER_BRIDGE), + ::core::stringify!(MESSENGER), + ::core::stringify!(bridgeERC721To), + ::core::stringify!(otherBridge), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for ERC721BridgeCalls { + const NAME: &'static str = "ERC721BridgeCalls"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 7usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::MESSENGER(_) => { + ::SELECTOR + } + Self::OTHER_BRIDGE(_) => { + ::SELECTOR + } + Self::bridgeERC721(_) => { + ::SELECTOR + } + Self::bridgeERC721To(_) => { + ::SELECTOR + } + Self::messenger(_) => { + ::SELECTOR + } + Self::otherBridge(_) => { + ::SELECTOR + } + Self::paused(_) => ::SELECTOR, + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn bridgeERC721( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(ERC721BridgeCalls::bridgeERC721) + } + bridgeERC721 + }, + { + fn messenger( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(ERC721BridgeCalls::messenger) + } + messenger + }, + { + fn paused( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(ERC721BridgeCalls::paused) + } + paused + }, + { + fn OTHER_BRIDGE( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(ERC721BridgeCalls::OTHER_BRIDGE) + } + OTHER_BRIDGE + }, + { + fn MESSENGER( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(ERC721BridgeCalls::MESSENGER) + } + MESSENGER + }, + { + fn bridgeERC721To( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(ERC721BridgeCalls::bridgeERC721To) + } + bridgeERC721To + }, + { + fn otherBridge( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(ERC721BridgeCalls::otherBridge) + } + otherBridge + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn bridgeERC721( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(ERC721BridgeCalls::bridgeERC721) + } + bridgeERC721 + }, + { + fn messenger( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(ERC721BridgeCalls::messenger) + } + messenger + }, + { + fn paused( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(ERC721BridgeCalls::paused) + } + paused + }, + { + fn OTHER_BRIDGE( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(ERC721BridgeCalls::OTHER_BRIDGE) + } + OTHER_BRIDGE + }, + { + fn MESSENGER( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(ERC721BridgeCalls::MESSENGER) + } + MESSENGER + }, + { + fn bridgeERC721To( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(ERC721BridgeCalls::bridgeERC721To) + } + bridgeERC721To + }, + { + fn otherBridge( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(ERC721BridgeCalls::otherBridge) + } + otherBridge + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::MESSENGER(inner) => { + ::abi_encoded_size(inner) + } + Self::OTHER_BRIDGE(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::bridgeERC721(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::bridgeERC721To(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::messenger(inner) => { + ::abi_encoded_size(inner) + } + Self::otherBridge(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::paused(inner) => { + ::abi_encoded_size(inner) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::MESSENGER(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::OTHER_BRIDGE(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::bridgeERC721(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::bridgeERC721To(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::messenger(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::otherBridge(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::paused(inner) => { + ::abi_encode_raw(inner, out) + } + } + } + } + ///Container for all the [`ERC721Bridge`](self) events. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum ERC721BridgeEvents { + #[allow(missing_docs)] + ERC721BridgeFinalized(ERC721BridgeFinalized), + #[allow(missing_docs)] + ERC721BridgeInitiated(ERC721BridgeInitiated), + #[allow(missing_docs)] + Initialized(Initialized), + } + impl ERC721BridgeEvents { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 32usize]] = &[ + [ + 31u8, 57u8, 191u8, 103u8, 7u8, 181u8, 214u8, 8u8, 69u8, 62u8, 10u8, + 228u8, 192u8, 103u8, 181u8, 98u8, 188u8, 196u8, 200u8, 92u8, 15u8, 86u8, + 46u8, 245u8, 210u8, 199u8, 116u8, 210u8, 231u8, 241u8, 49u8, 172u8, + ], + [ + 127u8, 38u8, 184u8, 63u8, 249u8, 110u8, 31u8, 43u8, 106u8, 104u8, 47u8, + 19u8, 56u8, 82u8, 246u8, 121u8, 138u8, 9u8, 196u8, 101u8, 218u8, 149u8, + 146u8, 20u8, 96u8, 206u8, 251u8, 56u8, 71u8, 64u8, 36u8, 152u8, + ], + [ + 183u8, 70u8, 14u8, 42u8, 136u8, 15u8, 37u8, 110u8, 190u8, 243u8, 64u8, + 97u8, 22u8, 255u8, 62u8, 238u8, 12u8, 238u8, 81u8, 235u8, 204u8, 220u8, + 42u8, 64u8, 105u8, 143u8, 135u8, 235u8, 178u8, 233u8, 193u8, 165u8, + ], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(ERC721BridgeFinalized), + ::core::stringify!(Initialized), + ::core::stringify!(ERC721BridgeInitiated), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolEventInterface for ERC721BridgeEvents { + const NAME: &'static str = "ERC721BridgeEvents"; + const COUNT: usize = 3usize; + fn decode_raw_log( + topics: &[alloy_sol_types::Word], + data: &[u8], + ) -> alloy_sol_types::Result { + match topics.first().copied() { + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::ERC721BridgeFinalized) + } + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::ERC721BridgeInitiated) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::Initialized) + } + _ => { + alloy_sol_types::private::Err(alloy_sol_types::Error::InvalidLog { + name: ::NAME, + log: alloy_sol_types::private::Box::new( + alloy_sol_types::private::LogData::new_unchecked( + topics.to_vec(), + data.to_vec().into(), + ), + ), + }) + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for ERC721BridgeEvents { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + match self { + Self::ERC721BridgeFinalized(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::ERC721BridgeInitiated(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::Initialized(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + } + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + match self { + Self::ERC721BridgeFinalized(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::ERC721BridgeInitiated(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::Initialized(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`ERC721Bridge`](self) contract instance. + +See the [wrapper's documentation](`ERC721BridgeInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> ERC721BridgeInstance { + ERC721BridgeInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + ERC721BridgeInstance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + ERC721BridgeInstance::::deploy_builder(__provider) + } + /**A [`ERC721Bridge`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`ERC721Bridge`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct ERC721BridgeInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for ERC721BridgeInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("ERC721BridgeInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > ERC721BridgeInstance { + /**Creates a new wrapper around an on-chain [`ERC721Bridge`](self) contract instance. + +See the [wrapper's documentation](`ERC721BridgeInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl ERC721BridgeInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> ERC721BridgeInstance { + ERC721BridgeInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > ERC721BridgeInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`MESSENGER`] function. + pub fn MESSENGER(&self) -> alloy_contract::SolCallBuilder<&P, MESSENGERCall, N> { + self.call_builder(&MESSENGERCall) + } + ///Creates a new call builder for the [`OTHER_BRIDGE`] function. + pub fn OTHER_BRIDGE( + &self, + ) -> alloy_contract::SolCallBuilder<&P, OTHER_BRIDGECall, N> { + self.call_builder(&OTHER_BRIDGECall) + } + ///Creates a new call builder for the [`bridgeERC721`] function. + pub fn bridgeERC721( + &self, + _localToken: alloy::sol_types::private::Address, + _remoteToken: alloy::sol_types::private::Address, + _tokenId: alloy::sol_types::private::primitives::aliases::U256, + _minGasLimit: u32, + _extraData: alloy::sol_types::private::Bytes, + ) -> alloy_contract::SolCallBuilder<&P, bridgeERC721Call, N> { + self.call_builder( + &bridgeERC721Call { + _localToken, + _remoteToken, + _tokenId, + _minGasLimit, + _extraData, + }, + ) + } + ///Creates a new call builder for the [`bridgeERC721To`] function. + pub fn bridgeERC721To( + &self, + _localToken: alloy::sol_types::private::Address, + _remoteToken: alloy::sol_types::private::Address, + _to: alloy::sol_types::private::Address, + _tokenId: alloy::sol_types::private::primitives::aliases::U256, + _minGasLimit: u32, + _extraData: alloy::sol_types::private::Bytes, + ) -> alloy_contract::SolCallBuilder<&P, bridgeERC721ToCall, N> { + self.call_builder( + &bridgeERC721ToCall { + _localToken, + _remoteToken, + _to, + _tokenId, + _minGasLimit, + _extraData, + }, + ) + } + ///Creates a new call builder for the [`messenger`] function. + pub fn messenger(&self) -> alloy_contract::SolCallBuilder<&P, messengerCall, N> { + self.call_builder(&messengerCall) + } + ///Creates a new call builder for the [`otherBridge`] function. + pub fn otherBridge( + &self, + ) -> alloy_contract::SolCallBuilder<&P, otherBridgeCall, N> { + self.call_builder(&otherBridgeCall) + } + ///Creates a new call builder for the [`paused`] function. + pub fn paused(&self) -> alloy_contract::SolCallBuilder<&P, pausedCall, N> { + self.call_builder(&pausedCall) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > ERC721BridgeInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + ///Creates a new event filter for the [`ERC721BridgeFinalized`] event. + pub fn ERC721BridgeFinalized_filter( + &self, + ) -> alloy_contract::Event<&P, ERC721BridgeFinalized, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`ERC721BridgeInitiated`] event. + pub fn ERC721BridgeInitiated_filter( + &self, + ) -> alloy_contract::Event<&P, ERC721BridgeInitiated, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`Initialized`] event. + pub fn Initialized_filter(&self) -> alloy_contract::Event<&P, Initialized, N> { + self.event_filter::() + } + } +} diff --git a/bindings/rust/src/errors.rs b/bindings/rust/src/errors.rs new file mode 100644 index 000000000..446fd91c0 --- /dev/null +++ b/bindings/rust/src/errors.rs @@ -0,0 +1,215 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface Errors {} +``` + +...which was generated by the following JSON ABI: +```json +[] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod Errors { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"", + ); + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`Errors`](self) contract instance. + +See the [wrapper's documentation](`ErrorsInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> ErrorsInstance { + ErrorsInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + ErrorsInstance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + ErrorsInstance::::deploy_builder(__provider) + } + /**A [`Errors`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`Errors`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct ErrorsInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for ErrorsInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("ErrorsInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > ErrorsInstance { + /**Creates a new wrapper around an on-chain [`Errors`](self) contract instance. + +See the [wrapper's documentation](`ErrorsInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl ErrorsInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> ErrorsInstance { + ErrorsInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > ErrorsInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > ErrorsInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + } +} diff --git a/bindings/rust/src/eth_liquidity.rs b/bindings/rust/src/eth_liquidity.rs new file mode 100644 index 000000000..e5ad6b0f7 --- /dev/null +++ b/bindings/rust/src/eth_liquidity.rs @@ -0,0 +1,1989 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface ETHLiquidity { + error InvalidAmount(); + error Unauthorized(); + + event LiquidityBurned(address indexed caller, uint256 value); + event LiquidityFunded(address indexed funder, uint256 amount); + event LiquidityMinted(address indexed caller, uint256 value); + + function burn() external payable; + function fund() external payable; + function mint(uint256 _amount) external; + function version() external view returns (string memory); +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "function", + "name": "burn", + "inputs": [], + "outputs": [], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "fund", + "inputs": [], + "outputs": [], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "mint", + "inputs": [ + { + "name": "_amount", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "version", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "view" + }, + { + "type": "event", + "name": "LiquidityBurned", + "inputs": [ + { + "name": "caller", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "value", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "LiquidityFunded", + "inputs": [ + { + "name": "funder", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "LiquidityMinted", + "inputs": [ + { + "name": "caller", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "value", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "error", + "name": "InvalidAmount", + "inputs": [] + }, + { + "type": "error", + "name": "Unauthorized", + "inputs": [] + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod ETHLiquidity { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x608060405234801561001057600080fd5b50610393806100206000396000f3fe60806040526004361061003f5760003560e01c806344df8e701461004457806354fd4d501461004e578063a0712d68146100ad578063b60d4288146100cd575b600080fd5b61004c6100d5565b005b34801561005a57600080fd5b506100976040518060400160405280600581526020017f312e312e3000000000000000000000000000000000000000000000000000000081525081565b6040516100a491906102a1565b60405180910390f35b3480156100b957600080fd5b5061004c6100c8366004610314565b61015a565b61004c610229565b3373420000000000000000000000000000000000002414610122576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60405134815233907f875e07afd7ce17c6531b1a6b7b34829dcd8b7e6639448afbd6a8e29fa1422b82906020015b60405180910390a2565b33734200000000000000000000000000000000000024146101a7576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80336040516101b590610295565b73ffffffffffffffffffffffffffffffffffffffff90911681526020016040518091039082f09050801580156101ef573d6000803e3d6000fd5b505060405181815233907f85719716ac5bd2744ae7ed3d16702129383049b97123b506320e7a5826ebbbba9060200160405180910390a250565b34600003610263576040517f2c5211c600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60405134815233907fbb9e497a5b82d1a37f9496dd70c6efb97ba0d98c66c3422d05010105d063359890602001610150565b60598061032e83390190565b600060208083528351808285015260005b818110156102ce578581018301518582016040015282016102b2565b818111156102e0576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b60006020828403121561032657600080fd5b503591905056fe608060405260405160593803806059833981016040819052601e91602a565b806001600160a01b0316ff5b600060208284031215603b57600080fd5b81516001600160a01b0381168114605157600080fd5b939250505056fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[Pa\x03\x93\x80a\0 `\09`\0\xF3\xFE`\x80`@R`\x046\x10a\0?W`\x005`\xE0\x1C\x80cD\xDF\x8Ep\x14a\0DW\x80cT\xFDMP\x14a\0NW\x80c\xA0q-h\x14a\0\xADW\x80c\xB6\rB\x88\x14a\0\xCDW[`\0\x80\xFD[a\0La\0\xD5V[\0[4\x80\x15a\0ZW`\0\x80\xFD[Pa\0\x97`@Q\x80`@\x01`@R\x80`\x05\x81R` \x01\x7F1.1.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\x81RP\x81V[`@Qa\0\xA4\x91\x90a\x02\xA1V[`@Q\x80\x91\x03\x90\xF3[4\x80\x15a\0\xB9W`\0\x80\xFD[Pa\0La\0\xC86`\x04a\x03\x14V[a\x01ZV[a\0La\x02)V[3sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0$\x14a\x01\"W`@Q\x7F\x82\xB4)\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`@Q4\x81R3\x90\x7F\x87^\x07\xAF\xD7\xCE\x17\xC6S\x1B\x1Ak{4\x82\x9D\xCD\x8B~f9D\x8A\xFB\xD6\xA8\xE2\x9F\xA1B+\x82\x90` \x01[`@Q\x80\x91\x03\x90\xA2V[3sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0$\x14a\x01\xA7W`@Q\x7F\x82\xB4)\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[\x803`@Qa\x01\xB5\x90a\x02\x95V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01`@Q\x80\x91\x03\x90\x82\xF0\x90P\x80\x15\x80\x15a\x01\xEFW=`\0\x80>=`\0\xFD[PP`@Q\x81\x81R3\x90\x7F\x85q\x97\x16\xAC[\xD2tJ\xE7\xED=\x16p!)80I\xB9q#\xB5\x062\x0EzX&\xEB\xBB\xBA\x90` \x01`@Q\x80\x91\x03\x90\xA2PV[4`\0\x03a\x02cW`@Q\x7F,R\x11\xC6\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\x01`@Q\x80\x91\x03\x90\xFD[`@Q4\x81R3\x90\x7F\xBB\x9EIz[\x82\xD1\xA3\x7F\x94\x96\xDDp\xC6\xEF\xB9{\xA0\xD9\x8Cf\xC3B-\x05\x01\x01\x05\xD0c5\x98\x90` \x01a\x01PV[`Y\x80a\x03.\x839\x01\x90V[`\0` \x80\x83R\x83Q\x80\x82\x85\x01R`\0[\x81\x81\x10\x15a\x02\xCEW\x85\x81\x01\x83\x01Q\x85\x82\x01`@\x01R\x82\x01a\x02\xB2V[\x81\x81\x11\x15a\x02\xE0W`\0`@\x83\x87\x01\x01R[P`\x1F\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x92\x90\x92\x01`@\x01\x93\x92PPPV[`\0` \x82\x84\x03\x12\x15a\x03&W`\0\x80\xFD[P5\x91\x90PV\xFE`\x80`@R`@Q`Y8\x03\x80`Y\x839\x81\x01`@\x81\x90R`\x1E\x91`*V[\x80`\x01`\x01`\xA0\x1B\x03\x16\xFF[`\0` \x82\x84\x03\x12\x15`;W`\0\x80\xFD[\x81Q`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14`QW`\0\x80\xFD[\x93\x92PPPV\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x60806040526004361061003f5760003560e01c806344df8e701461004457806354fd4d501461004e578063a0712d68146100ad578063b60d4288146100cd575b600080fd5b61004c6100d5565b005b34801561005a57600080fd5b506100976040518060400160405280600581526020017f312e312e3000000000000000000000000000000000000000000000000000000081525081565b6040516100a491906102a1565b60405180910390f35b3480156100b957600080fd5b5061004c6100c8366004610314565b61015a565b61004c610229565b3373420000000000000000000000000000000000002414610122576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60405134815233907f875e07afd7ce17c6531b1a6b7b34829dcd8b7e6639448afbd6a8e29fa1422b82906020015b60405180910390a2565b33734200000000000000000000000000000000000024146101a7576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80336040516101b590610295565b73ffffffffffffffffffffffffffffffffffffffff90911681526020016040518091039082f09050801580156101ef573d6000803e3d6000fd5b505060405181815233907f85719716ac5bd2744ae7ed3d16702129383049b97123b506320e7a5826ebbbba9060200160405180910390a250565b34600003610263576040517f2c5211c600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60405134815233907fbb9e497a5b82d1a37f9496dd70c6efb97ba0d98c66c3422d05010105d063359890602001610150565b60598061032e83390190565b600060208083528351808285015260005b818110156102ce578581018301518582016040015282016102b2565b818111156102e0576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b60006020828403121561032657600080fd5b503591905056fe608060405260405160593803806059833981016040819052601e91602a565b806001600160a01b0316ff5b600060208284031215603b57600080fd5b81516001600160a01b0381168114605157600080fd5b939250505056fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R`\x046\x10a\0?W`\x005`\xE0\x1C\x80cD\xDF\x8Ep\x14a\0DW\x80cT\xFDMP\x14a\0NW\x80c\xA0q-h\x14a\0\xADW\x80c\xB6\rB\x88\x14a\0\xCDW[`\0\x80\xFD[a\0La\0\xD5V[\0[4\x80\x15a\0ZW`\0\x80\xFD[Pa\0\x97`@Q\x80`@\x01`@R\x80`\x05\x81R` \x01\x7F1.1.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\x81RP\x81V[`@Qa\0\xA4\x91\x90a\x02\xA1V[`@Q\x80\x91\x03\x90\xF3[4\x80\x15a\0\xB9W`\0\x80\xFD[Pa\0La\0\xC86`\x04a\x03\x14V[a\x01ZV[a\0La\x02)V[3sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0$\x14a\x01\"W`@Q\x7F\x82\xB4)\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`@Q4\x81R3\x90\x7F\x87^\x07\xAF\xD7\xCE\x17\xC6S\x1B\x1Ak{4\x82\x9D\xCD\x8B~f9D\x8A\xFB\xD6\xA8\xE2\x9F\xA1B+\x82\x90` \x01[`@Q\x80\x91\x03\x90\xA2V[3sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0$\x14a\x01\xA7W`@Q\x7F\x82\xB4)\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[\x803`@Qa\x01\xB5\x90a\x02\x95V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01`@Q\x80\x91\x03\x90\x82\xF0\x90P\x80\x15\x80\x15a\x01\xEFW=`\0\x80>=`\0\xFD[PP`@Q\x81\x81R3\x90\x7F\x85q\x97\x16\xAC[\xD2tJ\xE7\xED=\x16p!)80I\xB9q#\xB5\x062\x0EzX&\xEB\xBB\xBA\x90` \x01`@Q\x80\x91\x03\x90\xA2PV[4`\0\x03a\x02cW`@Q\x7F,R\x11\xC6\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\x01`@Q\x80\x91\x03\x90\xFD[`@Q4\x81R3\x90\x7F\xBB\x9EIz[\x82\xD1\xA3\x7F\x94\x96\xDDp\xC6\xEF\xB9{\xA0\xD9\x8Cf\xC3B-\x05\x01\x01\x05\xD0c5\x98\x90` \x01a\x01PV[`Y\x80a\x03.\x839\x01\x90V[`\0` \x80\x83R\x83Q\x80\x82\x85\x01R`\0[\x81\x81\x10\x15a\x02\xCEW\x85\x81\x01\x83\x01Q\x85\x82\x01`@\x01R\x82\x01a\x02\xB2V[\x81\x81\x11\x15a\x02\xE0W`\0`@\x83\x87\x01\x01R[P`\x1F\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x92\x90\x92\x01`@\x01\x93\x92PPPV[`\0` \x82\x84\x03\x12\x15a\x03&W`\0\x80\xFD[P5\x91\x90PV\xFE`\x80`@R`@Q`Y8\x03\x80`Y\x839\x81\x01`@\x81\x90R`\x1E\x91`*V[\x80`\x01`\x01`\xA0\x1B\x03\x16\xFF[`\0` \x82\x84\x03\x12\x15`;W`\0\x80\xFD[\x81Q`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14`QW`\0\x80\xFD[\x93\x92PPPV\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidAmount()` and selector `0x2c5211c6`. +```solidity +error InvalidAmount(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidAmount; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InvalidAmount) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InvalidAmount { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidAmount { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidAmount()"; + const SELECTOR: [u8; 4] = [44u8, 82u8, 17u8, 198u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `Unauthorized()` and selector `0x82b42900`. +```solidity +error Unauthorized(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct Unauthorized; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: Unauthorized) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for Unauthorized { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for Unauthorized { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "Unauthorized()"; + const SELECTOR: [u8; 4] = [130u8, 180u8, 41u8, 0u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `LiquidityBurned(address,uint256)` and selector `0x875e07afd7ce17c6531b1a6b7b34829dcd8b7e6639448afbd6a8e29fa1422b82`. +```solidity +event LiquidityBurned(address indexed caller, uint256 value); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct LiquidityBurned { + #[allow(missing_docs)] + pub caller: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub value: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for LiquidityBurned { + type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "LiquidityBurned(address,uint256)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 135u8, 94u8, 7u8, 175u8, 215u8, 206u8, 23u8, 198u8, 83u8, 27u8, 26u8, + 107u8, 123u8, 52u8, 130u8, 157u8, 205u8, 139u8, 126u8, 102u8, 57u8, 68u8, + 138u8, 251u8, 214u8, 168u8, 226u8, 159u8, 161u8, 66u8, 43u8, 130u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + caller: topics.1, + value: data.0, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.value), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.caller.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.caller, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for LiquidityBurned { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&LiquidityBurned> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &LiquidityBurned) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `LiquidityFunded(address,uint256)` and selector `0xbb9e497a5b82d1a37f9496dd70c6efb97ba0d98c66c3422d05010105d0633598`. +```solidity +event LiquidityFunded(address indexed funder, uint256 amount); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct LiquidityFunded { + #[allow(missing_docs)] + pub funder: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub amount: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for LiquidityFunded { + type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "LiquidityFunded(address,uint256)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 187u8, 158u8, 73u8, 122u8, 91u8, 130u8, 209u8, 163u8, 127u8, 148u8, + 150u8, 221u8, 112u8, 198u8, 239u8, 185u8, 123u8, 160u8, 217u8, 140u8, + 102u8, 195u8, 66u8, 45u8, 5u8, 1u8, 1u8, 5u8, 208u8, 99u8, 53u8, 152u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + funder: topics.1, + amount: data.0, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.amount), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.funder.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.funder, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for LiquidityFunded { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&LiquidityFunded> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &LiquidityFunded) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `LiquidityMinted(address,uint256)` and selector `0x85719716ac5bd2744ae7ed3d16702129383049b97123b506320e7a5826ebbbba`. +```solidity +event LiquidityMinted(address indexed caller, uint256 value); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct LiquidityMinted { + #[allow(missing_docs)] + pub caller: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub value: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for LiquidityMinted { + type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "LiquidityMinted(address,uint256)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 133u8, 113u8, 151u8, 22u8, 172u8, 91u8, 210u8, 116u8, 74u8, 231u8, 237u8, + 61u8, 22u8, 112u8, 33u8, 41u8, 56u8, 48u8, 73u8, 185u8, 113u8, 35u8, + 181u8, 6u8, 50u8, 14u8, 122u8, 88u8, 38u8, 235u8, 187u8, 186u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + caller: topics.1, + value: data.0, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.value), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.caller.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.caller, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for LiquidityMinted { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&LiquidityMinted> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &LiquidityMinted) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `burn()` and selector `0x44df8e70`. +```solidity +function burn() external payable; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct burnCall; + ///Container type for the return parameters of the [`burn()`](burnCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct burnReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: burnCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for burnCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: burnReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for burnReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl burnReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for burnCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = burnReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "burn()"; + const SELECTOR: [u8; 4] = [68u8, 223u8, 142u8, 112u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + burnReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `fund()` and selector `0xb60d4288`. +```solidity +function fund() external payable; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct fundCall; + ///Container type for the return parameters of the [`fund()`](fundCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct fundReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: fundCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for fundCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: fundReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for fundReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl fundReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for fundCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = fundReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "fund()"; + const SELECTOR: [u8; 4] = [182u8, 13u8, 66u8, 136u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + fundReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `mint(uint256)` and selector `0xa0712d68`. +```solidity +function mint(uint256 _amount) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct mintCall { + #[allow(missing_docs)] + pub _amount: alloy::sol_types::private::primitives::aliases::U256, + } + ///Container type for the return parameters of the [`mint(uint256)`](mintCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct mintReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: mintCall) -> Self { + (value._amount,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for mintCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _amount: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: mintReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for mintReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl mintReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for mintCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = mintReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "mint(uint256)"; + const SELECTOR: [u8; 4] = [160u8, 113u8, 45u8, 104u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._amount), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + mintReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `version()` and selector `0x54fd4d50`. +```solidity +function version() external view returns (string memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`version()`](versionCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for versionCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::String; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "version()"; + const SELECTOR: [u8; 4] = [84u8, 253u8, 77u8, 80u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + } + }; + ///Container for all the [`ETHLiquidity`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum ETHLiquidityCalls { + #[allow(missing_docs)] + burn(burnCall), + #[allow(missing_docs)] + fund(fundCall), + #[allow(missing_docs)] + mint(mintCall), + #[allow(missing_docs)] + version(versionCall), + } + impl ETHLiquidityCalls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [68u8, 223u8, 142u8, 112u8], + [84u8, 253u8, 77u8, 80u8], + [160u8, 113u8, 45u8, 104u8], + [182u8, 13u8, 66u8, 136u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(burn), + ::core::stringify!(version), + ::core::stringify!(mint), + ::core::stringify!(fund), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for ETHLiquidityCalls { + const NAME: &'static str = "ETHLiquidityCalls"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 4usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::burn(_) => ::SELECTOR, + Self::fund(_) => ::SELECTOR, + Self::mint(_) => ::SELECTOR, + Self::version(_) => ::SELECTOR, + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn burn(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(ETHLiquidityCalls::burn) + } + burn + }, + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(ETHLiquidityCalls::version) + } + version + }, + { + fn mint(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(ETHLiquidityCalls::mint) + } + mint + }, + { + fn fund(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(ETHLiquidityCalls::fund) + } + fund + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn burn(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(ETHLiquidityCalls::burn) + } + burn + }, + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(ETHLiquidityCalls::version) + } + version + }, + { + fn mint(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(ETHLiquidityCalls::mint) + } + mint + }, + { + fn fund(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(ETHLiquidityCalls::fund) + } + fund + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::burn(inner) => { + ::abi_encoded_size(inner) + } + Self::fund(inner) => { + ::abi_encoded_size(inner) + } + Self::mint(inner) => { + ::abi_encoded_size(inner) + } + Self::version(inner) => { + ::abi_encoded_size(inner) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::burn(inner) => { + ::abi_encode_raw(inner, out) + } + Self::fund(inner) => { + ::abi_encode_raw(inner, out) + } + Self::mint(inner) => { + ::abi_encode_raw(inner, out) + } + Self::version(inner) => { + ::abi_encode_raw(inner, out) + } + } + } + } + ///Container for all the [`ETHLiquidity`](self) custom errors. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum ETHLiquidityErrors { + #[allow(missing_docs)] + InvalidAmount(InvalidAmount), + #[allow(missing_docs)] + Unauthorized(Unauthorized), + } + impl ETHLiquidityErrors { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [44u8, 82u8, 17u8, 198u8], + [130u8, 180u8, 41u8, 0u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(InvalidAmount), + ::core::stringify!(Unauthorized), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for ETHLiquidityErrors { + const NAME: &'static str = "ETHLiquidityErrors"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 2usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::InvalidAmount(_) => { + ::SELECTOR + } + Self::Unauthorized(_) => { + ::SELECTOR + } + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn InvalidAmount( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(ETHLiquidityErrors::InvalidAmount) + } + InvalidAmount + }, + { + fn Unauthorized( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(ETHLiquidityErrors::Unauthorized) + } + Unauthorized + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn InvalidAmount( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(ETHLiquidityErrors::InvalidAmount) + } + InvalidAmount + }, + { + fn Unauthorized( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(ETHLiquidityErrors::Unauthorized) + } + Unauthorized + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::InvalidAmount(inner) => { + ::abi_encoded_size(inner) + } + Self::Unauthorized(inner) => { + ::abi_encoded_size(inner) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::InvalidAmount(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::Unauthorized(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + } + } + } + ///Container for all the [`ETHLiquidity`](self) events. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum ETHLiquidityEvents { + #[allow(missing_docs)] + LiquidityBurned(LiquidityBurned), + #[allow(missing_docs)] + LiquidityFunded(LiquidityFunded), + #[allow(missing_docs)] + LiquidityMinted(LiquidityMinted), + } + impl ETHLiquidityEvents { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 32usize]] = &[ + [ + 133u8, 113u8, 151u8, 22u8, 172u8, 91u8, 210u8, 116u8, 74u8, 231u8, 237u8, + 61u8, 22u8, 112u8, 33u8, 41u8, 56u8, 48u8, 73u8, 185u8, 113u8, 35u8, + 181u8, 6u8, 50u8, 14u8, 122u8, 88u8, 38u8, 235u8, 187u8, 186u8, + ], + [ + 135u8, 94u8, 7u8, 175u8, 215u8, 206u8, 23u8, 198u8, 83u8, 27u8, 26u8, + 107u8, 123u8, 52u8, 130u8, 157u8, 205u8, 139u8, 126u8, 102u8, 57u8, 68u8, + 138u8, 251u8, 214u8, 168u8, 226u8, 159u8, 161u8, 66u8, 43u8, 130u8, + ], + [ + 187u8, 158u8, 73u8, 122u8, 91u8, 130u8, 209u8, 163u8, 127u8, 148u8, + 150u8, 221u8, 112u8, 198u8, 239u8, 185u8, 123u8, 160u8, 217u8, 140u8, + 102u8, 195u8, 66u8, 45u8, 5u8, 1u8, 1u8, 5u8, 208u8, 99u8, 53u8, 152u8, + ], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(LiquidityMinted), + ::core::stringify!(LiquidityBurned), + ::core::stringify!(LiquidityFunded), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolEventInterface for ETHLiquidityEvents { + const NAME: &'static str = "ETHLiquidityEvents"; + const COUNT: usize = 3usize; + fn decode_raw_log( + topics: &[alloy_sol_types::Word], + data: &[u8], + ) -> alloy_sol_types::Result { + match topics.first().copied() { + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::LiquidityBurned) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::LiquidityFunded) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::LiquidityMinted) + } + _ => { + alloy_sol_types::private::Err(alloy_sol_types::Error::InvalidLog { + name: ::NAME, + log: alloy_sol_types::private::Box::new( + alloy_sol_types::private::LogData::new_unchecked( + topics.to_vec(), + data.to_vec().into(), + ), + ), + }) + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for ETHLiquidityEvents { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + match self { + Self::LiquidityBurned(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::LiquidityFunded(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::LiquidityMinted(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + } + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + match self { + Self::LiquidityBurned(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::LiquidityFunded(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::LiquidityMinted(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`ETHLiquidity`](self) contract instance. + +See the [wrapper's documentation](`ETHLiquidityInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> ETHLiquidityInstance { + ETHLiquidityInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + ETHLiquidityInstance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + ETHLiquidityInstance::::deploy_builder(__provider) + } + /**A [`ETHLiquidity`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`ETHLiquidity`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct ETHLiquidityInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for ETHLiquidityInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("ETHLiquidityInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > ETHLiquidityInstance { + /**Creates a new wrapper around an on-chain [`ETHLiquidity`](self) contract instance. + +See the [wrapper's documentation](`ETHLiquidityInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl ETHLiquidityInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> ETHLiquidityInstance { + ETHLiquidityInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > ETHLiquidityInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`burn`] function. + pub fn burn(&self) -> alloy_contract::SolCallBuilder<&P, burnCall, N> { + self.call_builder(&burnCall) + } + ///Creates a new call builder for the [`fund`] function. + pub fn fund(&self) -> alloy_contract::SolCallBuilder<&P, fundCall, N> { + self.call_builder(&fundCall) + } + ///Creates a new call builder for the [`mint`] function. + pub fn mint( + &self, + _amount: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, mintCall, N> { + self.call_builder(&mintCall { _amount }) + } + ///Creates a new call builder for the [`version`] function. + pub fn version(&self) -> alloy_contract::SolCallBuilder<&P, versionCall, N> { + self.call_builder(&versionCall) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > ETHLiquidityInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + ///Creates a new event filter for the [`LiquidityBurned`] event. + pub fn LiquidityBurned_filter( + &self, + ) -> alloy_contract::Event<&P, LiquidityBurned, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`LiquidityFunded`] event. + pub fn LiquidityFunded_filter( + &self, + ) -> alloy_contract::Event<&P, LiquidityFunded, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`LiquidityMinted`] event. + pub fn LiquidityMinted_filter( + &self, + ) -> alloy_contract::Event<&P, LiquidityMinted, N> { + self.event_filter::() + } + } +} diff --git a/bindings/rust/src/eth_lockbox.rs b/bindings/rust/src/eth_lockbox.rs new file mode 100644 index 000000000..0ec84b2ad --- /dev/null +++ b/bindings/rust/src/eth_lockbox.rs @@ -0,0 +1,6478 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface ETHLockbox { + error ETHLockbox_DifferentSuperchainConfig(); + error ETHLockbox_InsufficientBalance(); + error ETHLockbox_NoWithdrawalTransactions(); + error ETHLockbox_Paused(); + error ETHLockbox_Unauthorized(); + error ProxyAdminOwnedBase_NotProxyAdmin(); + error ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner(); + error ProxyAdminOwnedBase_NotProxyAdminOwner(); + error ProxyAdminOwnedBase_NotResolvedDelegateProxy(); + error ProxyAdminOwnedBase_NotSharedProxyAdminOwner(); + error ProxyAdminOwnedBase_ProxyAdminNotFound(); + error ReinitializableBase_ZeroInitVersion(); + + event ETHLocked(address indexed portal, uint256 amount); + event ETHUnlocked(address indexed portal, uint256 amount); + event Initialized(uint8 version); + event LiquidityMigrated(address indexed lockbox, uint256 amount); + event LiquidityReceived(address indexed lockbox, uint256 amount); + event LockboxAuthorized(address indexed lockbox); + event PortalAuthorized(address indexed portal); + + constructor(); + + function authorizeLockbox(address _lockbox) external; + function authorizePortal(address _portal) external; + function authorizedLockboxes(address) external view returns (bool); + function authorizedPortals(address) external view returns (bool); + function initVersion() external view returns (uint8); + function initialize(address _systemConfig, address[] memory _portals) external; + function lockETH() external payable; + function migrateLiquidity(address _lockbox) external; + function paused() external view returns (bool); + function proxyAdmin() external view returns (address); + function proxyAdminOwner() external view returns (address); + function receiveLiquidity() external payable; + function superchainConfig() external view returns (address); + function systemConfig() external view returns (address); + function unlockETH(uint256 _value) external; + function version() external view returns (string memory); +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "constructor", + "inputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "authorizeLockbox", + "inputs": [ + { + "name": "_lockbox", + "type": "address", + "internalType": "contract IETHLockbox" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "authorizePortal", + "inputs": [ + { + "name": "_portal", + "type": "address", + "internalType": "contract IOptimismPortal2" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "authorizedLockboxes", + "inputs": [ + { + "name": "", + "type": "address", + "internalType": "contract IETHLockbox" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "authorizedPortals", + "inputs": [ + { + "name": "", + "type": "address", + "internalType": "contract IOptimismPortal2" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "initVersion", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint8", + "internalType": "uint8" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "initialize", + "inputs": [ + { + "name": "_systemConfig", + "type": "address", + "internalType": "contract ISystemConfig" + }, + { + "name": "_portals", + "type": "address[]", + "internalType": "contract IOptimismPortal2[]" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "lockETH", + "inputs": [], + "outputs": [], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "migrateLiquidity", + "inputs": [ + { + "name": "_lockbox", + "type": "address", + "internalType": "contract IETHLockbox" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "paused", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "proxyAdmin", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract IProxyAdmin" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "proxyAdminOwner", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "receiveLiquidity", + "inputs": [], + "outputs": [], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "superchainConfig", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract ISuperchainConfig" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "systemConfig", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract ISystemConfig" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "unlockETH", + "inputs": [ + { + "name": "_value", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "version", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "view" + }, + { + "type": "event", + "name": "ETHLocked", + "inputs": [ + { + "name": "portal", + "type": "address", + "indexed": true, + "internalType": "contract IOptimismPortal2" + }, + { + "name": "amount", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "ETHUnlocked", + "inputs": [ + { + "name": "portal", + "type": "address", + "indexed": true, + "internalType": "contract IOptimismPortal2" + }, + { + "name": "amount", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "Initialized", + "inputs": [ + { + "name": "version", + "type": "uint8", + "indexed": false, + "internalType": "uint8" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "LiquidityMigrated", + "inputs": [ + { + "name": "lockbox", + "type": "address", + "indexed": true, + "internalType": "contract IETHLockbox" + }, + { + "name": "amount", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "LiquidityReceived", + "inputs": [ + { + "name": "lockbox", + "type": "address", + "indexed": true, + "internalType": "contract IETHLockbox" + }, + { + "name": "amount", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "LockboxAuthorized", + "inputs": [ + { + "name": "lockbox", + "type": "address", + "indexed": true, + "internalType": "contract IETHLockbox" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "PortalAuthorized", + "inputs": [ + { + "name": "portal", + "type": "address", + "indexed": true, + "internalType": "contract IOptimismPortal2" + } + ], + "anonymous": false + }, + { + "type": "error", + "name": "ETHLockbox_DifferentSuperchainConfig", + "inputs": [] + }, + { + "type": "error", + "name": "ETHLockbox_InsufficientBalance", + "inputs": [] + }, + { + "type": "error", + "name": "ETHLockbox_NoWithdrawalTransactions", + "inputs": [] + }, + { + "type": "error", + "name": "ETHLockbox_Paused", + "inputs": [] + }, + { + "type": "error", + "name": "ETHLockbox_Unauthorized", + "inputs": [] + }, + { + "type": "error", + "name": "ProxyAdminOwnedBase_NotProxyAdmin", + "inputs": [] + }, + { + "type": "error", + "name": "ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner", + "inputs": [] + }, + { + "type": "error", + "name": "ProxyAdminOwnedBase_NotProxyAdminOwner", + "inputs": [] + }, + { + "type": "error", + "name": "ProxyAdminOwnedBase_NotResolvedDelegateProxy", + "inputs": [] + }, + { + "type": "error", + "name": "ProxyAdminOwnedBase_NotSharedProxyAdminOwner", + "inputs": [] + }, + { + "type": "error", + "name": "ProxyAdminOwnedBase_ProxyAdminNotFound", + "inputs": [] + }, + { + "type": "error", + "name": "ReinitializableBase_ZeroInitVersion", + "inputs": [] + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod ETHLockbox { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x60a060405234801561001057600080fd5b50600160805261001e610023565b6100e3565b600054610100900460ff161561008f5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811610156100e1576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b608051611337610105600039600081816102000152610b4b01526113376000f3fe6080604052600436106100f35760003560e01c8063438ab5ac1161008a5780638d445bd0116100595780638d445bd0146102e0578063946d920414610300578063b2db82f514610320578063dad544e01461034057600080fd5b8063438ab5ac1461023f57806354fd4d501461025f5780635c975abb146102ab5780635ec15d89146102c057600080fd5b806333d7e2bd116100c657806333d7e2bd1461017f57806335e80ab3146101d757806338d38c97146101ec5780633e47158c1461022a57600080fd5b80630fd11077146100f85780631ee116bf1461013d578063225ce1761461014757806330f9765d14610177575b600080fd5b34801561010457600080fd5b506101286101133660046110e0565b60016020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b610145610355565b005b34801561015357600080fd5b506101286101623660046110e0565b60026020526000908152604090205460ff1681565b6101456103f1565b34801561018b57600080fd5b506000546101b29062010000900473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610134565b3480156101e357600080fd5b506101b2610482565b3480156101f857600080fd5b5060405160ff7f0000000000000000000000000000000000000000000000000000000000000000168152602001610134565b34801561023657600080fd5b506101b2610519565b34801561024b57600080fd5b5061014561025a3660046110e0565b610724565b34801561026b57600080fd5b50604080518082018252600581527f312e322e30000000000000000000000000000000000000000000000000000000602082015290516101349190611104565b3480156102b757600080fd5b506101286107ef565b3480156102cc57600080fd5b506101456102db3660046110e0565b610881565b3480156102ec57600080fd5b506101456102fb366004611177565b610909565b34801561030c57600080fd5b5061014561031b366004611190565b610b49565b34801561032c57600080fd5b5061014561033b3660046110e0565b610d46565b34801561034c57600080fd5b506101b2610d5a565b3360008181526001602052604090205460ff1661039e576040517f665a1d1c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff167f97efc519b9020a140ffe13878e03d340b976676090bc7fe3e33191192df7c72c346040516103e691815260200190565b60405180910390a250565b3360008181526002602052604090205460ff1661043a576040517f665a1d1c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff167fb58278ed56aa79ad2e243963b44b165a8f76d629f61c01dd3649d658e0eacca4346040516103e691815260200190565b60008060029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166335e80ab36040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104f0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105149190611218565b905090565b6000806105447fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b905073ffffffffffffffffffffffffffffffffffffffff81161561056757919050565b6040518060400160405280601a81526020017f4f564d5f4c3143726f7373446f6d61696e4d657373656e6765720000000000008152505160026105aa9190611264565b604080513060208201526000918101919091527f4f564d5f4c3143726f7373446f6d61696e4d657373656e6765720000000000009190911790610605906060015b604051602081830303815290604052805190602001205490565b1461063c576040517f54e433cd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805130602082015260019181019190915260009061065e906060016105eb565b905073ffffffffffffffffffffffffffffffffffffffff8116156106f2578073ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106eb9190611218565b9250505090565b6040517f332144db00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61072c610dae565b61073581610e06565b60004790508173ffffffffffffffffffffffffffffffffffffffff166330f9765d826040518263ffffffff1660e01b81526004016000604051808303818588803b15801561078257600080fd5b505af1158015610796573d6000803e3d6000fd5b50505050508173ffffffffffffffffffffffffffffffffffffffff167f87eb4064140fbec95a8de570e01b4c650c00ecd677560af9f298a975b636c22d826040516107e391815260200190565b60405180910390a25050565b60008060029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561085d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061051491906112a1565b610889610dae565b61089281610e06565b73ffffffffffffffffffffffffffffffffffffffff811660008181526002602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055517f5d2682e700a2146c8e2381e0b407003576a54e96dd08f40f3ea0d2b8706db1069190a250565b6109116107ef565b15610948576040517f9e72994200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3360008181526001602052604090205460ff16610991576040517f665a1d1c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b478211156109cb576040517fe1ba922700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61dead73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16639bf62d826040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a2f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a539190611218565b73ffffffffffffffffffffffffffffffffffffffff1614610aa0576040517fd6cbd5f900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16638b4c40b0836040518263ffffffff1660e01b81526004016000604051808303818588803b158015610ae857600080fd5b505af1158015610afc573d6000803e3d6000fd5b50505050508073ffffffffffffffffffffffffffffffffffffffff167fe9512d49448b580f3d29031e9243ee81bc8789a93d6f04ec8f03b694d623637b836040516107e391815260200190565b7f0000000000000000000000000000000000000000000000000000000000000000600054610100900460ff16158015610b89575060005460ff8083169116105b610c19576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840160405180910390fd5b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001660ff831617610100179055610c52610ee0565b600080547fffffffffffffffffffff0000000000000000000000000000000000000000ffff166201000073ffffffffffffffffffffffffffffffffffffffff8716021781555b82811015610ce157610ccf848483818110610cb557610cb56112c3565b9050602002016020810190610cca91906110e0565b610f61565b80610cd9816112f2565b915050610c98565b50600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150505050565b610d4e610dae565b610d5781610f61565b50565b6000610d64610519565b73ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104f0573d6000803e3d6000fd5b33610db7610d5a565b73ffffffffffffffffffffffffffffffffffffffff1614610e04576040517f7f12c64b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b8073ffffffffffffffffffffffffffffffffffffffff1663dad544e06040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e51573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e759190611218565b73ffffffffffffffffffffffffffffffffffffffff16610e93610d5a565b73ffffffffffffffffffffffffffffffffffffffff1614610d57576040517f075c431400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b33610ee9610519565b73ffffffffffffffffffffffffffffffffffffffff1614158015610f2a575033610f11610d5a565b73ffffffffffffffffffffffffffffffffffffffff1614155b15610e04576040517fc4050a2600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610f6a81610e06565b610f72610482565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff166335e80ab36040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fd3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ff79190611218565b73ffffffffffffffffffffffffffffffffffffffff1614611044576040517f84ab551500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8116600081815260016020819052604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016909217909155517f90a7fac2e56aebe4889351fb04eda5efb28b19dedf288bdbfd3cfd817c79630f9190a250565b73ffffffffffffffffffffffffffffffffffffffff81168114610d5757600080fd5b6000602082840312156110f257600080fd5b81356110fd816110be565b9392505050565b600060208083528351808285015260005b8181101561113157858101830151858201604001528201611115565b81811115611143576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b60006020828403121561118957600080fd5b5035919050565b6000806000604084860312156111a557600080fd5b83356111b0816110be565b9250602084013567ffffffffffffffff808211156111cd57600080fd5b818601915086601f8301126111e157600080fd5b8135818111156111f057600080fd5b8760208260051b850101111561120557600080fd5b6020830194508093505050509250925092565b60006020828403121561122a57600080fd5b81516110fd816110be565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561129c5761129c611235565b500290565b6000602082840312156112b357600080fd5b815180151581146110fd57600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361132357611323611235565b506001019056fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\xA0`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`\x01`\x80Ra\0\x1Ea\0#V[a\0\xE3V[`\0Ta\x01\0\x90\x04`\xFF\x16\x15a\0\x8FW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`'`$\x82\x01R\x7FInitializable: contract is initi`D\x82\x01Rfalizing`\xC8\x1B`d\x82\x01R`\x84\x01`@Q\x80\x91\x03\x90\xFD[`\0T`\xFF\x90\x81\x16\x10\x15a\0\xE1W`\0\x80T`\xFF\x19\x16`\xFF\x90\x81\x17\x90\x91U`@Q\x90\x81R\x7F\x7F&\xB8?\xF9n\x1F+jh/\x138R\xF6y\x8A\t\xC4e\xDA\x95\x92\x14`\xCE\xFB8G@$\x98\x90` \x01`@Q\x80\x91\x03\x90\xA1[V[`\x80Qa\x137a\x01\x05`\09`\0\x81\x81a\x02\0\x01Ra\x0BK\x01Ra\x137`\0\xF3\xFE`\x80`@R`\x046\x10a\0\xF3W`\x005`\xE0\x1C\x80cC\x8A\xB5\xAC\x11a\0\x8AW\x80c\x8DD[\xD0\x11a\0YW\x80c\x8DD[\xD0\x14a\x02\xE0W\x80c\x94m\x92\x04\x14a\x03\0W\x80c\xB2\xDB\x82\xF5\x14a\x03 W\x80c\xDA\xD5D\xE0\x14a\x03@W`\0\x80\xFD[\x80cC\x8A\xB5\xAC\x14a\x02?W\x80cT\xFDMP\x14a\x02_W\x80c\\\x97Z\xBB\x14a\x02\xABW\x80c^\xC1]\x89\x14a\x02\xC0W`\0\x80\xFD[\x80c3\xD7\xE2\xBD\x11a\0\xC6W\x80c3\xD7\xE2\xBD\x14a\x01\x7FW\x80c5\xE8\n\xB3\x14a\x01\xD7W\x80c8\xD3\x8C\x97\x14a\x01\xECW\x80c>G\x15\x8C\x14a\x02*W`\0\x80\xFD[\x80c\x0F\xD1\x10w\x14a\0\xF8W\x80c\x1E\xE1\x16\xBF\x14a\x01=W\x80c\"\\\xE1v\x14a\x01GW\x80c0\xF9v]\x14a\x01wW[`\0\x80\xFD[4\x80\x15a\x01\x04W`\0\x80\xFD[Pa\x01(a\x01\x136`\x04a\x10\xE0V[`\x01` R`\0\x90\x81R`@\x90 T`\xFF\x16\x81V[`@Q\x90\x15\x15\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[a\x01Ea\x03UV[\0[4\x80\x15a\x01SW`\0\x80\xFD[Pa\x01(a\x01b6`\x04a\x10\xE0V[`\x02` R`\0\x90\x81R`@\x90 T`\xFF\x16\x81V[a\x01Ea\x03\xF1V[4\x80\x15a\x01\x8BW`\0\x80\xFD[P`\0Ta\x01\xB2\x90b\x01\0\0\x90\x04s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01a\x014V[4\x80\x15a\x01\xE3W`\0\x80\xFD[Pa\x01\xB2a\x04\x82V[4\x80\x15a\x01\xF8W`\0\x80\xFD[P`@Q`\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x81R` \x01a\x014V[4\x80\x15a\x026W`\0\x80\xFD[Pa\x01\xB2a\x05\x19V[4\x80\x15a\x02KW`\0\x80\xFD[Pa\x01Ea\x02Z6`\x04a\x10\xE0V[a\x07$V[4\x80\x15a\x02kW`\0\x80\xFD[P`@\x80Q\x80\x82\x01\x82R`\x05\x81R\x7F1.2.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` \x82\x01R\x90Qa\x014\x91\x90a\x11\x04V[4\x80\x15a\x02\xB7W`\0\x80\xFD[Pa\x01(a\x07\xEFV[4\x80\x15a\x02\xCCW`\0\x80\xFD[Pa\x01Ea\x02\xDB6`\x04a\x10\xE0V[a\x08\x81V[4\x80\x15a\x02\xECW`\0\x80\xFD[Pa\x01Ea\x02\xFB6`\x04a\x11wV[a\t\tV[4\x80\x15a\x03\x0CW`\0\x80\xFD[Pa\x01Ea\x03\x1B6`\x04a\x11\x90V[a\x0BIV[4\x80\x15a\x03,W`\0\x80\xFD[Pa\x01Ea\x03;6`\x04a\x10\xE0V[a\rFV[4\x80\x15a\x03LW`\0\x80\xFD[Pa\x01\xB2a\rZV[3`\0\x81\x81R`\x01` R`@\x90 T`\xFF\x16a\x03\x9EW`@Q\x7FfZ\x1D\x1C\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\x01`@Q\x80\x91\x03\x90\xFD[\x80s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\x97\xEF\xC5\x19\xB9\x02\n\x14\x0F\xFE\x13\x87\x8E\x03\xD3@\xB9vg`\x90\xBC\x7F\xE3\xE31\x91\x19-\xF7\xC7,4`@Qa\x03\xE6\x91\x81R` \x01\x90V[`@Q\x80\x91\x03\x90\xA2PV[3`\0\x81\x81R`\x02` R`@\x90 T`\xFF\x16a\x04:W`@Q\x7FfZ\x1D\x1C\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\x01`@Q\x80\x91\x03\x90\xFD[\x80s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xB5\x82x\xEDV\xAAy\xAD.$9c\xB4K\x16Z\x8Fv\xD6)\xF6\x1C\x01\xDD6I\xD6X\xE0\xEA\xCC\xA44`@Qa\x03\xE6\x91\x81R` \x01\x90V[`\0\x80`\x02\x90T\x90a\x01\0\n\x90\x04s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c5\xE8\n\xB3`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x04\xF0W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x05\x14\x91\x90a\x12\x18V[\x90P\x90V[`\0\x80a\x05D\x7F\xB51'hJV\x8B1s\xAE\x13\xB9\xF8\xA6\x01n$>c\xB6\xE8\xEE\x11x\xD6\xA7\x17\x85\x0B]a\x03T\x90V[\x90Ps\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x15a\x05gW\x91\x90PV[`@Q\x80`@\x01`@R\x80`\x1A\x81R` \x01\x7FOVM_L1CrossDomainMessenger\0\0\0\0\0\0\x81RPQ`\x02a\x05\xAA\x91\x90a\x12dV[`@\x80Q0` \x82\x01R`\0\x91\x81\x01\x91\x90\x91R\x7FOVM_L1CrossDomainMessenger\0\0\0\0\0\0\x91\x90\x91\x17\x90a\x06\x05\x90``\x01[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 T\x90V[\x14a\x06=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x06\xEB\x91\x90a\x12\x18V[\x92PPP\x90V[`@Q\x7F3!D\xDB\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\x01`@Q\x80\x91\x03\x90\xFD[a\x07,a\r\xAEV[a\x075\x81a\x0E\x06V[`\0G\x90P\x81s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c0\xF9v]\x82`@Q\x82c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01`\0`@Q\x80\x83\x03\x81\x85\x88\x80;\x15\x80\x15a\x07\x82W`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x07\x96W=`\0\x80>=`\0\xFD[PPPPP\x81s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\x87\xEB@d\x14\x0F\xBE\xC9Z\x8D\xE5p\xE0\x1BLe\x0C\0\xEC\xD6wV\n\xF9\xF2\x98\xA9u\xB66\xC2-\x82`@Qa\x07\xE3\x91\x81R` \x01\x90V[`@Q\x80\x91\x03\x90\xA2PPV[`\0\x80`\x02\x90T\x90a\x01\0\n\x90\x04s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\\\x97Z\xBB`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x08]W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x05\x14\x91\x90a\x12\xA1V[a\x08\x89a\r\xAEV[a\x08\x92\x81a\x0E\x06V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16`\0\x81\x81R`\x02` R`@\x80\x82 \x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x16`\x01\x17\x90UQ\x7F]&\x82\xE7\0\xA2\x14l\x8E#\x81\xE0\xB4\x07\x005v\xA5N\x96\xDD\x08\xF4\x0F>\xA0\xD2\xB8pm\xB1\x06\x91\x90\xA2PV[a\t\x11a\x07\xEFV[\x15a\tHW`@Q\x7F\x9Er\x99B\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\x01`@Q\x80\x91\x03\x90\xFD[3`\0\x81\x81R`\x01` R`@\x90 T`\xFF\x16a\t\x91W`@Q\x7FfZ\x1D\x1C\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\x01`@Q\x80\x91\x03\x90\xFD[G\x82\x11\x15a\t\xCBW`@Q\x7F\xE1\xBA\x92'\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\x01`@Q\x80\x91\x03\x90\xFD[a\xDE\xADs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\x9B\xF6-\x82`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\n/W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\nS\x91\x90a\x12\x18V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14a\n\xA0W`@Q\x7F\xD6\xCB\xD5\xF9\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\x01`@Q\x80\x91\x03\x90\xFD[\x80s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\x8BL@\xB0\x83`@Q\x82c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01`\0`@Q\x80\x83\x03\x81\x85\x88\x80;\x15\x80\x15a\n\xE8W`\0\x80\xFD[PZ\xF1\x15\x80\x15a\n\xFCW=`\0\x80>=`\0\xFD[PPPPP\x80s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xE9Q-ID\x8BX\x0F=)\x03\x1E\x92C\xEE\x81\xBC\x87\x89\xA9=o\x04\xEC\x8F\x03\xB6\x94\xD6#c{\x83`@Qa\x07\xE3\x91\x81R` \x01\x90V[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\0Ta\x01\0\x90\x04`\xFF\x16\x15\x80\x15a\x0B\x89WP`\0T`\xFF\x80\x83\x16\x91\x16\x10[a\x0C\x19W`@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\x82\x01R`.`$\x82\x01R\x7FInitializable: contract is alrea`D\x82\x01R\x7Fdy initialized\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01`@Q\x80\x91\x03\x90\xFD[`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\x16`\xFF\x83\x16\x17a\x01\0\x17\x90Ua\x0CRa\x0E\xE0V[`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xFF\xFF\x16b\x01\0\0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x16\x02\x17\x81U[\x82\x81\x10\x15a\x0C\xE1Wa\x0C\xCF\x84\x84\x83\x81\x81\x10a\x0C\xB5Wa\x0C\xB5a\x12\xC3V[\x90P` \x02\x01` \x81\x01\x90a\x0C\xCA\x91\x90a\x10\xE0V[a\x0FaV[\x80a\x0C\xD9\x81a\x12\xF2V[\x91PPa\x0C\x98V[P`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\x16\x90U`@Q`\xFF\x82\x16\x81R\x7F\x7F&\xB8?\xF9n\x1F+jh/\x138R\xF6y\x8A\t\xC4e\xDA\x95\x92\x14`\xCE\xFB8G@$\x98\x90` \x01`@Q\x80\x91\x03\x90\xA1PPPPV[a\rNa\r\xAEV[a\rW\x81a\x0FaV[PV[`\0a\rda\x05\x19V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\x8D\xA5\xCB[`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x04\xF0W=`\0\x80>=`\0\xFD[3a\r\xB7a\rZV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14a\x0E\x04W`@Q\x7F\x7F\x12\xC6K\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\x01`@Q\x80\x91\x03\x90\xFD[V[\x80s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xDA\xD5D\xE0`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x0EQW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x0Eu\x91\x90a\x12\x18V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a\x0E\x93a\rZV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14a\rWW`@Q\x7F\x07\\C\x14\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\x01`@Q\x80\x91\x03\x90\xFD[3a\x0E\xE9a\x05\x19V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14\x15\x80\x15a\x0F*WP3a\x0F\x11a\rZV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14\x15[\x15a\x0E\x04W`@Q\x7F\xC4\x05\n&\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\x01`@Q\x80\x91\x03\x90\xFD[a\x0Fj\x81a\x0E\x06V[a\x0Fra\x04\x82V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c5\xE8\n\xB3`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x0F\xD3W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x0F\xF7\x91\x90a\x12\x18V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14a\x10DW`@Q\x7F\x84\xABU\x15\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\x01`@Q\x80\x91\x03\x90\xFD[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16`\0\x81\x81R`\x01` \x81\x90R`@\x80\x83 \x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x16\x90\x92\x17\x90\x91UQ\x7F\x90\xA7\xFA\xC2\xE5j\xEB\xE4\x88\x93Q\xFB\x04\xED\xA5\xEF\xB2\x8B\x19\xDE\xDF(\x8B\xDB\xFD<\xFD\x81|yc\x0F\x91\x90\xA2PV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\rWW`\0\x80\xFD[`\0` \x82\x84\x03\x12\x15a\x10\xF2W`\0\x80\xFD[\x815a\x10\xFD\x81a\x10\xBEV[\x93\x92PPPV[`\0` \x80\x83R\x83Q\x80\x82\x85\x01R`\0[\x81\x81\x10\x15a\x111W\x85\x81\x01\x83\x01Q\x85\x82\x01`@\x01R\x82\x01a\x11\x15V[\x81\x81\x11\x15a\x11CW`\0`@\x83\x87\x01\x01R[P`\x1F\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x92\x90\x92\x01`@\x01\x93\x92PPPV[`\0` \x82\x84\x03\x12\x15a\x11\x89W`\0\x80\xFD[P5\x91\x90PV[`\0\x80`\0`@\x84\x86\x03\x12\x15a\x11\xA5W`\0\x80\xFD[\x835a\x11\xB0\x81a\x10\xBEV[\x92P` \x84\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x11\xCDW`\0\x80\xFD[\x81\x86\x01\x91P\x86`\x1F\x83\x01\x12a\x11\xE1W`\0\x80\xFD[\x815\x81\x81\x11\x15a\x11\xF0W`\0\x80\xFD[\x87` \x82`\x05\x1B\x85\x01\x01\x11\x15a\x12\x05W`\0\x80\xFD[` \x83\x01\x94P\x80\x93PPPP\x92P\x92P\x92V[`\0` \x82\x84\x03\x12\x15a\x12*W`\0\x80\xFD[\x81Qa\x10\xFD\x81a\x10\xBEV[\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`\x11`\x04R`$`\0\xFD[`\0\x81\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x04\x83\x11\x82\x15\x15\x16\x15a\x12\x9CWa\x12\x9Ca\x125V[P\x02\x90V[`\0` \x82\x84\x03\x12\x15a\x12\xB3W`\0\x80\xFD[\x81Q\x80\x15\x15\x81\x14a\x10\xFDW`\0\x80\xFD[\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`2`\x04R`$`\0\xFD[`\0\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x03a\x13#Wa\x13#a\x125V[P`\x01\x01\x90V\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x6080604052600436106100f35760003560e01c8063438ab5ac1161008a5780638d445bd0116100595780638d445bd0146102e0578063946d920414610300578063b2db82f514610320578063dad544e01461034057600080fd5b8063438ab5ac1461023f57806354fd4d501461025f5780635c975abb146102ab5780635ec15d89146102c057600080fd5b806333d7e2bd116100c657806333d7e2bd1461017f57806335e80ab3146101d757806338d38c97146101ec5780633e47158c1461022a57600080fd5b80630fd11077146100f85780631ee116bf1461013d578063225ce1761461014757806330f9765d14610177575b600080fd5b34801561010457600080fd5b506101286101133660046110e0565b60016020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b610145610355565b005b34801561015357600080fd5b506101286101623660046110e0565b60026020526000908152604090205460ff1681565b6101456103f1565b34801561018b57600080fd5b506000546101b29062010000900473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610134565b3480156101e357600080fd5b506101b2610482565b3480156101f857600080fd5b5060405160ff7f0000000000000000000000000000000000000000000000000000000000000000168152602001610134565b34801561023657600080fd5b506101b2610519565b34801561024b57600080fd5b5061014561025a3660046110e0565b610724565b34801561026b57600080fd5b50604080518082018252600581527f312e322e30000000000000000000000000000000000000000000000000000000602082015290516101349190611104565b3480156102b757600080fd5b506101286107ef565b3480156102cc57600080fd5b506101456102db3660046110e0565b610881565b3480156102ec57600080fd5b506101456102fb366004611177565b610909565b34801561030c57600080fd5b5061014561031b366004611190565b610b49565b34801561032c57600080fd5b5061014561033b3660046110e0565b610d46565b34801561034c57600080fd5b506101b2610d5a565b3360008181526001602052604090205460ff1661039e576040517f665a1d1c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff167f97efc519b9020a140ffe13878e03d340b976676090bc7fe3e33191192df7c72c346040516103e691815260200190565b60405180910390a250565b3360008181526002602052604090205460ff1661043a576040517f665a1d1c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff167fb58278ed56aa79ad2e243963b44b165a8f76d629f61c01dd3649d658e0eacca4346040516103e691815260200190565b60008060029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166335e80ab36040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104f0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105149190611218565b905090565b6000806105447fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b905073ffffffffffffffffffffffffffffffffffffffff81161561056757919050565b6040518060400160405280601a81526020017f4f564d5f4c3143726f7373446f6d61696e4d657373656e6765720000000000008152505160026105aa9190611264565b604080513060208201526000918101919091527f4f564d5f4c3143726f7373446f6d61696e4d657373656e6765720000000000009190911790610605906060015b604051602081830303815290604052805190602001205490565b1461063c576040517f54e433cd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805130602082015260019181019190915260009061065e906060016105eb565b905073ffffffffffffffffffffffffffffffffffffffff8116156106f2578073ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106eb9190611218565b9250505090565b6040517f332144db00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61072c610dae565b61073581610e06565b60004790508173ffffffffffffffffffffffffffffffffffffffff166330f9765d826040518263ffffffff1660e01b81526004016000604051808303818588803b15801561078257600080fd5b505af1158015610796573d6000803e3d6000fd5b50505050508173ffffffffffffffffffffffffffffffffffffffff167f87eb4064140fbec95a8de570e01b4c650c00ecd677560af9f298a975b636c22d826040516107e391815260200190565b60405180910390a25050565b60008060029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561085d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061051491906112a1565b610889610dae565b61089281610e06565b73ffffffffffffffffffffffffffffffffffffffff811660008181526002602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055517f5d2682e700a2146c8e2381e0b407003576a54e96dd08f40f3ea0d2b8706db1069190a250565b6109116107ef565b15610948576040517f9e72994200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3360008181526001602052604090205460ff16610991576040517f665a1d1c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b478211156109cb576040517fe1ba922700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61dead73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16639bf62d826040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a2f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a539190611218565b73ffffffffffffffffffffffffffffffffffffffff1614610aa0576040517fd6cbd5f900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16638b4c40b0836040518263ffffffff1660e01b81526004016000604051808303818588803b158015610ae857600080fd5b505af1158015610afc573d6000803e3d6000fd5b50505050508073ffffffffffffffffffffffffffffffffffffffff167fe9512d49448b580f3d29031e9243ee81bc8789a93d6f04ec8f03b694d623637b836040516107e391815260200190565b7f0000000000000000000000000000000000000000000000000000000000000000600054610100900460ff16158015610b89575060005460ff8083169116105b610c19576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840160405180910390fd5b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001660ff831617610100179055610c52610ee0565b600080547fffffffffffffffffffff0000000000000000000000000000000000000000ffff166201000073ffffffffffffffffffffffffffffffffffffffff8716021781555b82811015610ce157610ccf848483818110610cb557610cb56112c3565b9050602002016020810190610cca91906110e0565b610f61565b80610cd9816112f2565b915050610c98565b50600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150505050565b610d4e610dae565b610d5781610f61565b50565b6000610d64610519565b73ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104f0573d6000803e3d6000fd5b33610db7610d5a565b73ffffffffffffffffffffffffffffffffffffffff1614610e04576040517f7f12c64b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b8073ffffffffffffffffffffffffffffffffffffffff1663dad544e06040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e51573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e759190611218565b73ffffffffffffffffffffffffffffffffffffffff16610e93610d5a565b73ffffffffffffffffffffffffffffffffffffffff1614610d57576040517f075c431400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b33610ee9610519565b73ffffffffffffffffffffffffffffffffffffffff1614158015610f2a575033610f11610d5a565b73ffffffffffffffffffffffffffffffffffffffff1614155b15610e04576040517fc4050a2600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610f6a81610e06565b610f72610482565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff166335e80ab36040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fd3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ff79190611218565b73ffffffffffffffffffffffffffffffffffffffff1614611044576040517f84ab551500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8116600081815260016020819052604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016909217909155517f90a7fac2e56aebe4889351fb04eda5efb28b19dedf288bdbfd3cfd817c79630f9190a250565b73ffffffffffffffffffffffffffffffffffffffff81168114610d5757600080fd5b6000602082840312156110f257600080fd5b81356110fd816110be565b9392505050565b600060208083528351808285015260005b8181101561113157858101830151858201604001528201611115565b81811115611143576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b60006020828403121561118957600080fd5b5035919050565b6000806000604084860312156111a557600080fd5b83356111b0816110be565b9250602084013567ffffffffffffffff808211156111cd57600080fd5b818601915086601f8301126111e157600080fd5b8135818111156111f057600080fd5b8760208260051b850101111561120557600080fd5b6020830194508093505050509250925092565b60006020828403121561122a57600080fd5b81516110fd816110be565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561129c5761129c611235565b500290565b6000602082840312156112b357600080fd5b815180151581146110fd57600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361132357611323611235565b506001019056fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R`\x046\x10a\0\xF3W`\x005`\xE0\x1C\x80cC\x8A\xB5\xAC\x11a\0\x8AW\x80c\x8DD[\xD0\x11a\0YW\x80c\x8DD[\xD0\x14a\x02\xE0W\x80c\x94m\x92\x04\x14a\x03\0W\x80c\xB2\xDB\x82\xF5\x14a\x03 W\x80c\xDA\xD5D\xE0\x14a\x03@W`\0\x80\xFD[\x80cC\x8A\xB5\xAC\x14a\x02?W\x80cT\xFDMP\x14a\x02_W\x80c\\\x97Z\xBB\x14a\x02\xABW\x80c^\xC1]\x89\x14a\x02\xC0W`\0\x80\xFD[\x80c3\xD7\xE2\xBD\x11a\0\xC6W\x80c3\xD7\xE2\xBD\x14a\x01\x7FW\x80c5\xE8\n\xB3\x14a\x01\xD7W\x80c8\xD3\x8C\x97\x14a\x01\xECW\x80c>G\x15\x8C\x14a\x02*W`\0\x80\xFD[\x80c\x0F\xD1\x10w\x14a\0\xF8W\x80c\x1E\xE1\x16\xBF\x14a\x01=W\x80c\"\\\xE1v\x14a\x01GW\x80c0\xF9v]\x14a\x01wW[`\0\x80\xFD[4\x80\x15a\x01\x04W`\0\x80\xFD[Pa\x01(a\x01\x136`\x04a\x10\xE0V[`\x01` R`\0\x90\x81R`@\x90 T`\xFF\x16\x81V[`@Q\x90\x15\x15\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[a\x01Ea\x03UV[\0[4\x80\x15a\x01SW`\0\x80\xFD[Pa\x01(a\x01b6`\x04a\x10\xE0V[`\x02` R`\0\x90\x81R`@\x90 T`\xFF\x16\x81V[a\x01Ea\x03\xF1V[4\x80\x15a\x01\x8BW`\0\x80\xFD[P`\0Ta\x01\xB2\x90b\x01\0\0\x90\x04s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01a\x014V[4\x80\x15a\x01\xE3W`\0\x80\xFD[Pa\x01\xB2a\x04\x82V[4\x80\x15a\x01\xF8W`\0\x80\xFD[P`@Q`\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x81R` \x01a\x014V[4\x80\x15a\x026W`\0\x80\xFD[Pa\x01\xB2a\x05\x19V[4\x80\x15a\x02KW`\0\x80\xFD[Pa\x01Ea\x02Z6`\x04a\x10\xE0V[a\x07$V[4\x80\x15a\x02kW`\0\x80\xFD[P`@\x80Q\x80\x82\x01\x82R`\x05\x81R\x7F1.2.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` \x82\x01R\x90Qa\x014\x91\x90a\x11\x04V[4\x80\x15a\x02\xB7W`\0\x80\xFD[Pa\x01(a\x07\xEFV[4\x80\x15a\x02\xCCW`\0\x80\xFD[Pa\x01Ea\x02\xDB6`\x04a\x10\xE0V[a\x08\x81V[4\x80\x15a\x02\xECW`\0\x80\xFD[Pa\x01Ea\x02\xFB6`\x04a\x11wV[a\t\tV[4\x80\x15a\x03\x0CW`\0\x80\xFD[Pa\x01Ea\x03\x1B6`\x04a\x11\x90V[a\x0BIV[4\x80\x15a\x03,W`\0\x80\xFD[Pa\x01Ea\x03;6`\x04a\x10\xE0V[a\rFV[4\x80\x15a\x03LW`\0\x80\xFD[Pa\x01\xB2a\rZV[3`\0\x81\x81R`\x01` R`@\x90 T`\xFF\x16a\x03\x9EW`@Q\x7FfZ\x1D\x1C\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\x01`@Q\x80\x91\x03\x90\xFD[\x80s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\x97\xEF\xC5\x19\xB9\x02\n\x14\x0F\xFE\x13\x87\x8E\x03\xD3@\xB9vg`\x90\xBC\x7F\xE3\xE31\x91\x19-\xF7\xC7,4`@Qa\x03\xE6\x91\x81R` \x01\x90V[`@Q\x80\x91\x03\x90\xA2PV[3`\0\x81\x81R`\x02` R`@\x90 T`\xFF\x16a\x04:W`@Q\x7FfZ\x1D\x1C\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\x01`@Q\x80\x91\x03\x90\xFD[\x80s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xB5\x82x\xEDV\xAAy\xAD.$9c\xB4K\x16Z\x8Fv\xD6)\xF6\x1C\x01\xDD6I\xD6X\xE0\xEA\xCC\xA44`@Qa\x03\xE6\x91\x81R` \x01\x90V[`\0\x80`\x02\x90T\x90a\x01\0\n\x90\x04s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c5\xE8\n\xB3`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x04\xF0W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x05\x14\x91\x90a\x12\x18V[\x90P\x90V[`\0\x80a\x05D\x7F\xB51'hJV\x8B1s\xAE\x13\xB9\xF8\xA6\x01n$>c\xB6\xE8\xEE\x11x\xD6\xA7\x17\x85\x0B]a\x03T\x90V[\x90Ps\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x15a\x05gW\x91\x90PV[`@Q\x80`@\x01`@R\x80`\x1A\x81R` \x01\x7FOVM_L1CrossDomainMessenger\0\0\0\0\0\0\x81RPQ`\x02a\x05\xAA\x91\x90a\x12dV[`@\x80Q0` \x82\x01R`\0\x91\x81\x01\x91\x90\x91R\x7FOVM_L1CrossDomainMessenger\0\0\0\0\0\0\x91\x90\x91\x17\x90a\x06\x05\x90``\x01[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 T\x90V[\x14a\x06=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x06\xEB\x91\x90a\x12\x18V[\x92PPP\x90V[`@Q\x7F3!D\xDB\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\x01`@Q\x80\x91\x03\x90\xFD[a\x07,a\r\xAEV[a\x075\x81a\x0E\x06V[`\0G\x90P\x81s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c0\xF9v]\x82`@Q\x82c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01`\0`@Q\x80\x83\x03\x81\x85\x88\x80;\x15\x80\x15a\x07\x82W`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x07\x96W=`\0\x80>=`\0\xFD[PPPPP\x81s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\x87\xEB@d\x14\x0F\xBE\xC9Z\x8D\xE5p\xE0\x1BLe\x0C\0\xEC\xD6wV\n\xF9\xF2\x98\xA9u\xB66\xC2-\x82`@Qa\x07\xE3\x91\x81R` \x01\x90V[`@Q\x80\x91\x03\x90\xA2PPV[`\0\x80`\x02\x90T\x90a\x01\0\n\x90\x04s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\\\x97Z\xBB`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x08]W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x05\x14\x91\x90a\x12\xA1V[a\x08\x89a\r\xAEV[a\x08\x92\x81a\x0E\x06V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16`\0\x81\x81R`\x02` R`@\x80\x82 \x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x16`\x01\x17\x90UQ\x7F]&\x82\xE7\0\xA2\x14l\x8E#\x81\xE0\xB4\x07\x005v\xA5N\x96\xDD\x08\xF4\x0F>\xA0\xD2\xB8pm\xB1\x06\x91\x90\xA2PV[a\t\x11a\x07\xEFV[\x15a\tHW`@Q\x7F\x9Er\x99B\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\x01`@Q\x80\x91\x03\x90\xFD[3`\0\x81\x81R`\x01` R`@\x90 T`\xFF\x16a\t\x91W`@Q\x7FfZ\x1D\x1C\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\x01`@Q\x80\x91\x03\x90\xFD[G\x82\x11\x15a\t\xCBW`@Q\x7F\xE1\xBA\x92'\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\x01`@Q\x80\x91\x03\x90\xFD[a\xDE\xADs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\x9B\xF6-\x82`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\n/W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\nS\x91\x90a\x12\x18V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14a\n\xA0W`@Q\x7F\xD6\xCB\xD5\xF9\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\x01`@Q\x80\x91\x03\x90\xFD[\x80s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\x8BL@\xB0\x83`@Q\x82c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01`\0`@Q\x80\x83\x03\x81\x85\x88\x80;\x15\x80\x15a\n\xE8W`\0\x80\xFD[PZ\xF1\x15\x80\x15a\n\xFCW=`\0\x80>=`\0\xFD[PPPPP\x80s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xE9Q-ID\x8BX\x0F=)\x03\x1E\x92C\xEE\x81\xBC\x87\x89\xA9=o\x04\xEC\x8F\x03\xB6\x94\xD6#c{\x83`@Qa\x07\xE3\x91\x81R` \x01\x90V[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\0Ta\x01\0\x90\x04`\xFF\x16\x15\x80\x15a\x0B\x89WP`\0T`\xFF\x80\x83\x16\x91\x16\x10[a\x0C\x19W`@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\x82\x01R`.`$\x82\x01R\x7FInitializable: contract is alrea`D\x82\x01R\x7Fdy initialized\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01`@Q\x80\x91\x03\x90\xFD[`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\x16`\xFF\x83\x16\x17a\x01\0\x17\x90Ua\x0CRa\x0E\xE0V[`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xFF\xFF\x16b\x01\0\0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x16\x02\x17\x81U[\x82\x81\x10\x15a\x0C\xE1Wa\x0C\xCF\x84\x84\x83\x81\x81\x10a\x0C\xB5Wa\x0C\xB5a\x12\xC3V[\x90P` \x02\x01` \x81\x01\x90a\x0C\xCA\x91\x90a\x10\xE0V[a\x0FaV[\x80a\x0C\xD9\x81a\x12\xF2V[\x91PPa\x0C\x98V[P`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\x16\x90U`@Q`\xFF\x82\x16\x81R\x7F\x7F&\xB8?\xF9n\x1F+jh/\x138R\xF6y\x8A\t\xC4e\xDA\x95\x92\x14`\xCE\xFB8G@$\x98\x90` \x01`@Q\x80\x91\x03\x90\xA1PPPPV[a\rNa\r\xAEV[a\rW\x81a\x0FaV[PV[`\0a\rda\x05\x19V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\x8D\xA5\xCB[`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x04\xF0W=`\0\x80>=`\0\xFD[3a\r\xB7a\rZV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14a\x0E\x04W`@Q\x7F\x7F\x12\xC6K\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\x01`@Q\x80\x91\x03\x90\xFD[V[\x80s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xDA\xD5D\xE0`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x0EQW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x0Eu\x91\x90a\x12\x18V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a\x0E\x93a\rZV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14a\rWW`@Q\x7F\x07\\C\x14\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\x01`@Q\x80\x91\x03\x90\xFD[3a\x0E\xE9a\x05\x19V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14\x15\x80\x15a\x0F*WP3a\x0F\x11a\rZV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14\x15[\x15a\x0E\x04W`@Q\x7F\xC4\x05\n&\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\x01`@Q\x80\x91\x03\x90\xFD[a\x0Fj\x81a\x0E\x06V[a\x0Fra\x04\x82V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c5\xE8\n\xB3`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x0F\xD3W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x0F\xF7\x91\x90a\x12\x18V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14a\x10DW`@Q\x7F\x84\xABU\x15\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\x01`@Q\x80\x91\x03\x90\xFD[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16`\0\x81\x81R`\x01` \x81\x90R`@\x80\x83 \x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x16\x90\x92\x17\x90\x91UQ\x7F\x90\xA7\xFA\xC2\xE5j\xEB\xE4\x88\x93Q\xFB\x04\xED\xA5\xEF\xB2\x8B\x19\xDE\xDF(\x8B\xDB\xFD<\xFD\x81|yc\x0F\x91\x90\xA2PV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\rWW`\0\x80\xFD[`\0` \x82\x84\x03\x12\x15a\x10\xF2W`\0\x80\xFD[\x815a\x10\xFD\x81a\x10\xBEV[\x93\x92PPPV[`\0` \x80\x83R\x83Q\x80\x82\x85\x01R`\0[\x81\x81\x10\x15a\x111W\x85\x81\x01\x83\x01Q\x85\x82\x01`@\x01R\x82\x01a\x11\x15V[\x81\x81\x11\x15a\x11CW`\0`@\x83\x87\x01\x01R[P`\x1F\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x92\x90\x92\x01`@\x01\x93\x92PPPV[`\0` \x82\x84\x03\x12\x15a\x11\x89W`\0\x80\xFD[P5\x91\x90PV[`\0\x80`\0`@\x84\x86\x03\x12\x15a\x11\xA5W`\0\x80\xFD[\x835a\x11\xB0\x81a\x10\xBEV[\x92P` \x84\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x11\xCDW`\0\x80\xFD[\x81\x86\x01\x91P\x86`\x1F\x83\x01\x12a\x11\xE1W`\0\x80\xFD[\x815\x81\x81\x11\x15a\x11\xF0W`\0\x80\xFD[\x87` \x82`\x05\x1B\x85\x01\x01\x11\x15a\x12\x05W`\0\x80\xFD[` \x83\x01\x94P\x80\x93PPPP\x92P\x92P\x92V[`\0` \x82\x84\x03\x12\x15a\x12*W`\0\x80\xFD[\x81Qa\x10\xFD\x81a\x10\xBEV[\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`\x11`\x04R`$`\0\xFD[`\0\x81\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x04\x83\x11\x82\x15\x15\x16\x15a\x12\x9CWa\x12\x9Ca\x125V[P\x02\x90V[`\0` \x82\x84\x03\x12\x15a\x12\xB3W`\0\x80\xFD[\x81Q\x80\x15\x15\x81\x14a\x10\xFDW`\0\x80\xFD[\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`2`\x04R`$`\0\xFD[`\0\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x03a\x13#Wa\x13#a\x125V[P`\x01\x01\x90V\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ETHLockbox_DifferentSuperchainConfig()` and selector `0x84ab5515`. +```solidity +error ETHLockbox_DifferentSuperchainConfig(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ETHLockbox_DifferentSuperchainConfig; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: ETHLockbox_DifferentSuperchainConfig) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for ETHLockbox_DifferentSuperchainConfig { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ETHLockbox_DifferentSuperchainConfig { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ETHLockbox_DifferentSuperchainConfig()"; + const SELECTOR: [u8; 4] = [132u8, 171u8, 85u8, 21u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ETHLockbox_InsufficientBalance()` and selector `0xe1ba9227`. +```solidity +error ETHLockbox_InsufficientBalance(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ETHLockbox_InsufficientBalance; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: ETHLockbox_InsufficientBalance) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for ETHLockbox_InsufficientBalance { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ETHLockbox_InsufficientBalance { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ETHLockbox_InsufficientBalance()"; + const SELECTOR: [u8; 4] = [225u8, 186u8, 146u8, 39u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ETHLockbox_NoWithdrawalTransactions()` and selector `0xd6cbd5f9`. +```solidity +error ETHLockbox_NoWithdrawalTransactions(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ETHLockbox_NoWithdrawalTransactions; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: ETHLockbox_NoWithdrawalTransactions) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for ETHLockbox_NoWithdrawalTransactions { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ETHLockbox_NoWithdrawalTransactions { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ETHLockbox_NoWithdrawalTransactions()"; + const SELECTOR: [u8; 4] = [214u8, 203u8, 213u8, 249u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ETHLockbox_Paused()` and selector `0x9e729942`. +```solidity +error ETHLockbox_Paused(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ETHLockbox_Paused; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ETHLockbox_Paused) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ETHLockbox_Paused { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ETHLockbox_Paused { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ETHLockbox_Paused()"; + const SELECTOR: [u8; 4] = [158u8, 114u8, 153u8, 66u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ETHLockbox_Unauthorized()` and selector `0x665a1d1c`. +```solidity +error ETHLockbox_Unauthorized(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ETHLockbox_Unauthorized; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ETHLockbox_Unauthorized) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ETHLockbox_Unauthorized { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ETHLockbox_Unauthorized { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ETHLockbox_Unauthorized()"; + const SELECTOR: [u8; 4] = [102u8, 90u8, 29u8, 28u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ProxyAdminOwnedBase_NotProxyAdmin()` and selector `0xe818dcc3`. +```solidity +error ProxyAdminOwnedBase_NotProxyAdmin(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ProxyAdminOwnedBase_NotProxyAdmin; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: ProxyAdminOwnedBase_NotProxyAdmin) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for ProxyAdminOwnedBase_NotProxyAdmin { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ProxyAdminOwnedBase_NotProxyAdmin { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ProxyAdminOwnedBase_NotProxyAdmin()"; + const SELECTOR: [u8; 4] = [232u8, 24u8, 220u8, 195u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner()` and selector `0xc4050a26`. +```solidity +error ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError + for ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner()"; + const SELECTOR: [u8; 4] = [196u8, 5u8, 10u8, 38u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ProxyAdminOwnedBase_NotProxyAdminOwner()` and selector `0x7f12c64b`. +```solidity +error ProxyAdminOwnedBase_NotProxyAdminOwner(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ProxyAdminOwnedBase_NotProxyAdminOwner; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: ProxyAdminOwnedBase_NotProxyAdminOwner) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for ProxyAdminOwnedBase_NotProxyAdminOwner { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ProxyAdminOwnedBase_NotProxyAdminOwner { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ProxyAdminOwnedBase_NotProxyAdminOwner()"; + const SELECTOR: [u8; 4] = [127u8, 18u8, 198u8, 75u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ProxyAdminOwnedBase_NotResolvedDelegateProxy()` and selector `0x54e433cd`. +```solidity +error ProxyAdminOwnedBase_NotResolvedDelegateProxy(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ProxyAdminOwnedBase_NotResolvedDelegateProxy; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: ProxyAdminOwnedBase_NotResolvedDelegateProxy) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for ProxyAdminOwnedBase_NotResolvedDelegateProxy { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ProxyAdminOwnedBase_NotResolvedDelegateProxy { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ProxyAdminOwnedBase_NotResolvedDelegateProxy()"; + const SELECTOR: [u8; 4] = [84u8, 228u8, 51u8, 205u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ProxyAdminOwnedBase_NotSharedProxyAdminOwner()` and selector `0x075c4314`. +```solidity +error ProxyAdminOwnedBase_NotSharedProxyAdminOwner(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ProxyAdminOwnedBase_NotSharedProxyAdminOwner; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: ProxyAdminOwnedBase_NotSharedProxyAdminOwner) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for ProxyAdminOwnedBase_NotSharedProxyAdminOwner { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ProxyAdminOwnedBase_NotSharedProxyAdminOwner { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ProxyAdminOwnedBase_NotSharedProxyAdminOwner()"; + const SELECTOR: [u8; 4] = [7u8, 92u8, 67u8, 20u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ProxyAdminOwnedBase_ProxyAdminNotFound()` and selector `0x332144db`. +```solidity +error ProxyAdminOwnedBase_ProxyAdminNotFound(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ProxyAdminOwnedBase_ProxyAdminNotFound; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: ProxyAdminOwnedBase_ProxyAdminNotFound) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for ProxyAdminOwnedBase_ProxyAdminNotFound { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ProxyAdminOwnedBase_ProxyAdminNotFound { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ProxyAdminOwnedBase_ProxyAdminNotFound()"; + const SELECTOR: [u8; 4] = [51u8, 33u8, 68u8, 219u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ReinitializableBase_ZeroInitVersion()` and selector `0x9b01afed`. +```solidity +error ReinitializableBase_ZeroInitVersion(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ReinitializableBase_ZeroInitVersion; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: ReinitializableBase_ZeroInitVersion) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for ReinitializableBase_ZeroInitVersion { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ReinitializableBase_ZeroInitVersion { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ReinitializableBase_ZeroInitVersion()"; + const SELECTOR: [u8; 4] = [155u8, 1u8, 175u8, 237u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `ETHLocked(address,uint256)` and selector `0x97efc519b9020a140ffe13878e03d340b976676090bc7fe3e33191192df7c72c`. +```solidity +event ETHLocked(address indexed portal, uint256 amount); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct ETHLocked { + #[allow(missing_docs)] + pub portal: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub amount: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for ETHLocked { + type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "ETHLocked(address,uint256)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 151u8, 239u8, 197u8, 25u8, 185u8, 2u8, 10u8, 20u8, 15u8, 254u8, 19u8, + 135u8, 142u8, 3u8, 211u8, 64u8, 185u8, 118u8, 103u8, 96u8, 144u8, 188u8, + 127u8, 227u8, 227u8, 49u8, 145u8, 25u8, 45u8, 247u8, 199u8, 44u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + portal: topics.1, + amount: data.0, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.amount), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.portal.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.portal, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for ETHLocked { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<ÐLocked> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: ÐLocked) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `ETHUnlocked(address,uint256)` and selector `0xe9512d49448b580f3d29031e9243ee81bc8789a93d6f04ec8f03b694d623637b`. +```solidity +event ETHUnlocked(address indexed portal, uint256 amount); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct ETHUnlocked { + #[allow(missing_docs)] + pub portal: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub amount: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for ETHUnlocked { + type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "ETHUnlocked(address,uint256)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 233u8, 81u8, 45u8, 73u8, 68u8, 139u8, 88u8, 15u8, 61u8, 41u8, 3u8, 30u8, + 146u8, 67u8, 238u8, 129u8, 188u8, 135u8, 137u8, 169u8, 61u8, 111u8, 4u8, + 236u8, 143u8, 3u8, 182u8, 148u8, 214u8, 35u8, 99u8, 123u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + portal: topics.1, + amount: data.0, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.amount), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.portal.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.portal, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for ETHUnlocked { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<ÐUnlocked> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: ÐUnlocked) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `Initialized(uint8)` and selector `0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498`. +```solidity +event Initialized(uint8 version); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct Initialized { + #[allow(missing_docs)] + pub version: u8, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for Initialized { + type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<8>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,); + const SIGNATURE: &'static str = "Initialized(uint8)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 127u8, 38u8, 184u8, 63u8, 249u8, 110u8, 31u8, 43u8, 106u8, 104u8, 47u8, + 19u8, 56u8, 82u8, 246u8, 121u8, 138u8, 9u8, 196u8, 101u8, 218u8, 149u8, + 146u8, 20u8, 96u8, 206u8, 251u8, 56u8, 71u8, 64u8, 36u8, 152u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { version: data.0 } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.version), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(),) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for Initialized { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&Initialized> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &Initialized) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `LiquidityMigrated(address,uint256)` and selector `0x87eb4064140fbec95a8de570e01b4c650c00ecd677560af9f298a975b636c22d`. +```solidity +event LiquidityMigrated(address indexed lockbox, uint256 amount); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct LiquidityMigrated { + #[allow(missing_docs)] + pub lockbox: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub amount: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for LiquidityMigrated { + type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "LiquidityMigrated(address,uint256)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 135u8, 235u8, 64u8, 100u8, 20u8, 15u8, 190u8, 201u8, 90u8, 141u8, 229u8, + 112u8, 224u8, 27u8, 76u8, 101u8, 12u8, 0u8, 236u8, 214u8, 119u8, 86u8, + 10u8, 249u8, 242u8, 152u8, 169u8, 117u8, 182u8, 54u8, 194u8, 45u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + lockbox: topics.1, + amount: data.0, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.amount), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.lockbox.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.lockbox, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for LiquidityMigrated { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&LiquidityMigrated> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &LiquidityMigrated) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `LiquidityReceived(address,uint256)` and selector `0xb58278ed56aa79ad2e243963b44b165a8f76d629f61c01dd3649d658e0eacca4`. +```solidity +event LiquidityReceived(address indexed lockbox, uint256 amount); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct LiquidityReceived { + #[allow(missing_docs)] + pub lockbox: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub amount: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for LiquidityReceived { + type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "LiquidityReceived(address,uint256)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 181u8, 130u8, 120u8, 237u8, 86u8, 170u8, 121u8, 173u8, 46u8, 36u8, 57u8, + 99u8, 180u8, 75u8, 22u8, 90u8, 143u8, 118u8, 214u8, 41u8, 246u8, 28u8, + 1u8, 221u8, 54u8, 73u8, 214u8, 88u8, 224u8, 234u8, 204u8, 164u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + lockbox: topics.1, + amount: data.0, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.amount), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.lockbox.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.lockbox, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for LiquidityReceived { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&LiquidityReceived> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &LiquidityReceived) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `LockboxAuthorized(address)` and selector `0x5d2682e700a2146c8e2381e0b407003576a54e96dd08f40f3ea0d2b8706db106`. +```solidity +event LockboxAuthorized(address indexed lockbox); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct LockboxAuthorized { + #[allow(missing_docs)] + pub lockbox: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for LockboxAuthorized { + type DataTuple<'a> = (); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "LockboxAuthorized(address)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 93u8, 38u8, 130u8, 231u8, 0u8, 162u8, 20u8, 108u8, 142u8, 35u8, 129u8, + 224u8, 180u8, 7u8, 0u8, 53u8, 118u8, 165u8, 78u8, 150u8, 221u8, 8u8, + 244u8, 15u8, 62u8, 160u8, 210u8, 184u8, 112u8, 109u8, 177u8, 6u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { lockbox: topics.1 } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + () + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.lockbox.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.lockbox, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for LockboxAuthorized { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&LockboxAuthorized> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &LockboxAuthorized) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `PortalAuthorized(address)` and selector `0x90a7fac2e56aebe4889351fb04eda5efb28b19dedf288bdbfd3cfd817c79630f`. +```solidity +event PortalAuthorized(address indexed portal); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct PortalAuthorized { + #[allow(missing_docs)] + pub portal: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for PortalAuthorized { + type DataTuple<'a> = (); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "PortalAuthorized(address)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 144u8, 167u8, 250u8, 194u8, 229u8, 106u8, 235u8, 228u8, 136u8, 147u8, + 81u8, 251u8, 4u8, 237u8, 165u8, 239u8, 178u8, 139u8, 25u8, 222u8, 223u8, + 40u8, 139u8, 219u8, 253u8, 60u8, 253u8, 129u8, 124u8, 121u8, 99u8, 15u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { portal: topics.1 } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + () + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.portal.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.portal, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for PortalAuthorized { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&PortalAuthorized> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &PortalAuthorized) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + /**Constructor`. +```solidity +constructor(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct constructorCall {} + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: constructorCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for constructorCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolConstructor for constructorCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `authorizeLockbox(address)` and selector `0x5ec15d89`. +```solidity +function authorizeLockbox(address _lockbox) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct authorizeLockboxCall { + #[allow(missing_docs)] + pub _lockbox: alloy::sol_types::private::Address, + } + ///Container type for the return parameters of the [`authorizeLockbox(address)`](authorizeLockboxCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct authorizeLockboxReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: authorizeLockboxCall) -> Self { + (value._lockbox,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for authorizeLockboxCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _lockbox: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: authorizeLockboxReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for authorizeLockboxReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl authorizeLockboxReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for authorizeLockboxCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = authorizeLockboxReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "authorizeLockbox(address)"; + const SELECTOR: [u8; 4] = [94u8, 193u8, 93u8, 137u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._lockbox, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + authorizeLockboxReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `authorizePortal(address)` and selector `0xb2db82f5`. +```solidity +function authorizePortal(address _portal) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct authorizePortalCall { + #[allow(missing_docs)] + pub _portal: alloy::sol_types::private::Address, + } + ///Container type for the return parameters of the [`authorizePortal(address)`](authorizePortalCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct authorizePortalReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: authorizePortalCall) -> Self { + (value._portal,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for authorizePortalCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _portal: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: authorizePortalReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for authorizePortalReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl authorizePortalReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for authorizePortalCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = authorizePortalReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "authorizePortal(address)"; + const SELECTOR: [u8; 4] = [178u8, 219u8, 130u8, 245u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._portal, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + authorizePortalReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `authorizedLockboxes(address)` and selector `0x225ce176`. +```solidity +function authorizedLockboxes(address) external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct authorizedLockboxesCall(pub alloy::sol_types::private::Address); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`authorizedLockboxes(address)`](authorizedLockboxesCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct authorizedLockboxesReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: authorizedLockboxesCall) -> Self { + (value.0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for authorizedLockboxesCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self(tuple.0) + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: authorizedLockboxesReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for authorizedLockboxesReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for authorizedLockboxesCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "authorizedLockboxes(address)"; + const SELECTOR: [u8; 4] = [34u8, 92u8, 225u8, 118u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.0, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: authorizedLockboxesReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: authorizedLockboxesReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `authorizedPortals(address)` and selector `0x0fd11077`. +```solidity +function authorizedPortals(address) external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct authorizedPortalsCall(pub alloy::sol_types::private::Address); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`authorizedPortals(address)`](authorizedPortalsCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct authorizedPortalsReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: authorizedPortalsCall) -> Self { + (value.0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for authorizedPortalsCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self(tuple.0) + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: authorizedPortalsReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for authorizedPortalsReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for authorizedPortalsCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "authorizedPortals(address)"; + const SELECTOR: [u8; 4] = [15u8, 209u8, 16u8, 119u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.0, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: authorizedPortalsReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: authorizedPortalsReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `initVersion()` and selector `0x38d38c97`. +```solidity +function initVersion() external view returns (uint8); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct initVersionCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`initVersion()`](initVersionCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct initVersionReturn { + #[allow(missing_docs)] + pub _0: u8, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: initVersionCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for initVersionCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<8>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u8,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: initVersionReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for initVersionReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for initVersionCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u8; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<8>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "initVersion()"; + const SELECTOR: [u8; 4] = [56u8, 211u8, 140u8, 151u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: initVersionReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: initVersionReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `initialize(address,address[])` and selector `0x946d9204`. +```solidity +function initialize(address _systemConfig, address[] memory _portals) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct initializeCall { + #[allow(missing_docs)] + pub _systemConfig: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _portals: alloy::sol_types::private::Vec, + } + ///Container type for the return parameters of the [`initialize(address,address[])`](initializeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct initializeReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Array, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Vec, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: initializeCall) -> Self { + (value._systemConfig, value._portals) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for initializeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _systemConfig: tuple.0, + _portals: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: initializeReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for initializeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl initializeReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for initializeCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Array, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = initializeReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "initialize(address,address[])"; + const SELECTOR: [u8; 4] = [148u8, 109u8, 146u8, 4u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._systemConfig, + ), + as alloy_sol_types::SolType>::tokenize(&self._portals), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + initializeReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `lockETH()` and selector `0x1ee116bf`. +```solidity +function lockETH() external payable; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct lockETHCall; + ///Container type for the return parameters of the [`lockETH()`](lockETHCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct lockETHReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: lockETHCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for lockETHCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: lockETHReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for lockETHReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl lockETHReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for lockETHCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = lockETHReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "lockETH()"; + const SELECTOR: [u8; 4] = [30u8, 225u8, 22u8, 191u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + lockETHReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `migrateLiquidity(address)` and selector `0x438ab5ac`. +```solidity +function migrateLiquidity(address _lockbox) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct migrateLiquidityCall { + #[allow(missing_docs)] + pub _lockbox: alloy::sol_types::private::Address, + } + ///Container type for the return parameters of the [`migrateLiquidity(address)`](migrateLiquidityCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct migrateLiquidityReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: migrateLiquidityCall) -> Self { + (value._lockbox,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for migrateLiquidityCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _lockbox: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: migrateLiquidityReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for migrateLiquidityReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl migrateLiquidityReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for migrateLiquidityCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = migrateLiquidityReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "migrateLiquidity(address)"; + const SELECTOR: [u8; 4] = [67u8, 138u8, 181u8, 172u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._lockbox, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + migrateLiquidityReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `paused()` and selector `0x5c975abb`. +```solidity +function paused() external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct pausedCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`paused()`](pausedCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct pausedReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: pausedCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for pausedCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: pausedReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for pausedReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for pausedCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "paused()"; + const SELECTOR: [u8; 4] = [92u8, 151u8, 90u8, 187u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: pausedReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: pausedReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `proxyAdmin()` and selector `0x3e47158c`. +```solidity +function proxyAdmin() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct proxyAdminCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`proxyAdmin()`](proxyAdminCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct proxyAdminReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: proxyAdminCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for proxyAdminCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: proxyAdminReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for proxyAdminReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for proxyAdminCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "proxyAdmin()"; + const SELECTOR: [u8; 4] = [62u8, 71u8, 21u8, 140u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: proxyAdminReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: proxyAdminReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `proxyAdminOwner()` and selector `0xdad544e0`. +```solidity +function proxyAdminOwner() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct proxyAdminOwnerCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`proxyAdminOwner()`](proxyAdminOwnerCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct proxyAdminOwnerReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: proxyAdminOwnerCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for proxyAdminOwnerCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: proxyAdminOwnerReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for proxyAdminOwnerReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for proxyAdminOwnerCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "proxyAdminOwner()"; + const SELECTOR: [u8; 4] = [218u8, 213u8, 68u8, 224u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: proxyAdminOwnerReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: proxyAdminOwnerReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `receiveLiquidity()` and selector `0x30f9765d`. +```solidity +function receiveLiquidity() external payable; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct receiveLiquidityCall; + ///Container type for the return parameters of the [`receiveLiquidity()`](receiveLiquidityCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct receiveLiquidityReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: receiveLiquidityCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for receiveLiquidityCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: receiveLiquidityReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for receiveLiquidityReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl receiveLiquidityReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for receiveLiquidityCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = receiveLiquidityReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "receiveLiquidity()"; + const SELECTOR: [u8; 4] = [48u8, 249u8, 118u8, 93u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + receiveLiquidityReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `superchainConfig()` and selector `0x35e80ab3`. +```solidity +function superchainConfig() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct superchainConfigCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`superchainConfig()`](superchainConfigCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct superchainConfigReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: superchainConfigCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for superchainConfigCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: superchainConfigReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for superchainConfigReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for superchainConfigCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "superchainConfig()"; + const SELECTOR: [u8; 4] = [53u8, 232u8, 10u8, 179u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: superchainConfigReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: superchainConfigReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `systemConfig()` and selector `0x33d7e2bd`. +```solidity +function systemConfig() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct systemConfigCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`systemConfig()`](systemConfigCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct systemConfigReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: systemConfigCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for systemConfigCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: systemConfigReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for systemConfigReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for systemConfigCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "systemConfig()"; + const SELECTOR: [u8; 4] = [51u8, 215u8, 226u8, 189u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: systemConfigReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: systemConfigReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `unlockETH(uint256)` and selector `0x8d445bd0`. +```solidity +function unlockETH(uint256 _value) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct unlockETHCall { + #[allow(missing_docs)] + pub _value: alloy::sol_types::private::primitives::aliases::U256, + } + ///Container type for the return parameters of the [`unlockETH(uint256)`](unlockETHCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct unlockETHReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: unlockETHCall) -> Self { + (value._value,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for unlockETHCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _value: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: unlockETHReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for unlockETHReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl unlockETHReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for unlockETHCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = unlockETHReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "unlockETH(uint256)"; + const SELECTOR: [u8; 4] = [141u8, 68u8, 91u8, 208u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._value), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + unlockETHReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `version()` and selector `0x54fd4d50`. +```solidity +function version() external view returns (string memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`version()`](versionCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for versionCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::String; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "version()"; + const SELECTOR: [u8; 4] = [84u8, 253u8, 77u8, 80u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + } + }; + ///Container for all the [`ETHLockbox`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum ETHLockboxCalls { + #[allow(missing_docs)] + authorizeLockbox(authorizeLockboxCall), + #[allow(missing_docs)] + authorizePortal(authorizePortalCall), + #[allow(missing_docs)] + authorizedLockboxes(authorizedLockboxesCall), + #[allow(missing_docs)] + authorizedPortals(authorizedPortalsCall), + #[allow(missing_docs)] + initVersion(initVersionCall), + #[allow(missing_docs)] + initialize(initializeCall), + #[allow(missing_docs)] + lockETH(lockETHCall), + #[allow(missing_docs)] + migrateLiquidity(migrateLiquidityCall), + #[allow(missing_docs)] + paused(pausedCall), + #[allow(missing_docs)] + proxyAdmin(proxyAdminCall), + #[allow(missing_docs)] + proxyAdminOwner(proxyAdminOwnerCall), + #[allow(missing_docs)] + receiveLiquidity(receiveLiquidityCall), + #[allow(missing_docs)] + superchainConfig(superchainConfigCall), + #[allow(missing_docs)] + systemConfig(systemConfigCall), + #[allow(missing_docs)] + unlockETH(unlockETHCall), + #[allow(missing_docs)] + version(versionCall), + } + impl ETHLockboxCalls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [15u8, 209u8, 16u8, 119u8], + [30u8, 225u8, 22u8, 191u8], + [34u8, 92u8, 225u8, 118u8], + [48u8, 249u8, 118u8, 93u8], + [51u8, 215u8, 226u8, 189u8], + [53u8, 232u8, 10u8, 179u8], + [56u8, 211u8, 140u8, 151u8], + [62u8, 71u8, 21u8, 140u8], + [67u8, 138u8, 181u8, 172u8], + [84u8, 253u8, 77u8, 80u8], + [92u8, 151u8, 90u8, 187u8], + [94u8, 193u8, 93u8, 137u8], + [141u8, 68u8, 91u8, 208u8], + [148u8, 109u8, 146u8, 4u8], + [178u8, 219u8, 130u8, 245u8], + [218u8, 213u8, 68u8, 224u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(authorizedPortals), + ::core::stringify!(lockETH), + ::core::stringify!(authorizedLockboxes), + ::core::stringify!(receiveLiquidity), + ::core::stringify!(systemConfig), + ::core::stringify!(superchainConfig), + ::core::stringify!(initVersion), + ::core::stringify!(proxyAdmin), + ::core::stringify!(migrateLiquidity), + ::core::stringify!(version), + ::core::stringify!(paused), + ::core::stringify!(authorizeLockbox), + ::core::stringify!(unlockETH), + ::core::stringify!(initialize), + ::core::stringify!(authorizePortal), + ::core::stringify!(proxyAdminOwner), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for ETHLockboxCalls { + const NAME: &'static str = "ETHLockboxCalls"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 16usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::authorizeLockbox(_) => { + ::SELECTOR + } + Self::authorizePortal(_) => { + ::SELECTOR + } + Self::authorizedLockboxes(_) => { + ::SELECTOR + } + Self::authorizedPortals(_) => { + ::SELECTOR + } + Self::initVersion(_) => { + ::SELECTOR + } + Self::initialize(_) => { + ::SELECTOR + } + Self::lockETH(_) => ::SELECTOR, + Self::migrateLiquidity(_) => { + ::SELECTOR + } + Self::paused(_) => ::SELECTOR, + Self::proxyAdmin(_) => { + ::SELECTOR + } + Self::proxyAdminOwner(_) => { + ::SELECTOR + } + Self::receiveLiquidity(_) => { + ::SELECTOR + } + Self::superchainConfig(_) => { + ::SELECTOR + } + Self::systemConfig(_) => { + ::SELECTOR + } + Self::unlockETH(_) => { + ::SELECTOR + } + Self::version(_) => ::SELECTOR, + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn authorizedPortals( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(ETHLockboxCalls::authorizedPortals) + } + authorizedPortals + }, + { + fn lockETH(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(ETHLockboxCalls::lockETH) + } + lockETH + }, + { + fn authorizedLockboxes( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(ETHLockboxCalls::authorizedLockboxes) + } + authorizedLockboxes + }, + { + fn receiveLiquidity( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(ETHLockboxCalls::receiveLiquidity) + } + receiveLiquidity + }, + { + fn systemConfig( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(ETHLockboxCalls::systemConfig) + } + systemConfig + }, + { + fn superchainConfig( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(ETHLockboxCalls::superchainConfig) + } + superchainConfig + }, + { + fn initVersion( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(ETHLockboxCalls::initVersion) + } + initVersion + }, + { + fn proxyAdmin( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(ETHLockboxCalls::proxyAdmin) + } + proxyAdmin + }, + { + fn migrateLiquidity( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(ETHLockboxCalls::migrateLiquidity) + } + migrateLiquidity + }, + { + fn version(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(ETHLockboxCalls::version) + } + version + }, + { + fn paused(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(ETHLockboxCalls::paused) + } + paused + }, + { + fn authorizeLockbox( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(ETHLockboxCalls::authorizeLockbox) + } + authorizeLockbox + }, + { + fn unlockETH( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(ETHLockboxCalls::unlockETH) + } + unlockETH + }, + { + fn initialize( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(ETHLockboxCalls::initialize) + } + initialize + }, + { + fn authorizePortal( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(ETHLockboxCalls::authorizePortal) + } + authorizePortal + }, + { + fn proxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(ETHLockboxCalls::proxyAdminOwner) + } + proxyAdminOwner + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn authorizedPortals( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(ETHLockboxCalls::authorizedPortals) + } + authorizedPortals + }, + { + fn lockETH(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(ETHLockboxCalls::lockETH) + } + lockETH + }, + { + fn authorizedLockboxes( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(ETHLockboxCalls::authorizedLockboxes) + } + authorizedLockboxes + }, + { + fn receiveLiquidity( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(ETHLockboxCalls::receiveLiquidity) + } + receiveLiquidity + }, + { + fn systemConfig( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(ETHLockboxCalls::systemConfig) + } + systemConfig + }, + { + fn superchainConfig( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(ETHLockboxCalls::superchainConfig) + } + superchainConfig + }, + { + fn initVersion( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(ETHLockboxCalls::initVersion) + } + initVersion + }, + { + fn proxyAdmin( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(ETHLockboxCalls::proxyAdmin) + } + proxyAdmin + }, + { + fn migrateLiquidity( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(ETHLockboxCalls::migrateLiquidity) + } + migrateLiquidity + }, + { + fn version(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(ETHLockboxCalls::version) + } + version + }, + { + fn paused(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(ETHLockboxCalls::paused) + } + paused + }, + { + fn authorizeLockbox( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(ETHLockboxCalls::authorizeLockbox) + } + authorizeLockbox + }, + { + fn unlockETH( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(ETHLockboxCalls::unlockETH) + } + unlockETH + }, + { + fn initialize( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(ETHLockboxCalls::initialize) + } + initialize + }, + { + fn authorizePortal( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(ETHLockboxCalls::authorizePortal) + } + authorizePortal + }, + { + fn proxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(ETHLockboxCalls::proxyAdminOwner) + } + proxyAdminOwner + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::authorizeLockbox(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::authorizePortal(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::authorizedLockboxes(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::authorizedPortals(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::initVersion(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::initialize(inner) => { + ::abi_encoded_size(inner) + } + Self::lockETH(inner) => { + ::abi_encoded_size(inner) + } + Self::migrateLiquidity(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::paused(inner) => { + ::abi_encoded_size(inner) + } + Self::proxyAdmin(inner) => { + ::abi_encoded_size(inner) + } + Self::proxyAdminOwner(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::receiveLiquidity(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::superchainConfig(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::systemConfig(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::unlockETH(inner) => { + ::abi_encoded_size(inner) + } + Self::version(inner) => { + ::abi_encoded_size(inner) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::authorizeLockbox(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::authorizePortal(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::authorizedLockboxes(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::authorizedPortals(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::initVersion(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::initialize(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::lockETH(inner) => { + ::abi_encode_raw(inner, out) + } + Self::migrateLiquidity(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::paused(inner) => { + ::abi_encode_raw(inner, out) + } + Self::proxyAdmin(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::proxyAdminOwner(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::receiveLiquidity(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::superchainConfig(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::systemConfig(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::unlockETH(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::version(inner) => { + ::abi_encode_raw(inner, out) + } + } + } + } + ///Container for all the [`ETHLockbox`](self) custom errors. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum ETHLockboxErrors { + #[allow(missing_docs)] + ETHLockbox_DifferentSuperchainConfig(ETHLockbox_DifferentSuperchainConfig), + #[allow(missing_docs)] + ETHLockbox_InsufficientBalance(ETHLockbox_InsufficientBalance), + #[allow(missing_docs)] + ETHLockbox_NoWithdrawalTransactions(ETHLockbox_NoWithdrawalTransactions), + #[allow(missing_docs)] + ETHLockbox_Paused(ETHLockbox_Paused), + #[allow(missing_docs)] + ETHLockbox_Unauthorized(ETHLockbox_Unauthorized), + #[allow(missing_docs)] + ProxyAdminOwnedBase_NotProxyAdmin(ProxyAdminOwnedBase_NotProxyAdmin), + #[allow(missing_docs)] + ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner( + ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner, + ), + #[allow(missing_docs)] + ProxyAdminOwnedBase_NotProxyAdminOwner(ProxyAdminOwnedBase_NotProxyAdminOwner), + #[allow(missing_docs)] + ProxyAdminOwnedBase_NotResolvedDelegateProxy( + ProxyAdminOwnedBase_NotResolvedDelegateProxy, + ), + #[allow(missing_docs)] + ProxyAdminOwnedBase_NotSharedProxyAdminOwner( + ProxyAdminOwnedBase_NotSharedProxyAdminOwner, + ), + #[allow(missing_docs)] + ProxyAdminOwnedBase_ProxyAdminNotFound(ProxyAdminOwnedBase_ProxyAdminNotFound), + #[allow(missing_docs)] + ReinitializableBase_ZeroInitVersion(ReinitializableBase_ZeroInitVersion), + } + impl ETHLockboxErrors { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [7u8, 92u8, 67u8, 20u8], + [51u8, 33u8, 68u8, 219u8], + [84u8, 228u8, 51u8, 205u8], + [102u8, 90u8, 29u8, 28u8], + [127u8, 18u8, 198u8, 75u8], + [132u8, 171u8, 85u8, 21u8], + [155u8, 1u8, 175u8, 237u8], + [158u8, 114u8, 153u8, 66u8], + [196u8, 5u8, 10u8, 38u8], + [214u8, 203u8, 213u8, 249u8], + [225u8, 186u8, 146u8, 39u8], + [232u8, 24u8, 220u8, 195u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(ProxyAdminOwnedBase_NotSharedProxyAdminOwner), + ::core::stringify!(ProxyAdminOwnedBase_ProxyAdminNotFound), + ::core::stringify!(ProxyAdminOwnedBase_NotResolvedDelegateProxy), + ::core::stringify!(ETHLockbox_Unauthorized), + ::core::stringify!(ProxyAdminOwnedBase_NotProxyAdminOwner), + ::core::stringify!(ETHLockbox_DifferentSuperchainConfig), + ::core::stringify!(ReinitializableBase_ZeroInitVersion), + ::core::stringify!(ETHLockbox_Paused), + ::core::stringify!(ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner), + ::core::stringify!(ETHLockbox_NoWithdrawalTransactions), + ::core::stringify!(ETHLockbox_InsufficientBalance), + ::core::stringify!(ProxyAdminOwnedBase_NotProxyAdmin), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for ETHLockboxErrors { + const NAME: &'static str = "ETHLockboxErrors"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 12usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::ETHLockbox_DifferentSuperchainConfig(_) => { + ::SELECTOR + } + Self::ETHLockbox_InsufficientBalance(_) => { + ::SELECTOR + } + Self::ETHLockbox_NoWithdrawalTransactions(_) => { + ::SELECTOR + } + Self::ETHLockbox_Paused(_) => { + ::SELECTOR + } + Self::ETHLockbox_Unauthorized(_) => { + ::SELECTOR + } + Self::ProxyAdminOwnedBase_NotProxyAdmin(_) => { + ::SELECTOR + } + Self::ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner(_) => { + ::SELECTOR + } + Self::ProxyAdminOwnedBase_NotProxyAdminOwner(_) => { + ::SELECTOR + } + Self::ProxyAdminOwnedBase_NotResolvedDelegateProxy(_) => { + ::SELECTOR + } + Self::ProxyAdminOwnedBase_NotSharedProxyAdminOwner(_) => { + ::SELECTOR + } + Self::ProxyAdminOwnedBase_ProxyAdminNotFound(_) => { + ::SELECTOR + } + Self::ReinitializableBase_ZeroInitVersion(_) => { + ::SELECTOR + } + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn ProxyAdminOwnedBase_NotSharedProxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + ETHLockboxErrors::ProxyAdminOwnedBase_NotSharedProxyAdminOwner, + ) + } + ProxyAdminOwnedBase_NotSharedProxyAdminOwner + }, + { + fn ProxyAdminOwnedBase_ProxyAdminNotFound( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + ETHLockboxErrors::ProxyAdminOwnedBase_ProxyAdminNotFound, + ) + } + ProxyAdminOwnedBase_ProxyAdminNotFound + }, + { + fn ProxyAdminOwnedBase_NotResolvedDelegateProxy( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + ETHLockboxErrors::ProxyAdminOwnedBase_NotResolvedDelegateProxy, + ) + } + ProxyAdminOwnedBase_NotResolvedDelegateProxy + }, + { + fn ETHLockbox_Unauthorized( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(ETHLockboxErrors::ETHLockbox_Unauthorized) + } + ETHLockbox_Unauthorized + }, + { + fn ProxyAdminOwnedBase_NotProxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + ETHLockboxErrors::ProxyAdminOwnedBase_NotProxyAdminOwner, + ) + } + ProxyAdminOwnedBase_NotProxyAdminOwner + }, + { + fn ETHLockbox_DifferentSuperchainConfig( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(ETHLockboxErrors::ETHLockbox_DifferentSuperchainConfig) + } + ETHLockbox_DifferentSuperchainConfig + }, + { + fn ReinitializableBase_ZeroInitVersion( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(ETHLockboxErrors::ReinitializableBase_ZeroInitVersion) + } + ReinitializableBase_ZeroInitVersion + }, + { + fn ETHLockbox_Paused( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(ETHLockboxErrors::ETHLockbox_Paused) + } + ETHLockbox_Paused + }, + { + fn ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + ETHLockboxErrors::ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner, + ) + } + ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner + }, + { + fn ETHLockbox_NoWithdrawalTransactions( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(ETHLockboxErrors::ETHLockbox_NoWithdrawalTransactions) + } + ETHLockbox_NoWithdrawalTransactions + }, + { + fn ETHLockbox_InsufficientBalance( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(ETHLockboxErrors::ETHLockbox_InsufficientBalance) + } + ETHLockbox_InsufficientBalance + }, + { + fn ProxyAdminOwnedBase_NotProxyAdmin( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(ETHLockboxErrors::ProxyAdminOwnedBase_NotProxyAdmin) + } + ProxyAdminOwnedBase_NotProxyAdmin + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn ProxyAdminOwnedBase_NotSharedProxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + ETHLockboxErrors::ProxyAdminOwnedBase_NotSharedProxyAdminOwner, + ) + } + ProxyAdminOwnedBase_NotSharedProxyAdminOwner + }, + { + fn ProxyAdminOwnedBase_ProxyAdminNotFound( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + ETHLockboxErrors::ProxyAdminOwnedBase_ProxyAdminNotFound, + ) + } + ProxyAdminOwnedBase_ProxyAdminNotFound + }, + { + fn ProxyAdminOwnedBase_NotResolvedDelegateProxy( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + ETHLockboxErrors::ProxyAdminOwnedBase_NotResolvedDelegateProxy, + ) + } + ProxyAdminOwnedBase_NotResolvedDelegateProxy + }, + { + fn ETHLockbox_Unauthorized( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(ETHLockboxErrors::ETHLockbox_Unauthorized) + } + ETHLockbox_Unauthorized + }, + { + fn ProxyAdminOwnedBase_NotProxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + ETHLockboxErrors::ProxyAdminOwnedBase_NotProxyAdminOwner, + ) + } + ProxyAdminOwnedBase_NotProxyAdminOwner + }, + { + fn ETHLockbox_DifferentSuperchainConfig( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(ETHLockboxErrors::ETHLockbox_DifferentSuperchainConfig) + } + ETHLockbox_DifferentSuperchainConfig + }, + { + fn ReinitializableBase_ZeroInitVersion( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(ETHLockboxErrors::ReinitializableBase_ZeroInitVersion) + } + ReinitializableBase_ZeroInitVersion + }, + { + fn ETHLockbox_Paused( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(ETHLockboxErrors::ETHLockbox_Paused) + } + ETHLockbox_Paused + }, + { + fn ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + ETHLockboxErrors::ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner, + ) + } + ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner + }, + { + fn ETHLockbox_NoWithdrawalTransactions( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(ETHLockboxErrors::ETHLockbox_NoWithdrawalTransactions) + } + ETHLockbox_NoWithdrawalTransactions + }, + { + fn ETHLockbox_InsufficientBalance( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(ETHLockboxErrors::ETHLockbox_InsufficientBalance) + } + ETHLockbox_InsufficientBalance + }, + { + fn ProxyAdminOwnedBase_NotProxyAdmin( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(ETHLockboxErrors::ProxyAdminOwnedBase_NotProxyAdmin) + } + ProxyAdminOwnedBase_NotProxyAdmin + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::ETHLockbox_DifferentSuperchainConfig(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ETHLockbox_InsufficientBalance(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ETHLockbox_NoWithdrawalTransactions(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ETHLockbox_Paused(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ETHLockbox_Unauthorized(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ProxyAdminOwnedBase_NotProxyAdmin(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ProxyAdminOwnedBase_NotProxyAdminOwner(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ProxyAdminOwnedBase_NotResolvedDelegateProxy(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ProxyAdminOwnedBase_NotSharedProxyAdminOwner(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ProxyAdminOwnedBase_ProxyAdminNotFound(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ReinitializableBase_ZeroInitVersion(inner) => { + ::abi_encoded_size( + inner, + ) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::ETHLockbox_DifferentSuperchainConfig(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ETHLockbox_InsufficientBalance(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ETHLockbox_NoWithdrawalTransactions(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ETHLockbox_Paused(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ETHLockbox_Unauthorized(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ProxyAdminOwnedBase_NotProxyAdmin(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ProxyAdminOwnedBase_NotProxyAdminOwner(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ProxyAdminOwnedBase_NotResolvedDelegateProxy(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ProxyAdminOwnedBase_NotSharedProxyAdminOwner(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ProxyAdminOwnedBase_ProxyAdminNotFound(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ReinitializableBase_ZeroInitVersion(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + } + } + } + ///Container for all the [`ETHLockbox`](self) events. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum ETHLockboxEvents { + #[allow(missing_docs)] + ETHLocked(ETHLocked), + #[allow(missing_docs)] + ETHUnlocked(ETHUnlocked), + #[allow(missing_docs)] + Initialized(Initialized), + #[allow(missing_docs)] + LiquidityMigrated(LiquidityMigrated), + #[allow(missing_docs)] + LiquidityReceived(LiquidityReceived), + #[allow(missing_docs)] + LockboxAuthorized(LockboxAuthorized), + #[allow(missing_docs)] + PortalAuthorized(PortalAuthorized), + } + impl ETHLockboxEvents { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 32usize]] = &[ + [ + 93u8, 38u8, 130u8, 231u8, 0u8, 162u8, 20u8, 108u8, 142u8, 35u8, 129u8, + 224u8, 180u8, 7u8, 0u8, 53u8, 118u8, 165u8, 78u8, 150u8, 221u8, 8u8, + 244u8, 15u8, 62u8, 160u8, 210u8, 184u8, 112u8, 109u8, 177u8, 6u8, + ], + [ + 127u8, 38u8, 184u8, 63u8, 249u8, 110u8, 31u8, 43u8, 106u8, 104u8, 47u8, + 19u8, 56u8, 82u8, 246u8, 121u8, 138u8, 9u8, 196u8, 101u8, 218u8, 149u8, + 146u8, 20u8, 96u8, 206u8, 251u8, 56u8, 71u8, 64u8, 36u8, 152u8, + ], + [ + 135u8, 235u8, 64u8, 100u8, 20u8, 15u8, 190u8, 201u8, 90u8, 141u8, 229u8, + 112u8, 224u8, 27u8, 76u8, 101u8, 12u8, 0u8, 236u8, 214u8, 119u8, 86u8, + 10u8, 249u8, 242u8, 152u8, 169u8, 117u8, 182u8, 54u8, 194u8, 45u8, + ], + [ + 144u8, 167u8, 250u8, 194u8, 229u8, 106u8, 235u8, 228u8, 136u8, 147u8, + 81u8, 251u8, 4u8, 237u8, 165u8, 239u8, 178u8, 139u8, 25u8, 222u8, 223u8, + 40u8, 139u8, 219u8, 253u8, 60u8, 253u8, 129u8, 124u8, 121u8, 99u8, 15u8, + ], + [ + 151u8, 239u8, 197u8, 25u8, 185u8, 2u8, 10u8, 20u8, 15u8, 254u8, 19u8, + 135u8, 142u8, 3u8, 211u8, 64u8, 185u8, 118u8, 103u8, 96u8, 144u8, 188u8, + 127u8, 227u8, 227u8, 49u8, 145u8, 25u8, 45u8, 247u8, 199u8, 44u8, + ], + [ + 181u8, 130u8, 120u8, 237u8, 86u8, 170u8, 121u8, 173u8, 46u8, 36u8, 57u8, + 99u8, 180u8, 75u8, 22u8, 90u8, 143u8, 118u8, 214u8, 41u8, 246u8, 28u8, + 1u8, 221u8, 54u8, 73u8, 214u8, 88u8, 224u8, 234u8, 204u8, 164u8, + ], + [ + 233u8, 81u8, 45u8, 73u8, 68u8, 139u8, 88u8, 15u8, 61u8, 41u8, 3u8, 30u8, + 146u8, 67u8, 238u8, 129u8, 188u8, 135u8, 137u8, 169u8, 61u8, 111u8, 4u8, + 236u8, 143u8, 3u8, 182u8, 148u8, 214u8, 35u8, 99u8, 123u8, + ], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(LockboxAuthorized), + ::core::stringify!(Initialized), + ::core::stringify!(LiquidityMigrated), + ::core::stringify!(PortalAuthorized), + ::core::stringify!(ETHLocked), + ::core::stringify!(LiquidityReceived), + ::core::stringify!(ETHUnlocked), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolEventInterface for ETHLockboxEvents { + const NAME: &'static str = "ETHLockboxEvents"; + const COUNT: usize = 7usize; + fn decode_raw_log( + topics: &[alloy_sol_types::Word], + data: &[u8], + ) -> alloy_sol_types::Result { + match topics.first().copied() { + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::ETHLocked) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::ETHUnlocked) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::Initialized) + } + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::LiquidityMigrated) + } + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::LiquidityReceived) + } + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::LockboxAuthorized) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::PortalAuthorized) + } + _ => { + alloy_sol_types::private::Err(alloy_sol_types::Error::InvalidLog { + name: ::NAME, + log: alloy_sol_types::private::Box::new( + alloy_sol_types::private::LogData::new_unchecked( + topics.to_vec(), + data.to_vec().into(), + ), + ), + }) + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for ETHLockboxEvents { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + match self { + Self::ETHLocked(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::ETHUnlocked(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::Initialized(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::LiquidityMigrated(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::LiquidityReceived(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::LockboxAuthorized(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::PortalAuthorized(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + } + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + match self { + Self::ETHLocked(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::ETHUnlocked(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::Initialized(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::LiquidityMigrated(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::LiquidityReceived(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::LockboxAuthorized(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::PortalAuthorized(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`ETHLockbox`](self) contract instance. + +See the [wrapper's documentation](`ETHLockboxInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> ETHLockboxInstance { + ETHLockboxInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + ETHLockboxInstance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + ETHLockboxInstance::::deploy_builder(__provider) + } + /**A [`ETHLockbox`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`ETHLockbox`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct ETHLockboxInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for ETHLockboxInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("ETHLockboxInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > ETHLockboxInstance { + /**Creates a new wrapper around an on-chain [`ETHLockbox`](self) contract instance. + +See the [wrapper's documentation](`ETHLockboxInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl ETHLockboxInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> ETHLockboxInstance { + ETHLockboxInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > ETHLockboxInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`authorizeLockbox`] function. + pub fn authorizeLockbox( + &self, + _lockbox: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, authorizeLockboxCall, N> { + self.call_builder(&authorizeLockboxCall { _lockbox }) + } + ///Creates a new call builder for the [`authorizePortal`] function. + pub fn authorizePortal( + &self, + _portal: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, authorizePortalCall, N> { + self.call_builder(&authorizePortalCall { _portal }) + } + ///Creates a new call builder for the [`authorizedLockboxes`] function. + pub fn authorizedLockboxes( + &self, + _0: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, authorizedLockboxesCall, N> { + self.call_builder(&authorizedLockboxesCall(_0)) + } + ///Creates a new call builder for the [`authorizedPortals`] function. + pub fn authorizedPortals( + &self, + _0: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, authorizedPortalsCall, N> { + self.call_builder(&authorizedPortalsCall(_0)) + } + ///Creates a new call builder for the [`initVersion`] function. + pub fn initVersion( + &self, + ) -> alloy_contract::SolCallBuilder<&P, initVersionCall, N> { + self.call_builder(&initVersionCall) + } + ///Creates a new call builder for the [`initialize`] function. + pub fn initialize( + &self, + _systemConfig: alloy::sol_types::private::Address, + _portals: alloy::sol_types::private::Vec, + ) -> alloy_contract::SolCallBuilder<&P, initializeCall, N> { + self.call_builder( + &initializeCall { + _systemConfig, + _portals, + }, + ) + } + ///Creates a new call builder for the [`lockETH`] function. + pub fn lockETH(&self) -> alloy_contract::SolCallBuilder<&P, lockETHCall, N> { + self.call_builder(&lockETHCall) + } + ///Creates a new call builder for the [`migrateLiquidity`] function. + pub fn migrateLiquidity( + &self, + _lockbox: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, migrateLiquidityCall, N> { + self.call_builder(&migrateLiquidityCall { _lockbox }) + } + ///Creates a new call builder for the [`paused`] function. + pub fn paused(&self) -> alloy_contract::SolCallBuilder<&P, pausedCall, N> { + self.call_builder(&pausedCall) + } + ///Creates a new call builder for the [`proxyAdmin`] function. + pub fn proxyAdmin( + &self, + ) -> alloy_contract::SolCallBuilder<&P, proxyAdminCall, N> { + self.call_builder(&proxyAdminCall) + } + ///Creates a new call builder for the [`proxyAdminOwner`] function. + pub fn proxyAdminOwner( + &self, + ) -> alloy_contract::SolCallBuilder<&P, proxyAdminOwnerCall, N> { + self.call_builder(&proxyAdminOwnerCall) + } + ///Creates a new call builder for the [`receiveLiquidity`] function. + pub fn receiveLiquidity( + &self, + ) -> alloy_contract::SolCallBuilder<&P, receiveLiquidityCall, N> { + self.call_builder(&receiveLiquidityCall) + } + ///Creates a new call builder for the [`superchainConfig`] function. + pub fn superchainConfig( + &self, + ) -> alloy_contract::SolCallBuilder<&P, superchainConfigCall, N> { + self.call_builder(&superchainConfigCall) + } + ///Creates a new call builder for the [`systemConfig`] function. + pub fn systemConfig( + &self, + ) -> alloy_contract::SolCallBuilder<&P, systemConfigCall, N> { + self.call_builder(&systemConfigCall) + } + ///Creates a new call builder for the [`unlockETH`] function. + pub fn unlockETH( + &self, + _value: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, unlockETHCall, N> { + self.call_builder(&unlockETHCall { _value }) + } + ///Creates a new call builder for the [`version`] function. + pub fn version(&self) -> alloy_contract::SolCallBuilder<&P, versionCall, N> { + self.call_builder(&versionCall) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > ETHLockboxInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + ///Creates a new event filter for the [`ETHLocked`] event. + pub fn ETHLocked_filter(&self) -> alloy_contract::Event<&P, ETHLocked, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`ETHUnlocked`] event. + pub fn ETHUnlocked_filter(&self) -> alloy_contract::Event<&P, ETHUnlocked, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`Initialized`] event. + pub fn Initialized_filter(&self) -> alloy_contract::Event<&P, Initialized, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`LiquidityMigrated`] event. + pub fn LiquidityMigrated_filter( + &self, + ) -> alloy_contract::Event<&P, LiquidityMigrated, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`LiquidityReceived`] event. + pub fn LiquidityReceived_filter( + &self, + ) -> alloy_contract::Event<&P, LiquidityReceived, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`LockboxAuthorized`] event. + pub fn LockboxAuthorized_filter( + &self, + ) -> alloy_contract::Event<&P, LockboxAuthorized, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`PortalAuthorized`] event. + pub fn PortalAuthorized_filter( + &self, + ) -> alloy_contract::Event<&P, PortalAuthorized, N> { + self.event_filter::() + } + } +} diff --git a/bindings/rust/src/event_logger.rs b/bindings/rust/src/event_logger.rs new file mode 100644 index 000000000..d8a9d7143 --- /dev/null +++ b/bindings/rust/src/event_logger.rs @@ -0,0 +1,1127 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface EventLogger { + struct Identifier { + address origin; + uint256 blockNumber; + uint256 logIndex; + uint256 timestamp; + uint256 chainId; + } + + function emitLog(bytes32[] memory _topics, bytes memory _data) external; + function validateMessage(Identifier memory _id, bytes32 _msgHash) external; +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "function", + "name": "emitLog", + "inputs": [ + { + "name": "_topics", + "type": "bytes32[]", + "internalType": "bytes32[]" + }, + { + "name": "_data", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "validateMessage", + "inputs": [ + { + "name": "_id", + "type": "tuple", + "internalType": "struct Identifier", + "components": [ + { + "name": "origin", + "type": "address", + "internalType": "address" + }, + { + "name": "blockNumber", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "logIndex", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "timestamp", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "chainId", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { + "name": "_msgHash", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod EventLogger { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x6080604052348015600e575f80fd5b506102b68061001c5f395ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c8063ab4d6f7514610038578063edebc13b1461004d575b5f80fd5b61004b610046366004610164565b610060565b005b61004b61005b366004610192565b6100e3565b6040517fab4d6f750000000000000000000000000000000000000000000000000000000081527342000000000000000000000000000000000000229063ab4d6f75906100b2908590859060040161024c565b5f604051808303815f87803b1580156100c9575f80fd5b505af11580156100db573d5f803e3d5ffd5b505050505050565b80604051818482378486356020880135604089013560608a0135848015610128576001811461013057600281146101395760038114610143576004811461014e575f80fd5b8787a0610156565b848888a1610156565b83858989a2610156565b8284868a8aa3610156565b818385878b8ba45b505050505050505050505050565b5f8082840360c0811215610176575f80fd5b60a0811215610183575f80fd5b50919360a08501359350915050565b5f805f80604085870312156101a5575f80fd5b843567ffffffffffffffff808211156101bc575f80fd5b818701915087601f8301126101cf575f80fd5b8135818111156101dd575f80fd5b8860208260051b85010111156101f1575f80fd5b60209283019650945090860135908082111561020b575f80fd5b818701915087601f83011261021e575f80fd5b81358181111561022c575f80fd5b88602082850101111561023d575f80fd5b95989497505060200194505050565b60c08101833573ffffffffffffffffffffffffffffffffffffffff8116808214610274575f80fd5b8352506020848101359083015260408085013590830152606080850135908301526080938401359382019390935260a001529056fea164736f6c6343000819000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R4\x80\x15`\x0EW_\x80\xFD[Pa\x02\xB6\x80a\0\x1C_9_\xF3\xFE`\x80`@R4\x80\x15a\0\x0FW_\x80\xFD[P`\x046\x10a\x004W_5`\xE0\x1C\x80c\xABMou\x14a\08W\x80c\xED\xEB\xC1;\x14a\0MW[_\x80\xFD[a\0Ka\0F6`\x04a\x01dV[a\0`V[\0[a\0Ka\0[6`\x04a\x01\x92V[a\0\xE3V[`@Q\x7F\xABMou\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\x81RsB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\"\x90c\xABMou\x90a\0\xB2\x90\x85\x90\x85\x90`\x04\x01a\x02LV[_`@Q\x80\x83\x03\x81_\x87\x80;\x15\x80\x15a\0\xC9W_\x80\xFD[PZ\xF1\x15\x80\x15a\0\xDBW=_\x80>=_\xFD[PPPPPPV[\x80`@Q\x81\x84\x827\x84\x865` \x88\x015`@\x89\x015``\x8A\x015\x84\x80\x15a\x01(W`\x01\x81\x14a\x010W`\x02\x81\x14a\x019W`\x03\x81\x14a\x01CW`\x04\x81\x14a\x01NW_\x80\xFD[\x87\x87\xA0a\x01VV[\x84\x88\x88\xA1a\x01VV[\x83\x85\x89\x89\xA2a\x01VV[\x82\x84\x86\x8A\x8A\xA3a\x01VV[\x81\x83\x85\x87\x8B\x8B\xA4[PPPPPPPPPPPPV[_\x80\x82\x84\x03`\xC0\x81\x12\x15a\x01vW_\x80\xFD[`\xA0\x81\x12\x15a\x01\x83W_\x80\xFD[P\x91\x93`\xA0\x85\x015\x93P\x91PPV[_\x80_\x80`@\x85\x87\x03\x12\x15a\x01\xA5W_\x80\xFD[\x845g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x01\xBCW_\x80\xFD[\x81\x87\x01\x91P\x87`\x1F\x83\x01\x12a\x01\xCFW_\x80\xFD[\x815\x81\x81\x11\x15a\x01\xDDW_\x80\xFD[\x88` \x82`\x05\x1B\x85\x01\x01\x11\x15a\x01\xF1W_\x80\xFD[` \x92\x83\x01\x96P\x94P\x90\x86\x015\x90\x80\x82\x11\x15a\x02\x0BW_\x80\xFD[\x81\x87\x01\x91P\x87`\x1F\x83\x01\x12a\x02\x1EW_\x80\xFD[\x815\x81\x81\x11\x15a\x02,W_\x80\xFD[\x88` \x82\x85\x01\x01\x11\x15a\x02=W_\x80\xFD[\x95\x98\x94\x97PP` \x01\x94PPPV[`\xC0\x81\x01\x835s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x80\x82\x14a\x02tW_\x80\xFD[\x83RP` \x84\x81\x015\x90\x83\x01R`@\x80\x85\x015\x90\x83\x01R``\x80\x85\x015\x90\x83\x01R`\x80\x93\x84\x015\x93\x82\x01\x93\x90\x93R`\xA0\x01R\x90V\xFE\xA1dsolcC\0\x08\x19\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x608060405234801561000f575f80fd5b5060043610610034575f3560e01c8063ab4d6f7514610038578063edebc13b1461004d575b5f80fd5b61004b610046366004610164565b610060565b005b61004b61005b366004610192565b6100e3565b6040517fab4d6f750000000000000000000000000000000000000000000000000000000081527342000000000000000000000000000000000000229063ab4d6f75906100b2908590859060040161024c565b5f604051808303815f87803b1580156100c9575f80fd5b505af11580156100db573d5f803e3d5ffd5b505050505050565b80604051818482378486356020880135604089013560608a0135848015610128576001811461013057600281146101395760038114610143576004811461014e575f80fd5b8787a0610156565b848888a1610156565b83858989a2610156565b8284868a8aa3610156565b818385878b8ba45b505050505050505050505050565b5f8082840360c0811215610176575f80fd5b60a0811215610183575f80fd5b50919360a08501359350915050565b5f805f80604085870312156101a5575f80fd5b843567ffffffffffffffff808211156101bc575f80fd5b818701915087601f8301126101cf575f80fd5b8135818111156101dd575f80fd5b8860208260051b85010111156101f1575f80fd5b60209283019650945090860135908082111561020b575f80fd5b818701915087601f83011261021e575f80fd5b81358181111561022c575f80fd5b88602082850101111561023d575f80fd5b95989497505060200194505050565b60c08101833573ffffffffffffffffffffffffffffffffffffffff8116808214610274575f80fd5b8352506020848101359083015260408085013590830152606080850135908301526080938401359382019390935260a001529056fea164736f6c6343000819000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R4\x80\x15a\0\x0FW_\x80\xFD[P`\x046\x10a\x004W_5`\xE0\x1C\x80c\xABMou\x14a\08W\x80c\xED\xEB\xC1;\x14a\0MW[_\x80\xFD[a\0Ka\0F6`\x04a\x01dV[a\0`V[\0[a\0Ka\0[6`\x04a\x01\x92V[a\0\xE3V[`@Q\x7F\xABMou\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\x81RsB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\"\x90c\xABMou\x90a\0\xB2\x90\x85\x90\x85\x90`\x04\x01a\x02LV[_`@Q\x80\x83\x03\x81_\x87\x80;\x15\x80\x15a\0\xC9W_\x80\xFD[PZ\xF1\x15\x80\x15a\0\xDBW=_\x80>=_\xFD[PPPPPPV[\x80`@Q\x81\x84\x827\x84\x865` \x88\x015`@\x89\x015``\x8A\x015\x84\x80\x15a\x01(W`\x01\x81\x14a\x010W`\x02\x81\x14a\x019W`\x03\x81\x14a\x01CW`\x04\x81\x14a\x01NW_\x80\xFD[\x87\x87\xA0a\x01VV[\x84\x88\x88\xA1a\x01VV[\x83\x85\x89\x89\xA2a\x01VV[\x82\x84\x86\x8A\x8A\xA3a\x01VV[\x81\x83\x85\x87\x8B\x8B\xA4[PPPPPPPPPPPPV[_\x80\x82\x84\x03`\xC0\x81\x12\x15a\x01vW_\x80\xFD[`\xA0\x81\x12\x15a\x01\x83W_\x80\xFD[P\x91\x93`\xA0\x85\x015\x93P\x91PPV[_\x80_\x80`@\x85\x87\x03\x12\x15a\x01\xA5W_\x80\xFD[\x845g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x01\xBCW_\x80\xFD[\x81\x87\x01\x91P\x87`\x1F\x83\x01\x12a\x01\xCFW_\x80\xFD[\x815\x81\x81\x11\x15a\x01\xDDW_\x80\xFD[\x88` \x82`\x05\x1B\x85\x01\x01\x11\x15a\x01\xF1W_\x80\xFD[` \x92\x83\x01\x96P\x94P\x90\x86\x015\x90\x80\x82\x11\x15a\x02\x0BW_\x80\xFD[\x81\x87\x01\x91P\x87`\x1F\x83\x01\x12a\x02\x1EW_\x80\xFD[\x815\x81\x81\x11\x15a\x02,W_\x80\xFD[\x88` \x82\x85\x01\x01\x11\x15a\x02=W_\x80\xFD[\x95\x98\x94\x97PP` \x01\x94PPPV[`\xC0\x81\x01\x835s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x80\x82\x14a\x02tW_\x80\xFD[\x83RP` \x84\x81\x015\x90\x83\x01R`@\x80\x85\x015\x90\x83\x01R``\x80\x85\x015\x90\x83\x01R`\x80\x93\x84\x015\x93\x82\x01\x93\x90\x93R`\xA0\x01R\x90V\xFE\xA1dsolcC\0\x08\x19\0\n", + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**```solidity +struct Identifier { address origin; uint256 blockNumber; uint256 logIndex; uint256 timestamp; uint256 chainId; } +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct Identifier { + #[allow(missing_docs)] + pub origin: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub blockNumber: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub logIndex: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub timestamp: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub chainId: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: Identifier) -> Self { + ( + value.origin, + value.blockNumber, + value.logIndex, + value.timestamp, + value.chainId, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for Identifier { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + origin: tuple.0, + blockNumber: tuple.1, + logIndex: tuple.2, + timestamp: tuple.3, + chainId: tuple.4, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolValue for Identifier { + type SolType = Self; + } + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for Identifier { + #[inline] + fn stv_to_tokens(&self) -> ::Token<'_> { + ( + ::tokenize( + &self.origin, + ), + as alloy_sol_types::SolType>::tokenize(&self.blockNumber), + as alloy_sol_types::SolType>::tokenize(&self.logIndex), + as alloy_sol_types::SolType>::tokenize(&self.timestamp), + as alloy_sol_types::SolType>::tokenize(&self.chainId), + ) + } + #[inline] + fn stv_abi_encoded_size(&self) -> usize { + if let Some(size) = ::ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encoded_size(&tuple) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + ::eip712_hash_struct(self) + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + if let Some(size) = ::PACKED_ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for Identifier { + type RustType = Self; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = ::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + as alloy_sol_types::SolType>::valid_token(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + let tuple = as alloy_sol_types::SolType>::detokenize(token); + >>::from(tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolStruct for Identifier { + const NAME: &'static str = "Identifier"; + #[inline] + fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> { + alloy_sol_types::private::Cow::Borrowed( + "Identifier(address origin,uint256 blockNumber,uint256 logIndex,uint256 timestamp,uint256 chainId)", + ) + } + #[inline] + fn eip712_components() -> alloy_sol_types::private::Vec< + alloy_sol_types::private::Cow<'static, str>, + > { + alloy_sol_types::private::Vec::new() + } + #[inline] + fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> { + ::eip712_root_type() + } + #[inline] + fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec { + [ + ::eip712_data_word( + &self.origin, + ) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.blockNumber) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.logIndex) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.timestamp) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.chainId) + .0, + ] + .concat() + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for Identifier { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + 0usize + + ::topic_preimage_length( + &rust.origin, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.blockNumber, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.logIndex, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.timestamp, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.chainId, + ) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + out.reserve( + ::topic_preimage_length(rust), + ); + ::encode_topic_preimage( + &rust.origin, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.blockNumber, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.logIndex, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.timestamp, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.chainId, + out, + ); + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + let mut out = alloy_sol_types::private::Vec::new(); + ::encode_topic_preimage( + rust, + &mut out, + ); + alloy_sol_types::abi::token::WordToken( + alloy_sol_types::private::keccak256(out), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `emitLog(bytes32[],bytes)` and selector `0xedebc13b`. +```solidity +function emitLog(bytes32[] memory _topics, bytes memory _data) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct emitLogCall { + #[allow(missing_docs)] + pub _topics: alloy::sol_types::private::Vec< + alloy::sol_types::private::FixedBytes<32>, + >, + #[allow(missing_docs)] + pub _data: alloy::sol_types::private::Bytes, + } + ///Container type for the return parameters of the [`emitLog(bytes32[],bytes)`](emitLogCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct emitLogReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Array< + alloy::sol_types::sol_data::FixedBytes<32>, + >, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Vec< + alloy::sol_types::private::FixedBytes<32>, + >, + alloy::sol_types::private::Bytes, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: emitLogCall) -> Self { + (value._topics, value._data) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for emitLogCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _topics: tuple.0, + _data: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: emitLogReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for emitLogReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl emitLogReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for emitLogCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Array< + alloy::sol_types::sol_data::FixedBytes<32>, + >, + alloy::sol_types::sol_data::Bytes, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = emitLogReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "emitLog(bytes32[],bytes)"; + const SELECTOR: [u8; 4] = [237u8, 235u8, 193u8, 59u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + , + > as alloy_sol_types::SolType>::tokenize(&self._topics), + ::tokenize( + &self._data, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + emitLogReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `validateMessage((address,uint256,uint256,uint256,uint256),bytes32)` and selector `0xab4d6f75`. +```solidity +function validateMessage(Identifier memory _id, bytes32 _msgHash) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct validateMessageCall { + #[allow(missing_docs)] + pub _id: ::RustType, + #[allow(missing_docs)] + pub _msgHash: alloy::sol_types::private::FixedBytes<32>, + } + ///Container type for the return parameters of the [`validateMessage((address,uint256,uint256,uint256,uint256),bytes32)`](validateMessageCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct validateMessageReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + Identifier, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + alloy::sol_types::private::FixedBytes<32>, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: validateMessageCall) -> Self { + (value._id, value._msgHash) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for validateMessageCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _id: tuple.0, + _msgHash: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: validateMessageReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for validateMessageReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl validateMessageReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for validateMessageCall { + type Parameters<'a> = ( + Identifier, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = validateMessageReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "validateMessage((address,uint256,uint256,uint256,uint256),bytes32)"; + const SELECTOR: [u8; 4] = [171u8, 77u8, 111u8, 117u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize(&self._id), + as alloy_sol_types::SolType>::tokenize(&self._msgHash), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + validateMessageReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + ///Container for all the [`EventLogger`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum EventLoggerCalls { + #[allow(missing_docs)] + emitLog(emitLogCall), + #[allow(missing_docs)] + validateMessage(validateMessageCall), + } + impl EventLoggerCalls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [171u8, 77u8, 111u8, 117u8], + [237u8, 235u8, 193u8, 59u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(validateMessage), + ::core::stringify!(emitLog), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for EventLoggerCalls { + const NAME: &'static str = "EventLoggerCalls"; + const MIN_DATA_LENGTH: usize = 128usize; + const COUNT: usize = 2usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::emitLog(_) => ::SELECTOR, + Self::validateMessage(_) => { + ::SELECTOR + } + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn validateMessage( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(EventLoggerCalls::validateMessage) + } + validateMessage + }, + { + fn emitLog( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(EventLoggerCalls::emitLog) + } + emitLog + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn validateMessage( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(EventLoggerCalls::validateMessage) + } + validateMessage + }, + { + fn emitLog( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(EventLoggerCalls::emitLog) + } + emitLog + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::emitLog(inner) => { + ::abi_encoded_size(inner) + } + Self::validateMessage(inner) => { + ::abi_encoded_size( + inner, + ) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::emitLog(inner) => { + ::abi_encode_raw(inner, out) + } + Self::validateMessage(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`EventLogger`](self) contract instance. + +See the [wrapper's documentation](`EventLoggerInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> EventLoggerInstance { + EventLoggerInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + EventLoggerInstance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + EventLoggerInstance::::deploy_builder(__provider) + } + /**A [`EventLogger`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`EventLogger`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct EventLoggerInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for EventLoggerInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("EventLoggerInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > EventLoggerInstance { + /**Creates a new wrapper around an on-chain [`EventLogger`](self) contract instance. + +See the [wrapper's documentation](`EventLoggerInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl EventLoggerInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> EventLoggerInstance { + EventLoggerInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > EventLoggerInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`emitLog`] function. + pub fn emitLog( + &self, + _topics: alloy::sol_types::private::Vec< + alloy::sol_types::private::FixedBytes<32>, + >, + _data: alloy::sol_types::private::Bytes, + ) -> alloy_contract::SolCallBuilder<&P, emitLogCall, N> { + self.call_builder(&emitLogCall { _topics, _data }) + } + ///Creates a new call builder for the [`validateMessage`] function. + pub fn validateMessage( + &self, + _id: ::RustType, + _msgHash: alloy::sol_types::private::FixedBytes<32>, + ) -> alloy_contract::SolCallBuilder<&P, validateMessageCall, N> { + self.call_builder( + &validateMessageCall { + _id, + _msgHash, + }, + ) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > EventLoggerInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + } +} diff --git a/bindings/rust/src/faucet.rs b/bindings/rust/src/faucet.rs new file mode 100644 index 000000000..9674d6a2c --- /dev/null +++ b/bindings/rust/src/faucet.rs @@ -0,0 +1,3311 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface Faucet { + struct AuthParameters { + address module; + bytes32 id; + bytes proof; + } + struct DripParameters { + address payable recipient; + bytes data; + bytes32 nonce; + uint32 gasLimit; + } + struct ModuleConfig { + string name; + bool enabled; + uint256 ttl; + uint256 amount; + } + + event Drip(string indexed authModule, bytes32 indexed userId, uint256 amount, address indexed recipient); + + constructor(address _admin); + + receive() external payable; + + function ADMIN() external view returns (address); + function configure(address _module, ModuleConfig memory _config) external; + function drip(DripParameters memory _params, AuthParameters memory _auth) external; + function isModuleEnabled(address _module) external view returns (bool); + function modules(address) external view returns (string memory name, bool enabled, uint256 ttl, uint256 amount); + function nonces(bytes32, bytes32) external view returns (bool); + function timeouts(address, bytes32) external view returns (uint256); + function withdraw(address payable _recipient, uint256 _amount) external; +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "constructor", + "inputs": [ + { + "name": "_admin", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "receive", + "stateMutability": "payable" + }, + { + "type": "function", + "name": "ADMIN", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "configure", + "inputs": [ + { + "name": "_module", + "type": "address", + "internalType": "contract IFaucetAuthModule" + }, + { + "name": "_config", + "type": "tuple", + "internalType": "struct Faucet.ModuleConfig", + "components": [ + { + "name": "name", + "type": "string", + "internalType": "string" + }, + { + "name": "enabled", + "type": "bool", + "internalType": "bool" + }, + { + "name": "ttl", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "amount", + "type": "uint256", + "internalType": "uint256" + } + ] + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "drip", + "inputs": [ + { + "name": "_params", + "type": "tuple", + "internalType": "struct Faucet.DripParameters", + "components": [ + { + "name": "recipient", + "type": "address", + "internalType": "address payable" + }, + { + "name": "data", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "nonce", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "gasLimit", + "type": "uint32", + "internalType": "uint32" + } + ] + }, + { + "name": "_auth", + "type": "tuple", + "internalType": "struct Faucet.AuthParameters", + "components": [ + { + "name": "module", + "type": "address", + "internalType": "contract IFaucetAuthModule" + }, + { + "name": "id", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "proof", + "type": "bytes", + "internalType": "bytes" + } + ] + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "isModuleEnabled", + "inputs": [ + { + "name": "_module", + "type": "address", + "internalType": "contract IFaucetAuthModule" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "modules", + "inputs": [ + { + "name": "", + "type": "address", + "internalType": "contract IFaucetAuthModule" + } + ], + "outputs": [ + { + "name": "name", + "type": "string", + "internalType": "string" + }, + { + "name": "enabled", + "type": "bool", + "internalType": "bool" + }, + { + "name": "ttl", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "amount", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "nonces", + "inputs": [ + { + "name": "", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "timeouts", + "inputs": [ + { + "name": "", + "type": "address", + "internalType": "contract IFaucetAuthModule" + }, + { + "name": "", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "withdraw", + "inputs": [ + { + "name": "_recipient", + "type": "address", + "internalType": "address payable" + }, + { + "name": "_amount", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "event", + "name": "Drip", + "inputs": [ + { + "name": "authModule", + "type": "string", + "indexed": true, + "internalType": "string" + }, + { + "name": "userId", + "type": "bytes32", + "indexed": true, + "internalType": "bytes32" + }, + { + "name": "amount", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + }, + { + "name": "recipient", + "type": "address", + "indexed": true, + "internalType": "address" + } + ], + "anonymous": false + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod Faucet { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x60a060405234801561001057600080fd5b506040516112cc3803806112cc83398101604081905261002f91610040565b6001600160a01b0316608052610070565b60006020828403121561005257600080fd5b81516001600160a01b038116811461006957600080fd5b9392505050565b6080516112336100996000396000818161010f0152818161026d0152610a0901526112336000f3fe60806040526004361061007f5760003560e01c806338757bfd1161004e57806338757bfd1461019f578063a8ee49fe146101e5578063b1510e4314610215578063f3fef3a31461023557600080fd5b80631cb81b881461008b5780631d5d26bc146100ad5780632a0acc6a146100fd5780632d9ad53d1461015657600080fd5b3661008657005b600080fd5b34801561009757600080fd5b506100ab6100a6366004610c0f565b610255565b005b3480156100b957600080fd5b506100e86100c8366004610cd0565b600260209081526000928352604080842090915290825290205460ff1681565b60405190151581526020015b60405180910390f35b34801561010957600080fd5b506101317f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100f4565b34801561016257600080fd5b506100e8610171366004610cf2565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090206001015460ff1690565b3480156101ab57600080fd5b506101d76101ba366004610d16565b600160209081526000928352604080842090915290825290205481565b6040519081526020016100f4565b3480156101f157600080fd5b50610205610200366004610cf2565b61038c565b6040516100f49493929190610d9a565b34801561022157600080fd5b506100ab610230366004610e6e565b610442565b34801561024157600080fd5b506100ab610250366004610d16565b6109f1565b3373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016146103055760405162461bcd60e51b815260206004820152602c60248201527f4661756365743a2066756e6374696f6e2063616e206f6e6c792062652063616c60448201527f6c65642062792061646d696e000000000000000000000000000000000000000060648201526084015b60405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff821660009081526020819052604090208151829190819061033b9082610fe0565b5060208201516001820180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055604082015160028201556060909101516003909101555050565b6000602081905290815260409020805481906103a790610f3e565b80601f01602080910402602001604051908101604052809291908181526020018280546103d390610f3e565b80156104205780601f106103f557610100808354040283529160200191610420565b820191906000526020600020905b81548152906001019060200180831161040357829003601f168201915b5050505060018301546002840154600390940154929360ff9091169290915084565b805173ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604080822081516080810190925280548290829061048190610f3e565b80601f01602080910402602001604051908101604052809291908181526020018280546104ad90610f3e565b80156104fa5780601f106104cf576101008083540402835291602001916104fa565b820191906000526020600020905b8154815290600101906020018083116104dd57829003601f168201915b5050509183525050600182015460ff161515602080830191909152600283015460408301526003909201546060909101528101519091506105a35760405162461bcd60e51b815260206004820152603c60248201527f4661756365743a2070726f76696465642061757468206d6f64756c652069732060448201527f6e6f7420737570706f727465642062792074686973206661756365740000000060648201526084016102fc565b6020808301516000908152600282526040808220868201518352909252205460ff16156106385760405162461bcd60e51b815260206004820152602360248201527f4661756365743a206e6f6e63652068617320616c7265616479206265656e207560448201527f736564000000000000000000000000000000000000000000000000000000000060648201526084016102fc565b815173ffffffffffffffffffffffffffffffffffffffff16600090815260016020908152604080832082860151845290915290205442116106e15760405162461bcd60e51b815260206004820152603f60248201527f4661756365743a20617574682063616e6e6f742062652075736564207965742060448201527f626563617573652074696d656f757420686173206e6f7420656c61707365640060648201526084016102fc565b8151602083015160408085015190517fd855814f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9093169263d855814f926107409288926004016110dc565b602060405180830381865afa15801561075d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107819190611155565b6107f5576040805162461bcd60e51b81526020600482015260248101919091527f4661756365743a206472697020706172616d657465727320636f756c64206e6f60448201527f74206265207665726966696564206279207365637572697479206d6f64756c6560648201526084016102fc565b82513073ffffffffffffffffffffffffffffffffffffffff9091160361085d5760405162461bcd60e51b815260206004820152601d60248201527f4661756365743a2063616e6e6f74206472697020746f20697473656c6600000060448201526064016102fc565b604081015161086c9042611172565b825173ffffffffffffffffffffffffffffffffffffffff16600090815260016020818152604080842082880180518652908352818520959095559351835260028152838320878501518452815292822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690911790558451606080870151908501519387015192936109099363ffffffff90921691610aea565b90508061097e5760405162461bcd60e51b815260206004820152603b60248201527f4661756365743a204661696c656420746f20657865637574652053616665436160448201527f6c6c20647572696e67206472697020746f20726563697069656e74000000000060648201526084016102fc565b83516020840151835160405173ffffffffffffffffffffffffffffffffffffffff909316926109ad91906111b1565b60405190819003812060608601518252907f2cebdf1cc706a50e1b28bf2fc5cfbd7204747a3b82439b85721a474df3a355a49060200160405180910390a450505050565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610a9c5760405162461bcd60e51b815260206004820152602c60248201527f4661756365743a2066756e6374696f6e2063616e206f6e6c792062652063616c60448201527f6c65642062792061646d696e000000000000000000000000000000000000000060648201526084016102fc565b8082604051610aaa90610b02565b73ffffffffffffffffffffffffffffffffffffffff90911681526020016040518091039082f0905080158015610ae4573d6000803e3d6000fd5b50505050565b6000806000835160208501868989f195945050505050565b6059806111ce83390190565b73ffffffffffffffffffffffffffffffffffffffff81168114610b3057600080fd5b50565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040516080810167ffffffffffffffff81118282101715610b8557610b85610b33565b60405290565b600067ffffffffffffffff80841115610ba657610ba6610b33565b604051601f8501601f19908116603f01168101908282118183101715610bce57610bce610b33565b81604052809350858152868686011115610be757600080fd5b858560208301376000602087830101525050509392505050565b8015158114610b3057600080fd5b60008060408385031215610c2257600080fd5b8235610c2d81610b0e565b9150602083013567ffffffffffffffff80821115610c4a57600080fd5b9084019060808287031215610c5e57600080fd5b610c66610b62565b823582811115610c7557600080fd5b83019150601f82018713610c8857600080fd5b610c9787833560208501610b8b565b815260208301359150610ca982610c01565b81602082015260408301356040820152606083013560608201528093505050509250929050565b60008060408385031215610ce357600080fd5b50508035926020909101359150565b600060208284031215610d0457600080fd5b8135610d0f81610b0e565b9392505050565b60008060408385031215610d2957600080fd5b8235610d3481610b0e565b946020939093013593505050565b60005b83811015610d5d578181015183820152602001610d45565b83811115610ae45750506000910152565b60008151808452610d86816020860160208601610d42565b601f01601f19169290920160200192915050565b608081526000610dad6080830187610d6e565b9415156020830152506040810192909252606090910152919050565b600082601f830112610dda57600080fd5b610d0f83833560208501610b8b565b600060608284031215610dfb57600080fd5b6040516060810167ffffffffffffffff8282108183111715610e1f57610e1f610b33565b8160405282935084359150610e3382610b0e565b818352602085013560208401526040850135915080821115610e5457600080fd5b50610e6185828601610dc9565b6040830152505092915050565b60008060408385031215610e8157600080fd5b823567ffffffffffffffff80821115610e9957600080fd5b9084019060808287031215610ead57600080fd5b610eb5610b62565b8235610ec081610b0e565b8152602083013582811115610ed457600080fd5b610ee088828601610dc9565b602083015250604083013560408201526060830135925063ffffffff83168314610f0957600080fd5b826060820152809450506020850135915080821115610f2757600080fd5b50610f3485828601610de9565b9150509250929050565b600181811c90821680610f5257607f821691505b602082108103610f8b577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b601f821115610fdb57600081815260208120601f850160051c81016020861015610fb85750805b601f850160051c820191505b81811015610fd757828155600101610fc4565b5050505b505050565b815167ffffffffffffffff811115610ffa57610ffa610b33565b61100e816110088454610f3e565b84610f91565b602080601f831160018114611061576000841561102b5750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555610fd7565b600085815260208120601f198616915b8281101561109057888601518255948401946001909101908401611071565b50858210156110cc57878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b6060815273ffffffffffffffffffffffffffffffffffffffff84511660608201526000602085015160808084015261111760e0840182610d6e565b9050604086015160a084015263ffffffff60608701511660c0840152846020840152828103604084015261114b8185610d6e565b9695505050505050565b60006020828403121561116757600080fd5b8151610d0f81610c01565b600082198211156111ac577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b500190565b600082516111c3818460208701610d42565b919091019291505056fe608060405260405160593803806059833981016040819052601e91602a565b806001600160a01b0316ff5b600060208284031215603b57600080fd5b81516001600160a01b0381168114605157600080fd5b939250505056fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\xA0`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`@Qa\x12\xCC8\x03\x80a\x12\xCC\x839\x81\x01`@\x81\x90Ra\0/\x91a\0@V[`\x01`\x01`\xA0\x1B\x03\x16`\x80Ra\0pV[`\0` \x82\x84\x03\x12\x15a\0RW`\0\x80\xFD[\x81Q`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a\0iW`\0\x80\xFD[\x93\x92PPPV[`\x80Qa\x123a\0\x99`\09`\0\x81\x81a\x01\x0F\x01R\x81\x81a\x02m\x01Ra\n\t\x01Ra\x123`\0\xF3\xFE`\x80`@R`\x046\x10a\0\x7FW`\x005`\xE0\x1C\x80c8u{\xFD\x11a\0NW\x80c8u{\xFD\x14a\x01\x9FW\x80c\xA8\xEEI\xFE\x14a\x01\xE5W\x80c\xB1Q\x0EC\x14a\x02\x15W\x80c\xF3\xFE\xF3\xA3\x14a\x025W`\0\x80\xFD[\x80c\x1C\xB8\x1B\x88\x14a\0\x8BW\x80c\x1D]&\xBC\x14a\0\xADW\x80c*\n\xCCj\x14a\0\xFDW\x80c-\x9A\xD5=\x14a\x01VW`\0\x80\xFD[6a\0\x86W\0[`\0\x80\xFD[4\x80\x15a\0\x97W`\0\x80\xFD[Pa\0\xABa\0\xA66`\x04a\x0C\x0FV[a\x02UV[\0[4\x80\x15a\0\xB9W`\0\x80\xFD[Pa\0\xE8a\0\xC86`\x04a\x0C\xD0V[`\x02` \x90\x81R`\0\x92\x83R`@\x80\x84 \x90\x91R\x90\x82R\x90 T`\xFF\x16\x81V[`@Q\x90\x15\x15\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[4\x80\x15a\x01\tW`\0\x80\xFD[Pa\x011\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01a\0\xF4V[4\x80\x15a\x01bW`\0\x80\xFD[Pa\0\xE8a\x01q6`\x04a\x0C\xF2V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\0\x90\x81R` \x81\x90R`@\x90 `\x01\x01T`\xFF\x16\x90V[4\x80\x15a\x01\xABW`\0\x80\xFD[Pa\x01\xD7a\x01\xBA6`\x04a\r\x16V[`\x01` \x90\x81R`\0\x92\x83R`@\x80\x84 \x90\x91R\x90\x82R\x90 T\x81V[`@Q\x90\x81R` \x01a\0\xF4V[4\x80\x15a\x01\xF1W`\0\x80\xFD[Pa\x02\x05a\x02\x006`\x04a\x0C\xF2V[a\x03\x8CV[`@Qa\0\xF4\x94\x93\x92\x91\x90a\r\x9AV[4\x80\x15a\x02!W`\0\x80\xFD[Pa\0\xABa\x0206`\x04a\x0EnV[a\x04BV[4\x80\x15a\x02AW`\0\x80\xFD[Pa\0\xABa\x02P6`\x04a\r\x16V[a\t\xF1V[3s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x14a\x03\x05W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`,`$\x82\x01R\x7FFaucet: function can only be cal`D\x82\x01R\x7Fled by admin\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01[`@Q\x80\x91\x03\x90\xFD[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16`\0\x90\x81R` \x81\x90R`@\x90 \x81Q\x82\x91\x90\x81\x90a\x03;\x90\x82a\x0F\xE0V[P` \x82\x01Q`\x01\x82\x01\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x16\x91\x15\x15\x91\x90\x91\x17\x90U`@\x82\x01Q`\x02\x82\x01U``\x90\x91\x01Q`\x03\x90\x91\x01UPPV[`\0` \x81\x90R\x90\x81R`@\x90 \x80T\x81\x90a\x03\xA7\x90a\x0F>V[\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x92\x91\x90\x81\x81R` \x01\x82\x80Ta\x03\xD3\x90a\x0F>V[\x80\x15a\x04 W\x80`\x1F\x10a\x03\xF5Wa\x01\0\x80\x83T\x04\x02\x83R\x91` \x01\x91a\x04 V[\x82\x01\x91\x90`\0R` `\0 \x90[\x81T\x81R\x90`\x01\x01\x90` \x01\x80\x83\x11a\x04\x03W\x82\x90\x03`\x1F\x16\x82\x01\x91[PPPP`\x01\x83\x01T`\x02\x84\x01T`\x03\x90\x94\x01T\x92\x93`\xFF\x90\x91\x16\x92\x90\x91P\x84V[\x80Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\0\x90\x81R` \x81\x90R`@\x80\x82 \x81Q`\x80\x81\x01\x90\x92R\x80T\x82\x90\x82\x90a\x04\x81\x90a\x0F>V[\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x92\x91\x90\x81\x81R` \x01\x82\x80Ta\x04\xAD\x90a\x0F>V[\x80\x15a\x04\xFAW\x80`\x1F\x10a\x04\xCFWa\x01\0\x80\x83T\x04\x02\x83R\x91` \x01\x91a\x04\xFAV[\x82\x01\x91\x90`\0R` `\0 \x90[\x81T\x81R\x90`\x01\x01\x90` \x01\x80\x83\x11a\x04\xDDW\x82\x90\x03`\x1F\x16\x82\x01\x91[PPP\x91\x83RPP`\x01\x82\x01T`\xFF\x16\x15\x15` \x80\x83\x01\x91\x90\x91R`\x02\x83\x01T`@\x83\x01R`\x03\x90\x92\x01T``\x90\x91\x01R\x81\x01Q\x90\x91Pa\x05\xA3W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`<`$\x82\x01R\x7FFaucet: provided auth module is `D\x82\x01R\x7Fnot supported by this faucet\0\0\0\0`d\x82\x01R`\x84\x01a\x02\xFCV[` \x80\x83\x01Q`\0\x90\x81R`\x02\x82R`@\x80\x82 \x86\x82\x01Q\x83R\x90\x92R T`\xFF\x16\x15a\x068W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`#`$\x82\x01R\x7FFaucet: nonce has already been u`D\x82\x01R\x7Fsed\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x02\xFCV[\x81Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\0\x90\x81R`\x01` \x90\x81R`@\x80\x83 \x82\x86\x01Q\x84R\x90\x91R\x90 TB\x11a\x06\xE1W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`?`$\x82\x01R\x7FFaucet: auth cannot be used yet `D\x82\x01R\x7Fbecause timeout has not elapsed\0`d\x82\x01R`\x84\x01a\x02\xFCV[\x81Q` \x83\x01Q`@\x80\x85\x01Q\x90Q\x7F\xD8U\x81O\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\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x93\x16\x92c\xD8U\x81O\x92a\x07@\x92\x88\x92`\x04\x01a\x10\xDCV[` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x07]W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x07\x81\x91\x90a\x11UV[a\x07\xF5W`@\x80QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`$\x81\x01\x91\x90\x91R\x7FFaucet: drip parameters could no`D\x82\x01R\x7Ft be verified by security module`d\x82\x01R`\x84\x01a\x02\xFCV[\x82Q0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x03a\x08]W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1D`$\x82\x01R\x7FFaucet: cannot drip to itself\0\0\0`D\x82\x01R`d\x01a\x02\xFCV[`@\x81\x01Qa\x08l\x90Ba\x11rV[\x82Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\0\x90\x81R`\x01` \x81\x81R`@\x80\x84 \x82\x88\x01\x80Q\x86R\x90\x83R\x81\x85 \x95\x90\x95U\x93Q\x83R`\x02\x81R\x83\x83 \x87\x85\x01Q\x84R\x81R\x92\x82 \x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x16\x90\x91\x17\x90U\x84Q``\x80\x87\x01Q\x90\x85\x01Q\x93\x87\x01Q\x92\x93a\t\t\x93c\xFF\xFF\xFF\xFF\x90\x92\x16\x91a\n\xEAV[\x90P\x80a\t~W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`;`$\x82\x01R\x7FFaucet: Failed to execute SafeCa`D\x82\x01R\x7Fll during drip to recipient\0\0\0\0\0`d\x82\x01R`\x84\x01a\x02\xFCV[\x83Q` \x84\x01Q\x83Q`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x93\x16\x92a\t\xAD\x91\x90a\x11\xB1V[`@Q\x90\x81\x90\x03\x81 ``\x86\x01Q\x82R\x90\x7F,\xEB\xDF\x1C\xC7\x06\xA5\x0E\x1B(\xBF/\xC5\xCF\xBDr\x04tz;\x82C\x9B\x85r\x1AGM\xF3\xA3U\xA4\x90` \x01`@Q\x80\x91\x03\x90\xA4PPPPV[3s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x14a\n\x9CW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`,`$\x82\x01R\x7FFaucet: function can only be cal`D\x82\x01R\x7Fled by admin\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x02\xFCV[\x80\x82`@Qa\n\xAA\x90a\x0B\x02V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01`@Q\x80\x91\x03\x90\x82\xF0\x90P\x80\x15\x80\x15a\n\xE4W=`\0\x80>=`\0\xFD[PPPPV[`\0\x80`\0\x83Q` \x85\x01\x86\x89\x89\xF1\x95\x94PPPPPV[`Y\x80a\x11\xCE\x839\x01\x90V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x0B0W`\0\x80\xFD[PV[\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[`@Q`\x80\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a\x0B\x85Wa\x0B\x85a\x0B3V[`@R\x90V[`\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x84\x11\x15a\x0B\xA6Wa\x0B\xA6a\x0B3V[`@Q`\x1F\x85\x01`\x1F\x19\x90\x81\x16`?\x01\x16\x81\x01\x90\x82\x82\x11\x81\x83\x10\x17\x15a\x0B\xCEWa\x0B\xCEa\x0B3V[\x81`@R\x80\x93P\x85\x81R\x86\x86\x86\x01\x11\x15a\x0B\xE7W`\0\x80\xFD[\x85\x85` \x83\x017`\0` \x87\x83\x01\x01RPPP\x93\x92PPPV[\x80\x15\x15\x81\x14a\x0B0W`\0\x80\xFD[`\0\x80`@\x83\x85\x03\x12\x15a\x0C\"W`\0\x80\xFD[\x825a\x0C-\x81a\x0B\x0EV[\x91P` \x83\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x0CJW`\0\x80\xFD[\x90\x84\x01\x90`\x80\x82\x87\x03\x12\x15a\x0C^W`\0\x80\xFD[a\x0Cfa\x0BbV[\x825\x82\x81\x11\x15a\x0CuW`\0\x80\xFD[\x83\x01\x91P`\x1F\x82\x01\x87\x13a\x0C\x88W`\0\x80\xFD[a\x0C\x97\x87\x835` \x85\x01a\x0B\x8BV[\x81R` \x83\x015\x91Pa\x0C\xA9\x82a\x0C\x01V[\x81` \x82\x01R`@\x83\x015`@\x82\x01R``\x83\x015``\x82\x01R\x80\x93PPPP\x92P\x92\x90PV[`\0\x80`@\x83\x85\x03\x12\x15a\x0C\xE3W`\0\x80\xFD[PP\x805\x92` \x90\x91\x015\x91PV[`\0` \x82\x84\x03\x12\x15a\r\x04W`\0\x80\xFD[\x815a\r\x0F\x81a\x0B\x0EV[\x93\x92PPPV[`\0\x80`@\x83\x85\x03\x12\x15a\r)W`\0\x80\xFD[\x825a\r4\x81a\x0B\x0EV[\x94` \x93\x90\x93\x015\x93PPPV[`\0[\x83\x81\x10\x15a\r]W\x81\x81\x01Q\x83\x82\x01R` \x01a\rEV[\x83\x81\x11\x15a\n\xE4WPP`\0\x91\x01RV[`\0\x81Q\x80\x84Ra\r\x86\x81` \x86\x01` \x86\x01a\rBV[`\x1F\x01`\x1F\x19\x16\x92\x90\x92\x01` \x01\x92\x91PPV[`\x80\x81R`\0a\r\xAD`\x80\x83\x01\x87a\rnV[\x94\x15\x15` \x83\x01RP`@\x81\x01\x92\x90\x92R``\x90\x91\x01R\x91\x90PV[`\0\x82`\x1F\x83\x01\x12a\r\xDAW`\0\x80\xFD[a\r\x0F\x83\x835` \x85\x01a\x0B\x8BV[`\0``\x82\x84\x03\x12\x15a\r\xFBW`\0\x80\xFD[`@Q``\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x82\x10\x81\x83\x11\x17\x15a\x0E\x1FWa\x0E\x1Fa\x0B3V[\x81`@R\x82\x93P\x845\x91Pa\x0E3\x82a\x0B\x0EV[\x81\x83R` \x85\x015` \x84\x01R`@\x85\x015\x91P\x80\x82\x11\x15a\x0ETW`\0\x80\xFD[Pa\x0Ea\x85\x82\x86\x01a\r\xC9V[`@\x83\x01RPP\x92\x91PPV[`\0\x80`@\x83\x85\x03\x12\x15a\x0E\x81W`\0\x80\xFD[\x825g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x0E\x99W`\0\x80\xFD[\x90\x84\x01\x90`\x80\x82\x87\x03\x12\x15a\x0E\xADW`\0\x80\xFD[a\x0E\xB5a\x0BbV[\x825a\x0E\xC0\x81a\x0B\x0EV[\x81R` \x83\x015\x82\x81\x11\x15a\x0E\xD4W`\0\x80\xFD[a\x0E\xE0\x88\x82\x86\x01a\r\xC9V[` \x83\x01RP`@\x83\x015`@\x82\x01R``\x83\x015\x92Pc\xFF\xFF\xFF\xFF\x83\x16\x83\x14a\x0F\tW`\0\x80\xFD[\x82``\x82\x01R\x80\x94PP` \x85\x015\x91P\x80\x82\x11\x15a\x0F'W`\0\x80\xFD[Pa\x0F4\x85\x82\x86\x01a\r\xE9V[\x91PP\x92P\x92\x90PV[`\x01\x81\x81\x1C\x90\x82\x16\x80a\x0FRW`\x7F\x82\x16\x91P[` \x82\x10\x81\x03a\x0F\x8BW\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`\"`\x04R`$`\0\xFD[P\x91\x90PV[`\x1F\x82\x11\x15a\x0F\xDBW`\0\x81\x81R` \x81 `\x1F\x85\x01`\x05\x1C\x81\x01` \x86\x10\x15a\x0F\xB8WP\x80[`\x1F\x85\x01`\x05\x1C\x82\x01\x91P[\x81\x81\x10\x15a\x0F\xD7W\x82\x81U`\x01\x01a\x0F\xC4V[PPP[PPPV[\x81Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x0F\xFAWa\x0F\xFAa\x0B3V[a\x10\x0E\x81a\x10\x08\x84Ta\x0F>V[\x84a\x0F\x91V[` \x80`\x1F\x83\x11`\x01\x81\x14a\x10aW`\0\x84\x15a\x10+WP\x85\x83\x01Q[\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF`\x03\x86\x90\x1B\x1C\x19\x16`\x01\x85\x90\x1B\x17\x85Ua\x0F\xD7V[`\0\x85\x81R` \x81 `\x1F\x19\x86\x16\x91[\x82\x81\x10\x15a\x10\x90W\x88\x86\x01Q\x82U\x94\x84\x01\x94`\x01\x90\x91\x01\x90\x84\x01a\x10qV[P\x85\x82\x10\x15a\x10\xCCW\x87\x85\x01Q\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF`\x03\x88\x90\x1B`\xF8\x16\x1C\x19\x16\x81U[PPPPP`\x01\x90\x81\x1B\x01\x90UPV[``\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84Q\x16``\x82\x01R`\0` \x85\x01Q`\x80\x80\x84\x01Ra\x11\x17`\xE0\x84\x01\x82a\rnV[\x90P`@\x86\x01Q`\xA0\x84\x01Rc\xFF\xFF\xFF\xFF``\x87\x01Q\x16`\xC0\x84\x01R\x84` \x84\x01R\x82\x81\x03`@\x84\x01Ra\x11K\x81\x85a\rnV[\x96\x95PPPPPPV[`\0` \x82\x84\x03\x12\x15a\x11gW`\0\x80\xFD[\x81Qa\r\x0F\x81a\x0C\x01V[`\0\x82\x19\x82\x11\x15a\x11\xACW\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`\x11`\x04R`$`\0\xFD[P\x01\x90V[`\0\x82Qa\x11\xC3\x81\x84` \x87\x01a\rBV[\x91\x90\x91\x01\x92\x91PPV\xFE`\x80`@R`@Q`Y8\x03\x80`Y\x839\x81\x01`@\x81\x90R`\x1E\x91`*V[\x80`\x01`\x01`\xA0\x1B\x03\x16\xFF[`\0` \x82\x84\x03\x12\x15`;W`\0\x80\xFD[\x81Q`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14`QW`\0\x80\xFD[\x93\x92PPPV\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x60806040526004361061007f5760003560e01c806338757bfd1161004e57806338757bfd1461019f578063a8ee49fe146101e5578063b1510e4314610215578063f3fef3a31461023557600080fd5b80631cb81b881461008b5780631d5d26bc146100ad5780632a0acc6a146100fd5780632d9ad53d1461015657600080fd5b3661008657005b600080fd5b34801561009757600080fd5b506100ab6100a6366004610c0f565b610255565b005b3480156100b957600080fd5b506100e86100c8366004610cd0565b600260209081526000928352604080842090915290825290205460ff1681565b60405190151581526020015b60405180910390f35b34801561010957600080fd5b506101317f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100f4565b34801561016257600080fd5b506100e8610171366004610cf2565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090206001015460ff1690565b3480156101ab57600080fd5b506101d76101ba366004610d16565b600160209081526000928352604080842090915290825290205481565b6040519081526020016100f4565b3480156101f157600080fd5b50610205610200366004610cf2565b61038c565b6040516100f49493929190610d9a565b34801561022157600080fd5b506100ab610230366004610e6e565b610442565b34801561024157600080fd5b506100ab610250366004610d16565b6109f1565b3373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016146103055760405162461bcd60e51b815260206004820152602c60248201527f4661756365743a2066756e6374696f6e2063616e206f6e6c792062652063616c60448201527f6c65642062792061646d696e000000000000000000000000000000000000000060648201526084015b60405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff821660009081526020819052604090208151829190819061033b9082610fe0565b5060208201516001820180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055604082015160028201556060909101516003909101555050565b6000602081905290815260409020805481906103a790610f3e565b80601f01602080910402602001604051908101604052809291908181526020018280546103d390610f3e565b80156104205780601f106103f557610100808354040283529160200191610420565b820191906000526020600020905b81548152906001019060200180831161040357829003601f168201915b5050505060018301546002840154600390940154929360ff9091169290915084565b805173ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604080822081516080810190925280548290829061048190610f3e565b80601f01602080910402602001604051908101604052809291908181526020018280546104ad90610f3e565b80156104fa5780601f106104cf576101008083540402835291602001916104fa565b820191906000526020600020905b8154815290600101906020018083116104dd57829003601f168201915b5050509183525050600182015460ff161515602080830191909152600283015460408301526003909201546060909101528101519091506105a35760405162461bcd60e51b815260206004820152603c60248201527f4661756365743a2070726f76696465642061757468206d6f64756c652069732060448201527f6e6f7420737570706f727465642062792074686973206661756365740000000060648201526084016102fc565b6020808301516000908152600282526040808220868201518352909252205460ff16156106385760405162461bcd60e51b815260206004820152602360248201527f4661756365743a206e6f6e63652068617320616c7265616479206265656e207560448201527f736564000000000000000000000000000000000000000000000000000000000060648201526084016102fc565b815173ffffffffffffffffffffffffffffffffffffffff16600090815260016020908152604080832082860151845290915290205442116106e15760405162461bcd60e51b815260206004820152603f60248201527f4661756365743a20617574682063616e6e6f742062652075736564207965742060448201527f626563617573652074696d656f757420686173206e6f7420656c61707365640060648201526084016102fc565b8151602083015160408085015190517fd855814f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9093169263d855814f926107409288926004016110dc565b602060405180830381865afa15801561075d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107819190611155565b6107f5576040805162461bcd60e51b81526020600482015260248101919091527f4661756365743a206472697020706172616d657465727320636f756c64206e6f60448201527f74206265207665726966696564206279207365637572697479206d6f64756c6560648201526084016102fc565b82513073ffffffffffffffffffffffffffffffffffffffff9091160361085d5760405162461bcd60e51b815260206004820152601d60248201527f4661756365743a2063616e6e6f74206472697020746f20697473656c6600000060448201526064016102fc565b604081015161086c9042611172565b825173ffffffffffffffffffffffffffffffffffffffff16600090815260016020818152604080842082880180518652908352818520959095559351835260028152838320878501518452815292822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690911790558451606080870151908501519387015192936109099363ffffffff90921691610aea565b90508061097e5760405162461bcd60e51b815260206004820152603b60248201527f4661756365743a204661696c656420746f20657865637574652053616665436160448201527f6c6c20647572696e67206472697020746f20726563697069656e74000000000060648201526084016102fc565b83516020840151835160405173ffffffffffffffffffffffffffffffffffffffff909316926109ad91906111b1565b60405190819003812060608601518252907f2cebdf1cc706a50e1b28bf2fc5cfbd7204747a3b82439b85721a474df3a355a49060200160405180910390a450505050565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610a9c5760405162461bcd60e51b815260206004820152602c60248201527f4661756365743a2066756e6374696f6e2063616e206f6e6c792062652063616c60448201527f6c65642062792061646d696e000000000000000000000000000000000000000060648201526084016102fc565b8082604051610aaa90610b02565b73ffffffffffffffffffffffffffffffffffffffff90911681526020016040518091039082f0905080158015610ae4573d6000803e3d6000fd5b50505050565b6000806000835160208501868989f195945050505050565b6059806111ce83390190565b73ffffffffffffffffffffffffffffffffffffffff81168114610b3057600080fd5b50565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040516080810167ffffffffffffffff81118282101715610b8557610b85610b33565b60405290565b600067ffffffffffffffff80841115610ba657610ba6610b33565b604051601f8501601f19908116603f01168101908282118183101715610bce57610bce610b33565b81604052809350858152868686011115610be757600080fd5b858560208301376000602087830101525050509392505050565b8015158114610b3057600080fd5b60008060408385031215610c2257600080fd5b8235610c2d81610b0e565b9150602083013567ffffffffffffffff80821115610c4a57600080fd5b9084019060808287031215610c5e57600080fd5b610c66610b62565b823582811115610c7557600080fd5b83019150601f82018713610c8857600080fd5b610c9787833560208501610b8b565b815260208301359150610ca982610c01565b81602082015260408301356040820152606083013560608201528093505050509250929050565b60008060408385031215610ce357600080fd5b50508035926020909101359150565b600060208284031215610d0457600080fd5b8135610d0f81610b0e565b9392505050565b60008060408385031215610d2957600080fd5b8235610d3481610b0e565b946020939093013593505050565b60005b83811015610d5d578181015183820152602001610d45565b83811115610ae45750506000910152565b60008151808452610d86816020860160208601610d42565b601f01601f19169290920160200192915050565b608081526000610dad6080830187610d6e565b9415156020830152506040810192909252606090910152919050565b600082601f830112610dda57600080fd5b610d0f83833560208501610b8b565b600060608284031215610dfb57600080fd5b6040516060810167ffffffffffffffff8282108183111715610e1f57610e1f610b33565b8160405282935084359150610e3382610b0e565b818352602085013560208401526040850135915080821115610e5457600080fd5b50610e6185828601610dc9565b6040830152505092915050565b60008060408385031215610e8157600080fd5b823567ffffffffffffffff80821115610e9957600080fd5b9084019060808287031215610ead57600080fd5b610eb5610b62565b8235610ec081610b0e565b8152602083013582811115610ed457600080fd5b610ee088828601610dc9565b602083015250604083013560408201526060830135925063ffffffff83168314610f0957600080fd5b826060820152809450506020850135915080821115610f2757600080fd5b50610f3485828601610de9565b9150509250929050565b600181811c90821680610f5257607f821691505b602082108103610f8b577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b601f821115610fdb57600081815260208120601f850160051c81016020861015610fb85750805b601f850160051c820191505b81811015610fd757828155600101610fc4565b5050505b505050565b815167ffffffffffffffff811115610ffa57610ffa610b33565b61100e816110088454610f3e565b84610f91565b602080601f831160018114611061576000841561102b5750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555610fd7565b600085815260208120601f198616915b8281101561109057888601518255948401946001909101908401611071565b50858210156110cc57878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b6060815273ffffffffffffffffffffffffffffffffffffffff84511660608201526000602085015160808084015261111760e0840182610d6e565b9050604086015160a084015263ffffffff60608701511660c0840152846020840152828103604084015261114b8185610d6e565b9695505050505050565b60006020828403121561116757600080fd5b8151610d0f81610c01565b600082198211156111ac577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b500190565b600082516111c3818460208701610d42565b919091019291505056fe608060405260405160593803806059833981016040819052601e91602a565b806001600160a01b0316ff5b600060208284031215603b57600080fd5b81516001600160a01b0381168114605157600080fd5b939250505056fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R`\x046\x10a\0\x7FW`\x005`\xE0\x1C\x80c8u{\xFD\x11a\0NW\x80c8u{\xFD\x14a\x01\x9FW\x80c\xA8\xEEI\xFE\x14a\x01\xE5W\x80c\xB1Q\x0EC\x14a\x02\x15W\x80c\xF3\xFE\xF3\xA3\x14a\x025W`\0\x80\xFD[\x80c\x1C\xB8\x1B\x88\x14a\0\x8BW\x80c\x1D]&\xBC\x14a\0\xADW\x80c*\n\xCCj\x14a\0\xFDW\x80c-\x9A\xD5=\x14a\x01VW`\0\x80\xFD[6a\0\x86W\0[`\0\x80\xFD[4\x80\x15a\0\x97W`\0\x80\xFD[Pa\0\xABa\0\xA66`\x04a\x0C\x0FV[a\x02UV[\0[4\x80\x15a\0\xB9W`\0\x80\xFD[Pa\0\xE8a\0\xC86`\x04a\x0C\xD0V[`\x02` \x90\x81R`\0\x92\x83R`@\x80\x84 \x90\x91R\x90\x82R\x90 T`\xFF\x16\x81V[`@Q\x90\x15\x15\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[4\x80\x15a\x01\tW`\0\x80\xFD[Pa\x011\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01a\0\xF4V[4\x80\x15a\x01bW`\0\x80\xFD[Pa\0\xE8a\x01q6`\x04a\x0C\xF2V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\0\x90\x81R` \x81\x90R`@\x90 `\x01\x01T`\xFF\x16\x90V[4\x80\x15a\x01\xABW`\0\x80\xFD[Pa\x01\xD7a\x01\xBA6`\x04a\r\x16V[`\x01` \x90\x81R`\0\x92\x83R`@\x80\x84 \x90\x91R\x90\x82R\x90 T\x81V[`@Q\x90\x81R` \x01a\0\xF4V[4\x80\x15a\x01\xF1W`\0\x80\xFD[Pa\x02\x05a\x02\x006`\x04a\x0C\xF2V[a\x03\x8CV[`@Qa\0\xF4\x94\x93\x92\x91\x90a\r\x9AV[4\x80\x15a\x02!W`\0\x80\xFD[Pa\0\xABa\x0206`\x04a\x0EnV[a\x04BV[4\x80\x15a\x02AW`\0\x80\xFD[Pa\0\xABa\x02P6`\x04a\r\x16V[a\t\xF1V[3s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x14a\x03\x05W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`,`$\x82\x01R\x7FFaucet: function can only be cal`D\x82\x01R\x7Fled by admin\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01[`@Q\x80\x91\x03\x90\xFD[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16`\0\x90\x81R` \x81\x90R`@\x90 \x81Q\x82\x91\x90\x81\x90a\x03;\x90\x82a\x0F\xE0V[P` \x82\x01Q`\x01\x82\x01\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x16\x91\x15\x15\x91\x90\x91\x17\x90U`@\x82\x01Q`\x02\x82\x01U``\x90\x91\x01Q`\x03\x90\x91\x01UPPV[`\0` \x81\x90R\x90\x81R`@\x90 \x80T\x81\x90a\x03\xA7\x90a\x0F>V[\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x92\x91\x90\x81\x81R` \x01\x82\x80Ta\x03\xD3\x90a\x0F>V[\x80\x15a\x04 W\x80`\x1F\x10a\x03\xF5Wa\x01\0\x80\x83T\x04\x02\x83R\x91` \x01\x91a\x04 V[\x82\x01\x91\x90`\0R` `\0 \x90[\x81T\x81R\x90`\x01\x01\x90` \x01\x80\x83\x11a\x04\x03W\x82\x90\x03`\x1F\x16\x82\x01\x91[PPPP`\x01\x83\x01T`\x02\x84\x01T`\x03\x90\x94\x01T\x92\x93`\xFF\x90\x91\x16\x92\x90\x91P\x84V[\x80Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\0\x90\x81R` \x81\x90R`@\x80\x82 \x81Q`\x80\x81\x01\x90\x92R\x80T\x82\x90\x82\x90a\x04\x81\x90a\x0F>V[\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x92\x91\x90\x81\x81R` \x01\x82\x80Ta\x04\xAD\x90a\x0F>V[\x80\x15a\x04\xFAW\x80`\x1F\x10a\x04\xCFWa\x01\0\x80\x83T\x04\x02\x83R\x91` \x01\x91a\x04\xFAV[\x82\x01\x91\x90`\0R` `\0 \x90[\x81T\x81R\x90`\x01\x01\x90` \x01\x80\x83\x11a\x04\xDDW\x82\x90\x03`\x1F\x16\x82\x01\x91[PPP\x91\x83RPP`\x01\x82\x01T`\xFF\x16\x15\x15` \x80\x83\x01\x91\x90\x91R`\x02\x83\x01T`@\x83\x01R`\x03\x90\x92\x01T``\x90\x91\x01R\x81\x01Q\x90\x91Pa\x05\xA3W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`<`$\x82\x01R\x7FFaucet: provided auth module is `D\x82\x01R\x7Fnot supported by this faucet\0\0\0\0`d\x82\x01R`\x84\x01a\x02\xFCV[` \x80\x83\x01Q`\0\x90\x81R`\x02\x82R`@\x80\x82 \x86\x82\x01Q\x83R\x90\x92R T`\xFF\x16\x15a\x068W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`#`$\x82\x01R\x7FFaucet: nonce has already been u`D\x82\x01R\x7Fsed\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x02\xFCV[\x81Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\0\x90\x81R`\x01` \x90\x81R`@\x80\x83 \x82\x86\x01Q\x84R\x90\x91R\x90 TB\x11a\x06\xE1W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`?`$\x82\x01R\x7FFaucet: auth cannot be used yet `D\x82\x01R\x7Fbecause timeout has not elapsed\0`d\x82\x01R`\x84\x01a\x02\xFCV[\x81Q` \x83\x01Q`@\x80\x85\x01Q\x90Q\x7F\xD8U\x81O\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\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x93\x16\x92c\xD8U\x81O\x92a\x07@\x92\x88\x92`\x04\x01a\x10\xDCV[` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x07]W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x07\x81\x91\x90a\x11UV[a\x07\xF5W`@\x80QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`$\x81\x01\x91\x90\x91R\x7FFaucet: drip parameters could no`D\x82\x01R\x7Ft be verified by security module`d\x82\x01R`\x84\x01a\x02\xFCV[\x82Q0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x03a\x08]W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1D`$\x82\x01R\x7FFaucet: cannot drip to itself\0\0\0`D\x82\x01R`d\x01a\x02\xFCV[`@\x81\x01Qa\x08l\x90Ba\x11rV[\x82Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\0\x90\x81R`\x01` \x81\x81R`@\x80\x84 \x82\x88\x01\x80Q\x86R\x90\x83R\x81\x85 \x95\x90\x95U\x93Q\x83R`\x02\x81R\x83\x83 \x87\x85\x01Q\x84R\x81R\x92\x82 \x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x16\x90\x91\x17\x90U\x84Q``\x80\x87\x01Q\x90\x85\x01Q\x93\x87\x01Q\x92\x93a\t\t\x93c\xFF\xFF\xFF\xFF\x90\x92\x16\x91a\n\xEAV[\x90P\x80a\t~W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`;`$\x82\x01R\x7FFaucet: Failed to execute SafeCa`D\x82\x01R\x7Fll during drip to recipient\0\0\0\0\0`d\x82\x01R`\x84\x01a\x02\xFCV[\x83Q` \x84\x01Q\x83Q`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x93\x16\x92a\t\xAD\x91\x90a\x11\xB1V[`@Q\x90\x81\x90\x03\x81 ``\x86\x01Q\x82R\x90\x7F,\xEB\xDF\x1C\xC7\x06\xA5\x0E\x1B(\xBF/\xC5\xCF\xBDr\x04tz;\x82C\x9B\x85r\x1AGM\xF3\xA3U\xA4\x90` \x01`@Q\x80\x91\x03\x90\xA4PPPPV[3s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x14a\n\x9CW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`,`$\x82\x01R\x7FFaucet: function can only be cal`D\x82\x01R\x7Fled by admin\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x02\xFCV[\x80\x82`@Qa\n\xAA\x90a\x0B\x02V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01`@Q\x80\x91\x03\x90\x82\xF0\x90P\x80\x15\x80\x15a\n\xE4W=`\0\x80>=`\0\xFD[PPPPV[`\0\x80`\0\x83Q` \x85\x01\x86\x89\x89\xF1\x95\x94PPPPPV[`Y\x80a\x11\xCE\x839\x01\x90V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x0B0W`\0\x80\xFD[PV[\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[`@Q`\x80\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a\x0B\x85Wa\x0B\x85a\x0B3V[`@R\x90V[`\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x84\x11\x15a\x0B\xA6Wa\x0B\xA6a\x0B3V[`@Q`\x1F\x85\x01`\x1F\x19\x90\x81\x16`?\x01\x16\x81\x01\x90\x82\x82\x11\x81\x83\x10\x17\x15a\x0B\xCEWa\x0B\xCEa\x0B3V[\x81`@R\x80\x93P\x85\x81R\x86\x86\x86\x01\x11\x15a\x0B\xE7W`\0\x80\xFD[\x85\x85` \x83\x017`\0` \x87\x83\x01\x01RPPP\x93\x92PPPV[\x80\x15\x15\x81\x14a\x0B0W`\0\x80\xFD[`\0\x80`@\x83\x85\x03\x12\x15a\x0C\"W`\0\x80\xFD[\x825a\x0C-\x81a\x0B\x0EV[\x91P` \x83\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x0CJW`\0\x80\xFD[\x90\x84\x01\x90`\x80\x82\x87\x03\x12\x15a\x0C^W`\0\x80\xFD[a\x0Cfa\x0BbV[\x825\x82\x81\x11\x15a\x0CuW`\0\x80\xFD[\x83\x01\x91P`\x1F\x82\x01\x87\x13a\x0C\x88W`\0\x80\xFD[a\x0C\x97\x87\x835` \x85\x01a\x0B\x8BV[\x81R` \x83\x015\x91Pa\x0C\xA9\x82a\x0C\x01V[\x81` \x82\x01R`@\x83\x015`@\x82\x01R``\x83\x015``\x82\x01R\x80\x93PPPP\x92P\x92\x90PV[`\0\x80`@\x83\x85\x03\x12\x15a\x0C\xE3W`\0\x80\xFD[PP\x805\x92` \x90\x91\x015\x91PV[`\0` \x82\x84\x03\x12\x15a\r\x04W`\0\x80\xFD[\x815a\r\x0F\x81a\x0B\x0EV[\x93\x92PPPV[`\0\x80`@\x83\x85\x03\x12\x15a\r)W`\0\x80\xFD[\x825a\r4\x81a\x0B\x0EV[\x94` \x93\x90\x93\x015\x93PPPV[`\0[\x83\x81\x10\x15a\r]W\x81\x81\x01Q\x83\x82\x01R` \x01a\rEV[\x83\x81\x11\x15a\n\xE4WPP`\0\x91\x01RV[`\0\x81Q\x80\x84Ra\r\x86\x81` \x86\x01` \x86\x01a\rBV[`\x1F\x01`\x1F\x19\x16\x92\x90\x92\x01` \x01\x92\x91PPV[`\x80\x81R`\0a\r\xAD`\x80\x83\x01\x87a\rnV[\x94\x15\x15` \x83\x01RP`@\x81\x01\x92\x90\x92R``\x90\x91\x01R\x91\x90PV[`\0\x82`\x1F\x83\x01\x12a\r\xDAW`\0\x80\xFD[a\r\x0F\x83\x835` \x85\x01a\x0B\x8BV[`\0``\x82\x84\x03\x12\x15a\r\xFBW`\0\x80\xFD[`@Q``\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x82\x10\x81\x83\x11\x17\x15a\x0E\x1FWa\x0E\x1Fa\x0B3V[\x81`@R\x82\x93P\x845\x91Pa\x0E3\x82a\x0B\x0EV[\x81\x83R` \x85\x015` \x84\x01R`@\x85\x015\x91P\x80\x82\x11\x15a\x0ETW`\0\x80\xFD[Pa\x0Ea\x85\x82\x86\x01a\r\xC9V[`@\x83\x01RPP\x92\x91PPV[`\0\x80`@\x83\x85\x03\x12\x15a\x0E\x81W`\0\x80\xFD[\x825g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x0E\x99W`\0\x80\xFD[\x90\x84\x01\x90`\x80\x82\x87\x03\x12\x15a\x0E\xADW`\0\x80\xFD[a\x0E\xB5a\x0BbV[\x825a\x0E\xC0\x81a\x0B\x0EV[\x81R` \x83\x015\x82\x81\x11\x15a\x0E\xD4W`\0\x80\xFD[a\x0E\xE0\x88\x82\x86\x01a\r\xC9V[` \x83\x01RP`@\x83\x015`@\x82\x01R``\x83\x015\x92Pc\xFF\xFF\xFF\xFF\x83\x16\x83\x14a\x0F\tW`\0\x80\xFD[\x82``\x82\x01R\x80\x94PP` \x85\x015\x91P\x80\x82\x11\x15a\x0F'W`\0\x80\xFD[Pa\x0F4\x85\x82\x86\x01a\r\xE9V[\x91PP\x92P\x92\x90PV[`\x01\x81\x81\x1C\x90\x82\x16\x80a\x0FRW`\x7F\x82\x16\x91P[` \x82\x10\x81\x03a\x0F\x8BW\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`\"`\x04R`$`\0\xFD[P\x91\x90PV[`\x1F\x82\x11\x15a\x0F\xDBW`\0\x81\x81R` \x81 `\x1F\x85\x01`\x05\x1C\x81\x01` \x86\x10\x15a\x0F\xB8WP\x80[`\x1F\x85\x01`\x05\x1C\x82\x01\x91P[\x81\x81\x10\x15a\x0F\xD7W\x82\x81U`\x01\x01a\x0F\xC4V[PPP[PPPV[\x81Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x0F\xFAWa\x0F\xFAa\x0B3V[a\x10\x0E\x81a\x10\x08\x84Ta\x0F>V[\x84a\x0F\x91V[` \x80`\x1F\x83\x11`\x01\x81\x14a\x10aW`\0\x84\x15a\x10+WP\x85\x83\x01Q[\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF`\x03\x86\x90\x1B\x1C\x19\x16`\x01\x85\x90\x1B\x17\x85Ua\x0F\xD7V[`\0\x85\x81R` \x81 `\x1F\x19\x86\x16\x91[\x82\x81\x10\x15a\x10\x90W\x88\x86\x01Q\x82U\x94\x84\x01\x94`\x01\x90\x91\x01\x90\x84\x01a\x10qV[P\x85\x82\x10\x15a\x10\xCCW\x87\x85\x01Q\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF`\x03\x88\x90\x1B`\xF8\x16\x1C\x19\x16\x81U[PPPPP`\x01\x90\x81\x1B\x01\x90UPV[``\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84Q\x16``\x82\x01R`\0` \x85\x01Q`\x80\x80\x84\x01Ra\x11\x17`\xE0\x84\x01\x82a\rnV[\x90P`@\x86\x01Q`\xA0\x84\x01Rc\xFF\xFF\xFF\xFF``\x87\x01Q\x16`\xC0\x84\x01R\x84` \x84\x01R\x82\x81\x03`@\x84\x01Ra\x11K\x81\x85a\rnV[\x96\x95PPPPPPV[`\0` \x82\x84\x03\x12\x15a\x11gW`\0\x80\xFD[\x81Qa\r\x0F\x81a\x0C\x01V[`\0\x82\x19\x82\x11\x15a\x11\xACW\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`\x11`\x04R`$`\0\xFD[P\x01\x90V[`\0\x82Qa\x11\xC3\x81\x84` \x87\x01a\rBV[\x91\x90\x91\x01\x92\x91PPV\xFE`\x80`@R`@Q`Y8\x03\x80`Y\x839\x81\x01`@\x81\x90R`\x1E\x91`*V[\x80`\x01`\x01`\xA0\x1B\x03\x16\xFF[`\0` \x82\x84\x03\x12\x15`;W`\0\x80\xFD[\x81Q`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14`QW`\0\x80\xFD[\x93\x92PPPV\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**```solidity +struct AuthParameters { address module; bytes32 id; bytes proof; } +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct AuthParameters { + #[allow(missing_docs)] + pub module: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub id: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub proof: alloy::sol_types::private::Bytes, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::FixedBytes<32>, + alloy::sol_types::private::Bytes, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: AuthParameters) -> Self { + (value.module, value.id, value.proof) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for AuthParameters { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + module: tuple.0, + id: tuple.1, + proof: tuple.2, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolValue for AuthParameters { + type SolType = Self; + } + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for AuthParameters { + #[inline] + fn stv_to_tokens(&self) -> ::Token<'_> { + ( + ::tokenize( + &self.module, + ), + as alloy_sol_types::SolType>::tokenize(&self.id), + ::tokenize( + &self.proof, + ), + ) + } + #[inline] + fn stv_abi_encoded_size(&self) -> usize { + if let Some(size) = ::ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encoded_size(&tuple) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + ::eip712_hash_struct(self) + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + if let Some(size) = ::PACKED_ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for AuthParameters { + type RustType = Self; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = ::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + as alloy_sol_types::SolType>::valid_token(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + let tuple = as alloy_sol_types::SolType>::detokenize(token); + >>::from(tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolStruct for AuthParameters { + const NAME: &'static str = "AuthParameters"; + #[inline] + fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> { + alloy_sol_types::private::Cow::Borrowed( + "AuthParameters(address module,bytes32 id,bytes proof)", + ) + } + #[inline] + fn eip712_components() -> alloy_sol_types::private::Vec< + alloy_sol_types::private::Cow<'static, str>, + > { + alloy_sol_types::private::Vec::new() + } + #[inline] + fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> { + ::eip712_root_type() + } + #[inline] + fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec { + [ + ::eip712_data_word( + &self.module, + ) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.id) + .0, + ::eip712_data_word( + &self.proof, + ) + .0, + ] + .concat() + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for AuthParameters { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + 0usize + + ::topic_preimage_length( + &rust.module, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length(&rust.id) + + ::topic_preimage_length( + &rust.proof, + ) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + out.reserve( + ::topic_preimage_length(rust), + ); + ::encode_topic_preimage( + &rust.module, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage(&rust.id, out); + ::encode_topic_preimage( + &rust.proof, + out, + ); + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + let mut out = alloy_sol_types::private::Vec::new(); + ::encode_topic_preimage( + rust, + &mut out, + ); + alloy_sol_types::abi::token::WordToken( + alloy_sol_types::private::keccak256(out), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**```solidity +struct DripParameters { address recipient; bytes data; bytes32 nonce; uint32 gasLimit; } +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct DripParameters { + #[allow(missing_docs)] + pub recipient: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub data: alloy::sol_types::private::Bytes, + #[allow(missing_docs)] + pub nonce: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub gasLimit: u32, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Bytes, + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Uint<32>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Bytes, + alloy::sol_types::private::FixedBytes<32>, + u32, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: DripParameters) -> Self { + (value.recipient, value.data, value.nonce, value.gasLimit) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for DripParameters { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + recipient: tuple.0, + data: tuple.1, + nonce: tuple.2, + gasLimit: tuple.3, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolValue for DripParameters { + type SolType = Self; + } + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for DripParameters { + #[inline] + fn stv_to_tokens(&self) -> ::Token<'_> { + ( + ::tokenize( + &self.recipient, + ), + ::tokenize( + &self.data, + ), + as alloy_sol_types::SolType>::tokenize(&self.nonce), + as alloy_sol_types::SolType>::tokenize(&self.gasLimit), + ) + } + #[inline] + fn stv_abi_encoded_size(&self) -> usize { + if let Some(size) = ::ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encoded_size(&tuple) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + ::eip712_hash_struct(self) + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + if let Some(size) = ::PACKED_ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for DripParameters { + type RustType = Self; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = ::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + as alloy_sol_types::SolType>::valid_token(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + let tuple = as alloy_sol_types::SolType>::detokenize(token); + >>::from(tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolStruct for DripParameters { + const NAME: &'static str = "DripParameters"; + #[inline] + fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> { + alloy_sol_types::private::Cow::Borrowed( + "DripParameters(address recipient,bytes data,bytes32 nonce,uint32 gasLimit)", + ) + } + #[inline] + fn eip712_components() -> alloy_sol_types::private::Vec< + alloy_sol_types::private::Cow<'static, str>, + > { + alloy_sol_types::private::Vec::new() + } + #[inline] + fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> { + ::eip712_root_type() + } + #[inline] + fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec { + [ + ::eip712_data_word( + &self.recipient, + ) + .0, + ::eip712_data_word( + &self.data, + ) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.nonce) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.gasLimit) + .0, + ] + .concat() + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for DripParameters { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + 0usize + + ::topic_preimage_length( + &rust.recipient, + ) + + ::topic_preimage_length( + &rust.data, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length(&rust.nonce) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.gasLimit, + ) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + out.reserve( + ::topic_preimage_length(rust), + ); + ::encode_topic_preimage( + &rust.recipient, + out, + ); + ::encode_topic_preimage( + &rust.data, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.nonce, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.gasLimit, + out, + ); + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + let mut out = alloy_sol_types::private::Vec::new(); + ::encode_topic_preimage( + rust, + &mut out, + ); + alloy_sol_types::abi::token::WordToken( + alloy_sol_types::private::keccak256(out), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**```solidity +struct ModuleConfig { string name; bool enabled; uint256 ttl; uint256 amount; } +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ModuleConfig { + #[allow(missing_docs)] + pub name: alloy::sol_types::private::String, + #[allow(missing_docs)] + pub enabled: bool, + #[allow(missing_docs)] + pub ttl: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub amount: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::String, + alloy::sol_types::sol_data::Bool, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::String, + bool, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ModuleConfig) -> Self { + (value.name, value.enabled, value.ttl, value.amount) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ModuleConfig { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + name: tuple.0, + enabled: tuple.1, + ttl: tuple.2, + amount: tuple.3, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolValue for ModuleConfig { + type SolType = Self; + } + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for ModuleConfig { + #[inline] + fn stv_to_tokens(&self) -> ::Token<'_> { + ( + ::tokenize( + &self.name, + ), + ::tokenize( + &self.enabled, + ), + as alloy_sol_types::SolType>::tokenize(&self.ttl), + as alloy_sol_types::SolType>::tokenize(&self.amount), + ) + } + #[inline] + fn stv_abi_encoded_size(&self) -> usize { + if let Some(size) = ::ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encoded_size(&tuple) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + ::eip712_hash_struct(self) + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + if let Some(size) = ::PACKED_ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for ModuleConfig { + type RustType = Self; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = ::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + as alloy_sol_types::SolType>::valid_token(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + let tuple = as alloy_sol_types::SolType>::detokenize(token); + >>::from(tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolStruct for ModuleConfig { + const NAME: &'static str = "ModuleConfig"; + #[inline] + fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> { + alloy_sol_types::private::Cow::Borrowed( + "ModuleConfig(string name,bool enabled,uint256 ttl,uint256 amount)", + ) + } + #[inline] + fn eip712_components() -> alloy_sol_types::private::Vec< + alloy_sol_types::private::Cow<'static, str>, + > { + alloy_sol_types::private::Vec::new() + } + #[inline] + fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> { + ::eip712_root_type() + } + #[inline] + fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec { + [ + ::eip712_data_word( + &self.name, + ) + .0, + ::eip712_data_word( + &self.enabled, + ) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.ttl) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.amount) + .0, + ] + .concat() + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for ModuleConfig { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + 0usize + + ::topic_preimage_length( + &rust.name, + ) + + ::topic_preimage_length( + &rust.enabled, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length(&rust.ttl) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.amount, + ) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + out.reserve( + ::topic_preimage_length(rust), + ); + ::encode_topic_preimage( + &rust.name, + out, + ); + ::encode_topic_preimage( + &rust.enabled, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage(&rust.ttl, out); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.amount, + out, + ); + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + let mut out = alloy_sol_types::private::Vec::new(); + ::encode_topic_preimage( + rust, + &mut out, + ); + alloy_sol_types::abi::token::WordToken( + alloy_sol_types::private::keccak256(out), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `Drip(string,bytes32,uint256,address)` and selector `0x2cebdf1cc706a50e1b28bf2fc5cfbd7204747a3b82439b85721a474df3a355a4`. +```solidity +event Drip(string indexed authModule, bytes32 indexed userId, uint256 amount, address indexed recipient); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct Drip { + #[allow(missing_docs)] + pub authModule: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub userId: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub amount: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub recipient: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for Drip { + type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "Drip(string,bytes32,uint256,address)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 44u8, 235u8, 223u8, 28u8, 199u8, 6u8, 165u8, 14u8, 27u8, 40u8, 191u8, + 47u8, 197u8, 207u8, 189u8, 114u8, 4u8, 116u8, 122u8, 59u8, 130u8, 67u8, + 155u8, 133u8, 114u8, 26u8, 71u8, 77u8, 243u8, 163u8, 85u8, 164u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + authModule: topics.1, + userId: topics.2, + amount: data.0, + recipient: topics.3, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.amount), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + ( + Self::SIGNATURE_HASH.into(), + self.authModule.clone(), + self.userId.clone(), + self.recipient.clone(), + ) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = as alloy_sol_types::EventTopic>::encode_topic(&self.authModule); + out[2usize] = as alloy_sol_types::EventTopic>::encode_topic(&self.userId); + out[3usize] = ::encode_topic( + &self.recipient, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for Drip { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&Drip> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &Drip) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + /**Constructor`. +```solidity +constructor(address _admin); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct constructorCall { + #[allow(missing_docs)] + pub _admin: alloy::sol_types::private::Address, + } + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: constructorCall) -> Self { + (value._admin,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for constructorCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _admin: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolConstructor for constructorCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._admin, + ), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `ADMIN()` and selector `0x2a0acc6a`. +```solidity +function ADMIN() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ADMINCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`ADMIN()`](ADMINCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ADMINReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ADMINCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ADMINCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ADMINReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ADMINReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for ADMINCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ADMIN()"; + const SELECTOR: [u8; 4] = [42u8, 10u8, 204u8, 106u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: ADMINReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: ADMINReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `configure(address,(string,bool,uint256,uint256))` and selector `0x1cb81b88`. +```solidity +function configure(address _module, ModuleConfig memory _config) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct configureCall { + #[allow(missing_docs)] + pub _module: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _config: ::RustType, + } + ///Container type for the return parameters of the [`configure(address,(string,bool,uint256,uint256))`](configureCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct configureReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + ModuleConfig, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: configureCall) -> Self { + (value._module, value._config) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for configureCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _module: tuple.0, + _config: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: configureReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for configureReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl configureReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for configureCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address, ModuleConfig); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = configureReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "configure(address,(string,bool,uint256,uint256))"; + const SELECTOR: [u8; 4] = [28u8, 184u8, 27u8, 136u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._module, + ), + ::tokenize(&self._config), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + configureReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `drip((address,bytes,bytes32,uint32),(address,bytes32,bytes))` and selector `0xb1510e43`. +```solidity +function drip(DripParameters memory _params, AuthParameters memory _auth) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct dripCall { + #[allow(missing_docs)] + pub _params: ::RustType, + #[allow(missing_docs)] + pub _auth: ::RustType, + } + ///Container type for the return parameters of the [`drip((address,bytes,bytes32,uint32),(address,bytes32,bytes))`](dripCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct dripReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (DripParameters, AuthParameters); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: dripCall) -> Self { + (value._params, value._auth) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for dripCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _params: tuple.0, + _auth: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: dripReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for dripReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl dripReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for dripCall { + type Parameters<'a> = (DripParameters, AuthParameters); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = dripReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "drip((address,bytes,bytes32,uint32),(address,bytes32,bytes))"; + const SELECTOR: [u8; 4] = [177u8, 81u8, 14u8, 67u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._params, + ), + ::tokenize(&self._auth), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + dripReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `isModuleEnabled(address)` and selector `0x2d9ad53d`. +```solidity +function isModuleEnabled(address _module) external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct isModuleEnabledCall { + #[allow(missing_docs)] + pub _module: alloy::sol_types::private::Address, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`isModuleEnabled(address)`](isModuleEnabledCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct isModuleEnabledReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: isModuleEnabledCall) -> Self { + (value._module,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for isModuleEnabledCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _module: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: isModuleEnabledReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for isModuleEnabledReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for isModuleEnabledCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "isModuleEnabled(address)"; + const SELECTOR: [u8; 4] = [45u8, 154u8, 213u8, 61u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._module, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: isModuleEnabledReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: isModuleEnabledReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `modules(address)` and selector `0xa8ee49fe`. +```solidity +function modules(address) external view returns (string memory name, bool enabled, uint256 ttl, uint256 amount); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct modulesCall(pub alloy::sol_types::private::Address); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`modules(address)`](modulesCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct modulesReturn { + #[allow(missing_docs)] + pub name: alloy::sol_types::private::String, + #[allow(missing_docs)] + pub enabled: bool, + #[allow(missing_docs)] + pub ttl: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub amount: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: modulesCall) -> Self { + (value.0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for modulesCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self(tuple.0) + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::String, + alloy::sol_types::sol_data::Bool, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::String, + bool, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: modulesReturn) -> Self { + (value.name, value.enabled, value.ttl, value.amount) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for modulesReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + name: tuple.0, + enabled: tuple.1, + ttl: tuple.2, + amount: tuple.3, + } + } + } + } + impl modulesReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + ( + ::tokenize( + &self.name, + ), + ::tokenize( + &self.enabled, + ), + as alloy_sol_types::SolType>::tokenize(&self.ttl), + as alloy_sol_types::SolType>::tokenize(&self.amount), + ) + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for modulesCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = modulesReturn; + type ReturnTuple<'a> = ( + alloy::sol_types::sol_data::String, + alloy::sol_types::sol_data::Bool, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + ); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "modules(address)"; + const SELECTOR: [u8; 4] = [168u8, 238u8, 73u8, 254u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.0, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + modulesReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `nonces(bytes32,bytes32)` and selector `0x1d5d26bc`. +```solidity +function nonces(bytes32, bytes32) external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct noncesCall { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub _1: alloy::sol_types::private::FixedBytes<32>, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`nonces(bytes32,bytes32)`](noncesCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct noncesReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::FixedBytes<32>, + alloy::sol_types::private::FixedBytes<32>, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: noncesCall) -> Self { + (value._0, value._1) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for noncesCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0, _1: tuple.1 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: noncesReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for noncesReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for noncesCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "nonces(bytes32,bytes32)"; + const SELECTOR: [u8; 4] = [29u8, 93u8, 38u8, 188u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._0), + as alloy_sol_types::SolType>::tokenize(&self._1), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: noncesReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: noncesReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `timeouts(address,bytes32)` and selector `0x38757bfd`. +```solidity +function timeouts(address, bytes32) external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct timeoutsCall { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _1: alloy::sol_types::private::FixedBytes<32>, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`timeouts(address,bytes32)`](timeoutsCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct timeoutsReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::FixedBytes<32>, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: timeoutsCall) -> Self { + (value._0, value._1) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for timeoutsCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0, _1: tuple.1 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: timeoutsReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for timeoutsReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for timeoutsCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "timeouts(address,bytes32)"; + const SELECTOR: [u8; 4] = [56u8, 117u8, 123u8, 253u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._0, + ), + as alloy_sol_types::SolType>::tokenize(&self._1), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: timeoutsReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: timeoutsReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `withdraw(address,uint256)` and selector `0xf3fef3a3`. +```solidity +function withdraw(address _recipient, uint256 _amount) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct withdrawCall { + #[allow(missing_docs)] + pub _recipient: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _amount: alloy::sol_types::private::primitives::aliases::U256, + } + ///Container type for the return parameters of the [`withdraw(address,uint256)`](withdrawCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct withdrawReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: withdrawCall) -> Self { + (value._recipient, value._amount) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for withdrawCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _recipient: tuple.0, + _amount: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: withdrawReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for withdrawReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl withdrawReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for withdrawCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = withdrawReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "withdraw(address,uint256)"; + const SELECTOR: [u8; 4] = [243u8, 254u8, 243u8, 163u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._recipient, + ), + as alloy_sol_types::SolType>::tokenize(&self._amount), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + withdrawReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + ///Container for all the [`Faucet`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum FaucetCalls { + #[allow(missing_docs)] + ADMIN(ADMINCall), + #[allow(missing_docs)] + configure(configureCall), + #[allow(missing_docs)] + drip(dripCall), + #[allow(missing_docs)] + isModuleEnabled(isModuleEnabledCall), + #[allow(missing_docs)] + modules(modulesCall), + #[allow(missing_docs)] + nonces(noncesCall), + #[allow(missing_docs)] + timeouts(timeoutsCall), + #[allow(missing_docs)] + withdraw(withdrawCall), + } + impl FaucetCalls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [28u8, 184u8, 27u8, 136u8], + [29u8, 93u8, 38u8, 188u8], + [42u8, 10u8, 204u8, 106u8], + [45u8, 154u8, 213u8, 61u8], + [56u8, 117u8, 123u8, 253u8], + [168u8, 238u8, 73u8, 254u8], + [177u8, 81u8, 14u8, 67u8], + [243u8, 254u8, 243u8, 163u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(configure), + ::core::stringify!(nonces), + ::core::stringify!(ADMIN), + ::core::stringify!(isModuleEnabled), + ::core::stringify!(timeouts), + ::core::stringify!(modules), + ::core::stringify!(drip), + ::core::stringify!(withdraw), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for FaucetCalls { + const NAME: &'static str = "FaucetCalls"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 8usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::ADMIN(_) => ::SELECTOR, + Self::configure(_) => { + ::SELECTOR + } + Self::drip(_) => ::SELECTOR, + Self::isModuleEnabled(_) => { + ::SELECTOR + } + Self::modules(_) => ::SELECTOR, + Self::nonces(_) => ::SELECTOR, + Self::timeouts(_) => ::SELECTOR, + Self::withdraw(_) => ::SELECTOR, + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn(&[u8]) -> alloy_sol_types::Result] = &[ + { + fn configure(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(FaucetCalls::configure) + } + configure + }, + { + fn nonces(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(FaucetCalls::nonces) + } + nonces + }, + { + fn ADMIN(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(FaucetCalls::ADMIN) + } + ADMIN + }, + { + fn isModuleEnabled( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaucetCalls::isModuleEnabled) + } + isModuleEnabled + }, + { + fn timeouts(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(FaucetCalls::timeouts) + } + timeouts + }, + { + fn modules(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(FaucetCalls::modules) + } + modules + }, + { + fn drip(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(FaucetCalls::drip) + } + drip + }, + { + fn withdraw(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(FaucetCalls::withdraw) + } + withdraw + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn configure(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaucetCalls::configure) + } + configure + }, + { + fn nonces(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaucetCalls::nonces) + } + nonces + }, + { + fn ADMIN(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaucetCalls::ADMIN) + } + ADMIN + }, + { + fn isModuleEnabled( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaucetCalls::isModuleEnabled) + } + isModuleEnabled + }, + { + fn timeouts(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaucetCalls::timeouts) + } + timeouts + }, + { + fn modules(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaucetCalls::modules) + } + modules + }, + { + fn drip(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaucetCalls::drip) + } + drip + }, + { + fn withdraw(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaucetCalls::withdraw) + } + withdraw + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::ADMIN(inner) => { + ::abi_encoded_size(inner) + } + Self::configure(inner) => { + ::abi_encoded_size(inner) + } + Self::drip(inner) => { + ::abi_encoded_size(inner) + } + Self::isModuleEnabled(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::modules(inner) => { + ::abi_encoded_size(inner) + } + Self::nonces(inner) => { + ::abi_encoded_size(inner) + } + Self::timeouts(inner) => { + ::abi_encoded_size(inner) + } + Self::withdraw(inner) => { + ::abi_encoded_size(inner) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::ADMIN(inner) => { + ::abi_encode_raw(inner, out) + } + Self::configure(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::drip(inner) => { + ::abi_encode_raw(inner, out) + } + Self::isModuleEnabled(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::modules(inner) => { + ::abi_encode_raw(inner, out) + } + Self::nonces(inner) => { + ::abi_encode_raw(inner, out) + } + Self::timeouts(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::withdraw(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + } + } + } + ///Container for all the [`Faucet`](self) events. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum FaucetEvents { + #[allow(missing_docs)] + Drip(Drip), + } + impl FaucetEvents { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 32usize]] = &[ + [ + 44u8, 235u8, 223u8, 28u8, 199u8, 6u8, 165u8, 14u8, 27u8, 40u8, 191u8, + 47u8, 197u8, 207u8, 189u8, 114u8, 4u8, 116u8, 122u8, 59u8, 130u8, 67u8, + 155u8, 133u8, 114u8, 26u8, 71u8, 77u8, 243u8, 163u8, 85u8, 164u8, + ], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[::core::stringify!(Drip)]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolEventInterface for FaucetEvents { + const NAME: &'static str = "FaucetEvents"; + const COUNT: usize = 1usize; + fn decode_raw_log( + topics: &[alloy_sol_types::Word], + data: &[u8], + ) -> alloy_sol_types::Result { + match topics.first().copied() { + Some(::SIGNATURE_HASH) => { + ::decode_raw_log(topics, data) + .map(Self::Drip) + } + _ => { + alloy_sol_types::private::Err(alloy_sol_types::Error::InvalidLog { + name: ::NAME, + log: alloy_sol_types::private::Box::new( + alloy_sol_types::private::LogData::new_unchecked( + topics.to_vec(), + data.to_vec().into(), + ), + ), + }) + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for FaucetEvents { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + match self { + Self::Drip(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + } + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + match self { + Self::Drip(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`Faucet`](self) contract instance. + +See the [wrapper's documentation](`FaucetInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> FaucetInstance { + FaucetInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + _admin: alloy::sol_types::private::Address, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + FaucetInstance::::deploy(__provider, _admin) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + _admin: alloy::sol_types::private::Address, + ) -> alloy_contract::RawCallBuilder { + FaucetInstance::::deploy_builder(__provider, _admin) + } + /**A [`Faucet`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`Faucet`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct FaucetInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for FaucetInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("FaucetInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > FaucetInstance { + /**Creates a new wrapper around an on-chain [`Faucet`](self) contract instance. + +See the [wrapper's documentation](`FaucetInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + _admin: alloy::sol_types::private::Address, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider, _admin); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder( + __provider: P, + _admin: alloy::sol_types::private::Address, + ) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + [ + &BYTECODE[..], + &alloy_sol_types::SolConstructor::abi_encode( + &constructorCall { _admin }, + )[..], + ] + .concat() + .into(), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl FaucetInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> FaucetInstance { + FaucetInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > FaucetInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`ADMIN`] function. + pub fn ADMIN(&self) -> alloy_contract::SolCallBuilder<&P, ADMINCall, N> { + self.call_builder(&ADMINCall) + } + ///Creates a new call builder for the [`configure`] function. + pub fn configure( + &self, + _module: alloy::sol_types::private::Address, + _config: ::RustType, + ) -> alloy_contract::SolCallBuilder<&P, configureCall, N> { + self.call_builder(&configureCall { _module, _config }) + } + ///Creates a new call builder for the [`drip`] function. + pub fn drip( + &self, + _params: ::RustType, + _auth: ::RustType, + ) -> alloy_contract::SolCallBuilder<&P, dripCall, N> { + self.call_builder(&dripCall { _params, _auth }) + } + ///Creates a new call builder for the [`isModuleEnabled`] function. + pub fn isModuleEnabled( + &self, + _module: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, isModuleEnabledCall, N> { + self.call_builder(&isModuleEnabledCall { _module }) + } + ///Creates a new call builder for the [`modules`] function. + pub fn modules( + &self, + _0: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, modulesCall, N> { + self.call_builder(&modulesCall(_0)) + } + ///Creates a new call builder for the [`nonces`] function. + pub fn nonces( + &self, + _0: alloy::sol_types::private::FixedBytes<32>, + _1: alloy::sol_types::private::FixedBytes<32>, + ) -> alloy_contract::SolCallBuilder<&P, noncesCall, N> { + self.call_builder(&noncesCall { _0, _1 }) + } + ///Creates a new call builder for the [`timeouts`] function. + pub fn timeouts( + &self, + _0: alloy::sol_types::private::Address, + _1: alloy::sol_types::private::FixedBytes<32>, + ) -> alloy_contract::SolCallBuilder<&P, timeoutsCall, N> { + self.call_builder(&timeoutsCall { _0, _1 }) + } + ///Creates a new call builder for the [`withdraw`] function. + pub fn withdraw( + &self, + _recipient: alloy::sol_types::private::Address, + _amount: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, withdrawCall, N> { + self.call_builder( + &withdrawCall { + _recipient, + _amount, + }, + ) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > FaucetInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + ///Creates a new event filter for the [`Drip`] event. + pub fn Drip_filter(&self) -> alloy_contract::Event<&P, Drip, N> { + self.event_filter::() + } + } +} diff --git a/bindings/rust/src/fault_dispute_game.rs b/bindings/rust/src/fault_dispute_game.rs new file mode 100644 index 000000000..446fd14a4 --- /dev/null +++ b/bindings/rust/src/fault_dispute_game.rs @@ -0,0 +1,19438 @@ +///Module containing a contract's types and functions. +/** + +```solidity +library Types { + struct OutputRootProof { bytes32 version; bytes32 stateRoot; bytes32 messagePasserStorageRoot; bytes32 latestBlockhash; } +} +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod Types { + use super::*; + use alloy::sol_types as alloy_sol_types; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**```solidity +struct OutputRootProof { bytes32 version; bytes32 stateRoot; bytes32 messagePasserStorageRoot; bytes32 latestBlockhash; } +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct OutputRootProof { + #[allow(missing_docs)] + pub version: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub stateRoot: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub messagePasserStorageRoot: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub latestBlockhash: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::FixedBytes<32>, + alloy::sol_types::private::FixedBytes<32>, + alloy::sol_types::private::FixedBytes<32>, + alloy::sol_types::private::FixedBytes<32>, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: OutputRootProof) -> Self { + ( + value.version, + value.stateRoot, + value.messagePasserStorageRoot, + value.latestBlockhash, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for OutputRootProof { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + version: tuple.0, + stateRoot: tuple.1, + messagePasserStorageRoot: tuple.2, + latestBlockhash: tuple.3, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolValue for OutputRootProof { + type SolType = Self; + } + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for OutputRootProof { + #[inline] + fn stv_to_tokens(&self) -> ::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.version), + as alloy_sol_types::SolType>::tokenize(&self.stateRoot), + as alloy_sol_types::SolType>::tokenize( + &self.messagePasserStorageRoot, + ), + as alloy_sol_types::SolType>::tokenize(&self.latestBlockhash), + ) + } + #[inline] + fn stv_abi_encoded_size(&self) -> usize { + if let Some(size) = ::ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encoded_size(&tuple) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + ::eip712_hash_struct(self) + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + if let Some(size) = ::PACKED_ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for OutputRootProof { + type RustType = Self; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = ::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + as alloy_sol_types::SolType>::valid_token(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + let tuple = as alloy_sol_types::SolType>::detokenize(token); + >>::from(tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolStruct for OutputRootProof { + const NAME: &'static str = "OutputRootProof"; + #[inline] + fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> { + alloy_sol_types::private::Cow::Borrowed( + "OutputRootProof(bytes32 version,bytes32 stateRoot,bytes32 messagePasserStorageRoot,bytes32 latestBlockhash)", + ) + } + #[inline] + fn eip712_components() -> alloy_sol_types::private::Vec< + alloy_sol_types::private::Cow<'static, str>, + > { + alloy_sol_types::private::Vec::new() + } + #[inline] + fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> { + ::eip712_root_type() + } + #[inline] + fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec { + [ + as alloy_sol_types::SolType>::eip712_data_word(&self.version) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.stateRoot) + .0, + as alloy_sol_types::SolType>::eip712_data_word( + &self.messagePasserStorageRoot, + ) + .0, + as alloy_sol_types::SolType>::eip712_data_word( + &self.latestBlockhash, + ) + .0, + ] + .concat() + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for OutputRootProof { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + 0usize + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.version, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.stateRoot, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.messagePasserStorageRoot, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.latestBlockhash, + ) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + out.reserve( + ::topic_preimage_length(rust), + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.version, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.stateRoot, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.messagePasserStorageRoot, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.latestBlockhash, + out, + ); + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + let mut out = alloy_sol_types::private::Vec::new(); + ::encode_topic_preimage( + rust, + &mut out, + ); + alloy_sol_types::abi::token::WordToken( + alloy_sol_types::private::keccak256(out), + ) + } + } + }; + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`Types`](self) contract instance. + +See the [wrapper's documentation](`TypesInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(address: alloy_sol_types::private::Address, __provider: P) -> TypesInstance { + TypesInstance::::new(address, __provider) + } + /**A [`Types`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`Types`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct TypesInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for TypesInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("TypesInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > TypesInstance { + /**Creates a new wrapper around an on-chain [`Types`](self) contract instance. + +See the [wrapper's documentation](`TypesInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl TypesInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> TypesInstance { + TypesInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > TypesInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > TypesInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + } +} +/** + +Generated by the following Solidity interface... +```solidity +library Types { + struct OutputRootProof { + bytes32 version; + bytes32 stateRoot; + bytes32 messagePasserStorageRoot; + bytes32 latestBlockhash; + } +} + +interface FaultDisputeGame { + type BondDistributionMode is uint8; + type GameStatus is uint8; + type Claim is bytes32; + type Clock is uint128; + type Duration is uint64; + type GameType is uint32; + type Hash is bytes32; + type Position is uint128; + type Timestamp is uint64; + struct GameConstructorParams { + GameType gameType; + Claim absolutePrestate; + uint256 maxGameDepth; + uint256 splitDepth; + Duration clockExtension; + Duration maxClockDuration; + address vm; + address weth; + address anchorStateRegistry; + uint256 l2ChainId; + } + + error AlreadyInitialized(); + error AnchorRootNotFound(); + error BadExtraData(); + error BlockNumberMatches(); + error BondTransferFailed(); + error CannotDefendRootClaim(); + error ClaimAboveSplit(); + error ClaimAlreadyExists(); + error ClaimAlreadyResolved(); + error ClockNotExpired(); + error ClockTimeExceeded(); + error ContentLengthMismatch(); + error DuplicateStep(); + error EmptyItem(); + error GameDepthExceeded(); + error GameNotFinalized(); + error GameNotInProgress(); + error GameNotResolved(); + error GamePaused(); + error IncorrectBondAmount(); + error InvalidBondDistributionMode(); + error InvalidChallengePeriod(); + error InvalidClockExtension(); + error InvalidDataRemainder(); + error InvalidDisputedClaimIndex(); + error InvalidHeader(); + error InvalidHeaderRLP(); + error InvalidLocalIdent(); + error InvalidOutputRootProof(); + error InvalidParent(); + error InvalidPrestate(); + error InvalidSplitDepth(); + error L2BlockNumberChallenged(); + error MaxDepthTooLarge(); + error NoCreditToClaim(); + error OutOfOrderResolution(); + error ReservedGameType(); + error UnexpectedList(); + error UnexpectedRootClaim(Claim rootClaim); + error UnexpectedString(); + error ValidStep(); + + event GameClosed(BondDistributionMode bondDistributionMode); + event Move(uint256 indexed parentIndex, Claim indexed claim, address indexed claimant); + event Resolved(GameStatus indexed status); + + constructor(GameConstructorParams _params); + + function absolutePrestate() external view returns (Claim absolutePrestate_); + function addLocalData(uint256 _ident, uint256 _execLeafIdx, uint256 _partOffset) external; + function anchorStateRegistry() external view returns (address registry_); + function attack(Claim _disputed, uint256 _parentIndex, Claim _claim) external payable; + function bondDistributionMode() external view returns (BondDistributionMode); + function challengeRootL2Block(Types.OutputRootProof memory _outputRootProof, bytes memory _headerRLP) external; + function claimCredit(address _recipient) external; + function claimData(uint256) external view returns (uint32 parentIndex, address counteredBy, address claimant, uint128 bond, Claim claim, Position position, Clock clock); + function claimDataLen() external view returns (uint256 len_); + function claims(Hash) external view returns (bool); + function clockExtension() external view returns (Duration clockExtension_); + function closeGame() external; + function createdAt() external view returns (Timestamp); + function credit(address _recipient) external view returns (uint256 credit_); + function defend(Claim _disputed, uint256 _parentIndex, Claim _claim) external payable; + function extraData() external pure returns (bytes memory extraData_); + function gameCreator() external pure returns (address creator_); + function gameData() external view returns (GameType gameType_, Claim rootClaim_, bytes memory extraData_); + function gameType() external view returns (GameType gameType_); + function getChallengerDuration(uint256 _claimIndex) external view returns (Duration duration_); + function getNumToResolve(uint256 _claimIndex) external view returns (uint256 numRemainingChildren_); + function getRequiredBond(Position _position) external view returns (uint256 requiredBond_); + function hasUnlockedCredit(address) external view returns (bool); + function initialize() external payable; + function l1Head() external pure returns (Hash l1Head_); + function l2BlockNumber() external pure returns (uint256 l2BlockNumber_); + function l2BlockNumberChallenged() external view returns (bool); + function l2BlockNumberChallenger() external view returns (address); + function l2ChainId() external view returns (uint256 l2ChainId_); + function l2SequenceNumber() external pure returns (uint256 l2SequenceNumber_); + function maxClockDuration() external view returns (Duration maxClockDuration_); + function maxGameDepth() external view returns (uint256 maxGameDepth_); + function move(Claim _disputed, uint256 _challengeIndex, Claim _claim, bool _isAttack) external payable; + function normalModeCredit(address) external view returns (uint256); + function refundModeCredit(address) external view returns (uint256); + function resolutionCheckpoints(uint256) external view returns (bool initialCheckpointComplete, uint32 subgameIndex, Position leftmostPosition, address counteredBy); + function resolve() external returns (GameStatus status_); + function resolveClaim(uint256 _claimIndex, uint256 _numToResolve) external; + function resolvedAt() external view returns (Timestamp); + function resolvedSubgames(uint256) external view returns (bool); + function rootClaim() external pure returns (Claim rootClaim_); + function splitDepth() external view returns (uint256 splitDepth_); + function startingBlockNumber() external view returns (uint256 startingBlockNumber_); + function startingOutputRoot() external view returns (Hash root, uint256 l2SequenceNumber); + function startingRootHash() external view returns (Hash startingRootHash_); + function status() external view returns (GameStatus); + function step(uint256 _claimIndex, bool _isAttack, bytes memory _stateData, bytes memory _proof) external; + function subgames(uint256, uint256) external view returns (uint256); + function version() external pure returns (string memory); + function vm() external view returns (address vm_); + function wasRespectedGameTypeWhenCreated() external view returns (bool); + function weth() external view returns (address weth_); +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "constructor", + "inputs": [ + { + "name": "_params", + "type": "tuple", + "internalType": "struct FaultDisputeGame.GameConstructorParams", + "components": [ + { + "name": "gameType", + "type": "uint32", + "internalType": "GameType" + }, + { + "name": "absolutePrestate", + "type": "bytes32", + "internalType": "Claim" + }, + { + "name": "maxGameDepth", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "splitDepth", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "clockExtension", + "type": "uint64", + "internalType": "Duration" + }, + { + "name": "maxClockDuration", + "type": "uint64", + "internalType": "Duration" + }, + { + "name": "vm", + "type": "address", + "internalType": "contract IBigStepper" + }, + { + "name": "weth", + "type": "address", + "internalType": "contract IDelayedWETH" + }, + { + "name": "anchorStateRegistry", + "type": "address", + "internalType": "contract IAnchorStateRegistry" + }, + { + "name": "l2ChainId", + "type": "uint256", + "internalType": "uint256" + } + ] + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "absolutePrestate", + "inputs": [], + "outputs": [ + { + "name": "absolutePrestate_", + "type": "bytes32", + "internalType": "Claim" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "addLocalData", + "inputs": [ + { + "name": "_ident", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_execLeafIdx", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_partOffset", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "anchorStateRegistry", + "inputs": [], + "outputs": [ + { + "name": "registry_", + "type": "address", + "internalType": "contract IAnchorStateRegistry" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "attack", + "inputs": [ + { + "name": "_disputed", + "type": "bytes32", + "internalType": "Claim" + }, + { + "name": "_parentIndex", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_claim", + "type": "bytes32", + "internalType": "Claim" + } + ], + "outputs": [], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "bondDistributionMode", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint8", + "internalType": "enum BondDistributionMode" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "challengeRootL2Block", + "inputs": [ + { + "name": "_outputRootProof", + "type": "tuple", + "internalType": "struct Types.OutputRootProof", + "components": [ + { + "name": "version", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "stateRoot", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "messagePasserStorageRoot", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "latestBlockhash", + "type": "bytes32", + "internalType": "bytes32" + } + ] + }, + { + "name": "_headerRLP", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "claimCredit", + "inputs": [ + { + "name": "_recipient", + "type": "address", + "internalType": "address" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "claimData", + "inputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "parentIndex", + "type": "uint32", + "internalType": "uint32" + }, + { + "name": "counteredBy", + "type": "address", + "internalType": "address" + }, + { + "name": "claimant", + "type": "address", + "internalType": "address" + }, + { + "name": "bond", + "type": "uint128", + "internalType": "uint128" + }, + { + "name": "claim", + "type": "bytes32", + "internalType": "Claim" + }, + { + "name": "position", + "type": "uint128", + "internalType": "Position" + }, + { + "name": "clock", + "type": "uint128", + "internalType": "Clock" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "claimDataLen", + "inputs": [], + "outputs": [ + { + "name": "len_", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "claims", + "inputs": [ + { + "name": "", + "type": "bytes32", + "internalType": "Hash" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "clockExtension", + "inputs": [], + "outputs": [ + { + "name": "clockExtension_", + "type": "uint64", + "internalType": "Duration" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "closeGame", + "inputs": [], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "createdAt", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint64", + "internalType": "Timestamp" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "credit", + "inputs": [ + { + "name": "_recipient", + "type": "address", + "internalType": "address" + } + ], + "outputs": [ + { + "name": "credit_", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "defend", + "inputs": [ + { + "name": "_disputed", + "type": "bytes32", + "internalType": "Claim" + }, + { + "name": "_parentIndex", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_claim", + "type": "bytes32", + "internalType": "Claim" + } + ], + "outputs": [], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "extraData", + "inputs": [], + "outputs": [ + { + "name": "extraData_", + "type": "bytes", + "internalType": "bytes" + } + ], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "gameCreator", + "inputs": [], + "outputs": [ + { + "name": "creator_", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "gameData", + "inputs": [], + "outputs": [ + { + "name": "gameType_", + "type": "uint32", + "internalType": "GameType" + }, + { + "name": "rootClaim_", + "type": "bytes32", + "internalType": "Claim" + }, + { + "name": "extraData_", + "type": "bytes", + "internalType": "bytes" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "gameType", + "inputs": [], + "outputs": [ + { + "name": "gameType_", + "type": "uint32", + "internalType": "GameType" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "getChallengerDuration", + "inputs": [ + { + "name": "_claimIndex", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "duration_", + "type": "uint64", + "internalType": "Duration" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "getNumToResolve", + "inputs": [ + { + "name": "_claimIndex", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "numRemainingChildren_", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "getRequiredBond", + "inputs": [ + { + "name": "_position", + "type": "uint128", + "internalType": "Position" + } + ], + "outputs": [ + { + "name": "requiredBond_", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "hasUnlockedCredit", + "inputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "initialize", + "inputs": [], + "outputs": [], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "l1Head", + "inputs": [], + "outputs": [ + { + "name": "l1Head_", + "type": "bytes32", + "internalType": "Hash" + } + ], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "l2BlockNumber", + "inputs": [], + "outputs": [ + { + "name": "l2BlockNumber_", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "l2BlockNumberChallenged", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "l2BlockNumberChallenger", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "l2ChainId", + "inputs": [], + "outputs": [ + { + "name": "l2ChainId_", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "l2SequenceNumber", + "inputs": [], + "outputs": [ + { + "name": "l2SequenceNumber_", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "maxClockDuration", + "inputs": [], + "outputs": [ + { + "name": "maxClockDuration_", + "type": "uint64", + "internalType": "Duration" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "maxGameDepth", + "inputs": [], + "outputs": [ + { + "name": "maxGameDepth_", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "move", + "inputs": [ + { + "name": "_disputed", + "type": "bytes32", + "internalType": "Claim" + }, + { + "name": "_challengeIndex", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_claim", + "type": "bytes32", + "internalType": "Claim" + }, + { + "name": "_isAttack", + "type": "bool", + "internalType": "bool" + } + ], + "outputs": [], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "normalModeCredit", + "inputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "refundModeCredit", + "inputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "resolutionCheckpoints", + "inputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "initialCheckpointComplete", + "type": "bool", + "internalType": "bool" + }, + { + "name": "subgameIndex", + "type": "uint32", + "internalType": "uint32" + }, + { + "name": "leftmostPosition", + "type": "uint128", + "internalType": "Position" + }, + { + "name": "counteredBy", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "resolve", + "inputs": [], + "outputs": [ + { + "name": "status_", + "type": "uint8", + "internalType": "enum GameStatus" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "resolveClaim", + "inputs": [ + { + "name": "_claimIndex", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_numToResolve", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "resolvedAt", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint64", + "internalType": "Timestamp" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "resolvedSubgames", + "inputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "rootClaim", + "inputs": [], + "outputs": [ + { + "name": "rootClaim_", + "type": "bytes32", + "internalType": "Claim" + } + ], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "splitDepth", + "inputs": [], + "outputs": [ + { + "name": "splitDepth_", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "startingBlockNumber", + "inputs": [], + "outputs": [ + { + "name": "startingBlockNumber_", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "startingOutputRoot", + "inputs": [], + "outputs": [ + { + "name": "root", + "type": "bytes32", + "internalType": "Hash" + }, + { + "name": "l2SequenceNumber", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "startingRootHash", + "inputs": [], + "outputs": [ + { + "name": "startingRootHash_", + "type": "bytes32", + "internalType": "Hash" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "status", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint8", + "internalType": "enum GameStatus" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "step", + "inputs": [ + { + "name": "_claimIndex", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_isAttack", + "type": "bool", + "internalType": "bool" + }, + { + "name": "_stateData", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "_proof", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "subgames", + "inputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "version", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "vm", + "inputs": [], + "outputs": [ + { + "name": "vm_", + "type": "address", + "internalType": "contract IBigStepper" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "wasRespectedGameTypeWhenCreated", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "weth", + "inputs": [], + "outputs": [ + { + "name": "weth_", + "type": "address", + "internalType": "contract IDelayedWETH" + } + ], + "stateMutability": "view" + }, + { + "type": "event", + "name": "GameClosed", + "inputs": [ + { + "name": "bondDistributionMode", + "type": "uint8", + "indexed": false, + "internalType": "enum BondDistributionMode" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "Move", + "inputs": [ + { + "name": "parentIndex", + "type": "uint256", + "indexed": true, + "internalType": "uint256" + }, + { + "name": "claim", + "type": "bytes32", + "indexed": true, + "internalType": "Claim" + }, + { + "name": "claimant", + "type": "address", + "indexed": true, + "internalType": "address" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "Resolved", + "inputs": [ + { + "name": "status", + "type": "uint8", + "indexed": true, + "internalType": "enum GameStatus" + } + ], + "anonymous": false + }, + { + "type": "error", + "name": "AlreadyInitialized", + "inputs": [] + }, + { + "type": "error", + "name": "AnchorRootNotFound", + "inputs": [] + }, + { + "type": "error", + "name": "BadExtraData", + "inputs": [] + }, + { + "type": "error", + "name": "BlockNumberMatches", + "inputs": [] + }, + { + "type": "error", + "name": "BondTransferFailed", + "inputs": [] + }, + { + "type": "error", + "name": "CannotDefendRootClaim", + "inputs": [] + }, + { + "type": "error", + "name": "ClaimAboveSplit", + "inputs": [] + }, + { + "type": "error", + "name": "ClaimAlreadyExists", + "inputs": [] + }, + { + "type": "error", + "name": "ClaimAlreadyResolved", + "inputs": [] + }, + { + "type": "error", + "name": "ClockNotExpired", + "inputs": [] + }, + { + "type": "error", + "name": "ClockTimeExceeded", + "inputs": [] + }, + { + "type": "error", + "name": "ContentLengthMismatch", + "inputs": [] + }, + { + "type": "error", + "name": "DuplicateStep", + "inputs": [] + }, + { + "type": "error", + "name": "EmptyItem", + "inputs": [] + }, + { + "type": "error", + "name": "GameDepthExceeded", + "inputs": [] + }, + { + "type": "error", + "name": "GameNotFinalized", + "inputs": [] + }, + { + "type": "error", + "name": "GameNotInProgress", + "inputs": [] + }, + { + "type": "error", + "name": "GameNotResolved", + "inputs": [] + }, + { + "type": "error", + "name": "GamePaused", + "inputs": [] + }, + { + "type": "error", + "name": "IncorrectBondAmount", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidBondDistributionMode", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidChallengePeriod", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidClockExtension", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidDataRemainder", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidDisputedClaimIndex", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidHeader", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidHeaderRLP", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidLocalIdent", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidOutputRootProof", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidParent", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidPrestate", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidSplitDepth", + "inputs": [] + }, + { + "type": "error", + "name": "L2BlockNumberChallenged", + "inputs": [] + }, + { + "type": "error", + "name": "MaxDepthTooLarge", + "inputs": [] + }, + { + "type": "error", + "name": "NoCreditToClaim", + "inputs": [] + }, + { + "type": "error", + "name": "OutOfOrderResolution", + "inputs": [] + }, + { + "type": "error", + "name": "ReservedGameType", + "inputs": [] + }, + { + "type": "error", + "name": "UnexpectedList", + "inputs": [] + }, + { + "type": "error", + "name": "UnexpectedRootClaim", + "inputs": [ + { + "name": "rootClaim", + "type": "bytes32", + "internalType": "Claim" + } + ] + }, + { + "type": "error", + "name": "UnexpectedString", + "inputs": [] + }, + { + "type": "error", + "name": "ValidStep", + "inputs": [] + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod FaultDisputeGame { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x6101c06040523480156200001257600080fd5b50604051620062933803806200629383398101604081905262000035916200052e565b620000436001607e62000601565b60ff16816040015111156200006b57604051633beff19960e11b815260040160405180910390fd5b60001981606001511480620000955750604081015160608201516200009290600162000627565b10155b15620000b45760405163e62ccf3960e01b815260040160405180910390fd5b600281606001511015620000db5760405163e62ccf3960e01b815260040160405180910390fd5b6001600160401b0380168160c001516001600160a01b0316637dc0d1d06040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000128573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200014e919062000642565b6001600160a01b031663f3f480d96040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200018c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001b2919062000662565b1115620001d25760405163b4e1243360e01b815260040160405180910390fd5b6000620001f782608001516001600160401b03166200048060201b62000c701760201c565b6200020d906001600160401b031660026200067c565b905060008260c001516001600160a01b0316637dc0d1d06040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000254573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200027a919062000642565b6001600160a01b031663f3f480d96040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002b8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002de919062000662565b6200030184608001516001600160401b03166200048060201b62000c701760201c565b6001600160401b031662000316919062000627565b905060006200033183836200048360201b62003aa61760201c565b90506001600160401b038111156200035c5760405163235dfb2b60e21b815260040160405180910390fd5b6200037f8460a001516001600160401b03166200048060201b62000c701760201c565b6001600160401b0316816001600160401b03161115620003b25760405163235dfb2b60e21b815260040160405180910390fd5b63ffffffff8016620003d9856000015163ffffffff166200048060201b62000c701760201c565b63ffffffff1603620003fe5760405163073ed16760e31b815260040160405180910390fd5b5050815163ffffffff1661012090815260208301516080908152604084015160a0908152606085015160c0908152918501516001600160401b039081166101a052908501511660e0908152908401516001600160a01b03908116610100908152918501518116610140529084015116610160529091015161018052506200069e565b90565b60008183101562000495578162000497565b825b9392505050565b60405161014081016001600160401b0381118282101715620004d057634e487b7160e01b600052604160045260246000fd5b60405290565b805163ffffffff81168114620004eb57600080fd5b919050565b80516001600160401b0381168114620004eb57600080fd5b6001600160a01b03811681146200051e57600080fd5b50565b8051620004eb8162000508565b600061014082840312156200054257600080fd5b6200054c6200049e565b6200055783620004d6565b81526020830151602082015260408301516040820152606083015160608201526200058560808401620004f0565b60808201526200059860a08401620004f0565b60a0820152620005ab60c0840162000521565b60c0820152620005be60e0840162000521565b60e0820152610100620005d381850162000521565b90820152610120928301519281019290925250919050565b634e487b7160e01b600052601160045260246000fd5b600060ff821660ff8416808210156200061e576200061e620005eb565b90039392505050565b600082198211156200063d576200063d620005eb565b500190565b6000602082840312156200065557600080fd5b8151620004978162000508565b6000602082840312156200067557600080fd5b5051919050565b6000816000190483118215151615620006995762000699620005eb565b500290565b60805160a05160c05160e05161010051610120516101405161016051610180516101a051615a53620008406000396000818161072f01528181611e7c01528181611ee70152611f1a015260008181610a4901526139e40152600081816106a5015281816123c60152818161250a015281816125e401528181612673015281816127b50152612c68015260008181610593015281816117aa015281816118a6015281816122830152612b6f0152600081816108cc01528181612c3f0152613a6601526000818161053001528181611d950152818161341501526136e6015260008181610a9c01528181610f0301528181611d0501528181611f4a01528181611fa901528181612e2b0152612e6d015260008181610acf01528181611b4e01528181611c7401528181611eb80152818161328c0152818161388a01528181613ea50152818161457e0152818161469a01528181614779015261482c015260008181610b7601528181611c1701528181611d6901528181612f1901528181612f9f015281816131a401526132ad0152600081816107f101526133300152615a536000f3fe60806040526004361061033f5760003560e01c806370872aa5116101b0578063c395e1ca116100ec578063dabd396d11610095578063f8f43ff61161006f578063f8f43ff614610b23578063fa24f74314610b43578063fa315aa914610b67578063fe2bbeb214610b9a57600080fd5b8063dabd396d14610a8d578063ec5e630814610ac0578063eff0f59214610af357600080fd5b8063d5d44d80116100c6578063d5d44d8014610a1a578063d6ae3cd514610a3a578063d8cc1a3c14610a6d57600080fd5b8063c395e1ca14610965578063c6f0308c14610985578063cf09e0d0146109f957600080fd5b80638d450a9511610159578063bbdc02db11610133578063bbdc02db146108b5578063bcef3b55146108f6578063bd8da95614610918578063c0d8bb741461093857600080fd5b80638d450a95146107e257806399735e32146107c0578063a445ece61461081557600080fd5b80638129fc1c1161018a5780638129fc1c146107a35780638980e0cc146107ab5780638b85902b146107c057600080fd5b806370872aa514610766578063786b844b1461077b5780637b0f0adc1461079057600080fd5b80633e3ac9121161027f5780635a5fa2d91161022857806360e274641161020257806360e27464146106de5780636361506d146106fe5780636b6716c0146107205780636f0344091461075357600080fd5b80635a5fa2d9146106765780635c0cba3314610696578063609d3334146106c957600080fd5b8063529d6a8c11610259578063529d6a8c146105ca57806354fd4d50146105f757806357da950e1461064657600080fd5b80633e3ac912146105545780633fc8cef314610584578063472777c6146105b757600080fd5b806325fc2ace116102ec57806330dbe570116102c657806330dbe570146104ad578063378dd48c146104e557806337b1b229146104ff5780633a7684631461052157600080fd5b806325fc2ace146104595780632810e1d6146104785780632ad69aeb1461048d57600080fd5b8063200d2ed21161031d578063200d2ed2146103d1578063222abf45146103ff578063250e69bd1461043f57600080fd5b8063019351301461034457806303c2924d1461036657806319effeb414610386575b600080fd5b34801561035057600080fd5b5061036461035f3660046152c3565b610bca565b005b34801561037257600080fd5b5061036461038136600461531e565b610e89565b34801561039257600080fd5b506000546103b39068010000000000000000900467ffffffffffffffff1681565b60405167ffffffffffffffff90911681526020015b60405180910390f35b3480156103dd57600080fd5b506000546103f290600160801b900460ff1681565b6040516103c89190615377565b34801561040b57600080fd5b5061042f61041a36600461539f565b600c6020526000908152604090205460ff1681565b60405190151581526020016103c8565b34801561044b57600080fd5b50600a5461042f9060ff1681565b34801561046557600080fd5b506008545b6040519081526020016103c8565b34801561048457600080fd5b506103f2611411565b34801561049957600080fd5b5061046a6104a836600461531e565b6115e9565b3480156104b957600080fd5b506001546104cd906001600160a01b031681565b6040516001600160a01b0390911681526020016103c8565b3480156104f157600080fd5b50600d546103f29060ff1681565b34801561050b57600080fd5b503660011981013560f01c90033560601c6104cd565b34801561052d57600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006104cd565b34801561056057600080fd5b5060005461042f907201000000000000000000000000000000000000900460ff1681565b34801561059057600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006104cd565b6103646105c53660046153bc565b61161f565b3480156105d657600080fd5b5061046a6105e536600461539f565b60036020526000908152604090205481565b34801561060357600080fd5b5060408051808201909152600581527f312e382e3000000000000000000000000000000000000000000000000000000060208201525b6040516103c89190615453565b34801561065257600080fd5b50600854600954610661919082565b604080519283526020830191909152016103c8565b34801561068257600080fd5b5061046a610691366004615466565b611631565b3480156106a257600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006104cd565b3480156106d557600080fd5b5061063961166b565b3480156106ea57600080fd5b506103646106f936600461539f565b611679565b34801561070a57600080fd5b503660011981013560f01c90036034013561046a565b34801561072c57600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006103b3565b61036461076136600461548d565b611991565b34801561077257600080fd5b5060095461046a565b34801561078757600080fd5b50610364612332565b61036461079e3660046153bc565b612751565b61036461275e565b3480156107b757600080fd5b5060025461046a565b3480156107cc57600080fd5b503660011981013560f01c90036054013561046a565b3480156107ee57600080fd5b507f000000000000000000000000000000000000000000000000000000000000000061046a565b34801561082157600080fd5b50610877610830366004615466565b6007602052600090815260409020805460019091015460ff821691610100810463ffffffff1691650100000000009091046001600160801b0316906001600160a01b031684565b60408051941515855263ffffffff90931660208501526001600160801b03909116918301919091526001600160a01b031660608201526080016103c8565b3480156108c157600080fd5b5060405163ffffffff7f00000000000000000000000000000000000000000000000000000000000000001681526020016103c8565b34801561090257600080fd5b503660011981013560f01c90036014013561046a565b34801561092457600080fd5b506103b3610933366004615466565b612cfb565b34801561094457600080fd5b5061046a61095336600461539f565b600b6020526000908152604090205481565b34801561097157600080fd5b5061046a6109803660046154ce565b612e95565b34801561099157600080fd5b506109a56109a0366004615466565b613056565b6040805163ffffffff90981688526001600160a01b03968716602089015295909416948601949094526001600160801b039182166060860152608085015291821660a08401521660c082015260e0016103c8565b348015610a0557600080fd5b506000546103b39067ffffffffffffffff1681565b348015610a2657600080fd5b5061046a610a3536600461539f565b6130ca565b348015610a4657600080fd5b507f000000000000000000000000000000000000000000000000000000000000000061046a565b348015610a7957600080fd5b50610364610a883660046154f7565b613122565b348015610a9957600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006103b3565b348015610acc57600080fd5b507f000000000000000000000000000000000000000000000000000000000000000061046a565b348015610aff57600080fd5b5061042f610b0e366004615466565b60046020526000908152604090205460ff1681565b348015610b2f57600080fd5b50610364610b3e3660046153bc565b61367e565b348015610b4f57600080fd5b50610b58613a64565b6040516103c893929190615583565b348015610b7357600080fd5b507f000000000000000000000000000000000000000000000000000000000000000061046a565b348015610ba657600080fd5b5061042f610bb5366004615466565b60066020526000908152604090205460ff1681565b60008054600160801b900460ff166002811115610be957610be9615340565b14610c075760405163067fe19560e41b815260040160405180910390fd5b6000547201000000000000000000000000000000000000900460ff1615610c5a576040517f0ea2e75200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610c733660011981013560f01c90036014013590565b90565b610c8a610c85368690038601866155be565b613ac1565b14610cc1576040517f9cc00b5b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b82606001358282604051610cd6929190615632565b604051809103902014610d15576040517fd81d583b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000610d5e610d5984848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613b1d92505050565b613b8a565b90506000610d8582600881518110610d7857610d78615642565b6020026020010151613d40565b9050602081511115610dc3576040517fd81d583b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b602081810151825190910360031b1c3660011981013560f01c9003605401358103610e1a576040517fb8ed883000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050600180547fffffffffffffffffffffffff000000000000000000000000000000000000000016331790555050600080547fffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffff1672010000000000000000000000000000000000001790555050565b60008054600160801b900460ff166002811115610ea857610ea8615340565b14610ec65760405163067fe19560e41b815260040160405180910390fd5b600060028381548110610edb57610edb615642565b906000526020600020906005020190506000610ef684612cfb565b905067ffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000081169082161015610f5f576040517ff2440b5300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008481526006602052604090205460ff1615610fa8576040517ff1a9458100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000848152600560205260409020805480158015610fc557508515155b1561102857835464010000000090046001600160a01b031660008115610feb5781610ffa565b60018601546001600160a01b03165b90506110068187613df4565b505050600094855250506006602052505060409020805460ff19166001179055565b6000868152600760209081526040918290208251608081018452815460ff81161515808352610100820463ffffffff16948301949094526501000000000090046001600160801b031693810193909352600101546001600160a01b031660608301526110ac576001600160801b0360408201526001815260008690036110ac578195505b600086826020015163ffffffff166110c4919061566e565b905060008382116110d557816110d7565b835b602084015190915063ffffffff165b818110156111f757600086828154811061110257611102615642565b6000918252602080832090910154808352600690915260409091205490915060ff1661115a576040517f9a07664600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006002828154811061116f5761116f615642565b60009182526020909120600590910201805490915064010000000090046001600160a01b03161580156111b65750600481015460408701516001600160801b039182169116115b156111e25760018101546001600160a01b0316606087015260048101546001600160801b031660408701525b505080806111ef90615686565b9150506110e6565b5063ffffffff818116602085810191825260008c81526007909152604090819020865181549351928801517fffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000009094169015157fffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000ff161761010092909416918202939093177fffffffffffffffffffffff00000000000000000000000000000000ffffffffff16650100000000006001600160801b03909316929092029190911782556060850151600190920180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039093169290921790915584900361140657606083015160008a8152600660205260409020805460ff191660011790558915801561134357506000547201000000000000000000000000000000000000900460ff165b1561139e576001546001600160a01b031661135e818a613df4565b88546001600160a01b03909116640100000000027fffffffffffffffff0000000000000000000000000000000000000000ffffffff909116178855611404565b6113cb6001600160a01b038216156113b657816113c5565b60018901546001600160a01b03165b89613df4565b87547fffffffffffffffff0000000000000000000000000000000000000000ffffffff166401000000006001600160a01b038316021788555b505b505050505050505050565b600080600054600160801b900460ff16600281111561143257611432615340565b146114505760405163067fe19560e41b815260040160405180910390fd5b6000805260066020527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f85460ff166114b4576040517f9a07664600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006001600160a01b031660026000815481106114d3576114d3615642565b600091825260209091206005909102015464010000000090046001600160a01b031614611501576001611504565b60025b6000805467ffffffffffffffff421668010000000000000000027fffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff82168117835592935083927fffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffff000000000000000000ffffffffffffffff90911617600160801b8360028111156115a8576115a8615340565b0217905560028111156115bd576115bd615340565b6040517f5e186f09b9c93491f14e277eea7faa5de6a2d4bda75a79af7a3684fbfb42da6090600090a290565b6005602052816000526040600020818154811061160557600080fd5b90600052602060002001600091509150505481565b905090565b61162c8383836001611991565b505050565b6000818152600760209081526040808320600590925282208054825461166290610100900463ffffffff16826156a0565b95945050505050565b606061161a60546020613e36565b611681612332565b60006002600d5460ff16600281111561169c5761169c615340565b036116c057506001600160a01b0381166000908152600b602052604090205461172f565b6001600d5460ff1660028111156116d9576116d9615340565b036116fd57506001600160a01b03811660009081526003602052604090205461172f565b6040517f078a3df400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0382166000908152600c602052604090205460ff1661180c576001600160a01b038281166000818152600c602052604090819020805460ff19166001179055517f7eee288d0000000000000000000000000000000000000000000000000000000081526004810191909152602481018390527f000000000000000000000000000000000000000000000000000000000000000090911690637eee288d90604401600060405180830381600087803b1580156117f057600080fd5b505af1158015611804573d6000803e3d6000fd5b505050505050565b80600003611846576040517f17bfe5f700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038281166000818152600b60209081526040808320839055600390915280822091909155517ff3fef3a30000000000000000000000000000000000000000000000000000000081526004810191909152602481018390527f00000000000000000000000000000000000000000000000000000000000000009091169063f3fef3a390604401600060405180830381600087803b1580156118ec57600080fd5b505af1158015611900573d6000803e3d6000fd5b505050506000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611951576040519150601f19603f3d011682016040523d82523d6000602084013e611956565b606091505b505090508061162c576040517f83e6cc6b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008054600160801b900460ff1660028111156119b0576119b0615340565b146119ce5760405163067fe19560e41b815260040160405180910390fd5b6000600284815481106119e3576119e3615642565b60009182526020918290206040805160e0810182526005909302909101805463ffffffff811684526001600160a01b0364010000000090910481169484019490945260018101549093169082015260028201546001600160801b03908116606083015260038301546080830181905260049093015480821660a0840152600160801b90041660c082015291508514611aa7576040517f3014033200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60a0810151600083156001600160801b0383161760011b90506000611b3c826001600160801b03167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f6307c4acdd60e01b67ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff169050861580611b775750611b747f0000000000000000000000000000000000000000000000000000000000000000600261566e565b81145b8015611b81575084155b15611bb8576040517fa42637bc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000547201000000000000000000000000000000000000900460ff168015611bde575086155b15611c15576040517f0ea2e75200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f0000000000000000000000000000000000000000000000000000000000000000811115611c6f576040517f56f57b2b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611c9a7f0000000000000000000000000000000000000000000000000000000000000000600161566e565b8103611cac57611cac86888588613e6a565b34611cb683612e95565b14611ced576040517f8620aa1900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000611cf888612cfb565b905067ffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000811690821603611d60576040517f3381d11400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000611d8d60017f00000000000000000000000000000000000000000000000000000000000000006156a0565b8303611eb1577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316637dc0d1d06040518163ffffffff1660e01b8152600401602060405180830381865afa158015611df1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e1591906156b7565b6001600160a01b031663f3f480d96040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e52573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e7691906156d4565b611eaa907f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff166156ed565b9050611f44565b611edc60017f00000000000000000000000000000000000000000000000000000000000000006156a0565b8303611f1757611eaa7f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff166002615719565b507f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff165b611f78817f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff16615749565b67ffffffffffffffff16611f938367ffffffffffffffff1690565b67ffffffffffffffff161115611fda57611fd7817f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff16615749565b91505b6000604083901b421760008a8152608087901b6001600160801b038d1617602052604081209192509060008181526004602052604090205490915060ff161561204f576040517f80497e3b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60016004600083815260200190815260200160002060006101000a81548160ff02191690831515021790555060026040518060e001604052808d63ffffffff16815260200160006001600160a01b03168152602001336001600160a01b03168152602001346001600160801b031681526020018c8152602001886001600160801b03168152602001846001600160801b0316815250908060018154018082558091505060019003906000526020600020906005020160009091909190915060008201518160000160006101000a81548163ffffffff021916908363ffffffff16021790555060208201518160000160046101000a8154816001600160a01b0302191690836001600160a01b0316021790555060408201518160010160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060608201518160020160006101000a8154816001600160801b0302191690836001600160801b031602179055506080820151816003015560a08201518160040160006101000a8154816001600160801b0302191690836001600160801b0316021790555060c08201518160040160106101000a8154816001600160801b0302191690836001600160801b031602179055505050600560008c8152602001908152602001600020600160028054905061224691906156a0565b81546001810183556000928352602080842090910191909155338252600b905260408120805434929061227a90849061566e565b925050819055507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0346040518263ffffffff1660e01b81526004016000604051808303818588803b1580156122dc57600080fd5b505af11580156122f0573d6000803e3d6000fd5b50506040513393508d92508e91507f9b3245740ec3b155098a55be84957a4da13eaf7f14a8bc6f53126c0b9350f2be90600090a4505050505050505050505050565b6002600d5460ff16600281111561234b5761234b615340565b148061236d57506001600d5460ff16600281111561236b5761236b615340565b145b1561237457565b6000600d5460ff16600281111561238d5761238d615340565b146123c4576040517f078a3df400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612422573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124469190615772565b1561247d576040517f379a7ed900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005468010000000000000000900467ffffffffffffffff1667ffffffffffffffff166000036124d9576040517fc105260a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f0314d2b30000000000000000000000000000000000000000000000000000000081523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690630314d2b390602401602060405180830381865afa158015612559573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061257d9190615772565b9050806125b6576040517f4851bd9b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f17cf21a90000000000000000000000000000000000000000000000000000000081523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906317cf21a990602401600060405180830381600087803b15801561263057600080fd5b505af1925050508015612641575060015b506040517f496b9c160000000000000000000000000000000000000000000000000000000081523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063496b9c1690602401602060405180830381865afa1580156126c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126e69190615772565b9050801561270057600d805460ff1916600117905561270e565b600d805460ff191660021790555b600d546040517f9908eaac0645df9d0704d06adc9e07337c951de2f06b5f2836151d48d5e4722f916127459160ff90911690615377565b60405180910390a15050565b61162c8383836000611991565b60005471010000000000000000000000000000000000900460ff16156127b0576040517f0dc149f000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d83ef2676040518163ffffffff1660e01b81526004016040805180830381865afa158015612810573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612834919061578f565b909250905081612870576040517f6a6bc3b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805180820190915282815260200181905260088290556009819055607a36146128c7576040517f9824bdab00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b803660011981013560f01c90036054013511612925576040517ff40239db0000000000000000000000000000000000000000000000000000000081523660011981013560f01c90036014013560048201526024015b60405180910390fd5b6040805160e08101825263ffffffff808252600060208084018281523660011981013560f01c90038035606090811c8789018181526001600160801b0334818116948b0194855260149095013560808b01908152600160a08c0181815242841660c08e019081526002805493840181558c529c517f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace600590930292830180549a5191909d167fffffffffffffffff000000000000000000000000000000000000000000000000909a16999099176401000000006001600160a01b039a8b160217909b5592517f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5acf840180547fffffffffffffffffffffffff000000000000000000000000000000000000000016919098161790965592517f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ad0820180547fffffffffffffffffffffffffffffffff000000000000000000000000000000001691851691909117905593517f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ad185015595519651968116600160801b9790911696909602959095177f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ad2909101558154710100000000000000000000000000000000007fffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff909116178255918152600b909152918220805491929091612b6690849061566e565b925050819055507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0346040518263ffffffff1660e01b81526004016000604051808303818588803b158015612bc857600080fd5b505af1158015612bdc573d6000803e3d6000fd5b5050600080547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000164267ffffffffffffffff161790555050604080517f3c9f397c00000000000000000000000000000000000000000000000000000000815290517f000000000000000000000000000000000000000000000000000000000000000063ffffffff1692507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031691633c9f397c9160048083019260209291908290030181865afa158015612cbb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cdf91906157b3565b600a805460ff191663ffffffff92909216929092141790555050565b600080600054600160801b900460ff166002811115612d1c57612d1c615340565b14612d3a5760405163067fe19560e41b815260040160405180910390fd5b600060028381548110612d4f57612d4f615642565b600091825260208220600590910201805490925063ffffffff90811614612db557815460028054909163ffffffff16908110612d8d57612d8d615642565b906000526020600020906005020160040160109054906101000a90046001600160801b031690505b6004820154600090612de090600160801b900467ffffffffffffffff165b67ffffffffffffffff1690565b612df49067ffffffffffffffff16426156a0565b612e0a612dd3846001600160801b031660401c90565b67ffffffffffffffff16612e1e919061566e565b905067ffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001667ffffffffffffffff168167ffffffffffffffff1611612e6b5780611662565b7f000000000000000000000000000000000000000000000000000000000000000095945050505050565b600080612f12836001600160801b03167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f6307c4acdd60e01b67ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff1690507f0000000000000000000000000000000000000000000000000000000000000000811115612f71576040517f56f57b2b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b642e90edd00062061a806311e1a3006000612f8c83836157ef565b9050670de0b6b3a76400006000612fc3827f0000000000000000000000000000000000000000000000000000000000000000615803565b90506000612fe1612fdc670de0b6b3a764000086615803565b613ff9565b90506000612fef848461424b565b90506000612ffd838361429a565b9050600061300a826142c8565b9050600061302982613024670de0b6b3a76400008f615803565b6144b0565b905060006130378b8361429a565b9050613043818d615803565b9f9e505050505050505050505050505050565b6002818154811061306657600080fd5b60009182526020909120600590910201805460018201546002830154600384015460049094015463ffffffff841695506401000000009093046001600160a01b03908116949216926001600160801b03918216929180821691600160801b90041687565b60006002600d5460ff1660028111156130e5576130e5615340565b0361310657506001600160a01b03166000908152600b602052604090205490565b506001600160a01b031660009081526003602052604090205490565b60008054600160801b900460ff16600281111561314157613141615340565b1461315f5760405163067fe19560e41b815260040160405180910390fd5b60006002878154811061317457613174615642565b6000918252602082206005919091020160048101549092506001600160801b0316908715821760011b90506131ca7f0000000000000000000000000000000000000000000000000000000000000000600161566e565b613244826001600160801b03167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f6307c4acdd60e01b67ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff161461327e576040517f5f53dd9800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080891561335a576132d17f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006156a0565b6001901b6132e7846001600160801b03166144e1565b6001600160801b03166132fa9190615822565b1561332e5761332561331660016001600160801b038716615836565b865463ffffffff166000614567565b60030154613350565b7f00000000000000000000000000000000000000000000000000000000000000005b915084905061337b565b600385015491506133786133166001600160801b0386166001615856565b90505b600882901b60088a8a604051613392929190615632565b6040518091039020901b146133d3576040517f696550ff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006133de8c614630565b905060006133ed836003015490565b6040517fe14ced320000000000000000000000000000000000000000000000000000000081527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063e14ced329061345a908f908f908f908f908a906004016158c1565b6020604051808303816000875af1158015613479573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061349d91906156d4565b600485015491149150600090600290613526906001600160801b03167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f6307c4acdd60e01b67ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b6135a0896001600160801b03167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f6307c4acdd60e01b67ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b6135aa91906158fb565b6135b4919061591e565b60ff1615905081151581036135f5576040517ffb4e40dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b875464010000000090046001600160a01b03161561363f576040517f9071e6af00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505085547fffffffffffffffff0000000000000000000000000000000000000000ffffffff163364010000000002179095555050505050505050505050565b60008054600160801b900460ff16600281111561369d5761369d615340565b146136bb5760405163067fe19560e41b815260040160405180910390fd5b6000806000806136ca8661465f565b935093509350935060006136e0858585856149b8565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316637dc0d1d06040518163ffffffff1660e01b8152600401602060405180830381865afa158015613742573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061376691906156b7565b905060018903613833576001600160a01b0381166352f0f3ad8a846137973660011981013560f01c90036034013590565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e086901b16815260048101939093526024830191909152604482015260206064820152608481018a905260a4015b6020604051808303816000875af1158015613809573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061382d91906156d4565b50611406565b60028903613852576001600160a01b0381166352f0f3ad8a8489613797565b60038903613871576001600160a01b0381166352f0f3ad8a8487613797565b600489036139a65760006138ae6001600160801b0385167f0000000000000000000000000000000000000000000000000000000000000000614a57565b6009546138bb919061566e565b6138c690600161566e565b90503660011981013560f01c90036054013581106138f3573660011981013560f01c9003605401356138f5565b805b90506001600160a01b0382166352f0f3ad8b8560405160e084901b7fffffffff000000000000000000000000000000000000000000000000000000001681526004810192909252602482015260c084901b604482015260086064820152608481018b905260a4016020604051808303816000875af115801561397b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061399f91906156d4565b5050611406565b60058903613a32576040517f52f0f3ad000000000000000000000000000000000000000000000000000000008152600481018a9052602481018390527f000000000000000000000000000000000000000000000000000000000000000060c01b604482015260086064820152608481018890526001600160a01b038216906352f0f3ad9060a4016137ea565b6040517fff137e6500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000003660011981013560f01c9003601401356060613a9f61166b565b9050909192565b600081831015613ab65781613ab8565b825b90505b92915050565b60008160000151826020015183604001518460600151604051602001613b00949392919093845260208401929092526040830152606082015260800190565b604051602081830303815290604052805190602001209050919050565b60408051808201909152600080825260208201528151600003613b6c576040517f5ab458fb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50604080518082019091528151815260209182019181019190915290565b60606000806000613b9a85614aec565b919450925090506001816001811115613bb557613bb5615340565b14613bec576040517f4b9c6abe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8451613bf8838561566e565b14613c2f576040517f5c5537b800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604080516020808252610420820190925290816020015b6040805180820190915260008082526020820152815260200190600190039081613c465790505093506000835b8651811015613d3457600080613cb96040518060400160405280858c60000151613c9d91906156a0565b8152602001858c60200151613cb2919061566e565b9052614aec565b509150915060405180604001604052808383613cd5919061566e565b8152602001848b60200151613cea919061566e565b815250888581518110613cff57613cff615642565b6020908102919091010152613d1560018561566e565b9350613d21818361566e565b613d2b908461566e565b92505050613c73565b50845250919392505050565b60606000806000613d5085614aec565b919450925090506000816001811115613d6b57613d6b615340565b14613da2576040517f1ff9b2e400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b613dac828461566e565b855114613de5576040517f5c5537b800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61166285602001518484614f8a565b60028101546001600160a01b038316600090815260036020526040812080546001600160801b0390931692909190613e2d90849061566e565b90915550505050565b6040518181523660011981013560f01c90038284820160208401378260208301016000815260208101604052505092915050565b6000613e806001600160801b0384166001615856565b90506000613e9082866001614567565b9050600086901a8380613f5a5750613ec960027f0000000000000000000000000000000000000000000000000000000000000000615822565b6004830154600290613f4b906001600160801b03167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f6307c4acdd60e01b67ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b613f55919061591e565b60ff16145b15613fb25760ff811660011480613f74575060ff81166002145b613fad576040517ff40239db0000000000000000000000000000000000000000000000000000000081526004810188905260240161291c565b613ff0565b60ff811615613ff0576040517ff40239db0000000000000000000000000000000000000000000000000000000081526004810188905260240161291c565b50505050505050565b6001600160801b03811160071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b176000821361404f57631615e6386000526004601cfd5b7ff8f9f9faf9fdfafbf9fdfcfdfafbfcfef9fafdfafcfcfbfefafafcfbffffffff6f8421084210842108cc6318c6db6d54be83831c1c601f161a1890811b609f90811c6c465772b2bbbb5f824b15207a3081018102606090811d6d0388eaa27412d5aca026815d636e018202811d6d0df99ac502031bf953eff472fdcc018202811d6d13cdffb29d51d99322bdff5f2211018202811d6d0a0f742023def783a307a986912e018202811d6d01920d8043ca89b5239253284e42018202811d6c0b7a86d7375468fac667a0a527016c29508e458543d8aa4df2abee7883018302821d6d0139601a2efabe717e604cbb4894018302821d6d02247f7a7b6594320649aa03aba1018302821d7fffffffffffffffffffffffffffffffffffffff73c0c716a594e00d54e3c4cbc9018302821d7ffffffffffffffffffffffffffffffffffffffdc7b88c420e53a9890533129f6f01830290911d7fffffffffffffffffffffffffffffffffffffff465fda27eb4d63ded474e5f832019091027ffffffffffffffff5f6af8f7b3396644f18e157960000000000000000000000000105711340daa0d5f769dba1915cef59f0815a5506029190037d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b302017d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b88642840160ae1d90565b60007812725dd1d243aba0e75fe645cc4873f9e65afe688c928e1f218311670de0b6b3a76400000215820261428857637c5f487d6000526004601cfd5b50670de0b6b3a7640000919091020490565b6000816000190483118202156142b85763bac65e5b6000526004601cfd5b50670de0b6b3a764000091020490565b60007ffffffffffffffffffffffffffffffffffffffffffffffffdc0d0570925a462d782136142f657919050565b680755bf798b4a1bf1e582126143145763a37bfec96000526004601cfd5b6503782dace9d9604e83901b059150600060606bb17217f7d1cf79abc9e3b39884821b056b80000000000000000000000001901d6bb17217f7d1cf79abc9e3b39881029093037fffffffffffffffffffffffffffffffffffffffdbf3ccf1604d263450f02a550481018102606090811d6d0277594991cfc85f6e2461837cd9018202811d7fffffffffffffffffffffffffffffffffffffe5adedaa1cb095af9e4da10e363c018202811d6db1bbb201f443cf962f1a1d3db4a5018202811d7ffffffffffffffffffffffffffffffffffffd38dc772608b0ae56cce01296c0eb018202811d6e05180bb14799ab47a8a8cb2a527d57016d02d16720577bd19bf614176fe9ea6c10fe68e7fd37d0007b713f765084018402831d9081019084017ffffffffffffffffffffffffffffffffffffffe2c69812cf03b0763fd454a8f7e010290911d6e0587f503bb6ea29d25fcb7401964500190910279d835ebba824c98fb31b83b2ca45c000000000000000000000000010574029d9dc38563c32e5c2f6dc192ee70ef65f9978af30260c3939093039290921c92915050565b6000613ab8670de0b6b3a7640000836144c886613ff9565b6144d29190615940565b6144dc91906159fc565b6142c8565b600080614555837e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f6307c4acdd60e01b67ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b600160ff919091161b90920392915050565b600080826145a7576145a26001600160801b0386167f000000000000000000000000000000000000000000000000000000000000000061501f565b6145b9565b6145b9856001600160801b031661515e565b9050600284815481106145ce576145ce615642565b906000526020600020906005020191505b60048201546001600160801b0382811691161461462857815460028054909163ffffffff1690811061461357614613615642565b906000526020600020906005020191506145df565b509392505050565b60008060008060006146418661465f565b9350935093509350614655848484846149b8565b9695505050505050565b600080600080600085905060006002828154811061467f5761467f615642565b600091825260209091206004600590920201908101549091507f000000000000000000000000000000000000000000000000000000000000000090614734906001600160801b03167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f6307c4acdd60e01b67ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff161161476e576040517fb34b5c2200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000815b60048301547f000000000000000000000000000000000000000000000000000000000000000090614813906001600160801b03167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f6307c4acdd60e01b67ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff16925082111561488857825463ffffffff166148527f0000000000000000000000000000000000000000000000000000000000000000600161566e565b830361485c578391505b6002818154811061486f5761486f615642565b9060005260206000209060050201935080945050614772565b600481810154908401546001600160801b0391821691166000816001600160801b03166148cd6148c1856001600160801b031660011c90565b6001600160801b031690565b6001600160801b031614905080156149665760006148f3836001600160801b03166144e1565b6001600160801b0316111561494357600061492361491b60016001600160801b038616615836565b896001614567565b6003810154600490910154909c506001600160801b03169a506149499050565b6008549a505b600386015460048701549099506001600160801b031697506149aa565b600061497f61491b6001600160801b0385166001615856565b6003808901546004808b015492840154930154909e506001600160801b039182169d50919b50169850505b505050505050509193509193565b60006001600160801b03841615614a135760408051602081018790526001600160801b038087169282019290925260608101859052908316608082015260a00160405160208183030381529060405280519060200120611662565b8282604051602001614a389291909182526001600160801b0316602082015260400190565b6040516020818303038152906040528051906020012095945050505050565b600080614acb847e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f6307c4acdd60e01b67ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff1690508083036001841b600180831b0386831b17039250505092915050565b60008060008360000151600003614b2f576040517f5ab458fb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6020840151805160001a607f8111614b54576000600160009450945094505050614f83565b60b78111614c6a576000614b696080836156a0565b905080876000015111614ba8576040517f66c9448500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001838101517fff00000000000000000000000000000000000000000000000000000000000000169082148015614c2057507f80000000000000000000000000000000000000000000000000000000000000007fff000000000000000000000000000000000000000000000000000000000000008216105b15614c57576040517fbabb01dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5060019550935060009250614f83915050565b60bf8111614dc8576000614c7f60b7836156a0565b905080876000015111614cbe576040517f66c9448500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60018301517fff00000000000000000000000000000000000000000000000000000000000000166000819003614d20576040517fbabb01dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600184015160088302610100031c60378111614d68576040517fbabb01dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b614d72818461566e565b895111614dab576040517f66c9448500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b614db683600161566e565b9750955060009450614f839350505050565b60f78111614e2d576000614ddd60c0836156a0565b905080876000015111614e1c576040517f66c9448500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600195509350849250614f83915050565b6000614e3a60f7836156a0565b905080876000015111614e79576040517f66c9448500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60018301517fff00000000000000000000000000000000000000000000000000000000000000166000819003614edb576040517fbabb01dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600184015160088302610100031c60378111614f23576040517fbabb01dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b614f2d818461566e565b895111614f66576040517f66c9448500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b614f7183600161566e565b9750955060019450614f839350505050565b9193909250565b60608167ffffffffffffffff811115614fa557614fa56155a8565b6040519080825280601f01601f191660200182016040528015614fcf576020820181803683370190505b5090508115615018576000614fe4848661566e565b90506020820160005b84811015615005578281015182820152602001614fed565b84811115615014576000858301525b5050505b9392505050565b60008161509c846001600160801b03167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f6307c4acdd60e01b67ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff16116150b25763b34b5c226000526004601cfd5b6150bb8361515e565b905081615138826001600160801b03167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f6307c4acdd60e01b67ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff1611613abb57613ab861514e83600161566e565b6001600160801b038316906151ea565b600081196001830116816151d9827e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f6307c4acdd60e01b67ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff169390931c8015179392505050565b60008061525e847e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f6307c4acdd60e01b67ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff169050808303600180821b0385821b179250505092915050565b60008083601f84011261528c57600080fd5b50813567ffffffffffffffff8111156152a457600080fd5b6020830191508360208285010111156152bc57600080fd5b9250929050565b600080600083850360a08112156152d957600080fd5b60808112156152e757600080fd5b50839250608084013567ffffffffffffffff81111561530557600080fd5b6153118682870161527a565b9497909650939450505050565b6000806040838503121561533157600080fd5b50508035926020909101359150565b634e487b7160e01b600052602160045260246000fd5b6003811061537457634e487b7160e01b600052602160045260246000fd5b50565b6020810161538483615356565b91905290565b6001600160a01b038116811461537457600080fd5b6000602082840312156153b157600080fd5b81356150188161538a565b6000806000606084860312156153d157600080fd5b505081359360208301359350604090920135919050565b6000815180845260005b8181101561540e576020818501810151868301820152016153f2565b81811115615420576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000613ab860208301846153e8565b60006020828403121561547857600080fd5b5035919050565b801515811461537457600080fd5b600080600080608085870312156154a357600080fd5b84359350602085013592506040850135915060608501356154c38161547f565b939692955090935050565b6000602082840312156154e057600080fd5b81356001600160801b038116811461501857600080fd5b6000806000806000806080878903121561551057600080fd5b8635955060208701356155228161547f565b9450604087013567ffffffffffffffff8082111561553f57600080fd5b61554b8a838b0161527a565b9096509450606089013591508082111561556457600080fd5b5061557189828a0161527a565b979a9699509497509295939492505050565b63ffffffff8416815282602082015260606040820152600061166260608301846153e8565b634e487b7160e01b600052604160045260246000fd5b6000608082840312156155d057600080fd5b6040516080810181811067ffffffffffffffff8211171561560157634e487b7160e01b600052604160045260246000fd5b8060405250823581526020830135602082015260408301356040820152606083013560608201528091505092915050565b8183823760009101908152919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000821982111561568157615681615658565b500190565b6000600019820361569957615699615658565b5060010190565b6000828210156156b2576156b2615658565b500390565b6000602082840312156156c957600080fd5b81516150188161538a565b6000602082840312156156e657600080fd5b5051919050565b600067ffffffffffffffff80831681851680830382111561571057615710615658565b01949350505050565b600067ffffffffffffffff8083168185168183048111821515161561574057615740615658565b02949350505050565b600067ffffffffffffffff8381169083168181101561576a5761576a615658565b039392505050565b60006020828403121561578457600080fd5b81516150188161547f565b600080604083850312156157a257600080fd5b505080516020909101519092909150565b6000602082840312156157c557600080fd5b815163ffffffff8116811461501857600080fd5b634e487b7160e01b600052601260045260246000fd5b6000826157fe576157fe6157d9565b500490565b600081600019048311821515161561581d5761581d615658565b500290565b600082615831576158316157d9565b500690565b60006001600160801b038381169083168181101561576a5761576a615658565b60006001600160801b0380831681851680830382111561571057615710615658565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b6060815260006158d5606083018789615878565b82810360208401526158e8818688615878565b9150508260408301529695505050505050565b600060ff821660ff84168082101561591557615915615658565b90039392505050565b600060ff831680615931576159316157d9565b8060ff84160691505092915050565b60007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60008413600084138583048511828216161561598157615981615658565b7f800000000000000000000000000000000000000000000000000000000000000060008712868205881281841616156159bc576159bc615658565b600087129250878205871284841616156159d8576159d8615658565b878505871281841616156159ee576159ee615658565b505050929093029392505050565b600082615a0b57615a0b6157d9565b60001983147f800000000000000000000000000000000000000000000000000000000000000083141615615a4157615a41615658565b50059056fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"a\x01\xC0`@R4\x80\x15b\0\0\x12W`\0\x80\xFD[P`@Qb\0b\x938\x03\x80b\0b\x93\x839\x81\x01`@\x81\x90Rb\0\x005\x91b\0\x05.V[b\0\0C`\x01`~b\0\x06\x01V[`\xFF\x16\x81`@\x01Q\x11\x15b\0\0kW`@Qc;\xEF\xF1\x99`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0\x19\x81``\x01Q\x14\x80b\0\0\x95WP`@\x81\x01Q``\x82\x01Qb\0\0\x92\x90`\x01b\0\x06'V[\x10\x15[\x15b\0\0\xB4W`@Qc\xE6,\xCF9`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x02\x81``\x01Q\x10\x15b\0\0\xDBW`@Qc\xE6,\xCF9`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`@\x1B\x03\x80\x16\x81`\xC0\x01Q`\x01`\x01`\xA0\x1B\x03\x16c}\xC0\xD1\xD0`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15b\0\x01(W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90b\0\x01N\x91\x90b\0\x06BV[`\x01`\x01`\xA0\x1B\x03\x16c\xF3\xF4\x80\xD9`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15b\0\x01\x8CW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90b\0\x01\xB2\x91\x90b\0\x06bV[\x11\x15b\0\x01\xD2W`@Qc\xB4\xE1$3`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0b\0\x01\xF7\x82`\x80\x01Q`\x01`\x01`@\x1B\x03\x16b\0\x04\x80` \x1Bb\0\x0Cp\x17` \x1CV[b\0\x02\r\x90`\x01`\x01`@\x1B\x03\x16`\x02b\0\x06|V[\x90P`\0\x82`\xC0\x01Q`\x01`\x01`\xA0\x1B\x03\x16c}\xC0\xD1\xD0`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15b\0\x02TW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90b\0\x02z\x91\x90b\0\x06BV[`\x01`\x01`\xA0\x1B\x03\x16c\xF3\xF4\x80\xD9`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15b\0\x02\xB8W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90b\0\x02\xDE\x91\x90b\0\x06bV[b\0\x03\x01\x84`\x80\x01Q`\x01`\x01`@\x1B\x03\x16b\0\x04\x80` \x1Bb\0\x0Cp\x17` \x1CV[`\x01`\x01`@\x1B\x03\x16b\0\x03\x16\x91\x90b\0\x06'V[\x90P`\0b\0\x031\x83\x83b\0\x04\x83` \x1Bb\0:\xA6\x17` \x1CV[\x90P`\x01`\x01`@\x1B\x03\x81\x11\x15b\0\x03\\W`@Qc#]\xFB+`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[b\0\x03\x7F\x84`\xA0\x01Q`\x01`\x01`@\x1B\x03\x16b\0\x04\x80` \x1Bb\0\x0Cp\x17` \x1CV[`\x01`\x01`@\x1B\x03\x16\x81`\x01`\x01`@\x1B\x03\x16\x11\x15b\0\x03\xB2W`@Qc#]\xFB+`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[c\xFF\xFF\xFF\xFF\x80\x16b\0\x03\xD9\x85`\0\x01Qc\xFF\xFF\xFF\xFF\x16b\0\x04\x80` \x1Bb\0\x0Cp\x17` \x1CV[c\xFF\xFF\xFF\xFF\x16\x03b\0\x03\xFEW`@Qc\x07>\xD1g`\xE3\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[PP\x81Qc\xFF\xFF\xFF\xFF\x16a\x01 \x90\x81R` \x83\x01Q`\x80\x90\x81R`@\x84\x01Q`\xA0\x90\x81R``\x85\x01Q`\xC0\x90\x81R\x91\x85\x01Q`\x01`\x01`@\x1B\x03\x90\x81\x16a\x01\xA0R\x90\x85\x01Q\x16`\xE0\x90\x81R\x90\x84\x01Q`\x01`\x01`\xA0\x1B\x03\x90\x81\x16a\x01\0\x90\x81R\x91\x85\x01Q\x81\x16a\x01@R\x90\x84\x01Q\x16a\x01`R\x90\x91\x01Qa\x01\x80RPb\0\x06\x9EV[\x90V[`\0\x81\x83\x10\x15b\0\x04\x95W\x81b\0\x04\x97V[\x82[\x93\x92PPPV[`@Qa\x01@\x81\x01`\x01`\x01`@\x1B\x03\x81\x11\x82\x82\x10\x17\x15b\0\x04\xD0WcNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[`@R\x90V[\x80Qc\xFF\xFF\xFF\xFF\x81\x16\x81\x14b\0\x04\xEBW`\0\x80\xFD[\x91\x90PV[\x80Q`\x01`\x01`@\x1B\x03\x81\x16\x81\x14b\0\x04\xEBW`\0\x80\xFD[`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14b\0\x05\x1EW`\0\x80\xFD[PV[\x80Qb\0\x04\xEB\x81b\0\x05\x08V[`\0a\x01@\x82\x84\x03\x12\x15b\0\x05BW`\0\x80\xFD[b\0\x05Lb\0\x04\x9EV[b\0\x05W\x83b\0\x04\xD6V[\x81R` \x83\x01Q` \x82\x01R`@\x83\x01Q`@\x82\x01R``\x83\x01Q``\x82\x01Rb\0\x05\x85`\x80\x84\x01b\0\x04\xF0V[`\x80\x82\x01Rb\0\x05\x98`\xA0\x84\x01b\0\x04\xF0V[`\xA0\x82\x01Rb\0\x05\xAB`\xC0\x84\x01b\0\x05!V[`\xC0\x82\x01Rb\0\x05\xBE`\xE0\x84\x01b\0\x05!V[`\xE0\x82\x01Ra\x01\0b\0\x05\xD3\x81\x85\x01b\0\x05!V[\x90\x82\x01Ra\x01 \x92\x83\x01Q\x92\x81\x01\x92\x90\x92RP\x91\x90PV[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[`\0`\xFF\x82\x16`\xFF\x84\x16\x80\x82\x10\x15b\0\x06\x1EWb\0\x06\x1Eb\0\x05\xEBV[\x90\x03\x93\x92PPPV[`\0\x82\x19\x82\x11\x15b\0\x06=Wb\0\x06=b\0\x05\xEBV[P\x01\x90V[`\0` \x82\x84\x03\x12\x15b\0\x06UW`\0\x80\xFD[\x81Qb\0\x04\x97\x81b\0\x05\x08V[`\0` \x82\x84\x03\x12\x15b\0\x06uW`\0\x80\xFD[PQ\x91\x90PV[`\0\x81`\0\x19\x04\x83\x11\x82\x15\x15\x16\x15b\0\x06\x99Wb\0\x06\x99b\0\x05\xEBV[P\x02\x90V[`\x80Q`\xA0Q`\xC0Q`\xE0Qa\x01\0Qa\x01 Qa\x01@Qa\x01`Qa\x01\x80Qa\x01\xA0QaZSb\0\x08@`\09`\0\x81\x81a\x07/\x01R\x81\x81a\x1E|\x01R\x81\x81a\x1E\xE7\x01Ra\x1F\x1A\x01R`\0\x81\x81a\nI\x01Ra9\xE4\x01R`\0\x81\x81a\x06\xA5\x01R\x81\x81a#\xC6\x01R\x81\x81a%\n\x01R\x81\x81a%\xE4\x01R\x81\x81a&s\x01R\x81\x81a'\xB5\x01Ra,h\x01R`\0\x81\x81a\x05\x93\x01R\x81\x81a\x17\xAA\x01R\x81\x81a\x18\xA6\x01R\x81\x81a\"\x83\x01Ra+o\x01R`\0\x81\x81a\x08\xCC\x01R\x81\x81a,?\x01Ra:f\x01R`\0\x81\x81a\x050\x01R\x81\x81a\x1D\x95\x01R\x81\x81a4\x15\x01Ra6\xE6\x01R`\0\x81\x81a\n\x9C\x01R\x81\x81a\x0F\x03\x01R\x81\x81a\x1D\x05\x01R\x81\x81a\x1FJ\x01R\x81\x81a\x1F\xA9\x01R\x81\x81a.+\x01Ra.m\x01R`\0\x81\x81a\n\xCF\x01R\x81\x81a\x1BN\x01R\x81\x81a\x1Ct\x01R\x81\x81a\x1E\xB8\x01R\x81\x81a2\x8C\x01R\x81\x81a8\x8A\x01R\x81\x81a>\xA5\x01R\x81\x81aE~\x01R\x81\x81aF\x9A\x01R\x81\x81aGy\x01RaH,\x01R`\0\x81\x81a\x0Bv\x01R\x81\x81a\x1C\x17\x01R\x81\x81a\x1Di\x01R\x81\x81a/\x19\x01R\x81\x81a/\x9F\x01R\x81\x81a1\xA4\x01Ra2\xAD\x01R`\0\x81\x81a\x07\xF1\x01Ra30\x01RaZS`\0\xF3\xFE`\x80`@R`\x046\x10a\x03?W`\x005`\xE0\x1C\x80cp\x87*\xA5\x11a\x01\xB0W\x80c\xC3\x95\xE1\xCA\x11a\0\xECW\x80c\xDA\xBD9m\x11a\0\x95W\x80c\xF8\xF4?\xF6\x11a\0oW\x80c\xF8\xF4?\xF6\x14a\x0B#W\x80c\xFA$\xF7C\x14a\x0BCW\x80c\xFA1Z\xA9\x14a\x0BgW\x80c\xFE+\xBE\xB2\x14a\x0B\x9AW`\0\x80\xFD[\x80c\xDA\xBD9m\x14a\n\x8DW\x80c\xEC^c\x08\x14a\n\xC0W\x80c\xEF\xF0\xF5\x92\x14a\n\xF3W`\0\x80\xFD[\x80c\xD5\xD4M\x80\x11a\0\xC6W\x80c\xD5\xD4M\x80\x14a\n\x1AW\x80c\xD6\xAE<\xD5\x14a\n:W\x80c\xD8\xCC\x1A<\x14a\nmW`\0\x80\xFD[\x80c\xC3\x95\xE1\xCA\x14a\teW\x80c\xC6\xF00\x8C\x14a\t\x85W\x80c\xCF\t\xE0\xD0\x14a\t\xF9W`\0\x80\xFD[\x80c\x8DE\n\x95\x11a\x01YW\x80c\xBB\xDC\x02\xDB\x11a\x013W\x80c\xBB\xDC\x02\xDB\x14a\x08\xB5W\x80c\xBC\xEF;U\x14a\x08\xF6W\x80c\xBD\x8D\xA9V\x14a\t\x18W\x80c\xC0\xD8\xBBt\x14a\t8W`\0\x80\xFD[\x80c\x8DE\n\x95\x14a\x07\xE2W\x80c\x99s^2\x14a\x07\xC0W\x80c\xA4E\xEC\xE6\x14a\x08\x15W`\0\x80\xFD[\x80c\x81)\xFC\x1C\x11a\x01\x8AW\x80c\x81)\xFC\x1C\x14a\x07\xA3W\x80c\x89\x80\xE0\xCC\x14a\x07\xABW\x80c\x8B\x85\x90+\x14a\x07\xC0W`\0\x80\xFD[\x80cp\x87*\xA5\x14a\x07fW\x80cxk\x84K\x14a\x07{W\x80c{\x0F\n\xDC\x14a\x07\x90W`\0\x80\xFD[\x80c>:\xC9\x12\x11a\x02\x7FW\x80cZ_\xA2\xD9\x11a\x02(W\x80c`\xE2td\x11a\x02\x02W\x80c`\xE2td\x14a\x06\xDEW\x80ccaPm\x14a\x06\xFEW\x80ckg\x16\xC0\x14a\x07 W\x80co\x03D\t\x14a\x07SW`\0\x80\xFD[\x80cZ_\xA2\xD9\x14a\x06vW\x80c\\\x0C\xBA3\x14a\x06\x96W\x80c`\x9D34\x14a\x06\xC9W`\0\x80\xFD[\x80cR\x9Dj\x8C\x11a\x02YW\x80cR\x9Dj\x8C\x14a\x05\xCAW\x80cT\xFDMP\x14a\x05\xF7W\x80cW\xDA\x95\x0E\x14a\x06FW`\0\x80\xFD[\x80c>:\xC9\x12\x14a\x05TW\x80c?\xC8\xCE\xF3\x14a\x05\x84W\x80cG'w\xC6\x14a\x05\xB7W`\0\x80\xFD[\x80c%\xFC*\xCE\x11a\x02\xECW\x80c0\xDB\xE5p\x11a\x02\xC6W\x80c0\xDB\xE5p\x14a\x04\xADW\x80c7\x8D\xD4\x8C\x14a\x04\xE5W\x80c7\xB1\xB2)\x14a\x04\xFFW\x80c:v\x84c\x14a\x05!W`\0\x80\xFD[\x80c%\xFC*\xCE\x14a\x04YW\x80c(\x10\xE1\xD6\x14a\x04xW\x80c*\xD6\x9A\xEB\x14a\x04\x8DW`\0\x80\xFD[\x80c \r.\xD2\x11a\x03\x1DW\x80c \r.\xD2\x14a\x03\xD1W\x80c\"*\xBFE\x14a\x03\xFFW\x80c%\x0Ei\xBD\x14a\x04?W`\0\x80\xFD[\x80c\x01\x93Q0\x14a\x03DW\x80c\x03\xC2\x92M\x14a\x03fW\x80c\x19\xEF\xFE\xB4\x14a\x03\x86W[`\0\x80\xFD[4\x80\x15a\x03PW`\0\x80\xFD[Pa\x03da\x03_6`\x04aR\xC3V[a\x0B\xCAV[\0[4\x80\x15a\x03rW`\0\x80\xFD[Pa\x03da\x03\x816`\x04aS\x1EV[a\x0E\x89V[4\x80\x15a\x03\x92W`\0\x80\xFD[P`\0Ta\x03\xB3\x90h\x01\0\0\0\0\0\0\0\0\x90\x04g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[`@Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[4\x80\x15a\x03\xDDW`\0\x80\xFD[P`\0Ta\x03\xF2\x90`\x01`\x80\x1B\x90\x04`\xFF\x16\x81V[`@Qa\x03\xC8\x91\x90aSwV[4\x80\x15a\x04\x0BW`\0\x80\xFD[Pa\x04/a\x04\x1A6`\x04aS\x9FV[`\x0C` R`\0\x90\x81R`@\x90 T`\xFF\x16\x81V[`@Q\x90\x15\x15\x81R` \x01a\x03\xC8V[4\x80\x15a\x04KW`\0\x80\xFD[P`\nTa\x04/\x90`\xFF\x16\x81V[4\x80\x15a\x04eW`\0\x80\xFD[P`\x08T[`@Q\x90\x81R` \x01a\x03\xC8V[4\x80\x15a\x04\x84W`\0\x80\xFD[Pa\x03\xF2a\x14\x11V[4\x80\x15a\x04\x99W`\0\x80\xFD[Pa\x04ja\x04\xA86`\x04aS\x1EV[a\x15\xE9V[4\x80\x15a\x04\xB9W`\0\x80\xFD[P`\x01Ta\x04\xCD\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x01a\x03\xC8V[4\x80\x15a\x04\xF1W`\0\x80\xFD[P`\rTa\x03\xF2\x90`\xFF\x16\x81V[4\x80\x15a\x05\x0BW`\0\x80\xFD[P6`\x01\x19\x81\x015`\xF0\x1C\x90\x035``\x1Ca\x04\xCDV[4\x80\x15a\x05-W`\0\x80\xFD[P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x04\xCDV[4\x80\x15a\x05`W`\0\x80\xFD[P`\0Ta\x04/\x90r\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16\x81V[4\x80\x15a\x05\x90W`\0\x80\xFD[P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x04\xCDV[a\x03da\x05\xC56`\x04aS\xBCV[a\x16\x1FV[4\x80\x15a\x05\xD6W`\0\x80\xFD[Pa\x04ja\x05\xE56`\x04aS\x9FV[`\x03` R`\0\x90\x81R`@\x90 T\x81V[4\x80\x15a\x06\x03W`\0\x80\xFD[P`@\x80Q\x80\x82\x01\x90\x91R`\x05\x81R\x7F1.8.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` \x82\x01R[`@Qa\x03\xC8\x91\x90aTSV[4\x80\x15a\x06RW`\0\x80\xFD[P`\x08T`\tTa\x06a\x91\x90\x82V[`@\x80Q\x92\x83R` \x83\x01\x91\x90\x91R\x01a\x03\xC8V[4\x80\x15a\x06\x82W`\0\x80\xFD[Pa\x04ja\x06\x916`\x04aTfV[a\x161V[4\x80\x15a\x06\xA2W`\0\x80\xFD[P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x04\xCDV[4\x80\x15a\x06\xD5W`\0\x80\xFD[Pa\x069a\x16kV[4\x80\x15a\x06\xEAW`\0\x80\xFD[Pa\x03da\x06\xF96`\x04aS\x9FV[a\x16yV[4\x80\x15a\x07\nW`\0\x80\xFD[P6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`4\x015a\x04jV[4\x80\x15a\x07,W`\0\x80\xFD[P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x03\xB3V[a\x03da\x07a6`\x04aT\x8DV[a\x19\x91V[4\x80\x15a\x07rW`\0\x80\xFD[P`\tTa\x04jV[4\x80\x15a\x07\x87W`\0\x80\xFD[Pa\x03da#2V[a\x03da\x07\x9E6`\x04aS\xBCV[a'QV[a\x03da'^V[4\x80\x15a\x07\xB7W`\0\x80\xFD[P`\x02Ta\x04jV[4\x80\x15a\x07\xCCW`\0\x80\xFD[P6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`T\x015a\x04jV[4\x80\x15a\x07\xEEW`\0\x80\xFD[P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x04jV[4\x80\x15a\x08!W`\0\x80\xFD[Pa\x08wa\x0806`\x04aTfV[`\x07` R`\0\x90\x81R`@\x90 \x80T`\x01\x90\x91\x01T`\xFF\x82\x16\x91a\x01\0\x81\x04c\xFF\xFF\xFF\xFF\x16\x91e\x01\0\0\0\0\0\x90\x91\x04`\x01`\x01`\x80\x1B\x03\x16\x90`\x01`\x01`\xA0\x1B\x03\x16\x84V[`@\x80Q\x94\x15\x15\x85Rc\xFF\xFF\xFF\xFF\x90\x93\x16` \x85\x01R`\x01`\x01`\x80\x1B\x03\x90\x91\x16\x91\x83\x01\x91\x90\x91R`\x01`\x01`\xA0\x1B\x03\x16``\x82\x01R`\x80\x01a\x03\xC8V[4\x80\x15a\x08\xC1W`\0\x80\xFD[P`@Qc\xFF\xFF\xFF\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x81R` \x01a\x03\xC8V[4\x80\x15a\t\x02W`\0\x80\xFD[P6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\x14\x015a\x04jV[4\x80\x15a\t$W`\0\x80\xFD[Pa\x03\xB3a\t36`\x04aTfV[a,\xFBV[4\x80\x15a\tDW`\0\x80\xFD[Pa\x04ja\tS6`\x04aS\x9FV[`\x0B` R`\0\x90\x81R`@\x90 T\x81V[4\x80\x15a\tqW`\0\x80\xFD[Pa\x04ja\t\x806`\x04aT\xCEV[a.\x95V[4\x80\x15a\t\x91W`\0\x80\xFD[Pa\t\xA5a\t\xA06`\x04aTfV[a0VV[`@\x80Qc\xFF\xFF\xFF\xFF\x90\x98\x16\x88R`\x01`\x01`\xA0\x1B\x03\x96\x87\x16` \x89\x01R\x95\x90\x94\x16\x94\x86\x01\x94\x90\x94R`\x01`\x01`\x80\x1B\x03\x91\x82\x16``\x86\x01R`\x80\x85\x01R\x91\x82\x16`\xA0\x84\x01R\x16`\xC0\x82\x01R`\xE0\x01a\x03\xC8V[4\x80\x15a\n\x05W`\0\x80\xFD[P`\0Ta\x03\xB3\x90g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[4\x80\x15a\n&W`\0\x80\xFD[Pa\x04ja\n56`\x04aS\x9FV[a0\xCAV[4\x80\x15a\nFW`\0\x80\xFD[P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x04jV[4\x80\x15a\nyW`\0\x80\xFD[Pa\x03da\n\x886`\x04aT\xF7V[a1\"V[4\x80\x15a\n\x99W`\0\x80\xFD[P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x03\xB3V[4\x80\x15a\n\xCCW`\0\x80\xFD[P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x04jV[4\x80\x15a\n\xFFW`\0\x80\xFD[Pa\x04/a\x0B\x0E6`\x04aTfV[`\x04` R`\0\x90\x81R`@\x90 T`\xFF\x16\x81V[4\x80\x15a\x0B/W`\0\x80\xFD[Pa\x03da\x0B>6`\x04aS\xBCV[a6~V[4\x80\x15a\x0BOW`\0\x80\xFD[Pa\x0BXa:dV[`@Qa\x03\xC8\x93\x92\x91\x90aU\x83V[4\x80\x15a\x0BsW`\0\x80\xFD[P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x04jV[4\x80\x15a\x0B\xA6W`\0\x80\xFD[Pa\x04/a\x0B\xB56`\x04aTfV[`\x06` R`\0\x90\x81R`@\x90 T`\xFF\x16\x81V[`\0\x80T`\x01`\x80\x1B\x90\x04`\xFF\x16`\x02\x81\x11\x15a\x0B\xE9Wa\x0B\xE9aS@V[\x14a\x0C\x07W`@Qc\x06\x7F\xE1\x95`\xE4\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0Tr\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16\x15a\x0CZW`@Q\x7F\x0E\xA2\xE7R\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\x01`@Q\x80\x91\x03\x90\xFD[a\x0Cs6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\x14\x015\x90V[\x90V[a\x0C\x8Aa\x0C\x856\x86\x90\x03\x86\x01\x86aU\xBEV[a:\xC1V[\x14a\x0C\xC1W`@Q\x7F\x9C\xC0\x0B[\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\x01`@Q\x80\x91\x03\x90\xFD[\x82``\x015\x82\x82`@Qa\x0C\xD6\x92\x91\x90aV2V[`@Q\x80\x91\x03\x90 \x14a\r\x15W`@Q\x7F\xD8\x1DX;\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\x01`@Q\x80\x91\x03\x90\xFD[`\0a\r^a\rY\x84\x84\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RPa;\x1D\x92PPPV[a;\x8AV[\x90P`\0a\r\x85\x82`\x08\x81Q\x81\x10a\rxWa\rxaVBV[` \x02` \x01\x01Qa=@V[\x90P` \x81Q\x11\x15a\r\xC3W`@Q\x7F\xD8\x1DX;\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\x01`@Q\x80\x91\x03\x90\xFD[` \x81\x81\x01Q\x82Q\x90\x91\x03`\x03\x1B\x1C6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`T\x015\x81\x03a\x0E\x1AW`@Q\x7F\xB8\xED\x880\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\x01`@Q\x80\x91\x03\x90\xFD[PP`\x01\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x163\x17\x90UPP`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16r\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x17\x90UPPV[`\0\x80T`\x01`\x80\x1B\x90\x04`\xFF\x16`\x02\x81\x11\x15a\x0E\xA8Wa\x0E\xA8aS@V[\x14a\x0E\xC6W`@Qc\x06\x7F\xE1\x95`\xE4\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0`\x02\x83\x81T\x81\x10a\x0E\xDBWa\x0E\xDBaVBV[\x90`\0R` `\0 \x90`\x05\x02\x01\x90P`\0a\x0E\xF6\x84a,\xFBV[\x90Pg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81\x16\x90\x82\x16\x10\x15a\x0F_W`@Q\x7F\xF2D\x0BS\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\x01`@Q\x80\x91\x03\x90\xFD[`\0\x84\x81R`\x06` R`@\x90 T`\xFF\x16\x15a\x0F\xA8W`@Q\x7F\xF1\xA9E\x81\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\x01`@Q\x80\x91\x03\x90\xFD[`\0\x84\x81R`\x05` R`@\x90 \x80T\x80\x15\x80\x15a\x0F\xC5WP\x85\x15\x15[\x15a\x10(W\x83Td\x01\0\0\0\0\x90\x04`\x01`\x01`\xA0\x1B\x03\x16`\0\x81\x15a\x0F\xEBW\x81a\x0F\xFAV[`\x01\x86\x01T`\x01`\x01`\xA0\x1B\x03\x16[\x90Pa\x10\x06\x81\x87a=\xF4V[PPP`\0\x94\x85RPP`\x06` RPP`@\x90 \x80T`\xFF\x19\x16`\x01\x17\x90UV[`\0\x86\x81R`\x07` \x90\x81R`@\x91\x82\x90 \x82Q`\x80\x81\x01\x84R\x81T`\xFF\x81\x16\x15\x15\x80\x83Ra\x01\0\x82\x04c\xFF\xFF\xFF\xFF\x16\x94\x83\x01\x94\x90\x94Re\x01\0\0\0\0\0\x90\x04`\x01`\x01`\x80\x1B\x03\x16\x93\x81\x01\x93\x90\x93R`\x01\x01T`\x01`\x01`\xA0\x1B\x03\x16``\x83\x01Ra\x10\xACW`\x01`\x01`\x80\x1B\x03`@\x82\x01R`\x01\x81R`\0\x86\x90\x03a\x10\xACW\x81\x95P[`\0\x86\x82` \x01Qc\xFF\xFF\xFF\xFF\x16a\x10\xC4\x91\x90aVnV[\x90P`\0\x83\x82\x11a\x10\xD5W\x81a\x10\xD7V[\x83[` \x84\x01Q\x90\x91Pc\xFF\xFF\xFF\xFF\x16[\x81\x81\x10\x15a\x11\xF7W`\0\x86\x82\x81T\x81\x10a\x11\x02Wa\x11\x02aVBV[`\0\x91\x82R` \x80\x83 \x90\x91\x01T\x80\x83R`\x06\x90\x91R`@\x90\x91 T\x90\x91P`\xFF\x16a\x11ZW`@Q\x7F\x9A\x07fF\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\x01`@Q\x80\x91\x03\x90\xFD[`\0`\x02\x82\x81T\x81\x10a\x11oWa\x11oaVBV[`\0\x91\x82R` \x90\x91 `\x05\x90\x91\x02\x01\x80T\x90\x91Pd\x01\0\0\0\0\x90\x04`\x01`\x01`\xA0\x1B\x03\x16\x15\x80\x15a\x11\xB6WP`\x04\x81\x01T`@\x87\x01Q`\x01`\x01`\x80\x1B\x03\x91\x82\x16\x91\x16\x11[\x15a\x11\xE2W`\x01\x81\x01T`\x01`\x01`\xA0\x1B\x03\x16``\x87\x01R`\x04\x81\x01T`\x01`\x01`\x80\x1B\x03\x16`@\x87\x01R[PP\x80\x80a\x11\xEF\x90aV\x86V[\x91PPa\x10\xE6V[Pc\xFF\xFF\xFF\xFF\x81\x81\x16` \x85\x81\x01\x91\x82R`\0\x8C\x81R`\x07\x90\x91R`@\x90\x81\x90 \x86Q\x81T\x93Q\x92\x88\x01Q\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\x90\x94\x16\x90\x15\x15\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\xFF\x16\x17a\x01\0\x92\x90\x94\x16\x91\x82\x02\x93\x90\x93\x17\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xFF\xFF\xFF\xFF\xFF\x16e\x01\0\0\0\0\0`\x01`\x01`\x80\x1B\x03\x90\x93\x16\x92\x90\x92\x02\x91\x90\x91\x17\x82U``\x85\x01Q`\x01\x90\x92\x01\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16`\x01`\x01`\xA0\x1B\x03\x90\x93\x16\x92\x90\x92\x17\x90\x91U\x84\x90\x03a\x14\x06W``\x83\x01Q`\0\x8A\x81R`\x06` R`@\x90 \x80T`\xFF\x19\x16`\x01\x17\x90U\x89\x15\x80\x15a\x13CWP`\0Tr\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16[\x15a\x13\x9EW`\x01T`\x01`\x01`\xA0\x1B\x03\x16a\x13^\x81\x8Aa=\xF4V[\x88T`\x01`\x01`\xA0\x1B\x03\x90\x91\x16d\x01\0\0\0\0\x02\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xFF\xFF\xFF\xFF\x90\x91\x16\x17\x88Ua\x14\x04V[a\x13\xCB`\x01`\x01`\xA0\x1B\x03\x82\x16\x15a\x13\xB6W\x81a\x13\xC5V[`\x01\x89\x01T`\x01`\x01`\xA0\x1B\x03\x16[\x89a=\xF4V[\x87T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xFF\xFF\xFF\xFF\x16d\x01\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x83\x16\x02\x17\x88U[P[PPPPPPPPPV[`\0\x80`\0T`\x01`\x80\x1B\x90\x04`\xFF\x16`\x02\x81\x11\x15a\x142Wa\x142aS@V[\x14a\x14PW`@Qc\x06\x7F\xE1\x95`\xE4\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0\x80R`\x06` R\x7FT\xCD\xD3i\xE4\xE8\xA8Q^R\xCAr\xEC\x81l!\x01\x83\x1A\xD1\xF1\x8B\xF4A\x02\xED\x17\x14Y\xC9\xB4\xF8T`\xFF\x16a\x14\xB4W`@Q\x7F\x9A\x07fF\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\x01`@Q\x80\x91\x03\x90\xFD[`\0`\x01`\x01`\xA0\x1B\x03\x16`\x02`\0\x81T\x81\x10a\x14\xD3Wa\x14\xD3aVBV[`\0\x91\x82R` \x90\x91 `\x05\x90\x91\x02\x01Td\x01\0\0\0\0\x90\x04`\x01`\x01`\xA0\x1B\x03\x16\x14a\x15\x01W`\x01a\x15\x04V[`\x02[`\0\x80Tg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFFB\x16h\x01\0\0\0\0\0\0\0\0\x02\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16\x81\x17\x83U\x92\x93P\x83\x92\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x17`\x01`\x80\x1B\x83`\x02\x81\x11\x15a\x15\xA8Wa\x15\xA8aS@V[\x02\x17\x90U`\x02\x81\x11\x15a\x15\xBDWa\x15\xBDaS@V[`@Q\x7F^\x18o\t\xB9\xC94\x91\xF1N'~\xEA\x7F\xAA]\xE6\xA2\xD4\xBD\xA7Zy\xAFz6\x84\xFB\xFBB\xDA`\x90`\0\x90\xA2\x90V[`\x05` R\x81`\0R`@`\0 \x81\x81T\x81\x10a\x16\x05W`\0\x80\xFD[\x90`\0R` `\0 \x01`\0\x91P\x91PPT\x81V[\x90P\x90V[a\x16,\x83\x83\x83`\x01a\x19\x91V[PPPV[`\0\x81\x81R`\x07` \x90\x81R`@\x80\x83 `\x05\x90\x92R\x82 \x80T\x82Ta\x16b\x90a\x01\0\x90\x04c\xFF\xFF\xFF\xFF\x16\x82aV\xA0V[\x95\x94PPPPPV[``a\x16\x1A`T` a>6V[a\x16\x81a#2V[`\0`\x02`\rT`\xFF\x16`\x02\x81\x11\x15a\x16\x9CWa\x16\x9CaS@V[\x03a\x16\xC0WP`\x01`\x01`\xA0\x1B\x03\x81\x16`\0\x90\x81R`\x0B` R`@\x90 Ta\x17/V[`\x01`\rT`\xFF\x16`\x02\x81\x11\x15a\x16\xD9Wa\x16\xD9aS@V[\x03a\x16\xFDWP`\x01`\x01`\xA0\x1B\x03\x81\x16`\0\x90\x81R`\x03` R`@\x90 Ta\x17/V[`@Q\x7F\x07\x8A=\xF4\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xA0\x1B\x03\x82\x16`\0\x90\x81R`\x0C` R`@\x90 T`\xFF\x16a\x18\x0CW`\x01`\x01`\xA0\x1B\x03\x82\x81\x16`\0\x81\x81R`\x0C` R`@\x90\x81\x90 \x80T`\xFF\x19\x16`\x01\x17\x90UQ\x7F~\xEE(\x8D\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\x81\x01\x91\x90\x91R`$\x81\x01\x83\x90R\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x91\x16\x90c~\xEE(\x8D\x90`D\x01`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a\x17\xF0W`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x18\x04W=`\0\x80>=`\0\xFD[PPPPPPV[\x80`\0\x03a\x18FW`@Q\x7F\x17\xBF\xE5\xF7\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xA0\x1B\x03\x82\x81\x16`\0\x81\x81R`\x0B` \x90\x81R`@\x80\x83 \x83\x90U`\x03\x90\x91R\x80\x82 \x91\x90\x91UQ\x7F\xF3\xFE\xF3\xA3\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\x81\x01\x91\x90\x91R`$\x81\x01\x83\x90R\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x91\x16\x90c\xF3\xFE\xF3\xA3\x90`D\x01`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a\x18\xECW`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x19\0W=`\0\x80>=`\0\xFD[PPPP`\0\x82`\x01`\x01`\xA0\x1B\x03\x16\x82`@Q`\0`@Q\x80\x83\x03\x81\x85\x87Z\xF1\x92PPP=\x80`\0\x81\x14a\x19QW`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=`\0` \x84\x01>a\x19VV[``\x91P[PP\x90P\x80a\x16,W`@Q\x7F\x83\xE6\xCCk\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\x01`@Q\x80\x91\x03\x90\xFD[`\0\x80T`\x01`\x80\x1B\x90\x04`\xFF\x16`\x02\x81\x11\x15a\x19\xB0Wa\x19\xB0aS@V[\x14a\x19\xCEW`@Qc\x06\x7F\xE1\x95`\xE4\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0`\x02\x84\x81T\x81\x10a\x19\xE3Wa\x19\xE3aVBV[`\0\x91\x82R` \x91\x82\x90 `@\x80Q`\xE0\x81\x01\x82R`\x05\x90\x93\x02\x90\x91\x01\x80Tc\xFF\xFF\xFF\xFF\x81\x16\x84R`\x01`\x01`\xA0\x1B\x03d\x01\0\0\0\0\x90\x91\x04\x81\x16\x94\x84\x01\x94\x90\x94R`\x01\x81\x01T\x90\x93\x16\x90\x82\x01R`\x02\x82\x01T`\x01`\x01`\x80\x1B\x03\x90\x81\x16``\x83\x01R`\x03\x83\x01T`\x80\x83\x01\x81\x90R`\x04\x90\x93\x01T\x80\x82\x16`\xA0\x84\x01R`\x01`\x80\x1B\x90\x04\x16`\xC0\x82\x01R\x91P\x85\x14a\x1A\xA7W`@Q\x7F0\x14\x032\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\x01`@Q\x80\x91\x03\x90\xFD[`\xA0\x81\x01Q`\0\x83\x15`\x01`\x01`\x80\x1B\x03\x83\x16\x17`\x01\x1B\x90P`\0a\x1B<\x82`\x01`\x01`\x80\x1B\x03\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1Fc\x07\xC4\xAC\xDD`\xE0\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\xFF\x16\x90P\x86\x15\x80a\x1BwWPa\x1Bt\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x02aVnV[\x81\x14[\x80\x15a\x1B\x81WP\x84\x15[\x15a\x1B\xB8W`@Q\x7F\xA4&7\xBC\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\x01`@Q\x80\x91\x03\x90\xFD[`\0Tr\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16\x80\x15a\x1B\xDEWP\x86\x15[\x15a\x1C\x15W`@Q\x7F\x0E\xA2\xE7R\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\x01`@Q\x80\x91\x03\x90\xFD[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81\x11\x15a\x1CoW`@Q\x7FV\xF5{+\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\x01`@Q\x80\x91\x03\x90\xFD[a\x1C\x9A\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01aVnV[\x81\x03a\x1C\xACWa\x1C\xAC\x86\x88\x85\x88a>jV[4a\x1C\xB6\x83a.\x95V[\x14a\x1C\xEDW`@Q\x7F\x86 \xAA\x19\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\x01`@Q\x80\x91\x03\x90\xFD[`\0a\x1C\xF8\x88a,\xFBV[\x90Pg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81\x16\x90\x82\x16\x03a\x1D`W`@Q\x7F3\x81\xD1\x14\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\x01`@Q\x80\x91\x03\x90\xFD[`\0a\x1D\x8D`\x01\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0aV\xA0V[\x83\x03a\x1E\xB1W\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16c}\xC0\xD1\xD0`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x1D\xF1W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x1E\x15\x91\x90aV\xB7V[`\x01`\x01`\xA0\x1B\x03\x16c\xF3\xF4\x80\xD9`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x1ERW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x1Ev\x91\x90aV\xD4V[a\x1E\xAA\x90\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16aV\xEDV[\x90Pa\x1FDV[a\x1E\xDC`\x01\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0aV\xA0V[\x83\x03a\x1F\x17Wa\x1E\xAA\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\x02aW\x19V[P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16[a\x1Fx\x81\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16aWIV[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a\x1F\x93\x83g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90V[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x11\x15a\x1F\xDAWa\x1F\xD7\x81\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16aWIV[\x91P[`\0`@\x83\x90\x1BB\x17`\0\x8A\x81R`\x80\x87\x90\x1B`\x01`\x01`\x80\x1B\x03\x8D\x16\x17` R`@\x81 \x91\x92P\x90`\0\x81\x81R`\x04` R`@\x90 T\x90\x91P`\xFF\x16\x15a OW`@Q\x7F\x80I~;\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x04`\0\x83\x81R` \x01\x90\x81R` \x01`\0 `\0a\x01\0\n\x81T\x81`\xFF\x02\x19\x16\x90\x83\x15\x15\x02\x17\x90UP`\x02`@Q\x80`\xE0\x01`@R\x80\x8Dc\xFF\xFF\xFF\xFF\x16\x81R` \x01`\0`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x013`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x014`\x01`\x01`\x80\x1B\x03\x16\x81R` \x01\x8C\x81R` \x01\x88`\x01`\x01`\x80\x1B\x03\x16\x81R` \x01\x84`\x01`\x01`\x80\x1B\x03\x16\x81RP\x90\x80`\x01\x81T\x01\x80\x82U\x80\x91PP`\x01\x90\x03\x90`\0R` `\0 \x90`\x05\x02\x01`\0\x90\x91\x90\x91\x90\x91P`\0\x82\x01Q\x81`\0\x01`\0a\x01\0\n\x81T\x81c\xFF\xFF\xFF\xFF\x02\x19\x16\x90\x83c\xFF\xFF\xFF\xFF\x16\x02\x17\x90UP` \x82\x01Q\x81`\0\x01`\x04a\x01\0\n\x81T\x81`\x01`\x01`\xA0\x1B\x03\x02\x19\x16\x90\x83`\x01`\x01`\xA0\x1B\x03\x16\x02\x17\x90UP`@\x82\x01Q\x81`\x01\x01`\0a\x01\0\n\x81T\x81`\x01`\x01`\xA0\x1B\x03\x02\x19\x16\x90\x83`\x01`\x01`\xA0\x1B\x03\x16\x02\x17\x90UP``\x82\x01Q\x81`\x02\x01`\0a\x01\0\n\x81T\x81`\x01`\x01`\x80\x1B\x03\x02\x19\x16\x90\x83`\x01`\x01`\x80\x1B\x03\x16\x02\x17\x90UP`\x80\x82\x01Q\x81`\x03\x01U`\xA0\x82\x01Q\x81`\x04\x01`\0a\x01\0\n\x81T\x81`\x01`\x01`\x80\x1B\x03\x02\x19\x16\x90\x83`\x01`\x01`\x80\x1B\x03\x16\x02\x17\x90UP`\xC0\x82\x01Q\x81`\x04\x01`\x10a\x01\0\n\x81T\x81`\x01`\x01`\x80\x1B\x03\x02\x19\x16\x90\x83`\x01`\x01`\x80\x1B\x03\x16\x02\x17\x90UPPP`\x05`\0\x8C\x81R` \x01\x90\x81R` \x01`\0 `\x01`\x02\x80T\x90Pa\"F\x91\x90aV\xA0V[\x81T`\x01\x81\x01\x83U`\0\x92\x83R` \x80\x84 \x90\x91\x01\x91\x90\x91U3\x82R`\x0B\x90R`@\x81 \x80T4\x92\x90a\"z\x90\x84\x90aVnV[\x92PP\x81\x90UP\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16c\xD0\xE3\r\xB04`@Q\x82c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01`\0`@Q\x80\x83\x03\x81\x85\x88\x80;\x15\x80\x15a\"\xDCW`\0\x80\xFD[PZ\xF1\x15\x80\x15a\"\xF0W=`\0\x80>=`\0\xFD[PP`@Q3\x93P\x8D\x92P\x8E\x91P\x7F\x9B2Et\x0E\xC3\xB1U\t\x8AU\xBE\x84\x95zM\xA1>\xAF\x7F\x14\xA8\xBCoS\x12l\x0B\x93P\xF2\xBE\x90`\0\x90\xA4PPPPPPPPPPPPV[`\x02`\rT`\xFF\x16`\x02\x81\x11\x15a#KWa#KaS@V[\x14\x80a#mWP`\x01`\rT`\xFF\x16`\x02\x81\x11\x15a#kWa#kaS@V[\x14[\x15a#tWV[`\0`\rT`\xFF\x16`\x02\x81\x11\x15a#\x8DWa#\x8DaS@V[\x14a#\xC4W`@Q\x7F\x07\x8A=\xF4\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\x01`@Q\x80\x91\x03\x90\xFD[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16c\\\x97Z\xBB`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a$\"W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a$F\x91\x90aWrV[\x15a$}W`@Q\x7F7\x9A~\xD9\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\x01`@Q\x80\x91\x03\x90\xFD[`\0Th\x01\0\0\0\0\0\0\0\0\x90\x04g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\0\x03a$\xD9W`@Q\x7F\xC1\x05&\n\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\x01`@Q\x80\x91\x03\x90\xFD[`@Q\x7F\x03\x14\xD2\xB3\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\x81R0`\x04\x82\x01R`\0\x90\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16\x90c\x03\x14\xD2\xB3\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a%YW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a%}\x91\x90aWrV[\x90P\x80a%\xB6W`@Q\x7FHQ\xBD\x9B\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\x01`@Q\x80\x91\x03\x90\xFD[`@Q\x7F\x17\xCF!\xA9\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\x81R0`\x04\x82\x01R\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16\x90c\x17\xCF!\xA9\x90`$\x01`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a&0W`\0\x80\xFD[PZ\xF1\x92PPP\x80\x15a&AWP`\x01[P`@Q\x7FIk\x9C\x16\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\x81R0`\x04\x82\x01R`\0\x90\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16\x90cIk\x9C\x16\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a&\xC2W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a&\xE6\x91\x90aWrV[\x90P\x80\x15a'\0W`\r\x80T`\xFF\x19\x16`\x01\x17\x90Ua'\x0EV[`\r\x80T`\xFF\x19\x16`\x02\x17\x90U[`\rT`@Q\x7F\x99\x08\xEA\xAC\x06E\xDF\x9D\x07\x04\xD0j\xDC\x9E\x073|\x95\x1D\xE2\xF0k_(6\x15\x1DH\xD5\xE4r/\x91a'E\x91`\xFF\x90\x91\x16\x90aSwV[`@Q\x80\x91\x03\x90\xA1PPV[a\x16,\x83\x83\x83`\0a\x19\x91V[`\0Tq\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16\x15a'\xB0W`@Q\x7F\r\xC1I\xF0\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\x01`@Q\x80\x91\x03\x90\xFD[`\0\x80\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16c\xD8>\xF2g`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01`@\x80Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a(\x10W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a(4\x91\x90aW\x8FV[\x90\x92P\x90P\x81a(pW`@Q\x7Fjk\xC3\xB2\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\x01`@Q\x80\x91\x03\x90\xFD[`@\x80Q\x80\x82\x01\x90\x91R\x82\x81R` \x01\x81\x90R`\x08\x82\x90U`\t\x81\x90U`z6\x14a(\xC7W`@Q\x7F\x98$\xBD\xAB\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\x01`@Q\x80\x91\x03\x90\xFD[\x806`\x01\x19\x81\x015`\xF0\x1C\x90\x03`T\x015\x11a)%W`@Q\x7F\xF4\x029\xDB\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\x81R6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\x14\x015`\x04\x82\x01R`$\x01[`@Q\x80\x91\x03\x90\xFD[`@\x80Q`\xE0\x81\x01\x82Rc\xFF\xFF\xFF\xFF\x80\x82R`\0` \x80\x84\x01\x82\x81R6`\x01\x19\x81\x015`\xF0\x1C\x90\x03\x805``\x90\x81\x1C\x87\x89\x01\x81\x81R`\x01`\x01`\x80\x1B\x034\x81\x81\x16\x94\x8B\x01\x94\x85R`\x14\x90\x95\x015`\x80\x8B\x01\x90\x81R`\x01`\xA0\x8C\x01\x81\x81RB\x84\x16`\xC0\x8E\x01\x90\x81R`\x02\x80T\x93\x84\x01\x81U\x8CR\x9CQ\x7F@W\x87\xFA\x12\xA8#\xE0\xF2\xB7c\x1C\xC4\x1B;\xA8\x82\x8B3!\xCA\x81\x11\x11\xFAu\xCD:\xA3\xBBZ\xCE`\x05\x90\x93\x02\x92\x83\x01\x80T\x9AQ\x91\x90\x9D\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x9A\x16\x99\x90\x99\x17d\x01\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x9A\x8B\x16\x02\x17\x90\x9BU\x92Q\x7F@W\x87\xFA\x12\xA8#\xE0\xF2\xB7c\x1C\xC4\x1B;\xA8\x82\x8B3!\xCA\x81\x11\x11\xFAu\xCD:\xA3\xBBZ\xCF\x84\x01\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x91\x90\x98\x16\x17\x90\x96U\x92Q\x7F@W\x87\xFA\x12\xA8#\xE0\xF2\xB7c\x1C\xC4\x1B;\xA8\x82\x8B3!\xCA\x81\x11\x11\xFAu\xCD:\xA3\xBBZ\xD0\x82\x01\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x91\x85\x16\x91\x90\x91\x17\x90U\x93Q\x7F@W\x87\xFA\x12\xA8#\xE0\xF2\xB7c\x1C\xC4\x1B;\xA8\x82\x8B3!\xCA\x81\x11\x11\xFAu\xCD:\xA3\xBBZ\xD1\x85\x01U\x95Q\x96Q\x96\x81\x16`\x01`\x80\x1B\x97\x90\x91\x16\x96\x90\x96\x02\x95\x90\x95\x17\x7F@W\x87\xFA\x12\xA8#\xE0\xF2\xB7c\x1C\xC4\x1B;\xA8\x82\x8B3!\xCA\x81\x11\x11\xFAu\xCD:\xA3\xBBZ\xD2\x90\x91\x01U\x81Tq\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x17\x82U\x91\x81R`\x0B\x90\x91R\x91\x82 \x80T\x91\x92\x90\x91a+f\x90\x84\x90aVnV[\x92PP\x81\x90UP\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16c\xD0\xE3\r\xB04`@Q\x82c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01`\0`@Q\x80\x83\x03\x81\x85\x88\x80;\x15\x80\x15a+\xC8W`\0\x80\xFD[PZ\xF1\x15\x80\x15a+\xDCW=`\0\x80>=`\0\xFD[PP`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\x16Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x17\x90UPP`@\x80Q\x7F<\x9F9|\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\x90Q\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0c\xFF\xFF\xFF\xFF\x16\x92P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16\x91c<\x9F9|\x91`\x04\x80\x83\x01\x92` \x92\x91\x90\x82\x90\x03\x01\x81\x86Z\xFA\x15\x80\x15a,\xBBW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a,\xDF\x91\x90aW\xB3V[`\n\x80T`\xFF\x19\x16c\xFF\xFF\xFF\xFF\x92\x90\x92\x16\x92\x90\x92\x14\x17\x90UPPV[`\0\x80`\0T`\x01`\x80\x1B\x90\x04`\xFF\x16`\x02\x81\x11\x15a-\x1CWa-\x1CaS@V[\x14a-:W`@Qc\x06\x7F\xE1\x95`\xE4\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0`\x02\x83\x81T\x81\x10a-OWa-OaVBV[`\0\x91\x82R` \x82 `\x05\x90\x91\x02\x01\x80T\x90\x92Pc\xFF\xFF\xFF\xFF\x90\x81\x16\x14a-\xB5W\x81T`\x02\x80T\x90\x91c\xFF\xFF\xFF\xFF\x16\x90\x81\x10a-\x8DWa-\x8DaVBV[\x90`\0R` `\0 \x90`\x05\x02\x01`\x04\x01`\x10\x90T\x90a\x01\0\n\x90\x04`\x01`\x01`\x80\x1B\x03\x16\x90P[`\x04\x82\x01T`\0\x90a-\xE0\x90`\x01`\x80\x1B\x90\x04g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90V[a-\xF4\x90g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16BaV\xA0V[a.\na-\xD3\x84`\x01`\x01`\x80\x1B\x03\x16`@\x1C\x90V[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a.\x1E\x91\x90aVnV[\x90Pg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x11a.kW\x80a\x16bV[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x95\x94PPPPPV[`\0\x80a/\x12\x83`\x01`\x01`\x80\x1B\x03\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1Fc\x07\xC4\xAC\xDD`\xE0\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\xFF\x16\x90P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81\x11\x15a/qW`@Q\x7FV\xF5{+\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\x01`@Q\x80\x91\x03\x90\xFD[d.\x90\xED\xD0\0b\x06\x1A\x80c\x11\xE1\xA3\0`\0a/\x8C\x83\x83aW\xEFV[\x90Pg\r\xE0\xB6\xB3\xA7d\0\0`\0a/\xC3\x82\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0aX\x03V[\x90P`\0a/\xE1a/\xDCg\r\xE0\xB6\xB3\xA7d\0\0\x86aX\x03V[a?\xF9V[\x90P`\0a/\xEF\x84\x84aBKV[\x90P`\0a/\xFD\x83\x83aB\x9AV[\x90P`\0a0\n\x82aB\xC8V[\x90P`\0a0)\x82a0$g\r\xE0\xB6\xB3\xA7d\0\0\x8FaX\x03V[aD\xB0V[\x90P`\0a07\x8B\x83aB\x9AV[\x90Pa0C\x81\x8DaX\x03V[\x9F\x9EPPPPPPPPPPPPPPPV[`\x02\x81\x81T\x81\x10a0fW`\0\x80\xFD[`\0\x91\x82R` \x90\x91 `\x05\x90\x91\x02\x01\x80T`\x01\x82\x01T`\x02\x83\x01T`\x03\x84\x01T`\x04\x90\x94\x01Tc\xFF\xFF\xFF\xFF\x84\x16\x95Pd\x01\0\0\0\0\x90\x93\x04`\x01`\x01`\xA0\x1B\x03\x90\x81\x16\x94\x92\x16\x92`\x01`\x01`\x80\x1B\x03\x91\x82\x16\x92\x91\x80\x82\x16\x91`\x01`\x80\x1B\x90\x04\x16\x87V[`\0`\x02`\rT`\xFF\x16`\x02\x81\x11\x15a0\xE5Wa0\xE5aS@V[\x03a1\x06WP`\x01`\x01`\xA0\x1B\x03\x16`\0\x90\x81R`\x0B` R`@\x90 T\x90V[P`\x01`\x01`\xA0\x1B\x03\x16`\0\x90\x81R`\x03` R`@\x90 T\x90V[`\0\x80T`\x01`\x80\x1B\x90\x04`\xFF\x16`\x02\x81\x11\x15a1AWa1AaS@V[\x14a1_W`@Qc\x06\x7F\xE1\x95`\xE4\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0`\x02\x87\x81T\x81\x10a1tWa1taVBV[`\0\x91\x82R` \x82 `\x05\x91\x90\x91\x02\x01`\x04\x81\x01T\x90\x92P`\x01`\x01`\x80\x1B\x03\x16\x90\x87\x15\x82\x17`\x01\x1B\x90Pa1\xCA\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01aVnV[a2D\x82`\x01`\x01`\x80\x1B\x03\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1Fc\x07\xC4\xAC\xDD`\xE0\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\xFF\x16\x14a2~W`@Q\x7F_S\xDD\x98\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\x01`@Q\x80\x91\x03\x90\xFD[`\0\x80\x89\x15a3ZWa2\xD1\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0aV\xA0V[`\x01\x90\x1Ba2\xE7\x84`\x01`\x01`\x80\x1B\x03\x16aD\xE1V[`\x01`\x01`\x80\x1B\x03\x16a2\xFA\x91\x90aX\"V[\x15a3.Wa3%a3\x16`\x01`\x01`\x01`\x80\x1B\x03\x87\x16aX6V[\x86Tc\xFF\xFF\xFF\xFF\x16`\0aEgV[`\x03\x01Ta3PV[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0[\x91P\x84\x90Pa3{V[`\x03\x85\x01T\x91Pa3xa3\x16`\x01`\x01`\x80\x1B\x03\x86\x16`\x01aXVV[\x90P[`\x08\x82\x90\x1B`\x08\x8A\x8A`@Qa3\x92\x92\x91\x90aV2V[`@Q\x80\x91\x03\x90 \x90\x1B\x14a3\xD3W`@Q\x7FieP\xFF\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\x01`@Q\x80\x91\x03\x90\xFD[`\0a3\xDE\x8CaF0V[\x90P`\0a3\xED\x83`\x03\x01T\x90V[`@Q\x7F\xE1L\xED2\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\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16\x90c\xE1L\xED2\x90a4Z\x90\x8F\x90\x8F\x90\x8F\x90\x8F\x90\x8A\x90`\x04\x01aX\xC1V[` `@Q\x80\x83\x03\x81`\0\x87Z\xF1\x15\x80\x15a4yW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a4\x9D\x91\x90aV\xD4V[`\x04\x85\x01T\x91\x14\x91P`\0\x90`\x02\x90a5&\x90`\x01`\x01`\x80\x1B\x03\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1Fc\x07\xC4\xAC\xDD`\xE0\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[a5\xA0\x89`\x01`\x01`\x80\x1B\x03\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1Fc\x07\xC4\xAC\xDD`\xE0\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[a5\xAA\x91\x90aX\xFBV[a5\xB4\x91\x90aY\x1EV[`\xFF\x16\x15\x90P\x81\x15\x15\x81\x03a5\xF5W`@Q\x7F\xFBN@\xDD\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\x01`@Q\x80\x91\x03\x90\xFD[\x87Td\x01\0\0\0\0\x90\x04`\x01`\x01`\xA0\x1B\x03\x16\x15a6?W`@Q\x7F\x90q\xE6\xAF\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\x01`@Q\x80\x91\x03\x90\xFD[PP\x85T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xFF\xFF\xFF\xFF\x163d\x01\0\0\0\0\x02\x17\x90\x95UPPPPPPPPPPPV[`\0\x80T`\x01`\x80\x1B\x90\x04`\xFF\x16`\x02\x81\x11\x15a6\x9DWa6\x9DaS@V[\x14a6\xBBW`@Qc\x06\x7F\xE1\x95`\xE4\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0\x80`\0\x80a6\xCA\x86aF_V[\x93P\x93P\x93P\x93P`\0a6\xE0\x85\x85\x85\x85aI\xB8V[\x90P`\0\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16c}\xC0\xD1\xD0`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a7BW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a7f\x91\x90aV\xB7V[\x90P`\x01\x89\x03a83W`\x01`\x01`\xA0\x1B\x03\x81\x16cR\xF0\xF3\xAD\x8A\x84a7\x976`\x01\x19\x81\x015`\xF0\x1C\x90\x03`4\x015\x90V[`@Q\x7F\xFF\xFF\xFF\xFF\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`\xE0\x86\x90\x1B\x16\x81R`\x04\x81\x01\x93\x90\x93R`$\x83\x01\x91\x90\x91R`D\x82\x01R` `d\x82\x01R`\x84\x81\x01\x8A\x90R`\xA4\x01[` `@Q\x80\x83\x03\x81`\0\x87Z\xF1\x15\x80\x15a8\tW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a8-\x91\x90aV\xD4V[Pa\x14\x06V[`\x02\x89\x03a8RW`\x01`\x01`\xA0\x1B\x03\x81\x16cR\xF0\xF3\xAD\x8A\x84\x89a7\x97V[`\x03\x89\x03a8qW`\x01`\x01`\xA0\x1B\x03\x81\x16cR\xF0\xF3\xAD\x8A\x84\x87a7\x97V[`\x04\x89\x03a9\xA6W`\0a8\xAE`\x01`\x01`\x80\x1B\x03\x85\x16\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0aJWV[`\tTa8\xBB\x91\x90aVnV[a8\xC6\x90`\x01aVnV[\x90P6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`T\x015\x81\x10a8\xF3W6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`T\x015a8\xF5V[\x80[\x90P`\x01`\x01`\xA0\x1B\x03\x82\x16cR\xF0\xF3\xAD\x8B\x85`@Q`\xE0\x84\x90\x1B\x7F\xFF\xFF\xFF\xFF\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\x16\x81R`\x04\x81\x01\x92\x90\x92R`$\x82\x01R`\xC0\x84\x90\x1B`D\x82\x01R`\x08`d\x82\x01R`\x84\x81\x01\x8B\x90R`\xA4\x01` `@Q\x80\x83\x03\x81`\0\x87Z\xF1\x15\x80\x15a9{W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a9\x9F\x91\x90aV\xD4V[PPa\x14\x06V[`\x05\x89\x03a:2W`@Q\x7FR\xF0\xF3\xAD\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\x81\x01\x8A\x90R`$\x81\x01\x83\x90R\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\xC0\x1B`D\x82\x01R`\x08`d\x82\x01R`\x84\x81\x01\x88\x90R`\x01`\x01`\xA0\x1B\x03\x82\x16\x90cR\xF0\xF3\xAD\x90`\xA4\x01a7\xEAV[`@Q\x7F\xFF\x13~e\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\x01`@Q\x80\x91\x03\x90\xFD[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x006`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\x14\x015``a:\x9Fa\x16kV[\x90P\x90\x91\x92V[`\0\x81\x83\x10\x15a:\xB6W\x81a:\xB8V[\x82[\x90P[\x92\x91PPV[`\0\x81`\0\x01Q\x82` \x01Q\x83`@\x01Q\x84``\x01Q`@Q` \x01a;\0\x94\x93\x92\x91\x90\x93\x84R` \x84\x01\x92\x90\x92R`@\x83\x01R``\x82\x01R`\x80\x01\x90V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 \x90P\x91\x90PV[`@\x80Q\x80\x82\x01\x90\x91R`\0\x80\x82R` \x82\x01R\x81Q`\0\x03a;lW`@Q\x7FZ\xB4X\xFB\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\x01`@Q\x80\x91\x03\x90\xFD[P`@\x80Q\x80\x82\x01\x90\x91R\x81Q\x81R` \x91\x82\x01\x91\x81\x01\x91\x90\x91R\x90V[```\0\x80`\0a;\x9A\x85aJ\xECV[\x91\x94P\x92P\x90P`\x01\x81`\x01\x81\x11\x15a;\xB5Wa;\xB5aS@V[\x14a;\xECW`@Q\x7FK\x9Cj\xBE\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\x01`@Q\x80\x91\x03\x90\xFD[\x84Qa;\xF8\x83\x85aVnV[\x14a-\x90\x84\x90aVnV[\x90\x91UPPPPV[`@Q\x81\x81R6`\x01\x19\x81\x015`\xF0\x1C\x90\x03\x82\x84\x82\x01` \x84\x017\x82` \x83\x01\x01`\0\x81R` \x81\x01`@RPP\x92\x91PPV[`\0a>\x80`\x01`\x01`\x80\x1B\x03\x84\x16`\x01aXVV[\x90P`\0a>\x90\x82\x86`\x01aEgV[\x90P`\0\x86\x90\x1A\x83\x80a?ZWPa>\xC9`\x02\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0aX\"V[`\x04\x83\x01T`\x02\x90a?K\x90`\x01`\x01`\x80\x1B\x03\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1Fc\x07\xC4\xAC\xDD`\xE0\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[a?U\x91\x90aY\x1EV[`\xFF\x16\x14[\x15a?\xB2W`\xFF\x81\x16`\x01\x14\x80a?tWP`\xFF\x81\x16`\x02\x14[a?\xADW`@Q\x7F\xF4\x029\xDB\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\x81\x01\x88\x90R`$\x01a)\x1CV[a?\xF0V[`\xFF\x81\x16\x15a?\xF0W`@Q\x7F\xF4\x029\xDB\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\x81\x01\x88\x90R`$\x01a)\x1CV[PPPPPPPV[`\x01`\x01`\x80\x1B\x03\x81\x11`\x07\x1B\x81\x81\x1Cg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x10`\x06\x1B\x17\x81\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x81\x81\x1Ca\xFF\xFF\x10`\x04\x1B\x17\x81\x81\x1C`\xFF\x10`\x03\x1B\x17`\0\x82\x13a@OWc\x16\x15\xE68`\0R`\x04`\x1C\xFD[\x7F\xF8\xF9\xF9\xFA\xF9\xFD\xFA\xFB\xF9\xFD\xFC\xFD\xFA\xFB\xFC\xFE\xF9\xFA\xFD\xFA\xFC\xFC\xFB\xFE\xFA\xFA\xFC\xFB\xFF\xFF\xFF\xFFo\x84!\x08B\x10\x84!\x08\xCCc\x18\xC6\xDBmT\xBE\x83\x83\x1C\x1C`\x1F\x16\x1A\x18\x90\x81\x1B`\x9F\x90\x81\x1ClFWr\xB2\xBB\xBB_\x82K\x15 z0\x81\x01\x81\x02``\x90\x81\x1Dm\x03\x88\xEA\xA2t\x12\xD5\xAC\xA0&\x81]cn\x01\x82\x02\x81\x1Dm\r\xF9\x9A\xC5\x02\x03\x1B\xF9S\xEF\xF4r\xFD\xCC\x01\x82\x02\x81\x1Dm\x13\xCD\xFF\xB2\x9DQ\xD9\x93\"\xBD\xFF_\"\x11\x01\x82\x02\x81\x1Dm\n\x0Ft #\xDE\xF7\x83\xA3\x07\xA9\x86\x91.\x01\x82\x02\x81\x1Dm\x01\x92\r\x80C\xCA\x89\xB5#\x92S(NB\x01\x82\x02\x81\x1Dl\x0Bz\x86\xD77Th\xFA\xC6g\xA0\xA5'\x01l)P\x8EE\x85C\xD8\xAAM\xF2\xAB\xEEx\x83\x01\x83\x02\x82\x1Dm\x019`\x1A.\xFA\xBEq~`L\xBBH\x94\x01\x83\x02\x82\x1Dm\x02$\x7Fz{e\x942\x06I\xAA\x03\xAB\xA1\x01\x83\x02\x82\x1D\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFFs\xC0\xC7\x16\xA5\x94\xE0\rT\xE3\xC4\xCB\xC9\x01\x83\x02\x82\x1D\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFD\xC7\xB8\x8CB\x0ES\xA9\x89\x053\x12\x9Fo\x01\x83\x02\x90\x91\x1D\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFFF_\xDA'\xEBMc\xDE\xD4t\xE5\xF82\x01\x90\x91\x02\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF5\xF6\xAF\x8F{3\x96dO\x18\xE1W\x96\0\0\0\0\0\0\0\0\0\0\0\0\x01\x05q\x13@\xDA\xA0\xD5\xF7i\xDB\xA1\x91\\\xEFY\xF0\x81ZU\x06\x02\x91\x90\x03}\x02g\xA3l\x0C\x95\xB3\x97Z\xB3\xEE[ :v\x14\xA3\xF7Ss\xF0G\xD8\x03\xAE{f\x87\xF2\xB3\x02\x01}W\x11^G\x01\x8Cqw\xEE\xBF|\xD3p\xA35j\x1Bxc\0\x8AZ\xE8\x02\x8Cr\xB8\x86B\x84\x01`\xAE\x1D\x90V[`\0x\x12r]\xD1\xD2C\xAB\xA0\xE7_\xE6E\xCCHs\xF9\xE6Z\xFEh\x8C\x92\x8E\x1F!\x83\x11g\r\xE0\xB6\xB3\xA7d\0\0\x02\x15\x82\x02aB\x88Wc|_H}`\0R`\x04`\x1C\xFD[Pg\r\xE0\xB6\xB3\xA7d\0\0\x91\x90\x91\x02\x04\x90V[`\0\x81`\0\x19\x04\x83\x11\x82\x02\x15aB\xB8Wc\xBA\xC6^[`\0R`\x04`\x1C\xFD[Pg\r\xE0\xB6\xB3\xA7d\0\0\x91\x02\x04\x90V[`\0\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFD\xC0\xD0W\t%\xA4b\xD7\x82\x13aB\xF6W\x91\x90PV[h\x07U\xBFy\x8BJ\x1B\xF1\xE5\x82\x12aC\x14Wc\xA3{\xFE\xC9`\0R`\x04`\x1C\xFD[e\x03x-\xAC\xE9\xD9`N\x83\x90\x1B\x05\x91P`\0``k\xB1r\x17\xF7\xD1\xCFy\xAB\xC9\xE3\xB3\x98\x84\x82\x1B\x05k\x80\0\0\0\0\0\0\0\0\0\0\0\x01\x90\x1Dk\xB1r\x17\xF7\xD1\xCFy\xAB\xC9\xE3\xB3\x98\x81\x02\x90\x93\x03\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xDB\xF3\xCC\xF1`M&4P\xF0*U\x04\x81\x01\x81\x02``\x90\x81\x1Dm\x02wYI\x91\xCF\xC8_n$a\x83|\xD9\x01\x82\x02\x81\x1D\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE5\xAD\xED\xAA\x1C\xB0\x95\xAF\x9EM\xA1\x0E6<\x01\x82\x02\x81\x1Dm\xB1\xBB\xB2\x01\xF4C\xCF\x96/\x1A\x1D=\xB4\xA5\x01\x82\x02\x81\x1D\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFD8\xDCw&\x08\xB0\xAEV\xCC\xE0\x12\x96\xC0\xEB\x01\x82\x02\x81\x1Dn\x05\x18\x0B\xB1G\x99\xABG\xA8\xA8\xCB*R}W\x01m\x02\xD1g W{\xD1\x9B\xF6\x14\x17o\xE9\xEAl\x10\xFEh\xE7\xFD7\xD0\0{q?vP\x84\x01\x84\x02\x83\x1D\x90\x81\x01\x90\x84\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE,i\x81,\xF0;\x07c\xFDEJ\x8F~\x01\x02\x90\x91\x1Dn\x05\x87\xF5\x03\xBBn\xA2\x9D%\xFC\xB7@\x19dP\x01\x90\x91\x02y\xD85\xEB\xBA\x82L\x98\xFB1\xB8;,\xA4\\\0\0\0\0\0\0\0\0\0\0\0\0\x01\x05t\x02\x9D\x9D\xC3\x85c\xC3.\\/m\xC1\x92\xEEp\xEFe\xF9\x97\x8A\xF3\x02`\xC3\x93\x90\x93\x03\x92\x90\x92\x1C\x92\x91PPV[`\0a:\xB8g\r\xE0\xB6\xB3\xA7d\0\0\x83aD\xC8\x86a?\xF9V[aD\xD2\x91\x90aY@V[aD\xDC\x91\x90aY\xFCV[aB\xC8V[`\0\x80aEU\x83~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1Fc\x07\xC4\xAC\xDD`\xE0\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\x01`\xFF\x91\x90\x91\x16\x1B\x90\x92\x03\x92\x91PPV[`\0\x80\x82aE\xA7WaE\xA2`\x01`\x01`\x80\x1B\x03\x86\x16\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0aP\x1FV[aE\xB9V[aE\xB9\x85`\x01`\x01`\x80\x1B\x03\x16aQ^V[\x90P`\x02\x84\x81T\x81\x10aE\xCEWaE\xCEaVBV[\x90`\0R` `\0 \x90`\x05\x02\x01\x91P[`\x04\x82\x01T`\x01`\x01`\x80\x1B\x03\x82\x81\x16\x91\x16\x14aF(W\x81T`\x02\x80T\x90\x91c\xFF\xFF\xFF\xFF\x16\x90\x81\x10aF\x13WaF\x13aVBV[\x90`\0R` `\0 \x90`\x05\x02\x01\x91PaE\xDFV[P\x93\x92PPPV[`\0\x80`\0\x80`\0aFA\x86aF_V[\x93P\x93P\x93P\x93PaFU\x84\x84\x84\x84aI\xB8V[\x96\x95PPPPPPV[`\0\x80`\0\x80`\0\x85\x90P`\0`\x02\x82\x81T\x81\x10aF\x7FWaF\x7FaVBV[`\0\x91\x82R` \x90\x91 `\x04`\x05\x90\x92\x02\x01\x90\x81\x01T\x90\x91P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90aG4\x90`\x01`\x01`\x80\x1B\x03\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1Fc\x07\xC4\xAC\xDD`\xE0\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\xFF\x16\x11aGnW`@Q\x7F\xB3K\\\"\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\x01`@Q\x80\x91\x03\x90\xFD[`\0\x81[`\x04\x83\x01T\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90aH\x13\x90`\x01`\x01`\x80\x1B\x03\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1Fc\x07\xC4\xAC\xDD`\xE0\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\xFF\x16\x92P\x82\x11\x15aH\x88W\x82Tc\xFF\xFF\xFF\xFF\x16aHR\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01aVnV[\x83\x03aH\\W\x83\x91P[`\x02\x81\x81T\x81\x10aHoWaHoaVBV[\x90`\0R` `\0 \x90`\x05\x02\x01\x93P\x80\x94PPaGrV[`\x04\x81\x81\x01T\x90\x84\x01T`\x01`\x01`\x80\x1B\x03\x91\x82\x16\x91\x16`\0\x81`\x01`\x01`\x80\x1B\x03\x16aH\xCDaH\xC1\x85`\x01`\x01`\x80\x1B\x03\x16`\x01\x1C\x90V[`\x01`\x01`\x80\x1B\x03\x16\x90V[`\x01`\x01`\x80\x1B\x03\x16\x14\x90P\x80\x15aIfW`\0aH\xF3\x83`\x01`\x01`\x80\x1B\x03\x16aD\xE1V[`\x01`\x01`\x80\x1B\x03\x16\x11\x15aICW`\0aI#aI\x1B`\x01`\x01`\x01`\x80\x1B\x03\x86\x16aX6V[\x89`\x01aEgV[`\x03\x81\x01T`\x04\x90\x91\x01T\x90\x9CP`\x01`\x01`\x80\x1B\x03\x16\x9APaII\x90PV[`\x08T\x9AP[`\x03\x86\x01T`\x04\x87\x01T\x90\x99P`\x01`\x01`\x80\x1B\x03\x16\x97PaI\xAAV[`\0aI\x7FaI\x1B`\x01`\x01`\x80\x1B\x03\x85\x16`\x01aXVV[`\x03\x80\x89\x01T`\x04\x80\x8B\x01T\x92\x84\x01T\x93\x01T\x90\x9EP`\x01`\x01`\x80\x1B\x03\x91\x82\x16\x9DP\x91\x9BP\x16\x98PP[PPPPPPP\x91\x93P\x91\x93V[`\0`\x01`\x01`\x80\x1B\x03\x84\x16\x15aJ\x13W`@\x80Q` \x81\x01\x87\x90R`\x01`\x01`\x80\x1B\x03\x80\x87\x16\x92\x82\x01\x92\x90\x92R``\x81\x01\x85\x90R\x90\x83\x16`\x80\x82\x01R`\xA0\x01`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 a\x16bV[\x82\x82`@Q` \x01aJ8\x92\x91\x90\x91\x82R`\x01`\x01`\x80\x1B\x03\x16` \x82\x01R`@\x01\x90V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 \x95\x94PPPPPV[`\0\x80aJ\xCB\x84~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1Fc\x07\xC4\xAC\xDD`\xE0\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\xFF\x16\x90P\x80\x83\x03`\x01\x84\x1B`\x01\x80\x83\x1B\x03\x86\x83\x1B\x17\x03\x92PPP\x92\x91PPV[`\0\x80`\0\x83`\0\x01Q`\0\x03aK/W`@Q\x7FZ\xB4X\xFB\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\x01`@Q\x80\x91\x03\x90\xFD[` \x84\x01Q\x80Q`\0\x1A`\x7F\x81\x11aKTW`\0`\x01`\0\x94P\x94P\x94PPPaO\x83V[`\xB7\x81\x11aLjW`\0aKi`\x80\x83aV\xA0V[\x90P\x80\x87`\0\x01Q\x11aK\xA8W`@Q\x7Ff\xC9D\x85\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01\x83\x81\x01Q\x7F\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x90\x82\x14\x80\x15aL WP\x7F\x80\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x7F\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x82\x16\x10[\x15aLWW`@Q\x7F\xBA\xBB\x01\xDD\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\x01`@Q\x80\x91\x03\x90\xFD[P`\x01\x95P\x93P`\0\x92PaO\x83\x91PPV[`\xBF\x81\x11aM\xC8W`\0aL\x7F`\xB7\x83aV\xA0V[\x90P\x80\x87`\0\x01Q\x11aL\xBEW`@Q\x7Ff\xC9D\x85\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01\x83\x01Q\x7F\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16`\0\x81\x90\x03aM W`@Q\x7F\xBA\xBB\x01\xDD\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01\x84\x01Q`\x08\x83\x02a\x01\0\x03\x1C`7\x81\x11aMhW`@Q\x7F\xBA\xBB\x01\xDD\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\x01`@Q\x80\x91\x03\x90\xFD[aMr\x81\x84aVnV[\x89Q\x11aM\xABW`@Q\x7Ff\xC9D\x85\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\x01`@Q\x80\x91\x03\x90\xFD[aM\xB6\x83`\x01aVnV[\x97P\x95P`\0\x94PaO\x83\x93PPPPV[`\xF7\x81\x11aN-W`\0aM\xDD`\xC0\x83aV\xA0V[\x90P\x80\x87`\0\x01Q\x11aN\x1CW`@Q\x7Ff\xC9D\x85\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01\x95P\x93P\x84\x92PaO\x83\x91PPV[`\0aN:`\xF7\x83aV\xA0V[\x90P\x80\x87`\0\x01Q\x11aNyW`@Q\x7Ff\xC9D\x85\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01\x83\x01Q\x7F\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16`\0\x81\x90\x03aN\xDBW`@Q\x7F\xBA\xBB\x01\xDD\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01\x84\x01Q`\x08\x83\x02a\x01\0\x03\x1C`7\x81\x11aO#W`@Q\x7F\xBA\xBB\x01\xDD\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\x01`@Q\x80\x91\x03\x90\xFD[aO-\x81\x84aVnV[\x89Q\x11aOfW`@Q\x7Ff\xC9D\x85\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\x01`@Q\x80\x91\x03\x90\xFD[aOq\x83`\x01aVnV[\x97P\x95P`\x01\x94PaO\x83\x93PPPPV[\x91\x93\x90\x92PV[``\x81g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15aO\xA5WaO\xA5aU\xA8V[`@Q\x90\x80\x82R\x80`\x1F\x01`\x1F\x19\x16` \x01\x82\x01`@R\x80\x15aO\xCFW` \x82\x01\x81\x806\x837\x01\x90P[P\x90P\x81\x15aP\x18W`\0aO\xE4\x84\x86aVnV[\x90P` \x82\x01`\0[\x84\x81\x10\x15aP\x05W\x82\x81\x01Q\x82\x82\x01R` \x01aO\xEDV[\x84\x81\x11\x15aP\x14W`\0\x85\x83\x01R[PPP[\x93\x92PPPV[`\0\x81aP\x9C\x84`\x01`\x01`\x80\x1B\x03\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1Fc\x07\xC4\xAC\xDD`\xE0\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\xFF\x16\x11aP\xB2Wc\xB3K\\\"`\0R`\x04`\x1C\xFD[aP\xBB\x83aQ^V[\x90P\x81aQ8\x82`\x01`\x01`\x80\x1B\x03\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1Fc\x07\xC4\xAC\xDD`\xE0\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\xFF\x16\x11a:\xBBWa:\xB8aQN\x83`\x01aVnV[`\x01`\x01`\x80\x1B\x03\x83\x16\x90aQ\xEAV[`\0\x81\x19`\x01\x83\x01\x16\x81aQ\xD9\x82~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1Fc\x07\xC4\xAC\xDD`\xE0\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\xFF\x16\x93\x90\x93\x1C\x80\x15\x17\x93\x92PPPV[`\0\x80aR^\x84~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1Fc\x07\xC4\xAC\xDD`\xE0\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\xFF\x16\x90P\x80\x83\x03`\x01\x80\x82\x1B\x03\x85\x82\x1B\x17\x92PPP\x92\x91PPV[`\0\x80\x83`\x1F\x84\x01\x12aR\x8CW`\0\x80\xFD[P\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15aR\xA4W`\0\x80\xFD[` \x83\x01\x91P\x83` \x82\x85\x01\x01\x11\x15aR\xBCW`\0\x80\xFD[\x92P\x92\x90PV[`\0\x80`\0\x83\x85\x03`\xA0\x81\x12\x15aR\xD9W`\0\x80\xFD[`\x80\x81\x12\x15aR\xE7W`\0\x80\xFD[P\x83\x92P`\x80\x84\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15aS\x05W`\0\x80\xFD[aS\x11\x86\x82\x87\x01aRzV[\x94\x97\x90\x96P\x93\x94PPPPV[`\0\x80`@\x83\x85\x03\x12\x15aS1W`\0\x80\xFD[PP\x805\x92` \x90\x91\x015\x91PV[cNH{q`\xE0\x1B`\0R`!`\x04R`$`\0\xFD[`\x03\x81\x10aStWcNH{q`\xE0\x1B`\0R`!`\x04R`$`\0\xFD[PV[` \x81\x01aS\x84\x83aSVV[\x91\x90R\x90V[`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14aStW`\0\x80\xFD[`\0` \x82\x84\x03\x12\x15aS\xB1W`\0\x80\xFD[\x815aP\x18\x81aS\x8AV[`\0\x80`\0``\x84\x86\x03\x12\x15aS\xD1W`\0\x80\xFD[PP\x815\x93` \x83\x015\x93P`@\x90\x92\x015\x91\x90PV[`\0\x81Q\x80\x84R`\0[\x81\x81\x10\x15aT\x0EW` \x81\x85\x01\x81\x01Q\x86\x83\x01\x82\x01R\x01aS\xF2V[\x81\x81\x11\x15aT W`\0` \x83\x87\x01\x01R[P`\x1F\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x92\x90\x92\x01` \x01\x92\x91PPV[` \x81R`\0a:\xB8` \x83\x01\x84aS\xE8V[`\0` \x82\x84\x03\x12\x15aTxW`\0\x80\xFD[P5\x91\x90PV[\x80\x15\x15\x81\x14aStW`\0\x80\xFD[`\0\x80`\0\x80`\x80\x85\x87\x03\x12\x15aT\xA3W`\0\x80\xFD[\x845\x93P` \x85\x015\x92P`@\x85\x015\x91P``\x85\x015aT\xC3\x81aT\x7FV[\x93\x96\x92\x95P\x90\x93PPV[`\0` \x82\x84\x03\x12\x15aT\xE0W`\0\x80\xFD[\x815`\x01`\x01`\x80\x1B\x03\x81\x16\x81\x14aP\x18W`\0\x80\xFD[`\0\x80`\0\x80`\0\x80`\x80\x87\x89\x03\x12\x15aU\x10W`\0\x80\xFD[\x865\x95P` \x87\x015aU\"\x81aT\x7FV[\x94P`@\x87\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15aU?W`\0\x80\xFD[aUK\x8A\x83\x8B\x01aRzV[\x90\x96P\x94P``\x89\x015\x91P\x80\x82\x11\x15aUdW`\0\x80\xFD[PaUq\x89\x82\x8A\x01aRzV[\x97\x9A\x96\x99P\x94\x97P\x92\x95\x93\x94\x92PPPV[c\xFF\xFF\xFF\xFF\x84\x16\x81R\x82` \x82\x01R```@\x82\x01R`\0a\x16b``\x83\x01\x84aS\xE8V[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[`\0`\x80\x82\x84\x03\x12\x15aU\xD0W`\0\x80\xFD[`@Q`\x80\x81\x01\x81\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17\x15aV\x01WcNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[\x80`@RP\x825\x81R` \x83\x015` \x82\x01R`@\x83\x015`@\x82\x01R``\x83\x015``\x82\x01R\x80\x91PP\x92\x91PPV[\x81\x83\x827`\0\x91\x01\x90\x81R\x91\x90PV[cNH{q`\xE0\x1B`\0R`2`\x04R`$`\0\xFD[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[`\0\x82\x19\x82\x11\x15aV\x81WaV\x81aVXV[P\x01\x90V[`\0`\0\x19\x82\x03aV\x99WaV\x99aVXV[P`\x01\x01\x90V[`\0\x82\x82\x10\x15aV\xB2WaV\xB2aVXV[P\x03\x90V[`\0` \x82\x84\x03\x12\x15aV\xC9W`\0\x80\xFD[\x81QaP\x18\x81aS\x8AV[`\0` \x82\x84\x03\x12\x15aV\xE6W`\0\x80\xFD[PQ\x91\x90PV[`\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x83\x16\x81\x85\x16\x80\x83\x03\x82\x11\x15aW\x10WaW\x10aVXV[\x01\x94\x93PPPPV[`\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x83\x16\x81\x85\x16\x81\x83\x04\x81\x11\x82\x15\x15\x16\x15aW@WaW@aVXV[\x02\x94\x93PPPPV[`\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x81\x16\x90\x83\x16\x81\x81\x10\x15aWjWaWjaVXV[\x03\x93\x92PPPV[`\0` \x82\x84\x03\x12\x15aW\x84W`\0\x80\xFD[\x81QaP\x18\x81aT\x7FV[`\0\x80`@\x83\x85\x03\x12\x15aW\xA2W`\0\x80\xFD[PP\x80Q` \x90\x91\x01Q\x90\x92\x90\x91PV[`\0` \x82\x84\x03\x12\x15aW\xC5W`\0\x80\xFD[\x81Qc\xFF\xFF\xFF\xFF\x81\x16\x81\x14aP\x18W`\0\x80\xFD[cNH{q`\xE0\x1B`\0R`\x12`\x04R`$`\0\xFD[`\0\x82aW\xFEWaW\xFEaW\xD9V[P\x04\x90V[`\0\x81`\0\x19\x04\x83\x11\x82\x15\x15\x16\x15aX\x1DWaX\x1DaVXV[P\x02\x90V[`\0\x82aX1WaX1aW\xD9V[P\x06\x90V[`\0`\x01`\x01`\x80\x1B\x03\x83\x81\x16\x90\x83\x16\x81\x81\x10\x15aWjWaWjaVXV[`\0`\x01`\x01`\x80\x1B\x03\x80\x83\x16\x81\x85\x16\x80\x83\x03\x82\x11\x15aW\x10WaW\x10aVXV[\x81\x83R\x81\x81` \x85\x017P`\0` \x82\x84\x01\x01R`\0` \x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0`\x1F\x84\x01\x16\x84\x01\x01\x90P\x92\x91PPV[``\x81R`\0aX\xD5``\x83\x01\x87\x89aXxV[\x82\x81\x03` \x84\x01RaX\xE8\x81\x86\x88aXxV[\x91PP\x82`@\x83\x01R\x96\x95PPPPPPV[`\0`\xFF\x82\x16`\xFF\x84\x16\x80\x82\x10\x15aY\x15WaY\x15aVXV[\x90\x03\x93\x92PPPV[`\0`\xFF\x83\x16\x80aY1WaY1aW\xD9V[\x80`\xFF\x84\x16\x06\x91PP\x92\x91PPV[`\0\x7F\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF`\0\x84\x13`\0\x84\x13\x85\x83\x04\x85\x11\x82\x82\x16\x16\x15aY\x81WaY\x81aVXV[\x7F\x80\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\0\x87\x12\x86\x82\x05\x88\x12\x81\x84\x16\x16\x15aY\xBCWaY\xBCaVXV[`\0\x87\x12\x92P\x87\x82\x05\x87\x12\x84\x84\x16\x16\x15aY\xD8WaY\xD8aVXV[\x87\x85\x05\x87\x12\x81\x84\x16\x16\x15aY\xEEWaY\xEEaVXV[PPP\x92\x90\x93\x02\x93\x92PPPV[`\0\x82aZ\x0BWaZ\x0BaW\xD9V[`\0\x19\x83\x14\x7F\x80\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x83\x14\x16\x15aZAWaZAaVXV[P\x05\x90V\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x60806040526004361061033f5760003560e01c806370872aa5116101b0578063c395e1ca116100ec578063dabd396d11610095578063f8f43ff61161006f578063f8f43ff614610b23578063fa24f74314610b43578063fa315aa914610b67578063fe2bbeb214610b9a57600080fd5b8063dabd396d14610a8d578063ec5e630814610ac0578063eff0f59214610af357600080fd5b8063d5d44d80116100c6578063d5d44d8014610a1a578063d6ae3cd514610a3a578063d8cc1a3c14610a6d57600080fd5b8063c395e1ca14610965578063c6f0308c14610985578063cf09e0d0146109f957600080fd5b80638d450a9511610159578063bbdc02db11610133578063bbdc02db146108b5578063bcef3b55146108f6578063bd8da95614610918578063c0d8bb741461093857600080fd5b80638d450a95146107e257806399735e32146107c0578063a445ece61461081557600080fd5b80638129fc1c1161018a5780638129fc1c146107a35780638980e0cc146107ab5780638b85902b146107c057600080fd5b806370872aa514610766578063786b844b1461077b5780637b0f0adc1461079057600080fd5b80633e3ac9121161027f5780635a5fa2d91161022857806360e274641161020257806360e27464146106de5780636361506d146106fe5780636b6716c0146107205780636f0344091461075357600080fd5b80635a5fa2d9146106765780635c0cba3314610696578063609d3334146106c957600080fd5b8063529d6a8c11610259578063529d6a8c146105ca57806354fd4d50146105f757806357da950e1461064657600080fd5b80633e3ac912146105545780633fc8cef314610584578063472777c6146105b757600080fd5b806325fc2ace116102ec57806330dbe570116102c657806330dbe570146104ad578063378dd48c146104e557806337b1b229146104ff5780633a7684631461052157600080fd5b806325fc2ace146104595780632810e1d6146104785780632ad69aeb1461048d57600080fd5b8063200d2ed21161031d578063200d2ed2146103d1578063222abf45146103ff578063250e69bd1461043f57600080fd5b8063019351301461034457806303c2924d1461036657806319effeb414610386575b600080fd5b34801561035057600080fd5b5061036461035f3660046152c3565b610bca565b005b34801561037257600080fd5b5061036461038136600461531e565b610e89565b34801561039257600080fd5b506000546103b39068010000000000000000900467ffffffffffffffff1681565b60405167ffffffffffffffff90911681526020015b60405180910390f35b3480156103dd57600080fd5b506000546103f290600160801b900460ff1681565b6040516103c89190615377565b34801561040b57600080fd5b5061042f61041a36600461539f565b600c6020526000908152604090205460ff1681565b60405190151581526020016103c8565b34801561044b57600080fd5b50600a5461042f9060ff1681565b34801561046557600080fd5b506008545b6040519081526020016103c8565b34801561048457600080fd5b506103f2611411565b34801561049957600080fd5b5061046a6104a836600461531e565b6115e9565b3480156104b957600080fd5b506001546104cd906001600160a01b031681565b6040516001600160a01b0390911681526020016103c8565b3480156104f157600080fd5b50600d546103f29060ff1681565b34801561050b57600080fd5b503660011981013560f01c90033560601c6104cd565b34801561052d57600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006104cd565b34801561056057600080fd5b5060005461042f907201000000000000000000000000000000000000900460ff1681565b34801561059057600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006104cd565b6103646105c53660046153bc565b61161f565b3480156105d657600080fd5b5061046a6105e536600461539f565b60036020526000908152604090205481565b34801561060357600080fd5b5060408051808201909152600581527f312e382e3000000000000000000000000000000000000000000000000000000060208201525b6040516103c89190615453565b34801561065257600080fd5b50600854600954610661919082565b604080519283526020830191909152016103c8565b34801561068257600080fd5b5061046a610691366004615466565b611631565b3480156106a257600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006104cd565b3480156106d557600080fd5b5061063961166b565b3480156106ea57600080fd5b506103646106f936600461539f565b611679565b34801561070a57600080fd5b503660011981013560f01c90036034013561046a565b34801561072c57600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006103b3565b61036461076136600461548d565b611991565b34801561077257600080fd5b5060095461046a565b34801561078757600080fd5b50610364612332565b61036461079e3660046153bc565b612751565b61036461275e565b3480156107b757600080fd5b5060025461046a565b3480156107cc57600080fd5b503660011981013560f01c90036054013561046a565b3480156107ee57600080fd5b507f000000000000000000000000000000000000000000000000000000000000000061046a565b34801561082157600080fd5b50610877610830366004615466565b6007602052600090815260409020805460019091015460ff821691610100810463ffffffff1691650100000000009091046001600160801b0316906001600160a01b031684565b60408051941515855263ffffffff90931660208501526001600160801b03909116918301919091526001600160a01b031660608201526080016103c8565b3480156108c157600080fd5b5060405163ffffffff7f00000000000000000000000000000000000000000000000000000000000000001681526020016103c8565b34801561090257600080fd5b503660011981013560f01c90036014013561046a565b34801561092457600080fd5b506103b3610933366004615466565b612cfb565b34801561094457600080fd5b5061046a61095336600461539f565b600b6020526000908152604090205481565b34801561097157600080fd5b5061046a6109803660046154ce565b612e95565b34801561099157600080fd5b506109a56109a0366004615466565b613056565b6040805163ffffffff90981688526001600160a01b03968716602089015295909416948601949094526001600160801b039182166060860152608085015291821660a08401521660c082015260e0016103c8565b348015610a0557600080fd5b506000546103b39067ffffffffffffffff1681565b348015610a2657600080fd5b5061046a610a3536600461539f565b6130ca565b348015610a4657600080fd5b507f000000000000000000000000000000000000000000000000000000000000000061046a565b348015610a7957600080fd5b50610364610a883660046154f7565b613122565b348015610a9957600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006103b3565b348015610acc57600080fd5b507f000000000000000000000000000000000000000000000000000000000000000061046a565b348015610aff57600080fd5b5061042f610b0e366004615466565b60046020526000908152604090205460ff1681565b348015610b2f57600080fd5b50610364610b3e3660046153bc565b61367e565b348015610b4f57600080fd5b50610b58613a64565b6040516103c893929190615583565b348015610b7357600080fd5b507f000000000000000000000000000000000000000000000000000000000000000061046a565b348015610ba657600080fd5b5061042f610bb5366004615466565b60066020526000908152604090205460ff1681565b60008054600160801b900460ff166002811115610be957610be9615340565b14610c075760405163067fe19560e41b815260040160405180910390fd5b6000547201000000000000000000000000000000000000900460ff1615610c5a576040517f0ea2e75200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610c733660011981013560f01c90036014013590565b90565b610c8a610c85368690038601866155be565b613ac1565b14610cc1576040517f9cc00b5b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b82606001358282604051610cd6929190615632565b604051809103902014610d15576040517fd81d583b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000610d5e610d5984848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613b1d92505050565b613b8a565b90506000610d8582600881518110610d7857610d78615642565b6020026020010151613d40565b9050602081511115610dc3576040517fd81d583b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b602081810151825190910360031b1c3660011981013560f01c9003605401358103610e1a576040517fb8ed883000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050600180547fffffffffffffffffffffffff000000000000000000000000000000000000000016331790555050600080547fffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffff1672010000000000000000000000000000000000001790555050565b60008054600160801b900460ff166002811115610ea857610ea8615340565b14610ec65760405163067fe19560e41b815260040160405180910390fd5b600060028381548110610edb57610edb615642565b906000526020600020906005020190506000610ef684612cfb565b905067ffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000081169082161015610f5f576040517ff2440b5300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008481526006602052604090205460ff1615610fa8576040517ff1a9458100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000848152600560205260409020805480158015610fc557508515155b1561102857835464010000000090046001600160a01b031660008115610feb5781610ffa565b60018601546001600160a01b03165b90506110068187613df4565b505050600094855250506006602052505060409020805460ff19166001179055565b6000868152600760209081526040918290208251608081018452815460ff81161515808352610100820463ffffffff16948301949094526501000000000090046001600160801b031693810193909352600101546001600160a01b031660608301526110ac576001600160801b0360408201526001815260008690036110ac578195505b600086826020015163ffffffff166110c4919061566e565b905060008382116110d557816110d7565b835b602084015190915063ffffffff165b818110156111f757600086828154811061110257611102615642565b6000918252602080832090910154808352600690915260409091205490915060ff1661115a576040517f9a07664600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006002828154811061116f5761116f615642565b60009182526020909120600590910201805490915064010000000090046001600160a01b03161580156111b65750600481015460408701516001600160801b039182169116115b156111e25760018101546001600160a01b0316606087015260048101546001600160801b031660408701525b505080806111ef90615686565b9150506110e6565b5063ffffffff818116602085810191825260008c81526007909152604090819020865181549351928801517fffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000009094169015157fffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000ff161761010092909416918202939093177fffffffffffffffffffffff00000000000000000000000000000000ffffffffff16650100000000006001600160801b03909316929092029190911782556060850151600190920180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039093169290921790915584900361140657606083015160008a8152600660205260409020805460ff191660011790558915801561134357506000547201000000000000000000000000000000000000900460ff165b1561139e576001546001600160a01b031661135e818a613df4565b88546001600160a01b03909116640100000000027fffffffffffffffff0000000000000000000000000000000000000000ffffffff909116178855611404565b6113cb6001600160a01b038216156113b657816113c5565b60018901546001600160a01b03165b89613df4565b87547fffffffffffffffff0000000000000000000000000000000000000000ffffffff166401000000006001600160a01b038316021788555b505b505050505050505050565b600080600054600160801b900460ff16600281111561143257611432615340565b146114505760405163067fe19560e41b815260040160405180910390fd5b6000805260066020527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f85460ff166114b4576040517f9a07664600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006001600160a01b031660026000815481106114d3576114d3615642565b600091825260209091206005909102015464010000000090046001600160a01b031614611501576001611504565b60025b6000805467ffffffffffffffff421668010000000000000000027fffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff82168117835592935083927fffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffff000000000000000000ffffffffffffffff90911617600160801b8360028111156115a8576115a8615340565b0217905560028111156115bd576115bd615340565b6040517f5e186f09b9c93491f14e277eea7faa5de6a2d4bda75a79af7a3684fbfb42da6090600090a290565b6005602052816000526040600020818154811061160557600080fd5b90600052602060002001600091509150505481565b905090565b61162c8383836001611991565b505050565b6000818152600760209081526040808320600590925282208054825461166290610100900463ffffffff16826156a0565b95945050505050565b606061161a60546020613e36565b611681612332565b60006002600d5460ff16600281111561169c5761169c615340565b036116c057506001600160a01b0381166000908152600b602052604090205461172f565b6001600d5460ff1660028111156116d9576116d9615340565b036116fd57506001600160a01b03811660009081526003602052604090205461172f565b6040517f078a3df400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0382166000908152600c602052604090205460ff1661180c576001600160a01b038281166000818152600c602052604090819020805460ff19166001179055517f7eee288d0000000000000000000000000000000000000000000000000000000081526004810191909152602481018390527f000000000000000000000000000000000000000000000000000000000000000090911690637eee288d90604401600060405180830381600087803b1580156117f057600080fd5b505af1158015611804573d6000803e3d6000fd5b505050505050565b80600003611846576040517f17bfe5f700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038281166000818152600b60209081526040808320839055600390915280822091909155517ff3fef3a30000000000000000000000000000000000000000000000000000000081526004810191909152602481018390527f00000000000000000000000000000000000000000000000000000000000000009091169063f3fef3a390604401600060405180830381600087803b1580156118ec57600080fd5b505af1158015611900573d6000803e3d6000fd5b505050506000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611951576040519150601f19603f3d011682016040523d82523d6000602084013e611956565b606091505b505090508061162c576040517f83e6cc6b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008054600160801b900460ff1660028111156119b0576119b0615340565b146119ce5760405163067fe19560e41b815260040160405180910390fd5b6000600284815481106119e3576119e3615642565b60009182526020918290206040805160e0810182526005909302909101805463ffffffff811684526001600160a01b0364010000000090910481169484019490945260018101549093169082015260028201546001600160801b03908116606083015260038301546080830181905260049093015480821660a0840152600160801b90041660c082015291508514611aa7576040517f3014033200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60a0810151600083156001600160801b0383161760011b90506000611b3c826001600160801b03167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f6307c4acdd60e01b67ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff169050861580611b775750611b747f0000000000000000000000000000000000000000000000000000000000000000600261566e565b81145b8015611b81575084155b15611bb8576040517fa42637bc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000547201000000000000000000000000000000000000900460ff168015611bde575086155b15611c15576040517f0ea2e75200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f0000000000000000000000000000000000000000000000000000000000000000811115611c6f576040517f56f57b2b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611c9a7f0000000000000000000000000000000000000000000000000000000000000000600161566e565b8103611cac57611cac86888588613e6a565b34611cb683612e95565b14611ced576040517f8620aa1900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000611cf888612cfb565b905067ffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000811690821603611d60576040517f3381d11400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000611d8d60017f00000000000000000000000000000000000000000000000000000000000000006156a0565b8303611eb1577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316637dc0d1d06040518163ffffffff1660e01b8152600401602060405180830381865afa158015611df1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e1591906156b7565b6001600160a01b031663f3f480d96040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e52573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e7691906156d4565b611eaa907f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff166156ed565b9050611f44565b611edc60017f00000000000000000000000000000000000000000000000000000000000000006156a0565b8303611f1757611eaa7f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff166002615719565b507f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff165b611f78817f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff16615749565b67ffffffffffffffff16611f938367ffffffffffffffff1690565b67ffffffffffffffff161115611fda57611fd7817f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff16615749565b91505b6000604083901b421760008a8152608087901b6001600160801b038d1617602052604081209192509060008181526004602052604090205490915060ff161561204f576040517f80497e3b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60016004600083815260200190815260200160002060006101000a81548160ff02191690831515021790555060026040518060e001604052808d63ffffffff16815260200160006001600160a01b03168152602001336001600160a01b03168152602001346001600160801b031681526020018c8152602001886001600160801b03168152602001846001600160801b0316815250908060018154018082558091505060019003906000526020600020906005020160009091909190915060008201518160000160006101000a81548163ffffffff021916908363ffffffff16021790555060208201518160000160046101000a8154816001600160a01b0302191690836001600160a01b0316021790555060408201518160010160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060608201518160020160006101000a8154816001600160801b0302191690836001600160801b031602179055506080820151816003015560a08201518160040160006101000a8154816001600160801b0302191690836001600160801b0316021790555060c08201518160040160106101000a8154816001600160801b0302191690836001600160801b031602179055505050600560008c8152602001908152602001600020600160028054905061224691906156a0565b81546001810183556000928352602080842090910191909155338252600b905260408120805434929061227a90849061566e565b925050819055507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0346040518263ffffffff1660e01b81526004016000604051808303818588803b1580156122dc57600080fd5b505af11580156122f0573d6000803e3d6000fd5b50506040513393508d92508e91507f9b3245740ec3b155098a55be84957a4da13eaf7f14a8bc6f53126c0b9350f2be90600090a4505050505050505050505050565b6002600d5460ff16600281111561234b5761234b615340565b148061236d57506001600d5460ff16600281111561236b5761236b615340565b145b1561237457565b6000600d5460ff16600281111561238d5761238d615340565b146123c4576040517f078a3df400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612422573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124469190615772565b1561247d576040517f379a7ed900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005468010000000000000000900467ffffffffffffffff1667ffffffffffffffff166000036124d9576040517fc105260a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f0314d2b30000000000000000000000000000000000000000000000000000000081523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690630314d2b390602401602060405180830381865afa158015612559573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061257d9190615772565b9050806125b6576040517f4851bd9b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f17cf21a90000000000000000000000000000000000000000000000000000000081523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906317cf21a990602401600060405180830381600087803b15801561263057600080fd5b505af1925050508015612641575060015b506040517f496b9c160000000000000000000000000000000000000000000000000000000081523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063496b9c1690602401602060405180830381865afa1580156126c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126e69190615772565b9050801561270057600d805460ff1916600117905561270e565b600d805460ff191660021790555b600d546040517f9908eaac0645df9d0704d06adc9e07337c951de2f06b5f2836151d48d5e4722f916127459160ff90911690615377565b60405180910390a15050565b61162c8383836000611991565b60005471010000000000000000000000000000000000900460ff16156127b0576040517f0dc149f000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d83ef2676040518163ffffffff1660e01b81526004016040805180830381865afa158015612810573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612834919061578f565b909250905081612870576040517f6a6bc3b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805180820190915282815260200181905260088290556009819055607a36146128c7576040517f9824bdab00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b803660011981013560f01c90036054013511612925576040517ff40239db0000000000000000000000000000000000000000000000000000000081523660011981013560f01c90036014013560048201526024015b60405180910390fd5b6040805160e08101825263ffffffff808252600060208084018281523660011981013560f01c90038035606090811c8789018181526001600160801b0334818116948b0194855260149095013560808b01908152600160a08c0181815242841660c08e019081526002805493840181558c529c517f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace600590930292830180549a5191909d167fffffffffffffffff000000000000000000000000000000000000000000000000909a16999099176401000000006001600160a01b039a8b160217909b5592517f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5acf840180547fffffffffffffffffffffffff000000000000000000000000000000000000000016919098161790965592517f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ad0820180547fffffffffffffffffffffffffffffffff000000000000000000000000000000001691851691909117905593517f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ad185015595519651968116600160801b9790911696909602959095177f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ad2909101558154710100000000000000000000000000000000007fffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff909116178255918152600b909152918220805491929091612b6690849061566e565b925050819055507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0346040518263ffffffff1660e01b81526004016000604051808303818588803b158015612bc857600080fd5b505af1158015612bdc573d6000803e3d6000fd5b5050600080547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000164267ffffffffffffffff161790555050604080517f3c9f397c00000000000000000000000000000000000000000000000000000000815290517f000000000000000000000000000000000000000000000000000000000000000063ffffffff1692507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031691633c9f397c9160048083019260209291908290030181865afa158015612cbb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cdf91906157b3565b600a805460ff191663ffffffff92909216929092141790555050565b600080600054600160801b900460ff166002811115612d1c57612d1c615340565b14612d3a5760405163067fe19560e41b815260040160405180910390fd5b600060028381548110612d4f57612d4f615642565b600091825260208220600590910201805490925063ffffffff90811614612db557815460028054909163ffffffff16908110612d8d57612d8d615642565b906000526020600020906005020160040160109054906101000a90046001600160801b031690505b6004820154600090612de090600160801b900467ffffffffffffffff165b67ffffffffffffffff1690565b612df49067ffffffffffffffff16426156a0565b612e0a612dd3846001600160801b031660401c90565b67ffffffffffffffff16612e1e919061566e565b905067ffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001667ffffffffffffffff168167ffffffffffffffff1611612e6b5780611662565b7f000000000000000000000000000000000000000000000000000000000000000095945050505050565b600080612f12836001600160801b03167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f6307c4acdd60e01b67ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff1690507f0000000000000000000000000000000000000000000000000000000000000000811115612f71576040517f56f57b2b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b642e90edd00062061a806311e1a3006000612f8c83836157ef565b9050670de0b6b3a76400006000612fc3827f0000000000000000000000000000000000000000000000000000000000000000615803565b90506000612fe1612fdc670de0b6b3a764000086615803565b613ff9565b90506000612fef848461424b565b90506000612ffd838361429a565b9050600061300a826142c8565b9050600061302982613024670de0b6b3a76400008f615803565b6144b0565b905060006130378b8361429a565b9050613043818d615803565b9f9e505050505050505050505050505050565b6002818154811061306657600080fd5b60009182526020909120600590910201805460018201546002830154600384015460049094015463ffffffff841695506401000000009093046001600160a01b03908116949216926001600160801b03918216929180821691600160801b90041687565b60006002600d5460ff1660028111156130e5576130e5615340565b0361310657506001600160a01b03166000908152600b602052604090205490565b506001600160a01b031660009081526003602052604090205490565b60008054600160801b900460ff16600281111561314157613141615340565b1461315f5760405163067fe19560e41b815260040160405180910390fd5b60006002878154811061317457613174615642565b6000918252602082206005919091020160048101549092506001600160801b0316908715821760011b90506131ca7f0000000000000000000000000000000000000000000000000000000000000000600161566e565b613244826001600160801b03167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f6307c4acdd60e01b67ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff161461327e576040517f5f53dd9800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080891561335a576132d17f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006156a0565b6001901b6132e7846001600160801b03166144e1565b6001600160801b03166132fa9190615822565b1561332e5761332561331660016001600160801b038716615836565b865463ffffffff166000614567565b60030154613350565b7f00000000000000000000000000000000000000000000000000000000000000005b915084905061337b565b600385015491506133786133166001600160801b0386166001615856565b90505b600882901b60088a8a604051613392929190615632565b6040518091039020901b146133d3576040517f696550ff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006133de8c614630565b905060006133ed836003015490565b6040517fe14ced320000000000000000000000000000000000000000000000000000000081527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063e14ced329061345a908f908f908f908f908a906004016158c1565b6020604051808303816000875af1158015613479573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061349d91906156d4565b600485015491149150600090600290613526906001600160801b03167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f6307c4acdd60e01b67ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b6135a0896001600160801b03167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f6307c4acdd60e01b67ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b6135aa91906158fb565b6135b4919061591e565b60ff1615905081151581036135f5576040517ffb4e40dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b875464010000000090046001600160a01b03161561363f576040517f9071e6af00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505085547fffffffffffffffff0000000000000000000000000000000000000000ffffffff163364010000000002179095555050505050505050505050565b60008054600160801b900460ff16600281111561369d5761369d615340565b146136bb5760405163067fe19560e41b815260040160405180910390fd5b6000806000806136ca8661465f565b935093509350935060006136e0858585856149b8565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316637dc0d1d06040518163ffffffff1660e01b8152600401602060405180830381865afa158015613742573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061376691906156b7565b905060018903613833576001600160a01b0381166352f0f3ad8a846137973660011981013560f01c90036034013590565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e086901b16815260048101939093526024830191909152604482015260206064820152608481018a905260a4015b6020604051808303816000875af1158015613809573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061382d91906156d4565b50611406565b60028903613852576001600160a01b0381166352f0f3ad8a8489613797565b60038903613871576001600160a01b0381166352f0f3ad8a8487613797565b600489036139a65760006138ae6001600160801b0385167f0000000000000000000000000000000000000000000000000000000000000000614a57565b6009546138bb919061566e565b6138c690600161566e565b90503660011981013560f01c90036054013581106138f3573660011981013560f01c9003605401356138f5565b805b90506001600160a01b0382166352f0f3ad8b8560405160e084901b7fffffffff000000000000000000000000000000000000000000000000000000001681526004810192909252602482015260c084901b604482015260086064820152608481018b905260a4016020604051808303816000875af115801561397b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061399f91906156d4565b5050611406565b60058903613a32576040517f52f0f3ad000000000000000000000000000000000000000000000000000000008152600481018a9052602481018390527f000000000000000000000000000000000000000000000000000000000000000060c01b604482015260086064820152608481018890526001600160a01b038216906352f0f3ad9060a4016137ea565b6040517fff137e6500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000003660011981013560f01c9003601401356060613a9f61166b565b9050909192565b600081831015613ab65781613ab8565b825b90505b92915050565b60008160000151826020015183604001518460600151604051602001613b00949392919093845260208401929092526040830152606082015260800190565b604051602081830303815290604052805190602001209050919050565b60408051808201909152600080825260208201528151600003613b6c576040517f5ab458fb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50604080518082019091528151815260209182019181019190915290565b60606000806000613b9a85614aec565b919450925090506001816001811115613bb557613bb5615340565b14613bec576040517f4b9c6abe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8451613bf8838561566e565b14613c2f576040517f5c5537b800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604080516020808252610420820190925290816020015b6040805180820190915260008082526020820152815260200190600190039081613c465790505093506000835b8651811015613d3457600080613cb96040518060400160405280858c60000151613c9d91906156a0565b8152602001858c60200151613cb2919061566e565b9052614aec565b509150915060405180604001604052808383613cd5919061566e565b8152602001848b60200151613cea919061566e565b815250888581518110613cff57613cff615642565b6020908102919091010152613d1560018561566e565b9350613d21818361566e565b613d2b908461566e565b92505050613c73565b50845250919392505050565b60606000806000613d5085614aec565b919450925090506000816001811115613d6b57613d6b615340565b14613da2576040517f1ff9b2e400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b613dac828461566e565b855114613de5576040517f5c5537b800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61166285602001518484614f8a565b60028101546001600160a01b038316600090815260036020526040812080546001600160801b0390931692909190613e2d90849061566e565b90915550505050565b6040518181523660011981013560f01c90038284820160208401378260208301016000815260208101604052505092915050565b6000613e806001600160801b0384166001615856565b90506000613e9082866001614567565b9050600086901a8380613f5a5750613ec960027f0000000000000000000000000000000000000000000000000000000000000000615822565b6004830154600290613f4b906001600160801b03167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f6307c4acdd60e01b67ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b613f55919061591e565b60ff16145b15613fb25760ff811660011480613f74575060ff81166002145b613fad576040517ff40239db0000000000000000000000000000000000000000000000000000000081526004810188905260240161291c565b613ff0565b60ff811615613ff0576040517ff40239db0000000000000000000000000000000000000000000000000000000081526004810188905260240161291c565b50505050505050565b6001600160801b03811160071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b176000821361404f57631615e6386000526004601cfd5b7ff8f9f9faf9fdfafbf9fdfcfdfafbfcfef9fafdfafcfcfbfefafafcfbffffffff6f8421084210842108cc6318c6db6d54be83831c1c601f161a1890811b609f90811c6c465772b2bbbb5f824b15207a3081018102606090811d6d0388eaa27412d5aca026815d636e018202811d6d0df99ac502031bf953eff472fdcc018202811d6d13cdffb29d51d99322bdff5f2211018202811d6d0a0f742023def783a307a986912e018202811d6d01920d8043ca89b5239253284e42018202811d6c0b7a86d7375468fac667a0a527016c29508e458543d8aa4df2abee7883018302821d6d0139601a2efabe717e604cbb4894018302821d6d02247f7a7b6594320649aa03aba1018302821d7fffffffffffffffffffffffffffffffffffffff73c0c716a594e00d54e3c4cbc9018302821d7ffffffffffffffffffffffffffffffffffffffdc7b88c420e53a9890533129f6f01830290911d7fffffffffffffffffffffffffffffffffffffff465fda27eb4d63ded474e5f832019091027ffffffffffffffff5f6af8f7b3396644f18e157960000000000000000000000000105711340daa0d5f769dba1915cef59f0815a5506029190037d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b302017d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b88642840160ae1d90565b60007812725dd1d243aba0e75fe645cc4873f9e65afe688c928e1f218311670de0b6b3a76400000215820261428857637c5f487d6000526004601cfd5b50670de0b6b3a7640000919091020490565b6000816000190483118202156142b85763bac65e5b6000526004601cfd5b50670de0b6b3a764000091020490565b60007ffffffffffffffffffffffffffffffffffffffffffffffffdc0d0570925a462d782136142f657919050565b680755bf798b4a1bf1e582126143145763a37bfec96000526004601cfd5b6503782dace9d9604e83901b059150600060606bb17217f7d1cf79abc9e3b39884821b056b80000000000000000000000001901d6bb17217f7d1cf79abc9e3b39881029093037fffffffffffffffffffffffffffffffffffffffdbf3ccf1604d263450f02a550481018102606090811d6d0277594991cfc85f6e2461837cd9018202811d7fffffffffffffffffffffffffffffffffffffe5adedaa1cb095af9e4da10e363c018202811d6db1bbb201f443cf962f1a1d3db4a5018202811d7ffffffffffffffffffffffffffffffffffffd38dc772608b0ae56cce01296c0eb018202811d6e05180bb14799ab47a8a8cb2a527d57016d02d16720577bd19bf614176fe9ea6c10fe68e7fd37d0007b713f765084018402831d9081019084017ffffffffffffffffffffffffffffffffffffffe2c69812cf03b0763fd454a8f7e010290911d6e0587f503bb6ea29d25fcb7401964500190910279d835ebba824c98fb31b83b2ca45c000000000000000000000000010574029d9dc38563c32e5c2f6dc192ee70ef65f9978af30260c3939093039290921c92915050565b6000613ab8670de0b6b3a7640000836144c886613ff9565b6144d29190615940565b6144dc91906159fc565b6142c8565b600080614555837e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f6307c4acdd60e01b67ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b600160ff919091161b90920392915050565b600080826145a7576145a26001600160801b0386167f000000000000000000000000000000000000000000000000000000000000000061501f565b6145b9565b6145b9856001600160801b031661515e565b9050600284815481106145ce576145ce615642565b906000526020600020906005020191505b60048201546001600160801b0382811691161461462857815460028054909163ffffffff1690811061461357614613615642565b906000526020600020906005020191506145df565b509392505050565b60008060008060006146418661465f565b9350935093509350614655848484846149b8565b9695505050505050565b600080600080600085905060006002828154811061467f5761467f615642565b600091825260209091206004600590920201908101549091507f000000000000000000000000000000000000000000000000000000000000000090614734906001600160801b03167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f6307c4acdd60e01b67ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff161161476e576040517fb34b5c2200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000815b60048301547f000000000000000000000000000000000000000000000000000000000000000090614813906001600160801b03167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f6307c4acdd60e01b67ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff16925082111561488857825463ffffffff166148527f0000000000000000000000000000000000000000000000000000000000000000600161566e565b830361485c578391505b6002818154811061486f5761486f615642565b9060005260206000209060050201935080945050614772565b600481810154908401546001600160801b0391821691166000816001600160801b03166148cd6148c1856001600160801b031660011c90565b6001600160801b031690565b6001600160801b031614905080156149665760006148f3836001600160801b03166144e1565b6001600160801b0316111561494357600061492361491b60016001600160801b038616615836565b896001614567565b6003810154600490910154909c506001600160801b03169a506149499050565b6008549a505b600386015460048701549099506001600160801b031697506149aa565b600061497f61491b6001600160801b0385166001615856565b6003808901546004808b015492840154930154909e506001600160801b039182169d50919b50169850505b505050505050509193509193565b60006001600160801b03841615614a135760408051602081018790526001600160801b038087169282019290925260608101859052908316608082015260a00160405160208183030381529060405280519060200120611662565b8282604051602001614a389291909182526001600160801b0316602082015260400190565b6040516020818303038152906040528051906020012095945050505050565b600080614acb847e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f6307c4acdd60e01b67ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff1690508083036001841b600180831b0386831b17039250505092915050565b60008060008360000151600003614b2f576040517f5ab458fb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6020840151805160001a607f8111614b54576000600160009450945094505050614f83565b60b78111614c6a576000614b696080836156a0565b905080876000015111614ba8576040517f66c9448500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001838101517fff00000000000000000000000000000000000000000000000000000000000000169082148015614c2057507f80000000000000000000000000000000000000000000000000000000000000007fff000000000000000000000000000000000000000000000000000000000000008216105b15614c57576040517fbabb01dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5060019550935060009250614f83915050565b60bf8111614dc8576000614c7f60b7836156a0565b905080876000015111614cbe576040517f66c9448500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60018301517fff00000000000000000000000000000000000000000000000000000000000000166000819003614d20576040517fbabb01dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600184015160088302610100031c60378111614d68576040517fbabb01dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b614d72818461566e565b895111614dab576040517f66c9448500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b614db683600161566e565b9750955060009450614f839350505050565b60f78111614e2d576000614ddd60c0836156a0565b905080876000015111614e1c576040517f66c9448500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600195509350849250614f83915050565b6000614e3a60f7836156a0565b905080876000015111614e79576040517f66c9448500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60018301517fff00000000000000000000000000000000000000000000000000000000000000166000819003614edb576040517fbabb01dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600184015160088302610100031c60378111614f23576040517fbabb01dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b614f2d818461566e565b895111614f66576040517f66c9448500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b614f7183600161566e565b9750955060019450614f839350505050565b9193909250565b60608167ffffffffffffffff811115614fa557614fa56155a8565b6040519080825280601f01601f191660200182016040528015614fcf576020820181803683370190505b5090508115615018576000614fe4848661566e565b90506020820160005b84811015615005578281015182820152602001614fed565b84811115615014576000858301525b5050505b9392505050565b60008161509c846001600160801b03167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f6307c4acdd60e01b67ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff16116150b25763b34b5c226000526004601cfd5b6150bb8361515e565b905081615138826001600160801b03167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f6307c4acdd60e01b67ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff1611613abb57613ab861514e83600161566e565b6001600160801b038316906151ea565b600081196001830116816151d9827e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f6307c4acdd60e01b67ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff169390931c8015179392505050565b60008061525e847e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f6307c4acdd60e01b67ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff169050808303600180821b0385821b179250505092915050565b60008083601f84011261528c57600080fd5b50813567ffffffffffffffff8111156152a457600080fd5b6020830191508360208285010111156152bc57600080fd5b9250929050565b600080600083850360a08112156152d957600080fd5b60808112156152e757600080fd5b50839250608084013567ffffffffffffffff81111561530557600080fd5b6153118682870161527a565b9497909650939450505050565b6000806040838503121561533157600080fd5b50508035926020909101359150565b634e487b7160e01b600052602160045260246000fd5b6003811061537457634e487b7160e01b600052602160045260246000fd5b50565b6020810161538483615356565b91905290565b6001600160a01b038116811461537457600080fd5b6000602082840312156153b157600080fd5b81356150188161538a565b6000806000606084860312156153d157600080fd5b505081359360208301359350604090920135919050565b6000815180845260005b8181101561540e576020818501810151868301820152016153f2565b81811115615420576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000613ab860208301846153e8565b60006020828403121561547857600080fd5b5035919050565b801515811461537457600080fd5b600080600080608085870312156154a357600080fd5b84359350602085013592506040850135915060608501356154c38161547f565b939692955090935050565b6000602082840312156154e057600080fd5b81356001600160801b038116811461501857600080fd5b6000806000806000806080878903121561551057600080fd5b8635955060208701356155228161547f565b9450604087013567ffffffffffffffff8082111561553f57600080fd5b61554b8a838b0161527a565b9096509450606089013591508082111561556457600080fd5b5061557189828a0161527a565b979a9699509497509295939492505050565b63ffffffff8416815282602082015260606040820152600061166260608301846153e8565b634e487b7160e01b600052604160045260246000fd5b6000608082840312156155d057600080fd5b6040516080810181811067ffffffffffffffff8211171561560157634e487b7160e01b600052604160045260246000fd5b8060405250823581526020830135602082015260408301356040820152606083013560608201528091505092915050565b8183823760009101908152919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000821982111561568157615681615658565b500190565b6000600019820361569957615699615658565b5060010190565b6000828210156156b2576156b2615658565b500390565b6000602082840312156156c957600080fd5b81516150188161538a565b6000602082840312156156e657600080fd5b5051919050565b600067ffffffffffffffff80831681851680830382111561571057615710615658565b01949350505050565b600067ffffffffffffffff8083168185168183048111821515161561574057615740615658565b02949350505050565b600067ffffffffffffffff8381169083168181101561576a5761576a615658565b039392505050565b60006020828403121561578457600080fd5b81516150188161547f565b600080604083850312156157a257600080fd5b505080516020909101519092909150565b6000602082840312156157c557600080fd5b815163ffffffff8116811461501857600080fd5b634e487b7160e01b600052601260045260246000fd5b6000826157fe576157fe6157d9565b500490565b600081600019048311821515161561581d5761581d615658565b500290565b600082615831576158316157d9565b500690565b60006001600160801b038381169083168181101561576a5761576a615658565b60006001600160801b0380831681851680830382111561571057615710615658565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b6060815260006158d5606083018789615878565b82810360208401526158e8818688615878565b9150508260408301529695505050505050565b600060ff821660ff84168082101561591557615915615658565b90039392505050565b600060ff831680615931576159316157d9565b8060ff84160691505092915050565b60007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60008413600084138583048511828216161561598157615981615658565b7f800000000000000000000000000000000000000000000000000000000000000060008712868205881281841616156159bc576159bc615658565b600087129250878205871284841616156159d8576159d8615658565b878505871281841616156159ee576159ee615658565b505050929093029392505050565b600082615a0b57615a0b6157d9565b60001983147f800000000000000000000000000000000000000000000000000000000000000083141615615a4157615a41615658565b50059056fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R`\x046\x10a\x03?W`\x005`\xE0\x1C\x80cp\x87*\xA5\x11a\x01\xB0W\x80c\xC3\x95\xE1\xCA\x11a\0\xECW\x80c\xDA\xBD9m\x11a\0\x95W\x80c\xF8\xF4?\xF6\x11a\0oW\x80c\xF8\xF4?\xF6\x14a\x0B#W\x80c\xFA$\xF7C\x14a\x0BCW\x80c\xFA1Z\xA9\x14a\x0BgW\x80c\xFE+\xBE\xB2\x14a\x0B\x9AW`\0\x80\xFD[\x80c\xDA\xBD9m\x14a\n\x8DW\x80c\xEC^c\x08\x14a\n\xC0W\x80c\xEF\xF0\xF5\x92\x14a\n\xF3W`\0\x80\xFD[\x80c\xD5\xD4M\x80\x11a\0\xC6W\x80c\xD5\xD4M\x80\x14a\n\x1AW\x80c\xD6\xAE<\xD5\x14a\n:W\x80c\xD8\xCC\x1A<\x14a\nmW`\0\x80\xFD[\x80c\xC3\x95\xE1\xCA\x14a\teW\x80c\xC6\xF00\x8C\x14a\t\x85W\x80c\xCF\t\xE0\xD0\x14a\t\xF9W`\0\x80\xFD[\x80c\x8DE\n\x95\x11a\x01YW\x80c\xBB\xDC\x02\xDB\x11a\x013W\x80c\xBB\xDC\x02\xDB\x14a\x08\xB5W\x80c\xBC\xEF;U\x14a\x08\xF6W\x80c\xBD\x8D\xA9V\x14a\t\x18W\x80c\xC0\xD8\xBBt\x14a\t8W`\0\x80\xFD[\x80c\x8DE\n\x95\x14a\x07\xE2W\x80c\x99s^2\x14a\x07\xC0W\x80c\xA4E\xEC\xE6\x14a\x08\x15W`\0\x80\xFD[\x80c\x81)\xFC\x1C\x11a\x01\x8AW\x80c\x81)\xFC\x1C\x14a\x07\xA3W\x80c\x89\x80\xE0\xCC\x14a\x07\xABW\x80c\x8B\x85\x90+\x14a\x07\xC0W`\0\x80\xFD[\x80cp\x87*\xA5\x14a\x07fW\x80cxk\x84K\x14a\x07{W\x80c{\x0F\n\xDC\x14a\x07\x90W`\0\x80\xFD[\x80c>:\xC9\x12\x11a\x02\x7FW\x80cZ_\xA2\xD9\x11a\x02(W\x80c`\xE2td\x11a\x02\x02W\x80c`\xE2td\x14a\x06\xDEW\x80ccaPm\x14a\x06\xFEW\x80ckg\x16\xC0\x14a\x07 W\x80co\x03D\t\x14a\x07SW`\0\x80\xFD[\x80cZ_\xA2\xD9\x14a\x06vW\x80c\\\x0C\xBA3\x14a\x06\x96W\x80c`\x9D34\x14a\x06\xC9W`\0\x80\xFD[\x80cR\x9Dj\x8C\x11a\x02YW\x80cR\x9Dj\x8C\x14a\x05\xCAW\x80cT\xFDMP\x14a\x05\xF7W\x80cW\xDA\x95\x0E\x14a\x06FW`\0\x80\xFD[\x80c>:\xC9\x12\x14a\x05TW\x80c?\xC8\xCE\xF3\x14a\x05\x84W\x80cG'w\xC6\x14a\x05\xB7W`\0\x80\xFD[\x80c%\xFC*\xCE\x11a\x02\xECW\x80c0\xDB\xE5p\x11a\x02\xC6W\x80c0\xDB\xE5p\x14a\x04\xADW\x80c7\x8D\xD4\x8C\x14a\x04\xE5W\x80c7\xB1\xB2)\x14a\x04\xFFW\x80c:v\x84c\x14a\x05!W`\0\x80\xFD[\x80c%\xFC*\xCE\x14a\x04YW\x80c(\x10\xE1\xD6\x14a\x04xW\x80c*\xD6\x9A\xEB\x14a\x04\x8DW`\0\x80\xFD[\x80c \r.\xD2\x11a\x03\x1DW\x80c \r.\xD2\x14a\x03\xD1W\x80c\"*\xBFE\x14a\x03\xFFW\x80c%\x0Ei\xBD\x14a\x04?W`\0\x80\xFD[\x80c\x01\x93Q0\x14a\x03DW\x80c\x03\xC2\x92M\x14a\x03fW\x80c\x19\xEF\xFE\xB4\x14a\x03\x86W[`\0\x80\xFD[4\x80\x15a\x03PW`\0\x80\xFD[Pa\x03da\x03_6`\x04aR\xC3V[a\x0B\xCAV[\0[4\x80\x15a\x03rW`\0\x80\xFD[Pa\x03da\x03\x816`\x04aS\x1EV[a\x0E\x89V[4\x80\x15a\x03\x92W`\0\x80\xFD[P`\0Ta\x03\xB3\x90h\x01\0\0\0\0\0\0\0\0\x90\x04g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[`@Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[4\x80\x15a\x03\xDDW`\0\x80\xFD[P`\0Ta\x03\xF2\x90`\x01`\x80\x1B\x90\x04`\xFF\x16\x81V[`@Qa\x03\xC8\x91\x90aSwV[4\x80\x15a\x04\x0BW`\0\x80\xFD[Pa\x04/a\x04\x1A6`\x04aS\x9FV[`\x0C` R`\0\x90\x81R`@\x90 T`\xFF\x16\x81V[`@Q\x90\x15\x15\x81R` \x01a\x03\xC8V[4\x80\x15a\x04KW`\0\x80\xFD[P`\nTa\x04/\x90`\xFF\x16\x81V[4\x80\x15a\x04eW`\0\x80\xFD[P`\x08T[`@Q\x90\x81R` \x01a\x03\xC8V[4\x80\x15a\x04\x84W`\0\x80\xFD[Pa\x03\xF2a\x14\x11V[4\x80\x15a\x04\x99W`\0\x80\xFD[Pa\x04ja\x04\xA86`\x04aS\x1EV[a\x15\xE9V[4\x80\x15a\x04\xB9W`\0\x80\xFD[P`\x01Ta\x04\xCD\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x01a\x03\xC8V[4\x80\x15a\x04\xF1W`\0\x80\xFD[P`\rTa\x03\xF2\x90`\xFF\x16\x81V[4\x80\x15a\x05\x0BW`\0\x80\xFD[P6`\x01\x19\x81\x015`\xF0\x1C\x90\x035``\x1Ca\x04\xCDV[4\x80\x15a\x05-W`\0\x80\xFD[P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x04\xCDV[4\x80\x15a\x05`W`\0\x80\xFD[P`\0Ta\x04/\x90r\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16\x81V[4\x80\x15a\x05\x90W`\0\x80\xFD[P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x04\xCDV[a\x03da\x05\xC56`\x04aS\xBCV[a\x16\x1FV[4\x80\x15a\x05\xD6W`\0\x80\xFD[Pa\x04ja\x05\xE56`\x04aS\x9FV[`\x03` R`\0\x90\x81R`@\x90 T\x81V[4\x80\x15a\x06\x03W`\0\x80\xFD[P`@\x80Q\x80\x82\x01\x90\x91R`\x05\x81R\x7F1.8.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` \x82\x01R[`@Qa\x03\xC8\x91\x90aTSV[4\x80\x15a\x06RW`\0\x80\xFD[P`\x08T`\tTa\x06a\x91\x90\x82V[`@\x80Q\x92\x83R` \x83\x01\x91\x90\x91R\x01a\x03\xC8V[4\x80\x15a\x06\x82W`\0\x80\xFD[Pa\x04ja\x06\x916`\x04aTfV[a\x161V[4\x80\x15a\x06\xA2W`\0\x80\xFD[P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x04\xCDV[4\x80\x15a\x06\xD5W`\0\x80\xFD[Pa\x069a\x16kV[4\x80\x15a\x06\xEAW`\0\x80\xFD[Pa\x03da\x06\xF96`\x04aS\x9FV[a\x16yV[4\x80\x15a\x07\nW`\0\x80\xFD[P6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`4\x015a\x04jV[4\x80\x15a\x07,W`\0\x80\xFD[P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x03\xB3V[a\x03da\x07a6`\x04aT\x8DV[a\x19\x91V[4\x80\x15a\x07rW`\0\x80\xFD[P`\tTa\x04jV[4\x80\x15a\x07\x87W`\0\x80\xFD[Pa\x03da#2V[a\x03da\x07\x9E6`\x04aS\xBCV[a'QV[a\x03da'^V[4\x80\x15a\x07\xB7W`\0\x80\xFD[P`\x02Ta\x04jV[4\x80\x15a\x07\xCCW`\0\x80\xFD[P6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`T\x015a\x04jV[4\x80\x15a\x07\xEEW`\0\x80\xFD[P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x04jV[4\x80\x15a\x08!W`\0\x80\xFD[Pa\x08wa\x0806`\x04aTfV[`\x07` R`\0\x90\x81R`@\x90 \x80T`\x01\x90\x91\x01T`\xFF\x82\x16\x91a\x01\0\x81\x04c\xFF\xFF\xFF\xFF\x16\x91e\x01\0\0\0\0\0\x90\x91\x04`\x01`\x01`\x80\x1B\x03\x16\x90`\x01`\x01`\xA0\x1B\x03\x16\x84V[`@\x80Q\x94\x15\x15\x85Rc\xFF\xFF\xFF\xFF\x90\x93\x16` \x85\x01R`\x01`\x01`\x80\x1B\x03\x90\x91\x16\x91\x83\x01\x91\x90\x91R`\x01`\x01`\xA0\x1B\x03\x16``\x82\x01R`\x80\x01a\x03\xC8V[4\x80\x15a\x08\xC1W`\0\x80\xFD[P`@Qc\xFF\xFF\xFF\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x81R` \x01a\x03\xC8V[4\x80\x15a\t\x02W`\0\x80\xFD[P6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\x14\x015a\x04jV[4\x80\x15a\t$W`\0\x80\xFD[Pa\x03\xB3a\t36`\x04aTfV[a,\xFBV[4\x80\x15a\tDW`\0\x80\xFD[Pa\x04ja\tS6`\x04aS\x9FV[`\x0B` R`\0\x90\x81R`@\x90 T\x81V[4\x80\x15a\tqW`\0\x80\xFD[Pa\x04ja\t\x806`\x04aT\xCEV[a.\x95V[4\x80\x15a\t\x91W`\0\x80\xFD[Pa\t\xA5a\t\xA06`\x04aTfV[a0VV[`@\x80Qc\xFF\xFF\xFF\xFF\x90\x98\x16\x88R`\x01`\x01`\xA0\x1B\x03\x96\x87\x16` \x89\x01R\x95\x90\x94\x16\x94\x86\x01\x94\x90\x94R`\x01`\x01`\x80\x1B\x03\x91\x82\x16``\x86\x01R`\x80\x85\x01R\x91\x82\x16`\xA0\x84\x01R\x16`\xC0\x82\x01R`\xE0\x01a\x03\xC8V[4\x80\x15a\n\x05W`\0\x80\xFD[P`\0Ta\x03\xB3\x90g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[4\x80\x15a\n&W`\0\x80\xFD[Pa\x04ja\n56`\x04aS\x9FV[a0\xCAV[4\x80\x15a\nFW`\0\x80\xFD[P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x04jV[4\x80\x15a\nyW`\0\x80\xFD[Pa\x03da\n\x886`\x04aT\xF7V[a1\"V[4\x80\x15a\n\x99W`\0\x80\xFD[P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x03\xB3V[4\x80\x15a\n\xCCW`\0\x80\xFD[P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x04jV[4\x80\x15a\n\xFFW`\0\x80\xFD[Pa\x04/a\x0B\x0E6`\x04aTfV[`\x04` R`\0\x90\x81R`@\x90 T`\xFF\x16\x81V[4\x80\x15a\x0B/W`\0\x80\xFD[Pa\x03da\x0B>6`\x04aS\xBCV[a6~V[4\x80\x15a\x0BOW`\0\x80\xFD[Pa\x0BXa:dV[`@Qa\x03\xC8\x93\x92\x91\x90aU\x83V[4\x80\x15a\x0BsW`\0\x80\xFD[P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x04jV[4\x80\x15a\x0B\xA6W`\0\x80\xFD[Pa\x04/a\x0B\xB56`\x04aTfV[`\x06` R`\0\x90\x81R`@\x90 T`\xFF\x16\x81V[`\0\x80T`\x01`\x80\x1B\x90\x04`\xFF\x16`\x02\x81\x11\x15a\x0B\xE9Wa\x0B\xE9aS@V[\x14a\x0C\x07W`@Qc\x06\x7F\xE1\x95`\xE4\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0Tr\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16\x15a\x0CZW`@Q\x7F\x0E\xA2\xE7R\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\x01`@Q\x80\x91\x03\x90\xFD[a\x0Cs6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\x14\x015\x90V[\x90V[a\x0C\x8Aa\x0C\x856\x86\x90\x03\x86\x01\x86aU\xBEV[a:\xC1V[\x14a\x0C\xC1W`@Q\x7F\x9C\xC0\x0B[\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\x01`@Q\x80\x91\x03\x90\xFD[\x82``\x015\x82\x82`@Qa\x0C\xD6\x92\x91\x90aV2V[`@Q\x80\x91\x03\x90 \x14a\r\x15W`@Q\x7F\xD8\x1DX;\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\x01`@Q\x80\x91\x03\x90\xFD[`\0a\r^a\rY\x84\x84\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RPa;\x1D\x92PPPV[a;\x8AV[\x90P`\0a\r\x85\x82`\x08\x81Q\x81\x10a\rxWa\rxaVBV[` \x02` \x01\x01Qa=@V[\x90P` \x81Q\x11\x15a\r\xC3W`@Q\x7F\xD8\x1DX;\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\x01`@Q\x80\x91\x03\x90\xFD[` \x81\x81\x01Q\x82Q\x90\x91\x03`\x03\x1B\x1C6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`T\x015\x81\x03a\x0E\x1AW`@Q\x7F\xB8\xED\x880\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\x01`@Q\x80\x91\x03\x90\xFD[PP`\x01\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x163\x17\x90UPP`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16r\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x17\x90UPPV[`\0\x80T`\x01`\x80\x1B\x90\x04`\xFF\x16`\x02\x81\x11\x15a\x0E\xA8Wa\x0E\xA8aS@V[\x14a\x0E\xC6W`@Qc\x06\x7F\xE1\x95`\xE4\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0`\x02\x83\x81T\x81\x10a\x0E\xDBWa\x0E\xDBaVBV[\x90`\0R` `\0 \x90`\x05\x02\x01\x90P`\0a\x0E\xF6\x84a,\xFBV[\x90Pg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81\x16\x90\x82\x16\x10\x15a\x0F_W`@Q\x7F\xF2D\x0BS\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\x01`@Q\x80\x91\x03\x90\xFD[`\0\x84\x81R`\x06` R`@\x90 T`\xFF\x16\x15a\x0F\xA8W`@Q\x7F\xF1\xA9E\x81\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\x01`@Q\x80\x91\x03\x90\xFD[`\0\x84\x81R`\x05` R`@\x90 \x80T\x80\x15\x80\x15a\x0F\xC5WP\x85\x15\x15[\x15a\x10(W\x83Td\x01\0\0\0\0\x90\x04`\x01`\x01`\xA0\x1B\x03\x16`\0\x81\x15a\x0F\xEBW\x81a\x0F\xFAV[`\x01\x86\x01T`\x01`\x01`\xA0\x1B\x03\x16[\x90Pa\x10\x06\x81\x87a=\xF4V[PPP`\0\x94\x85RPP`\x06` RPP`@\x90 \x80T`\xFF\x19\x16`\x01\x17\x90UV[`\0\x86\x81R`\x07` \x90\x81R`@\x91\x82\x90 \x82Q`\x80\x81\x01\x84R\x81T`\xFF\x81\x16\x15\x15\x80\x83Ra\x01\0\x82\x04c\xFF\xFF\xFF\xFF\x16\x94\x83\x01\x94\x90\x94Re\x01\0\0\0\0\0\x90\x04`\x01`\x01`\x80\x1B\x03\x16\x93\x81\x01\x93\x90\x93R`\x01\x01T`\x01`\x01`\xA0\x1B\x03\x16``\x83\x01Ra\x10\xACW`\x01`\x01`\x80\x1B\x03`@\x82\x01R`\x01\x81R`\0\x86\x90\x03a\x10\xACW\x81\x95P[`\0\x86\x82` \x01Qc\xFF\xFF\xFF\xFF\x16a\x10\xC4\x91\x90aVnV[\x90P`\0\x83\x82\x11a\x10\xD5W\x81a\x10\xD7V[\x83[` \x84\x01Q\x90\x91Pc\xFF\xFF\xFF\xFF\x16[\x81\x81\x10\x15a\x11\xF7W`\0\x86\x82\x81T\x81\x10a\x11\x02Wa\x11\x02aVBV[`\0\x91\x82R` \x80\x83 \x90\x91\x01T\x80\x83R`\x06\x90\x91R`@\x90\x91 T\x90\x91P`\xFF\x16a\x11ZW`@Q\x7F\x9A\x07fF\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\x01`@Q\x80\x91\x03\x90\xFD[`\0`\x02\x82\x81T\x81\x10a\x11oWa\x11oaVBV[`\0\x91\x82R` \x90\x91 `\x05\x90\x91\x02\x01\x80T\x90\x91Pd\x01\0\0\0\0\x90\x04`\x01`\x01`\xA0\x1B\x03\x16\x15\x80\x15a\x11\xB6WP`\x04\x81\x01T`@\x87\x01Q`\x01`\x01`\x80\x1B\x03\x91\x82\x16\x91\x16\x11[\x15a\x11\xE2W`\x01\x81\x01T`\x01`\x01`\xA0\x1B\x03\x16``\x87\x01R`\x04\x81\x01T`\x01`\x01`\x80\x1B\x03\x16`@\x87\x01R[PP\x80\x80a\x11\xEF\x90aV\x86V[\x91PPa\x10\xE6V[Pc\xFF\xFF\xFF\xFF\x81\x81\x16` \x85\x81\x01\x91\x82R`\0\x8C\x81R`\x07\x90\x91R`@\x90\x81\x90 \x86Q\x81T\x93Q\x92\x88\x01Q\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\x90\x94\x16\x90\x15\x15\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\xFF\x16\x17a\x01\0\x92\x90\x94\x16\x91\x82\x02\x93\x90\x93\x17\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xFF\xFF\xFF\xFF\xFF\x16e\x01\0\0\0\0\0`\x01`\x01`\x80\x1B\x03\x90\x93\x16\x92\x90\x92\x02\x91\x90\x91\x17\x82U``\x85\x01Q`\x01\x90\x92\x01\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16`\x01`\x01`\xA0\x1B\x03\x90\x93\x16\x92\x90\x92\x17\x90\x91U\x84\x90\x03a\x14\x06W``\x83\x01Q`\0\x8A\x81R`\x06` R`@\x90 \x80T`\xFF\x19\x16`\x01\x17\x90U\x89\x15\x80\x15a\x13CWP`\0Tr\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16[\x15a\x13\x9EW`\x01T`\x01`\x01`\xA0\x1B\x03\x16a\x13^\x81\x8Aa=\xF4V[\x88T`\x01`\x01`\xA0\x1B\x03\x90\x91\x16d\x01\0\0\0\0\x02\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xFF\xFF\xFF\xFF\x90\x91\x16\x17\x88Ua\x14\x04V[a\x13\xCB`\x01`\x01`\xA0\x1B\x03\x82\x16\x15a\x13\xB6W\x81a\x13\xC5V[`\x01\x89\x01T`\x01`\x01`\xA0\x1B\x03\x16[\x89a=\xF4V[\x87T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xFF\xFF\xFF\xFF\x16d\x01\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x83\x16\x02\x17\x88U[P[PPPPPPPPPV[`\0\x80`\0T`\x01`\x80\x1B\x90\x04`\xFF\x16`\x02\x81\x11\x15a\x142Wa\x142aS@V[\x14a\x14PW`@Qc\x06\x7F\xE1\x95`\xE4\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0\x80R`\x06` R\x7FT\xCD\xD3i\xE4\xE8\xA8Q^R\xCAr\xEC\x81l!\x01\x83\x1A\xD1\xF1\x8B\xF4A\x02\xED\x17\x14Y\xC9\xB4\xF8T`\xFF\x16a\x14\xB4W`@Q\x7F\x9A\x07fF\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\x01`@Q\x80\x91\x03\x90\xFD[`\0`\x01`\x01`\xA0\x1B\x03\x16`\x02`\0\x81T\x81\x10a\x14\xD3Wa\x14\xD3aVBV[`\0\x91\x82R` \x90\x91 `\x05\x90\x91\x02\x01Td\x01\0\0\0\0\x90\x04`\x01`\x01`\xA0\x1B\x03\x16\x14a\x15\x01W`\x01a\x15\x04V[`\x02[`\0\x80Tg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFFB\x16h\x01\0\0\0\0\0\0\0\0\x02\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16\x81\x17\x83U\x92\x93P\x83\x92\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x17`\x01`\x80\x1B\x83`\x02\x81\x11\x15a\x15\xA8Wa\x15\xA8aS@V[\x02\x17\x90U`\x02\x81\x11\x15a\x15\xBDWa\x15\xBDaS@V[`@Q\x7F^\x18o\t\xB9\xC94\x91\xF1N'~\xEA\x7F\xAA]\xE6\xA2\xD4\xBD\xA7Zy\xAFz6\x84\xFB\xFBB\xDA`\x90`\0\x90\xA2\x90V[`\x05` R\x81`\0R`@`\0 \x81\x81T\x81\x10a\x16\x05W`\0\x80\xFD[\x90`\0R` `\0 \x01`\0\x91P\x91PPT\x81V[\x90P\x90V[a\x16,\x83\x83\x83`\x01a\x19\x91V[PPPV[`\0\x81\x81R`\x07` \x90\x81R`@\x80\x83 `\x05\x90\x92R\x82 \x80T\x82Ta\x16b\x90a\x01\0\x90\x04c\xFF\xFF\xFF\xFF\x16\x82aV\xA0V[\x95\x94PPPPPV[``a\x16\x1A`T` a>6V[a\x16\x81a#2V[`\0`\x02`\rT`\xFF\x16`\x02\x81\x11\x15a\x16\x9CWa\x16\x9CaS@V[\x03a\x16\xC0WP`\x01`\x01`\xA0\x1B\x03\x81\x16`\0\x90\x81R`\x0B` R`@\x90 Ta\x17/V[`\x01`\rT`\xFF\x16`\x02\x81\x11\x15a\x16\xD9Wa\x16\xD9aS@V[\x03a\x16\xFDWP`\x01`\x01`\xA0\x1B\x03\x81\x16`\0\x90\x81R`\x03` R`@\x90 Ta\x17/V[`@Q\x7F\x07\x8A=\xF4\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xA0\x1B\x03\x82\x16`\0\x90\x81R`\x0C` R`@\x90 T`\xFF\x16a\x18\x0CW`\x01`\x01`\xA0\x1B\x03\x82\x81\x16`\0\x81\x81R`\x0C` R`@\x90\x81\x90 \x80T`\xFF\x19\x16`\x01\x17\x90UQ\x7F~\xEE(\x8D\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\x81\x01\x91\x90\x91R`$\x81\x01\x83\x90R\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x91\x16\x90c~\xEE(\x8D\x90`D\x01`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a\x17\xF0W`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x18\x04W=`\0\x80>=`\0\xFD[PPPPPPV[\x80`\0\x03a\x18FW`@Q\x7F\x17\xBF\xE5\xF7\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xA0\x1B\x03\x82\x81\x16`\0\x81\x81R`\x0B` \x90\x81R`@\x80\x83 \x83\x90U`\x03\x90\x91R\x80\x82 \x91\x90\x91UQ\x7F\xF3\xFE\xF3\xA3\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\x81\x01\x91\x90\x91R`$\x81\x01\x83\x90R\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x91\x16\x90c\xF3\xFE\xF3\xA3\x90`D\x01`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a\x18\xECW`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x19\0W=`\0\x80>=`\0\xFD[PPPP`\0\x82`\x01`\x01`\xA0\x1B\x03\x16\x82`@Q`\0`@Q\x80\x83\x03\x81\x85\x87Z\xF1\x92PPP=\x80`\0\x81\x14a\x19QW`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=`\0` \x84\x01>a\x19VV[``\x91P[PP\x90P\x80a\x16,W`@Q\x7F\x83\xE6\xCCk\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\x01`@Q\x80\x91\x03\x90\xFD[`\0\x80T`\x01`\x80\x1B\x90\x04`\xFF\x16`\x02\x81\x11\x15a\x19\xB0Wa\x19\xB0aS@V[\x14a\x19\xCEW`@Qc\x06\x7F\xE1\x95`\xE4\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0`\x02\x84\x81T\x81\x10a\x19\xE3Wa\x19\xE3aVBV[`\0\x91\x82R` \x91\x82\x90 `@\x80Q`\xE0\x81\x01\x82R`\x05\x90\x93\x02\x90\x91\x01\x80Tc\xFF\xFF\xFF\xFF\x81\x16\x84R`\x01`\x01`\xA0\x1B\x03d\x01\0\0\0\0\x90\x91\x04\x81\x16\x94\x84\x01\x94\x90\x94R`\x01\x81\x01T\x90\x93\x16\x90\x82\x01R`\x02\x82\x01T`\x01`\x01`\x80\x1B\x03\x90\x81\x16``\x83\x01R`\x03\x83\x01T`\x80\x83\x01\x81\x90R`\x04\x90\x93\x01T\x80\x82\x16`\xA0\x84\x01R`\x01`\x80\x1B\x90\x04\x16`\xC0\x82\x01R\x91P\x85\x14a\x1A\xA7W`@Q\x7F0\x14\x032\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\x01`@Q\x80\x91\x03\x90\xFD[`\xA0\x81\x01Q`\0\x83\x15`\x01`\x01`\x80\x1B\x03\x83\x16\x17`\x01\x1B\x90P`\0a\x1B<\x82`\x01`\x01`\x80\x1B\x03\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1Fc\x07\xC4\xAC\xDD`\xE0\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\xFF\x16\x90P\x86\x15\x80a\x1BwWPa\x1Bt\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x02aVnV[\x81\x14[\x80\x15a\x1B\x81WP\x84\x15[\x15a\x1B\xB8W`@Q\x7F\xA4&7\xBC\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\x01`@Q\x80\x91\x03\x90\xFD[`\0Tr\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16\x80\x15a\x1B\xDEWP\x86\x15[\x15a\x1C\x15W`@Q\x7F\x0E\xA2\xE7R\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\x01`@Q\x80\x91\x03\x90\xFD[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81\x11\x15a\x1CoW`@Q\x7FV\xF5{+\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\x01`@Q\x80\x91\x03\x90\xFD[a\x1C\x9A\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01aVnV[\x81\x03a\x1C\xACWa\x1C\xAC\x86\x88\x85\x88a>jV[4a\x1C\xB6\x83a.\x95V[\x14a\x1C\xEDW`@Q\x7F\x86 \xAA\x19\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\x01`@Q\x80\x91\x03\x90\xFD[`\0a\x1C\xF8\x88a,\xFBV[\x90Pg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81\x16\x90\x82\x16\x03a\x1D`W`@Q\x7F3\x81\xD1\x14\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\x01`@Q\x80\x91\x03\x90\xFD[`\0a\x1D\x8D`\x01\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0aV\xA0V[\x83\x03a\x1E\xB1W\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16c}\xC0\xD1\xD0`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x1D\xF1W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x1E\x15\x91\x90aV\xB7V[`\x01`\x01`\xA0\x1B\x03\x16c\xF3\xF4\x80\xD9`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x1ERW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x1Ev\x91\x90aV\xD4V[a\x1E\xAA\x90\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16aV\xEDV[\x90Pa\x1FDV[a\x1E\xDC`\x01\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0aV\xA0V[\x83\x03a\x1F\x17Wa\x1E\xAA\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\x02aW\x19V[P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16[a\x1Fx\x81\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16aWIV[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a\x1F\x93\x83g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90V[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x11\x15a\x1F\xDAWa\x1F\xD7\x81\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16aWIV[\x91P[`\0`@\x83\x90\x1BB\x17`\0\x8A\x81R`\x80\x87\x90\x1B`\x01`\x01`\x80\x1B\x03\x8D\x16\x17` R`@\x81 \x91\x92P\x90`\0\x81\x81R`\x04` R`@\x90 T\x90\x91P`\xFF\x16\x15a OW`@Q\x7F\x80I~;\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x04`\0\x83\x81R` \x01\x90\x81R` \x01`\0 `\0a\x01\0\n\x81T\x81`\xFF\x02\x19\x16\x90\x83\x15\x15\x02\x17\x90UP`\x02`@Q\x80`\xE0\x01`@R\x80\x8Dc\xFF\xFF\xFF\xFF\x16\x81R` \x01`\0`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x013`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x014`\x01`\x01`\x80\x1B\x03\x16\x81R` \x01\x8C\x81R` \x01\x88`\x01`\x01`\x80\x1B\x03\x16\x81R` \x01\x84`\x01`\x01`\x80\x1B\x03\x16\x81RP\x90\x80`\x01\x81T\x01\x80\x82U\x80\x91PP`\x01\x90\x03\x90`\0R` `\0 \x90`\x05\x02\x01`\0\x90\x91\x90\x91\x90\x91P`\0\x82\x01Q\x81`\0\x01`\0a\x01\0\n\x81T\x81c\xFF\xFF\xFF\xFF\x02\x19\x16\x90\x83c\xFF\xFF\xFF\xFF\x16\x02\x17\x90UP` \x82\x01Q\x81`\0\x01`\x04a\x01\0\n\x81T\x81`\x01`\x01`\xA0\x1B\x03\x02\x19\x16\x90\x83`\x01`\x01`\xA0\x1B\x03\x16\x02\x17\x90UP`@\x82\x01Q\x81`\x01\x01`\0a\x01\0\n\x81T\x81`\x01`\x01`\xA0\x1B\x03\x02\x19\x16\x90\x83`\x01`\x01`\xA0\x1B\x03\x16\x02\x17\x90UP``\x82\x01Q\x81`\x02\x01`\0a\x01\0\n\x81T\x81`\x01`\x01`\x80\x1B\x03\x02\x19\x16\x90\x83`\x01`\x01`\x80\x1B\x03\x16\x02\x17\x90UP`\x80\x82\x01Q\x81`\x03\x01U`\xA0\x82\x01Q\x81`\x04\x01`\0a\x01\0\n\x81T\x81`\x01`\x01`\x80\x1B\x03\x02\x19\x16\x90\x83`\x01`\x01`\x80\x1B\x03\x16\x02\x17\x90UP`\xC0\x82\x01Q\x81`\x04\x01`\x10a\x01\0\n\x81T\x81`\x01`\x01`\x80\x1B\x03\x02\x19\x16\x90\x83`\x01`\x01`\x80\x1B\x03\x16\x02\x17\x90UPPP`\x05`\0\x8C\x81R` \x01\x90\x81R` \x01`\0 `\x01`\x02\x80T\x90Pa\"F\x91\x90aV\xA0V[\x81T`\x01\x81\x01\x83U`\0\x92\x83R` \x80\x84 \x90\x91\x01\x91\x90\x91U3\x82R`\x0B\x90R`@\x81 \x80T4\x92\x90a\"z\x90\x84\x90aVnV[\x92PP\x81\x90UP\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16c\xD0\xE3\r\xB04`@Q\x82c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01`\0`@Q\x80\x83\x03\x81\x85\x88\x80;\x15\x80\x15a\"\xDCW`\0\x80\xFD[PZ\xF1\x15\x80\x15a\"\xF0W=`\0\x80>=`\0\xFD[PP`@Q3\x93P\x8D\x92P\x8E\x91P\x7F\x9B2Et\x0E\xC3\xB1U\t\x8AU\xBE\x84\x95zM\xA1>\xAF\x7F\x14\xA8\xBCoS\x12l\x0B\x93P\xF2\xBE\x90`\0\x90\xA4PPPPPPPPPPPPV[`\x02`\rT`\xFF\x16`\x02\x81\x11\x15a#KWa#KaS@V[\x14\x80a#mWP`\x01`\rT`\xFF\x16`\x02\x81\x11\x15a#kWa#kaS@V[\x14[\x15a#tWV[`\0`\rT`\xFF\x16`\x02\x81\x11\x15a#\x8DWa#\x8DaS@V[\x14a#\xC4W`@Q\x7F\x07\x8A=\xF4\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\x01`@Q\x80\x91\x03\x90\xFD[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16c\\\x97Z\xBB`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a$\"W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a$F\x91\x90aWrV[\x15a$}W`@Q\x7F7\x9A~\xD9\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\x01`@Q\x80\x91\x03\x90\xFD[`\0Th\x01\0\0\0\0\0\0\0\0\x90\x04g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\0\x03a$\xD9W`@Q\x7F\xC1\x05&\n\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\x01`@Q\x80\x91\x03\x90\xFD[`@Q\x7F\x03\x14\xD2\xB3\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\x81R0`\x04\x82\x01R`\0\x90\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16\x90c\x03\x14\xD2\xB3\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a%YW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a%}\x91\x90aWrV[\x90P\x80a%\xB6W`@Q\x7FHQ\xBD\x9B\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\x01`@Q\x80\x91\x03\x90\xFD[`@Q\x7F\x17\xCF!\xA9\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\x81R0`\x04\x82\x01R\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16\x90c\x17\xCF!\xA9\x90`$\x01`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a&0W`\0\x80\xFD[PZ\xF1\x92PPP\x80\x15a&AWP`\x01[P`@Q\x7FIk\x9C\x16\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\x81R0`\x04\x82\x01R`\0\x90\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16\x90cIk\x9C\x16\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a&\xC2W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a&\xE6\x91\x90aWrV[\x90P\x80\x15a'\0W`\r\x80T`\xFF\x19\x16`\x01\x17\x90Ua'\x0EV[`\r\x80T`\xFF\x19\x16`\x02\x17\x90U[`\rT`@Q\x7F\x99\x08\xEA\xAC\x06E\xDF\x9D\x07\x04\xD0j\xDC\x9E\x073|\x95\x1D\xE2\xF0k_(6\x15\x1DH\xD5\xE4r/\x91a'E\x91`\xFF\x90\x91\x16\x90aSwV[`@Q\x80\x91\x03\x90\xA1PPV[a\x16,\x83\x83\x83`\0a\x19\x91V[`\0Tq\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16\x15a'\xB0W`@Q\x7F\r\xC1I\xF0\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\x01`@Q\x80\x91\x03\x90\xFD[`\0\x80\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16c\xD8>\xF2g`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01`@\x80Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a(\x10W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a(4\x91\x90aW\x8FV[\x90\x92P\x90P\x81a(pW`@Q\x7Fjk\xC3\xB2\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\x01`@Q\x80\x91\x03\x90\xFD[`@\x80Q\x80\x82\x01\x90\x91R\x82\x81R` \x01\x81\x90R`\x08\x82\x90U`\t\x81\x90U`z6\x14a(\xC7W`@Q\x7F\x98$\xBD\xAB\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\x01`@Q\x80\x91\x03\x90\xFD[\x806`\x01\x19\x81\x015`\xF0\x1C\x90\x03`T\x015\x11a)%W`@Q\x7F\xF4\x029\xDB\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\x81R6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\x14\x015`\x04\x82\x01R`$\x01[`@Q\x80\x91\x03\x90\xFD[`@\x80Q`\xE0\x81\x01\x82Rc\xFF\xFF\xFF\xFF\x80\x82R`\0` \x80\x84\x01\x82\x81R6`\x01\x19\x81\x015`\xF0\x1C\x90\x03\x805``\x90\x81\x1C\x87\x89\x01\x81\x81R`\x01`\x01`\x80\x1B\x034\x81\x81\x16\x94\x8B\x01\x94\x85R`\x14\x90\x95\x015`\x80\x8B\x01\x90\x81R`\x01`\xA0\x8C\x01\x81\x81RB\x84\x16`\xC0\x8E\x01\x90\x81R`\x02\x80T\x93\x84\x01\x81U\x8CR\x9CQ\x7F@W\x87\xFA\x12\xA8#\xE0\xF2\xB7c\x1C\xC4\x1B;\xA8\x82\x8B3!\xCA\x81\x11\x11\xFAu\xCD:\xA3\xBBZ\xCE`\x05\x90\x93\x02\x92\x83\x01\x80T\x9AQ\x91\x90\x9D\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x9A\x16\x99\x90\x99\x17d\x01\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x9A\x8B\x16\x02\x17\x90\x9BU\x92Q\x7F@W\x87\xFA\x12\xA8#\xE0\xF2\xB7c\x1C\xC4\x1B;\xA8\x82\x8B3!\xCA\x81\x11\x11\xFAu\xCD:\xA3\xBBZ\xCF\x84\x01\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x91\x90\x98\x16\x17\x90\x96U\x92Q\x7F@W\x87\xFA\x12\xA8#\xE0\xF2\xB7c\x1C\xC4\x1B;\xA8\x82\x8B3!\xCA\x81\x11\x11\xFAu\xCD:\xA3\xBBZ\xD0\x82\x01\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x91\x85\x16\x91\x90\x91\x17\x90U\x93Q\x7F@W\x87\xFA\x12\xA8#\xE0\xF2\xB7c\x1C\xC4\x1B;\xA8\x82\x8B3!\xCA\x81\x11\x11\xFAu\xCD:\xA3\xBBZ\xD1\x85\x01U\x95Q\x96Q\x96\x81\x16`\x01`\x80\x1B\x97\x90\x91\x16\x96\x90\x96\x02\x95\x90\x95\x17\x7F@W\x87\xFA\x12\xA8#\xE0\xF2\xB7c\x1C\xC4\x1B;\xA8\x82\x8B3!\xCA\x81\x11\x11\xFAu\xCD:\xA3\xBBZ\xD2\x90\x91\x01U\x81Tq\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x17\x82U\x91\x81R`\x0B\x90\x91R\x91\x82 \x80T\x91\x92\x90\x91a+f\x90\x84\x90aVnV[\x92PP\x81\x90UP\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16c\xD0\xE3\r\xB04`@Q\x82c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01`\0`@Q\x80\x83\x03\x81\x85\x88\x80;\x15\x80\x15a+\xC8W`\0\x80\xFD[PZ\xF1\x15\x80\x15a+\xDCW=`\0\x80>=`\0\xFD[PP`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\x16Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x17\x90UPP`@\x80Q\x7F<\x9F9|\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\x90Q\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0c\xFF\xFF\xFF\xFF\x16\x92P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16\x91c<\x9F9|\x91`\x04\x80\x83\x01\x92` \x92\x91\x90\x82\x90\x03\x01\x81\x86Z\xFA\x15\x80\x15a,\xBBW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a,\xDF\x91\x90aW\xB3V[`\n\x80T`\xFF\x19\x16c\xFF\xFF\xFF\xFF\x92\x90\x92\x16\x92\x90\x92\x14\x17\x90UPPV[`\0\x80`\0T`\x01`\x80\x1B\x90\x04`\xFF\x16`\x02\x81\x11\x15a-\x1CWa-\x1CaS@V[\x14a-:W`@Qc\x06\x7F\xE1\x95`\xE4\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0`\x02\x83\x81T\x81\x10a-OWa-OaVBV[`\0\x91\x82R` \x82 `\x05\x90\x91\x02\x01\x80T\x90\x92Pc\xFF\xFF\xFF\xFF\x90\x81\x16\x14a-\xB5W\x81T`\x02\x80T\x90\x91c\xFF\xFF\xFF\xFF\x16\x90\x81\x10a-\x8DWa-\x8DaVBV[\x90`\0R` `\0 \x90`\x05\x02\x01`\x04\x01`\x10\x90T\x90a\x01\0\n\x90\x04`\x01`\x01`\x80\x1B\x03\x16\x90P[`\x04\x82\x01T`\0\x90a-\xE0\x90`\x01`\x80\x1B\x90\x04g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90V[a-\xF4\x90g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16BaV\xA0V[a.\na-\xD3\x84`\x01`\x01`\x80\x1B\x03\x16`@\x1C\x90V[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a.\x1E\x91\x90aVnV[\x90Pg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x11a.kW\x80a\x16bV[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x95\x94PPPPPV[`\0\x80a/\x12\x83`\x01`\x01`\x80\x1B\x03\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1Fc\x07\xC4\xAC\xDD`\xE0\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\xFF\x16\x90P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81\x11\x15a/qW`@Q\x7FV\xF5{+\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\x01`@Q\x80\x91\x03\x90\xFD[d.\x90\xED\xD0\0b\x06\x1A\x80c\x11\xE1\xA3\0`\0a/\x8C\x83\x83aW\xEFV[\x90Pg\r\xE0\xB6\xB3\xA7d\0\0`\0a/\xC3\x82\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0aX\x03V[\x90P`\0a/\xE1a/\xDCg\r\xE0\xB6\xB3\xA7d\0\0\x86aX\x03V[a?\xF9V[\x90P`\0a/\xEF\x84\x84aBKV[\x90P`\0a/\xFD\x83\x83aB\x9AV[\x90P`\0a0\n\x82aB\xC8V[\x90P`\0a0)\x82a0$g\r\xE0\xB6\xB3\xA7d\0\0\x8FaX\x03V[aD\xB0V[\x90P`\0a07\x8B\x83aB\x9AV[\x90Pa0C\x81\x8DaX\x03V[\x9F\x9EPPPPPPPPPPPPPPPV[`\x02\x81\x81T\x81\x10a0fW`\0\x80\xFD[`\0\x91\x82R` \x90\x91 `\x05\x90\x91\x02\x01\x80T`\x01\x82\x01T`\x02\x83\x01T`\x03\x84\x01T`\x04\x90\x94\x01Tc\xFF\xFF\xFF\xFF\x84\x16\x95Pd\x01\0\0\0\0\x90\x93\x04`\x01`\x01`\xA0\x1B\x03\x90\x81\x16\x94\x92\x16\x92`\x01`\x01`\x80\x1B\x03\x91\x82\x16\x92\x91\x80\x82\x16\x91`\x01`\x80\x1B\x90\x04\x16\x87V[`\0`\x02`\rT`\xFF\x16`\x02\x81\x11\x15a0\xE5Wa0\xE5aS@V[\x03a1\x06WP`\x01`\x01`\xA0\x1B\x03\x16`\0\x90\x81R`\x0B` R`@\x90 T\x90V[P`\x01`\x01`\xA0\x1B\x03\x16`\0\x90\x81R`\x03` R`@\x90 T\x90V[`\0\x80T`\x01`\x80\x1B\x90\x04`\xFF\x16`\x02\x81\x11\x15a1AWa1AaS@V[\x14a1_W`@Qc\x06\x7F\xE1\x95`\xE4\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0`\x02\x87\x81T\x81\x10a1tWa1taVBV[`\0\x91\x82R` \x82 `\x05\x91\x90\x91\x02\x01`\x04\x81\x01T\x90\x92P`\x01`\x01`\x80\x1B\x03\x16\x90\x87\x15\x82\x17`\x01\x1B\x90Pa1\xCA\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01aVnV[a2D\x82`\x01`\x01`\x80\x1B\x03\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1Fc\x07\xC4\xAC\xDD`\xE0\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\xFF\x16\x14a2~W`@Q\x7F_S\xDD\x98\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\x01`@Q\x80\x91\x03\x90\xFD[`\0\x80\x89\x15a3ZWa2\xD1\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0aV\xA0V[`\x01\x90\x1Ba2\xE7\x84`\x01`\x01`\x80\x1B\x03\x16aD\xE1V[`\x01`\x01`\x80\x1B\x03\x16a2\xFA\x91\x90aX\"V[\x15a3.Wa3%a3\x16`\x01`\x01`\x01`\x80\x1B\x03\x87\x16aX6V[\x86Tc\xFF\xFF\xFF\xFF\x16`\0aEgV[`\x03\x01Ta3PV[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0[\x91P\x84\x90Pa3{V[`\x03\x85\x01T\x91Pa3xa3\x16`\x01`\x01`\x80\x1B\x03\x86\x16`\x01aXVV[\x90P[`\x08\x82\x90\x1B`\x08\x8A\x8A`@Qa3\x92\x92\x91\x90aV2V[`@Q\x80\x91\x03\x90 \x90\x1B\x14a3\xD3W`@Q\x7FieP\xFF\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\x01`@Q\x80\x91\x03\x90\xFD[`\0a3\xDE\x8CaF0V[\x90P`\0a3\xED\x83`\x03\x01T\x90V[`@Q\x7F\xE1L\xED2\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\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16\x90c\xE1L\xED2\x90a4Z\x90\x8F\x90\x8F\x90\x8F\x90\x8F\x90\x8A\x90`\x04\x01aX\xC1V[` `@Q\x80\x83\x03\x81`\0\x87Z\xF1\x15\x80\x15a4yW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a4\x9D\x91\x90aV\xD4V[`\x04\x85\x01T\x91\x14\x91P`\0\x90`\x02\x90a5&\x90`\x01`\x01`\x80\x1B\x03\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1Fc\x07\xC4\xAC\xDD`\xE0\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[a5\xA0\x89`\x01`\x01`\x80\x1B\x03\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1Fc\x07\xC4\xAC\xDD`\xE0\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[a5\xAA\x91\x90aX\xFBV[a5\xB4\x91\x90aY\x1EV[`\xFF\x16\x15\x90P\x81\x15\x15\x81\x03a5\xF5W`@Q\x7F\xFBN@\xDD\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\x01`@Q\x80\x91\x03\x90\xFD[\x87Td\x01\0\0\0\0\x90\x04`\x01`\x01`\xA0\x1B\x03\x16\x15a6?W`@Q\x7F\x90q\xE6\xAF\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\x01`@Q\x80\x91\x03\x90\xFD[PP\x85T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xFF\xFF\xFF\xFF\x163d\x01\0\0\0\0\x02\x17\x90\x95UPPPPPPPPPPPV[`\0\x80T`\x01`\x80\x1B\x90\x04`\xFF\x16`\x02\x81\x11\x15a6\x9DWa6\x9DaS@V[\x14a6\xBBW`@Qc\x06\x7F\xE1\x95`\xE4\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0\x80`\0\x80a6\xCA\x86aF_V[\x93P\x93P\x93P\x93P`\0a6\xE0\x85\x85\x85\x85aI\xB8V[\x90P`\0\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16c}\xC0\xD1\xD0`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a7BW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a7f\x91\x90aV\xB7V[\x90P`\x01\x89\x03a83W`\x01`\x01`\xA0\x1B\x03\x81\x16cR\xF0\xF3\xAD\x8A\x84a7\x976`\x01\x19\x81\x015`\xF0\x1C\x90\x03`4\x015\x90V[`@Q\x7F\xFF\xFF\xFF\xFF\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`\xE0\x86\x90\x1B\x16\x81R`\x04\x81\x01\x93\x90\x93R`$\x83\x01\x91\x90\x91R`D\x82\x01R` `d\x82\x01R`\x84\x81\x01\x8A\x90R`\xA4\x01[` `@Q\x80\x83\x03\x81`\0\x87Z\xF1\x15\x80\x15a8\tW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a8-\x91\x90aV\xD4V[Pa\x14\x06V[`\x02\x89\x03a8RW`\x01`\x01`\xA0\x1B\x03\x81\x16cR\xF0\xF3\xAD\x8A\x84\x89a7\x97V[`\x03\x89\x03a8qW`\x01`\x01`\xA0\x1B\x03\x81\x16cR\xF0\xF3\xAD\x8A\x84\x87a7\x97V[`\x04\x89\x03a9\xA6W`\0a8\xAE`\x01`\x01`\x80\x1B\x03\x85\x16\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0aJWV[`\tTa8\xBB\x91\x90aVnV[a8\xC6\x90`\x01aVnV[\x90P6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`T\x015\x81\x10a8\xF3W6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`T\x015a8\xF5V[\x80[\x90P`\x01`\x01`\xA0\x1B\x03\x82\x16cR\xF0\xF3\xAD\x8B\x85`@Q`\xE0\x84\x90\x1B\x7F\xFF\xFF\xFF\xFF\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\x16\x81R`\x04\x81\x01\x92\x90\x92R`$\x82\x01R`\xC0\x84\x90\x1B`D\x82\x01R`\x08`d\x82\x01R`\x84\x81\x01\x8B\x90R`\xA4\x01` `@Q\x80\x83\x03\x81`\0\x87Z\xF1\x15\x80\x15a9{W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a9\x9F\x91\x90aV\xD4V[PPa\x14\x06V[`\x05\x89\x03a:2W`@Q\x7FR\xF0\xF3\xAD\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\x81\x01\x8A\x90R`$\x81\x01\x83\x90R\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\xC0\x1B`D\x82\x01R`\x08`d\x82\x01R`\x84\x81\x01\x88\x90R`\x01`\x01`\xA0\x1B\x03\x82\x16\x90cR\xF0\xF3\xAD\x90`\xA4\x01a7\xEAV[`@Q\x7F\xFF\x13~e\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\x01`@Q\x80\x91\x03\x90\xFD[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x006`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\x14\x015``a:\x9Fa\x16kV[\x90P\x90\x91\x92V[`\0\x81\x83\x10\x15a:\xB6W\x81a:\xB8V[\x82[\x90P[\x92\x91PPV[`\0\x81`\0\x01Q\x82` \x01Q\x83`@\x01Q\x84``\x01Q`@Q` \x01a;\0\x94\x93\x92\x91\x90\x93\x84R` \x84\x01\x92\x90\x92R`@\x83\x01R``\x82\x01R`\x80\x01\x90V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 \x90P\x91\x90PV[`@\x80Q\x80\x82\x01\x90\x91R`\0\x80\x82R` \x82\x01R\x81Q`\0\x03a;lW`@Q\x7FZ\xB4X\xFB\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\x01`@Q\x80\x91\x03\x90\xFD[P`@\x80Q\x80\x82\x01\x90\x91R\x81Q\x81R` \x91\x82\x01\x91\x81\x01\x91\x90\x91R\x90V[```\0\x80`\0a;\x9A\x85aJ\xECV[\x91\x94P\x92P\x90P`\x01\x81`\x01\x81\x11\x15a;\xB5Wa;\xB5aS@V[\x14a;\xECW`@Q\x7FK\x9Cj\xBE\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\x01`@Q\x80\x91\x03\x90\xFD[\x84Qa;\xF8\x83\x85aVnV[\x14a-\x90\x84\x90aVnV[\x90\x91UPPPPV[`@Q\x81\x81R6`\x01\x19\x81\x015`\xF0\x1C\x90\x03\x82\x84\x82\x01` \x84\x017\x82` \x83\x01\x01`\0\x81R` \x81\x01`@RPP\x92\x91PPV[`\0a>\x80`\x01`\x01`\x80\x1B\x03\x84\x16`\x01aXVV[\x90P`\0a>\x90\x82\x86`\x01aEgV[\x90P`\0\x86\x90\x1A\x83\x80a?ZWPa>\xC9`\x02\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0aX\"V[`\x04\x83\x01T`\x02\x90a?K\x90`\x01`\x01`\x80\x1B\x03\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1Fc\x07\xC4\xAC\xDD`\xE0\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[a?U\x91\x90aY\x1EV[`\xFF\x16\x14[\x15a?\xB2W`\xFF\x81\x16`\x01\x14\x80a?tWP`\xFF\x81\x16`\x02\x14[a?\xADW`@Q\x7F\xF4\x029\xDB\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\x81\x01\x88\x90R`$\x01a)\x1CV[a?\xF0V[`\xFF\x81\x16\x15a?\xF0W`@Q\x7F\xF4\x029\xDB\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\x81\x01\x88\x90R`$\x01a)\x1CV[PPPPPPPV[`\x01`\x01`\x80\x1B\x03\x81\x11`\x07\x1B\x81\x81\x1Cg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x10`\x06\x1B\x17\x81\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x81\x81\x1Ca\xFF\xFF\x10`\x04\x1B\x17\x81\x81\x1C`\xFF\x10`\x03\x1B\x17`\0\x82\x13a@OWc\x16\x15\xE68`\0R`\x04`\x1C\xFD[\x7F\xF8\xF9\xF9\xFA\xF9\xFD\xFA\xFB\xF9\xFD\xFC\xFD\xFA\xFB\xFC\xFE\xF9\xFA\xFD\xFA\xFC\xFC\xFB\xFE\xFA\xFA\xFC\xFB\xFF\xFF\xFF\xFFo\x84!\x08B\x10\x84!\x08\xCCc\x18\xC6\xDBmT\xBE\x83\x83\x1C\x1C`\x1F\x16\x1A\x18\x90\x81\x1B`\x9F\x90\x81\x1ClFWr\xB2\xBB\xBB_\x82K\x15 z0\x81\x01\x81\x02``\x90\x81\x1Dm\x03\x88\xEA\xA2t\x12\xD5\xAC\xA0&\x81]cn\x01\x82\x02\x81\x1Dm\r\xF9\x9A\xC5\x02\x03\x1B\xF9S\xEF\xF4r\xFD\xCC\x01\x82\x02\x81\x1Dm\x13\xCD\xFF\xB2\x9DQ\xD9\x93\"\xBD\xFF_\"\x11\x01\x82\x02\x81\x1Dm\n\x0Ft #\xDE\xF7\x83\xA3\x07\xA9\x86\x91.\x01\x82\x02\x81\x1Dm\x01\x92\r\x80C\xCA\x89\xB5#\x92S(NB\x01\x82\x02\x81\x1Dl\x0Bz\x86\xD77Th\xFA\xC6g\xA0\xA5'\x01l)P\x8EE\x85C\xD8\xAAM\xF2\xAB\xEEx\x83\x01\x83\x02\x82\x1Dm\x019`\x1A.\xFA\xBEq~`L\xBBH\x94\x01\x83\x02\x82\x1Dm\x02$\x7Fz{e\x942\x06I\xAA\x03\xAB\xA1\x01\x83\x02\x82\x1D\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFFs\xC0\xC7\x16\xA5\x94\xE0\rT\xE3\xC4\xCB\xC9\x01\x83\x02\x82\x1D\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFD\xC7\xB8\x8CB\x0ES\xA9\x89\x053\x12\x9Fo\x01\x83\x02\x90\x91\x1D\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFFF_\xDA'\xEBMc\xDE\xD4t\xE5\xF82\x01\x90\x91\x02\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF5\xF6\xAF\x8F{3\x96dO\x18\xE1W\x96\0\0\0\0\0\0\0\0\0\0\0\0\x01\x05q\x13@\xDA\xA0\xD5\xF7i\xDB\xA1\x91\\\xEFY\xF0\x81ZU\x06\x02\x91\x90\x03}\x02g\xA3l\x0C\x95\xB3\x97Z\xB3\xEE[ :v\x14\xA3\xF7Ss\xF0G\xD8\x03\xAE{f\x87\xF2\xB3\x02\x01}W\x11^G\x01\x8Cqw\xEE\xBF|\xD3p\xA35j\x1Bxc\0\x8AZ\xE8\x02\x8Cr\xB8\x86B\x84\x01`\xAE\x1D\x90V[`\0x\x12r]\xD1\xD2C\xAB\xA0\xE7_\xE6E\xCCHs\xF9\xE6Z\xFEh\x8C\x92\x8E\x1F!\x83\x11g\r\xE0\xB6\xB3\xA7d\0\0\x02\x15\x82\x02aB\x88Wc|_H}`\0R`\x04`\x1C\xFD[Pg\r\xE0\xB6\xB3\xA7d\0\0\x91\x90\x91\x02\x04\x90V[`\0\x81`\0\x19\x04\x83\x11\x82\x02\x15aB\xB8Wc\xBA\xC6^[`\0R`\x04`\x1C\xFD[Pg\r\xE0\xB6\xB3\xA7d\0\0\x91\x02\x04\x90V[`\0\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFD\xC0\xD0W\t%\xA4b\xD7\x82\x13aB\xF6W\x91\x90PV[h\x07U\xBFy\x8BJ\x1B\xF1\xE5\x82\x12aC\x14Wc\xA3{\xFE\xC9`\0R`\x04`\x1C\xFD[e\x03x-\xAC\xE9\xD9`N\x83\x90\x1B\x05\x91P`\0``k\xB1r\x17\xF7\xD1\xCFy\xAB\xC9\xE3\xB3\x98\x84\x82\x1B\x05k\x80\0\0\0\0\0\0\0\0\0\0\0\x01\x90\x1Dk\xB1r\x17\xF7\xD1\xCFy\xAB\xC9\xE3\xB3\x98\x81\x02\x90\x93\x03\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xDB\xF3\xCC\xF1`M&4P\xF0*U\x04\x81\x01\x81\x02``\x90\x81\x1Dm\x02wYI\x91\xCF\xC8_n$a\x83|\xD9\x01\x82\x02\x81\x1D\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE5\xAD\xED\xAA\x1C\xB0\x95\xAF\x9EM\xA1\x0E6<\x01\x82\x02\x81\x1Dm\xB1\xBB\xB2\x01\xF4C\xCF\x96/\x1A\x1D=\xB4\xA5\x01\x82\x02\x81\x1D\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFD8\xDCw&\x08\xB0\xAEV\xCC\xE0\x12\x96\xC0\xEB\x01\x82\x02\x81\x1Dn\x05\x18\x0B\xB1G\x99\xABG\xA8\xA8\xCB*R}W\x01m\x02\xD1g W{\xD1\x9B\xF6\x14\x17o\xE9\xEAl\x10\xFEh\xE7\xFD7\xD0\0{q?vP\x84\x01\x84\x02\x83\x1D\x90\x81\x01\x90\x84\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE,i\x81,\xF0;\x07c\xFDEJ\x8F~\x01\x02\x90\x91\x1Dn\x05\x87\xF5\x03\xBBn\xA2\x9D%\xFC\xB7@\x19dP\x01\x90\x91\x02y\xD85\xEB\xBA\x82L\x98\xFB1\xB8;,\xA4\\\0\0\0\0\0\0\0\0\0\0\0\0\x01\x05t\x02\x9D\x9D\xC3\x85c\xC3.\\/m\xC1\x92\xEEp\xEFe\xF9\x97\x8A\xF3\x02`\xC3\x93\x90\x93\x03\x92\x90\x92\x1C\x92\x91PPV[`\0a:\xB8g\r\xE0\xB6\xB3\xA7d\0\0\x83aD\xC8\x86a?\xF9V[aD\xD2\x91\x90aY@V[aD\xDC\x91\x90aY\xFCV[aB\xC8V[`\0\x80aEU\x83~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1Fc\x07\xC4\xAC\xDD`\xE0\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\x01`\xFF\x91\x90\x91\x16\x1B\x90\x92\x03\x92\x91PPV[`\0\x80\x82aE\xA7WaE\xA2`\x01`\x01`\x80\x1B\x03\x86\x16\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0aP\x1FV[aE\xB9V[aE\xB9\x85`\x01`\x01`\x80\x1B\x03\x16aQ^V[\x90P`\x02\x84\x81T\x81\x10aE\xCEWaE\xCEaVBV[\x90`\0R` `\0 \x90`\x05\x02\x01\x91P[`\x04\x82\x01T`\x01`\x01`\x80\x1B\x03\x82\x81\x16\x91\x16\x14aF(W\x81T`\x02\x80T\x90\x91c\xFF\xFF\xFF\xFF\x16\x90\x81\x10aF\x13WaF\x13aVBV[\x90`\0R` `\0 \x90`\x05\x02\x01\x91PaE\xDFV[P\x93\x92PPPV[`\0\x80`\0\x80`\0aFA\x86aF_V[\x93P\x93P\x93P\x93PaFU\x84\x84\x84\x84aI\xB8V[\x96\x95PPPPPPV[`\0\x80`\0\x80`\0\x85\x90P`\0`\x02\x82\x81T\x81\x10aF\x7FWaF\x7FaVBV[`\0\x91\x82R` \x90\x91 `\x04`\x05\x90\x92\x02\x01\x90\x81\x01T\x90\x91P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90aG4\x90`\x01`\x01`\x80\x1B\x03\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1Fc\x07\xC4\xAC\xDD`\xE0\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\xFF\x16\x11aGnW`@Q\x7F\xB3K\\\"\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\x01`@Q\x80\x91\x03\x90\xFD[`\0\x81[`\x04\x83\x01T\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90aH\x13\x90`\x01`\x01`\x80\x1B\x03\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1Fc\x07\xC4\xAC\xDD`\xE0\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\xFF\x16\x92P\x82\x11\x15aH\x88W\x82Tc\xFF\xFF\xFF\xFF\x16aHR\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01aVnV[\x83\x03aH\\W\x83\x91P[`\x02\x81\x81T\x81\x10aHoWaHoaVBV[\x90`\0R` `\0 \x90`\x05\x02\x01\x93P\x80\x94PPaGrV[`\x04\x81\x81\x01T\x90\x84\x01T`\x01`\x01`\x80\x1B\x03\x91\x82\x16\x91\x16`\0\x81`\x01`\x01`\x80\x1B\x03\x16aH\xCDaH\xC1\x85`\x01`\x01`\x80\x1B\x03\x16`\x01\x1C\x90V[`\x01`\x01`\x80\x1B\x03\x16\x90V[`\x01`\x01`\x80\x1B\x03\x16\x14\x90P\x80\x15aIfW`\0aH\xF3\x83`\x01`\x01`\x80\x1B\x03\x16aD\xE1V[`\x01`\x01`\x80\x1B\x03\x16\x11\x15aICW`\0aI#aI\x1B`\x01`\x01`\x01`\x80\x1B\x03\x86\x16aX6V[\x89`\x01aEgV[`\x03\x81\x01T`\x04\x90\x91\x01T\x90\x9CP`\x01`\x01`\x80\x1B\x03\x16\x9APaII\x90PV[`\x08T\x9AP[`\x03\x86\x01T`\x04\x87\x01T\x90\x99P`\x01`\x01`\x80\x1B\x03\x16\x97PaI\xAAV[`\0aI\x7FaI\x1B`\x01`\x01`\x80\x1B\x03\x85\x16`\x01aXVV[`\x03\x80\x89\x01T`\x04\x80\x8B\x01T\x92\x84\x01T\x93\x01T\x90\x9EP`\x01`\x01`\x80\x1B\x03\x91\x82\x16\x9DP\x91\x9BP\x16\x98PP[PPPPPPP\x91\x93P\x91\x93V[`\0`\x01`\x01`\x80\x1B\x03\x84\x16\x15aJ\x13W`@\x80Q` \x81\x01\x87\x90R`\x01`\x01`\x80\x1B\x03\x80\x87\x16\x92\x82\x01\x92\x90\x92R``\x81\x01\x85\x90R\x90\x83\x16`\x80\x82\x01R`\xA0\x01`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 a\x16bV[\x82\x82`@Q` \x01aJ8\x92\x91\x90\x91\x82R`\x01`\x01`\x80\x1B\x03\x16` \x82\x01R`@\x01\x90V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 \x95\x94PPPPPV[`\0\x80aJ\xCB\x84~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1Fc\x07\xC4\xAC\xDD`\xE0\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\xFF\x16\x90P\x80\x83\x03`\x01\x84\x1B`\x01\x80\x83\x1B\x03\x86\x83\x1B\x17\x03\x92PPP\x92\x91PPV[`\0\x80`\0\x83`\0\x01Q`\0\x03aK/W`@Q\x7FZ\xB4X\xFB\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\x01`@Q\x80\x91\x03\x90\xFD[` \x84\x01Q\x80Q`\0\x1A`\x7F\x81\x11aKTW`\0`\x01`\0\x94P\x94P\x94PPPaO\x83V[`\xB7\x81\x11aLjW`\0aKi`\x80\x83aV\xA0V[\x90P\x80\x87`\0\x01Q\x11aK\xA8W`@Q\x7Ff\xC9D\x85\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01\x83\x81\x01Q\x7F\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x90\x82\x14\x80\x15aL WP\x7F\x80\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x7F\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x82\x16\x10[\x15aLWW`@Q\x7F\xBA\xBB\x01\xDD\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\x01`@Q\x80\x91\x03\x90\xFD[P`\x01\x95P\x93P`\0\x92PaO\x83\x91PPV[`\xBF\x81\x11aM\xC8W`\0aL\x7F`\xB7\x83aV\xA0V[\x90P\x80\x87`\0\x01Q\x11aL\xBEW`@Q\x7Ff\xC9D\x85\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01\x83\x01Q\x7F\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16`\0\x81\x90\x03aM W`@Q\x7F\xBA\xBB\x01\xDD\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01\x84\x01Q`\x08\x83\x02a\x01\0\x03\x1C`7\x81\x11aMhW`@Q\x7F\xBA\xBB\x01\xDD\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\x01`@Q\x80\x91\x03\x90\xFD[aMr\x81\x84aVnV[\x89Q\x11aM\xABW`@Q\x7Ff\xC9D\x85\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\x01`@Q\x80\x91\x03\x90\xFD[aM\xB6\x83`\x01aVnV[\x97P\x95P`\0\x94PaO\x83\x93PPPPV[`\xF7\x81\x11aN-W`\0aM\xDD`\xC0\x83aV\xA0V[\x90P\x80\x87`\0\x01Q\x11aN\x1CW`@Q\x7Ff\xC9D\x85\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01\x95P\x93P\x84\x92PaO\x83\x91PPV[`\0aN:`\xF7\x83aV\xA0V[\x90P\x80\x87`\0\x01Q\x11aNyW`@Q\x7Ff\xC9D\x85\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01\x83\x01Q\x7F\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16`\0\x81\x90\x03aN\xDBW`@Q\x7F\xBA\xBB\x01\xDD\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01\x84\x01Q`\x08\x83\x02a\x01\0\x03\x1C`7\x81\x11aO#W`@Q\x7F\xBA\xBB\x01\xDD\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\x01`@Q\x80\x91\x03\x90\xFD[aO-\x81\x84aVnV[\x89Q\x11aOfW`@Q\x7Ff\xC9D\x85\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\x01`@Q\x80\x91\x03\x90\xFD[aOq\x83`\x01aVnV[\x97P\x95P`\x01\x94PaO\x83\x93PPPPV[\x91\x93\x90\x92PV[``\x81g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15aO\xA5WaO\xA5aU\xA8V[`@Q\x90\x80\x82R\x80`\x1F\x01`\x1F\x19\x16` \x01\x82\x01`@R\x80\x15aO\xCFW` \x82\x01\x81\x806\x837\x01\x90P[P\x90P\x81\x15aP\x18W`\0aO\xE4\x84\x86aVnV[\x90P` \x82\x01`\0[\x84\x81\x10\x15aP\x05W\x82\x81\x01Q\x82\x82\x01R` \x01aO\xEDV[\x84\x81\x11\x15aP\x14W`\0\x85\x83\x01R[PPP[\x93\x92PPPV[`\0\x81aP\x9C\x84`\x01`\x01`\x80\x1B\x03\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1Fc\x07\xC4\xAC\xDD`\xE0\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\xFF\x16\x11aP\xB2Wc\xB3K\\\"`\0R`\x04`\x1C\xFD[aP\xBB\x83aQ^V[\x90P\x81aQ8\x82`\x01`\x01`\x80\x1B\x03\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1Fc\x07\xC4\xAC\xDD`\xE0\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\xFF\x16\x11a:\xBBWa:\xB8aQN\x83`\x01aVnV[`\x01`\x01`\x80\x1B\x03\x83\x16\x90aQ\xEAV[`\0\x81\x19`\x01\x83\x01\x16\x81aQ\xD9\x82~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1Fc\x07\xC4\xAC\xDD`\xE0\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\xFF\x16\x93\x90\x93\x1C\x80\x15\x17\x93\x92PPPV[`\0\x80aR^\x84~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1Fc\x07\xC4\xAC\xDD`\xE0\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\xFF\x16\x90P\x80\x83\x03`\x01\x80\x82\x1B\x03\x85\x82\x1B\x17\x92PPP\x92\x91PPV[`\0\x80\x83`\x1F\x84\x01\x12aR\x8CW`\0\x80\xFD[P\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15aR\xA4W`\0\x80\xFD[` \x83\x01\x91P\x83` \x82\x85\x01\x01\x11\x15aR\xBCW`\0\x80\xFD[\x92P\x92\x90PV[`\0\x80`\0\x83\x85\x03`\xA0\x81\x12\x15aR\xD9W`\0\x80\xFD[`\x80\x81\x12\x15aR\xE7W`\0\x80\xFD[P\x83\x92P`\x80\x84\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15aS\x05W`\0\x80\xFD[aS\x11\x86\x82\x87\x01aRzV[\x94\x97\x90\x96P\x93\x94PPPPV[`\0\x80`@\x83\x85\x03\x12\x15aS1W`\0\x80\xFD[PP\x805\x92` \x90\x91\x015\x91PV[cNH{q`\xE0\x1B`\0R`!`\x04R`$`\0\xFD[`\x03\x81\x10aStWcNH{q`\xE0\x1B`\0R`!`\x04R`$`\0\xFD[PV[` \x81\x01aS\x84\x83aSVV[\x91\x90R\x90V[`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14aStW`\0\x80\xFD[`\0` \x82\x84\x03\x12\x15aS\xB1W`\0\x80\xFD[\x815aP\x18\x81aS\x8AV[`\0\x80`\0``\x84\x86\x03\x12\x15aS\xD1W`\0\x80\xFD[PP\x815\x93` \x83\x015\x93P`@\x90\x92\x015\x91\x90PV[`\0\x81Q\x80\x84R`\0[\x81\x81\x10\x15aT\x0EW` \x81\x85\x01\x81\x01Q\x86\x83\x01\x82\x01R\x01aS\xF2V[\x81\x81\x11\x15aT W`\0` \x83\x87\x01\x01R[P`\x1F\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x92\x90\x92\x01` \x01\x92\x91PPV[` \x81R`\0a:\xB8` \x83\x01\x84aS\xE8V[`\0` \x82\x84\x03\x12\x15aTxW`\0\x80\xFD[P5\x91\x90PV[\x80\x15\x15\x81\x14aStW`\0\x80\xFD[`\0\x80`\0\x80`\x80\x85\x87\x03\x12\x15aT\xA3W`\0\x80\xFD[\x845\x93P` \x85\x015\x92P`@\x85\x015\x91P``\x85\x015aT\xC3\x81aT\x7FV[\x93\x96\x92\x95P\x90\x93PPV[`\0` \x82\x84\x03\x12\x15aT\xE0W`\0\x80\xFD[\x815`\x01`\x01`\x80\x1B\x03\x81\x16\x81\x14aP\x18W`\0\x80\xFD[`\0\x80`\0\x80`\0\x80`\x80\x87\x89\x03\x12\x15aU\x10W`\0\x80\xFD[\x865\x95P` \x87\x015aU\"\x81aT\x7FV[\x94P`@\x87\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15aU?W`\0\x80\xFD[aUK\x8A\x83\x8B\x01aRzV[\x90\x96P\x94P``\x89\x015\x91P\x80\x82\x11\x15aUdW`\0\x80\xFD[PaUq\x89\x82\x8A\x01aRzV[\x97\x9A\x96\x99P\x94\x97P\x92\x95\x93\x94\x92PPPV[c\xFF\xFF\xFF\xFF\x84\x16\x81R\x82` \x82\x01R```@\x82\x01R`\0a\x16b``\x83\x01\x84aS\xE8V[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[`\0`\x80\x82\x84\x03\x12\x15aU\xD0W`\0\x80\xFD[`@Q`\x80\x81\x01\x81\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17\x15aV\x01WcNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[\x80`@RP\x825\x81R` \x83\x015` \x82\x01R`@\x83\x015`@\x82\x01R``\x83\x015``\x82\x01R\x80\x91PP\x92\x91PPV[\x81\x83\x827`\0\x91\x01\x90\x81R\x91\x90PV[cNH{q`\xE0\x1B`\0R`2`\x04R`$`\0\xFD[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[`\0\x82\x19\x82\x11\x15aV\x81WaV\x81aVXV[P\x01\x90V[`\0`\0\x19\x82\x03aV\x99WaV\x99aVXV[P`\x01\x01\x90V[`\0\x82\x82\x10\x15aV\xB2WaV\xB2aVXV[P\x03\x90V[`\0` \x82\x84\x03\x12\x15aV\xC9W`\0\x80\xFD[\x81QaP\x18\x81aS\x8AV[`\0` \x82\x84\x03\x12\x15aV\xE6W`\0\x80\xFD[PQ\x91\x90PV[`\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x83\x16\x81\x85\x16\x80\x83\x03\x82\x11\x15aW\x10WaW\x10aVXV[\x01\x94\x93PPPPV[`\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x83\x16\x81\x85\x16\x81\x83\x04\x81\x11\x82\x15\x15\x16\x15aW@WaW@aVXV[\x02\x94\x93PPPPV[`\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x81\x16\x90\x83\x16\x81\x81\x10\x15aWjWaWjaVXV[\x03\x93\x92PPPV[`\0` \x82\x84\x03\x12\x15aW\x84W`\0\x80\xFD[\x81QaP\x18\x81aT\x7FV[`\0\x80`@\x83\x85\x03\x12\x15aW\xA2W`\0\x80\xFD[PP\x80Q` \x90\x91\x01Q\x90\x92\x90\x91PV[`\0` \x82\x84\x03\x12\x15aW\xC5W`\0\x80\xFD[\x81Qc\xFF\xFF\xFF\xFF\x81\x16\x81\x14aP\x18W`\0\x80\xFD[cNH{q`\xE0\x1B`\0R`\x12`\x04R`$`\0\xFD[`\0\x82aW\xFEWaW\xFEaW\xD9V[P\x04\x90V[`\0\x81`\0\x19\x04\x83\x11\x82\x15\x15\x16\x15aX\x1DWaX\x1DaVXV[P\x02\x90V[`\0\x82aX1WaX1aW\xD9V[P\x06\x90V[`\0`\x01`\x01`\x80\x1B\x03\x83\x81\x16\x90\x83\x16\x81\x81\x10\x15aWjWaWjaVXV[`\0`\x01`\x01`\x80\x1B\x03\x80\x83\x16\x81\x85\x16\x80\x83\x03\x82\x11\x15aW\x10WaW\x10aVXV[\x81\x83R\x81\x81` \x85\x017P`\0` \x82\x84\x01\x01R`\0` \x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0`\x1F\x84\x01\x16\x84\x01\x01\x90P\x92\x91PPV[``\x81R`\0aX\xD5``\x83\x01\x87\x89aXxV[\x82\x81\x03` \x84\x01RaX\xE8\x81\x86\x88aXxV[\x91PP\x82`@\x83\x01R\x96\x95PPPPPPV[`\0`\xFF\x82\x16`\xFF\x84\x16\x80\x82\x10\x15aY\x15WaY\x15aVXV[\x90\x03\x93\x92PPPV[`\0`\xFF\x83\x16\x80aY1WaY1aW\xD9V[\x80`\xFF\x84\x16\x06\x91PP\x92\x91PPV[`\0\x7F\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF`\0\x84\x13`\0\x84\x13\x85\x83\x04\x85\x11\x82\x82\x16\x16\x15aY\x81WaY\x81aVXV[\x7F\x80\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\0\x87\x12\x86\x82\x05\x88\x12\x81\x84\x16\x16\x15aY\xBCWaY\xBCaVXV[`\0\x87\x12\x92P\x87\x82\x05\x87\x12\x84\x84\x16\x16\x15aY\xD8WaY\xD8aVXV[\x87\x85\x05\x87\x12\x81\x84\x16\x16\x15aY\xEEWaY\xEEaVXV[PPP\x92\x90\x93\x02\x93\x92PPPV[`\0\x82aZ\x0BWaZ\x0BaW\xD9V[`\0\x19\x83\x14\x7F\x80\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x83\x14\x16\x15aZAWaZAaVXV[P\x05\x90V\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct BondDistributionMode(u8); + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for u8 { + #[inline] + fn stv_to_tokens( + &self, + ) -> as alloy_sol_types::SolType>::Token<'_> { + alloy_sol_types::private::SolTypeValue::< + alloy::sol_types::sol_data::Uint<8>, + >::stv_to_tokens(self) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + as alloy_sol_types::SolType>::tokenize(self) + .0 + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::SolType>::abi_encode_packed_to(self, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + as alloy_sol_types::SolType>::abi_encoded_size(self) + } + } + impl BondDistributionMode { + /// The Solidity type name. + pub const NAME: &'static str = stringify!(@ name); + /// Convert from the underlying value type. + #[inline] + pub const fn from_underlying(value: u8) -> Self { + Self(value) + } + /// Return the underlying value. + #[inline] + pub const fn into_underlying(self) -> u8 { + self.0 + } + /// Return the single encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode(&self) -> alloy_sol_types::private::Vec { + ::abi_encode(&self.0) + } + /// Return the packed encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec { + ::abi_encode_packed(&self.0) + } + } + #[automatically_derived] + impl From for BondDistributionMode { + fn from(value: u8) -> Self { + Self::from_underlying(value) + } + } + #[automatically_derived] + impl From for u8 { + fn from(value: BondDistributionMode) -> Self { + value.into_underlying() + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for BondDistributionMode { + type RustType = u8; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = Self::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + Self::type_check(token).is_ok() + } + #[inline] + fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> { + as alloy_sol_types::SolType>::type_check(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + as alloy_sol_types::SolType>::detokenize(token) + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for BondDistributionMode { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + as alloy_sol_types::EventTopic>::topic_preimage_length(rust) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out) + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + as alloy_sol_types::EventTopic>::encode_topic(rust) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct GameStatus(u8); + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for u8 { + #[inline] + fn stv_to_tokens( + &self, + ) -> as alloy_sol_types::SolType>::Token<'_> { + alloy_sol_types::private::SolTypeValue::< + alloy::sol_types::sol_data::Uint<8>, + >::stv_to_tokens(self) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + as alloy_sol_types::SolType>::tokenize(self) + .0 + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::SolType>::abi_encode_packed_to(self, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + as alloy_sol_types::SolType>::abi_encoded_size(self) + } + } + impl GameStatus { + /// The Solidity type name. + pub const NAME: &'static str = stringify!(@ name); + /// Convert from the underlying value type. + #[inline] + pub const fn from_underlying(value: u8) -> Self { + Self(value) + } + /// Return the underlying value. + #[inline] + pub const fn into_underlying(self) -> u8 { + self.0 + } + /// Return the single encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode(&self) -> alloy_sol_types::private::Vec { + ::abi_encode(&self.0) + } + /// Return the packed encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec { + ::abi_encode_packed(&self.0) + } + } + #[automatically_derived] + impl From for GameStatus { + fn from(value: u8) -> Self { + Self::from_underlying(value) + } + } + #[automatically_derived] + impl From for u8 { + fn from(value: GameStatus) -> Self { + value.into_underlying() + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for GameStatus { + type RustType = u8; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = Self::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + Self::type_check(token).is_ok() + } + #[inline] + fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> { + as alloy_sol_types::SolType>::type_check(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + as alloy_sol_types::SolType>::detokenize(token) + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for GameStatus { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + as alloy_sol_types::EventTopic>::topic_preimage_length(rust) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out) + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + as alloy_sol_types::EventTopic>::encode_topic(rust) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct Claim(alloy::sol_types::private::FixedBytes<32>); + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue + for alloy::sol_types::private::FixedBytes<32> { + #[inline] + fn stv_to_tokens( + &self, + ) -> as alloy_sol_types::SolType>::Token<'_> { + alloy_sol_types::private::SolTypeValue::< + alloy::sol_types::sol_data::FixedBytes<32>, + >::stv_to_tokens(self) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + as alloy_sol_types::SolType>::tokenize(self) + .0 + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::SolType>::abi_encode_packed_to(self, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + as alloy_sol_types::SolType>::abi_encoded_size(self) + } + } + impl Claim { + /// The Solidity type name. + pub const NAME: &'static str = stringify!(@ name); + /// Convert from the underlying value type. + #[inline] + pub const fn from_underlying( + value: alloy::sol_types::private::FixedBytes<32>, + ) -> Self { + Self(value) + } + /// Return the underlying value. + #[inline] + pub const fn into_underlying( + self, + ) -> alloy::sol_types::private::FixedBytes<32> { + self.0 + } + /// Return the single encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode(&self) -> alloy_sol_types::private::Vec { + ::abi_encode(&self.0) + } + /// Return the packed encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec { + ::abi_encode_packed(&self.0) + } + } + #[automatically_derived] + impl From> for Claim { + fn from(value: alloy::sol_types::private::FixedBytes<32>) -> Self { + Self::from_underlying(value) + } + } + #[automatically_derived] + impl From for alloy::sol_types::private::FixedBytes<32> { + fn from(value: Claim) -> Self { + value.into_underlying() + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for Claim { + type RustType = alloy::sol_types::private::FixedBytes<32>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = Self::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + Self::type_check(token).is_ok() + } + #[inline] + fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> { + as alloy_sol_types::SolType>::type_check(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + as alloy_sol_types::SolType>::detokenize(token) + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for Claim { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + as alloy_sol_types::EventTopic>::topic_preimage_length(rust) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out) + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + as alloy_sol_types::EventTopic>::encode_topic(rust) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct Clock(u128); + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for u128 { + #[inline] + fn stv_to_tokens( + &self, + ) -> as alloy_sol_types::SolType>::Token<'_> { + alloy_sol_types::private::SolTypeValue::< + alloy::sol_types::sol_data::Uint<128>, + >::stv_to_tokens(self) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + as alloy_sol_types::SolType>::tokenize(self) + .0 + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::SolType>::abi_encode_packed_to(self, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + as alloy_sol_types::SolType>::abi_encoded_size(self) + } + } + impl Clock { + /// The Solidity type name. + pub const NAME: &'static str = stringify!(@ name); + /// Convert from the underlying value type. + #[inline] + pub const fn from_underlying(value: u128) -> Self { + Self(value) + } + /// Return the underlying value. + #[inline] + pub const fn into_underlying(self) -> u128 { + self.0 + } + /// Return the single encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode(&self) -> alloy_sol_types::private::Vec { + ::abi_encode(&self.0) + } + /// Return the packed encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec { + ::abi_encode_packed(&self.0) + } + } + #[automatically_derived] + impl From for Clock { + fn from(value: u128) -> Self { + Self::from_underlying(value) + } + } + #[automatically_derived] + impl From for u128 { + fn from(value: Clock) -> Self { + value.into_underlying() + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for Clock { + type RustType = u128; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = Self::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + Self::type_check(token).is_ok() + } + #[inline] + fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> { + as alloy_sol_types::SolType>::type_check(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + as alloy_sol_types::SolType>::detokenize(token) + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for Clock { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + as alloy_sol_types::EventTopic>::topic_preimage_length(rust) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out) + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + as alloy_sol_types::EventTopic>::encode_topic(rust) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct Duration(u64); + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for u64 { + #[inline] + fn stv_to_tokens( + &self, + ) -> as alloy_sol_types::SolType>::Token<'_> { + alloy_sol_types::private::SolTypeValue::< + alloy::sol_types::sol_data::Uint<64>, + >::stv_to_tokens(self) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + as alloy_sol_types::SolType>::tokenize(self) + .0 + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::SolType>::abi_encode_packed_to(self, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + as alloy_sol_types::SolType>::abi_encoded_size(self) + } + } + impl Duration { + /// The Solidity type name. + pub const NAME: &'static str = stringify!(@ name); + /// Convert from the underlying value type. + #[inline] + pub const fn from_underlying(value: u64) -> Self { + Self(value) + } + /// Return the underlying value. + #[inline] + pub const fn into_underlying(self) -> u64 { + self.0 + } + /// Return the single encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode(&self) -> alloy_sol_types::private::Vec { + ::abi_encode(&self.0) + } + /// Return the packed encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec { + ::abi_encode_packed(&self.0) + } + } + #[automatically_derived] + impl From for Duration { + fn from(value: u64) -> Self { + Self::from_underlying(value) + } + } + #[automatically_derived] + impl From for u64 { + fn from(value: Duration) -> Self { + value.into_underlying() + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for Duration { + type RustType = u64; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = Self::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + Self::type_check(token).is_ok() + } + #[inline] + fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> { + as alloy_sol_types::SolType>::type_check(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + as alloy_sol_types::SolType>::detokenize(token) + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for Duration { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + as alloy_sol_types::EventTopic>::topic_preimage_length(rust) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out) + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + as alloy_sol_types::EventTopic>::encode_topic(rust) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct GameType(u32); + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for u32 { + #[inline] + fn stv_to_tokens( + &self, + ) -> as alloy_sol_types::SolType>::Token<'_> { + alloy_sol_types::private::SolTypeValue::< + alloy::sol_types::sol_data::Uint<32>, + >::stv_to_tokens(self) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + as alloy_sol_types::SolType>::tokenize(self) + .0 + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::SolType>::abi_encode_packed_to(self, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + as alloy_sol_types::SolType>::abi_encoded_size(self) + } + } + impl GameType { + /// The Solidity type name. + pub const NAME: &'static str = stringify!(@ name); + /// Convert from the underlying value type. + #[inline] + pub const fn from_underlying(value: u32) -> Self { + Self(value) + } + /// Return the underlying value. + #[inline] + pub const fn into_underlying(self) -> u32 { + self.0 + } + /// Return the single encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode(&self) -> alloy_sol_types::private::Vec { + ::abi_encode(&self.0) + } + /// Return the packed encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec { + ::abi_encode_packed(&self.0) + } + } + #[automatically_derived] + impl From for GameType { + fn from(value: u32) -> Self { + Self::from_underlying(value) + } + } + #[automatically_derived] + impl From for u32 { + fn from(value: GameType) -> Self { + value.into_underlying() + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for GameType { + type RustType = u32; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = Self::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + Self::type_check(token).is_ok() + } + #[inline] + fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> { + as alloy_sol_types::SolType>::type_check(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + as alloy_sol_types::SolType>::detokenize(token) + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for GameType { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + as alloy_sol_types::EventTopic>::topic_preimage_length(rust) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out) + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + as alloy_sol_types::EventTopic>::encode_topic(rust) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct Hash(alloy::sol_types::private::FixedBytes<32>); + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue + for alloy::sol_types::private::FixedBytes<32> { + #[inline] + fn stv_to_tokens( + &self, + ) -> as alloy_sol_types::SolType>::Token<'_> { + alloy_sol_types::private::SolTypeValue::< + alloy::sol_types::sol_data::FixedBytes<32>, + >::stv_to_tokens(self) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + as alloy_sol_types::SolType>::tokenize(self) + .0 + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::SolType>::abi_encode_packed_to(self, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + as alloy_sol_types::SolType>::abi_encoded_size(self) + } + } + impl Hash { + /// The Solidity type name. + pub const NAME: &'static str = stringify!(@ name); + /// Convert from the underlying value type. + #[inline] + pub const fn from_underlying( + value: alloy::sol_types::private::FixedBytes<32>, + ) -> Self { + Self(value) + } + /// Return the underlying value. + #[inline] + pub const fn into_underlying( + self, + ) -> alloy::sol_types::private::FixedBytes<32> { + self.0 + } + /// Return the single encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode(&self) -> alloy_sol_types::private::Vec { + ::abi_encode(&self.0) + } + /// Return the packed encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec { + ::abi_encode_packed(&self.0) + } + } + #[automatically_derived] + impl From> for Hash { + fn from(value: alloy::sol_types::private::FixedBytes<32>) -> Self { + Self::from_underlying(value) + } + } + #[automatically_derived] + impl From for alloy::sol_types::private::FixedBytes<32> { + fn from(value: Hash) -> Self { + value.into_underlying() + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for Hash { + type RustType = alloy::sol_types::private::FixedBytes<32>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = Self::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + Self::type_check(token).is_ok() + } + #[inline] + fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> { + as alloy_sol_types::SolType>::type_check(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + as alloy_sol_types::SolType>::detokenize(token) + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for Hash { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + as alloy_sol_types::EventTopic>::topic_preimage_length(rust) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out) + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + as alloy_sol_types::EventTopic>::encode_topic(rust) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct Position(u128); + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for u128 { + #[inline] + fn stv_to_tokens( + &self, + ) -> as alloy_sol_types::SolType>::Token<'_> { + alloy_sol_types::private::SolTypeValue::< + alloy::sol_types::sol_data::Uint<128>, + >::stv_to_tokens(self) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + as alloy_sol_types::SolType>::tokenize(self) + .0 + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::SolType>::abi_encode_packed_to(self, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + as alloy_sol_types::SolType>::abi_encoded_size(self) + } + } + impl Position { + /// The Solidity type name. + pub const NAME: &'static str = stringify!(@ name); + /// Convert from the underlying value type. + #[inline] + pub const fn from_underlying(value: u128) -> Self { + Self(value) + } + /// Return the underlying value. + #[inline] + pub const fn into_underlying(self) -> u128 { + self.0 + } + /// Return the single encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode(&self) -> alloy_sol_types::private::Vec { + ::abi_encode(&self.0) + } + /// Return the packed encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec { + ::abi_encode_packed(&self.0) + } + } + #[automatically_derived] + impl From for Position { + fn from(value: u128) -> Self { + Self::from_underlying(value) + } + } + #[automatically_derived] + impl From for u128 { + fn from(value: Position) -> Self { + value.into_underlying() + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for Position { + type RustType = u128; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = Self::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + Self::type_check(token).is_ok() + } + #[inline] + fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> { + as alloy_sol_types::SolType>::type_check(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + as alloy_sol_types::SolType>::detokenize(token) + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for Position { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + as alloy_sol_types::EventTopic>::topic_preimage_length(rust) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out) + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + as alloy_sol_types::EventTopic>::encode_topic(rust) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct Timestamp(u64); + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for u64 { + #[inline] + fn stv_to_tokens( + &self, + ) -> as alloy_sol_types::SolType>::Token<'_> { + alloy_sol_types::private::SolTypeValue::< + alloy::sol_types::sol_data::Uint<64>, + >::stv_to_tokens(self) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + as alloy_sol_types::SolType>::tokenize(self) + .0 + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::SolType>::abi_encode_packed_to(self, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + as alloy_sol_types::SolType>::abi_encoded_size(self) + } + } + impl Timestamp { + /// The Solidity type name. + pub const NAME: &'static str = stringify!(@ name); + /// Convert from the underlying value type. + #[inline] + pub const fn from_underlying(value: u64) -> Self { + Self(value) + } + /// Return the underlying value. + #[inline] + pub const fn into_underlying(self) -> u64 { + self.0 + } + /// Return the single encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode(&self) -> alloy_sol_types::private::Vec { + ::abi_encode(&self.0) + } + /// Return the packed encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec { + ::abi_encode_packed(&self.0) + } + } + #[automatically_derived] + impl From for Timestamp { + fn from(value: u64) -> Self { + Self::from_underlying(value) + } + } + #[automatically_derived] + impl From for u64 { + fn from(value: Timestamp) -> Self { + value.into_underlying() + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for Timestamp { + type RustType = u64; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = Self::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + Self::type_check(token).is_ok() + } + #[inline] + fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> { + as alloy_sol_types::SolType>::type_check(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + as alloy_sol_types::SolType>::detokenize(token) + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for Timestamp { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + as alloy_sol_types::EventTopic>::topic_preimage_length(rust) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out) + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + as alloy_sol_types::EventTopic>::encode_topic(rust) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**```solidity +struct GameConstructorParams { GameType gameType; Claim absolutePrestate; uint256 maxGameDepth; uint256 splitDepth; Duration clockExtension; Duration maxClockDuration; address vm; address weth; address anchorStateRegistry; uint256 l2ChainId; } +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct GameConstructorParams { + #[allow(missing_docs)] + pub gameType: ::RustType, + #[allow(missing_docs)] + pub absolutePrestate: ::RustType, + #[allow(missing_docs)] + pub maxGameDepth: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub splitDepth: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub clockExtension: ::RustType, + #[allow(missing_docs)] + pub maxClockDuration: ::RustType, + #[allow(missing_docs)] + pub vm: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub weth: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub anchorStateRegistry: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub l2ChainId: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + GameType, + Claim, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + Duration, + Duration, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ::RustType, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::primitives::aliases::U256, + ::RustType, + ::RustType, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: GameConstructorParams) -> Self { + ( + value.gameType, + value.absolutePrestate, + value.maxGameDepth, + value.splitDepth, + value.clockExtension, + value.maxClockDuration, + value.vm, + value.weth, + value.anchorStateRegistry, + value.l2ChainId, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for GameConstructorParams { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + gameType: tuple.0, + absolutePrestate: tuple.1, + maxGameDepth: tuple.2, + splitDepth: tuple.3, + clockExtension: tuple.4, + maxClockDuration: tuple.5, + vm: tuple.6, + weth: tuple.7, + anchorStateRegistry: tuple.8, + l2ChainId: tuple.9, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolValue for GameConstructorParams { + type SolType = Self; + } + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for GameConstructorParams { + #[inline] + fn stv_to_tokens(&self) -> ::Token<'_> { + ( + ::tokenize(&self.gameType), + ::tokenize( + &self.absolutePrestate, + ), + as alloy_sol_types::SolType>::tokenize(&self.maxGameDepth), + as alloy_sol_types::SolType>::tokenize(&self.splitDepth), + ::tokenize( + &self.clockExtension, + ), + ::tokenize( + &self.maxClockDuration, + ), + ::tokenize( + &self.vm, + ), + ::tokenize( + &self.weth, + ), + ::tokenize( + &self.anchorStateRegistry, + ), + as alloy_sol_types::SolType>::tokenize(&self.l2ChainId), + ) + } + #[inline] + fn stv_abi_encoded_size(&self) -> usize { + if let Some(size) = ::ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encoded_size(&tuple) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + ::eip712_hash_struct(self) + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + if let Some(size) = ::PACKED_ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for GameConstructorParams { + type RustType = Self; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = ::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + as alloy_sol_types::SolType>::valid_token(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + let tuple = as alloy_sol_types::SolType>::detokenize(token); + >>::from(tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolStruct for GameConstructorParams { + const NAME: &'static str = "GameConstructorParams"; + #[inline] + fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> { + alloy_sol_types::private::Cow::Borrowed( + "GameConstructorParams(uint32 gameType,bytes32 absolutePrestate,uint256 maxGameDepth,uint256 splitDepth,uint64 clockExtension,uint64 maxClockDuration,address vm,address weth,address anchorStateRegistry,uint256 l2ChainId)", + ) + } + #[inline] + fn eip712_components() -> alloy_sol_types::private::Vec< + alloy_sol_types::private::Cow<'static, str>, + > { + alloy_sol_types::private::Vec::new() + } + #[inline] + fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> { + ::eip712_root_type() + } + #[inline] + fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec { + [ + ::eip712_data_word( + &self.gameType, + ) + .0, + ::eip712_data_word( + &self.absolutePrestate, + ) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.maxGameDepth) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.splitDepth) + .0, + ::eip712_data_word( + &self.clockExtension, + ) + .0, + ::eip712_data_word( + &self.maxClockDuration, + ) + .0, + ::eip712_data_word( + &self.vm, + ) + .0, + ::eip712_data_word( + &self.weth, + ) + .0, + ::eip712_data_word( + &self.anchorStateRegistry, + ) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.l2ChainId) + .0, + ] + .concat() + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for GameConstructorParams { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + 0usize + + ::topic_preimage_length( + &rust.gameType, + ) + + ::topic_preimage_length( + &rust.absolutePrestate, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.maxGameDepth, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.splitDepth, + ) + + ::topic_preimage_length( + &rust.clockExtension, + ) + + ::topic_preimage_length( + &rust.maxClockDuration, + ) + + ::topic_preimage_length( + &rust.vm, + ) + + ::topic_preimage_length( + &rust.weth, + ) + + ::topic_preimage_length( + &rust.anchorStateRegistry, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.l2ChainId, + ) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + out.reserve( + ::topic_preimage_length(rust), + ); + ::encode_topic_preimage( + &rust.gameType, + out, + ); + ::encode_topic_preimage( + &rust.absolutePrestate, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.maxGameDepth, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.splitDepth, + out, + ); + ::encode_topic_preimage( + &rust.clockExtension, + out, + ); + ::encode_topic_preimage( + &rust.maxClockDuration, + out, + ); + ::encode_topic_preimage( + &rust.vm, + out, + ); + ::encode_topic_preimage( + &rust.weth, + out, + ); + ::encode_topic_preimage( + &rust.anchorStateRegistry, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.l2ChainId, + out, + ); + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + let mut out = alloy_sol_types::private::Vec::new(); + ::encode_topic_preimage( + rust, + &mut out, + ); + alloy_sol_types::abi::token::WordToken( + alloy_sol_types::private::keccak256(out), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `AlreadyInitialized()` and selector `0x0dc149f0`. +```solidity +error AlreadyInitialized(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct AlreadyInitialized; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: AlreadyInitialized) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for AlreadyInitialized { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for AlreadyInitialized { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "AlreadyInitialized()"; + const SELECTOR: [u8; 4] = [13u8, 193u8, 73u8, 240u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `AnchorRootNotFound()` and selector `0x6a6bc3b2`. +```solidity +error AnchorRootNotFound(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct AnchorRootNotFound; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: AnchorRootNotFound) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for AnchorRootNotFound { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for AnchorRootNotFound { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "AnchorRootNotFound()"; + const SELECTOR: [u8; 4] = [106u8, 107u8, 195u8, 178u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `BadExtraData()` and selector `0x9824bdab`. +```solidity +error BadExtraData(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct BadExtraData; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: BadExtraData) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for BadExtraData { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for BadExtraData { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "BadExtraData()"; + const SELECTOR: [u8; 4] = [152u8, 36u8, 189u8, 171u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `BlockNumberMatches()` and selector `0xb8ed8830`. +```solidity +error BlockNumberMatches(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct BlockNumberMatches; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: BlockNumberMatches) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for BlockNumberMatches { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for BlockNumberMatches { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "BlockNumberMatches()"; + const SELECTOR: [u8; 4] = [184u8, 237u8, 136u8, 48u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `BondTransferFailed()` and selector `0x83e6cc6b`. +```solidity +error BondTransferFailed(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct BondTransferFailed; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: BondTransferFailed) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for BondTransferFailed { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for BondTransferFailed { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "BondTransferFailed()"; + const SELECTOR: [u8; 4] = [131u8, 230u8, 204u8, 107u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `CannotDefendRootClaim()` and selector `0xa42637bc`. +```solidity +error CannotDefendRootClaim(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct CannotDefendRootClaim; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: CannotDefendRootClaim) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for CannotDefendRootClaim { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for CannotDefendRootClaim { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "CannotDefendRootClaim()"; + const SELECTOR: [u8; 4] = [164u8, 38u8, 55u8, 188u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ClaimAboveSplit()` and selector `0xb34b5c22`. +```solidity +error ClaimAboveSplit(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ClaimAboveSplit; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ClaimAboveSplit) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ClaimAboveSplit { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ClaimAboveSplit { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ClaimAboveSplit()"; + const SELECTOR: [u8; 4] = [179u8, 75u8, 92u8, 34u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ClaimAlreadyExists()` and selector `0x80497e3b`. +```solidity +error ClaimAlreadyExists(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ClaimAlreadyExists; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ClaimAlreadyExists) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ClaimAlreadyExists { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ClaimAlreadyExists { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ClaimAlreadyExists()"; + const SELECTOR: [u8; 4] = [128u8, 73u8, 126u8, 59u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ClaimAlreadyResolved()` and selector `0xf1a94581`. +```solidity +error ClaimAlreadyResolved(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ClaimAlreadyResolved; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ClaimAlreadyResolved) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ClaimAlreadyResolved { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ClaimAlreadyResolved { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ClaimAlreadyResolved()"; + const SELECTOR: [u8; 4] = [241u8, 169u8, 69u8, 129u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ClockNotExpired()` and selector `0xf2440b53`. +```solidity +error ClockNotExpired(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ClockNotExpired; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ClockNotExpired) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ClockNotExpired { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ClockNotExpired { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ClockNotExpired()"; + const SELECTOR: [u8; 4] = [242u8, 68u8, 11u8, 83u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ClockTimeExceeded()` and selector `0x3381d114`. +```solidity +error ClockTimeExceeded(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ClockTimeExceeded; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ClockTimeExceeded) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ClockTimeExceeded { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ClockTimeExceeded { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ClockTimeExceeded()"; + const SELECTOR: [u8; 4] = [51u8, 129u8, 209u8, 20u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ContentLengthMismatch()` and selector `0x66c94485`. +```solidity +error ContentLengthMismatch(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ContentLengthMismatch; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ContentLengthMismatch) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ContentLengthMismatch { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ContentLengthMismatch { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ContentLengthMismatch()"; + const SELECTOR: [u8; 4] = [102u8, 201u8, 68u8, 133u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `DuplicateStep()` and selector `0x9071e6af`. +```solidity +error DuplicateStep(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct DuplicateStep; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: DuplicateStep) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for DuplicateStep { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for DuplicateStep { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "DuplicateStep()"; + const SELECTOR: [u8; 4] = [144u8, 113u8, 230u8, 175u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `EmptyItem()` and selector `0x5ab458fb`. +```solidity +error EmptyItem(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct EmptyItem; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: EmptyItem) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for EmptyItem { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for EmptyItem { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "EmptyItem()"; + const SELECTOR: [u8; 4] = [90u8, 180u8, 88u8, 251u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `GameDepthExceeded()` and selector `0x56f57b2b`. +```solidity +error GameDepthExceeded(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct GameDepthExceeded; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: GameDepthExceeded) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for GameDepthExceeded { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for GameDepthExceeded { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "GameDepthExceeded()"; + const SELECTOR: [u8; 4] = [86u8, 245u8, 123u8, 43u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `GameNotFinalized()` and selector `0x4851bd9b`. +```solidity +error GameNotFinalized(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct GameNotFinalized; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: GameNotFinalized) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for GameNotFinalized { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for GameNotFinalized { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "GameNotFinalized()"; + const SELECTOR: [u8; 4] = [72u8, 81u8, 189u8, 155u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `GameNotInProgress()` and selector `0x67fe1950`. +```solidity +error GameNotInProgress(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct GameNotInProgress; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: GameNotInProgress) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for GameNotInProgress { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for GameNotInProgress { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "GameNotInProgress()"; + const SELECTOR: [u8; 4] = [103u8, 254u8, 25u8, 80u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `GameNotResolved()` and selector `0xc105260a`. +```solidity +error GameNotResolved(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct GameNotResolved; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: GameNotResolved) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for GameNotResolved { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for GameNotResolved { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "GameNotResolved()"; + const SELECTOR: [u8; 4] = [193u8, 5u8, 38u8, 10u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `GamePaused()` and selector `0x379a7ed9`. +```solidity +error GamePaused(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct GamePaused; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: GamePaused) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for GamePaused { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for GamePaused { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "GamePaused()"; + const SELECTOR: [u8; 4] = [55u8, 154u8, 126u8, 217u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `IncorrectBondAmount()` and selector `0x8620aa19`. +```solidity +error IncorrectBondAmount(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct IncorrectBondAmount; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: IncorrectBondAmount) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for IncorrectBondAmount { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for IncorrectBondAmount { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "IncorrectBondAmount()"; + const SELECTOR: [u8; 4] = [134u8, 32u8, 170u8, 25u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidBondDistributionMode()` and selector `0x078a3df4`. +```solidity +error InvalidBondDistributionMode(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidBondDistributionMode; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: InvalidBondDistributionMode) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for InvalidBondDistributionMode { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidBondDistributionMode { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidBondDistributionMode()"; + const SELECTOR: [u8; 4] = [7u8, 138u8, 61u8, 244u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidChallengePeriod()` and selector `0xb4e12433`. +```solidity +error InvalidChallengePeriod(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidChallengePeriod; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InvalidChallengePeriod) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InvalidChallengePeriod { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidChallengePeriod { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidChallengePeriod()"; + const SELECTOR: [u8; 4] = [180u8, 225u8, 36u8, 51u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidClockExtension()` and selector `0x8d77ecac`. +```solidity +error InvalidClockExtension(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidClockExtension; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InvalidClockExtension) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InvalidClockExtension { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidClockExtension { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidClockExtension()"; + const SELECTOR: [u8; 4] = [141u8, 119u8, 236u8, 172u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidDataRemainder()` and selector `0x5c5537b8`. +```solidity +error InvalidDataRemainder(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidDataRemainder; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InvalidDataRemainder) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InvalidDataRemainder { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidDataRemainder { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidDataRemainder()"; + const SELECTOR: [u8; 4] = [92u8, 85u8, 55u8, 184u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidDisputedClaimIndex()` and selector `0x30140332`. +```solidity +error InvalidDisputedClaimIndex(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidDisputedClaimIndex; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: InvalidDisputedClaimIndex) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for InvalidDisputedClaimIndex { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidDisputedClaimIndex { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidDisputedClaimIndex()"; + const SELECTOR: [u8; 4] = [48u8, 20u8, 3u8, 50u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidHeader()` and selector `0xbabb01dd`. +```solidity +error InvalidHeader(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidHeader; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InvalidHeader) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InvalidHeader { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidHeader { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidHeader()"; + const SELECTOR: [u8; 4] = [186u8, 187u8, 1u8, 221u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidHeaderRLP()` and selector `0xd81d583b`. +```solidity +error InvalidHeaderRLP(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidHeaderRLP; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InvalidHeaderRLP) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InvalidHeaderRLP { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidHeaderRLP { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidHeaderRLP()"; + const SELECTOR: [u8; 4] = [216u8, 29u8, 88u8, 59u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidLocalIdent()` and selector `0xff137e65`. +```solidity +error InvalidLocalIdent(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidLocalIdent; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InvalidLocalIdent) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InvalidLocalIdent { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidLocalIdent { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidLocalIdent()"; + const SELECTOR: [u8; 4] = [255u8, 19u8, 126u8, 101u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidOutputRootProof()` and selector `0x9cc00b5b`. +```solidity +error InvalidOutputRootProof(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidOutputRootProof; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InvalidOutputRootProof) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InvalidOutputRootProof { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidOutputRootProof { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidOutputRootProof()"; + const SELECTOR: [u8; 4] = [156u8, 192u8, 11u8, 91u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidParent()` and selector `0x5f53dd98`. +```solidity +error InvalidParent(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidParent; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InvalidParent) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InvalidParent { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidParent { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidParent()"; + const SELECTOR: [u8; 4] = [95u8, 83u8, 221u8, 152u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidPrestate()` and selector `0x696550ff`. +```solidity +error InvalidPrestate(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidPrestate; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InvalidPrestate) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InvalidPrestate { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidPrestate { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidPrestate()"; + const SELECTOR: [u8; 4] = [105u8, 101u8, 80u8, 255u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidSplitDepth()` and selector `0xe62ccf39`. +```solidity +error InvalidSplitDepth(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidSplitDepth; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InvalidSplitDepth) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InvalidSplitDepth { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidSplitDepth { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidSplitDepth()"; + const SELECTOR: [u8; 4] = [230u8, 44u8, 207u8, 57u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `L2BlockNumberChallenged()` and selector `0x0ea2e752`. +```solidity +error L2BlockNumberChallenged(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct L2BlockNumberChallenged; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: L2BlockNumberChallenged) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for L2BlockNumberChallenged { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for L2BlockNumberChallenged { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "L2BlockNumberChallenged()"; + const SELECTOR: [u8; 4] = [14u8, 162u8, 231u8, 82u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `MaxDepthTooLarge()` and selector `0x77dfe332`. +```solidity +error MaxDepthTooLarge(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct MaxDepthTooLarge; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: MaxDepthTooLarge) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for MaxDepthTooLarge { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for MaxDepthTooLarge { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "MaxDepthTooLarge()"; + const SELECTOR: [u8; 4] = [119u8, 223u8, 227u8, 50u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `NoCreditToClaim()` and selector `0x17bfe5f7`. +```solidity +error NoCreditToClaim(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct NoCreditToClaim; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: NoCreditToClaim) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for NoCreditToClaim { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for NoCreditToClaim { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "NoCreditToClaim()"; + const SELECTOR: [u8; 4] = [23u8, 191u8, 229u8, 247u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `OutOfOrderResolution()` and selector `0x9a076646`. +```solidity +error OutOfOrderResolution(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct OutOfOrderResolution; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: OutOfOrderResolution) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for OutOfOrderResolution { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for OutOfOrderResolution { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "OutOfOrderResolution()"; + const SELECTOR: [u8; 4] = [154u8, 7u8, 102u8, 70u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ReservedGameType()` and selector `0x39f68b38`. +```solidity +error ReservedGameType(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ReservedGameType; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ReservedGameType) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ReservedGameType { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ReservedGameType { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ReservedGameType()"; + const SELECTOR: [u8; 4] = [57u8, 246u8, 139u8, 56u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `UnexpectedList()` and selector `0x1ff9b2e4`. +```solidity +error UnexpectedList(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct UnexpectedList; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: UnexpectedList) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for UnexpectedList { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for UnexpectedList { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "UnexpectedList()"; + const SELECTOR: [u8; 4] = [31u8, 249u8, 178u8, 228u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `UnexpectedRootClaim(bytes32)` and selector `0xf40239db`. +```solidity +error UnexpectedRootClaim(Claim rootClaim); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct UnexpectedRootClaim { + #[allow(missing_docs)] + pub rootClaim: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Claim,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (::RustType,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: UnexpectedRootClaim) -> Self { + (value.rootClaim,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for UnexpectedRootClaim { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { rootClaim: tuple.0 } + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for UnexpectedRootClaim { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "UnexpectedRootClaim(bytes32)"; + const SELECTOR: [u8; 4] = [244u8, 2u8, 57u8, 219u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + (::tokenize(&self.rootClaim),) + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `UnexpectedString()` and selector `0x4b9c6abe`. +```solidity +error UnexpectedString(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct UnexpectedString; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: UnexpectedString) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for UnexpectedString { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for UnexpectedString { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "UnexpectedString()"; + const SELECTOR: [u8; 4] = [75u8, 156u8, 106u8, 190u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ValidStep()` and selector `0xfb4e40dd`. +```solidity +error ValidStep(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ValidStep; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ValidStep) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ValidStep { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ValidStep { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ValidStep()"; + const SELECTOR: [u8; 4] = [251u8, 78u8, 64u8, 221u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `GameClosed(uint8)` and selector `0x9908eaac0645df9d0704d06adc9e07337c951de2f06b5f2836151d48d5e4722f`. +```solidity +event GameClosed(BondDistributionMode bondDistributionMode); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct GameClosed { + #[allow(missing_docs)] + pub bondDistributionMode: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for GameClosed { + type DataTuple<'a> = (BondDistributionMode,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,); + const SIGNATURE: &'static str = "GameClosed(uint8)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 153u8, 8u8, 234u8, 172u8, 6u8, 69u8, 223u8, 157u8, 7u8, 4u8, 208u8, + 106u8, 220u8, 158u8, 7u8, 51u8, 124u8, 149u8, 29u8, 226u8, 240u8, 107u8, + 95u8, 40u8, 54u8, 21u8, 29u8, 72u8, 213u8, 228u8, 114u8, 47u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + bondDistributionMode: data.0, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + ::tokenize( + &self.bondDistributionMode, + ), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(),) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for GameClosed { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&GameClosed> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &GameClosed) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `Move(uint256,bytes32,address)` and selector `0x9b3245740ec3b155098a55be84957a4da13eaf7f14a8bc6f53126c0b9350f2be`. +```solidity +event Move(uint256 indexed parentIndex, Claim indexed claim, address indexed claimant); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct Move { + #[allow(missing_docs)] + pub parentIndex: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub claim: ::RustType, + #[allow(missing_docs)] + pub claimant: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for Move { + type DataTuple<'a> = (); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Uint<256>, + Claim, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "Move(uint256,bytes32,address)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 155u8, 50u8, 69u8, 116u8, 14u8, 195u8, 177u8, 85u8, 9u8, 138u8, 85u8, + 190u8, 132u8, 149u8, 122u8, 77u8, 161u8, 62u8, 175u8, 127u8, 20u8, 168u8, + 188u8, 111u8, 83u8, 18u8, 108u8, 11u8, 147u8, 80u8, 242u8, 190u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + parentIndex: topics.1, + claim: topics.2, + claimant: topics.3, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + () + } + #[inline] + fn topics(&self) -> ::RustType { + ( + Self::SIGNATURE_HASH.into(), + self.parentIndex.clone(), + self.claim.clone(), + self.claimant.clone(), + ) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = as alloy_sol_types::EventTopic>::encode_topic(&self.parentIndex); + out[2usize] = ::encode_topic( + &self.claim, + ); + out[3usize] = ::encode_topic( + &self.claimant, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for Move { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&Move> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &Move) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `Resolved(uint8)` and selector `0x5e186f09b9c93491f14e277eea7faa5de6a2d4bda75a79af7a3684fbfb42da60`. +```solidity +event Resolved(GameStatus indexed status); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct Resolved { + #[allow(missing_docs)] + pub status: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for Resolved { + type DataTuple<'a> = (); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>, GameStatus); + const SIGNATURE: &'static str = "Resolved(uint8)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 94u8, 24u8, 111u8, 9u8, 185u8, 201u8, 52u8, 145u8, 241u8, 78u8, 39u8, + 126u8, 234u8, 127u8, 170u8, 93u8, 230u8, 162u8, 212u8, 189u8, 167u8, + 90u8, 121u8, 175u8, 122u8, 54u8, 132u8, 251u8, 251u8, 66u8, 218u8, 96u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { status: topics.1 } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + () + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.status.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.status, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for Resolved { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&Resolved> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &Resolved) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + /**Constructor`. +```solidity +constructor(GameConstructorParams _params); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct constructorCall { + #[allow(missing_docs)] + pub _params: ::RustType, + } + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (GameConstructorParams,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: constructorCall) -> Self { + (value._params,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for constructorCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _params: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolConstructor for constructorCall { + type Parameters<'a> = (GameConstructorParams,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._params, + ), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `absolutePrestate()` and selector `0x8d450a95`. +```solidity +function absolutePrestate() external view returns (Claim absolutePrestate_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct absolutePrestateCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`absolutePrestate()`](absolutePrestateCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct absolutePrestateReturn { + #[allow(missing_docs)] + pub absolutePrestate_: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: absolutePrestateCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for absolutePrestateCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Claim,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: absolutePrestateReturn) -> Self { + (value.absolutePrestate_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for absolutePrestateReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { absolutePrestate_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for absolutePrestateCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (Claim,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "absolutePrestate()"; + const SELECTOR: [u8; 4] = [141u8, 69u8, 10u8, 149u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: absolutePrestateReturn = r.into(); + r.absolutePrestate_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: absolutePrestateReturn = r.into(); + r.absolutePrestate_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `addLocalData(uint256,uint256,uint256)` and selector `0xf8f43ff6`. +```solidity +function addLocalData(uint256 _ident, uint256 _execLeafIdx, uint256 _partOffset) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct addLocalDataCall { + #[allow(missing_docs)] + pub _ident: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _execLeafIdx: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _partOffset: alloy::sol_types::private::primitives::aliases::U256, + } + ///Container type for the return parameters of the [`addLocalData(uint256,uint256,uint256)`](addLocalDataCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct addLocalDataReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: addLocalDataCall) -> Self { + (value._ident, value._execLeafIdx, value._partOffset) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for addLocalDataCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _ident: tuple.0, + _execLeafIdx: tuple.1, + _partOffset: tuple.2, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: addLocalDataReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for addLocalDataReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl addLocalDataReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for addLocalDataCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = addLocalDataReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "addLocalData(uint256,uint256,uint256)"; + const SELECTOR: [u8; 4] = [248u8, 244u8, 63u8, 246u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._ident), + as alloy_sol_types::SolType>::tokenize(&self._execLeafIdx), + as alloy_sol_types::SolType>::tokenize(&self._partOffset), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + addLocalDataReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `anchorStateRegistry()` and selector `0x5c0cba33`. +```solidity +function anchorStateRegistry() external view returns (address registry_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct anchorStateRegistryCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`anchorStateRegistry()`](anchorStateRegistryCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct anchorStateRegistryReturn { + #[allow(missing_docs)] + pub registry_: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: anchorStateRegistryCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for anchorStateRegistryCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: anchorStateRegistryReturn) -> Self { + (value.registry_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for anchorStateRegistryReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { registry_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for anchorStateRegistryCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "anchorStateRegistry()"; + const SELECTOR: [u8; 4] = [92u8, 12u8, 186u8, 51u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: anchorStateRegistryReturn = r.into(); + r.registry_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: anchorStateRegistryReturn = r.into(); + r.registry_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `attack(bytes32,uint256,bytes32)` and selector `0x472777c6`. +```solidity +function attack(Claim _disputed, uint256 _parentIndex, Claim _claim) external payable; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct attackCall { + #[allow(missing_docs)] + pub _disputed: ::RustType, + #[allow(missing_docs)] + pub _parentIndex: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _claim: ::RustType, + } + ///Container type for the return parameters of the [`attack(bytes32,uint256,bytes32)`](attackCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct attackReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + Claim, + alloy::sol_types::sol_data::Uint<256>, + Claim, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + alloy::sol_types::private::primitives::aliases::U256, + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: attackCall) -> Self { + (value._disputed, value._parentIndex, value._claim) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for attackCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _disputed: tuple.0, + _parentIndex: tuple.1, + _claim: tuple.2, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: attackReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for attackReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl attackReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for attackCall { + type Parameters<'a> = (Claim, alloy::sol_types::sol_data::Uint<256>, Claim); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = attackReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "attack(bytes32,uint256,bytes32)"; + const SELECTOR: [u8; 4] = [71u8, 39u8, 119u8, 198u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize(&self._disputed), + as alloy_sol_types::SolType>::tokenize(&self._parentIndex), + ::tokenize(&self._claim), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + attackReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `bondDistributionMode()` and selector `0x378dd48c`. +```solidity +function bondDistributionMode() external view returns (BondDistributionMode); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct bondDistributionModeCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`bondDistributionMode()`](bondDistributionModeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct bondDistributionModeReturn { + #[allow(missing_docs)] + pub _0: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: bondDistributionModeCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for bondDistributionModeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (BondDistributionMode,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: bondDistributionModeReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for bondDistributionModeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for bondDistributionModeCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (BondDistributionMode,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "bondDistributionMode()"; + const SELECTOR: [u8; 4] = [55u8, 141u8, 212u8, 140u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: bondDistributionModeReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: bondDistributionModeReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `challengeRootL2Block((bytes32,bytes32,bytes32,bytes32),bytes)` and selector `0x01935130`. +```solidity +function challengeRootL2Block(Types.OutputRootProof memory _outputRootProof, bytes memory _headerRLP) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct challengeRootL2BlockCall { + #[allow(missing_docs)] + pub _outputRootProof: ::RustType, + #[allow(missing_docs)] + pub _headerRLP: alloy::sol_types::private::Bytes, + } + ///Container type for the return parameters of the [`challengeRootL2Block((bytes32,bytes32,bytes32,bytes32),bytes)`](challengeRootL2BlockCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct challengeRootL2BlockReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + Types::OutputRootProof, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + alloy::sol_types::private::Bytes, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: challengeRootL2BlockCall) -> Self { + (value._outputRootProof, value._headerRLP) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for challengeRootL2BlockCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _outputRootProof: tuple.0, + _headerRLP: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: challengeRootL2BlockReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for challengeRootL2BlockReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl challengeRootL2BlockReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken< + '_, + > { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for challengeRootL2BlockCall { + type Parameters<'a> = ( + Types::OutputRootProof, + alloy::sol_types::sol_data::Bytes, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = challengeRootL2BlockReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "challengeRootL2Block((bytes32,bytes32,bytes32,bytes32),bytes)"; + const SELECTOR: [u8; 4] = [1u8, 147u8, 81u8, 48u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._outputRootProof, + ), + ::tokenize( + &self._headerRLP, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + challengeRootL2BlockReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `claimCredit(address)` and selector `0x60e27464`. +```solidity +function claimCredit(address _recipient) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct claimCreditCall { + #[allow(missing_docs)] + pub _recipient: alloy::sol_types::private::Address, + } + ///Container type for the return parameters of the [`claimCredit(address)`](claimCreditCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct claimCreditReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: claimCreditCall) -> Self { + (value._recipient,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for claimCreditCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _recipient: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: claimCreditReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for claimCreditReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl claimCreditReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for claimCreditCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = claimCreditReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "claimCredit(address)"; + const SELECTOR: [u8; 4] = [96u8, 226u8, 116u8, 100u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._recipient, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + claimCreditReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `claimData(uint256)` and selector `0xc6f0308c`. +```solidity +function claimData(uint256) external view returns (uint32 parentIndex, address counteredBy, address claimant, uint128 bond, Claim claim, Position position, Clock clock); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct claimDataCall(pub alloy::sol_types::private::primitives::aliases::U256); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`claimData(uint256)`](claimDataCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct claimDataReturn { + #[allow(missing_docs)] + pub parentIndex: u32, + #[allow(missing_docs)] + pub counteredBy: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub claimant: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub bond: u128, + #[allow(missing_docs)] + pub claim: ::RustType, + #[allow(missing_docs)] + pub position: ::RustType, + #[allow(missing_docs)] + pub clock: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: claimDataCall) -> Self { + (value.0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for claimDataCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self(tuple.0) + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Uint<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<128>, + Claim, + Position, + Clock, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + u32, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + u128, + ::RustType, + ::RustType, + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: claimDataReturn) -> Self { + ( + value.parentIndex, + value.counteredBy, + value.claimant, + value.bond, + value.claim, + value.position, + value.clock, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for claimDataReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + parentIndex: tuple.0, + counteredBy: tuple.1, + claimant: tuple.2, + bond: tuple.3, + claim: tuple.4, + position: tuple.5, + clock: tuple.6, + } + } + } + } + impl claimDataReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.parentIndex), + ::tokenize( + &self.counteredBy, + ), + ::tokenize( + &self.claimant, + ), + as alloy_sol_types::SolType>::tokenize(&self.bond), + ::tokenize(&self.claim), + ::tokenize(&self.position), + ::tokenize(&self.clock), + ) + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for claimDataCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = claimDataReturn; + type ReturnTuple<'a> = ( + alloy::sol_types::sol_data::Uint<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<128>, + Claim, + Position, + Clock, + ); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "claimData(uint256)"; + const SELECTOR: [u8; 4] = [198u8, 240u8, 48u8, 140u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.0), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + claimDataReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `claimDataLen()` and selector `0x8980e0cc`. +```solidity +function claimDataLen() external view returns (uint256 len_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct claimDataLenCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`claimDataLen()`](claimDataLenCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct claimDataLenReturn { + #[allow(missing_docs)] + pub len_: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: claimDataLenCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for claimDataLenCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: claimDataLenReturn) -> Self { + (value.len_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for claimDataLenReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { len_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for claimDataLenCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "claimDataLen()"; + const SELECTOR: [u8; 4] = [137u8, 128u8, 224u8, 204u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: claimDataLenReturn = r.into(); + r.len_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: claimDataLenReturn = r.into(); + r.len_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `claims(bytes32)` and selector `0xeff0f592`. +```solidity +function claims(Hash) external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct claimsCall(pub ::RustType); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`claims(bytes32)`](claimsCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct claimsReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Hash,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: claimsCall) -> Self { + (value.0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for claimsCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self(tuple.0) + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: claimsReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for claimsReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for claimsCall { + type Parameters<'a> = (Hash,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "claims(bytes32)"; + const SELECTOR: [u8; 4] = [239u8, 240u8, 245u8, 146u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + (::tokenize(&self.0),) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: claimsReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: claimsReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `clockExtension()` and selector `0x6b6716c0`. +```solidity +function clockExtension() external view returns (Duration clockExtension_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct clockExtensionCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`clockExtension()`](clockExtensionCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct clockExtensionReturn { + #[allow(missing_docs)] + pub clockExtension_: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: clockExtensionCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for clockExtensionCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Duration,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: clockExtensionReturn) -> Self { + (value.clockExtension_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for clockExtensionReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { clockExtension_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for clockExtensionCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (Duration,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "clockExtension()"; + const SELECTOR: [u8; 4] = [107u8, 103u8, 22u8, 192u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: clockExtensionReturn = r.into(); + r.clockExtension_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: clockExtensionReturn = r.into(); + r.clockExtension_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `closeGame()` and selector `0x786b844b`. +```solidity +function closeGame() external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct closeGameCall; + ///Container type for the return parameters of the [`closeGame()`](closeGameCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct closeGameReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: closeGameCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for closeGameCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: closeGameReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for closeGameReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl closeGameReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for closeGameCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = closeGameReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "closeGame()"; + const SELECTOR: [u8; 4] = [120u8, 107u8, 132u8, 75u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + closeGameReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `createdAt()` and selector `0xcf09e0d0`. +```solidity +function createdAt() external view returns (Timestamp); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct createdAtCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`createdAt()`](createdAtCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct createdAtReturn { + #[allow(missing_docs)] + pub _0: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: createdAtCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for createdAtCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Timestamp,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: createdAtReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for createdAtReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for createdAtCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (Timestamp,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "createdAt()"; + const SELECTOR: [u8; 4] = [207u8, 9u8, 224u8, 208u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: createdAtReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: createdAtReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `credit(address)` and selector `0xd5d44d80`. +```solidity +function credit(address _recipient) external view returns (uint256 credit_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct creditCall { + #[allow(missing_docs)] + pub _recipient: alloy::sol_types::private::Address, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`credit(address)`](creditCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct creditReturn { + #[allow(missing_docs)] + pub credit_: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: creditCall) -> Self { + (value._recipient,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for creditCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _recipient: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: creditReturn) -> Self { + (value.credit_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for creditReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { credit_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for creditCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "credit(address)"; + const SELECTOR: [u8; 4] = [213u8, 212u8, 77u8, 128u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._recipient, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: creditReturn = r.into(); + r.credit_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: creditReturn = r.into(); + r.credit_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `defend(bytes32,uint256,bytes32)` and selector `0x7b0f0adc`. +```solidity +function defend(Claim _disputed, uint256 _parentIndex, Claim _claim) external payable; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct defendCall { + #[allow(missing_docs)] + pub _disputed: ::RustType, + #[allow(missing_docs)] + pub _parentIndex: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _claim: ::RustType, + } + ///Container type for the return parameters of the [`defend(bytes32,uint256,bytes32)`](defendCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct defendReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + Claim, + alloy::sol_types::sol_data::Uint<256>, + Claim, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + alloy::sol_types::private::primitives::aliases::U256, + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: defendCall) -> Self { + (value._disputed, value._parentIndex, value._claim) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for defendCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _disputed: tuple.0, + _parentIndex: tuple.1, + _claim: tuple.2, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: defendReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for defendReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl defendReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for defendCall { + type Parameters<'a> = (Claim, alloy::sol_types::sol_data::Uint<256>, Claim); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = defendReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "defend(bytes32,uint256,bytes32)"; + const SELECTOR: [u8; 4] = [123u8, 15u8, 10u8, 220u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize(&self._disputed), + as alloy_sol_types::SolType>::tokenize(&self._parentIndex), + ::tokenize(&self._claim), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + defendReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `extraData()` and selector `0x609d3334`. +```solidity +function extraData() external pure returns (bytes memory extraData_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct extraDataCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`extraData()`](extraDataCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct extraDataReturn { + #[allow(missing_docs)] + pub extraData_: alloy::sol_types::private::Bytes, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: extraDataCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for extraDataCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bytes,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Bytes,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: extraDataReturn) -> Self { + (value.extraData_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for extraDataReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { extraData_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for extraDataCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Bytes; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bytes,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "extraData()"; + const SELECTOR: [u8; 4] = [96u8, 157u8, 51u8, 52u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: extraDataReturn = r.into(); + r.extraData_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: extraDataReturn = r.into(); + r.extraData_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `gameCreator()` and selector `0x37b1b229`. +```solidity +function gameCreator() external pure returns (address creator_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct gameCreatorCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`gameCreator()`](gameCreatorCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct gameCreatorReturn { + #[allow(missing_docs)] + pub creator_: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: gameCreatorCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for gameCreatorCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: gameCreatorReturn) -> Self { + (value.creator_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for gameCreatorReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { creator_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for gameCreatorCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "gameCreator()"; + const SELECTOR: [u8; 4] = [55u8, 177u8, 178u8, 41u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: gameCreatorReturn = r.into(); + r.creator_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: gameCreatorReturn = r.into(); + r.creator_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `gameData()` and selector `0xfa24f743`. +```solidity +function gameData() external view returns (GameType gameType_, Claim rootClaim_, bytes memory extraData_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct gameDataCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`gameData()`](gameDataCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct gameDataReturn { + #[allow(missing_docs)] + pub gameType_: ::RustType, + #[allow(missing_docs)] + pub rootClaim_: ::RustType, + #[allow(missing_docs)] + pub extraData_: alloy::sol_types::private::Bytes, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: gameDataCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for gameDataCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + GameType, + Claim, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ::RustType, + alloy::sol_types::private::Bytes, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: gameDataReturn) -> Self { + (value.gameType_, value.rootClaim_, value.extraData_) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for gameDataReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + gameType_: tuple.0, + rootClaim_: tuple.1, + extraData_: tuple.2, + } + } + } + } + impl gameDataReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + ( + ::tokenize(&self.gameType_), + ::tokenize(&self.rootClaim_), + ::tokenize( + &self.extraData_, + ), + ) + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for gameDataCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = gameDataReturn; + type ReturnTuple<'a> = (GameType, Claim, alloy::sol_types::sol_data::Bytes); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "gameData()"; + const SELECTOR: [u8; 4] = [250u8, 36u8, 247u8, 67u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + gameDataReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `gameType()` and selector `0xbbdc02db`. +```solidity +function gameType() external view returns (GameType gameType_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct gameTypeCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`gameType()`](gameTypeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct gameTypeReturn { + #[allow(missing_docs)] + pub gameType_: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: gameTypeCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for gameTypeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (GameType,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: gameTypeReturn) -> Self { + (value.gameType_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for gameTypeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { gameType_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for gameTypeCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (GameType,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "gameType()"; + const SELECTOR: [u8; 4] = [187u8, 220u8, 2u8, 219u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: gameTypeReturn = r.into(); + r.gameType_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: gameTypeReturn = r.into(); + r.gameType_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `getChallengerDuration(uint256)` and selector `0xbd8da956`. +```solidity +function getChallengerDuration(uint256 _claimIndex) external view returns (Duration duration_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getChallengerDurationCall { + #[allow(missing_docs)] + pub _claimIndex: alloy::sol_types::private::primitives::aliases::U256, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`getChallengerDuration(uint256)`](getChallengerDurationCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getChallengerDurationReturn { + #[allow(missing_docs)] + pub duration_: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: getChallengerDurationCall) -> Self { + (value._claimIndex,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for getChallengerDurationCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _claimIndex: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Duration,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: getChallengerDurationReturn) -> Self { + (value.duration_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for getChallengerDurationReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { duration_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for getChallengerDurationCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (Duration,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "getChallengerDuration(uint256)"; + const SELECTOR: [u8; 4] = [189u8, 141u8, 169u8, 86u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._claimIndex), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: getChallengerDurationReturn = r.into(); + r.duration_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: getChallengerDurationReturn = r.into(); + r.duration_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `getNumToResolve(uint256)` and selector `0x5a5fa2d9`. +```solidity +function getNumToResolve(uint256 _claimIndex) external view returns (uint256 numRemainingChildren_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getNumToResolveCall { + #[allow(missing_docs)] + pub _claimIndex: alloy::sol_types::private::primitives::aliases::U256, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`getNumToResolve(uint256)`](getNumToResolveCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getNumToResolveReturn { + #[allow(missing_docs)] + pub numRemainingChildren_: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: getNumToResolveCall) -> Self { + (value._claimIndex,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for getNumToResolveCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _claimIndex: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: getNumToResolveReturn) -> Self { + (value.numRemainingChildren_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for getNumToResolveReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + numRemainingChildren_: tuple.0, + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for getNumToResolveCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "getNumToResolve(uint256)"; + const SELECTOR: [u8; 4] = [90u8, 95u8, 162u8, 217u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._claimIndex), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: getNumToResolveReturn = r.into(); + r.numRemainingChildren_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: getNumToResolveReturn = r.into(); + r.numRemainingChildren_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `getRequiredBond(uint128)` and selector `0xc395e1ca`. +```solidity +function getRequiredBond(Position _position) external view returns (uint256 requiredBond_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getRequiredBondCall { + #[allow(missing_docs)] + pub _position: ::RustType, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`getRequiredBond(uint128)`](getRequiredBondCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getRequiredBondReturn { + #[allow(missing_docs)] + pub requiredBond_: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Position,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: getRequiredBondCall) -> Self { + (value._position,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for getRequiredBondCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _position: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: getRequiredBondReturn) -> Self { + (value.requiredBond_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for getRequiredBondReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { requiredBond_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for getRequiredBondCall { + type Parameters<'a> = (Position,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "getRequiredBond(uint128)"; + const SELECTOR: [u8; 4] = [195u8, 149u8, 225u8, 202u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + (::tokenize(&self._position),) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: getRequiredBondReturn = r.into(); + r.requiredBond_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: getRequiredBondReturn = r.into(); + r.requiredBond_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `hasUnlockedCredit(address)` and selector `0x222abf45`. +```solidity +function hasUnlockedCredit(address) external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct hasUnlockedCreditCall(pub alloy::sol_types::private::Address); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`hasUnlockedCredit(address)`](hasUnlockedCreditCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct hasUnlockedCreditReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: hasUnlockedCreditCall) -> Self { + (value.0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for hasUnlockedCreditCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self(tuple.0) + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: hasUnlockedCreditReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for hasUnlockedCreditReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for hasUnlockedCreditCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "hasUnlockedCredit(address)"; + const SELECTOR: [u8; 4] = [34u8, 42u8, 191u8, 69u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.0, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: hasUnlockedCreditReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: hasUnlockedCreditReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `initialize()` and selector `0x8129fc1c`. +```solidity +function initialize() external payable; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct initializeCall; + ///Container type for the return parameters of the [`initialize()`](initializeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct initializeReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: initializeCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for initializeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: initializeReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for initializeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl initializeReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for initializeCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = initializeReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "initialize()"; + const SELECTOR: [u8; 4] = [129u8, 41u8, 252u8, 28u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + initializeReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `l1Head()` and selector `0x6361506d`. +```solidity +function l1Head() external pure returns (Hash l1Head_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct l1HeadCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`l1Head()`](l1HeadCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct l1HeadReturn { + #[allow(missing_docs)] + pub l1Head_: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: l1HeadCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for l1HeadCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Hash,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: l1HeadReturn) -> Self { + (value.l1Head_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for l1HeadReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { l1Head_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for l1HeadCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (Hash,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "l1Head()"; + const SELECTOR: [u8; 4] = [99u8, 97u8, 80u8, 109u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: l1HeadReturn = r.into(); + r.l1Head_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: l1HeadReturn = r.into(); + r.l1Head_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `l2BlockNumber()` and selector `0x8b85902b`. +```solidity +function l2BlockNumber() external pure returns (uint256 l2BlockNumber_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct l2BlockNumberCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`l2BlockNumber()`](l2BlockNumberCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct l2BlockNumberReturn { + #[allow(missing_docs)] + pub l2BlockNumber_: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: l2BlockNumberCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for l2BlockNumberCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: l2BlockNumberReturn) -> Self { + (value.l2BlockNumber_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for l2BlockNumberReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { l2BlockNumber_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for l2BlockNumberCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "l2BlockNumber()"; + const SELECTOR: [u8; 4] = [139u8, 133u8, 144u8, 43u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: l2BlockNumberReturn = r.into(); + r.l2BlockNumber_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: l2BlockNumberReturn = r.into(); + r.l2BlockNumber_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `l2BlockNumberChallenged()` and selector `0x3e3ac912`. +```solidity +function l2BlockNumberChallenged() external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct l2BlockNumberChallengedCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`l2BlockNumberChallenged()`](l2BlockNumberChallengedCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct l2BlockNumberChallengedReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: l2BlockNumberChallengedCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for l2BlockNumberChallengedCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: l2BlockNumberChallengedReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for l2BlockNumberChallengedReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for l2BlockNumberChallengedCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "l2BlockNumberChallenged()"; + const SELECTOR: [u8; 4] = [62u8, 58u8, 201u8, 18u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: l2BlockNumberChallengedReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: l2BlockNumberChallengedReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `l2BlockNumberChallenger()` and selector `0x30dbe570`. +```solidity +function l2BlockNumberChallenger() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct l2BlockNumberChallengerCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`l2BlockNumberChallenger()`](l2BlockNumberChallengerCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct l2BlockNumberChallengerReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: l2BlockNumberChallengerCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for l2BlockNumberChallengerCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: l2BlockNumberChallengerReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for l2BlockNumberChallengerReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for l2BlockNumberChallengerCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "l2BlockNumberChallenger()"; + const SELECTOR: [u8; 4] = [48u8, 219u8, 229u8, 112u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: l2BlockNumberChallengerReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: l2BlockNumberChallengerReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `l2ChainId()` and selector `0xd6ae3cd5`. +```solidity +function l2ChainId() external view returns (uint256 l2ChainId_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct l2ChainIdCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`l2ChainId()`](l2ChainIdCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct l2ChainIdReturn { + #[allow(missing_docs)] + pub l2ChainId_: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: l2ChainIdCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for l2ChainIdCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: l2ChainIdReturn) -> Self { + (value.l2ChainId_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for l2ChainIdReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { l2ChainId_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for l2ChainIdCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "l2ChainId()"; + const SELECTOR: [u8; 4] = [214u8, 174u8, 60u8, 213u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: l2ChainIdReturn = r.into(); + r.l2ChainId_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: l2ChainIdReturn = r.into(); + r.l2ChainId_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `l2SequenceNumber()` and selector `0x99735e32`. +```solidity +function l2SequenceNumber() external pure returns (uint256 l2SequenceNumber_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct l2SequenceNumberCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`l2SequenceNumber()`](l2SequenceNumberCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct l2SequenceNumberReturn { + #[allow(missing_docs)] + pub l2SequenceNumber_: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: l2SequenceNumberCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for l2SequenceNumberCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: l2SequenceNumberReturn) -> Self { + (value.l2SequenceNumber_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for l2SequenceNumberReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { l2SequenceNumber_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for l2SequenceNumberCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "l2SequenceNumber()"; + const SELECTOR: [u8; 4] = [153u8, 115u8, 94u8, 50u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: l2SequenceNumberReturn = r.into(); + r.l2SequenceNumber_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: l2SequenceNumberReturn = r.into(); + r.l2SequenceNumber_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `maxClockDuration()` and selector `0xdabd396d`. +```solidity +function maxClockDuration() external view returns (Duration maxClockDuration_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct maxClockDurationCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`maxClockDuration()`](maxClockDurationCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct maxClockDurationReturn { + #[allow(missing_docs)] + pub maxClockDuration_: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: maxClockDurationCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for maxClockDurationCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Duration,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: maxClockDurationReturn) -> Self { + (value.maxClockDuration_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for maxClockDurationReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { maxClockDuration_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for maxClockDurationCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (Duration,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "maxClockDuration()"; + const SELECTOR: [u8; 4] = [218u8, 189u8, 57u8, 109u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: maxClockDurationReturn = r.into(); + r.maxClockDuration_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: maxClockDurationReturn = r.into(); + r.maxClockDuration_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `maxGameDepth()` and selector `0xfa315aa9`. +```solidity +function maxGameDepth() external view returns (uint256 maxGameDepth_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct maxGameDepthCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`maxGameDepth()`](maxGameDepthCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct maxGameDepthReturn { + #[allow(missing_docs)] + pub maxGameDepth_: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: maxGameDepthCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for maxGameDepthCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: maxGameDepthReturn) -> Self { + (value.maxGameDepth_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for maxGameDepthReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { maxGameDepth_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for maxGameDepthCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "maxGameDepth()"; + const SELECTOR: [u8; 4] = [250u8, 49u8, 90u8, 169u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: maxGameDepthReturn = r.into(); + r.maxGameDepth_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: maxGameDepthReturn = r.into(); + r.maxGameDepth_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `move(bytes32,uint256,bytes32,bool)` and selector `0x6f034409`. +```solidity +function r#move(Claim _disputed, uint256 _challengeIndex, Claim _claim, bool _isAttack) external payable; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct moveCall { + #[allow(missing_docs)] + pub _disputed: ::RustType, + #[allow(missing_docs)] + pub _challengeIndex: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _claim: ::RustType, + #[allow(missing_docs)] + pub _isAttack: bool, + } + ///Container type for the return parameters of the [`move(bytes32,uint256,bytes32,bool)`](moveCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct moveReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + Claim, + alloy::sol_types::sol_data::Uint<256>, + Claim, + alloy::sol_types::sol_data::Bool, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + alloy::sol_types::private::primitives::aliases::U256, + ::RustType, + bool, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: moveCall) -> Self { + ( + value._disputed, + value._challengeIndex, + value._claim, + value._isAttack, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for moveCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _disputed: tuple.0, + _challengeIndex: tuple.1, + _claim: tuple.2, + _isAttack: tuple.3, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: moveReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for moveReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl moveReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for moveCall { + type Parameters<'a> = ( + Claim, + alloy::sol_types::sol_data::Uint<256>, + Claim, + alloy::sol_types::sol_data::Bool, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = moveReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "move(bytes32,uint256,bytes32,bool)"; + const SELECTOR: [u8; 4] = [111u8, 3u8, 68u8, 9u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize(&self._disputed), + as alloy_sol_types::SolType>::tokenize(&self._challengeIndex), + ::tokenize(&self._claim), + ::tokenize( + &self._isAttack, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + moveReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `normalModeCredit(address)` and selector `0x529d6a8c`. +```solidity +function normalModeCredit(address) external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct normalModeCreditCall(pub alloy::sol_types::private::Address); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`normalModeCredit(address)`](normalModeCreditCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct normalModeCreditReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: normalModeCreditCall) -> Self { + (value.0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for normalModeCreditCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self(tuple.0) + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: normalModeCreditReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for normalModeCreditReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for normalModeCreditCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "normalModeCredit(address)"; + const SELECTOR: [u8; 4] = [82u8, 157u8, 106u8, 140u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.0, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: normalModeCreditReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: normalModeCreditReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `refundModeCredit(address)` and selector `0xc0d8bb74`. +```solidity +function refundModeCredit(address) external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct refundModeCreditCall(pub alloy::sol_types::private::Address); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`refundModeCredit(address)`](refundModeCreditCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct refundModeCreditReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: refundModeCreditCall) -> Self { + (value.0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for refundModeCreditCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self(tuple.0) + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: refundModeCreditReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for refundModeCreditReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for refundModeCreditCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "refundModeCredit(address)"; + const SELECTOR: [u8; 4] = [192u8, 216u8, 187u8, 116u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.0, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: refundModeCreditReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: refundModeCreditReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `resolutionCheckpoints(uint256)` and selector `0xa445ece6`. +```solidity +function resolutionCheckpoints(uint256) external view returns (bool initialCheckpointComplete, uint32 subgameIndex, Position leftmostPosition, address counteredBy); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct resolutionCheckpointsCall( + pub alloy::sol_types::private::primitives::aliases::U256, + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`resolutionCheckpoints(uint256)`](resolutionCheckpointsCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct resolutionCheckpointsReturn { + #[allow(missing_docs)] + pub initialCheckpointComplete: bool, + #[allow(missing_docs)] + pub subgameIndex: u32, + #[allow(missing_docs)] + pub leftmostPosition: ::RustType, + #[allow(missing_docs)] + pub counteredBy: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: resolutionCheckpointsCall) -> Self { + (value.0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for resolutionCheckpointsCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self(tuple.0) + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Bool, + alloy::sol_types::sol_data::Uint<32>, + Position, + alloy::sol_types::sol_data::Address, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + bool, + u32, + ::RustType, + alloy::sol_types::private::Address, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: resolutionCheckpointsReturn) -> Self { + ( + value.initialCheckpointComplete, + value.subgameIndex, + value.leftmostPosition, + value.counteredBy, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for resolutionCheckpointsReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + initialCheckpointComplete: tuple.0, + subgameIndex: tuple.1, + leftmostPosition: tuple.2, + counteredBy: tuple.3, + } + } + } + } + impl resolutionCheckpointsReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken< + '_, + > { + ( + ::tokenize( + &self.initialCheckpointComplete, + ), + as alloy_sol_types::SolType>::tokenize(&self.subgameIndex), + ::tokenize( + &self.leftmostPosition, + ), + ::tokenize( + &self.counteredBy, + ), + ) + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for resolutionCheckpointsCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = resolutionCheckpointsReturn; + type ReturnTuple<'a> = ( + alloy::sol_types::sol_data::Bool, + alloy::sol_types::sol_data::Uint<32>, + Position, + alloy::sol_types::sol_data::Address, + ); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "resolutionCheckpoints(uint256)"; + const SELECTOR: [u8; 4] = [164u8, 69u8, 236u8, 230u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.0), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + resolutionCheckpointsReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `resolve()` and selector `0x2810e1d6`. +```solidity +function resolve() external returns (GameStatus status_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct resolveCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`resolve()`](resolveCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct resolveReturn { + #[allow(missing_docs)] + pub status_: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: resolveCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for resolveCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (GameStatus,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: resolveReturn) -> Self { + (value.status_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for resolveReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { status_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for resolveCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (GameStatus,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "resolve()"; + const SELECTOR: [u8; 4] = [40u8, 16u8, 225u8, 214u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: resolveReturn = r.into(); + r.status_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: resolveReturn = r.into(); + r.status_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `resolveClaim(uint256,uint256)` and selector `0x03c2924d`. +```solidity +function resolveClaim(uint256 _claimIndex, uint256 _numToResolve) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct resolveClaimCall { + #[allow(missing_docs)] + pub _claimIndex: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _numToResolve: alloy::sol_types::private::primitives::aliases::U256, + } + ///Container type for the return parameters of the [`resolveClaim(uint256,uint256)`](resolveClaimCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct resolveClaimReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: resolveClaimCall) -> Self { + (value._claimIndex, value._numToResolve) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for resolveClaimCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _claimIndex: tuple.0, + _numToResolve: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: resolveClaimReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for resolveClaimReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl resolveClaimReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for resolveClaimCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = resolveClaimReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "resolveClaim(uint256,uint256)"; + const SELECTOR: [u8; 4] = [3u8, 194u8, 146u8, 77u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._claimIndex), + as alloy_sol_types::SolType>::tokenize(&self._numToResolve), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + resolveClaimReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `resolvedAt()` and selector `0x19effeb4`. +```solidity +function resolvedAt() external view returns (Timestamp); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct resolvedAtCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`resolvedAt()`](resolvedAtCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct resolvedAtReturn { + #[allow(missing_docs)] + pub _0: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: resolvedAtCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for resolvedAtCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Timestamp,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: resolvedAtReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for resolvedAtReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for resolvedAtCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (Timestamp,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "resolvedAt()"; + const SELECTOR: [u8; 4] = [25u8, 239u8, 254u8, 180u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: resolvedAtReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: resolvedAtReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `resolvedSubgames(uint256)` and selector `0xfe2bbeb2`. +```solidity +function resolvedSubgames(uint256) external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct resolvedSubgamesCall( + pub alloy::sol_types::private::primitives::aliases::U256, + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`resolvedSubgames(uint256)`](resolvedSubgamesCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct resolvedSubgamesReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: resolvedSubgamesCall) -> Self { + (value.0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for resolvedSubgamesCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self(tuple.0) + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: resolvedSubgamesReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for resolvedSubgamesReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for resolvedSubgamesCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "resolvedSubgames(uint256)"; + const SELECTOR: [u8; 4] = [254u8, 43u8, 190u8, 178u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.0), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: resolvedSubgamesReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: resolvedSubgamesReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `rootClaim()` and selector `0xbcef3b55`. +```solidity +function rootClaim() external pure returns (Claim rootClaim_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct rootClaimCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`rootClaim()`](rootClaimCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct rootClaimReturn { + #[allow(missing_docs)] + pub rootClaim_: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: rootClaimCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for rootClaimCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Claim,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: rootClaimReturn) -> Self { + (value.rootClaim_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for rootClaimReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { rootClaim_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for rootClaimCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (Claim,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "rootClaim()"; + const SELECTOR: [u8; 4] = [188u8, 239u8, 59u8, 85u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: rootClaimReturn = r.into(); + r.rootClaim_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: rootClaimReturn = r.into(); + r.rootClaim_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `splitDepth()` and selector `0xec5e6308`. +```solidity +function splitDepth() external view returns (uint256 splitDepth_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct splitDepthCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`splitDepth()`](splitDepthCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct splitDepthReturn { + #[allow(missing_docs)] + pub splitDepth_: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: splitDepthCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for splitDepthCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: splitDepthReturn) -> Self { + (value.splitDepth_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for splitDepthReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { splitDepth_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for splitDepthCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "splitDepth()"; + const SELECTOR: [u8; 4] = [236u8, 94u8, 99u8, 8u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: splitDepthReturn = r.into(); + r.splitDepth_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: splitDepthReturn = r.into(); + r.splitDepth_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `startingBlockNumber()` and selector `0x70872aa5`. +```solidity +function startingBlockNumber() external view returns (uint256 startingBlockNumber_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct startingBlockNumberCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`startingBlockNumber()`](startingBlockNumberCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct startingBlockNumberReturn { + #[allow(missing_docs)] + pub startingBlockNumber_: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: startingBlockNumberCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for startingBlockNumberCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: startingBlockNumberReturn) -> Self { + (value.startingBlockNumber_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for startingBlockNumberReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + startingBlockNumber_: tuple.0, + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for startingBlockNumberCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "startingBlockNumber()"; + const SELECTOR: [u8; 4] = [112u8, 135u8, 42u8, 165u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: startingBlockNumberReturn = r.into(); + r.startingBlockNumber_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: startingBlockNumberReturn = r.into(); + r.startingBlockNumber_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `startingOutputRoot()` and selector `0x57da950e`. +```solidity +function startingOutputRoot() external view returns (Hash root, uint256 l2SequenceNumber); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct startingOutputRootCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`startingOutputRoot()`](startingOutputRootCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct startingOutputRootReturn { + #[allow(missing_docs)] + pub root: ::RustType, + #[allow(missing_docs)] + pub l2SequenceNumber: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: startingOutputRootCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for startingOutputRootCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Hash, alloy::sol_types::sol_data::Uint<256>); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: startingOutputRootReturn) -> Self { + (value.root, value.l2SequenceNumber) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for startingOutputRootReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + root: tuple.0, + l2SequenceNumber: tuple.1, + } + } + } + } + impl startingOutputRootReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + ( + ::tokenize(&self.root), + as alloy_sol_types::SolType>::tokenize(&self.l2SequenceNumber), + ) + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for startingOutputRootCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = startingOutputRootReturn; + type ReturnTuple<'a> = (Hash, alloy::sol_types::sol_data::Uint<256>); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "startingOutputRoot()"; + const SELECTOR: [u8; 4] = [87u8, 218u8, 149u8, 14u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + startingOutputRootReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `startingRootHash()` and selector `0x25fc2ace`. +```solidity +function startingRootHash() external view returns (Hash startingRootHash_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct startingRootHashCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`startingRootHash()`](startingRootHashCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct startingRootHashReturn { + #[allow(missing_docs)] + pub startingRootHash_: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: startingRootHashCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for startingRootHashCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Hash,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: startingRootHashReturn) -> Self { + (value.startingRootHash_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for startingRootHashReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { startingRootHash_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for startingRootHashCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (Hash,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "startingRootHash()"; + const SELECTOR: [u8; 4] = [37u8, 252u8, 42u8, 206u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: startingRootHashReturn = r.into(); + r.startingRootHash_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: startingRootHashReturn = r.into(); + r.startingRootHash_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `status()` and selector `0x200d2ed2`. +```solidity +function status() external view returns (GameStatus); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct statusCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`status()`](statusCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct statusReturn { + #[allow(missing_docs)] + pub _0: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: statusCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for statusCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (GameStatus,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: statusReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for statusReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for statusCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (GameStatus,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "status()"; + const SELECTOR: [u8; 4] = [32u8, 13u8, 46u8, 210u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: statusReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: statusReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `step(uint256,bool,bytes,bytes)` and selector `0xd8cc1a3c`. +```solidity +function step(uint256 _claimIndex, bool _isAttack, bytes memory _stateData, bytes memory _proof) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct stepCall { + #[allow(missing_docs)] + pub _claimIndex: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _isAttack: bool, + #[allow(missing_docs)] + pub _stateData: alloy::sol_types::private::Bytes, + #[allow(missing_docs)] + pub _proof: alloy::sol_types::private::Bytes, + } + ///Container type for the return parameters of the [`step(uint256,bool,bytes,bytes)`](stepCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct stepReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Bool, + alloy::sol_types::sol_data::Bytes, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + bool, + alloy::sol_types::private::Bytes, + alloy::sol_types::private::Bytes, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: stepCall) -> Self { + (value._claimIndex, value._isAttack, value._stateData, value._proof) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for stepCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _claimIndex: tuple.0, + _isAttack: tuple.1, + _stateData: tuple.2, + _proof: tuple.3, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: stepReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for stepReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl stepReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for stepCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Bool, + alloy::sol_types::sol_data::Bytes, + alloy::sol_types::sol_data::Bytes, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = stepReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "step(uint256,bool,bytes,bytes)"; + const SELECTOR: [u8; 4] = [216u8, 204u8, 26u8, 60u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._claimIndex), + ::tokenize( + &self._isAttack, + ), + ::tokenize( + &self._stateData, + ), + ::tokenize( + &self._proof, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + stepReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `subgames(uint256,uint256)` and selector `0x2ad69aeb`. +```solidity +function subgames(uint256, uint256) external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct subgamesCall { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _1: alloy::sol_types::private::primitives::aliases::U256, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`subgames(uint256,uint256)`](subgamesCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct subgamesReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: subgamesCall) -> Self { + (value._0, value._1) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for subgamesCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0, _1: tuple.1 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: subgamesReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for subgamesReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for subgamesCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "subgames(uint256,uint256)"; + const SELECTOR: [u8; 4] = [42u8, 214u8, 154u8, 235u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._0), + as alloy_sol_types::SolType>::tokenize(&self._1), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: subgamesReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: subgamesReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `version()` and selector `0x54fd4d50`. +```solidity +function version() external pure returns (string memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`version()`](versionCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for versionCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::String; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "version()"; + const SELECTOR: [u8; 4] = [84u8, 253u8, 77u8, 80u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `vm()` and selector `0x3a768463`. +```solidity +function vm() external view returns (address vm_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct vmCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`vm()`](vmCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct vmReturn { + #[allow(missing_docs)] + pub vm_: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: vmCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for vmCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: vmReturn) -> Self { + (value.vm_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for vmReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { vm_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for vmCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "vm()"; + const SELECTOR: [u8; 4] = [58u8, 118u8, 132u8, 99u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: vmReturn = r.into(); + r.vm_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: vmReturn = r.into(); + r.vm_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `wasRespectedGameTypeWhenCreated()` and selector `0x250e69bd`. +```solidity +function wasRespectedGameTypeWhenCreated() external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct wasRespectedGameTypeWhenCreatedCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`wasRespectedGameTypeWhenCreated()`](wasRespectedGameTypeWhenCreatedCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct wasRespectedGameTypeWhenCreatedReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: wasRespectedGameTypeWhenCreatedCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for wasRespectedGameTypeWhenCreatedCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: wasRespectedGameTypeWhenCreatedReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for wasRespectedGameTypeWhenCreatedReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for wasRespectedGameTypeWhenCreatedCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "wasRespectedGameTypeWhenCreated()"; + const SELECTOR: [u8; 4] = [37u8, 14u8, 105u8, 189u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: wasRespectedGameTypeWhenCreatedReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: wasRespectedGameTypeWhenCreatedReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `weth()` and selector `0x3fc8cef3`. +```solidity +function weth() external view returns (address weth_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct wethCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`weth()`](wethCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct wethReturn { + #[allow(missing_docs)] + pub weth_: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: wethCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for wethCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: wethReturn) -> Self { + (value.weth_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for wethReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { weth_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for wethCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "weth()"; + const SELECTOR: [u8; 4] = [63u8, 200u8, 206u8, 243u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: wethReturn = r.into(); + r.weth_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: wethReturn = r.into(); + r.weth_ + }) + } + } + }; + ///Container for all the [`FaultDisputeGame`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum FaultDisputeGameCalls { + #[allow(missing_docs)] + absolutePrestate(absolutePrestateCall), + #[allow(missing_docs)] + addLocalData(addLocalDataCall), + #[allow(missing_docs)] + anchorStateRegistry(anchorStateRegistryCall), + #[allow(missing_docs)] + attack(attackCall), + #[allow(missing_docs)] + bondDistributionMode(bondDistributionModeCall), + #[allow(missing_docs)] + challengeRootL2Block(challengeRootL2BlockCall), + #[allow(missing_docs)] + claimCredit(claimCreditCall), + #[allow(missing_docs)] + claimData(claimDataCall), + #[allow(missing_docs)] + claimDataLen(claimDataLenCall), + #[allow(missing_docs)] + claims(claimsCall), + #[allow(missing_docs)] + clockExtension(clockExtensionCall), + #[allow(missing_docs)] + closeGame(closeGameCall), + #[allow(missing_docs)] + createdAt(createdAtCall), + #[allow(missing_docs)] + credit(creditCall), + #[allow(missing_docs)] + defend(defendCall), + #[allow(missing_docs)] + extraData(extraDataCall), + #[allow(missing_docs)] + gameCreator(gameCreatorCall), + #[allow(missing_docs)] + gameData(gameDataCall), + #[allow(missing_docs)] + gameType(gameTypeCall), + #[allow(missing_docs)] + getChallengerDuration(getChallengerDurationCall), + #[allow(missing_docs)] + getNumToResolve(getNumToResolveCall), + #[allow(missing_docs)] + getRequiredBond(getRequiredBondCall), + #[allow(missing_docs)] + hasUnlockedCredit(hasUnlockedCreditCall), + #[allow(missing_docs)] + initialize(initializeCall), + #[allow(missing_docs)] + l1Head(l1HeadCall), + #[allow(missing_docs)] + l2BlockNumber(l2BlockNumberCall), + #[allow(missing_docs)] + l2BlockNumberChallenged(l2BlockNumberChallengedCall), + #[allow(missing_docs)] + l2BlockNumberChallenger(l2BlockNumberChallengerCall), + #[allow(missing_docs)] + l2ChainId(l2ChainIdCall), + #[allow(missing_docs)] + l2SequenceNumber(l2SequenceNumberCall), + #[allow(missing_docs)] + maxClockDuration(maxClockDurationCall), + #[allow(missing_docs)] + maxGameDepth(maxGameDepthCall), + #[allow(missing_docs)] + r#move(moveCall), + #[allow(missing_docs)] + normalModeCredit(normalModeCreditCall), + #[allow(missing_docs)] + refundModeCredit(refundModeCreditCall), + #[allow(missing_docs)] + resolutionCheckpoints(resolutionCheckpointsCall), + #[allow(missing_docs)] + resolve(resolveCall), + #[allow(missing_docs)] + resolveClaim(resolveClaimCall), + #[allow(missing_docs)] + resolvedAt(resolvedAtCall), + #[allow(missing_docs)] + resolvedSubgames(resolvedSubgamesCall), + #[allow(missing_docs)] + rootClaim(rootClaimCall), + #[allow(missing_docs)] + splitDepth(splitDepthCall), + #[allow(missing_docs)] + startingBlockNumber(startingBlockNumberCall), + #[allow(missing_docs)] + startingOutputRoot(startingOutputRootCall), + #[allow(missing_docs)] + startingRootHash(startingRootHashCall), + #[allow(missing_docs)] + status(statusCall), + #[allow(missing_docs)] + step(stepCall), + #[allow(missing_docs)] + subgames(subgamesCall), + #[allow(missing_docs)] + version(versionCall), + #[allow(missing_docs)] + vm(vmCall), + #[allow(missing_docs)] + wasRespectedGameTypeWhenCreated(wasRespectedGameTypeWhenCreatedCall), + #[allow(missing_docs)] + weth(wethCall), + } + impl FaultDisputeGameCalls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [1u8, 147u8, 81u8, 48u8], + [3u8, 194u8, 146u8, 77u8], + [25u8, 239u8, 254u8, 180u8], + [32u8, 13u8, 46u8, 210u8], + [34u8, 42u8, 191u8, 69u8], + [37u8, 14u8, 105u8, 189u8], + [37u8, 252u8, 42u8, 206u8], + [40u8, 16u8, 225u8, 214u8], + [42u8, 214u8, 154u8, 235u8], + [48u8, 219u8, 229u8, 112u8], + [55u8, 141u8, 212u8, 140u8], + [55u8, 177u8, 178u8, 41u8], + [58u8, 118u8, 132u8, 99u8], + [62u8, 58u8, 201u8, 18u8], + [63u8, 200u8, 206u8, 243u8], + [71u8, 39u8, 119u8, 198u8], + [82u8, 157u8, 106u8, 140u8], + [84u8, 253u8, 77u8, 80u8], + [87u8, 218u8, 149u8, 14u8], + [90u8, 95u8, 162u8, 217u8], + [92u8, 12u8, 186u8, 51u8], + [96u8, 157u8, 51u8, 52u8], + [96u8, 226u8, 116u8, 100u8], + [99u8, 97u8, 80u8, 109u8], + [107u8, 103u8, 22u8, 192u8], + [111u8, 3u8, 68u8, 9u8], + [112u8, 135u8, 42u8, 165u8], + [120u8, 107u8, 132u8, 75u8], + [123u8, 15u8, 10u8, 220u8], + [129u8, 41u8, 252u8, 28u8], + [137u8, 128u8, 224u8, 204u8], + [139u8, 133u8, 144u8, 43u8], + [141u8, 69u8, 10u8, 149u8], + [153u8, 115u8, 94u8, 50u8], + [164u8, 69u8, 236u8, 230u8], + [187u8, 220u8, 2u8, 219u8], + [188u8, 239u8, 59u8, 85u8], + [189u8, 141u8, 169u8, 86u8], + [192u8, 216u8, 187u8, 116u8], + [195u8, 149u8, 225u8, 202u8], + [198u8, 240u8, 48u8, 140u8], + [207u8, 9u8, 224u8, 208u8], + [213u8, 212u8, 77u8, 128u8], + [214u8, 174u8, 60u8, 213u8], + [216u8, 204u8, 26u8, 60u8], + [218u8, 189u8, 57u8, 109u8], + [236u8, 94u8, 99u8, 8u8], + [239u8, 240u8, 245u8, 146u8], + [248u8, 244u8, 63u8, 246u8], + [250u8, 36u8, 247u8, 67u8], + [250u8, 49u8, 90u8, 169u8], + [254u8, 43u8, 190u8, 178u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(challengeRootL2Block), + ::core::stringify!(resolveClaim), + ::core::stringify!(resolvedAt), + ::core::stringify!(status), + ::core::stringify!(hasUnlockedCredit), + ::core::stringify!(wasRespectedGameTypeWhenCreated), + ::core::stringify!(startingRootHash), + ::core::stringify!(resolve), + ::core::stringify!(subgames), + ::core::stringify!(l2BlockNumberChallenger), + ::core::stringify!(bondDistributionMode), + ::core::stringify!(gameCreator), + ::core::stringify!(vm), + ::core::stringify!(l2BlockNumberChallenged), + ::core::stringify!(weth), + ::core::stringify!(attack), + ::core::stringify!(normalModeCredit), + ::core::stringify!(version), + ::core::stringify!(startingOutputRoot), + ::core::stringify!(getNumToResolve), + ::core::stringify!(anchorStateRegistry), + ::core::stringify!(extraData), + ::core::stringify!(claimCredit), + ::core::stringify!(l1Head), + ::core::stringify!(clockExtension), + ::core::stringify!(r#move), + ::core::stringify!(startingBlockNumber), + ::core::stringify!(closeGame), + ::core::stringify!(defend), + ::core::stringify!(initialize), + ::core::stringify!(claimDataLen), + ::core::stringify!(l2BlockNumber), + ::core::stringify!(absolutePrestate), + ::core::stringify!(l2SequenceNumber), + ::core::stringify!(resolutionCheckpoints), + ::core::stringify!(gameType), + ::core::stringify!(rootClaim), + ::core::stringify!(getChallengerDuration), + ::core::stringify!(refundModeCredit), + ::core::stringify!(getRequiredBond), + ::core::stringify!(claimData), + ::core::stringify!(createdAt), + ::core::stringify!(credit), + ::core::stringify!(l2ChainId), + ::core::stringify!(step), + ::core::stringify!(maxClockDuration), + ::core::stringify!(splitDepth), + ::core::stringify!(claims), + ::core::stringify!(addLocalData), + ::core::stringify!(gameData), + ::core::stringify!(maxGameDepth), + ::core::stringify!(resolvedSubgames), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for FaultDisputeGameCalls { + const NAME: &'static str = "FaultDisputeGameCalls"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 52usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::absolutePrestate(_) => { + ::SELECTOR + } + Self::addLocalData(_) => { + ::SELECTOR + } + Self::anchorStateRegistry(_) => { + ::SELECTOR + } + Self::attack(_) => ::SELECTOR, + Self::bondDistributionMode(_) => { + ::SELECTOR + } + Self::challengeRootL2Block(_) => { + ::SELECTOR + } + Self::claimCredit(_) => { + ::SELECTOR + } + Self::claimData(_) => { + ::SELECTOR + } + Self::claimDataLen(_) => { + ::SELECTOR + } + Self::claims(_) => ::SELECTOR, + Self::clockExtension(_) => { + ::SELECTOR + } + Self::closeGame(_) => { + ::SELECTOR + } + Self::createdAt(_) => { + ::SELECTOR + } + Self::credit(_) => ::SELECTOR, + Self::defend(_) => ::SELECTOR, + Self::extraData(_) => { + ::SELECTOR + } + Self::gameCreator(_) => { + ::SELECTOR + } + Self::gameData(_) => ::SELECTOR, + Self::gameType(_) => ::SELECTOR, + Self::getChallengerDuration(_) => { + ::SELECTOR + } + Self::getNumToResolve(_) => { + ::SELECTOR + } + Self::getRequiredBond(_) => { + ::SELECTOR + } + Self::hasUnlockedCredit(_) => { + ::SELECTOR + } + Self::initialize(_) => { + ::SELECTOR + } + Self::l1Head(_) => ::SELECTOR, + Self::l2BlockNumber(_) => { + ::SELECTOR + } + Self::l2BlockNumberChallenged(_) => { + ::SELECTOR + } + Self::l2BlockNumberChallenger(_) => { + ::SELECTOR + } + Self::l2ChainId(_) => { + ::SELECTOR + } + Self::l2SequenceNumber(_) => { + ::SELECTOR + } + Self::maxClockDuration(_) => { + ::SELECTOR + } + Self::maxGameDepth(_) => { + ::SELECTOR + } + Self::r#move(_) => ::SELECTOR, + Self::normalModeCredit(_) => { + ::SELECTOR + } + Self::refundModeCredit(_) => { + ::SELECTOR + } + Self::resolutionCheckpoints(_) => { + ::SELECTOR + } + Self::resolve(_) => ::SELECTOR, + Self::resolveClaim(_) => { + ::SELECTOR + } + Self::resolvedAt(_) => { + ::SELECTOR + } + Self::resolvedSubgames(_) => { + ::SELECTOR + } + Self::rootClaim(_) => { + ::SELECTOR + } + Self::splitDepth(_) => { + ::SELECTOR + } + Self::startingBlockNumber(_) => { + ::SELECTOR + } + Self::startingOutputRoot(_) => { + ::SELECTOR + } + Self::startingRootHash(_) => { + ::SELECTOR + } + Self::status(_) => ::SELECTOR, + Self::step(_) => ::SELECTOR, + Self::subgames(_) => ::SELECTOR, + Self::version(_) => ::SELECTOR, + Self::vm(_) => ::SELECTOR, + Self::wasRespectedGameTypeWhenCreated(_) => { + ::SELECTOR + } + Self::weth(_) => ::SELECTOR, + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn challengeRootL2Block( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameCalls::challengeRootL2Block) + } + challengeRootL2Block + }, + { + fn resolveClaim( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameCalls::resolveClaim) + } + resolveClaim + }, + { + fn resolvedAt( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameCalls::resolvedAt) + } + resolvedAt + }, + { + fn status( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(FaultDisputeGameCalls::status) + } + status + }, + { + fn hasUnlockedCredit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameCalls::hasUnlockedCredit) + } + hasUnlockedCredit + }, + { + fn wasRespectedGameTypeWhenCreated( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameCalls::wasRespectedGameTypeWhenCreated) + } + wasRespectedGameTypeWhenCreated + }, + { + fn startingRootHash( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameCalls::startingRootHash) + } + startingRootHash + }, + { + fn resolve( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(FaultDisputeGameCalls::resolve) + } + resolve + }, + { + fn subgames( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(FaultDisputeGameCalls::subgames) + } + subgames + }, + { + fn l2BlockNumberChallenger( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameCalls::l2BlockNumberChallenger) + } + l2BlockNumberChallenger + }, + { + fn bondDistributionMode( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameCalls::bondDistributionMode) + } + bondDistributionMode + }, + { + fn gameCreator( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameCalls::gameCreator) + } + gameCreator + }, + { + fn vm( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(FaultDisputeGameCalls::vm) + } + vm + }, + { + fn l2BlockNumberChallenged( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameCalls::l2BlockNumberChallenged) + } + l2BlockNumberChallenged + }, + { + fn weth( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(FaultDisputeGameCalls::weth) + } + weth + }, + { + fn attack( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(FaultDisputeGameCalls::attack) + } + attack + }, + { + fn normalModeCredit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameCalls::normalModeCredit) + } + normalModeCredit + }, + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(FaultDisputeGameCalls::version) + } + version + }, + { + fn startingOutputRoot( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameCalls::startingOutputRoot) + } + startingOutputRoot + }, + { + fn getNumToResolve( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameCalls::getNumToResolve) + } + getNumToResolve + }, + { + fn anchorStateRegistry( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameCalls::anchorStateRegistry) + } + anchorStateRegistry + }, + { + fn extraData( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(FaultDisputeGameCalls::extraData) + } + extraData + }, + { + fn claimCredit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameCalls::claimCredit) + } + claimCredit + }, + { + fn l1Head( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(FaultDisputeGameCalls::l1Head) + } + l1Head + }, + { + fn clockExtension( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameCalls::clockExtension) + } + clockExtension + }, + { + fn r#move( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(FaultDisputeGameCalls::r#move) + } + r#move + }, + { + fn startingBlockNumber( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameCalls::startingBlockNumber) + } + startingBlockNumber + }, + { + fn closeGame( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(FaultDisputeGameCalls::closeGame) + } + closeGame + }, + { + fn defend( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(FaultDisputeGameCalls::defend) + } + defend + }, + { + fn initialize( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameCalls::initialize) + } + initialize + }, + { + fn claimDataLen( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameCalls::claimDataLen) + } + claimDataLen + }, + { + fn l2BlockNumber( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameCalls::l2BlockNumber) + } + l2BlockNumber + }, + { + fn absolutePrestate( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameCalls::absolutePrestate) + } + absolutePrestate + }, + { + fn l2SequenceNumber( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameCalls::l2SequenceNumber) + } + l2SequenceNumber + }, + { + fn resolutionCheckpoints( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameCalls::resolutionCheckpoints) + } + resolutionCheckpoints + }, + { + fn gameType( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(FaultDisputeGameCalls::gameType) + } + gameType + }, + { + fn rootClaim( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(FaultDisputeGameCalls::rootClaim) + } + rootClaim + }, + { + fn getChallengerDuration( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameCalls::getChallengerDuration) + } + getChallengerDuration + }, + { + fn refundModeCredit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameCalls::refundModeCredit) + } + refundModeCredit + }, + { + fn getRequiredBond( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameCalls::getRequiredBond) + } + getRequiredBond + }, + { + fn claimData( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(FaultDisputeGameCalls::claimData) + } + claimData + }, + { + fn createdAt( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(FaultDisputeGameCalls::createdAt) + } + createdAt + }, + { + fn credit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(FaultDisputeGameCalls::credit) + } + credit + }, + { + fn l2ChainId( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(FaultDisputeGameCalls::l2ChainId) + } + l2ChainId + }, + { + fn step( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(FaultDisputeGameCalls::step) + } + step + }, + { + fn maxClockDuration( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameCalls::maxClockDuration) + } + maxClockDuration + }, + { + fn splitDepth( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameCalls::splitDepth) + } + splitDepth + }, + { + fn claims( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(FaultDisputeGameCalls::claims) + } + claims + }, + { + fn addLocalData( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameCalls::addLocalData) + } + addLocalData + }, + { + fn gameData( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(FaultDisputeGameCalls::gameData) + } + gameData + }, + { + fn maxGameDepth( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameCalls::maxGameDepth) + } + maxGameDepth + }, + { + fn resolvedSubgames( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameCalls::resolvedSubgames) + } + resolvedSubgames + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn challengeRootL2Block( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameCalls::challengeRootL2Block) + } + challengeRootL2Block + }, + { + fn resolveClaim( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameCalls::resolveClaim) + } + resolveClaim + }, + { + fn resolvedAt( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameCalls::resolvedAt) + } + resolvedAt + }, + { + fn status( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameCalls::status) + } + status + }, + { + fn hasUnlockedCredit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameCalls::hasUnlockedCredit) + } + hasUnlockedCredit + }, + { + fn wasRespectedGameTypeWhenCreated( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameCalls::wasRespectedGameTypeWhenCreated) + } + wasRespectedGameTypeWhenCreated + }, + { + fn startingRootHash( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameCalls::startingRootHash) + } + startingRootHash + }, + { + fn resolve( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameCalls::resolve) + } + resolve + }, + { + fn subgames( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameCalls::subgames) + } + subgames + }, + { + fn l2BlockNumberChallenger( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameCalls::l2BlockNumberChallenger) + } + l2BlockNumberChallenger + }, + { + fn bondDistributionMode( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameCalls::bondDistributionMode) + } + bondDistributionMode + }, + { + fn gameCreator( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameCalls::gameCreator) + } + gameCreator + }, + { + fn vm( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameCalls::vm) + } + vm + }, + { + fn l2BlockNumberChallenged( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameCalls::l2BlockNumberChallenged) + } + l2BlockNumberChallenged + }, + { + fn weth( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameCalls::weth) + } + weth + }, + { + fn attack( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameCalls::attack) + } + attack + }, + { + fn normalModeCredit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameCalls::normalModeCredit) + } + normalModeCredit + }, + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameCalls::version) + } + version + }, + { + fn startingOutputRoot( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameCalls::startingOutputRoot) + } + startingOutputRoot + }, + { + fn getNumToResolve( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameCalls::getNumToResolve) + } + getNumToResolve + }, + { + fn anchorStateRegistry( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameCalls::anchorStateRegistry) + } + anchorStateRegistry + }, + { + fn extraData( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameCalls::extraData) + } + extraData + }, + { + fn claimCredit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameCalls::claimCredit) + } + claimCredit + }, + { + fn l1Head( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameCalls::l1Head) + } + l1Head + }, + { + fn clockExtension( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameCalls::clockExtension) + } + clockExtension + }, + { + fn r#move( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameCalls::r#move) + } + r#move + }, + { + fn startingBlockNumber( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameCalls::startingBlockNumber) + } + startingBlockNumber + }, + { + fn closeGame( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameCalls::closeGame) + } + closeGame + }, + { + fn defend( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameCalls::defend) + } + defend + }, + { + fn initialize( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameCalls::initialize) + } + initialize + }, + { + fn claimDataLen( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameCalls::claimDataLen) + } + claimDataLen + }, + { + fn l2BlockNumber( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameCalls::l2BlockNumber) + } + l2BlockNumber + }, + { + fn absolutePrestate( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameCalls::absolutePrestate) + } + absolutePrestate + }, + { + fn l2SequenceNumber( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameCalls::l2SequenceNumber) + } + l2SequenceNumber + }, + { + fn resolutionCheckpoints( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameCalls::resolutionCheckpoints) + } + resolutionCheckpoints + }, + { + fn gameType( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameCalls::gameType) + } + gameType + }, + { + fn rootClaim( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameCalls::rootClaim) + } + rootClaim + }, + { + fn getChallengerDuration( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameCalls::getChallengerDuration) + } + getChallengerDuration + }, + { + fn refundModeCredit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameCalls::refundModeCredit) + } + refundModeCredit + }, + { + fn getRequiredBond( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameCalls::getRequiredBond) + } + getRequiredBond + }, + { + fn claimData( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameCalls::claimData) + } + claimData + }, + { + fn createdAt( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameCalls::createdAt) + } + createdAt + }, + { + fn credit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameCalls::credit) + } + credit + }, + { + fn l2ChainId( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameCalls::l2ChainId) + } + l2ChainId + }, + { + fn step( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameCalls::step) + } + step + }, + { + fn maxClockDuration( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameCalls::maxClockDuration) + } + maxClockDuration + }, + { + fn splitDepth( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameCalls::splitDepth) + } + splitDepth + }, + { + fn claims( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameCalls::claims) + } + claims + }, + { + fn addLocalData( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameCalls::addLocalData) + } + addLocalData + }, + { + fn gameData( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameCalls::gameData) + } + gameData + }, + { + fn maxGameDepth( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameCalls::maxGameDepth) + } + maxGameDepth + }, + { + fn resolvedSubgames( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameCalls::resolvedSubgames) + } + resolvedSubgames + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::absolutePrestate(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::addLocalData(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::anchorStateRegistry(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::attack(inner) => { + ::abi_encoded_size(inner) + } + Self::bondDistributionMode(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::challengeRootL2Block(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::claimCredit(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::claimData(inner) => { + ::abi_encoded_size(inner) + } + Self::claimDataLen(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::claims(inner) => { + ::abi_encoded_size(inner) + } + Self::clockExtension(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::closeGame(inner) => { + ::abi_encoded_size(inner) + } + Self::createdAt(inner) => { + ::abi_encoded_size(inner) + } + Self::credit(inner) => { + ::abi_encoded_size(inner) + } + Self::defend(inner) => { + ::abi_encoded_size(inner) + } + Self::extraData(inner) => { + ::abi_encoded_size(inner) + } + Self::gameCreator(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::gameData(inner) => { + ::abi_encoded_size(inner) + } + Self::gameType(inner) => { + ::abi_encoded_size(inner) + } + Self::getChallengerDuration(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::getNumToResolve(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::getRequiredBond(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::hasUnlockedCredit(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::initialize(inner) => { + ::abi_encoded_size(inner) + } + Self::l1Head(inner) => { + ::abi_encoded_size(inner) + } + Self::l2BlockNumber(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::l2BlockNumberChallenged(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::l2BlockNumberChallenger(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::l2ChainId(inner) => { + ::abi_encoded_size(inner) + } + Self::l2SequenceNumber(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::maxClockDuration(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::maxGameDepth(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::r#move(inner) => { + ::abi_encoded_size(inner) + } + Self::normalModeCredit(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::refundModeCredit(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::resolutionCheckpoints(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::resolve(inner) => { + ::abi_encoded_size(inner) + } + Self::resolveClaim(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::resolvedAt(inner) => { + ::abi_encoded_size(inner) + } + Self::resolvedSubgames(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::rootClaim(inner) => { + ::abi_encoded_size(inner) + } + Self::splitDepth(inner) => { + ::abi_encoded_size(inner) + } + Self::startingBlockNumber(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::startingOutputRoot(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::startingRootHash(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::status(inner) => { + ::abi_encoded_size(inner) + } + Self::step(inner) => { + ::abi_encoded_size(inner) + } + Self::subgames(inner) => { + ::abi_encoded_size(inner) + } + Self::version(inner) => { + ::abi_encoded_size(inner) + } + Self::vm(inner) => { + ::abi_encoded_size(inner) + } + Self::wasRespectedGameTypeWhenCreated(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::weth(inner) => { + ::abi_encoded_size(inner) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::absolutePrestate(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::addLocalData(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::anchorStateRegistry(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::attack(inner) => { + ::abi_encode_raw(inner, out) + } + Self::bondDistributionMode(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::challengeRootL2Block(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::claimCredit(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::claimData(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::claimDataLen(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::claims(inner) => { + ::abi_encode_raw(inner, out) + } + Self::clockExtension(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::closeGame(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::createdAt(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::credit(inner) => { + ::abi_encode_raw(inner, out) + } + Self::defend(inner) => { + ::abi_encode_raw(inner, out) + } + Self::extraData(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::gameCreator(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::gameData(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::gameType(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::getChallengerDuration(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::getNumToResolve(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::getRequiredBond(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::hasUnlockedCredit(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::initialize(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::l1Head(inner) => { + ::abi_encode_raw(inner, out) + } + Self::l2BlockNumber(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::l2BlockNumberChallenged(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::l2BlockNumberChallenger(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::l2ChainId(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::l2SequenceNumber(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::maxClockDuration(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::maxGameDepth(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::r#move(inner) => { + ::abi_encode_raw(inner, out) + } + Self::normalModeCredit(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::refundModeCredit(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::resolutionCheckpoints(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::resolve(inner) => { + ::abi_encode_raw(inner, out) + } + Self::resolveClaim(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::resolvedAt(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::resolvedSubgames(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::rootClaim(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::splitDepth(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::startingBlockNumber(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::startingOutputRoot(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::startingRootHash(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::status(inner) => { + ::abi_encode_raw(inner, out) + } + Self::step(inner) => { + ::abi_encode_raw(inner, out) + } + Self::subgames(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::version(inner) => { + ::abi_encode_raw(inner, out) + } + Self::vm(inner) => { + ::abi_encode_raw(inner, out) + } + Self::wasRespectedGameTypeWhenCreated(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::weth(inner) => { + ::abi_encode_raw(inner, out) + } + } + } + } + ///Container for all the [`FaultDisputeGame`](self) custom errors. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum FaultDisputeGameErrors { + #[allow(missing_docs)] + AlreadyInitialized(AlreadyInitialized), + #[allow(missing_docs)] + AnchorRootNotFound(AnchorRootNotFound), + #[allow(missing_docs)] + BadExtraData(BadExtraData), + #[allow(missing_docs)] + BlockNumberMatches(BlockNumberMatches), + #[allow(missing_docs)] + BondTransferFailed(BondTransferFailed), + #[allow(missing_docs)] + CannotDefendRootClaim(CannotDefendRootClaim), + #[allow(missing_docs)] + ClaimAboveSplit(ClaimAboveSplit), + #[allow(missing_docs)] + ClaimAlreadyExists(ClaimAlreadyExists), + #[allow(missing_docs)] + ClaimAlreadyResolved(ClaimAlreadyResolved), + #[allow(missing_docs)] + ClockNotExpired(ClockNotExpired), + #[allow(missing_docs)] + ClockTimeExceeded(ClockTimeExceeded), + #[allow(missing_docs)] + ContentLengthMismatch(ContentLengthMismatch), + #[allow(missing_docs)] + DuplicateStep(DuplicateStep), + #[allow(missing_docs)] + EmptyItem(EmptyItem), + #[allow(missing_docs)] + GameDepthExceeded(GameDepthExceeded), + #[allow(missing_docs)] + GameNotFinalized(GameNotFinalized), + #[allow(missing_docs)] + GameNotInProgress(GameNotInProgress), + #[allow(missing_docs)] + GameNotResolved(GameNotResolved), + #[allow(missing_docs)] + GamePaused(GamePaused), + #[allow(missing_docs)] + IncorrectBondAmount(IncorrectBondAmount), + #[allow(missing_docs)] + InvalidBondDistributionMode(InvalidBondDistributionMode), + #[allow(missing_docs)] + InvalidChallengePeriod(InvalidChallengePeriod), + #[allow(missing_docs)] + InvalidClockExtension(InvalidClockExtension), + #[allow(missing_docs)] + InvalidDataRemainder(InvalidDataRemainder), + #[allow(missing_docs)] + InvalidDisputedClaimIndex(InvalidDisputedClaimIndex), + #[allow(missing_docs)] + InvalidHeader(InvalidHeader), + #[allow(missing_docs)] + InvalidHeaderRLP(InvalidHeaderRLP), + #[allow(missing_docs)] + InvalidLocalIdent(InvalidLocalIdent), + #[allow(missing_docs)] + InvalidOutputRootProof(InvalidOutputRootProof), + #[allow(missing_docs)] + InvalidParent(InvalidParent), + #[allow(missing_docs)] + InvalidPrestate(InvalidPrestate), + #[allow(missing_docs)] + InvalidSplitDepth(InvalidSplitDepth), + #[allow(missing_docs)] + L2BlockNumberChallenged(L2BlockNumberChallenged), + #[allow(missing_docs)] + MaxDepthTooLarge(MaxDepthTooLarge), + #[allow(missing_docs)] + NoCreditToClaim(NoCreditToClaim), + #[allow(missing_docs)] + OutOfOrderResolution(OutOfOrderResolution), + #[allow(missing_docs)] + ReservedGameType(ReservedGameType), + #[allow(missing_docs)] + UnexpectedList(UnexpectedList), + #[allow(missing_docs)] + UnexpectedRootClaim(UnexpectedRootClaim), + #[allow(missing_docs)] + UnexpectedString(UnexpectedString), + #[allow(missing_docs)] + ValidStep(ValidStep), + } + impl FaultDisputeGameErrors { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [7u8, 138u8, 61u8, 244u8], + [13u8, 193u8, 73u8, 240u8], + [14u8, 162u8, 231u8, 82u8], + [23u8, 191u8, 229u8, 247u8], + [31u8, 249u8, 178u8, 228u8], + [48u8, 20u8, 3u8, 50u8], + [51u8, 129u8, 209u8, 20u8], + [55u8, 154u8, 126u8, 217u8], + [57u8, 246u8, 139u8, 56u8], + [72u8, 81u8, 189u8, 155u8], + [75u8, 156u8, 106u8, 190u8], + [86u8, 245u8, 123u8, 43u8], + [90u8, 180u8, 88u8, 251u8], + [92u8, 85u8, 55u8, 184u8], + [95u8, 83u8, 221u8, 152u8], + [102u8, 201u8, 68u8, 133u8], + [103u8, 254u8, 25u8, 80u8], + [105u8, 101u8, 80u8, 255u8], + [106u8, 107u8, 195u8, 178u8], + [119u8, 223u8, 227u8, 50u8], + [128u8, 73u8, 126u8, 59u8], + [131u8, 230u8, 204u8, 107u8], + [134u8, 32u8, 170u8, 25u8], + [141u8, 119u8, 236u8, 172u8], + [144u8, 113u8, 230u8, 175u8], + [152u8, 36u8, 189u8, 171u8], + [154u8, 7u8, 102u8, 70u8], + [156u8, 192u8, 11u8, 91u8], + [164u8, 38u8, 55u8, 188u8], + [179u8, 75u8, 92u8, 34u8], + [180u8, 225u8, 36u8, 51u8], + [184u8, 237u8, 136u8, 48u8], + [186u8, 187u8, 1u8, 221u8], + [193u8, 5u8, 38u8, 10u8], + [216u8, 29u8, 88u8, 59u8], + [230u8, 44u8, 207u8, 57u8], + [241u8, 169u8, 69u8, 129u8], + [242u8, 68u8, 11u8, 83u8], + [244u8, 2u8, 57u8, 219u8], + [251u8, 78u8, 64u8, 221u8], + [255u8, 19u8, 126u8, 101u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(InvalidBondDistributionMode), + ::core::stringify!(AlreadyInitialized), + ::core::stringify!(L2BlockNumberChallenged), + ::core::stringify!(NoCreditToClaim), + ::core::stringify!(UnexpectedList), + ::core::stringify!(InvalidDisputedClaimIndex), + ::core::stringify!(ClockTimeExceeded), + ::core::stringify!(GamePaused), + ::core::stringify!(ReservedGameType), + ::core::stringify!(GameNotFinalized), + ::core::stringify!(UnexpectedString), + ::core::stringify!(GameDepthExceeded), + ::core::stringify!(EmptyItem), + ::core::stringify!(InvalidDataRemainder), + ::core::stringify!(InvalidParent), + ::core::stringify!(ContentLengthMismatch), + ::core::stringify!(GameNotInProgress), + ::core::stringify!(InvalidPrestate), + ::core::stringify!(AnchorRootNotFound), + ::core::stringify!(MaxDepthTooLarge), + ::core::stringify!(ClaimAlreadyExists), + ::core::stringify!(BondTransferFailed), + ::core::stringify!(IncorrectBondAmount), + ::core::stringify!(InvalidClockExtension), + ::core::stringify!(DuplicateStep), + ::core::stringify!(BadExtraData), + ::core::stringify!(OutOfOrderResolution), + ::core::stringify!(InvalidOutputRootProof), + ::core::stringify!(CannotDefendRootClaim), + ::core::stringify!(ClaimAboveSplit), + ::core::stringify!(InvalidChallengePeriod), + ::core::stringify!(BlockNumberMatches), + ::core::stringify!(InvalidHeader), + ::core::stringify!(GameNotResolved), + ::core::stringify!(InvalidHeaderRLP), + ::core::stringify!(InvalidSplitDepth), + ::core::stringify!(ClaimAlreadyResolved), + ::core::stringify!(ClockNotExpired), + ::core::stringify!(UnexpectedRootClaim), + ::core::stringify!(ValidStep), + ::core::stringify!(InvalidLocalIdent), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for FaultDisputeGameErrors { + const NAME: &'static str = "FaultDisputeGameErrors"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 41usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::AlreadyInitialized(_) => { + ::SELECTOR + } + Self::AnchorRootNotFound(_) => { + ::SELECTOR + } + Self::BadExtraData(_) => { + ::SELECTOR + } + Self::BlockNumberMatches(_) => { + ::SELECTOR + } + Self::BondTransferFailed(_) => { + ::SELECTOR + } + Self::CannotDefendRootClaim(_) => { + ::SELECTOR + } + Self::ClaimAboveSplit(_) => { + ::SELECTOR + } + Self::ClaimAlreadyExists(_) => { + ::SELECTOR + } + Self::ClaimAlreadyResolved(_) => { + ::SELECTOR + } + Self::ClockNotExpired(_) => { + ::SELECTOR + } + Self::ClockTimeExceeded(_) => { + ::SELECTOR + } + Self::ContentLengthMismatch(_) => { + ::SELECTOR + } + Self::DuplicateStep(_) => { + ::SELECTOR + } + Self::EmptyItem(_) => ::SELECTOR, + Self::GameDepthExceeded(_) => { + ::SELECTOR + } + Self::GameNotFinalized(_) => { + ::SELECTOR + } + Self::GameNotInProgress(_) => { + ::SELECTOR + } + Self::GameNotResolved(_) => { + ::SELECTOR + } + Self::GamePaused(_) => { + ::SELECTOR + } + Self::IncorrectBondAmount(_) => { + ::SELECTOR + } + Self::InvalidBondDistributionMode(_) => { + ::SELECTOR + } + Self::InvalidChallengePeriod(_) => { + ::SELECTOR + } + Self::InvalidClockExtension(_) => { + ::SELECTOR + } + Self::InvalidDataRemainder(_) => { + ::SELECTOR + } + Self::InvalidDisputedClaimIndex(_) => { + ::SELECTOR + } + Self::InvalidHeader(_) => { + ::SELECTOR + } + Self::InvalidHeaderRLP(_) => { + ::SELECTOR + } + Self::InvalidLocalIdent(_) => { + ::SELECTOR + } + Self::InvalidOutputRootProof(_) => { + ::SELECTOR + } + Self::InvalidParent(_) => { + ::SELECTOR + } + Self::InvalidPrestate(_) => { + ::SELECTOR + } + Self::InvalidSplitDepth(_) => { + ::SELECTOR + } + Self::L2BlockNumberChallenged(_) => { + ::SELECTOR + } + Self::MaxDepthTooLarge(_) => { + ::SELECTOR + } + Self::NoCreditToClaim(_) => { + ::SELECTOR + } + Self::OutOfOrderResolution(_) => { + ::SELECTOR + } + Self::ReservedGameType(_) => { + ::SELECTOR + } + Self::UnexpectedList(_) => { + ::SELECTOR + } + Self::UnexpectedRootClaim(_) => { + ::SELECTOR + } + Self::UnexpectedString(_) => { + ::SELECTOR + } + Self::ValidStep(_) => ::SELECTOR, + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn InvalidBondDistributionMode( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameErrors::InvalidBondDistributionMode) + } + InvalidBondDistributionMode + }, + { + fn AlreadyInitialized( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameErrors::AlreadyInitialized) + } + AlreadyInitialized + }, + { + fn L2BlockNumberChallenged( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameErrors::L2BlockNumberChallenged) + } + L2BlockNumberChallenged + }, + { + fn NoCreditToClaim( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameErrors::NoCreditToClaim) + } + NoCreditToClaim + }, + { + fn UnexpectedList( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameErrors::UnexpectedList) + } + UnexpectedList + }, + { + fn InvalidDisputedClaimIndex( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameErrors::InvalidDisputedClaimIndex) + } + InvalidDisputedClaimIndex + }, + { + fn ClockTimeExceeded( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameErrors::ClockTimeExceeded) + } + ClockTimeExceeded + }, + { + fn GamePaused( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(FaultDisputeGameErrors::GamePaused) + } + GamePaused + }, + { + fn ReservedGameType( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameErrors::ReservedGameType) + } + ReservedGameType + }, + { + fn GameNotFinalized( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameErrors::GameNotFinalized) + } + GameNotFinalized + }, + { + fn UnexpectedString( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameErrors::UnexpectedString) + } + UnexpectedString + }, + { + fn GameDepthExceeded( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameErrors::GameDepthExceeded) + } + GameDepthExceeded + }, + { + fn EmptyItem( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(FaultDisputeGameErrors::EmptyItem) + } + EmptyItem + }, + { + fn InvalidDataRemainder( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameErrors::InvalidDataRemainder) + } + InvalidDataRemainder + }, + { + fn InvalidParent( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameErrors::InvalidParent) + } + InvalidParent + }, + { + fn ContentLengthMismatch( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameErrors::ContentLengthMismatch) + } + ContentLengthMismatch + }, + { + fn GameNotInProgress( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameErrors::GameNotInProgress) + } + GameNotInProgress + }, + { + fn InvalidPrestate( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameErrors::InvalidPrestate) + } + InvalidPrestate + }, + { + fn AnchorRootNotFound( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameErrors::AnchorRootNotFound) + } + AnchorRootNotFound + }, + { + fn MaxDepthTooLarge( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameErrors::MaxDepthTooLarge) + } + MaxDepthTooLarge + }, + { + fn ClaimAlreadyExists( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameErrors::ClaimAlreadyExists) + } + ClaimAlreadyExists + }, + { + fn BondTransferFailed( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameErrors::BondTransferFailed) + } + BondTransferFailed + }, + { + fn IncorrectBondAmount( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameErrors::IncorrectBondAmount) + } + IncorrectBondAmount + }, + { + fn InvalidClockExtension( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameErrors::InvalidClockExtension) + } + InvalidClockExtension + }, + { + fn DuplicateStep( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameErrors::DuplicateStep) + } + DuplicateStep + }, + { + fn BadExtraData( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(FaultDisputeGameErrors::BadExtraData) + } + BadExtraData + }, + { + fn OutOfOrderResolution( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameErrors::OutOfOrderResolution) + } + OutOfOrderResolution + }, + { + fn InvalidOutputRootProof( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameErrors::InvalidOutputRootProof) + } + InvalidOutputRootProof + }, + { + fn CannotDefendRootClaim( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameErrors::CannotDefendRootClaim) + } + CannotDefendRootClaim + }, + { + fn ClaimAboveSplit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameErrors::ClaimAboveSplit) + } + ClaimAboveSplit + }, + { + fn InvalidChallengePeriod( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameErrors::InvalidChallengePeriod) + } + InvalidChallengePeriod + }, + { + fn BlockNumberMatches( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameErrors::BlockNumberMatches) + } + BlockNumberMatches + }, + { + fn InvalidHeader( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameErrors::InvalidHeader) + } + InvalidHeader + }, + { + fn GameNotResolved( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameErrors::GameNotResolved) + } + GameNotResolved + }, + { + fn InvalidHeaderRLP( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameErrors::InvalidHeaderRLP) + } + InvalidHeaderRLP + }, + { + fn InvalidSplitDepth( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameErrors::InvalidSplitDepth) + } + InvalidSplitDepth + }, + { + fn ClaimAlreadyResolved( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameErrors::ClaimAlreadyResolved) + } + ClaimAlreadyResolved + }, + { + fn ClockNotExpired( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameErrors::ClockNotExpired) + } + ClockNotExpired + }, + { + fn UnexpectedRootClaim( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameErrors::UnexpectedRootClaim) + } + UnexpectedRootClaim + }, + { + fn ValidStep( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(FaultDisputeGameErrors::ValidStep) + } + ValidStep + }, + { + fn InvalidLocalIdent( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameErrors::InvalidLocalIdent) + } + InvalidLocalIdent + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn InvalidBondDistributionMode( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameErrors::InvalidBondDistributionMode) + } + InvalidBondDistributionMode + }, + { + fn AlreadyInitialized( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameErrors::AlreadyInitialized) + } + AlreadyInitialized + }, + { + fn L2BlockNumberChallenged( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameErrors::L2BlockNumberChallenged) + } + L2BlockNumberChallenged + }, + { + fn NoCreditToClaim( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameErrors::NoCreditToClaim) + } + NoCreditToClaim + }, + { + fn UnexpectedList( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameErrors::UnexpectedList) + } + UnexpectedList + }, + { + fn InvalidDisputedClaimIndex( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameErrors::InvalidDisputedClaimIndex) + } + InvalidDisputedClaimIndex + }, + { + fn ClockTimeExceeded( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameErrors::ClockTimeExceeded) + } + ClockTimeExceeded + }, + { + fn GamePaused( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameErrors::GamePaused) + } + GamePaused + }, + { + fn ReservedGameType( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameErrors::ReservedGameType) + } + ReservedGameType + }, + { + fn GameNotFinalized( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameErrors::GameNotFinalized) + } + GameNotFinalized + }, + { + fn UnexpectedString( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameErrors::UnexpectedString) + } + UnexpectedString + }, + { + fn GameDepthExceeded( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameErrors::GameDepthExceeded) + } + GameDepthExceeded + }, + { + fn EmptyItem( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameErrors::EmptyItem) + } + EmptyItem + }, + { + fn InvalidDataRemainder( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameErrors::InvalidDataRemainder) + } + InvalidDataRemainder + }, + { + fn InvalidParent( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameErrors::InvalidParent) + } + InvalidParent + }, + { + fn ContentLengthMismatch( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameErrors::ContentLengthMismatch) + } + ContentLengthMismatch + }, + { + fn GameNotInProgress( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameErrors::GameNotInProgress) + } + GameNotInProgress + }, + { + fn InvalidPrestate( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameErrors::InvalidPrestate) + } + InvalidPrestate + }, + { + fn AnchorRootNotFound( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameErrors::AnchorRootNotFound) + } + AnchorRootNotFound + }, + { + fn MaxDepthTooLarge( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameErrors::MaxDepthTooLarge) + } + MaxDepthTooLarge + }, + { + fn ClaimAlreadyExists( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameErrors::ClaimAlreadyExists) + } + ClaimAlreadyExists + }, + { + fn BondTransferFailed( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameErrors::BondTransferFailed) + } + BondTransferFailed + }, + { + fn IncorrectBondAmount( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameErrors::IncorrectBondAmount) + } + IncorrectBondAmount + }, + { + fn InvalidClockExtension( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameErrors::InvalidClockExtension) + } + InvalidClockExtension + }, + { + fn DuplicateStep( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameErrors::DuplicateStep) + } + DuplicateStep + }, + { + fn BadExtraData( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameErrors::BadExtraData) + } + BadExtraData + }, + { + fn OutOfOrderResolution( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameErrors::OutOfOrderResolution) + } + OutOfOrderResolution + }, + { + fn InvalidOutputRootProof( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameErrors::InvalidOutputRootProof) + } + InvalidOutputRootProof + }, + { + fn CannotDefendRootClaim( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameErrors::CannotDefendRootClaim) + } + CannotDefendRootClaim + }, + { + fn ClaimAboveSplit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameErrors::ClaimAboveSplit) + } + ClaimAboveSplit + }, + { + fn InvalidChallengePeriod( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameErrors::InvalidChallengePeriod) + } + InvalidChallengePeriod + }, + { + fn BlockNumberMatches( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameErrors::BlockNumberMatches) + } + BlockNumberMatches + }, + { + fn InvalidHeader( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameErrors::InvalidHeader) + } + InvalidHeader + }, + { + fn GameNotResolved( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameErrors::GameNotResolved) + } + GameNotResolved + }, + { + fn InvalidHeaderRLP( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameErrors::InvalidHeaderRLP) + } + InvalidHeaderRLP + }, + { + fn InvalidSplitDepth( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameErrors::InvalidSplitDepth) + } + InvalidSplitDepth + }, + { + fn ClaimAlreadyResolved( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameErrors::ClaimAlreadyResolved) + } + ClaimAlreadyResolved + }, + { + fn ClockNotExpired( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameErrors::ClockNotExpired) + } + ClockNotExpired + }, + { + fn UnexpectedRootClaim( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameErrors::UnexpectedRootClaim) + } + UnexpectedRootClaim + }, + { + fn ValidStep( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameErrors::ValidStep) + } + ValidStep + }, + { + fn InvalidLocalIdent( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameErrors::InvalidLocalIdent) + } + InvalidLocalIdent + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::AlreadyInitialized(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::AnchorRootNotFound(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::BadExtraData(inner) => { + ::abi_encoded_size(inner) + } + Self::BlockNumberMatches(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::BondTransferFailed(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::CannotDefendRootClaim(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ClaimAboveSplit(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ClaimAlreadyExists(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ClaimAlreadyResolved(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ClockNotExpired(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ClockTimeExceeded(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ContentLengthMismatch(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::DuplicateStep(inner) => { + ::abi_encoded_size(inner) + } + Self::EmptyItem(inner) => { + ::abi_encoded_size(inner) + } + Self::GameDepthExceeded(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::GameNotFinalized(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::GameNotInProgress(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::GameNotResolved(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::GamePaused(inner) => { + ::abi_encoded_size(inner) + } + Self::IncorrectBondAmount(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::InvalidBondDistributionMode(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::InvalidChallengePeriod(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::InvalidClockExtension(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::InvalidDataRemainder(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::InvalidDisputedClaimIndex(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::InvalidHeader(inner) => { + ::abi_encoded_size(inner) + } + Self::InvalidHeaderRLP(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::InvalidLocalIdent(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::InvalidOutputRootProof(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::InvalidParent(inner) => { + ::abi_encoded_size(inner) + } + Self::InvalidPrestate(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::InvalidSplitDepth(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::L2BlockNumberChallenged(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::MaxDepthTooLarge(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::NoCreditToClaim(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::OutOfOrderResolution(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ReservedGameType(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::UnexpectedList(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::UnexpectedRootClaim(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::UnexpectedString(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ValidStep(inner) => { + ::abi_encoded_size(inner) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::AlreadyInitialized(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::AnchorRootNotFound(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::BadExtraData(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::BlockNumberMatches(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::BondTransferFailed(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::CannotDefendRootClaim(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ClaimAboveSplit(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ClaimAlreadyExists(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ClaimAlreadyResolved(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ClockNotExpired(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ClockTimeExceeded(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ContentLengthMismatch(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::DuplicateStep(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::EmptyItem(inner) => { + ::abi_encode_raw(inner, out) + } + Self::GameDepthExceeded(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::GameNotFinalized(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::GameNotInProgress(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::GameNotResolved(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::GamePaused(inner) => { + ::abi_encode_raw(inner, out) + } + Self::IncorrectBondAmount(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidBondDistributionMode(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidChallengePeriod(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidClockExtension(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidDataRemainder(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidDisputedClaimIndex(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidHeader(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidHeaderRLP(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidLocalIdent(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidOutputRootProof(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidParent(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidPrestate(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidSplitDepth(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::L2BlockNumberChallenged(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::MaxDepthTooLarge(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::NoCreditToClaim(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::OutOfOrderResolution(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ReservedGameType(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::UnexpectedList(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::UnexpectedRootClaim(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::UnexpectedString(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ValidStep(inner) => { + ::abi_encode_raw(inner, out) + } + } + } + } + ///Container for all the [`FaultDisputeGame`](self) events. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum FaultDisputeGameEvents { + #[allow(missing_docs)] + GameClosed(GameClosed), + #[allow(missing_docs)] + Move(Move), + #[allow(missing_docs)] + Resolved(Resolved), + } + impl FaultDisputeGameEvents { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 32usize]] = &[ + [ + 94u8, 24u8, 111u8, 9u8, 185u8, 201u8, 52u8, 145u8, 241u8, 78u8, 39u8, + 126u8, 234u8, 127u8, 170u8, 93u8, 230u8, 162u8, 212u8, 189u8, 167u8, + 90u8, 121u8, 175u8, 122u8, 54u8, 132u8, 251u8, 251u8, 66u8, 218u8, 96u8, + ], + [ + 153u8, 8u8, 234u8, 172u8, 6u8, 69u8, 223u8, 157u8, 7u8, 4u8, 208u8, + 106u8, 220u8, 158u8, 7u8, 51u8, 124u8, 149u8, 29u8, 226u8, 240u8, 107u8, + 95u8, 40u8, 54u8, 21u8, 29u8, 72u8, 213u8, 228u8, 114u8, 47u8, + ], + [ + 155u8, 50u8, 69u8, 116u8, 14u8, 195u8, 177u8, 85u8, 9u8, 138u8, 85u8, + 190u8, 132u8, 149u8, 122u8, 77u8, 161u8, 62u8, 175u8, 127u8, 20u8, 168u8, + 188u8, 111u8, 83u8, 18u8, 108u8, 11u8, 147u8, 80u8, 242u8, 190u8, + ], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(Resolved), + ::core::stringify!(GameClosed), + ::core::stringify!(Move), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolEventInterface for FaultDisputeGameEvents { + const NAME: &'static str = "FaultDisputeGameEvents"; + const COUNT: usize = 3usize; + fn decode_raw_log( + topics: &[alloy_sol_types::Word], + data: &[u8], + ) -> alloy_sol_types::Result { + match topics.first().copied() { + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::GameClosed) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log(topics, data) + .map(Self::Move) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log(topics, data) + .map(Self::Resolved) + } + _ => { + alloy_sol_types::private::Err(alloy_sol_types::Error::InvalidLog { + name: ::NAME, + log: alloy_sol_types::private::Box::new( + alloy_sol_types::private::LogData::new_unchecked( + topics.to_vec(), + data.to_vec().into(), + ), + ), + }) + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for FaultDisputeGameEvents { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + match self { + Self::GameClosed(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::Move(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::Resolved(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + } + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + match self { + Self::GameClosed(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::Move(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::Resolved(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`FaultDisputeGame`](self) contract instance. + +See the [wrapper's documentation](`FaultDisputeGameInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> FaultDisputeGameInstance { + FaultDisputeGameInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + _params: ::RustType, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + FaultDisputeGameInstance::::deploy(__provider, _params) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + _params: ::RustType, + ) -> alloy_contract::RawCallBuilder { + FaultDisputeGameInstance::::deploy_builder(__provider, _params) + } + /**A [`FaultDisputeGame`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`FaultDisputeGame`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct FaultDisputeGameInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for FaultDisputeGameInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("FaultDisputeGameInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > FaultDisputeGameInstance { + /**Creates a new wrapper around an on-chain [`FaultDisputeGame`](self) contract instance. + +See the [wrapper's documentation](`FaultDisputeGameInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + _params: ::RustType, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider, _params); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder( + __provider: P, + _params: ::RustType, + ) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + [ + &BYTECODE[..], + &alloy_sol_types::SolConstructor::abi_encode( + &constructorCall { _params }, + )[..], + ] + .concat() + .into(), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl FaultDisputeGameInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> FaultDisputeGameInstance { + FaultDisputeGameInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > FaultDisputeGameInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`absolutePrestate`] function. + pub fn absolutePrestate( + &self, + ) -> alloy_contract::SolCallBuilder<&P, absolutePrestateCall, N> { + self.call_builder(&absolutePrestateCall) + } + ///Creates a new call builder for the [`addLocalData`] function. + pub fn addLocalData( + &self, + _ident: alloy::sol_types::private::primitives::aliases::U256, + _execLeafIdx: alloy::sol_types::private::primitives::aliases::U256, + _partOffset: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, addLocalDataCall, N> { + self.call_builder( + &addLocalDataCall { + _ident, + _execLeafIdx, + _partOffset, + }, + ) + } + ///Creates a new call builder for the [`anchorStateRegistry`] function. + pub fn anchorStateRegistry( + &self, + ) -> alloy_contract::SolCallBuilder<&P, anchorStateRegistryCall, N> { + self.call_builder(&anchorStateRegistryCall) + } + ///Creates a new call builder for the [`attack`] function. + pub fn attack( + &self, + _disputed: ::RustType, + _parentIndex: alloy::sol_types::private::primitives::aliases::U256, + _claim: ::RustType, + ) -> alloy_contract::SolCallBuilder<&P, attackCall, N> { + self.call_builder( + &attackCall { + _disputed, + _parentIndex, + _claim, + }, + ) + } + ///Creates a new call builder for the [`bondDistributionMode`] function. + pub fn bondDistributionMode( + &self, + ) -> alloy_contract::SolCallBuilder<&P, bondDistributionModeCall, N> { + self.call_builder(&bondDistributionModeCall) + } + ///Creates a new call builder for the [`challengeRootL2Block`] function. + pub fn challengeRootL2Block( + &self, + _outputRootProof: ::RustType, + _headerRLP: alloy::sol_types::private::Bytes, + ) -> alloy_contract::SolCallBuilder<&P, challengeRootL2BlockCall, N> { + self.call_builder( + &challengeRootL2BlockCall { + _outputRootProof, + _headerRLP, + }, + ) + } + ///Creates a new call builder for the [`claimCredit`] function. + pub fn claimCredit( + &self, + _recipient: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, claimCreditCall, N> { + self.call_builder(&claimCreditCall { _recipient }) + } + ///Creates a new call builder for the [`claimData`] function. + pub fn claimData( + &self, + _0: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, claimDataCall, N> { + self.call_builder(&claimDataCall(_0)) + } + ///Creates a new call builder for the [`claimDataLen`] function. + pub fn claimDataLen( + &self, + ) -> alloy_contract::SolCallBuilder<&P, claimDataLenCall, N> { + self.call_builder(&claimDataLenCall) + } + ///Creates a new call builder for the [`claims`] function. + pub fn claims( + &self, + _0: ::RustType, + ) -> alloy_contract::SolCallBuilder<&P, claimsCall, N> { + self.call_builder(&claimsCall(_0)) + } + ///Creates a new call builder for the [`clockExtension`] function. + pub fn clockExtension( + &self, + ) -> alloy_contract::SolCallBuilder<&P, clockExtensionCall, N> { + self.call_builder(&clockExtensionCall) + } + ///Creates a new call builder for the [`closeGame`] function. + pub fn closeGame(&self) -> alloy_contract::SolCallBuilder<&P, closeGameCall, N> { + self.call_builder(&closeGameCall) + } + ///Creates a new call builder for the [`createdAt`] function. + pub fn createdAt(&self) -> alloy_contract::SolCallBuilder<&P, createdAtCall, N> { + self.call_builder(&createdAtCall) + } + ///Creates a new call builder for the [`credit`] function. + pub fn credit( + &self, + _recipient: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, creditCall, N> { + self.call_builder(&creditCall { _recipient }) + } + ///Creates a new call builder for the [`defend`] function. + pub fn defend( + &self, + _disputed: ::RustType, + _parentIndex: alloy::sol_types::private::primitives::aliases::U256, + _claim: ::RustType, + ) -> alloy_contract::SolCallBuilder<&P, defendCall, N> { + self.call_builder( + &defendCall { + _disputed, + _parentIndex, + _claim, + }, + ) + } + ///Creates a new call builder for the [`extraData`] function. + pub fn extraData(&self) -> alloy_contract::SolCallBuilder<&P, extraDataCall, N> { + self.call_builder(&extraDataCall) + } + ///Creates a new call builder for the [`gameCreator`] function. + pub fn gameCreator( + &self, + ) -> alloy_contract::SolCallBuilder<&P, gameCreatorCall, N> { + self.call_builder(&gameCreatorCall) + } + ///Creates a new call builder for the [`gameData`] function. + pub fn gameData(&self) -> alloy_contract::SolCallBuilder<&P, gameDataCall, N> { + self.call_builder(&gameDataCall) + } + ///Creates a new call builder for the [`gameType`] function. + pub fn gameType(&self) -> alloy_contract::SolCallBuilder<&P, gameTypeCall, N> { + self.call_builder(&gameTypeCall) + } + ///Creates a new call builder for the [`getChallengerDuration`] function. + pub fn getChallengerDuration( + &self, + _claimIndex: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, getChallengerDurationCall, N> { + self.call_builder( + &getChallengerDurationCall { + _claimIndex, + }, + ) + } + ///Creates a new call builder for the [`getNumToResolve`] function. + pub fn getNumToResolve( + &self, + _claimIndex: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, getNumToResolveCall, N> { + self.call_builder(&getNumToResolveCall { _claimIndex }) + } + ///Creates a new call builder for the [`getRequiredBond`] function. + pub fn getRequiredBond( + &self, + _position: ::RustType, + ) -> alloy_contract::SolCallBuilder<&P, getRequiredBondCall, N> { + self.call_builder(&getRequiredBondCall { _position }) + } + ///Creates a new call builder for the [`hasUnlockedCredit`] function. + pub fn hasUnlockedCredit( + &self, + _0: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, hasUnlockedCreditCall, N> { + self.call_builder(&hasUnlockedCreditCall(_0)) + } + ///Creates a new call builder for the [`initialize`] function. + pub fn initialize( + &self, + ) -> alloy_contract::SolCallBuilder<&P, initializeCall, N> { + self.call_builder(&initializeCall) + } + ///Creates a new call builder for the [`l1Head`] function. + pub fn l1Head(&self) -> alloy_contract::SolCallBuilder<&P, l1HeadCall, N> { + self.call_builder(&l1HeadCall) + } + ///Creates a new call builder for the [`l2BlockNumber`] function. + pub fn l2BlockNumber( + &self, + ) -> alloy_contract::SolCallBuilder<&P, l2BlockNumberCall, N> { + self.call_builder(&l2BlockNumberCall) + } + ///Creates a new call builder for the [`l2BlockNumberChallenged`] function. + pub fn l2BlockNumberChallenged( + &self, + ) -> alloy_contract::SolCallBuilder<&P, l2BlockNumberChallengedCall, N> { + self.call_builder(&l2BlockNumberChallengedCall) + } + ///Creates a new call builder for the [`l2BlockNumberChallenger`] function. + pub fn l2BlockNumberChallenger( + &self, + ) -> alloy_contract::SolCallBuilder<&P, l2BlockNumberChallengerCall, N> { + self.call_builder(&l2BlockNumberChallengerCall) + } + ///Creates a new call builder for the [`l2ChainId`] function. + pub fn l2ChainId(&self) -> alloy_contract::SolCallBuilder<&P, l2ChainIdCall, N> { + self.call_builder(&l2ChainIdCall) + } + ///Creates a new call builder for the [`l2SequenceNumber`] function. + pub fn l2SequenceNumber( + &self, + ) -> alloy_contract::SolCallBuilder<&P, l2SequenceNumberCall, N> { + self.call_builder(&l2SequenceNumberCall) + } + ///Creates a new call builder for the [`maxClockDuration`] function. + pub fn maxClockDuration( + &self, + ) -> alloy_contract::SolCallBuilder<&P, maxClockDurationCall, N> { + self.call_builder(&maxClockDurationCall) + } + ///Creates a new call builder for the [`maxGameDepth`] function. + pub fn maxGameDepth( + &self, + ) -> alloy_contract::SolCallBuilder<&P, maxGameDepthCall, N> { + self.call_builder(&maxGameDepthCall) + } + ///Creates a new call builder for the [`r#move`] function. + pub fn r#move( + &self, + _disputed: ::RustType, + _challengeIndex: alloy::sol_types::private::primitives::aliases::U256, + _claim: ::RustType, + _isAttack: bool, + ) -> alloy_contract::SolCallBuilder<&P, moveCall, N> { + self.call_builder( + &moveCall { + _disputed, + _challengeIndex, + _claim, + _isAttack, + }, + ) + } + ///Creates a new call builder for the [`normalModeCredit`] function. + pub fn normalModeCredit( + &self, + _0: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, normalModeCreditCall, N> { + self.call_builder(&normalModeCreditCall(_0)) + } + ///Creates a new call builder for the [`refundModeCredit`] function. + pub fn refundModeCredit( + &self, + _0: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, refundModeCreditCall, N> { + self.call_builder(&refundModeCreditCall(_0)) + } + ///Creates a new call builder for the [`resolutionCheckpoints`] function. + pub fn resolutionCheckpoints( + &self, + _0: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, resolutionCheckpointsCall, N> { + self.call_builder(&resolutionCheckpointsCall(_0)) + } + ///Creates a new call builder for the [`resolve`] function. + pub fn resolve(&self) -> alloy_contract::SolCallBuilder<&P, resolveCall, N> { + self.call_builder(&resolveCall) + } + ///Creates a new call builder for the [`resolveClaim`] function. + pub fn resolveClaim( + &self, + _claimIndex: alloy::sol_types::private::primitives::aliases::U256, + _numToResolve: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, resolveClaimCall, N> { + self.call_builder( + &resolveClaimCall { + _claimIndex, + _numToResolve, + }, + ) + } + ///Creates a new call builder for the [`resolvedAt`] function. + pub fn resolvedAt( + &self, + ) -> alloy_contract::SolCallBuilder<&P, resolvedAtCall, N> { + self.call_builder(&resolvedAtCall) + } + ///Creates a new call builder for the [`resolvedSubgames`] function. + pub fn resolvedSubgames( + &self, + _0: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, resolvedSubgamesCall, N> { + self.call_builder(&resolvedSubgamesCall(_0)) + } + ///Creates a new call builder for the [`rootClaim`] function. + pub fn rootClaim(&self) -> alloy_contract::SolCallBuilder<&P, rootClaimCall, N> { + self.call_builder(&rootClaimCall) + } + ///Creates a new call builder for the [`splitDepth`] function. + pub fn splitDepth( + &self, + ) -> alloy_contract::SolCallBuilder<&P, splitDepthCall, N> { + self.call_builder(&splitDepthCall) + } + ///Creates a new call builder for the [`startingBlockNumber`] function. + pub fn startingBlockNumber( + &self, + ) -> alloy_contract::SolCallBuilder<&P, startingBlockNumberCall, N> { + self.call_builder(&startingBlockNumberCall) + } + ///Creates a new call builder for the [`startingOutputRoot`] function. + pub fn startingOutputRoot( + &self, + ) -> alloy_contract::SolCallBuilder<&P, startingOutputRootCall, N> { + self.call_builder(&startingOutputRootCall) + } + ///Creates a new call builder for the [`startingRootHash`] function. + pub fn startingRootHash( + &self, + ) -> alloy_contract::SolCallBuilder<&P, startingRootHashCall, N> { + self.call_builder(&startingRootHashCall) + } + ///Creates a new call builder for the [`status`] function. + pub fn status(&self) -> alloy_contract::SolCallBuilder<&P, statusCall, N> { + self.call_builder(&statusCall) + } + ///Creates a new call builder for the [`step`] function. + pub fn step( + &self, + _claimIndex: alloy::sol_types::private::primitives::aliases::U256, + _isAttack: bool, + _stateData: alloy::sol_types::private::Bytes, + _proof: alloy::sol_types::private::Bytes, + ) -> alloy_contract::SolCallBuilder<&P, stepCall, N> { + self.call_builder( + &stepCall { + _claimIndex, + _isAttack, + _stateData, + _proof, + }, + ) + } + ///Creates a new call builder for the [`subgames`] function. + pub fn subgames( + &self, + _0: alloy::sol_types::private::primitives::aliases::U256, + _1: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, subgamesCall, N> { + self.call_builder(&subgamesCall { _0, _1 }) + } + ///Creates a new call builder for the [`version`] function. + pub fn version(&self) -> alloy_contract::SolCallBuilder<&P, versionCall, N> { + self.call_builder(&versionCall) + } + ///Creates a new call builder for the [`vm`] function. + pub fn vm(&self) -> alloy_contract::SolCallBuilder<&P, vmCall, N> { + self.call_builder(&vmCall) + } + ///Creates a new call builder for the [`wasRespectedGameTypeWhenCreated`] function. + pub fn wasRespectedGameTypeWhenCreated( + &self, + ) -> alloy_contract::SolCallBuilder<&P, wasRespectedGameTypeWhenCreatedCall, N> { + self.call_builder(&wasRespectedGameTypeWhenCreatedCall) + } + ///Creates a new call builder for the [`weth`] function. + pub fn weth(&self) -> alloy_contract::SolCallBuilder<&P, wethCall, N> { + self.call_builder(&wethCall) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > FaultDisputeGameInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + ///Creates a new event filter for the [`GameClosed`] event. + pub fn GameClosed_filter(&self) -> alloy_contract::Event<&P, GameClosed, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`Move`] event. + pub fn Move_filter(&self) -> alloy_contract::Event<&P, Move, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`Resolved`] event. + pub fn Resolved_filter(&self) -> alloy_contract::Event<&P, Resolved, N> { + self.event_filter::() + } + } +} diff --git a/bindings/rust/src/fault_dispute_game_v2.rs b/bindings/rust/src/fault_dispute_game_v2.rs new file mode 100644 index 000000000..23bcf3999 --- /dev/null +++ b/bindings/rust/src/fault_dispute_game_v2.rs @@ -0,0 +1,19163 @@ +///Module containing a contract's types and functions. +/** + +```solidity +library Types { + struct OutputRootProof { bytes32 version; bytes32 stateRoot; bytes32 messagePasserStorageRoot; bytes32 latestBlockhash; } +} +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod Types { + use super::*; + use alloy::sol_types as alloy_sol_types; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**```solidity +struct OutputRootProof { bytes32 version; bytes32 stateRoot; bytes32 messagePasserStorageRoot; bytes32 latestBlockhash; } +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct OutputRootProof { + #[allow(missing_docs)] + pub version: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub stateRoot: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub messagePasserStorageRoot: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub latestBlockhash: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::FixedBytes<32>, + alloy::sol_types::private::FixedBytes<32>, + alloy::sol_types::private::FixedBytes<32>, + alloy::sol_types::private::FixedBytes<32>, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: OutputRootProof) -> Self { + ( + value.version, + value.stateRoot, + value.messagePasserStorageRoot, + value.latestBlockhash, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for OutputRootProof { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + version: tuple.0, + stateRoot: tuple.1, + messagePasserStorageRoot: tuple.2, + latestBlockhash: tuple.3, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolValue for OutputRootProof { + type SolType = Self; + } + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for OutputRootProof { + #[inline] + fn stv_to_tokens(&self) -> ::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.version), + as alloy_sol_types::SolType>::tokenize(&self.stateRoot), + as alloy_sol_types::SolType>::tokenize( + &self.messagePasserStorageRoot, + ), + as alloy_sol_types::SolType>::tokenize(&self.latestBlockhash), + ) + } + #[inline] + fn stv_abi_encoded_size(&self) -> usize { + if let Some(size) = ::ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encoded_size(&tuple) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + ::eip712_hash_struct(self) + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + if let Some(size) = ::PACKED_ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for OutputRootProof { + type RustType = Self; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = ::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + as alloy_sol_types::SolType>::valid_token(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + let tuple = as alloy_sol_types::SolType>::detokenize(token); + >>::from(tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolStruct for OutputRootProof { + const NAME: &'static str = "OutputRootProof"; + #[inline] + fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> { + alloy_sol_types::private::Cow::Borrowed( + "OutputRootProof(bytes32 version,bytes32 stateRoot,bytes32 messagePasserStorageRoot,bytes32 latestBlockhash)", + ) + } + #[inline] + fn eip712_components() -> alloy_sol_types::private::Vec< + alloy_sol_types::private::Cow<'static, str>, + > { + alloy_sol_types::private::Vec::new() + } + #[inline] + fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> { + ::eip712_root_type() + } + #[inline] + fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec { + [ + as alloy_sol_types::SolType>::eip712_data_word(&self.version) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.stateRoot) + .0, + as alloy_sol_types::SolType>::eip712_data_word( + &self.messagePasserStorageRoot, + ) + .0, + as alloy_sol_types::SolType>::eip712_data_word( + &self.latestBlockhash, + ) + .0, + ] + .concat() + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for OutputRootProof { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + 0usize + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.version, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.stateRoot, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.messagePasserStorageRoot, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.latestBlockhash, + ) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + out.reserve( + ::topic_preimage_length(rust), + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.version, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.stateRoot, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.messagePasserStorageRoot, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.latestBlockhash, + out, + ); + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + let mut out = alloy_sol_types::private::Vec::new(); + ::encode_topic_preimage( + rust, + &mut out, + ); + alloy_sol_types::abi::token::WordToken( + alloy_sol_types::private::keccak256(out), + ) + } + } + }; + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`Types`](self) contract instance. + +See the [wrapper's documentation](`TypesInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(address: alloy_sol_types::private::Address, __provider: P) -> TypesInstance { + TypesInstance::::new(address, __provider) + } + /**A [`Types`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`Types`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct TypesInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for TypesInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("TypesInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > TypesInstance { + /**Creates a new wrapper around an on-chain [`Types`](self) contract instance. + +See the [wrapper's documentation](`TypesInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl TypesInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> TypesInstance { + TypesInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > TypesInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > TypesInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + } +} +/** + +Generated by the following Solidity interface... +```solidity +library Types { + struct OutputRootProof { + bytes32 version; + bytes32 stateRoot; + bytes32 messagePasserStorageRoot; + bytes32 latestBlockhash; + } +} + +interface FaultDisputeGameV2 { + type BondDistributionMode is uint8; + type GameStatus is uint8; + type Claim is bytes32; + type Clock is uint128; + type Duration is uint64; + type GameType is uint32; + type Hash is bytes32; + type Position is uint128; + type Timestamp is uint64; + struct GameConstructorParams { + uint256 maxGameDepth; + uint256 splitDepth; + Duration clockExtension; + Duration maxClockDuration; + } + + error AlreadyInitialized(); + error AnchorRootNotFound(); + error BadExtraData(); + error BlockNumberMatches(); + error BondTransferFailed(); + error CannotDefendRootClaim(); + error ClaimAboveSplit(); + error ClaimAlreadyExists(); + error ClaimAlreadyResolved(); + error ClockNotExpired(); + error ClockTimeExceeded(); + error ContentLengthMismatch(); + error DuplicateStep(); + error EmptyItem(); + error GameDepthExceeded(); + error GameNotFinalized(); + error GameNotInProgress(); + error GameNotResolved(); + error GamePaused(); + error IncorrectBondAmount(); + error InvalidBondDistributionMode(); + error InvalidChallengePeriod(); + error InvalidClockExtension(); + error InvalidDataRemainder(); + error InvalidDisputedClaimIndex(); + error InvalidHeader(); + error InvalidHeaderRLP(); + error InvalidLocalIdent(); + error InvalidOutputRootProof(); + error InvalidParent(); + error InvalidPrestate(); + error InvalidSplitDepth(); + error L2BlockNumberChallenged(); + error MaxDepthTooLarge(); + error NoCreditToClaim(); + error OutOfOrderResolution(); + error UnexpectedList(); + error UnexpectedRootClaim(Claim rootClaim); + error UnexpectedString(); + error ValidStep(); + + event GameClosed(BondDistributionMode bondDistributionMode); + event Move(uint256 indexed parentIndex, Claim indexed claim, address indexed claimant); + event Resolved(GameStatus indexed status); + + constructor(GameConstructorParams _params); + + function absolutePrestate() external pure returns (Claim absolutePrestate_); + function addLocalData(uint256 _ident, uint256 _execLeafIdx, uint256 _partOffset) external; + function anchorStateRegistry() external pure returns (address registry_); + function attack(Claim _disputed, uint256 _parentIndex, Claim _claim) external payable; + function bondDistributionMode() external view returns (BondDistributionMode); + function challengeRootL2Block(Types.OutputRootProof memory _outputRootProof, bytes memory _headerRLP) external; + function claimCredit(address _recipient) external; + function claimData(uint256) external view returns (uint32 parentIndex, address counteredBy, address claimant, uint128 bond, Claim claim, Position position, Clock clock); + function claimDataLen() external view returns (uint256 len_); + function claims(Hash) external view returns (bool); + function clockExtension() external view returns (Duration clockExtension_); + function closeGame() external; + function createdAt() external view returns (Timestamp); + function credit(address _recipient) external view returns (uint256 credit_); + function defend(Claim _disputed, uint256 _parentIndex, Claim _claim) external payable; + function extraData() external pure returns (bytes memory extraData_); + function gameCreator() external pure returns (address creator_); + function gameData() external pure returns (GameType gameType_, Claim rootClaim_, bytes memory extraData_); + function gameType() external pure returns (GameType gameType_); + function getChallengerDuration(uint256 _claimIndex) external view returns (Duration duration_); + function getNumToResolve(uint256 _claimIndex) external view returns (uint256 numRemainingChildren_); + function getRequiredBond(Position _position) external view returns (uint256 requiredBond_); + function hasUnlockedCredit(address) external view returns (bool); + function initialize() external payable; + function l1Head() external pure returns (Hash l1Head_); + function l2BlockNumber() external pure returns (uint256 l2BlockNumber_); + function l2BlockNumberChallenged() external view returns (bool); + function l2BlockNumberChallenger() external view returns (address); + function l2ChainId() external pure returns (uint256 l2ChainId_); + function l2SequenceNumber() external pure returns (uint256 l2SequenceNumber_); + function maxClockDuration() external view returns (Duration maxClockDuration_); + function maxGameDepth() external view returns (uint256 maxGameDepth_); + function move(Claim _disputed, uint256 _challengeIndex, Claim _claim, bool _isAttack) external payable; + function normalModeCredit(address) external view returns (uint256); + function refundModeCredit(address) external view returns (uint256); + function resolutionCheckpoints(uint256) external view returns (bool initialCheckpointComplete, uint32 subgameIndex, Position leftmostPosition, address counteredBy); + function resolve() external returns (GameStatus status_); + function resolveClaim(uint256 _claimIndex, uint256 _numToResolve) external; + function resolvedAt() external view returns (Timestamp); + function resolvedSubgames(uint256) external view returns (bool); + function rootClaim() external pure returns (Claim rootClaim_); + function splitDepth() external view returns (uint256 splitDepth_); + function startingBlockNumber() external view returns (uint256 startingBlockNumber_); + function startingOutputRoot() external view returns (Hash root, uint256 l2SequenceNumber); + function startingRootHash() external view returns (Hash startingRootHash_); + function status() external view returns (GameStatus); + function step(uint256 _claimIndex, bool _isAttack, bytes memory _stateData, bytes memory _proof) external; + function subgames(uint256, uint256) external view returns (uint256); + function version() external pure returns (string memory); + function vm() external pure returns (address vm_); + function wasRespectedGameTypeWhenCreated() external view returns (bool); + function weth() external pure returns (address weth_); +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "constructor", + "inputs": [ + { + "name": "_params", + "type": "tuple", + "internalType": "struct FaultDisputeGameV2.GameConstructorParams", + "components": [ + { + "name": "maxGameDepth", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "splitDepth", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "clockExtension", + "type": "uint64", + "internalType": "Duration" + }, + { + "name": "maxClockDuration", + "type": "uint64", + "internalType": "Duration" + } + ] + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "absolutePrestate", + "inputs": [], + "outputs": [ + { + "name": "absolutePrestate_", + "type": "bytes32", + "internalType": "Claim" + } + ], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "addLocalData", + "inputs": [ + { + "name": "_ident", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_execLeafIdx", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_partOffset", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "anchorStateRegistry", + "inputs": [], + "outputs": [ + { + "name": "registry_", + "type": "address", + "internalType": "contract IAnchorStateRegistry" + } + ], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "attack", + "inputs": [ + { + "name": "_disputed", + "type": "bytes32", + "internalType": "Claim" + }, + { + "name": "_parentIndex", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_claim", + "type": "bytes32", + "internalType": "Claim" + } + ], + "outputs": [], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "bondDistributionMode", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint8", + "internalType": "enum BondDistributionMode" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "challengeRootL2Block", + "inputs": [ + { + "name": "_outputRootProof", + "type": "tuple", + "internalType": "struct Types.OutputRootProof", + "components": [ + { + "name": "version", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "stateRoot", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "messagePasserStorageRoot", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "latestBlockhash", + "type": "bytes32", + "internalType": "bytes32" + } + ] + }, + { + "name": "_headerRLP", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "claimCredit", + "inputs": [ + { + "name": "_recipient", + "type": "address", + "internalType": "address" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "claimData", + "inputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "parentIndex", + "type": "uint32", + "internalType": "uint32" + }, + { + "name": "counteredBy", + "type": "address", + "internalType": "address" + }, + { + "name": "claimant", + "type": "address", + "internalType": "address" + }, + { + "name": "bond", + "type": "uint128", + "internalType": "uint128" + }, + { + "name": "claim", + "type": "bytes32", + "internalType": "Claim" + }, + { + "name": "position", + "type": "uint128", + "internalType": "Position" + }, + { + "name": "clock", + "type": "uint128", + "internalType": "Clock" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "claimDataLen", + "inputs": [], + "outputs": [ + { + "name": "len_", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "claims", + "inputs": [ + { + "name": "", + "type": "bytes32", + "internalType": "Hash" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "clockExtension", + "inputs": [], + "outputs": [ + { + "name": "clockExtension_", + "type": "uint64", + "internalType": "Duration" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "closeGame", + "inputs": [], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "createdAt", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint64", + "internalType": "Timestamp" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "credit", + "inputs": [ + { + "name": "_recipient", + "type": "address", + "internalType": "address" + } + ], + "outputs": [ + { + "name": "credit_", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "defend", + "inputs": [ + { + "name": "_disputed", + "type": "bytes32", + "internalType": "Claim" + }, + { + "name": "_parentIndex", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_claim", + "type": "bytes32", + "internalType": "Claim" + } + ], + "outputs": [], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "extraData", + "inputs": [], + "outputs": [ + { + "name": "extraData_", + "type": "bytes", + "internalType": "bytes" + } + ], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "gameCreator", + "inputs": [], + "outputs": [ + { + "name": "creator_", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "gameData", + "inputs": [], + "outputs": [ + { + "name": "gameType_", + "type": "uint32", + "internalType": "GameType" + }, + { + "name": "rootClaim_", + "type": "bytes32", + "internalType": "Claim" + }, + { + "name": "extraData_", + "type": "bytes", + "internalType": "bytes" + } + ], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "gameType", + "inputs": [], + "outputs": [ + { + "name": "gameType_", + "type": "uint32", + "internalType": "GameType" + } + ], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "getChallengerDuration", + "inputs": [ + { + "name": "_claimIndex", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "duration_", + "type": "uint64", + "internalType": "Duration" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "getNumToResolve", + "inputs": [ + { + "name": "_claimIndex", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "numRemainingChildren_", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "getRequiredBond", + "inputs": [ + { + "name": "_position", + "type": "uint128", + "internalType": "Position" + } + ], + "outputs": [ + { + "name": "requiredBond_", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "hasUnlockedCredit", + "inputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "initialize", + "inputs": [], + "outputs": [], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "l1Head", + "inputs": [], + "outputs": [ + { + "name": "l1Head_", + "type": "bytes32", + "internalType": "Hash" + } + ], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "l2BlockNumber", + "inputs": [], + "outputs": [ + { + "name": "l2BlockNumber_", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "l2BlockNumberChallenged", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "l2BlockNumberChallenger", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "l2ChainId", + "inputs": [], + "outputs": [ + { + "name": "l2ChainId_", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "l2SequenceNumber", + "inputs": [], + "outputs": [ + { + "name": "l2SequenceNumber_", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "maxClockDuration", + "inputs": [], + "outputs": [ + { + "name": "maxClockDuration_", + "type": "uint64", + "internalType": "Duration" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "maxGameDepth", + "inputs": [], + "outputs": [ + { + "name": "maxGameDepth_", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "move", + "inputs": [ + { + "name": "_disputed", + "type": "bytes32", + "internalType": "Claim" + }, + { + "name": "_challengeIndex", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_claim", + "type": "bytes32", + "internalType": "Claim" + }, + { + "name": "_isAttack", + "type": "bool", + "internalType": "bool" + } + ], + "outputs": [], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "normalModeCredit", + "inputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "refundModeCredit", + "inputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "resolutionCheckpoints", + "inputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "initialCheckpointComplete", + "type": "bool", + "internalType": "bool" + }, + { + "name": "subgameIndex", + "type": "uint32", + "internalType": "uint32" + }, + { + "name": "leftmostPosition", + "type": "uint128", + "internalType": "Position" + }, + { + "name": "counteredBy", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "resolve", + "inputs": [], + "outputs": [ + { + "name": "status_", + "type": "uint8", + "internalType": "enum GameStatus" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "resolveClaim", + "inputs": [ + { + "name": "_claimIndex", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_numToResolve", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "resolvedAt", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint64", + "internalType": "Timestamp" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "resolvedSubgames", + "inputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "rootClaim", + "inputs": [], + "outputs": [ + { + "name": "rootClaim_", + "type": "bytes32", + "internalType": "Claim" + } + ], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "splitDepth", + "inputs": [], + "outputs": [ + { + "name": "splitDepth_", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "startingBlockNumber", + "inputs": [], + "outputs": [ + { + "name": "startingBlockNumber_", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "startingOutputRoot", + "inputs": [], + "outputs": [ + { + "name": "root", + "type": "bytes32", + "internalType": "Hash" + }, + { + "name": "l2SequenceNumber", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "startingRootHash", + "inputs": [], + "outputs": [ + { + "name": "startingRootHash_", + "type": "bytes32", + "internalType": "Hash" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "status", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint8", + "internalType": "enum GameStatus" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "step", + "inputs": [ + { + "name": "_claimIndex", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_isAttack", + "type": "bool", + "internalType": "bool" + }, + { + "name": "_stateData", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "_proof", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "subgames", + "inputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "version", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "vm", + "inputs": [], + "outputs": [ + { + "name": "vm_", + "type": "address", + "internalType": "contract IBigStepper" + } + ], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "wasRespectedGameTypeWhenCreated", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "weth", + "inputs": [], + "outputs": [ + { + "name": "weth_", + "type": "address", + "internalType": "contract IDelayedWETH" + } + ], + "stateMutability": "pure" + }, + { + "type": "event", + "name": "GameClosed", + "inputs": [ + { + "name": "bondDistributionMode", + "type": "uint8", + "indexed": false, + "internalType": "enum BondDistributionMode" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "Move", + "inputs": [ + { + "name": "parentIndex", + "type": "uint256", + "indexed": true, + "internalType": "uint256" + }, + { + "name": "claim", + "type": "bytes32", + "indexed": true, + "internalType": "Claim" + }, + { + "name": "claimant", + "type": "address", + "indexed": true, + "internalType": "address" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "Resolved", + "inputs": [ + { + "name": "status", + "type": "uint8", + "indexed": true, + "internalType": "enum GameStatus" + } + ], + "anonymous": false + }, + { + "type": "error", + "name": "AlreadyInitialized", + "inputs": [] + }, + { + "type": "error", + "name": "AnchorRootNotFound", + "inputs": [] + }, + { + "type": "error", + "name": "BadExtraData", + "inputs": [] + }, + { + "type": "error", + "name": "BlockNumberMatches", + "inputs": [] + }, + { + "type": "error", + "name": "BondTransferFailed", + "inputs": [] + }, + { + "type": "error", + "name": "CannotDefendRootClaim", + "inputs": [] + }, + { + "type": "error", + "name": "ClaimAboveSplit", + "inputs": [] + }, + { + "type": "error", + "name": "ClaimAlreadyExists", + "inputs": [] + }, + { + "type": "error", + "name": "ClaimAlreadyResolved", + "inputs": [] + }, + { + "type": "error", + "name": "ClockNotExpired", + "inputs": [] + }, + { + "type": "error", + "name": "ClockTimeExceeded", + "inputs": [] + }, + { + "type": "error", + "name": "ContentLengthMismatch", + "inputs": [] + }, + { + "type": "error", + "name": "DuplicateStep", + "inputs": [] + }, + { + "type": "error", + "name": "EmptyItem", + "inputs": [] + }, + { + "type": "error", + "name": "GameDepthExceeded", + "inputs": [] + }, + { + "type": "error", + "name": "GameNotFinalized", + "inputs": [] + }, + { + "type": "error", + "name": "GameNotInProgress", + "inputs": [] + }, + { + "type": "error", + "name": "GameNotResolved", + "inputs": [] + }, + { + "type": "error", + "name": "GamePaused", + "inputs": [] + }, + { + "type": "error", + "name": "IncorrectBondAmount", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidBondDistributionMode", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidChallengePeriod", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidClockExtension", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidDataRemainder", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidDisputedClaimIndex", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidHeader", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidHeaderRLP", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidLocalIdent", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidOutputRootProof", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidParent", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidPrestate", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidSplitDepth", + "inputs": [] + }, + { + "type": "error", + "name": "L2BlockNumberChallenged", + "inputs": [] + }, + { + "type": "error", + "name": "MaxDepthTooLarge", + "inputs": [] + }, + { + "type": "error", + "name": "NoCreditToClaim", + "inputs": [] + }, + { + "type": "error", + "name": "OutOfOrderResolution", + "inputs": [] + }, + { + "type": "error", + "name": "UnexpectedList", + "inputs": [] + }, + { + "type": "error", + "name": "UnexpectedRootClaim", + "inputs": [ + { + "name": "rootClaim", + "type": "bytes32", + "internalType": "Claim" + } + ] + }, + { + "type": "error", + "name": "UnexpectedString", + "inputs": [] + }, + { + "type": "error", + "name": "ValidStep", + "inputs": [] + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod FaultDisputeGameV2 { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x6101006040523480156200001257600080fd5b5060405162006026380380620060268339810160408190526200003591620001e5565b620000436001607e6200027f565b60ff16816000015111156200006b57604051633beff19960e11b815260040160405180910390fd5b60001981602001511480620000925750805160208201516200008f906001620002a5565b10155b15620000b15760405163e62ccf3960e01b815260040160405180910390fd5b600281602001511015620000d85760405163e62ccf3960e01b815260040160405180910390fd5b6000620000fd82604001516001600160401b0316620001c560201b62000c101760201c565b62000113906001600160401b03166002620002c0565b90506001600160401b038111156200013e5760405163235dfb2b60e21b815260040160405180910390fd5b6200016182606001516001600160401b0316620001c560201b62000c101760201c565b6001600160401b0316816001600160401b03161115620001945760405163235dfb2b60e21b815260040160405180910390fd5b508051608052602081015160a05260408101516001600160401b0390811660e0526060909101511660c052620002e2565b90565b80516001600160401b0381168114620001e057600080fd5b919050565b600060808284031215620001f857600080fd5b604051608081016001600160401b03811182821017156200022957634e487b7160e01b600052604160045260246000fd5b806040525082518152602083015160208201526200024a60408401620001c8565b60408201526200025d60608401620001c8565b60608201529392505050565b634e487b7160e01b600052601160045260246000fd5b600060ff821660ff8416808210156200029c576200029c62000269565b90039392505050565b60008219821115620002bb57620002bb62000269565b500190565b6000816000190483118215151615620002dd57620002dd62000269565b500290565b60805160a05160c05160e051615c46620003e06000396000818161070501528181611e0701528181611e7201528181611ea5015281816129840152612a9c015260008181610a3c01528181610ea301528181611c9e01528181611ed501528181611f3401528181612b390152818161306f01526130b1015260008181610a6f01528181611ae701528181611c0d01528181611e43015281816134d001528181613a980152818161406f015281816147710152818161488d0152818161496c0152614a1f015260008181610b1601528181611bb001528181611d020152818161315d015281816131e3015281816133e801526134f10152615c466000f3fe60806040526004361061033f5760003560e01c806370872aa5116101b0578063c395e1ca116100ec578063dabd396d11610095578063f8f43ff61161006f578063f8f43ff614610ac3578063fa24f74314610ae3578063fa315aa914610b07578063fe2bbeb214610b3a57600080fd5b8063dabd396d14610a2d578063ec5e630814610a60578063eff0f59214610a9357600080fd5b8063d5d44d80116100c6578063d5d44d80146109cb578063d6ae3cd5146109eb578063d8cc1a3c14610a0d57600080fd5b8063c395e1ca14610916578063c6f0308c14610936578063cf09e0d0146109aa57600080fd5b80638d450a9511610159578063bbdc02db11610133578063bbdc02db1461087a578063bcef3b55146108a7578063bd8da956146108c9578063c0d8bb74146108e957600080fd5b80638d450a95146107b857806399735e3214610796578063a445ece6146107da57600080fd5b80638129fc1c1161018a5780638129fc1c146107795780638980e0cc146107815780638b85902b1461079657600080fd5b806370872aa51461073c578063786b844b146107515780637b0f0adc1461076657600080fd5b80633e3ac9121161027f5780635a5fa2d91161022857806360e274641161020257806360e27464146106b45780636361506d146106d45780636b6716c0146106f65780636f0344091461072957600080fd5b80635a5fa2d91461065a5780635c0cba331461067a578063609d33341461069f57600080fd5b8063529d6a8c11610259578063529d6a8c146105ae57806354fd4d50146105db57806357da950e1461062a57600080fd5b80633e3ac912146105465780633fc8cef314610576578063472777c61461059b57600080fd5b806325fc2ace116102ec57806330dbe570116102c657806330dbe570146104ad578063378dd48c146104e557806337b1b229146104ff5780633a7684631461052157600080fd5b806325fc2ace146104595780632810e1d6146104785780632ad69aeb1461048d57600080fd5b8063200d2ed21161031d578063200d2ed2146103d1578063222abf45146103ff578063250e69bd1461043f57600080fd5b8063019351301461034457806303c2924d1461036657806319effeb414610386575b600080fd5b34801561035057600080fd5b5061036461035f3660046154b6565b610b6a565b005b34801561037257600080fd5b50610364610381366004615511565b610e29565b34801561039257600080fd5b506000546103b39068010000000000000000900467ffffffffffffffff1681565b60405167ffffffffffffffff90911681526020015b60405180910390f35b3480156103dd57600080fd5b506000546103f290600160801b900460ff1681565b6040516103c8919061556a565b34801561040b57600080fd5b5061042f61041a366004615592565b600c6020526000908152604090205460ff1681565b60405190151581526020016103c8565b34801561044b57600080fd5b50600a5461042f9060ff1681565b34801561046557600080fd5b506008545b6040519081526020016103c8565b34801561048457600080fd5b506103f26113b1565b34801561049957600080fd5b5061046a6104a8366004615511565b611589565b3480156104b957600080fd5b506001546104cd906001600160a01b031681565b6040516001600160a01b0390911681526020016103c8565b3480156104f157600080fd5b50600d546103f29060ff1681565b34801561050b57600080fd5b503660011981013560f01c90033560601c6104cd565b34801561052d57600080fd5b503660011981013560f01c90036098013560601c6104cd565b34801561055257600080fd5b5060005461042f907201000000000000000000000000000000000000900460ff1681565b34801561058257600080fd5b503660011981013560f01c900360c0013560601c6104cd565b6103646105a93660046155af565b6115bf565b3480156105ba57600080fd5b5061046a6105c9366004615592565b60036020526000908152604090205481565b3480156105e757600080fd5b5060408051808201909152600581527f322e322e3000000000000000000000000000000000000000000000000000000060208201525b6040516103c89190615646565b34801561063657600080fd5b50600854600954610645919082565b604080519283526020830191909152016103c8565b34801561066657600080fd5b5061046a610675366004615659565b6115d1565b34801561068657600080fd5b503660011981013560f01c900360ac013560601c6104cd565b3480156106ab57600080fd5b5061061d61160b565b3480156106c057600080fd5b506103646106cf366004615592565b611619565b3480156106e057600080fd5b503660011981013560f01c90036034013561046a565b34801561070257600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006103b3565b610364610737366004615680565b61192a565b34801561074857600080fd5b5060095461046a565b34801561075d57600080fd5b506103646122ad565b6103646107743660046155af565b61269b565b6103646126a8565b34801561078d57600080fd5b5060025461046a565b3480156107a257600080fd5b503660011981013560f01c90036058013561046a565b3480156107c457600080fd5b503660011981013560f01c90036078013561046a565b3480156107e657600080fd5b5061083c6107f5366004615659565b6007602052600090815260409020805460019091015460ff821691610100810463ffffffff1691650100000000009091046001600160801b0316906001600160a01b031684565b60408051941515855263ffffffff90931660208501526001600160801b03909116918301919091526001600160a01b031660608201526080016103c8565b34801561088657600080fd5b506040513660011981013560f01c90036054013560e01c81526020016103c8565b3480156108b357600080fd5b503660011981013560f01c90036014013561046a565b3480156108d557600080fd5b506103b36108e4366004615659565b612f3f565b3480156108f557600080fd5b5061046a610904366004615592565b600b6020526000908152604090205481565b34801561092257600080fd5b5061046a6109313660046156c1565b6130d9565b34801561094257600080fd5b50610956610951366004615659565b61329a565b6040805163ffffffff90981688526001600160a01b03968716602089015295909416948601949094526001600160801b039182166060860152608085015291821660a08401521660c082015260e0016103c8565b3480156109b657600080fd5b506000546103b39067ffffffffffffffff1681565b3480156109d757600080fd5b5061046a6109e6366004615592565b61330e565b3480156109f757600080fd5b503660011981013560f01c900360d4013561046a565b348015610a1957600080fd5b50610364610a283660046156ea565b613366565b348015610a3957600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006103b3565b348015610a6c57600080fd5b507f000000000000000000000000000000000000000000000000000000000000000061046a565b348015610a9f57600080fd5b5061042f610aae366004615659565b60046020526000908152604090205460ff1681565b348015610acf57600080fd5b50610364610ade3660046155af565b61389a565b348015610aef57600080fd5b50610af8613c61565b6040516103c893929190615776565b348015610b1357600080fd5b507f000000000000000000000000000000000000000000000000000000000000000061046a565b348015610b4657600080fd5b5061042f610b55366004615659565b60066020526000908152604090205460ff1681565b60008054600160801b900460ff166002811115610b8957610b89615533565b14610ba75760405163067fe19560e41b815260040160405180910390fd5b6000547201000000000000000000000000000000000000900460ff1615610bfa576040517f0ea2e75200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610c133660011981013560f01c90036014013590565b90565b610c2a610c25368690038601866157b1565b613c8b565b14610c61576040517f9cc00b5b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b82606001358282604051610c76929190615825565b604051809103902014610cb5576040517fd81d583b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000610cfe610cf984848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613ce792505050565b613d54565b90506000610d2582600881518110610d1857610d18615835565b6020026020010151613f0a565b9050602081511115610d63576040517fd81d583b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b602081810151825190910360031b1c3660011981013560f01c9003605801358103610dba576040517fb8ed883000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050600180547fffffffffffffffffffffffff000000000000000000000000000000000000000016331790555050600080547fffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffff1672010000000000000000000000000000000000001790555050565b60008054600160801b900460ff166002811115610e4857610e48615533565b14610e665760405163067fe19560e41b815260040160405180910390fd5b600060028381548110610e7b57610e7b615835565b906000526020600020906005020190506000610e9684612f3f565b905067ffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000081169082161015610eff576040517ff2440b5300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008481526006602052604090205460ff1615610f48576040517ff1a9458100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000848152600560205260409020805480158015610f6557508515155b15610fc857835464010000000090046001600160a01b031660008115610f8b5781610f9a565b60018601546001600160a01b03165b9050610fa68187613fbe565b505050600094855250506006602052505060409020805460ff19166001179055565b6000868152600760209081526040918290208251608081018452815460ff81161515808352610100820463ffffffff16948301949094526501000000000090046001600160801b031693810193909352600101546001600160a01b0316606083015261104c576001600160801b03604082015260018152600086900361104c578195505b600086826020015163ffffffff166110649190615861565b905060008382116110755781611077565b835b602084015190915063ffffffff165b818110156111975760008682815481106110a2576110a2615835565b6000918252602080832090910154808352600690915260409091205490915060ff166110fa576040517f9a07664600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006002828154811061110f5761110f615835565b60009182526020909120600590910201805490915064010000000090046001600160a01b03161580156111565750600481015460408701516001600160801b039182169116115b156111825760018101546001600160a01b0316606087015260048101546001600160801b031660408701525b5050808061118f90615879565b915050611086565b5063ffffffff818116602085810191825260008c81526007909152604090819020865181549351928801517fffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000009094169015157fffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000ff161761010092909416918202939093177fffffffffffffffffffffff00000000000000000000000000000000ffffffffff16650100000000006001600160801b03909316929092029190911782556060850151600190920180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03909316929092179091558490036113a657606083015160008a8152600660205260409020805460ff19166001179055891580156112e357506000547201000000000000000000000000000000000000900460ff165b1561133e576001546001600160a01b03166112fe818a613fbe565b88546001600160a01b03909116640100000000027fffffffffffffffff0000000000000000000000000000000000000000ffffffff9091161788556113a4565b61136b6001600160a01b038216156113565781611365565b60018901546001600160a01b03165b89613fbe565b87547fffffffffffffffff0000000000000000000000000000000000000000ffffffff166401000000006001600160a01b038316021788555b505b505050505050505050565b600080600054600160801b900460ff1660028111156113d2576113d2615533565b146113f05760405163067fe19560e41b815260040160405180910390fd5b6000805260066020527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f85460ff16611454576040517f9a07664600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006001600160a01b0316600260008154811061147357611473615835565b600091825260209091206005909102015464010000000090046001600160a01b0316146114a15760016114a4565b60025b6000805467ffffffffffffffff421668010000000000000000027fffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff82168117835592935083927fffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffff000000000000000000ffffffffffffffff90911617600160801b83600281111561154857611548615533565b02179055600281111561155d5761155d615533565b6040517f5e186f09b9c93491f14e277eea7faa5de6a2d4bda75a79af7a3684fbfb42da6090600090a290565b600560205281600052604060002081815481106115a557600080fd5b90600052602060002001600091509150505481565b905090565b6115cc838383600161192a565b505050565b6000818152600760209081526040808320600590925282208054825461160290610100900463ffffffff1682615893565b95945050505050565b60606115ba60586020614000565b6116216122ad565b60006002600d5460ff16600281111561163c5761163c615533565b0361166057506001600160a01b0381166000908152600b60205260409020546116cf565b6001600d5460ff16600281111561167957611679615533565b0361169d57506001600160a01b0381166000908152600360205260409020546116cf565b6040517f078a3df400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0382166000908152600c602052604090205460ff166117ad576001600160a01b0382166000908152600c60205260409020805460ff1916600117905561172c60c0600119369081013560f01c9003013560601c90565b6040517f7eee288d0000000000000000000000000000000000000000000000000000000081526001600160a01b038481166004830152602482018490529190911690637eee288d90604401600060405180830381600087803b15801561179157600080fd5b505af11580156117a5573d6000803e3d6000fd5b505050505050565b806000036117e7576040517f17bfe5f700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0382166000908152600b6020908152604080832083905560039091528120553660011981013560f01c900360c0013560601c6040517ff3fef3a30000000000000000000000000000000000000000000000000000000081526001600160a01b03848116600483015260248201849052919091169063f3fef3a390604401600060405180830381600087803b15801561188557600080fd5b505af1158015611899573d6000803e3d6000fd5b505050506000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146118ea576040519150601f19603f3d011682016040523d82523d6000602084013e6118ef565b606091505b50509050806115cc576040517f83e6cc6b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008054600160801b900460ff16600281111561194957611949615533565b146119675760405163067fe19560e41b815260040160405180910390fd5b60006002848154811061197c5761197c615835565b60009182526020918290206040805160e0810182526005909302909101805463ffffffff811684526001600160a01b0364010000000090910481169484019490945260018101549093169082015260028201546001600160801b03908116606083015260038301546080830181905260049093015480821660a0840152600160801b90041660c082015291508514611a40576040517f3014033200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60a0810151600083156001600160801b0383161760011b90506000611ad5826001600160801b03167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f6307c4acdd60e01b67ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff169050861580611b105750611b0d7f00000000000000000000000000000000000000000000000000000000000000006002615861565b81145b8015611b1a575084155b15611b51576040517fa42637bc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000547201000000000000000000000000000000000000900460ff168015611b77575086155b15611bae576040517f0ea2e75200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f0000000000000000000000000000000000000000000000000000000000000000811115611c08576040517f56f57b2b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611c337f00000000000000000000000000000000000000000000000000000000000000006001615861565b8103611c4557611c4586888588614034565b34611c4f836130d9565b14611c86576040517f8620aa1900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000611c9188612f3f565b905067ffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000811690821603611cf9576040517f3381d11400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000611d2660017f0000000000000000000000000000000000000000000000000000000000000000615893565b8303611e3c573660011981013560f01c90036098013560601c6001600160a01b0316637dc0d1d06040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d7c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611da091906158aa565b6001600160a01b031663f3f480d96040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ddd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e0191906158c7565b611e35907f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff166158e0565b9050611ecf565b611e6760017f0000000000000000000000000000000000000000000000000000000000000000615893565b8303611ea257611e357f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff16600261590c565b507f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff165b611f03817f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff1661593c565b67ffffffffffffffff16611f1e8367ffffffffffffffff1690565b67ffffffffffffffff161115611f6557611f62817f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff1661593c565b91505b6000604083901b421760008a8152608087901b6001600160801b038d1617602052604081209192509060008181526004602052604090205490915060ff1615611fda576040517f80497e3b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60016004600083815260200190815260200160002060006101000a81548160ff02191690831515021790555060026040518060e001604052808d63ffffffff16815260200160006001600160a01b03168152602001336001600160a01b03168152602001346001600160801b031681526020018c8152602001886001600160801b03168152602001846001600160801b0316815250908060018154018082558091505060019003906000526020600020906005020160009091909190915060008201518160000160006101000a81548163ffffffff021916908363ffffffff16021790555060208201518160000160046101000a8154816001600160a01b0302191690836001600160a01b0316021790555060408201518160010160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060608201518160020160006101000a8154816001600160801b0302191690836001600160801b031602179055506080820151816003015560a08201518160040160006101000a8154816001600160801b0302191690836001600160801b0316021790555060c08201518160040160106101000a8154816001600160801b0302191690836001600160801b031602179055505050600560008c815260200190815260200160002060016002805490506121d19190615893565b81546001810183556000928352602080842090910191909155338252600b9052604081208054349290612205908490615861565b90915550503660011981013560f01c900360c0013560601c6001600160a01b031663d0e30db0346040518263ffffffff1660e01b81526004016000604051808303818588803b15801561225757600080fd5b505af115801561226b573d6000803e3d6000fd5b50506040513393508d92508e91507f9b3245740ec3b155098a55be84957a4da13eaf7f14a8bc6f53126c0b9350f2be90600090a4505050505050505050505050565b6002600d5460ff1660028111156122c6576122c6615533565b14806122e857506001600d5460ff1660028111156122e6576122e6615533565b145b156122ef57565b6000600d5460ff16600281111561230857612308615533565b1461233f576040517f078a3df400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3660011981013560f01c900360ac013560601c6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561238f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123b39190615965565b156123ea576040517f379a7ed900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005468010000000000000000900467ffffffffffffffff1667ffffffffffffffff16600003612446576040517fc105260a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60003660011981013560f01c900360ac013560601c6040517f0314d2b30000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b039190911690630314d2b390602401602060405180830381865afa1580156124ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124de9190615965565b905080612517576040517f4851bd9b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3660011981013560f01c900360ac013560601c6040517f17cf21a90000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b0391909116906317cf21a990602401600060405180830381600087803b15801561258657600080fd5b505af1925050508015612597575060015b5060003660011981013560f01c900360ac013560601c6040517f496b9c160000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b03919091169063496b9c1690602401602060405180830381865afa15801561260c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126309190615965565b9050801561264a57600d805460ff19166001179055612658565b600d805460ff191660021790555b600d546040517f9908eaac0645df9d0704d06adc9e07337c951de2f06b5f2836151d48d5e4722f9161268f9160ff9091169061556a565b60405180910390a15050565b6115cc838383600061192a565b60005471010000000000000000000000000000000000900460ff16156126fa576040517f0dc149f000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6127026141c3565b361461273a576040517f9824bdab00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000803660011981013560f01c900360ac013560601c6001600160a01b031663d83ef2676040518163ffffffff1660e01b81526004016040805180830381865afa15801561278c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127b09190615982565b9092509050816127ec576040517f6a6bc3b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805180820190915282815260200181905260088290556009819055803660011981013560f01c90036058013511612867576040517ff40239db0000000000000000000000000000000000000000000000000000000081523660011981013560f01c90036014013560048201526024015b60405180910390fd5b67ffffffffffffffff3660011981013560f01c90036098013560601c6001600160a01b0316637dc0d1d06040518163ffffffff1660e01b8152600401602060405180830381865afa1580156128c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128e491906158aa565b6001600160a01b031663f3f480d96040518163ffffffff1660e01b8152600401602060405180830381865afa158015612921573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061294591906158c7565b111561297d576040517fb4e1243300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006129b47f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff1660026159a6565b905060003660011981013560f01c90036098013560601c6001600160a01b0316637dc0d1d06040518163ffffffff1660e01b8152600401602060405180830381865afa158015612a08573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a2c91906158aa565b6001600160a01b031663f3f480d96040518163ffffffff1660e01b8152600401602060405180830381865afa158015612a69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a8d91906158c7565b67ffffffffffffffff16612ac87f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff1690565b67ffffffffffffffff16612adc9190615861565b90506000612aea83836141d1565b905067ffffffffffffffff811115612b2e576040517f8d77ecac00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b67ffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001667ffffffffffffffff168167ffffffffffffffff161115612ba6576040517f8d77ecac00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805160e08101825263ffffffff808252600060208084018281523660011981013560f01c90038035606090811c8789018181526001600160801b0334818116948b0194855260149095013560808b01908152600160a08c0181815242841660c08e019081526002805493840181558c529c517f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace600590930292830180549a5191909d167fffffffffffffffff000000000000000000000000000000000000000000000000909a16999099176401000000006001600160a01b039a8b160217909b5592517f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5acf840180547fffffffffffffffffffffffff000000000000000000000000000000000000000016919098161790965592517f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ad0820180547fffffffffffffffffffffffffffffffff000000000000000000000000000000001691851691909117905593517f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ad185015595519651968116600160801b9790911696909602959095177f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ad2909101558154710100000000000000000000000000000000007fffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff909116178255918152600b909152918220805491929091612de7908490615861565b90915550503660011981013560f01c900360c0013560601c6001600160a01b031663d0e30db0346040518263ffffffff1660e01b81526004016000604051808303818588803b158015612e3957600080fd5b505af1158015612e4d573d6000803e3d6000fd5b5050600080547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000164267ffffffffffffffff1617905550612e909150612f299050565b63ffffffff163660011981013560f01c900360ac013560601c6001600160a01b0316633c9f397c6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ee6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f0a91906159c5565b600a805460ff191663ffffffff92909216929092141790555050505050565b3660011981013560f01c90036054013560e01c90565b600080600054600160801b900460ff166002811115612f6057612f60615533565b14612f7e5760405163067fe19560e41b815260040160405180910390fd5b600060028381548110612f9357612f93615835565b600091825260208220600590910201805490925063ffffffff90811614612ff957815460028054909163ffffffff16908110612fd157612fd1615835565b906000526020600020906005020160040160109054906101000a90046001600160801b031690505b600482015460009061302490600160801b900467ffffffffffffffff165b67ffffffffffffffff1690565b6130389067ffffffffffffffff1642615893565b61304e613017846001600160801b031660401c90565b67ffffffffffffffff166130629190615861565b905067ffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001667ffffffffffffffff168167ffffffffffffffff16116130af5780611602565b7f000000000000000000000000000000000000000000000000000000000000000095945050505050565b600080613156836001600160801b03167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f6307c4acdd60e01b67ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff1690507f00000000000000000000000000000000000000000000000000000000000000008111156131b5576040517f56f57b2b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b642e90edd00062061a806311e1a30060006131d08383615a01565b9050670de0b6b3a76400006000613207827f00000000000000000000000000000000000000000000000000000000000000006159a6565b90506000613225613220670de0b6b3a7640000866159a6565b6141ec565b90506000613233848461443e565b90506000613241838361448d565b9050600061324e826144bb565b9050600061326d82613268670de0b6b3a76400008f6159a6565b6146a3565b9050600061327b8b8361448d565b9050613287818d6159a6565b9f9e505050505050505050505050505050565b600281815481106132aa57600080fd5b60009182526020909120600590910201805460018201546002830154600384015460049094015463ffffffff841695506401000000009093046001600160a01b03908116949216926001600160801b03918216929180821691600160801b90041687565b60006002600d5460ff16600281111561332957613329615533565b0361334a57506001600160a01b03166000908152600b602052604090205490565b506001600160a01b031660009081526003602052604090205490565b60008054600160801b900460ff16600281111561338557613385615533565b146133a35760405163067fe19560e41b815260040160405180910390fd5b6000600287815481106133b8576133b8615835565b6000918252602082206005919091020160048101549092506001600160801b0316908715821760011b905061340e7f00000000000000000000000000000000000000000000000000000000000000006001615861565b613488826001600160801b03167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f6307c4acdd60e01b67ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff16146134c2576040517f5f53dd9800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080891561358d576135157f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000615893565b6001901b61352b846001600160801b03166146d4565b6001600160801b031661353e9190615a15565b156135725761356961355a60016001600160801b038716615a29565b865463ffffffff16600061475a565b60030154613583565b3660011981013560f01c9003607801355b91508490506135ae565b600385015491506135ab61355a6001600160801b0386166001615a49565b90505b600882901b60088a8a6040516135c5929190615825565b6040518091039020901b14613606576040517f696550ff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006136118c614823565b90506000613620836003015490565b6040517fe14ced320000000000000000000000000000000000000000000000000000000081523660011981013560f01c90036098013560601c9063e14ced3290613676908f908f908f908f908a90600401615ab4565b6020604051808303816000875af1158015613695573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136b991906158c7565b600485015491149150600090600290613742906001600160801b03167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f6307c4acdd60e01b67ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b6137bc896001600160801b03167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f6307c4acdd60e01b67ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b6137c69190615aee565b6137d09190615b11565b60ff161590508115158103613811576040517ffb4e40dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b875464010000000090046001600160a01b03161561385b576040517f9071e6af00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505085547fffffffffffffffff0000000000000000000000000000000000000000ffffffff163364010000000002179095555050505050505050505050565b60008054600160801b900460ff1660028111156138b9576138b9615533565b146138d75760405163067fe19560e41b815260040160405180910390fd5b6000806000806138e686614852565b935093509350935060006138fc85858585614bab565b905060003660011981013560f01c90036098013560601c6001600160a01b0316637dc0d1d06040518163ffffffff1660e01b8152600401602060405180830381865afa158015613950573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061397491906158aa565b905060018903613a41576001600160a01b0381166352f0f3ad8a846139a53660011981013560f01c90036034013590565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e086901b16815260048101939093526024830191909152604482015260206064820152608481018a905260a4015b6020604051808303816000875af1158015613a17573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a3b91906158c7565b506113a6565b60028903613a60576001600160a01b0381166352f0f3ad8a84896139a5565b60038903613a7f576001600160a01b0381166352f0f3ad8a84876139a5565b60048903613bb4576000613abc6001600160801b0385167f0000000000000000000000000000000000000000000000000000000000000000614c4a565b600954613ac99190615861565b613ad4906001615861565b90503660011981013560f01c9003605801358110613b01573660011981013560f01c900360580135613b03565b805b90506001600160a01b0382166352f0f3ad8b8560405160e084901b7fffffffff000000000000000000000000000000000000000000000000000000001681526004810192909252602482015260c084901b604482015260086064820152608481018b905260a4016020604051808303816000875af1158015613b89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613bad91906158c7565b50506113a6565b60058903613c2f576040517f52f0f3ad000000000000000000000000000000000000000000000000000000008152600481018a9052602481018390523660011981013560f01c900360d4013560c01b604482015260086064820152608481018890526001600160a01b038216906352f0f3ad9060a4016139f8565b6040517fff137e6500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3660011981013560f01c9003605481013560e01c90601401356060613c8461160b565b9050909192565b60008160000151826020015183604001518460600151604051602001613cca949392919093845260208401929092526040830152606082015260800190565b604051602081830303815290604052805190602001209050919050565b60408051808201909152600080825260208201528151600003613d36576040517f5ab458fb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50604080518082019091528151815260209182019181019190915290565b60606000806000613d6485614cdf565b919450925090506001816001811115613d7f57613d7f615533565b14613db6576040517f4b9c6abe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8451613dc28385615861565b14613df9576040517f5c5537b800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604080516020808252610420820190925290816020015b6040805180820190915260008082526020820152815260200190600190039081613e105790505093506000835b8651811015613efe57600080613e836040518060400160405280858c60000151613e679190615893565b8152602001858c60200151613e7c9190615861565b9052614cdf565b509150915060405180604001604052808383613e9f9190615861565b8152602001848b60200151613eb49190615861565b815250888581518110613ec957613ec9615835565b6020908102919091010152613edf600185615861565b9350613eeb8183615861565b613ef59084615861565b92505050613e3d565b50845250919392505050565b60606000806000613f1a85614cdf565b919450925090506000816001811115613f3557613f35615533565b14613f6c576040517f1ff9b2e400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b613f768284615861565b855114613faf576040517f5c5537b800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6116028560200151848461517d565b60028101546001600160a01b038316600090815260036020526040812080546001600160801b0390931692909190613ff7908490615861565b90915550505050565b6040518181523660011981013560f01c90038284820160208401378260208301016000815260208101604052505092915050565b600061404a6001600160801b0384166001615a49565b9050600061405a8286600161475a565b9050600086901a8380614124575061409360027f0000000000000000000000000000000000000000000000000000000000000000615a15565b6004830154600290614115906001600160801b03167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f6307c4acdd60e01b67ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b61411f9190615b11565b60ff16145b1561417c5760ff81166001148061413e575060ff81166002145b614177576040517ff40239db0000000000000000000000000000000000000000000000000000000081526004810188905260240161285e565b6141ba565b60ff8116156141ba576040517ff40239db0000000000000000000000000000000000000000000000000000000081526004810188905260240161285e565b50505050505050565b60006115ba60f46006615861565b6000818310156141e157816141e3565b825b90505b92915050565b6001600160801b03811160071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b176000821361424257631615e6386000526004601cfd5b7ff8f9f9faf9fdfafbf9fdfcfdfafbfcfef9fafdfafcfcfbfefafafcfbffffffff6f8421084210842108cc6318c6db6d54be83831c1c601f161a1890811b609f90811c6c465772b2bbbb5f824b15207a3081018102606090811d6d0388eaa27412d5aca026815d636e018202811d6d0df99ac502031bf953eff472fdcc018202811d6d13cdffb29d51d99322bdff5f2211018202811d6d0a0f742023def783a307a986912e018202811d6d01920d8043ca89b5239253284e42018202811d6c0b7a86d7375468fac667a0a527016c29508e458543d8aa4df2abee7883018302821d6d0139601a2efabe717e604cbb4894018302821d6d02247f7a7b6594320649aa03aba1018302821d7fffffffffffffffffffffffffffffffffffffff73c0c716a594e00d54e3c4cbc9018302821d7ffffffffffffffffffffffffffffffffffffffdc7b88c420e53a9890533129f6f01830290911d7fffffffffffffffffffffffffffffffffffffff465fda27eb4d63ded474e5f832019091027ffffffffffffffff5f6af8f7b3396644f18e157960000000000000000000000000105711340daa0d5f769dba1915cef59f0815a5506029190037d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b302017d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b88642840160ae1d90565b60007812725dd1d243aba0e75fe645cc4873f9e65afe688c928e1f218311670de0b6b3a76400000215820261447b57637c5f487d6000526004601cfd5b50670de0b6b3a7640000919091020490565b6000816000190483118202156144ab5763bac65e5b6000526004601cfd5b50670de0b6b3a764000091020490565b60007ffffffffffffffffffffffffffffffffffffffffffffffffdc0d0570925a462d782136144e957919050565b680755bf798b4a1bf1e582126145075763a37bfec96000526004601cfd5b6503782dace9d9604e83901b059150600060606bb17217f7d1cf79abc9e3b39884821b056b80000000000000000000000001901d6bb17217f7d1cf79abc9e3b39881029093037fffffffffffffffffffffffffffffffffffffffdbf3ccf1604d263450f02a550481018102606090811d6d0277594991cfc85f6e2461837cd9018202811d7fffffffffffffffffffffffffffffffffffffe5adedaa1cb095af9e4da10e363c018202811d6db1bbb201f443cf962f1a1d3db4a5018202811d7ffffffffffffffffffffffffffffffffffffd38dc772608b0ae56cce01296c0eb018202811d6e05180bb14799ab47a8a8cb2a527d57016d02d16720577bd19bf614176fe9ea6c10fe68e7fd37d0007b713f765084018402831d9081019084017ffffffffffffffffffffffffffffffffffffffe2c69812cf03b0763fd454a8f7e010290911d6e0587f503bb6ea29d25fcb7401964500190910279d835ebba824c98fb31b83b2ca45c000000000000000000000000010574029d9dc38563c32e5c2f6dc192ee70ef65f9978af30260c3939093039290921c92915050565b60006141e3670de0b6b3a7640000836146bb866141ec565b6146c59190615b33565b6146cf9190615bef565b6144bb565b600080614748837e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f6307c4acdd60e01b67ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b600160ff919091161b90920392915050565b6000808261479a576147956001600160801b0386167f0000000000000000000000000000000000000000000000000000000000000000615212565b6147ac565b6147ac856001600160801b0316615351565b9050600284815481106147c1576147c1615835565b906000526020600020906005020191505b60048201546001600160801b0382811691161461481b57815460028054909163ffffffff1690811061480657614806615835565b906000526020600020906005020191506147d2565b509392505050565b600080600080600061483486614852565b935093509350935061484884848484614bab565b9695505050505050565b600080600080600085905060006002828154811061487257614872615835565b600091825260209091206004600590920201908101549091507f000000000000000000000000000000000000000000000000000000000000000090614927906001600160801b03167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f6307c4acdd60e01b67ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff1611614961576040517fb34b5c2200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000815b60048301547f000000000000000000000000000000000000000000000000000000000000000090614a06906001600160801b03167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f6307c4acdd60e01b67ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff169250821115614a7b57825463ffffffff16614a457f00000000000000000000000000000000000000000000000000000000000000006001615861565b8303614a4f578391505b60028181548110614a6257614a62615835565b9060005260206000209060050201935080945050614965565b600481810154908401546001600160801b0391821691166000816001600160801b0316614ac0614ab4856001600160801b031660011c90565b6001600160801b031690565b6001600160801b03161490508015614b59576000614ae6836001600160801b03166146d4565b6001600160801b03161115614b36576000614b16614b0e60016001600160801b038616615a29565b89600161475a565b6003810154600490910154909c506001600160801b03169a50614b3c9050565b6008549a505b600386015460048701549099506001600160801b03169750614b9d565b6000614b72614b0e6001600160801b0385166001615a49565b6003808901546004808b015492840154930154909e506001600160801b039182169d50919b50169850505b505050505050509193509193565b60006001600160801b03841615614c065760408051602081018790526001600160801b038087169282019290925260608101859052908316608082015260a00160405160208183030381529060405280519060200120611602565b8282604051602001614c2b9291909182526001600160801b0316602082015260400190565b6040516020818303038152906040528051906020012095945050505050565b600080614cbe847e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f6307c4acdd60e01b67ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff1690508083036001841b600180831b0386831b17039250505092915050565b60008060008360000151600003614d22576040517f5ab458fb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6020840151805160001a607f8111614d47576000600160009450945094505050615176565b60b78111614e5d576000614d5c608083615893565b905080876000015111614d9b576040517f66c9448500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001838101517fff00000000000000000000000000000000000000000000000000000000000000169082148015614e1357507f80000000000000000000000000000000000000000000000000000000000000007fff000000000000000000000000000000000000000000000000000000000000008216105b15614e4a576040517fbabb01dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5060019550935060009250615176915050565b60bf8111614fbb576000614e7260b783615893565b905080876000015111614eb1576040517f66c9448500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60018301517fff00000000000000000000000000000000000000000000000000000000000000166000819003614f13576040517fbabb01dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600184015160088302610100031c60378111614f5b576040517fbabb01dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b614f658184615861565b895111614f9e576040517f66c9448500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b614fa9836001615861565b97509550600094506151769350505050565b60f78111615020576000614fd060c083615893565b90508087600001511161500f576040517f66c9448500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600195509350849250615176915050565b600061502d60f783615893565b90508087600001511161506c576040517f66c9448500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60018301517fff000000000000000000000000000000000000000000000000000000000000001660008190036150ce576040517fbabb01dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600184015160088302610100031c60378111615116576040517fbabb01dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6151208184615861565b895111615159576040517f66c9448500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b615164836001615861565b97509550600194506151769350505050565b9193909250565b60608167ffffffffffffffff8111156151985761519861579b565b6040519080825280601f01601f1916602001820160405280156151c2576020820181803683370190505b509050811561520b5760006151d78486615861565b90506020820160005b848110156151f85782810151828201526020016151e0565b84811115615207576000858301525b5050505b9392505050565b60008161528f846001600160801b03167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f6307c4acdd60e01b67ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff16116152a55763b34b5c226000526004601cfd5b6152ae83615351565b90508161532b826001600160801b03167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f6307c4acdd60e01b67ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff16116141e6576141e3615341836001615861565b6001600160801b038316906153dd565b600081196001830116816153cc827e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f6307c4acdd60e01b67ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff169390931c8015179392505050565b600080615451847e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f6307c4acdd60e01b67ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff169050808303600180821b0385821b179250505092915050565b60008083601f84011261547f57600080fd5b50813567ffffffffffffffff81111561549757600080fd5b6020830191508360208285010111156154af57600080fd5b9250929050565b600080600083850360a08112156154cc57600080fd5b60808112156154da57600080fd5b50839250608084013567ffffffffffffffff8111156154f857600080fd5b6155048682870161546d565b9497909650939450505050565b6000806040838503121561552457600080fd5b50508035926020909101359150565b634e487b7160e01b600052602160045260246000fd5b6003811061556757634e487b7160e01b600052602160045260246000fd5b50565b6020810161557783615549565b91905290565b6001600160a01b038116811461556757600080fd5b6000602082840312156155a457600080fd5b813561520b8161557d565b6000806000606084860312156155c457600080fd5b505081359360208301359350604090920135919050565b6000815180845260005b81811015615601576020818501810151868301820152016155e5565b81811115615613576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006141e360208301846155db565b60006020828403121561566b57600080fd5b5035919050565b801515811461556757600080fd5b6000806000806080858703121561569657600080fd5b84359350602085013592506040850135915060608501356156b681615672565b939692955090935050565b6000602082840312156156d357600080fd5b81356001600160801b038116811461520b57600080fd5b6000806000806000806080878903121561570357600080fd5b86359550602087013561571581615672565b9450604087013567ffffffffffffffff8082111561573257600080fd5b61573e8a838b0161546d565b9096509450606089013591508082111561575757600080fd5b5061576489828a0161546d565b979a9699509497509295939492505050565b63ffffffff8416815282602082015260606040820152600061160260608301846155db565b634e487b7160e01b600052604160045260246000fd5b6000608082840312156157c357600080fd5b6040516080810181811067ffffffffffffffff821117156157f457634e487b7160e01b600052604160045260246000fd5b8060405250823581526020830135602082015260408301356040820152606083013560608201528091505092915050565b8183823760009101908152919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600082198211156158745761587461584b565b500190565b6000600019820361588c5761588c61584b565b5060010190565b6000828210156158a5576158a561584b565b500390565b6000602082840312156158bc57600080fd5b815161520b8161557d565b6000602082840312156158d957600080fd5b5051919050565b600067ffffffffffffffff8083168185168083038211156159035761590361584b565b01949350505050565b600067ffffffffffffffff808316818516818304811182151516156159335761593361584b565b02949350505050565b600067ffffffffffffffff8381169083168181101561595d5761595d61584b565b039392505050565b60006020828403121561597757600080fd5b815161520b81615672565b6000806040838503121561599557600080fd5b505080516020909101519092909150565b60008160001904831182151516156159c0576159c061584b565b500290565b6000602082840312156159d757600080fd5b815163ffffffff8116811461520b57600080fd5b634e487b7160e01b600052601260045260246000fd5b600082615a1057615a106159eb565b500490565b600082615a2457615a246159eb565b500690565b60006001600160801b038381169083168181101561595d5761595d61584b565b60006001600160801b038083168185168083038211156159035761590361584b565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b606081526000615ac8606083018789615a6b565b8281036020840152615adb818688615a6b565b9150508260408301529695505050505050565b600060ff821660ff841680821015615b0857615b0861584b565b90039392505050565b600060ff831680615b2457615b246159eb565b8060ff84160691505092915050565b60007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600084136000841385830485118282161615615b7457615b7461584b565b7f80000000000000000000000000000000000000000000000000000000000000006000871286820588128184161615615baf57615baf61584b565b60008712925087820587128484161615615bcb57615bcb61584b565b87850587128184161615615be157615be161584b565b505050929093029392505050565b600082615bfe57615bfe6159eb565b60001983147f800000000000000000000000000000000000000000000000000000000000000083141615615c3457615c3461584b565b50059056fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"a\x01\0`@R4\x80\x15b\0\0\x12W`\0\x80\xFD[P`@Qb\0`&8\x03\x80b\0`&\x839\x81\x01`@\x81\x90Rb\0\x005\x91b\0\x01\xE5V[b\0\0C`\x01`~b\0\x02\x7FV[`\xFF\x16\x81`\0\x01Q\x11\x15b\0\0kW`@Qc;\xEF\xF1\x99`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0\x19\x81` \x01Q\x14\x80b\0\0\x92WP\x80Q` \x82\x01Qb\0\0\x8F\x90`\x01b\0\x02\xA5V[\x10\x15[\x15b\0\0\xB1W`@Qc\xE6,\xCF9`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x02\x81` \x01Q\x10\x15b\0\0\xD8W`@Qc\xE6,\xCF9`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0b\0\0\xFD\x82`@\x01Q`\x01`\x01`@\x1B\x03\x16b\0\x01\xC5` \x1Bb\0\x0C\x10\x17` \x1CV[b\0\x01\x13\x90`\x01`\x01`@\x1B\x03\x16`\x02b\0\x02\xC0V[\x90P`\x01`\x01`@\x1B\x03\x81\x11\x15b\0\x01>W`@Qc#]\xFB+`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[b\0\x01a\x82``\x01Q`\x01`\x01`@\x1B\x03\x16b\0\x01\xC5` \x1Bb\0\x0C\x10\x17` \x1CV[`\x01`\x01`@\x1B\x03\x16\x81`\x01`\x01`@\x1B\x03\x16\x11\x15b\0\x01\x94W`@Qc#]\xFB+`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[P\x80Q`\x80R` \x81\x01Q`\xA0R`@\x81\x01Q`\x01`\x01`@\x1B\x03\x90\x81\x16`\xE0R``\x90\x91\x01Q\x16`\xC0Rb\0\x02\xE2V[\x90V[\x80Q`\x01`\x01`@\x1B\x03\x81\x16\x81\x14b\0\x01\xE0W`\0\x80\xFD[\x91\x90PV[`\0`\x80\x82\x84\x03\x12\x15b\0\x01\xF8W`\0\x80\xFD[`@Q`\x80\x81\x01`\x01`\x01`@\x1B\x03\x81\x11\x82\x82\x10\x17\x15b\0\x02)WcNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[\x80`@RP\x82Q\x81R` \x83\x01Q` \x82\x01Rb\0\x02J`@\x84\x01b\0\x01\xC8V[`@\x82\x01Rb\0\x02]``\x84\x01b\0\x01\xC8V[``\x82\x01R\x93\x92PPPV[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[`\0`\xFF\x82\x16`\xFF\x84\x16\x80\x82\x10\x15b\0\x02\x9CWb\0\x02\x9Cb\0\x02iV[\x90\x03\x93\x92PPPV[`\0\x82\x19\x82\x11\x15b\0\x02\xBBWb\0\x02\xBBb\0\x02iV[P\x01\x90V[`\0\x81`\0\x19\x04\x83\x11\x82\x15\x15\x16\x15b\0\x02\xDDWb\0\x02\xDDb\0\x02iV[P\x02\x90V[`\x80Q`\xA0Q`\xC0Q`\xE0Qa\\Fb\0\x03\xE0`\09`\0\x81\x81a\x07\x05\x01R\x81\x81a\x1E\x07\x01R\x81\x81a\x1Er\x01R\x81\x81a\x1E\xA5\x01R\x81\x81a)\x84\x01Ra*\x9C\x01R`\0\x81\x81a\n<\x01R\x81\x81a\x0E\xA3\x01R\x81\x81a\x1C\x9E\x01R\x81\x81a\x1E\xD5\x01R\x81\x81a\x1F4\x01R\x81\x81a+9\x01R\x81\x81a0o\x01Ra0\xB1\x01R`\0\x81\x81a\no\x01R\x81\x81a\x1A\xE7\x01R\x81\x81a\x1C\r\x01R\x81\x81a\x1EC\x01R\x81\x81a4\xD0\x01R\x81\x81a:\x98\x01R\x81\x81a@o\x01R\x81\x81aGq\x01R\x81\x81aH\x8D\x01R\x81\x81aIl\x01RaJ\x1F\x01R`\0\x81\x81a\x0B\x16\x01R\x81\x81a\x1B\xB0\x01R\x81\x81a\x1D\x02\x01R\x81\x81a1]\x01R\x81\x81a1\xE3\x01R\x81\x81a3\xE8\x01Ra4\xF1\x01Ra\\F`\0\xF3\xFE`\x80`@R`\x046\x10a\x03?W`\x005`\xE0\x1C\x80cp\x87*\xA5\x11a\x01\xB0W\x80c\xC3\x95\xE1\xCA\x11a\0\xECW\x80c\xDA\xBD9m\x11a\0\x95W\x80c\xF8\xF4?\xF6\x11a\0oW\x80c\xF8\xF4?\xF6\x14a\n\xC3W\x80c\xFA$\xF7C\x14a\n\xE3W\x80c\xFA1Z\xA9\x14a\x0B\x07W\x80c\xFE+\xBE\xB2\x14a\x0B:W`\0\x80\xFD[\x80c\xDA\xBD9m\x14a\n-W\x80c\xEC^c\x08\x14a\n`W\x80c\xEF\xF0\xF5\x92\x14a\n\x93W`\0\x80\xFD[\x80c\xD5\xD4M\x80\x11a\0\xC6W\x80c\xD5\xD4M\x80\x14a\t\xCBW\x80c\xD6\xAE<\xD5\x14a\t\xEBW\x80c\xD8\xCC\x1A<\x14a\n\rW`\0\x80\xFD[\x80c\xC3\x95\xE1\xCA\x14a\t\x16W\x80c\xC6\xF00\x8C\x14a\t6W\x80c\xCF\t\xE0\xD0\x14a\t\xAAW`\0\x80\xFD[\x80c\x8DE\n\x95\x11a\x01YW\x80c\xBB\xDC\x02\xDB\x11a\x013W\x80c\xBB\xDC\x02\xDB\x14a\x08zW\x80c\xBC\xEF;U\x14a\x08\xA7W\x80c\xBD\x8D\xA9V\x14a\x08\xC9W\x80c\xC0\xD8\xBBt\x14a\x08\xE9W`\0\x80\xFD[\x80c\x8DE\n\x95\x14a\x07\xB8W\x80c\x99s^2\x14a\x07\x96W\x80c\xA4E\xEC\xE6\x14a\x07\xDAW`\0\x80\xFD[\x80c\x81)\xFC\x1C\x11a\x01\x8AW\x80c\x81)\xFC\x1C\x14a\x07yW\x80c\x89\x80\xE0\xCC\x14a\x07\x81W\x80c\x8B\x85\x90+\x14a\x07\x96W`\0\x80\xFD[\x80cp\x87*\xA5\x14a\x07:\xC9\x12\x11a\x02\x7FW\x80cZ_\xA2\xD9\x11a\x02(W\x80c`\xE2td\x11a\x02\x02W\x80c`\xE2td\x14a\x06\xB4W\x80ccaPm\x14a\x06\xD4W\x80ckg\x16\xC0\x14a\x06\xF6W\x80co\x03D\t\x14a\x07)W`\0\x80\xFD[\x80cZ_\xA2\xD9\x14a\x06ZW\x80c\\\x0C\xBA3\x14a\x06zW\x80c`\x9D34\x14a\x06\x9FW`\0\x80\xFD[\x80cR\x9Dj\x8C\x11a\x02YW\x80cR\x9Dj\x8C\x14a\x05\xAEW\x80cT\xFDMP\x14a\x05\xDBW\x80cW\xDA\x95\x0E\x14a\x06*W`\0\x80\xFD[\x80c>:\xC9\x12\x14a\x05FW\x80c?\xC8\xCE\xF3\x14a\x05vW\x80cG'w\xC6\x14a\x05\x9BW`\0\x80\xFD[\x80c%\xFC*\xCE\x11a\x02\xECW\x80c0\xDB\xE5p\x11a\x02\xC6W\x80c0\xDB\xE5p\x14a\x04\xADW\x80c7\x8D\xD4\x8C\x14a\x04\xE5W\x80c7\xB1\xB2)\x14a\x04\xFFW\x80c:v\x84c\x14a\x05!W`\0\x80\xFD[\x80c%\xFC*\xCE\x14a\x04YW\x80c(\x10\xE1\xD6\x14a\x04xW\x80c*\xD6\x9A\xEB\x14a\x04\x8DW`\0\x80\xFD[\x80c \r.\xD2\x11a\x03\x1DW\x80c \r.\xD2\x14a\x03\xD1W\x80c\"*\xBFE\x14a\x03\xFFW\x80c%\x0Ei\xBD\x14a\x04?W`\0\x80\xFD[\x80c\x01\x93Q0\x14a\x03DW\x80c\x03\xC2\x92M\x14a\x03fW\x80c\x19\xEF\xFE\xB4\x14a\x03\x86W[`\0\x80\xFD[4\x80\x15a\x03PW`\0\x80\xFD[Pa\x03da\x03_6`\x04aT\xB6V[a\x0BjV[\0[4\x80\x15a\x03rW`\0\x80\xFD[Pa\x03da\x03\x816`\x04aU\x11V[a\x0E)V[4\x80\x15a\x03\x92W`\0\x80\xFD[P`\0Ta\x03\xB3\x90h\x01\0\0\0\0\0\0\0\0\x90\x04g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[`@Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[4\x80\x15a\x03\xDDW`\0\x80\xFD[P`\0Ta\x03\xF2\x90`\x01`\x80\x1B\x90\x04`\xFF\x16\x81V[`@Qa\x03\xC8\x91\x90aUjV[4\x80\x15a\x04\x0BW`\0\x80\xFD[Pa\x04/a\x04\x1A6`\x04aU\x92V[`\x0C` R`\0\x90\x81R`@\x90 T`\xFF\x16\x81V[`@Q\x90\x15\x15\x81R` \x01a\x03\xC8V[4\x80\x15a\x04KW`\0\x80\xFD[P`\nTa\x04/\x90`\xFF\x16\x81V[4\x80\x15a\x04eW`\0\x80\xFD[P`\x08T[`@Q\x90\x81R` \x01a\x03\xC8V[4\x80\x15a\x04\x84W`\0\x80\xFD[Pa\x03\xF2a\x13\xB1V[4\x80\x15a\x04\x99W`\0\x80\xFD[Pa\x04ja\x04\xA86`\x04aU\x11V[a\x15\x89V[4\x80\x15a\x04\xB9W`\0\x80\xFD[P`\x01Ta\x04\xCD\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x01a\x03\xC8V[4\x80\x15a\x04\xF1W`\0\x80\xFD[P`\rTa\x03\xF2\x90`\xFF\x16\x81V[4\x80\x15a\x05\x0BW`\0\x80\xFD[P6`\x01\x19\x81\x015`\xF0\x1C\x90\x035``\x1Ca\x04\xCDV[4\x80\x15a\x05-W`\0\x80\xFD[P6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\x98\x015``\x1Ca\x04\xCDV[4\x80\x15a\x05RW`\0\x80\xFD[P`\0Ta\x04/\x90r\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16\x81V[4\x80\x15a\x05\x82W`\0\x80\xFD[P6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\xC0\x015``\x1Ca\x04\xCDV[a\x03da\x05\xA96`\x04aU\xAFV[a\x15\xBFV[4\x80\x15a\x05\xBAW`\0\x80\xFD[Pa\x04ja\x05\xC96`\x04aU\x92V[`\x03` R`\0\x90\x81R`@\x90 T\x81V[4\x80\x15a\x05\xE7W`\0\x80\xFD[P`@\x80Q\x80\x82\x01\x90\x91R`\x05\x81R\x7F2.2.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` \x82\x01R[`@Qa\x03\xC8\x91\x90aVFV[4\x80\x15a\x066W`\0\x80\xFD[P`\x08T`\tTa\x06E\x91\x90\x82V[`@\x80Q\x92\x83R` \x83\x01\x91\x90\x91R\x01a\x03\xC8V[4\x80\x15a\x06fW`\0\x80\xFD[Pa\x04ja\x06u6`\x04aVYV[a\x15\xD1V[4\x80\x15a\x06\x86W`\0\x80\xFD[P6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\xAC\x015``\x1Ca\x04\xCDV[4\x80\x15a\x06\xABW`\0\x80\xFD[Pa\x06\x1Da\x16\x0BV[4\x80\x15a\x06\xC0W`\0\x80\xFD[Pa\x03da\x06\xCF6`\x04aU\x92V[a\x16\x19V[4\x80\x15a\x06\xE0W`\0\x80\xFD[P6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`4\x015a\x04jV[4\x80\x15a\x07\x02W`\0\x80\xFD[P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x03\xB3V[a\x03da\x0776`\x04aV\x80V[a\x19*V[4\x80\x15a\x07HW`\0\x80\xFD[P`\tTa\x04jV[4\x80\x15a\x07]W`\0\x80\xFD[Pa\x03da\"\xADV[a\x03da\x07t6`\x04aU\xAFV[a&\x9BV[a\x03da&\xA8V[4\x80\x15a\x07\x8DW`\0\x80\xFD[P`\x02Ta\x04jV[4\x80\x15a\x07\xA2W`\0\x80\xFD[P6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`X\x015a\x04jV[4\x80\x15a\x07\xC4W`\0\x80\xFD[P6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`x\x015a\x04jV[4\x80\x15a\x07\xE6W`\0\x80\xFD[Pa\x08W`\x01T`\x01`\x01`\xA0\x1B\x03\x16a\x12\xFE\x81\x8Aa?\xBEV[\x88T`\x01`\x01`\xA0\x1B\x03\x90\x91\x16d\x01\0\0\0\0\x02\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xFF\xFF\xFF\xFF\x90\x91\x16\x17\x88Ua\x13\xA4V[a\x13k`\x01`\x01`\xA0\x1B\x03\x82\x16\x15a\x13VW\x81a\x13eV[`\x01\x89\x01T`\x01`\x01`\xA0\x1B\x03\x16[\x89a?\xBEV[\x87T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xFF\xFF\xFF\xFF\x16d\x01\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x83\x16\x02\x17\x88U[P[PPPPPPPPPV[`\0\x80`\0T`\x01`\x80\x1B\x90\x04`\xFF\x16`\x02\x81\x11\x15a\x13\xD2Wa\x13\xD2aU3V[\x14a\x13\xF0W`@Qc\x06\x7F\xE1\x95`\xE4\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0\x80R`\x06` R\x7FT\xCD\xD3i\xE4\xE8\xA8Q^R\xCAr\xEC\x81l!\x01\x83\x1A\xD1\xF1\x8B\xF4A\x02\xED\x17\x14Y\xC9\xB4\xF8T`\xFF\x16a\x14TW`@Q\x7F\x9A\x07fF\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\x01`@Q\x80\x91\x03\x90\xFD[`\0`\x01`\x01`\xA0\x1B\x03\x16`\x02`\0\x81T\x81\x10a\x14sWa\x14saX5V[`\0\x91\x82R` \x90\x91 `\x05\x90\x91\x02\x01Td\x01\0\0\0\0\x90\x04`\x01`\x01`\xA0\x1B\x03\x16\x14a\x14\xA1W`\x01a\x14\xA4V[`\x02[`\0\x80Tg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFFB\x16h\x01\0\0\0\0\0\0\0\0\x02\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16\x81\x17\x83U\x92\x93P\x83\x92\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x17`\x01`\x80\x1B\x83`\x02\x81\x11\x15a\x15HWa\x15HaU3V[\x02\x17\x90U`\x02\x81\x11\x15a\x15]Wa\x15]aU3V[`@Q\x7F^\x18o\t\xB9\xC94\x91\xF1N'~\xEA\x7F\xAA]\xE6\xA2\xD4\xBD\xA7Zy\xAFz6\x84\xFB\xFBB\xDA`\x90`\0\x90\xA2\x90V[`\x05` R\x81`\0R`@`\0 \x81\x81T\x81\x10a\x15\xA5W`\0\x80\xFD[\x90`\0R` `\0 \x01`\0\x91P\x91PPT\x81V[\x90P\x90V[a\x15\xCC\x83\x83\x83`\x01a\x19*V[PPPV[`\0\x81\x81R`\x07` \x90\x81R`@\x80\x83 `\x05\x90\x92R\x82 \x80T\x82Ta\x16\x02\x90a\x01\0\x90\x04c\xFF\xFF\xFF\xFF\x16\x82aX\x93V[\x95\x94PPPPPV[``a\x15\xBA`X` a@\0V[a\x16!a\"\xADV[`\0`\x02`\rT`\xFF\x16`\x02\x81\x11\x15a\x16=`\0\xFD[PPPPPPV[\x80`\0\x03a\x17\xE7W`@Q\x7F\x17\xBF\xE5\xF7\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xA0\x1B\x03\x82\x16`\0\x90\x81R`\x0B` \x90\x81R`@\x80\x83 \x83\x90U`\x03\x90\x91R\x81 U6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\xC0\x015``\x1C`@Q\x7F\xF3\xFE\xF3\xA3\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`\x01`\x01`\xA0\x1B\x03\x84\x81\x16`\x04\x83\x01R`$\x82\x01\x84\x90R\x91\x90\x91\x16\x90c\xF3\xFE\xF3\xA3\x90`D\x01`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a\x18\x85W`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x18\x99W=`\0\x80>=`\0\xFD[PPPP`\0\x82`\x01`\x01`\xA0\x1B\x03\x16\x82`@Q`\0`@Q\x80\x83\x03\x81\x85\x87Z\xF1\x92PPP=\x80`\0\x81\x14a\x18\xEAW`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=`\0` \x84\x01>a\x18\xEFV[``\x91P[PP\x90P\x80a\x15\xCCW`@Q\x7F\x83\xE6\xCCk\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\x01`@Q\x80\x91\x03\x90\xFD[`\0\x80T`\x01`\x80\x1B\x90\x04`\xFF\x16`\x02\x81\x11\x15a\x19IWa\x19IaU3V[\x14a\x19gW`@Qc\x06\x7F\xE1\x95`\xE4\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0`\x02\x84\x81T\x81\x10a\x19|Wa\x19|aX5V[`\0\x91\x82R` \x91\x82\x90 `@\x80Q`\xE0\x81\x01\x82R`\x05\x90\x93\x02\x90\x91\x01\x80Tc\xFF\xFF\xFF\xFF\x81\x16\x84R`\x01`\x01`\xA0\x1B\x03d\x01\0\0\0\0\x90\x91\x04\x81\x16\x94\x84\x01\x94\x90\x94R`\x01\x81\x01T\x90\x93\x16\x90\x82\x01R`\x02\x82\x01T`\x01`\x01`\x80\x1B\x03\x90\x81\x16``\x83\x01R`\x03\x83\x01T`\x80\x83\x01\x81\x90R`\x04\x90\x93\x01T\x80\x82\x16`\xA0\x84\x01R`\x01`\x80\x1B\x90\x04\x16`\xC0\x82\x01R\x91P\x85\x14a\x1A@W`@Q\x7F0\x14\x032\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\x01`@Q\x80\x91\x03\x90\xFD[`\xA0\x81\x01Q`\0\x83\x15`\x01`\x01`\x80\x1B\x03\x83\x16\x17`\x01\x1B\x90P`\0a\x1A\xD5\x82`\x01`\x01`\x80\x1B\x03\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1Fc\x07\xC4\xAC\xDD`\xE0\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\xFF\x16\x90P\x86\x15\x80a\x1B\x10WPa\x1B\r\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x02aXaV[\x81\x14[\x80\x15a\x1B\x1AWP\x84\x15[\x15a\x1BQW`@Q\x7F\xA4&7\xBC\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\x01`@Q\x80\x91\x03\x90\xFD[`\0Tr\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16\x80\x15a\x1BwWP\x86\x15[\x15a\x1B\xAEW`@Q\x7F\x0E\xA2\xE7R\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\x01`@Q\x80\x91\x03\x90\xFD[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81\x11\x15a\x1C\x08W`@Q\x7FV\xF5{+\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\x01`@Q\x80\x91\x03\x90\xFD[a\x1C3\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01aXaV[\x81\x03a\x1CEWa\x1CE\x86\x88\x85\x88a@4V[4a\x1CO\x83a0\xD9V[\x14a\x1C\x86W`@Q\x7F\x86 \xAA\x19\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\x01`@Q\x80\x91\x03\x90\xFD[`\0a\x1C\x91\x88a/?V[\x90Pg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81\x16\x90\x82\x16\x03a\x1C\xF9W`@Q\x7F3\x81\xD1\x14\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\x01`@Q\x80\x91\x03\x90\xFD[`\0a\x1D&`\x01\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0aX\x93V[\x83\x03a\x1E=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x1D\xA0\x91\x90aX\xAAV[`\x01`\x01`\xA0\x1B\x03\x16c\xF3\xF4\x80\xD9`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x1D\xDDW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x1E\x01\x91\x90aX\xC7V[a\x1E5\x90\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16aX\xE0V[\x90Pa\x1E\xCFV[a\x1Eg`\x01\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0aX\x93V[\x83\x03a\x1E\xA2Wa\x1E5\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\x02aY\x0CV[P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16[a\x1F\x03\x81\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16aY=`\0\xFD[PP`@Q3\x93P\x8D\x92P\x8E\x91P\x7F\x9B2Et\x0E\xC3\xB1U\t\x8AU\xBE\x84\x95zM\xA1>\xAF\x7F\x14\xA8\xBCoS\x12l\x0B\x93P\xF2\xBE\x90`\0\x90\xA4PPPPPPPPPPPPV[`\x02`\rT`\xFF\x16`\x02\x81\x11\x15a\"\xC6Wa\"\xC6aU3V[\x14\x80a\"\xE8WP`\x01`\rT`\xFF\x16`\x02\x81\x11\x15a\"\xE6Wa\"\xE6aU3V[\x14[\x15a\"\xEFWV[`\0`\rT`\xFF\x16`\x02\x81\x11\x15a#\x08Wa#\x08aU3V[\x14a#?W`@Q\x7F\x07\x8A=\xF4\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\x01`@Q\x80\x91\x03\x90\xFD[6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\xAC\x015``\x1C`\x01`\x01`\xA0\x1B\x03\x16c\\\x97Z\xBB`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a#\x8FW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a#\xB3\x91\x90aYeV[\x15a#\xEAW`@Q\x7F7\x9A~\xD9\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\x01`@Q\x80\x91\x03\x90\xFD[`\0Th\x01\0\0\0\0\0\0\0\0\x90\x04g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\0\x03a$FW`@Q\x7F\xC1\x05&\n\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\x01`@Q\x80\x91\x03\x90\xFD[`\x006`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\xAC\x015``\x1C`@Q\x7F\x03\x14\xD2\xB3\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\x81R0`\x04\x82\x01R`\x01`\x01`\xA0\x1B\x03\x91\x90\x91\x16\x90c\x03\x14\xD2\xB3\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a$\xBAW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a$\xDE\x91\x90aYeV[\x90P\x80a%\x17W`@Q\x7FHQ\xBD\x9B\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\x01`@Q\x80\x91\x03\x90\xFD[6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\xAC\x015``\x1C`@Q\x7F\x17\xCF!\xA9\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\x81R0`\x04\x82\x01R`\x01`\x01`\xA0\x1B\x03\x91\x90\x91\x16\x90c\x17\xCF!\xA9\x90`$\x01`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a%\x86W`\0\x80\xFD[PZ\xF1\x92PPP\x80\x15a%\x97WP`\x01[P`\x006`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\xAC\x015``\x1C`@Q\x7FIk\x9C\x16\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\x81R0`\x04\x82\x01R`\x01`\x01`\xA0\x1B\x03\x91\x90\x91\x16\x90cIk\x9C\x16\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a&\x0CW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a&0\x91\x90aYeV[\x90P\x80\x15a&JW`\r\x80T`\xFF\x19\x16`\x01\x17\x90Ua&XV[`\r\x80T`\xFF\x19\x16`\x02\x17\x90U[`\rT`@Q\x7F\x99\x08\xEA\xAC\x06E\xDF\x9D\x07\x04\xD0j\xDC\x9E\x073|\x95\x1D\xE2\xF0k_(6\x15\x1DH\xD5\xE4r/\x91a&\x8F\x91`\xFF\x90\x91\x16\x90aUjV[`@Q\x80\x91\x03\x90\xA1PPV[a\x15\xCC\x83\x83\x83`\0a\x19*V[`\0Tq\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16\x15a&\xFAW`@Q\x7F\r\xC1I\xF0\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\x01`@Q\x80\x91\x03\x90\xFD[a'\x02aA\xC3V[6\x14a':W`@Q\x7F\x98$\xBD\xAB\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\x01`@Q\x80\x91\x03\x90\xFD[`\0\x806`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\xAC\x015``\x1C`\x01`\x01`\xA0\x1B\x03\x16c\xD8>\xF2g`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01`@\x80Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a'\x8CW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a'\xB0\x91\x90aY\x82V[\x90\x92P\x90P\x81a'\xECW`@Q\x7Fjk\xC3\xB2\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\x01`@Q\x80\x91\x03\x90\xFD[`@\x80Q\x80\x82\x01\x90\x91R\x82\x81R` \x01\x81\x90R`\x08\x82\x90U`\t\x81\x90U\x806`\x01\x19\x81\x015`\xF0\x1C\x90\x03`X\x015\x11a(gW`@Q\x7F\xF4\x029\xDB\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\x81R6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\x14\x015`\x04\x82\x01R`$\x01[`@Q\x80\x91\x03\x90\xFD[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\x98\x015``\x1C`\x01`\x01`\xA0\x1B\x03\x16c}\xC0\xD1\xD0`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a(\xC0W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a(\xE4\x91\x90aX\xAAV[`\x01`\x01`\xA0\x1B\x03\x16c\xF3\xF4\x80\xD9`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a)!W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a)E\x91\x90aX\xC7V[\x11\x15a)}W`@Q\x7F\xB4\xE1$3\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\x01`@Q\x80\x91\x03\x90\xFD[`\0a)\xB4\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\x02aY\xA6V[\x90P`\x006`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\x98\x015``\x1C`\x01`\x01`\xA0\x1B\x03\x16c}\xC0\xD1\xD0`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a*\x08W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a*,\x91\x90aX\xAAV[`\x01`\x01`\xA0\x1B\x03\x16c\xF3\xF4\x80\xD9`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a*iW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a*\x8D\x91\x90aX\xC7V[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a*\xC8\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90V[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a*\xDC\x91\x90aXaV[\x90P`\0a*\xEA\x83\x83aA\xD1V[\x90Pg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a+.W`@Q\x7F\x8Dw\xEC\xAC\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\x01`@Q\x80\x91\x03\x90\xFD[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x11\x15a+\xA6W`@Q\x7F\x8Dw\xEC\xAC\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\x01`@Q\x80\x91\x03\x90\xFD[`@\x80Q`\xE0\x81\x01\x82Rc\xFF\xFF\xFF\xFF\x80\x82R`\0` \x80\x84\x01\x82\x81R6`\x01\x19\x81\x015`\xF0\x1C\x90\x03\x805``\x90\x81\x1C\x87\x89\x01\x81\x81R`\x01`\x01`\x80\x1B\x034\x81\x81\x16\x94\x8B\x01\x94\x85R`\x14\x90\x95\x015`\x80\x8B\x01\x90\x81R`\x01`\xA0\x8C\x01\x81\x81RB\x84\x16`\xC0\x8E\x01\x90\x81R`\x02\x80T\x93\x84\x01\x81U\x8CR\x9CQ\x7F@W\x87\xFA\x12\xA8#\xE0\xF2\xB7c\x1C\xC4\x1B;\xA8\x82\x8B3!\xCA\x81\x11\x11\xFAu\xCD:\xA3\xBBZ\xCE`\x05\x90\x93\x02\x92\x83\x01\x80T\x9AQ\x91\x90\x9D\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x9A\x16\x99\x90\x99\x17d\x01\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x9A\x8B\x16\x02\x17\x90\x9BU\x92Q\x7F@W\x87\xFA\x12\xA8#\xE0\xF2\xB7c\x1C\xC4\x1B;\xA8\x82\x8B3!\xCA\x81\x11\x11\xFAu\xCD:\xA3\xBBZ\xCF\x84\x01\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x91\x90\x98\x16\x17\x90\x96U\x92Q\x7F@W\x87\xFA\x12\xA8#\xE0\xF2\xB7c\x1C\xC4\x1B;\xA8\x82\x8B3!\xCA\x81\x11\x11\xFAu\xCD:\xA3\xBBZ\xD0\x82\x01\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x91\x85\x16\x91\x90\x91\x17\x90U\x93Q\x7F@W\x87\xFA\x12\xA8#\xE0\xF2\xB7c\x1C\xC4\x1B;\xA8\x82\x8B3!\xCA\x81\x11\x11\xFAu\xCD:\xA3\xBBZ\xD1\x85\x01U\x95Q\x96Q\x96\x81\x16`\x01`\x80\x1B\x97\x90\x91\x16\x96\x90\x96\x02\x95\x90\x95\x17\x7F@W\x87\xFA\x12\xA8#\xE0\xF2\xB7c\x1C\xC4\x1B;\xA8\x82\x8B3!\xCA\x81\x11\x11\xFAu\xCD:\xA3\xBBZ\xD2\x90\x91\x01U\x81Tq\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x17\x82U\x91\x81R`\x0B\x90\x91R\x91\x82 \x80T\x91\x92\x90\x91a-\xE7\x90\x84\x90aXaV[\x90\x91UPP6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\xC0\x015``\x1C`\x01`\x01`\xA0\x1B\x03\x16c\xD0\xE3\r\xB04`@Q\x82c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01`\0`@Q\x80\x83\x03\x81\x85\x88\x80;\x15\x80\x15a.9W`\0\x80\xFD[PZ\xF1\x15\x80\x15a.MW=`\0\x80>=`\0\xFD[PP`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\x16Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x17\x90UPa.\x90\x91Pa/)\x90PV[c\xFF\xFF\xFF\xFF\x166`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\xAC\x015``\x1C`\x01`\x01`\xA0\x1B\x03\x16c<\x9F9|`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a.\xE6W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a/\n\x91\x90aY\xC5V[`\n\x80T`\xFF\x19\x16c\xFF\xFF\xFF\xFF\x92\x90\x92\x16\x92\x90\x92\x14\x17\x90UPPPPPV[6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`T\x015`\xE0\x1C\x90V[`\0\x80`\0T`\x01`\x80\x1B\x90\x04`\xFF\x16`\x02\x81\x11\x15a/`Wa/`aU3V[\x14a/~W`@Qc\x06\x7F\xE1\x95`\xE4\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0`\x02\x83\x81T\x81\x10a/\x93Wa/\x93aX5V[`\0\x91\x82R` \x82 `\x05\x90\x91\x02\x01\x80T\x90\x92Pc\xFF\xFF\xFF\xFF\x90\x81\x16\x14a/\xF9W\x81T`\x02\x80T\x90\x91c\xFF\xFF\xFF\xFF\x16\x90\x81\x10a/\xD1Wa/\xD1aX5V[\x90`\0R` `\0 \x90`\x05\x02\x01`\x04\x01`\x10\x90T\x90a\x01\0\n\x90\x04`\x01`\x01`\x80\x1B\x03\x16\x90P[`\x04\x82\x01T`\0\x90a0$\x90`\x01`\x80\x1B\x90\x04g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90V[a08\x90g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16BaX\x93V[a0Na0\x17\x84`\x01`\x01`\x80\x1B\x03\x16`@\x1C\x90V[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a0b\x91\x90aXaV[\x90Pg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x11a0\xAFW\x80a\x16\x02V[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x95\x94PPPPPV[`\0\x80a1V\x83`\x01`\x01`\x80\x1B\x03\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1Fc\x07\xC4\xAC\xDD`\xE0\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\xFF\x16\x90P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81\x11\x15a1\xB5W`@Q\x7FV\xF5{+\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\x01`@Q\x80\x91\x03\x90\xFD[d.\x90\xED\xD0\0b\x06\x1A\x80c\x11\xE1\xA3\0`\0a1\xD0\x83\x83aZ\x01V[\x90Pg\r\xE0\xB6\xB3\xA7d\0\0`\0a2\x07\x82\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0aY\xA6V[\x90P`\0a2%a2 g\r\xE0\xB6\xB3\xA7d\0\0\x86aY\xA6V[aA\xECV[\x90P`\0a23\x84\x84aD>V[\x90P`\0a2A\x83\x83aD\x8DV[\x90P`\0a2N\x82aD\xBBV[\x90P`\0a2m\x82a2hg\r\xE0\xB6\xB3\xA7d\0\0\x8FaY\xA6V[aF\xA3V[\x90P`\0a2{\x8B\x83aD\x8DV[\x90Pa2\x87\x81\x8DaY\xA6V[\x9F\x9EPPPPPPPPPPPPPPPV[`\x02\x81\x81T\x81\x10a2\xAAW`\0\x80\xFD[`\0\x91\x82R` \x90\x91 `\x05\x90\x91\x02\x01\x80T`\x01\x82\x01T`\x02\x83\x01T`\x03\x84\x01T`\x04\x90\x94\x01Tc\xFF\xFF\xFF\xFF\x84\x16\x95Pd\x01\0\0\0\0\x90\x93\x04`\x01`\x01`\xA0\x1B\x03\x90\x81\x16\x94\x92\x16\x92`\x01`\x01`\x80\x1B\x03\x91\x82\x16\x92\x91\x80\x82\x16\x91`\x01`\x80\x1B\x90\x04\x16\x87V[`\0`\x02`\rT`\xFF\x16`\x02\x81\x11\x15a3)Wa3)aU3V[\x03a3JWP`\x01`\x01`\xA0\x1B\x03\x16`\0\x90\x81R`\x0B` R`@\x90 T\x90V[P`\x01`\x01`\xA0\x1B\x03\x16`\0\x90\x81R`\x03` R`@\x90 T\x90V[`\0\x80T`\x01`\x80\x1B\x90\x04`\xFF\x16`\x02\x81\x11\x15a3\x85Wa3\x85aU3V[\x14a3\xA3W`@Qc\x06\x7F\xE1\x95`\xE4\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0`\x02\x87\x81T\x81\x10a3\xB8Wa3\xB8aX5V[`\0\x91\x82R` \x82 `\x05\x91\x90\x91\x02\x01`\x04\x81\x01T\x90\x92P`\x01`\x01`\x80\x1B\x03\x16\x90\x87\x15\x82\x17`\x01\x1B\x90Pa4\x0E\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01aXaV[a4\x88\x82`\x01`\x01`\x80\x1B\x03\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1Fc\x07\xC4\xAC\xDD`\xE0\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\xFF\x16\x14a4\xC2W`@Q\x7F_S\xDD\x98\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\x01`@Q\x80\x91\x03\x90\xFD[`\0\x80\x89\x15a5\x8DWa5\x15\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0aX\x93V[`\x01\x90\x1Ba5+\x84`\x01`\x01`\x80\x1B\x03\x16aF\xD4V[`\x01`\x01`\x80\x1B\x03\x16a5>\x91\x90aZ\x15V[\x15a5rWa5ia5Z`\x01`\x01`\x01`\x80\x1B\x03\x87\x16aZ)V[\x86Tc\xFF\xFF\xFF\xFF\x16`\0aGZV[`\x03\x01Ta5\x83V[6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`x\x015[\x91P\x84\x90Pa5\xAEV[`\x03\x85\x01T\x91Pa5\xABa5Z`\x01`\x01`\x80\x1B\x03\x86\x16`\x01aZIV[\x90P[`\x08\x82\x90\x1B`\x08\x8A\x8A`@Qa5\xC5\x92\x91\x90aX%V[`@Q\x80\x91\x03\x90 \x90\x1B\x14a6\x06W`@Q\x7FieP\xFF\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\x01`@Q\x80\x91\x03\x90\xFD[`\0a6\x11\x8CaH#V[\x90P`\0a6 \x83`\x03\x01T\x90V[`@Q\x7F\xE1L\xED2\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\x81R6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\x98\x015``\x1C\x90c\xE1L\xED2\x90a6v\x90\x8F\x90\x8F\x90\x8F\x90\x8F\x90\x8A\x90`\x04\x01aZ\xB4V[` `@Q\x80\x83\x03\x81`\0\x87Z\xF1\x15\x80\x15a6\x95W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a6\xB9\x91\x90aX\xC7V[`\x04\x85\x01T\x91\x14\x91P`\0\x90`\x02\x90a7B\x90`\x01`\x01`\x80\x1B\x03\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1Fc\x07\xC4\xAC\xDD`\xE0\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[a7\xBC\x89`\x01`\x01`\x80\x1B\x03\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1Fc\x07\xC4\xAC\xDD`\xE0\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[a7\xC6\x91\x90aZ\xEEV[a7\xD0\x91\x90a[\x11V[`\xFF\x16\x15\x90P\x81\x15\x15\x81\x03a8\x11W`@Q\x7F\xFBN@\xDD\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\x01`@Q\x80\x91\x03\x90\xFD[\x87Td\x01\0\0\0\0\x90\x04`\x01`\x01`\xA0\x1B\x03\x16\x15a8[W`@Q\x7F\x90q\xE6\xAF\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\x01`@Q\x80\x91\x03\x90\xFD[PP\x85T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xFF\xFF\xFF\xFF\x163d\x01\0\0\0\0\x02\x17\x90\x95UPPPPPPPPPPPV[`\0\x80T`\x01`\x80\x1B\x90\x04`\xFF\x16`\x02\x81\x11\x15a8\xB9Wa8\xB9aU3V[\x14a8\xD7W`@Qc\x06\x7F\xE1\x95`\xE4\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0\x80`\0\x80a8\xE6\x86aHRV[\x93P\x93P\x93P\x93P`\0a8\xFC\x85\x85\x85\x85aK\xABV[\x90P`\x006`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\x98\x015``\x1C`\x01`\x01`\xA0\x1B\x03\x16c}\xC0\xD1\xD0`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a9PW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a9t\x91\x90aX\xAAV[\x90P`\x01\x89\x03a:AW`\x01`\x01`\xA0\x1B\x03\x81\x16cR\xF0\xF3\xAD\x8A\x84a9\xA56`\x01\x19\x81\x015`\xF0\x1C\x90\x03`4\x015\x90V[`@Q\x7F\xFF\xFF\xFF\xFF\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`\xE0\x86\x90\x1B\x16\x81R`\x04\x81\x01\x93\x90\x93R`$\x83\x01\x91\x90\x91R`D\x82\x01R` `d\x82\x01R`\x84\x81\x01\x8A\x90R`\xA4\x01[` `@Q\x80\x83\x03\x81`\0\x87Z\xF1\x15\x80\x15a:\x17W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a:;\x91\x90aX\xC7V[Pa\x13\xA6V[`\x02\x89\x03a:`W`\x01`\x01`\xA0\x1B\x03\x81\x16cR\xF0\xF3\xAD\x8A\x84\x89a9\xA5V[`\x03\x89\x03a:\x7FW`\x01`\x01`\xA0\x1B\x03\x81\x16cR\xF0\xF3\xAD\x8A\x84\x87a9\xA5V[`\x04\x89\x03a;\xB4W`\0a:\xBC`\x01`\x01`\x80\x1B\x03\x85\x16\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0aLJV[`\tTa:\xC9\x91\x90aXaV[a:\xD4\x90`\x01aXaV[\x90P6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`X\x015\x81\x10a;\x01W6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`X\x015a;\x03V[\x80[\x90P`\x01`\x01`\xA0\x1B\x03\x82\x16cR\xF0\xF3\xAD\x8B\x85`@Q`\xE0\x84\x90\x1B\x7F\xFF\xFF\xFF\xFF\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\x16\x81R`\x04\x81\x01\x92\x90\x92R`$\x82\x01R`\xC0\x84\x90\x1B`D\x82\x01R`\x08`d\x82\x01R`\x84\x81\x01\x8B\x90R`\xA4\x01` `@Q\x80\x83\x03\x81`\0\x87Z\xF1\x15\x80\x15a;\x89W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a;\xAD\x91\x90aX\xC7V[PPa\x13\xA6V[`\x05\x89\x03a\x10W\x90PP\x93P`\0\x83[\x86Q\x81\x10\x15a>\xFEW`\0\x80a>\x83`@Q\x80`@\x01`@R\x80\x85\x8C`\0\x01Qa>g\x91\x90aX\x93V[\x81R` \x01\x85\x8C` \x01Qa>|\x91\x90aXaV[\x90RaL\xDFV[P\x91P\x91P`@Q\x80`@\x01`@R\x80\x83\x83a>\x9F\x91\x90aXaV[\x81R` \x01\x84\x8B` \x01Qa>\xB4\x91\x90aXaV[\x81RP\x88\x85\x81Q\x81\x10a>\xC9Wa>\xC9aX5V[` \x90\x81\x02\x91\x90\x91\x01\x01Ra>\xDF`\x01\x85aXaV[\x93Pa>\xEB\x81\x83aXaV[a>\xF5\x90\x84aXaV[\x92PPPa>=V[P\x84RP\x91\x93\x92PPPV[```\0\x80`\0a?\x1A\x85aL\xDFV[\x91\x94P\x92P\x90P`\0\x81`\x01\x81\x11\x15a?5Wa?5aU3V[\x14a?lW`@Q\x7F\x1F\xF9\xB2\xE4\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\x01`@Q\x80\x91\x03\x90\xFD[a?v\x82\x84aXaV[\x85Q\x14a?\xAFW`@Q\x7F\\U7\xB8\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\x01`@Q\x80\x91\x03\x90\xFD[a\x16\x02\x85` \x01Q\x84\x84aQ}V[`\x02\x81\x01T`\x01`\x01`\xA0\x1B\x03\x83\x16`\0\x90\x81R`\x03` R`@\x81 \x80T`\x01`\x01`\x80\x1B\x03\x90\x93\x16\x92\x90\x91\x90a?\xF7\x90\x84\x90aXaV[\x90\x91UPPPPV[`@Q\x81\x81R6`\x01\x19\x81\x015`\xF0\x1C\x90\x03\x82\x84\x82\x01` \x84\x017\x82` \x83\x01\x01`\0\x81R` \x81\x01`@RPP\x92\x91PPV[`\0a@J`\x01`\x01`\x80\x1B\x03\x84\x16`\x01aZIV[\x90P`\0a@Z\x82\x86`\x01aGZV[\x90P`\0\x86\x90\x1A\x83\x80aA$WPa@\x93`\x02\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0aZ\x15V[`\x04\x83\x01T`\x02\x90aA\x15\x90`\x01`\x01`\x80\x1B\x03\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1Fc\x07\xC4\xAC\xDD`\xE0\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[aA\x1F\x91\x90a[\x11V[`\xFF\x16\x14[\x15aA|W`\xFF\x81\x16`\x01\x14\x80aA>WP`\xFF\x81\x16`\x02\x14[aAwW`@Q\x7F\xF4\x029\xDB\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\x81\x01\x88\x90R`$\x01a(^V[aA\xBAV[`\xFF\x81\x16\x15aA\xBAW`@Q\x7F\xF4\x029\xDB\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\x81\x01\x88\x90R`$\x01a(^V[PPPPPPPV[`\0a\x15\xBA`\xF4`\x06aXaV[`\0\x81\x83\x10\x15aA\xE1W\x81aA\xE3V[\x82[\x90P[\x92\x91PPV[`\x01`\x01`\x80\x1B\x03\x81\x11`\x07\x1B\x81\x81\x1Cg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x10`\x06\x1B\x17\x81\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x81\x81\x1Ca\xFF\xFF\x10`\x04\x1B\x17\x81\x81\x1C`\xFF\x10`\x03\x1B\x17`\0\x82\x13aBBWc\x16\x15\xE68`\0R`\x04`\x1C\xFD[\x7F\xF8\xF9\xF9\xFA\xF9\xFD\xFA\xFB\xF9\xFD\xFC\xFD\xFA\xFB\xFC\xFE\xF9\xFA\xFD\xFA\xFC\xFC\xFB\xFE\xFA\xFA\xFC\xFB\xFF\xFF\xFF\xFFo\x84!\x08B\x10\x84!\x08\xCCc\x18\xC6\xDBmT\xBE\x83\x83\x1C\x1C`\x1F\x16\x1A\x18\x90\x81\x1B`\x9F\x90\x81\x1ClFWr\xB2\xBB\xBB_\x82K\x15 z0\x81\x01\x81\x02``\x90\x81\x1Dm\x03\x88\xEA\xA2t\x12\xD5\xAC\xA0&\x81]cn\x01\x82\x02\x81\x1Dm\r\xF9\x9A\xC5\x02\x03\x1B\xF9S\xEF\xF4r\xFD\xCC\x01\x82\x02\x81\x1Dm\x13\xCD\xFF\xB2\x9DQ\xD9\x93\"\xBD\xFF_\"\x11\x01\x82\x02\x81\x1Dm\n\x0Ft #\xDE\xF7\x83\xA3\x07\xA9\x86\x91.\x01\x82\x02\x81\x1Dm\x01\x92\r\x80C\xCA\x89\xB5#\x92S(NB\x01\x82\x02\x81\x1Dl\x0Bz\x86\xD77Th\xFA\xC6g\xA0\xA5'\x01l)P\x8EE\x85C\xD8\xAAM\xF2\xAB\xEEx\x83\x01\x83\x02\x82\x1Dm\x019`\x1A.\xFA\xBEq~`L\xBBH\x94\x01\x83\x02\x82\x1Dm\x02$\x7Fz{e\x942\x06I\xAA\x03\xAB\xA1\x01\x83\x02\x82\x1D\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFFs\xC0\xC7\x16\xA5\x94\xE0\rT\xE3\xC4\xCB\xC9\x01\x83\x02\x82\x1D\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFD\xC7\xB8\x8CB\x0ES\xA9\x89\x053\x12\x9Fo\x01\x83\x02\x90\x91\x1D\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFFF_\xDA'\xEBMc\xDE\xD4t\xE5\xF82\x01\x90\x91\x02\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF5\xF6\xAF\x8F{3\x96dO\x18\xE1W\x96\0\0\0\0\0\0\0\0\0\0\0\0\x01\x05q\x13@\xDA\xA0\xD5\xF7i\xDB\xA1\x91\\\xEFY\xF0\x81ZU\x06\x02\x91\x90\x03}\x02g\xA3l\x0C\x95\xB3\x97Z\xB3\xEE[ :v\x14\xA3\xF7Ss\xF0G\xD8\x03\xAE{f\x87\xF2\xB3\x02\x01}W\x11^G\x01\x8Cqw\xEE\xBF|\xD3p\xA35j\x1Bxc\0\x8AZ\xE8\x02\x8Cr\xB8\x86B\x84\x01`\xAE\x1D\x90V[`\0x\x12r]\xD1\xD2C\xAB\xA0\xE7_\xE6E\xCCHs\xF9\xE6Z\xFEh\x8C\x92\x8E\x1F!\x83\x11g\r\xE0\xB6\xB3\xA7d\0\0\x02\x15\x82\x02aD{Wc|_H}`\0R`\x04`\x1C\xFD[Pg\r\xE0\xB6\xB3\xA7d\0\0\x91\x90\x91\x02\x04\x90V[`\0\x81`\0\x19\x04\x83\x11\x82\x02\x15aD\xABWc\xBA\xC6^[`\0R`\x04`\x1C\xFD[Pg\r\xE0\xB6\xB3\xA7d\0\0\x91\x02\x04\x90V[`\0\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFD\xC0\xD0W\t%\xA4b\xD7\x82\x13aD\xE9W\x91\x90PV[h\x07U\xBFy\x8BJ\x1B\xF1\xE5\x82\x12aE\x07Wc\xA3{\xFE\xC9`\0R`\x04`\x1C\xFD[e\x03x-\xAC\xE9\xD9`N\x83\x90\x1B\x05\x91P`\0``k\xB1r\x17\xF7\xD1\xCFy\xAB\xC9\xE3\xB3\x98\x84\x82\x1B\x05k\x80\0\0\0\0\0\0\0\0\0\0\0\x01\x90\x1Dk\xB1r\x17\xF7\xD1\xCFy\xAB\xC9\xE3\xB3\x98\x81\x02\x90\x93\x03\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xDB\xF3\xCC\xF1`M&4P\xF0*U\x04\x81\x01\x81\x02``\x90\x81\x1Dm\x02wYI\x91\xCF\xC8_n$a\x83|\xD9\x01\x82\x02\x81\x1D\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE5\xAD\xED\xAA\x1C\xB0\x95\xAF\x9EM\xA1\x0E6<\x01\x82\x02\x81\x1Dm\xB1\xBB\xB2\x01\xF4C\xCF\x96/\x1A\x1D=\xB4\xA5\x01\x82\x02\x81\x1D\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFD8\xDCw&\x08\xB0\xAEV\xCC\xE0\x12\x96\xC0\xEB\x01\x82\x02\x81\x1Dn\x05\x18\x0B\xB1G\x99\xABG\xA8\xA8\xCB*R}W\x01m\x02\xD1g W{\xD1\x9B\xF6\x14\x17o\xE9\xEAl\x10\xFEh\xE7\xFD7\xD0\0{q?vP\x84\x01\x84\x02\x83\x1D\x90\x81\x01\x90\x84\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE,i\x81,\xF0;\x07c\xFDEJ\x8F~\x01\x02\x90\x91\x1Dn\x05\x87\xF5\x03\xBBn\xA2\x9D%\xFC\xB7@\x19dP\x01\x90\x91\x02y\xD85\xEB\xBA\x82L\x98\xFB1\xB8;,\xA4\\\0\0\0\0\0\0\0\0\0\0\0\0\x01\x05t\x02\x9D\x9D\xC3\x85c\xC3.\\/m\xC1\x92\xEEp\xEFe\xF9\x97\x8A\xF3\x02`\xC3\x93\x90\x93\x03\x92\x90\x92\x1C\x92\x91PPV[`\0aA\xE3g\r\xE0\xB6\xB3\xA7d\0\0\x83aF\xBB\x86aA\xECV[aF\xC5\x91\x90a[3V[aF\xCF\x91\x90a[\xEFV[aD\xBBV[`\0\x80aGH\x83~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1Fc\x07\xC4\xAC\xDD`\xE0\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\x01`\xFF\x91\x90\x91\x16\x1B\x90\x92\x03\x92\x91PPV[`\0\x80\x82aG\x9AWaG\x95`\x01`\x01`\x80\x1B\x03\x86\x16\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0aR\x12V[aG\xACV[aG\xAC\x85`\x01`\x01`\x80\x1B\x03\x16aSQV[\x90P`\x02\x84\x81T\x81\x10aG\xC1WaG\xC1aX5V[\x90`\0R` `\0 \x90`\x05\x02\x01\x91P[`\x04\x82\x01T`\x01`\x01`\x80\x1B\x03\x82\x81\x16\x91\x16\x14aH\x1BW\x81T`\x02\x80T\x90\x91c\xFF\xFF\xFF\xFF\x16\x90\x81\x10aH\x06WaH\x06aX5V[\x90`\0R` `\0 \x90`\x05\x02\x01\x91PaG\xD2V[P\x93\x92PPPV[`\0\x80`\0\x80`\0aH4\x86aHRV[\x93P\x93P\x93P\x93PaHH\x84\x84\x84\x84aK\xABV[\x96\x95PPPPPPV[`\0\x80`\0\x80`\0\x85\x90P`\0`\x02\x82\x81T\x81\x10aHrWaHraX5V[`\0\x91\x82R` \x90\x91 `\x04`\x05\x90\x92\x02\x01\x90\x81\x01T\x90\x91P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90aI'\x90`\x01`\x01`\x80\x1B\x03\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1Fc\x07\xC4\xAC\xDD`\xE0\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\xFF\x16\x11aIaW`@Q\x7F\xB3K\\\"\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\x01`@Q\x80\x91\x03\x90\xFD[`\0\x81[`\x04\x83\x01T\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90aJ\x06\x90`\x01`\x01`\x80\x1B\x03\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1Fc\x07\xC4\xAC\xDD`\xE0\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\xFF\x16\x92P\x82\x11\x15aJ{W\x82Tc\xFF\xFF\xFF\xFF\x16aJE\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01aXaV[\x83\x03aJOW\x83\x91P[`\x02\x81\x81T\x81\x10aJbWaJbaX5V[\x90`\0R` `\0 \x90`\x05\x02\x01\x93P\x80\x94PPaIeV[`\x04\x81\x81\x01T\x90\x84\x01T`\x01`\x01`\x80\x1B\x03\x91\x82\x16\x91\x16`\0\x81`\x01`\x01`\x80\x1B\x03\x16aJ\xC0aJ\xB4\x85`\x01`\x01`\x80\x1B\x03\x16`\x01\x1C\x90V[`\x01`\x01`\x80\x1B\x03\x16\x90V[`\x01`\x01`\x80\x1B\x03\x16\x14\x90P\x80\x15aKYW`\0aJ\xE6\x83`\x01`\x01`\x80\x1B\x03\x16aF\xD4V[`\x01`\x01`\x80\x1B\x03\x16\x11\x15aK6W`\0aK\x16aK\x0E`\x01`\x01`\x01`\x80\x1B\x03\x86\x16aZ)V[\x89`\x01aGZV[`\x03\x81\x01T`\x04\x90\x91\x01T\x90\x9CP`\x01`\x01`\x80\x1B\x03\x16\x9APaK<\x90PV[`\x08T\x9AP[`\x03\x86\x01T`\x04\x87\x01T\x90\x99P`\x01`\x01`\x80\x1B\x03\x16\x97PaK\x9DV[`\0aKraK\x0E`\x01`\x01`\x80\x1B\x03\x85\x16`\x01aZIV[`\x03\x80\x89\x01T`\x04\x80\x8B\x01T\x92\x84\x01T\x93\x01T\x90\x9EP`\x01`\x01`\x80\x1B\x03\x91\x82\x16\x9DP\x91\x9BP\x16\x98PP[PPPPPPP\x91\x93P\x91\x93V[`\0`\x01`\x01`\x80\x1B\x03\x84\x16\x15aL\x06W`@\x80Q` \x81\x01\x87\x90R`\x01`\x01`\x80\x1B\x03\x80\x87\x16\x92\x82\x01\x92\x90\x92R``\x81\x01\x85\x90R\x90\x83\x16`\x80\x82\x01R`\xA0\x01`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 a\x16\x02V[\x82\x82`@Q` \x01aL+\x92\x91\x90\x91\x82R`\x01`\x01`\x80\x1B\x03\x16` \x82\x01R`@\x01\x90V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 \x95\x94PPPPPV[`\0\x80aL\xBE\x84~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1Fc\x07\xC4\xAC\xDD`\xE0\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\xFF\x16\x90P\x80\x83\x03`\x01\x84\x1B`\x01\x80\x83\x1B\x03\x86\x83\x1B\x17\x03\x92PPP\x92\x91PPV[`\0\x80`\0\x83`\0\x01Q`\0\x03aM\"W`@Q\x7FZ\xB4X\xFB\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\x01`@Q\x80\x91\x03\x90\xFD[` \x84\x01Q\x80Q`\0\x1A`\x7F\x81\x11aMGW`\0`\x01`\0\x94P\x94P\x94PPPaQvV[`\xB7\x81\x11aN]W`\0aM\\`\x80\x83aX\x93V[\x90P\x80\x87`\0\x01Q\x11aM\x9BW`@Q\x7Ff\xC9D\x85\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01\x83\x81\x01Q\x7F\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x90\x82\x14\x80\x15aN\x13WP\x7F\x80\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x7F\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x82\x16\x10[\x15aNJW`@Q\x7F\xBA\xBB\x01\xDD\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\x01`@Q\x80\x91\x03\x90\xFD[P`\x01\x95P\x93P`\0\x92PaQv\x91PPV[`\xBF\x81\x11aO\xBBW`\0aNr`\xB7\x83aX\x93V[\x90P\x80\x87`\0\x01Q\x11aN\xB1W`@Q\x7Ff\xC9D\x85\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01\x83\x01Q\x7F\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16`\0\x81\x90\x03aO\x13W`@Q\x7F\xBA\xBB\x01\xDD\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01\x84\x01Q`\x08\x83\x02a\x01\0\x03\x1C`7\x81\x11aO[W`@Q\x7F\xBA\xBB\x01\xDD\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\x01`@Q\x80\x91\x03\x90\xFD[aOe\x81\x84aXaV[\x89Q\x11aO\x9EW`@Q\x7Ff\xC9D\x85\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\x01`@Q\x80\x91\x03\x90\xFD[aO\xA9\x83`\x01aXaV[\x97P\x95P`\0\x94PaQv\x93PPPPV[`\xF7\x81\x11aP W`\0aO\xD0`\xC0\x83aX\x93V[\x90P\x80\x87`\0\x01Q\x11aP\x0FW`@Q\x7Ff\xC9D\x85\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01\x95P\x93P\x84\x92PaQv\x91PPV[`\0aP-`\xF7\x83aX\x93V[\x90P\x80\x87`\0\x01Q\x11aPlW`@Q\x7Ff\xC9D\x85\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01\x83\x01Q\x7F\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16`\0\x81\x90\x03aP\xCEW`@Q\x7F\xBA\xBB\x01\xDD\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01\x84\x01Q`\x08\x83\x02a\x01\0\x03\x1C`7\x81\x11aQ\x16W`@Q\x7F\xBA\xBB\x01\xDD\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\x01`@Q\x80\x91\x03\x90\xFD[aQ \x81\x84aXaV[\x89Q\x11aQYW`@Q\x7Ff\xC9D\x85\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\x01`@Q\x80\x91\x03\x90\xFD[aQd\x83`\x01aXaV[\x97P\x95P`\x01\x94PaQv\x93PPPPV[\x91\x93\x90\x92PV[``\x81g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15aQ\x98WaQ\x98aW\x9BV[`@Q\x90\x80\x82R\x80`\x1F\x01`\x1F\x19\x16` \x01\x82\x01`@R\x80\x15aQ\xC2W` \x82\x01\x81\x806\x837\x01\x90P[P\x90P\x81\x15aR\x0BW`\0aQ\xD7\x84\x86aXaV[\x90P` \x82\x01`\0[\x84\x81\x10\x15aQ\xF8W\x82\x81\x01Q\x82\x82\x01R` \x01aQ\xE0V[\x84\x81\x11\x15aR\x07W`\0\x85\x83\x01R[PPP[\x93\x92PPPV[`\0\x81aR\x8F\x84`\x01`\x01`\x80\x1B\x03\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1Fc\x07\xC4\xAC\xDD`\xE0\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\xFF\x16\x11aR\xA5Wc\xB3K\\\"`\0R`\x04`\x1C\xFD[aR\xAE\x83aSQV[\x90P\x81aS+\x82`\x01`\x01`\x80\x1B\x03\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1Fc\x07\xC4\xAC\xDD`\xE0\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\xFF\x16\x11aA\xE6WaA\xE3aSA\x83`\x01aXaV[`\x01`\x01`\x80\x1B\x03\x83\x16\x90aS\xDDV[`\0\x81\x19`\x01\x83\x01\x16\x81aS\xCC\x82~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1Fc\x07\xC4\xAC\xDD`\xE0\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\xFF\x16\x93\x90\x93\x1C\x80\x15\x17\x93\x92PPPV[`\0\x80aTQ\x84~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1Fc\x07\xC4\xAC\xDD`\xE0\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\xFF\x16\x90P\x80\x83\x03`\x01\x80\x82\x1B\x03\x85\x82\x1B\x17\x92PPP\x92\x91PPV[`\0\x80\x83`\x1F\x84\x01\x12aT\x7FW`\0\x80\xFD[P\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15aT\x97W`\0\x80\xFD[` \x83\x01\x91P\x83` \x82\x85\x01\x01\x11\x15aT\xAFW`\0\x80\xFD[\x92P\x92\x90PV[`\0\x80`\0\x83\x85\x03`\xA0\x81\x12\x15aT\xCCW`\0\x80\xFD[`\x80\x81\x12\x15aT\xDAW`\0\x80\xFD[P\x83\x92P`\x80\x84\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15aT\xF8W`\0\x80\xFD[aU\x04\x86\x82\x87\x01aTmV[\x94\x97\x90\x96P\x93\x94PPPPV[`\0\x80`@\x83\x85\x03\x12\x15aU$W`\0\x80\xFD[PP\x805\x92` \x90\x91\x015\x91PV[cNH{q`\xE0\x1B`\0R`!`\x04R`$`\0\xFD[`\x03\x81\x10aUgWcNH{q`\xE0\x1B`\0R`!`\x04R`$`\0\xFD[PV[` \x81\x01aUw\x83aUIV[\x91\x90R\x90V[`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14aUgW`\0\x80\xFD[`\0` \x82\x84\x03\x12\x15aU\xA4W`\0\x80\xFD[\x815aR\x0B\x81aU}V[`\0\x80`\0``\x84\x86\x03\x12\x15aU\xC4W`\0\x80\xFD[PP\x815\x93` \x83\x015\x93P`@\x90\x92\x015\x91\x90PV[`\0\x81Q\x80\x84R`\0[\x81\x81\x10\x15aV\x01W` \x81\x85\x01\x81\x01Q\x86\x83\x01\x82\x01R\x01aU\xE5V[\x81\x81\x11\x15aV\x13W`\0` \x83\x87\x01\x01R[P`\x1F\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x92\x90\x92\x01` \x01\x92\x91PPV[` \x81R`\0aA\xE3` \x83\x01\x84aU\xDBV[`\0` \x82\x84\x03\x12\x15aVkW`\0\x80\xFD[P5\x91\x90PV[\x80\x15\x15\x81\x14aUgW`\0\x80\xFD[`\0\x80`\0\x80`\x80\x85\x87\x03\x12\x15aV\x96W`\0\x80\xFD[\x845\x93P` \x85\x015\x92P`@\x85\x015\x91P``\x85\x015aV\xB6\x81aVrV[\x93\x96\x92\x95P\x90\x93PPV[`\0` \x82\x84\x03\x12\x15aV\xD3W`\0\x80\xFD[\x815`\x01`\x01`\x80\x1B\x03\x81\x16\x81\x14aR\x0BW`\0\x80\xFD[`\0\x80`\0\x80`\0\x80`\x80\x87\x89\x03\x12\x15aW\x03W`\0\x80\xFD[\x865\x95P` \x87\x015aW\x15\x81aVrV[\x94P`@\x87\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15aW2W`\0\x80\xFD[aW>\x8A\x83\x8B\x01aTmV[\x90\x96P\x94P``\x89\x015\x91P\x80\x82\x11\x15aWWW`\0\x80\xFD[PaWd\x89\x82\x8A\x01aTmV[\x97\x9A\x96\x99P\x94\x97P\x92\x95\x93\x94\x92PPPV[c\xFF\xFF\xFF\xFF\x84\x16\x81R\x82` \x82\x01R```@\x82\x01R`\0a\x16\x02``\x83\x01\x84aU\xDBV[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[`\0`\x80\x82\x84\x03\x12\x15aW\xC3W`\0\x80\xFD[`@Q`\x80\x81\x01\x81\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17\x15aW\xF4WcNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[\x80`@RP\x825\x81R` \x83\x015` \x82\x01R`@\x83\x015`@\x82\x01R``\x83\x015``\x82\x01R\x80\x91PP\x92\x91PPV[\x81\x83\x827`\0\x91\x01\x90\x81R\x91\x90PV[cNH{q`\xE0\x1B`\0R`2`\x04R`$`\0\xFD[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[`\0\x82\x19\x82\x11\x15aXtWaXtaXKV[P\x01\x90V[`\0`\0\x19\x82\x03aX\x8CWaX\x8CaXKV[P`\x01\x01\x90V[`\0\x82\x82\x10\x15aX\xA5WaX\xA5aXKV[P\x03\x90V[`\0` \x82\x84\x03\x12\x15aX\xBCW`\0\x80\xFD[\x81QaR\x0B\x81aU}V[`\0` \x82\x84\x03\x12\x15aX\xD9W`\0\x80\xFD[PQ\x91\x90PV[`\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x83\x16\x81\x85\x16\x80\x83\x03\x82\x11\x15aY\x03WaY\x03aXKV[\x01\x94\x93PPPPV[`\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x83\x16\x81\x85\x16\x81\x83\x04\x81\x11\x82\x15\x15\x16\x15aY3WaY3aXKV[\x02\x94\x93PPPPV[`\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x81\x16\x90\x83\x16\x81\x81\x10\x15aY]WaY]aXKV[\x03\x93\x92PPPV[`\0` \x82\x84\x03\x12\x15aYwW`\0\x80\xFD[\x81QaR\x0B\x81aVrV[`\0\x80`@\x83\x85\x03\x12\x15aY\x95W`\0\x80\xFD[PP\x80Q` \x90\x91\x01Q\x90\x92\x90\x91PV[`\0\x81`\0\x19\x04\x83\x11\x82\x15\x15\x16\x15aY\xC0WaY\xC0aXKV[P\x02\x90V[`\0` \x82\x84\x03\x12\x15aY\xD7W`\0\x80\xFD[\x81Qc\xFF\xFF\xFF\xFF\x81\x16\x81\x14aR\x0BW`\0\x80\xFD[cNH{q`\xE0\x1B`\0R`\x12`\x04R`$`\0\xFD[`\0\x82aZ\x10WaZ\x10aY\xEBV[P\x04\x90V[`\0\x82aZ$WaZ$aY\xEBV[P\x06\x90V[`\0`\x01`\x01`\x80\x1B\x03\x83\x81\x16\x90\x83\x16\x81\x81\x10\x15aY]WaY]aXKV[`\0`\x01`\x01`\x80\x1B\x03\x80\x83\x16\x81\x85\x16\x80\x83\x03\x82\x11\x15aY\x03WaY\x03aXKV[\x81\x83R\x81\x81` \x85\x017P`\0` \x82\x84\x01\x01R`\0` \x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0`\x1F\x84\x01\x16\x84\x01\x01\x90P\x92\x91PPV[``\x81R`\0aZ\xC8``\x83\x01\x87\x89aZkV[\x82\x81\x03` \x84\x01RaZ\xDB\x81\x86\x88aZkV[\x91PP\x82`@\x83\x01R\x96\x95PPPPPPV[`\0`\xFF\x82\x16`\xFF\x84\x16\x80\x82\x10\x15a[\x08Wa[\x08aXKV[\x90\x03\x93\x92PPPV[`\0`\xFF\x83\x16\x80a[$Wa[$aY\xEBV[\x80`\xFF\x84\x16\x06\x91PP\x92\x91PPV[`\0\x7F\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF`\0\x84\x13`\0\x84\x13\x85\x83\x04\x85\x11\x82\x82\x16\x16\x15a[tWa[taXKV[\x7F\x80\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\0\x87\x12\x86\x82\x05\x88\x12\x81\x84\x16\x16\x15a[\xAFWa[\xAFaXKV[`\0\x87\x12\x92P\x87\x82\x05\x87\x12\x84\x84\x16\x16\x15a[\xCBWa[\xCBaXKV[\x87\x85\x05\x87\x12\x81\x84\x16\x16\x15a[\xE1Wa[\xE1aXKV[PPP\x92\x90\x93\x02\x93\x92PPPV[`\0\x82a[\xFEWa[\xFEaY\xEBV[`\0\x19\x83\x14\x7F\x80\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x83\x14\x16\x15a\\4Wa\\4aXKV[P\x05\x90V\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x60806040526004361061033f5760003560e01c806370872aa5116101b0578063c395e1ca116100ec578063dabd396d11610095578063f8f43ff61161006f578063f8f43ff614610ac3578063fa24f74314610ae3578063fa315aa914610b07578063fe2bbeb214610b3a57600080fd5b8063dabd396d14610a2d578063ec5e630814610a60578063eff0f59214610a9357600080fd5b8063d5d44d80116100c6578063d5d44d80146109cb578063d6ae3cd5146109eb578063d8cc1a3c14610a0d57600080fd5b8063c395e1ca14610916578063c6f0308c14610936578063cf09e0d0146109aa57600080fd5b80638d450a9511610159578063bbdc02db11610133578063bbdc02db1461087a578063bcef3b55146108a7578063bd8da956146108c9578063c0d8bb74146108e957600080fd5b80638d450a95146107b857806399735e3214610796578063a445ece6146107da57600080fd5b80638129fc1c1161018a5780638129fc1c146107795780638980e0cc146107815780638b85902b1461079657600080fd5b806370872aa51461073c578063786b844b146107515780637b0f0adc1461076657600080fd5b80633e3ac9121161027f5780635a5fa2d91161022857806360e274641161020257806360e27464146106b45780636361506d146106d45780636b6716c0146106f65780636f0344091461072957600080fd5b80635a5fa2d91461065a5780635c0cba331461067a578063609d33341461069f57600080fd5b8063529d6a8c11610259578063529d6a8c146105ae57806354fd4d50146105db57806357da950e1461062a57600080fd5b80633e3ac912146105465780633fc8cef314610576578063472777c61461059b57600080fd5b806325fc2ace116102ec57806330dbe570116102c657806330dbe570146104ad578063378dd48c146104e557806337b1b229146104ff5780633a7684631461052157600080fd5b806325fc2ace146104595780632810e1d6146104785780632ad69aeb1461048d57600080fd5b8063200d2ed21161031d578063200d2ed2146103d1578063222abf45146103ff578063250e69bd1461043f57600080fd5b8063019351301461034457806303c2924d1461036657806319effeb414610386575b600080fd5b34801561035057600080fd5b5061036461035f3660046154b6565b610b6a565b005b34801561037257600080fd5b50610364610381366004615511565b610e29565b34801561039257600080fd5b506000546103b39068010000000000000000900467ffffffffffffffff1681565b60405167ffffffffffffffff90911681526020015b60405180910390f35b3480156103dd57600080fd5b506000546103f290600160801b900460ff1681565b6040516103c8919061556a565b34801561040b57600080fd5b5061042f61041a366004615592565b600c6020526000908152604090205460ff1681565b60405190151581526020016103c8565b34801561044b57600080fd5b50600a5461042f9060ff1681565b34801561046557600080fd5b506008545b6040519081526020016103c8565b34801561048457600080fd5b506103f26113b1565b34801561049957600080fd5b5061046a6104a8366004615511565b611589565b3480156104b957600080fd5b506001546104cd906001600160a01b031681565b6040516001600160a01b0390911681526020016103c8565b3480156104f157600080fd5b50600d546103f29060ff1681565b34801561050b57600080fd5b503660011981013560f01c90033560601c6104cd565b34801561052d57600080fd5b503660011981013560f01c90036098013560601c6104cd565b34801561055257600080fd5b5060005461042f907201000000000000000000000000000000000000900460ff1681565b34801561058257600080fd5b503660011981013560f01c900360c0013560601c6104cd565b6103646105a93660046155af565b6115bf565b3480156105ba57600080fd5b5061046a6105c9366004615592565b60036020526000908152604090205481565b3480156105e757600080fd5b5060408051808201909152600581527f322e322e3000000000000000000000000000000000000000000000000000000060208201525b6040516103c89190615646565b34801561063657600080fd5b50600854600954610645919082565b604080519283526020830191909152016103c8565b34801561066657600080fd5b5061046a610675366004615659565b6115d1565b34801561068657600080fd5b503660011981013560f01c900360ac013560601c6104cd565b3480156106ab57600080fd5b5061061d61160b565b3480156106c057600080fd5b506103646106cf366004615592565b611619565b3480156106e057600080fd5b503660011981013560f01c90036034013561046a565b34801561070257600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006103b3565b610364610737366004615680565b61192a565b34801561074857600080fd5b5060095461046a565b34801561075d57600080fd5b506103646122ad565b6103646107743660046155af565b61269b565b6103646126a8565b34801561078d57600080fd5b5060025461046a565b3480156107a257600080fd5b503660011981013560f01c90036058013561046a565b3480156107c457600080fd5b503660011981013560f01c90036078013561046a565b3480156107e657600080fd5b5061083c6107f5366004615659565b6007602052600090815260409020805460019091015460ff821691610100810463ffffffff1691650100000000009091046001600160801b0316906001600160a01b031684565b60408051941515855263ffffffff90931660208501526001600160801b03909116918301919091526001600160a01b031660608201526080016103c8565b34801561088657600080fd5b506040513660011981013560f01c90036054013560e01c81526020016103c8565b3480156108b357600080fd5b503660011981013560f01c90036014013561046a565b3480156108d557600080fd5b506103b36108e4366004615659565b612f3f565b3480156108f557600080fd5b5061046a610904366004615592565b600b6020526000908152604090205481565b34801561092257600080fd5b5061046a6109313660046156c1565b6130d9565b34801561094257600080fd5b50610956610951366004615659565b61329a565b6040805163ffffffff90981688526001600160a01b03968716602089015295909416948601949094526001600160801b039182166060860152608085015291821660a08401521660c082015260e0016103c8565b3480156109b657600080fd5b506000546103b39067ffffffffffffffff1681565b3480156109d757600080fd5b5061046a6109e6366004615592565b61330e565b3480156109f757600080fd5b503660011981013560f01c900360d4013561046a565b348015610a1957600080fd5b50610364610a283660046156ea565b613366565b348015610a3957600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006103b3565b348015610a6c57600080fd5b507f000000000000000000000000000000000000000000000000000000000000000061046a565b348015610a9f57600080fd5b5061042f610aae366004615659565b60046020526000908152604090205460ff1681565b348015610acf57600080fd5b50610364610ade3660046155af565b61389a565b348015610aef57600080fd5b50610af8613c61565b6040516103c893929190615776565b348015610b1357600080fd5b507f000000000000000000000000000000000000000000000000000000000000000061046a565b348015610b4657600080fd5b5061042f610b55366004615659565b60066020526000908152604090205460ff1681565b60008054600160801b900460ff166002811115610b8957610b89615533565b14610ba75760405163067fe19560e41b815260040160405180910390fd5b6000547201000000000000000000000000000000000000900460ff1615610bfa576040517f0ea2e75200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610c133660011981013560f01c90036014013590565b90565b610c2a610c25368690038601866157b1565b613c8b565b14610c61576040517f9cc00b5b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b82606001358282604051610c76929190615825565b604051809103902014610cb5576040517fd81d583b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000610cfe610cf984848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613ce792505050565b613d54565b90506000610d2582600881518110610d1857610d18615835565b6020026020010151613f0a565b9050602081511115610d63576040517fd81d583b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b602081810151825190910360031b1c3660011981013560f01c9003605801358103610dba576040517fb8ed883000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050600180547fffffffffffffffffffffffff000000000000000000000000000000000000000016331790555050600080547fffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffff1672010000000000000000000000000000000000001790555050565b60008054600160801b900460ff166002811115610e4857610e48615533565b14610e665760405163067fe19560e41b815260040160405180910390fd5b600060028381548110610e7b57610e7b615835565b906000526020600020906005020190506000610e9684612f3f565b905067ffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000081169082161015610eff576040517ff2440b5300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008481526006602052604090205460ff1615610f48576040517ff1a9458100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000848152600560205260409020805480158015610f6557508515155b15610fc857835464010000000090046001600160a01b031660008115610f8b5781610f9a565b60018601546001600160a01b03165b9050610fa68187613fbe565b505050600094855250506006602052505060409020805460ff19166001179055565b6000868152600760209081526040918290208251608081018452815460ff81161515808352610100820463ffffffff16948301949094526501000000000090046001600160801b031693810193909352600101546001600160a01b0316606083015261104c576001600160801b03604082015260018152600086900361104c578195505b600086826020015163ffffffff166110649190615861565b905060008382116110755781611077565b835b602084015190915063ffffffff165b818110156111975760008682815481106110a2576110a2615835565b6000918252602080832090910154808352600690915260409091205490915060ff166110fa576040517f9a07664600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006002828154811061110f5761110f615835565b60009182526020909120600590910201805490915064010000000090046001600160a01b03161580156111565750600481015460408701516001600160801b039182169116115b156111825760018101546001600160a01b0316606087015260048101546001600160801b031660408701525b5050808061118f90615879565b915050611086565b5063ffffffff818116602085810191825260008c81526007909152604090819020865181549351928801517fffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000009094169015157fffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000ff161761010092909416918202939093177fffffffffffffffffffffff00000000000000000000000000000000ffffffffff16650100000000006001600160801b03909316929092029190911782556060850151600190920180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03909316929092179091558490036113a657606083015160008a8152600660205260409020805460ff19166001179055891580156112e357506000547201000000000000000000000000000000000000900460ff165b1561133e576001546001600160a01b03166112fe818a613fbe565b88546001600160a01b03909116640100000000027fffffffffffffffff0000000000000000000000000000000000000000ffffffff9091161788556113a4565b61136b6001600160a01b038216156113565781611365565b60018901546001600160a01b03165b89613fbe565b87547fffffffffffffffff0000000000000000000000000000000000000000ffffffff166401000000006001600160a01b038316021788555b505b505050505050505050565b600080600054600160801b900460ff1660028111156113d2576113d2615533565b146113f05760405163067fe19560e41b815260040160405180910390fd5b6000805260066020527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f85460ff16611454576040517f9a07664600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006001600160a01b0316600260008154811061147357611473615835565b600091825260209091206005909102015464010000000090046001600160a01b0316146114a15760016114a4565b60025b6000805467ffffffffffffffff421668010000000000000000027fffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff82168117835592935083927fffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffff000000000000000000ffffffffffffffff90911617600160801b83600281111561154857611548615533565b02179055600281111561155d5761155d615533565b6040517f5e186f09b9c93491f14e277eea7faa5de6a2d4bda75a79af7a3684fbfb42da6090600090a290565b600560205281600052604060002081815481106115a557600080fd5b90600052602060002001600091509150505481565b905090565b6115cc838383600161192a565b505050565b6000818152600760209081526040808320600590925282208054825461160290610100900463ffffffff1682615893565b95945050505050565b60606115ba60586020614000565b6116216122ad565b60006002600d5460ff16600281111561163c5761163c615533565b0361166057506001600160a01b0381166000908152600b60205260409020546116cf565b6001600d5460ff16600281111561167957611679615533565b0361169d57506001600160a01b0381166000908152600360205260409020546116cf565b6040517f078a3df400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0382166000908152600c602052604090205460ff166117ad576001600160a01b0382166000908152600c60205260409020805460ff1916600117905561172c60c0600119369081013560f01c9003013560601c90565b6040517f7eee288d0000000000000000000000000000000000000000000000000000000081526001600160a01b038481166004830152602482018490529190911690637eee288d90604401600060405180830381600087803b15801561179157600080fd5b505af11580156117a5573d6000803e3d6000fd5b505050505050565b806000036117e7576040517f17bfe5f700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0382166000908152600b6020908152604080832083905560039091528120553660011981013560f01c900360c0013560601c6040517ff3fef3a30000000000000000000000000000000000000000000000000000000081526001600160a01b03848116600483015260248201849052919091169063f3fef3a390604401600060405180830381600087803b15801561188557600080fd5b505af1158015611899573d6000803e3d6000fd5b505050506000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146118ea576040519150601f19603f3d011682016040523d82523d6000602084013e6118ef565b606091505b50509050806115cc576040517f83e6cc6b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008054600160801b900460ff16600281111561194957611949615533565b146119675760405163067fe19560e41b815260040160405180910390fd5b60006002848154811061197c5761197c615835565b60009182526020918290206040805160e0810182526005909302909101805463ffffffff811684526001600160a01b0364010000000090910481169484019490945260018101549093169082015260028201546001600160801b03908116606083015260038301546080830181905260049093015480821660a0840152600160801b90041660c082015291508514611a40576040517f3014033200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60a0810151600083156001600160801b0383161760011b90506000611ad5826001600160801b03167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f6307c4acdd60e01b67ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff169050861580611b105750611b0d7f00000000000000000000000000000000000000000000000000000000000000006002615861565b81145b8015611b1a575084155b15611b51576040517fa42637bc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000547201000000000000000000000000000000000000900460ff168015611b77575086155b15611bae576040517f0ea2e75200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f0000000000000000000000000000000000000000000000000000000000000000811115611c08576040517f56f57b2b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611c337f00000000000000000000000000000000000000000000000000000000000000006001615861565b8103611c4557611c4586888588614034565b34611c4f836130d9565b14611c86576040517f8620aa1900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000611c9188612f3f565b905067ffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000811690821603611cf9576040517f3381d11400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000611d2660017f0000000000000000000000000000000000000000000000000000000000000000615893565b8303611e3c573660011981013560f01c90036098013560601c6001600160a01b0316637dc0d1d06040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d7c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611da091906158aa565b6001600160a01b031663f3f480d96040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ddd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e0191906158c7565b611e35907f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff166158e0565b9050611ecf565b611e6760017f0000000000000000000000000000000000000000000000000000000000000000615893565b8303611ea257611e357f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff16600261590c565b507f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff165b611f03817f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff1661593c565b67ffffffffffffffff16611f1e8367ffffffffffffffff1690565b67ffffffffffffffff161115611f6557611f62817f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff1661593c565b91505b6000604083901b421760008a8152608087901b6001600160801b038d1617602052604081209192509060008181526004602052604090205490915060ff1615611fda576040517f80497e3b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60016004600083815260200190815260200160002060006101000a81548160ff02191690831515021790555060026040518060e001604052808d63ffffffff16815260200160006001600160a01b03168152602001336001600160a01b03168152602001346001600160801b031681526020018c8152602001886001600160801b03168152602001846001600160801b0316815250908060018154018082558091505060019003906000526020600020906005020160009091909190915060008201518160000160006101000a81548163ffffffff021916908363ffffffff16021790555060208201518160000160046101000a8154816001600160a01b0302191690836001600160a01b0316021790555060408201518160010160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060608201518160020160006101000a8154816001600160801b0302191690836001600160801b031602179055506080820151816003015560a08201518160040160006101000a8154816001600160801b0302191690836001600160801b0316021790555060c08201518160040160106101000a8154816001600160801b0302191690836001600160801b031602179055505050600560008c815260200190815260200160002060016002805490506121d19190615893565b81546001810183556000928352602080842090910191909155338252600b9052604081208054349290612205908490615861565b90915550503660011981013560f01c900360c0013560601c6001600160a01b031663d0e30db0346040518263ffffffff1660e01b81526004016000604051808303818588803b15801561225757600080fd5b505af115801561226b573d6000803e3d6000fd5b50506040513393508d92508e91507f9b3245740ec3b155098a55be84957a4da13eaf7f14a8bc6f53126c0b9350f2be90600090a4505050505050505050505050565b6002600d5460ff1660028111156122c6576122c6615533565b14806122e857506001600d5460ff1660028111156122e6576122e6615533565b145b156122ef57565b6000600d5460ff16600281111561230857612308615533565b1461233f576040517f078a3df400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3660011981013560f01c900360ac013560601c6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561238f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123b39190615965565b156123ea576040517f379a7ed900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005468010000000000000000900467ffffffffffffffff1667ffffffffffffffff16600003612446576040517fc105260a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60003660011981013560f01c900360ac013560601c6040517f0314d2b30000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b039190911690630314d2b390602401602060405180830381865afa1580156124ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124de9190615965565b905080612517576040517f4851bd9b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3660011981013560f01c900360ac013560601c6040517f17cf21a90000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b0391909116906317cf21a990602401600060405180830381600087803b15801561258657600080fd5b505af1925050508015612597575060015b5060003660011981013560f01c900360ac013560601c6040517f496b9c160000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b03919091169063496b9c1690602401602060405180830381865afa15801561260c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126309190615965565b9050801561264a57600d805460ff19166001179055612658565b600d805460ff191660021790555b600d546040517f9908eaac0645df9d0704d06adc9e07337c951de2f06b5f2836151d48d5e4722f9161268f9160ff9091169061556a565b60405180910390a15050565b6115cc838383600061192a565b60005471010000000000000000000000000000000000900460ff16156126fa576040517f0dc149f000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6127026141c3565b361461273a576040517f9824bdab00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000803660011981013560f01c900360ac013560601c6001600160a01b031663d83ef2676040518163ffffffff1660e01b81526004016040805180830381865afa15801561278c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127b09190615982565b9092509050816127ec576040517f6a6bc3b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805180820190915282815260200181905260088290556009819055803660011981013560f01c90036058013511612867576040517ff40239db0000000000000000000000000000000000000000000000000000000081523660011981013560f01c90036014013560048201526024015b60405180910390fd5b67ffffffffffffffff3660011981013560f01c90036098013560601c6001600160a01b0316637dc0d1d06040518163ffffffff1660e01b8152600401602060405180830381865afa1580156128c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128e491906158aa565b6001600160a01b031663f3f480d96040518163ffffffff1660e01b8152600401602060405180830381865afa158015612921573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061294591906158c7565b111561297d576040517fb4e1243300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006129b47f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff1660026159a6565b905060003660011981013560f01c90036098013560601c6001600160a01b0316637dc0d1d06040518163ffffffff1660e01b8152600401602060405180830381865afa158015612a08573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a2c91906158aa565b6001600160a01b031663f3f480d96040518163ffffffff1660e01b8152600401602060405180830381865afa158015612a69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a8d91906158c7565b67ffffffffffffffff16612ac87f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff1690565b67ffffffffffffffff16612adc9190615861565b90506000612aea83836141d1565b905067ffffffffffffffff811115612b2e576040517f8d77ecac00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b67ffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001667ffffffffffffffff168167ffffffffffffffff161115612ba6576040517f8d77ecac00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805160e08101825263ffffffff808252600060208084018281523660011981013560f01c90038035606090811c8789018181526001600160801b0334818116948b0194855260149095013560808b01908152600160a08c0181815242841660c08e019081526002805493840181558c529c517f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace600590930292830180549a5191909d167fffffffffffffffff000000000000000000000000000000000000000000000000909a16999099176401000000006001600160a01b039a8b160217909b5592517f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5acf840180547fffffffffffffffffffffffff000000000000000000000000000000000000000016919098161790965592517f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ad0820180547fffffffffffffffffffffffffffffffff000000000000000000000000000000001691851691909117905593517f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ad185015595519651968116600160801b9790911696909602959095177f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ad2909101558154710100000000000000000000000000000000007fffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff909116178255918152600b909152918220805491929091612de7908490615861565b90915550503660011981013560f01c900360c0013560601c6001600160a01b031663d0e30db0346040518263ffffffff1660e01b81526004016000604051808303818588803b158015612e3957600080fd5b505af1158015612e4d573d6000803e3d6000fd5b5050600080547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000164267ffffffffffffffff1617905550612e909150612f299050565b63ffffffff163660011981013560f01c900360ac013560601c6001600160a01b0316633c9f397c6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ee6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f0a91906159c5565b600a805460ff191663ffffffff92909216929092141790555050505050565b3660011981013560f01c90036054013560e01c90565b600080600054600160801b900460ff166002811115612f6057612f60615533565b14612f7e5760405163067fe19560e41b815260040160405180910390fd5b600060028381548110612f9357612f93615835565b600091825260208220600590910201805490925063ffffffff90811614612ff957815460028054909163ffffffff16908110612fd157612fd1615835565b906000526020600020906005020160040160109054906101000a90046001600160801b031690505b600482015460009061302490600160801b900467ffffffffffffffff165b67ffffffffffffffff1690565b6130389067ffffffffffffffff1642615893565b61304e613017846001600160801b031660401c90565b67ffffffffffffffff166130629190615861565b905067ffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001667ffffffffffffffff168167ffffffffffffffff16116130af5780611602565b7f000000000000000000000000000000000000000000000000000000000000000095945050505050565b600080613156836001600160801b03167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f6307c4acdd60e01b67ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff1690507f00000000000000000000000000000000000000000000000000000000000000008111156131b5576040517f56f57b2b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b642e90edd00062061a806311e1a30060006131d08383615a01565b9050670de0b6b3a76400006000613207827f00000000000000000000000000000000000000000000000000000000000000006159a6565b90506000613225613220670de0b6b3a7640000866159a6565b6141ec565b90506000613233848461443e565b90506000613241838361448d565b9050600061324e826144bb565b9050600061326d82613268670de0b6b3a76400008f6159a6565b6146a3565b9050600061327b8b8361448d565b9050613287818d6159a6565b9f9e505050505050505050505050505050565b600281815481106132aa57600080fd5b60009182526020909120600590910201805460018201546002830154600384015460049094015463ffffffff841695506401000000009093046001600160a01b03908116949216926001600160801b03918216929180821691600160801b90041687565b60006002600d5460ff16600281111561332957613329615533565b0361334a57506001600160a01b03166000908152600b602052604090205490565b506001600160a01b031660009081526003602052604090205490565b60008054600160801b900460ff16600281111561338557613385615533565b146133a35760405163067fe19560e41b815260040160405180910390fd5b6000600287815481106133b8576133b8615835565b6000918252602082206005919091020160048101549092506001600160801b0316908715821760011b905061340e7f00000000000000000000000000000000000000000000000000000000000000006001615861565b613488826001600160801b03167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f6307c4acdd60e01b67ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff16146134c2576040517f5f53dd9800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080891561358d576135157f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000615893565b6001901b61352b846001600160801b03166146d4565b6001600160801b031661353e9190615a15565b156135725761356961355a60016001600160801b038716615a29565b865463ffffffff16600061475a565b60030154613583565b3660011981013560f01c9003607801355b91508490506135ae565b600385015491506135ab61355a6001600160801b0386166001615a49565b90505b600882901b60088a8a6040516135c5929190615825565b6040518091039020901b14613606576040517f696550ff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006136118c614823565b90506000613620836003015490565b6040517fe14ced320000000000000000000000000000000000000000000000000000000081523660011981013560f01c90036098013560601c9063e14ced3290613676908f908f908f908f908a90600401615ab4565b6020604051808303816000875af1158015613695573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136b991906158c7565b600485015491149150600090600290613742906001600160801b03167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f6307c4acdd60e01b67ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b6137bc896001600160801b03167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f6307c4acdd60e01b67ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b6137c69190615aee565b6137d09190615b11565b60ff161590508115158103613811576040517ffb4e40dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b875464010000000090046001600160a01b03161561385b576040517f9071e6af00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505085547fffffffffffffffff0000000000000000000000000000000000000000ffffffff163364010000000002179095555050505050505050505050565b60008054600160801b900460ff1660028111156138b9576138b9615533565b146138d75760405163067fe19560e41b815260040160405180910390fd5b6000806000806138e686614852565b935093509350935060006138fc85858585614bab565b905060003660011981013560f01c90036098013560601c6001600160a01b0316637dc0d1d06040518163ffffffff1660e01b8152600401602060405180830381865afa158015613950573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061397491906158aa565b905060018903613a41576001600160a01b0381166352f0f3ad8a846139a53660011981013560f01c90036034013590565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e086901b16815260048101939093526024830191909152604482015260206064820152608481018a905260a4015b6020604051808303816000875af1158015613a17573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a3b91906158c7565b506113a6565b60028903613a60576001600160a01b0381166352f0f3ad8a84896139a5565b60038903613a7f576001600160a01b0381166352f0f3ad8a84876139a5565b60048903613bb4576000613abc6001600160801b0385167f0000000000000000000000000000000000000000000000000000000000000000614c4a565b600954613ac99190615861565b613ad4906001615861565b90503660011981013560f01c9003605801358110613b01573660011981013560f01c900360580135613b03565b805b90506001600160a01b0382166352f0f3ad8b8560405160e084901b7fffffffff000000000000000000000000000000000000000000000000000000001681526004810192909252602482015260c084901b604482015260086064820152608481018b905260a4016020604051808303816000875af1158015613b89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613bad91906158c7565b50506113a6565b60058903613c2f576040517f52f0f3ad000000000000000000000000000000000000000000000000000000008152600481018a9052602481018390523660011981013560f01c900360d4013560c01b604482015260086064820152608481018890526001600160a01b038216906352f0f3ad9060a4016139f8565b6040517fff137e6500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3660011981013560f01c9003605481013560e01c90601401356060613c8461160b565b9050909192565b60008160000151826020015183604001518460600151604051602001613cca949392919093845260208401929092526040830152606082015260800190565b604051602081830303815290604052805190602001209050919050565b60408051808201909152600080825260208201528151600003613d36576040517f5ab458fb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50604080518082019091528151815260209182019181019190915290565b60606000806000613d6485614cdf565b919450925090506001816001811115613d7f57613d7f615533565b14613db6576040517f4b9c6abe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8451613dc28385615861565b14613df9576040517f5c5537b800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604080516020808252610420820190925290816020015b6040805180820190915260008082526020820152815260200190600190039081613e105790505093506000835b8651811015613efe57600080613e836040518060400160405280858c60000151613e679190615893565b8152602001858c60200151613e7c9190615861565b9052614cdf565b509150915060405180604001604052808383613e9f9190615861565b8152602001848b60200151613eb49190615861565b815250888581518110613ec957613ec9615835565b6020908102919091010152613edf600185615861565b9350613eeb8183615861565b613ef59084615861565b92505050613e3d565b50845250919392505050565b60606000806000613f1a85614cdf565b919450925090506000816001811115613f3557613f35615533565b14613f6c576040517f1ff9b2e400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b613f768284615861565b855114613faf576040517f5c5537b800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6116028560200151848461517d565b60028101546001600160a01b038316600090815260036020526040812080546001600160801b0390931692909190613ff7908490615861565b90915550505050565b6040518181523660011981013560f01c90038284820160208401378260208301016000815260208101604052505092915050565b600061404a6001600160801b0384166001615a49565b9050600061405a8286600161475a565b9050600086901a8380614124575061409360027f0000000000000000000000000000000000000000000000000000000000000000615a15565b6004830154600290614115906001600160801b03167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f6307c4acdd60e01b67ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b61411f9190615b11565b60ff16145b1561417c5760ff81166001148061413e575060ff81166002145b614177576040517ff40239db0000000000000000000000000000000000000000000000000000000081526004810188905260240161285e565b6141ba565b60ff8116156141ba576040517ff40239db0000000000000000000000000000000000000000000000000000000081526004810188905260240161285e565b50505050505050565b60006115ba60f46006615861565b6000818310156141e157816141e3565b825b90505b92915050565b6001600160801b03811160071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b176000821361424257631615e6386000526004601cfd5b7ff8f9f9faf9fdfafbf9fdfcfdfafbfcfef9fafdfafcfcfbfefafafcfbffffffff6f8421084210842108cc6318c6db6d54be83831c1c601f161a1890811b609f90811c6c465772b2bbbb5f824b15207a3081018102606090811d6d0388eaa27412d5aca026815d636e018202811d6d0df99ac502031bf953eff472fdcc018202811d6d13cdffb29d51d99322bdff5f2211018202811d6d0a0f742023def783a307a986912e018202811d6d01920d8043ca89b5239253284e42018202811d6c0b7a86d7375468fac667a0a527016c29508e458543d8aa4df2abee7883018302821d6d0139601a2efabe717e604cbb4894018302821d6d02247f7a7b6594320649aa03aba1018302821d7fffffffffffffffffffffffffffffffffffffff73c0c716a594e00d54e3c4cbc9018302821d7ffffffffffffffffffffffffffffffffffffffdc7b88c420e53a9890533129f6f01830290911d7fffffffffffffffffffffffffffffffffffffff465fda27eb4d63ded474e5f832019091027ffffffffffffffff5f6af8f7b3396644f18e157960000000000000000000000000105711340daa0d5f769dba1915cef59f0815a5506029190037d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b302017d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b88642840160ae1d90565b60007812725dd1d243aba0e75fe645cc4873f9e65afe688c928e1f218311670de0b6b3a76400000215820261447b57637c5f487d6000526004601cfd5b50670de0b6b3a7640000919091020490565b6000816000190483118202156144ab5763bac65e5b6000526004601cfd5b50670de0b6b3a764000091020490565b60007ffffffffffffffffffffffffffffffffffffffffffffffffdc0d0570925a462d782136144e957919050565b680755bf798b4a1bf1e582126145075763a37bfec96000526004601cfd5b6503782dace9d9604e83901b059150600060606bb17217f7d1cf79abc9e3b39884821b056b80000000000000000000000001901d6bb17217f7d1cf79abc9e3b39881029093037fffffffffffffffffffffffffffffffffffffffdbf3ccf1604d263450f02a550481018102606090811d6d0277594991cfc85f6e2461837cd9018202811d7fffffffffffffffffffffffffffffffffffffe5adedaa1cb095af9e4da10e363c018202811d6db1bbb201f443cf962f1a1d3db4a5018202811d7ffffffffffffffffffffffffffffffffffffd38dc772608b0ae56cce01296c0eb018202811d6e05180bb14799ab47a8a8cb2a527d57016d02d16720577bd19bf614176fe9ea6c10fe68e7fd37d0007b713f765084018402831d9081019084017ffffffffffffffffffffffffffffffffffffffe2c69812cf03b0763fd454a8f7e010290911d6e0587f503bb6ea29d25fcb7401964500190910279d835ebba824c98fb31b83b2ca45c000000000000000000000000010574029d9dc38563c32e5c2f6dc192ee70ef65f9978af30260c3939093039290921c92915050565b60006141e3670de0b6b3a7640000836146bb866141ec565b6146c59190615b33565b6146cf9190615bef565b6144bb565b600080614748837e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f6307c4acdd60e01b67ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b600160ff919091161b90920392915050565b6000808261479a576147956001600160801b0386167f0000000000000000000000000000000000000000000000000000000000000000615212565b6147ac565b6147ac856001600160801b0316615351565b9050600284815481106147c1576147c1615835565b906000526020600020906005020191505b60048201546001600160801b0382811691161461481b57815460028054909163ffffffff1690811061480657614806615835565b906000526020600020906005020191506147d2565b509392505050565b600080600080600061483486614852565b935093509350935061484884848484614bab565b9695505050505050565b600080600080600085905060006002828154811061487257614872615835565b600091825260209091206004600590920201908101549091507f000000000000000000000000000000000000000000000000000000000000000090614927906001600160801b03167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f6307c4acdd60e01b67ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff1611614961576040517fb34b5c2200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000815b60048301547f000000000000000000000000000000000000000000000000000000000000000090614a06906001600160801b03167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f6307c4acdd60e01b67ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff169250821115614a7b57825463ffffffff16614a457f00000000000000000000000000000000000000000000000000000000000000006001615861565b8303614a4f578391505b60028181548110614a6257614a62615835565b9060005260206000209060050201935080945050614965565b600481810154908401546001600160801b0391821691166000816001600160801b0316614ac0614ab4856001600160801b031660011c90565b6001600160801b031690565b6001600160801b03161490508015614b59576000614ae6836001600160801b03166146d4565b6001600160801b03161115614b36576000614b16614b0e60016001600160801b038616615a29565b89600161475a565b6003810154600490910154909c506001600160801b03169a50614b3c9050565b6008549a505b600386015460048701549099506001600160801b03169750614b9d565b6000614b72614b0e6001600160801b0385166001615a49565b6003808901546004808b015492840154930154909e506001600160801b039182169d50919b50169850505b505050505050509193509193565b60006001600160801b03841615614c065760408051602081018790526001600160801b038087169282019290925260608101859052908316608082015260a00160405160208183030381529060405280519060200120611602565b8282604051602001614c2b9291909182526001600160801b0316602082015260400190565b6040516020818303038152906040528051906020012095945050505050565b600080614cbe847e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f6307c4acdd60e01b67ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff1690508083036001841b600180831b0386831b17039250505092915050565b60008060008360000151600003614d22576040517f5ab458fb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6020840151805160001a607f8111614d47576000600160009450945094505050615176565b60b78111614e5d576000614d5c608083615893565b905080876000015111614d9b576040517f66c9448500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001838101517fff00000000000000000000000000000000000000000000000000000000000000169082148015614e1357507f80000000000000000000000000000000000000000000000000000000000000007fff000000000000000000000000000000000000000000000000000000000000008216105b15614e4a576040517fbabb01dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5060019550935060009250615176915050565b60bf8111614fbb576000614e7260b783615893565b905080876000015111614eb1576040517f66c9448500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60018301517fff00000000000000000000000000000000000000000000000000000000000000166000819003614f13576040517fbabb01dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600184015160088302610100031c60378111614f5b576040517fbabb01dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b614f658184615861565b895111614f9e576040517f66c9448500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b614fa9836001615861565b97509550600094506151769350505050565b60f78111615020576000614fd060c083615893565b90508087600001511161500f576040517f66c9448500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600195509350849250615176915050565b600061502d60f783615893565b90508087600001511161506c576040517f66c9448500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60018301517fff000000000000000000000000000000000000000000000000000000000000001660008190036150ce576040517fbabb01dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600184015160088302610100031c60378111615116576040517fbabb01dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6151208184615861565b895111615159576040517f66c9448500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b615164836001615861565b97509550600194506151769350505050565b9193909250565b60608167ffffffffffffffff8111156151985761519861579b565b6040519080825280601f01601f1916602001820160405280156151c2576020820181803683370190505b509050811561520b5760006151d78486615861565b90506020820160005b848110156151f85782810151828201526020016151e0565b84811115615207576000858301525b5050505b9392505050565b60008161528f846001600160801b03167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f6307c4acdd60e01b67ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff16116152a55763b34b5c226000526004601cfd5b6152ae83615351565b90508161532b826001600160801b03167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f6307c4acdd60e01b67ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff16116141e6576141e3615341836001615861565b6001600160801b038316906153dd565b600081196001830116816153cc827e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f6307c4acdd60e01b67ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff169390931c8015179392505050565b600080615451847e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f6307c4acdd60e01b67ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff169050808303600180821b0385821b179250505092915050565b60008083601f84011261547f57600080fd5b50813567ffffffffffffffff81111561549757600080fd5b6020830191508360208285010111156154af57600080fd5b9250929050565b600080600083850360a08112156154cc57600080fd5b60808112156154da57600080fd5b50839250608084013567ffffffffffffffff8111156154f857600080fd5b6155048682870161546d565b9497909650939450505050565b6000806040838503121561552457600080fd5b50508035926020909101359150565b634e487b7160e01b600052602160045260246000fd5b6003811061556757634e487b7160e01b600052602160045260246000fd5b50565b6020810161557783615549565b91905290565b6001600160a01b038116811461556757600080fd5b6000602082840312156155a457600080fd5b813561520b8161557d565b6000806000606084860312156155c457600080fd5b505081359360208301359350604090920135919050565b6000815180845260005b81811015615601576020818501810151868301820152016155e5565b81811115615613576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006141e360208301846155db565b60006020828403121561566b57600080fd5b5035919050565b801515811461556757600080fd5b6000806000806080858703121561569657600080fd5b84359350602085013592506040850135915060608501356156b681615672565b939692955090935050565b6000602082840312156156d357600080fd5b81356001600160801b038116811461520b57600080fd5b6000806000806000806080878903121561570357600080fd5b86359550602087013561571581615672565b9450604087013567ffffffffffffffff8082111561573257600080fd5b61573e8a838b0161546d565b9096509450606089013591508082111561575757600080fd5b5061576489828a0161546d565b979a9699509497509295939492505050565b63ffffffff8416815282602082015260606040820152600061160260608301846155db565b634e487b7160e01b600052604160045260246000fd5b6000608082840312156157c357600080fd5b6040516080810181811067ffffffffffffffff821117156157f457634e487b7160e01b600052604160045260246000fd5b8060405250823581526020830135602082015260408301356040820152606083013560608201528091505092915050565b8183823760009101908152919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600082198211156158745761587461584b565b500190565b6000600019820361588c5761588c61584b565b5060010190565b6000828210156158a5576158a561584b565b500390565b6000602082840312156158bc57600080fd5b815161520b8161557d565b6000602082840312156158d957600080fd5b5051919050565b600067ffffffffffffffff8083168185168083038211156159035761590361584b565b01949350505050565b600067ffffffffffffffff808316818516818304811182151516156159335761593361584b565b02949350505050565b600067ffffffffffffffff8381169083168181101561595d5761595d61584b565b039392505050565b60006020828403121561597757600080fd5b815161520b81615672565b6000806040838503121561599557600080fd5b505080516020909101519092909150565b60008160001904831182151516156159c0576159c061584b565b500290565b6000602082840312156159d757600080fd5b815163ffffffff8116811461520b57600080fd5b634e487b7160e01b600052601260045260246000fd5b600082615a1057615a106159eb565b500490565b600082615a2457615a246159eb565b500690565b60006001600160801b038381169083168181101561595d5761595d61584b565b60006001600160801b038083168185168083038211156159035761590361584b565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b606081526000615ac8606083018789615a6b565b8281036020840152615adb818688615a6b565b9150508260408301529695505050505050565b600060ff821660ff841680821015615b0857615b0861584b565b90039392505050565b600060ff831680615b2457615b246159eb565b8060ff84160691505092915050565b60007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600084136000841385830485118282161615615b7457615b7461584b565b7f80000000000000000000000000000000000000000000000000000000000000006000871286820588128184161615615baf57615baf61584b565b60008712925087820587128484161615615bcb57615bcb61584b565b87850587128184161615615be157615be161584b565b505050929093029392505050565b600082615bfe57615bfe6159eb565b60001983147f800000000000000000000000000000000000000000000000000000000000000083141615615c3457615c3461584b565b50059056fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R`\x046\x10a\x03?W`\x005`\xE0\x1C\x80cp\x87*\xA5\x11a\x01\xB0W\x80c\xC3\x95\xE1\xCA\x11a\0\xECW\x80c\xDA\xBD9m\x11a\0\x95W\x80c\xF8\xF4?\xF6\x11a\0oW\x80c\xF8\xF4?\xF6\x14a\n\xC3W\x80c\xFA$\xF7C\x14a\n\xE3W\x80c\xFA1Z\xA9\x14a\x0B\x07W\x80c\xFE+\xBE\xB2\x14a\x0B:W`\0\x80\xFD[\x80c\xDA\xBD9m\x14a\n-W\x80c\xEC^c\x08\x14a\n`W\x80c\xEF\xF0\xF5\x92\x14a\n\x93W`\0\x80\xFD[\x80c\xD5\xD4M\x80\x11a\0\xC6W\x80c\xD5\xD4M\x80\x14a\t\xCBW\x80c\xD6\xAE<\xD5\x14a\t\xEBW\x80c\xD8\xCC\x1A<\x14a\n\rW`\0\x80\xFD[\x80c\xC3\x95\xE1\xCA\x14a\t\x16W\x80c\xC6\xF00\x8C\x14a\t6W\x80c\xCF\t\xE0\xD0\x14a\t\xAAW`\0\x80\xFD[\x80c\x8DE\n\x95\x11a\x01YW\x80c\xBB\xDC\x02\xDB\x11a\x013W\x80c\xBB\xDC\x02\xDB\x14a\x08zW\x80c\xBC\xEF;U\x14a\x08\xA7W\x80c\xBD\x8D\xA9V\x14a\x08\xC9W\x80c\xC0\xD8\xBBt\x14a\x08\xE9W`\0\x80\xFD[\x80c\x8DE\n\x95\x14a\x07\xB8W\x80c\x99s^2\x14a\x07\x96W\x80c\xA4E\xEC\xE6\x14a\x07\xDAW`\0\x80\xFD[\x80c\x81)\xFC\x1C\x11a\x01\x8AW\x80c\x81)\xFC\x1C\x14a\x07yW\x80c\x89\x80\xE0\xCC\x14a\x07\x81W\x80c\x8B\x85\x90+\x14a\x07\x96W`\0\x80\xFD[\x80cp\x87*\xA5\x14a\x07:\xC9\x12\x11a\x02\x7FW\x80cZ_\xA2\xD9\x11a\x02(W\x80c`\xE2td\x11a\x02\x02W\x80c`\xE2td\x14a\x06\xB4W\x80ccaPm\x14a\x06\xD4W\x80ckg\x16\xC0\x14a\x06\xF6W\x80co\x03D\t\x14a\x07)W`\0\x80\xFD[\x80cZ_\xA2\xD9\x14a\x06ZW\x80c\\\x0C\xBA3\x14a\x06zW\x80c`\x9D34\x14a\x06\x9FW`\0\x80\xFD[\x80cR\x9Dj\x8C\x11a\x02YW\x80cR\x9Dj\x8C\x14a\x05\xAEW\x80cT\xFDMP\x14a\x05\xDBW\x80cW\xDA\x95\x0E\x14a\x06*W`\0\x80\xFD[\x80c>:\xC9\x12\x14a\x05FW\x80c?\xC8\xCE\xF3\x14a\x05vW\x80cG'w\xC6\x14a\x05\x9BW`\0\x80\xFD[\x80c%\xFC*\xCE\x11a\x02\xECW\x80c0\xDB\xE5p\x11a\x02\xC6W\x80c0\xDB\xE5p\x14a\x04\xADW\x80c7\x8D\xD4\x8C\x14a\x04\xE5W\x80c7\xB1\xB2)\x14a\x04\xFFW\x80c:v\x84c\x14a\x05!W`\0\x80\xFD[\x80c%\xFC*\xCE\x14a\x04YW\x80c(\x10\xE1\xD6\x14a\x04xW\x80c*\xD6\x9A\xEB\x14a\x04\x8DW`\0\x80\xFD[\x80c \r.\xD2\x11a\x03\x1DW\x80c \r.\xD2\x14a\x03\xD1W\x80c\"*\xBFE\x14a\x03\xFFW\x80c%\x0Ei\xBD\x14a\x04?W`\0\x80\xFD[\x80c\x01\x93Q0\x14a\x03DW\x80c\x03\xC2\x92M\x14a\x03fW\x80c\x19\xEF\xFE\xB4\x14a\x03\x86W[`\0\x80\xFD[4\x80\x15a\x03PW`\0\x80\xFD[Pa\x03da\x03_6`\x04aT\xB6V[a\x0BjV[\0[4\x80\x15a\x03rW`\0\x80\xFD[Pa\x03da\x03\x816`\x04aU\x11V[a\x0E)V[4\x80\x15a\x03\x92W`\0\x80\xFD[P`\0Ta\x03\xB3\x90h\x01\0\0\0\0\0\0\0\0\x90\x04g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[`@Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[4\x80\x15a\x03\xDDW`\0\x80\xFD[P`\0Ta\x03\xF2\x90`\x01`\x80\x1B\x90\x04`\xFF\x16\x81V[`@Qa\x03\xC8\x91\x90aUjV[4\x80\x15a\x04\x0BW`\0\x80\xFD[Pa\x04/a\x04\x1A6`\x04aU\x92V[`\x0C` R`\0\x90\x81R`@\x90 T`\xFF\x16\x81V[`@Q\x90\x15\x15\x81R` \x01a\x03\xC8V[4\x80\x15a\x04KW`\0\x80\xFD[P`\nTa\x04/\x90`\xFF\x16\x81V[4\x80\x15a\x04eW`\0\x80\xFD[P`\x08T[`@Q\x90\x81R` \x01a\x03\xC8V[4\x80\x15a\x04\x84W`\0\x80\xFD[Pa\x03\xF2a\x13\xB1V[4\x80\x15a\x04\x99W`\0\x80\xFD[Pa\x04ja\x04\xA86`\x04aU\x11V[a\x15\x89V[4\x80\x15a\x04\xB9W`\0\x80\xFD[P`\x01Ta\x04\xCD\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x01a\x03\xC8V[4\x80\x15a\x04\xF1W`\0\x80\xFD[P`\rTa\x03\xF2\x90`\xFF\x16\x81V[4\x80\x15a\x05\x0BW`\0\x80\xFD[P6`\x01\x19\x81\x015`\xF0\x1C\x90\x035``\x1Ca\x04\xCDV[4\x80\x15a\x05-W`\0\x80\xFD[P6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\x98\x015``\x1Ca\x04\xCDV[4\x80\x15a\x05RW`\0\x80\xFD[P`\0Ta\x04/\x90r\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16\x81V[4\x80\x15a\x05\x82W`\0\x80\xFD[P6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\xC0\x015``\x1Ca\x04\xCDV[a\x03da\x05\xA96`\x04aU\xAFV[a\x15\xBFV[4\x80\x15a\x05\xBAW`\0\x80\xFD[Pa\x04ja\x05\xC96`\x04aU\x92V[`\x03` R`\0\x90\x81R`@\x90 T\x81V[4\x80\x15a\x05\xE7W`\0\x80\xFD[P`@\x80Q\x80\x82\x01\x90\x91R`\x05\x81R\x7F2.2.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` \x82\x01R[`@Qa\x03\xC8\x91\x90aVFV[4\x80\x15a\x066W`\0\x80\xFD[P`\x08T`\tTa\x06E\x91\x90\x82V[`@\x80Q\x92\x83R` \x83\x01\x91\x90\x91R\x01a\x03\xC8V[4\x80\x15a\x06fW`\0\x80\xFD[Pa\x04ja\x06u6`\x04aVYV[a\x15\xD1V[4\x80\x15a\x06\x86W`\0\x80\xFD[P6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\xAC\x015``\x1Ca\x04\xCDV[4\x80\x15a\x06\xABW`\0\x80\xFD[Pa\x06\x1Da\x16\x0BV[4\x80\x15a\x06\xC0W`\0\x80\xFD[Pa\x03da\x06\xCF6`\x04aU\x92V[a\x16\x19V[4\x80\x15a\x06\xE0W`\0\x80\xFD[P6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`4\x015a\x04jV[4\x80\x15a\x07\x02W`\0\x80\xFD[P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x03\xB3V[a\x03da\x0776`\x04aV\x80V[a\x19*V[4\x80\x15a\x07HW`\0\x80\xFD[P`\tTa\x04jV[4\x80\x15a\x07]W`\0\x80\xFD[Pa\x03da\"\xADV[a\x03da\x07t6`\x04aU\xAFV[a&\x9BV[a\x03da&\xA8V[4\x80\x15a\x07\x8DW`\0\x80\xFD[P`\x02Ta\x04jV[4\x80\x15a\x07\xA2W`\0\x80\xFD[P6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`X\x015a\x04jV[4\x80\x15a\x07\xC4W`\0\x80\xFD[P6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`x\x015a\x04jV[4\x80\x15a\x07\xE6W`\0\x80\xFD[Pa\x08W`\x01T`\x01`\x01`\xA0\x1B\x03\x16a\x12\xFE\x81\x8Aa?\xBEV[\x88T`\x01`\x01`\xA0\x1B\x03\x90\x91\x16d\x01\0\0\0\0\x02\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xFF\xFF\xFF\xFF\x90\x91\x16\x17\x88Ua\x13\xA4V[a\x13k`\x01`\x01`\xA0\x1B\x03\x82\x16\x15a\x13VW\x81a\x13eV[`\x01\x89\x01T`\x01`\x01`\xA0\x1B\x03\x16[\x89a?\xBEV[\x87T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xFF\xFF\xFF\xFF\x16d\x01\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x83\x16\x02\x17\x88U[P[PPPPPPPPPV[`\0\x80`\0T`\x01`\x80\x1B\x90\x04`\xFF\x16`\x02\x81\x11\x15a\x13\xD2Wa\x13\xD2aU3V[\x14a\x13\xF0W`@Qc\x06\x7F\xE1\x95`\xE4\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0\x80R`\x06` R\x7FT\xCD\xD3i\xE4\xE8\xA8Q^R\xCAr\xEC\x81l!\x01\x83\x1A\xD1\xF1\x8B\xF4A\x02\xED\x17\x14Y\xC9\xB4\xF8T`\xFF\x16a\x14TW`@Q\x7F\x9A\x07fF\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\x01`@Q\x80\x91\x03\x90\xFD[`\0`\x01`\x01`\xA0\x1B\x03\x16`\x02`\0\x81T\x81\x10a\x14sWa\x14saX5V[`\0\x91\x82R` \x90\x91 `\x05\x90\x91\x02\x01Td\x01\0\0\0\0\x90\x04`\x01`\x01`\xA0\x1B\x03\x16\x14a\x14\xA1W`\x01a\x14\xA4V[`\x02[`\0\x80Tg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFFB\x16h\x01\0\0\0\0\0\0\0\0\x02\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16\x81\x17\x83U\x92\x93P\x83\x92\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x17`\x01`\x80\x1B\x83`\x02\x81\x11\x15a\x15HWa\x15HaU3V[\x02\x17\x90U`\x02\x81\x11\x15a\x15]Wa\x15]aU3V[`@Q\x7F^\x18o\t\xB9\xC94\x91\xF1N'~\xEA\x7F\xAA]\xE6\xA2\xD4\xBD\xA7Zy\xAFz6\x84\xFB\xFBB\xDA`\x90`\0\x90\xA2\x90V[`\x05` R\x81`\0R`@`\0 \x81\x81T\x81\x10a\x15\xA5W`\0\x80\xFD[\x90`\0R` `\0 \x01`\0\x91P\x91PPT\x81V[\x90P\x90V[a\x15\xCC\x83\x83\x83`\x01a\x19*V[PPPV[`\0\x81\x81R`\x07` \x90\x81R`@\x80\x83 `\x05\x90\x92R\x82 \x80T\x82Ta\x16\x02\x90a\x01\0\x90\x04c\xFF\xFF\xFF\xFF\x16\x82aX\x93V[\x95\x94PPPPPV[``a\x15\xBA`X` a@\0V[a\x16!a\"\xADV[`\0`\x02`\rT`\xFF\x16`\x02\x81\x11\x15a\x16=`\0\xFD[PPPPPPV[\x80`\0\x03a\x17\xE7W`@Q\x7F\x17\xBF\xE5\xF7\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xA0\x1B\x03\x82\x16`\0\x90\x81R`\x0B` \x90\x81R`@\x80\x83 \x83\x90U`\x03\x90\x91R\x81 U6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\xC0\x015``\x1C`@Q\x7F\xF3\xFE\xF3\xA3\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`\x01`\x01`\xA0\x1B\x03\x84\x81\x16`\x04\x83\x01R`$\x82\x01\x84\x90R\x91\x90\x91\x16\x90c\xF3\xFE\xF3\xA3\x90`D\x01`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a\x18\x85W`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x18\x99W=`\0\x80>=`\0\xFD[PPPP`\0\x82`\x01`\x01`\xA0\x1B\x03\x16\x82`@Q`\0`@Q\x80\x83\x03\x81\x85\x87Z\xF1\x92PPP=\x80`\0\x81\x14a\x18\xEAW`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=`\0` \x84\x01>a\x18\xEFV[``\x91P[PP\x90P\x80a\x15\xCCW`@Q\x7F\x83\xE6\xCCk\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\x01`@Q\x80\x91\x03\x90\xFD[`\0\x80T`\x01`\x80\x1B\x90\x04`\xFF\x16`\x02\x81\x11\x15a\x19IWa\x19IaU3V[\x14a\x19gW`@Qc\x06\x7F\xE1\x95`\xE4\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0`\x02\x84\x81T\x81\x10a\x19|Wa\x19|aX5V[`\0\x91\x82R` \x91\x82\x90 `@\x80Q`\xE0\x81\x01\x82R`\x05\x90\x93\x02\x90\x91\x01\x80Tc\xFF\xFF\xFF\xFF\x81\x16\x84R`\x01`\x01`\xA0\x1B\x03d\x01\0\0\0\0\x90\x91\x04\x81\x16\x94\x84\x01\x94\x90\x94R`\x01\x81\x01T\x90\x93\x16\x90\x82\x01R`\x02\x82\x01T`\x01`\x01`\x80\x1B\x03\x90\x81\x16``\x83\x01R`\x03\x83\x01T`\x80\x83\x01\x81\x90R`\x04\x90\x93\x01T\x80\x82\x16`\xA0\x84\x01R`\x01`\x80\x1B\x90\x04\x16`\xC0\x82\x01R\x91P\x85\x14a\x1A@W`@Q\x7F0\x14\x032\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\x01`@Q\x80\x91\x03\x90\xFD[`\xA0\x81\x01Q`\0\x83\x15`\x01`\x01`\x80\x1B\x03\x83\x16\x17`\x01\x1B\x90P`\0a\x1A\xD5\x82`\x01`\x01`\x80\x1B\x03\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1Fc\x07\xC4\xAC\xDD`\xE0\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\xFF\x16\x90P\x86\x15\x80a\x1B\x10WPa\x1B\r\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x02aXaV[\x81\x14[\x80\x15a\x1B\x1AWP\x84\x15[\x15a\x1BQW`@Q\x7F\xA4&7\xBC\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\x01`@Q\x80\x91\x03\x90\xFD[`\0Tr\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16\x80\x15a\x1BwWP\x86\x15[\x15a\x1B\xAEW`@Q\x7F\x0E\xA2\xE7R\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\x01`@Q\x80\x91\x03\x90\xFD[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81\x11\x15a\x1C\x08W`@Q\x7FV\xF5{+\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\x01`@Q\x80\x91\x03\x90\xFD[a\x1C3\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01aXaV[\x81\x03a\x1CEWa\x1CE\x86\x88\x85\x88a@4V[4a\x1CO\x83a0\xD9V[\x14a\x1C\x86W`@Q\x7F\x86 \xAA\x19\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\x01`@Q\x80\x91\x03\x90\xFD[`\0a\x1C\x91\x88a/?V[\x90Pg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81\x16\x90\x82\x16\x03a\x1C\xF9W`@Q\x7F3\x81\xD1\x14\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\x01`@Q\x80\x91\x03\x90\xFD[`\0a\x1D&`\x01\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0aX\x93V[\x83\x03a\x1E=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x1D\xA0\x91\x90aX\xAAV[`\x01`\x01`\xA0\x1B\x03\x16c\xF3\xF4\x80\xD9`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x1D\xDDW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x1E\x01\x91\x90aX\xC7V[a\x1E5\x90\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16aX\xE0V[\x90Pa\x1E\xCFV[a\x1Eg`\x01\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0aX\x93V[\x83\x03a\x1E\xA2Wa\x1E5\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\x02aY\x0CV[P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16[a\x1F\x03\x81\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16aY=`\0\xFD[PP`@Q3\x93P\x8D\x92P\x8E\x91P\x7F\x9B2Et\x0E\xC3\xB1U\t\x8AU\xBE\x84\x95zM\xA1>\xAF\x7F\x14\xA8\xBCoS\x12l\x0B\x93P\xF2\xBE\x90`\0\x90\xA4PPPPPPPPPPPPV[`\x02`\rT`\xFF\x16`\x02\x81\x11\x15a\"\xC6Wa\"\xC6aU3V[\x14\x80a\"\xE8WP`\x01`\rT`\xFF\x16`\x02\x81\x11\x15a\"\xE6Wa\"\xE6aU3V[\x14[\x15a\"\xEFWV[`\0`\rT`\xFF\x16`\x02\x81\x11\x15a#\x08Wa#\x08aU3V[\x14a#?W`@Q\x7F\x07\x8A=\xF4\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\x01`@Q\x80\x91\x03\x90\xFD[6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\xAC\x015``\x1C`\x01`\x01`\xA0\x1B\x03\x16c\\\x97Z\xBB`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a#\x8FW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a#\xB3\x91\x90aYeV[\x15a#\xEAW`@Q\x7F7\x9A~\xD9\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\x01`@Q\x80\x91\x03\x90\xFD[`\0Th\x01\0\0\0\0\0\0\0\0\x90\x04g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\0\x03a$FW`@Q\x7F\xC1\x05&\n\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\x01`@Q\x80\x91\x03\x90\xFD[`\x006`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\xAC\x015``\x1C`@Q\x7F\x03\x14\xD2\xB3\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\x81R0`\x04\x82\x01R`\x01`\x01`\xA0\x1B\x03\x91\x90\x91\x16\x90c\x03\x14\xD2\xB3\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a$\xBAW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a$\xDE\x91\x90aYeV[\x90P\x80a%\x17W`@Q\x7FHQ\xBD\x9B\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\x01`@Q\x80\x91\x03\x90\xFD[6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\xAC\x015``\x1C`@Q\x7F\x17\xCF!\xA9\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\x81R0`\x04\x82\x01R`\x01`\x01`\xA0\x1B\x03\x91\x90\x91\x16\x90c\x17\xCF!\xA9\x90`$\x01`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a%\x86W`\0\x80\xFD[PZ\xF1\x92PPP\x80\x15a%\x97WP`\x01[P`\x006`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\xAC\x015``\x1C`@Q\x7FIk\x9C\x16\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\x81R0`\x04\x82\x01R`\x01`\x01`\xA0\x1B\x03\x91\x90\x91\x16\x90cIk\x9C\x16\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a&\x0CW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a&0\x91\x90aYeV[\x90P\x80\x15a&JW`\r\x80T`\xFF\x19\x16`\x01\x17\x90Ua&XV[`\r\x80T`\xFF\x19\x16`\x02\x17\x90U[`\rT`@Q\x7F\x99\x08\xEA\xAC\x06E\xDF\x9D\x07\x04\xD0j\xDC\x9E\x073|\x95\x1D\xE2\xF0k_(6\x15\x1DH\xD5\xE4r/\x91a&\x8F\x91`\xFF\x90\x91\x16\x90aUjV[`@Q\x80\x91\x03\x90\xA1PPV[a\x15\xCC\x83\x83\x83`\0a\x19*V[`\0Tq\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16\x15a&\xFAW`@Q\x7F\r\xC1I\xF0\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\x01`@Q\x80\x91\x03\x90\xFD[a'\x02aA\xC3V[6\x14a':W`@Q\x7F\x98$\xBD\xAB\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\x01`@Q\x80\x91\x03\x90\xFD[`\0\x806`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\xAC\x015``\x1C`\x01`\x01`\xA0\x1B\x03\x16c\xD8>\xF2g`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01`@\x80Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a'\x8CW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a'\xB0\x91\x90aY\x82V[\x90\x92P\x90P\x81a'\xECW`@Q\x7Fjk\xC3\xB2\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\x01`@Q\x80\x91\x03\x90\xFD[`@\x80Q\x80\x82\x01\x90\x91R\x82\x81R` \x01\x81\x90R`\x08\x82\x90U`\t\x81\x90U\x806`\x01\x19\x81\x015`\xF0\x1C\x90\x03`X\x015\x11a(gW`@Q\x7F\xF4\x029\xDB\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\x81R6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\x14\x015`\x04\x82\x01R`$\x01[`@Q\x80\x91\x03\x90\xFD[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\x98\x015``\x1C`\x01`\x01`\xA0\x1B\x03\x16c}\xC0\xD1\xD0`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a(\xC0W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a(\xE4\x91\x90aX\xAAV[`\x01`\x01`\xA0\x1B\x03\x16c\xF3\xF4\x80\xD9`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a)!W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a)E\x91\x90aX\xC7V[\x11\x15a)}W`@Q\x7F\xB4\xE1$3\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\x01`@Q\x80\x91\x03\x90\xFD[`\0a)\xB4\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\x02aY\xA6V[\x90P`\x006`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\x98\x015``\x1C`\x01`\x01`\xA0\x1B\x03\x16c}\xC0\xD1\xD0`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a*\x08W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a*,\x91\x90aX\xAAV[`\x01`\x01`\xA0\x1B\x03\x16c\xF3\xF4\x80\xD9`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a*iW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a*\x8D\x91\x90aX\xC7V[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a*\xC8\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90V[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a*\xDC\x91\x90aXaV[\x90P`\0a*\xEA\x83\x83aA\xD1V[\x90Pg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a+.W`@Q\x7F\x8Dw\xEC\xAC\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\x01`@Q\x80\x91\x03\x90\xFD[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x11\x15a+\xA6W`@Q\x7F\x8Dw\xEC\xAC\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\x01`@Q\x80\x91\x03\x90\xFD[`@\x80Q`\xE0\x81\x01\x82Rc\xFF\xFF\xFF\xFF\x80\x82R`\0` \x80\x84\x01\x82\x81R6`\x01\x19\x81\x015`\xF0\x1C\x90\x03\x805``\x90\x81\x1C\x87\x89\x01\x81\x81R`\x01`\x01`\x80\x1B\x034\x81\x81\x16\x94\x8B\x01\x94\x85R`\x14\x90\x95\x015`\x80\x8B\x01\x90\x81R`\x01`\xA0\x8C\x01\x81\x81RB\x84\x16`\xC0\x8E\x01\x90\x81R`\x02\x80T\x93\x84\x01\x81U\x8CR\x9CQ\x7F@W\x87\xFA\x12\xA8#\xE0\xF2\xB7c\x1C\xC4\x1B;\xA8\x82\x8B3!\xCA\x81\x11\x11\xFAu\xCD:\xA3\xBBZ\xCE`\x05\x90\x93\x02\x92\x83\x01\x80T\x9AQ\x91\x90\x9D\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x9A\x16\x99\x90\x99\x17d\x01\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x9A\x8B\x16\x02\x17\x90\x9BU\x92Q\x7F@W\x87\xFA\x12\xA8#\xE0\xF2\xB7c\x1C\xC4\x1B;\xA8\x82\x8B3!\xCA\x81\x11\x11\xFAu\xCD:\xA3\xBBZ\xCF\x84\x01\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x91\x90\x98\x16\x17\x90\x96U\x92Q\x7F@W\x87\xFA\x12\xA8#\xE0\xF2\xB7c\x1C\xC4\x1B;\xA8\x82\x8B3!\xCA\x81\x11\x11\xFAu\xCD:\xA3\xBBZ\xD0\x82\x01\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x91\x85\x16\x91\x90\x91\x17\x90U\x93Q\x7F@W\x87\xFA\x12\xA8#\xE0\xF2\xB7c\x1C\xC4\x1B;\xA8\x82\x8B3!\xCA\x81\x11\x11\xFAu\xCD:\xA3\xBBZ\xD1\x85\x01U\x95Q\x96Q\x96\x81\x16`\x01`\x80\x1B\x97\x90\x91\x16\x96\x90\x96\x02\x95\x90\x95\x17\x7F@W\x87\xFA\x12\xA8#\xE0\xF2\xB7c\x1C\xC4\x1B;\xA8\x82\x8B3!\xCA\x81\x11\x11\xFAu\xCD:\xA3\xBBZ\xD2\x90\x91\x01U\x81Tq\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x17\x82U\x91\x81R`\x0B\x90\x91R\x91\x82 \x80T\x91\x92\x90\x91a-\xE7\x90\x84\x90aXaV[\x90\x91UPP6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\xC0\x015``\x1C`\x01`\x01`\xA0\x1B\x03\x16c\xD0\xE3\r\xB04`@Q\x82c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01`\0`@Q\x80\x83\x03\x81\x85\x88\x80;\x15\x80\x15a.9W`\0\x80\xFD[PZ\xF1\x15\x80\x15a.MW=`\0\x80>=`\0\xFD[PP`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\x16Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x17\x90UPa.\x90\x91Pa/)\x90PV[c\xFF\xFF\xFF\xFF\x166`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\xAC\x015``\x1C`\x01`\x01`\xA0\x1B\x03\x16c<\x9F9|`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a.\xE6W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a/\n\x91\x90aY\xC5V[`\n\x80T`\xFF\x19\x16c\xFF\xFF\xFF\xFF\x92\x90\x92\x16\x92\x90\x92\x14\x17\x90UPPPPPV[6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`T\x015`\xE0\x1C\x90V[`\0\x80`\0T`\x01`\x80\x1B\x90\x04`\xFF\x16`\x02\x81\x11\x15a/`Wa/`aU3V[\x14a/~W`@Qc\x06\x7F\xE1\x95`\xE4\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0`\x02\x83\x81T\x81\x10a/\x93Wa/\x93aX5V[`\0\x91\x82R` \x82 `\x05\x90\x91\x02\x01\x80T\x90\x92Pc\xFF\xFF\xFF\xFF\x90\x81\x16\x14a/\xF9W\x81T`\x02\x80T\x90\x91c\xFF\xFF\xFF\xFF\x16\x90\x81\x10a/\xD1Wa/\xD1aX5V[\x90`\0R` `\0 \x90`\x05\x02\x01`\x04\x01`\x10\x90T\x90a\x01\0\n\x90\x04`\x01`\x01`\x80\x1B\x03\x16\x90P[`\x04\x82\x01T`\0\x90a0$\x90`\x01`\x80\x1B\x90\x04g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90V[a08\x90g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16BaX\x93V[a0Na0\x17\x84`\x01`\x01`\x80\x1B\x03\x16`@\x1C\x90V[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a0b\x91\x90aXaV[\x90Pg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x11a0\xAFW\x80a\x16\x02V[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x95\x94PPPPPV[`\0\x80a1V\x83`\x01`\x01`\x80\x1B\x03\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1Fc\x07\xC4\xAC\xDD`\xE0\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\xFF\x16\x90P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81\x11\x15a1\xB5W`@Q\x7FV\xF5{+\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\x01`@Q\x80\x91\x03\x90\xFD[d.\x90\xED\xD0\0b\x06\x1A\x80c\x11\xE1\xA3\0`\0a1\xD0\x83\x83aZ\x01V[\x90Pg\r\xE0\xB6\xB3\xA7d\0\0`\0a2\x07\x82\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0aY\xA6V[\x90P`\0a2%a2 g\r\xE0\xB6\xB3\xA7d\0\0\x86aY\xA6V[aA\xECV[\x90P`\0a23\x84\x84aD>V[\x90P`\0a2A\x83\x83aD\x8DV[\x90P`\0a2N\x82aD\xBBV[\x90P`\0a2m\x82a2hg\r\xE0\xB6\xB3\xA7d\0\0\x8FaY\xA6V[aF\xA3V[\x90P`\0a2{\x8B\x83aD\x8DV[\x90Pa2\x87\x81\x8DaY\xA6V[\x9F\x9EPPPPPPPPPPPPPPPV[`\x02\x81\x81T\x81\x10a2\xAAW`\0\x80\xFD[`\0\x91\x82R` \x90\x91 `\x05\x90\x91\x02\x01\x80T`\x01\x82\x01T`\x02\x83\x01T`\x03\x84\x01T`\x04\x90\x94\x01Tc\xFF\xFF\xFF\xFF\x84\x16\x95Pd\x01\0\0\0\0\x90\x93\x04`\x01`\x01`\xA0\x1B\x03\x90\x81\x16\x94\x92\x16\x92`\x01`\x01`\x80\x1B\x03\x91\x82\x16\x92\x91\x80\x82\x16\x91`\x01`\x80\x1B\x90\x04\x16\x87V[`\0`\x02`\rT`\xFF\x16`\x02\x81\x11\x15a3)Wa3)aU3V[\x03a3JWP`\x01`\x01`\xA0\x1B\x03\x16`\0\x90\x81R`\x0B` R`@\x90 T\x90V[P`\x01`\x01`\xA0\x1B\x03\x16`\0\x90\x81R`\x03` R`@\x90 T\x90V[`\0\x80T`\x01`\x80\x1B\x90\x04`\xFF\x16`\x02\x81\x11\x15a3\x85Wa3\x85aU3V[\x14a3\xA3W`@Qc\x06\x7F\xE1\x95`\xE4\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0`\x02\x87\x81T\x81\x10a3\xB8Wa3\xB8aX5V[`\0\x91\x82R` \x82 `\x05\x91\x90\x91\x02\x01`\x04\x81\x01T\x90\x92P`\x01`\x01`\x80\x1B\x03\x16\x90\x87\x15\x82\x17`\x01\x1B\x90Pa4\x0E\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01aXaV[a4\x88\x82`\x01`\x01`\x80\x1B\x03\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1Fc\x07\xC4\xAC\xDD`\xE0\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\xFF\x16\x14a4\xC2W`@Q\x7F_S\xDD\x98\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\x01`@Q\x80\x91\x03\x90\xFD[`\0\x80\x89\x15a5\x8DWa5\x15\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0aX\x93V[`\x01\x90\x1Ba5+\x84`\x01`\x01`\x80\x1B\x03\x16aF\xD4V[`\x01`\x01`\x80\x1B\x03\x16a5>\x91\x90aZ\x15V[\x15a5rWa5ia5Z`\x01`\x01`\x01`\x80\x1B\x03\x87\x16aZ)V[\x86Tc\xFF\xFF\xFF\xFF\x16`\0aGZV[`\x03\x01Ta5\x83V[6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`x\x015[\x91P\x84\x90Pa5\xAEV[`\x03\x85\x01T\x91Pa5\xABa5Z`\x01`\x01`\x80\x1B\x03\x86\x16`\x01aZIV[\x90P[`\x08\x82\x90\x1B`\x08\x8A\x8A`@Qa5\xC5\x92\x91\x90aX%V[`@Q\x80\x91\x03\x90 \x90\x1B\x14a6\x06W`@Q\x7FieP\xFF\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\x01`@Q\x80\x91\x03\x90\xFD[`\0a6\x11\x8CaH#V[\x90P`\0a6 \x83`\x03\x01T\x90V[`@Q\x7F\xE1L\xED2\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\x81R6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\x98\x015``\x1C\x90c\xE1L\xED2\x90a6v\x90\x8F\x90\x8F\x90\x8F\x90\x8F\x90\x8A\x90`\x04\x01aZ\xB4V[` `@Q\x80\x83\x03\x81`\0\x87Z\xF1\x15\x80\x15a6\x95W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a6\xB9\x91\x90aX\xC7V[`\x04\x85\x01T\x91\x14\x91P`\0\x90`\x02\x90a7B\x90`\x01`\x01`\x80\x1B\x03\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1Fc\x07\xC4\xAC\xDD`\xE0\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[a7\xBC\x89`\x01`\x01`\x80\x1B\x03\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1Fc\x07\xC4\xAC\xDD`\xE0\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[a7\xC6\x91\x90aZ\xEEV[a7\xD0\x91\x90a[\x11V[`\xFF\x16\x15\x90P\x81\x15\x15\x81\x03a8\x11W`@Q\x7F\xFBN@\xDD\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\x01`@Q\x80\x91\x03\x90\xFD[\x87Td\x01\0\0\0\0\x90\x04`\x01`\x01`\xA0\x1B\x03\x16\x15a8[W`@Q\x7F\x90q\xE6\xAF\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\x01`@Q\x80\x91\x03\x90\xFD[PP\x85T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xFF\xFF\xFF\xFF\x163d\x01\0\0\0\0\x02\x17\x90\x95UPPPPPPPPPPPV[`\0\x80T`\x01`\x80\x1B\x90\x04`\xFF\x16`\x02\x81\x11\x15a8\xB9Wa8\xB9aU3V[\x14a8\xD7W`@Qc\x06\x7F\xE1\x95`\xE4\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0\x80`\0\x80a8\xE6\x86aHRV[\x93P\x93P\x93P\x93P`\0a8\xFC\x85\x85\x85\x85aK\xABV[\x90P`\x006`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\x98\x015``\x1C`\x01`\x01`\xA0\x1B\x03\x16c}\xC0\xD1\xD0`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a9PW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a9t\x91\x90aX\xAAV[\x90P`\x01\x89\x03a:AW`\x01`\x01`\xA0\x1B\x03\x81\x16cR\xF0\xF3\xAD\x8A\x84a9\xA56`\x01\x19\x81\x015`\xF0\x1C\x90\x03`4\x015\x90V[`@Q\x7F\xFF\xFF\xFF\xFF\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`\xE0\x86\x90\x1B\x16\x81R`\x04\x81\x01\x93\x90\x93R`$\x83\x01\x91\x90\x91R`D\x82\x01R` `d\x82\x01R`\x84\x81\x01\x8A\x90R`\xA4\x01[` `@Q\x80\x83\x03\x81`\0\x87Z\xF1\x15\x80\x15a:\x17W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a:;\x91\x90aX\xC7V[Pa\x13\xA6V[`\x02\x89\x03a:`W`\x01`\x01`\xA0\x1B\x03\x81\x16cR\xF0\xF3\xAD\x8A\x84\x89a9\xA5V[`\x03\x89\x03a:\x7FW`\x01`\x01`\xA0\x1B\x03\x81\x16cR\xF0\xF3\xAD\x8A\x84\x87a9\xA5V[`\x04\x89\x03a;\xB4W`\0a:\xBC`\x01`\x01`\x80\x1B\x03\x85\x16\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0aLJV[`\tTa:\xC9\x91\x90aXaV[a:\xD4\x90`\x01aXaV[\x90P6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`X\x015\x81\x10a;\x01W6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`X\x015a;\x03V[\x80[\x90P`\x01`\x01`\xA0\x1B\x03\x82\x16cR\xF0\xF3\xAD\x8B\x85`@Q`\xE0\x84\x90\x1B\x7F\xFF\xFF\xFF\xFF\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\x16\x81R`\x04\x81\x01\x92\x90\x92R`$\x82\x01R`\xC0\x84\x90\x1B`D\x82\x01R`\x08`d\x82\x01R`\x84\x81\x01\x8B\x90R`\xA4\x01` `@Q\x80\x83\x03\x81`\0\x87Z\xF1\x15\x80\x15a;\x89W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a;\xAD\x91\x90aX\xC7V[PPa\x13\xA6V[`\x05\x89\x03a\x10W\x90PP\x93P`\0\x83[\x86Q\x81\x10\x15a>\xFEW`\0\x80a>\x83`@Q\x80`@\x01`@R\x80\x85\x8C`\0\x01Qa>g\x91\x90aX\x93V[\x81R` \x01\x85\x8C` \x01Qa>|\x91\x90aXaV[\x90RaL\xDFV[P\x91P\x91P`@Q\x80`@\x01`@R\x80\x83\x83a>\x9F\x91\x90aXaV[\x81R` \x01\x84\x8B` \x01Qa>\xB4\x91\x90aXaV[\x81RP\x88\x85\x81Q\x81\x10a>\xC9Wa>\xC9aX5V[` \x90\x81\x02\x91\x90\x91\x01\x01Ra>\xDF`\x01\x85aXaV[\x93Pa>\xEB\x81\x83aXaV[a>\xF5\x90\x84aXaV[\x92PPPa>=V[P\x84RP\x91\x93\x92PPPV[```\0\x80`\0a?\x1A\x85aL\xDFV[\x91\x94P\x92P\x90P`\0\x81`\x01\x81\x11\x15a?5Wa?5aU3V[\x14a?lW`@Q\x7F\x1F\xF9\xB2\xE4\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\x01`@Q\x80\x91\x03\x90\xFD[a?v\x82\x84aXaV[\x85Q\x14a?\xAFW`@Q\x7F\\U7\xB8\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\x01`@Q\x80\x91\x03\x90\xFD[a\x16\x02\x85` \x01Q\x84\x84aQ}V[`\x02\x81\x01T`\x01`\x01`\xA0\x1B\x03\x83\x16`\0\x90\x81R`\x03` R`@\x81 \x80T`\x01`\x01`\x80\x1B\x03\x90\x93\x16\x92\x90\x91\x90a?\xF7\x90\x84\x90aXaV[\x90\x91UPPPPV[`@Q\x81\x81R6`\x01\x19\x81\x015`\xF0\x1C\x90\x03\x82\x84\x82\x01` \x84\x017\x82` \x83\x01\x01`\0\x81R` \x81\x01`@RPP\x92\x91PPV[`\0a@J`\x01`\x01`\x80\x1B\x03\x84\x16`\x01aZIV[\x90P`\0a@Z\x82\x86`\x01aGZV[\x90P`\0\x86\x90\x1A\x83\x80aA$WPa@\x93`\x02\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0aZ\x15V[`\x04\x83\x01T`\x02\x90aA\x15\x90`\x01`\x01`\x80\x1B\x03\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1Fc\x07\xC4\xAC\xDD`\xE0\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[aA\x1F\x91\x90a[\x11V[`\xFF\x16\x14[\x15aA|W`\xFF\x81\x16`\x01\x14\x80aA>WP`\xFF\x81\x16`\x02\x14[aAwW`@Q\x7F\xF4\x029\xDB\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\x81\x01\x88\x90R`$\x01a(^V[aA\xBAV[`\xFF\x81\x16\x15aA\xBAW`@Q\x7F\xF4\x029\xDB\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\x81\x01\x88\x90R`$\x01a(^V[PPPPPPPV[`\0a\x15\xBA`\xF4`\x06aXaV[`\0\x81\x83\x10\x15aA\xE1W\x81aA\xE3V[\x82[\x90P[\x92\x91PPV[`\x01`\x01`\x80\x1B\x03\x81\x11`\x07\x1B\x81\x81\x1Cg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x10`\x06\x1B\x17\x81\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x81\x81\x1Ca\xFF\xFF\x10`\x04\x1B\x17\x81\x81\x1C`\xFF\x10`\x03\x1B\x17`\0\x82\x13aBBWc\x16\x15\xE68`\0R`\x04`\x1C\xFD[\x7F\xF8\xF9\xF9\xFA\xF9\xFD\xFA\xFB\xF9\xFD\xFC\xFD\xFA\xFB\xFC\xFE\xF9\xFA\xFD\xFA\xFC\xFC\xFB\xFE\xFA\xFA\xFC\xFB\xFF\xFF\xFF\xFFo\x84!\x08B\x10\x84!\x08\xCCc\x18\xC6\xDBmT\xBE\x83\x83\x1C\x1C`\x1F\x16\x1A\x18\x90\x81\x1B`\x9F\x90\x81\x1ClFWr\xB2\xBB\xBB_\x82K\x15 z0\x81\x01\x81\x02``\x90\x81\x1Dm\x03\x88\xEA\xA2t\x12\xD5\xAC\xA0&\x81]cn\x01\x82\x02\x81\x1Dm\r\xF9\x9A\xC5\x02\x03\x1B\xF9S\xEF\xF4r\xFD\xCC\x01\x82\x02\x81\x1Dm\x13\xCD\xFF\xB2\x9DQ\xD9\x93\"\xBD\xFF_\"\x11\x01\x82\x02\x81\x1Dm\n\x0Ft #\xDE\xF7\x83\xA3\x07\xA9\x86\x91.\x01\x82\x02\x81\x1Dm\x01\x92\r\x80C\xCA\x89\xB5#\x92S(NB\x01\x82\x02\x81\x1Dl\x0Bz\x86\xD77Th\xFA\xC6g\xA0\xA5'\x01l)P\x8EE\x85C\xD8\xAAM\xF2\xAB\xEEx\x83\x01\x83\x02\x82\x1Dm\x019`\x1A.\xFA\xBEq~`L\xBBH\x94\x01\x83\x02\x82\x1Dm\x02$\x7Fz{e\x942\x06I\xAA\x03\xAB\xA1\x01\x83\x02\x82\x1D\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFFs\xC0\xC7\x16\xA5\x94\xE0\rT\xE3\xC4\xCB\xC9\x01\x83\x02\x82\x1D\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFD\xC7\xB8\x8CB\x0ES\xA9\x89\x053\x12\x9Fo\x01\x83\x02\x90\x91\x1D\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFFF_\xDA'\xEBMc\xDE\xD4t\xE5\xF82\x01\x90\x91\x02\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF5\xF6\xAF\x8F{3\x96dO\x18\xE1W\x96\0\0\0\0\0\0\0\0\0\0\0\0\x01\x05q\x13@\xDA\xA0\xD5\xF7i\xDB\xA1\x91\\\xEFY\xF0\x81ZU\x06\x02\x91\x90\x03}\x02g\xA3l\x0C\x95\xB3\x97Z\xB3\xEE[ :v\x14\xA3\xF7Ss\xF0G\xD8\x03\xAE{f\x87\xF2\xB3\x02\x01}W\x11^G\x01\x8Cqw\xEE\xBF|\xD3p\xA35j\x1Bxc\0\x8AZ\xE8\x02\x8Cr\xB8\x86B\x84\x01`\xAE\x1D\x90V[`\0x\x12r]\xD1\xD2C\xAB\xA0\xE7_\xE6E\xCCHs\xF9\xE6Z\xFEh\x8C\x92\x8E\x1F!\x83\x11g\r\xE0\xB6\xB3\xA7d\0\0\x02\x15\x82\x02aD{Wc|_H}`\0R`\x04`\x1C\xFD[Pg\r\xE0\xB6\xB3\xA7d\0\0\x91\x90\x91\x02\x04\x90V[`\0\x81`\0\x19\x04\x83\x11\x82\x02\x15aD\xABWc\xBA\xC6^[`\0R`\x04`\x1C\xFD[Pg\r\xE0\xB6\xB3\xA7d\0\0\x91\x02\x04\x90V[`\0\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFD\xC0\xD0W\t%\xA4b\xD7\x82\x13aD\xE9W\x91\x90PV[h\x07U\xBFy\x8BJ\x1B\xF1\xE5\x82\x12aE\x07Wc\xA3{\xFE\xC9`\0R`\x04`\x1C\xFD[e\x03x-\xAC\xE9\xD9`N\x83\x90\x1B\x05\x91P`\0``k\xB1r\x17\xF7\xD1\xCFy\xAB\xC9\xE3\xB3\x98\x84\x82\x1B\x05k\x80\0\0\0\0\0\0\0\0\0\0\0\x01\x90\x1Dk\xB1r\x17\xF7\xD1\xCFy\xAB\xC9\xE3\xB3\x98\x81\x02\x90\x93\x03\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xDB\xF3\xCC\xF1`M&4P\xF0*U\x04\x81\x01\x81\x02``\x90\x81\x1Dm\x02wYI\x91\xCF\xC8_n$a\x83|\xD9\x01\x82\x02\x81\x1D\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE5\xAD\xED\xAA\x1C\xB0\x95\xAF\x9EM\xA1\x0E6<\x01\x82\x02\x81\x1Dm\xB1\xBB\xB2\x01\xF4C\xCF\x96/\x1A\x1D=\xB4\xA5\x01\x82\x02\x81\x1D\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFD8\xDCw&\x08\xB0\xAEV\xCC\xE0\x12\x96\xC0\xEB\x01\x82\x02\x81\x1Dn\x05\x18\x0B\xB1G\x99\xABG\xA8\xA8\xCB*R}W\x01m\x02\xD1g W{\xD1\x9B\xF6\x14\x17o\xE9\xEAl\x10\xFEh\xE7\xFD7\xD0\0{q?vP\x84\x01\x84\x02\x83\x1D\x90\x81\x01\x90\x84\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE,i\x81,\xF0;\x07c\xFDEJ\x8F~\x01\x02\x90\x91\x1Dn\x05\x87\xF5\x03\xBBn\xA2\x9D%\xFC\xB7@\x19dP\x01\x90\x91\x02y\xD85\xEB\xBA\x82L\x98\xFB1\xB8;,\xA4\\\0\0\0\0\0\0\0\0\0\0\0\0\x01\x05t\x02\x9D\x9D\xC3\x85c\xC3.\\/m\xC1\x92\xEEp\xEFe\xF9\x97\x8A\xF3\x02`\xC3\x93\x90\x93\x03\x92\x90\x92\x1C\x92\x91PPV[`\0aA\xE3g\r\xE0\xB6\xB3\xA7d\0\0\x83aF\xBB\x86aA\xECV[aF\xC5\x91\x90a[3V[aF\xCF\x91\x90a[\xEFV[aD\xBBV[`\0\x80aGH\x83~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1Fc\x07\xC4\xAC\xDD`\xE0\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\x01`\xFF\x91\x90\x91\x16\x1B\x90\x92\x03\x92\x91PPV[`\0\x80\x82aG\x9AWaG\x95`\x01`\x01`\x80\x1B\x03\x86\x16\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0aR\x12V[aG\xACV[aG\xAC\x85`\x01`\x01`\x80\x1B\x03\x16aSQV[\x90P`\x02\x84\x81T\x81\x10aG\xC1WaG\xC1aX5V[\x90`\0R` `\0 \x90`\x05\x02\x01\x91P[`\x04\x82\x01T`\x01`\x01`\x80\x1B\x03\x82\x81\x16\x91\x16\x14aH\x1BW\x81T`\x02\x80T\x90\x91c\xFF\xFF\xFF\xFF\x16\x90\x81\x10aH\x06WaH\x06aX5V[\x90`\0R` `\0 \x90`\x05\x02\x01\x91PaG\xD2V[P\x93\x92PPPV[`\0\x80`\0\x80`\0aH4\x86aHRV[\x93P\x93P\x93P\x93PaHH\x84\x84\x84\x84aK\xABV[\x96\x95PPPPPPV[`\0\x80`\0\x80`\0\x85\x90P`\0`\x02\x82\x81T\x81\x10aHrWaHraX5V[`\0\x91\x82R` \x90\x91 `\x04`\x05\x90\x92\x02\x01\x90\x81\x01T\x90\x91P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90aI'\x90`\x01`\x01`\x80\x1B\x03\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1Fc\x07\xC4\xAC\xDD`\xE0\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\xFF\x16\x11aIaW`@Q\x7F\xB3K\\\"\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\x01`@Q\x80\x91\x03\x90\xFD[`\0\x81[`\x04\x83\x01T\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90aJ\x06\x90`\x01`\x01`\x80\x1B\x03\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1Fc\x07\xC4\xAC\xDD`\xE0\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\xFF\x16\x92P\x82\x11\x15aJ{W\x82Tc\xFF\xFF\xFF\xFF\x16aJE\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01aXaV[\x83\x03aJOW\x83\x91P[`\x02\x81\x81T\x81\x10aJbWaJbaX5V[\x90`\0R` `\0 \x90`\x05\x02\x01\x93P\x80\x94PPaIeV[`\x04\x81\x81\x01T\x90\x84\x01T`\x01`\x01`\x80\x1B\x03\x91\x82\x16\x91\x16`\0\x81`\x01`\x01`\x80\x1B\x03\x16aJ\xC0aJ\xB4\x85`\x01`\x01`\x80\x1B\x03\x16`\x01\x1C\x90V[`\x01`\x01`\x80\x1B\x03\x16\x90V[`\x01`\x01`\x80\x1B\x03\x16\x14\x90P\x80\x15aKYW`\0aJ\xE6\x83`\x01`\x01`\x80\x1B\x03\x16aF\xD4V[`\x01`\x01`\x80\x1B\x03\x16\x11\x15aK6W`\0aK\x16aK\x0E`\x01`\x01`\x01`\x80\x1B\x03\x86\x16aZ)V[\x89`\x01aGZV[`\x03\x81\x01T`\x04\x90\x91\x01T\x90\x9CP`\x01`\x01`\x80\x1B\x03\x16\x9APaK<\x90PV[`\x08T\x9AP[`\x03\x86\x01T`\x04\x87\x01T\x90\x99P`\x01`\x01`\x80\x1B\x03\x16\x97PaK\x9DV[`\0aKraK\x0E`\x01`\x01`\x80\x1B\x03\x85\x16`\x01aZIV[`\x03\x80\x89\x01T`\x04\x80\x8B\x01T\x92\x84\x01T\x93\x01T\x90\x9EP`\x01`\x01`\x80\x1B\x03\x91\x82\x16\x9DP\x91\x9BP\x16\x98PP[PPPPPPP\x91\x93P\x91\x93V[`\0`\x01`\x01`\x80\x1B\x03\x84\x16\x15aL\x06W`@\x80Q` \x81\x01\x87\x90R`\x01`\x01`\x80\x1B\x03\x80\x87\x16\x92\x82\x01\x92\x90\x92R``\x81\x01\x85\x90R\x90\x83\x16`\x80\x82\x01R`\xA0\x01`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 a\x16\x02V[\x82\x82`@Q` \x01aL+\x92\x91\x90\x91\x82R`\x01`\x01`\x80\x1B\x03\x16` \x82\x01R`@\x01\x90V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 \x95\x94PPPPPV[`\0\x80aL\xBE\x84~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1Fc\x07\xC4\xAC\xDD`\xE0\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\xFF\x16\x90P\x80\x83\x03`\x01\x84\x1B`\x01\x80\x83\x1B\x03\x86\x83\x1B\x17\x03\x92PPP\x92\x91PPV[`\0\x80`\0\x83`\0\x01Q`\0\x03aM\"W`@Q\x7FZ\xB4X\xFB\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\x01`@Q\x80\x91\x03\x90\xFD[` \x84\x01Q\x80Q`\0\x1A`\x7F\x81\x11aMGW`\0`\x01`\0\x94P\x94P\x94PPPaQvV[`\xB7\x81\x11aN]W`\0aM\\`\x80\x83aX\x93V[\x90P\x80\x87`\0\x01Q\x11aM\x9BW`@Q\x7Ff\xC9D\x85\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01\x83\x81\x01Q\x7F\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x90\x82\x14\x80\x15aN\x13WP\x7F\x80\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x7F\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x82\x16\x10[\x15aNJW`@Q\x7F\xBA\xBB\x01\xDD\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\x01`@Q\x80\x91\x03\x90\xFD[P`\x01\x95P\x93P`\0\x92PaQv\x91PPV[`\xBF\x81\x11aO\xBBW`\0aNr`\xB7\x83aX\x93V[\x90P\x80\x87`\0\x01Q\x11aN\xB1W`@Q\x7Ff\xC9D\x85\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01\x83\x01Q\x7F\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16`\0\x81\x90\x03aO\x13W`@Q\x7F\xBA\xBB\x01\xDD\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01\x84\x01Q`\x08\x83\x02a\x01\0\x03\x1C`7\x81\x11aO[W`@Q\x7F\xBA\xBB\x01\xDD\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\x01`@Q\x80\x91\x03\x90\xFD[aOe\x81\x84aXaV[\x89Q\x11aO\x9EW`@Q\x7Ff\xC9D\x85\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\x01`@Q\x80\x91\x03\x90\xFD[aO\xA9\x83`\x01aXaV[\x97P\x95P`\0\x94PaQv\x93PPPPV[`\xF7\x81\x11aP W`\0aO\xD0`\xC0\x83aX\x93V[\x90P\x80\x87`\0\x01Q\x11aP\x0FW`@Q\x7Ff\xC9D\x85\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01\x95P\x93P\x84\x92PaQv\x91PPV[`\0aP-`\xF7\x83aX\x93V[\x90P\x80\x87`\0\x01Q\x11aPlW`@Q\x7Ff\xC9D\x85\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01\x83\x01Q\x7F\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16`\0\x81\x90\x03aP\xCEW`@Q\x7F\xBA\xBB\x01\xDD\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01\x84\x01Q`\x08\x83\x02a\x01\0\x03\x1C`7\x81\x11aQ\x16W`@Q\x7F\xBA\xBB\x01\xDD\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\x01`@Q\x80\x91\x03\x90\xFD[aQ \x81\x84aXaV[\x89Q\x11aQYW`@Q\x7Ff\xC9D\x85\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\x01`@Q\x80\x91\x03\x90\xFD[aQd\x83`\x01aXaV[\x97P\x95P`\x01\x94PaQv\x93PPPPV[\x91\x93\x90\x92PV[``\x81g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15aQ\x98WaQ\x98aW\x9BV[`@Q\x90\x80\x82R\x80`\x1F\x01`\x1F\x19\x16` \x01\x82\x01`@R\x80\x15aQ\xC2W` \x82\x01\x81\x806\x837\x01\x90P[P\x90P\x81\x15aR\x0BW`\0aQ\xD7\x84\x86aXaV[\x90P` \x82\x01`\0[\x84\x81\x10\x15aQ\xF8W\x82\x81\x01Q\x82\x82\x01R` \x01aQ\xE0V[\x84\x81\x11\x15aR\x07W`\0\x85\x83\x01R[PPP[\x93\x92PPPV[`\0\x81aR\x8F\x84`\x01`\x01`\x80\x1B\x03\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1Fc\x07\xC4\xAC\xDD`\xE0\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\xFF\x16\x11aR\xA5Wc\xB3K\\\"`\0R`\x04`\x1C\xFD[aR\xAE\x83aSQV[\x90P\x81aS+\x82`\x01`\x01`\x80\x1B\x03\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1Fc\x07\xC4\xAC\xDD`\xE0\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\xFF\x16\x11aA\xE6WaA\xE3aSA\x83`\x01aXaV[`\x01`\x01`\x80\x1B\x03\x83\x16\x90aS\xDDV[`\0\x81\x19`\x01\x83\x01\x16\x81aS\xCC\x82~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1Fc\x07\xC4\xAC\xDD`\xE0\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\xFF\x16\x93\x90\x93\x1C\x80\x15\x17\x93\x92PPPV[`\0\x80aTQ\x84~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1Fc\x07\xC4\xAC\xDD`\xE0\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\xFF\x16\x90P\x80\x83\x03`\x01\x80\x82\x1B\x03\x85\x82\x1B\x17\x92PPP\x92\x91PPV[`\0\x80\x83`\x1F\x84\x01\x12aT\x7FW`\0\x80\xFD[P\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15aT\x97W`\0\x80\xFD[` \x83\x01\x91P\x83` \x82\x85\x01\x01\x11\x15aT\xAFW`\0\x80\xFD[\x92P\x92\x90PV[`\0\x80`\0\x83\x85\x03`\xA0\x81\x12\x15aT\xCCW`\0\x80\xFD[`\x80\x81\x12\x15aT\xDAW`\0\x80\xFD[P\x83\x92P`\x80\x84\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15aT\xF8W`\0\x80\xFD[aU\x04\x86\x82\x87\x01aTmV[\x94\x97\x90\x96P\x93\x94PPPPV[`\0\x80`@\x83\x85\x03\x12\x15aU$W`\0\x80\xFD[PP\x805\x92` \x90\x91\x015\x91PV[cNH{q`\xE0\x1B`\0R`!`\x04R`$`\0\xFD[`\x03\x81\x10aUgWcNH{q`\xE0\x1B`\0R`!`\x04R`$`\0\xFD[PV[` \x81\x01aUw\x83aUIV[\x91\x90R\x90V[`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14aUgW`\0\x80\xFD[`\0` \x82\x84\x03\x12\x15aU\xA4W`\0\x80\xFD[\x815aR\x0B\x81aU}V[`\0\x80`\0``\x84\x86\x03\x12\x15aU\xC4W`\0\x80\xFD[PP\x815\x93` \x83\x015\x93P`@\x90\x92\x015\x91\x90PV[`\0\x81Q\x80\x84R`\0[\x81\x81\x10\x15aV\x01W` \x81\x85\x01\x81\x01Q\x86\x83\x01\x82\x01R\x01aU\xE5V[\x81\x81\x11\x15aV\x13W`\0` \x83\x87\x01\x01R[P`\x1F\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x92\x90\x92\x01` \x01\x92\x91PPV[` \x81R`\0aA\xE3` \x83\x01\x84aU\xDBV[`\0` \x82\x84\x03\x12\x15aVkW`\0\x80\xFD[P5\x91\x90PV[\x80\x15\x15\x81\x14aUgW`\0\x80\xFD[`\0\x80`\0\x80`\x80\x85\x87\x03\x12\x15aV\x96W`\0\x80\xFD[\x845\x93P` \x85\x015\x92P`@\x85\x015\x91P``\x85\x015aV\xB6\x81aVrV[\x93\x96\x92\x95P\x90\x93PPV[`\0` \x82\x84\x03\x12\x15aV\xD3W`\0\x80\xFD[\x815`\x01`\x01`\x80\x1B\x03\x81\x16\x81\x14aR\x0BW`\0\x80\xFD[`\0\x80`\0\x80`\0\x80`\x80\x87\x89\x03\x12\x15aW\x03W`\0\x80\xFD[\x865\x95P` \x87\x015aW\x15\x81aVrV[\x94P`@\x87\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15aW2W`\0\x80\xFD[aW>\x8A\x83\x8B\x01aTmV[\x90\x96P\x94P``\x89\x015\x91P\x80\x82\x11\x15aWWW`\0\x80\xFD[PaWd\x89\x82\x8A\x01aTmV[\x97\x9A\x96\x99P\x94\x97P\x92\x95\x93\x94\x92PPPV[c\xFF\xFF\xFF\xFF\x84\x16\x81R\x82` \x82\x01R```@\x82\x01R`\0a\x16\x02``\x83\x01\x84aU\xDBV[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[`\0`\x80\x82\x84\x03\x12\x15aW\xC3W`\0\x80\xFD[`@Q`\x80\x81\x01\x81\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17\x15aW\xF4WcNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[\x80`@RP\x825\x81R` \x83\x015` \x82\x01R`@\x83\x015`@\x82\x01R``\x83\x015``\x82\x01R\x80\x91PP\x92\x91PPV[\x81\x83\x827`\0\x91\x01\x90\x81R\x91\x90PV[cNH{q`\xE0\x1B`\0R`2`\x04R`$`\0\xFD[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[`\0\x82\x19\x82\x11\x15aXtWaXtaXKV[P\x01\x90V[`\0`\0\x19\x82\x03aX\x8CWaX\x8CaXKV[P`\x01\x01\x90V[`\0\x82\x82\x10\x15aX\xA5WaX\xA5aXKV[P\x03\x90V[`\0` \x82\x84\x03\x12\x15aX\xBCW`\0\x80\xFD[\x81QaR\x0B\x81aU}V[`\0` \x82\x84\x03\x12\x15aX\xD9W`\0\x80\xFD[PQ\x91\x90PV[`\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x83\x16\x81\x85\x16\x80\x83\x03\x82\x11\x15aY\x03WaY\x03aXKV[\x01\x94\x93PPPPV[`\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x83\x16\x81\x85\x16\x81\x83\x04\x81\x11\x82\x15\x15\x16\x15aY3WaY3aXKV[\x02\x94\x93PPPPV[`\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x81\x16\x90\x83\x16\x81\x81\x10\x15aY]WaY]aXKV[\x03\x93\x92PPPV[`\0` \x82\x84\x03\x12\x15aYwW`\0\x80\xFD[\x81QaR\x0B\x81aVrV[`\0\x80`@\x83\x85\x03\x12\x15aY\x95W`\0\x80\xFD[PP\x80Q` \x90\x91\x01Q\x90\x92\x90\x91PV[`\0\x81`\0\x19\x04\x83\x11\x82\x15\x15\x16\x15aY\xC0WaY\xC0aXKV[P\x02\x90V[`\0` \x82\x84\x03\x12\x15aY\xD7W`\0\x80\xFD[\x81Qc\xFF\xFF\xFF\xFF\x81\x16\x81\x14aR\x0BW`\0\x80\xFD[cNH{q`\xE0\x1B`\0R`\x12`\x04R`$`\0\xFD[`\0\x82aZ\x10WaZ\x10aY\xEBV[P\x04\x90V[`\0\x82aZ$WaZ$aY\xEBV[P\x06\x90V[`\0`\x01`\x01`\x80\x1B\x03\x83\x81\x16\x90\x83\x16\x81\x81\x10\x15aY]WaY]aXKV[`\0`\x01`\x01`\x80\x1B\x03\x80\x83\x16\x81\x85\x16\x80\x83\x03\x82\x11\x15aY\x03WaY\x03aXKV[\x81\x83R\x81\x81` \x85\x017P`\0` \x82\x84\x01\x01R`\0` \x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0`\x1F\x84\x01\x16\x84\x01\x01\x90P\x92\x91PPV[``\x81R`\0aZ\xC8``\x83\x01\x87\x89aZkV[\x82\x81\x03` \x84\x01RaZ\xDB\x81\x86\x88aZkV[\x91PP\x82`@\x83\x01R\x96\x95PPPPPPV[`\0`\xFF\x82\x16`\xFF\x84\x16\x80\x82\x10\x15a[\x08Wa[\x08aXKV[\x90\x03\x93\x92PPPV[`\0`\xFF\x83\x16\x80a[$Wa[$aY\xEBV[\x80`\xFF\x84\x16\x06\x91PP\x92\x91PPV[`\0\x7F\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF`\0\x84\x13`\0\x84\x13\x85\x83\x04\x85\x11\x82\x82\x16\x16\x15a[tWa[taXKV[\x7F\x80\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\0\x87\x12\x86\x82\x05\x88\x12\x81\x84\x16\x16\x15a[\xAFWa[\xAFaXKV[`\0\x87\x12\x92P\x87\x82\x05\x87\x12\x84\x84\x16\x16\x15a[\xCBWa[\xCBaXKV[\x87\x85\x05\x87\x12\x81\x84\x16\x16\x15a[\xE1Wa[\xE1aXKV[PPP\x92\x90\x93\x02\x93\x92PPPV[`\0\x82a[\xFEWa[\xFEaY\xEBV[`\0\x19\x83\x14\x7F\x80\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x83\x14\x16\x15a\\4Wa\\4aXKV[P\x05\x90V\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct BondDistributionMode(u8); + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for u8 { + #[inline] + fn stv_to_tokens( + &self, + ) -> as alloy_sol_types::SolType>::Token<'_> { + alloy_sol_types::private::SolTypeValue::< + alloy::sol_types::sol_data::Uint<8>, + >::stv_to_tokens(self) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + as alloy_sol_types::SolType>::tokenize(self) + .0 + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::SolType>::abi_encode_packed_to(self, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + as alloy_sol_types::SolType>::abi_encoded_size(self) + } + } + impl BondDistributionMode { + /// The Solidity type name. + pub const NAME: &'static str = stringify!(@ name); + /// Convert from the underlying value type. + #[inline] + pub const fn from_underlying(value: u8) -> Self { + Self(value) + } + /// Return the underlying value. + #[inline] + pub const fn into_underlying(self) -> u8 { + self.0 + } + /// Return the single encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode(&self) -> alloy_sol_types::private::Vec { + ::abi_encode(&self.0) + } + /// Return the packed encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec { + ::abi_encode_packed(&self.0) + } + } + #[automatically_derived] + impl From for BondDistributionMode { + fn from(value: u8) -> Self { + Self::from_underlying(value) + } + } + #[automatically_derived] + impl From for u8 { + fn from(value: BondDistributionMode) -> Self { + value.into_underlying() + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for BondDistributionMode { + type RustType = u8; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = Self::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + Self::type_check(token).is_ok() + } + #[inline] + fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> { + as alloy_sol_types::SolType>::type_check(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + as alloy_sol_types::SolType>::detokenize(token) + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for BondDistributionMode { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + as alloy_sol_types::EventTopic>::topic_preimage_length(rust) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out) + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + as alloy_sol_types::EventTopic>::encode_topic(rust) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct GameStatus(u8); + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for u8 { + #[inline] + fn stv_to_tokens( + &self, + ) -> as alloy_sol_types::SolType>::Token<'_> { + alloy_sol_types::private::SolTypeValue::< + alloy::sol_types::sol_data::Uint<8>, + >::stv_to_tokens(self) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + as alloy_sol_types::SolType>::tokenize(self) + .0 + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::SolType>::abi_encode_packed_to(self, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + as alloy_sol_types::SolType>::abi_encoded_size(self) + } + } + impl GameStatus { + /// The Solidity type name. + pub const NAME: &'static str = stringify!(@ name); + /// Convert from the underlying value type. + #[inline] + pub const fn from_underlying(value: u8) -> Self { + Self(value) + } + /// Return the underlying value. + #[inline] + pub const fn into_underlying(self) -> u8 { + self.0 + } + /// Return the single encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode(&self) -> alloy_sol_types::private::Vec { + ::abi_encode(&self.0) + } + /// Return the packed encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec { + ::abi_encode_packed(&self.0) + } + } + #[automatically_derived] + impl From for GameStatus { + fn from(value: u8) -> Self { + Self::from_underlying(value) + } + } + #[automatically_derived] + impl From for u8 { + fn from(value: GameStatus) -> Self { + value.into_underlying() + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for GameStatus { + type RustType = u8; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = Self::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + Self::type_check(token).is_ok() + } + #[inline] + fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> { + as alloy_sol_types::SolType>::type_check(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + as alloy_sol_types::SolType>::detokenize(token) + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for GameStatus { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + as alloy_sol_types::EventTopic>::topic_preimage_length(rust) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out) + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + as alloy_sol_types::EventTopic>::encode_topic(rust) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct Claim(alloy::sol_types::private::FixedBytes<32>); + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue + for alloy::sol_types::private::FixedBytes<32> { + #[inline] + fn stv_to_tokens( + &self, + ) -> as alloy_sol_types::SolType>::Token<'_> { + alloy_sol_types::private::SolTypeValue::< + alloy::sol_types::sol_data::FixedBytes<32>, + >::stv_to_tokens(self) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + as alloy_sol_types::SolType>::tokenize(self) + .0 + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::SolType>::abi_encode_packed_to(self, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + as alloy_sol_types::SolType>::abi_encoded_size(self) + } + } + impl Claim { + /// The Solidity type name. + pub const NAME: &'static str = stringify!(@ name); + /// Convert from the underlying value type. + #[inline] + pub const fn from_underlying( + value: alloy::sol_types::private::FixedBytes<32>, + ) -> Self { + Self(value) + } + /// Return the underlying value. + #[inline] + pub const fn into_underlying( + self, + ) -> alloy::sol_types::private::FixedBytes<32> { + self.0 + } + /// Return the single encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode(&self) -> alloy_sol_types::private::Vec { + ::abi_encode(&self.0) + } + /// Return the packed encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec { + ::abi_encode_packed(&self.0) + } + } + #[automatically_derived] + impl From> for Claim { + fn from(value: alloy::sol_types::private::FixedBytes<32>) -> Self { + Self::from_underlying(value) + } + } + #[automatically_derived] + impl From for alloy::sol_types::private::FixedBytes<32> { + fn from(value: Claim) -> Self { + value.into_underlying() + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for Claim { + type RustType = alloy::sol_types::private::FixedBytes<32>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = Self::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + Self::type_check(token).is_ok() + } + #[inline] + fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> { + as alloy_sol_types::SolType>::type_check(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + as alloy_sol_types::SolType>::detokenize(token) + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for Claim { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + as alloy_sol_types::EventTopic>::topic_preimage_length(rust) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out) + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + as alloy_sol_types::EventTopic>::encode_topic(rust) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct Clock(u128); + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for u128 { + #[inline] + fn stv_to_tokens( + &self, + ) -> as alloy_sol_types::SolType>::Token<'_> { + alloy_sol_types::private::SolTypeValue::< + alloy::sol_types::sol_data::Uint<128>, + >::stv_to_tokens(self) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + as alloy_sol_types::SolType>::tokenize(self) + .0 + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::SolType>::abi_encode_packed_to(self, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + as alloy_sol_types::SolType>::abi_encoded_size(self) + } + } + impl Clock { + /// The Solidity type name. + pub const NAME: &'static str = stringify!(@ name); + /// Convert from the underlying value type. + #[inline] + pub const fn from_underlying(value: u128) -> Self { + Self(value) + } + /// Return the underlying value. + #[inline] + pub const fn into_underlying(self) -> u128 { + self.0 + } + /// Return the single encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode(&self) -> alloy_sol_types::private::Vec { + ::abi_encode(&self.0) + } + /// Return the packed encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec { + ::abi_encode_packed(&self.0) + } + } + #[automatically_derived] + impl From for Clock { + fn from(value: u128) -> Self { + Self::from_underlying(value) + } + } + #[automatically_derived] + impl From for u128 { + fn from(value: Clock) -> Self { + value.into_underlying() + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for Clock { + type RustType = u128; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = Self::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + Self::type_check(token).is_ok() + } + #[inline] + fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> { + as alloy_sol_types::SolType>::type_check(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + as alloy_sol_types::SolType>::detokenize(token) + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for Clock { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + as alloy_sol_types::EventTopic>::topic_preimage_length(rust) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out) + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + as alloy_sol_types::EventTopic>::encode_topic(rust) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct Duration(u64); + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for u64 { + #[inline] + fn stv_to_tokens( + &self, + ) -> as alloy_sol_types::SolType>::Token<'_> { + alloy_sol_types::private::SolTypeValue::< + alloy::sol_types::sol_data::Uint<64>, + >::stv_to_tokens(self) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + as alloy_sol_types::SolType>::tokenize(self) + .0 + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::SolType>::abi_encode_packed_to(self, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + as alloy_sol_types::SolType>::abi_encoded_size(self) + } + } + impl Duration { + /// The Solidity type name. + pub const NAME: &'static str = stringify!(@ name); + /// Convert from the underlying value type. + #[inline] + pub const fn from_underlying(value: u64) -> Self { + Self(value) + } + /// Return the underlying value. + #[inline] + pub const fn into_underlying(self) -> u64 { + self.0 + } + /// Return the single encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode(&self) -> alloy_sol_types::private::Vec { + ::abi_encode(&self.0) + } + /// Return the packed encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec { + ::abi_encode_packed(&self.0) + } + } + #[automatically_derived] + impl From for Duration { + fn from(value: u64) -> Self { + Self::from_underlying(value) + } + } + #[automatically_derived] + impl From for u64 { + fn from(value: Duration) -> Self { + value.into_underlying() + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for Duration { + type RustType = u64; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = Self::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + Self::type_check(token).is_ok() + } + #[inline] + fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> { + as alloy_sol_types::SolType>::type_check(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + as alloy_sol_types::SolType>::detokenize(token) + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for Duration { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + as alloy_sol_types::EventTopic>::topic_preimage_length(rust) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out) + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + as alloy_sol_types::EventTopic>::encode_topic(rust) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct GameType(u32); + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for u32 { + #[inline] + fn stv_to_tokens( + &self, + ) -> as alloy_sol_types::SolType>::Token<'_> { + alloy_sol_types::private::SolTypeValue::< + alloy::sol_types::sol_data::Uint<32>, + >::stv_to_tokens(self) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + as alloy_sol_types::SolType>::tokenize(self) + .0 + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::SolType>::abi_encode_packed_to(self, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + as alloy_sol_types::SolType>::abi_encoded_size(self) + } + } + impl GameType { + /// The Solidity type name. + pub const NAME: &'static str = stringify!(@ name); + /// Convert from the underlying value type. + #[inline] + pub const fn from_underlying(value: u32) -> Self { + Self(value) + } + /// Return the underlying value. + #[inline] + pub const fn into_underlying(self) -> u32 { + self.0 + } + /// Return the single encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode(&self) -> alloy_sol_types::private::Vec { + ::abi_encode(&self.0) + } + /// Return the packed encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec { + ::abi_encode_packed(&self.0) + } + } + #[automatically_derived] + impl From for GameType { + fn from(value: u32) -> Self { + Self::from_underlying(value) + } + } + #[automatically_derived] + impl From for u32 { + fn from(value: GameType) -> Self { + value.into_underlying() + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for GameType { + type RustType = u32; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = Self::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + Self::type_check(token).is_ok() + } + #[inline] + fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> { + as alloy_sol_types::SolType>::type_check(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + as alloy_sol_types::SolType>::detokenize(token) + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for GameType { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + as alloy_sol_types::EventTopic>::topic_preimage_length(rust) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out) + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + as alloy_sol_types::EventTopic>::encode_topic(rust) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct Hash(alloy::sol_types::private::FixedBytes<32>); + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue + for alloy::sol_types::private::FixedBytes<32> { + #[inline] + fn stv_to_tokens( + &self, + ) -> as alloy_sol_types::SolType>::Token<'_> { + alloy_sol_types::private::SolTypeValue::< + alloy::sol_types::sol_data::FixedBytes<32>, + >::stv_to_tokens(self) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + as alloy_sol_types::SolType>::tokenize(self) + .0 + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::SolType>::abi_encode_packed_to(self, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + as alloy_sol_types::SolType>::abi_encoded_size(self) + } + } + impl Hash { + /// The Solidity type name. + pub const NAME: &'static str = stringify!(@ name); + /// Convert from the underlying value type. + #[inline] + pub const fn from_underlying( + value: alloy::sol_types::private::FixedBytes<32>, + ) -> Self { + Self(value) + } + /// Return the underlying value. + #[inline] + pub const fn into_underlying( + self, + ) -> alloy::sol_types::private::FixedBytes<32> { + self.0 + } + /// Return the single encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode(&self) -> alloy_sol_types::private::Vec { + ::abi_encode(&self.0) + } + /// Return the packed encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec { + ::abi_encode_packed(&self.0) + } + } + #[automatically_derived] + impl From> for Hash { + fn from(value: alloy::sol_types::private::FixedBytes<32>) -> Self { + Self::from_underlying(value) + } + } + #[automatically_derived] + impl From for alloy::sol_types::private::FixedBytes<32> { + fn from(value: Hash) -> Self { + value.into_underlying() + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for Hash { + type RustType = alloy::sol_types::private::FixedBytes<32>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = Self::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + Self::type_check(token).is_ok() + } + #[inline] + fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> { + as alloy_sol_types::SolType>::type_check(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + as alloy_sol_types::SolType>::detokenize(token) + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for Hash { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + as alloy_sol_types::EventTopic>::topic_preimage_length(rust) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out) + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + as alloy_sol_types::EventTopic>::encode_topic(rust) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct Position(u128); + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for u128 { + #[inline] + fn stv_to_tokens( + &self, + ) -> as alloy_sol_types::SolType>::Token<'_> { + alloy_sol_types::private::SolTypeValue::< + alloy::sol_types::sol_data::Uint<128>, + >::stv_to_tokens(self) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + as alloy_sol_types::SolType>::tokenize(self) + .0 + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::SolType>::abi_encode_packed_to(self, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + as alloy_sol_types::SolType>::abi_encoded_size(self) + } + } + impl Position { + /// The Solidity type name. + pub const NAME: &'static str = stringify!(@ name); + /// Convert from the underlying value type. + #[inline] + pub const fn from_underlying(value: u128) -> Self { + Self(value) + } + /// Return the underlying value. + #[inline] + pub const fn into_underlying(self) -> u128 { + self.0 + } + /// Return the single encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode(&self) -> alloy_sol_types::private::Vec { + ::abi_encode(&self.0) + } + /// Return the packed encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec { + ::abi_encode_packed(&self.0) + } + } + #[automatically_derived] + impl From for Position { + fn from(value: u128) -> Self { + Self::from_underlying(value) + } + } + #[automatically_derived] + impl From for u128 { + fn from(value: Position) -> Self { + value.into_underlying() + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for Position { + type RustType = u128; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = Self::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + Self::type_check(token).is_ok() + } + #[inline] + fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> { + as alloy_sol_types::SolType>::type_check(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + as alloy_sol_types::SolType>::detokenize(token) + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for Position { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + as alloy_sol_types::EventTopic>::topic_preimage_length(rust) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out) + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + as alloy_sol_types::EventTopic>::encode_topic(rust) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct Timestamp(u64); + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for u64 { + #[inline] + fn stv_to_tokens( + &self, + ) -> as alloy_sol_types::SolType>::Token<'_> { + alloy_sol_types::private::SolTypeValue::< + alloy::sol_types::sol_data::Uint<64>, + >::stv_to_tokens(self) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + as alloy_sol_types::SolType>::tokenize(self) + .0 + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::SolType>::abi_encode_packed_to(self, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + as alloy_sol_types::SolType>::abi_encoded_size(self) + } + } + impl Timestamp { + /// The Solidity type name. + pub const NAME: &'static str = stringify!(@ name); + /// Convert from the underlying value type. + #[inline] + pub const fn from_underlying(value: u64) -> Self { + Self(value) + } + /// Return the underlying value. + #[inline] + pub const fn into_underlying(self) -> u64 { + self.0 + } + /// Return the single encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode(&self) -> alloy_sol_types::private::Vec { + ::abi_encode(&self.0) + } + /// Return the packed encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec { + ::abi_encode_packed(&self.0) + } + } + #[automatically_derived] + impl From for Timestamp { + fn from(value: u64) -> Self { + Self::from_underlying(value) + } + } + #[automatically_derived] + impl From for u64 { + fn from(value: Timestamp) -> Self { + value.into_underlying() + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for Timestamp { + type RustType = u64; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = Self::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + Self::type_check(token).is_ok() + } + #[inline] + fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> { + as alloy_sol_types::SolType>::type_check(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + as alloy_sol_types::SolType>::detokenize(token) + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for Timestamp { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + as alloy_sol_types::EventTopic>::topic_preimage_length(rust) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out) + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + as alloy_sol_types::EventTopic>::encode_topic(rust) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**```solidity +struct GameConstructorParams { uint256 maxGameDepth; uint256 splitDepth; Duration clockExtension; Duration maxClockDuration; } +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct GameConstructorParams { + #[allow(missing_docs)] + pub maxGameDepth: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub splitDepth: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub clockExtension: ::RustType, + #[allow(missing_docs)] + pub maxClockDuration: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + Duration, + Duration, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::primitives::aliases::U256, + ::RustType, + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: GameConstructorParams) -> Self { + ( + value.maxGameDepth, + value.splitDepth, + value.clockExtension, + value.maxClockDuration, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for GameConstructorParams { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + maxGameDepth: tuple.0, + splitDepth: tuple.1, + clockExtension: tuple.2, + maxClockDuration: tuple.3, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolValue for GameConstructorParams { + type SolType = Self; + } + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for GameConstructorParams { + #[inline] + fn stv_to_tokens(&self) -> ::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.maxGameDepth), + as alloy_sol_types::SolType>::tokenize(&self.splitDepth), + ::tokenize( + &self.clockExtension, + ), + ::tokenize( + &self.maxClockDuration, + ), + ) + } + #[inline] + fn stv_abi_encoded_size(&self) -> usize { + if let Some(size) = ::ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encoded_size(&tuple) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + ::eip712_hash_struct(self) + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + if let Some(size) = ::PACKED_ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for GameConstructorParams { + type RustType = Self; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = ::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + as alloy_sol_types::SolType>::valid_token(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + let tuple = as alloy_sol_types::SolType>::detokenize(token); + >>::from(tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolStruct for GameConstructorParams { + const NAME: &'static str = "GameConstructorParams"; + #[inline] + fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> { + alloy_sol_types::private::Cow::Borrowed( + "GameConstructorParams(uint256 maxGameDepth,uint256 splitDepth,uint64 clockExtension,uint64 maxClockDuration)", + ) + } + #[inline] + fn eip712_components() -> alloy_sol_types::private::Vec< + alloy_sol_types::private::Cow<'static, str>, + > { + alloy_sol_types::private::Vec::new() + } + #[inline] + fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> { + ::eip712_root_type() + } + #[inline] + fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec { + [ + as alloy_sol_types::SolType>::eip712_data_word(&self.maxGameDepth) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.splitDepth) + .0, + ::eip712_data_word( + &self.clockExtension, + ) + .0, + ::eip712_data_word( + &self.maxClockDuration, + ) + .0, + ] + .concat() + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for GameConstructorParams { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + 0usize + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.maxGameDepth, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.splitDepth, + ) + + ::topic_preimage_length( + &rust.clockExtension, + ) + + ::topic_preimage_length( + &rust.maxClockDuration, + ) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + out.reserve( + ::topic_preimage_length(rust), + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.maxGameDepth, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.splitDepth, + out, + ); + ::encode_topic_preimage( + &rust.clockExtension, + out, + ); + ::encode_topic_preimage( + &rust.maxClockDuration, + out, + ); + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + let mut out = alloy_sol_types::private::Vec::new(); + ::encode_topic_preimage( + rust, + &mut out, + ); + alloy_sol_types::abi::token::WordToken( + alloy_sol_types::private::keccak256(out), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `AlreadyInitialized()` and selector `0x0dc149f0`. +```solidity +error AlreadyInitialized(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct AlreadyInitialized; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: AlreadyInitialized) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for AlreadyInitialized { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for AlreadyInitialized { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "AlreadyInitialized()"; + const SELECTOR: [u8; 4] = [13u8, 193u8, 73u8, 240u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `AnchorRootNotFound()` and selector `0x6a6bc3b2`. +```solidity +error AnchorRootNotFound(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct AnchorRootNotFound; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: AnchorRootNotFound) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for AnchorRootNotFound { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for AnchorRootNotFound { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "AnchorRootNotFound()"; + const SELECTOR: [u8; 4] = [106u8, 107u8, 195u8, 178u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `BadExtraData()` and selector `0x9824bdab`. +```solidity +error BadExtraData(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct BadExtraData; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: BadExtraData) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for BadExtraData { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for BadExtraData { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "BadExtraData()"; + const SELECTOR: [u8; 4] = [152u8, 36u8, 189u8, 171u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `BlockNumberMatches()` and selector `0xb8ed8830`. +```solidity +error BlockNumberMatches(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct BlockNumberMatches; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: BlockNumberMatches) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for BlockNumberMatches { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for BlockNumberMatches { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "BlockNumberMatches()"; + const SELECTOR: [u8; 4] = [184u8, 237u8, 136u8, 48u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `BondTransferFailed()` and selector `0x83e6cc6b`. +```solidity +error BondTransferFailed(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct BondTransferFailed; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: BondTransferFailed) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for BondTransferFailed { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for BondTransferFailed { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "BondTransferFailed()"; + const SELECTOR: [u8; 4] = [131u8, 230u8, 204u8, 107u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `CannotDefendRootClaim()` and selector `0xa42637bc`. +```solidity +error CannotDefendRootClaim(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct CannotDefendRootClaim; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: CannotDefendRootClaim) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for CannotDefendRootClaim { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for CannotDefendRootClaim { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "CannotDefendRootClaim()"; + const SELECTOR: [u8; 4] = [164u8, 38u8, 55u8, 188u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ClaimAboveSplit()` and selector `0xb34b5c22`. +```solidity +error ClaimAboveSplit(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ClaimAboveSplit; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ClaimAboveSplit) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ClaimAboveSplit { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ClaimAboveSplit { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ClaimAboveSplit()"; + const SELECTOR: [u8; 4] = [179u8, 75u8, 92u8, 34u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ClaimAlreadyExists()` and selector `0x80497e3b`. +```solidity +error ClaimAlreadyExists(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ClaimAlreadyExists; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ClaimAlreadyExists) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ClaimAlreadyExists { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ClaimAlreadyExists { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ClaimAlreadyExists()"; + const SELECTOR: [u8; 4] = [128u8, 73u8, 126u8, 59u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ClaimAlreadyResolved()` and selector `0xf1a94581`. +```solidity +error ClaimAlreadyResolved(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ClaimAlreadyResolved; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ClaimAlreadyResolved) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ClaimAlreadyResolved { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ClaimAlreadyResolved { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ClaimAlreadyResolved()"; + const SELECTOR: [u8; 4] = [241u8, 169u8, 69u8, 129u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ClockNotExpired()` and selector `0xf2440b53`. +```solidity +error ClockNotExpired(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ClockNotExpired; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ClockNotExpired) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ClockNotExpired { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ClockNotExpired { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ClockNotExpired()"; + const SELECTOR: [u8; 4] = [242u8, 68u8, 11u8, 83u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ClockTimeExceeded()` and selector `0x3381d114`. +```solidity +error ClockTimeExceeded(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ClockTimeExceeded; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ClockTimeExceeded) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ClockTimeExceeded { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ClockTimeExceeded { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ClockTimeExceeded()"; + const SELECTOR: [u8; 4] = [51u8, 129u8, 209u8, 20u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ContentLengthMismatch()` and selector `0x66c94485`. +```solidity +error ContentLengthMismatch(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ContentLengthMismatch; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ContentLengthMismatch) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ContentLengthMismatch { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ContentLengthMismatch { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ContentLengthMismatch()"; + const SELECTOR: [u8; 4] = [102u8, 201u8, 68u8, 133u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `DuplicateStep()` and selector `0x9071e6af`. +```solidity +error DuplicateStep(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct DuplicateStep; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: DuplicateStep) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for DuplicateStep { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for DuplicateStep { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "DuplicateStep()"; + const SELECTOR: [u8; 4] = [144u8, 113u8, 230u8, 175u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `EmptyItem()` and selector `0x5ab458fb`. +```solidity +error EmptyItem(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct EmptyItem; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: EmptyItem) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for EmptyItem { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for EmptyItem { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "EmptyItem()"; + const SELECTOR: [u8; 4] = [90u8, 180u8, 88u8, 251u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `GameDepthExceeded()` and selector `0x56f57b2b`. +```solidity +error GameDepthExceeded(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct GameDepthExceeded; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: GameDepthExceeded) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for GameDepthExceeded { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for GameDepthExceeded { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "GameDepthExceeded()"; + const SELECTOR: [u8; 4] = [86u8, 245u8, 123u8, 43u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `GameNotFinalized()` and selector `0x4851bd9b`. +```solidity +error GameNotFinalized(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct GameNotFinalized; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: GameNotFinalized) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for GameNotFinalized { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for GameNotFinalized { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "GameNotFinalized()"; + const SELECTOR: [u8; 4] = [72u8, 81u8, 189u8, 155u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `GameNotInProgress()` and selector `0x67fe1950`. +```solidity +error GameNotInProgress(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct GameNotInProgress; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: GameNotInProgress) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for GameNotInProgress { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for GameNotInProgress { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "GameNotInProgress()"; + const SELECTOR: [u8; 4] = [103u8, 254u8, 25u8, 80u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `GameNotResolved()` and selector `0xc105260a`. +```solidity +error GameNotResolved(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct GameNotResolved; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: GameNotResolved) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for GameNotResolved { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for GameNotResolved { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "GameNotResolved()"; + const SELECTOR: [u8; 4] = [193u8, 5u8, 38u8, 10u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `GamePaused()` and selector `0x379a7ed9`. +```solidity +error GamePaused(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct GamePaused; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: GamePaused) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for GamePaused { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for GamePaused { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "GamePaused()"; + const SELECTOR: [u8; 4] = [55u8, 154u8, 126u8, 217u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `IncorrectBondAmount()` and selector `0x8620aa19`. +```solidity +error IncorrectBondAmount(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct IncorrectBondAmount; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: IncorrectBondAmount) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for IncorrectBondAmount { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for IncorrectBondAmount { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "IncorrectBondAmount()"; + const SELECTOR: [u8; 4] = [134u8, 32u8, 170u8, 25u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidBondDistributionMode()` and selector `0x078a3df4`. +```solidity +error InvalidBondDistributionMode(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidBondDistributionMode; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: InvalidBondDistributionMode) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for InvalidBondDistributionMode { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidBondDistributionMode { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidBondDistributionMode()"; + const SELECTOR: [u8; 4] = [7u8, 138u8, 61u8, 244u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidChallengePeriod()` and selector `0xb4e12433`. +```solidity +error InvalidChallengePeriod(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidChallengePeriod; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InvalidChallengePeriod) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InvalidChallengePeriod { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidChallengePeriod { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidChallengePeriod()"; + const SELECTOR: [u8; 4] = [180u8, 225u8, 36u8, 51u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidClockExtension()` and selector `0x8d77ecac`. +```solidity +error InvalidClockExtension(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidClockExtension; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InvalidClockExtension) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InvalidClockExtension { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidClockExtension { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidClockExtension()"; + const SELECTOR: [u8; 4] = [141u8, 119u8, 236u8, 172u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidDataRemainder()` and selector `0x5c5537b8`. +```solidity +error InvalidDataRemainder(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidDataRemainder; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InvalidDataRemainder) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InvalidDataRemainder { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidDataRemainder { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidDataRemainder()"; + const SELECTOR: [u8; 4] = [92u8, 85u8, 55u8, 184u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidDisputedClaimIndex()` and selector `0x30140332`. +```solidity +error InvalidDisputedClaimIndex(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidDisputedClaimIndex; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: InvalidDisputedClaimIndex) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for InvalidDisputedClaimIndex { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidDisputedClaimIndex { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidDisputedClaimIndex()"; + const SELECTOR: [u8; 4] = [48u8, 20u8, 3u8, 50u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidHeader()` and selector `0xbabb01dd`. +```solidity +error InvalidHeader(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidHeader; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InvalidHeader) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InvalidHeader { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidHeader { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidHeader()"; + const SELECTOR: [u8; 4] = [186u8, 187u8, 1u8, 221u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidHeaderRLP()` and selector `0xd81d583b`. +```solidity +error InvalidHeaderRLP(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidHeaderRLP; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InvalidHeaderRLP) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InvalidHeaderRLP { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidHeaderRLP { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidHeaderRLP()"; + const SELECTOR: [u8; 4] = [216u8, 29u8, 88u8, 59u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidLocalIdent()` and selector `0xff137e65`. +```solidity +error InvalidLocalIdent(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidLocalIdent; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InvalidLocalIdent) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InvalidLocalIdent { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidLocalIdent { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidLocalIdent()"; + const SELECTOR: [u8; 4] = [255u8, 19u8, 126u8, 101u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidOutputRootProof()` and selector `0x9cc00b5b`. +```solidity +error InvalidOutputRootProof(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidOutputRootProof; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InvalidOutputRootProof) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InvalidOutputRootProof { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidOutputRootProof { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidOutputRootProof()"; + const SELECTOR: [u8; 4] = [156u8, 192u8, 11u8, 91u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidParent()` and selector `0x5f53dd98`. +```solidity +error InvalidParent(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidParent; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InvalidParent) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InvalidParent { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidParent { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidParent()"; + const SELECTOR: [u8; 4] = [95u8, 83u8, 221u8, 152u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidPrestate()` and selector `0x696550ff`. +```solidity +error InvalidPrestate(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidPrestate; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InvalidPrestate) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InvalidPrestate { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidPrestate { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidPrestate()"; + const SELECTOR: [u8; 4] = [105u8, 101u8, 80u8, 255u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidSplitDepth()` and selector `0xe62ccf39`. +```solidity +error InvalidSplitDepth(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidSplitDepth; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InvalidSplitDepth) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InvalidSplitDepth { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidSplitDepth { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidSplitDepth()"; + const SELECTOR: [u8; 4] = [230u8, 44u8, 207u8, 57u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `L2BlockNumberChallenged()` and selector `0x0ea2e752`. +```solidity +error L2BlockNumberChallenged(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct L2BlockNumberChallenged; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: L2BlockNumberChallenged) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for L2BlockNumberChallenged { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for L2BlockNumberChallenged { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "L2BlockNumberChallenged()"; + const SELECTOR: [u8; 4] = [14u8, 162u8, 231u8, 82u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `MaxDepthTooLarge()` and selector `0x77dfe332`. +```solidity +error MaxDepthTooLarge(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct MaxDepthTooLarge; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: MaxDepthTooLarge) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for MaxDepthTooLarge { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for MaxDepthTooLarge { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "MaxDepthTooLarge()"; + const SELECTOR: [u8; 4] = [119u8, 223u8, 227u8, 50u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `NoCreditToClaim()` and selector `0x17bfe5f7`. +```solidity +error NoCreditToClaim(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct NoCreditToClaim; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: NoCreditToClaim) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for NoCreditToClaim { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for NoCreditToClaim { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "NoCreditToClaim()"; + const SELECTOR: [u8; 4] = [23u8, 191u8, 229u8, 247u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `OutOfOrderResolution()` and selector `0x9a076646`. +```solidity +error OutOfOrderResolution(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct OutOfOrderResolution; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: OutOfOrderResolution) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for OutOfOrderResolution { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for OutOfOrderResolution { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "OutOfOrderResolution()"; + const SELECTOR: [u8; 4] = [154u8, 7u8, 102u8, 70u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `UnexpectedList()` and selector `0x1ff9b2e4`. +```solidity +error UnexpectedList(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct UnexpectedList; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: UnexpectedList) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for UnexpectedList { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for UnexpectedList { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "UnexpectedList()"; + const SELECTOR: [u8; 4] = [31u8, 249u8, 178u8, 228u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `UnexpectedRootClaim(bytes32)` and selector `0xf40239db`. +```solidity +error UnexpectedRootClaim(Claim rootClaim); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct UnexpectedRootClaim { + #[allow(missing_docs)] + pub rootClaim: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Claim,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (::RustType,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: UnexpectedRootClaim) -> Self { + (value.rootClaim,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for UnexpectedRootClaim { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { rootClaim: tuple.0 } + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for UnexpectedRootClaim { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "UnexpectedRootClaim(bytes32)"; + const SELECTOR: [u8; 4] = [244u8, 2u8, 57u8, 219u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + (::tokenize(&self.rootClaim),) + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `UnexpectedString()` and selector `0x4b9c6abe`. +```solidity +error UnexpectedString(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct UnexpectedString; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: UnexpectedString) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for UnexpectedString { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for UnexpectedString { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "UnexpectedString()"; + const SELECTOR: [u8; 4] = [75u8, 156u8, 106u8, 190u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ValidStep()` and selector `0xfb4e40dd`. +```solidity +error ValidStep(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ValidStep; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ValidStep) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ValidStep { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ValidStep { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ValidStep()"; + const SELECTOR: [u8; 4] = [251u8, 78u8, 64u8, 221u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `GameClosed(uint8)` and selector `0x9908eaac0645df9d0704d06adc9e07337c951de2f06b5f2836151d48d5e4722f`. +```solidity +event GameClosed(BondDistributionMode bondDistributionMode); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct GameClosed { + #[allow(missing_docs)] + pub bondDistributionMode: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for GameClosed { + type DataTuple<'a> = (BondDistributionMode,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,); + const SIGNATURE: &'static str = "GameClosed(uint8)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 153u8, 8u8, 234u8, 172u8, 6u8, 69u8, 223u8, 157u8, 7u8, 4u8, 208u8, + 106u8, 220u8, 158u8, 7u8, 51u8, 124u8, 149u8, 29u8, 226u8, 240u8, 107u8, + 95u8, 40u8, 54u8, 21u8, 29u8, 72u8, 213u8, 228u8, 114u8, 47u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + bondDistributionMode: data.0, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + ::tokenize( + &self.bondDistributionMode, + ), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(),) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for GameClosed { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&GameClosed> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &GameClosed) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `Move(uint256,bytes32,address)` and selector `0x9b3245740ec3b155098a55be84957a4da13eaf7f14a8bc6f53126c0b9350f2be`. +```solidity +event Move(uint256 indexed parentIndex, Claim indexed claim, address indexed claimant); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct Move { + #[allow(missing_docs)] + pub parentIndex: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub claim: ::RustType, + #[allow(missing_docs)] + pub claimant: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for Move { + type DataTuple<'a> = (); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Uint<256>, + Claim, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "Move(uint256,bytes32,address)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 155u8, 50u8, 69u8, 116u8, 14u8, 195u8, 177u8, 85u8, 9u8, 138u8, 85u8, + 190u8, 132u8, 149u8, 122u8, 77u8, 161u8, 62u8, 175u8, 127u8, 20u8, 168u8, + 188u8, 111u8, 83u8, 18u8, 108u8, 11u8, 147u8, 80u8, 242u8, 190u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + parentIndex: topics.1, + claim: topics.2, + claimant: topics.3, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + () + } + #[inline] + fn topics(&self) -> ::RustType { + ( + Self::SIGNATURE_HASH.into(), + self.parentIndex.clone(), + self.claim.clone(), + self.claimant.clone(), + ) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = as alloy_sol_types::EventTopic>::encode_topic(&self.parentIndex); + out[2usize] = ::encode_topic( + &self.claim, + ); + out[3usize] = ::encode_topic( + &self.claimant, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for Move { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&Move> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &Move) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `Resolved(uint8)` and selector `0x5e186f09b9c93491f14e277eea7faa5de6a2d4bda75a79af7a3684fbfb42da60`. +```solidity +event Resolved(GameStatus indexed status); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct Resolved { + #[allow(missing_docs)] + pub status: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for Resolved { + type DataTuple<'a> = (); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>, GameStatus); + const SIGNATURE: &'static str = "Resolved(uint8)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 94u8, 24u8, 111u8, 9u8, 185u8, 201u8, 52u8, 145u8, 241u8, 78u8, 39u8, + 126u8, 234u8, 127u8, 170u8, 93u8, 230u8, 162u8, 212u8, 189u8, 167u8, + 90u8, 121u8, 175u8, 122u8, 54u8, 132u8, 251u8, 251u8, 66u8, 218u8, 96u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { status: topics.1 } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + () + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.status.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.status, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for Resolved { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&Resolved> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &Resolved) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + /**Constructor`. +```solidity +constructor(GameConstructorParams _params); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct constructorCall { + #[allow(missing_docs)] + pub _params: ::RustType, + } + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (GameConstructorParams,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: constructorCall) -> Self { + (value._params,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for constructorCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _params: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolConstructor for constructorCall { + type Parameters<'a> = (GameConstructorParams,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._params, + ), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `absolutePrestate()` and selector `0x8d450a95`. +```solidity +function absolutePrestate() external pure returns (Claim absolutePrestate_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct absolutePrestateCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`absolutePrestate()`](absolutePrestateCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct absolutePrestateReturn { + #[allow(missing_docs)] + pub absolutePrestate_: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: absolutePrestateCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for absolutePrestateCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Claim,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: absolutePrestateReturn) -> Self { + (value.absolutePrestate_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for absolutePrestateReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { absolutePrestate_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for absolutePrestateCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (Claim,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "absolutePrestate()"; + const SELECTOR: [u8; 4] = [141u8, 69u8, 10u8, 149u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: absolutePrestateReturn = r.into(); + r.absolutePrestate_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: absolutePrestateReturn = r.into(); + r.absolutePrestate_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `addLocalData(uint256,uint256,uint256)` and selector `0xf8f43ff6`. +```solidity +function addLocalData(uint256 _ident, uint256 _execLeafIdx, uint256 _partOffset) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct addLocalDataCall { + #[allow(missing_docs)] + pub _ident: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _execLeafIdx: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _partOffset: alloy::sol_types::private::primitives::aliases::U256, + } + ///Container type for the return parameters of the [`addLocalData(uint256,uint256,uint256)`](addLocalDataCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct addLocalDataReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: addLocalDataCall) -> Self { + (value._ident, value._execLeafIdx, value._partOffset) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for addLocalDataCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _ident: tuple.0, + _execLeafIdx: tuple.1, + _partOffset: tuple.2, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: addLocalDataReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for addLocalDataReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl addLocalDataReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for addLocalDataCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = addLocalDataReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "addLocalData(uint256,uint256,uint256)"; + const SELECTOR: [u8; 4] = [248u8, 244u8, 63u8, 246u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._ident), + as alloy_sol_types::SolType>::tokenize(&self._execLeafIdx), + as alloy_sol_types::SolType>::tokenize(&self._partOffset), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + addLocalDataReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `anchorStateRegistry()` and selector `0x5c0cba33`. +```solidity +function anchorStateRegistry() external pure returns (address registry_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct anchorStateRegistryCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`anchorStateRegistry()`](anchorStateRegistryCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct anchorStateRegistryReturn { + #[allow(missing_docs)] + pub registry_: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: anchorStateRegistryCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for anchorStateRegistryCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: anchorStateRegistryReturn) -> Self { + (value.registry_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for anchorStateRegistryReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { registry_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for anchorStateRegistryCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "anchorStateRegistry()"; + const SELECTOR: [u8; 4] = [92u8, 12u8, 186u8, 51u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: anchorStateRegistryReturn = r.into(); + r.registry_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: anchorStateRegistryReturn = r.into(); + r.registry_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `attack(bytes32,uint256,bytes32)` and selector `0x472777c6`. +```solidity +function attack(Claim _disputed, uint256 _parentIndex, Claim _claim) external payable; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct attackCall { + #[allow(missing_docs)] + pub _disputed: ::RustType, + #[allow(missing_docs)] + pub _parentIndex: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _claim: ::RustType, + } + ///Container type for the return parameters of the [`attack(bytes32,uint256,bytes32)`](attackCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct attackReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + Claim, + alloy::sol_types::sol_data::Uint<256>, + Claim, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + alloy::sol_types::private::primitives::aliases::U256, + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: attackCall) -> Self { + (value._disputed, value._parentIndex, value._claim) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for attackCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _disputed: tuple.0, + _parentIndex: tuple.1, + _claim: tuple.2, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: attackReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for attackReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl attackReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for attackCall { + type Parameters<'a> = (Claim, alloy::sol_types::sol_data::Uint<256>, Claim); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = attackReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "attack(bytes32,uint256,bytes32)"; + const SELECTOR: [u8; 4] = [71u8, 39u8, 119u8, 198u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize(&self._disputed), + as alloy_sol_types::SolType>::tokenize(&self._parentIndex), + ::tokenize(&self._claim), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + attackReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `bondDistributionMode()` and selector `0x378dd48c`. +```solidity +function bondDistributionMode() external view returns (BondDistributionMode); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct bondDistributionModeCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`bondDistributionMode()`](bondDistributionModeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct bondDistributionModeReturn { + #[allow(missing_docs)] + pub _0: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: bondDistributionModeCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for bondDistributionModeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (BondDistributionMode,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: bondDistributionModeReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for bondDistributionModeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for bondDistributionModeCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (BondDistributionMode,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "bondDistributionMode()"; + const SELECTOR: [u8; 4] = [55u8, 141u8, 212u8, 140u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: bondDistributionModeReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: bondDistributionModeReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `challengeRootL2Block((bytes32,bytes32,bytes32,bytes32),bytes)` and selector `0x01935130`. +```solidity +function challengeRootL2Block(Types.OutputRootProof memory _outputRootProof, bytes memory _headerRLP) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct challengeRootL2BlockCall { + #[allow(missing_docs)] + pub _outputRootProof: ::RustType, + #[allow(missing_docs)] + pub _headerRLP: alloy::sol_types::private::Bytes, + } + ///Container type for the return parameters of the [`challengeRootL2Block((bytes32,bytes32,bytes32,bytes32),bytes)`](challengeRootL2BlockCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct challengeRootL2BlockReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + Types::OutputRootProof, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + alloy::sol_types::private::Bytes, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: challengeRootL2BlockCall) -> Self { + (value._outputRootProof, value._headerRLP) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for challengeRootL2BlockCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _outputRootProof: tuple.0, + _headerRLP: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: challengeRootL2BlockReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for challengeRootL2BlockReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl challengeRootL2BlockReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken< + '_, + > { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for challengeRootL2BlockCall { + type Parameters<'a> = ( + Types::OutputRootProof, + alloy::sol_types::sol_data::Bytes, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = challengeRootL2BlockReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "challengeRootL2Block((bytes32,bytes32,bytes32,bytes32),bytes)"; + const SELECTOR: [u8; 4] = [1u8, 147u8, 81u8, 48u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._outputRootProof, + ), + ::tokenize( + &self._headerRLP, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + challengeRootL2BlockReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `claimCredit(address)` and selector `0x60e27464`. +```solidity +function claimCredit(address _recipient) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct claimCreditCall { + #[allow(missing_docs)] + pub _recipient: alloy::sol_types::private::Address, + } + ///Container type for the return parameters of the [`claimCredit(address)`](claimCreditCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct claimCreditReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: claimCreditCall) -> Self { + (value._recipient,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for claimCreditCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _recipient: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: claimCreditReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for claimCreditReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl claimCreditReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for claimCreditCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = claimCreditReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "claimCredit(address)"; + const SELECTOR: [u8; 4] = [96u8, 226u8, 116u8, 100u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._recipient, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + claimCreditReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `claimData(uint256)` and selector `0xc6f0308c`. +```solidity +function claimData(uint256) external view returns (uint32 parentIndex, address counteredBy, address claimant, uint128 bond, Claim claim, Position position, Clock clock); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct claimDataCall(pub alloy::sol_types::private::primitives::aliases::U256); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`claimData(uint256)`](claimDataCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct claimDataReturn { + #[allow(missing_docs)] + pub parentIndex: u32, + #[allow(missing_docs)] + pub counteredBy: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub claimant: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub bond: u128, + #[allow(missing_docs)] + pub claim: ::RustType, + #[allow(missing_docs)] + pub position: ::RustType, + #[allow(missing_docs)] + pub clock: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: claimDataCall) -> Self { + (value.0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for claimDataCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self(tuple.0) + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Uint<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<128>, + Claim, + Position, + Clock, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + u32, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + u128, + ::RustType, + ::RustType, + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: claimDataReturn) -> Self { + ( + value.parentIndex, + value.counteredBy, + value.claimant, + value.bond, + value.claim, + value.position, + value.clock, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for claimDataReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + parentIndex: tuple.0, + counteredBy: tuple.1, + claimant: tuple.2, + bond: tuple.3, + claim: tuple.4, + position: tuple.5, + clock: tuple.6, + } + } + } + } + impl claimDataReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.parentIndex), + ::tokenize( + &self.counteredBy, + ), + ::tokenize( + &self.claimant, + ), + as alloy_sol_types::SolType>::tokenize(&self.bond), + ::tokenize(&self.claim), + ::tokenize(&self.position), + ::tokenize(&self.clock), + ) + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for claimDataCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = claimDataReturn; + type ReturnTuple<'a> = ( + alloy::sol_types::sol_data::Uint<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<128>, + Claim, + Position, + Clock, + ); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "claimData(uint256)"; + const SELECTOR: [u8; 4] = [198u8, 240u8, 48u8, 140u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.0), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + claimDataReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `claimDataLen()` and selector `0x8980e0cc`. +```solidity +function claimDataLen() external view returns (uint256 len_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct claimDataLenCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`claimDataLen()`](claimDataLenCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct claimDataLenReturn { + #[allow(missing_docs)] + pub len_: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: claimDataLenCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for claimDataLenCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: claimDataLenReturn) -> Self { + (value.len_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for claimDataLenReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { len_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for claimDataLenCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "claimDataLen()"; + const SELECTOR: [u8; 4] = [137u8, 128u8, 224u8, 204u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: claimDataLenReturn = r.into(); + r.len_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: claimDataLenReturn = r.into(); + r.len_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `claims(bytes32)` and selector `0xeff0f592`. +```solidity +function claims(Hash) external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct claimsCall(pub ::RustType); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`claims(bytes32)`](claimsCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct claimsReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Hash,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: claimsCall) -> Self { + (value.0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for claimsCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self(tuple.0) + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: claimsReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for claimsReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for claimsCall { + type Parameters<'a> = (Hash,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "claims(bytes32)"; + const SELECTOR: [u8; 4] = [239u8, 240u8, 245u8, 146u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + (::tokenize(&self.0),) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: claimsReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: claimsReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `clockExtension()` and selector `0x6b6716c0`. +```solidity +function clockExtension() external view returns (Duration clockExtension_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct clockExtensionCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`clockExtension()`](clockExtensionCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct clockExtensionReturn { + #[allow(missing_docs)] + pub clockExtension_: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: clockExtensionCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for clockExtensionCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Duration,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: clockExtensionReturn) -> Self { + (value.clockExtension_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for clockExtensionReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { clockExtension_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for clockExtensionCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (Duration,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "clockExtension()"; + const SELECTOR: [u8; 4] = [107u8, 103u8, 22u8, 192u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: clockExtensionReturn = r.into(); + r.clockExtension_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: clockExtensionReturn = r.into(); + r.clockExtension_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `closeGame()` and selector `0x786b844b`. +```solidity +function closeGame() external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct closeGameCall; + ///Container type for the return parameters of the [`closeGame()`](closeGameCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct closeGameReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: closeGameCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for closeGameCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: closeGameReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for closeGameReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl closeGameReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for closeGameCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = closeGameReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "closeGame()"; + const SELECTOR: [u8; 4] = [120u8, 107u8, 132u8, 75u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + closeGameReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `createdAt()` and selector `0xcf09e0d0`. +```solidity +function createdAt() external view returns (Timestamp); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct createdAtCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`createdAt()`](createdAtCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct createdAtReturn { + #[allow(missing_docs)] + pub _0: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: createdAtCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for createdAtCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Timestamp,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: createdAtReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for createdAtReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for createdAtCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (Timestamp,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "createdAt()"; + const SELECTOR: [u8; 4] = [207u8, 9u8, 224u8, 208u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: createdAtReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: createdAtReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `credit(address)` and selector `0xd5d44d80`. +```solidity +function credit(address _recipient) external view returns (uint256 credit_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct creditCall { + #[allow(missing_docs)] + pub _recipient: alloy::sol_types::private::Address, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`credit(address)`](creditCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct creditReturn { + #[allow(missing_docs)] + pub credit_: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: creditCall) -> Self { + (value._recipient,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for creditCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _recipient: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: creditReturn) -> Self { + (value.credit_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for creditReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { credit_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for creditCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "credit(address)"; + const SELECTOR: [u8; 4] = [213u8, 212u8, 77u8, 128u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._recipient, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: creditReturn = r.into(); + r.credit_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: creditReturn = r.into(); + r.credit_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `defend(bytes32,uint256,bytes32)` and selector `0x7b0f0adc`. +```solidity +function defend(Claim _disputed, uint256 _parentIndex, Claim _claim) external payable; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct defendCall { + #[allow(missing_docs)] + pub _disputed: ::RustType, + #[allow(missing_docs)] + pub _parentIndex: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _claim: ::RustType, + } + ///Container type for the return parameters of the [`defend(bytes32,uint256,bytes32)`](defendCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct defendReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + Claim, + alloy::sol_types::sol_data::Uint<256>, + Claim, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + alloy::sol_types::private::primitives::aliases::U256, + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: defendCall) -> Self { + (value._disputed, value._parentIndex, value._claim) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for defendCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _disputed: tuple.0, + _parentIndex: tuple.1, + _claim: tuple.2, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: defendReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for defendReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl defendReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for defendCall { + type Parameters<'a> = (Claim, alloy::sol_types::sol_data::Uint<256>, Claim); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = defendReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "defend(bytes32,uint256,bytes32)"; + const SELECTOR: [u8; 4] = [123u8, 15u8, 10u8, 220u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize(&self._disputed), + as alloy_sol_types::SolType>::tokenize(&self._parentIndex), + ::tokenize(&self._claim), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + defendReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `extraData()` and selector `0x609d3334`. +```solidity +function extraData() external pure returns (bytes memory extraData_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct extraDataCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`extraData()`](extraDataCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct extraDataReturn { + #[allow(missing_docs)] + pub extraData_: alloy::sol_types::private::Bytes, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: extraDataCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for extraDataCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bytes,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Bytes,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: extraDataReturn) -> Self { + (value.extraData_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for extraDataReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { extraData_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for extraDataCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Bytes; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bytes,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "extraData()"; + const SELECTOR: [u8; 4] = [96u8, 157u8, 51u8, 52u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: extraDataReturn = r.into(); + r.extraData_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: extraDataReturn = r.into(); + r.extraData_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `gameCreator()` and selector `0x37b1b229`. +```solidity +function gameCreator() external pure returns (address creator_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct gameCreatorCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`gameCreator()`](gameCreatorCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct gameCreatorReturn { + #[allow(missing_docs)] + pub creator_: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: gameCreatorCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for gameCreatorCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: gameCreatorReturn) -> Self { + (value.creator_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for gameCreatorReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { creator_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for gameCreatorCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "gameCreator()"; + const SELECTOR: [u8; 4] = [55u8, 177u8, 178u8, 41u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: gameCreatorReturn = r.into(); + r.creator_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: gameCreatorReturn = r.into(); + r.creator_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `gameData()` and selector `0xfa24f743`. +```solidity +function gameData() external pure returns (GameType gameType_, Claim rootClaim_, bytes memory extraData_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct gameDataCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`gameData()`](gameDataCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct gameDataReturn { + #[allow(missing_docs)] + pub gameType_: ::RustType, + #[allow(missing_docs)] + pub rootClaim_: ::RustType, + #[allow(missing_docs)] + pub extraData_: alloy::sol_types::private::Bytes, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: gameDataCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for gameDataCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + GameType, + Claim, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ::RustType, + alloy::sol_types::private::Bytes, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: gameDataReturn) -> Self { + (value.gameType_, value.rootClaim_, value.extraData_) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for gameDataReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + gameType_: tuple.0, + rootClaim_: tuple.1, + extraData_: tuple.2, + } + } + } + } + impl gameDataReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + ( + ::tokenize(&self.gameType_), + ::tokenize(&self.rootClaim_), + ::tokenize( + &self.extraData_, + ), + ) + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for gameDataCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = gameDataReturn; + type ReturnTuple<'a> = (GameType, Claim, alloy::sol_types::sol_data::Bytes); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "gameData()"; + const SELECTOR: [u8; 4] = [250u8, 36u8, 247u8, 67u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + gameDataReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `gameType()` and selector `0xbbdc02db`. +```solidity +function gameType() external pure returns (GameType gameType_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct gameTypeCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`gameType()`](gameTypeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct gameTypeReturn { + #[allow(missing_docs)] + pub gameType_: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: gameTypeCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for gameTypeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (GameType,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: gameTypeReturn) -> Self { + (value.gameType_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for gameTypeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { gameType_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for gameTypeCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (GameType,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "gameType()"; + const SELECTOR: [u8; 4] = [187u8, 220u8, 2u8, 219u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: gameTypeReturn = r.into(); + r.gameType_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: gameTypeReturn = r.into(); + r.gameType_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `getChallengerDuration(uint256)` and selector `0xbd8da956`. +```solidity +function getChallengerDuration(uint256 _claimIndex) external view returns (Duration duration_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getChallengerDurationCall { + #[allow(missing_docs)] + pub _claimIndex: alloy::sol_types::private::primitives::aliases::U256, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`getChallengerDuration(uint256)`](getChallengerDurationCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getChallengerDurationReturn { + #[allow(missing_docs)] + pub duration_: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: getChallengerDurationCall) -> Self { + (value._claimIndex,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for getChallengerDurationCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _claimIndex: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Duration,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: getChallengerDurationReturn) -> Self { + (value.duration_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for getChallengerDurationReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { duration_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for getChallengerDurationCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (Duration,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "getChallengerDuration(uint256)"; + const SELECTOR: [u8; 4] = [189u8, 141u8, 169u8, 86u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._claimIndex), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: getChallengerDurationReturn = r.into(); + r.duration_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: getChallengerDurationReturn = r.into(); + r.duration_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `getNumToResolve(uint256)` and selector `0x5a5fa2d9`. +```solidity +function getNumToResolve(uint256 _claimIndex) external view returns (uint256 numRemainingChildren_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getNumToResolveCall { + #[allow(missing_docs)] + pub _claimIndex: alloy::sol_types::private::primitives::aliases::U256, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`getNumToResolve(uint256)`](getNumToResolveCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getNumToResolveReturn { + #[allow(missing_docs)] + pub numRemainingChildren_: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: getNumToResolveCall) -> Self { + (value._claimIndex,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for getNumToResolveCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _claimIndex: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: getNumToResolveReturn) -> Self { + (value.numRemainingChildren_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for getNumToResolveReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + numRemainingChildren_: tuple.0, + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for getNumToResolveCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "getNumToResolve(uint256)"; + const SELECTOR: [u8; 4] = [90u8, 95u8, 162u8, 217u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._claimIndex), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: getNumToResolveReturn = r.into(); + r.numRemainingChildren_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: getNumToResolveReturn = r.into(); + r.numRemainingChildren_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `getRequiredBond(uint128)` and selector `0xc395e1ca`. +```solidity +function getRequiredBond(Position _position) external view returns (uint256 requiredBond_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getRequiredBondCall { + #[allow(missing_docs)] + pub _position: ::RustType, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`getRequiredBond(uint128)`](getRequiredBondCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getRequiredBondReturn { + #[allow(missing_docs)] + pub requiredBond_: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Position,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: getRequiredBondCall) -> Self { + (value._position,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for getRequiredBondCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _position: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: getRequiredBondReturn) -> Self { + (value.requiredBond_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for getRequiredBondReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { requiredBond_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for getRequiredBondCall { + type Parameters<'a> = (Position,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "getRequiredBond(uint128)"; + const SELECTOR: [u8; 4] = [195u8, 149u8, 225u8, 202u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + (::tokenize(&self._position),) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: getRequiredBondReturn = r.into(); + r.requiredBond_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: getRequiredBondReturn = r.into(); + r.requiredBond_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `hasUnlockedCredit(address)` and selector `0x222abf45`. +```solidity +function hasUnlockedCredit(address) external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct hasUnlockedCreditCall(pub alloy::sol_types::private::Address); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`hasUnlockedCredit(address)`](hasUnlockedCreditCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct hasUnlockedCreditReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: hasUnlockedCreditCall) -> Self { + (value.0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for hasUnlockedCreditCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self(tuple.0) + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: hasUnlockedCreditReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for hasUnlockedCreditReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for hasUnlockedCreditCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "hasUnlockedCredit(address)"; + const SELECTOR: [u8; 4] = [34u8, 42u8, 191u8, 69u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.0, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: hasUnlockedCreditReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: hasUnlockedCreditReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `initialize()` and selector `0x8129fc1c`. +```solidity +function initialize() external payable; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct initializeCall; + ///Container type for the return parameters of the [`initialize()`](initializeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct initializeReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: initializeCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for initializeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: initializeReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for initializeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl initializeReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for initializeCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = initializeReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "initialize()"; + const SELECTOR: [u8; 4] = [129u8, 41u8, 252u8, 28u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + initializeReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `l1Head()` and selector `0x6361506d`. +```solidity +function l1Head() external pure returns (Hash l1Head_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct l1HeadCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`l1Head()`](l1HeadCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct l1HeadReturn { + #[allow(missing_docs)] + pub l1Head_: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: l1HeadCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for l1HeadCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Hash,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: l1HeadReturn) -> Self { + (value.l1Head_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for l1HeadReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { l1Head_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for l1HeadCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (Hash,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "l1Head()"; + const SELECTOR: [u8; 4] = [99u8, 97u8, 80u8, 109u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: l1HeadReturn = r.into(); + r.l1Head_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: l1HeadReturn = r.into(); + r.l1Head_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `l2BlockNumber()` and selector `0x8b85902b`. +```solidity +function l2BlockNumber() external pure returns (uint256 l2BlockNumber_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct l2BlockNumberCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`l2BlockNumber()`](l2BlockNumberCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct l2BlockNumberReturn { + #[allow(missing_docs)] + pub l2BlockNumber_: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: l2BlockNumberCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for l2BlockNumberCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: l2BlockNumberReturn) -> Self { + (value.l2BlockNumber_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for l2BlockNumberReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { l2BlockNumber_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for l2BlockNumberCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "l2BlockNumber()"; + const SELECTOR: [u8; 4] = [139u8, 133u8, 144u8, 43u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: l2BlockNumberReturn = r.into(); + r.l2BlockNumber_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: l2BlockNumberReturn = r.into(); + r.l2BlockNumber_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `l2BlockNumberChallenged()` and selector `0x3e3ac912`. +```solidity +function l2BlockNumberChallenged() external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct l2BlockNumberChallengedCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`l2BlockNumberChallenged()`](l2BlockNumberChallengedCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct l2BlockNumberChallengedReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: l2BlockNumberChallengedCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for l2BlockNumberChallengedCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: l2BlockNumberChallengedReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for l2BlockNumberChallengedReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for l2BlockNumberChallengedCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "l2BlockNumberChallenged()"; + const SELECTOR: [u8; 4] = [62u8, 58u8, 201u8, 18u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: l2BlockNumberChallengedReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: l2BlockNumberChallengedReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `l2BlockNumberChallenger()` and selector `0x30dbe570`. +```solidity +function l2BlockNumberChallenger() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct l2BlockNumberChallengerCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`l2BlockNumberChallenger()`](l2BlockNumberChallengerCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct l2BlockNumberChallengerReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: l2BlockNumberChallengerCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for l2BlockNumberChallengerCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: l2BlockNumberChallengerReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for l2BlockNumberChallengerReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for l2BlockNumberChallengerCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "l2BlockNumberChallenger()"; + const SELECTOR: [u8; 4] = [48u8, 219u8, 229u8, 112u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: l2BlockNumberChallengerReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: l2BlockNumberChallengerReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `l2ChainId()` and selector `0xd6ae3cd5`. +```solidity +function l2ChainId() external pure returns (uint256 l2ChainId_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct l2ChainIdCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`l2ChainId()`](l2ChainIdCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct l2ChainIdReturn { + #[allow(missing_docs)] + pub l2ChainId_: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: l2ChainIdCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for l2ChainIdCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: l2ChainIdReturn) -> Self { + (value.l2ChainId_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for l2ChainIdReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { l2ChainId_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for l2ChainIdCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "l2ChainId()"; + const SELECTOR: [u8; 4] = [214u8, 174u8, 60u8, 213u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: l2ChainIdReturn = r.into(); + r.l2ChainId_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: l2ChainIdReturn = r.into(); + r.l2ChainId_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `l2SequenceNumber()` and selector `0x99735e32`. +```solidity +function l2SequenceNumber() external pure returns (uint256 l2SequenceNumber_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct l2SequenceNumberCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`l2SequenceNumber()`](l2SequenceNumberCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct l2SequenceNumberReturn { + #[allow(missing_docs)] + pub l2SequenceNumber_: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: l2SequenceNumberCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for l2SequenceNumberCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: l2SequenceNumberReturn) -> Self { + (value.l2SequenceNumber_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for l2SequenceNumberReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { l2SequenceNumber_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for l2SequenceNumberCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "l2SequenceNumber()"; + const SELECTOR: [u8; 4] = [153u8, 115u8, 94u8, 50u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: l2SequenceNumberReturn = r.into(); + r.l2SequenceNumber_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: l2SequenceNumberReturn = r.into(); + r.l2SequenceNumber_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `maxClockDuration()` and selector `0xdabd396d`. +```solidity +function maxClockDuration() external view returns (Duration maxClockDuration_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct maxClockDurationCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`maxClockDuration()`](maxClockDurationCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct maxClockDurationReturn { + #[allow(missing_docs)] + pub maxClockDuration_: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: maxClockDurationCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for maxClockDurationCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Duration,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: maxClockDurationReturn) -> Self { + (value.maxClockDuration_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for maxClockDurationReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { maxClockDuration_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for maxClockDurationCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (Duration,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "maxClockDuration()"; + const SELECTOR: [u8; 4] = [218u8, 189u8, 57u8, 109u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: maxClockDurationReturn = r.into(); + r.maxClockDuration_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: maxClockDurationReturn = r.into(); + r.maxClockDuration_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `maxGameDepth()` and selector `0xfa315aa9`. +```solidity +function maxGameDepth() external view returns (uint256 maxGameDepth_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct maxGameDepthCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`maxGameDepth()`](maxGameDepthCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct maxGameDepthReturn { + #[allow(missing_docs)] + pub maxGameDepth_: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: maxGameDepthCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for maxGameDepthCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: maxGameDepthReturn) -> Self { + (value.maxGameDepth_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for maxGameDepthReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { maxGameDepth_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for maxGameDepthCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "maxGameDepth()"; + const SELECTOR: [u8; 4] = [250u8, 49u8, 90u8, 169u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: maxGameDepthReturn = r.into(); + r.maxGameDepth_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: maxGameDepthReturn = r.into(); + r.maxGameDepth_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `move(bytes32,uint256,bytes32,bool)` and selector `0x6f034409`. +```solidity +function r#move(Claim _disputed, uint256 _challengeIndex, Claim _claim, bool _isAttack) external payable; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct moveCall { + #[allow(missing_docs)] + pub _disputed: ::RustType, + #[allow(missing_docs)] + pub _challengeIndex: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _claim: ::RustType, + #[allow(missing_docs)] + pub _isAttack: bool, + } + ///Container type for the return parameters of the [`move(bytes32,uint256,bytes32,bool)`](moveCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct moveReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + Claim, + alloy::sol_types::sol_data::Uint<256>, + Claim, + alloy::sol_types::sol_data::Bool, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + alloy::sol_types::private::primitives::aliases::U256, + ::RustType, + bool, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: moveCall) -> Self { + ( + value._disputed, + value._challengeIndex, + value._claim, + value._isAttack, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for moveCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _disputed: tuple.0, + _challengeIndex: tuple.1, + _claim: tuple.2, + _isAttack: tuple.3, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: moveReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for moveReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl moveReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for moveCall { + type Parameters<'a> = ( + Claim, + alloy::sol_types::sol_data::Uint<256>, + Claim, + alloy::sol_types::sol_data::Bool, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = moveReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "move(bytes32,uint256,bytes32,bool)"; + const SELECTOR: [u8; 4] = [111u8, 3u8, 68u8, 9u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize(&self._disputed), + as alloy_sol_types::SolType>::tokenize(&self._challengeIndex), + ::tokenize(&self._claim), + ::tokenize( + &self._isAttack, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + moveReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `normalModeCredit(address)` and selector `0x529d6a8c`. +```solidity +function normalModeCredit(address) external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct normalModeCreditCall(pub alloy::sol_types::private::Address); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`normalModeCredit(address)`](normalModeCreditCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct normalModeCreditReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: normalModeCreditCall) -> Self { + (value.0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for normalModeCreditCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self(tuple.0) + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: normalModeCreditReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for normalModeCreditReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for normalModeCreditCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "normalModeCredit(address)"; + const SELECTOR: [u8; 4] = [82u8, 157u8, 106u8, 140u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.0, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: normalModeCreditReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: normalModeCreditReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `refundModeCredit(address)` and selector `0xc0d8bb74`. +```solidity +function refundModeCredit(address) external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct refundModeCreditCall(pub alloy::sol_types::private::Address); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`refundModeCredit(address)`](refundModeCreditCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct refundModeCreditReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: refundModeCreditCall) -> Self { + (value.0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for refundModeCreditCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self(tuple.0) + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: refundModeCreditReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for refundModeCreditReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for refundModeCreditCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "refundModeCredit(address)"; + const SELECTOR: [u8; 4] = [192u8, 216u8, 187u8, 116u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.0, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: refundModeCreditReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: refundModeCreditReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `resolutionCheckpoints(uint256)` and selector `0xa445ece6`. +```solidity +function resolutionCheckpoints(uint256) external view returns (bool initialCheckpointComplete, uint32 subgameIndex, Position leftmostPosition, address counteredBy); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct resolutionCheckpointsCall( + pub alloy::sol_types::private::primitives::aliases::U256, + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`resolutionCheckpoints(uint256)`](resolutionCheckpointsCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct resolutionCheckpointsReturn { + #[allow(missing_docs)] + pub initialCheckpointComplete: bool, + #[allow(missing_docs)] + pub subgameIndex: u32, + #[allow(missing_docs)] + pub leftmostPosition: ::RustType, + #[allow(missing_docs)] + pub counteredBy: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: resolutionCheckpointsCall) -> Self { + (value.0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for resolutionCheckpointsCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self(tuple.0) + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Bool, + alloy::sol_types::sol_data::Uint<32>, + Position, + alloy::sol_types::sol_data::Address, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + bool, + u32, + ::RustType, + alloy::sol_types::private::Address, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: resolutionCheckpointsReturn) -> Self { + ( + value.initialCheckpointComplete, + value.subgameIndex, + value.leftmostPosition, + value.counteredBy, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for resolutionCheckpointsReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + initialCheckpointComplete: tuple.0, + subgameIndex: tuple.1, + leftmostPosition: tuple.2, + counteredBy: tuple.3, + } + } + } + } + impl resolutionCheckpointsReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken< + '_, + > { + ( + ::tokenize( + &self.initialCheckpointComplete, + ), + as alloy_sol_types::SolType>::tokenize(&self.subgameIndex), + ::tokenize( + &self.leftmostPosition, + ), + ::tokenize( + &self.counteredBy, + ), + ) + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for resolutionCheckpointsCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = resolutionCheckpointsReturn; + type ReturnTuple<'a> = ( + alloy::sol_types::sol_data::Bool, + alloy::sol_types::sol_data::Uint<32>, + Position, + alloy::sol_types::sol_data::Address, + ); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "resolutionCheckpoints(uint256)"; + const SELECTOR: [u8; 4] = [164u8, 69u8, 236u8, 230u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.0), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + resolutionCheckpointsReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `resolve()` and selector `0x2810e1d6`. +```solidity +function resolve() external returns (GameStatus status_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct resolveCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`resolve()`](resolveCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct resolveReturn { + #[allow(missing_docs)] + pub status_: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: resolveCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for resolveCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (GameStatus,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: resolveReturn) -> Self { + (value.status_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for resolveReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { status_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for resolveCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (GameStatus,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "resolve()"; + const SELECTOR: [u8; 4] = [40u8, 16u8, 225u8, 214u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: resolveReturn = r.into(); + r.status_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: resolveReturn = r.into(); + r.status_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `resolveClaim(uint256,uint256)` and selector `0x03c2924d`. +```solidity +function resolveClaim(uint256 _claimIndex, uint256 _numToResolve) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct resolveClaimCall { + #[allow(missing_docs)] + pub _claimIndex: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _numToResolve: alloy::sol_types::private::primitives::aliases::U256, + } + ///Container type for the return parameters of the [`resolveClaim(uint256,uint256)`](resolveClaimCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct resolveClaimReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: resolveClaimCall) -> Self { + (value._claimIndex, value._numToResolve) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for resolveClaimCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _claimIndex: tuple.0, + _numToResolve: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: resolveClaimReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for resolveClaimReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl resolveClaimReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for resolveClaimCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = resolveClaimReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "resolveClaim(uint256,uint256)"; + const SELECTOR: [u8; 4] = [3u8, 194u8, 146u8, 77u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._claimIndex), + as alloy_sol_types::SolType>::tokenize(&self._numToResolve), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + resolveClaimReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `resolvedAt()` and selector `0x19effeb4`. +```solidity +function resolvedAt() external view returns (Timestamp); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct resolvedAtCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`resolvedAt()`](resolvedAtCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct resolvedAtReturn { + #[allow(missing_docs)] + pub _0: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: resolvedAtCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for resolvedAtCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Timestamp,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: resolvedAtReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for resolvedAtReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for resolvedAtCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (Timestamp,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "resolvedAt()"; + const SELECTOR: [u8; 4] = [25u8, 239u8, 254u8, 180u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: resolvedAtReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: resolvedAtReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `resolvedSubgames(uint256)` and selector `0xfe2bbeb2`. +```solidity +function resolvedSubgames(uint256) external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct resolvedSubgamesCall( + pub alloy::sol_types::private::primitives::aliases::U256, + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`resolvedSubgames(uint256)`](resolvedSubgamesCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct resolvedSubgamesReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: resolvedSubgamesCall) -> Self { + (value.0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for resolvedSubgamesCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self(tuple.0) + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: resolvedSubgamesReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for resolvedSubgamesReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for resolvedSubgamesCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "resolvedSubgames(uint256)"; + const SELECTOR: [u8; 4] = [254u8, 43u8, 190u8, 178u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.0), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: resolvedSubgamesReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: resolvedSubgamesReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `rootClaim()` and selector `0xbcef3b55`. +```solidity +function rootClaim() external pure returns (Claim rootClaim_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct rootClaimCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`rootClaim()`](rootClaimCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct rootClaimReturn { + #[allow(missing_docs)] + pub rootClaim_: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: rootClaimCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for rootClaimCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Claim,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: rootClaimReturn) -> Self { + (value.rootClaim_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for rootClaimReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { rootClaim_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for rootClaimCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (Claim,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "rootClaim()"; + const SELECTOR: [u8; 4] = [188u8, 239u8, 59u8, 85u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: rootClaimReturn = r.into(); + r.rootClaim_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: rootClaimReturn = r.into(); + r.rootClaim_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `splitDepth()` and selector `0xec5e6308`. +```solidity +function splitDepth() external view returns (uint256 splitDepth_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct splitDepthCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`splitDepth()`](splitDepthCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct splitDepthReturn { + #[allow(missing_docs)] + pub splitDepth_: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: splitDepthCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for splitDepthCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: splitDepthReturn) -> Self { + (value.splitDepth_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for splitDepthReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { splitDepth_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for splitDepthCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "splitDepth()"; + const SELECTOR: [u8; 4] = [236u8, 94u8, 99u8, 8u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: splitDepthReturn = r.into(); + r.splitDepth_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: splitDepthReturn = r.into(); + r.splitDepth_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `startingBlockNumber()` and selector `0x70872aa5`. +```solidity +function startingBlockNumber() external view returns (uint256 startingBlockNumber_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct startingBlockNumberCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`startingBlockNumber()`](startingBlockNumberCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct startingBlockNumberReturn { + #[allow(missing_docs)] + pub startingBlockNumber_: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: startingBlockNumberCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for startingBlockNumberCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: startingBlockNumberReturn) -> Self { + (value.startingBlockNumber_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for startingBlockNumberReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + startingBlockNumber_: tuple.0, + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for startingBlockNumberCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "startingBlockNumber()"; + const SELECTOR: [u8; 4] = [112u8, 135u8, 42u8, 165u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: startingBlockNumberReturn = r.into(); + r.startingBlockNumber_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: startingBlockNumberReturn = r.into(); + r.startingBlockNumber_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `startingOutputRoot()` and selector `0x57da950e`. +```solidity +function startingOutputRoot() external view returns (Hash root, uint256 l2SequenceNumber); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct startingOutputRootCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`startingOutputRoot()`](startingOutputRootCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct startingOutputRootReturn { + #[allow(missing_docs)] + pub root: ::RustType, + #[allow(missing_docs)] + pub l2SequenceNumber: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: startingOutputRootCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for startingOutputRootCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Hash, alloy::sol_types::sol_data::Uint<256>); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: startingOutputRootReturn) -> Self { + (value.root, value.l2SequenceNumber) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for startingOutputRootReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + root: tuple.0, + l2SequenceNumber: tuple.1, + } + } + } + } + impl startingOutputRootReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + ( + ::tokenize(&self.root), + as alloy_sol_types::SolType>::tokenize(&self.l2SequenceNumber), + ) + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for startingOutputRootCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = startingOutputRootReturn; + type ReturnTuple<'a> = (Hash, alloy::sol_types::sol_data::Uint<256>); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "startingOutputRoot()"; + const SELECTOR: [u8; 4] = [87u8, 218u8, 149u8, 14u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + startingOutputRootReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `startingRootHash()` and selector `0x25fc2ace`. +```solidity +function startingRootHash() external view returns (Hash startingRootHash_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct startingRootHashCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`startingRootHash()`](startingRootHashCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct startingRootHashReturn { + #[allow(missing_docs)] + pub startingRootHash_: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: startingRootHashCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for startingRootHashCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Hash,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: startingRootHashReturn) -> Self { + (value.startingRootHash_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for startingRootHashReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { startingRootHash_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for startingRootHashCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (Hash,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "startingRootHash()"; + const SELECTOR: [u8; 4] = [37u8, 252u8, 42u8, 206u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: startingRootHashReturn = r.into(); + r.startingRootHash_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: startingRootHashReturn = r.into(); + r.startingRootHash_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `status()` and selector `0x200d2ed2`. +```solidity +function status() external view returns (GameStatus); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct statusCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`status()`](statusCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct statusReturn { + #[allow(missing_docs)] + pub _0: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: statusCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for statusCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (GameStatus,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: statusReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for statusReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for statusCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (GameStatus,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "status()"; + const SELECTOR: [u8; 4] = [32u8, 13u8, 46u8, 210u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: statusReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: statusReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `step(uint256,bool,bytes,bytes)` and selector `0xd8cc1a3c`. +```solidity +function step(uint256 _claimIndex, bool _isAttack, bytes memory _stateData, bytes memory _proof) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct stepCall { + #[allow(missing_docs)] + pub _claimIndex: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _isAttack: bool, + #[allow(missing_docs)] + pub _stateData: alloy::sol_types::private::Bytes, + #[allow(missing_docs)] + pub _proof: alloy::sol_types::private::Bytes, + } + ///Container type for the return parameters of the [`step(uint256,bool,bytes,bytes)`](stepCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct stepReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Bool, + alloy::sol_types::sol_data::Bytes, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + bool, + alloy::sol_types::private::Bytes, + alloy::sol_types::private::Bytes, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: stepCall) -> Self { + (value._claimIndex, value._isAttack, value._stateData, value._proof) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for stepCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _claimIndex: tuple.0, + _isAttack: tuple.1, + _stateData: tuple.2, + _proof: tuple.3, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: stepReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for stepReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl stepReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for stepCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Bool, + alloy::sol_types::sol_data::Bytes, + alloy::sol_types::sol_data::Bytes, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = stepReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "step(uint256,bool,bytes,bytes)"; + const SELECTOR: [u8; 4] = [216u8, 204u8, 26u8, 60u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._claimIndex), + ::tokenize( + &self._isAttack, + ), + ::tokenize( + &self._stateData, + ), + ::tokenize( + &self._proof, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + stepReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `subgames(uint256,uint256)` and selector `0x2ad69aeb`. +```solidity +function subgames(uint256, uint256) external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct subgamesCall { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _1: alloy::sol_types::private::primitives::aliases::U256, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`subgames(uint256,uint256)`](subgamesCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct subgamesReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: subgamesCall) -> Self { + (value._0, value._1) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for subgamesCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0, _1: tuple.1 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: subgamesReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for subgamesReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for subgamesCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "subgames(uint256,uint256)"; + const SELECTOR: [u8; 4] = [42u8, 214u8, 154u8, 235u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._0), + as alloy_sol_types::SolType>::tokenize(&self._1), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: subgamesReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: subgamesReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `version()` and selector `0x54fd4d50`. +```solidity +function version() external pure returns (string memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`version()`](versionCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for versionCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::String; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "version()"; + const SELECTOR: [u8; 4] = [84u8, 253u8, 77u8, 80u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `vm()` and selector `0x3a768463`. +```solidity +function vm() external pure returns (address vm_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct vmCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`vm()`](vmCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct vmReturn { + #[allow(missing_docs)] + pub vm_: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: vmCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for vmCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: vmReturn) -> Self { + (value.vm_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for vmReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { vm_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for vmCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "vm()"; + const SELECTOR: [u8; 4] = [58u8, 118u8, 132u8, 99u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: vmReturn = r.into(); + r.vm_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: vmReturn = r.into(); + r.vm_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `wasRespectedGameTypeWhenCreated()` and selector `0x250e69bd`. +```solidity +function wasRespectedGameTypeWhenCreated() external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct wasRespectedGameTypeWhenCreatedCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`wasRespectedGameTypeWhenCreated()`](wasRespectedGameTypeWhenCreatedCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct wasRespectedGameTypeWhenCreatedReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: wasRespectedGameTypeWhenCreatedCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for wasRespectedGameTypeWhenCreatedCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: wasRespectedGameTypeWhenCreatedReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for wasRespectedGameTypeWhenCreatedReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for wasRespectedGameTypeWhenCreatedCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "wasRespectedGameTypeWhenCreated()"; + const SELECTOR: [u8; 4] = [37u8, 14u8, 105u8, 189u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: wasRespectedGameTypeWhenCreatedReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: wasRespectedGameTypeWhenCreatedReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `weth()` and selector `0x3fc8cef3`. +```solidity +function weth() external pure returns (address weth_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct wethCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`weth()`](wethCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct wethReturn { + #[allow(missing_docs)] + pub weth_: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: wethCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for wethCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: wethReturn) -> Self { + (value.weth_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for wethReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { weth_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for wethCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "weth()"; + const SELECTOR: [u8; 4] = [63u8, 200u8, 206u8, 243u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: wethReturn = r.into(); + r.weth_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: wethReturn = r.into(); + r.weth_ + }) + } + } + }; + ///Container for all the [`FaultDisputeGameV2`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum FaultDisputeGameV2Calls { + #[allow(missing_docs)] + absolutePrestate(absolutePrestateCall), + #[allow(missing_docs)] + addLocalData(addLocalDataCall), + #[allow(missing_docs)] + anchorStateRegistry(anchorStateRegistryCall), + #[allow(missing_docs)] + attack(attackCall), + #[allow(missing_docs)] + bondDistributionMode(bondDistributionModeCall), + #[allow(missing_docs)] + challengeRootL2Block(challengeRootL2BlockCall), + #[allow(missing_docs)] + claimCredit(claimCreditCall), + #[allow(missing_docs)] + claimData(claimDataCall), + #[allow(missing_docs)] + claimDataLen(claimDataLenCall), + #[allow(missing_docs)] + claims(claimsCall), + #[allow(missing_docs)] + clockExtension(clockExtensionCall), + #[allow(missing_docs)] + closeGame(closeGameCall), + #[allow(missing_docs)] + createdAt(createdAtCall), + #[allow(missing_docs)] + credit(creditCall), + #[allow(missing_docs)] + defend(defendCall), + #[allow(missing_docs)] + extraData(extraDataCall), + #[allow(missing_docs)] + gameCreator(gameCreatorCall), + #[allow(missing_docs)] + gameData(gameDataCall), + #[allow(missing_docs)] + gameType(gameTypeCall), + #[allow(missing_docs)] + getChallengerDuration(getChallengerDurationCall), + #[allow(missing_docs)] + getNumToResolve(getNumToResolveCall), + #[allow(missing_docs)] + getRequiredBond(getRequiredBondCall), + #[allow(missing_docs)] + hasUnlockedCredit(hasUnlockedCreditCall), + #[allow(missing_docs)] + initialize(initializeCall), + #[allow(missing_docs)] + l1Head(l1HeadCall), + #[allow(missing_docs)] + l2BlockNumber(l2BlockNumberCall), + #[allow(missing_docs)] + l2BlockNumberChallenged(l2BlockNumberChallengedCall), + #[allow(missing_docs)] + l2BlockNumberChallenger(l2BlockNumberChallengerCall), + #[allow(missing_docs)] + l2ChainId(l2ChainIdCall), + #[allow(missing_docs)] + l2SequenceNumber(l2SequenceNumberCall), + #[allow(missing_docs)] + maxClockDuration(maxClockDurationCall), + #[allow(missing_docs)] + maxGameDepth(maxGameDepthCall), + #[allow(missing_docs)] + r#move(moveCall), + #[allow(missing_docs)] + normalModeCredit(normalModeCreditCall), + #[allow(missing_docs)] + refundModeCredit(refundModeCreditCall), + #[allow(missing_docs)] + resolutionCheckpoints(resolutionCheckpointsCall), + #[allow(missing_docs)] + resolve(resolveCall), + #[allow(missing_docs)] + resolveClaim(resolveClaimCall), + #[allow(missing_docs)] + resolvedAt(resolvedAtCall), + #[allow(missing_docs)] + resolvedSubgames(resolvedSubgamesCall), + #[allow(missing_docs)] + rootClaim(rootClaimCall), + #[allow(missing_docs)] + splitDepth(splitDepthCall), + #[allow(missing_docs)] + startingBlockNumber(startingBlockNumberCall), + #[allow(missing_docs)] + startingOutputRoot(startingOutputRootCall), + #[allow(missing_docs)] + startingRootHash(startingRootHashCall), + #[allow(missing_docs)] + status(statusCall), + #[allow(missing_docs)] + step(stepCall), + #[allow(missing_docs)] + subgames(subgamesCall), + #[allow(missing_docs)] + version(versionCall), + #[allow(missing_docs)] + vm(vmCall), + #[allow(missing_docs)] + wasRespectedGameTypeWhenCreated(wasRespectedGameTypeWhenCreatedCall), + #[allow(missing_docs)] + weth(wethCall), + } + impl FaultDisputeGameV2Calls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [1u8, 147u8, 81u8, 48u8], + [3u8, 194u8, 146u8, 77u8], + [25u8, 239u8, 254u8, 180u8], + [32u8, 13u8, 46u8, 210u8], + [34u8, 42u8, 191u8, 69u8], + [37u8, 14u8, 105u8, 189u8], + [37u8, 252u8, 42u8, 206u8], + [40u8, 16u8, 225u8, 214u8], + [42u8, 214u8, 154u8, 235u8], + [48u8, 219u8, 229u8, 112u8], + [55u8, 141u8, 212u8, 140u8], + [55u8, 177u8, 178u8, 41u8], + [58u8, 118u8, 132u8, 99u8], + [62u8, 58u8, 201u8, 18u8], + [63u8, 200u8, 206u8, 243u8], + [71u8, 39u8, 119u8, 198u8], + [82u8, 157u8, 106u8, 140u8], + [84u8, 253u8, 77u8, 80u8], + [87u8, 218u8, 149u8, 14u8], + [90u8, 95u8, 162u8, 217u8], + [92u8, 12u8, 186u8, 51u8], + [96u8, 157u8, 51u8, 52u8], + [96u8, 226u8, 116u8, 100u8], + [99u8, 97u8, 80u8, 109u8], + [107u8, 103u8, 22u8, 192u8], + [111u8, 3u8, 68u8, 9u8], + [112u8, 135u8, 42u8, 165u8], + [120u8, 107u8, 132u8, 75u8], + [123u8, 15u8, 10u8, 220u8], + [129u8, 41u8, 252u8, 28u8], + [137u8, 128u8, 224u8, 204u8], + [139u8, 133u8, 144u8, 43u8], + [141u8, 69u8, 10u8, 149u8], + [153u8, 115u8, 94u8, 50u8], + [164u8, 69u8, 236u8, 230u8], + [187u8, 220u8, 2u8, 219u8], + [188u8, 239u8, 59u8, 85u8], + [189u8, 141u8, 169u8, 86u8], + [192u8, 216u8, 187u8, 116u8], + [195u8, 149u8, 225u8, 202u8], + [198u8, 240u8, 48u8, 140u8], + [207u8, 9u8, 224u8, 208u8], + [213u8, 212u8, 77u8, 128u8], + [214u8, 174u8, 60u8, 213u8], + [216u8, 204u8, 26u8, 60u8], + [218u8, 189u8, 57u8, 109u8], + [236u8, 94u8, 99u8, 8u8], + [239u8, 240u8, 245u8, 146u8], + [248u8, 244u8, 63u8, 246u8], + [250u8, 36u8, 247u8, 67u8], + [250u8, 49u8, 90u8, 169u8], + [254u8, 43u8, 190u8, 178u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(challengeRootL2Block), + ::core::stringify!(resolveClaim), + ::core::stringify!(resolvedAt), + ::core::stringify!(status), + ::core::stringify!(hasUnlockedCredit), + ::core::stringify!(wasRespectedGameTypeWhenCreated), + ::core::stringify!(startingRootHash), + ::core::stringify!(resolve), + ::core::stringify!(subgames), + ::core::stringify!(l2BlockNumberChallenger), + ::core::stringify!(bondDistributionMode), + ::core::stringify!(gameCreator), + ::core::stringify!(vm), + ::core::stringify!(l2BlockNumberChallenged), + ::core::stringify!(weth), + ::core::stringify!(attack), + ::core::stringify!(normalModeCredit), + ::core::stringify!(version), + ::core::stringify!(startingOutputRoot), + ::core::stringify!(getNumToResolve), + ::core::stringify!(anchorStateRegistry), + ::core::stringify!(extraData), + ::core::stringify!(claimCredit), + ::core::stringify!(l1Head), + ::core::stringify!(clockExtension), + ::core::stringify!(r#move), + ::core::stringify!(startingBlockNumber), + ::core::stringify!(closeGame), + ::core::stringify!(defend), + ::core::stringify!(initialize), + ::core::stringify!(claimDataLen), + ::core::stringify!(l2BlockNumber), + ::core::stringify!(absolutePrestate), + ::core::stringify!(l2SequenceNumber), + ::core::stringify!(resolutionCheckpoints), + ::core::stringify!(gameType), + ::core::stringify!(rootClaim), + ::core::stringify!(getChallengerDuration), + ::core::stringify!(refundModeCredit), + ::core::stringify!(getRequiredBond), + ::core::stringify!(claimData), + ::core::stringify!(createdAt), + ::core::stringify!(credit), + ::core::stringify!(l2ChainId), + ::core::stringify!(step), + ::core::stringify!(maxClockDuration), + ::core::stringify!(splitDepth), + ::core::stringify!(claims), + ::core::stringify!(addLocalData), + ::core::stringify!(gameData), + ::core::stringify!(maxGameDepth), + ::core::stringify!(resolvedSubgames), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for FaultDisputeGameV2Calls { + const NAME: &'static str = "FaultDisputeGameV2Calls"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 52usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::absolutePrestate(_) => { + ::SELECTOR + } + Self::addLocalData(_) => { + ::SELECTOR + } + Self::anchorStateRegistry(_) => { + ::SELECTOR + } + Self::attack(_) => ::SELECTOR, + Self::bondDistributionMode(_) => { + ::SELECTOR + } + Self::challengeRootL2Block(_) => { + ::SELECTOR + } + Self::claimCredit(_) => { + ::SELECTOR + } + Self::claimData(_) => { + ::SELECTOR + } + Self::claimDataLen(_) => { + ::SELECTOR + } + Self::claims(_) => ::SELECTOR, + Self::clockExtension(_) => { + ::SELECTOR + } + Self::closeGame(_) => { + ::SELECTOR + } + Self::createdAt(_) => { + ::SELECTOR + } + Self::credit(_) => ::SELECTOR, + Self::defend(_) => ::SELECTOR, + Self::extraData(_) => { + ::SELECTOR + } + Self::gameCreator(_) => { + ::SELECTOR + } + Self::gameData(_) => ::SELECTOR, + Self::gameType(_) => ::SELECTOR, + Self::getChallengerDuration(_) => { + ::SELECTOR + } + Self::getNumToResolve(_) => { + ::SELECTOR + } + Self::getRequiredBond(_) => { + ::SELECTOR + } + Self::hasUnlockedCredit(_) => { + ::SELECTOR + } + Self::initialize(_) => { + ::SELECTOR + } + Self::l1Head(_) => ::SELECTOR, + Self::l2BlockNumber(_) => { + ::SELECTOR + } + Self::l2BlockNumberChallenged(_) => { + ::SELECTOR + } + Self::l2BlockNumberChallenger(_) => { + ::SELECTOR + } + Self::l2ChainId(_) => { + ::SELECTOR + } + Self::l2SequenceNumber(_) => { + ::SELECTOR + } + Self::maxClockDuration(_) => { + ::SELECTOR + } + Self::maxGameDepth(_) => { + ::SELECTOR + } + Self::r#move(_) => ::SELECTOR, + Self::normalModeCredit(_) => { + ::SELECTOR + } + Self::refundModeCredit(_) => { + ::SELECTOR + } + Self::resolutionCheckpoints(_) => { + ::SELECTOR + } + Self::resolve(_) => ::SELECTOR, + Self::resolveClaim(_) => { + ::SELECTOR + } + Self::resolvedAt(_) => { + ::SELECTOR + } + Self::resolvedSubgames(_) => { + ::SELECTOR + } + Self::rootClaim(_) => { + ::SELECTOR + } + Self::splitDepth(_) => { + ::SELECTOR + } + Self::startingBlockNumber(_) => { + ::SELECTOR + } + Self::startingOutputRoot(_) => { + ::SELECTOR + } + Self::startingRootHash(_) => { + ::SELECTOR + } + Self::status(_) => ::SELECTOR, + Self::step(_) => ::SELECTOR, + Self::subgames(_) => ::SELECTOR, + Self::version(_) => ::SELECTOR, + Self::vm(_) => ::SELECTOR, + Self::wasRespectedGameTypeWhenCreated(_) => { + ::SELECTOR + } + Self::weth(_) => ::SELECTOR, + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn challengeRootL2Block( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameV2Calls::challengeRootL2Block) + } + challengeRootL2Block + }, + { + fn resolveClaim( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameV2Calls::resolveClaim) + } + resolveClaim + }, + { + fn resolvedAt( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameV2Calls::resolvedAt) + } + resolvedAt + }, + { + fn status( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(FaultDisputeGameV2Calls::status) + } + status + }, + { + fn hasUnlockedCredit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameV2Calls::hasUnlockedCredit) + } + hasUnlockedCredit + }, + { + fn wasRespectedGameTypeWhenCreated( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + FaultDisputeGameV2Calls::wasRespectedGameTypeWhenCreated, + ) + } + wasRespectedGameTypeWhenCreated + }, + { + fn startingRootHash( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameV2Calls::startingRootHash) + } + startingRootHash + }, + { + fn resolve( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(FaultDisputeGameV2Calls::resolve) + } + resolve + }, + { + fn subgames( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(FaultDisputeGameV2Calls::subgames) + } + subgames + }, + { + fn l2BlockNumberChallenger( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameV2Calls::l2BlockNumberChallenger) + } + l2BlockNumberChallenger + }, + { + fn bondDistributionMode( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameV2Calls::bondDistributionMode) + } + bondDistributionMode + }, + { + fn gameCreator( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameV2Calls::gameCreator) + } + gameCreator + }, + { + fn vm( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(FaultDisputeGameV2Calls::vm) + } + vm + }, + { + fn l2BlockNumberChallenged( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameV2Calls::l2BlockNumberChallenged) + } + l2BlockNumberChallenged + }, + { + fn weth( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(FaultDisputeGameV2Calls::weth) + } + weth + }, + { + fn attack( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(FaultDisputeGameV2Calls::attack) + } + attack + }, + { + fn normalModeCredit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameV2Calls::normalModeCredit) + } + normalModeCredit + }, + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(FaultDisputeGameV2Calls::version) + } + version + }, + { + fn startingOutputRoot( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameV2Calls::startingOutputRoot) + } + startingOutputRoot + }, + { + fn getNumToResolve( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameV2Calls::getNumToResolve) + } + getNumToResolve + }, + { + fn anchorStateRegistry( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameV2Calls::anchorStateRegistry) + } + anchorStateRegistry + }, + { + fn extraData( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(FaultDisputeGameV2Calls::extraData) + } + extraData + }, + { + fn claimCredit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameV2Calls::claimCredit) + } + claimCredit + }, + { + fn l1Head( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(FaultDisputeGameV2Calls::l1Head) + } + l1Head + }, + { + fn clockExtension( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameV2Calls::clockExtension) + } + clockExtension + }, + { + fn r#move( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(FaultDisputeGameV2Calls::r#move) + } + r#move + }, + { + fn startingBlockNumber( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameV2Calls::startingBlockNumber) + } + startingBlockNumber + }, + { + fn closeGame( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(FaultDisputeGameV2Calls::closeGame) + } + closeGame + }, + { + fn defend( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(FaultDisputeGameV2Calls::defend) + } + defend + }, + { + fn initialize( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameV2Calls::initialize) + } + initialize + }, + { + fn claimDataLen( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameV2Calls::claimDataLen) + } + claimDataLen + }, + { + fn l2BlockNumber( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameV2Calls::l2BlockNumber) + } + l2BlockNumber + }, + { + fn absolutePrestate( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameV2Calls::absolutePrestate) + } + absolutePrestate + }, + { + fn l2SequenceNumber( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameV2Calls::l2SequenceNumber) + } + l2SequenceNumber + }, + { + fn resolutionCheckpoints( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameV2Calls::resolutionCheckpoints) + } + resolutionCheckpoints + }, + { + fn gameType( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(FaultDisputeGameV2Calls::gameType) + } + gameType + }, + { + fn rootClaim( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(FaultDisputeGameV2Calls::rootClaim) + } + rootClaim + }, + { + fn getChallengerDuration( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameV2Calls::getChallengerDuration) + } + getChallengerDuration + }, + { + fn refundModeCredit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameV2Calls::refundModeCredit) + } + refundModeCredit + }, + { + fn getRequiredBond( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameV2Calls::getRequiredBond) + } + getRequiredBond + }, + { + fn claimData( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(FaultDisputeGameV2Calls::claimData) + } + claimData + }, + { + fn createdAt( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(FaultDisputeGameV2Calls::createdAt) + } + createdAt + }, + { + fn credit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(FaultDisputeGameV2Calls::credit) + } + credit + }, + { + fn l2ChainId( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(FaultDisputeGameV2Calls::l2ChainId) + } + l2ChainId + }, + { + fn step( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(FaultDisputeGameV2Calls::step) + } + step + }, + { + fn maxClockDuration( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameV2Calls::maxClockDuration) + } + maxClockDuration + }, + { + fn splitDepth( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameV2Calls::splitDepth) + } + splitDepth + }, + { + fn claims( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(FaultDisputeGameV2Calls::claims) + } + claims + }, + { + fn addLocalData( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameV2Calls::addLocalData) + } + addLocalData + }, + { + fn gameData( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(FaultDisputeGameV2Calls::gameData) + } + gameData + }, + { + fn maxGameDepth( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameV2Calls::maxGameDepth) + } + maxGameDepth + }, + { + fn resolvedSubgames( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameV2Calls::resolvedSubgames) + } + resolvedSubgames + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn challengeRootL2Block( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameV2Calls::challengeRootL2Block) + } + challengeRootL2Block + }, + { + fn resolveClaim( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameV2Calls::resolveClaim) + } + resolveClaim + }, + { + fn resolvedAt( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameV2Calls::resolvedAt) + } + resolvedAt + }, + { + fn status( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameV2Calls::status) + } + status + }, + { + fn hasUnlockedCredit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameV2Calls::hasUnlockedCredit) + } + hasUnlockedCredit + }, + { + fn wasRespectedGameTypeWhenCreated( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + FaultDisputeGameV2Calls::wasRespectedGameTypeWhenCreated, + ) + } + wasRespectedGameTypeWhenCreated + }, + { + fn startingRootHash( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameV2Calls::startingRootHash) + } + startingRootHash + }, + { + fn resolve( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameV2Calls::resolve) + } + resolve + }, + { + fn subgames( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameV2Calls::subgames) + } + subgames + }, + { + fn l2BlockNumberChallenger( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameV2Calls::l2BlockNumberChallenger) + } + l2BlockNumberChallenger + }, + { + fn bondDistributionMode( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameV2Calls::bondDistributionMode) + } + bondDistributionMode + }, + { + fn gameCreator( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameV2Calls::gameCreator) + } + gameCreator + }, + { + fn vm( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameV2Calls::vm) + } + vm + }, + { + fn l2BlockNumberChallenged( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameV2Calls::l2BlockNumberChallenged) + } + l2BlockNumberChallenged + }, + { + fn weth( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameV2Calls::weth) + } + weth + }, + { + fn attack( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameV2Calls::attack) + } + attack + }, + { + fn normalModeCredit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameV2Calls::normalModeCredit) + } + normalModeCredit + }, + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameV2Calls::version) + } + version + }, + { + fn startingOutputRoot( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameV2Calls::startingOutputRoot) + } + startingOutputRoot + }, + { + fn getNumToResolve( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameV2Calls::getNumToResolve) + } + getNumToResolve + }, + { + fn anchorStateRegistry( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameV2Calls::anchorStateRegistry) + } + anchorStateRegistry + }, + { + fn extraData( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameV2Calls::extraData) + } + extraData + }, + { + fn claimCredit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameV2Calls::claimCredit) + } + claimCredit + }, + { + fn l1Head( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameV2Calls::l1Head) + } + l1Head + }, + { + fn clockExtension( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameV2Calls::clockExtension) + } + clockExtension + }, + { + fn r#move( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameV2Calls::r#move) + } + r#move + }, + { + fn startingBlockNumber( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameV2Calls::startingBlockNumber) + } + startingBlockNumber + }, + { + fn closeGame( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameV2Calls::closeGame) + } + closeGame + }, + { + fn defend( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameV2Calls::defend) + } + defend + }, + { + fn initialize( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameV2Calls::initialize) + } + initialize + }, + { + fn claimDataLen( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameV2Calls::claimDataLen) + } + claimDataLen + }, + { + fn l2BlockNumber( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameV2Calls::l2BlockNumber) + } + l2BlockNumber + }, + { + fn absolutePrestate( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameV2Calls::absolutePrestate) + } + absolutePrestate + }, + { + fn l2SequenceNumber( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameV2Calls::l2SequenceNumber) + } + l2SequenceNumber + }, + { + fn resolutionCheckpoints( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameV2Calls::resolutionCheckpoints) + } + resolutionCheckpoints + }, + { + fn gameType( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameV2Calls::gameType) + } + gameType + }, + { + fn rootClaim( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameV2Calls::rootClaim) + } + rootClaim + }, + { + fn getChallengerDuration( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameV2Calls::getChallengerDuration) + } + getChallengerDuration + }, + { + fn refundModeCredit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameV2Calls::refundModeCredit) + } + refundModeCredit + }, + { + fn getRequiredBond( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameV2Calls::getRequiredBond) + } + getRequiredBond + }, + { + fn claimData( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameV2Calls::claimData) + } + claimData + }, + { + fn createdAt( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameV2Calls::createdAt) + } + createdAt + }, + { + fn credit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameV2Calls::credit) + } + credit + }, + { + fn l2ChainId( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameV2Calls::l2ChainId) + } + l2ChainId + }, + { + fn step( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameV2Calls::step) + } + step + }, + { + fn maxClockDuration( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameV2Calls::maxClockDuration) + } + maxClockDuration + }, + { + fn splitDepth( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameV2Calls::splitDepth) + } + splitDepth + }, + { + fn claims( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameV2Calls::claims) + } + claims + }, + { + fn addLocalData( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameV2Calls::addLocalData) + } + addLocalData + }, + { + fn gameData( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameV2Calls::gameData) + } + gameData + }, + { + fn maxGameDepth( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameV2Calls::maxGameDepth) + } + maxGameDepth + }, + { + fn resolvedSubgames( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameV2Calls::resolvedSubgames) + } + resolvedSubgames + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::absolutePrestate(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::addLocalData(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::anchorStateRegistry(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::attack(inner) => { + ::abi_encoded_size(inner) + } + Self::bondDistributionMode(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::challengeRootL2Block(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::claimCredit(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::claimData(inner) => { + ::abi_encoded_size(inner) + } + Self::claimDataLen(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::claims(inner) => { + ::abi_encoded_size(inner) + } + Self::clockExtension(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::closeGame(inner) => { + ::abi_encoded_size(inner) + } + Self::createdAt(inner) => { + ::abi_encoded_size(inner) + } + Self::credit(inner) => { + ::abi_encoded_size(inner) + } + Self::defend(inner) => { + ::abi_encoded_size(inner) + } + Self::extraData(inner) => { + ::abi_encoded_size(inner) + } + Self::gameCreator(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::gameData(inner) => { + ::abi_encoded_size(inner) + } + Self::gameType(inner) => { + ::abi_encoded_size(inner) + } + Self::getChallengerDuration(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::getNumToResolve(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::getRequiredBond(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::hasUnlockedCredit(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::initialize(inner) => { + ::abi_encoded_size(inner) + } + Self::l1Head(inner) => { + ::abi_encoded_size(inner) + } + Self::l2BlockNumber(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::l2BlockNumberChallenged(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::l2BlockNumberChallenger(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::l2ChainId(inner) => { + ::abi_encoded_size(inner) + } + Self::l2SequenceNumber(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::maxClockDuration(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::maxGameDepth(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::r#move(inner) => { + ::abi_encoded_size(inner) + } + Self::normalModeCredit(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::refundModeCredit(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::resolutionCheckpoints(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::resolve(inner) => { + ::abi_encoded_size(inner) + } + Self::resolveClaim(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::resolvedAt(inner) => { + ::abi_encoded_size(inner) + } + Self::resolvedSubgames(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::rootClaim(inner) => { + ::abi_encoded_size(inner) + } + Self::splitDepth(inner) => { + ::abi_encoded_size(inner) + } + Self::startingBlockNumber(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::startingOutputRoot(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::startingRootHash(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::status(inner) => { + ::abi_encoded_size(inner) + } + Self::step(inner) => { + ::abi_encoded_size(inner) + } + Self::subgames(inner) => { + ::abi_encoded_size(inner) + } + Self::version(inner) => { + ::abi_encoded_size(inner) + } + Self::vm(inner) => { + ::abi_encoded_size(inner) + } + Self::wasRespectedGameTypeWhenCreated(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::weth(inner) => { + ::abi_encoded_size(inner) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::absolutePrestate(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::addLocalData(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::anchorStateRegistry(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::attack(inner) => { + ::abi_encode_raw(inner, out) + } + Self::bondDistributionMode(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::challengeRootL2Block(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::claimCredit(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::claimData(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::claimDataLen(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::claims(inner) => { + ::abi_encode_raw(inner, out) + } + Self::clockExtension(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::closeGame(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::createdAt(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::credit(inner) => { + ::abi_encode_raw(inner, out) + } + Self::defend(inner) => { + ::abi_encode_raw(inner, out) + } + Self::extraData(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::gameCreator(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::gameData(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::gameType(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::getChallengerDuration(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::getNumToResolve(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::getRequiredBond(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::hasUnlockedCredit(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::initialize(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::l1Head(inner) => { + ::abi_encode_raw(inner, out) + } + Self::l2BlockNumber(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::l2BlockNumberChallenged(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::l2BlockNumberChallenger(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::l2ChainId(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::l2SequenceNumber(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::maxClockDuration(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::maxGameDepth(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::r#move(inner) => { + ::abi_encode_raw(inner, out) + } + Self::normalModeCredit(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::refundModeCredit(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::resolutionCheckpoints(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::resolve(inner) => { + ::abi_encode_raw(inner, out) + } + Self::resolveClaim(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::resolvedAt(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::resolvedSubgames(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::rootClaim(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::splitDepth(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::startingBlockNumber(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::startingOutputRoot(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::startingRootHash(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::status(inner) => { + ::abi_encode_raw(inner, out) + } + Self::step(inner) => { + ::abi_encode_raw(inner, out) + } + Self::subgames(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::version(inner) => { + ::abi_encode_raw(inner, out) + } + Self::vm(inner) => { + ::abi_encode_raw(inner, out) + } + Self::wasRespectedGameTypeWhenCreated(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::weth(inner) => { + ::abi_encode_raw(inner, out) + } + } + } + } + ///Container for all the [`FaultDisputeGameV2`](self) custom errors. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum FaultDisputeGameV2Errors { + #[allow(missing_docs)] + AlreadyInitialized(AlreadyInitialized), + #[allow(missing_docs)] + AnchorRootNotFound(AnchorRootNotFound), + #[allow(missing_docs)] + BadExtraData(BadExtraData), + #[allow(missing_docs)] + BlockNumberMatches(BlockNumberMatches), + #[allow(missing_docs)] + BondTransferFailed(BondTransferFailed), + #[allow(missing_docs)] + CannotDefendRootClaim(CannotDefendRootClaim), + #[allow(missing_docs)] + ClaimAboveSplit(ClaimAboveSplit), + #[allow(missing_docs)] + ClaimAlreadyExists(ClaimAlreadyExists), + #[allow(missing_docs)] + ClaimAlreadyResolved(ClaimAlreadyResolved), + #[allow(missing_docs)] + ClockNotExpired(ClockNotExpired), + #[allow(missing_docs)] + ClockTimeExceeded(ClockTimeExceeded), + #[allow(missing_docs)] + ContentLengthMismatch(ContentLengthMismatch), + #[allow(missing_docs)] + DuplicateStep(DuplicateStep), + #[allow(missing_docs)] + EmptyItem(EmptyItem), + #[allow(missing_docs)] + GameDepthExceeded(GameDepthExceeded), + #[allow(missing_docs)] + GameNotFinalized(GameNotFinalized), + #[allow(missing_docs)] + GameNotInProgress(GameNotInProgress), + #[allow(missing_docs)] + GameNotResolved(GameNotResolved), + #[allow(missing_docs)] + GamePaused(GamePaused), + #[allow(missing_docs)] + IncorrectBondAmount(IncorrectBondAmount), + #[allow(missing_docs)] + InvalidBondDistributionMode(InvalidBondDistributionMode), + #[allow(missing_docs)] + InvalidChallengePeriod(InvalidChallengePeriod), + #[allow(missing_docs)] + InvalidClockExtension(InvalidClockExtension), + #[allow(missing_docs)] + InvalidDataRemainder(InvalidDataRemainder), + #[allow(missing_docs)] + InvalidDisputedClaimIndex(InvalidDisputedClaimIndex), + #[allow(missing_docs)] + InvalidHeader(InvalidHeader), + #[allow(missing_docs)] + InvalidHeaderRLP(InvalidHeaderRLP), + #[allow(missing_docs)] + InvalidLocalIdent(InvalidLocalIdent), + #[allow(missing_docs)] + InvalidOutputRootProof(InvalidOutputRootProof), + #[allow(missing_docs)] + InvalidParent(InvalidParent), + #[allow(missing_docs)] + InvalidPrestate(InvalidPrestate), + #[allow(missing_docs)] + InvalidSplitDepth(InvalidSplitDepth), + #[allow(missing_docs)] + L2BlockNumberChallenged(L2BlockNumberChallenged), + #[allow(missing_docs)] + MaxDepthTooLarge(MaxDepthTooLarge), + #[allow(missing_docs)] + NoCreditToClaim(NoCreditToClaim), + #[allow(missing_docs)] + OutOfOrderResolution(OutOfOrderResolution), + #[allow(missing_docs)] + UnexpectedList(UnexpectedList), + #[allow(missing_docs)] + UnexpectedRootClaim(UnexpectedRootClaim), + #[allow(missing_docs)] + UnexpectedString(UnexpectedString), + #[allow(missing_docs)] + ValidStep(ValidStep), + } + impl FaultDisputeGameV2Errors { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [7u8, 138u8, 61u8, 244u8], + [13u8, 193u8, 73u8, 240u8], + [14u8, 162u8, 231u8, 82u8], + [23u8, 191u8, 229u8, 247u8], + [31u8, 249u8, 178u8, 228u8], + [48u8, 20u8, 3u8, 50u8], + [51u8, 129u8, 209u8, 20u8], + [55u8, 154u8, 126u8, 217u8], + [72u8, 81u8, 189u8, 155u8], + [75u8, 156u8, 106u8, 190u8], + [86u8, 245u8, 123u8, 43u8], + [90u8, 180u8, 88u8, 251u8], + [92u8, 85u8, 55u8, 184u8], + [95u8, 83u8, 221u8, 152u8], + [102u8, 201u8, 68u8, 133u8], + [103u8, 254u8, 25u8, 80u8], + [105u8, 101u8, 80u8, 255u8], + [106u8, 107u8, 195u8, 178u8], + [119u8, 223u8, 227u8, 50u8], + [128u8, 73u8, 126u8, 59u8], + [131u8, 230u8, 204u8, 107u8], + [134u8, 32u8, 170u8, 25u8], + [141u8, 119u8, 236u8, 172u8], + [144u8, 113u8, 230u8, 175u8], + [152u8, 36u8, 189u8, 171u8], + [154u8, 7u8, 102u8, 70u8], + [156u8, 192u8, 11u8, 91u8], + [164u8, 38u8, 55u8, 188u8], + [179u8, 75u8, 92u8, 34u8], + [180u8, 225u8, 36u8, 51u8], + [184u8, 237u8, 136u8, 48u8], + [186u8, 187u8, 1u8, 221u8], + [193u8, 5u8, 38u8, 10u8], + [216u8, 29u8, 88u8, 59u8], + [230u8, 44u8, 207u8, 57u8], + [241u8, 169u8, 69u8, 129u8], + [242u8, 68u8, 11u8, 83u8], + [244u8, 2u8, 57u8, 219u8], + [251u8, 78u8, 64u8, 221u8], + [255u8, 19u8, 126u8, 101u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(InvalidBondDistributionMode), + ::core::stringify!(AlreadyInitialized), + ::core::stringify!(L2BlockNumberChallenged), + ::core::stringify!(NoCreditToClaim), + ::core::stringify!(UnexpectedList), + ::core::stringify!(InvalidDisputedClaimIndex), + ::core::stringify!(ClockTimeExceeded), + ::core::stringify!(GamePaused), + ::core::stringify!(GameNotFinalized), + ::core::stringify!(UnexpectedString), + ::core::stringify!(GameDepthExceeded), + ::core::stringify!(EmptyItem), + ::core::stringify!(InvalidDataRemainder), + ::core::stringify!(InvalidParent), + ::core::stringify!(ContentLengthMismatch), + ::core::stringify!(GameNotInProgress), + ::core::stringify!(InvalidPrestate), + ::core::stringify!(AnchorRootNotFound), + ::core::stringify!(MaxDepthTooLarge), + ::core::stringify!(ClaimAlreadyExists), + ::core::stringify!(BondTransferFailed), + ::core::stringify!(IncorrectBondAmount), + ::core::stringify!(InvalidClockExtension), + ::core::stringify!(DuplicateStep), + ::core::stringify!(BadExtraData), + ::core::stringify!(OutOfOrderResolution), + ::core::stringify!(InvalidOutputRootProof), + ::core::stringify!(CannotDefendRootClaim), + ::core::stringify!(ClaimAboveSplit), + ::core::stringify!(InvalidChallengePeriod), + ::core::stringify!(BlockNumberMatches), + ::core::stringify!(InvalidHeader), + ::core::stringify!(GameNotResolved), + ::core::stringify!(InvalidHeaderRLP), + ::core::stringify!(InvalidSplitDepth), + ::core::stringify!(ClaimAlreadyResolved), + ::core::stringify!(ClockNotExpired), + ::core::stringify!(UnexpectedRootClaim), + ::core::stringify!(ValidStep), + ::core::stringify!(InvalidLocalIdent), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for FaultDisputeGameV2Errors { + const NAME: &'static str = "FaultDisputeGameV2Errors"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 40usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::AlreadyInitialized(_) => { + ::SELECTOR + } + Self::AnchorRootNotFound(_) => { + ::SELECTOR + } + Self::BadExtraData(_) => { + ::SELECTOR + } + Self::BlockNumberMatches(_) => { + ::SELECTOR + } + Self::BondTransferFailed(_) => { + ::SELECTOR + } + Self::CannotDefendRootClaim(_) => { + ::SELECTOR + } + Self::ClaimAboveSplit(_) => { + ::SELECTOR + } + Self::ClaimAlreadyExists(_) => { + ::SELECTOR + } + Self::ClaimAlreadyResolved(_) => { + ::SELECTOR + } + Self::ClockNotExpired(_) => { + ::SELECTOR + } + Self::ClockTimeExceeded(_) => { + ::SELECTOR + } + Self::ContentLengthMismatch(_) => { + ::SELECTOR + } + Self::DuplicateStep(_) => { + ::SELECTOR + } + Self::EmptyItem(_) => ::SELECTOR, + Self::GameDepthExceeded(_) => { + ::SELECTOR + } + Self::GameNotFinalized(_) => { + ::SELECTOR + } + Self::GameNotInProgress(_) => { + ::SELECTOR + } + Self::GameNotResolved(_) => { + ::SELECTOR + } + Self::GamePaused(_) => { + ::SELECTOR + } + Self::IncorrectBondAmount(_) => { + ::SELECTOR + } + Self::InvalidBondDistributionMode(_) => { + ::SELECTOR + } + Self::InvalidChallengePeriod(_) => { + ::SELECTOR + } + Self::InvalidClockExtension(_) => { + ::SELECTOR + } + Self::InvalidDataRemainder(_) => { + ::SELECTOR + } + Self::InvalidDisputedClaimIndex(_) => { + ::SELECTOR + } + Self::InvalidHeader(_) => { + ::SELECTOR + } + Self::InvalidHeaderRLP(_) => { + ::SELECTOR + } + Self::InvalidLocalIdent(_) => { + ::SELECTOR + } + Self::InvalidOutputRootProof(_) => { + ::SELECTOR + } + Self::InvalidParent(_) => { + ::SELECTOR + } + Self::InvalidPrestate(_) => { + ::SELECTOR + } + Self::InvalidSplitDepth(_) => { + ::SELECTOR + } + Self::L2BlockNumberChallenged(_) => { + ::SELECTOR + } + Self::MaxDepthTooLarge(_) => { + ::SELECTOR + } + Self::NoCreditToClaim(_) => { + ::SELECTOR + } + Self::OutOfOrderResolution(_) => { + ::SELECTOR + } + Self::UnexpectedList(_) => { + ::SELECTOR + } + Self::UnexpectedRootClaim(_) => { + ::SELECTOR + } + Self::UnexpectedString(_) => { + ::SELECTOR + } + Self::ValidStep(_) => ::SELECTOR, + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn InvalidBondDistributionMode( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameV2Errors::InvalidBondDistributionMode) + } + InvalidBondDistributionMode + }, + { + fn AlreadyInitialized( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameV2Errors::AlreadyInitialized) + } + AlreadyInitialized + }, + { + fn L2BlockNumberChallenged( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameV2Errors::L2BlockNumberChallenged) + } + L2BlockNumberChallenged + }, + { + fn NoCreditToClaim( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameV2Errors::NoCreditToClaim) + } + NoCreditToClaim + }, + { + fn UnexpectedList( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameV2Errors::UnexpectedList) + } + UnexpectedList + }, + { + fn InvalidDisputedClaimIndex( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameV2Errors::InvalidDisputedClaimIndex) + } + InvalidDisputedClaimIndex + }, + { + fn ClockTimeExceeded( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameV2Errors::ClockTimeExceeded) + } + ClockTimeExceeded + }, + { + fn GamePaused( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(FaultDisputeGameV2Errors::GamePaused) + } + GamePaused + }, + { + fn GameNotFinalized( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameV2Errors::GameNotFinalized) + } + GameNotFinalized + }, + { + fn UnexpectedString( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameV2Errors::UnexpectedString) + } + UnexpectedString + }, + { + fn GameDepthExceeded( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameV2Errors::GameDepthExceeded) + } + GameDepthExceeded + }, + { + fn EmptyItem( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(FaultDisputeGameV2Errors::EmptyItem) + } + EmptyItem + }, + { + fn InvalidDataRemainder( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameV2Errors::InvalidDataRemainder) + } + InvalidDataRemainder + }, + { + fn InvalidParent( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameV2Errors::InvalidParent) + } + InvalidParent + }, + { + fn ContentLengthMismatch( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameV2Errors::ContentLengthMismatch) + } + ContentLengthMismatch + }, + { + fn GameNotInProgress( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameV2Errors::GameNotInProgress) + } + GameNotInProgress + }, + { + fn InvalidPrestate( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameV2Errors::InvalidPrestate) + } + InvalidPrestate + }, + { + fn AnchorRootNotFound( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameV2Errors::AnchorRootNotFound) + } + AnchorRootNotFound + }, + { + fn MaxDepthTooLarge( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameV2Errors::MaxDepthTooLarge) + } + MaxDepthTooLarge + }, + { + fn ClaimAlreadyExists( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameV2Errors::ClaimAlreadyExists) + } + ClaimAlreadyExists + }, + { + fn BondTransferFailed( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameV2Errors::BondTransferFailed) + } + BondTransferFailed + }, + { + fn IncorrectBondAmount( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameV2Errors::IncorrectBondAmount) + } + IncorrectBondAmount + }, + { + fn InvalidClockExtension( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameV2Errors::InvalidClockExtension) + } + InvalidClockExtension + }, + { + fn DuplicateStep( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameV2Errors::DuplicateStep) + } + DuplicateStep + }, + { + fn BadExtraData( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(FaultDisputeGameV2Errors::BadExtraData) + } + BadExtraData + }, + { + fn OutOfOrderResolution( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameV2Errors::OutOfOrderResolution) + } + OutOfOrderResolution + }, + { + fn InvalidOutputRootProof( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameV2Errors::InvalidOutputRootProof) + } + InvalidOutputRootProof + }, + { + fn CannotDefendRootClaim( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameV2Errors::CannotDefendRootClaim) + } + CannotDefendRootClaim + }, + { + fn ClaimAboveSplit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameV2Errors::ClaimAboveSplit) + } + ClaimAboveSplit + }, + { + fn InvalidChallengePeriod( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameV2Errors::InvalidChallengePeriod) + } + InvalidChallengePeriod + }, + { + fn BlockNumberMatches( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameV2Errors::BlockNumberMatches) + } + BlockNumberMatches + }, + { + fn InvalidHeader( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameV2Errors::InvalidHeader) + } + InvalidHeader + }, + { + fn GameNotResolved( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameV2Errors::GameNotResolved) + } + GameNotResolved + }, + { + fn InvalidHeaderRLP( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameV2Errors::InvalidHeaderRLP) + } + InvalidHeaderRLP + }, + { + fn InvalidSplitDepth( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameV2Errors::InvalidSplitDepth) + } + InvalidSplitDepth + }, + { + fn ClaimAlreadyResolved( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameV2Errors::ClaimAlreadyResolved) + } + ClaimAlreadyResolved + }, + { + fn ClockNotExpired( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameV2Errors::ClockNotExpired) + } + ClockNotExpired + }, + { + fn UnexpectedRootClaim( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameV2Errors::UnexpectedRootClaim) + } + UnexpectedRootClaim + }, + { + fn ValidStep( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(FaultDisputeGameV2Errors::ValidStep) + } + ValidStep + }, + { + fn InvalidLocalIdent( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FaultDisputeGameV2Errors::InvalidLocalIdent) + } + InvalidLocalIdent + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn InvalidBondDistributionMode( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameV2Errors::InvalidBondDistributionMode) + } + InvalidBondDistributionMode + }, + { + fn AlreadyInitialized( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameV2Errors::AlreadyInitialized) + } + AlreadyInitialized + }, + { + fn L2BlockNumberChallenged( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameV2Errors::L2BlockNumberChallenged) + } + L2BlockNumberChallenged + }, + { + fn NoCreditToClaim( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameV2Errors::NoCreditToClaim) + } + NoCreditToClaim + }, + { + fn UnexpectedList( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameV2Errors::UnexpectedList) + } + UnexpectedList + }, + { + fn InvalidDisputedClaimIndex( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameV2Errors::InvalidDisputedClaimIndex) + } + InvalidDisputedClaimIndex + }, + { + fn ClockTimeExceeded( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameV2Errors::ClockTimeExceeded) + } + ClockTimeExceeded + }, + { + fn GamePaused( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameV2Errors::GamePaused) + } + GamePaused + }, + { + fn GameNotFinalized( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameV2Errors::GameNotFinalized) + } + GameNotFinalized + }, + { + fn UnexpectedString( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameV2Errors::UnexpectedString) + } + UnexpectedString + }, + { + fn GameDepthExceeded( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameV2Errors::GameDepthExceeded) + } + GameDepthExceeded + }, + { + fn EmptyItem( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameV2Errors::EmptyItem) + } + EmptyItem + }, + { + fn InvalidDataRemainder( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameV2Errors::InvalidDataRemainder) + } + InvalidDataRemainder + }, + { + fn InvalidParent( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameV2Errors::InvalidParent) + } + InvalidParent + }, + { + fn ContentLengthMismatch( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameV2Errors::ContentLengthMismatch) + } + ContentLengthMismatch + }, + { + fn GameNotInProgress( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameV2Errors::GameNotInProgress) + } + GameNotInProgress + }, + { + fn InvalidPrestate( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameV2Errors::InvalidPrestate) + } + InvalidPrestate + }, + { + fn AnchorRootNotFound( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameV2Errors::AnchorRootNotFound) + } + AnchorRootNotFound + }, + { + fn MaxDepthTooLarge( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameV2Errors::MaxDepthTooLarge) + } + MaxDepthTooLarge + }, + { + fn ClaimAlreadyExists( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameV2Errors::ClaimAlreadyExists) + } + ClaimAlreadyExists + }, + { + fn BondTransferFailed( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameV2Errors::BondTransferFailed) + } + BondTransferFailed + }, + { + fn IncorrectBondAmount( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameV2Errors::IncorrectBondAmount) + } + IncorrectBondAmount + }, + { + fn InvalidClockExtension( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameV2Errors::InvalidClockExtension) + } + InvalidClockExtension + }, + { + fn DuplicateStep( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameV2Errors::DuplicateStep) + } + DuplicateStep + }, + { + fn BadExtraData( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameV2Errors::BadExtraData) + } + BadExtraData + }, + { + fn OutOfOrderResolution( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameV2Errors::OutOfOrderResolution) + } + OutOfOrderResolution + }, + { + fn InvalidOutputRootProof( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameV2Errors::InvalidOutputRootProof) + } + InvalidOutputRootProof + }, + { + fn CannotDefendRootClaim( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameV2Errors::CannotDefendRootClaim) + } + CannotDefendRootClaim + }, + { + fn ClaimAboveSplit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameV2Errors::ClaimAboveSplit) + } + ClaimAboveSplit + }, + { + fn InvalidChallengePeriod( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameV2Errors::InvalidChallengePeriod) + } + InvalidChallengePeriod + }, + { + fn BlockNumberMatches( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameV2Errors::BlockNumberMatches) + } + BlockNumberMatches + }, + { + fn InvalidHeader( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameV2Errors::InvalidHeader) + } + InvalidHeader + }, + { + fn GameNotResolved( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameV2Errors::GameNotResolved) + } + GameNotResolved + }, + { + fn InvalidHeaderRLP( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameV2Errors::InvalidHeaderRLP) + } + InvalidHeaderRLP + }, + { + fn InvalidSplitDepth( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameV2Errors::InvalidSplitDepth) + } + InvalidSplitDepth + }, + { + fn ClaimAlreadyResolved( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameV2Errors::ClaimAlreadyResolved) + } + ClaimAlreadyResolved + }, + { + fn ClockNotExpired( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameV2Errors::ClockNotExpired) + } + ClockNotExpired + }, + { + fn UnexpectedRootClaim( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameV2Errors::UnexpectedRootClaim) + } + UnexpectedRootClaim + }, + { + fn ValidStep( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameV2Errors::ValidStep) + } + ValidStep + }, + { + fn InvalidLocalIdent( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FaultDisputeGameV2Errors::InvalidLocalIdent) + } + InvalidLocalIdent + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::AlreadyInitialized(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::AnchorRootNotFound(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::BadExtraData(inner) => { + ::abi_encoded_size(inner) + } + Self::BlockNumberMatches(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::BondTransferFailed(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::CannotDefendRootClaim(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ClaimAboveSplit(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ClaimAlreadyExists(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ClaimAlreadyResolved(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ClockNotExpired(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ClockTimeExceeded(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ContentLengthMismatch(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::DuplicateStep(inner) => { + ::abi_encoded_size(inner) + } + Self::EmptyItem(inner) => { + ::abi_encoded_size(inner) + } + Self::GameDepthExceeded(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::GameNotFinalized(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::GameNotInProgress(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::GameNotResolved(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::GamePaused(inner) => { + ::abi_encoded_size(inner) + } + Self::IncorrectBondAmount(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::InvalidBondDistributionMode(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::InvalidChallengePeriod(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::InvalidClockExtension(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::InvalidDataRemainder(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::InvalidDisputedClaimIndex(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::InvalidHeader(inner) => { + ::abi_encoded_size(inner) + } + Self::InvalidHeaderRLP(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::InvalidLocalIdent(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::InvalidOutputRootProof(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::InvalidParent(inner) => { + ::abi_encoded_size(inner) + } + Self::InvalidPrestate(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::InvalidSplitDepth(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::L2BlockNumberChallenged(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::MaxDepthTooLarge(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::NoCreditToClaim(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::OutOfOrderResolution(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::UnexpectedList(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::UnexpectedRootClaim(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::UnexpectedString(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ValidStep(inner) => { + ::abi_encoded_size(inner) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::AlreadyInitialized(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::AnchorRootNotFound(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::BadExtraData(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::BlockNumberMatches(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::BondTransferFailed(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::CannotDefendRootClaim(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ClaimAboveSplit(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ClaimAlreadyExists(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ClaimAlreadyResolved(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ClockNotExpired(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ClockTimeExceeded(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ContentLengthMismatch(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::DuplicateStep(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::EmptyItem(inner) => { + ::abi_encode_raw(inner, out) + } + Self::GameDepthExceeded(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::GameNotFinalized(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::GameNotInProgress(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::GameNotResolved(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::GamePaused(inner) => { + ::abi_encode_raw(inner, out) + } + Self::IncorrectBondAmount(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidBondDistributionMode(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidChallengePeriod(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidClockExtension(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidDataRemainder(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidDisputedClaimIndex(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidHeader(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidHeaderRLP(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidLocalIdent(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidOutputRootProof(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidParent(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidPrestate(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidSplitDepth(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::L2BlockNumberChallenged(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::MaxDepthTooLarge(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::NoCreditToClaim(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::OutOfOrderResolution(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::UnexpectedList(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::UnexpectedRootClaim(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::UnexpectedString(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ValidStep(inner) => { + ::abi_encode_raw(inner, out) + } + } + } + } + ///Container for all the [`FaultDisputeGameV2`](self) events. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum FaultDisputeGameV2Events { + #[allow(missing_docs)] + GameClosed(GameClosed), + #[allow(missing_docs)] + Move(Move), + #[allow(missing_docs)] + Resolved(Resolved), + } + impl FaultDisputeGameV2Events { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 32usize]] = &[ + [ + 94u8, 24u8, 111u8, 9u8, 185u8, 201u8, 52u8, 145u8, 241u8, 78u8, 39u8, + 126u8, 234u8, 127u8, 170u8, 93u8, 230u8, 162u8, 212u8, 189u8, 167u8, + 90u8, 121u8, 175u8, 122u8, 54u8, 132u8, 251u8, 251u8, 66u8, 218u8, 96u8, + ], + [ + 153u8, 8u8, 234u8, 172u8, 6u8, 69u8, 223u8, 157u8, 7u8, 4u8, 208u8, + 106u8, 220u8, 158u8, 7u8, 51u8, 124u8, 149u8, 29u8, 226u8, 240u8, 107u8, + 95u8, 40u8, 54u8, 21u8, 29u8, 72u8, 213u8, 228u8, 114u8, 47u8, + ], + [ + 155u8, 50u8, 69u8, 116u8, 14u8, 195u8, 177u8, 85u8, 9u8, 138u8, 85u8, + 190u8, 132u8, 149u8, 122u8, 77u8, 161u8, 62u8, 175u8, 127u8, 20u8, 168u8, + 188u8, 111u8, 83u8, 18u8, 108u8, 11u8, 147u8, 80u8, 242u8, 190u8, + ], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(Resolved), + ::core::stringify!(GameClosed), + ::core::stringify!(Move), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolEventInterface for FaultDisputeGameV2Events { + const NAME: &'static str = "FaultDisputeGameV2Events"; + const COUNT: usize = 3usize; + fn decode_raw_log( + topics: &[alloy_sol_types::Word], + data: &[u8], + ) -> alloy_sol_types::Result { + match topics.first().copied() { + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::GameClosed) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log(topics, data) + .map(Self::Move) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log(topics, data) + .map(Self::Resolved) + } + _ => { + alloy_sol_types::private::Err(alloy_sol_types::Error::InvalidLog { + name: ::NAME, + log: alloy_sol_types::private::Box::new( + alloy_sol_types::private::LogData::new_unchecked( + topics.to_vec(), + data.to_vec().into(), + ), + ), + }) + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for FaultDisputeGameV2Events { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + match self { + Self::GameClosed(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::Move(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::Resolved(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + } + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + match self { + Self::GameClosed(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::Move(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::Resolved(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`FaultDisputeGameV2`](self) contract instance. + +See the [wrapper's documentation](`FaultDisputeGameV2Instance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> FaultDisputeGameV2Instance { + FaultDisputeGameV2Instance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + _params: ::RustType, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + FaultDisputeGameV2Instance::::deploy(__provider, _params) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + _params: ::RustType, + ) -> alloy_contract::RawCallBuilder { + FaultDisputeGameV2Instance::::deploy_builder(__provider, _params) + } + /**A [`FaultDisputeGameV2`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`FaultDisputeGameV2`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct FaultDisputeGameV2Instance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for FaultDisputeGameV2Instance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("FaultDisputeGameV2Instance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > FaultDisputeGameV2Instance { + /**Creates a new wrapper around an on-chain [`FaultDisputeGameV2`](self) contract instance. + +See the [wrapper's documentation](`FaultDisputeGameV2Instance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + _params: ::RustType, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider, _params); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder( + __provider: P, + _params: ::RustType, + ) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + [ + &BYTECODE[..], + &alloy_sol_types::SolConstructor::abi_encode( + &constructorCall { _params }, + )[..], + ] + .concat() + .into(), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl FaultDisputeGameV2Instance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> FaultDisputeGameV2Instance { + FaultDisputeGameV2Instance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > FaultDisputeGameV2Instance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`absolutePrestate`] function. + pub fn absolutePrestate( + &self, + ) -> alloy_contract::SolCallBuilder<&P, absolutePrestateCall, N> { + self.call_builder(&absolutePrestateCall) + } + ///Creates a new call builder for the [`addLocalData`] function. + pub fn addLocalData( + &self, + _ident: alloy::sol_types::private::primitives::aliases::U256, + _execLeafIdx: alloy::sol_types::private::primitives::aliases::U256, + _partOffset: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, addLocalDataCall, N> { + self.call_builder( + &addLocalDataCall { + _ident, + _execLeafIdx, + _partOffset, + }, + ) + } + ///Creates a new call builder for the [`anchorStateRegistry`] function. + pub fn anchorStateRegistry( + &self, + ) -> alloy_contract::SolCallBuilder<&P, anchorStateRegistryCall, N> { + self.call_builder(&anchorStateRegistryCall) + } + ///Creates a new call builder for the [`attack`] function. + pub fn attack( + &self, + _disputed: ::RustType, + _parentIndex: alloy::sol_types::private::primitives::aliases::U256, + _claim: ::RustType, + ) -> alloy_contract::SolCallBuilder<&P, attackCall, N> { + self.call_builder( + &attackCall { + _disputed, + _parentIndex, + _claim, + }, + ) + } + ///Creates a new call builder for the [`bondDistributionMode`] function. + pub fn bondDistributionMode( + &self, + ) -> alloy_contract::SolCallBuilder<&P, bondDistributionModeCall, N> { + self.call_builder(&bondDistributionModeCall) + } + ///Creates a new call builder for the [`challengeRootL2Block`] function. + pub fn challengeRootL2Block( + &self, + _outputRootProof: ::RustType, + _headerRLP: alloy::sol_types::private::Bytes, + ) -> alloy_contract::SolCallBuilder<&P, challengeRootL2BlockCall, N> { + self.call_builder( + &challengeRootL2BlockCall { + _outputRootProof, + _headerRLP, + }, + ) + } + ///Creates a new call builder for the [`claimCredit`] function. + pub fn claimCredit( + &self, + _recipient: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, claimCreditCall, N> { + self.call_builder(&claimCreditCall { _recipient }) + } + ///Creates a new call builder for the [`claimData`] function. + pub fn claimData( + &self, + _0: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, claimDataCall, N> { + self.call_builder(&claimDataCall(_0)) + } + ///Creates a new call builder for the [`claimDataLen`] function. + pub fn claimDataLen( + &self, + ) -> alloy_contract::SolCallBuilder<&P, claimDataLenCall, N> { + self.call_builder(&claimDataLenCall) + } + ///Creates a new call builder for the [`claims`] function. + pub fn claims( + &self, + _0: ::RustType, + ) -> alloy_contract::SolCallBuilder<&P, claimsCall, N> { + self.call_builder(&claimsCall(_0)) + } + ///Creates a new call builder for the [`clockExtension`] function. + pub fn clockExtension( + &self, + ) -> alloy_contract::SolCallBuilder<&P, clockExtensionCall, N> { + self.call_builder(&clockExtensionCall) + } + ///Creates a new call builder for the [`closeGame`] function. + pub fn closeGame(&self) -> alloy_contract::SolCallBuilder<&P, closeGameCall, N> { + self.call_builder(&closeGameCall) + } + ///Creates a new call builder for the [`createdAt`] function. + pub fn createdAt(&self) -> alloy_contract::SolCallBuilder<&P, createdAtCall, N> { + self.call_builder(&createdAtCall) + } + ///Creates a new call builder for the [`credit`] function. + pub fn credit( + &self, + _recipient: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, creditCall, N> { + self.call_builder(&creditCall { _recipient }) + } + ///Creates a new call builder for the [`defend`] function. + pub fn defend( + &self, + _disputed: ::RustType, + _parentIndex: alloy::sol_types::private::primitives::aliases::U256, + _claim: ::RustType, + ) -> alloy_contract::SolCallBuilder<&P, defendCall, N> { + self.call_builder( + &defendCall { + _disputed, + _parentIndex, + _claim, + }, + ) + } + ///Creates a new call builder for the [`extraData`] function. + pub fn extraData(&self) -> alloy_contract::SolCallBuilder<&P, extraDataCall, N> { + self.call_builder(&extraDataCall) + } + ///Creates a new call builder for the [`gameCreator`] function. + pub fn gameCreator( + &self, + ) -> alloy_contract::SolCallBuilder<&P, gameCreatorCall, N> { + self.call_builder(&gameCreatorCall) + } + ///Creates a new call builder for the [`gameData`] function. + pub fn gameData(&self) -> alloy_contract::SolCallBuilder<&P, gameDataCall, N> { + self.call_builder(&gameDataCall) + } + ///Creates a new call builder for the [`gameType`] function. + pub fn gameType(&self) -> alloy_contract::SolCallBuilder<&P, gameTypeCall, N> { + self.call_builder(&gameTypeCall) + } + ///Creates a new call builder for the [`getChallengerDuration`] function. + pub fn getChallengerDuration( + &self, + _claimIndex: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, getChallengerDurationCall, N> { + self.call_builder( + &getChallengerDurationCall { + _claimIndex, + }, + ) + } + ///Creates a new call builder for the [`getNumToResolve`] function. + pub fn getNumToResolve( + &self, + _claimIndex: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, getNumToResolveCall, N> { + self.call_builder(&getNumToResolveCall { _claimIndex }) + } + ///Creates a new call builder for the [`getRequiredBond`] function. + pub fn getRequiredBond( + &self, + _position: ::RustType, + ) -> alloy_contract::SolCallBuilder<&P, getRequiredBondCall, N> { + self.call_builder(&getRequiredBondCall { _position }) + } + ///Creates a new call builder for the [`hasUnlockedCredit`] function. + pub fn hasUnlockedCredit( + &self, + _0: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, hasUnlockedCreditCall, N> { + self.call_builder(&hasUnlockedCreditCall(_0)) + } + ///Creates a new call builder for the [`initialize`] function. + pub fn initialize( + &self, + ) -> alloy_contract::SolCallBuilder<&P, initializeCall, N> { + self.call_builder(&initializeCall) + } + ///Creates a new call builder for the [`l1Head`] function. + pub fn l1Head(&self) -> alloy_contract::SolCallBuilder<&P, l1HeadCall, N> { + self.call_builder(&l1HeadCall) + } + ///Creates a new call builder for the [`l2BlockNumber`] function. + pub fn l2BlockNumber( + &self, + ) -> alloy_contract::SolCallBuilder<&P, l2BlockNumberCall, N> { + self.call_builder(&l2BlockNumberCall) + } + ///Creates a new call builder for the [`l2BlockNumberChallenged`] function. + pub fn l2BlockNumberChallenged( + &self, + ) -> alloy_contract::SolCallBuilder<&P, l2BlockNumberChallengedCall, N> { + self.call_builder(&l2BlockNumberChallengedCall) + } + ///Creates a new call builder for the [`l2BlockNumberChallenger`] function. + pub fn l2BlockNumberChallenger( + &self, + ) -> alloy_contract::SolCallBuilder<&P, l2BlockNumberChallengerCall, N> { + self.call_builder(&l2BlockNumberChallengerCall) + } + ///Creates a new call builder for the [`l2ChainId`] function. + pub fn l2ChainId(&self) -> alloy_contract::SolCallBuilder<&P, l2ChainIdCall, N> { + self.call_builder(&l2ChainIdCall) + } + ///Creates a new call builder for the [`l2SequenceNumber`] function. + pub fn l2SequenceNumber( + &self, + ) -> alloy_contract::SolCallBuilder<&P, l2SequenceNumberCall, N> { + self.call_builder(&l2SequenceNumberCall) + } + ///Creates a new call builder for the [`maxClockDuration`] function. + pub fn maxClockDuration( + &self, + ) -> alloy_contract::SolCallBuilder<&P, maxClockDurationCall, N> { + self.call_builder(&maxClockDurationCall) + } + ///Creates a new call builder for the [`maxGameDepth`] function. + pub fn maxGameDepth( + &self, + ) -> alloy_contract::SolCallBuilder<&P, maxGameDepthCall, N> { + self.call_builder(&maxGameDepthCall) + } + ///Creates a new call builder for the [`r#move`] function. + pub fn r#move( + &self, + _disputed: ::RustType, + _challengeIndex: alloy::sol_types::private::primitives::aliases::U256, + _claim: ::RustType, + _isAttack: bool, + ) -> alloy_contract::SolCallBuilder<&P, moveCall, N> { + self.call_builder( + &moveCall { + _disputed, + _challengeIndex, + _claim, + _isAttack, + }, + ) + } + ///Creates a new call builder for the [`normalModeCredit`] function. + pub fn normalModeCredit( + &self, + _0: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, normalModeCreditCall, N> { + self.call_builder(&normalModeCreditCall(_0)) + } + ///Creates a new call builder for the [`refundModeCredit`] function. + pub fn refundModeCredit( + &self, + _0: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, refundModeCreditCall, N> { + self.call_builder(&refundModeCreditCall(_0)) + } + ///Creates a new call builder for the [`resolutionCheckpoints`] function. + pub fn resolutionCheckpoints( + &self, + _0: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, resolutionCheckpointsCall, N> { + self.call_builder(&resolutionCheckpointsCall(_0)) + } + ///Creates a new call builder for the [`resolve`] function. + pub fn resolve(&self) -> alloy_contract::SolCallBuilder<&P, resolveCall, N> { + self.call_builder(&resolveCall) + } + ///Creates a new call builder for the [`resolveClaim`] function. + pub fn resolveClaim( + &self, + _claimIndex: alloy::sol_types::private::primitives::aliases::U256, + _numToResolve: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, resolveClaimCall, N> { + self.call_builder( + &resolveClaimCall { + _claimIndex, + _numToResolve, + }, + ) + } + ///Creates a new call builder for the [`resolvedAt`] function. + pub fn resolvedAt( + &self, + ) -> alloy_contract::SolCallBuilder<&P, resolvedAtCall, N> { + self.call_builder(&resolvedAtCall) + } + ///Creates a new call builder for the [`resolvedSubgames`] function. + pub fn resolvedSubgames( + &self, + _0: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, resolvedSubgamesCall, N> { + self.call_builder(&resolvedSubgamesCall(_0)) + } + ///Creates a new call builder for the [`rootClaim`] function. + pub fn rootClaim(&self) -> alloy_contract::SolCallBuilder<&P, rootClaimCall, N> { + self.call_builder(&rootClaimCall) + } + ///Creates a new call builder for the [`splitDepth`] function. + pub fn splitDepth( + &self, + ) -> alloy_contract::SolCallBuilder<&P, splitDepthCall, N> { + self.call_builder(&splitDepthCall) + } + ///Creates a new call builder for the [`startingBlockNumber`] function. + pub fn startingBlockNumber( + &self, + ) -> alloy_contract::SolCallBuilder<&P, startingBlockNumberCall, N> { + self.call_builder(&startingBlockNumberCall) + } + ///Creates a new call builder for the [`startingOutputRoot`] function. + pub fn startingOutputRoot( + &self, + ) -> alloy_contract::SolCallBuilder<&P, startingOutputRootCall, N> { + self.call_builder(&startingOutputRootCall) + } + ///Creates a new call builder for the [`startingRootHash`] function. + pub fn startingRootHash( + &self, + ) -> alloy_contract::SolCallBuilder<&P, startingRootHashCall, N> { + self.call_builder(&startingRootHashCall) + } + ///Creates a new call builder for the [`status`] function. + pub fn status(&self) -> alloy_contract::SolCallBuilder<&P, statusCall, N> { + self.call_builder(&statusCall) + } + ///Creates a new call builder for the [`step`] function. + pub fn step( + &self, + _claimIndex: alloy::sol_types::private::primitives::aliases::U256, + _isAttack: bool, + _stateData: alloy::sol_types::private::Bytes, + _proof: alloy::sol_types::private::Bytes, + ) -> alloy_contract::SolCallBuilder<&P, stepCall, N> { + self.call_builder( + &stepCall { + _claimIndex, + _isAttack, + _stateData, + _proof, + }, + ) + } + ///Creates a new call builder for the [`subgames`] function. + pub fn subgames( + &self, + _0: alloy::sol_types::private::primitives::aliases::U256, + _1: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, subgamesCall, N> { + self.call_builder(&subgamesCall { _0, _1 }) + } + ///Creates a new call builder for the [`version`] function. + pub fn version(&self) -> alloy_contract::SolCallBuilder<&P, versionCall, N> { + self.call_builder(&versionCall) + } + ///Creates a new call builder for the [`vm`] function. + pub fn vm(&self) -> alloy_contract::SolCallBuilder<&P, vmCall, N> { + self.call_builder(&vmCall) + } + ///Creates a new call builder for the [`wasRespectedGameTypeWhenCreated`] function. + pub fn wasRespectedGameTypeWhenCreated( + &self, + ) -> alloy_contract::SolCallBuilder<&P, wasRespectedGameTypeWhenCreatedCall, N> { + self.call_builder(&wasRespectedGameTypeWhenCreatedCall) + } + ///Creates a new call builder for the [`weth`] function. + pub fn weth(&self) -> alloy_contract::SolCallBuilder<&P, wethCall, N> { + self.call_builder(&wethCall) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > FaultDisputeGameV2Instance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + ///Creates a new event filter for the [`GameClosed`] event. + pub fn GameClosed_filter(&self) -> alloy_contract::Event<&P, GameClosed, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`Move`] event. + pub fn Move_filter(&self) -> alloy_contract::Event<&P, Move, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`Resolved`] event. + pub fn Resolved_filter(&self) -> alloy_contract::Event<&P, Resolved, N> { + self.event_filter::() + } + } +} diff --git a/bindings/rust/src/features.rs b/bindings/rust/src/features.rs new file mode 100644 index 000000000..feb875807 --- /dev/null +++ b/bindings/rust/src/features.rs @@ -0,0 +1,215 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface Features {} +``` + +...which was generated by the following JSON ABI: +```json +[] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod Features { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`-`7`\x0B\x82\x82\x829\x80Q`\0\x1A`s\x14`*WcNH{q`\xE0\x1B`\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`\0\x80\xFD\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + 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`\0\x80\xFD\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`Features`](self) contract instance. + +See the [wrapper's documentation](`FeaturesInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> FeaturesInstance { + FeaturesInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + FeaturesInstance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + FeaturesInstance::::deploy_builder(__provider) + } + /**A [`Features`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`Features`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct FeaturesInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for FeaturesInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("FeaturesInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > FeaturesInstance { + /**Creates a new wrapper around an on-chain [`Features`](self) contract instance. + +See the [wrapper's documentation](`FeaturesInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl FeaturesInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> FeaturesInstance { + FeaturesInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > FeaturesInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > FeaturesInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + } +} diff --git a/bindings/rust/src/fee_disburser.rs b/bindings/rust/src/fee_disburser.rs new file mode 100644 index 000000000..f7ca6ef37 --- /dev/null +++ b/bindings/rust/src/fee_disburser.rs @@ -0,0 +1,3164 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface FeeDisburser { + error FeeVaultMustWithdrawToFeeDisburser(); + error FeeVaultMustWithdrawToL2(); + error IntervalNotReached(); + error IntervalTooLow(); + error ZeroAddress(); + + event FeesDisbursed(uint256 disbursementTime, uint256 deprecated, uint256 totalFeesDisbursed); + event FeesReceived(address indexed sender, uint256 amount); + event NoFeesCollected(); + + constructor(address l1Wallet, uint256 feeDisbursementInterval); + + receive() external payable; + + function FEE_DISBURSEMENT_INTERVAL() external view returns (uint256); + function L1_WALLET() external view returns (address); + function WITHDRAWAL_MIN_GAS() external view returns (uint32); + function disburseFees() external; + function lastDisbursementTime() external view returns (uint256); + function netFeeRevenue() external view returns (uint256); + function version() external pure returns (string memory); +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "constructor", + "inputs": [ + { + "name": "l1Wallet", + "type": "address", + "internalType": "address" + }, + { + "name": "feeDisbursementInterval", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "receive", + "stateMutability": "payable" + }, + { + "type": "function", + "name": "FEE_DISBURSEMENT_INTERVAL", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "L1_WALLET", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "WITHDRAWAL_MIN_GAS", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint32", + "internalType": "uint32" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "disburseFees", + "inputs": [], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "lastDisbursementTime", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "netFeeRevenue", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "version", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "pure" + }, + { + "type": "event", + "name": "FeesDisbursed", + "inputs": [ + { + "name": "disbursementTime", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + }, + { + "name": "deprecated", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + }, + { + "name": "totalFeesDisbursed", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "FeesReceived", + "inputs": [ + { + "name": "sender", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "NoFeesCollected", + "inputs": [], + "anonymous": false + }, + { + "type": "error", + "name": "FeeVaultMustWithdrawToFeeDisburser", + "inputs": [] + }, + { + "type": "error", + "name": "FeeVaultMustWithdrawToL2", + "inputs": [] + }, + { + "type": "error", + "name": "IntervalNotReached", + "inputs": [] + }, + { + "type": "error", + "name": "IntervalTooLow", + "inputs": [] + }, + { + "type": "error", + "name": "ZeroAddress", + "inputs": [] + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod FeeDisburser { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x60c060405234801561000f575f80fd5b506040516108f93803806108f983398101604081905261002e9161008f565b6001600160a01b0382166100555760405163d92e233d60e01b815260040160405180910390fd5b62015180811015610079576040516352063f8560e11b815260040160405180910390fd5b6001600160a01b0390911660805260a0526100c6565b5f80604083850312156100a0575f80fd5b82516001600160a01b03811681146100b6575f80fd5b6020939093015192949293505050565b60805160a0516108056100f45f395f8181610156015261020501525f818160c2015261034e01526108055ff3fe608060405260043610610071575f3560e01c806354664de51161004c57806354664de51461014557806354fd4d5014610178578063ad41d09c146101c3578063b87ea8d4146101ed575f80fd5b806336f1a6e5146100b1578063394d27311461010e578063447eb5ac14610130575f80fd5b366100ad5760405134815233907f2ccfc58c2cef4ee590b5f16be0548cc54afc12e1c66a67b362b7d640fd16bb2d9060200160405180910390a2005b5f80fd5b3480156100bc575f80fd5b506100e47f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b348015610119575f80fd5b506101225f5481565b604051908152602001610105565b34801561013b575f80fd5b5061012260015481565b348015610150575f80fd5b506101227f000000000000000000000000000000000000000000000000000000000000000081565b348015610183575f80fd5b50604080518082018252600581527f312e302e300000000000000000000000000000000000000000000000000000006020820152905161010591906106c9565b3480156101ce575f80fd5b506101d86188b881565b60405163ffffffff9091168152602001610105565b3480156101f8575f80fd5b50610201610203565b005b7f00000000000000000000000000000000000000000000000000000000000000005f5461023091906106e2565b421015610269576040517fc7a06d5f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6102867342000000000000000000000000000000000000116103f8565b6102a37342000000000000000000000000000000000000196103f8565b6102c073420000000000000000000000000000000000001a6103f8565b475f8190036102f4576040517f8c887b1215d5e6b119c1c1008fe1d0919b4c438301d5a0357362a13fb56f6a40905f90a150565b425f90815560408051602081018252918252517fe11013dd0000000000000000000000000000000000000000000000000000000081527342000000000000000000000000000000000000109163e11013dd91479161037a917f0000000000000000000000000000000000000000000000000000000000000000916188b891600401610720565b5f604051808303818588803b158015610391575f80fd5b505af11580156103a3573d5f803e3d5ffd5b50505050507fe155e054cfe69655d6d2f8bbfb856aa8cdf49ecbea6557901533364539caad945f545f836040516103ed939291909283526020830191909152604082015260600190565b60405180910390a150565b60018173ffffffffffffffffffffffffffffffffffffffff1663d0e12f906040518163ffffffff1660e01b8152600401602060405180830381865afa158015610443573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104679190610790565b600181111561047857610478610763565b146104af576040517f72e01a1900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16630d9019e16040518163ffffffff1660e01b8152600401602060405180830381865afa15801561050f573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061053391906107ae565b73ffffffffffffffffffffffffffffffffffffffff1614610580576040517fc9bb076d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1663d3e5792b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105c9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105ed91906107e1565b8173ffffffffffffffffffffffffffffffffffffffff16311061067a578073ffffffffffffffffffffffffffffffffffffffff16633ccfd60b6040518163ffffffff1660e01b81526004016020604051808303815f875af1158015610654573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061067891906107e1565b505b50565b5f81518084528060208401602086015e5f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b602081525f6106db602083018461067d565b9392505050565b8082018082111561071a577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b92915050565b73ffffffffffffffffffffffffffffffffffffffff8416815263ffffffff83166020820152606060408201525f61075a606083018461067d565b95945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b5f602082840312156107a0575f80fd5b8151600281106106db575f80fd5b5f602082840312156107be575f80fd5b815173ffffffffffffffffffffffffffffffffffffffff811681146106db575f80fd5b5f602082840312156107f1575f80fd5b505191905056fea164736f6c6343000819000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\xC0`@R4\x80\x15a\0\x0FW_\x80\xFD[P`@Qa\x08\xF98\x03\x80a\x08\xF9\x839\x81\x01`@\x81\x90Ra\0.\x91a\0\x8FV[`\x01`\x01`\xA0\x1B\x03\x82\x16a\0UW`@Qc\xD9.#=`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[b\x01Q\x80\x81\x10\x15a\0yW`@QcR\x06?\x85`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xA0\x1B\x03\x90\x91\x16`\x80R`\xA0Ra\0\xC6V[_\x80`@\x83\x85\x03\x12\x15a\0\xA0W_\x80\xFD[\x82Q`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a\0\xB6W_\x80\xFD[` \x93\x90\x93\x01Q\x92\x94\x92\x93PPPV[`\x80Q`\xA0Qa\x08\x05a\0\xF4_9_\x81\x81a\x01V\x01Ra\x02\x05\x01R_\x81\x81`\xC2\x01Ra\x03N\x01Ra\x08\x05_\xF3\xFE`\x80`@R`\x046\x10a\0qW_5`\xE0\x1C\x80cTfM\xE5\x11a\0LW\x80cTfM\xE5\x14a\x01EW\x80cT\xFDMP\x14a\x01xW\x80c\xADA\xD0\x9C\x14a\x01\xC3W\x80c\xB8~\xA8\xD4\x14a\x01\xEDW_\x80\xFD[\x80c6\xF1\xA6\xE5\x14a\0\xB1W\x80c9M'1\x14a\x01\x0EW\x80cD~\xB5\xAC\x14a\x010W_\x80\xFD[6a\0\xADW`@Q4\x81R3\x90\x7F,\xCF\xC5\x8C,\xEFN\xE5\x90\xB5\xF1k\xE0T\x8C\xC5J\xFC\x12\xE1\xC6jg\xB3b\xB7\xD6@\xFD\x16\xBB-\x90` \x01`@Q\x80\x91\x03\x90\xA2\0[_\x80\xFD[4\x80\x15a\0\xBCW_\x80\xFD[Pa\0\xE4\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[4\x80\x15a\x01\x19W_\x80\xFD[Pa\x01\"_T\x81V[`@Q\x90\x81R` \x01a\x01\x05V[4\x80\x15a\x01;W_\x80\xFD[Pa\x01\"`\x01T\x81V[4\x80\x15a\x01PW_\x80\xFD[Pa\x01\"\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[4\x80\x15a\x01\x83W_\x80\xFD[P`@\x80Q\x80\x82\x01\x82R`\x05\x81R\x7F1.0.0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0` \x82\x01R\x90Qa\x01\x05\x91\x90a\x06\xC9V[4\x80\x15a\x01\xCEW_\x80\xFD[Pa\x01\xD8a\x88\xB8\x81V[`@Qc\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01a\x01\x05V[4\x80\x15a\x01\xF8W_\x80\xFD[Pa\x02\x01a\x02\x03V[\0[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0_Ta\x020\x91\x90a\x06\xE2V[B\x10\x15a\x02iW`@Q\x7F\xC7\xA0m_\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\x01`@Q\x80\x91\x03\x90\xFD[a\x02\x86sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x11a\x03\xF8V[a\x02\xA3sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x19a\x03\xF8V[a\x02\xC0sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x1Aa\x03\xF8V[G_\x81\x90\x03a\x02\xF4W`@Q\x7F\x8C\x88{\x12\x15\xD5\xE6\xB1\x19\xC1\xC1\0\x8F\xE1\xD0\x91\x9BLC\x83\x01\xD5\xA05sb\xA1?\xB5oj@\x90_\x90\xA1PV[B_\x90\x81U`@\x80Q` \x81\x01\x82R\x91\x82RQ\x7F\xE1\x10\x13\xDD\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\x81RsB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x10\x91c\xE1\x10\x13\xDD\x91G\x91a\x03z\x91\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x91a\x88\xB8\x91`\x04\x01a\x07 V[_`@Q\x80\x83\x03\x81\x85\x88\x80;\x15\x80\x15a\x03\x91W_\x80\xFD[PZ\xF1\x15\x80\x15a\x03\xA3W=_\x80>=_\xFD[PPPPP\x7F\xE1U\xE0T\xCF\xE6\x96U\xD6\xD2\xF8\xBB\xFB\x85j\xA8\xCD\xF4\x9E\xCB\xEAeW\x90\x1536E9\xCA\xAD\x94_T_\x83`@Qa\x03\xED\x93\x92\x91\x90\x92\x83R` \x83\x01\x91\x90\x91R`@\x82\x01R``\x01\x90V[`@Q\x80\x91\x03\x90\xA1PV[`\x01\x81s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xD0\xE1/\x90`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x04CW=_\x80>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x04g\x91\x90a\x07\x90V[`\x01\x81\x11\x15a\x04xWa\x04xa\x07cV[\x14a\x04\xAFW`@Q\x7Fr\xE0\x1A\x19\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\x01`@Q\x80\x91\x03\x90\xFD[0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\r\x90\x19\xE1`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x05\x0FW=_\x80>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x053\x91\x90a\x07\xAEV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14a\x05\x80W`@Q\x7F\xC9\xBB\x07m\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\x01`@Q\x80\x91\x03\x90\xFD[\x80s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xD3\xE5y+`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x05\xC9W=_\x80>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x05\xED\x91\x90a\x07\xE1V[\x81s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x161\x10a\x06zW\x80s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c<\xCF\xD6\x0B`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81_\x87Z\xF1\x15\x80\x15a\x06TW=_\x80>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x06x\x91\x90a\x07\xE1V[P[PV[_\x81Q\x80\x84R\x80` \x84\x01` \x86\x01^_` \x82\x86\x01\x01R` \x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0`\x1F\x83\x01\x16\x85\x01\x01\x91PP\x92\x91PPV[` \x81R_a\x06\xDB` \x83\x01\x84a\x06}V[\x93\x92PPPV[\x80\x82\x01\x80\x82\x11\x15a\x07\x1AW\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_R`\x11`\x04R`$_\xFD[\x92\x91PPV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x16\x81Rc\xFF\xFF\xFF\xFF\x83\x16` \x82\x01R```@\x82\x01R_a\x07Z``\x83\x01\x84a\x06}V[\x95\x94PPPPPV[\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_R`!`\x04R`$_\xFD[_` \x82\x84\x03\x12\x15a\x07\xA0W_\x80\xFD[\x81Q`\x02\x81\x10a\x06\xDBW_\x80\xFD[_` \x82\x84\x03\x12\x15a\x07\xBEW_\x80\xFD[\x81Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x06\xDBW_\x80\xFD[_` \x82\x84\x03\x12\x15a\x07\xF1W_\x80\xFD[PQ\x91\x90PV\xFE\xA1dsolcC\0\x08\x19\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x608060405260043610610071575f3560e01c806354664de51161004c57806354664de51461014557806354fd4d5014610178578063ad41d09c146101c3578063b87ea8d4146101ed575f80fd5b806336f1a6e5146100b1578063394d27311461010e578063447eb5ac14610130575f80fd5b366100ad5760405134815233907f2ccfc58c2cef4ee590b5f16be0548cc54afc12e1c66a67b362b7d640fd16bb2d9060200160405180910390a2005b5f80fd5b3480156100bc575f80fd5b506100e47f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b348015610119575f80fd5b506101225f5481565b604051908152602001610105565b34801561013b575f80fd5b5061012260015481565b348015610150575f80fd5b506101227f000000000000000000000000000000000000000000000000000000000000000081565b348015610183575f80fd5b50604080518082018252600581527f312e302e300000000000000000000000000000000000000000000000000000006020820152905161010591906106c9565b3480156101ce575f80fd5b506101d86188b881565b60405163ffffffff9091168152602001610105565b3480156101f8575f80fd5b50610201610203565b005b7f00000000000000000000000000000000000000000000000000000000000000005f5461023091906106e2565b421015610269576040517fc7a06d5f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6102867342000000000000000000000000000000000000116103f8565b6102a37342000000000000000000000000000000000000196103f8565b6102c073420000000000000000000000000000000000001a6103f8565b475f8190036102f4576040517f8c887b1215d5e6b119c1c1008fe1d0919b4c438301d5a0357362a13fb56f6a40905f90a150565b425f90815560408051602081018252918252517fe11013dd0000000000000000000000000000000000000000000000000000000081527342000000000000000000000000000000000000109163e11013dd91479161037a917f0000000000000000000000000000000000000000000000000000000000000000916188b891600401610720565b5f604051808303818588803b158015610391575f80fd5b505af11580156103a3573d5f803e3d5ffd5b50505050507fe155e054cfe69655d6d2f8bbfb856aa8cdf49ecbea6557901533364539caad945f545f836040516103ed939291909283526020830191909152604082015260600190565b60405180910390a150565b60018173ffffffffffffffffffffffffffffffffffffffff1663d0e12f906040518163ffffffff1660e01b8152600401602060405180830381865afa158015610443573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104679190610790565b600181111561047857610478610763565b146104af576040517f72e01a1900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16630d9019e16040518163ffffffff1660e01b8152600401602060405180830381865afa15801561050f573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061053391906107ae565b73ffffffffffffffffffffffffffffffffffffffff1614610580576040517fc9bb076d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1663d3e5792b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105c9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105ed91906107e1565b8173ffffffffffffffffffffffffffffffffffffffff16311061067a578073ffffffffffffffffffffffffffffffffffffffff16633ccfd60b6040518163ffffffff1660e01b81526004016020604051808303815f875af1158015610654573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061067891906107e1565b505b50565b5f81518084528060208401602086015e5f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b602081525f6106db602083018461067d565b9392505050565b8082018082111561071a577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b92915050565b73ffffffffffffffffffffffffffffffffffffffff8416815263ffffffff83166020820152606060408201525f61075a606083018461067d565b95945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b5f602082840312156107a0575f80fd5b8151600281106106db575f80fd5b5f602082840312156107be575f80fd5b815173ffffffffffffffffffffffffffffffffffffffff811681146106db575f80fd5b5f602082840312156107f1575f80fd5b505191905056fea164736f6c6343000819000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R`\x046\x10a\0qW_5`\xE0\x1C\x80cTfM\xE5\x11a\0LW\x80cTfM\xE5\x14a\x01EW\x80cT\xFDMP\x14a\x01xW\x80c\xADA\xD0\x9C\x14a\x01\xC3W\x80c\xB8~\xA8\xD4\x14a\x01\xEDW_\x80\xFD[\x80c6\xF1\xA6\xE5\x14a\0\xB1W\x80c9M'1\x14a\x01\x0EW\x80cD~\xB5\xAC\x14a\x010W_\x80\xFD[6a\0\xADW`@Q4\x81R3\x90\x7F,\xCF\xC5\x8C,\xEFN\xE5\x90\xB5\xF1k\xE0T\x8C\xC5J\xFC\x12\xE1\xC6jg\xB3b\xB7\xD6@\xFD\x16\xBB-\x90` \x01`@Q\x80\x91\x03\x90\xA2\0[_\x80\xFD[4\x80\x15a\0\xBCW_\x80\xFD[Pa\0\xE4\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[4\x80\x15a\x01\x19W_\x80\xFD[Pa\x01\"_T\x81V[`@Q\x90\x81R` \x01a\x01\x05V[4\x80\x15a\x01;W_\x80\xFD[Pa\x01\"`\x01T\x81V[4\x80\x15a\x01PW_\x80\xFD[Pa\x01\"\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[4\x80\x15a\x01\x83W_\x80\xFD[P`@\x80Q\x80\x82\x01\x82R`\x05\x81R\x7F1.0.0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0` \x82\x01R\x90Qa\x01\x05\x91\x90a\x06\xC9V[4\x80\x15a\x01\xCEW_\x80\xFD[Pa\x01\xD8a\x88\xB8\x81V[`@Qc\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01a\x01\x05V[4\x80\x15a\x01\xF8W_\x80\xFD[Pa\x02\x01a\x02\x03V[\0[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0_Ta\x020\x91\x90a\x06\xE2V[B\x10\x15a\x02iW`@Q\x7F\xC7\xA0m_\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\x01`@Q\x80\x91\x03\x90\xFD[a\x02\x86sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x11a\x03\xF8V[a\x02\xA3sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x19a\x03\xF8V[a\x02\xC0sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x1Aa\x03\xF8V[G_\x81\x90\x03a\x02\xF4W`@Q\x7F\x8C\x88{\x12\x15\xD5\xE6\xB1\x19\xC1\xC1\0\x8F\xE1\xD0\x91\x9BLC\x83\x01\xD5\xA05sb\xA1?\xB5oj@\x90_\x90\xA1PV[B_\x90\x81U`@\x80Q` \x81\x01\x82R\x91\x82RQ\x7F\xE1\x10\x13\xDD\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\x81RsB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x10\x91c\xE1\x10\x13\xDD\x91G\x91a\x03z\x91\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x91a\x88\xB8\x91`\x04\x01a\x07 V[_`@Q\x80\x83\x03\x81\x85\x88\x80;\x15\x80\x15a\x03\x91W_\x80\xFD[PZ\xF1\x15\x80\x15a\x03\xA3W=_\x80>=_\xFD[PPPPP\x7F\xE1U\xE0T\xCF\xE6\x96U\xD6\xD2\xF8\xBB\xFB\x85j\xA8\xCD\xF4\x9E\xCB\xEAeW\x90\x1536E9\xCA\xAD\x94_T_\x83`@Qa\x03\xED\x93\x92\x91\x90\x92\x83R` \x83\x01\x91\x90\x91R`@\x82\x01R``\x01\x90V[`@Q\x80\x91\x03\x90\xA1PV[`\x01\x81s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xD0\xE1/\x90`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x04CW=_\x80>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x04g\x91\x90a\x07\x90V[`\x01\x81\x11\x15a\x04xWa\x04xa\x07cV[\x14a\x04\xAFW`@Q\x7Fr\xE0\x1A\x19\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\x01`@Q\x80\x91\x03\x90\xFD[0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\r\x90\x19\xE1`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x05\x0FW=_\x80>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x053\x91\x90a\x07\xAEV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14a\x05\x80W`@Q\x7F\xC9\xBB\x07m\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\x01`@Q\x80\x91\x03\x90\xFD[\x80s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xD3\xE5y+`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x05\xC9W=_\x80>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x05\xED\x91\x90a\x07\xE1V[\x81s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x161\x10a\x06zW\x80s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c<\xCF\xD6\x0B`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81_\x87Z\xF1\x15\x80\x15a\x06TW=_\x80>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x06x\x91\x90a\x07\xE1V[P[PV[_\x81Q\x80\x84R\x80` \x84\x01` \x86\x01^_` \x82\x86\x01\x01R` \x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0`\x1F\x83\x01\x16\x85\x01\x01\x91PP\x92\x91PPV[` \x81R_a\x06\xDB` \x83\x01\x84a\x06}V[\x93\x92PPPV[\x80\x82\x01\x80\x82\x11\x15a\x07\x1AW\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_R`\x11`\x04R`$_\xFD[\x92\x91PPV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x16\x81Rc\xFF\xFF\xFF\xFF\x83\x16` \x82\x01R```@\x82\x01R_a\x07Z``\x83\x01\x84a\x06}V[\x95\x94PPPPPV[\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_R`!`\x04R`$_\xFD[_` \x82\x84\x03\x12\x15a\x07\xA0W_\x80\xFD[\x81Q`\x02\x81\x10a\x06\xDBW_\x80\xFD[_` \x82\x84\x03\x12\x15a\x07\xBEW_\x80\xFD[\x81Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x06\xDBW_\x80\xFD[_` \x82\x84\x03\x12\x15a\x07\xF1W_\x80\xFD[PQ\x91\x90PV\xFE\xA1dsolcC\0\x08\x19\0\n", + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `FeeVaultMustWithdrawToFeeDisburser()` and selector `0xc9bb076d`. +```solidity +error FeeVaultMustWithdrawToFeeDisburser(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct FeeVaultMustWithdrawToFeeDisburser; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: FeeVaultMustWithdrawToFeeDisburser) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for FeeVaultMustWithdrawToFeeDisburser { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for FeeVaultMustWithdrawToFeeDisburser { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "FeeVaultMustWithdrawToFeeDisburser()"; + const SELECTOR: [u8; 4] = [201u8, 187u8, 7u8, 109u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `FeeVaultMustWithdrawToL2()` and selector `0x72e01a19`. +```solidity +error FeeVaultMustWithdrawToL2(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct FeeVaultMustWithdrawToL2; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: FeeVaultMustWithdrawToL2) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for FeeVaultMustWithdrawToL2 { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for FeeVaultMustWithdrawToL2 { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "FeeVaultMustWithdrawToL2()"; + const SELECTOR: [u8; 4] = [114u8, 224u8, 26u8, 25u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `IntervalNotReached()` and selector `0xc7a06d5f`. +```solidity +error IntervalNotReached(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct IntervalNotReached; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: IntervalNotReached) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for IntervalNotReached { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for IntervalNotReached { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "IntervalNotReached()"; + const SELECTOR: [u8; 4] = [199u8, 160u8, 109u8, 95u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `IntervalTooLow()` and selector `0xa40c7f0a`. +```solidity +error IntervalTooLow(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct IntervalTooLow; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: IntervalTooLow) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for IntervalTooLow { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for IntervalTooLow { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "IntervalTooLow()"; + const SELECTOR: [u8; 4] = [164u8, 12u8, 127u8, 10u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ZeroAddress()` and selector `0xd92e233d`. +```solidity +error ZeroAddress(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ZeroAddress; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ZeroAddress) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ZeroAddress { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ZeroAddress { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ZeroAddress()"; + const SELECTOR: [u8; 4] = [217u8, 46u8, 35u8, 61u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `FeesDisbursed(uint256,uint256,uint256)` and selector `0xe155e054cfe69655d6d2f8bbfb856aa8cdf49ecbea6557901533364539caad94`. +```solidity +event FeesDisbursed(uint256 disbursementTime, uint256 deprecated, uint256 totalFeesDisbursed); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct FeesDisbursed { + #[allow(missing_docs)] + pub disbursementTime: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub deprecated: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub totalFeesDisbursed: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for FeesDisbursed { + type DataTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + ); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,); + const SIGNATURE: &'static str = "FeesDisbursed(uint256,uint256,uint256)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 225u8, 85u8, 224u8, 84u8, 207u8, 230u8, 150u8, 85u8, 214u8, 210u8, 248u8, + 187u8, 251u8, 133u8, 106u8, 168u8, 205u8, 244u8, 158u8, 203u8, 234u8, + 101u8, 87u8, 144u8, 21u8, 51u8, 54u8, 69u8, 57u8, 202u8, 173u8, 148u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + disbursementTime: data.0, + deprecated: data.1, + totalFeesDisbursed: data.2, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.disbursementTime), + as alloy_sol_types::SolType>::tokenize(&self.deprecated), + as alloy_sol_types::SolType>::tokenize(&self.totalFeesDisbursed), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(),) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for FeesDisbursed { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&FeesDisbursed> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &FeesDisbursed) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `FeesReceived(address,uint256)` and selector `0x2ccfc58c2cef4ee590b5f16be0548cc54afc12e1c66a67b362b7d640fd16bb2d`. +```solidity +event FeesReceived(address indexed sender, uint256 amount); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct FeesReceived { + #[allow(missing_docs)] + pub sender: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub amount: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for FeesReceived { + type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "FeesReceived(address,uint256)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 44u8, 207u8, 197u8, 140u8, 44u8, 239u8, 78u8, 229u8, 144u8, 181u8, 241u8, + 107u8, 224u8, 84u8, 140u8, 197u8, 74u8, 252u8, 18u8, 225u8, 198u8, 106u8, + 103u8, 179u8, 98u8, 183u8, 214u8, 64u8, 253u8, 22u8, 187u8, 45u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + sender: topics.1, + amount: data.0, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.amount), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.sender.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.sender, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for FeesReceived { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&FeesReceived> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &FeesReceived) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `NoFeesCollected()` and selector `0x8c887b1215d5e6b119c1c1008fe1d0919b4c438301d5a0357362a13fb56f6a40`. +```solidity +event NoFeesCollected(); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct NoFeesCollected; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for NoFeesCollected { + type DataTuple<'a> = (); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,); + const SIGNATURE: &'static str = "NoFeesCollected()"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 140u8, 136u8, 123u8, 18u8, 21u8, 213u8, 230u8, 177u8, 25u8, 193u8, 193u8, + 0u8, 143u8, 225u8, 208u8, 145u8, 155u8, 76u8, 67u8, 131u8, 1u8, 213u8, + 160u8, 53u8, 115u8, 98u8, 161u8, 63u8, 181u8, 111u8, 106u8, 64u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self {} + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + () + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(),) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for NoFeesCollected { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&NoFeesCollected> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &NoFeesCollected) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + /**Constructor`. +```solidity +constructor(address l1Wallet, uint256 feeDisbursementInterval); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct constructorCall { + #[allow(missing_docs)] + pub l1Wallet: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub feeDisbursementInterval: alloy::sol_types::private::primitives::aliases::U256, + } + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: constructorCall) -> Self { + (value.l1Wallet, value.feeDisbursementInterval) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for constructorCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + l1Wallet: tuple.0, + feeDisbursementInterval: tuple.1, + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolConstructor for constructorCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.l1Wallet, + ), + as alloy_sol_types::SolType>::tokenize( + &self.feeDisbursementInterval, + ), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `FEE_DISBURSEMENT_INTERVAL()` and selector `0x54664de5`. +```solidity +function FEE_DISBURSEMENT_INTERVAL() external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct FEE_DISBURSEMENT_INTERVALCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`FEE_DISBURSEMENT_INTERVAL()`](FEE_DISBURSEMENT_INTERVALCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct FEE_DISBURSEMENT_INTERVALReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: FEE_DISBURSEMENT_INTERVALCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for FEE_DISBURSEMENT_INTERVALCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: FEE_DISBURSEMENT_INTERVALReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for FEE_DISBURSEMENT_INTERVALReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for FEE_DISBURSEMENT_INTERVALCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "FEE_DISBURSEMENT_INTERVAL()"; + const SELECTOR: [u8; 4] = [84u8, 102u8, 77u8, 229u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: FEE_DISBURSEMENT_INTERVALReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: FEE_DISBURSEMENT_INTERVALReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `L1_WALLET()` and selector `0x36f1a6e5`. +```solidity +function L1_WALLET() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct L1_WALLETCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`L1_WALLET()`](L1_WALLETCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct L1_WALLETReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: L1_WALLETCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for L1_WALLETCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: L1_WALLETReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for L1_WALLETReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for L1_WALLETCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "L1_WALLET()"; + const SELECTOR: [u8; 4] = [54u8, 241u8, 166u8, 229u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: L1_WALLETReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: L1_WALLETReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `WITHDRAWAL_MIN_GAS()` and selector `0xad41d09c`. +```solidity +function WITHDRAWAL_MIN_GAS() external view returns (uint32); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct WITHDRAWAL_MIN_GASCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`WITHDRAWAL_MIN_GAS()`](WITHDRAWAL_MIN_GASCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct WITHDRAWAL_MIN_GASReturn { + #[allow(missing_docs)] + pub _0: u32, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: WITHDRAWAL_MIN_GASCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for WITHDRAWAL_MIN_GASCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u32,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: WITHDRAWAL_MIN_GASReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for WITHDRAWAL_MIN_GASReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for WITHDRAWAL_MIN_GASCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u32; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<32>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "WITHDRAWAL_MIN_GAS()"; + const SELECTOR: [u8; 4] = [173u8, 65u8, 208u8, 156u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: WITHDRAWAL_MIN_GASReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: WITHDRAWAL_MIN_GASReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `disburseFees()` and selector `0xb87ea8d4`. +```solidity +function disburseFees() external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct disburseFeesCall; + ///Container type for the return parameters of the [`disburseFees()`](disburseFeesCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct disburseFeesReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: disburseFeesCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for disburseFeesCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: disburseFeesReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for disburseFeesReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl disburseFeesReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for disburseFeesCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = disburseFeesReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "disburseFees()"; + const SELECTOR: [u8; 4] = [184u8, 126u8, 168u8, 212u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + disburseFeesReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `lastDisbursementTime()` and selector `0x394d2731`. +```solidity +function lastDisbursementTime() external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct lastDisbursementTimeCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`lastDisbursementTime()`](lastDisbursementTimeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct lastDisbursementTimeReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: lastDisbursementTimeCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for lastDisbursementTimeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: lastDisbursementTimeReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for lastDisbursementTimeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for lastDisbursementTimeCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "lastDisbursementTime()"; + const SELECTOR: [u8; 4] = [57u8, 77u8, 39u8, 49u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: lastDisbursementTimeReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: lastDisbursementTimeReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `netFeeRevenue()` and selector `0x447eb5ac`. +```solidity +function netFeeRevenue() external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct netFeeRevenueCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`netFeeRevenue()`](netFeeRevenueCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct netFeeRevenueReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: netFeeRevenueCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for netFeeRevenueCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: netFeeRevenueReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for netFeeRevenueReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for netFeeRevenueCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "netFeeRevenue()"; + const SELECTOR: [u8; 4] = [68u8, 126u8, 181u8, 172u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: netFeeRevenueReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: netFeeRevenueReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `version()` and selector `0x54fd4d50`. +```solidity +function version() external pure returns (string memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`version()`](versionCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for versionCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::String; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "version()"; + const SELECTOR: [u8; 4] = [84u8, 253u8, 77u8, 80u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + } + }; + ///Container for all the [`FeeDisburser`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum FeeDisburserCalls { + #[allow(missing_docs)] + FEE_DISBURSEMENT_INTERVAL(FEE_DISBURSEMENT_INTERVALCall), + #[allow(missing_docs)] + L1_WALLET(L1_WALLETCall), + #[allow(missing_docs)] + WITHDRAWAL_MIN_GAS(WITHDRAWAL_MIN_GASCall), + #[allow(missing_docs)] + disburseFees(disburseFeesCall), + #[allow(missing_docs)] + lastDisbursementTime(lastDisbursementTimeCall), + #[allow(missing_docs)] + netFeeRevenue(netFeeRevenueCall), + #[allow(missing_docs)] + version(versionCall), + } + impl FeeDisburserCalls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [54u8, 241u8, 166u8, 229u8], + [57u8, 77u8, 39u8, 49u8], + [68u8, 126u8, 181u8, 172u8], + [84u8, 102u8, 77u8, 229u8], + [84u8, 253u8, 77u8, 80u8], + [173u8, 65u8, 208u8, 156u8], + [184u8, 126u8, 168u8, 212u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(L1_WALLET), + ::core::stringify!(lastDisbursementTime), + ::core::stringify!(netFeeRevenue), + ::core::stringify!(FEE_DISBURSEMENT_INTERVAL), + ::core::stringify!(version), + ::core::stringify!(WITHDRAWAL_MIN_GAS), + ::core::stringify!(disburseFees), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for FeeDisburserCalls { + const NAME: &'static str = "FeeDisburserCalls"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 7usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::FEE_DISBURSEMENT_INTERVAL(_) => { + ::SELECTOR + } + Self::L1_WALLET(_) => { + ::SELECTOR + } + Self::WITHDRAWAL_MIN_GAS(_) => { + ::SELECTOR + } + Self::disburseFees(_) => { + ::SELECTOR + } + Self::lastDisbursementTime(_) => { + ::SELECTOR + } + Self::netFeeRevenue(_) => { + ::SELECTOR + } + Self::version(_) => ::SELECTOR, + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn L1_WALLET( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(FeeDisburserCalls::L1_WALLET) + } + L1_WALLET + }, + { + fn lastDisbursementTime( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FeeDisburserCalls::lastDisbursementTime) + } + lastDisbursementTime + }, + { + fn netFeeRevenue( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FeeDisburserCalls::netFeeRevenue) + } + netFeeRevenue + }, + { + fn FEE_DISBURSEMENT_INTERVAL( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FeeDisburserCalls::FEE_DISBURSEMENT_INTERVAL) + } + FEE_DISBURSEMENT_INTERVAL + }, + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(FeeDisburserCalls::version) + } + version + }, + { + fn WITHDRAWAL_MIN_GAS( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FeeDisburserCalls::WITHDRAWAL_MIN_GAS) + } + WITHDRAWAL_MIN_GAS + }, + { + fn disburseFees( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FeeDisburserCalls::disburseFees) + } + disburseFees + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn L1_WALLET( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FeeDisburserCalls::L1_WALLET) + } + L1_WALLET + }, + { + fn lastDisbursementTime( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FeeDisburserCalls::lastDisbursementTime) + } + lastDisbursementTime + }, + { + fn netFeeRevenue( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FeeDisburserCalls::netFeeRevenue) + } + netFeeRevenue + }, + { + fn FEE_DISBURSEMENT_INTERVAL( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FeeDisburserCalls::FEE_DISBURSEMENT_INTERVAL) + } + FEE_DISBURSEMENT_INTERVAL + }, + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FeeDisburserCalls::version) + } + version + }, + { + fn WITHDRAWAL_MIN_GAS( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FeeDisburserCalls::WITHDRAWAL_MIN_GAS) + } + WITHDRAWAL_MIN_GAS + }, + { + fn disburseFees( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FeeDisburserCalls::disburseFees) + } + disburseFees + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::FEE_DISBURSEMENT_INTERVAL(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::L1_WALLET(inner) => { + ::abi_encoded_size(inner) + } + Self::WITHDRAWAL_MIN_GAS(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::disburseFees(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::lastDisbursementTime(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::netFeeRevenue(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::version(inner) => { + ::abi_encoded_size(inner) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::FEE_DISBURSEMENT_INTERVAL(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::L1_WALLET(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::WITHDRAWAL_MIN_GAS(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::disburseFees(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::lastDisbursementTime(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::netFeeRevenue(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::version(inner) => { + ::abi_encode_raw(inner, out) + } + } + } + } + ///Container for all the [`FeeDisburser`](self) custom errors. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum FeeDisburserErrors { + #[allow(missing_docs)] + FeeVaultMustWithdrawToFeeDisburser(FeeVaultMustWithdrawToFeeDisburser), + #[allow(missing_docs)] + FeeVaultMustWithdrawToL2(FeeVaultMustWithdrawToL2), + #[allow(missing_docs)] + IntervalNotReached(IntervalNotReached), + #[allow(missing_docs)] + IntervalTooLow(IntervalTooLow), + #[allow(missing_docs)] + ZeroAddress(ZeroAddress), + } + impl FeeDisburserErrors { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [114u8, 224u8, 26u8, 25u8], + [164u8, 12u8, 127u8, 10u8], + [199u8, 160u8, 109u8, 95u8], + [201u8, 187u8, 7u8, 109u8], + [217u8, 46u8, 35u8, 61u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(FeeVaultMustWithdrawToL2), + ::core::stringify!(IntervalTooLow), + ::core::stringify!(IntervalNotReached), + ::core::stringify!(FeeVaultMustWithdrawToFeeDisburser), + ::core::stringify!(ZeroAddress), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for FeeDisburserErrors { + const NAME: &'static str = "FeeDisburserErrors"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 5usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::FeeVaultMustWithdrawToFeeDisburser(_) => { + ::SELECTOR + } + Self::FeeVaultMustWithdrawToL2(_) => { + ::SELECTOR + } + Self::IntervalNotReached(_) => { + ::SELECTOR + } + Self::IntervalTooLow(_) => { + ::SELECTOR + } + Self::ZeroAddress(_) => { + ::SELECTOR + } + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn FeeVaultMustWithdrawToL2( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FeeDisburserErrors::FeeVaultMustWithdrawToL2) + } + FeeVaultMustWithdrawToL2 + }, + { + fn IntervalTooLow( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FeeDisburserErrors::IntervalTooLow) + } + IntervalTooLow + }, + { + fn IntervalNotReached( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FeeDisburserErrors::IntervalNotReached) + } + IntervalNotReached + }, + { + fn FeeVaultMustWithdrawToFeeDisburser( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FeeDisburserErrors::FeeVaultMustWithdrawToFeeDisburser) + } + FeeVaultMustWithdrawToFeeDisburser + }, + { + fn ZeroAddress( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(FeeDisburserErrors::ZeroAddress) + } + ZeroAddress + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn FeeVaultMustWithdrawToL2( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FeeDisburserErrors::FeeVaultMustWithdrawToL2) + } + FeeVaultMustWithdrawToL2 + }, + { + fn IntervalTooLow( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FeeDisburserErrors::IntervalTooLow) + } + IntervalTooLow + }, + { + fn IntervalNotReached( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FeeDisburserErrors::IntervalNotReached) + } + IntervalNotReached + }, + { + fn FeeVaultMustWithdrawToFeeDisburser( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FeeDisburserErrors::FeeVaultMustWithdrawToFeeDisburser) + } + FeeVaultMustWithdrawToFeeDisburser + }, + { + fn ZeroAddress( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FeeDisburserErrors::ZeroAddress) + } + ZeroAddress + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::FeeVaultMustWithdrawToFeeDisburser(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::FeeVaultMustWithdrawToL2(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::IntervalNotReached(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::IntervalTooLow(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ZeroAddress(inner) => { + ::abi_encoded_size(inner) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::FeeVaultMustWithdrawToFeeDisburser(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::FeeVaultMustWithdrawToL2(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::IntervalNotReached(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::IntervalTooLow(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ZeroAddress(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + } + } + } + ///Container for all the [`FeeDisburser`](self) events. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum FeeDisburserEvents { + #[allow(missing_docs)] + FeesDisbursed(FeesDisbursed), + #[allow(missing_docs)] + FeesReceived(FeesReceived), + #[allow(missing_docs)] + NoFeesCollected(NoFeesCollected), + } + impl FeeDisburserEvents { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 32usize]] = &[ + [ + 44u8, 207u8, 197u8, 140u8, 44u8, 239u8, 78u8, 229u8, 144u8, 181u8, 241u8, + 107u8, 224u8, 84u8, 140u8, 197u8, 74u8, 252u8, 18u8, 225u8, 198u8, 106u8, + 103u8, 179u8, 98u8, 183u8, 214u8, 64u8, 253u8, 22u8, 187u8, 45u8, + ], + [ + 140u8, 136u8, 123u8, 18u8, 21u8, 213u8, 230u8, 177u8, 25u8, 193u8, 193u8, + 0u8, 143u8, 225u8, 208u8, 145u8, 155u8, 76u8, 67u8, 131u8, 1u8, 213u8, + 160u8, 53u8, 115u8, 98u8, 161u8, 63u8, 181u8, 111u8, 106u8, 64u8, + ], + [ + 225u8, 85u8, 224u8, 84u8, 207u8, 230u8, 150u8, 85u8, 214u8, 210u8, 248u8, + 187u8, 251u8, 133u8, 106u8, 168u8, 205u8, 244u8, 158u8, 203u8, 234u8, + 101u8, 87u8, 144u8, 21u8, 51u8, 54u8, 69u8, 57u8, 202u8, 173u8, 148u8, + ], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(FeesReceived), + ::core::stringify!(NoFeesCollected), + ::core::stringify!(FeesDisbursed), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolEventInterface for FeeDisburserEvents { + const NAME: &'static str = "FeeDisburserEvents"; + const COUNT: usize = 3usize; + fn decode_raw_log( + topics: &[alloy_sol_types::Word], + data: &[u8], + ) -> alloy_sol_types::Result { + match topics.first().copied() { + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::FeesDisbursed) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::FeesReceived) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::NoFeesCollected) + } + _ => { + alloy_sol_types::private::Err(alloy_sol_types::Error::InvalidLog { + name: ::NAME, + log: alloy_sol_types::private::Box::new( + alloy_sol_types::private::LogData::new_unchecked( + topics.to_vec(), + data.to_vec().into(), + ), + ), + }) + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for FeeDisburserEvents { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + match self { + Self::FeesDisbursed(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::FeesReceived(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::NoFeesCollected(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + } + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + match self { + Self::FeesDisbursed(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::FeesReceived(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::NoFeesCollected(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`FeeDisburser`](self) contract instance. + +See the [wrapper's documentation](`FeeDisburserInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> FeeDisburserInstance { + FeeDisburserInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + l1Wallet: alloy::sol_types::private::Address, + feeDisbursementInterval: alloy::sol_types::private::primitives::aliases::U256, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + FeeDisburserInstance::< + P, + N, + >::deploy(__provider, l1Wallet, feeDisbursementInterval) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + l1Wallet: alloy::sol_types::private::Address, + feeDisbursementInterval: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::RawCallBuilder { + FeeDisburserInstance::< + P, + N, + >::deploy_builder(__provider, l1Wallet, feeDisbursementInterval) + } + /**A [`FeeDisburser`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`FeeDisburser`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct FeeDisburserInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for FeeDisburserInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("FeeDisburserInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > FeeDisburserInstance { + /**Creates a new wrapper around an on-chain [`FeeDisburser`](self) contract instance. + +See the [wrapper's documentation](`FeeDisburserInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + l1Wallet: alloy::sol_types::private::Address, + feeDisbursementInterval: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder( + __provider, + l1Wallet, + feeDisbursementInterval, + ); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder( + __provider: P, + l1Wallet: alloy::sol_types::private::Address, + feeDisbursementInterval: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + [ + &BYTECODE[..], + &alloy_sol_types::SolConstructor::abi_encode( + &constructorCall { + l1Wallet, + feeDisbursementInterval, + }, + )[..], + ] + .concat() + .into(), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl FeeDisburserInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> FeeDisburserInstance { + FeeDisburserInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > FeeDisburserInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`FEE_DISBURSEMENT_INTERVAL`] function. + pub fn FEE_DISBURSEMENT_INTERVAL( + &self, + ) -> alloy_contract::SolCallBuilder<&P, FEE_DISBURSEMENT_INTERVALCall, N> { + self.call_builder(&FEE_DISBURSEMENT_INTERVALCall) + } + ///Creates a new call builder for the [`L1_WALLET`] function. + pub fn L1_WALLET(&self) -> alloy_contract::SolCallBuilder<&P, L1_WALLETCall, N> { + self.call_builder(&L1_WALLETCall) + } + ///Creates a new call builder for the [`WITHDRAWAL_MIN_GAS`] function. + pub fn WITHDRAWAL_MIN_GAS( + &self, + ) -> alloy_contract::SolCallBuilder<&P, WITHDRAWAL_MIN_GASCall, N> { + self.call_builder(&WITHDRAWAL_MIN_GASCall) + } + ///Creates a new call builder for the [`disburseFees`] function. + pub fn disburseFees( + &self, + ) -> alloy_contract::SolCallBuilder<&P, disburseFeesCall, N> { + self.call_builder(&disburseFeesCall) + } + ///Creates a new call builder for the [`lastDisbursementTime`] function. + pub fn lastDisbursementTime( + &self, + ) -> alloy_contract::SolCallBuilder<&P, lastDisbursementTimeCall, N> { + self.call_builder(&lastDisbursementTimeCall) + } + ///Creates a new call builder for the [`netFeeRevenue`] function. + pub fn netFeeRevenue( + &self, + ) -> alloy_contract::SolCallBuilder<&P, netFeeRevenueCall, N> { + self.call_builder(&netFeeRevenueCall) + } + ///Creates a new call builder for the [`version`] function. + pub fn version(&self) -> alloy_contract::SolCallBuilder<&P, versionCall, N> { + self.call_builder(&versionCall) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > FeeDisburserInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + ///Creates a new event filter for the [`FeesDisbursed`] event. + pub fn FeesDisbursed_filter( + &self, + ) -> alloy_contract::Event<&P, FeesDisbursed, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`FeesReceived`] event. + pub fn FeesReceived_filter(&self) -> alloy_contract::Event<&P, FeesReceived, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`NoFeesCollected`] event. + pub fn NoFeesCollected_filter( + &self, + ) -> alloy_contract::Event<&P, NoFeesCollected, N> { + self.event_filter::() + } + } +} diff --git a/bindings/rust/src/fee_splitter.rs b/bindings/rust/src/fee_splitter.rs new file mode 100644 index 000000000..2b7c71706 --- /dev/null +++ b/bindings/rust/src/fee_splitter.rs @@ -0,0 +1,5322 @@ +///Module containing a contract's types and functions. +/** + +```solidity +library ISharesCalculator { + struct ShareInfo { address recipient; uint256 amount; } +} +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod ISharesCalculator { + use super::*; + use alloy::sol_types as alloy_sol_types; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**```solidity +struct ShareInfo { address recipient; uint256 amount; } +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ShareInfo { + #[allow(missing_docs)] + pub recipient: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub amount: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ShareInfo) -> Self { + (value.recipient, value.amount) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ShareInfo { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + recipient: tuple.0, + amount: tuple.1, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolValue for ShareInfo { + type SolType = Self; + } + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for ShareInfo { + #[inline] + fn stv_to_tokens(&self) -> ::Token<'_> { + ( + ::tokenize( + &self.recipient, + ), + as alloy_sol_types::SolType>::tokenize(&self.amount), + ) + } + #[inline] + fn stv_abi_encoded_size(&self) -> usize { + if let Some(size) = ::ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encoded_size(&tuple) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + ::eip712_hash_struct(self) + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + if let Some(size) = ::PACKED_ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for ShareInfo { + type RustType = Self; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = ::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + as alloy_sol_types::SolType>::valid_token(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + let tuple = as alloy_sol_types::SolType>::detokenize(token); + >>::from(tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolStruct for ShareInfo { + const NAME: &'static str = "ShareInfo"; + #[inline] + fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> { + alloy_sol_types::private::Cow::Borrowed( + "ShareInfo(address recipient,uint256 amount)", + ) + } + #[inline] + fn eip712_components() -> alloy_sol_types::private::Vec< + alloy_sol_types::private::Cow<'static, str>, + > { + alloy_sol_types::private::Vec::new() + } + #[inline] + fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> { + ::eip712_root_type() + } + #[inline] + fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec { + [ + ::eip712_data_word( + &self.recipient, + ) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.amount) + .0, + ] + .concat() + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for ShareInfo { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + 0usize + + ::topic_preimage_length( + &rust.recipient, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.amount, + ) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + out.reserve( + ::topic_preimage_length(rust), + ); + ::encode_topic_preimage( + &rust.recipient, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.amount, + out, + ); + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + let mut out = alloy_sol_types::private::Vec::new(); + ::encode_topic_preimage( + rust, + &mut out, + ); + alloy_sol_types::abi::token::WordToken( + alloy_sol_types::private::keccak256(out), + ) + } + } + }; + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`ISharesCalculator`](self) contract instance. + +See the [wrapper's documentation](`ISharesCalculatorInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> ISharesCalculatorInstance { + ISharesCalculatorInstance::::new(address, __provider) + } + /**A [`ISharesCalculator`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`ISharesCalculator`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct ISharesCalculatorInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for ISharesCalculatorInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("ISharesCalculatorInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > ISharesCalculatorInstance { + /**Creates a new wrapper around an on-chain [`ISharesCalculator`](self) contract instance. + +See the [wrapper's documentation](`ISharesCalculatorInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl ISharesCalculatorInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> ISharesCalculatorInstance { + ISharesCalculatorInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > ISharesCalculatorInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > ISharesCalculatorInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + } +} +/** + +Generated by the following Solidity interface... +```solidity +library ISharesCalculator { + struct ShareInfo { + address payable recipient; + uint256 amount; + } +} + +interface FeeSplitter { + error FeeSplitter_DisbursementIntervalNotReached(); + error FeeSplitter_ExceedsMaxFeeDisbursementTime(); + error FeeSplitter_FailedToSendToRevenueShareRecipient(); + error FeeSplitter_FeeDisbursementIntervalCannotBeZero(); + error FeeSplitter_FeeShareInfoEmpty(); + error FeeSplitter_FeeVaultMustWithdrawToFeeSplitter(); + error FeeSplitter_FeeVaultMustWithdrawToL2(); + error FeeSplitter_FeeVaultWithdrawalAmountMismatch(); + error FeeSplitter_NoFeesCollected(); + error FeeSplitter_OnlyProxyAdminOwner(); + error FeeSplitter_SenderNotCurrentVault(); + error FeeSplitter_SharesCalculatorCannotBeZero(); + error FeeSplitter_SharesCalculatorMalformedOutput(); + + event FeeDisbursementIntervalUpdated(uint128 oldFeeDisbursementInterval, uint128 newFeeDisbursementInterval); + event FeesDisbursed(ISharesCalculator.ShareInfo[] shareInfo, uint256 grossRevenue); + event FeesReceived(address indexed sender, uint256 amount, uint256 newBalance); + event Initialized(uint8 version); + event SharesCalculatorUpdated(address oldSharesCalculator, address newSharesCalculator); + + constructor(); + + receive() external payable; + + function MAX_DISBURSEMENT_INTERVAL() external view returns (uint128); + function disburseFees() external; + function feeDisbursementInterval() external view returns (uint128); + function initialize(address _sharesCalculator) external; + function lastDisbursementTime() external view returns (uint128); + function setFeeDisbursementInterval(uint128 _newFeeDisbursementInterval) external; + function setSharesCalculator(address _newSharesCalculator) external; + function sharesCalculator() external view returns (address); + function version() external view returns (string memory); +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "constructor", + "inputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "receive", + "stateMutability": "payable" + }, + { + "type": "function", + "name": "MAX_DISBURSEMENT_INTERVAL", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint128", + "internalType": "uint128" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "disburseFees", + "inputs": [], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "feeDisbursementInterval", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint128", + "internalType": "uint128" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "initialize", + "inputs": [ + { + "name": "_sharesCalculator", + "type": "address", + "internalType": "contract ISharesCalculator" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "lastDisbursementTime", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint128", + "internalType": "uint128" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "setFeeDisbursementInterval", + "inputs": [ + { + "name": "_newFeeDisbursementInterval", + "type": "uint128", + "internalType": "uint128" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "setSharesCalculator", + "inputs": [ + { + "name": "_newSharesCalculator", + "type": "address", + "internalType": "contract ISharesCalculator" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "sharesCalculator", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract ISharesCalculator" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "version", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "view" + }, + { + "type": "event", + "name": "FeeDisbursementIntervalUpdated", + "inputs": [ + { + "name": "oldFeeDisbursementInterval", + "type": "uint128", + "indexed": false, + "internalType": "uint128" + }, + { + "name": "newFeeDisbursementInterval", + "type": "uint128", + "indexed": false, + "internalType": "uint128" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "FeesDisbursed", + "inputs": [ + { + "name": "shareInfo", + "type": "tuple[]", + "indexed": false, + "internalType": "struct ISharesCalculator.ShareInfo[]", + "components": [ + { + "name": "recipient", + "type": "address", + "internalType": "address payable" + }, + { + "name": "amount", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { + "name": "grossRevenue", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "FeesReceived", + "inputs": [ + { + "name": "sender", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + }, + { + "name": "newBalance", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "Initialized", + "inputs": [ + { + "name": "version", + "type": "uint8", + "indexed": false, + "internalType": "uint8" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "SharesCalculatorUpdated", + "inputs": [ + { + "name": "oldSharesCalculator", + "type": "address", + "indexed": false, + "internalType": "address" + }, + { + "name": "newSharesCalculator", + "type": "address", + "indexed": false, + "internalType": "address" + } + ], + "anonymous": false + }, + { + "type": "error", + "name": "FeeSplitter_DisbursementIntervalNotReached", + "inputs": [] + }, + { + "type": "error", + "name": "FeeSplitter_ExceedsMaxFeeDisbursementTime", + "inputs": [] + }, + { + "type": "error", + "name": "FeeSplitter_FailedToSendToRevenueShareRecipient", + "inputs": [] + }, + { + "type": "error", + "name": "FeeSplitter_FeeDisbursementIntervalCannotBeZero", + "inputs": [] + }, + { + "type": "error", + "name": "FeeSplitter_FeeShareInfoEmpty", + "inputs": [] + }, + { + "type": "error", + "name": "FeeSplitter_FeeVaultMustWithdrawToFeeSplitter", + "inputs": [] + }, + { + "type": "error", + "name": "FeeSplitter_FeeVaultMustWithdrawToL2", + "inputs": [] + }, + { + "type": "error", + "name": "FeeSplitter_FeeVaultWithdrawalAmountMismatch", + "inputs": [] + }, + { + "type": "error", + "name": "FeeSplitter_NoFeesCollected", + "inputs": [] + }, + { + "type": "error", + "name": "FeeSplitter_OnlyProxyAdminOwner", + "inputs": [] + }, + { + "type": "error", + "name": "FeeSplitter_SenderNotCurrentVault", + "inputs": [] + }, + { + "type": "error", + "name": "FeeSplitter_SharesCalculatorCannotBeZero", + "inputs": [] + }, + { + "type": "error", + "name": "FeeSplitter_SharesCalculatorMalformedOutput", + "inputs": [] + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod FeeSplitter { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x6080604052348015600e575f80fd5b5060156019565b60d4565b5f54610100900460ff161560835760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b5f5460ff908116101560d2575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b611308806100e15f395ff3fe608060405260043610610096575f3560e01c80637dfbd04911610066578063b87ea8d41161004c578063b87ea8d414610284578063c4d66de814610298578063d61a398b146102b7575f80fd5b80637dfbd0491461024e5780637fc81bb714610265575f80fd5b80630a7617b31461014e5780630c0544a31461016f578063394d2731146101d157806354fd4d50146101f9575f80fd5b3661014a573373ffffffffffffffffffffffffffffffffffffffff7f21346dddac42cc163a6523eefc19df981df7352c870dc3b0b17a6a92fc6fe8135c161461010b576040517f14885cf900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805134815247602082018190529133917f213e72af0d3613bd643cff3059f872c1015e6541624e37872bf95eefbaf220a8910160405180910390a2005b5f80fd5b348015610159575f80fd5b5061016d610168366004610f49565b61030d565b005b34801561017a575f80fd5b506001546101ab9070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff1681565b6040516fffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b3480156101dc575f80fd5b506001546101ab906fffffffffffffffffffffffffffffffff1681565b348015610204575f80fd5b506102416040518060400160405280600581526020017f312e302e3000000000000000000000000000000000000000000000000000000081525081565b6040516101c89190610f64565b348015610259575f80fd5b506101ab6301e1338081565b348015610270575f80fd5b5061016d61027f366004610fb7565b6104cf565b34801561028f575f80fd5b5061016d6106c2565b3480156102a3575f80fd5b5061016d6102b2366004610f49565b610a9a565b3480156102c2575f80fd5b505f546102e89062010000900473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101c8565b73420000000000000000000000000000000000001873ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561036a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061038e9190610fe6565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146103f2576040517f38bac74200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff811661043f576040517f99c6ec0800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f805473ffffffffffffffffffffffffffffffffffffffff838116620100008181027fffffffffffffffffffff0000000000000000000000000000000000000000ffff85161790945560408051949093049091168084526020840191909152917f16417cc372deec0caee5f52e2ad77a5f07b4591fd56b4ff31b6e20f817d4daeb91015b60405180910390a15050565b73420000000000000000000000000000000000001873ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561052c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105509190610fe6565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146105b4576040517f38bac74200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806fffffffffffffffffffffffffffffffff165f036105ff576040517fcf85916100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6301e133806fffffffffffffffffffffffffffffffff8216111561064f576040517f30b9f35e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600180546fffffffffffffffffffffffffffffffff8381167001000000000000000000000000000000008181028385161790945560408051949093049091168084526020840191909152917f4492086b630ed3846eec0979dd87a71c814ceb1c6dab80ab81e3450b21e4de2891016104c3565b6001546106f7906fffffffffffffffffffffffffffffffff70010000000000000000000000000000000082048116911661102e565b6fffffffffffffffffffffffffffffffff16421015610742576040517f1e4a9f3a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600180547fffffffffffffffffffffffffffffffff0000000000000000000000000000000016426fffffffffffffffffffffffffffffffff161790555f61079c734200000000000000000000000000000000000011610c8e565b90505f6107bc734200000000000000000000000000000000000019610c8e565b90505f6107dc73420000000000000000000000000000000000001a610c8e565b90505f6107fc73420000000000000000000000000000000000001b610c8e565b90506108075f610edb565b5f8282610814868861105e565b61081e919061105e565b610828919061105e565b9050805f03610863576040517fc8972e5200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f80546040517f54e7f42d000000000000000000000000000000000000000000000000000000008152600481018890526024810187905260448101859052606481018690526201000090910473ffffffffffffffffffffffffffffffffffffffff16906354e7f42d906084015f60405180830381865afa1580156108e9573d5f803e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405261092e919081019061111c565b80519091505f81900361096d576040517f763970d600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f805b82811015610a1d575f84828151811061098b5761098b6111eb565b6020026020010151602001519050805f036109a65750610a15565b5f6109cd8684815181106109bc576109bc6111eb565b60200260200101515f015183610f01565b905080610a06576040517fd68d1b1800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610a10828561105e565b935050505b600101610970565b50838114610a57576040517f9c01eac000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f73f9a13241a1848ec157967f3a85601709353e616f1f2605d818c0f2d21774df8385604051610a88929190611218565b60405180910390a15050505050505050565b5f54610100900460ff1615808015610ab857505f54600160ff909116105b80610ad15750303b158015610ad157505f5460ff166001145b610b61576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840160405180910390fd5b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015610bbd575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b5f80547fffffffffffffffffffff0000000000000000000000000000000000000000ffff166201000073ffffffffffffffffffffffffffffffffffffffff85160217905572015180000000000000000000000000000000006fffffffffffffffffffffffffffffffff4216176001558015610c8a575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020016104c3565b5050565b5f60018273ffffffffffffffffffffffffffffffffffffffff166382356d8a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cda573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cfe91906112b3565b6001811115610d0f57610d0f611286565b14610d46576040517fb4726cbe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff166366d003ac6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610da6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dca9190610fe6565b73ffffffffffffffffffffffffffffffffffffffff1614610e17576040517fc3380cef00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b47610e2183610edb565b8273ffffffffffffffffffffffffffffffffffffffff16633ccfd60b6040518163ffffffff1660e01b81526004016020604051808303815f875af1158015610e6b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e8f91906112d1565b91504782610e9d83836112e8565b14610ed4576040517f87c91c5c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050919050565b807f21346dddac42cc163a6523eefc19df981df7352c870dc3b0b17a6a92fc6fe8135d50565b5f610f0d835a84610f14565b9392505050565b5f805f805f858888f1949350505050565b73ffffffffffffffffffffffffffffffffffffffff81168114610f46575f80fd5b50565b5f60208284031215610f59575f80fd5b8135610f0d81610f25565b602081525f82518060208401528060208501604085015e5f6040828501015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011684010191505092915050565b5f60208284031215610fc7575f80fd5b81356fffffffffffffffffffffffffffffffff81168114610f0d575f80fd5b5f60208284031215610ff6575f80fd5b8151610f0d81610f25565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b6fffffffffffffffffffffffffffffffff81811683821601908082111561105757611057611001565b5092915050565b8082018082111561107157611071611001565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040805190810167ffffffffffffffff811182821017156110c7576110c7611077565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff8111828210171561111457611114611077565b604052919050565b5f602080838503121561112d575f80fd5b825167ffffffffffffffff80821115611144575f80fd5b818501915085601f830112611157575f80fd5b81518181111561116957611169611077565b611177848260051b016110cd565b818152848101925060069190911b830184019087821115611196575f80fd5b928401925b818410156111e057604084890312156111b2575f80fd5b6111ba6110a4565b84516111c581610f25565b8152848601518682015283526040909301929184019161119b565b979650505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b604080825283518282018190525f91906020906060850190828801855b82811015611270578151805173ffffffffffffffffffffffffffffffffffffffff168552850151858501529285019290840190600101611235565b5050508093505050508260208301529392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b5f602082840312156112c3575f80fd5b815160028110610f0d575f80fd5b5f602082840312156112e1575f80fd5b5051919050565b818103818111156110715761107161100156fea164736f6c6343000819000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R4\x80\x15`\x0EW_\x80\xFD[P`\x15`\x19V[`\xD4V[_Ta\x01\0\x90\x04`\xFF\x16\x15`\x83W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`'`$\x82\x01R\x7FInitializable: contract is initi`D\x82\x01Rfalizing`\xC8\x1B`d\x82\x01R`\x84\x01`@Q\x80\x91\x03\x90\xFD[_T`\xFF\x90\x81\x16\x10\x15`\xD2W_\x80T`\xFF\x19\x16`\xFF\x90\x81\x17\x90\x91U`@Q\x90\x81R\x7F\x7F&\xB8?\xF9n\x1F+jh/\x138R\xF6y\x8A\t\xC4e\xDA\x95\x92\x14`\xCE\xFB8G@$\x98\x90` \x01`@Q\x80\x91\x03\x90\xA1[V[a\x13\x08\x80a\0\xE1_9_\xF3\xFE`\x80`@R`\x046\x10a\0\x96W_5`\xE0\x1C\x80c}\xFB\xD0I\x11a\0fW\x80c\xB8~\xA8\xD4\x11a\0LW\x80c\xB8~\xA8\xD4\x14a\x02\x84W\x80c\xC4\xD6m\xE8\x14a\x02\x98W\x80c\xD6\x1A9\x8B\x14a\x02\xB7W_\x80\xFD[\x80c}\xFB\xD0I\x14a\x02NW\x80c\x7F\xC8\x1B\xB7\x14a\x02eW_\x80\xFD[\x80c\nv\x17\xB3\x14a\x01NW\x80c\x0C\x05D\xA3\x14a\x01oW\x80c9M'1\x14a\x01\xD1W\x80cT\xFDMP\x14a\x01\xF9W_\x80\xFD[6a\x01JW3s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x7F!4m\xDD\xACB\xCC\x16:e#\xEE\xFC\x19\xDF\x98\x1D\xF75,\x87\r\xC3\xB0\xB1zj\x92\xFCo\xE8\x13\\\x16\x14a\x01\x0BW`@Q\x7F\x14\x88\\\xF9\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\x01`@Q\x80\x91\x03\x90\xFD[`@\x80Q4\x81RG` \x82\x01\x81\x90R\x913\x91\x7F!>r\xAF\r6\x13\xBDd<\xFF0Y\xF8r\xC1\x01^eAbN7\x87+\xF9^\xEF\xBA\xF2 \xA8\x91\x01`@Q\x80\x91\x03\x90\xA2\0[_\x80\xFD[4\x80\x15a\x01YW_\x80\xFD[Pa\x01ma\x01h6`\x04a\x0FIV[a\x03\rV[\0[4\x80\x15a\x01zW_\x80\xFD[P`\x01Ta\x01\xAB\x90p\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[`@Qo\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[4\x80\x15a\x01\xDCW_\x80\xFD[P`\x01Ta\x01\xAB\x90o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[4\x80\x15a\x02\x04W_\x80\xFD[Pa\x02A`@Q\x80`@\x01`@R\x80`\x05\x81R` \x01\x7F1.0.0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RP\x81V[`@Qa\x01\xC8\x91\x90a\x0FdV[4\x80\x15a\x02YW_\x80\xFD[Pa\x01\xABc\x01\xE13\x80\x81V[4\x80\x15a\x02pW_\x80\xFD[Pa\x01ma\x02\x7F6`\x04a\x0F\xB7V[a\x04\xCFV[4\x80\x15a\x02\x8FW_\x80\xFD[Pa\x01ma\x06\xC2V[4\x80\x15a\x02\xA3W_\x80\xFD[Pa\x01ma\x02\xB26`\x04a\x0FIV[a\n\x9AV[4\x80\x15a\x02\xC2W_\x80\xFD[P_Ta\x02\xE8\x90b\x01\0\0\x90\x04s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01a\x01\xC8V[sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x18s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\x8D\xA5\xCB[`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x03jW=_\x80>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x03\x8E\x91\x90a\x0F\xE6V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x163s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14a\x03\xF2W`@Q\x7F8\xBA\xC7B\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\x01`@Q\x80\x91\x03\x90\xFD[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16a\x04?W`@Q\x7F\x99\xC6\xEC\x08\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\x01`@Q\x80\x91\x03\x90\xFD[_\x80Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x81\x16b\x01\0\0\x81\x81\x02\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xFF\xFF\x85\x16\x17\x90\x94U`@\x80Q\x94\x90\x93\x04\x90\x91\x16\x80\x84R` \x84\x01\x91\x90\x91R\x91\x7F\x16A|\xC3r\xDE\xEC\x0C\xAE\xE5\xF5.*\xD7z_\x07\xB4Y\x1F\xD5kO\xF3\x1Bn \xF8\x17\xD4\xDA\xEB\x91\x01[`@Q\x80\x91\x03\x90\xA1PPV[sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x18s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\x8D\xA5\xCB[`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x05,W=_\x80>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x05P\x91\x90a\x0F\xE6V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x163s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14a\x05\xB4W`@Q\x7F8\xBA\xC7B\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\x01`@Q\x80\x91\x03\x90\xFD[\x80o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16_\x03a\x05\xFFW`@Q\x7F\xCF\x85\x91a\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\x01`@Q\x80\x91\x03\x90\xFD[c\x01\xE13\x80o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16\x11\x15a\x06OW`@Q\x7F0\xB9\xF3^\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01\x80To\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x81\x16p\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81\x81\x02\x83\x85\x16\x17\x90\x94U`@\x80Q\x94\x90\x93\x04\x90\x91\x16\x80\x84R` \x84\x01\x91\x90\x91R\x91\x7FD\x92\x08kc\x0E\xD3\x84n\xEC\ty\xDD\x87\xA7\x1C\x81L\xEB\x1Cm\xAB\x80\xAB\x81\xE3E\x0B!\xE4\xDE(\x91\x01a\x04\xC3V[`\x01Ta\x06\xF7\x90o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFFp\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x82\x04\x81\x16\x91\x16a\x10.V[o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16B\x10\x15a\x07BW`@Q\x7F\x1EJ\x9F:\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16Bo\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x17\x90U_a\x07\x9CsB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x11a\x0C\x8EV[\x90P_a\x07\xBCsB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x19a\x0C\x8EV[\x90P_a\x07\xDCsB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x1Aa\x0C\x8EV[\x90P_a\x07\xFCsB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x1Ba\x0C\x8EV[\x90Pa\x08\x07_a\x0E\xDBV[_\x82\x82a\x08\x14\x86\x88a\x10^V[a\x08\x1E\x91\x90a\x10^V[a\x08(\x91\x90a\x10^V[\x90P\x80_\x03a\x08cW`@Q\x7F\xC8\x97.R\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\x01`@Q\x80\x91\x03\x90\xFD[_\x80T`@Q\x7FT\xE7\xF4-\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\x81\x01\x88\x90R`$\x81\x01\x87\x90R`D\x81\x01\x85\x90R`d\x81\x01\x86\x90Rb\x01\0\0\x90\x91\x04s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90cT\xE7\xF4-\x90`\x84\x01_`@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x08\xE9W=_\x80>=_\xFD[PPPP`@Q=_\x82>`\x1F=\x90\x81\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x82\x01`@Ra\t.\x91\x90\x81\x01\x90a\x11\x1CV[\x80Q\x90\x91P_\x81\x90\x03a\tmW`@Q\x7Fv9p\xD6\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\x01`@Q\x80\x91\x03\x90\xFD[_\x80[\x82\x81\x10\x15a\n\x1DW_\x84\x82\x81Q\x81\x10a\t\x8BWa\t\x8Ba\x11\xEBV[` \x02` \x01\x01Q` \x01Q\x90P\x80_\x03a\t\xA6WPa\n\x15V[_a\t\xCD\x86\x84\x81Q\x81\x10a\t\xBCWa\t\xBCa\x11\xEBV[` \x02` \x01\x01Q_\x01Q\x83a\x0F\x01V[\x90P\x80a\n\x06W`@Q\x7F\xD6\x8D\x1B\x18\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\x01`@Q\x80\x91\x03\x90\xFD[a\n\x10\x82\x85a\x10^V[\x93PPP[`\x01\x01a\tpV[P\x83\x81\x14a\nWW`@Q\x7F\x9C\x01\xEA\xC0\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\x01`@Q\x80\x91\x03\x90\xFD[\x7Fs\xF9\xA12A\xA1\x84\x8E\xC1W\x96\x7F:\x85`\x17\t5>ao\x1F&\x05\xD8\x18\xC0\xF2\xD2\x17t\xDF\x83\x85`@Qa\n\x88\x92\x91\x90a\x12\x18V[`@Q\x80\x91\x03\x90\xA1PPPPPPPPV[_Ta\x01\0\x90\x04`\xFF\x16\x15\x80\x80\x15a\n\xB8WP_T`\x01`\xFF\x90\x91\x16\x10[\x80a\n\xD1WP0;\x15\x80\x15a\n\xD1WP_T`\xFF\x16`\x01\x14[a\x0BaW`@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\x82\x01R`.`$\x82\x01R\x7FInitializable: contract is alrea`D\x82\x01R\x7Fdy initialized\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01`@Q\x80\x91\x03\x90\xFD[_\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x16`\x01\x17\x90U\x80\x15a\x0B\xBDW_\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\x16a\x01\0\x17\x90U[_\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xFF\xFF\x16b\x01\0\0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x85\x16\x02\x17\x90Ur\x01Q\x80\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFFB\x16\x17`\x01U\x80\x15a\x0C\x8AW_\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\x16\x90U`@Q`\x01\x81R\x7F\x7F&\xB8?\xF9n\x1F+jh/\x138R\xF6y\x8A\t\xC4e\xDA\x95\x92\x14`\xCE\xFB8G@$\x98\x90` \x01a\x04\xC3V[PPV[_`\x01\x82s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\x825m\x8A`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x0C\xDAW=_\x80>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x0C\xFE\x91\x90a\x12\xB3V[`\x01\x81\x11\x15a\r\x0FWa\r\x0Fa\x12\x86V[\x14a\rFW`@Q\x7F\xB4rl\xBE\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\x01`@Q\x80\x91\x03\x90\xFD[0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x82s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16cf\xD0\x03\xAC`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\r\xA6W=_\x80>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\r\xCA\x91\x90a\x0F\xE6V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14a\x0E\x17W`@Q\x7F\xC38\x0C\xEF\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\x01`@Q\x80\x91\x03\x90\xFD[Ga\x0E!\x83a\x0E\xDBV[\x82s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c<\xCF\xD6\x0B`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81_\x87Z\xF1\x15\x80\x15a\x0EkW=_\x80>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x0E\x8F\x91\x90a\x12\xD1V[\x91PG\x82a\x0E\x9D\x83\x83a\x12\xE8V[\x14a\x0E\xD4W`@Q\x7F\x87\xC9\x1C\\\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\x01`@Q\x80\x91\x03\x90\xFD[PP\x91\x90PV[\x80\x7F!4m\xDD\xACB\xCC\x16:e#\xEE\xFC\x19\xDF\x98\x1D\xF75,\x87\r\xC3\xB0\xB1zj\x92\xFCo\xE8\x13]PV[_a\x0F\r\x83Z\x84a\x0F\x14V[\x93\x92PPPV[_\x80_\x80_\x85\x88\x88\xF1\x94\x93PPPPV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x0FFW_\x80\xFD[PV[_` \x82\x84\x03\x12\x15a\x0FYW_\x80\xFD[\x815a\x0F\r\x81a\x0F%V[` \x81R_\x82Q\x80` \x84\x01R\x80` \x85\x01`@\x85\x01^_`@\x82\x85\x01\x01R`@\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0`\x1F\x83\x01\x16\x84\x01\x01\x91PP\x92\x91PPV[_` \x82\x84\x03\x12\x15a\x0F\xC7W_\x80\xFD[\x815o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x0F\rW_\x80\xFD[_` \x82\x84\x03\x12\x15a\x0F\xF6W_\x80\xFD[\x81Qa\x0F\r\x81a\x0F%V[\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_R`\x11`\x04R`$_\xFD[o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x81\x16\x83\x82\x16\x01\x90\x80\x82\x11\x15a\x10WWa\x10Wa\x10\x01V[P\x92\x91PPV[\x80\x82\x01\x80\x82\x11\x15a\x10qWa\x10qa\x10\x01V[\x92\x91PPV[\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_R`A`\x04R`$_\xFD[`@\x80Q\x90\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a\x10\xC7Wa\x10\xC7a\x10wV[`@R\x90V[`@Q`\x1F\x82\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a\x11\x14Wa\x11\x14a\x10wV[`@R\x91\x90PV[_` \x80\x83\x85\x03\x12\x15a\x11-W_\x80\xFD[\x82Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x11DW_\x80\xFD[\x81\x85\x01\x91P\x85`\x1F\x83\x01\x12a\x11WW_\x80\xFD[\x81Q\x81\x81\x11\x15a\x11iWa\x11ia\x10wV[a\x11w\x84\x82`\x05\x1B\x01a\x10\xCDV[\x81\x81R\x84\x81\x01\x92P`\x06\x91\x90\x91\x1B\x83\x01\x84\x01\x90\x87\x82\x11\x15a\x11\x96W_\x80\xFD[\x92\x84\x01\x92[\x81\x84\x10\x15a\x11\xE0W`@\x84\x89\x03\x12\x15a\x11\xB2W_\x80\xFD[a\x11\xBAa\x10\xA4V[\x84Qa\x11\xC5\x81a\x0F%V[\x81R\x84\x86\x01Q\x86\x82\x01R\x83R`@\x90\x93\x01\x92\x91\x84\x01\x91a\x11\x9BV[\x97\x96PPPPPPPV[\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_R`2`\x04R`$_\xFD[`@\x80\x82R\x83Q\x82\x82\x01\x81\x90R_\x91\x90` \x90``\x85\x01\x90\x82\x88\x01\x85[\x82\x81\x10\x15a\x12pW\x81Q\x80Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x85R\x85\x01Q\x85\x85\x01R\x92\x85\x01\x92\x90\x84\x01\x90`\x01\x01a\x125V[PPP\x80\x93PPPP\x82` \x83\x01R\x93\x92PPPV[\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_R`!`\x04R`$_\xFD[_` \x82\x84\x03\x12\x15a\x12\xC3W_\x80\xFD[\x81Q`\x02\x81\x10a\x0F\rW_\x80\xFD[_` \x82\x84\x03\x12\x15a\x12\xE1W_\x80\xFD[PQ\x91\x90PV[\x81\x81\x03\x81\x81\x11\x15a\x10qWa\x10qa\x10\x01V\xFE\xA1dsolcC\0\x08\x19\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x608060405260043610610096575f3560e01c80637dfbd04911610066578063b87ea8d41161004c578063b87ea8d414610284578063c4d66de814610298578063d61a398b146102b7575f80fd5b80637dfbd0491461024e5780637fc81bb714610265575f80fd5b80630a7617b31461014e5780630c0544a31461016f578063394d2731146101d157806354fd4d50146101f9575f80fd5b3661014a573373ffffffffffffffffffffffffffffffffffffffff7f21346dddac42cc163a6523eefc19df981df7352c870dc3b0b17a6a92fc6fe8135c161461010b576040517f14885cf900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805134815247602082018190529133917f213e72af0d3613bd643cff3059f872c1015e6541624e37872bf95eefbaf220a8910160405180910390a2005b5f80fd5b348015610159575f80fd5b5061016d610168366004610f49565b61030d565b005b34801561017a575f80fd5b506001546101ab9070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff1681565b6040516fffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b3480156101dc575f80fd5b506001546101ab906fffffffffffffffffffffffffffffffff1681565b348015610204575f80fd5b506102416040518060400160405280600581526020017f312e302e3000000000000000000000000000000000000000000000000000000081525081565b6040516101c89190610f64565b348015610259575f80fd5b506101ab6301e1338081565b348015610270575f80fd5b5061016d61027f366004610fb7565b6104cf565b34801561028f575f80fd5b5061016d6106c2565b3480156102a3575f80fd5b5061016d6102b2366004610f49565b610a9a565b3480156102c2575f80fd5b505f546102e89062010000900473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101c8565b73420000000000000000000000000000000000001873ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561036a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061038e9190610fe6565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146103f2576040517f38bac74200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff811661043f576040517f99c6ec0800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f805473ffffffffffffffffffffffffffffffffffffffff838116620100008181027fffffffffffffffffffff0000000000000000000000000000000000000000ffff85161790945560408051949093049091168084526020840191909152917f16417cc372deec0caee5f52e2ad77a5f07b4591fd56b4ff31b6e20f817d4daeb91015b60405180910390a15050565b73420000000000000000000000000000000000001873ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561052c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105509190610fe6565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146105b4576040517f38bac74200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806fffffffffffffffffffffffffffffffff165f036105ff576040517fcf85916100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6301e133806fffffffffffffffffffffffffffffffff8216111561064f576040517f30b9f35e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600180546fffffffffffffffffffffffffffffffff8381167001000000000000000000000000000000008181028385161790945560408051949093049091168084526020840191909152917f4492086b630ed3846eec0979dd87a71c814ceb1c6dab80ab81e3450b21e4de2891016104c3565b6001546106f7906fffffffffffffffffffffffffffffffff70010000000000000000000000000000000082048116911661102e565b6fffffffffffffffffffffffffffffffff16421015610742576040517f1e4a9f3a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600180547fffffffffffffffffffffffffffffffff0000000000000000000000000000000016426fffffffffffffffffffffffffffffffff161790555f61079c734200000000000000000000000000000000000011610c8e565b90505f6107bc734200000000000000000000000000000000000019610c8e565b90505f6107dc73420000000000000000000000000000000000001a610c8e565b90505f6107fc73420000000000000000000000000000000000001b610c8e565b90506108075f610edb565b5f8282610814868861105e565b61081e919061105e565b610828919061105e565b9050805f03610863576040517fc8972e5200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f80546040517f54e7f42d000000000000000000000000000000000000000000000000000000008152600481018890526024810187905260448101859052606481018690526201000090910473ffffffffffffffffffffffffffffffffffffffff16906354e7f42d906084015f60405180830381865afa1580156108e9573d5f803e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405261092e919081019061111c565b80519091505f81900361096d576040517f763970d600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f805b82811015610a1d575f84828151811061098b5761098b6111eb565b6020026020010151602001519050805f036109a65750610a15565b5f6109cd8684815181106109bc576109bc6111eb565b60200260200101515f015183610f01565b905080610a06576040517fd68d1b1800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610a10828561105e565b935050505b600101610970565b50838114610a57576040517f9c01eac000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f73f9a13241a1848ec157967f3a85601709353e616f1f2605d818c0f2d21774df8385604051610a88929190611218565b60405180910390a15050505050505050565b5f54610100900460ff1615808015610ab857505f54600160ff909116105b80610ad15750303b158015610ad157505f5460ff166001145b610b61576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840160405180910390fd5b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015610bbd575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b5f80547fffffffffffffffffffff0000000000000000000000000000000000000000ffff166201000073ffffffffffffffffffffffffffffffffffffffff85160217905572015180000000000000000000000000000000006fffffffffffffffffffffffffffffffff4216176001558015610c8a575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020016104c3565b5050565b5f60018273ffffffffffffffffffffffffffffffffffffffff166382356d8a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cda573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cfe91906112b3565b6001811115610d0f57610d0f611286565b14610d46576040517fb4726cbe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff166366d003ac6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610da6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dca9190610fe6565b73ffffffffffffffffffffffffffffffffffffffff1614610e17576040517fc3380cef00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b47610e2183610edb565b8273ffffffffffffffffffffffffffffffffffffffff16633ccfd60b6040518163ffffffff1660e01b81526004016020604051808303815f875af1158015610e6b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e8f91906112d1565b91504782610e9d83836112e8565b14610ed4576040517f87c91c5c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050919050565b807f21346dddac42cc163a6523eefc19df981df7352c870dc3b0b17a6a92fc6fe8135d50565b5f610f0d835a84610f14565b9392505050565b5f805f805f858888f1949350505050565b73ffffffffffffffffffffffffffffffffffffffff81168114610f46575f80fd5b50565b5f60208284031215610f59575f80fd5b8135610f0d81610f25565b602081525f82518060208401528060208501604085015e5f6040828501015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011684010191505092915050565b5f60208284031215610fc7575f80fd5b81356fffffffffffffffffffffffffffffffff81168114610f0d575f80fd5b5f60208284031215610ff6575f80fd5b8151610f0d81610f25565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b6fffffffffffffffffffffffffffffffff81811683821601908082111561105757611057611001565b5092915050565b8082018082111561107157611071611001565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040805190810167ffffffffffffffff811182821017156110c7576110c7611077565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff8111828210171561111457611114611077565b604052919050565b5f602080838503121561112d575f80fd5b825167ffffffffffffffff80821115611144575f80fd5b818501915085601f830112611157575f80fd5b81518181111561116957611169611077565b611177848260051b016110cd565b818152848101925060069190911b830184019087821115611196575f80fd5b928401925b818410156111e057604084890312156111b2575f80fd5b6111ba6110a4565b84516111c581610f25565b8152848601518682015283526040909301929184019161119b565b979650505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b604080825283518282018190525f91906020906060850190828801855b82811015611270578151805173ffffffffffffffffffffffffffffffffffffffff168552850151858501529285019290840190600101611235565b5050508093505050508260208301529392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b5f602082840312156112c3575f80fd5b815160028110610f0d575f80fd5b5f602082840312156112e1575f80fd5b5051919050565b818103818111156110715761107161100156fea164736f6c6343000819000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R`\x046\x10a\0\x96W_5`\xE0\x1C\x80c}\xFB\xD0I\x11a\0fW\x80c\xB8~\xA8\xD4\x11a\0LW\x80c\xB8~\xA8\xD4\x14a\x02\x84W\x80c\xC4\xD6m\xE8\x14a\x02\x98W\x80c\xD6\x1A9\x8B\x14a\x02\xB7W_\x80\xFD[\x80c}\xFB\xD0I\x14a\x02NW\x80c\x7F\xC8\x1B\xB7\x14a\x02eW_\x80\xFD[\x80c\nv\x17\xB3\x14a\x01NW\x80c\x0C\x05D\xA3\x14a\x01oW\x80c9M'1\x14a\x01\xD1W\x80cT\xFDMP\x14a\x01\xF9W_\x80\xFD[6a\x01JW3s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x7F!4m\xDD\xACB\xCC\x16:e#\xEE\xFC\x19\xDF\x98\x1D\xF75,\x87\r\xC3\xB0\xB1zj\x92\xFCo\xE8\x13\\\x16\x14a\x01\x0BW`@Q\x7F\x14\x88\\\xF9\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\x01`@Q\x80\x91\x03\x90\xFD[`@\x80Q4\x81RG` \x82\x01\x81\x90R\x913\x91\x7F!>r\xAF\r6\x13\xBDd<\xFF0Y\xF8r\xC1\x01^eAbN7\x87+\xF9^\xEF\xBA\xF2 \xA8\x91\x01`@Q\x80\x91\x03\x90\xA2\0[_\x80\xFD[4\x80\x15a\x01YW_\x80\xFD[Pa\x01ma\x01h6`\x04a\x0FIV[a\x03\rV[\0[4\x80\x15a\x01zW_\x80\xFD[P`\x01Ta\x01\xAB\x90p\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[`@Qo\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[4\x80\x15a\x01\xDCW_\x80\xFD[P`\x01Ta\x01\xAB\x90o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[4\x80\x15a\x02\x04W_\x80\xFD[Pa\x02A`@Q\x80`@\x01`@R\x80`\x05\x81R` \x01\x7F1.0.0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RP\x81V[`@Qa\x01\xC8\x91\x90a\x0FdV[4\x80\x15a\x02YW_\x80\xFD[Pa\x01\xABc\x01\xE13\x80\x81V[4\x80\x15a\x02pW_\x80\xFD[Pa\x01ma\x02\x7F6`\x04a\x0F\xB7V[a\x04\xCFV[4\x80\x15a\x02\x8FW_\x80\xFD[Pa\x01ma\x06\xC2V[4\x80\x15a\x02\xA3W_\x80\xFD[Pa\x01ma\x02\xB26`\x04a\x0FIV[a\n\x9AV[4\x80\x15a\x02\xC2W_\x80\xFD[P_Ta\x02\xE8\x90b\x01\0\0\x90\x04s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01a\x01\xC8V[sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x18s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\x8D\xA5\xCB[`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x03jW=_\x80>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x03\x8E\x91\x90a\x0F\xE6V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x163s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14a\x03\xF2W`@Q\x7F8\xBA\xC7B\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\x01`@Q\x80\x91\x03\x90\xFD[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16a\x04?W`@Q\x7F\x99\xC6\xEC\x08\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\x01`@Q\x80\x91\x03\x90\xFD[_\x80Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x81\x16b\x01\0\0\x81\x81\x02\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xFF\xFF\x85\x16\x17\x90\x94U`@\x80Q\x94\x90\x93\x04\x90\x91\x16\x80\x84R` \x84\x01\x91\x90\x91R\x91\x7F\x16A|\xC3r\xDE\xEC\x0C\xAE\xE5\xF5.*\xD7z_\x07\xB4Y\x1F\xD5kO\xF3\x1Bn \xF8\x17\xD4\xDA\xEB\x91\x01[`@Q\x80\x91\x03\x90\xA1PPV[sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x18s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\x8D\xA5\xCB[`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x05,W=_\x80>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x05P\x91\x90a\x0F\xE6V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x163s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14a\x05\xB4W`@Q\x7F8\xBA\xC7B\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\x01`@Q\x80\x91\x03\x90\xFD[\x80o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16_\x03a\x05\xFFW`@Q\x7F\xCF\x85\x91a\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\x01`@Q\x80\x91\x03\x90\xFD[c\x01\xE13\x80o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16\x11\x15a\x06OW`@Q\x7F0\xB9\xF3^\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01\x80To\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x81\x16p\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81\x81\x02\x83\x85\x16\x17\x90\x94U`@\x80Q\x94\x90\x93\x04\x90\x91\x16\x80\x84R` \x84\x01\x91\x90\x91R\x91\x7FD\x92\x08kc\x0E\xD3\x84n\xEC\ty\xDD\x87\xA7\x1C\x81L\xEB\x1Cm\xAB\x80\xAB\x81\xE3E\x0B!\xE4\xDE(\x91\x01a\x04\xC3V[`\x01Ta\x06\xF7\x90o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFFp\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x82\x04\x81\x16\x91\x16a\x10.V[o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16B\x10\x15a\x07BW`@Q\x7F\x1EJ\x9F:\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16Bo\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x17\x90U_a\x07\x9CsB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x11a\x0C\x8EV[\x90P_a\x07\xBCsB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x19a\x0C\x8EV[\x90P_a\x07\xDCsB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x1Aa\x0C\x8EV[\x90P_a\x07\xFCsB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x1Ba\x0C\x8EV[\x90Pa\x08\x07_a\x0E\xDBV[_\x82\x82a\x08\x14\x86\x88a\x10^V[a\x08\x1E\x91\x90a\x10^V[a\x08(\x91\x90a\x10^V[\x90P\x80_\x03a\x08cW`@Q\x7F\xC8\x97.R\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\x01`@Q\x80\x91\x03\x90\xFD[_\x80T`@Q\x7FT\xE7\xF4-\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\x81\x01\x88\x90R`$\x81\x01\x87\x90R`D\x81\x01\x85\x90R`d\x81\x01\x86\x90Rb\x01\0\0\x90\x91\x04s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90cT\xE7\xF4-\x90`\x84\x01_`@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x08\xE9W=_\x80>=_\xFD[PPPP`@Q=_\x82>`\x1F=\x90\x81\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x82\x01`@Ra\t.\x91\x90\x81\x01\x90a\x11\x1CV[\x80Q\x90\x91P_\x81\x90\x03a\tmW`@Q\x7Fv9p\xD6\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\x01`@Q\x80\x91\x03\x90\xFD[_\x80[\x82\x81\x10\x15a\n\x1DW_\x84\x82\x81Q\x81\x10a\t\x8BWa\t\x8Ba\x11\xEBV[` \x02` \x01\x01Q` \x01Q\x90P\x80_\x03a\t\xA6WPa\n\x15V[_a\t\xCD\x86\x84\x81Q\x81\x10a\t\xBCWa\t\xBCa\x11\xEBV[` \x02` \x01\x01Q_\x01Q\x83a\x0F\x01V[\x90P\x80a\n\x06W`@Q\x7F\xD6\x8D\x1B\x18\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\x01`@Q\x80\x91\x03\x90\xFD[a\n\x10\x82\x85a\x10^V[\x93PPP[`\x01\x01a\tpV[P\x83\x81\x14a\nWW`@Q\x7F\x9C\x01\xEA\xC0\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\x01`@Q\x80\x91\x03\x90\xFD[\x7Fs\xF9\xA12A\xA1\x84\x8E\xC1W\x96\x7F:\x85`\x17\t5>ao\x1F&\x05\xD8\x18\xC0\xF2\xD2\x17t\xDF\x83\x85`@Qa\n\x88\x92\x91\x90a\x12\x18V[`@Q\x80\x91\x03\x90\xA1PPPPPPPPV[_Ta\x01\0\x90\x04`\xFF\x16\x15\x80\x80\x15a\n\xB8WP_T`\x01`\xFF\x90\x91\x16\x10[\x80a\n\xD1WP0;\x15\x80\x15a\n\xD1WP_T`\xFF\x16`\x01\x14[a\x0BaW`@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\x82\x01R`.`$\x82\x01R\x7FInitializable: contract is alrea`D\x82\x01R\x7Fdy initialized\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01`@Q\x80\x91\x03\x90\xFD[_\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x16`\x01\x17\x90U\x80\x15a\x0B\xBDW_\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\x16a\x01\0\x17\x90U[_\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xFF\xFF\x16b\x01\0\0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x85\x16\x02\x17\x90Ur\x01Q\x80\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFFB\x16\x17`\x01U\x80\x15a\x0C\x8AW_\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\x16\x90U`@Q`\x01\x81R\x7F\x7F&\xB8?\xF9n\x1F+jh/\x138R\xF6y\x8A\t\xC4e\xDA\x95\x92\x14`\xCE\xFB8G@$\x98\x90` \x01a\x04\xC3V[PPV[_`\x01\x82s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\x825m\x8A`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x0C\xDAW=_\x80>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x0C\xFE\x91\x90a\x12\xB3V[`\x01\x81\x11\x15a\r\x0FWa\r\x0Fa\x12\x86V[\x14a\rFW`@Q\x7F\xB4rl\xBE\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\x01`@Q\x80\x91\x03\x90\xFD[0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x82s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16cf\xD0\x03\xAC`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\r\xA6W=_\x80>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\r\xCA\x91\x90a\x0F\xE6V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14a\x0E\x17W`@Q\x7F\xC38\x0C\xEF\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\x01`@Q\x80\x91\x03\x90\xFD[Ga\x0E!\x83a\x0E\xDBV[\x82s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c<\xCF\xD6\x0B`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81_\x87Z\xF1\x15\x80\x15a\x0EkW=_\x80>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x0E\x8F\x91\x90a\x12\xD1V[\x91PG\x82a\x0E\x9D\x83\x83a\x12\xE8V[\x14a\x0E\xD4W`@Q\x7F\x87\xC9\x1C\\\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\x01`@Q\x80\x91\x03\x90\xFD[PP\x91\x90PV[\x80\x7F!4m\xDD\xACB\xCC\x16:e#\xEE\xFC\x19\xDF\x98\x1D\xF75,\x87\r\xC3\xB0\xB1zj\x92\xFCo\xE8\x13]PV[_a\x0F\r\x83Z\x84a\x0F\x14V[\x93\x92PPPV[_\x80_\x80_\x85\x88\x88\xF1\x94\x93PPPPV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x0FFW_\x80\xFD[PV[_` \x82\x84\x03\x12\x15a\x0FYW_\x80\xFD[\x815a\x0F\r\x81a\x0F%V[` \x81R_\x82Q\x80` \x84\x01R\x80` \x85\x01`@\x85\x01^_`@\x82\x85\x01\x01R`@\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0`\x1F\x83\x01\x16\x84\x01\x01\x91PP\x92\x91PPV[_` \x82\x84\x03\x12\x15a\x0F\xC7W_\x80\xFD[\x815o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x0F\rW_\x80\xFD[_` \x82\x84\x03\x12\x15a\x0F\xF6W_\x80\xFD[\x81Qa\x0F\r\x81a\x0F%V[\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_R`\x11`\x04R`$_\xFD[o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x81\x16\x83\x82\x16\x01\x90\x80\x82\x11\x15a\x10WWa\x10Wa\x10\x01V[P\x92\x91PPV[\x80\x82\x01\x80\x82\x11\x15a\x10qWa\x10qa\x10\x01V[\x92\x91PPV[\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_R`A`\x04R`$_\xFD[`@\x80Q\x90\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a\x10\xC7Wa\x10\xC7a\x10wV[`@R\x90V[`@Q`\x1F\x82\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a\x11\x14Wa\x11\x14a\x10wV[`@R\x91\x90PV[_` \x80\x83\x85\x03\x12\x15a\x11-W_\x80\xFD[\x82Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x11DW_\x80\xFD[\x81\x85\x01\x91P\x85`\x1F\x83\x01\x12a\x11WW_\x80\xFD[\x81Q\x81\x81\x11\x15a\x11iWa\x11ia\x10wV[a\x11w\x84\x82`\x05\x1B\x01a\x10\xCDV[\x81\x81R\x84\x81\x01\x92P`\x06\x91\x90\x91\x1B\x83\x01\x84\x01\x90\x87\x82\x11\x15a\x11\x96W_\x80\xFD[\x92\x84\x01\x92[\x81\x84\x10\x15a\x11\xE0W`@\x84\x89\x03\x12\x15a\x11\xB2W_\x80\xFD[a\x11\xBAa\x10\xA4V[\x84Qa\x11\xC5\x81a\x0F%V[\x81R\x84\x86\x01Q\x86\x82\x01R\x83R`@\x90\x93\x01\x92\x91\x84\x01\x91a\x11\x9BV[\x97\x96PPPPPPPV[\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_R`2`\x04R`$_\xFD[`@\x80\x82R\x83Q\x82\x82\x01\x81\x90R_\x91\x90` \x90``\x85\x01\x90\x82\x88\x01\x85[\x82\x81\x10\x15a\x12pW\x81Q\x80Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x85R\x85\x01Q\x85\x85\x01R\x92\x85\x01\x92\x90\x84\x01\x90`\x01\x01a\x125V[PPP\x80\x93PPPP\x82` \x83\x01R\x93\x92PPPV[\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_R`!`\x04R`$_\xFD[_` \x82\x84\x03\x12\x15a\x12\xC3W_\x80\xFD[\x81Q`\x02\x81\x10a\x0F\rW_\x80\xFD[_` \x82\x84\x03\x12\x15a\x12\xE1W_\x80\xFD[PQ\x91\x90PV[\x81\x81\x03\x81\x81\x11\x15a\x10qWa\x10qa\x10\x01V\xFE\xA1dsolcC\0\x08\x19\0\n", + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `FeeSplitter_DisbursementIntervalNotReached()` and selector `0x1e4a9f3a`. +```solidity +error FeeSplitter_DisbursementIntervalNotReached(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct FeeSplitter_DisbursementIntervalNotReached; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: FeeSplitter_DisbursementIntervalNotReached) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for FeeSplitter_DisbursementIntervalNotReached { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for FeeSplitter_DisbursementIntervalNotReached { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "FeeSplitter_DisbursementIntervalNotReached()"; + const SELECTOR: [u8; 4] = [30u8, 74u8, 159u8, 58u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `FeeSplitter_ExceedsMaxFeeDisbursementTime()` and selector `0x30b9f35e`. +```solidity +error FeeSplitter_ExceedsMaxFeeDisbursementTime(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct FeeSplitter_ExceedsMaxFeeDisbursementTime; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: FeeSplitter_ExceedsMaxFeeDisbursementTime) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for FeeSplitter_ExceedsMaxFeeDisbursementTime { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for FeeSplitter_ExceedsMaxFeeDisbursementTime { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "FeeSplitter_ExceedsMaxFeeDisbursementTime()"; + const SELECTOR: [u8; 4] = [48u8, 185u8, 243u8, 94u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `FeeSplitter_FailedToSendToRevenueShareRecipient()` and selector `0xd68d1b18`. +```solidity +error FeeSplitter_FailedToSendToRevenueShareRecipient(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct FeeSplitter_FailedToSendToRevenueShareRecipient; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: FeeSplitter_FailedToSendToRevenueShareRecipient) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for FeeSplitter_FailedToSendToRevenueShareRecipient { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError + for FeeSplitter_FailedToSendToRevenueShareRecipient { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "FeeSplitter_FailedToSendToRevenueShareRecipient()"; + const SELECTOR: [u8; 4] = [214u8, 141u8, 27u8, 24u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `FeeSplitter_FeeDisbursementIntervalCannotBeZero()` and selector `0xcf859161`. +```solidity +error FeeSplitter_FeeDisbursementIntervalCannotBeZero(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct FeeSplitter_FeeDisbursementIntervalCannotBeZero; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: FeeSplitter_FeeDisbursementIntervalCannotBeZero) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for FeeSplitter_FeeDisbursementIntervalCannotBeZero { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError + for FeeSplitter_FeeDisbursementIntervalCannotBeZero { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "FeeSplitter_FeeDisbursementIntervalCannotBeZero()"; + const SELECTOR: [u8; 4] = [207u8, 133u8, 145u8, 97u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `FeeSplitter_FeeShareInfoEmpty()` and selector `0x763970d6`. +```solidity +error FeeSplitter_FeeShareInfoEmpty(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct FeeSplitter_FeeShareInfoEmpty; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: FeeSplitter_FeeShareInfoEmpty) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for FeeSplitter_FeeShareInfoEmpty { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for FeeSplitter_FeeShareInfoEmpty { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "FeeSplitter_FeeShareInfoEmpty()"; + const SELECTOR: [u8; 4] = [118u8, 57u8, 112u8, 214u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `FeeSplitter_FeeVaultMustWithdrawToFeeSplitter()` and selector `0xc3380cef`. +```solidity +error FeeSplitter_FeeVaultMustWithdrawToFeeSplitter(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct FeeSplitter_FeeVaultMustWithdrawToFeeSplitter; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: FeeSplitter_FeeVaultMustWithdrawToFeeSplitter) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for FeeSplitter_FeeVaultMustWithdrawToFeeSplitter { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError + for FeeSplitter_FeeVaultMustWithdrawToFeeSplitter { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "FeeSplitter_FeeVaultMustWithdrawToFeeSplitter()"; + const SELECTOR: [u8; 4] = [195u8, 56u8, 12u8, 239u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `FeeSplitter_FeeVaultMustWithdrawToL2()` and selector `0xb4726cbe`. +```solidity +error FeeSplitter_FeeVaultMustWithdrawToL2(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct FeeSplitter_FeeVaultMustWithdrawToL2; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: FeeSplitter_FeeVaultMustWithdrawToL2) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for FeeSplitter_FeeVaultMustWithdrawToL2 { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for FeeSplitter_FeeVaultMustWithdrawToL2 { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "FeeSplitter_FeeVaultMustWithdrawToL2()"; + const SELECTOR: [u8; 4] = [180u8, 114u8, 108u8, 190u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `FeeSplitter_FeeVaultWithdrawalAmountMismatch()` and selector `0x87c91c5c`. +```solidity +error FeeSplitter_FeeVaultWithdrawalAmountMismatch(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct FeeSplitter_FeeVaultWithdrawalAmountMismatch; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: FeeSplitter_FeeVaultWithdrawalAmountMismatch) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for FeeSplitter_FeeVaultWithdrawalAmountMismatch { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for FeeSplitter_FeeVaultWithdrawalAmountMismatch { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "FeeSplitter_FeeVaultWithdrawalAmountMismatch()"; + const SELECTOR: [u8; 4] = [135u8, 201u8, 28u8, 92u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `FeeSplitter_NoFeesCollected()` and selector `0xc8972e52`. +```solidity +error FeeSplitter_NoFeesCollected(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct FeeSplitter_NoFeesCollected; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: FeeSplitter_NoFeesCollected) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for FeeSplitter_NoFeesCollected { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for FeeSplitter_NoFeesCollected { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "FeeSplitter_NoFeesCollected()"; + const SELECTOR: [u8; 4] = [200u8, 151u8, 46u8, 82u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `FeeSplitter_OnlyProxyAdminOwner()` and selector `0x38bac742`. +```solidity +error FeeSplitter_OnlyProxyAdminOwner(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct FeeSplitter_OnlyProxyAdminOwner; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: FeeSplitter_OnlyProxyAdminOwner) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for FeeSplitter_OnlyProxyAdminOwner { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for FeeSplitter_OnlyProxyAdminOwner { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "FeeSplitter_OnlyProxyAdminOwner()"; + const SELECTOR: [u8; 4] = [56u8, 186u8, 199u8, 66u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `FeeSplitter_SenderNotCurrentVault()` and selector `0x14885cf9`. +```solidity +error FeeSplitter_SenderNotCurrentVault(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct FeeSplitter_SenderNotCurrentVault; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: FeeSplitter_SenderNotCurrentVault) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for FeeSplitter_SenderNotCurrentVault { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for FeeSplitter_SenderNotCurrentVault { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "FeeSplitter_SenderNotCurrentVault()"; + const SELECTOR: [u8; 4] = [20u8, 136u8, 92u8, 249u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `FeeSplitter_SharesCalculatorCannotBeZero()` and selector `0x99c6ec08`. +```solidity +error FeeSplitter_SharesCalculatorCannotBeZero(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct FeeSplitter_SharesCalculatorCannotBeZero; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: FeeSplitter_SharesCalculatorCannotBeZero) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for FeeSplitter_SharesCalculatorCannotBeZero { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for FeeSplitter_SharesCalculatorCannotBeZero { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "FeeSplitter_SharesCalculatorCannotBeZero()"; + const SELECTOR: [u8; 4] = [153u8, 198u8, 236u8, 8u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `FeeSplitter_SharesCalculatorMalformedOutput()` and selector `0x9c01eac0`. +```solidity +error FeeSplitter_SharesCalculatorMalformedOutput(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct FeeSplitter_SharesCalculatorMalformedOutput; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: FeeSplitter_SharesCalculatorMalformedOutput) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for FeeSplitter_SharesCalculatorMalformedOutput { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for FeeSplitter_SharesCalculatorMalformedOutput { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "FeeSplitter_SharesCalculatorMalformedOutput()"; + const SELECTOR: [u8; 4] = [156u8, 1u8, 234u8, 192u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `FeeDisbursementIntervalUpdated(uint128,uint128)` and selector `0x4492086b630ed3846eec0979dd87a71c814ceb1c6dab80ab81e3450b21e4de28`. +```solidity +event FeeDisbursementIntervalUpdated(uint128 oldFeeDisbursementInterval, uint128 newFeeDisbursementInterval); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct FeeDisbursementIntervalUpdated { + #[allow(missing_docs)] + pub oldFeeDisbursementInterval: u128, + #[allow(missing_docs)] + pub newFeeDisbursementInterval: u128, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for FeeDisbursementIntervalUpdated { + type DataTuple<'a> = ( + alloy::sol_types::sol_data::Uint<128>, + alloy::sol_types::sol_data::Uint<128>, + ); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,); + const SIGNATURE: &'static str = "FeeDisbursementIntervalUpdated(uint128,uint128)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 68u8, 146u8, 8u8, 107u8, 99u8, 14u8, 211u8, 132u8, 110u8, 236u8, 9u8, + 121u8, 221u8, 135u8, 167u8, 28u8, 129u8, 76u8, 235u8, 28u8, 109u8, 171u8, + 128u8, 171u8, 129u8, 227u8, 69u8, 11u8, 33u8, 228u8, 222u8, 40u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + oldFeeDisbursementInterval: data.0, + newFeeDisbursementInterval: data.1, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize( + &self.oldFeeDisbursementInterval, + ), + as alloy_sol_types::SolType>::tokenize( + &self.newFeeDisbursementInterval, + ), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(),) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for FeeDisbursementIntervalUpdated { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&FeeDisbursementIntervalUpdated> + for alloy_sol_types::private::LogData { + #[inline] + fn from( + this: &FeeDisbursementIntervalUpdated, + ) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `FeesDisbursed((address,uint256)[],uint256)` and selector `0x73f9a13241a1848ec157967f3a85601709353e616f1f2605d818c0f2d21774df`. +```solidity +event FeesDisbursed(ISharesCalculator.ShareInfo[] shareInfo, uint256 grossRevenue); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct FeesDisbursed { + #[allow(missing_docs)] + pub shareInfo: alloy::sol_types::private::Vec< + ::RustType, + >, + #[allow(missing_docs)] + pub grossRevenue: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for FeesDisbursed { + type DataTuple<'a> = ( + alloy::sol_types::sol_data::Array, + alloy::sol_types::sol_data::Uint<256>, + ); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,); + const SIGNATURE: &'static str = "FeesDisbursed((address,uint256)[],uint256)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 115u8, 249u8, 161u8, 50u8, 65u8, 161u8, 132u8, 142u8, 193u8, 87u8, 150u8, + 127u8, 58u8, 133u8, 96u8, 23u8, 9u8, 53u8, 62u8, 97u8, 111u8, 31u8, 38u8, + 5u8, 216u8, 24u8, 192u8, 242u8, 210u8, 23u8, 116u8, 223u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + shareInfo: data.0, + grossRevenue: data.1, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.shareInfo), + as alloy_sol_types::SolType>::tokenize(&self.grossRevenue), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(),) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for FeesDisbursed { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&FeesDisbursed> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &FeesDisbursed) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `FeesReceived(address,uint256,uint256)` and selector `0x213e72af0d3613bd643cff3059f872c1015e6541624e37872bf95eefbaf220a8`. +```solidity +event FeesReceived(address indexed sender, uint256 amount, uint256 newBalance); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct FeesReceived { + #[allow(missing_docs)] + pub sender: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub amount: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub newBalance: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for FeesReceived { + type DataTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + ); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "FeesReceived(address,uint256,uint256)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 33u8, 62u8, 114u8, 175u8, 13u8, 54u8, 19u8, 189u8, 100u8, 60u8, 255u8, + 48u8, 89u8, 248u8, 114u8, 193u8, 1u8, 94u8, 101u8, 65u8, 98u8, 78u8, + 55u8, 135u8, 43u8, 249u8, 94u8, 239u8, 186u8, 242u8, 32u8, 168u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + sender: topics.1, + amount: data.0, + newBalance: data.1, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.amount), + as alloy_sol_types::SolType>::tokenize(&self.newBalance), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.sender.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.sender, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for FeesReceived { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&FeesReceived> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &FeesReceived) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `Initialized(uint8)` and selector `0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498`. +```solidity +event Initialized(uint8 version); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct Initialized { + #[allow(missing_docs)] + pub version: u8, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for Initialized { + type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<8>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,); + const SIGNATURE: &'static str = "Initialized(uint8)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 127u8, 38u8, 184u8, 63u8, 249u8, 110u8, 31u8, 43u8, 106u8, 104u8, 47u8, + 19u8, 56u8, 82u8, 246u8, 121u8, 138u8, 9u8, 196u8, 101u8, 218u8, 149u8, + 146u8, 20u8, 96u8, 206u8, 251u8, 56u8, 71u8, 64u8, 36u8, 152u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { version: data.0 } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.version), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(),) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for Initialized { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&Initialized> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &Initialized) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `SharesCalculatorUpdated(address,address)` and selector `0x16417cc372deec0caee5f52e2ad77a5f07b4591fd56b4ff31b6e20f817d4daeb`. +```solidity +event SharesCalculatorUpdated(address oldSharesCalculator, address newSharesCalculator); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct SharesCalculatorUpdated { + #[allow(missing_docs)] + pub oldSharesCalculator: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub newSharesCalculator: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for SharesCalculatorUpdated { + type DataTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,); + const SIGNATURE: &'static str = "SharesCalculatorUpdated(address,address)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 22u8, 65u8, 124u8, 195u8, 114u8, 222u8, 236u8, 12u8, 174u8, 229u8, 245u8, + 46u8, 42u8, 215u8, 122u8, 95u8, 7u8, 180u8, 89u8, 31u8, 213u8, 107u8, + 79u8, 243u8, 27u8, 110u8, 32u8, 248u8, 23u8, 212u8, 218u8, 235u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + oldSharesCalculator: data.0, + newSharesCalculator: data.1, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + ::tokenize( + &self.oldSharesCalculator, + ), + ::tokenize( + &self.newSharesCalculator, + ), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(),) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for SharesCalculatorUpdated { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&SharesCalculatorUpdated> for alloy_sol_types::private::LogData { + #[inline] + fn from( + this: &SharesCalculatorUpdated, + ) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + /**Constructor`. +```solidity +constructor(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct constructorCall {} + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: constructorCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for constructorCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolConstructor for constructorCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `MAX_DISBURSEMENT_INTERVAL()` and selector `0x7dfbd049`. +```solidity +function MAX_DISBURSEMENT_INTERVAL() external view returns (uint128); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct MAX_DISBURSEMENT_INTERVALCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`MAX_DISBURSEMENT_INTERVAL()`](MAX_DISBURSEMENT_INTERVALCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct MAX_DISBURSEMENT_INTERVALReturn { + #[allow(missing_docs)] + pub _0: u128, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: MAX_DISBURSEMENT_INTERVALCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for MAX_DISBURSEMENT_INTERVALCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<128>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u128,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: MAX_DISBURSEMENT_INTERVALReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for MAX_DISBURSEMENT_INTERVALReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for MAX_DISBURSEMENT_INTERVALCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u128; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<128>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "MAX_DISBURSEMENT_INTERVAL()"; + const SELECTOR: [u8; 4] = [125u8, 251u8, 208u8, 73u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: MAX_DISBURSEMENT_INTERVALReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: MAX_DISBURSEMENT_INTERVALReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `disburseFees()` and selector `0xb87ea8d4`. +```solidity +function disburseFees() external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct disburseFeesCall; + ///Container type for the return parameters of the [`disburseFees()`](disburseFeesCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct disburseFeesReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: disburseFeesCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for disburseFeesCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: disburseFeesReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for disburseFeesReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl disburseFeesReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for disburseFeesCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = disburseFeesReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "disburseFees()"; + const SELECTOR: [u8; 4] = [184u8, 126u8, 168u8, 212u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + disburseFeesReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `feeDisbursementInterval()` and selector `0x0c0544a3`. +```solidity +function feeDisbursementInterval() external view returns (uint128); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct feeDisbursementIntervalCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`feeDisbursementInterval()`](feeDisbursementIntervalCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct feeDisbursementIntervalReturn { + #[allow(missing_docs)] + pub _0: u128, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: feeDisbursementIntervalCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for feeDisbursementIntervalCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<128>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u128,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: feeDisbursementIntervalReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for feeDisbursementIntervalReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for feeDisbursementIntervalCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u128; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<128>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "feeDisbursementInterval()"; + const SELECTOR: [u8; 4] = [12u8, 5u8, 68u8, 163u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: feeDisbursementIntervalReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: feeDisbursementIntervalReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `initialize(address)` and selector `0xc4d66de8`. +```solidity +function initialize(address _sharesCalculator) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct initializeCall { + #[allow(missing_docs)] + pub _sharesCalculator: alloy::sol_types::private::Address, + } + ///Container type for the return parameters of the [`initialize(address)`](initializeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct initializeReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: initializeCall) -> Self { + (value._sharesCalculator,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for initializeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _sharesCalculator: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: initializeReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for initializeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl initializeReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for initializeCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = initializeReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "initialize(address)"; + const SELECTOR: [u8; 4] = [196u8, 214u8, 109u8, 232u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._sharesCalculator, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + initializeReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `lastDisbursementTime()` and selector `0x394d2731`. +```solidity +function lastDisbursementTime() external view returns (uint128); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct lastDisbursementTimeCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`lastDisbursementTime()`](lastDisbursementTimeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct lastDisbursementTimeReturn { + #[allow(missing_docs)] + pub _0: u128, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: lastDisbursementTimeCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for lastDisbursementTimeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<128>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u128,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: lastDisbursementTimeReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for lastDisbursementTimeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for lastDisbursementTimeCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u128; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<128>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "lastDisbursementTime()"; + const SELECTOR: [u8; 4] = [57u8, 77u8, 39u8, 49u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: lastDisbursementTimeReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: lastDisbursementTimeReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `setFeeDisbursementInterval(uint128)` and selector `0x7fc81bb7`. +```solidity +function setFeeDisbursementInterval(uint128 _newFeeDisbursementInterval) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setFeeDisbursementIntervalCall { + #[allow(missing_docs)] + pub _newFeeDisbursementInterval: u128, + } + ///Container type for the return parameters of the [`setFeeDisbursementInterval(uint128)`](setFeeDisbursementIntervalCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setFeeDisbursementIntervalReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<128>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u128,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: setFeeDisbursementIntervalCall) -> Self { + (value._newFeeDisbursementInterval,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for setFeeDisbursementIntervalCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _newFeeDisbursementInterval: tuple.0, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: setFeeDisbursementIntervalReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for setFeeDisbursementIntervalReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl setFeeDisbursementIntervalReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken< + '_, + > { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for setFeeDisbursementIntervalCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Uint<128>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = setFeeDisbursementIntervalReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "setFeeDisbursementInterval(uint128)"; + const SELECTOR: [u8; 4] = [127u8, 200u8, 27u8, 183u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize( + &self._newFeeDisbursementInterval, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + setFeeDisbursementIntervalReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `setSharesCalculator(address)` and selector `0x0a7617b3`. +```solidity +function setSharesCalculator(address _newSharesCalculator) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setSharesCalculatorCall { + #[allow(missing_docs)] + pub _newSharesCalculator: alloy::sol_types::private::Address, + } + ///Container type for the return parameters of the [`setSharesCalculator(address)`](setSharesCalculatorCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setSharesCalculatorReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: setSharesCalculatorCall) -> Self { + (value._newSharesCalculator,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for setSharesCalculatorCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _newSharesCalculator: tuple.0, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: setSharesCalculatorReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for setSharesCalculatorReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl setSharesCalculatorReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for setSharesCalculatorCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = setSharesCalculatorReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "setSharesCalculator(address)"; + const SELECTOR: [u8; 4] = [10u8, 118u8, 23u8, 179u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._newSharesCalculator, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + setSharesCalculatorReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `sharesCalculator()` and selector `0xd61a398b`. +```solidity +function sharesCalculator() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct sharesCalculatorCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`sharesCalculator()`](sharesCalculatorCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct sharesCalculatorReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: sharesCalculatorCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for sharesCalculatorCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: sharesCalculatorReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for sharesCalculatorReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for sharesCalculatorCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "sharesCalculator()"; + const SELECTOR: [u8; 4] = [214u8, 26u8, 57u8, 139u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: sharesCalculatorReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: sharesCalculatorReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `version()` and selector `0x54fd4d50`. +```solidity +function version() external view returns (string memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`version()`](versionCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for versionCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::String; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "version()"; + const SELECTOR: [u8; 4] = [84u8, 253u8, 77u8, 80u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + } + }; + ///Container for all the [`FeeSplitter`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum FeeSplitterCalls { + #[allow(missing_docs)] + MAX_DISBURSEMENT_INTERVAL(MAX_DISBURSEMENT_INTERVALCall), + #[allow(missing_docs)] + disburseFees(disburseFeesCall), + #[allow(missing_docs)] + feeDisbursementInterval(feeDisbursementIntervalCall), + #[allow(missing_docs)] + initialize(initializeCall), + #[allow(missing_docs)] + lastDisbursementTime(lastDisbursementTimeCall), + #[allow(missing_docs)] + setFeeDisbursementInterval(setFeeDisbursementIntervalCall), + #[allow(missing_docs)] + setSharesCalculator(setSharesCalculatorCall), + #[allow(missing_docs)] + sharesCalculator(sharesCalculatorCall), + #[allow(missing_docs)] + version(versionCall), + } + impl FeeSplitterCalls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [10u8, 118u8, 23u8, 179u8], + [12u8, 5u8, 68u8, 163u8], + [57u8, 77u8, 39u8, 49u8], + [84u8, 253u8, 77u8, 80u8], + [125u8, 251u8, 208u8, 73u8], + [127u8, 200u8, 27u8, 183u8], + [184u8, 126u8, 168u8, 212u8], + [196u8, 214u8, 109u8, 232u8], + [214u8, 26u8, 57u8, 139u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(setSharesCalculator), + ::core::stringify!(feeDisbursementInterval), + ::core::stringify!(lastDisbursementTime), + ::core::stringify!(version), + ::core::stringify!(MAX_DISBURSEMENT_INTERVAL), + ::core::stringify!(setFeeDisbursementInterval), + ::core::stringify!(disburseFees), + ::core::stringify!(initialize), + ::core::stringify!(sharesCalculator), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for FeeSplitterCalls { + const NAME: &'static str = "FeeSplitterCalls"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 9usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::MAX_DISBURSEMENT_INTERVAL(_) => { + ::SELECTOR + } + Self::disburseFees(_) => { + ::SELECTOR + } + Self::feeDisbursementInterval(_) => { + ::SELECTOR + } + Self::initialize(_) => { + ::SELECTOR + } + Self::lastDisbursementTime(_) => { + ::SELECTOR + } + Self::setFeeDisbursementInterval(_) => { + ::SELECTOR + } + Self::setSharesCalculator(_) => { + ::SELECTOR + } + Self::sharesCalculator(_) => { + ::SELECTOR + } + Self::version(_) => ::SELECTOR, + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn setSharesCalculator( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FeeSplitterCalls::setSharesCalculator) + } + setSharesCalculator + }, + { + fn feeDisbursementInterval( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FeeSplitterCalls::feeDisbursementInterval) + } + feeDisbursementInterval + }, + { + fn lastDisbursementTime( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FeeSplitterCalls::lastDisbursementTime) + } + lastDisbursementTime + }, + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(FeeSplitterCalls::version) + } + version + }, + { + fn MAX_DISBURSEMENT_INTERVAL( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FeeSplitterCalls::MAX_DISBURSEMENT_INTERVAL) + } + MAX_DISBURSEMENT_INTERVAL + }, + { + fn setFeeDisbursementInterval( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FeeSplitterCalls::setFeeDisbursementInterval) + } + setFeeDisbursementInterval + }, + { + fn disburseFees( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FeeSplitterCalls::disburseFees) + } + disburseFees + }, + { + fn initialize( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FeeSplitterCalls::initialize) + } + initialize + }, + { + fn sharesCalculator( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FeeSplitterCalls::sharesCalculator) + } + sharesCalculator + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn setSharesCalculator( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FeeSplitterCalls::setSharesCalculator) + } + setSharesCalculator + }, + { + fn feeDisbursementInterval( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FeeSplitterCalls::feeDisbursementInterval) + } + feeDisbursementInterval + }, + { + fn lastDisbursementTime( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FeeSplitterCalls::lastDisbursementTime) + } + lastDisbursementTime + }, + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FeeSplitterCalls::version) + } + version + }, + { + fn MAX_DISBURSEMENT_INTERVAL( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FeeSplitterCalls::MAX_DISBURSEMENT_INTERVAL) + } + MAX_DISBURSEMENT_INTERVAL + }, + { + fn setFeeDisbursementInterval( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FeeSplitterCalls::setFeeDisbursementInterval) + } + setFeeDisbursementInterval + }, + { + fn disburseFees( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FeeSplitterCalls::disburseFees) + } + disburseFees + }, + { + fn initialize( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FeeSplitterCalls::initialize) + } + initialize + }, + { + fn sharesCalculator( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FeeSplitterCalls::sharesCalculator) + } + sharesCalculator + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::MAX_DISBURSEMENT_INTERVAL(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::disburseFees(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::feeDisbursementInterval(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::initialize(inner) => { + ::abi_encoded_size(inner) + } + Self::lastDisbursementTime(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::setFeeDisbursementInterval(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::setSharesCalculator(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::sharesCalculator(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::version(inner) => { + ::abi_encoded_size(inner) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::MAX_DISBURSEMENT_INTERVAL(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::disburseFees(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::feeDisbursementInterval(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::initialize(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::lastDisbursementTime(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::setFeeDisbursementInterval(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::setSharesCalculator(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::sharesCalculator(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::version(inner) => { + ::abi_encode_raw(inner, out) + } + } + } + } + ///Container for all the [`FeeSplitter`](self) custom errors. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum FeeSplitterErrors { + #[allow(missing_docs)] + FeeSplitter_DisbursementIntervalNotReached( + FeeSplitter_DisbursementIntervalNotReached, + ), + #[allow(missing_docs)] + FeeSplitter_ExceedsMaxFeeDisbursementTime( + FeeSplitter_ExceedsMaxFeeDisbursementTime, + ), + #[allow(missing_docs)] + FeeSplitter_FailedToSendToRevenueShareRecipient( + FeeSplitter_FailedToSendToRevenueShareRecipient, + ), + #[allow(missing_docs)] + FeeSplitter_FeeDisbursementIntervalCannotBeZero( + FeeSplitter_FeeDisbursementIntervalCannotBeZero, + ), + #[allow(missing_docs)] + FeeSplitter_FeeShareInfoEmpty(FeeSplitter_FeeShareInfoEmpty), + #[allow(missing_docs)] + FeeSplitter_FeeVaultMustWithdrawToFeeSplitter( + FeeSplitter_FeeVaultMustWithdrawToFeeSplitter, + ), + #[allow(missing_docs)] + FeeSplitter_FeeVaultMustWithdrawToL2(FeeSplitter_FeeVaultMustWithdrawToL2), + #[allow(missing_docs)] + FeeSplitter_FeeVaultWithdrawalAmountMismatch( + FeeSplitter_FeeVaultWithdrawalAmountMismatch, + ), + #[allow(missing_docs)] + FeeSplitter_NoFeesCollected(FeeSplitter_NoFeesCollected), + #[allow(missing_docs)] + FeeSplitter_OnlyProxyAdminOwner(FeeSplitter_OnlyProxyAdminOwner), + #[allow(missing_docs)] + FeeSplitter_SenderNotCurrentVault(FeeSplitter_SenderNotCurrentVault), + #[allow(missing_docs)] + FeeSplitter_SharesCalculatorCannotBeZero( + FeeSplitter_SharesCalculatorCannotBeZero, + ), + #[allow(missing_docs)] + FeeSplitter_SharesCalculatorMalformedOutput( + FeeSplitter_SharesCalculatorMalformedOutput, + ), + } + impl FeeSplitterErrors { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [20u8, 136u8, 92u8, 249u8], + [30u8, 74u8, 159u8, 58u8], + [48u8, 185u8, 243u8, 94u8], + [56u8, 186u8, 199u8, 66u8], + [118u8, 57u8, 112u8, 214u8], + [135u8, 201u8, 28u8, 92u8], + [153u8, 198u8, 236u8, 8u8], + [156u8, 1u8, 234u8, 192u8], + [180u8, 114u8, 108u8, 190u8], + [195u8, 56u8, 12u8, 239u8], + [200u8, 151u8, 46u8, 82u8], + [207u8, 133u8, 145u8, 97u8], + [214u8, 141u8, 27u8, 24u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(FeeSplitter_SenderNotCurrentVault), + ::core::stringify!(FeeSplitter_DisbursementIntervalNotReached), + ::core::stringify!(FeeSplitter_ExceedsMaxFeeDisbursementTime), + ::core::stringify!(FeeSplitter_OnlyProxyAdminOwner), + ::core::stringify!(FeeSplitter_FeeShareInfoEmpty), + ::core::stringify!(FeeSplitter_FeeVaultWithdrawalAmountMismatch), + ::core::stringify!(FeeSplitter_SharesCalculatorCannotBeZero), + ::core::stringify!(FeeSplitter_SharesCalculatorMalformedOutput), + ::core::stringify!(FeeSplitter_FeeVaultMustWithdrawToL2), + ::core::stringify!(FeeSplitter_FeeVaultMustWithdrawToFeeSplitter), + ::core::stringify!(FeeSplitter_NoFeesCollected), + ::core::stringify!(FeeSplitter_FeeDisbursementIntervalCannotBeZero), + ::core::stringify!(FeeSplitter_FailedToSendToRevenueShareRecipient), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for FeeSplitterErrors { + const NAME: &'static str = "FeeSplitterErrors"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 13usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::FeeSplitter_DisbursementIntervalNotReached(_) => { + ::SELECTOR + } + Self::FeeSplitter_ExceedsMaxFeeDisbursementTime(_) => { + ::SELECTOR + } + Self::FeeSplitter_FailedToSendToRevenueShareRecipient(_) => { + ::SELECTOR + } + Self::FeeSplitter_FeeDisbursementIntervalCannotBeZero(_) => { + ::SELECTOR + } + Self::FeeSplitter_FeeShareInfoEmpty(_) => { + ::SELECTOR + } + Self::FeeSplitter_FeeVaultMustWithdrawToFeeSplitter(_) => { + ::SELECTOR + } + Self::FeeSplitter_FeeVaultMustWithdrawToL2(_) => { + ::SELECTOR + } + Self::FeeSplitter_FeeVaultWithdrawalAmountMismatch(_) => { + ::SELECTOR + } + Self::FeeSplitter_NoFeesCollected(_) => { + ::SELECTOR + } + Self::FeeSplitter_OnlyProxyAdminOwner(_) => { + ::SELECTOR + } + Self::FeeSplitter_SenderNotCurrentVault(_) => { + ::SELECTOR + } + Self::FeeSplitter_SharesCalculatorCannotBeZero(_) => { + ::SELECTOR + } + Self::FeeSplitter_SharesCalculatorMalformedOutput(_) => { + ::SELECTOR + } + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn FeeSplitter_SenderNotCurrentVault( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FeeSplitterErrors::FeeSplitter_SenderNotCurrentVault) + } + FeeSplitter_SenderNotCurrentVault + }, + { + fn FeeSplitter_DisbursementIntervalNotReached( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + FeeSplitterErrors::FeeSplitter_DisbursementIntervalNotReached, + ) + } + FeeSplitter_DisbursementIntervalNotReached + }, + { + fn FeeSplitter_ExceedsMaxFeeDisbursementTime( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + FeeSplitterErrors::FeeSplitter_ExceedsMaxFeeDisbursementTime, + ) + } + FeeSplitter_ExceedsMaxFeeDisbursementTime + }, + { + fn FeeSplitter_OnlyProxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FeeSplitterErrors::FeeSplitter_OnlyProxyAdminOwner) + } + FeeSplitter_OnlyProxyAdminOwner + }, + { + fn FeeSplitter_FeeShareInfoEmpty( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FeeSplitterErrors::FeeSplitter_FeeShareInfoEmpty) + } + FeeSplitter_FeeShareInfoEmpty + }, + { + fn FeeSplitter_FeeVaultWithdrawalAmountMismatch( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + FeeSplitterErrors::FeeSplitter_FeeVaultWithdrawalAmountMismatch, + ) + } + FeeSplitter_FeeVaultWithdrawalAmountMismatch + }, + { + fn FeeSplitter_SharesCalculatorCannotBeZero( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + FeeSplitterErrors::FeeSplitter_SharesCalculatorCannotBeZero, + ) + } + FeeSplitter_SharesCalculatorCannotBeZero + }, + { + fn FeeSplitter_SharesCalculatorMalformedOutput( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + FeeSplitterErrors::FeeSplitter_SharesCalculatorMalformedOutput, + ) + } + FeeSplitter_SharesCalculatorMalformedOutput + }, + { + fn FeeSplitter_FeeVaultMustWithdrawToL2( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FeeSplitterErrors::FeeSplitter_FeeVaultMustWithdrawToL2) + } + FeeSplitter_FeeVaultMustWithdrawToL2 + }, + { + fn FeeSplitter_FeeVaultMustWithdrawToFeeSplitter( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + FeeSplitterErrors::FeeSplitter_FeeVaultMustWithdrawToFeeSplitter, + ) + } + FeeSplitter_FeeVaultMustWithdrawToFeeSplitter + }, + { + fn FeeSplitter_NoFeesCollected( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FeeSplitterErrors::FeeSplitter_NoFeesCollected) + } + FeeSplitter_NoFeesCollected + }, + { + fn FeeSplitter_FeeDisbursementIntervalCannotBeZero( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + FeeSplitterErrors::FeeSplitter_FeeDisbursementIntervalCannotBeZero, + ) + } + FeeSplitter_FeeDisbursementIntervalCannotBeZero + }, + { + fn FeeSplitter_FailedToSendToRevenueShareRecipient( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + FeeSplitterErrors::FeeSplitter_FailedToSendToRevenueShareRecipient, + ) + } + FeeSplitter_FailedToSendToRevenueShareRecipient + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn FeeSplitter_SenderNotCurrentVault( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FeeSplitterErrors::FeeSplitter_SenderNotCurrentVault) + } + FeeSplitter_SenderNotCurrentVault + }, + { + fn FeeSplitter_DisbursementIntervalNotReached( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + FeeSplitterErrors::FeeSplitter_DisbursementIntervalNotReached, + ) + } + FeeSplitter_DisbursementIntervalNotReached + }, + { + fn FeeSplitter_ExceedsMaxFeeDisbursementTime( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + FeeSplitterErrors::FeeSplitter_ExceedsMaxFeeDisbursementTime, + ) + } + FeeSplitter_ExceedsMaxFeeDisbursementTime + }, + { + fn FeeSplitter_OnlyProxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FeeSplitterErrors::FeeSplitter_OnlyProxyAdminOwner) + } + FeeSplitter_OnlyProxyAdminOwner + }, + { + fn FeeSplitter_FeeShareInfoEmpty( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FeeSplitterErrors::FeeSplitter_FeeShareInfoEmpty) + } + FeeSplitter_FeeShareInfoEmpty + }, + { + fn FeeSplitter_FeeVaultWithdrawalAmountMismatch( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + FeeSplitterErrors::FeeSplitter_FeeVaultWithdrawalAmountMismatch, + ) + } + FeeSplitter_FeeVaultWithdrawalAmountMismatch + }, + { + fn FeeSplitter_SharesCalculatorCannotBeZero( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + FeeSplitterErrors::FeeSplitter_SharesCalculatorCannotBeZero, + ) + } + FeeSplitter_SharesCalculatorCannotBeZero + }, + { + fn FeeSplitter_SharesCalculatorMalformedOutput( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + FeeSplitterErrors::FeeSplitter_SharesCalculatorMalformedOutput, + ) + } + FeeSplitter_SharesCalculatorMalformedOutput + }, + { + fn FeeSplitter_FeeVaultMustWithdrawToL2( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FeeSplitterErrors::FeeSplitter_FeeVaultMustWithdrawToL2) + } + FeeSplitter_FeeVaultMustWithdrawToL2 + }, + { + fn FeeSplitter_FeeVaultMustWithdrawToFeeSplitter( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + FeeSplitterErrors::FeeSplitter_FeeVaultMustWithdrawToFeeSplitter, + ) + } + FeeSplitter_FeeVaultMustWithdrawToFeeSplitter + }, + { + fn FeeSplitter_NoFeesCollected( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FeeSplitterErrors::FeeSplitter_NoFeesCollected) + } + FeeSplitter_NoFeesCollected + }, + { + fn FeeSplitter_FeeDisbursementIntervalCannotBeZero( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + FeeSplitterErrors::FeeSplitter_FeeDisbursementIntervalCannotBeZero, + ) + } + FeeSplitter_FeeDisbursementIntervalCannotBeZero + }, + { + fn FeeSplitter_FailedToSendToRevenueShareRecipient( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + FeeSplitterErrors::FeeSplitter_FailedToSendToRevenueShareRecipient, + ) + } + FeeSplitter_FailedToSendToRevenueShareRecipient + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::FeeSplitter_DisbursementIntervalNotReached(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::FeeSplitter_ExceedsMaxFeeDisbursementTime(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::FeeSplitter_FailedToSendToRevenueShareRecipient(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::FeeSplitter_FeeDisbursementIntervalCannotBeZero(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::FeeSplitter_FeeShareInfoEmpty(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::FeeSplitter_FeeVaultMustWithdrawToFeeSplitter(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::FeeSplitter_FeeVaultMustWithdrawToL2(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::FeeSplitter_FeeVaultWithdrawalAmountMismatch(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::FeeSplitter_NoFeesCollected(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::FeeSplitter_OnlyProxyAdminOwner(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::FeeSplitter_SenderNotCurrentVault(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::FeeSplitter_SharesCalculatorCannotBeZero(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::FeeSplitter_SharesCalculatorMalformedOutput(inner) => { + ::abi_encoded_size( + inner, + ) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::FeeSplitter_DisbursementIntervalNotReached(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::FeeSplitter_ExceedsMaxFeeDisbursementTime(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::FeeSplitter_FailedToSendToRevenueShareRecipient(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::FeeSplitter_FeeDisbursementIntervalCannotBeZero(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::FeeSplitter_FeeShareInfoEmpty(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::FeeSplitter_FeeVaultMustWithdrawToFeeSplitter(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::FeeSplitter_FeeVaultMustWithdrawToL2(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::FeeSplitter_FeeVaultWithdrawalAmountMismatch(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::FeeSplitter_NoFeesCollected(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::FeeSplitter_OnlyProxyAdminOwner(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::FeeSplitter_SenderNotCurrentVault(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::FeeSplitter_SharesCalculatorCannotBeZero(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::FeeSplitter_SharesCalculatorMalformedOutput(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + } + } + } + ///Container for all the [`FeeSplitter`](self) events. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum FeeSplitterEvents { + #[allow(missing_docs)] + FeeDisbursementIntervalUpdated(FeeDisbursementIntervalUpdated), + #[allow(missing_docs)] + FeesDisbursed(FeesDisbursed), + #[allow(missing_docs)] + FeesReceived(FeesReceived), + #[allow(missing_docs)] + Initialized(Initialized), + #[allow(missing_docs)] + SharesCalculatorUpdated(SharesCalculatorUpdated), + } + impl FeeSplitterEvents { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 32usize]] = &[ + [ + 22u8, 65u8, 124u8, 195u8, 114u8, 222u8, 236u8, 12u8, 174u8, 229u8, 245u8, + 46u8, 42u8, 215u8, 122u8, 95u8, 7u8, 180u8, 89u8, 31u8, 213u8, 107u8, + 79u8, 243u8, 27u8, 110u8, 32u8, 248u8, 23u8, 212u8, 218u8, 235u8, + ], + [ + 33u8, 62u8, 114u8, 175u8, 13u8, 54u8, 19u8, 189u8, 100u8, 60u8, 255u8, + 48u8, 89u8, 248u8, 114u8, 193u8, 1u8, 94u8, 101u8, 65u8, 98u8, 78u8, + 55u8, 135u8, 43u8, 249u8, 94u8, 239u8, 186u8, 242u8, 32u8, 168u8, + ], + [ + 68u8, 146u8, 8u8, 107u8, 99u8, 14u8, 211u8, 132u8, 110u8, 236u8, 9u8, + 121u8, 221u8, 135u8, 167u8, 28u8, 129u8, 76u8, 235u8, 28u8, 109u8, 171u8, + 128u8, 171u8, 129u8, 227u8, 69u8, 11u8, 33u8, 228u8, 222u8, 40u8, + ], + [ + 115u8, 249u8, 161u8, 50u8, 65u8, 161u8, 132u8, 142u8, 193u8, 87u8, 150u8, + 127u8, 58u8, 133u8, 96u8, 23u8, 9u8, 53u8, 62u8, 97u8, 111u8, 31u8, 38u8, + 5u8, 216u8, 24u8, 192u8, 242u8, 210u8, 23u8, 116u8, 223u8, + ], + [ + 127u8, 38u8, 184u8, 63u8, 249u8, 110u8, 31u8, 43u8, 106u8, 104u8, 47u8, + 19u8, 56u8, 82u8, 246u8, 121u8, 138u8, 9u8, 196u8, 101u8, 218u8, 149u8, + 146u8, 20u8, 96u8, 206u8, 251u8, 56u8, 71u8, 64u8, 36u8, 152u8, + ], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(SharesCalculatorUpdated), + ::core::stringify!(FeesReceived), + ::core::stringify!(FeeDisbursementIntervalUpdated), + ::core::stringify!(FeesDisbursed), + ::core::stringify!(Initialized), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolEventInterface for FeeSplitterEvents { + const NAME: &'static str = "FeeSplitterEvents"; + const COUNT: usize = 5usize; + fn decode_raw_log( + topics: &[alloy_sol_types::Word], + data: &[u8], + ) -> alloy_sol_types::Result { + match topics.first().copied() { + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::FeeDisbursementIntervalUpdated) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::FeesDisbursed) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::FeesReceived) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::Initialized) + } + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::SharesCalculatorUpdated) + } + _ => { + alloy_sol_types::private::Err(alloy_sol_types::Error::InvalidLog { + name: ::NAME, + log: alloy_sol_types::private::Box::new( + alloy_sol_types::private::LogData::new_unchecked( + topics.to_vec(), + data.to_vec().into(), + ), + ), + }) + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for FeeSplitterEvents { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + match self { + Self::FeeDisbursementIntervalUpdated(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::FeesDisbursed(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::FeesReceived(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::Initialized(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::SharesCalculatorUpdated(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + } + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + match self { + Self::FeeDisbursementIntervalUpdated(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::FeesDisbursed(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::FeesReceived(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::Initialized(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::SharesCalculatorUpdated(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`FeeSplitter`](self) contract instance. + +See the [wrapper's documentation](`FeeSplitterInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> FeeSplitterInstance { + FeeSplitterInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + FeeSplitterInstance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + FeeSplitterInstance::::deploy_builder(__provider) + } + /**A [`FeeSplitter`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`FeeSplitter`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct FeeSplitterInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for FeeSplitterInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("FeeSplitterInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > FeeSplitterInstance { + /**Creates a new wrapper around an on-chain [`FeeSplitter`](self) contract instance. + +See the [wrapper's documentation](`FeeSplitterInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl FeeSplitterInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> FeeSplitterInstance { + FeeSplitterInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > FeeSplitterInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`MAX_DISBURSEMENT_INTERVAL`] function. + pub fn MAX_DISBURSEMENT_INTERVAL( + &self, + ) -> alloy_contract::SolCallBuilder<&P, MAX_DISBURSEMENT_INTERVALCall, N> { + self.call_builder(&MAX_DISBURSEMENT_INTERVALCall) + } + ///Creates a new call builder for the [`disburseFees`] function. + pub fn disburseFees( + &self, + ) -> alloy_contract::SolCallBuilder<&P, disburseFeesCall, N> { + self.call_builder(&disburseFeesCall) + } + ///Creates a new call builder for the [`feeDisbursementInterval`] function. + pub fn feeDisbursementInterval( + &self, + ) -> alloy_contract::SolCallBuilder<&P, feeDisbursementIntervalCall, N> { + self.call_builder(&feeDisbursementIntervalCall) + } + ///Creates a new call builder for the [`initialize`] function. + pub fn initialize( + &self, + _sharesCalculator: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, initializeCall, N> { + self.call_builder( + &initializeCall { + _sharesCalculator, + }, + ) + } + ///Creates a new call builder for the [`lastDisbursementTime`] function. + pub fn lastDisbursementTime( + &self, + ) -> alloy_contract::SolCallBuilder<&P, lastDisbursementTimeCall, N> { + self.call_builder(&lastDisbursementTimeCall) + } + ///Creates a new call builder for the [`setFeeDisbursementInterval`] function. + pub fn setFeeDisbursementInterval( + &self, + _newFeeDisbursementInterval: u128, + ) -> alloy_contract::SolCallBuilder<&P, setFeeDisbursementIntervalCall, N> { + self.call_builder( + &setFeeDisbursementIntervalCall { + _newFeeDisbursementInterval, + }, + ) + } + ///Creates a new call builder for the [`setSharesCalculator`] function. + pub fn setSharesCalculator( + &self, + _newSharesCalculator: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, setSharesCalculatorCall, N> { + self.call_builder( + &setSharesCalculatorCall { + _newSharesCalculator, + }, + ) + } + ///Creates a new call builder for the [`sharesCalculator`] function. + pub fn sharesCalculator( + &self, + ) -> alloy_contract::SolCallBuilder<&P, sharesCalculatorCall, N> { + self.call_builder(&sharesCalculatorCall) + } + ///Creates a new call builder for the [`version`] function. + pub fn version(&self) -> alloy_contract::SolCallBuilder<&P, versionCall, N> { + self.call_builder(&versionCall) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > FeeSplitterInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + ///Creates a new event filter for the [`FeeDisbursementIntervalUpdated`] event. + pub fn FeeDisbursementIntervalUpdated_filter( + &self, + ) -> alloy_contract::Event<&P, FeeDisbursementIntervalUpdated, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`FeesDisbursed`] event. + pub fn FeesDisbursed_filter( + &self, + ) -> alloy_contract::Event<&P, FeesDisbursed, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`FeesReceived`] event. + pub fn FeesReceived_filter(&self) -> alloy_contract::Event<&P, FeesReceived, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`Initialized`] event. + pub fn Initialized_filter(&self) -> alloy_contract::Event<&P, Initialized, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`SharesCalculatorUpdated`] event. + pub fn SharesCalculatorUpdated_filter( + &self, + ) -> alloy_contract::Event<&P, SharesCalculatorUpdated, N> { + self.event_filter::() + } + } +} diff --git a/bindings/rust/src/fee_vault.rs b/bindings/rust/src/fee_vault.rs new file mode 100644 index 000000000..9765cae55 --- /dev/null +++ b/bindings/rust/src/fee_vault.rs @@ -0,0 +1,4708 @@ +///Module containing a contract's types and functions. +/** + +```solidity +library Types { + type WithdrawalNetwork is uint8; +} +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod Types { + use super::*; + use alloy::sol_types as alloy_sol_types; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct WithdrawalNetwork(u8); + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for u8 { + #[inline] + fn stv_to_tokens( + &self, + ) -> as alloy_sol_types::SolType>::Token<'_> { + alloy_sol_types::private::SolTypeValue::< + alloy::sol_types::sol_data::Uint<8>, + >::stv_to_tokens(self) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + as alloy_sol_types::SolType>::tokenize(self) + .0 + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::SolType>::abi_encode_packed_to(self, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + as alloy_sol_types::SolType>::abi_encoded_size(self) + } + } + impl WithdrawalNetwork { + /// The Solidity type name. + pub const NAME: &'static str = stringify!(@ name); + /// Convert from the underlying value type. + #[inline] + pub const fn from_underlying(value: u8) -> Self { + Self(value) + } + /// Return the underlying value. + #[inline] + pub const fn into_underlying(self) -> u8 { + self.0 + } + /// Return the single encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode(&self) -> alloy_sol_types::private::Vec { + ::abi_encode(&self.0) + } + /// Return the packed encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec { + ::abi_encode_packed(&self.0) + } + } + #[automatically_derived] + impl From for WithdrawalNetwork { + fn from(value: u8) -> Self { + Self::from_underlying(value) + } + } + #[automatically_derived] + impl From for u8 { + fn from(value: WithdrawalNetwork) -> Self { + value.into_underlying() + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for WithdrawalNetwork { + type RustType = u8; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = Self::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + Self::type_check(token).is_ok() + } + #[inline] + fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> { + as alloy_sol_types::SolType>::type_check(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + as alloy_sol_types::SolType>::detokenize(token) + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for WithdrawalNetwork { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + as alloy_sol_types::EventTopic>::topic_preimage_length(rust) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out) + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + as alloy_sol_types::EventTopic>::encode_topic(rust) + } + } + }; + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`Types`](self) contract instance. + +See the [wrapper's documentation](`TypesInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(address: alloy_sol_types::private::Address, __provider: P) -> TypesInstance { + TypesInstance::::new(address, __provider) + } + /**A [`Types`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`Types`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct TypesInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for TypesInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("TypesInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > TypesInstance { + /**Creates a new wrapper around an on-chain [`Types`](self) contract instance. + +See the [wrapper's documentation](`TypesInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl TypesInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> TypesInstance { + TypesInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > TypesInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > TypesInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + } +} +/** + +Generated by the following Solidity interface... +```solidity +library Types { + type WithdrawalNetwork is uint8; +} + +interface FeeVault { + error FeeVault_OnlyProxyAdminOwner(); + error InvalidInitialization(); + error NotInitializing(); + + event Initialized(uint64 version); + event MinWithdrawalAmountUpdated(uint256 oldWithdrawalAmount, uint256 newWithdrawalAmount); + event RecipientUpdated(address oldRecipient, address newRecipient); + event Withdrawal(uint256 value, address to, address from); + event Withdrawal(uint256 value, address to, address from, Types.WithdrawalNetwork withdrawalNetwork); + event WithdrawalNetworkUpdated(Types.WithdrawalNetwork oldWithdrawalNetwork, Types.WithdrawalNetwork newWithdrawalNetwork); + + receive() external payable; + + function MIN_WITHDRAWAL_AMOUNT() external view returns (uint256); + function RECIPIENT() external view returns (address); + function WITHDRAWAL_NETWORK() external view returns (Types.WithdrawalNetwork); + function initialize(address _recipient, uint256 _minWithdrawalAmount, Types.WithdrawalNetwork _withdrawalNetwork) external; + function minWithdrawalAmount() external view returns (uint256); + function recipient() external view returns (address); + function setMinWithdrawalAmount(uint256 _newMinWithdrawalAmount) external; + function setRecipient(address _newRecipient) external; + function setWithdrawalNetwork(Types.WithdrawalNetwork _newWithdrawalNetwork) external; + function totalProcessed() external view returns (uint256); + function withdraw() external returns (uint256 value_); + function withdrawalNetwork() external view returns (Types.WithdrawalNetwork); +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "receive", + "stateMutability": "payable" + }, + { + "type": "function", + "name": "MIN_WITHDRAWAL_AMOUNT", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "RECIPIENT", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "WITHDRAWAL_NETWORK", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint8", + "internalType": "enum Types.WithdrawalNetwork" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "initialize", + "inputs": [ + { + "name": "_recipient", + "type": "address", + "internalType": "address" + }, + { + "name": "_minWithdrawalAmount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_withdrawalNetwork", + "type": "uint8", + "internalType": "enum Types.WithdrawalNetwork" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "minWithdrawalAmount", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "recipient", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "setMinWithdrawalAmount", + "inputs": [ + { + "name": "_newMinWithdrawalAmount", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "setRecipient", + "inputs": [ + { + "name": "_newRecipient", + "type": "address", + "internalType": "address" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "setWithdrawalNetwork", + "inputs": [ + { + "name": "_newWithdrawalNetwork", + "type": "uint8", + "internalType": "enum Types.WithdrawalNetwork" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "totalProcessed", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "withdraw", + "inputs": [], + "outputs": [ + { + "name": "value_", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "withdrawalNetwork", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint8", + "internalType": "enum Types.WithdrawalNetwork" + } + ], + "stateMutability": "view" + }, + { + "type": "event", + "name": "Initialized", + "inputs": [ + { + "name": "version", + "type": "uint64", + "indexed": false, + "internalType": "uint64" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "MinWithdrawalAmountUpdated", + "inputs": [ + { + "name": "oldWithdrawalAmount", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + }, + { + "name": "newWithdrawalAmount", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "RecipientUpdated", + "inputs": [ + { + "name": "oldRecipient", + "type": "address", + "indexed": false, + "internalType": "address" + }, + { + "name": "newRecipient", + "type": "address", + "indexed": false, + "internalType": "address" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "Withdrawal", + "inputs": [ + { + "name": "value", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + }, + { + "name": "to", + "type": "address", + "indexed": false, + "internalType": "address" + }, + { + "name": "from", + "type": "address", + "indexed": false, + "internalType": "address" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "Withdrawal", + "inputs": [ + { + "name": "value", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + }, + { + "name": "to", + "type": "address", + "indexed": false, + "internalType": "address" + }, + { + "name": "from", + "type": "address", + "indexed": false, + "internalType": "address" + }, + { + "name": "withdrawalNetwork", + "type": "uint8", + "indexed": false, + "internalType": "enum Types.WithdrawalNetwork" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "WithdrawalNetworkUpdated", + "inputs": [ + { + "name": "oldWithdrawalNetwork", + "type": "uint8", + "indexed": false, + "internalType": "enum Types.WithdrawalNetwork" + }, + { + "name": "newWithdrawalNetwork", + "type": "uint8", + "indexed": false, + "internalType": "enum Types.WithdrawalNetwork" + } + ], + "anonymous": false + }, + { + "type": "error", + "name": "FeeVault_OnlyProxyAdminOwner", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidInitialization", + "inputs": [] + }, + { + "type": "error", + "name": "NotInitializing", + "inputs": [] + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod FeeVault { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"", + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `FeeVault_OnlyProxyAdminOwner()` and selector `0x7cd7e09f`. +```solidity +error FeeVault_OnlyProxyAdminOwner(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct FeeVault_OnlyProxyAdminOwner; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: FeeVault_OnlyProxyAdminOwner) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for FeeVault_OnlyProxyAdminOwner { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for FeeVault_OnlyProxyAdminOwner { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "FeeVault_OnlyProxyAdminOwner()"; + const SELECTOR: [u8; 4] = [124u8, 215u8, 224u8, 159u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidInitialization()` and selector `0xf92ee8a9`. +```solidity +error InvalidInitialization(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidInitialization; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InvalidInitialization) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InvalidInitialization { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidInitialization { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidInitialization()"; + const SELECTOR: [u8; 4] = [249u8, 46u8, 232u8, 169u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `NotInitializing()` and selector `0xd7e6bcf8`. +```solidity +error NotInitializing(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct NotInitializing; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: NotInitializing) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for NotInitializing { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for NotInitializing { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "NotInitializing()"; + const SELECTOR: [u8; 4] = [215u8, 230u8, 188u8, 248u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `Initialized(uint64)` and selector `0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2`. +```solidity +event Initialized(uint64 version); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct Initialized { + #[allow(missing_docs)] + pub version: u64, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for Initialized { + type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,); + const SIGNATURE: &'static str = "Initialized(uint64)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 199u8, 245u8, 5u8, 178u8, 243u8, 113u8, 174u8, 33u8, 117u8, 238u8, 73u8, + 19u8, 244u8, 73u8, 158u8, 31u8, 38u8, 51u8, 167u8, 181u8, 147u8, 99u8, + 33u8, 238u8, 209u8, 205u8, 174u8, 182u8, 17u8, 81u8, 129u8, 210u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { version: data.0 } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.version), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(),) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for Initialized { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&Initialized> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &Initialized) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `MinWithdrawalAmountUpdated(uint256,uint256)` and selector `0x895a067c78583e800418fabf3da26a9496aab2ff3429cebdf7fefa642b2e4203`. +```solidity +event MinWithdrawalAmountUpdated(uint256 oldWithdrawalAmount, uint256 newWithdrawalAmount); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct MinWithdrawalAmountUpdated { + #[allow(missing_docs)] + pub oldWithdrawalAmount: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub newWithdrawalAmount: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for MinWithdrawalAmountUpdated { + type DataTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + ); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,); + const SIGNATURE: &'static str = "MinWithdrawalAmountUpdated(uint256,uint256)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 137u8, 90u8, 6u8, 124u8, 120u8, 88u8, 62u8, 128u8, 4u8, 24u8, 250u8, + 191u8, 61u8, 162u8, 106u8, 148u8, 150u8, 170u8, 178u8, 255u8, 52u8, 41u8, + 206u8, 189u8, 247u8, 254u8, 250u8, 100u8, 43u8, 46u8, 66u8, 3u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + oldWithdrawalAmount: data.0, + newWithdrawalAmount: data.1, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.oldWithdrawalAmount), + as alloy_sol_types::SolType>::tokenize(&self.newWithdrawalAmount), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(),) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for MinWithdrawalAmountUpdated { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&MinWithdrawalAmountUpdated> for alloy_sol_types::private::LogData { + #[inline] + fn from( + this: &MinWithdrawalAmountUpdated, + ) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `RecipientUpdated(address,address)` and selector `0x62e69886a5df0ba8ffcacbfc1388754e7abd9bde24b036354c561f1acd4e4593`. +```solidity +event RecipientUpdated(address oldRecipient, address newRecipient); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct RecipientUpdated { + #[allow(missing_docs)] + pub oldRecipient: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub newRecipient: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for RecipientUpdated { + type DataTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,); + const SIGNATURE: &'static str = "RecipientUpdated(address,address)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 98u8, 230u8, 152u8, 134u8, 165u8, 223u8, 11u8, 168u8, 255u8, 202u8, + 203u8, 252u8, 19u8, 136u8, 117u8, 78u8, 122u8, 189u8, 155u8, 222u8, 36u8, + 176u8, 54u8, 53u8, 76u8, 86u8, 31u8, 26u8, 205u8, 78u8, 69u8, 147u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + oldRecipient: data.0, + newRecipient: data.1, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + ::tokenize( + &self.oldRecipient, + ), + ::tokenize( + &self.newRecipient, + ), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(),) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for RecipientUpdated { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&RecipientUpdated> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &RecipientUpdated) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `Withdrawal(uint256,address,address)` and selector `0xc8a211cc64b6ed1b50595a9fcb1932b6d1e5a6e8ef15b60e5b1f988ea9086bba`. +```solidity +event Withdrawal(uint256 value, address to, address from); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct Withdrawal_0 { + #[allow(missing_docs)] + pub value: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub from: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for Withdrawal_0 { + type DataTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,); + const SIGNATURE: &'static str = "Withdrawal(uint256,address,address)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 200u8, 162u8, 17u8, 204u8, 100u8, 182u8, 237u8, 27u8, 80u8, 89u8, 90u8, + 159u8, 203u8, 25u8, 50u8, 182u8, 209u8, 229u8, 166u8, 232u8, 239u8, 21u8, + 182u8, 14u8, 91u8, 31u8, 152u8, 142u8, 169u8, 8u8, 107u8, 186u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + value: data.0, + to: data.1, + from: data.2, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.value), + ::tokenize( + &self.to, + ), + ::tokenize( + &self.from, + ), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(),) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for Withdrawal_0 { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&Withdrawal_0> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &Withdrawal_0) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `Withdrawal(uint256,address,address,uint8)` and selector `0x38e04cbeb8c10f8f568618aa75be0f10b6729b8b4237743b4de20cbcde2839ee`. +```solidity +event Withdrawal(uint256 value, address to, address from, Types.WithdrawalNetwork withdrawalNetwork); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct Withdrawal_1 { + #[allow(missing_docs)] + pub value: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub from: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub withdrawalNetwork: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for Withdrawal_1 { + type DataTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + Types::WithdrawalNetwork, + ); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,); + const SIGNATURE: &'static str = "Withdrawal(uint256,address,address,uint8)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 56u8, 224u8, 76u8, 190u8, 184u8, 193u8, 15u8, 143u8, 86u8, 134u8, 24u8, + 170u8, 117u8, 190u8, 15u8, 16u8, 182u8, 114u8, 155u8, 139u8, 66u8, 55u8, + 116u8, 59u8, 77u8, 226u8, 12u8, 188u8, 222u8, 40u8, 57u8, 238u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + value: data.0, + to: data.1, + from: data.2, + withdrawalNetwork: data.3, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.value), + ::tokenize( + &self.to, + ), + ::tokenize( + &self.from, + ), + ::tokenize( + &self.withdrawalNetwork, + ), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(),) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for Withdrawal_1 { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&Withdrawal_1> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &Withdrawal_1) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `WithdrawalNetworkUpdated(uint8,uint8)` and selector `0xf2ec44eb1c3b3acd547b76333eb2c4b27eee311860c57a9fdb04c95f62398fc8`. +```solidity +event WithdrawalNetworkUpdated(Types.WithdrawalNetwork oldWithdrawalNetwork, Types.WithdrawalNetwork newWithdrawalNetwork); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct WithdrawalNetworkUpdated { + #[allow(missing_docs)] + pub oldWithdrawalNetwork: ::RustType, + #[allow(missing_docs)] + pub newWithdrawalNetwork: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for WithdrawalNetworkUpdated { + type DataTuple<'a> = (Types::WithdrawalNetwork, Types::WithdrawalNetwork); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,); + const SIGNATURE: &'static str = "WithdrawalNetworkUpdated(uint8,uint8)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 242u8, 236u8, 68u8, 235u8, 28u8, 59u8, 58u8, 205u8, 84u8, 123u8, 118u8, + 51u8, 62u8, 178u8, 196u8, 178u8, 126u8, 238u8, 49u8, 24u8, 96u8, 197u8, + 122u8, 159u8, 219u8, 4u8, 201u8, 95u8, 98u8, 57u8, 143u8, 200u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + oldWithdrawalNetwork: data.0, + newWithdrawalNetwork: data.1, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + ::tokenize( + &self.oldWithdrawalNetwork, + ), + ::tokenize( + &self.newWithdrawalNetwork, + ), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(),) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for WithdrawalNetworkUpdated { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&WithdrawalNetworkUpdated> for alloy_sol_types::private::LogData { + #[inline] + fn from( + this: &WithdrawalNetworkUpdated, + ) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `MIN_WITHDRAWAL_AMOUNT()` and selector `0xd3e5792b`. +```solidity +function MIN_WITHDRAWAL_AMOUNT() external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct MIN_WITHDRAWAL_AMOUNTCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`MIN_WITHDRAWAL_AMOUNT()`](MIN_WITHDRAWAL_AMOUNTCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct MIN_WITHDRAWAL_AMOUNTReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: MIN_WITHDRAWAL_AMOUNTCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for MIN_WITHDRAWAL_AMOUNTCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: MIN_WITHDRAWAL_AMOUNTReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for MIN_WITHDRAWAL_AMOUNTReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for MIN_WITHDRAWAL_AMOUNTCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "MIN_WITHDRAWAL_AMOUNT()"; + const SELECTOR: [u8; 4] = [211u8, 229u8, 121u8, 43u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: MIN_WITHDRAWAL_AMOUNTReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: MIN_WITHDRAWAL_AMOUNTReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `RECIPIENT()` and selector `0x0d9019e1`. +```solidity +function RECIPIENT() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct RECIPIENTCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`RECIPIENT()`](RECIPIENTCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct RECIPIENTReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: RECIPIENTCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for RECIPIENTCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: RECIPIENTReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for RECIPIENTReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for RECIPIENTCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "RECIPIENT()"; + const SELECTOR: [u8; 4] = [13u8, 144u8, 25u8, 225u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: RECIPIENTReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: RECIPIENTReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `WITHDRAWAL_NETWORK()` and selector `0xd0e12f90`. +```solidity +function WITHDRAWAL_NETWORK() external view returns (Types.WithdrawalNetwork); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct WITHDRAWAL_NETWORKCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`WITHDRAWAL_NETWORK()`](WITHDRAWAL_NETWORKCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct WITHDRAWAL_NETWORKReturn { + #[allow(missing_docs)] + pub _0: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: WITHDRAWAL_NETWORKCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for WITHDRAWAL_NETWORKCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Types::WithdrawalNetwork,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: WITHDRAWAL_NETWORKReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for WITHDRAWAL_NETWORKReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for WITHDRAWAL_NETWORKCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (Types::WithdrawalNetwork,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "WITHDRAWAL_NETWORK()"; + const SELECTOR: [u8; 4] = [208u8, 225u8, 47u8, 144u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: WITHDRAWAL_NETWORKReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: WITHDRAWAL_NETWORKReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `initialize(address,uint256,uint8)` and selector `0xb49dc741`. +```solidity +function initialize(address _recipient, uint256 _minWithdrawalAmount, Types.WithdrawalNetwork _withdrawalNetwork) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct initializeCall { + #[allow(missing_docs)] + pub _recipient: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _minWithdrawalAmount: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _withdrawalNetwork: ::RustType, + } + ///Container type for the return parameters of the [`initialize(address,uint256,uint8)`](initializeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct initializeReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + Types::WithdrawalNetwork, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: initializeCall) -> Self { + ( + value._recipient, + value._minWithdrawalAmount, + value._withdrawalNetwork, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for initializeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _recipient: tuple.0, + _minWithdrawalAmount: tuple.1, + _withdrawalNetwork: tuple.2, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: initializeReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for initializeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl initializeReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for initializeCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + Types::WithdrawalNetwork, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = initializeReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "initialize(address,uint256,uint8)"; + const SELECTOR: [u8; 4] = [180u8, 157u8, 199u8, 65u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._recipient, + ), + as alloy_sol_types::SolType>::tokenize(&self._minWithdrawalAmount), + ::tokenize( + &self._withdrawalNetwork, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + initializeReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `minWithdrawalAmount()` and selector `0x8312f149`. +```solidity +function minWithdrawalAmount() external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct minWithdrawalAmountCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`minWithdrawalAmount()`](minWithdrawalAmountCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct minWithdrawalAmountReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: minWithdrawalAmountCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for minWithdrawalAmountCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: minWithdrawalAmountReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for minWithdrawalAmountReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for minWithdrawalAmountCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "minWithdrawalAmount()"; + const SELECTOR: [u8; 4] = [131u8, 18u8, 241u8, 73u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: minWithdrawalAmountReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: minWithdrawalAmountReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `recipient()` and selector `0x66d003ac`. +```solidity +function recipient() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct recipientCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`recipient()`](recipientCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct recipientReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: recipientCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for recipientCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: recipientReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for recipientReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for recipientCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "recipient()"; + const SELECTOR: [u8; 4] = [102u8, 208u8, 3u8, 172u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: recipientReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: recipientReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `setMinWithdrawalAmount(uint256)` and selector `0x85b5b14d`. +```solidity +function setMinWithdrawalAmount(uint256 _newMinWithdrawalAmount) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setMinWithdrawalAmountCall { + #[allow(missing_docs)] + pub _newMinWithdrawalAmount: alloy::sol_types::private::primitives::aliases::U256, + } + ///Container type for the return parameters of the [`setMinWithdrawalAmount(uint256)`](setMinWithdrawalAmountCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setMinWithdrawalAmountReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: setMinWithdrawalAmountCall) -> Self { + (value._newMinWithdrawalAmount,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for setMinWithdrawalAmountCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _newMinWithdrawalAmount: tuple.0, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: setMinWithdrawalAmountReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for setMinWithdrawalAmountReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl setMinWithdrawalAmountReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken< + '_, + > { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for setMinWithdrawalAmountCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = setMinWithdrawalAmountReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "setMinWithdrawalAmount(uint256)"; + const SELECTOR: [u8; 4] = [133u8, 181u8, 177u8, 77u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize( + &self._newMinWithdrawalAmount, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + setMinWithdrawalAmountReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `setRecipient(address)` and selector `0x3bbed4a0`. +```solidity +function setRecipient(address _newRecipient) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setRecipientCall { + #[allow(missing_docs)] + pub _newRecipient: alloy::sol_types::private::Address, + } + ///Container type for the return parameters of the [`setRecipient(address)`](setRecipientCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setRecipientReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: setRecipientCall) -> Self { + (value._newRecipient,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for setRecipientCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _newRecipient: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: setRecipientReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for setRecipientReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl setRecipientReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for setRecipientCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = setRecipientReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "setRecipient(address)"; + const SELECTOR: [u8; 4] = [59u8, 190u8, 212u8, 160u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._newRecipient, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + setRecipientReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `setWithdrawalNetwork(uint8)` and selector `0x307f2962`. +```solidity +function setWithdrawalNetwork(Types.WithdrawalNetwork _newWithdrawalNetwork) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setWithdrawalNetworkCall { + #[allow(missing_docs)] + pub _newWithdrawalNetwork: ::RustType, + } + ///Container type for the return parameters of the [`setWithdrawalNetwork(uint8)`](setWithdrawalNetworkCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setWithdrawalNetworkReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Types::WithdrawalNetwork,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: setWithdrawalNetworkCall) -> Self { + (value._newWithdrawalNetwork,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for setWithdrawalNetworkCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _newWithdrawalNetwork: tuple.0, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: setWithdrawalNetworkReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for setWithdrawalNetworkReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl setWithdrawalNetworkReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken< + '_, + > { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for setWithdrawalNetworkCall { + type Parameters<'a> = (Types::WithdrawalNetwork,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = setWithdrawalNetworkReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "setWithdrawalNetwork(uint8)"; + const SELECTOR: [u8; 4] = [48u8, 127u8, 41u8, 98u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._newWithdrawalNetwork, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + setWithdrawalNetworkReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `totalProcessed()` and selector `0x84411d65`. +```solidity +function totalProcessed() external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct totalProcessedCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`totalProcessed()`](totalProcessedCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct totalProcessedReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: totalProcessedCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for totalProcessedCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: totalProcessedReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for totalProcessedReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for totalProcessedCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "totalProcessed()"; + const SELECTOR: [u8; 4] = [132u8, 65u8, 29u8, 101u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: totalProcessedReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: totalProcessedReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `withdraw()` and selector `0x3ccfd60b`. +```solidity +function withdraw() external returns (uint256 value_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct withdrawCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`withdraw()`](withdrawCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct withdrawReturn { + #[allow(missing_docs)] + pub value_: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: withdrawCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for withdrawCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: withdrawReturn) -> Self { + (value.value_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for withdrawReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { value_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for withdrawCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "withdraw()"; + const SELECTOR: [u8; 4] = [60u8, 207u8, 214u8, 11u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: withdrawReturn = r.into(); + r.value_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: withdrawReturn = r.into(); + r.value_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `withdrawalNetwork()` and selector `0x82356d8a`. +```solidity +function withdrawalNetwork() external view returns (Types.WithdrawalNetwork); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct withdrawalNetworkCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`withdrawalNetwork()`](withdrawalNetworkCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct withdrawalNetworkReturn { + #[allow(missing_docs)] + pub _0: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: withdrawalNetworkCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for withdrawalNetworkCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Types::WithdrawalNetwork,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: withdrawalNetworkReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for withdrawalNetworkReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for withdrawalNetworkCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (Types::WithdrawalNetwork,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "withdrawalNetwork()"; + const SELECTOR: [u8; 4] = [130u8, 53u8, 109u8, 138u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: withdrawalNetworkReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: withdrawalNetworkReturn = r.into(); + r._0 + }) + } + } + }; + ///Container for all the [`FeeVault`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum FeeVaultCalls { + #[allow(missing_docs)] + MIN_WITHDRAWAL_AMOUNT(MIN_WITHDRAWAL_AMOUNTCall), + #[allow(missing_docs)] + RECIPIENT(RECIPIENTCall), + #[allow(missing_docs)] + WITHDRAWAL_NETWORK(WITHDRAWAL_NETWORKCall), + #[allow(missing_docs)] + initialize(initializeCall), + #[allow(missing_docs)] + minWithdrawalAmount(minWithdrawalAmountCall), + #[allow(missing_docs)] + recipient(recipientCall), + #[allow(missing_docs)] + setMinWithdrawalAmount(setMinWithdrawalAmountCall), + #[allow(missing_docs)] + setRecipient(setRecipientCall), + #[allow(missing_docs)] + setWithdrawalNetwork(setWithdrawalNetworkCall), + #[allow(missing_docs)] + totalProcessed(totalProcessedCall), + #[allow(missing_docs)] + withdraw(withdrawCall), + #[allow(missing_docs)] + withdrawalNetwork(withdrawalNetworkCall), + } + impl FeeVaultCalls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [13u8, 144u8, 25u8, 225u8], + [48u8, 127u8, 41u8, 98u8], + [59u8, 190u8, 212u8, 160u8], + [60u8, 207u8, 214u8, 11u8], + [102u8, 208u8, 3u8, 172u8], + [130u8, 53u8, 109u8, 138u8], + [131u8, 18u8, 241u8, 73u8], + [132u8, 65u8, 29u8, 101u8], + [133u8, 181u8, 177u8, 77u8], + [180u8, 157u8, 199u8, 65u8], + [208u8, 225u8, 47u8, 144u8], + [211u8, 229u8, 121u8, 43u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(RECIPIENT), + ::core::stringify!(setWithdrawalNetwork), + ::core::stringify!(setRecipient), + ::core::stringify!(withdraw), + ::core::stringify!(recipient), + ::core::stringify!(withdrawalNetwork), + ::core::stringify!(minWithdrawalAmount), + ::core::stringify!(totalProcessed), + ::core::stringify!(setMinWithdrawalAmount), + ::core::stringify!(initialize), + ::core::stringify!(WITHDRAWAL_NETWORK), + ::core::stringify!(MIN_WITHDRAWAL_AMOUNT), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for FeeVaultCalls { + const NAME: &'static str = "FeeVaultCalls"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 12usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::MIN_WITHDRAWAL_AMOUNT(_) => { + ::SELECTOR + } + Self::RECIPIENT(_) => { + ::SELECTOR + } + Self::WITHDRAWAL_NETWORK(_) => { + ::SELECTOR + } + Self::initialize(_) => { + ::SELECTOR + } + Self::minWithdrawalAmount(_) => { + ::SELECTOR + } + Self::recipient(_) => { + ::SELECTOR + } + Self::setMinWithdrawalAmount(_) => { + ::SELECTOR + } + Self::setRecipient(_) => { + ::SELECTOR + } + Self::setWithdrawalNetwork(_) => { + ::SELECTOR + } + Self::totalProcessed(_) => { + ::SELECTOR + } + Self::withdraw(_) => ::SELECTOR, + Self::withdrawalNetwork(_) => { + ::SELECTOR + } + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn RECIPIENT(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(FeeVaultCalls::RECIPIENT) + } + RECIPIENT + }, + { + fn setWithdrawalNetwork( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FeeVaultCalls::setWithdrawalNetwork) + } + setWithdrawalNetwork + }, + { + fn setRecipient( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FeeVaultCalls::setRecipient) + } + setRecipient + }, + { + fn withdraw(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(FeeVaultCalls::withdraw) + } + withdraw + }, + { + fn recipient(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(FeeVaultCalls::recipient) + } + recipient + }, + { + fn withdrawalNetwork( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FeeVaultCalls::withdrawalNetwork) + } + withdrawalNetwork + }, + { + fn minWithdrawalAmount( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FeeVaultCalls::minWithdrawalAmount) + } + minWithdrawalAmount + }, + { + fn totalProcessed( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FeeVaultCalls::totalProcessed) + } + totalProcessed + }, + { + fn setMinWithdrawalAmount( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FeeVaultCalls::setMinWithdrawalAmount) + } + setMinWithdrawalAmount + }, + { + fn initialize( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FeeVaultCalls::initialize) + } + initialize + }, + { + fn WITHDRAWAL_NETWORK( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FeeVaultCalls::WITHDRAWAL_NETWORK) + } + WITHDRAWAL_NETWORK + }, + { + fn MIN_WITHDRAWAL_AMOUNT( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FeeVaultCalls::MIN_WITHDRAWAL_AMOUNT) + } + MIN_WITHDRAWAL_AMOUNT + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn RECIPIENT(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FeeVaultCalls::RECIPIENT) + } + RECIPIENT + }, + { + fn setWithdrawalNetwork( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FeeVaultCalls::setWithdrawalNetwork) + } + setWithdrawalNetwork + }, + { + fn setRecipient( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FeeVaultCalls::setRecipient) + } + setRecipient + }, + { + fn withdraw(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FeeVaultCalls::withdraw) + } + withdraw + }, + { + fn recipient(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FeeVaultCalls::recipient) + } + recipient + }, + { + fn withdrawalNetwork( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FeeVaultCalls::withdrawalNetwork) + } + withdrawalNetwork + }, + { + fn minWithdrawalAmount( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FeeVaultCalls::minWithdrawalAmount) + } + minWithdrawalAmount + }, + { + fn totalProcessed( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FeeVaultCalls::totalProcessed) + } + totalProcessed + }, + { + fn setMinWithdrawalAmount( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FeeVaultCalls::setMinWithdrawalAmount) + } + setMinWithdrawalAmount + }, + { + fn initialize( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FeeVaultCalls::initialize) + } + initialize + }, + { + fn WITHDRAWAL_NETWORK( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FeeVaultCalls::WITHDRAWAL_NETWORK) + } + WITHDRAWAL_NETWORK + }, + { + fn MIN_WITHDRAWAL_AMOUNT( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FeeVaultCalls::MIN_WITHDRAWAL_AMOUNT) + } + MIN_WITHDRAWAL_AMOUNT + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::MIN_WITHDRAWAL_AMOUNT(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::RECIPIENT(inner) => { + ::abi_encoded_size(inner) + } + Self::WITHDRAWAL_NETWORK(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::initialize(inner) => { + ::abi_encoded_size(inner) + } + Self::minWithdrawalAmount(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::recipient(inner) => { + ::abi_encoded_size(inner) + } + Self::setMinWithdrawalAmount(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::setRecipient(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::setWithdrawalNetwork(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::totalProcessed(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::withdraw(inner) => { + ::abi_encoded_size(inner) + } + Self::withdrawalNetwork(inner) => { + ::abi_encoded_size( + inner, + ) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::MIN_WITHDRAWAL_AMOUNT(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::RECIPIENT(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::WITHDRAWAL_NETWORK(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::initialize(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::minWithdrawalAmount(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::recipient(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::setMinWithdrawalAmount(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::setRecipient(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::setWithdrawalNetwork(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::totalProcessed(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::withdraw(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::withdrawalNetwork(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + } + } + } + ///Container for all the [`FeeVault`](self) custom errors. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum FeeVaultErrors { + #[allow(missing_docs)] + FeeVault_OnlyProxyAdminOwner(FeeVault_OnlyProxyAdminOwner), + #[allow(missing_docs)] + InvalidInitialization(InvalidInitialization), + #[allow(missing_docs)] + NotInitializing(NotInitializing), + } + impl FeeVaultErrors { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [124u8, 215u8, 224u8, 159u8], + [215u8, 230u8, 188u8, 248u8], + [249u8, 46u8, 232u8, 169u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(FeeVault_OnlyProxyAdminOwner), + ::core::stringify!(NotInitializing), + ::core::stringify!(InvalidInitialization), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for FeeVaultErrors { + const NAME: &'static str = "FeeVaultErrors"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 3usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::FeeVault_OnlyProxyAdminOwner(_) => { + ::SELECTOR + } + Self::InvalidInitialization(_) => { + ::SELECTOR + } + Self::NotInitializing(_) => { + ::SELECTOR + } + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn FeeVault_OnlyProxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FeeVaultErrors::FeeVault_OnlyProxyAdminOwner) + } + FeeVault_OnlyProxyAdminOwner + }, + { + fn NotInitializing( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FeeVaultErrors::NotInitializing) + } + NotInitializing + }, + { + fn InvalidInitialization( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FeeVaultErrors::InvalidInitialization) + } + InvalidInitialization + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn FeeVault_OnlyProxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FeeVaultErrors::FeeVault_OnlyProxyAdminOwner) + } + FeeVault_OnlyProxyAdminOwner + }, + { + fn NotInitializing( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FeeVaultErrors::NotInitializing) + } + NotInitializing + }, + { + fn InvalidInitialization( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FeeVaultErrors::InvalidInitialization) + } + InvalidInitialization + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::FeeVault_OnlyProxyAdminOwner(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::InvalidInitialization(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::NotInitializing(inner) => { + ::abi_encoded_size( + inner, + ) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::FeeVault_OnlyProxyAdminOwner(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidInitialization(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::NotInitializing(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + } + } + } + ///Container for all the [`FeeVault`](self) events. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum FeeVaultEvents { + #[allow(missing_docs)] + Initialized(Initialized), + #[allow(missing_docs)] + MinWithdrawalAmountUpdated(MinWithdrawalAmountUpdated), + #[allow(missing_docs)] + RecipientUpdated(RecipientUpdated), + #[allow(missing_docs)] + Withdrawal_0(Withdrawal_0), + #[allow(missing_docs)] + Withdrawal_1(Withdrawal_1), + #[allow(missing_docs)] + WithdrawalNetworkUpdated(WithdrawalNetworkUpdated), + } + impl FeeVaultEvents { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 32usize]] = &[ + [ + 56u8, 224u8, 76u8, 190u8, 184u8, 193u8, 15u8, 143u8, 86u8, 134u8, 24u8, + 170u8, 117u8, 190u8, 15u8, 16u8, 182u8, 114u8, 155u8, 139u8, 66u8, 55u8, + 116u8, 59u8, 77u8, 226u8, 12u8, 188u8, 222u8, 40u8, 57u8, 238u8, + ], + [ + 98u8, 230u8, 152u8, 134u8, 165u8, 223u8, 11u8, 168u8, 255u8, 202u8, + 203u8, 252u8, 19u8, 136u8, 117u8, 78u8, 122u8, 189u8, 155u8, 222u8, 36u8, + 176u8, 54u8, 53u8, 76u8, 86u8, 31u8, 26u8, 205u8, 78u8, 69u8, 147u8, + ], + [ + 137u8, 90u8, 6u8, 124u8, 120u8, 88u8, 62u8, 128u8, 4u8, 24u8, 250u8, + 191u8, 61u8, 162u8, 106u8, 148u8, 150u8, 170u8, 178u8, 255u8, 52u8, 41u8, + 206u8, 189u8, 247u8, 254u8, 250u8, 100u8, 43u8, 46u8, 66u8, 3u8, + ], + [ + 199u8, 245u8, 5u8, 178u8, 243u8, 113u8, 174u8, 33u8, 117u8, 238u8, 73u8, + 19u8, 244u8, 73u8, 158u8, 31u8, 38u8, 51u8, 167u8, 181u8, 147u8, 99u8, + 33u8, 238u8, 209u8, 205u8, 174u8, 182u8, 17u8, 81u8, 129u8, 210u8, + ], + [ + 200u8, 162u8, 17u8, 204u8, 100u8, 182u8, 237u8, 27u8, 80u8, 89u8, 90u8, + 159u8, 203u8, 25u8, 50u8, 182u8, 209u8, 229u8, 166u8, 232u8, 239u8, 21u8, + 182u8, 14u8, 91u8, 31u8, 152u8, 142u8, 169u8, 8u8, 107u8, 186u8, + ], + [ + 242u8, 236u8, 68u8, 235u8, 28u8, 59u8, 58u8, 205u8, 84u8, 123u8, 118u8, + 51u8, 62u8, 178u8, 196u8, 178u8, 126u8, 238u8, 49u8, 24u8, 96u8, 197u8, + 122u8, 159u8, 219u8, 4u8, 201u8, 95u8, 98u8, 57u8, 143u8, 200u8, + ], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(Withdrawal_1), + ::core::stringify!(RecipientUpdated), + ::core::stringify!(MinWithdrawalAmountUpdated), + ::core::stringify!(Initialized), + ::core::stringify!(Withdrawal_0), + ::core::stringify!(WithdrawalNetworkUpdated), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolEventInterface for FeeVaultEvents { + const NAME: &'static str = "FeeVaultEvents"; + const COUNT: usize = 6usize; + fn decode_raw_log( + topics: &[alloy_sol_types::Word], + data: &[u8], + ) -> alloy_sol_types::Result { + match topics.first().copied() { + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::Initialized) + } + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::MinWithdrawalAmountUpdated) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::RecipientUpdated) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::Withdrawal_0) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::Withdrawal_1) + } + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::WithdrawalNetworkUpdated) + } + _ => { + alloy_sol_types::private::Err(alloy_sol_types::Error::InvalidLog { + name: ::NAME, + log: alloy_sol_types::private::Box::new( + alloy_sol_types::private::LogData::new_unchecked( + topics.to_vec(), + data.to_vec().into(), + ), + ), + }) + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for FeeVaultEvents { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + match self { + Self::Initialized(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::MinWithdrawalAmountUpdated(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::RecipientUpdated(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::Withdrawal_0(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::Withdrawal_1(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::WithdrawalNetworkUpdated(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + } + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + match self { + Self::Initialized(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::MinWithdrawalAmountUpdated(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::RecipientUpdated(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::Withdrawal_0(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::Withdrawal_1(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::WithdrawalNetworkUpdated(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`FeeVault`](self) contract instance. + +See the [wrapper's documentation](`FeeVaultInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> FeeVaultInstance { + FeeVaultInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + FeeVaultInstance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + FeeVaultInstance::::deploy_builder(__provider) + } + /**A [`FeeVault`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`FeeVault`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct FeeVaultInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for FeeVaultInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("FeeVaultInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > FeeVaultInstance { + /**Creates a new wrapper around an on-chain [`FeeVault`](self) contract instance. + +See the [wrapper's documentation](`FeeVaultInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl FeeVaultInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> FeeVaultInstance { + FeeVaultInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > FeeVaultInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`MIN_WITHDRAWAL_AMOUNT`] function. + pub fn MIN_WITHDRAWAL_AMOUNT( + &self, + ) -> alloy_contract::SolCallBuilder<&P, MIN_WITHDRAWAL_AMOUNTCall, N> { + self.call_builder(&MIN_WITHDRAWAL_AMOUNTCall) + } + ///Creates a new call builder for the [`RECIPIENT`] function. + pub fn RECIPIENT(&self) -> alloy_contract::SolCallBuilder<&P, RECIPIENTCall, N> { + self.call_builder(&RECIPIENTCall) + } + ///Creates a new call builder for the [`WITHDRAWAL_NETWORK`] function. + pub fn WITHDRAWAL_NETWORK( + &self, + ) -> alloy_contract::SolCallBuilder<&P, WITHDRAWAL_NETWORKCall, N> { + self.call_builder(&WITHDRAWAL_NETWORKCall) + } + ///Creates a new call builder for the [`initialize`] function. + pub fn initialize( + &self, + _recipient: alloy::sol_types::private::Address, + _minWithdrawalAmount: alloy::sol_types::private::primitives::aliases::U256, + _withdrawalNetwork: ::RustType, + ) -> alloy_contract::SolCallBuilder<&P, initializeCall, N> { + self.call_builder( + &initializeCall { + _recipient, + _minWithdrawalAmount, + _withdrawalNetwork, + }, + ) + } + ///Creates a new call builder for the [`minWithdrawalAmount`] function. + pub fn minWithdrawalAmount( + &self, + ) -> alloy_contract::SolCallBuilder<&P, minWithdrawalAmountCall, N> { + self.call_builder(&minWithdrawalAmountCall) + } + ///Creates a new call builder for the [`recipient`] function. + pub fn recipient(&self) -> alloy_contract::SolCallBuilder<&P, recipientCall, N> { + self.call_builder(&recipientCall) + } + ///Creates a new call builder for the [`setMinWithdrawalAmount`] function. + pub fn setMinWithdrawalAmount( + &self, + _newMinWithdrawalAmount: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, setMinWithdrawalAmountCall, N> { + self.call_builder( + &setMinWithdrawalAmountCall { + _newMinWithdrawalAmount, + }, + ) + } + ///Creates a new call builder for the [`setRecipient`] function. + pub fn setRecipient( + &self, + _newRecipient: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, setRecipientCall, N> { + self.call_builder(&setRecipientCall { _newRecipient }) + } + ///Creates a new call builder for the [`setWithdrawalNetwork`] function. + pub fn setWithdrawalNetwork( + &self, + _newWithdrawalNetwork: ::RustType, + ) -> alloy_contract::SolCallBuilder<&P, setWithdrawalNetworkCall, N> { + self.call_builder( + &setWithdrawalNetworkCall { + _newWithdrawalNetwork, + }, + ) + } + ///Creates a new call builder for the [`totalProcessed`] function. + pub fn totalProcessed( + &self, + ) -> alloy_contract::SolCallBuilder<&P, totalProcessedCall, N> { + self.call_builder(&totalProcessedCall) + } + ///Creates a new call builder for the [`withdraw`] function. + pub fn withdraw(&self) -> alloy_contract::SolCallBuilder<&P, withdrawCall, N> { + self.call_builder(&withdrawCall) + } + ///Creates a new call builder for the [`withdrawalNetwork`] function. + pub fn withdrawalNetwork( + &self, + ) -> alloy_contract::SolCallBuilder<&P, withdrawalNetworkCall, N> { + self.call_builder(&withdrawalNetworkCall) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > FeeVaultInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + ///Creates a new event filter for the [`Initialized`] event. + pub fn Initialized_filter(&self) -> alloy_contract::Event<&P, Initialized, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`MinWithdrawalAmountUpdated`] event. + pub fn MinWithdrawalAmountUpdated_filter( + &self, + ) -> alloy_contract::Event<&P, MinWithdrawalAmountUpdated, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`RecipientUpdated`] event. + pub fn RecipientUpdated_filter( + &self, + ) -> alloy_contract::Event<&P, RecipientUpdated, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`Withdrawal_0`] event. + pub fn Withdrawal_0_filter(&self) -> alloy_contract::Event<&P, Withdrawal_0, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`Withdrawal_1`] event. + pub fn Withdrawal_1_filter(&self) -> alloy_contract::Event<&P, Withdrawal_1, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`WithdrawalNetworkUpdated`] event. + pub fn WithdrawalNetworkUpdated_filter( + &self, + ) -> alloy_contract::Event<&P, WithdrawalNetworkUpdated, N> { + self.event_filter::() + } + } +} diff --git a/bindings/rust/src/fees_depositor.rs b/bindings/rust/src/fees_depositor.rs new file mode 100644 index 000000000..51b19c94d --- /dev/null +++ b/bindings/rust/src/fees_depositor.rs @@ -0,0 +1,5001 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface FeesDepositor { + error ProxyAdminOwnedBase_NotProxyAdmin(); + error ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner(); + error ProxyAdminOwnedBase_NotProxyAdminOwner(); + error ProxyAdminOwnedBase_NotResolvedDelegateProxy(); + error ProxyAdminOwnedBase_NotSharedProxyAdminOwner(); + error ProxyAdminOwnedBase_ProxyAdminNotFound(); + error ReinitializableBase_ZeroInitVersion(); + + event FeesDeposited(address indexed l2Recipient, uint256 amount); + event FundsReceived(address indexed sender, uint256 amount, uint256 newBalance); + event GasLimitUpdated(uint32 oldGasLimit, uint32 newGasLimit); + event Initialized(uint8 version); + event L2RecipientUpdated(address oldL2Recipient, address newL2Recipient); + event MinDepositAmountUpdated(uint96 oldMinDepositAmount, uint96 newMinDepositAmount); + + constructor(); + + receive() external payable; + + function gasLimit() external view returns (uint32); + function initVersion() external view returns (uint8); + function initialize(uint96 _minDepositAmount, address _l2Recipient, address _messenger, uint32 _gasLimit) external; + function l2Recipient() external view returns (address); + function messenger() external view returns (address); + function minDepositAmount() external view returns (uint96); + function proxyAdmin() external view returns (address); + function proxyAdminOwner() external view returns (address); + function setGasLimit(uint32 _newGasLimit) external; + function setL2Recipient(address _newL2Recipient) external; + function setMinDepositAmount(uint96 _newMinDepositAmount) external; + function version() external view returns (string memory); +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "constructor", + "inputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "receive", + "stateMutability": "payable" + }, + { + "type": "function", + "name": "gasLimit", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint32", + "internalType": "uint32" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "initVersion", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint8", + "internalType": "uint8" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "initialize", + "inputs": [ + { + "name": "_minDepositAmount", + "type": "uint96", + "internalType": "uint96" + }, + { + "name": "_l2Recipient", + "type": "address", + "internalType": "address" + }, + { + "name": "_messenger", + "type": "address", + "internalType": "contract IL1CrossDomainMessenger" + }, + { + "name": "_gasLimit", + "type": "uint32", + "internalType": "uint32" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "l2Recipient", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "messenger", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract IL1CrossDomainMessenger" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "minDepositAmount", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint96", + "internalType": "uint96" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "proxyAdmin", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract IProxyAdmin" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "proxyAdminOwner", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "setGasLimit", + "inputs": [ + { + "name": "_newGasLimit", + "type": "uint32", + "internalType": "uint32" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "setL2Recipient", + "inputs": [ + { + "name": "_newL2Recipient", + "type": "address", + "internalType": "address" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "setMinDepositAmount", + "inputs": [ + { + "name": "_newMinDepositAmount", + "type": "uint96", + "internalType": "uint96" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "version", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "view" + }, + { + "type": "event", + "name": "FeesDeposited", + "inputs": [ + { + "name": "l2Recipient", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "FundsReceived", + "inputs": [ + { + "name": "sender", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + }, + { + "name": "newBalance", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "GasLimitUpdated", + "inputs": [ + { + "name": "oldGasLimit", + "type": "uint32", + "indexed": false, + "internalType": "uint32" + }, + { + "name": "newGasLimit", + "type": "uint32", + "indexed": false, + "internalType": "uint32" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "Initialized", + "inputs": [ + { + "name": "version", + "type": "uint8", + "indexed": false, + "internalType": "uint8" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "L2RecipientUpdated", + "inputs": [ + { + "name": "oldL2Recipient", + "type": "address", + "indexed": false, + "internalType": "address" + }, + { + "name": "newL2Recipient", + "type": "address", + "indexed": false, + "internalType": "address" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "MinDepositAmountUpdated", + "inputs": [ + { + "name": "oldMinDepositAmount", + "type": "uint96", + "indexed": false, + "internalType": "uint96" + }, + { + "name": "newMinDepositAmount", + "type": "uint96", + "indexed": false, + "internalType": "uint96" + } + ], + "anonymous": false + }, + { + "type": "error", + "name": "ProxyAdminOwnedBase_NotProxyAdmin", + "inputs": [] + }, + { + "type": "error", + "name": "ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner", + "inputs": [] + }, + { + "type": "error", + "name": "ProxyAdminOwnedBase_NotProxyAdminOwner", + "inputs": [] + }, + { + "type": "error", + "name": "ProxyAdminOwnedBase_NotResolvedDelegateProxy", + "inputs": [] + }, + { + "type": "error", + "name": "ProxyAdminOwnedBase_NotSharedProxyAdminOwner", + "inputs": [] + }, + { + "type": "error", + "name": "ProxyAdminOwnedBase_ProxyAdminNotFound", + "inputs": [] + }, + { + "type": "error", + "name": "ReinitializableBase_ZeroInitVersion", + "inputs": [] + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod FeesDepositor { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x60a060405234801561001057600080fd5b50600160805261001e610023565b6100e3565b600054610100900460ff161561008f5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811610156100e1576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b608051610d9161010560003960008181610274015261048e0152610d916000f3fe6080604052600436106100cb5760003560e01c8063645006ca11610074578063a2a956171161004e578063a2a9561714610425578063dad544e014610445578063f68016b71461045a57600080fd5b8063645006ca1461038657806366125607146103c85780637b11936e146103e857600080fd5b80633e47158c116100a55780633e47158c146102fb57806352d84c621461031057806354fd4d501461033057600080fd5b80630de2db4d1461024057806338d38c97146102605780633cb747bf146102a357600080fd5b3661023b576040805134815247602082018190529133917f363f315f930a17d1266b86a20d6dd34b1cfbc5a9db9f13a65d06a689c3a2af8a910160405180910390a26001546bffffffffffffffffffffffff16811061023957600154600080546002546040517f3dbb202b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff6c0100000000000000000000000090950485166004820181905260606024830152606482019490945263ffffffff90911660448201529192620100009091041690633dbb202b9084906084016000604051808303818588803b1580156101ce57600080fd5b505af11580156101e2573d6000803e3d6000fd5b50505050508073ffffffffffffffffffffffffffffffffffffffff167f2acaf92365a0b69fb3570802396f62d51aabccd684036b72c3ce78699425e7ee8360405161022f91815260200190565b60405180910390a2505b005b600080fd5b34801561024c57600080fd5b5061023961025b366004610bde565b61048c565b34801561026c57600080fd5b5060405160ff7f00000000000000000000000000000000000000000000000000000000000000001681526020015b60405180910390f35b3480156102af57600080fd5b506000546102d69062010000900473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161029a565b34801561030757600080fd5b506102d661069e565b34801561031c57600080fd5b5061023961032b366004610c36565b6108a9565b34801561033c57600080fd5b506103796040518060400160405280600581526020017f312e302e3000000000000000000000000000000000000000000000000000000081525081565b60405161029a9190610c58565b34801561039257600080fd5b506001546103ab906bffffffffffffffffffffffff1681565b6040516bffffffffffffffffffffffff909116815260200161029a565b3480156103d457600080fd5b506102396103e3366004610ccb565b610928565b3480156103f457600080fd5b506001546102d6906c01000000000000000000000000900473ffffffffffffffffffffffffffffffffffffffff1681565b34801561043157600080fd5b50610239610440366004610ce8565b6109af565b34801561045157600080fd5b506102d6610a2e565b34801561046657600080fd5b506002546104779063ffffffff1681565b60405163ffffffff909116815260200161029a565b7f0000000000000000000000000000000000000000000000000000000000000000600054610100900460ff161580156104cc575060005460ff8083169116105b61055c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840160405180910390fd5b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001660ff831617610100179055610595610aab565b6000805473ffffffffffffffffffffffffffffffffffffffff8681166c01000000000000000000000000026bffffffffffffffffffffffff8916176001556002805463ffffffff87167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000009091161790557fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff9086166201000002167fffffffffffffffffffff000000000000000000000000000000000000000000ff9091161790556040517f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989061068f90839060ff91909116815260200190565b60405180910390a15050505050565b6000806106c97fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b905073ffffffffffffffffffffffffffffffffffffffff8116156106ec57919050565b6040518060400160405280601a81526020017f4f564d5f4c3143726f7373446f6d61696e4d657373656e67657200000000000081525051600261072f9190610d03565b604080513060208201526000918101919091527f4f564d5f4c3143726f7373446f6d61696e4d657373656e676572000000000000919091179061078a906060015b604051602081830303815290604052805190602001205490565b146107c1576040517f54e433cd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604080513060208201526001918101919091526000906107e390606001610770565b905073ffffffffffffffffffffffffffffffffffffffff811615610877578073ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561084c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108709190610d67565b9250505090565b6040517f332144db00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6108b1610b2e565b6002805463ffffffff8381167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000083168117909355604080519190921680825260208201939093527f84858bb3fb3ecf87e268ebef250ef9ad9cd53ef7973ef7a0ec9d89470bb00a8091015b60405180910390a15050565b610930610b2e565b6001805473ffffffffffffffffffffffffffffffffffffffff8381166c010000000000000000000000008181026bffffffffffffffffffffffff85161790945560408051949093049091168084526020840191909152917f158f04d12e0403fdd63fbced694e8f70d3b87d04d8e2dfad526f5fcf6e49bbcf910161091c565b6109b7610b2e565b600180546bffffffffffffffffffffffff8381167fffffffffffffffffffffffffffffffffffffffff00000000000000000000000083168117909355604080519190921680825260208201939093527f132832be4270c0d1573ca543c41517dd443fe9daf5f21a9c74940e6db282e229910161091c565b6000610a3861069e565b73ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a82573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aa69190610d67565b905090565b33610ab461069e565b73ffffffffffffffffffffffffffffffffffffffff1614158015610af5575033610adc610a2e565b73ffffffffffffffffffffffffffffffffffffffff1614155b15610b2c576040517fc4050a2600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b33610b37610a2e565b73ffffffffffffffffffffffffffffffffffffffff1614610b2c576040517f7f12c64b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80356bffffffffffffffffffffffff81168114610ba057600080fd5b919050565b73ffffffffffffffffffffffffffffffffffffffff81168114610bc757600080fd5b50565b803563ffffffff81168114610ba057600080fd5b60008060008060808587031215610bf457600080fd5b610bfd85610b84565b93506020850135610c0d81610ba5565b92506040850135610c1d81610ba5565b9150610c2b60608601610bca565b905092959194509250565b600060208284031215610c4857600080fd5b610c5182610bca565b9392505050565b600060208083528351808285015260005b81811015610c8557858101830151858201604001528201610c69565b81811115610c97576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b600060208284031215610cdd57600080fd5b8135610c5181610ba5565b600060208284031215610cfa57600080fd5b610c5182610b84565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615610d62577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b500290565b600060208284031215610d7957600080fd5b8151610c5181610ba556fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\xA0`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`\x01`\x80Ra\0\x1Ea\0#V[a\0\xE3V[`\0Ta\x01\0\x90\x04`\xFF\x16\x15a\0\x8FW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`'`$\x82\x01R\x7FInitializable: contract is initi`D\x82\x01Rfalizing`\xC8\x1B`d\x82\x01R`\x84\x01`@Q\x80\x91\x03\x90\xFD[`\0T`\xFF\x90\x81\x16\x10\x15a\0\xE1W`\0\x80T`\xFF\x19\x16`\xFF\x90\x81\x17\x90\x91U`@Q\x90\x81R\x7F\x7F&\xB8?\xF9n\x1F+jh/\x138R\xF6y\x8A\t\xC4e\xDA\x95\x92\x14`\xCE\xFB8G@$\x98\x90` \x01`@Q\x80\x91\x03\x90\xA1[V[`\x80Qa\r\x91a\x01\x05`\09`\0\x81\x81a\x02t\x01Ra\x04\x8E\x01Ra\r\x91`\0\xF3\xFE`\x80`@R`\x046\x10a\0\xCBW`\x005`\xE0\x1C\x80cdP\x06\xCA\x11a\0tW\x80c\xA2\xA9V\x17\x11a\0NW\x80c\xA2\xA9V\x17\x14a\x04%W\x80c\xDA\xD5D\xE0\x14a\x04EW\x80c\xF6\x80\x16\xB7\x14a\x04ZW`\0\x80\xFD[\x80cdP\x06\xCA\x14a\x03\x86W\x80cf\x12V\x07\x14a\x03\xC8W\x80c{\x11\x93n\x14a\x03\xE8W`\0\x80\xFD[\x80c>G\x15\x8C\x11a\0\xA5W\x80c>G\x15\x8C\x14a\x02\xFBW\x80cR\xD8Lb\x14a\x03\x10W\x80cT\xFDMP\x14a\x030W`\0\x80\xFD[\x80c\r\xE2\xDBM\x14a\x02@W\x80c8\xD3\x8C\x97\x14a\x02`W\x80c<\xB7G\xBF\x14a\x02\xA3W`\0\x80\xFD[6a\x02;W`@\x80Q4\x81RG` \x82\x01\x81\x90R\x913\x91\x7F6?1_\x93\n\x17\xD1&k\x86\xA2\rm\xD3K\x1C\xFB\xC5\xA9\xDB\x9F\x13\xA6]\x06\xA6\x89\xC3\xA2\xAF\x8A\x91\x01`@Q\x80\x91\x03\x90\xA2`\x01Tk\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81\x10a\x029W`\x01T`\0\x80T`\x02T`@Q\x7F=\xBB +\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\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFFl\x01\0\0\0\0\0\0\0\0\0\0\0\0\x90\x95\x04\x85\x16`\x04\x82\x01\x81\x90R```$\x83\x01R`d\x82\x01\x94\x90\x94Rc\xFF\xFF\xFF\xFF\x90\x91\x16`D\x82\x01R\x91\x92b\x01\0\0\x90\x91\x04\x16\x90c=\xBB +\x90\x84\x90`\x84\x01`\0`@Q\x80\x83\x03\x81\x85\x88\x80;\x15\x80\x15a\x01\xCEW`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x01\xE2W=`\0\x80>=`\0\xFD[PPPPP\x80s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F*\xCA\xF9#e\xA0\xB6\x9F\xB3W\x08\x029ob\xD5\x1A\xAB\xCC\xD6\x84\x03kr\xC3\xCExi\x94%\xE7\xEE\x83`@Qa\x02/\x91\x81R` \x01\x90V[`@Q\x80\x91\x03\x90\xA2P[\0[`\0\x80\xFD[4\x80\x15a\x02LW`\0\x80\xFD[Pa\x029a\x02[6`\x04a\x0B\xDEV[a\x04\x8CV[4\x80\x15a\x02lW`\0\x80\xFD[P`@Q`\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[4\x80\x15a\x02\xAFW`\0\x80\xFD[P`\0Ta\x02\xD6\x90b\x01\0\0\x90\x04s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01a\x02\x9AV[4\x80\x15a\x03\x07W`\0\x80\xFD[Pa\x02\xD6a\x06\x9EV[4\x80\x15a\x03\x1CW`\0\x80\xFD[Pa\x029a\x03+6`\x04a\x0C6V[a\x08\xA9V[4\x80\x15a\x03c\xB6\xE8\xEE\x11x\xD6\xA7\x17\x85\x0B]a\x03T\x90V[\x90Ps\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x15a\x06\xECW\x91\x90PV[`@Q\x80`@\x01`@R\x80`\x1A\x81R` \x01\x7FOVM_L1CrossDomainMessenger\0\0\0\0\0\0\x81RPQ`\x02a\x07/\x91\x90a\r\x03V[`@\x80Q0` \x82\x01R`\0\x91\x81\x01\x91\x90\x91R\x7FOVM_L1CrossDomainMessenger\0\0\0\0\0\0\x91\x90\x91\x17\x90a\x07\x8A\x90``\x01[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 T\x90V[\x14a\x07\xC1W`@Q\x7FT\xE43\xCD\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\x01`@Q\x80\x91\x03\x90\xFD[`@\x80Q0` \x82\x01R`\x01\x91\x81\x01\x91\x90\x91R`\0\x90a\x07\xE3\x90``\x01a\x07pV[\x90Ps\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x15a\x08wW\x80s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\x8D\xA5\xCB[`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x08LW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x08p\x91\x90a\rgV[\x92PPP\x90V[`@Q\x7F3!D\xDB\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\x01`@Q\x80\x91\x03\x90\xFD[a\x08\xB1a\x0B.V[`\x02\x80Tc\xFF\xFF\xFF\xFF\x83\x81\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\x83\x16\x81\x17\x90\x93U`@\x80Q\x91\x90\x92\x16\x80\x82R` \x82\x01\x93\x90\x93R\x7F\x84\x85\x8B\xB3\xFB>\xCF\x87\xE2h\xEB\xEF%\x0E\xF9\xAD\x9C\xD5>\xF7\x97>\xF7\xA0\xEC\x9D\x89G\x0B\xB0\n\x80\x91\x01[`@Q\x80\x91\x03\x90\xA1PPV[a\t0a\x0B.V[`\x01\x80Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x81\x16l\x01\0\0\0\0\0\0\0\0\0\0\0\0\x81\x81\x02k\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x85\x16\x17\x90\x94U`@\x80Q\x94\x90\x93\x04\x90\x91\x16\x80\x84R` \x84\x01\x91\x90\x91R\x91\x7F\x15\x8F\x04\xD1.\x04\x03\xFD\xD6?\xBC\xEDiN\x8Fp\xD3\xB8}\x04\xD8\xE2\xDF\xADRo_\xCFnI\xBB\xCF\x91\x01a\t\x1CV[a\t\xB7a\x0B.V[`\x01\x80Tk\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x81\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\x83\x16\x81\x17\x90\x93U`@\x80Q\x91\x90\x92\x16\x80\x82R` \x82\x01\x93\x90\x93R\x7F\x13(2\xBEBp\xC0\xD1W<\xA5C\xC4\x15\x17\xDDD?\xE9\xDA\xF5\xF2\x1A\x9Ct\x94\x0Em\xB2\x82\xE2)\x91\x01a\t\x1CV[`\0a\n8a\x06\x9EV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\x8D\xA5\xCB[`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\n\x82W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\n\xA6\x91\x90a\rgV[\x90P\x90V[3a\n\xB4a\x06\x9EV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14\x15\x80\x15a\n\xF5WP3a\n\xDCa\n.V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14\x15[\x15a\x0B,W`@Q\x7F\xC4\x05\n&\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\x01`@Q\x80\x91\x03\x90\xFD[V[3a\x0B7a\n.V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14a\x0B,W`@Q\x7F\x7F\x12\xC6K\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\x01`@Q\x80\x91\x03\x90\xFD[\x805k\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x0B\xA0W`\0\x80\xFD[\x91\x90PV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x0B\xC7W`\0\x80\xFD[PV[\x805c\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x0B\xA0W`\0\x80\xFD[`\0\x80`\0\x80`\x80\x85\x87\x03\x12\x15a\x0B\xF4W`\0\x80\xFD[a\x0B\xFD\x85a\x0B\x84V[\x93P` \x85\x015a\x0C\r\x81a\x0B\xA5V[\x92P`@\x85\x015a\x0C\x1D\x81a\x0B\xA5V[\x91Pa\x0C+``\x86\x01a\x0B\xCAV[\x90P\x92\x95\x91\x94P\x92PV[`\0` \x82\x84\x03\x12\x15a\x0CHW`\0\x80\xFD[a\x0CQ\x82a\x0B\xCAV[\x93\x92PPPV[`\0` \x80\x83R\x83Q\x80\x82\x85\x01R`\0[\x81\x81\x10\x15a\x0C\x85W\x85\x81\x01\x83\x01Q\x85\x82\x01`@\x01R\x82\x01a\x0CiV[\x81\x81\x11\x15a\x0C\x97W`\0`@\x83\x87\x01\x01R[P`\x1F\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x92\x90\x92\x01`@\x01\x93\x92PPPV[`\0` \x82\x84\x03\x12\x15a\x0C\xDDW`\0\x80\xFD[\x815a\x0CQ\x81a\x0B\xA5V[`\0` \x82\x84\x03\x12\x15a\x0C\xFAW`\0\x80\xFD[a\x0CQ\x82a\x0B\x84V[`\0\x81\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x04\x83\x11\x82\x15\x15\x16\x15a\rbW\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`\x11`\x04R`$`\0\xFD[P\x02\x90V[`\0` \x82\x84\x03\x12\x15a\ryW`\0\x80\xFD[\x81Qa\x0CQ\x81a\x0B\xA5V\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x6080604052600436106100cb5760003560e01c8063645006ca11610074578063a2a956171161004e578063a2a9561714610425578063dad544e014610445578063f68016b71461045a57600080fd5b8063645006ca1461038657806366125607146103c85780637b11936e146103e857600080fd5b80633e47158c116100a55780633e47158c146102fb57806352d84c621461031057806354fd4d501461033057600080fd5b80630de2db4d1461024057806338d38c97146102605780633cb747bf146102a357600080fd5b3661023b576040805134815247602082018190529133917f363f315f930a17d1266b86a20d6dd34b1cfbc5a9db9f13a65d06a689c3a2af8a910160405180910390a26001546bffffffffffffffffffffffff16811061023957600154600080546002546040517f3dbb202b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff6c0100000000000000000000000090950485166004820181905260606024830152606482019490945263ffffffff90911660448201529192620100009091041690633dbb202b9084906084016000604051808303818588803b1580156101ce57600080fd5b505af11580156101e2573d6000803e3d6000fd5b50505050508073ffffffffffffffffffffffffffffffffffffffff167f2acaf92365a0b69fb3570802396f62d51aabccd684036b72c3ce78699425e7ee8360405161022f91815260200190565b60405180910390a2505b005b600080fd5b34801561024c57600080fd5b5061023961025b366004610bde565b61048c565b34801561026c57600080fd5b5060405160ff7f00000000000000000000000000000000000000000000000000000000000000001681526020015b60405180910390f35b3480156102af57600080fd5b506000546102d69062010000900473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161029a565b34801561030757600080fd5b506102d661069e565b34801561031c57600080fd5b5061023961032b366004610c36565b6108a9565b34801561033c57600080fd5b506103796040518060400160405280600581526020017f312e302e3000000000000000000000000000000000000000000000000000000081525081565b60405161029a9190610c58565b34801561039257600080fd5b506001546103ab906bffffffffffffffffffffffff1681565b6040516bffffffffffffffffffffffff909116815260200161029a565b3480156103d457600080fd5b506102396103e3366004610ccb565b610928565b3480156103f457600080fd5b506001546102d6906c01000000000000000000000000900473ffffffffffffffffffffffffffffffffffffffff1681565b34801561043157600080fd5b50610239610440366004610ce8565b6109af565b34801561045157600080fd5b506102d6610a2e565b34801561046657600080fd5b506002546104779063ffffffff1681565b60405163ffffffff909116815260200161029a565b7f0000000000000000000000000000000000000000000000000000000000000000600054610100900460ff161580156104cc575060005460ff8083169116105b61055c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840160405180910390fd5b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001660ff831617610100179055610595610aab565b6000805473ffffffffffffffffffffffffffffffffffffffff8681166c01000000000000000000000000026bffffffffffffffffffffffff8916176001556002805463ffffffff87167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000009091161790557fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff9086166201000002167fffffffffffffffffffff000000000000000000000000000000000000000000ff9091161790556040517f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989061068f90839060ff91909116815260200190565b60405180910390a15050505050565b6000806106c97fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b905073ffffffffffffffffffffffffffffffffffffffff8116156106ec57919050565b6040518060400160405280601a81526020017f4f564d5f4c3143726f7373446f6d61696e4d657373656e67657200000000000081525051600261072f9190610d03565b604080513060208201526000918101919091527f4f564d5f4c3143726f7373446f6d61696e4d657373656e676572000000000000919091179061078a906060015b604051602081830303815290604052805190602001205490565b146107c1576040517f54e433cd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604080513060208201526001918101919091526000906107e390606001610770565b905073ffffffffffffffffffffffffffffffffffffffff811615610877578073ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561084c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108709190610d67565b9250505090565b6040517f332144db00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6108b1610b2e565b6002805463ffffffff8381167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000083168117909355604080519190921680825260208201939093527f84858bb3fb3ecf87e268ebef250ef9ad9cd53ef7973ef7a0ec9d89470bb00a8091015b60405180910390a15050565b610930610b2e565b6001805473ffffffffffffffffffffffffffffffffffffffff8381166c010000000000000000000000008181026bffffffffffffffffffffffff85161790945560408051949093049091168084526020840191909152917f158f04d12e0403fdd63fbced694e8f70d3b87d04d8e2dfad526f5fcf6e49bbcf910161091c565b6109b7610b2e565b600180546bffffffffffffffffffffffff8381167fffffffffffffffffffffffffffffffffffffffff00000000000000000000000083168117909355604080519190921680825260208201939093527f132832be4270c0d1573ca543c41517dd443fe9daf5f21a9c74940e6db282e229910161091c565b6000610a3861069e565b73ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a82573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aa69190610d67565b905090565b33610ab461069e565b73ffffffffffffffffffffffffffffffffffffffff1614158015610af5575033610adc610a2e565b73ffffffffffffffffffffffffffffffffffffffff1614155b15610b2c576040517fc4050a2600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b33610b37610a2e565b73ffffffffffffffffffffffffffffffffffffffff1614610b2c576040517f7f12c64b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80356bffffffffffffffffffffffff81168114610ba057600080fd5b919050565b73ffffffffffffffffffffffffffffffffffffffff81168114610bc757600080fd5b50565b803563ffffffff81168114610ba057600080fd5b60008060008060808587031215610bf457600080fd5b610bfd85610b84565b93506020850135610c0d81610ba5565b92506040850135610c1d81610ba5565b9150610c2b60608601610bca565b905092959194509250565b600060208284031215610c4857600080fd5b610c5182610bca565b9392505050565b600060208083528351808285015260005b81811015610c8557858101830151858201604001528201610c69565b81811115610c97576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b600060208284031215610cdd57600080fd5b8135610c5181610ba5565b600060208284031215610cfa57600080fd5b610c5182610b84565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615610d62577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b500290565b600060208284031215610d7957600080fd5b8151610c5181610ba556fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R`\x046\x10a\0\xCBW`\x005`\xE0\x1C\x80cdP\x06\xCA\x11a\0tW\x80c\xA2\xA9V\x17\x11a\0NW\x80c\xA2\xA9V\x17\x14a\x04%W\x80c\xDA\xD5D\xE0\x14a\x04EW\x80c\xF6\x80\x16\xB7\x14a\x04ZW`\0\x80\xFD[\x80cdP\x06\xCA\x14a\x03\x86W\x80cf\x12V\x07\x14a\x03\xC8W\x80c{\x11\x93n\x14a\x03\xE8W`\0\x80\xFD[\x80c>G\x15\x8C\x11a\0\xA5W\x80c>G\x15\x8C\x14a\x02\xFBW\x80cR\xD8Lb\x14a\x03\x10W\x80cT\xFDMP\x14a\x030W`\0\x80\xFD[\x80c\r\xE2\xDBM\x14a\x02@W\x80c8\xD3\x8C\x97\x14a\x02`W\x80c<\xB7G\xBF\x14a\x02\xA3W`\0\x80\xFD[6a\x02;W`@\x80Q4\x81RG` \x82\x01\x81\x90R\x913\x91\x7F6?1_\x93\n\x17\xD1&k\x86\xA2\rm\xD3K\x1C\xFB\xC5\xA9\xDB\x9F\x13\xA6]\x06\xA6\x89\xC3\xA2\xAF\x8A\x91\x01`@Q\x80\x91\x03\x90\xA2`\x01Tk\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81\x10a\x029W`\x01T`\0\x80T`\x02T`@Q\x7F=\xBB +\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\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFFl\x01\0\0\0\0\0\0\0\0\0\0\0\0\x90\x95\x04\x85\x16`\x04\x82\x01\x81\x90R```$\x83\x01R`d\x82\x01\x94\x90\x94Rc\xFF\xFF\xFF\xFF\x90\x91\x16`D\x82\x01R\x91\x92b\x01\0\0\x90\x91\x04\x16\x90c=\xBB +\x90\x84\x90`\x84\x01`\0`@Q\x80\x83\x03\x81\x85\x88\x80;\x15\x80\x15a\x01\xCEW`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x01\xE2W=`\0\x80>=`\0\xFD[PPPPP\x80s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F*\xCA\xF9#e\xA0\xB6\x9F\xB3W\x08\x029ob\xD5\x1A\xAB\xCC\xD6\x84\x03kr\xC3\xCExi\x94%\xE7\xEE\x83`@Qa\x02/\x91\x81R` \x01\x90V[`@Q\x80\x91\x03\x90\xA2P[\0[`\0\x80\xFD[4\x80\x15a\x02LW`\0\x80\xFD[Pa\x029a\x02[6`\x04a\x0B\xDEV[a\x04\x8CV[4\x80\x15a\x02lW`\0\x80\xFD[P`@Q`\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[4\x80\x15a\x02\xAFW`\0\x80\xFD[P`\0Ta\x02\xD6\x90b\x01\0\0\x90\x04s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01a\x02\x9AV[4\x80\x15a\x03\x07W`\0\x80\xFD[Pa\x02\xD6a\x06\x9EV[4\x80\x15a\x03\x1CW`\0\x80\xFD[Pa\x029a\x03+6`\x04a\x0C6V[a\x08\xA9V[4\x80\x15a\x03c\xB6\xE8\xEE\x11x\xD6\xA7\x17\x85\x0B]a\x03T\x90V[\x90Ps\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x15a\x06\xECW\x91\x90PV[`@Q\x80`@\x01`@R\x80`\x1A\x81R` \x01\x7FOVM_L1CrossDomainMessenger\0\0\0\0\0\0\x81RPQ`\x02a\x07/\x91\x90a\r\x03V[`@\x80Q0` \x82\x01R`\0\x91\x81\x01\x91\x90\x91R\x7FOVM_L1CrossDomainMessenger\0\0\0\0\0\0\x91\x90\x91\x17\x90a\x07\x8A\x90``\x01[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 T\x90V[\x14a\x07\xC1W`@Q\x7FT\xE43\xCD\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\x01`@Q\x80\x91\x03\x90\xFD[`@\x80Q0` \x82\x01R`\x01\x91\x81\x01\x91\x90\x91R`\0\x90a\x07\xE3\x90``\x01a\x07pV[\x90Ps\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x15a\x08wW\x80s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\x8D\xA5\xCB[`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x08LW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x08p\x91\x90a\rgV[\x92PPP\x90V[`@Q\x7F3!D\xDB\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\x01`@Q\x80\x91\x03\x90\xFD[a\x08\xB1a\x0B.V[`\x02\x80Tc\xFF\xFF\xFF\xFF\x83\x81\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\x83\x16\x81\x17\x90\x93U`@\x80Q\x91\x90\x92\x16\x80\x82R` \x82\x01\x93\x90\x93R\x7F\x84\x85\x8B\xB3\xFB>\xCF\x87\xE2h\xEB\xEF%\x0E\xF9\xAD\x9C\xD5>\xF7\x97>\xF7\xA0\xEC\x9D\x89G\x0B\xB0\n\x80\x91\x01[`@Q\x80\x91\x03\x90\xA1PPV[a\t0a\x0B.V[`\x01\x80Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x81\x16l\x01\0\0\0\0\0\0\0\0\0\0\0\0\x81\x81\x02k\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x85\x16\x17\x90\x94U`@\x80Q\x94\x90\x93\x04\x90\x91\x16\x80\x84R` \x84\x01\x91\x90\x91R\x91\x7F\x15\x8F\x04\xD1.\x04\x03\xFD\xD6?\xBC\xEDiN\x8Fp\xD3\xB8}\x04\xD8\xE2\xDF\xADRo_\xCFnI\xBB\xCF\x91\x01a\t\x1CV[a\t\xB7a\x0B.V[`\x01\x80Tk\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x81\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\x83\x16\x81\x17\x90\x93U`@\x80Q\x91\x90\x92\x16\x80\x82R` \x82\x01\x93\x90\x93R\x7F\x13(2\xBEBp\xC0\xD1W<\xA5C\xC4\x15\x17\xDDD?\xE9\xDA\xF5\xF2\x1A\x9Ct\x94\x0Em\xB2\x82\xE2)\x91\x01a\t\x1CV[`\0a\n8a\x06\x9EV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\x8D\xA5\xCB[`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\n\x82W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\n\xA6\x91\x90a\rgV[\x90P\x90V[3a\n\xB4a\x06\x9EV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14\x15\x80\x15a\n\xF5WP3a\n\xDCa\n.V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14\x15[\x15a\x0B,W`@Q\x7F\xC4\x05\n&\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\x01`@Q\x80\x91\x03\x90\xFD[V[3a\x0B7a\n.V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14a\x0B,W`@Q\x7F\x7F\x12\xC6K\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\x01`@Q\x80\x91\x03\x90\xFD[\x805k\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x0B\xA0W`\0\x80\xFD[\x91\x90PV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x0B\xC7W`\0\x80\xFD[PV[\x805c\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x0B\xA0W`\0\x80\xFD[`\0\x80`\0\x80`\x80\x85\x87\x03\x12\x15a\x0B\xF4W`\0\x80\xFD[a\x0B\xFD\x85a\x0B\x84V[\x93P` \x85\x015a\x0C\r\x81a\x0B\xA5V[\x92P`@\x85\x015a\x0C\x1D\x81a\x0B\xA5V[\x91Pa\x0C+``\x86\x01a\x0B\xCAV[\x90P\x92\x95\x91\x94P\x92PV[`\0` \x82\x84\x03\x12\x15a\x0CHW`\0\x80\xFD[a\x0CQ\x82a\x0B\xCAV[\x93\x92PPPV[`\0` \x80\x83R\x83Q\x80\x82\x85\x01R`\0[\x81\x81\x10\x15a\x0C\x85W\x85\x81\x01\x83\x01Q\x85\x82\x01`@\x01R\x82\x01a\x0CiV[\x81\x81\x11\x15a\x0C\x97W`\0`@\x83\x87\x01\x01R[P`\x1F\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x92\x90\x92\x01`@\x01\x93\x92PPPV[`\0` \x82\x84\x03\x12\x15a\x0C\xDDW`\0\x80\xFD[\x815a\x0CQ\x81a\x0B\xA5V[`\0` \x82\x84\x03\x12\x15a\x0C\xFAW`\0\x80\xFD[a\x0CQ\x82a\x0B\x84V[`\0\x81\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x04\x83\x11\x82\x15\x15\x16\x15a\rbW\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`\x11`\x04R`$`\0\xFD[P\x02\x90V[`\0` \x82\x84\x03\x12\x15a\ryW`\0\x80\xFD[\x81Qa\x0CQ\x81a\x0B\xA5V\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ProxyAdminOwnedBase_NotProxyAdmin()` and selector `0xe818dcc3`. +```solidity +error ProxyAdminOwnedBase_NotProxyAdmin(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ProxyAdminOwnedBase_NotProxyAdmin; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: ProxyAdminOwnedBase_NotProxyAdmin) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for ProxyAdminOwnedBase_NotProxyAdmin { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ProxyAdminOwnedBase_NotProxyAdmin { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ProxyAdminOwnedBase_NotProxyAdmin()"; + const SELECTOR: [u8; 4] = [232u8, 24u8, 220u8, 195u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner()` and selector `0xc4050a26`. +```solidity +error ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError + for ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner()"; + const SELECTOR: [u8; 4] = [196u8, 5u8, 10u8, 38u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ProxyAdminOwnedBase_NotProxyAdminOwner()` and selector `0x7f12c64b`. +```solidity +error ProxyAdminOwnedBase_NotProxyAdminOwner(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ProxyAdminOwnedBase_NotProxyAdminOwner; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: ProxyAdminOwnedBase_NotProxyAdminOwner) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for ProxyAdminOwnedBase_NotProxyAdminOwner { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ProxyAdminOwnedBase_NotProxyAdminOwner { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ProxyAdminOwnedBase_NotProxyAdminOwner()"; + const SELECTOR: [u8; 4] = [127u8, 18u8, 198u8, 75u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ProxyAdminOwnedBase_NotResolvedDelegateProxy()` and selector `0x54e433cd`. +```solidity +error ProxyAdminOwnedBase_NotResolvedDelegateProxy(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ProxyAdminOwnedBase_NotResolvedDelegateProxy; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: ProxyAdminOwnedBase_NotResolvedDelegateProxy) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for ProxyAdminOwnedBase_NotResolvedDelegateProxy { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ProxyAdminOwnedBase_NotResolvedDelegateProxy { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ProxyAdminOwnedBase_NotResolvedDelegateProxy()"; + const SELECTOR: [u8; 4] = [84u8, 228u8, 51u8, 205u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ProxyAdminOwnedBase_NotSharedProxyAdminOwner()` and selector `0x075c4314`. +```solidity +error ProxyAdminOwnedBase_NotSharedProxyAdminOwner(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ProxyAdminOwnedBase_NotSharedProxyAdminOwner; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: ProxyAdminOwnedBase_NotSharedProxyAdminOwner) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for ProxyAdminOwnedBase_NotSharedProxyAdminOwner { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ProxyAdminOwnedBase_NotSharedProxyAdminOwner { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ProxyAdminOwnedBase_NotSharedProxyAdminOwner()"; + const SELECTOR: [u8; 4] = [7u8, 92u8, 67u8, 20u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ProxyAdminOwnedBase_ProxyAdminNotFound()` and selector `0x332144db`. +```solidity +error ProxyAdminOwnedBase_ProxyAdminNotFound(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ProxyAdminOwnedBase_ProxyAdminNotFound; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: ProxyAdminOwnedBase_ProxyAdminNotFound) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for ProxyAdminOwnedBase_ProxyAdminNotFound { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ProxyAdminOwnedBase_ProxyAdminNotFound { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ProxyAdminOwnedBase_ProxyAdminNotFound()"; + const SELECTOR: [u8; 4] = [51u8, 33u8, 68u8, 219u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ReinitializableBase_ZeroInitVersion()` and selector `0x9b01afed`. +```solidity +error ReinitializableBase_ZeroInitVersion(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ReinitializableBase_ZeroInitVersion; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: ReinitializableBase_ZeroInitVersion) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for ReinitializableBase_ZeroInitVersion { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ReinitializableBase_ZeroInitVersion { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ReinitializableBase_ZeroInitVersion()"; + const SELECTOR: [u8; 4] = [155u8, 1u8, 175u8, 237u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `FeesDeposited(address,uint256)` and selector `0x2acaf92365a0b69fb3570802396f62d51aabccd684036b72c3ce78699425e7ee`. +```solidity +event FeesDeposited(address indexed l2Recipient, uint256 amount); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct FeesDeposited { + #[allow(missing_docs)] + pub l2Recipient: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub amount: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for FeesDeposited { + type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "FeesDeposited(address,uint256)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 42u8, 202u8, 249u8, 35u8, 101u8, 160u8, 182u8, 159u8, 179u8, 87u8, 8u8, + 2u8, 57u8, 111u8, 98u8, 213u8, 26u8, 171u8, 204u8, 214u8, 132u8, 3u8, + 107u8, 114u8, 195u8, 206u8, 120u8, 105u8, 148u8, 37u8, 231u8, 238u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + l2Recipient: topics.1, + amount: data.0, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.amount), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.l2Recipient.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.l2Recipient, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for FeesDeposited { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&FeesDeposited> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &FeesDeposited) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `FundsReceived(address,uint256,uint256)` and selector `0x363f315f930a17d1266b86a20d6dd34b1cfbc5a9db9f13a65d06a689c3a2af8a`. +```solidity +event FundsReceived(address indexed sender, uint256 amount, uint256 newBalance); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct FundsReceived { + #[allow(missing_docs)] + pub sender: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub amount: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub newBalance: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for FundsReceived { + type DataTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + ); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "FundsReceived(address,uint256,uint256)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 54u8, 63u8, 49u8, 95u8, 147u8, 10u8, 23u8, 209u8, 38u8, 107u8, 134u8, + 162u8, 13u8, 109u8, 211u8, 75u8, 28u8, 251u8, 197u8, 169u8, 219u8, 159u8, + 19u8, 166u8, 93u8, 6u8, 166u8, 137u8, 195u8, 162u8, 175u8, 138u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + sender: topics.1, + amount: data.0, + newBalance: data.1, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.amount), + as alloy_sol_types::SolType>::tokenize(&self.newBalance), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.sender.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.sender, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for FundsReceived { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&FundsReceived> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &FundsReceived) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `GasLimitUpdated(uint32,uint32)` and selector `0x84858bb3fb3ecf87e268ebef250ef9ad9cd53ef7973ef7a0ec9d89470bb00a80`. +```solidity +event GasLimitUpdated(uint32 oldGasLimit, uint32 newGasLimit); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct GasLimitUpdated { + #[allow(missing_docs)] + pub oldGasLimit: u32, + #[allow(missing_docs)] + pub newGasLimit: u32, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for GasLimitUpdated { + type DataTuple<'a> = ( + alloy::sol_types::sol_data::Uint<32>, + alloy::sol_types::sol_data::Uint<32>, + ); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,); + const SIGNATURE: &'static str = "GasLimitUpdated(uint32,uint32)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 132u8, 133u8, 139u8, 179u8, 251u8, 62u8, 207u8, 135u8, 226u8, 104u8, + 235u8, 239u8, 37u8, 14u8, 249u8, 173u8, 156u8, 213u8, 62u8, 247u8, 151u8, + 62u8, 247u8, 160u8, 236u8, 157u8, 137u8, 71u8, 11u8, 176u8, 10u8, 128u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + oldGasLimit: data.0, + newGasLimit: data.1, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.oldGasLimit), + as alloy_sol_types::SolType>::tokenize(&self.newGasLimit), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(),) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for GasLimitUpdated { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&GasLimitUpdated> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &GasLimitUpdated) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `Initialized(uint8)` and selector `0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498`. +```solidity +event Initialized(uint8 version); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct Initialized { + #[allow(missing_docs)] + pub version: u8, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for Initialized { + type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<8>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,); + const SIGNATURE: &'static str = "Initialized(uint8)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 127u8, 38u8, 184u8, 63u8, 249u8, 110u8, 31u8, 43u8, 106u8, 104u8, 47u8, + 19u8, 56u8, 82u8, 246u8, 121u8, 138u8, 9u8, 196u8, 101u8, 218u8, 149u8, + 146u8, 20u8, 96u8, 206u8, 251u8, 56u8, 71u8, 64u8, 36u8, 152u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { version: data.0 } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.version), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(),) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for Initialized { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&Initialized> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &Initialized) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `L2RecipientUpdated(address,address)` and selector `0x158f04d12e0403fdd63fbced694e8f70d3b87d04d8e2dfad526f5fcf6e49bbcf`. +```solidity +event L2RecipientUpdated(address oldL2Recipient, address newL2Recipient); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct L2RecipientUpdated { + #[allow(missing_docs)] + pub oldL2Recipient: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub newL2Recipient: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for L2RecipientUpdated { + type DataTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,); + const SIGNATURE: &'static str = "L2RecipientUpdated(address,address)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 21u8, 143u8, 4u8, 209u8, 46u8, 4u8, 3u8, 253u8, 214u8, 63u8, 188u8, + 237u8, 105u8, 78u8, 143u8, 112u8, 211u8, 184u8, 125u8, 4u8, 216u8, 226u8, + 223u8, 173u8, 82u8, 111u8, 95u8, 207u8, 110u8, 73u8, 187u8, 207u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + oldL2Recipient: data.0, + newL2Recipient: data.1, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + ::tokenize( + &self.oldL2Recipient, + ), + ::tokenize( + &self.newL2Recipient, + ), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(),) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for L2RecipientUpdated { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&L2RecipientUpdated> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &L2RecipientUpdated) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `MinDepositAmountUpdated(uint96,uint96)` and selector `0x132832be4270c0d1573ca543c41517dd443fe9daf5f21a9c74940e6db282e229`. +```solidity +event MinDepositAmountUpdated(uint96 oldMinDepositAmount, uint96 newMinDepositAmount); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct MinDepositAmountUpdated { + #[allow(missing_docs)] + pub oldMinDepositAmount: alloy::sol_types::private::primitives::aliases::U96, + #[allow(missing_docs)] + pub newMinDepositAmount: alloy::sol_types::private::primitives::aliases::U96, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for MinDepositAmountUpdated { + type DataTuple<'a> = ( + alloy::sol_types::sol_data::Uint<96>, + alloy::sol_types::sol_data::Uint<96>, + ); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,); + const SIGNATURE: &'static str = "MinDepositAmountUpdated(uint96,uint96)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 19u8, 40u8, 50u8, 190u8, 66u8, 112u8, 192u8, 209u8, 87u8, 60u8, 165u8, + 67u8, 196u8, 21u8, 23u8, 221u8, 68u8, 63u8, 233u8, 218u8, 245u8, 242u8, + 26u8, 156u8, 116u8, 148u8, 14u8, 109u8, 178u8, 130u8, 226u8, 41u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + oldMinDepositAmount: data.0, + newMinDepositAmount: data.1, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.oldMinDepositAmount), + as alloy_sol_types::SolType>::tokenize(&self.newMinDepositAmount), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(),) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for MinDepositAmountUpdated { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&MinDepositAmountUpdated> for alloy_sol_types::private::LogData { + #[inline] + fn from( + this: &MinDepositAmountUpdated, + ) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + /**Constructor`. +```solidity +constructor(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct constructorCall {} + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: constructorCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for constructorCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolConstructor for constructorCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `gasLimit()` and selector `0xf68016b7`. +```solidity +function gasLimit() external view returns (uint32); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct gasLimitCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`gasLimit()`](gasLimitCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct gasLimitReturn { + #[allow(missing_docs)] + pub _0: u32, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: gasLimitCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for gasLimitCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u32,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: gasLimitReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for gasLimitReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for gasLimitCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u32; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<32>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "gasLimit()"; + const SELECTOR: [u8; 4] = [246u8, 128u8, 22u8, 183u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: gasLimitReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: gasLimitReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `initVersion()` and selector `0x38d38c97`. +```solidity +function initVersion() external view returns (uint8); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct initVersionCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`initVersion()`](initVersionCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct initVersionReturn { + #[allow(missing_docs)] + pub _0: u8, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: initVersionCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for initVersionCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<8>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u8,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: initVersionReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for initVersionReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for initVersionCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u8; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<8>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "initVersion()"; + const SELECTOR: [u8; 4] = [56u8, 211u8, 140u8, 151u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: initVersionReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: initVersionReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `initialize(uint96,address,address,uint32)` and selector `0x0de2db4d`. +```solidity +function initialize(uint96 _minDepositAmount, address _l2Recipient, address _messenger, uint32 _gasLimit) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct initializeCall { + #[allow(missing_docs)] + pub _minDepositAmount: alloy::sol_types::private::primitives::aliases::U96, + #[allow(missing_docs)] + pub _l2Recipient: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _messenger: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _gasLimit: u32, + } + ///Container type for the return parameters of the [`initialize(uint96,address,address,uint32)`](initializeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct initializeReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Uint<96>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<32>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U96, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + u32, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: initializeCall) -> Self { + ( + value._minDepositAmount, + value._l2Recipient, + value._messenger, + value._gasLimit, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for initializeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _minDepositAmount: tuple.0, + _l2Recipient: tuple.1, + _messenger: tuple.2, + _gasLimit: tuple.3, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: initializeReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for initializeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl initializeReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for initializeCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Uint<96>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<32>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = initializeReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "initialize(uint96,address,address,uint32)"; + const SELECTOR: [u8; 4] = [13u8, 226u8, 219u8, 77u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._minDepositAmount), + ::tokenize( + &self._l2Recipient, + ), + ::tokenize( + &self._messenger, + ), + as alloy_sol_types::SolType>::tokenize(&self._gasLimit), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + initializeReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `l2Recipient()` and selector `0x7b11936e`. +```solidity +function l2Recipient() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct l2RecipientCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`l2Recipient()`](l2RecipientCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct l2RecipientReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: l2RecipientCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for l2RecipientCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: l2RecipientReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for l2RecipientReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for l2RecipientCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "l2Recipient()"; + const SELECTOR: [u8; 4] = [123u8, 17u8, 147u8, 110u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: l2RecipientReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: l2RecipientReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `messenger()` and selector `0x3cb747bf`. +```solidity +function messenger() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct messengerCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`messenger()`](messengerCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct messengerReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: messengerCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for messengerCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: messengerReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for messengerReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for messengerCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "messenger()"; + const SELECTOR: [u8; 4] = [60u8, 183u8, 71u8, 191u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: messengerReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: messengerReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `minDepositAmount()` and selector `0x645006ca`. +```solidity +function minDepositAmount() external view returns (uint96); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct minDepositAmountCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`minDepositAmount()`](minDepositAmountCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct minDepositAmountReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U96, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: minDepositAmountCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for minDepositAmountCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<96>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U96, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: minDepositAmountReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for minDepositAmountReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for minDepositAmountCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U96; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<96>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "minDepositAmount()"; + const SELECTOR: [u8; 4] = [100u8, 80u8, 6u8, 202u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: minDepositAmountReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: minDepositAmountReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `proxyAdmin()` and selector `0x3e47158c`. +```solidity +function proxyAdmin() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct proxyAdminCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`proxyAdmin()`](proxyAdminCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct proxyAdminReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: proxyAdminCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for proxyAdminCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: proxyAdminReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for proxyAdminReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for proxyAdminCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "proxyAdmin()"; + const SELECTOR: [u8; 4] = [62u8, 71u8, 21u8, 140u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: proxyAdminReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: proxyAdminReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `proxyAdminOwner()` and selector `0xdad544e0`. +```solidity +function proxyAdminOwner() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct proxyAdminOwnerCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`proxyAdminOwner()`](proxyAdminOwnerCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct proxyAdminOwnerReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: proxyAdminOwnerCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for proxyAdminOwnerCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: proxyAdminOwnerReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for proxyAdminOwnerReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for proxyAdminOwnerCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "proxyAdminOwner()"; + const SELECTOR: [u8; 4] = [218u8, 213u8, 68u8, 224u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: proxyAdminOwnerReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: proxyAdminOwnerReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `setGasLimit(uint32)` and selector `0x52d84c62`. +```solidity +function setGasLimit(uint32 _newGasLimit) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setGasLimitCall { + #[allow(missing_docs)] + pub _newGasLimit: u32, + } + ///Container type for the return parameters of the [`setGasLimit(uint32)`](setGasLimitCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setGasLimitReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u32,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: setGasLimitCall) -> Self { + (value._newGasLimit,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for setGasLimitCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _newGasLimit: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: setGasLimitReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for setGasLimitReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl setGasLimitReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for setGasLimitCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Uint<32>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = setGasLimitReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "setGasLimit(uint32)"; + const SELECTOR: [u8; 4] = [82u8, 216u8, 76u8, 98u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._newGasLimit), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + setGasLimitReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `setL2Recipient(address)` and selector `0x66125607`. +```solidity +function setL2Recipient(address _newL2Recipient) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setL2RecipientCall { + #[allow(missing_docs)] + pub _newL2Recipient: alloy::sol_types::private::Address, + } + ///Container type for the return parameters of the [`setL2Recipient(address)`](setL2RecipientCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setL2RecipientReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: setL2RecipientCall) -> Self { + (value._newL2Recipient,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for setL2RecipientCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _newL2Recipient: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: setL2RecipientReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for setL2RecipientReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl setL2RecipientReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for setL2RecipientCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = setL2RecipientReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "setL2Recipient(address)"; + const SELECTOR: [u8; 4] = [102u8, 18u8, 86u8, 7u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._newL2Recipient, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + setL2RecipientReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `setMinDepositAmount(uint96)` and selector `0xa2a95617`. +```solidity +function setMinDepositAmount(uint96 _newMinDepositAmount) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setMinDepositAmountCall { + #[allow(missing_docs)] + pub _newMinDepositAmount: alloy::sol_types::private::primitives::aliases::U96, + } + ///Container type for the return parameters of the [`setMinDepositAmount(uint96)`](setMinDepositAmountCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setMinDepositAmountReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<96>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U96, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: setMinDepositAmountCall) -> Self { + (value._newMinDepositAmount,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for setMinDepositAmountCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _newMinDepositAmount: tuple.0, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: setMinDepositAmountReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for setMinDepositAmountReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl setMinDepositAmountReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for setMinDepositAmountCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Uint<96>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = setMinDepositAmountReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "setMinDepositAmount(uint96)"; + const SELECTOR: [u8; 4] = [162u8, 169u8, 86u8, 23u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._newMinDepositAmount), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + setMinDepositAmountReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `version()` and selector `0x54fd4d50`. +```solidity +function version() external view returns (string memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`version()`](versionCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for versionCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::String; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "version()"; + const SELECTOR: [u8; 4] = [84u8, 253u8, 77u8, 80u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + } + }; + ///Container for all the [`FeesDepositor`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum FeesDepositorCalls { + #[allow(missing_docs)] + gasLimit(gasLimitCall), + #[allow(missing_docs)] + initVersion(initVersionCall), + #[allow(missing_docs)] + initialize(initializeCall), + #[allow(missing_docs)] + l2Recipient(l2RecipientCall), + #[allow(missing_docs)] + messenger(messengerCall), + #[allow(missing_docs)] + minDepositAmount(minDepositAmountCall), + #[allow(missing_docs)] + proxyAdmin(proxyAdminCall), + #[allow(missing_docs)] + proxyAdminOwner(proxyAdminOwnerCall), + #[allow(missing_docs)] + setGasLimit(setGasLimitCall), + #[allow(missing_docs)] + setL2Recipient(setL2RecipientCall), + #[allow(missing_docs)] + setMinDepositAmount(setMinDepositAmountCall), + #[allow(missing_docs)] + version(versionCall), + } + impl FeesDepositorCalls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [13u8, 226u8, 219u8, 77u8], + [56u8, 211u8, 140u8, 151u8], + [60u8, 183u8, 71u8, 191u8], + [62u8, 71u8, 21u8, 140u8], + [82u8, 216u8, 76u8, 98u8], + [84u8, 253u8, 77u8, 80u8], + [100u8, 80u8, 6u8, 202u8], + [102u8, 18u8, 86u8, 7u8], + [123u8, 17u8, 147u8, 110u8], + [162u8, 169u8, 86u8, 23u8], + [218u8, 213u8, 68u8, 224u8], + [246u8, 128u8, 22u8, 183u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(initialize), + ::core::stringify!(initVersion), + ::core::stringify!(messenger), + ::core::stringify!(proxyAdmin), + ::core::stringify!(setGasLimit), + ::core::stringify!(version), + ::core::stringify!(minDepositAmount), + ::core::stringify!(setL2Recipient), + ::core::stringify!(l2Recipient), + ::core::stringify!(setMinDepositAmount), + ::core::stringify!(proxyAdminOwner), + ::core::stringify!(gasLimit), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for FeesDepositorCalls { + const NAME: &'static str = "FeesDepositorCalls"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 12usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::gasLimit(_) => ::SELECTOR, + Self::initVersion(_) => { + ::SELECTOR + } + Self::initialize(_) => { + ::SELECTOR + } + Self::l2Recipient(_) => { + ::SELECTOR + } + Self::messenger(_) => { + ::SELECTOR + } + Self::minDepositAmount(_) => { + ::SELECTOR + } + Self::proxyAdmin(_) => { + ::SELECTOR + } + Self::proxyAdminOwner(_) => { + ::SELECTOR + } + Self::setGasLimit(_) => { + ::SELECTOR + } + Self::setL2Recipient(_) => { + ::SELECTOR + } + Self::setMinDepositAmount(_) => { + ::SELECTOR + } + Self::version(_) => ::SELECTOR, + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn initialize( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FeesDepositorCalls::initialize) + } + initialize + }, + { + fn initVersion( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FeesDepositorCalls::initVersion) + } + initVersion + }, + { + fn messenger( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(FeesDepositorCalls::messenger) + } + messenger + }, + { + fn proxyAdmin( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FeesDepositorCalls::proxyAdmin) + } + proxyAdmin + }, + { + fn setGasLimit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FeesDepositorCalls::setGasLimit) + } + setGasLimit + }, + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(FeesDepositorCalls::version) + } + version + }, + { + fn minDepositAmount( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FeesDepositorCalls::minDepositAmount) + } + minDepositAmount + }, + { + fn setL2Recipient( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FeesDepositorCalls::setL2Recipient) + } + setL2Recipient + }, + { + fn l2Recipient( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FeesDepositorCalls::l2Recipient) + } + l2Recipient + }, + { + fn setMinDepositAmount( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FeesDepositorCalls::setMinDepositAmount) + } + setMinDepositAmount + }, + { + fn proxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FeesDepositorCalls::proxyAdminOwner) + } + proxyAdminOwner + }, + { + fn gasLimit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(FeesDepositorCalls::gasLimit) + } + gasLimit + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn initialize( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FeesDepositorCalls::initialize) + } + initialize + }, + { + fn initVersion( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FeesDepositorCalls::initVersion) + } + initVersion + }, + { + fn messenger( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FeesDepositorCalls::messenger) + } + messenger + }, + { + fn proxyAdmin( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FeesDepositorCalls::proxyAdmin) + } + proxyAdmin + }, + { + fn setGasLimit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FeesDepositorCalls::setGasLimit) + } + setGasLimit + }, + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FeesDepositorCalls::version) + } + version + }, + { + fn minDepositAmount( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FeesDepositorCalls::minDepositAmount) + } + minDepositAmount + }, + { + fn setL2Recipient( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FeesDepositorCalls::setL2Recipient) + } + setL2Recipient + }, + { + fn l2Recipient( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FeesDepositorCalls::l2Recipient) + } + l2Recipient + }, + { + fn setMinDepositAmount( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FeesDepositorCalls::setMinDepositAmount) + } + setMinDepositAmount + }, + { + fn proxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FeesDepositorCalls::proxyAdminOwner) + } + proxyAdminOwner + }, + { + fn gasLimit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FeesDepositorCalls::gasLimit) + } + gasLimit + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::gasLimit(inner) => { + ::abi_encoded_size(inner) + } + Self::initVersion(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::initialize(inner) => { + ::abi_encoded_size(inner) + } + Self::l2Recipient(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::messenger(inner) => { + ::abi_encoded_size(inner) + } + Self::minDepositAmount(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::proxyAdmin(inner) => { + ::abi_encoded_size(inner) + } + Self::proxyAdminOwner(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::setGasLimit(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::setL2Recipient(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::setMinDepositAmount(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::version(inner) => { + ::abi_encoded_size(inner) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::gasLimit(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::initVersion(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::initialize(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::l2Recipient(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::messenger(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::minDepositAmount(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::proxyAdmin(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::proxyAdminOwner(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::setGasLimit(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::setL2Recipient(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::setMinDepositAmount(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::version(inner) => { + ::abi_encode_raw(inner, out) + } + } + } + } + ///Container for all the [`FeesDepositor`](self) custom errors. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum FeesDepositorErrors { + #[allow(missing_docs)] + ProxyAdminOwnedBase_NotProxyAdmin(ProxyAdminOwnedBase_NotProxyAdmin), + #[allow(missing_docs)] + ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner( + ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner, + ), + #[allow(missing_docs)] + ProxyAdminOwnedBase_NotProxyAdminOwner(ProxyAdminOwnedBase_NotProxyAdminOwner), + #[allow(missing_docs)] + ProxyAdminOwnedBase_NotResolvedDelegateProxy( + ProxyAdminOwnedBase_NotResolvedDelegateProxy, + ), + #[allow(missing_docs)] + ProxyAdminOwnedBase_NotSharedProxyAdminOwner( + ProxyAdminOwnedBase_NotSharedProxyAdminOwner, + ), + #[allow(missing_docs)] + ProxyAdminOwnedBase_ProxyAdminNotFound(ProxyAdminOwnedBase_ProxyAdminNotFound), + #[allow(missing_docs)] + ReinitializableBase_ZeroInitVersion(ReinitializableBase_ZeroInitVersion), + } + impl FeesDepositorErrors { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [7u8, 92u8, 67u8, 20u8], + [51u8, 33u8, 68u8, 219u8], + [84u8, 228u8, 51u8, 205u8], + [127u8, 18u8, 198u8, 75u8], + [155u8, 1u8, 175u8, 237u8], + [196u8, 5u8, 10u8, 38u8], + [232u8, 24u8, 220u8, 195u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(ProxyAdminOwnedBase_NotSharedProxyAdminOwner), + ::core::stringify!(ProxyAdminOwnedBase_ProxyAdminNotFound), + ::core::stringify!(ProxyAdminOwnedBase_NotResolvedDelegateProxy), + ::core::stringify!(ProxyAdminOwnedBase_NotProxyAdminOwner), + ::core::stringify!(ReinitializableBase_ZeroInitVersion), + ::core::stringify!(ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner), + ::core::stringify!(ProxyAdminOwnedBase_NotProxyAdmin), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for FeesDepositorErrors { + const NAME: &'static str = "FeesDepositorErrors"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 7usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::ProxyAdminOwnedBase_NotProxyAdmin(_) => { + ::SELECTOR + } + Self::ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner(_) => { + ::SELECTOR + } + Self::ProxyAdminOwnedBase_NotProxyAdminOwner(_) => { + ::SELECTOR + } + Self::ProxyAdminOwnedBase_NotResolvedDelegateProxy(_) => { + ::SELECTOR + } + Self::ProxyAdminOwnedBase_NotSharedProxyAdminOwner(_) => { + ::SELECTOR + } + Self::ProxyAdminOwnedBase_ProxyAdminNotFound(_) => { + ::SELECTOR + } + Self::ReinitializableBase_ZeroInitVersion(_) => { + ::SELECTOR + } + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn ProxyAdminOwnedBase_NotSharedProxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + FeesDepositorErrors::ProxyAdminOwnedBase_NotSharedProxyAdminOwner, + ) + } + ProxyAdminOwnedBase_NotSharedProxyAdminOwner + }, + { + fn ProxyAdminOwnedBase_ProxyAdminNotFound( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + FeesDepositorErrors::ProxyAdminOwnedBase_ProxyAdminNotFound, + ) + } + ProxyAdminOwnedBase_ProxyAdminNotFound + }, + { + fn ProxyAdminOwnedBase_NotResolvedDelegateProxy( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + FeesDepositorErrors::ProxyAdminOwnedBase_NotResolvedDelegateProxy, + ) + } + ProxyAdminOwnedBase_NotResolvedDelegateProxy + }, + { + fn ProxyAdminOwnedBase_NotProxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + FeesDepositorErrors::ProxyAdminOwnedBase_NotProxyAdminOwner, + ) + } + ProxyAdminOwnedBase_NotProxyAdminOwner + }, + { + fn ReinitializableBase_ZeroInitVersion( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + FeesDepositorErrors::ReinitializableBase_ZeroInitVersion, + ) + } + ReinitializableBase_ZeroInitVersion + }, + { + fn ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + FeesDepositorErrors::ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner, + ) + } + ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner + }, + { + fn ProxyAdminOwnedBase_NotProxyAdmin( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(FeesDepositorErrors::ProxyAdminOwnedBase_NotProxyAdmin) + } + ProxyAdminOwnedBase_NotProxyAdmin + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn ProxyAdminOwnedBase_NotSharedProxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + FeesDepositorErrors::ProxyAdminOwnedBase_NotSharedProxyAdminOwner, + ) + } + ProxyAdminOwnedBase_NotSharedProxyAdminOwner + }, + { + fn ProxyAdminOwnedBase_ProxyAdminNotFound( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + FeesDepositorErrors::ProxyAdminOwnedBase_ProxyAdminNotFound, + ) + } + ProxyAdminOwnedBase_ProxyAdminNotFound + }, + { + fn ProxyAdminOwnedBase_NotResolvedDelegateProxy( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + FeesDepositorErrors::ProxyAdminOwnedBase_NotResolvedDelegateProxy, + ) + } + ProxyAdminOwnedBase_NotResolvedDelegateProxy + }, + { + fn ProxyAdminOwnedBase_NotProxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + FeesDepositorErrors::ProxyAdminOwnedBase_NotProxyAdminOwner, + ) + } + ProxyAdminOwnedBase_NotProxyAdminOwner + }, + { + fn ReinitializableBase_ZeroInitVersion( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + FeesDepositorErrors::ReinitializableBase_ZeroInitVersion, + ) + } + ReinitializableBase_ZeroInitVersion + }, + { + fn ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + FeesDepositorErrors::ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner, + ) + } + ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner + }, + { + fn ProxyAdminOwnedBase_NotProxyAdmin( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(FeesDepositorErrors::ProxyAdminOwnedBase_NotProxyAdmin) + } + ProxyAdminOwnedBase_NotProxyAdmin + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::ProxyAdminOwnedBase_NotProxyAdmin(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ProxyAdminOwnedBase_NotProxyAdminOwner(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ProxyAdminOwnedBase_NotResolvedDelegateProxy(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ProxyAdminOwnedBase_NotSharedProxyAdminOwner(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ProxyAdminOwnedBase_ProxyAdminNotFound(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ReinitializableBase_ZeroInitVersion(inner) => { + ::abi_encoded_size( + inner, + ) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::ProxyAdminOwnedBase_NotProxyAdmin(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ProxyAdminOwnedBase_NotProxyAdminOwner(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ProxyAdminOwnedBase_NotResolvedDelegateProxy(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ProxyAdminOwnedBase_NotSharedProxyAdminOwner(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ProxyAdminOwnedBase_ProxyAdminNotFound(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ReinitializableBase_ZeroInitVersion(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + } + } + } + ///Container for all the [`FeesDepositor`](self) events. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum FeesDepositorEvents { + #[allow(missing_docs)] + FeesDeposited(FeesDeposited), + #[allow(missing_docs)] + FundsReceived(FundsReceived), + #[allow(missing_docs)] + GasLimitUpdated(GasLimitUpdated), + #[allow(missing_docs)] + Initialized(Initialized), + #[allow(missing_docs)] + L2RecipientUpdated(L2RecipientUpdated), + #[allow(missing_docs)] + MinDepositAmountUpdated(MinDepositAmountUpdated), + } + impl FeesDepositorEvents { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 32usize]] = &[ + [ + 19u8, 40u8, 50u8, 190u8, 66u8, 112u8, 192u8, 209u8, 87u8, 60u8, 165u8, + 67u8, 196u8, 21u8, 23u8, 221u8, 68u8, 63u8, 233u8, 218u8, 245u8, 242u8, + 26u8, 156u8, 116u8, 148u8, 14u8, 109u8, 178u8, 130u8, 226u8, 41u8, + ], + [ + 21u8, 143u8, 4u8, 209u8, 46u8, 4u8, 3u8, 253u8, 214u8, 63u8, 188u8, + 237u8, 105u8, 78u8, 143u8, 112u8, 211u8, 184u8, 125u8, 4u8, 216u8, 226u8, + 223u8, 173u8, 82u8, 111u8, 95u8, 207u8, 110u8, 73u8, 187u8, 207u8, + ], + [ + 42u8, 202u8, 249u8, 35u8, 101u8, 160u8, 182u8, 159u8, 179u8, 87u8, 8u8, + 2u8, 57u8, 111u8, 98u8, 213u8, 26u8, 171u8, 204u8, 214u8, 132u8, 3u8, + 107u8, 114u8, 195u8, 206u8, 120u8, 105u8, 148u8, 37u8, 231u8, 238u8, + ], + [ + 54u8, 63u8, 49u8, 95u8, 147u8, 10u8, 23u8, 209u8, 38u8, 107u8, 134u8, + 162u8, 13u8, 109u8, 211u8, 75u8, 28u8, 251u8, 197u8, 169u8, 219u8, 159u8, + 19u8, 166u8, 93u8, 6u8, 166u8, 137u8, 195u8, 162u8, 175u8, 138u8, + ], + [ + 127u8, 38u8, 184u8, 63u8, 249u8, 110u8, 31u8, 43u8, 106u8, 104u8, 47u8, + 19u8, 56u8, 82u8, 246u8, 121u8, 138u8, 9u8, 196u8, 101u8, 218u8, 149u8, + 146u8, 20u8, 96u8, 206u8, 251u8, 56u8, 71u8, 64u8, 36u8, 152u8, + ], + [ + 132u8, 133u8, 139u8, 179u8, 251u8, 62u8, 207u8, 135u8, 226u8, 104u8, + 235u8, 239u8, 37u8, 14u8, 249u8, 173u8, 156u8, 213u8, 62u8, 247u8, 151u8, + 62u8, 247u8, 160u8, 236u8, 157u8, 137u8, 71u8, 11u8, 176u8, 10u8, 128u8, + ], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(MinDepositAmountUpdated), + ::core::stringify!(L2RecipientUpdated), + ::core::stringify!(FeesDeposited), + ::core::stringify!(FundsReceived), + ::core::stringify!(Initialized), + ::core::stringify!(GasLimitUpdated), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolEventInterface for FeesDepositorEvents { + const NAME: &'static str = "FeesDepositorEvents"; + const COUNT: usize = 6usize; + fn decode_raw_log( + topics: &[alloy_sol_types::Word], + data: &[u8], + ) -> alloy_sol_types::Result { + match topics.first().copied() { + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::FeesDeposited) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::FundsReceived) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::GasLimitUpdated) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::Initialized) + } + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::L2RecipientUpdated) + } + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::MinDepositAmountUpdated) + } + _ => { + alloy_sol_types::private::Err(alloy_sol_types::Error::InvalidLog { + name: ::NAME, + log: alloy_sol_types::private::Box::new( + alloy_sol_types::private::LogData::new_unchecked( + topics.to_vec(), + data.to_vec().into(), + ), + ), + }) + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for FeesDepositorEvents { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + match self { + Self::FeesDeposited(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::FundsReceived(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::GasLimitUpdated(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::Initialized(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::L2RecipientUpdated(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::MinDepositAmountUpdated(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + } + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + match self { + Self::FeesDeposited(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::FundsReceived(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::GasLimitUpdated(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::Initialized(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::L2RecipientUpdated(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::MinDepositAmountUpdated(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`FeesDepositor`](self) contract instance. + +See the [wrapper's documentation](`FeesDepositorInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> FeesDepositorInstance { + FeesDepositorInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + FeesDepositorInstance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + FeesDepositorInstance::::deploy_builder(__provider) + } + /**A [`FeesDepositor`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`FeesDepositor`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct FeesDepositorInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for FeesDepositorInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("FeesDepositorInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > FeesDepositorInstance { + /**Creates a new wrapper around an on-chain [`FeesDepositor`](self) contract instance. + +See the [wrapper's documentation](`FeesDepositorInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl FeesDepositorInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> FeesDepositorInstance { + FeesDepositorInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > FeesDepositorInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`gasLimit`] function. + pub fn gasLimit(&self) -> alloy_contract::SolCallBuilder<&P, gasLimitCall, N> { + self.call_builder(&gasLimitCall) + } + ///Creates a new call builder for the [`initVersion`] function. + pub fn initVersion( + &self, + ) -> alloy_contract::SolCallBuilder<&P, initVersionCall, N> { + self.call_builder(&initVersionCall) + } + ///Creates a new call builder for the [`initialize`] function. + pub fn initialize( + &self, + _minDepositAmount: alloy::sol_types::private::primitives::aliases::U96, + _l2Recipient: alloy::sol_types::private::Address, + _messenger: alloy::sol_types::private::Address, + _gasLimit: u32, + ) -> alloy_contract::SolCallBuilder<&P, initializeCall, N> { + self.call_builder( + &initializeCall { + _minDepositAmount, + _l2Recipient, + _messenger, + _gasLimit, + }, + ) + } + ///Creates a new call builder for the [`l2Recipient`] function. + pub fn l2Recipient( + &self, + ) -> alloy_contract::SolCallBuilder<&P, l2RecipientCall, N> { + self.call_builder(&l2RecipientCall) + } + ///Creates a new call builder for the [`messenger`] function. + pub fn messenger(&self) -> alloy_contract::SolCallBuilder<&P, messengerCall, N> { + self.call_builder(&messengerCall) + } + ///Creates a new call builder for the [`minDepositAmount`] function. + pub fn minDepositAmount( + &self, + ) -> alloy_contract::SolCallBuilder<&P, minDepositAmountCall, N> { + self.call_builder(&minDepositAmountCall) + } + ///Creates a new call builder for the [`proxyAdmin`] function. + pub fn proxyAdmin( + &self, + ) -> alloy_contract::SolCallBuilder<&P, proxyAdminCall, N> { + self.call_builder(&proxyAdminCall) + } + ///Creates a new call builder for the [`proxyAdminOwner`] function. + pub fn proxyAdminOwner( + &self, + ) -> alloy_contract::SolCallBuilder<&P, proxyAdminOwnerCall, N> { + self.call_builder(&proxyAdminOwnerCall) + } + ///Creates a new call builder for the [`setGasLimit`] function. + pub fn setGasLimit( + &self, + _newGasLimit: u32, + ) -> alloy_contract::SolCallBuilder<&P, setGasLimitCall, N> { + self.call_builder(&setGasLimitCall { _newGasLimit }) + } + ///Creates a new call builder for the [`setL2Recipient`] function. + pub fn setL2Recipient( + &self, + _newL2Recipient: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, setL2RecipientCall, N> { + self.call_builder( + &setL2RecipientCall { + _newL2Recipient, + }, + ) + } + ///Creates a new call builder for the [`setMinDepositAmount`] function. + pub fn setMinDepositAmount( + &self, + _newMinDepositAmount: alloy::sol_types::private::primitives::aliases::U96, + ) -> alloy_contract::SolCallBuilder<&P, setMinDepositAmountCall, N> { + self.call_builder( + &setMinDepositAmountCall { + _newMinDepositAmount, + }, + ) + } + ///Creates a new call builder for the [`version`] function. + pub fn version(&self) -> alloy_contract::SolCallBuilder<&P, versionCall, N> { + self.call_builder(&versionCall) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > FeesDepositorInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + ///Creates a new event filter for the [`FeesDeposited`] event. + pub fn FeesDeposited_filter( + &self, + ) -> alloy_contract::Event<&P, FeesDeposited, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`FundsReceived`] event. + pub fn FundsReceived_filter( + &self, + ) -> alloy_contract::Event<&P, FundsReceived, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`GasLimitUpdated`] event. + pub fn GasLimitUpdated_filter( + &self, + ) -> alloy_contract::Event<&P, GasLimitUpdated, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`Initialized`] event. + pub fn Initialized_filter(&self) -> alloy_contract::Event<&P, Initialized, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`L2RecipientUpdated`] event. + pub fn L2RecipientUpdated_filter( + &self, + ) -> alloy_contract::Event<&P, L2RecipientUpdated, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`MinDepositAmountUpdated`] event. + pub fn MinDepositAmountUpdated_filter( + &self, + ) -> alloy_contract::Event<&P, MinDepositAmountUpdated, N> { + self.event_filter::() + } + } +} diff --git a/bindings/rust/src/game_helper.rs b/bindings/rust/src/game_helper.rs new file mode 100644 index 000000000..305902ddf --- /dev/null +++ b/bindings/rust/src/game_helper.rs @@ -0,0 +1,1437 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface GameHelper { + type Claim is bytes32; + type GameType is uint32; + struct Move { + uint256 parentIdx; + Claim claim; + bool attack; + } + + receive() external payable; + + function createGameWithClaims(address _dgf, GameType _gameType, Claim _rootClaim, bytes memory _extraData, Move[] memory _moves) external payable returns (address gameAddr_); + function performMoves(address _game, Move[] memory _moves) external payable; +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "receive", + "stateMutability": "payable" + }, + { + "type": "function", + "name": "createGameWithClaims", + "inputs": [ + { + "name": "_dgf", + "type": "address", + "internalType": "contract IDisputeGameFactory" + }, + { + "name": "_gameType", + "type": "uint32", + "internalType": "GameType" + }, + { + "name": "_rootClaim", + "type": "bytes32", + "internalType": "Claim" + }, + { + "name": "_extraData", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "_moves", + "type": "tuple[]", + "internalType": "struct GameHelper.Move[]", + "components": [ + { + "name": "parentIdx", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "claim", + "type": "bytes32", + "internalType": "Claim" + }, + { + "name": "attack", + "type": "bool", + "internalType": "bool" + } + ] + } + ], + "outputs": [ + { + "name": "gameAddr_", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "performMoves", + "inputs": [ + { + "name": "_game", + "type": "address", + "internalType": "contract IFaultDisputeGame" + }, + { + "name": "_moves", + "type": "tuple[]", + "internalType": "struct GameHelper.Move[]", + "components": [ + { + "name": "parentIdx", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "claim", + "type": "bytes32", + "internalType": "Claim" + }, + { + "name": "attack", + "type": "bool", + "internalType": "bool" + } + ] + } + ], + "outputs": [], + "stateMutability": "payable" + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod GameHelper { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x6080604052348015600e575f5ffd5b506108688061001c5f395ff3fe60806040526004361061002b575f3560e01c8063f25792cd14610036578063fd7cf8591461004b575f5ffd5b3661003257005b5f5ffd5b610049610044366004610492565b610087565b005b61005e610059366004610570565b6102ed565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b805f5b818110156102e6575f8484838181106100a5576100a5610680565b9050606002018036038101906100bb91906106ad565b80516040517fc6f0308c0000000000000000000000000000000000000000000000000000000081529192505f91829173ffffffffffffffffffffffffffffffffffffffff8a169163c6f0308c916101189160040190815260200190565b60e060405180830381865afa158015610133573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610157919061072e565b5095509550505050505f8873ffffffffffffffffffffffffffffffffffffffff1663c395e1ca6101a68660400151856fffffffffffffffffffffffffffffffff1661041e90919063ffffffff16565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526fffffffffffffffffffffffffffffffff9091166004820152602401602060405180830381865afa158015610209573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061022d91906107bb565b8451602086015160408088015190517f6f03440900000000000000000000000000000000000000000000000000000000815293945073ffffffffffffffffffffffffffffffffffffffff8d1693636f0344099386936102a8938a93600401938452602084019290925260408301521515606082015260800190565b5f604051808303818588803b1580156102bf575f5ffd5b505af11580156102d1573d5f5f3e3d5ffd5b50506001909701965061008a95505050505050565b5050505050565b6040517f6593dc6e00000000000000000000000000000000000000000000000000000000815263ffffffff861660048201525f90819073ffffffffffffffffffffffffffffffffffffffff891690636593dc6e90602401602060405180830381865afa15801561035f573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061038391906107bb565b90508773ffffffffffffffffffffffffffffffffffffffff166382ecf2f6828989896040518563ffffffff1660e01b81526004016103c3939291906107d2565b60206040518083038185885af11580156103df573d5f5f3e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906104049190610839565b915081610412818686610087565b50509695505050505050565b151760011b90565b73ffffffffffffffffffffffffffffffffffffffff81168114610447575f5ffd5b50565b5f5f83601f84011261045a575f5ffd5b50813567ffffffffffffffff811115610471575f5ffd5b60208301915083602060608302850101111561048b575f5ffd5b9250929050565b5f5f5f604084860312156104a4575f5ffd5b83356104af81610426565b9250602084013567ffffffffffffffff8111156104ca575f5ffd5b6104d68682870161044a565b9497909650939450505050565b63ffffffff81168114610447575f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715610568576105686104f4565b604052919050565b5f5f5f5f5f5f60a08789031215610585575f5ffd5b863561059081610426565b955060208701356105a0816104e3565b945060408701359350606087013567ffffffffffffffff8111156105c2575f5ffd5b8701601f810189136105d2575f5ffd5b803567ffffffffffffffff8111156105ec576105ec6104f4565b61061d60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601610521565b8181528a6020838501011115610631575f5ffd5b816020840160208301375f60208383010152809550505050608087013567ffffffffffffffff811115610662575f5ffd5b61066e89828a0161044a565b979a9699509497509295939492505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f60608284031280156106be575f5ffd5b506040516060810167ffffffffffffffff811182821017156106e2576106e26104f4565b604090815283358252602080850135908301528301358015158114610705575f5ffd5b60408201529392505050565b6fffffffffffffffffffffffffffffffff81168114610447575f5ffd5b5f5f5f5f5f5f5f60e0888a031215610744575f5ffd5b875161074f816104e3565b602089015190975061076081610426565b604089015190965061077181610426565b606089015190955061078281610711565b608089015160a08a0151919550935061079a81610711565b60c08901519092506107ab81610711565b8091505092959891949750929550565b5f602082840312156107cb575f5ffd5b5051919050565b63ffffffff84168152826020820152606060408201525f82518060608401528060208501608085015e5f6080828501015260807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f830116840101915050949350505050565b5f60208284031215610849575f5ffd5b815161085481610426565b939250505056fea164736f6c634300081e000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R4\x80\x15`\x0EW__\xFD[Pa\x08h\x80a\0\x1C_9_\xF3\xFE`\x80`@R`\x046\x10a\0+W_5`\xE0\x1C\x80c\xF2W\x92\xCD\x14a\x006W\x80c\xFD|\xF8Y\x14a\0KW__\xFD[6a\x002W\0[__\xFD[a\0Ia\0D6`\x04a\x04\x92V[a\0\x87V[\0[a\0^a\0Y6`\x04a\x05pV[a\x02\xEDV[`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01`@Q\x80\x91\x03\x90\xF3[\x80_[\x81\x81\x10\x15a\x02\xE6W_\x84\x84\x83\x81\x81\x10a\0\xA5Wa\0\xA5a\x06\x80V[\x90P``\x02\x01\x806\x03\x81\x01\x90a\0\xBB\x91\x90a\x06\xADV[\x80Q`@Q\x7F\xC6\xF00\x8C\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\x91\x92P_\x91\x82\x91s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x8A\x16\x91c\xC6\xF00\x8C\x91a\x01\x18\x91`\x04\x01\x90\x81R` \x01\x90V[`\xE0`@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x013W=__>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x01W\x91\x90a\x07.V[P\x95P\x95PPPPP_\x88s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xC3\x95\xE1\xCAa\x01\xA6\x86`@\x01Q\x85o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a\x04\x1E\x90\x91\x90c\xFF\xFF\xFF\xFF\x16V[`@Q\x7F\xFF\xFF\xFF\xFF\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`\xE0\x84\x90\x1B\x16\x81Ro\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16`\x04\x82\x01R`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x02\tW=__>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x02-\x91\x90a\x07\xBBV[\x84Q` \x86\x01Q`@\x80\x88\x01Q\x90Q\x7Fo\x03D\t\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\x93\x94Ps\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x8D\x16\x93co\x03D\t\x93\x86\x93a\x02\xA8\x93\x8A\x93`\x04\x01\x93\x84R` \x84\x01\x92\x90\x92R`@\x83\x01R\x15\x15``\x82\x01R`\x80\x01\x90V[_`@Q\x80\x83\x03\x81\x85\x88\x80;\x15\x80\x15a\x02\xBFW__\xFD[PZ\xF1\x15\x80\x15a\x02\xD1W=__>=_\xFD[PP`\x01\x90\x97\x01\x96Pa\0\x8A\x95PPPPPPV[PPPPPV[`@Q\x7Fe\x93\xDCn\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\x81Rc\xFF\xFF\xFF\xFF\x86\x16`\x04\x82\x01R_\x90\x81\x90s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x89\x16\x90ce\x93\xDCn\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x03_W=__>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x03\x83\x91\x90a\x07\xBBV[\x90P\x87s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\x82\xEC\xF2\xF6\x82\x89\x89\x89`@Q\x85c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01a\x03\xC3\x93\x92\x91\x90a\x07\xD2V[` `@Q\x80\x83\x03\x81\x85\x88Z\xF1\x15\x80\x15a\x03\xDFW=__>=_\xFD[PPPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x04\x04\x91\x90a\x089V[\x91P\x81a\x04\x12\x81\x86\x86a\0\x87V[PP\x96\x95PPPPPPV[\x15\x17`\x01\x1B\x90V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x04GW__\xFD[PV[__\x83`\x1F\x84\x01\x12a\x04ZW__\xFD[P\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x04qW__\xFD[` \x83\x01\x91P\x83` ``\x83\x02\x85\x01\x01\x11\x15a\x04\x8BW__\xFD[\x92P\x92\x90PV[___`@\x84\x86\x03\x12\x15a\x04\xA4W__\xFD[\x835a\x04\xAF\x81a\x04&V[\x92P` \x84\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x04\xCAW__\xFD[a\x04\xD6\x86\x82\x87\x01a\x04JV[\x94\x97\x90\x96P\x93\x94PPPPV[c\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x04GW__\xFD[\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_R`A`\x04R`$_\xFD[`@Q`\x1F\x82\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a\x05hWa\x05ha\x04\xF4V[`@R\x91\x90PV[______`\xA0\x87\x89\x03\x12\x15a\x05\x85W__\xFD[\x865a\x05\x90\x81a\x04&V[\x95P` \x87\x015a\x05\xA0\x81a\x04\xE3V[\x94P`@\x87\x015\x93P``\x87\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x05\xC2W__\xFD[\x87\x01`\x1F\x81\x01\x89\x13a\x05\xD2W__\xFD[\x805g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x05\xECWa\x05\xECa\x04\xF4V[a\x06\x1D` \x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0`\x1F\x84\x01\x16\x01a\x05!V[\x81\x81R\x8A` \x83\x85\x01\x01\x11\x15a\x061W__\xFD[\x81` \x84\x01` \x83\x017_` \x83\x83\x01\x01R\x80\x95PPPP`\x80\x87\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x06bW__\xFD[a\x06n\x89\x82\x8A\x01a\x04JV[\x97\x9A\x96\x99P\x94\x97P\x92\x95\x93\x94\x92PPPV[\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_R`2`\x04R`$_\xFD[_``\x82\x84\x03\x12\x80\x15a\x06\xBEW__\xFD[P`@Q``\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a\x06\xE2Wa\x06\xE2a\x04\xF4V[`@\x90\x81R\x835\x82R` \x80\x85\x015\x90\x83\x01R\x83\x015\x80\x15\x15\x81\x14a\x07\x05W__\xFD[`@\x82\x01R\x93\x92PPPV[o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x04GW__\xFD[_______`\xE0\x88\x8A\x03\x12\x15a\x07DW__\xFD[\x87Qa\x07O\x81a\x04\xE3V[` \x89\x01Q\x90\x97Pa\x07`\x81a\x04&V[`@\x89\x01Q\x90\x96Pa\x07q\x81a\x04&V[``\x89\x01Q\x90\x95Pa\x07\x82\x81a\x07\x11V[`\x80\x89\x01Q`\xA0\x8A\x01Q\x91\x95P\x93Pa\x07\x9A\x81a\x07\x11V[`\xC0\x89\x01Q\x90\x92Pa\x07\xAB\x81a\x07\x11V[\x80\x91PP\x92\x95\x98\x91\x94\x97P\x92\x95PV[_` \x82\x84\x03\x12\x15a\x07\xCBW__\xFD[PQ\x91\x90PV[c\xFF\xFF\xFF\xFF\x84\x16\x81R\x82` \x82\x01R```@\x82\x01R_\x82Q\x80``\x84\x01R\x80` \x85\x01`\x80\x85\x01^_`\x80\x82\x85\x01\x01R`\x80\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0`\x1F\x83\x01\x16\x84\x01\x01\x91PP\x94\x93PPPPV[_` \x82\x84\x03\x12\x15a\x08IW__\xFD[\x81Qa\x08T\x81a\x04&V[\x93\x92PPPV\xFE\xA1dsolcC\0\x08\x1E\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x60806040526004361061002b575f3560e01c8063f25792cd14610036578063fd7cf8591461004b575f5ffd5b3661003257005b5f5ffd5b610049610044366004610492565b610087565b005b61005e610059366004610570565b6102ed565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b805f5b818110156102e6575f8484838181106100a5576100a5610680565b9050606002018036038101906100bb91906106ad565b80516040517fc6f0308c0000000000000000000000000000000000000000000000000000000081529192505f91829173ffffffffffffffffffffffffffffffffffffffff8a169163c6f0308c916101189160040190815260200190565b60e060405180830381865afa158015610133573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610157919061072e565b5095509550505050505f8873ffffffffffffffffffffffffffffffffffffffff1663c395e1ca6101a68660400151856fffffffffffffffffffffffffffffffff1661041e90919063ffffffff16565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526fffffffffffffffffffffffffffffffff9091166004820152602401602060405180830381865afa158015610209573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061022d91906107bb565b8451602086015160408088015190517f6f03440900000000000000000000000000000000000000000000000000000000815293945073ffffffffffffffffffffffffffffffffffffffff8d1693636f0344099386936102a8938a93600401938452602084019290925260408301521515606082015260800190565b5f604051808303818588803b1580156102bf575f5ffd5b505af11580156102d1573d5f5f3e3d5ffd5b50506001909701965061008a95505050505050565b5050505050565b6040517f6593dc6e00000000000000000000000000000000000000000000000000000000815263ffffffff861660048201525f90819073ffffffffffffffffffffffffffffffffffffffff891690636593dc6e90602401602060405180830381865afa15801561035f573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061038391906107bb565b90508773ffffffffffffffffffffffffffffffffffffffff166382ecf2f6828989896040518563ffffffff1660e01b81526004016103c3939291906107d2565b60206040518083038185885af11580156103df573d5f5f3e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906104049190610839565b915081610412818686610087565b50509695505050505050565b151760011b90565b73ffffffffffffffffffffffffffffffffffffffff81168114610447575f5ffd5b50565b5f5f83601f84011261045a575f5ffd5b50813567ffffffffffffffff811115610471575f5ffd5b60208301915083602060608302850101111561048b575f5ffd5b9250929050565b5f5f5f604084860312156104a4575f5ffd5b83356104af81610426565b9250602084013567ffffffffffffffff8111156104ca575f5ffd5b6104d68682870161044a565b9497909650939450505050565b63ffffffff81168114610447575f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715610568576105686104f4565b604052919050565b5f5f5f5f5f5f60a08789031215610585575f5ffd5b863561059081610426565b955060208701356105a0816104e3565b945060408701359350606087013567ffffffffffffffff8111156105c2575f5ffd5b8701601f810189136105d2575f5ffd5b803567ffffffffffffffff8111156105ec576105ec6104f4565b61061d60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601610521565b8181528a6020838501011115610631575f5ffd5b816020840160208301375f60208383010152809550505050608087013567ffffffffffffffff811115610662575f5ffd5b61066e89828a0161044a565b979a9699509497509295939492505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f60608284031280156106be575f5ffd5b506040516060810167ffffffffffffffff811182821017156106e2576106e26104f4565b604090815283358252602080850135908301528301358015158114610705575f5ffd5b60408201529392505050565b6fffffffffffffffffffffffffffffffff81168114610447575f5ffd5b5f5f5f5f5f5f5f60e0888a031215610744575f5ffd5b875161074f816104e3565b602089015190975061076081610426565b604089015190965061077181610426565b606089015190955061078281610711565b608089015160a08a0151919550935061079a81610711565b60c08901519092506107ab81610711565b8091505092959891949750929550565b5f602082840312156107cb575f5ffd5b5051919050565b63ffffffff84168152826020820152606060408201525f82518060608401528060208501608085015e5f6080828501015260807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f830116840101915050949350505050565b5f60208284031215610849575f5ffd5b815161085481610426565b939250505056fea164736f6c634300081e000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R`\x046\x10a\0+W_5`\xE0\x1C\x80c\xF2W\x92\xCD\x14a\x006W\x80c\xFD|\xF8Y\x14a\0KW__\xFD[6a\x002W\0[__\xFD[a\0Ia\0D6`\x04a\x04\x92V[a\0\x87V[\0[a\0^a\0Y6`\x04a\x05pV[a\x02\xEDV[`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01`@Q\x80\x91\x03\x90\xF3[\x80_[\x81\x81\x10\x15a\x02\xE6W_\x84\x84\x83\x81\x81\x10a\0\xA5Wa\0\xA5a\x06\x80V[\x90P``\x02\x01\x806\x03\x81\x01\x90a\0\xBB\x91\x90a\x06\xADV[\x80Q`@Q\x7F\xC6\xF00\x8C\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\x91\x92P_\x91\x82\x91s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x8A\x16\x91c\xC6\xF00\x8C\x91a\x01\x18\x91`\x04\x01\x90\x81R` \x01\x90V[`\xE0`@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x013W=__>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x01W\x91\x90a\x07.V[P\x95P\x95PPPPP_\x88s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xC3\x95\xE1\xCAa\x01\xA6\x86`@\x01Q\x85o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a\x04\x1E\x90\x91\x90c\xFF\xFF\xFF\xFF\x16V[`@Q\x7F\xFF\xFF\xFF\xFF\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`\xE0\x84\x90\x1B\x16\x81Ro\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16`\x04\x82\x01R`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x02\tW=__>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x02-\x91\x90a\x07\xBBV[\x84Q` \x86\x01Q`@\x80\x88\x01Q\x90Q\x7Fo\x03D\t\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\x93\x94Ps\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x8D\x16\x93co\x03D\t\x93\x86\x93a\x02\xA8\x93\x8A\x93`\x04\x01\x93\x84R` \x84\x01\x92\x90\x92R`@\x83\x01R\x15\x15``\x82\x01R`\x80\x01\x90V[_`@Q\x80\x83\x03\x81\x85\x88\x80;\x15\x80\x15a\x02\xBFW__\xFD[PZ\xF1\x15\x80\x15a\x02\xD1W=__>=_\xFD[PP`\x01\x90\x97\x01\x96Pa\0\x8A\x95PPPPPPV[PPPPPV[`@Q\x7Fe\x93\xDCn\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\x81Rc\xFF\xFF\xFF\xFF\x86\x16`\x04\x82\x01R_\x90\x81\x90s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x89\x16\x90ce\x93\xDCn\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x03_W=__>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x03\x83\x91\x90a\x07\xBBV[\x90P\x87s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\x82\xEC\xF2\xF6\x82\x89\x89\x89`@Q\x85c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01a\x03\xC3\x93\x92\x91\x90a\x07\xD2V[` `@Q\x80\x83\x03\x81\x85\x88Z\xF1\x15\x80\x15a\x03\xDFW=__>=_\xFD[PPPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x04\x04\x91\x90a\x089V[\x91P\x81a\x04\x12\x81\x86\x86a\0\x87V[PP\x96\x95PPPPPPV[\x15\x17`\x01\x1B\x90V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x04GW__\xFD[PV[__\x83`\x1F\x84\x01\x12a\x04ZW__\xFD[P\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x04qW__\xFD[` \x83\x01\x91P\x83` ``\x83\x02\x85\x01\x01\x11\x15a\x04\x8BW__\xFD[\x92P\x92\x90PV[___`@\x84\x86\x03\x12\x15a\x04\xA4W__\xFD[\x835a\x04\xAF\x81a\x04&V[\x92P` \x84\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x04\xCAW__\xFD[a\x04\xD6\x86\x82\x87\x01a\x04JV[\x94\x97\x90\x96P\x93\x94PPPPV[c\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x04GW__\xFD[\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_R`A`\x04R`$_\xFD[`@Q`\x1F\x82\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a\x05hWa\x05ha\x04\xF4V[`@R\x91\x90PV[______`\xA0\x87\x89\x03\x12\x15a\x05\x85W__\xFD[\x865a\x05\x90\x81a\x04&V[\x95P` \x87\x015a\x05\xA0\x81a\x04\xE3V[\x94P`@\x87\x015\x93P``\x87\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x05\xC2W__\xFD[\x87\x01`\x1F\x81\x01\x89\x13a\x05\xD2W__\xFD[\x805g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x05\xECWa\x05\xECa\x04\xF4V[a\x06\x1D` \x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0`\x1F\x84\x01\x16\x01a\x05!V[\x81\x81R\x8A` \x83\x85\x01\x01\x11\x15a\x061W__\xFD[\x81` \x84\x01` \x83\x017_` \x83\x83\x01\x01R\x80\x95PPPP`\x80\x87\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x06bW__\xFD[a\x06n\x89\x82\x8A\x01a\x04JV[\x97\x9A\x96\x99P\x94\x97P\x92\x95\x93\x94\x92PPPV[\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_R`2`\x04R`$_\xFD[_``\x82\x84\x03\x12\x80\x15a\x06\xBEW__\xFD[P`@Q``\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a\x06\xE2Wa\x06\xE2a\x04\xF4V[`@\x90\x81R\x835\x82R` \x80\x85\x015\x90\x83\x01R\x83\x015\x80\x15\x15\x81\x14a\x07\x05W__\xFD[`@\x82\x01R\x93\x92PPPV[o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x04GW__\xFD[_______`\xE0\x88\x8A\x03\x12\x15a\x07DW__\xFD[\x87Qa\x07O\x81a\x04\xE3V[` \x89\x01Q\x90\x97Pa\x07`\x81a\x04&V[`@\x89\x01Q\x90\x96Pa\x07q\x81a\x04&V[``\x89\x01Q\x90\x95Pa\x07\x82\x81a\x07\x11V[`\x80\x89\x01Q`\xA0\x8A\x01Q\x91\x95P\x93Pa\x07\x9A\x81a\x07\x11V[`\xC0\x89\x01Q\x90\x92Pa\x07\xAB\x81a\x07\x11V[\x80\x91PP\x92\x95\x98\x91\x94\x97P\x92\x95PV[_` \x82\x84\x03\x12\x15a\x07\xCBW__\xFD[PQ\x91\x90PV[c\xFF\xFF\xFF\xFF\x84\x16\x81R\x82` \x82\x01R```@\x82\x01R_\x82Q\x80``\x84\x01R\x80` \x85\x01`\x80\x85\x01^_`\x80\x82\x85\x01\x01R`\x80\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0`\x1F\x83\x01\x16\x84\x01\x01\x91PP\x94\x93PPPPV[_` \x82\x84\x03\x12\x15a\x08IW__\xFD[\x81Qa\x08T\x81a\x04&V[\x93\x92PPPV\xFE\xA1dsolcC\0\x08\x1E\0\n", + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct Claim(alloy::sol_types::private::FixedBytes<32>); + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue + for alloy::sol_types::private::FixedBytes<32> { + #[inline] + fn stv_to_tokens( + &self, + ) -> as alloy_sol_types::SolType>::Token<'_> { + alloy_sol_types::private::SolTypeValue::< + alloy::sol_types::sol_data::FixedBytes<32>, + >::stv_to_tokens(self) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + as alloy_sol_types::SolType>::tokenize(self) + .0 + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::SolType>::abi_encode_packed_to(self, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + as alloy_sol_types::SolType>::abi_encoded_size(self) + } + } + impl Claim { + /// The Solidity type name. + pub const NAME: &'static str = stringify!(@ name); + /// Convert from the underlying value type. + #[inline] + pub const fn from_underlying( + value: alloy::sol_types::private::FixedBytes<32>, + ) -> Self { + Self(value) + } + /// Return the underlying value. + #[inline] + pub const fn into_underlying( + self, + ) -> alloy::sol_types::private::FixedBytes<32> { + self.0 + } + /// Return the single encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode(&self) -> alloy_sol_types::private::Vec { + ::abi_encode(&self.0) + } + /// Return the packed encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec { + ::abi_encode_packed(&self.0) + } + } + #[automatically_derived] + impl From> for Claim { + fn from(value: alloy::sol_types::private::FixedBytes<32>) -> Self { + Self::from_underlying(value) + } + } + #[automatically_derived] + impl From for alloy::sol_types::private::FixedBytes<32> { + fn from(value: Claim) -> Self { + value.into_underlying() + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for Claim { + type RustType = alloy::sol_types::private::FixedBytes<32>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = Self::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + Self::type_check(token).is_ok() + } + #[inline] + fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> { + as alloy_sol_types::SolType>::type_check(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + as alloy_sol_types::SolType>::detokenize(token) + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for Claim { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + as alloy_sol_types::EventTopic>::topic_preimage_length(rust) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out) + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + as alloy_sol_types::EventTopic>::encode_topic(rust) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct GameType(u32); + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for u32 { + #[inline] + fn stv_to_tokens( + &self, + ) -> as alloy_sol_types::SolType>::Token<'_> { + alloy_sol_types::private::SolTypeValue::< + alloy::sol_types::sol_data::Uint<32>, + >::stv_to_tokens(self) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + as alloy_sol_types::SolType>::tokenize(self) + .0 + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::SolType>::abi_encode_packed_to(self, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + as alloy_sol_types::SolType>::abi_encoded_size(self) + } + } + impl GameType { + /// The Solidity type name. + pub const NAME: &'static str = stringify!(@ name); + /// Convert from the underlying value type. + #[inline] + pub const fn from_underlying(value: u32) -> Self { + Self(value) + } + /// Return the underlying value. + #[inline] + pub const fn into_underlying(self) -> u32 { + self.0 + } + /// Return the single encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode(&self) -> alloy_sol_types::private::Vec { + ::abi_encode(&self.0) + } + /// Return the packed encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec { + ::abi_encode_packed(&self.0) + } + } + #[automatically_derived] + impl From for GameType { + fn from(value: u32) -> Self { + Self::from_underlying(value) + } + } + #[automatically_derived] + impl From for u32 { + fn from(value: GameType) -> Self { + value.into_underlying() + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for GameType { + type RustType = u32; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = Self::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + Self::type_check(token).is_ok() + } + #[inline] + fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> { + as alloy_sol_types::SolType>::type_check(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + as alloy_sol_types::SolType>::detokenize(token) + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for GameType { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + as alloy_sol_types::EventTopic>::topic_preimage_length(rust) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out) + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + as alloy_sol_types::EventTopic>::encode_topic(rust) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**```solidity +struct Move { uint256 parentIdx; Claim claim; bool attack; } +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct Move { + #[allow(missing_docs)] + pub parentIdx: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub claim: ::RustType, + #[allow(missing_docs)] + pub attack: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + Claim, + alloy::sol_types::sol_data::Bool, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ::RustType, + bool, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: Move) -> Self { + (value.parentIdx, value.claim, value.attack) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for Move { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + parentIdx: tuple.0, + claim: tuple.1, + attack: tuple.2, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolValue for Move { + type SolType = Self; + } + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for Move { + #[inline] + fn stv_to_tokens(&self) -> ::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.parentIdx), + ::tokenize(&self.claim), + ::tokenize( + &self.attack, + ), + ) + } + #[inline] + fn stv_abi_encoded_size(&self) -> usize { + if let Some(size) = ::ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encoded_size(&tuple) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + ::eip712_hash_struct(self) + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + if let Some(size) = ::PACKED_ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for Move { + type RustType = Self; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = ::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + as alloy_sol_types::SolType>::valid_token(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + let tuple = as alloy_sol_types::SolType>::detokenize(token); + >>::from(tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolStruct for Move { + const NAME: &'static str = "Move"; + #[inline] + fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> { + alloy_sol_types::private::Cow::Borrowed( + "Move(uint256 parentIdx,bytes32 claim,bool attack)", + ) + } + #[inline] + fn eip712_components() -> alloy_sol_types::private::Vec< + alloy_sol_types::private::Cow<'static, str>, + > { + alloy_sol_types::private::Vec::new() + } + #[inline] + fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> { + ::eip712_root_type() + } + #[inline] + fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec { + [ + as alloy_sol_types::SolType>::eip712_data_word(&self.parentIdx) + .0, + ::eip712_data_word(&self.claim).0, + ::eip712_data_word( + &self.attack, + ) + .0, + ] + .concat() + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for Move { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + 0usize + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.parentIdx, + ) + + ::topic_preimage_length( + &rust.claim, + ) + + ::topic_preimage_length( + &rust.attack, + ) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + out.reserve( + ::topic_preimage_length(rust), + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.parentIdx, + out, + ); + ::encode_topic_preimage( + &rust.claim, + out, + ); + ::encode_topic_preimage( + &rust.attack, + out, + ); + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + let mut out = alloy_sol_types::private::Vec::new(); + ::encode_topic_preimage( + rust, + &mut out, + ); + alloy_sol_types::abi::token::WordToken( + alloy_sol_types::private::keccak256(out), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `createGameWithClaims(address,uint32,bytes32,bytes,(uint256,bytes32,bool)[])` and selector `0xfd7cf859`. +```solidity +function createGameWithClaims(address _dgf, GameType _gameType, Claim _rootClaim, bytes memory _extraData, Move[] memory _moves) external payable returns (address gameAddr_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct createGameWithClaimsCall { + #[allow(missing_docs)] + pub _dgf: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _gameType: ::RustType, + #[allow(missing_docs)] + pub _rootClaim: ::RustType, + #[allow(missing_docs)] + pub _extraData: alloy::sol_types::private::Bytes, + #[allow(missing_docs)] + pub _moves: alloy::sol_types::private::Vec< + ::RustType, + >, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`createGameWithClaims(address,uint32,bytes32,bytes,(uint256,bytes32,bool)[])`](createGameWithClaimsCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct createGameWithClaimsReturn { + #[allow(missing_docs)] + pub gameAddr_: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + GameType, + Claim, + alloy::sol_types::sol_data::Bytes, + alloy::sol_types::sol_data::Array, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + ::RustType, + ::RustType, + alloy::sol_types::private::Bytes, + alloy::sol_types::private::Vec< + ::RustType, + >, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: createGameWithClaimsCall) -> Self { + ( + value._dgf, + value._gameType, + value._rootClaim, + value._extraData, + value._moves, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for createGameWithClaimsCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _dgf: tuple.0, + _gameType: tuple.1, + _rootClaim: tuple.2, + _extraData: tuple.3, + _moves: tuple.4, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: createGameWithClaimsReturn) -> Self { + (value.gameAddr_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for createGameWithClaimsReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { gameAddr_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for createGameWithClaimsCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + GameType, + Claim, + alloy::sol_types::sol_data::Bytes, + alloy::sol_types::sol_data::Array, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "createGameWithClaims(address,uint32,bytes32,bytes,(uint256,bytes32,bool)[])"; + const SELECTOR: [u8; 4] = [253u8, 124u8, 248u8, 89u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._dgf, + ), + ::tokenize(&self._gameType), + ::tokenize(&self._rootClaim), + ::tokenize( + &self._extraData, + ), + as alloy_sol_types::SolType>::tokenize(&self._moves), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: createGameWithClaimsReturn = r.into(); + r.gameAddr_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: createGameWithClaimsReturn = r.into(); + r.gameAddr_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `performMoves(address,(uint256,bytes32,bool)[])` and selector `0xf25792cd`. +```solidity +function performMoves(address _game, Move[] memory _moves) external payable; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct performMovesCall { + #[allow(missing_docs)] + pub _game: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _moves: alloy::sol_types::private::Vec< + ::RustType, + >, + } + ///Container type for the return parameters of the [`performMoves(address,(uint256,bytes32,bool)[])`](performMovesCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct performMovesReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Array, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Vec< + ::RustType, + >, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: performMovesCall) -> Self { + (value._game, value._moves) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for performMovesCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _game: tuple.0, + _moves: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: performMovesReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for performMovesReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl performMovesReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for performMovesCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Array, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = performMovesReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "performMoves(address,(uint256,bytes32,bool)[])"; + const SELECTOR: [u8; 4] = [242u8, 87u8, 146u8, 205u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._game, + ), + as alloy_sol_types::SolType>::tokenize(&self._moves), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + performMovesReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + ///Container for all the [`GameHelper`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum GameHelperCalls { + #[allow(missing_docs)] + createGameWithClaims(createGameWithClaimsCall), + #[allow(missing_docs)] + performMoves(performMovesCall), + } + impl GameHelperCalls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [242u8, 87u8, 146u8, 205u8], + [253u8, 124u8, 248u8, 89u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(performMoves), + ::core::stringify!(createGameWithClaims), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for GameHelperCalls { + const NAME: &'static str = "GameHelperCalls"; + const MIN_DATA_LENGTH: usize = 96usize; + const COUNT: usize = 2usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::createGameWithClaims(_) => { + ::SELECTOR + } + Self::performMoves(_) => { + ::SELECTOR + } + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn performMoves( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(GameHelperCalls::performMoves) + } + performMoves + }, + { + fn createGameWithClaims( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(GameHelperCalls::createGameWithClaims) + } + createGameWithClaims + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn performMoves( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(GameHelperCalls::performMoves) + } + performMoves + }, + { + fn createGameWithClaims( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(GameHelperCalls::createGameWithClaims) + } + createGameWithClaims + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::createGameWithClaims(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::performMoves(inner) => { + ::abi_encoded_size( + inner, + ) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::createGameWithClaims(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::performMoves(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`GameHelper`](self) contract instance. + +See the [wrapper's documentation](`GameHelperInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> GameHelperInstance { + GameHelperInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + GameHelperInstance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + GameHelperInstance::::deploy_builder(__provider) + } + /**A [`GameHelper`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`GameHelper`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct GameHelperInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for GameHelperInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("GameHelperInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > GameHelperInstance { + /**Creates a new wrapper around an on-chain [`GameHelper`](self) contract instance. + +See the [wrapper's documentation](`GameHelperInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl GameHelperInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> GameHelperInstance { + GameHelperInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > GameHelperInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`createGameWithClaims`] function. + pub fn createGameWithClaims( + &self, + _dgf: alloy::sol_types::private::Address, + _gameType: ::RustType, + _rootClaim: ::RustType, + _extraData: alloy::sol_types::private::Bytes, + _moves: alloy::sol_types::private::Vec< + ::RustType, + >, + ) -> alloy_contract::SolCallBuilder<&P, createGameWithClaimsCall, N> { + self.call_builder( + &createGameWithClaimsCall { + _dgf, + _gameType, + _rootClaim, + _extraData, + _moves, + }, + ) + } + ///Creates a new call builder for the [`performMoves`] function. + pub fn performMoves( + &self, + _game: alloy::sol_types::private::Address, + _moves: alloy::sol_types::private::Vec< + ::RustType, + >, + ) -> alloy_contract::SolCallBuilder<&P, performMovesCall, N> { + self.call_builder(&performMovesCall { _game, _moves }) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > GameHelperInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + } +} diff --git a/bindings/rust/src/gas_paying_token.rs b/bindings/rust/src/gas_paying_token.rs new file mode 100644 index 000000000..63dae8daf --- /dev/null +++ b/bindings/rust/src/gas_paying_token.rs @@ -0,0 +1,215 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface GasPayingToken {} +``` + +...which was generated by the following JSON ABI: +```json +[] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod GasPayingToken { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`-`7`\x0B\x82\x82\x829\x80Q`\0\x1A`s\x14`*WcNH{q`\xE0\x1B`\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`\0\x80\xFD\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + 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`\0\x80\xFD\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`GasPayingToken`](self) contract instance. + +See the [wrapper's documentation](`GasPayingTokenInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> GasPayingTokenInstance { + GasPayingTokenInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + GasPayingTokenInstance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + GasPayingTokenInstance::::deploy_builder(__provider) + } + /**A [`GasPayingToken`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`GasPayingToken`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct GasPayingTokenInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for GasPayingTokenInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("GasPayingTokenInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > GasPayingTokenInstance { + /**Creates a new wrapper around an on-chain [`GasPayingToken`](self) contract instance. + +See the [wrapper's documentation](`GasPayingTokenInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl GasPayingTokenInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> GasPayingTokenInstance { + GasPayingTokenInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > GasPayingTokenInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > GasPayingTokenInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + } +} diff --git a/bindings/rust/src/gas_price_oracle.rs b/bindings/rust/src/gas_price_oracle.rs new file mode 100644 index 000000000..604fac28d --- /dev/null +++ b/bindings/rust/src/gas_price_oracle.rs @@ -0,0 +1,4982 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface GasPriceOracle { + function DECIMALS() external view returns (uint256); + function baseFee() external view returns (uint256); + function baseFeeScalar() external view returns (uint32); + function blobBaseFee() external view returns (uint256); + function blobBaseFeeScalar() external view returns (uint32); + function decimals() external pure returns (uint256); + function gasPrice() external view returns (uint256); + function getL1Fee(bytes memory _data) external view returns (uint256); + function getL1FeeUpperBound(uint256 _unsignedTxSize) external view returns (uint256); + function getL1GasUsed(bytes memory _data) external view returns (uint256); + function getOperatorFee(uint256 _gasUsed) external view returns (uint256); + function isEcotone() external view returns (bool); + function isFjord() external view returns (bool); + function isIsthmus() external view returns (bool); + function isJovian() external view returns (bool); + function l1BaseFee() external view returns (uint256); + function overhead() external view returns (uint256); + function scalar() external view returns (uint256); + function setEcotone() external; + function setFjord() external; + function setIsthmus() external; + function setJovian() external; + function version() external view returns (string memory); +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "function", + "name": "DECIMALS", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "baseFee", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "baseFeeScalar", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint32", + "internalType": "uint32" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "blobBaseFee", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "blobBaseFeeScalar", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint32", + "internalType": "uint32" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "decimals", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "gasPrice", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "getL1Fee", + "inputs": [ + { + "name": "_data", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "getL1FeeUpperBound", + "inputs": [ + { + "name": "_unsignedTxSize", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "getL1GasUsed", + "inputs": [ + { + "name": "_data", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "getOperatorFee", + "inputs": [ + { + "name": "_gasUsed", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "isEcotone", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "isFjord", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "isIsthmus", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "isJovian", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "l1BaseFee", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "overhead", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "scalar", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "setEcotone", + "inputs": [], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "setFjord", + "inputs": [], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "setIsthmus", + "inputs": [], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "setJovian", + "inputs": [], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "version", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "view" + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod GasPriceOracle { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x608060405234801561001057600080fd5b50611ea8806100206000396000f3fe608060405234801561001057600080fd5b506004361061018d5760003560e01c806368d5dca6116100e3578063c59859181161008c578063f45e65d811610066578063f45e65d8146102fc578063f820614014610304578063fe173b971461029357600080fd5b8063c5985918146102ce578063de26c4a1146102d6578063f1c7a58b146102e957600080fd5b8063960e3a23116100bd578063960e3a23146102a1578063b3d72079146102b3578063b54501bc146102bb57600080fd5b806368d5dca6146102765780636ef25c3a146102935780638e98b1061461029957600080fd5b80632e0f2625116101455780634ef6e2241161011f5780634ef6e22414610218578063519b4bd31461022557806354fd4d501461022d57600080fd5b80632e0f2625146101f6578063313ce567146101fe57806349948e0e1461020557600080fd5b806322b90ab31161017657806322b90ab3146101d1578063275aedd2146101db578063291b0383146101ee57600080fd5b80630c18c16214610192578063105d0b81146101ad575b600080fd5b61019a61030c565b6040519081526020015b60405180910390f35b6000546101c1906301000000900460ff1681565b60405190151581526020016101a4565b6101d961042d565b005b61019a6101e93660046118fa565b6105b6565b6101d9610776565b61019a600681565b600661019a565b61019a610213366004611942565b61099e565b6000546101c19060ff1681565b61019a6109db565b6102696040518060400160405280600581526020017f312e362e3000000000000000000000000000000000000000000000000000000081525081565b6040516101a49190611a11565b61027e610a3c565b60405163ffffffff90911681526020016101a4565b4861019a565b6101d9610ac1565b6000546101c190610100900460ff1681565b6101d9610cbb565b6000546101c19062010000900460ff1681565b61027e610ec2565b61019a6102e4366004611942565b610f23565b61019a6102f73660046118fa565b61101d565b61019a6110f1565b61019a6111e4565b6000805460ff16156103a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f47617350726963654f7261636c653a206f76657268656164282920697320646560448201527f707265636174656400000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b73420000000000000000000000000000000000001573ffffffffffffffffffffffffffffffffffffffff16638b239f736040518163ffffffff1660e01b8152600401602060405180830381865afa158015610404573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104289190611a84565b905090565b3373deaddeaddeaddeaddeaddeaddeaddeaddead0001146104f6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604160248201527f47617350726963654f7261636c653a206f6e6c7920746865206465706f73697460448201527f6f72206163636f756e742063616e2073657420697345636f746f6e6520666c6160648201527f6700000000000000000000000000000000000000000000000000000000000000608482015260a40161039c565b60005460ff1615610589576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f47617350726963654f7261636c653a2045636f746f6e6520616c72656164792060448201527f6163746976650000000000000000000000000000000000000000000000000000606482015260840161039c565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055565b6000805462010000900460ff166105cf57506000919050565b600073420000000000000000000000000000000000001573ffffffffffffffffffffffffffffffffffffffff16634d5d9a2a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610630573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106549190611a9d565b63ffffffff169050600073420000000000000000000000000000000000001573ffffffffffffffffffffffffffffffffffffffff166316d3bc7f6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106e19190611ac3565b67ffffffffffffffff169050600060039054906101000a900460ff161561072a578061070d8386611b1c565b610718906064611b1c565b6107229190611b59565b949350505050565b610722620f424083860286810485148715177fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01176107699190611b71565b8281019081106000031790565b3373deaddeaddeaddeaddeaddeaddeaddeaddead00011461083f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604160248201527f47617350726963654f7261636c653a206f6e6c7920746865206465706f73697460448201527f6f72206163636f756e742063616e20736574206973497374686d757320666c6160648201527f6700000000000000000000000000000000000000000000000000000000000000608482015260a40161039c565b600054610100900460ff166108d6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603960248201527f47617350726963654f7261636c653a20497374686d75732063616e206f6e6c7960448201527f2062652061637469766174656420616674657220466a6f726400000000000000606482015260840161039c565b60005462010000900460ff161561096f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f47617350726963654f7261636c653a20497374686d757320616c72656164792060448201527f6163746976650000000000000000000000000000000000000000000000000000606482015260840161039c565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff1662010000179055565b60008054610100900460ff16156109be576109b882611245565b92915050565b60005460ff16156109d2576109b882611264565b6109b882611308565b600073420000000000000000000000000000000000001573ffffffffffffffffffffffffffffffffffffffff16635cf249696040518163ffffffff1660e01b8152600401602060405180830381865afa158015610404573d6000803e3d6000fd5b600073420000000000000000000000000000000000001573ffffffffffffffffffffffffffffffffffffffff166368d5dca66040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a9d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104289190611a9d565b3373deaddeaddeaddeaddeaddeaddeaddeaddead000114610b64576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603f60248201527f47617350726963654f7261636c653a206f6e6c7920746865206465706f73697460448201527f6f72206163636f756e742063616e20736574206973466a6f726420666c616700606482015260840161039c565b60005460ff16610bf6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603960248201527f47617350726963654f7261636c653a20466a6f72642063616e206f6e6c79206260448201527f65206163746976617465642061667465722045636f746f6e6500000000000000606482015260840161039c565b600054610100900460ff1615610c8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f47617350726963654f7261636c653a20466a6f726420616c726561647920616360448201527f7469766500000000000000000000000000000000000000000000000000000000606482015260840161039c565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16610100179055565b3373deaddeaddeaddeaddeaddeaddeaddeaddead000114610d6057604080517f08c379a00000000000000000000000000000000000000000000000000000000081526020600482015260248101919091527f47617350726963654f7261636c653a206f6e6c7920746865206465706f73697460448201527f6f72206163636f756e742063616e207365742069734a6f7669616e20666c6167606482015260840161039c565b60005462010000900460ff16610df8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603a60248201527f47617350726963654f7261636c653a204a6f7669616e2063616e206f6e6c792060448201527f62652061637469766174656420616674657220497374686d7573000000000000606482015260840161039c565b6000546301000000900460ff1615610e92576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f47617350726963654f7261636c653a204a6f7669616e20616c7265616479206160448201527f6374697665000000000000000000000000000000000000000000000000000000606482015260840161039c565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff166301000000179055565b600073420000000000000000000000000000000000001573ffffffffffffffffffffffffffffffffffffffff1663c59859186040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a9d573d6000803e3d6000fd5b60008054610100900460ff1615610f6a57620f4240610f55610f448461145c565b51610f50906044611b59565b611779565b610f60906010611b1c565b6109b89190611b71565b6000610f75836117d8565b60005490915060ff1615610f895792915050565b73420000000000000000000000000000000000001573ffffffffffffffffffffffffffffffffffffffff16638b239f736040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fe8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061100c9190611a84565b6110169082611b59565b9392505050565b60008054610100900460ff166110b5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f47617350726963654f7261636c653a206765744c314665655570706572426f7560448201527f6e64206f6e6c7920737570706f72747320466a6f726400000000000000000000606482015260840161039c565b60006110c2836044611b59565b905060006110d160ff83611b71565b6110db9083611b59565b6110e6906010611b59565b905061072281611868565b6000805460ff1615611185576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f47617350726963654f7261636c653a207363616c61722829206973206465707260448201527f6563617465640000000000000000000000000000000000000000000000000000606482015260840161039c565b73420000000000000000000000000000000000001573ffffffffffffffffffffffffffffffffffffffff16639e8c49666040518163ffffffff1660e01b8152600401602060405180830381865afa158015610404573d6000803e3d6000fd5b600073420000000000000000000000000000000000001573ffffffffffffffffffffffffffffffffffffffff1663f82061406040518163ffffffff1660e01b8152600401602060405180830381865afa158015610404573d6000803e3d6000fd5b60006109b86112538361145c565b5161125f906044611b59565b611868565b600080611270836117d8565b9050600061127c6109db565b611284610ec2565b61128f906010611bac565b63ffffffff1661129f9190611b1c565b905060006112ab6111e4565b6112b3610a3c565b63ffffffff166112c39190611b1c565b905060006112d18284611b59565b6112db9085611b1c565b90506112e96006600a611cf8565b6112f4906010611b1c565b6112fe9082611b71565b9695505050505050565b600080611314836117d8565b9050600073420000000000000000000000000000000000001573ffffffffffffffffffffffffffffffffffffffff16639e8c49666040518163ffffffff1660e01b8152600401602060405180830381865afa158015611377573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061139b9190611a84565b6113a36109db565b73420000000000000000000000000000000000001573ffffffffffffffffffffffffffffffffffffffff16638b239f736040518163ffffffff1660e01b8152600401602060405180830381865afa158015611402573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114269190611a84565b6114309085611b59565b61143a9190611b1c565b6114449190611b1c565b90506114526006600a611cf8565b6107229082611b71565b60606115eb565b818153600101919050565b600082840393505b838110156110165782810151828201511860001a1590930292600101611476565b825b602082106114e35782516114ae601f83611463565b52602092909201917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090910190602101611499565b81156110165782516114f86001840383611463565b520160010192915050565b60006001830392505b6101078210611544576115368360ff1661153160fd6115318760081c60e00189611463565b611463565b93506101068203915061150c565b600782106115715761156a8360ff16611531600785036115318760081c60e00189611463565b9050611016565b6107228360ff166115318560081c8560051b0187611463565b6115e38282036115c76115b784600081518060001a8160011a60081b178160021a60101b17915050919050565b639e3779b90260131c611fff1690565b8060021b6040510182815160e01c1860e01b8151188152505050565b600101919050565b6180003860405139618000604051016020830180600d8551820103826002015b8181101561171e576000805b50508051604051600082901a600183901a60081b1760029290921a60101b91909117639e3779b9810260111c617ffc16909101805160e081811c878603811890911b9091189091528401908183039084841061167357506116ae565b600184019350611fff82116116a8578251600081901a600182901a60081b1760029190911a60101b1781036116a857506116ae565b50611617565b8383106116bc57505061171e565b600183039250858311156116da576116d78787888603611497565b96505b6116ee60098501600385016003850161146e565b91506116fb878284611503565b9650506117138461170e8684860161158a565b61158a565b91505080935061160b565b50506117308383848851850103611497565b925050506040519150618000820180820391508183526020830160005b8381101561176557828101518282015260200161174d565b506000920191825250602001604052919050565b60008061178983620cc394611b1c565b6117b3907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd763200611d04565b90506117c36064620f4240611d78565b8112156109b8576110166064620f4240611d78565b80516000908190815b8181101561185b578481815181106117fb576117fb611e34565b01602001517fff000000000000000000000000000000000000000000000000000000000000001660000361183b57611834600484611b59565b9250611849565b611846601084611b59565b92505b8061185381611e63565b9150506117e1565b5061072282610440611b59565b60008061187483611779565b905060006118806111e4565b611888610a3c565b63ffffffff166118989190611b1c565b6118a06109db565b6118a8610ec2565b6118b3906010611bac565b63ffffffff166118c39190611b1c565b6118cd9190611b59565b90506118db60066002611b1c565b6118e690600a611cf8565b6118f08284611b1c565b6107229190611b71565b60006020828403121561190c57600080fd5b5035919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60006020828403121561195457600080fd5b813567ffffffffffffffff8082111561196c57600080fd5b818401915084601f83011261198057600080fd5b81358181111561199257611992611913565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019083821181831017156119d8576119d8611913565b816040528281528760208487010111156119f157600080fd5b826020860160208301376000928101602001929092525095945050505050565b600060208083528351808285015260005b81811015611a3e57858101830151858201604001528201611a22565b81811115611a50576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b600060208284031215611a9657600080fd5b5051919050565b600060208284031215611aaf57600080fd5b815163ffffffff8116811461101657600080fd5b600060208284031215611ad557600080fd5b815167ffffffffffffffff8116811461101657600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615611b5457611b54611aed565b500290565b60008219821115611b6c57611b6c611aed565b500190565b600082611ba7577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b600063ffffffff80831681851681830481118215151615611bcf57611bcf611aed565b02949350505050565b600181815b80851115611c3157817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821115611c1757611c17611aed565b80851615611c2457918102915b93841c9390800290611bdd565b509250929050565b600082611c48575060016109b8565b81611c55575060006109b8565b8160018114611c6b5760028114611c7557611c91565b60019150506109b8565b60ff841115611c8657611c86611aed565b50506001821b6109b8565b5060208310610133831016604e8410600b8410161715611cb4575081810a6109b8565b611cbe8383611bd8565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821115611cf057611cf0611aed565b029392505050565b60006110168383611c39565b6000808212827f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03841381151615611d3e57611d3e611aed565b827f8000000000000000000000000000000000000000000000000000000000000000038412811615611d7257611d72611aed565b50500190565b60007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600084136000841385830485118282161615611db957611db9611aed565b7f80000000000000000000000000000000000000000000000000000000000000006000871286820588128184161615611df457611df4611aed565b60008712925087820587128484161615611e1057611e10611aed565b87850587128184161615611e2657611e26611aed565b505050929093029392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611e9457611e94611aed565b506001019056fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[Pa\x1E\xA8\x80a\0 `\09`\0\xF3\xFE`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`\x046\x10a\x01\x8DW`\x005`\xE0\x1C\x80ch\xD5\xDC\xA6\x11a\0\xE3W\x80c\xC5\x98Y\x18\x11a\0\x8CW\x80c\xF4^e\xD8\x11a\0fW\x80c\xF4^e\xD8\x14a\x02\xFCW\x80c\xF8 a@\x14a\x03\x04W\x80c\xFE\x17;\x97\x14a\x02\x93W`\0\x80\xFD[\x80c\xC5\x98Y\x18\x14a\x02\xCEW\x80c\xDE&\xC4\xA1\x14a\x02\xD6W\x80c\xF1\xC7\xA5\x8B\x14a\x02\xE9W`\0\x80\xFD[\x80c\x96\x0E:#\x11a\0\xBDW\x80c\x96\x0E:#\x14a\x02\xA1W\x80c\xB3\xD7 y\x14a\x02\xB3W\x80c\xB5E\x01\xBC\x14a\x02\xBBW`\0\x80\xFD[\x80ch\xD5\xDC\xA6\x14a\x02vW\x80cn\xF2\\:\x14a\x02\x93W\x80c\x8E\x98\xB1\x06\x14a\x02\x99W`\0\x80\xFD[\x80c.\x0F&%\x11a\x01EW\x80cN\xF6\xE2$\x11a\x01\x1FW\x80cN\xF6\xE2$\x14a\x02\x18W\x80cQ\x9BK\xD3\x14a\x02%W\x80cT\xFDMP\x14a\x02-W`\0\x80\xFD[\x80c.\x0F&%\x14a\x01\xF6W\x80c1<\xE5g\x14a\x01\xFEW\x80cI\x94\x8E\x0E\x14a\x02\x05W`\0\x80\xFD[\x80c\"\xB9\n\xB3\x11a\x01vW\x80c\"\xB9\n\xB3\x14a\x01\xD1W\x80c'Z\xED\xD2\x14a\x01\xDBW\x80c)\x1B\x03\x83\x14a\x01\xEEW`\0\x80\xFD[\x80c\x0C\x18\xC1b\x14a\x01\x92W\x80c\x10]\x0B\x81\x14a\x01\xADW[`\0\x80\xFD[a\x01\x9Aa\x03\x0CV[`@Q\x90\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[`\0Ta\x01\xC1\x90c\x01\0\0\0\x90\x04`\xFF\x16\x81V[`@Q\x90\x15\x15\x81R` \x01a\x01\xA4V[a\x01\xD9a\x04-V[\0[a\x01\x9Aa\x01\xE96`\x04a\x18\xFAV[a\x05\xB6V[a\x01\xD9a\x07vV[a\x01\x9A`\x06\x81V[`\x06a\x01\x9AV[a\x01\x9Aa\x02\x136`\x04a\x19BV[a\t\x9EV[`\0Ta\x01\xC1\x90`\xFF\x16\x81V[a\x01\x9Aa\t\xDBV[a\x02i`@Q\x80`@\x01`@R\x80`\x05\x81R` \x01\x7F1.6.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\x81RP\x81V[`@Qa\x01\xA4\x91\x90a\x1A\x11V[a\x02~a\n=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x04(\x91\x90a\x1A\x84V[\x90P\x90V[3s\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\0\x01\x14a\x04\xF6W`@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\x82\x01R`A`$\x82\x01R\x7FGasPriceOracle: only the deposit`D\x82\x01R\x7For account can set isEcotone fla`d\x82\x01R\x7Fg\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x84\x82\x01R`\xA4\x01a\x03\x9CV[`\0T`\xFF\x16\x15a\x05\x89W`@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\x82\x01R`&`$\x82\x01R\x7FGasPriceOracle: Ecotone already `D\x82\x01R\x7Factive\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`d\x82\x01R`\x84\x01a\x03\x9CV[`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x16`\x01\x17\x90UV[`\0\x80Tb\x01\0\0\x90\x04`\xFF\x16a\x05\xCFWP`\0\x91\x90PV[`\0sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x15s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16cM]\x9A*`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x060W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x06T\x91\x90a\x1A\x9DV[c\xFF\xFF\xFF\xFF\x16\x90P`\0sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x15s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\x16\xD3\xBC\x7F`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x06\xBDW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x06\xE1\x91\x90a\x1A\xC3V[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90P`\0`\x03\x90T\x90a\x01\0\n\x90\x04`\xFF\x16\x15a\x07*W\x80a\x07\r\x83\x86a\x1B\x1CV[a\x07\x18\x90`da\x1B\x1CV[a\x07\"\x91\x90a\x1BYV[\x94\x93PPPPV[a\x07\"b\x0FB@\x83\x86\x02\x86\x81\x04\x85\x14\x87\x15\x17\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x01\x17a\x07i\x91\x90a\x1BqV[\x82\x81\x01\x90\x81\x10`\0\x03\x17\x90V[3s\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\0\x01\x14a\x08?W`@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\x82\x01R`A`$\x82\x01R\x7FGasPriceOracle: only the deposit`D\x82\x01R\x7For account can set isIsthmus fla`d\x82\x01R\x7Fg\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x84\x82\x01R`\xA4\x01a\x03\x9CV[`\0Ta\x01\0\x90\x04`\xFF\x16a\x08\xD6W`@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\x82\x01R`9`$\x82\x01R\x7FGasPriceOracle: Isthmus can only`D\x82\x01R\x7F be activated after Fjord\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x03\x9CV[`\0Tb\x01\0\0\x90\x04`\xFF\x16\x15a\toW`@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\x82\x01R`&`$\x82\x01R\x7FGasPriceOracle: Isthmus already `D\x82\x01R\x7Factive\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`d\x82\x01R`\x84\x01a\x03\x9CV[`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\xFF\x16b\x01\0\0\x17\x90UV[`\0\x80Ta\x01\0\x90\x04`\xFF\x16\x15a\t\xBEWa\t\xB8\x82a\x12EV[\x92\x91PPV[`\0T`\xFF\x16\x15a\t\xD2Wa\t\xB8\x82a\x12dV[a\t\xB8\x82a\x13\x08V[`\0sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x15s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\\\xF2Ii`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x04\x04W=`\0\x80>=`\0\xFD[`\0sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x15s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16ch\xD5\xDC\xA6`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\n\x9DW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x04(\x91\x90a\x1A\x9DV[3s\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\0\x01\x14a\x0BdW`@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\x82\x01R`?`$\x82\x01R\x7FGasPriceOracle: only the deposit`D\x82\x01R\x7For account can set isFjord flag\0`d\x82\x01R`\x84\x01a\x03\x9CV[`\0T`\xFF\x16a\x0B\xF6W`@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\x82\x01R`9`$\x82\x01R\x7FGasPriceOracle: Fjord can only b`D\x82\x01R\x7Fe activated after Ecotone\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x03\x9CV[`\0Ta\x01\0\x90\x04`\xFF\x16\x15a\x0C\x8DW`@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\x82\x01R`$\x80\x82\x01R\x7FGasPriceOracle: Fjord already ac`D\x82\x01R\x7Ftive\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`d\x82\x01R`\x84\x01a\x03\x9CV[`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\x16a\x01\0\x17\x90UV[3s\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\0\x01\x14a\r`W`@\x80Q\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\x82\x01R`$\x81\x01\x91\x90\x91R\x7FGasPriceOracle: only the deposit`D\x82\x01R\x7For account can set isJovian flag`d\x82\x01R`\x84\x01a\x03\x9CV[`\0Tb\x01\0\0\x90\x04`\xFF\x16a\r\xF8W`@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\x82\x01R`:`$\x82\x01R\x7FGasPriceOracle: Jovian can only `D\x82\x01R\x7Fbe activated after Isthmus\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x03\x9CV[`\0Tc\x01\0\0\0\x90\x04`\xFF\x16\x15a\x0E\x92W`@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\x82\x01R`%`$\x82\x01R\x7FGasPriceOracle: Jovian already a`D\x82\x01R\x7Fctive\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`d\x82\x01R`\x84\x01a\x03\x9CV[`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\xFF\xFF\x16c\x01\0\0\0\x17\x90UV[`\0sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x15s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xC5\x98Y\x18`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\n\x9DW=`\0\x80>=`\0\xFD[`\0\x80Ta\x01\0\x90\x04`\xFF\x16\x15a\x0FjWb\x0FB@a\x0FUa\x0FD\x84a\x14\\V[Qa\x0FP\x90`Da\x1BYV[a\x17yV[a\x0F`\x90`\x10a\x1B\x1CV[a\t\xB8\x91\x90a\x1BqV[`\0a\x0Fu\x83a\x17\xD8V[`\0T\x90\x91P`\xFF\x16\x15a\x0F\x89W\x92\x91PPV[sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x15s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\x8B#\x9Fs`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x0F\xE8W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x10\x0C\x91\x90a\x1A\x84V[a\x10\x16\x90\x82a\x1BYV[\x93\x92PPPV[`\0\x80Ta\x01\0\x90\x04`\xFF\x16a\x10\xB5W`@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\x82\x01R`6`$\x82\x01R\x7FGasPriceOracle: getL1FeeUpperBou`D\x82\x01R\x7Fnd only supports Fjord\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x03\x9CV[`\0a\x10\xC2\x83`Da\x1BYV[\x90P`\0a\x10\xD1`\xFF\x83a\x1BqV[a\x10\xDB\x90\x83a\x1BYV[a\x10\xE6\x90`\x10a\x1BYV[\x90Pa\x07\"\x81a\x18hV[`\0\x80T`\xFF\x16\x15a\x11\x85W`@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\x82\x01R`&`$\x82\x01R\x7FGasPriceOracle: scalar() is depr`D\x82\x01R\x7Fecated\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`d\x82\x01R`\x84\x01a\x03\x9CV[sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x15s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\x9E\x8CIf`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x04\x04W=`\0\x80>=`\0\xFD[`\0sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x15s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xF8 a@`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x04\x04W=`\0\x80>=`\0\xFD[`\0a\t\xB8a\x12S\x83a\x14\\V[Qa\x12_\x90`Da\x1BYV[a\x18hV[`\0\x80a\x12p\x83a\x17\xD8V[\x90P`\0a\x12|a\t\xDBV[a\x12\x84a\x0E\xC2V[a\x12\x8F\x90`\x10a\x1B\xACV[c\xFF\xFF\xFF\xFF\x16a\x12\x9F\x91\x90a\x1B\x1CV[\x90P`\0a\x12\xABa\x11\xE4V[a\x12\xB3a\n=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x13\x9B\x91\x90a\x1A\x84V[a\x13\xA3a\t\xDBV[sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x15s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\x8B#\x9Fs`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x14\x02W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x14&\x91\x90a\x1A\x84V[a\x140\x90\x85a\x1BYV[a\x14:\x91\x90a\x1B\x1CV[a\x14D\x91\x90a\x1B\x1CV[\x90Pa\x14R`\x06`\na\x1C\xF8V[a\x07\"\x90\x82a\x1BqV[``a\x15\xEBV[\x81\x81S`\x01\x01\x91\x90PV[`\0\x82\x84\x03\x93P[\x83\x81\x10\x15a\x10\x16W\x82\x81\x01Q\x82\x82\x01Q\x18`\0\x1A\x15\x90\x93\x02\x92`\x01\x01a\x14vV[\x82[` \x82\x10a\x14\xE3W\x82Qa\x14\xAE`\x1F\x83a\x14cV[R` \x92\x90\x92\x01\x91\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x90\x91\x01\x90`!\x01a\x14\x99V[\x81\x15a\x10\x16W\x82Qa\x14\xF8`\x01\x84\x03\x83a\x14cV[R\x01`\x01\x01\x92\x91PPV[`\0`\x01\x83\x03\x92P[a\x01\x07\x82\x10a\x15DWa\x156\x83`\xFF\x16a\x151`\xFDa\x151\x87`\x08\x1C`\xE0\x01\x89a\x14cV[a\x14cV[\x93Pa\x01\x06\x82\x03\x91Pa\x15\x0CV[`\x07\x82\x10a\x15qWa\x15j\x83`\xFF\x16a\x151`\x07\x85\x03a\x151\x87`\x08\x1C`\xE0\x01\x89a\x14cV[\x90Pa\x10\x16V[a\x07\"\x83`\xFF\x16a\x151\x85`\x08\x1C\x85`\x05\x1B\x01\x87a\x14cV[a\x15\xE3\x82\x82\x03a\x15\xC7a\x15\xB7\x84`\0\x81Q\x80`\0\x1A\x81`\x01\x1A`\x08\x1B\x17\x81`\x02\x1A`\x10\x1B\x17\x91PP\x91\x90PV[c\x9E7y\xB9\x02`\x13\x1Ca\x1F\xFF\x16\x90V[\x80`\x02\x1B`@Q\x01\x82\x81Q`\xE0\x1C\x18`\xE0\x1B\x81Q\x18\x81RPPPV[`\x01\x01\x91\x90PV[a\x80\08`@Q9a\x80\0`@Q\x01` \x83\x01\x80`\r\x85Q\x82\x01\x03\x82`\x02\x01[\x81\x81\x10\x15a\x17\x1EW`\0\x80[PP\x80Q`@Q`\0\x82\x90\x1A`\x01\x83\x90\x1A`\x08\x1B\x17`\x02\x92\x90\x92\x1A`\x10\x1B\x91\x90\x91\x17c\x9E7y\xB9\x81\x02`\x11\x1Ca\x7F\xFC\x16\x90\x91\x01\x80Q`\xE0\x81\x81\x1C\x87\x86\x03\x81\x18\x90\x91\x1B\x90\x91\x18\x90\x91R\x84\x01\x90\x81\x83\x03\x90\x84\x84\x10a\x16sWPa\x16\xAEV[`\x01\x84\x01\x93Pa\x1F\xFF\x82\x11a\x16\xA8W\x82Q`\0\x81\x90\x1A`\x01\x82\x90\x1A`\x08\x1B\x17`\x02\x91\x90\x91\x1A`\x10\x1B\x17\x81\x03a\x16\xA8WPa\x16\xAEV[Pa\x16\x17V[\x83\x83\x10a\x16\xBCWPPa\x17\x1EV[`\x01\x83\x03\x92P\x85\x83\x11\x15a\x16\xDAWa\x16\xD7\x87\x87\x88\x86\x03a\x14\x97V[\x96P[a\x16\xEE`\t\x85\x01`\x03\x85\x01`\x03\x85\x01a\x14nV[\x91Pa\x16\xFB\x87\x82\x84a\x15\x03V[\x96PPa\x17\x13\x84a\x17\x0E\x86\x84\x86\x01a\x15\x8AV[a\x15\x8AV[\x91PP\x80\x93Pa\x16\x0BV[PPa\x170\x83\x83\x84\x88Q\x85\x01\x03a\x14\x97V[\x92PPP`@Q\x91Pa\x80\0\x82\x01\x80\x82\x03\x91P\x81\x83R` \x83\x01`\0[\x83\x81\x10\x15a\x17eW\x82\x81\x01Q\x82\x82\x01R` \x01a\x17MV[P`\0\x92\x01\x91\x82RP` \x01`@R\x91\x90PV[`\0\x80a\x17\x89\x83b\x0C\xC3\x94a\x1B\x1CV[a\x17\xB3\x90\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFDv2\0a\x1D\x04V[\x90Pa\x17\xC3`db\x0FB@a\x1DxV[\x81\x12\x15a\t\xB8Wa\x10\x16`db\x0FB@a\x1DxV[\x80Q`\0\x90\x81\x90\x81[\x81\x81\x10\x15a\x18[W\x84\x81\x81Q\x81\x10a\x17\xFBWa\x17\xFBa\x1E4V[\x01` \x01Q\x7F\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16`\0\x03a\x18;Wa\x184`\x04\x84a\x1BYV[\x92Pa\x18IV[a\x18F`\x10\x84a\x1BYV[\x92P[\x80a\x18S\x81a\x1EcV[\x91PPa\x17\xE1V[Pa\x07\"\x82a\x04@a\x1BYV[`\0\x80a\x18t\x83a\x17yV[\x90P`\0a\x18\x80a\x11\xE4V[a\x18\x88a\nW\x85\x81\x01\x83\x01Q\x85\x82\x01`@\x01R\x82\x01a\x1A\"V[\x81\x81\x11\x15a\x1APW`\0`@\x83\x87\x01\x01R[P`\x1F\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x92\x90\x92\x01`@\x01\x93\x92PPPV[`\0` \x82\x84\x03\x12\x15a\x1A\x96W`\0\x80\xFD[PQ\x91\x90PV[`\0` \x82\x84\x03\x12\x15a\x1A\xAFW`\0\x80\xFD[\x81Qc\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x10\x16W`\0\x80\xFD[`\0` \x82\x84\x03\x12\x15a\x1A\xD5W`\0\x80\xFD[\x81Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x10\x16W`\0\x80\xFD[\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`\x11`\x04R`$`\0\xFD[`\0\x81\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x04\x83\x11\x82\x15\x15\x16\x15a\x1BTWa\x1BTa\x1A\xEDV[P\x02\x90V[`\0\x82\x19\x82\x11\x15a\x1BlWa\x1Bla\x1A\xEDV[P\x01\x90V[`\0\x82a\x1B\xA7W\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`\x12`\x04R`$`\0\xFD[P\x04\x90V[`\0c\xFF\xFF\xFF\xFF\x80\x83\x16\x81\x85\x16\x81\x83\x04\x81\x11\x82\x15\x15\x16\x15a\x1B\xCFWa\x1B\xCFa\x1A\xEDV[\x02\x94\x93PPPPV[`\x01\x81\x81[\x80\x85\x11\x15a\x1C1W\x81\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x04\x82\x11\x15a\x1C\x17Wa\x1C\x17a\x1A\xEDV[\x80\x85\x16\x15a\x1C$W\x91\x81\x02\x91[\x93\x84\x1C\x93\x90\x80\x02\x90a\x1B\xDDV[P\x92P\x92\x90PV[`\0\x82a\x1CHWP`\x01a\t\xB8V[\x81a\x1CUWP`\0a\t\xB8V[\x81`\x01\x81\x14a\x1CkW`\x02\x81\x14a\x1CuWa\x1C\x91V[`\x01\x91PPa\t\xB8V[`\xFF\x84\x11\x15a\x1C\x86Wa\x1C\x86a\x1A\xEDV[PP`\x01\x82\x1Ba\t\xB8V[P` \x83\x10a\x013\x83\x10\x16`N\x84\x10`\x0B\x84\x10\x16\x17\x15a\x1C\xB4WP\x81\x81\na\t\xB8V[a\x1C\xBE\x83\x83a\x1B\xD8V[\x80\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x04\x82\x11\x15a\x1C\xF0Wa\x1C\xF0a\x1A\xEDV[\x02\x93\x92PPPV[`\0a\x10\x16\x83\x83a\x1C9V[`\0\x80\x82\x12\x82\x7F\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x03\x84\x13\x81\x15\x16\x15a\x1D>Wa\x1D>a\x1A\xEDV[\x82\x7F\x80\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x03\x84\x12\x81\x16\x15a\x1DrWa\x1Dra\x1A\xEDV[PP\x01\x90V[`\0\x7F\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF`\0\x84\x13`\0\x84\x13\x85\x83\x04\x85\x11\x82\x82\x16\x16\x15a\x1D\xB9Wa\x1D\xB9a\x1A\xEDV[\x7F\x80\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\0\x87\x12\x86\x82\x05\x88\x12\x81\x84\x16\x16\x15a\x1D\xF4Wa\x1D\xF4a\x1A\xEDV[`\0\x87\x12\x92P\x87\x82\x05\x87\x12\x84\x84\x16\x16\x15a\x1E\x10Wa\x1E\x10a\x1A\xEDV[\x87\x85\x05\x87\x12\x81\x84\x16\x16\x15a\x1E&Wa\x1E&a\x1A\xEDV[PPP\x92\x90\x93\x02\x93\x92PPPV[\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`2`\x04R`$`\0\xFD[`\0\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x03a\x1E\x94Wa\x1E\x94a\x1A\xEDV[P`\x01\x01\x90V\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x608060405234801561001057600080fd5b506004361061018d5760003560e01c806368d5dca6116100e3578063c59859181161008c578063f45e65d811610066578063f45e65d8146102fc578063f820614014610304578063fe173b971461029357600080fd5b8063c5985918146102ce578063de26c4a1146102d6578063f1c7a58b146102e957600080fd5b8063960e3a23116100bd578063960e3a23146102a1578063b3d72079146102b3578063b54501bc146102bb57600080fd5b806368d5dca6146102765780636ef25c3a146102935780638e98b1061461029957600080fd5b80632e0f2625116101455780634ef6e2241161011f5780634ef6e22414610218578063519b4bd31461022557806354fd4d501461022d57600080fd5b80632e0f2625146101f6578063313ce567146101fe57806349948e0e1461020557600080fd5b806322b90ab31161017657806322b90ab3146101d1578063275aedd2146101db578063291b0383146101ee57600080fd5b80630c18c16214610192578063105d0b81146101ad575b600080fd5b61019a61030c565b6040519081526020015b60405180910390f35b6000546101c1906301000000900460ff1681565b60405190151581526020016101a4565b6101d961042d565b005b61019a6101e93660046118fa565b6105b6565b6101d9610776565b61019a600681565b600661019a565b61019a610213366004611942565b61099e565b6000546101c19060ff1681565b61019a6109db565b6102696040518060400160405280600581526020017f312e362e3000000000000000000000000000000000000000000000000000000081525081565b6040516101a49190611a11565b61027e610a3c565b60405163ffffffff90911681526020016101a4565b4861019a565b6101d9610ac1565b6000546101c190610100900460ff1681565b6101d9610cbb565b6000546101c19062010000900460ff1681565b61027e610ec2565b61019a6102e4366004611942565b610f23565b61019a6102f73660046118fa565b61101d565b61019a6110f1565b61019a6111e4565b6000805460ff16156103a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f47617350726963654f7261636c653a206f76657268656164282920697320646560448201527f707265636174656400000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b73420000000000000000000000000000000000001573ffffffffffffffffffffffffffffffffffffffff16638b239f736040518163ffffffff1660e01b8152600401602060405180830381865afa158015610404573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104289190611a84565b905090565b3373deaddeaddeaddeaddeaddeaddeaddeaddead0001146104f6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604160248201527f47617350726963654f7261636c653a206f6e6c7920746865206465706f73697460448201527f6f72206163636f756e742063616e2073657420697345636f746f6e6520666c6160648201527f6700000000000000000000000000000000000000000000000000000000000000608482015260a40161039c565b60005460ff1615610589576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f47617350726963654f7261636c653a2045636f746f6e6520616c72656164792060448201527f6163746976650000000000000000000000000000000000000000000000000000606482015260840161039c565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055565b6000805462010000900460ff166105cf57506000919050565b600073420000000000000000000000000000000000001573ffffffffffffffffffffffffffffffffffffffff16634d5d9a2a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610630573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106549190611a9d565b63ffffffff169050600073420000000000000000000000000000000000001573ffffffffffffffffffffffffffffffffffffffff166316d3bc7f6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106e19190611ac3565b67ffffffffffffffff169050600060039054906101000a900460ff161561072a578061070d8386611b1c565b610718906064611b1c565b6107229190611b59565b949350505050565b610722620f424083860286810485148715177fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01176107699190611b71565b8281019081106000031790565b3373deaddeaddeaddeaddeaddeaddeaddeaddead00011461083f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604160248201527f47617350726963654f7261636c653a206f6e6c7920746865206465706f73697460448201527f6f72206163636f756e742063616e20736574206973497374686d757320666c6160648201527f6700000000000000000000000000000000000000000000000000000000000000608482015260a40161039c565b600054610100900460ff166108d6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603960248201527f47617350726963654f7261636c653a20497374686d75732063616e206f6e6c7960448201527f2062652061637469766174656420616674657220466a6f726400000000000000606482015260840161039c565b60005462010000900460ff161561096f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f47617350726963654f7261636c653a20497374686d757320616c72656164792060448201527f6163746976650000000000000000000000000000000000000000000000000000606482015260840161039c565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff1662010000179055565b60008054610100900460ff16156109be576109b882611245565b92915050565b60005460ff16156109d2576109b882611264565b6109b882611308565b600073420000000000000000000000000000000000001573ffffffffffffffffffffffffffffffffffffffff16635cf249696040518163ffffffff1660e01b8152600401602060405180830381865afa158015610404573d6000803e3d6000fd5b600073420000000000000000000000000000000000001573ffffffffffffffffffffffffffffffffffffffff166368d5dca66040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a9d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104289190611a9d565b3373deaddeaddeaddeaddeaddeaddeaddeaddead000114610b64576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603f60248201527f47617350726963654f7261636c653a206f6e6c7920746865206465706f73697460448201527f6f72206163636f756e742063616e20736574206973466a6f726420666c616700606482015260840161039c565b60005460ff16610bf6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603960248201527f47617350726963654f7261636c653a20466a6f72642063616e206f6e6c79206260448201527f65206163746976617465642061667465722045636f746f6e6500000000000000606482015260840161039c565b600054610100900460ff1615610c8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f47617350726963654f7261636c653a20466a6f726420616c726561647920616360448201527f7469766500000000000000000000000000000000000000000000000000000000606482015260840161039c565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16610100179055565b3373deaddeaddeaddeaddeaddeaddeaddeaddead000114610d6057604080517f08c379a00000000000000000000000000000000000000000000000000000000081526020600482015260248101919091527f47617350726963654f7261636c653a206f6e6c7920746865206465706f73697460448201527f6f72206163636f756e742063616e207365742069734a6f7669616e20666c6167606482015260840161039c565b60005462010000900460ff16610df8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603a60248201527f47617350726963654f7261636c653a204a6f7669616e2063616e206f6e6c792060448201527f62652061637469766174656420616674657220497374686d7573000000000000606482015260840161039c565b6000546301000000900460ff1615610e92576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f47617350726963654f7261636c653a204a6f7669616e20616c7265616479206160448201527f6374697665000000000000000000000000000000000000000000000000000000606482015260840161039c565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff166301000000179055565b600073420000000000000000000000000000000000001573ffffffffffffffffffffffffffffffffffffffff1663c59859186040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a9d573d6000803e3d6000fd5b60008054610100900460ff1615610f6a57620f4240610f55610f448461145c565b51610f50906044611b59565b611779565b610f60906010611b1c565b6109b89190611b71565b6000610f75836117d8565b60005490915060ff1615610f895792915050565b73420000000000000000000000000000000000001573ffffffffffffffffffffffffffffffffffffffff16638b239f736040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fe8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061100c9190611a84565b6110169082611b59565b9392505050565b60008054610100900460ff166110b5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f47617350726963654f7261636c653a206765744c314665655570706572426f7560448201527f6e64206f6e6c7920737570706f72747320466a6f726400000000000000000000606482015260840161039c565b60006110c2836044611b59565b905060006110d160ff83611b71565b6110db9083611b59565b6110e6906010611b59565b905061072281611868565b6000805460ff1615611185576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f47617350726963654f7261636c653a207363616c61722829206973206465707260448201527f6563617465640000000000000000000000000000000000000000000000000000606482015260840161039c565b73420000000000000000000000000000000000001573ffffffffffffffffffffffffffffffffffffffff16639e8c49666040518163ffffffff1660e01b8152600401602060405180830381865afa158015610404573d6000803e3d6000fd5b600073420000000000000000000000000000000000001573ffffffffffffffffffffffffffffffffffffffff1663f82061406040518163ffffffff1660e01b8152600401602060405180830381865afa158015610404573d6000803e3d6000fd5b60006109b86112538361145c565b5161125f906044611b59565b611868565b600080611270836117d8565b9050600061127c6109db565b611284610ec2565b61128f906010611bac565b63ffffffff1661129f9190611b1c565b905060006112ab6111e4565b6112b3610a3c565b63ffffffff166112c39190611b1c565b905060006112d18284611b59565b6112db9085611b1c565b90506112e96006600a611cf8565b6112f4906010611b1c565b6112fe9082611b71565b9695505050505050565b600080611314836117d8565b9050600073420000000000000000000000000000000000001573ffffffffffffffffffffffffffffffffffffffff16639e8c49666040518163ffffffff1660e01b8152600401602060405180830381865afa158015611377573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061139b9190611a84565b6113a36109db565b73420000000000000000000000000000000000001573ffffffffffffffffffffffffffffffffffffffff16638b239f736040518163ffffffff1660e01b8152600401602060405180830381865afa158015611402573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114269190611a84565b6114309085611b59565b61143a9190611b1c565b6114449190611b1c565b90506114526006600a611cf8565b6107229082611b71565b60606115eb565b818153600101919050565b600082840393505b838110156110165782810151828201511860001a1590930292600101611476565b825b602082106114e35782516114ae601f83611463565b52602092909201917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090910190602101611499565b81156110165782516114f86001840383611463565b520160010192915050565b60006001830392505b6101078210611544576115368360ff1661153160fd6115318760081c60e00189611463565b611463565b93506101068203915061150c565b600782106115715761156a8360ff16611531600785036115318760081c60e00189611463565b9050611016565b6107228360ff166115318560081c8560051b0187611463565b6115e38282036115c76115b784600081518060001a8160011a60081b178160021a60101b17915050919050565b639e3779b90260131c611fff1690565b8060021b6040510182815160e01c1860e01b8151188152505050565b600101919050565b6180003860405139618000604051016020830180600d8551820103826002015b8181101561171e576000805b50508051604051600082901a600183901a60081b1760029290921a60101b91909117639e3779b9810260111c617ffc16909101805160e081811c878603811890911b9091189091528401908183039084841061167357506116ae565b600184019350611fff82116116a8578251600081901a600182901a60081b1760029190911a60101b1781036116a857506116ae565b50611617565b8383106116bc57505061171e565b600183039250858311156116da576116d78787888603611497565b96505b6116ee60098501600385016003850161146e565b91506116fb878284611503565b9650506117138461170e8684860161158a565b61158a565b91505080935061160b565b50506117308383848851850103611497565b925050506040519150618000820180820391508183526020830160005b8381101561176557828101518282015260200161174d565b506000920191825250602001604052919050565b60008061178983620cc394611b1c565b6117b3907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd763200611d04565b90506117c36064620f4240611d78565b8112156109b8576110166064620f4240611d78565b80516000908190815b8181101561185b578481815181106117fb576117fb611e34565b01602001517fff000000000000000000000000000000000000000000000000000000000000001660000361183b57611834600484611b59565b9250611849565b611846601084611b59565b92505b8061185381611e63565b9150506117e1565b5061072282610440611b59565b60008061187483611779565b905060006118806111e4565b611888610a3c565b63ffffffff166118989190611b1c565b6118a06109db565b6118a8610ec2565b6118b3906010611bac565b63ffffffff166118c39190611b1c565b6118cd9190611b59565b90506118db60066002611b1c565b6118e690600a611cf8565b6118f08284611b1c565b6107229190611b71565b60006020828403121561190c57600080fd5b5035919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60006020828403121561195457600080fd5b813567ffffffffffffffff8082111561196c57600080fd5b818401915084601f83011261198057600080fd5b81358181111561199257611992611913565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019083821181831017156119d8576119d8611913565b816040528281528760208487010111156119f157600080fd5b826020860160208301376000928101602001929092525095945050505050565b600060208083528351808285015260005b81811015611a3e57858101830151858201604001528201611a22565b81811115611a50576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b600060208284031215611a9657600080fd5b5051919050565b600060208284031215611aaf57600080fd5b815163ffffffff8116811461101657600080fd5b600060208284031215611ad557600080fd5b815167ffffffffffffffff8116811461101657600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615611b5457611b54611aed565b500290565b60008219821115611b6c57611b6c611aed565b500190565b600082611ba7577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b600063ffffffff80831681851681830481118215151615611bcf57611bcf611aed565b02949350505050565b600181815b80851115611c3157817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821115611c1757611c17611aed565b80851615611c2457918102915b93841c9390800290611bdd565b509250929050565b600082611c48575060016109b8565b81611c55575060006109b8565b8160018114611c6b5760028114611c7557611c91565b60019150506109b8565b60ff841115611c8657611c86611aed565b50506001821b6109b8565b5060208310610133831016604e8410600b8410161715611cb4575081810a6109b8565b611cbe8383611bd8565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821115611cf057611cf0611aed565b029392505050565b60006110168383611c39565b6000808212827f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03841381151615611d3e57611d3e611aed565b827f8000000000000000000000000000000000000000000000000000000000000000038412811615611d7257611d72611aed565b50500190565b60007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600084136000841385830485118282161615611db957611db9611aed565b7f80000000000000000000000000000000000000000000000000000000000000006000871286820588128184161615611df457611df4611aed565b60008712925087820587128484161615611e1057611e10611aed565b87850587128184161615611e2657611e26611aed565b505050929093029392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611e9457611e94611aed565b506001019056fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`\x046\x10a\x01\x8DW`\x005`\xE0\x1C\x80ch\xD5\xDC\xA6\x11a\0\xE3W\x80c\xC5\x98Y\x18\x11a\0\x8CW\x80c\xF4^e\xD8\x11a\0fW\x80c\xF4^e\xD8\x14a\x02\xFCW\x80c\xF8 a@\x14a\x03\x04W\x80c\xFE\x17;\x97\x14a\x02\x93W`\0\x80\xFD[\x80c\xC5\x98Y\x18\x14a\x02\xCEW\x80c\xDE&\xC4\xA1\x14a\x02\xD6W\x80c\xF1\xC7\xA5\x8B\x14a\x02\xE9W`\0\x80\xFD[\x80c\x96\x0E:#\x11a\0\xBDW\x80c\x96\x0E:#\x14a\x02\xA1W\x80c\xB3\xD7 y\x14a\x02\xB3W\x80c\xB5E\x01\xBC\x14a\x02\xBBW`\0\x80\xFD[\x80ch\xD5\xDC\xA6\x14a\x02vW\x80cn\xF2\\:\x14a\x02\x93W\x80c\x8E\x98\xB1\x06\x14a\x02\x99W`\0\x80\xFD[\x80c.\x0F&%\x11a\x01EW\x80cN\xF6\xE2$\x11a\x01\x1FW\x80cN\xF6\xE2$\x14a\x02\x18W\x80cQ\x9BK\xD3\x14a\x02%W\x80cT\xFDMP\x14a\x02-W`\0\x80\xFD[\x80c.\x0F&%\x14a\x01\xF6W\x80c1<\xE5g\x14a\x01\xFEW\x80cI\x94\x8E\x0E\x14a\x02\x05W`\0\x80\xFD[\x80c\"\xB9\n\xB3\x11a\x01vW\x80c\"\xB9\n\xB3\x14a\x01\xD1W\x80c'Z\xED\xD2\x14a\x01\xDBW\x80c)\x1B\x03\x83\x14a\x01\xEEW`\0\x80\xFD[\x80c\x0C\x18\xC1b\x14a\x01\x92W\x80c\x10]\x0B\x81\x14a\x01\xADW[`\0\x80\xFD[a\x01\x9Aa\x03\x0CV[`@Q\x90\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[`\0Ta\x01\xC1\x90c\x01\0\0\0\x90\x04`\xFF\x16\x81V[`@Q\x90\x15\x15\x81R` \x01a\x01\xA4V[a\x01\xD9a\x04-V[\0[a\x01\x9Aa\x01\xE96`\x04a\x18\xFAV[a\x05\xB6V[a\x01\xD9a\x07vV[a\x01\x9A`\x06\x81V[`\x06a\x01\x9AV[a\x01\x9Aa\x02\x136`\x04a\x19BV[a\t\x9EV[`\0Ta\x01\xC1\x90`\xFF\x16\x81V[a\x01\x9Aa\t\xDBV[a\x02i`@Q\x80`@\x01`@R\x80`\x05\x81R` \x01\x7F1.6.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\x81RP\x81V[`@Qa\x01\xA4\x91\x90a\x1A\x11V[a\x02~a\n=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x04(\x91\x90a\x1A\x84V[\x90P\x90V[3s\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\0\x01\x14a\x04\xF6W`@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\x82\x01R`A`$\x82\x01R\x7FGasPriceOracle: only the deposit`D\x82\x01R\x7For account can set isEcotone fla`d\x82\x01R\x7Fg\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x84\x82\x01R`\xA4\x01a\x03\x9CV[`\0T`\xFF\x16\x15a\x05\x89W`@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\x82\x01R`&`$\x82\x01R\x7FGasPriceOracle: Ecotone already `D\x82\x01R\x7Factive\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`d\x82\x01R`\x84\x01a\x03\x9CV[`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x16`\x01\x17\x90UV[`\0\x80Tb\x01\0\0\x90\x04`\xFF\x16a\x05\xCFWP`\0\x91\x90PV[`\0sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x15s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16cM]\x9A*`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x060W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x06T\x91\x90a\x1A\x9DV[c\xFF\xFF\xFF\xFF\x16\x90P`\0sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x15s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\x16\xD3\xBC\x7F`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x06\xBDW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x06\xE1\x91\x90a\x1A\xC3V[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90P`\0`\x03\x90T\x90a\x01\0\n\x90\x04`\xFF\x16\x15a\x07*W\x80a\x07\r\x83\x86a\x1B\x1CV[a\x07\x18\x90`da\x1B\x1CV[a\x07\"\x91\x90a\x1BYV[\x94\x93PPPPV[a\x07\"b\x0FB@\x83\x86\x02\x86\x81\x04\x85\x14\x87\x15\x17\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x01\x17a\x07i\x91\x90a\x1BqV[\x82\x81\x01\x90\x81\x10`\0\x03\x17\x90V[3s\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\0\x01\x14a\x08?W`@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\x82\x01R`A`$\x82\x01R\x7FGasPriceOracle: only the deposit`D\x82\x01R\x7For account can set isIsthmus fla`d\x82\x01R\x7Fg\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x84\x82\x01R`\xA4\x01a\x03\x9CV[`\0Ta\x01\0\x90\x04`\xFF\x16a\x08\xD6W`@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\x82\x01R`9`$\x82\x01R\x7FGasPriceOracle: Isthmus can only`D\x82\x01R\x7F be activated after Fjord\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x03\x9CV[`\0Tb\x01\0\0\x90\x04`\xFF\x16\x15a\toW`@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\x82\x01R`&`$\x82\x01R\x7FGasPriceOracle: Isthmus already `D\x82\x01R\x7Factive\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`d\x82\x01R`\x84\x01a\x03\x9CV[`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\xFF\x16b\x01\0\0\x17\x90UV[`\0\x80Ta\x01\0\x90\x04`\xFF\x16\x15a\t\xBEWa\t\xB8\x82a\x12EV[\x92\x91PPV[`\0T`\xFF\x16\x15a\t\xD2Wa\t\xB8\x82a\x12dV[a\t\xB8\x82a\x13\x08V[`\0sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x15s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\\\xF2Ii`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x04\x04W=`\0\x80>=`\0\xFD[`\0sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x15s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16ch\xD5\xDC\xA6`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\n\x9DW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x04(\x91\x90a\x1A\x9DV[3s\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\0\x01\x14a\x0BdW`@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\x82\x01R`?`$\x82\x01R\x7FGasPriceOracle: only the deposit`D\x82\x01R\x7For account can set isFjord flag\0`d\x82\x01R`\x84\x01a\x03\x9CV[`\0T`\xFF\x16a\x0B\xF6W`@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\x82\x01R`9`$\x82\x01R\x7FGasPriceOracle: Fjord can only b`D\x82\x01R\x7Fe activated after Ecotone\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x03\x9CV[`\0Ta\x01\0\x90\x04`\xFF\x16\x15a\x0C\x8DW`@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\x82\x01R`$\x80\x82\x01R\x7FGasPriceOracle: Fjord already ac`D\x82\x01R\x7Ftive\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`d\x82\x01R`\x84\x01a\x03\x9CV[`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\x16a\x01\0\x17\x90UV[3s\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\0\x01\x14a\r`W`@\x80Q\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\x82\x01R`$\x81\x01\x91\x90\x91R\x7FGasPriceOracle: only the deposit`D\x82\x01R\x7For account can set isJovian flag`d\x82\x01R`\x84\x01a\x03\x9CV[`\0Tb\x01\0\0\x90\x04`\xFF\x16a\r\xF8W`@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\x82\x01R`:`$\x82\x01R\x7FGasPriceOracle: Jovian can only `D\x82\x01R\x7Fbe activated after Isthmus\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x03\x9CV[`\0Tc\x01\0\0\0\x90\x04`\xFF\x16\x15a\x0E\x92W`@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\x82\x01R`%`$\x82\x01R\x7FGasPriceOracle: Jovian already a`D\x82\x01R\x7Fctive\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`d\x82\x01R`\x84\x01a\x03\x9CV[`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\xFF\xFF\x16c\x01\0\0\0\x17\x90UV[`\0sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x15s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xC5\x98Y\x18`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\n\x9DW=`\0\x80>=`\0\xFD[`\0\x80Ta\x01\0\x90\x04`\xFF\x16\x15a\x0FjWb\x0FB@a\x0FUa\x0FD\x84a\x14\\V[Qa\x0FP\x90`Da\x1BYV[a\x17yV[a\x0F`\x90`\x10a\x1B\x1CV[a\t\xB8\x91\x90a\x1BqV[`\0a\x0Fu\x83a\x17\xD8V[`\0T\x90\x91P`\xFF\x16\x15a\x0F\x89W\x92\x91PPV[sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x15s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\x8B#\x9Fs`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x0F\xE8W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x10\x0C\x91\x90a\x1A\x84V[a\x10\x16\x90\x82a\x1BYV[\x93\x92PPPV[`\0\x80Ta\x01\0\x90\x04`\xFF\x16a\x10\xB5W`@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\x82\x01R`6`$\x82\x01R\x7FGasPriceOracle: getL1FeeUpperBou`D\x82\x01R\x7Fnd only supports Fjord\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x03\x9CV[`\0a\x10\xC2\x83`Da\x1BYV[\x90P`\0a\x10\xD1`\xFF\x83a\x1BqV[a\x10\xDB\x90\x83a\x1BYV[a\x10\xE6\x90`\x10a\x1BYV[\x90Pa\x07\"\x81a\x18hV[`\0\x80T`\xFF\x16\x15a\x11\x85W`@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\x82\x01R`&`$\x82\x01R\x7FGasPriceOracle: scalar() is depr`D\x82\x01R\x7Fecated\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`d\x82\x01R`\x84\x01a\x03\x9CV[sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x15s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\x9E\x8CIf`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x04\x04W=`\0\x80>=`\0\xFD[`\0sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x15s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xF8 a@`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x04\x04W=`\0\x80>=`\0\xFD[`\0a\t\xB8a\x12S\x83a\x14\\V[Qa\x12_\x90`Da\x1BYV[a\x18hV[`\0\x80a\x12p\x83a\x17\xD8V[\x90P`\0a\x12|a\t\xDBV[a\x12\x84a\x0E\xC2V[a\x12\x8F\x90`\x10a\x1B\xACV[c\xFF\xFF\xFF\xFF\x16a\x12\x9F\x91\x90a\x1B\x1CV[\x90P`\0a\x12\xABa\x11\xE4V[a\x12\xB3a\n=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x13\x9B\x91\x90a\x1A\x84V[a\x13\xA3a\t\xDBV[sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x15s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\x8B#\x9Fs`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x14\x02W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x14&\x91\x90a\x1A\x84V[a\x140\x90\x85a\x1BYV[a\x14:\x91\x90a\x1B\x1CV[a\x14D\x91\x90a\x1B\x1CV[\x90Pa\x14R`\x06`\na\x1C\xF8V[a\x07\"\x90\x82a\x1BqV[``a\x15\xEBV[\x81\x81S`\x01\x01\x91\x90PV[`\0\x82\x84\x03\x93P[\x83\x81\x10\x15a\x10\x16W\x82\x81\x01Q\x82\x82\x01Q\x18`\0\x1A\x15\x90\x93\x02\x92`\x01\x01a\x14vV[\x82[` \x82\x10a\x14\xE3W\x82Qa\x14\xAE`\x1F\x83a\x14cV[R` \x92\x90\x92\x01\x91\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x90\x91\x01\x90`!\x01a\x14\x99V[\x81\x15a\x10\x16W\x82Qa\x14\xF8`\x01\x84\x03\x83a\x14cV[R\x01`\x01\x01\x92\x91PPV[`\0`\x01\x83\x03\x92P[a\x01\x07\x82\x10a\x15DWa\x156\x83`\xFF\x16a\x151`\xFDa\x151\x87`\x08\x1C`\xE0\x01\x89a\x14cV[a\x14cV[\x93Pa\x01\x06\x82\x03\x91Pa\x15\x0CV[`\x07\x82\x10a\x15qWa\x15j\x83`\xFF\x16a\x151`\x07\x85\x03a\x151\x87`\x08\x1C`\xE0\x01\x89a\x14cV[\x90Pa\x10\x16V[a\x07\"\x83`\xFF\x16a\x151\x85`\x08\x1C\x85`\x05\x1B\x01\x87a\x14cV[a\x15\xE3\x82\x82\x03a\x15\xC7a\x15\xB7\x84`\0\x81Q\x80`\0\x1A\x81`\x01\x1A`\x08\x1B\x17\x81`\x02\x1A`\x10\x1B\x17\x91PP\x91\x90PV[c\x9E7y\xB9\x02`\x13\x1Ca\x1F\xFF\x16\x90V[\x80`\x02\x1B`@Q\x01\x82\x81Q`\xE0\x1C\x18`\xE0\x1B\x81Q\x18\x81RPPPV[`\x01\x01\x91\x90PV[a\x80\08`@Q9a\x80\0`@Q\x01` \x83\x01\x80`\r\x85Q\x82\x01\x03\x82`\x02\x01[\x81\x81\x10\x15a\x17\x1EW`\0\x80[PP\x80Q`@Q`\0\x82\x90\x1A`\x01\x83\x90\x1A`\x08\x1B\x17`\x02\x92\x90\x92\x1A`\x10\x1B\x91\x90\x91\x17c\x9E7y\xB9\x81\x02`\x11\x1Ca\x7F\xFC\x16\x90\x91\x01\x80Q`\xE0\x81\x81\x1C\x87\x86\x03\x81\x18\x90\x91\x1B\x90\x91\x18\x90\x91R\x84\x01\x90\x81\x83\x03\x90\x84\x84\x10a\x16sWPa\x16\xAEV[`\x01\x84\x01\x93Pa\x1F\xFF\x82\x11a\x16\xA8W\x82Q`\0\x81\x90\x1A`\x01\x82\x90\x1A`\x08\x1B\x17`\x02\x91\x90\x91\x1A`\x10\x1B\x17\x81\x03a\x16\xA8WPa\x16\xAEV[Pa\x16\x17V[\x83\x83\x10a\x16\xBCWPPa\x17\x1EV[`\x01\x83\x03\x92P\x85\x83\x11\x15a\x16\xDAWa\x16\xD7\x87\x87\x88\x86\x03a\x14\x97V[\x96P[a\x16\xEE`\t\x85\x01`\x03\x85\x01`\x03\x85\x01a\x14nV[\x91Pa\x16\xFB\x87\x82\x84a\x15\x03V[\x96PPa\x17\x13\x84a\x17\x0E\x86\x84\x86\x01a\x15\x8AV[a\x15\x8AV[\x91PP\x80\x93Pa\x16\x0BV[PPa\x170\x83\x83\x84\x88Q\x85\x01\x03a\x14\x97V[\x92PPP`@Q\x91Pa\x80\0\x82\x01\x80\x82\x03\x91P\x81\x83R` \x83\x01`\0[\x83\x81\x10\x15a\x17eW\x82\x81\x01Q\x82\x82\x01R` \x01a\x17MV[P`\0\x92\x01\x91\x82RP` \x01`@R\x91\x90PV[`\0\x80a\x17\x89\x83b\x0C\xC3\x94a\x1B\x1CV[a\x17\xB3\x90\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFDv2\0a\x1D\x04V[\x90Pa\x17\xC3`db\x0FB@a\x1DxV[\x81\x12\x15a\t\xB8Wa\x10\x16`db\x0FB@a\x1DxV[\x80Q`\0\x90\x81\x90\x81[\x81\x81\x10\x15a\x18[W\x84\x81\x81Q\x81\x10a\x17\xFBWa\x17\xFBa\x1E4V[\x01` \x01Q\x7F\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16`\0\x03a\x18;Wa\x184`\x04\x84a\x1BYV[\x92Pa\x18IV[a\x18F`\x10\x84a\x1BYV[\x92P[\x80a\x18S\x81a\x1EcV[\x91PPa\x17\xE1V[Pa\x07\"\x82a\x04@a\x1BYV[`\0\x80a\x18t\x83a\x17yV[\x90P`\0a\x18\x80a\x11\xE4V[a\x18\x88a\nW\x85\x81\x01\x83\x01Q\x85\x82\x01`@\x01R\x82\x01a\x1A\"V[\x81\x81\x11\x15a\x1APW`\0`@\x83\x87\x01\x01R[P`\x1F\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x92\x90\x92\x01`@\x01\x93\x92PPPV[`\0` \x82\x84\x03\x12\x15a\x1A\x96W`\0\x80\xFD[PQ\x91\x90PV[`\0` \x82\x84\x03\x12\x15a\x1A\xAFW`\0\x80\xFD[\x81Qc\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x10\x16W`\0\x80\xFD[`\0` \x82\x84\x03\x12\x15a\x1A\xD5W`\0\x80\xFD[\x81Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x10\x16W`\0\x80\xFD[\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`\x11`\x04R`$`\0\xFD[`\0\x81\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x04\x83\x11\x82\x15\x15\x16\x15a\x1BTWa\x1BTa\x1A\xEDV[P\x02\x90V[`\0\x82\x19\x82\x11\x15a\x1BlWa\x1Bla\x1A\xEDV[P\x01\x90V[`\0\x82a\x1B\xA7W\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`\x12`\x04R`$`\0\xFD[P\x04\x90V[`\0c\xFF\xFF\xFF\xFF\x80\x83\x16\x81\x85\x16\x81\x83\x04\x81\x11\x82\x15\x15\x16\x15a\x1B\xCFWa\x1B\xCFa\x1A\xEDV[\x02\x94\x93PPPPV[`\x01\x81\x81[\x80\x85\x11\x15a\x1C1W\x81\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x04\x82\x11\x15a\x1C\x17Wa\x1C\x17a\x1A\xEDV[\x80\x85\x16\x15a\x1C$W\x91\x81\x02\x91[\x93\x84\x1C\x93\x90\x80\x02\x90a\x1B\xDDV[P\x92P\x92\x90PV[`\0\x82a\x1CHWP`\x01a\t\xB8V[\x81a\x1CUWP`\0a\t\xB8V[\x81`\x01\x81\x14a\x1CkW`\x02\x81\x14a\x1CuWa\x1C\x91V[`\x01\x91PPa\t\xB8V[`\xFF\x84\x11\x15a\x1C\x86Wa\x1C\x86a\x1A\xEDV[PP`\x01\x82\x1Ba\t\xB8V[P` \x83\x10a\x013\x83\x10\x16`N\x84\x10`\x0B\x84\x10\x16\x17\x15a\x1C\xB4WP\x81\x81\na\t\xB8V[a\x1C\xBE\x83\x83a\x1B\xD8V[\x80\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x04\x82\x11\x15a\x1C\xF0Wa\x1C\xF0a\x1A\xEDV[\x02\x93\x92PPPV[`\0a\x10\x16\x83\x83a\x1C9V[`\0\x80\x82\x12\x82\x7F\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x03\x84\x13\x81\x15\x16\x15a\x1D>Wa\x1D>a\x1A\xEDV[\x82\x7F\x80\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x03\x84\x12\x81\x16\x15a\x1DrWa\x1Dra\x1A\xEDV[PP\x01\x90V[`\0\x7F\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF`\0\x84\x13`\0\x84\x13\x85\x83\x04\x85\x11\x82\x82\x16\x16\x15a\x1D\xB9Wa\x1D\xB9a\x1A\xEDV[\x7F\x80\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\0\x87\x12\x86\x82\x05\x88\x12\x81\x84\x16\x16\x15a\x1D\xF4Wa\x1D\xF4a\x1A\xEDV[`\0\x87\x12\x92P\x87\x82\x05\x87\x12\x84\x84\x16\x16\x15a\x1E\x10Wa\x1E\x10a\x1A\xEDV[\x87\x85\x05\x87\x12\x81\x84\x16\x16\x15a\x1E&Wa\x1E&a\x1A\xEDV[PPP\x92\x90\x93\x02\x93\x92PPPV[\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`2`\x04R`$`\0\xFD[`\0\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x03a\x1E\x94Wa\x1E\x94a\x1A\xEDV[P`\x01\x01\x90V\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `DECIMALS()` and selector `0x2e0f2625`. +```solidity +function DECIMALS() external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct DECIMALSCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`DECIMALS()`](DECIMALSCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct DECIMALSReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: DECIMALSCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for DECIMALSCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: DECIMALSReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for DECIMALSReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for DECIMALSCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "DECIMALS()"; + const SELECTOR: [u8; 4] = [46u8, 15u8, 38u8, 37u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: DECIMALSReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: DECIMALSReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `baseFee()` and selector `0x6ef25c3a`. +```solidity +function baseFee() external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct baseFeeCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`baseFee()`](baseFeeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct baseFeeReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: baseFeeCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for baseFeeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: baseFeeReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for baseFeeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for baseFeeCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "baseFee()"; + const SELECTOR: [u8; 4] = [110u8, 242u8, 92u8, 58u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: baseFeeReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: baseFeeReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `baseFeeScalar()` and selector `0xc5985918`. +```solidity +function baseFeeScalar() external view returns (uint32); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct baseFeeScalarCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`baseFeeScalar()`](baseFeeScalarCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct baseFeeScalarReturn { + #[allow(missing_docs)] + pub _0: u32, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: baseFeeScalarCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for baseFeeScalarCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u32,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: baseFeeScalarReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for baseFeeScalarReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for baseFeeScalarCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u32; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<32>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "baseFeeScalar()"; + const SELECTOR: [u8; 4] = [197u8, 152u8, 89u8, 24u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: baseFeeScalarReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: baseFeeScalarReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `blobBaseFee()` and selector `0xf8206140`. +```solidity +function blobBaseFee() external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct blobBaseFeeCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`blobBaseFee()`](blobBaseFeeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct blobBaseFeeReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: blobBaseFeeCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for blobBaseFeeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: blobBaseFeeReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for blobBaseFeeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for blobBaseFeeCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "blobBaseFee()"; + const SELECTOR: [u8; 4] = [248u8, 32u8, 97u8, 64u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: blobBaseFeeReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: blobBaseFeeReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `blobBaseFeeScalar()` and selector `0x68d5dca6`. +```solidity +function blobBaseFeeScalar() external view returns (uint32); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct blobBaseFeeScalarCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`blobBaseFeeScalar()`](blobBaseFeeScalarCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct blobBaseFeeScalarReturn { + #[allow(missing_docs)] + pub _0: u32, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: blobBaseFeeScalarCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for blobBaseFeeScalarCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u32,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: blobBaseFeeScalarReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for blobBaseFeeScalarReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for blobBaseFeeScalarCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u32; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<32>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "blobBaseFeeScalar()"; + const SELECTOR: [u8; 4] = [104u8, 213u8, 220u8, 166u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: blobBaseFeeScalarReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: blobBaseFeeScalarReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `decimals()` and selector `0x313ce567`. +```solidity +function decimals() external pure returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct decimalsCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`decimals()`](decimalsCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct decimalsReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: decimalsCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for decimalsCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: decimalsReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for decimalsReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for decimalsCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "decimals()"; + const SELECTOR: [u8; 4] = [49u8, 60u8, 229u8, 103u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: decimalsReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: decimalsReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `gasPrice()` and selector `0xfe173b97`. +```solidity +function gasPrice() external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct gasPriceCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`gasPrice()`](gasPriceCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct gasPriceReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: gasPriceCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for gasPriceCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: gasPriceReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for gasPriceReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for gasPriceCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "gasPrice()"; + const SELECTOR: [u8; 4] = [254u8, 23u8, 59u8, 151u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: gasPriceReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: gasPriceReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `getL1Fee(bytes)` and selector `0x49948e0e`. +```solidity +function getL1Fee(bytes memory _data) external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getL1FeeCall { + #[allow(missing_docs)] + pub _data: alloy::sol_types::private::Bytes, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`getL1Fee(bytes)`](getL1FeeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getL1FeeReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bytes,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Bytes,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: getL1FeeCall) -> Self { + (value._data,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for getL1FeeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _data: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: getL1FeeReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for getL1FeeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for getL1FeeCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Bytes,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "getL1Fee(bytes)"; + const SELECTOR: [u8; 4] = [73u8, 148u8, 142u8, 14u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._data, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: getL1FeeReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: getL1FeeReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `getL1FeeUpperBound(uint256)` and selector `0xf1c7a58b`. +```solidity +function getL1FeeUpperBound(uint256 _unsignedTxSize) external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getL1FeeUpperBoundCall { + #[allow(missing_docs)] + pub _unsignedTxSize: alloy::sol_types::private::primitives::aliases::U256, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`getL1FeeUpperBound(uint256)`](getL1FeeUpperBoundCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getL1FeeUpperBoundReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: getL1FeeUpperBoundCall) -> Self { + (value._unsignedTxSize,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for getL1FeeUpperBoundCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _unsignedTxSize: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: getL1FeeUpperBoundReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for getL1FeeUpperBoundReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for getL1FeeUpperBoundCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "getL1FeeUpperBound(uint256)"; + const SELECTOR: [u8; 4] = [241u8, 199u8, 165u8, 139u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._unsignedTxSize), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: getL1FeeUpperBoundReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: getL1FeeUpperBoundReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `getL1GasUsed(bytes)` and selector `0xde26c4a1`. +```solidity +function getL1GasUsed(bytes memory _data) external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getL1GasUsedCall { + #[allow(missing_docs)] + pub _data: alloy::sol_types::private::Bytes, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`getL1GasUsed(bytes)`](getL1GasUsedCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getL1GasUsedReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bytes,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Bytes,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: getL1GasUsedCall) -> Self { + (value._data,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for getL1GasUsedCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _data: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: getL1GasUsedReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for getL1GasUsedReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for getL1GasUsedCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Bytes,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "getL1GasUsed(bytes)"; + const SELECTOR: [u8; 4] = [222u8, 38u8, 196u8, 161u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._data, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: getL1GasUsedReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: getL1GasUsedReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `getOperatorFee(uint256)` and selector `0x275aedd2`. +```solidity +function getOperatorFee(uint256 _gasUsed) external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getOperatorFeeCall { + #[allow(missing_docs)] + pub _gasUsed: alloy::sol_types::private::primitives::aliases::U256, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`getOperatorFee(uint256)`](getOperatorFeeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getOperatorFeeReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: getOperatorFeeCall) -> Self { + (value._gasUsed,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for getOperatorFeeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _gasUsed: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: getOperatorFeeReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for getOperatorFeeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for getOperatorFeeCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "getOperatorFee(uint256)"; + const SELECTOR: [u8; 4] = [39u8, 90u8, 237u8, 210u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._gasUsed), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: getOperatorFeeReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: getOperatorFeeReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `isEcotone()` and selector `0x4ef6e224`. +```solidity +function isEcotone() external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct isEcotoneCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`isEcotone()`](isEcotoneCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct isEcotoneReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: isEcotoneCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for isEcotoneCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: isEcotoneReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for isEcotoneReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for isEcotoneCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "isEcotone()"; + const SELECTOR: [u8; 4] = [78u8, 246u8, 226u8, 36u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: isEcotoneReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: isEcotoneReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `isFjord()` and selector `0x960e3a23`. +```solidity +function isFjord() external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct isFjordCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`isFjord()`](isFjordCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct isFjordReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: isFjordCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for isFjordCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: isFjordReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for isFjordReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for isFjordCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "isFjord()"; + const SELECTOR: [u8; 4] = [150u8, 14u8, 58u8, 35u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: isFjordReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: isFjordReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `isIsthmus()` and selector `0xb54501bc`. +```solidity +function isIsthmus() external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct isIsthmusCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`isIsthmus()`](isIsthmusCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct isIsthmusReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: isIsthmusCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for isIsthmusCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: isIsthmusReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for isIsthmusReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for isIsthmusCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "isIsthmus()"; + const SELECTOR: [u8; 4] = [181u8, 69u8, 1u8, 188u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: isIsthmusReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: isIsthmusReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `isJovian()` and selector `0x105d0b81`. +```solidity +function isJovian() external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct isJovianCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`isJovian()`](isJovianCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct isJovianReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: isJovianCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for isJovianCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: isJovianReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for isJovianReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for isJovianCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "isJovian()"; + const SELECTOR: [u8; 4] = [16u8, 93u8, 11u8, 129u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: isJovianReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: isJovianReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `l1BaseFee()` and selector `0x519b4bd3`. +```solidity +function l1BaseFee() external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct l1BaseFeeCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`l1BaseFee()`](l1BaseFeeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct l1BaseFeeReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: l1BaseFeeCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for l1BaseFeeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: l1BaseFeeReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for l1BaseFeeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for l1BaseFeeCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "l1BaseFee()"; + const SELECTOR: [u8; 4] = [81u8, 155u8, 75u8, 211u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: l1BaseFeeReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: l1BaseFeeReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `overhead()` and selector `0x0c18c162`. +```solidity +function overhead() external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct overheadCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`overhead()`](overheadCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct overheadReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: overheadCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for overheadCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: overheadReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for overheadReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for overheadCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "overhead()"; + const SELECTOR: [u8; 4] = [12u8, 24u8, 193u8, 98u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: overheadReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: overheadReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `scalar()` and selector `0xf45e65d8`. +```solidity +function scalar() external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct scalarCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`scalar()`](scalarCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct scalarReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: scalarCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for scalarCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: scalarReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for scalarReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for scalarCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "scalar()"; + const SELECTOR: [u8; 4] = [244u8, 94u8, 101u8, 216u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: scalarReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: scalarReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `setEcotone()` and selector `0x22b90ab3`. +```solidity +function setEcotone() external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setEcotoneCall; + ///Container type for the return parameters of the [`setEcotone()`](setEcotoneCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setEcotoneReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: setEcotoneCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for setEcotoneCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: setEcotoneReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for setEcotoneReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl setEcotoneReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for setEcotoneCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = setEcotoneReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "setEcotone()"; + const SELECTOR: [u8; 4] = [34u8, 185u8, 10u8, 179u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + setEcotoneReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `setFjord()` and selector `0x8e98b106`. +```solidity +function setFjord() external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setFjordCall; + ///Container type for the return parameters of the [`setFjord()`](setFjordCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setFjordReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: setFjordCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for setFjordCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: setFjordReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for setFjordReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl setFjordReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for setFjordCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = setFjordReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "setFjord()"; + const SELECTOR: [u8; 4] = [142u8, 152u8, 177u8, 6u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + setFjordReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `setIsthmus()` and selector `0x291b0383`. +```solidity +function setIsthmus() external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setIsthmusCall; + ///Container type for the return parameters of the [`setIsthmus()`](setIsthmusCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setIsthmusReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: setIsthmusCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for setIsthmusCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: setIsthmusReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for setIsthmusReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl setIsthmusReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for setIsthmusCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = setIsthmusReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "setIsthmus()"; + const SELECTOR: [u8; 4] = [41u8, 27u8, 3u8, 131u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + setIsthmusReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `setJovian()` and selector `0xb3d72079`. +```solidity +function setJovian() external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setJovianCall; + ///Container type for the return parameters of the [`setJovian()`](setJovianCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setJovianReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: setJovianCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for setJovianCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: setJovianReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for setJovianReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl setJovianReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for setJovianCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = setJovianReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "setJovian()"; + const SELECTOR: [u8; 4] = [179u8, 215u8, 32u8, 121u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + setJovianReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `version()` and selector `0x54fd4d50`. +```solidity +function version() external view returns (string memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`version()`](versionCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for versionCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::String; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "version()"; + const SELECTOR: [u8; 4] = [84u8, 253u8, 77u8, 80u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + } + }; + ///Container for all the [`GasPriceOracle`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum GasPriceOracleCalls { + #[allow(missing_docs)] + DECIMALS(DECIMALSCall), + #[allow(missing_docs)] + baseFee(baseFeeCall), + #[allow(missing_docs)] + baseFeeScalar(baseFeeScalarCall), + #[allow(missing_docs)] + blobBaseFee(blobBaseFeeCall), + #[allow(missing_docs)] + blobBaseFeeScalar(blobBaseFeeScalarCall), + #[allow(missing_docs)] + decimals(decimalsCall), + #[allow(missing_docs)] + gasPrice(gasPriceCall), + #[allow(missing_docs)] + getL1Fee(getL1FeeCall), + #[allow(missing_docs)] + getL1FeeUpperBound(getL1FeeUpperBoundCall), + #[allow(missing_docs)] + getL1GasUsed(getL1GasUsedCall), + #[allow(missing_docs)] + getOperatorFee(getOperatorFeeCall), + #[allow(missing_docs)] + isEcotone(isEcotoneCall), + #[allow(missing_docs)] + isFjord(isFjordCall), + #[allow(missing_docs)] + isIsthmus(isIsthmusCall), + #[allow(missing_docs)] + isJovian(isJovianCall), + #[allow(missing_docs)] + l1BaseFee(l1BaseFeeCall), + #[allow(missing_docs)] + overhead(overheadCall), + #[allow(missing_docs)] + scalar(scalarCall), + #[allow(missing_docs)] + setEcotone(setEcotoneCall), + #[allow(missing_docs)] + setFjord(setFjordCall), + #[allow(missing_docs)] + setIsthmus(setIsthmusCall), + #[allow(missing_docs)] + setJovian(setJovianCall), + #[allow(missing_docs)] + version(versionCall), + } + impl GasPriceOracleCalls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [12u8, 24u8, 193u8, 98u8], + [16u8, 93u8, 11u8, 129u8], + [34u8, 185u8, 10u8, 179u8], + [39u8, 90u8, 237u8, 210u8], + [41u8, 27u8, 3u8, 131u8], + [46u8, 15u8, 38u8, 37u8], + [49u8, 60u8, 229u8, 103u8], + [73u8, 148u8, 142u8, 14u8], + [78u8, 246u8, 226u8, 36u8], + [81u8, 155u8, 75u8, 211u8], + [84u8, 253u8, 77u8, 80u8], + [104u8, 213u8, 220u8, 166u8], + [110u8, 242u8, 92u8, 58u8], + [142u8, 152u8, 177u8, 6u8], + [150u8, 14u8, 58u8, 35u8], + [179u8, 215u8, 32u8, 121u8], + [181u8, 69u8, 1u8, 188u8], + [197u8, 152u8, 89u8, 24u8], + [222u8, 38u8, 196u8, 161u8], + [241u8, 199u8, 165u8, 139u8], + [244u8, 94u8, 101u8, 216u8], + [248u8, 32u8, 97u8, 64u8], + [254u8, 23u8, 59u8, 151u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(overhead), + ::core::stringify!(isJovian), + ::core::stringify!(setEcotone), + ::core::stringify!(getOperatorFee), + ::core::stringify!(setIsthmus), + ::core::stringify!(DECIMALS), + ::core::stringify!(decimals), + ::core::stringify!(getL1Fee), + ::core::stringify!(isEcotone), + ::core::stringify!(l1BaseFee), + ::core::stringify!(version), + ::core::stringify!(blobBaseFeeScalar), + ::core::stringify!(baseFee), + ::core::stringify!(setFjord), + ::core::stringify!(isFjord), + ::core::stringify!(setJovian), + ::core::stringify!(isIsthmus), + ::core::stringify!(baseFeeScalar), + ::core::stringify!(getL1GasUsed), + ::core::stringify!(getL1FeeUpperBound), + ::core::stringify!(scalar), + ::core::stringify!(blobBaseFee), + ::core::stringify!(gasPrice), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for GasPriceOracleCalls { + const NAME: &'static str = "GasPriceOracleCalls"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 23usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::DECIMALS(_) => ::SELECTOR, + Self::baseFee(_) => ::SELECTOR, + Self::baseFeeScalar(_) => { + ::SELECTOR + } + Self::blobBaseFee(_) => { + ::SELECTOR + } + Self::blobBaseFeeScalar(_) => { + ::SELECTOR + } + Self::decimals(_) => ::SELECTOR, + Self::gasPrice(_) => ::SELECTOR, + Self::getL1Fee(_) => ::SELECTOR, + Self::getL1FeeUpperBound(_) => { + ::SELECTOR + } + Self::getL1GasUsed(_) => { + ::SELECTOR + } + Self::getOperatorFee(_) => { + ::SELECTOR + } + Self::isEcotone(_) => { + ::SELECTOR + } + Self::isFjord(_) => ::SELECTOR, + Self::isIsthmus(_) => { + ::SELECTOR + } + Self::isJovian(_) => ::SELECTOR, + Self::l1BaseFee(_) => { + ::SELECTOR + } + Self::overhead(_) => ::SELECTOR, + Self::scalar(_) => ::SELECTOR, + Self::setEcotone(_) => { + ::SELECTOR + } + Self::setFjord(_) => ::SELECTOR, + Self::setIsthmus(_) => { + ::SELECTOR + } + Self::setJovian(_) => { + ::SELECTOR + } + Self::version(_) => ::SELECTOR, + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn overhead( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(GasPriceOracleCalls::overhead) + } + overhead + }, + { + fn isJovian( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(GasPriceOracleCalls::isJovian) + } + isJovian + }, + { + fn setEcotone( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(GasPriceOracleCalls::setEcotone) + } + setEcotone + }, + { + fn getOperatorFee( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(GasPriceOracleCalls::getOperatorFee) + } + getOperatorFee + }, + { + fn setIsthmus( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(GasPriceOracleCalls::setIsthmus) + } + setIsthmus + }, + { + fn DECIMALS( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(GasPriceOracleCalls::DECIMALS) + } + DECIMALS + }, + { + fn decimals( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(GasPriceOracleCalls::decimals) + } + decimals + }, + { + fn getL1Fee( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(GasPriceOracleCalls::getL1Fee) + } + getL1Fee + }, + { + fn isEcotone( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(GasPriceOracleCalls::isEcotone) + } + isEcotone + }, + { + fn l1BaseFee( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(GasPriceOracleCalls::l1BaseFee) + } + l1BaseFee + }, + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(GasPriceOracleCalls::version) + } + version + }, + { + fn blobBaseFeeScalar( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(GasPriceOracleCalls::blobBaseFeeScalar) + } + blobBaseFeeScalar + }, + { + fn baseFee( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(GasPriceOracleCalls::baseFee) + } + baseFee + }, + { + fn setFjord( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(GasPriceOracleCalls::setFjord) + } + setFjord + }, + { + fn isFjord( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(GasPriceOracleCalls::isFjord) + } + isFjord + }, + { + fn setJovian( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(GasPriceOracleCalls::setJovian) + } + setJovian + }, + { + fn isIsthmus( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(GasPriceOracleCalls::isIsthmus) + } + isIsthmus + }, + { + fn baseFeeScalar( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(GasPriceOracleCalls::baseFeeScalar) + } + baseFeeScalar + }, + { + fn getL1GasUsed( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(GasPriceOracleCalls::getL1GasUsed) + } + getL1GasUsed + }, + { + fn getL1FeeUpperBound( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(GasPriceOracleCalls::getL1FeeUpperBound) + } + getL1FeeUpperBound + }, + { + fn scalar( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(GasPriceOracleCalls::scalar) + } + scalar + }, + { + fn blobBaseFee( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(GasPriceOracleCalls::blobBaseFee) + } + blobBaseFee + }, + { + fn gasPrice( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(GasPriceOracleCalls::gasPrice) + } + gasPrice + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn overhead( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(GasPriceOracleCalls::overhead) + } + overhead + }, + { + fn isJovian( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(GasPriceOracleCalls::isJovian) + } + isJovian + }, + { + fn setEcotone( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(GasPriceOracleCalls::setEcotone) + } + setEcotone + }, + { + fn getOperatorFee( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(GasPriceOracleCalls::getOperatorFee) + } + getOperatorFee + }, + { + fn setIsthmus( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(GasPriceOracleCalls::setIsthmus) + } + setIsthmus + }, + { + fn DECIMALS( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(GasPriceOracleCalls::DECIMALS) + } + DECIMALS + }, + { + fn decimals( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(GasPriceOracleCalls::decimals) + } + decimals + }, + { + fn getL1Fee( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(GasPriceOracleCalls::getL1Fee) + } + getL1Fee + }, + { + fn isEcotone( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(GasPriceOracleCalls::isEcotone) + } + isEcotone + }, + { + fn l1BaseFee( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(GasPriceOracleCalls::l1BaseFee) + } + l1BaseFee + }, + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(GasPriceOracleCalls::version) + } + version + }, + { + fn blobBaseFeeScalar( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(GasPriceOracleCalls::blobBaseFeeScalar) + } + blobBaseFeeScalar + }, + { + fn baseFee( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(GasPriceOracleCalls::baseFee) + } + baseFee + }, + { + fn setFjord( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(GasPriceOracleCalls::setFjord) + } + setFjord + }, + { + fn isFjord( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(GasPriceOracleCalls::isFjord) + } + isFjord + }, + { + fn setJovian( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(GasPriceOracleCalls::setJovian) + } + setJovian + }, + { + fn isIsthmus( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(GasPriceOracleCalls::isIsthmus) + } + isIsthmus + }, + { + fn baseFeeScalar( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(GasPriceOracleCalls::baseFeeScalar) + } + baseFeeScalar + }, + { + fn getL1GasUsed( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(GasPriceOracleCalls::getL1GasUsed) + } + getL1GasUsed + }, + { + fn getL1FeeUpperBound( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(GasPriceOracleCalls::getL1FeeUpperBound) + } + getL1FeeUpperBound + }, + { + fn scalar( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(GasPriceOracleCalls::scalar) + } + scalar + }, + { + fn blobBaseFee( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(GasPriceOracleCalls::blobBaseFee) + } + blobBaseFee + }, + { + fn gasPrice( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(GasPriceOracleCalls::gasPrice) + } + gasPrice + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::DECIMALS(inner) => { + ::abi_encoded_size(inner) + } + Self::baseFee(inner) => { + ::abi_encoded_size(inner) + } + Self::baseFeeScalar(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::blobBaseFee(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::blobBaseFeeScalar(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::decimals(inner) => { + ::abi_encoded_size(inner) + } + Self::gasPrice(inner) => { + ::abi_encoded_size(inner) + } + Self::getL1Fee(inner) => { + ::abi_encoded_size(inner) + } + Self::getL1FeeUpperBound(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::getL1GasUsed(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::getOperatorFee(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::isEcotone(inner) => { + ::abi_encoded_size(inner) + } + Self::isFjord(inner) => { + ::abi_encoded_size(inner) + } + Self::isIsthmus(inner) => { + ::abi_encoded_size(inner) + } + Self::isJovian(inner) => { + ::abi_encoded_size(inner) + } + Self::l1BaseFee(inner) => { + ::abi_encoded_size(inner) + } + Self::overhead(inner) => { + ::abi_encoded_size(inner) + } + Self::scalar(inner) => { + ::abi_encoded_size(inner) + } + Self::setEcotone(inner) => { + ::abi_encoded_size(inner) + } + Self::setFjord(inner) => { + ::abi_encoded_size(inner) + } + Self::setIsthmus(inner) => { + ::abi_encoded_size(inner) + } + Self::setJovian(inner) => { + ::abi_encoded_size(inner) + } + Self::version(inner) => { + ::abi_encoded_size(inner) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::DECIMALS(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::baseFee(inner) => { + ::abi_encode_raw(inner, out) + } + Self::baseFeeScalar(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::blobBaseFee(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::blobBaseFeeScalar(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::decimals(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::gasPrice(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::getL1Fee(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::getL1FeeUpperBound(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::getL1GasUsed(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::getOperatorFee(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::isEcotone(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::isFjord(inner) => { + ::abi_encode_raw(inner, out) + } + Self::isIsthmus(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::isJovian(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::l1BaseFee(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::overhead(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::scalar(inner) => { + ::abi_encode_raw(inner, out) + } + Self::setEcotone(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::setFjord(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::setIsthmus(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::setJovian(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::version(inner) => { + ::abi_encode_raw(inner, out) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`GasPriceOracle`](self) contract instance. + +See the [wrapper's documentation](`GasPriceOracleInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> GasPriceOracleInstance { + GasPriceOracleInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + GasPriceOracleInstance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + GasPriceOracleInstance::::deploy_builder(__provider) + } + /**A [`GasPriceOracle`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`GasPriceOracle`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct GasPriceOracleInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for GasPriceOracleInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("GasPriceOracleInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > GasPriceOracleInstance { + /**Creates a new wrapper around an on-chain [`GasPriceOracle`](self) contract instance. + +See the [wrapper's documentation](`GasPriceOracleInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl GasPriceOracleInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> GasPriceOracleInstance { + GasPriceOracleInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > GasPriceOracleInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`DECIMALS`] function. + pub fn DECIMALS(&self) -> alloy_contract::SolCallBuilder<&P, DECIMALSCall, N> { + self.call_builder(&DECIMALSCall) + } + ///Creates a new call builder for the [`baseFee`] function. + pub fn baseFee(&self) -> alloy_contract::SolCallBuilder<&P, baseFeeCall, N> { + self.call_builder(&baseFeeCall) + } + ///Creates a new call builder for the [`baseFeeScalar`] function. + pub fn baseFeeScalar( + &self, + ) -> alloy_contract::SolCallBuilder<&P, baseFeeScalarCall, N> { + self.call_builder(&baseFeeScalarCall) + } + ///Creates a new call builder for the [`blobBaseFee`] function. + pub fn blobBaseFee( + &self, + ) -> alloy_contract::SolCallBuilder<&P, blobBaseFeeCall, N> { + self.call_builder(&blobBaseFeeCall) + } + ///Creates a new call builder for the [`blobBaseFeeScalar`] function. + pub fn blobBaseFeeScalar( + &self, + ) -> alloy_contract::SolCallBuilder<&P, blobBaseFeeScalarCall, N> { + self.call_builder(&blobBaseFeeScalarCall) + } + ///Creates a new call builder for the [`decimals`] function. + pub fn decimals(&self) -> alloy_contract::SolCallBuilder<&P, decimalsCall, N> { + self.call_builder(&decimalsCall) + } + ///Creates a new call builder for the [`gasPrice`] function. + pub fn gasPrice(&self) -> alloy_contract::SolCallBuilder<&P, gasPriceCall, N> { + self.call_builder(&gasPriceCall) + } + ///Creates a new call builder for the [`getL1Fee`] function. + pub fn getL1Fee( + &self, + _data: alloy::sol_types::private::Bytes, + ) -> alloy_contract::SolCallBuilder<&P, getL1FeeCall, N> { + self.call_builder(&getL1FeeCall { _data }) + } + ///Creates a new call builder for the [`getL1FeeUpperBound`] function. + pub fn getL1FeeUpperBound( + &self, + _unsignedTxSize: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, getL1FeeUpperBoundCall, N> { + self.call_builder( + &getL1FeeUpperBoundCall { + _unsignedTxSize, + }, + ) + } + ///Creates a new call builder for the [`getL1GasUsed`] function. + pub fn getL1GasUsed( + &self, + _data: alloy::sol_types::private::Bytes, + ) -> alloy_contract::SolCallBuilder<&P, getL1GasUsedCall, N> { + self.call_builder(&getL1GasUsedCall { _data }) + } + ///Creates a new call builder for the [`getOperatorFee`] function. + pub fn getOperatorFee( + &self, + _gasUsed: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, getOperatorFeeCall, N> { + self.call_builder(&getOperatorFeeCall { _gasUsed }) + } + ///Creates a new call builder for the [`isEcotone`] function. + pub fn isEcotone(&self) -> alloy_contract::SolCallBuilder<&P, isEcotoneCall, N> { + self.call_builder(&isEcotoneCall) + } + ///Creates a new call builder for the [`isFjord`] function. + pub fn isFjord(&self) -> alloy_contract::SolCallBuilder<&P, isFjordCall, N> { + self.call_builder(&isFjordCall) + } + ///Creates a new call builder for the [`isIsthmus`] function. + pub fn isIsthmus(&self) -> alloy_contract::SolCallBuilder<&P, isIsthmusCall, N> { + self.call_builder(&isIsthmusCall) + } + ///Creates a new call builder for the [`isJovian`] function. + pub fn isJovian(&self) -> alloy_contract::SolCallBuilder<&P, isJovianCall, N> { + self.call_builder(&isJovianCall) + } + ///Creates a new call builder for the [`l1BaseFee`] function. + pub fn l1BaseFee(&self) -> alloy_contract::SolCallBuilder<&P, l1BaseFeeCall, N> { + self.call_builder(&l1BaseFeeCall) + } + ///Creates a new call builder for the [`overhead`] function. + pub fn overhead(&self) -> alloy_contract::SolCallBuilder<&P, overheadCall, N> { + self.call_builder(&overheadCall) + } + ///Creates a new call builder for the [`scalar`] function. + pub fn scalar(&self) -> alloy_contract::SolCallBuilder<&P, scalarCall, N> { + self.call_builder(&scalarCall) + } + ///Creates a new call builder for the [`setEcotone`] function. + pub fn setEcotone( + &self, + ) -> alloy_contract::SolCallBuilder<&P, setEcotoneCall, N> { + self.call_builder(&setEcotoneCall) + } + ///Creates a new call builder for the [`setFjord`] function. + pub fn setFjord(&self) -> alloy_contract::SolCallBuilder<&P, setFjordCall, N> { + self.call_builder(&setFjordCall) + } + ///Creates a new call builder for the [`setIsthmus`] function. + pub fn setIsthmus( + &self, + ) -> alloy_contract::SolCallBuilder<&P, setIsthmusCall, N> { + self.call_builder(&setIsthmusCall) + } + ///Creates a new call builder for the [`setJovian`] function. + pub fn setJovian(&self) -> alloy_contract::SolCallBuilder<&P, setJovianCall, N> { + self.call_builder(&setJovianCall) + } + ///Creates a new call builder for the [`version`] function. + pub fn version(&self) -> alloy_contract::SolCallBuilder<&P, versionCall, N> { + self.call_builder(&versionCall) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > GasPriceOracleInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + } +} diff --git a/bindings/rust/src/governance_token.rs b/bindings/rust/src/governance_token.rs new file mode 100644 index 000000000..e19f9e7d4 --- /dev/null +++ b/bindings/rust/src/governance_token.rs @@ -0,0 +1,8085 @@ +///Module containing a contract's types and functions. +/** + +```solidity +library ERC20Votes { + struct Checkpoint { uint32 fromBlock; uint224 votes; } +} +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod ERC20Votes { + use super::*; + use alloy::sol_types as alloy_sol_types; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**```solidity +struct Checkpoint { uint32 fromBlock; uint224 votes; } +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct Checkpoint { + #[allow(missing_docs)] + pub fromBlock: u32, + #[allow(missing_docs)] + pub votes: alloy::sol_types::private::primitives::aliases::U224, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Uint<32>, + alloy::sol_types::sol_data::Uint<224>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + u32, + alloy::sol_types::private::primitives::aliases::U224, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: Checkpoint) -> Self { + (value.fromBlock, value.votes) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for Checkpoint { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + fromBlock: tuple.0, + votes: tuple.1, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolValue for Checkpoint { + type SolType = Self; + } + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for Checkpoint { + #[inline] + fn stv_to_tokens(&self) -> ::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.fromBlock), + as alloy_sol_types::SolType>::tokenize(&self.votes), + ) + } + #[inline] + fn stv_abi_encoded_size(&self) -> usize { + if let Some(size) = ::ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encoded_size(&tuple) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + ::eip712_hash_struct(self) + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + if let Some(size) = ::PACKED_ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for Checkpoint { + type RustType = Self; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = ::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + as alloy_sol_types::SolType>::valid_token(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + let tuple = as alloy_sol_types::SolType>::detokenize(token); + >>::from(tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolStruct for Checkpoint { + const NAME: &'static str = "Checkpoint"; + #[inline] + fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> { + alloy_sol_types::private::Cow::Borrowed( + "Checkpoint(uint32 fromBlock,uint224 votes)", + ) + } + #[inline] + fn eip712_components() -> alloy_sol_types::private::Vec< + alloy_sol_types::private::Cow<'static, str>, + > { + alloy_sol_types::private::Vec::new() + } + #[inline] + fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> { + ::eip712_root_type() + } + #[inline] + fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec { + [ + as alloy_sol_types::SolType>::eip712_data_word(&self.fromBlock) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.votes) + .0, + ] + .concat() + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for Checkpoint { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + 0usize + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.fromBlock, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length(&rust.votes) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + out.reserve( + ::topic_preimage_length(rust), + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.fromBlock, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.votes, + out, + ); + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + let mut out = alloy_sol_types::private::Vec::new(); + ::encode_topic_preimage( + rust, + &mut out, + ); + alloy_sol_types::abi::token::WordToken( + alloy_sol_types::private::keccak256(out), + ) + } + } + }; + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`ERC20Votes`](self) contract instance. + +See the [wrapper's documentation](`ERC20VotesInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> ERC20VotesInstance { + ERC20VotesInstance::::new(address, __provider) + } + /**A [`ERC20Votes`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`ERC20Votes`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct ERC20VotesInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for ERC20VotesInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("ERC20VotesInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > ERC20VotesInstance { + /**Creates a new wrapper around an on-chain [`ERC20Votes`](self) contract instance. + +See the [wrapper's documentation](`ERC20VotesInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl ERC20VotesInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> ERC20VotesInstance { + ERC20VotesInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > ERC20VotesInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > ERC20VotesInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + } +} +/** + +Generated by the following Solidity interface... +```solidity +library ERC20Votes { + struct Checkpoint { + uint32 fromBlock; + uint224 votes; + } +} + +interface GovernanceToken { + event Approval(address indexed owner, address indexed spender, uint256 value); + event DelegateChanged(address indexed delegator, address indexed fromDelegate, address indexed toDelegate); + event DelegateVotesChanged(address indexed delegate, uint256 previousBalance, uint256 newBalance); + event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); + event Transfer(address indexed from, address indexed to, uint256 value); + + constructor(); + + function DOMAIN_SEPARATOR() external view returns (bytes32); + function allowance(address owner, address spender) external view returns (uint256); + function approve(address spender, uint256 amount) external returns (bool); + function balanceOf(address account) external view returns (uint256); + function burn(uint256 amount) external; + function burnFrom(address account, uint256 amount) external; + function checkpoints(address account, uint32 pos) external view returns (ERC20Votes.Checkpoint memory); + function decimals() external view returns (uint8); + function decreaseAllowance(address spender, uint256 subtractedValue) external returns (bool); + function delegate(address delegatee) external; + function delegateBySig(address delegatee, uint256 nonce, uint256 expiry, uint8 v, bytes32 r, bytes32 s) external; + function delegates(address account) external view returns (address); + function getPastTotalSupply(uint256 blockNumber) external view returns (uint256); + function getPastVotes(address account, uint256 blockNumber) external view returns (uint256); + function getVotes(address account) external view returns (uint256); + function increaseAllowance(address spender, uint256 addedValue) external returns (bool); + function mint(address _account, uint256 _amount) external; + function name() external view returns (string memory); + function nonces(address owner) external view returns (uint256); + function numCheckpoints(address account) external view returns (uint32); + function owner() external view returns (address); + function permit(address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) external; + function renounceOwnership() external; + function symbol() external view returns (string memory); + function totalSupply() external view returns (uint256); + function transfer(address to, uint256 amount) external returns (bool); + function transferFrom(address from, address to, uint256 amount) external returns (bool); + function transferOwnership(address newOwner) external; +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "constructor", + "inputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "DOMAIN_SEPARATOR", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "allowance", + "inputs": [ + { + "name": "owner", + "type": "address", + "internalType": "address" + }, + { + "name": "spender", + "type": "address", + "internalType": "address" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "approve", + "inputs": [ + { + "name": "spender", + "type": "address", + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "balanceOf", + "inputs": [ + { + "name": "account", + "type": "address", + "internalType": "address" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "burn", + "inputs": [ + { + "name": "amount", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "burnFrom", + "inputs": [ + { + "name": "account", + "type": "address", + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "checkpoints", + "inputs": [ + { + "name": "account", + "type": "address", + "internalType": "address" + }, + { + "name": "pos", + "type": "uint32", + "internalType": "uint32" + } + ], + "outputs": [ + { + "name": "", + "type": "tuple", + "internalType": "struct ERC20Votes.Checkpoint", + "components": [ + { + "name": "fromBlock", + "type": "uint32", + "internalType": "uint32" + }, + { + "name": "votes", + "type": "uint224", + "internalType": "uint224" + } + ] + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "decimals", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint8", + "internalType": "uint8" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "decreaseAllowance", + "inputs": [ + { + "name": "spender", + "type": "address", + "internalType": "address" + }, + { + "name": "subtractedValue", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "delegate", + "inputs": [ + { + "name": "delegatee", + "type": "address", + "internalType": "address" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "delegateBySig", + "inputs": [ + { + "name": "delegatee", + "type": "address", + "internalType": "address" + }, + { + "name": "nonce", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "expiry", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "v", + "type": "uint8", + "internalType": "uint8" + }, + { + "name": "r", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "s", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "delegates", + "inputs": [ + { + "name": "account", + "type": "address", + "internalType": "address" + } + ], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "getPastTotalSupply", + "inputs": [ + { + "name": "blockNumber", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "getPastVotes", + "inputs": [ + { + "name": "account", + "type": "address", + "internalType": "address" + }, + { + "name": "blockNumber", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "getVotes", + "inputs": [ + { + "name": "account", + "type": "address", + "internalType": "address" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "increaseAllowance", + "inputs": [ + { + "name": "spender", + "type": "address", + "internalType": "address" + }, + { + "name": "addedValue", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "mint", + "inputs": [ + { + "name": "_account", + "type": "address", + "internalType": "address" + }, + { + "name": "_amount", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "name", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "nonces", + "inputs": [ + { + "name": "owner", + "type": "address", + "internalType": "address" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "numCheckpoints", + "inputs": [ + { + "name": "account", + "type": "address", + "internalType": "address" + } + ], + "outputs": [ + { + "name": "", + "type": "uint32", + "internalType": "uint32" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "owner", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "permit", + "inputs": [ + { + "name": "owner", + "type": "address", + "internalType": "address" + }, + { + "name": "spender", + "type": "address", + "internalType": "address" + }, + { + "name": "value", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "deadline", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "v", + "type": "uint8", + "internalType": "uint8" + }, + { + "name": "r", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "s", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "renounceOwnership", + "inputs": [], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "symbol", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "totalSupply", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "transfer", + "inputs": [ + { + "name": "to", + "type": "address", + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "transferFrom", + "inputs": [ + { + "name": "from", + "type": "address", + "internalType": "address" + }, + { + "name": "to", + "type": "address", + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "transferOwnership", + "inputs": [ + { + "name": "newOwner", + "type": "address", + "internalType": "address" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "event", + "name": "Approval", + "inputs": [ + { + "name": "owner", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "spender", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "value", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "DelegateChanged", + "inputs": [ + { + "name": "delegator", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "fromDelegate", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "toDelegate", + "type": "address", + "indexed": true, + "internalType": "address" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "DelegateVotesChanged", + "inputs": [ + { + "name": "delegate", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "previousBalance", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + }, + { + "name": "newBalance", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "OwnershipTransferred", + "inputs": [ + { + "name": "previousOwner", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "newOwner", + "type": "address", + "indexed": true, + "internalType": "address" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "Transfer", + "inputs": [ + { + "name": "from", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "to", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "value", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod GovernanceToken { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x6101406040523480156200001257600080fd5b50604051806040016040528060088152602001674f7074696d69736d60c01b81525080604051806040016040528060018152602001603160f81b815250604051806040016040528060088152602001674f7074696d69736d60c01b8152506040518060400160405280600281526020016104f560f41b81525081600390816200009c919062000247565b506004620000ab828262000247565b5050825160209384012082519284019290922060e08390526101008190524660a0818152604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f818901819052818301979097526060810194909452608080850193909352308483018190528151808603909301835260c09485019091528151919096012090529290925261012052506200014a90503362000150565b62000313565b600a80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620001cd57607f821691505b602082108103620001ee57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200024257600081815260208120601f850160051c810160208610156200021d5750805b601f850160051c820191505b818110156200023e5782815560010162000229565b5050505b505050565b81516001600160401b03811115620002635762000263620001a2565b6200027b81620002748454620001b8565b84620001f4565b602080601f831160018114620002b357600084156200029a5750858301515b600019600386901b1c1916600185901b1785556200023e565b600085815260208120601f198616915b82811015620002e457888601518255948401946001909101908401620002c3565b5085821015620003035787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60805160a05160c05160e051610100516101205161286a6200036360003960006113f2015260006114410152600061141c015260006113750152600061139f015260006113c9015261286a6000f3fe608060405234801561001057600080fd5b50600436106101c45760003560e01c8063715018a6116100f9578063a457c2d711610097578063d505accf11610071578063d505accf14610416578063dd62ed3e14610429578063f1127ed81461046f578063f2fde38b146104c157600080fd5b8063a457c2d7146103dd578063a9059cbb146103f0578063c3cda5201461040357600080fd5b80638da5cb5b116100d35780638da5cb5b146103915780638e539e8c146103af57806395d89b41146103c25780639ab24eb0146103ca57600080fd5b8063715018a61461036357806379cc67901461036b5780637ecebe001461037e57600080fd5b80633a46b1a811610166578063587cde1e11610140578063587cde1e146102945780635c19a95c146102f25780636fcfff451461030557806370a082311461032d57600080fd5b80633a46b1a81461025957806340c10f191461026c57806342966c681461028157600080fd5b806323b872dd116101a257806323b872dd1461021c578063313ce5671461022f5780633644e5151461023e578063395093511461024657600080fd5b806306fdde03146101c9578063095ea7b3146101e757806318160ddd1461020a575b600080fd5b6101d16104d4565b6040516101de919061249d565b60405180910390f35b6101fa6101f5366004612539565b610566565b60405190151581526020016101de565b6002545b6040519081526020016101de565b6101fa61022a366004612563565b61057e565b604051601281526020016101de565b61020e6105a2565b6101fa610254366004612539565b6105b1565b61020e610267366004612539565b6105fd565b61027f61027a366004612539565b6106a3565b005b61027f61028f36600461259f565b6106b9565b6102cd6102a23660046125b8565b73ffffffffffffffffffffffffffffffffffffffff9081166000908152600760205260409020541690565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101de565b61027f6103003660046125b8565b6106c6565b6103186103133660046125b8565b6106d0565b60405163ffffffff90911681526020016101de565b61020e61033b3660046125b8565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b61027f610705565b61027f610379366004612539565b610719565b61020e61038c3660046125b8565b61072e565b600a5473ffffffffffffffffffffffffffffffffffffffff166102cd565b61020e6103bd36600461259f565b610759565b6101d16107cf565b61020e6103d83660046125b8565b6107de565b6101fa6103eb366004612539565b6108a9565b6101fa6103fe366004612539565b61097a565b61027f6104113660046125e4565b610988565b61027f61042436600461263c565b610aff565b61020e6104373660046126a6565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b61048261047d3660046126d9565b610cbe565b60408051825163ffffffff1681526020928301517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1692810192909252016101de565b61027f6104cf3660046125b8565b610d64565b6060600380546104e390612719565b80601f016020809104026020016040519081016040528092919081815260200182805461050f90612719565b801561055c5780601f106105315761010080835404028352916020019161055c565b820191906000526020600020905b81548152906001019060200180831161053f57829003601f168201915b5050505050905090565b600033610574818585610e18565b5060019392505050565b60003361058c858285610fcb565b6105978585856110a2565b506001949350505050565b60006105ac61135b565b905090565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716845290915281205490919061057490829086906105f8908790612795565b610e18565b600043821061066d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f4552433230566f7465733a20626c6f636b206e6f7420796574206d696e65640060448201526064015b60405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8316600090815260086020526040902061069c908361148f565b9392505050565b6106ab611576565b6106b582826115f7565b5050565b6106c33382611601565b50565b6106c3338261160b565b73ffffffffffffffffffffffffffffffffffffffff81166000908152600860205260408120546106ff906116a9565b92915050565b61070d611576565b6107176000611743565b565b610724823383610fcb565b6106b58282611601565b73ffffffffffffffffffffffffffffffffffffffff81166000908152600560205260408120546106ff565b60004382106107c4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f4552433230566f7465733a20626c6f636b206e6f7420796574206d696e6564006044820152606401610664565b6106ff60098361148f565b6060600480546104e390612719565b73ffffffffffffffffffffffffffffffffffffffff811660009081526008602052604081205480156108815773ffffffffffffffffffffffffffffffffffffffff8316600090815260086020526040902061083a6001836127ad565b8154811061084a5761084a6127c4565b60009182526020909120015464010000000090047bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16610884565b60005b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff169392505050565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff871684529091528120549091908381101561096d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f0000000000000000000000000000000000000000000000000000006064820152608401610664565b6105978286868403610e18565b6000336105748185856110a2565b834211156109f2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f4552433230566f7465733a207369676e617475726520657870697265640000006044820152606401610664565b604080517fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf602082015273ffffffffffffffffffffffffffffffffffffffff8816918101919091526060810186905260808101859052600090610a7990610a719060a001604051602081830303815290604052805190602001206117ba565b858585611823565b9050610a848161184b565b8614610aec576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4552433230566f7465733a20696e76616c6964206e6f6e6365000000000000006044820152606401610664565b610af6818861160b565b50505050505050565b83421115610b69576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e650000006044820152606401610664565b60007f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9888888610b988c61184b565b60408051602081019690965273ffffffffffffffffffffffffffffffffffffffff94851690860152929091166060840152608083015260a082015260c0810186905260e0016040516020818303038152906040528051906020012090506000610c00826117ba565b90506000610c1082878787611823565b90508973ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610ca7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e617475726500006044820152606401610664565b610cb28a8a8a610e18565b50505050505050505050565b604080518082019091526000808252602082015273ffffffffffffffffffffffffffffffffffffffff83166000908152600860205260409020805463ffffffff8416908110610d0f57610d0f6127c4565b60009182526020918290206040805180820190915291015463ffffffff8116825264010000000090047bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16918101919091529392505050565b610d6c611576565b73ffffffffffffffffffffffffffffffffffffffff8116610e0f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610664565b6106c381611743565b73ffffffffffffffffffffffffffffffffffffffff8316610eba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610664565b73ffffffffffffffffffffffffffffffffffffffff8216610f5d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f73730000000000000000000000000000000000000000000000000000000000006064820152608401610664565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff8381166000908152600160209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461109c578181101561108f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610664565b61109c8484848403610e18565b50505050565b73ffffffffffffffffffffffffffffffffffffffff8316611145576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610664565b73ffffffffffffffffffffffffffffffffffffffff82166111e8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f65737300000000000000000000000000000000000000000000000000000000006064820152608401610664565b73ffffffffffffffffffffffffffffffffffffffff83166000908152602081905260409020548181101561129e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e636500000000000000000000000000000000000000000000000000006064820152608401610664565b73ffffffffffffffffffffffffffffffffffffffff8085166000908152602081905260408082208585039055918516815290812080548492906112e2908490612795565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161134891815260200190565b60405180910390a361109c848484611885565b60003073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000161480156113c157507f000000000000000000000000000000000000000000000000000000000000000046145b156113eb57507f000000000000000000000000000000000000000000000000000000000000000090565b50604080517f00000000000000000000000000000000000000000000000000000000000000006020808301919091527f0000000000000000000000000000000000000000000000000000000000000000828401527f000000000000000000000000000000000000000000000000000000000000000060608301524660808301523060a0808401919091528351808403909101815260c0909201909252805191012090565b8154600090815b818110156114f35760006114aa8284611890565b9050848682815481106114bf576114bf6127c4565b60009182526020909120015463ffffffff1611156114df578092506114ed565b6114ea816001612795565b91505b50611496565b811561154c57846115056001846127ad565b81548110611515576115156127c4565b60009182526020909120015464010000000090047bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1661154f565b60005b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1695945050505050565b600a5473ffffffffffffffffffffffffffffffffffffffff163314610717576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610664565b6106b582826118ab565b6106b58282611971565b73ffffffffffffffffffffffffffffffffffffffff8281166000818152600760208181526040808420805485845282862054949093528787167fffffffffffffffffffffffff00000000000000000000000000000000000000008416811790915590519190951694919391928592917f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9190a461109c828483611989565b600063ffffffff82111561173f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201527f32206269747300000000000000000000000000000000000000000000000000006064820152608401610664565b5090565b600a805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60006106ff6117c761135b565b836040517f19010000000000000000000000000000000000000000000000000000000000006020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b600080600061183487878787611b2e565b9150915061184181611c46565b5095945050505050565b73ffffffffffffffffffffffffffffffffffffffff811660009081526005602052604090208054600181018255905b50919050565b505050565b611880838383611e9a565b600061189f60028484186127f3565b61069c90848416612795565b6118b58282611ed9565b6002547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1015611963576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f4552433230566f7465733a20746f74616c20737570706c79207269736b73206f60448201527f766572666c6f77696e6720766f746573000000000000000000000000000000006064820152608401610664565b61109c60096120018361200d565b61197b82826121ef565b61109c60096123e38361200d565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156119c55750600081115b156118805773ffffffffffffffffffffffffffffffffffffffff831615611a7a5773ffffffffffffffffffffffffffffffffffffffff831660009081526008602052604081208190611a1a906123e38561200d565b915091508473ffffffffffffffffffffffffffffffffffffffff167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7248383604051611a6f929190918252602082015260400190565b60405180910390a250505b73ffffffffffffffffffffffffffffffffffffffff8216156118805773ffffffffffffffffffffffffffffffffffffffff821660009081526008602052604081208190611aca906120018561200d565b915091508373ffffffffffffffffffffffffffffffffffffffff167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7248383604051611b1f929190918252602082015260400190565b60405180910390a25050505050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115611b655750600090506003611c3d565b8460ff16601b14158015611b7d57508460ff16601c14155b15611b8e5750600090506004611c3d565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015611be2573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116611c3657600060019250925050611c3d565b9150600090505b94509492505050565b6000816004811115611c5a57611c5a61282e565b03611c625750565b6001816004811115611c7657611c7661282e565b03611cdd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610664565b6002816004811115611cf157611cf161282e565b03611d58576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610664565b6003816004811115611d6c57611d6c61282e565b03611df9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c60448201527f75650000000000000000000000000000000000000000000000000000000000006064820152608401610664565b6004816004811115611e0d57611e0d61282e565b036106c3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c60448201527f75650000000000000000000000000000000000000000000000000000000000006064820152608401610664565b73ffffffffffffffffffffffffffffffffffffffff83811660009081526007602052604080822054858416835291205461188092918216911683611989565b73ffffffffffffffffffffffffffffffffffffffff8216611f56576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610664565b8060026000828254611f689190612795565b909155505073ffffffffffffffffffffffffffffffffffffffff821660009081526020819052604081208054839290611fa2908490612795565b909155505060405181815273ffffffffffffffffffffffffffffffffffffffff8316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a36106b560008383611885565b600061069c8284612795565b82546000908190801561206d57856120266001836127ad565b81548110612036576120366127c4565b60009182526020909120015464010000000090047bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16612070565b60005b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16925061209e83858763ffffffff16565b91506000811180156120dc575043866120b86001846127ad565b815481106120c8576120c86127c4565b60009182526020909120015463ffffffff16145b15612166576120ea826123ef565b866120f66001846127ad565b81548110612106576121066127c4565b9060005260206000200160000160046101000a8154817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff02191690837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1602179055506121e6565b85604051806040016040528061217b436116a9565b63ffffffff16815260200161218f856123ef565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff90811690915282546001810184556000938452602093849020835194909301519091166401000000000263ffffffff909316929092179101555b50935093915050565b73ffffffffffffffffffffffffffffffffffffffff8216612292576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f73000000000000000000000000000000000000000000000000000000000000006064820152608401610664565b73ffffffffffffffffffffffffffffffffffffffff821660009081526020819052604090205481811015612348576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f63650000000000000000000000000000000000000000000000000000000000006064820152608401610664565b73ffffffffffffffffffffffffffffffffffffffff831660009081526020819052604081208383039055600280548492906123849084906127ad565b909155505060405182815260009073ffffffffffffffffffffffffffffffffffffffff8516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a361188083600084611885565b600061069c82846127ad565b60007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff82111561173f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203260448201527f32342062697473000000000000000000000000000000000000000000000000006064820152608401610664565b600060208083528351808285015260005b818110156124ca578581018301518582016040015282016124ae565b818111156124dc576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461253457600080fd5b919050565b6000806040838503121561254c57600080fd5b61255583612510565b946020939093013593505050565b60008060006060848603121561257857600080fd5b61258184612510565b925061258f60208501612510565b9150604084013590509250925092565b6000602082840312156125b157600080fd5b5035919050565b6000602082840312156125ca57600080fd5b61069c82612510565b803560ff8116811461253457600080fd5b60008060008060008060c087890312156125fd57600080fd5b61260687612510565b95506020870135945060408701359350612622606088016125d3565b92506080870135915060a087013590509295509295509295565b600080600080600080600060e0888a03121561265757600080fd5b61266088612510565b965061266e60208901612510565b9550604088013594506060880135935061268a608089016125d3565b925060a0880135915060c0880135905092959891949750929550565b600080604083850312156126b957600080fd5b6126c283612510565b91506126d060208401612510565b90509250929050565b600080604083850312156126ec57600080fd5b6126f583612510565b9150602083013563ffffffff8116811461270e57600080fd5b809150509250929050565b600181811c9082168061272d57607f821691505b60208210810361187a577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600082198211156127a8576127a8612766565b500190565b6000828210156127bf576127bf612766565b500390565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600082612829577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fdfea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"a\x01@`@R4\x80\x15b\0\0\x12W`\0\x80\xFD[P`@Q\x80`@\x01`@R\x80`\x08\x81R` \x01gOptimism`\xC0\x1B\x81RP\x80`@Q\x80`@\x01`@R\x80`\x01\x81R` \x01`1`\xF8\x1B\x81RP`@Q\x80`@\x01`@R\x80`\x08\x81R` \x01gOptimism`\xC0\x1B\x81RP`@Q\x80`@\x01`@R\x80`\x02\x81R` \x01a\x04\xF5`\xF4\x1B\x81RP\x81`\x03\x90\x81b\0\0\x9C\x91\x90b\0\x02GV[P`\x04b\0\0\xAB\x82\x82b\0\x02GV[PP\x82Q` \x93\x84\x01 \x82Q\x92\x84\x01\x92\x90\x92 `\xE0\x83\x90Ra\x01\0\x81\x90RF`\xA0\x81\x81R`@\x80Q\x7F\x8Bs\xC3\xC6\x9B\xB8\xFE=Q.\xCCL\xF7Y\xCCy#\x9F{\x17\x9B\x0F\xFA\xCA\xA9\xA7]R+9@\x0F\x81\x89\x01\x81\x90R\x81\x83\x01\x97\x90\x97R``\x81\x01\x94\x90\x94R`\x80\x80\x85\x01\x93\x90\x93R0\x84\x83\x01\x81\x90R\x81Q\x80\x86\x03\x90\x93\x01\x83R`\xC0\x94\x85\x01\x90\x91R\x81Q\x91\x90\x96\x01 \x90R\x92\x90\x92Ra\x01 RPb\0\x01J\x90P3b\0\x01PV[b\0\x03\x13V[`\n\x80T`\x01`\x01`\xA0\x1B\x03\x83\x81\x16`\x01`\x01`\xA0\x1B\x03\x19\x83\x16\x81\x17\x90\x93U`@Q\x91\x16\x91\x90\x82\x90\x7F\x8B\xE0\x07\x9CS\x16Y\x14\x13D\xCD\x1F\xD0\xA4\xF2\x84\x19I\x7F\x97\"\xA3\xDA\xAF\xE3\xB4\x18okdW\xE0\x90`\0\x90\xA3PPV[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[`\x01\x81\x81\x1C\x90\x82\x16\x80b\0\x01\xCDW`\x7F\x82\x16\x91P[` \x82\x10\x81\x03b\0\x01\xEEWcNH{q`\xE0\x1B`\0R`\"`\x04R`$`\0\xFD[P\x91\x90PV[`\x1F\x82\x11\x15b\0\x02BW`\0\x81\x81R` \x81 `\x1F\x85\x01`\x05\x1C\x81\x01` \x86\x10\x15b\0\x02\x1DWP\x80[`\x1F\x85\x01`\x05\x1C\x82\x01\x91P[\x81\x81\x10\x15b\0\x02>W\x82\x81U`\x01\x01b\0\x02)V[PPP[PPPV[\x81Q`\x01`\x01`@\x1B\x03\x81\x11\x15b\0\x02cWb\0\x02cb\0\x01\xA2V[b\0\x02{\x81b\0\x02t\x84Tb\0\x01\xB8V[\x84b\0\x01\xF4V[` \x80`\x1F\x83\x11`\x01\x81\x14b\0\x02\xB3W`\0\x84\x15b\0\x02\x9AWP\x85\x83\x01Q[`\0\x19`\x03\x86\x90\x1B\x1C\x19\x16`\x01\x85\x90\x1B\x17\x85Ub\0\x02>V[`\0\x85\x81R` \x81 `\x1F\x19\x86\x16\x91[\x82\x81\x10\x15b\0\x02\xE4W\x88\x86\x01Q\x82U\x94\x84\x01\x94`\x01\x90\x91\x01\x90\x84\x01b\0\x02\xC3V[P\x85\x82\x10\x15b\0\x03\x03W\x87\x85\x01Q`\0\x19`\x03\x88\x90\x1B`\xF8\x16\x1C\x19\x16\x81U[PPPPP`\x01\x90\x81\x1B\x01\x90UPV[`\x80Q`\xA0Q`\xC0Q`\xE0Qa\x01\0Qa\x01 Qa(jb\0\x03c`\09`\0a\x13\xF2\x01R`\0a\x14A\x01R`\0a\x14\x1C\x01R`\0a\x13u\x01R`\0a\x13\x9F\x01R`\0a\x13\xC9\x01Ra(j`\0\xF3\xFE`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`\x046\x10a\x01\xC4W`\x005`\xE0\x1C\x80cqP\x18\xA6\x11a\0\xF9W\x80c\xA4W\xC2\xD7\x11a\0\x97W\x80c\xD5\x05\xAC\xCF\x11a\0qW\x80c\xD5\x05\xAC\xCF\x14a\x04\x16W\x80c\xDDb\xED>\x14a\x04)W\x80c\xF1\x12~\xD8\x14a\x04oW\x80c\xF2\xFD\xE3\x8B\x14a\x04\xC1W`\0\x80\xFD[\x80c\xA4W\xC2\xD7\x14a\x03\xDDW\x80c\xA9\x05\x9C\xBB\x14a\x03\xF0W\x80c\xC3\xCD\xA5 \x14a\x04\x03W`\0\x80\xFD[\x80c\x8D\xA5\xCB[\x11a\0\xD3W\x80c\x8D\xA5\xCB[\x14a\x03\x91W\x80c\x8ES\x9E\x8C\x14a\x03\xAFW\x80c\x95\xD8\x9BA\x14a\x03\xC2W\x80c\x9A\xB2N\xB0\x14a\x03\xCAW`\0\x80\xFD[\x80cqP\x18\xA6\x14a\x03cW\x80cy\xCCg\x90\x14a\x03kW\x80c~\xCE\xBE\0\x14a\x03~W`\0\x80\xFD[\x80c:F\xB1\xA8\x11a\x01fW\x80cX|\xDE\x1E\x11a\x01@W\x80cX|\xDE\x1E\x14a\x02\x94W\x80c\\\x19\xA9\\\x14a\x02\xF2W\x80co\xCF\xFFE\x14a\x03\x05W\x80cp\xA0\x821\x14a\x03-W`\0\x80\xFD[\x80c:F\xB1\xA8\x14a\x02YW\x80c@\xC1\x0F\x19\x14a\x02lW\x80cB\x96lh\x14a\x02\x81W`\0\x80\xFD[\x80c#\xB8r\xDD\x11a\x01\xA2W\x80c#\xB8r\xDD\x14a\x02\x1CW\x80c1<\xE5g\x14a\x02/W\x80c6D\xE5\x15\x14a\x02>W\x80c9P\x93Q\x14a\x02FW`\0\x80\xFD[\x80c\x06\xFD\xDE\x03\x14a\x01\xC9W\x80c\t^\xA7\xB3\x14a\x01\xE7W\x80c\x18\x16\r\xDD\x14a\x02\nW[`\0\x80\xFD[a\x01\xD1a\x04\xD4V[`@Qa\x01\xDE\x91\x90a$\x9DV[`@Q\x80\x91\x03\x90\xF3[a\x01\xFAa\x01\xF56`\x04a%9V[a\x05fV[`@Q\x90\x15\x15\x81R` \x01a\x01\xDEV[`\x02T[`@Q\x90\x81R` \x01a\x01\xDEV[a\x01\xFAa\x02*6`\x04a%cV[a\x05~V[`@Q`\x12\x81R` \x01a\x01\xDEV[a\x02\x0Ea\x05\xA2V[a\x01\xFAa\x02T6`\x04a%9V[a\x05\xB1V[a\x02\x0Ea\x02g6`\x04a%9V[a\x05\xFDV[a\x02\x7Fa\x02z6`\x04a%9V[a\x06\xA3V[\0[a\x02\x7Fa\x02\x8F6`\x04a%\x9FV[a\x06\xB9V[a\x02\xCDa\x02\xA26`\x04a%\xB8V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x81\x16`\0\x90\x81R`\x07` R`@\x90 T\x16\x90V[`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01a\x01\xDEV[a\x02\x7Fa\x03\x006`\x04a%\xB8V[a\x06\xC6V[a\x03\x18a\x03\x136`\x04a%\xB8V[a\x06\xD0V[`@Qc\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01a\x01\xDEV[a\x02\x0Ea\x03;6`\x04a%\xB8V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\0\x90\x81R` \x81\x90R`@\x90 T\x90V[a\x02\x7Fa\x07\x05V[a\x02\x7Fa\x03y6`\x04a%9V[a\x07\x19V[a\x02\x0Ea\x03\x8C6`\x04a%\xB8V[a\x07.V[`\nTs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a\x02\xCDV[a\x02\x0Ea\x03\xBD6`\x04a%\x9FV[a\x07YV[a\x01\xD1a\x07\xCFV[a\x02\x0Ea\x03\xD86`\x04a%\xB8V[a\x07\xDEV[a\x01\xFAa\x03\xEB6`\x04a%9V[a\x08\xA9V[a\x01\xFAa\x03\xFE6`\x04a%9V[a\tzV[a\x02\x7Fa\x04\x116`\x04a%\xE4V[a\t\x88V[a\x02\x7Fa\x04$6`\x04a&=`\0\xFD[PP`@Q\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x01Q\x91PPs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16a\x1C6W`\0`\x01\x92P\x92PPa\x1C=V[\x91P`\0\x90P[\x94P\x94\x92PPPV[`\0\x81`\x04\x81\x11\x15a\x1CZWa\x1CZa(.V[\x03a\x1CbWPV[`\x01\x81`\x04\x81\x11\x15a\x1CvWa\x1Cva(.V[\x03a\x1C\xDDW`@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\x82\x01R`\x18`$\x82\x01R\x7FECDSA: invalid signature\0\0\0\0\0\0\0\0`D\x82\x01R`d\x01a\x06dV[`\x02\x81`\x04\x81\x11\x15a\x1C\xF1Wa\x1C\xF1a(.V[\x03a\x1DXW`@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\x82\x01R`\x1F`$\x82\x01R\x7FECDSA: invalid signature length\0`D\x82\x01R`d\x01a\x06dV[`\x03\x81`\x04\x81\x11\x15a\x1DlWa\x1Dla(.V[\x03a\x1D\xF9W`@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\x82\x01R`\"`$\x82\x01R\x7FECDSA: invalid signature 's' val`D\x82\x01R\x7Fue\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x06dV[`\x04\x81`\x04\x81\x11\x15a\x1E\rWa\x1E\ra(.V[\x03a\x06\xC3W`@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\x82\x01R`\"`$\x82\x01R\x7FECDSA: invalid signature 'v' val`D\x82\x01R\x7Fue\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x06dV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x81\x16`\0\x90\x81R`\x07` R`@\x80\x82 T\x85\x84\x16\x83R\x91 Ta\x18\x80\x92\x91\x82\x16\x91\x16\x83a\x19\x89V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16a\x1FVW`@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\x82\x01R`\x1F`$\x82\x01R\x7FERC20: mint to the zero address\0`D\x82\x01R`d\x01a\x06dV[\x80`\x02`\0\x82\x82Ta\x1Fh\x91\x90a'\x95V[\x90\x91UPPs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16`\0\x90\x81R` \x81\x90R`@\x81 \x80T\x83\x92\x90a\x1F\xA2\x90\x84\x90a'\x95V[\x90\x91UPP`@Q\x81\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x16\x90`\0\x90\x7F\xDD\xF2R\xAD\x1B\xE2\xC8\x9Bi\xC2\xB0h\xFC7\x8D\xAA\x95+\xA7\xF1c\xC4\xA1\x16(\xF5ZM\xF5#\xB3\xEF\x90` \x01`@Q\x80\x91\x03\x90\xA3a\x06\xB5`\0\x83\x83a\x18\x85V[`\0a\x06\x9C\x82\x84a'\x95V[\x82T`\0\x90\x81\x90\x80\x15a mW\x85a &`\x01\x83a'\xADV[\x81T\x81\x10a 6Wa 6a'\xC4V[`\0\x91\x82R` \x90\x91 \x01Td\x01\0\0\0\0\x90\x04{\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a pV[`\0[{\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x92Pa \x9E\x83\x85\x87c\xFF\xFF\xFF\xFF\x16V[\x91P`\0\x81\x11\x80\x15a \xDCWPC\x86a \xB8`\x01\x84a'\xADV[\x81T\x81\x10a \xC8Wa \xC8a'\xC4V[`\0\x91\x82R` \x90\x91 \x01Tc\xFF\xFF\xFF\xFF\x16\x14[\x15a!fWa \xEA\x82a#\xEFV[\x86a \xF6`\x01\x84a'\xADV[\x81T\x81\x10a!\x06Wa!\x06a'\xC4V[\x90`\0R` `\0 \x01`\0\x01`\x04a\x01\0\n\x81T\x81{\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x02\x19\x16\x90\x83{\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x02\x17\x90UPa!\xE6V[\x85`@Q\x80`@\x01`@R\x80a!{Ca\x16\xA9V[c\xFF\xFF\xFF\xFF\x16\x81R` \x01a!\x8F\x85a#\xEFV[{\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x81\x16\x90\x91R\x82T`\x01\x81\x01\x84U`\0\x93\x84R` \x93\x84\x90 \x83Q\x94\x90\x93\x01Q\x90\x91\x16d\x01\0\0\0\0\x02c\xFF\xFF\xFF\xFF\x90\x93\x16\x92\x90\x92\x17\x91\x01U[P\x93P\x93\x91PPV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16a\"\x92W`@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\x82\x01R`!`$\x82\x01R\x7FERC20: burn from the zero addres`D\x82\x01R\x7Fs\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x06dV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16`\0\x90\x81R` \x81\x90R`@\x90 T\x81\x81\x10\x15a#HW`@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\x82\x01R`\"`$\x82\x01R\x7FERC20: burn amount exceeds balan`D\x82\x01R\x7Fce\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x06dV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x16`\0\x90\x81R` \x81\x90R`@\x81 \x83\x83\x03\x90U`\x02\x80T\x84\x92\x90a#\x84\x90\x84\x90a'\xADV[\x90\x91UPP`@Q\x82\x81R`\0\x90s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x85\x16\x90\x7F\xDD\xF2R\xAD\x1B\xE2\xC8\x9Bi\xC2\xB0h\xFC7\x8D\xAA\x95+\xA7\xF1c\xC4\xA1\x16(\xF5ZM\xF5#\xB3\xEF\x90` \x01`@Q\x80\x91\x03\x90\xA3a\x18\x80\x83`\0\x84a\x18\x85V[`\0a\x06\x9C\x82\x84a'\xADV[`\0{\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x15a\x17?W`@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\x82\x01R`'`$\x82\x01R\x7FSafeCast: value doesn't fit in 2`D\x82\x01R\x7F24 bits\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`d\x82\x01R`\x84\x01a\x06dV[`\0` \x80\x83R\x83Q\x80\x82\x85\x01R`\0[\x81\x81\x10\x15a$\xCAW\x85\x81\x01\x83\x01Q\x85\x82\x01`@\x01R\x82\x01a$\xAEV[\x81\x81\x11\x15a$\xDCW`\0`@\x83\x87\x01\x01R[P`\x1F\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x92\x90\x92\x01`@\x01\x93\x92PPPV[\x805s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a%4W`\0\x80\xFD[\x91\x90PV[`\0\x80`@\x83\x85\x03\x12\x15a%LW`\0\x80\xFD[a%U\x83a%\x10V[\x94` \x93\x90\x93\x015\x93PPPV[`\0\x80`\0``\x84\x86\x03\x12\x15a%xW`\0\x80\xFD[a%\x81\x84a%\x10V[\x92Pa%\x8F` \x85\x01a%\x10V[\x91P`@\x84\x015\x90P\x92P\x92P\x92V[`\0` \x82\x84\x03\x12\x15a%\xB1W`\0\x80\xFD[P5\x91\x90PV[`\0` \x82\x84\x03\x12\x15a%\xCAW`\0\x80\xFD[a\x06\x9C\x82a%\x10V[\x805`\xFF\x81\x16\x81\x14a%4W`\0\x80\xFD[`\0\x80`\0\x80`\0\x80`\xC0\x87\x89\x03\x12\x15a%\xFDW`\0\x80\xFD[a&\x06\x87a%\x10V[\x95P` \x87\x015\x94P`@\x87\x015\x93Pa&\"``\x88\x01a%\xD3V[\x92P`\x80\x87\x015\x91P`\xA0\x87\x015\x90P\x92\x95P\x92\x95P\x92\x95V[`\0\x80`\0\x80`\0\x80`\0`\xE0\x88\x8A\x03\x12\x15a&WW`\0\x80\xFD[a&`\x88a%\x10V[\x96Pa&n` \x89\x01a%\x10V[\x95P`@\x88\x015\x94P``\x88\x015\x93Pa&\x8A`\x80\x89\x01a%\xD3V[\x92P`\xA0\x88\x015\x91P`\xC0\x88\x015\x90P\x92\x95\x98\x91\x94\x97P\x92\x95PV[`\0\x80`@\x83\x85\x03\x12\x15a&\xB9W`\0\x80\xFD[a&\xC2\x83a%\x10V[\x91Pa&\xD0` \x84\x01a%\x10V[\x90P\x92P\x92\x90PV[`\0\x80`@\x83\x85\x03\x12\x15a&\xECW`\0\x80\xFD[a&\xF5\x83a%\x10V[\x91P` \x83\x015c\xFF\xFF\xFF\xFF\x81\x16\x81\x14a'\x0EW`\0\x80\xFD[\x80\x91PP\x92P\x92\x90PV[`\x01\x81\x81\x1C\x90\x82\x16\x80a'-W`\x7F\x82\x16\x91P[` \x82\x10\x81\x03a\x18zW\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`\"`\x04R`$`\0\xFD[\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`\x11`\x04R`$`\0\xFD[`\0\x82\x19\x82\x11\x15a'\xA8Wa'\xA8a'fV[P\x01\x90V[`\0\x82\x82\x10\x15a'\xBFWa'\xBFa'fV[P\x03\x90V[\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`2`\x04R`$`\0\xFD[`\0\x82a()W\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`\x12`\x04R`$`\0\xFD[P\x04\x90V[\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`!`\x04R`$`\0\xFD\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x608060405234801561001057600080fd5b50600436106101c45760003560e01c8063715018a6116100f9578063a457c2d711610097578063d505accf11610071578063d505accf14610416578063dd62ed3e14610429578063f1127ed81461046f578063f2fde38b146104c157600080fd5b8063a457c2d7146103dd578063a9059cbb146103f0578063c3cda5201461040357600080fd5b80638da5cb5b116100d35780638da5cb5b146103915780638e539e8c146103af57806395d89b41146103c25780639ab24eb0146103ca57600080fd5b8063715018a61461036357806379cc67901461036b5780637ecebe001461037e57600080fd5b80633a46b1a811610166578063587cde1e11610140578063587cde1e146102945780635c19a95c146102f25780636fcfff451461030557806370a082311461032d57600080fd5b80633a46b1a81461025957806340c10f191461026c57806342966c681461028157600080fd5b806323b872dd116101a257806323b872dd1461021c578063313ce5671461022f5780633644e5151461023e578063395093511461024657600080fd5b806306fdde03146101c9578063095ea7b3146101e757806318160ddd1461020a575b600080fd5b6101d16104d4565b6040516101de919061249d565b60405180910390f35b6101fa6101f5366004612539565b610566565b60405190151581526020016101de565b6002545b6040519081526020016101de565b6101fa61022a366004612563565b61057e565b604051601281526020016101de565b61020e6105a2565b6101fa610254366004612539565b6105b1565b61020e610267366004612539565b6105fd565b61027f61027a366004612539565b6106a3565b005b61027f61028f36600461259f565b6106b9565b6102cd6102a23660046125b8565b73ffffffffffffffffffffffffffffffffffffffff9081166000908152600760205260409020541690565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101de565b61027f6103003660046125b8565b6106c6565b6103186103133660046125b8565b6106d0565b60405163ffffffff90911681526020016101de565b61020e61033b3660046125b8565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b61027f610705565b61027f610379366004612539565b610719565b61020e61038c3660046125b8565b61072e565b600a5473ffffffffffffffffffffffffffffffffffffffff166102cd565b61020e6103bd36600461259f565b610759565b6101d16107cf565b61020e6103d83660046125b8565b6107de565b6101fa6103eb366004612539565b6108a9565b6101fa6103fe366004612539565b61097a565b61027f6104113660046125e4565b610988565b61027f61042436600461263c565b610aff565b61020e6104373660046126a6565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b61048261047d3660046126d9565b610cbe565b60408051825163ffffffff1681526020928301517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1692810192909252016101de565b61027f6104cf3660046125b8565b610d64565b6060600380546104e390612719565b80601f016020809104026020016040519081016040528092919081815260200182805461050f90612719565b801561055c5780601f106105315761010080835404028352916020019161055c565b820191906000526020600020905b81548152906001019060200180831161053f57829003601f168201915b5050505050905090565b600033610574818585610e18565b5060019392505050565b60003361058c858285610fcb565b6105978585856110a2565b506001949350505050565b60006105ac61135b565b905090565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716845290915281205490919061057490829086906105f8908790612795565b610e18565b600043821061066d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f4552433230566f7465733a20626c6f636b206e6f7420796574206d696e65640060448201526064015b60405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8316600090815260086020526040902061069c908361148f565b9392505050565b6106ab611576565b6106b582826115f7565b5050565b6106c33382611601565b50565b6106c3338261160b565b73ffffffffffffffffffffffffffffffffffffffff81166000908152600860205260408120546106ff906116a9565b92915050565b61070d611576565b6107176000611743565b565b610724823383610fcb565b6106b58282611601565b73ffffffffffffffffffffffffffffffffffffffff81166000908152600560205260408120546106ff565b60004382106107c4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f4552433230566f7465733a20626c6f636b206e6f7420796574206d696e6564006044820152606401610664565b6106ff60098361148f565b6060600480546104e390612719565b73ffffffffffffffffffffffffffffffffffffffff811660009081526008602052604081205480156108815773ffffffffffffffffffffffffffffffffffffffff8316600090815260086020526040902061083a6001836127ad565b8154811061084a5761084a6127c4565b60009182526020909120015464010000000090047bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16610884565b60005b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff169392505050565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff871684529091528120549091908381101561096d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f0000000000000000000000000000000000000000000000000000006064820152608401610664565b6105978286868403610e18565b6000336105748185856110a2565b834211156109f2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f4552433230566f7465733a207369676e617475726520657870697265640000006044820152606401610664565b604080517fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf602082015273ffffffffffffffffffffffffffffffffffffffff8816918101919091526060810186905260808101859052600090610a7990610a719060a001604051602081830303815290604052805190602001206117ba565b858585611823565b9050610a848161184b565b8614610aec576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4552433230566f7465733a20696e76616c6964206e6f6e6365000000000000006044820152606401610664565b610af6818861160b565b50505050505050565b83421115610b69576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e650000006044820152606401610664565b60007f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9888888610b988c61184b565b60408051602081019690965273ffffffffffffffffffffffffffffffffffffffff94851690860152929091166060840152608083015260a082015260c0810186905260e0016040516020818303038152906040528051906020012090506000610c00826117ba565b90506000610c1082878787611823565b90508973ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610ca7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e617475726500006044820152606401610664565b610cb28a8a8a610e18565b50505050505050505050565b604080518082019091526000808252602082015273ffffffffffffffffffffffffffffffffffffffff83166000908152600860205260409020805463ffffffff8416908110610d0f57610d0f6127c4565b60009182526020918290206040805180820190915291015463ffffffff8116825264010000000090047bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16918101919091529392505050565b610d6c611576565b73ffffffffffffffffffffffffffffffffffffffff8116610e0f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610664565b6106c381611743565b73ffffffffffffffffffffffffffffffffffffffff8316610eba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610664565b73ffffffffffffffffffffffffffffffffffffffff8216610f5d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f73730000000000000000000000000000000000000000000000000000000000006064820152608401610664565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff8381166000908152600160209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461109c578181101561108f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610664565b61109c8484848403610e18565b50505050565b73ffffffffffffffffffffffffffffffffffffffff8316611145576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610664565b73ffffffffffffffffffffffffffffffffffffffff82166111e8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f65737300000000000000000000000000000000000000000000000000000000006064820152608401610664565b73ffffffffffffffffffffffffffffffffffffffff83166000908152602081905260409020548181101561129e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e636500000000000000000000000000000000000000000000000000006064820152608401610664565b73ffffffffffffffffffffffffffffffffffffffff8085166000908152602081905260408082208585039055918516815290812080548492906112e2908490612795565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161134891815260200190565b60405180910390a361109c848484611885565b60003073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000161480156113c157507f000000000000000000000000000000000000000000000000000000000000000046145b156113eb57507f000000000000000000000000000000000000000000000000000000000000000090565b50604080517f00000000000000000000000000000000000000000000000000000000000000006020808301919091527f0000000000000000000000000000000000000000000000000000000000000000828401527f000000000000000000000000000000000000000000000000000000000000000060608301524660808301523060a0808401919091528351808403909101815260c0909201909252805191012090565b8154600090815b818110156114f35760006114aa8284611890565b9050848682815481106114bf576114bf6127c4565b60009182526020909120015463ffffffff1611156114df578092506114ed565b6114ea816001612795565b91505b50611496565b811561154c57846115056001846127ad565b81548110611515576115156127c4565b60009182526020909120015464010000000090047bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1661154f565b60005b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1695945050505050565b600a5473ffffffffffffffffffffffffffffffffffffffff163314610717576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610664565b6106b582826118ab565b6106b58282611971565b73ffffffffffffffffffffffffffffffffffffffff8281166000818152600760208181526040808420805485845282862054949093528787167fffffffffffffffffffffffff00000000000000000000000000000000000000008416811790915590519190951694919391928592917f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9190a461109c828483611989565b600063ffffffff82111561173f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201527f32206269747300000000000000000000000000000000000000000000000000006064820152608401610664565b5090565b600a805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60006106ff6117c761135b565b836040517f19010000000000000000000000000000000000000000000000000000000000006020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b600080600061183487878787611b2e565b9150915061184181611c46565b5095945050505050565b73ffffffffffffffffffffffffffffffffffffffff811660009081526005602052604090208054600181018255905b50919050565b505050565b611880838383611e9a565b600061189f60028484186127f3565b61069c90848416612795565b6118b58282611ed9565b6002547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1015611963576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f4552433230566f7465733a20746f74616c20737570706c79207269736b73206f60448201527f766572666c6f77696e6720766f746573000000000000000000000000000000006064820152608401610664565b61109c60096120018361200d565b61197b82826121ef565b61109c60096123e38361200d565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156119c55750600081115b156118805773ffffffffffffffffffffffffffffffffffffffff831615611a7a5773ffffffffffffffffffffffffffffffffffffffff831660009081526008602052604081208190611a1a906123e38561200d565b915091508473ffffffffffffffffffffffffffffffffffffffff167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7248383604051611a6f929190918252602082015260400190565b60405180910390a250505b73ffffffffffffffffffffffffffffffffffffffff8216156118805773ffffffffffffffffffffffffffffffffffffffff821660009081526008602052604081208190611aca906120018561200d565b915091508373ffffffffffffffffffffffffffffffffffffffff167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7248383604051611b1f929190918252602082015260400190565b60405180910390a25050505050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115611b655750600090506003611c3d565b8460ff16601b14158015611b7d57508460ff16601c14155b15611b8e5750600090506004611c3d565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015611be2573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116611c3657600060019250925050611c3d565b9150600090505b94509492505050565b6000816004811115611c5a57611c5a61282e565b03611c625750565b6001816004811115611c7657611c7661282e565b03611cdd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610664565b6002816004811115611cf157611cf161282e565b03611d58576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610664565b6003816004811115611d6c57611d6c61282e565b03611df9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c60448201527f75650000000000000000000000000000000000000000000000000000000000006064820152608401610664565b6004816004811115611e0d57611e0d61282e565b036106c3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c60448201527f75650000000000000000000000000000000000000000000000000000000000006064820152608401610664565b73ffffffffffffffffffffffffffffffffffffffff83811660009081526007602052604080822054858416835291205461188092918216911683611989565b73ffffffffffffffffffffffffffffffffffffffff8216611f56576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610664565b8060026000828254611f689190612795565b909155505073ffffffffffffffffffffffffffffffffffffffff821660009081526020819052604081208054839290611fa2908490612795565b909155505060405181815273ffffffffffffffffffffffffffffffffffffffff8316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a36106b560008383611885565b600061069c8284612795565b82546000908190801561206d57856120266001836127ad565b81548110612036576120366127c4565b60009182526020909120015464010000000090047bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16612070565b60005b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16925061209e83858763ffffffff16565b91506000811180156120dc575043866120b86001846127ad565b815481106120c8576120c86127c4565b60009182526020909120015463ffffffff16145b15612166576120ea826123ef565b866120f66001846127ad565b81548110612106576121066127c4565b9060005260206000200160000160046101000a8154817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff02191690837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1602179055506121e6565b85604051806040016040528061217b436116a9565b63ffffffff16815260200161218f856123ef565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff90811690915282546001810184556000938452602093849020835194909301519091166401000000000263ffffffff909316929092179101555b50935093915050565b73ffffffffffffffffffffffffffffffffffffffff8216612292576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f73000000000000000000000000000000000000000000000000000000000000006064820152608401610664565b73ffffffffffffffffffffffffffffffffffffffff821660009081526020819052604090205481811015612348576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f63650000000000000000000000000000000000000000000000000000000000006064820152608401610664565b73ffffffffffffffffffffffffffffffffffffffff831660009081526020819052604081208383039055600280548492906123849084906127ad565b909155505060405182815260009073ffffffffffffffffffffffffffffffffffffffff8516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a361188083600084611885565b600061069c82846127ad565b60007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff82111561173f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203260448201527f32342062697473000000000000000000000000000000000000000000000000006064820152608401610664565b600060208083528351808285015260005b818110156124ca578581018301518582016040015282016124ae565b818111156124dc576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461253457600080fd5b919050565b6000806040838503121561254c57600080fd5b61255583612510565b946020939093013593505050565b60008060006060848603121561257857600080fd5b61258184612510565b925061258f60208501612510565b9150604084013590509250925092565b6000602082840312156125b157600080fd5b5035919050565b6000602082840312156125ca57600080fd5b61069c82612510565b803560ff8116811461253457600080fd5b60008060008060008060c087890312156125fd57600080fd5b61260687612510565b95506020870135945060408701359350612622606088016125d3565b92506080870135915060a087013590509295509295509295565b600080600080600080600060e0888a03121561265757600080fd5b61266088612510565b965061266e60208901612510565b9550604088013594506060880135935061268a608089016125d3565b925060a0880135915060c0880135905092959891949750929550565b600080604083850312156126b957600080fd5b6126c283612510565b91506126d060208401612510565b90509250929050565b600080604083850312156126ec57600080fd5b6126f583612510565b9150602083013563ffffffff8116811461270e57600080fd5b809150509250929050565b600181811c9082168061272d57607f821691505b60208210810361187a577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600082198211156127a8576127a8612766565b500190565b6000828210156127bf576127bf612766565b500390565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600082612829577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fdfea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`\x046\x10a\x01\xC4W`\x005`\xE0\x1C\x80cqP\x18\xA6\x11a\0\xF9W\x80c\xA4W\xC2\xD7\x11a\0\x97W\x80c\xD5\x05\xAC\xCF\x11a\0qW\x80c\xD5\x05\xAC\xCF\x14a\x04\x16W\x80c\xDDb\xED>\x14a\x04)W\x80c\xF1\x12~\xD8\x14a\x04oW\x80c\xF2\xFD\xE3\x8B\x14a\x04\xC1W`\0\x80\xFD[\x80c\xA4W\xC2\xD7\x14a\x03\xDDW\x80c\xA9\x05\x9C\xBB\x14a\x03\xF0W\x80c\xC3\xCD\xA5 \x14a\x04\x03W`\0\x80\xFD[\x80c\x8D\xA5\xCB[\x11a\0\xD3W\x80c\x8D\xA5\xCB[\x14a\x03\x91W\x80c\x8ES\x9E\x8C\x14a\x03\xAFW\x80c\x95\xD8\x9BA\x14a\x03\xC2W\x80c\x9A\xB2N\xB0\x14a\x03\xCAW`\0\x80\xFD[\x80cqP\x18\xA6\x14a\x03cW\x80cy\xCCg\x90\x14a\x03kW\x80c~\xCE\xBE\0\x14a\x03~W`\0\x80\xFD[\x80c:F\xB1\xA8\x11a\x01fW\x80cX|\xDE\x1E\x11a\x01@W\x80cX|\xDE\x1E\x14a\x02\x94W\x80c\\\x19\xA9\\\x14a\x02\xF2W\x80co\xCF\xFFE\x14a\x03\x05W\x80cp\xA0\x821\x14a\x03-W`\0\x80\xFD[\x80c:F\xB1\xA8\x14a\x02YW\x80c@\xC1\x0F\x19\x14a\x02lW\x80cB\x96lh\x14a\x02\x81W`\0\x80\xFD[\x80c#\xB8r\xDD\x11a\x01\xA2W\x80c#\xB8r\xDD\x14a\x02\x1CW\x80c1<\xE5g\x14a\x02/W\x80c6D\xE5\x15\x14a\x02>W\x80c9P\x93Q\x14a\x02FW`\0\x80\xFD[\x80c\x06\xFD\xDE\x03\x14a\x01\xC9W\x80c\t^\xA7\xB3\x14a\x01\xE7W\x80c\x18\x16\r\xDD\x14a\x02\nW[`\0\x80\xFD[a\x01\xD1a\x04\xD4V[`@Qa\x01\xDE\x91\x90a$\x9DV[`@Q\x80\x91\x03\x90\xF3[a\x01\xFAa\x01\xF56`\x04a%9V[a\x05fV[`@Q\x90\x15\x15\x81R` \x01a\x01\xDEV[`\x02T[`@Q\x90\x81R` \x01a\x01\xDEV[a\x01\xFAa\x02*6`\x04a%cV[a\x05~V[`@Q`\x12\x81R` \x01a\x01\xDEV[a\x02\x0Ea\x05\xA2V[a\x01\xFAa\x02T6`\x04a%9V[a\x05\xB1V[a\x02\x0Ea\x02g6`\x04a%9V[a\x05\xFDV[a\x02\x7Fa\x02z6`\x04a%9V[a\x06\xA3V[\0[a\x02\x7Fa\x02\x8F6`\x04a%\x9FV[a\x06\xB9V[a\x02\xCDa\x02\xA26`\x04a%\xB8V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x81\x16`\0\x90\x81R`\x07` R`@\x90 T\x16\x90V[`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01a\x01\xDEV[a\x02\x7Fa\x03\x006`\x04a%\xB8V[a\x06\xC6V[a\x03\x18a\x03\x136`\x04a%\xB8V[a\x06\xD0V[`@Qc\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01a\x01\xDEV[a\x02\x0Ea\x03;6`\x04a%\xB8V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\0\x90\x81R` \x81\x90R`@\x90 T\x90V[a\x02\x7Fa\x07\x05V[a\x02\x7Fa\x03y6`\x04a%9V[a\x07\x19V[a\x02\x0Ea\x03\x8C6`\x04a%\xB8V[a\x07.V[`\nTs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a\x02\xCDV[a\x02\x0Ea\x03\xBD6`\x04a%\x9FV[a\x07YV[a\x01\xD1a\x07\xCFV[a\x02\x0Ea\x03\xD86`\x04a%\xB8V[a\x07\xDEV[a\x01\xFAa\x03\xEB6`\x04a%9V[a\x08\xA9V[a\x01\xFAa\x03\xFE6`\x04a%9V[a\tzV[a\x02\x7Fa\x04\x116`\x04a%\xE4V[a\t\x88V[a\x02\x7Fa\x04$6`\x04a&=`\0\xFD[PP`@Q\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x01Q\x91PPs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16a\x1C6W`\0`\x01\x92P\x92PPa\x1C=V[\x91P`\0\x90P[\x94P\x94\x92PPPV[`\0\x81`\x04\x81\x11\x15a\x1CZWa\x1CZa(.V[\x03a\x1CbWPV[`\x01\x81`\x04\x81\x11\x15a\x1CvWa\x1Cva(.V[\x03a\x1C\xDDW`@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\x82\x01R`\x18`$\x82\x01R\x7FECDSA: invalid signature\0\0\0\0\0\0\0\0`D\x82\x01R`d\x01a\x06dV[`\x02\x81`\x04\x81\x11\x15a\x1C\xF1Wa\x1C\xF1a(.V[\x03a\x1DXW`@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\x82\x01R`\x1F`$\x82\x01R\x7FECDSA: invalid signature length\0`D\x82\x01R`d\x01a\x06dV[`\x03\x81`\x04\x81\x11\x15a\x1DlWa\x1Dla(.V[\x03a\x1D\xF9W`@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\x82\x01R`\"`$\x82\x01R\x7FECDSA: invalid signature 's' val`D\x82\x01R\x7Fue\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x06dV[`\x04\x81`\x04\x81\x11\x15a\x1E\rWa\x1E\ra(.V[\x03a\x06\xC3W`@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\x82\x01R`\"`$\x82\x01R\x7FECDSA: invalid signature 'v' val`D\x82\x01R\x7Fue\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x06dV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x81\x16`\0\x90\x81R`\x07` R`@\x80\x82 T\x85\x84\x16\x83R\x91 Ta\x18\x80\x92\x91\x82\x16\x91\x16\x83a\x19\x89V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16a\x1FVW`@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\x82\x01R`\x1F`$\x82\x01R\x7FERC20: mint to the zero address\0`D\x82\x01R`d\x01a\x06dV[\x80`\x02`\0\x82\x82Ta\x1Fh\x91\x90a'\x95V[\x90\x91UPPs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16`\0\x90\x81R` \x81\x90R`@\x81 \x80T\x83\x92\x90a\x1F\xA2\x90\x84\x90a'\x95V[\x90\x91UPP`@Q\x81\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x16\x90`\0\x90\x7F\xDD\xF2R\xAD\x1B\xE2\xC8\x9Bi\xC2\xB0h\xFC7\x8D\xAA\x95+\xA7\xF1c\xC4\xA1\x16(\xF5ZM\xF5#\xB3\xEF\x90` \x01`@Q\x80\x91\x03\x90\xA3a\x06\xB5`\0\x83\x83a\x18\x85V[`\0a\x06\x9C\x82\x84a'\x95V[\x82T`\0\x90\x81\x90\x80\x15a mW\x85a &`\x01\x83a'\xADV[\x81T\x81\x10a 6Wa 6a'\xC4V[`\0\x91\x82R` \x90\x91 \x01Td\x01\0\0\0\0\x90\x04{\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a pV[`\0[{\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x92Pa \x9E\x83\x85\x87c\xFF\xFF\xFF\xFF\x16V[\x91P`\0\x81\x11\x80\x15a \xDCWPC\x86a \xB8`\x01\x84a'\xADV[\x81T\x81\x10a \xC8Wa \xC8a'\xC4V[`\0\x91\x82R` \x90\x91 \x01Tc\xFF\xFF\xFF\xFF\x16\x14[\x15a!fWa \xEA\x82a#\xEFV[\x86a \xF6`\x01\x84a'\xADV[\x81T\x81\x10a!\x06Wa!\x06a'\xC4V[\x90`\0R` `\0 \x01`\0\x01`\x04a\x01\0\n\x81T\x81{\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x02\x19\x16\x90\x83{\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x02\x17\x90UPa!\xE6V[\x85`@Q\x80`@\x01`@R\x80a!{Ca\x16\xA9V[c\xFF\xFF\xFF\xFF\x16\x81R` \x01a!\x8F\x85a#\xEFV[{\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x81\x16\x90\x91R\x82T`\x01\x81\x01\x84U`\0\x93\x84R` \x93\x84\x90 \x83Q\x94\x90\x93\x01Q\x90\x91\x16d\x01\0\0\0\0\x02c\xFF\xFF\xFF\xFF\x90\x93\x16\x92\x90\x92\x17\x91\x01U[P\x93P\x93\x91PPV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16a\"\x92W`@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\x82\x01R`!`$\x82\x01R\x7FERC20: burn from the zero addres`D\x82\x01R\x7Fs\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x06dV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16`\0\x90\x81R` \x81\x90R`@\x90 T\x81\x81\x10\x15a#HW`@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\x82\x01R`\"`$\x82\x01R\x7FERC20: burn amount exceeds balan`D\x82\x01R\x7Fce\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x06dV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x16`\0\x90\x81R` \x81\x90R`@\x81 \x83\x83\x03\x90U`\x02\x80T\x84\x92\x90a#\x84\x90\x84\x90a'\xADV[\x90\x91UPP`@Q\x82\x81R`\0\x90s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x85\x16\x90\x7F\xDD\xF2R\xAD\x1B\xE2\xC8\x9Bi\xC2\xB0h\xFC7\x8D\xAA\x95+\xA7\xF1c\xC4\xA1\x16(\xF5ZM\xF5#\xB3\xEF\x90` \x01`@Q\x80\x91\x03\x90\xA3a\x18\x80\x83`\0\x84a\x18\x85V[`\0a\x06\x9C\x82\x84a'\xADV[`\0{\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x15a\x17?W`@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\x82\x01R`'`$\x82\x01R\x7FSafeCast: value doesn't fit in 2`D\x82\x01R\x7F24 bits\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`d\x82\x01R`\x84\x01a\x06dV[`\0` \x80\x83R\x83Q\x80\x82\x85\x01R`\0[\x81\x81\x10\x15a$\xCAW\x85\x81\x01\x83\x01Q\x85\x82\x01`@\x01R\x82\x01a$\xAEV[\x81\x81\x11\x15a$\xDCW`\0`@\x83\x87\x01\x01R[P`\x1F\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x92\x90\x92\x01`@\x01\x93\x92PPPV[\x805s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a%4W`\0\x80\xFD[\x91\x90PV[`\0\x80`@\x83\x85\x03\x12\x15a%LW`\0\x80\xFD[a%U\x83a%\x10V[\x94` \x93\x90\x93\x015\x93PPPV[`\0\x80`\0``\x84\x86\x03\x12\x15a%xW`\0\x80\xFD[a%\x81\x84a%\x10V[\x92Pa%\x8F` \x85\x01a%\x10V[\x91P`@\x84\x015\x90P\x92P\x92P\x92V[`\0` \x82\x84\x03\x12\x15a%\xB1W`\0\x80\xFD[P5\x91\x90PV[`\0` \x82\x84\x03\x12\x15a%\xCAW`\0\x80\xFD[a\x06\x9C\x82a%\x10V[\x805`\xFF\x81\x16\x81\x14a%4W`\0\x80\xFD[`\0\x80`\0\x80`\0\x80`\xC0\x87\x89\x03\x12\x15a%\xFDW`\0\x80\xFD[a&\x06\x87a%\x10V[\x95P` \x87\x015\x94P`@\x87\x015\x93Pa&\"``\x88\x01a%\xD3V[\x92P`\x80\x87\x015\x91P`\xA0\x87\x015\x90P\x92\x95P\x92\x95P\x92\x95V[`\0\x80`\0\x80`\0\x80`\0`\xE0\x88\x8A\x03\x12\x15a&WW`\0\x80\xFD[a&`\x88a%\x10V[\x96Pa&n` \x89\x01a%\x10V[\x95P`@\x88\x015\x94P``\x88\x015\x93Pa&\x8A`\x80\x89\x01a%\xD3V[\x92P`\xA0\x88\x015\x91P`\xC0\x88\x015\x90P\x92\x95\x98\x91\x94\x97P\x92\x95PV[`\0\x80`@\x83\x85\x03\x12\x15a&\xB9W`\0\x80\xFD[a&\xC2\x83a%\x10V[\x91Pa&\xD0` \x84\x01a%\x10V[\x90P\x92P\x92\x90PV[`\0\x80`@\x83\x85\x03\x12\x15a&\xECW`\0\x80\xFD[a&\xF5\x83a%\x10V[\x91P` \x83\x015c\xFF\xFF\xFF\xFF\x81\x16\x81\x14a'\x0EW`\0\x80\xFD[\x80\x91PP\x92P\x92\x90PV[`\x01\x81\x81\x1C\x90\x82\x16\x80a'-W`\x7F\x82\x16\x91P[` \x82\x10\x81\x03a\x18zW\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`\"`\x04R`$`\0\xFD[\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`\x11`\x04R`$`\0\xFD[`\0\x82\x19\x82\x11\x15a'\xA8Wa'\xA8a'fV[P\x01\x90V[`\0\x82\x82\x10\x15a'\xBFWa'\xBFa'fV[P\x03\x90V[\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`2`\x04R`$`\0\xFD[`\0\x82a()W\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`\x12`\x04R`$`\0\xFD[P\x04\x90V[\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`!`\x04R`$`\0\xFD\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `Approval(address,address,uint256)` and selector `0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925`. +```solidity +event Approval(address indexed owner, address indexed spender, uint256 value); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct Approval { + #[allow(missing_docs)] + pub owner: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub spender: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub value: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for Approval { + type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "Approval(address,address,uint256)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 140u8, 91u8, 225u8, 229u8, 235u8, 236u8, 125u8, 91u8, 209u8, 79u8, 113u8, + 66u8, 125u8, 30u8, 132u8, 243u8, 221u8, 3u8, 20u8, 192u8, 247u8, 178u8, + 41u8, 30u8, 91u8, 32u8, 10u8, 200u8, 199u8, 195u8, 185u8, 37u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + owner: topics.1, + spender: topics.2, + value: data.0, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.value), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.owner.clone(), self.spender.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.owner, + ); + out[2usize] = ::encode_topic( + &self.spender, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for Approval { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&Approval> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &Approval) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `DelegateChanged(address,address,address)` and selector `0x3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f`. +```solidity +event DelegateChanged(address indexed delegator, address indexed fromDelegate, address indexed toDelegate); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct DelegateChanged { + #[allow(missing_docs)] + pub delegator: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub fromDelegate: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub toDelegate: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for DelegateChanged { + type DataTuple<'a> = (); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "DelegateChanged(address,address,address)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 49u8, 52u8, 232u8, 162u8, 230u8, 217u8, 126u8, 146u8, 154u8, 126u8, 84u8, + 1u8, 30u8, 165u8, 72u8, 93u8, 125u8, 25u8, 109u8, 213u8, 240u8, 186u8, + 77u8, 78u8, 249u8, 88u8, 3u8, 232u8, 227u8, 252u8, 37u8, 127u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + delegator: topics.1, + fromDelegate: topics.2, + toDelegate: topics.3, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + () + } + #[inline] + fn topics(&self) -> ::RustType { + ( + Self::SIGNATURE_HASH.into(), + self.delegator.clone(), + self.fromDelegate.clone(), + self.toDelegate.clone(), + ) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.delegator, + ); + out[2usize] = ::encode_topic( + &self.fromDelegate, + ); + out[3usize] = ::encode_topic( + &self.toDelegate, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for DelegateChanged { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&DelegateChanged> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &DelegateChanged) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `DelegateVotesChanged(address,uint256,uint256)` and selector `0xdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724`. +```solidity +event DelegateVotesChanged(address indexed delegate, uint256 previousBalance, uint256 newBalance); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct DelegateVotesChanged { + #[allow(missing_docs)] + pub delegate: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub previousBalance: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub newBalance: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for DelegateVotesChanged { + type DataTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + ); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "DelegateVotesChanged(address,uint256,uint256)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 222u8, 194u8, 186u8, 205u8, 210u8, 240u8, 91u8, 89u8, 222u8, 52u8, 218u8, + 155u8, 82u8, 61u8, 255u8, 139u8, 228u8, 46u8, 94u8, 56u8, 232u8, 24u8, + 200u8, 47u8, 219u8, 11u8, 174u8, 119u8, 67u8, 135u8, 167u8, 36u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + delegate: topics.1, + previousBalance: data.0, + newBalance: data.1, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.previousBalance), + as alloy_sol_types::SolType>::tokenize(&self.newBalance), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.delegate.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.delegate, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for DelegateVotesChanged { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&DelegateVotesChanged> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &DelegateVotesChanged) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `OwnershipTransferred(address,address)` and selector `0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0`. +```solidity +event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct OwnershipTransferred { + #[allow(missing_docs)] + pub previousOwner: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub newOwner: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for OwnershipTransferred { + type DataTuple<'a> = (); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "OwnershipTransferred(address,address)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 139u8, 224u8, 7u8, 156u8, 83u8, 22u8, 89u8, 20u8, 19u8, 68u8, 205u8, + 31u8, 208u8, 164u8, 242u8, 132u8, 25u8, 73u8, 127u8, 151u8, 34u8, 163u8, + 218u8, 175u8, 227u8, 180u8, 24u8, 111u8, 107u8, 100u8, 87u8, 224u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + previousOwner: topics.1, + newOwner: topics.2, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + () + } + #[inline] + fn topics(&self) -> ::RustType { + ( + Self::SIGNATURE_HASH.into(), + self.previousOwner.clone(), + self.newOwner.clone(), + ) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.previousOwner, + ); + out[2usize] = ::encode_topic( + &self.newOwner, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for OwnershipTransferred { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&OwnershipTransferred> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &OwnershipTransferred) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `Transfer(address,address,uint256)` and selector `0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef`. +```solidity +event Transfer(address indexed from, address indexed to, uint256 value); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct Transfer { + #[allow(missing_docs)] + pub from: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub value: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for Transfer { + type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "Transfer(address,address,uint256)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 221u8, 242u8, 82u8, 173u8, 27u8, 226u8, 200u8, 155u8, 105u8, 194u8, + 176u8, 104u8, 252u8, 55u8, 141u8, 170u8, 149u8, 43u8, 167u8, 241u8, 99u8, + 196u8, 161u8, 22u8, 40u8, 245u8, 90u8, 77u8, 245u8, 35u8, 179u8, 239u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + from: topics.1, + to: topics.2, + value: data.0, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.value), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.from.clone(), self.to.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.from, + ); + out[2usize] = ::encode_topic( + &self.to, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for Transfer { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&Transfer> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &Transfer) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + /**Constructor`. +```solidity +constructor(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct constructorCall {} + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: constructorCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for constructorCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolConstructor for constructorCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `DOMAIN_SEPARATOR()` and selector `0x3644e515`. +```solidity +function DOMAIN_SEPARATOR() external view returns (bytes32); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct DOMAIN_SEPARATORCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`DOMAIN_SEPARATOR()`](DOMAIN_SEPARATORCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct DOMAIN_SEPARATORReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: DOMAIN_SEPARATORCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for DOMAIN_SEPARATORCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: DOMAIN_SEPARATORReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for DOMAIN_SEPARATORReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for DOMAIN_SEPARATORCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::FixedBytes<32>; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "DOMAIN_SEPARATOR()"; + const SELECTOR: [u8; 4] = [54u8, 68u8, 229u8, 21u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: DOMAIN_SEPARATORReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: DOMAIN_SEPARATORReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `allowance(address,address)` and selector `0xdd62ed3e`. +```solidity +function allowance(address owner, address spender) external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct allowanceCall { + #[allow(missing_docs)] + pub owner: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub spender: alloy::sol_types::private::Address, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`allowance(address,address)`](allowanceCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct allowanceReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: allowanceCall) -> Self { + (value.owner, value.spender) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for allowanceCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + owner: tuple.0, + spender: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: allowanceReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for allowanceReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for allowanceCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "allowance(address,address)"; + const SELECTOR: [u8; 4] = [221u8, 98u8, 237u8, 62u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.owner, + ), + ::tokenize( + &self.spender, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: allowanceReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: allowanceReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `approve(address,uint256)` and selector `0x095ea7b3`. +```solidity +function approve(address spender, uint256 amount) external returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct approveCall { + #[allow(missing_docs)] + pub spender: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub amount: alloy::sol_types::private::primitives::aliases::U256, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`approve(address,uint256)`](approveCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct approveReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: approveCall) -> Self { + (value.spender, value.amount) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for approveCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + spender: tuple.0, + amount: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: approveReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for approveReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for approveCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "approve(address,uint256)"; + const SELECTOR: [u8; 4] = [9u8, 94u8, 167u8, 179u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.spender, + ), + as alloy_sol_types::SolType>::tokenize(&self.amount), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: approveReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: approveReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `balanceOf(address)` and selector `0x70a08231`. +```solidity +function balanceOf(address account) external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct balanceOfCall { + #[allow(missing_docs)] + pub account: alloy::sol_types::private::Address, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`balanceOf(address)`](balanceOfCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct balanceOfReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: balanceOfCall) -> Self { + (value.account,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for balanceOfCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { account: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: balanceOfReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for balanceOfReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for balanceOfCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "balanceOf(address)"; + const SELECTOR: [u8; 4] = [112u8, 160u8, 130u8, 49u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.account, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: balanceOfReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: balanceOfReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `burn(uint256)` and selector `0x42966c68`. +```solidity +function burn(uint256 amount) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct burnCall { + #[allow(missing_docs)] + pub amount: alloy::sol_types::private::primitives::aliases::U256, + } + ///Container type for the return parameters of the [`burn(uint256)`](burnCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct burnReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: burnCall) -> Self { + (value.amount,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for burnCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { amount: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: burnReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for burnReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl burnReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for burnCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = burnReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "burn(uint256)"; + const SELECTOR: [u8; 4] = [66u8, 150u8, 108u8, 104u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.amount), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + burnReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `burnFrom(address,uint256)` and selector `0x79cc6790`. +```solidity +function burnFrom(address account, uint256 amount) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct burnFromCall { + #[allow(missing_docs)] + pub account: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub amount: alloy::sol_types::private::primitives::aliases::U256, + } + ///Container type for the return parameters of the [`burnFrom(address,uint256)`](burnFromCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct burnFromReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: burnFromCall) -> Self { + (value.account, value.amount) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for burnFromCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + account: tuple.0, + amount: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: burnFromReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for burnFromReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl burnFromReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for burnFromCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = burnFromReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "burnFrom(address,uint256)"; + const SELECTOR: [u8; 4] = [121u8, 204u8, 103u8, 144u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.account, + ), + as alloy_sol_types::SolType>::tokenize(&self.amount), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + burnFromReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `checkpoints(address,uint32)` and selector `0xf1127ed8`. +```solidity +function checkpoints(address account, uint32 pos) external view returns (ERC20Votes.Checkpoint memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct checkpointsCall { + #[allow(missing_docs)] + pub account: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub pos: u32, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`checkpoints(address,uint32)`](checkpointsCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct checkpointsReturn { + #[allow(missing_docs)] + pub _0: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<32>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address, u32); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: checkpointsCall) -> Self { + (value.account, value.pos) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for checkpointsCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + account: tuple.0, + pos: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (ERC20Votes::Checkpoint,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: checkpointsReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for checkpointsReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for checkpointsCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<32>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (ERC20Votes::Checkpoint,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "checkpoints(address,uint32)"; + const SELECTOR: [u8; 4] = [241u8, 18u8, 126u8, 216u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.account, + ), + as alloy_sol_types::SolType>::tokenize(&self.pos), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: checkpointsReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: checkpointsReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `decimals()` and selector `0x313ce567`. +```solidity +function decimals() external view returns (uint8); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct decimalsCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`decimals()`](decimalsCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct decimalsReturn { + #[allow(missing_docs)] + pub _0: u8, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: decimalsCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for decimalsCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<8>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u8,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: decimalsReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for decimalsReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for decimalsCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u8; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<8>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "decimals()"; + const SELECTOR: [u8; 4] = [49u8, 60u8, 229u8, 103u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: decimalsReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: decimalsReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `decreaseAllowance(address,uint256)` and selector `0xa457c2d7`. +```solidity +function decreaseAllowance(address spender, uint256 subtractedValue) external returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct decreaseAllowanceCall { + #[allow(missing_docs)] + pub spender: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub subtractedValue: alloy::sol_types::private::primitives::aliases::U256, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`decreaseAllowance(address,uint256)`](decreaseAllowanceCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct decreaseAllowanceReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: decreaseAllowanceCall) -> Self { + (value.spender, value.subtractedValue) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for decreaseAllowanceCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + spender: tuple.0, + subtractedValue: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: decreaseAllowanceReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for decreaseAllowanceReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for decreaseAllowanceCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "decreaseAllowance(address,uint256)"; + const SELECTOR: [u8; 4] = [164u8, 87u8, 194u8, 215u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.spender, + ), + as alloy_sol_types::SolType>::tokenize(&self.subtractedValue), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: decreaseAllowanceReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: decreaseAllowanceReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `delegate(address)` and selector `0x5c19a95c`. +```solidity +function delegate(address delegatee) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct delegateCall { + #[allow(missing_docs)] + pub delegatee: alloy::sol_types::private::Address, + } + ///Container type for the return parameters of the [`delegate(address)`](delegateCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct delegateReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: delegateCall) -> Self { + (value.delegatee,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for delegateCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { delegatee: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: delegateReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for delegateReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl delegateReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for delegateCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = delegateReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "delegate(address)"; + const SELECTOR: [u8; 4] = [92u8, 25u8, 169u8, 92u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.delegatee, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + delegateReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `delegateBySig(address,uint256,uint256,uint8,bytes32,bytes32)` and selector `0xc3cda520`. +```solidity +function delegateBySig(address delegatee, uint256 nonce, uint256 expiry, uint8 v, bytes32 r, bytes32 s) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct delegateBySigCall { + #[allow(missing_docs)] + pub delegatee: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub nonce: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub expiry: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub v: u8, + #[allow(missing_docs)] + pub r: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub s: alloy::sol_types::private::FixedBytes<32>, + } + ///Container type for the return parameters of the [`delegateBySig(address,uint256,uint256,uint8,bytes32,bytes32)`](delegateBySigCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct delegateBySigReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<8>, + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::primitives::aliases::U256, + u8, + alloy::sol_types::private::FixedBytes<32>, + alloy::sol_types::private::FixedBytes<32>, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: delegateBySigCall) -> Self { + ( + value.delegatee, + value.nonce, + value.expiry, + value.v, + value.r, + value.s, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for delegateBySigCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + delegatee: tuple.0, + nonce: tuple.1, + expiry: tuple.2, + v: tuple.3, + r: tuple.4, + s: tuple.5, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: delegateBySigReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for delegateBySigReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl delegateBySigReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for delegateBySigCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<8>, + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = delegateBySigReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "delegateBySig(address,uint256,uint256,uint8,bytes32,bytes32)"; + const SELECTOR: [u8; 4] = [195u8, 205u8, 165u8, 32u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.delegatee, + ), + as alloy_sol_types::SolType>::tokenize(&self.nonce), + as alloy_sol_types::SolType>::tokenize(&self.expiry), + as alloy_sol_types::SolType>::tokenize(&self.v), + as alloy_sol_types::SolType>::tokenize(&self.r), + as alloy_sol_types::SolType>::tokenize(&self.s), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + delegateBySigReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `delegates(address)` and selector `0x587cde1e`. +```solidity +function delegates(address account) external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct delegatesCall { + #[allow(missing_docs)] + pub account: alloy::sol_types::private::Address, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`delegates(address)`](delegatesCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct delegatesReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: delegatesCall) -> Self { + (value.account,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for delegatesCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { account: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: delegatesReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for delegatesReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for delegatesCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "delegates(address)"; + const SELECTOR: [u8; 4] = [88u8, 124u8, 222u8, 30u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.account, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: delegatesReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: delegatesReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `getPastTotalSupply(uint256)` and selector `0x8e539e8c`. +```solidity +function getPastTotalSupply(uint256 blockNumber) external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getPastTotalSupplyCall { + #[allow(missing_docs)] + pub blockNumber: alloy::sol_types::private::primitives::aliases::U256, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`getPastTotalSupply(uint256)`](getPastTotalSupplyCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getPastTotalSupplyReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: getPastTotalSupplyCall) -> Self { + (value.blockNumber,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for getPastTotalSupplyCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { blockNumber: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: getPastTotalSupplyReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for getPastTotalSupplyReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for getPastTotalSupplyCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "getPastTotalSupply(uint256)"; + const SELECTOR: [u8; 4] = [142u8, 83u8, 158u8, 140u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.blockNumber), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: getPastTotalSupplyReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: getPastTotalSupplyReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `getPastVotes(address,uint256)` and selector `0x3a46b1a8`. +```solidity +function getPastVotes(address account, uint256 blockNumber) external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getPastVotesCall { + #[allow(missing_docs)] + pub account: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub blockNumber: alloy::sol_types::private::primitives::aliases::U256, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`getPastVotes(address,uint256)`](getPastVotesCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getPastVotesReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: getPastVotesCall) -> Self { + (value.account, value.blockNumber) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for getPastVotesCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + account: tuple.0, + blockNumber: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: getPastVotesReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for getPastVotesReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for getPastVotesCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "getPastVotes(address,uint256)"; + const SELECTOR: [u8; 4] = [58u8, 70u8, 177u8, 168u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.account, + ), + as alloy_sol_types::SolType>::tokenize(&self.blockNumber), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: getPastVotesReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: getPastVotesReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `getVotes(address)` and selector `0x9ab24eb0`. +```solidity +function getVotes(address account) external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getVotesCall { + #[allow(missing_docs)] + pub account: alloy::sol_types::private::Address, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`getVotes(address)`](getVotesCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getVotesReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: getVotesCall) -> Self { + (value.account,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for getVotesCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { account: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: getVotesReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for getVotesReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for getVotesCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "getVotes(address)"; + const SELECTOR: [u8; 4] = [154u8, 178u8, 78u8, 176u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.account, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: getVotesReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: getVotesReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `increaseAllowance(address,uint256)` and selector `0x39509351`. +```solidity +function increaseAllowance(address spender, uint256 addedValue) external returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct increaseAllowanceCall { + #[allow(missing_docs)] + pub spender: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub addedValue: alloy::sol_types::private::primitives::aliases::U256, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`increaseAllowance(address,uint256)`](increaseAllowanceCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct increaseAllowanceReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: increaseAllowanceCall) -> Self { + (value.spender, value.addedValue) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for increaseAllowanceCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + spender: tuple.0, + addedValue: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: increaseAllowanceReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for increaseAllowanceReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for increaseAllowanceCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "increaseAllowance(address,uint256)"; + const SELECTOR: [u8; 4] = [57u8, 80u8, 147u8, 81u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.spender, + ), + as alloy_sol_types::SolType>::tokenize(&self.addedValue), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: increaseAllowanceReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: increaseAllowanceReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `mint(address,uint256)` and selector `0x40c10f19`. +```solidity +function mint(address _account, uint256 _amount) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct mintCall { + #[allow(missing_docs)] + pub _account: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _amount: alloy::sol_types::private::primitives::aliases::U256, + } + ///Container type for the return parameters of the [`mint(address,uint256)`](mintCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct mintReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: mintCall) -> Self { + (value._account, value._amount) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for mintCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _account: tuple.0, + _amount: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: mintReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for mintReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl mintReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for mintCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = mintReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "mint(address,uint256)"; + const SELECTOR: [u8; 4] = [64u8, 193u8, 15u8, 25u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._account, + ), + as alloy_sol_types::SolType>::tokenize(&self._amount), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + mintReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `name()` and selector `0x06fdde03`. +```solidity +function name() external view returns (string memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct nameCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`name()`](nameCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct nameReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: nameCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for nameCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: nameReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for nameReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for nameCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::String; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "name()"; + const SELECTOR: [u8; 4] = [6u8, 253u8, 222u8, 3u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: nameReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: nameReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `nonces(address)` and selector `0x7ecebe00`. +```solidity +function nonces(address owner) external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct noncesCall { + #[allow(missing_docs)] + pub owner: alloy::sol_types::private::Address, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`nonces(address)`](noncesCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct noncesReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: noncesCall) -> Self { + (value.owner,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for noncesCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { owner: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: noncesReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for noncesReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for noncesCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "nonces(address)"; + const SELECTOR: [u8; 4] = [126u8, 206u8, 190u8, 0u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.owner, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: noncesReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: noncesReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `numCheckpoints(address)` and selector `0x6fcfff45`. +```solidity +function numCheckpoints(address account) external view returns (uint32); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct numCheckpointsCall { + #[allow(missing_docs)] + pub account: alloy::sol_types::private::Address, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`numCheckpoints(address)`](numCheckpointsCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct numCheckpointsReturn { + #[allow(missing_docs)] + pub _0: u32, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: numCheckpointsCall) -> Self { + (value.account,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for numCheckpointsCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { account: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u32,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: numCheckpointsReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for numCheckpointsReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for numCheckpointsCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u32; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<32>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "numCheckpoints(address)"; + const SELECTOR: [u8; 4] = [111u8, 207u8, 255u8, 69u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.account, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: numCheckpointsReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: numCheckpointsReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `owner()` and selector `0x8da5cb5b`. +```solidity +function owner() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ownerCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`owner()`](ownerCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ownerReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ownerCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ownerCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ownerReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ownerReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for ownerCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "owner()"; + const SELECTOR: [u8; 4] = [141u8, 165u8, 203u8, 91u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: ownerReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: ownerReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `permit(address,address,uint256,uint256,uint8,bytes32,bytes32)` and selector `0xd505accf`. +```solidity +function permit(address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct permitCall { + #[allow(missing_docs)] + pub owner: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub spender: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub value: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub deadline: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub v: u8, + #[allow(missing_docs)] + pub r: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub s: alloy::sol_types::private::FixedBytes<32>, + } + ///Container type for the return parameters of the [`permit(address,address,uint256,uint256,uint8,bytes32,bytes32)`](permitCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct permitReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<8>, + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::primitives::aliases::U256, + u8, + alloy::sol_types::private::FixedBytes<32>, + alloy::sol_types::private::FixedBytes<32>, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: permitCall) -> Self { + ( + value.owner, + value.spender, + value.value, + value.deadline, + value.v, + value.r, + value.s, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for permitCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + owner: tuple.0, + spender: tuple.1, + value: tuple.2, + deadline: tuple.3, + v: tuple.4, + r: tuple.5, + s: tuple.6, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: permitReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for permitReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl permitReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for permitCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<8>, + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = permitReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "permit(address,address,uint256,uint256,uint8,bytes32,bytes32)"; + const SELECTOR: [u8; 4] = [213u8, 5u8, 172u8, 207u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.owner, + ), + ::tokenize( + &self.spender, + ), + as alloy_sol_types::SolType>::tokenize(&self.value), + as alloy_sol_types::SolType>::tokenize(&self.deadline), + as alloy_sol_types::SolType>::tokenize(&self.v), + as alloy_sol_types::SolType>::tokenize(&self.r), + as alloy_sol_types::SolType>::tokenize(&self.s), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + permitReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `renounceOwnership()` and selector `0x715018a6`. +```solidity +function renounceOwnership() external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct renounceOwnershipCall; + ///Container type for the return parameters of the [`renounceOwnership()`](renounceOwnershipCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct renounceOwnershipReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: renounceOwnershipCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for renounceOwnershipCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: renounceOwnershipReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for renounceOwnershipReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl renounceOwnershipReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for renounceOwnershipCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = renounceOwnershipReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "renounceOwnership()"; + const SELECTOR: [u8; 4] = [113u8, 80u8, 24u8, 166u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + renounceOwnershipReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `symbol()` and selector `0x95d89b41`. +```solidity +function symbol() external view returns (string memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct symbolCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`symbol()`](symbolCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct symbolReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: symbolCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for symbolCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: symbolReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for symbolReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for symbolCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::String; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "symbol()"; + const SELECTOR: [u8; 4] = [149u8, 216u8, 155u8, 65u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: symbolReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: symbolReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `totalSupply()` and selector `0x18160ddd`. +```solidity +function totalSupply() external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct totalSupplyCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`totalSupply()`](totalSupplyCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct totalSupplyReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: totalSupplyCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for totalSupplyCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: totalSupplyReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for totalSupplyReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for totalSupplyCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "totalSupply()"; + const SELECTOR: [u8; 4] = [24u8, 22u8, 13u8, 221u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: totalSupplyReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: totalSupplyReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `transfer(address,uint256)` and selector `0xa9059cbb`. +```solidity +function transfer(address to, uint256 amount) external returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct transferCall { + #[allow(missing_docs)] + pub to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub amount: alloy::sol_types::private::primitives::aliases::U256, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`transfer(address,uint256)`](transferCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct transferReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: transferCall) -> Self { + (value.to, value.amount) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for transferCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + to: tuple.0, + amount: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: transferReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for transferReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for transferCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "transfer(address,uint256)"; + const SELECTOR: [u8; 4] = [169u8, 5u8, 156u8, 187u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.to, + ), + as alloy_sol_types::SolType>::tokenize(&self.amount), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: transferReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: transferReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd`. +```solidity +function transferFrom(address from, address to, uint256 amount) external returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct transferFromCall { + #[allow(missing_docs)] + pub from: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub amount: alloy::sol_types::private::primitives::aliases::U256, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`transferFrom(address,address,uint256)`](transferFromCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct transferFromReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: transferFromCall) -> Self { + (value.from, value.to, value.amount) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for transferFromCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + from: tuple.0, + to: tuple.1, + amount: tuple.2, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: transferFromReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for transferFromReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for transferFromCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "transferFrom(address,address,uint256)"; + const SELECTOR: [u8; 4] = [35u8, 184u8, 114u8, 221u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.from, + ), + ::tokenize( + &self.to, + ), + as alloy_sol_types::SolType>::tokenize(&self.amount), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: transferFromReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: transferFromReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `transferOwnership(address)` and selector `0xf2fde38b`. +```solidity +function transferOwnership(address newOwner) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct transferOwnershipCall { + #[allow(missing_docs)] + pub newOwner: alloy::sol_types::private::Address, + } + ///Container type for the return parameters of the [`transferOwnership(address)`](transferOwnershipCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct transferOwnershipReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: transferOwnershipCall) -> Self { + (value.newOwner,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for transferOwnershipCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { newOwner: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: transferOwnershipReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for transferOwnershipReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl transferOwnershipReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for transferOwnershipCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = transferOwnershipReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "transferOwnership(address)"; + const SELECTOR: [u8; 4] = [242u8, 253u8, 227u8, 139u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.newOwner, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + transferOwnershipReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + ///Container for all the [`GovernanceToken`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum GovernanceTokenCalls { + #[allow(missing_docs)] + DOMAIN_SEPARATOR(DOMAIN_SEPARATORCall), + #[allow(missing_docs)] + allowance(allowanceCall), + #[allow(missing_docs)] + approve(approveCall), + #[allow(missing_docs)] + balanceOf(balanceOfCall), + #[allow(missing_docs)] + burn(burnCall), + #[allow(missing_docs)] + burnFrom(burnFromCall), + #[allow(missing_docs)] + checkpoints(checkpointsCall), + #[allow(missing_docs)] + decimals(decimalsCall), + #[allow(missing_docs)] + decreaseAllowance(decreaseAllowanceCall), + #[allow(missing_docs)] + delegate(delegateCall), + #[allow(missing_docs)] + delegateBySig(delegateBySigCall), + #[allow(missing_docs)] + delegates(delegatesCall), + #[allow(missing_docs)] + getPastTotalSupply(getPastTotalSupplyCall), + #[allow(missing_docs)] + getPastVotes(getPastVotesCall), + #[allow(missing_docs)] + getVotes(getVotesCall), + #[allow(missing_docs)] + increaseAllowance(increaseAllowanceCall), + #[allow(missing_docs)] + mint(mintCall), + #[allow(missing_docs)] + name(nameCall), + #[allow(missing_docs)] + nonces(noncesCall), + #[allow(missing_docs)] + numCheckpoints(numCheckpointsCall), + #[allow(missing_docs)] + owner(ownerCall), + #[allow(missing_docs)] + permit(permitCall), + #[allow(missing_docs)] + renounceOwnership(renounceOwnershipCall), + #[allow(missing_docs)] + symbol(symbolCall), + #[allow(missing_docs)] + totalSupply(totalSupplyCall), + #[allow(missing_docs)] + transfer(transferCall), + #[allow(missing_docs)] + transferFrom(transferFromCall), + #[allow(missing_docs)] + transferOwnership(transferOwnershipCall), + } + impl GovernanceTokenCalls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [6u8, 253u8, 222u8, 3u8], + [9u8, 94u8, 167u8, 179u8], + [24u8, 22u8, 13u8, 221u8], + [35u8, 184u8, 114u8, 221u8], + [49u8, 60u8, 229u8, 103u8], + [54u8, 68u8, 229u8, 21u8], + [57u8, 80u8, 147u8, 81u8], + [58u8, 70u8, 177u8, 168u8], + [64u8, 193u8, 15u8, 25u8], + [66u8, 150u8, 108u8, 104u8], + [88u8, 124u8, 222u8, 30u8], + [92u8, 25u8, 169u8, 92u8], + [111u8, 207u8, 255u8, 69u8], + [112u8, 160u8, 130u8, 49u8], + [113u8, 80u8, 24u8, 166u8], + [121u8, 204u8, 103u8, 144u8], + [126u8, 206u8, 190u8, 0u8], + [141u8, 165u8, 203u8, 91u8], + [142u8, 83u8, 158u8, 140u8], + [149u8, 216u8, 155u8, 65u8], + [154u8, 178u8, 78u8, 176u8], + [164u8, 87u8, 194u8, 215u8], + [169u8, 5u8, 156u8, 187u8], + [195u8, 205u8, 165u8, 32u8], + [213u8, 5u8, 172u8, 207u8], + [221u8, 98u8, 237u8, 62u8], + [241u8, 18u8, 126u8, 216u8], + [242u8, 253u8, 227u8, 139u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(name), + ::core::stringify!(approve), + ::core::stringify!(totalSupply), + ::core::stringify!(transferFrom), + ::core::stringify!(decimals), + ::core::stringify!(DOMAIN_SEPARATOR), + ::core::stringify!(increaseAllowance), + ::core::stringify!(getPastVotes), + ::core::stringify!(mint), + ::core::stringify!(burn), + ::core::stringify!(delegates), + ::core::stringify!(delegate), + ::core::stringify!(numCheckpoints), + ::core::stringify!(balanceOf), + ::core::stringify!(renounceOwnership), + ::core::stringify!(burnFrom), + ::core::stringify!(nonces), + ::core::stringify!(owner), + ::core::stringify!(getPastTotalSupply), + ::core::stringify!(symbol), + ::core::stringify!(getVotes), + ::core::stringify!(decreaseAllowance), + ::core::stringify!(transfer), + ::core::stringify!(delegateBySig), + ::core::stringify!(permit), + ::core::stringify!(allowance), + ::core::stringify!(checkpoints), + ::core::stringify!(transferOwnership), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for GovernanceTokenCalls { + const NAME: &'static str = "GovernanceTokenCalls"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 28usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::DOMAIN_SEPARATOR(_) => { + ::SELECTOR + } + Self::allowance(_) => { + ::SELECTOR + } + Self::approve(_) => ::SELECTOR, + Self::balanceOf(_) => { + ::SELECTOR + } + Self::burn(_) => ::SELECTOR, + Self::burnFrom(_) => ::SELECTOR, + Self::checkpoints(_) => { + ::SELECTOR + } + Self::decimals(_) => ::SELECTOR, + Self::decreaseAllowance(_) => { + ::SELECTOR + } + Self::delegate(_) => ::SELECTOR, + Self::delegateBySig(_) => { + ::SELECTOR + } + Self::delegates(_) => { + ::SELECTOR + } + Self::getPastTotalSupply(_) => { + ::SELECTOR + } + Self::getPastVotes(_) => { + ::SELECTOR + } + Self::getVotes(_) => ::SELECTOR, + Self::increaseAllowance(_) => { + ::SELECTOR + } + Self::mint(_) => ::SELECTOR, + Self::name(_) => ::SELECTOR, + Self::nonces(_) => ::SELECTOR, + Self::numCheckpoints(_) => { + ::SELECTOR + } + Self::owner(_) => ::SELECTOR, + Self::permit(_) => ::SELECTOR, + Self::renounceOwnership(_) => { + ::SELECTOR + } + Self::symbol(_) => ::SELECTOR, + Self::totalSupply(_) => { + ::SELECTOR + } + Self::transfer(_) => ::SELECTOR, + Self::transferFrom(_) => { + ::SELECTOR + } + Self::transferOwnership(_) => { + ::SELECTOR + } + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn name( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(GovernanceTokenCalls::name) + } + name + }, + { + fn approve( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(GovernanceTokenCalls::approve) + } + approve + }, + { + fn totalSupply( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(GovernanceTokenCalls::totalSupply) + } + totalSupply + }, + { + fn transferFrom( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(GovernanceTokenCalls::transferFrom) + } + transferFrom + }, + { + fn decimals( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(GovernanceTokenCalls::decimals) + } + decimals + }, + { + fn DOMAIN_SEPARATOR( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(GovernanceTokenCalls::DOMAIN_SEPARATOR) + } + DOMAIN_SEPARATOR + }, + { + fn increaseAllowance( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(GovernanceTokenCalls::increaseAllowance) + } + increaseAllowance + }, + { + fn getPastVotes( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(GovernanceTokenCalls::getPastVotes) + } + getPastVotes + }, + { + fn mint( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(GovernanceTokenCalls::mint) + } + mint + }, + { + fn burn( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(GovernanceTokenCalls::burn) + } + burn + }, + { + fn delegates( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(GovernanceTokenCalls::delegates) + } + delegates + }, + { + fn delegate( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(GovernanceTokenCalls::delegate) + } + delegate + }, + { + fn numCheckpoints( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(GovernanceTokenCalls::numCheckpoints) + } + numCheckpoints + }, + { + fn balanceOf( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(GovernanceTokenCalls::balanceOf) + } + balanceOf + }, + { + fn renounceOwnership( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(GovernanceTokenCalls::renounceOwnership) + } + renounceOwnership + }, + { + fn burnFrom( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(GovernanceTokenCalls::burnFrom) + } + burnFrom + }, + { + fn nonces( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(GovernanceTokenCalls::nonces) + } + nonces + }, + { + fn owner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(GovernanceTokenCalls::owner) + } + owner + }, + { + fn getPastTotalSupply( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(GovernanceTokenCalls::getPastTotalSupply) + } + getPastTotalSupply + }, + { + fn symbol( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(GovernanceTokenCalls::symbol) + } + symbol + }, + { + fn getVotes( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(GovernanceTokenCalls::getVotes) + } + getVotes + }, + { + fn decreaseAllowance( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(GovernanceTokenCalls::decreaseAllowance) + } + decreaseAllowance + }, + { + fn transfer( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(GovernanceTokenCalls::transfer) + } + transfer + }, + { + fn delegateBySig( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(GovernanceTokenCalls::delegateBySig) + } + delegateBySig + }, + { + fn permit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(GovernanceTokenCalls::permit) + } + permit + }, + { + fn allowance( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(GovernanceTokenCalls::allowance) + } + allowance + }, + { + fn checkpoints( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(GovernanceTokenCalls::checkpoints) + } + checkpoints + }, + { + fn transferOwnership( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(GovernanceTokenCalls::transferOwnership) + } + transferOwnership + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn name( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(GovernanceTokenCalls::name) + } + name + }, + { + fn approve( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(GovernanceTokenCalls::approve) + } + approve + }, + { + fn totalSupply( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(GovernanceTokenCalls::totalSupply) + } + totalSupply + }, + { + fn transferFrom( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(GovernanceTokenCalls::transferFrom) + } + transferFrom + }, + { + fn decimals( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(GovernanceTokenCalls::decimals) + } + decimals + }, + { + fn DOMAIN_SEPARATOR( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(GovernanceTokenCalls::DOMAIN_SEPARATOR) + } + DOMAIN_SEPARATOR + }, + { + fn increaseAllowance( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(GovernanceTokenCalls::increaseAllowance) + } + increaseAllowance + }, + { + fn getPastVotes( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(GovernanceTokenCalls::getPastVotes) + } + getPastVotes + }, + { + fn mint( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(GovernanceTokenCalls::mint) + } + mint + }, + { + fn burn( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(GovernanceTokenCalls::burn) + } + burn + }, + { + fn delegates( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(GovernanceTokenCalls::delegates) + } + delegates + }, + { + fn delegate( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(GovernanceTokenCalls::delegate) + } + delegate + }, + { + fn numCheckpoints( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(GovernanceTokenCalls::numCheckpoints) + } + numCheckpoints + }, + { + fn balanceOf( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(GovernanceTokenCalls::balanceOf) + } + balanceOf + }, + { + fn renounceOwnership( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(GovernanceTokenCalls::renounceOwnership) + } + renounceOwnership + }, + { + fn burnFrom( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(GovernanceTokenCalls::burnFrom) + } + burnFrom + }, + { + fn nonces( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(GovernanceTokenCalls::nonces) + } + nonces + }, + { + fn owner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(GovernanceTokenCalls::owner) + } + owner + }, + { + fn getPastTotalSupply( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(GovernanceTokenCalls::getPastTotalSupply) + } + getPastTotalSupply + }, + { + fn symbol( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(GovernanceTokenCalls::symbol) + } + symbol + }, + { + fn getVotes( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(GovernanceTokenCalls::getVotes) + } + getVotes + }, + { + fn decreaseAllowance( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(GovernanceTokenCalls::decreaseAllowance) + } + decreaseAllowance + }, + { + fn transfer( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(GovernanceTokenCalls::transfer) + } + transfer + }, + { + fn delegateBySig( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(GovernanceTokenCalls::delegateBySig) + } + delegateBySig + }, + { + fn permit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(GovernanceTokenCalls::permit) + } + permit + }, + { + fn allowance( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(GovernanceTokenCalls::allowance) + } + allowance + }, + { + fn checkpoints( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(GovernanceTokenCalls::checkpoints) + } + checkpoints + }, + { + fn transferOwnership( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(GovernanceTokenCalls::transferOwnership) + } + transferOwnership + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::DOMAIN_SEPARATOR(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::allowance(inner) => { + ::abi_encoded_size(inner) + } + Self::approve(inner) => { + ::abi_encoded_size(inner) + } + Self::balanceOf(inner) => { + ::abi_encoded_size(inner) + } + Self::burn(inner) => { + ::abi_encoded_size(inner) + } + Self::burnFrom(inner) => { + ::abi_encoded_size(inner) + } + Self::checkpoints(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::decimals(inner) => { + ::abi_encoded_size(inner) + } + Self::decreaseAllowance(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::delegate(inner) => { + ::abi_encoded_size(inner) + } + Self::delegateBySig(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::delegates(inner) => { + ::abi_encoded_size(inner) + } + Self::getPastTotalSupply(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::getPastVotes(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::getVotes(inner) => { + ::abi_encoded_size(inner) + } + Self::increaseAllowance(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::mint(inner) => { + ::abi_encoded_size(inner) + } + Self::name(inner) => { + ::abi_encoded_size(inner) + } + Self::nonces(inner) => { + ::abi_encoded_size(inner) + } + Self::numCheckpoints(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::owner(inner) => { + ::abi_encoded_size(inner) + } + Self::permit(inner) => { + ::abi_encoded_size(inner) + } + Self::renounceOwnership(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::symbol(inner) => { + ::abi_encoded_size(inner) + } + Self::totalSupply(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::transfer(inner) => { + ::abi_encoded_size(inner) + } + Self::transferFrom(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::transferOwnership(inner) => { + ::abi_encoded_size( + inner, + ) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::DOMAIN_SEPARATOR(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::allowance(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::approve(inner) => { + ::abi_encode_raw(inner, out) + } + Self::balanceOf(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::burn(inner) => { + ::abi_encode_raw(inner, out) + } + Self::burnFrom(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::checkpoints(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::decimals(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::decreaseAllowance(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::delegate(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::delegateBySig(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::delegates(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::getPastTotalSupply(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::getPastVotes(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::getVotes(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::increaseAllowance(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::mint(inner) => { + ::abi_encode_raw(inner, out) + } + Self::name(inner) => { + ::abi_encode_raw(inner, out) + } + Self::nonces(inner) => { + ::abi_encode_raw(inner, out) + } + Self::numCheckpoints(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::owner(inner) => { + ::abi_encode_raw(inner, out) + } + Self::permit(inner) => { + ::abi_encode_raw(inner, out) + } + Self::renounceOwnership(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::symbol(inner) => { + ::abi_encode_raw(inner, out) + } + Self::totalSupply(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::transfer(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::transferFrom(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::transferOwnership(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + } + } + } + ///Container for all the [`GovernanceToken`](self) events. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum GovernanceTokenEvents { + #[allow(missing_docs)] + Approval(Approval), + #[allow(missing_docs)] + DelegateChanged(DelegateChanged), + #[allow(missing_docs)] + DelegateVotesChanged(DelegateVotesChanged), + #[allow(missing_docs)] + OwnershipTransferred(OwnershipTransferred), + #[allow(missing_docs)] + Transfer(Transfer), + } + impl GovernanceTokenEvents { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 32usize]] = &[ + [ + 49u8, 52u8, 232u8, 162u8, 230u8, 217u8, 126u8, 146u8, 154u8, 126u8, 84u8, + 1u8, 30u8, 165u8, 72u8, 93u8, 125u8, 25u8, 109u8, 213u8, 240u8, 186u8, + 77u8, 78u8, 249u8, 88u8, 3u8, 232u8, 227u8, 252u8, 37u8, 127u8, + ], + [ + 139u8, 224u8, 7u8, 156u8, 83u8, 22u8, 89u8, 20u8, 19u8, 68u8, 205u8, + 31u8, 208u8, 164u8, 242u8, 132u8, 25u8, 73u8, 127u8, 151u8, 34u8, 163u8, + 218u8, 175u8, 227u8, 180u8, 24u8, 111u8, 107u8, 100u8, 87u8, 224u8, + ], + [ + 140u8, 91u8, 225u8, 229u8, 235u8, 236u8, 125u8, 91u8, 209u8, 79u8, 113u8, + 66u8, 125u8, 30u8, 132u8, 243u8, 221u8, 3u8, 20u8, 192u8, 247u8, 178u8, + 41u8, 30u8, 91u8, 32u8, 10u8, 200u8, 199u8, 195u8, 185u8, 37u8, + ], + [ + 221u8, 242u8, 82u8, 173u8, 27u8, 226u8, 200u8, 155u8, 105u8, 194u8, + 176u8, 104u8, 252u8, 55u8, 141u8, 170u8, 149u8, 43u8, 167u8, 241u8, 99u8, + 196u8, 161u8, 22u8, 40u8, 245u8, 90u8, 77u8, 245u8, 35u8, 179u8, 239u8, + ], + [ + 222u8, 194u8, 186u8, 205u8, 210u8, 240u8, 91u8, 89u8, 222u8, 52u8, 218u8, + 155u8, 82u8, 61u8, 255u8, 139u8, 228u8, 46u8, 94u8, 56u8, 232u8, 24u8, + 200u8, 47u8, 219u8, 11u8, 174u8, 119u8, 67u8, 135u8, 167u8, 36u8, + ], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(DelegateChanged), + ::core::stringify!(OwnershipTransferred), + ::core::stringify!(Approval), + ::core::stringify!(Transfer), + ::core::stringify!(DelegateVotesChanged), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolEventInterface for GovernanceTokenEvents { + const NAME: &'static str = "GovernanceTokenEvents"; + const COUNT: usize = 5usize; + fn decode_raw_log( + topics: &[alloy_sol_types::Word], + data: &[u8], + ) -> alloy_sol_types::Result { + match topics.first().copied() { + Some(::SIGNATURE_HASH) => { + ::decode_raw_log(topics, data) + .map(Self::Approval) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::DelegateChanged) + } + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::DelegateVotesChanged) + } + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::OwnershipTransferred) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log(topics, data) + .map(Self::Transfer) + } + _ => { + alloy_sol_types::private::Err(alloy_sol_types::Error::InvalidLog { + name: ::NAME, + log: alloy_sol_types::private::Box::new( + alloy_sol_types::private::LogData::new_unchecked( + topics.to_vec(), + data.to_vec().into(), + ), + ), + }) + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for GovernanceTokenEvents { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + match self { + Self::Approval(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::DelegateChanged(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::DelegateVotesChanged(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::OwnershipTransferred(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::Transfer(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + } + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + match self { + Self::Approval(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::DelegateChanged(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::DelegateVotesChanged(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::OwnershipTransferred(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::Transfer(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`GovernanceToken`](self) contract instance. + +See the [wrapper's documentation](`GovernanceTokenInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> GovernanceTokenInstance { + GovernanceTokenInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + GovernanceTokenInstance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + GovernanceTokenInstance::::deploy_builder(__provider) + } + /**A [`GovernanceToken`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`GovernanceToken`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct GovernanceTokenInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for GovernanceTokenInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("GovernanceTokenInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > GovernanceTokenInstance { + /**Creates a new wrapper around an on-chain [`GovernanceToken`](self) contract instance. + +See the [wrapper's documentation](`GovernanceTokenInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl GovernanceTokenInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> GovernanceTokenInstance { + GovernanceTokenInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > GovernanceTokenInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`DOMAIN_SEPARATOR`] function. + pub fn DOMAIN_SEPARATOR( + &self, + ) -> alloy_contract::SolCallBuilder<&P, DOMAIN_SEPARATORCall, N> { + self.call_builder(&DOMAIN_SEPARATORCall) + } + ///Creates a new call builder for the [`allowance`] function. + pub fn allowance( + &self, + owner: alloy::sol_types::private::Address, + spender: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, allowanceCall, N> { + self.call_builder(&allowanceCall { owner, spender }) + } + ///Creates a new call builder for the [`approve`] function. + pub fn approve( + &self, + spender: alloy::sol_types::private::Address, + amount: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, approveCall, N> { + self.call_builder(&approveCall { spender, amount }) + } + ///Creates a new call builder for the [`balanceOf`] function. + pub fn balanceOf( + &self, + account: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, balanceOfCall, N> { + self.call_builder(&balanceOfCall { account }) + } + ///Creates a new call builder for the [`burn`] function. + pub fn burn( + &self, + amount: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, burnCall, N> { + self.call_builder(&burnCall { amount }) + } + ///Creates a new call builder for the [`burnFrom`] function. + pub fn burnFrom( + &self, + account: alloy::sol_types::private::Address, + amount: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, burnFromCall, N> { + self.call_builder(&burnFromCall { account, amount }) + } + ///Creates a new call builder for the [`checkpoints`] function. + pub fn checkpoints( + &self, + account: alloy::sol_types::private::Address, + pos: u32, + ) -> alloy_contract::SolCallBuilder<&P, checkpointsCall, N> { + self.call_builder(&checkpointsCall { account, pos }) + } + ///Creates a new call builder for the [`decimals`] function. + pub fn decimals(&self) -> alloy_contract::SolCallBuilder<&P, decimalsCall, N> { + self.call_builder(&decimalsCall) + } + ///Creates a new call builder for the [`decreaseAllowance`] function. + pub fn decreaseAllowance( + &self, + spender: alloy::sol_types::private::Address, + subtractedValue: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, decreaseAllowanceCall, N> { + self.call_builder( + &decreaseAllowanceCall { + spender, + subtractedValue, + }, + ) + } + ///Creates a new call builder for the [`delegate`] function. + pub fn delegate( + &self, + delegatee: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, delegateCall, N> { + self.call_builder(&delegateCall { delegatee }) + } + ///Creates a new call builder for the [`delegateBySig`] function. + pub fn delegateBySig( + &self, + delegatee: alloy::sol_types::private::Address, + nonce: alloy::sol_types::private::primitives::aliases::U256, + expiry: alloy::sol_types::private::primitives::aliases::U256, + v: u8, + r: alloy::sol_types::private::FixedBytes<32>, + s: alloy::sol_types::private::FixedBytes<32>, + ) -> alloy_contract::SolCallBuilder<&P, delegateBySigCall, N> { + self.call_builder( + &delegateBySigCall { + delegatee, + nonce, + expiry, + v, + r, + s, + }, + ) + } + ///Creates a new call builder for the [`delegates`] function. + pub fn delegates( + &self, + account: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, delegatesCall, N> { + self.call_builder(&delegatesCall { account }) + } + ///Creates a new call builder for the [`getPastTotalSupply`] function. + pub fn getPastTotalSupply( + &self, + blockNumber: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, getPastTotalSupplyCall, N> { + self.call_builder( + &getPastTotalSupplyCall { + blockNumber, + }, + ) + } + ///Creates a new call builder for the [`getPastVotes`] function. + pub fn getPastVotes( + &self, + account: alloy::sol_types::private::Address, + blockNumber: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, getPastVotesCall, N> { + self.call_builder( + &getPastVotesCall { + account, + blockNumber, + }, + ) + } + ///Creates a new call builder for the [`getVotes`] function. + pub fn getVotes( + &self, + account: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, getVotesCall, N> { + self.call_builder(&getVotesCall { account }) + } + ///Creates a new call builder for the [`increaseAllowance`] function. + pub fn increaseAllowance( + &self, + spender: alloy::sol_types::private::Address, + addedValue: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, increaseAllowanceCall, N> { + self.call_builder( + &increaseAllowanceCall { + spender, + addedValue, + }, + ) + } + ///Creates a new call builder for the [`mint`] function. + pub fn mint( + &self, + _account: alloy::sol_types::private::Address, + _amount: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, mintCall, N> { + self.call_builder(&mintCall { _account, _amount }) + } + ///Creates a new call builder for the [`name`] function. + pub fn name(&self) -> alloy_contract::SolCallBuilder<&P, nameCall, N> { + self.call_builder(&nameCall) + } + ///Creates a new call builder for the [`nonces`] function. + pub fn nonces( + &self, + owner: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, noncesCall, N> { + self.call_builder(&noncesCall { owner }) + } + ///Creates a new call builder for the [`numCheckpoints`] function. + pub fn numCheckpoints( + &self, + account: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, numCheckpointsCall, N> { + self.call_builder(&numCheckpointsCall { account }) + } + ///Creates a new call builder for the [`owner`] function. + pub fn owner(&self) -> alloy_contract::SolCallBuilder<&P, ownerCall, N> { + self.call_builder(&ownerCall) + } + ///Creates a new call builder for the [`permit`] function. + pub fn permit( + &self, + owner: alloy::sol_types::private::Address, + spender: alloy::sol_types::private::Address, + value: alloy::sol_types::private::primitives::aliases::U256, + deadline: alloy::sol_types::private::primitives::aliases::U256, + v: u8, + r: alloy::sol_types::private::FixedBytes<32>, + s: alloy::sol_types::private::FixedBytes<32>, + ) -> alloy_contract::SolCallBuilder<&P, permitCall, N> { + self.call_builder( + &permitCall { + owner, + spender, + value, + deadline, + v, + r, + s, + }, + ) + } + ///Creates a new call builder for the [`renounceOwnership`] function. + pub fn renounceOwnership( + &self, + ) -> alloy_contract::SolCallBuilder<&P, renounceOwnershipCall, N> { + self.call_builder(&renounceOwnershipCall) + } + ///Creates a new call builder for the [`symbol`] function. + pub fn symbol(&self) -> alloy_contract::SolCallBuilder<&P, symbolCall, N> { + self.call_builder(&symbolCall) + } + ///Creates a new call builder for the [`totalSupply`] function. + pub fn totalSupply( + &self, + ) -> alloy_contract::SolCallBuilder<&P, totalSupplyCall, N> { + self.call_builder(&totalSupplyCall) + } + ///Creates a new call builder for the [`transfer`] function. + pub fn transfer( + &self, + to: alloy::sol_types::private::Address, + amount: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, transferCall, N> { + self.call_builder(&transferCall { to, amount }) + } + ///Creates a new call builder for the [`transferFrom`] function. + pub fn transferFrom( + &self, + from: alloy::sol_types::private::Address, + to: alloy::sol_types::private::Address, + amount: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, transferFromCall, N> { + self.call_builder( + &transferFromCall { + from, + to, + amount, + }, + ) + } + ///Creates a new call builder for the [`transferOwnership`] function. + pub fn transferOwnership( + &self, + newOwner: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, transferOwnershipCall, N> { + self.call_builder(&transferOwnershipCall { newOwner }) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > GovernanceTokenInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + ///Creates a new event filter for the [`Approval`] event. + pub fn Approval_filter(&self) -> alloy_contract::Event<&P, Approval, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`DelegateChanged`] event. + pub fn DelegateChanged_filter( + &self, + ) -> alloy_contract::Event<&P, DelegateChanged, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`DelegateVotesChanged`] event. + pub fn DelegateVotesChanged_filter( + &self, + ) -> alloy_contract::Event<&P, DelegateVotesChanged, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`OwnershipTransferred`] event. + pub fn OwnershipTransferred_filter( + &self, + ) -> alloy_contract::Event<&P, OwnershipTransferred, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`Transfer`] event. + pub fn Transfer_filter(&self) -> alloy_contract::Event<&P, Transfer, N> { + self.event_filter::() + } + } +} diff --git a/bindings/rust/src/hashing.rs b/bindings/rust/src/hashing.rs new file mode 100644 index 000000000..61cc61689 --- /dev/null +++ b/bindings/rust/src/hashing.rs @@ -0,0 +1,215 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface Hashing {} +``` + +...which was generated by the following JSON ABI: +```json +[] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod Hashing { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`-`7`\x0B\x82\x82\x829\x80Q`\0\x1A`s\x14`*WcNH{q`\xE0\x1B`\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`\0\x80\xFD\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + 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`\0\x80\xFD\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`Hashing`](self) contract instance. + +See the [wrapper's documentation](`HashingInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> HashingInstance { + HashingInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + HashingInstance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + HashingInstance::::deploy_builder(__provider) + } + /**A [`Hashing`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`Hashing`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct HashingInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for HashingInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("HashingInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > HashingInstance { + /**Creates a new wrapper around an on-chain [`Hashing`](self) contract instance. + +See the [wrapper's documentation](`HashingInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl HashingInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> HashingInstance { + HashingInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > HashingInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > HashingInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + } +} diff --git a/bindings/rust/src/i_drip_check.rs b/bindings/rust/src/i_drip_check.rs new file mode 100644 index 000000000..c74f95401 --- /dev/null +++ b/bindings/rust/src/i_drip_check.rs @@ -0,0 +1,726 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface IDripCheck { + function check(bytes memory _params) external view returns (bool execute_); + function name() external view returns (string memory name_); +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "function", + "name": "check", + "inputs": [ + { + "name": "_params", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [ + { + "name": "execute_", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "name", + "inputs": [], + "outputs": [ + { + "name": "name_", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "view" + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod IDripCheck { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"", + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `check(bytes)` and selector `0xc64b3bb5`. +```solidity +function check(bytes memory _params) external view returns (bool execute_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct checkCall { + #[allow(missing_docs)] + pub _params: alloy::sol_types::private::Bytes, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`check(bytes)`](checkCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct checkReturn { + #[allow(missing_docs)] + pub execute_: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bytes,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Bytes,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: checkCall) -> Self { + (value._params,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for checkCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _params: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: checkReturn) -> Self { + (value.execute_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for checkReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { execute_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for checkCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Bytes,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "check(bytes)"; + const SELECTOR: [u8; 4] = [198u8, 75u8, 59u8, 181u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._params, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: checkReturn = r.into(); + r.execute_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: checkReturn = r.into(); + r.execute_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `name()` and selector `0x06fdde03`. +```solidity +function name() external view returns (string memory name_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct nameCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`name()`](nameCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct nameReturn { + #[allow(missing_docs)] + pub name_: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: nameCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for nameCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: nameReturn) -> Self { + (value.name_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for nameReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { name_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for nameCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::String; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "name()"; + const SELECTOR: [u8; 4] = [6u8, 253u8, 222u8, 3u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: nameReturn = r.into(); + r.name_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: nameReturn = r.into(); + r.name_ + }) + } + } + }; + ///Container for all the [`IDripCheck`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum IDripCheckCalls { + #[allow(missing_docs)] + check(checkCall), + #[allow(missing_docs)] + name(nameCall), + } + impl IDripCheckCalls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [6u8, 253u8, 222u8, 3u8], + [198u8, 75u8, 59u8, 181u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(name), + ::core::stringify!(check), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for IDripCheckCalls { + const NAME: &'static str = "IDripCheckCalls"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 2usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::check(_) => ::SELECTOR, + Self::name(_) => ::SELECTOR, + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn name(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(IDripCheckCalls::name) + } + name + }, + { + fn check(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(IDripCheckCalls::check) + } + check + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn name(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(IDripCheckCalls::name) + } + name + }, + { + fn check(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(IDripCheckCalls::check) + } + check + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::check(inner) => { + ::abi_encoded_size(inner) + } + Self::name(inner) => { + ::abi_encoded_size(inner) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::check(inner) => { + ::abi_encode_raw(inner, out) + } + Self::name(inner) => { + ::abi_encode_raw(inner, out) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`IDripCheck`](self) contract instance. + +See the [wrapper's documentation](`IDripCheckInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> IDripCheckInstance { + IDripCheckInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + IDripCheckInstance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + IDripCheckInstance::::deploy_builder(__provider) + } + /**A [`IDripCheck`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`IDripCheck`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct IDripCheckInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for IDripCheckInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("IDripCheckInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > IDripCheckInstance { + /**Creates a new wrapper around an on-chain [`IDripCheck`](self) contract instance. + +See the [wrapper's documentation](`IDripCheckInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl IDripCheckInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> IDripCheckInstance { + IDripCheckInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > IDripCheckInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`check`] function. + pub fn check( + &self, + _params: alloy::sol_types::private::Bytes, + ) -> alloy_contract::SolCallBuilder<&P, checkCall, N> { + self.call_builder(&checkCall { _params }) + } + ///Creates a new call builder for the [`name`] function. + pub fn name(&self) -> alloy_contract::SolCallBuilder<&P, nameCall, N> { + self.call_builder(&nameCall) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > IDripCheckInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + } +} diff --git a/bindings/rust/src/i_faucet_auth_module.rs b/bindings/rust/src/i_faucet_auth_module.rs new file mode 100644 index 000000000..a729cfef3 --- /dev/null +++ b/bindings/rust/src/i_faucet_auth_module.rs @@ -0,0 +1,1008 @@ +///Module containing a contract's types and functions. +/** + +```solidity +library Faucet { + struct DripParameters { address recipient; bytes data; bytes32 nonce; uint32 gasLimit; } +} +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod Faucet { + use super::*; + use alloy::sol_types as alloy_sol_types; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**```solidity +struct DripParameters { address recipient; bytes data; bytes32 nonce; uint32 gasLimit; } +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct DripParameters { + #[allow(missing_docs)] + pub recipient: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub data: alloy::sol_types::private::Bytes, + #[allow(missing_docs)] + pub nonce: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub gasLimit: u32, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Bytes, + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Uint<32>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Bytes, + alloy::sol_types::private::FixedBytes<32>, + u32, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: DripParameters) -> Self { + (value.recipient, value.data, value.nonce, value.gasLimit) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for DripParameters { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + recipient: tuple.0, + data: tuple.1, + nonce: tuple.2, + gasLimit: tuple.3, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolValue for DripParameters { + type SolType = Self; + } + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for DripParameters { + #[inline] + fn stv_to_tokens(&self) -> ::Token<'_> { + ( + ::tokenize( + &self.recipient, + ), + ::tokenize( + &self.data, + ), + as alloy_sol_types::SolType>::tokenize(&self.nonce), + as alloy_sol_types::SolType>::tokenize(&self.gasLimit), + ) + } + #[inline] + fn stv_abi_encoded_size(&self) -> usize { + if let Some(size) = ::ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encoded_size(&tuple) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + ::eip712_hash_struct(self) + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + if let Some(size) = ::PACKED_ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for DripParameters { + type RustType = Self; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = ::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + as alloy_sol_types::SolType>::valid_token(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + let tuple = as alloy_sol_types::SolType>::detokenize(token); + >>::from(tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolStruct for DripParameters { + const NAME: &'static str = "DripParameters"; + #[inline] + fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> { + alloy_sol_types::private::Cow::Borrowed( + "DripParameters(address recipient,bytes data,bytes32 nonce,uint32 gasLimit)", + ) + } + #[inline] + fn eip712_components() -> alloy_sol_types::private::Vec< + alloy_sol_types::private::Cow<'static, str>, + > { + alloy_sol_types::private::Vec::new() + } + #[inline] + fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> { + ::eip712_root_type() + } + #[inline] + fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec { + [ + ::eip712_data_word( + &self.recipient, + ) + .0, + ::eip712_data_word( + &self.data, + ) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.nonce) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.gasLimit) + .0, + ] + .concat() + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for DripParameters { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + 0usize + + ::topic_preimage_length( + &rust.recipient, + ) + + ::topic_preimage_length( + &rust.data, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length(&rust.nonce) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.gasLimit, + ) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + out.reserve( + ::topic_preimage_length(rust), + ); + ::encode_topic_preimage( + &rust.recipient, + out, + ); + ::encode_topic_preimage( + &rust.data, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.nonce, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.gasLimit, + out, + ); + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + let mut out = alloy_sol_types::private::Vec::new(); + ::encode_topic_preimage( + rust, + &mut out, + ); + alloy_sol_types::abi::token::WordToken( + alloy_sol_types::private::keccak256(out), + ) + } + } + }; + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`Faucet`](self) contract instance. + +See the [wrapper's documentation](`FaucetInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> FaucetInstance { + FaucetInstance::::new(address, __provider) + } + /**A [`Faucet`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`Faucet`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct FaucetInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for FaucetInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("FaucetInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > FaucetInstance { + /**Creates a new wrapper around an on-chain [`Faucet`](self) contract instance. + +See the [wrapper's documentation](`FaucetInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl FaucetInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> FaucetInstance { + FaucetInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > FaucetInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > FaucetInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + } +} +/** + +Generated by the following Solidity interface... +```solidity +library Faucet { + struct DripParameters { + address payable recipient; + bytes data; + bytes32 nonce; + uint32 gasLimit; + } +} + +interface IFaucetAuthModule { + function verify(Faucet.DripParameters memory _params, bytes32 _id, bytes memory _proof) external view returns (bool); +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "function", + "name": "verify", + "inputs": [ + { + "name": "_params", + "type": "tuple", + "internalType": "struct Faucet.DripParameters", + "components": [ + { + "name": "recipient", + "type": "address", + "internalType": "address payable" + }, + { + "name": "data", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "nonce", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "gasLimit", + "type": "uint32", + "internalType": "uint32" + } + ] + }, + { + "name": "_id", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "_proof", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod IFaucetAuthModule { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"", + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `verify((address,bytes,bytes32,uint32),bytes32,bytes)` and selector `0xd855814f`. +```solidity +function verify(Faucet.DripParameters memory _params, bytes32 _id, bytes memory _proof) external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct verifyCall { + #[allow(missing_docs)] + pub _params: ::RustType, + #[allow(missing_docs)] + pub _id: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub _proof: alloy::sol_types::private::Bytes, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`verify((address,bytes,bytes32,uint32),bytes32,bytes)`](verifyCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct verifyReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + Faucet::DripParameters, + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + alloy::sol_types::private::FixedBytes<32>, + alloy::sol_types::private::Bytes, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: verifyCall) -> Self { + (value._params, value._id, value._proof) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for verifyCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _params: tuple.0, + _id: tuple.1, + _proof: tuple.2, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: verifyReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for verifyReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for verifyCall { + type Parameters<'a> = ( + Faucet::DripParameters, + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Bytes, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "verify((address,bytes,bytes32,uint32),bytes32,bytes)"; + const SELECTOR: [u8; 4] = [216u8, 85u8, 129u8, 79u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._params, + ), + as alloy_sol_types::SolType>::tokenize(&self._id), + ::tokenize( + &self._proof, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: verifyReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: verifyReturn = r.into(); + r._0 + }) + } + } + }; + ///Container for all the [`IFaucetAuthModule`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum IFaucetAuthModuleCalls { + #[allow(missing_docs)] + verify(verifyCall), + } + impl IFaucetAuthModuleCalls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[[216u8, 85u8, 129u8, 79u8]]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[::core::stringify!(verify)]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for IFaucetAuthModuleCalls { + const NAME: &'static str = "IFaucetAuthModuleCalls"; + const MIN_DATA_LENGTH: usize = 256usize; + const COUNT: usize = 1usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::verify(_) => ::SELECTOR, + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn verify( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(IFaucetAuthModuleCalls::verify) + } + verify + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn verify( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(IFaucetAuthModuleCalls::verify) + } + verify + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::verify(inner) => { + ::abi_encoded_size(inner) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::verify(inner) => { + ::abi_encode_raw(inner, out) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`IFaucetAuthModule`](self) contract instance. + +See the [wrapper's documentation](`IFaucetAuthModuleInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> IFaucetAuthModuleInstance { + IFaucetAuthModuleInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + IFaucetAuthModuleInstance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + IFaucetAuthModuleInstance::::deploy_builder(__provider) + } + /**A [`IFaucetAuthModule`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`IFaucetAuthModule`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct IFaucetAuthModuleInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for IFaucetAuthModuleInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("IFaucetAuthModuleInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > IFaucetAuthModuleInstance { + /**Creates a new wrapper around an on-chain [`IFaucetAuthModule`](self) contract instance. + +See the [wrapper's documentation](`IFaucetAuthModuleInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl IFaucetAuthModuleInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> IFaucetAuthModuleInstance { + IFaucetAuthModuleInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > IFaucetAuthModuleInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`verify`] function. + pub fn verify( + &self, + _params: ::RustType, + _id: alloy::sol_types::private::FixedBytes<32>, + _proof: alloy::sol_types::private::Bytes, + ) -> alloy_contract::SolCallBuilder<&P, verifyCall, N> { + self.call_builder(&verifyCall { _params, _id, _proof }) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > IFaucetAuthModuleInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + } +} diff --git a/bindings/rust/src/i_schema_registry.rs b/bindings/rust/src/i_schema_registry.rs new file mode 100644 index 000000000..dd1af95ef --- /dev/null +++ b/bindings/rust/src/i_schema_registry.rs @@ -0,0 +1,1357 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface ISchemaRegistry { + struct SchemaRecord { + bytes32 uid; + address resolver; + bool revocable; + string schema; + } + + event Registered(bytes32 indexed uid, address indexed registerer, SchemaRecord schema); + + function getSchema(bytes32 uid) external view returns (SchemaRecord memory); + function register(string memory schema, address resolver, bool revocable) external returns (bytes32); +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "function", + "name": "getSchema", + "inputs": [ + { + "name": "uid", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "outputs": [ + { + "name": "", + "type": "tuple", + "internalType": "struct SchemaRecord", + "components": [ + { + "name": "uid", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "resolver", + "type": "address", + "internalType": "contract ISchemaResolver" + }, + { + "name": "revocable", + "type": "bool", + "internalType": "bool" + }, + { + "name": "schema", + "type": "string", + "internalType": "string" + } + ] + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "register", + "inputs": [ + { + "name": "schema", + "type": "string", + "internalType": "string" + }, + { + "name": "resolver", + "type": "address", + "internalType": "contract ISchemaResolver" + }, + { + "name": "revocable", + "type": "bool", + "internalType": "bool" + } + ], + "outputs": [ + { + "name": "", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "event", + "name": "Registered", + "inputs": [ + { + "name": "uid", + "type": "bytes32", + "indexed": true, + "internalType": "bytes32" + }, + { + "name": "registerer", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "schema", + "type": "tuple", + "indexed": false, + "internalType": "struct SchemaRecord", + "components": [ + { + "name": "uid", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "resolver", + "type": "address", + "internalType": "contract ISchemaResolver" + }, + { + "name": "revocable", + "type": "bool", + "internalType": "bool" + }, + { + "name": "schema", + "type": "string", + "internalType": "string" + } + ] + } + ], + "anonymous": false + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod ISchemaRegistry { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"", + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**```solidity +struct SchemaRecord { bytes32 uid; address resolver; bool revocable; string schema; } +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct SchemaRecord { + #[allow(missing_docs)] + pub uid: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub resolver: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub revocable: bool, + #[allow(missing_docs)] + pub schema: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Bool, + alloy::sol_types::sol_data::String, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::FixedBytes<32>, + alloy::sol_types::private::Address, + bool, + alloy::sol_types::private::String, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: SchemaRecord) -> Self { + (value.uid, value.resolver, value.revocable, value.schema) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for SchemaRecord { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + uid: tuple.0, + resolver: tuple.1, + revocable: tuple.2, + schema: tuple.3, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolValue for SchemaRecord { + type SolType = Self; + } + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for SchemaRecord { + #[inline] + fn stv_to_tokens(&self) -> ::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.uid), + ::tokenize( + &self.resolver, + ), + ::tokenize( + &self.revocable, + ), + ::tokenize( + &self.schema, + ), + ) + } + #[inline] + fn stv_abi_encoded_size(&self) -> usize { + if let Some(size) = ::ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encoded_size(&tuple) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + ::eip712_hash_struct(self) + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + if let Some(size) = ::PACKED_ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for SchemaRecord { + type RustType = Self; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = ::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + as alloy_sol_types::SolType>::valid_token(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + let tuple = as alloy_sol_types::SolType>::detokenize(token); + >>::from(tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolStruct for SchemaRecord { + const NAME: &'static str = "SchemaRecord"; + #[inline] + fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> { + alloy_sol_types::private::Cow::Borrowed( + "SchemaRecord(bytes32 uid,address resolver,bool revocable,string schema)", + ) + } + #[inline] + fn eip712_components() -> alloy_sol_types::private::Vec< + alloy_sol_types::private::Cow<'static, str>, + > { + alloy_sol_types::private::Vec::new() + } + #[inline] + fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> { + ::eip712_root_type() + } + #[inline] + fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec { + [ + as alloy_sol_types::SolType>::eip712_data_word(&self.uid) + .0, + ::eip712_data_word( + &self.resolver, + ) + .0, + ::eip712_data_word( + &self.revocable, + ) + .0, + ::eip712_data_word( + &self.schema, + ) + .0, + ] + .concat() + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for SchemaRecord { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + 0usize + + as alloy_sol_types::EventTopic>::topic_preimage_length(&rust.uid) + + ::topic_preimage_length( + &rust.resolver, + ) + + ::topic_preimage_length( + &rust.revocable, + ) + + ::topic_preimage_length( + &rust.schema, + ) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + out.reserve( + ::topic_preimage_length(rust), + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage(&rust.uid, out); + ::encode_topic_preimage( + &rust.resolver, + out, + ); + ::encode_topic_preimage( + &rust.revocable, + out, + ); + ::encode_topic_preimage( + &rust.schema, + out, + ); + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + let mut out = alloy_sol_types::private::Vec::new(); + ::encode_topic_preimage( + rust, + &mut out, + ); + alloy_sol_types::abi::token::WordToken( + alloy_sol_types::private::keccak256(out), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `Registered(bytes32,address,(bytes32,address,bool,string))` and selector `0xd0b86852e21f9e5fa4bc3b0cff9757ffe243d50c4b43968a42202153d651ea5e`. +```solidity +event Registered(bytes32 indexed uid, address indexed registerer, SchemaRecord schema); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct Registered { + #[allow(missing_docs)] + pub uid: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub registerer: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub schema: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for Registered { + type DataTuple<'a> = (SchemaRecord,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "Registered(bytes32,address,(bytes32,address,bool,string))"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 208u8, 184u8, 104u8, 82u8, 226u8, 31u8, 158u8, 95u8, 164u8, 188u8, 59u8, + 12u8, 255u8, 151u8, 87u8, 255u8, 226u8, 67u8, 213u8, 12u8, 75u8, 67u8, + 150u8, 138u8, 66u8, 32u8, 33u8, 83u8, 214u8, 81u8, 234u8, 94u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + uid: topics.1, + registerer: topics.2, + schema: data.0, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + (::tokenize(&self.schema),) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.uid.clone(), self.registerer.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = as alloy_sol_types::EventTopic>::encode_topic(&self.uid); + out[2usize] = ::encode_topic( + &self.registerer, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for Registered { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&Registered> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &Registered) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `getSchema(bytes32)` and selector `0xa2ea7c6e`. +```solidity +function getSchema(bytes32 uid) external view returns (SchemaRecord memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getSchemaCall { + #[allow(missing_docs)] + pub uid: alloy::sol_types::private::FixedBytes<32>, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`getSchema(bytes32)`](getSchemaCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getSchemaReturn { + #[allow(missing_docs)] + pub _0: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: getSchemaCall) -> Self { + (value.uid,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for getSchemaCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { uid: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (SchemaRecord,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: getSchemaReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for getSchemaReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for getSchemaCall { + type Parameters<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (SchemaRecord,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "getSchema(bytes32)"; + const SELECTOR: [u8; 4] = [162u8, 234u8, 124u8, 110u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.uid), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: getSchemaReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: getSchemaReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `register(string,address,bool)` and selector `0x60d7a278`. +```solidity +function register(string memory schema, address resolver, bool revocable) external returns (bytes32); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct registerCall { + #[allow(missing_docs)] + pub schema: alloy::sol_types::private::String, + #[allow(missing_docs)] + pub resolver: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub revocable: bool, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`register(string,address,bool)`](registerCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct registerReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::String, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Bool, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::String, + alloy::sol_types::private::Address, + bool, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: registerCall) -> Self { + (value.schema, value.resolver, value.revocable) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for registerCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + schema: tuple.0, + resolver: tuple.1, + revocable: tuple.2, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: registerReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for registerReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for registerCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::String, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Bool, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::FixedBytes<32>; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "register(string,address,bool)"; + const SELECTOR: [u8; 4] = [96u8, 215u8, 162u8, 120u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.schema, + ), + ::tokenize( + &self.resolver, + ), + ::tokenize( + &self.revocable, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: registerReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: registerReturn = r.into(); + r._0 + }) + } + } + }; + ///Container for all the [`ISchemaRegistry`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum ISchemaRegistryCalls { + #[allow(missing_docs)] + getSchema(getSchemaCall), + #[allow(missing_docs)] + register(registerCall), + } + impl ISchemaRegistryCalls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [96u8, 215u8, 162u8, 120u8], + [162u8, 234u8, 124u8, 110u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(register), + ::core::stringify!(getSchema), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for ISchemaRegistryCalls { + const NAME: &'static str = "ISchemaRegistryCalls"; + const MIN_DATA_LENGTH: usize = 32usize; + const COUNT: usize = 2usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::getSchema(_) => { + ::SELECTOR + } + Self::register(_) => ::SELECTOR, + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn register( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(ISchemaRegistryCalls::register) + } + register + }, + { + fn getSchema( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(ISchemaRegistryCalls::getSchema) + } + getSchema + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn register( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(ISchemaRegistryCalls::register) + } + register + }, + { + fn getSchema( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(ISchemaRegistryCalls::getSchema) + } + getSchema + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::getSchema(inner) => { + ::abi_encoded_size(inner) + } + Self::register(inner) => { + ::abi_encoded_size(inner) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::getSchema(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::register(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + } + } + } + ///Container for all the [`ISchemaRegistry`](self) events. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum ISchemaRegistryEvents { + #[allow(missing_docs)] + Registered(Registered), + } + impl ISchemaRegistryEvents { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 32usize]] = &[ + [ + 208u8, 184u8, 104u8, 82u8, 226u8, 31u8, 158u8, 95u8, 164u8, 188u8, 59u8, + 12u8, 255u8, 151u8, 87u8, 255u8, 226u8, 67u8, 213u8, 12u8, 75u8, 67u8, + 150u8, 138u8, 66u8, 32u8, 33u8, 83u8, 214u8, 81u8, 234u8, 94u8, + ], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(Registered), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolEventInterface for ISchemaRegistryEvents { + const NAME: &'static str = "ISchemaRegistryEvents"; + const COUNT: usize = 1usize; + fn decode_raw_log( + topics: &[alloy_sol_types::Word], + data: &[u8], + ) -> alloy_sol_types::Result { + match topics.first().copied() { + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::Registered) + } + _ => { + alloy_sol_types::private::Err(alloy_sol_types::Error::InvalidLog { + name: ::NAME, + log: alloy_sol_types::private::Box::new( + alloy_sol_types::private::LogData::new_unchecked( + topics.to_vec(), + data.to_vec().into(), + ), + ), + }) + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for ISchemaRegistryEvents { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + match self { + Self::Registered(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + } + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + match self { + Self::Registered(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`ISchemaRegistry`](self) contract instance. + +See the [wrapper's documentation](`ISchemaRegistryInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> ISchemaRegistryInstance { + ISchemaRegistryInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + ISchemaRegistryInstance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + ISchemaRegistryInstance::::deploy_builder(__provider) + } + /**A [`ISchemaRegistry`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`ISchemaRegistry`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct ISchemaRegistryInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for ISchemaRegistryInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("ISchemaRegistryInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > ISchemaRegistryInstance { + /**Creates a new wrapper around an on-chain [`ISchemaRegistry`](self) contract instance. + +See the [wrapper's documentation](`ISchemaRegistryInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl ISchemaRegistryInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> ISchemaRegistryInstance { + ISchemaRegistryInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > ISchemaRegistryInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`getSchema`] function. + pub fn getSchema( + &self, + uid: alloy::sol_types::private::FixedBytes<32>, + ) -> alloy_contract::SolCallBuilder<&P, getSchemaCall, N> { + self.call_builder(&getSchemaCall { uid }) + } + ///Creates a new call builder for the [`register`] function. + pub fn register( + &self, + schema: alloy::sol_types::private::String, + resolver: alloy::sol_types::private::Address, + revocable: bool, + ) -> alloy_contract::SolCallBuilder<&P, registerCall, N> { + self.call_builder( + ®isterCall { + schema, + resolver, + revocable, + }, + ) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > ISchemaRegistryInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + ///Creates a new event filter for the [`Registered`] event. + pub fn Registered_filter(&self) -> alloy_contract::Event<&P, Registered, N> { + self.event_filter::() + } + } +} diff --git a/bindings/rust/src/i_schema_resolver.rs b/bindings/rust/src/i_schema_resolver.rs new file mode 100644 index 000000000..f05bcadf7 --- /dev/null +++ b/bindings/rust/src/i_schema_resolver.rs @@ -0,0 +1,2092 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface ISchemaResolver { + struct Attestation { + bytes32 uid; + bytes32 schema; + uint64 time; + uint64 expirationTime; + uint64 revocationTime; + bytes32 refUID; + address recipient; + address attester; + bool revocable; + bytes data; + } + + function attest(Attestation memory attestation) external payable returns (bool); + function isPayable() external pure returns (bool); + function multiAttest(Attestation[] memory attestations, uint256[] memory values) external payable returns (bool); + function multiRevoke(Attestation[] memory attestations, uint256[] memory values) external payable returns (bool); + function revoke(Attestation memory attestation) external payable returns (bool); +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "function", + "name": "attest", + "inputs": [ + { + "name": "attestation", + "type": "tuple", + "internalType": "struct Attestation", + "components": [ + { + "name": "uid", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "schema", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "time", + "type": "uint64", + "internalType": "uint64" + }, + { + "name": "expirationTime", + "type": "uint64", + "internalType": "uint64" + }, + { + "name": "revocationTime", + "type": "uint64", + "internalType": "uint64" + }, + { + "name": "refUID", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "recipient", + "type": "address", + "internalType": "address" + }, + { + "name": "attester", + "type": "address", + "internalType": "address" + }, + { + "name": "revocable", + "type": "bool", + "internalType": "bool" + }, + { + "name": "data", + "type": "bytes", + "internalType": "bytes" + } + ] + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "isPayable", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "multiAttest", + "inputs": [ + { + "name": "attestations", + "type": "tuple[]", + "internalType": "struct Attestation[]", + "components": [ + { + "name": "uid", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "schema", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "time", + "type": "uint64", + "internalType": "uint64" + }, + { + "name": "expirationTime", + "type": "uint64", + "internalType": "uint64" + }, + { + "name": "revocationTime", + "type": "uint64", + "internalType": "uint64" + }, + { + "name": "refUID", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "recipient", + "type": "address", + "internalType": "address" + }, + { + "name": "attester", + "type": "address", + "internalType": "address" + }, + { + "name": "revocable", + "type": "bool", + "internalType": "bool" + }, + { + "name": "data", + "type": "bytes", + "internalType": "bytes" + } + ] + }, + { + "name": "values", + "type": "uint256[]", + "internalType": "uint256[]" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "multiRevoke", + "inputs": [ + { + "name": "attestations", + "type": "tuple[]", + "internalType": "struct Attestation[]", + "components": [ + { + "name": "uid", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "schema", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "time", + "type": "uint64", + "internalType": "uint64" + }, + { + "name": "expirationTime", + "type": "uint64", + "internalType": "uint64" + }, + { + "name": "revocationTime", + "type": "uint64", + "internalType": "uint64" + }, + { + "name": "refUID", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "recipient", + "type": "address", + "internalType": "address" + }, + { + "name": "attester", + "type": "address", + "internalType": "address" + }, + { + "name": "revocable", + "type": "bool", + "internalType": "bool" + }, + { + "name": "data", + "type": "bytes", + "internalType": "bytes" + } + ] + }, + { + "name": "values", + "type": "uint256[]", + "internalType": "uint256[]" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "revoke", + "inputs": [ + { + "name": "attestation", + "type": "tuple", + "internalType": "struct Attestation", + "components": [ + { + "name": "uid", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "schema", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "time", + "type": "uint64", + "internalType": "uint64" + }, + { + "name": "expirationTime", + "type": "uint64", + "internalType": "uint64" + }, + { + "name": "revocationTime", + "type": "uint64", + "internalType": "uint64" + }, + { + "name": "refUID", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "recipient", + "type": "address", + "internalType": "address" + }, + { + "name": "attester", + "type": "address", + "internalType": "address" + }, + { + "name": "revocable", + "type": "bool", + "internalType": "bool" + }, + { + "name": "data", + "type": "bytes", + "internalType": "bytes" + } + ] + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "payable" + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod ISchemaResolver { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"", + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**```solidity +struct Attestation { bytes32 uid; bytes32 schema; uint64 time; uint64 expirationTime; uint64 revocationTime; bytes32 refUID; address recipient; address attester; bool revocable; bytes data; } +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct Attestation { + #[allow(missing_docs)] + pub uid: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub schema: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub time: u64, + #[allow(missing_docs)] + pub expirationTime: u64, + #[allow(missing_docs)] + pub revocationTime: u64, + #[allow(missing_docs)] + pub refUID: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub recipient: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub attester: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub revocable: bool, + #[allow(missing_docs)] + pub data: alloy::sol_types::private::Bytes, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Uint<64>, + alloy::sol_types::sol_data::Uint<64>, + alloy::sol_types::sol_data::Uint<64>, + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Bool, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::FixedBytes<32>, + alloy::sol_types::private::FixedBytes<32>, + u64, + u64, + u64, + alloy::sol_types::private::FixedBytes<32>, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + bool, + alloy::sol_types::private::Bytes, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: Attestation) -> Self { + ( + value.uid, + value.schema, + value.time, + value.expirationTime, + value.revocationTime, + value.refUID, + value.recipient, + value.attester, + value.revocable, + value.data, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for Attestation { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + uid: tuple.0, + schema: tuple.1, + time: tuple.2, + expirationTime: tuple.3, + revocationTime: tuple.4, + refUID: tuple.5, + recipient: tuple.6, + attester: tuple.7, + revocable: tuple.8, + data: tuple.9, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolValue for Attestation { + type SolType = Self; + } + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for Attestation { + #[inline] + fn stv_to_tokens(&self) -> ::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.uid), + as alloy_sol_types::SolType>::tokenize(&self.schema), + as alloy_sol_types::SolType>::tokenize(&self.time), + as alloy_sol_types::SolType>::tokenize(&self.expirationTime), + as alloy_sol_types::SolType>::tokenize(&self.revocationTime), + as alloy_sol_types::SolType>::tokenize(&self.refUID), + ::tokenize( + &self.recipient, + ), + ::tokenize( + &self.attester, + ), + ::tokenize( + &self.revocable, + ), + ::tokenize( + &self.data, + ), + ) + } + #[inline] + fn stv_abi_encoded_size(&self) -> usize { + if let Some(size) = ::ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encoded_size(&tuple) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + ::eip712_hash_struct(self) + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + if let Some(size) = ::PACKED_ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for Attestation { + type RustType = Self; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = ::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + as alloy_sol_types::SolType>::valid_token(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + let tuple = as alloy_sol_types::SolType>::detokenize(token); + >>::from(tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolStruct for Attestation { + const NAME: &'static str = "Attestation"; + #[inline] + fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> { + alloy_sol_types::private::Cow::Borrowed( + "Attestation(bytes32 uid,bytes32 schema,uint64 time,uint64 expirationTime,uint64 revocationTime,bytes32 refUID,address recipient,address attester,bool revocable,bytes data)", + ) + } + #[inline] + fn eip712_components() -> alloy_sol_types::private::Vec< + alloy_sol_types::private::Cow<'static, str>, + > { + alloy_sol_types::private::Vec::new() + } + #[inline] + fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> { + ::eip712_root_type() + } + #[inline] + fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec { + [ + as alloy_sol_types::SolType>::eip712_data_word(&self.uid) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.schema) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.time) + .0, + as alloy_sol_types::SolType>::eip712_data_word( + &self.expirationTime, + ) + .0, + as alloy_sol_types::SolType>::eip712_data_word( + &self.revocationTime, + ) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.refUID) + .0, + ::eip712_data_word( + &self.recipient, + ) + .0, + ::eip712_data_word( + &self.attester, + ) + .0, + ::eip712_data_word( + &self.revocable, + ) + .0, + ::eip712_data_word( + &self.data, + ) + .0, + ] + .concat() + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for Attestation { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + 0usize + + as alloy_sol_types::EventTopic>::topic_preimage_length(&rust.uid) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.schema, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length(&rust.time) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.expirationTime, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.revocationTime, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.refUID, + ) + + ::topic_preimage_length( + &rust.recipient, + ) + + ::topic_preimage_length( + &rust.attester, + ) + + ::topic_preimage_length( + &rust.revocable, + ) + + ::topic_preimage_length( + &rust.data, + ) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + out.reserve( + ::topic_preimage_length(rust), + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage(&rust.uid, out); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.schema, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.time, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.expirationTime, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.revocationTime, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.refUID, + out, + ); + ::encode_topic_preimage( + &rust.recipient, + out, + ); + ::encode_topic_preimage( + &rust.attester, + out, + ); + ::encode_topic_preimage( + &rust.revocable, + out, + ); + ::encode_topic_preimage( + &rust.data, + out, + ); + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + let mut out = alloy_sol_types::private::Vec::new(); + ::encode_topic_preimage( + rust, + &mut out, + ); + alloy_sol_types::abi::token::WordToken( + alloy_sol_types::private::keccak256(out), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `attest((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes))` and selector `0xe60c3505`. +```solidity +function attest(Attestation memory attestation) external payable returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct attestCall { + #[allow(missing_docs)] + pub attestation: ::RustType, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`attest((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes))`](attestCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct attestReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Attestation,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: attestCall) -> Self { + (value.attestation,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for attestCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { attestation: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: attestReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for attestReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for attestCall { + type Parameters<'a> = (Attestation,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "attest((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes))"; + const SELECTOR: [u8; 4] = [230u8, 12u8, 53u8, 5u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + (::tokenize(&self.attestation),) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: attestReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: attestReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `isPayable()` and selector `0xce46e046`. +```solidity +function isPayable() external pure returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct isPayableCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`isPayable()`](isPayableCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct isPayableReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: isPayableCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for isPayableCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: isPayableReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for isPayableReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for isPayableCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "isPayable()"; + const SELECTOR: [u8; 4] = [206u8, 70u8, 224u8, 70u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: isPayableReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: isPayableReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `multiAttest((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes)[],uint256[])` and selector `0x91db0b7e`. +```solidity +function multiAttest(Attestation[] memory attestations, uint256[] memory values) external payable returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct multiAttestCall { + #[allow(missing_docs)] + pub attestations: alloy::sol_types::private::Vec< + ::RustType, + >, + #[allow(missing_docs)] + pub values: alloy::sol_types::private::Vec< + alloy::sol_types::private::primitives::aliases::U256, + >, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`multiAttest((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes)[],uint256[])`](multiAttestCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct multiAttestReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Array, + alloy::sol_types::sol_data::Array>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Vec< + ::RustType, + >, + alloy::sol_types::private::Vec< + alloy::sol_types::private::primitives::aliases::U256, + >, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: multiAttestCall) -> Self { + (value.attestations, value.values) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for multiAttestCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + attestations: tuple.0, + values: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: multiAttestReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for multiAttestReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for multiAttestCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Array, + alloy::sol_types::sol_data::Array>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "multiAttest((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes)[],uint256[])"; + const SELECTOR: [u8; 4] = [145u8, 219u8, 11u8, 126u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.attestations), + , + > as alloy_sol_types::SolType>::tokenize(&self.values), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: multiAttestReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: multiAttestReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `multiRevoke((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes)[],uint256[])` and selector `0x88e5b2d9`. +```solidity +function multiRevoke(Attestation[] memory attestations, uint256[] memory values) external payable returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct multiRevokeCall { + #[allow(missing_docs)] + pub attestations: alloy::sol_types::private::Vec< + ::RustType, + >, + #[allow(missing_docs)] + pub values: alloy::sol_types::private::Vec< + alloy::sol_types::private::primitives::aliases::U256, + >, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`multiRevoke((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes)[],uint256[])`](multiRevokeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct multiRevokeReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Array, + alloy::sol_types::sol_data::Array>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Vec< + ::RustType, + >, + alloy::sol_types::private::Vec< + alloy::sol_types::private::primitives::aliases::U256, + >, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: multiRevokeCall) -> Self { + (value.attestations, value.values) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for multiRevokeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + attestations: tuple.0, + values: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: multiRevokeReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for multiRevokeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for multiRevokeCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Array, + alloy::sol_types::sol_data::Array>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "multiRevoke((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes)[],uint256[])"; + const SELECTOR: [u8; 4] = [136u8, 229u8, 178u8, 217u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.attestations), + , + > as alloy_sol_types::SolType>::tokenize(&self.values), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: multiRevokeReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: multiRevokeReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `revoke((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes))` and selector `0xe49617e1`. +```solidity +function revoke(Attestation memory attestation) external payable returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct revokeCall { + #[allow(missing_docs)] + pub attestation: ::RustType, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`revoke((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes))`](revokeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct revokeReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Attestation,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: revokeCall) -> Self { + (value.attestation,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for revokeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { attestation: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: revokeReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for revokeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for revokeCall { + type Parameters<'a> = (Attestation,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "revoke((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes))"; + const SELECTOR: [u8; 4] = [228u8, 150u8, 23u8, 225u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + (::tokenize(&self.attestation),) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: revokeReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: revokeReturn = r.into(); + r._0 + }) + } + } + }; + ///Container for all the [`ISchemaResolver`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum ISchemaResolverCalls { + #[allow(missing_docs)] + attest(attestCall), + #[allow(missing_docs)] + isPayable(isPayableCall), + #[allow(missing_docs)] + multiAttest(multiAttestCall), + #[allow(missing_docs)] + multiRevoke(multiRevokeCall), + #[allow(missing_docs)] + revoke(revokeCall), + } + impl ISchemaResolverCalls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [136u8, 229u8, 178u8, 217u8], + [145u8, 219u8, 11u8, 126u8], + [206u8, 70u8, 224u8, 70u8], + [228u8, 150u8, 23u8, 225u8], + [230u8, 12u8, 53u8, 5u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(multiRevoke), + ::core::stringify!(multiAttest), + ::core::stringify!(isPayable), + ::core::stringify!(revoke), + ::core::stringify!(attest), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for ISchemaResolverCalls { + const NAME: &'static str = "ISchemaResolverCalls"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 5usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::attest(_) => ::SELECTOR, + Self::isPayable(_) => { + ::SELECTOR + } + Self::multiAttest(_) => { + ::SELECTOR + } + Self::multiRevoke(_) => { + ::SELECTOR + } + Self::revoke(_) => ::SELECTOR, + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn multiRevoke( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(ISchemaResolverCalls::multiRevoke) + } + multiRevoke + }, + { + fn multiAttest( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(ISchemaResolverCalls::multiAttest) + } + multiAttest + }, + { + fn isPayable( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(ISchemaResolverCalls::isPayable) + } + isPayable + }, + { + fn revoke( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(ISchemaResolverCalls::revoke) + } + revoke + }, + { + fn attest( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(ISchemaResolverCalls::attest) + } + attest + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn multiRevoke( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(ISchemaResolverCalls::multiRevoke) + } + multiRevoke + }, + { + fn multiAttest( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(ISchemaResolverCalls::multiAttest) + } + multiAttest + }, + { + fn isPayable( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(ISchemaResolverCalls::isPayable) + } + isPayable + }, + { + fn revoke( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(ISchemaResolverCalls::revoke) + } + revoke + }, + { + fn attest( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(ISchemaResolverCalls::attest) + } + attest + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::attest(inner) => { + ::abi_encoded_size(inner) + } + Self::isPayable(inner) => { + ::abi_encoded_size(inner) + } + Self::multiAttest(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::multiRevoke(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::revoke(inner) => { + ::abi_encoded_size(inner) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::attest(inner) => { + ::abi_encode_raw(inner, out) + } + Self::isPayable(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::multiAttest(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::multiRevoke(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::revoke(inner) => { + ::abi_encode_raw(inner, out) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`ISchemaResolver`](self) contract instance. + +See the [wrapper's documentation](`ISchemaResolverInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> ISchemaResolverInstance { + ISchemaResolverInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + ISchemaResolverInstance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + ISchemaResolverInstance::::deploy_builder(__provider) + } + /**A [`ISchemaResolver`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`ISchemaResolver`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct ISchemaResolverInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for ISchemaResolverInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("ISchemaResolverInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > ISchemaResolverInstance { + /**Creates a new wrapper around an on-chain [`ISchemaResolver`](self) contract instance. + +See the [wrapper's documentation](`ISchemaResolverInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl ISchemaResolverInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> ISchemaResolverInstance { + ISchemaResolverInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > ISchemaResolverInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`attest`] function. + pub fn attest( + &self, + attestation: ::RustType, + ) -> alloy_contract::SolCallBuilder<&P, attestCall, N> { + self.call_builder(&attestCall { attestation }) + } + ///Creates a new call builder for the [`isPayable`] function. + pub fn isPayable(&self) -> alloy_contract::SolCallBuilder<&P, isPayableCall, N> { + self.call_builder(&isPayableCall) + } + ///Creates a new call builder for the [`multiAttest`] function. + pub fn multiAttest( + &self, + attestations: alloy::sol_types::private::Vec< + ::RustType, + >, + values: alloy::sol_types::private::Vec< + alloy::sol_types::private::primitives::aliases::U256, + >, + ) -> alloy_contract::SolCallBuilder<&P, multiAttestCall, N> { + self.call_builder( + &multiAttestCall { + attestations, + values, + }, + ) + } + ///Creates a new call builder for the [`multiRevoke`] function. + pub fn multiRevoke( + &self, + attestations: alloy::sol_types::private::Vec< + ::RustType, + >, + values: alloy::sol_types::private::Vec< + alloy::sol_types::private::primitives::aliases::U256, + >, + ) -> alloy_contract::SolCallBuilder<&P, multiRevokeCall, N> { + self.call_builder( + &multiRevokeCall { + attestations, + values, + }, + ) + } + ///Creates a new call builder for the [`revoke`] function. + pub fn revoke( + &self, + attestation: ::RustType, + ) -> alloy_contract::SolCallBuilder<&P, revokeCall, N> { + self.call_builder(&revokeCall { attestation }) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > ISchemaResolverInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + } +} diff --git a/bindings/rust/src/icb_multicall.rs b/bindings/rust/src/icb_multicall.rs new file mode 100644 index 000000000..f35c64e44 --- /dev/null +++ b/bindings/rust/src/icb_multicall.rs @@ -0,0 +1,1873 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface ICBMulticall { + struct Call3 { + address target; + bool allowFailure; + bytes callData; + } + struct Call3Value { + address target; + bool allowFailure; + uint256 value; + bytes callData; + } + struct Result { + bool success; + bytes returnData; + } + + function aggregate3(Call3[] memory calls) external payable returns (Result[] memory returnData); + function aggregate3Value(Call3Value[] memory calls) external payable returns (Result[] memory returnData); + function aggregateDelegateCalls(Call3[] memory calls) external payable returns (Result[] memory returnData); +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "function", + "name": "aggregate3", + "inputs": [ + { + "name": "calls", + "type": "tuple[]", + "internalType": "struct Call3[]", + "components": [ + { + "name": "target", + "type": "address", + "internalType": "address" + }, + { + "name": "allowFailure", + "type": "bool", + "internalType": "bool" + }, + { + "name": "callData", + "type": "bytes", + "internalType": "bytes" + } + ] + } + ], + "outputs": [ + { + "name": "returnData", + "type": "tuple[]", + "internalType": "struct Result[]", + "components": [ + { + "name": "success", + "type": "bool", + "internalType": "bool" + }, + { + "name": "returnData", + "type": "bytes", + "internalType": "bytes" + } + ] + } + ], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "aggregate3Value", + "inputs": [ + { + "name": "calls", + "type": "tuple[]", + "internalType": "struct Call3Value[]", + "components": [ + { + "name": "target", + "type": "address", + "internalType": "address" + }, + { + "name": "allowFailure", + "type": "bool", + "internalType": "bool" + }, + { + "name": "value", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "callData", + "type": "bytes", + "internalType": "bytes" + } + ] + } + ], + "outputs": [ + { + "name": "returnData", + "type": "tuple[]", + "internalType": "struct Result[]", + "components": [ + { + "name": "success", + "type": "bool", + "internalType": "bool" + }, + { + "name": "returnData", + "type": "bytes", + "internalType": "bytes" + } + ] + } + ], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "aggregateDelegateCalls", + "inputs": [ + { + "name": "calls", + "type": "tuple[]", + "internalType": "struct Call3[]", + "components": [ + { + "name": "target", + "type": "address", + "internalType": "address" + }, + { + "name": "allowFailure", + "type": "bool", + "internalType": "bool" + }, + { + "name": "callData", + "type": "bytes", + "internalType": "bytes" + } + ] + } + ], + "outputs": [ + { + "name": "returnData", + "type": "tuple[]", + "internalType": "struct Result[]", + "components": [ + { + "name": "success", + "type": "bool", + "internalType": "bool" + }, + { + "name": "returnData", + "type": "bytes", + "internalType": "bytes" + } + ] + } + ], + "stateMutability": "payable" + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod ICBMulticall { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"", + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**```solidity +struct Call3 { address target; bool allowFailure; bytes callData; } +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct Call3 { + #[allow(missing_docs)] + pub target: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub allowFailure: bool, + #[allow(missing_docs)] + pub callData: alloy::sol_types::private::Bytes, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Bool, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + bool, + alloy::sol_types::private::Bytes, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: Call3) -> Self { + (value.target, value.allowFailure, value.callData) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for Call3 { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + target: tuple.0, + allowFailure: tuple.1, + callData: tuple.2, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolValue for Call3 { + type SolType = Self; + } + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for Call3 { + #[inline] + fn stv_to_tokens(&self) -> ::Token<'_> { + ( + ::tokenize( + &self.target, + ), + ::tokenize( + &self.allowFailure, + ), + ::tokenize( + &self.callData, + ), + ) + } + #[inline] + fn stv_abi_encoded_size(&self) -> usize { + if let Some(size) = ::ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encoded_size(&tuple) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + ::eip712_hash_struct(self) + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + if let Some(size) = ::PACKED_ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for Call3 { + type RustType = Self; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = ::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + as alloy_sol_types::SolType>::valid_token(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + let tuple = as alloy_sol_types::SolType>::detokenize(token); + >>::from(tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolStruct for Call3 { + const NAME: &'static str = "Call3"; + #[inline] + fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> { + alloy_sol_types::private::Cow::Borrowed( + "Call3(address target,bool allowFailure,bytes callData)", + ) + } + #[inline] + fn eip712_components() -> alloy_sol_types::private::Vec< + alloy_sol_types::private::Cow<'static, str>, + > { + alloy_sol_types::private::Vec::new() + } + #[inline] + fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> { + ::eip712_root_type() + } + #[inline] + fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec { + [ + ::eip712_data_word( + &self.target, + ) + .0, + ::eip712_data_word( + &self.allowFailure, + ) + .0, + ::eip712_data_word( + &self.callData, + ) + .0, + ] + .concat() + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for Call3 { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + 0usize + + ::topic_preimage_length( + &rust.target, + ) + + ::topic_preimage_length( + &rust.allowFailure, + ) + + ::topic_preimage_length( + &rust.callData, + ) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + out.reserve( + ::topic_preimage_length(rust), + ); + ::encode_topic_preimage( + &rust.target, + out, + ); + ::encode_topic_preimage( + &rust.allowFailure, + out, + ); + ::encode_topic_preimage( + &rust.callData, + out, + ); + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + let mut out = alloy_sol_types::private::Vec::new(); + ::encode_topic_preimage( + rust, + &mut out, + ); + alloy_sol_types::abi::token::WordToken( + alloy_sol_types::private::keccak256(out), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**```solidity +struct Call3Value { address target; bool allowFailure; uint256 value; bytes callData; } +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct Call3Value { + #[allow(missing_docs)] + pub target: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub allowFailure: bool, + #[allow(missing_docs)] + pub value: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub callData: alloy::sol_types::private::Bytes, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Bool, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + bool, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::Bytes, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: Call3Value) -> Self { + (value.target, value.allowFailure, value.value, value.callData) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for Call3Value { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + target: tuple.0, + allowFailure: tuple.1, + value: tuple.2, + callData: tuple.3, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolValue for Call3Value { + type SolType = Self; + } + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for Call3Value { + #[inline] + fn stv_to_tokens(&self) -> ::Token<'_> { + ( + ::tokenize( + &self.target, + ), + ::tokenize( + &self.allowFailure, + ), + as alloy_sol_types::SolType>::tokenize(&self.value), + ::tokenize( + &self.callData, + ), + ) + } + #[inline] + fn stv_abi_encoded_size(&self) -> usize { + if let Some(size) = ::ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encoded_size(&tuple) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + ::eip712_hash_struct(self) + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + if let Some(size) = ::PACKED_ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for Call3Value { + type RustType = Self; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = ::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + as alloy_sol_types::SolType>::valid_token(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + let tuple = as alloy_sol_types::SolType>::detokenize(token); + >>::from(tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolStruct for Call3Value { + const NAME: &'static str = "Call3Value"; + #[inline] + fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> { + alloy_sol_types::private::Cow::Borrowed( + "Call3Value(address target,bool allowFailure,uint256 value,bytes callData)", + ) + } + #[inline] + fn eip712_components() -> alloy_sol_types::private::Vec< + alloy_sol_types::private::Cow<'static, str>, + > { + alloy_sol_types::private::Vec::new() + } + #[inline] + fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> { + ::eip712_root_type() + } + #[inline] + fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec { + [ + ::eip712_data_word( + &self.target, + ) + .0, + ::eip712_data_word( + &self.allowFailure, + ) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.value) + .0, + ::eip712_data_word( + &self.callData, + ) + .0, + ] + .concat() + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for Call3Value { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + 0usize + + ::topic_preimage_length( + &rust.target, + ) + + ::topic_preimage_length( + &rust.allowFailure, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length(&rust.value) + + ::topic_preimage_length( + &rust.callData, + ) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + out.reserve( + ::topic_preimage_length(rust), + ); + ::encode_topic_preimage( + &rust.target, + out, + ); + ::encode_topic_preimage( + &rust.allowFailure, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.value, + out, + ); + ::encode_topic_preimage( + &rust.callData, + out, + ); + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + let mut out = alloy_sol_types::private::Vec::new(); + ::encode_topic_preimage( + rust, + &mut out, + ); + alloy_sol_types::abi::token::WordToken( + alloy_sol_types::private::keccak256(out), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**```solidity +struct Result { bool success; bytes returnData; } +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct Result { + #[allow(missing_docs)] + pub success: bool, + #[allow(missing_docs)] + pub returnData: alloy::sol_types::private::Bytes, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Bool, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool, alloy::sol_types::private::Bytes); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: Result) -> Self { + (value.success, value.returnData) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for Result { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + success: tuple.0, + returnData: tuple.1, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolValue for Result { + type SolType = Self; + } + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for Result { + #[inline] + fn stv_to_tokens(&self) -> ::Token<'_> { + ( + ::tokenize( + &self.success, + ), + ::tokenize( + &self.returnData, + ), + ) + } + #[inline] + fn stv_abi_encoded_size(&self) -> usize { + if let Some(size) = ::ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encoded_size(&tuple) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + ::eip712_hash_struct(self) + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + if let Some(size) = ::PACKED_ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for Result { + type RustType = Self; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = ::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + as alloy_sol_types::SolType>::valid_token(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + let tuple = as alloy_sol_types::SolType>::detokenize(token); + >>::from(tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolStruct for Result { + const NAME: &'static str = "Result"; + #[inline] + fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> { + alloy_sol_types::private::Cow::Borrowed( + "Result(bool success,bytes returnData)", + ) + } + #[inline] + fn eip712_components() -> alloy_sol_types::private::Vec< + alloy_sol_types::private::Cow<'static, str>, + > { + alloy_sol_types::private::Vec::new() + } + #[inline] + fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> { + ::eip712_root_type() + } + #[inline] + fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec { + [ + ::eip712_data_word( + &self.success, + ) + .0, + ::eip712_data_word( + &self.returnData, + ) + .0, + ] + .concat() + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for Result { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + 0usize + + ::topic_preimage_length( + &rust.success, + ) + + ::topic_preimage_length( + &rust.returnData, + ) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + out.reserve( + ::topic_preimage_length(rust), + ); + ::encode_topic_preimage( + &rust.success, + out, + ); + ::encode_topic_preimage( + &rust.returnData, + out, + ); + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + let mut out = alloy_sol_types::private::Vec::new(); + ::encode_topic_preimage( + rust, + &mut out, + ); + alloy_sol_types::abi::token::WordToken( + alloy_sol_types::private::keccak256(out), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `aggregate3((address,bool,bytes)[])` and selector `0x82ad56cb`. +```solidity +function aggregate3(Call3[] memory calls) external payable returns (Result[] memory returnData); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct aggregate3Call { + #[allow(missing_docs)] + pub calls: alloy::sol_types::private::Vec< + ::RustType, + >, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`aggregate3((address,bool,bytes)[])`](aggregate3Call) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct aggregate3Return { + #[allow(missing_docs)] + pub returnData: alloy::sol_types::private::Vec< + ::RustType, + >, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Array,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Vec< + ::RustType, + >, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: aggregate3Call) -> Self { + (value.calls,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for aggregate3Call { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { calls: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Array,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Vec< + ::RustType, + >, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: aggregate3Return) -> Self { + (value.returnData,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for aggregate3Return { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { returnData: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for aggregate3Call { + type Parameters<'a> = (alloy::sol_types::sol_data::Array,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Vec< + ::RustType, + >; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Array,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "aggregate3((address,bool,bytes)[])"; + const SELECTOR: [u8; 4] = [130u8, 173u8, 86u8, 203u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.calls), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: aggregate3Return = r.into(); + r.returnData + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: aggregate3Return = r.into(); + r.returnData + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `aggregate3Value((address,bool,uint256,bytes)[])` and selector `0x174dea71`. +```solidity +function aggregate3Value(Call3Value[] memory calls) external payable returns (Result[] memory returnData); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct aggregate3ValueCall { + #[allow(missing_docs)] + pub calls: alloy::sol_types::private::Vec< + ::RustType, + >, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`aggregate3Value((address,bool,uint256,bytes)[])`](aggregate3ValueCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct aggregate3ValueReturn { + #[allow(missing_docs)] + pub returnData: alloy::sol_types::private::Vec< + ::RustType, + >, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Array, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Vec< + ::RustType, + >, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: aggregate3ValueCall) -> Self { + (value.calls,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for aggregate3ValueCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { calls: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Array,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Vec< + ::RustType, + >, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: aggregate3ValueReturn) -> Self { + (value.returnData,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for aggregate3ValueReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { returnData: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for aggregate3ValueCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Array,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Vec< + ::RustType, + >; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Array,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "aggregate3Value((address,bool,uint256,bytes)[])"; + const SELECTOR: [u8; 4] = [23u8, 77u8, 234u8, 113u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.calls), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: aggregate3ValueReturn = r.into(); + r.returnData + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: aggregate3ValueReturn = r.into(); + r.returnData + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `aggregateDelegateCalls((address,bool,bytes)[])` and selector `0x858cc832`. +```solidity +function aggregateDelegateCalls(Call3[] memory calls) external payable returns (Result[] memory returnData); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct aggregateDelegateCallsCall { + #[allow(missing_docs)] + pub calls: alloy::sol_types::private::Vec< + ::RustType, + >, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`aggregateDelegateCalls((address,bool,bytes)[])`](aggregateDelegateCallsCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct aggregateDelegateCallsReturn { + #[allow(missing_docs)] + pub returnData: alloy::sol_types::private::Vec< + ::RustType, + >, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Array,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Vec< + ::RustType, + >, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: aggregateDelegateCallsCall) -> Self { + (value.calls,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for aggregateDelegateCallsCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { calls: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Array,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Vec< + ::RustType, + >, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: aggregateDelegateCallsReturn) -> Self { + (value.returnData,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for aggregateDelegateCallsReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { returnData: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for aggregateDelegateCallsCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Array,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Vec< + ::RustType, + >; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Array,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "aggregateDelegateCalls((address,bool,bytes)[])"; + const SELECTOR: [u8; 4] = [133u8, 140u8, 200u8, 50u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.calls), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: aggregateDelegateCallsReturn = r.into(); + r.returnData + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: aggregateDelegateCallsReturn = r.into(); + r.returnData + }) + } + } + }; + ///Container for all the [`ICBMulticall`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum ICBMulticallCalls { + #[allow(missing_docs)] + aggregate3(aggregate3Call), + #[allow(missing_docs)] + aggregate3Value(aggregate3ValueCall), + #[allow(missing_docs)] + aggregateDelegateCalls(aggregateDelegateCallsCall), + } + impl ICBMulticallCalls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [23u8, 77u8, 234u8, 113u8], + [130u8, 173u8, 86u8, 203u8], + [133u8, 140u8, 200u8, 50u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(aggregate3Value), + ::core::stringify!(aggregate3), + ::core::stringify!(aggregateDelegateCalls), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for ICBMulticallCalls { + const NAME: &'static str = "ICBMulticallCalls"; + const MIN_DATA_LENGTH: usize = 64usize; + const COUNT: usize = 3usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::aggregate3(_) => { + ::SELECTOR + } + Self::aggregate3Value(_) => { + ::SELECTOR + } + Self::aggregateDelegateCalls(_) => { + ::SELECTOR + } + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn aggregate3Value( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(ICBMulticallCalls::aggregate3Value) + } + aggregate3Value + }, + { + fn aggregate3( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(ICBMulticallCalls::aggregate3) + } + aggregate3 + }, + { + fn aggregateDelegateCalls( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(ICBMulticallCalls::aggregateDelegateCalls) + } + aggregateDelegateCalls + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn aggregate3Value( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(ICBMulticallCalls::aggregate3Value) + } + aggregate3Value + }, + { + fn aggregate3( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(ICBMulticallCalls::aggregate3) + } + aggregate3 + }, + { + fn aggregateDelegateCalls( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(ICBMulticallCalls::aggregateDelegateCalls) + } + aggregateDelegateCalls + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::aggregate3(inner) => { + ::abi_encoded_size(inner) + } + Self::aggregate3Value(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::aggregateDelegateCalls(inner) => { + ::abi_encoded_size( + inner, + ) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::aggregate3(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::aggregate3Value(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::aggregateDelegateCalls(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`ICBMulticall`](self) contract instance. + +See the [wrapper's documentation](`ICBMulticallInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> ICBMulticallInstance { + ICBMulticallInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + ICBMulticallInstance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + ICBMulticallInstance::::deploy_builder(__provider) + } + /**A [`ICBMulticall`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`ICBMulticall`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct ICBMulticallInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for ICBMulticallInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("ICBMulticallInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > ICBMulticallInstance { + /**Creates a new wrapper around an on-chain [`ICBMulticall`](self) contract instance. + +See the [wrapper's documentation](`ICBMulticallInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl ICBMulticallInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> ICBMulticallInstance { + ICBMulticallInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > ICBMulticallInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`aggregate3`] function. + pub fn aggregate3( + &self, + calls: alloy::sol_types::private::Vec< + ::RustType, + >, + ) -> alloy_contract::SolCallBuilder<&P, aggregate3Call, N> { + self.call_builder(&aggregate3Call { calls }) + } + ///Creates a new call builder for the [`aggregate3Value`] function. + pub fn aggregate3Value( + &self, + calls: alloy::sol_types::private::Vec< + ::RustType, + >, + ) -> alloy_contract::SolCallBuilder<&P, aggregate3ValueCall, N> { + self.call_builder(&aggregate3ValueCall { calls }) + } + ///Creates a new call builder for the [`aggregateDelegateCalls`] function. + pub fn aggregateDelegateCalls( + &self, + calls: alloy::sol_types::private::Vec< + ::RustType, + >, + ) -> alloy_contract::SolCallBuilder<&P, aggregateDelegateCallsCall, N> { + self.call_builder( + &aggregateDelegateCallsCall { + calls, + }, + ) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > ICBMulticallInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + } +} diff --git a/bindings/rust/src/ieas.rs b/bindings/rust/src/ieas.rs new file mode 100644 index 000000000..e1fbf8df5 --- /dev/null +++ b/bindings/rust/src/ieas.rs @@ -0,0 +1,8844 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface IEAS { + struct Attestation { + bytes32 uid; + bytes32 schema; + uint64 time; + uint64 expirationTime; + uint64 revocationTime; + bytes32 refUID; + address recipient; + address attester; + bool revocable; + bytes data; + } + struct AttestationRequest { + bytes32 schema; + AttestationRequestData data; + } + struct AttestationRequestData { + address recipient; + uint64 expirationTime; + bool revocable; + bytes32 refUID; + bytes data; + uint256 value; + } + struct DelegatedAttestationRequest { + bytes32 schema; + AttestationRequestData data; + Signature signature; + address attester; + uint64 deadline; + } + struct DelegatedRevocationRequest { + bytes32 schema; + RevocationRequestData data; + Signature signature; + address revoker; + uint64 deadline; + } + struct MultiAttestationRequest { + bytes32 schema; + AttestationRequestData[] data; + } + struct MultiDelegatedAttestationRequest { + bytes32 schema; + AttestationRequestData[] data; + Signature[] signatures; + address attester; + uint64 deadline; + } + struct MultiDelegatedRevocationRequest { + bytes32 schema; + RevocationRequestData[] data; + Signature[] signatures; + address revoker; + uint64 deadline; + } + struct MultiRevocationRequest { + bytes32 schema; + RevocationRequestData[] data; + } + struct RevocationRequest { + bytes32 schema; + RevocationRequestData data; + } + struct RevocationRequestData { + bytes32 uid; + uint256 value; + } + struct Signature { + uint8 v; + bytes32 r; + bytes32 s; + } + + event Attested(address indexed recipient, address indexed attester, bytes32 uid, bytes32 indexed schemaUID); + event Revoked(address indexed recipient, address indexed attester, bytes32 uid, bytes32 indexed schemaUID); + event RevokedOffchain(address indexed revoker, bytes32 indexed data, uint64 indexed timestamp); + event Timestamped(bytes32 indexed data, uint64 indexed timestamp); + + function attest(AttestationRequest memory request) external payable returns (bytes32); + function attestByDelegation(DelegatedAttestationRequest memory delegatedRequest) external payable returns (bytes32); + function getAttestation(bytes32 uid) external view returns (Attestation memory); + function getRevokeOffchain(address revoker, bytes32 data) external view returns (uint64); + function getSchemaRegistry() external view returns (address); + function getTimestamp(bytes32 data) external view returns (uint64); + function isAttestationValid(bytes32 uid) external view returns (bool); + function multiAttest(MultiAttestationRequest[] memory multiRequests) external payable returns (bytes32[] memory); + function multiAttestByDelegation(MultiDelegatedAttestationRequest[] memory multiDelegatedRequests) external payable returns (bytes32[] memory); + function multiRevoke(MultiRevocationRequest[] memory multiRequests) external payable; + function multiRevokeByDelegation(MultiDelegatedRevocationRequest[] memory multiDelegatedRequests) external payable; + function multiRevokeOffchain(bytes32[] memory data) external returns (uint64); + function multiTimestamp(bytes32[] memory data) external returns (uint64); + function revoke(RevocationRequest memory request) external payable; + function revokeByDelegation(DelegatedRevocationRequest memory delegatedRequest) external payable; + function revokeOffchain(bytes32 data) external returns (uint64); + function timestamp(bytes32 data) external returns (uint64); +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "function", + "name": "attest", + "inputs": [ + { + "name": "request", + "type": "tuple", + "internalType": "struct AttestationRequest", + "components": [ + { + "name": "schema", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "data", + "type": "tuple", + "internalType": "struct AttestationRequestData", + "components": [ + { + "name": "recipient", + "type": "address", + "internalType": "address" + }, + { + "name": "expirationTime", + "type": "uint64", + "internalType": "uint64" + }, + { + "name": "revocable", + "type": "bool", + "internalType": "bool" + }, + { + "name": "refUID", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "data", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "value", + "type": "uint256", + "internalType": "uint256" + } + ] + } + ] + } + ], + "outputs": [ + { + "name": "", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "attestByDelegation", + "inputs": [ + { + "name": "delegatedRequest", + "type": "tuple", + "internalType": "struct DelegatedAttestationRequest", + "components": [ + { + "name": "schema", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "data", + "type": "tuple", + "internalType": "struct AttestationRequestData", + "components": [ + { + "name": "recipient", + "type": "address", + "internalType": "address" + }, + { + "name": "expirationTime", + "type": "uint64", + "internalType": "uint64" + }, + { + "name": "revocable", + "type": "bool", + "internalType": "bool" + }, + { + "name": "refUID", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "data", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "value", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { + "name": "signature", + "type": "tuple", + "internalType": "struct Signature", + "components": [ + { + "name": "v", + "type": "uint8", + "internalType": "uint8" + }, + { + "name": "r", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "s", + "type": "bytes32", + "internalType": "bytes32" + } + ] + }, + { + "name": "attester", + "type": "address", + "internalType": "address" + }, + { + "name": "deadline", + "type": "uint64", + "internalType": "uint64" + } + ] + } + ], + "outputs": [ + { + "name": "", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "getAttestation", + "inputs": [ + { + "name": "uid", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "outputs": [ + { + "name": "", + "type": "tuple", + "internalType": "struct Attestation", + "components": [ + { + "name": "uid", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "schema", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "time", + "type": "uint64", + "internalType": "uint64" + }, + { + "name": "expirationTime", + "type": "uint64", + "internalType": "uint64" + }, + { + "name": "revocationTime", + "type": "uint64", + "internalType": "uint64" + }, + { + "name": "refUID", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "recipient", + "type": "address", + "internalType": "address" + }, + { + "name": "attester", + "type": "address", + "internalType": "address" + }, + { + "name": "revocable", + "type": "bool", + "internalType": "bool" + }, + { + "name": "data", + "type": "bytes", + "internalType": "bytes" + } + ] + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "getRevokeOffchain", + "inputs": [ + { + "name": "revoker", + "type": "address", + "internalType": "address" + }, + { + "name": "data", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "outputs": [ + { + "name": "", + "type": "uint64", + "internalType": "uint64" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "getSchemaRegistry", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract ISchemaRegistry" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "getTimestamp", + "inputs": [ + { + "name": "data", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "outputs": [ + { + "name": "", + "type": "uint64", + "internalType": "uint64" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "isAttestationValid", + "inputs": [ + { + "name": "uid", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "multiAttest", + "inputs": [ + { + "name": "multiRequests", + "type": "tuple[]", + "internalType": "struct MultiAttestationRequest[]", + "components": [ + { + "name": "schema", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "data", + "type": "tuple[]", + "internalType": "struct AttestationRequestData[]", + "components": [ + { + "name": "recipient", + "type": "address", + "internalType": "address" + }, + { + "name": "expirationTime", + "type": "uint64", + "internalType": "uint64" + }, + { + "name": "revocable", + "type": "bool", + "internalType": "bool" + }, + { + "name": "refUID", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "data", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "value", + "type": "uint256", + "internalType": "uint256" + } + ] + } + ] + } + ], + "outputs": [ + { + "name": "", + "type": "bytes32[]", + "internalType": "bytes32[]" + } + ], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "multiAttestByDelegation", + "inputs": [ + { + "name": "multiDelegatedRequests", + "type": "tuple[]", + "internalType": "struct MultiDelegatedAttestationRequest[]", + "components": [ + { + "name": "schema", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "data", + "type": "tuple[]", + "internalType": "struct AttestationRequestData[]", + "components": [ + { + "name": "recipient", + "type": "address", + "internalType": "address" + }, + { + "name": "expirationTime", + "type": "uint64", + "internalType": "uint64" + }, + { + "name": "revocable", + "type": "bool", + "internalType": "bool" + }, + { + "name": "refUID", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "data", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "value", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { + "name": "signatures", + "type": "tuple[]", + "internalType": "struct Signature[]", + "components": [ + { + "name": "v", + "type": "uint8", + "internalType": "uint8" + }, + { + "name": "r", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "s", + "type": "bytes32", + "internalType": "bytes32" + } + ] + }, + { + "name": "attester", + "type": "address", + "internalType": "address" + }, + { + "name": "deadline", + "type": "uint64", + "internalType": "uint64" + } + ] + } + ], + "outputs": [ + { + "name": "", + "type": "bytes32[]", + "internalType": "bytes32[]" + } + ], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "multiRevoke", + "inputs": [ + { + "name": "multiRequests", + "type": "tuple[]", + "internalType": "struct MultiRevocationRequest[]", + "components": [ + { + "name": "schema", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "data", + "type": "tuple[]", + "internalType": "struct RevocationRequestData[]", + "components": [ + { + "name": "uid", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "value", + "type": "uint256", + "internalType": "uint256" + } + ] + } + ] + } + ], + "outputs": [], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "multiRevokeByDelegation", + "inputs": [ + { + "name": "multiDelegatedRequests", + "type": "tuple[]", + "internalType": "struct MultiDelegatedRevocationRequest[]", + "components": [ + { + "name": "schema", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "data", + "type": "tuple[]", + "internalType": "struct RevocationRequestData[]", + "components": [ + { + "name": "uid", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "value", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { + "name": "signatures", + "type": "tuple[]", + "internalType": "struct Signature[]", + "components": [ + { + "name": "v", + "type": "uint8", + "internalType": "uint8" + }, + { + "name": "r", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "s", + "type": "bytes32", + "internalType": "bytes32" + } + ] + }, + { + "name": "revoker", + "type": "address", + "internalType": "address" + }, + { + "name": "deadline", + "type": "uint64", + "internalType": "uint64" + } + ] + } + ], + "outputs": [], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "multiRevokeOffchain", + "inputs": [ + { + "name": "data", + "type": "bytes32[]", + "internalType": "bytes32[]" + } + ], + "outputs": [ + { + "name": "", + "type": "uint64", + "internalType": "uint64" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "multiTimestamp", + "inputs": [ + { + "name": "data", + "type": "bytes32[]", + "internalType": "bytes32[]" + } + ], + "outputs": [ + { + "name": "", + "type": "uint64", + "internalType": "uint64" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "revoke", + "inputs": [ + { + "name": "request", + "type": "tuple", + "internalType": "struct RevocationRequest", + "components": [ + { + "name": "schema", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "data", + "type": "tuple", + "internalType": "struct RevocationRequestData", + "components": [ + { + "name": "uid", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "value", + "type": "uint256", + "internalType": "uint256" + } + ] + } + ] + } + ], + "outputs": [], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "revokeByDelegation", + "inputs": [ + { + "name": "delegatedRequest", + "type": "tuple", + "internalType": "struct DelegatedRevocationRequest", + "components": [ + { + "name": "schema", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "data", + "type": "tuple", + "internalType": "struct RevocationRequestData", + "components": [ + { + "name": "uid", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "value", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { + "name": "signature", + "type": "tuple", + "internalType": "struct Signature", + "components": [ + { + "name": "v", + "type": "uint8", + "internalType": "uint8" + }, + { + "name": "r", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "s", + "type": "bytes32", + "internalType": "bytes32" + } + ] + }, + { + "name": "revoker", + "type": "address", + "internalType": "address" + }, + { + "name": "deadline", + "type": "uint64", + "internalType": "uint64" + } + ] + } + ], + "outputs": [], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "revokeOffchain", + "inputs": [ + { + "name": "data", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "outputs": [ + { + "name": "", + "type": "uint64", + "internalType": "uint64" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "timestamp", + "inputs": [ + { + "name": "data", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "outputs": [ + { + "name": "", + "type": "uint64", + "internalType": "uint64" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "event", + "name": "Attested", + "inputs": [ + { + "name": "recipient", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "attester", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "uid", + "type": "bytes32", + "indexed": false, + "internalType": "bytes32" + }, + { + "name": "schemaUID", + "type": "bytes32", + "indexed": true, + "internalType": "bytes32" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "Revoked", + "inputs": [ + { + "name": "recipient", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "attester", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "uid", + "type": "bytes32", + "indexed": false, + "internalType": "bytes32" + }, + { + "name": "schemaUID", + "type": "bytes32", + "indexed": true, + "internalType": "bytes32" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "RevokedOffchain", + "inputs": [ + { + "name": "revoker", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "data", + "type": "bytes32", + "indexed": true, + "internalType": "bytes32" + }, + { + "name": "timestamp", + "type": "uint64", + "indexed": true, + "internalType": "uint64" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "Timestamped", + "inputs": [ + { + "name": "data", + "type": "bytes32", + "indexed": true, + "internalType": "bytes32" + }, + { + "name": "timestamp", + "type": "uint64", + "indexed": true, + "internalType": "uint64" + } + ], + "anonymous": false + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod IEAS { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"", + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**```solidity +struct Attestation { bytes32 uid; bytes32 schema; uint64 time; uint64 expirationTime; uint64 revocationTime; bytes32 refUID; address recipient; address attester; bool revocable; bytes data; } +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct Attestation { + #[allow(missing_docs)] + pub uid: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub schema: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub time: u64, + #[allow(missing_docs)] + pub expirationTime: u64, + #[allow(missing_docs)] + pub revocationTime: u64, + #[allow(missing_docs)] + pub refUID: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub recipient: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub attester: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub revocable: bool, + #[allow(missing_docs)] + pub data: alloy::sol_types::private::Bytes, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Uint<64>, + alloy::sol_types::sol_data::Uint<64>, + alloy::sol_types::sol_data::Uint<64>, + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Bool, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::FixedBytes<32>, + alloy::sol_types::private::FixedBytes<32>, + u64, + u64, + u64, + alloy::sol_types::private::FixedBytes<32>, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + bool, + alloy::sol_types::private::Bytes, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: Attestation) -> Self { + ( + value.uid, + value.schema, + value.time, + value.expirationTime, + value.revocationTime, + value.refUID, + value.recipient, + value.attester, + value.revocable, + value.data, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for Attestation { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + uid: tuple.0, + schema: tuple.1, + time: tuple.2, + expirationTime: tuple.3, + revocationTime: tuple.4, + refUID: tuple.5, + recipient: tuple.6, + attester: tuple.7, + revocable: tuple.8, + data: tuple.9, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolValue for Attestation { + type SolType = Self; + } + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for Attestation { + #[inline] + fn stv_to_tokens(&self) -> ::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.uid), + as alloy_sol_types::SolType>::tokenize(&self.schema), + as alloy_sol_types::SolType>::tokenize(&self.time), + as alloy_sol_types::SolType>::tokenize(&self.expirationTime), + as alloy_sol_types::SolType>::tokenize(&self.revocationTime), + as alloy_sol_types::SolType>::tokenize(&self.refUID), + ::tokenize( + &self.recipient, + ), + ::tokenize( + &self.attester, + ), + ::tokenize( + &self.revocable, + ), + ::tokenize( + &self.data, + ), + ) + } + #[inline] + fn stv_abi_encoded_size(&self) -> usize { + if let Some(size) = ::ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encoded_size(&tuple) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + ::eip712_hash_struct(self) + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + if let Some(size) = ::PACKED_ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for Attestation { + type RustType = Self; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = ::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + as alloy_sol_types::SolType>::valid_token(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + let tuple = as alloy_sol_types::SolType>::detokenize(token); + >>::from(tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolStruct for Attestation { + const NAME: &'static str = "Attestation"; + #[inline] + fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> { + alloy_sol_types::private::Cow::Borrowed( + "Attestation(bytes32 uid,bytes32 schema,uint64 time,uint64 expirationTime,uint64 revocationTime,bytes32 refUID,address recipient,address attester,bool revocable,bytes data)", + ) + } + #[inline] + fn eip712_components() -> alloy_sol_types::private::Vec< + alloy_sol_types::private::Cow<'static, str>, + > { + alloy_sol_types::private::Vec::new() + } + #[inline] + fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> { + ::eip712_root_type() + } + #[inline] + fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec { + [ + as alloy_sol_types::SolType>::eip712_data_word(&self.uid) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.schema) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.time) + .0, + as alloy_sol_types::SolType>::eip712_data_word( + &self.expirationTime, + ) + .0, + as alloy_sol_types::SolType>::eip712_data_word( + &self.revocationTime, + ) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.refUID) + .0, + ::eip712_data_word( + &self.recipient, + ) + .0, + ::eip712_data_word( + &self.attester, + ) + .0, + ::eip712_data_word( + &self.revocable, + ) + .0, + ::eip712_data_word( + &self.data, + ) + .0, + ] + .concat() + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for Attestation { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + 0usize + + as alloy_sol_types::EventTopic>::topic_preimage_length(&rust.uid) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.schema, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length(&rust.time) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.expirationTime, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.revocationTime, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.refUID, + ) + + ::topic_preimage_length( + &rust.recipient, + ) + + ::topic_preimage_length( + &rust.attester, + ) + + ::topic_preimage_length( + &rust.revocable, + ) + + ::topic_preimage_length( + &rust.data, + ) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + out.reserve( + ::topic_preimage_length(rust), + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage(&rust.uid, out); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.schema, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.time, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.expirationTime, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.revocationTime, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.refUID, + out, + ); + ::encode_topic_preimage( + &rust.recipient, + out, + ); + ::encode_topic_preimage( + &rust.attester, + out, + ); + ::encode_topic_preimage( + &rust.revocable, + out, + ); + ::encode_topic_preimage( + &rust.data, + out, + ); + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + let mut out = alloy_sol_types::private::Vec::new(); + ::encode_topic_preimage( + rust, + &mut out, + ); + alloy_sol_types::abi::token::WordToken( + alloy_sol_types::private::keccak256(out), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**```solidity +struct AttestationRequest { bytes32 schema; AttestationRequestData data; } +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct AttestationRequest { + #[allow(missing_docs)] + pub schema: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub data: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::FixedBytes<32>, + AttestationRequestData, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::FixedBytes<32>, + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: AttestationRequest) -> Self { + (value.schema, value.data) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for AttestationRequest { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + schema: tuple.0, + data: tuple.1, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolValue for AttestationRequest { + type SolType = Self; + } + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for AttestationRequest { + #[inline] + fn stv_to_tokens(&self) -> ::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.schema), + ::tokenize( + &self.data, + ), + ) + } + #[inline] + fn stv_abi_encoded_size(&self) -> usize { + if let Some(size) = ::ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encoded_size(&tuple) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + ::eip712_hash_struct(self) + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + if let Some(size) = ::PACKED_ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for AttestationRequest { + type RustType = Self; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = ::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + as alloy_sol_types::SolType>::valid_token(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + let tuple = as alloy_sol_types::SolType>::detokenize(token); + >>::from(tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolStruct for AttestationRequest { + const NAME: &'static str = "AttestationRequest"; + #[inline] + fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> { + alloy_sol_types::private::Cow::Borrowed( + "AttestationRequest(bytes32 schema,AttestationRequestData data)", + ) + } + #[inline] + fn eip712_components() -> alloy_sol_types::private::Vec< + alloy_sol_types::private::Cow<'static, str>, + > { + let mut components = alloy_sol_types::private::Vec::with_capacity(1); + components + .push( + ::eip712_root_type(), + ); + components + .extend( + ::eip712_components(), + ); + components + } + #[inline] + fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec { + [ + as alloy_sol_types::SolType>::eip712_data_word(&self.schema) + .0, + ::eip712_data_word( + &self.data, + ) + .0, + ] + .concat() + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for AttestationRequest { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + 0usize + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.schema, + ) + + ::topic_preimage_length( + &rust.data, + ) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + out.reserve( + ::topic_preimage_length(rust), + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.schema, + out, + ); + ::encode_topic_preimage( + &rust.data, + out, + ); + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + let mut out = alloy_sol_types::private::Vec::new(); + ::encode_topic_preimage( + rust, + &mut out, + ); + alloy_sol_types::abi::token::WordToken( + alloy_sol_types::private::keccak256(out), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**```solidity +struct AttestationRequestData { address recipient; uint64 expirationTime; bool revocable; bytes32 refUID; bytes data; uint256 value; } +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct AttestationRequestData { + #[allow(missing_docs)] + pub recipient: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub expirationTime: u64, + #[allow(missing_docs)] + pub revocable: bool, + #[allow(missing_docs)] + pub refUID: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub data: alloy::sol_types::private::Bytes, + #[allow(missing_docs)] + pub value: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<64>, + alloy::sol_types::sol_data::Bool, + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Bytes, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + u64, + bool, + alloy::sol_types::private::FixedBytes<32>, + alloy::sol_types::private::Bytes, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: AttestationRequestData) -> Self { + ( + value.recipient, + value.expirationTime, + value.revocable, + value.refUID, + value.data, + value.value, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for AttestationRequestData { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + recipient: tuple.0, + expirationTime: tuple.1, + revocable: tuple.2, + refUID: tuple.3, + data: tuple.4, + value: tuple.5, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolValue for AttestationRequestData { + type SolType = Self; + } + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for AttestationRequestData { + #[inline] + fn stv_to_tokens(&self) -> ::Token<'_> { + ( + ::tokenize( + &self.recipient, + ), + as alloy_sol_types::SolType>::tokenize(&self.expirationTime), + ::tokenize( + &self.revocable, + ), + as alloy_sol_types::SolType>::tokenize(&self.refUID), + ::tokenize( + &self.data, + ), + as alloy_sol_types::SolType>::tokenize(&self.value), + ) + } + #[inline] + fn stv_abi_encoded_size(&self) -> usize { + if let Some(size) = ::ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encoded_size(&tuple) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + ::eip712_hash_struct(self) + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + if let Some(size) = ::PACKED_ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for AttestationRequestData { + type RustType = Self; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = ::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + as alloy_sol_types::SolType>::valid_token(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + let tuple = as alloy_sol_types::SolType>::detokenize(token); + >>::from(tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolStruct for AttestationRequestData { + const NAME: &'static str = "AttestationRequestData"; + #[inline] + fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> { + alloy_sol_types::private::Cow::Borrowed( + "AttestationRequestData(address recipient,uint64 expirationTime,bool revocable,bytes32 refUID,bytes data,uint256 value)", + ) + } + #[inline] + fn eip712_components() -> alloy_sol_types::private::Vec< + alloy_sol_types::private::Cow<'static, str>, + > { + alloy_sol_types::private::Vec::new() + } + #[inline] + fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> { + ::eip712_root_type() + } + #[inline] + fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec { + [ + ::eip712_data_word( + &self.recipient, + ) + .0, + as alloy_sol_types::SolType>::eip712_data_word( + &self.expirationTime, + ) + .0, + ::eip712_data_word( + &self.revocable, + ) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.refUID) + .0, + ::eip712_data_word( + &self.data, + ) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.value) + .0, + ] + .concat() + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for AttestationRequestData { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + 0usize + + ::topic_preimage_length( + &rust.recipient, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.expirationTime, + ) + + ::topic_preimage_length( + &rust.revocable, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.refUID, + ) + + ::topic_preimage_length( + &rust.data, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length(&rust.value) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + out.reserve( + ::topic_preimage_length(rust), + ); + ::encode_topic_preimage( + &rust.recipient, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.expirationTime, + out, + ); + ::encode_topic_preimage( + &rust.revocable, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.refUID, + out, + ); + ::encode_topic_preimage( + &rust.data, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.value, + out, + ); + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + let mut out = alloy_sol_types::private::Vec::new(); + ::encode_topic_preimage( + rust, + &mut out, + ); + alloy_sol_types::abi::token::WordToken( + alloy_sol_types::private::keccak256(out), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**```solidity +struct DelegatedAttestationRequest { bytes32 schema; AttestationRequestData data; Signature signature; address attester; uint64 deadline; } +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct DelegatedAttestationRequest { + #[allow(missing_docs)] + pub schema: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub data: ::RustType, + #[allow(missing_docs)] + pub signature: ::RustType, + #[allow(missing_docs)] + pub attester: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub deadline: u64, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::FixedBytes<32>, + AttestationRequestData, + Signature, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<64>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::FixedBytes<32>, + ::RustType, + ::RustType, + alloy::sol_types::private::Address, + u64, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: DelegatedAttestationRequest) -> Self { + ( + value.schema, + value.data, + value.signature, + value.attester, + value.deadline, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for DelegatedAttestationRequest { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + schema: tuple.0, + data: tuple.1, + signature: tuple.2, + attester: tuple.3, + deadline: tuple.4, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolValue for DelegatedAttestationRequest { + type SolType = Self; + } + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue + for DelegatedAttestationRequest { + #[inline] + fn stv_to_tokens(&self) -> ::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.schema), + ::tokenize( + &self.data, + ), + ::tokenize(&self.signature), + ::tokenize( + &self.attester, + ), + as alloy_sol_types::SolType>::tokenize(&self.deadline), + ) + } + #[inline] + fn stv_abi_encoded_size(&self) -> usize { + if let Some(size) = ::ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encoded_size(&tuple) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + ::eip712_hash_struct(self) + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + if let Some(size) = ::PACKED_ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for DelegatedAttestationRequest { + type RustType = Self; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = ::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + as alloy_sol_types::SolType>::valid_token(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + let tuple = as alloy_sol_types::SolType>::detokenize(token); + >>::from(tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolStruct for DelegatedAttestationRequest { + const NAME: &'static str = "DelegatedAttestationRequest"; + #[inline] + fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> { + alloy_sol_types::private::Cow::Borrowed( + "DelegatedAttestationRequest(bytes32 schema,AttestationRequestData data,Signature signature,address attester,uint64 deadline)", + ) + } + #[inline] + fn eip712_components() -> alloy_sol_types::private::Vec< + alloy_sol_types::private::Cow<'static, str>, + > { + let mut components = alloy_sol_types::private::Vec::with_capacity(2); + components + .push( + ::eip712_root_type(), + ); + components + .extend( + ::eip712_components(), + ); + components + .push(::eip712_root_type()); + components + .extend( + ::eip712_components(), + ); + components + } + #[inline] + fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec { + [ + as alloy_sol_types::SolType>::eip712_data_word(&self.schema) + .0, + ::eip712_data_word( + &self.data, + ) + .0, + ::eip712_data_word( + &self.signature, + ) + .0, + ::eip712_data_word( + &self.attester, + ) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.deadline) + .0, + ] + .concat() + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for DelegatedAttestationRequest { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + 0usize + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.schema, + ) + + ::topic_preimage_length( + &rust.data, + ) + + ::topic_preimage_length( + &rust.signature, + ) + + ::topic_preimage_length( + &rust.attester, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.deadline, + ) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + out.reserve( + ::topic_preimage_length(rust), + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.schema, + out, + ); + ::encode_topic_preimage( + &rust.data, + out, + ); + ::encode_topic_preimage( + &rust.signature, + out, + ); + ::encode_topic_preimage( + &rust.attester, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.deadline, + out, + ); + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + let mut out = alloy_sol_types::private::Vec::new(); + ::encode_topic_preimage( + rust, + &mut out, + ); + alloy_sol_types::abi::token::WordToken( + alloy_sol_types::private::keccak256(out), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**```solidity +struct DelegatedRevocationRequest { bytes32 schema; RevocationRequestData data; Signature signature; address revoker; uint64 deadline; } +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct DelegatedRevocationRequest { + #[allow(missing_docs)] + pub schema: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub data: ::RustType, + #[allow(missing_docs)] + pub signature: ::RustType, + #[allow(missing_docs)] + pub revoker: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub deadline: u64, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::FixedBytes<32>, + RevocationRequestData, + Signature, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<64>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::FixedBytes<32>, + ::RustType, + ::RustType, + alloy::sol_types::private::Address, + u64, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: DelegatedRevocationRequest) -> Self { + ( + value.schema, + value.data, + value.signature, + value.revoker, + value.deadline, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for DelegatedRevocationRequest { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + schema: tuple.0, + data: tuple.1, + signature: tuple.2, + revoker: tuple.3, + deadline: tuple.4, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolValue for DelegatedRevocationRequest { + type SolType = Self; + } + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue + for DelegatedRevocationRequest { + #[inline] + fn stv_to_tokens(&self) -> ::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.schema), + ::tokenize( + &self.data, + ), + ::tokenize(&self.signature), + ::tokenize( + &self.revoker, + ), + as alloy_sol_types::SolType>::tokenize(&self.deadline), + ) + } + #[inline] + fn stv_abi_encoded_size(&self) -> usize { + if let Some(size) = ::ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encoded_size(&tuple) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + ::eip712_hash_struct(self) + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + if let Some(size) = ::PACKED_ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for DelegatedRevocationRequest { + type RustType = Self; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = ::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + as alloy_sol_types::SolType>::valid_token(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + let tuple = as alloy_sol_types::SolType>::detokenize(token); + >>::from(tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolStruct for DelegatedRevocationRequest { + const NAME: &'static str = "DelegatedRevocationRequest"; + #[inline] + fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> { + alloy_sol_types::private::Cow::Borrowed( + "DelegatedRevocationRequest(bytes32 schema,RevocationRequestData data,Signature signature,address revoker,uint64 deadline)", + ) + } + #[inline] + fn eip712_components() -> alloy_sol_types::private::Vec< + alloy_sol_types::private::Cow<'static, str>, + > { + let mut components = alloy_sol_types::private::Vec::with_capacity(2); + components + .push( + ::eip712_root_type(), + ); + components + .extend( + ::eip712_components(), + ); + components + .push(::eip712_root_type()); + components + .extend( + ::eip712_components(), + ); + components + } + #[inline] + fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec { + [ + as alloy_sol_types::SolType>::eip712_data_word(&self.schema) + .0, + ::eip712_data_word( + &self.data, + ) + .0, + ::eip712_data_word( + &self.signature, + ) + .0, + ::eip712_data_word( + &self.revoker, + ) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.deadline) + .0, + ] + .concat() + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for DelegatedRevocationRequest { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + 0usize + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.schema, + ) + + ::topic_preimage_length( + &rust.data, + ) + + ::topic_preimage_length( + &rust.signature, + ) + + ::topic_preimage_length( + &rust.revoker, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.deadline, + ) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + out.reserve( + ::topic_preimage_length(rust), + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.schema, + out, + ); + ::encode_topic_preimage( + &rust.data, + out, + ); + ::encode_topic_preimage( + &rust.signature, + out, + ); + ::encode_topic_preimage( + &rust.revoker, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.deadline, + out, + ); + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + let mut out = alloy_sol_types::private::Vec::new(); + ::encode_topic_preimage( + rust, + &mut out, + ); + alloy_sol_types::abi::token::WordToken( + alloy_sol_types::private::keccak256(out), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**```solidity +struct MultiAttestationRequest { bytes32 schema; AttestationRequestData[] data; } +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct MultiAttestationRequest { + #[allow(missing_docs)] + pub schema: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub data: alloy::sol_types::private::Vec< + ::RustType, + >, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Array, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::FixedBytes<32>, + alloy::sol_types::private::Vec< + ::RustType, + >, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: MultiAttestationRequest) -> Self { + (value.schema, value.data) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for MultiAttestationRequest { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + schema: tuple.0, + data: tuple.1, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolValue for MultiAttestationRequest { + type SolType = Self; + } + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for MultiAttestationRequest { + #[inline] + fn stv_to_tokens(&self) -> ::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.schema), + as alloy_sol_types::SolType>::tokenize(&self.data), + ) + } + #[inline] + fn stv_abi_encoded_size(&self) -> usize { + if let Some(size) = ::ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encoded_size(&tuple) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + ::eip712_hash_struct(self) + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + if let Some(size) = ::PACKED_ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for MultiAttestationRequest { + type RustType = Self; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = ::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + as alloy_sol_types::SolType>::valid_token(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + let tuple = as alloy_sol_types::SolType>::detokenize(token); + >>::from(tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolStruct for MultiAttestationRequest { + const NAME: &'static str = "MultiAttestationRequest"; + #[inline] + fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> { + alloy_sol_types::private::Cow::Borrowed( + "MultiAttestationRequest(bytes32 schema,AttestationRequestData[] data)", + ) + } + #[inline] + fn eip712_components() -> alloy_sol_types::private::Vec< + alloy_sol_types::private::Cow<'static, str>, + > { + let mut components = alloy_sol_types::private::Vec::with_capacity(1); + components + .push( + ::eip712_root_type(), + ); + components + .extend( + ::eip712_components(), + ); + components + } + #[inline] + fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec { + [ + as alloy_sol_types::SolType>::eip712_data_word(&self.schema) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.data) + .0, + ] + .concat() + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for MultiAttestationRequest { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + 0usize + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.schema, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length(&rust.data) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + out.reserve( + ::topic_preimage_length(rust), + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.schema, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.data, + out, + ); + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + let mut out = alloy_sol_types::private::Vec::new(); + ::encode_topic_preimage( + rust, + &mut out, + ); + alloy_sol_types::abi::token::WordToken( + alloy_sol_types::private::keccak256(out), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**```solidity +struct MultiDelegatedAttestationRequest { bytes32 schema; AttestationRequestData[] data; Signature[] signatures; address attester; uint64 deadline; } +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct MultiDelegatedAttestationRequest { + #[allow(missing_docs)] + pub schema: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub data: alloy::sol_types::private::Vec< + ::RustType, + >, + #[allow(missing_docs)] + pub signatures: alloy::sol_types::private::Vec< + ::RustType, + >, + #[allow(missing_docs)] + pub attester: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub deadline: u64, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Array, + alloy::sol_types::sol_data::Array, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<64>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::FixedBytes<32>, + alloy::sol_types::private::Vec< + ::RustType, + >, + alloy::sol_types::private::Vec< + ::RustType, + >, + alloy::sol_types::private::Address, + u64, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: MultiDelegatedAttestationRequest) -> Self { + ( + value.schema, + value.data, + value.signatures, + value.attester, + value.deadline, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for MultiDelegatedAttestationRequest { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + schema: tuple.0, + data: tuple.1, + signatures: tuple.2, + attester: tuple.3, + deadline: tuple.4, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolValue for MultiDelegatedAttestationRequest { + type SolType = Self; + } + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue + for MultiDelegatedAttestationRequest { + #[inline] + fn stv_to_tokens(&self) -> ::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.schema), + as alloy_sol_types::SolType>::tokenize(&self.data), + as alloy_sol_types::SolType>::tokenize(&self.signatures), + ::tokenize( + &self.attester, + ), + as alloy_sol_types::SolType>::tokenize(&self.deadline), + ) + } + #[inline] + fn stv_abi_encoded_size(&self) -> usize { + if let Some(size) = ::ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encoded_size(&tuple) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + ::eip712_hash_struct(self) + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + if let Some(size) = ::PACKED_ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for MultiDelegatedAttestationRequest { + type RustType = Self; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = ::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + as alloy_sol_types::SolType>::valid_token(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + let tuple = as alloy_sol_types::SolType>::detokenize(token); + >>::from(tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolStruct for MultiDelegatedAttestationRequest { + const NAME: &'static str = "MultiDelegatedAttestationRequest"; + #[inline] + fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> { + alloy_sol_types::private::Cow::Borrowed( + "MultiDelegatedAttestationRequest(bytes32 schema,AttestationRequestData[] data,Signature[] signatures,address attester,uint64 deadline)", + ) + } + #[inline] + fn eip712_components() -> alloy_sol_types::private::Vec< + alloy_sol_types::private::Cow<'static, str>, + > { + let mut components = alloy_sol_types::private::Vec::with_capacity(2); + components + .push( + ::eip712_root_type(), + ); + components + .extend( + ::eip712_components(), + ); + components + .push(::eip712_root_type()); + components + .extend( + ::eip712_components(), + ); + components + } + #[inline] + fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec { + [ + as alloy_sol_types::SolType>::eip712_data_word(&self.schema) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.data) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.signatures) + .0, + ::eip712_data_word( + &self.attester, + ) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.deadline) + .0, + ] + .concat() + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for MultiDelegatedAttestationRequest { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + 0usize + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.schema, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length(&rust.data) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.signatures, + ) + + ::topic_preimage_length( + &rust.attester, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.deadline, + ) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + out.reserve( + ::topic_preimage_length(rust), + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.schema, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.data, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.signatures, + out, + ); + ::encode_topic_preimage( + &rust.attester, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.deadline, + out, + ); + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + let mut out = alloy_sol_types::private::Vec::new(); + ::encode_topic_preimage( + rust, + &mut out, + ); + alloy_sol_types::abi::token::WordToken( + alloy_sol_types::private::keccak256(out), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**```solidity +struct MultiDelegatedRevocationRequest { bytes32 schema; RevocationRequestData[] data; Signature[] signatures; address revoker; uint64 deadline; } +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct MultiDelegatedRevocationRequest { + #[allow(missing_docs)] + pub schema: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub data: alloy::sol_types::private::Vec< + ::RustType, + >, + #[allow(missing_docs)] + pub signatures: alloy::sol_types::private::Vec< + ::RustType, + >, + #[allow(missing_docs)] + pub revoker: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub deadline: u64, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Array, + alloy::sol_types::sol_data::Array, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<64>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::FixedBytes<32>, + alloy::sol_types::private::Vec< + ::RustType, + >, + alloy::sol_types::private::Vec< + ::RustType, + >, + alloy::sol_types::private::Address, + u64, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: MultiDelegatedRevocationRequest) -> Self { + ( + value.schema, + value.data, + value.signatures, + value.revoker, + value.deadline, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for MultiDelegatedRevocationRequest { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + schema: tuple.0, + data: tuple.1, + signatures: tuple.2, + revoker: tuple.3, + deadline: tuple.4, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolValue for MultiDelegatedRevocationRequest { + type SolType = Self; + } + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue + for MultiDelegatedRevocationRequest { + #[inline] + fn stv_to_tokens(&self) -> ::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.schema), + as alloy_sol_types::SolType>::tokenize(&self.data), + as alloy_sol_types::SolType>::tokenize(&self.signatures), + ::tokenize( + &self.revoker, + ), + as alloy_sol_types::SolType>::tokenize(&self.deadline), + ) + } + #[inline] + fn stv_abi_encoded_size(&self) -> usize { + if let Some(size) = ::ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encoded_size(&tuple) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + ::eip712_hash_struct(self) + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + if let Some(size) = ::PACKED_ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for MultiDelegatedRevocationRequest { + type RustType = Self; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = ::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + as alloy_sol_types::SolType>::valid_token(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + let tuple = as alloy_sol_types::SolType>::detokenize(token); + >>::from(tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolStruct for MultiDelegatedRevocationRequest { + const NAME: &'static str = "MultiDelegatedRevocationRequest"; + #[inline] + fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> { + alloy_sol_types::private::Cow::Borrowed( + "MultiDelegatedRevocationRequest(bytes32 schema,RevocationRequestData[] data,Signature[] signatures,address revoker,uint64 deadline)", + ) + } + #[inline] + fn eip712_components() -> alloy_sol_types::private::Vec< + alloy_sol_types::private::Cow<'static, str>, + > { + let mut components = alloy_sol_types::private::Vec::with_capacity(2); + components + .push( + ::eip712_root_type(), + ); + components + .extend( + ::eip712_components(), + ); + components + .push(::eip712_root_type()); + components + .extend( + ::eip712_components(), + ); + components + } + #[inline] + fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec { + [ + as alloy_sol_types::SolType>::eip712_data_word(&self.schema) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.data) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.signatures) + .0, + ::eip712_data_word( + &self.revoker, + ) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.deadline) + .0, + ] + .concat() + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for MultiDelegatedRevocationRequest { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + 0usize + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.schema, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length(&rust.data) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.signatures, + ) + + ::topic_preimage_length( + &rust.revoker, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.deadline, + ) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + out.reserve( + ::topic_preimage_length(rust), + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.schema, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.data, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.signatures, + out, + ); + ::encode_topic_preimage( + &rust.revoker, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.deadline, + out, + ); + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + let mut out = alloy_sol_types::private::Vec::new(); + ::encode_topic_preimage( + rust, + &mut out, + ); + alloy_sol_types::abi::token::WordToken( + alloy_sol_types::private::keccak256(out), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**```solidity +struct MultiRevocationRequest { bytes32 schema; RevocationRequestData[] data; } +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct MultiRevocationRequest { + #[allow(missing_docs)] + pub schema: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub data: alloy::sol_types::private::Vec< + ::RustType, + >, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Array, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::FixedBytes<32>, + alloy::sol_types::private::Vec< + ::RustType, + >, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: MultiRevocationRequest) -> Self { + (value.schema, value.data) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for MultiRevocationRequest { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + schema: tuple.0, + data: tuple.1, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolValue for MultiRevocationRequest { + type SolType = Self; + } + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for MultiRevocationRequest { + #[inline] + fn stv_to_tokens(&self) -> ::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.schema), + as alloy_sol_types::SolType>::tokenize(&self.data), + ) + } + #[inline] + fn stv_abi_encoded_size(&self) -> usize { + if let Some(size) = ::ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encoded_size(&tuple) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + ::eip712_hash_struct(self) + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + if let Some(size) = ::PACKED_ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for MultiRevocationRequest { + type RustType = Self; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = ::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + as alloy_sol_types::SolType>::valid_token(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + let tuple = as alloy_sol_types::SolType>::detokenize(token); + >>::from(tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolStruct for MultiRevocationRequest { + const NAME: &'static str = "MultiRevocationRequest"; + #[inline] + fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> { + alloy_sol_types::private::Cow::Borrowed( + "MultiRevocationRequest(bytes32 schema,RevocationRequestData[] data)", + ) + } + #[inline] + fn eip712_components() -> alloy_sol_types::private::Vec< + alloy_sol_types::private::Cow<'static, str>, + > { + let mut components = alloy_sol_types::private::Vec::with_capacity(1); + components + .push( + ::eip712_root_type(), + ); + components + .extend( + ::eip712_components(), + ); + components + } + #[inline] + fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec { + [ + as alloy_sol_types::SolType>::eip712_data_word(&self.schema) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.data) + .0, + ] + .concat() + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for MultiRevocationRequest { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + 0usize + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.schema, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length(&rust.data) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + out.reserve( + ::topic_preimage_length(rust), + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.schema, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.data, + out, + ); + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + let mut out = alloy_sol_types::private::Vec::new(); + ::encode_topic_preimage( + rust, + &mut out, + ); + alloy_sol_types::abi::token::WordToken( + alloy_sol_types::private::keccak256(out), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**```solidity +struct RevocationRequest { bytes32 schema; RevocationRequestData data; } +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct RevocationRequest { + #[allow(missing_docs)] + pub schema: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub data: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::FixedBytes<32>, + RevocationRequestData, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::FixedBytes<32>, + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: RevocationRequest) -> Self { + (value.schema, value.data) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for RevocationRequest { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + schema: tuple.0, + data: tuple.1, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolValue for RevocationRequest { + type SolType = Self; + } + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for RevocationRequest { + #[inline] + fn stv_to_tokens(&self) -> ::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.schema), + ::tokenize( + &self.data, + ), + ) + } + #[inline] + fn stv_abi_encoded_size(&self) -> usize { + if let Some(size) = ::ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encoded_size(&tuple) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + ::eip712_hash_struct(self) + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + if let Some(size) = ::PACKED_ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for RevocationRequest { + type RustType = Self; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = ::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + as alloy_sol_types::SolType>::valid_token(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + let tuple = as alloy_sol_types::SolType>::detokenize(token); + >>::from(tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolStruct for RevocationRequest { + const NAME: &'static str = "RevocationRequest"; + #[inline] + fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> { + alloy_sol_types::private::Cow::Borrowed( + "RevocationRequest(bytes32 schema,RevocationRequestData data)", + ) + } + #[inline] + fn eip712_components() -> alloy_sol_types::private::Vec< + alloy_sol_types::private::Cow<'static, str>, + > { + let mut components = alloy_sol_types::private::Vec::with_capacity(1); + components + .push( + ::eip712_root_type(), + ); + components + .extend( + ::eip712_components(), + ); + components + } + #[inline] + fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec { + [ + as alloy_sol_types::SolType>::eip712_data_word(&self.schema) + .0, + ::eip712_data_word( + &self.data, + ) + .0, + ] + .concat() + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for RevocationRequest { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + 0usize + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.schema, + ) + + ::topic_preimage_length( + &rust.data, + ) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + out.reserve( + ::topic_preimage_length(rust), + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.schema, + out, + ); + ::encode_topic_preimage( + &rust.data, + out, + ); + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + let mut out = alloy_sol_types::private::Vec::new(); + ::encode_topic_preimage( + rust, + &mut out, + ); + alloy_sol_types::abi::token::WordToken( + alloy_sol_types::private::keccak256(out), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**```solidity +struct RevocationRequestData { bytes32 uid; uint256 value; } +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct RevocationRequestData { + #[allow(missing_docs)] + pub uid: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub value: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::FixedBytes<32>, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: RevocationRequestData) -> Self { + (value.uid, value.value) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for RevocationRequestData { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + uid: tuple.0, + value: tuple.1, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolValue for RevocationRequestData { + type SolType = Self; + } + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for RevocationRequestData { + #[inline] + fn stv_to_tokens(&self) -> ::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.uid), + as alloy_sol_types::SolType>::tokenize(&self.value), + ) + } + #[inline] + fn stv_abi_encoded_size(&self) -> usize { + if let Some(size) = ::ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encoded_size(&tuple) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + ::eip712_hash_struct(self) + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + if let Some(size) = ::PACKED_ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for RevocationRequestData { + type RustType = Self; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = ::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + as alloy_sol_types::SolType>::valid_token(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + let tuple = as alloy_sol_types::SolType>::detokenize(token); + >>::from(tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolStruct for RevocationRequestData { + const NAME: &'static str = "RevocationRequestData"; + #[inline] + fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> { + alloy_sol_types::private::Cow::Borrowed( + "RevocationRequestData(bytes32 uid,uint256 value)", + ) + } + #[inline] + fn eip712_components() -> alloy_sol_types::private::Vec< + alloy_sol_types::private::Cow<'static, str>, + > { + alloy_sol_types::private::Vec::new() + } + #[inline] + fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> { + ::eip712_root_type() + } + #[inline] + fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec { + [ + as alloy_sol_types::SolType>::eip712_data_word(&self.uid) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.value) + .0, + ] + .concat() + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for RevocationRequestData { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + 0usize + + as alloy_sol_types::EventTopic>::topic_preimage_length(&rust.uid) + + as alloy_sol_types::EventTopic>::topic_preimage_length(&rust.value) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + out.reserve( + ::topic_preimage_length(rust), + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage(&rust.uid, out); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.value, + out, + ); + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + let mut out = alloy_sol_types::private::Vec::new(); + ::encode_topic_preimage( + rust, + &mut out, + ); + alloy_sol_types::abi::token::WordToken( + alloy_sol_types::private::keccak256(out), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**```solidity +struct Signature { uint8 v; bytes32 r; bytes32 s; } +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct Signature { + #[allow(missing_docs)] + pub v: u8, + #[allow(missing_docs)] + pub r: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub s: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Uint<8>, + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + u8, + alloy::sol_types::private::FixedBytes<32>, + alloy::sol_types::private::FixedBytes<32>, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: Signature) -> Self { + (value.v, value.r, value.s) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for Signature { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + v: tuple.0, + r: tuple.1, + s: tuple.2, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolValue for Signature { + type SolType = Self; + } + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for Signature { + #[inline] + fn stv_to_tokens(&self) -> ::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.v), + as alloy_sol_types::SolType>::tokenize(&self.r), + as alloy_sol_types::SolType>::tokenize(&self.s), + ) + } + #[inline] + fn stv_abi_encoded_size(&self) -> usize { + if let Some(size) = ::ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encoded_size(&tuple) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + ::eip712_hash_struct(self) + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + if let Some(size) = ::PACKED_ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for Signature { + type RustType = Self; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = ::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + as alloy_sol_types::SolType>::valid_token(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + let tuple = as alloy_sol_types::SolType>::detokenize(token); + >>::from(tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolStruct for Signature { + const NAME: &'static str = "Signature"; + #[inline] + fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> { + alloy_sol_types::private::Cow::Borrowed( + "Signature(uint8 v,bytes32 r,bytes32 s)", + ) + } + #[inline] + fn eip712_components() -> alloy_sol_types::private::Vec< + alloy_sol_types::private::Cow<'static, str>, + > { + alloy_sol_types::private::Vec::new() + } + #[inline] + fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> { + ::eip712_root_type() + } + #[inline] + fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec { + [ + as alloy_sol_types::SolType>::eip712_data_word(&self.v) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.r) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.s) + .0, + ] + .concat() + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for Signature { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + 0usize + + as alloy_sol_types::EventTopic>::topic_preimage_length(&rust.v) + + as alloy_sol_types::EventTopic>::topic_preimage_length(&rust.r) + + as alloy_sol_types::EventTopic>::topic_preimage_length(&rust.s) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + out.reserve( + ::topic_preimage_length(rust), + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage(&rust.v, out); + as alloy_sol_types::EventTopic>::encode_topic_preimage(&rust.r, out); + as alloy_sol_types::EventTopic>::encode_topic_preimage(&rust.s, out); + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + let mut out = alloy_sol_types::private::Vec::new(); + ::encode_topic_preimage( + rust, + &mut out, + ); + alloy_sol_types::abi::token::WordToken( + alloy_sol_types::private::keccak256(out), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `Attested(address,address,bytes32,bytes32)` and selector `0x8bf46bf4cfd674fa735a3d63ec1c9ad4153f033c290341f3a588b75685141b35`. +```solidity +event Attested(address indexed recipient, address indexed attester, bytes32 uid, bytes32 indexed schemaUID); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct Attested { + #[allow(missing_docs)] + pub recipient: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub attester: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub uid: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub schemaUID: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for Attested { + type DataTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + const SIGNATURE: &'static str = "Attested(address,address,bytes32,bytes32)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 139u8, 244u8, 107u8, 244u8, 207u8, 214u8, 116u8, 250u8, 115u8, 90u8, + 61u8, 99u8, 236u8, 28u8, 154u8, 212u8, 21u8, 63u8, 3u8, 60u8, 41u8, 3u8, + 65u8, 243u8, 165u8, 136u8, 183u8, 86u8, 133u8, 20u8, 27u8, 53u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + recipient: topics.1, + attester: topics.2, + uid: data.0, + schemaUID: topics.3, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.uid), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + ( + Self::SIGNATURE_HASH.into(), + self.recipient.clone(), + self.attester.clone(), + self.schemaUID.clone(), + ) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.recipient, + ); + out[2usize] = ::encode_topic( + &self.attester, + ); + out[3usize] = as alloy_sol_types::EventTopic>::encode_topic(&self.schemaUID); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for Attested { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&Attested> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &Attested) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `Revoked(address,address,bytes32,bytes32)` and selector `0xf930a6e2523c9cc298691873087a740550b8fc85a0680830414c148ed927f615`. +```solidity +event Revoked(address indexed recipient, address indexed attester, bytes32 uid, bytes32 indexed schemaUID); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct Revoked { + #[allow(missing_docs)] + pub recipient: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub attester: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub uid: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub schemaUID: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for Revoked { + type DataTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + const SIGNATURE: &'static str = "Revoked(address,address,bytes32,bytes32)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 249u8, 48u8, 166u8, 226u8, 82u8, 60u8, 156u8, 194u8, 152u8, 105u8, 24u8, + 115u8, 8u8, 122u8, 116u8, 5u8, 80u8, 184u8, 252u8, 133u8, 160u8, 104u8, + 8u8, 48u8, 65u8, 76u8, 20u8, 142u8, 217u8, 39u8, 246u8, 21u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + recipient: topics.1, + attester: topics.2, + uid: data.0, + schemaUID: topics.3, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.uid), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + ( + Self::SIGNATURE_HASH.into(), + self.recipient.clone(), + self.attester.clone(), + self.schemaUID.clone(), + ) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.recipient, + ); + out[2usize] = ::encode_topic( + &self.attester, + ); + out[3usize] = as alloy_sol_types::EventTopic>::encode_topic(&self.schemaUID); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for Revoked { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&Revoked> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &Revoked) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `RevokedOffchain(address,bytes32,uint64)` and selector `0x92a1f7a41a7c585a8b09e25b195e225b1d43248daca46b0faf9e0792777a2229`. +```solidity +event RevokedOffchain(address indexed revoker, bytes32 indexed data, uint64 indexed timestamp); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct RevokedOffchain { + #[allow(missing_docs)] + pub revoker: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub data: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub timestamp: u64, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for RevokedOffchain { + type DataTuple<'a> = (); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Uint<64>, + ); + const SIGNATURE: &'static str = "RevokedOffchain(address,bytes32,uint64)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 146u8, 161u8, 247u8, 164u8, 26u8, 124u8, 88u8, 90u8, 139u8, 9u8, 226u8, + 91u8, 25u8, 94u8, 34u8, 91u8, 29u8, 67u8, 36u8, 141u8, 172u8, 164u8, + 107u8, 15u8, 175u8, 158u8, 7u8, 146u8, 119u8, 122u8, 34u8, 41u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + revoker: topics.1, + data: topics.2, + timestamp: topics.3, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + () + } + #[inline] + fn topics(&self) -> ::RustType { + ( + Self::SIGNATURE_HASH.into(), + self.revoker.clone(), + self.data.clone(), + self.timestamp.clone(), + ) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.revoker, + ); + out[2usize] = as alloy_sol_types::EventTopic>::encode_topic(&self.data); + out[3usize] = as alloy_sol_types::EventTopic>::encode_topic(&self.timestamp); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for RevokedOffchain { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&RevokedOffchain> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &RevokedOffchain) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `Timestamped(bytes32,uint64)` and selector `0x5aafceeb1c7ad58e4a84898bdee37c02c0fc46e7d24e6b60e8209449f183459f`. +```solidity +event Timestamped(bytes32 indexed data, uint64 indexed timestamp); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct Timestamped { + #[allow(missing_docs)] + pub data: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub timestamp: u64, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for Timestamped { + type DataTuple<'a> = (); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Uint<64>, + ); + const SIGNATURE: &'static str = "Timestamped(bytes32,uint64)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 90u8, 175u8, 206u8, 235u8, 28u8, 122u8, 213u8, 142u8, 74u8, 132u8, 137u8, + 139u8, 222u8, 227u8, 124u8, 2u8, 192u8, 252u8, 70u8, 231u8, 210u8, 78u8, + 107u8, 96u8, 232u8, 32u8, 148u8, 73u8, 241u8, 131u8, 69u8, 159u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + data: topics.1, + timestamp: topics.2, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + () + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.data.clone(), self.timestamp.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = as alloy_sol_types::EventTopic>::encode_topic(&self.data); + out[2usize] = as alloy_sol_types::EventTopic>::encode_topic(&self.timestamp); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for Timestamped { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&Timestamped> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &Timestamped) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `attest((bytes32,(address,uint64,bool,bytes32,bytes,uint256)))` and selector `0xf17325e7`. +```solidity +function attest(AttestationRequest memory request) external payable returns (bytes32); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct attestCall { + #[allow(missing_docs)] + pub request: ::RustType, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`attest((bytes32,(address,uint64,bool,bytes32,bytes,uint256)))`](attestCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct attestReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (AttestationRequest,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: attestCall) -> Self { + (value.request,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for attestCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { request: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: attestReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for attestReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for attestCall { + type Parameters<'a> = (AttestationRequest,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::FixedBytes<32>; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "attest((bytes32,(address,uint64,bool,bytes32,bytes,uint256)))"; + const SELECTOR: [u8; 4] = [241u8, 115u8, 37u8, 231u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.request, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: attestReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: attestReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `attestByDelegation((bytes32,(address,uint64,bool,bytes32,bytes,uint256),(uint8,bytes32,bytes32),address,uint64))` and selector `0x3c042715`. +```solidity +function attestByDelegation(DelegatedAttestationRequest memory delegatedRequest) external payable returns (bytes32); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct attestByDelegationCall { + #[allow(missing_docs)] + pub delegatedRequest: ::RustType, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`attestByDelegation((bytes32,(address,uint64,bool,bytes32,bytes,uint256),(uint8,bytes32,bytes32),address,uint64))`](attestByDelegationCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct attestByDelegationReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (DelegatedAttestationRequest,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: attestByDelegationCall) -> Self { + (value.delegatedRequest,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for attestByDelegationCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { delegatedRequest: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: attestByDelegationReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for attestByDelegationReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for attestByDelegationCall { + type Parameters<'a> = (DelegatedAttestationRequest,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::FixedBytes<32>; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "attestByDelegation((bytes32,(address,uint64,bool,bytes32,bytes,uint256),(uint8,bytes32,bytes32),address,uint64))"; + const SELECTOR: [u8; 4] = [60u8, 4u8, 39u8, 21u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.delegatedRequest, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: attestByDelegationReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: attestByDelegationReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `getAttestation(bytes32)` and selector `0xa3112a64`. +```solidity +function getAttestation(bytes32 uid) external view returns (Attestation memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getAttestationCall { + #[allow(missing_docs)] + pub uid: alloy::sol_types::private::FixedBytes<32>, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`getAttestation(bytes32)`](getAttestationCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getAttestationReturn { + #[allow(missing_docs)] + pub _0: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: getAttestationCall) -> Self { + (value.uid,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for getAttestationCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { uid: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Attestation,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: getAttestationReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for getAttestationReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for getAttestationCall { + type Parameters<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (Attestation,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "getAttestation(bytes32)"; + const SELECTOR: [u8; 4] = [163u8, 17u8, 42u8, 100u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.uid), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: getAttestationReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: getAttestationReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `getRevokeOffchain(address,bytes32)` and selector `0xb469318d`. +```solidity +function getRevokeOffchain(address revoker, bytes32 data) external view returns (uint64); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getRevokeOffchainCall { + #[allow(missing_docs)] + pub revoker: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub data: alloy::sol_types::private::FixedBytes<32>, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`getRevokeOffchain(address,bytes32)`](getRevokeOffchainCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getRevokeOffchainReturn { + #[allow(missing_docs)] + pub _0: u64, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::FixedBytes<32>, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: getRevokeOffchainCall) -> Self { + (value.revoker, value.data) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for getRevokeOffchainCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + revoker: tuple.0, + data: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u64,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: getRevokeOffchainReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for getRevokeOffchainReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for getRevokeOffchainCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u64; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "getRevokeOffchain(address,bytes32)"; + const SELECTOR: [u8; 4] = [180u8, 105u8, 49u8, 141u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.revoker, + ), + as alloy_sol_types::SolType>::tokenize(&self.data), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: getRevokeOffchainReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: getRevokeOffchainReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `getSchemaRegistry()` and selector `0xf10b5cc8`. +```solidity +function getSchemaRegistry() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getSchemaRegistryCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`getSchemaRegistry()`](getSchemaRegistryCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getSchemaRegistryReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: getSchemaRegistryCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for getSchemaRegistryCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: getSchemaRegistryReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for getSchemaRegistryReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for getSchemaRegistryCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "getSchemaRegistry()"; + const SELECTOR: [u8; 4] = [241u8, 11u8, 92u8, 200u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: getSchemaRegistryReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: getSchemaRegistryReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `getTimestamp(bytes32)` and selector `0xd45c4435`. +```solidity +function getTimestamp(bytes32 data) external view returns (uint64); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getTimestampCall { + #[allow(missing_docs)] + pub data: alloy::sol_types::private::FixedBytes<32>, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`getTimestamp(bytes32)`](getTimestampCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getTimestampReturn { + #[allow(missing_docs)] + pub _0: u64, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: getTimestampCall) -> Self { + (value.data,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for getTimestampCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { data: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u64,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: getTimestampReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for getTimestampReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for getTimestampCall { + type Parameters<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u64; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "getTimestamp(bytes32)"; + const SELECTOR: [u8; 4] = [212u8, 92u8, 68u8, 53u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.data), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: getTimestampReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: getTimestampReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `isAttestationValid(bytes32)` and selector `0xe30bb563`. +```solidity +function isAttestationValid(bytes32 uid) external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct isAttestationValidCall { + #[allow(missing_docs)] + pub uid: alloy::sol_types::private::FixedBytes<32>, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`isAttestationValid(bytes32)`](isAttestationValidCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct isAttestationValidReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: isAttestationValidCall) -> Self { + (value.uid,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for isAttestationValidCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { uid: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: isAttestationValidReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for isAttestationValidReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for isAttestationValidCall { + type Parameters<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "isAttestationValid(bytes32)"; + const SELECTOR: [u8; 4] = [227u8, 11u8, 181u8, 99u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.uid), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: isAttestationValidReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: isAttestationValidReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `multiAttest((bytes32,(address,uint64,bool,bytes32,bytes,uint256)[])[])` and selector `0x44adc90e`. +```solidity +function multiAttest(MultiAttestationRequest[] memory multiRequests) external payable returns (bytes32[] memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct multiAttestCall { + #[allow(missing_docs)] + pub multiRequests: alloy::sol_types::private::Vec< + ::RustType, + >, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`multiAttest((bytes32,(address,uint64,bool,bytes32,bytes,uint256)[])[])`](multiAttestCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct multiAttestReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Vec< + alloy::sol_types::private::FixedBytes<32>, + >, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Array, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Vec< + ::RustType, + >, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: multiAttestCall) -> Self { + (value.multiRequests,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for multiAttestCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { multiRequests: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Array< + alloy::sol_types::sol_data::FixedBytes<32>, + >, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Vec< + alloy::sol_types::private::FixedBytes<32>, + >, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: multiAttestReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for multiAttestReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for multiAttestCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Array, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Vec< + alloy::sol_types::private::FixedBytes<32>, + >; + type ReturnTuple<'a> = ( + alloy::sol_types::sol_data::Array< + alloy::sol_types::sol_data::FixedBytes<32>, + >, + ); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "multiAttest((bytes32,(address,uint64,bool,bytes32,bytes,uint256)[])[])"; + const SELECTOR: [u8; 4] = [68u8, 173u8, 201u8, 14u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.multiRequests), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + , + > as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: multiAttestReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: multiAttestReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `multiAttestByDelegation((bytes32,(address,uint64,bool,bytes32,bytes,uint256)[],(uint8,bytes32,bytes32)[],address,uint64)[])` and selector `0x95411525`. +```solidity +function multiAttestByDelegation(MultiDelegatedAttestationRequest[] memory multiDelegatedRequests) external payable returns (bytes32[] memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct multiAttestByDelegationCall { + #[allow(missing_docs)] + pub multiDelegatedRequests: alloy::sol_types::private::Vec< + ::RustType, + >, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`multiAttestByDelegation((bytes32,(address,uint64,bool,bytes32,bytes,uint256)[],(uint8,bytes32,bytes32)[],address,uint64)[])`](multiAttestByDelegationCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct multiAttestByDelegationReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Vec< + alloy::sol_types::private::FixedBytes<32>, + >, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Array, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Vec< + ::RustType, + >, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: multiAttestByDelegationCall) -> Self { + (value.multiDelegatedRequests,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for multiAttestByDelegationCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + multiDelegatedRequests: tuple.0, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Array< + alloy::sol_types::sol_data::FixedBytes<32>, + >, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Vec< + alloy::sol_types::private::FixedBytes<32>, + >, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: multiAttestByDelegationReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for multiAttestByDelegationReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for multiAttestByDelegationCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Array, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Vec< + alloy::sol_types::private::FixedBytes<32>, + >; + type ReturnTuple<'a> = ( + alloy::sol_types::sol_data::Array< + alloy::sol_types::sol_data::FixedBytes<32>, + >, + ); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "multiAttestByDelegation((bytes32,(address,uint64,bool,bytes32,bytes,uint256)[],(uint8,bytes32,bytes32)[],address,uint64)[])"; + const SELECTOR: [u8; 4] = [149u8, 65u8, 21u8, 37u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize( + &self.multiDelegatedRequests, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + , + > as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: multiAttestByDelegationReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: multiAttestByDelegationReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `multiRevoke((bytes32,(bytes32,uint256)[])[])` and selector `0x4cb7e9e5`. +```solidity +function multiRevoke(MultiRevocationRequest[] memory multiRequests) external payable; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct multiRevokeCall { + #[allow(missing_docs)] + pub multiRequests: alloy::sol_types::private::Vec< + ::RustType, + >, + } + ///Container type for the return parameters of the [`multiRevoke((bytes32,(bytes32,uint256)[])[])`](multiRevokeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct multiRevokeReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Array, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Vec< + ::RustType, + >, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: multiRevokeCall) -> Self { + (value.multiRequests,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for multiRevokeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { multiRequests: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: multiRevokeReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for multiRevokeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl multiRevokeReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for multiRevokeCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Array, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = multiRevokeReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "multiRevoke((bytes32,(bytes32,uint256)[])[])"; + const SELECTOR: [u8; 4] = [76u8, 183u8, 233u8, 229u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.multiRequests), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + multiRevokeReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `multiRevokeByDelegation((bytes32,(bytes32,uint256)[],(uint8,bytes32,bytes32)[],address,uint64)[])` and selector `0x0eabf660`. +```solidity +function multiRevokeByDelegation(MultiDelegatedRevocationRequest[] memory multiDelegatedRequests) external payable; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct multiRevokeByDelegationCall { + #[allow(missing_docs)] + pub multiDelegatedRequests: alloy::sol_types::private::Vec< + ::RustType, + >, + } + ///Container type for the return parameters of the [`multiRevokeByDelegation((bytes32,(bytes32,uint256)[],(uint8,bytes32,bytes32)[],address,uint64)[])`](multiRevokeByDelegationCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct multiRevokeByDelegationReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Array, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Vec< + ::RustType, + >, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: multiRevokeByDelegationCall) -> Self { + (value.multiDelegatedRequests,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for multiRevokeByDelegationCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + multiDelegatedRequests: tuple.0, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: multiRevokeByDelegationReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for multiRevokeByDelegationReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl multiRevokeByDelegationReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken< + '_, + > { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for multiRevokeByDelegationCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Array, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = multiRevokeByDelegationReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "multiRevokeByDelegation((bytes32,(bytes32,uint256)[],(uint8,bytes32,bytes32)[],address,uint64)[])"; + const SELECTOR: [u8; 4] = [14u8, 171u8, 246u8, 96u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize( + &self.multiDelegatedRequests, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + multiRevokeByDelegationReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `multiRevokeOffchain(bytes32[])` and selector `0x13893f61`. +```solidity +function multiRevokeOffchain(bytes32[] memory data) external returns (uint64); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct multiRevokeOffchainCall { + #[allow(missing_docs)] + pub data: alloy::sol_types::private::Vec< + alloy::sol_types::private::FixedBytes<32>, + >, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`multiRevokeOffchain(bytes32[])`](multiRevokeOffchainCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct multiRevokeOffchainReturn { + #[allow(missing_docs)] + pub _0: u64, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Array< + alloy::sol_types::sol_data::FixedBytes<32>, + >, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Vec< + alloy::sol_types::private::FixedBytes<32>, + >, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: multiRevokeOffchainCall) -> Self { + (value.data,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for multiRevokeOffchainCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { data: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u64,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: multiRevokeOffchainReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for multiRevokeOffchainReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for multiRevokeOffchainCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Array< + alloy::sol_types::sol_data::FixedBytes<32>, + >, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u64; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "multiRevokeOffchain(bytes32[])"; + const SELECTOR: [u8; 4] = [19u8, 137u8, 63u8, 97u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + , + > as alloy_sol_types::SolType>::tokenize(&self.data), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: multiRevokeOffchainReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: multiRevokeOffchainReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `multiTimestamp(bytes32[])` and selector `0xe71ff365`. +```solidity +function multiTimestamp(bytes32[] memory data) external returns (uint64); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct multiTimestampCall { + #[allow(missing_docs)] + pub data: alloy::sol_types::private::Vec< + alloy::sol_types::private::FixedBytes<32>, + >, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`multiTimestamp(bytes32[])`](multiTimestampCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct multiTimestampReturn { + #[allow(missing_docs)] + pub _0: u64, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Array< + alloy::sol_types::sol_data::FixedBytes<32>, + >, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Vec< + alloy::sol_types::private::FixedBytes<32>, + >, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: multiTimestampCall) -> Self { + (value.data,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for multiTimestampCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { data: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u64,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: multiTimestampReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for multiTimestampReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for multiTimestampCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Array< + alloy::sol_types::sol_data::FixedBytes<32>, + >, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u64; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "multiTimestamp(bytes32[])"; + const SELECTOR: [u8; 4] = [231u8, 31u8, 243u8, 101u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + , + > as alloy_sol_types::SolType>::tokenize(&self.data), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: multiTimestampReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: multiTimestampReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `revoke((bytes32,(bytes32,uint256)))` and selector `0x46926267`. +```solidity +function revoke(RevocationRequest memory request) external payable; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct revokeCall { + #[allow(missing_docs)] + pub request: ::RustType, + } + ///Container type for the return parameters of the [`revoke((bytes32,(bytes32,uint256)))`](revokeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct revokeReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (RevocationRequest,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: revokeCall) -> Self { + (value.request,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for revokeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { request: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: revokeReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for revokeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl revokeReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for revokeCall { + type Parameters<'a> = (RevocationRequest,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = revokeReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "revoke((bytes32,(bytes32,uint256)))"; + const SELECTOR: [u8; 4] = [70u8, 146u8, 98u8, 103u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.request, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + revokeReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `revokeByDelegation((bytes32,(bytes32,uint256),(uint8,bytes32,bytes32),address,uint64))` and selector `0xa6d4dbc7`. +```solidity +function revokeByDelegation(DelegatedRevocationRequest memory delegatedRequest) external payable; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct revokeByDelegationCall { + #[allow(missing_docs)] + pub delegatedRequest: ::RustType, + } + ///Container type for the return parameters of the [`revokeByDelegation((bytes32,(bytes32,uint256),(uint8,bytes32,bytes32),address,uint64))`](revokeByDelegationCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct revokeByDelegationReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (DelegatedRevocationRequest,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: revokeByDelegationCall) -> Self { + (value.delegatedRequest,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for revokeByDelegationCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { delegatedRequest: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: revokeByDelegationReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for revokeByDelegationReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl revokeByDelegationReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for revokeByDelegationCall { + type Parameters<'a> = (DelegatedRevocationRequest,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = revokeByDelegationReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "revokeByDelegation((bytes32,(bytes32,uint256),(uint8,bytes32,bytes32),address,uint64))"; + const SELECTOR: [u8; 4] = [166u8, 212u8, 219u8, 199u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.delegatedRequest, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + revokeByDelegationReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `revokeOffchain(bytes32)` and selector `0xcf190f34`. +```solidity +function revokeOffchain(bytes32 data) external returns (uint64); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct revokeOffchainCall { + #[allow(missing_docs)] + pub data: alloy::sol_types::private::FixedBytes<32>, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`revokeOffchain(bytes32)`](revokeOffchainCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct revokeOffchainReturn { + #[allow(missing_docs)] + pub _0: u64, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: revokeOffchainCall) -> Self { + (value.data,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for revokeOffchainCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { data: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u64,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: revokeOffchainReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for revokeOffchainReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for revokeOffchainCall { + type Parameters<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u64; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "revokeOffchain(bytes32)"; + const SELECTOR: [u8; 4] = [207u8, 25u8, 15u8, 52u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.data), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: revokeOffchainReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: revokeOffchainReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `timestamp(bytes32)` and selector `0x4d003070`. +```solidity +function timestamp(bytes32 data) external returns (uint64); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct timestampCall { + #[allow(missing_docs)] + pub data: alloy::sol_types::private::FixedBytes<32>, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`timestamp(bytes32)`](timestampCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct timestampReturn { + #[allow(missing_docs)] + pub _0: u64, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: timestampCall) -> Self { + (value.data,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for timestampCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { data: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u64,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: timestampReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for timestampReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for timestampCall { + type Parameters<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u64; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "timestamp(bytes32)"; + const SELECTOR: [u8; 4] = [77u8, 0u8, 48u8, 112u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.data), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: timestampReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: timestampReturn = r.into(); + r._0 + }) + } + } + }; + ///Container for all the [`IEAS`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum IEASCalls { + #[allow(missing_docs)] + attest(attestCall), + #[allow(missing_docs)] + attestByDelegation(attestByDelegationCall), + #[allow(missing_docs)] + getAttestation(getAttestationCall), + #[allow(missing_docs)] + getRevokeOffchain(getRevokeOffchainCall), + #[allow(missing_docs)] + getSchemaRegistry(getSchemaRegistryCall), + #[allow(missing_docs)] + getTimestamp(getTimestampCall), + #[allow(missing_docs)] + isAttestationValid(isAttestationValidCall), + #[allow(missing_docs)] + multiAttest(multiAttestCall), + #[allow(missing_docs)] + multiAttestByDelegation(multiAttestByDelegationCall), + #[allow(missing_docs)] + multiRevoke(multiRevokeCall), + #[allow(missing_docs)] + multiRevokeByDelegation(multiRevokeByDelegationCall), + #[allow(missing_docs)] + multiRevokeOffchain(multiRevokeOffchainCall), + #[allow(missing_docs)] + multiTimestamp(multiTimestampCall), + #[allow(missing_docs)] + revoke(revokeCall), + #[allow(missing_docs)] + revokeByDelegation(revokeByDelegationCall), + #[allow(missing_docs)] + revokeOffchain(revokeOffchainCall), + #[allow(missing_docs)] + timestamp(timestampCall), + } + impl IEASCalls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [14u8, 171u8, 246u8, 96u8], + [19u8, 137u8, 63u8, 97u8], + [60u8, 4u8, 39u8, 21u8], + [68u8, 173u8, 201u8, 14u8], + [70u8, 146u8, 98u8, 103u8], + [76u8, 183u8, 233u8, 229u8], + [77u8, 0u8, 48u8, 112u8], + [149u8, 65u8, 21u8, 37u8], + [163u8, 17u8, 42u8, 100u8], + [166u8, 212u8, 219u8, 199u8], + [180u8, 105u8, 49u8, 141u8], + [207u8, 25u8, 15u8, 52u8], + [212u8, 92u8, 68u8, 53u8], + [227u8, 11u8, 181u8, 99u8], + [231u8, 31u8, 243u8, 101u8], + [241u8, 11u8, 92u8, 200u8], + [241u8, 115u8, 37u8, 231u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(multiRevokeByDelegation), + ::core::stringify!(multiRevokeOffchain), + ::core::stringify!(attestByDelegation), + ::core::stringify!(multiAttest), + ::core::stringify!(revoke), + ::core::stringify!(multiRevoke), + ::core::stringify!(timestamp), + ::core::stringify!(multiAttestByDelegation), + ::core::stringify!(getAttestation), + ::core::stringify!(revokeByDelegation), + ::core::stringify!(getRevokeOffchain), + ::core::stringify!(revokeOffchain), + ::core::stringify!(getTimestamp), + ::core::stringify!(isAttestationValid), + ::core::stringify!(multiTimestamp), + ::core::stringify!(getSchemaRegistry), + ::core::stringify!(attest), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for IEASCalls { + const NAME: &'static str = "IEASCalls"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 17usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::attest(_) => ::SELECTOR, + Self::attestByDelegation(_) => { + ::SELECTOR + } + Self::getAttestation(_) => { + ::SELECTOR + } + Self::getRevokeOffchain(_) => { + ::SELECTOR + } + Self::getSchemaRegistry(_) => { + ::SELECTOR + } + Self::getTimestamp(_) => { + ::SELECTOR + } + Self::isAttestationValid(_) => { + ::SELECTOR + } + Self::multiAttest(_) => { + ::SELECTOR + } + Self::multiAttestByDelegation(_) => { + ::SELECTOR + } + Self::multiRevoke(_) => { + ::SELECTOR + } + Self::multiRevokeByDelegation(_) => { + ::SELECTOR + } + Self::multiRevokeOffchain(_) => { + ::SELECTOR + } + Self::multiTimestamp(_) => { + ::SELECTOR + } + Self::revoke(_) => ::SELECTOR, + Self::revokeByDelegation(_) => { + ::SELECTOR + } + Self::revokeOffchain(_) => { + ::SELECTOR + } + Self::timestamp(_) => { + ::SELECTOR + } + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn(&[u8]) -> alloy_sol_types::Result] = &[ + { + fn multiRevokeByDelegation( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(IEASCalls::multiRevokeByDelegation) + } + multiRevokeByDelegation + }, + { + fn multiRevokeOffchain( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(IEASCalls::multiRevokeOffchain) + } + multiRevokeOffchain + }, + { + fn attestByDelegation( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(IEASCalls::attestByDelegation) + } + attestByDelegation + }, + { + fn multiAttest(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(IEASCalls::multiAttest) + } + multiAttest + }, + { + fn revoke(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(IEASCalls::revoke) + } + revoke + }, + { + fn multiRevoke(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(IEASCalls::multiRevoke) + } + multiRevoke + }, + { + fn timestamp(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(IEASCalls::timestamp) + } + timestamp + }, + { + fn multiAttestByDelegation( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(IEASCalls::multiAttestByDelegation) + } + multiAttestByDelegation + }, + { + fn getAttestation( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(IEASCalls::getAttestation) + } + getAttestation + }, + { + fn revokeByDelegation( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(IEASCalls::revokeByDelegation) + } + revokeByDelegation + }, + { + fn getRevokeOffchain( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(IEASCalls::getRevokeOffchain) + } + getRevokeOffchain + }, + { + fn revokeOffchain( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(IEASCalls::revokeOffchain) + } + revokeOffchain + }, + { + fn getTimestamp(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(IEASCalls::getTimestamp) + } + getTimestamp + }, + { + fn isAttestationValid( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(IEASCalls::isAttestationValid) + } + isAttestationValid + }, + { + fn multiTimestamp( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(IEASCalls::multiTimestamp) + } + multiTimestamp + }, + { + fn getSchemaRegistry( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(IEASCalls::getSchemaRegistry) + } + getSchemaRegistry + }, + { + fn attest(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(IEASCalls::attest) + } + attest + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn multiRevokeByDelegation( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(IEASCalls::multiRevokeByDelegation) + } + multiRevokeByDelegation + }, + { + fn multiRevokeOffchain( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(IEASCalls::multiRevokeOffchain) + } + multiRevokeOffchain + }, + { + fn attestByDelegation( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(IEASCalls::attestByDelegation) + } + attestByDelegation + }, + { + fn multiAttest(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(IEASCalls::multiAttest) + } + multiAttest + }, + { + fn revoke(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(IEASCalls::revoke) + } + revoke + }, + { + fn multiRevoke(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(IEASCalls::multiRevoke) + } + multiRevoke + }, + { + fn timestamp(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(IEASCalls::timestamp) + } + timestamp + }, + { + fn multiAttestByDelegation( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(IEASCalls::multiAttestByDelegation) + } + multiAttestByDelegation + }, + { + fn getAttestation( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(IEASCalls::getAttestation) + } + getAttestation + }, + { + fn revokeByDelegation( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(IEASCalls::revokeByDelegation) + } + revokeByDelegation + }, + { + fn getRevokeOffchain( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(IEASCalls::getRevokeOffchain) + } + getRevokeOffchain + }, + { + fn revokeOffchain( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(IEASCalls::revokeOffchain) + } + revokeOffchain + }, + { + fn getTimestamp(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(IEASCalls::getTimestamp) + } + getTimestamp + }, + { + fn isAttestationValid( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(IEASCalls::isAttestationValid) + } + isAttestationValid + }, + { + fn multiTimestamp( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(IEASCalls::multiTimestamp) + } + multiTimestamp + }, + { + fn getSchemaRegistry( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(IEASCalls::getSchemaRegistry) + } + getSchemaRegistry + }, + { + fn attest(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(IEASCalls::attest) + } + attest + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::attest(inner) => { + ::abi_encoded_size(inner) + } + Self::attestByDelegation(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::getAttestation(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::getRevokeOffchain(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::getSchemaRegistry(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::getTimestamp(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::isAttestationValid(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::multiAttest(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::multiAttestByDelegation(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::multiRevoke(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::multiRevokeByDelegation(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::multiRevokeOffchain(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::multiTimestamp(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::revoke(inner) => { + ::abi_encoded_size(inner) + } + Self::revokeByDelegation(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::revokeOffchain(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::timestamp(inner) => { + ::abi_encoded_size(inner) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::attest(inner) => { + ::abi_encode_raw(inner, out) + } + Self::attestByDelegation(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::getAttestation(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::getRevokeOffchain(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::getSchemaRegistry(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::getTimestamp(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::isAttestationValid(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::multiAttest(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::multiAttestByDelegation(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::multiRevoke(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::multiRevokeByDelegation(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::multiRevokeOffchain(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::multiTimestamp(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::revoke(inner) => { + ::abi_encode_raw(inner, out) + } + Self::revokeByDelegation(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::revokeOffchain(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::timestamp(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + } + } + } + ///Container for all the [`IEAS`](self) events. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum IEASEvents { + #[allow(missing_docs)] + Attested(Attested), + #[allow(missing_docs)] + Revoked(Revoked), + #[allow(missing_docs)] + RevokedOffchain(RevokedOffchain), + #[allow(missing_docs)] + Timestamped(Timestamped), + } + impl IEASEvents { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 32usize]] = &[ + [ + 90u8, 175u8, 206u8, 235u8, 28u8, 122u8, 213u8, 142u8, 74u8, 132u8, 137u8, + 139u8, 222u8, 227u8, 124u8, 2u8, 192u8, 252u8, 70u8, 231u8, 210u8, 78u8, + 107u8, 96u8, 232u8, 32u8, 148u8, 73u8, 241u8, 131u8, 69u8, 159u8, + ], + [ + 139u8, 244u8, 107u8, 244u8, 207u8, 214u8, 116u8, 250u8, 115u8, 90u8, + 61u8, 99u8, 236u8, 28u8, 154u8, 212u8, 21u8, 63u8, 3u8, 60u8, 41u8, 3u8, + 65u8, 243u8, 165u8, 136u8, 183u8, 86u8, 133u8, 20u8, 27u8, 53u8, + ], + [ + 146u8, 161u8, 247u8, 164u8, 26u8, 124u8, 88u8, 90u8, 139u8, 9u8, 226u8, + 91u8, 25u8, 94u8, 34u8, 91u8, 29u8, 67u8, 36u8, 141u8, 172u8, 164u8, + 107u8, 15u8, 175u8, 158u8, 7u8, 146u8, 119u8, 122u8, 34u8, 41u8, + ], + [ + 249u8, 48u8, 166u8, 226u8, 82u8, 60u8, 156u8, 194u8, 152u8, 105u8, 24u8, + 115u8, 8u8, 122u8, 116u8, 5u8, 80u8, 184u8, 252u8, 133u8, 160u8, 104u8, + 8u8, 48u8, 65u8, 76u8, 20u8, 142u8, 217u8, 39u8, 246u8, 21u8, + ], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(Timestamped), + ::core::stringify!(Attested), + ::core::stringify!(RevokedOffchain), + ::core::stringify!(Revoked), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolEventInterface for IEASEvents { + const NAME: &'static str = "IEASEvents"; + const COUNT: usize = 4usize; + fn decode_raw_log( + topics: &[alloy_sol_types::Word], + data: &[u8], + ) -> alloy_sol_types::Result { + match topics.first().copied() { + Some(::SIGNATURE_HASH) => { + ::decode_raw_log(topics, data) + .map(Self::Attested) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log(topics, data) + .map(Self::Revoked) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::RevokedOffchain) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::Timestamped) + } + _ => { + alloy_sol_types::private::Err(alloy_sol_types::Error::InvalidLog { + name: ::NAME, + log: alloy_sol_types::private::Box::new( + alloy_sol_types::private::LogData::new_unchecked( + topics.to_vec(), + data.to_vec().into(), + ), + ), + }) + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for IEASEvents { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + match self { + Self::Attested(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::Revoked(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::RevokedOffchain(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::Timestamped(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + } + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + match self { + Self::Attested(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::Revoked(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::RevokedOffchain(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::Timestamped(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`IEAS`](self) contract instance. + +See the [wrapper's documentation](`IEASInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(address: alloy_sol_types::private::Address, __provider: P) -> IEASInstance { + IEASInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + IEASInstance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + IEASInstance::::deploy_builder(__provider) + } + /**A [`IEAS`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`IEAS`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct IEASInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for IEASInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("IEASInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > IEASInstance { + /**Creates a new wrapper around an on-chain [`IEAS`](self) contract instance. + +See the [wrapper's documentation](`IEASInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl IEASInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> IEASInstance { + IEASInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > IEASInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`attest`] function. + pub fn attest( + &self, + request: ::RustType, + ) -> alloy_contract::SolCallBuilder<&P, attestCall, N> { + self.call_builder(&attestCall { request }) + } + ///Creates a new call builder for the [`attestByDelegation`] function. + pub fn attestByDelegation( + &self, + delegatedRequest: ::RustType, + ) -> alloy_contract::SolCallBuilder<&P, attestByDelegationCall, N> { + self.call_builder( + &attestByDelegationCall { + delegatedRequest, + }, + ) + } + ///Creates a new call builder for the [`getAttestation`] function. + pub fn getAttestation( + &self, + uid: alloy::sol_types::private::FixedBytes<32>, + ) -> alloy_contract::SolCallBuilder<&P, getAttestationCall, N> { + self.call_builder(&getAttestationCall { uid }) + } + ///Creates a new call builder for the [`getRevokeOffchain`] function. + pub fn getRevokeOffchain( + &self, + revoker: alloy::sol_types::private::Address, + data: alloy::sol_types::private::FixedBytes<32>, + ) -> alloy_contract::SolCallBuilder<&P, getRevokeOffchainCall, N> { + self.call_builder( + &getRevokeOffchainCall { + revoker, + data, + }, + ) + } + ///Creates a new call builder for the [`getSchemaRegistry`] function. + pub fn getSchemaRegistry( + &self, + ) -> alloy_contract::SolCallBuilder<&P, getSchemaRegistryCall, N> { + self.call_builder(&getSchemaRegistryCall) + } + ///Creates a new call builder for the [`getTimestamp`] function. + pub fn getTimestamp( + &self, + data: alloy::sol_types::private::FixedBytes<32>, + ) -> alloy_contract::SolCallBuilder<&P, getTimestampCall, N> { + self.call_builder(&getTimestampCall { data }) + } + ///Creates a new call builder for the [`isAttestationValid`] function. + pub fn isAttestationValid( + &self, + uid: alloy::sol_types::private::FixedBytes<32>, + ) -> alloy_contract::SolCallBuilder<&P, isAttestationValidCall, N> { + self.call_builder(&isAttestationValidCall { uid }) + } + ///Creates a new call builder for the [`multiAttest`] function. + pub fn multiAttest( + &self, + multiRequests: alloy::sol_types::private::Vec< + ::RustType, + >, + ) -> alloy_contract::SolCallBuilder<&P, multiAttestCall, N> { + self.call_builder(&multiAttestCall { multiRequests }) + } + ///Creates a new call builder for the [`multiAttestByDelegation`] function. + pub fn multiAttestByDelegation( + &self, + multiDelegatedRequests: alloy::sol_types::private::Vec< + ::RustType, + >, + ) -> alloy_contract::SolCallBuilder<&P, multiAttestByDelegationCall, N> { + self.call_builder( + &multiAttestByDelegationCall { + multiDelegatedRequests, + }, + ) + } + ///Creates a new call builder for the [`multiRevoke`] function. + pub fn multiRevoke( + &self, + multiRequests: alloy::sol_types::private::Vec< + ::RustType, + >, + ) -> alloy_contract::SolCallBuilder<&P, multiRevokeCall, N> { + self.call_builder(&multiRevokeCall { multiRequests }) + } + ///Creates a new call builder for the [`multiRevokeByDelegation`] function. + pub fn multiRevokeByDelegation( + &self, + multiDelegatedRequests: alloy::sol_types::private::Vec< + ::RustType, + >, + ) -> alloy_contract::SolCallBuilder<&P, multiRevokeByDelegationCall, N> { + self.call_builder( + &multiRevokeByDelegationCall { + multiDelegatedRequests, + }, + ) + } + ///Creates a new call builder for the [`multiRevokeOffchain`] function. + pub fn multiRevokeOffchain( + &self, + data: alloy::sol_types::private::Vec< + alloy::sol_types::private::FixedBytes<32>, + >, + ) -> alloy_contract::SolCallBuilder<&P, multiRevokeOffchainCall, N> { + self.call_builder(&multiRevokeOffchainCall { data }) + } + ///Creates a new call builder for the [`multiTimestamp`] function. + pub fn multiTimestamp( + &self, + data: alloy::sol_types::private::Vec< + alloy::sol_types::private::FixedBytes<32>, + >, + ) -> alloy_contract::SolCallBuilder<&P, multiTimestampCall, N> { + self.call_builder(&multiTimestampCall { data }) + } + ///Creates a new call builder for the [`revoke`] function. + pub fn revoke( + &self, + request: ::RustType, + ) -> alloy_contract::SolCallBuilder<&P, revokeCall, N> { + self.call_builder(&revokeCall { request }) + } + ///Creates a new call builder for the [`revokeByDelegation`] function. + pub fn revokeByDelegation( + &self, + delegatedRequest: ::RustType, + ) -> alloy_contract::SolCallBuilder<&P, revokeByDelegationCall, N> { + self.call_builder( + &revokeByDelegationCall { + delegatedRequest, + }, + ) + } + ///Creates a new call builder for the [`revokeOffchain`] function. + pub fn revokeOffchain( + &self, + data: alloy::sol_types::private::FixedBytes<32>, + ) -> alloy_contract::SolCallBuilder<&P, revokeOffchainCall, N> { + self.call_builder(&revokeOffchainCall { data }) + } + ///Creates a new call builder for the [`timestamp`] function. + pub fn timestamp( + &self, + data: alloy::sol_types::private::FixedBytes<32>, + ) -> alloy_contract::SolCallBuilder<&P, timestampCall, N> { + self.call_builder(×tampCall { data }) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > IEASInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + ///Creates a new event filter for the [`Attested`] event. + pub fn Attested_filter(&self) -> alloy_contract::Event<&P, Attested, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`Revoked`] event. + pub fn Revoked_filter(&self) -> alloy_contract::Event<&P, Revoked, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`RevokedOffchain`] event. + pub fn RevokedOffchain_filter( + &self, + ) -> alloy_contract::Event<&P, RevokedOffchain, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`Timestamped`] event. + pub fn Timestamped_filter(&self) -> alloy_contract::Event<&P, Timestamped, N> { + self.event_filter::() + } + } +} diff --git a/bindings/rust/src/isp1_verifier.rs b/bindings/rust/src/isp1_verifier.rs new file mode 100644 index 000000000..e5ebeffed --- /dev/null +++ b/bindings/rust/src/isp1_verifier.rs @@ -0,0 +1,576 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface ISP1Verifier { + function verifyProof(bytes32 _programVKey, bytes memory _publicValues, bytes memory _proofBytes) external view; +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "function", + "name": "verifyProof", + "inputs": [ + { + "name": "_programVKey", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "_publicValues", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "_proofBytes", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [], + "stateMutability": "view" + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod ISP1Verifier { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"", + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `verifyProof(bytes32,bytes,bytes)` and selector `0x41493c60`. +```solidity +function verifyProof(bytes32 _programVKey, bytes memory _publicValues, bytes memory _proofBytes) external view; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct verifyProofCall { + #[allow(missing_docs)] + pub _programVKey: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub _publicValues: alloy::sol_types::private::Bytes, + #[allow(missing_docs)] + pub _proofBytes: alloy::sol_types::private::Bytes, + } + ///Container type for the return parameters of the [`verifyProof(bytes32,bytes,bytes)`](verifyProofCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct verifyProofReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Bytes, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::FixedBytes<32>, + alloy::sol_types::private::Bytes, + alloy::sol_types::private::Bytes, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: verifyProofCall) -> Self { + (value._programVKey, value._publicValues, value._proofBytes) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for verifyProofCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _programVKey: tuple.0, + _publicValues: tuple.1, + _proofBytes: tuple.2, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: verifyProofReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for verifyProofReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl verifyProofReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for verifyProofCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Bytes, + alloy::sol_types::sol_data::Bytes, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = verifyProofReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "verifyProof(bytes32,bytes,bytes)"; + const SELECTOR: [u8; 4] = [65u8, 73u8, 60u8, 96u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._programVKey), + ::tokenize( + &self._publicValues, + ), + ::tokenize( + &self._proofBytes, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + verifyProofReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + ///Container for all the [`ISP1Verifier`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum ISP1VerifierCalls { + #[allow(missing_docs)] + verifyProof(verifyProofCall), + } + impl ISP1VerifierCalls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[[65u8, 73u8, 60u8, 96u8]]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(verifyProof), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for ISP1VerifierCalls { + const NAME: &'static str = "ISP1VerifierCalls"; + const MIN_DATA_LENGTH: usize = 160usize; + const COUNT: usize = 1usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::verifyProof(_) => { + ::SELECTOR + } + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn verifyProof( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(ISP1VerifierCalls::verifyProof) + } + verifyProof + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn verifyProof( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(ISP1VerifierCalls::verifyProof) + } + verifyProof + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::verifyProof(inner) => { + ::abi_encoded_size( + inner, + ) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::verifyProof(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`ISP1Verifier`](self) contract instance. + +See the [wrapper's documentation](`ISP1VerifierInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> ISP1VerifierInstance { + ISP1VerifierInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + ISP1VerifierInstance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + ISP1VerifierInstance::::deploy_builder(__provider) + } + /**A [`ISP1Verifier`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`ISP1Verifier`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct ISP1VerifierInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for ISP1VerifierInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("ISP1VerifierInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > ISP1VerifierInstance { + /**Creates a new wrapper around an on-chain [`ISP1Verifier`](self) contract instance. + +See the [wrapper's documentation](`ISP1VerifierInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl ISP1VerifierInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> ISP1VerifierInstance { + ISP1VerifierInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > ISP1VerifierInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`verifyProof`] function. + pub fn verifyProof( + &self, + _programVKey: alloy::sol_types::private::FixedBytes<32>, + _publicValues: alloy::sol_types::private::Bytes, + _proofBytes: alloy::sol_types::private::Bytes, + ) -> alloy_contract::SolCallBuilder<&P, verifyProofCall, N> { + self.call_builder( + &verifyProofCall { + _programVKey, + _publicValues, + _proofBytes, + }, + ) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > ISP1VerifierInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + } +} diff --git a/bindings/rust/src/l1_block.rs b/bindings/rust/src/l1_block.rs new file mode 100644 index 000000000..35f64c700 --- /dev/null +++ b/bindings/rust/src/l1_block.rs @@ -0,0 +1,5377 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface L1Block { + function DEPOSITOR_ACCOUNT() external pure returns (address addr_); + function baseFeeScalar() external view returns (uint32); + function basefee() external view returns (uint256); + function batcherHash() external view returns (bytes32); + function blobBaseFee() external view returns (uint256); + function blobBaseFeeScalar() external view returns (uint32); + function daFootprintGasScalar() external view returns (uint16); + function gasPayingToken() external pure returns (address addr_, uint8 decimals_); + function gasPayingTokenName() external view returns (string memory name_); + function gasPayingTokenSymbol() external view returns (string memory symbol_); + function hash() external view returns (bytes32); + function isCustomGasToken() external view returns (bool is_); + function l1FeeOverhead() external view returns (uint256); + function l1FeeScalar() external view returns (uint256); + function number() external view returns (uint64); + function operatorFeeConstant() external view returns (uint64); + function operatorFeeScalar() external view returns (uint32); + function sequenceNumber() external view returns (uint64); + function setL1BlockValues(uint64 _number, uint64 _timestamp, uint256 _basefee, bytes32 _hash, uint64 _sequenceNumber, bytes32 _batcherHash, uint256 _l1FeeOverhead, uint256 _l1FeeScalar) external; + function setL1BlockValuesEcotone() external; + function setL1BlockValuesIsthmus() external; + function setL1BlockValuesJovian() external; + function timestamp() external view returns (uint64); + function version() external pure returns (string memory); +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "function", + "name": "DEPOSITOR_ACCOUNT", + "inputs": [], + "outputs": [ + { + "name": "addr_", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "baseFeeScalar", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint32", + "internalType": "uint32" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "basefee", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "batcherHash", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "blobBaseFee", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "blobBaseFeeScalar", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint32", + "internalType": "uint32" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "daFootprintGasScalar", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint16", + "internalType": "uint16" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "gasPayingToken", + "inputs": [], + "outputs": [ + { + "name": "addr_", + "type": "address", + "internalType": "address" + }, + { + "name": "decimals_", + "type": "uint8", + "internalType": "uint8" + } + ], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "gasPayingTokenName", + "inputs": [], + "outputs": [ + { + "name": "name_", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "gasPayingTokenSymbol", + "inputs": [], + "outputs": [ + { + "name": "symbol_", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "hash", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "isCustomGasToken", + "inputs": [], + "outputs": [ + { + "name": "is_", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "l1FeeOverhead", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "l1FeeScalar", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "number", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint64", + "internalType": "uint64" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "operatorFeeConstant", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint64", + "internalType": "uint64" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "operatorFeeScalar", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint32", + "internalType": "uint32" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "sequenceNumber", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint64", + "internalType": "uint64" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "setL1BlockValues", + "inputs": [ + { + "name": "_number", + "type": "uint64", + "internalType": "uint64" + }, + { + "name": "_timestamp", + "type": "uint64", + "internalType": "uint64" + }, + { + "name": "_basefee", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_hash", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "_sequenceNumber", + "type": "uint64", + "internalType": "uint64" + }, + { + "name": "_batcherHash", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "_l1FeeOverhead", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_l1FeeScalar", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "setL1BlockValuesEcotone", + "inputs": [], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "setL1BlockValuesIsthmus", + "inputs": [], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "setL1BlockValuesJovian", + "inputs": [], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "timestamp", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint64", + "internalType": "uint64" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "version", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "pure" + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod L1Block { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x608060405234801561001057600080fd5b50610715806100206000396000f3fe608060405234801561001057600080fd5b50600436106101985760003560e01c806364ca23ef116100e3578063c59859181161008c578063e81b2c6d11610066578063e81b2c6d146103f0578063f8206140146103f9578063fe3d57101461040257600080fd5b8063c598591814610375578063d844471514610395578063e591b282146103ce57600080fd5b80638b239f73116100bd5780638b239f73146103435780639e8c49661461034c578063b80777ea1461035557600080fd5b806364ca23ef146102ff57806368d5dca6146103135780638381f58a1461032f57600080fd5b80634397dfef1161014557806354fd4d501161011f57806354fd4d501461027b578063550fcdc9146102bd5780635cf24969146102f657600080fd5b80634397dfef1461021a578063440a5e20146102425780634d5d9a2a1461024a57600080fd5b806316d3bc7f1161017657806316d3bc7f146101d657806321326849146102035780633db6be2b1461021257600080fd5b8063015d8eb91461019d578063098999be146101b257806309bd5a60146101ba575b600080fd5b6101b06101ab366004610623565b610433565b005b6101b0610572565b6101c360025481565b6040519081526020015b60405180910390f35b6008546101ea9067ffffffffffffffff1681565b60405167ffffffffffffffff90911681526020016101cd565b604051600081526020016101cd565b6101b0610585565b6040805173eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee815260126020820152016101cd565b6101b06105af565b6008546102669068010000000000000000900463ffffffff1681565b60405163ffffffff90911681526020016101cd565b60408051808201909152600581527f312e382e3000000000000000000000000000000000000000000000000000000060208201525b6040516101cd9190610695565b60408051808201909152600381527f455448000000000000000000000000000000000000000000000000000000000060208201526102b0565b6101c360015481565b6003546101ea9067ffffffffffffffff1681565b6003546102669068010000000000000000900463ffffffff1681565b6000546101ea9067ffffffffffffffff1681565b6101c360055481565b6101c360065481565b6000546101ea9068010000000000000000900467ffffffffffffffff1681565b600354610266906c01000000000000000000000000900463ffffffff1681565b60408051808201909152600581527f457468657200000000000000000000000000000000000000000000000000000060208201526102b0565b60405173deaddeaddeaddeaddeaddeaddeaddeaddead000181526020016101cd565b6101c360045481565b6101c360075481565b600854610420906c01000000000000000000000000900461ffff1681565b60405161ffff90911681526020016101cd565b3373deaddeaddeaddeaddeaddeaddeaddeaddead0001146104da576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603b60248201527f4c31426c6f636b3a206f6e6c7920746865206465706f7369746f72206163636f60448201527f756e742063616e20736574204c3120626c6f636b2076616c7565730000000000606482015260840160405180910390fd5b6000805467ffffffffffffffff98891668010000000000000000027fffffffffffffffffffffffffffffffff00000000000000000000000000000000909116998916999099179890981790975560019490945560029290925560038054919094167fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000009190911617909255600491909155600555600655565b61057a6105af565b60a43560a01c600855565b61058d6105af565b6dffff00000000000000000000000060b03560901c1660a43560a01c17600855565b73deaddeaddeaddeaddeaddeaddeaddeaddead00013381146105d957633cc50b456000526004601cfd5b60043560801c60035560143560801c60005560243560015560443560075560643560025560843560045550565b803567ffffffffffffffff8116811461061e57600080fd5b919050565b600080600080600080600080610100898b03121561064057600080fd5b61064989610606565b975061065760208a01610606565b9650604089013595506060890135945061067360808a01610606565b979a969950949793969560a0850135955060c08501359460e001359350915050565b600060208083528351808285015260005b818110156106c2578581018301518582016040015282016106a6565b818111156106d4576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01692909201604001939250505056fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[Pa\x07\x15\x80a\0 `\09`\0\xF3\xFE`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`\x046\x10a\x01\x98W`\x005`\xE0\x1C\x80cd\xCA#\xEF\x11a\0\xE3W\x80c\xC5\x98Y\x18\x11a\0\x8CW\x80c\xE8\x1B,m\x11a\0fW\x80c\xE8\x1B,m\x14a\x03\xF0W\x80c\xF8 a@\x14a\x03\xF9W\x80c\xFE=W\x10\x14a\x04\x02W`\0\x80\xFD[\x80c\xC5\x98Y\x18\x14a\x03uW\x80c\xD8DG\x15\x14a\x03\x95W\x80c\xE5\x91\xB2\x82\x14a\x03\xCEW`\0\x80\xFD[\x80c\x8B#\x9Fs\x11a\0\xBDW\x80c\x8B#\x9Fs\x14a\x03CW\x80c\x9E\x8CIf\x14a\x03LW\x80c\xB8\x07w\xEA\x14a\x03UW`\0\x80\xFD[\x80cd\xCA#\xEF\x14a\x02\xFFW\x80ch\xD5\xDC\xA6\x14a\x03\x13W\x80c\x83\x81\xF5\x8A\x14a\x03/W`\0\x80\xFD[\x80cC\x97\xDF\xEF\x11a\x01EW\x80cT\xFDMP\x11a\x01\x1FW\x80cT\xFDMP\x14a\x02{W\x80cU\x0F\xCD\xC9\x14a\x02\xBDW\x80c\\\xF2Ii\x14a\x02\xF6W`\0\x80\xFD[\x80cC\x97\xDF\xEF\x14a\x02\x1AW\x80cD\n^ \x14a\x02BW\x80cM]\x9A*\x14a\x02JW`\0\x80\xFD[\x80c\x16\xD3\xBC\x7F\x11a\x01vW\x80c\x16\xD3\xBC\x7F\x14a\x01\xD6W\x80c!2hI\x14a\x02\x03W\x80c=\xB6\xBE+\x14a\x02\x12W`\0\x80\xFD[\x80c\x01]\x8E\xB9\x14a\x01\x9DW\x80c\t\x89\x99\xBE\x14a\x01\xB2W\x80c\t\xBDZ`\x14a\x01\xBAW[`\0\x80\xFD[a\x01\xB0a\x01\xAB6`\x04a\x06#V[a\x043V[\0[a\x01\xB0a\x05rV[a\x01\xC3`\x02T\x81V[`@Q\x90\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[`\x08Ta\x01\xEA\x90g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[`@Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01a\x01\xCDV[`@Q`\0\x81R` \x01a\x01\xCDV[a\x01\xB0a\x05\x85V[`@\x80Qs\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\x81R`\x12` \x82\x01R\x01a\x01\xCDV[a\x01\xB0a\x05\xAFV[`\x08Ta\x02f\x90h\x01\0\0\0\0\0\0\0\0\x90\x04c\xFF\xFF\xFF\xFF\x16\x81V[`@Qc\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01a\x01\xCDV[`@\x80Q\x80\x82\x01\x90\x91R`\x05\x81R\x7F1.8.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` \x82\x01R[`@Qa\x01\xCD\x91\x90a\x06\x95V[`@\x80Q\x80\x82\x01\x90\x91R`\x03\x81R\x7FETH\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0` \x82\x01Ra\x02\xB0V[a\x01\xC3`\x01T\x81V[`\x03Ta\x01\xEA\x90g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[`\x03Ta\x02f\x90h\x01\0\0\0\0\0\0\0\0\x90\x04c\xFF\xFF\xFF\xFF\x16\x81V[`\0Ta\x01\xEA\x90g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[a\x01\xC3`\x05T\x81V[a\x01\xC3`\x06T\x81V[`\0Ta\x01\xEA\x90h\x01\0\0\0\0\0\0\0\0\x90\x04g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[`\x03Ta\x02f\x90l\x01\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04c\xFF\xFF\xFF\xFF\x16\x81V[`@\x80Q\x80\x82\x01\x90\x91R`\x05\x81R\x7FEther\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` \x82\x01Ra\x02\xB0V[`@Qs\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\0\x01\x81R` \x01a\x01\xCDV[a\x01\xC3`\x04T\x81V[a\x01\xC3`\x07T\x81V[`\x08Ta\x04 \x90l\x01\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04a\xFF\xFF\x16\x81V[`@Qa\xFF\xFF\x90\x91\x16\x81R` \x01a\x01\xCDV[3s\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\0\x01\x14a\x04\xDAW`@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\x82\x01R`;`$\x82\x01R\x7FL1Block: only the depositor acco`D\x82\x01R\x7Funt can set L1 block values\0\0\0\0\0`d\x82\x01R`\x84\x01`@Q\x80\x91\x03\x90\xFD[`\0\x80Tg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x98\x89\x16h\x01\0\0\0\0\0\0\0\0\x02\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x91\x16\x99\x89\x16\x99\x90\x99\x17\x98\x90\x98\x17\x90\x97U`\x01\x94\x90\x94U`\x02\x92\x90\x92U`\x03\x80T\x91\x90\x94\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\x91\x90\x91\x16\x17\x90\x92U`\x04\x91\x90\x91U`\x05U`\x06UV[a\x05za\x05\xAFV[`\xA45`\xA0\x1C`\x08UV[a\x05\x8Da\x05\xAFV[m\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0`\xB05`\x90\x1C\x16`\xA45`\xA0\x1C\x17`\x08UV[s\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\0\x013\x81\x14a\x05\xD9Wc<\xC5\x0BE`\0R`\x04`\x1C\xFD[`\x045`\x80\x1C`\x03U`\x145`\x80\x1C`\0U`$5`\x01U`D5`\x07U`d5`\x02U`\x845`\x04UPV[\x805g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x06\x1EW`\0\x80\xFD[\x91\x90PV[`\0\x80`\0\x80`\0\x80`\0\x80a\x01\0\x89\x8B\x03\x12\x15a\x06@W`\0\x80\xFD[a\x06I\x89a\x06\x06V[\x97Pa\x06W` \x8A\x01a\x06\x06V[\x96P`@\x89\x015\x95P``\x89\x015\x94Pa\x06s`\x80\x8A\x01a\x06\x06V[\x97\x9A\x96\x99P\x94\x97\x93\x96\x95`\xA0\x85\x015\x95P`\xC0\x85\x015\x94`\xE0\x015\x93P\x91PPV[`\0` \x80\x83R\x83Q\x80\x82\x85\x01R`\0[\x81\x81\x10\x15a\x06\xC2W\x85\x81\x01\x83\x01Q\x85\x82\x01`@\x01R\x82\x01a\x06\xA6V[\x81\x81\x11\x15a\x06\xD4W`\0`@\x83\x87\x01\x01R[P`\x1F\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x92\x90\x92\x01`@\x01\x93\x92PPPV\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x608060405234801561001057600080fd5b50600436106101985760003560e01c806364ca23ef116100e3578063c59859181161008c578063e81b2c6d11610066578063e81b2c6d146103f0578063f8206140146103f9578063fe3d57101461040257600080fd5b8063c598591814610375578063d844471514610395578063e591b282146103ce57600080fd5b80638b239f73116100bd5780638b239f73146103435780639e8c49661461034c578063b80777ea1461035557600080fd5b806364ca23ef146102ff57806368d5dca6146103135780638381f58a1461032f57600080fd5b80634397dfef1161014557806354fd4d501161011f57806354fd4d501461027b578063550fcdc9146102bd5780635cf24969146102f657600080fd5b80634397dfef1461021a578063440a5e20146102425780634d5d9a2a1461024a57600080fd5b806316d3bc7f1161017657806316d3bc7f146101d657806321326849146102035780633db6be2b1461021257600080fd5b8063015d8eb91461019d578063098999be146101b257806309bd5a60146101ba575b600080fd5b6101b06101ab366004610623565b610433565b005b6101b0610572565b6101c360025481565b6040519081526020015b60405180910390f35b6008546101ea9067ffffffffffffffff1681565b60405167ffffffffffffffff90911681526020016101cd565b604051600081526020016101cd565b6101b0610585565b6040805173eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee815260126020820152016101cd565b6101b06105af565b6008546102669068010000000000000000900463ffffffff1681565b60405163ffffffff90911681526020016101cd565b60408051808201909152600581527f312e382e3000000000000000000000000000000000000000000000000000000060208201525b6040516101cd9190610695565b60408051808201909152600381527f455448000000000000000000000000000000000000000000000000000000000060208201526102b0565b6101c360015481565b6003546101ea9067ffffffffffffffff1681565b6003546102669068010000000000000000900463ffffffff1681565b6000546101ea9067ffffffffffffffff1681565b6101c360055481565b6101c360065481565b6000546101ea9068010000000000000000900467ffffffffffffffff1681565b600354610266906c01000000000000000000000000900463ffffffff1681565b60408051808201909152600581527f457468657200000000000000000000000000000000000000000000000000000060208201526102b0565b60405173deaddeaddeaddeaddeaddeaddeaddeaddead000181526020016101cd565b6101c360045481565b6101c360075481565b600854610420906c01000000000000000000000000900461ffff1681565b60405161ffff90911681526020016101cd565b3373deaddeaddeaddeaddeaddeaddeaddeaddead0001146104da576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603b60248201527f4c31426c6f636b3a206f6e6c7920746865206465706f7369746f72206163636f60448201527f756e742063616e20736574204c3120626c6f636b2076616c7565730000000000606482015260840160405180910390fd5b6000805467ffffffffffffffff98891668010000000000000000027fffffffffffffffffffffffffffffffff00000000000000000000000000000000909116998916999099179890981790975560019490945560029290925560038054919094167fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000009190911617909255600491909155600555600655565b61057a6105af565b60a43560a01c600855565b61058d6105af565b6dffff00000000000000000000000060b03560901c1660a43560a01c17600855565b73deaddeaddeaddeaddeaddeaddeaddeaddead00013381146105d957633cc50b456000526004601cfd5b60043560801c60035560143560801c60005560243560015560443560075560643560025560843560045550565b803567ffffffffffffffff8116811461061e57600080fd5b919050565b600080600080600080600080610100898b03121561064057600080fd5b61064989610606565b975061065760208a01610606565b9650604089013595506060890135945061067360808a01610606565b979a969950949793969560a0850135955060c08501359460e001359350915050565b600060208083528351808285015260005b818110156106c2578581018301518582016040015282016106a6565b818111156106d4576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01692909201604001939250505056fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`\x046\x10a\x01\x98W`\x005`\xE0\x1C\x80cd\xCA#\xEF\x11a\0\xE3W\x80c\xC5\x98Y\x18\x11a\0\x8CW\x80c\xE8\x1B,m\x11a\0fW\x80c\xE8\x1B,m\x14a\x03\xF0W\x80c\xF8 a@\x14a\x03\xF9W\x80c\xFE=W\x10\x14a\x04\x02W`\0\x80\xFD[\x80c\xC5\x98Y\x18\x14a\x03uW\x80c\xD8DG\x15\x14a\x03\x95W\x80c\xE5\x91\xB2\x82\x14a\x03\xCEW`\0\x80\xFD[\x80c\x8B#\x9Fs\x11a\0\xBDW\x80c\x8B#\x9Fs\x14a\x03CW\x80c\x9E\x8CIf\x14a\x03LW\x80c\xB8\x07w\xEA\x14a\x03UW`\0\x80\xFD[\x80cd\xCA#\xEF\x14a\x02\xFFW\x80ch\xD5\xDC\xA6\x14a\x03\x13W\x80c\x83\x81\xF5\x8A\x14a\x03/W`\0\x80\xFD[\x80cC\x97\xDF\xEF\x11a\x01EW\x80cT\xFDMP\x11a\x01\x1FW\x80cT\xFDMP\x14a\x02{W\x80cU\x0F\xCD\xC9\x14a\x02\xBDW\x80c\\\xF2Ii\x14a\x02\xF6W`\0\x80\xFD[\x80cC\x97\xDF\xEF\x14a\x02\x1AW\x80cD\n^ \x14a\x02BW\x80cM]\x9A*\x14a\x02JW`\0\x80\xFD[\x80c\x16\xD3\xBC\x7F\x11a\x01vW\x80c\x16\xD3\xBC\x7F\x14a\x01\xD6W\x80c!2hI\x14a\x02\x03W\x80c=\xB6\xBE+\x14a\x02\x12W`\0\x80\xFD[\x80c\x01]\x8E\xB9\x14a\x01\x9DW\x80c\t\x89\x99\xBE\x14a\x01\xB2W\x80c\t\xBDZ`\x14a\x01\xBAW[`\0\x80\xFD[a\x01\xB0a\x01\xAB6`\x04a\x06#V[a\x043V[\0[a\x01\xB0a\x05rV[a\x01\xC3`\x02T\x81V[`@Q\x90\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[`\x08Ta\x01\xEA\x90g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[`@Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01a\x01\xCDV[`@Q`\0\x81R` \x01a\x01\xCDV[a\x01\xB0a\x05\x85V[`@\x80Qs\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\x81R`\x12` \x82\x01R\x01a\x01\xCDV[a\x01\xB0a\x05\xAFV[`\x08Ta\x02f\x90h\x01\0\0\0\0\0\0\0\0\x90\x04c\xFF\xFF\xFF\xFF\x16\x81V[`@Qc\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01a\x01\xCDV[`@\x80Q\x80\x82\x01\x90\x91R`\x05\x81R\x7F1.8.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` \x82\x01R[`@Qa\x01\xCD\x91\x90a\x06\x95V[`@\x80Q\x80\x82\x01\x90\x91R`\x03\x81R\x7FETH\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0` \x82\x01Ra\x02\xB0V[a\x01\xC3`\x01T\x81V[`\x03Ta\x01\xEA\x90g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[`\x03Ta\x02f\x90h\x01\0\0\0\0\0\0\0\0\x90\x04c\xFF\xFF\xFF\xFF\x16\x81V[`\0Ta\x01\xEA\x90g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[a\x01\xC3`\x05T\x81V[a\x01\xC3`\x06T\x81V[`\0Ta\x01\xEA\x90h\x01\0\0\0\0\0\0\0\0\x90\x04g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[`\x03Ta\x02f\x90l\x01\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04c\xFF\xFF\xFF\xFF\x16\x81V[`@\x80Q\x80\x82\x01\x90\x91R`\x05\x81R\x7FEther\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` \x82\x01Ra\x02\xB0V[`@Qs\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\0\x01\x81R` \x01a\x01\xCDV[a\x01\xC3`\x04T\x81V[a\x01\xC3`\x07T\x81V[`\x08Ta\x04 \x90l\x01\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04a\xFF\xFF\x16\x81V[`@Qa\xFF\xFF\x90\x91\x16\x81R` \x01a\x01\xCDV[3s\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\0\x01\x14a\x04\xDAW`@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\x82\x01R`;`$\x82\x01R\x7FL1Block: only the depositor acco`D\x82\x01R\x7Funt can set L1 block values\0\0\0\0\0`d\x82\x01R`\x84\x01`@Q\x80\x91\x03\x90\xFD[`\0\x80Tg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x98\x89\x16h\x01\0\0\0\0\0\0\0\0\x02\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x91\x16\x99\x89\x16\x99\x90\x99\x17\x98\x90\x98\x17\x90\x97U`\x01\x94\x90\x94U`\x02\x92\x90\x92U`\x03\x80T\x91\x90\x94\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\x91\x90\x91\x16\x17\x90\x92U`\x04\x91\x90\x91U`\x05U`\x06UV[a\x05za\x05\xAFV[`\xA45`\xA0\x1C`\x08UV[a\x05\x8Da\x05\xAFV[m\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0`\xB05`\x90\x1C\x16`\xA45`\xA0\x1C\x17`\x08UV[s\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\0\x013\x81\x14a\x05\xD9Wc<\xC5\x0BE`\0R`\x04`\x1C\xFD[`\x045`\x80\x1C`\x03U`\x145`\x80\x1C`\0U`$5`\x01U`D5`\x07U`d5`\x02U`\x845`\x04UPV[\x805g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x06\x1EW`\0\x80\xFD[\x91\x90PV[`\0\x80`\0\x80`\0\x80`\0\x80a\x01\0\x89\x8B\x03\x12\x15a\x06@W`\0\x80\xFD[a\x06I\x89a\x06\x06V[\x97Pa\x06W` \x8A\x01a\x06\x06V[\x96P`@\x89\x015\x95P``\x89\x015\x94Pa\x06s`\x80\x8A\x01a\x06\x06V[\x97\x9A\x96\x99P\x94\x97\x93\x96\x95`\xA0\x85\x015\x95P`\xC0\x85\x015\x94`\xE0\x015\x93P\x91PPV[`\0` \x80\x83R\x83Q\x80\x82\x85\x01R`\0[\x81\x81\x10\x15a\x06\xC2W\x85\x81\x01\x83\x01Q\x85\x82\x01`@\x01R\x82\x01a\x06\xA6V[\x81\x81\x11\x15a\x06\xD4W`\0`@\x83\x87\x01\x01R[P`\x1F\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x92\x90\x92\x01`@\x01\x93\x92PPPV\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `DEPOSITOR_ACCOUNT()` and selector `0xe591b282`. +```solidity +function DEPOSITOR_ACCOUNT() external pure returns (address addr_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct DEPOSITOR_ACCOUNTCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`DEPOSITOR_ACCOUNT()`](DEPOSITOR_ACCOUNTCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct DEPOSITOR_ACCOUNTReturn { + #[allow(missing_docs)] + pub addr_: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: DEPOSITOR_ACCOUNTCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for DEPOSITOR_ACCOUNTCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: DEPOSITOR_ACCOUNTReturn) -> Self { + (value.addr_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for DEPOSITOR_ACCOUNTReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { addr_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for DEPOSITOR_ACCOUNTCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "DEPOSITOR_ACCOUNT()"; + const SELECTOR: [u8; 4] = [229u8, 145u8, 178u8, 130u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: DEPOSITOR_ACCOUNTReturn = r.into(); + r.addr_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: DEPOSITOR_ACCOUNTReturn = r.into(); + r.addr_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `baseFeeScalar()` and selector `0xc5985918`. +```solidity +function baseFeeScalar() external view returns (uint32); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct baseFeeScalarCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`baseFeeScalar()`](baseFeeScalarCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct baseFeeScalarReturn { + #[allow(missing_docs)] + pub _0: u32, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: baseFeeScalarCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for baseFeeScalarCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u32,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: baseFeeScalarReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for baseFeeScalarReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for baseFeeScalarCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u32; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<32>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "baseFeeScalar()"; + const SELECTOR: [u8; 4] = [197u8, 152u8, 89u8, 24u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: baseFeeScalarReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: baseFeeScalarReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `basefee()` and selector `0x5cf24969`. +```solidity +function basefee() external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct basefeeCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`basefee()`](basefeeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct basefeeReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: basefeeCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for basefeeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: basefeeReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for basefeeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for basefeeCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "basefee()"; + const SELECTOR: [u8; 4] = [92u8, 242u8, 73u8, 105u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: basefeeReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: basefeeReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `batcherHash()` and selector `0xe81b2c6d`. +```solidity +function batcherHash() external view returns (bytes32); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct batcherHashCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`batcherHash()`](batcherHashCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct batcherHashReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: batcherHashCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for batcherHashCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: batcherHashReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for batcherHashReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for batcherHashCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::FixedBytes<32>; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "batcherHash()"; + const SELECTOR: [u8; 4] = [232u8, 27u8, 44u8, 109u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: batcherHashReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: batcherHashReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `blobBaseFee()` and selector `0xf8206140`. +```solidity +function blobBaseFee() external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct blobBaseFeeCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`blobBaseFee()`](blobBaseFeeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct blobBaseFeeReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: blobBaseFeeCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for blobBaseFeeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: blobBaseFeeReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for blobBaseFeeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for blobBaseFeeCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "blobBaseFee()"; + const SELECTOR: [u8; 4] = [248u8, 32u8, 97u8, 64u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: blobBaseFeeReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: blobBaseFeeReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `blobBaseFeeScalar()` and selector `0x68d5dca6`. +```solidity +function blobBaseFeeScalar() external view returns (uint32); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct blobBaseFeeScalarCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`blobBaseFeeScalar()`](blobBaseFeeScalarCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct blobBaseFeeScalarReturn { + #[allow(missing_docs)] + pub _0: u32, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: blobBaseFeeScalarCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for blobBaseFeeScalarCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u32,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: blobBaseFeeScalarReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for blobBaseFeeScalarReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for blobBaseFeeScalarCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u32; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<32>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "blobBaseFeeScalar()"; + const SELECTOR: [u8; 4] = [104u8, 213u8, 220u8, 166u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: blobBaseFeeScalarReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: blobBaseFeeScalarReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `daFootprintGasScalar()` and selector `0xfe3d5710`. +```solidity +function daFootprintGasScalar() external view returns (uint16); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct daFootprintGasScalarCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`daFootprintGasScalar()`](daFootprintGasScalarCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct daFootprintGasScalarReturn { + #[allow(missing_docs)] + pub _0: u16, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: daFootprintGasScalarCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for daFootprintGasScalarCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<16>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u16,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: daFootprintGasScalarReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for daFootprintGasScalarReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for daFootprintGasScalarCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u16; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<16>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "daFootprintGasScalar()"; + const SELECTOR: [u8; 4] = [254u8, 61u8, 87u8, 16u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: daFootprintGasScalarReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: daFootprintGasScalarReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `gasPayingToken()` and selector `0x4397dfef`. +```solidity +function gasPayingToken() external pure returns (address addr_, uint8 decimals_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct gasPayingTokenCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`gasPayingToken()`](gasPayingTokenCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct gasPayingTokenReturn { + #[allow(missing_docs)] + pub addr_: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub decimals_: u8, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: gasPayingTokenCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for gasPayingTokenCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<8>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address, u8); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: gasPayingTokenReturn) -> Self { + (value.addr_, value.decimals_) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for gasPayingTokenReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + addr_: tuple.0, + decimals_: tuple.1, + } + } + } + } + impl gasPayingTokenReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + ( + ::tokenize( + &self.addr_, + ), + as alloy_sol_types::SolType>::tokenize(&self.decimals_), + ) + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for gasPayingTokenCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = gasPayingTokenReturn; + type ReturnTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<8>, + ); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "gasPayingToken()"; + const SELECTOR: [u8; 4] = [67u8, 151u8, 223u8, 239u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + gasPayingTokenReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `gasPayingTokenName()` and selector `0xd8444715`. +```solidity +function gasPayingTokenName() external view returns (string memory name_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct gasPayingTokenNameCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`gasPayingTokenName()`](gasPayingTokenNameCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct gasPayingTokenNameReturn { + #[allow(missing_docs)] + pub name_: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: gasPayingTokenNameCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for gasPayingTokenNameCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: gasPayingTokenNameReturn) -> Self { + (value.name_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for gasPayingTokenNameReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { name_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for gasPayingTokenNameCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::String; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "gasPayingTokenName()"; + const SELECTOR: [u8; 4] = [216u8, 68u8, 71u8, 21u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: gasPayingTokenNameReturn = r.into(); + r.name_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: gasPayingTokenNameReturn = r.into(); + r.name_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `gasPayingTokenSymbol()` and selector `0x550fcdc9`. +```solidity +function gasPayingTokenSymbol() external view returns (string memory symbol_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct gasPayingTokenSymbolCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`gasPayingTokenSymbol()`](gasPayingTokenSymbolCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct gasPayingTokenSymbolReturn { + #[allow(missing_docs)] + pub symbol_: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: gasPayingTokenSymbolCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for gasPayingTokenSymbolCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: gasPayingTokenSymbolReturn) -> Self { + (value.symbol_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for gasPayingTokenSymbolReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { symbol_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for gasPayingTokenSymbolCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::String; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "gasPayingTokenSymbol()"; + const SELECTOR: [u8; 4] = [85u8, 15u8, 205u8, 201u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: gasPayingTokenSymbolReturn = r.into(); + r.symbol_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: gasPayingTokenSymbolReturn = r.into(); + r.symbol_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `hash()` and selector `0x09bd5a60`. +```solidity +function hash() external view returns (bytes32); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct hashCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`hash()`](hashCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct hashReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: hashCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for hashCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: hashReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for hashReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for hashCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::FixedBytes<32>; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "hash()"; + const SELECTOR: [u8; 4] = [9u8, 189u8, 90u8, 96u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: hashReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: hashReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `isCustomGasToken()` and selector `0x21326849`. +```solidity +function isCustomGasToken() external view returns (bool is_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct isCustomGasTokenCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`isCustomGasToken()`](isCustomGasTokenCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct isCustomGasTokenReturn { + #[allow(missing_docs)] + pub is_: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: isCustomGasTokenCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for isCustomGasTokenCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: isCustomGasTokenReturn) -> Self { + (value.is_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for isCustomGasTokenReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { is_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for isCustomGasTokenCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "isCustomGasToken()"; + const SELECTOR: [u8; 4] = [33u8, 50u8, 104u8, 73u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: isCustomGasTokenReturn = r.into(); + r.is_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: isCustomGasTokenReturn = r.into(); + r.is_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `l1FeeOverhead()` and selector `0x8b239f73`. +```solidity +function l1FeeOverhead() external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct l1FeeOverheadCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`l1FeeOverhead()`](l1FeeOverheadCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct l1FeeOverheadReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: l1FeeOverheadCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for l1FeeOverheadCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: l1FeeOverheadReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for l1FeeOverheadReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for l1FeeOverheadCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "l1FeeOverhead()"; + const SELECTOR: [u8; 4] = [139u8, 35u8, 159u8, 115u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: l1FeeOverheadReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: l1FeeOverheadReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `l1FeeScalar()` and selector `0x9e8c4966`. +```solidity +function l1FeeScalar() external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct l1FeeScalarCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`l1FeeScalar()`](l1FeeScalarCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct l1FeeScalarReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: l1FeeScalarCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for l1FeeScalarCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: l1FeeScalarReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for l1FeeScalarReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for l1FeeScalarCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "l1FeeScalar()"; + const SELECTOR: [u8; 4] = [158u8, 140u8, 73u8, 102u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: l1FeeScalarReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: l1FeeScalarReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `number()` and selector `0x8381f58a`. +```solidity +function number() external view returns (uint64); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct numberCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`number()`](numberCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct numberReturn { + #[allow(missing_docs)] + pub _0: u64, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: numberCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for numberCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u64,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: numberReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for numberReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for numberCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u64; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "number()"; + const SELECTOR: [u8; 4] = [131u8, 129u8, 245u8, 138u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: numberReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: numberReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `operatorFeeConstant()` and selector `0x16d3bc7f`. +```solidity +function operatorFeeConstant() external view returns (uint64); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct operatorFeeConstantCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`operatorFeeConstant()`](operatorFeeConstantCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct operatorFeeConstantReturn { + #[allow(missing_docs)] + pub _0: u64, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: operatorFeeConstantCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for operatorFeeConstantCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u64,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: operatorFeeConstantReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for operatorFeeConstantReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for operatorFeeConstantCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u64; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "operatorFeeConstant()"; + const SELECTOR: [u8; 4] = [22u8, 211u8, 188u8, 127u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: operatorFeeConstantReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: operatorFeeConstantReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `operatorFeeScalar()` and selector `0x4d5d9a2a`. +```solidity +function operatorFeeScalar() external view returns (uint32); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct operatorFeeScalarCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`operatorFeeScalar()`](operatorFeeScalarCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct operatorFeeScalarReturn { + #[allow(missing_docs)] + pub _0: u32, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: operatorFeeScalarCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for operatorFeeScalarCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u32,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: operatorFeeScalarReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for operatorFeeScalarReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for operatorFeeScalarCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u32; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<32>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "operatorFeeScalar()"; + const SELECTOR: [u8; 4] = [77u8, 93u8, 154u8, 42u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: operatorFeeScalarReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: operatorFeeScalarReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `sequenceNumber()` and selector `0x64ca23ef`. +```solidity +function sequenceNumber() external view returns (uint64); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct sequenceNumberCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`sequenceNumber()`](sequenceNumberCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct sequenceNumberReturn { + #[allow(missing_docs)] + pub _0: u64, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: sequenceNumberCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for sequenceNumberCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u64,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: sequenceNumberReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for sequenceNumberReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for sequenceNumberCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u64; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "sequenceNumber()"; + const SELECTOR: [u8; 4] = [100u8, 202u8, 35u8, 239u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: sequenceNumberReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: sequenceNumberReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `setL1BlockValues(uint64,uint64,uint256,bytes32,uint64,bytes32,uint256,uint256)` and selector `0x015d8eb9`. +```solidity +function setL1BlockValues(uint64 _number, uint64 _timestamp, uint256 _basefee, bytes32 _hash, uint64 _sequenceNumber, bytes32 _batcherHash, uint256 _l1FeeOverhead, uint256 _l1FeeScalar) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setL1BlockValuesCall { + #[allow(missing_docs)] + pub _number: u64, + #[allow(missing_docs)] + pub _timestamp: u64, + #[allow(missing_docs)] + pub _basefee: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _hash: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub _sequenceNumber: u64, + #[allow(missing_docs)] + pub _batcherHash: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub _l1FeeOverhead: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _l1FeeScalar: alloy::sol_types::private::primitives::aliases::U256, + } + ///Container type for the return parameters of the [`setL1BlockValues(uint64,uint64,uint256,bytes32,uint64,bytes32,uint256,uint256)`](setL1BlockValuesCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setL1BlockValuesReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Uint<64>, + alloy::sol_types::sol_data::Uint<64>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Uint<64>, + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + u64, + u64, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::FixedBytes<32>, + u64, + alloy::sol_types::private::FixedBytes<32>, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: setL1BlockValuesCall) -> Self { + ( + value._number, + value._timestamp, + value._basefee, + value._hash, + value._sequenceNumber, + value._batcherHash, + value._l1FeeOverhead, + value._l1FeeScalar, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for setL1BlockValuesCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _number: tuple.0, + _timestamp: tuple.1, + _basefee: tuple.2, + _hash: tuple.3, + _sequenceNumber: tuple.4, + _batcherHash: tuple.5, + _l1FeeOverhead: tuple.6, + _l1FeeScalar: tuple.7, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: setL1BlockValuesReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for setL1BlockValuesReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl setL1BlockValuesReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for setL1BlockValuesCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Uint<64>, + alloy::sol_types::sol_data::Uint<64>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Uint<64>, + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = setL1BlockValuesReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "setL1BlockValues(uint64,uint64,uint256,bytes32,uint64,bytes32,uint256,uint256)"; + const SELECTOR: [u8; 4] = [1u8, 93u8, 142u8, 185u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._number), + as alloy_sol_types::SolType>::tokenize(&self._timestamp), + as alloy_sol_types::SolType>::tokenize(&self._basefee), + as alloy_sol_types::SolType>::tokenize(&self._hash), + as alloy_sol_types::SolType>::tokenize(&self._sequenceNumber), + as alloy_sol_types::SolType>::tokenize(&self._batcherHash), + as alloy_sol_types::SolType>::tokenize(&self._l1FeeOverhead), + as alloy_sol_types::SolType>::tokenize(&self._l1FeeScalar), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + setL1BlockValuesReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `setL1BlockValuesEcotone()` and selector `0x440a5e20`. +```solidity +function setL1BlockValuesEcotone() external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setL1BlockValuesEcotoneCall; + ///Container type for the return parameters of the [`setL1BlockValuesEcotone()`](setL1BlockValuesEcotoneCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setL1BlockValuesEcotoneReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: setL1BlockValuesEcotoneCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for setL1BlockValuesEcotoneCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: setL1BlockValuesEcotoneReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for setL1BlockValuesEcotoneReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl setL1BlockValuesEcotoneReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken< + '_, + > { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for setL1BlockValuesEcotoneCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = setL1BlockValuesEcotoneReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "setL1BlockValuesEcotone()"; + const SELECTOR: [u8; 4] = [68u8, 10u8, 94u8, 32u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + setL1BlockValuesEcotoneReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `setL1BlockValuesIsthmus()` and selector `0x098999be`. +```solidity +function setL1BlockValuesIsthmus() external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setL1BlockValuesIsthmusCall; + ///Container type for the return parameters of the [`setL1BlockValuesIsthmus()`](setL1BlockValuesIsthmusCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setL1BlockValuesIsthmusReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: setL1BlockValuesIsthmusCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for setL1BlockValuesIsthmusCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: setL1BlockValuesIsthmusReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for setL1BlockValuesIsthmusReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl setL1BlockValuesIsthmusReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken< + '_, + > { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for setL1BlockValuesIsthmusCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = setL1BlockValuesIsthmusReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "setL1BlockValuesIsthmus()"; + const SELECTOR: [u8; 4] = [9u8, 137u8, 153u8, 190u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + setL1BlockValuesIsthmusReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `setL1BlockValuesJovian()` and selector `0x3db6be2b`. +```solidity +function setL1BlockValuesJovian() external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setL1BlockValuesJovianCall; + ///Container type for the return parameters of the [`setL1BlockValuesJovian()`](setL1BlockValuesJovianCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setL1BlockValuesJovianReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: setL1BlockValuesJovianCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for setL1BlockValuesJovianCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: setL1BlockValuesJovianReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for setL1BlockValuesJovianReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl setL1BlockValuesJovianReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken< + '_, + > { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for setL1BlockValuesJovianCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = setL1BlockValuesJovianReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "setL1BlockValuesJovian()"; + const SELECTOR: [u8; 4] = [61u8, 182u8, 190u8, 43u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + setL1BlockValuesJovianReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `timestamp()` and selector `0xb80777ea`. +```solidity +function timestamp() external view returns (uint64); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct timestampCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`timestamp()`](timestampCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct timestampReturn { + #[allow(missing_docs)] + pub _0: u64, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: timestampCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for timestampCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u64,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: timestampReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for timestampReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for timestampCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u64; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "timestamp()"; + const SELECTOR: [u8; 4] = [184u8, 7u8, 119u8, 234u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: timestampReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: timestampReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `version()` and selector `0x54fd4d50`. +```solidity +function version() external pure returns (string memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`version()`](versionCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for versionCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::String; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "version()"; + const SELECTOR: [u8; 4] = [84u8, 253u8, 77u8, 80u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + } + }; + ///Container for all the [`L1Block`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum L1BlockCalls { + #[allow(missing_docs)] + DEPOSITOR_ACCOUNT(DEPOSITOR_ACCOUNTCall), + #[allow(missing_docs)] + baseFeeScalar(baseFeeScalarCall), + #[allow(missing_docs)] + basefee(basefeeCall), + #[allow(missing_docs)] + batcherHash(batcherHashCall), + #[allow(missing_docs)] + blobBaseFee(blobBaseFeeCall), + #[allow(missing_docs)] + blobBaseFeeScalar(blobBaseFeeScalarCall), + #[allow(missing_docs)] + daFootprintGasScalar(daFootprintGasScalarCall), + #[allow(missing_docs)] + gasPayingToken(gasPayingTokenCall), + #[allow(missing_docs)] + gasPayingTokenName(gasPayingTokenNameCall), + #[allow(missing_docs)] + gasPayingTokenSymbol(gasPayingTokenSymbolCall), + #[allow(missing_docs)] + hash(hashCall), + #[allow(missing_docs)] + isCustomGasToken(isCustomGasTokenCall), + #[allow(missing_docs)] + l1FeeOverhead(l1FeeOverheadCall), + #[allow(missing_docs)] + l1FeeScalar(l1FeeScalarCall), + #[allow(missing_docs)] + number(numberCall), + #[allow(missing_docs)] + operatorFeeConstant(operatorFeeConstantCall), + #[allow(missing_docs)] + operatorFeeScalar(operatorFeeScalarCall), + #[allow(missing_docs)] + sequenceNumber(sequenceNumberCall), + #[allow(missing_docs)] + setL1BlockValues(setL1BlockValuesCall), + #[allow(missing_docs)] + setL1BlockValuesEcotone(setL1BlockValuesEcotoneCall), + #[allow(missing_docs)] + setL1BlockValuesIsthmus(setL1BlockValuesIsthmusCall), + #[allow(missing_docs)] + setL1BlockValuesJovian(setL1BlockValuesJovianCall), + #[allow(missing_docs)] + timestamp(timestampCall), + #[allow(missing_docs)] + version(versionCall), + } + impl L1BlockCalls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [1u8, 93u8, 142u8, 185u8], + [9u8, 137u8, 153u8, 190u8], + [9u8, 189u8, 90u8, 96u8], + [22u8, 211u8, 188u8, 127u8], + [33u8, 50u8, 104u8, 73u8], + [61u8, 182u8, 190u8, 43u8], + [67u8, 151u8, 223u8, 239u8], + [68u8, 10u8, 94u8, 32u8], + [77u8, 93u8, 154u8, 42u8], + [84u8, 253u8, 77u8, 80u8], + [85u8, 15u8, 205u8, 201u8], + [92u8, 242u8, 73u8, 105u8], + [100u8, 202u8, 35u8, 239u8], + [104u8, 213u8, 220u8, 166u8], + [131u8, 129u8, 245u8, 138u8], + [139u8, 35u8, 159u8, 115u8], + [158u8, 140u8, 73u8, 102u8], + [184u8, 7u8, 119u8, 234u8], + [197u8, 152u8, 89u8, 24u8], + [216u8, 68u8, 71u8, 21u8], + [229u8, 145u8, 178u8, 130u8], + [232u8, 27u8, 44u8, 109u8], + [248u8, 32u8, 97u8, 64u8], + [254u8, 61u8, 87u8, 16u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(setL1BlockValues), + ::core::stringify!(setL1BlockValuesIsthmus), + ::core::stringify!(hash), + ::core::stringify!(operatorFeeConstant), + ::core::stringify!(isCustomGasToken), + ::core::stringify!(setL1BlockValuesJovian), + ::core::stringify!(gasPayingToken), + ::core::stringify!(setL1BlockValuesEcotone), + ::core::stringify!(operatorFeeScalar), + ::core::stringify!(version), + ::core::stringify!(gasPayingTokenSymbol), + ::core::stringify!(basefee), + ::core::stringify!(sequenceNumber), + ::core::stringify!(blobBaseFeeScalar), + ::core::stringify!(number), + ::core::stringify!(l1FeeOverhead), + ::core::stringify!(l1FeeScalar), + ::core::stringify!(timestamp), + ::core::stringify!(baseFeeScalar), + ::core::stringify!(gasPayingTokenName), + ::core::stringify!(DEPOSITOR_ACCOUNT), + ::core::stringify!(batcherHash), + ::core::stringify!(blobBaseFee), + ::core::stringify!(daFootprintGasScalar), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for L1BlockCalls { + const NAME: &'static str = "L1BlockCalls"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 24usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::DEPOSITOR_ACCOUNT(_) => { + ::SELECTOR + } + Self::baseFeeScalar(_) => { + ::SELECTOR + } + Self::basefee(_) => ::SELECTOR, + Self::batcherHash(_) => { + ::SELECTOR + } + Self::blobBaseFee(_) => { + ::SELECTOR + } + Self::blobBaseFeeScalar(_) => { + ::SELECTOR + } + Self::daFootprintGasScalar(_) => { + ::SELECTOR + } + Self::gasPayingToken(_) => { + ::SELECTOR + } + Self::gasPayingTokenName(_) => { + ::SELECTOR + } + Self::gasPayingTokenSymbol(_) => { + ::SELECTOR + } + Self::hash(_) => ::SELECTOR, + Self::isCustomGasToken(_) => { + ::SELECTOR + } + Self::l1FeeOverhead(_) => { + ::SELECTOR + } + Self::l1FeeScalar(_) => { + ::SELECTOR + } + Self::number(_) => ::SELECTOR, + Self::operatorFeeConstant(_) => { + ::SELECTOR + } + Self::operatorFeeScalar(_) => { + ::SELECTOR + } + Self::sequenceNumber(_) => { + ::SELECTOR + } + Self::setL1BlockValues(_) => { + ::SELECTOR + } + Self::setL1BlockValuesEcotone(_) => { + ::SELECTOR + } + Self::setL1BlockValuesIsthmus(_) => { + ::SELECTOR + } + Self::setL1BlockValuesJovian(_) => { + ::SELECTOR + } + Self::timestamp(_) => { + ::SELECTOR + } + Self::version(_) => ::SELECTOR, + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn(&[u8]) -> alloy_sol_types::Result] = &[ + { + fn setL1BlockValues( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L1BlockCalls::setL1BlockValues) + } + setL1BlockValues + }, + { + fn setL1BlockValuesIsthmus( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L1BlockCalls::setL1BlockValuesIsthmus) + } + setL1BlockValuesIsthmus + }, + { + fn hash(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(L1BlockCalls::hash) + } + hash + }, + { + fn operatorFeeConstant( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L1BlockCalls::operatorFeeConstant) + } + operatorFeeConstant + }, + { + fn isCustomGasToken( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L1BlockCalls::isCustomGasToken) + } + isCustomGasToken + }, + { + fn setL1BlockValuesJovian( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L1BlockCalls::setL1BlockValuesJovian) + } + setL1BlockValuesJovian + }, + { + fn gasPayingToken( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L1BlockCalls::gasPayingToken) + } + gasPayingToken + }, + { + fn setL1BlockValuesEcotone( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L1BlockCalls::setL1BlockValuesEcotone) + } + setL1BlockValuesEcotone + }, + { + fn operatorFeeScalar( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L1BlockCalls::operatorFeeScalar) + } + operatorFeeScalar + }, + { + fn version(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(L1BlockCalls::version) + } + version + }, + { + fn gasPayingTokenSymbol( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L1BlockCalls::gasPayingTokenSymbol) + } + gasPayingTokenSymbol + }, + { + fn basefee(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(L1BlockCalls::basefee) + } + basefee + }, + { + fn sequenceNumber( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L1BlockCalls::sequenceNumber) + } + sequenceNumber + }, + { + fn blobBaseFeeScalar( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L1BlockCalls::blobBaseFeeScalar) + } + blobBaseFeeScalar + }, + { + fn number(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(L1BlockCalls::number) + } + number + }, + { + fn l1FeeOverhead( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L1BlockCalls::l1FeeOverhead) + } + l1FeeOverhead + }, + { + fn l1FeeScalar( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L1BlockCalls::l1FeeScalar) + } + l1FeeScalar + }, + { + fn timestamp(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(L1BlockCalls::timestamp) + } + timestamp + }, + { + fn baseFeeScalar( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L1BlockCalls::baseFeeScalar) + } + baseFeeScalar + }, + { + fn gasPayingTokenName( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L1BlockCalls::gasPayingTokenName) + } + gasPayingTokenName + }, + { + fn DEPOSITOR_ACCOUNT( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L1BlockCalls::DEPOSITOR_ACCOUNT) + } + DEPOSITOR_ACCOUNT + }, + { + fn batcherHash( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L1BlockCalls::batcherHash) + } + batcherHash + }, + { + fn blobBaseFee( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L1BlockCalls::blobBaseFee) + } + blobBaseFee + }, + { + fn daFootprintGasScalar( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L1BlockCalls::daFootprintGasScalar) + } + daFootprintGasScalar + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn setL1BlockValues( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1BlockCalls::setL1BlockValues) + } + setL1BlockValues + }, + { + fn setL1BlockValuesIsthmus( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1BlockCalls::setL1BlockValuesIsthmus) + } + setL1BlockValuesIsthmus + }, + { + fn hash(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1BlockCalls::hash) + } + hash + }, + { + fn operatorFeeConstant( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1BlockCalls::operatorFeeConstant) + } + operatorFeeConstant + }, + { + fn isCustomGasToken( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1BlockCalls::isCustomGasToken) + } + isCustomGasToken + }, + { + fn setL1BlockValuesJovian( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1BlockCalls::setL1BlockValuesJovian) + } + setL1BlockValuesJovian + }, + { + fn gasPayingToken( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1BlockCalls::gasPayingToken) + } + gasPayingToken + }, + { + fn setL1BlockValuesEcotone( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1BlockCalls::setL1BlockValuesEcotone) + } + setL1BlockValuesEcotone + }, + { + fn operatorFeeScalar( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1BlockCalls::operatorFeeScalar) + } + operatorFeeScalar + }, + { + fn version(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1BlockCalls::version) + } + version + }, + { + fn gasPayingTokenSymbol( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1BlockCalls::gasPayingTokenSymbol) + } + gasPayingTokenSymbol + }, + { + fn basefee(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1BlockCalls::basefee) + } + basefee + }, + { + fn sequenceNumber( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1BlockCalls::sequenceNumber) + } + sequenceNumber + }, + { + fn blobBaseFeeScalar( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1BlockCalls::blobBaseFeeScalar) + } + blobBaseFeeScalar + }, + { + fn number(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1BlockCalls::number) + } + number + }, + { + fn l1FeeOverhead( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1BlockCalls::l1FeeOverhead) + } + l1FeeOverhead + }, + { + fn l1FeeScalar( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1BlockCalls::l1FeeScalar) + } + l1FeeScalar + }, + { + fn timestamp(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1BlockCalls::timestamp) + } + timestamp + }, + { + fn baseFeeScalar( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1BlockCalls::baseFeeScalar) + } + baseFeeScalar + }, + { + fn gasPayingTokenName( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1BlockCalls::gasPayingTokenName) + } + gasPayingTokenName + }, + { + fn DEPOSITOR_ACCOUNT( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1BlockCalls::DEPOSITOR_ACCOUNT) + } + DEPOSITOR_ACCOUNT + }, + { + fn batcherHash( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1BlockCalls::batcherHash) + } + batcherHash + }, + { + fn blobBaseFee( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1BlockCalls::blobBaseFee) + } + blobBaseFee + }, + { + fn daFootprintGasScalar( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1BlockCalls::daFootprintGasScalar) + } + daFootprintGasScalar + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::DEPOSITOR_ACCOUNT(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::baseFeeScalar(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::basefee(inner) => { + ::abi_encoded_size(inner) + } + Self::batcherHash(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::blobBaseFee(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::blobBaseFeeScalar(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::daFootprintGasScalar(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::gasPayingToken(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::gasPayingTokenName(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::gasPayingTokenSymbol(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::hash(inner) => { + ::abi_encoded_size(inner) + } + Self::isCustomGasToken(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::l1FeeOverhead(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::l1FeeScalar(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::number(inner) => { + ::abi_encoded_size(inner) + } + Self::operatorFeeConstant(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::operatorFeeScalar(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::sequenceNumber(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::setL1BlockValues(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::setL1BlockValuesEcotone(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::setL1BlockValuesIsthmus(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::setL1BlockValuesJovian(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::timestamp(inner) => { + ::abi_encoded_size(inner) + } + Self::version(inner) => { + ::abi_encoded_size(inner) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::DEPOSITOR_ACCOUNT(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::baseFeeScalar(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::basefee(inner) => { + ::abi_encode_raw(inner, out) + } + Self::batcherHash(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::blobBaseFee(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::blobBaseFeeScalar(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::daFootprintGasScalar(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::gasPayingToken(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::gasPayingTokenName(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::gasPayingTokenSymbol(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::hash(inner) => { + ::abi_encode_raw(inner, out) + } + Self::isCustomGasToken(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::l1FeeOverhead(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::l1FeeScalar(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::number(inner) => { + ::abi_encode_raw(inner, out) + } + Self::operatorFeeConstant(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::operatorFeeScalar(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::sequenceNumber(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::setL1BlockValues(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::setL1BlockValuesEcotone(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::setL1BlockValuesIsthmus(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::setL1BlockValuesJovian(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::timestamp(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::version(inner) => { + ::abi_encode_raw(inner, out) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`L1Block`](self) contract instance. + +See the [wrapper's documentation](`L1BlockInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> L1BlockInstance { + L1BlockInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + L1BlockInstance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + L1BlockInstance::::deploy_builder(__provider) + } + /**A [`L1Block`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`L1Block`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct L1BlockInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for L1BlockInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("L1BlockInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > L1BlockInstance { + /**Creates a new wrapper around an on-chain [`L1Block`](self) contract instance. + +See the [wrapper's documentation](`L1BlockInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl L1BlockInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> L1BlockInstance { + L1BlockInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > L1BlockInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`DEPOSITOR_ACCOUNT`] function. + pub fn DEPOSITOR_ACCOUNT( + &self, + ) -> alloy_contract::SolCallBuilder<&P, DEPOSITOR_ACCOUNTCall, N> { + self.call_builder(&DEPOSITOR_ACCOUNTCall) + } + ///Creates a new call builder for the [`baseFeeScalar`] function. + pub fn baseFeeScalar( + &self, + ) -> alloy_contract::SolCallBuilder<&P, baseFeeScalarCall, N> { + self.call_builder(&baseFeeScalarCall) + } + ///Creates a new call builder for the [`basefee`] function. + pub fn basefee(&self) -> alloy_contract::SolCallBuilder<&P, basefeeCall, N> { + self.call_builder(&basefeeCall) + } + ///Creates a new call builder for the [`batcherHash`] function. + pub fn batcherHash( + &self, + ) -> alloy_contract::SolCallBuilder<&P, batcherHashCall, N> { + self.call_builder(&batcherHashCall) + } + ///Creates a new call builder for the [`blobBaseFee`] function. + pub fn blobBaseFee( + &self, + ) -> alloy_contract::SolCallBuilder<&P, blobBaseFeeCall, N> { + self.call_builder(&blobBaseFeeCall) + } + ///Creates a new call builder for the [`blobBaseFeeScalar`] function. + pub fn blobBaseFeeScalar( + &self, + ) -> alloy_contract::SolCallBuilder<&P, blobBaseFeeScalarCall, N> { + self.call_builder(&blobBaseFeeScalarCall) + } + ///Creates a new call builder for the [`daFootprintGasScalar`] function. + pub fn daFootprintGasScalar( + &self, + ) -> alloy_contract::SolCallBuilder<&P, daFootprintGasScalarCall, N> { + self.call_builder(&daFootprintGasScalarCall) + } + ///Creates a new call builder for the [`gasPayingToken`] function. + pub fn gasPayingToken( + &self, + ) -> alloy_contract::SolCallBuilder<&P, gasPayingTokenCall, N> { + self.call_builder(&gasPayingTokenCall) + } + ///Creates a new call builder for the [`gasPayingTokenName`] function. + pub fn gasPayingTokenName( + &self, + ) -> alloy_contract::SolCallBuilder<&P, gasPayingTokenNameCall, N> { + self.call_builder(&gasPayingTokenNameCall) + } + ///Creates a new call builder for the [`gasPayingTokenSymbol`] function. + pub fn gasPayingTokenSymbol( + &self, + ) -> alloy_contract::SolCallBuilder<&P, gasPayingTokenSymbolCall, N> { + self.call_builder(&gasPayingTokenSymbolCall) + } + ///Creates a new call builder for the [`hash`] function. + pub fn hash(&self) -> alloy_contract::SolCallBuilder<&P, hashCall, N> { + self.call_builder(&hashCall) + } + ///Creates a new call builder for the [`isCustomGasToken`] function. + pub fn isCustomGasToken( + &self, + ) -> alloy_contract::SolCallBuilder<&P, isCustomGasTokenCall, N> { + self.call_builder(&isCustomGasTokenCall) + } + ///Creates a new call builder for the [`l1FeeOverhead`] function. + pub fn l1FeeOverhead( + &self, + ) -> alloy_contract::SolCallBuilder<&P, l1FeeOverheadCall, N> { + self.call_builder(&l1FeeOverheadCall) + } + ///Creates a new call builder for the [`l1FeeScalar`] function. + pub fn l1FeeScalar( + &self, + ) -> alloy_contract::SolCallBuilder<&P, l1FeeScalarCall, N> { + self.call_builder(&l1FeeScalarCall) + } + ///Creates a new call builder for the [`number`] function. + pub fn number(&self) -> alloy_contract::SolCallBuilder<&P, numberCall, N> { + self.call_builder(&numberCall) + } + ///Creates a new call builder for the [`operatorFeeConstant`] function. + pub fn operatorFeeConstant( + &self, + ) -> alloy_contract::SolCallBuilder<&P, operatorFeeConstantCall, N> { + self.call_builder(&operatorFeeConstantCall) + } + ///Creates a new call builder for the [`operatorFeeScalar`] function. + pub fn operatorFeeScalar( + &self, + ) -> alloy_contract::SolCallBuilder<&P, operatorFeeScalarCall, N> { + self.call_builder(&operatorFeeScalarCall) + } + ///Creates a new call builder for the [`sequenceNumber`] function. + pub fn sequenceNumber( + &self, + ) -> alloy_contract::SolCallBuilder<&P, sequenceNumberCall, N> { + self.call_builder(&sequenceNumberCall) + } + ///Creates a new call builder for the [`setL1BlockValues`] function. + pub fn setL1BlockValues( + &self, + _number: u64, + _timestamp: u64, + _basefee: alloy::sol_types::private::primitives::aliases::U256, + _hash: alloy::sol_types::private::FixedBytes<32>, + _sequenceNumber: u64, + _batcherHash: alloy::sol_types::private::FixedBytes<32>, + _l1FeeOverhead: alloy::sol_types::private::primitives::aliases::U256, + _l1FeeScalar: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, setL1BlockValuesCall, N> { + self.call_builder( + &setL1BlockValuesCall { + _number, + _timestamp, + _basefee, + _hash, + _sequenceNumber, + _batcherHash, + _l1FeeOverhead, + _l1FeeScalar, + }, + ) + } + ///Creates a new call builder for the [`setL1BlockValuesEcotone`] function. + pub fn setL1BlockValuesEcotone( + &self, + ) -> alloy_contract::SolCallBuilder<&P, setL1BlockValuesEcotoneCall, N> { + self.call_builder(&setL1BlockValuesEcotoneCall) + } + ///Creates a new call builder for the [`setL1BlockValuesIsthmus`] function. + pub fn setL1BlockValuesIsthmus( + &self, + ) -> alloy_contract::SolCallBuilder<&P, setL1BlockValuesIsthmusCall, N> { + self.call_builder(&setL1BlockValuesIsthmusCall) + } + ///Creates a new call builder for the [`setL1BlockValuesJovian`] function. + pub fn setL1BlockValuesJovian( + &self, + ) -> alloy_contract::SolCallBuilder<&P, setL1BlockValuesJovianCall, N> { + self.call_builder(&setL1BlockValuesJovianCall) + } + ///Creates a new call builder for the [`timestamp`] function. + pub fn timestamp(&self) -> alloy_contract::SolCallBuilder<&P, timestampCall, N> { + self.call_builder(×tampCall) + } + ///Creates a new call builder for the [`version`] function. + pub fn version(&self) -> alloy_contract::SolCallBuilder<&P, versionCall, N> { + self.call_builder(&versionCall) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > L1BlockInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + } +} diff --git a/bindings/rust/src/l1_block_cgt.rs b/bindings/rust/src/l1_block_cgt.rs new file mode 100644 index 000000000..c6ad2930e --- /dev/null +++ b/bindings/rust/src/l1_block_cgt.rs @@ -0,0 +1,5576 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface L1BlockCGT { + function DEPOSITOR_ACCOUNT() external pure returns (address addr_); + function baseFeeScalar() external view returns (uint32); + function basefee() external view returns (uint256); + function batcherHash() external view returns (bytes32); + function blobBaseFee() external view returns (uint256); + function blobBaseFeeScalar() external view returns (uint32); + function daFootprintGasScalar() external view returns (uint16); + function gasPayingToken() external pure returns (address, uint8); + function gasPayingTokenName() external view returns (string memory name_); + function gasPayingTokenSymbol() external view returns (string memory symbol_); + function hash() external view returns (bytes32); + function isCustomGasToken() external view returns (bool isCustom_); + function l1FeeOverhead() external view returns (uint256); + function l1FeeScalar() external view returns (uint256); + function number() external view returns (uint64); + function operatorFeeConstant() external view returns (uint64); + function operatorFeeScalar() external view returns (uint32); + function sequenceNumber() external view returns (uint64); + function setCustomGasToken() external; + function setL1BlockValues(uint64 _number, uint64 _timestamp, uint256 _basefee, bytes32 _hash, uint64 _sequenceNumber, bytes32 _batcherHash, uint256 _l1FeeOverhead, uint256 _l1FeeScalar) external; + function setL1BlockValuesEcotone() external; + function setL1BlockValuesIsthmus() external; + function setL1BlockValuesJovian() external; + function timestamp() external view returns (uint64); + function version() external pure returns (string memory); +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "function", + "name": "DEPOSITOR_ACCOUNT", + "inputs": [], + "outputs": [ + { + "name": "addr_", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "baseFeeScalar", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint32", + "internalType": "uint32" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "basefee", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "batcherHash", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "blobBaseFee", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "blobBaseFeeScalar", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint32", + "internalType": "uint32" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "daFootprintGasScalar", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint16", + "internalType": "uint16" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "gasPayingToken", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + }, + { + "name": "", + "type": "uint8", + "internalType": "uint8" + } + ], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "gasPayingTokenName", + "inputs": [], + "outputs": [ + { + "name": "name_", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "gasPayingTokenSymbol", + "inputs": [], + "outputs": [ + { + "name": "symbol_", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "hash", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "isCustomGasToken", + "inputs": [], + "outputs": [ + { + "name": "isCustom_", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "l1FeeOverhead", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "l1FeeScalar", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "number", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint64", + "internalType": "uint64" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "operatorFeeConstant", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint64", + "internalType": "uint64" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "operatorFeeScalar", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint32", + "internalType": "uint32" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "sequenceNumber", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint64", + "internalType": "uint64" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "setCustomGasToken", + "inputs": [], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "setL1BlockValues", + "inputs": [ + { + "name": "_number", + "type": "uint64", + "internalType": "uint64" + }, + { + "name": "_timestamp", + "type": "uint64", + "internalType": "uint64" + }, + { + "name": "_basefee", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_hash", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "_sequenceNumber", + "type": "uint64", + "internalType": "uint64" + }, + { + "name": "_batcherHash", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "_l1FeeOverhead", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_l1FeeScalar", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "setL1BlockValuesEcotone", + "inputs": [], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "setL1BlockValuesIsthmus", + "inputs": [], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "setL1BlockValuesJovian", + "inputs": [], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "timestamp", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint64", + "internalType": "uint64" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "version", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "pure" + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod L1BlockCGT { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x608060405234801561001057600080fd5b50610c4e806100206000396000f3fe608060405234801561001057600080fd5b50600436106101a35760003560e01c806364ca23ef116100ee578063c598591811610097578063e591b28211610071578063e591b28214610383578063e81b2c6d146103a5578063f8206140146103ae578063fe3d5710146103b757600080fd5b8063c598591814610353578063c6d5301614610373578063d84447151461037b57600080fd5b80638b239f73116100c85780638b239f73146103215780639e8c49661461032a578063b80777ea1461033357600080fd5b806364ca23ef146102dd57806368d5dca6146102f15780638381f58a1461030d57600080fd5b80634397dfef1161015057806354fd4d501161012a57806354fd4d50146102b7578063550fcdc9146102cc5780635cf24969146102d457600080fd5b80634397dfef14610248578063440a5e201461027e5780634d5d9a2a1461028657600080fd5b806316d3bc7f1161018157806316d3bc7f146101e1578063213268491461020e5780633db6be2b1461024057600080fd5b8063015d8eb9146101a8578063098999be146101bd57806309bd5a60146101c5575b600080fd5b6101bb6101b6366004610a13565b6103e8565b005b6101bb610528565b6101ce60025481565b6040519081526020015b60405180910390f35b6008546101f59067ffffffffffffffff1681565b60405167ffffffffffffffff90911681526020016101d8565b7fd2ff82c9b477ff6a09f530b1c627ffb4b0b81e2ae2ba427f824162e8dad020aa5460405190151581526020016101d8565b6101bb61053b565b610250610565565b6040805173ffffffffffffffffffffffffffffffffffffffff909316835260ff9091166020830152016101d8565b6101bb6105cc565b6008546102a29068010000000000000000900463ffffffff1681565b60405163ffffffff90911681526020016101d8565b6102bf610623565b6040516101d89190610ab5565b6102bf610683565b6101ce60015481565b6003546101f59067ffffffffffffffff1681565b6003546102a29068010000000000000000900463ffffffff1681565b6000546101f59067ffffffffffffffff1681565b6101ce60055481565b6101ce60065481565b6000546101f59068010000000000000000900467ffffffffffffffff1681565b6003546102a2906c01000000000000000000000000900463ffffffff1681565b6101bb610793565b6102bf610931565b60405173deaddeaddeaddeaddeaddeaddeaddeaddead000181526020016101d8565b6101ce60045481565b6101ce60075481565b6008546103d5906c01000000000000000000000000900461ffff1681565b60405161ffff90911681526020016101d8565b3373deaddeaddeaddeaddeaddeaddeaddeaddead000114610490576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603b60248201527f4c31426c6f636b3a206f6e6c7920746865206465706f7369746f72206163636f60448201527f756e742063616e20736574204c3120626c6f636b2076616c756573000000000060648201526084015b60405180910390fd5b6000805467ffffffffffffffff98891668010000000000000000027fffffffffffffffffffffffffffffffff00000000000000000000000000000000909116998916999099179890981790975560019490945560029290925560038054919094167fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000009190911617909255600491909155600555600655565b6105306105cc565b60a43560a01c600855565b6105436105cc565b6dffff00000000000000000000000060b03560901c1660a43560a01c17600855565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4c31426c6f636b4347543a20646570726563617465640000000000000000000060448201526000908190606401610487565b73deaddeaddeaddeaddeaddeaddeaddeaddead00013381146105f657633cc50b456000526004601cfd5b60043560801c60035560143560801c60005560243560015560443560075560643560025560843560045550565b606061065f60408051808201909152600581527f312e382e30000000000000000000000000000000000000000000000000000000602082015290565b60405160200161066f9190610b06565b604051602081830303815290604052905090565b60606106ad7fd2ff82c9b477ff6a09f530b1c627ffb4b0b81e2ae2ba427f824162e8dad020aa5490565b6106e9575060408051808201909152600381527f4554480000000000000000000000000000000000000000000000000000000000602082015290565b73420000000000000000000000000000000000002a73ffffffffffffffffffffffffffffffffffffffff1663550fcdc96040518163ffffffff1660e01b8152600401600060405180830381865afa158015610748573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405261078e9190810190610b76565b905090565b3373deaddeaddeaddeaddeaddeaddeaddeaddead00011461085c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604160248201527f4c31426c6f636b3a206f6e6c7920746865206465706f7369746f72206163636f60448201527f756e742063616e20736574206973437573746f6d476173546f6b656e20666c6160648201527f6700000000000000000000000000000000000000000000000000000000000000608482015260a401610487565b7fd2ff82c9b477ff6a09f530b1c627ffb4b0b81e2ae2ba427f824162e8dad020aa541561090b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4c31426c6f636b3a20437573746f6d476173546f6b656e20616c72656164792060448201527f61637469766500000000000000000000000000000000000000000000000000006064820152608401610487565b60017fd2ff82c9b477ff6a09f530b1c627ffb4b0b81e2ae2ba427f824162e8dad020aa55565b606061095b7fd2ff82c9b477ff6a09f530b1c627ffb4b0b81e2ae2ba427f824162e8dad020aa5490565b610997575060408051808201909152600581527f4574686572000000000000000000000000000000000000000000000000000000602082015290565b73420000000000000000000000000000000000002a73ffffffffffffffffffffffffffffffffffffffff1663d84447156040518163ffffffff1660e01b8152600401600060405180830381865afa158015610748573d6000803e3d6000fd5b803567ffffffffffffffff81168114610a0e57600080fd5b919050565b600080600080600080600080610100898b031215610a3057600080fd5b610a39896109f6565b9750610a4760208a016109f6565b96506040890135955060608901359450610a6360808a016109f6565b979a969950949793969560a0850135955060c08501359460e001359350915050565b60005b83811015610aa0578181015183820152602001610a88565b83811115610aaf576000848401525b50505050565b6020815260008251806020840152610ad4816040850160208701610a85565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b60008251610b18818460208701610a85565b7f2b637573746f6d2d6761732d746f6b656e000000000000000000000000000000920191825250601101919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600060208284031215610b8857600080fd5b815167ffffffffffffffff80821115610ba057600080fd5b818401915084601f830112610bb457600080fd5b815181811115610bc657610bc6610b47565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908382118183101715610c0c57610c0c610b47565b81604052828152876020848701011115610c2557600080fd5b610c36836020830160208801610a85565b97965050505050505056fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[Pa\x0CN\x80a\0 `\09`\0\xF3\xFE`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`\x046\x10a\x01\xA3W`\x005`\xE0\x1C\x80cd\xCA#\xEF\x11a\0\xEEW\x80c\xC5\x98Y\x18\x11a\0\x97W\x80c\xE5\x91\xB2\x82\x11a\0qW\x80c\xE5\x91\xB2\x82\x14a\x03\x83W\x80c\xE8\x1B,m\x14a\x03\xA5W\x80c\xF8 a@\x14a\x03\xAEW\x80c\xFE=W\x10\x14a\x03\xB7W`\0\x80\xFD[\x80c\xC5\x98Y\x18\x14a\x03SW\x80c\xC6\xD50\x16\x14a\x03sW\x80c\xD8DG\x15\x14a\x03{W`\0\x80\xFD[\x80c\x8B#\x9Fs\x11a\0\xC8W\x80c\x8B#\x9Fs\x14a\x03!W\x80c\x9E\x8CIf\x14a\x03*W\x80c\xB8\x07w\xEA\x14a\x033W`\0\x80\xFD[\x80cd\xCA#\xEF\x14a\x02\xDDW\x80ch\xD5\xDC\xA6\x14a\x02\xF1W\x80c\x83\x81\xF5\x8A\x14a\x03\rW`\0\x80\xFD[\x80cC\x97\xDF\xEF\x11a\x01PW\x80cT\xFDMP\x11a\x01*W\x80cT\xFDMP\x14a\x02\xB7W\x80cU\x0F\xCD\xC9\x14a\x02\xCCW\x80c\\\xF2Ii\x14a\x02\xD4W`\0\x80\xFD[\x80cC\x97\xDF\xEF\x14a\x02HW\x80cD\n^ \x14a\x02~W\x80cM]\x9A*\x14a\x02\x86W`\0\x80\xFD[\x80c\x16\xD3\xBC\x7F\x11a\x01\x81W\x80c\x16\xD3\xBC\x7F\x14a\x01\xE1W\x80c!2hI\x14a\x02\x0EW\x80c=\xB6\xBE+\x14a\x02@W`\0\x80\xFD[\x80c\x01]\x8E\xB9\x14a\x01\xA8W\x80c\t\x89\x99\xBE\x14a\x01\xBDW\x80c\t\xBDZ`\x14a\x01\xC5W[`\0\x80\xFD[a\x01\xBBa\x01\xB66`\x04a\n\x13V[a\x03\xE8V[\0[a\x01\xBBa\x05(V[a\x01\xCE`\x02T\x81V[`@Q\x90\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[`\x08Ta\x01\xF5\x90g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[`@Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01a\x01\xD8V[\x7F\xD2\xFF\x82\xC9\xB4w\xFFj\t\xF50\xB1\xC6'\xFF\xB4\xB0\xB8\x1E*\xE2\xBAB\x7F\x82Ab\xE8\xDA\xD0 \xAAT`@Q\x90\x15\x15\x81R` \x01a\x01\xD8V[a\x01\xBBa\x05;V[a\x02Pa\x05eV[`@\x80Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x93\x16\x83R`\xFF\x90\x91\x16` \x83\x01R\x01a\x01\xD8V[a\x01\xBBa\x05\xCCV[`\x08Ta\x02\xA2\x90h\x01\0\0\0\0\0\0\0\0\x90\x04c\xFF\xFF\xFF\xFF\x16\x81V[`@Qc\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01a\x01\xD8V[a\x02\xBFa\x06#V[`@Qa\x01\xD8\x91\x90a\n\xB5V[a\x02\xBFa\x06\x83V[a\x01\xCE`\x01T\x81V[`\x03Ta\x01\xF5\x90g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[`\x03Ta\x02\xA2\x90h\x01\0\0\0\0\0\0\0\0\x90\x04c\xFF\xFF\xFF\xFF\x16\x81V[`\0Ta\x01\xF5\x90g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[a\x01\xCE`\x05T\x81V[a\x01\xCE`\x06T\x81V[`\0Ta\x01\xF5\x90h\x01\0\0\0\0\0\0\0\0\x90\x04g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[`\x03Ta\x02\xA2\x90l\x01\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04c\xFF\xFF\xFF\xFF\x16\x81V[a\x01\xBBa\x07\x93V[a\x02\xBFa\t1V[`@Qs\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\0\x01\x81R` \x01a\x01\xD8V[a\x01\xCE`\x04T\x81V[a\x01\xCE`\x07T\x81V[`\x08Ta\x03\xD5\x90l\x01\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04a\xFF\xFF\x16\x81V[`@Qa\xFF\xFF\x90\x91\x16\x81R` \x01a\x01\xD8V[3s\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\0\x01\x14a\x04\x90W`@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\x82\x01R`;`$\x82\x01R\x7FL1Block: only the depositor acco`D\x82\x01R\x7Funt can set L1 block values\0\0\0\0\0`d\x82\x01R`\x84\x01[`@Q\x80\x91\x03\x90\xFD[`\0\x80Tg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x98\x89\x16h\x01\0\0\0\0\0\0\0\0\x02\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x91\x16\x99\x89\x16\x99\x90\x99\x17\x98\x90\x98\x17\x90\x97U`\x01\x94\x90\x94U`\x02\x92\x90\x92U`\x03\x80T\x91\x90\x94\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\x91\x90\x91\x16\x17\x90\x92U`\x04\x91\x90\x91U`\x05U`\x06UV[a\x050a\x05\xCCV[`\xA45`\xA0\x1C`\x08UV[a\x05Ca\x05\xCCV[m\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0`\xB05`\x90\x1C\x16`\xA45`\xA0\x1C\x17`\x08UV[`@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\x82\x01R`\x16`$\x82\x01R\x7FL1BlockCGT: deprecated\0\0\0\0\0\0\0\0\0\0`D\x82\x01R`\0\x90\x81\x90`d\x01a\x04\x87V[s\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\0\x013\x81\x14a\x05\xF6Wc<\xC5\x0BE`\0R`\x04`\x1C\xFD[`\x045`\x80\x1C`\x03U`\x145`\x80\x1C`\0U`$5`\x01U`D5`\x07U`d5`\x02U`\x845`\x04UPV[``a\x06_`@\x80Q\x80\x82\x01\x90\x91R`\x05\x81R\x7F1.8.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` \x82\x01R\x90V[`@Q` \x01a\x06o\x91\x90a\x0B\x06V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x90P\x90V[``a\x06\xAD\x7F\xD2\xFF\x82\xC9\xB4w\xFFj\t\xF50\xB1\xC6'\xFF\xB4\xB0\xB8\x1E*\xE2\xBAB\x7F\x82Ab\xE8\xDA\xD0 \xAAT\x90V[a\x06\xE9WP`@\x80Q\x80\x82\x01\x90\x91R`\x03\x81R\x7FETH\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0` \x82\x01R\x90V[sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0*s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16cU\x0F\xCD\xC9`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01`\0`@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x07HW=`\0\x80>=`\0\xFD[PPPP`@Q=`\0\x82>`\x1F=\x90\x81\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x82\x01`@Ra\x07\x8E\x91\x90\x81\x01\x90a\x0BvV[\x90P\x90V[3s\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\0\x01\x14a\x08\\W`@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\x82\x01R`A`$\x82\x01R\x7FL1Block: only the depositor acco`D\x82\x01R\x7Funt can set isCustomGasToken fla`d\x82\x01R\x7Fg\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x84\x82\x01R`\xA4\x01a\x04\x87V[\x7F\xD2\xFF\x82\xC9\xB4w\xFFj\t\xF50\xB1\xC6'\xFF\xB4\xB0\xB8\x1E*\xE2\xBAB\x7F\x82Ab\xE8\xDA\xD0 \xAAT\x15a\t\x0BW`@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\x82\x01R`&`$\x82\x01R\x7FL1Block: CustomGasToken already `D\x82\x01R\x7Factive\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`d\x82\x01R`\x84\x01a\x04\x87V[`\x01\x7F\xD2\xFF\x82\xC9\xB4w\xFFj\t\xF50\xB1\xC6'\xFF\xB4\xB0\xB8\x1E*\xE2\xBAB\x7F\x82Ab\xE8\xDA\xD0 \xAAUV[``a\t[\x7F\xD2\xFF\x82\xC9\xB4w\xFFj\t\xF50\xB1\xC6'\xFF\xB4\xB0\xB8\x1E*\xE2\xBAB\x7F\x82Ab\xE8\xDA\xD0 \xAAT\x90V[a\t\x97WP`@\x80Q\x80\x82\x01\x90\x91R`\x05\x81R\x7FEther\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` \x82\x01R\x90V[sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0*s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xD8DG\x15`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01`\0`@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x07HW=`\0\x80>=`\0\xFD[\x805g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\n\x0EW`\0\x80\xFD[\x91\x90PV[`\0\x80`\0\x80`\0\x80`\0\x80a\x01\0\x89\x8B\x03\x12\x15a\n0W`\0\x80\xFD[a\n9\x89a\t\xF6V[\x97Pa\nG` \x8A\x01a\t\xF6V[\x96P`@\x89\x015\x95P``\x89\x015\x94Pa\nc`\x80\x8A\x01a\t\xF6V[\x97\x9A\x96\x99P\x94\x97\x93\x96\x95`\xA0\x85\x015\x95P`\xC0\x85\x015\x94`\xE0\x015\x93P\x91PPV[`\0[\x83\x81\x10\x15a\n\xA0W\x81\x81\x01Q\x83\x82\x01R` \x01a\n\x88V[\x83\x81\x11\x15a\n\xAFW`\0\x84\x84\x01R[PPPPV[` \x81R`\0\x82Q\x80` \x84\x01Ra\n\xD4\x81`@\x85\x01` \x87\x01a\n\x85V[`\x1F\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x91\x90\x91\x01`@\x01\x92\x91PPV[`\0\x82Qa\x0B\x18\x81\x84` \x87\x01a\n\x85V[\x7F+custom-gas-token\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x92\x01\x91\x82RP`\x11\x01\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[`\0` \x82\x84\x03\x12\x15a\x0B\x88W`\0\x80\xFD[\x81Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x0B\xA0W`\0\x80\xFD[\x81\x84\x01\x91P\x84`\x1F\x83\x01\x12a\x0B\xB4W`\0\x80\xFD[\x81Q\x81\x81\x11\x15a\x0B\xC6Wa\x0B\xC6a\x0BGV[`@Q`\x1F\x82\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x90\x81\x16`?\x01\x16\x81\x01\x90\x83\x82\x11\x81\x83\x10\x17\x15a\x0C\x0CWa\x0C\x0Ca\x0BGV[\x81`@R\x82\x81R\x87` \x84\x87\x01\x01\x11\x15a\x0C%W`\0\x80\xFD[a\x0C6\x83` \x83\x01` \x88\x01a\n\x85V[\x97\x96PPPPPPPV\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x608060405234801561001057600080fd5b50600436106101a35760003560e01c806364ca23ef116100ee578063c598591811610097578063e591b28211610071578063e591b28214610383578063e81b2c6d146103a5578063f8206140146103ae578063fe3d5710146103b757600080fd5b8063c598591814610353578063c6d5301614610373578063d84447151461037b57600080fd5b80638b239f73116100c85780638b239f73146103215780639e8c49661461032a578063b80777ea1461033357600080fd5b806364ca23ef146102dd57806368d5dca6146102f15780638381f58a1461030d57600080fd5b80634397dfef1161015057806354fd4d501161012a57806354fd4d50146102b7578063550fcdc9146102cc5780635cf24969146102d457600080fd5b80634397dfef14610248578063440a5e201461027e5780634d5d9a2a1461028657600080fd5b806316d3bc7f1161018157806316d3bc7f146101e1578063213268491461020e5780633db6be2b1461024057600080fd5b8063015d8eb9146101a8578063098999be146101bd57806309bd5a60146101c5575b600080fd5b6101bb6101b6366004610a13565b6103e8565b005b6101bb610528565b6101ce60025481565b6040519081526020015b60405180910390f35b6008546101f59067ffffffffffffffff1681565b60405167ffffffffffffffff90911681526020016101d8565b7fd2ff82c9b477ff6a09f530b1c627ffb4b0b81e2ae2ba427f824162e8dad020aa5460405190151581526020016101d8565b6101bb61053b565b610250610565565b6040805173ffffffffffffffffffffffffffffffffffffffff909316835260ff9091166020830152016101d8565b6101bb6105cc565b6008546102a29068010000000000000000900463ffffffff1681565b60405163ffffffff90911681526020016101d8565b6102bf610623565b6040516101d89190610ab5565b6102bf610683565b6101ce60015481565b6003546101f59067ffffffffffffffff1681565b6003546102a29068010000000000000000900463ffffffff1681565b6000546101f59067ffffffffffffffff1681565b6101ce60055481565b6101ce60065481565b6000546101f59068010000000000000000900467ffffffffffffffff1681565b6003546102a2906c01000000000000000000000000900463ffffffff1681565b6101bb610793565b6102bf610931565b60405173deaddeaddeaddeaddeaddeaddeaddeaddead000181526020016101d8565b6101ce60045481565b6101ce60075481565b6008546103d5906c01000000000000000000000000900461ffff1681565b60405161ffff90911681526020016101d8565b3373deaddeaddeaddeaddeaddeaddeaddeaddead000114610490576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603b60248201527f4c31426c6f636b3a206f6e6c7920746865206465706f7369746f72206163636f60448201527f756e742063616e20736574204c3120626c6f636b2076616c756573000000000060648201526084015b60405180910390fd5b6000805467ffffffffffffffff98891668010000000000000000027fffffffffffffffffffffffffffffffff00000000000000000000000000000000909116998916999099179890981790975560019490945560029290925560038054919094167fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000009190911617909255600491909155600555600655565b6105306105cc565b60a43560a01c600855565b6105436105cc565b6dffff00000000000000000000000060b03560901c1660a43560a01c17600855565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4c31426c6f636b4347543a20646570726563617465640000000000000000000060448201526000908190606401610487565b73deaddeaddeaddeaddeaddeaddeaddeaddead00013381146105f657633cc50b456000526004601cfd5b60043560801c60035560143560801c60005560243560015560443560075560643560025560843560045550565b606061065f60408051808201909152600581527f312e382e30000000000000000000000000000000000000000000000000000000602082015290565b60405160200161066f9190610b06565b604051602081830303815290604052905090565b60606106ad7fd2ff82c9b477ff6a09f530b1c627ffb4b0b81e2ae2ba427f824162e8dad020aa5490565b6106e9575060408051808201909152600381527f4554480000000000000000000000000000000000000000000000000000000000602082015290565b73420000000000000000000000000000000000002a73ffffffffffffffffffffffffffffffffffffffff1663550fcdc96040518163ffffffff1660e01b8152600401600060405180830381865afa158015610748573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405261078e9190810190610b76565b905090565b3373deaddeaddeaddeaddeaddeaddeaddeaddead00011461085c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604160248201527f4c31426c6f636b3a206f6e6c7920746865206465706f7369746f72206163636f60448201527f756e742063616e20736574206973437573746f6d476173546f6b656e20666c6160648201527f6700000000000000000000000000000000000000000000000000000000000000608482015260a401610487565b7fd2ff82c9b477ff6a09f530b1c627ffb4b0b81e2ae2ba427f824162e8dad020aa541561090b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4c31426c6f636b3a20437573746f6d476173546f6b656e20616c72656164792060448201527f61637469766500000000000000000000000000000000000000000000000000006064820152608401610487565b60017fd2ff82c9b477ff6a09f530b1c627ffb4b0b81e2ae2ba427f824162e8dad020aa55565b606061095b7fd2ff82c9b477ff6a09f530b1c627ffb4b0b81e2ae2ba427f824162e8dad020aa5490565b610997575060408051808201909152600581527f4574686572000000000000000000000000000000000000000000000000000000602082015290565b73420000000000000000000000000000000000002a73ffffffffffffffffffffffffffffffffffffffff1663d84447156040518163ffffffff1660e01b8152600401600060405180830381865afa158015610748573d6000803e3d6000fd5b803567ffffffffffffffff81168114610a0e57600080fd5b919050565b600080600080600080600080610100898b031215610a3057600080fd5b610a39896109f6565b9750610a4760208a016109f6565b96506040890135955060608901359450610a6360808a016109f6565b979a969950949793969560a0850135955060c08501359460e001359350915050565b60005b83811015610aa0578181015183820152602001610a88565b83811115610aaf576000848401525b50505050565b6020815260008251806020840152610ad4816040850160208701610a85565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b60008251610b18818460208701610a85565b7f2b637573746f6d2d6761732d746f6b656e000000000000000000000000000000920191825250601101919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600060208284031215610b8857600080fd5b815167ffffffffffffffff80821115610ba057600080fd5b818401915084601f830112610bb457600080fd5b815181811115610bc657610bc6610b47565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908382118183101715610c0c57610c0c610b47565b81604052828152876020848701011115610c2557600080fd5b610c36836020830160208801610a85565b97965050505050505056fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`\x046\x10a\x01\xA3W`\x005`\xE0\x1C\x80cd\xCA#\xEF\x11a\0\xEEW\x80c\xC5\x98Y\x18\x11a\0\x97W\x80c\xE5\x91\xB2\x82\x11a\0qW\x80c\xE5\x91\xB2\x82\x14a\x03\x83W\x80c\xE8\x1B,m\x14a\x03\xA5W\x80c\xF8 a@\x14a\x03\xAEW\x80c\xFE=W\x10\x14a\x03\xB7W`\0\x80\xFD[\x80c\xC5\x98Y\x18\x14a\x03SW\x80c\xC6\xD50\x16\x14a\x03sW\x80c\xD8DG\x15\x14a\x03{W`\0\x80\xFD[\x80c\x8B#\x9Fs\x11a\0\xC8W\x80c\x8B#\x9Fs\x14a\x03!W\x80c\x9E\x8CIf\x14a\x03*W\x80c\xB8\x07w\xEA\x14a\x033W`\0\x80\xFD[\x80cd\xCA#\xEF\x14a\x02\xDDW\x80ch\xD5\xDC\xA6\x14a\x02\xF1W\x80c\x83\x81\xF5\x8A\x14a\x03\rW`\0\x80\xFD[\x80cC\x97\xDF\xEF\x11a\x01PW\x80cT\xFDMP\x11a\x01*W\x80cT\xFDMP\x14a\x02\xB7W\x80cU\x0F\xCD\xC9\x14a\x02\xCCW\x80c\\\xF2Ii\x14a\x02\xD4W`\0\x80\xFD[\x80cC\x97\xDF\xEF\x14a\x02HW\x80cD\n^ \x14a\x02~W\x80cM]\x9A*\x14a\x02\x86W`\0\x80\xFD[\x80c\x16\xD3\xBC\x7F\x11a\x01\x81W\x80c\x16\xD3\xBC\x7F\x14a\x01\xE1W\x80c!2hI\x14a\x02\x0EW\x80c=\xB6\xBE+\x14a\x02@W`\0\x80\xFD[\x80c\x01]\x8E\xB9\x14a\x01\xA8W\x80c\t\x89\x99\xBE\x14a\x01\xBDW\x80c\t\xBDZ`\x14a\x01\xC5W[`\0\x80\xFD[a\x01\xBBa\x01\xB66`\x04a\n\x13V[a\x03\xE8V[\0[a\x01\xBBa\x05(V[a\x01\xCE`\x02T\x81V[`@Q\x90\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[`\x08Ta\x01\xF5\x90g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[`@Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01a\x01\xD8V[\x7F\xD2\xFF\x82\xC9\xB4w\xFFj\t\xF50\xB1\xC6'\xFF\xB4\xB0\xB8\x1E*\xE2\xBAB\x7F\x82Ab\xE8\xDA\xD0 \xAAT`@Q\x90\x15\x15\x81R` \x01a\x01\xD8V[a\x01\xBBa\x05;V[a\x02Pa\x05eV[`@\x80Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x93\x16\x83R`\xFF\x90\x91\x16` \x83\x01R\x01a\x01\xD8V[a\x01\xBBa\x05\xCCV[`\x08Ta\x02\xA2\x90h\x01\0\0\0\0\0\0\0\0\x90\x04c\xFF\xFF\xFF\xFF\x16\x81V[`@Qc\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01a\x01\xD8V[a\x02\xBFa\x06#V[`@Qa\x01\xD8\x91\x90a\n\xB5V[a\x02\xBFa\x06\x83V[a\x01\xCE`\x01T\x81V[`\x03Ta\x01\xF5\x90g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[`\x03Ta\x02\xA2\x90h\x01\0\0\0\0\0\0\0\0\x90\x04c\xFF\xFF\xFF\xFF\x16\x81V[`\0Ta\x01\xF5\x90g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[a\x01\xCE`\x05T\x81V[a\x01\xCE`\x06T\x81V[`\0Ta\x01\xF5\x90h\x01\0\0\0\0\0\0\0\0\x90\x04g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[`\x03Ta\x02\xA2\x90l\x01\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04c\xFF\xFF\xFF\xFF\x16\x81V[a\x01\xBBa\x07\x93V[a\x02\xBFa\t1V[`@Qs\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\0\x01\x81R` \x01a\x01\xD8V[a\x01\xCE`\x04T\x81V[a\x01\xCE`\x07T\x81V[`\x08Ta\x03\xD5\x90l\x01\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04a\xFF\xFF\x16\x81V[`@Qa\xFF\xFF\x90\x91\x16\x81R` \x01a\x01\xD8V[3s\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\0\x01\x14a\x04\x90W`@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\x82\x01R`;`$\x82\x01R\x7FL1Block: only the depositor acco`D\x82\x01R\x7Funt can set L1 block values\0\0\0\0\0`d\x82\x01R`\x84\x01[`@Q\x80\x91\x03\x90\xFD[`\0\x80Tg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x98\x89\x16h\x01\0\0\0\0\0\0\0\0\x02\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x91\x16\x99\x89\x16\x99\x90\x99\x17\x98\x90\x98\x17\x90\x97U`\x01\x94\x90\x94U`\x02\x92\x90\x92U`\x03\x80T\x91\x90\x94\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\x91\x90\x91\x16\x17\x90\x92U`\x04\x91\x90\x91U`\x05U`\x06UV[a\x050a\x05\xCCV[`\xA45`\xA0\x1C`\x08UV[a\x05Ca\x05\xCCV[m\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0`\xB05`\x90\x1C\x16`\xA45`\xA0\x1C\x17`\x08UV[`@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\x82\x01R`\x16`$\x82\x01R\x7FL1BlockCGT: deprecated\0\0\0\0\0\0\0\0\0\0`D\x82\x01R`\0\x90\x81\x90`d\x01a\x04\x87V[s\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\0\x013\x81\x14a\x05\xF6Wc<\xC5\x0BE`\0R`\x04`\x1C\xFD[`\x045`\x80\x1C`\x03U`\x145`\x80\x1C`\0U`$5`\x01U`D5`\x07U`d5`\x02U`\x845`\x04UPV[``a\x06_`@\x80Q\x80\x82\x01\x90\x91R`\x05\x81R\x7F1.8.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` \x82\x01R\x90V[`@Q` \x01a\x06o\x91\x90a\x0B\x06V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x90P\x90V[``a\x06\xAD\x7F\xD2\xFF\x82\xC9\xB4w\xFFj\t\xF50\xB1\xC6'\xFF\xB4\xB0\xB8\x1E*\xE2\xBAB\x7F\x82Ab\xE8\xDA\xD0 \xAAT\x90V[a\x06\xE9WP`@\x80Q\x80\x82\x01\x90\x91R`\x03\x81R\x7FETH\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0` \x82\x01R\x90V[sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0*s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16cU\x0F\xCD\xC9`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01`\0`@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x07HW=`\0\x80>=`\0\xFD[PPPP`@Q=`\0\x82>`\x1F=\x90\x81\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x82\x01`@Ra\x07\x8E\x91\x90\x81\x01\x90a\x0BvV[\x90P\x90V[3s\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\0\x01\x14a\x08\\W`@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\x82\x01R`A`$\x82\x01R\x7FL1Block: only the depositor acco`D\x82\x01R\x7Funt can set isCustomGasToken fla`d\x82\x01R\x7Fg\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x84\x82\x01R`\xA4\x01a\x04\x87V[\x7F\xD2\xFF\x82\xC9\xB4w\xFFj\t\xF50\xB1\xC6'\xFF\xB4\xB0\xB8\x1E*\xE2\xBAB\x7F\x82Ab\xE8\xDA\xD0 \xAAT\x15a\t\x0BW`@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\x82\x01R`&`$\x82\x01R\x7FL1Block: CustomGasToken already `D\x82\x01R\x7Factive\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`d\x82\x01R`\x84\x01a\x04\x87V[`\x01\x7F\xD2\xFF\x82\xC9\xB4w\xFFj\t\xF50\xB1\xC6'\xFF\xB4\xB0\xB8\x1E*\xE2\xBAB\x7F\x82Ab\xE8\xDA\xD0 \xAAUV[``a\t[\x7F\xD2\xFF\x82\xC9\xB4w\xFFj\t\xF50\xB1\xC6'\xFF\xB4\xB0\xB8\x1E*\xE2\xBAB\x7F\x82Ab\xE8\xDA\xD0 \xAAT\x90V[a\t\x97WP`@\x80Q\x80\x82\x01\x90\x91R`\x05\x81R\x7FEther\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` \x82\x01R\x90V[sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0*s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xD8DG\x15`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01`\0`@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x07HW=`\0\x80>=`\0\xFD[\x805g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\n\x0EW`\0\x80\xFD[\x91\x90PV[`\0\x80`\0\x80`\0\x80`\0\x80a\x01\0\x89\x8B\x03\x12\x15a\n0W`\0\x80\xFD[a\n9\x89a\t\xF6V[\x97Pa\nG` \x8A\x01a\t\xF6V[\x96P`@\x89\x015\x95P``\x89\x015\x94Pa\nc`\x80\x8A\x01a\t\xF6V[\x97\x9A\x96\x99P\x94\x97\x93\x96\x95`\xA0\x85\x015\x95P`\xC0\x85\x015\x94`\xE0\x015\x93P\x91PPV[`\0[\x83\x81\x10\x15a\n\xA0W\x81\x81\x01Q\x83\x82\x01R` \x01a\n\x88V[\x83\x81\x11\x15a\n\xAFW`\0\x84\x84\x01R[PPPPV[` \x81R`\0\x82Q\x80` \x84\x01Ra\n\xD4\x81`@\x85\x01` \x87\x01a\n\x85V[`\x1F\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x91\x90\x91\x01`@\x01\x92\x91PPV[`\0\x82Qa\x0B\x18\x81\x84` \x87\x01a\n\x85V[\x7F+custom-gas-token\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x92\x01\x91\x82RP`\x11\x01\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[`\0` \x82\x84\x03\x12\x15a\x0B\x88W`\0\x80\xFD[\x81Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x0B\xA0W`\0\x80\xFD[\x81\x84\x01\x91P\x84`\x1F\x83\x01\x12a\x0B\xB4W`\0\x80\xFD[\x81Q\x81\x81\x11\x15a\x0B\xC6Wa\x0B\xC6a\x0BGV[`@Q`\x1F\x82\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x90\x81\x16`?\x01\x16\x81\x01\x90\x83\x82\x11\x81\x83\x10\x17\x15a\x0C\x0CWa\x0C\x0Ca\x0BGV[\x81`@R\x82\x81R\x87` \x84\x87\x01\x01\x11\x15a\x0C%W`\0\x80\xFD[a\x0C6\x83` \x83\x01` \x88\x01a\n\x85V[\x97\x96PPPPPPPV\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `DEPOSITOR_ACCOUNT()` and selector `0xe591b282`. +```solidity +function DEPOSITOR_ACCOUNT() external pure returns (address addr_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct DEPOSITOR_ACCOUNTCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`DEPOSITOR_ACCOUNT()`](DEPOSITOR_ACCOUNTCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct DEPOSITOR_ACCOUNTReturn { + #[allow(missing_docs)] + pub addr_: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: DEPOSITOR_ACCOUNTCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for DEPOSITOR_ACCOUNTCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: DEPOSITOR_ACCOUNTReturn) -> Self { + (value.addr_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for DEPOSITOR_ACCOUNTReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { addr_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for DEPOSITOR_ACCOUNTCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "DEPOSITOR_ACCOUNT()"; + const SELECTOR: [u8; 4] = [229u8, 145u8, 178u8, 130u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: DEPOSITOR_ACCOUNTReturn = r.into(); + r.addr_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: DEPOSITOR_ACCOUNTReturn = r.into(); + r.addr_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `baseFeeScalar()` and selector `0xc5985918`. +```solidity +function baseFeeScalar() external view returns (uint32); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct baseFeeScalarCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`baseFeeScalar()`](baseFeeScalarCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct baseFeeScalarReturn { + #[allow(missing_docs)] + pub _0: u32, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: baseFeeScalarCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for baseFeeScalarCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u32,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: baseFeeScalarReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for baseFeeScalarReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for baseFeeScalarCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u32; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<32>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "baseFeeScalar()"; + const SELECTOR: [u8; 4] = [197u8, 152u8, 89u8, 24u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: baseFeeScalarReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: baseFeeScalarReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `basefee()` and selector `0x5cf24969`. +```solidity +function basefee() external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct basefeeCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`basefee()`](basefeeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct basefeeReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: basefeeCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for basefeeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: basefeeReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for basefeeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for basefeeCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "basefee()"; + const SELECTOR: [u8; 4] = [92u8, 242u8, 73u8, 105u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: basefeeReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: basefeeReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `batcherHash()` and selector `0xe81b2c6d`. +```solidity +function batcherHash() external view returns (bytes32); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct batcherHashCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`batcherHash()`](batcherHashCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct batcherHashReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: batcherHashCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for batcherHashCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: batcherHashReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for batcherHashReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for batcherHashCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::FixedBytes<32>; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "batcherHash()"; + const SELECTOR: [u8; 4] = [232u8, 27u8, 44u8, 109u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: batcherHashReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: batcherHashReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `blobBaseFee()` and selector `0xf8206140`. +```solidity +function blobBaseFee() external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct blobBaseFeeCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`blobBaseFee()`](blobBaseFeeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct blobBaseFeeReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: blobBaseFeeCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for blobBaseFeeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: blobBaseFeeReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for blobBaseFeeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for blobBaseFeeCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "blobBaseFee()"; + const SELECTOR: [u8; 4] = [248u8, 32u8, 97u8, 64u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: blobBaseFeeReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: blobBaseFeeReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `blobBaseFeeScalar()` and selector `0x68d5dca6`. +```solidity +function blobBaseFeeScalar() external view returns (uint32); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct blobBaseFeeScalarCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`blobBaseFeeScalar()`](blobBaseFeeScalarCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct blobBaseFeeScalarReturn { + #[allow(missing_docs)] + pub _0: u32, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: blobBaseFeeScalarCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for blobBaseFeeScalarCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u32,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: blobBaseFeeScalarReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for blobBaseFeeScalarReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for blobBaseFeeScalarCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u32; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<32>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "blobBaseFeeScalar()"; + const SELECTOR: [u8; 4] = [104u8, 213u8, 220u8, 166u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: blobBaseFeeScalarReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: blobBaseFeeScalarReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `daFootprintGasScalar()` and selector `0xfe3d5710`. +```solidity +function daFootprintGasScalar() external view returns (uint16); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct daFootprintGasScalarCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`daFootprintGasScalar()`](daFootprintGasScalarCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct daFootprintGasScalarReturn { + #[allow(missing_docs)] + pub _0: u16, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: daFootprintGasScalarCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for daFootprintGasScalarCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<16>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u16,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: daFootprintGasScalarReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for daFootprintGasScalarReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for daFootprintGasScalarCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u16; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<16>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "daFootprintGasScalar()"; + const SELECTOR: [u8; 4] = [254u8, 61u8, 87u8, 16u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: daFootprintGasScalarReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: daFootprintGasScalarReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `gasPayingToken()` and selector `0x4397dfef`. +```solidity +function gasPayingToken() external pure returns (address, uint8); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct gasPayingTokenCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`gasPayingToken()`](gasPayingTokenCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct gasPayingTokenReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _1: u8, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: gasPayingTokenCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for gasPayingTokenCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<8>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address, u8); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: gasPayingTokenReturn) -> Self { + (value._0, value._1) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for gasPayingTokenReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0, _1: tuple.1 } + } + } + } + impl gasPayingTokenReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + ( + ::tokenize( + &self._0, + ), + as alloy_sol_types::SolType>::tokenize(&self._1), + ) + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for gasPayingTokenCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = gasPayingTokenReturn; + type ReturnTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<8>, + ); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "gasPayingToken()"; + const SELECTOR: [u8; 4] = [67u8, 151u8, 223u8, 239u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + gasPayingTokenReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `gasPayingTokenName()` and selector `0xd8444715`. +```solidity +function gasPayingTokenName() external view returns (string memory name_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct gasPayingTokenNameCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`gasPayingTokenName()`](gasPayingTokenNameCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct gasPayingTokenNameReturn { + #[allow(missing_docs)] + pub name_: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: gasPayingTokenNameCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for gasPayingTokenNameCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: gasPayingTokenNameReturn) -> Self { + (value.name_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for gasPayingTokenNameReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { name_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for gasPayingTokenNameCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::String; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "gasPayingTokenName()"; + const SELECTOR: [u8; 4] = [216u8, 68u8, 71u8, 21u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: gasPayingTokenNameReturn = r.into(); + r.name_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: gasPayingTokenNameReturn = r.into(); + r.name_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `gasPayingTokenSymbol()` and selector `0x550fcdc9`. +```solidity +function gasPayingTokenSymbol() external view returns (string memory symbol_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct gasPayingTokenSymbolCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`gasPayingTokenSymbol()`](gasPayingTokenSymbolCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct gasPayingTokenSymbolReturn { + #[allow(missing_docs)] + pub symbol_: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: gasPayingTokenSymbolCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for gasPayingTokenSymbolCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: gasPayingTokenSymbolReturn) -> Self { + (value.symbol_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for gasPayingTokenSymbolReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { symbol_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for gasPayingTokenSymbolCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::String; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "gasPayingTokenSymbol()"; + const SELECTOR: [u8; 4] = [85u8, 15u8, 205u8, 201u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: gasPayingTokenSymbolReturn = r.into(); + r.symbol_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: gasPayingTokenSymbolReturn = r.into(); + r.symbol_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `hash()` and selector `0x09bd5a60`. +```solidity +function hash() external view returns (bytes32); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct hashCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`hash()`](hashCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct hashReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: hashCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for hashCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: hashReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for hashReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for hashCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::FixedBytes<32>; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "hash()"; + const SELECTOR: [u8; 4] = [9u8, 189u8, 90u8, 96u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: hashReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: hashReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `isCustomGasToken()` and selector `0x21326849`. +```solidity +function isCustomGasToken() external view returns (bool isCustom_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct isCustomGasTokenCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`isCustomGasToken()`](isCustomGasTokenCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct isCustomGasTokenReturn { + #[allow(missing_docs)] + pub isCustom_: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: isCustomGasTokenCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for isCustomGasTokenCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: isCustomGasTokenReturn) -> Self { + (value.isCustom_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for isCustomGasTokenReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { isCustom_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for isCustomGasTokenCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "isCustomGasToken()"; + const SELECTOR: [u8; 4] = [33u8, 50u8, 104u8, 73u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: isCustomGasTokenReturn = r.into(); + r.isCustom_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: isCustomGasTokenReturn = r.into(); + r.isCustom_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `l1FeeOverhead()` and selector `0x8b239f73`. +```solidity +function l1FeeOverhead() external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct l1FeeOverheadCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`l1FeeOverhead()`](l1FeeOverheadCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct l1FeeOverheadReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: l1FeeOverheadCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for l1FeeOverheadCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: l1FeeOverheadReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for l1FeeOverheadReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for l1FeeOverheadCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "l1FeeOverhead()"; + const SELECTOR: [u8; 4] = [139u8, 35u8, 159u8, 115u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: l1FeeOverheadReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: l1FeeOverheadReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `l1FeeScalar()` and selector `0x9e8c4966`. +```solidity +function l1FeeScalar() external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct l1FeeScalarCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`l1FeeScalar()`](l1FeeScalarCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct l1FeeScalarReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: l1FeeScalarCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for l1FeeScalarCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: l1FeeScalarReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for l1FeeScalarReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for l1FeeScalarCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "l1FeeScalar()"; + const SELECTOR: [u8; 4] = [158u8, 140u8, 73u8, 102u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: l1FeeScalarReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: l1FeeScalarReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `number()` and selector `0x8381f58a`. +```solidity +function number() external view returns (uint64); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct numberCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`number()`](numberCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct numberReturn { + #[allow(missing_docs)] + pub _0: u64, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: numberCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for numberCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u64,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: numberReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for numberReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for numberCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u64; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "number()"; + const SELECTOR: [u8; 4] = [131u8, 129u8, 245u8, 138u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: numberReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: numberReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `operatorFeeConstant()` and selector `0x16d3bc7f`. +```solidity +function operatorFeeConstant() external view returns (uint64); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct operatorFeeConstantCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`operatorFeeConstant()`](operatorFeeConstantCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct operatorFeeConstantReturn { + #[allow(missing_docs)] + pub _0: u64, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: operatorFeeConstantCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for operatorFeeConstantCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u64,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: operatorFeeConstantReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for operatorFeeConstantReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for operatorFeeConstantCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u64; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "operatorFeeConstant()"; + const SELECTOR: [u8; 4] = [22u8, 211u8, 188u8, 127u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: operatorFeeConstantReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: operatorFeeConstantReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `operatorFeeScalar()` and selector `0x4d5d9a2a`. +```solidity +function operatorFeeScalar() external view returns (uint32); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct operatorFeeScalarCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`operatorFeeScalar()`](operatorFeeScalarCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct operatorFeeScalarReturn { + #[allow(missing_docs)] + pub _0: u32, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: operatorFeeScalarCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for operatorFeeScalarCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u32,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: operatorFeeScalarReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for operatorFeeScalarReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for operatorFeeScalarCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u32; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<32>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "operatorFeeScalar()"; + const SELECTOR: [u8; 4] = [77u8, 93u8, 154u8, 42u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: operatorFeeScalarReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: operatorFeeScalarReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `sequenceNumber()` and selector `0x64ca23ef`. +```solidity +function sequenceNumber() external view returns (uint64); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct sequenceNumberCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`sequenceNumber()`](sequenceNumberCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct sequenceNumberReturn { + #[allow(missing_docs)] + pub _0: u64, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: sequenceNumberCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for sequenceNumberCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u64,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: sequenceNumberReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for sequenceNumberReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for sequenceNumberCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u64; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "sequenceNumber()"; + const SELECTOR: [u8; 4] = [100u8, 202u8, 35u8, 239u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: sequenceNumberReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: sequenceNumberReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `setCustomGasToken()` and selector `0xc6d53016`. +```solidity +function setCustomGasToken() external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setCustomGasTokenCall; + ///Container type for the return parameters of the [`setCustomGasToken()`](setCustomGasTokenCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setCustomGasTokenReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: setCustomGasTokenCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for setCustomGasTokenCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: setCustomGasTokenReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for setCustomGasTokenReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl setCustomGasTokenReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for setCustomGasTokenCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = setCustomGasTokenReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "setCustomGasToken()"; + const SELECTOR: [u8; 4] = [198u8, 213u8, 48u8, 22u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + setCustomGasTokenReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `setL1BlockValues(uint64,uint64,uint256,bytes32,uint64,bytes32,uint256,uint256)` and selector `0x015d8eb9`. +```solidity +function setL1BlockValues(uint64 _number, uint64 _timestamp, uint256 _basefee, bytes32 _hash, uint64 _sequenceNumber, bytes32 _batcherHash, uint256 _l1FeeOverhead, uint256 _l1FeeScalar) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setL1BlockValuesCall { + #[allow(missing_docs)] + pub _number: u64, + #[allow(missing_docs)] + pub _timestamp: u64, + #[allow(missing_docs)] + pub _basefee: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _hash: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub _sequenceNumber: u64, + #[allow(missing_docs)] + pub _batcherHash: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub _l1FeeOverhead: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _l1FeeScalar: alloy::sol_types::private::primitives::aliases::U256, + } + ///Container type for the return parameters of the [`setL1BlockValues(uint64,uint64,uint256,bytes32,uint64,bytes32,uint256,uint256)`](setL1BlockValuesCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setL1BlockValuesReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Uint<64>, + alloy::sol_types::sol_data::Uint<64>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Uint<64>, + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + u64, + u64, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::FixedBytes<32>, + u64, + alloy::sol_types::private::FixedBytes<32>, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: setL1BlockValuesCall) -> Self { + ( + value._number, + value._timestamp, + value._basefee, + value._hash, + value._sequenceNumber, + value._batcherHash, + value._l1FeeOverhead, + value._l1FeeScalar, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for setL1BlockValuesCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _number: tuple.0, + _timestamp: tuple.1, + _basefee: tuple.2, + _hash: tuple.3, + _sequenceNumber: tuple.4, + _batcherHash: tuple.5, + _l1FeeOverhead: tuple.6, + _l1FeeScalar: tuple.7, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: setL1BlockValuesReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for setL1BlockValuesReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl setL1BlockValuesReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for setL1BlockValuesCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Uint<64>, + alloy::sol_types::sol_data::Uint<64>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Uint<64>, + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = setL1BlockValuesReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "setL1BlockValues(uint64,uint64,uint256,bytes32,uint64,bytes32,uint256,uint256)"; + const SELECTOR: [u8; 4] = [1u8, 93u8, 142u8, 185u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._number), + as alloy_sol_types::SolType>::tokenize(&self._timestamp), + as alloy_sol_types::SolType>::tokenize(&self._basefee), + as alloy_sol_types::SolType>::tokenize(&self._hash), + as alloy_sol_types::SolType>::tokenize(&self._sequenceNumber), + as alloy_sol_types::SolType>::tokenize(&self._batcherHash), + as alloy_sol_types::SolType>::tokenize(&self._l1FeeOverhead), + as alloy_sol_types::SolType>::tokenize(&self._l1FeeScalar), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + setL1BlockValuesReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `setL1BlockValuesEcotone()` and selector `0x440a5e20`. +```solidity +function setL1BlockValuesEcotone() external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setL1BlockValuesEcotoneCall; + ///Container type for the return parameters of the [`setL1BlockValuesEcotone()`](setL1BlockValuesEcotoneCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setL1BlockValuesEcotoneReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: setL1BlockValuesEcotoneCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for setL1BlockValuesEcotoneCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: setL1BlockValuesEcotoneReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for setL1BlockValuesEcotoneReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl setL1BlockValuesEcotoneReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken< + '_, + > { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for setL1BlockValuesEcotoneCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = setL1BlockValuesEcotoneReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "setL1BlockValuesEcotone()"; + const SELECTOR: [u8; 4] = [68u8, 10u8, 94u8, 32u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + setL1BlockValuesEcotoneReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `setL1BlockValuesIsthmus()` and selector `0x098999be`. +```solidity +function setL1BlockValuesIsthmus() external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setL1BlockValuesIsthmusCall; + ///Container type for the return parameters of the [`setL1BlockValuesIsthmus()`](setL1BlockValuesIsthmusCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setL1BlockValuesIsthmusReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: setL1BlockValuesIsthmusCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for setL1BlockValuesIsthmusCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: setL1BlockValuesIsthmusReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for setL1BlockValuesIsthmusReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl setL1BlockValuesIsthmusReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken< + '_, + > { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for setL1BlockValuesIsthmusCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = setL1BlockValuesIsthmusReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "setL1BlockValuesIsthmus()"; + const SELECTOR: [u8; 4] = [9u8, 137u8, 153u8, 190u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + setL1BlockValuesIsthmusReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `setL1BlockValuesJovian()` and selector `0x3db6be2b`. +```solidity +function setL1BlockValuesJovian() external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setL1BlockValuesJovianCall; + ///Container type for the return parameters of the [`setL1BlockValuesJovian()`](setL1BlockValuesJovianCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setL1BlockValuesJovianReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: setL1BlockValuesJovianCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for setL1BlockValuesJovianCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: setL1BlockValuesJovianReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for setL1BlockValuesJovianReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl setL1BlockValuesJovianReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken< + '_, + > { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for setL1BlockValuesJovianCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = setL1BlockValuesJovianReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "setL1BlockValuesJovian()"; + const SELECTOR: [u8; 4] = [61u8, 182u8, 190u8, 43u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + setL1BlockValuesJovianReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `timestamp()` and selector `0xb80777ea`. +```solidity +function timestamp() external view returns (uint64); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct timestampCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`timestamp()`](timestampCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct timestampReturn { + #[allow(missing_docs)] + pub _0: u64, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: timestampCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for timestampCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u64,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: timestampReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for timestampReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for timestampCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u64; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "timestamp()"; + const SELECTOR: [u8; 4] = [184u8, 7u8, 119u8, 234u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: timestampReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: timestampReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `version()` and selector `0x54fd4d50`. +```solidity +function version() external pure returns (string memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`version()`](versionCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for versionCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::String; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "version()"; + const SELECTOR: [u8; 4] = [84u8, 253u8, 77u8, 80u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + } + }; + ///Container for all the [`L1BlockCGT`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum L1BlockCGTCalls { + #[allow(missing_docs)] + DEPOSITOR_ACCOUNT(DEPOSITOR_ACCOUNTCall), + #[allow(missing_docs)] + baseFeeScalar(baseFeeScalarCall), + #[allow(missing_docs)] + basefee(basefeeCall), + #[allow(missing_docs)] + batcherHash(batcherHashCall), + #[allow(missing_docs)] + blobBaseFee(blobBaseFeeCall), + #[allow(missing_docs)] + blobBaseFeeScalar(blobBaseFeeScalarCall), + #[allow(missing_docs)] + daFootprintGasScalar(daFootprintGasScalarCall), + #[allow(missing_docs)] + gasPayingToken(gasPayingTokenCall), + #[allow(missing_docs)] + gasPayingTokenName(gasPayingTokenNameCall), + #[allow(missing_docs)] + gasPayingTokenSymbol(gasPayingTokenSymbolCall), + #[allow(missing_docs)] + hash(hashCall), + #[allow(missing_docs)] + isCustomGasToken(isCustomGasTokenCall), + #[allow(missing_docs)] + l1FeeOverhead(l1FeeOverheadCall), + #[allow(missing_docs)] + l1FeeScalar(l1FeeScalarCall), + #[allow(missing_docs)] + number(numberCall), + #[allow(missing_docs)] + operatorFeeConstant(operatorFeeConstantCall), + #[allow(missing_docs)] + operatorFeeScalar(operatorFeeScalarCall), + #[allow(missing_docs)] + sequenceNumber(sequenceNumberCall), + #[allow(missing_docs)] + setCustomGasToken(setCustomGasTokenCall), + #[allow(missing_docs)] + setL1BlockValues(setL1BlockValuesCall), + #[allow(missing_docs)] + setL1BlockValuesEcotone(setL1BlockValuesEcotoneCall), + #[allow(missing_docs)] + setL1BlockValuesIsthmus(setL1BlockValuesIsthmusCall), + #[allow(missing_docs)] + setL1BlockValuesJovian(setL1BlockValuesJovianCall), + #[allow(missing_docs)] + timestamp(timestampCall), + #[allow(missing_docs)] + version(versionCall), + } + impl L1BlockCGTCalls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [1u8, 93u8, 142u8, 185u8], + [9u8, 137u8, 153u8, 190u8], + [9u8, 189u8, 90u8, 96u8], + [22u8, 211u8, 188u8, 127u8], + [33u8, 50u8, 104u8, 73u8], + [61u8, 182u8, 190u8, 43u8], + [67u8, 151u8, 223u8, 239u8], + [68u8, 10u8, 94u8, 32u8], + [77u8, 93u8, 154u8, 42u8], + [84u8, 253u8, 77u8, 80u8], + [85u8, 15u8, 205u8, 201u8], + [92u8, 242u8, 73u8, 105u8], + [100u8, 202u8, 35u8, 239u8], + [104u8, 213u8, 220u8, 166u8], + [131u8, 129u8, 245u8, 138u8], + [139u8, 35u8, 159u8, 115u8], + [158u8, 140u8, 73u8, 102u8], + [184u8, 7u8, 119u8, 234u8], + [197u8, 152u8, 89u8, 24u8], + [198u8, 213u8, 48u8, 22u8], + [216u8, 68u8, 71u8, 21u8], + [229u8, 145u8, 178u8, 130u8], + [232u8, 27u8, 44u8, 109u8], + [248u8, 32u8, 97u8, 64u8], + [254u8, 61u8, 87u8, 16u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(setL1BlockValues), + ::core::stringify!(setL1BlockValuesIsthmus), + ::core::stringify!(hash), + ::core::stringify!(operatorFeeConstant), + ::core::stringify!(isCustomGasToken), + ::core::stringify!(setL1BlockValuesJovian), + ::core::stringify!(gasPayingToken), + ::core::stringify!(setL1BlockValuesEcotone), + ::core::stringify!(operatorFeeScalar), + ::core::stringify!(version), + ::core::stringify!(gasPayingTokenSymbol), + ::core::stringify!(basefee), + ::core::stringify!(sequenceNumber), + ::core::stringify!(blobBaseFeeScalar), + ::core::stringify!(number), + ::core::stringify!(l1FeeOverhead), + ::core::stringify!(l1FeeScalar), + ::core::stringify!(timestamp), + ::core::stringify!(baseFeeScalar), + ::core::stringify!(setCustomGasToken), + ::core::stringify!(gasPayingTokenName), + ::core::stringify!(DEPOSITOR_ACCOUNT), + ::core::stringify!(batcherHash), + ::core::stringify!(blobBaseFee), + ::core::stringify!(daFootprintGasScalar), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for L1BlockCGTCalls { + const NAME: &'static str = "L1BlockCGTCalls"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 25usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::DEPOSITOR_ACCOUNT(_) => { + ::SELECTOR + } + Self::baseFeeScalar(_) => { + ::SELECTOR + } + Self::basefee(_) => ::SELECTOR, + Self::batcherHash(_) => { + ::SELECTOR + } + Self::blobBaseFee(_) => { + ::SELECTOR + } + Self::blobBaseFeeScalar(_) => { + ::SELECTOR + } + Self::daFootprintGasScalar(_) => { + ::SELECTOR + } + Self::gasPayingToken(_) => { + ::SELECTOR + } + Self::gasPayingTokenName(_) => { + ::SELECTOR + } + Self::gasPayingTokenSymbol(_) => { + ::SELECTOR + } + Self::hash(_) => ::SELECTOR, + Self::isCustomGasToken(_) => { + ::SELECTOR + } + Self::l1FeeOverhead(_) => { + ::SELECTOR + } + Self::l1FeeScalar(_) => { + ::SELECTOR + } + Self::number(_) => ::SELECTOR, + Self::operatorFeeConstant(_) => { + ::SELECTOR + } + Self::operatorFeeScalar(_) => { + ::SELECTOR + } + Self::sequenceNumber(_) => { + ::SELECTOR + } + Self::setCustomGasToken(_) => { + ::SELECTOR + } + Self::setL1BlockValues(_) => { + ::SELECTOR + } + Self::setL1BlockValuesEcotone(_) => { + ::SELECTOR + } + Self::setL1BlockValuesIsthmus(_) => { + ::SELECTOR + } + Self::setL1BlockValuesJovian(_) => { + ::SELECTOR + } + Self::timestamp(_) => { + ::SELECTOR + } + Self::version(_) => ::SELECTOR, + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn setL1BlockValues( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L1BlockCGTCalls::setL1BlockValues) + } + setL1BlockValues + }, + { + fn setL1BlockValuesIsthmus( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L1BlockCGTCalls::setL1BlockValuesIsthmus) + } + setL1BlockValuesIsthmus + }, + { + fn hash(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(L1BlockCGTCalls::hash) + } + hash + }, + { + fn operatorFeeConstant( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L1BlockCGTCalls::operatorFeeConstant) + } + operatorFeeConstant + }, + { + fn isCustomGasToken( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L1BlockCGTCalls::isCustomGasToken) + } + isCustomGasToken + }, + { + fn setL1BlockValuesJovian( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L1BlockCGTCalls::setL1BlockValuesJovian) + } + setL1BlockValuesJovian + }, + { + fn gasPayingToken( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L1BlockCGTCalls::gasPayingToken) + } + gasPayingToken + }, + { + fn setL1BlockValuesEcotone( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L1BlockCGTCalls::setL1BlockValuesEcotone) + } + setL1BlockValuesEcotone + }, + { + fn operatorFeeScalar( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L1BlockCGTCalls::operatorFeeScalar) + } + operatorFeeScalar + }, + { + fn version(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(L1BlockCGTCalls::version) + } + version + }, + { + fn gasPayingTokenSymbol( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L1BlockCGTCalls::gasPayingTokenSymbol) + } + gasPayingTokenSymbol + }, + { + fn basefee(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(L1BlockCGTCalls::basefee) + } + basefee + }, + { + fn sequenceNumber( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L1BlockCGTCalls::sequenceNumber) + } + sequenceNumber + }, + { + fn blobBaseFeeScalar( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L1BlockCGTCalls::blobBaseFeeScalar) + } + blobBaseFeeScalar + }, + { + fn number(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(L1BlockCGTCalls::number) + } + number + }, + { + fn l1FeeOverhead( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L1BlockCGTCalls::l1FeeOverhead) + } + l1FeeOverhead + }, + { + fn l1FeeScalar( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L1BlockCGTCalls::l1FeeScalar) + } + l1FeeScalar + }, + { + fn timestamp( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(L1BlockCGTCalls::timestamp) + } + timestamp + }, + { + fn baseFeeScalar( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L1BlockCGTCalls::baseFeeScalar) + } + baseFeeScalar + }, + { + fn setCustomGasToken( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L1BlockCGTCalls::setCustomGasToken) + } + setCustomGasToken + }, + { + fn gasPayingTokenName( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L1BlockCGTCalls::gasPayingTokenName) + } + gasPayingTokenName + }, + { + fn DEPOSITOR_ACCOUNT( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L1BlockCGTCalls::DEPOSITOR_ACCOUNT) + } + DEPOSITOR_ACCOUNT + }, + { + fn batcherHash( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L1BlockCGTCalls::batcherHash) + } + batcherHash + }, + { + fn blobBaseFee( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L1BlockCGTCalls::blobBaseFee) + } + blobBaseFee + }, + { + fn daFootprintGasScalar( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L1BlockCGTCalls::daFootprintGasScalar) + } + daFootprintGasScalar + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn setL1BlockValues( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1BlockCGTCalls::setL1BlockValues) + } + setL1BlockValues + }, + { + fn setL1BlockValuesIsthmus( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1BlockCGTCalls::setL1BlockValuesIsthmus) + } + setL1BlockValuesIsthmus + }, + { + fn hash(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1BlockCGTCalls::hash) + } + hash + }, + { + fn operatorFeeConstant( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1BlockCGTCalls::operatorFeeConstant) + } + operatorFeeConstant + }, + { + fn isCustomGasToken( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1BlockCGTCalls::isCustomGasToken) + } + isCustomGasToken + }, + { + fn setL1BlockValuesJovian( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1BlockCGTCalls::setL1BlockValuesJovian) + } + setL1BlockValuesJovian + }, + { + fn gasPayingToken( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1BlockCGTCalls::gasPayingToken) + } + gasPayingToken + }, + { + fn setL1BlockValuesEcotone( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1BlockCGTCalls::setL1BlockValuesEcotone) + } + setL1BlockValuesEcotone + }, + { + fn operatorFeeScalar( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1BlockCGTCalls::operatorFeeScalar) + } + operatorFeeScalar + }, + { + fn version(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1BlockCGTCalls::version) + } + version + }, + { + fn gasPayingTokenSymbol( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1BlockCGTCalls::gasPayingTokenSymbol) + } + gasPayingTokenSymbol + }, + { + fn basefee(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1BlockCGTCalls::basefee) + } + basefee + }, + { + fn sequenceNumber( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1BlockCGTCalls::sequenceNumber) + } + sequenceNumber + }, + { + fn blobBaseFeeScalar( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1BlockCGTCalls::blobBaseFeeScalar) + } + blobBaseFeeScalar + }, + { + fn number(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1BlockCGTCalls::number) + } + number + }, + { + fn l1FeeOverhead( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1BlockCGTCalls::l1FeeOverhead) + } + l1FeeOverhead + }, + { + fn l1FeeScalar( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1BlockCGTCalls::l1FeeScalar) + } + l1FeeScalar + }, + { + fn timestamp( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1BlockCGTCalls::timestamp) + } + timestamp + }, + { + fn baseFeeScalar( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1BlockCGTCalls::baseFeeScalar) + } + baseFeeScalar + }, + { + fn setCustomGasToken( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1BlockCGTCalls::setCustomGasToken) + } + setCustomGasToken + }, + { + fn gasPayingTokenName( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1BlockCGTCalls::gasPayingTokenName) + } + gasPayingTokenName + }, + { + fn DEPOSITOR_ACCOUNT( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1BlockCGTCalls::DEPOSITOR_ACCOUNT) + } + DEPOSITOR_ACCOUNT + }, + { + fn batcherHash( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1BlockCGTCalls::batcherHash) + } + batcherHash + }, + { + fn blobBaseFee( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1BlockCGTCalls::blobBaseFee) + } + blobBaseFee + }, + { + fn daFootprintGasScalar( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1BlockCGTCalls::daFootprintGasScalar) + } + daFootprintGasScalar + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::DEPOSITOR_ACCOUNT(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::baseFeeScalar(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::basefee(inner) => { + ::abi_encoded_size(inner) + } + Self::batcherHash(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::blobBaseFee(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::blobBaseFeeScalar(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::daFootprintGasScalar(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::gasPayingToken(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::gasPayingTokenName(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::gasPayingTokenSymbol(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::hash(inner) => { + ::abi_encoded_size(inner) + } + Self::isCustomGasToken(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::l1FeeOverhead(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::l1FeeScalar(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::number(inner) => { + ::abi_encoded_size(inner) + } + Self::operatorFeeConstant(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::operatorFeeScalar(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::sequenceNumber(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::setCustomGasToken(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::setL1BlockValues(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::setL1BlockValuesEcotone(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::setL1BlockValuesIsthmus(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::setL1BlockValuesJovian(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::timestamp(inner) => { + ::abi_encoded_size(inner) + } + Self::version(inner) => { + ::abi_encoded_size(inner) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::DEPOSITOR_ACCOUNT(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::baseFeeScalar(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::basefee(inner) => { + ::abi_encode_raw(inner, out) + } + Self::batcherHash(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::blobBaseFee(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::blobBaseFeeScalar(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::daFootprintGasScalar(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::gasPayingToken(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::gasPayingTokenName(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::gasPayingTokenSymbol(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::hash(inner) => { + ::abi_encode_raw(inner, out) + } + Self::isCustomGasToken(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::l1FeeOverhead(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::l1FeeScalar(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::number(inner) => { + ::abi_encode_raw(inner, out) + } + Self::operatorFeeConstant(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::operatorFeeScalar(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::sequenceNumber(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::setCustomGasToken(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::setL1BlockValues(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::setL1BlockValuesEcotone(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::setL1BlockValuesIsthmus(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::setL1BlockValuesJovian(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::timestamp(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::version(inner) => { + ::abi_encode_raw(inner, out) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`L1BlockCGT`](self) contract instance. + +See the [wrapper's documentation](`L1BlockCGTInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> L1BlockCGTInstance { + L1BlockCGTInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + L1BlockCGTInstance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + L1BlockCGTInstance::::deploy_builder(__provider) + } + /**A [`L1BlockCGT`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`L1BlockCGT`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct L1BlockCGTInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for L1BlockCGTInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("L1BlockCGTInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > L1BlockCGTInstance { + /**Creates a new wrapper around an on-chain [`L1BlockCGT`](self) contract instance. + +See the [wrapper's documentation](`L1BlockCGTInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl L1BlockCGTInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> L1BlockCGTInstance { + L1BlockCGTInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > L1BlockCGTInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`DEPOSITOR_ACCOUNT`] function. + pub fn DEPOSITOR_ACCOUNT( + &self, + ) -> alloy_contract::SolCallBuilder<&P, DEPOSITOR_ACCOUNTCall, N> { + self.call_builder(&DEPOSITOR_ACCOUNTCall) + } + ///Creates a new call builder for the [`baseFeeScalar`] function. + pub fn baseFeeScalar( + &self, + ) -> alloy_contract::SolCallBuilder<&P, baseFeeScalarCall, N> { + self.call_builder(&baseFeeScalarCall) + } + ///Creates a new call builder for the [`basefee`] function. + pub fn basefee(&self) -> alloy_contract::SolCallBuilder<&P, basefeeCall, N> { + self.call_builder(&basefeeCall) + } + ///Creates a new call builder for the [`batcherHash`] function. + pub fn batcherHash( + &self, + ) -> alloy_contract::SolCallBuilder<&P, batcherHashCall, N> { + self.call_builder(&batcherHashCall) + } + ///Creates a new call builder for the [`blobBaseFee`] function. + pub fn blobBaseFee( + &self, + ) -> alloy_contract::SolCallBuilder<&P, blobBaseFeeCall, N> { + self.call_builder(&blobBaseFeeCall) + } + ///Creates a new call builder for the [`blobBaseFeeScalar`] function. + pub fn blobBaseFeeScalar( + &self, + ) -> alloy_contract::SolCallBuilder<&P, blobBaseFeeScalarCall, N> { + self.call_builder(&blobBaseFeeScalarCall) + } + ///Creates a new call builder for the [`daFootprintGasScalar`] function. + pub fn daFootprintGasScalar( + &self, + ) -> alloy_contract::SolCallBuilder<&P, daFootprintGasScalarCall, N> { + self.call_builder(&daFootprintGasScalarCall) + } + ///Creates a new call builder for the [`gasPayingToken`] function. + pub fn gasPayingToken( + &self, + ) -> alloy_contract::SolCallBuilder<&P, gasPayingTokenCall, N> { + self.call_builder(&gasPayingTokenCall) + } + ///Creates a new call builder for the [`gasPayingTokenName`] function. + pub fn gasPayingTokenName( + &self, + ) -> alloy_contract::SolCallBuilder<&P, gasPayingTokenNameCall, N> { + self.call_builder(&gasPayingTokenNameCall) + } + ///Creates a new call builder for the [`gasPayingTokenSymbol`] function. + pub fn gasPayingTokenSymbol( + &self, + ) -> alloy_contract::SolCallBuilder<&P, gasPayingTokenSymbolCall, N> { + self.call_builder(&gasPayingTokenSymbolCall) + } + ///Creates a new call builder for the [`hash`] function. + pub fn hash(&self) -> alloy_contract::SolCallBuilder<&P, hashCall, N> { + self.call_builder(&hashCall) + } + ///Creates a new call builder for the [`isCustomGasToken`] function. + pub fn isCustomGasToken( + &self, + ) -> alloy_contract::SolCallBuilder<&P, isCustomGasTokenCall, N> { + self.call_builder(&isCustomGasTokenCall) + } + ///Creates a new call builder for the [`l1FeeOverhead`] function. + pub fn l1FeeOverhead( + &self, + ) -> alloy_contract::SolCallBuilder<&P, l1FeeOverheadCall, N> { + self.call_builder(&l1FeeOverheadCall) + } + ///Creates a new call builder for the [`l1FeeScalar`] function. + pub fn l1FeeScalar( + &self, + ) -> alloy_contract::SolCallBuilder<&P, l1FeeScalarCall, N> { + self.call_builder(&l1FeeScalarCall) + } + ///Creates a new call builder for the [`number`] function. + pub fn number(&self) -> alloy_contract::SolCallBuilder<&P, numberCall, N> { + self.call_builder(&numberCall) + } + ///Creates a new call builder for the [`operatorFeeConstant`] function. + pub fn operatorFeeConstant( + &self, + ) -> alloy_contract::SolCallBuilder<&P, operatorFeeConstantCall, N> { + self.call_builder(&operatorFeeConstantCall) + } + ///Creates a new call builder for the [`operatorFeeScalar`] function. + pub fn operatorFeeScalar( + &self, + ) -> alloy_contract::SolCallBuilder<&P, operatorFeeScalarCall, N> { + self.call_builder(&operatorFeeScalarCall) + } + ///Creates a new call builder for the [`sequenceNumber`] function. + pub fn sequenceNumber( + &self, + ) -> alloy_contract::SolCallBuilder<&P, sequenceNumberCall, N> { + self.call_builder(&sequenceNumberCall) + } + ///Creates a new call builder for the [`setCustomGasToken`] function. + pub fn setCustomGasToken( + &self, + ) -> alloy_contract::SolCallBuilder<&P, setCustomGasTokenCall, N> { + self.call_builder(&setCustomGasTokenCall) + } + ///Creates a new call builder for the [`setL1BlockValues`] function. + pub fn setL1BlockValues( + &self, + _number: u64, + _timestamp: u64, + _basefee: alloy::sol_types::private::primitives::aliases::U256, + _hash: alloy::sol_types::private::FixedBytes<32>, + _sequenceNumber: u64, + _batcherHash: alloy::sol_types::private::FixedBytes<32>, + _l1FeeOverhead: alloy::sol_types::private::primitives::aliases::U256, + _l1FeeScalar: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, setL1BlockValuesCall, N> { + self.call_builder( + &setL1BlockValuesCall { + _number, + _timestamp, + _basefee, + _hash, + _sequenceNumber, + _batcherHash, + _l1FeeOverhead, + _l1FeeScalar, + }, + ) + } + ///Creates a new call builder for the [`setL1BlockValuesEcotone`] function. + pub fn setL1BlockValuesEcotone( + &self, + ) -> alloy_contract::SolCallBuilder<&P, setL1BlockValuesEcotoneCall, N> { + self.call_builder(&setL1BlockValuesEcotoneCall) + } + ///Creates a new call builder for the [`setL1BlockValuesIsthmus`] function. + pub fn setL1BlockValuesIsthmus( + &self, + ) -> alloy_contract::SolCallBuilder<&P, setL1BlockValuesIsthmusCall, N> { + self.call_builder(&setL1BlockValuesIsthmusCall) + } + ///Creates a new call builder for the [`setL1BlockValuesJovian`] function. + pub fn setL1BlockValuesJovian( + &self, + ) -> alloy_contract::SolCallBuilder<&P, setL1BlockValuesJovianCall, N> { + self.call_builder(&setL1BlockValuesJovianCall) + } + ///Creates a new call builder for the [`timestamp`] function. + pub fn timestamp(&self) -> alloy_contract::SolCallBuilder<&P, timestampCall, N> { + self.call_builder(×tampCall) + } + ///Creates a new call builder for the [`version`] function. + pub fn version(&self) -> alloy_contract::SolCallBuilder<&P, versionCall, N> { + self.call_builder(&versionCall) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > L1BlockCGTInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + } +} diff --git a/bindings/rust/src/l1_block_errors.rs b/bindings/rust/src/l1_block_errors.rs new file mode 100644 index 000000000..71a105f4f --- /dev/null +++ b/bindings/rust/src/l1_block_errors.rs @@ -0,0 +1,215 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface L1BlockErrors {} +``` + +...which was generated by the following JSON ABI: +```json +[] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod L1BlockErrors { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"", + ); + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`L1BlockErrors`](self) contract instance. + +See the [wrapper's documentation](`L1BlockErrorsInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> L1BlockErrorsInstance { + L1BlockErrorsInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + L1BlockErrorsInstance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + L1BlockErrorsInstance::::deploy_builder(__provider) + } + /**A [`L1BlockErrors`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`L1BlockErrors`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct L1BlockErrorsInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for L1BlockErrorsInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("L1BlockErrorsInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > L1BlockErrorsInstance { + /**Creates a new wrapper around an on-chain [`L1BlockErrors`](self) contract instance. + +See the [wrapper's documentation](`L1BlockErrorsInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl L1BlockErrorsInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> L1BlockErrorsInstance { + L1BlockErrorsInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > L1BlockErrorsInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > L1BlockErrorsInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + } +} diff --git a/bindings/rust/src/l1_block_number.rs b/bindings/rust/src/l1_block_number.rs new file mode 100644 index 000000000..70ce65312 --- /dev/null +++ b/bindings/rust/src/l1_block_number.rs @@ -0,0 +1,747 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface L1BlockNumber { + fallback() external payable; + + receive() external payable; + + function getL1BlockNumber() external view returns (uint256); + function version() external view returns (string memory); +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "fallback", + "stateMutability": "payable" + }, + { + "type": "receive", + "stateMutability": "payable" + }, + { + "type": "function", + "name": "getL1BlockNumber", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "version", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "view" + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod L1BlockNumber { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x608060405234801561001057600080fd5b50610219806100206000396000f3fe60806040526004361061002d5760003560e01c806354fd4d5014610052578063b9b3efe9146100b157610048565b3661004857600061003c6100d4565b90508060005260206000f35b600061003c6100d4565b34801561005e57600080fd5b5061009b6040518060400160405280600581526020017f312e312e3200000000000000000000000000000000000000000000000000000081525081565b6040516100a89190610168565b60405180910390f35b3480156100bd57600080fd5b506100c66100d4565b6040519081526020016100a8565b600073420000000000000000000000000000000000001573ffffffffffffffffffffffffffffffffffffffff16638381f58a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610135573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061015991906101db565b67ffffffffffffffff16905090565b600060208083528351808285015260005b8181101561019557858101830151858201604001528201610179565b818111156101a7576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b6000602082840312156101ed57600080fd5b815167ffffffffffffffff8116811461020557600080fd5b939250505056fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[Pa\x02\x19\x80a\0 `\09`\0\xF3\xFE`\x80`@R`\x046\x10a\0-W`\x005`\xE0\x1C\x80cT\xFDMP\x14a\0RW\x80c\xB9\xB3\xEF\xE9\x14a\0\xB1Wa\0HV[6a\0HW`\0a\0=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x01Y\x91\x90a\x01\xDBV[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90P\x90V[`\0` \x80\x83R\x83Q\x80\x82\x85\x01R`\0[\x81\x81\x10\x15a\x01\x95W\x85\x81\x01\x83\x01Q\x85\x82\x01`@\x01R\x82\x01a\x01yV[\x81\x81\x11\x15a\x01\xA7W`\0`@\x83\x87\x01\x01R[P`\x1F\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x92\x90\x92\x01`@\x01\x93\x92PPPV[`\0` \x82\x84\x03\x12\x15a\x01\xEDW`\0\x80\xFD[\x81Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x02\x05W`\0\x80\xFD[\x93\x92PPPV\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x60806040526004361061002d5760003560e01c806354fd4d5014610052578063b9b3efe9146100b157610048565b3661004857600061003c6100d4565b90508060005260206000f35b600061003c6100d4565b34801561005e57600080fd5b5061009b6040518060400160405280600581526020017f312e312e3200000000000000000000000000000000000000000000000000000081525081565b6040516100a89190610168565b60405180910390f35b3480156100bd57600080fd5b506100c66100d4565b6040519081526020016100a8565b600073420000000000000000000000000000000000001573ffffffffffffffffffffffffffffffffffffffff16638381f58a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610135573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061015991906101db565b67ffffffffffffffff16905090565b600060208083528351808285015260005b8181101561019557858101830151858201604001528201610179565b818111156101a7576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b6000602082840312156101ed57600080fd5b815167ffffffffffffffff8116811461020557600080fd5b939250505056fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R`\x046\x10a\0-W`\x005`\xE0\x1C\x80cT\xFDMP\x14a\0RW\x80c\xB9\xB3\xEF\xE9\x14a\0\xB1Wa\0HV[6a\0HW`\0a\0=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x01Y\x91\x90a\x01\xDBV[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90P\x90V[`\0` \x80\x83R\x83Q\x80\x82\x85\x01R`\0[\x81\x81\x10\x15a\x01\x95W\x85\x81\x01\x83\x01Q\x85\x82\x01`@\x01R\x82\x01a\x01yV[\x81\x81\x11\x15a\x01\xA7W`\0`@\x83\x87\x01\x01R[P`\x1F\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x92\x90\x92\x01`@\x01\x93\x92PPPV[`\0` \x82\x84\x03\x12\x15a\x01\xEDW`\0\x80\xFD[\x81Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x02\x05W`\0\x80\xFD[\x93\x92PPPV\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `getL1BlockNumber()` and selector `0xb9b3efe9`. +```solidity +function getL1BlockNumber() external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getL1BlockNumberCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`getL1BlockNumber()`](getL1BlockNumberCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getL1BlockNumberReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: getL1BlockNumberCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for getL1BlockNumberCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: getL1BlockNumberReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for getL1BlockNumberReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for getL1BlockNumberCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "getL1BlockNumber()"; + const SELECTOR: [u8; 4] = [185u8, 179u8, 239u8, 233u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: getL1BlockNumberReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: getL1BlockNumberReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `version()` and selector `0x54fd4d50`. +```solidity +function version() external view returns (string memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`version()`](versionCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for versionCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::String; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "version()"; + const SELECTOR: [u8; 4] = [84u8, 253u8, 77u8, 80u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + } + }; + ///Container for all the [`L1BlockNumber`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum L1BlockNumberCalls { + #[allow(missing_docs)] + getL1BlockNumber(getL1BlockNumberCall), + #[allow(missing_docs)] + version(versionCall), + } + impl L1BlockNumberCalls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [84u8, 253u8, 77u8, 80u8], + [185u8, 179u8, 239u8, 233u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(version), + ::core::stringify!(getL1BlockNumber), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for L1BlockNumberCalls { + const NAME: &'static str = "L1BlockNumberCalls"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 2usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::getL1BlockNumber(_) => { + ::SELECTOR + } + Self::version(_) => ::SELECTOR, + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(L1BlockNumberCalls::version) + } + version + }, + { + fn getL1BlockNumber( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L1BlockNumberCalls::getL1BlockNumber) + } + getL1BlockNumber + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1BlockNumberCalls::version) + } + version + }, + { + fn getL1BlockNumber( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1BlockNumberCalls::getL1BlockNumber) + } + getL1BlockNumber + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::getL1BlockNumber(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::version(inner) => { + ::abi_encoded_size(inner) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::getL1BlockNumber(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::version(inner) => { + ::abi_encode_raw(inner, out) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`L1BlockNumber`](self) contract instance. + +See the [wrapper's documentation](`L1BlockNumberInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> L1BlockNumberInstance { + L1BlockNumberInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + L1BlockNumberInstance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + L1BlockNumberInstance::::deploy_builder(__provider) + } + /**A [`L1BlockNumber`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`L1BlockNumber`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct L1BlockNumberInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for L1BlockNumberInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("L1BlockNumberInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > L1BlockNumberInstance { + /**Creates a new wrapper around an on-chain [`L1BlockNumber`](self) contract instance. + +See the [wrapper's documentation](`L1BlockNumberInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl L1BlockNumberInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> L1BlockNumberInstance { + L1BlockNumberInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > L1BlockNumberInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`getL1BlockNumber`] function. + pub fn getL1BlockNumber( + &self, + ) -> alloy_contract::SolCallBuilder<&P, getL1BlockNumberCall, N> { + self.call_builder(&getL1BlockNumberCall) + } + ///Creates a new call builder for the [`version`] function. + pub fn version(&self) -> alloy_contract::SolCallBuilder<&P, versionCall, N> { + self.call_builder(&versionCall) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > L1BlockNumberInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + } +} diff --git a/bindings/rust/src/l1_chug_splash_proxy.rs b/bindings/rust/src/l1_chug_splash_proxy.rs new file mode 100644 index 000000000..8ea65f3f6 --- /dev/null +++ b/bindings/rust/src/l1_chug_splash_proxy.rs @@ -0,0 +1,1466 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface L1ChugSplashProxy { + constructor(address _owner); + + fallback() external payable; + + receive() external payable; + + function getImplementation() external returns (address); + function getOwner() external returns (address); + function setCode(bytes memory _code) external; + function setOwner(address _owner) external; + function setStorage(bytes32 _key, bytes32 _value) external; +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "constructor", + "inputs": [ + { + "name": "_owner", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "fallback", + "stateMutability": "payable" + }, + { + "type": "receive", + "stateMutability": "payable" + }, + { + "type": "function", + "name": "getImplementation", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "getOwner", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "setCode", + "inputs": [ + { + "name": "_code", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "setOwner", + "inputs": [ + { + "name": "_owner", + "type": "address", + "internalType": "address" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "setStorage", + "inputs": [ + { + "name": "_key", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "_value", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod L1ChugSplashProxy { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x608060405234801561001057600080fd5b50604051610a44380380610a4483398101604081905261002f9161005d565b610057817fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610355565b5061008d565b60006020828403121561006f57600080fd5b81516001600160a01b038116811461008657600080fd5b9392505050565b6109a88061009c6000396000f3fe60806040526004361061005e5760003560e01c8063893d20e811610043578063893d20e8146100b55780639b0b0fda146100f3578063aaf10f42146101135761006d565b806313af4035146100755780636c5d4ad0146100955761006d565b3661006d5761006b610128565b005b61006b610128565b34801561008157600080fd5b5061006b6100903660046107a2565b6103cb565b3480156100a157600080fd5b5061006b6100b036600461080e565b61045c565b3480156100c157600080fd5b506100ca610611565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b3480156100ff57600080fd5b5061006b61010e3660046108dd565b6106a8565b34801561011f57600080fd5b506100ca610716565b60006101527fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b60408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fb7947262000000000000000000000000000000000000000000000000000000001790529051919250600091829173ffffffffffffffffffffffffffffffffffffffff8516916101d4919061093a565b600060405180830381855afa9150503d806000811461020f576040519150601f19603f3d011682016040523d82523d6000602084013e610214565b606091505b5091509150818015610227575080516020145b156102d9576000818060200190518101906102429190610946565b905080156102d7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603560248201527f4c314368756753706c61736850726f78793a2073797374656d2069732063757260448201527f72656e746c79206265696e67207570677261646564000000000000000000000060648201526084015b60405180910390fd5b505b60006103037f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b905073ffffffffffffffffffffffffffffffffffffffff81166103a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f4c314368756753706c61736850726f78793a20696d706c656d656e746174696f60448201527f6e206973206e6f7420736574207965740000000000000000000000000000000060648201526084016102ce565b3660008037600080366000845af43d6000803e806103c5573d6000fd5b503d6000f35b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610424575033155b1561045457610451817fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610355565b50565b610451610128565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806104b5575033155b156104545760006104e47f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b9050803f82516020840120036104f8575050565b60405160009061052e907f600d380380600d6000396000f30000000000000000000000000000000000000090859060200161095f565b604051602081830303815290604052905060008151602083016000f084516020860120909150813f146105e3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4c314368756753706c61736850726f78793a20636f646520776173206e6f742060448201527f636f72726563746c79206465706c6f796564000000000000000000000000000060648201526084016102ce565b61060b817f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b50505050565b600061063b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610672575033155b1561069d57507fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b6106a5610128565b90565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610701575033155b1561070a579055565b610712610128565b5050565b60006107407fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610777575033155b1561069d57507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6000602082840312156107b457600080fd5b813573ffffffffffffffffffffffffffffffffffffffff811681146107d857600080fd5b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60006020828403121561082057600080fd5b813567ffffffffffffffff8082111561083857600080fd5b818401915084601f83011261084c57600080fd5b81358181111561085e5761085e6107df565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019083821181831017156108a4576108a46107df565b816040528281528760208487010111156108bd57600080fd5b826020860160208301376000928101602001929092525095945050505050565b600080604083850312156108f057600080fd5b50508035926020909101359150565b6000815160005b818110156109205760208185018101518683015201610906565b8181111561092f576000828601525b509290920192915050565b60006107d882846108ff565b60006020828403121561095857600080fd5b5051919050565b7fffffffffffffffffffffffffff00000000000000000000000000000000000000831681526000610993600d8301846108ff565b94935050505056fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`@Qa\nD8\x03\x80a\nD\x839\x81\x01`@\x81\x90Ra\0/\x91a\0]V[a\0W\x81\x7F\xB51'hJV\x8B1s\xAE\x13\xB9\xF8\xA6\x01n$>c\xB6\xE8\xEE\x11x\xD6\xA7\x17\x85\x0B]a\x03UV[Pa\0\x8DV[`\0` \x82\x84\x03\x12\x15a\0oW`\0\x80\xFD[\x81Q`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a\0\x86W`\0\x80\xFD[\x93\x92PPPV[a\t\xA8\x80a\0\x9C`\09`\0\xF3\xFE`\x80`@R`\x046\x10a\0^W`\x005`\xE0\x1C\x80c\x89= \xE8\x11a\0CW\x80c\x89= \xE8\x14a\0\xB5W\x80c\x9B\x0B\x0F\xDA\x14a\0\xF3W\x80c\xAA\xF1\x0FB\x14a\x01\x13Wa\0mV[\x80c\x13\xAF@5\x14a\0uW\x80cl]J\xD0\x14a\0\x95Wa\0mV[6a\0mWa\0ka\x01(V[\0[a\0ka\x01(V[4\x80\x15a\0\x81W`\0\x80\xFD[Pa\0ka\0\x906`\x04a\x07\xA2V[a\x03\xCBV[4\x80\x15a\0\xA1W`\0\x80\xFD[Pa\0ka\0\xB06`\x04a\x08\x0EV[a\x04\\V[4\x80\x15a\0\xC1W`\0\x80\xFD[Pa\0\xCAa\x06\x11V[`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01`@Q\x80\x91\x03\x90\xF3[4\x80\x15a\0\xFFW`\0\x80\xFD[Pa\0ka\x01\x0E6`\x04a\x08\xDDV[a\x06\xA8V[4\x80\x15a\x01\x1FW`\0\x80\xFD[Pa\0\xCAa\x07\x16V[`\0a\x01R\x7F\xB51'hJV\x8B1s\xAE\x13\xB9\xF8\xA6\x01n$>c\xB6\xE8\xEE\x11x\xD6\xA7\x17\x85\x0B]a\x03T\x90V[`@\x80Q`\x04\x81R`$\x81\x01\x82R` \x81\x01\x80Q{\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xB7\x94rb\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\x17\x90R\x90Q\x91\x92P`\0\x91\x82\x91s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x85\x16\x91a\x01\xD4\x91\x90a\t:V[`\0`@Q\x80\x83\x03\x81\x85Z\xFA\x91PP=\x80`\0\x81\x14a\x02\x0FW`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=`\0` \x84\x01>a\x02\x14V[``\x91P[P\x91P\x91P\x81\x80\x15a\x02'WP\x80Q` \x14[\x15a\x02\xD9W`\0\x81\x80` \x01\x90Q\x81\x01\x90a\x02B\x91\x90a\tFV[\x90P\x80\x15a\x02\xD7W`@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\x82\x01R`5`$\x82\x01R\x7FL1ChugSplashProxy: system is cur`D\x82\x01R\x7Frently being upgraded\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01[`@Q\x80\x91\x03\x90\xFD[P[`\0a\x03\x03\x7F6\x08\x94\xA1;\xA1\xA3!\x06g\xC8(I-\xB9\x8D\xCA> v\xCC75\xA9 \xA3\xCAP]8+\xBCT\x90V[\x90Ps\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16a\x03\xA8W`@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\x82\x01R`0`$\x82\x01R\x7FL1ChugSplashProxy: implementatio`D\x82\x01R\x7Fn is not set yet\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x02\xCEV[6`\0\x807`\0\x806`\0\x84Z\xF4=`\0\x80>\x80a\x03\xC5W=`\0\xFD[P=`\0\xF3[\x7F\xB51'hJV\x8B1s\xAE\x13\xB9\xF8\xA6\x01n$>c\xB6\xE8\xEE\x11x\xD6\xA7\x17\x85\x0B]a\x03Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x163s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14\x80a\x04$WP3\x15[\x15a\x04TWa\x04Q\x81\x7F\xB51'hJV\x8B1s\xAE\x13\xB9\xF8\xA6\x01n$>c\xB6\xE8\xEE\x11x\xD6\xA7\x17\x85\x0B]a\x03UV[PV[a\x04Qa\x01(V[\x7F\xB51'hJV\x8B1s\xAE\x13\xB9\xF8\xA6\x01n$>c\xB6\xE8\xEE\x11x\xD6\xA7\x17\x85\x0B]a\x03Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x163s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14\x80a\x04\xB5WP3\x15[\x15a\x04TW`\0a\x04\xE4\x7F6\x08\x94\xA1;\xA1\xA3!\x06g\xC8(I-\xB9\x8D\xCA> v\xCC75\xA9 \xA3\xCAP]8+\xBCT\x90V[\x90P\x80?\x82Q` \x84\x01 \x03a\x04\xF8WPPV[`@Q`\0\x90a\x05.\x90\x7F`\r8\x03\x80`\r`\09`\0\xF3\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x85\x90` \x01a\t_V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x90P`\0\x81Q` \x83\x01`\0\xF0\x84Q` \x86\x01 \x90\x91P\x81?\x14a\x05\xE3W`@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\x82\x01R`2`$\x82\x01R\x7FL1ChugSplashProxy: code was not `D\x82\x01R\x7Fcorrectly deployed\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x02\xCEV[a\x06\x0B\x81\x7F6\x08\x94\xA1;\xA1\xA3!\x06g\xC8(I-\xB9\x8D\xCA> v\xCC75\xA9 \xA3\xCAP]8+\xBCUV[PPPPV[`\0a\x06;\x7F\xB51'hJV\x8B1s\xAE\x13\xB9\xF8\xA6\x01n$>c\xB6\xE8\xEE\x11x\xD6\xA7\x17\x85\x0B]a\x03T\x90V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x163s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14\x80a\x06rWP3\x15[\x15a\x06\x9DWP\x7F\xB51'hJV\x8B1s\xAE\x13\xB9\xF8\xA6\x01n$>c\xB6\xE8\xEE\x11x\xD6\xA7\x17\x85\x0B]a\x03T\x90V[a\x06\xA5a\x01(V[\x90V[\x7F\xB51'hJV\x8B1s\xAE\x13\xB9\xF8\xA6\x01n$>c\xB6\xE8\xEE\x11x\xD6\xA7\x17\x85\x0B]a\x03Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x163s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14\x80a\x07\x01WP3\x15[\x15a\x07\nW\x90UV[a\x07\x12a\x01(V[PPV[`\0a\x07@\x7F\xB51'hJV\x8B1s\xAE\x13\xB9\xF8\xA6\x01n$>c\xB6\xE8\xEE\x11x\xD6\xA7\x17\x85\x0B]a\x03T\x90V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x163s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14\x80a\x07wWP3\x15[\x15a\x06\x9DWP\x7F6\x08\x94\xA1;\xA1\xA3!\x06g\xC8(I-\xB9\x8D\xCA> v\xCC75\xA9 \xA3\xCAP]8+\xBCT\x90V[`\0` \x82\x84\x03\x12\x15a\x07\xB4W`\0\x80\xFD[\x815s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x07\xD8W`\0\x80\xFD[\x93\x92PPPV[\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[`\0` \x82\x84\x03\x12\x15a\x08 W`\0\x80\xFD[\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x088W`\0\x80\xFD[\x81\x84\x01\x91P\x84`\x1F\x83\x01\x12a\x08LW`\0\x80\xFD[\x815\x81\x81\x11\x15a\x08^Wa\x08^a\x07\xDFV[`@Q`\x1F\x82\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x90\x81\x16`?\x01\x16\x81\x01\x90\x83\x82\x11\x81\x83\x10\x17\x15a\x08\xA4Wa\x08\xA4a\x07\xDFV[\x81`@R\x82\x81R\x87` \x84\x87\x01\x01\x11\x15a\x08\xBDW`\0\x80\xFD[\x82` \x86\x01` \x83\x017`\0\x92\x81\x01` \x01\x92\x90\x92RP\x95\x94PPPPPV[`\0\x80`@\x83\x85\x03\x12\x15a\x08\xF0W`\0\x80\xFD[PP\x805\x92` \x90\x91\x015\x91PV[`\0\x81Q`\0[\x81\x81\x10\x15a\t W` \x81\x85\x01\x81\x01Q\x86\x83\x01R\x01a\t\x06V[\x81\x81\x11\x15a\t/W`\0\x82\x86\x01R[P\x92\x90\x92\x01\x92\x91PPV[`\0a\x07\xD8\x82\x84a\x08\xFFV[`\0` \x82\x84\x03\x12\x15a\tXW`\0\x80\xFD[PQ\x91\x90PV[\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x83\x16\x81R`\0a\t\x93`\r\x83\x01\x84a\x08\xFFV[\x94\x93PPPPV\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x60806040526004361061005e5760003560e01c8063893d20e811610043578063893d20e8146100b55780639b0b0fda146100f3578063aaf10f42146101135761006d565b806313af4035146100755780636c5d4ad0146100955761006d565b3661006d5761006b610128565b005b61006b610128565b34801561008157600080fd5b5061006b6100903660046107a2565b6103cb565b3480156100a157600080fd5b5061006b6100b036600461080e565b61045c565b3480156100c157600080fd5b506100ca610611565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b3480156100ff57600080fd5b5061006b61010e3660046108dd565b6106a8565b34801561011f57600080fd5b506100ca610716565b60006101527fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b60408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fb7947262000000000000000000000000000000000000000000000000000000001790529051919250600091829173ffffffffffffffffffffffffffffffffffffffff8516916101d4919061093a565b600060405180830381855afa9150503d806000811461020f576040519150601f19603f3d011682016040523d82523d6000602084013e610214565b606091505b5091509150818015610227575080516020145b156102d9576000818060200190518101906102429190610946565b905080156102d7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603560248201527f4c314368756753706c61736850726f78793a2073797374656d2069732063757260448201527f72656e746c79206265696e67207570677261646564000000000000000000000060648201526084015b60405180910390fd5b505b60006103037f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b905073ffffffffffffffffffffffffffffffffffffffff81166103a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f4c314368756753706c61736850726f78793a20696d706c656d656e746174696f60448201527f6e206973206e6f7420736574207965740000000000000000000000000000000060648201526084016102ce565b3660008037600080366000845af43d6000803e806103c5573d6000fd5b503d6000f35b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610424575033155b1561045457610451817fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610355565b50565b610451610128565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806104b5575033155b156104545760006104e47f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b9050803f82516020840120036104f8575050565b60405160009061052e907f600d380380600d6000396000f30000000000000000000000000000000000000090859060200161095f565b604051602081830303815290604052905060008151602083016000f084516020860120909150813f146105e3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4c314368756753706c61736850726f78793a20636f646520776173206e6f742060448201527f636f72726563746c79206465706c6f796564000000000000000000000000000060648201526084016102ce565b61060b817f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b50505050565b600061063b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610672575033155b1561069d57507fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b6106a5610128565b90565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610701575033155b1561070a579055565b610712610128565b5050565b60006107407fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610777575033155b1561069d57507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6000602082840312156107b457600080fd5b813573ffffffffffffffffffffffffffffffffffffffff811681146107d857600080fd5b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60006020828403121561082057600080fd5b813567ffffffffffffffff8082111561083857600080fd5b818401915084601f83011261084c57600080fd5b81358181111561085e5761085e6107df565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019083821181831017156108a4576108a46107df565b816040528281528760208487010111156108bd57600080fd5b826020860160208301376000928101602001929092525095945050505050565b600080604083850312156108f057600080fd5b50508035926020909101359150565b6000815160005b818110156109205760208185018101518683015201610906565b8181111561092f576000828601525b509290920192915050565b60006107d882846108ff565b60006020828403121561095857600080fd5b5051919050565b7fffffffffffffffffffffffffff00000000000000000000000000000000000000831681526000610993600d8301846108ff565b94935050505056fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R`\x046\x10a\0^W`\x005`\xE0\x1C\x80c\x89= \xE8\x11a\0CW\x80c\x89= \xE8\x14a\0\xB5W\x80c\x9B\x0B\x0F\xDA\x14a\0\xF3W\x80c\xAA\xF1\x0FB\x14a\x01\x13Wa\0mV[\x80c\x13\xAF@5\x14a\0uW\x80cl]J\xD0\x14a\0\x95Wa\0mV[6a\0mWa\0ka\x01(V[\0[a\0ka\x01(V[4\x80\x15a\0\x81W`\0\x80\xFD[Pa\0ka\0\x906`\x04a\x07\xA2V[a\x03\xCBV[4\x80\x15a\0\xA1W`\0\x80\xFD[Pa\0ka\0\xB06`\x04a\x08\x0EV[a\x04\\V[4\x80\x15a\0\xC1W`\0\x80\xFD[Pa\0\xCAa\x06\x11V[`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01`@Q\x80\x91\x03\x90\xF3[4\x80\x15a\0\xFFW`\0\x80\xFD[Pa\0ka\x01\x0E6`\x04a\x08\xDDV[a\x06\xA8V[4\x80\x15a\x01\x1FW`\0\x80\xFD[Pa\0\xCAa\x07\x16V[`\0a\x01R\x7F\xB51'hJV\x8B1s\xAE\x13\xB9\xF8\xA6\x01n$>c\xB6\xE8\xEE\x11x\xD6\xA7\x17\x85\x0B]a\x03T\x90V[`@\x80Q`\x04\x81R`$\x81\x01\x82R` \x81\x01\x80Q{\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xB7\x94rb\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\x17\x90R\x90Q\x91\x92P`\0\x91\x82\x91s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x85\x16\x91a\x01\xD4\x91\x90a\t:V[`\0`@Q\x80\x83\x03\x81\x85Z\xFA\x91PP=\x80`\0\x81\x14a\x02\x0FW`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=`\0` \x84\x01>a\x02\x14V[``\x91P[P\x91P\x91P\x81\x80\x15a\x02'WP\x80Q` \x14[\x15a\x02\xD9W`\0\x81\x80` \x01\x90Q\x81\x01\x90a\x02B\x91\x90a\tFV[\x90P\x80\x15a\x02\xD7W`@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\x82\x01R`5`$\x82\x01R\x7FL1ChugSplashProxy: system is cur`D\x82\x01R\x7Frently being upgraded\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01[`@Q\x80\x91\x03\x90\xFD[P[`\0a\x03\x03\x7F6\x08\x94\xA1;\xA1\xA3!\x06g\xC8(I-\xB9\x8D\xCA> v\xCC75\xA9 \xA3\xCAP]8+\xBCT\x90V[\x90Ps\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16a\x03\xA8W`@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\x82\x01R`0`$\x82\x01R\x7FL1ChugSplashProxy: implementatio`D\x82\x01R\x7Fn is not set yet\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x02\xCEV[6`\0\x807`\0\x806`\0\x84Z\xF4=`\0\x80>\x80a\x03\xC5W=`\0\xFD[P=`\0\xF3[\x7F\xB51'hJV\x8B1s\xAE\x13\xB9\xF8\xA6\x01n$>c\xB6\xE8\xEE\x11x\xD6\xA7\x17\x85\x0B]a\x03Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x163s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14\x80a\x04$WP3\x15[\x15a\x04TWa\x04Q\x81\x7F\xB51'hJV\x8B1s\xAE\x13\xB9\xF8\xA6\x01n$>c\xB6\xE8\xEE\x11x\xD6\xA7\x17\x85\x0B]a\x03UV[PV[a\x04Qa\x01(V[\x7F\xB51'hJV\x8B1s\xAE\x13\xB9\xF8\xA6\x01n$>c\xB6\xE8\xEE\x11x\xD6\xA7\x17\x85\x0B]a\x03Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x163s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14\x80a\x04\xB5WP3\x15[\x15a\x04TW`\0a\x04\xE4\x7F6\x08\x94\xA1;\xA1\xA3!\x06g\xC8(I-\xB9\x8D\xCA> v\xCC75\xA9 \xA3\xCAP]8+\xBCT\x90V[\x90P\x80?\x82Q` \x84\x01 \x03a\x04\xF8WPPV[`@Q`\0\x90a\x05.\x90\x7F`\r8\x03\x80`\r`\09`\0\xF3\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x85\x90` \x01a\t_V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x90P`\0\x81Q` \x83\x01`\0\xF0\x84Q` \x86\x01 \x90\x91P\x81?\x14a\x05\xE3W`@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\x82\x01R`2`$\x82\x01R\x7FL1ChugSplashProxy: code was not `D\x82\x01R\x7Fcorrectly deployed\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x02\xCEV[a\x06\x0B\x81\x7F6\x08\x94\xA1;\xA1\xA3!\x06g\xC8(I-\xB9\x8D\xCA> v\xCC75\xA9 \xA3\xCAP]8+\xBCUV[PPPPV[`\0a\x06;\x7F\xB51'hJV\x8B1s\xAE\x13\xB9\xF8\xA6\x01n$>c\xB6\xE8\xEE\x11x\xD6\xA7\x17\x85\x0B]a\x03T\x90V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x163s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14\x80a\x06rWP3\x15[\x15a\x06\x9DWP\x7F\xB51'hJV\x8B1s\xAE\x13\xB9\xF8\xA6\x01n$>c\xB6\xE8\xEE\x11x\xD6\xA7\x17\x85\x0B]a\x03T\x90V[a\x06\xA5a\x01(V[\x90V[\x7F\xB51'hJV\x8B1s\xAE\x13\xB9\xF8\xA6\x01n$>c\xB6\xE8\xEE\x11x\xD6\xA7\x17\x85\x0B]a\x03Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x163s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14\x80a\x07\x01WP3\x15[\x15a\x07\nW\x90UV[a\x07\x12a\x01(V[PPV[`\0a\x07@\x7F\xB51'hJV\x8B1s\xAE\x13\xB9\xF8\xA6\x01n$>c\xB6\xE8\xEE\x11x\xD6\xA7\x17\x85\x0B]a\x03T\x90V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x163s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14\x80a\x07wWP3\x15[\x15a\x06\x9DWP\x7F6\x08\x94\xA1;\xA1\xA3!\x06g\xC8(I-\xB9\x8D\xCA> v\xCC75\xA9 \xA3\xCAP]8+\xBCT\x90V[`\0` \x82\x84\x03\x12\x15a\x07\xB4W`\0\x80\xFD[\x815s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x07\xD8W`\0\x80\xFD[\x93\x92PPPV[\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[`\0` \x82\x84\x03\x12\x15a\x08 W`\0\x80\xFD[\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x088W`\0\x80\xFD[\x81\x84\x01\x91P\x84`\x1F\x83\x01\x12a\x08LW`\0\x80\xFD[\x815\x81\x81\x11\x15a\x08^Wa\x08^a\x07\xDFV[`@Q`\x1F\x82\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x90\x81\x16`?\x01\x16\x81\x01\x90\x83\x82\x11\x81\x83\x10\x17\x15a\x08\xA4Wa\x08\xA4a\x07\xDFV[\x81`@R\x82\x81R\x87` \x84\x87\x01\x01\x11\x15a\x08\xBDW`\0\x80\xFD[\x82` \x86\x01` \x83\x017`\0\x92\x81\x01` \x01\x92\x90\x92RP\x95\x94PPPPPV[`\0\x80`@\x83\x85\x03\x12\x15a\x08\xF0W`\0\x80\xFD[PP\x805\x92` \x90\x91\x015\x91PV[`\0\x81Q`\0[\x81\x81\x10\x15a\t W` \x81\x85\x01\x81\x01Q\x86\x83\x01R\x01a\t\x06V[\x81\x81\x11\x15a\t/W`\0\x82\x86\x01R[P\x92\x90\x92\x01\x92\x91PPV[`\0a\x07\xD8\x82\x84a\x08\xFFV[`\0` \x82\x84\x03\x12\x15a\tXW`\0\x80\xFD[PQ\x91\x90PV[\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x83\x16\x81R`\0a\t\x93`\r\x83\x01\x84a\x08\xFFV[\x94\x93PPPPV\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + /**Constructor`. +```solidity +constructor(address _owner); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct constructorCall { + #[allow(missing_docs)] + pub _owner: alloy::sol_types::private::Address, + } + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: constructorCall) -> Self { + (value._owner,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for constructorCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _owner: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolConstructor for constructorCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._owner, + ), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `getImplementation()` and selector `0xaaf10f42`. +```solidity +function getImplementation() external returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getImplementationCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`getImplementation()`](getImplementationCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getImplementationReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: getImplementationCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for getImplementationCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: getImplementationReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for getImplementationReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for getImplementationCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "getImplementation()"; + const SELECTOR: [u8; 4] = [170u8, 241u8, 15u8, 66u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: getImplementationReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: getImplementationReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `getOwner()` and selector `0x893d20e8`. +```solidity +function getOwner() external returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getOwnerCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`getOwner()`](getOwnerCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getOwnerReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: getOwnerCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for getOwnerCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: getOwnerReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for getOwnerReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for getOwnerCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "getOwner()"; + const SELECTOR: [u8; 4] = [137u8, 61u8, 32u8, 232u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: getOwnerReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: getOwnerReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `setCode(bytes)` and selector `0x6c5d4ad0`. +```solidity +function setCode(bytes memory _code) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setCodeCall { + #[allow(missing_docs)] + pub _code: alloy::sol_types::private::Bytes, + } + ///Container type for the return parameters of the [`setCode(bytes)`](setCodeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setCodeReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bytes,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Bytes,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: setCodeCall) -> Self { + (value._code,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for setCodeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _code: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: setCodeReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for setCodeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl setCodeReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for setCodeCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Bytes,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = setCodeReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "setCode(bytes)"; + const SELECTOR: [u8; 4] = [108u8, 93u8, 74u8, 208u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._code, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + setCodeReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `setOwner(address)` and selector `0x13af4035`. +```solidity +function setOwner(address _owner) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setOwnerCall { + #[allow(missing_docs)] + pub _owner: alloy::sol_types::private::Address, + } + ///Container type for the return parameters of the [`setOwner(address)`](setOwnerCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setOwnerReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: setOwnerCall) -> Self { + (value._owner,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for setOwnerCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _owner: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: setOwnerReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for setOwnerReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl setOwnerReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for setOwnerCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = setOwnerReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "setOwner(address)"; + const SELECTOR: [u8; 4] = [19u8, 175u8, 64u8, 53u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._owner, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + setOwnerReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `setStorage(bytes32,bytes32)` and selector `0x9b0b0fda`. +```solidity +function setStorage(bytes32 _key, bytes32 _value) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setStorageCall { + #[allow(missing_docs)] + pub _key: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub _value: alloy::sol_types::private::FixedBytes<32>, + } + ///Container type for the return parameters of the [`setStorage(bytes32,bytes32)`](setStorageCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setStorageReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::FixedBytes<32>, + alloy::sol_types::private::FixedBytes<32>, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: setStorageCall) -> Self { + (value._key, value._value) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for setStorageCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _key: tuple.0, + _value: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: setStorageReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for setStorageReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl setStorageReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for setStorageCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = setStorageReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "setStorage(bytes32,bytes32)"; + const SELECTOR: [u8; 4] = [155u8, 11u8, 15u8, 218u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._key), + as alloy_sol_types::SolType>::tokenize(&self._value), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + setStorageReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + ///Container for all the [`L1ChugSplashProxy`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum L1ChugSplashProxyCalls { + #[allow(missing_docs)] + getImplementation(getImplementationCall), + #[allow(missing_docs)] + getOwner(getOwnerCall), + #[allow(missing_docs)] + setCode(setCodeCall), + #[allow(missing_docs)] + setOwner(setOwnerCall), + #[allow(missing_docs)] + setStorage(setStorageCall), + } + impl L1ChugSplashProxyCalls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [19u8, 175u8, 64u8, 53u8], + [108u8, 93u8, 74u8, 208u8], + [137u8, 61u8, 32u8, 232u8], + [155u8, 11u8, 15u8, 218u8], + [170u8, 241u8, 15u8, 66u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(setOwner), + ::core::stringify!(setCode), + ::core::stringify!(getOwner), + ::core::stringify!(setStorage), + ::core::stringify!(getImplementation), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for L1ChugSplashProxyCalls { + const NAME: &'static str = "L1ChugSplashProxyCalls"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 5usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::getImplementation(_) => { + ::SELECTOR + } + Self::getOwner(_) => ::SELECTOR, + Self::setCode(_) => ::SELECTOR, + Self::setOwner(_) => ::SELECTOR, + Self::setStorage(_) => { + ::SELECTOR + } + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn setOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(L1ChugSplashProxyCalls::setOwner) + } + setOwner + }, + { + fn setCode( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(L1ChugSplashProxyCalls::setCode) + } + setCode + }, + { + fn getOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(L1ChugSplashProxyCalls::getOwner) + } + getOwner + }, + { + fn setStorage( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L1ChugSplashProxyCalls::setStorage) + } + setStorage + }, + { + fn getImplementation( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L1ChugSplashProxyCalls::getImplementation) + } + getImplementation + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn setOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1ChugSplashProxyCalls::setOwner) + } + setOwner + }, + { + fn setCode( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1ChugSplashProxyCalls::setCode) + } + setCode + }, + { + fn getOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1ChugSplashProxyCalls::getOwner) + } + getOwner + }, + { + fn setStorage( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1ChugSplashProxyCalls::setStorage) + } + setStorage + }, + { + fn getImplementation( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1ChugSplashProxyCalls::getImplementation) + } + getImplementation + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::getImplementation(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::getOwner(inner) => { + ::abi_encoded_size(inner) + } + Self::setCode(inner) => { + ::abi_encoded_size(inner) + } + Self::setOwner(inner) => { + ::abi_encoded_size(inner) + } + Self::setStorage(inner) => { + ::abi_encoded_size(inner) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::getImplementation(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::getOwner(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::setCode(inner) => { + ::abi_encode_raw(inner, out) + } + Self::setOwner(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::setStorage(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`L1ChugSplashProxy`](self) contract instance. + +See the [wrapper's documentation](`L1ChugSplashProxyInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> L1ChugSplashProxyInstance { + L1ChugSplashProxyInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + _owner: alloy::sol_types::private::Address, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + L1ChugSplashProxyInstance::::deploy(__provider, _owner) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + _owner: alloy::sol_types::private::Address, + ) -> alloy_contract::RawCallBuilder { + L1ChugSplashProxyInstance::::deploy_builder(__provider, _owner) + } + /**A [`L1ChugSplashProxy`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`L1ChugSplashProxy`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct L1ChugSplashProxyInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for L1ChugSplashProxyInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("L1ChugSplashProxyInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > L1ChugSplashProxyInstance { + /**Creates a new wrapper around an on-chain [`L1ChugSplashProxy`](self) contract instance. + +See the [wrapper's documentation](`L1ChugSplashProxyInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + _owner: alloy::sol_types::private::Address, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider, _owner); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder( + __provider: P, + _owner: alloy::sol_types::private::Address, + ) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + [ + &BYTECODE[..], + &alloy_sol_types::SolConstructor::abi_encode( + &constructorCall { _owner }, + )[..], + ] + .concat() + .into(), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl L1ChugSplashProxyInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> L1ChugSplashProxyInstance { + L1ChugSplashProxyInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > L1ChugSplashProxyInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`getImplementation`] function. + pub fn getImplementation( + &self, + ) -> alloy_contract::SolCallBuilder<&P, getImplementationCall, N> { + self.call_builder(&getImplementationCall) + } + ///Creates a new call builder for the [`getOwner`] function. + pub fn getOwner(&self) -> alloy_contract::SolCallBuilder<&P, getOwnerCall, N> { + self.call_builder(&getOwnerCall) + } + ///Creates a new call builder for the [`setCode`] function. + pub fn setCode( + &self, + _code: alloy::sol_types::private::Bytes, + ) -> alloy_contract::SolCallBuilder<&P, setCodeCall, N> { + self.call_builder(&setCodeCall { _code }) + } + ///Creates a new call builder for the [`setOwner`] function. + pub fn setOwner( + &self, + _owner: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, setOwnerCall, N> { + self.call_builder(&setOwnerCall { _owner }) + } + ///Creates a new call builder for the [`setStorage`] function. + pub fn setStorage( + &self, + _key: alloy::sol_types::private::FixedBytes<32>, + _value: alloy::sol_types::private::FixedBytes<32>, + ) -> alloy_contract::SolCallBuilder<&P, setStorageCall, N> { + self.call_builder(&setStorageCall { _key, _value }) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > L1ChugSplashProxyInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + } +} diff --git a/bindings/rust/src/l1_cross_domain_messenger.rs b/bindings/rust/src/l1_cross_domain_messenger.rs new file mode 100644 index 000000000..f4901b065 --- /dev/null +++ b/bindings/rust/src/l1_cross_domain_messenger.rs @@ -0,0 +1,8726 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface L1CrossDomainMessenger { + error ProxyAdminOwnedBase_NotProxyAdmin(); + error ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner(); + error ProxyAdminOwnedBase_NotProxyAdminOwner(); + error ProxyAdminOwnedBase_NotResolvedDelegateProxy(); + error ProxyAdminOwnedBase_NotSharedProxyAdminOwner(); + error ProxyAdminOwnedBase_ProxyAdminNotFound(); + error ReinitializableBase_ZeroInitVersion(); + + event FailedRelayedMessage(bytes32 indexed msgHash); + event Initialized(uint8 version); + event RelayedMessage(bytes32 indexed msgHash); + event SentMessage(address indexed target, address sender, bytes message, uint256 messageNonce, uint256 gasLimit); + event SentMessageExtension1(address indexed sender, uint256 value); + + constructor(); + + function ENCODING_OVERHEAD() external view returns (uint64); + function FLOOR_CALLDATA_OVERHEAD() external view returns (uint64); + function MESSAGE_VERSION() external view returns (uint16); + function MIN_GAS_CALLDATA_OVERHEAD() external view returns (uint64); + function MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR() external view returns (uint64); + function MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR() external view returns (uint64); + function OTHER_MESSENGER() external view returns (address); + function PORTAL() external view returns (address); + function RELAY_CALL_OVERHEAD() external view returns (uint64); + function RELAY_CONSTANT_OVERHEAD() external view returns (uint64); + function RELAY_GAS_CHECK_BUFFER() external view returns (uint64); + function RELAY_RESERVED_GAS() external view returns (uint64); + function TX_BASE_GAS() external view returns (uint64); + function baseGas(bytes memory _message, uint32 _minGasLimit) external pure returns (uint64); + function failedMessages(bytes32) external view returns (bool); + function initVersion() external view returns (uint8); + function initialize(address _systemConfig, address _portal) external; + function messageNonce() external view returns (uint256); + function otherMessenger() external view returns (address); + function paused() external view returns (bool); + function portal() external view returns (address); + function proxyAdmin() external view returns (address); + function proxyAdminOwner() external view returns (address); + function relayMessage(uint256 _nonce, address _sender, address _target, uint256 _value, uint256 _minGasLimit, bytes memory _message) external payable; + function sendMessage(address _target, bytes memory _message, uint32 _minGasLimit) external payable; + function successfulMessages(bytes32) external view returns (bool); + function superchainConfig() external view returns (address); + function systemConfig() external view returns (address); + function version() external view returns (string memory); + function xDomainMessageSender() external view returns (address); +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "constructor", + "inputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "ENCODING_OVERHEAD", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint64", + "internalType": "uint64" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "FLOOR_CALLDATA_OVERHEAD", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint64", + "internalType": "uint64" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "MESSAGE_VERSION", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint16", + "internalType": "uint16" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "MIN_GAS_CALLDATA_OVERHEAD", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint64", + "internalType": "uint64" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint64", + "internalType": "uint64" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint64", + "internalType": "uint64" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "OTHER_MESSENGER", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract CrossDomainMessenger" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "PORTAL", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract IOptimismPortal2" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "RELAY_CALL_OVERHEAD", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint64", + "internalType": "uint64" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "RELAY_CONSTANT_OVERHEAD", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint64", + "internalType": "uint64" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "RELAY_GAS_CHECK_BUFFER", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint64", + "internalType": "uint64" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "RELAY_RESERVED_GAS", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint64", + "internalType": "uint64" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "TX_BASE_GAS", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint64", + "internalType": "uint64" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "baseGas", + "inputs": [ + { + "name": "_message", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "_minGasLimit", + "type": "uint32", + "internalType": "uint32" + } + ], + "outputs": [ + { + "name": "", + "type": "uint64", + "internalType": "uint64" + } + ], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "failedMessages", + "inputs": [ + { + "name": "", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "initVersion", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint8", + "internalType": "uint8" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "initialize", + "inputs": [ + { + "name": "_systemConfig", + "type": "address", + "internalType": "contract ISystemConfig" + }, + { + "name": "_portal", + "type": "address", + "internalType": "contract IOptimismPortal2" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "messageNonce", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "otherMessenger", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract CrossDomainMessenger" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "paused", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "portal", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract IOptimismPortal2" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "proxyAdmin", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract IProxyAdmin" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "proxyAdminOwner", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "relayMessage", + "inputs": [ + { + "name": "_nonce", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_sender", + "type": "address", + "internalType": "address" + }, + { + "name": "_target", + "type": "address", + "internalType": "address" + }, + { + "name": "_value", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_minGasLimit", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_message", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "sendMessage", + "inputs": [ + { + "name": "_target", + "type": "address", + "internalType": "address" + }, + { + "name": "_message", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "_minGasLimit", + "type": "uint32", + "internalType": "uint32" + } + ], + "outputs": [], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "successfulMessages", + "inputs": [ + { + "name": "", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "superchainConfig", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract ISuperchainConfig" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "systemConfig", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract ISystemConfig" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "version", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "xDomainMessageSender", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "event", + "name": "FailedRelayedMessage", + "inputs": [ + { + "name": "msgHash", + "type": "bytes32", + "indexed": true, + "internalType": "bytes32" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "Initialized", + "inputs": [ + { + "name": "version", + "type": "uint8", + "indexed": false, + "internalType": "uint8" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "RelayedMessage", + "inputs": [ + { + "name": "msgHash", + "type": "bytes32", + "indexed": true, + "internalType": "bytes32" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "SentMessage", + "inputs": [ + { + "name": "target", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "sender", + "type": "address", + "indexed": false, + "internalType": "address" + }, + { + "name": "message", + "type": "bytes", + "indexed": false, + "internalType": "bytes" + }, + { + "name": "messageNonce", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + }, + { + "name": "gasLimit", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "SentMessageExtension1", + "inputs": [ + { + "name": "sender", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "value", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "error", + "name": "ProxyAdminOwnedBase_NotProxyAdmin", + "inputs": [] + }, + { + "type": "error", + "name": "ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner", + "inputs": [] + }, + { + "type": "error", + "name": "ProxyAdminOwnedBase_NotProxyAdminOwner", + "inputs": [] + }, + { + "type": "error", + "name": "ProxyAdminOwnedBase_NotResolvedDelegateProxy", + "inputs": [] + }, + { + "type": "error", + "name": "ProxyAdminOwnedBase_NotSharedProxyAdminOwner", + "inputs": [] + }, + { + "type": "error", + "name": "ProxyAdminOwnedBase_ProxyAdminNotFound", + "inputs": [] + }, + { + "type": "error", + "name": "ReinitializableBase_ZeroInitVersion", + "inputs": [] + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod L1CrossDomainMessenger { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x60a06040523480156200001157600080fd5b5060036080526200002162000027565b620000f6565b600054600160a81b900460ff1615620000965760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff600160a01b90910481161015620000f4576000805460ff60a01b191660ff60a01b17905560405160ff81527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b60805161258e62000119600039600081816102e70152610b4c015261258e6000f3fe6080604052600436106101cd5760003560e01c80635c975abb116100f7578063b1b1b20911610095578063db505d8011610064578063db505d8014610556578063ddd5a40f14610583578063e46e245a14610599578063ecc70428146105ae57600080fd5b8063b1b1b209146104de578063b28ade251461050e578063d764ad0b1461052e578063dad544e01461054157600080fd5b806383a74074116100d157806383a740741461046c5780638cbeeef2146103835780639fce812c14610483578063a4e7f8bd146104ae57600080fd5b80635c975abb146104055780636425666b1461042a5780636e296e451461045757600080fd5b806338d38c971161016f578063485cc9551161013e578063485cc955146103635780634c1d6a691461038357806354fd4d50146103995780635644cfdf146103ef57600080fd5b806338d38c97146102d35780633dbb202b146103115780633e47158c146103265780633f827a5a1461033b57600080fd5b80632828d7e8116101ab5780632828d7e8146102665780632f7d39221461027b57806333d7e2bd1461029157806335e80ab3146102be57600080fd5b8063028f85f7146101d25780630c568498146102055780630ff754ea1461021a575b600080fd5b3480156101de57600080fd5b506101e7601081565b60405167ffffffffffffffff90911681526020015b60405180910390f35b34801561021157600080fd5b506101e7603f81565b34801561022657600080fd5b5060fc5473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101fc565b34801561027257600080fd5b506101e7604081565b34801561028757600080fd5b506101e761520881565b34801561029d57600080fd5b5060fe546102419073ffffffffffffffffffffffffffffffffffffffff1681565b3480156102ca57600080fd5b50610241610613565b3480156102df57600080fd5b5060405160ff7f00000000000000000000000000000000000000000000000000000000000000001681526020016101fc565b61032461031f366004611f13565b6106ac565b005b34801561033257600080fd5b5061024161093f565b34801561034757600080fd5b50610350600181565b60405161ffff90911681526020016101fc565b34801561036f57600080fd5b5061032461037e366004611f7a565b610b4a565b34801561038f57600080fd5b506101e7619c4081565b3480156103a557600080fd5b506103e26040518060400160405280600681526020017f322e31312e30000000000000000000000000000000000000000000000000000081525081565b6040516101fc919061201e565b3480156103fb57600080fd5b506101e761138881565b34801561041157600080fd5b5061041a610da4565b60405190151581526020016101fc565b34801561043657600080fd5b5060fc546102419073ffffffffffffffffffffffffffffffffffffffff1681565b34801561046357600080fd5b50610241610e38565b34801561047857600080fd5b506101e762030d4081565b34801561048f57600080fd5b5060cf5473ffffffffffffffffffffffffffffffffffffffff16610241565b3480156104ba57600080fd5b5061041a6104c9366004612031565b60ce6020526000908152604090205460ff1681565b3480156104ea57600080fd5b5061041a6104f9366004612031565b60cb6020526000908152604090205460ff1681565b34801561051a57600080fd5b506101e7610529366004612079565b610f1f565b61032461053c366004612159565b610fe0565b34801561054d57600080fd5b506102416118f5565b34801561056257600080fd5b5060cf546102419073ffffffffffffffffffffffffffffffffffffffff1681565b34801561058f57600080fd5b506101e761010481565b3480156105a557600080fd5b506101e7602881565b3480156105ba57600080fd5b5061060560cd547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167e010000000000000000000000000000000000000000000000000000000000001790565b6040519081526020016101fc565b60fe54604080517f35e80ab3000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff16916335e80ab39160048083019260209291908290030181865afa158015610683573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106a791906121df565b905090565b60cf54604080516020601f86018190048102820181019092528481526108149273ffffffffffffffffffffffffffffffffffffffff169161070a91908790879081908401838280828437600092019190915250879250610f1f915050565b347fd764ad0b0000000000000000000000000000000000000000000000000000000061077660cd547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167e010000000000000000000000000000000000000000000000000000000000001790565b338a34898c8c6040516024016107929796959493929190612245565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152611949565b8373ffffffffffffffffffffffffffffffffffffffff167fcb0f7ffd78f9aee47a248fae8db181db6eee833039123e026dcbff529522e52a33858561089960cd547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167e010000000000000000000000000000000000000000000000000000000000001790565b866040516108ab9594939291906122a4565b60405180910390a260405134815233907f8ebb2ec2465bdb2a06a66fc37a0963af8a2a6a1479d81d56fdb8cbb98096d5469060200160405180910390a2505060cd80547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff808216600101167fffff0000000000000000000000000000000000000000000000000000000000009091161790555050565b60008061096a7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b905073ffffffffffffffffffffffffffffffffffffffff81161561098d57919050565b6040518060400160405280601a81526020017f4f564d5f4c3143726f7373446f6d61696e4d657373656e6765720000000000008152505160026109d09190612321565b604080513060208201526000918101919091527f4f564d5f4c3143726f7373446f6d61696e4d657373656e6765720000000000009190911790610a2b906060015b604051602081830303815290604052805190602001205490565b14610a62576040517f54e433cd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60408051306020820152600191810191909152600090610a8490606001610a11565b905073ffffffffffffffffffffffffffffffffffffffff811615610b18578073ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610aed573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b1191906121df565b9250505090565b6040517f332144db00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006000547501000000000000000000000000000000000000000000900460ff16158015610bb6575060005460ff8083167401000000000000000000000000000000000000000090920416105b610c47576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084015b60405180910390fd5b600080547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff60ff84167401000000000000000000000000000000000000000002167fffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffff909116177501000000000000000000000000000000000000000000179055610ccf6119e2565b60fe805473ffffffffffffffffffffffffffffffffffffffff8086167fffffffffffffffffffffffff00000000000000000000000000000000000000009283161790925560fc805492851692909116919091179055610d41734200000000000000000000000000000000000007611a65565b600080547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff16905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050565b60fe54604080517f5c975abb000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff1691635c975abb9160048083019260209291908290030181865afa158015610e14573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106a7919061235e565b60cc5460009073ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff215301610f02576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603560248201527f43726f7373446f6d61696e4d657373656e6765723a2078446f6d61696e4d657360448201527f7361676553656e646572206973206e6f742073657400000000000000000000006064820152608401610c3e565b5060cc5473ffffffffffffffffffffffffffffffffffffffff1690565b600080603f610f35604063ffffffff8616612380565b610f3f91906123b0565b611388619c40610f528162030d406123fe565b610f5c91906123fe565b610f6691906123fe565b610f7091906123fe565b9050600061010467ffffffffffffffff168551610f8d919061242a565b9050610fcb610f9d601083612380565b610fa790846123fe565b67ffffffffffffffff16610fbc602884612380565b67ffffffffffffffff16611ba1565b610fd7906152086123fe565b95945050505050565b610fe8610da4565b1561104f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f43726f7373446f6d61696e4d657373656e6765723a20706175736564000000006044820152606401610c3e565b60f087901c6002811061110a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604d60248201527f43726f7373446f6d61696e4d657373656e6765723a206f6e6c7920766572736960448201527f6f6e2030206f722031206d657373616765732061726520737570706f7274656460648201527f20617420746869732074696d6500000000000000000000000000000000000000608482015260a401610c3e565b8061ffff166000036111ff57600061115b878986868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508f9250611bba915050565b600081815260cb602052604090205490915060ff16156111fd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f43726f7373446f6d61696e4d657373656e6765723a206c65676163792077697460448201527f6864726177616c20616c72656164792072656c617965640000000000000000006064820152608401610c3e565b505b6000611245898989898989898080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611bd992505050565b905061124f611bfc565b156112875785341461126357611263612442565b600081815260ce602052604090205460ff161561128257611282612442565b6113d9565b341561133b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152605060248201527f43726f7373446f6d61696e4d657373656e6765723a2076616c7565206d75737460448201527f206265207a65726f20756e6c657373206d6573736167652069732066726f6d2060648201527f612073797374656d206164647265737300000000000000000000000000000000608482015260a401610c3e565b600081815260ce602052604090205460ff166113d9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f43726f7373446f6d61696e4d657373656e6765723a206d65737361676520636160448201527f6e6e6f74206265207265706c61796564000000000000000000000000000000006064820152608401610c3e565b6113e287611cd8565b15611495576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604360248201527f43726f7373446f6d61696e4d657373656e6765723a2063616e6e6f742073656e60448201527f64206d65737361676520746f20626c6f636b65642073797374656d206164647260648201527f6573730000000000000000000000000000000000000000000000000000000000608482015260a401610c3e565b600081815260cb602052604090205460ff1615611534576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f43726f7373446f6d61696e4d657373656e6765723a206d65737361676520686160448201527f7320616c7265616479206265656e2072656c61796564000000000000000000006064820152608401610c3e565b61155585611546611388619c406123fe565b67ffffffffffffffff16611d1e565b158061157b575060cc5473ffffffffffffffffffffffffffffffffffffffff1661dead14155b1561169457600081815260ce602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555182917f99d0e048484baa1b1540b1367cb128acd7ab2946d1ed91ec10e3c85e4bf51b8f91a27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff320161168d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f43726f7373446f6d61696e4d657373656e6765723a206661696c656420746f2060448201527f72656c6179206d657373616765000000000000000000000000000000000000006064820152608401610c3e565b50506118ec565b60cc80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8a16179055600061172588619c405a6116e89190612471565b8988888080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611d3c92505050565b60cc80547fffffffffffffffffffffffff00000000000000000000000000000000000000001661dead179055905080156117db57600082815260cb602052604090205460ff161561177857611778612442565b600082815260cb602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555183917f4641df4a962071e12719d8c8c8e5ac7fc4d97b927346a3d7a335b1f7517e133c91a26118e8565b600082815260ce602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555183917f99d0e048484baa1b1540b1367cb128acd7ab2946d1ed91ec10e3c85e4bf51b8f91a27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff32016118e8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f43726f7373446f6d61696e4d657373656e6765723a206661696c656420746f2060448201527f72656c6179206d657373616765000000000000000000000000000000000000006064820152608401610c3e565b5050505b50505050505050565b60006118ff61093f565b73ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610683573d6000803e3d6000fd5b60fc546040517fe9e05c4200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063e9e05c429084906119aa908890839089906000908990600401612488565b6000604051808303818588803b1580156119c357600080fd5b505af11580156119d7573d6000803e3d6000fd5b505050505050505050565b336119eb61093f565b73ffffffffffffffffffffffffffffffffffffffff1614158015611a2c575033611a136118f5565b73ffffffffffffffffffffffffffffffffffffffff1614155b15611a63576040517fc4050a2600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b6000547501000000000000000000000000000000000000000000900460ff16611b10576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610c3e565b60cc5473ffffffffffffffffffffffffffffffffffffffff16611b5a5760cc80547fffffffffffffffffffffffff00000000000000000000000000000000000000001661dead1790555b60cf80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b600081831015611bb15781611bb3565b825b9392505050565b6000611bc885858585611d54565b805190602001209050949350505050565b6000611be9878787878787611ded565b8051906020012090509695505050505050565b60fc5460009073ffffffffffffffffffffffffffffffffffffffff16331480156106a7575060cf5460fc54604080517f9bf62d82000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff9384169390921691639bf62d82916004808201926020929091908290030181865afa158015611c98573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cbc91906121df565b73ffffffffffffffffffffffffffffffffffffffff1614905090565b600073ffffffffffffffffffffffffffffffffffffffff8216301480611d18575060fc5473ffffffffffffffffffffffffffffffffffffffff8381169116145b92915050565b600080603f83619c4001026040850201603f5a021015949350505050565b6000806000835160208501868989f195945050505050565b606084848484604051602401611d6d94939291906124e0565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fcbd4ece9000000000000000000000000000000000000000000000000000000001790529050949350505050565b6060868686868686604051602401611e0a9695949392919061252a565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fd764ad0b0000000000000000000000000000000000000000000000000000000017905290509695505050505050565b73ffffffffffffffffffffffffffffffffffffffff81168114611eae57600080fd5b50565b60008083601f840112611ec357600080fd5b50813567ffffffffffffffff811115611edb57600080fd5b602083019150836020828501011115611ef357600080fd5b9250929050565b803563ffffffff81168114611f0e57600080fd5b919050565b60008060008060608587031215611f2957600080fd5b8435611f3481611e8c565b9350602085013567ffffffffffffffff811115611f5057600080fd5b611f5c87828801611eb1565b9094509250611f6f905060408601611efa565b905092959194509250565b60008060408385031215611f8d57600080fd5b8235611f9881611e8c565b91506020830135611fa881611e8c565b809150509250929050565b6000815180845260005b81811015611fd957602081850181015186830182015201611fbd565b81811115611feb576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000611bb36020830184611fb3565b60006020828403121561204357600080fd5b5035919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000806040838503121561208c57600080fd5b823567ffffffffffffffff808211156120a457600080fd5b818501915085601f8301126120b857600080fd5b8135818111156120ca576120ca61204a565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019083821181831017156121105761211061204a565b8160405282815288602084870101111561212957600080fd5b82602086016020830137600060208483010152809650505050505061215060208401611efa565b90509250929050565b600080600080600080600060c0888a03121561217457600080fd5b87359650602088013561218681611e8c565b9550604088013561219681611e8c565b9450606088013593506080880135925060a088013567ffffffffffffffff8111156121c057600080fd5b6121cc8a828b01611eb1565b989b979a50959850939692959293505050565b6000602082840312156121f157600080fd5b8151611bb381611e8c565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b878152600073ffffffffffffffffffffffffffffffffffffffff808916602084015280881660408401525085606083015263ffffffff8516608083015260c060a083015261229760c0830184866121fc565b9998505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff861681526080602082015260006122d46080830186886121fc565b905083604083015263ffffffff831660608301529695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612359576123596122f2565b500290565b60006020828403121561237057600080fd5b81518015158114611bb357600080fd5b600067ffffffffffffffff808316818516818304811182151516156123a7576123a76122f2565b02949350505050565b600067ffffffffffffffff808416806123f2577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b92169190910492915050565b600067ffffffffffffffff808316818516808303821115612421576124216122f2565b01949350505050565b6000821982111561243d5761243d6122f2565b500190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b600082821015612483576124836122f2565b500390565b73ffffffffffffffffffffffffffffffffffffffff8616815284602082015267ffffffffffffffff84166040820152821515606082015260a0608082015260006124d560a0830184611fb3565b979650505050505050565b600073ffffffffffffffffffffffffffffffffffffffff8087168352808616602084015250608060408301526125196080830185611fb3565b905082606083015295945050505050565b868152600073ffffffffffffffffffffffffffffffffffffffff808816602084015280871660408401525084606083015283608083015260c060a083015261257560c0830184611fb3565b9897505050505050505056fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\xA0`@R4\x80\x15b\0\0\x11W`\0\x80\xFD[P`\x03`\x80Rb\0\0!b\0\0'V[b\0\0\xF6V[`\0T`\x01`\xA8\x1B\x90\x04`\xFF\x16\x15b\0\0\x96W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`'`$\x82\x01R\x7FInitializable: contract is initi`D\x82\x01Rfalizing`\xC8\x1B`d\x82\x01R`\x84\x01`@Q\x80\x91\x03\x90\xFD[`\0T`\xFF`\x01`\xA0\x1B\x90\x91\x04\x81\x16\x10\x15b\0\0\xF4W`\0\x80T`\xFF`\xA0\x1B\x19\x16`\xFF`\xA0\x1B\x17\x90U`@Q`\xFF\x81R\x7F\x7F&\xB8?\xF9n\x1F+jh/\x138R\xF6y\x8A\t\xC4e\xDA\x95\x92\x14`\xCE\xFB8G@$\x98\x90` \x01`@Q\x80\x91\x03\x90\xA1[V[`\x80Qa%\x8Eb\0\x01\x19`\09`\0\x81\x81a\x02\xE7\x01Ra\x0BL\x01Ra%\x8E`\0\xF3\xFE`\x80`@R`\x046\x10a\x01\xCDW`\x005`\xE0\x1C\x80c\\\x97Z\xBB\x11a\0\xF7W\x80c\xB1\xB1\xB2\t\x11a\0\x95W\x80c\xDBP]\x80\x11a\0dW\x80c\xDBP]\x80\x14a\x05VW\x80c\xDD\xD5\xA4\x0F\x14a\x05\x83W\x80c\xE4n$Z\x14a\x05\x99W\x80c\xEC\xC7\x04(\x14a\x05\xAEW`\0\x80\xFD[\x80c\xB1\xB1\xB2\t\x14a\x04\xDEW\x80c\xB2\x8A\xDE%\x14a\x05\x0EW\x80c\xD7d\xAD\x0B\x14a\x05.W\x80c\xDA\xD5D\xE0\x14a\x05AW`\0\x80\xFD[\x80c\x83\xA7@t\x11a\0\xD1W\x80c\x83\xA7@t\x14a\x04lW\x80c\x8C\xBE\xEE\xF2\x14a\x03\x83W\x80c\x9F\xCE\x81,\x14a\x04\x83W\x80c\xA4\xE7\xF8\xBD\x14a\x04\xAEW`\0\x80\xFD[\x80c\\\x97Z\xBB\x14a\x04\x05W\x80cd%fk\x14a\x04*W\x80cn)nE\x14a\x04WW`\0\x80\xFD[\x80c8\xD3\x8C\x97\x11a\x01oW\x80cH\\\xC9U\x11a\x01>W\x80cH\\\xC9U\x14a\x03cW\x80cL\x1Dji\x14a\x03\x83W\x80cT\xFDMP\x14a\x03\x99W\x80cVD\xCF\xDF\x14a\x03\xEFW`\0\x80\xFD[\x80c8\xD3\x8C\x97\x14a\x02\xD3W\x80c=\xBB +\x14a\x03\x11W\x80c>G\x15\x8C\x14a\x03&W\x80c?\x82zZ\x14a\x03;W`\0\x80\xFD[\x80c((\xD7\xE8\x11a\x01\xABW\x80c((\xD7\xE8\x14a\x02fW\x80c/}9\"\x14a\x02{W\x80c3\xD7\xE2\xBD\x14a\x02\x91W\x80c5\xE8\n\xB3\x14a\x02\xBEW`\0\x80\xFD[\x80c\x02\x8F\x85\xF7\x14a\x01\xD2W\x80c\x0CV\x84\x98\x14a\x02\x05W\x80c\x0F\xF7T\xEA\x14a\x02\x1AW[`\0\x80\xFD[4\x80\x15a\x01\xDEW`\0\x80\xFD[Pa\x01\xE7`\x10\x81V[`@Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[4\x80\x15a\x02\x11W`\0\x80\xFD[Pa\x01\xE7`?\x81V[4\x80\x15a\x02&W`\0\x80\xFD[P`\xFCTs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16[`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01a\x01\xFCV[4\x80\x15a\x02rW`\0\x80\xFD[Pa\x01\xE7`@\x81V[4\x80\x15a\x02\x87W`\0\x80\xFD[Pa\x01\xE7aR\x08\x81V[4\x80\x15a\x02\x9DW`\0\x80\xFD[P`\xFETa\x02A\x90s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[4\x80\x15a\x02\xCAW`\0\x80\xFD[Pa\x02Aa\x06\x13V[4\x80\x15a\x02\xDFW`\0\x80\xFD[P`@Q`\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x81R` \x01a\x01\xFCV[a\x03$a\x03\x1F6`\x04a\x1F\x13V[a\x06\xACV[\0[4\x80\x15a\x032W`\0\x80\xFD[Pa\x02Aa\t?V[4\x80\x15a\x03GW`\0\x80\xFD[Pa\x03P`\x01\x81V[`@Qa\xFF\xFF\x90\x91\x16\x81R` \x01a\x01\xFCV[4\x80\x15a\x03oW`\0\x80\xFD[Pa\x03$a\x03~6`\x04a\x1FzV[a\x0BJV[4\x80\x15a\x03\x8FW`\0\x80\xFD[Pa\x01\xE7a\x9C@\x81V[4\x80\x15a\x03\xA5W`\0\x80\xFD[Pa\x03\xE2`@Q\x80`@\x01`@R\x80`\x06\x81R` \x01\x7F2.11.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\x81RP\x81V[`@Qa\x01\xFC\x91\x90a \x1EV[4\x80\x15a\x03\xFBW`\0\x80\xFD[Pa\x01\xE7a\x13\x88\x81V[4\x80\x15a\x04\x11W`\0\x80\xFD[Pa\x04\x1Aa\r\xA4V[`@Q\x90\x15\x15\x81R` \x01a\x01\xFCV[4\x80\x15a\x046W`\0\x80\xFD[P`\xFCTa\x02A\x90s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[4\x80\x15a\x04cW`\0\x80\xFD[Pa\x02Aa\x0E8V[4\x80\x15a\x04xW`\0\x80\xFD[Pa\x01\xE7b\x03\r@\x81V[4\x80\x15a\x04\x8FW`\0\x80\xFD[P`\xCFTs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a\x02AV[4\x80\x15a\x04\xBAW`\0\x80\xFD[Pa\x04\x1Aa\x04\xC96`\x04a 1V[`\xCE` R`\0\x90\x81R`@\x90 T`\xFF\x16\x81V[4\x80\x15a\x04\xEAW`\0\x80\xFD[Pa\x04\x1Aa\x04\xF96`\x04a 1V[`\xCB` R`\0\x90\x81R`@\x90 T`\xFF\x16\x81V[4\x80\x15a\x05\x1AW`\0\x80\xFD[Pa\x01\xE7a\x05)6`\x04a yV[a\x0F\x1FV[a\x03$a\x05<6`\x04a!YV[a\x0F\xE0V[4\x80\x15a\x05MW`\0\x80\xFD[Pa\x02Aa\x18\xF5V[4\x80\x15a\x05bW`\0\x80\xFD[P`\xCFTa\x02A\x90s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[4\x80\x15a\x05\x8FW`\0\x80\xFD[Pa\x01\xE7a\x01\x04\x81V[4\x80\x15a\x05\xA5W`\0\x80\xFD[Pa\x01\xE7`(\x81V[4\x80\x15a\x05\xBAW`\0\x80\xFD[Pa\x06\x05`\xCDT}\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16~\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x17\x90V[`@Q\x90\x81R` \x01a\x01\xFCV[`\xFET`@\x80Q\x7F5\xE8\n\xB3\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\x90Q`\0\x92s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x91c5\xE8\n\xB3\x91`\x04\x80\x83\x01\x92` \x92\x91\x90\x82\x90\x03\x01\x81\x86Z\xFA\x15\x80\x15a\x06\x83W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x06\xA7\x91\x90a!\xDFV[\x90P\x90V[`\xCFT`@\x80Q` `\x1F\x86\x01\x81\x90\x04\x81\x02\x82\x01\x81\x01\x90\x92R\x84\x81Ra\x08\x14\x92s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x91a\x07\n\x91\x90\x87\x90\x87\x90\x81\x90\x84\x01\x83\x82\x80\x82\x847`\0\x92\x01\x91\x90\x91RP\x87\x92Pa\x0F\x1F\x91PPV[4\x7F\xD7d\xAD\x0B\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\0a\x07v`\xCDT}\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16~\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x17\x90V[3\x8A4\x89\x8C\x8C`@Q`$\x01a\x07\x92\x97\x96\x95\x94\x93\x92\x91\x90a\"EV[`@\x80Q\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x81\x84\x03\x01\x81R\x91\x90R` \x81\x01\x80Q{\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xFF\xFF\xFF\xFF\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\x90\x93\x16\x92\x90\x92\x17\x90\x91Ra\x19IV[\x83s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xCB\x0F\x7F\xFDx\xF9\xAE\xE4z$\x8F\xAE\x8D\xB1\x81\xDBn\xEE\x8309\x12>\x02m\xCB\xFFR\x95\"\xE5*3\x85\x85a\x08\x99`\xCDT}\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16~\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x17\x90V[\x86`@Qa\x08\xAB\x95\x94\x93\x92\x91\x90a\"\xA4V[`@Q\x80\x91\x03\x90\xA2`@Q4\x81R3\x90\x7F\x8E\xBB.\xC2F[\xDB*\x06\xA6o\xC3z\tc\xAF\x8A*j\x14y\xD8\x1DV\xFD\xB8\xCB\xB9\x80\x96\xD5F\x90` \x01`@Q\x80\x91\x03\x90\xA2PP`\xCD\x80T}\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x16`\x01\x01\x16\x7F\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x91\x16\x17\x90UPPV[`\0\x80a\tj\x7F\xB51'hJV\x8B1s\xAE\x13\xB9\xF8\xA6\x01n$>c\xB6\xE8\xEE\x11x\xD6\xA7\x17\x85\x0B]a\x03T\x90V[\x90Ps\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x15a\t\x8DW\x91\x90PV[`@Q\x80`@\x01`@R\x80`\x1A\x81R` \x01\x7FOVM_L1CrossDomainMessenger\0\0\0\0\0\0\x81RPQ`\x02a\t\xD0\x91\x90a#!V[`@\x80Q0` \x82\x01R`\0\x91\x81\x01\x91\x90\x91R\x7FOVM_L1CrossDomainMessenger\0\0\0\0\0\0\x91\x90\x91\x17\x90a\n+\x90``\x01[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 T\x90V[\x14a\nbW`@Q\x7FT\xE43\xCD\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\x01`@Q\x80\x91\x03\x90\xFD[`@\x80Q0` \x82\x01R`\x01\x91\x81\x01\x91\x90\x91R`\0\x90a\n\x84\x90``\x01a\n\x11V[\x90Ps\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x15a\x0B\x18W\x80s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\x8D\xA5\xCB[`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\n\xEDW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x0B\x11\x91\x90a!\xDFV[\x92PPP\x90V[`@Q\x7F3!D\xDB\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\x01`@Q\x80\x91\x03\x90\xFD[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\0Tu\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16\x15\x80\x15a\x0B\xB6WP`\0T`\xFF\x80\x83\x16t\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x92\x04\x16\x10[a\x0CGW`@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\x82\x01R`.`$\x82\x01R\x7FInitializable: contract is alrea`D\x82\x01R\x7Fdy initialized\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01[`@Q\x80\x91\x03\x90\xFD[`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF`\xFF\x84\x16t\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x02\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x17u\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x17\x90Ua\x0C\xCFa\x19\xE2V[`\xFE\x80Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x86\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x92\x83\x16\x17\x90\x92U`\xFC\x80T\x92\x85\x16\x92\x90\x91\x16\x91\x90\x91\x17\x90Ua\rAsB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x07a\x1AeV[`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90U`@Q`\xFF\x82\x16\x81R\x7F\x7F&\xB8?\xF9n\x1F+jh/\x138R\xF6y\x8A\t\xC4e\xDA\x95\x92\x14`\xCE\xFB8G@$\x98\x90` \x01`@Q\x80\x91\x03\x90\xA1PPPV[`\xFET`@\x80Q\x7F\\\x97Z\xBB\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\x90Q`\0\x92s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x91c\\\x97Z\xBB\x91`\x04\x80\x83\x01\x92` \x92\x91\x90\x82\x90\x03\x01\x81\x86Z\xFA\x15\x80\x15a\x0E\x14W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x06\xA7\x91\x90a#^V[`\xCCT`\0\x90s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF!S\x01a\x0F\x02W`@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\x82\x01R`5`$\x82\x01R\x7FCrossDomainMessenger: xDomainMes`D\x82\x01R\x7FsageSender is not set\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x0C>V[P`\xCCTs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90V[`\0\x80`?a\x0F5`@c\xFF\xFF\xFF\xFF\x86\x16a#\x80V[a\x0F?\x91\x90a#\xB0V[a\x13\x88a\x9C@a\x0FR\x81b\x03\r@a#\xFEV[a\x0F\\\x91\x90a#\xFEV[a\x0Ff\x91\x90a#\xFEV[a\x0Fp\x91\x90a#\xFEV[\x90P`\0a\x01\x04g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x85Qa\x0F\x8D\x91\x90a$*V[\x90Pa\x0F\xCBa\x0F\x9D`\x10\x83a#\x80V[a\x0F\xA7\x90\x84a#\xFEV[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a\x0F\xBC`(\x84a#\x80V[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a\x1B\xA1V[a\x0F\xD7\x90aR\x08a#\xFEV[\x95\x94PPPPPV[a\x0F\xE8a\r\xA4V[\x15a\x10OW`@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\x82\x01R`\x1C`$\x82\x01R\x7FCrossDomainMessenger: paused\0\0\0\0`D\x82\x01R`d\x01a\x0C>V[`\xF0\x87\x90\x1C`\x02\x81\x10a\x11\nW`@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\x82\x01R`M`$\x82\x01R\x7FCrossDomainMessenger: only versi`D\x82\x01R\x7Fon 0 or 1 messages are supported`d\x82\x01R\x7F at this time\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x84\x82\x01R`\xA4\x01a\x0C>V[\x80a\xFF\xFF\x16`\0\x03a\x11\xFFW`\0a\x11[\x87\x89\x86\x86\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RP\x8F\x92Pa\x1B\xBA\x91PPV[`\0\x81\x81R`\xCB` R`@\x90 T\x90\x91P`\xFF\x16\x15a\x11\xFDW`@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\x82\x01R`7`$\x82\x01R\x7FCrossDomainMessenger: legacy wit`D\x82\x01R\x7Fhdrawal already relayed\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x0C>V[P[`\0a\x12E\x89\x89\x89\x89\x89\x89\x89\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RPa\x1B\xD9\x92PPPV[\x90Pa\x12Oa\x1B\xFCV[\x15a\x12\x87W\x854\x14a\x12cWa\x12ca$BV[`\0\x81\x81R`\xCE` R`@\x90 T`\xFF\x16\x15a\x12\x82Wa\x12\x82a$BV[a\x13\xD9V[4\x15a\x13;W`@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\x82\x01R`P`$\x82\x01R\x7FCrossDomainMessenger: value must`D\x82\x01R\x7F be zero unless message is from `d\x82\x01R\x7Fa system address\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x84\x82\x01R`\xA4\x01a\x0C>V[`\0\x81\x81R`\xCE` R`@\x90 T`\xFF\x16a\x13\xD9W`@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\x82\x01R`0`$\x82\x01R\x7FCrossDomainMessenger: message ca`D\x82\x01R\x7Fnnot be replayed\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x0C>V[a\x13\xE2\x87a\x1C\xD8V[\x15a\x14\x95W`@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\x82\x01R`C`$\x82\x01R\x7FCrossDomainMessenger: cannot sen`D\x82\x01R\x7Fd message to blocked system addr`d\x82\x01R\x7Fess\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x84\x82\x01R`\xA4\x01a\x0C>V[`\0\x81\x81R`\xCB` R`@\x90 T`\xFF\x16\x15a\x154W`@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\x82\x01R`6`$\x82\x01R\x7FCrossDomainMessenger: message ha`D\x82\x01R\x7Fs already been relayed\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x0C>V[a\x15U\x85a\x15Fa\x13\x88a\x9C@a#\xFEV[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a\x1D\x1EV[\x15\x80a\x15{WP`\xCCTs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a\xDE\xAD\x14\x15[\x15a\x16\x94W`\0\x81\x81R`\xCE` R`@\x80\x82 \x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x16`\x01\x17\x90UQ\x82\x91\x7F\x99\xD0\xE0HHK\xAA\x1B\x15@\xB16|\xB1(\xAC\xD7\xAB)F\xD1\xED\x91\xEC\x10\xE3\xC8^K\xF5\x1B\x8F\x91\xA2\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF2\x01a\x16\x8DW`@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\x82\x01R`-`$\x82\x01R\x7FCrossDomainMessenger: failed to `D\x82\x01R\x7Frelay message\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x0C>V[PPa\x18\xECV[`\xCC\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x8A\x16\x17\x90U`\0a\x17%\x88a\x9C@Za\x16\xE8\x91\x90a$qV[\x89\x88\x88\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RPa\x1D<\x92PPPV[`\xCC\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16a\xDE\xAD\x17\x90U\x90P\x80\x15a\x17\xDBW`\0\x82\x81R`\xCB` R`@\x90 T`\xFF\x16\x15a\x17xWa\x17xa$BV[`\0\x82\x81R`\xCB` R`@\x80\x82 \x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x16`\x01\x17\x90UQ\x83\x91\x7FFA\xDFJ\x96 q\xE1'\x19\xD8\xC8\xC8\xE5\xAC\x7F\xC4\xD9{\x92sF\xA3\xD7\xA35\xB1\xF7Q~\x13<\x91\xA2a\x18\xE8V[`\0\x82\x81R`\xCE` R`@\x80\x82 \x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x16`\x01\x17\x90UQ\x83\x91\x7F\x99\xD0\xE0HHK\xAA\x1B\x15@\xB16|\xB1(\xAC\xD7\xAB)F\xD1\xED\x91\xEC\x10\xE3\xC8^K\xF5\x1B\x8F\x91\xA2\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF2\x01a\x18\xE8W`@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\x82\x01R`-`$\x82\x01R\x7FCrossDomainMessenger: failed to `D\x82\x01R\x7Frelay message\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x0C>V[PPP[PPPPPPPV[`\0a\x18\xFFa\t?V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\x8D\xA5\xCB[`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x06\x83W=`\0\x80>=`\0\xFD[`\xFCT`@Q\x7F\xE9\xE0\\B\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\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x90c\xE9\xE0\\B\x90\x84\x90a\x19\xAA\x90\x88\x90\x83\x90\x89\x90`\0\x90\x89\x90`\x04\x01a$\x88V[`\0`@Q\x80\x83\x03\x81\x85\x88\x80;\x15\x80\x15a\x19\xC3W`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x19\xD7W=`\0\x80>=`\0\xFD[PPPPPPPPPV[3a\x19\xEBa\t?V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14\x15\x80\x15a\x1A,WP3a\x1A\x13a\x18\xF5V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14\x15[\x15a\x1AcW`@Q\x7F\xC4\x05\n&\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\x01`@Q\x80\x91\x03\x90\xFD[V[`\0Tu\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16a\x1B\x10W`@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\x82\x01R`+`$\x82\x01R\x7FInitializable: contract is not i`D\x82\x01R\x7Fnitializing\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x0C>V[`\xCCTs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a\x1BZW`\xCC\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16a\xDE\xAD\x17\x90U[`\xCF\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x92\x90\x92\x16\x91\x90\x91\x17\x90UV[`\0\x81\x83\x10\x15a\x1B\xB1W\x81a\x1B\xB3V[\x82[\x93\x92PPPV[`\0a\x1B\xC8\x85\x85\x85\x85a\x1DTV[\x80Q\x90` \x01 \x90P\x94\x93PPPPV[`\0a\x1B\xE9\x87\x87\x87\x87\x87\x87a\x1D\xEDV[\x80Q\x90` \x01 \x90P\x96\x95PPPPPPV[`\xFCT`\0\x90s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x163\x14\x80\x15a\x06\xA7WP`\xCFT`\xFCT`@\x80Q\x7F\x9B\xF6-\x82\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\x90Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x93\x84\x16\x93\x90\x92\x16\x91c\x9B\xF6-\x82\x91`\x04\x80\x82\x01\x92` \x92\x90\x91\x90\x82\x90\x03\x01\x81\x86Z\xFA\x15\x80\x15a\x1C\x98W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x1C\xBC\x91\x90a!\xDFV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14\x90P\x90V[`\0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x160\x14\x80a\x1D\x18WP`\xFCTs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x81\x16\x91\x16\x14[\x92\x91PPV[`\0\x80`?\x83a\x9C@\x01\x02`@\x85\x02\x01`?Z\x02\x10\x15\x94\x93PPPPV[`\0\x80`\0\x83Q` \x85\x01\x86\x89\x89\xF1\x95\x94PPPPPV[``\x84\x84\x84\x84`@Q`$\x01a\x1Dm\x94\x93\x92\x91\x90a$\xE0V[`@\x80Q\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x81\x84\x03\x01\x81R\x91\x90R` \x81\x01\x80Q{\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xCB\xD4\xEC\xE9\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\x17\x90R\x90P\x94\x93PPPPV[``\x86\x86\x86\x86\x86\x86`@Q`$\x01a\x1E\n\x96\x95\x94\x93\x92\x91\x90a%*V[`@\x80Q\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x81\x84\x03\x01\x81R\x91\x90R` \x81\x01\x80Q{\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xD7d\xAD\x0B\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\x17\x90R\x90P\x96\x95PPPPPPV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x1E\xAEW`\0\x80\xFD[PV[`\0\x80\x83`\x1F\x84\x01\x12a\x1E\xC3W`\0\x80\xFD[P\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x1E\xDBW`\0\x80\xFD[` \x83\x01\x91P\x83` \x82\x85\x01\x01\x11\x15a\x1E\xF3W`\0\x80\xFD[\x92P\x92\x90PV[\x805c\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x1F\x0EW`\0\x80\xFD[\x91\x90PV[`\0\x80`\0\x80``\x85\x87\x03\x12\x15a\x1F)W`\0\x80\xFD[\x845a\x1F4\x81a\x1E\x8CV[\x93P` \x85\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x1FPW`\0\x80\xFD[a\x1F\\\x87\x82\x88\x01a\x1E\xB1V[\x90\x94P\x92Pa\x1Fo\x90P`@\x86\x01a\x1E\xFAV[\x90P\x92\x95\x91\x94P\x92PV[`\0\x80`@\x83\x85\x03\x12\x15a\x1F\x8DW`\0\x80\xFD[\x825a\x1F\x98\x81a\x1E\x8CV[\x91P` \x83\x015a\x1F\xA8\x81a\x1E\x8CV[\x80\x91PP\x92P\x92\x90PV[`\0\x81Q\x80\x84R`\0[\x81\x81\x10\x15a\x1F\xD9W` \x81\x85\x01\x81\x01Q\x86\x83\x01\x82\x01R\x01a\x1F\xBDV[\x81\x81\x11\x15a\x1F\xEBW`\0` \x83\x87\x01\x01R[P`\x1F\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x92\x90\x92\x01` \x01\x92\x91PPV[` \x81R`\0a\x1B\xB3` \x83\x01\x84a\x1F\xB3V[`\0` \x82\x84\x03\x12\x15a CW`\0\x80\xFD[P5\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[`\0\x80`@\x83\x85\x03\x12\x15a \x8CW`\0\x80\xFD[\x825g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a \xA4W`\0\x80\xFD[\x81\x85\x01\x91P\x85`\x1F\x83\x01\x12a \xB8W`\0\x80\xFD[\x815\x81\x81\x11\x15a \xCAWa \xCAa JV[`@Q`\x1F\x82\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x90\x81\x16`?\x01\x16\x81\x01\x90\x83\x82\x11\x81\x83\x10\x17\x15a!\x10Wa!\x10a JV[\x81`@R\x82\x81R\x88` \x84\x87\x01\x01\x11\x15a!)W`\0\x80\xFD[\x82` \x86\x01` \x83\x017`\0` \x84\x83\x01\x01R\x80\x96PPPPPPa!P` \x84\x01a\x1E\xFAV[\x90P\x92P\x92\x90PV[`\0\x80`\0\x80`\0\x80`\0`\xC0\x88\x8A\x03\x12\x15a!tW`\0\x80\xFD[\x875\x96P` \x88\x015a!\x86\x81a\x1E\x8CV[\x95P`@\x88\x015a!\x96\x81a\x1E\x8CV[\x94P``\x88\x015\x93P`\x80\x88\x015\x92P`\xA0\x88\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a!\xC0W`\0\x80\xFD[a!\xCC\x8A\x82\x8B\x01a\x1E\xB1V[\x98\x9B\x97\x9AP\x95\x98P\x93\x96\x92\x95\x92\x93PPPV[`\0` \x82\x84\x03\x12\x15a!\xF1W`\0\x80\xFD[\x81Qa\x1B\xB3\x81a\x1E\x8CV[\x81\x83R\x81\x81` \x85\x017P`\0` \x82\x84\x01\x01R`\0` \x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0`\x1F\x84\x01\x16\x84\x01\x01\x90P\x92\x91PPV[\x87\x81R`\0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x89\x16` \x84\x01R\x80\x88\x16`@\x84\x01RP\x85``\x83\x01Rc\xFF\xFF\xFF\xFF\x85\x16`\x80\x83\x01R`\xC0`\xA0\x83\x01Ra\"\x97`\xC0\x83\x01\x84\x86a!\xFCV[\x99\x98PPPPPPPPPV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x86\x16\x81R`\x80` \x82\x01R`\0a\"\xD4`\x80\x83\x01\x86\x88a!\xFCV[\x90P\x83`@\x83\x01Rc\xFF\xFF\xFF\xFF\x83\x16``\x83\x01R\x96\x95PPPPPPV[\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`\x11`\x04R`$`\0\xFD[`\0\x81\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x04\x83\x11\x82\x15\x15\x16\x15a#YWa#Ya\"\xF2V[P\x02\x90V[`\0` \x82\x84\x03\x12\x15a#pW`\0\x80\xFD[\x81Q\x80\x15\x15\x81\x14a\x1B\xB3W`\0\x80\xFD[`\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x83\x16\x81\x85\x16\x81\x83\x04\x81\x11\x82\x15\x15\x16\x15a#\xA7Wa#\xA7a\"\xF2V[\x02\x94\x93PPPPV[`\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x84\x16\x80a#\xF2W\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`\x12`\x04R`$`\0\xFD[\x92\x16\x91\x90\x91\x04\x92\x91PPV[`\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x83\x16\x81\x85\x16\x80\x83\x03\x82\x11\x15a$!Wa$!a\"\xF2V[\x01\x94\x93PPPPV[`\0\x82\x19\x82\x11\x15a$=Wa$=a\"\xF2V[P\x01\x90V[\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`\x01`\x04R`$`\0\xFD[`\0\x82\x82\x10\x15a$\x83Wa$\x83a\"\xF2V[P\x03\x90V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x86\x16\x81R\x84` \x82\x01Rg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x16`@\x82\x01R\x82\x15\x15``\x82\x01R`\xA0`\x80\x82\x01R`\0a$\xD5`\xA0\x83\x01\x84a\x1F\xB3V[\x97\x96PPPPPPPV[`\0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x87\x16\x83R\x80\x86\x16` \x84\x01RP`\x80`@\x83\x01Ra%\x19`\x80\x83\x01\x85a\x1F\xB3V[\x90P\x82``\x83\x01R\x95\x94PPPPPV[\x86\x81R`\0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x88\x16` \x84\x01R\x80\x87\x16`@\x84\x01RP\x84``\x83\x01R\x83`\x80\x83\x01R`\xC0`\xA0\x83\x01Ra%u`\xC0\x83\x01\x84a\x1F\xB3V[\x98\x97PPPPPPPPV\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x6080604052600436106101cd5760003560e01c80635c975abb116100f7578063b1b1b20911610095578063db505d8011610064578063db505d8014610556578063ddd5a40f14610583578063e46e245a14610599578063ecc70428146105ae57600080fd5b8063b1b1b209146104de578063b28ade251461050e578063d764ad0b1461052e578063dad544e01461054157600080fd5b806383a74074116100d157806383a740741461046c5780638cbeeef2146103835780639fce812c14610483578063a4e7f8bd146104ae57600080fd5b80635c975abb146104055780636425666b1461042a5780636e296e451461045757600080fd5b806338d38c971161016f578063485cc9551161013e578063485cc955146103635780634c1d6a691461038357806354fd4d50146103995780635644cfdf146103ef57600080fd5b806338d38c97146102d35780633dbb202b146103115780633e47158c146103265780633f827a5a1461033b57600080fd5b80632828d7e8116101ab5780632828d7e8146102665780632f7d39221461027b57806333d7e2bd1461029157806335e80ab3146102be57600080fd5b8063028f85f7146101d25780630c568498146102055780630ff754ea1461021a575b600080fd5b3480156101de57600080fd5b506101e7601081565b60405167ffffffffffffffff90911681526020015b60405180910390f35b34801561021157600080fd5b506101e7603f81565b34801561022657600080fd5b5060fc5473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101fc565b34801561027257600080fd5b506101e7604081565b34801561028757600080fd5b506101e761520881565b34801561029d57600080fd5b5060fe546102419073ffffffffffffffffffffffffffffffffffffffff1681565b3480156102ca57600080fd5b50610241610613565b3480156102df57600080fd5b5060405160ff7f00000000000000000000000000000000000000000000000000000000000000001681526020016101fc565b61032461031f366004611f13565b6106ac565b005b34801561033257600080fd5b5061024161093f565b34801561034757600080fd5b50610350600181565b60405161ffff90911681526020016101fc565b34801561036f57600080fd5b5061032461037e366004611f7a565b610b4a565b34801561038f57600080fd5b506101e7619c4081565b3480156103a557600080fd5b506103e26040518060400160405280600681526020017f322e31312e30000000000000000000000000000000000000000000000000000081525081565b6040516101fc919061201e565b3480156103fb57600080fd5b506101e761138881565b34801561041157600080fd5b5061041a610da4565b60405190151581526020016101fc565b34801561043657600080fd5b5060fc546102419073ffffffffffffffffffffffffffffffffffffffff1681565b34801561046357600080fd5b50610241610e38565b34801561047857600080fd5b506101e762030d4081565b34801561048f57600080fd5b5060cf5473ffffffffffffffffffffffffffffffffffffffff16610241565b3480156104ba57600080fd5b5061041a6104c9366004612031565b60ce6020526000908152604090205460ff1681565b3480156104ea57600080fd5b5061041a6104f9366004612031565b60cb6020526000908152604090205460ff1681565b34801561051a57600080fd5b506101e7610529366004612079565b610f1f565b61032461053c366004612159565b610fe0565b34801561054d57600080fd5b506102416118f5565b34801561056257600080fd5b5060cf546102419073ffffffffffffffffffffffffffffffffffffffff1681565b34801561058f57600080fd5b506101e761010481565b3480156105a557600080fd5b506101e7602881565b3480156105ba57600080fd5b5061060560cd547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167e010000000000000000000000000000000000000000000000000000000000001790565b6040519081526020016101fc565b60fe54604080517f35e80ab3000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff16916335e80ab39160048083019260209291908290030181865afa158015610683573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106a791906121df565b905090565b60cf54604080516020601f86018190048102820181019092528481526108149273ffffffffffffffffffffffffffffffffffffffff169161070a91908790879081908401838280828437600092019190915250879250610f1f915050565b347fd764ad0b0000000000000000000000000000000000000000000000000000000061077660cd547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167e010000000000000000000000000000000000000000000000000000000000001790565b338a34898c8c6040516024016107929796959493929190612245565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152611949565b8373ffffffffffffffffffffffffffffffffffffffff167fcb0f7ffd78f9aee47a248fae8db181db6eee833039123e026dcbff529522e52a33858561089960cd547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167e010000000000000000000000000000000000000000000000000000000000001790565b866040516108ab9594939291906122a4565b60405180910390a260405134815233907f8ebb2ec2465bdb2a06a66fc37a0963af8a2a6a1479d81d56fdb8cbb98096d5469060200160405180910390a2505060cd80547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff808216600101167fffff0000000000000000000000000000000000000000000000000000000000009091161790555050565b60008061096a7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b905073ffffffffffffffffffffffffffffffffffffffff81161561098d57919050565b6040518060400160405280601a81526020017f4f564d5f4c3143726f7373446f6d61696e4d657373656e6765720000000000008152505160026109d09190612321565b604080513060208201526000918101919091527f4f564d5f4c3143726f7373446f6d61696e4d657373656e6765720000000000009190911790610a2b906060015b604051602081830303815290604052805190602001205490565b14610a62576040517f54e433cd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60408051306020820152600191810191909152600090610a8490606001610a11565b905073ffffffffffffffffffffffffffffffffffffffff811615610b18578073ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610aed573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b1191906121df565b9250505090565b6040517f332144db00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006000547501000000000000000000000000000000000000000000900460ff16158015610bb6575060005460ff8083167401000000000000000000000000000000000000000090920416105b610c47576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084015b60405180910390fd5b600080547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff60ff84167401000000000000000000000000000000000000000002167fffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffff909116177501000000000000000000000000000000000000000000179055610ccf6119e2565b60fe805473ffffffffffffffffffffffffffffffffffffffff8086167fffffffffffffffffffffffff00000000000000000000000000000000000000009283161790925560fc805492851692909116919091179055610d41734200000000000000000000000000000000000007611a65565b600080547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff16905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050565b60fe54604080517f5c975abb000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff1691635c975abb9160048083019260209291908290030181865afa158015610e14573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106a7919061235e565b60cc5460009073ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff215301610f02576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603560248201527f43726f7373446f6d61696e4d657373656e6765723a2078446f6d61696e4d657360448201527f7361676553656e646572206973206e6f742073657400000000000000000000006064820152608401610c3e565b5060cc5473ffffffffffffffffffffffffffffffffffffffff1690565b600080603f610f35604063ffffffff8616612380565b610f3f91906123b0565b611388619c40610f528162030d406123fe565b610f5c91906123fe565b610f6691906123fe565b610f7091906123fe565b9050600061010467ffffffffffffffff168551610f8d919061242a565b9050610fcb610f9d601083612380565b610fa790846123fe565b67ffffffffffffffff16610fbc602884612380565b67ffffffffffffffff16611ba1565b610fd7906152086123fe565b95945050505050565b610fe8610da4565b1561104f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f43726f7373446f6d61696e4d657373656e6765723a20706175736564000000006044820152606401610c3e565b60f087901c6002811061110a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604d60248201527f43726f7373446f6d61696e4d657373656e6765723a206f6e6c7920766572736960448201527f6f6e2030206f722031206d657373616765732061726520737570706f7274656460648201527f20617420746869732074696d6500000000000000000000000000000000000000608482015260a401610c3e565b8061ffff166000036111ff57600061115b878986868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508f9250611bba915050565b600081815260cb602052604090205490915060ff16156111fd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f43726f7373446f6d61696e4d657373656e6765723a206c65676163792077697460448201527f6864726177616c20616c72656164792072656c617965640000000000000000006064820152608401610c3e565b505b6000611245898989898989898080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611bd992505050565b905061124f611bfc565b156112875785341461126357611263612442565b600081815260ce602052604090205460ff161561128257611282612442565b6113d9565b341561133b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152605060248201527f43726f7373446f6d61696e4d657373656e6765723a2076616c7565206d75737460448201527f206265207a65726f20756e6c657373206d6573736167652069732066726f6d2060648201527f612073797374656d206164647265737300000000000000000000000000000000608482015260a401610c3e565b600081815260ce602052604090205460ff166113d9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f43726f7373446f6d61696e4d657373656e6765723a206d65737361676520636160448201527f6e6e6f74206265207265706c61796564000000000000000000000000000000006064820152608401610c3e565b6113e287611cd8565b15611495576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604360248201527f43726f7373446f6d61696e4d657373656e6765723a2063616e6e6f742073656e60448201527f64206d65737361676520746f20626c6f636b65642073797374656d206164647260648201527f6573730000000000000000000000000000000000000000000000000000000000608482015260a401610c3e565b600081815260cb602052604090205460ff1615611534576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f43726f7373446f6d61696e4d657373656e6765723a206d65737361676520686160448201527f7320616c7265616479206265656e2072656c61796564000000000000000000006064820152608401610c3e565b61155585611546611388619c406123fe565b67ffffffffffffffff16611d1e565b158061157b575060cc5473ffffffffffffffffffffffffffffffffffffffff1661dead14155b1561169457600081815260ce602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555182917f99d0e048484baa1b1540b1367cb128acd7ab2946d1ed91ec10e3c85e4bf51b8f91a27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff320161168d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f43726f7373446f6d61696e4d657373656e6765723a206661696c656420746f2060448201527f72656c6179206d657373616765000000000000000000000000000000000000006064820152608401610c3e565b50506118ec565b60cc80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8a16179055600061172588619c405a6116e89190612471565b8988888080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611d3c92505050565b60cc80547fffffffffffffffffffffffff00000000000000000000000000000000000000001661dead179055905080156117db57600082815260cb602052604090205460ff161561177857611778612442565b600082815260cb602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555183917f4641df4a962071e12719d8c8c8e5ac7fc4d97b927346a3d7a335b1f7517e133c91a26118e8565b600082815260ce602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555183917f99d0e048484baa1b1540b1367cb128acd7ab2946d1ed91ec10e3c85e4bf51b8f91a27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff32016118e8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f43726f7373446f6d61696e4d657373656e6765723a206661696c656420746f2060448201527f72656c6179206d657373616765000000000000000000000000000000000000006064820152608401610c3e565b5050505b50505050505050565b60006118ff61093f565b73ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610683573d6000803e3d6000fd5b60fc546040517fe9e05c4200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063e9e05c429084906119aa908890839089906000908990600401612488565b6000604051808303818588803b1580156119c357600080fd5b505af11580156119d7573d6000803e3d6000fd5b505050505050505050565b336119eb61093f565b73ffffffffffffffffffffffffffffffffffffffff1614158015611a2c575033611a136118f5565b73ffffffffffffffffffffffffffffffffffffffff1614155b15611a63576040517fc4050a2600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b6000547501000000000000000000000000000000000000000000900460ff16611b10576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610c3e565b60cc5473ffffffffffffffffffffffffffffffffffffffff16611b5a5760cc80547fffffffffffffffffffffffff00000000000000000000000000000000000000001661dead1790555b60cf80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b600081831015611bb15781611bb3565b825b9392505050565b6000611bc885858585611d54565b805190602001209050949350505050565b6000611be9878787878787611ded565b8051906020012090509695505050505050565b60fc5460009073ffffffffffffffffffffffffffffffffffffffff16331480156106a7575060cf5460fc54604080517f9bf62d82000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff9384169390921691639bf62d82916004808201926020929091908290030181865afa158015611c98573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cbc91906121df565b73ffffffffffffffffffffffffffffffffffffffff1614905090565b600073ffffffffffffffffffffffffffffffffffffffff8216301480611d18575060fc5473ffffffffffffffffffffffffffffffffffffffff8381169116145b92915050565b600080603f83619c4001026040850201603f5a021015949350505050565b6000806000835160208501868989f195945050505050565b606084848484604051602401611d6d94939291906124e0565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fcbd4ece9000000000000000000000000000000000000000000000000000000001790529050949350505050565b6060868686868686604051602401611e0a9695949392919061252a565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fd764ad0b0000000000000000000000000000000000000000000000000000000017905290509695505050505050565b73ffffffffffffffffffffffffffffffffffffffff81168114611eae57600080fd5b50565b60008083601f840112611ec357600080fd5b50813567ffffffffffffffff811115611edb57600080fd5b602083019150836020828501011115611ef357600080fd5b9250929050565b803563ffffffff81168114611f0e57600080fd5b919050565b60008060008060608587031215611f2957600080fd5b8435611f3481611e8c565b9350602085013567ffffffffffffffff811115611f5057600080fd5b611f5c87828801611eb1565b9094509250611f6f905060408601611efa565b905092959194509250565b60008060408385031215611f8d57600080fd5b8235611f9881611e8c565b91506020830135611fa881611e8c565b809150509250929050565b6000815180845260005b81811015611fd957602081850181015186830182015201611fbd565b81811115611feb576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000611bb36020830184611fb3565b60006020828403121561204357600080fd5b5035919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000806040838503121561208c57600080fd5b823567ffffffffffffffff808211156120a457600080fd5b818501915085601f8301126120b857600080fd5b8135818111156120ca576120ca61204a565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019083821181831017156121105761211061204a565b8160405282815288602084870101111561212957600080fd5b82602086016020830137600060208483010152809650505050505061215060208401611efa565b90509250929050565b600080600080600080600060c0888a03121561217457600080fd5b87359650602088013561218681611e8c565b9550604088013561219681611e8c565b9450606088013593506080880135925060a088013567ffffffffffffffff8111156121c057600080fd5b6121cc8a828b01611eb1565b989b979a50959850939692959293505050565b6000602082840312156121f157600080fd5b8151611bb381611e8c565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b878152600073ffffffffffffffffffffffffffffffffffffffff808916602084015280881660408401525085606083015263ffffffff8516608083015260c060a083015261229760c0830184866121fc565b9998505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff861681526080602082015260006122d46080830186886121fc565b905083604083015263ffffffff831660608301529695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612359576123596122f2565b500290565b60006020828403121561237057600080fd5b81518015158114611bb357600080fd5b600067ffffffffffffffff808316818516818304811182151516156123a7576123a76122f2565b02949350505050565b600067ffffffffffffffff808416806123f2577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b92169190910492915050565b600067ffffffffffffffff808316818516808303821115612421576124216122f2565b01949350505050565b6000821982111561243d5761243d6122f2565b500190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b600082821015612483576124836122f2565b500390565b73ffffffffffffffffffffffffffffffffffffffff8616815284602082015267ffffffffffffffff84166040820152821515606082015260a0608082015260006124d560a0830184611fb3565b979650505050505050565b600073ffffffffffffffffffffffffffffffffffffffff8087168352808616602084015250608060408301526125196080830185611fb3565b905082606083015295945050505050565b868152600073ffffffffffffffffffffffffffffffffffffffff808816602084015280871660408401525084606083015283608083015260c060a083015261257560c0830184611fb3565b9897505050505050505056fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R`\x046\x10a\x01\xCDW`\x005`\xE0\x1C\x80c\\\x97Z\xBB\x11a\0\xF7W\x80c\xB1\xB1\xB2\t\x11a\0\x95W\x80c\xDBP]\x80\x11a\0dW\x80c\xDBP]\x80\x14a\x05VW\x80c\xDD\xD5\xA4\x0F\x14a\x05\x83W\x80c\xE4n$Z\x14a\x05\x99W\x80c\xEC\xC7\x04(\x14a\x05\xAEW`\0\x80\xFD[\x80c\xB1\xB1\xB2\t\x14a\x04\xDEW\x80c\xB2\x8A\xDE%\x14a\x05\x0EW\x80c\xD7d\xAD\x0B\x14a\x05.W\x80c\xDA\xD5D\xE0\x14a\x05AW`\0\x80\xFD[\x80c\x83\xA7@t\x11a\0\xD1W\x80c\x83\xA7@t\x14a\x04lW\x80c\x8C\xBE\xEE\xF2\x14a\x03\x83W\x80c\x9F\xCE\x81,\x14a\x04\x83W\x80c\xA4\xE7\xF8\xBD\x14a\x04\xAEW`\0\x80\xFD[\x80c\\\x97Z\xBB\x14a\x04\x05W\x80cd%fk\x14a\x04*W\x80cn)nE\x14a\x04WW`\0\x80\xFD[\x80c8\xD3\x8C\x97\x11a\x01oW\x80cH\\\xC9U\x11a\x01>W\x80cH\\\xC9U\x14a\x03cW\x80cL\x1Dji\x14a\x03\x83W\x80cT\xFDMP\x14a\x03\x99W\x80cVD\xCF\xDF\x14a\x03\xEFW`\0\x80\xFD[\x80c8\xD3\x8C\x97\x14a\x02\xD3W\x80c=\xBB +\x14a\x03\x11W\x80c>G\x15\x8C\x14a\x03&W\x80c?\x82zZ\x14a\x03;W`\0\x80\xFD[\x80c((\xD7\xE8\x11a\x01\xABW\x80c((\xD7\xE8\x14a\x02fW\x80c/}9\"\x14a\x02{W\x80c3\xD7\xE2\xBD\x14a\x02\x91W\x80c5\xE8\n\xB3\x14a\x02\xBEW`\0\x80\xFD[\x80c\x02\x8F\x85\xF7\x14a\x01\xD2W\x80c\x0CV\x84\x98\x14a\x02\x05W\x80c\x0F\xF7T\xEA\x14a\x02\x1AW[`\0\x80\xFD[4\x80\x15a\x01\xDEW`\0\x80\xFD[Pa\x01\xE7`\x10\x81V[`@Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[4\x80\x15a\x02\x11W`\0\x80\xFD[Pa\x01\xE7`?\x81V[4\x80\x15a\x02&W`\0\x80\xFD[P`\xFCTs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16[`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01a\x01\xFCV[4\x80\x15a\x02rW`\0\x80\xFD[Pa\x01\xE7`@\x81V[4\x80\x15a\x02\x87W`\0\x80\xFD[Pa\x01\xE7aR\x08\x81V[4\x80\x15a\x02\x9DW`\0\x80\xFD[P`\xFETa\x02A\x90s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[4\x80\x15a\x02\xCAW`\0\x80\xFD[Pa\x02Aa\x06\x13V[4\x80\x15a\x02\xDFW`\0\x80\xFD[P`@Q`\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x81R` \x01a\x01\xFCV[a\x03$a\x03\x1F6`\x04a\x1F\x13V[a\x06\xACV[\0[4\x80\x15a\x032W`\0\x80\xFD[Pa\x02Aa\t?V[4\x80\x15a\x03GW`\0\x80\xFD[Pa\x03P`\x01\x81V[`@Qa\xFF\xFF\x90\x91\x16\x81R` \x01a\x01\xFCV[4\x80\x15a\x03oW`\0\x80\xFD[Pa\x03$a\x03~6`\x04a\x1FzV[a\x0BJV[4\x80\x15a\x03\x8FW`\0\x80\xFD[Pa\x01\xE7a\x9C@\x81V[4\x80\x15a\x03\xA5W`\0\x80\xFD[Pa\x03\xE2`@Q\x80`@\x01`@R\x80`\x06\x81R` \x01\x7F2.11.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\x81RP\x81V[`@Qa\x01\xFC\x91\x90a \x1EV[4\x80\x15a\x03\xFBW`\0\x80\xFD[Pa\x01\xE7a\x13\x88\x81V[4\x80\x15a\x04\x11W`\0\x80\xFD[Pa\x04\x1Aa\r\xA4V[`@Q\x90\x15\x15\x81R` \x01a\x01\xFCV[4\x80\x15a\x046W`\0\x80\xFD[P`\xFCTa\x02A\x90s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[4\x80\x15a\x04cW`\0\x80\xFD[Pa\x02Aa\x0E8V[4\x80\x15a\x04xW`\0\x80\xFD[Pa\x01\xE7b\x03\r@\x81V[4\x80\x15a\x04\x8FW`\0\x80\xFD[P`\xCFTs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a\x02AV[4\x80\x15a\x04\xBAW`\0\x80\xFD[Pa\x04\x1Aa\x04\xC96`\x04a 1V[`\xCE` R`\0\x90\x81R`@\x90 T`\xFF\x16\x81V[4\x80\x15a\x04\xEAW`\0\x80\xFD[Pa\x04\x1Aa\x04\xF96`\x04a 1V[`\xCB` R`\0\x90\x81R`@\x90 T`\xFF\x16\x81V[4\x80\x15a\x05\x1AW`\0\x80\xFD[Pa\x01\xE7a\x05)6`\x04a yV[a\x0F\x1FV[a\x03$a\x05<6`\x04a!YV[a\x0F\xE0V[4\x80\x15a\x05MW`\0\x80\xFD[Pa\x02Aa\x18\xF5V[4\x80\x15a\x05bW`\0\x80\xFD[P`\xCFTa\x02A\x90s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[4\x80\x15a\x05\x8FW`\0\x80\xFD[Pa\x01\xE7a\x01\x04\x81V[4\x80\x15a\x05\xA5W`\0\x80\xFD[Pa\x01\xE7`(\x81V[4\x80\x15a\x05\xBAW`\0\x80\xFD[Pa\x06\x05`\xCDT}\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16~\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x17\x90V[`@Q\x90\x81R` \x01a\x01\xFCV[`\xFET`@\x80Q\x7F5\xE8\n\xB3\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\x90Q`\0\x92s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x91c5\xE8\n\xB3\x91`\x04\x80\x83\x01\x92` \x92\x91\x90\x82\x90\x03\x01\x81\x86Z\xFA\x15\x80\x15a\x06\x83W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x06\xA7\x91\x90a!\xDFV[\x90P\x90V[`\xCFT`@\x80Q` `\x1F\x86\x01\x81\x90\x04\x81\x02\x82\x01\x81\x01\x90\x92R\x84\x81Ra\x08\x14\x92s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x91a\x07\n\x91\x90\x87\x90\x87\x90\x81\x90\x84\x01\x83\x82\x80\x82\x847`\0\x92\x01\x91\x90\x91RP\x87\x92Pa\x0F\x1F\x91PPV[4\x7F\xD7d\xAD\x0B\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\0a\x07v`\xCDT}\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16~\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x17\x90V[3\x8A4\x89\x8C\x8C`@Q`$\x01a\x07\x92\x97\x96\x95\x94\x93\x92\x91\x90a\"EV[`@\x80Q\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x81\x84\x03\x01\x81R\x91\x90R` \x81\x01\x80Q{\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xFF\xFF\xFF\xFF\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\x90\x93\x16\x92\x90\x92\x17\x90\x91Ra\x19IV[\x83s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xCB\x0F\x7F\xFDx\xF9\xAE\xE4z$\x8F\xAE\x8D\xB1\x81\xDBn\xEE\x8309\x12>\x02m\xCB\xFFR\x95\"\xE5*3\x85\x85a\x08\x99`\xCDT}\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16~\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x17\x90V[\x86`@Qa\x08\xAB\x95\x94\x93\x92\x91\x90a\"\xA4V[`@Q\x80\x91\x03\x90\xA2`@Q4\x81R3\x90\x7F\x8E\xBB.\xC2F[\xDB*\x06\xA6o\xC3z\tc\xAF\x8A*j\x14y\xD8\x1DV\xFD\xB8\xCB\xB9\x80\x96\xD5F\x90` \x01`@Q\x80\x91\x03\x90\xA2PP`\xCD\x80T}\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x16`\x01\x01\x16\x7F\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x91\x16\x17\x90UPPV[`\0\x80a\tj\x7F\xB51'hJV\x8B1s\xAE\x13\xB9\xF8\xA6\x01n$>c\xB6\xE8\xEE\x11x\xD6\xA7\x17\x85\x0B]a\x03T\x90V[\x90Ps\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x15a\t\x8DW\x91\x90PV[`@Q\x80`@\x01`@R\x80`\x1A\x81R` \x01\x7FOVM_L1CrossDomainMessenger\0\0\0\0\0\0\x81RPQ`\x02a\t\xD0\x91\x90a#!V[`@\x80Q0` \x82\x01R`\0\x91\x81\x01\x91\x90\x91R\x7FOVM_L1CrossDomainMessenger\0\0\0\0\0\0\x91\x90\x91\x17\x90a\n+\x90``\x01[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 T\x90V[\x14a\nbW`@Q\x7FT\xE43\xCD\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\x01`@Q\x80\x91\x03\x90\xFD[`@\x80Q0` \x82\x01R`\x01\x91\x81\x01\x91\x90\x91R`\0\x90a\n\x84\x90``\x01a\n\x11V[\x90Ps\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x15a\x0B\x18W\x80s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\x8D\xA5\xCB[`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\n\xEDW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x0B\x11\x91\x90a!\xDFV[\x92PPP\x90V[`@Q\x7F3!D\xDB\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\x01`@Q\x80\x91\x03\x90\xFD[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\0Tu\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16\x15\x80\x15a\x0B\xB6WP`\0T`\xFF\x80\x83\x16t\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x92\x04\x16\x10[a\x0CGW`@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\x82\x01R`.`$\x82\x01R\x7FInitializable: contract is alrea`D\x82\x01R\x7Fdy initialized\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01[`@Q\x80\x91\x03\x90\xFD[`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF`\xFF\x84\x16t\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x02\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x17u\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x17\x90Ua\x0C\xCFa\x19\xE2V[`\xFE\x80Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x86\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x92\x83\x16\x17\x90\x92U`\xFC\x80T\x92\x85\x16\x92\x90\x91\x16\x91\x90\x91\x17\x90Ua\rAsB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x07a\x1AeV[`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90U`@Q`\xFF\x82\x16\x81R\x7F\x7F&\xB8?\xF9n\x1F+jh/\x138R\xF6y\x8A\t\xC4e\xDA\x95\x92\x14`\xCE\xFB8G@$\x98\x90` \x01`@Q\x80\x91\x03\x90\xA1PPPV[`\xFET`@\x80Q\x7F\\\x97Z\xBB\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\x90Q`\0\x92s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x91c\\\x97Z\xBB\x91`\x04\x80\x83\x01\x92` \x92\x91\x90\x82\x90\x03\x01\x81\x86Z\xFA\x15\x80\x15a\x0E\x14W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x06\xA7\x91\x90a#^V[`\xCCT`\0\x90s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF!S\x01a\x0F\x02W`@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\x82\x01R`5`$\x82\x01R\x7FCrossDomainMessenger: xDomainMes`D\x82\x01R\x7FsageSender is not set\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x0C>V[P`\xCCTs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90V[`\0\x80`?a\x0F5`@c\xFF\xFF\xFF\xFF\x86\x16a#\x80V[a\x0F?\x91\x90a#\xB0V[a\x13\x88a\x9C@a\x0FR\x81b\x03\r@a#\xFEV[a\x0F\\\x91\x90a#\xFEV[a\x0Ff\x91\x90a#\xFEV[a\x0Fp\x91\x90a#\xFEV[\x90P`\0a\x01\x04g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x85Qa\x0F\x8D\x91\x90a$*V[\x90Pa\x0F\xCBa\x0F\x9D`\x10\x83a#\x80V[a\x0F\xA7\x90\x84a#\xFEV[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a\x0F\xBC`(\x84a#\x80V[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a\x1B\xA1V[a\x0F\xD7\x90aR\x08a#\xFEV[\x95\x94PPPPPV[a\x0F\xE8a\r\xA4V[\x15a\x10OW`@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\x82\x01R`\x1C`$\x82\x01R\x7FCrossDomainMessenger: paused\0\0\0\0`D\x82\x01R`d\x01a\x0C>V[`\xF0\x87\x90\x1C`\x02\x81\x10a\x11\nW`@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\x82\x01R`M`$\x82\x01R\x7FCrossDomainMessenger: only versi`D\x82\x01R\x7Fon 0 or 1 messages are supported`d\x82\x01R\x7F at this time\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x84\x82\x01R`\xA4\x01a\x0C>V[\x80a\xFF\xFF\x16`\0\x03a\x11\xFFW`\0a\x11[\x87\x89\x86\x86\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RP\x8F\x92Pa\x1B\xBA\x91PPV[`\0\x81\x81R`\xCB` R`@\x90 T\x90\x91P`\xFF\x16\x15a\x11\xFDW`@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\x82\x01R`7`$\x82\x01R\x7FCrossDomainMessenger: legacy wit`D\x82\x01R\x7Fhdrawal already relayed\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x0C>V[P[`\0a\x12E\x89\x89\x89\x89\x89\x89\x89\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RPa\x1B\xD9\x92PPPV[\x90Pa\x12Oa\x1B\xFCV[\x15a\x12\x87W\x854\x14a\x12cWa\x12ca$BV[`\0\x81\x81R`\xCE` R`@\x90 T`\xFF\x16\x15a\x12\x82Wa\x12\x82a$BV[a\x13\xD9V[4\x15a\x13;W`@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\x82\x01R`P`$\x82\x01R\x7FCrossDomainMessenger: value must`D\x82\x01R\x7F be zero unless message is from `d\x82\x01R\x7Fa system address\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x84\x82\x01R`\xA4\x01a\x0C>V[`\0\x81\x81R`\xCE` R`@\x90 T`\xFF\x16a\x13\xD9W`@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\x82\x01R`0`$\x82\x01R\x7FCrossDomainMessenger: message ca`D\x82\x01R\x7Fnnot be replayed\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x0C>V[a\x13\xE2\x87a\x1C\xD8V[\x15a\x14\x95W`@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\x82\x01R`C`$\x82\x01R\x7FCrossDomainMessenger: cannot sen`D\x82\x01R\x7Fd message to blocked system addr`d\x82\x01R\x7Fess\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x84\x82\x01R`\xA4\x01a\x0C>V[`\0\x81\x81R`\xCB` R`@\x90 T`\xFF\x16\x15a\x154W`@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\x82\x01R`6`$\x82\x01R\x7FCrossDomainMessenger: message ha`D\x82\x01R\x7Fs already been relayed\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x0C>V[a\x15U\x85a\x15Fa\x13\x88a\x9C@a#\xFEV[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a\x1D\x1EV[\x15\x80a\x15{WP`\xCCTs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a\xDE\xAD\x14\x15[\x15a\x16\x94W`\0\x81\x81R`\xCE` R`@\x80\x82 \x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x16`\x01\x17\x90UQ\x82\x91\x7F\x99\xD0\xE0HHK\xAA\x1B\x15@\xB16|\xB1(\xAC\xD7\xAB)F\xD1\xED\x91\xEC\x10\xE3\xC8^K\xF5\x1B\x8F\x91\xA2\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF2\x01a\x16\x8DW`@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\x82\x01R`-`$\x82\x01R\x7FCrossDomainMessenger: failed to `D\x82\x01R\x7Frelay message\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x0C>V[PPa\x18\xECV[`\xCC\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x8A\x16\x17\x90U`\0a\x17%\x88a\x9C@Za\x16\xE8\x91\x90a$qV[\x89\x88\x88\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RPa\x1D<\x92PPPV[`\xCC\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16a\xDE\xAD\x17\x90U\x90P\x80\x15a\x17\xDBW`\0\x82\x81R`\xCB` R`@\x90 T`\xFF\x16\x15a\x17xWa\x17xa$BV[`\0\x82\x81R`\xCB` R`@\x80\x82 \x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x16`\x01\x17\x90UQ\x83\x91\x7FFA\xDFJ\x96 q\xE1'\x19\xD8\xC8\xC8\xE5\xAC\x7F\xC4\xD9{\x92sF\xA3\xD7\xA35\xB1\xF7Q~\x13<\x91\xA2a\x18\xE8V[`\0\x82\x81R`\xCE` R`@\x80\x82 \x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x16`\x01\x17\x90UQ\x83\x91\x7F\x99\xD0\xE0HHK\xAA\x1B\x15@\xB16|\xB1(\xAC\xD7\xAB)F\xD1\xED\x91\xEC\x10\xE3\xC8^K\xF5\x1B\x8F\x91\xA2\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF2\x01a\x18\xE8W`@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\x82\x01R`-`$\x82\x01R\x7FCrossDomainMessenger: failed to `D\x82\x01R\x7Frelay message\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x0C>V[PPP[PPPPPPPV[`\0a\x18\xFFa\t?V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\x8D\xA5\xCB[`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x06\x83W=`\0\x80>=`\0\xFD[`\xFCT`@Q\x7F\xE9\xE0\\B\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\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x90c\xE9\xE0\\B\x90\x84\x90a\x19\xAA\x90\x88\x90\x83\x90\x89\x90`\0\x90\x89\x90`\x04\x01a$\x88V[`\0`@Q\x80\x83\x03\x81\x85\x88\x80;\x15\x80\x15a\x19\xC3W`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x19\xD7W=`\0\x80>=`\0\xFD[PPPPPPPPPV[3a\x19\xEBa\t?V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14\x15\x80\x15a\x1A,WP3a\x1A\x13a\x18\xF5V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14\x15[\x15a\x1AcW`@Q\x7F\xC4\x05\n&\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\x01`@Q\x80\x91\x03\x90\xFD[V[`\0Tu\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16a\x1B\x10W`@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\x82\x01R`+`$\x82\x01R\x7FInitializable: contract is not i`D\x82\x01R\x7Fnitializing\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x0C>V[`\xCCTs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a\x1BZW`\xCC\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16a\xDE\xAD\x17\x90U[`\xCF\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x92\x90\x92\x16\x91\x90\x91\x17\x90UV[`\0\x81\x83\x10\x15a\x1B\xB1W\x81a\x1B\xB3V[\x82[\x93\x92PPPV[`\0a\x1B\xC8\x85\x85\x85\x85a\x1DTV[\x80Q\x90` \x01 \x90P\x94\x93PPPPV[`\0a\x1B\xE9\x87\x87\x87\x87\x87\x87a\x1D\xEDV[\x80Q\x90` \x01 \x90P\x96\x95PPPPPPV[`\xFCT`\0\x90s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x163\x14\x80\x15a\x06\xA7WP`\xCFT`\xFCT`@\x80Q\x7F\x9B\xF6-\x82\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\x90Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x93\x84\x16\x93\x90\x92\x16\x91c\x9B\xF6-\x82\x91`\x04\x80\x82\x01\x92` \x92\x90\x91\x90\x82\x90\x03\x01\x81\x86Z\xFA\x15\x80\x15a\x1C\x98W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x1C\xBC\x91\x90a!\xDFV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14\x90P\x90V[`\0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x160\x14\x80a\x1D\x18WP`\xFCTs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x81\x16\x91\x16\x14[\x92\x91PPV[`\0\x80`?\x83a\x9C@\x01\x02`@\x85\x02\x01`?Z\x02\x10\x15\x94\x93PPPPV[`\0\x80`\0\x83Q` \x85\x01\x86\x89\x89\xF1\x95\x94PPPPPV[``\x84\x84\x84\x84`@Q`$\x01a\x1Dm\x94\x93\x92\x91\x90a$\xE0V[`@\x80Q\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x81\x84\x03\x01\x81R\x91\x90R` \x81\x01\x80Q{\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xCB\xD4\xEC\xE9\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\x17\x90R\x90P\x94\x93PPPPV[``\x86\x86\x86\x86\x86\x86`@Q`$\x01a\x1E\n\x96\x95\x94\x93\x92\x91\x90a%*V[`@\x80Q\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x81\x84\x03\x01\x81R\x91\x90R` \x81\x01\x80Q{\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xD7d\xAD\x0B\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\x17\x90R\x90P\x96\x95PPPPPPV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x1E\xAEW`\0\x80\xFD[PV[`\0\x80\x83`\x1F\x84\x01\x12a\x1E\xC3W`\0\x80\xFD[P\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x1E\xDBW`\0\x80\xFD[` \x83\x01\x91P\x83` \x82\x85\x01\x01\x11\x15a\x1E\xF3W`\0\x80\xFD[\x92P\x92\x90PV[\x805c\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x1F\x0EW`\0\x80\xFD[\x91\x90PV[`\0\x80`\0\x80``\x85\x87\x03\x12\x15a\x1F)W`\0\x80\xFD[\x845a\x1F4\x81a\x1E\x8CV[\x93P` \x85\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x1FPW`\0\x80\xFD[a\x1F\\\x87\x82\x88\x01a\x1E\xB1V[\x90\x94P\x92Pa\x1Fo\x90P`@\x86\x01a\x1E\xFAV[\x90P\x92\x95\x91\x94P\x92PV[`\0\x80`@\x83\x85\x03\x12\x15a\x1F\x8DW`\0\x80\xFD[\x825a\x1F\x98\x81a\x1E\x8CV[\x91P` \x83\x015a\x1F\xA8\x81a\x1E\x8CV[\x80\x91PP\x92P\x92\x90PV[`\0\x81Q\x80\x84R`\0[\x81\x81\x10\x15a\x1F\xD9W` \x81\x85\x01\x81\x01Q\x86\x83\x01\x82\x01R\x01a\x1F\xBDV[\x81\x81\x11\x15a\x1F\xEBW`\0` \x83\x87\x01\x01R[P`\x1F\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x92\x90\x92\x01` \x01\x92\x91PPV[` \x81R`\0a\x1B\xB3` \x83\x01\x84a\x1F\xB3V[`\0` \x82\x84\x03\x12\x15a CW`\0\x80\xFD[P5\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[`\0\x80`@\x83\x85\x03\x12\x15a \x8CW`\0\x80\xFD[\x825g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a \xA4W`\0\x80\xFD[\x81\x85\x01\x91P\x85`\x1F\x83\x01\x12a \xB8W`\0\x80\xFD[\x815\x81\x81\x11\x15a \xCAWa \xCAa JV[`@Q`\x1F\x82\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x90\x81\x16`?\x01\x16\x81\x01\x90\x83\x82\x11\x81\x83\x10\x17\x15a!\x10Wa!\x10a JV[\x81`@R\x82\x81R\x88` \x84\x87\x01\x01\x11\x15a!)W`\0\x80\xFD[\x82` \x86\x01` \x83\x017`\0` \x84\x83\x01\x01R\x80\x96PPPPPPa!P` \x84\x01a\x1E\xFAV[\x90P\x92P\x92\x90PV[`\0\x80`\0\x80`\0\x80`\0`\xC0\x88\x8A\x03\x12\x15a!tW`\0\x80\xFD[\x875\x96P` \x88\x015a!\x86\x81a\x1E\x8CV[\x95P`@\x88\x015a!\x96\x81a\x1E\x8CV[\x94P``\x88\x015\x93P`\x80\x88\x015\x92P`\xA0\x88\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a!\xC0W`\0\x80\xFD[a!\xCC\x8A\x82\x8B\x01a\x1E\xB1V[\x98\x9B\x97\x9AP\x95\x98P\x93\x96\x92\x95\x92\x93PPPV[`\0` \x82\x84\x03\x12\x15a!\xF1W`\0\x80\xFD[\x81Qa\x1B\xB3\x81a\x1E\x8CV[\x81\x83R\x81\x81` \x85\x017P`\0` \x82\x84\x01\x01R`\0` \x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0`\x1F\x84\x01\x16\x84\x01\x01\x90P\x92\x91PPV[\x87\x81R`\0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x89\x16` \x84\x01R\x80\x88\x16`@\x84\x01RP\x85``\x83\x01Rc\xFF\xFF\xFF\xFF\x85\x16`\x80\x83\x01R`\xC0`\xA0\x83\x01Ra\"\x97`\xC0\x83\x01\x84\x86a!\xFCV[\x99\x98PPPPPPPPPV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x86\x16\x81R`\x80` \x82\x01R`\0a\"\xD4`\x80\x83\x01\x86\x88a!\xFCV[\x90P\x83`@\x83\x01Rc\xFF\xFF\xFF\xFF\x83\x16``\x83\x01R\x96\x95PPPPPPV[\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`\x11`\x04R`$`\0\xFD[`\0\x81\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x04\x83\x11\x82\x15\x15\x16\x15a#YWa#Ya\"\xF2V[P\x02\x90V[`\0` \x82\x84\x03\x12\x15a#pW`\0\x80\xFD[\x81Q\x80\x15\x15\x81\x14a\x1B\xB3W`\0\x80\xFD[`\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x83\x16\x81\x85\x16\x81\x83\x04\x81\x11\x82\x15\x15\x16\x15a#\xA7Wa#\xA7a\"\xF2V[\x02\x94\x93PPPPV[`\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x84\x16\x80a#\xF2W\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`\x12`\x04R`$`\0\xFD[\x92\x16\x91\x90\x91\x04\x92\x91PPV[`\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x83\x16\x81\x85\x16\x80\x83\x03\x82\x11\x15a$!Wa$!a\"\xF2V[\x01\x94\x93PPPPV[`\0\x82\x19\x82\x11\x15a$=Wa$=a\"\xF2V[P\x01\x90V[\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`\x01`\x04R`$`\0\xFD[`\0\x82\x82\x10\x15a$\x83Wa$\x83a\"\xF2V[P\x03\x90V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x86\x16\x81R\x84` \x82\x01Rg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x16`@\x82\x01R\x82\x15\x15``\x82\x01R`\xA0`\x80\x82\x01R`\0a$\xD5`\xA0\x83\x01\x84a\x1F\xB3V[\x97\x96PPPPPPPV[`\0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x87\x16\x83R\x80\x86\x16` \x84\x01RP`\x80`@\x83\x01Ra%\x19`\x80\x83\x01\x85a\x1F\xB3V[\x90P\x82``\x83\x01R\x95\x94PPPPPV[\x86\x81R`\0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x88\x16` \x84\x01R\x80\x87\x16`@\x84\x01RP\x84``\x83\x01R\x83`\x80\x83\x01R`\xC0`\xA0\x83\x01Ra%u`\xC0\x83\x01\x84a\x1F\xB3V[\x98\x97PPPPPPPPV\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ProxyAdminOwnedBase_NotProxyAdmin()` and selector `0xe818dcc3`. +```solidity +error ProxyAdminOwnedBase_NotProxyAdmin(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ProxyAdminOwnedBase_NotProxyAdmin; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: ProxyAdminOwnedBase_NotProxyAdmin) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for ProxyAdminOwnedBase_NotProxyAdmin { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ProxyAdminOwnedBase_NotProxyAdmin { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ProxyAdminOwnedBase_NotProxyAdmin()"; + const SELECTOR: [u8; 4] = [232u8, 24u8, 220u8, 195u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner()` and selector `0xc4050a26`. +```solidity +error ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError + for ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner()"; + const SELECTOR: [u8; 4] = [196u8, 5u8, 10u8, 38u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ProxyAdminOwnedBase_NotProxyAdminOwner()` and selector `0x7f12c64b`. +```solidity +error ProxyAdminOwnedBase_NotProxyAdminOwner(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ProxyAdminOwnedBase_NotProxyAdminOwner; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: ProxyAdminOwnedBase_NotProxyAdminOwner) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for ProxyAdminOwnedBase_NotProxyAdminOwner { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ProxyAdminOwnedBase_NotProxyAdminOwner { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ProxyAdminOwnedBase_NotProxyAdminOwner()"; + const SELECTOR: [u8; 4] = [127u8, 18u8, 198u8, 75u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ProxyAdminOwnedBase_NotResolvedDelegateProxy()` and selector `0x54e433cd`. +```solidity +error ProxyAdminOwnedBase_NotResolvedDelegateProxy(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ProxyAdminOwnedBase_NotResolvedDelegateProxy; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: ProxyAdminOwnedBase_NotResolvedDelegateProxy) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for ProxyAdminOwnedBase_NotResolvedDelegateProxy { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ProxyAdminOwnedBase_NotResolvedDelegateProxy { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ProxyAdminOwnedBase_NotResolvedDelegateProxy()"; + const SELECTOR: [u8; 4] = [84u8, 228u8, 51u8, 205u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ProxyAdminOwnedBase_NotSharedProxyAdminOwner()` and selector `0x075c4314`. +```solidity +error ProxyAdminOwnedBase_NotSharedProxyAdminOwner(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ProxyAdminOwnedBase_NotSharedProxyAdminOwner; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: ProxyAdminOwnedBase_NotSharedProxyAdminOwner) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for ProxyAdminOwnedBase_NotSharedProxyAdminOwner { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ProxyAdminOwnedBase_NotSharedProxyAdminOwner { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ProxyAdminOwnedBase_NotSharedProxyAdminOwner()"; + const SELECTOR: [u8; 4] = [7u8, 92u8, 67u8, 20u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ProxyAdminOwnedBase_ProxyAdminNotFound()` and selector `0x332144db`. +```solidity +error ProxyAdminOwnedBase_ProxyAdminNotFound(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ProxyAdminOwnedBase_ProxyAdminNotFound; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: ProxyAdminOwnedBase_ProxyAdminNotFound) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for ProxyAdminOwnedBase_ProxyAdminNotFound { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ProxyAdminOwnedBase_ProxyAdminNotFound { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ProxyAdminOwnedBase_ProxyAdminNotFound()"; + const SELECTOR: [u8; 4] = [51u8, 33u8, 68u8, 219u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ReinitializableBase_ZeroInitVersion()` and selector `0x9b01afed`. +```solidity +error ReinitializableBase_ZeroInitVersion(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ReinitializableBase_ZeroInitVersion; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: ReinitializableBase_ZeroInitVersion) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for ReinitializableBase_ZeroInitVersion { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ReinitializableBase_ZeroInitVersion { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ReinitializableBase_ZeroInitVersion()"; + const SELECTOR: [u8; 4] = [155u8, 1u8, 175u8, 237u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `FailedRelayedMessage(bytes32)` and selector `0x99d0e048484baa1b1540b1367cb128acd7ab2946d1ed91ec10e3c85e4bf51b8f`. +```solidity +event FailedRelayedMessage(bytes32 indexed msgHash); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct FailedRelayedMessage { + #[allow(missing_docs)] + pub msgHash: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for FailedRelayedMessage { + type DataTuple<'a> = (); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + const SIGNATURE: &'static str = "FailedRelayedMessage(bytes32)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 153u8, 208u8, 224u8, 72u8, 72u8, 75u8, 170u8, 27u8, 21u8, 64u8, 177u8, + 54u8, 124u8, 177u8, 40u8, 172u8, 215u8, 171u8, 41u8, 70u8, 209u8, 237u8, + 145u8, 236u8, 16u8, 227u8, 200u8, 94u8, 75u8, 245u8, 27u8, 143u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { msgHash: topics.1 } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + () + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.msgHash.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = as alloy_sol_types::EventTopic>::encode_topic(&self.msgHash); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for FailedRelayedMessage { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&FailedRelayedMessage> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &FailedRelayedMessage) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `Initialized(uint8)` and selector `0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498`. +```solidity +event Initialized(uint8 version); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct Initialized { + #[allow(missing_docs)] + pub version: u8, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for Initialized { + type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<8>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,); + const SIGNATURE: &'static str = "Initialized(uint8)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 127u8, 38u8, 184u8, 63u8, 249u8, 110u8, 31u8, 43u8, 106u8, 104u8, 47u8, + 19u8, 56u8, 82u8, 246u8, 121u8, 138u8, 9u8, 196u8, 101u8, 218u8, 149u8, + 146u8, 20u8, 96u8, 206u8, 251u8, 56u8, 71u8, 64u8, 36u8, 152u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { version: data.0 } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.version), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(),) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for Initialized { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&Initialized> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &Initialized) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `RelayedMessage(bytes32)` and selector `0x4641df4a962071e12719d8c8c8e5ac7fc4d97b927346a3d7a335b1f7517e133c`. +```solidity +event RelayedMessage(bytes32 indexed msgHash); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct RelayedMessage { + #[allow(missing_docs)] + pub msgHash: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for RelayedMessage { + type DataTuple<'a> = (); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + const SIGNATURE: &'static str = "RelayedMessage(bytes32)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 70u8, 65u8, 223u8, 74u8, 150u8, 32u8, 113u8, 225u8, 39u8, 25u8, 216u8, + 200u8, 200u8, 229u8, 172u8, 127u8, 196u8, 217u8, 123u8, 146u8, 115u8, + 70u8, 163u8, 215u8, 163u8, 53u8, 177u8, 247u8, 81u8, 126u8, 19u8, 60u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { msgHash: topics.1 } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + () + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.msgHash.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = as alloy_sol_types::EventTopic>::encode_topic(&self.msgHash); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for RelayedMessage { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&RelayedMessage> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &RelayedMessage) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `SentMessage(address,address,bytes,uint256,uint256)` and selector `0xcb0f7ffd78f9aee47a248fae8db181db6eee833039123e026dcbff529522e52a`. +```solidity +event SentMessage(address indexed target, address sender, bytes message, uint256 messageNonce, uint256 gasLimit); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct SentMessage { + #[allow(missing_docs)] + pub target: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub sender: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub message: alloy::sol_types::private::Bytes, + #[allow(missing_docs)] + pub messageNonce: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub gasLimit: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for SentMessage { + type DataTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Bytes, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + ); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "SentMessage(address,address,bytes,uint256,uint256)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 203u8, 15u8, 127u8, 253u8, 120u8, 249u8, 174u8, 228u8, 122u8, 36u8, + 143u8, 174u8, 141u8, 177u8, 129u8, 219u8, 110u8, 238u8, 131u8, 48u8, + 57u8, 18u8, 62u8, 2u8, 109u8, 203u8, 255u8, 82u8, 149u8, 34u8, 229u8, + 42u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + target: topics.1, + sender: data.0, + message: data.1, + messageNonce: data.2, + gasLimit: data.3, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + ::tokenize( + &self.sender, + ), + ::tokenize( + &self.message, + ), + as alloy_sol_types::SolType>::tokenize(&self.messageNonce), + as alloy_sol_types::SolType>::tokenize(&self.gasLimit), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.target.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.target, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for SentMessage { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&SentMessage> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &SentMessage) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `SentMessageExtension1(address,uint256)` and selector `0x8ebb2ec2465bdb2a06a66fc37a0963af8a2a6a1479d81d56fdb8cbb98096d546`. +```solidity +event SentMessageExtension1(address indexed sender, uint256 value); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct SentMessageExtension1 { + #[allow(missing_docs)] + pub sender: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub value: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for SentMessageExtension1 { + type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "SentMessageExtension1(address,uint256)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 142u8, 187u8, 46u8, 194u8, 70u8, 91u8, 219u8, 42u8, 6u8, 166u8, 111u8, + 195u8, 122u8, 9u8, 99u8, 175u8, 138u8, 42u8, 106u8, 20u8, 121u8, 216u8, + 29u8, 86u8, 253u8, 184u8, 203u8, 185u8, 128u8, 150u8, 213u8, 70u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + sender: topics.1, + value: data.0, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.value), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.sender.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.sender, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for SentMessageExtension1 { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&SentMessageExtension1> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &SentMessageExtension1) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + /**Constructor`. +```solidity +constructor(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct constructorCall {} + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: constructorCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for constructorCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolConstructor for constructorCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `ENCODING_OVERHEAD()` and selector `0xddd5a40f`. +```solidity +function ENCODING_OVERHEAD() external view returns (uint64); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ENCODING_OVERHEADCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`ENCODING_OVERHEAD()`](ENCODING_OVERHEADCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ENCODING_OVERHEADReturn { + #[allow(missing_docs)] + pub _0: u64, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: ENCODING_OVERHEADCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for ENCODING_OVERHEADCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u64,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: ENCODING_OVERHEADReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for ENCODING_OVERHEADReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for ENCODING_OVERHEADCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u64; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ENCODING_OVERHEAD()"; + const SELECTOR: [u8; 4] = [221u8, 213u8, 164u8, 15u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: ENCODING_OVERHEADReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: ENCODING_OVERHEADReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `FLOOR_CALLDATA_OVERHEAD()` and selector `0xe46e245a`. +```solidity +function FLOOR_CALLDATA_OVERHEAD() external view returns (uint64); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct FLOOR_CALLDATA_OVERHEADCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`FLOOR_CALLDATA_OVERHEAD()`](FLOOR_CALLDATA_OVERHEADCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct FLOOR_CALLDATA_OVERHEADReturn { + #[allow(missing_docs)] + pub _0: u64, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: FLOOR_CALLDATA_OVERHEADCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for FLOOR_CALLDATA_OVERHEADCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u64,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: FLOOR_CALLDATA_OVERHEADReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for FLOOR_CALLDATA_OVERHEADReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for FLOOR_CALLDATA_OVERHEADCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u64; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "FLOOR_CALLDATA_OVERHEAD()"; + const SELECTOR: [u8; 4] = [228u8, 110u8, 36u8, 90u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: FLOOR_CALLDATA_OVERHEADReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: FLOOR_CALLDATA_OVERHEADReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `MESSAGE_VERSION()` and selector `0x3f827a5a`. +```solidity +function MESSAGE_VERSION() external view returns (uint16); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct MESSAGE_VERSIONCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`MESSAGE_VERSION()`](MESSAGE_VERSIONCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct MESSAGE_VERSIONReturn { + #[allow(missing_docs)] + pub _0: u16, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: MESSAGE_VERSIONCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for MESSAGE_VERSIONCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<16>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u16,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: MESSAGE_VERSIONReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for MESSAGE_VERSIONReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for MESSAGE_VERSIONCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u16; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<16>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "MESSAGE_VERSION()"; + const SELECTOR: [u8; 4] = [63u8, 130u8, 122u8, 90u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: MESSAGE_VERSIONReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: MESSAGE_VERSIONReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `MIN_GAS_CALLDATA_OVERHEAD()` and selector `0x028f85f7`. +```solidity +function MIN_GAS_CALLDATA_OVERHEAD() external view returns (uint64); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct MIN_GAS_CALLDATA_OVERHEADCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`MIN_GAS_CALLDATA_OVERHEAD()`](MIN_GAS_CALLDATA_OVERHEADCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct MIN_GAS_CALLDATA_OVERHEADReturn { + #[allow(missing_docs)] + pub _0: u64, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: MIN_GAS_CALLDATA_OVERHEADCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for MIN_GAS_CALLDATA_OVERHEADCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u64,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: MIN_GAS_CALLDATA_OVERHEADReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for MIN_GAS_CALLDATA_OVERHEADReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for MIN_GAS_CALLDATA_OVERHEADCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u64; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "MIN_GAS_CALLDATA_OVERHEAD()"; + const SELECTOR: [u8; 4] = [2u8, 143u8, 133u8, 247u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: MIN_GAS_CALLDATA_OVERHEADReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: MIN_GAS_CALLDATA_OVERHEADReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR()` and selector `0x0c568498`. +```solidity +function MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR() external view returns (uint64); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATORCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR()`](MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATORCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATORReturn { + #[allow(missing_docs)] + pub _0: u64, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATORCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATORCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u64,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATORReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATORReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATORCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u64; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR()"; + const SELECTOR: [u8; 4] = [12u8, 86u8, 132u8, 152u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATORReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATORReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR()` and selector `0x2828d7e8`. +```solidity +function MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR() external view returns (uint64); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct MIN_GAS_DYNAMIC_OVERHEAD_NUMERATORCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR()`](MIN_GAS_DYNAMIC_OVERHEAD_NUMERATORCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct MIN_GAS_DYNAMIC_OVERHEAD_NUMERATORReturn { + #[allow(missing_docs)] + pub _0: u64, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: MIN_GAS_DYNAMIC_OVERHEAD_NUMERATORCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for MIN_GAS_DYNAMIC_OVERHEAD_NUMERATORCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u64,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: MIN_GAS_DYNAMIC_OVERHEAD_NUMERATORReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for MIN_GAS_DYNAMIC_OVERHEAD_NUMERATORReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for MIN_GAS_DYNAMIC_OVERHEAD_NUMERATORCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u64; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR()"; + const SELECTOR: [u8; 4] = [40u8, 40u8, 215u8, 232u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: MIN_GAS_DYNAMIC_OVERHEAD_NUMERATORReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: MIN_GAS_DYNAMIC_OVERHEAD_NUMERATORReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `OTHER_MESSENGER()` and selector `0x9fce812c`. +```solidity +function OTHER_MESSENGER() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct OTHER_MESSENGERCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`OTHER_MESSENGER()`](OTHER_MESSENGERCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct OTHER_MESSENGERReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: OTHER_MESSENGERCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for OTHER_MESSENGERCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: OTHER_MESSENGERReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for OTHER_MESSENGERReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for OTHER_MESSENGERCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "OTHER_MESSENGER()"; + const SELECTOR: [u8; 4] = [159u8, 206u8, 129u8, 44u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: OTHER_MESSENGERReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: OTHER_MESSENGERReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `PORTAL()` and selector `0x0ff754ea`. +```solidity +function PORTAL() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct PORTALCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`PORTAL()`](PORTALCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct PORTALReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: PORTALCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for PORTALCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: PORTALReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for PORTALReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for PORTALCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "PORTAL()"; + const SELECTOR: [u8; 4] = [15u8, 247u8, 84u8, 234u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: PORTALReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: PORTALReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `RELAY_CALL_OVERHEAD()` and selector `0x4c1d6a69`. +```solidity +function RELAY_CALL_OVERHEAD() external view returns (uint64); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct RELAY_CALL_OVERHEADCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`RELAY_CALL_OVERHEAD()`](RELAY_CALL_OVERHEADCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct RELAY_CALL_OVERHEADReturn { + #[allow(missing_docs)] + pub _0: u64, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: RELAY_CALL_OVERHEADCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for RELAY_CALL_OVERHEADCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u64,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: RELAY_CALL_OVERHEADReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for RELAY_CALL_OVERHEADReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for RELAY_CALL_OVERHEADCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u64; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "RELAY_CALL_OVERHEAD()"; + const SELECTOR: [u8; 4] = [76u8, 29u8, 106u8, 105u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: RELAY_CALL_OVERHEADReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: RELAY_CALL_OVERHEADReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `RELAY_CONSTANT_OVERHEAD()` and selector `0x83a74074`. +```solidity +function RELAY_CONSTANT_OVERHEAD() external view returns (uint64); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct RELAY_CONSTANT_OVERHEADCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`RELAY_CONSTANT_OVERHEAD()`](RELAY_CONSTANT_OVERHEADCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct RELAY_CONSTANT_OVERHEADReturn { + #[allow(missing_docs)] + pub _0: u64, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: RELAY_CONSTANT_OVERHEADCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for RELAY_CONSTANT_OVERHEADCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u64,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: RELAY_CONSTANT_OVERHEADReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for RELAY_CONSTANT_OVERHEADReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for RELAY_CONSTANT_OVERHEADCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u64; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "RELAY_CONSTANT_OVERHEAD()"; + const SELECTOR: [u8; 4] = [131u8, 167u8, 64u8, 116u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: RELAY_CONSTANT_OVERHEADReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: RELAY_CONSTANT_OVERHEADReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `RELAY_GAS_CHECK_BUFFER()` and selector `0x5644cfdf`. +```solidity +function RELAY_GAS_CHECK_BUFFER() external view returns (uint64); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct RELAY_GAS_CHECK_BUFFERCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`RELAY_GAS_CHECK_BUFFER()`](RELAY_GAS_CHECK_BUFFERCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct RELAY_GAS_CHECK_BUFFERReturn { + #[allow(missing_docs)] + pub _0: u64, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: RELAY_GAS_CHECK_BUFFERCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for RELAY_GAS_CHECK_BUFFERCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u64,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: RELAY_GAS_CHECK_BUFFERReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for RELAY_GAS_CHECK_BUFFERReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for RELAY_GAS_CHECK_BUFFERCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u64; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "RELAY_GAS_CHECK_BUFFER()"; + const SELECTOR: [u8; 4] = [86u8, 68u8, 207u8, 223u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: RELAY_GAS_CHECK_BUFFERReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: RELAY_GAS_CHECK_BUFFERReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `RELAY_RESERVED_GAS()` and selector `0x8cbeeef2`. +```solidity +function RELAY_RESERVED_GAS() external view returns (uint64); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct RELAY_RESERVED_GASCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`RELAY_RESERVED_GAS()`](RELAY_RESERVED_GASCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct RELAY_RESERVED_GASReturn { + #[allow(missing_docs)] + pub _0: u64, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: RELAY_RESERVED_GASCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for RELAY_RESERVED_GASCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u64,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: RELAY_RESERVED_GASReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for RELAY_RESERVED_GASReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for RELAY_RESERVED_GASCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u64; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "RELAY_RESERVED_GAS()"; + const SELECTOR: [u8; 4] = [140u8, 190u8, 238u8, 242u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: RELAY_RESERVED_GASReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: RELAY_RESERVED_GASReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `TX_BASE_GAS()` and selector `0x2f7d3922`. +```solidity +function TX_BASE_GAS() external view returns (uint64); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct TX_BASE_GASCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`TX_BASE_GAS()`](TX_BASE_GASCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct TX_BASE_GASReturn { + #[allow(missing_docs)] + pub _0: u64, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: TX_BASE_GASCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for TX_BASE_GASCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u64,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: TX_BASE_GASReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for TX_BASE_GASReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for TX_BASE_GASCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u64; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "TX_BASE_GAS()"; + const SELECTOR: [u8; 4] = [47u8, 125u8, 57u8, 34u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: TX_BASE_GASReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: TX_BASE_GASReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `baseGas(bytes,uint32)` and selector `0xb28ade25`. +```solidity +function baseGas(bytes memory _message, uint32 _minGasLimit) external pure returns (uint64); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct baseGasCall { + #[allow(missing_docs)] + pub _message: alloy::sol_types::private::Bytes, + #[allow(missing_docs)] + pub _minGasLimit: u32, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`baseGas(bytes,uint32)`](baseGasCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct baseGasReturn { + #[allow(missing_docs)] + pub _0: u64, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Bytes, + alloy::sol_types::sol_data::Uint<32>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Bytes, u32); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: baseGasCall) -> Self { + (value._message, value._minGasLimit) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for baseGasCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _message: tuple.0, + _minGasLimit: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u64,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: baseGasReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for baseGasReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for baseGasCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Bytes, + alloy::sol_types::sol_data::Uint<32>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u64; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "baseGas(bytes,uint32)"; + const SELECTOR: [u8; 4] = [178u8, 138u8, 222u8, 37u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._message, + ), + as alloy_sol_types::SolType>::tokenize(&self._minGasLimit), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: baseGasReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: baseGasReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `failedMessages(bytes32)` and selector `0xa4e7f8bd`. +```solidity +function failedMessages(bytes32) external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct failedMessagesCall(pub alloy::sol_types::private::FixedBytes<32>); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`failedMessages(bytes32)`](failedMessagesCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct failedMessagesReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: failedMessagesCall) -> Self { + (value.0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for failedMessagesCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self(tuple.0) + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: failedMessagesReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for failedMessagesReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for failedMessagesCall { + type Parameters<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "failedMessages(bytes32)"; + const SELECTOR: [u8; 4] = [164u8, 231u8, 248u8, 189u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.0), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: failedMessagesReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: failedMessagesReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `initVersion()` and selector `0x38d38c97`. +```solidity +function initVersion() external view returns (uint8); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct initVersionCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`initVersion()`](initVersionCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct initVersionReturn { + #[allow(missing_docs)] + pub _0: u8, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: initVersionCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for initVersionCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<8>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u8,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: initVersionReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for initVersionReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for initVersionCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u8; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<8>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "initVersion()"; + const SELECTOR: [u8; 4] = [56u8, 211u8, 140u8, 151u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: initVersionReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: initVersionReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `initialize(address,address)` and selector `0x485cc955`. +```solidity +function initialize(address _systemConfig, address _portal) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct initializeCall { + #[allow(missing_docs)] + pub _systemConfig: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _portal: alloy::sol_types::private::Address, + } + ///Container type for the return parameters of the [`initialize(address,address)`](initializeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct initializeReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: initializeCall) -> Self { + (value._systemConfig, value._portal) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for initializeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _systemConfig: tuple.0, + _portal: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: initializeReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for initializeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl initializeReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for initializeCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = initializeReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "initialize(address,address)"; + const SELECTOR: [u8; 4] = [72u8, 92u8, 201u8, 85u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._systemConfig, + ), + ::tokenize( + &self._portal, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + initializeReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `messageNonce()` and selector `0xecc70428`. +```solidity +function messageNonce() external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct messageNonceCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`messageNonce()`](messageNonceCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct messageNonceReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: messageNonceCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for messageNonceCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: messageNonceReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for messageNonceReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for messageNonceCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "messageNonce()"; + const SELECTOR: [u8; 4] = [236u8, 199u8, 4u8, 40u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: messageNonceReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: messageNonceReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `otherMessenger()` and selector `0xdb505d80`. +```solidity +function otherMessenger() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct otherMessengerCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`otherMessenger()`](otherMessengerCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct otherMessengerReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: otherMessengerCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for otherMessengerCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: otherMessengerReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for otherMessengerReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for otherMessengerCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "otherMessenger()"; + const SELECTOR: [u8; 4] = [219u8, 80u8, 93u8, 128u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: otherMessengerReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: otherMessengerReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `paused()` and selector `0x5c975abb`. +```solidity +function paused() external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct pausedCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`paused()`](pausedCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct pausedReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: pausedCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for pausedCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: pausedReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for pausedReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for pausedCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "paused()"; + const SELECTOR: [u8; 4] = [92u8, 151u8, 90u8, 187u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: pausedReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: pausedReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `portal()` and selector `0x6425666b`. +```solidity +function portal() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct portalCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`portal()`](portalCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct portalReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: portalCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for portalCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: portalReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for portalReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for portalCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "portal()"; + const SELECTOR: [u8; 4] = [100u8, 37u8, 102u8, 107u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: portalReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: portalReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `proxyAdmin()` and selector `0x3e47158c`. +```solidity +function proxyAdmin() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct proxyAdminCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`proxyAdmin()`](proxyAdminCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct proxyAdminReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: proxyAdminCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for proxyAdminCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: proxyAdminReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for proxyAdminReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for proxyAdminCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "proxyAdmin()"; + const SELECTOR: [u8; 4] = [62u8, 71u8, 21u8, 140u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: proxyAdminReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: proxyAdminReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `proxyAdminOwner()` and selector `0xdad544e0`. +```solidity +function proxyAdminOwner() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct proxyAdminOwnerCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`proxyAdminOwner()`](proxyAdminOwnerCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct proxyAdminOwnerReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: proxyAdminOwnerCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for proxyAdminOwnerCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: proxyAdminOwnerReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for proxyAdminOwnerReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for proxyAdminOwnerCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "proxyAdminOwner()"; + const SELECTOR: [u8; 4] = [218u8, 213u8, 68u8, 224u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: proxyAdminOwnerReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: proxyAdminOwnerReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `relayMessage(uint256,address,address,uint256,uint256,bytes)` and selector `0xd764ad0b`. +```solidity +function relayMessage(uint256 _nonce, address _sender, address _target, uint256 _value, uint256 _minGasLimit, bytes memory _message) external payable; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct relayMessageCall { + #[allow(missing_docs)] + pub _nonce: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _sender: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _target: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _value: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _minGasLimit: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _message: alloy::sol_types::private::Bytes, + } + ///Container type for the return parameters of the [`relayMessage(uint256,address,address,uint256,uint256,bytes)`](relayMessageCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct relayMessageReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::Bytes, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: relayMessageCall) -> Self { + ( + value._nonce, + value._sender, + value._target, + value._value, + value._minGasLimit, + value._message, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for relayMessageCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _nonce: tuple.0, + _sender: tuple.1, + _target: tuple.2, + _value: tuple.3, + _minGasLimit: tuple.4, + _message: tuple.5, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: relayMessageReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for relayMessageReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl relayMessageReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for relayMessageCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Bytes, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = relayMessageReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "relayMessage(uint256,address,address,uint256,uint256,bytes)"; + const SELECTOR: [u8; 4] = [215u8, 100u8, 173u8, 11u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._nonce), + ::tokenize( + &self._sender, + ), + ::tokenize( + &self._target, + ), + as alloy_sol_types::SolType>::tokenize(&self._value), + as alloy_sol_types::SolType>::tokenize(&self._minGasLimit), + ::tokenize( + &self._message, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + relayMessageReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `sendMessage(address,bytes,uint32)` and selector `0x3dbb202b`. +```solidity +function sendMessage(address _target, bytes memory _message, uint32 _minGasLimit) external payable; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct sendMessageCall { + #[allow(missing_docs)] + pub _target: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _message: alloy::sol_types::private::Bytes, + #[allow(missing_docs)] + pub _minGasLimit: u32, + } + ///Container type for the return parameters of the [`sendMessage(address,bytes,uint32)`](sendMessageCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct sendMessageReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Bytes, + alloy::sol_types::sol_data::Uint<32>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Bytes, + u32, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: sendMessageCall) -> Self { + (value._target, value._message, value._minGasLimit) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for sendMessageCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _target: tuple.0, + _message: tuple.1, + _minGasLimit: tuple.2, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: sendMessageReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for sendMessageReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl sendMessageReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for sendMessageCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Bytes, + alloy::sol_types::sol_data::Uint<32>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = sendMessageReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "sendMessage(address,bytes,uint32)"; + const SELECTOR: [u8; 4] = [61u8, 187u8, 32u8, 43u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._target, + ), + ::tokenize( + &self._message, + ), + as alloy_sol_types::SolType>::tokenize(&self._minGasLimit), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + sendMessageReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `successfulMessages(bytes32)` and selector `0xb1b1b209`. +```solidity +function successfulMessages(bytes32) external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct successfulMessagesCall(pub alloy::sol_types::private::FixedBytes<32>); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`successfulMessages(bytes32)`](successfulMessagesCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct successfulMessagesReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: successfulMessagesCall) -> Self { + (value.0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for successfulMessagesCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self(tuple.0) + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: successfulMessagesReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for successfulMessagesReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for successfulMessagesCall { + type Parameters<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "successfulMessages(bytes32)"; + const SELECTOR: [u8; 4] = [177u8, 177u8, 178u8, 9u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.0), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: successfulMessagesReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: successfulMessagesReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `superchainConfig()` and selector `0x35e80ab3`. +```solidity +function superchainConfig() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct superchainConfigCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`superchainConfig()`](superchainConfigCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct superchainConfigReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: superchainConfigCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for superchainConfigCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: superchainConfigReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for superchainConfigReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for superchainConfigCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "superchainConfig()"; + const SELECTOR: [u8; 4] = [53u8, 232u8, 10u8, 179u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: superchainConfigReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: superchainConfigReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `systemConfig()` and selector `0x33d7e2bd`. +```solidity +function systemConfig() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct systemConfigCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`systemConfig()`](systemConfigCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct systemConfigReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: systemConfigCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for systemConfigCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: systemConfigReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for systemConfigReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for systemConfigCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "systemConfig()"; + const SELECTOR: [u8; 4] = [51u8, 215u8, 226u8, 189u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: systemConfigReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: systemConfigReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `version()` and selector `0x54fd4d50`. +```solidity +function version() external view returns (string memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`version()`](versionCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for versionCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::String; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "version()"; + const SELECTOR: [u8; 4] = [84u8, 253u8, 77u8, 80u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `xDomainMessageSender()` and selector `0x6e296e45`. +```solidity +function xDomainMessageSender() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct xDomainMessageSenderCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`xDomainMessageSender()`](xDomainMessageSenderCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct xDomainMessageSenderReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: xDomainMessageSenderCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for xDomainMessageSenderCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: xDomainMessageSenderReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for xDomainMessageSenderReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for xDomainMessageSenderCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "xDomainMessageSender()"; + const SELECTOR: [u8; 4] = [110u8, 41u8, 110u8, 69u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: xDomainMessageSenderReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: xDomainMessageSenderReturn = r.into(); + r._0 + }) + } + } + }; + ///Container for all the [`L1CrossDomainMessenger`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum L1CrossDomainMessengerCalls { + #[allow(missing_docs)] + ENCODING_OVERHEAD(ENCODING_OVERHEADCall), + #[allow(missing_docs)] + FLOOR_CALLDATA_OVERHEAD(FLOOR_CALLDATA_OVERHEADCall), + #[allow(missing_docs)] + MESSAGE_VERSION(MESSAGE_VERSIONCall), + #[allow(missing_docs)] + MIN_GAS_CALLDATA_OVERHEAD(MIN_GAS_CALLDATA_OVERHEADCall), + #[allow(missing_docs)] + MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR(MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATORCall), + #[allow(missing_docs)] + MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR(MIN_GAS_DYNAMIC_OVERHEAD_NUMERATORCall), + #[allow(missing_docs)] + OTHER_MESSENGER(OTHER_MESSENGERCall), + #[allow(missing_docs)] + PORTAL(PORTALCall), + #[allow(missing_docs)] + RELAY_CALL_OVERHEAD(RELAY_CALL_OVERHEADCall), + #[allow(missing_docs)] + RELAY_CONSTANT_OVERHEAD(RELAY_CONSTANT_OVERHEADCall), + #[allow(missing_docs)] + RELAY_GAS_CHECK_BUFFER(RELAY_GAS_CHECK_BUFFERCall), + #[allow(missing_docs)] + RELAY_RESERVED_GAS(RELAY_RESERVED_GASCall), + #[allow(missing_docs)] + TX_BASE_GAS(TX_BASE_GASCall), + #[allow(missing_docs)] + baseGas(baseGasCall), + #[allow(missing_docs)] + failedMessages(failedMessagesCall), + #[allow(missing_docs)] + initVersion(initVersionCall), + #[allow(missing_docs)] + initialize(initializeCall), + #[allow(missing_docs)] + messageNonce(messageNonceCall), + #[allow(missing_docs)] + otherMessenger(otherMessengerCall), + #[allow(missing_docs)] + paused(pausedCall), + #[allow(missing_docs)] + portal(portalCall), + #[allow(missing_docs)] + proxyAdmin(proxyAdminCall), + #[allow(missing_docs)] + proxyAdminOwner(proxyAdminOwnerCall), + #[allow(missing_docs)] + relayMessage(relayMessageCall), + #[allow(missing_docs)] + sendMessage(sendMessageCall), + #[allow(missing_docs)] + successfulMessages(successfulMessagesCall), + #[allow(missing_docs)] + superchainConfig(superchainConfigCall), + #[allow(missing_docs)] + systemConfig(systemConfigCall), + #[allow(missing_docs)] + version(versionCall), + #[allow(missing_docs)] + xDomainMessageSender(xDomainMessageSenderCall), + } + impl L1CrossDomainMessengerCalls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [2u8, 143u8, 133u8, 247u8], + [12u8, 86u8, 132u8, 152u8], + [15u8, 247u8, 84u8, 234u8], + [40u8, 40u8, 215u8, 232u8], + [47u8, 125u8, 57u8, 34u8], + [51u8, 215u8, 226u8, 189u8], + [53u8, 232u8, 10u8, 179u8], + [56u8, 211u8, 140u8, 151u8], + [61u8, 187u8, 32u8, 43u8], + [62u8, 71u8, 21u8, 140u8], + [63u8, 130u8, 122u8, 90u8], + [72u8, 92u8, 201u8, 85u8], + [76u8, 29u8, 106u8, 105u8], + [84u8, 253u8, 77u8, 80u8], + [86u8, 68u8, 207u8, 223u8], + [92u8, 151u8, 90u8, 187u8], + [100u8, 37u8, 102u8, 107u8], + [110u8, 41u8, 110u8, 69u8], + [131u8, 167u8, 64u8, 116u8], + [140u8, 190u8, 238u8, 242u8], + [159u8, 206u8, 129u8, 44u8], + [164u8, 231u8, 248u8, 189u8], + [177u8, 177u8, 178u8, 9u8], + [178u8, 138u8, 222u8, 37u8], + [215u8, 100u8, 173u8, 11u8], + [218u8, 213u8, 68u8, 224u8], + [219u8, 80u8, 93u8, 128u8], + [221u8, 213u8, 164u8, 15u8], + [228u8, 110u8, 36u8, 90u8], + [236u8, 199u8, 4u8, 40u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(MIN_GAS_CALLDATA_OVERHEAD), + ::core::stringify!(MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR), + ::core::stringify!(PORTAL), + ::core::stringify!(MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR), + ::core::stringify!(TX_BASE_GAS), + ::core::stringify!(systemConfig), + ::core::stringify!(superchainConfig), + ::core::stringify!(initVersion), + ::core::stringify!(sendMessage), + ::core::stringify!(proxyAdmin), + ::core::stringify!(MESSAGE_VERSION), + ::core::stringify!(initialize), + ::core::stringify!(RELAY_CALL_OVERHEAD), + ::core::stringify!(version), + ::core::stringify!(RELAY_GAS_CHECK_BUFFER), + ::core::stringify!(paused), + ::core::stringify!(portal), + ::core::stringify!(xDomainMessageSender), + ::core::stringify!(RELAY_CONSTANT_OVERHEAD), + ::core::stringify!(RELAY_RESERVED_GAS), + ::core::stringify!(OTHER_MESSENGER), + ::core::stringify!(failedMessages), + ::core::stringify!(successfulMessages), + ::core::stringify!(baseGas), + ::core::stringify!(relayMessage), + ::core::stringify!(proxyAdminOwner), + ::core::stringify!(otherMessenger), + ::core::stringify!(ENCODING_OVERHEAD), + ::core::stringify!(FLOOR_CALLDATA_OVERHEAD), + ::core::stringify!(messageNonce), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for L1CrossDomainMessengerCalls { + const NAME: &'static str = "L1CrossDomainMessengerCalls"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 30usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::ENCODING_OVERHEAD(_) => { + ::SELECTOR + } + Self::FLOOR_CALLDATA_OVERHEAD(_) => { + ::SELECTOR + } + Self::MESSAGE_VERSION(_) => { + ::SELECTOR + } + Self::MIN_GAS_CALLDATA_OVERHEAD(_) => { + ::SELECTOR + } + Self::MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR(_) => { + ::SELECTOR + } + Self::MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR(_) => { + ::SELECTOR + } + Self::OTHER_MESSENGER(_) => { + ::SELECTOR + } + Self::PORTAL(_) => ::SELECTOR, + Self::RELAY_CALL_OVERHEAD(_) => { + ::SELECTOR + } + Self::RELAY_CONSTANT_OVERHEAD(_) => { + ::SELECTOR + } + Self::RELAY_GAS_CHECK_BUFFER(_) => { + ::SELECTOR + } + Self::RELAY_RESERVED_GAS(_) => { + ::SELECTOR + } + Self::TX_BASE_GAS(_) => { + ::SELECTOR + } + Self::baseGas(_) => ::SELECTOR, + Self::failedMessages(_) => { + ::SELECTOR + } + Self::initVersion(_) => { + ::SELECTOR + } + Self::initialize(_) => { + ::SELECTOR + } + Self::messageNonce(_) => { + ::SELECTOR + } + Self::otherMessenger(_) => { + ::SELECTOR + } + Self::paused(_) => ::SELECTOR, + Self::portal(_) => ::SELECTOR, + Self::proxyAdmin(_) => { + ::SELECTOR + } + Self::proxyAdminOwner(_) => { + ::SELECTOR + } + Self::relayMessage(_) => { + ::SELECTOR + } + Self::sendMessage(_) => { + ::SELECTOR + } + Self::successfulMessages(_) => { + ::SELECTOR + } + Self::superchainConfig(_) => { + ::SELECTOR + } + Self::systemConfig(_) => { + ::SELECTOR + } + Self::version(_) => ::SELECTOR, + Self::xDomainMessageSender(_) => { + ::SELECTOR + } + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn MIN_GAS_CALLDATA_OVERHEAD( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L1CrossDomainMessengerCalls::MIN_GAS_CALLDATA_OVERHEAD) + } + MIN_GAS_CALLDATA_OVERHEAD + }, + { + fn MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + L1CrossDomainMessengerCalls::MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR, + ) + } + MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR + }, + { + fn PORTAL( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(L1CrossDomainMessengerCalls::PORTAL) + } + PORTAL + }, + { + fn MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + L1CrossDomainMessengerCalls::MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR, + ) + } + MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR + }, + { + fn TX_BASE_GAS( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L1CrossDomainMessengerCalls::TX_BASE_GAS) + } + TX_BASE_GAS + }, + { + fn systemConfig( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L1CrossDomainMessengerCalls::systemConfig) + } + systemConfig + }, + { + fn superchainConfig( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L1CrossDomainMessengerCalls::superchainConfig) + } + superchainConfig + }, + { + fn initVersion( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L1CrossDomainMessengerCalls::initVersion) + } + initVersion + }, + { + fn sendMessage( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L1CrossDomainMessengerCalls::sendMessage) + } + sendMessage + }, + { + fn proxyAdmin( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L1CrossDomainMessengerCalls::proxyAdmin) + } + proxyAdmin + }, + { + fn MESSAGE_VERSION( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L1CrossDomainMessengerCalls::MESSAGE_VERSION) + } + MESSAGE_VERSION + }, + { + fn initialize( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L1CrossDomainMessengerCalls::initialize) + } + initialize + }, + { + fn RELAY_CALL_OVERHEAD( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L1CrossDomainMessengerCalls::RELAY_CALL_OVERHEAD) + } + RELAY_CALL_OVERHEAD + }, + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(L1CrossDomainMessengerCalls::version) + } + version + }, + { + fn RELAY_GAS_CHECK_BUFFER( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L1CrossDomainMessengerCalls::RELAY_GAS_CHECK_BUFFER) + } + RELAY_GAS_CHECK_BUFFER + }, + { + fn paused( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(L1CrossDomainMessengerCalls::paused) + } + paused + }, + { + fn portal( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(L1CrossDomainMessengerCalls::portal) + } + portal + }, + { + fn xDomainMessageSender( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L1CrossDomainMessengerCalls::xDomainMessageSender) + } + xDomainMessageSender + }, + { + fn RELAY_CONSTANT_OVERHEAD( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L1CrossDomainMessengerCalls::RELAY_CONSTANT_OVERHEAD) + } + RELAY_CONSTANT_OVERHEAD + }, + { + fn RELAY_RESERVED_GAS( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L1CrossDomainMessengerCalls::RELAY_RESERVED_GAS) + } + RELAY_RESERVED_GAS + }, + { + fn OTHER_MESSENGER( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L1CrossDomainMessengerCalls::OTHER_MESSENGER) + } + OTHER_MESSENGER + }, + { + fn failedMessages( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L1CrossDomainMessengerCalls::failedMessages) + } + failedMessages + }, + { + fn successfulMessages( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L1CrossDomainMessengerCalls::successfulMessages) + } + successfulMessages + }, + { + fn baseGas( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(L1CrossDomainMessengerCalls::baseGas) + } + baseGas + }, + { + fn relayMessage( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L1CrossDomainMessengerCalls::relayMessage) + } + relayMessage + }, + { + fn proxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L1CrossDomainMessengerCalls::proxyAdminOwner) + } + proxyAdminOwner + }, + { + fn otherMessenger( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L1CrossDomainMessengerCalls::otherMessenger) + } + otherMessenger + }, + { + fn ENCODING_OVERHEAD( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L1CrossDomainMessengerCalls::ENCODING_OVERHEAD) + } + ENCODING_OVERHEAD + }, + { + fn FLOOR_CALLDATA_OVERHEAD( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L1CrossDomainMessengerCalls::FLOOR_CALLDATA_OVERHEAD) + } + FLOOR_CALLDATA_OVERHEAD + }, + { + fn messageNonce( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L1CrossDomainMessengerCalls::messageNonce) + } + messageNonce + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn MIN_GAS_CALLDATA_OVERHEAD( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1CrossDomainMessengerCalls::MIN_GAS_CALLDATA_OVERHEAD) + } + MIN_GAS_CALLDATA_OVERHEAD + }, + { + fn MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + L1CrossDomainMessengerCalls::MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR, + ) + } + MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR + }, + { + fn PORTAL( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1CrossDomainMessengerCalls::PORTAL) + } + PORTAL + }, + { + fn MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + L1CrossDomainMessengerCalls::MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR, + ) + } + MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR + }, + { + fn TX_BASE_GAS( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1CrossDomainMessengerCalls::TX_BASE_GAS) + } + TX_BASE_GAS + }, + { + fn systemConfig( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1CrossDomainMessengerCalls::systemConfig) + } + systemConfig + }, + { + fn superchainConfig( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1CrossDomainMessengerCalls::superchainConfig) + } + superchainConfig + }, + { + fn initVersion( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1CrossDomainMessengerCalls::initVersion) + } + initVersion + }, + { + fn sendMessage( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1CrossDomainMessengerCalls::sendMessage) + } + sendMessage + }, + { + fn proxyAdmin( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1CrossDomainMessengerCalls::proxyAdmin) + } + proxyAdmin + }, + { + fn MESSAGE_VERSION( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1CrossDomainMessengerCalls::MESSAGE_VERSION) + } + MESSAGE_VERSION + }, + { + fn initialize( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1CrossDomainMessengerCalls::initialize) + } + initialize + }, + { + fn RELAY_CALL_OVERHEAD( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1CrossDomainMessengerCalls::RELAY_CALL_OVERHEAD) + } + RELAY_CALL_OVERHEAD + }, + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1CrossDomainMessengerCalls::version) + } + version + }, + { + fn RELAY_GAS_CHECK_BUFFER( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1CrossDomainMessengerCalls::RELAY_GAS_CHECK_BUFFER) + } + RELAY_GAS_CHECK_BUFFER + }, + { + fn paused( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1CrossDomainMessengerCalls::paused) + } + paused + }, + { + fn portal( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1CrossDomainMessengerCalls::portal) + } + portal + }, + { + fn xDomainMessageSender( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1CrossDomainMessengerCalls::xDomainMessageSender) + } + xDomainMessageSender + }, + { + fn RELAY_CONSTANT_OVERHEAD( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1CrossDomainMessengerCalls::RELAY_CONSTANT_OVERHEAD) + } + RELAY_CONSTANT_OVERHEAD + }, + { + fn RELAY_RESERVED_GAS( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1CrossDomainMessengerCalls::RELAY_RESERVED_GAS) + } + RELAY_RESERVED_GAS + }, + { + fn OTHER_MESSENGER( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1CrossDomainMessengerCalls::OTHER_MESSENGER) + } + OTHER_MESSENGER + }, + { + fn failedMessages( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1CrossDomainMessengerCalls::failedMessages) + } + failedMessages + }, + { + fn successfulMessages( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1CrossDomainMessengerCalls::successfulMessages) + } + successfulMessages + }, + { + fn baseGas( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1CrossDomainMessengerCalls::baseGas) + } + baseGas + }, + { + fn relayMessage( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1CrossDomainMessengerCalls::relayMessage) + } + relayMessage + }, + { + fn proxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1CrossDomainMessengerCalls::proxyAdminOwner) + } + proxyAdminOwner + }, + { + fn otherMessenger( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1CrossDomainMessengerCalls::otherMessenger) + } + otherMessenger + }, + { + fn ENCODING_OVERHEAD( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1CrossDomainMessengerCalls::ENCODING_OVERHEAD) + } + ENCODING_OVERHEAD + }, + { + fn FLOOR_CALLDATA_OVERHEAD( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1CrossDomainMessengerCalls::FLOOR_CALLDATA_OVERHEAD) + } + FLOOR_CALLDATA_OVERHEAD + }, + { + fn messageNonce( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1CrossDomainMessengerCalls::messageNonce) + } + messageNonce + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::ENCODING_OVERHEAD(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::FLOOR_CALLDATA_OVERHEAD(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::MESSAGE_VERSION(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::MIN_GAS_CALLDATA_OVERHEAD(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::OTHER_MESSENGER(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::PORTAL(inner) => { + ::abi_encoded_size(inner) + } + Self::RELAY_CALL_OVERHEAD(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::RELAY_CONSTANT_OVERHEAD(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::RELAY_GAS_CHECK_BUFFER(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::RELAY_RESERVED_GAS(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::TX_BASE_GAS(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::baseGas(inner) => { + ::abi_encoded_size(inner) + } + Self::failedMessages(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::initVersion(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::initialize(inner) => { + ::abi_encoded_size(inner) + } + Self::messageNonce(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::otherMessenger(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::paused(inner) => { + ::abi_encoded_size(inner) + } + Self::portal(inner) => { + ::abi_encoded_size(inner) + } + Self::proxyAdmin(inner) => { + ::abi_encoded_size(inner) + } + Self::proxyAdminOwner(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::relayMessage(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::sendMessage(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::successfulMessages(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::superchainConfig(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::systemConfig(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::version(inner) => { + ::abi_encoded_size(inner) + } + Self::xDomainMessageSender(inner) => { + ::abi_encoded_size( + inner, + ) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::ENCODING_OVERHEAD(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::FLOOR_CALLDATA_OVERHEAD(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::MESSAGE_VERSION(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::MIN_GAS_CALLDATA_OVERHEAD(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::OTHER_MESSENGER(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::PORTAL(inner) => { + ::abi_encode_raw(inner, out) + } + Self::RELAY_CALL_OVERHEAD(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::RELAY_CONSTANT_OVERHEAD(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::RELAY_GAS_CHECK_BUFFER(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::RELAY_RESERVED_GAS(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::TX_BASE_GAS(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::baseGas(inner) => { + ::abi_encode_raw(inner, out) + } + Self::failedMessages(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::initVersion(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::initialize(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::messageNonce(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::otherMessenger(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::paused(inner) => { + ::abi_encode_raw(inner, out) + } + Self::portal(inner) => { + ::abi_encode_raw(inner, out) + } + Self::proxyAdmin(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::proxyAdminOwner(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::relayMessage(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::sendMessage(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::successfulMessages(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::superchainConfig(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::systemConfig(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::version(inner) => { + ::abi_encode_raw(inner, out) + } + Self::xDomainMessageSender(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + } + } + } + ///Container for all the [`L1CrossDomainMessenger`](self) custom errors. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum L1CrossDomainMessengerErrors { + #[allow(missing_docs)] + ProxyAdminOwnedBase_NotProxyAdmin(ProxyAdminOwnedBase_NotProxyAdmin), + #[allow(missing_docs)] + ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner( + ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner, + ), + #[allow(missing_docs)] + ProxyAdminOwnedBase_NotProxyAdminOwner(ProxyAdminOwnedBase_NotProxyAdminOwner), + #[allow(missing_docs)] + ProxyAdminOwnedBase_NotResolvedDelegateProxy( + ProxyAdminOwnedBase_NotResolvedDelegateProxy, + ), + #[allow(missing_docs)] + ProxyAdminOwnedBase_NotSharedProxyAdminOwner( + ProxyAdminOwnedBase_NotSharedProxyAdminOwner, + ), + #[allow(missing_docs)] + ProxyAdminOwnedBase_ProxyAdminNotFound(ProxyAdminOwnedBase_ProxyAdminNotFound), + #[allow(missing_docs)] + ReinitializableBase_ZeroInitVersion(ReinitializableBase_ZeroInitVersion), + } + impl L1CrossDomainMessengerErrors { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [7u8, 92u8, 67u8, 20u8], + [51u8, 33u8, 68u8, 219u8], + [84u8, 228u8, 51u8, 205u8], + [127u8, 18u8, 198u8, 75u8], + [155u8, 1u8, 175u8, 237u8], + [196u8, 5u8, 10u8, 38u8], + [232u8, 24u8, 220u8, 195u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(ProxyAdminOwnedBase_NotSharedProxyAdminOwner), + ::core::stringify!(ProxyAdminOwnedBase_ProxyAdminNotFound), + ::core::stringify!(ProxyAdminOwnedBase_NotResolvedDelegateProxy), + ::core::stringify!(ProxyAdminOwnedBase_NotProxyAdminOwner), + ::core::stringify!(ReinitializableBase_ZeroInitVersion), + ::core::stringify!(ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner), + ::core::stringify!(ProxyAdminOwnedBase_NotProxyAdmin), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for L1CrossDomainMessengerErrors { + const NAME: &'static str = "L1CrossDomainMessengerErrors"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 7usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::ProxyAdminOwnedBase_NotProxyAdmin(_) => { + ::SELECTOR + } + Self::ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner(_) => { + ::SELECTOR + } + Self::ProxyAdminOwnedBase_NotProxyAdminOwner(_) => { + ::SELECTOR + } + Self::ProxyAdminOwnedBase_NotResolvedDelegateProxy(_) => { + ::SELECTOR + } + Self::ProxyAdminOwnedBase_NotSharedProxyAdminOwner(_) => { + ::SELECTOR + } + Self::ProxyAdminOwnedBase_ProxyAdminNotFound(_) => { + ::SELECTOR + } + Self::ReinitializableBase_ZeroInitVersion(_) => { + ::SELECTOR + } + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn ProxyAdminOwnedBase_NotSharedProxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + L1CrossDomainMessengerErrors::ProxyAdminOwnedBase_NotSharedProxyAdminOwner, + ) + } + ProxyAdminOwnedBase_NotSharedProxyAdminOwner + }, + { + fn ProxyAdminOwnedBase_ProxyAdminNotFound( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + L1CrossDomainMessengerErrors::ProxyAdminOwnedBase_ProxyAdminNotFound, + ) + } + ProxyAdminOwnedBase_ProxyAdminNotFound + }, + { + fn ProxyAdminOwnedBase_NotResolvedDelegateProxy( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + L1CrossDomainMessengerErrors::ProxyAdminOwnedBase_NotResolvedDelegateProxy, + ) + } + ProxyAdminOwnedBase_NotResolvedDelegateProxy + }, + { + fn ProxyAdminOwnedBase_NotProxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + L1CrossDomainMessengerErrors::ProxyAdminOwnedBase_NotProxyAdminOwner, + ) + } + ProxyAdminOwnedBase_NotProxyAdminOwner + }, + { + fn ReinitializableBase_ZeroInitVersion( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + L1CrossDomainMessengerErrors::ReinitializableBase_ZeroInitVersion, + ) + } + ReinitializableBase_ZeroInitVersion + }, + { + fn ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + L1CrossDomainMessengerErrors::ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner, + ) + } + ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner + }, + { + fn ProxyAdminOwnedBase_NotProxyAdmin( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + L1CrossDomainMessengerErrors::ProxyAdminOwnedBase_NotProxyAdmin, + ) + } + ProxyAdminOwnedBase_NotProxyAdmin + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn ProxyAdminOwnedBase_NotSharedProxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + L1CrossDomainMessengerErrors::ProxyAdminOwnedBase_NotSharedProxyAdminOwner, + ) + } + ProxyAdminOwnedBase_NotSharedProxyAdminOwner + }, + { + fn ProxyAdminOwnedBase_ProxyAdminNotFound( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + L1CrossDomainMessengerErrors::ProxyAdminOwnedBase_ProxyAdminNotFound, + ) + } + ProxyAdminOwnedBase_ProxyAdminNotFound + }, + { + fn ProxyAdminOwnedBase_NotResolvedDelegateProxy( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + L1CrossDomainMessengerErrors::ProxyAdminOwnedBase_NotResolvedDelegateProxy, + ) + } + ProxyAdminOwnedBase_NotResolvedDelegateProxy + }, + { + fn ProxyAdminOwnedBase_NotProxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + L1CrossDomainMessengerErrors::ProxyAdminOwnedBase_NotProxyAdminOwner, + ) + } + ProxyAdminOwnedBase_NotProxyAdminOwner + }, + { + fn ReinitializableBase_ZeroInitVersion( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + L1CrossDomainMessengerErrors::ReinitializableBase_ZeroInitVersion, + ) + } + ReinitializableBase_ZeroInitVersion + }, + { + fn ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + L1CrossDomainMessengerErrors::ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner, + ) + } + ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner + }, + { + fn ProxyAdminOwnedBase_NotProxyAdmin( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + L1CrossDomainMessengerErrors::ProxyAdminOwnedBase_NotProxyAdmin, + ) + } + ProxyAdminOwnedBase_NotProxyAdmin + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::ProxyAdminOwnedBase_NotProxyAdmin(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ProxyAdminOwnedBase_NotProxyAdminOwner(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ProxyAdminOwnedBase_NotResolvedDelegateProxy(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ProxyAdminOwnedBase_NotSharedProxyAdminOwner(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ProxyAdminOwnedBase_ProxyAdminNotFound(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ReinitializableBase_ZeroInitVersion(inner) => { + ::abi_encoded_size( + inner, + ) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::ProxyAdminOwnedBase_NotProxyAdmin(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ProxyAdminOwnedBase_NotProxyAdminOwner(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ProxyAdminOwnedBase_NotResolvedDelegateProxy(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ProxyAdminOwnedBase_NotSharedProxyAdminOwner(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ProxyAdminOwnedBase_ProxyAdminNotFound(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ReinitializableBase_ZeroInitVersion(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + } + } + } + ///Container for all the [`L1CrossDomainMessenger`](self) events. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum L1CrossDomainMessengerEvents { + #[allow(missing_docs)] + FailedRelayedMessage(FailedRelayedMessage), + #[allow(missing_docs)] + Initialized(Initialized), + #[allow(missing_docs)] + RelayedMessage(RelayedMessage), + #[allow(missing_docs)] + SentMessage(SentMessage), + #[allow(missing_docs)] + SentMessageExtension1(SentMessageExtension1), + } + impl L1CrossDomainMessengerEvents { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 32usize]] = &[ + [ + 70u8, 65u8, 223u8, 74u8, 150u8, 32u8, 113u8, 225u8, 39u8, 25u8, 216u8, + 200u8, 200u8, 229u8, 172u8, 127u8, 196u8, 217u8, 123u8, 146u8, 115u8, + 70u8, 163u8, 215u8, 163u8, 53u8, 177u8, 247u8, 81u8, 126u8, 19u8, 60u8, + ], + [ + 127u8, 38u8, 184u8, 63u8, 249u8, 110u8, 31u8, 43u8, 106u8, 104u8, 47u8, + 19u8, 56u8, 82u8, 246u8, 121u8, 138u8, 9u8, 196u8, 101u8, 218u8, 149u8, + 146u8, 20u8, 96u8, 206u8, 251u8, 56u8, 71u8, 64u8, 36u8, 152u8, + ], + [ + 142u8, 187u8, 46u8, 194u8, 70u8, 91u8, 219u8, 42u8, 6u8, 166u8, 111u8, + 195u8, 122u8, 9u8, 99u8, 175u8, 138u8, 42u8, 106u8, 20u8, 121u8, 216u8, + 29u8, 86u8, 253u8, 184u8, 203u8, 185u8, 128u8, 150u8, 213u8, 70u8, + ], + [ + 153u8, 208u8, 224u8, 72u8, 72u8, 75u8, 170u8, 27u8, 21u8, 64u8, 177u8, + 54u8, 124u8, 177u8, 40u8, 172u8, 215u8, 171u8, 41u8, 70u8, 209u8, 237u8, + 145u8, 236u8, 16u8, 227u8, 200u8, 94u8, 75u8, 245u8, 27u8, 143u8, + ], + [ + 203u8, 15u8, 127u8, 253u8, 120u8, 249u8, 174u8, 228u8, 122u8, 36u8, + 143u8, 174u8, 141u8, 177u8, 129u8, 219u8, 110u8, 238u8, 131u8, 48u8, + 57u8, 18u8, 62u8, 2u8, 109u8, 203u8, 255u8, 82u8, 149u8, 34u8, 229u8, + 42u8, + ], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(RelayedMessage), + ::core::stringify!(Initialized), + ::core::stringify!(SentMessageExtension1), + ::core::stringify!(FailedRelayedMessage), + ::core::stringify!(SentMessage), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolEventInterface for L1CrossDomainMessengerEvents { + const NAME: &'static str = "L1CrossDomainMessengerEvents"; + const COUNT: usize = 5usize; + fn decode_raw_log( + topics: &[alloy_sol_types::Word], + data: &[u8], + ) -> alloy_sol_types::Result { + match topics.first().copied() { + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::FailedRelayedMessage) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::Initialized) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::RelayedMessage) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::SentMessage) + } + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::SentMessageExtension1) + } + _ => { + alloy_sol_types::private::Err(alloy_sol_types::Error::InvalidLog { + name: ::NAME, + log: alloy_sol_types::private::Box::new( + alloy_sol_types::private::LogData::new_unchecked( + topics.to_vec(), + data.to_vec().into(), + ), + ), + }) + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for L1CrossDomainMessengerEvents { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + match self { + Self::FailedRelayedMessage(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::Initialized(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::RelayedMessage(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::SentMessage(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::SentMessageExtension1(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + } + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + match self { + Self::FailedRelayedMessage(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::Initialized(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::RelayedMessage(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::SentMessage(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::SentMessageExtension1(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`L1CrossDomainMessenger`](self) contract instance. + +See the [wrapper's documentation](`L1CrossDomainMessengerInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> L1CrossDomainMessengerInstance { + L1CrossDomainMessengerInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + L1CrossDomainMessengerInstance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + L1CrossDomainMessengerInstance::::deploy_builder(__provider) + } + /**A [`L1CrossDomainMessenger`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`L1CrossDomainMessenger`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct L1CrossDomainMessengerInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for L1CrossDomainMessengerInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("L1CrossDomainMessengerInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > L1CrossDomainMessengerInstance { + /**Creates a new wrapper around an on-chain [`L1CrossDomainMessenger`](self) contract instance. + +See the [wrapper's documentation](`L1CrossDomainMessengerInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl L1CrossDomainMessengerInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> L1CrossDomainMessengerInstance { + L1CrossDomainMessengerInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > L1CrossDomainMessengerInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`ENCODING_OVERHEAD`] function. + pub fn ENCODING_OVERHEAD( + &self, + ) -> alloy_contract::SolCallBuilder<&P, ENCODING_OVERHEADCall, N> { + self.call_builder(&ENCODING_OVERHEADCall) + } + ///Creates a new call builder for the [`FLOOR_CALLDATA_OVERHEAD`] function. + pub fn FLOOR_CALLDATA_OVERHEAD( + &self, + ) -> alloy_contract::SolCallBuilder<&P, FLOOR_CALLDATA_OVERHEADCall, N> { + self.call_builder(&FLOOR_CALLDATA_OVERHEADCall) + } + ///Creates a new call builder for the [`MESSAGE_VERSION`] function. + pub fn MESSAGE_VERSION( + &self, + ) -> alloy_contract::SolCallBuilder<&P, MESSAGE_VERSIONCall, N> { + self.call_builder(&MESSAGE_VERSIONCall) + } + ///Creates a new call builder for the [`MIN_GAS_CALLDATA_OVERHEAD`] function. + pub fn MIN_GAS_CALLDATA_OVERHEAD( + &self, + ) -> alloy_contract::SolCallBuilder<&P, MIN_GAS_CALLDATA_OVERHEADCall, N> { + self.call_builder(&MIN_GAS_CALLDATA_OVERHEADCall) + } + ///Creates a new call builder for the [`MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR`] function. + pub fn MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR( + &self, + ) -> alloy_contract::SolCallBuilder< + &P, + MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATORCall, + N, + > { + self.call_builder(&MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATORCall) + } + ///Creates a new call builder for the [`MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR`] function. + pub fn MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR( + &self, + ) -> alloy_contract::SolCallBuilder< + &P, + MIN_GAS_DYNAMIC_OVERHEAD_NUMERATORCall, + N, + > { + self.call_builder(&MIN_GAS_DYNAMIC_OVERHEAD_NUMERATORCall) + } + ///Creates a new call builder for the [`OTHER_MESSENGER`] function. + pub fn OTHER_MESSENGER( + &self, + ) -> alloy_contract::SolCallBuilder<&P, OTHER_MESSENGERCall, N> { + self.call_builder(&OTHER_MESSENGERCall) + } + ///Creates a new call builder for the [`PORTAL`] function. + pub fn PORTAL(&self) -> alloy_contract::SolCallBuilder<&P, PORTALCall, N> { + self.call_builder(&PORTALCall) + } + ///Creates a new call builder for the [`RELAY_CALL_OVERHEAD`] function. + pub fn RELAY_CALL_OVERHEAD( + &self, + ) -> alloy_contract::SolCallBuilder<&P, RELAY_CALL_OVERHEADCall, N> { + self.call_builder(&RELAY_CALL_OVERHEADCall) + } + ///Creates a new call builder for the [`RELAY_CONSTANT_OVERHEAD`] function. + pub fn RELAY_CONSTANT_OVERHEAD( + &self, + ) -> alloy_contract::SolCallBuilder<&P, RELAY_CONSTANT_OVERHEADCall, N> { + self.call_builder(&RELAY_CONSTANT_OVERHEADCall) + } + ///Creates a new call builder for the [`RELAY_GAS_CHECK_BUFFER`] function. + pub fn RELAY_GAS_CHECK_BUFFER( + &self, + ) -> alloy_contract::SolCallBuilder<&P, RELAY_GAS_CHECK_BUFFERCall, N> { + self.call_builder(&RELAY_GAS_CHECK_BUFFERCall) + } + ///Creates a new call builder for the [`RELAY_RESERVED_GAS`] function. + pub fn RELAY_RESERVED_GAS( + &self, + ) -> alloy_contract::SolCallBuilder<&P, RELAY_RESERVED_GASCall, N> { + self.call_builder(&RELAY_RESERVED_GASCall) + } + ///Creates a new call builder for the [`TX_BASE_GAS`] function. + pub fn TX_BASE_GAS( + &self, + ) -> alloy_contract::SolCallBuilder<&P, TX_BASE_GASCall, N> { + self.call_builder(&TX_BASE_GASCall) + } + ///Creates a new call builder for the [`baseGas`] function. + pub fn baseGas( + &self, + _message: alloy::sol_types::private::Bytes, + _minGasLimit: u32, + ) -> alloy_contract::SolCallBuilder<&P, baseGasCall, N> { + self.call_builder( + &baseGasCall { + _message, + _minGasLimit, + }, + ) + } + ///Creates a new call builder for the [`failedMessages`] function. + pub fn failedMessages( + &self, + _0: alloy::sol_types::private::FixedBytes<32>, + ) -> alloy_contract::SolCallBuilder<&P, failedMessagesCall, N> { + self.call_builder(&failedMessagesCall(_0)) + } + ///Creates a new call builder for the [`initVersion`] function. + pub fn initVersion( + &self, + ) -> alloy_contract::SolCallBuilder<&P, initVersionCall, N> { + self.call_builder(&initVersionCall) + } + ///Creates a new call builder for the [`initialize`] function. + pub fn initialize( + &self, + _systemConfig: alloy::sol_types::private::Address, + _portal: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, initializeCall, N> { + self.call_builder( + &initializeCall { + _systemConfig, + _portal, + }, + ) + } + ///Creates a new call builder for the [`messageNonce`] function. + pub fn messageNonce( + &self, + ) -> alloy_contract::SolCallBuilder<&P, messageNonceCall, N> { + self.call_builder(&messageNonceCall) + } + ///Creates a new call builder for the [`otherMessenger`] function. + pub fn otherMessenger( + &self, + ) -> alloy_contract::SolCallBuilder<&P, otherMessengerCall, N> { + self.call_builder(&otherMessengerCall) + } + ///Creates a new call builder for the [`paused`] function. + pub fn paused(&self) -> alloy_contract::SolCallBuilder<&P, pausedCall, N> { + self.call_builder(&pausedCall) + } + ///Creates a new call builder for the [`portal`] function. + pub fn portal(&self) -> alloy_contract::SolCallBuilder<&P, portalCall, N> { + self.call_builder(&portalCall) + } + ///Creates a new call builder for the [`proxyAdmin`] function. + pub fn proxyAdmin( + &self, + ) -> alloy_contract::SolCallBuilder<&P, proxyAdminCall, N> { + self.call_builder(&proxyAdminCall) + } + ///Creates a new call builder for the [`proxyAdminOwner`] function. + pub fn proxyAdminOwner( + &self, + ) -> alloy_contract::SolCallBuilder<&P, proxyAdminOwnerCall, N> { + self.call_builder(&proxyAdminOwnerCall) + } + ///Creates a new call builder for the [`relayMessage`] function. + pub fn relayMessage( + &self, + _nonce: alloy::sol_types::private::primitives::aliases::U256, + _sender: alloy::sol_types::private::Address, + _target: alloy::sol_types::private::Address, + _value: alloy::sol_types::private::primitives::aliases::U256, + _minGasLimit: alloy::sol_types::private::primitives::aliases::U256, + _message: alloy::sol_types::private::Bytes, + ) -> alloy_contract::SolCallBuilder<&P, relayMessageCall, N> { + self.call_builder( + &relayMessageCall { + _nonce, + _sender, + _target, + _value, + _minGasLimit, + _message, + }, + ) + } + ///Creates a new call builder for the [`sendMessage`] function. + pub fn sendMessage( + &self, + _target: alloy::sol_types::private::Address, + _message: alloy::sol_types::private::Bytes, + _minGasLimit: u32, + ) -> alloy_contract::SolCallBuilder<&P, sendMessageCall, N> { + self.call_builder( + &sendMessageCall { + _target, + _message, + _minGasLimit, + }, + ) + } + ///Creates a new call builder for the [`successfulMessages`] function. + pub fn successfulMessages( + &self, + _0: alloy::sol_types::private::FixedBytes<32>, + ) -> alloy_contract::SolCallBuilder<&P, successfulMessagesCall, N> { + self.call_builder(&successfulMessagesCall(_0)) + } + ///Creates a new call builder for the [`superchainConfig`] function. + pub fn superchainConfig( + &self, + ) -> alloy_contract::SolCallBuilder<&P, superchainConfigCall, N> { + self.call_builder(&superchainConfigCall) + } + ///Creates a new call builder for the [`systemConfig`] function. + pub fn systemConfig( + &self, + ) -> alloy_contract::SolCallBuilder<&P, systemConfigCall, N> { + self.call_builder(&systemConfigCall) + } + ///Creates a new call builder for the [`version`] function. + pub fn version(&self) -> alloy_contract::SolCallBuilder<&P, versionCall, N> { + self.call_builder(&versionCall) + } + ///Creates a new call builder for the [`xDomainMessageSender`] function. + pub fn xDomainMessageSender( + &self, + ) -> alloy_contract::SolCallBuilder<&P, xDomainMessageSenderCall, N> { + self.call_builder(&xDomainMessageSenderCall) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > L1CrossDomainMessengerInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + ///Creates a new event filter for the [`FailedRelayedMessage`] event. + pub fn FailedRelayedMessage_filter( + &self, + ) -> alloy_contract::Event<&P, FailedRelayedMessage, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`Initialized`] event. + pub fn Initialized_filter(&self) -> alloy_contract::Event<&P, Initialized, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`RelayedMessage`] event. + pub fn RelayedMessage_filter( + &self, + ) -> alloy_contract::Event<&P, RelayedMessage, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`SentMessage`] event. + pub fn SentMessage_filter(&self) -> alloy_contract::Event<&P, SentMessage, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`SentMessageExtension1`] event. + pub fn SentMessageExtension1_filter( + &self, + ) -> alloy_contract::Event<&P, SentMessageExtension1, N> { + self.event_filter::() + } + } +} diff --git a/bindings/rust/src/l1_fee_vault.rs b/bindings/rust/src/l1_fee_vault.rs new file mode 100644 index 000000000..38a93e3e9 --- /dev/null +++ b/bindings/rust/src/l1_fee_vault.rs @@ -0,0 +1,4911 @@ +///Module containing a contract's types and functions. +/** + +```solidity +library Types { + type WithdrawalNetwork is uint8; +} +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod Types { + use super::*; + use alloy::sol_types as alloy_sol_types; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct WithdrawalNetwork(u8); + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for u8 { + #[inline] + fn stv_to_tokens( + &self, + ) -> as alloy_sol_types::SolType>::Token<'_> { + alloy_sol_types::private::SolTypeValue::< + alloy::sol_types::sol_data::Uint<8>, + >::stv_to_tokens(self) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + as alloy_sol_types::SolType>::tokenize(self) + .0 + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::SolType>::abi_encode_packed_to(self, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + as alloy_sol_types::SolType>::abi_encoded_size(self) + } + } + impl WithdrawalNetwork { + /// The Solidity type name. + pub const NAME: &'static str = stringify!(@ name); + /// Convert from the underlying value type. + #[inline] + pub const fn from_underlying(value: u8) -> Self { + Self(value) + } + /// Return the underlying value. + #[inline] + pub const fn into_underlying(self) -> u8 { + self.0 + } + /// Return the single encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode(&self) -> alloy_sol_types::private::Vec { + ::abi_encode(&self.0) + } + /// Return the packed encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec { + ::abi_encode_packed(&self.0) + } + } + #[automatically_derived] + impl From for WithdrawalNetwork { + fn from(value: u8) -> Self { + Self::from_underlying(value) + } + } + #[automatically_derived] + impl From for u8 { + fn from(value: WithdrawalNetwork) -> Self { + value.into_underlying() + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for WithdrawalNetwork { + type RustType = u8; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = Self::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + Self::type_check(token).is_ok() + } + #[inline] + fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> { + as alloy_sol_types::SolType>::type_check(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + as alloy_sol_types::SolType>::detokenize(token) + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for WithdrawalNetwork { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + as alloy_sol_types::EventTopic>::topic_preimage_length(rust) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out) + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + as alloy_sol_types::EventTopic>::encode_topic(rust) + } + } + }; + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`Types`](self) contract instance. + +See the [wrapper's documentation](`TypesInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(address: alloy_sol_types::private::Address, __provider: P) -> TypesInstance { + TypesInstance::::new(address, __provider) + } + /**A [`Types`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`Types`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct TypesInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for TypesInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("TypesInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > TypesInstance { + /**Creates a new wrapper around an on-chain [`Types`](self) contract instance. + +See the [wrapper's documentation](`TypesInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl TypesInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> TypesInstance { + TypesInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > TypesInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > TypesInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + } +} +/** + +Generated by the following Solidity interface... +```solidity +library Types { + type WithdrawalNetwork is uint8; +} + +interface L1FeeVault { + error FeeVault_OnlyProxyAdminOwner(); + error InvalidInitialization(); + error NotInitializing(); + + event Initialized(uint64 version); + event MinWithdrawalAmountUpdated(uint256 oldWithdrawalAmount, uint256 newWithdrawalAmount); + event RecipientUpdated(address oldRecipient, address newRecipient); + event Withdrawal(uint256 value, address to, address from); + event Withdrawal(uint256 value, address to, address from, Types.WithdrawalNetwork withdrawalNetwork); + event WithdrawalNetworkUpdated(Types.WithdrawalNetwork oldWithdrawalNetwork, Types.WithdrawalNetwork newWithdrawalNetwork); + + receive() external payable; + + function MIN_WITHDRAWAL_AMOUNT() external view returns (uint256); + function RECIPIENT() external view returns (address); + function WITHDRAWAL_NETWORK() external view returns (Types.WithdrawalNetwork); + function initialize(address _recipient, uint256 _minWithdrawalAmount, Types.WithdrawalNetwork _withdrawalNetwork) external; + function minWithdrawalAmount() external view returns (uint256); + function recipient() external view returns (address); + function setMinWithdrawalAmount(uint256 _newMinWithdrawalAmount) external; + function setRecipient(address _newRecipient) external; + function setWithdrawalNetwork(Types.WithdrawalNetwork _newWithdrawalNetwork) external; + function totalProcessed() external view returns (uint256); + function version() external view returns (string memory); + function withdraw() external returns (uint256 value_); + function withdrawalNetwork() external view returns (Types.WithdrawalNetwork); +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "receive", + "stateMutability": "payable" + }, + { + "type": "function", + "name": "MIN_WITHDRAWAL_AMOUNT", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "RECIPIENT", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "WITHDRAWAL_NETWORK", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint8", + "internalType": "enum Types.WithdrawalNetwork" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "initialize", + "inputs": [ + { + "name": "_recipient", + "type": "address", + "internalType": "address" + }, + { + "name": "_minWithdrawalAmount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_withdrawalNetwork", + "type": "uint8", + "internalType": "enum Types.WithdrawalNetwork" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "minWithdrawalAmount", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "recipient", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "setMinWithdrawalAmount", + "inputs": [ + { + "name": "_newMinWithdrawalAmount", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "setRecipient", + "inputs": [ + { + "name": "_newRecipient", + "type": "address", + "internalType": "address" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "setWithdrawalNetwork", + "inputs": [ + { + "name": "_newWithdrawalNetwork", + "type": "uint8", + "internalType": "enum Types.WithdrawalNetwork" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "totalProcessed", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "version", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "withdraw", + "inputs": [], + "outputs": [ + { + "name": "value_", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "withdrawalNetwork", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint8", + "internalType": "enum Types.WithdrawalNetwork" + } + ], + "stateMutability": "view" + }, + { + "type": "event", + "name": "Initialized", + "inputs": [ + { + "name": "version", + "type": "uint64", + "indexed": false, + "internalType": "uint64" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "MinWithdrawalAmountUpdated", + "inputs": [ + { + "name": "oldWithdrawalAmount", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + }, + { + "name": "newWithdrawalAmount", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "RecipientUpdated", + "inputs": [ + { + "name": "oldRecipient", + "type": "address", + "indexed": false, + "internalType": "address" + }, + { + "name": "newRecipient", + "type": "address", + "indexed": false, + "internalType": "address" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "Withdrawal", + "inputs": [ + { + "name": "value", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + }, + { + "name": "to", + "type": "address", + "indexed": false, + "internalType": "address" + }, + { + "name": "from", + "type": "address", + "indexed": false, + "internalType": "address" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "Withdrawal", + "inputs": [ + { + "name": "value", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + }, + { + "name": "to", + "type": "address", + "indexed": false, + "internalType": "address" + }, + { + "name": "from", + "type": "address", + "indexed": false, + "internalType": "address" + }, + { + "name": "withdrawalNetwork", + "type": "uint8", + "indexed": false, + "internalType": "enum Types.WithdrawalNetwork" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "WithdrawalNetworkUpdated", + "inputs": [ + { + "name": "oldWithdrawalNetwork", + "type": "uint8", + "indexed": false, + "internalType": "enum Types.WithdrawalNetwork" + }, + { + "name": "newWithdrawalNetwork", + "type": "uint8", + "indexed": false, + "internalType": "enum Types.WithdrawalNetwork" + } + ], + "anonymous": false + }, + { + "type": "error", + "name": "FeeVault_OnlyProxyAdminOwner", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidInitialization", + "inputs": [] + }, + { + "type": "error", + "name": "NotInitializing", + "inputs": [] + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod L1FeeVault { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x6080604052348015600e575f80fd5b5060156019565b60c9565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff161560685760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b039081161460c65780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b610e8d806100d65f395ff3fe6080604052600436106100d1575f3560e01c806382356d8a1161007c57806385b5b14d1161005757806385b5b14d14610276578063b49dc74114610295578063d0e12f90146102b4578063d3e5792b146102e3575f80fd5b806382356d8a1461020f5780638312f1491461024d57806384411d6514610262575f80fd5b80633ccfd60b116100ac5780633ccfd60b1461016c57806354fd4d501461018e57806366d003ac146101e3575f80fd5b80630d9019e1146100dc578063307f29621461012c5780633bbed4a01461014d575f80fd5b366100d857005b5f80fd5b3480156100e7575f80fd5b5060025473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b348015610137575f80fd5b5061014b610146366004610c5a565b6102f7565b005b348015610158575f80fd5b5061014b610167366004610c97565b61047a565b348015610177575f80fd5b506101806105de565b604051908152602001610123565b348015610199575f80fd5b506101d66040518060400160405280600581526020017f312e362e3000000000000000000000000000000000000000000000000000000081525081565b6040516101239190610cb2565b3480156101ee575f80fd5b506002546101029073ffffffffffffffffffffffffffffffffffffffff1681565b34801561021a575f80fd5b506002546102409074010000000000000000000000000000000000000000900460ff1681565b6040516101239190610d6b565b348015610258575f80fd5b5061018060015481565b34801561026d575f80fd5b506101805f5481565b348015610281575f80fd5b5061014b610290366004610d7f565b6108ec565b3480156102a0575f80fd5b5061014b6102af366004610d96565b610a0f565b3480156102bf575f80fd5b5060025474010000000000000000000000000000000000000000900460ff16610240565b3480156102ee575f80fd5b50600154610180565b73420000000000000000000000000000000000001873ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610354573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103789190610dd1565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146103dc576040517f7cd7e09f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600280547401000000000000000000000000000000000000000080820460ff1692849290917fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff9091169083600181111561043857610438610d05565b02179055507ff2ec44eb1c3b3acd547b76333eb2c4b27eee311860c57a9fdb04c95f62398fc8818360405161046e929190610dec565b60405180910390a15050565b73420000000000000000000000000000000000001873ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104d7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104fb9190610dd1565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461055f576040517f7cd7e09f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff000000000000000000000000000000000000000083168117909355604080519190921680825260208201939093527f62e69886a5df0ba8ffcacbfc1388754e7abd9bde24b036354c561f1acd4e4593910161046e565b5f60015447101561069c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f4665655661756c743a207769746864726177616c20616d6f756e74206d75737460448201527f2062652067726561746572207468616e206d696e696d756d207769746864726160648201527f77616c20616d6f756e7400000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b479050805f808282546106af9190610e07565b90915550506002546040805183815273ffffffffffffffffffffffffffffffffffffffff909216602083018190523383830152905190917fc8a211cc64b6ed1b50595a9fcb1932b6d1e5a6e8ef15b60e5b1f988ea9086bba919081900360600190a16002546040517f38e04cbeb8c10f8f568618aa75be0f10b6729b8b4237743b4de20cbcde2839ee916107649185918591339174010000000000000000000000000000000000000000900460ff1690610e3f565b60405180910390a1600160025474010000000000000000000000000000000000000000900460ff16600181111561079d5761079d610d05565b03610841575f6107ad8284610c23565b90508061083c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f4665655661756c743a206661696c656420746f2073656e642045544820746f2060448201527f4c322066656520726563697069656e74000000000000000000000000000000006064820152608401610693565b505090565b6040517fc2b3e5ac00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8216600482015262061a806024820152606060448201525f60648201527342000000000000000000000000000000000000169063c2b3e5ac9084906084015f604051808303818588803b1580156108d1575f80fd5b505af11580156108e3573d5f803e3d5ffd5b50505050505090565b73420000000000000000000000000000000000001873ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610949573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061096d9190610dd1565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146109d1576040517f7cd7e09f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600180549082905560408051828152602081018490527f895a067c78583e800418fabf3da26a9496aab2ff3429cebdf7fefa642b2e4203910161046e565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff165f81158015610a595750825b90505f8267ffffffffffffffff166001148015610a755750303b155b905081158015610a83575080155b15610aba576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001660011785558315610b1b5784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b6002805473ffffffffffffffffffffffffffffffffffffffff8a167fffffffffffffffffffffffff000000000000000000000000000000000000000082168117835560018a81558993927fffffffffffffffffffffff000000000000000000000000000000000000000000169091179074010000000000000000000000000000000000000000908490811115610bb357610bb3610d05565b02179055508315610c195784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050565b5f610c2f835a84610c36565b9392505050565b5f805f805f858888f1949350505050565b803560028110610c55575f80fd5b919050565b5f60208284031215610c6a575f80fd5b610c2f82610c47565b73ffffffffffffffffffffffffffffffffffffffff81168114610c94575f80fd5b50565b5f60208284031215610ca7575f80fd5b8135610c2f81610c73565b602081525f82518060208401528060208501604085015e5f6040828501015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011684010191505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b60028110610d67577f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b9052565b60208101610d798284610d32565b92915050565b5f60208284031215610d8f575f80fd5b5035919050565b5f805f60608486031215610da8575f80fd5b8335610db381610c73565b925060208401359150610dc860408501610c47565b90509250925092565b5f60208284031215610de1575f80fd5b8151610c2f81610c73565b60408101610dfa8285610d32565b610c2f6020830184610d32565b80820180821115610d79577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b84815273ffffffffffffffffffffffffffffffffffffffff84811660208301528316604082015260808101610e776060830184610d32565b9594505050505056fea164736f6c6343000819000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R4\x80\x15`\x0EW_\x80\xFD[P`\x15`\x19V[`\xC9V[\x7F\xF0\xC5~\x16\x84\r\xF0@\xF1P\x88\xDC/\x81\xFE9\x1C9#\xBE\xC7>#\xA9f.\xFC\x9C\"\x9Cj\0\x80Th\x01\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16\x15`hW`@Qc\xF9.\xE8\xA9`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[\x80T`\x01`\x01`@\x1B\x03\x90\x81\x16\x14`\xC6W\x80T`\x01`\x01`@\x1B\x03\x19\x16`\x01`\x01`@\x1B\x03\x90\x81\x17\x82U`@Q\x90\x81R\x7F\xC7\xF5\x05\xB2\xF3q\xAE!u\xEEI\x13\xF4I\x9E\x1F&3\xA7\xB5\x93c!\xEE\xD1\xCD\xAE\xB6\x11Q\x81\xD2\x90` \x01`@Q\x80\x91\x03\x90\xA1[PV[a\x0E\x8D\x80a\0\xD6_9_\xF3\xFE`\x80`@R`\x046\x10a\0\xD1W_5`\xE0\x1C\x80c\x825m\x8A\x11a\0|W\x80c\x85\xB5\xB1M\x11a\0WW\x80c\x85\xB5\xB1M\x14a\x02vW\x80c\xB4\x9D\xC7A\x14a\x02\x95W\x80c\xD0\xE1/\x90\x14a\x02\xB4W\x80c\xD3\xE5y+\x14a\x02\xE3W_\x80\xFD[\x80c\x825m\x8A\x14a\x02\x0FW\x80c\x83\x12\xF1I\x14a\x02MW\x80c\x84A\x1De\x14a\x02bW_\x80\xFD[\x80c<\xCF\xD6\x0B\x11a\0\xACW\x80c<\xCF\xD6\x0B\x14a\x01lW\x80cT\xFDMP\x14a\x01\x8EW\x80cf\xD0\x03\xAC\x14a\x01\xE3W_\x80\xFD[\x80c\r\x90\x19\xE1\x14a\0\xDCW\x80c0\x7F)b\x14a\x01,W\x80c;\xBE\xD4\xA0\x14a\x01MW_\x80\xFD[6a\0\xD8W\0[_\x80\xFD[4\x80\x15a\0\xE7W_\x80\xFD[P`\x02Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16[`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[4\x80\x15a\x017W_\x80\xFD[Pa\x01Ka\x01F6`\x04a\x0CZV[a\x02\xF7V[\0[4\x80\x15a\x01XW_\x80\xFD[Pa\x01Ka\x01g6`\x04a\x0C\x97V[a\x04zV[4\x80\x15a\x01wW_\x80\xFD[Pa\x01\x80a\x05\xDEV[`@Q\x90\x81R` \x01a\x01#V[4\x80\x15a\x01\x99W_\x80\xFD[Pa\x01\xD6`@Q\x80`@\x01`@R\x80`\x05\x81R` \x01\x7F1.6.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\x81RP\x81V[`@Qa\x01#\x91\x90a\x0C\xB2V[4\x80\x15a\x01\xEEW_\x80\xFD[P`\x02Ta\x01\x02\x90s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[4\x80\x15a\x02\x1AW_\x80\xFD[P`\x02Ta\x02@\x90t\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16\x81V[`@Qa\x01#\x91\x90a\rkV[4\x80\x15a\x02XW_\x80\xFD[Pa\x01\x80`\x01T\x81V[4\x80\x15a\x02mW_\x80\xFD[Pa\x01\x80_T\x81V[4\x80\x15a\x02\x81W_\x80\xFD[Pa\x01Ka\x02\x906`\x04a\r\x7FV[a\x08\xECV[4\x80\x15a\x02\xA0W_\x80\xFD[Pa\x01Ka\x02\xAF6`\x04a\r\x96V[a\n\x0FV[4\x80\x15a\x02\xBFW_\x80\xFD[P`\x02Tt\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16a\x02@V[4\x80\x15a\x02\xEEW_\x80\xFD[P`\x01Ta\x01\x80V[sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x18s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\x8D\xA5\xCB[`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x03TW=_\x80>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x03x\x91\x90a\r\xD1V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x163s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14a\x03\xDCW`@Q\x7F|\xD7\xE0\x9F\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\x01`@Q\x80\x91\x03\x90\xFD[`\x02\x80Tt\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x80\x82\x04`\xFF\x16\x92\x84\x92\x90\x91\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x90\x83`\x01\x81\x11\x15a\x048Wa\x048a\r\x05V[\x02\x17\x90UP\x7F\xF2\xECD\xEB\x1C;:\xCDT{v3>\xB2\xC4\xB2~\xEE1\x18`\xC5z\x9F\xDB\x04\xC9_b9\x8F\xC8\x81\x83`@Qa\x04n\x92\x91\x90a\r\xECV[`@Q\x80\x91\x03\x90\xA1PPV[sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x18s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\x8D\xA5\xCB[`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x04\xD7W=_\x80>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x04\xFB\x91\x90a\r\xD1V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x163s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14a\x05_W`@Q\x7F|\xD7\xE0\x9F\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\x01`@Q\x80\x91\x03\x90\xFD[`\x02\x80Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x81\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x83\x16\x81\x17\x90\x93U`@\x80Q\x91\x90\x92\x16\x80\x82R` \x82\x01\x93\x90\x93R\x7Fb\xE6\x98\x86\xA5\xDF\x0B\xA8\xFF\xCA\xCB\xFC\x13\x88uNz\xBD\x9B\xDE$\xB065LV\x1F\x1A\xCDNE\x93\x91\x01a\x04nV[_`\x01TG\x10\x15a\x06\x9CW`@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\x82\x01R`J`$\x82\x01R\x7FFeeVault: withdrawal amount must`D\x82\x01R\x7F be greater than minimum withdra`d\x82\x01R\x7Fwal amount\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x84\x82\x01R`\xA4\x01[`@Q\x80\x91\x03\x90\xFD[G\x90P\x80_\x80\x82\x82Ta\x06\xAF\x91\x90a\x0E\x07V[\x90\x91UPP`\x02T`@\x80Q\x83\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x92\x16` \x83\x01\x81\x90R3\x83\x83\x01R\x90Q\x90\x91\x7F\xC8\xA2\x11\xCCd\xB6\xED\x1BPYZ\x9F\xCB\x192\xB6\xD1\xE5\xA6\xE8\xEF\x15\xB6\x0E[\x1F\x98\x8E\xA9\x08k\xBA\x91\x90\x81\x90\x03``\x01\x90\xA1`\x02T`@Q\x7F8\xE0L\xBE\xB8\xC1\x0F\x8FV\x86\x18\xAAu\xBE\x0F\x10\xB6r\x9B\x8BB7t;M\xE2\x0C\xBC\xDE(9\xEE\x91a\x07d\x91\x85\x91\x85\x913\x91t\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16\x90a\x0E?V[`@Q\x80\x91\x03\x90\xA1`\x01`\x02Tt\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16`\x01\x81\x11\x15a\x07\x9DWa\x07\x9Da\r\x05V[\x03a\x08AW_a\x07\xAD\x82\x84a\x0C#V[\x90P\x80a\x08=_\xFD[PPPPPP\x90V[sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x18s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\x8D\xA5\xCB[`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\tIW=_\x80>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\tm\x91\x90a\r\xD1V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x163s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14a\t\xD1W`@Q\x7F|\xD7\xE0\x9F\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01\x80T\x90\x82\x90U`@\x80Q\x82\x81R` \x81\x01\x84\x90R\x7F\x89Z\x06|xX>\x80\x04\x18\xFA\xBF=\xA2j\x94\x96\xAA\xB2\xFF4)\xCE\xBD\xF7\xFE\xFAd+.B\x03\x91\x01a\x04nV[\x7F\xF0\xC5~\x16\x84\r\xF0@\xF1P\x88\xDC/\x81\xFE9\x1C9#\xBE\xC7>#\xA9f.\xFC\x9C\"\x9Cj\0\x80Th\x01\0\0\0\0\0\0\0\0\x81\x04`\xFF\x16\x15\x90g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16_\x81\x15\x80\x15a\nYWP\x82[\x90P_\x82g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\x01\x14\x80\x15a\nuWP0;\x15[\x90P\x81\x15\x80\x15a\n\x83WP\x80\x15[\x15a\n\xBAW`@Q\x7F\xF9.\xE8\xA9\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\x01`@Q\x80\x91\x03\x90\xFD[\x84T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\x16`\x01\x17\x85U\x83\x15a\x0B\x1BW\x84T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16h\x01\0\0\0\0\0\0\0\0\x17\x85U[`\x02\x80Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x8A\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x82\x16\x81\x17\x83U`\x01\x8A\x81U\x89\x93\x92\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x90\x91\x17\x90t\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x84\x90\x81\x11\x15a\x0B\xB3Wa\x0B\xB3a\r\x05V[\x02\x17\x90UP\x83\x15a\x0C\x19W\x84T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x85U`@Q`\x01\x81R\x7F\xC7\xF5\x05\xB2\xF3q\xAE!u\xEEI\x13\xF4I\x9E\x1F&3\xA7\xB5\x93c!\xEE\xD1\xCD\xAE\xB6\x11Q\x81\xD2\x90` \x01`@Q\x80\x91\x03\x90\xA1[PPPPPPPPV[_a\x0C/\x83Z\x84a\x0C6V[\x93\x92PPPV[_\x80_\x80_\x85\x88\x88\xF1\x94\x93PPPPV[\x805`\x02\x81\x10a\x0CUW_\x80\xFD[\x91\x90PV[_` \x82\x84\x03\x12\x15a\x0CjW_\x80\xFD[a\x0C/\x82a\x0CGV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x0C\x94W_\x80\xFD[PV[_` \x82\x84\x03\x12\x15a\x0C\xA7W_\x80\xFD[\x815a\x0C/\x81a\x0CsV[` \x81R_\x82Q\x80` \x84\x01R\x80` \x85\x01`@\x85\x01^_`@\x82\x85\x01\x01R`@\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0`\x1F\x83\x01\x16\x84\x01\x01\x91PP\x92\x91PPV[\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_R`!`\x04R`$_\xFD[`\x02\x81\x10a\rgW\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_R`!`\x04R`$_\xFD[\x90RV[` \x81\x01a\ry\x82\x84a\r2V[\x92\x91PPV[_` \x82\x84\x03\x12\x15a\r\x8FW_\x80\xFD[P5\x91\x90PV[_\x80_``\x84\x86\x03\x12\x15a\r\xA8W_\x80\xFD[\x835a\r\xB3\x81a\x0CsV[\x92P` \x84\x015\x91Pa\r\xC8`@\x85\x01a\x0CGV[\x90P\x92P\x92P\x92V[_` \x82\x84\x03\x12\x15a\r\xE1W_\x80\xFD[\x81Qa\x0C/\x81a\x0CsV[`@\x81\x01a\r\xFA\x82\x85a\r2V[a\x0C/` \x83\x01\x84a\r2V[\x80\x82\x01\x80\x82\x11\x15a\ryW\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_R`\x11`\x04R`$_\xFD[\x84\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x81\x16` \x83\x01R\x83\x16`@\x82\x01R`\x80\x81\x01a\x0Ew``\x83\x01\x84a\r2V[\x95\x94PPPPPV\xFE\xA1dsolcC\0\x08\x19\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x6080604052600436106100d1575f3560e01c806382356d8a1161007c57806385b5b14d1161005757806385b5b14d14610276578063b49dc74114610295578063d0e12f90146102b4578063d3e5792b146102e3575f80fd5b806382356d8a1461020f5780638312f1491461024d57806384411d6514610262575f80fd5b80633ccfd60b116100ac5780633ccfd60b1461016c57806354fd4d501461018e57806366d003ac146101e3575f80fd5b80630d9019e1146100dc578063307f29621461012c5780633bbed4a01461014d575f80fd5b366100d857005b5f80fd5b3480156100e7575f80fd5b5060025473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b348015610137575f80fd5b5061014b610146366004610c5a565b6102f7565b005b348015610158575f80fd5b5061014b610167366004610c97565b61047a565b348015610177575f80fd5b506101806105de565b604051908152602001610123565b348015610199575f80fd5b506101d66040518060400160405280600581526020017f312e362e3000000000000000000000000000000000000000000000000000000081525081565b6040516101239190610cb2565b3480156101ee575f80fd5b506002546101029073ffffffffffffffffffffffffffffffffffffffff1681565b34801561021a575f80fd5b506002546102409074010000000000000000000000000000000000000000900460ff1681565b6040516101239190610d6b565b348015610258575f80fd5b5061018060015481565b34801561026d575f80fd5b506101805f5481565b348015610281575f80fd5b5061014b610290366004610d7f565b6108ec565b3480156102a0575f80fd5b5061014b6102af366004610d96565b610a0f565b3480156102bf575f80fd5b5060025474010000000000000000000000000000000000000000900460ff16610240565b3480156102ee575f80fd5b50600154610180565b73420000000000000000000000000000000000001873ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610354573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103789190610dd1565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146103dc576040517f7cd7e09f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600280547401000000000000000000000000000000000000000080820460ff1692849290917fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff9091169083600181111561043857610438610d05565b02179055507ff2ec44eb1c3b3acd547b76333eb2c4b27eee311860c57a9fdb04c95f62398fc8818360405161046e929190610dec565b60405180910390a15050565b73420000000000000000000000000000000000001873ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104d7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104fb9190610dd1565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461055f576040517f7cd7e09f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff000000000000000000000000000000000000000083168117909355604080519190921680825260208201939093527f62e69886a5df0ba8ffcacbfc1388754e7abd9bde24b036354c561f1acd4e4593910161046e565b5f60015447101561069c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f4665655661756c743a207769746864726177616c20616d6f756e74206d75737460448201527f2062652067726561746572207468616e206d696e696d756d207769746864726160648201527f77616c20616d6f756e7400000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b479050805f808282546106af9190610e07565b90915550506002546040805183815273ffffffffffffffffffffffffffffffffffffffff909216602083018190523383830152905190917fc8a211cc64b6ed1b50595a9fcb1932b6d1e5a6e8ef15b60e5b1f988ea9086bba919081900360600190a16002546040517f38e04cbeb8c10f8f568618aa75be0f10b6729b8b4237743b4de20cbcde2839ee916107649185918591339174010000000000000000000000000000000000000000900460ff1690610e3f565b60405180910390a1600160025474010000000000000000000000000000000000000000900460ff16600181111561079d5761079d610d05565b03610841575f6107ad8284610c23565b90508061083c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f4665655661756c743a206661696c656420746f2073656e642045544820746f2060448201527f4c322066656520726563697069656e74000000000000000000000000000000006064820152608401610693565b505090565b6040517fc2b3e5ac00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8216600482015262061a806024820152606060448201525f60648201527342000000000000000000000000000000000000169063c2b3e5ac9084906084015f604051808303818588803b1580156108d1575f80fd5b505af11580156108e3573d5f803e3d5ffd5b50505050505090565b73420000000000000000000000000000000000001873ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610949573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061096d9190610dd1565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146109d1576040517f7cd7e09f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600180549082905560408051828152602081018490527f895a067c78583e800418fabf3da26a9496aab2ff3429cebdf7fefa642b2e4203910161046e565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff165f81158015610a595750825b90505f8267ffffffffffffffff166001148015610a755750303b155b905081158015610a83575080155b15610aba576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001660011785558315610b1b5784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b6002805473ffffffffffffffffffffffffffffffffffffffff8a167fffffffffffffffffffffffff000000000000000000000000000000000000000082168117835560018a81558993927fffffffffffffffffffffff000000000000000000000000000000000000000000169091179074010000000000000000000000000000000000000000908490811115610bb357610bb3610d05565b02179055508315610c195784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050565b5f610c2f835a84610c36565b9392505050565b5f805f805f858888f1949350505050565b803560028110610c55575f80fd5b919050565b5f60208284031215610c6a575f80fd5b610c2f82610c47565b73ffffffffffffffffffffffffffffffffffffffff81168114610c94575f80fd5b50565b5f60208284031215610ca7575f80fd5b8135610c2f81610c73565b602081525f82518060208401528060208501604085015e5f6040828501015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011684010191505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b60028110610d67577f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b9052565b60208101610d798284610d32565b92915050565b5f60208284031215610d8f575f80fd5b5035919050565b5f805f60608486031215610da8575f80fd5b8335610db381610c73565b925060208401359150610dc860408501610c47565b90509250925092565b5f60208284031215610de1575f80fd5b8151610c2f81610c73565b60408101610dfa8285610d32565b610c2f6020830184610d32565b80820180821115610d79577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b84815273ffffffffffffffffffffffffffffffffffffffff84811660208301528316604082015260808101610e776060830184610d32565b9594505050505056fea164736f6c6343000819000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R`\x046\x10a\0\xD1W_5`\xE0\x1C\x80c\x825m\x8A\x11a\0|W\x80c\x85\xB5\xB1M\x11a\0WW\x80c\x85\xB5\xB1M\x14a\x02vW\x80c\xB4\x9D\xC7A\x14a\x02\x95W\x80c\xD0\xE1/\x90\x14a\x02\xB4W\x80c\xD3\xE5y+\x14a\x02\xE3W_\x80\xFD[\x80c\x825m\x8A\x14a\x02\x0FW\x80c\x83\x12\xF1I\x14a\x02MW\x80c\x84A\x1De\x14a\x02bW_\x80\xFD[\x80c<\xCF\xD6\x0B\x11a\0\xACW\x80c<\xCF\xD6\x0B\x14a\x01lW\x80cT\xFDMP\x14a\x01\x8EW\x80cf\xD0\x03\xAC\x14a\x01\xE3W_\x80\xFD[\x80c\r\x90\x19\xE1\x14a\0\xDCW\x80c0\x7F)b\x14a\x01,W\x80c;\xBE\xD4\xA0\x14a\x01MW_\x80\xFD[6a\0\xD8W\0[_\x80\xFD[4\x80\x15a\0\xE7W_\x80\xFD[P`\x02Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16[`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[4\x80\x15a\x017W_\x80\xFD[Pa\x01Ka\x01F6`\x04a\x0CZV[a\x02\xF7V[\0[4\x80\x15a\x01XW_\x80\xFD[Pa\x01Ka\x01g6`\x04a\x0C\x97V[a\x04zV[4\x80\x15a\x01wW_\x80\xFD[Pa\x01\x80a\x05\xDEV[`@Q\x90\x81R` \x01a\x01#V[4\x80\x15a\x01\x99W_\x80\xFD[Pa\x01\xD6`@Q\x80`@\x01`@R\x80`\x05\x81R` \x01\x7F1.6.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\x81RP\x81V[`@Qa\x01#\x91\x90a\x0C\xB2V[4\x80\x15a\x01\xEEW_\x80\xFD[P`\x02Ta\x01\x02\x90s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[4\x80\x15a\x02\x1AW_\x80\xFD[P`\x02Ta\x02@\x90t\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16\x81V[`@Qa\x01#\x91\x90a\rkV[4\x80\x15a\x02XW_\x80\xFD[Pa\x01\x80`\x01T\x81V[4\x80\x15a\x02mW_\x80\xFD[Pa\x01\x80_T\x81V[4\x80\x15a\x02\x81W_\x80\xFD[Pa\x01Ka\x02\x906`\x04a\r\x7FV[a\x08\xECV[4\x80\x15a\x02\xA0W_\x80\xFD[Pa\x01Ka\x02\xAF6`\x04a\r\x96V[a\n\x0FV[4\x80\x15a\x02\xBFW_\x80\xFD[P`\x02Tt\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16a\x02@V[4\x80\x15a\x02\xEEW_\x80\xFD[P`\x01Ta\x01\x80V[sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x18s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\x8D\xA5\xCB[`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x03TW=_\x80>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x03x\x91\x90a\r\xD1V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x163s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14a\x03\xDCW`@Q\x7F|\xD7\xE0\x9F\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\x01`@Q\x80\x91\x03\x90\xFD[`\x02\x80Tt\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x80\x82\x04`\xFF\x16\x92\x84\x92\x90\x91\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x90\x83`\x01\x81\x11\x15a\x048Wa\x048a\r\x05V[\x02\x17\x90UP\x7F\xF2\xECD\xEB\x1C;:\xCDT{v3>\xB2\xC4\xB2~\xEE1\x18`\xC5z\x9F\xDB\x04\xC9_b9\x8F\xC8\x81\x83`@Qa\x04n\x92\x91\x90a\r\xECV[`@Q\x80\x91\x03\x90\xA1PPV[sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x18s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\x8D\xA5\xCB[`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x04\xD7W=_\x80>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x04\xFB\x91\x90a\r\xD1V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x163s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14a\x05_W`@Q\x7F|\xD7\xE0\x9F\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\x01`@Q\x80\x91\x03\x90\xFD[`\x02\x80Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x81\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x83\x16\x81\x17\x90\x93U`@\x80Q\x91\x90\x92\x16\x80\x82R` \x82\x01\x93\x90\x93R\x7Fb\xE6\x98\x86\xA5\xDF\x0B\xA8\xFF\xCA\xCB\xFC\x13\x88uNz\xBD\x9B\xDE$\xB065LV\x1F\x1A\xCDNE\x93\x91\x01a\x04nV[_`\x01TG\x10\x15a\x06\x9CW`@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\x82\x01R`J`$\x82\x01R\x7FFeeVault: withdrawal amount must`D\x82\x01R\x7F be greater than minimum withdra`d\x82\x01R\x7Fwal amount\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x84\x82\x01R`\xA4\x01[`@Q\x80\x91\x03\x90\xFD[G\x90P\x80_\x80\x82\x82Ta\x06\xAF\x91\x90a\x0E\x07V[\x90\x91UPP`\x02T`@\x80Q\x83\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x92\x16` \x83\x01\x81\x90R3\x83\x83\x01R\x90Q\x90\x91\x7F\xC8\xA2\x11\xCCd\xB6\xED\x1BPYZ\x9F\xCB\x192\xB6\xD1\xE5\xA6\xE8\xEF\x15\xB6\x0E[\x1F\x98\x8E\xA9\x08k\xBA\x91\x90\x81\x90\x03``\x01\x90\xA1`\x02T`@Q\x7F8\xE0L\xBE\xB8\xC1\x0F\x8FV\x86\x18\xAAu\xBE\x0F\x10\xB6r\x9B\x8BB7t;M\xE2\x0C\xBC\xDE(9\xEE\x91a\x07d\x91\x85\x91\x85\x913\x91t\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16\x90a\x0E?V[`@Q\x80\x91\x03\x90\xA1`\x01`\x02Tt\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16`\x01\x81\x11\x15a\x07\x9DWa\x07\x9Da\r\x05V[\x03a\x08AW_a\x07\xAD\x82\x84a\x0C#V[\x90P\x80a\x08=_\xFD[PPPPPP\x90V[sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x18s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\x8D\xA5\xCB[`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\tIW=_\x80>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\tm\x91\x90a\r\xD1V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x163s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14a\t\xD1W`@Q\x7F|\xD7\xE0\x9F\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01\x80T\x90\x82\x90U`@\x80Q\x82\x81R` \x81\x01\x84\x90R\x7F\x89Z\x06|xX>\x80\x04\x18\xFA\xBF=\xA2j\x94\x96\xAA\xB2\xFF4)\xCE\xBD\xF7\xFE\xFAd+.B\x03\x91\x01a\x04nV[\x7F\xF0\xC5~\x16\x84\r\xF0@\xF1P\x88\xDC/\x81\xFE9\x1C9#\xBE\xC7>#\xA9f.\xFC\x9C\"\x9Cj\0\x80Th\x01\0\0\0\0\0\0\0\0\x81\x04`\xFF\x16\x15\x90g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16_\x81\x15\x80\x15a\nYWP\x82[\x90P_\x82g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\x01\x14\x80\x15a\nuWP0;\x15[\x90P\x81\x15\x80\x15a\n\x83WP\x80\x15[\x15a\n\xBAW`@Q\x7F\xF9.\xE8\xA9\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\x01`@Q\x80\x91\x03\x90\xFD[\x84T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\x16`\x01\x17\x85U\x83\x15a\x0B\x1BW\x84T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16h\x01\0\0\0\0\0\0\0\0\x17\x85U[`\x02\x80Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x8A\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x82\x16\x81\x17\x83U`\x01\x8A\x81U\x89\x93\x92\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x90\x91\x17\x90t\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x84\x90\x81\x11\x15a\x0B\xB3Wa\x0B\xB3a\r\x05V[\x02\x17\x90UP\x83\x15a\x0C\x19W\x84T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x85U`@Q`\x01\x81R\x7F\xC7\xF5\x05\xB2\xF3q\xAE!u\xEEI\x13\xF4I\x9E\x1F&3\xA7\xB5\x93c!\xEE\xD1\xCD\xAE\xB6\x11Q\x81\xD2\x90` \x01`@Q\x80\x91\x03\x90\xA1[PPPPPPPPV[_a\x0C/\x83Z\x84a\x0C6V[\x93\x92PPPV[_\x80_\x80_\x85\x88\x88\xF1\x94\x93PPPPV[\x805`\x02\x81\x10a\x0CUW_\x80\xFD[\x91\x90PV[_` \x82\x84\x03\x12\x15a\x0CjW_\x80\xFD[a\x0C/\x82a\x0CGV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x0C\x94W_\x80\xFD[PV[_` \x82\x84\x03\x12\x15a\x0C\xA7W_\x80\xFD[\x815a\x0C/\x81a\x0CsV[` \x81R_\x82Q\x80` \x84\x01R\x80` \x85\x01`@\x85\x01^_`@\x82\x85\x01\x01R`@\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0`\x1F\x83\x01\x16\x84\x01\x01\x91PP\x92\x91PPV[\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_R`!`\x04R`$_\xFD[`\x02\x81\x10a\rgW\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_R`!`\x04R`$_\xFD[\x90RV[` \x81\x01a\ry\x82\x84a\r2V[\x92\x91PPV[_` \x82\x84\x03\x12\x15a\r\x8FW_\x80\xFD[P5\x91\x90PV[_\x80_``\x84\x86\x03\x12\x15a\r\xA8W_\x80\xFD[\x835a\r\xB3\x81a\x0CsV[\x92P` \x84\x015\x91Pa\r\xC8`@\x85\x01a\x0CGV[\x90P\x92P\x92P\x92V[_` \x82\x84\x03\x12\x15a\r\xE1W_\x80\xFD[\x81Qa\x0C/\x81a\x0CsV[`@\x81\x01a\r\xFA\x82\x85a\r2V[a\x0C/` \x83\x01\x84a\r2V[\x80\x82\x01\x80\x82\x11\x15a\ryW\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_R`\x11`\x04R`$_\xFD[\x84\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x81\x16` \x83\x01R\x83\x16`@\x82\x01R`\x80\x81\x01a\x0Ew``\x83\x01\x84a\r2V[\x95\x94PPPPPV\xFE\xA1dsolcC\0\x08\x19\0\n", + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `FeeVault_OnlyProxyAdminOwner()` and selector `0x7cd7e09f`. +```solidity +error FeeVault_OnlyProxyAdminOwner(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct FeeVault_OnlyProxyAdminOwner; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: FeeVault_OnlyProxyAdminOwner) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for FeeVault_OnlyProxyAdminOwner { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for FeeVault_OnlyProxyAdminOwner { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "FeeVault_OnlyProxyAdminOwner()"; + const SELECTOR: [u8; 4] = [124u8, 215u8, 224u8, 159u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidInitialization()` and selector `0xf92ee8a9`. +```solidity +error InvalidInitialization(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidInitialization; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InvalidInitialization) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InvalidInitialization { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidInitialization { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidInitialization()"; + const SELECTOR: [u8; 4] = [249u8, 46u8, 232u8, 169u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `NotInitializing()` and selector `0xd7e6bcf8`. +```solidity +error NotInitializing(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct NotInitializing; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: NotInitializing) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for NotInitializing { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for NotInitializing { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "NotInitializing()"; + const SELECTOR: [u8; 4] = [215u8, 230u8, 188u8, 248u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `Initialized(uint64)` and selector `0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2`. +```solidity +event Initialized(uint64 version); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct Initialized { + #[allow(missing_docs)] + pub version: u64, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for Initialized { + type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,); + const SIGNATURE: &'static str = "Initialized(uint64)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 199u8, 245u8, 5u8, 178u8, 243u8, 113u8, 174u8, 33u8, 117u8, 238u8, 73u8, + 19u8, 244u8, 73u8, 158u8, 31u8, 38u8, 51u8, 167u8, 181u8, 147u8, 99u8, + 33u8, 238u8, 209u8, 205u8, 174u8, 182u8, 17u8, 81u8, 129u8, 210u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { version: data.0 } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.version), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(),) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for Initialized { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&Initialized> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &Initialized) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `MinWithdrawalAmountUpdated(uint256,uint256)` and selector `0x895a067c78583e800418fabf3da26a9496aab2ff3429cebdf7fefa642b2e4203`. +```solidity +event MinWithdrawalAmountUpdated(uint256 oldWithdrawalAmount, uint256 newWithdrawalAmount); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct MinWithdrawalAmountUpdated { + #[allow(missing_docs)] + pub oldWithdrawalAmount: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub newWithdrawalAmount: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for MinWithdrawalAmountUpdated { + type DataTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + ); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,); + const SIGNATURE: &'static str = "MinWithdrawalAmountUpdated(uint256,uint256)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 137u8, 90u8, 6u8, 124u8, 120u8, 88u8, 62u8, 128u8, 4u8, 24u8, 250u8, + 191u8, 61u8, 162u8, 106u8, 148u8, 150u8, 170u8, 178u8, 255u8, 52u8, 41u8, + 206u8, 189u8, 247u8, 254u8, 250u8, 100u8, 43u8, 46u8, 66u8, 3u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + oldWithdrawalAmount: data.0, + newWithdrawalAmount: data.1, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.oldWithdrawalAmount), + as alloy_sol_types::SolType>::tokenize(&self.newWithdrawalAmount), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(),) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for MinWithdrawalAmountUpdated { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&MinWithdrawalAmountUpdated> for alloy_sol_types::private::LogData { + #[inline] + fn from( + this: &MinWithdrawalAmountUpdated, + ) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `RecipientUpdated(address,address)` and selector `0x62e69886a5df0ba8ffcacbfc1388754e7abd9bde24b036354c561f1acd4e4593`. +```solidity +event RecipientUpdated(address oldRecipient, address newRecipient); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct RecipientUpdated { + #[allow(missing_docs)] + pub oldRecipient: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub newRecipient: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for RecipientUpdated { + type DataTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,); + const SIGNATURE: &'static str = "RecipientUpdated(address,address)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 98u8, 230u8, 152u8, 134u8, 165u8, 223u8, 11u8, 168u8, 255u8, 202u8, + 203u8, 252u8, 19u8, 136u8, 117u8, 78u8, 122u8, 189u8, 155u8, 222u8, 36u8, + 176u8, 54u8, 53u8, 76u8, 86u8, 31u8, 26u8, 205u8, 78u8, 69u8, 147u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + oldRecipient: data.0, + newRecipient: data.1, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + ::tokenize( + &self.oldRecipient, + ), + ::tokenize( + &self.newRecipient, + ), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(),) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for RecipientUpdated { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&RecipientUpdated> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &RecipientUpdated) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `Withdrawal(uint256,address,address)` and selector `0xc8a211cc64b6ed1b50595a9fcb1932b6d1e5a6e8ef15b60e5b1f988ea9086bba`. +```solidity +event Withdrawal(uint256 value, address to, address from); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct Withdrawal_0 { + #[allow(missing_docs)] + pub value: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub from: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for Withdrawal_0 { + type DataTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,); + const SIGNATURE: &'static str = "Withdrawal(uint256,address,address)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 200u8, 162u8, 17u8, 204u8, 100u8, 182u8, 237u8, 27u8, 80u8, 89u8, 90u8, + 159u8, 203u8, 25u8, 50u8, 182u8, 209u8, 229u8, 166u8, 232u8, 239u8, 21u8, + 182u8, 14u8, 91u8, 31u8, 152u8, 142u8, 169u8, 8u8, 107u8, 186u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + value: data.0, + to: data.1, + from: data.2, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.value), + ::tokenize( + &self.to, + ), + ::tokenize( + &self.from, + ), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(),) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for Withdrawal_0 { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&Withdrawal_0> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &Withdrawal_0) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `Withdrawal(uint256,address,address,uint8)` and selector `0x38e04cbeb8c10f8f568618aa75be0f10b6729b8b4237743b4de20cbcde2839ee`. +```solidity +event Withdrawal(uint256 value, address to, address from, Types.WithdrawalNetwork withdrawalNetwork); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct Withdrawal_1 { + #[allow(missing_docs)] + pub value: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub from: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub withdrawalNetwork: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for Withdrawal_1 { + type DataTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + Types::WithdrawalNetwork, + ); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,); + const SIGNATURE: &'static str = "Withdrawal(uint256,address,address,uint8)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 56u8, 224u8, 76u8, 190u8, 184u8, 193u8, 15u8, 143u8, 86u8, 134u8, 24u8, + 170u8, 117u8, 190u8, 15u8, 16u8, 182u8, 114u8, 155u8, 139u8, 66u8, 55u8, + 116u8, 59u8, 77u8, 226u8, 12u8, 188u8, 222u8, 40u8, 57u8, 238u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + value: data.0, + to: data.1, + from: data.2, + withdrawalNetwork: data.3, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.value), + ::tokenize( + &self.to, + ), + ::tokenize( + &self.from, + ), + ::tokenize( + &self.withdrawalNetwork, + ), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(),) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for Withdrawal_1 { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&Withdrawal_1> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &Withdrawal_1) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `WithdrawalNetworkUpdated(uint8,uint8)` and selector `0xf2ec44eb1c3b3acd547b76333eb2c4b27eee311860c57a9fdb04c95f62398fc8`. +```solidity +event WithdrawalNetworkUpdated(Types.WithdrawalNetwork oldWithdrawalNetwork, Types.WithdrawalNetwork newWithdrawalNetwork); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct WithdrawalNetworkUpdated { + #[allow(missing_docs)] + pub oldWithdrawalNetwork: ::RustType, + #[allow(missing_docs)] + pub newWithdrawalNetwork: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for WithdrawalNetworkUpdated { + type DataTuple<'a> = (Types::WithdrawalNetwork, Types::WithdrawalNetwork); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,); + const SIGNATURE: &'static str = "WithdrawalNetworkUpdated(uint8,uint8)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 242u8, 236u8, 68u8, 235u8, 28u8, 59u8, 58u8, 205u8, 84u8, 123u8, 118u8, + 51u8, 62u8, 178u8, 196u8, 178u8, 126u8, 238u8, 49u8, 24u8, 96u8, 197u8, + 122u8, 159u8, 219u8, 4u8, 201u8, 95u8, 98u8, 57u8, 143u8, 200u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + oldWithdrawalNetwork: data.0, + newWithdrawalNetwork: data.1, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + ::tokenize( + &self.oldWithdrawalNetwork, + ), + ::tokenize( + &self.newWithdrawalNetwork, + ), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(),) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for WithdrawalNetworkUpdated { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&WithdrawalNetworkUpdated> for alloy_sol_types::private::LogData { + #[inline] + fn from( + this: &WithdrawalNetworkUpdated, + ) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `MIN_WITHDRAWAL_AMOUNT()` and selector `0xd3e5792b`. +```solidity +function MIN_WITHDRAWAL_AMOUNT() external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct MIN_WITHDRAWAL_AMOUNTCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`MIN_WITHDRAWAL_AMOUNT()`](MIN_WITHDRAWAL_AMOUNTCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct MIN_WITHDRAWAL_AMOUNTReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: MIN_WITHDRAWAL_AMOUNTCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for MIN_WITHDRAWAL_AMOUNTCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: MIN_WITHDRAWAL_AMOUNTReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for MIN_WITHDRAWAL_AMOUNTReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for MIN_WITHDRAWAL_AMOUNTCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "MIN_WITHDRAWAL_AMOUNT()"; + const SELECTOR: [u8; 4] = [211u8, 229u8, 121u8, 43u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: MIN_WITHDRAWAL_AMOUNTReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: MIN_WITHDRAWAL_AMOUNTReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `RECIPIENT()` and selector `0x0d9019e1`. +```solidity +function RECIPIENT() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct RECIPIENTCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`RECIPIENT()`](RECIPIENTCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct RECIPIENTReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: RECIPIENTCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for RECIPIENTCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: RECIPIENTReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for RECIPIENTReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for RECIPIENTCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "RECIPIENT()"; + const SELECTOR: [u8; 4] = [13u8, 144u8, 25u8, 225u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: RECIPIENTReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: RECIPIENTReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `WITHDRAWAL_NETWORK()` and selector `0xd0e12f90`. +```solidity +function WITHDRAWAL_NETWORK() external view returns (Types.WithdrawalNetwork); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct WITHDRAWAL_NETWORKCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`WITHDRAWAL_NETWORK()`](WITHDRAWAL_NETWORKCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct WITHDRAWAL_NETWORKReturn { + #[allow(missing_docs)] + pub _0: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: WITHDRAWAL_NETWORKCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for WITHDRAWAL_NETWORKCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Types::WithdrawalNetwork,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: WITHDRAWAL_NETWORKReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for WITHDRAWAL_NETWORKReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for WITHDRAWAL_NETWORKCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (Types::WithdrawalNetwork,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "WITHDRAWAL_NETWORK()"; + const SELECTOR: [u8; 4] = [208u8, 225u8, 47u8, 144u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: WITHDRAWAL_NETWORKReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: WITHDRAWAL_NETWORKReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `initialize(address,uint256,uint8)` and selector `0xb49dc741`. +```solidity +function initialize(address _recipient, uint256 _minWithdrawalAmount, Types.WithdrawalNetwork _withdrawalNetwork) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct initializeCall { + #[allow(missing_docs)] + pub _recipient: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _minWithdrawalAmount: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _withdrawalNetwork: ::RustType, + } + ///Container type for the return parameters of the [`initialize(address,uint256,uint8)`](initializeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct initializeReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + Types::WithdrawalNetwork, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: initializeCall) -> Self { + ( + value._recipient, + value._minWithdrawalAmount, + value._withdrawalNetwork, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for initializeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _recipient: tuple.0, + _minWithdrawalAmount: tuple.1, + _withdrawalNetwork: tuple.2, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: initializeReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for initializeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl initializeReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for initializeCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + Types::WithdrawalNetwork, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = initializeReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "initialize(address,uint256,uint8)"; + const SELECTOR: [u8; 4] = [180u8, 157u8, 199u8, 65u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._recipient, + ), + as alloy_sol_types::SolType>::tokenize(&self._minWithdrawalAmount), + ::tokenize( + &self._withdrawalNetwork, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + initializeReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `minWithdrawalAmount()` and selector `0x8312f149`. +```solidity +function minWithdrawalAmount() external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct minWithdrawalAmountCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`minWithdrawalAmount()`](minWithdrawalAmountCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct minWithdrawalAmountReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: minWithdrawalAmountCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for minWithdrawalAmountCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: minWithdrawalAmountReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for minWithdrawalAmountReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for minWithdrawalAmountCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "minWithdrawalAmount()"; + const SELECTOR: [u8; 4] = [131u8, 18u8, 241u8, 73u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: minWithdrawalAmountReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: minWithdrawalAmountReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `recipient()` and selector `0x66d003ac`. +```solidity +function recipient() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct recipientCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`recipient()`](recipientCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct recipientReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: recipientCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for recipientCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: recipientReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for recipientReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for recipientCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "recipient()"; + const SELECTOR: [u8; 4] = [102u8, 208u8, 3u8, 172u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: recipientReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: recipientReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `setMinWithdrawalAmount(uint256)` and selector `0x85b5b14d`. +```solidity +function setMinWithdrawalAmount(uint256 _newMinWithdrawalAmount) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setMinWithdrawalAmountCall { + #[allow(missing_docs)] + pub _newMinWithdrawalAmount: alloy::sol_types::private::primitives::aliases::U256, + } + ///Container type for the return parameters of the [`setMinWithdrawalAmount(uint256)`](setMinWithdrawalAmountCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setMinWithdrawalAmountReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: setMinWithdrawalAmountCall) -> Self { + (value._newMinWithdrawalAmount,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for setMinWithdrawalAmountCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _newMinWithdrawalAmount: tuple.0, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: setMinWithdrawalAmountReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for setMinWithdrawalAmountReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl setMinWithdrawalAmountReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken< + '_, + > { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for setMinWithdrawalAmountCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = setMinWithdrawalAmountReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "setMinWithdrawalAmount(uint256)"; + const SELECTOR: [u8; 4] = [133u8, 181u8, 177u8, 77u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize( + &self._newMinWithdrawalAmount, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + setMinWithdrawalAmountReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `setRecipient(address)` and selector `0x3bbed4a0`. +```solidity +function setRecipient(address _newRecipient) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setRecipientCall { + #[allow(missing_docs)] + pub _newRecipient: alloy::sol_types::private::Address, + } + ///Container type for the return parameters of the [`setRecipient(address)`](setRecipientCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setRecipientReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: setRecipientCall) -> Self { + (value._newRecipient,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for setRecipientCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _newRecipient: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: setRecipientReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for setRecipientReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl setRecipientReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for setRecipientCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = setRecipientReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "setRecipient(address)"; + const SELECTOR: [u8; 4] = [59u8, 190u8, 212u8, 160u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._newRecipient, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + setRecipientReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `setWithdrawalNetwork(uint8)` and selector `0x307f2962`. +```solidity +function setWithdrawalNetwork(Types.WithdrawalNetwork _newWithdrawalNetwork) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setWithdrawalNetworkCall { + #[allow(missing_docs)] + pub _newWithdrawalNetwork: ::RustType, + } + ///Container type for the return parameters of the [`setWithdrawalNetwork(uint8)`](setWithdrawalNetworkCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setWithdrawalNetworkReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Types::WithdrawalNetwork,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: setWithdrawalNetworkCall) -> Self { + (value._newWithdrawalNetwork,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for setWithdrawalNetworkCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _newWithdrawalNetwork: tuple.0, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: setWithdrawalNetworkReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for setWithdrawalNetworkReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl setWithdrawalNetworkReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken< + '_, + > { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for setWithdrawalNetworkCall { + type Parameters<'a> = (Types::WithdrawalNetwork,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = setWithdrawalNetworkReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "setWithdrawalNetwork(uint8)"; + const SELECTOR: [u8; 4] = [48u8, 127u8, 41u8, 98u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._newWithdrawalNetwork, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + setWithdrawalNetworkReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `totalProcessed()` and selector `0x84411d65`. +```solidity +function totalProcessed() external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct totalProcessedCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`totalProcessed()`](totalProcessedCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct totalProcessedReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: totalProcessedCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for totalProcessedCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: totalProcessedReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for totalProcessedReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for totalProcessedCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "totalProcessed()"; + const SELECTOR: [u8; 4] = [132u8, 65u8, 29u8, 101u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: totalProcessedReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: totalProcessedReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `version()` and selector `0x54fd4d50`. +```solidity +function version() external view returns (string memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`version()`](versionCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for versionCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::String; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "version()"; + const SELECTOR: [u8; 4] = [84u8, 253u8, 77u8, 80u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `withdraw()` and selector `0x3ccfd60b`. +```solidity +function withdraw() external returns (uint256 value_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct withdrawCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`withdraw()`](withdrawCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct withdrawReturn { + #[allow(missing_docs)] + pub value_: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: withdrawCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for withdrawCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: withdrawReturn) -> Self { + (value.value_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for withdrawReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { value_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for withdrawCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "withdraw()"; + const SELECTOR: [u8; 4] = [60u8, 207u8, 214u8, 11u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: withdrawReturn = r.into(); + r.value_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: withdrawReturn = r.into(); + r.value_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `withdrawalNetwork()` and selector `0x82356d8a`. +```solidity +function withdrawalNetwork() external view returns (Types.WithdrawalNetwork); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct withdrawalNetworkCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`withdrawalNetwork()`](withdrawalNetworkCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct withdrawalNetworkReturn { + #[allow(missing_docs)] + pub _0: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: withdrawalNetworkCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for withdrawalNetworkCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Types::WithdrawalNetwork,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: withdrawalNetworkReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for withdrawalNetworkReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for withdrawalNetworkCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (Types::WithdrawalNetwork,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "withdrawalNetwork()"; + const SELECTOR: [u8; 4] = [130u8, 53u8, 109u8, 138u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: withdrawalNetworkReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: withdrawalNetworkReturn = r.into(); + r._0 + }) + } + } + }; + ///Container for all the [`L1FeeVault`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum L1FeeVaultCalls { + #[allow(missing_docs)] + MIN_WITHDRAWAL_AMOUNT(MIN_WITHDRAWAL_AMOUNTCall), + #[allow(missing_docs)] + RECIPIENT(RECIPIENTCall), + #[allow(missing_docs)] + WITHDRAWAL_NETWORK(WITHDRAWAL_NETWORKCall), + #[allow(missing_docs)] + initialize(initializeCall), + #[allow(missing_docs)] + minWithdrawalAmount(minWithdrawalAmountCall), + #[allow(missing_docs)] + recipient(recipientCall), + #[allow(missing_docs)] + setMinWithdrawalAmount(setMinWithdrawalAmountCall), + #[allow(missing_docs)] + setRecipient(setRecipientCall), + #[allow(missing_docs)] + setWithdrawalNetwork(setWithdrawalNetworkCall), + #[allow(missing_docs)] + totalProcessed(totalProcessedCall), + #[allow(missing_docs)] + version(versionCall), + #[allow(missing_docs)] + withdraw(withdrawCall), + #[allow(missing_docs)] + withdrawalNetwork(withdrawalNetworkCall), + } + impl L1FeeVaultCalls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [13u8, 144u8, 25u8, 225u8], + [48u8, 127u8, 41u8, 98u8], + [59u8, 190u8, 212u8, 160u8], + [60u8, 207u8, 214u8, 11u8], + [84u8, 253u8, 77u8, 80u8], + [102u8, 208u8, 3u8, 172u8], + [130u8, 53u8, 109u8, 138u8], + [131u8, 18u8, 241u8, 73u8], + [132u8, 65u8, 29u8, 101u8], + [133u8, 181u8, 177u8, 77u8], + [180u8, 157u8, 199u8, 65u8], + [208u8, 225u8, 47u8, 144u8], + [211u8, 229u8, 121u8, 43u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(RECIPIENT), + ::core::stringify!(setWithdrawalNetwork), + ::core::stringify!(setRecipient), + ::core::stringify!(withdraw), + ::core::stringify!(version), + ::core::stringify!(recipient), + ::core::stringify!(withdrawalNetwork), + ::core::stringify!(minWithdrawalAmount), + ::core::stringify!(totalProcessed), + ::core::stringify!(setMinWithdrawalAmount), + ::core::stringify!(initialize), + ::core::stringify!(WITHDRAWAL_NETWORK), + ::core::stringify!(MIN_WITHDRAWAL_AMOUNT), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for L1FeeVaultCalls { + const NAME: &'static str = "L1FeeVaultCalls"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 13usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::MIN_WITHDRAWAL_AMOUNT(_) => { + ::SELECTOR + } + Self::RECIPIENT(_) => { + ::SELECTOR + } + Self::WITHDRAWAL_NETWORK(_) => { + ::SELECTOR + } + Self::initialize(_) => { + ::SELECTOR + } + Self::minWithdrawalAmount(_) => { + ::SELECTOR + } + Self::recipient(_) => { + ::SELECTOR + } + Self::setMinWithdrawalAmount(_) => { + ::SELECTOR + } + Self::setRecipient(_) => { + ::SELECTOR + } + Self::setWithdrawalNetwork(_) => { + ::SELECTOR + } + Self::totalProcessed(_) => { + ::SELECTOR + } + Self::version(_) => ::SELECTOR, + Self::withdraw(_) => ::SELECTOR, + Self::withdrawalNetwork(_) => { + ::SELECTOR + } + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn RECIPIENT( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(L1FeeVaultCalls::RECIPIENT) + } + RECIPIENT + }, + { + fn setWithdrawalNetwork( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L1FeeVaultCalls::setWithdrawalNetwork) + } + setWithdrawalNetwork + }, + { + fn setRecipient( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L1FeeVaultCalls::setRecipient) + } + setRecipient + }, + { + fn withdraw( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(L1FeeVaultCalls::withdraw) + } + withdraw + }, + { + fn version(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(L1FeeVaultCalls::version) + } + version + }, + { + fn recipient( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(L1FeeVaultCalls::recipient) + } + recipient + }, + { + fn withdrawalNetwork( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L1FeeVaultCalls::withdrawalNetwork) + } + withdrawalNetwork + }, + { + fn minWithdrawalAmount( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L1FeeVaultCalls::minWithdrawalAmount) + } + minWithdrawalAmount + }, + { + fn totalProcessed( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L1FeeVaultCalls::totalProcessed) + } + totalProcessed + }, + { + fn setMinWithdrawalAmount( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L1FeeVaultCalls::setMinWithdrawalAmount) + } + setMinWithdrawalAmount + }, + { + fn initialize( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L1FeeVaultCalls::initialize) + } + initialize + }, + { + fn WITHDRAWAL_NETWORK( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L1FeeVaultCalls::WITHDRAWAL_NETWORK) + } + WITHDRAWAL_NETWORK + }, + { + fn MIN_WITHDRAWAL_AMOUNT( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L1FeeVaultCalls::MIN_WITHDRAWAL_AMOUNT) + } + MIN_WITHDRAWAL_AMOUNT + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn RECIPIENT( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1FeeVaultCalls::RECIPIENT) + } + RECIPIENT + }, + { + fn setWithdrawalNetwork( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1FeeVaultCalls::setWithdrawalNetwork) + } + setWithdrawalNetwork + }, + { + fn setRecipient( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1FeeVaultCalls::setRecipient) + } + setRecipient + }, + { + fn withdraw( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1FeeVaultCalls::withdraw) + } + withdraw + }, + { + fn version(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1FeeVaultCalls::version) + } + version + }, + { + fn recipient( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1FeeVaultCalls::recipient) + } + recipient + }, + { + fn withdrawalNetwork( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1FeeVaultCalls::withdrawalNetwork) + } + withdrawalNetwork + }, + { + fn minWithdrawalAmount( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1FeeVaultCalls::minWithdrawalAmount) + } + minWithdrawalAmount + }, + { + fn totalProcessed( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1FeeVaultCalls::totalProcessed) + } + totalProcessed + }, + { + fn setMinWithdrawalAmount( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1FeeVaultCalls::setMinWithdrawalAmount) + } + setMinWithdrawalAmount + }, + { + fn initialize( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1FeeVaultCalls::initialize) + } + initialize + }, + { + fn WITHDRAWAL_NETWORK( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1FeeVaultCalls::WITHDRAWAL_NETWORK) + } + WITHDRAWAL_NETWORK + }, + { + fn MIN_WITHDRAWAL_AMOUNT( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1FeeVaultCalls::MIN_WITHDRAWAL_AMOUNT) + } + MIN_WITHDRAWAL_AMOUNT + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::MIN_WITHDRAWAL_AMOUNT(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::RECIPIENT(inner) => { + ::abi_encoded_size(inner) + } + Self::WITHDRAWAL_NETWORK(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::initialize(inner) => { + ::abi_encoded_size(inner) + } + Self::minWithdrawalAmount(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::recipient(inner) => { + ::abi_encoded_size(inner) + } + Self::setMinWithdrawalAmount(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::setRecipient(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::setWithdrawalNetwork(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::totalProcessed(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::version(inner) => { + ::abi_encoded_size(inner) + } + Self::withdraw(inner) => { + ::abi_encoded_size(inner) + } + Self::withdrawalNetwork(inner) => { + ::abi_encoded_size( + inner, + ) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::MIN_WITHDRAWAL_AMOUNT(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::RECIPIENT(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::WITHDRAWAL_NETWORK(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::initialize(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::minWithdrawalAmount(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::recipient(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::setMinWithdrawalAmount(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::setRecipient(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::setWithdrawalNetwork(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::totalProcessed(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::version(inner) => { + ::abi_encode_raw(inner, out) + } + Self::withdraw(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::withdrawalNetwork(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + } + } + } + ///Container for all the [`L1FeeVault`](self) custom errors. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum L1FeeVaultErrors { + #[allow(missing_docs)] + FeeVault_OnlyProxyAdminOwner(FeeVault_OnlyProxyAdminOwner), + #[allow(missing_docs)] + InvalidInitialization(InvalidInitialization), + #[allow(missing_docs)] + NotInitializing(NotInitializing), + } + impl L1FeeVaultErrors { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [124u8, 215u8, 224u8, 159u8], + [215u8, 230u8, 188u8, 248u8], + [249u8, 46u8, 232u8, 169u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(FeeVault_OnlyProxyAdminOwner), + ::core::stringify!(NotInitializing), + ::core::stringify!(InvalidInitialization), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for L1FeeVaultErrors { + const NAME: &'static str = "L1FeeVaultErrors"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 3usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::FeeVault_OnlyProxyAdminOwner(_) => { + ::SELECTOR + } + Self::InvalidInitialization(_) => { + ::SELECTOR + } + Self::NotInitializing(_) => { + ::SELECTOR + } + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn FeeVault_OnlyProxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L1FeeVaultErrors::FeeVault_OnlyProxyAdminOwner) + } + FeeVault_OnlyProxyAdminOwner + }, + { + fn NotInitializing( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L1FeeVaultErrors::NotInitializing) + } + NotInitializing + }, + { + fn InvalidInitialization( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L1FeeVaultErrors::InvalidInitialization) + } + InvalidInitialization + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn FeeVault_OnlyProxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1FeeVaultErrors::FeeVault_OnlyProxyAdminOwner) + } + FeeVault_OnlyProxyAdminOwner + }, + { + fn NotInitializing( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1FeeVaultErrors::NotInitializing) + } + NotInitializing + }, + { + fn InvalidInitialization( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1FeeVaultErrors::InvalidInitialization) + } + InvalidInitialization + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::FeeVault_OnlyProxyAdminOwner(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::InvalidInitialization(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::NotInitializing(inner) => { + ::abi_encoded_size( + inner, + ) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::FeeVault_OnlyProxyAdminOwner(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidInitialization(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::NotInitializing(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + } + } + } + ///Container for all the [`L1FeeVault`](self) events. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum L1FeeVaultEvents { + #[allow(missing_docs)] + Initialized(Initialized), + #[allow(missing_docs)] + MinWithdrawalAmountUpdated(MinWithdrawalAmountUpdated), + #[allow(missing_docs)] + RecipientUpdated(RecipientUpdated), + #[allow(missing_docs)] + Withdrawal_0(Withdrawal_0), + #[allow(missing_docs)] + Withdrawal_1(Withdrawal_1), + #[allow(missing_docs)] + WithdrawalNetworkUpdated(WithdrawalNetworkUpdated), + } + impl L1FeeVaultEvents { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 32usize]] = &[ + [ + 56u8, 224u8, 76u8, 190u8, 184u8, 193u8, 15u8, 143u8, 86u8, 134u8, 24u8, + 170u8, 117u8, 190u8, 15u8, 16u8, 182u8, 114u8, 155u8, 139u8, 66u8, 55u8, + 116u8, 59u8, 77u8, 226u8, 12u8, 188u8, 222u8, 40u8, 57u8, 238u8, + ], + [ + 98u8, 230u8, 152u8, 134u8, 165u8, 223u8, 11u8, 168u8, 255u8, 202u8, + 203u8, 252u8, 19u8, 136u8, 117u8, 78u8, 122u8, 189u8, 155u8, 222u8, 36u8, + 176u8, 54u8, 53u8, 76u8, 86u8, 31u8, 26u8, 205u8, 78u8, 69u8, 147u8, + ], + [ + 137u8, 90u8, 6u8, 124u8, 120u8, 88u8, 62u8, 128u8, 4u8, 24u8, 250u8, + 191u8, 61u8, 162u8, 106u8, 148u8, 150u8, 170u8, 178u8, 255u8, 52u8, 41u8, + 206u8, 189u8, 247u8, 254u8, 250u8, 100u8, 43u8, 46u8, 66u8, 3u8, + ], + [ + 199u8, 245u8, 5u8, 178u8, 243u8, 113u8, 174u8, 33u8, 117u8, 238u8, 73u8, + 19u8, 244u8, 73u8, 158u8, 31u8, 38u8, 51u8, 167u8, 181u8, 147u8, 99u8, + 33u8, 238u8, 209u8, 205u8, 174u8, 182u8, 17u8, 81u8, 129u8, 210u8, + ], + [ + 200u8, 162u8, 17u8, 204u8, 100u8, 182u8, 237u8, 27u8, 80u8, 89u8, 90u8, + 159u8, 203u8, 25u8, 50u8, 182u8, 209u8, 229u8, 166u8, 232u8, 239u8, 21u8, + 182u8, 14u8, 91u8, 31u8, 152u8, 142u8, 169u8, 8u8, 107u8, 186u8, + ], + [ + 242u8, 236u8, 68u8, 235u8, 28u8, 59u8, 58u8, 205u8, 84u8, 123u8, 118u8, + 51u8, 62u8, 178u8, 196u8, 178u8, 126u8, 238u8, 49u8, 24u8, 96u8, 197u8, + 122u8, 159u8, 219u8, 4u8, 201u8, 95u8, 98u8, 57u8, 143u8, 200u8, + ], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(Withdrawal_1), + ::core::stringify!(RecipientUpdated), + ::core::stringify!(MinWithdrawalAmountUpdated), + ::core::stringify!(Initialized), + ::core::stringify!(Withdrawal_0), + ::core::stringify!(WithdrawalNetworkUpdated), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolEventInterface for L1FeeVaultEvents { + const NAME: &'static str = "L1FeeVaultEvents"; + const COUNT: usize = 6usize; + fn decode_raw_log( + topics: &[alloy_sol_types::Word], + data: &[u8], + ) -> alloy_sol_types::Result { + match topics.first().copied() { + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::Initialized) + } + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::MinWithdrawalAmountUpdated) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::RecipientUpdated) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::Withdrawal_0) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::Withdrawal_1) + } + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::WithdrawalNetworkUpdated) + } + _ => { + alloy_sol_types::private::Err(alloy_sol_types::Error::InvalidLog { + name: ::NAME, + log: alloy_sol_types::private::Box::new( + alloy_sol_types::private::LogData::new_unchecked( + topics.to_vec(), + data.to_vec().into(), + ), + ), + }) + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for L1FeeVaultEvents { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + match self { + Self::Initialized(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::MinWithdrawalAmountUpdated(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::RecipientUpdated(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::Withdrawal_0(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::Withdrawal_1(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::WithdrawalNetworkUpdated(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + } + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + match self { + Self::Initialized(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::MinWithdrawalAmountUpdated(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::RecipientUpdated(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::Withdrawal_0(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::Withdrawal_1(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::WithdrawalNetworkUpdated(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`L1FeeVault`](self) contract instance. + +See the [wrapper's documentation](`L1FeeVaultInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> L1FeeVaultInstance { + L1FeeVaultInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + L1FeeVaultInstance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + L1FeeVaultInstance::::deploy_builder(__provider) + } + /**A [`L1FeeVault`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`L1FeeVault`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct L1FeeVaultInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for L1FeeVaultInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("L1FeeVaultInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > L1FeeVaultInstance { + /**Creates a new wrapper around an on-chain [`L1FeeVault`](self) contract instance. + +See the [wrapper's documentation](`L1FeeVaultInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl L1FeeVaultInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> L1FeeVaultInstance { + L1FeeVaultInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > L1FeeVaultInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`MIN_WITHDRAWAL_AMOUNT`] function. + pub fn MIN_WITHDRAWAL_AMOUNT( + &self, + ) -> alloy_contract::SolCallBuilder<&P, MIN_WITHDRAWAL_AMOUNTCall, N> { + self.call_builder(&MIN_WITHDRAWAL_AMOUNTCall) + } + ///Creates a new call builder for the [`RECIPIENT`] function. + pub fn RECIPIENT(&self) -> alloy_contract::SolCallBuilder<&P, RECIPIENTCall, N> { + self.call_builder(&RECIPIENTCall) + } + ///Creates a new call builder for the [`WITHDRAWAL_NETWORK`] function. + pub fn WITHDRAWAL_NETWORK( + &self, + ) -> alloy_contract::SolCallBuilder<&P, WITHDRAWAL_NETWORKCall, N> { + self.call_builder(&WITHDRAWAL_NETWORKCall) + } + ///Creates a new call builder for the [`initialize`] function. + pub fn initialize( + &self, + _recipient: alloy::sol_types::private::Address, + _minWithdrawalAmount: alloy::sol_types::private::primitives::aliases::U256, + _withdrawalNetwork: ::RustType, + ) -> alloy_contract::SolCallBuilder<&P, initializeCall, N> { + self.call_builder( + &initializeCall { + _recipient, + _minWithdrawalAmount, + _withdrawalNetwork, + }, + ) + } + ///Creates a new call builder for the [`minWithdrawalAmount`] function. + pub fn minWithdrawalAmount( + &self, + ) -> alloy_contract::SolCallBuilder<&P, minWithdrawalAmountCall, N> { + self.call_builder(&minWithdrawalAmountCall) + } + ///Creates a new call builder for the [`recipient`] function. + pub fn recipient(&self) -> alloy_contract::SolCallBuilder<&P, recipientCall, N> { + self.call_builder(&recipientCall) + } + ///Creates a new call builder for the [`setMinWithdrawalAmount`] function. + pub fn setMinWithdrawalAmount( + &self, + _newMinWithdrawalAmount: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, setMinWithdrawalAmountCall, N> { + self.call_builder( + &setMinWithdrawalAmountCall { + _newMinWithdrawalAmount, + }, + ) + } + ///Creates a new call builder for the [`setRecipient`] function. + pub fn setRecipient( + &self, + _newRecipient: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, setRecipientCall, N> { + self.call_builder(&setRecipientCall { _newRecipient }) + } + ///Creates a new call builder for the [`setWithdrawalNetwork`] function. + pub fn setWithdrawalNetwork( + &self, + _newWithdrawalNetwork: ::RustType, + ) -> alloy_contract::SolCallBuilder<&P, setWithdrawalNetworkCall, N> { + self.call_builder( + &setWithdrawalNetworkCall { + _newWithdrawalNetwork, + }, + ) + } + ///Creates a new call builder for the [`totalProcessed`] function. + pub fn totalProcessed( + &self, + ) -> alloy_contract::SolCallBuilder<&P, totalProcessedCall, N> { + self.call_builder(&totalProcessedCall) + } + ///Creates a new call builder for the [`version`] function. + pub fn version(&self) -> alloy_contract::SolCallBuilder<&P, versionCall, N> { + self.call_builder(&versionCall) + } + ///Creates a new call builder for the [`withdraw`] function. + pub fn withdraw(&self) -> alloy_contract::SolCallBuilder<&P, withdrawCall, N> { + self.call_builder(&withdrawCall) + } + ///Creates a new call builder for the [`withdrawalNetwork`] function. + pub fn withdrawalNetwork( + &self, + ) -> alloy_contract::SolCallBuilder<&P, withdrawalNetworkCall, N> { + self.call_builder(&withdrawalNetworkCall) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > L1FeeVaultInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + ///Creates a new event filter for the [`Initialized`] event. + pub fn Initialized_filter(&self) -> alloy_contract::Event<&P, Initialized, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`MinWithdrawalAmountUpdated`] event. + pub fn MinWithdrawalAmountUpdated_filter( + &self, + ) -> alloy_contract::Event<&P, MinWithdrawalAmountUpdated, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`RecipientUpdated`] event. + pub fn RecipientUpdated_filter( + &self, + ) -> alloy_contract::Event<&P, RecipientUpdated, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`Withdrawal_0`] event. + pub fn Withdrawal_0_filter(&self) -> alloy_contract::Event<&P, Withdrawal_0, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`Withdrawal_1`] event. + pub fn Withdrawal_1_filter(&self) -> alloy_contract::Event<&P, Withdrawal_1, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`WithdrawalNetworkUpdated`] event. + pub fn WithdrawalNetworkUpdated_filter( + &self, + ) -> alloy_contract::Event<&P, WithdrawalNetworkUpdated, N> { + self.event_filter::() + } + } +} diff --git a/bindings/rust/src/l1_standard_bridge.rs b/bindings/rust/src/l1_standard_bridge.rs new file mode 100644 index 000000000..373c47037 --- /dev/null +++ b/bindings/rust/src/l1_standard_bridge.rs @@ -0,0 +1,9524 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface L1StandardBridge { + error ProxyAdminOwnedBase_NotProxyAdmin(); + error ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner(); + error ProxyAdminOwnedBase_NotProxyAdminOwner(); + error ProxyAdminOwnedBase_NotResolvedDelegateProxy(); + error ProxyAdminOwnedBase_NotSharedProxyAdminOwner(); + error ProxyAdminOwnedBase_ProxyAdminNotFound(); + error ReinitializableBase_ZeroInitVersion(); + + event ERC20BridgeFinalized(address indexed localToken, address indexed remoteToken, address indexed from, address to, uint256 amount, bytes extraData); + event ERC20BridgeInitiated(address indexed localToken, address indexed remoteToken, address indexed from, address to, uint256 amount, bytes extraData); + event ERC20DepositInitiated(address indexed l1Token, address indexed l2Token, address indexed from, address to, uint256 amount, bytes extraData); + event ERC20WithdrawalFinalized(address indexed l1Token, address indexed l2Token, address indexed from, address to, uint256 amount, bytes extraData); + event ETHBridgeFinalized(address indexed from, address indexed to, uint256 amount, bytes extraData); + event ETHBridgeInitiated(address indexed from, address indexed to, uint256 amount, bytes extraData); + event ETHDepositInitiated(address indexed from, address indexed to, uint256 amount, bytes extraData); + event ETHWithdrawalFinalized(address indexed from, address indexed to, uint256 amount, bytes extraData); + event Initialized(uint8 version); + + constructor(); + + receive() external payable; + + function MESSENGER() external view returns (address); + function OTHER_BRIDGE() external view returns (address); + function bridgeERC20(address _localToken, address _remoteToken, uint256 _amount, uint32 _minGasLimit, bytes memory _extraData) external; + function bridgeERC20To(address _localToken, address _remoteToken, address _to, uint256 _amount, uint32 _minGasLimit, bytes memory _extraData) external; + function bridgeETH(uint32 _minGasLimit, bytes memory _extraData) external payable; + function bridgeETHTo(address _to, uint32 _minGasLimit, bytes memory _extraData) external payable; + function depositERC20(address _l1Token, address _l2Token, uint256 _amount, uint32 _minGasLimit, bytes memory _extraData) external; + function depositERC20To(address _l1Token, address _l2Token, address _to, uint256 _amount, uint32 _minGasLimit, bytes memory _extraData) external; + function depositETH(uint32 _minGasLimit, bytes memory _extraData) external payable; + function depositETHTo(address _to, uint32 _minGasLimit, bytes memory _extraData) external payable; + function deposits(address, address) external view returns (uint256); + function finalizeBridgeERC20(address _localToken, address _remoteToken, address _from, address _to, uint256 _amount, bytes memory _extraData) external; + function finalizeBridgeETH(address _from, address _to, uint256 _amount, bytes memory _extraData) external payable; + function finalizeERC20Withdrawal(address _l1Token, address _l2Token, address _from, address _to, uint256 _amount, bytes memory _extraData) external; + function finalizeETHWithdrawal(address _from, address _to, uint256 _amount, bytes memory _extraData) external payable; + function initVersion() external view returns (uint8); + function initialize(address _messenger, address _systemConfig) external; + function l2TokenBridge() external view returns (address); + function messenger() external view returns (address); + function otherBridge() external view returns (address); + function paused() external view returns (bool); + function proxyAdmin() external view returns (address); + function proxyAdminOwner() external view returns (address); + function superchainConfig() external view returns (address); + function systemConfig() external view returns (address); + function version() external view returns (string memory); +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "constructor", + "inputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "receive", + "stateMutability": "payable" + }, + { + "type": "function", + "name": "MESSENGER", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract ICrossDomainMessenger" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "OTHER_BRIDGE", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract StandardBridge" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "bridgeERC20", + "inputs": [ + { + "name": "_localToken", + "type": "address", + "internalType": "address" + }, + { + "name": "_remoteToken", + "type": "address", + "internalType": "address" + }, + { + "name": "_amount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_minGasLimit", + "type": "uint32", + "internalType": "uint32" + }, + { + "name": "_extraData", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "bridgeERC20To", + "inputs": [ + { + "name": "_localToken", + "type": "address", + "internalType": "address" + }, + { + "name": "_remoteToken", + "type": "address", + "internalType": "address" + }, + { + "name": "_to", + "type": "address", + "internalType": "address" + }, + { + "name": "_amount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_minGasLimit", + "type": "uint32", + "internalType": "uint32" + }, + { + "name": "_extraData", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "bridgeETH", + "inputs": [ + { + "name": "_minGasLimit", + "type": "uint32", + "internalType": "uint32" + }, + { + "name": "_extraData", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "bridgeETHTo", + "inputs": [ + { + "name": "_to", + "type": "address", + "internalType": "address" + }, + { + "name": "_minGasLimit", + "type": "uint32", + "internalType": "uint32" + }, + { + "name": "_extraData", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "depositERC20", + "inputs": [ + { + "name": "_l1Token", + "type": "address", + "internalType": "address" + }, + { + "name": "_l2Token", + "type": "address", + "internalType": "address" + }, + { + "name": "_amount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_minGasLimit", + "type": "uint32", + "internalType": "uint32" + }, + { + "name": "_extraData", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "depositERC20To", + "inputs": [ + { + "name": "_l1Token", + "type": "address", + "internalType": "address" + }, + { + "name": "_l2Token", + "type": "address", + "internalType": "address" + }, + { + "name": "_to", + "type": "address", + "internalType": "address" + }, + { + "name": "_amount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_minGasLimit", + "type": "uint32", + "internalType": "uint32" + }, + { + "name": "_extraData", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "depositETH", + "inputs": [ + { + "name": "_minGasLimit", + "type": "uint32", + "internalType": "uint32" + }, + { + "name": "_extraData", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "depositETHTo", + "inputs": [ + { + "name": "_to", + "type": "address", + "internalType": "address" + }, + { + "name": "_minGasLimit", + "type": "uint32", + "internalType": "uint32" + }, + { + "name": "_extraData", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "deposits", + "inputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + }, + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "finalizeBridgeERC20", + "inputs": [ + { + "name": "_localToken", + "type": "address", + "internalType": "address" + }, + { + "name": "_remoteToken", + "type": "address", + "internalType": "address" + }, + { + "name": "_from", + "type": "address", + "internalType": "address" + }, + { + "name": "_to", + "type": "address", + "internalType": "address" + }, + { + "name": "_amount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_extraData", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "finalizeBridgeETH", + "inputs": [ + { + "name": "_from", + "type": "address", + "internalType": "address" + }, + { + "name": "_to", + "type": "address", + "internalType": "address" + }, + { + "name": "_amount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_extraData", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "finalizeERC20Withdrawal", + "inputs": [ + { + "name": "_l1Token", + "type": "address", + "internalType": "address" + }, + { + "name": "_l2Token", + "type": "address", + "internalType": "address" + }, + { + "name": "_from", + "type": "address", + "internalType": "address" + }, + { + "name": "_to", + "type": "address", + "internalType": "address" + }, + { + "name": "_amount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_extraData", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "finalizeETHWithdrawal", + "inputs": [ + { + "name": "_from", + "type": "address", + "internalType": "address" + }, + { + "name": "_to", + "type": "address", + "internalType": "address" + }, + { + "name": "_amount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_extraData", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "initVersion", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint8", + "internalType": "uint8" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "initialize", + "inputs": [ + { + "name": "_messenger", + "type": "address", + "internalType": "contract ICrossDomainMessenger" + }, + { + "name": "_systemConfig", + "type": "address", + "internalType": "contract ISystemConfig" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "l2TokenBridge", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "messenger", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract ICrossDomainMessenger" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "otherBridge", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract StandardBridge" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "paused", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "proxyAdmin", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract IProxyAdmin" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "proxyAdminOwner", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "superchainConfig", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract ISuperchainConfig" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "systemConfig", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract ISystemConfig" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "version", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "view" + }, + { + "type": "event", + "name": "ERC20BridgeFinalized", + "inputs": [ + { + "name": "localToken", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "remoteToken", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "from", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "to", + "type": "address", + "indexed": false, + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + }, + { + "name": "extraData", + "type": "bytes", + "indexed": false, + "internalType": "bytes" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "ERC20BridgeInitiated", + "inputs": [ + { + "name": "localToken", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "remoteToken", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "from", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "to", + "type": "address", + "indexed": false, + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + }, + { + "name": "extraData", + "type": "bytes", + "indexed": false, + "internalType": "bytes" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "ERC20DepositInitiated", + "inputs": [ + { + "name": "l1Token", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "l2Token", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "from", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "to", + "type": "address", + "indexed": false, + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + }, + { + "name": "extraData", + "type": "bytes", + "indexed": false, + "internalType": "bytes" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "ERC20WithdrawalFinalized", + "inputs": [ + { + "name": "l1Token", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "l2Token", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "from", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "to", + "type": "address", + "indexed": false, + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + }, + { + "name": "extraData", + "type": "bytes", + "indexed": false, + "internalType": "bytes" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "ETHBridgeFinalized", + "inputs": [ + { + "name": "from", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "to", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + }, + { + "name": "extraData", + "type": "bytes", + "indexed": false, + "internalType": "bytes" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "ETHBridgeInitiated", + "inputs": [ + { + "name": "from", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "to", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + }, + { + "name": "extraData", + "type": "bytes", + "indexed": false, + "internalType": "bytes" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "ETHDepositInitiated", + "inputs": [ + { + "name": "from", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "to", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + }, + { + "name": "extraData", + "type": "bytes", + "indexed": false, + "internalType": "bytes" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "ETHWithdrawalFinalized", + "inputs": [ + { + "name": "from", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "to", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + }, + { + "name": "extraData", + "type": "bytes", + "indexed": false, + "internalType": "bytes" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "Initialized", + "inputs": [ + { + "name": "version", + "type": "uint8", + "indexed": false, + "internalType": "uint8" + } + ], + "anonymous": false + }, + { + "type": "error", + "name": "ProxyAdminOwnedBase_NotProxyAdmin", + "inputs": [] + }, + { + "type": "error", + "name": "ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner", + "inputs": [] + }, + { + "type": "error", + "name": "ProxyAdminOwnedBase_NotProxyAdminOwner", + "inputs": [] + }, + { + "type": "error", + "name": "ProxyAdminOwnedBase_NotResolvedDelegateProxy", + "inputs": [] + }, + { + "type": "error", + "name": "ProxyAdminOwnedBase_NotSharedProxyAdminOwner", + "inputs": [] + }, + { + "type": "error", + "name": "ProxyAdminOwnedBase_ProxyAdminNotFound", + "inputs": [] + }, + { + "type": "error", + "name": "ReinitializableBase_ZeroInitVersion", + "inputs": [] + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod L1StandardBridge { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x60a06040523480156200001157600080fd5b5060036080526200002162000027565b620000e9565b600054610100900460ff1615620000945760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff9081161015620000e7576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b60805161314c6200010c6000396000818161034101526112c8015261314c6000f3fe6080604052600436106101a55760003560e01c80635c975abb116100e1578063927ede2d1161008a578063b1a1a88211610064578063b1a1a88214610597578063c89701a2146105aa578063dad544e0146105d7578063e11013dd146105ec57600080fd5b8063927ede2d146105395780639a2ac6d514610564578063a9f9e6751461057757600080fd5b806387087623116100bb57806387087623146104d35780638f601f66146104f357806391c49bf81461048857600080fd5b80635c975abb146104635780637f46ddb214610488578063838b2520146104b357600080fd5b806338d38c971161014e578063485cc95511610128578063485cc955146103ad578063540abf73146103cd57806354fd4d50146103ed57806358a997f61461044357600080fd5b806338d38c971461032d5780633cb747bf1461036b5780633e47158c1461039857600080fd5b80631635f5fd1161017f5780631635f5fd146102ae57806333d7e2bd146102c157806335e80ab31461031857600080fd5b80630166a07a1461026857806309fc8843146102885780631532ec341461029b57600080fd5b36610263576101b26105ff565b610243576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20616e20454f4100000000000000000060648201526084015b60405180910390fd5b610261333362030d406040518060200160405280600081525061063c565b005b600080fd5b34801561027457600080fd5b50610261610283366004612b73565b61064f565b610261610296366004612c24565b610a69565b6102616102a9366004612c77565b610b45565b6102616102bc366004612c77565b610b59565b3480156102cd57600080fd5b506034546102ee9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b34801561032457600080fd5b506102ee611022565b34801561033957600080fd5b5060405160ff7f000000000000000000000000000000000000000000000000000000000000000016815260200161030f565b34801561037757600080fd5b506003546102ee9073ffffffffffffffffffffffffffffffffffffffff1681565b3480156103a457600080fd5b506102ee6110bb565b3480156103b957600080fd5b506102616103c8366004612cea565b6112c6565b3480156103d957600080fd5b506102616103e8366004612d23565b61148c565b3480156103f957600080fd5b506104366040518060400160405280600581526020017f322e382e3000000000000000000000000000000000000000000000000000000081525081565b60405161030f9190612e10565b34801561044f57600080fd5b5061026161045e366004612e23565b6114d1565b34801561046f57600080fd5b506104786115aa565b604051901515815260200161030f565b34801561049457600080fd5b5060045473ffffffffffffffffffffffffffffffffffffffff166102ee565b3480156104bf57600080fd5b506102616104ce366004612d23565b61163e565b3480156104df57600080fd5b506102616104ee366004612e23565b611683565b3480156104ff57600080fd5b5061052b61050e366004612cea565b600260209081526000928352604080842090915290825290205481565b60405190815260200161030f565b34801561054557600080fd5b5060035473ffffffffffffffffffffffffffffffffffffffff166102ee565b610261610572366004612ea6565b61175c565b34801561058357600080fd5b50610261610592366004612b73565b61179e565b6102616105a5366004612c24565b6117ad565b3480156105b657600080fd5b506004546102ee9073ffffffffffffffffffffffffffffffffffffffff1681565b3480156105e357600080fd5b506102ee611883565b6102616105fa366004612ea6565b6118d7565b600032330361060e5750600190565b333b60170361063657604051602081016040526020600082333c5160e81c62ef010014905090565b50600090565b610649848434858561191a565b50505050565b60035473ffffffffffffffffffffffffffffffffffffffff1633148015610722575060048054600354604080517f6e296e45000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff938416949390921692636e296e459282820192602092908290030181865afa1580156106e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061070a9190612f09565b73ffffffffffffffffffffffffffffffffffffffff16145b6107d4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604160248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20746865206f7468657220627269646760648201527f6500000000000000000000000000000000000000000000000000000000000000608482015260a40161023a565b6107dc6115aa565b15610843576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f5374616e646172644272696467653a2070617573656400000000000000000000604482015260640161023a565b61084c87611ae4565b1561099a5761085b8787611b46565b61090d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f5374616e646172644272696467653a2077726f6e672072656d6f746520746f6b60448201527f656e20666f72204f7074696d69736d204d696e7461626c65204552433230206c60648201527f6f63616c20746f6b656e00000000000000000000000000000000000000000000608482015260a40161023a565b6040517f40c10f1900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8581166004830152602482018590528816906340c10f1990604401600060405180830381600087803b15801561097d57600080fd5b505af1158015610991573d6000803e3d6000fd5b50505050610a1c565b73ffffffffffffffffffffffffffffffffffffffff8088166000908152600260209081526040808320938a16835292905220546109d8908490612f55565b73ffffffffffffffffffffffffffffffffffffffff8089166000818152600260209081526040808320948c1683529390529190912091909155610a1c908585611c66565b610a60878787878787878080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611d3a92505050565b50505050505050565b610a716105ff565b610afd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20616e20454f41000000000000000000606482015260840161023a565b610b403333348686868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061191a92505050565b505050565b610b528585858585610b59565b5050505050565b60035473ffffffffffffffffffffffffffffffffffffffff1633148015610c2c575060048054600354604080517f6e296e45000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff938416949390921692636e296e459282820192602092908290030181865afa158015610bf0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c149190612f09565b73ffffffffffffffffffffffffffffffffffffffff16145b610cde576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604160248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20746865206f7468657220627269646760648201527f6500000000000000000000000000000000000000000000000000000000000000608482015260a40161023a565b610ce66115aa565b15610d4d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f5374616e646172644272696467653a2070617573656400000000000000000000604482015260640161023a565b823414610ddc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603a60248201527f5374616e646172644272696467653a20616d6f756e742073656e7420646f657360448201527f206e6f74206d6174636820616d6f756e74207265717569726564000000000000606482015260840161023a565b3073ffffffffffffffffffffffffffffffffffffffff851603610e81576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f5374616e646172644272696467653a2063616e6e6f742073656e6420746f207360448201527f656c660000000000000000000000000000000000000000000000000000000000606482015260840161023a565b60035473ffffffffffffffffffffffffffffffffffffffff90811690851603610f2c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f5374616e646172644272696467653a2063616e6e6f742073656e6420746f206d60448201527f657373656e676572000000000000000000000000000000000000000000000000606482015260840161023a565b610f6e85858585858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611dc892505050565b6000610f8b855a8660405180602001604052806000815250611e3b565b90508061101a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f5374616e646172644272696467653a20455448207472616e736665722066616960448201527f6c65640000000000000000000000000000000000000000000000000000000000606482015260840161023a565b505050505050565b603454604080517f35e80ab3000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff16916335e80ab39160048083019260209291908290030181865afa158015611092573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110b69190612f09565b905090565b6000806110e67fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b905073ffffffffffffffffffffffffffffffffffffffff81161561110957919050565b6040518060400160405280601a81526020017f4f564d5f4c3143726f7373446f6d61696e4d657373656e67657200000000000081525051600261114c9190612f6c565b604080513060208201526000918101919091527f4f564d5f4c3143726f7373446f6d61696e4d657373656e67657200000000000091909117906111a7906060015b604051602081830303815290604052805190602001205490565b146111de576040517f54e433cd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604080513060208201526001918101919091526000906112009060600161118d565b905073ffffffffffffffffffffffffffffffffffffffff811615611294578073ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611269573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061128d9190612f09565b9250505090565b6040517f332144db00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f0000000000000000000000000000000000000000000000000000000000000000600054610100900460ff16158015611306575060005460ff8083169116105b611392576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161023a565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001660ff8316176101001790556113cb611e53565b603480547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff841617905561142983734200000000000000000000000000000000000010611ed6565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050565b610a6087873388888888888080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611fc092505050565b6114d96105ff565b611565576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20616e20454f41000000000000000000606482015260840161023a565b61101a86863333888888888080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061237992505050565b603454604080517f5c975abb000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff1691635c975abb9160048083019260209291908290030181865afa15801561161a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110b69190612fa9565b610a6087873388888888888080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061237992505050565b61168b6105ff565b611717576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20616e20454f41000000000000000000606482015260840161023a565b61101a86863333888888888080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611fc092505050565b61064933858585858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061063c92505050565b610a608787878787878761064f565b6117b56105ff565b611841576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20616e20454f41000000000000000000606482015260840161023a565b610b4033338585858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061063c92505050565b600061188d6110bb565b73ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611092573d6000803e3d6000fd5b6106493385348686868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061191a92505050565b8234146119a9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603e60248201527f5374616e646172644272696467653a206272696467696e6720455448206d757360448201527f7420696e636c7564652073756666696369656e74204554482076616c75650000606482015260840161023a565b6119b585858584612388565b60035460045460405173ffffffffffffffffffffffffffffffffffffffff92831692633dbb202b9287929116907f1635f5fd0000000000000000000000000000000000000000000000000000000090611a18908b908b9086908a90602401612fcb565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009485161790525160e086901b9092168252611aab92918890600401613014565b6000604051808303818588803b158015611ac457600080fd5b505af1158015611ad8573d6000803e3d6000fd5b50505050505050505050565b6000611b10827f1d1d8b63000000000000000000000000000000000000000000000000000000006123fb565b80611b405750611b40827fec4fc8e3000000000000000000000000000000000000000000000000000000006123fb565b92915050565b6000611b72837f1d1d8b63000000000000000000000000000000000000000000000000000000006123fb565b15611c1b578273ffffffffffffffffffffffffffffffffffffffff1663c01e1bd66040518163ffffffff1660e01b8152600401602060405180830381865afa158015611bc2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611be69190612f09565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050611b40565b8273ffffffffffffffffffffffffffffffffffffffff1663d6c0b2c46040518163ffffffff1660e01b8152600401602060405180830381865afa158015611bc2573d6000803e3d6000fd5b60405173ffffffffffffffffffffffffffffffffffffffff8316602482015260448101829052610b409084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915261241e565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167f3ceee06c1e37648fcbb6ed52e17b3e1f275a1f8c7b22a84b2b84732431e046b3868686604051611db293929190613059565b60405180910390a461101a86868686868661252a565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f2ac69ee804d9a7a0984249f508dfab7cb2534b465b6ce1580f99a38ba9c5e6318484604051611e27929190613097565b60405180910390a3610649848484846125b2565b6000806000835160208501868989f195945050505050565b33611e5c6110bb565b73ffffffffffffffffffffffffffffffffffffffff1614158015611e9d575033611e84611883565b73ffffffffffffffffffffffffffffffffffffffff1614155b15611ed4576040517fc4050a2600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b600054610100900460ff16611f6d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161023a565b6003805473ffffffffffffffffffffffffffffffffffffffff9384167fffffffffffffffffffffffff00000000000000000000000000000000000000009182161790915560048054929093169116179055565b341561204e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f5374616e646172644272696467653a2063616e6e6f742073656e642076616c7560448201527f6500000000000000000000000000000000000000000000000000000000000000606482015260840161023a565b61205787611ae4565b156121a5576120668787611b46565b612118576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f5374616e646172644272696467653a2077726f6e672072656d6f746520746f6b60448201527f656e20666f72204f7074696d69736d204d696e7461626c65204552433230206c60648201527f6f63616c20746f6b656e00000000000000000000000000000000000000000000608482015260a40161023a565b6040517f9dc29fac00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff868116600483015260248201859052881690639dc29fac90604401600060405180830381600087803b15801561218857600080fd5b505af115801561219c573d6000803e3d6000fd5b50505050612239565b6121c773ffffffffffffffffffffffffffffffffffffffff881686308661261f565b73ffffffffffffffffffffffffffffffffffffffff8088166000908152600260209081526040808320938a16835292905220546122059084906130b0565b73ffffffffffffffffffffffffffffffffffffffff8089166000908152600260209081526040808320938b16835292905220555b61224787878787878661267d565b60035460045460405173ffffffffffffffffffffffffffffffffffffffff92831692633dbb202b9216907f0166a07a00000000000000000000000000000000000000000000000000000000906122ab908b908d908c908c908c908b906024016130c8565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009485161790525160e085901b909216825261233e92918790600401613014565b600060405180830381600087803b15801561235857600080fd5b505af115801561236c573d6000803e3d6000fd5b5050505050505050505050565b610a6087878787878787611fc0565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f35d79ab81f2b2017e19afb5c5571778877782d7a8786f5907f93b0f4702f4f2384846040516123e7929190613097565b60405180910390a36106498484848461270b565b60006124068361276a565b8015612417575061241783836127ce565b9392505050565b6000612480826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff1661289d9092919063ffffffff16565b805190915015610b40578080602001905181019061249e9190612fa9565b610b40576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f74207375636365656400000000000000000000000000000000000000000000606482015260840161023a565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fd59c65b35445225835c83f50b6ede06a7be047d22e357073e250d9af537518cd8686866040516125a293929190613059565b60405180910390a4505050505050565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f31b2166ff604fc5672ea5df08a78081d2bc6d746cadce880747f3643d819e83d8484604051612611929190613097565b60405180910390a350505050565b60405173ffffffffffffffffffffffffffffffffffffffff808516602483015283166044820152606481018290526106499085907f23b872dd0000000000000000000000000000000000000000000000000000000090608401611cb8565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167f718594027abd4eaed59f95162563e0cc6d0e8d5b86b1c7be8b1b0ac3343d03968686866040516126f593929190613059565b60405180910390a461101a8686868686866128b4565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f2849b43074093a05396b6f2a937dee8565b15a48a7b3d4bffb732a5017380af58484604051612611929190613097565b6000612796827f01ffc9a7000000000000000000000000000000000000000000000000000000006127ce565b8015611b4057506127c7827fffffffff000000000000000000000000000000000000000000000000000000006127ce565b1592915050565b604080517fffffffff000000000000000000000000000000000000000000000000000000008316602480830191909152825180830390910181526044909101909152602080820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f01ffc9a700000000000000000000000000000000000000000000000000000000178152825160009392849283928392918391908a617530fa92503d91506000519050828015612886575060208210155b80156128925750600081115b979650505050505050565b60606128ac848460008561292c565b949350505050565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167f7ff126db8024424bbfd9826e8ab82ff59136289ea440b04b39a0df1b03b9cabf8686866040516125a293929190613059565b6060824710156129be576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c0000000000000000000000000000000000000000000000000000606482015260840161023a565b73ffffffffffffffffffffffffffffffffffffffff85163b612a3c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161023a565b6000808673ffffffffffffffffffffffffffffffffffffffff168587604051612a659190613123565b60006040518083038185875af1925050503d8060008114612aa2576040519150601f19603f3d011682016040523d82523d6000602084013e612aa7565b606091505b509150915061289282828660608315612ac1575081612417565b825115612ad15782518084602001fd5b816040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161023a9190612e10565b73ffffffffffffffffffffffffffffffffffffffff81168114612b2757600080fd5b50565b60008083601f840112612b3c57600080fd5b50813567ffffffffffffffff811115612b5457600080fd5b602083019150836020828501011115612b6c57600080fd5b9250929050565b600080600080600080600060c0888a031215612b8e57600080fd5b8735612b9981612b05565b96506020880135612ba981612b05565b95506040880135612bb981612b05565b94506060880135612bc981612b05565b93506080880135925060a088013567ffffffffffffffff811115612bec57600080fd5b612bf88a828b01612b2a565b989b979a50959850939692959293505050565b803563ffffffff81168114612c1f57600080fd5b919050565b600080600060408486031215612c3957600080fd5b612c4284612c0b565b9250602084013567ffffffffffffffff811115612c5e57600080fd5b612c6a86828701612b2a565b9497909650939450505050565b600080600080600060808688031215612c8f57600080fd5b8535612c9a81612b05565b94506020860135612caa81612b05565b935060408601359250606086013567ffffffffffffffff811115612ccd57600080fd5b612cd988828901612b2a565b969995985093965092949392505050565b60008060408385031215612cfd57600080fd5b8235612d0881612b05565b91506020830135612d1881612b05565b809150509250929050565b600080600080600080600060c0888a031215612d3e57600080fd5b8735612d4981612b05565b96506020880135612d5981612b05565b95506040880135612d6981612b05565b945060608801359350612d7e60808901612c0b565b925060a088013567ffffffffffffffff811115612bec57600080fd5b60005b83811015612db5578181015183820152602001612d9d565b838111156106495750506000910152565b60008151808452612dde816020860160208601612d9a565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006124176020830184612dc6565b60008060008060008060a08789031215612e3c57600080fd5b8635612e4781612b05565b95506020870135612e5781612b05565b945060408701359350612e6c60608801612c0b565b9250608087013567ffffffffffffffff811115612e8857600080fd5b612e9489828a01612b2a565b979a9699509497509295939492505050565b60008060008060608587031215612ebc57600080fd5b8435612ec781612b05565b9350612ed560208601612c0b565b9250604085013567ffffffffffffffff811115612ef157600080fd5b612efd87828801612b2a565b95989497509550505050565b600060208284031215612f1b57600080fd5b815161241781612b05565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600082821015612f6757612f67612f26565b500390565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612fa457612fa4612f26565b500290565b600060208284031215612fbb57600080fd5b8151801515811461241757600080fd5b600073ffffffffffffffffffffffffffffffffffffffff80871683528086166020840152508360408301526080606083015261300a6080830184612dc6565b9695505050505050565b73ffffffffffffffffffffffffffffffffffffffff841681526060602082015260006130436060830185612dc6565b905063ffffffff83166040830152949350505050565b73ffffffffffffffffffffffffffffffffffffffff8416815282602082015260606040820152600061308e6060830184612dc6565b95945050505050565b8281526040602082015260006128ac6040830184612dc6565b600082198211156130c3576130c3612f26565b500190565b600073ffffffffffffffffffffffffffffffffffffffff80891683528088166020840152808716604084015280861660608401525083608083015260c060a083015261311760c0830184612dc6565b98975050505050505050565b60008251613135818460208701612d9a565b919091019291505056fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\xA0`@R4\x80\x15b\0\0\x11W`\0\x80\xFD[P`\x03`\x80Rb\0\0!b\0\0'V[b\0\0\xE9V[`\0Ta\x01\0\x90\x04`\xFF\x16\x15b\0\0\x94W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`'`$\x82\x01R\x7FInitializable: contract is initi`D\x82\x01Rfalizing`\xC8\x1B`d\x82\x01R`\x84\x01`@Q\x80\x91\x03\x90\xFD[`\0T`\xFF\x90\x81\x16\x10\x15b\0\0\xE7W`\0\x80T`\xFF\x19\x16`\xFF\x90\x81\x17\x90\x91U`@Q\x90\x81R\x7F\x7F&\xB8?\xF9n\x1F+jh/\x138R\xF6y\x8A\t\xC4e\xDA\x95\x92\x14`\xCE\xFB8G@$\x98\x90` \x01`@Q\x80\x91\x03\x90\xA1[V[`\x80Qa1Lb\0\x01\x0C`\09`\0\x81\x81a\x03A\x01Ra\x12\xC8\x01Ra1L`\0\xF3\xFE`\x80`@R`\x046\x10a\x01\xA5W`\x005`\xE0\x1C\x80c\\\x97Z\xBB\x11a\0\xE1W\x80c\x92~\xDE-\x11a\0\x8AW\x80c\xB1\xA1\xA8\x82\x11a\0dW\x80c\xB1\xA1\xA8\x82\x14a\x05\x97W\x80c\xC8\x97\x01\xA2\x14a\x05\xAAW\x80c\xDA\xD5D\xE0\x14a\x05\xD7W\x80c\xE1\x10\x13\xDD\x14a\x05\xECW`\0\x80\xFD[\x80c\x92~\xDE-\x14a\x059W\x80c\x9A*\xC6\xD5\x14a\x05dW\x80c\xA9\xF9\xE6u\x14a\x05wW`\0\x80\xFD[\x80c\x87\x08v#\x11a\0\xBBW\x80c\x87\x08v#\x14a\x04\xD3W\x80c\x8F`\x1Ff\x14a\x04\xF3W\x80c\x91\xC4\x9B\xF8\x14a\x04\x88W`\0\x80\xFD[\x80c\\\x97Z\xBB\x14a\x04cW\x80c\x7FF\xDD\xB2\x14a\x04\x88W\x80c\x83\x8B% \x14a\x04\xB3W`\0\x80\xFD[\x80c8\xD3\x8C\x97\x11a\x01NW\x80cH\\\xC9U\x11a\x01(W\x80cH\\\xC9U\x14a\x03\xADW\x80cT\n\xBFs\x14a\x03\xCDW\x80cT\xFDMP\x14a\x03\xEDW\x80cX\xA9\x97\xF6\x14a\x04CW`\0\x80\xFD[\x80c8\xD3\x8C\x97\x14a\x03-W\x80c<\xB7G\xBF\x14a\x03kW\x80c>G\x15\x8C\x14a\x03\x98W`\0\x80\xFD[\x80c\x165\xF5\xFD\x11a\x01\x7FW\x80c\x165\xF5\xFD\x14a\x02\xAEW\x80c3\xD7\xE2\xBD\x14a\x02\xC1W\x80c5\xE8\n\xB3\x14a\x03\x18W`\0\x80\xFD[\x80c\x01f\xA0z\x14a\x02hW\x80c\t\xFC\x88C\x14a\x02\x88W\x80c\x152\xEC4\x14a\x02\x9BW`\0\x80\xFD[6a\x02cWa\x01\xB2a\x05\xFFV[a\x02CW`@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\x82\x01R`7`$\x82\x01R\x7FStandardBridge: function can onl`D\x82\x01R\x7Fy be called from an EOA\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01[`@Q\x80\x91\x03\x90\xFD[a\x02a33b\x03\r@`@Q\x80` \x01`@R\x80`\0\x81RPa\x06V[4\x80\x15a\x04\xDFW`\0\x80\xFD[Pa\x02aa\x04\xEE6`\x04a.#V[a\x16\x83V[4\x80\x15a\x04\xFFW`\0\x80\xFD[Pa\x05+a\x05\x0E6`\x04a,\xEAV[`\x02` \x90\x81R`\0\x92\x83R`@\x80\x84 \x90\x91R\x90\x82R\x90 T\x81V[`@Q\x90\x81R` \x01a\x03\x0FV[4\x80\x15a\x05EW`\0\x80\xFD[P`\x03Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a\x02\xEEV[a\x02aa\x05r6`\x04a.\xA6V[a\x17\\V[4\x80\x15a\x05\x83W`\0\x80\xFD[Pa\x02aa\x05\x926`\x04a+sV[a\x17\x9EV[a\x02aa\x05\xA56`\x04a,$V[a\x17\xADV[4\x80\x15a\x05\xB6W`\0\x80\xFD[P`\x04Ta\x02\xEE\x90s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[4\x80\x15a\x05\xE3W`\0\x80\xFD[Pa\x02\xEEa\x18\x83V[a\x02aa\x05\xFA6`\x04a.\xA6V[a\x18\xD7V[`\x0023\x03a\x06\x0EWP`\x01\x90V[3;`\x17\x03a\x066W`@Q` \x81\x01`@R` `\0\x823=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x07\n\x91\x90a/\tV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14[a\x07\xD4W`@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\x82\x01R`A`$\x82\x01R\x7FStandardBridge: function can onl`D\x82\x01R\x7Fy be called from the other bridg`d\x82\x01R\x7Fe\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x84\x82\x01R`\xA4\x01a\x02:V[a\x07\xDCa\x15\xAAV[\x15a\x08CW`@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\x82\x01R`\x16`$\x82\x01R\x7FStandardBridge: paused\0\0\0\0\0\0\0\0\0\0`D\x82\x01R`d\x01a\x02:V[a\x08L\x87a\x1A\xE4V[\x15a\t\x9AWa\x08[\x87\x87a\x1BFV[a\t\rW`@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\x82\x01R`J`$\x82\x01R\x7FStandardBridge: wrong remote tok`D\x82\x01R\x7Fen for Optimism Mintable ERC20 l`d\x82\x01R\x7Focal token\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x84\x82\x01R`\xA4\x01a\x02:V[`@Q\x7F@\xC1\x0F\x19\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\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x85\x81\x16`\x04\x83\x01R`$\x82\x01\x85\x90R\x88\x16\x90c@\xC1\x0F\x19\x90`D\x01`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a\t}W`\0\x80\xFD[PZ\xF1\x15\x80\x15a\t\x91W=`\0\x80>=`\0\xFD[PPPPa\n\x1CV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x88\x16`\0\x90\x81R`\x02` \x90\x81R`@\x80\x83 \x93\x8A\x16\x83R\x92\x90R Ta\t\xD8\x90\x84\x90a/UV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x89\x16`\0\x81\x81R`\x02` \x90\x81R`@\x80\x83 \x94\x8C\x16\x83R\x93\x90R\x91\x90\x91 \x91\x90\x91Ua\n\x1C\x90\x85\x85a\x1CfV[a\n`\x87\x87\x87\x87\x87\x87\x87\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RPa\x1D:\x92PPPV[PPPPPPPV[a\nqa\x05\xFFV[a\n\xFDW`@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\x82\x01R`7`$\x82\x01R\x7FStandardBridge: function can onl`D\x82\x01R\x7Fy be called from an EOA\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x02:V[a\x0B@334\x86\x86\x86\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RPa\x19\x1A\x92PPPV[PPPV[a\x0BR\x85\x85\x85\x85\x85a\x0BYV[PPPPPV[`\x03Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x163\x14\x80\x15a\x0C,WP`\x04\x80T`\x03T`@\x80Q\x7Fn)nE\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\x90Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x93\x84\x16\x94\x93\x90\x92\x16\x92cn)nE\x92\x82\x82\x01\x92` \x92\x90\x82\x90\x03\x01\x81\x86Z\xFA\x15\x80\x15a\x0B\xF0W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x0C\x14\x91\x90a/\tV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14[a\x0C\xDEW`@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\x82\x01R`A`$\x82\x01R\x7FStandardBridge: function can onl`D\x82\x01R\x7Fy be called from the other bridg`d\x82\x01R\x7Fe\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x84\x82\x01R`\xA4\x01a\x02:V[a\x0C\xE6a\x15\xAAV[\x15a\rMW`@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\x82\x01R`\x16`$\x82\x01R\x7FStandardBridge: paused\0\0\0\0\0\0\0\0\0\0`D\x82\x01R`d\x01a\x02:V[\x824\x14a\r\xDCW`@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\x82\x01R`:`$\x82\x01R\x7FStandardBridge: amount sent does`D\x82\x01R\x7F not match amount required\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x02:V[0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x85\x16\x03a\x0E\x81W`@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\x82\x01R`#`$\x82\x01R\x7FStandardBridge: cannot send to s`D\x82\x01R\x7Felf\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x02:V[`\x03Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x81\x16\x90\x85\x16\x03a\x0F,W`@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\x82\x01R`(`$\x82\x01R\x7FStandardBridge: cannot send to m`D\x82\x01R\x7Fessenger\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x02:V[a\x0Fn\x85\x85\x85\x85\x85\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RPa\x1D\xC8\x92PPPV[`\0a\x0F\x8B\x85Z\x86`@Q\x80` \x01`@R\x80`\0\x81RPa\x1E;V[\x90P\x80a\x10\x1AW`@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\x82\x01R`#`$\x82\x01R\x7FStandardBridge: ETH transfer fai`D\x82\x01R\x7Fled\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x02:V[PPPPPPV[`4T`@\x80Q\x7F5\xE8\n\xB3\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\x90Q`\0\x92s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x91c5\xE8\n\xB3\x91`\x04\x80\x83\x01\x92` \x92\x91\x90\x82\x90\x03\x01\x81\x86Z\xFA\x15\x80\x15a\x10\x92W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x10\xB6\x91\x90a/\tV[\x90P\x90V[`\0\x80a\x10\xE6\x7F\xB51'hJV\x8B1s\xAE\x13\xB9\xF8\xA6\x01n$>c\xB6\xE8\xEE\x11x\xD6\xA7\x17\x85\x0B]a\x03T\x90V[\x90Ps\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x15a\x11\tW\x91\x90PV[`@Q\x80`@\x01`@R\x80`\x1A\x81R` \x01\x7FOVM_L1CrossDomainMessenger\0\0\0\0\0\0\x81RPQ`\x02a\x11L\x91\x90a/lV[`@\x80Q0` \x82\x01R`\0\x91\x81\x01\x91\x90\x91R\x7FOVM_L1CrossDomainMessenger\0\0\0\0\0\0\x91\x90\x91\x17\x90a\x11\xA7\x90``\x01[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 T\x90V[\x14a\x11\xDEW`@Q\x7FT\xE43\xCD\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\x01`@Q\x80\x91\x03\x90\xFD[`@\x80Q0` \x82\x01R`\x01\x91\x81\x01\x91\x90\x91R`\0\x90a\x12\0\x90``\x01a\x11\x8DV[\x90Ps\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x15a\x12\x94W\x80s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\x8D\xA5\xCB[`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x12iW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x12\x8D\x91\x90a/\tV[\x92PPP\x90V[`@Q\x7F3!D\xDB\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\x01`@Q\x80\x91\x03\x90\xFD[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\0Ta\x01\0\x90\x04`\xFF\x16\x15\x80\x15a\x13\x06WP`\0T`\xFF\x80\x83\x16\x91\x16\x10[a\x13\x92W`@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\x82\x01R`.`$\x82\x01R\x7FInitializable: contract is alrea`D\x82\x01R\x7Fdy initialized\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x02:V[`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\x16`\xFF\x83\x16\x17a\x01\0\x17\x90Ua\x13\xCBa\x1ESV[`4\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x16\x17\x90Ua\x14)\x83sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x10a\x1E\xD6V[`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\x16\x90U`@Q`\xFF\x82\x16\x81R\x7F\x7F&\xB8?\xF9n\x1F+jh/\x138R\xF6y\x8A\t\xC4e\xDA\x95\x92\x14`\xCE\xFB8G@$\x98\x90` \x01`@Q\x80\x91\x03\x90\xA1PPPV[a\n`\x87\x873\x88\x88\x88\x88\x88\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RPa\x1F\xC0\x92PPPV[a\x14\xD9a\x05\xFFV[a\x15eW`@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\x82\x01R`7`$\x82\x01R\x7FStandardBridge: function can onl`D\x82\x01R\x7Fy be called from an EOA\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x02:V[a\x10\x1A\x86\x8633\x88\x88\x88\x88\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RPa#y\x92PPPV[`4T`@\x80Q\x7F\\\x97Z\xBB\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\x90Q`\0\x92s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x91c\\\x97Z\xBB\x91`\x04\x80\x83\x01\x92` \x92\x91\x90\x82\x90\x03\x01\x81\x86Z\xFA\x15\x80\x15a\x16\x1AW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x10\xB6\x91\x90a/\xA9V[a\n`\x87\x873\x88\x88\x88\x88\x88\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RPa#y\x92PPPV[a\x16\x8Ba\x05\xFFV[a\x17\x17W`@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\x82\x01R`7`$\x82\x01R\x7FStandardBridge: function can onl`D\x82\x01R\x7Fy be called from an EOA\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x02:V[a\x10\x1A\x86\x8633\x88\x88\x88\x88\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RPa\x1F\xC0\x92PPPV[a\x06I3\x85\x85\x85\x85\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RPa\x06<\x92PPPV[a\n`\x87\x87\x87\x87\x87\x87\x87a\x06OV[a\x17\xB5a\x05\xFFV[a\x18AW`@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\x82\x01R`7`$\x82\x01R\x7FStandardBridge: function can onl`D\x82\x01R\x7Fy be called from an EOA\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x02:V[a\x0B@33\x85\x85\x85\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RPa\x06<\x92PPPV[`\0a\x18\x8Da\x10\xBBV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\x8D\xA5\xCB[`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x10\x92W=`\0\x80>=`\0\xFD[a\x06I3\x854\x86\x86\x86\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RPa\x19\x1A\x92PPPV[\x824\x14a\x19\xA9W`@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\x82\x01R`>`$\x82\x01R\x7FStandardBridge: bridging ETH mus`D\x82\x01R\x7Ft include sufficient ETH value\0\0`d\x82\x01R`\x84\x01a\x02:V[a\x19\xB5\x85\x85\x85\x84a#\x88V[`\x03T`\x04T`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x92\x83\x16\x92c=\xBB +\x92\x87\x92\x91\x16\x90\x7F\x165\xF5\xFD\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\x90a\x1A\x18\x90\x8B\x90\x8B\x90\x86\x90\x8A\x90`$\x01a/\xCBV[`@\x80Q\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x81\x84\x03\x01\x81R\x91\x81R` \x82\x01\x80Q{\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xFF\xFF\xFF\xFF\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\x94\x85\x16\x17\x90RQ`\xE0\x86\x90\x1B\x90\x92\x16\x82Ra\x1A\xAB\x92\x91\x88\x90`\x04\x01a0\x14V[`\0`@Q\x80\x83\x03\x81\x85\x88\x80;\x15\x80\x15a\x1A\xC4W`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x1A\xD8W=`\0\x80>=`\0\xFD[PPPPPPPPPPV[`\0a\x1B\x10\x82\x7F\x1D\x1D\x8Bc\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\0a#\xFBV[\x80a\x1B@WPa\x1B@\x82\x7F\xECO\xC8\xE3\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\0a#\xFBV[\x92\x91PPV[`\0a\x1Br\x83\x7F\x1D\x1D\x8Bc\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\0a#\xFBV[\x15a\x1C\x1BW\x82s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xC0\x1E\x1B\xD6`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x1B\xC2W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x1B\xE6\x91\x90a/\tV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x82s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14\x90Pa\x1B@V[\x82s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xD6\xC0\xB2\xC4`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x1B\xC2W=`\0\x80>=`\0\xFD[`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x16`$\x82\x01R`D\x81\x01\x82\x90Ra\x0B@\x90\x84\x90\x7F\xA9\x05\x9C\xBB\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\x90`d\x01[`@\x80Q\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x81\x84\x03\x01\x81R\x91\x90R` \x81\x01\x80Q{\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xFF\xFF\xFF\xFF\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\x90\x93\x16\x92\x90\x92\x17\x90\x91Ra$\x1EV[\x83s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x85s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x87s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F<\xEE\xE0l\x1E7d\x8F\xCB\xB6\xEDR\xE1{>\x1F'Z\x1F\x8C{\"\xA8K+\x84s$1\xE0F\xB3\x86\x86\x86`@Qa\x1D\xB2\x93\x92\x91\x90a0YV[`@Q\x80\x91\x03\x90\xA4a\x10\x1A\x86\x86\x86\x86\x86\x86a%*V[\x82s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x84s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F*\xC6\x9E\xE8\x04\xD9\xA7\xA0\x98BI\xF5\x08\xDF\xAB|\xB2SKF[l\xE1X\x0F\x99\xA3\x8B\xA9\xC5\xE61\x84\x84`@Qa\x1E'\x92\x91\x90a0\x97V[`@Q\x80\x91\x03\x90\xA3a\x06I\x84\x84\x84\x84a%\xB2V[`\0\x80`\0\x83Q` \x85\x01\x86\x89\x89\xF1\x95\x94PPPPPV[3a\x1E\\a\x10\xBBV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14\x15\x80\x15a\x1E\x9DWP3a\x1E\x84a\x18\x83V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14\x15[\x15a\x1E\xD4W`@Q\x7F\xC4\x05\n&\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\x01`@Q\x80\x91\x03\x90\xFD[V[`\0Ta\x01\0\x90\x04`\xFF\x16a\x1FmW`@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\x82\x01R`+`$\x82\x01R\x7FInitializable: contract is not i`D\x82\x01R\x7Fnitializing\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x02:V[`\x03\x80Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x93\x84\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x91\x82\x16\x17\x90\x91U`\x04\x80T\x92\x90\x93\x16\x91\x16\x17\x90UV[4\x15a NW`@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\x82\x01R`!`$\x82\x01R\x7FStandardBridge: cannot send valu`D\x82\x01R\x7Fe\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x02:V[a W\x87a\x1A\xE4V[\x15a!\xA5Wa f\x87\x87a\x1BFV[a!\x18W`@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\x82\x01R`J`$\x82\x01R\x7FStandardBridge: wrong remote tok`D\x82\x01R\x7Fen for Optimism Mintable ERC20 l`d\x82\x01R\x7Focal token\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x84\x82\x01R`\xA4\x01a\x02:V[`@Q\x7F\x9D\xC2\x9F\xAC\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\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x86\x81\x16`\x04\x83\x01R`$\x82\x01\x85\x90R\x88\x16\x90c\x9D\xC2\x9F\xAC\x90`D\x01`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a!\x88W`\0\x80\xFD[PZ\xF1\x15\x80\x15a!\x9CW=`\0\x80>=`\0\xFD[PPPPa\"9V[a!\xC7s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x88\x16\x860\x86a&\x1FV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x88\x16`\0\x90\x81R`\x02` \x90\x81R`@\x80\x83 \x93\x8A\x16\x83R\x92\x90R Ta\"\x05\x90\x84\x90a0\xB0V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x89\x16`\0\x90\x81R`\x02` \x90\x81R`@\x80\x83 \x93\x8B\x16\x83R\x92\x90R U[a\"G\x87\x87\x87\x87\x87\x86a&}V[`\x03T`\x04T`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x92\x83\x16\x92c=\xBB +\x92\x16\x90\x7F\x01f\xA0z\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\x90a\"\xAB\x90\x8B\x90\x8D\x90\x8C\x90\x8C\x90\x8C\x90\x8B\x90`$\x01a0\xC8V[`@\x80Q\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x81\x84\x03\x01\x81R\x91\x81R` \x82\x01\x80Q{\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xFF\xFF\xFF\xFF\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\x94\x85\x16\x17\x90RQ`\xE0\x85\x90\x1B\x90\x92\x16\x82Ra#>\x92\x91\x87\x90`\x04\x01a0\x14V[`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a#XW`\0\x80\xFD[PZ\xF1\x15\x80\x15a#lW=`\0\x80>=`\0\xFD[PPPPPPPPPPPV[a\n`\x87\x87\x87\x87\x87\x87\x87a\x1F\xC0V[\x82s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x84s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F5\xD7\x9A\xB8\x1F+ \x17\xE1\x9A\xFB\\Uqw\x88wx-z\x87\x86\xF5\x90\x7F\x93\xB0\xF4p/O#\x84\x84`@Qa#\xE7\x92\x91\x90a0\x97V[`@Q\x80\x91\x03\x90\xA3a\x06I\x84\x84\x84\x84a'\x0BV[`\0a$\x06\x83a'jV[\x80\x15a$\x17WPa$\x17\x83\x83a'\xCEV[\x93\x92PPPV[`\0a$\x80\x82`@Q\x80`@\x01`@R\x80` \x81R` \x01\x7FSafeERC20: low-level call failed\x81RP\x85s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a(\x9D\x90\x92\x91\x90c\xFF\xFF\xFF\xFF\x16V[\x80Q\x90\x91P\x15a\x0B@W\x80\x80` \x01\x90Q\x81\x01\x90a$\x9E\x91\x90a/\xA9V[a\x0B@W`@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\x82\x01R`*`$\x82\x01R\x7FSafeERC20: ERC20 operation did n`D\x82\x01R\x7Fot succeed\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x02:V[\x83s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x85s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x87s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xD5\x9Ce\xB3TE\"X5\xC8?P\xB6\xED\xE0j{\xE0G\xD2.5ps\xE2P\xD9\xAFSu\x18\xCD\x86\x86\x86`@Qa%\xA2\x93\x92\x91\x90a0YV[`@Q\x80\x91\x03\x90\xA4PPPPPPV[\x82s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x84s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F1\xB2\x16o\xF6\x04\xFCVr\xEA]\xF0\x8Ax\x08\x1D+\xC6\xD7F\xCA\xDC\xE8\x80t\x7F6C\xD8\x19\xE8=\x84\x84`@Qa&\x11\x92\x91\x90a0\x97V[`@Q\x80\x91\x03\x90\xA3PPPPV[`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x85\x16`$\x83\x01R\x83\x16`D\x82\x01R`d\x81\x01\x82\x90Ra\x06I\x90\x85\x90\x7F#\xB8r\xDD\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\x90`\x84\x01a\x1C\xB8V[\x83s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x85s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x87s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7Fq\x85\x94\x02z\xBDN\xAE\xD5\x9F\x95\x16%c\xE0\xCCm\x0E\x8D[\x86\xB1\xC7\xBE\x8B\x1B\n\xC34=\x03\x96\x86\x86\x86`@Qa&\xF5\x93\x92\x91\x90a0YV[`@Q\x80\x91\x03\x90\xA4a\x10\x1A\x86\x86\x86\x86\x86\x86a(\xB4V[\x82s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x84s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F(I\xB40t\t:\x059ko*\x93}\xEE\x85e\xB1ZH\xA7\xB3\xD4\xBF\xFBs*P\x178\n\xF5\x84\x84`@Qa&\x11\x92\x91\x90a0\x97V[`\0a'\x96\x82\x7F\x01\xFF\xC9\xA7\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\0a'\xCEV[\x80\x15a\x1B@WPa'\xC7\x82\x7F\xFF\xFF\xFF\xFF\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\0a'\xCEV[\x15\x92\x91PPV[`@\x80Q\x7F\xFF\xFF\xFF\xFF\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\x83\x16`$\x80\x83\x01\x91\x90\x91R\x82Q\x80\x83\x03\x90\x91\x01\x81R`D\x90\x91\x01\x90\x91R` \x80\x82\x01\x80Q{\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\x01\xFF\xC9\xA7\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\x17\x81R\x82Q`\0\x93\x92\x84\x92\x83\x92\x83\x92\x91\x83\x91\x90\x8Aau0\xFA\x92P=\x91P`\0Q\x90P\x82\x80\x15a(\x86WP` \x82\x10\x15[\x80\x15a(\x92WP`\0\x81\x11[\x97\x96PPPPPPPV[``a(\xAC\x84\x84`\0\x85a),V[\x94\x93PPPPV[\x83s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x85s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x87s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\x7F\xF1&\xDB\x80$BK\xBF\xD9\x82n\x8A\xB8/\xF5\x916(\x9E\xA4@\xB0K9\xA0\xDF\x1B\x03\xB9\xCA\xBF\x86\x86\x86`@Qa%\xA2\x93\x92\x91\x90a0YV[``\x82G\x10\x15a)\xBEW`@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\x82\x01R`&`$\x82\x01R\x7FAddress: insufficient balance fo`D\x82\x01R\x7Fr call\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`d\x82\x01R`\x84\x01a\x02:V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x85\x16;a*a*\xA7V[``\x91P[P\x91P\x91Pa(\x92\x82\x82\x86``\x83\x15a*\xC1WP\x81a$\x17V[\x82Q\x15a*\xD1W\x82Q\x80\x84` \x01\xFD[\x81`@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:\x91\x90a.\x10V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a+'W`\0\x80\xFD[PV[`\0\x80\x83`\x1F\x84\x01\x12a+W`\0\x80\xFD[\x875a-I\x81a+\x05V[\x96P` \x88\x015a-Y\x81a+\x05V[\x95P`@\x88\x015a-i\x81a+\x05V[\x94P``\x88\x015\x93Pa-~`\x80\x89\x01a,\x0BV[\x92P`\xA0\x88\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a+\xECW`\0\x80\xFD[`\0[\x83\x81\x10\x15a-\xB5W\x81\x81\x01Q\x83\x82\x01R` \x01a-\x9DV[\x83\x81\x11\x15a\x06IWPP`\0\x91\x01RV[`\0\x81Q\x80\x84Ra-\xDE\x81` \x86\x01` \x86\x01a-\x9AV[`\x1F\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x92\x90\x92\x01` \x01\x92\x91PPV[` \x81R`\0a$\x17` \x83\x01\x84a-\xC6V[`\0\x80`\0\x80`\0\x80`\xA0\x87\x89\x03\x12\x15a.G\x15\x8C\x14a\x03\x98W`\0\x80\xFD[\x80c\x165\xF5\xFD\x11a\x01\x7FW\x80c\x165\xF5\xFD\x14a\x02\xAEW\x80c3\xD7\xE2\xBD\x14a\x02\xC1W\x80c5\xE8\n\xB3\x14a\x03\x18W`\0\x80\xFD[\x80c\x01f\xA0z\x14a\x02hW\x80c\t\xFC\x88C\x14a\x02\x88W\x80c\x152\xEC4\x14a\x02\x9BW`\0\x80\xFD[6a\x02cWa\x01\xB2a\x05\xFFV[a\x02CW`@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\x82\x01R`7`$\x82\x01R\x7FStandardBridge: function can onl`D\x82\x01R\x7Fy be called from an EOA\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01[`@Q\x80\x91\x03\x90\xFD[a\x02a33b\x03\r@`@Q\x80` \x01`@R\x80`\0\x81RPa\x06V[4\x80\x15a\x04\xDFW`\0\x80\xFD[Pa\x02aa\x04\xEE6`\x04a.#V[a\x16\x83V[4\x80\x15a\x04\xFFW`\0\x80\xFD[Pa\x05+a\x05\x0E6`\x04a,\xEAV[`\x02` \x90\x81R`\0\x92\x83R`@\x80\x84 \x90\x91R\x90\x82R\x90 T\x81V[`@Q\x90\x81R` \x01a\x03\x0FV[4\x80\x15a\x05EW`\0\x80\xFD[P`\x03Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a\x02\xEEV[a\x02aa\x05r6`\x04a.\xA6V[a\x17\\V[4\x80\x15a\x05\x83W`\0\x80\xFD[Pa\x02aa\x05\x926`\x04a+sV[a\x17\x9EV[a\x02aa\x05\xA56`\x04a,$V[a\x17\xADV[4\x80\x15a\x05\xB6W`\0\x80\xFD[P`\x04Ta\x02\xEE\x90s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[4\x80\x15a\x05\xE3W`\0\x80\xFD[Pa\x02\xEEa\x18\x83V[a\x02aa\x05\xFA6`\x04a.\xA6V[a\x18\xD7V[`\x0023\x03a\x06\x0EWP`\x01\x90V[3;`\x17\x03a\x066W`@Q` \x81\x01`@R` `\0\x823=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x07\n\x91\x90a/\tV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14[a\x07\xD4W`@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\x82\x01R`A`$\x82\x01R\x7FStandardBridge: function can onl`D\x82\x01R\x7Fy be called from the other bridg`d\x82\x01R\x7Fe\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x84\x82\x01R`\xA4\x01a\x02:V[a\x07\xDCa\x15\xAAV[\x15a\x08CW`@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\x82\x01R`\x16`$\x82\x01R\x7FStandardBridge: paused\0\0\0\0\0\0\0\0\0\0`D\x82\x01R`d\x01a\x02:V[a\x08L\x87a\x1A\xE4V[\x15a\t\x9AWa\x08[\x87\x87a\x1BFV[a\t\rW`@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\x82\x01R`J`$\x82\x01R\x7FStandardBridge: wrong remote tok`D\x82\x01R\x7Fen for Optimism Mintable ERC20 l`d\x82\x01R\x7Focal token\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x84\x82\x01R`\xA4\x01a\x02:V[`@Q\x7F@\xC1\x0F\x19\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\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x85\x81\x16`\x04\x83\x01R`$\x82\x01\x85\x90R\x88\x16\x90c@\xC1\x0F\x19\x90`D\x01`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a\t}W`\0\x80\xFD[PZ\xF1\x15\x80\x15a\t\x91W=`\0\x80>=`\0\xFD[PPPPa\n\x1CV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x88\x16`\0\x90\x81R`\x02` \x90\x81R`@\x80\x83 \x93\x8A\x16\x83R\x92\x90R Ta\t\xD8\x90\x84\x90a/UV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x89\x16`\0\x81\x81R`\x02` \x90\x81R`@\x80\x83 \x94\x8C\x16\x83R\x93\x90R\x91\x90\x91 \x91\x90\x91Ua\n\x1C\x90\x85\x85a\x1CfV[a\n`\x87\x87\x87\x87\x87\x87\x87\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RPa\x1D:\x92PPPV[PPPPPPPV[a\nqa\x05\xFFV[a\n\xFDW`@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\x82\x01R`7`$\x82\x01R\x7FStandardBridge: function can onl`D\x82\x01R\x7Fy be called from an EOA\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x02:V[a\x0B@334\x86\x86\x86\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RPa\x19\x1A\x92PPPV[PPPV[a\x0BR\x85\x85\x85\x85\x85a\x0BYV[PPPPPV[`\x03Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x163\x14\x80\x15a\x0C,WP`\x04\x80T`\x03T`@\x80Q\x7Fn)nE\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\x90Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x93\x84\x16\x94\x93\x90\x92\x16\x92cn)nE\x92\x82\x82\x01\x92` \x92\x90\x82\x90\x03\x01\x81\x86Z\xFA\x15\x80\x15a\x0B\xF0W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x0C\x14\x91\x90a/\tV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14[a\x0C\xDEW`@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\x82\x01R`A`$\x82\x01R\x7FStandardBridge: function can onl`D\x82\x01R\x7Fy be called from the other bridg`d\x82\x01R\x7Fe\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x84\x82\x01R`\xA4\x01a\x02:V[a\x0C\xE6a\x15\xAAV[\x15a\rMW`@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\x82\x01R`\x16`$\x82\x01R\x7FStandardBridge: paused\0\0\0\0\0\0\0\0\0\0`D\x82\x01R`d\x01a\x02:V[\x824\x14a\r\xDCW`@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\x82\x01R`:`$\x82\x01R\x7FStandardBridge: amount sent does`D\x82\x01R\x7F not match amount required\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x02:V[0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x85\x16\x03a\x0E\x81W`@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\x82\x01R`#`$\x82\x01R\x7FStandardBridge: cannot send to s`D\x82\x01R\x7Felf\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x02:V[`\x03Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x81\x16\x90\x85\x16\x03a\x0F,W`@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\x82\x01R`(`$\x82\x01R\x7FStandardBridge: cannot send to m`D\x82\x01R\x7Fessenger\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x02:V[a\x0Fn\x85\x85\x85\x85\x85\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RPa\x1D\xC8\x92PPPV[`\0a\x0F\x8B\x85Z\x86`@Q\x80` \x01`@R\x80`\0\x81RPa\x1E;V[\x90P\x80a\x10\x1AW`@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\x82\x01R`#`$\x82\x01R\x7FStandardBridge: ETH transfer fai`D\x82\x01R\x7Fled\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x02:V[PPPPPPV[`4T`@\x80Q\x7F5\xE8\n\xB3\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\x90Q`\0\x92s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x91c5\xE8\n\xB3\x91`\x04\x80\x83\x01\x92` \x92\x91\x90\x82\x90\x03\x01\x81\x86Z\xFA\x15\x80\x15a\x10\x92W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x10\xB6\x91\x90a/\tV[\x90P\x90V[`\0\x80a\x10\xE6\x7F\xB51'hJV\x8B1s\xAE\x13\xB9\xF8\xA6\x01n$>c\xB6\xE8\xEE\x11x\xD6\xA7\x17\x85\x0B]a\x03T\x90V[\x90Ps\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x15a\x11\tW\x91\x90PV[`@Q\x80`@\x01`@R\x80`\x1A\x81R` \x01\x7FOVM_L1CrossDomainMessenger\0\0\0\0\0\0\x81RPQ`\x02a\x11L\x91\x90a/lV[`@\x80Q0` \x82\x01R`\0\x91\x81\x01\x91\x90\x91R\x7FOVM_L1CrossDomainMessenger\0\0\0\0\0\0\x91\x90\x91\x17\x90a\x11\xA7\x90``\x01[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 T\x90V[\x14a\x11\xDEW`@Q\x7FT\xE43\xCD\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\x01`@Q\x80\x91\x03\x90\xFD[`@\x80Q0` \x82\x01R`\x01\x91\x81\x01\x91\x90\x91R`\0\x90a\x12\0\x90``\x01a\x11\x8DV[\x90Ps\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x15a\x12\x94W\x80s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\x8D\xA5\xCB[`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x12iW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x12\x8D\x91\x90a/\tV[\x92PPP\x90V[`@Q\x7F3!D\xDB\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\x01`@Q\x80\x91\x03\x90\xFD[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\0Ta\x01\0\x90\x04`\xFF\x16\x15\x80\x15a\x13\x06WP`\0T`\xFF\x80\x83\x16\x91\x16\x10[a\x13\x92W`@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\x82\x01R`.`$\x82\x01R\x7FInitializable: contract is alrea`D\x82\x01R\x7Fdy initialized\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x02:V[`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\x16`\xFF\x83\x16\x17a\x01\0\x17\x90Ua\x13\xCBa\x1ESV[`4\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x16\x17\x90Ua\x14)\x83sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x10a\x1E\xD6V[`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\x16\x90U`@Q`\xFF\x82\x16\x81R\x7F\x7F&\xB8?\xF9n\x1F+jh/\x138R\xF6y\x8A\t\xC4e\xDA\x95\x92\x14`\xCE\xFB8G@$\x98\x90` \x01`@Q\x80\x91\x03\x90\xA1PPPV[a\n`\x87\x873\x88\x88\x88\x88\x88\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RPa\x1F\xC0\x92PPPV[a\x14\xD9a\x05\xFFV[a\x15eW`@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\x82\x01R`7`$\x82\x01R\x7FStandardBridge: function can onl`D\x82\x01R\x7Fy be called from an EOA\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x02:V[a\x10\x1A\x86\x8633\x88\x88\x88\x88\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RPa#y\x92PPPV[`4T`@\x80Q\x7F\\\x97Z\xBB\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\x90Q`\0\x92s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x91c\\\x97Z\xBB\x91`\x04\x80\x83\x01\x92` \x92\x91\x90\x82\x90\x03\x01\x81\x86Z\xFA\x15\x80\x15a\x16\x1AW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x10\xB6\x91\x90a/\xA9V[a\n`\x87\x873\x88\x88\x88\x88\x88\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RPa#y\x92PPPV[a\x16\x8Ba\x05\xFFV[a\x17\x17W`@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\x82\x01R`7`$\x82\x01R\x7FStandardBridge: function can onl`D\x82\x01R\x7Fy be called from an EOA\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x02:V[a\x10\x1A\x86\x8633\x88\x88\x88\x88\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RPa\x1F\xC0\x92PPPV[a\x06I3\x85\x85\x85\x85\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RPa\x06<\x92PPPV[a\n`\x87\x87\x87\x87\x87\x87\x87a\x06OV[a\x17\xB5a\x05\xFFV[a\x18AW`@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\x82\x01R`7`$\x82\x01R\x7FStandardBridge: function can onl`D\x82\x01R\x7Fy be called from an EOA\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x02:V[a\x0B@33\x85\x85\x85\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RPa\x06<\x92PPPV[`\0a\x18\x8Da\x10\xBBV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\x8D\xA5\xCB[`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x10\x92W=`\0\x80>=`\0\xFD[a\x06I3\x854\x86\x86\x86\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RPa\x19\x1A\x92PPPV[\x824\x14a\x19\xA9W`@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\x82\x01R`>`$\x82\x01R\x7FStandardBridge: bridging ETH mus`D\x82\x01R\x7Ft include sufficient ETH value\0\0`d\x82\x01R`\x84\x01a\x02:V[a\x19\xB5\x85\x85\x85\x84a#\x88V[`\x03T`\x04T`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x92\x83\x16\x92c=\xBB +\x92\x87\x92\x91\x16\x90\x7F\x165\xF5\xFD\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\x90a\x1A\x18\x90\x8B\x90\x8B\x90\x86\x90\x8A\x90`$\x01a/\xCBV[`@\x80Q\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x81\x84\x03\x01\x81R\x91\x81R` \x82\x01\x80Q{\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xFF\xFF\xFF\xFF\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\x94\x85\x16\x17\x90RQ`\xE0\x86\x90\x1B\x90\x92\x16\x82Ra\x1A\xAB\x92\x91\x88\x90`\x04\x01a0\x14V[`\0`@Q\x80\x83\x03\x81\x85\x88\x80;\x15\x80\x15a\x1A\xC4W`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x1A\xD8W=`\0\x80>=`\0\xFD[PPPPPPPPPPV[`\0a\x1B\x10\x82\x7F\x1D\x1D\x8Bc\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\0a#\xFBV[\x80a\x1B@WPa\x1B@\x82\x7F\xECO\xC8\xE3\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\0a#\xFBV[\x92\x91PPV[`\0a\x1Br\x83\x7F\x1D\x1D\x8Bc\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\0a#\xFBV[\x15a\x1C\x1BW\x82s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xC0\x1E\x1B\xD6`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x1B\xC2W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x1B\xE6\x91\x90a/\tV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x82s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14\x90Pa\x1B@V[\x82s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xD6\xC0\xB2\xC4`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x1B\xC2W=`\0\x80>=`\0\xFD[`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x16`$\x82\x01R`D\x81\x01\x82\x90Ra\x0B@\x90\x84\x90\x7F\xA9\x05\x9C\xBB\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\x90`d\x01[`@\x80Q\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x81\x84\x03\x01\x81R\x91\x90R` \x81\x01\x80Q{\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xFF\xFF\xFF\xFF\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\x90\x93\x16\x92\x90\x92\x17\x90\x91Ra$\x1EV[\x83s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x85s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x87s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F<\xEE\xE0l\x1E7d\x8F\xCB\xB6\xEDR\xE1{>\x1F'Z\x1F\x8C{\"\xA8K+\x84s$1\xE0F\xB3\x86\x86\x86`@Qa\x1D\xB2\x93\x92\x91\x90a0YV[`@Q\x80\x91\x03\x90\xA4a\x10\x1A\x86\x86\x86\x86\x86\x86a%*V[\x82s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x84s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F*\xC6\x9E\xE8\x04\xD9\xA7\xA0\x98BI\xF5\x08\xDF\xAB|\xB2SKF[l\xE1X\x0F\x99\xA3\x8B\xA9\xC5\xE61\x84\x84`@Qa\x1E'\x92\x91\x90a0\x97V[`@Q\x80\x91\x03\x90\xA3a\x06I\x84\x84\x84\x84a%\xB2V[`\0\x80`\0\x83Q` \x85\x01\x86\x89\x89\xF1\x95\x94PPPPPV[3a\x1E\\a\x10\xBBV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14\x15\x80\x15a\x1E\x9DWP3a\x1E\x84a\x18\x83V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14\x15[\x15a\x1E\xD4W`@Q\x7F\xC4\x05\n&\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\x01`@Q\x80\x91\x03\x90\xFD[V[`\0Ta\x01\0\x90\x04`\xFF\x16a\x1FmW`@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\x82\x01R`+`$\x82\x01R\x7FInitializable: contract is not i`D\x82\x01R\x7Fnitializing\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x02:V[`\x03\x80Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x93\x84\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x91\x82\x16\x17\x90\x91U`\x04\x80T\x92\x90\x93\x16\x91\x16\x17\x90UV[4\x15a NW`@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\x82\x01R`!`$\x82\x01R\x7FStandardBridge: cannot send valu`D\x82\x01R\x7Fe\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x02:V[a W\x87a\x1A\xE4V[\x15a!\xA5Wa f\x87\x87a\x1BFV[a!\x18W`@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\x82\x01R`J`$\x82\x01R\x7FStandardBridge: wrong remote tok`D\x82\x01R\x7Fen for Optimism Mintable ERC20 l`d\x82\x01R\x7Focal token\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x84\x82\x01R`\xA4\x01a\x02:V[`@Q\x7F\x9D\xC2\x9F\xAC\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\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x86\x81\x16`\x04\x83\x01R`$\x82\x01\x85\x90R\x88\x16\x90c\x9D\xC2\x9F\xAC\x90`D\x01`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a!\x88W`\0\x80\xFD[PZ\xF1\x15\x80\x15a!\x9CW=`\0\x80>=`\0\xFD[PPPPa\"9V[a!\xC7s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x88\x16\x860\x86a&\x1FV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x88\x16`\0\x90\x81R`\x02` \x90\x81R`@\x80\x83 \x93\x8A\x16\x83R\x92\x90R Ta\"\x05\x90\x84\x90a0\xB0V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x89\x16`\0\x90\x81R`\x02` \x90\x81R`@\x80\x83 \x93\x8B\x16\x83R\x92\x90R U[a\"G\x87\x87\x87\x87\x87\x86a&}V[`\x03T`\x04T`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x92\x83\x16\x92c=\xBB +\x92\x16\x90\x7F\x01f\xA0z\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\x90a\"\xAB\x90\x8B\x90\x8D\x90\x8C\x90\x8C\x90\x8C\x90\x8B\x90`$\x01a0\xC8V[`@\x80Q\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x81\x84\x03\x01\x81R\x91\x81R` \x82\x01\x80Q{\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xFF\xFF\xFF\xFF\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\x94\x85\x16\x17\x90RQ`\xE0\x85\x90\x1B\x90\x92\x16\x82Ra#>\x92\x91\x87\x90`\x04\x01a0\x14V[`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a#XW`\0\x80\xFD[PZ\xF1\x15\x80\x15a#lW=`\0\x80>=`\0\xFD[PPPPPPPPPPPV[a\n`\x87\x87\x87\x87\x87\x87\x87a\x1F\xC0V[\x82s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x84s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F5\xD7\x9A\xB8\x1F+ \x17\xE1\x9A\xFB\\Uqw\x88wx-z\x87\x86\xF5\x90\x7F\x93\xB0\xF4p/O#\x84\x84`@Qa#\xE7\x92\x91\x90a0\x97V[`@Q\x80\x91\x03\x90\xA3a\x06I\x84\x84\x84\x84a'\x0BV[`\0a$\x06\x83a'jV[\x80\x15a$\x17WPa$\x17\x83\x83a'\xCEV[\x93\x92PPPV[`\0a$\x80\x82`@Q\x80`@\x01`@R\x80` \x81R` \x01\x7FSafeERC20: low-level call failed\x81RP\x85s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a(\x9D\x90\x92\x91\x90c\xFF\xFF\xFF\xFF\x16V[\x80Q\x90\x91P\x15a\x0B@W\x80\x80` \x01\x90Q\x81\x01\x90a$\x9E\x91\x90a/\xA9V[a\x0B@W`@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\x82\x01R`*`$\x82\x01R\x7FSafeERC20: ERC20 operation did n`D\x82\x01R\x7Fot succeed\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x02:V[\x83s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x85s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x87s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xD5\x9Ce\xB3TE\"X5\xC8?P\xB6\xED\xE0j{\xE0G\xD2.5ps\xE2P\xD9\xAFSu\x18\xCD\x86\x86\x86`@Qa%\xA2\x93\x92\x91\x90a0YV[`@Q\x80\x91\x03\x90\xA4PPPPPPV[\x82s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x84s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F1\xB2\x16o\xF6\x04\xFCVr\xEA]\xF0\x8Ax\x08\x1D+\xC6\xD7F\xCA\xDC\xE8\x80t\x7F6C\xD8\x19\xE8=\x84\x84`@Qa&\x11\x92\x91\x90a0\x97V[`@Q\x80\x91\x03\x90\xA3PPPPV[`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x85\x16`$\x83\x01R\x83\x16`D\x82\x01R`d\x81\x01\x82\x90Ra\x06I\x90\x85\x90\x7F#\xB8r\xDD\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\x90`\x84\x01a\x1C\xB8V[\x83s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x85s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x87s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7Fq\x85\x94\x02z\xBDN\xAE\xD5\x9F\x95\x16%c\xE0\xCCm\x0E\x8D[\x86\xB1\xC7\xBE\x8B\x1B\n\xC34=\x03\x96\x86\x86\x86`@Qa&\xF5\x93\x92\x91\x90a0YV[`@Q\x80\x91\x03\x90\xA4a\x10\x1A\x86\x86\x86\x86\x86\x86a(\xB4V[\x82s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x84s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F(I\xB40t\t:\x059ko*\x93}\xEE\x85e\xB1ZH\xA7\xB3\xD4\xBF\xFBs*P\x178\n\xF5\x84\x84`@Qa&\x11\x92\x91\x90a0\x97V[`\0a'\x96\x82\x7F\x01\xFF\xC9\xA7\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\0a'\xCEV[\x80\x15a\x1B@WPa'\xC7\x82\x7F\xFF\xFF\xFF\xFF\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\0a'\xCEV[\x15\x92\x91PPV[`@\x80Q\x7F\xFF\xFF\xFF\xFF\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\x83\x16`$\x80\x83\x01\x91\x90\x91R\x82Q\x80\x83\x03\x90\x91\x01\x81R`D\x90\x91\x01\x90\x91R` \x80\x82\x01\x80Q{\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\x01\xFF\xC9\xA7\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\x17\x81R\x82Q`\0\x93\x92\x84\x92\x83\x92\x83\x92\x91\x83\x91\x90\x8Aau0\xFA\x92P=\x91P`\0Q\x90P\x82\x80\x15a(\x86WP` \x82\x10\x15[\x80\x15a(\x92WP`\0\x81\x11[\x97\x96PPPPPPPV[``a(\xAC\x84\x84`\0\x85a),V[\x94\x93PPPPV[\x83s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x85s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x87s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\x7F\xF1&\xDB\x80$BK\xBF\xD9\x82n\x8A\xB8/\xF5\x916(\x9E\xA4@\xB0K9\xA0\xDF\x1B\x03\xB9\xCA\xBF\x86\x86\x86`@Qa%\xA2\x93\x92\x91\x90a0YV[``\x82G\x10\x15a)\xBEW`@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\x82\x01R`&`$\x82\x01R\x7FAddress: insufficient balance fo`D\x82\x01R\x7Fr call\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`d\x82\x01R`\x84\x01a\x02:V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x85\x16;a*a*\xA7V[``\x91P[P\x91P\x91Pa(\x92\x82\x82\x86``\x83\x15a*\xC1WP\x81a$\x17V[\x82Q\x15a*\xD1W\x82Q\x80\x84` \x01\xFD[\x81`@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:\x91\x90a.\x10V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a+'W`\0\x80\xFD[PV[`\0\x80\x83`\x1F\x84\x01\x12a+W`\0\x80\xFD[\x875a-I\x81a+\x05V[\x96P` \x88\x015a-Y\x81a+\x05V[\x95P`@\x88\x015a-i\x81a+\x05V[\x94P``\x88\x015\x93Pa-~`\x80\x89\x01a,\x0BV[\x92P`\xA0\x88\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a+\xECW`\0\x80\xFD[`\0[\x83\x81\x10\x15a-\xB5W\x81\x81\x01Q\x83\x82\x01R` \x01a-\x9DV[\x83\x81\x11\x15a\x06IWPP`\0\x91\x01RV[`\0\x81Q\x80\x84Ra-\xDE\x81` \x86\x01` \x86\x01a-\x9AV[`\x1F\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x92\x90\x92\x01` \x01\x92\x91PPV[` \x81R`\0a$\x17` \x83\x01\x84a-\xC6V[`\0\x80`\0\x80`\0\x80`\xA0\x87\x89\x03\x12\x15a. = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: ProxyAdminOwnedBase_NotProxyAdmin) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for ProxyAdminOwnedBase_NotProxyAdmin { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ProxyAdminOwnedBase_NotProxyAdmin { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ProxyAdminOwnedBase_NotProxyAdmin()"; + const SELECTOR: [u8; 4] = [232u8, 24u8, 220u8, 195u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner()` and selector `0xc4050a26`. +```solidity +error ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError + for ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner()"; + const SELECTOR: [u8; 4] = [196u8, 5u8, 10u8, 38u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ProxyAdminOwnedBase_NotProxyAdminOwner()` and selector `0x7f12c64b`. +```solidity +error ProxyAdminOwnedBase_NotProxyAdminOwner(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ProxyAdminOwnedBase_NotProxyAdminOwner; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: ProxyAdminOwnedBase_NotProxyAdminOwner) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for ProxyAdminOwnedBase_NotProxyAdminOwner { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ProxyAdminOwnedBase_NotProxyAdminOwner { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ProxyAdminOwnedBase_NotProxyAdminOwner()"; + const SELECTOR: [u8; 4] = [127u8, 18u8, 198u8, 75u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ProxyAdminOwnedBase_NotResolvedDelegateProxy()` and selector `0x54e433cd`. +```solidity +error ProxyAdminOwnedBase_NotResolvedDelegateProxy(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ProxyAdminOwnedBase_NotResolvedDelegateProxy; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: ProxyAdminOwnedBase_NotResolvedDelegateProxy) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for ProxyAdminOwnedBase_NotResolvedDelegateProxy { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ProxyAdminOwnedBase_NotResolvedDelegateProxy { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ProxyAdminOwnedBase_NotResolvedDelegateProxy()"; + const SELECTOR: [u8; 4] = [84u8, 228u8, 51u8, 205u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ProxyAdminOwnedBase_NotSharedProxyAdminOwner()` and selector `0x075c4314`. +```solidity +error ProxyAdminOwnedBase_NotSharedProxyAdminOwner(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ProxyAdminOwnedBase_NotSharedProxyAdminOwner; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: ProxyAdminOwnedBase_NotSharedProxyAdminOwner) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for ProxyAdminOwnedBase_NotSharedProxyAdminOwner { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ProxyAdminOwnedBase_NotSharedProxyAdminOwner { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ProxyAdminOwnedBase_NotSharedProxyAdminOwner()"; + const SELECTOR: [u8; 4] = [7u8, 92u8, 67u8, 20u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ProxyAdminOwnedBase_ProxyAdminNotFound()` and selector `0x332144db`. +```solidity +error ProxyAdminOwnedBase_ProxyAdminNotFound(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ProxyAdminOwnedBase_ProxyAdminNotFound; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: ProxyAdminOwnedBase_ProxyAdminNotFound) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for ProxyAdminOwnedBase_ProxyAdminNotFound { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ProxyAdminOwnedBase_ProxyAdminNotFound { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ProxyAdminOwnedBase_ProxyAdminNotFound()"; + const SELECTOR: [u8; 4] = [51u8, 33u8, 68u8, 219u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ReinitializableBase_ZeroInitVersion()` and selector `0x9b01afed`. +```solidity +error ReinitializableBase_ZeroInitVersion(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ReinitializableBase_ZeroInitVersion; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: ReinitializableBase_ZeroInitVersion) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for ReinitializableBase_ZeroInitVersion { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ReinitializableBase_ZeroInitVersion { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ReinitializableBase_ZeroInitVersion()"; + const SELECTOR: [u8; 4] = [155u8, 1u8, 175u8, 237u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `ERC20BridgeFinalized(address,address,address,address,uint256,bytes)` and selector `0xd59c65b35445225835c83f50b6ede06a7be047d22e357073e250d9af537518cd`. +```solidity +event ERC20BridgeFinalized(address indexed localToken, address indexed remoteToken, address indexed from, address to, uint256 amount, bytes extraData); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct ERC20BridgeFinalized { + #[allow(missing_docs)] + pub localToken: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub remoteToken: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub from: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub amount: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub extraData: alloy::sol_types::private::Bytes, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for ERC20BridgeFinalized { + type DataTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Bytes, + ); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "ERC20BridgeFinalized(address,address,address,address,uint256,bytes)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 213u8, 156u8, 101u8, 179u8, 84u8, 69u8, 34u8, 88u8, 53u8, 200u8, 63u8, + 80u8, 182u8, 237u8, 224u8, 106u8, 123u8, 224u8, 71u8, 210u8, 46u8, 53u8, + 112u8, 115u8, 226u8, 80u8, 217u8, 175u8, 83u8, 117u8, 24u8, 205u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + localToken: topics.1, + remoteToken: topics.2, + from: topics.3, + to: data.0, + amount: data.1, + extraData: data.2, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + ::tokenize( + &self.to, + ), + as alloy_sol_types::SolType>::tokenize(&self.amount), + ::tokenize( + &self.extraData, + ), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + ( + Self::SIGNATURE_HASH.into(), + self.localToken.clone(), + self.remoteToken.clone(), + self.from.clone(), + ) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.localToken, + ); + out[2usize] = ::encode_topic( + &self.remoteToken, + ); + out[3usize] = ::encode_topic( + &self.from, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for ERC20BridgeFinalized { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&ERC20BridgeFinalized> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &ERC20BridgeFinalized) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `ERC20BridgeInitiated(address,address,address,address,uint256,bytes)` and selector `0x7ff126db8024424bbfd9826e8ab82ff59136289ea440b04b39a0df1b03b9cabf`. +```solidity +event ERC20BridgeInitiated(address indexed localToken, address indexed remoteToken, address indexed from, address to, uint256 amount, bytes extraData); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct ERC20BridgeInitiated { + #[allow(missing_docs)] + pub localToken: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub remoteToken: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub from: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub amount: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub extraData: alloy::sol_types::private::Bytes, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for ERC20BridgeInitiated { + type DataTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Bytes, + ); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "ERC20BridgeInitiated(address,address,address,address,uint256,bytes)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 127u8, 241u8, 38u8, 219u8, 128u8, 36u8, 66u8, 75u8, 191u8, 217u8, 130u8, + 110u8, 138u8, 184u8, 47u8, 245u8, 145u8, 54u8, 40u8, 158u8, 164u8, 64u8, + 176u8, 75u8, 57u8, 160u8, 223u8, 27u8, 3u8, 185u8, 202u8, 191u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + localToken: topics.1, + remoteToken: topics.2, + from: topics.3, + to: data.0, + amount: data.1, + extraData: data.2, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + ::tokenize( + &self.to, + ), + as alloy_sol_types::SolType>::tokenize(&self.amount), + ::tokenize( + &self.extraData, + ), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + ( + Self::SIGNATURE_HASH.into(), + self.localToken.clone(), + self.remoteToken.clone(), + self.from.clone(), + ) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.localToken, + ); + out[2usize] = ::encode_topic( + &self.remoteToken, + ); + out[3usize] = ::encode_topic( + &self.from, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for ERC20BridgeInitiated { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&ERC20BridgeInitiated> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &ERC20BridgeInitiated) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `ERC20DepositInitiated(address,address,address,address,uint256,bytes)` and selector `0x718594027abd4eaed59f95162563e0cc6d0e8d5b86b1c7be8b1b0ac3343d0396`. +```solidity +event ERC20DepositInitiated(address indexed l1Token, address indexed l2Token, address indexed from, address to, uint256 amount, bytes extraData); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct ERC20DepositInitiated { + #[allow(missing_docs)] + pub l1Token: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub l2Token: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub from: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub amount: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub extraData: alloy::sol_types::private::Bytes, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for ERC20DepositInitiated { + type DataTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Bytes, + ); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "ERC20DepositInitiated(address,address,address,address,uint256,bytes)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 113u8, 133u8, 148u8, 2u8, 122u8, 189u8, 78u8, 174u8, 213u8, 159u8, 149u8, + 22u8, 37u8, 99u8, 224u8, 204u8, 109u8, 14u8, 141u8, 91u8, 134u8, 177u8, + 199u8, 190u8, 139u8, 27u8, 10u8, 195u8, 52u8, 61u8, 3u8, 150u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + l1Token: topics.1, + l2Token: topics.2, + from: topics.3, + to: data.0, + amount: data.1, + extraData: data.2, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + ::tokenize( + &self.to, + ), + as alloy_sol_types::SolType>::tokenize(&self.amount), + ::tokenize( + &self.extraData, + ), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + ( + Self::SIGNATURE_HASH.into(), + self.l1Token.clone(), + self.l2Token.clone(), + self.from.clone(), + ) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.l1Token, + ); + out[2usize] = ::encode_topic( + &self.l2Token, + ); + out[3usize] = ::encode_topic( + &self.from, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for ERC20DepositInitiated { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&ERC20DepositInitiated> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &ERC20DepositInitiated) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `ERC20WithdrawalFinalized(address,address,address,address,uint256,bytes)` and selector `0x3ceee06c1e37648fcbb6ed52e17b3e1f275a1f8c7b22a84b2b84732431e046b3`. +```solidity +event ERC20WithdrawalFinalized(address indexed l1Token, address indexed l2Token, address indexed from, address to, uint256 amount, bytes extraData); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct ERC20WithdrawalFinalized { + #[allow(missing_docs)] + pub l1Token: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub l2Token: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub from: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub amount: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub extraData: alloy::sol_types::private::Bytes, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for ERC20WithdrawalFinalized { + type DataTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Bytes, + ); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "ERC20WithdrawalFinalized(address,address,address,address,uint256,bytes)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 60u8, 238u8, 224u8, 108u8, 30u8, 55u8, 100u8, 143u8, 203u8, 182u8, 237u8, + 82u8, 225u8, 123u8, 62u8, 31u8, 39u8, 90u8, 31u8, 140u8, 123u8, 34u8, + 168u8, 75u8, 43u8, 132u8, 115u8, 36u8, 49u8, 224u8, 70u8, 179u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + l1Token: topics.1, + l2Token: topics.2, + from: topics.3, + to: data.0, + amount: data.1, + extraData: data.2, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + ::tokenize( + &self.to, + ), + as alloy_sol_types::SolType>::tokenize(&self.amount), + ::tokenize( + &self.extraData, + ), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + ( + Self::SIGNATURE_HASH.into(), + self.l1Token.clone(), + self.l2Token.clone(), + self.from.clone(), + ) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.l1Token, + ); + out[2usize] = ::encode_topic( + &self.l2Token, + ); + out[3usize] = ::encode_topic( + &self.from, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for ERC20WithdrawalFinalized { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&ERC20WithdrawalFinalized> for alloy_sol_types::private::LogData { + #[inline] + fn from( + this: &ERC20WithdrawalFinalized, + ) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `ETHBridgeFinalized(address,address,uint256,bytes)` and selector `0x31b2166ff604fc5672ea5df08a78081d2bc6d746cadce880747f3643d819e83d`. +```solidity +event ETHBridgeFinalized(address indexed from, address indexed to, uint256 amount, bytes extraData); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct ETHBridgeFinalized { + #[allow(missing_docs)] + pub from: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub amount: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub extraData: alloy::sol_types::private::Bytes, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for ETHBridgeFinalized { + type DataTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Bytes, + ); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "ETHBridgeFinalized(address,address,uint256,bytes)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 49u8, 178u8, 22u8, 111u8, 246u8, 4u8, 252u8, 86u8, 114u8, 234u8, 93u8, + 240u8, 138u8, 120u8, 8u8, 29u8, 43u8, 198u8, 215u8, 70u8, 202u8, 220u8, + 232u8, 128u8, 116u8, 127u8, 54u8, 67u8, 216u8, 25u8, 232u8, 61u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + from: topics.1, + to: topics.2, + amount: data.0, + extraData: data.1, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.amount), + ::tokenize( + &self.extraData, + ), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.from.clone(), self.to.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.from, + ); + out[2usize] = ::encode_topic( + &self.to, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for ETHBridgeFinalized { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<ÐBridgeFinalized> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: ÐBridgeFinalized) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `ETHBridgeInitiated(address,address,uint256,bytes)` and selector `0x2849b43074093a05396b6f2a937dee8565b15a48a7b3d4bffb732a5017380af5`. +```solidity +event ETHBridgeInitiated(address indexed from, address indexed to, uint256 amount, bytes extraData); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct ETHBridgeInitiated { + #[allow(missing_docs)] + pub from: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub amount: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub extraData: alloy::sol_types::private::Bytes, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for ETHBridgeInitiated { + type DataTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Bytes, + ); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "ETHBridgeInitiated(address,address,uint256,bytes)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 40u8, 73u8, 180u8, 48u8, 116u8, 9u8, 58u8, 5u8, 57u8, 107u8, 111u8, 42u8, + 147u8, 125u8, 238u8, 133u8, 101u8, 177u8, 90u8, 72u8, 167u8, 179u8, + 212u8, 191u8, 251u8, 115u8, 42u8, 80u8, 23u8, 56u8, 10u8, 245u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + from: topics.1, + to: topics.2, + amount: data.0, + extraData: data.1, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.amount), + ::tokenize( + &self.extraData, + ), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.from.clone(), self.to.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.from, + ); + out[2usize] = ::encode_topic( + &self.to, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for ETHBridgeInitiated { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<ÐBridgeInitiated> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: ÐBridgeInitiated) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `ETHDepositInitiated(address,address,uint256,bytes)` and selector `0x35d79ab81f2b2017e19afb5c5571778877782d7a8786f5907f93b0f4702f4f23`. +```solidity +event ETHDepositInitiated(address indexed from, address indexed to, uint256 amount, bytes extraData); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct ETHDepositInitiated { + #[allow(missing_docs)] + pub from: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub amount: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub extraData: alloy::sol_types::private::Bytes, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for ETHDepositInitiated { + type DataTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Bytes, + ); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "ETHDepositInitiated(address,address,uint256,bytes)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 53u8, 215u8, 154u8, 184u8, 31u8, 43u8, 32u8, 23u8, 225u8, 154u8, 251u8, + 92u8, 85u8, 113u8, 119u8, 136u8, 119u8, 120u8, 45u8, 122u8, 135u8, 134u8, + 245u8, 144u8, 127u8, 147u8, 176u8, 244u8, 112u8, 47u8, 79u8, 35u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + from: topics.1, + to: topics.2, + amount: data.0, + extraData: data.1, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.amount), + ::tokenize( + &self.extraData, + ), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.from.clone(), self.to.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.from, + ); + out[2usize] = ::encode_topic( + &self.to, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for ETHDepositInitiated { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<ÐDepositInitiated> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: ÐDepositInitiated) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `ETHWithdrawalFinalized(address,address,uint256,bytes)` and selector `0x2ac69ee804d9a7a0984249f508dfab7cb2534b465b6ce1580f99a38ba9c5e631`. +```solidity +event ETHWithdrawalFinalized(address indexed from, address indexed to, uint256 amount, bytes extraData); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct ETHWithdrawalFinalized { + #[allow(missing_docs)] + pub from: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub amount: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub extraData: alloy::sol_types::private::Bytes, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for ETHWithdrawalFinalized { + type DataTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Bytes, + ); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "ETHWithdrawalFinalized(address,address,uint256,bytes)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 42u8, 198u8, 158u8, 232u8, 4u8, 217u8, 167u8, 160u8, 152u8, 66u8, 73u8, + 245u8, 8u8, 223u8, 171u8, 124u8, 178u8, 83u8, 75u8, 70u8, 91u8, 108u8, + 225u8, 88u8, 15u8, 153u8, 163u8, 139u8, 169u8, 197u8, 230u8, 49u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + from: topics.1, + to: topics.2, + amount: data.0, + extraData: data.1, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.amount), + ::tokenize( + &self.extraData, + ), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.from.clone(), self.to.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.from, + ); + out[2usize] = ::encode_topic( + &self.to, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for ETHWithdrawalFinalized { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<ÐWithdrawalFinalized> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: ÐWithdrawalFinalized) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `Initialized(uint8)` and selector `0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498`. +```solidity +event Initialized(uint8 version); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct Initialized { + #[allow(missing_docs)] + pub version: u8, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for Initialized { + type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<8>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,); + const SIGNATURE: &'static str = "Initialized(uint8)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 127u8, 38u8, 184u8, 63u8, 249u8, 110u8, 31u8, 43u8, 106u8, 104u8, 47u8, + 19u8, 56u8, 82u8, 246u8, 121u8, 138u8, 9u8, 196u8, 101u8, 218u8, 149u8, + 146u8, 20u8, 96u8, 206u8, 251u8, 56u8, 71u8, 64u8, 36u8, 152u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { version: data.0 } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.version), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(),) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for Initialized { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&Initialized> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &Initialized) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + /**Constructor`. +```solidity +constructor(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct constructorCall {} + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: constructorCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for constructorCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolConstructor for constructorCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `MESSENGER()` and selector `0x927ede2d`. +```solidity +function MESSENGER() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct MESSENGERCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`MESSENGER()`](MESSENGERCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct MESSENGERReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: MESSENGERCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for MESSENGERCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: MESSENGERReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for MESSENGERReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for MESSENGERCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "MESSENGER()"; + const SELECTOR: [u8; 4] = [146u8, 126u8, 222u8, 45u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: MESSENGERReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: MESSENGERReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `OTHER_BRIDGE()` and selector `0x7f46ddb2`. +```solidity +function OTHER_BRIDGE() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct OTHER_BRIDGECall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`OTHER_BRIDGE()`](OTHER_BRIDGECall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct OTHER_BRIDGEReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: OTHER_BRIDGECall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for OTHER_BRIDGECall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: OTHER_BRIDGEReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for OTHER_BRIDGEReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for OTHER_BRIDGECall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "OTHER_BRIDGE()"; + const SELECTOR: [u8; 4] = [127u8, 70u8, 221u8, 178u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: OTHER_BRIDGEReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: OTHER_BRIDGEReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `bridgeERC20(address,address,uint256,uint32,bytes)` and selector `0x87087623`. +```solidity +function bridgeERC20(address _localToken, address _remoteToken, uint256 _amount, uint32 _minGasLimit, bytes memory _extraData) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct bridgeERC20Call { + #[allow(missing_docs)] + pub _localToken: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _remoteToken: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _amount: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _minGasLimit: u32, + #[allow(missing_docs)] + pub _extraData: alloy::sol_types::private::Bytes, + } + ///Container type for the return parameters of the [`bridgeERC20(address,address,uint256,uint32,bytes)`](bridgeERC20Call) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct bridgeERC20Return {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<32>, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + u32, + alloy::sol_types::private::Bytes, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: bridgeERC20Call) -> Self { + ( + value._localToken, + value._remoteToken, + value._amount, + value._minGasLimit, + value._extraData, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for bridgeERC20Call { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _localToken: tuple.0, + _remoteToken: tuple.1, + _amount: tuple.2, + _minGasLimit: tuple.3, + _extraData: tuple.4, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: bridgeERC20Return) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for bridgeERC20Return { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl bridgeERC20Return { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for bridgeERC20Call { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<32>, + alloy::sol_types::sol_data::Bytes, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bridgeERC20Return; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "bridgeERC20(address,address,uint256,uint32,bytes)"; + const SELECTOR: [u8; 4] = [135u8, 8u8, 118u8, 35u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._localToken, + ), + ::tokenize( + &self._remoteToken, + ), + as alloy_sol_types::SolType>::tokenize(&self._amount), + as alloy_sol_types::SolType>::tokenize(&self._minGasLimit), + ::tokenize( + &self._extraData, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + bridgeERC20Return::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `bridgeERC20To(address,address,address,uint256,uint32,bytes)` and selector `0x540abf73`. +```solidity +function bridgeERC20To(address _localToken, address _remoteToken, address _to, uint256 _amount, uint32 _minGasLimit, bytes memory _extraData) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct bridgeERC20ToCall { + #[allow(missing_docs)] + pub _localToken: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _remoteToken: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _amount: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _minGasLimit: u32, + #[allow(missing_docs)] + pub _extraData: alloy::sol_types::private::Bytes, + } + ///Container type for the return parameters of the [`bridgeERC20To(address,address,address,uint256,uint32,bytes)`](bridgeERC20ToCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct bridgeERC20ToReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<32>, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + u32, + alloy::sol_types::private::Bytes, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: bridgeERC20ToCall) -> Self { + ( + value._localToken, + value._remoteToken, + value._to, + value._amount, + value._minGasLimit, + value._extraData, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for bridgeERC20ToCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _localToken: tuple.0, + _remoteToken: tuple.1, + _to: tuple.2, + _amount: tuple.3, + _minGasLimit: tuple.4, + _extraData: tuple.5, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: bridgeERC20ToReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for bridgeERC20ToReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl bridgeERC20ToReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for bridgeERC20ToCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<32>, + alloy::sol_types::sol_data::Bytes, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bridgeERC20ToReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "bridgeERC20To(address,address,address,uint256,uint32,bytes)"; + const SELECTOR: [u8; 4] = [84u8, 10u8, 191u8, 115u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._localToken, + ), + ::tokenize( + &self._remoteToken, + ), + ::tokenize( + &self._to, + ), + as alloy_sol_types::SolType>::tokenize(&self._amount), + as alloy_sol_types::SolType>::tokenize(&self._minGasLimit), + ::tokenize( + &self._extraData, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + bridgeERC20ToReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `bridgeETH(uint32,bytes)` and selector `0x09fc8843`. +```solidity +function bridgeETH(uint32 _minGasLimit, bytes memory _extraData) external payable; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct bridgeETHCall { + #[allow(missing_docs)] + pub _minGasLimit: u32, + #[allow(missing_docs)] + pub _extraData: alloy::sol_types::private::Bytes, + } + ///Container type for the return parameters of the [`bridgeETH(uint32,bytes)`](bridgeETHCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct bridgeETHReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Uint<32>, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u32, alloy::sol_types::private::Bytes); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: bridgeETHCall) -> Self { + (value._minGasLimit, value._extraData) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for bridgeETHCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _minGasLimit: tuple.0, + _extraData: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: bridgeETHReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for bridgeETHReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl bridgeETHReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for bridgeETHCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Uint<32>, + alloy::sol_types::sol_data::Bytes, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bridgeETHReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "bridgeETH(uint32,bytes)"; + const SELECTOR: [u8; 4] = [9u8, 252u8, 136u8, 67u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._minGasLimit), + ::tokenize( + &self._extraData, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + bridgeETHReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `bridgeETHTo(address,uint32,bytes)` and selector `0xe11013dd`. +```solidity +function bridgeETHTo(address _to, uint32 _minGasLimit, bytes memory _extraData) external payable; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct bridgeETHToCall { + #[allow(missing_docs)] + pub _to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _minGasLimit: u32, + #[allow(missing_docs)] + pub _extraData: alloy::sol_types::private::Bytes, + } + ///Container type for the return parameters of the [`bridgeETHTo(address,uint32,bytes)`](bridgeETHToCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct bridgeETHToReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<32>, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + u32, + alloy::sol_types::private::Bytes, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: bridgeETHToCall) -> Self { + (value._to, value._minGasLimit, value._extraData) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for bridgeETHToCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _to: tuple.0, + _minGasLimit: tuple.1, + _extraData: tuple.2, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: bridgeETHToReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for bridgeETHToReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl bridgeETHToReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for bridgeETHToCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<32>, + alloy::sol_types::sol_data::Bytes, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bridgeETHToReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "bridgeETHTo(address,uint32,bytes)"; + const SELECTOR: [u8; 4] = [225u8, 16u8, 19u8, 221u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._to, + ), + as alloy_sol_types::SolType>::tokenize(&self._minGasLimit), + ::tokenize( + &self._extraData, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + bridgeETHToReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `depositERC20(address,address,uint256,uint32,bytes)` and selector `0x58a997f6`. +```solidity +function depositERC20(address _l1Token, address _l2Token, uint256 _amount, uint32 _minGasLimit, bytes memory _extraData) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct depositERC20Call { + #[allow(missing_docs)] + pub _l1Token: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _l2Token: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _amount: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _minGasLimit: u32, + #[allow(missing_docs)] + pub _extraData: alloy::sol_types::private::Bytes, + } + ///Container type for the return parameters of the [`depositERC20(address,address,uint256,uint32,bytes)`](depositERC20Call) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct depositERC20Return {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<32>, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + u32, + alloy::sol_types::private::Bytes, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: depositERC20Call) -> Self { + ( + value._l1Token, + value._l2Token, + value._amount, + value._minGasLimit, + value._extraData, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for depositERC20Call { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _l1Token: tuple.0, + _l2Token: tuple.1, + _amount: tuple.2, + _minGasLimit: tuple.3, + _extraData: tuple.4, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: depositERC20Return) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for depositERC20Return { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl depositERC20Return { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for depositERC20Call { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<32>, + alloy::sol_types::sol_data::Bytes, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = depositERC20Return; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "depositERC20(address,address,uint256,uint32,bytes)"; + const SELECTOR: [u8; 4] = [88u8, 169u8, 151u8, 246u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._l1Token, + ), + ::tokenize( + &self._l2Token, + ), + as alloy_sol_types::SolType>::tokenize(&self._amount), + as alloy_sol_types::SolType>::tokenize(&self._minGasLimit), + ::tokenize( + &self._extraData, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + depositERC20Return::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `depositERC20To(address,address,address,uint256,uint32,bytes)` and selector `0x838b2520`. +```solidity +function depositERC20To(address _l1Token, address _l2Token, address _to, uint256 _amount, uint32 _minGasLimit, bytes memory _extraData) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct depositERC20ToCall { + #[allow(missing_docs)] + pub _l1Token: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _l2Token: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _amount: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _minGasLimit: u32, + #[allow(missing_docs)] + pub _extraData: alloy::sol_types::private::Bytes, + } + ///Container type for the return parameters of the [`depositERC20To(address,address,address,uint256,uint32,bytes)`](depositERC20ToCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct depositERC20ToReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<32>, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + u32, + alloy::sol_types::private::Bytes, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: depositERC20ToCall) -> Self { + ( + value._l1Token, + value._l2Token, + value._to, + value._amount, + value._minGasLimit, + value._extraData, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for depositERC20ToCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _l1Token: tuple.0, + _l2Token: tuple.1, + _to: tuple.2, + _amount: tuple.3, + _minGasLimit: tuple.4, + _extraData: tuple.5, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: depositERC20ToReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for depositERC20ToReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl depositERC20ToReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for depositERC20ToCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<32>, + alloy::sol_types::sol_data::Bytes, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = depositERC20ToReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "depositERC20To(address,address,address,uint256,uint32,bytes)"; + const SELECTOR: [u8; 4] = [131u8, 139u8, 37u8, 32u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._l1Token, + ), + ::tokenize( + &self._l2Token, + ), + ::tokenize( + &self._to, + ), + as alloy_sol_types::SolType>::tokenize(&self._amount), + as alloy_sol_types::SolType>::tokenize(&self._minGasLimit), + ::tokenize( + &self._extraData, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + depositERC20ToReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `depositETH(uint32,bytes)` and selector `0xb1a1a882`. +```solidity +function depositETH(uint32 _minGasLimit, bytes memory _extraData) external payable; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct depositETHCall { + #[allow(missing_docs)] + pub _minGasLimit: u32, + #[allow(missing_docs)] + pub _extraData: alloy::sol_types::private::Bytes, + } + ///Container type for the return parameters of the [`depositETH(uint32,bytes)`](depositETHCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct depositETHReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Uint<32>, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u32, alloy::sol_types::private::Bytes); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: depositETHCall) -> Self { + (value._minGasLimit, value._extraData) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for depositETHCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _minGasLimit: tuple.0, + _extraData: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: depositETHReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for depositETHReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl depositETHReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for depositETHCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Uint<32>, + alloy::sol_types::sol_data::Bytes, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = depositETHReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "depositETH(uint32,bytes)"; + const SELECTOR: [u8; 4] = [177u8, 161u8, 168u8, 130u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._minGasLimit), + ::tokenize( + &self._extraData, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + depositETHReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `depositETHTo(address,uint32,bytes)` and selector `0x9a2ac6d5`. +```solidity +function depositETHTo(address _to, uint32 _minGasLimit, bytes memory _extraData) external payable; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct depositETHToCall { + #[allow(missing_docs)] + pub _to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _minGasLimit: u32, + #[allow(missing_docs)] + pub _extraData: alloy::sol_types::private::Bytes, + } + ///Container type for the return parameters of the [`depositETHTo(address,uint32,bytes)`](depositETHToCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct depositETHToReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<32>, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + u32, + alloy::sol_types::private::Bytes, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: depositETHToCall) -> Self { + (value._to, value._minGasLimit, value._extraData) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for depositETHToCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _to: tuple.0, + _minGasLimit: tuple.1, + _extraData: tuple.2, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: depositETHToReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for depositETHToReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl depositETHToReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for depositETHToCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<32>, + alloy::sol_types::sol_data::Bytes, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = depositETHToReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "depositETHTo(address,uint32,bytes)"; + const SELECTOR: [u8; 4] = [154u8, 42u8, 198u8, 213u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._to, + ), + as alloy_sol_types::SolType>::tokenize(&self._minGasLimit), + ::tokenize( + &self._extraData, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + depositETHToReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `deposits(address,address)` and selector `0x8f601f66`. +```solidity +function deposits(address, address) external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct depositsCall { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _1: alloy::sol_types::private::Address, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`deposits(address,address)`](depositsCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct depositsReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: depositsCall) -> Self { + (value._0, value._1) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for depositsCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0, _1: tuple.1 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: depositsReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for depositsReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for depositsCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "deposits(address,address)"; + const SELECTOR: [u8; 4] = [143u8, 96u8, 31u8, 102u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._0, + ), + ::tokenize( + &self._1, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: depositsReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: depositsReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `finalizeBridgeERC20(address,address,address,address,uint256,bytes)` and selector `0x0166a07a`. +```solidity +function finalizeBridgeERC20(address _localToken, address _remoteToken, address _from, address _to, uint256 _amount, bytes memory _extraData) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct finalizeBridgeERC20Call { + #[allow(missing_docs)] + pub _localToken: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _remoteToken: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _from: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _amount: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _extraData: alloy::sol_types::private::Bytes, + } + ///Container type for the return parameters of the [`finalizeBridgeERC20(address,address,address,address,uint256,bytes)`](finalizeBridgeERC20Call) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct finalizeBridgeERC20Return {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::Bytes, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: finalizeBridgeERC20Call) -> Self { + ( + value._localToken, + value._remoteToken, + value._from, + value._to, + value._amount, + value._extraData, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for finalizeBridgeERC20Call { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _localToken: tuple.0, + _remoteToken: tuple.1, + _from: tuple.2, + _to: tuple.3, + _amount: tuple.4, + _extraData: tuple.5, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: finalizeBridgeERC20Return) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for finalizeBridgeERC20Return { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl finalizeBridgeERC20Return { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for finalizeBridgeERC20Call { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Bytes, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = finalizeBridgeERC20Return; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "finalizeBridgeERC20(address,address,address,address,uint256,bytes)"; + const SELECTOR: [u8; 4] = [1u8, 102u8, 160u8, 122u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._localToken, + ), + ::tokenize( + &self._remoteToken, + ), + ::tokenize( + &self._from, + ), + ::tokenize( + &self._to, + ), + as alloy_sol_types::SolType>::tokenize(&self._amount), + ::tokenize( + &self._extraData, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + finalizeBridgeERC20Return::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `finalizeBridgeETH(address,address,uint256,bytes)` and selector `0x1635f5fd`. +```solidity +function finalizeBridgeETH(address _from, address _to, uint256 _amount, bytes memory _extraData) external payable; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct finalizeBridgeETHCall { + #[allow(missing_docs)] + pub _from: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _amount: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _extraData: alloy::sol_types::private::Bytes, + } + ///Container type for the return parameters of the [`finalizeBridgeETH(address,address,uint256,bytes)`](finalizeBridgeETHCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct finalizeBridgeETHReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::Bytes, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: finalizeBridgeETHCall) -> Self { + (value._from, value._to, value._amount, value._extraData) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for finalizeBridgeETHCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _from: tuple.0, + _to: tuple.1, + _amount: tuple.2, + _extraData: tuple.3, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: finalizeBridgeETHReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for finalizeBridgeETHReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl finalizeBridgeETHReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for finalizeBridgeETHCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Bytes, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = finalizeBridgeETHReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "finalizeBridgeETH(address,address,uint256,bytes)"; + const SELECTOR: [u8; 4] = [22u8, 53u8, 245u8, 253u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._from, + ), + ::tokenize( + &self._to, + ), + as alloy_sol_types::SolType>::tokenize(&self._amount), + ::tokenize( + &self._extraData, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + finalizeBridgeETHReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `finalizeERC20Withdrawal(address,address,address,address,uint256,bytes)` and selector `0xa9f9e675`. +```solidity +function finalizeERC20Withdrawal(address _l1Token, address _l2Token, address _from, address _to, uint256 _amount, bytes memory _extraData) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct finalizeERC20WithdrawalCall { + #[allow(missing_docs)] + pub _l1Token: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _l2Token: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _from: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _amount: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _extraData: alloy::sol_types::private::Bytes, + } + ///Container type for the return parameters of the [`finalizeERC20Withdrawal(address,address,address,address,uint256,bytes)`](finalizeERC20WithdrawalCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct finalizeERC20WithdrawalReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::Bytes, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: finalizeERC20WithdrawalCall) -> Self { + ( + value._l1Token, + value._l2Token, + value._from, + value._to, + value._amount, + value._extraData, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for finalizeERC20WithdrawalCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _l1Token: tuple.0, + _l2Token: tuple.1, + _from: tuple.2, + _to: tuple.3, + _amount: tuple.4, + _extraData: tuple.5, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: finalizeERC20WithdrawalReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for finalizeERC20WithdrawalReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl finalizeERC20WithdrawalReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken< + '_, + > { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for finalizeERC20WithdrawalCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Bytes, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = finalizeERC20WithdrawalReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "finalizeERC20Withdrawal(address,address,address,address,uint256,bytes)"; + const SELECTOR: [u8; 4] = [169u8, 249u8, 230u8, 117u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._l1Token, + ), + ::tokenize( + &self._l2Token, + ), + ::tokenize( + &self._from, + ), + ::tokenize( + &self._to, + ), + as alloy_sol_types::SolType>::tokenize(&self._amount), + ::tokenize( + &self._extraData, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + finalizeERC20WithdrawalReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `finalizeETHWithdrawal(address,address,uint256,bytes)` and selector `0x1532ec34`. +```solidity +function finalizeETHWithdrawal(address _from, address _to, uint256 _amount, bytes memory _extraData) external payable; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct finalizeETHWithdrawalCall { + #[allow(missing_docs)] + pub _from: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _amount: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _extraData: alloy::sol_types::private::Bytes, + } + ///Container type for the return parameters of the [`finalizeETHWithdrawal(address,address,uint256,bytes)`](finalizeETHWithdrawalCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct finalizeETHWithdrawalReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::Bytes, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: finalizeETHWithdrawalCall) -> Self { + (value._from, value._to, value._amount, value._extraData) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for finalizeETHWithdrawalCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _from: tuple.0, + _to: tuple.1, + _amount: tuple.2, + _extraData: tuple.3, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: finalizeETHWithdrawalReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for finalizeETHWithdrawalReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl finalizeETHWithdrawalReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken< + '_, + > { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for finalizeETHWithdrawalCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Bytes, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = finalizeETHWithdrawalReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "finalizeETHWithdrawal(address,address,uint256,bytes)"; + const SELECTOR: [u8; 4] = [21u8, 50u8, 236u8, 52u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._from, + ), + ::tokenize( + &self._to, + ), + as alloy_sol_types::SolType>::tokenize(&self._amount), + ::tokenize( + &self._extraData, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + finalizeETHWithdrawalReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `initVersion()` and selector `0x38d38c97`. +```solidity +function initVersion() external view returns (uint8); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct initVersionCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`initVersion()`](initVersionCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct initVersionReturn { + #[allow(missing_docs)] + pub _0: u8, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: initVersionCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for initVersionCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<8>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u8,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: initVersionReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for initVersionReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for initVersionCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u8; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<8>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "initVersion()"; + const SELECTOR: [u8; 4] = [56u8, 211u8, 140u8, 151u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: initVersionReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: initVersionReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `initialize(address,address)` and selector `0x485cc955`. +```solidity +function initialize(address _messenger, address _systemConfig) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct initializeCall { + #[allow(missing_docs)] + pub _messenger: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _systemConfig: alloy::sol_types::private::Address, + } + ///Container type for the return parameters of the [`initialize(address,address)`](initializeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct initializeReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: initializeCall) -> Self { + (value._messenger, value._systemConfig) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for initializeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _messenger: tuple.0, + _systemConfig: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: initializeReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for initializeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl initializeReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for initializeCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = initializeReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "initialize(address,address)"; + const SELECTOR: [u8; 4] = [72u8, 92u8, 201u8, 85u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._messenger, + ), + ::tokenize( + &self._systemConfig, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + initializeReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `l2TokenBridge()` and selector `0x91c49bf8`. +```solidity +function l2TokenBridge() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct l2TokenBridgeCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`l2TokenBridge()`](l2TokenBridgeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct l2TokenBridgeReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: l2TokenBridgeCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for l2TokenBridgeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: l2TokenBridgeReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for l2TokenBridgeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for l2TokenBridgeCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "l2TokenBridge()"; + const SELECTOR: [u8; 4] = [145u8, 196u8, 155u8, 248u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: l2TokenBridgeReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: l2TokenBridgeReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `messenger()` and selector `0x3cb747bf`. +```solidity +function messenger() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct messengerCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`messenger()`](messengerCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct messengerReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: messengerCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for messengerCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: messengerReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for messengerReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for messengerCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "messenger()"; + const SELECTOR: [u8; 4] = [60u8, 183u8, 71u8, 191u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: messengerReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: messengerReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `otherBridge()` and selector `0xc89701a2`. +```solidity +function otherBridge() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct otherBridgeCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`otherBridge()`](otherBridgeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct otherBridgeReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: otherBridgeCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for otherBridgeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: otherBridgeReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for otherBridgeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for otherBridgeCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "otherBridge()"; + const SELECTOR: [u8; 4] = [200u8, 151u8, 1u8, 162u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: otherBridgeReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: otherBridgeReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `paused()` and selector `0x5c975abb`. +```solidity +function paused() external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct pausedCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`paused()`](pausedCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct pausedReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: pausedCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for pausedCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: pausedReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for pausedReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for pausedCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "paused()"; + const SELECTOR: [u8; 4] = [92u8, 151u8, 90u8, 187u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: pausedReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: pausedReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `proxyAdmin()` and selector `0x3e47158c`. +```solidity +function proxyAdmin() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct proxyAdminCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`proxyAdmin()`](proxyAdminCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct proxyAdminReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: proxyAdminCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for proxyAdminCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: proxyAdminReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for proxyAdminReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for proxyAdminCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "proxyAdmin()"; + const SELECTOR: [u8; 4] = [62u8, 71u8, 21u8, 140u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: proxyAdminReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: proxyAdminReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `proxyAdminOwner()` and selector `0xdad544e0`. +```solidity +function proxyAdminOwner() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct proxyAdminOwnerCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`proxyAdminOwner()`](proxyAdminOwnerCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct proxyAdminOwnerReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: proxyAdminOwnerCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for proxyAdminOwnerCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: proxyAdminOwnerReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for proxyAdminOwnerReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for proxyAdminOwnerCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "proxyAdminOwner()"; + const SELECTOR: [u8; 4] = [218u8, 213u8, 68u8, 224u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: proxyAdminOwnerReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: proxyAdminOwnerReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `superchainConfig()` and selector `0x35e80ab3`. +```solidity +function superchainConfig() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct superchainConfigCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`superchainConfig()`](superchainConfigCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct superchainConfigReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: superchainConfigCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for superchainConfigCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: superchainConfigReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for superchainConfigReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for superchainConfigCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "superchainConfig()"; + const SELECTOR: [u8; 4] = [53u8, 232u8, 10u8, 179u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: superchainConfigReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: superchainConfigReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `systemConfig()` and selector `0x33d7e2bd`. +```solidity +function systemConfig() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct systemConfigCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`systemConfig()`](systemConfigCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct systemConfigReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: systemConfigCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for systemConfigCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: systemConfigReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for systemConfigReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for systemConfigCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "systemConfig()"; + const SELECTOR: [u8; 4] = [51u8, 215u8, 226u8, 189u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: systemConfigReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: systemConfigReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `version()` and selector `0x54fd4d50`. +```solidity +function version() external view returns (string memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`version()`](versionCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for versionCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::String; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "version()"; + const SELECTOR: [u8; 4] = [84u8, 253u8, 77u8, 80u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + } + }; + ///Container for all the [`L1StandardBridge`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum L1StandardBridgeCalls { + #[allow(missing_docs)] + MESSENGER(MESSENGERCall), + #[allow(missing_docs)] + OTHER_BRIDGE(OTHER_BRIDGECall), + #[allow(missing_docs)] + bridgeERC20(bridgeERC20Call), + #[allow(missing_docs)] + bridgeERC20To(bridgeERC20ToCall), + #[allow(missing_docs)] + bridgeETH(bridgeETHCall), + #[allow(missing_docs)] + bridgeETHTo(bridgeETHToCall), + #[allow(missing_docs)] + depositERC20(depositERC20Call), + #[allow(missing_docs)] + depositERC20To(depositERC20ToCall), + #[allow(missing_docs)] + depositETH(depositETHCall), + #[allow(missing_docs)] + depositETHTo(depositETHToCall), + #[allow(missing_docs)] + deposits(depositsCall), + #[allow(missing_docs)] + finalizeBridgeERC20(finalizeBridgeERC20Call), + #[allow(missing_docs)] + finalizeBridgeETH(finalizeBridgeETHCall), + #[allow(missing_docs)] + finalizeERC20Withdrawal(finalizeERC20WithdrawalCall), + #[allow(missing_docs)] + finalizeETHWithdrawal(finalizeETHWithdrawalCall), + #[allow(missing_docs)] + initVersion(initVersionCall), + #[allow(missing_docs)] + initialize(initializeCall), + #[allow(missing_docs)] + l2TokenBridge(l2TokenBridgeCall), + #[allow(missing_docs)] + messenger(messengerCall), + #[allow(missing_docs)] + otherBridge(otherBridgeCall), + #[allow(missing_docs)] + paused(pausedCall), + #[allow(missing_docs)] + proxyAdmin(proxyAdminCall), + #[allow(missing_docs)] + proxyAdminOwner(proxyAdminOwnerCall), + #[allow(missing_docs)] + superchainConfig(superchainConfigCall), + #[allow(missing_docs)] + systemConfig(systemConfigCall), + #[allow(missing_docs)] + version(versionCall), + } + impl L1StandardBridgeCalls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [1u8, 102u8, 160u8, 122u8], + [9u8, 252u8, 136u8, 67u8], + [21u8, 50u8, 236u8, 52u8], + [22u8, 53u8, 245u8, 253u8], + [51u8, 215u8, 226u8, 189u8], + [53u8, 232u8, 10u8, 179u8], + [56u8, 211u8, 140u8, 151u8], + [60u8, 183u8, 71u8, 191u8], + [62u8, 71u8, 21u8, 140u8], + [72u8, 92u8, 201u8, 85u8], + [84u8, 10u8, 191u8, 115u8], + [84u8, 253u8, 77u8, 80u8], + [88u8, 169u8, 151u8, 246u8], + [92u8, 151u8, 90u8, 187u8], + [127u8, 70u8, 221u8, 178u8], + [131u8, 139u8, 37u8, 32u8], + [135u8, 8u8, 118u8, 35u8], + [143u8, 96u8, 31u8, 102u8], + [145u8, 196u8, 155u8, 248u8], + [146u8, 126u8, 222u8, 45u8], + [154u8, 42u8, 198u8, 213u8], + [169u8, 249u8, 230u8, 117u8], + [177u8, 161u8, 168u8, 130u8], + [200u8, 151u8, 1u8, 162u8], + [218u8, 213u8, 68u8, 224u8], + [225u8, 16u8, 19u8, 221u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(finalizeBridgeERC20), + ::core::stringify!(bridgeETH), + ::core::stringify!(finalizeETHWithdrawal), + ::core::stringify!(finalizeBridgeETH), + ::core::stringify!(systemConfig), + ::core::stringify!(superchainConfig), + ::core::stringify!(initVersion), + ::core::stringify!(messenger), + ::core::stringify!(proxyAdmin), + ::core::stringify!(initialize), + ::core::stringify!(bridgeERC20To), + ::core::stringify!(version), + ::core::stringify!(depositERC20), + ::core::stringify!(paused), + ::core::stringify!(OTHER_BRIDGE), + ::core::stringify!(depositERC20To), + ::core::stringify!(bridgeERC20), + ::core::stringify!(deposits), + ::core::stringify!(l2TokenBridge), + ::core::stringify!(MESSENGER), + ::core::stringify!(depositETHTo), + ::core::stringify!(finalizeERC20Withdrawal), + ::core::stringify!(depositETH), + ::core::stringify!(otherBridge), + ::core::stringify!(proxyAdminOwner), + ::core::stringify!(bridgeETHTo), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for L1StandardBridgeCalls { + const NAME: &'static str = "L1StandardBridgeCalls"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 26usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::MESSENGER(_) => { + ::SELECTOR + } + Self::OTHER_BRIDGE(_) => { + ::SELECTOR + } + Self::bridgeERC20(_) => { + ::SELECTOR + } + Self::bridgeERC20To(_) => { + ::SELECTOR + } + Self::bridgeETH(_) => { + ::SELECTOR + } + Self::bridgeETHTo(_) => { + ::SELECTOR + } + Self::depositERC20(_) => { + ::SELECTOR + } + Self::depositERC20To(_) => { + ::SELECTOR + } + Self::depositETH(_) => { + ::SELECTOR + } + Self::depositETHTo(_) => { + ::SELECTOR + } + Self::deposits(_) => ::SELECTOR, + Self::finalizeBridgeERC20(_) => { + ::SELECTOR + } + Self::finalizeBridgeETH(_) => { + ::SELECTOR + } + Self::finalizeERC20Withdrawal(_) => { + ::SELECTOR + } + Self::finalizeETHWithdrawal(_) => { + ::SELECTOR + } + Self::initVersion(_) => { + ::SELECTOR + } + Self::initialize(_) => { + ::SELECTOR + } + Self::l2TokenBridge(_) => { + ::SELECTOR + } + Self::messenger(_) => { + ::SELECTOR + } + Self::otherBridge(_) => { + ::SELECTOR + } + Self::paused(_) => ::SELECTOR, + Self::proxyAdmin(_) => { + ::SELECTOR + } + Self::proxyAdminOwner(_) => { + ::SELECTOR + } + Self::superchainConfig(_) => { + ::SELECTOR + } + Self::systemConfig(_) => { + ::SELECTOR + } + Self::version(_) => ::SELECTOR, + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn finalizeBridgeERC20( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L1StandardBridgeCalls::finalizeBridgeERC20) + } + finalizeBridgeERC20 + }, + { + fn bridgeETH( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(L1StandardBridgeCalls::bridgeETH) + } + bridgeETH + }, + { + fn finalizeETHWithdrawal( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L1StandardBridgeCalls::finalizeETHWithdrawal) + } + finalizeETHWithdrawal + }, + { + fn finalizeBridgeETH( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L1StandardBridgeCalls::finalizeBridgeETH) + } + finalizeBridgeETH + }, + { + fn systemConfig( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L1StandardBridgeCalls::systemConfig) + } + systemConfig + }, + { + fn superchainConfig( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L1StandardBridgeCalls::superchainConfig) + } + superchainConfig + }, + { + fn initVersion( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L1StandardBridgeCalls::initVersion) + } + initVersion + }, + { + fn messenger( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(L1StandardBridgeCalls::messenger) + } + messenger + }, + { + fn proxyAdmin( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L1StandardBridgeCalls::proxyAdmin) + } + proxyAdmin + }, + { + fn initialize( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L1StandardBridgeCalls::initialize) + } + initialize + }, + { + fn bridgeERC20To( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L1StandardBridgeCalls::bridgeERC20To) + } + bridgeERC20To + }, + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(L1StandardBridgeCalls::version) + } + version + }, + { + fn depositERC20( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L1StandardBridgeCalls::depositERC20) + } + depositERC20 + }, + { + fn paused( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(L1StandardBridgeCalls::paused) + } + paused + }, + { + fn OTHER_BRIDGE( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L1StandardBridgeCalls::OTHER_BRIDGE) + } + OTHER_BRIDGE + }, + { + fn depositERC20To( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L1StandardBridgeCalls::depositERC20To) + } + depositERC20To + }, + { + fn bridgeERC20( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L1StandardBridgeCalls::bridgeERC20) + } + bridgeERC20 + }, + { + fn deposits( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(L1StandardBridgeCalls::deposits) + } + deposits + }, + { + fn l2TokenBridge( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L1StandardBridgeCalls::l2TokenBridge) + } + l2TokenBridge + }, + { + fn MESSENGER( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(L1StandardBridgeCalls::MESSENGER) + } + MESSENGER + }, + { + fn depositETHTo( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L1StandardBridgeCalls::depositETHTo) + } + depositETHTo + }, + { + fn finalizeERC20Withdrawal( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L1StandardBridgeCalls::finalizeERC20Withdrawal) + } + finalizeERC20Withdrawal + }, + { + fn depositETH( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L1StandardBridgeCalls::depositETH) + } + depositETH + }, + { + fn otherBridge( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L1StandardBridgeCalls::otherBridge) + } + otherBridge + }, + { + fn proxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L1StandardBridgeCalls::proxyAdminOwner) + } + proxyAdminOwner + }, + { + fn bridgeETHTo( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L1StandardBridgeCalls::bridgeETHTo) + } + bridgeETHTo + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn finalizeBridgeERC20( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1StandardBridgeCalls::finalizeBridgeERC20) + } + finalizeBridgeERC20 + }, + { + fn bridgeETH( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1StandardBridgeCalls::bridgeETH) + } + bridgeETH + }, + { + fn finalizeETHWithdrawal( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1StandardBridgeCalls::finalizeETHWithdrawal) + } + finalizeETHWithdrawal + }, + { + fn finalizeBridgeETH( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1StandardBridgeCalls::finalizeBridgeETH) + } + finalizeBridgeETH + }, + { + fn systemConfig( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1StandardBridgeCalls::systemConfig) + } + systemConfig + }, + { + fn superchainConfig( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1StandardBridgeCalls::superchainConfig) + } + superchainConfig + }, + { + fn initVersion( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1StandardBridgeCalls::initVersion) + } + initVersion + }, + { + fn messenger( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1StandardBridgeCalls::messenger) + } + messenger + }, + { + fn proxyAdmin( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1StandardBridgeCalls::proxyAdmin) + } + proxyAdmin + }, + { + fn initialize( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1StandardBridgeCalls::initialize) + } + initialize + }, + { + fn bridgeERC20To( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1StandardBridgeCalls::bridgeERC20To) + } + bridgeERC20To + }, + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1StandardBridgeCalls::version) + } + version + }, + { + fn depositERC20( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1StandardBridgeCalls::depositERC20) + } + depositERC20 + }, + { + fn paused( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1StandardBridgeCalls::paused) + } + paused + }, + { + fn OTHER_BRIDGE( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1StandardBridgeCalls::OTHER_BRIDGE) + } + OTHER_BRIDGE + }, + { + fn depositERC20To( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1StandardBridgeCalls::depositERC20To) + } + depositERC20To + }, + { + fn bridgeERC20( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1StandardBridgeCalls::bridgeERC20) + } + bridgeERC20 + }, + { + fn deposits( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1StandardBridgeCalls::deposits) + } + deposits + }, + { + fn l2TokenBridge( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1StandardBridgeCalls::l2TokenBridge) + } + l2TokenBridge + }, + { + fn MESSENGER( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1StandardBridgeCalls::MESSENGER) + } + MESSENGER + }, + { + fn depositETHTo( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1StandardBridgeCalls::depositETHTo) + } + depositETHTo + }, + { + fn finalizeERC20Withdrawal( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1StandardBridgeCalls::finalizeERC20Withdrawal) + } + finalizeERC20Withdrawal + }, + { + fn depositETH( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1StandardBridgeCalls::depositETH) + } + depositETH + }, + { + fn otherBridge( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1StandardBridgeCalls::otherBridge) + } + otherBridge + }, + { + fn proxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1StandardBridgeCalls::proxyAdminOwner) + } + proxyAdminOwner + }, + { + fn bridgeETHTo( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1StandardBridgeCalls::bridgeETHTo) + } + bridgeETHTo + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::MESSENGER(inner) => { + ::abi_encoded_size(inner) + } + Self::OTHER_BRIDGE(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::bridgeERC20(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::bridgeERC20To(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::bridgeETH(inner) => { + ::abi_encoded_size(inner) + } + Self::bridgeETHTo(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::depositERC20(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::depositERC20To(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::depositETH(inner) => { + ::abi_encoded_size(inner) + } + Self::depositETHTo(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::deposits(inner) => { + ::abi_encoded_size(inner) + } + Self::finalizeBridgeERC20(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::finalizeBridgeETH(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::finalizeERC20Withdrawal(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::finalizeETHWithdrawal(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::initVersion(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::initialize(inner) => { + ::abi_encoded_size(inner) + } + Self::l2TokenBridge(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::messenger(inner) => { + ::abi_encoded_size(inner) + } + Self::otherBridge(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::paused(inner) => { + ::abi_encoded_size(inner) + } + Self::proxyAdmin(inner) => { + ::abi_encoded_size(inner) + } + Self::proxyAdminOwner(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::superchainConfig(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::systemConfig(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::version(inner) => { + ::abi_encoded_size(inner) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::MESSENGER(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::OTHER_BRIDGE(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::bridgeERC20(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::bridgeERC20To(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::bridgeETH(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::bridgeETHTo(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::depositERC20(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::depositERC20To(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::depositETH(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::depositETHTo(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::deposits(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::finalizeBridgeERC20(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::finalizeBridgeETH(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::finalizeERC20Withdrawal(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::finalizeETHWithdrawal(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::initVersion(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::initialize(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::l2TokenBridge(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::messenger(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::otherBridge(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::paused(inner) => { + ::abi_encode_raw(inner, out) + } + Self::proxyAdmin(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::proxyAdminOwner(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::superchainConfig(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::systemConfig(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::version(inner) => { + ::abi_encode_raw(inner, out) + } + } + } + } + ///Container for all the [`L1StandardBridge`](self) custom errors. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum L1StandardBridgeErrors { + #[allow(missing_docs)] + ProxyAdminOwnedBase_NotProxyAdmin(ProxyAdminOwnedBase_NotProxyAdmin), + #[allow(missing_docs)] + ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner( + ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner, + ), + #[allow(missing_docs)] + ProxyAdminOwnedBase_NotProxyAdminOwner(ProxyAdminOwnedBase_NotProxyAdminOwner), + #[allow(missing_docs)] + ProxyAdminOwnedBase_NotResolvedDelegateProxy( + ProxyAdminOwnedBase_NotResolvedDelegateProxy, + ), + #[allow(missing_docs)] + ProxyAdminOwnedBase_NotSharedProxyAdminOwner( + ProxyAdminOwnedBase_NotSharedProxyAdminOwner, + ), + #[allow(missing_docs)] + ProxyAdminOwnedBase_ProxyAdminNotFound(ProxyAdminOwnedBase_ProxyAdminNotFound), + #[allow(missing_docs)] + ReinitializableBase_ZeroInitVersion(ReinitializableBase_ZeroInitVersion), + } + impl L1StandardBridgeErrors { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [7u8, 92u8, 67u8, 20u8], + [51u8, 33u8, 68u8, 219u8], + [84u8, 228u8, 51u8, 205u8], + [127u8, 18u8, 198u8, 75u8], + [155u8, 1u8, 175u8, 237u8], + [196u8, 5u8, 10u8, 38u8], + [232u8, 24u8, 220u8, 195u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(ProxyAdminOwnedBase_NotSharedProxyAdminOwner), + ::core::stringify!(ProxyAdminOwnedBase_ProxyAdminNotFound), + ::core::stringify!(ProxyAdminOwnedBase_NotResolvedDelegateProxy), + ::core::stringify!(ProxyAdminOwnedBase_NotProxyAdminOwner), + ::core::stringify!(ReinitializableBase_ZeroInitVersion), + ::core::stringify!(ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner), + ::core::stringify!(ProxyAdminOwnedBase_NotProxyAdmin), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for L1StandardBridgeErrors { + const NAME: &'static str = "L1StandardBridgeErrors"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 7usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::ProxyAdminOwnedBase_NotProxyAdmin(_) => { + ::SELECTOR + } + Self::ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner(_) => { + ::SELECTOR + } + Self::ProxyAdminOwnedBase_NotProxyAdminOwner(_) => { + ::SELECTOR + } + Self::ProxyAdminOwnedBase_NotResolvedDelegateProxy(_) => { + ::SELECTOR + } + Self::ProxyAdminOwnedBase_NotSharedProxyAdminOwner(_) => { + ::SELECTOR + } + Self::ProxyAdminOwnedBase_ProxyAdminNotFound(_) => { + ::SELECTOR + } + Self::ReinitializableBase_ZeroInitVersion(_) => { + ::SELECTOR + } + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn ProxyAdminOwnedBase_NotSharedProxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + L1StandardBridgeErrors::ProxyAdminOwnedBase_NotSharedProxyAdminOwner, + ) + } + ProxyAdminOwnedBase_NotSharedProxyAdminOwner + }, + { + fn ProxyAdminOwnedBase_ProxyAdminNotFound( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + L1StandardBridgeErrors::ProxyAdminOwnedBase_ProxyAdminNotFound, + ) + } + ProxyAdminOwnedBase_ProxyAdminNotFound + }, + { + fn ProxyAdminOwnedBase_NotResolvedDelegateProxy( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + L1StandardBridgeErrors::ProxyAdminOwnedBase_NotResolvedDelegateProxy, + ) + } + ProxyAdminOwnedBase_NotResolvedDelegateProxy + }, + { + fn ProxyAdminOwnedBase_NotProxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + L1StandardBridgeErrors::ProxyAdminOwnedBase_NotProxyAdminOwner, + ) + } + ProxyAdminOwnedBase_NotProxyAdminOwner + }, + { + fn ReinitializableBase_ZeroInitVersion( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + L1StandardBridgeErrors::ReinitializableBase_ZeroInitVersion, + ) + } + ReinitializableBase_ZeroInitVersion + }, + { + fn ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + L1StandardBridgeErrors::ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner, + ) + } + ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner + }, + { + fn ProxyAdminOwnedBase_NotProxyAdmin( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + L1StandardBridgeErrors::ProxyAdminOwnedBase_NotProxyAdmin, + ) + } + ProxyAdminOwnedBase_NotProxyAdmin + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn ProxyAdminOwnedBase_NotSharedProxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + L1StandardBridgeErrors::ProxyAdminOwnedBase_NotSharedProxyAdminOwner, + ) + } + ProxyAdminOwnedBase_NotSharedProxyAdminOwner + }, + { + fn ProxyAdminOwnedBase_ProxyAdminNotFound( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + L1StandardBridgeErrors::ProxyAdminOwnedBase_ProxyAdminNotFound, + ) + } + ProxyAdminOwnedBase_ProxyAdminNotFound + }, + { + fn ProxyAdminOwnedBase_NotResolvedDelegateProxy( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + L1StandardBridgeErrors::ProxyAdminOwnedBase_NotResolvedDelegateProxy, + ) + } + ProxyAdminOwnedBase_NotResolvedDelegateProxy + }, + { + fn ProxyAdminOwnedBase_NotProxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + L1StandardBridgeErrors::ProxyAdminOwnedBase_NotProxyAdminOwner, + ) + } + ProxyAdminOwnedBase_NotProxyAdminOwner + }, + { + fn ReinitializableBase_ZeroInitVersion( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + L1StandardBridgeErrors::ReinitializableBase_ZeroInitVersion, + ) + } + ReinitializableBase_ZeroInitVersion + }, + { + fn ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + L1StandardBridgeErrors::ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner, + ) + } + ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner + }, + { + fn ProxyAdminOwnedBase_NotProxyAdmin( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + L1StandardBridgeErrors::ProxyAdminOwnedBase_NotProxyAdmin, + ) + } + ProxyAdminOwnedBase_NotProxyAdmin + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::ProxyAdminOwnedBase_NotProxyAdmin(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ProxyAdminOwnedBase_NotProxyAdminOwner(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ProxyAdminOwnedBase_NotResolvedDelegateProxy(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ProxyAdminOwnedBase_NotSharedProxyAdminOwner(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ProxyAdminOwnedBase_ProxyAdminNotFound(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ReinitializableBase_ZeroInitVersion(inner) => { + ::abi_encoded_size( + inner, + ) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::ProxyAdminOwnedBase_NotProxyAdmin(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ProxyAdminOwnedBase_NotProxyAdminOwner(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ProxyAdminOwnedBase_NotResolvedDelegateProxy(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ProxyAdminOwnedBase_NotSharedProxyAdminOwner(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ProxyAdminOwnedBase_ProxyAdminNotFound(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ReinitializableBase_ZeroInitVersion(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + } + } + } + ///Container for all the [`L1StandardBridge`](self) events. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum L1StandardBridgeEvents { + #[allow(missing_docs)] + ERC20BridgeFinalized(ERC20BridgeFinalized), + #[allow(missing_docs)] + ERC20BridgeInitiated(ERC20BridgeInitiated), + #[allow(missing_docs)] + ERC20DepositInitiated(ERC20DepositInitiated), + #[allow(missing_docs)] + ERC20WithdrawalFinalized(ERC20WithdrawalFinalized), + #[allow(missing_docs)] + ETHBridgeFinalized(ETHBridgeFinalized), + #[allow(missing_docs)] + ETHBridgeInitiated(ETHBridgeInitiated), + #[allow(missing_docs)] + ETHDepositInitiated(ETHDepositInitiated), + #[allow(missing_docs)] + ETHWithdrawalFinalized(ETHWithdrawalFinalized), + #[allow(missing_docs)] + Initialized(Initialized), + } + impl L1StandardBridgeEvents { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 32usize]] = &[ + [ + 40u8, 73u8, 180u8, 48u8, 116u8, 9u8, 58u8, 5u8, 57u8, 107u8, 111u8, 42u8, + 147u8, 125u8, 238u8, 133u8, 101u8, 177u8, 90u8, 72u8, 167u8, 179u8, + 212u8, 191u8, 251u8, 115u8, 42u8, 80u8, 23u8, 56u8, 10u8, 245u8, + ], + [ + 42u8, 198u8, 158u8, 232u8, 4u8, 217u8, 167u8, 160u8, 152u8, 66u8, 73u8, + 245u8, 8u8, 223u8, 171u8, 124u8, 178u8, 83u8, 75u8, 70u8, 91u8, 108u8, + 225u8, 88u8, 15u8, 153u8, 163u8, 139u8, 169u8, 197u8, 230u8, 49u8, + ], + [ + 49u8, 178u8, 22u8, 111u8, 246u8, 4u8, 252u8, 86u8, 114u8, 234u8, 93u8, + 240u8, 138u8, 120u8, 8u8, 29u8, 43u8, 198u8, 215u8, 70u8, 202u8, 220u8, + 232u8, 128u8, 116u8, 127u8, 54u8, 67u8, 216u8, 25u8, 232u8, 61u8, + ], + [ + 53u8, 215u8, 154u8, 184u8, 31u8, 43u8, 32u8, 23u8, 225u8, 154u8, 251u8, + 92u8, 85u8, 113u8, 119u8, 136u8, 119u8, 120u8, 45u8, 122u8, 135u8, 134u8, + 245u8, 144u8, 127u8, 147u8, 176u8, 244u8, 112u8, 47u8, 79u8, 35u8, + ], + [ + 60u8, 238u8, 224u8, 108u8, 30u8, 55u8, 100u8, 143u8, 203u8, 182u8, 237u8, + 82u8, 225u8, 123u8, 62u8, 31u8, 39u8, 90u8, 31u8, 140u8, 123u8, 34u8, + 168u8, 75u8, 43u8, 132u8, 115u8, 36u8, 49u8, 224u8, 70u8, 179u8, + ], + [ + 113u8, 133u8, 148u8, 2u8, 122u8, 189u8, 78u8, 174u8, 213u8, 159u8, 149u8, + 22u8, 37u8, 99u8, 224u8, 204u8, 109u8, 14u8, 141u8, 91u8, 134u8, 177u8, + 199u8, 190u8, 139u8, 27u8, 10u8, 195u8, 52u8, 61u8, 3u8, 150u8, + ], + [ + 127u8, 38u8, 184u8, 63u8, 249u8, 110u8, 31u8, 43u8, 106u8, 104u8, 47u8, + 19u8, 56u8, 82u8, 246u8, 121u8, 138u8, 9u8, 196u8, 101u8, 218u8, 149u8, + 146u8, 20u8, 96u8, 206u8, 251u8, 56u8, 71u8, 64u8, 36u8, 152u8, + ], + [ + 127u8, 241u8, 38u8, 219u8, 128u8, 36u8, 66u8, 75u8, 191u8, 217u8, 130u8, + 110u8, 138u8, 184u8, 47u8, 245u8, 145u8, 54u8, 40u8, 158u8, 164u8, 64u8, + 176u8, 75u8, 57u8, 160u8, 223u8, 27u8, 3u8, 185u8, 202u8, 191u8, + ], + [ + 213u8, 156u8, 101u8, 179u8, 84u8, 69u8, 34u8, 88u8, 53u8, 200u8, 63u8, + 80u8, 182u8, 237u8, 224u8, 106u8, 123u8, 224u8, 71u8, 210u8, 46u8, 53u8, + 112u8, 115u8, 226u8, 80u8, 217u8, 175u8, 83u8, 117u8, 24u8, 205u8, + ], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(ETHBridgeInitiated), + ::core::stringify!(ETHWithdrawalFinalized), + ::core::stringify!(ETHBridgeFinalized), + ::core::stringify!(ETHDepositInitiated), + ::core::stringify!(ERC20WithdrawalFinalized), + ::core::stringify!(ERC20DepositInitiated), + ::core::stringify!(Initialized), + ::core::stringify!(ERC20BridgeInitiated), + ::core::stringify!(ERC20BridgeFinalized), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolEventInterface for L1StandardBridgeEvents { + const NAME: &'static str = "L1StandardBridgeEvents"; + const COUNT: usize = 9usize; + fn decode_raw_log( + topics: &[alloy_sol_types::Word], + data: &[u8], + ) -> alloy_sol_types::Result { + match topics.first().copied() { + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::ERC20BridgeFinalized) + } + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::ERC20BridgeInitiated) + } + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::ERC20DepositInitiated) + } + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::ERC20WithdrawalFinalized) + } + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::ETHBridgeFinalized) + } + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::ETHBridgeInitiated) + } + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::ETHDepositInitiated) + } + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::ETHWithdrawalFinalized) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::Initialized) + } + _ => { + alloy_sol_types::private::Err(alloy_sol_types::Error::InvalidLog { + name: ::NAME, + log: alloy_sol_types::private::Box::new( + alloy_sol_types::private::LogData::new_unchecked( + topics.to_vec(), + data.to_vec().into(), + ), + ), + }) + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for L1StandardBridgeEvents { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + match self { + Self::ERC20BridgeFinalized(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::ERC20BridgeInitiated(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::ERC20DepositInitiated(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::ERC20WithdrawalFinalized(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::ETHBridgeFinalized(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::ETHBridgeInitiated(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::ETHDepositInitiated(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::ETHWithdrawalFinalized(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::Initialized(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + } + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + match self { + Self::ERC20BridgeFinalized(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::ERC20BridgeInitiated(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::ERC20DepositInitiated(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::ERC20WithdrawalFinalized(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::ETHBridgeFinalized(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::ETHBridgeInitiated(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::ETHDepositInitiated(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::ETHWithdrawalFinalized(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::Initialized(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`L1StandardBridge`](self) contract instance. + +See the [wrapper's documentation](`L1StandardBridgeInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> L1StandardBridgeInstance { + L1StandardBridgeInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + L1StandardBridgeInstance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + L1StandardBridgeInstance::::deploy_builder(__provider) + } + /**A [`L1StandardBridge`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`L1StandardBridge`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct L1StandardBridgeInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for L1StandardBridgeInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("L1StandardBridgeInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > L1StandardBridgeInstance { + /**Creates a new wrapper around an on-chain [`L1StandardBridge`](self) contract instance. + +See the [wrapper's documentation](`L1StandardBridgeInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl L1StandardBridgeInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> L1StandardBridgeInstance { + L1StandardBridgeInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > L1StandardBridgeInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`MESSENGER`] function. + pub fn MESSENGER(&self) -> alloy_contract::SolCallBuilder<&P, MESSENGERCall, N> { + self.call_builder(&MESSENGERCall) + } + ///Creates a new call builder for the [`OTHER_BRIDGE`] function. + pub fn OTHER_BRIDGE( + &self, + ) -> alloy_contract::SolCallBuilder<&P, OTHER_BRIDGECall, N> { + self.call_builder(&OTHER_BRIDGECall) + } + ///Creates a new call builder for the [`bridgeERC20`] function. + pub fn bridgeERC20( + &self, + _localToken: alloy::sol_types::private::Address, + _remoteToken: alloy::sol_types::private::Address, + _amount: alloy::sol_types::private::primitives::aliases::U256, + _minGasLimit: u32, + _extraData: alloy::sol_types::private::Bytes, + ) -> alloy_contract::SolCallBuilder<&P, bridgeERC20Call, N> { + self.call_builder( + &bridgeERC20Call { + _localToken, + _remoteToken, + _amount, + _minGasLimit, + _extraData, + }, + ) + } + ///Creates a new call builder for the [`bridgeERC20To`] function. + pub fn bridgeERC20To( + &self, + _localToken: alloy::sol_types::private::Address, + _remoteToken: alloy::sol_types::private::Address, + _to: alloy::sol_types::private::Address, + _amount: alloy::sol_types::private::primitives::aliases::U256, + _minGasLimit: u32, + _extraData: alloy::sol_types::private::Bytes, + ) -> alloy_contract::SolCallBuilder<&P, bridgeERC20ToCall, N> { + self.call_builder( + &bridgeERC20ToCall { + _localToken, + _remoteToken, + _to, + _amount, + _minGasLimit, + _extraData, + }, + ) + } + ///Creates a new call builder for the [`bridgeETH`] function. + pub fn bridgeETH( + &self, + _minGasLimit: u32, + _extraData: alloy::sol_types::private::Bytes, + ) -> alloy_contract::SolCallBuilder<&P, bridgeETHCall, N> { + self.call_builder( + &bridgeETHCall { + _minGasLimit, + _extraData, + }, + ) + } + ///Creates a new call builder for the [`bridgeETHTo`] function. + pub fn bridgeETHTo( + &self, + _to: alloy::sol_types::private::Address, + _minGasLimit: u32, + _extraData: alloy::sol_types::private::Bytes, + ) -> alloy_contract::SolCallBuilder<&P, bridgeETHToCall, N> { + self.call_builder( + &bridgeETHToCall { + _to, + _minGasLimit, + _extraData, + }, + ) + } + ///Creates a new call builder for the [`depositERC20`] function. + pub fn depositERC20( + &self, + _l1Token: alloy::sol_types::private::Address, + _l2Token: alloy::sol_types::private::Address, + _amount: alloy::sol_types::private::primitives::aliases::U256, + _minGasLimit: u32, + _extraData: alloy::sol_types::private::Bytes, + ) -> alloy_contract::SolCallBuilder<&P, depositERC20Call, N> { + self.call_builder( + &depositERC20Call { + _l1Token, + _l2Token, + _amount, + _minGasLimit, + _extraData, + }, + ) + } + ///Creates a new call builder for the [`depositERC20To`] function. + pub fn depositERC20To( + &self, + _l1Token: alloy::sol_types::private::Address, + _l2Token: alloy::sol_types::private::Address, + _to: alloy::sol_types::private::Address, + _amount: alloy::sol_types::private::primitives::aliases::U256, + _minGasLimit: u32, + _extraData: alloy::sol_types::private::Bytes, + ) -> alloy_contract::SolCallBuilder<&P, depositERC20ToCall, N> { + self.call_builder( + &depositERC20ToCall { + _l1Token, + _l2Token, + _to, + _amount, + _minGasLimit, + _extraData, + }, + ) + } + ///Creates a new call builder for the [`depositETH`] function. + pub fn depositETH( + &self, + _minGasLimit: u32, + _extraData: alloy::sol_types::private::Bytes, + ) -> alloy_contract::SolCallBuilder<&P, depositETHCall, N> { + self.call_builder( + &depositETHCall { + _minGasLimit, + _extraData, + }, + ) + } + ///Creates a new call builder for the [`depositETHTo`] function. + pub fn depositETHTo( + &self, + _to: alloy::sol_types::private::Address, + _minGasLimit: u32, + _extraData: alloy::sol_types::private::Bytes, + ) -> alloy_contract::SolCallBuilder<&P, depositETHToCall, N> { + self.call_builder( + &depositETHToCall { + _to, + _minGasLimit, + _extraData, + }, + ) + } + ///Creates a new call builder for the [`deposits`] function. + pub fn deposits( + &self, + _0: alloy::sol_types::private::Address, + _1: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, depositsCall, N> { + self.call_builder(&depositsCall { _0, _1 }) + } + ///Creates a new call builder for the [`finalizeBridgeERC20`] function. + pub fn finalizeBridgeERC20( + &self, + _localToken: alloy::sol_types::private::Address, + _remoteToken: alloy::sol_types::private::Address, + _from: alloy::sol_types::private::Address, + _to: alloy::sol_types::private::Address, + _amount: alloy::sol_types::private::primitives::aliases::U256, + _extraData: alloy::sol_types::private::Bytes, + ) -> alloy_contract::SolCallBuilder<&P, finalizeBridgeERC20Call, N> { + self.call_builder( + &finalizeBridgeERC20Call { + _localToken, + _remoteToken, + _from, + _to, + _amount, + _extraData, + }, + ) + } + ///Creates a new call builder for the [`finalizeBridgeETH`] function. + pub fn finalizeBridgeETH( + &self, + _from: alloy::sol_types::private::Address, + _to: alloy::sol_types::private::Address, + _amount: alloy::sol_types::private::primitives::aliases::U256, + _extraData: alloy::sol_types::private::Bytes, + ) -> alloy_contract::SolCallBuilder<&P, finalizeBridgeETHCall, N> { + self.call_builder( + &finalizeBridgeETHCall { + _from, + _to, + _amount, + _extraData, + }, + ) + } + ///Creates a new call builder for the [`finalizeERC20Withdrawal`] function. + pub fn finalizeERC20Withdrawal( + &self, + _l1Token: alloy::sol_types::private::Address, + _l2Token: alloy::sol_types::private::Address, + _from: alloy::sol_types::private::Address, + _to: alloy::sol_types::private::Address, + _amount: alloy::sol_types::private::primitives::aliases::U256, + _extraData: alloy::sol_types::private::Bytes, + ) -> alloy_contract::SolCallBuilder<&P, finalizeERC20WithdrawalCall, N> { + self.call_builder( + &finalizeERC20WithdrawalCall { + _l1Token, + _l2Token, + _from, + _to, + _amount, + _extraData, + }, + ) + } + ///Creates a new call builder for the [`finalizeETHWithdrawal`] function. + pub fn finalizeETHWithdrawal( + &self, + _from: alloy::sol_types::private::Address, + _to: alloy::sol_types::private::Address, + _amount: alloy::sol_types::private::primitives::aliases::U256, + _extraData: alloy::sol_types::private::Bytes, + ) -> alloy_contract::SolCallBuilder<&P, finalizeETHWithdrawalCall, N> { + self.call_builder( + &finalizeETHWithdrawalCall { + _from, + _to, + _amount, + _extraData, + }, + ) + } + ///Creates a new call builder for the [`initVersion`] function. + pub fn initVersion( + &self, + ) -> alloy_contract::SolCallBuilder<&P, initVersionCall, N> { + self.call_builder(&initVersionCall) + } + ///Creates a new call builder for the [`initialize`] function. + pub fn initialize( + &self, + _messenger: alloy::sol_types::private::Address, + _systemConfig: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, initializeCall, N> { + self.call_builder( + &initializeCall { + _messenger, + _systemConfig, + }, + ) + } + ///Creates a new call builder for the [`l2TokenBridge`] function. + pub fn l2TokenBridge( + &self, + ) -> alloy_contract::SolCallBuilder<&P, l2TokenBridgeCall, N> { + self.call_builder(&l2TokenBridgeCall) + } + ///Creates a new call builder for the [`messenger`] function. + pub fn messenger(&self) -> alloy_contract::SolCallBuilder<&P, messengerCall, N> { + self.call_builder(&messengerCall) + } + ///Creates a new call builder for the [`otherBridge`] function. + pub fn otherBridge( + &self, + ) -> alloy_contract::SolCallBuilder<&P, otherBridgeCall, N> { + self.call_builder(&otherBridgeCall) + } + ///Creates a new call builder for the [`paused`] function. + pub fn paused(&self) -> alloy_contract::SolCallBuilder<&P, pausedCall, N> { + self.call_builder(&pausedCall) + } + ///Creates a new call builder for the [`proxyAdmin`] function. + pub fn proxyAdmin( + &self, + ) -> alloy_contract::SolCallBuilder<&P, proxyAdminCall, N> { + self.call_builder(&proxyAdminCall) + } + ///Creates a new call builder for the [`proxyAdminOwner`] function. + pub fn proxyAdminOwner( + &self, + ) -> alloy_contract::SolCallBuilder<&P, proxyAdminOwnerCall, N> { + self.call_builder(&proxyAdminOwnerCall) + } + ///Creates a new call builder for the [`superchainConfig`] function. + pub fn superchainConfig( + &self, + ) -> alloy_contract::SolCallBuilder<&P, superchainConfigCall, N> { + self.call_builder(&superchainConfigCall) + } + ///Creates a new call builder for the [`systemConfig`] function. + pub fn systemConfig( + &self, + ) -> alloy_contract::SolCallBuilder<&P, systemConfigCall, N> { + self.call_builder(&systemConfigCall) + } + ///Creates a new call builder for the [`version`] function. + pub fn version(&self) -> alloy_contract::SolCallBuilder<&P, versionCall, N> { + self.call_builder(&versionCall) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > L1StandardBridgeInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + ///Creates a new event filter for the [`ERC20BridgeFinalized`] event. + pub fn ERC20BridgeFinalized_filter( + &self, + ) -> alloy_contract::Event<&P, ERC20BridgeFinalized, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`ERC20BridgeInitiated`] event. + pub fn ERC20BridgeInitiated_filter( + &self, + ) -> alloy_contract::Event<&P, ERC20BridgeInitiated, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`ERC20DepositInitiated`] event. + pub fn ERC20DepositInitiated_filter( + &self, + ) -> alloy_contract::Event<&P, ERC20DepositInitiated, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`ERC20WithdrawalFinalized`] event. + pub fn ERC20WithdrawalFinalized_filter( + &self, + ) -> alloy_contract::Event<&P, ERC20WithdrawalFinalized, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`ETHBridgeFinalized`] event. + pub fn ETHBridgeFinalized_filter( + &self, + ) -> alloy_contract::Event<&P, ETHBridgeFinalized, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`ETHBridgeInitiated`] event. + pub fn ETHBridgeInitiated_filter( + &self, + ) -> alloy_contract::Event<&P, ETHBridgeInitiated, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`ETHDepositInitiated`] event. + pub fn ETHDepositInitiated_filter( + &self, + ) -> alloy_contract::Event<&P, ETHDepositInitiated, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`ETHWithdrawalFinalized`] event. + pub fn ETHWithdrawalFinalized_filter( + &self, + ) -> alloy_contract::Event<&P, ETHWithdrawalFinalized, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`Initialized`] event. + pub fn Initialized_filter(&self) -> alloy_contract::Event<&P, Initialized, N> { + self.event_filter::() + } + } +} diff --git a/bindings/rust/src/l1_withdrawer.rs b/bindings/rust/src/l1_withdrawer.rs new file mode 100644 index 000000000..cd7ca1e76 --- /dev/null +++ b/bindings/rust/src/l1_withdrawer.rs @@ -0,0 +1,3122 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface L1Withdrawer { + error L1Withdrawer_OnlyProxyAdminOwner(); + + event FundsReceived(address indexed sender, uint256 amount, uint256 newBalance); + event MinWithdrawalAmountUpdated(uint256 oldMinWithdrawalAmount, uint256 newMinWithdrawalAmount); + event RecipientUpdated(address oldRecipient, address newRecipient); + event WithdrawalGasLimitUpdated(uint32 oldWithdrawalGasLimit, uint32 newWithdrawalGasLimit); + event WithdrawalInitiated(address indexed recipient, uint256 amount); + + constructor(uint256 _minWithdrawalAmount, address _recipient, uint32 _withdrawalGasLimit); + + receive() external payable; + + function minWithdrawalAmount() external view returns (uint256); + function recipient() external view returns (address); + function setMinWithdrawalAmount(uint256 _newMinWithdrawalAmount) external; + function setRecipient(address _newRecipient) external; + function setWithdrawalGasLimit(uint32 _newWithdrawalGasLimit) external; + function version() external view returns (string memory); + function withdrawalGasLimit() external view returns (uint32); +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "constructor", + "inputs": [ + { + "name": "_minWithdrawalAmount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_recipient", + "type": "address", + "internalType": "address" + }, + { + "name": "_withdrawalGasLimit", + "type": "uint32", + "internalType": "uint32" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "receive", + "stateMutability": "payable" + }, + { + "type": "function", + "name": "minWithdrawalAmount", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "recipient", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "setMinWithdrawalAmount", + "inputs": [ + { + "name": "_newMinWithdrawalAmount", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "setRecipient", + "inputs": [ + { + "name": "_newRecipient", + "type": "address", + "internalType": "address" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "setWithdrawalGasLimit", + "inputs": [ + { + "name": "_newWithdrawalGasLimit", + "type": "uint32", + "internalType": "uint32" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "version", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "withdrawalGasLimit", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint32", + "internalType": "uint32" + } + ], + "stateMutability": "view" + }, + { + "type": "event", + "name": "FundsReceived", + "inputs": [ + { + "name": "sender", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + }, + { + "name": "newBalance", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "MinWithdrawalAmountUpdated", + "inputs": [ + { + "name": "oldMinWithdrawalAmount", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + }, + { + "name": "newMinWithdrawalAmount", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "RecipientUpdated", + "inputs": [ + { + "name": "oldRecipient", + "type": "address", + "indexed": false, + "internalType": "address" + }, + { + "name": "newRecipient", + "type": "address", + "indexed": false, + "internalType": "address" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "WithdrawalGasLimitUpdated", + "inputs": [ + { + "name": "oldWithdrawalGasLimit", + "type": "uint32", + "indexed": false, + "internalType": "uint32" + }, + { + "name": "newWithdrawalGasLimit", + "type": "uint32", + "indexed": false, + "internalType": "uint32" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "WithdrawalInitiated", + "inputs": [ + { + "name": "recipient", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "error", + "name": "L1Withdrawer_OnlyProxyAdminOwner", + "inputs": [] + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod L1Withdrawer { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x6080604052348015600e575f80fd5b50604051610908380380610908833981016040819052602b916067565b5f929092556001805463ffffffff909316600160a01b026001600160c01b03199093166001600160a01b039092169190911791909117905560b8565b5f805f606084860312156078575f80fd5b835160208501519093506001600160a01b03811681146095575f80fd5b604085015190925063ffffffff8116811460ad575f80fd5b809150509250925092565b610843806100c55f395ff3fe608060405260043610610071575f3560e01c806366d003ac1161004c57806366d003ac146102995780638312f149146102ea57806385b5b14d1461030c5780639d7955b41461032b575f80fd5b80633bbed4a0146101d7578063500bf72f146101f657806354fd4d5014610244575f80fd5b366101d3576040805134815247602082018190529133917f363f315f930a17d1266b86a20d6dd34b1cfbc5a9db9f13a65d06a689c3a2af8a910160405180910390a25f5481106101d1576001546040517f3dbb202b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82166004820152606060248201525f60648201527401000000000000000000000000000000000000000090910463ffffffff16604482015273420000000000000000000000000000000000000790633dbb202b9083906084015f604051808303818588803b158015610169575f80fd5b505af115801561017b573d5f803e3d5ffd5b505060015460405185815273ffffffffffffffffffffffffffffffffffffffff90911693507f6d92f7d3303f995bf21956bb0c51b388bae348eaf45c23debd2cfa3fcd9ec6469250602001905060405180910390a25b005b5f80fd5b3480156101e2575f80fd5b506101d16101f136600461076c565b61034a565b348015610201575f80fd5b5060015461022a9074010000000000000000000000000000000000000000900463ffffffff1681565b60405163ffffffff90911681526020015b60405180910390f35b34801561024f575f80fd5b5061028c6040518060400160405280600581526020017f312e302e3000000000000000000000000000000000000000000000000000000081525081565b60405161023b919061078e565b3480156102a4575f80fd5b506001546102c59073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161023b565b3480156102f5575f80fd5b506102fe5f5481565b60405190815260200161023b565b348015610317575f80fd5b506101d16103263660046107e1565b6104b6565b348015610336575f80fd5b506101d16103453660046107f8565b6105d8565b73420000000000000000000000000000000000001873ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103a7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103cb919061081b565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461042f576040517f807b982000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff000000000000000000000000000000000000000083168117909355604080519190921680825260208201939093527f62e69886a5df0ba8ffcacbfc1388754e7abd9bde24b036354c561f1acd4e459391015b60405180910390a15050565b73420000000000000000000000000000000000001873ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610513573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610537919061081b565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461059b576040517f807b982000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f80549082905560408051828152602081018490527f895a067c78583e800418fabf3da26a9496aab2ff3429cebdf7fefa642b2e420391016104aa565b73420000000000000000000000000000000000001873ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610635573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610659919061081b565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146106bd576040517f807b982000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001805463ffffffff838116740100000000000000000000000000000000000000008181027fffffffffffffffff00000000ffffffffffffffffffffffffffffffffffffffff85161790945560408051949093049091168084526020840191909152917fd00b9b2acb0059a20066ca19b541618141c03305a0a6644d43277758c539b5de91016104aa565b73ffffffffffffffffffffffffffffffffffffffff81168114610769575f80fd5b50565b5f6020828403121561077c575f80fd5b813561078781610748565b9392505050565b602081525f82518060208401528060208501604085015e5f6040828501015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011684010191505092915050565b5f602082840312156107f1575f80fd5b5035919050565b5f60208284031215610808575f80fd5b813563ffffffff81168114610787575f80fd5b5f6020828403121561082b575f80fd5b81516107878161074856fea164736f6c6343000819000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R4\x80\x15`\x0EW_\x80\xFD[P`@Qa\t\x088\x03\x80a\t\x08\x839\x81\x01`@\x81\x90R`+\x91`gV[_\x92\x90\x92U`\x01\x80Tc\xFF\xFF\xFF\xFF\x90\x93\x16`\x01`\xA0\x1B\x02`\x01`\x01`\xC0\x1B\x03\x19\x90\x93\x16`\x01`\x01`\xA0\x1B\x03\x90\x92\x16\x91\x90\x91\x17\x91\x90\x91\x17\x90U`\xB8V[_\x80_``\x84\x86\x03\x12\x15`xW_\x80\xFD[\x83Q` \x85\x01Q\x90\x93P`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14`\x95W_\x80\xFD[`@\x85\x01Q\x90\x92Pc\xFF\xFF\xFF\xFF\x81\x16\x81\x14`\xADW_\x80\xFD[\x80\x91PP\x92P\x92P\x92V[a\x08C\x80a\0\xC5_9_\xF3\xFE`\x80`@R`\x046\x10a\0qW_5`\xE0\x1C\x80cf\xD0\x03\xAC\x11a\0LW\x80cf\xD0\x03\xAC\x14a\x02\x99W\x80c\x83\x12\xF1I\x14a\x02\xEAW\x80c\x85\xB5\xB1M\x14a\x03\x0CW\x80c\x9DyU\xB4\x14a\x03+W_\x80\xFD[\x80c;\xBE\xD4\xA0\x14a\x01\xD7W\x80cP\x0B\xF7/\x14a\x01\xF6W\x80cT\xFDMP\x14a\x02DW_\x80\xFD[6a\x01\xD3W`@\x80Q4\x81RG` \x82\x01\x81\x90R\x913\x91\x7F6?1_\x93\n\x17\xD1&k\x86\xA2\rm\xD3K\x1C\xFB\xC5\xA9\xDB\x9F\x13\xA6]\x06\xA6\x89\xC3\xA2\xAF\x8A\x91\x01`@Q\x80\x91\x03\x90\xA2_T\x81\x10a\x01\xD1W`\x01T`@Q\x7F=\xBB +\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\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16`\x04\x82\x01R```$\x82\x01R_`d\x82\x01Rt\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x91\x04c\xFF\xFF\xFF\xFF\x16`D\x82\x01RsB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x07\x90c=\xBB +\x90\x83\x90`\x84\x01_`@Q\x80\x83\x03\x81\x85\x88\x80;\x15\x80\x15a\x01iW_\x80\xFD[PZ\xF1\x15\x80\x15a\x01{W=_\x80>=_\xFD[PP`\x01T`@Q\x85\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x93P\x7Fm\x92\xF7\xD30?\x99[\xF2\x19V\xBB\x0CQ\xB3\x88\xBA\xE3H\xEA\xF4\\#\xDE\xBD,\xFA?\xCD\x9E\xC6F\x92P` \x01\x90P`@Q\x80\x91\x03\x90\xA2[\0[_\x80\xFD[4\x80\x15a\x01\xE2W_\x80\xFD[Pa\x01\xD1a\x01\xF16`\x04a\x07lV[a\x03JV[4\x80\x15a\x02\x01W_\x80\xFD[P`\x01Ta\x02*\x90t\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04c\xFF\xFF\xFF\xFF\x16\x81V[`@Qc\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[4\x80\x15a\x02OW_\x80\xFD[Pa\x02\x8C`@Q\x80`@\x01`@R\x80`\x05\x81R` \x01\x7F1.0.0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RP\x81V[`@Qa\x02;\x91\x90a\x07\x8EV[4\x80\x15a\x02\xA4W_\x80\xFD[P`\x01Ta\x02\xC5\x90s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01a\x02;V[4\x80\x15a\x02\xF5W_\x80\xFD[Pa\x02\xFE_T\x81V[`@Q\x90\x81R` \x01a\x02;V[4\x80\x15a\x03\x17W_\x80\xFD[Pa\x01\xD1a\x03&6`\x04a\x07\xE1V[a\x04\xB6V[4\x80\x15a\x036W_\x80\xFD[Pa\x01\xD1a\x03E6`\x04a\x07\xF8V[a\x05\xD8V[sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x18s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\x8D\xA5\xCB[`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x03\xA7W=_\x80>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x03\xCB\x91\x90a\x08\x1BV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x163s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14a\x04/W`@Q\x7F\x80{\x98 \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\x01`@Q\x80\x91\x03\x90\xFD[`\x01\x80Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x81\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x83\x16\x81\x17\x90\x93U`@\x80Q\x91\x90\x92\x16\x80\x82R` \x82\x01\x93\x90\x93R\x7Fb\xE6\x98\x86\xA5\xDF\x0B\xA8\xFF\xCA\xCB\xFC\x13\x88uNz\xBD\x9B\xDE$\xB065LV\x1F\x1A\xCDNE\x93\x91\x01[`@Q\x80\x91\x03\x90\xA1PPV[sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x18s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\x8D\xA5\xCB[`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x05\x13W=_\x80>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x057\x91\x90a\x08\x1BV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x163s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14a\x05\x9BW`@Q\x7F\x80{\x98 \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\x01`@Q\x80\x91\x03\x90\xFD[_\x80T\x90\x82\x90U`@\x80Q\x82\x81R` \x81\x01\x84\x90R\x7F\x89Z\x06|xX>\x80\x04\x18\xFA\xBF=\xA2j\x94\x96\xAA\xB2\xFF4)\xCE\xBD\xF7\xFE\xFAd+.B\x03\x91\x01a\x04\xAAV[sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x18s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\x8D\xA5\xCB[`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x065W=_\x80>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x06Y\x91\x90a\x08\x1BV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x163s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14a\x06\xBDW`@Q\x7F\x80{\x98 \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\x01`@Q\x80\x91\x03\x90\xFD[`\x01\x80Tc\xFF\xFF\xFF\xFF\x83\x81\x16t\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81\x81\x02\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x85\x16\x17\x90\x94U`@\x80Q\x94\x90\x93\x04\x90\x91\x16\x80\x84R` \x84\x01\x91\x90\x91R\x91\x7F\xD0\x0B\x9B*\xCB\0Y\xA2\0f\xCA\x19\xB5Aa\x81A\xC03\x05\xA0\xA6dMC'wX\xC59\xB5\xDE\x91\x01a\x04\xAAV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x07iW_\x80\xFD[PV[_` \x82\x84\x03\x12\x15a\x07|W_\x80\xFD[\x815a\x07\x87\x81a\x07HV[\x93\x92PPPV[` \x81R_\x82Q\x80` \x84\x01R\x80` \x85\x01`@\x85\x01^_`@\x82\x85\x01\x01R`@\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0`\x1F\x83\x01\x16\x84\x01\x01\x91PP\x92\x91PPV[_` \x82\x84\x03\x12\x15a\x07\xF1W_\x80\xFD[P5\x91\x90PV[_` \x82\x84\x03\x12\x15a\x08\x08W_\x80\xFD[\x815c\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x07\x87W_\x80\xFD[_` \x82\x84\x03\x12\x15a\x08+W_\x80\xFD[\x81Qa\x07\x87\x81a\x07HV\xFE\xA1dsolcC\0\x08\x19\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x608060405260043610610071575f3560e01c806366d003ac1161004c57806366d003ac146102995780638312f149146102ea57806385b5b14d1461030c5780639d7955b41461032b575f80fd5b80633bbed4a0146101d7578063500bf72f146101f657806354fd4d5014610244575f80fd5b366101d3576040805134815247602082018190529133917f363f315f930a17d1266b86a20d6dd34b1cfbc5a9db9f13a65d06a689c3a2af8a910160405180910390a25f5481106101d1576001546040517f3dbb202b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82166004820152606060248201525f60648201527401000000000000000000000000000000000000000090910463ffffffff16604482015273420000000000000000000000000000000000000790633dbb202b9083906084015f604051808303818588803b158015610169575f80fd5b505af115801561017b573d5f803e3d5ffd5b505060015460405185815273ffffffffffffffffffffffffffffffffffffffff90911693507f6d92f7d3303f995bf21956bb0c51b388bae348eaf45c23debd2cfa3fcd9ec6469250602001905060405180910390a25b005b5f80fd5b3480156101e2575f80fd5b506101d16101f136600461076c565b61034a565b348015610201575f80fd5b5060015461022a9074010000000000000000000000000000000000000000900463ffffffff1681565b60405163ffffffff90911681526020015b60405180910390f35b34801561024f575f80fd5b5061028c6040518060400160405280600581526020017f312e302e3000000000000000000000000000000000000000000000000000000081525081565b60405161023b919061078e565b3480156102a4575f80fd5b506001546102c59073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161023b565b3480156102f5575f80fd5b506102fe5f5481565b60405190815260200161023b565b348015610317575f80fd5b506101d16103263660046107e1565b6104b6565b348015610336575f80fd5b506101d16103453660046107f8565b6105d8565b73420000000000000000000000000000000000001873ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103a7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103cb919061081b565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461042f576040517f807b982000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff000000000000000000000000000000000000000083168117909355604080519190921680825260208201939093527f62e69886a5df0ba8ffcacbfc1388754e7abd9bde24b036354c561f1acd4e459391015b60405180910390a15050565b73420000000000000000000000000000000000001873ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610513573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610537919061081b565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461059b576040517f807b982000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f80549082905560408051828152602081018490527f895a067c78583e800418fabf3da26a9496aab2ff3429cebdf7fefa642b2e420391016104aa565b73420000000000000000000000000000000000001873ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610635573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610659919061081b565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146106bd576040517f807b982000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001805463ffffffff838116740100000000000000000000000000000000000000008181027fffffffffffffffff00000000ffffffffffffffffffffffffffffffffffffffff85161790945560408051949093049091168084526020840191909152917fd00b9b2acb0059a20066ca19b541618141c03305a0a6644d43277758c539b5de91016104aa565b73ffffffffffffffffffffffffffffffffffffffff81168114610769575f80fd5b50565b5f6020828403121561077c575f80fd5b813561078781610748565b9392505050565b602081525f82518060208401528060208501604085015e5f6040828501015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011684010191505092915050565b5f602082840312156107f1575f80fd5b5035919050565b5f60208284031215610808575f80fd5b813563ffffffff81168114610787575f80fd5b5f6020828403121561082b575f80fd5b81516107878161074856fea164736f6c6343000819000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R`\x046\x10a\0qW_5`\xE0\x1C\x80cf\xD0\x03\xAC\x11a\0LW\x80cf\xD0\x03\xAC\x14a\x02\x99W\x80c\x83\x12\xF1I\x14a\x02\xEAW\x80c\x85\xB5\xB1M\x14a\x03\x0CW\x80c\x9DyU\xB4\x14a\x03+W_\x80\xFD[\x80c;\xBE\xD4\xA0\x14a\x01\xD7W\x80cP\x0B\xF7/\x14a\x01\xF6W\x80cT\xFDMP\x14a\x02DW_\x80\xFD[6a\x01\xD3W`@\x80Q4\x81RG` \x82\x01\x81\x90R\x913\x91\x7F6?1_\x93\n\x17\xD1&k\x86\xA2\rm\xD3K\x1C\xFB\xC5\xA9\xDB\x9F\x13\xA6]\x06\xA6\x89\xC3\xA2\xAF\x8A\x91\x01`@Q\x80\x91\x03\x90\xA2_T\x81\x10a\x01\xD1W`\x01T`@Q\x7F=\xBB +\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\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16`\x04\x82\x01R```$\x82\x01R_`d\x82\x01Rt\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x91\x04c\xFF\xFF\xFF\xFF\x16`D\x82\x01RsB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x07\x90c=\xBB +\x90\x83\x90`\x84\x01_`@Q\x80\x83\x03\x81\x85\x88\x80;\x15\x80\x15a\x01iW_\x80\xFD[PZ\xF1\x15\x80\x15a\x01{W=_\x80>=_\xFD[PP`\x01T`@Q\x85\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x93P\x7Fm\x92\xF7\xD30?\x99[\xF2\x19V\xBB\x0CQ\xB3\x88\xBA\xE3H\xEA\xF4\\#\xDE\xBD,\xFA?\xCD\x9E\xC6F\x92P` \x01\x90P`@Q\x80\x91\x03\x90\xA2[\0[_\x80\xFD[4\x80\x15a\x01\xE2W_\x80\xFD[Pa\x01\xD1a\x01\xF16`\x04a\x07lV[a\x03JV[4\x80\x15a\x02\x01W_\x80\xFD[P`\x01Ta\x02*\x90t\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04c\xFF\xFF\xFF\xFF\x16\x81V[`@Qc\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[4\x80\x15a\x02OW_\x80\xFD[Pa\x02\x8C`@Q\x80`@\x01`@R\x80`\x05\x81R` \x01\x7F1.0.0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RP\x81V[`@Qa\x02;\x91\x90a\x07\x8EV[4\x80\x15a\x02\xA4W_\x80\xFD[P`\x01Ta\x02\xC5\x90s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01a\x02;V[4\x80\x15a\x02\xF5W_\x80\xFD[Pa\x02\xFE_T\x81V[`@Q\x90\x81R` \x01a\x02;V[4\x80\x15a\x03\x17W_\x80\xFD[Pa\x01\xD1a\x03&6`\x04a\x07\xE1V[a\x04\xB6V[4\x80\x15a\x036W_\x80\xFD[Pa\x01\xD1a\x03E6`\x04a\x07\xF8V[a\x05\xD8V[sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x18s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\x8D\xA5\xCB[`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x03\xA7W=_\x80>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x03\xCB\x91\x90a\x08\x1BV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x163s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14a\x04/W`@Q\x7F\x80{\x98 \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\x01`@Q\x80\x91\x03\x90\xFD[`\x01\x80Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x81\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x83\x16\x81\x17\x90\x93U`@\x80Q\x91\x90\x92\x16\x80\x82R` \x82\x01\x93\x90\x93R\x7Fb\xE6\x98\x86\xA5\xDF\x0B\xA8\xFF\xCA\xCB\xFC\x13\x88uNz\xBD\x9B\xDE$\xB065LV\x1F\x1A\xCDNE\x93\x91\x01[`@Q\x80\x91\x03\x90\xA1PPV[sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x18s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\x8D\xA5\xCB[`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x05\x13W=_\x80>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x057\x91\x90a\x08\x1BV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x163s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14a\x05\x9BW`@Q\x7F\x80{\x98 \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\x01`@Q\x80\x91\x03\x90\xFD[_\x80T\x90\x82\x90U`@\x80Q\x82\x81R` \x81\x01\x84\x90R\x7F\x89Z\x06|xX>\x80\x04\x18\xFA\xBF=\xA2j\x94\x96\xAA\xB2\xFF4)\xCE\xBD\xF7\xFE\xFAd+.B\x03\x91\x01a\x04\xAAV[sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x18s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\x8D\xA5\xCB[`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x065W=_\x80>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x06Y\x91\x90a\x08\x1BV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x163s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14a\x06\xBDW`@Q\x7F\x80{\x98 \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\x01`@Q\x80\x91\x03\x90\xFD[`\x01\x80Tc\xFF\xFF\xFF\xFF\x83\x81\x16t\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81\x81\x02\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x85\x16\x17\x90\x94U`@\x80Q\x94\x90\x93\x04\x90\x91\x16\x80\x84R` \x84\x01\x91\x90\x91R\x91\x7F\xD0\x0B\x9B*\xCB\0Y\xA2\0f\xCA\x19\xB5Aa\x81A\xC03\x05\xA0\xA6dMC'wX\xC59\xB5\xDE\x91\x01a\x04\xAAV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x07iW_\x80\xFD[PV[_` \x82\x84\x03\x12\x15a\x07|W_\x80\xFD[\x815a\x07\x87\x81a\x07HV[\x93\x92PPPV[` \x81R_\x82Q\x80` \x84\x01R\x80` \x85\x01`@\x85\x01^_`@\x82\x85\x01\x01R`@\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0`\x1F\x83\x01\x16\x84\x01\x01\x91PP\x92\x91PPV[_` \x82\x84\x03\x12\x15a\x07\xF1W_\x80\xFD[P5\x91\x90PV[_` \x82\x84\x03\x12\x15a\x08\x08W_\x80\xFD[\x815c\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x07\x87W_\x80\xFD[_` \x82\x84\x03\x12\x15a\x08+W_\x80\xFD[\x81Qa\x07\x87\x81a\x07HV\xFE\xA1dsolcC\0\x08\x19\0\n", + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `L1Withdrawer_OnlyProxyAdminOwner()` and selector `0x807b9820`. +```solidity +error L1Withdrawer_OnlyProxyAdminOwner(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct L1Withdrawer_OnlyProxyAdminOwner; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: L1Withdrawer_OnlyProxyAdminOwner) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for L1Withdrawer_OnlyProxyAdminOwner { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for L1Withdrawer_OnlyProxyAdminOwner { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "L1Withdrawer_OnlyProxyAdminOwner()"; + const SELECTOR: [u8; 4] = [128u8, 123u8, 152u8, 32u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `FundsReceived(address,uint256,uint256)` and selector `0x363f315f930a17d1266b86a20d6dd34b1cfbc5a9db9f13a65d06a689c3a2af8a`. +```solidity +event FundsReceived(address indexed sender, uint256 amount, uint256 newBalance); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct FundsReceived { + #[allow(missing_docs)] + pub sender: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub amount: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub newBalance: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for FundsReceived { + type DataTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + ); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "FundsReceived(address,uint256,uint256)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 54u8, 63u8, 49u8, 95u8, 147u8, 10u8, 23u8, 209u8, 38u8, 107u8, 134u8, + 162u8, 13u8, 109u8, 211u8, 75u8, 28u8, 251u8, 197u8, 169u8, 219u8, 159u8, + 19u8, 166u8, 93u8, 6u8, 166u8, 137u8, 195u8, 162u8, 175u8, 138u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + sender: topics.1, + amount: data.0, + newBalance: data.1, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.amount), + as alloy_sol_types::SolType>::tokenize(&self.newBalance), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.sender.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.sender, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for FundsReceived { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&FundsReceived> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &FundsReceived) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `MinWithdrawalAmountUpdated(uint256,uint256)` and selector `0x895a067c78583e800418fabf3da26a9496aab2ff3429cebdf7fefa642b2e4203`. +```solidity +event MinWithdrawalAmountUpdated(uint256 oldMinWithdrawalAmount, uint256 newMinWithdrawalAmount); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct MinWithdrawalAmountUpdated { + #[allow(missing_docs)] + pub oldMinWithdrawalAmount: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub newMinWithdrawalAmount: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for MinWithdrawalAmountUpdated { + type DataTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + ); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,); + const SIGNATURE: &'static str = "MinWithdrawalAmountUpdated(uint256,uint256)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 137u8, 90u8, 6u8, 124u8, 120u8, 88u8, 62u8, 128u8, 4u8, 24u8, 250u8, + 191u8, 61u8, 162u8, 106u8, 148u8, 150u8, 170u8, 178u8, 255u8, 52u8, 41u8, + 206u8, 189u8, 247u8, 254u8, 250u8, 100u8, 43u8, 46u8, 66u8, 3u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + oldMinWithdrawalAmount: data.0, + newMinWithdrawalAmount: data.1, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize( + &self.oldMinWithdrawalAmount, + ), + as alloy_sol_types::SolType>::tokenize( + &self.newMinWithdrawalAmount, + ), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(),) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for MinWithdrawalAmountUpdated { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&MinWithdrawalAmountUpdated> for alloy_sol_types::private::LogData { + #[inline] + fn from( + this: &MinWithdrawalAmountUpdated, + ) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `RecipientUpdated(address,address)` and selector `0x62e69886a5df0ba8ffcacbfc1388754e7abd9bde24b036354c561f1acd4e4593`. +```solidity +event RecipientUpdated(address oldRecipient, address newRecipient); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct RecipientUpdated { + #[allow(missing_docs)] + pub oldRecipient: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub newRecipient: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for RecipientUpdated { + type DataTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,); + const SIGNATURE: &'static str = "RecipientUpdated(address,address)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 98u8, 230u8, 152u8, 134u8, 165u8, 223u8, 11u8, 168u8, 255u8, 202u8, + 203u8, 252u8, 19u8, 136u8, 117u8, 78u8, 122u8, 189u8, 155u8, 222u8, 36u8, + 176u8, 54u8, 53u8, 76u8, 86u8, 31u8, 26u8, 205u8, 78u8, 69u8, 147u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + oldRecipient: data.0, + newRecipient: data.1, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + ::tokenize( + &self.oldRecipient, + ), + ::tokenize( + &self.newRecipient, + ), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(),) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for RecipientUpdated { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&RecipientUpdated> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &RecipientUpdated) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `WithdrawalGasLimitUpdated(uint32,uint32)` and selector `0xd00b9b2acb0059a20066ca19b541618141c03305a0a6644d43277758c539b5de`. +```solidity +event WithdrawalGasLimitUpdated(uint32 oldWithdrawalGasLimit, uint32 newWithdrawalGasLimit); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct WithdrawalGasLimitUpdated { + #[allow(missing_docs)] + pub oldWithdrawalGasLimit: u32, + #[allow(missing_docs)] + pub newWithdrawalGasLimit: u32, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for WithdrawalGasLimitUpdated { + type DataTuple<'a> = ( + alloy::sol_types::sol_data::Uint<32>, + alloy::sol_types::sol_data::Uint<32>, + ); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,); + const SIGNATURE: &'static str = "WithdrawalGasLimitUpdated(uint32,uint32)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 208u8, 11u8, 155u8, 42u8, 203u8, 0u8, 89u8, 162u8, 0u8, 102u8, 202u8, + 25u8, 181u8, 65u8, 97u8, 129u8, 65u8, 192u8, 51u8, 5u8, 160u8, 166u8, + 100u8, 77u8, 67u8, 39u8, 119u8, 88u8, 197u8, 57u8, 181u8, 222u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + oldWithdrawalGasLimit: data.0, + newWithdrawalGasLimit: data.1, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize( + &self.oldWithdrawalGasLimit, + ), + as alloy_sol_types::SolType>::tokenize(&self.newWithdrawalGasLimit), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(),) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for WithdrawalGasLimitUpdated { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&WithdrawalGasLimitUpdated> for alloy_sol_types::private::LogData { + #[inline] + fn from( + this: &WithdrawalGasLimitUpdated, + ) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `WithdrawalInitiated(address,uint256)` and selector `0x6d92f7d3303f995bf21956bb0c51b388bae348eaf45c23debd2cfa3fcd9ec646`. +```solidity +event WithdrawalInitiated(address indexed recipient, uint256 amount); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct WithdrawalInitiated { + #[allow(missing_docs)] + pub recipient: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub amount: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for WithdrawalInitiated { + type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "WithdrawalInitiated(address,uint256)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 109u8, 146u8, 247u8, 211u8, 48u8, 63u8, 153u8, 91u8, 242u8, 25u8, 86u8, + 187u8, 12u8, 81u8, 179u8, 136u8, 186u8, 227u8, 72u8, 234u8, 244u8, 92u8, + 35u8, 222u8, 189u8, 44u8, 250u8, 63u8, 205u8, 158u8, 198u8, 70u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + recipient: topics.1, + amount: data.0, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.amount), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.recipient.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.recipient, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for WithdrawalInitiated { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&WithdrawalInitiated> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &WithdrawalInitiated) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + /**Constructor`. +```solidity +constructor(uint256 _minWithdrawalAmount, address _recipient, uint32 _withdrawalGasLimit); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct constructorCall { + #[allow(missing_docs)] + pub _minWithdrawalAmount: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _recipient: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _withdrawalGasLimit: u32, + } + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<32>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::Address, + u32, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: constructorCall) -> Self { + ( + value._minWithdrawalAmount, + value._recipient, + value._withdrawalGasLimit, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for constructorCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _minWithdrawalAmount: tuple.0, + _recipient: tuple.1, + _withdrawalGasLimit: tuple.2, + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolConstructor for constructorCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<32>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._minWithdrawalAmount), + ::tokenize( + &self._recipient, + ), + as alloy_sol_types::SolType>::tokenize(&self._withdrawalGasLimit), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `minWithdrawalAmount()` and selector `0x8312f149`. +```solidity +function minWithdrawalAmount() external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct minWithdrawalAmountCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`minWithdrawalAmount()`](minWithdrawalAmountCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct minWithdrawalAmountReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: minWithdrawalAmountCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for minWithdrawalAmountCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: minWithdrawalAmountReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for minWithdrawalAmountReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for minWithdrawalAmountCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "minWithdrawalAmount()"; + const SELECTOR: [u8; 4] = [131u8, 18u8, 241u8, 73u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: minWithdrawalAmountReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: minWithdrawalAmountReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `recipient()` and selector `0x66d003ac`. +```solidity +function recipient() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct recipientCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`recipient()`](recipientCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct recipientReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: recipientCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for recipientCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: recipientReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for recipientReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for recipientCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "recipient()"; + const SELECTOR: [u8; 4] = [102u8, 208u8, 3u8, 172u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: recipientReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: recipientReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `setMinWithdrawalAmount(uint256)` and selector `0x85b5b14d`. +```solidity +function setMinWithdrawalAmount(uint256 _newMinWithdrawalAmount) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setMinWithdrawalAmountCall { + #[allow(missing_docs)] + pub _newMinWithdrawalAmount: alloy::sol_types::private::primitives::aliases::U256, + } + ///Container type for the return parameters of the [`setMinWithdrawalAmount(uint256)`](setMinWithdrawalAmountCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setMinWithdrawalAmountReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: setMinWithdrawalAmountCall) -> Self { + (value._newMinWithdrawalAmount,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for setMinWithdrawalAmountCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _newMinWithdrawalAmount: tuple.0, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: setMinWithdrawalAmountReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for setMinWithdrawalAmountReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl setMinWithdrawalAmountReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken< + '_, + > { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for setMinWithdrawalAmountCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = setMinWithdrawalAmountReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "setMinWithdrawalAmount(uint256)"; + const SELECTOR: [u8; 4] = [133u8, 181u8, 177u8, 77u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize( + &self._newMinWithdrawalAmount, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + setMinWithdrawalAmountReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `setRecipient(address)` and selector `0x3bbed4a0`. +```solidity +function setRecipient(address _newRecipient) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setRecipientCall { + #[allow(missing_docs)] + pub _newRecipient: alloy::sol_types::private::Address, + } + ///Container type for the return parameters of the [`setRecipient(address)`](setRecipientCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setRecipientReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: setRecipientCall) -> Self { + (value._newRecipient,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for setRecipientCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _newRecipient: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: setRecipientReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for setRecipientReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl setRecipientReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for setRecipientCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = setRecipientReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "setRecipient(address)"; + const SELECTOR: [u8; 4] = [59u8, 190u8, 212u8, 160u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._newRecipient, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + setRecipientReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `setWithdrawalGasLimit(uint32)` and selector `0x9d7955b4`. +```solidity +function setWithdrawalGasLimit(uint32 _newWithdrawalGasLimit) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setWithdrawalGasLimitCall { + #[allow(missing_docs)] + pub _newWithdrawalGasLimit: u32, + } + ///Container type for the return parameters of the [`setWithdrawalGasLimit(uint32)`](setWithdrawalGasLimitCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setWithdrawalGasLimitReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u32,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: setWithdrawalGasLimitCall) -> Self { + (value._newWithdrawalGasLimit,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for setWithdrawalGasLimitCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _newWithdrawalGasLimit: tuple.0, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: setWithdrawalGasLimitReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for setWithdrawalGasLimitReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl setWithdrawalGasLimitReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken< + '_, + > { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for setWithdrawalGasLimitCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Uint<32>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = setWithdrawalGasLimitReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "setWithdrawalGasLimit(uint32)"; + const SELECTOR: [u8; 4] = [157u8, 121u8, 85u8, 180u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize( + &self._newWithdrawalGasLimit, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + setWithdrawalGasLimitReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `version()` and selector `0x54fd4d50`. +```solidity +function version() external view returns (string memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`version()`](versionCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for versionCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::String; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "version()"; + const SELECTOR: [u8; 4] = [84u8, 253u8, 77u8, 80u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `withdrawalGasLimit()` and selector `0x500bf72f`. +```solidity +function withdrawalGasLimit() external view returns (uint32); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct withdrawalGasLimitCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`withdrawalGasLimit()`](withdrawalGasLimitCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct withdrawalGasLimitReturn { + #[allow(missing_docs)] + pub _0: u32, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: withdrawalGasLimitCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for withdrawalGasLimitCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u32,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: withdrawalGasLimitReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for withdrawalGasLimitReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for withdrawalGasLimitCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u32; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<32>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "withdrawalGasLimit()"; + const SELECTOR: [u8; 4] = [80u8, 11u8, 247u8, 47u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: withdrawalGasLimitReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: withdrawalGasLimitReturn = r.into(); + r._0 + }) + } + } + }; + ///Container for all the [`L1Withdrawer`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum L1WithdrawerCalls { + #[allow(missing_docs)] + minWithdrawalAmount(minWithdrawalAmountCall), + #[allow(missing_docs)] + recipient(recipientCall), + #[allow(missing_docs)] + setMinWithdrawalAmount(setMinWithdrawalAmountCall), + #[allow(missing_docs)] + setRecipient(setRecipientCall), + #[allow(missing_docs)] + setWithdrawalGasLimit(setWithdrawalGasLimitCall), + #[allow(missing_docs)] + version(versionCall), + #[allow(missing_docs)] + withdrawalGasLimit(withdrawalGasLimitCall), + } + impl L1WithdrawerCalls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [59u8, 190u8, 212u8, 160u8], + [80u8, 11u8, 247u8, 47u8], + [84u8, 253u8, 77u8, 80u8], + [102u8, 208u8, 3u8, 172u8], + [131u8, 18u8, 241u8, 73u8], + [133u8, 181u8, 177u8, 77u8], + [157u8, 121u8, 85u8, 180u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(setRecipient), + ::core::stringify!(withdrawalGasLimit), + ::core::stringify!(version), + ::core::stringify!(recipient), + ::core::stringify!(minWithdrawalAmount), + ::core::stringify!(setMinWithdrawalAmount), + ::core::stringify!(setWithdrawalGasLimit), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for L1WithdrawerCalls { + const NAME: &'static str = "L1WithdrawerCalls"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 7usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::minWithdrawalAmount(_) => { + ::SELECTOR + } + Self::recipient(_) => { + ::SELECTOR + } + Self::setMinWithdrawalAmount(_) => { + ::SELECTOR + } + Self::setRecipient(_) => { + ::SELECTOR + } + Self::setWithdrawalGasLimit(_) => { + ::SELECTOR + } + Self::version(_) => ::SELECTOR, + Self::withdrawalGasLimit(_) => { + ::SELECTOR + } + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn setRecipient( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L1WithdrawerCalls::setRecipient) + } + setRecipient + }, + { + fn withdrawalGasLimit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L1WithdrawerCalls::withdrawalGasLimit) + } + withdrawalGasLimit + }, + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(L1WithdrawerCalls::version) + } + version + }, + { + fn recipient( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(L1WithdrawerCalls::recipient) + } + recipient + }, + { + fn minWithdrawalAmount( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L1WithdrawerCalls::minWithdrawalAmount) + } + minWithdrawalAmount + }, + { + fn setMinWithdrawalAmount( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L1WithdrawerCalls::setMinWithdrawalAmount) + } + setMinWithdrawalAmount + }, + { + fn setWithdrawalGasLimit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L1WithdrawerCalls::setWithdrawalGasLimit) + } + setWithdrawalGasLimit + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn setRecipient( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1WithdrawerCalls::setRecipient) + } + setRecipient + }, + { + fn withdrawalGasLimit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1WithdrawerCalls::withdrawalGasLimit) + } + withdrawalGasLimit + }, + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1WithdrawerCalls::version) + } + version + }, + { + fn recipient( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1WithdrawerCalls::recipient) + } + recipient + }, + { + fn minWithdrawalAmount( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1WithdrawerCalls::minWithdrawalAmount) + } + minWithdrawalAmount + }, + { + fn setMinWithdrawalAmount( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1WithdrawerCalls::setMinWithdrawalAmount) + } + setMinWithdrawalAmount + }, + { + fn setWithdrawalGasLimit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1WithdrawerCalls::setWithdrawalGasLimit) + } + setWithdrawalGasLimit + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::minWithdrawalAmount(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::recipient(inner) => { + ::abi_encoded_size(inner) + } + Self::setMinWithdrawalAmount(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::setRecipient(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::setWithdrawalGasLimit(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::version(inner) => { + ::abi_encoded_size(inner) + } + Self::withdrawalGasLimit(inner) => { + ::abi_encoded_size( + inner, + ) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::minWithdrawalAmount(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::recipient(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::setMinWithdrawalAmount(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::setRecipient(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::setWithdrawalGasLimit(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::version(inner) => { + ::abi_encode_raw(inner, out) + } + Self::withdrawalGasLimit(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + } + } + } + ///Container for all the [`L1Withdrawer`](self) custom errors. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum L1WithdrawerErrors { + #[allow(missing_docs)] + L1Withdrawer_OnlyProxyAdminOwner(L1Withdrawer_OnlyProxyAdminOwner), + } + impl L1WithdrawerErrors { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[[128u8, 123u8, 152u8, 32u8]]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(L1Withdrawer_OnlyProxyAdminOwner), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for L1WithdrawerErrors { + const NAME: &'static str = "L1WithdrawerErrors"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 1usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::L1Withdrawer_OnlyProxyAdminOwner(_) => { + ::SELECTOR + } + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn L1Withdrawer_OnlyProxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L1WithdrawerErrors::L1Withdrawer_OnlyProxyAdminOwner) + } + L1Withdrawer_OnlyProxyAdminOwner + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn L1Withdrawer_OnlyProxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1WithdrawerErrors::L1Withdrawer_OnlyProxyAdminOwner) + } + L1Withdrawer_OnlyProxyAdminOwner + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::L1Withdrawer_OnlyProxyAdminOwner(inner) => { + ::abi_encoded_size( + inner, + ) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::L1Withdrawer_OnlyProxyAdminOwner(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + } + } + } + ///Container for all the [`L1Withdrawer`](self) events. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum L1WithdrawerEvents { + #[allow(missing_docs)] + FundsReceived(FundsReceived), + #[allow(missing_docs)] + MinWithdrawalAmountUpdated(MinWithdrawalAmountUpdated), + #[allow(missing_docs)] + RecipientUpdated(RecipientUpdated), + #[allow(missing_docs)] + WithdrawalGasLimitUpdated(WithdrawalGasLimitUpdated), + #[allow(missing_docs)] + WithdrawalInitiated(WithdrawalInitiated), + } + impl L1WithdrawerEvents { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 32usize]] = &[ + [ + 54u8, 63u8, 49u8, 95u8, 147u8, 10u8, 23u8, 209u8, 38u8, 107u8, 134u8, + 162u8, 13u8, 109u8, 211u8, 75u8, 28u8, 251u8, 197u8, 169u8, 219u8, 159u8, + 19u8, 166u8, 93u8, 6u8, 166u8, 137u8, 195u8, 162u8, 175u8, 138u8, + ], + [ + 98u8, 230u8, 152u8, 134u8, 165u8, 223u8, 11u8, 168u8, 255u8, 202u8, + 203u8, 252u8, 19u8, 136u8, 117u8, 78u8, 122u8, 189u8, 155u8, 222u8, 36u8, + 176u8, 54u8, 53u8, 76u8, 86u8, 31u8, 26u8, 205u8, 78u8, 69u8, 147u8, + ], + [ + 109u8, 146u8, 247u8, 211u8, 48u8, 63u8, 153u8, 91u8, 242u8, 25u8, 86u8, + 187u8, 12u8, 81u8, 179u8, 136u8, 186u8, 227u8, 72u8, 234u8, 244u8, 92u8, + 35u8, 222u8, 189u8, 44u8, 250u8, 63u8, 205u8, 158u8, 198u8, 70u8, + ], + [ + 137u8, 90u8, 6u8, 124u8, 120u8, 88u8, 62u8, 128u8, 4u8, 24u8, 250u8, + 191u8, 61u8, 162u8, 106u8, 148u8, 150u8, 170u8, 178u8, 255u8, 52u8, 41u8, + 206u8, 189u8, 247u8, 254u8, 250u8, 100u8, 43u8, 46u8, 66u8, 3u8, + ], + [ + 208u8, 11u8, 155u8, 42u8, 203u8, 0u8, 89u8, 162u8, 0u8, 102u8, 202u8, + 25u8, 181u8, 65u8, 97u8, 129u8, 65u8, 192u8, 51u8, 5u8, 160u8, 166u8, + 100u8, 77u8, 67u8, 39u8, 119u8, 88u8, 197u8, 57u8, 181u8, 222u8, + ], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(FundsReceived), + ::core::stringify!(RecipientUpdated), + ::core::stringify!(WithdrawalInitiated), + ::core::stringify!(MinWithdrawalAmountUpdated), + ::core::stringify!(WithdrawalGasLimitUpdated), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolEventInterface for L1WithdrawerEvents { + const NAME: &'static str = "L1WithdrawerEvents"; + const COUNT: usize = 5usize; + fn decode_raw_log( + topics: &[alloy_sol_types::Word], + data: &[u8], + ) -> alloy_sol_types::Result { + match topics.first().copied() { + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::FundsReceived) + } + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::MinWithdrawalAmountUpdated) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::RecipientUpdated) + } + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::WithdrawalGasLimitUpdated) + } + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::WithdrawalInitiated) + } + _ => { + alloy_sol_types::private::Err(alloy_sol_types::Error::InvalidLog { + name: ::NAME, + log: alloy_sol_types::private::Box::new( + alloy_sol_types::private::LogData::new_unchecked( + topics.to_vec(), + data.to_vec().into(), + ), + ), + }) + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for L1WithdrawerEvents { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + match self { + Self::FundsReceived(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::MinWithdrawalAmountUpdated(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::RecipientUpdated(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::WithdrawalGasLimitUpdated(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::WithdrawalInitiated(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + } + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + match self { + Self::FundsReceived(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::MinWithdrawalAmountUpdated(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::RecipientUpdated(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::WithdrawalGasLimitUpdated(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::WithdrawalInitiated(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`L1Withdrawer`](self) contract instance. + +See the [wrapper's documentation](`L1WithdrawerInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> L1WithdrawerInstance { + L1WithdrawerInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + _minWithdrawalAmount: alloy::sol_types::private::primitives::aliases::U256, + _recipient: alloy::sol_types::private::Address, + _withdrawalGasLimit: u32, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + L1WithdrawerInstance::< + P, + N, + >::deploy(__provider, _minWithdrawalAmount, _recipient, _withdrawalGasLimit) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + _minWithdrawalAmount: alloy::sol_types::private::primitives::aliases::U256, + _recipient: alloy::sol_types::private::Address, + _withdrawalGasLimit: u32, + ) -> alloy_contract::RawCallBuilder { + L1WithdrawerInstance::< + P, + N, + >::deploy_builder( + __provider, + _minWithdrawalAmount, + _recipient, + _withdrawalGasLimit, + ) + } + /**A [`L1Withdrawer`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`L1Withdrawer`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct L1WithdrawerInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for L1WithdrawerInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("L1WithdrawerInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > L1WithdrawerInstance { + /**Creates a new wrapper around an on-chain [`L1Withdrawer`](self) contract instance. + +See the [wrapper's documentation](`L1WithdrawerInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + _minWithdrawalAmount: alloy::sol_types::private::primitives::aliases::U256, + _recipient: alloy::sol_types::private::Address, + _withdrawalGasLimit: u32, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder( + __provider, + _minWithdrawalAmount, + _recipient, + _withdrawalGasLimit, + ); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder( + __provider: P, + _minWithdrawalAmount: alloy::sol_types::private::primitives::aliases::U256, + _recipient: alloy::sol_types::private::Address, + _withdrawalGasLimit: u32, + ) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + [ + &BYTECODE[..], + &alloy_sol_types::SolConstructor::abi_encode( + &constructorCall { + _minWithdrawalAmount, + _recipient, + _withdrawalGasLimit, + }, + )[..], + ] + .concat() + .into(), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl L1WithdrawerInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> L1WithdrawerInstance { + L1WithdrawerInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > L1WithdrawerInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`minWithdrawalAmount`] function. + pub fn minWithdrawalAmount( + &self, + ) -> alloy_contract::SolCallBuilder<&P, minWithdrawalAmountCall, N> { + self.call_builder(&minWithdrawalAmountCall) + } + ///Creates a new call builder for the [`recipient`] function. + pub fn recipient(&self) -> alloy_contract::SolCallBuilder<&P, recipientCall, N> { + self.call_builder(&recipientCall) + } + ///Creates a new call builder for the [`setMinWithdrawalAmount`] function. + pub fn setMinWithdrawalAmount( + &self, + _newMinWithdrawalAmount: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, setMinWithdrawalAmountCall, N> { + self.call_builder( + &setMinWithdrawalAmountCall { + _newMinWithdrawalAmount, + }, + ) + } + ///Creates a new call builder for the [`setRecipient`] function. + pub fn setRecipient( + &self, + _newRecipient: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, setRecipientCall, N> { + self.call_builder(&setRecipientCall { _newRecipient }) + } + ///Creates a new call builder for the [`setWithdrawalGasLimit`] function. + pub fn setWithdrawalGasLimit( + &self, + _newWithdrawalGasLimit: u32, + ) -> alloy_contract::SolCallBuilder<&P, setWithdrawalGasLimitCall, N> { + self.call_builder( + &setWithdrawalGasLimitCall { + _newWithdrawalGasLimit, + }, + ) + } + ///Creates a new call builder for the [`version`] function. + pub fn version(&self) -> alloy_contract::SolCallBuilder<&P, versionCall, N> { + self.call_builder(&versionCall) + } + ///Creates a new call builder for the [`withdrawalGasLimit`] function. + pub fn withdrawalGasLimit( + &self, + ) -> alloy_contract::SolCallBuilder<&P, withdrawalGasLimitCall, N> { + self.call_builder(&withdrawalGasLimitCall) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > L1WithdrawerInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + ///Creates a new event filter for the [`FundsReceived`] event. + pub fn FundsReceived_filter( + &self, + ) -> alloy_contract::Event<&P, FundsReceived, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`MinWithdrawalAmountUpdated`] event. + pub fn MinWithdrawalAmountUpdated_filter( + &self, + ) -> alloy_contract::Event<&P, MinWithdrawalAmountUpdated, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`RecipientUpdated`] event. + pub fn RecipientUpdated_filter( + &self, + ) -> alloy_contract::Event<&P, RecipientUpdated, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`WithdrawalGasLimitUpdated`] event. + pub fn WithdrawalGasLimitUpdated_filter( + &self, + ) -> alloy_contract::Event<&P, WithdrawalGasLimitUpdated, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`WithdrawalInitiated`] event. + pub fn WithdrawalInitiated_filter( + &self, + ) -> alloy_contract::Event<&P, WithdrawalInitiated, N> { + self.event_filter::() + } + } +} diff --git a/bindings/rust/src/l1erc721_bridge.rs b/bindings/rust/src/l1erc721_bridge.rs new file mode 100644 index 000000000..686eafebb --- /dev/null +++ b/bindings/rust/src/l1erc721_bridge.rs @@ -0,0 +1,5696 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface L1ERC721Bridge { + error ProxyAdminOwnedBase_NotProxyAdmin(); + error ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner(); + error ProxyAdminOwnedBase_NotProxyAdminOwner(); + error ProxyAdminOwnedBase_NotResolvedDelegateProxy(); + error ProxyAdminOwnedBase_NotSharedProxyAdminOwner(); + error ProxyAdminOwnedBase_ProxyAdminNotFound(); + error ReinitializableBase_ZeroInitVersion(); + + event ERC721BridgeFinalized(address indexed localToken, address indexed remoteToken, address indexed from, address to, uint256 tokenId, bytes extraData); + event ERC721BridgeInitiated(address indexed localToken, address indexed remoteToken, address indexed from, address to, uint256 tokenId, bytes extraData); + event Initialized(uint8 version); + + constructor(); + + function MESSENGER() external view returns (address); + function OTHER_BRIDGE() external view returns (address); + function bridgeERC721(address _localToken, address _remoteToken, uint256 _tokenId, uint32 _minGasLimit, bytes memory _extraData) external; + function bridgeERC721To(address _localToken, address _remoteToken, address _to, uint256 _tokenId, uint32 _minGasLimit, bytes memory _extraData) external; + function deposits(address, address, uint256) external view returns (bool); + function finalizeBridgeERC721(address _localToken, address _remoteToken, address _from, address _to, uint256 _tokenId, bytes memory _extraData) external; + function initVersion() external view returns (uint8); + function initialize(address _messenger, address _systemConfig) external; + function messenger() external view returns (address); + function otherBridge() external view returns (address); + function paused() external view returns (bool); + function proxyAdmin() external view returns (address); + function proxyAdminOwner() external view returns (address); + function superchainConfig() external view returns (address); + function systemConfig() external view returns (address); + function version() external view returns (string memory); +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "constructor", + "inputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "MESSENGER", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract ICrossDomainMessenger" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "OTHER_BRIDGE", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract ERC721Bridge" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "bridgeERC721", + "inputs": [ + { + "name": "_localToken", + "type": "address", + "internalType": "address" + }, + { + "name": "_remoteToken", + "type": "address", + "internalType": "address" + }, + { + "name": "_tokenId", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_minGasLimit", + "type": "uint32", + "internalType": "uint32" + }, + { + "name": "_extraData", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "bridgeERC721To", + "inputs": [ + { + "name": "_localToken", + "type": "address", + "internalType": "address" + }, + { + "name": "_remoteToken", + "type": "address", + "internalType": "address" + }, + { + "name": "_to", + "type": "address", + "internalType": "address" + }, + { + "name": "_tokenId", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_minGasLimit", + "type": "uint32", + "internalType": "uint32" + }, + { + "name": "_extraData", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "deposits", + "inputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + }, + { + "name": "", + "type": "address", + "internalType": "address" + }, + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "finalizeBridgeERC721", + "inputs": [ + { + "name": "_localToken", + "type": "address", + "internalType": "address" + }, + { + "name": "_remoteToken", + "type": "address", + "internalType": "address" + }, + { + "name": "_from", + "type": "address", + "internalType": "address" + }, + { + "name": "_to", + "type": "address", + "internalType": "address" + }, + { + "name": "_tokenId", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_extraData", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "initVersion", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint8", + "internalType": "uint8" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "initialize", + "inputs": [ + { + "name": "_messenger", + "type": "address", + "internalType": "contract ICrossDomainMessenger" + }, + { + "name": "_systemConfig", + "type": "address", + "internalType": "contract ISystemConfig" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "messenger", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract ICrossDomainMessenger" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "otherBridge", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract ERC721Bridge" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "paused", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "proxyAdmin", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract IProxyAdmin" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "proxyAdminOwner", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "superchainConfig", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract ISuperchainConfig" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "systemConfig", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract ISystemConfig" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "version", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "view" + }, + { + "type": "event", + "name": "ERC721BridgeFinalized", + "inputs": [ + { + "name": "localToken", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "remoteToken", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "from", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "to", + "type": "address", + "indexed": false, + "internalType": "address" + }, + { + "name": "tokenId", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + }, + { + "name": "extraData", + "type": "bytes", + "indexed": false, + "internalType": "bytes" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "ERC721BridgeInitiated", + "inputs": [ + { + "name": "localToken", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "remoteToken", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "from", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "to", + "type": "address", + "indexed": false, + "internalType": "address" + }, + { + "name": "tokenId", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + }, + { + "name": "extraData", + "type": "bytes", + "indexed": false, + "internalType": "bytes" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "Initialized", + "inputs": [ + { + "name": "version", + "type": "uint8", + "indexed": false, + "internalType": "uint8" + } + ], + "anonymous": false + }, + { + "type": "error", + "name": "ProxyAdminOwnedBase_NotProxyAdmin", + "inputs": [] + }, + { + "type": "error", + "name": "ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner", + "inputs": [] + }, + { + "type": "error", + "name": "ProxyAdminOwnedBase_NotProxyAdminOwner", + "inputs": [] + }, + { + "type": "error", + "name": "ProxyAdminOwnedBase_NotResolvedDelegateProxy", + "inputs": [] + }, + { + "type": "error", + "name": "ProxyAdminOwnedBase_NotSharedProxyAdminOwner", + "inputs": [] + }, + { + "type": "error", + "name": "ProxyAdminOwnedBase_ProxyAdminNotFound", + "inputs": [] + }, + { + "type": "error", + "name": "ReinitializableBase_ZeroInitVersion", + "inputs": [] + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod L1ERC721Bridge { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x60a060405234801561001057600080fd5b50600360805261001e610023565b6100e3565b600054610100900460ff161561008f5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811610156100e1576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b60805161182a61010560003960008181610173015261064e015261182a6000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c80635c975abb11610097578063927ede2d11610066578063927ede2d1461029e578063aa557452146102bc578063c89701a2146102cf578063dad544e0146102ef57600080fd5b80635c975abb146102215780635d93a3fc14610239578063761f44931461026d5780637f46ddb21461028057600080fd5b80633cb747bf116100d35780633cb747bf1461019d5780633e47158c146101bd578063485cc955146101c557806354fd4d50146101d857600080fd5b806333d7e2bd1461010557806335e80ab31461014f5780633687011a1461015757806338d38c971461016c575b600080fd5b6033546101259073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b6101256102f7565b61016a6101653660046113be565b610390565b005b60405160ff7f0000000000000000000000000000000000000000000000000000000000000000168152602001610146565b6001546101259073ffffffffffffffffffffffffffffffffffffffff1681565b610125610441565b61016a6101d3366004611441565b61064c565b6102146040518060400160405280600581526020017f322e392e3000000000000000000000000000000000000000000000000000000081525081565b60405161014691906114e5565b610229610812565b6040519015158152602001610146565b6102296102473660046114ff565b603160209081526000938452604080852082529284528284209052825290205460ff1681565b61016a61027b366004611540565b6108a6565b60025473ffffffffffffffffffffffffffffffffffffffff16610125565b60015473ffffffffffffffffffffffffffffffffffffffff16610125565b61016a6102ca3660046115d8565b610d4d565b6002546101259073ffffffffffffffffffffffffffffffffffffffff1681565b610125610e09565b603354604080517f35e80ab3000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff16916335e80ab39160048083019260209291908290030181865afa158015610367573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061038b919061164f565b905090565b610398610e5d565b610429576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f4552433732314272696467653a206163636f756e74206973206e6f742065787460448201527f65726e616c6c79206f776e65640000000000000000000000000000000000000060648201526084015b60405180910390fd5b6104398686333388888888610e9a565b505050505050565b60008061046c7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b905073ffffffffffffffffffffffffffffffffffffffff81161561048f57919050565b6040518060400160405280601a81526020017f4f564d5f4c3143726f7373446f6d61696e4d657373656e6765720000000000008152505160026104d2919061166c565b604080513060208201526000918101919091527f4f564d5f4c3143726f7373446f6d61696e4d657373656e676572000000000000919091179061052d906060015b604051602081830303815290604052805190602001205490565b14610564576040517f54e433cd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805130602082015260019181019190915260009061058690606001610513565b905073ffffffffffffffffffffffffffffffffffffffff81161561061a578073ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105ef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610613919061164f565b9250505090565b6040517f332144db00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f0000000000000000000000000000000000000000000000000000000000000000600054610100900460ff1615801561068c575060005460ff8083169116105b610718576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610420565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001660ff8316176101001790556107516111ca565b603380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84161790556107af8373420000000000000000000000000000000000001461124d565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050565b603354604080517f5c975abb000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff1691635c975abb9160048083019260209291908290030181865afa158015610882573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061038b91906116d0565b60015473ffffffffffffffffffffffffffffffffffffffff163314801561097b5750600254600154604080517f6e296e45000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff9384169390921691636e296e45916004808201926020929091908290030181865afa15801561093f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610963919061164f565b73ffffffffffffffffffffffffffffffffffffffff16145b610a07576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603f60248201527f4552433732314272696467653a2066756e6374696f6e2063616e206f6e6c792060448201527f62652063616c6c65642066726f6d20746865206f7468657220627269646765006064820152608401610420565b610a0f610812565b15610a76576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4c314552433732314272696467653a20706175736564000000000000000000006044820152606401610420565b3073ffffffffffffffffffffffffffffffffffffffff881603610b1b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f4c314552433732314272696467653a206c6f63616c20746f6b656e2063616e6e60448201527f6f742062652073656c66000000000000000000000000000000000000000000006064820152608401610420565b73ffffffffffffffffffffffffffffffffffffffff8088166000908152603160209081526040808320938a1683529281528282208683529052205460ff161515600114610bea576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603960248201527f4c314552433732314272696467653a20546f6b656e204944206973206e6f742060448201527f657363726f77656420696e20746865204c3120427269646765000000000000006064820152608401610420565b73ffffffffffffffffffffffffffffffffffffffff87811660008181526031602090815260408083208b8616845282528083208884529091529081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055517f42842e0e000000000000000000000000000000000000000000000000000000008152306004820152918616602483015260448201859052906342842e0e90606401600060405180830381600087803b158015610caa57600080fd5b505af1158015610cbe573d6000803e3d6000fd5b505050508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167f1f39bf6707b5d608453e0ae4c067b562bcc4c85c0f562ef5d2c774d2e7f131ac87878787604051610d3c949392919061173b565b60405180910390a450505050505050565b73ffffffffffffffffffffffffffffffffffffffff8516610df0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f4552433732314272696467653a206e667420726563697069656e742063616e6e60448201527f6f742062652061646472657373283029000000000000000000000000000000006064820152608401610420565b610e008787338888888888610e9a565b50505050505050565b6000610e13610441565b73ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610367573d6000803e3d6000fd5b6000323303610e6c5750600190565b333b601703610e9457604051602081016040526020600082333c5160e81c62ef010014905090565b50600090565b73ffffffffffffffffffffffffffffffffffffffff8716610f3d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603160248201527f4c314552433732314272696467653a2072656d6f746520746f6b656e2063616e60448201527f6e6f7420626520616464726573732830290000000000000000000000000000006064820152608401610420565b600087898888888787604051602401610f5c979695949392919061177b565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f761f44930000000000000000000000000000000000000000000000000000000017905273ffffffffffffffffffffffffffffffffffffffff8c81166000818152603184528481208e8416825284528481208b82529093529183902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905591517f23b872dd000000000000000000000000000000000000000000000000000000008152918a166004830152306024830152604482018890529192506323b872dd90606401600060405180830381600087803b15801561109457600080fd5b505af11580156110a8573d6000803e3d6000fd5b50506001546002546040517f3dbb202b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9283169450633dbb202b935061110b9290911690859089906004016117d8565b600060405180830381600087803b15801561112557600080fd5b505af1158015611139573d6000803e3d6000fd5b505050508673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167fb7460e2a880f256ebef3406116ff3eee0cee51ebccdc2a40698f87ebb2e9c1a5898988886040516111b7949392919061173b565b60405180910390a4505050505050505050565b336111d3610441565b73ffffffffffffffffffffffffffffffffffffffff16141580156112145750336111fb610e09565b73ffffffffffffffffffffffffffffffffffffffff1614155b1561124b576040517fc4050a2600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b600054610100900460ff166112e4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610420565b6001805473ffffffffffffffffffffffffffffffffffffffff9384167fffffffffffffffffffffffff00000000000000000000000000000000000000009182161790915560028054929093169116179055565b73ffffffffffffffffffffffffffffffffffffffff8116811461135957600080fd5b50565b803563ffffffff8116811461137057600080fd5b919050565b60008083601f84011261138757600080fd5b50813567ffffffffffffffff81111561139f57600080fd5b6020830191508360208285010111156113b757600080fd5b9250929050565b60008060008060008060a087890312156113d757600080fd5b86356113e281611337565b955060208701356113f281611337565b9450604087013593506114076060880161135c565b9250608087013567ffffffffffffffff81111561142357600080fd5b61142f89828a01611375565b979a9699509497509295939492505050565b6000806040838503121561145457600080fd5b823561145f81611337565b9150602083013561146f81611337565b809150509250929050565b6000815180845260005b818110156114a057602081850181015186830182015201611484565b818111156114b2576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006114f8602083018461147a565b9392505050565b60008060006060848603121561151457600080fd5b833561151f81611337565b9250602084013561152f81611337565b929592945050506040919091013590565b600080600080600080600060c0888a03121561155b57600080fd5b873561156681611337565b9650602088013561157681611337565b9550604088013561158681611337565b9450606088013561159681611337565b93506080880135925060a088013567ffffffffffffffff8111156115b957600080fd5b6115c58a828b01611375565b989b979a50959850939692959293505050565b600080600080600080600060c0888a0312156115f357600080fd5b87356115fe81611337565b9650602088013561160e81611337565b9550604088013561161e81611337565b9450606088013593506116336080890161135c565b925060a088013567ffffffffffffffff8111156115b957600080fd5b60006020828403121561166157600080fd5b81516114f881611337565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156116cb577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b500290565b6000602082840312156116e257600080fd5b815180151581146114f857600080fd5b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b73ffffffffffffffffffffffffffffffffffffffff851681528360208201526060604082015260006117716060830184866116f2565b9695505050505050565b600073ffffffffffffffffffffffffffffffffffffffff808a1683528089166020840152808816604084015280871660608401525084608083015260c060a08301526117cb60c0830184866116f2565b9998505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff84168152606060208201526000611807606083018561147a565b905063ffffffff8316604083015294935050505056fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\xA0`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`\x03`\x80Ra\0\x1Ea\0#V[a\0\xE3V[`\0Ta\x01\0\x90\x04`\xFF\x16\x15a\0\x8FW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`'`$\x82\x01R\x7FInitializable: contract is initi`D\x82\x01Rfalizing`\xC8\x1B`d\x82\x01R`\x84\x01`@Q\x80\x91\x03\x90\xFD[`\0T`\xFF\x90\x81\x16\x10\x15a\0\xE1W`\0\x80T`\xFF\x19\x16`\xFF\x90\x81\x17\x90\x91U`@Q\x90\x81R\x7F\x7F&\xB8?\xF9n\x1F+jh/\x138R\xF6y\x8A\t\xC4e\xDA\x95\x92\x14`\xCE\xFB8G@$\x98\x90` \x01`@Q\x80\x91\x03\x90\xA1[V[`\x80Qa\x18*a\x01\x05`\09`\0\x81\x81a\x01s\x01Ra\x06N\x01Ra\x18*`\0\xF3\xFE`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`\x046\x10a\x01\0W`\x005`\xE0\x1C\x80c\\\x97Z\xBB\x11a\0\x97W\x80c\x92~\xDE-\x11a\0fW\x80c\x92~\xDE-\x14a\x02\x9EW\x80c\xAAUtR\x14a\x02\xBCW\x80c\xC8\x97\x01\xA2\x14a\x02\xCFW\x80c\xDA\xD5D\xE0\x14a\x02\xEFW`\0\x80\xFD[\x80c\\\x97Z\xBB\x14a\x02!W\x80c]\x93\xA3\xFC\x14a\x029W\x80cv\x1FD\x93\x14a\x02mW\x80c\x7FF\xDD\xB2\x14a\x02\x80W`\0\x80\xFD[\x80c<\xB7G\xBF\x11a\0\xD3W\x80c<\xB7G\xBF\x14a\x01\x9DW\x80c>G\x15\x8C\x14a\x01\xBDW\x80cH\\\xC9U\x14a\x01\xC5W\x80cT\xFDMP\x14a\x01\xD8W`\0\x80\xFD[\x80c3\xD7\xE2\xBD\x14a\x01\x05W\x80c5\xE8\n\xB3\x14a\x01OW\x80c6\x87\x01\x1A\x14a\x01WW\x80c8\xD3\x8C\x97\x14a\x01lW[`\0\x80\xFD[`3Ta\x01%\x90s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[a\x01%a\x02\xF7V[a\x01ja\x01e6`\x04a\x13\xBEV[a\x03\x90V[\0[`@Q`\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x81R` \x01a\x01FV[`\x01Ta\x01%\x90s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[a\x01%a\x04AV[a\x01ja\x01\xD36`\x04a\x14AV[a\x06LV[a\x02\x14`@Q\x80`@\x01`@R\x80`\x05\x81R` \x01\x7F2.9.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\x81RP\x81V[`@Qa\x01F\x91\x90a\x14\xE5V[a\x02)a\x08\x12V[`@Q\x90\x15\x15\x81R` \x01a\x01FV[a\x02)a\x02G6`\x04a\x14\xFFV[`1` \x90\x81R`\0\x93\x84R`@\x80\x85 \x82R\x92\x84R\x82\x84 \x90R\x82R\x90 T`\xFF\x16\x81V[a\x01ja\x02{6`\x04a\x15@V[a\x08\xA6V[`\x02Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a\x01%V[`\x01Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a\x01%V[a\x01ja\x02\xCA6`\x04a\x15\xD8V[a\rMV[`\x02Ta\x01%\x90s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[a\x01%a\x0E\tV[`3T`@\x80Q\x7F5\xE8\n\xB3\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\x90Q`\0\x92s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x91c5\xE8\n\xB3\x91`\x04\x80\x83\x01\x92` \x92\x91\x90\x82\x90\x03\x01\x81\x86Z\xFA\x15\x80\x15a\x03gW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x03\x8B\x91\x90a\x16OV[\x90P\x90V[a\x03\x98a\x0E]V[a\x04)W`@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\x82\x01R`-`$\x82\x01R\x7FERC721Bridge: account is not ext`D\x82\x01R\x7Fernally owned\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01[`@Q\x80\x91\x03\x90\xFD[a\x049\x86\x8633\x88\x88\x88\x88a\x0E\x9AV[PPPPPPV[`\0\x80a\x04l\x7F\xB51'hJV\x8B1s\xAE\x13\xB9\xF8\xA6\x01n$>c\xB6\xE8\xEE\x11x\xD6\xA7\x17\x85\x0B]a\x03T\x90V[\x90Ps\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x15a\x04\x8FW\x91\x90PV[`@Q\x80`@\x01`@R\x80`\x1A\x81R` \x01\x7FOVM_L1CrossDomainMessenger\0\0\0\0\0\0\x81RPQ`\x02a\x04\xD2\x91\x90a\x16lV[`@\x80Q0` \x82\x01R`\0\x91\x81\x01\x91\x90\x91R\x7FOVM_L1CrossDomainMessenger\0\0\0\0\0\0\x91\x90\x91\x17\x90a\x05-\x90``\x01[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 T\x90V[\x14a\x05dW`@Q\x7FT\xE43\xCD\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\x01`@Q\x80\x91\x03\x90\xFD[`@\x80Q0` \x82\x01R`\x01\x91\x81\x01\x91\x90\x91R`\0\x90a\x05\x86\x90``\x01a\x05\x13V[\x90Ps\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x15a\x06\x1AW\x80s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\x8D\xA5\xCB[`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x05\xEFW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x06\x13\x91\x90a\x16OV[\x92PPP\x90V[`@Q\x7F3!D\xDB\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\x01`@Q\x80\x91\x03\x90\xFD[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\0Ta\x01\0\x90\x04`\xFF\x16\x15\x80\x15a\x06\x8CWP`\0T`\xFF\x80\x83\x16\x91\x16\x10[a\x07\x18W`@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\x82\x01R`.`$\x82\x01R\x7FInitializable: contract is alrea`D\x82\x01R\x7Fdy initialized\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x04 V[`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\x16`\xFF\x83\x16\x17a\x01\0\x17\x90Ua\x07Qa\x11\xCAV[`3\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x16\x17\x90Ua\x07\xAF\x83sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x14a\x12MV[`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\x16\x90U`@Q`\xFF\x82\x16\x81R\x7F\x7F&\xB8?\xF9n\x1F+jh/\x138R\xF6y\x8A\t\xC4e\xDA\x95\x92\x14`\xCE\xFB8G@$\x98\x90` \x01`@Q\x80\x91\x03\x90\xA1PPPV[`3T`@\x80Q\x7F\\\x97Z\xBB\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\x90Q`\0\x92s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x91c\\\x97Z\xBB\x91`\x04\x80\x83\x01\x92` \x92\x91\x90\x82\x90\x03\x01\x81\x86Z\xFA\x15\x80\x15a\x08\x82W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x03\x8B\x91\x90a\x16\xD0V[`\x01Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x163\x14\x80\x15a\t{WP`\x02T`\x01T`@\x80Q\x7Fn)nE\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\x90Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x93\x84\x16\x93\x90\x92\x16\x91cn)nE\x91`\x04\x80\x82\x01\x92` \x92\x90\x91\x90\x82\x90\x03\x01\x81\x86Z\xFA\x15\x80\x15a\t?W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\tc\x91\x90a\x16OV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14[a\n\x07W`@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\x82\x01R`?`$\x82\x01R\x7FERC721Bridge: function can only `D\x82\x01R\x7Fbe called from the other bridge\0`d\x82\x01R`\x84\x01a\x04 V[a\n\x0Fa\x08\x12V[\x15a\nvW`@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\x82\x01R`\x16`$\x82\x01R\x7FL1ERC721Bridge: paused\0\0\0\0\0\0\0\0\0\0`D\x82\x01R`d\x01a\x04 V[0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x88\x16\x03a\x0B\x1BW`@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\x82\x01R`*`$\x82\x01R\x7FL1ERC721Bridge: local token cann`D\x82\x01R\x7Fot be self\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x04 V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x88\x16`\0\x90\x81R`1` \x90\x81R`@\x80\x83 \x93\x8A\x16\x83R\x92\x81R\x82\x82 \x86\x83R\x90R T`\xFF\x16\x15\x15`\x01\x14a\x0B\xEAW`@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\x82\x01R`9`$\x82\x01R\x7FL1ERC721Bridge: Token ID is not `D\x82\x01R\x7Fescrowed in the L1 Bridge\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x04 V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x81\x16`\0\x81\x81R`1` \x90\x81R`@\x80\x83 \x8B\x86\x16\x84R\x82R\x80\x83 \x88\x84R\x90\x91R\x90\x81\x90 \x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x16\x90UQ\x7FB\x84.\x0E\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\x81R0`\x04\x82\x01R\x91\x86\x16`$\x83\x01R`D\x82\x01\x85\x90R\x90cB\x84.\x0E\x90`d\x01`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a\x0C\xAAW`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x0C\xBEW=`\0\x80>=`\0\xFD[PPPP\x84s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x86s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x88s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\x1F9\xBFg\x07\xB5\xD6\x08E>\n\xE4\xC0g\xB5b\xBC\xC4\xC8\\\x0FV.\xF5\xD2\xC7t\xD2\xE7\xF11\xAC\x87\x87\x87\x87`@Qa\r<\x94\x93\x92\x91\x90a\x17;V[`@Q\x80\x91\x03\x90\xA4PPPPPPPV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x85\x16a\r\xF0W`@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\x82\x01R`0`$\x82\x01R\x7FERC721Bridge: nft recipient cann`D\x82\x01R\x7Fot be address(0)\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x04 V[a\x0E\0\x87\x873\x88\x88\x88\x88\x88a\x0E\x9AV[PPPPPPPV[`\0a\x0E\x13a\x04AV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\x8D\xA5\xCB[`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x03gW=`\0\x80>=`\0\xFD[`\x0023\x03a\x0ElWP`\x01\x90V[3;`\x17\x03a\x0E\x94W`@Q` \x81\x01`@R` `\0\x823=`\0\xFD[PP`\x01T`\x02T`@Q\x7F=\xBB +\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\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x92\x83\x16\x94Pc=\xBB +\x93Pa\x11\x0B\x92\x90\x91\x16\x90\x85\x90\x89\x90`\x04\x01a\x17\xD8V[`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a\x11%W`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x119W=`\0\x80>=`\0\xFD[PPPP\x86s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x88s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x8As\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xB7F\x0E*\x88\x0F%n\xBE\xF3@a\x16\xFF>\xEE\x0C\xEEQ\xEB\xCC\xDC*@i\x8F\x87\xEB\xB2\xE9\xC1\xA5\x89\x89\x88\x88`@Qa\x11\xB7\x94\x93\x92\x91\x90a\x17;V[`@Q\x80\x91\x03\x90\xA4PPPPPPPPPV[3a\x11\xD3a\x04AV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14\x15\x80\x15a\x12\x14WP3a\x11\xFBa\x0E\tV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14\x15[\x15a\x12KW`@Q\x7F\xC4\x05\n&\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\x01`@Q\x80\x91\x03\x90\xFD[V[`\0Ta\x01\0\x90\x04`\xFF\x16a\x12\xE4W`@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\x82\x01R`+`$\x82\x01R\x7FInitializable: contract is not i`D\x82\x01R\x7Fnitializing\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x04 V[`\x01\x80Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x93\x84\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x91\x82\x16\x17\x90\x91U`\x02\x80T\x92\x90\x93\x16\x91\x16\x17\x90UV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x13YW`\0\x80\xFD[PV[\x805c\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x13pW`\0\x80\xFD[\x91\x90PV[`\0\x80\x83`\x1F\x84\x01\x12a\x13\x87W`\0\x80\xFD[P\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x13\x9FW`\0\x80\xFD[` \x83\x01\x91P\x83` \x82\x85\x01\x01\x11\x15a\x13\xB7W`\0\x80\xFD[\x92P\x92\x90PV[`\0\x80`\0\x80`\0\x80`\xA0\x87\x89\x03\x12\x15a\x13\xD7W`\0\x80\xFD[\x865a\x13\xE2\x81a\x137V[\x95P` \x87\x015a\x13\xF2\x81a\x137V[\x94P`@\x87\x015\x93Pa\x14\x07``\x88\x01a\x13\\V[\x92P`\x80\x87\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x14#W`\0\x80\xFD[a\x14/\x89\x82\x8A\x01a\x13uV[\x97\x9A\x96\x99P\x94\x97P\x92\x95\x93\x94\x92PPPV[`\0\x80`@\x83\x85\x03\x12\x15a\x14TW`\0\x80\xFD[\x825a\x14_\x81a\x137V[\x91P` \x83\x015a\x14o\x81a\x137V[\x80\x91PP\x92P\x92\x90PV[`\0\x81Q\x80\x84R`\0[\x81\x81\x10\x15a\x14\xA0W` \x81\x85\x01\x81\x01Q\x86\x83\x01\x82\x01R\x01a\x14\x84V[\x81\x81\x11\x15a\x14\xB2W`\0` \x83\x87\x01\x01R[P`\x1F\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x92\x90\x92\x01` \x01\x92\x91PPV[` \x81R`\0a\x14\xF8` \x83\x01\x84a\x14zV[\x93\x92PPPV[`\0\x80`\0``\x84\x86\x03\x12\x15a\x15\x14W`\0\x80\xFD[\x835a\x15\x1F\x81a\x137V[\x92P` \x84\x015a\x15/\x81a\x137V[\x92\x95\x92\x94PPP`@\x91\x90\x91\x015\x90V[`\0\x80`\0\x80`\0\x80`\0`\xC0\x88\x8A\x03\x12\x15a\x15[W`\0\x80\xFD[\x875a\x15f\x81a\x137V[\x96P` \x88\x015a\x15v\x81a\x137V[\x95P`@\x88\x015a\x15\x86\x81a\x137V[\x94P``\x88\x015a\x15\x96\x81a\x137V[\x93P`\x80\x88\x015\x92P`\xA0\x88\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x15\xB9W`\0\x80\xFD[a\x15\xC5\x8A\x82\x8B\x01a\x13uV[\x98\x9B\x97\x9AP\x95\x98P\x93\x96\x92\x95\x92\x93PPPV[`\0\x80`\0\x80`\0\x80`\0`\xC0\x88\x8A\x03\x12\x15a\x15\xF3W`\0\x80\xFD[\x875a\x15\xFE\x81a\x137V[\x96P` \x88\x015a\x16\x0E\x81a\x137V[\x95P`@\x88\x015a\x16\x1E\x81a\x137V[\x94P``\x88\x015\x93Pa\x163`\x80\x89\x01a\x13\\V[\x92P`\xA0\x88\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x15\xB9W`\0\x80\xFD[`\0` \x82\x84\x03\x12\x15a\x16aW`\0\x80\xFD[\x81Qa\x14\xF8\x81a\x137V[`\0\x81\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x04\x83\x11\x82\x15\x15\x16\x15a\x16\xCBW\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`\x11`\x04R`$`\0\xFD[P\x02\x90V[`\0` \x82\x84\x03\x12\x15a\x16\xE2W`\0\x80\xFD[\x81Q\x80\x15\x15\x81\x14a\x14\xF8W`\0\x80\xFD[\x81\x83R\x81\x81` \x85\x017P`\0` \x82\x84\x01\x01R`\0` \x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0`\x1F\x84\x01\x16\x84\x01\x01\x90P\x92\x91PPV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x85\x16\x81R\x83` \x82\x01R```@\x82\x01R`\0a\x17q``\x83\x01\x84\x86a\x16\xF2V[\x96\x95PPPPPPV[`\0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x8A\x16\x83R\x80\x89\x16` \x84\x01R\x80\x88\x16`@\x84\x01R\x80\x87\x16``\x84\x01RP\x84`\x80\x83\x01R`\xC0`\xA0\x83\x01Ra\x17\xCB`\xC0\x83\x01\x84\x86a\x16\xF2V[\x99\x98PPPPPPPPPV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x16\x81R``` \x82\x01R`\0a\x18\x07``\x83\x01\x85a\x14zV[\x90Pc\xFF\xFF\xFF\xFF\x83\x16`@\x83\x01R\x94\x93PPPPV\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x608060405234801561001057600080fd5b50600436106101005760003560e01c80635c975abb11610097578063927ede2d11610066578063927ede2d1461029e578063aa557452146102bc578063c89701a2146102cf578063dad544e0146102ef57600080fd5b80635c975abb146102215780635d93a3fc14610239578063761f44931461026d5780637f46ddb21461028057600080fd5b80633cb747bf116100d35780633cb747bf1461019d5780633e47158c146101bd578063485cc955146101c557806354fd4d50146101d857600080fd5b806333d7e2bd1461010557806335e80ab31461014f5780633687011a1461015757806338d38c971461016c575b600080fd5b6033546101259073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b6101256102f7565b61016a6101653660046113be565b610390565b005b60405160ff7f0000000000000000000000000000000000000000000000000000000000000000168152602001610146565b6001546101259073ffffffffffffffffffffffffffffffffffffffff1681565b610125610441565b61016a6101d3366004611441565b61064c565b6102146040518060400160405280600581526020017f322e392e3000000000000000000000000000000000000000000000000000000081525081565b60405161014691906114e5565b610229610812565b6040519015158152602001610146565b6102296102473660046114ff565b603160209081526000938452604080852082529284528284209052825290205460ff1681565b61016a61027b366004611540565b6108a6565b60025473ffffffffffffffffffffffffffffffffffffffff16610125565b60015473ffffffffffffffffffffffffffffffffffffffff16610125565b61016a6102ca3660046115d8565b610d4d565b6002546101259073ffffffffffffffffffffffffffffffffffffffff1681565b610125610e09565b603354604080517f35e80ab3000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff16916335e80ab39160048083019260209291908290030181865afa158015610367573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061038b919061164f565b905090565b610398610e5d565b610429576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f4552433732314272696467653a206163636f756e74206973206e6f742065787460448201527f65726e616c6c79206f776e65640000000000000000000000000000000000000060648201526084015b60405180910390fd5b6104398686333388888888610e9a565b505050505050565b60008061046c7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b905073ffffffffffffffffffffffffffffffffffffffff81161561048f57919050565b6040518060400160405280601a81526020017f4f564d5f4c3143726f7373446f6d61696e4d657373656e6765720000000000008152505160026104d2919061166c565b604080513060208201526000918101919091527f4f564d5f4c3143726f7373446f6d61696e4d657373656e676572000000000000919091179061052d906060015b604051602081830303815290604052805190602001205490565b14610564576040517f54e433cd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805130602082015260019181019190915260009061058690606001610513565b905073ffffffffffffffffffffffffffffffffffffffff81161561061a578073ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105ef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610613919061164f565b9250505090565b6040517f332144db00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f0000000000000000000000000000000000000000000000000000000000000000600054610100900460ff1615801561068c575060005460ff8083169116105b610718576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610420565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001660ff8316176101001790556107516111ca565b603380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84161790556107af8373420000000000000000000000000000000000001461124d565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050565b603354604080517f5c975abb000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff1691635c975abb9160048083019260209291908290030181865afa158015610882573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061038b91906116d0565b60015473ffffffffffffffffffffffffffffffffffffffff163314801561097b5750600254600154604080517f6e296e45000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff9384169390921691636e296e45916004808201926020929091908290030181865afa15801561093f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610963919061164f565b73ffffffffffffffffffffffffffffffffffffffff16145b610a07576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603f60248201527f4552433732314272696467653a2066756e6374696f6e2063616e206f6e6c792060448201527f62652063616c6c65642066726f6d20746865206f7468657220627269646765006064820152608401610420565b610a0f610812565b15610a76576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4c314552433732314272696467653a20706175736564000000000000000000006044820152606401610420565b3073ffffffffffffffffffffffffffffffffffffffff881603610b1b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f4c314552433732314272696467653a206c6f63616c20746f6b656e2063616e6e60448201527f6f742062652073656c66000000000000000000000000000000000000000000006064820152608401610420565b73ffffffffffffffffffffffffffffffffffffffff8088166000908152603160209081526040808320938a1683529281528282208683529052205460ff161515600114610bea576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603960248201527f4c314552433732314272696467653a20546f6b656e204944206973206e6f742060448201527f657363726f77656420696e20746865204c3120427269646765000000000000006064820152608401610420565b73ffffffffffffffffffffffffffffffffffffffff87811660008181526031602090815260408083208b8616845282528083208884529091529081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055517f42842e0e000000000000000000000000000000000000000000000000000000008152306004820152918616602483015260448201859052906342842e0e90606401600060405180830381600087803b158015610caa57600080fd5b505af1158015610cbe573d6000803e3d6000fd5b505050508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167f1f39bf6707b5d608453e0ae4c067b562bcc4c85c0f562ef5d2c774d2e7f131ac87878787604051610d3c949392919061173b565b60405180910390a450505050505050565b73ffffffffffffffffffffffffffffffffffffffff8516610df0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f4552433732314272696467653a206e667420726563697069656e742063616e6e60448201527f6f742062652061646472657373283029000000000000000000000000000000006064820152608401610420565b610e008787338888888888610e9a565b50505050505050565b6000610e13610441565b73ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610367573d6000803e3d6000fd5b6000323303610e6c5750600190565b333b601703610e9457604051602081016040526020600082333c5160e81c62ef010014905090565b50600090565b73ffffffffffffffffffffffffffffffffffffffff8716610f3d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603160248201527f4c314552433732314272696467653a2072656d6f746520746f6b656e2063616e60448201527f6e6f7420626520616464726573732830290000000000000000000000000000006064820152608401610420565b600087898888888787604051602401610f5c979695949392919061177b565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f761f44930000000000000000000000000000000000000000000000000000000017905273ffffffffffffffffffffffffffffffffffffffff8c81166000818152603184528481208e8416825284528481208b82529093529183902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905591517f23b872dd000000000000000000000000000000000000000000000000000000008152918a166004830152306024830152604482018890529192506323b872dd90606401600060405180830381600087803b15801561109457600080fd5b505af11580156110a8573d6000803e3d6000fd5b50506001546002546040517f3dbb202b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9283169450633dbb202b935061110b9290911690859089906004016117d8565b600060405180830381600087803b15801561112557600080fd5b505af1158015611139573d6000803e3d6000fd5b505050508673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167fb7460e2a880f256ebef3406116ff3eee0cee51ebccdc2a40698f87ebb2e9c1a5898988886040516111b7949392919061173b565b60405180910390a4505050505050505050565b336111d3610441565b73ffffffffffffffffffffffffffffffffffffffff16141580156112145750336111fb610e09565b73ffffffffffffffffffffffffffffffffffffffff1614155b1561124b576040517fc4050a2600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b600054610100900460ff166112e4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610420565b6001805473ffffffffffffffffffffffffffffffffffffffff9384167fffffffffffffffffffffffff00000000000000000000000000000000000000009182161790915560028054929093169116179055565b73ffffffffffffffffffffffffffffffffffffffff8116811461135957600080fd5b50565b803563ffffffff8116811461137057600080fd5b919050565b60008083601f84011261138757600080fd5b50813567ffffffffffffffff81111561139f57600080fd5b6020830191508360208285010111156113b757600080fd5b9250929050565b60008060008060008060a087890312156113d757600080fd5b86356113e281611337565b955060208701356113f281611337565b9450604087013593506114076060880161135c565b9250608087013567ffffffffffffffff81111561142357600080fd5b61142f89828a01611375565b979a9699509497509295939492505050565b6000806040838503121561145457600080fd5b823561145f81611337565b9150602083013561146f81611337565b809150509250929050565b6000815180845260005b818110156114a057602081850181015186830182015201611484565b818111156114b2576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006114f8602083018461147a565b9392505050565b60008060006060848603121561151457600080fd5b833561151f81611337565b9250602084013561152f81611337565b929592945050506040919091013590565b600080600080600080600060c0888a03121561155b57600080fd5b873561156681611337565b9650602088013561157681611337565b9550604088013561158681611337565b9450606088013561159681611337565b93506080880135925060a088013567ffffffffffffffff8111156115b957600080fd5b6115c58a828b01611375565b989b979a50959850939692959293505050565b600080600080600080600060c0888a0312156115f357600080fd5b87356115fe81611337565b9650602088013561160e81611337565b9550604088013561161e81611337565b9450606088013593506116336080890161135c565b925060a088013567ffffffffffffffff8111156115b957600080fd5b60006020828403121561166157600080fd5b81516114f881611337565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156116cb577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b500290565b6000602082840312156116e257600080fd5b815180151581146114f857600080fd5b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b73ffffffffffffffffffffffffffffffffffffffff851681528360208201526060604082015260006117716060830184866116f2565b9695505050505050565b600073ffffffffffffffffffffffffffffffffffffffff808a1683528089166020840152808816604084015280871660608401525084608083015260c060a08301526117cb60c0830184866116f2565b9998505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff84168152606060208201526000611807606083018561147a565b905063ffffffff8316604083015294935050505056fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`\x046\x10a\x01\0W`\x005`\xE0\x1C\x80c\\\x97Z\xBB\x11a\0\x97W\x80c\x92~\xDE-\x11a\0fW\x80c\x92~\xDE-\x14a\x02\x9EW\x80c\xAAUtR\x14a\x02\xBCW\x80c\xC8\x97\x01\xA2\x14a\x02\xCFW\x80c\xDA\xD5D\xE0\x14a\x02\xEFW`\0\x80\xFD[\x80c\\\x97Z\xBB\x14a\x02!W\x80c]\x93\xA3\xFC\x14a\x029W\x80cv\x1FD\x93\x14a\x02mW\x80c\x7FF\xDD\xB2\x14a\x02\x80W`\0\x80\xFD[\x80c<\xB7G\xBF\x11a\0\xD3W\x80c<\xB7G\xBF\x14a\x01\x9DW\x80c>G\x15\x8C\x14a\x01\xBDW\x80cH\\\xC9U\x14a\x01\xC5W\x80cT\xFDMP\x14a\x01\xD8W`\0\x80\xFD[\x80c3\xD7\xE2\xBD\x14a\x01\x05W\x80c5\xE8\n\xB3\x14a\x01OW\x80c6\x87\x01\x1A\x14a\x01WW\x80c8\xD3\x8C\x97\x14a\x01lW[`\0\x80\xFD[`3Ta\x01%\x90s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[a\x01%a\x02\xF7V[a\x01ja\x01e6`\x04a\x13\xBEV[a\x03\x90V[\0[`@Q`\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x81R` \x01a\x01FV[`\x01Ta\x01%\x90s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[a\x01%a\x04AV[a\x01ja\x01\xD36`\x04a\x14AV[a\x06LV[a\x02\x14`@Q\x80`@\x01`@R\x80`\x05\x81R` \x01\x7F2.9.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\x81RP\x81V[`@Qa\x01F\x91\x90a\x14\xE5V[a\x02)a\x08\x12V[`@Q\x90\x15\x15\x81R` \x01a\x01FV[a\x02)a\x02G6`\x04a\x14\xFFV[`1` \x90\x81R`\0\x93\x84R`@\x80\x85 \x82R\x92\x84R\x82\x84 \x90R\x82R\x90 T`\xFF\x16\x81V[a\x01ja\x02{6`\x04a\x15@V[a\x08\xA6V[`\x02Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a\x01%V[`\x01Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a\x01%V[a\x01ja\x02\xCA6`\x04a\x15\xD8V[a\rMV[`\x02Ta\x01%\x90s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[a\x01%a\x0E\tV[`3T`@\x80Q\x7F5\xE8\n\xB3\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\x90Q`\0\x92s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x91c5\xE8\n\xB3\x91`\x04\x80\x83\x01\x92` \x92\x91\x90\x82\x90\x03\x01\x81\x86Z\xFA\x15\x80\x15a\x03gW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x03\x8B\x91\x90a\x16OV[\x90P\x90V[a\x03\x98a\x0E]V[a\x04)W`@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\x82\x01R`-`$\x82\x01R\x7FERC721Bridge: account is not ext`D\x82\x01R\x7Fernally owned\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01[`@Q\x80\x91\x03\x90\xFD[a\x049\x86\x8633\x88\x88\x88\x88a\x0E\x9AV[PPPPPPV[`\0\x80a\x04l\x7F\xB51'hJV\x8B1s\xAE\x13\xB9\xF8\xA6\x01n$>c\xB6\xE8\xEE\x11x\xD6\xA7\x17\x85\x0B]a\x03T\x90V[\x90Ps\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x15a\x04\x8FW\x91\x90PV[`@Q\x80`@\x01`@R\x80`\x1A\x81R` \x01\x7FOVM_L1CrossDomainMessenger\0\0\0\0\0\0\x81RPQ`\x02a\x04\xD2\x91\x90a\x16lV[`@\x80Q0` \x82\x01R`\0\x91\x81\x01\x91\x90\x91R\x7FOVM_L1CrossDomainMessenger\0\0\0\0\0\0\x91\x90\x91\x17\x90a\x05-\x90``\x01[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 T\x90V[\x14a\x05dW`@Q\x7FT\xE43\xCD\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\x01`@Q\x80\x91\x03\x90\xFD[`@\x80Q0` \x82\x01R`\x01\x91\x81\x01\x91\x90\x91R`\0\x90a\x05\x86\x90``\x01a\x05\x13V[\x90Ps\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x15a\x06\x1AW\x80s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\x8D\xA5\xCB[`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x05\xEFW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x06\x13\x91\x90a\x16OV[\x92PPP\x90V[`@Q\x7F3!D\xDB\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\x01`@Q\x80\x91\x03\x90\xFD[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\0Ta\x01\0\x90\x04`\xFF\x16\x15\x80\x15a\x06\x8CWP`\0T`\xFF\x80\x83\x16\x91\x16\x10[a\x07\x18W`@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\x82\x01R`.`$\x82\x01R\x7FInitializable: contract is alrea`D\x82\x01R\x7Fdy initialized\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x04 V[`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\x16`\xFF\x83\x16\x17a\x01\0\x17\x90Ua\x07Qa\x11\xCAV[`3\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x16\x17\x90Ua\x07\xAF\x83sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x14a\x12MV[`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\x16\x90U`@Q`\xFF\x82\x16\x81R\x7F\x7F&\xB8?\xF9n\x1F+jh/\x138R\xF6y\x8A\t\xC4e\xDA\x95\x92\x14`\xCE\xFB8G@$\x98\x90` \x01`@Q\x80\x91\x03\x90\xA1PPPV[`3T`@\x80Q\x7F\\\x97Z\xBB\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\x90Q`\0\x92s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x91c\\\x97Z\xBB\x91`\x04\x80\x83\x01\x92` \x92\x91\x90\x82\x90\x03\x01\x81\x86Z\xFA\x15\x80\x15a\x08\x82W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x03\x8B\x91\x90a\x16\xD0V[`\x01Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x163\x14\x80\x15a\t{WP`\x02T`\x01T`@\x80Q\x7Fn)nE\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\x90Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x93\x84\x16\x93\x90\x92\x16\x91cn)nE\x91`\x04\x80\x82\x01\x92` \x92\x90\x91\x90\x82\x90\x03\x01\x81\x86Z\xFA\x15\x80\x15a\t?W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\tc\x91\x90a\x16OV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14[a\n\x07W`@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\x82\x01R`?`$\x82\x01R\x7FERC721Bridge: function can only `D\x82\x01R\x7Fbe called from the other bridge\0`d\x82\x01R`\x84\x01a\x04 V[a\n\x0Fa\x08\x12V[\x15a\nvW`@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\x82\x01R`\x16`$\x82\x01R\x7FL1ERC721Bridge: paused\0\0\0\0\0\0\0\0\0\0`D\x82\x01R`d\x01a\x04 V[0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x88\x16\x03a\x0B\x1BW`@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\x82\x01R`*`$\x82\x01R\x7FL1ERC721Bridge: local token cann`D\x82\x01R\x7Fot be self\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x04 V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x88\x16`\0\x90\x81R`1` \x90\x81R`@\x80\x83 \x93\x8A\x16\x83R\x92\x81R\x82\x82 \x86\x83R\x90R T`\xFF\x16\x15\x15`\x01\x14a\x0B\xEAW`@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\x82\x01R`9`$\x82\x01R\x7FL1ERC721Bridge: Token ID is not `D\x82\x01R\x7Fescrowed in the L1 Bridge\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x04 V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x81\x16`\0\x81\x81R`1` \x90\x81R`@\x80\x83 \x8B\x86\x16\x84R\x82R\x80\x83 \x88\x84R\x90\x91R\x90\x81\x90 \x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x16\x90UQ\x7FB\x84.\x0E\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\x81R0`\x04\x82\x01R\x91\x86\x16`$\x83\x01R`D\x82\x01\x85\x90R\x90cB\x84.\x0E\x90`d\x01`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a\x0C\xAAW`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x0C\xBEW=`\0\x80>=`\0\xFD[PPPP\x84s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x86s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x88s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\x1F9\xBFg\x07\xB5\xD6\x08E>\n\xE4\xC0g\xB5b\xBC\xC4\xC8\\\x0FV.\xF5\xD2\xC7t\xD2\xE7\xF11\xAC\x87\x87\x87\x87`@Qa\r<\x94\x93\x92\x91\x90a\x17;V[`@Q\x80\x91\x03\x90\xA4PPPPPPPV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x85\x16a\r\xF0W`@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\x82\x01R`0`$\x82\x01R\x7FERC721Bridge: nft recipient cann`D\x82\x01R\x7Fot be address(0)\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x04 V[a\x0E\0\x87\x873\x88\x88\x88\x88\x88a\x0E\x9AV[PPPPPPPV[`\0a\x0E\x13a\x04AV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\x8D\xA5\xCB[`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x03gW=`\0\x80>=`\0\xFD[`\x0023\x03a\x0ElWP`\x01\x90V[3;`\x17\x03a\x0E\x94W`@Q` \x81\x01`@R` `\0\x823=`\0\xFD[PP`\x01T`\x02T`@Q\x7F=\xBB +\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\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x92\x83\x16\x94Pc=\xBB +\x93Pa\x11\x0B\x92\x90\x91\x16\x90\x85\x90\x89\x90`\x04\x01a\x17\xD8V[`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a\x11%W`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x119W=`\0\x80>=`\0\xFD[PPPP\x86s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x88s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x8As\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xB7F\x0E*\x88\x0F%n\xBE\xF3@a\x16\xFF>\xEE\x0C\xEEQ\xEB\xCC\xDC*@i\x8F\x87\xEB\xB2\xE9\xC1\xA5\x89\x89\x88\x88`@Qa\x11\xB7\x94\x93\x92\x91\x90a\x17;V[`@Q\x80\x91\x03\x90\xA4PPPPPPPPPV[3a\x11\xD3a\x04AV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14\x15\x80\x15a\x12\x14WP3a\x11\xFBa\x0E\tV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14\x15[\x15a\x12KW`@Q\x7F\xC4\x05\n&\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\x01`@Q\x80\x91\x03\x90\xFD[V[`\0Ta\x01\0\x90\x04`\xFF\x16a\x12\xE4W`@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\x82\x01R`+`$\x82\x01R\x7FInitializable: contract is not i`D\x82\x01R\x7Fnitializing\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x04 V[`\x01\x80Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x93\x84\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x91\x82\x16\x17\x90\x91U`\x02\x80T\x92\x90\x93\x16\x91\x16\x17\x90UV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x13YW`\0\x80\xFD[PV[\x805c\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x13pW`\0\x80\xFD[\x91\x90PV[`\0\x80\x83`\x1F\x84\x01\x12a\x13\x87W`\0\x80\xFD[P\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x13\x9FW`\0\x80\xFD[` \x83\x01\x91P\x83` \x82\x85\x01\x01\x11\x15a\x13\xB7W`\0\x80\xFD[\x92P\x92\x90PV[`\0\x80`\0\x80`\0\x80`\xA0\x87\x89\x03\x12\x15a\x13\xD7W`\0\x80\xFD[\x865a\x13\xE2\x81a\x137V[\x95P` \x87\x015a\x13\xF2\x81a\x137V[\x94P`@\x87\x015\x93Pa\x14\x07``\x88\x01a\x13\\V[\x92P`\x80\x87\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x14#W`\0\x80\xFD[a\x14/\x89\x82\x8A\x01a\x13uV[\x97\x9A\x96\x99P\x94\x97P\x92\x95\x93\x94\x92PPPV[`\0\x80`@\x83\x85\x03\x12\x15a\x14TW`\0\x80\xFD[\x825a\x14_\x81a\x137V[\x91P` \x83\x015a\x14o\x81a\x137V[\x80\x91PP\x92P\x92\x90PV[`\0\x81Q\x80\x84R`\0[\x81\x81\x10\x15a\x14\xA0W` \x81\x85\x01\x81\x01Q\x86\x83\x01\x82\x01R\x01a\x14\x84V[\x81\x81\x11\x15a\x14\xB2W`\0` \x83\x87\x01\x01R[P`\x1F\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x92\x90\x92\x01` \x01\x92\x91PPV[` \x81R`\0a\x14\xF8` \x83\x01\x84a\x14zV[\x93\x92PPPV[`\0\x80`\0``\x84\x86\x03\x12\x15a\x15\x14W`\0\x80\xFD[\x835a\x15\x1F\x81a\x137V[\x92P` \x84\x015a\x15/\x81a\x137V[\x92\x95\x92\x94PPP`@\x91\x90\x91\x015\x90V[`\0\x80`\0\x80`\0\x80`\0`\xC0\x88\x8A\x03\x12\x15a\x15[W`\0\x80\xFD[\x875a\x15f\x81a\x137V[\x96P` \x88\x015a\x15v\x81a\x137V[\x95P`@\x88\x015a\x15\x86\x81a\x137V[\x94P``\x88\x015a\x15\x96\x81a\x137V[\x93P`\x80\x88\x015\x92P`\xA0\x88\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x15\xB9W`\0\x80\xFD[a\x15\xC5\x8A\x82\x8B\x01a\x13uV[\x98\x9B\x97\x9AP\x95\x98P\x93\x96\x92\x95\x92\x93PPPV[`\0\x80`\0\x80`\0\x80`\0`\xC0\x88\x8A\x03\x12\x15a\x15\xF3W`\0\x80\xFD[\x875a\x15\xFE\x81a\x137V[\x96P` \x88\x015a\x16\x0E\x81a\x137V[\x95P`@\x88\x015a\x16\x1E\x81a\x137V[\x94P``\x88\x015\x93Pa\x163`\x80\x89\x01a\x13\\V[\x92P`\xA0\x88\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x15\xB9W`\0\x80\xFD[`\0` \x82\x84\x03\x12\x15a\x16aW`\0\x80\xFD[\x81Qa\x14\xF8\x81a\x137V[`\0\x81\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x04\x83\x11\x82\x15\x15\x16\x15a\x16\xCBW\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`\x11`\x04R`$`\0\xFD[P\x02\x90V[`\0` \x82\x84\x03\x12\x15a\x16\xE2W`\0\x80\xFD[\x81Q\x80\x15\x15\x81\x14a\x14\xF8W`\0\x80\xFD[\x81\x83R\x81\x81` \x85\x017P`\0` \x82\x84\x01\x01R`\0` \x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0`\x1F\x84\x01\x16\x84\x01\x01\x90P\x92\x91PPV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x85\x16\x81R\x83` \x82\x01R```@\x82\x01R`\0a\x17q``\x83\x01\x84\x86a\x16\xF2V[\x96\x95PPPPPPV[`\0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x8A\x16\x83R\x80\x89\x16` \x84\x01R\x80\x88\x16`@\x84\x01R\x80\x87\x16``\x84\x01RP\x84`\x80\x83\x01R`\xC0`\xA0\x83\x01Ra\x17\xCB`\xC0\x83\x01\x84\x86a\x16\xF2V[\x99\x98PPPPPPPPPV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x16\x81R``` \x82\x01R`\0a\x18\x07``\x83\x01\x85a\x14zV[\x90Pc\xFF\xFF\xFF\xFF\x83\x16`@\x83\x01R\x94\x93PPPPV\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ProxyAdminOwnedBase_NotProxyAdmin()` and selector `0xe818dcc3`. +```solidity +error ProxyAdminOwnedBase_NotProxyAdmin(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ProxyAdminOwnedBase_NotProxyAdmin; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: ProxyAdminOwnedBase_NotProxyAdmin) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for ProxyAdminOwnedBase_NotProxyAdmin { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ProxyAdminOwnedBase_NotProxyAdmin { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ProxyAdminOwnedBase_NotProxyAdmin()"; + const SELECTOR: [u8; 4] = [232u8, 24u8, 220u8, 195u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner()` and selector `0xc4050a26`. +```solidity +error ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError + for ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner()"; + const SELECTOR: [u8; 4] = [196u8, 5u8, 10u8, 38u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ProxyAdminOwnedBase_NotProxyAdminOwner()` and selector `0x7f12c64b`. +```solidity +error ProxyAdminOwnedBase_NotProxyAdminOwner(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ProxyAdminOwnedBase_NotProxyAdminOwner; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: ProxyAdminOwnedBase_NotProxyAdminOwner) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for ProxyAdminOwnedBase_NotProxyAdminOwner { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ProxyAdminOwnedBase_NotProxyAdminOwner { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ProxyAdminOwnedBase_NotProxyAdminOwner()"; + const SELECTOR: [u8; 4] = [127u8, 18u8, 198u8, 75u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ProxyAdminOwnedBase_NotResolvedDelegateProxy()` and selector `0x54e433cd`. +```solidity +error ProxyAdminOwnedBase_NotResolvedDelegateProxy(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ProxyAdminOwnedBase_NotResolvedDelegateProxy; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: ProxyAdminOwnedBase_NotResolvedDelegateProxy) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for ProxyAdminOwnedBase_NotResolvedDelegateProxy { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ProxyAdminOwnedBase_NotResolvedDelegateProxy { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ProxyAdminOwnedBase_NotResolvedDelegateProxy()"; + const SELECTOR: [u8; 4] = [84u8, 228u8, 51u8, 205u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ProxyAdminOwnedBase_NotSharedProxyAdminOwner()` and selector `0x075c4314`. +```solidity +error ProxyAdminOwnedBase_NotSharedProxyAdminOwner(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ProxyAdminOwnedBase_NotSharedProxyAdminOwner; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: ProxyAdminOwnedBase_NotSharedProxyAdminOwner) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for ProxyAdminOwnedBase_NotSharedProxyAdminOwner { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ProxyAdminOwnedBase_NotSharedProxyAdminOwner { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ProxyAdminOwnedBase_NotSharedProxyAdminOwner()"; + const SELECTOR: [u8; 4] = [7u8, 92u8, 67u8, 20u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ProxyAdminOwnedBase_ProxyAdminNotFound()` and selector `0x332144db`. +```solidity +error ProxyAdminOwnedBase_ProxyAdminNotFound(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ProxyAdminOwnedBase_ProxyAdminNotFound; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: ProxyAdminOwnedBase_ProxyAdminNotFound) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for ProxyAdminOwnedBase_ProxyAdminNotFound { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ProxyAdminOwnedBase_ProxyAdminNotFound { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ProxyAdminOwnedBase_ProxyAdminNotFound()"; + const SELECTOR: [u8; 4] = [51u8, 33u8, 68u8, 219u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ReinitializableBase_ZeroInitVersion()` and selector `0x9b01afed`. +```solidity +error ReinitializableBase_ZeroInitVersion(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ReinitializableBase_ZeroInitVersion; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: ReinitializableBase_ZeroInitVersion) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for ReinitializableBase_ZeroInitVersion { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ReinitializableBase_ZeroInitVersion { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ReinitializableBase_ZeroInitVersion()"; + const SELECTOR: [u8; 4] = [155u8, 1u8, 175u8, 237u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `ERC721BridgeFinalized(address,address,address,address,uint256,bytes)` and selector `0x1f39bf6707b5d608453e0ae4c067b562bcc4c85c0f562ef5d2c774d2e7f131ac`. +```solidity +event ERC721BridgeFinalized(address indexed localToken, address indexed remoteToken, address indexed from, address to, uint256 tokenId, bytes extraData); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct ERC721BridgeFinalized { + #[allow(missing_docs)] + pub localToken: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub remoteToken: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub from: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub tokenId: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub extraData: alloy::sol_types::private::Bytes, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for ERC721BridgeFinalized { + type DataTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Bytes, + ); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "ERC721BridgeFinalized(address,address,address,address,uint256,bytes)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 31u8, 57u8, 191u8, 103u8, 7u8, 181u8, 214u8, 8u8, 69u8, 62u8, 10u8, + 228u8, 192u8, 103u8, 181u8, 98u8, 188u8, 196u8, 200u8, 92u8, 15u8, 86u8, + 46u8, 245u8, 210u8, 199u8, 116u8, 210u8, 231u8, 241u8, 49u8, 172u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + localToken: topics.1, + remoteToken: topics.2, + from: topics.3, + to: data.0, + tokenId: data.1, + extraData: data.2, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + ::tokenize( + &self.to, + ), + as alloy_sol_types::SolType>::tokenize(&self.tokenId), + ::tokenize( + &self.extraData, + ), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + ( + Self::SIGNATURE_HASH.into(), + self.localToken.clone(), + self.remoteToken.clone(), + self.from.clone(), + ) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.localToken, + ); + out[2usize] = ::encode_topic( + &self.remoteToken, + ); + out[3usize] = ::encode_topic( + &self.from, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for ERC721BridgeFinalized { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&ERC721BridgeFinalized> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &ERC721BridgeFinalized) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `ERC721BridgeInitiated(address,address,address,address,uint256,bytes)` and selector `0xb7460e2a880f256ebef3406116ff3eee0cee51ebccdc2a40698f87ebb2e9c1a5`. +```solidity +event ERC721BridgeInitiated(address indexed localToken, address indexed remoteToken, address indexed from, address to, uint256 tokenId, bytes extraData); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct ERC721BridgeInitiated { + #[allow(missing_docs)] + pub localToken: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub remoteToken: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub from: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub tokenId: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub extraData: alloy::sol_types::private::Bytes, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for ERC721BridgeInitiated { + type DataTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Bytes, + ); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "ERC721BridgeInitiated(address,address,address,address,uint256,bytes)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 183u8, 70u8, 14u8, 42u8, 136u8, 15u8, 37u8, 110u8, 190u8, 243u8, 64u8, + 97u8, 22u8, 255u8, 62u8, 238u8, 12u8, 238u8, 81u8, 235u8, 204u8, 220u8, + 42u8, 64u8, 105u8, 143u8, 135u8, 235u8, 178u8, 233u8, 193u8, 165u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + localToken: topics.1, + remoteToken: topics.2, + from: topics.3, + to: data.0, + tokenId: data.1, + extraData: data.2, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + ::tokenize( + &self.to, + ), + as alloy_sol_types::SolType>::tokenize(&self.tokenId), + ::tokenize( + &self.extraData, + ), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + ( + Self::SIGNATURE_HASH.into(), + self.localToken.clone(), + self.remoteToken.clone(), + self.from.clone(), + ) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.localToken, + ); + out[2usize] = ::encode_topic( + &self.remoteToken, + ); + out[3usize] = ::encode_topic( + &self.from, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for ERC721BridgeInitiated { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&ERC721BridgeInitiated> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &ERC721BridgeInitiated) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `Initialized(uint8)` and selector `0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498`. +```solidity +event Initialized(uint8 version); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct Initialized { + #[allow(missing_docs)] + pub version: u8, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for Initialized { + type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<8>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,); + const SIGNATURE: &'static str = "Initialized(uint8)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 127u8, 38u8, 184u8, 63u8, 249u8, 110u8, 31u8, 43u8, 106u8, 104u8, 47u8, + 19u8, 56u8, 82u8, 246u8, 121u8, 138u8, 9u8, 196u8, 101u8, 218u8, 149u8, + 146u8, 20u8, 96u8, 206u8, 251u8, 56u8, 71u8, 64u8, 36u8, 152u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { version: data.0 } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.version), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(),) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for Initialized { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&Initialized> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &Initialized) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + /**Constructor`. +```solidity +constructor(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct constructorCall {} + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: constructorCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for constructorCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolConstructor for constructorCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `MESSENGER()` and selector `0x927ede2d`. +```solidity +function MESSENGER() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct MESSENGERCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`MESSENGER()`](MESSENGERCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct MESSENGERReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: MESSENGERCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for MESSENGERCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: MESSENGERReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for MESSENGERReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for MESSENGERCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "MESSENGER()"; + const SELECTOR: [u8; 4] = [146u8, 126u8, 222u8, 45u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: MESSENGERReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: MESSENGERReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `OTHER_BRIDGE()` and selector `0x7f46ddb2`. +```solidity +function OTHER_BRIDGE() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct OTHER_BRIDGECall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`OTHER_BRIDGE()`](OTHER_BRIDGECall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct OTHER_BRIDGEReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: OTHER_BRIDGECall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for OTHER_BRIDGECall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: OTHER_BRIDGEReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for OTHER_BRIDGEReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for OTHER_BRIDGECall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "OTHER_BRIDGE()"; + const SELECTOR: [u8; 4] = [127u8, 70u8, 221u8, 178u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: OTHER_BRIDGEReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: OTHER_BRIDGEReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `bridgeERC721(address,address,uint256,uint32,bytes)` and selector `0x3687011a`. +```solidity +function bridgeERC721(address _localToken, address _remoteToken, uint256 _tokenId, uint32 _minGasLimit, bytes memory _extraData) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct bridgeERC721Call { + #[allow(missing_docs)] + pub _localToken: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _remoteToken: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _tokenId: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _minGasLimit: u32, + #[allow(missing_docs)] + pub _extraData: alloy::sol_types::private::Bytes, + } + ///Container type for the return parameters of the [`bridgeERC721(address,address,uint256,uint32,bytes)`](bridgeERC721Call) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct bridgeERC721Return {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<32>, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + u32, + alloy::sol_types::private::Bytes, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: bridgeERC721Call) -> Self { + ( + value._localToken, + value._remoteToken, + value._tokenId, + value._minGasLimit, + value._extraData, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for bridgeERC721Call { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _localToken: tuple.0, + _remoteToken: tuple.1, + _tokenId: tuple.2, + _minGasLimit: tuple.3, + _extraData: tuple.4, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: bridgeERC721Return) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for bridgeERC721Return { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl bridgeERC721Return { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for bridgeERC721Call { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<32>, + alloy::sol_types::sol_data::Bytes, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bridgeERC721Return; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "bridgeERC721(address,address,uint256,uint32,bytes)"; + const SELECTOR: [u8; 4] = [54u8, 135u8, 1u8, 26u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._localToken, + ), + ::tokenize( + &self._remoteToken, + ), + as alloy_sol_types::SolType>::tokenize(&self._tokenId), + as alloy_sol_types::SolType>::tokenize(&self._minGasLimit), + ::tokenize( + &self._extraData, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + bridgeERC721Return::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `bridgeERC721To(address,address,address,uint256,uint32,bytes)` and selector `0xaa557452`. +```solidity +function bridgeERC721To(address _localToken, address _remoteToken, address _to, uint256 _tokenId, uint32 _minGasLimit, bytes memory _extraData) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct bridgeERC721ToCall { + #[allow(missing_docs)] + pub _localToken: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _remoteToken: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _tokenId: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _minGasLimit: u32, + #[allow(missing_docs)] + pub _extraData: alloy::sol_types::private::Bytes, + } + ///Container type for the return parameters of the [`bridgeERC721To(address,address,address,uint256,uint32,bytes)`](bridgeERC721ToCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct bridgeERC721ToReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<32>, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + u32, + alloy::sol_types::private::Bytes, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: bridgeERC721ToCall) -> Self { + ( + value._localToken, + value._remoteToken, + value._to, + value._tokenId, + value._minGasLimit, + value._extraData, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for bridgeERC721ToCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _localToken: tuple.0, + _remoteToken: tuple.1, + _to: tuple.2, + _tokenId: tuple.3, + _minGasLimit: tuple.4, + _extraData: tuple.5, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: bridgeERC721ToReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for bridgeERC721ToReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl bridgeERC721ToReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for bridgeERC721ToCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<32>, + alloy::sol_types::sol_data::Bytes, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bridgeERC721ToReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "bridgeERC721To(address,address,address,uint256,uint32,bytes)"; + const SELECTOR: [u8; 4] = [170u8, 85u8, 116u8, 82u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._localToken, + ), + ::tokenize( + &self._remoteToken, + ), + ::tokenize( + &self._to, + ), + as alloy_sol_types::SolType>::tokenize(&self._tokenId), + as alloy_sol_types::SolType>::tokenize(&self._minGasLimit), + ::tokenize( + &self._extraData, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + bridgeERC721ToReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `deposits(address,address,uint256)` and selector `0x5d93a3fc`. +```solidity +function deposits(address, address, uint256) external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct depositsCall { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _1: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _2: alloy::sol_types::private::primitives::aliases::U256, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`deposits(address,address,uint256)`](depositsCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct depositsReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: depositsCall) -> Self { + (value._0, value._1, value._2) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for depositsCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _0: tuple.0, + _1: tuple.1, + _2: tuple.2, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: depositsReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for depositsReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for depositsCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "deposits(address,address,uint256)"; + const SELECTOR: [u8; 4] = [93u8, 147u8, 163u8, 252u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._0, + ), + ::tokenize( + &self._1, + ), + as alloy_sol_types::SolType>::tokenize(&self._2), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: depositsReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: depositsReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `finalizeBridgeERC721(address,address,address,address,uint256,bytes)` and selector `0x761f4493`. +```solidity +function finalizeBridgeERC721(address _localToken, address _remoteToken, address _from, address _to, uint256 _tokenId, bytes memory _extraData) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct finalizeBridgeERC721Call { + #[allow(missing_docs)] + pub _localToken: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _remoteToken: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _from: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _tokenId: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _extraData: alloy::sol_types::private::Bytes, + } + ///Container type for the return parameters of the [`finalizeBridgeERC721(address,address,address,address,uint256,bytes)`](finalizeBridgeERC721Call) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct finalizeBridgeERC721Return {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::Bytes, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: finalizeBridgeERC721Call) -> Self { + ( + value._localToken, + value._remoteToken, + value._from, + value._to, + value._tokenId, + value._extraData, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for finalizeBridgeERC721Call { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _localToken: tuple.0, + _remoteToken: tuple.1, + _from: tuple.2, + _to: tuple.3, + _tokenId: tuple.4, + _extraData: tuple.5, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: finalizeBridgeERC721Return) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for finalizeBridgeERC721Return { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl finalizeBridgeERC721Return { + fn _tokenize( + &self, + ) -> ::ReturnToken< + '_, + > { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for finalizeBridgeERC721Call { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Bytes, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = finalizeBridgeERC721Return; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "finalizeBridgeERC721(address,address,address,address,uint256,bytes)"; + const SELECTOR: [u8; 4] = [118u8, 31u8, 68u8, 147u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._localToken, + ), + ::tokenize( + &self._remoteToken, + ), + ::tokenize( + &self._from, + ), + ::tokenize( + &self._to, + ), + as alloy_sol_types::SolType>::tokenize(&self._tokenId), + ::tokenize( + &self._extraData, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + finalizeBridgeERC721Return::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `initVersion()` and selector `0x38d38c97`. +```solidity +function initVersion() external view returns (uint8); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct initVersionCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`initVersion()`](initVersionCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct initVersionReturn { + #[allow(missing_docs)] + pub _0: u8, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: initVersionCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for initVersionCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<8>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u8,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: initVersionReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for initVersionReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for initVersionCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u8; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<8>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "initVersion()"; + const SELECTOR: [u8; 4] = [56u8, 211u8, 140u8, 151u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: initVersionReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: initVersionReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `initialize(address,address)` and selector `0x485cc955`. +```solidity +function initialize(address _messenger, address _systemConfig) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct initializeCall { + #[allow(missing_docs)] + pub _messenger: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _systemConfig: alloy::sol_types::private::Address, + } + ///Container type for the return parameters of the [`initialize(address,address)`](initializeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct initializeReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: initializeCall) -> Self { + (value._messenger, value._systemConfig) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for initializeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _messenger: tuple.0, + _systemConfig: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: initializeReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for initializeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl initializeReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for initializeCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = initializeReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "initialize(address,address)"; + const SELECTOR: [u8; 4] = [72u8, 92u8, 201u8, 85u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._messenger, + ), + ::tokenize( + &self._systemConfig, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + initializeReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `messenger()` and selector `0x3cb747bf`. +```solidity +function messenger() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct messengerCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`messenger()`](messengerCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct messengerReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: messengerCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for messengerCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: messengerReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for messengerReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for messengerCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "messenger()"; + const SELECTOR: [u8; 4] = [60u8, 183u8, 71u8, 191u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: messengerReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: messengerReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `otherBridge()` and selector `0xc89701a2`. +```solidity +function otherBridge() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct otherBridgeCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`otherBridge()`](otherBridgeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct otherBridgeReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: otherBridgeCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for otherBridgeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: otherBridgeReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for otherBridgeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for otherBridgeCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "otherBridge()"; + const SELECTOR: [u8; 4] = [200u8, 151u8, 1u8, 162u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: otherBridgeReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: otherBridgeReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `paused()` and selector `0x5c975abb`. +```solidity +function paused() external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct pausedCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`paused()`](pausedCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct pausedReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: pausedCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for pausedCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: pausedReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for pausedReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for pausedCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "paused()"; + const SELECTOR: [u8; 4] = [92u8, 151u8, 90u8, 187u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: pausedReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: pausedReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `proxyAdmin()` and selector `0x3e47158c`. +```solidity +function proxyAdmin() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct proxyAdminCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`proxyAdmin()`](proxyAdminCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct proxyAdminReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: proxyAdminCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for proxyAdminCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: proxyAdminReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for proxyAdminReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for proxyAdminCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "proxyAdmin()"; + const SELECTOR: [u8; 4] = [62u8, 71u8, 21u8, 140u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: proxyAdminReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: proxyAdminReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `proxyAdminOwner()` and selector `0xdad544e0`. +```solidity +function proxyAdminOwner() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct proxyAdminOwnerCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`proxyAdminOwner()`](proxyAdminOwnerCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct proxyAdminOwnerReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: proxyAdminOwnerCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for proxyAdminOwnerCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: proxyAdminOwnerReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for proxyAdminOwnerReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for proxyAdminOwnerCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "proxyAdminOwner()"; + const SELECTOR: [u8; 4] = [218u8, 213u8, 68u8, 224u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: proxyAdminOwnerReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: proxyAdminOwnerReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `superchainConfig()` and selector `0x35e80ab3`. +```solidity +function superchainConfig() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct superchainConfigCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`superchainConfig()`](superchainConfigCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct superchainConfigReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: superchainConfigCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for superchainConfigCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: superchainConfigReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for superchainConfigReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for superchainConfigCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "superchainConfig()"; + const SELECTOR: [u8; 4] = [53u8, 232u8, 10u8, 179u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: superchainConfigReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: superchainConfigReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `systemConfig()` and selector `0x33d7e2bd`. +```solidity +function systemConfig() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct systemConfigCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`systemConfig()`](systemConfigCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct systemConfigReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: systemConfigCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for systemConfigCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: systemConfigReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for systemConfigReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for systemConfigCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "systemConfig()"; + const SELECTOR: [u8; 4] = [51u8, 215u8, 226u8, 189u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: systemConfigReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: systemConfigReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `version()` and selector `0x54fd4d50`. +```solidity +function version() external view returns (string memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`version()`](versionCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for versionCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::String; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "version()"; + const SELECTOR: [u8; 4] = [84u8, 253u8, 77u8, 80u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + } + }; + ///Container for all the [`L1ERC721Bridge`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum L1ERC721BridgeCalls { + #[allow(missing_docs)] + MESSENGER(MESSENGERCall), + #[allow(missing_docs)] + OTHER_BRIDGE(OTHER_BRIDGECall), + #[allow(missing_docs)] + bridgeERC721(bridgeERC721Call), + #[allow(missing_docs)] + bridgeERC721To(bridgeERC721ToCall), + #[allow(missing_docs)] + deposits(depositsCall), + #[allow(missing_docs)] + finalizeBridgeERC721(finalizeBridgeERC721Call), + #[allow(missing_docs)] + initVersion(initVersionCall), + #[allow(missing_docs)] + initialize(initializeCall), + #[allow(missing_docs)] + messenger(messengerCall), + #[allow(missing_docs)] + otherBridge(otherBridgeCall), + #[allow(missing_docs)] + paused(pausedCall), + #[allow(missing_docs)] + proxyAdmin(proxyAdminCall), + #[allow(missing_docs)] + proxyAdminOwner(proxyAdminOwnerCall), + #[allow(missing_docs)] + superchainConfig(superchainConfigCall), + #[allow(missing_docs)] + systemConfig(systemConfigCall), + #[allow(missing_docs)] + version(versionCall), + } + impl L1ERC721BridgeCalls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [51u8, 215u8, 226u8, 189u8], + [53u8, 232u8, 10u8, 179u8], + [54u8, 135u8, 1u8, 26u8], + [56u8, 211u8, 140u8, 151u8], + [60u8, 183u8, 71u8, 191u8], + [62u8, 71u8, 21u8, 140u8], + [72u8, 92u8, 201u8, 85u8], + [84u8, 253u8, 77u8, 80u8], + [92u8, 151u8, 90u8, 187u8], + [93u8, 147u8, 163u8, 252u8], + [118u8, 31u8, 68u8, 147u8], + [127u8, 70u8, 221u8, 178u8], + [146u8, 126u8, 222u8, 45u8], + [170u8, 85u8, 116u8, 82u8], + [200u8, 151u8, 1u8, 162u8], + [218u8, 213u8, 68u8, 224u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(systemConfig), + ::core::stringify!(superchainConfig), + ::core::stringify!(bridgeERC721), + ::core::stringify!(initVersion), + ::core::stringify!(messenger), + ::core::stringify!(proxyAdmin), + ::core::stringify!(initialize), + ::core::stringify!(version), + ::core::stringify!(paused), + ::core::stringify!(deposits), + ::core::stringify!(finalizeBridgeERC721), + ::core::stringify!(OTHER_BRIDGE), + ::core::stringify!(MESSENGER), + ::core::stringify!(bridgeERC721To), + ::core::stringify!(otherBridge), + ::core::stringify!(proxyAdminOwner), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for L1ERC721BridgeCalls { + const NAME: &'static str = "L1ERC721BridgeCalls"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 16usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::MESSENGER(_) => { + ::SELECTOR + } + Self::OTHER_BRIDGE(_) => { + ::SELECTOR + } + Self::bridgeERC721(_) => { + ::SELECTOR + } + Self::bridgeERC721To(_) => { + ::SELECTOR + } + Self::deposits(_) => ::SELECTOR, + Self::finalizeBridgeERC721(_) => { + ::SELECTOR + } + Self::initVersion(_) => { + ::SELECTOR + } + Self::initialize(_) => { + ::SELECTOR + } + Self::messenger(_) => { + ::SELECTOR + } + Self::otherBridge(_) => { + ::SELECTOR + } + Self::paused(_) => ::SELECTOR, + Self::proxyAdmin(_) => { + ::SELECTOR + } + Self::proxyAdminOwner(_) => { + ::SELECTOR + } + Self::superchainConfig(_) => { + ::SELECTOR + } + Self::systemConfig(_) => { + ::SELECTOR + } + Self::version(_) => ::SELECTOR, + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn systemConfig( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L1ERC721BridgeCalls::systemConfig) + } + systemConfig + }, + { + fn superchainConfig( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L1ERC721BridgeCalls::superchainConfig) + } + superchainConfig + }, + { + fn bridgeERC721( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L1ERC721BridgeCalls::bridgeERC721) + } + bridgeERC721 + }, + { + fn initVersion( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L1ERC721BridgeCalls::initVersion) + } + initVersion + }, + { + fn messenger( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(L1ERC721BridgeCalls::messenger) + } + messenger + }, + { + fn proxyAdmin( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L1ERC721BridgeCalls::proxyAdmin) + } + proxyAdmin + }, + { + fn initialize( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L1ERC721BridgeCalls::initialize) + } + initialize + }, + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(L1ERC721BridgeCalls::version) + } + version + }, + { + fn paused( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(L1ERC721BridgeCalls::paused) + } + paused + }, + { + fn deposits( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(L1ERC721BridgeCalls::deposits) + } + deposits + }, + { + fn finalizeBridgeERC721( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L1ERC721BridgeCalls::finalizeBridgeERC721) + } + finalizeBridgeERC721 + }, + { + fn OTHER_BRIDGE( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L1ERC721BridgeCalls::OTHER_BRIDGE) + } + OTHER_BRIDGE + }, + { + fn MESSENGER( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(L1ERC721BridgeCalls::MESSENGER) + } + MESSENGER + }, + { + fn bridgeERC721To( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L1ERC721BridgeCalls::bridgeERC721To) + } + bridgeERC721To + }, + { + fn otherBridge( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L1ERC721BridgeCalls::otherBridge) + } + otherBridge + }, + { + fn proxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L1ERC721BridgeCalls::proxyAdminOwner) + } + proxyAdminOwner + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn systemConfig( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1ERC721BridgeCalls::systemConfig) + } + systemConfig + }, + { + fn superchainConfig( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1ERC721BridgeCalls::superchainConfig) + } + superchainConfig + }, + { + fn bridgeERC721( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1ERC721BridgeCalls::bridgeERC721) + } + bridgeERC721 + }, + { + fn initVersion( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1ERC721BridgeCalls::initVersion) + } + initVersion + }, + { + fn messenger( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1ERC721BridgeCalls::messenger) + } + messenger + }, + { + fn proxyAdmin( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1ERC721BridgeCalls::proxyAdmin) + } + proxyAdmin + }, + { + fn initialize( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1ERC721BridgeCalls::initialize) + } + initialize + }, + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1ERC721BridgeCalls::version) + } + version + }, + { + fn paused( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1ERC721BridgeCalls::paused) + } + paused + }, + { + fn deposits( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1ERC721BridgeCalls::deposits) + } + deposits + }, + { + fn finalizeBridgeERC721( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1ERC721BridgeCalls::finalizeBridgeERC721) + } + finalizeBridgeERC721 + }, + { + fn OTHER_BRIDGE( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1ERC721BridgeCalls::OTHER_BRIDGE) + } + OTHER_BRIDGE + }, + { + fn MESSENGER( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1ERC721BridgeCalls::MESSENGER) + } + MESSENGER + }, + { + fn bridgeERC721To( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1ERC721BridgeCalls::bridgeERC721To) + } + bridgeERC721To + }, + { + fn otherBridge( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1ERC721BridgeCalls::otherBridge) + } + otherBridge + }, + { + fn proxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1ERC721BridgeCalls::proxyAdminOwner) + } + proxyAdminOwner + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::MESSENGER(inner) => { + ::abi_encoded_size(inner) + } + Self::OTHER_BRIDGE(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::bridgeERC721(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::bridgeERC721To(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::deposits(inner) => { + ::abi_encoded_size(inner) + } + Self::finalizeBridgeERC721(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::initVersion(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::initialize(inner) => { + ::abi_encoded_size(inner) + } + Self::messenger(inner) => { + ::abi_encoded_size(inner) + } + Self::otherBridge(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::paused(inner) => { + ::abi_encoded_size(inner) + } + Self::proxyAdmin(inner) => { + ::abi_encoded_size(inner) + } + Self::proxyAdminOwner(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::superchainConfig(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::systemConfig(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::version(inner) => { + ::abi_encoded_size(inner) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::MESSENGER(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::OTHER_BRIDGE(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::bridgeERC721(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::bridgeERC721To(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::deposits(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::finalizeBridgeERC721(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::initVersion(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::initialize(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::messenger(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::otherBridge(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::paused(inner) => { + ::abi_encode_raw(inner, out) + } + Self::proxyAdmin(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::proxyAdminOwner(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::superchainConfig(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::systemConfig(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::version(inner) => { + ::abi_encode_raw(inner, out) + } + } + } + } + ///Container for all the [`L1ERC721Bridge`](self) custom errors. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum L1ERC721BridgeErrors { + #[allow(missing_docs)] + ProxyAdminOwnedBase_NotProxyAdmin(ProxyAdminOwnedBase_NotProxyAdmin), + #[allow(missing_docs)] + ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner( + ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner, + ), + #[allow(missing_docs)] + ProxyAdminOwnedBase_NotProxyAdminOwner(ProxyAdminOwnedBase_NotProxyAdminOwner), + #[allow(missing_docs)] + ProxyAdminOwnedBase_NotResolvedDelegateProxy( + ProxyAdminOwnedBase_NotResolvedDelegateProxy, + ), + #[allow(missing_docs)] + ProxyAdminOwnedBase_NotSharedProxyAdminOwner( + ProxyAdminOwnedBase_NotSharedProxyAdminOwner, + ), + #[allow(missing_docs)] + ProxyAdminOwnedBase_ProxyAdminNotFound(ProxyAdminOwnedBase_ProxyAdminNotFound), + #[allow(missing_docs)] + ReinitializableBase_ZeroInitVersion(ReinitializableBase_ZeroInitVersion), + } + impl L1ERC721BridgeErrors { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [7u8, 92u8, 67u8, 20u8], + [51u8, 33u8, 68u8, 219u8], + [84u8, 228u8, 51u8, 205u8], + [127u8, 18u8, 198u8, 75u8], + [155u8, 1u8, 175u8, 237u8], + [196u8, 5u8, 10u8, 38u8], + [232u8, 24u8, 220u8, 195u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(ProxyAdminOwnedBase_NotSharedProxyAdminOwner), + ::core::stringify!(ProxyAdminOwnedBase_ProxyAdminNotFound), + ::core::stringify!(ProxyAdminOwnedBase_NotResolvedDelegateProxy), + ::core::stringify!(ProxyAdminOwnedBase_NotProxyAdminOwner), + ::core::stringify!(ReinitializableBase_ZeroInitVersion), + ::core::stringify!(ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner), + ::core::stringify!(ProxyAdminOwnedBase_NotProxyAdmin), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for L1ERC721BridgeErrors { + const NAME: &'static str = "L1ERC721BridgeErrors"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 7usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::ProxyAdminOwnedBase_NotProxyAdmin(_) => { + ::SELECTOR + } + Self::ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner(_) => { + ::SELECTOR + } + Self::ProxyAdminOwnedBase_NotProxyAdminOwner(_) => { + ::SELECTOR + } + Self::ProxyAdminOwnedBase_NotResolvedDelegateProxy(_) => { + ::SELECTOR + } + Self::ProxyAdminOwnedBase_NotSharedProxyAdminOwner(_) => { + ::SELECTOR + } + Self::ProxyAdminOwnedBase_ProxyAdminNotFound(_) => { + ::SELECTOR + } + Self::ReinitializableBase_ZeroInitVersion(_) => { + ::SELECTOR + } + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn ProxyAdminOwnedBase_NotSharedProxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + L1ERC721BridgeErrors::ProxyAdminOwnedBase_NotSharedProxyAdminOwner, + ) + } + ProxyAdminOwnedBase_NotSharedProxyAdminOwner + }, + { + fn ProxyAdminOwnedBase_ProxyAdminNotFound( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + L1ERC721BridgeErrors::ProxyAdminOwnedBase_ProxyAdminNotFound, + ) + } + ProxyAdminOwnedBase_ProxyAdminNotFound + }, + { + fn ProxyAdminOwnedBase_NotResolvedDelegateProxy( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + L1ERC721BridgeErrors::ProxyAdminOwnedBase_NotResolvedDelegateProxy, + ) + } + ProxyAdminOwnedBase_NotResolvedDelegateProxy + }, + { + fn ProxyAdminOwnedBase_NotProxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + L1ERC721BridgeErrors::ProxyAdminOwnedBase_NotProxyAdminOwner, + ) + } + ProxyAdminOwnedBase_NotProxyAdminOwner + }, + { + fn ReinitializableBase_ZeroInitVersion( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + L1ERC721BridgeErrors::ReinitializableBase_ZeroInitVersion, + ) + } + ReinitializableBase_ZeroInitVersion + }, + { + fn ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + L1ERC721BridgeErrors::ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner, + ) + } + ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner + }, + { + fn ProxyAdminOwnedBase_NotProxyAdmin( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L1ERC721BridgeErrors::ProxyAdminOwnedBase_NotProxyAdmin) + } + ProxyAdminOwnedBase_NotProxyAdmin + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn ProxyAdminOwnedBase_NotSharedProxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + L1ERC721BridgeErrors::ProxyAdminOwnedBase_NotSharedProxyAdminOwner, + ) + } + ProxyAdminOwnedBase_NotSharedProxyAdminOwner + }, + { + fn ProxyAdminOwnedBase_ProxyAdminNotFound( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + L1ERC721BridgeErrors::ProxyAdminOwnedBase_ProxyAdminNotFound, + ) + } + ProxyAdminOwnedBase_ProxyAdminNotFound + }, + { + fn ProxyAdminOwnedBase_NotResolvedDelegateProxy( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + L1ERC721BridgeErrors::ProxyAdminOwnedBase_NotResolvedDelegateProxy, + ) + } + ProxyAdminOwnedBase_NotResolvedDelegateProxy + }, + { + fn ProxyAdminOwnedBase_NotProxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + L1ERC721BridgeErrors::ProxyAdminOwnedBase_NotProxyAdminOwner, + ) + } + ProxyAdminOwnedBase_NotProxyAdminOwner + }, + { + fn ReinitializableBase_ZeroInitVersion( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + L1ERC721BridgeErrors::ReinitializableBase_ZeroInitVersion, + ) + } + ReinitializableBase_ZeroInitVersion + }, + { + fn ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + L1ERC721BridgeErrors::ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner, + ) + } + ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner + }, + { + fn ProxyAdminOwnedBase_NotProxyAdmin( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L1ERC721BridgeErrors::ProxyAdminOwnedBase_NotProxyAdmin) + } + ProxyAdminOwnedBase_NotProxyAdmin + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::ProxyAdminOwnedBase_NotProxyAdmin(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ProxyAdminOwnedBase_NotProxyAdminOwner(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ProxyAdminOwnedBase_NotResolvedDelegateProxy(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ProxyAdminOwnedBase_NotSharedProxyAdminOwner(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ProxyAdminOwnedBase_ProxyAdminNotFound(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ReinitializableBase_ZeroInitVersion(inner) => { + ::abi_encoded_size( + inner, + ) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::ProxyAdminOwnedBase_NotProxyAdmin(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ProxyAdminOwnedBase_NotProxyAdminOwner(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ProxyAdminOwnedBase_NotResolvedDelegateProxy(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ProxyAdminOwnedBase_NotSharedProxyAdminOwner(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ProxyAdminOwnedBase_ProxyAdminNotFound(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ReinitializableBase_ZeroInitVersion(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + } + } + } + ///Container for all the [`L1ERC721Bridge`](self) events. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum L1ERC721BridgeEvents { + #[allow(missing_docs)] + ERC721BridgeFinalized(ERC721BridgeFinalized), + #[allow(missing_docs)] + ERC721BridgeInitiated(ERC721BridgeInitiated), + #[allow(missing_docs)] + Initialized(Initialized), + } + impl L1ERC721BridgeEvents { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 32usize]] = &[ + [ + 31u8, 57u8, 191u8, 103u8, 7u8, 181u8, 214u8, 8u8, 69u8, 62u8, 10u8, + 228u8, 192u8, 103u8, 181u8, 98u8, 188u8, 196u8, 200u8, 92u8, 15u8, 86u8, + 46u8, 245u8, 210u8, 199u8, 116u8, 210u8, 231u8, 241u8, 49u8, 172u8, + ], + [ + 127u8, 38u8, 184u8, 63u8, 249u8, 110u8, 31u8, 43u8, 106u8, 104u8, 47u8, + 19u8, 56u8, 82u8, 246u8, 121u8, 138u8, 9u8, 196u8, 101u8, 218u8, 149u8, + 146u8, 20u8, 96u8, 206u8, 251u8, 56u8, 71u8, 64u8, 36u8, 152u8, + ], + [ + 183u8, 70u8, 14u8, 42u8, 136u8, 15u8, 37u8, 110u8, 190u8, 243u8, 64u8, + 97u8, 22u8, 255u8, 62u8, 238u8, 12u8, 238u8, 81u8, 235u8, 204u8, 220u8, + 42u8, 64u8, 105u8, 143u8, 135u8, 235u8, 178u8, 233u8, 193u8, 165u8, + ], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(ERC721BridgeFinalized), + ::core::stringify!(Initialized), + ::core::stringify!(ERC721BridgeInitiated), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolEventInterface for L1ERC721BridgeEvents { + const NAME: &'static str = "L1ERC721BridgeEvents"; + const COUNT: usize = 3usize; + fn decode_raw_log( + topics: &[alloy_sol_types::Word], + data: &[u8], + ) -> alloy_sol_types::Result { + match topics.first().copied() { + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::ERC721BridgeFinalized) + } + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::ERC721BridgeInitiated) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::Initialized) + } + _ => { + alloy_sol_types::private::Err(alloy_sol_types::Error::InvalidLog { + name: ::NAME, + log: alloy_sol_types::private::Box::new( + alloy_sol_types::private::LogData::new_unchecked( + topics.to_vec(), + data.to_vec().into(), + ), + ), + }) + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for L1ERC721BridgeEvents { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + match self { + Self::ERC721BridgeFinalized(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::ERC721BridgeInitiated(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::Initialized(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + } + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + match self { + Self::ERC721BridgeFinalized(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::ERC721BridgeInitiated(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::Initialized(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`L1ERC721Bridge`](self) contract instance. + +See the [wrapper's documentation](`L1ERC721BridgeInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> L1ERC721BridgeInstance { + L1ERC721BridgeInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + L1ERC721BridgeInstance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + L1ERC721BridgeInstance::::deploy_builder(__provider) + } + /**A [`L1ERC721Bridge`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`L1ERC721Bridge`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct L1ERC721BridgeInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for L1ERC721BridgeInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("L1ERC721BridgeInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > L1ERC721BridgeInstance { + /**Creates a new wrapper around an on-chain [`L1ERC721Bridge`](self) contract instance. + +See the [wrapper's documentation](`L1ERC721BridgeInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl L1ERC721BridgeInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> L1ERC721BridgeInstance { + L1ERC721BridgeInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > L1ERC721BridgeInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`MESSENGER`] function. + pub fn MESSENGER(&self) -> alloy_contract::SolCallBuilder<&P, MESSENGERCall, N> { + self.call_builder(&MESSENGERCall) + } + ///Creates a new call builder for the [`OTHER_BRIDGE`] function. + pub fn OTHER_BRIDGE( + &self, + ) -> alloy_contract::SolCallBuilder<&P, OTHER_BRIDGECall, N> { + self.call_builder(&OTHER_BRIDGECall) + } + ///Creates a new call builder for the [`bridgeERC721`] function. + pub fn bridgeERC721( + &self, + _localToken: alloy::sol_types::private::Address, + _remoteToken: alloy::sol_types::private::Address, + _tokenId: alloy::sol_types::private::primitives::aliases::U256, + _minGasLimit: u32, + _extraData: alloy::sol_types::private::Bytes, + ) -> alloy_contract::SolCallBuilder<&P, bridgeERC721Call, N> { + self.call_builder( + &bridgeERC721Call { + _localToken, + _remoteToken, + _tokenId, + _minGasLimit, + _extraData, + }, + ) + } + ///Creates a new call builder for the [`bridgeERC721To`] function. + pub fn bridgeERC721To( + &self, + _localToken: alloy::sol_types::private::Address, + _remoteToken: alloy::sol_types::private::Address, + _to: alloy::sol_types::private::Address, + _tokenId: alloy::sol_types::private::primitives::aliases::U256, + _minGasLimit: u32, + _extraData: alloy::sol_types::private::Bytes, + ) -> alloy_contract::SolCallBuilder<&P, bridgeERC721ToCall, N> { + self.call_builder( + &bridgeERC721ToCall { + _localToken, + _remoteToken, + _to, + _tokenId, + _minGasLimit, + _extraData, + }, + ) + } + ///Creates a new call builder for the [`deposits`] function. + pub fn deposits( + &self, + _0: alloy::sol_types::private::Address, + _1: alloy::sol_types::private::Address, + _2: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, depositsCall, N> { + self.call_builder(&depositsCall { _0, _1, _2 }) + } + ///Creates a new call builder for the [`finalizeBridgeERC721`] function. + pub fn finalizeBridgeERC721( + &self, + _localToken: alloy::sol_types::private::Address, + _remoteToken: alloy::sol_types::private::Address, + _from: alloy::sol_types::private::Address, + _to: alloy::sol_types::private::Address, + _tokenId: alloy::sol_types::private::primitives::aliases::U256, + _extraData: alloy::sol_types::private::Bytes, + ) -> alloy_contract::SolCallBuilder<&P, finalizeBridgeERC721Call, N> { + self.call_builder( + &finalizeBridgeERC721Call { + _localToken, + _remoteToken, + _from, + _to, + _tokenId, + _extraData, + }, + ) + } + ///Creates a new call builder for the [`initVersion`] function. + pub fn initVersion( + &self, + ) -> alloy_contract::SolCallBuilder<&P, initVersionCall, N> { + self.call_builder(&initVersionCall) + } + ///Creates a new call builder for the [`initialize`] function. + pub fn initialize( + &self, + _messenger: alloy::sol_types::private::Address, + _systemConfig: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, initializeCall, N> { + self.call_builder( + &initializeCall { + _messenger, + _systemConfig, + }, + ) + } + ///Creates a new call builder for the [`messenger`] function. + pub fn messenger(&self) -> alloy_contract::SolCallBuilder<&P, messengerCall, N> { + self.call_builder(&messengerCall) + } + ///Creates a new call builder for the [`otherBridge`] function. + pub fn otherBridge( + &self, + ) -> alloy_contract::SolCallBuilder<&P, otherBridgeCall, N> { + self.call_builder(&otherBridgeCall) + } + ///Creates a new call builder for the [`paused`] function. + pub fn paused(&self) -> alloy_contract::SolCallBuilder<&P, pausedCall, N> { + self.call_builder(&pausedCall) + } + ///Creates a new call builder for the [`proxyAdmin`] function. + pub fn proxyAdmin( + &self, + ) -> alloy_contract::SolCallBuilder<&P, proxyAdminCall, N> { + self.call_builder(&proxyAdminCall) + } + ///Creates a new call builder for the [`proxyAdminOwner`] function. + pub fn proxyAdminOwner( + &self, + ) -> alloy_contract::SolCallBuilder<&P, proxyAdminOwnerCall, N> { + self.call_builder(&proxyAdminOwnerCall) + } + ///Creates a new call builder for the [`superchainConfig`] function. + pub fn superchainConfig( + &self, + ) -> alloy_contract::SolCallBuilder<&P, superchainConfigCall, N> { + self.call_builder(&superchainConfigCall) + } + ///Creates a new call builder for the [`systemConfig`] function. + pub fn systemConfig( + &self, + ) -> alloy_contract::SolCallBuilder<&P, systemConfigCall, N> { + self.call_builder(&systemConfigCall) + } + ///Creates a new call builder for the [`version`] function. + pub fn version(&self) -> alloy_contract::SolCallBuilder<&P, versionCall, N> { + self.call_builder(&versionCall) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > L1ERC721BridgeInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + ///Creates a new event filter for the [`ERC721BridgeFinalized`] event. + pub fn ERC721BridgeFinalized_filter( + &self, + ) -> alloy_contract::Event<&P, ERC721BridgeFinalized, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`ERC721BridgeInitiated`] event. + pub fn ERC721BridgeInitiated_filter( + &self, + ) -> alloy_contract::Event<&P, ERC721BridgeInitiated, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`Initialized`] event. + pub fn Initialized_filter(&self) -> alloy_contract::Event<&P, Initialized, N> { + self.event_filter::() + } + } +} diff --git a/bindings/rust/src/l2_cross_domain_messenger.rs b/bindings/rust/src/l2_cross_domain_messenger.rs new file mode 100644 index 000000000..db743dce2 --- /dev/null +++ b/bindings/rust/src/l2_cross_domain_messenger.rs @@ -0,0 +1,6482 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface L2CrossDomainMessenger { + event FailedRelayedMessage(bytes32 indexed msgHash); + event Initialized(uint8 version); + event RelayedMessage(bytes32 indexed msgHash); + event SentMessage(address indexed target, address sender, bytes message, uint256 messageNonce, uint256 gasLimit); + event SentMessageExtension1(address indexed sender, uint256 value); + + constructor(); + + function ENCODING_OVERHEAD() external view returns (uint64); + function FLOOR_CALLDATA_OVERHEAD() external view returns (uint64); + function MESSAGE_VERSION() external view returns (uint16); + function MIN_GAS_CALLDATA_OVERHEAD() external view returns (uint64); + function MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR() external view returns (uint64); + function MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR() external view returns (uint64); + function OTHER_MESSENGER() external view returns (address); + function RELAY_CALL_OVERHEAD() external view returns (uint64); + function RELAY_CONSTANT_OVERHEAD() external view returns (uint64); + function RELAY_GAS_CHECK_BUFFER() external view returns (uint64); + function RELAY_RESERVED_GAS() external view returns (uint64); + function TX_BASE_GAS() external view returns (uint64); + function baseGas(bytes memory _message, uint32 _minGasLimit) external pure returns (uint64); + function failedMessages(bytes32) external view returns (bool); + function initialize(address _l1CrossDomainMessenger) external; + function l1CrossDomainMessenger() external view returns (address); + function messageNonce() external view returns (uint256); + function otherMessenger() external view returns (address); + function paused() external view returns (bool); + function relayMessage(uint256 _nonce, address _sender, address _target, uint256 _value, uint256 _minGasLimit, bytes memory _message) external payable; + function sendMessage(address _target, bytes memory _message, uint32 _minGasLimit) external payable; + function successfulMessages(bytes32) external view returns (bool); + function version() external view returns (string memory); + function xDomainMessageSender() external view returns (address); +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "constructor", + "inputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "ENCODING_OVERHEAD", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint64", + "internalType": "uint64" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "FLOOR_CALLDATA_OVERHEAD", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint64", + "internalType": "uint64" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "MESSAGE_VERSION", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint16", + "internalType": "uint16" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "MIN_GAS_CALLDATA_OVERHEAD", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint64", + "internalType": "uint64" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint64", + "internalType": "uint64" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint64", + "internalType": "uint64" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "OTHER_MESSENGER", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract CrossDomainMessenger" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "RELAY_CALL_OVERHEAD", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint64", + "internalType": "uint64" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "RELAY_CONSTANT_OVERHEAD", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint64", + "internalType": "uint64" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "RELAY_GAS_CHECK_BUFFER", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint64", + "internalType": "uint64" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "RELAY_RESERVED_GAS", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint64", + "internalType": "uint64" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "TX_BASE_GAS", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint64", + "internalType": "uint64" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "baseGas", + "inputs": [ + { + "name": "_message", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "_minGasLimit", + "type": "uint32", + "internalType": "uint32" + } + ], + "outputs": [ + { + "name": "", + "type": "uint64", + "internalType": "uint64" + } + ], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "failedMessages", + "inputs": [ + { + "name": "", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "initialize", + "inputs": [ + { + "name": "_l1CrossDomainMessenger", + "type": "address", + "internalType": "contract CrossDomainMessenger" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "l1CrossDomainMessenger", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract CrossDomainMessenger" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "messageNonce", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "otherMessenger", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract CrossDomainMessenger" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "paused", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "relayMessage", + "inputs": [ + { + "name": "_nonce", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_sender", + "type": "address", + "internalType": "address" + }, + { + "name": "_target", + "type": "address", + "internalType": "address" + }, + { + "name": "_value", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_minGasLimit", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_message", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "sendMessage", + "inputs": [ + { + "name": "_target", + "type": "address", + "internalType": "address" + }, + { + "name": "_message", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "_minGasLimit", + "type": "uint32", + "internalType": "uint32" + } + ], + "outputs": [], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "successfulMessages", + "inputs": [ + { + "name": "", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "version", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "xDomainMessageSender", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "event", + "name": "FailedRelayedMessage", + "inputs": [ + { + "name": "msgHash", + "type": "bytes32", + "indexed": true, + "internalType": "bytes32" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "Initialized", + "inputs": [ + { + "name": "version", + "type": "uint8", + "indexed": false, + "internalType": "uint8" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "RelayedMessage", + "inputs": [ + { + "name": "msgHash", + "type": "bytes32", + "indexed": true, + "internalType": "bytes32" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "SentMessage", + "inputs": [ + { + "name": "target", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "sender", + "type": "address", + "indexed": false, + "internalType": "address" + }, + { + "name": "message", + "type": "bytes", + "indexed": false, + "internalType": "bytes" + }, + { + "name": "messageNonce", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + }, + { + "name": "gasLimit", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "SentMessageExtension1", + "inputs": [ + { + "name": "sender", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "value", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod L2CrossDomainMessenger { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x608060405234801561001057600080fd5b5061001961001e565b6100eb565b600054600160a81b900460ff161561008c5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff600160a01b909104811610156100e9576000805460ff60a01b191660ff60a01b17905560405160ff81527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b611e2b806100fa6000396000f3fe60806040526004361061018b5760003560e01c80638cbeeef2116100d6578063c4d66de81161007f578063ddd5a40f11610059578063ddd5a40f1461043e578063e46e245a14610454578063ecc704281461046957600080fd5b8063c4d66de8146103de578063d764ad0b146103fe578063db505d801461041157600080fd5b8063a7119869116100b0578063a711986914610333578063b1b1b2091461038e578063b28ade25146103be57600080fd5b80638cbeeef2146102405780639fce812c14610333578063a4e7f8bd1461035e57600080fd5b80634c1d6a69116101385780635c975abb116101125780635c975abb146102c25780636e296e45146102e257806383a740741461031c57600080fd5b80634c1d6a691461024057806354fd4d50146102565780635644cfdf146102ac57600080fd5b80632f7d3922116101695780632f7d3922146101ed5780633dbb202b146102035780633f827a5a1461021857600080fd5b8063028f85f7146101905780630c568498146101c35780632828d7e8146101d8575b600080fd5b34801561019c57600080fd5b506101a5601081565b60405167ffffffffffffffff90911681526020015b60405180910390f35b3480156101cf57600080fd5b506101a5603f81565b3480156101e457600080fd5b506101a5604081565b3480156101f957600080fd5b506101a561520881565b610216610211366004611861565b6104ce565b005b34801561022457600080fd5b5061022d600181565b60405161ffff90911681526020016101ba565b34801561024c57600080fd5b506101a5619c4081565b34801561026257600080fd5b5061029f6040518060400160405280600581526020017f322e322e3000000000000000000000000000000000000000000000000000000081525081565b6040516101ba9190611933565b3480156102b857600080fd5b506101a561138881565b3480156102ce57600080fd5b5060005b60405190151581526020016101ba565b3480156102ee57600080fd5b506102f7610761565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101ba565b34801561032857600080fd5b506101a562030d4081565b34801561033f57600080fd5b5060cf5473ffffffffffffffffffffffffffffffffffffffff166102f7565b34801561036a57600080fd5b506102d2610379366004611946565b60ce6020526000908152604090205460ff1681565b34801561039a57600080fd5b506102d26103a9366004611946565b60cb6020526000908152604090205460ff1681565b3480156103ca57600080fd5b506101a56103d936600461198e565b61084d565b3480156103ea57600080fd5b506102166103f9366004611a6e565b61090e565b61021661040c366004611a8b565b610b0d565b34801561041d57600080fd5b5060cf546102f79073ffffffffffffffffffffffffffffffffffffffff1681565b34801561044a57600080fd5b506101a561010481565b34801561046057600080fd5b506101a5602881565b34801561047557600080fd5b506104c060cd547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167e010000000000000000000000000000000000000000000000000000000000001790565b6040519081526020016101ba565b60cf54604080516020601f86018190048102820181019092528481526106369273ffffffffffffffffffffffffffffffffffffffff169161052c9190879087908190840183828082843760009201919091525087925061084d915050565b347fd764ad0b0000000000000000000000000000000000000000000000000000000061059860cd547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167e010000000000000000000000000000000000000000000000000000000000001790565b338a34898c8c6040516024016105b49796959493929190611b5a565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091526113f2565b8373ffffffffffffffffffffffffffffffffffffffff167fcb0f7ffd78f9aee47a248fae8db181db6eee833039123e026dcbff529522e52a3385856106bb60cd547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167e010000000000000000000000000000000000000000000000000000000000001790565b866040516106cd959493929190611bb9565b60405180910390a260405134815233907f8ebb2ec2465bdb2a06a66fc37a0963af8a2a6a1479d81d56fdb8cbb98096d5469060200160405180910390a2505060cd80547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff808216600101167fffff0000000000000000000000000000000000000000000000000000000000009091161790555050565b60cc5460009073ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff215301610830576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603560248201527f43726f7373446f6d61696e4d657373656e6765723a2078446f6d61696e4d657360448201527f7361676553656e646572206973206e6f7420736574000000000000000000000060648201526084015b60405180910390fd5b5060cc5473ffffffffffffffffffffffffffffffffffffffff1690565b600080603f610863604063ffffffff8616611c36565b61086d9190611c66565b611388619c406108808162030d40611cb4565b61088a9190611cb4565b6108949190611cb4565b61089e9190611cb4565b9050600061010467ffffffffffffffff1685516108bb9190611ce0565b90506108f96108cb601083611c36565b6108d59084611cb4565b67ffffffffffffffff166108ea602884611c36565b67ffffffffffffffff16611480565b61090590615208611cb4565b95945050505050565b6000547501000000000000000000000000000000000000000000900460ff1615808015610959575060005460017401000000000000000000000000000000000000000090910460ff16105b8061098b5750303b15801561098b575060005474010000000000000000000000000000000000000000900460ff166001145b610a17576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610827565b600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16740100000000000000000000000000000000000000001790558015610a9d57600080547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff1675010000000000000000000000000000000000000000001790555b610aa682611499565b8015610b0957600080547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b60f087901c60028110610bc8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604d60248201527f43726f7373446f6d61696e4d657373656e6765723a206f6e6c7920766572736960448201527f6f6e2030206f722031206d657373616765732061726520737570706f7274656460648201527f20617420746869732074696d6500000000000000000000000000000000000000608482015260a401610827565b8061ffff16600003610cbd576000610c19878986868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508f92506115d5915050565b600081815260cb602052604090205490915060ff1615610cbb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f43726f7373446f6d61696e4d657373656e6765723a206c65676163792077697460448201527f6864726177616c20616c72656164792072656c617965640000000000000000006064820152608401610827565b505b6000610d03898989898989898080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506115f492505050565b9050610d4c60cf54337fffffffffffffffffffffffffeeeeffffffffffffffffffffffffffffffffeeef0173ffffffffffffffffffffffffffffffffffffffff90811691161490565b15610d8457853414610d6057610d60611cf8565b600081815260ce602052604090205460ff1615610d7f57610d7f611cf8565b610ed6565b3415610e38576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152605060248201527f43726f7373446f6d61696e4d657373656e6765723a2076616c7565206d75737460448201527f206265207a65726f20756e6c657373206d6573736167652069732066726f6d2060648201527f612073797374656d206164647265737300000000000000000000000000000000608482015260a401610827565b600081815260ce602052604090205460ff16610ed6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f43726f7373446f6d61696e4d657373656e6765723a206d65737361676520636160448201527f6e6e6f74206265207265706c61796564000000000000000000000000000000006064820152608401610827565b610edf87611617565b15610f92576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604360248201527f43726f7373446f6d61696e4d657373656e6765723a2063616e6e6f742073656e60448201527f64206d65737361676520746f20626c6f636b65642073797374656d206164647260648201527f6573730000000000000000000000000000000000000000000000000000000000608482015260a401610827565b600081815260cb602052604090205460ff1615611031576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f43726f7373446f6d61696e4d657373656e6765723a206d65737361676520686160448201527f7320616c7265616479206265656e2072656c61796564000000000000000000006064820152608401610827565b61105285611043611388619c40611cb4565b67ffffffffffffffff1661166c565b1580611078575060cc5473ffffffffffffffffffffffffffffffffffffffff1661dead14155b1561119157600081815260ce602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555182917f99d0e048484baa1b1540b1367cb128acd7ab2946d1ed91ec10e3c85e4bf51b8f91a27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff320161118a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f43726f7373446f6d61696e4d657373656e6765723a206661696c656420746f2060448201527f72656c6179206d657373616765000000000000000000000000000000000000006064820152608401610827565b50506113e9565b60cc80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8a16179055600061122288619c405a6111e59190611d27565b8988888080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061168a92505050565b60cc80547fffffffffffffffffffffffff00000000000000000000000000000000000000001661dead179055905080156112d857600082815260cb602052604090205460ff161561127557611275611cf8565b600082815260cb602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555183917f4641df4a962071e12719d8c8c8e5ac7fc4d97b927346a3d7a335b1f7517e133c91a26113e5565b600082815260ce602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555183917f99d0e048484baa1b1540b1367cb128acd7ab2946d1ed91ec10e3c85e4bf51b8f91a27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff32016113e5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f43726f7373446f6d61696e4d657373656e6765723a206661696c656420746f2060448201527f72656c6179206d657373616765000000000000000000000000000000000000006064820152608401610827565b5050505b50505050505050565b6040517fc2b3e5ac0000000000000000000000000000000000000000000000000000000081527342000000000000000000000000000000000000169063c2b3e5ac90849061144890889088908790600401611d3e565b6000604051808303818588803b15801561146157600080fd5b505af1158015611475573d6000803e3d6000fd5b505050505050505050565b6000818310156114905781611492565b825b9392505050565b6000547501000000000000000000000000000000000000000000900460ff16611544576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610827565b60cc5473ffffffffffffffffffffffffffffffffffffffff1661158e5760cc80547fffffffffffffffffffffffff00000000000000000000000000000000000000001661dead1790555b60cf80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60006115e3858585856116a2565b805190602001209050949350505050565b600061160487878787878761173b565b8051906020012090509695505050505050565b600073ffffffffffffffffffffffffffffffffffffffff8216301480611666575073ffffffffffffffffffffffffffffffffffffffff8216734200000000000000000000000000000000000016145b92915050565b600080603f83619c4001026040850201603f5a021015949350505050565b6000806000835160208501868989f195945050505050565b6060848484846040516024016116bb9493929190611d7d565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fcbd4ece9000000000000000000000000000000000000000000000000000000001790529050949350505050565b606086868686868660405160240161175896959493929190611dc7565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fd764ad0b0000000000000000000000000000000000000000000000000000000017905290509695505050505050565b73ffffffffffffffffffffffffffffffffffffffff811681146117fc57600080fd5b50565b60008083601f84011261181157600080fd5b50813567ffffffffffffffff81111561182957600080fd5b60208301915083602082850101111561184157600080fd5b9250929050565b803563ffffffff8116811461185c57600080fd5b919050565b6000806000806060858703121561187757600080fd5b8435611882816117da565b9350602085013567ffffffffffffffff81111561189e57600080fd5b6118aa878288016117ff565b90945092506118bd905060408601611848565b905092959194509250565b6000815180845260005b818110156118ee576020818501810151868301820152016118d2565b81811115611900576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60208152600061149260208301846118c8565b60006020828403121561195857600080fd5b5035919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080604083850312156119a157600080fd5b823567ffffffffffffffff808211156119b957600080fd5b818501915085601f8301126119cd57600080fd5b8135818111156119df576119df61195f565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908382118183101715611a2557611a2561195f565b81604052828152886020848701011115611a3e57600080fd5b826020860160208301376000602084830101528096505050505050611a6560208401611848565b90509250929050565b600060208284031215611a8057600080fd5b8135611492816117da565b600080600080600080600060c0888a031215611aa657600080fd5b873596506020880135611ab8816117da565b95506040880135611ac8816117da565b9450606088013593506080880135925060a088013567ffffffffffffffff811115611af257600080fd5b611afe8a828b016117ff565b989b979a50959850939692959293505050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b878152600073ffffffffffffffffffffffffffffffffffffffff808916602084015280881660408401525085606083015263ffffffff8516608083015260c060a0830152611bac60c083018486611b11565b9998505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff86168152608060208201526000611be9608083018688611b11565b905083604083015263ffffffff831660608301529695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600067ffffffffffffffff80831681851681830481118215151615611c5d57611c5d611c07565b02949350505050565b600067ffffffffffffffff80841680611ca8577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b92169190910492915050565b600067ffffffffffffffff808316818516808303821115611cd757611cd7611c07565b01949350505050565b60008219821115611cf357611cf3611c07565b500190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b600082821015611d3957611d39611c07565b500390565b73ffffffffffffffffffffffffffffffffffffffff8416815267ffffffffffffffff8316602082015260606040820152600061090560608301846118c8565b600073ffffffffffffffffffffffffffffffffffffffff808716835280861660208401525060806040830152611db660808301856118c8565b905082606083015295945050505050565b868152600073ffffffffffffffffffffffffffffffffffffffff808816602084015280871660408401525084606083015283608083015260c060a0830152611e1260c08301846118c8565b9897505050505050505056fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[Pa\0\x19a\0\x1EV[a\0\xEBV[`\0T`\x01`\xA8\x1B\x90\x04`\xFF\x16\x15a\0\x8CW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`'`$\x82\x01R\x7FInitializable: contract is initi`D\x82\x01Rfalizing`\xC8\x1B`d\x82\x01R`\x84\x01`@Q\x80\x91\x03\x90\xFD[`\0T`\xFF`\x01`\xA0\x1B\x90\x91\x04\x81\x16\x10\x15a\0\xE9W`\0\x80T`\xFF`\xA0\x1B\x19\x16`\xFF`\xA0\x1B\x17\x90U`@Q`\xFF\x81R\x7F\x7F&\xB8?\xF9n\x1F+jh/\x138R\xF6y\x8A\t\xC4e\xDA\x95\x92\x14`\xCE\xFB8G@$\x98\x90` \x01`@Q\x80\x91\x03\x90\xA1[V[a\x1E+\x80a\0\xFA`\09`\0\xF3\xFE`\x80`@R`\x046\x10a\x01\x8BW`\x005`\xE0\x1C\x80c\x8C\xBE\xEE\xF2\x11a\0\xD6W\x80c\xC4\xD6m\xE8\x11a\0\x7FW\x80c\xDD\xD5\xA4\x0F\x11a\0YW\x80c\xDD\xD5\xA4\x0F\x14a\x04>W\x80c\xE4n$Z\x14a\x04TW\x80c\xEC\xC7\x04(\x14a\x04iW`\0\x80\xFD[\x80c\xC4\xD6m\xE8\x14a\x03\xDEW\x80c\xD7d\xAD\x0B\x14a\x03\xFEW\x80c\xDBP]\x80\x14a\x04\x11W`\0\x80\xFD[\x80c\xA7\x11\x98i\x11a\0\xB0W\x80c\xA7\x11\x98i\x14a\x033W\x80c\xB1\xB1\xB2\t\x14a\x03\x8EW\x80c\xB2\x8A\xDE%\x14a\x03\xBEW`\0\x80\xFD[\x80c\x8C\xBE\xEE\xF2\x14a\x02@W\x80c\x9F\xCE\x81,\x14a\x033W\x80c\xA4\xE7\xF8\xBD\x14a\x03^W`\0\x80\xFD[\x80cL\x1Dji\x11a\x018W\x80c\\\x97Z\xBB\x11a\x01\x12W\x80c\\\x97Z\xBB\x14a\x02\xC2W\x80cn)nE\x14a\x02\xE2W\x80c\x83\xA7@t\x14a\x03\x1CW`\0\x80\xFD[\x80cL\x1Dji\x14a\x02@W\x80cT\xFDMP\x14a\x02VW\x80cVD\xCF\xDF\x14a\x02\xACW`\0\x80\xFD[\x80c/}9\"\x11a\x01iW\x80c/}9\"\x14a\x01\xEDW\x80c=\xBB +\x14a\x02\x03W\x80c?\x82zZ\x14a\x02\x18W`\0\x80\xFD[\x80c\x02\x8F\x85\xF7\x14a\x01\x90W\x80c\x0CV\x84\x98\x14a\x01\xC3W\x80c((\xD7\xE8\x14a\x01\xD8W[`\0\x80\xFD[4\x80\x15a\x01\x9CW`\0\x80\xFD[Pa\x01\xA5`\x10\x81V[`@Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[4\x80\x15a\x01\xCFW`\0\x80\xFD[Pa\x01\xA5`?\x81V[4\x80\x15a\x01\xE4W`\0\x80\xFD[Pa\x01\xA5`@\x81V[4\x80\x15a\x01\xF9W`\0\x80\xFD[Pa\x01\xA5aR\x08\x81V[a\x02\x16a\x02\x116`\x04a\x18aV[a\x04\xCEV[\0[4\x80\x15a\x02$W`\0\x80\xFD[Pa\x02-`\x01\x81V[`@Qa\xFF\xFF\x90\x91\x16\x81R` \x01a\x01\xBAV[4\x80\x15a\x02LW`\0\x80\xFD[Pa\x01\xA5a\x9C@\x81V[4\x80\x15a\x02bW`\0\x80\xFD[Pa\x02\x9F`@Q\x80`@\x01`@R\x80`\x05\x81R` \x01\x7F2.2.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\x81RP\x81V[`@Qa\x01\xBA\x91\x90a\x193V[4\x80\x15a\x02\xB8W`\0\x80\xFD[Pa\x01\xA5a\x13\x88\x81V[4\x80\x15a\x02\xCEW`\0\x80\xFD[P`\0[`@Q\x90\x15\x15\x81R` \x01a\x01\xBAV[4\x80\x15a\x02\xEEW`\0\x80\xFD[Pa\x02\xF7a\x07aV[`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01a\x01\xBAV[4\x80\x15a\x03(W`\0\x80\xFD[Pa\x01\xA5b\x03\r@\x81V[4\x80\x15a\x03?W`\0\x80\xFD[P`\xCFTs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a\x02\xF7V[4\x80\x15a\x03jW`\0\x80\xFD[Pa\x02\xD2a\x03y6`\x04a\x19FV[`\xCE` R`\0\x90\x81R`@\x90 T`\xFF\x16\x81V[4\x80\x15a\x03\x9AW`\0\x80\xFD[Pa\x02\xD2a\x03\xA96`\x04a\x19FV[`\xCB` R`\0\x90\x81R`@\x90 T`\xFF\x16\x81V[4\x80\x15a\x03\xCAW`\0\x80\xFD[Pa\x01\xA5a\x03\xD96`\x04a\x19\x8EV[a\x08MV[4\x80\x15a\x03\xEAW`\0\x80\xFD[Pa\x02\x16a\x03\xF96`\x04a\x1AnV[a\t\x0EV[a\x02\x16a\x04\x0C6`\x04a\x1A\x8BV[a\x0B\rV[4\x80\x15a\x04\x1DW`\0\x80\xFD[P`\xCFTa\x02\xF7\x90s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[4\x80\x15a\x04JW`\0\x80\xFD[Pa\x01\xA5a\x01\x04\x81V[4\x80\x15a\x04`W`\0\x80\xFD[Pa\x01\xA5`(\x81V[4\x80\x15a\x04uW`\0\x80\xFD[Pa\x04\xC0`\xCDT}\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16~\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x17\x90V[`@Q\x90\x81R` \x01a\x01\xBAV[`\xCFT`@\x80Q` `\x1F\x86\x01\x81\x90\x04\x81\x02\x82\x01\x81\x01\x90\x92R\x84\x81Ra\x066\x92s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x91a\x05,\x91\x90\x87\x90\x87\x90\x81\x90\x84\x01\x83\x82\x80\x82\x847`\0\x92\x01\x91\x90\x91RP\x87\x92Pa\x08M\x91PPV[4\x7F\xD7d\xAD\x0B\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\0a\x05\x98`\xCDT}\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16~\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x17\x90V[3\x8A4\x89\x8C\x8C`@Q`$\x01a\x05\xB4\x97\x96\x95\x94\x93\x92\x91\x90a\x1BZV[`@\x80Q\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x81\x84\x03\x01\x81R\x91\x90R` \x81\x01\x80Q{\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xFF\xFF\xFF\xFF\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\x90\x93\x16\x92\x90\x92\x17\x90\x91Ra\x13\xF2V[\x83s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xCB\x0F\x7F\xFDx\xF9\xAE\xE4z$\x8F\xAE\x8D\xB1\x81\xDBn\xEE\x8309\x12>\x02m\xCB\xFFR\x95\"\xE5*3\x85\x85a\x06\xBB`\xCDT}\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16~\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x17\x90V[\x86`@Qa\x06\xCD\x95\x94\x93\x92\x91\x90a\x1B\xB9V[`@Q\x80\x91\x03\x90\xA2`@Q4\x81R3\x90\x7F\x8E\xBB.\xC2F[\xDB*\x06\xA6o\xC3z\tc\xAF\x8A*j\x14y\xD8\x1DV\xFD\xB8\xCB\xB9\x80\x96\xD5F\x90` \x01`@Q\x80\x91\x03\x90\xA2PP`\xCD\x80T}\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x16`\x01\x01\x16\x7F\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x91\x16\x17\x90UPPV[`\xCCT`\0\x90s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF!S\x01a\x080W`@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\x82\x01R`5`$\x82\x01R\x7FCrossDomainMessenger: xDomainMes`D\x82\x01R\x7FsageSender is not set\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01[`@Q\x80\x91\x03\x90\xFD[P`\xCCTs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90V[`\0\x80`?a\x08c`@c\xFF\xFF\xFF\xFF\x86\x16a\x1C6V[a\x08m\x91\x90a\x1CfV[a\x13\x88a\x9C@a\x08\x80\x81b\x03\r@a\x1C\xB4V[a\x08\x8A\x91\x90a\x1C\xB4V[a\x08\x94\x91\x90a\x1C\xB4V[a\x08\x9E\x91\x90a\x1C\xB4V[\x90P`\0a\x01\x04g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x85Qa\x08\xBB\x91\x90a\x1C\xE0V[\x90Pa\x08\xF9a\x08\xCB`\x10\x83a\x1C6V[a\x08\xD5\x90\x84a\x1C\xB4V[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a\x08\xEA`(\x84a\x1C6V[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a\x14\x80V[a\t\x05\x90aR\x08a\x1C\xB4V[\x95\x94PPPPPV[`\0Tu\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16\x15\x80\x80\x15a\tYWP`\0T`\x01t\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x91\x04`\xFF\x16\x10[\x80a\t\x8BWP0;\x15\x80\x15a\t\x8BWP`\0Tt\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16`\x01\x14[a\n\x17W`@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\x82\x01R`.`$\x82\x01R\x7FInitializable: contract is alrea`D\x82\x01R\x7Fdy initialized\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x08'V[`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16t\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x17\x90U\x80\x15a\n\x9DW`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16u\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x17\x90U[a\n\xA6\x82a\x14\x99V[\x80\x15a\x0B\tW`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90U`@Q`\x01\x81R\x7F\x7F&\xB8?\xF9n\x1F+jh/\x138R\xF6y\x8A\t\xC4e\xDA\x95\x92\x14`\xCE\xFB8G@$\x98\x90` \x01`@Q\x80\x91\x03\x90\xA1[PPV[`\xF0\x87\x90\x1C`\x02\x81\x10a\x0B\xC8W`@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\x82\x01R`M`$\x82\x01R\x7FCrossDomainMessenger: only versi`D\x82\x01R\x7Fon 0 or 1 messages are supported`d\x82\x01R\x7F at this time\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x84\x82\x01R`\xA4\x01a\x08'V[\x80a\xFF\xFF\x16`\0\x03a\x0C\xBDW`\0a\x0C\x19\x87\x89\x86\x86\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RP\x8F\x92Pa\x15\xD5\x91PPV[`\0\x81\x81R`\xCB` R`@\x90 T\x90\x91P`\xFF\x16\x15a\x0C\xBBW`@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\x82\x01R`7`$\x82\x01R\x7FCrossDomainMessenger: legacy wit`D\x82\x01R\x7Fhdrawal already relayed\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x08'V[P[`\0a\r\x03\x89\x89\x89\x89\x89\x89\x89\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RPa\x15\xF4\x92PPPV[\x90Pa\rL`\xCFT3\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xEE\xEE\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xEE\xEF\x01s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x81\x16\x91\x16\x14\x90V[\x15a\r\x84W\x854\x14a\r`Wa\r`a\x1C\xF8V[`\0\x81\x81R`\xCE` R`@\x90 T`\xFF\x16\x15a\r\x7FWa\r\x7Fa\x1C\xF8V[a\x0E\xD6V[4\x15a\x0E8W`@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\x82\x01R`P`$\x82\x01R\x7FCrossDomainMessenger: value must`D\x82\x01R\x7F be zero unless message is from `d\x82\x01R\x7Fa system address\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x84\x82\x01R`\xA4\x01a\x08'V[`\0\x81\x81R`\xCE` R`@\x90 T`\xFF\x16a\x0E\xD6W`@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\x82\x01R`0`$\x82\x01R\x7FCrossDomainMessenger: message ca`D\x82\x01R\x7Fnnot be replayed\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x08'V[a\x0E\xDF\x87a\x16\x17V[\x15a\x0F\x92W`@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\x82\x01R`C`$\x82\x01R\x7FCrossDomainMessenger: cannot sen`D\x82\x01R\x7Fd message to blocked system addr`d\x82\x01R\x7Fess\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x84\x82\x01R`\xA4\x01a\x08'V[`\0\x81\x81R`\xCB` R`@\x90 T`\xFF\x16\x15a\x101W`@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\x82\x01R`6`$\x82\x01R\x7FCrossDomainMessenger: message ha`D\x82\x01R\x7Fs already been relayed\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x08'V[a\x10R\x85a\x10Ca\x13\x88a\x9C@a\x1C\xB4V[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a\x16lV[\x15\x80a\x10xWP`\xCCTs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a\xDE\xAD\x14\x15[\x15a\x11\x91W`\0\x81\x81R`\xCE` R`@\x80\x82 \x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x16`\x01\x17\x90UQ\x82\x91\x7F\x99\xD0\xE0HHK\xAA\x1B\x15@\xB16|\xB1(\xAC\xD7\xAB)F\xD1\xED\x91\xEC\x10\xE3\xC8^K\xF5\x1B\x8F\x91\xA2\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF2\x01a\x11\x8AW`@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\x82\x01R`-`$\x82\x01R\x7FCrossDomainMessenger: failed to `D\x82\x01R\x7Frelay message\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x08'V[PPa\x13\xE9V[`\xCC\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x8A\x16\x17\x90U`\0a\x12\"\x88a\x9C@Za\x11\xE5\x91\x90a\x1D'V[\x89\x88\x88\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RPa\x16\x8A\x92PPPV[`\xCC\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16a\xDE\xAD\x17\x90U\x90P\x80\x15a\x12\xD8W`\0\x82\x81R`\xCB` R`@\x90 T`\xFF\x16\x15a\x12uWa\x12ua\x1C\xF8V[`\0\x82\x81R`\xCB` R`@\x80\x82 \x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x16`\x01\x17\x90UQ\x83\x91\x7FFA\xDFJ\x96 q\xE1'\x19\xD8\xC8\xC8\xE5\xAC\x7F\xC4\xD9{\x92sF\xA3\xD7\xA35\xB1\xF7Q~\x13<\x91\xA2a\x13\xE5V[`\0\x82\x81R`\xCE` R`@\x80\x82 \x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x16`\x01\x17\x90UQ\x83\x91\x7F\x99\xD0\xE0HHK\xAA\x1B\x15@\xB16|\xB1(\xAC\xD7\xAB)F\xD1\xED\x91\xEC\x10\xE3\xC8^K\xF5\x1B\x8F\x91\xA2\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF2\x01a\x13\xE5W`@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\x82\x01R`-`$\x82\x01R\x7FCrossDomainMessenger: failed to `D\x82\x01R\x7Frelay message\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x08'V[PPP[PPPPPPPV[`@Q\x7F\xC2\xB3\xE5\xAC\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\x81RsB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x90c\xC2\xB3\xE5\xAC\x90\x84\x90a\x14H\x90\x88\x90\x88\x90\x87\x90`\x04\x01a\x1D>V[`\0`@Q\x80\x83\x03\x81\x85\x88\x80;\x15\x80\x15a\x14aW`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x14uW=`\0\x80>=`\0\xFD[PPPPPPPPPV[`\0\x81\x83\x10\x15a\x14\x90W\x81a\x14\x92V[\x82[\x93\x92PPPV[`\0Tu\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16a\x15DW`@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\x82\x01R`+`$\x82\x01R\x7FInitializable: contract is not i`D\x82\x01R\x7Fnitializing\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x08'V[`\xCCTs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a\x15\x8EW`\xCC\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16a\xDE\xAD\x17\x90U[`\xCF\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x92\x90\x92\x16\x91\x90\x91\x17\x90UV[`\0a\x15\xE3\x85\x85\x85\x85a\x16\xA2V[\x80Q\x90` \x01 \x90P\x94\x93PPPPV[`\0a\x16\x04\x87\x87\x87\x87\x87\x87a\x17;V[\x80Q\x90` \x01 \x90P\x96\x95PPPPPPV[`\0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x160\x14\x80a\x16fWPs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x14[\x92\x91PPV[`\0\x80`?\x83a\x9C@\x01\x02`@\x85\x02\x01`?Z\x02\x10\x15\x94\x93PPPPV[`\0\x80`\0\x83Q` \x85\x01\x86\x89\x89\xF1\x95\x94PPPPPV[``\x84\x84\x84\x84`@Q`$\x01a\x16\xBB\x94\x93\x92\x91\x90a\x1D}V[`@\x80Q\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x81\x84\x03\x01\x81R\x91\x90R` \x81\x01\x80Q{\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xCB\xD4\xEC\xE9\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\x17\x90R\x90P\x94\x93PPPPV[``\x86\x86\x86\x86\x86\x86`@Q`$\x01a\x17X\x96\x95\x94\x93\x92\x91\x90a\x1D\xC7V[`@\x80Q\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x81\x84\x03\x01\x81R\x91\x90R` \x81\x01\x80Q{\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xD7d\xAD\x0B\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\x17\x90R\x90P\x96\x95PPPPPPV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x17\xFCW`\0\x80\xFD[PV[`\0\x80\x83`\x1F\x84\x01\x12a\x18\x11W`\0\x80\xFD[P\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x18)W`\0\x80\xFD[` \x83\x01\x91P\x83` \x82\x85\x01\x01\x11\x15a\x18AW`\0\x80\xFD[\x92P\x92\x90PV[\x805c\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x18\\W`\0\x80\xFD[\x91\x90PV[`\0\x80`\0\x80``\x85\x87\x03\x12\x15a\x18wW`\0\x80\xFD[\x845a\x18\x82\x81a\x17\xDAV[\x93P` \x85\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x18\x9EW`\0\x80\xFD[a\x18\xAA\x87\x82\x88\x01a\x17\xFFV[\x90\x94P\x92Pa\x18\xBD\x90P`@\x86\x01a\x18HV[\x90P\x92\x95\x91\x94P\x92PV[`\0\x81Q\x80\x84R`\0[\x81\x81\x10\x15a\x18\xEEW` \x81\x85\x01\x81\x01Q\x86\x83\x01\x82\x01R\x01a\x18\xD2V[\x81\x81\x11\x15a\x19\0W`\0` \x83\x87\x01\x01R[P`\x1F\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x92\x90\x92\x01` \x01\x92\x91PPV[` \x81R`\0a\x14\x92` \x83\x01\x84a\x18\xC8V[`\0` \x82\x84\x03\x12\x15a\x19XW`\0\x80\xFD[P5\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[`\0\x80`@\x83\x85\x03\x12\x15a\x19\xA1W`\0\x80\xFD[\x825g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x19\xB9W`\0\x80\xFD[\x81\x85\x01\x91P\x85`\x1F\x83\x01\x12a\x19\xCDW`\0\x80\xFD[\x815\x81\x81\x11\x15a\x19\xDFWa\x19\xDFa\x19_V[`@Q`\x1F\x82\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x90\x81\x16`?\x01\x16\x81\x01\x90\x83\x82\x11\x81\x83\x10\x17\x15a\x1A%Wa\x1A%a\x19_V[\x81`@R\x82\x81R\x88` \x84\x87\x01\x01\x11\x15a\x1A>W`\0\x80\xFD[\x82` \x86\x01` \x83\x017`\0` \x84\x83\x01\x01R\x80\x96PPPPPPa\x1Ae` \x84\x01a\x18HV[\x90P\x92P\x92\x90PV[`\0` \x82\x84\x03\x12\x15a\x1A\x80W`\0\x80\xFD[\x815a\x14\x92\x81a\x17\xDAV[`\0\x80`\0\x80`\0\x80`\0`\xC0\x88\x8A\x03\x12\x15a\x1A\xA6W`\0\x80\xFD[\x875\x96P` \x88\x015a\x1A\xB8\x81a\x17\xDAV[\x95P`@\x88\x015a\x1A\xC8\x81a\x17\xDAV[\x94P``\x88\x015\x93P`\x80\x88\x015\x92P`\xA0\x88\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x1A\xF2W`\0\x80\xFD[a\x1A\xFE\x8A\x82\x8B\x01a\x17\xFFV[\x98\x9B\x97\x9AP\x95\x98P\x93\x96\x92\x95\x92\x93PPPV[\x81\x83R\x81\x81` \x85\x017P`\0` \x82\x84\x01\x01R`\0` \x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0`\x1F\x84\x01\x16\x84\x01\x01\x90P\x92\x91PPV[\x87\x81R`\0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x89\x16` \x84\x01R\x80\x88\x16`@\x84\x01RP\x85``\x83\x01Rc\xFF\xFF\xFF\xFF\x85\x16`\x80\x83\x01R`\xC0`\xA0\x83\x01Ra\x1B\xAC`\xC0\x83\x01\x84\x86a\x1B\x11V[\x99\x98PPPPPPPPPV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x86\x16\x81R`\x80` \x82\x01R`\0a\x1B\xE9`\x80\x83\x01\x86\x88a\x1B\x11V[\x90P\x83`@\x83\x01Rc\xFF\xFF\xFF\xFF\x83\x16``\x83\x01R\x96\x95PPPPPPV[\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`\x11`\x04R`$`\0\xFD[`\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x83\x16\x81\x85\x16\x81\x83\x04\x81\x11\x82\x15\x15\x16\x15a\x1C]Wa\x1C]a\x1C\x07V[\x02\x94\x93PPPPV[`\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x84\x16\x80a\x1C\xA8W\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`\x12`\x04R`$`\0\xFD[\x92\x16\x91\x90\x91\x04\x92\x91PPV[`\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x83\x16\x81\x85\x16\x80\x83\x03\x82\x11\x15a\x1C\xD7Wa\x1C\xD7a\x1C\x07V[\x01\x94\x93PPPPV[`\0\x82\x19\x82\x11\x15a\x1C\xF3Wa\x1C\xF3a\x1C\x07V[P\x01\x90V[\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`\x01`\x04R`$`\0\xFD[`\0\x82\x82\x10\x15a\x1D9Wa\x1D9a\x1C\x07V[P\x03\x90V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x16\x81Rg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x16` \x82\x01R```@\x82\x01R`\0a\t\x05``\x83\x01\x84a\x18\xC8V[`\0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x87\x16\x83R\x80\x86\x16` \x84\x01RP`\x80`@\x83\x01Ra\x1D\xB6`\x80\x83\x01\x85a\x18\xC8V[\x90P\x82``\x83\x01R\x95\x94PPPPPV[\x86\x81R`\0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x88\x16` \x84\x01R\x80\x87\x16`@\x84\x01RP\x84``\x83\x01R\x83`\x80\x83\x01R`\xC0`\xA0\x83\x01Ra\x1E\x12`\xC0\x83\x01\x84a\x18\xC8V[\x98\x97PPPPPPPPV\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x60806040526004361061018b5760003560e01c80638cbeeef2116100d6578063c4d66de81161007f578063ddd5a40f11610059578063ddd5a40f1461043e578063e46e245a14610454578063ecc704281461046957600080fd5b8063c4d66de8146103de578063d764ad0b146103fe578063db505d801461041157600080fd5b8063a7119869116100b0578063a711986914610333578063b1b1b2091461038e578063b28ade25146103be57600080fd5b80638cbeeef2146102405780639fce812c14610333578063a4e7f8bd1461035e57600080fd5b80634c1d6a69116101385780635c975abb116101125780635c975abb146102c25780636e296e45146102e257806383a740741461031c57600080fd5b80634c1d6a691461024057806354fd4d50146102565780635644cfdf146102ac57600080fd5b80632f7d3922116101695780632f7d3922146101ed5780633dbb202b146102035780633f827a5a1461021857600080fd5b8063028f85f7146101905780630c568498146101c35780632828d7e8146101d8575b600080fd5b34801561019c57600080fd5b506101a5601081565b60405167ffffffffffffffff90911681526020015b60405180910390f35b3480156101cf57600080fd5b506101a5603f81565b3480156101e457600080fd5b506101a5604081565b3480156101f957600080fd5b506101a561520881565b610216610211366004611861565b6104ce565b005b34801561022457600080fd5b5061022d600181565b60405161ffff90911681526020016101ba565b34801561024c57600080fd5b506101a5619c4081565b34801561026257600080fd5b5061029f6040518060400160405280600581526020017f322e322e3000000000000000000000000000000000000000000000000000000081525081565b6040516101ba9190611933565b3480156102b857600080fd5b506101a561138881565b3480156102ce57600080fd5b5060005b60405190151581526020016101ba565b3480156102ee57600080fd5b506102f7610761565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101ba565b34801561032857600080fd5b506101a562030d4081565b34801561033f57600080fd5b5060cf5473ffffffffffffffffffffffffffffffffffffffff166102f7565b34801561036a57600080fd5b506102d2610379366004611946565b60ce6020526000908152604090205460ff1681565b34801561039a57600080fd5b506102d26103a9366004611946565b60cb6020526000908152604090205460ff1681565b3480156103ca57600080fd5b506101a56103d936600461198e565b61084d565b3480156103ea57600080fd5b506102166103f9366004611a6e565b61090e565b61021661040c366004611a8b565b610b0d565b34801561041d57600080fd5b5060cf546102f79073ffffffffffffffffffffffffffffffffffffffff1681565b34801561044a57600080fd5b506101a561010481565b34801561046057600080fd5b506101a5602881565b34801561047557600080fd5b506104c060cd547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167e010000000000000000000000000000000000000000000000000000000000001790565b6040519081526020016101ba565b60cf54604080516020601f86018190048102820181019092528481526106369273ffffffffffffffffffffffffffffffffffffffff169161052c9190879087908190840183828082843760009201919091525087925061084d915050565b347fd764ad0b0000000000000000000000000000000000000000000000000000000061059860cd547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167e010000000000000000000000000000000000000000000000000000000000001790565b338a34898c8c6040516024016105b49796959493929190611b5a565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091526113f2565b8373ffffffffffffffffffffffffffffffffffffffff167fcb0f7ffd78f9aee47a248fae8db181db6eee833039123e026dcbff529522e52a3385856106bb60cd547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167e010000000000000000000000000000000000000000000000000000000000001790565b866040516106cd959493929190611bb9565b60405180910390a260405134815233907f8ebb2ec2465bdb2a06a66fc37a0963af8a2a6a1479d81d56fdb8cbb98096d5469060200160405180910390a2505060cd80547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff808216600101167fffff0000000000000000000000000000000000000000000000000000000000009091161790555050565b60cc5460009073ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff215301610830576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603560248201527f43726f7373446f6d61696e4d657373656e6765723a2078446f6d61696e4d657360448201527f7361676553656e646572206973206e6f7420736574000000000000000000000060648201526084015b60405180910390fd5b5060cc5473ffffffffffffffffffffffffffffffffffffffff1690565b600080603f610863604063ffffffff8616611c36565b61086d9190611c66565b611388619c406108808162030d40611cb4565b61088a9190611cb4565b6108949190611cb4565b61089e9190611cb4565b9050600061010467ffffffffffffffff1685516108bb9190611ce0565b90506108f96108cb601083611c36565b6108d59084611cb4565b67ffffffffffffffff166108ea602884611c36565b67ffffffffffffffff16611480565b61090590615208611cb4565b95945050505050565b6000547501000000000000000000000000000000000000000000900460ff1615808015610959575060005460017401000000000000000000000000000000000000000090910460ff16105b8061098b5750303b15801561098b575060005474010000000000000000000000000000000000000000900460ff166001145b610a17576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610827565b600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16740100000000000000000000000000000000000000001790558015610a9d57600080547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff1675010000000000000000000000000000000000000000001790555b610aa682611499565b8015610b0957600080547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b60f087901c60028110610bc8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604d60248201527f43726f7373446f6d61696e4d657373656e6765723a206f6e6c7920766572736960448201527f6f6e2030206f722031206d657373616765732061726520737570706f7274656460648201527f20617420746869732074696d6500000000000000000000000000000000000000608482015260a401610827565b8061ffff16600003610cbd576000610c19878986868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508f92506115d5915050565b600081815260cb602052604090205490915060ff1615610cbb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f43726f7373446f6d61696e4d657373656e6765723a206c65676163792077697460448201527f6864726177616c20616c72656164792072656c617965640000000000000000006064820152608401610827565b505b6000610d03898989898989898080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506115f492505050565b9050610d4c60cf54337fffffffffffffffffffffffffeeeeffffffffffffffffffffffffffffffffeeef0173ffffffffffffffffffffffffffffffffffffffff90811691161490565b15610d8457853414610d6057610d60611cf8565b600081815260ce602052604090205460ff1615610d7f57610d7f611cf8565b610ed6565b3415610e38576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152605060248201527f43726f7373446f6d61696e4d657373656e6765723a2076616c7565206d75737460448201527f206265207a65726f20756e6c657373206d6573736167652069732066726f6d2060648201527f612073797374656d206164647265737300000000000000000000000000000000608482015260a401610827565b600081815260ce602052604090205460ff16610ed6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f43726f7373446f6d61696e4d657373656e6765723a206d65737361676520636160448201527f6e6e6f74206265207265706c61796564000000000000000000000000000000006064820152608401610827565b610edf87611617565b15610f92576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604360248201527f43726f7373446f6d61696e4d657373656e6765723a2063616e6e6f742073656e60448201527f64206d65737361676520746f20626c6f636b65642073797374656d206164647260648201527f6573730000000000000000000000000000000000000000000000000000000000608482015260a401610827565b600081815260cb602052604090205460ff1615611031576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f43726f7373446f6d61696e4d657373656e6765723a206d65737361676520686160448201527f7320616c7265616479206265656e2072656c61796564000000000000000000006064820152608401610827565b61105285611043611388619c40611cb4565b67ffffffffffffffff1661166c565b1580611078575060cc5473ffffffffffffffffffffffffffffffffffffffff1661dead14155b1561119157600081815260ce602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555182917f99d0e048484baa1b1540b1367cb128acd7ab2946d1ed91ec10e3c85e4bf51b8f91a27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff320161118a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f43726f7373446f6d61696e4d657373656e6765723a206661696c656420746f2060448201527f72656c6179206d657373616765000000000000000000000000000000000000006064820152608401610827565b50506113e9565b60cc80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8a16179055600061122288619c405a6111e59190611d27565b8988888080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061168a92505050565b60cc80547fffffffffffffffffffffffff00000000000000000000000000000000000000001661dead179055905080156112d857600082815260cb602052604090205460ff161561127557611275611cf8565b600082815260cb602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555183917f4641df4a962071e12719d8c8c8e5ac7fc4d97b927346a3d7a335b1f7517e133c91a26113e5565b600082815260ce602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555183917f99d0e048484baa1b1540b1367cb128acd7ab2946d1ed91ec10e3c85e4bf51b8f91a27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff32016113e5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f43726f7373446f6d61696e4d657373656e6765723a206661696c656420746f2060448201527f72656c6179206d657373616765000000000000000000000000000000000000006064820152608401610827565b5050505b50505050505050565b6040517fc2b3e5ac0000000000000000000000000000000000000000000000000000000081527342000000000000000000000000000000000000169063c2b3e5ac90849061144890889088908790600401611d3e565b6000604051808303818588803b15801561146157600080fd5b505af1158015611475573d6000803e3d6000fd5b505050505050505050565b6000818310156114905781611492565b825b9392505050565b6000547501000000000000000000000000000000000000000000900460ff16611544576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610827565b60cc5473ffffffffffffffffffffffffffffffffffffffff1661158e5760cc80547fffffffffffffffffffffffff00000000000000000000000000000000000000001661dead1790555b60cf80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60006115e3858585856116a2565b805190602001209050949350505050565b600061160487878787878761173b565b8051906020012090509695505050505050565b600073ffffffffffffffffffffffffffffffffffffffff8216301480611666575073ffffffffffffffffffffffffffffffffffffffff8216734200000000000000000000000000000000000016145b92915050565b600080603f83619c4001026040850201603f5a021015949350505050565b6000806000835160208501868989f195945050505050565b6060848484846040516024016116bb9493929190611d7d565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fcbd4ece9000000000000000000000000000000000000000000000000000000001790529050949350505050565b606086868686868660405160240161175896959493929190611dc7565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fd764ad0b0000000000000000000000000000000000000000000000000000000017905290509695505050505050565b73ffffffffffffffffffffffffffffffffffffffff811681146117fc57600080fd5b50565b60008083601f84011261181157600080fd5b50813567ffffffffffffffff81111561182957600080fd5b60208301915083602082850101111561184157600080fd5b9250929050565b803563ffffffff8116811461185c57600080fd5b919050565b6000806000806060858703121561187757600080fd5b8435611882816117da565b9350602085013567ffffffffffffffff81111561189e57600080fd5b6118aa878288016117ff565b90945092506118bd905060408601611848565b905092959194509250565b6000815180845260005b818110156118ee576020818501810151868301820152016118d2565b81811115611900576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60208152600061149260208301846118c8565b60006020828403121561195857600080fd5b5035919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080604083850312156119a157600080fd5b823567ffffffffffffffff808211156119b957600080fd5b818501915085601f8301126119cd57600080fd5b8135818111156119df576119df61195f565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908382118183101715611a2557611a2561195f565b81604052828152886020848701011115611a3e57600080fd5b826020860160208301376000602084830101528096505050505050611a6560208401611848565b90509250929050565b600060208284031215611a8057600080fd5b8135611492816117da565b600080600080600080600060c0888a031215611aa657600080fd5b873596506020880135611ab8816117da565b95506040880135611ac8816117da565b9450606088013593506080880135925060a088013567ffffffffffffffff811115611af257600080fd5b611afe8a828b016117ff565b989b979a50959850939692959293505050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b878152600073ffffffffffffffffffffffffffffffffffffffff808916602084015280881660408401525085606083015263ffffffff8516608083015260c060a0830152611bac60c083018486611b11565b9998505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff86168152608060208201526000611be9608083018688611b11565b905083604083015263ffffffff831660608301529695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600067ffffffffffffffff80831681851681830481118215151615611c5d57611c5d611c07565b02949350505050565b600067ffffffffffffffff80841680611ca8577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b92169190910492915050565b600067ffffffffffffffff808316818516808303821115611cd757611cd7611c07565b01949350505050565b60008219821115611cf357611cf3611c07565b500190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b600082821015611d3957611d39611c07565b500390565b73ffffffffffffffffffffffffffffffffffffffff8416815267ffffffffffffffff8316602082015260606040820152600061090560608301846118c8565b600073ffffffffffffffffffffffffffffffffffffffff808716835280861660208401525060806040830152611db660808301856118c8565b905082606083015295945050505050565b868152600073ffffffffffffffffffffffffffffffffffffffff808816602084015280871660408401525084606083015283608083015260c060a0830152611e1260c08301846118c8565b9897505050505050505056fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R`\x046\x10a\x01\x8BW`\x005`\xE0\x1C\x80c\x8C\xBE\xEE\xF2\x11a\0\xD6W\x80c\xC4\xD6m\xE8\x11a\0\x7FW\x80c\xDD\xD5\xA4\x0F\x11a\0YW\x80c\xDD\xD5\xA4\x0F\x14a\x04>W\x80c\xE4n$Z\x14a\x04TW\x80c\xEC\xC7\x04(\x14a\x04iW`\0\x80\xFD[\x80c\xC4\xD6m\xE8\x14a\x03\xDEW\x80c\xD7d\xAD\x0B\x14a\x03\xFEW\x80c\xDBP]\x80\x14a\x04\x11W`\0\x80\xFD[\x80c\xA7\x11\x98i\x11a\0\xB0W\x80c\xA7\x11\x98i\x14a\x033W\x80c\xB1\xB1\xB2\t\x14a\x03\x8EW\x80c\xB2\x8A\xDE%\x14a\x03\xBEW`\0\x80\xFD[\x80c\x8C\xBE\xEE\xF2\x14a\x02@W\x80c\x9F\xCE\x81,\x14a\x033W\x80c\xA4\xE7\xF8\xBD\x14a\x03^W`\0\x80\xFD[\x80cL\x1Dji\x11a\x018W\x80c\\\x97Z\xBB\x11a\x01\x12W\x80c\\\x97Z\xBB\x14a\x02\xC2W\x80cn)nE\x14a\x02\xE2W\x80c\x83\xA7@t\x14a\x03\x1CW`\0\x80\xFD[\x80cL\x1Dji\x14a\x02@W\x80cT\xFDMP\x14a\x02VW\x80cVD\xCF\xDF\x14a\x02\xACW`\0\x80\xFD[\x80c/}9\"\x11a\x01iW\x80c/}9\"\x14a\x01\xEDW\x80c=\xBB +\x14a\x02\x03W\x80c?\x82zZ\x14a\x02\x18W`\0\x80\xFD[\x80c\x02\x8F\x85\xF7\x14a\x01\x90W\x80c\x0CV\x84\x98\x14a\x01\xC3W\x80c((\xD7\xE8\x14a\x01\xD8W[`\0\x80\xFD[4\x80\x15a\x01\x9CW`\0\x80\xFD[Pa\x01\xA5`\x10\x81V[`@Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[4\x80\x15a\x01\xCFW`\0\x80\xFD[Pa\x01\xA5`?\x81V[4\x80\x15a\x01\xE4W`\0\x80\xFD[Pa\x01\xA5`@\x81V[4\x80\x15a\x01\xF9W`\0\x80\xFD[Pa\x01\xA5aR\x08\x81V[a\x02\x16a\x02\x116`\x04a\x18aV[a\x04\xCEV[\0[4\x80\x15a\x02$W`\0\x80\xFD[Pa\x02-`\x01\x81V[`@Qa\xFF\xFF\x90\x91\x16\x81R` \x01a\x01\xBAV[4\x80\x15a\x02LW`\0\x80\xFD[Pa\x01\xA5a\x9C@\x81V[4\x80\x15a\x02bW`\0\x80\xFD[Pa\x02\x9F`@Q\x80`@\x01`@R\x80`\x05\x81R` \x01\x7F2.2.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\x81RP\x81V[`@Qa\x01\xBA\x91\x90a\x193V[4\x80\x15a\x02\xB8W`\0\x80\xFD[Pa\x01\xA5a\x13\x88\x81V[4\x80\x15a\x02\xCEW`\0\x80\xFD[P`\0[`@Q\x90\x15\x15\x81R` \x01a\x01\xBAV[4\x80\x15a\x02\xEEW`\0\x80\xFD[Pa\x02\xF7a\x07aV[`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01a\x01\xBAV[4\x80\x15a\x03(W`\0\x80\xFD[Pa\x01\xA5b\x03\r@\x81V[4\x80\x15a\x03?W`\0\x80\xFD[P`\xCFTs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a\x02\xF7V[4\x80\x15a\x03jW`\0\x80\xFD[Pa\x02\xD2a\x03y6`\x04a\x19FV[`\xCE` R`\0\x90\x81R`@\x90 T`\xFF\x16\x81V[4\x80\x15a\x03\x9AW`\0\x80\xFD[Pa\x02\xD2a\x03\xA96`\x04a\x19FV[`\xCB` R`\0\x90\x81R`@\x90 T`\xFF\x16\x81V[4\x80\x15a\x03\xCAW`\0\x80\xFD[Pa\x01\xA5a\x03\xD96`\x04a\x19\x8EV[a\x08MV[4\x80\x15a\x03\xEAW`\0\x80\xFD[Pa\x02\x16a\x03\xF96`\x04a\x1AnV[a\t\x0EV[a\x02\x16a\x04\x0C6`\x04a\x1A\x8BV[a\x0B\rV[4\x80\x15a\x04\x1DW`\0\x80\xFD[P`\xCFTa\x02\xF7\x90s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[4\x80\x15a\x04JW`\0\x80\xFD[Pa\x01\xA5a\x01\x04\x81V[4\x80\x15a\x04`W`\0\x80\xFD[Pa\x01\xA5`(\x81V[4\x80\x15a\x04uW`\0\x80\xFD[Pa\x04\xC0`\xCDT}\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16~\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x17\x90V[`@Q\x90\x81R` \x01a\x01\xBAV[`\xCFT`@\x80Q` `\x1F\x86\x01\x81\x90\x04\x81\x02\x82\x01\x81\x01\x90\x92R\x84\x81Ra\x066\x92s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x91a\x05,\x91\x90\x87\x90\x87\x90\x81\x90\x84\x01\x83\x82\x80\x82\x847`\0\x92\x01\x91\x90\x91RP\x87\x92Pa\x08M\x91PPV[4\x7F\xD7d\xAD\x0B\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\0a\x05\x98`\xCDT}\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16~\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x17\x90V[3\x8A4\x89\x8C\x8C`@Q`$\x01a\x05\xB4\x97\x96\x95\x94\x93\x92\x91\x90a\x1BZV[`@\x80Q\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x81\x84\x03\x01\x81R\x91\x90R` \x81\x01\x80Q{\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xFF\xFF\xFF\xFF\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\x90\x93\x16\x92\x90\x92\x17\x90\x91Ra\x13\xF2V[\x83s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xCB\x0F\x7F\xFDx\xF9\xAE\xE4z$\x8F\xAE\x8D\xB1\x81\xDBn\xEE\x8309\x12>\x02m\xCB\xFFR\x95\"\xE5*3\x85\x85a\x06\xBB`\xCDT}\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16~\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x17\x90V[\x86`@Qa\x06\xCD\x95\x94\x93\x92\x91\x90a\x1B\xB9V[`@Q\x80\x91\x03\x90\xA2`@Q4\x81R3\x90\x7F\x8E\xBB.\xC2F[\xDB*\x06\xA6o\xC3z\tc\xAF\x8A*j\x14y\xD8\x1DV\xFD\xB8\xCB\xB9\x80\x96\xD5F\x90` \x01`@Q\x80\x91\x03\x90\xA2PP`\xCD\x80T}\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x16`\x01\x01\x16\x7F\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x91\x16\x17\x90UPPV[`\xCCT`\0\x90s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF!S\x01a\x080W`@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\x82\x01R`5`$\x82\x01R\x7FCrossDomainMessenger: xDomainMes`D\x82\x01R\x7FsageSender is not set\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01[`@Q\x80\x91\x03\x90\xFD[P`\xCCTs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90V[`\0\x80`?a\x08c`@c\xFF\xFF\xFF\xFF\x86\x16a\x1C6V[a\x08m\x91\x90a\x1CfV[a\x13\x88a\x9C@a\x08\x80\x81b\x03\r@a\x1C\xB4V[a\x08\x8A\x91\x90a\x1C\xB4V[a\x08\x94\x91\x90a\x1C\xB4V[a\x08\x9E\x91\x90a\x1C\xB4V[\x90P`\0a\x01\x04g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x85Qa\x08\xBB\x91\x90a\x1C\xE0V[\x90Pa\x08\xF9a\x08\xCB`\x10\x83a\x1C6V[a\x08\xD5\x90\x84a\x1C\xB4V[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a\x08\xEA`(\x84a\x1C6V[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a\x14\x80V[a\t\x05\x90aR\x08a\x1C\xB4V[\x95\x94PPPPPV[`\0Tu\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16\x15\x80\x80\x15a\tYWP`\0T`\x01t\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x91\x04`\xFF\x16\x10[\x80a\t\x8BWP0;\x15\x80\x15a\t\x8BWP`\0Tt\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16`\x01\x14[a\n\x17W`@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\x82\x01R`.`$\x82\x01R\x7FInitializable: contract is alrea`D\x82\x01R\x7Fdy initialized\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x08'V[`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16t\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x17\x90U\x80\x15a\n\x9DW`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16u\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x17\x90U[a\n\xA6\x82a\x14\x99V[\x80\x15a\x0B\tW`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90U`@Q`\x01\x81R\x7F\x7F&\xB8?\xF9n\x1F+jh/\x138R\xF6y\x8A\t\xC4e\xDA\x95\x92\x14`\xCE\xFB8G@$\x98\x90` \x01`@Q\x80\x91\x03\x90\xA1[PPV[`\xF0\x87\x90\x1C`\x02\x81\x10a\x0B\xC8W`@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\x82\x01R`M`$\x82\x01R\x7FCrossDomainMessenger: only versi`D\x82\x01R\x7Fon 0 or 1 messages are supported`d\x82\x01R\x7F at this time\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x84\x82\x01R`\xA4\x01a\x08'V[\x80a\xFF\xFF\x16`\0\x03a\x0C\xBDW`\0a\x0C\x19\x87\x89\x86\x86\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RP\x8F\x92Pa\x15\xD5\x91PPV[`\0\x81\x81R`\xCB` R`@\x90 T\x90\x91P`\xFF\x16\x15a\x0C\xBBW`@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\x82\x01R`7`$\x82\x01R\x7FCrossDomainMessenger: legacy wit`D\x82\x01R\x7Fhdrawal already relayed\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x08'V[P[`\0a\r\x03\x89\x89\x89\x89\x89\x89\x89\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RPa\x15\xF4\x92PPPV[\x90Pa\rL`\xCFT3\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xEE\xEE\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xEE\xEF\x01s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x81\x16\x91\x16\x14\x90V[\x15a\r\x84W\x854\x14a\r`Wa\r`a\x1C\xF8V[`\0\x81\x81R`\xCE` R`@\x90 T`\xFF\x16\x15a\r\x7FWa\r\x7Fa\x1C\xF8V[a\x0E\xD6V[4\x15a\x0E8W`@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\x82\x01R`P`$\x82\x01R\x7FCrossDomainMessenger: value must`D\x82\x01R\x7F be zero unless message is from `d\x82\x01R\x7Fa system address\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x84\x82\x01R`\xA4\x01a\x08'V[`\0\x81\x81R`\xCE` R`@\x90 T`\xFF\x16a\x0E\xD6W`@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\x82\x01R`0`$\x82\x01R\x7FCrossDomainMessenger: message ca`D\x82\x01R\x7Fnnot be replayed\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x08'V[a\x0E\xDF\x87a\x16\x17V[\x15a\x0F\x92W`@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\x82\x01R`C`$\x82\x01R\x7FCrossDomainMessenger: cannot sen`D\x82\x01R\x7Fd message to blocked system addr`d\x82\x01R\x7Fess\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x84\x82\x01R`\xA4\x01a\x08'V[`\0\x81\x81R`\xCB` R`@\x90 T`\xFF\x16\x15a\x101W`@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\x82\x01R`6`$\x82\x01R\x7FCrossDomainMessenger: message ha`D\x82\x01R\x7Fs already been relayed\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x08'V[a\x10R\x85a\x10Ca\x13\x88a\x9C@a\x1C\xB4V[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a\x16lV[\x15\x80a\x10xWP`\xCCTs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a\xDE\xAD\x14\x15[\x15a\x11\x91W`\0\x81\x81R`\xCE` R`@\x80\x82 \x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x16`\x01\x17\x90UQ\x82\x91\x7F\x99\xD0\xE0HHK\xAA\x1B\x15@\xB16|\xB1(\xAC\xD7\xAB)F\xD1\xED\x91\xEC\x10\xE3\xC8^K\xF5\x1B\x8F\x91\xA2\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF2\x01a\x11\x8AW`@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\x82\x01R`-`$\x82\x01R\x7FCrossDomainMessenger: failed to `D\x82\x01R\x7Frelay message\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x08'V[PPa\x13\xE9V[`\xCC\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x8A\x16\x17\x90U`\0a\x12\"\x88a\x9C@Za\x11\xE5\x91\x90a\x1D'V[\x89\x88\x88\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RPa\x16\x8A\x92PPPV[`\xCC\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16a\xDE\xAD\x17\x90U\x90P\x80\x15a\x12\xD8W`\0\x82\x81R`\xCB` R`@\x90 T`\xFF\x16\x15a\x12uWa\x12ua\x1C\xF8V[`\0\x82\x81R`\xCB` R`@\x80\x82 \x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x16`\x01\x17\x90UQ\x83\x91\x7FFA\xDFJ\x96 q\xE1'\x19\xD8\xC8\xC8\xE5\xAC\x7F\xC4\xD9{\x92sF\xA3\xD7\xA35\xB1\xF7Q~\x13<\x91\xA2a\x13\xE5V[`\0\x82\x81R`\xCE` R`@\x80\x82 \x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x16`\x01\x17\x90UQ\x83\x91\x7F\x99\xD0\xE0HHK\xAA\x1B\x15@\xB16|\xB1(\xAC\xD7\xAB)F\xD1\xED\x91\xEC\x10\xE3\xC8^K\xF5\x1B\x8F\x91\xA2\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF2\x01a\x13\xE5W`@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\x82\x01R`-`$\x82\x01R\x7FCrossDomainMessenger: failed to `D\x82\x01R\x7Frelay message\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x08'V[PPP[PPPPPPPV[`@Q\x7F\xC2\xB3\xE5\xAC\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\x81RsB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x90c\xC2\xB3\xE5\xAC\x90\x84\x90a\x14H\x90\x88\x90\x88\x90\x87\x90`\x04\x01a\x1D>V[`\0`@Q\x80\x83\x03\x81\x85\x88\x80;\x15\x80\x15a\x14aW`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x14uW=`\0\x80>=`\0\xFD[PPPPPPPPPV[`\0\x81\x83\x10\x15a\x14\x90W\x81a\x14\x92V[\x82[\x93\x92PPPV[`\0Tu\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16a\x15DW`@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\x82\x01R`+`$\x82\x01R\x7FInitializable: contract is not i`D\x82\x01R\x7Fnitializing\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x08'V[`\xCCTs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a\x15\x8EW`\xCC\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16a\xDE\xAD\x17\x90U[`\xCF\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x92\x90\x92\x16\x91\x90\x91\x17\x90UV[`\0a\x15\xE3\x85\x85\x85\x85a\x16\xA2V[\x80Q\x90` \x01 \x90P\x94\x93PPPPV[`\0a\x16\x04\x87\x87\x87\x87\x87\x87a\x17;V[\x80Q\x90` \x01 \x90P\x96\x95PPPPPPV[`\0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x160\x14\x80a\x16fWPs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x14[\x92\x91PPV[`\0\x80`?\x83a\x9C@\x01\x02`@\x85\x02\x01`?Z\x02\x10\x15\x94\x93PPPPV[`\0\x80`\0\x83Q` \x85\x01\x86\x89\x89\xF1\x95\x94PPPPPV[``\x84\x84\x84\x84`@Q`$\x01a\x16\xBB\x94\x93\x92\x91\x90a\x1D}V[`@\x80Q\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x81\x84\x03\x01\x81R\x91\x90R` \x81\x01\x80Q{\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xCB\xD4\xEC\xE9\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\x17\x90R\x90P\x94\x93PPPPV[``\x86\x86\x86\x86\x86\x86`@Q`$\x01a\x17X\x96\x95\x94\x93\x92\x91\x90a\x1D\xC7V[`@\x80Q\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x81\x84\x03\x01\x81R\x91\x90R` \x81\x01\x80Q{\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xD7d\xAD\x0B\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\x17\x90R\x90P\x96\x95PPPPPPV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x17\xFCW`\0\x80\xFD[PV[`\0\x80\x83`\x1F\x84\x01\x12a\x18\x11W`\0\x80\xFD[P\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x18)W`\0\x80\xFD[` \x83\x01\x91P\x83` \x82\x85\x01\x01\x11\x15a\x18AW`\0\x80\xFD[\x92P\x92\x90PV[\x805c\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x18\\W`\0\x80\xFD[\x91\x90PV[`\0\x80`\0\x80``\x85\x87\x03\x12\x15a\x18wW`\0\x80\xFD[\x845a\x18\x82\x81a\x17\xDAV[\x93P` \x85\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x18\x9EW`\0\x80\xFD[a\x18\xAA\x87\x82\x88\x01a\x17\xFFV[\x90\x94P\x92Pa\x18\xBD\x90P`@\x86\x01a\x18HV[\x90P\x92\x95\x91\x94P\x92PV[`\0\x81Q\x80\x84R`\0[\x81\x81\x10\x15a\x18\xEEW` \x81\x85\x01\x81\x01Q\x86\x83\x01\x82\x01R\x01a\x18\xD2V[\x81\x81\x11\x15a\x19\0W`\0` \x83\x87\x01\x01R[P`\x1F\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x92\x90\x92\x01` \x01\x92\x91PPV[` \x81R`\0a\x14\x92` \x83\x01\x84a\x18\xC8V[`\0` \x82\x84\x03\x12\x15a\x19XW`\0\x80\xFD[P5\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[`\0\x80`@\x83\x85\x03\x12\x15a\x19\xA1W`\0\x80\xFD[\x825g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x19\xB9W`\0\x80\xFD[\x81\x85\x01\x91P\x85`\x1F\x83\x01\x12a\x19\xCDW`\0\x80\xFD[\x815\x81\x81\x11\x15a\x19\xDFWa\x19\xDFa\x19_V[`@Q`\x1F\x82\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x90\x81\x16`?\x01\x16\x81\x01\x90\x83\x82\x11\x81\x83\x10\x17\x15a\x1A%Wa\x1A%a\x19_V[\x81`@R\x82\x81R\x88` \x84\x87\x01\x01\x11\x15a\x1A>W`\0\x80\xFD[\x82` \x86\x01` \x83\x017`\0` \x84\x83\x01\x01R\x80\x96PPPPPPa\x1Ae` \x84\x01a\x18HV[\x90P\x92P\x92\x90PV[`\0` \x82\x84\x03\x12\x15a\x1A\x80W`\0\x80\xFD[\x815a\x14\x92\x81a\x17\xDAV[`\0\x80`\0\x80`\0\x80`\0`\xC0\x88\x8A\x03\x12\x15a\x1A\xA6W`\0\x80\xFD[\x875\x96P` \x88\x015a\x1A\xB8\x81a\x17\xDAV[\x95P`@\x88\x015a\x1A\xC8\x81a\x17\xDAV[\x94P``\x88\x015\x93P`\x80\x88\x015\x92P`\xA0\x88\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x1A\xF2W`\0\x80\xFD[a\x1A\xFE\x8A\x82\x8B\x01a\x17\xFFV[\x98\x9B\x97\x9AP\x95\x98P\x93\x96\x92\x95\x92\x93PPPV[\x81\x83R\x81\x81` \x85\x017P`\0` \x82\x84\x01\x01R`\0` \x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0`\x1F\x84\x01\x16\x84\x01\x01\x90P\x92\x91PPV[\x87\x81R`\0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x89\x16` \x84\x01R\x80\x88\x16`@\x84\x01RP\x85``\x83\x01Rc\xFF\xFF\xFF\xFF\x85\x16`\x80\x83\x01R`\xC0`\xA0\x83\x01Ra\x1B\xAC`\xC0\x83\x01\x84\x86a\x1B\x11V[\x99\x98PPPPPPPPPV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x86\x16\x81R`\x80` \x82\x01R`\0a\x1B\xE9`\x80\x83\x01\x86\x88a\x1B\x11V[\x90P\x83`@\x83\x01Rc\xFF\xFF\xFF\xFF\x83\x16``\x83\x01R\x96\x95PPPPPPV[\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`\x11`\x04R`$`\0\xFD[`\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x83\x16\x81\x85\x16\x81\x83\x04\x81\x11\x82\x15\x15\x16\x15a\x1C]Wa\x1C]a\x1C\x07V[\x02\x94\x93PPPPV[`\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x84\x16\x80a\x1C\xA8W\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`\x12`\x04R`$`\0\xFD[\x92\x16\x91\x90\x91\x04\x92\x91PPV[`\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x83\x16\x81\x85\x16\x80\x83\x03\x82\x11\x15a\x1C\xD7Wa\x1C\xD7a\x1C\x07V[\x01\x94\x93PPPPV[`\0\x82\x19\x82\x11\x15a\x1C\xF3Wa\x1C\xF3a\x1C\x07V[P\x01\x90V[\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`\x01`\x04R`$`\0\xFD[`\0\x82\x82\x10\x15a\x1D9Wa\x1D9a\x1C\x07V[P\x03\x90V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x16\x81Rg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x16` \x82\x01R```@\x82\x01R`\0a\t\x05``\x83\x01\x84a\x18\xC8V[`\0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x87\x16\x83R\x80\x86\x16` \x84\x01RP`\x80`@\x83\x01Ra\x1D\xB6`\x80\x83\x01\x85a\x18\xC8V[\x90P\x82``\x83\x01R\x95\x94PPPPPV[\x86\x81R`\0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x88\x16` \x84\x01R\x80\x87\x16`@\x84\x01RP\x84``\x83\x01R\x83`\x80\x83\x01R`\xC0`\xA0\x83\x01Ra\x1E\x12`\xC0\x83\x01\x84a\x18\xC8V[\x98\x97PPPPPPPPV\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `FailedRelayedMessage(bytes32)` and selector `0x99d0e048484baa1b1540b1367cb128acd7ab2946d1ed91ec10e3c85e4bf51b8f`. +```solidity +event FailedRelayedMessage(bytes32 indexed msgHash); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct FailedRelayedMessage { + #[allow(missing_docs)] + pub msgHash: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for FailedRelayedMessage { + type DataTuple<'a> = (); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + const SIGNATURE: &'static str = "FailedRelayedMessage(bytes32)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 153u8, 208u8, 224u8, 72u8, 72u8, 75u8, 170u8, 27u8, 21u8, 64u8, 177u8, + 54u8, 124u8, 177u8, 40u8, 172u8, 215u8, 171u8, 41u8, 70u8, 209u8, 237u8, + 145u8, 236u8, 16u8, 227u8, 200u8, 94u8, 75u8, 245u8, 27u8, 143u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { msgHash: topics.1 } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + () + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.msgHash.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = as alloy_sol_types::EventTopic>::encode_topic(&self.msgHash); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for FailedRelayedMessage { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&FailedRelayedMessage> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &FailedRelayedMessage) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `Initialized(uint8)` and selector `0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498`. +```solidity +event Initialized(uint8 version); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct Initialized { + #[allow(missing_docs)] + pub version: u8, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for Initialized { + type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<8>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,); + const SIGNATURE: &'static str = "Initialized(uint8)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 127u8, 38u8, 184u8, 63u8, 249u8, 110u8, 31u8, 43u8, 106u8, 104u8, 47u8, + 19u8, 56u8, 82u8, 246u8, 121u8, 138u8, 9u8, 196u8, 101u8, 218u8, 149u8, + 146u8, 20u8, 96u8, 206u8, 251u8, 56u8, 71u8, 64u8, 36u8, 152u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { version: data.0 } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.version), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(),) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for Initialized { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&Initialized> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &Initialized) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `RelayedMessage(bytes32)` and selector `0x4641df4a962071e12719d8c8c8e5ac7fc4d97b927346a3d7a335b1f7517e133c`. +```solidity +event RelayedMessage(bytes32 indexed msgHash); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct RelayedMessage { + #[allow(missing_docs)] + pub msgHash: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for RelayedMessage { + type DataTuple<'a> = (); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + const SIGNATURE: &'static str = "RelayedMessage(bytes32)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 70u8, 65u8, 223u8, 74u8, 150u8, 32u8, 113u8, 225u8, 39u8, 25u8, 216u8, + 200u8, 200u8, 229u8, 172u8, 127u8, 196u8, 217u8, 123u8, 146u8, 115u8, + 70u8, 163u8, 215u8, 163u8, 53u8, 177u8, 247u8, 81u8, 126u8, 19u8, 60u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { msgHash: topics.1 } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + () + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.msgHash.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = as alloy_sol_types::EventTopic>::encode_topic(&self.msgHash); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for RelayedMessage { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&RelayedMessage> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &RelayedMessage) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `SentMessage(address,address,bytes,uint256,uint256)` and selector `0xcb0f7ffd78f9aee47a248fae8db181db6eee833039123e026dcbff529522e52a`. +```solidity +event SentMessage(address indexed target, address sender, bytes message, uint256 messageNonce, uint256 gasLimit); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct SentMessage { + #[allow(missing_docs)] + pub target: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub sender: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub message: alloy::sol_types::private::Bytes, + #[allow(missing_docs)] + pub messageNonce: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub gasLimit: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for SentMessage { + type DataTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Bytes, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + ); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "SentMessage(address,address,bytes,uint256,uint256)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 203u8, 15u8, 127u8, 253u8, 120u8, 249u8, 174u8, 228u8, 122u8, 36u8, + 143u8, 174u8, 141u8, 177u8, 129u8, 219u8, 110u8, 238u8, 131u8, 48u8, + 57u8, 18u8, 62u8, 2u8, 109u8, 203u8, 255u8, 82u8, 149u8, 34u8, 229u8, + 42u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + target: topics.1, + sender: data.0, + message: data.1, + messageNonce: data.2, + gasLimit: data.3, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + ::tokenize( + &self.sender, + ), + ::tokenize( + &self.message, + ), + as alloy_sol_types::SolType>::tokenize(&self.messageNonce), + as alloy_sol_types::SolType>::tokenize(&self.gasLimit), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.target.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.target, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for SentMessage { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&SentMessage> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &SentMessage) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `SentMessageExtension1(address,uint256)` and selector `0x8ebb2ec2465bdb2a06a66fc37a0963af8a2a6a1479d81d56fdb8cbb98096d546`. +```solidity +event SentMessageExtension1(address indexed sender, uint256 value); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct SentMessageExtension1 { + #[allow(missing_docs)] + pub sender: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub value: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for SentMessageExtension1 { + type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "SentMessageExtension1(address,uint256)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 142u8, 187u8, 46u8, 194u8, 70u8, 91u8, 219u8, 42u8, 6u8, 166u8, 111u8, + 195u8, 122u8, 9u8, 99u8, 175u8, 138u8, 42u8, 106u8, 20u8, 121u8, 216u8, + 29u8, 86u8, 253u8, 184u8, 203u8, 185u8, 128u8, 150u8, 213u8, 70u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + sender: topics.1, + value: data.0, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.value), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.sender.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.sender, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for SentMessageExtension1 { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&SentMessageExtension1> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &SentMessageExtension1) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + /**Constructor`. +```solidity +constructor(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct constructorCall {} + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: constructorCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for constructorCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolConstructor for constructorCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `ENCODING_OVERHEAD()` and selector `0xddd5a40f`. +```solidity +function ENCODING_OVERHEAD() external view returns (uint64); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ENCODING_OVERHEADCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`ENCODING_OVERHEAD()`](ENCODING_OVERHEADCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ENCODING_OVERHEADReturn { + #[allow(missing_docs)] + pub _0: u64, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: ENCODING_OVERHEADCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for ENCODING_OVERHEADCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u64,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: ENCODING_OVERHEADReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for ENCODING_OVERHEADReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for ENCODING_OVERHEADCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u64; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ENCODING_OVERHEAD()"; + const SELECTOR: [u8; 4] = [221u8, 213u8, 164u8, 15u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: ENCODING_OVERHEADReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: ENCODING_OVERHEADReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `FLOOR_CALLDATA_OVERHEAD()` and selector `0xe46e245a`. +```solidity +function FLOOR_CALLDATA_OVERHEAD() external view returns (uint64); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct FLOOR_CALLDATA_OVERHEADCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`FLOOR_CALLDATA_OVERHEAD()`](FLOOR_CALLDATA_OVERHEADCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct FLOOR_CALLDATA_OVERHEADReturn { + #[allow(missing_docs)] + pub _0: u64, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: FLOOR_CALLDATA_OVERHEADCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for FLOOR_CALLDATA_OVERHEADCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u64,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: FLOOR_CALLDATA_OVERHEADReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for FLOOR_CALLDATA_OVERHEADReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for FLOOR_CALLDATA_OVERHEADCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u64; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "FLOOR_CALLDATA_OVERHEAD()"; + const SELECTOR: [u8; 4] = [228u8, 110u8, 36u8, 90u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: FLOOR_CALLDATA_OVERHEADReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: FLOOR_CALLDATA_OVERHEADReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `MESSAGE_VERSION()` and selector `0x3f827a5a`. +```solidity +function MESSAGE_VERSION() external view returns (uint16); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct MESSAGE_VERSIONCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`MESSAGE_VERSION()`](MESSAGE_VERSIONCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct MESSAGE_VERSIONReturn { + #[allow(missing_docs)] + pub _0: u16, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: MESSAGE_VERSIONCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for MESSAGE_VERSIONCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<16>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u16,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: MESSAGE_VERSIONReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for MESSAGE_VERSIONReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for MESSAGE_VERSIONCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u16; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<16>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "MESSAGE_VERSION()"; + const SELECTOR: [u8; 4] = [63u8, 130u8, 122u8, 90u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: MESSAGE_VERSIONReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: MESSAGE_VERSIONReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `MIN_GAS_CALLDATA_OVERHEAD()` and selector `0x028f85f7`. +```solidity +function MIN_GAS_CALLDATA_OVERHEAD() external view returns (uint64); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct MIN_GAS_CALLDATA_OVERHEADCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`MIN_GAS_CALLDATA_OVERHEAD()`](MIN_GAS_CALLDATA_OVERHEADCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct MIN_GAS_CALLDATA_OVERHEADReturn { + #[allow(missing_docs)] + pub _0: u64, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: MIN_GAS_CALLDATA_OVERHEADCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for MIN_GAS_CALLDATA_OVERHEADCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u64,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: MIN_GAS_CALLDATA_OVERHEADReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for MIN_GAS_CALLDATA_OVERHEADReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for MIN_GAS_CALLDATA_OVERHEADCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u64; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "MIN_GAS_CALLDATA_OVERHEAD()"; + const SELECTOR: [u8; 4] = [2u8, 143u8, 133u8, 247u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: MIN_GAS_CALLDATA_OVERHEADReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: MIN_GAS_CALLDATA_OVERHEADReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR()` and selector `0x0c568498`. +```solidity +function MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR() external view returns (uint64); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATORCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR()`](MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATORCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATORReturn { + #[allow(missing_docs)] + pub _0: u64, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATORCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATORCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u64,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATORReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATORReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATORCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u64; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR()"; + const SELECTOR: [u8; 4] = [12u8, 86u8, 132u8, 152u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATORReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATORReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR()` and selector `0x2828d7e8`. +```solidity +function MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR() external view returns (uint64); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct MIN_GAS_DYNAMIC_OVERHEAD_NUMERATORCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR()`](MIN_GAS_DYNAMIC_OVERHEAD_NUMERATORCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct MIN_GAS_DYNAMIC_OVERHEAD_NUMERATORReturn { + #[allow(missing_docs)] + pub _0: u64, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: MIN_GAS_DYNAMIC_OVERHEAD_NUMERATORCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for MIN_GAS_DYNAMIC_OVERHEAD_NUMERATORCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u64,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: MIN_GAS_DYNAMIC_OVERHEAD_NUMERATORReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for MIN_GAS_DYNAMIC_OVERHEAD_NUMERATORReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for MIN_GAS_DYNAMIC_OVERHEAD_NUMERATORCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u64; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR()"; + const SELECTOR: [u8; 4] = [40u8, 40u8, 215u8, 232u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: MIN_GAS_DYNAMIC_OVERHEAD_NUMERATORReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: MIN_GAS_DYNAMIC_OVERHEAD_NUMERATORReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `OTHER_MESSENGER()` and selector `0x9fce812c`. +```solidity +function OTHER_MESSENGER() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct OTHER_MESSENGERCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`OTHER_MESSENGER()`](OTHER_MESSENGERCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct OTHER_MESSENGERReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: OTHER_MESSENGERCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for OTHER_MESSENGERCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: OTHER_MESSENGERReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for OTHER_MESSENGERReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for OTHER_MESSENGERCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "OTHER_MESSENGER()"; + const SELECTOR: [u8; 4] = [159u8, 206u8, 129u8, 44u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: OTHER_MESSENGERReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: OTHER_MESSENGERReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `RELAY_CALL_OVERHEAD()` and selector `0x4c1d6a69`. +```solidity +function RELAY_CALL_OVERHEAD() external view returns (uint64); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct RELAY_CALL_OVERHEADCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`RELAY_CALL_OVERHEAD()`](RELAY_CALL_OVERHEADCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct RELAY_CALL_OVERHEADReturn { + #[allow(missing_docs)] + pub _0: u64, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: RELAY_CALL_OVERHEADCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for RELAY_CALL_OVERHEADCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u64,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: RELAY_CALL_OVERHEADReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for RELAY_CALL_OVERHEADReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for RELAY_CALL_OVERHEADCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u64; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "RELAY_CALL_OVERHEAD()"; + const SELECTOR: [u8; 4] = [76u8, 29u8, 106u8, 105u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: RELAY_CALL_OVERHEADReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: RELAY_CALL_OVERHEADReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `RELAY_CONSTANT_OVERHEAD()` and selector `0x83a74074`. +```solidity +function RELAY_CONSTANT_OVERHEAD() external view returns (uint64); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct RELAY_CONSTANT_OVERHEADCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`RELAY_CONSTANT_OVERHEAD()`](RELAY_CONSTANT_OVERHEADCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct RELAY_CONSTANT_OVERHEADReturn { + #[allow(missing_docs)] + pub _0: u64, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: RELAY_CONSTANT_OVERHEADCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for RELAY_CONSTANT_OVERHEADCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u64,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: RELAY_CONSTANT_OVERHEADReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for RELAY_CONSTANT_OVERHEADReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for RELAY_CONSTANT_OVERHEADCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u64; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "RELAY_CONSTANT_OVERHEAD()"; + const SELECTOR: [u8; 4] = [131u8, 167u8, 64u8, 116u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: RELAY_CONSTANT_OVERHEADReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: RELAY_CONSTANT_OVERHEADReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `RELAY_GAS_CHECK_BUFFER()` and selector `0x5644cfdf`. +```solidity +function RELAY_GAS_CHECK_BUFFER() external view returns (uint64); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct RELAY_GAS_CHECK_BUFFERCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`RELAY_GAS_CHECK_BUFFER()`](RELAY_GAS_CHECK_BUFFERCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct RELAY_GAS_CHECK_BUFFERReturn { + #[allow(missing_docs)] + pub _0: u64, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: RELAY_GAS_CHECK_BUFFERCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for RELAY_GAS_CHECK_BUFFERCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u64,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: RELAY_GAS_CHECK_BUFFERReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for RELAY_GAS_CHECK_BUFFERReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for RELAY_GAS_CHECK_BUFFERCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u64; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "RELAY_GAS_CHECK_BUFFER()"; + const SELECTOR: [u8; 4] = [86u8, 68u8, 207u8, 223u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: RELAY_GAS_CHECK_BUFFERReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: RELAY_GAS_CHECK_BUFFERReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `RELAY_RESERVED_GAS()` and selector `0x8cbeeef2`. +```solidity +function RELAY_RESERVED_GAS() external view returns (uint64); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct RELAY_RESERVED_GASCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`RELAY_RESERVED_GAS()`](RELAY_RESERVED_GASCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct RELAY_RESERVED_GASReturn { + #[allow(missing_docs)] + pub _0: u64, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: RELAY_RESERVED_GASCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for RELAY_RESERVED_GASCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u64,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: RELAY_RESERVED_GASReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for RELAY_RESERVED_GASReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for RELAY_RESERVED_GASCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u64; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "RELAY_RESERVED_GAS()"; + const SELECTOR: [u8; 4] = [140u8, 190u8, 238u8, 242u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: RELAY_RESERVED_GASReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: RELAY_RESERVED_GASReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `TX_BASE_GAS()` and selector `0x2f7d3922`. +```solidity +function TX_BASE_GAS() external view returns (uint64); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct TX_BASE_GASCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`TX_BASE_GAS()`](TX_BASE_GASCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct TX_BASE_GASReturn { + #[allow(missing_docs)] + pub _0: u64, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: TX_BASE_GASCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for TX_BASE_GASCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u64,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: TX_BASE_GASReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for TX_BASE_GASReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for TX_BASE_GASCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u64; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "TX_BASE_GAS()"; + const SELECTOR: [u8; 4] = [47u8, 125u8, 57u8, 34u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: TX_BASE_GASReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: TX_BASE_GASReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `baseGas(bytes,uint32)` and selector `0xb28ade25`. +```solidity +function baseGas(bytes memory _message, uint32 _minGasLimit) external pure returns (uint64); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct baseGasCall { + #[allow(missing_docs)] + pub _message: alloy::sol_types::private::Bytes, + #[allow(missing_docs)] + pub _minGasLimit: u32, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`baseGas(bytes,uint32)`](baseGasCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct baseGasReturn { + #[allow(missing_docs)] + pub _0: u64, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Bytes, + alloy::sol_types::sol_data::Uint<32>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Bytes, u32); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: baseGasCall) -> Self { + (value._message, value._minGasLimit) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for baseGasCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _message: tuple.0, + _minGasLimit: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u64,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: baseGasReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for baseGasReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for baseGasCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Bytes, + alloy::sol_types::sol_data::Uint<32>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u64; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "baseGas(bytes,uint32)"; + const SELECTOR: [u8; 4] = [178u8, 138u8, 222u8, 37u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._message, + ), + as alloy_sol_types::SolType>::tokenize(&self._minGasLimit), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: baseGasReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: baseGasReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `failedMessages(bytes32)` and selector `0xa4e7f8bd`. +```solidity +function failedMessages(bytes32) external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct failedMessagesCall(pub alloy::sol_types::private::FixedBytes<32>); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`failedMessages(bytes32)`](failedMessagesCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct failedMessagesReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: failedMessagesCall) -> Self { + (value.0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for failedMessagesCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self(tuple.0) + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: failedMessagesReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for failedMessagesReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for failedMessagesCall { + type Parameters<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "failedMessages(bytes32)"; + const SELECTOR: [u8; 4] = [164u8, 231u8, 248u8, 189u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.0), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: failedMessagesReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: failedMessagesReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `initialize(address)` and selector `0xc4d66de8`. +```solidity +function initialize(address _l1CrossDomainMessenger) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct initializeCall { + #[allow(missing_docs)] + pub _l1CrossDomainMessenger: alloy::sol_types::private::Address, + } + ///Container type for the return parameters of the [`initialize(address)`](initializeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct initializeReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: initializeCall) -> Self { + (value._l1CrossDomainMessenger,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for initializeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _l1CrossDomainMessenger: tuple.0, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: initializeReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for initializeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl initializeReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for initializeCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = initializeReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "initialize(address)"; + const SELECTOR: [u8; 4] = [196u8, 214u8, 109u8, 232u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._l1CrossDomainMessenger, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + initializeReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `l1CrossDomainMessenger()` and selector `0xa7119869`. +```solidity +function l1CrossDomainMessenger() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct l1CrossDomainMessengerCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`l1CrossDomainMessenger()`](l1CrossDomainMessengerCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct l1CrossDomainMessengerReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: l1CrossDomainMessengerCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for l1CrossDomainMessengerCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: l1CrossDomainMessengerReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for l1CrossDomainMessengerReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for l1CrossDomainMessengerCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "l1CrossDomainMessenger()"; + const SELECTOR: [u8; 4] = [167u8, 17u8, 152u8, 105u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: l1CrossDomainMessengerReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: l1CrossDomainMessengerReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `messageNonce()` and selector `0xecc70428`. +```solidity +function messageNonce() external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct messageNonceCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`messageNonce()`](messageNonceCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct messageNonceReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: messageNonceCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for messageNonceCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: messageNonceReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for messageNonceReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for messageNonceCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "messageNonce()"; + const SELECTOR: [u8; 4] = [236u8, 199u8, 4u8, 40u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: messageNonceReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: messageNonceReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `otherMessenger()` and selector `0xdb505d80`. +```solidity +function otherMessenger() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct otherMessengerCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`otherMessenger()`](otherMessengerCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct otherMessengerReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: otherMessengerCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for otherMessengerCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: otherMessengerReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for otherMessengerReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for otherMessengerCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "otherMessenger()"; + const SELECTOR: [u8; 4] = [219u8, 80u8, 93u8, 128u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: otherMessengerReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: otherMessengerReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `paused()` and selector `0x5c975abb`. +```solidity +function paused() external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct pausedCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`paused()`](pausedCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct pausedReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: pausedCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for pausedCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: pausedReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for pausedReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for pausedCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "paused()"; + const SELECTOR: [u8; 4] = [92u8, 151u8, 90u8, 187u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: pausedReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: pausedReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `relayMessage(uint256,address,address,uint256,uint256,bytes)` and selector `0xd764ad0b`. +```solidity +function relayMessage(uint256 _nonce, address _sender, address _target, uint256 _value, uint256 _minGasLimit, bytes memory _message) external payable; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct relayMessageCall { + #[allow(missing_docs)] + pub _nonce: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _sender: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _target: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _value: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _minGasLimit: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _message: alloy::sol_types::private::Bytes, + } + ///Container type for the return parameters of the [`relayMessage(uint256,address,address,uint256,uint256,bytes)`](relayMessageCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct relayMessageReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::Bytes, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: relayMessageCall) -> Self { + ( + value._nonce, + value._sender, + value._target, + value._value, + value._minGasLimit, + value._message, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for relayMessageCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _nonce: tuple.0, + _sender: tuple.1, + _target: tuple.2, + _value: tuple.3, + _minGasLimit: tuple.4, + _message: tuple.5, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: relayMessageReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for relayMessageReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl relayMessageReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for relayMessageCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Bytes, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = relayMessageReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "relayMessage(uint256,address,address,uint256,uint256,bytes)"; + const SELECTOR: [u8; 4] = [215u8, 100u8, 173u8, 11u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._nonce), + ::tokenize( + &self._sender, + ), + ::tokenize( + &self._target, + ), + as alloy_sol_types::SolType>::tokenize(&self._value), + as alloy_sol_types::SolType>::tokenize(&self._minGasLimit), + ::tokenize( + &self._message, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + relayMessageReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `sendMessage(address,bytes,uint32)` and selector `0x3dbb202b`. +```solidity +function sendMessage(address _target, bytes memory _message, uint32 _minGasLimit) external payable; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct sendMessageCall { + #[allow(missing_docs)] + pub _target: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _message: alloy::sol_types::private::Bytes, + #[allow(missing_docs)] + pub _minGasLimit: u32, + } + ///Container type for the return parameters of the [`sendMessage(address,bytes,uint32)`](sendMessageCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct sendMessageReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Bytes, + alloy::sol_types::sol_data::Uint<32>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Bytes, + u32, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: sendMessageCall) -> Self { + (value._target, value._message, value._minGasLimit) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for sendMessageCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _target: tuple.0, + _message: tuple.1, + _minGasLimit: tuple.2, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: sendMessageReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for sendMessageReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl sendMessageReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for sendMessageCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Bytes, + alloy::sol_types::sol_data::Uint<32>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = sendMessageReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "sendMessage(address,bytes,uint32)"; + const SELECTOR: [u8; 4] = [61u8, 187u8, 32u8, 43u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._target, + ), + ::tokenize( + &self._message, + ), + as alloy_sol_types::SolType>::tokenize(&self._minGasLimit), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + sendMessageReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `successfulMessages(bytes32)` and selector `0xb1b1b209`. +```solidity +function successfulMessages(bytes32) external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct successfulMessagesCall(pub alloy::sol_types::private::FixedBytes<32>); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`successfulMessages(bytes32)`](successfulMessagesCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct successfulMessagesReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: successfulMessagesCall) -> Self { + (value.0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for successfulMessagesCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self(tuple.0) + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: successfulMessagesReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for successfulMessagesReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for successfulMessagesCall { + type Parameters<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "successfulMessages(bytes32)"; + const SELECTOR: [u8; 4] = [177u8, 177u8, 178u8, 9u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.0), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: successfulMessagesReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: successfulMessagesReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `version()` and selector `0x54fd4d50`. +```solidity +function version() external view returns (string memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`version()`](versionCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for versionCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::String; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "version()"; + const SELECTOR: [u8; 4] = [84u8, 253u8, 77u8, 80u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `xDomainMessageSender()` and selector `0x6e296e45`. +```solidity +function xDomainMessageSender() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct xDomainMessageSenderCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`xDomainMessageSender()`](xDomainMessageSenderCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct xDomainMessageSenderReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: xDomainMessageSenderCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for xDomainMessageSenderCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: xDomainMessageSenderReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for xDomainMessageSenderReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for xDomainMessageSenderCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "xDomainMessageSender()"; + const SELECTOR: [u8; 4] = [110u8, 41u8, 110u8, 69u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: xDomainMessageSenderReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: xDomainMessageSenderReturn = r.into(); + r._0 + }) + } + } + }; + ///Container for all the [`L2CrossDomainMessenger`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum L2CrossDomainMessengerCalls { + #[allow(missing_docs)] + ENCODING_OVERHEAD(ENCODING_OVERHEADCall), + #[allow(missing_docs)] + FLOOR_CALLDATA_OVERHEAD(FLOOR_CALLDATA_OVERHEADCall), + #[allow(missing_docs)] + MESSAGE_VERSION(MESSAGE_VERSIONCall), + #[allow(missing_docs)] + MIN_GAS_CALLDATA_OVERHEAD(MIN_GAS_CALLDATA_OVERHEADCall), + #[allow(missing_docs)] + MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR(MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATORCall), + #[allow(missing_docs)] + MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR(MIN_GAS_DYNAMIC_OVERHEAD_NUMERATORCall), + #[allow(missing_docs)] + OTHER_MESSENGER(OTHER_MESSENGERCall), + #[allow(missing_docs)] + RELAY_CALL_OVERHEAD(RELAY_CALL_OVERHEADCall), + #[allow(missing_docs)] + RELAY_CONSTANT_OVERHEAD(RELAY_CONSTANT_OVERHEADCall), + #[allow(missing_docs)] + RELAY_GAS_CHECK_BUFFER(RELAY_GAS_CHECK_BUFFERCall), + #[allow(missing_docs)] + RELAY_RESERVED_GAS(RELAY_RESERVED_GASCall), + #[allow(missing_docs)] + TX_BASE_GAS(TX_BASE_GASCall), + #[allow(missing_docs)] + baseGas(baseGasCall), + #[allow(missing_docs)] + failedMessages(failedMessagesCall), + #[allow(missing_docs)] + initialize(initializeCall), + #[allow(missing_docs)] + l1CrossDomainMessenger(l1CrossDomainMessengerCall), + #[allow(missing_docs)] + messageNonce(messageNonceCall), + #[allow(missing_docs)] + otherMessenger(otherMessengerCall), + #[allow(missing_docs)] + paused(pausedCall), + #[allow(missing_docs)] + relayMessage(relayMessageCall), + #[allow(missing_docs)] + sendMessage(sendMessageCall), + #[allow(missing_docs)] + successfulMessages(successfulMessagesCall), + #[allow(missing_docs)] + version(versionCall), + #[allow(missing_docs)] + xDomainMessageSender(xDomainMessageSenderCall), + } + impl L2CrossDomainMessengerCalls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [2u8, 143u8, 133u8, 247u8], + [12u8, 86u8, 132u8, 152u8], + [40u8, 40u8, 215u8, 232u8], + [47u8, 125u8, 57u8, 34u8], + [61u8, 187u8, 32u8, 43u8], + [63u8, 130u8, 122u8, 90u8], + [76u8, 29u8, 106u8, 105u8], + [84u8, 253u8, 77u8, 80u8], + [86u8, 68u8, 207u8, 223u8], + [92u8, 151u8, 90u8, 187u8], + [110u8, 41u8, 110u8, 69u8], + [131u8, 167u8, 64u8, 116u8], + [140u8, 190u8, 238u8, 242u8], + [159u8, 206u8, 129u8, 44u8], + [164u8, 231u8, 248u8, 189u8], + [167u8, 17u8, 152u8, 105u8], + [177u8, 177u8, 178u8, 9u8], + [178u8, 138u8, 222u8, 37u8], + [196u8, 214u8, 109u8, 232u8], + [215u8, 100u8, 173u8, 11u8], + [219u8, 80u8, 93u8, 128u8], + [221u8, 213u8, 164u8, 15u8], + [228u8, 110u8, 36u8, 90u8], + [236u8, 199u8, 4u8, 40u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(MIN_GAS_CALLDATA_OVERHEAD), + ::core::stringify!(MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR), + ::core::stringify!(MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR), + ::core::stringify!(TX_BASE_GAS), + ::core::stringify!(sendMessage), + ::core::stringify!(MESSAGE_VERSION), + ::core::stringify!(RELAY_CALL_OVERHEAD), + ::core::stringify!(version), + ::core::stringify!(RELAY_GAS_CHECK_BUFFER), + ::core::stringify!(paused), + ::core::stringify!(xDomainMessageSender), + ::core::stringify!(RELAY_CONSTANT_OVERHEAD), + ::core::stringify!(RELAY_RESERVED_GAS), + ::core::stringify!(OTHER_MESSENGER), + ::core::stringify!(failedMessages), + ::core::stringify!(l1CrossDomainMessenger), + ::core::stringify!(successfulMessages), + ::core::stringify!(baseGas), + ::core::stringify!(initialize), + ::core::stringify!(relayMessage), + ::core::stringify!(otherMessenger), + ::core::stringify!(ENCODING_OVERHEAD), + ::core::stringify!(FLOOR_CALLDATA_OVERHEAD), + ::core::stringify!(messageNonce), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for L2CrossDomainMessengerCalls { + const NAME: &'static str = "L2CrossDomainMessengerCalls"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 24usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::ENCODING_OVERHEAD(_) => { + ::SELECTOR + } + Self::FLOOR_CALLDATA_OVERHEAD(_) => { + ::SELECTOR + } + Self::MESSAGE_VERSION(_) => { + ::SELECTOR + } + Self::MIN_GAS_CALLDATA_OVERHEAD(_) => { + ::SELECTOR + } + Self::MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR(_) => { + ::SELECTOR + } + Self::MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR(_) => { + ::SELECTOR + } + Self::OTHER_MESSENGER(_) => { + ::SELECTOR + } + Self::RELAY_CALL_OVERHEAD(_) => { + ::SELECTOR + } + Self::RELAY_CONSTANT_OVERHEAD(_) => { + ::SELECTOR + } + Self::RELAY_GAS_CHECK_BUFFER(_) => { + ::SELECTOR + } + Self::RELAY_RESERVED_GAS(_) => { + ::SELECTOR + } + Self::TX_BASE_GAS(_) => { + ::SELECTOR + } + Self::baseGas(_) => ::SELECTOR, + Self::failedMessages(_) => { + ::SELECTOR + } + Self::initialize(_) => { + ::SELECTOR + } + Self::l1CrossDomainMessenger(_) => { + ::SELECTOR + } + Self::messageNonce(_) => { + ::SELECTOR + } + Self::otherMessenger(_) => { + ::SELECTOR + } + Self::paused(_) => ::SELECTOR, + Self::relayMessage(_) => { + ::SELECTOR + } + Self::sendMessage(_) => { + ::SELECTOR + } + Self::successfulMessages(_) => { + ::SELECTOR + } + Self::version(_) => ::SELECTOR, + Self::xDomainMessageSender(_) => { + ::SELECTOR + } + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn MIN_GAS_CALLDATA_OVERHEAD( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L2CrossDomainMessengerCalls::MIN_GAS_CALLDATA_OVERHEAD) + } + MIN_GAS_CALLDATA_OVERHEAD + }, + { + fn MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + L2CrossDomainMessengerCalls::MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR, + ) + } + MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR + }, + { + fn MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + L2CrossDomainMessengerCalls::MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR, + ) + } + MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR + }, + { + fn TX_BASE_GAS( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L2CrossDomainMessengerCalls::TX_BASE_GAS) + } + TX_BASE_GAS + }, + { + fn sendMessage( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L2CrossDomainMessengerCalls::sendMessage) + } + sendMessage + }, + { + fn MESSAGE_VERSION( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L2CrossDomainMessengerCalls::MESSAGE_VERSION) + } + MESSAGE_VERSION + }, + { + fn RELAY_CALL_OVERHEAD( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L2CrossDomainMessengerCalls::RELAY_CALL_OVERHEAD) + } + RELAY_CALL_OVERHEAD + }, + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(L2CrossDomainMessengerCalls::version) + } + version + }, + { + fn RELAY_GAS_CHECK_BUFFER( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L2CrossDomainMessengerCalls::RELAY_GAS_CHECK_BUFFER) + } + RELAY_GAS_CHECK_BUFFER + }, + { + fn paused( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(L2CrossDomainMessengerCalls::paused) + } + paused + }, + { + fn xDomainMessageSender( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L2CrossDomainMessengerCalls::xDomainMessageSender) + } + xDomainMessageSender + }, + { + fn RELAY_CONSTANT_OVERHEAD( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L2CrossDomainMessengerCalls::RELAY_CONSTANT_OVERHEAD) + } + RELAY_CONSTANT_OVERHEAD + }, + { + fn RELAY_RESERVED_GAS( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L2CrossDomainMessengerCalls::RELAY_RESERVED_GAS) + } + RELAY_RESERVED_GAS + }, + { + fn OTHER_MESSENGER( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L2CrossDomainMessengerCalls::OTHER_MESSENGER) + } + OTHER_MESSENGER + }, + { + fn failedMessages( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L2CrossDomainMessengerCalls::failedMessages) + } + failedMessages + }, + { + fn l1CrossDomainMessenger( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L2CrossDomainMessengerCalls::l1CrossDomainMessenger) + } + l1CrossDomainMessenger + }, + { + fn successfulMessages( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L2CrossDomainMessengerCalls::successfulMessages) + } + successfulMessages + }, + { + fn baseGas( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(L2CrossDomainMessengerCalls::baseGas) + } + baseGas + }, + { + fn initialize( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L2CrossDomainMessengerCalls::initialize) + } + initialize + }, + { + fn relayMessage( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L2CrossDomainMessengerCalls::relayMessage) + } + relayMessage + }, + { + fn otherMessenger( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L2CrossDomainMessengerCalls::otherMessenger) + } + otherMessenger + }, + { + fn ENCODING_OVERHEAD( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L2CrossDomainMessengerCalls::ENCODING_OVERHEAD) + } + ENCODING_OVERHEAD + }, + { + fn FLOOR_CALLDATA_OVERHEAD( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L2CrossDomainMessengerCalls::FLOOR_CALLDATA_OVERHEAD) + } + FLOOR_CALLDATA_OVERHEAD + }, + { + fn messageNonce( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L2CrossDomainMessengerCalls::messageNonce) + } + messageNonce + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn MIN_GAS_CALLDATA_OVERHEAD( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L2CrossDomainMessengerCalls::MIN_GAS_CALLDATA_OVERHEAD) + } + MIN_GAS_CALLDATA_OVERHEAD + }, + { + fn MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + L2CrossDomainMessengerCalls::MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR, + ) + } + MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR + }, + { + fn MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + L2CrossDomainMessengerCalls::MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR, + ) + } + MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR + }, + { + fn TX_BASE_GAS( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L2CrossDomainMessengerCalls::TX_BASE_GAS) + } + TX_BASE_GAS + }, + { + fn sendMessage( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L2CrossDomainMessengerCalls::sendMessage) + } + sendMessage + }, + { + fn MESSAGE_VERSION( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L2CrossDomainMessengerCalls::MESSAGE_VERSION) + } + MESSAGE_VERSION + }, + { + fn RELAY_CALL_OVERHEAD( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L2CrossDomainMessengerCalls::RELAY_CALL_OVERHEAD) + } + RELAY_CALL_OVERHEAD + }, + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L2CrossDomainMessengerCalls::version) + } + version + }, + { + fn RELAY_GAS_CHECK_BUFFER( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L2CrossDomainMessengerCalls::RELAY_GAS_CHECK_BUFFER) + } + RELAY_GAS_CHECK_BUFFER + }, + { + fn paused( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L2CrossDomainMessengerCalls::paused) + } + paused + }, + { + fn xDomainMessageSender( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L2CrossDomainMessengerCalls::xDomainMessageSender) + } + xDomainMessageSender + }, + { + fn RELAY_CONSTANT_OVERHEAD( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L2CrossDomainMessengerCalls::RELAY_CONSTANT_OVERHEAD) + } + RELAY_CONSTANT_OVERHEAD + }, + { + fn RELAY_RESERVED_GAS( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L2CrossDomainMessengerCalls::RELAY_RESERVED_GAS) + } + RELAY_RESERVED_GAS + }, + { + fn OTHER_MESSENGER( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L2CrossDomainMessengerCalls::OTHER_MESSENGER) + } + OTHER_MESSENGER + }, + { + fn failedMessages( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L2CrossDomainMessengerCalls::failedMessages) + } + failedMessages + }, + { + fn l1CrossDomainMessenger( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L2CrossDomainMessengerCalls::l1CrossDomainMessenger) + } + l1CrossDomainMessenger + }, + { + fn successfulMessages( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L2CrossDomainMessengerCalls::successfulMessages) + } + successfulMessages + }, + { + fn baseGas( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L2CrossDomainMessengerCalls::baseGas) + } + baseGas + }, + { + fn initialize( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L2CrossDomainMessengerCalls::initialize) + } + initialize + }, + { + fn relayMessage( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L2CrossDomainMessengerCalls::relayMessage) + } + relayMessage + }, + { + fn otherMessenger( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L2CrossDomainMessengerCalls::otherMessenger) + } + otherMessenger + }, + { + fn ENCODING_OVERHEAD( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L2CrossDomainMessengerCalls::ENCODING_OVERHEAD) + } + ENCODING_OVERHEAD + }, + { + fn FLOOR_CALLDATA_OVERHEAD( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L2CrossDomainMessengerCalls::FLOOR_CALLDATA_OVERHEAD) + } + FLOOR_CALLDATA_OVERHEAD + }, + { + fn messageNonce( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L2CrossDomainMessengerCalls::messageNonce) + } + messageNonce + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::ENCODING_OVERHEAD(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::FLOOR_CALLDATA_OVERHEAD(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::MESSAGE_VERSION(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::MIN_GAS_CALLDATA_OVERHEAD(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::OTHER_MESSENGER(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::RELAY_CALL_OVERHEAD(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::RELAY_CONSTANT_OVERHEAD(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::RELAY_GAS_CHECK_BUFFER(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::RELAY_RESERVED_GAS(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::TX_BASE_GAS(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::baseGas(inner) => { + ::abi_encoded_size(inner) + } + Self::failedMessages(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::initialize(inner) => { + ::abi_encoded_size(inner) + } + Self::l1CrossDomainMessenger(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::messageNonce(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::otherMessenger(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::paused(inner) => { + ::abi_encoded_size(inner) + } + Self::relayMessage(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::sendMessage(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::successfulMessages(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::version(inner) => { + ::abi_encoded_size(inner) + } + Self::xDomainMessageSender(inner) => { + ::abi_encoded_size( + inner, + ) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::ENCODING_OVERHEAD(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::FLOOR_CALLDATA_OVERHEAD(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::MESSAGE_VERSION(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::MIN_GAS_CALLDATA_OVERHEAD(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::OTHER_MESSENGER(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::RELAY_CALL_OVERHEAD(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::RELAY_CONSTANT_OVERHEAD(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::RELAY_GAS_CHECK_BUFFER(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::RELAY_RESERVED_GAS(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::TX_BASE_GAS(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::baseGas(inner) => { + ::abi_encode_raw(inner, out) + } + Self::failedMessages(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::initialize(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::l1CrossDomainMessenger(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::messageNonce(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::otherMessenger(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::paused(inner) => { + ::abi_encode_raw(inner, out) + } + Self::relayMessage(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::sendMessage(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::successfulMessages(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::version(inner) => { + ::abi_encode_raw(inner, out) + } + Self::xDomainMessageSender(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + } + } + } + ///Container for all the [`L2CrossDomainMessenger`](self) events. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum L2CrossDomainMessengerEvents { + #[allow(missing_docs)] + FailedRelayedMessage(FailedRelayedMessage), + #[allow(missing_docs)] + Initialized(Initialized), + #[allow(missing_docs)] + RelayedMessage(RelayedMessage), + #[allow(missing_docs)] + SentMessage(SentMessage), + #[allow(missing_docs)] + SentMessageExtension1(SentMessageExtension1), + } + impl L2CrossDomainMessengerEvents { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 32usize]] = &[ + [ + 70u8, 65u8, 223u8, 74u8, 150u8, 32u8, 113u8, 225u8, 39u8, 25u8, 216u8, + 200u8, 200u8, 229u8, 172u8, 127u8, 196u8, 217u8, 123u8, 146u8, 115u8, + 70u8, 163u8, 215u8, 163u8, 53u8, 177u8, 247u8, 81u8, 126u8, 19u8, 60u8, + ], + [ + 127u8, 38u8, 184u8, 63u8, 249u8, 110u8, 31u8, 43u8, 106u8, 104u8, 47u8, + 19u8, 56u8, 82u8, 246u8, 121u8, 138u8, 9u8, 196u8, 101u8, 218u8, 149u8, + 146u8, 20u8, 96u8, 206u8, 251u8, 56u8, 71u8, 64u8, 36u8, 152u8, + ], + [ + 142u8, 187u8, 46u8, 194u8, 70u8, 91u8, 219u8, 42u8, 6u8, 166u8, 111u8, + 195u8, 122u8, 9u8, 99u8, 175u8, 138u8, 42u8, 106u8, 20u8, 121u8, 216u8, + 29u8, 86u8, 253u8, 184u8, 203u8, 185u8, 128u8, 150u8, 213u8, 70u8, + ], + [ + 153u8, 208u8, 224u8, 72u8, 72u8, 75u8, 170u8, 27u8, 21u8, 64u8, 177u8, + 54u8, 124u8, 177u8, 40u8, 172u8, 215u8, 171u8, 41u8, 70u8, 209u8, 237u8, + 145u8, 236u8, 16u8, 227u8, 200u8, 94u8, 75u8, 245u8, 27u8, 143u8, + ], + [ + 203u8, 15u8, 127u8, 253u8, 120u8, 249u8, 174u8, 228u8, 122u8, 36u8, + 143u8, 174u8, 141u8, 177u8, 129u8, 219u8, 110u8, 238u8, 131u8, 48u8, + 57u8, 18u8, 62u8, 2u8, 109u8, 203u8, 255u8, 82u8, 149u8, 34u8, 229u8, + 42u8, + ], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(RelayedMessage), + ::core::stringify!(Initialized), + ::core::stringify!(SentMessageExtension1), + ::core::stringify!(FailedRelayedMessage), + ::core::stringify!(SentMessage), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolEventInterface for L2CrossDomainMessengerEvents { + const NAME: &'static str = "L2CrossDomainMessengerEvents"; + const COUNT: usize = 5usize; + fn decode_raw_log( + topics: &[alloy_sol_types::Word], + data: &[u8], + ) -> alloy_sol_types::Result { + match topics.first().copied() { + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::FailedRelayedMessage) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::Initialized) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::RelayedMessage) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::SentMessage) + } + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::SentMessageExtension1) + } + _ => { + alloy_sol_types::private::Err(alloy_sol_types::Error::InvalidLog { + name: ::NAME, + log: alloy_sol_types::private::Box::new( + alloy_sol_types::private::LogData::new_unchecked( + topics.to_vec(), + data.to_vec().into(), + ), + ), + }) + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for L2CrossDomainMessengerEvents { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + match self { + Self::FailedRelayedMessage(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::Initialized(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::RelayedMessage(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::SentMessage(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::SentMessageExtension1(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + } + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + match self { + Self::FailedRelayedMessage(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::Initialized(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::RelayedMessage(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::SentMessage(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::SentMessageExtension1(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`L2CrossDomainMessenger`](self) contract instance. + +See the [wrapper's documentation](`L2CrossDomainMessengerInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> L2CrossDomainMessengerInstance { + L2CrossDomainMessengerInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + L2CrossDomainMessengerInstance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + L2CrossDomainMessengerInstance::::deploy_builder(__provider) + } + /**A [`L2CrossDomainMessenger`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`L2CrossDomainMessenger`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct L2CrossDomainMessengerInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for L2CrossDomainMessengerInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("L2CrossDomainMessengerInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > L2CrossDomainMessengerInstance { + /**Creates a new wrapper around an on-chain [`L2CrossDomainMessenger`](self) contract instance. + +See the [wrapper's documentation](`L2CrossDomainMessengerInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl L2CrossDomainMessengerInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> L2CrossDomainMessengerInstance { + L2CrossDomainMessengerInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > L2CrossDomainMessengerInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`ENCODING_OVERHEAD`] function. + pub fn ENCODING_OVERHEAD( + &self, + ) -> alloy_contract::SolCallBuilder<&P, ENCODING_OVERHEADCall, N> { + self.call_builder(&ENCODING_OVERHEADCall) + } + ///Creates a new call builder for the [`FLOOR_CALLDATA_OVERHEAD`] function. + pub fn FLOOR_CALLDATA_OVERHEAD( + &self, + ) -> alloy_contract::SolCallBuilder<&P, FLOOR_CALLDATA_OVERHEADCall, N> { + self.call_builder(&FLOOR_CALLDATA_OVERHEADCall) + } + ///Creates a new call builder for the [`MESSAGE_VERSION`] function. + pub fn MESSAGE_VERSION( + &self, + ) -> alloy_contract::SolCallBuilder<&P, MESSAGE_VERSIONCall, N> { + self.call_builder(&MESSAGE_VERSIONCall) + } + ///Creates a new call builder for the [`MIN_GAS_CALLDATA_OVERHEAD`] function. + pub fn MIN_GAS_CALLDATA_OVERHEAD( + &self, + ) -> alloy_contract::SolCallBuilder<&P, MIN_GAS_CALLDATA_OVERHEADCall, N> { + self.call_builder(&MIN_GAS_CALLDATA_OVERHEADCall) + } + ///Creates a new call builder for the [`MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR`] function. + pub fn MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR( + &self, + ) -> alloy_contract::SolCallBuilder< + &P, + MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATORCall, + N, + > { + self.call_builder(&MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATORCall) + } + ///Creates a new call builder for the [`MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR`] function. + pub fn MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR( + &self, + ) -> alloy_contract::SolCallBuilder< + &P, + MIN_GAS_DYNAMIC_OVERHEAD_NUMERATORCall, + N, + > { + self.call_builder(&MIN_GAS_DYNAMIC_OVERHEAD_NUMERATORCall) + } + ///Creates a new call builder for the [`OTHER_MESSENGER`] function. + pub fn OTHER_MESSENGER( + &self, + ) -> alloy_contract::SolCallBuilder<&P, OTHER_MESSENGERCall, N> { + self.call_builder(&OTHER_MESSENGERCall) + } + ///Creates a new call builder for the [`RELAY_CALL_OVERHEAD`] function. + pub fn RELAY_CALL_OVERHEAD( + &self, + ) -> alloy_contract::SolCallBuilder<&P, RELAY_CALL_OVERHEADCall, N> { + self.call_builder(&RELAY_CALL_OVERHEADCall) + } + ///Creates a new call builder for the [`RELAY_CONSTANT_OVERHEAD`] function. + pub fn RELAY_CONSTANT_OVERHEAD( + &self, + ) -> alloy_contract::SolCallBuilder<&P, RELAY_CONSTANT_OVERHEADCall, N> { + self.call_builder(&RELAY_CONSTANT_OVERHEADCall) + } + ///Creates a new call builder for the [`RELAY_GAS_CHECK_BUFFER`] function. + pub fn RELAY_GAS_CHECK_BUFFER( + &self, + ) -> alloy_contract::SolCallBuilder<&P, RELAY_GAS_CHECK_BUFFERCall, N> { + self.call_builder(&RELAY_GAS_CHECK_BUFFERCall) + } + ///Creates a new call builder for the [`RELAY_RESERVED_GAS`] function. + pub fn RELAY_RESERVED_GAS( + &self, + ) -> alloy_contract::SolCallBuilder<&P, RELAY_RESERVED_GASCall, N> { + self.call_builder(&RELAY_RESERVED_GASCall) + } + ///Creates a new call builder for the [`TX_BASE_GAS`] function. + pub fn TX_BASE_GAS( + &self, + ) -> alloy_contract::SolCallBuilder<&P, TX_BASE_GASCall, N> { + self.call_builder(&TX_BASE_GASCall) + } + ///Creates a new call builder for the [`baseGas`] function. + pub fn baseGas( + &self, + _message: alloy::sol_types::private::Bytes, + _minGasLimit: u32, + ) -> alloy_contract::SolCallBuilder<&P, baseGasCall, N> { + self.call_builder( + &baseGasCall { + _message, + _minGasLimit, + }, + ) + } + ///Creates a new call builder for the [`failedMessages`] function. + pub fn failedMessages( + &self, + _0: alloy::sol_types::private::FixedBytes<32>, + ) -> alloy_contract::SolCallBuilder<&P, failedMessagesCall, N> { + self.call_builder(&failedMessagesCall(_0)) + } + ///Creates a new call builder for the [`initialize`] function. + pub fn initialize( + &self, + _l1CrossDomainMessenger: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, initializeCall, N> { + self.call_builder( + &initializeCall { + _l1CrossDomainMessenger, + }, + ) + } + ///Creates a new call builder for the [`l1CrossDomainMessenger`] function. + pub fn l1CrossDomainMessenger( + &self, + ) -> alloy_contract::SolCallBuilder<&P, l1CrossDomainMessengerCall, N> { + self.call_builder(&l1CrossDomainMessengerCall) + } + ///Creates a new call builder for the [`messageNonce`] function. + pub fn messageNonce( + &self, + ) -> alloy_contract::SolCallBuilder<&P, messageNonceCall, N> { + self.call_builder(&messageNonceCall) + } + ///Creates a new call builder for the [`otherMessenger`] function. + pub fn otherMessenger( + &self, + ) -> alloy_contract::SolCallBuilder<&P, otherMessengerCall, N> { + self.call_builder(&otherMessengerCall) + } + ///Creates a new call builder for the [`paused`] function. + pub fn paused(&self) -> alloy_contract::SolCallBuilder<&P, pausedCall, N> { + self.call_builder(&pausedCall) + } + ///Creates a new call builder for the [`relayMessage`] function. + pub fn relayMessage( + &self, + _nonce: alloy::sol_types::private::primitives::aliases::U256, + _sender: alloy::sol_types::private::Address, + _target: alloy::sol_types::private::Address, + _value: alloy::sol_types::private::primitives::aliases::U256, + _minGasLimit: alloy::sol_types::private::primitives::aliases::U256, + _message: alloy::sol_types::private::Bytes, + ) -> alloy_contract::SolCallBuilder<&P, relayMessageCall, N> { + self.call_builder( + &relayMessageCall { + _nonce, + _sender, + _target, + _value, + _minGasLimit, + _message, + }, + ) + } + ///Creates a new call builder for the [`sendMessage`] function. + pub fn sendMessage( + &self, + _target: alloy::sol_types::private::Address, + _message: alloy::sol_types::private::Bytes, + _minGasLimit: u32, + ) -> alloy_contract::SolCallBuilder<&P, sendMessageCall, N> { + self.call_builder( + &sendMessageCall { + _target, + _message, + _minGasLimit, + }, + ) + } + ///Creates a new call builder for the [`successfulMessages`] function. + pub fn successfulMessages( + &self, + _0: alloy::sol_types::private::FixedBytes<32>, + ) -> alloy_contract::SolCallBuilder<&P, successfulMessagesCall, N> { + self.call_builder(&successfulMessagesCall(_0)) + } + ///Creates a new call builder for the [`version`] function. + pub fn version(&self) -> alloy_contract::SolCallBuilder<&P, versionCall, N> { + self.call_builder(&versionCall) + } + ///Creates a new call builder for the [`xDomainMessageSender`] function. + pub fn xDomainMessageSender( + &self, + ) -> alloy_contract::SolCallBuilder<&P, xDomainMessageSenderCall, N> { + self.call_builder(&xDomainMessageSenderCall) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > L2CrossDomainMessengerInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + ///Creates a new event filter for the [`FailedRelayedMessage`] event. + pub fn FailedRelayedMessage_filter( + &self, + ) -> alloy_contract::Event<&P, FailedRelayedMessage, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`Initialized`] event. + pub fn Initialized_filter(&self) -> alloy_contract::Event<&P, Initialized, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`RelayedMessage`] event. + pub fn RelayedMessage_filter( + &self, + ) -> alloy_contract::Event<&P, RelayedMessage, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`SentMessage`] event. + pub fn SentMessage_filter(&self) -> alloy_contract::Event<&P, SentMessage, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`SentMessageExtension1`] event. + pub fn SentMessageExtension1_filter( + &self, + ) -> alloy_contract::Event<&P, SentMessageExtension1, N> { + self.event_filter::() + } + } +} diff --git a/bindings/rust/src/l2_standard_bridge.rs b/bindings/rust/src/l2_standard_bridge.rs new file mode 100644 index 000000000..3d96c77fe --- /dev/null +++ b/bindings/rust/src/l2_standard_bridge.rs @@ -0,0 +1,5951 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface L2StandardBridge { + event DepositFinalized(address indexed l1Token, address indexed l2Token, address indexed from, address to, uint256 amount, bytes extraData); + event ERC20BridgeFinalized(address indexed localToken, address indexed remoteToken, address indexed from, address to, uint256 amount, bytes extraData); + event ERC20BridgeInitiated(address indexed localToken, address indexed remoteToken, address indexed from, address to, uint256 amount, bytes extraData); + event ETHBridgeFinalized(address indexed from, address indexed to, uint256 amount, bytes extraData); + event ETHBridgeInitiated(address indexed from, address indexed to, uint256 amount, bytes extraData); + event Initialized(uint8 version); + event WithdrawalInitiated(address indexed l1Token, address indexed l2Token, address indexed from, address to, uint256 amount, bytes extraData); + + constructor(); + + receive() external payable; + + function MESSENGER() external view returns (address); + function OTHER_BRIDGE() external view returns (address); + function bridgeERC20(address _localToken, address _remoteToken, uint256 _amount, uint32 _minGasLimit, bytes memory _extraData) external; + function bridgeERC20To(address _localToken, address _remoteToken, address _to, uint256 _amount, uint32 _minGasLimit, bytes memory _extraData) external; + function bridgeETH(uint32 _minGasLimit, bytes memory _extraData) external payable; + function bridgeETHTo(address _to, uint32 _minGasLimit, bytes memory _extraData) external payable; + function deposits(address, address) external view returns (uint256); + function finalizeBridgeERC20(address _localToken, address _remoteToken, address _from, address _to, uint256 _amount, bytes memory _extraData) external; + function finalizeBridgeETH(address _from, address _to, uint256 _amount, bytes memory _extraData) external payable; + function initialize(address _otherBridge) external; + function l1TokenBridge() external view returns (address); + function messenger() external view returns (address); + function otherBridge() external view returns (address); + function paused() external view returns (bool); + function version() external pure returns (string memory); + function withdraw(address _l2Token, uint256 _amount, uint32 _minGasLimit, bytes memory _extraData) external payable; + function withdrawTo(address _l2Token, address _to, uint256 _amount, uint32 _minGasLimit, bytes memory _extraData) external payable; +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "constructor", + "inputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "receive", + "stateMutability": "payable" + }, + { + "type": "function", + "name": "MESSENGER", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract ICrossDomainMessenger" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "OTHER_BRIDGE", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract StandardBridge" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "bridgeERC20", + "inputs": [ + { + "name": "_localToken", + "type": "address", + "internalType": "address" + }, + { + "name": "_remoteToken", + "type": "address", + "internalType": "address" + }, + { + "name": "_amount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_minGasLimit", + "type": "uint32", + "internalType": "uint32" + }, + { + "name": "_extraData", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "bridgeERC20To", + "inputs": [ + { + "name": "_localToken", + "type": "address", + "internalType": "address" + }, + { + "name": "_remoteToken", + "type": "address", + "internalType": "address" + }, + { + "name": "_to", + "type": "address", + "internalType": "address" + }, + { + "name": "_amount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_minGasLimit", + "type": "uint32", + "internalType": "uint32" + }, + { + "name": "_extraData", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "bridgeETH", + "inputs": [ + { + "name": "_minGasLimit", + "type": "uint32", + "internalType": "uint32" + }, + { + "name": "_extraData", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "bridgeETHTo", + "inputs": [ + { + "name": "_to", + "type": "address", + "internalType": "address" + }, + { + "name": "_minGasLimit", + "type": "uint32", + "internalType": "uint32" + }, + { + "name": "_extraData", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "deposits", + "inputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + }, + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "finalizeBridgeERC20", + "inputs": [ + { + "name": "_localToken", + "type": "address", + "internalType": "address" + }, + { + "name": "_remoteToken", + "type": "address", + "internalType": "address" + }, + { + "name": "_from", + "type": "address", + "internalType": "address" + }, + { + "name": "_to", + "type": "address", + "internalType": "address" + }, + { + "name": "_amount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_extraData", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "finalizeBridgeETH", + "inputs": [ + { + "name": "_from", + "type": "address", + "internalType": "address" + }, + { + "name": "_to", + "type": "address", + "internalType": "address" + }, + { + "name": "_amount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_extraData", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "initialize", + "inputs": [ + { + "name": "_otherBridge", + "type": "address", + "internalType": "contract StandardBridge" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "l1TokenBridge", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "messenger", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract ICrossDomainMessenger" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "otherBridge", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract StandardBridge" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "paused", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "version", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "withdraw", + "inputs": [ + { + "name": "_l2Token", + "type": "address", + "internalType": "address" + }, + { + "name": "_amount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_minGasLimit", + "type": "uint32", + "internalType": "uint32" + }, + { + "name": "_extraData", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "withdrawTo", + "inputs": [ + { + "name": "_l2Token", + "type": "address", + "internalType": "address" + }, + { + "name": "_to", + "type": "address", + "internalType": "address" + }, + { + "name": "_amount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_minGasLimit", + "type": "uint32", + "internalType": "uint32" + }, + { + "name": "_extraData", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [], + "stateMutability": "payable" + }, + { + "type": "event", + "name": "DepositFinalized", + "inputs": [ + { + "name": "l1Token", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "l2Token", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "from", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "to", + "type": "address", + "indexed": false, + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + }, + { + "name": "extraData", + "type": "bytes", + "indexed": false, + "internalType": "bytes" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "ERC20BridgeFinalized", + "inputs": [ + { + "name": "localToken", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "remoteToken", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "from", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "to", + "type": "address", + "indexed": false, + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + }, + { + "name": "extraData", + "type": "bytes", + "indexed": false, + "internalType": "bytes" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "ERC20BridgeInitiated", + "inputs": [ + { + "name": "localToken", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "remoteToken", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "from", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "to", + "type": "address", + "indexed": false, + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + }, + { + "name": "extraData", + "type": "bytes", + "indexed": false, + "internalType": "bytes" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "ETHBridgeFinalized", + "inputs": [ + { + "name": "from", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "to", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + }, + { + "name": "extraData", + "type": "bytes", + "indexed": false, + "internalType": "bytes" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "ETHBridgeInitiated", + "inputs": [ + { + "name": "from", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "to", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + }, + { + "name": "extraData", + "type": "bytes", + "indexed": false, + "internalType": "bytes" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "Initialized", + "inputs": [ + { + "name": "version", + "type": "uint8", + "indexed": false, + "internalType": "uint8" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "WithdrawalInitiated", + "inputs": [ + { + "name": "l1Token", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "l2Token", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "from", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "to", + "type": "address", + "indexed": false, + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + }, + { + "name": "extraData", + "type": "bytes", + "indexed": false, + "internalType": "bytes" + } + ], + "anonymous": false + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod L2StandardBridge { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x60806040523480156200001157600080fd5b506200001c62000022565b620000e4565b600054610100900460ff16156200008f5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff9081161015620000e2576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b612a9980620000f46000396000f3fe6080604052600436106101125760003560e01c80635c975abb116100a5578063927ede2d11610074578063c4d66de811610059578063c4d66de8146103ee578063c89701a21461040e578063e11013dd1461043b57600080fd5b8063927ede2d146103b0578063a3a79548146103db57600080fd5b80635c975abb1461032e5780637f46ddb214610244578063870876231461034a5780638f601f661461036a57600080fd5b806336c717c1116100e157806336c717c1146102445780633cb747bf14610295578063540abf73146102c257806354fd4d50146102e257600080fd5b80630166a07a146101eb57806309fc88431461020b5780631635f5fd1461021e57806332b7006d1461023157600080fd5b366101e65761011f61044e565b6101b0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20616e20454f4100000000000000000060648201526084015b60405180910390fd5b6101e473deaddeaddeaddeaddeaddeaddeaddeaddead000033333462030d406040518060200160405280600081525061048b565b005b600080fd5b3480156101f757600080fd5b506101e461020636600461248c565b610566565b6101e461021936600461253d565b610908565b6101e461022c366004612590565b6109e4565b6101e461023f366004612603565b610e36565b34801561025057600080fd5b5060045473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b3480156102a157600080fd5b5060035461026b9073ffffffffffffffffffffffffffffffffffffffff1681565b3480156102ce57600080fd5b506101e46102dd366004612657565b610f15565b3480156102ee57600080fd5b50604080518082018252600681527f312e31332e3000000000000000000000000000000000000000000000000000006020820152905161028c9190612744565b34801561033a57600080fd5b506040516000815260200161028c565b34801561035657600080fd5b506101e4610365366004612757565b610f5a565b34801561037657600080fd5b506103a26103853660046127da565b600260209081526000928352604080842090915290825290205481565b60405190815260200161028c565b3480156103bc57600080fd5b5060035473ffffffffffffffffffffffffffffffffffffffff1661026b565b6101e46103e9366004612757565b611033565b3480156103fa57600080fd5b506101e4610409366004612813565b611077565b34801561041a57600080fd5b5060045461026b9073ffffffffffffffffffffffffffffffffffffffff1681565b6101e4610449366004612830565b611220565b600032330361045d5750600190565b333b60170361048557604051602081016040526020600082333c5160e81c62ef010014905090565b50600090565b7fffffffffffffffffffffffff215221522152215221522152215221522153000073ffffffffffffffffffffffffffffffffffffffff8716016104da576104d58585858585611269565b61055e565b60008673ffffffffffffffffffffffffffffffffffffffff1663c01e1bd66040518163ffffffff1660e01b8152600401602060405180830381865afa158015610527573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061054b9190612893565b905061055c87828888888888611433565b505b505050505050565b60035473ffffffffffffffffffffffffffffffffffffffff1633148015610639575060048054600354604080517f6e296e45000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff938416949390921692636e296e459282820192602092908290030181865afa1580156105fd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106219190612893565b73ffffffffffffffffffffffffffffffffffffffff16145b6106eb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604160248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20746865206f7468657220627269646760648201527f6500000000000000000000000000000000000000000000000000000000000000608482015260a4016101a7565b6106f4876117ec565b1561084257610703878761184e565b6107b5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f5374616e646172644272696467653a2077726f6e672072656d6f746520746f6b60448201527f656e20666f72204f7074696d69736d204d696e7461626c65204552433230206c60648201527f6f63616c20746f6b656e00000000000000000000000000000000000000000000608482015260a4016101a7565b6040517f40c10f1900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8581166004830152602482018590528816906340c10f1990604401600060405180830381600087803b15801561082557600080fd5b505af1158015610839573d6000803e3d6000fd5b505050506108c4565b73ffffffffffffffffffffffffffffffffffffffff8088166000908152600260209081526040808320938a16835292905220546108809084906128df565b73ffffffffffffffffffffffffffffffffffffffff8089166000818152600260209081526040808320948c16835293905291909120919091556108c490858561196e565b61055c878787878787878080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611a4292505050565b61091061044e565b61099c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20616e20454f4100000000000000000060648201526084016101a7565b6109df3333348686868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061126992505050565b505050565b60035473ffffffffffffffffffffffffffffffffffffffff1633148015610ab7575060048054600354604080517f6e296e45000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff938416949390921692636e296e459282820192602092908290030181865afa158015610a7b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a9f9190612893565b73ffffffffffffffffffffffffffffffffffffffff16145b610b69576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604160248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20746865206f7468657220627269646760648201527f6500000000000000000000000000000000000000000000000000000000000000608482015260a4016101a7565b823414610bf8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603a60248201527f5374616e646172644272696467653a20616d6f756e742073656e7420646f657360448201527f206e6f74206d6174636820616d6f756e7420726571756972656400000000000060648201526084016101a7565b3073ffffffffffffffffffffffffffffffffffffffff851603610c9d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f5374616e646172644272696467653a2063616e6e6f742073656e6420746f207360448201527f656c66000000000000000000000000000000000000000000000000000000000060648201526084016101a7565b60035473ffffffffffffffffffffffffffffffffffffffff90811690851603610d48576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f5374616e646172644272696467653a2063616e6e6f742073656e6420746f206d60448201527f657373656e67657200000000000000000000000000000000000000000000000060648201526084016101a7565b610d8a85858585858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611ad092505050565b6000610da7855a8660405180602001604052806000815250611b71565b90508061055e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f5374616e646172644272696467653a20455448207472616e736665722066616960448201527f6c6564000000000000000000000000000000000000000000000000000000000060648201526084016101a7565b610e3e61044e565b610eca576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20616e20454f4100000000000000000060648201526084016101a7565b610f0e853333878787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061048b92505050565b5050505050565b61055c87873388888888888080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061143392505050565b610f6261044e565b610fee576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20616e20454f4100000000000000000060648201526084016101a7565b61055e86863333888888888080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061143392505050565b61055e863387878787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061048b92505050565b600054610100900460ff16158080156110975750600054600160ff909116105b806110b15750303b1580156110b1575060005460ff166001145b61113d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016101a7565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561119b57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6111b973420000000000000000000000000000000000000783611b89565b801561121c57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6112633385348686868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061126992505050565b50505050565b8234146112f8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603e60248201527f5374616e646172644272696467653a206272696467696e6720455448206d757360448201527f7420696e636c7564652073756666696369656e74204554482076616c7565000060648201526084016101a7565b61130485858584611c73565b60035460045460405173ffffffffffffffffffffffffffffffffffffffff92831692633dbb202b9287929116907f1635f5fd0000000000000000000000000000000000000000000000000000000090611367908b908b9086908a906024016128f6565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009485161790525160e086901b90921682526113fa9291889060040161293f565b6000604051808303818588803b15801561141357600080fd5b505af1158015611427573d6000803e3d6000fd5b50505050505050505050565b34156114c1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f5374616e646172644272696467653a2063616e6e6f742073656e642076616c7560448201527f650000000000000000000000000000000000000000000000000000000000000060648201526084016101a7565b6114ca876117ec565b15611618576114d9878761184e565b61158b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f5374616e646172644272696467653a2077726f6e672072656d6f746520746f6b60448201527f656e20666f72204f7074696d69736d204d696e7461626c65204552433230206c60648201527f6f63616c20746f6b656e00000000000000000000000000000000000000000000608482015260a4016101a7565b6040517f9dc29fac00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff868116600483015260248201859052881690639dc29fac90604401600060405180830381600087803b1580156115fb57600080fd5b505af115801561160f573d6000803e3d6000fd5b505050506116ac565b61163a73ffffffffffffffffffffffffffffffffffffffff8816863086611d14565b73ffffffffffffffffffffffffffffffffffffffff8088166000908152600260209081526040808320938a1683529290522054611678908490612984565b73ffffffffffffffffffffffffffffffffffffffff8089166000908152600260209081526040808320938b16835292905220555b6116ba878787878786611d72565b60035460045460405173ffffffffffffffffffffffffffffffffffffffff92831692633dbb202b9216907f0166a07a000000000000000000000000000000000000000000000000000000009061171e908b908d908c908c908c908b9060240161299c565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009485161790525160e085901b90921682526117b19291879060040161293f565b600060405180830381600087803b1580156117cb57600080fd5b505af11580156117df573d6000803e3d6000fd5b5050505050505050505050565b6000611818827f1d1d8b6300000000000000000000000000000000000000000000000000000000611e00565b806118485750611848827fec4fc8e300000000000000000000000000000000000000000000000000000000611e00565b92915050565b600061187a837f1d1d8b6300000000000000000000000000000000000000000000000000000000611e00565b15611923578273ffffffffffffffffffffffffffffffffffffffff1663c01e1bd66040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118ee9190612893565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050611848565b8273ffffffffffffffffffffffffffffffffffffffff1663d6c0b2c46040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118ca573d6000803e3d6000fd5b60405173ffffffffffffffffffffffffffffffffffffffff83166024820152604481018290526109df9084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152611e23565b8373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fb0444523268717a02698be47d0803aa7468c00acbed2f8bd93a0459cde61dd89868686604051611aba939291906129f7565b60405180910390a461055e868686868686611f2f565b8373ffffffffffffffffffffffffffffffffffffffff1673deaddeaddeaddeaddeaddeaddeaddeaddead000073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fb0444523268717a02698be47d0803aa7468c00acbed2f8bd93a0459cde61dd89868686604051611b5d939291906129f7565b60405180910390a461126384848484611fb7565b6000806000835160208501868989f195945050505050565b600054610100900460ff16611c20576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016101a7565b6003805473ffffffffffffffffffffffffffffffffffffffff9384167fffffffffffffffffffffffff00000000000000000000000000000000000000009182161790915560048054929093169116179055565b8373ffffffffffffffffffffffffffffffffffffffff1673deaddeaddeaddeaddeaddeaddeaddeaddead000073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f73d170910aba9e6d50b102db522b1dbcd796216f5128b445aa2135272886497e868686604051611d00939291906129f7565b60405180910390a461126384848484612024565b60405173ffffffffffffffffffffffffffffffffffffffff808516602483015283166044820152606481018290526112639085907f23b872dd00000000000000000000000000000000000000000000000000000000906084016119c0565b8373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167f73d170910aba9e6d50b102db522b1dbcd796216f5128b445aa2135272886497e868686604051611dea939291906129f7565b60405180910390a461055e868686868686612083565b6000611e0b836120fb565b8015611e1c5750611e1c838361215f565b9392505050565b6000611e85826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff1661222e9092919063ffffffff16565b8051909150156109df5780806020019051810190611ea39190612a35565b6109df576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016101a7565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fd59c65b35445225835c83f50b6ede06a7be047d22e357073e250d9af537518cd868686604051611fa7939291906129f7565b60405180910390a4505050505050565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f31b2166ff604fc5672ea5df08a78081d2bc6d746cadce880747f3643d819e83d8484604051612016929190612a57565b60405180910390a350505050565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f2849b43074093a05396b6f2a937dee8565b15a48a7b3d4bffb732a5017380af58484604051612016929190612a57565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167f7ff126db8024424bbfd9826e8ab82ff59136289ea440b04b39a0df1b03b9cabf868686604051611fa7939291906129f7565b6000612127827f01ffc9a70000000000000000000000000000000000000000000000000000000061215f565b80156118485750612158827fffffffff0000000000000000000000000000000000000000000000000000000061215f565b1592915050565b604080517fffffffff000000000000000000000000000000000000000000000000000000008316602480830191909152825180830390910181526044909101909152602080820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f01ffc9a700000000000000000000000000000000000000000000000000000000178152825160009392849283928392918391908a617530fa92503d91506000519050828015612217575060208210155b80156122235750600081115b979650505050505050565b606061223d8484600085612245565b949350505050565b6060824710156122d7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c000000000000000000000000000000000000000000000000000060648201526084016101a7565b73ffffffffffffffffffffffffffffffffffffffff85163b612355576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016101a7565b6000808673ffffffffffffffffffffffffffffffffffffffff16858760405161237e9190612a70565b60006040518083038185875af1925050503d80600081146123bb576040519150601f19603f3d011682016040523d82523d6000602084013e6123c0565b606091505b5091509150612223828286606083156123da575081611e1c565b8251156123ea5782518084602001fd5b816040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101a79190612744565b73ffffffffffffffffffffffffffffffffffffffff8116811461244057600080fd5b50565b60008083601f84011261245557600080fd5b50813567ffffffffffffffff81111561246d57600080fd5b60208301915083602082850101111561248557600080fd5b9250929050565b600080600080600080600060c0888a0312156124a757600080fd5b87356124b28161241e565b965060208801356124c28161241e565b955060408801356124d28161241e565b945060608801356124e28161241e565b93506080880135925060a088013567ffffffffffffffff81111561250557600080fd5b6125118a828b01612443565b989b979a50959850939692959293505050565b803563ffffffff8116811461253857600080fd5b919050565b60008060006040848603121561255257600080fd5b61255b84612524565b9250602084013567ffffffffffffffff81111561257757600080fd5b61258386828701612443565b9497909650939450505050565b6000806000806000608086880312156125a857600080fd5b85356125b38161241e565b945060208601356125c38161241e565b935060408601359250606086013567ffffffffffffffff8111156125e657600080fd5b6125f288828901612443565b969995985093965092949392505050565b60008060008060006080868803121561261b57600080fd5b85356126268161241e565b94506020860135935061263b60408701612524565b9250606086013567ffffffffffffffff8111156125e657600080fd5b600080600080600080600060c0888a03121561267257600080fd5b873561267d8161241e565b9650602088013561268d8161241e565b9550604088013561269d8161241e565b9450606088013593506126b260808901612524565b925060a088013567ffffffffffffffff81111561250557600080fd5b60005b838110156126e95781810151838201526020016126d1565b838111156112635750506000910152565b600081518084526127128160208601602086016126ce565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000611e1c60208301846126fa565b60008060008060008060a0878903121561277057600080fd5b863561277b8161241e565b9550602087013561278b8161241e565b9450604087013593506127a060608801612524565b9250608087013567ffffffffffffffff8111156127bc57600080fd5b6127c889828a01612443565b979a9699509497509295939492505050565b600080604083850312156127ed57600080fd5b82356127f88161241e565b915060208301356128088161241e565b809150509250929050565b60006020828403121561282557600080fd5b8135611e1c8161241e565b6000806000806060858703121561284657600080fd5b84356128518161241e565b935061285f60208601612524565b9250604085013567ffffffffffffffff81111561287b57600080fd5b61288787828801612443565b95989497509550505050565b6000602082840312156128a557600080fd5b8151611e1c8161241e565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000828210156128f1576128f16128b0565b500390565b600073ffffffffffffffffffffffffffffffffffffffff80871683528086166020840152508360408301526080606083015261293560808301846126fa565b9695505050505050565b73ffffffffffffffffffffffffffffffffffffffff8416815260606020820152600061296e60608301856126fa565b905063ffffffff83166040830152949350505050565b60008219821115612997576129976128b0565b500190565b600073ffffffffffffffffffffffffffffffffffffffff80891683528088166020840152808716604084015280861660608401525083608083015260c060a08301526129eb60c08301846126fa565b98975050505050505050565b73ffffffffffffffffffffffffffffffffffffffff84168152826020820152606060408201526000612a2c60608301846126fa565b95945050505050565b600060208284031215612a4757600080fd5b81518015158114611e1c57600080fd5b82815260406020820152600061223d60408301846126fa565b60008251612a828184602087016126ce565b919091019291505056fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R4\x80\x15b\0\0\x11W`\0\x80\xFD[Pb\0\0\x1Cb\0\0\"V[b\0\0\xE4V[`\0Ta\x01\0\x90\x04`\xFF\x16\x15b\0\0\x8FW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`'`$\x82\x01R\x7FInitializable: contract is initi`D\x82\x01Rfalizing`\xC8\x1B`d\x82\x01R`\x84\x01`@Q\x80\x91\x03\x90\xFD[`\0T`\xFF\x90\x81\x16\x10\x15b\0\0\xE2W`\0\x80T`\xFF\x19\x16`\xFF\x90\x81\x17\x90\x91U`@Q\x90\x81R\x7F\x7F&\xB8?\xF9n\x1F+jh/\x138R\xF6y\x8A\t\xC4e\xDA\x95\x92\x14`\xCE\xFB8G@$\x98\x90` \x01`@Q\x80\x91\x03\x90\xA1[V[a*\x99\x80b\0\0\xF4`\09`\0\xF3\xFE`\x80`@R`\x046\x10a\x01\x12W`\x005`\xE0\x1C\x80c\\\x97Z\xBB\x11a\0\xA5W\x80c\x92~\xDE-\x11a\0tW\x80c\xC4\xD6m\xE8\x11a\0YW\x80c\xC4\xD6m\xE8\x14a\x03\xEEW\x80c\xC8\x97\x01\xA2\x14a\x04\x0EW\x80c\xE1\x10\x13\xDD\x14a\x04;W`\0\x80\xFD[\x80c\x92~\xDE-\x14a\x03\xB0W\x80c\xA3\xA7\x95H\x14a\x03\xDBW`\0\x80\xFD[\x80c\\\x97Z\xBB\x14a\x03.W\x80c\x7FF\xDD\xB2\x14a\x02DW\x80c\x87\x08v#\x14a\x03JW\x80c\x8F`\x1Ff\x14a\x03jW`\0\x80\xFD[\x80c6\xC7\x17\xC1\x11a\0\xE1W\x80c6\xC7\x17\xC1\x14a\x02DW\x80c<\xB7G\xBF\x14a\x02\x95W\x80cT\n\xBFs\x14a\x02\xC2W\x80cT\xFDMP\x14a\x02\xE2W`\0\x80\xFD[\x80c\x01f\xA0z\x14a\x01\xEBW\x80c\t\xFC\x88C\x14a\x02\x0BW\x80c\x165\xF5\xFD\x14a\x02\x1EW\x80c2\xB7\0m\x14a\x021W`\0\x80\xFD[6a\x01\xE6Wa\x01\x1Fa\x04NV[a\x01\xB0W`@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\x82\x01R`7`$\x82\x01R\x7FStandardBridge: function can onl`D\x82\x01R\x7Fy be called from an EOA\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01[`@Q\x80\x91\x03\x90\xFD[a\x01\xE4s\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\0\x00334b\x03\r@`@Q\x80` \x01`@R\x80`\0\x81RPa\x04\x8BV[\0[`\0\x80\xFD[4\x80\x15a\x01\xF7W`\0\x80\xFD[Pa\x01\xE4a\x02\x066`\x04a$\x8CV[a\x05fV[a\x01\xE4a\x02\x196`\x04a%=V[a\t\x08V[a\x01\xE4a\x02,6`\x04a%\x90V[a\t\xE4V[a\x01\xE4a\x02?6`\x04a&\x03V[a\x0E6V[4\x80\x15a\x02PW`\0\x80\xFD[P`\x04Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16[`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[4\x80\x15a\x02\xA1W`\0\x80\xFD[P`\x03Ta\x02k\x90s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[4\x80\x15a\x02\xCEW`\0\x80\xFD[Pa\x01\xE4a\x02\xDD6`\x04a&WV[a\x0F\x15V[4\x80\x15a\x02\xEEW`\0\x80\xFD[P`@\x80Q\x80\x82\x01\x82R`\x06\x81R\x7F1.13.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` \x82\x01R\x90Qa\x02\x8C\x91\x90a'DV[4\x80\x15a\x03:W`\0\x80\xFD[P`@Q`\0\x81R` \x01a\x02\x8CV[4\x80\x15a\x03VW`\0\x80\xFD[Pa\x01\xE4a\x03e6`\x04a'WV[a\x0FZV[4\x80\x15a\x03vW`\0\x80\xFD[Pa\x03\xA2a\x03\x856`\x04a'\xDAV[`\x02` \x90\x81R`\0\x92\x83R`@\x80\x84 \x90\x91R\x90\x82R\x90 T\x81V[`@Q\x90\x81R` \x01a\x02\x8CV[4\x80\x15a\x03\xBCW`\0\x80\xFD[P`\x03Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a\x02kV[a\x01\xE4a\x03\xE96`\x04a'WV[a\x103V[4\x80\x15a\x03\xFAW`\0\x80\xFD[Pa\x01\xE4a\x04\t6`\x04a(\x13V[a\x10wV[4\x80\x15a\x04\x1AW`\0\x80\xFD[P`\x04Ta\x02k\x90s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[a\x01\xE4a\x04I6`\x04a(0V[a\x12 V[`\x0023\x03a\x04]WP`\x01\x90V[3;`\x17\x03a\x04\x85W`@Q` \x81\x01`@R` `\0\x823=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x05K\x91\x90a(\x93V[\x90Pa\x05\\\x87\x82\x88\x88\x88\x88\x88a\x143V[P[PPPPPPV[`\x03Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x163\x14\x80\x15a\x069WP`\x04\x80T`\x03T`@\x80Q\x7Fn)nE\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\x90Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x93\x84\x16\x94\x93\x90\x92\x16\x92cn)nE\x92\x82\x82\x01\x92` \x92\x90\x82\x90\x03\x01\x81\x86Z\xFA\x15\x80\x15a\x05\xFDW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x06!\x91\x90a(\x93V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14[a\x06\xEBW`@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\x82\x01R`A`$\x82\x01R\x7FStandardBridge: function can onl`D\x82\x01R\x7Fy be called from the other bridg`d\x82\x01R\x7Fe\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x84\x82\x01R`\xA4\x01a\x01\xA7V[a\x06\xF4\x87a\x17\xECV[\x15a\x08BWa\x07\x03\x87\x87a\x18NV[a\x07\xB5W`@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\x82\x01R`J`$\x82\x01R\x7FStandardBridge: wrong remote tok`D\x82\x01R\x7Fen for Optimism Mintable ERC20 l`d\x82\x01R\x7Focal token\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x84\x82\x01R`\xA4\x01a\x01\xA7V[`@Q\x7F@\xC1\x0F\x19\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\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x85\x81\x16`\x04\x83\x01R`$\x82\x01\x85\x90R\x88\x16\x90c@\xC1\x0F\x19\x90`D\x01`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a\x08%W`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x089W=`\0\x80>=`\0\xFD[PPPPa\x08\xC4V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x88\x16`\0\x90\x81R`\x02` \x90\x81R`@\x80\x83 \x93\x8A\x16\x83R\x92\x90R Ta\x08\x80\x90\x84\x90a(\xDFV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x89\x16`\0\x81\x81R`\x02` \x90\x81R`@\x80\x83 \x94\x8C\x16\x83R\x93\x90R\x91\x90\x91 \x91\x90\x91Ua\x08\xC4\x90\x85\x85a\x19nV[a\x05\\\x87\x87\x87\x87\x87\x87\x87\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RPa\x1AB\x92PPPV[a\t\x10a\x04NV[a\t\x9CW`@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\x82\x01R`7`$\x82\x01R\x7FStandardBridge: function can onl`D\x82\x01R\x7Fy be called from an EOA\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x01\xA7V[a\t\xDF334\x86\x86\x86\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RPa\x12i\x92PPPV[PPPV[`\x03Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x163\x14\x80\x15a\n\xB7WP`\x04\x80T`\x03T`@\x80Q\x7Fn)nE\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\x90Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x93\x84\x16\x94\x93\x90\x92\x16\x92cn)nE\x92\x82\x82\x01\x92` \x92\x90\x82\x90\x03\x01\x81\x86Z\xFA\x15\x80\x15a\n{W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\n\x9F\x91\x90a(\x93V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14[a\x0BiW`@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\x82\x01R`A`$\x82\x01R\x7FStandardBridge: function can onl`D\x82\x01R\x7Fy be called from the other bridg`d\x82\x01R\x7Fe\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x84\x82\x01R`\xA4\x01a\x01\xA7V[\x824\x14a\x0B\xF8W`@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\x82\x01R`:`$\x82\x01R\x7FStandardBridge: amount sent does`D\x82\x01R\x7F not match amount required\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x01\xA7V[0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x85\x16\x03a\x0C\x9DW`@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\x82\x01R`#`$\x82\x01R\x7FStandardBridge: cannot send to s`D\x82\x01R\x7Felf\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x01\xA7V[`\x03Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x81\x16\x90\x85\x16\x03a\rHW`@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\x82\x01R`(`$\x82\x01R\x7FStandardBridge: cannot send to m`D\x82\x01R\x7Fessenger\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x01\xA7V[a\r\x8A\x85\x85\x85\x85\x85\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RPa\x1A\xD0\x92PPPV[`\0a\r\xA7\x85Z\x86`@Q\x80` \x01`@R\x80`\0\x81RPa\x1BqV[\x90P\x80a\x05^W`@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\x82\x01R`#`$\x82\x01R\x7FStandardBridge: ETH transfer fai`D\x82\x01R\x7Fled\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x01\xA7V[a\x0E>a\x04NV[a\x0E\xCAW`@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\x82\x01R`7`$\x82\x01R\x7FStandardBridge: function can onl`D\x82\x01R\x7Fy be called from an EOA\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x01\xA7V[a\x0F\x0E\x8533\x87\x87\x87\x87\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RPa\x04\x8B\x92PPPV[PPPPPV[a\x05\\\x87\x873\x88\x88\x88\x88\x88\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RPa\x143\x92PPPV[a\x0Fba\x04NV[a\x0F\xEEW`@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\x82\x01R`7`$\x82\x01R\x7FStandardBridge: function can onl`D\x82\x01R\x7Fy be called from an EOA\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x01\xA7V[a\x05^\x86\x8633\x88\x88\x88\x88\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RPa\x143\x92PPPV[a\x05^\x863\x87\x87\x87\x87\x87\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RPa\x04\x8B\x92PPPV[`\0Ta\x01\0\x90\x04`\xFF\x16\x15\x80\x80\x15a\x10\x97WP`\0T`\x01`\xFF\x90\x91\x16\x10[\x80a\x10\xB1WP0;\x15\x80\x15a\x10\xB1WP`\0T`\xFF\x16`\x01\x14[a\x11=W`@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\x82\x01R`.`$\x82\x01R\x7FInitializable: contract is alrea`D\x82\x01R\x7Fdy initialized\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x01\xA7V[`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x16`\x01\x17\x90U\x80\x15a\x11\x9BW`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\x16a\x01\0\x17\x90U[a\x11\xB9sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x07\x83a\x1B\x89V[\x80\x15a\x12\x1CW`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\x16\x90U`@Q`\x01\x81R\x7F\x7F&\xB8?\xF9n\x1F+jh/\x138R\xF6y\x8A\t\xC4e\xDA\x95\x92\x14`\xCE\xFB8G@$\x98\x90` \x01`@Q\x80\x91\x03\x90\xA1[PPV[a\x12c3\x854\x86\x86\x86\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RPa\x12i\x92PPPV[PPPPV[\x824\x14a\x12\xF8W`@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\x82\x01R`>`$\x82\x01R\x7FStandardBridge: bridging ETH mus`D\x82\x01R\x7Ft include sufficient ETH value\0\0`d\x82\x01R`\x84\x01a\x01\xA7V[a\x13\x04\x85\x85\x85\x84a\x1CsV[`\x03T`\x04T`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x92\x83\x16\x92c=\xBB +\x92\x87\x92\x91\x16\x90\x7F\x165\xF5\xFD\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\x90a\x13g\x90\x8B\x90\x8B\x90\x86\x90\x8A\x90`$\x01a(\xF6V[`@\x80Q\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x81\x84\x03\x01\x81R\x91\x81R` \x82\x01\x80Q{\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xFF\xFF\xFF\xFF\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\x94\x85\x16\x17\x90RQ`\xE0\x86\x90\x1B\x90\x92\x16\x82Ra\x13\xFA\x92\x91\x88\x90`\x04\x01a)?V[`\0`@Q\x80\x83\x03\x81\x85\x88\x80;\x15\x80\x15a\x14\x13W`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x14'W=`\0\x80>=`\0\xFD[PPPPPPPPPPV[4\x15a\x14\xC1W`@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\x82\x01R`!`$\x82\x01R\x7FStandardBridge: cannot send valu`D\x82\x01R\x7Fe\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x01\xA7V[a\x14\xCA\x87a\x17\xECV[\x15a\x16\x18Wa\x14\xD9\x87\x87a\x18NV[a\x15\x8BW`@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\x82\x01R`J`$\x82\x01R\x7FStandardBridge: wrong remote tok`D\x82\x01R\x7Fen for Optimism Mintable ERC20 l`d\x82\x01R\x7Focal token\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x84\x82\x01R`\xA4\x01a\x01\xA7V[`@Q\x7F\x9D\xC2\x9F\xAC\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\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x86\x81\x16`\x04\x83\x01R`$\x82\x01\x85\x90R\x88\x16\x90c\x9D\xC2\x9F\xAC\x90`D\x01`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a\x15\xFBW`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x16\x0FW=`\0\x80>=`\0\xFD[PPPPa\x16\xACV[a\x16:s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x88\x16\x860\x86a\x1D\x14V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x88\x16`\0\x90\x81R`\x02` \x90\x81R`@\x80\x83 \x93\x8A\x16\x83R\x92\x90R Ta\x16x\x90\x84\x90a)\x84V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x89\x16`\0\x90\x81R`\x02` \x90\x81R`@\x80\x83 \x93\x8B\x16\x83R\x92\x90R U[a\x16\xBA\x87\x87\x87\x87\x87\x86a\x1DrV[`\x03T`\x04T`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x92\x83\x16\x92c=\xBB +\x92\x16\x90\x7F\x01f\xA0z\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\x90a\x17\x1E\x90\x8B\x90\x8D\x90\x8C\x90\x8C\x90\x8C\x90\x8B\x90`$\x01a)\x9CV[`@\x80Q\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x81\x84\x03\x01\x81R\x91\x81R` \x82\x01\x80Q{\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xFF\xFF\xFF\xFF\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\x94\x85\x16\x17\x90RQ`\xE0\x85\x90\x1B\x90\x92\x16\x82Ra\x17\xB1\x92\x91\x87\x90`\x04\x01a)?V[`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a\x17\xCBW`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x17\xDFW=`\0\x80>=`\0\xFD[PPPPPPPPPPPV[`\0a\x18\x18\x82\x7F\x1D\x1D\x8Bc\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\0a\x1E\0V[\x80a\x18HWPa\x18H\x82\x7F\xECO\xC8\xE3\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\0a\x1E\0V[\x92\x91PPV[`\0a\x18z\x83\x7F\x1D\x1D\x8Bc\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\0a\x1E\0V[\x15a\x19#W\x82s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xC0\x1E\x1B\xD6`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x18\xCAW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x18\xEE\x91\x90a(\x93V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x82s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14\x90Pa\x18HV[\x82s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xD6\xC0\xB2\xC4`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x18\xCAW=`\0\x80>=`\0\xFD[`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x16`$\x82\x01R`D\x81\x01\x82\x90Ra\t\xDF\x90\x84\x90\x7F\xA9\x05\x9C\xBB\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\x90`d\x01[`@\x80Q\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x81\x84\x03\x01\x81R\x91\x90R` \x81\x01\x80Q{\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xFF\xFF\xFF\xFF\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\x90\x93\x16\x92\x90\x92\x17\x90\x91Ra\x1E#V[\x83s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x86s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x86s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xB0DE#&\x87\x17\xA0&\x98\xBEG\xD0\x80:\xA7F\x8C\0\xAC\xBE\xD2\xF8\xBD\x93\xA0E\x9C\xDEa\xDD\x89\x86\x86\x86`@Qa\x1A\xBA\x93\x92\x91\x90a)\xF7V[`@Q\x80\x91\x03\x90\xA4a\x05^\x86\x86\x86\x86\x86\x86a\x1F/V[\x83s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16s\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\0\0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xB0DE#&\x87\x17\xA0&\x98\xBEG\xD0\x80:\xA7F\x8C\0\xAC\xBE\xD2\xF8\xBD\x93\xA0E\x9C\xDEa\xDD\x89\x86\x86\x86`@Qa\x1B]\x93\x92\x91\x90a)\xF7V[`@Q\x80\x91\x03\x90\xA4a\x12c\x84\x84\x84\x84a\x1F\xB7V[`\0\x80`\0\x83Q` \x85\x01\x86\x89\x89\xF1\x95\x94PPPPPV[`\0Ta\x01\0\x90\x04`\xFF\x16a\x1C W`@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\x82\x01R`+`$\x82\x01R\x7FInitializable: contract is not i`D\x82\x01R\x7Fnitializing\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x01\xA7V[`\x03\x80Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x93\x84\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x91\x82\x16\x17\x90\x91U`\x04\x80T\x92\x90\x93\x16\x91\x16\x17\x90UV[\x83s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16s\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\0\0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7Fs\xD1p\x91\n\xBA\x9EmP\xB1\x02\xDBR+\x1D\xBC\xD7\x96!oQ(\xB4E\xAA!5'(\x86I~\x86\x86\x86`@Qa\x1D\0\x93\x92\x91\x90a)\xF7V[`@Q\x80\x91\x03\x90\xA4a\x12c\x84\x84\x84\x84a $V[`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x85\x16`$\x83\x01R\x83\x16`D\x82\x01R`d\x81\x01\x82\x90Ra\x12c\x90\x85\x90\x7F#\xB8r\xDD\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\x90`\x84\x01a\x19\xC0V[\x83s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x86s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x86s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7Fs\xD1p\x91\n\xBA\x9EmP\xB1\x02\xDBR+\x1D\xBC\xD7\x96!oQ(\xB4E\xAA!5'(\x86I~\x86\x86\x86`@Qa\x1D\xEA\x93\x92\x91\x90a)\xF7V[`@Q\x80\x91\x03\x90\xA4a\x05^\x86\x86\x86\x86\x86\x86a \x83V[`\0a\x1E\x0B\x83a \xFBV[\x80\x15a\x1E\x1CWPa\x1E\x1C\x83\x83a!_V[\x93\x92PPPV[`\0a\x1E\x85\x82`@Q\x80`@\x01`@R\x80` \x81R` \x01\x7FSafeERC20: low-level call failed\x81RP\x85s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a\".\x90\x92\x91\x90c\xFF\xFF\xFF\xFF\x16V[\x80Q\x90\x91P\x15a\t\xDFW\x80\x80` \x01\x90Q\x81\x01\x90a\x1E\xA3\x91\x90a*5V[a\t\xDFW`@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\x82\x01R`*`$\x82\x01R\x7FSafeERC20: ERC20 operation did n`D\x82\x01R\x7Fot succeed\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x01\xA7V[\x83s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x85s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x87s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xD5\x9Ce\xB3TE\"X5\xC8?P\xB6\xED\xE0j{\xE0G\xD2.5ps\xE2P\xD9\xAFSu\x18\xCD\x86\x86\x86`@Qa\x1F\xA7\x93\x92\x91\x90a)\xF7V[`@Q\x80\x91\x03\x90\xA4PPPPPPV[\x82s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x84s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F1\xB2\x16o\xF6\x04\xFCVr\xEA]\xF0\x8Ax\x08\x1D+\xC6\xD7F\xCA\xDC\xE8\x80t\x7F6C\xD8\x19\xE8=\x84\x84`@Qa \x16\x92\x91\x90a*WV[`@Q\x80\x91\x03\x90\xA3PPPPV[\x82s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x84s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F(I\xB40t\t:\x059ko*\x93}\xEE\x85e\xB1ZH\xA7\xB3\xD4\xBF\xFBs*P\x178\n\xF5\x84\x84`@Qa \x16\x92\x91\x90a*WV[\x83s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x85s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x87s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\x7F\xF1&\xDB\x80$BK\xBF\xD9\x82n\x8A\xB8/\xF5\x916(\x9E\xA4@\xB0K9\xA0\xDF\x1B\x03\xB9\xCA\xBF\x86\x86\x86`@Qa\x1F\xA7\x93\x92\x91\x90a)\xF7V[`\0a!'\x82\x7F\x01\xFF\xC9\xA7\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\0a!_V[\x80\x15a\x18HWPa!X\x82\x7F\xFF\xFF\xFF\xFF\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\0a!_V[\x15\x92\x91PPV[`@\x80Q\x7F\xFF\xFF\xFF\xFF\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\x83\x16`$\x80\x83\x01\x91\x90\x91R\x82Q\x80\x83\x03\x90\x91\x01\x81R`D\x90\x91\x01\x90\x91R` \x80\x82\x01\x80Q{\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\x01\xFF\xC9\xA7\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\x17\x81R\x82Q`\0\x93\x92\x84\x92\x83\x92\x83\x92\x91\x83\x91\x90\x8Aau0\xFA\x92P=\x91P`\0Q\x90P\x82\x80\x15a\"\x17WP` \x82\x10\x15[\x80\x15a\"#WP`\0\x81\x11[\x97\x96PPPPPPPV[``a\"=\x84\x84`\0\x85a\"EV[\x94\x93PPPPV[``\x82G\x10\x15a\"\xD7W`@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\x82\x01R`&`$\x82\x01R\x7FAddress: insufficient balance fo`D\x82\x01R\x7Fr call\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`d\x82\x01R`\x84\x01a\x01\xA7V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x85\x16;a#UW`@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\x82\x01R`\x1D`$\x82\x01R\x7FAddress: call to non-contract\0\0\0`D\x82\x01R`d\x01a\x01\xA7V[`\0\x80\x86s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x85\x87`@Qa#~\x91\x90a*pV[`\0`@Q\x80\x83\x03\x81\x85\x87Z\xF1\x92PPP=\x80`\0\x81\x14a#\xBBW`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=`\0` \x84\x01>a#\xC0V[``\x91P[P\x91P\x91Pa\"#\x82\x82\x86``\x83\x15a#\xDAWP\x81a\x1E\x1CV[\x82Q\x15a#\xEAW\x82Q\x80\x84` \x01\xFD[\x81`@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\x01\xA7\x91\x90a'DV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a$@W`\0\x80\xFD[PV[`\0\x80\x83`\x1F\x84\x01\x12a$UW`\0\x80\xFD[P\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a$mW`\0\x80\xFD[` \x83\x01\x91P\x83` \x82\x85\x01\x01\x11\x15a$\x85W`\0\x80\xFD[\x92P\x92\x90PV[`\0\x80`\0\x80`\0\x80`\0`\xC0\x88\x8A\x03\x12\x15a$\xA7W`\0\x80\xFD[\x875a$\xB2\x81a$\x1EV[\x96P` \x88\x015a$\xC2\x81a$\x1EV[\x95P`@\x88\x015a$\xD2\x81a$\x1EV[\x94P``\x88\x015a$\xE2\x81a$\x1EV[\x93P`\x80\x88\x015\x92P`\xA0\x88\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a%\x05W`\0\x80\xFD[a%\x11\x8A\x82\x8B\x01a$CV[\x98\x9B\x97\x9AP\x95\x98P\x93\x96\x92\x95\x92\x93PPPV[\x805c\xFF\xFF\xFF\xFF\x81\x16\x81\x14a%8W`\0\x80\xFD[\x91\x90PV[`\0\x80`\0`@\x84\x86\x03\x12\x15a%RW`\0\x80\xFD[a%[\x84a%$V[\x92P` \x84\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a%wW`\0\x80\xFD[a%\x83\x86\x82\x87\x01a$CV[\x94\x97\x90\x96P\x93\x94PPPPV[`\0\x80`\0\x80`\0`\x80\x86\x88\x03\x12\x15a%\xA8W`\0\x80\xFD[\x855a%\xB3\x81a$\x1EV[\x94P` \x86\x015a%\xC3\x81a$\x1EV[\x93P`@\x86\x015\x92P``\x86\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a%\xE6W`\0\x80\xFD[a%\xF2\x88\x82\x89\x01a$CV[\x96\x99\x95\x98P\x93\x96P\x92\x94\x93\x92PPPV[`\0\x80`\0\x80`\0`\x80\x86\x88\x03\x12\x15a&\x1BW`\0\x80\xFD[\x855a&&\x81a$\x1EV[\x94P` \x86\x015\x93Pa&;`@\x87\x01a%$V[\x92P``\x86\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a%\xE6W`\0\x80\xFD[`\0\x80`\0\x80`\0\x80`\0`\xC0\x88\x8A\x03\x12\x15a&rW`\0\x80\xFD[\x875a&}\x81a$\x1EV[\x96P` \x88\x015a&\x8D\x81a$\x1EV[\x95P`@\x88\x015a&\x9D\x81a$\x1EV[\x94P``\x88\x015\x93Pa&\xB2`\x80\x89\x01a%$V[\x92P`\xA0\x88\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a%\x05W`\0\x80\xFD[`\0[\x83\x81\x10\x15a&\xE9W\x81\x81\x01Q\x83\x82\x01R` \x01a&\xD1V[\x83\x81\x11\x15a\x12cWPP`\0\x91\x01RV[`\0\x81Q\x80\x84Ra'\x12\x81` \x86\x01` \x86\x01a&\xCEV[`\x1F\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x92\x90\x92\x01` \x01\x92\x91PPV[` \x81R`\0a\x1E\x1C` \x83\x01\x84a&\xFAV[`\0\x80`\0\x80`\0\x80`\xA0\x87\x89\x03\x12\x15a'pW`\0\x80\xFD[\x865a'{\x81a$\x1EV[\x95P` \x87\x015a'\x8B\x81a$\x1EV[\x94P`@\x87\x015\x93Pa'\xA0``\x88\x01a%$V[\x92P`\x80\x87\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a'\xBCW`\0\x80\xFD[a'\xC8\x89\x82\x8A\x01a$CV[\x97\x9A\x96\x99P\x94\x97P\x92\x95\x93\x94\x92PPPV[`\0\x80`@\x83\x85\x03\x12\x15a'\xEDW`\0\x80\xFD[\x825a'\xF8\x81a$\x1EV[\x91P` \x83\x015a(\x08\x81a$\x1EV[\x80\x91PP\x92P\x92\x90PV[`\0` \x82\x84\x03\x12\x15a(%W`\0\x80\xFD[\x815a\x1E\x1C\x81a$\x1EV[`\0\x80`\0\x80``\x85\x87\x03\x12\x15a(FW`\0\x80\xFD[\x845a(Q\x81a$\x1EV[\x93Pa(_` \x86\x01a%$V[\x92P`@\x85\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a({W`\0\x80\xFD[a(\x87\x87\x82\x88\x01a$CV[\x95\x98\x94\x97P\x95PPPPV[`\0` \x82\x84\x03\x12\x15a(\xA5W`\0\x80\xFD[\x81Qa\x1E\x1C\x81a$\x1EV[\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`\x11`\x04R`$`\0\xFD[`\0\x82\x82\x10\x15a(\xF1Wa(\xF1a(\xB0V[P\x03\x90V[`\0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x87\x16\x83R\x80\x86\x16` \x84\x01RP\x83`@\x83\x01R`\x80``\x83\x01Ra)5`\x80\x83\x01\x84a&\xFAV[\x96\x95PPPPPPV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x16\x81R``` \x82\x01R`\0a)n``\x83\x01\x85a&\xFAV[\x90Pc\xFF\xFF\xFF\xFF\x83\x16`@\x83\x01R\x94\x93PPPPV[`\0\x82\x19\x82\x11\x15a)\x97Wa)\x97a(\xB0V[P\x01\x90V[`\0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x89\x16\x83R\x80\x88\x16` \x84\x01R\x80\x87\x16`@\x84\x01R\x80\x86\x16``\x84\x01RP\x83`\x80\x83\x01R`\xC0`\xA0\x83\x01Ra)\xEB`\xC0\x83\x01\x84a&\xFAV[\x98\x97PPPPPPPPV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x16\x81R\x82` \x82\x01R```@\x82\x01R`\0a*,``\x83\x01\x84a&\xFAV[\x95\x94PPPPPV[`\0` \x82\x84\x03\x12\x15a*GW`\0\x80\xFD[\x81Q\x80\x15\x15\x81\x14a\x1E\x1CW`\0\x80\xFD[\x82\x81R`@` \x82\x01R`\0a\"=`@\x83\x01\x84a&\xFAV[`\0\x82Qa*\x82\x81\x84` \x87\x01a&\xCEV[\x91\x90\x91\x01\x92\x91PPV\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x6080604052600436106101125760003560e01c80635c975abb116100a5578063927ede2d11610074578063c4d66de811610059578063c4d66de8146103ee578063c89701a21461040e578063e11013dd1461043b57600080fd5b8063927ede2d146103b0578063a3a79548146103db57600080fd5b80635c975abb1461032e5780637f46ddb214610244578063870876231461034a5780638f601f661461036a57600080fd5b806336c717c1116100e157806336c717c1146102445780633cb747bf14610295578063540abf73146102c257806354fd4d50146102e257600080fd5b80630166a07a146101eb57806309fc88431461020b5780631635f5fd1461021e57806332b7006d1461023157600080fd5b366101e65761011f61044e565b6101b0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20616e20454f4100000000000000000060648201526084015b60405180910390fd5b6101e473deaddeaddeaddeaddeaddeaddeaddeaddead000033333462030d406040518060200160405280600081525061048b565b005b600080fd5b3480156101f757600080fd5b506101e461020636600461248c565b610566565b6101e461021936600461253d565b610908565b6101e461022c366004612590565b6109e4565b6101e461023f366004612603565b610e36565b34801561025057600080fd5b5060045473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b3480156102a157600080fd5b5060035461026b9073ffffffffffffffffffffffffffffffffffffffff1681565b3480156102ce57600080fd5b506101e46102dd366004612657565b610f15565b3480156102ee57600080fd5b50604080518082018252600681527f312e31332e3000000000000000000000000000000000000000000000000000006020820152905161028c9190612744565b34801561033a57600080fd5b506040516000815260200161028c565b34801561035657600080fd5b506101e4610365366004612757565b610f5a565b34801561037657600080fd5b506103a26103853660046127da565b600260209081526000928352604080842090915290825290205481565b60405190815260200161028c565b3480156103bc57600080fd5b5060035473ffffffffffffffffffffffffffffffffffffffff1661026b565b6101e46103e9366004612757565b611033565b3480156103fa57600080fd5b506101e4610409366004612813565b611077565b34801561041a57600080fd5b5060045461026b9073ffffffffffffffffffffffffffffffffffffffff1681565b6101e4610449366004612830565b611220565b600032330361045d5750600190565b333b60170361048557604051602081016040526020600082333c5160e81c62ef010014905090565b50600090565b7fffffffffffffffffffffffff215221522152215221522152215221522153000073ffffffffffffffffffffffffffffffffffffffff8716016104da576104d58585858585611269565b61055e565b60008673ffffffffffffffffffffffffffffffffffffffff1663c01e1bd66040518163ffffffff1660e01b8152600401602060405180830381865afa158015610527573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061054b9190612893565b905061055c87828888888888611433565b505b505050505050565b60035473ffffffffffffffffffffffffffffffffffffffff1633148015610639575060048054600354604080517f6e296e45000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff938416949390921692636e296e459282820192602092908290030181865afa1580156105fd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106219190612893565b73ffffffffffffffffffffffffffffffffffffffff16145b6106eb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604160248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20746865206f7468657220627269646760648201527f6500000000000000000000000000000000000000000000000000000000000000608482015260a4016101a7565b6106f4876117ec565b1561084257610703878761184e565b6107b5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f5374616e646172644272696467653a2077726f6e672072656d6f746520746f6b60448201527f656e20666f72204f7074696d69736d204d696e7461626c65204552433230206c60648201527f6f63616c20746f6b656e00000000000000000000000000000000000000000000608482015260a4016101a7565b6040517f40c10f1900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8581166004830152602482018590528816906340c10f1990604401600060405180830381600087803b15801561082557600080fd5b505af1158015610839573d6000803e3d6000fd5b505050506108c4565b73ffffffffffffffffffffffffffffffffffffffff8088166000908152600260209081526040808320938a16835292905220546108809084906128df565b73ffffffffffffffffffffffffffffffffffffffff8089166000818152600260209081526040808320948c16835293905291909120919091556108c490858561196e565b61055c878787878787878080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611a4292505050565b61091061044e565b61099c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20616e20454f4100000000000000000060648201526084016101a7565b6109df3333348686868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061126992505050565b505050565b60035473ffffffffffffffffffffffffffffffffffffffff1633148015610ab7575060048054600354604080517f6e296e45000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff938416949390921692636e296e459282820192602092908290030181865afa158015610a7b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a9f9190612893565b73ffffffffffffffffffffffffffffffffffffffff16145b610b69576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604160248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20746865206f7468657220627269646760648201527f6500000000000000000000000000000000000000000000000000000000000000608482015260a4016101a7565b823414610bf8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603a60248201527f5374616e646172644272696467653a20616d6f756e742073656e7420646f657360448201527f206e6f74206d6174636820616d6f756e7420726571756972656400000000000060648201526084016101a7565b3073ffffffffffffffffffffffffffffffffffffffff851603610c9d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f5374616e646172644272696467653a2063616e6e6f742073656e6420746f207360448201527f656c66000000000000000000000000000000000000000000000000000000000060648201526084016101a7565b60035473ffffffffffffffffffffffffffffffffffffffff90811690851603610d48576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f5374616e646172644272696467653a2063616e6e6f742073656e6420746f206d60448201527f657373656e67657200000000000000000000000000000000000000000000000060648201526084016101a7565b610d8a85858585858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611ad092505050565b6000610da7855a8660405180602001604052806000815250611b71565b90508061055e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f5374616e646172644272696467653a20455448207472616e736665722066616960448201527f6c6564000000000000000000000000000000000000000000000000000000000060648201526084016101a7565b610e3e61044e565b610eca576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20616e20454f4100000000000000000060648201526084016101a7565b610f0e853333878787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061048b92505050565b5050505050565b61055c87873388888888888080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061143392505050565b610f6261044e565b610fee576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20616e20454f4100000000000000000060648201526084016101a7565b61055e86863333888888888080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061143392505050565b61055e863387878787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061048b92505050565b600054610100900460ff16158080156110975750600054600160ff909116105b806110b15750303b1580156110b1575060005460ff166001145b61113d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016101a7565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561119b57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6111b973420000000000000000000000000000000000000783611b89565b801561121c57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6112633385348686868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061126992505050565b50505050565b8234146112f8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603e60248201527f5374616e646172644272696467653a206272696467696e6720455448206d757360448201527f7420696e636c7564652073756666696369656e74204554482076616c7565000060648201526084016101a7565b61130485858584611c73565b60035460045460405173ffffffffffffffffffffffffffffffffffffffff92831692633dbb202b9287929116907f1635f5fd0000000000000000000000000000000000000000000000000000000090611367908b908b9086908a906024016128f6565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009485161790525160e086901b90921682526113fa9291889060040161293f565b6000604051808303818588803b15801561141357600080fd5b505af1158015611427573d6000803e3d6000fd5b50505050505050505050565b34156114c1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f5374616e646172644272696467653a2063616e6e6f742073656e642076616c7560448201527f650000000000000000000000000000000000000000000000000000000000000060648201526084016101a7565b6114ca876117ec565b15611618576114d9878761184e565b61158b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f5374616e646172644272696467653a2077726f6e672072656d6f746520746f6b60448201527f656e20666f72204f7074696d69736d204d696e7461626c65204552433230206c60648201527f6f63616c20746f6b656e00000000000000000000000000000000000000000000608482015260a4016101a7565b6040517f9dc29fac00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff868116600483015260248201859052881690639dc29fac90604401600060405180830381600087803b1580156115fb57600080fd5b505af115801561160f573d6000803e3d6000fd5b505050506116ac565b61163a73ffffffffffffffffffffffffffffffffffffffff8816863086611d14565b73ffffffffffffffffffffffffffffffffffffffff8088166000908152600260209081526040808320938a1683529290522054611678908490612984565b73ffffffffffffffffffffffffffffffffffffffff8089166000908152600260209081526040808320938b16835292905220555b6116ba878787878786611d72565b60035460045460405173ffffffffffffffffffffffffffffffffffffffff92831692633dbb202b9216907f0166a07a000000000000000000000000000000000000000000000000000000009061171e908b908d908c908c908c908b9060240161299c565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009485161790525160e085901b90921682526117b19291879060040161293f565b600060405180830381600087803b1580156117cb57600080fd5b505af11580156117df573d6000803e3d6000fd5b5050505050505050505050565b6000611818827f1d1d8b6300000000000000000000000000000000000000000000000000000000611e00565b806118485750611848827fec4fc8e300000000000000000000000000000000000000000000000000000000611e00565b92915050565b600061187a837f1d1d8b6300000000000000000000000000000000000000000000000000000000611e00565b15611923578273ffffffffffffffffffffffffffffffffffffffff1663c01e1bd66040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118ee9190612893565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050611848565b8273ffffffffffffffffffffffffffffffffffffffff1663d6c0b2c46040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118ca573d6000803e3d6000fd5b60405173ffffffffffffffffffffffffffffffffffffffff83166024820152604481018290526109df9084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152611e23565b8373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fb0444523268717a02698be47d0803aa7468c00acbed2f8bd93a0459cde61dd89868686604051611aba939291906129f7565b60405180910390a461055e868686868686611f2f565b8373ffffffffffffffffffffffffffffffffffffffff1673deaddeaddeaddeaddeaddeaddeaddeaddead000073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fb0444523268717a02698be47d0803aa7468c00acbed2f8bd93a0459cde61dd89868686604051611b5d939291906129f7565b60405180910390a461126384848484611fb7565b6000806000835160208501868989f195945050505050565b600054610100900460ff16611c20576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016101a7565b6003805473ffffffffffffffffffffffffffffffffffffffff9384167fffffffffffffffffffffffff00000000000000000000000000000000000000009182161790915560048054929093169116179055565b8373ffffffffffffffffffffffffffffffffffffffff1673deaddeaddeaddeaddeaddeaddeaddeaddead000073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f73d170910aba9e6d50b102db522b1dbcd796216f5128b445aa2135272886497e868686604051611d00939291906129f7565b60405180910390a461126384848484612024565b60405173ffffffffffffffffffffffffffffffffffffffff808516602483015283166044820152606481018290526112639085907f23b872dd00000000000000000000000000000000000000000000000000000000906084016119c0565b8373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167f73d170910aba9e6d50b102db522b1dbcd796216f5128b445aa2135272886497e868686604051611dea939291906129f7565b60405180910390a461055e868686868686612083565b6000611e0b836120fb565b8015611e1c5750611e1c838361215f565b9392505050565b6000611e85826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff1661222e9092919063ffffffff16565b8051909150156109df5780806020019051810190611ea39190612a35565b6109df576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016101a7565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fd59c65b35445225835c83f50b6ede06a7be047d22e357073e250d9af537518cd868686604051611fa7939291906129f7565b60405180910390a4505050505050565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f31b2166ff604fc5672ea5df08a78081d2bc6d746cadce880747f3643d819e83d8484604051612016929190612a57565b60405180910390a350505050565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f2849b43074093a05396b6f2a937dee8565b15a48a7b3d4bffb732a5017380af58484604051612016929190612a57565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167f7ff126db8024424bbfd9826e8ab82ff59136289ea440b04b39a0df1b03b9cabf868686604051611fa7939291906129f7565b6000612127827f01ffc9a70000000000000000000000000000000000000000000000000000000061215f565b80156118485750612158827fffffffff0000000000000000000000000000000000000000000000000000000061215f565b1592915050565b604080517fffffffff000000000000000000000000000000000000000000000000000000008316602480830191909152825180830390910181526044909101909152602080820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f01ffc9a700000000000000000000000000000000000000000000000000000000178152825160009392849283928392918391908a617530fa92503d91506000519050828015612217575060208210155b80156122235750600081115b979650505050505050565b606061223d8484600085612245565b949350505050565b6060824710156122d7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c000000000000000000000000000000000000000000000000000060648201526084016101a7565b73ffffffffffffffffffffffffffffffffffffffff85163b612355576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016101a7565b6000808673ffffffffffffffffffffffffffffffffffffffff16858760405161237e9190612a70565b60006040518083038185875af1925050503d80600081146123bb576040519150601f19603f3d011682016040523d82523d6000602084013e6123c0565b606091505b5091509150612223828286606083156123da575081611e1c565b8251156123ea5782518084602001fd5b816040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101a79190612744565b73ffffffffffffffffffffffffffffffffffffffff8116811461244057600080fd5b50565b60008083601f84011261245557600080fd5b50813567ffffffffffffffff81111561246d57600080fd5b60208301915083602082850101111561248557600080fd5b9250929050565b600080600080600080600060c0888a0312156124a757600080fd5b87356124b28161241e565b965060208801356124c28161241e565b955060408801356124d28161241e565b945060608801356124e28161241e565b93506080880135925060a088013567ffffffffffffffff81111561250557600080fd5b6125118a828b01612443565b989b979a50959850939692959293505050565b803563ffffffff8116811461253857600080fd5b919050565b60008060006040848603121561255257600080fd5b61255b84612524565b9250602084013567ffffffffffffffff81111561257757600080fd5b61258386828701612443565b9497909650939450505050565b6000806000806000608086880312156125a857600080fd5b85356125b38161241e565b945060208601356125c38161241e565b935060408601359250606086013567ffffffffffffffff8111156125e657600080fd5b6125f288828901612443565b969995985093965092949392505050565b60008060008060006080868803121561261b57600080fd5b85356126268161241e565b94506020860135935061263b60408701612524565b9250606086013567ffffffffffffffff8111156125e657600080fd5b600080600080600080600060c0888a03121561267257600080fd5b873561267d8161241e565b9650602088013561268d8161241e565b9550604088013561269d8161241e565b9450606088013593506126b260808901612524565b925060a088013567ffffffffffffffff81111561250557600080fd5b60005b838110156126e95781810151838201526020016126d1565b838111156112635750506000910152565b600081518084526127128160208601602086016126ce565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000611e1c60208301846126fa565b60008060008060008060a0878903121561277057600080fd5b863561277b8161241e565b9550602087013561278b8161241e565b9450604087013593506127a060608801612524565b9250608087013567ffffffffffffffff8111156127bc57600080fd5b6127c889828a01612443565b979a9699509497509295939492505050565b600080604083850312156127ed57600080fd5b82356127f88161241e565b915060208301356128088161241e565b809150509250929050565b60006020828403121561282557600080fd5b8135611e1c8161241e565b6000806000806060858703121561284657600080fd5b84356128518161241e565b935061285f60208601612524565b9250604085013567ffffffffffffffff81111561287b57600080fd5b61288787828801612443565b95989497509550505050565b6000602082840312156128a557600080fd5b8151611e1c8161241e565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000828210156128f1576128f16128b0565b500390565b600073ffffffffffffffffffffffffffffffffffffffff80871683528086166020840152508360408301526080606083015261293560808301846126fa565b9695505050505050565b73ffffffffffffffffffffffffffffffffffffffff8416815260606020820152600061296e60608301856126fa565b905063ffffffff83166040830152949350505050565b60008219821115612997576129976128b0565b500190565b600073ffffffffffffffffffffffffffffffffffffffff80891683528088166020840152808716604084015280861660608401525083608083015260c060a08301526129eb60c08301846126fa565b98975050505050505050565b73ffffffffffffffffffffffffffffffffffffffff84168152826020820152606060408201526000612a2c60608301846126fa565b95945050505050565b600060208284031215612a4757600080fd5b81518015158114611e1c57600080fd5b82815260406020820152600061223d60408301846126fa565b60008251612a828184602087016126ce565b919091019291505056fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R`\x046\x10a\x01\x12W`\x005`\xE0\x1C\x80c\\\x97Z\xBB\x11a\0\xA5W\x80c\x92~\xDE-\x11a\0tW\x80c\xC4\xD6m\xE8\x11a\0YW\x80c\xC4\xD6m\xE8\x14a\x03\xEEW\x80c\xC8\x97\x01\xA2\x14a\x04\x0EW\x80c\xE1\x10\x13\xDD\x14a\x04;W`\0\x80\xFD[\x80c\x92~\xDE-\x14a\x03\xB0W\x80c\xA3\xA7\x95H\x14a\x03\xDBW`\0\x80\xFD[\x80c\\\x97Z\xBB\x14a\x03.W\x80c\x7FF\xDD\xB2\x14a\x02DW\x80c\x87\x08v#\x14a\x03JW\x80c\x8F`\x1Ff\x14a\x03jW`\0\x80\xFD[\x80c6\xC7\x17\xC1\x11a\0\xE1W\x80c6\xC7\x17\xC1\x14a\x02DW\x80c<\xB7G\xBF\x14a\x02\x95W\x80cT\n\xBFs\x14a\x02\xC2W\x80cT\xFDMP\x14a\x02\xE2W`\0\x80\xFD[\x80c\x01f\xA0z\x14a\x01\xEBW\x80c\t\xFC\x88C\x14a\x02\x0BW\x80c\x165\xF5\xFD\x14a\x02\x1EW\x80c2\xB7\0m\x14a\x021W`\0\x80\xFD[6a\x01\xE6Wa\x01\x1Fa\x04NV[a\x01\xB0W`@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\x82\x01R`7`$\x82\x01R\x7FStandardBridge: function can onl`D\x82\x01R\x7Fy be called from an EOA\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01[`@Q\x80\x91\x03\x90\xFD[a\x01\xE4s\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\0\x00334b\x03\r@`@Q\x80` \x01`@R\x80`\0\x81RPa\x04\x8BV[\0[`\0\x80\xFD[4\x80\x15a\x01\xF7W`\0\x80\xFD[Pa\x01\xE4a\x02\x066`\x04a$\x8CV[a\x05fV[a\x01\xE4a\x02\x196`\x04a%=V[a\t\x08V[a\x01\xE4a\x02,6`\x04a%\x90V[a\t\xE4V[a\x01\xE4a\x02?6`\x04a&\x03V[a\x0E6V[4\x80\x15a\x02PW`\0\x80\xFD[P`\x04Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16[`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[4\x80\x15a\x02\xA1W`\0\x80\xFD[P`\x03Ta\x02k\x90s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[4\x80\x15a\x02\xCEW`\0\x80\xFD[Pa\x01\xE4a\x02\xDD6`\x04a&WV[a\x0F\x15V[4\x80\x15a\x02\xEEW`\0\x80\xFD[P`@\x80Q\x80\x82\x01\x82R`\x06\x81R\x7F1.13.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` \x82\x01R\x90Qa\x02\x8C\x91\x90a'DV[4\x80\x15a\x03:W`\0\x80\xFD[P`@Q`\0\x81R` \x01a\x02\x8CV[4\x80\x15a\x03VW`\0\x80\xFD[Pa\x01\xE4a\x03e6`\x04a'WV[a\x0FZV[4\x80\x15a\x03vW`\0\x80\xFD[Pa\x03\xA2a\x03\x856`\x04a'\xDAV[`\x02` \x90\x81R`\0\x92\x83R`@\x80\x84 \x90\x91R\x90\x82R\x90 T\x81V[`@Q\x90\x81R` \x01a\x02\x8CV[4\x80\x15a\x03\xBCW`\0\x80\xFD[P`\x03Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a\x02kV[a\x01\xE4a\x03\xE96`\x04a'WV[a\x103V[4\x80\x15a\x03\xFAW`\0\x80\xFD[Pa\x01\xE4a\x04\t6`\x04a(\x13V[a\x10wV[4\x80\x15a\x04\x1AW`\0\x80\xFD[P`\x04Ta\x02k\x90s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[a\x01\xE4a\x04I6`\x04a(0V[a\x12 V[`\x0023\x03a\x04]WP`\x01\x90V[3;`\x17\x03a\x04\x85W`@Q` \x81\x01`@R` `\0\x823=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x05K\x91\x90a(\x93V[\x90Pa\x05\\\x87\x82\x88\x88\x88\x88\x88a\x143V[P[PPPPPPV[`\x03Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x163\x14\x80\x15a\x069WP`\x04\x80T`\x03T`@\x80Q\x7Fn)nE\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\x90Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x93\x84\x16\x94\x93\x90\x92\x16\x92cn)nE\x92\x82\x82\x01\x92` \x92\x90\x82\x90\x03\x01\x81\x86Z\xFA\x15\x80\x15a\x05\xFDW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x06!\x91\x90a(\x93V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14[a\x06\xEBW`@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\x82\x01R`A`$\x82\x01R\x7FStandardBridge: function can onl`D\x82\x01R\x7Fy be called from the other bridg`d\x82\x01R\x7Fe\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x84\x82\x01R`\xA4\x01a\x01\xA7V[a\x06\xF4\x87a\x17\xECV[\x15a\x08BWa\x07\x03\x87\x87a\x18NV[a\x07\xB5W`@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\x82\x01R`J`$\x82\x01R\x7FStandardBridge: wrong remote tok`D\x82\x01R\x7Fen for Optimism Mintable ERC20 l`d\x82\x01R\x7Focal token\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x84\x82\x01R`\xA4\x01a\x01\xA7V[`@Q\x7F@\xC1\x0F\x19\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\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x85\x81\x16`\x04\x83\x01R`$\x82\x01\x85\x90R\x88\x16\x90c@\xC1\x0F\x19\x90`D\x01`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a\x08%W`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x089W=`\0\x80>=`\0\xFD[PPPPa\x08\xC4V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x88\x16`\0\x90\x81R`\x02` \x90\x81R`@\x80\x83 \x93\x8A\x16\x83R\x92\x90R Ta\x08\x80\x90\x84\x90a(\xDFV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x89\x16`\0\x81\x81R`\x02` \x90\x81R`@\x80\x83 \x94\x8C\x16\x83R\x93\x90R\x91\x90\x91 \x91\x90\x91Ua\x08\xC4\x90\x85\x85a\x19nV[a\x05\\\x87\x87\x87\x87\x87\x87\x87\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RPa\x1AB\x92PPPV[a\t\x10a\x04NV[a\t\x9CW`@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\x82\x01R`7`$\x82\x01R\x7FStandardBridge: function can onl`D\x82\x01R\x7Fy be called from an EOA\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x01\xA7V[a\t\xDF334\x86\x86\x86\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RPa\x12i\x92PPPV[PPPV[`\x03Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x163\x14\x80\x15a\n\xB7WP`\x04\x80T`\x03T`@\x80Q\x7Fn)nE\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\x90Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x93\x84\x16\x94\x93\x90\x92\x16\x92cn)nE\x92\x82\x82\x01\x92` \x92\x90\x82\x90\x03\x01\x81\x86Z\xFA\x15\x80\x15a\n{W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\n\x9F\x91\x90a(\x93V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14[a\x0BiW`@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\x82\x01R`A`$\x82\x01R\x7FStandardBridge: function can onl`D\x82\x01R\x7Fy be called from the other bridg`d\x82\x01R\x7Fe\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x84\x82\x01R`\xA4\x01a\x01\xA7V[\x824\x14a\x0B\xF8W`@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\x82\x01R`:`$\x82\x01R\x7FStandardBridge: amount sent does`D\x82\x01R\x7F not match amount required\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x01\xA7V[0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x85\x16\x03a\x0C\x9DW`@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\x82\x01R`#`$\x82\x01R\x7FStandardBridge: cannot send to s`D\x82\x01R\x7Felf\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x01\xA7V[`\x03Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x81\x16\x90\x85\x16\x03a\rHW`@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\x82\x01R`(`$\x82\x01R\x7FStandardBridge: cannot send to m`D\x82\x01R\x7Fessenger\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x01\xA7V[a\r\x8A\x85\x85\x85\x85\x85\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RPa\x1A\xD0\x92PPPV[`\0a\r\xA7\x85Z\x86`@Q\x80` \x01`@R\x80`\0\x81RPa\x1BqV[\x90P\x80a\x05^W`@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\x82\x01R`#`$\x82\x01R\x7FStandardBridge: ETH transfer fai`D\x82\x01R\x7Fled\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x01\xA7V[a\x0E>a\x04NV[a\x0E\xCAW`@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\x82\x01R`7`$\x82\x01R\x7FStandardBridge: function can onl`D\x82\x01R\x7Fy be called from an EOA\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x01\xA7V[a\x0F\x0E\x8533\x87\x87\x87\x87\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RPa\x04\x8B\x92PPPV[PPPPPV[a\x05\\\x87\x873\x88\x88\x88\x88\x88\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RPa\x143\x92PPPV[a\x0Fba\x04NV[a\x0F\xEEW`@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\x82\x01R`7`$\x82\x01R\x7FStandardBridge: function can onl`D\x82\x01R\x7Fy be called from an EOA\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x01\xA7V[a\x05^\x86\x8633\x88\x88\x88\x88\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RPa\x143\x92PPPV[a\x05^\x863\x87\x87\x87\x87\x87\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RPa\x04\x8B\x92PPPV[`\0Ta\x01\0\x90\x04`\xFF\x16\x15\x80\x80\x15a\x10\x97WP`\0T`\x01`\xFF\x90\x91\x16\x10[\x80a\x10\xB1WP0;\x15\x80\x15a\x10\xB1WP`\0T`\xFF\x16`\x01\x14[a\x11=W`@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\x82\x01R`.`$\x82\x01R\x7FInitializable: contract is alrea`D\x82\x01R\x7Fdy initialized\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x01\xA7V[`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x16`\x01\x17\x90U\x80\x15a\x11\x9BW`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\x16a\x01\0\x17\x90U[a\x11\xB9sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x07\x83a\x1B\x89V[\x80\x15a\x12\x1CW`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\x16\x90U`@Q`\x01\x81R\x7F\x7F&\xB8?\xF9n\x1F+jh/\x138R\xF6y\x8A\t\xC4e\xDA\x95\x92\x14`\xCE\xFB8G@$\x98\x90` \x01`@Q\x80\x91\x03\x90\xA1[PPV[a\x12c3\x854\x86\x86\x86\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RPa\x12i\x92PPPV[PPPPV[\x824\x14a\x12\xF8W`@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\x82\x01R`>`$\x82\x01R\x7FStandardBridge: bridging ETH mus`D\x82\x01R\x7Ft include sufficient ETH value\0\0`d\x82\x01R`\x84\x01a\x01\xA7V[a\x13\x04\x85\x85\x85\x84a\x1CsV[`\x03T`\x04T`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x92\x83\x16\x92c=\xBB +\x92\x87\x92\x91\x16\x90\x7F\x165\xF5\xFD\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\x90a\x13g\x90\x8B\x90\x8B\x90\x86\x90\x8A\x90`$\x01a(\xF6V[`@\x80Q\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x81\x84\x03\x01\x81R\x91\x81R` \x82\x01\x80Q{\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xFF\xFF\xFF\xFF\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\x94\x85\x16\x17\x90RQ`\xE0\x86\x90\x1B\x90\x92\x16\x82Ra\x13\xFA\x92\x91\x88\x90`\x04\x01a)?V[`\0`@Q\x80\x83\x03\x81\x85\x88\x80;\x15\x80\x15a\x14\x13W`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x14'W=`\0\x80>=`\0\xFD[PPPPPPPPPPV[4\x15a\x14\xC1W`@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\x82\x01R`!`$\x82\x01R\x7FStandardBridge: cannot send valu`D\x82\x01R\x7Fe\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x01\xA7V[a\x14\xCA\x87a\x17\xECV[\x15a\x16\x18Wa\x14\xD9\x87\x87a\x18NV[a\x15\x8BW`@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\x82\x01R`J`$\x82\x01R\x7FStandardBridge: wrong remote tok`D\x82\x01R\x7Fen for Optimism Mintable ERC20 l`d\x82\x01R\x7Focal token\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x84\x82\x01R`\xA4\x01a\x01\xA7V[`@Q\x7F\x9D\xC2\x9F\xAC\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\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x86\x81\x16`\x04\x83\x01R`$\x82\x01\x85\x90R\x88\x16\x90c\x9D\xC2\x9F\xAC\x90`D\x01`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a\x15\xFBW`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x16\x0FW=`\0\x80>=`\0\xFD[PPPPa\x16\xACV[a\x16:s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x88\x16\x860\x86a\x1D\x14V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x88\x16`\0\x90\x81R`\x02` \x90\x81R`@\x80\x83 \x93\x8A\x16\x83R\x92\x90R Ta\x16x\x90\x84\x90a)\x84V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x89\x16`\0\x90\x81R`\x02` \x90\x81R`@\x80\x83 \x93\x8B\x16\x83R\x92\x90R U[a\x16\xBA\x87\x87\x87\x87\x87\x86a\x1DrV[`\x03T`\x04T`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x92\x83\x16\x92c=\xBB +\x92\x16\x90\x7F\x01f\xA0z\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\x90a\x17\x1E\x90\x8B\x90\x8D\x90\x8C\x90\x8C\x90\x8C\x90\x8B\x90`$\x01a)\x9CV[`@\x80Q\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x81\x84\x03\x01\x81R\x91\x81R` \x82\x01\x80Q{\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xFF\xFF\xFF\xFF\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\x94\x85\x16\x17\x90RQ`\xE0\x85\x90\x1B\x90\x92\x16\x82Ra\x17\xB1\x92\x91\x87\x90`\x04\x01a)?V[`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a\x17\xCBW`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x17\xDFW=`\0\x80>=`\0\xFD[PPPPPPPPPPPV[`\0a\x18\x18\x82\x7F\x1D\x1D\x8Bc\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\0a\x1E\0V[\x80a\x18HWPa\x18H\x82\x7F\xECO\xC8\xE3\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\0a\x1E\0V[\x92\x91PPV[`\0a\x18z\x83\x7F\x1D\x1D\x8Bc\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\0a\x1E\0V[\x15a\x19#W\x82s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xC0\x1E\x1B\xD6`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x18\xCAW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x18\xEE\x91\x90a(\x93V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x82s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14\x90Pa\x18HV[\x82s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xD6\xC0\xB2\xC4`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x18\xCAW=`\0\x80>=`\0\xFD[`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x16`$\x82\x01R`D\x81\x01\x82\x90Ra\t\xDF\x90\x84\x90\x7F\xA9\x05\x9C\xBB\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\x90`d\x01[`@\x80Q\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x81\x84\x03\x01\x81R\x91\x90R` \x81\x01\x80Q{\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xFF\xFF\xFF\xFF\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\x90\x93\x16\x92\x90\x92\x17\x90\x91Ra\x1E#V[\x83s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x86s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x86s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xB0DE#&\x87\x17\xA0&\x98\xBEG\xD0\x80:\xA7F\x8C\0\xAC\xBE\xD2\xF8\xBD\x93\xA0E\x9C\xDEa\xDD\x89\x86\x86\x86`@Qa\x1A\xBA\x93\x92\x91\x90a)\xF7V[`@Q\x80\x91\x03\x90\xA4a\x05^\x86\x86\x86\x86\x86\x86a\x1F/V[\x83s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16s\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\0\0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xB0DE#&\x87\x17\xA0&\x98\xBEG\xD0\x80:\xA7F\x8C\0\xAC\xBE\xD2\xF8\xBD\x93\xA0E\x9C\xDEa\xDD\x89\x86\x86\x86`@Qa\x1B]\x93\x92\x91\x90a)\xF7V[`@Q\x80\x91\x03\x90\xA4a\x12c\x84\x84\x84\x84a\x1F\xB7V[`\0\x80`\0\x83Q` \x85\x01\x86\x89\x89\xF1\x95\x94PPPPPV[`\0Ta\x01\0\x90\x04`\xFF\x16a\x1C W`@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\x82\x01R`+`$\x82\x01R\x7FInitializable: contract is not i`D\x82\x01R\x7Fnitializing\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x01\xA7V[`\x03\x80Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x93\x84\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x91\x82\x16\x17\x90\x91U`\x04\x80T\x92\x90\x93\x16\x91\x16\x17\x90UV[\x83s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16s\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\0\0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7Fs\xD1p\x91\n\xBA\x9EmP\xB1\x02\xDBR+\x1D\xBC\xD7\x96!oQ(\xB4E\xAA!5'(\x86I~\x86\x86\x86`@Qa\x1D\0\x93\x92\x91\x90a)\xF7V[`@Q\x80\x91\x03\x90\xA4a\x12c\x84\x84\x84\x84a $V[`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x85\x16`$\x83\x01R\x83\x16`D\x82\x01R`d\x81\x01\x82\x90Ra\x12c\x90\x85\x90\x7F#\xB8r\xDD\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\x90`\x84\x01a\x19\xC0V[\x83s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x86s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x86s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7Fs\xD1p\x91\n\xBA\x9EmP\xB1\x02\xDBR+\x1D\xBC\xD7\x96!oQ(\xB4E\xAA!5'(\x86I~\x86\x86\x86`@Qa\x1D\xEA\x93\x92\x91\x90a)\xF7V[`@Q\x80\x91\x03\x90\xA4a\x05^\x86\x86\x86\x86\x86\x86a \x83V[`\0a\x1E\x0B\x83a \xFBV[\x80\x15a\x1E\x1CWPa\x1E\x1C\x83\x83a!_V[\x93\x92PPPV[`\0a\x1E\x85\x82`@Q\x80`@\x01`@R\x80` \x81R` \x01\x7FSafeERC20: low-level call failed\x81RP\x85s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a\".\x90\x92\x91\x90c\xFF\xFF\xFF\xFF\x16V[\x80Q\x90\x91P\x15a\t\xDFW\x80\x80` \x01\x90Q\x81\x01\x90a\x1E\xA3\x91\x90a*5V[a\t\xDFW`@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\x82\x01R`*`$\x82\x01R\x7FSafeERC20: ERC20 operation did n`D\x82\x01R\x7Fot succeed\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x01\xA7V[\x83s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x85s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x87s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xD5\x9Ce\xB3TE\"X5\xC8?P\xB6\xED\xE0j{\xE0G\xD2.5ps\xE2P\xD9\xAFSu\x18\xCD\x86\x86\x86`@Qa\x1F\xA7\x93\x92\x91\x90a)\xF7V[`@Q\x80\x91\x03\x90\xA4PPPPPPV[\x82s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x84s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F1\xB2\x16o\xF6\x04\xFCVr\xEA]\xF0\x8Ax\x08\x1D+\xC6\xD7F\xCA\xDC\xE8\x80t\x7F6C\xD8\x19\xE8=\x84\x84`@Qa \x16\x92\x91\x90a*WV[`@Q\x80\x91\x03\x90\xA3PPPPV[\x82s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x84s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F(I\xB40t\t:\x059ko*\x93}\xEE\x85e\xB1ZH\xA7\xB3\xD4\xBF\xFBs*P\x178\n\xF5\x84\x84`@Qa \x16\x92\x91\x90a*WV[\x83s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x85s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x87s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\x7F\xF1&\xDB\x80$BK\xBF\xD9\x82n\x8A\xB8/\xF5\x916(\x9E\xA4@\xB0K9\xA0\xDF\x1B\x03\xB9\xCA\xBF\x86\x86\x86`@Qa\x1F\xA7\x93\x92\x91\x90a)\xF7V[`\0a!'\x82\x7F\x01\xFF\xC9\xA7\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\0a!_V[\x80\x15a\x18HWPa!X\x82\x7F\xFF\xFF\xFF\xFF\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\0a!_V[\x15\x92\x91PPV[`@\x80Q\x7F\xFF\xFF\xFF\xFF\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\x83\x16`$\x80\x83\x01\x91\x90\x91R\x82Q\x80\x83\x03\x90\x91\x01\x81R`D\x90\x91\x01\x90\x91R` \x80\x82\x01\x80Q{\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\x01\xFF\xC9\xA7\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\x17\x81R\x82Q`\0\x93\x92\x84\x92\x83\x92\x83\x92\x91\x83\x91\x90\x8Aau0\xFA\x92P=\x91P`\0Q\x90P\x82\x80\x15a\"\x17WP` \x82\x10\x15[\x80\x15a\"#WP`\0\x81\x11[\x97\x96PPPPPPPV[``a\"=\x84\x84`\0\x85a\"EV[\x94\x93PPPPV[``\x82G\x10\x15a\"\xD7W`@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\x82\x01R`&`$\x82\x01R\x7FAddress: insufficient balance fo`D\x82\x01R\x7Fr call\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`d\x82\x01R`\x84\x01a\x01\xA7V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x85\x16;a#UW`@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\x82\x01R`\x1D`$\x82\x01R\x7FAddress: call to non-contract\0\0\0`D\x82\x01R`d\x01a\x01\xA7V[`\0\x80\x86s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x85\x87`@Qa#~\x91\x90a*pV[`\0`@Q\x80\x83\x03\x81\x85\x87Z\xF1\x92PPP=\x80`\0\x81\x14a#\xBBW`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=`\0` \x84\x01>a#\xC0V[``\x91P[P\x91P\x91Pa\"#\x82\x82\x86``\x83\x15a#\xDAWP\x81a\x1E\x1CV[\x82Q\x15a#\xEAW\x82Q\x80\x84` \x01\xFD[\x81`@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\x01\xA7\x91\x90a'DV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a$@W`\0\x80\xFD[PV[`\0\x80\x83`\x1F\x84\x01\x12a$UW`\0\x80\xFD[P\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a$mW`\0\x80\xFD[` \x83\x01\x91P\x83` \x82\x85\x01\x01\x11\x15a$\x85W`\0\x80\xFD[\x92P\x92\x90PV[`\0\x80`\0\x80`\0\x80`\0`\xC0\x88\x8A\x03\x12\x15a$\xA7W`\0\x80\xFD[\x875a$\xB2\x81a$\x1EV[\x96P` \x88\x015a$\xC2\x81a$\x1EV[\x95P`@\x88\x015a$\xD2\x81a$\x1EV[\x94P``\x88\x015a$\xE2\x81a$\x1EV[\x93P`\x80\x88\x015\x92P`\xA0\x88\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a%\x05W`\0\x80\xFD[a%\x11\x8A\x82\x8B\x01a$CV[\x98\x9B\x97\x9AP\x95\x98P\x93\x96\x92\x95\x92\x93PPPV[\x805c\xFF\xFF\xFF\xFF\x81\x16\x81\x14a%8W`\0\x80\xFD[\x91\x90PV[`\0\x80`\0`@\x84\x86\x03\x12\x15a%RW`\0\x80\xFD[a%[\x84a%$V[\x92P` \x84\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a%wW`\0\x80\xFD[a%\x83\x86\x82\x87\x01a$CV[\x94\x97\x90\x96P\x93\x94PPPPV[`\0\x80`\0\x80`\0`\x80\x86\x88\x03\x12\x15a%\xA8W`\0\x80\xFD[\x855a%\xB3\x81a$\x1EV[\x94P` \x86\x015a%\xC3\x81a$\x1EV[\x93P`@\x86\x015\x92P``\x86\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a%\xE6W`\0\x80\xFD[a%\xF2\x88\x82\x89\x01a$CV[\x96\x99\x95\x98P\x93\x96P\x92\x94\x93\x92PPPV[`\0\x80`\0\x80`\0`\x80\x86\x88\x03\x12\x15a&\x1BW`\0\x80\xFD[\x855a&&\x81a$\x1EV[\x94P` \x86\x015\x93Pa&;`@\x87\x01a%$V[\x92P``\x86\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a%\xE6W`\0\x80\xFD[`\0\x80`\0\x80`\0\x80`\0`\xC0\x88\x8A\x03\x12\x15a&rW`\0\x80\xFD[\x875a&}\x81a$\x1EV[\x96P` \x88\x015a&\x8D\x81a$\x1EV[\x95P`@\x88\x015a&\x9D\x81a$\x1EV[\x94P``\x88\x015\x93Pa&\xB2`\x80\x89\x01a%$V[\x92P`\xA0\x88\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a%\x05W`\0\x80\xFD[`\0[\x83\x81\x10\x15a&\xE9W\x81\x81\x01Q\x83\x82\x01R` \x01a&\xD1V[\x83\x81\x11\x15a\x12cWPP`\0\x91\x01RV[`\0\x81Q\x80\x84Ra'\x12\x81` \x86\x01` \x86\x01a&\xCEV[`\x1F\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x92\x90\x92\x01` \x01\x92\x91PPV[` \x81R`\0a\x1E\x1C` \x83\x01\x84a&\xFAV[`\0\x80`\0\x80`\0\x80`\xA0\x87\x89\x03\x12\x15a'pW`\0\x80\xFD[\x865a'{\x81a$\x1EV[\x95P` \x87\x015a'\x8B\x81a$\x1EV[\x94P`@\x87\x015\x93Pa'\xA0``\x88\x01a%$V[\x92P`\x80\x87\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a'\xBCW`\0\x80\xFD[a'\xC8\x89\x82\x8A\x01a$CV[\x97\x9A\x96\x99P\x94\x97P\x92\x95\x93\x94\x92PPPV[`\0\x80`@\x83\x85\x03\x12\x15a'\xEDW`\0\x80\xFD[\x825a'\xF8\x81a$\x1EV[\x91P` \x83\x015a(\x08\x81a$\x1EV[\x80\x91PP\x92P\x92\x90PV[`\0` \x82\x84\x03\x12\x15a(%W`\0\x80\xFD[\x815a\x1E\x1C\x81a$\x1EV[`\0\x80`\0\x80``\x85\x87\x03\x12\x15a(FW`\0\x80\xFD[\x845a(Q\x81a$\x1EV[\x93Pa(_` \x86\x01a%$V[\x92P`@\x85\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a({W`\0\x80\xFD[a(\x87\x87\x82\x88\x01a$CV[\x95\x98\x94\x97P\x95PPPPV[`\0` \x82\x84\x03\x12\x15a(\xA5W`\0\x80\xFD[\x81Qa\x1E\x1C\x81a$\x1EV[\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`\x11`\x04R`$`\0\xFD[`\0\x82\x82\x10\x15a(\xF1Wa(\xF1a(\xB0V[P\x03\x90V[`\0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x87\x16\x83R\x80\x86\x16` \x84\x01RP\x83`@\x83\x01R`\x80``\x83\x01Ra)5`\x80\x83\x01\x84a&\xFAV[\x96\x95PPPPPPV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x16\x81R``` \x82\x01R`\0a)n``\x83\x01\x85a&\xFAV[\x90Pc\xFF\xFF\xFF\xFF\x83\x16`@\x83\x01R\x94\x93PPPPV[`\0\x82\x19\x82\x11\x15a)\x97Wa)\x97a(\xB0V[P\x01\x90V[`\0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x89\x16\x83R\x80\x88\x16` \x84\x01R\x80\x87\x16`@\x84\x01R\x80\x86\x16``\x84\x01RP\x83`\x80\x83\x01R`\xC0`\xA0\x83\x01Ra)\xEB`\xC0\x83\x01\x84a&\xFAV[\x98\x97PPPPPPPPV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x16\x81R\x82` \x82\x01R```@\x82\x01R`\0a*,``\x83\x01\x84a&\xFAV[\x95\x94PPPPPV[`\0` \x82\x84\x03\x12\x15a*GW`\0\x80\xFD[\x81Q\x80\x15\x15\x81\x14a\x1E\x1CW`\0\x80\xFD[\x82\x81R`@` \x82\x01R`\0a\"=`@\x83\x01\x84a&\xFAV[`\0\x82Qa*\x82\x81\x84` \x87\x01a&\xCEV[\x91\x90\x91\x01\x92\x91PPV\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `DepositFinalized(address,address,address,address,uint256,bytes)` and selector `0xb0444523268717a02698be47d0803aa7468c00acbed2f8bd93a0459cde61dd89`. +```solidity +event DepositFinalized(address indexed l1Token, address indexed l2Token, address indexed from, address to, uint256 amount, bytes extraData); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct DepositFinalized { + #[allow(missing_docs)] + pub l1Token: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub l2Token: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub from: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub amount: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub extraData: alloy::sol_types::private::Bytes, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for DepositFinalized { + type DataTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Bytes, + ); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "DepositFinalized(address,address,address,address,uint256,bytes)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 176u8, 68u8, 69u8, 35u8, 38u8, 135u8, 23u8, 160u8, 38u8, 152u8, 190u8, + 71u8, 208u8, 128u8, 58u8, 167u8, 70u8, 140u8, 0u8, 172u8, 190u8, 210u8, + 248u8, 189u8, 147u8, 160u8, 69u8, 156u8, 222u8, 97u8, 221u8, 137u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + l1Token: topics.1, + l2Token: topics.2, + from: topics.3, + to: data.0, + amount: data.1, + extraData: data.2, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + ::tokenize( + &self.to, + ), + as alloy_sol_types::SolType>::tokenize(&self.amount), + ::tokenize( + &self.extraData, + ), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + ( + Self::SIGNATURE_HASH.into(), + self.l1Token.clone(), + self.l2Token.clone(), + self.from.clone(), + ) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.l1Token, + ); + out[2usize] = ::encode_topic( + &self.l2Token, + ); + out[3usize] = ::encode_topic( + &self.from, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for DepositFinalized { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&DepositFinalized> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &DepositFinalized) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `ERC20BridgeFinalized(address,address,address,address,uint256,bytes)` and selector `0xd59c65b35445225835c83f50b6ede06a7be047d22e357073e250d9af537518cd`. +```solidity +event ERC20BridgeFinalized(address indexed localToken, address indexed remoteToken, address indexed from, address to, uint256 amount, bytes extraData); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct ERC20BridgeFinalized { + #[allow(missing_docs)] + pub localToken: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub remoteToken: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub from: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub amount: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub extraData: alloy::sol_types::private::Bytes, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for ERC20BridgeFinalized { + type DataTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Bytes, + ); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "ERC20BridgeFinalized(address,address,address,address,uint256,bytes)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 213u8, 156u8, 101u8, 179u8, 84u8, 69u8, 34u8, 88u8, 53u8, 200u8, 63u8, + 80u8, 182u8, 237u8, 224u8, 106u8, 123u8, 224u8, 71u8, 210u8, 46u8, 53u8, + 112u8, 115u8, 226u8, 80u8, 217u8, 175u8, 83u8, 117u8, 24u8, 205u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + localToken: topics.1, + remoteToken: topics.2, + from: topics.3, + to: data.0, + amount: data.1, + extraData: data.2, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + ::tokenize( + &self.to, + ), + as alloy_sol_types::SolType>::tokenize(&self.amount), + ::tokenize( + &self.extraData, + ), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + ( + Self::SIGNATURE_HASH.into(), + self.localToken.clone(), + self.remoteToken.clone(), + self.from.clone(), + ) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.localToken, + ); + out[2usize] = ::encode_topic( + &self.remoteToken, + ); + out[3usize] = ::encode_topic( + &self.from, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for ERC20BridgeFinalized { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&ERC20BridgeFinalized> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &ERC20BridgeFinalized) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `ERC20BridgeInitiated(address,address,address,address,uint256,bytes)` and selector `0x7ff126db8024424bbfd9826e8ab82ff59136289ea440b04b39a0df1b03b9cabf`. +```solidity +event ERC20BridgeInitiated(address indexed localToken, address indexed remoteToken, address indexed from, address to, uint256 amount, bytes extraData); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct ERC20BridgeInitiated { + #[allow(missing_docs)] + pub localToken: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub remoteToken: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub from: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub amount: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub extraData: alloy::sol_types::private::Bytes, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for ERC20BridgeInitiated { + type DataTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Bytes, + ); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "ERC20BridgeInitiated(address,address,address,address,uint256,bytes)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 127u8, 241u8, 38u8, 219u8, 128u8, 36u8, 66u8, 75u8, 191u8, 217u8, 130u8, + 110u8, 138u8, 184u8, 47u8, 245u8, 145u8, 54u8, 40u8, 158u8, 164u8, 64u8, + 176u8, 75u8, 57u8, 160u8, 223u8, 27u8, 3u8, 185u8, 202u8, 191u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + localToken: topics.1, + remoteToken: topics.2, + from: topics.3, + to: data.0, + amount: data.1, + extraData: data.2, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + ::tokenize( + &self.to, + ), + as alloy_sol_types::SolType>::tokenize(&self.amount), + ::tokenize( + &self.extraData, + ), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + ( + Self::SIGNATURE_HASH.into(), + self.localToken.clone(), + self.remoteToken.clone(), + self.from.clone(), + ) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.localToken, + ); + out[2usize] = ::encode_topic( + &self.remoteToken, + ); + out[3usize] = ::encode_topic( + &self.from, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for ERC20BridgeInitiated { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&ERC20BridgeInitiated> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &ERC20BridgeInitiated) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `ETHBridgeFinalized(address,address,uint256,bytes)` and selector `0x31b2166ff604fc5672ea5df08a78081d2bc6d746cadce880747f3643d819e83d`. +```solidity +event ETHBridgeFinalized(address indexed from, address indexed to, uint256 amount, bytes extraData); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct ETHBridgeFinalized { + #[allow(missing_docs)] + pub from: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub amount: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub extraData: alloy::sol_types::private::Bytes, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for ETHBridgeFinalized { + type DataTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Bytes, + ); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "ETHBridgeFinalized(address,address,uint256,bytes)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 49u8, 178u8, 22u8, 111u8, 246u8, 4u8, 252u8, 86u8, 114u8, 234u8, 93u8, + 240u8, 138u8, 120u8, 8u8, 29u8, 43u8, 198u8, 215u8, 70u8, 202u8, 220u8, + 232u8, 128u8, 116u8, 127u8, 54u8, 67u8, 216u8, 25u8, 232u8, 61u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + from: topics.1, + to: topics.2, + amount: data.0, + extraData: data.1, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.amount), + ::tokenize( + &self.extraData, + ), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.from.clone(), self.to.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.from, + ); + out[2usize] = ::encode_topic( + &self.to, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for ETHBridgeFinalized { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<ÐBridgeFinalized> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: ÐBridgeFinalized) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `ETHBridgeInitiated(address,address,uint256,bytes)` and selector `0x2849b43074093a05396b6f2a937dee8565b15a48a7b3d4bffb732a5017380af5`. +```solidity +event ETHBridgeInitiated(address indexed from, address indexed to, uint256 amount, bytes extraData); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct ETHBridgeInitiated { + #[allow(missing_docs)] + pub from: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub amount: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub extraData: alloy::sol_types::private::Bytes, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for ETHBridgeInitiated { + type DataTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Bytes, + ); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "ETHBridgeInitiated(address,address,uint256,bytes)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 40u8, 73u8, 180u8, 48u8, 116u8, 9u8, 58u8, 5u8, 57u8, 107u8, 111u8, 42u8, + 147u8, 125u8, 238u8, 133u8, 101u8, 177u8, 90u8, 72u8, 167u8, 179u8, + 212u8, 191u8, 251u8, 115u8, 42u8, 80u8, 23u8, 56u8, 10u8, 245u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + from: topics.1, + to: topics.2, + amount: data.0, + extraData: data.1, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.amount), + ::tokenize( + &self.extraData, + ), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.from.clone(), self.to.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.from, + ); + out[2usize] = ::encode_topic( + &self.to, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for ETHBridgeInitiated { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<ÐBridgeInitiated> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: ÐBridgeInitiated) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `Initialized(uint8)` and selector `0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498`. +```solidity +event Initialized(uint8 version); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct Initialized { + #[allow(missing_docs)] + pub version: u8, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for Initialized { + type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<8>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,); + const SIGNATURE: &'static str = "Initialized(uint8)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 127u8, 38u8, 184u8, 63u8, 249u8, 110u8, 31u8, 43u8, 106u8, 104u8, 47u8, + 19u8, 56u8, 82u8, 246u8, 121u8, 138u8, 9u8, 196u8, 101u8, 218u8, 149u8, + 146u8, 20u8, 96u8, 206u8, 251u8, 56u8, 71u8, 64u8, 36u8, 152u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { version: data.0 } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.version), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(),) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for Initialized { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&Initialized> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &Initialized) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `WithdrawalInitiated(address,address,address,address,uint256,bytes)` and selector `0x73d170910aba9e6d50b102db522b1dbcd796216f5128b445aa2135272886497e`. +```solidity +event WithdrawalInitiated(address indexed l1Token, address indexed l2Token, address indexed from, address to, uint256 amount, bytes extraData); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct WithdrawalInitiated { + #[allow(missing_docs)] + pub l1Token: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub l2Token: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub from: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub amount: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub extraData: alloy::sol_types::private::Bytes, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for WithdrawalInitiated { + type DataTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Bytes, + ); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "WithdrawalInitiated(address,address,address,address,uint256,bytes)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 115u8, 209u8, 112u8, 145u8, 10u8, 186u8, 158u8, 109u8, 80u8, 177u8, 2u8, + 219u8, 82u8, 43u8, 29u8, 188u8, 215u8, 150u8, 33u8, 111u8, 81u8, 40u8, + 180u8, 69u8, 170u8, 33u8, 53u8, 39u8, 40u8, 134u8, 73u8, 126u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + l1Token: topics.1, + l2Token: topics.2, + from: topics.3, + to: data.0, + amount: data.1, + extraData: data.2, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + ::tokenize( + &self.to, + ), + as alloy_sol_types::SolType>::tokenize(&self.amount), + ::tokenize( + &self.extraData, + ), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + ( + Self::SIGNATURE_HASH.into(), + self.l1Token.clone(), + self.l2Token.clone(), + self.from.clone(), + ) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.l1Token, + ); + out[2usize] = ::encode_topic( + &self.l2Token, + ); + out[3usize] = ::encode_topic( + &self.from, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for WithdrawalInitiated { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&WithdrawalInitiated> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &WithdrawalInitiated) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + /**Constructor`. +```solidity +constructor(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct constructorCall {} + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: constructorCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for constructorCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolConstructor for constructorCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `MESSENGER()` and selector `0x927ede2d`. +```solidity +function MESSENGER() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct MESSENGERCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`MESSENGER()`](MESSENGERCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct MESSENGERReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: MESSENGERCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for MESSENGERCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: MESSENGERReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for MESSENGERReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for MESSENGERCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "MESSENGER()"; + const SELECTOR: [u8; 4] = [146u8, 126u8, 222u8, 45u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: MESSENGERReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: MESSENGERReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `OTHER_BRIDGE()` and selector `0x7f46ddb2`. +```solidity +function OTHER_BRIDGE() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct OTHER_BRIDGECall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`OTHER_BRIDGE()`](OTHER_BRIDGECall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct OTHER_BRIDGEReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: OTHER_BRIDGECall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for OTHER_BRIDGECall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: OTHER_BRIDGEReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for OTHER_BRIDGEReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for OTHER_BRIDGECall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "OTHER_BRIDGE()"; + const SELECTOR: [u8; 4] = [127u8, 70u8, 221u8, 178u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: OTHER_BRIDGEReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: OTHER_BRIDGEReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `bridgeERC20(address,address,uint256,uint32,bytes)` and selector `0x87087623`. +```solidity +function bridgeERC20(address _localToken, address _remoteToken, uint256 _amount, uint32 _minGasLimit, bytes memory _extraData) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct bridgeERC20Call { + #[allow(missing_docs)] + pub _localToken: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _remoteToken: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _amount: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _minGasLimit: u32, + #[allow(missing_docs)] + pub _extraData: alloy::sol_types::private::Bytes, + } + ///Container type for the return parameters of the [`bridgeERC20(address,address,uint256,uint32,bytes)`](bridgeERC20Call) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct bridgeERC20Return {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<32>, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + u32, + alloy::sol_types::private::Bytes, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: bridgeERC20Call) -> Self { + ( + value._localToken, + value._remoteToken, + value._amount, + value._minGasLimit, + value._extraData, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for bridgeERC20Call { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _localToken: tuple.0, + _remoteToken: tuple.1, + _amount: tuple.2, + _minGasLimit: tuple.3, + _extraData: tuple.4, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: bridgeERC20Return) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for bridgeERC20Return { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl bridgeERC20Return { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for bridgeERC20Call { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<32>, + alloy::sol_types::sol_data::Bytes, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bridgeERC20Return; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "bridgeERC20(address,address,uint256,uint32,bytes)"; + const SELECTOR: [u8; 4] = [135u8, 8u8, 118u8, 35u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._localToken, + ), + ::tokenize( + &self._remoteToken, + ), + as alloy_sol_types::SolType>::tokenize(&self._amount), + as alloy_sol_types::SolType>::tokenize(&self._minGasLimit), + ::tokenize( + &self._extraData, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + bridgeERC20Return::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `bridgeERC20To(address,address,address,uint256,uint32,bytes)` and selector `0x540abf73`. +```solidity +function bridgeERC20To(address _localToken, address _remoteToken, address _to, uint256 _amount, uint32 _minGasLimit, bytes memory _extraData) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct bridgeERC20ToCall { + #[allow(missing_docs)] + pub _localToken: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _remoteToken: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _amount: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _minGasLimit: u32, + #[allow(missing_docs)] + pub _extraData: alloy::sol_types::private::Bytes, + } + ///Container type for the return parameters of the [`bridgeERC20To(address,address,address,uint256,uint32,bytes)`](bridgeERC20ToCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct bridgeERC20ToReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<32>, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + u32, + alloy::sol_types::private::Bytes, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: bridgeERC20ToCall) -> Self { + ( + value._localToken, + value._remoteToken, + value._to, + value._amount, + value._minGasLimit, + value._extraData, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for bridgeERC20ToCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _localToken: tuple.0, + _remoteToken: tuple.1, + _to: tuple.2, + _amount: tuple.3, + _minGasLimit: tuple.4, + _extraData: tuple.5, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: bridgeERC20ToReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for bridgeERC20ToReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl bridgeERC20ToReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for bridgeERC20ToCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<32>, + alloy::sol_types::sol_data::Bytes, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bridgeERC20ToReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "bridgeERC20To(address,address,address,uint256,uint32,bytes)"; + const SELECTOR: [u8; 4] = [84u8, 10u8, 191u8, 115u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._localToken, + ), + ::tokenize( + &self._remoteToken, + ), + ::tokenize( + &self._to, + ), + as alloy_sol_types::SolType>::tokenize(&self._amount), + as alloy_sol_types::SolType>::tokenize(&self._minGasLimit), + ::tokenize( + &self._extraData, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + bridgeERC20ToReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `bridgeETH(uint32,bytes)` and selector `0x09fc8843`. +```solidity +function bridgeETH(uint32 _minGasLimit, bytes memory _extraData) external payable; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct bridgeETHCall { + #[allow(missing_docs)] + pub _minGasLimit: u32, + #[allow(missing_docs)] + pub _extraData: alloy::sol_types::private::Bytes, + } + ///Container type for the return parameters of the [`bridgeETH(uint32,bytes)`](bridgeETHCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct bridgeETHReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Uint<32>, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u32, alloy::sol_types::private::Bytes); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: bridgeETHCall) -> Self { + (value._minGasLimit, value._extraData) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for bridgeETHCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _minGasLimit: tuple.0, + _extraData: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: bridgeETHReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for bridgeETHReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl bridgeETHReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for bridgeETHCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Uint<32>, + alloy::sol_types::sol_data::Bytes, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bridgeETHReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "bridgeETH(uint32,bytes)"; + const SELECTOR: [u8; 4] = [9u8, 252u8, 136u8, 67u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._minGasLimit), + ::tokenize( + &self._extraData, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + bridgeETHReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `bridgeETHTo(address,uint32,bytes)` and selector `0xe11013dd`. +```solidity +function bridgeETHTo(address _to, uint32 _minGasLimit, bytes memory _extraData) external payable; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct bridgeETHToCall { + #[allow(missing_docs)] + pub _to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _minGasLimit: u32, + #[allow(missing_docs)] + pub _extraData: alloy::sol_types::private::Bytes, + } + ///Container type for the return parameters of the [`bridgeETHTo(address,uint32,bytes)`](bridgeETHToCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct bridgeETHToReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<32>, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + u32, + alloy::sol_types::private::Bytes, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: bridgeETHToCall) -> Self { + (value._to, value._minGasLimit, value._extraData) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for bridgeETHToCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _to: tuple.0, + _minGasLimit: tuple.1, + _extraData: tuple.2, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: bridgeETHToReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for bridgeETHToReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl bridgeETHToReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for bridgeETHToCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<32>, + alloy::sol_types::sol_data::Bytes, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bridgeETHToReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "bridgeETHTo(address,uint32,bytes)"; + const SELECTOR: [u8; 4] = [225u8, 16u8, 19u8, 221u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._to, + ), + as alloy_sol_types::SolType>::tokenize(&self._minGasLimit), + ::tokenize( + &self._extraData, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + bridgeETHToReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `deposits(address,address)` and selector `0x8f601f66`. +```solidity +function deposits(address, address) external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct depositsCall { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _1: alloy::sol_types::private::Address, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`deposits(address,address)`](depositsCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct depositsReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: depositsCall) -> Self { + (value._0, value._1) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for depositsCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0, _1: tuple.1 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: depositsReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for depositsReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for depositsCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "deposits(address,address)"; + const SELECTOR: [u8; 4] = [143u8, 96u8, 31u8, 102u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._0, + ), + ::tokenize( + &self._1, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: depositsReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: depositsReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `finalizeBridgeERC20(address,address,address,address,uint256,bytes)` and selector `0x0166a07a`. +```solidity +function finalizeBridgeERC20(address _localToken, address _remoteToken, address _from, address _to, uint256 _amount, bytes memory _extraData) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct finalizeBridgeERC20Call { + #[allow(missing_docs)] + pub _localToken: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _remoteToken: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _from: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _amount: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _extraData: alloy::sol_types::private::Bytes, + } + ///Container type for the return parameters of the [`finalizeBridgeERC20(address,address,address,address,uint256,bytes)`](finalizeBridgeERC20Call) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct finalizeBridgeERC20Return {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::Bytes, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: finalizeBridgeERC20Call) -> Self { + ( + value._localToken, + value._remoteToken, + value._from, + value._to, + value._amount, + value._extraData, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for finalizeBridgeERC20Call { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _localToken: tuple.0, + _remoteToken: tuple.1, + _from: tuple.2, + _to: tuple.3, + _amount: tuple.4, + _extraData: tuple.5, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: finalizeBridgeERC20Return) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for finalizeBridgeERC20Return { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl finalizeBridgeERC20Return { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for finalizeBridgeERC20Call { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Bytes, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = finalizeBridgeERC20Return; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "finalizeBridgeERC20(address,address,address,address,uint256,bytes)"; + const SELECTOR: [u8; 4] = [1u8, 102u8, 160u8, 122u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._localToken, + ), + ::tokenize( + &self._remoteToken, + ), + ::tokenize( + &self._from, + ), + ::tokenize( + &self._to, + ), + as alloy_sol_types::SolType>::tokenize(&self._amount), + ::tokenize( + &self._extraData, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + finalizeBridgeERC20Return::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `finalizeBridgeETH(address,address,uint256,bytes)` and selector `0x1635f5fd`. +```solidity +function finalizeBridgeETH(address _from, address _to, uint256 _amount, bytes memory _extraData) external payable; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct finalizeBridgeETHCall { + #[allow(missing_docs)] + pub _from: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _amount: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _extraData: alloy::sol_types::private::Bytes, + } + ///Container type for the return parameters of the [`finalizeBridgeETH(address,address,uint256,bytes)`](finalizeBridgeETHCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct finalizeBridgeETHReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::Bytes, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: finalizeBridgeETHCall) -> Self { + (value._from, value._to, value._amount, value._extraData) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for finalizeBridgeETHCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _from: tuple.0, + _to: tuple.1, + _amount: tuple.2, + _extraData: tuple.3, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: finalizeBridgeETHReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for finalizeBridgeETHReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl finalizeBridgeETHReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for finalizeBridgeETHCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Bytes, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = finalizeBridgeETHReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "finalizeBridgeETH(address,address,uint256,bytes)"; + const SELECTOR: [u8; 4] = [22u8, 53u8, 245u8, 253u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._from, + ), + ::tokenize( + &self._to, + ), + as alloy_sol_types::SolType>::tokenize(&self._amount), + ::tokenize( + &self._extraData, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + finalizeBridgeETHReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `initialize(address)` and selector `0xc4d66de8`. +```solidity +function initialize(address _otherBridge) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct initializeCall { + #[allow(missing_docs)] + pub _otherBridge: alloy::sol_types::private::Address, + } + ///Container type for the return parameters of the [`initialize(address)`](initializeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct initializeReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: initializeCall) -> Self { + (value._otherBridge,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for initializeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _otherBridge: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: initializeReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for initializeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl initializeReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for initializeCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = initializeReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "initialize(address)"; + const SELECTOR: [u8; 4] = [196u8, 214u8, 109u8, 232u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._otherBridge, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + initializeReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `l1TokenBridge()` and selector `0x36c717c1`. +```solidity +function l1TokenBridge() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct l1TokenBridgeCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`l1TokenBridge()`](l1TokenBridgeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct l1TokenBridgeReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: l1TokenBridgeCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for l1TokenBridgeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: l1TokenBridgeReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for l1TokenBridgeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for l1TokenBridgeCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "l1TokenBridge()"; + const SELECTOR: [u8; 4] = [54u8, 199u8, 23u8, 193u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: l1TokenBridgeReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: l1TokenBridgeReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `messenger()` and selector `0x3cb747bf`. +```solidity +function messenger() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct messengerCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`messenger()`](messengerCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct messengerReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: messengerCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for messengerCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: messengerReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for messengerReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for messengerCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "messenger()"; + const SELECTOR: [u8; 4] = [60u8, 183u8, 71u8, 191u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: messengerReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: messengerReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `otherBridge()` and selector `0xc89701a2`. +```solidity +function otherBridge() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct otherBridgeCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`otherBridge()`](otherBridgeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct otherBridgeReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: otherBridgeCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for otherBridgeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: otherBridgeReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for otherBridgeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for otherBridgeCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "otherBridge()"; + const SELECTOR: [u8; 4] = [200u8, 151u8, 1u8, 162u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: otherBridgeReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: otherBridgeReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `paused()` and selector `0x5c975abb`. +```solidity +function paused() external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct pausedCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`paused()`](pausedCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct pausedReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: pausedCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for pausedCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: pausedReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for pausedReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for pausedCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "paused()"; + const SELECTOR: [u8; 4] = [92u8, 151u8, 90u8, 187u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: pausedReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: pausedReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `version()` and selector `0x54fd4d50`. +```solidity +function version() external pure returns (string memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`version()`](versionCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for versionCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::String; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "version()"; + const SELECTOR: [u8; 4] = [84u8, 253u8, 77u8, 80u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `withdraw(address,uint256,uint32,bytes)` and selector `0x32b7006d`. +```solidity +function withdraw(address _l2Token, uint256 _amount, uint32 _minGasLimit, bytes memory _extraData) external payable; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct withdrawCall { + #[allow(missing_docs)] + pub _l2Token: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _amount: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _minGasLimit: u32, + #[allow(missing_docs)] + pub _extraData: alloy::sol_types::private::Bytes, + } + ///Container type for the return parameters of the [`withdraw(address,uint256,uint32,bytes)`](withdrawCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct withdrawReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<32>, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + u32, + alloy::sol_types::private::Bytes, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: withdrawCall) -> Self { + (value._l2Token, value._amount, value._minGasLimit, value._extraData) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for withdrawCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _l2Token: tuple.0, + _amount: tuple.1, + _minGasLimit: tuple.2, + _extraData: tuple.3, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: withdrawReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for withdrawReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl withdrawReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for withdrawCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<32>, + alloy::sol_types::sol_data::Bytes, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = withdrawReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "withdraw(address,uint256,uint32,bytes)"; + const SELECTOR: [u8; 4] = [50u8, 183u8, 0u8, 109u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._l2Token, + ), + as alloy_sol_types::SolType>::tokenize(&self._amount), + as alloy_sol_types::SolType>::tokenize(&self._minGasLimit), + ::tokenize( + &self._extraData, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + withdrawReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `withdrawTo(address,address,uint256,uint32,bytes)` and selector `0xa3a79548`. +```solidity +function withdrawTo(address _l2Token, address _to, uint256 _amount, uint32 _minGasLimit, bytes memory _extraData) external payable; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct withdrawToCall { + #[allow(missing_docs)] + pub _l2Token: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _amount: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _minGasLimit: u32, + #[allow(missing_docs)] + pub _extraData: alloy::sol_types::private::Bytes, + } + ///Container type for the return parameters of the [`withdrawTo(address,address,uint256,uint32,bytes)`](withdrawToCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct withdrawToReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<32>, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + u32, + alloy::sol_types::private::Bytes, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: withdrawToCall) -> Self { + ( + value._l2Token, + value._to, + value._amount, + value._minGasLimit, + value._extraData, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for withdrawToCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _l2Token: tuple.0, + _to: tuple.1, + _amount: tuple.2, + _minGasLimit: tuple.3, + _extraData: tuple.4, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: withdrawToReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for withdrawToReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl withdrawToReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for withdrawToCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<32>, + alloy::sol_types::sol_data::Bytes, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = withdrawToReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "withdrawTo(address,address,uint256,uint32,bytes)"; + const SELECTOR: [u8; 4] = [163u8, 167u8, 149u8, 72u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._l2Token, + ), + ::tokenize( + &self._to, + ), + as alloy_sol_types::SolType>::tokenize(&self._amount), + as alloy_sol_types::SolType>::tokenize(&self._minGasLimit), + ::tokenize( + &self._extraData, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + withdrawToReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + ///Container for all the [`L2StandardBridge`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum L2StandardBridgeCalls { + #[allow(missing_docs)] + MESSENGER(MESSENGERCall), + #[allow(missing_docs)] + OTHER_BRIDGE(OTHER_BRIDGECall), + #[allow(missing_docs)] + bridgeERC20(bridgeERC20Call), + #[allow(missing_docs)] + bridgeERC20To(bridgeERC20ToCall), + #[allow(missing_docs)] + bridgeETH(bridgeETHCall), + #[allow(missing_docs)] + bridgeETHTo(bridgeETHToCall), + #[allow(missing_docs)] + deposits(depositsCall), + #[allow(missing_docs)] + finalizeBridgeERC20(finalizeBridgeERC20Call), + #[allow(missing_docs)] + finalizeBridgeETH(finalizeBridgeETHCall), + #[allow(missing_docs)] + initialize(initializeCall), + #[allow(missing_docs)] + l1TokenBridge(l1TokenBridgeCall), + #[allow(missing_docs)] + messenger(messengerCall), + #[allow(missing_docs)] + otherBridge(otherBridgeCall), + #[allow(missing_docs)] + paused(pausedCall), + #[allow(missing_docs)] + version(versionCall), + #[allow(missing_docs)] + withdraw(withdrawCall), + #[allow(missing_docs)] + withdrawTo(withdrawToCall), + } + impl L2StandardBridgeCalls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [1u8, 102u8, 160u8, 122u8], + [9u8, 252u8, 136u8, 67u8], + [22u8, 53u8, 245u8, 253u8], + [50u8, 183u8, 0u8, 109u8], + [54u8, 199u8, 23u8, 193u8], + [60u8, 183u8, 71u8, 191u8], + [84u8, 10u8, 191u8, 115u8], + [84u8, 253u8, 77u8, 80u8], + [92u8, 151u8, 90u8, 187u8], + [127u8, 70u8, 221u8, 178u8], + [135u8, 8u8, 118u8, 35u8], + [143u8, 96u8, 31u8, 102u8], + [146u8, 126u8, 222u8, 45u8], + [163u8, 167u8, 149u8, 72u8], + [196u8, 214u8, 109u8, 232u8], + [200u8, 151u8, 1u8, 162u8], + [225u8, 16u8, 19u8, 221u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(finalizeBridgeERC20), + ::core::stringify!(bridgeETH), + ::core::stringify!(finalizeBridgeETH), + ::core::stringify!(withdraw), + ::core::stringify!(l1TokenBridge), + ::core::stringify!(messenger), + ::core::stringify!(bridgeERC20To), + ::core::stringify!(version), + ::core::stringify!(paused), + ::core::stringify!(OTHER_BRIDGE), + ::core::stringify!(bridgeERC20), + ::core::stringify!(deposits), + ::core::stringify!(MESSENGER), + ::core::stringify!(withdrawTo), + ::core::stringify!(initialize), + ::core::stringify!(otherBridge), + ::core::stringify!(bridgeETHTo), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for L2StandardBridgeCalls { + const NAME: &'static str = "L2StandardBridgeCalls"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 17usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::MESSENGER(_) => { + ::SELECTOR + } + Self::OTHER_BRIDGE(_) => { + ::SELECTOR + } + Self::bridgeERC20(_) => { + ::SELECTOR + } + Self::bridgeERC20To(_) => { + ::SELECTOR + } + Self::bridgeETH(_) => { + ::SELECTOR + } + Self::bridgeETHTo(_) => { + ::SELECTOR + } + Self::deposits(_) => ::SELECTOR, + Self::finalizeBridgeERC20(_) => { + ::SELECTOR + } + Self::finalizeBridgeETH(_) => { + ::SELECTOR + } + Self::initialize(_) => { + ::SELECTOR + } + Self::l1TokenBridge(_) => { + ::SELECTOR + } + Self::messenger(_) => { + ::SELECTOR + } + Self::otherBridge(_) => { + ::SELECTOR + } + Self::paused(_) => ::SELECTOR, + Self::version(_) => ::SELECTOR, + Self::withdraw(_) => ::SELECTOR, + Self::withdrawTo(_) => { + ::SELECTOR + } + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn finalizeBridgeERC20( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L2StandardBridgeCalls::finalizeBridgeERC20) + } + finalizeBridgeERC20 + }, + { + fn bridgeETH( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(L2StandardBridgeCalls::bridgeETH) + } + bridgeETH + }, + { + fn finalizeBridgeETH( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L2StandardBridgeCalls::finalizeBridgeETH) + } + finalizeBridgeETH + }, + { + fn withdraw( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(L2StandardBridgeCalls::withdraw) + } + withdraw + }, + { + fn l1TokenBridge( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L2StandardBridgeCalls::l1TokenBridge) + } + l1TokenBridge + }, + { + fn messenger( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(L2StandardBridgeCalls::messenger) + } + messenger + }, + { + fn bridgeERC20To( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L2StandardBridgeCalls::bridgeERC20To) + } + bridgeERC20To + }, + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(L2StandardBridgeCalls::version) + } + version + }, + { + fn paused( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(L2StandardBridgeCalls::paused) + } + paused + }, + { + fn OTHER_BRIDGE( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L2StandardBridgeCalls::OTHER_BRIDGE) + } + OTHER_BRIDGE + }, + { + fn bridgeERC20( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L2StandardBridgeCalls::bridgeERC20) + } + bridgeERC20 + }, + { + fn deposits( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(L2StandardBridgeCalls::deposits) + } + deposits + }, + { + fn MESSENGER( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(L2StandardBridgeCalls::MESSENGER) + } + MESSENGER + }, + { + fn withdrawTo( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L2StandardBridgeCalls::withdrawTo) + } + withdrawTo + }, + { + fn initialize( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L2StandardBridgeCalls::initialize) + } + initialize + }, + { + fn otherBridge( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L2StandardBridgeCalls::otherBridge) + } + otherBridge + }, + { + fn bridgeETHTo( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L2StandardBridgeCalls::bridgeETHTo) + } + bridgeETHTo + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn finalizeBridgeERC20( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L2StandardBridgeCalls::finalizeBridgeERC20) + } + finalizeBridgeERC20 + }, + { + fn bridgeETH( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L2StandardBridgeCalls::bridgeETH) + } + bridgeETH + }, + { + fn finalizeBridgeETH( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L2StandardBridgeCalls::finalizeBridgeETH) + } + finalizeBridgeETH + }, + { + fn withdraw( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L2StandardBridgeCalls::withdraw) + } + withdraw + }, + { + fn l1TokenBridge( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L2StandardBridgeCalls::l1TokenBridge) + } + l1TokenBridge + }, + { + fn messenger( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L2StandardBridgeCalls::messenger) + } + messenger + }, + { + fn bridgeERC20To( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L2StandardBridgeCalls::bridgeERC20To) + } + bridgeERC20To + }, + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L2StandardBridgeCalls::version) + } + version + }, + { + fn paused( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L2StandardBridgeCalls::paused) + } + paused + }, + { + fn OTHER_BRIDGE( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L2StandardBridgeCalls::OTHER_BRIDGE) + } + OTHER_BRIDGE + }, + { + fn bridgeERC20( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L2StandardBridgeCalls::bridgeERC20) + } + bridgeERC20 + }, + { + fn deposits( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L2StandardBridgeCalls::deposits) + } + deposits + }, + { + fn MESSENGER( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L2StandardBridgeCalls::MESSENGER) + } + MESSENGER + }, + { + fn withdrawTo( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L2StandardBridgeCalls::withdrawTo) + } + withdrawTo + }, + { + fn initialize( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L2StandardBridgeCalls::initialize) + } + initialize + }, + { + fn otherBridge( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L2StandardBridgeCalls::otherBridge) + } + otherBridge + }, + { + fn bridgeETHTo( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L2StandardBridgeCalls::bridgeETHTo) + } + bridgeETHTo + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::MESSENGER(inner) => { + ::abi_encoded_size(inner) + } + Self::OTHER_BRIDGE(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::bridgeERC20(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::bridgeERC20To(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::bridgeETH(inner) => { + ::abi_encoded_size(inner) + } + Self::bridgeETHTo(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::deposits(inner) => { + ::abi_encoded_size(inner) + } + Self::finalizeBridgeERC20(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::finalizeBridgeETH(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::initialize(inner) => { + ::abi_encoded_size(inner) + } + Self::l1TokenBridge(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::messenger(inner) => { + ::abi_encoded_size(inner) + } + Self::otherBridge(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::paused(inner) => { + ::abi_encoded_size(inner) + } + Self::version(inner) => { + ::abi_encoded_size(inner) + } + Self::withdraw(inner) => { + ::abi_encoded_size(inner) + } + Self::withdrawTo(inner) => { + ::abi_encoded_size(inner) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::MESSENGER(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::OTHER_BRIDGE(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::bridgeERC20(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::bridgeERC20To(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::bridgeETH(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::bridgeETHTo(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::deposits(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::finalizeBridgeERC20(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::finalizeBridgeETH(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::initialize(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::l1TokenBridge(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::messenger(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::otherBridge(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::paused(inner) => { + ::abi_encode_raw(inner, out) + } + Self::version(inner) => { + ::abi_encode_raw(inner, out) + } + Self::withdraw(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::withdrawTo(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + } + } + } + ///Container for all the [`L2StandardBridge`](self) events. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum L2StandardBridgeEvents { + #[allow(missing_docs)] + DepositFinalized(DepositFinalized), + #[allow(missing_docs)] + ERC20BridgeFinalized(ERC20BridgeFinalized), + #[allow(missing_docs)] + ERC20BridgeInitiated(ERC20BridgeInitiated), + #[allow(missing_docs)] + ETHBridgeFinalized(ETHBridgeFinalized), + #[allow(missing_docs)] + ETHBridgeInitiated(ETHBridgeInitiated), + #[allow(missing_docs)] + Initialized(Initialized), + #[allow(missing_docs)] + WithdrawalInitiated(WithdrawalInitiated), + } + impl L2StandardBridgeEvents { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 32usize]] = &[ + [ + 40u8, 73u8, 180u8, 48u8, 116u8, 9u8, 58u8, 5u8, 57u8, 107u8, 111u8, 42u8, + 147u8, 125u8, 238u8, 133u8, 101u8, 177u8, 90u8, 72u8, 167u8, 179u8, + 212u8, 191u8, 251u8, 115u8, 42u8, 80u8, 23u8, 56u8, 10u8, 245u8, + ], + [ + 49u8, 178u8, 22u8, 111u8, 246u8, 4u8, 252u8, 86u8, 114u8, 234u8, 93u8, + 240u8, 138u8, 120u8, 8u8, 29u8, 43u8, 198u8, 215u8, 70u8, 202u8, 220u8, + 232u8, 128u8, 116u8, 127u8, 54u8, 67u8, 216u8, 25u8, 232u8, 61u8, + ], + [ + 115u8, 209u8, 112u8, 145u8, 10u8, 186u8, 158u8, 109u8, 80u8, 177u8, 2u8, + 219u8, 82u8, 43u8, 29u8, 188u8, 215u8, 150u8, 33u8, 111u8, 81u8, 40u8, + 180u8, 69u8, 170u8, 33u8, 53u8, 39u8, 40u8, 134u8, 73u8, 126u8, + ], + [ + 127u8, 38u8, 184u8, 63u8, 249u8, 110u8, 31u8, 43u8, 106u8, 104u8, 47u8, + 19u8, 56u8, 82u8, 246u8, 121u8, 138u8, 9u8, 196u8, 101u8, 218u8, 149u8, + 146u8, 20u8, 96u8, 206u8, 251u8, 56u8, 71u8, 64u8, 36u8, 152u8, + ], + [ + 127u8, 241u8, 38u8, 219u8, 128u8, 36u8, 66u8, 75u8, 191u8, 217u8, 130u8, + 110u8, 138u8, 184u8, 47u8, 245u8, 145u8, 54u8, 40u8, 158u8, 164u8, 64u8, + 176u8, 75u8, 57u8, 160u8, 223u8, 27u8, 3u8, 185u8, 202u8, 191u8, + ], + [ + 176u8, 68u8, 69u8, 35u8, 38u8, 135u8, 23u8, 160u8, 38u8, 152u8, 190u8, + 71u8, 208u8, 128u8, 58u8, 167u8, 70u8, 140u8, 0u8, 172u8, 190u8, 210u8, + 248u8, 189u8, 147u8, 160u8, 69u8, 156u8, 222u8, 97u8, 221u8, 137u8, + ], + [ + 213u8, 156u8, 101u8, 179u8, 84u8, 69u8, 34u8, 88u8, 53u8, 200u8, 63u8, + 80u8, 182u8, 237u8, 224u8, 106u8, 123u8, 224u8, 71u8, 210u8, 46u8, 53u8, + 112u8, 115u8, 226u8, 80u8, 217u8, 175u8, 83u8, 117u8, 24u8, 205u8, + ], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(ETHBridgeInitiated), + ::core::stringify!(ETHBridgeFinalized), + ::core::stringify!(WithdrawalInitiated), + ::core::stringify!(Initialized), + ::core::stringify!(ERC20BridgeInitiated), + ::core::stringify!(DepositFinalized), + ::core::stringify!(ERC20BridgeFinalized), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolEventInterface for L2StandardBridgeEvents { + const NAME: &'static str = "L2StandardBridgeEvents"; + const COUNT: usize = 7usize; + fn decode_raw_log( + topics: &[alloy_sol_types::Word], + data: &[u8], + ) -> alloy_sol_types::Result { + match topics.first().copied() { + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::DepositFinalized) + } + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::ERC20BridgeFinalized) + } + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::ERC20BridgeInitiated) + } + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::ETHBridgeFinalized) + } + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::ETHBridgeInitiated) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::Initialized) + } + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::WithdrawalInitiated) + } + _ => { + alloy_sol_types::private::Err(alloy_sol_types::Error::InvalidLog { + name: ::NAME, + log: alloy_sol_types::private::Box::new( + alloy_sol_types::private::LogData::new_unchecked( + topics.to_vec(), + data.to_vec().into(), + ), + ), + }) + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for L2StandardBridgeEvents { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + match self { + Self::DepositFinalized(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::ERC20BridgeFinalized(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::ERC20BridgeInitiated(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::ETHBridgeFinalized(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::ETHBridgeInitiated(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::Initialized(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::WithdrawalInitiated(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + } + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + match self { + Self::DepositFinalized(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::ERC20BridgeFinalized(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::ERC20BridgeInitiated(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::ETHBridgeFinalized(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::ETHBridgeInitiated(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::Initialized(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::WithdrawalInitiated(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`L2StandardBridge`](self) contract instance. + +See the [wrapper's documentation](`L2StandardBridgeInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> L2StandardBridgeInstance { + L2StandardBridgeInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + L2StandardBridgeInstance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + L2StandardBridgeInstance::::deploy_builder(__provider) + } + /**A [`L2StandardBridge`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`L2StandardBridge`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct L2StandardBridgeInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for L2StandardBridgeInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("L2StandardBridgeInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > L2StandardBridgeInstance { + /**Creates a new wrapper around an on-chain [`L2StandardBridge`](self) contract instance. + +See the [wrapper's documentation](`L2StandardBridgeInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl L2StandardBridgeInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> L2StandardBridgeInstance { + L2StandardBridgeInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > L2StandardBridgeInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`MESSENGER`] function. + pub fn MESSENGER(&self) -> alloy_contract::SolCallBuilder<&P, MESSENGERCall, N> { + self.call_builder(&MESSENGERCall) + } + ///Creates a new call builder for the [`OTHER_BRIDGE`] function. + pub fn OTHER_BRIDGE( + &self, + ) -> alloy_contract::SolCallBuilder<&P, OTHER_BRIDGECall, N> { + self.call_builder(&OTHER_BRIDGECall) + } + ///Creates a new call builder for the [`bridgeERC20`] function. + pub fn bridgeERC20( + &self, + _localToken: alloy::sol_types::private::Address, + _remoteToken: alloy::sol_types::private::Address, + _amount: alloy::sol_types::private::primitives::aliases::U256, + _minGasLimit: u32, + _extraData: alloy::sol_types::private::Bytes, + ) -> alloy_contract::SolCallBuilder<&P, bridgeERC20Call, N> { + self.call_builder( + &bridgeERC20Call { + _localToken, + _remoteToken, + _amount, + _minGasLimit, + _extraData, + }, + ) + } + ///Creates a new call builder for the [`bridgeERC20To`] function. + pub fn bridgeERC20To( + &self, + _localToken: alloy::sol_types::private::Address, + _remoteToken: alloy::sol_types::private::Address, + _to: alloy::sol_types::private::Address, + _amount: alloy::sol_types::private::primitives::aliases::U256, + _minGasLimit: u32, + _extraData: alloy::sol_types::private::Bytes, + ) -> alloy_contract::SolCallBuilder<&P, bridgeERC20ToCall, N> { + self.call_builder( + &bridgeERC20ToCall { + _localToken, + _remoteToken, + _to, + _amount, + _minGasLimit, + _extraData, + }, + ) + } + ///Creates a new call builder for the [`bridgeETH`] function. + pub fn bridgeETH( + &self, + _minGasLimit: u32, + _extraData: alloy::sol_types::private::Bytes, + ) -> alloy_contract::SolCallBuilder<&P, bridgeETHCall, N> { + self.call_builder( + &bridgeETHCall { + _minGasLimit, + _extraData, + }, + ) + } + ///Creates a new call builder for the [`bridgeETHTo`] function. + pub fn bridgeETHTo( + &self, + _to: alloy::sol_types::private::Address, + _minGasLimit: u32, + _extraData: alloy::sol_types::private::Bytes, + ) -> alloy_contract::SolCallBuilder<&P, bridgeETHToCall, N> { + self.call_builder( + &bridgeETHToCall { + _to, + _minGasLimit, + _extraData, + }, + ) + } + ///Creates a new call builder for the [`deposits`] function. + pub fn deposits( + &self, + _0: alloy::sol_types::private::Address, + _1: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, depositsCall, N> { + self.call_builder(&depositsCall { _0, _1 }) + } + ///Creates a new call builder for the [`finalizeBridgeERC20`] function. + pub fn finalizeBridgeERC20( + &self, + _localToken: alloy::sol_types::private::Address, + _remoteToken: alloy::sol_types::private::Address, + _from: alloy::sol_types::private::Address, + _to: alloy::sol_types::private::Address, + _amount: alloy::sol_types::private::primitives::aliases::U256, + _extraData: alloy::sol_types::private::Bytes, + ) -> alloy_contract::SolCallBuilder<&P, finalizeBridgeERC20Call, N> { + self.call_builder( + &finalizeBridgeERC20Call { + _localToken, + _remoteToken, + _from, + _to, + _amount, + _extraData, + }, + ) + } + ///Creates a new call builder for the [`finalizeBridgeETH`] function. + pub fn finalizeBridgeETH( + &self, + _from: alloy::sol_types::private::Address, + _to: alloy::sol_types::private::Address, + _amount: alloy::sol_types::private::primitives::aliases::U256, + _extraData: alloy::sol_types::private::Bytes, + ) -> alloy_contract::SolCallBuilder<&P, finalizeBridgeETHCall, N> { + self.call_builder( + &finalizeBridgeETHCall { + _from, + _to, + _amount, + _extraData, + }, + ) + } + ///Creates a new call builder for the [`initialize`] function. + pub fn initialize( + &self, + _otherBridge: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, initializeCall, N> { + self.call_builder(&initializeCall { _otherBridge }) + } + ///Creates a new call builder for the [`l1TokenBridge`] function. + pub fn l1TokenBridge( + &self, + ) -> alloy_contract::SolCallBuilder<&P, l1TokenBridgeCall, N> { + self.call_builder(&l1TokenBridgeCall) + } + ///Creates a new call builder for the [`messenger`] function. + pub fn messenger(&self) -> alloy_contract::SolCallBuilder<&P, messengerCall, N> { + self.call_builder(&messengerCall) + } + ///Creates a new call builder for the [`otherBridge`] function. + pub fn otherBridge( + &self, + ) -> alloy_contract::SolCallBuilder<&P, otherBridgeCall, N> { + self.call_builder(&otherBridgeCall) + } + ///Creates a new call builder for the [`paused`] function. + pub fn paused(&self) -> alloy_contract::SolCallBuilder<&P, pausedCall, N> { + self.call_builder(&pausedCall) + } + ///Creates a new call builder for the [`version`] function. + pub fn version(&self) -> alloy_contract::SolCallBuilder<&P, versionCall, N> { + self.call_builder(&versionCall) + } + ///Creates a new call builder for the [`withdraw`] function. + pub fn withdraw( + &self, + _l2Token: alloy::sol_types::private::Address, + _amount: alloy::sol_types::private::primitives::aliases::U256, + _minGasLimit: u32, + _extraData: alloy::sol_types::private::Bytes, + ) -> alloy_contract::SolCallBuilder<&P, withdrawCall, N> { + self.call_builder( + &withdrawCall { + _l2Token, + _amount, + _minGasLimit, + _extraData, + }, + ) + } + ///Creates a new call builder for the [`withdrawTo`] function. + pub fn withdrawTo( + &self, + _l2Token: alloy::sol_types::private::Address, + _to: alloy::sol_types::private::Address, + _amount: alloy::sol_types::private::primitives::aliases::U256, + _minGasLimit: u32, + _extraData: alloy::sol_types::private::Bytes, + ) -> alloy_contract::SolCallBuilder<&P, withdrawToCall, N> { + self.call_builder( + &withdrawToCall { + _l2Token, + _to, + _amount, + _minGasLimit, + _extraData, + }, + ) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > L2StandardBridgeInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + ///Creates a new event filter for the [`DepositFinalized`] event. + pub fn DepositFinalized_filter( + &self, + ) -> alloy_contract::Event<&P, DepositFinalized, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`ERC20BridgeFinalized`] event. + pub fn ERC20BridgeFinalized_filter( + &self, + ) -> alloy_contract::Event<&P, ERC20BridgeFinalized, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`ERC20BridgeInitiated`] event. + pub fn ERC20BridgeInitiated_filter( + &self, + ) -> alloy_contract::Event<&P, ERC20BridgeInitiated, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`ETHBridgeFinalized`] event. + pub fn ETHBridgeFinalized_filter( + &self, + ) -> alloy_contract::Event<&P, ETHBridgeFinalized, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`ETHBridgeInitiated`] event. + pub fn ETHBridgeInitiated_filter( + &self, + ) -> alloy_contract::Event<&P, ETHBridgeInitiated, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`Initialized`] event. + pub fn Initialized_filter(&self) -> alloy_contract::Event<&P, Initialized, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`WithdrawalInitiated`] event. + pub fn WithdrawalInitiated_filter( + &self, + ) -> alloy_contract::Event<&P, WithdrawalInitiated, N> { + self.event_filter::() + } + } +} diff --git a/bindings/rust/src/l2_standard_bridge_interop.rs b/bindings/rust/src/l2_standard_bridge_interop.rs new file mode 100644 index 000000000..7fa2f7bf1 --- /dev/null +++ b/bindings/rust/src/l2_standard_bridge_interop.rs @@ -0,0 +1,6926 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface L2StandardBridgeInterop { + error InvalidDecimals(); + error InvalidLegacyERC20Address(); + error InvalidSuperchainERC20Address(); + error InvalidTokenPair(); + + event Converted(address indexed from, address indexed to, address indexed caller, uint256 amount); + event DepositFinalized(address indexed l1Token, address indexed l2Token, address indexed from, address to, uint256 amount, bytes extraData); + event ERC20BridgeFinalized(address indexed localToken, address indexed remoteToken, address indexed from, address to, uint256 amount, bytes extraData); + event ERC20BridgeInitiated(address indexed localToken, address indexed remoteToken, address indexed from, address to, uint256 amount, bytes extraData); + event ETHBridgeFinalized(address indexed from, address indexed to, uint256 amount, bytes extraData); + event ETHBridgeInitiated(address indexed from, address indexed to, uint256 amount, bytes extraData); + event Initialized(uint8 version); + event WithdrawalInitiated(address indexed l1Token, address indexed l2Token, address indexed from, address to, uint256 amount, bytes extraData); + + receive() external payable; + + function MESSENGER() external view returns (address); + function OTHER_BRIDGE() external view returns (address); + function bridgeERC20(address _localToken, address _remoteToken, uint256 _amount, uint32 _minGasLimit, bytes memory _extraData) external; + function bridgeERC20To(address _localToken, address _remoteToken, address _to, uint256 _amount, uint32 _minGasLimit, bytes memory _extraData) external; + function bridgeETH(uint32 _minGasLimit, bytes memory _extraData) external payable; + function bridgeETHTo(address _to, uint32 _minGasLimit, bytes memory _extraData) external payable; + function convert(address _from, address _to, uint256 _amount) external; + function deposits(address, address) external view returns (uint256); + function finalizeBridgeERC20(address _localToken, address _remoteToken, address _from, address _to, uint256 _amount, bytes memory _extraData) external; + function finalizeBridgeETH(address _from, address _to, uint256 _amount, bytes memory _extraData) external payable; + function initialize(address _otherBridge) external; + function l1TokenBridge() external view returns (address); + function messenger() external view returns (address); + function otherBridge() external view returns (address); + function paused() external view returns (bool); + function version() external pure returns (string memory); + function withdraw(address _l2Token, uint256 _amount, uint32 _minGasLimit, bytes memory _extraData) external payable; + function withdrawTo(address _l2Token, address _to, uint256 _amount, uint32 _minGasLimit, bytes memory _extraData) external payable; +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "receive", + "stateMutability": "payable" + }, + { + "type": "function", + "name": "MESSENGER", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract ICrossDomainMessenger" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "OTHER_BRIDGE", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract StandardBridge" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "bridgeERC20", + "inputs": [ + { + "name": "_localToken", + "type": "address", + "internalType": "address" + }, + { + "name": "_remoteToken", + "type": "address", + "internalType": "address" + }, + { + "name": "_amount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_minGasLimit", + "type": "uint32", + "internalType": "uint32" + }, + { + "name": "_extraData", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "bridgeERC20To", + "inputs": [ + { + "name": "_localToken", + "type": "address", + "internalType": "address" + }, + { + "name": "_remoteToken", + "type": "address", + "internalType": "address" + }, + { + "name": "_to", + "type": "address", + "internalType": "address" + }, + { + "name": "_amount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_minGasLimit", + "type": "uint32", + "internalType": "uint32" + }, + { + "name": "_extraData", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "bridgeETH", + "inputs": [ + { + "name": "_minGasLimit", + "type": "uint32", + "internalType": "uint32" + }, + { + "name": "_extraData", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "bridgeETHTo", + "inputs": [ + { + "name": "_to", + "type": "address", + "internalType": "address" + }, + { + "name": "_minGasLimit", + "type": "uint32", + "internalType": "uint32" + }, + { + "name": "_extraData", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "convert", + "inputs": [ + { + "name": "_from", + "type": "address", + "internalType": "address" + }, + { + "name": "_to", + "type": "address", + "internalType": "address" + }, + { + "name": "_amount", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "deposits", + "inputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + }, + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "finalizeBridgeERC20", + "inputs": [ + { + "name": "_localToken", + "type": "address", + "internalType": "address" + }, + { + "name": "_remoteToken", + "type": "address", + "internalType": "address" + }, + { + "name": "_from", + "type": "address", + "internalType": "address" + }, + { + "name": "_to", + "type": "address", + "internalType": "address" + }, + { + "name": "_amount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_extraData", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "finalizeBridgeETH", + "inputs": [ + { + "name": "_from", + "type": "address", + "internalType": "address" + }, + { + "name": "_to", + "type": "address", + "internalType": "address" + }, + { + "name": "_amount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_extraData", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "initialize", + "inputs": [ + { + "name": "_otherBridge", + "type": "address", + "internalType": "contract StandardBridge" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "l1TokenBridge", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "messenger", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract ICrossDomainMessenger" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "otherBridge", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract StandardBridge" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "paused", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "version", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "withdraw", + "inputs": [ + { + "name": "_l2Token", + "type": "address", + "internalType": "address" + }, + { + "name": "_amount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_minGasLimit", + "type": "uint32", + "internalType": "uint32" + }, + { + "name": "_extraData", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "withdrawTo", + "inputs": [ + { + "name": "_l2Token", + "type": "address", + "internalType": "address" + }, + { + "name": "_to", + "type": "address", + "internalType": "address" + }, + { + "name": "_amount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_minGasLimit", + "type": "uint32", + "internalType": "uint32" + }, + { + "name": "_extraData", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [], + "stateMutability": "payable" + }, + { + "type": "event", + "name": "Converted", + "inputs": [ + { + "name": "from", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "to", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "caller", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "DepositFinalized", + "inputs": [ + { + "name": "l1Token", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "l2Token", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "from", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "to", + "type": "address", + "indexed": false, + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + }, + { + "name": "extraData", + "type": "bytes", + "indexed": false, + "internalType": "bytes" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "ERC20BridgeFinalized", + "inputs": [ + { + "name": "localToken", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "remoteToken", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "from", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "to", + "type": "address", + "indexed": false, + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + }, + { + "name": "extraData", + "type": "bytes", + "indexed": false, + "internalType": "bytes" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "ERC20BridgeInitiated", + "inputs": [ + { + "name": "localToken", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "remoteToken", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "from", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "to", + "type": "address", + "indexed": false, + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + }, + { + "name": "extraData", + "type": "bytes", + "indexed": false, + "internalType": "bytes" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "ETHBridgeFinalized", + "inputs": [ + { + "name": "from", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "to", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + }, + { + "name": "extraData", + "type": "bytes", + "indexed": false, + "internalType": "bytes" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "ETHBridgeInitiated", + "inputs": [ + { + "name": "from", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "to", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + }, + { + "name": "extraData", + "type": "bytes", + "indexed": false, + "internalType": "bytes" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "Initialized", + "inputs": [ + { + "name": "version", + "type": "uint8", + "indexed": false, + "internalType": "uint8" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "WithdrawalInitiated", + "inputs": [ + { + "name": "l1Token", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "l2Token", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "from", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "to", + "type": "address", + "indexed": false, + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + }, + { + "name": "extraData", + "type": "bytes", + "indexed": false, + "internalType": "bytes" + } + ], + "anonymous": false + }, + { + "type": "error", + "name": "InvalidDecimals", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidLegacyERC20Address", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidSuperchainERC20Address", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidTokenPair", + "inputs": [] + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod L2StandardBridgeInterop { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x60806040523480156200001157600080fd5b506200001c62000022565b620000e4565b600054610100900460ff16156200008f5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff9081161015620000e2576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6130d280620000f46000396000f3fe60806040526004361061012d5760003560e01c80635c975abb116100a5578063927ede2d11610074578063c4d66de811610059578063c4d66de8146103ff578063c89701a21461041f578063e11013dd1461044c57600080fd5b8063927ede2d146103c1578063a3a79548146103ec57600080fd5b80635c975abb1461033f5780637f46ddb21461027f578063870876231461035b5780638f601f661461037b57600080fd5b806332b7006d116100fc5780633cb747bf116100e15780633cb747bf146102d0578063540abf73146102fd57806354fd4d501461031d57600080fd5b806332b7006d1461026c57806336c717c11461027f57600080fd5b80630166a07a1461020657806309fc8843146102265780631635f5fd14610239578063248391ff1461024c57600080fd5b366102015761013a61045f565b6101cb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20616e20454f4100000000000000000060648201526084015b60405180910390fd5b6101ff73deaddeaddeaddeaddeaddeaddeaddeaddead000033333462030d406040518060200160405280600081525061049c565b005b600080fd5b34801561021257600080fd5b506101ff610221366004612a20565b610577565b6101ff610234366004612ad1565b610919565b6101ff610247366004612b24565b6109f5565b34801561025857600080fd5b506101ff610267366004612b97565b610e47565b6101ff61027a366004612bd8565b610fe0565b34801561028b57600080fd5b5060045473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b3480156102dc57600080fd5b506003546102a69073ffffffffffffffffffffffffffffffffffffffff1681565b34801561030957600080fd5b506101ff610318366004612c2c565b6110bf565b34801561032957600080fd5b50610332611104565b6040516102c79190612d19565b34801561034b57600080fd5b50604051600081526020016102c7565b34801561036757600080fd5b506101ff610376366004612d2c565b611164565b34801561038757600080fd5b506103b3610396366004612daf565b600260209081526000928352604080842090915290825290205481565b6040519081526020016102c7565b3480156103cd57600080fd5b5060035473ffffffffffffffffffffffffffffffffffffffff166102a6565b6101ff6103fa366004612d2c565b61123d565b34801561040b57600080fd5b506101ff61041a366004612de8565b611281565b34801561042b57600080fd5b506004546102a69073ffffffffffffffffffffffffffffffffffffffff1681565b6101ff61045a366004612e05565b61142a565b600032330361046e5750600190565b333b60170361049657604051602081016040526020600082333c5160e81c62ef010014905090565b50600090565b7fffffffffffffffffffffffff215221522152215221522152215221522153000073ffffffffffffffffffffffffffffffffffffffff8716016104eb576104e68585858585611473565b61056f565b60008673ffffffffffffffffffffffffffffffffffffffff1663c01e1bd66040518163ffffffff1660e01b8152600401602060405180830381865afa158015610538573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061055c9190612e68565b905061056d8782888888888861163d565b505b505050505050565b60035473ffffffffffffffffffffffffffffffffffffffff163314801561064a575060048054600354604080517f6e296e45000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff938416949390921692636e296e459282820192602092908290030181865afa15801561060e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106329190612e68565b73ffffffffffffffffffffffffffffffffffffffff16145b6106fc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604160248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20746865206f7468657220627269646760648201527f6500000000000000000000000000000000000000000000000000000000000000608482015260a4016101c2565b610705876119f6565b15610853576107148787611a58565b6107c6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f5374616e646172644272696467653a2077726f6e672072656d6f746520746f6b60448201527f656e20666f72204f7074696d69736d204d696e7461626c65204552433230206c60648201527f6f63616c20746f6b656e00000000000000000000000000000000000000000000608482015260a4016101c2565b6040517f40c10f1900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8581166004830152602482018590528816906340c10f1990604401600060405180830381600087803b15801561083657600080fd5b505af115801561084a573d6000803e3d6000fd5b505050506108d5565b73ffffffffffffffffffffffffffffffffffffffff8088166000908152600260209081526040808320938a1683529290522054610891908490612eb4565b73ffffffffffffffffffffffffffffffffffffffff8089166000818152600260209081526040808320948c16835293905291909120919091556108d5908585611b78565b61056d878787878787878080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611c4c92505050565b61092161045f565b6109ad576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20616e20454f4100000000000000000060648201526084016101c2565b6109f03333348686868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061147392505050565b505050565b60035473ffffffffffffffffffffffffffffffffffffffff1633148015610ac8575060048054600354604080517f6e296e45000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff938416949390921692636e296e459282820192602092908290030181865afa158015610a8c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ab09190612e68565b73ffffffffffffffffffffffffffffffffffffffff16145b610b7a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604160248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20746865206f7468657220627269646760648201527f6500000000000000000000000000000000000000000000000000000000000000608482015260a4016101c2565b823414610c09576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603a60248201527f5374616e646172644272696467653a20616d6f756e742073656e7420646f657360448201527f206e6f74206d6174636820616d6f756e7420726571756972656400000000000060648201526084016101c2565b3073ffffffffffffffffffffffffffffffffffffffff851603610cae576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f5374616e646172644272696467653a2063616e6e6f742073656e6420746f207360448201527f656c66000000000000000000000000000000000000000000000000000000000060648201526084016101c2565b60035473ffffffffffffffffffffffffffffffffffffffff90811690851603610d59576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f5374616e646172644272696467653a2063616e6e6f742073656e6420746f206d60448201527f657373656e67657200000000000000000000000000000000000000000000000060648201526084016101c2565b610d9b85858585858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611cda92505050565b6000610db8855a8660405180602001604052806000815250611d7b565b90508061056f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f5374616e646172644272696467653a20455448207472616e736665722066616960448201527f6c6564000000000000000000000000000000000000000000000000000000000060648201526084016101c2565b610e518383611d93565b6040517f9dc29fac0000000000000000000000000000000000000000000000000000000081523360048201526024810182905273ffffffffffffffffffffffffffffffffffffffff841690639dc29fac90604401600060405180830381600087803b158015610ebf57600080fd5b505af1158015610ed3573d6000803e3d6000fd5b50506040517f40c10f190000000000000000000000000000000000000000000000000000000081523360048201526024810184905273ffffffffffffffffffffffffffffffffffffffff851692506340c10f199150604401600060405180830381600087803b158015610f4557600080fd5b505af1158015610f59573d6000803e3d6000fd5b505050503373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167ff98522c4d7ccb9de6d7bb8395a567bd90003fe876d577e4d0fd4b53e1ddfedf884604051610fd391815260200190565b60405180910390a4505050565b610fe861045f565b611074576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20616e20454f4100000000000000000060648201526084016101c2565b6110b8853333878787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061049c92505050565b5050505050565b61056d87873388888888888080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061163d92505050565b606061114060408051808201909152600681527f312e31332e300000000000000000000000000000000000000000000000000000602082015290565b6040516020016111509190612ecb565b604051602081830303815290604052905090565b61116c61045f565b6111f8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20616e20454f4100000000000000000060648201526084016101c2565b61056f86863333888888888080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061163d92505050565b61056f863387878787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061049c92505050565b600054610100900460ff16158080156112a15750600054600160ff909116105b806112bb5750303b1580156112bb575060005460ff166001145b611347576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016101c2565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580156113a557600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6113c373420000000000000000000000000000000000000783611ed0565b801561142657600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b61146d3385348686868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061147392505050565b50505050565b823414611502576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603e60248201527f5374616e646172644272696467653a206272696467696e6720455448206d757360448201527f7420696e636c7564652073756666696369656e74204554482076616c7565000060648201526084016101c2565b61150e85858584611fba565b60035460045460405173ffffffffffffffffffffffffffffffffffffffff92831692633dbb202b9287929116907f1635f5fd0000000000000000000000000000000000000000000000000000000090611571908b908b9086908a90602401612f0c565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009485161790525160e086901b909216825261160492918890600401612f55565b6000604051808303818588803b15801561161d57600080fd5b505af1158015611631573d6000803e3d6000fd5b50505050505050505050565b34156116cb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f5374616e646172644272696467653a2063616e6e6f742073656e642076616c7560448201527f650000000000000000000000000000000000000000000000000000000000000060648201526084016101c2565b6116d4876119f6565b15611822576116e38787611a58565b611795576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f5374616e646172644272696467653a2077726f6e672072656d6f746520746f6b60448201527f656e20666f72204f7074696d69736d204d696e7461626c65204552433230206c60648201527f6f63616c20746f6b656e00000000000000000000000000000000000000000000608482015260a4016101c2565b6040517f9dc29fac00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff868116600483015260248201859052881690639dc29fac90604401600060405180830381600087803b15801561180557600080fd5b505af1158015611819573d6000803e3d6000fd5b505050506118b6565b61184473ffffffffffffffffffffffffffffffffffffffff881686308661205b565b73ffffffffffffffffffffffffffffffffffffffff8088166000908152600260209081526040808320938a1683529290522054611882908490612f9a565b73ffffffffffffffffffffffffffffffffffffffff8089166000908152600260209081526040808320938b16835292905220555b6118c48787878787866120b9565b60035460045460405173ffffffffffffffffffffffffffffffffffffffff92831692633dbb202b9216907f0166a07a0000000000000000000000000000000000000000000000000000000090611928908b908d908c908c908c908b90602401612fb2565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009485161790525160e085901b90921682526119bb92918790600401612f55565b600060405180830381600087803b1580156119d557600080fd5b505af11580156119e9573d6000803e3d6000fd5b5050505050505050505050565b6000611a22827f1d1d8b6300000000000000000000000000000000000000000000000000000000612147565b80611a525750611a52827fec4fc8e300000000000000000000000000000000000000000000000000000000612147565b92915050565b6000611a84837f1d1d8b6300000000000000000000000000000000000000000000000000000000612147565b15611b2d578273ffffffffffffffffffffffffffffffffffffffff1663c01e1bd66040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ad4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611af89190612e68565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050611a52565b8273ffffffffffffffffffffffffffffffffffffffff1663d6c0b2c46040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ad4573d6000803e3d6000fd5b60405173ffffffffffffffffffffffffffffffffffffffff83166024820152604481018290526109f09084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915261216a565b8373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fb0444523268717a02698be47d0803aa7468c00acbed2f8bd93a0459cde61dd89868686604051611cc49392919061300d565b60405180910390a461056f868686868686612276565b8373ffffffffffffffffffffffffffffffffffffffff1673deaddeaddeaddeaddeaddeaddeaddeaddead000073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fb0444523268717a02698be47d0803aa7468c00acbed2f8bd93a0459cde61dd89868686604051611d679392919061300d565b60405180910390a461146d848484846122fe565b6000806000835160208501868989f195945050505050565b8073ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015611dde573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e02919061304b565b60ff168273ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e50573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e74919061304b565b60ff1614611eae576040517fd25598a000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611eb7826119f6565b15611ec657611426828261236b565b611426818361236b565b600054610100900460ff16611f67576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016101c2565b6003805473ffffffffffffffffffffffffffffffffffffffff9384167fffffffffffffffffffffffff00000000000000000000000000000000000000009182161790915560048054929093169116179055565b8373ffffffffffffffffffffffffffffffffffffffff1673deaddeaddeaddeaddeaddeaddeaddeaddead000073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f73d170910aba9e6d50b102db522b1dbcd796216f5128b445aa2135272886497e8686866040516120479392919061300d565b60405180910390a461146d848484846125b8565b60405173ffffffffffffffffffffffffffffffffffffffff8085166024830152831660448201526064810182905261146d9085907f23b872dd0000000000000000000000000000000000000000000000000000000090608401611bca565b8373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167f73d170910aba9e6d50b102db522b1dbcd796216f5128b445aa2135272886497e8686866040516121319392919061300d565b60405180910390a461056f868686868686612617565b60006121528361268f565b8015612163575061216383836126f3565b9392505050565b60006121cc826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166127c29092919063ffffffff16565b8051909150156109f057808060200190518101906121ea919061306e565b6109f0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016101c2565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fd59c65b35445225835c83f50b6ede06a7be047d22e357073e250d9af537518cd8686866040516122ee9392919061300d565b60405180910390a4505050505050565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f31b2166ff604fc5672ea5df08a78081d2bc6d746cadce880747f3643d819e83d848460405161235d929190613090565b60405180910390a350505050565b6040517f316b373900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff831660048201526000907342000000000000000000000000000000000000129063316b373990602401602060405180830381865afa1580156123ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124109190612e68565b905073ffffffffffffffffffffffffffffffffffffffff811661245f576040517fb3d370d400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f316b373900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff831660048201526000907342000000000000000000000000000000000000269063316b373990602401602060405180830381865afa1580156124e0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125049190612e68565b905073ffffffffffffffffffffffffffffffffffffffff8116612553576040517f7acfd45300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461146d576040517f8686656d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f2849b43074093a05396b6f2a937dee8565b15a48a7b3d4bffb732a5017380af5848460405161235d929190613090565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167f7ff126db8024424bbfd9826e8ab82ff59136289ea440b04b39a0df1b03b9cabf8686866040516122ee9392919061300d565b60006126bb827f01ffc9a7000000000000000000000000000000000000000000000000000000006126f3565b8015611a5257506126ec827fffffffff000000000000000000000000000000000000000000000000000000006126f3565b1592915050565b604080517fffffffff000000000000000000000000000000000000000000000000000000008316602480830191909152825180830390910181526044909101909152602080820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f01ffc9a700000000000000000000000000000000000000000000000000000000178152825160009392849283928392918391908a617530fa92503d915060005190508280156127ab575060208210155b80156127b75750600081115b979650505050505050565b60606127d184846000856127d9565b949350505050565b60608247101561286b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c000000000000000000000000000000000000000000000000000060648201526084016101c2565b73ffffffffffffffffffffffffffffffffffffffff85163b6128e9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016101c2565b6000808673ffffffffffffffffffffffffffffffffffffffff16858760405161291291906130a9565b60006040518083038185875af1925050503d806000811461294f576040519150601f19603f3d011682016040523d82523d6000602084013e612954565b606091505b50915091506127b78282866060831561296e575081612163565b82511561297e5782518084602001fd5b816040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101c29190612d19565b73ffffffffffffffffffffffffffffffffffffffff811681146129d457600080fd5b50565b60008083601f8401126129e957600080fd5b50813567ffffffffffffffff811115612a0157600080fd5b602083019150836020828501011115612a1957600080fd5b9250929050565b600080600080600080600060c0888a031215612a3b57600080fd5b8735612a46816129b2565b96506020880135612a56816129b2565b95506040880135612a66816129b2565b94506060880135612a76816129b2565b93506080880135925060a088013567ffffffffffffffff811115612a9957600080fd5b612aa58a828b016129d7565b989b979a50959850939692959293505050565b803563ffffffff81168114612acc57600080fd5b919050565b600080600060408486031215612ae657600080fd5b612aef84612ab8565b9250602084013567ffffffffffffffff811115612b0b57600080fd5b612b17868287016129d7565b9497909650939450505050565b600080600080600060808688031215612b3c57600080fd5b8535612b47816129b2565b94506020860135612b57816129b2565b935060408601359250606086013567ffffffffffffffff811115612b7a57600080fd5b612b86888289016129d7565b969995985093965092949392505050565b600080600060608486031215612bac57600080fd5b8335612bb7816129b2565b92506020840135612bc7816129b2565b929592945050506040919091013590565b600080600080600060808688031215612bf057600080fd5b8535612bfb816129b2565b945060208601359350612c1060408701612ab8565b9250606086013567ffffffffffffffff811115612b7a57600080fd5b600080600080600080600060c0888a031215612c4757600080fd5b8735612c52816129b2565b96506020880135612c62816129b2565b95506040880135612c72816129b2565b945060608801359350612c8760808901612ab8565b925060a088013567ffffffffffffffff811115612a9957600080fd5b60005b83811015612cbe578181015183820152602001612ca6565b8381111561146d5750506000910152565b60008151808452612ce7816020860160208601612ca3565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006121636020830184612ccf565b60008060008060008060a08789031215612d4557600080fd5b8635612d50816129b2565b95506020870135612d60816129b2565b945060408701359350612d7560608801612ab8565b9250608087013567ffffffffffffffff811115612d9157600080fd5b612d9d89828a016129d7565b979a9699509497509295939492505050565b60008060408385031215612dc257600080fd5b8235612dcd816129b2565b91506020830135612ddd816129b2565b809150509250929050565b600060208284031215612dfa57600080fd5b8135612163816129b2565b60008060008060608587031215612e1b57600080fd5b8435612e26816129b2565b9350612e3460208601612ab8565b9250604085013567ffffffffffffffff811115612e5057600080fd5b612e5c878288016129d7565b95989497509550505050565b600060208284031215612e7a57600080fd5b8151612163816129b2565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600082821015612ec657612ec6612e85565b500390565b60008251612edd818460208701612ca3565b7f2b696e7465726f702e3130000000000000000000000000000000000000000000920191825250600b01919050565b600073ffffffffffffffffffffffffffffffffffffffff808716835280861660208401525083604083015260806060830152612f4b6080830184612ccf565b9695505050505050565b73ffffffffffffffffffffffffffffffffffffffff84168152606060208201526000612f846060830185612ccf565b905063ffffffff83166040830152949350505050565b60008219821115612fad57612fad612e85565b500190565b600073ffffffffffffffffffffffffffffffffffffffff80891683528088166020840152808716604084015280861660608401525083608083015260c060a083015261300160c0830184612ccf565b98975050505050505050565b73ffffffffffffffffffffffffffffffffffffffff841681528260208201526060604082015260006130426060830184612ccf565b95945050505050565b60006020828403121561305d57600080fd5b815160ff8116811461216357600080fd5b60006020828403121561308057600080fd5b8151801515811461216357600080fd5b8281526040602082015260006127d16040830184612ccf565b600082516130bb818460208701612ca3565b919091019291505056fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R4\x80\x15b\0\0\x11W`\0\x80\xFD[Pb\0\0\x1Cb\0\0\"V[b\0\0\xE4V[`\0Ta\x01\0\x90\x04`\xFF\x16\x15b\0\0\x8FW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`'`$\x82\x01R\x7FInitializable: contract is initi`D\x82\x01Rfalizing`\xC8\x1B`d\x82\x01R`\x84\x01`@Q\x80\x91\x03\x90\xFD[`\0T`\xFF\x90\x81\x16\x10\x15b\0\0\xE2W`\0\x80T`\xFF\x19\x16`\xFF\x90\x81\x17\x90\x91U`@Q\x90\x81R\x7F\x7F&\xB8?\xF9n\x1F+jh/\x138R\xF6y\x8A\t\xC4e\xDA\x95\x92\x14`\xCE\xFB8G@$\x98\x90` \x01`@Q\x80\x91\x03\x90\xA1[V[a0\xD2\x80b\0\0\xF4`\09`\0\xF3\xFE`\x80`@R`\x046\x10a\x01-W`\x005`\xE0\x1C\x80c\\\x97Z\xBB\x11a\0\xA5W\x80c\x92~\xDE-\x11a\0tW\x80c\xC4\xD6m\xE8\x11a\0YW\x80c\xC4\xD6m\xE8\x14a\x03\xFFW\x80c\xC8\x97\x01\xA2\x14a\x04\x1FW\x80c\xE1\x10\x13\xDD\x14a\x04LW`\0\x80\xFD[\x80c\x92~\xDE-\x14a\x03\xC1W\x80c\xA3\xA7\x95H\x14a\x03\xECW`\0\x80\xFD[\x80c\\\x97Z\xBB\x14a\x03?W\x80c\x7FF\xDD\xB2\x14a\x02\x7FW\x80c\x87\x08v#\x14a\x03[W\x80c\x8F`\x1Ff\x14a\x03{W`\0\x80\xFD[\x80c2\xB7\0m\x11a\0\xFCW\x80c<\xB7G\xBF\x11a\0\xE1W\x80c<\xB7G\xBF\x14a\x02\xD0W\x80cT\n\xBFs\x14a\x02\xFDW\x80cT\xFDMP\x14a\x03\x1DW`\0\x80\xFD[\x80c2\xB7\0m\x14a\x02lW\x80c6\xC7\x17\xC1\x14a\x02\x7FW`\0\x80\xFD[\x80c\x01f\xA0z\x14a\x02\x06W\x80c\t\xFC\x88C\x14a\x02&W\x80c\x165\xF5\xFD\x14a\x029W\x80c$\x83\x91\xFF\x14a\x02LW`\0\x80\xFD[6a\x02\x01Wa\x01:a\x04_V[a\x01\xCBW`@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\x82\x01R`7`$\x82\x01R\x7FStandardBridge: function can onl`D\x82\x01R\x7Fy be called from an EOA\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01[`@Q\x80\x91\x03\x90\xFD[a\x01\xFFs\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\0\x00334b\x03\r@`@Q\x80` \x01`@R\x80`\0\x81RPa\x04\x9CV[\0[`\0\x80\xFD[4\x80\x15a\x02\x12W`\0\x80\xFD[Pa\x01\xFFa\x02!6`\x04a* V[a\x05wV[a\x01\xFFa\x0246`\x04a*\xD1V[a\t\x19V[a\x01\xFFa\x02G6`\x04a+$V[a\t\xF5V[4\x80\x15a\x02XW`\0\x80\xFD[Pa\x01\xFFa\x02g6`\x04a+\x97V[a\x0EGV[a\x01\xFFa\x02z6`\x04a+\xD8V[a\x0F\xE0V[4\x80\x15a\x02\x8BW`\0\x80\xFD[P`\x04Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16[`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[4\x80\x15a\x02\xDCW`\0\x80\xFD[P`\x03Ta\x02\xA6\x90s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[4\x80\x15a\x03\tW`\0\x80\xFD[Pa\x01\xFFa\x03\x186`\x04a,,V[a\x10\xBFV[4\x80\x15a\x03)W`\0\x80\xFD[Pa\x032a\x11\x04V[`@Qa\x02\xC7\x91\x90a-\x19V[4\x80\x15a\x03KW`\0\x80\xFD[P`@Q`\0\x81R` \x01a\x02\xC7V[4\x80\x15a\x03gW`\0\x80\xFD[Pa\x01\xFFa\x03v6`\x04a-,V[a\x11dV[4\x80\x15a\x03\x87W`\0\x80\xFD[Pa\x03\xB3a\x03\x966`\x04a-\xAFV[`\x02` \x90\x81R`\0\x92\x83R`@\x80\x84 \x90\x91R\x90\x82R\x90 T\x81V[`@Q\x90\x81R` \x01a\x02\xC7V[4\x80\x15a\x03\xCDW`\0\x80\xFD[P`\x03Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a\x02\xA6V[a\x01\xFFa\x03\xFA6`\x04a-,V[a\x12=V[4\x80\x15a\x04\x0BW`\0\x80\xFD[Pa\x01\xFFa\x04\x1A6`\x04a-\xE8V[a\x12\x81V[4\x80\x15a\x04+W`\0\x80\xFD[P`\x04Ta\x02\xA6\x90s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[a\x01\xFFa\x04Z6`\x04a.\x05V[a\x14*V[`\x0023\x03a\x04nWP`\x01\x90V[3;`\x17\x03a\x04\x96W`@Q` \x81\x01`@R` `\0\x823=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x05\\\x91\x90a.hV[\x90Pa\x05m\x87\x82\x88\x88\x88\x88\x88a\x16=V[P[PPPPPPV[`\x03Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x163\x14\x80\x15a\x06JWP`\x04\x80T`\x03T`@\x80Q\x7Fn)nE\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\x90Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x93\x84\x16\x94\x93\x90\x92\x16\x92cn)nE\x92\x82\x82\x01\x92` \x92\x90\x82\x90\x03\x01\x81\x86Z\xFA\x15\x80\x15a\x06\x0EW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x062\x91\x90a.hV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14[a\x06\xFCW`@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\x82\x01R`A`$\x82\x01R\x7FStandardBridge: function can onl`D\x82\x01R\x7Fy be called from the other bridg`d\x82\x01R\x7Fe\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x84\x82\x01R`\xA4\x01a\x01\xC2V[a\x07\x05\x87a\x19\xF6V[\x15a\x08SWa\x07\x14\x87\x87a\x1AXV[a\x07\xC6W`@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\x82\x01R`J`$\x82\x01R\x7FStandardBridge: wrong remote tok`D\x82\x01R\x7Fen for Optimism Mintable ERC20 l`d\x82\x01R\x7Focal token\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x84\x82\x01R`\xA4\x01a\x01\xC2V[`@Q\x7F@\xC1\x0F\x19\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\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x85\x81\x16`\x04\x83\x01R`$\x82\x01\x85\x90R\x88\x16\x90c@\xC1\x0F\x19\x90`D\x01`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a\x086W`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x08JW=`\0\x80>=`\0\xFD[PPPPa\x08\xD5V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x88\x16`\0\x90\x81R`\x02` \x90\x81R`@\x80\x83 \x93\x8A\x16\x83R\x92\x90R Ta\x08\x91\x90\x84\x90a.\xB4V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x89\x16`\0\x81\x81R`\x02` \x90\x81R`@\x80\x83 \x94\x8C\x16\x83R\x93\x90R\x91\x90\x91 \x91\x90\x91Ua\x08\xD5\x90\x85\x85a\x1BxV[a\x05m\x87\x87\x87\x87\x87\x87\x87\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RPa\x1CL\x92PPPV[a\t!a\x04_V[a\t\xADW`@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\x82\x01R`7`$\x82\x01R\x7FStandardBridge: function can onl`D\x82\x01R\x7Fy be called from an EOA\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x01\xC2V[a\t\xF0334\x86\x86\x86\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RPa\x14s\x92PPPV[PPPV[`\x03Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x163\x14\x80\x15a\n\xC8WP`\x04\x80T`\x03T`@\x80Q\x7Fn)nE\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\x90Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x93\x84\x16\x94\x93\x90\x92\x16\x92cn)nE\x92\x82\x82\x01\x92` \x92\x90\x82\x90\x03\x01\x81\x86Z\xFA\x15\x80\x15a\n\x8CW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\n\xB0\x91\x90a.hV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14[a\x0BzW`@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\x82\x01R`A`$\x82\x01R\x7FStandardBridge: function can onl`D\x82\x01R\x7Fy be called from the other bridg`d\x82\x01R\x7Fe\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x84\x82\x01R`\xA4\x01a\x01\xC2V[\x824\x14a\x0C\tW`@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\x82\x01R`:`$\x82\x01R\x7FStandardBridge: amount sent does`D\x82\x01R\x7F not match amount required\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x01\xC2V[0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x85\x16\x03a\x0C\xAEW`@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\x82\x01R`#`$\x82\x01R\x7FStandardBridge: cannot send to s`D\x82\x01R\x7Felf\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x01\xC2V[`\x03Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x81\x16\x90\x85\x16\x03a\rYW`@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\x82\x01R`(`$\x82\x01R\x7FStandardBridge: cannot send to m`D\x82\x01R\x7Fessenger\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x01\xC2V[a\r\x9B\x85\x85\x85\x85\x85\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RPa\x1C\xDA\x92PPPV[`\0a\r\xB8\x85Z\x86`@Q\x80` \x01`@R\x80`\0\x81RPa\x1D{V[\x90P\x80a\x05oW`@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\x82\x01R`#`$\x82\x01R\x7FStandardBridge: ETH transfer fai`D\x82\x01R\x7Fled\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x01\xC2V[a\x0EQ\x83\x83a\x1D\x93V[`@Q\x7F\x9D\xC2\x9F\xAC\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\x81R3`\x04\x82\x01R`$\x81\x01\x82\x90Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x16\x90c\x9D\xC2\x9F\xAC\x90`D\x01`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a\x0E\xBFW`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x0E\xD3W=`\0\x80>=`\0\xFD[PP`@Q\x7F@\xC1\x0F\x19\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\x81R3`\x04\x82\x01R`$\x81\x01\x84\x90Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x85\x16\x92Pc@\xC1\x0F\x19\x91P`D\x01`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a\x0FEW`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x0FYW=`\0\x80>=`\0\xFD[PPPP3s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x82s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x84s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xF9\x85\"\xC4\xD7\xCC\xB9\xDEm{\xB89ZV{\xD9\0\x03\xFE\x87mW~M\x0F\xD4\xB5>\x1D\xDF\xED\xF8\x84`@Qa\x0F\xD3\x91\x81R` \x01\x90V[`@Q\x80\x91\x03\x90\xA4PPPV[a\x0F\xE8a\x04_V[a\x10tW`@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\x82\x01R`7`$\x82\x01R\x7FStandardBridge: function can onl`D\x82\x01R\x7Fy be called from an EOA\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x01\xC2V[a\x10\xB8\x8533\x87\x87\x87\x87\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RPa\x04\x9C\x92PPPV[PPPPPV[a\x05m\x87\x873\x88\x88\x88\x88\x88\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RPa\x16=\x92PPPV[``a\x11@`@\x80Q\x80\x82\x01\x90\x91R`\x06\x81R\x7F1.13.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` \x82\x01R\x90V[`@Q` \x01a\x11P\x91\x90a.\xCBV[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x90P\x90V[a\x11la\x04_V[a\x11\xF8W`@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\x82\x01R`7`$\x82\x01R\x7FStandardBridge: function can onl`D\x82\x01R\x7Fy be called from an EOA\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x01\xC2V[a\x05o\x86\x8633\x88\x88\x88\x88\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RPa\x16=\x92PPPV[a\x05o\x863\x87\x87\x87\x87\x87\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RPa\x04\x9C\x92PPPV[`\0Ta\x01\0\x90\x04`\xFF\x16\x15\x80\x80\x15a\x12\xA1WP`\0T`\x01`\xFF\x90\x91\x16\x10[\x80a\x12\xBBWP0;\x15\x80\x15a\x12\xBBWP`\0T`\xFF\x16`\x01\x14[a\x13GW`@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\x82\x01R`.`$\x82\x01R\x7FInitializable: contract is alrea`D\x82\x01R\x7Fdy initialized\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x01\xC2V[`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x16`\x01\x17\x90U\x80\x15a\x13\xA5W`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\x16a\x01\0\x17\x90U[a\x13\xC3sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x07\x83a\x1E\xD0V[\x80\x15a\x14&W`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\x16\x90U`@Q`\x01\x81R\x7F\x7F&\xB8?\xF9n\x1F+jh/\x138R\xF6y\x8A\t\xC4e\xDA\x95\x92\x14`\xCE\xFB8G@$\x98\x90` \x01`@Q\x80\x91\x03\x90\xA1[PPV[a\x14m3\x854\x86\x86\x86\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RPa\x14s\x92PPPV[PPPPV[\x824\x14a\x15\x02W`@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\x82\x01R`>`$\x82\x01R\x7FStandardBridge: bridging ETH mus`D\x82\x01R\x7Ft include sufficient ETH value\0\0`d\x82\x01R`\x84\x01a\x01\xC2V[a\x15\x0E\x85\x85\x85\x84a\x1F\xBAV[`\x03T`\x04T`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x92\x83\x16\x92c=\xBB +\x92\x87\x92\x91\x16\x90\x7F\x165\xF5\xFD\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\x90a\x15q\x90\x8B\x90\x8B\x90\x86\x90\x8A\x90`$\x01a/\x0CV[`@\x80Q\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x81\x84\x03\x01\x81R\x91\x81R` \x82\x01\x80Q{\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xFF\xFF\xFF\xFF\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\x94\x85\x16\x17\x90RQ`\xE0\x86\x90\x1B\x90\x92\x16\x82Ra\x16\x04\x92\x91\x88\x90`\x04\x01a/UV[`\0`@Q\x80\x83\x03\x81\x85\x88\x80;\x15\x80\x15a\x16\x1DW`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x161W=`\0\x80>=`\0\xFD[PPPPPPPPPPV[4\x15a\x16\xCBW`@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\x82\x01R`!`$\x82\x01R\x7FStandardBridge: cannot send valu`D\x82\x01R\x7Fe\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x01\xC2V[a\x16\xD4\x87a\x19\xF6V[\x15a\x18\"Wa\x16\xE3\x87\x87a\x1AXV[a\x17\x95W`@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\x82\x01R`J`$\x82\x01R\x7FStandardBridge: wrong remote tok`D\x82\x01R\x7Fen for Optimism Mintable ERC20 l`d\x82\x01R\x7Focal token\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x84\x82\x01R`\xA4\x01a\x01\xC2V[`@Q\x7F\x9D\xC2\x9F\xAC\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\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x86\x81\x16`\x04\x83\x01R`$\x82\x01\x85\x90R\x88\x16\x90c\x9D\xC2\x9F\xAC\x90`D\x01`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a\x18\x05W`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x18\x19W=`\0\x80>=`\0\xFD[PPPPa\x18\xB6V[a\x18Ds\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x88\x16\x860\x86a [V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x88\x16`\0\x90\x81R`\x02` \x90\x81R`@\x80\x83 \x93\x8A\x16\x83R\x92\x90R Ta\x18\x82\x90\x84\x90a/\x9AV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x89\x16`\0\x90\x81R`\x02` \x90\x81R`@\x80\x83 \x93\x8B\x16\x83R\x92\x90R U[a\x18\xC4\x87\x87\x87\x87\x87\x86a \xB9V[`\x03T`\x04T`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x92\x83\x16\x92c=\xBB +\x92\x16\x90\x7F\x01f\xA0z\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\x90a\x19(\x90\x8B\x90\x8D\x90\x8C\x90\x8C\x90\x8C\x90\x8B\x90`$\x01a/\xB2V[`@\x80Q\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x81\x84\x03\x01\x81R\x91\x81R` \x82\x01\x80Q{\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xFF\xFF\xFF\xFF\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\x94\x85\x16\x17\x90RQ`\xE0\x85\x90\x1B\x90\x92\x16\x82Ra\x19\xBB\x92\x91\x87\x90`\x04\x01a/UV[`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a\x19\xD5W`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x19\xE9W=`\0\x80>=`\0\xFD[PPPPPPPPPPPV[`\0a\x1A\"\x82\x7F\x1D\x1D\x8Bc\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\0a!GV[\x80a\x1ARWPa\x1AR\x82\x7F\xECO\xC8\xE3\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\0a!GV[\x92\x91PPV[`\0a\x1A\x84\x83\x7F\x1D\x1D\x8Bc\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\0a!GV[\x15a\x1B-W\x82s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xC0\x1E\x1B\xD6`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x1A\xD4W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x1A\xF8\x91\x90a.hV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x82s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14\x90Pa\x1ARV[\x82s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xD6\xC0\xB2\xC4`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x1A\xD4W=`\0\x80>=`\0\xFD[`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x16`$\x82\x01R`D\x81\x01\x82\x90Ra\t\xF0\x90\x84\x90\x7F\xA9\x05\x9C\xBB\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\x90`d\x01[`@\x80Q\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x81\x84\x03\x01\x81R\x91\x90R` \x81\x01\x80Q{\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xFF\xFF\xFF\xFF\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\x90\x93\x16\x92\x90\x92\x17\x90\x91Ra!jV[\x83s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x86s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x86s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xB0DE#&\x87\x17\xA0&\x98\xBEG\xD0\x80:\xA7F\x8C\0\xAC\xBE\xD2\xF8\xBD\x93\xA0E\x9C\xDEa\xDD\x89\x86\x86\x86`@Qa\x1C\xC4\x93\x92\x91\x90a0\rV[`@Q\x80\x91\x03\x90\xA4a\x05o\x86\x86\x86\x86\x86\x86a\"vV[\x83s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16s\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\0\0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xB0DE#&\x87\x17\xA0&\x98\xBEG\xD0\x80:\xA7F\x8C\0\xAC\xBE\xD2\xF8\xBD\x93\xA0E\x9C\xDEa\xDD\x89\x86\x86\x86`@Qa\x1Dg\x93\x92\x91\x90a0\rV[`@Q\x80\x91\x03\x90\xA4a\x14m\x84\x84\x84\x84a\"\xFEV[`\0\x80`\0\x83Q` \x85\x01\x86\x89\x89\xF1\x95\x94PPPPPV[\x80s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c1<\xE5g`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x1D\xDEW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x1E\x02\x91\x90a0KV[`\xFF\x16\x82s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c1<\xE5g`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x1EPW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x1Et\x91\x90a0KV[`\xFF\x16\x14a\x1E\xAEW`@Q\x7F\xD2U\x98\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\x01`@Q\x80\x91\x03\x90\xFD[a\x1E\xB7\x82a\x19\xF6V[\x15a\x1E\xC6Wa\x14&\x82\x82a#kV[a\x14&\x81\x83a#kV[`\0Ta\x01\0\x90\x04`\xFF\x16a\x1FgW`@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\x82\x01R`+`$\x82\x01R\x7FInitializable: contract is not i`D\x82\x01R\x7Fnitializing\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x01\xC2V[`\x03\x80Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x93\x84\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x91\x82\x16\x17\x90\x91U`\x04\x80T\x92\x90\x93\x16\x91\x16\x17\x90UV[\x83s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16s\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\0\0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7Fs\xD1p\x91\n\xBA\x9EmP\xB1\x02\xDBR+\x1D\xBC\xD7\x96!oQ(\xB4E\xAA!5'(\x86I~\x86\x86\x86`@Qa G\x93\x92\x91\x90a0\rV[`@Q\x80\x91\x03\x90\xA4a\x14m\x84\x84\x84\x84a%\xB8V[`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x85\x16`$\x83\x01R\x83\x16`D\x82\x01R`d\x81\x01\x82\x90Ra\x14m\x90\x85\x90\x7F#\xB8r\xDD\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\x90`\x84\x01a\x1B\xCAV[\x83s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x86s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x86s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7Fs\xD1p\x91\n\xBA\x9EmP\xB1\x02\xDBR+\x1D\xBC\xD7\x96!oQ(\xB4E\xAA!5'(\x86I~\x86\x86\x86`@Qa!1\x93\x92\x91\x90a0\rV[`@Q\x80\x91\x03\x90\xA4a\x05o\x86\x86\x86\x86\x86\x86a&\x17V[`\0a!R\x83a&\x8FV[\x80\x15a!cWPa!c\x83\x83a&\xF3V[\x93\x92PPPV[`\0a!\xCC\x82`@Q\x80`@\x01`@R\x80` \x81R` \x01\x7FSafeERC20: low-level call failed\x81RP\x85s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a'\xC2\x90\x92\x91\x90c\xFF\xFF\xFF\xFF\x16V[\x80Q\x90\x91P\x15a\t\xF0W\x80\x80` \x01\x90Q\x81\x01\x90a!\xEA\x91\x90a0nV[a\t\xF0W`@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\x82\x01R`*`$\x82\x01R\x7FSafeERC20: ERC20 operation did n`D\x82\x01R\x7Fot succeed\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x01\xC2V[\x83s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x85s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x87s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xD5\x9Ce\xB3TE\"X5\xC8?P\xB6\xED\xE0j{\xE0G\xD2.5ps\xE2P\xD9\xAFSu\x18\xCD\x86\x86\x86`@Qa\"\xEE\x93\x92\x91\x90a0\rV[`@Q\x80\x91\x03\x90\xA4PPPPPPV[\x82s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x84s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F1\xB2\x16o\xF6\x04\xFCVr\xEA]\xF0\x8Ax\x08\x1D+\xC6\xD7F\xCA\xDC\xE8\x80t\x7F6C\xD8\x19\xE8=\x84\x84`@Qa#]\x92\x91\x90a0\x90V[`@Q\x80\x91\x03\x90\xA3PPPPV[`@Q\x7F1k79\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\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x16`\x04\x82\x01R`\0\x90sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x12\x90c1k79\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a#\xECW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a$\x10\x91\x90a.hV[\x90Ps\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16a$_W`@Q\x7F\xB3\xD3p\xD4\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\x01`@Q\x80\x91\x03\x90\xFD[`@Q\x7F1k79\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\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x16`\x04\x82\x01R`\0\x90sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0&\x90c1k79\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a$\xE0W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a%\x04\x91\x90a.hV[\x90Ps\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16a%SW`@Q\x7Fz\xCF\xD4S\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\x01`@Q\x80\x91\x03\x90\xFD[\x80s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x82s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14a\x14mW`@Q\x7F\x86\x86em\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\x01`@Q\x80\x91\x03\x90\xFD[\x82s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x84s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F(I\xB40t\t:\x059ko*\x93}\xEE\x85e\xB1ZH\xA7\xB3\xD4\xBF\xFBs*P\x178\n\xF5\x84\x84`@Qa#]\x92\x91\x90a0\x90V[\x83s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x85s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x87s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\x7F\xF1&\xDB\x80$BK\xBF\xD9\x82n\x8A\xB8/\xF5\x916(\x9E\xA4@\xB0K9\xA0\xDF\x1B\x03\xB9\xCA\xBF\x86\x86\x86`@Qa\"\xEE\x93\x92\x91\x90a0\rV[`\0a&\xBB\x82\x7F\x01\xFF\xC9\xA7\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\0a&\xF3V[\x80\x15a\x1ARWPa&\xEC\x82\x7F\xFF\xFF\xFF\xFF\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\0a&\xF3V[\x15\x92\x91PPV[`@\x80Q\x7F\xFF\xFF\xFF\xFF\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\x83\x16`$\x80\x83\x01\x91\x90\x91R\x82Q\x80\x83\x03\x90\x91\x01\x81R`D\x90\x91\x01\x90\x91R` \x80\x82\x01\x80Q{\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\x01\xFF\xC9\xA7\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\x17\x81R\x82Q`\0\x93\x92\x84\x92\x83\x92\x83\x92\x91\x83\x91\x90\x8Aau0\xFA\x92P=\x91P`\0Q\x90P\x82\x80\x15a'\xABWP` \x82\x10\x15[\x80\x15a'\xB7WP`\0\x81\x11[\x97\x96PPPPPPPV[``a'\xD1\x84\x84`\0\x85a'\xD9V[\x94\x93PPPPV[``\x82G\x10\x15a(kW`@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\x82\x01R`&`$\x82\x01R\x7FAddress: insufficient balance fo`D\x82\x01R\x7Fr call\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`d\x82\x01R`\x84\x01a\x01\xC2V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x85\x16;a(\xE9W`@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\x82\x01R`\x1D`$\x82\x01R\x7FAddress: call to non-contract\0\0\0`D\x82\x01R`d\x01a\x01\xC2V[`\0\x80\x86s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x85\x87`@Qa)\x12\x91\x90a0\xA9V[`\0`@Q\x80\x83\x03\x81\x85\x87Z\xF1\x92PPP=\x80`\0\x81\x14a)OW`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=`\0` \x84\x01>a)TV[``\x91P[P\x91P\x91Pa'\xB7\x82\x82\x86``\x83\x15a)nWP\x81a!cV[\x82Q\x15a)~W\x82Q\x80\x84` \x01\xFD[\x81`@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\x01\xC2\x91\x90a-\x19V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a)\xD4W`\0\x80\xFD[PV[`\0\x80\x83`\x1F\x84\x01\x12a)\xE9W`\0\x80\xFD[P\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a*\x01W`\0\x80\xFD[` \x83\x01\x91P\x83` \x82\x85\x01\x01\x11\x15a*\x19W`\0\x80\xFD[\x92P\x92\x90PV[`\0\x80`\0\x80`\0\x80`\0`\xC0\x88\x8A\x03\x12\x15a*;W`\0\x80\xFD[\x875a*F\x81a)\xB2V[\x96P` \x88\x015a*V\x81a)\xB2V[\x95P`@\x88\x015a*f\x81a)\xB2V[\x94P``\x88\x015a*v\x81a)\xB2V[\x93P`\x80\x88\x015\x92P`\xA0\x88\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a*\x99W`\0\x80\xFD[a*\xA5\x8A\x82\x8B\x01a)\xD7V[\x98\x9B\x97\x9AP\x95\x98P\x93\x96\x92\x95\x92\x93PPPV[\x805c\xFF\xFF\xFF\xFF\x81\x16\x81\x14a*\xCCW`\0\x80\xFD[\x91\x90PV[`\0\x80`\0`@\x84\x86\x03\x12\x15a*\xE6W`\0\x80\xFD[a*\xEF\x84a*\xB8V[\x92P` \x84\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a+\x0BW`\0\x80\xFD[a+\x17\x86\x82\x87\x01a)\xD7V[\x94\x97\x90\x96P\x93\x94PPPPV[`\0\x80`\0\x80`\0`\x80\x86\x88\x03\x12\x15a+=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x05\\\x91\x90a.hV[\x90Pa\x05m\x87\x82\x88\x88\x88\x88\x88a\x16=V[P[PPPPPPV[`\x03Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x163\x14\x80\x15a\x06JWP`\x04\x80T`\x03T`@\x80Q\x7Fn)nE\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\x90Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x93\x84\x16\x94\x93\x90\x92\x16\x92cn)nE\x92\x82\x82\x01\x92` \x92\x90\x82\x90\x03\x01\x81\x86Z\xFA\x15\x80\x15a\x06\x0EW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x062\x91\x90a.hV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14[a\x06\xFCW`@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\x82\x01R`A`$\x82\x01R\x7FStandardBridge: function can onl`D\x82\x01R\x7Fy be called from the other bridg`d\x82\x01R\x7Fe\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x84\x82\x01R`\xA4\x01a\x01\xC2V[a\x07\x05\x87a\x19\xF6V[\x15a\x08SWa\x07\x14\x87\x87a\x1AXV[a\x07\xC6W`@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\x82\x01R`J`$\x82\x01R\x7FStandardBridge: wrong remote tok`D\x82\x01R\x7Fen for Optimism Mintable ERC20 l`d\x82\x01R\x7Focal token\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x84\x82\x01R`\xA4\x01a\x01\xC2V[`@Q\x7F@\xC1\x0F\x19\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\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x85\x81\x16`\x04\x83\x01R`$\x82\x01\x85\x90R\x88\x16\x90c@\xC1\x0F\x19\x90`D\x01`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a\x086W`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x08JW=`\0\x80>=`\0\xFD[PPPPa\x08\xD5V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x88\x16`\0\x90\x81R`\x02` \x90\x81R`@\x80\x83 \x93\x8A\x16\x83R\x92\x90R Ta\x08\x91\x90\x84\x90a.\xB4V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x89\x16`\0\x81\x81R`\x02` \x90\x81R`@\x80\x83 \x94\x8C\x16\x83R\x93\x90R\x91\x90\x91 \x91\x90\x91Ua\x08\xD5\x90\x85\x85a\x1BxV[a\x05m\x87\x87\x87\x87\x87\x87\x87\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RPa\x1CL\x92PPPV[a\t!a\x04_V[a\t\xADW`@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\x82\x01R`7`$\x82\x01R\x7FStandardBridge: function can onl`D\x82\x01R\x7Fy be called from an EOA\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x01\xC2V[a\t\xF0334\x86\x86\x86\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RPa\x14s\x92PPPV[PPPV[`\x03Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x163\x14\x80\x15a\n\xC8WP`\x04\x80T`\x03T`@\x80Q\x7Fn)nE\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\x90Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x93\x84\x16\x94\x93\x90\x92\x16\x92cn)nE\x92\x82\x82\x01\x92` \x92\x90\x82\x90\x03\x01\x81\x86Z\xFA\x15\x80\x15a\n\x8CW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\n\xB0\x91\x90a.hV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14[a\x0BzW`@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\x82\x01R`A`$\x82\x01R\x7FStandardBridge: function can onl`D\x82\x01R\x7Fy be called from the other bridg`d\x82\x01R\x7Fe\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x84\x82\x01R`\xA4\x01a\x01\xC2V[\x824\x14a\x0C\tW`@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\x82\x01R`:`$\x82\x01R\x7FStandardBridge: amount sent does`D\x82\x01R\x7F not match amount required\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x01\xC2V[0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x85\x16\x03a\x0C\xAEW`@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\x82\x01R`#`$\x82\x01R\x7FStandardBridge: cannot send to s`D\x82\x01R\x7Felf\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x01\xC2V[`\x03Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x81\x16\x90\x85\x16\x03a\rYW`@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\x82\x01R`(`$\x82\x01R\x7FStandardBridge: cannot send to m`D\x82\x01R\x7Fessenger\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x01\xC2V[a\r\x9B\x85\x85\x85\x85\x85\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RPa\x1C\xDA\x92PPPV[`\0a\r\xB8\x85Z\x86`@Q\x80` \x01`@R\x80`\0\x81RPa\x1D{V[\x90P\x80a\x05oW`@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\x82\x01R`#`$\x82\x01R\x7FStandardBridge: ETH transfer fai`D\x82\x01R\x7Fled\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x01\xC2V[a\x0EQ\x83\x83a\x1D\x93V[`@Q\x7F\x9D\xC2\x9F\xAC\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\x81R3`\x04\x82\x01R`$\x81\x01\x82\x90Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x16\x90c\x9D\xC2\x9F\xAC\x90`D\x01`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a\x0E\xBFW`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x0E\xD3W=`\0\x80>=`\0\xFD[PP`@Q\x7F@\xC1\x0F\x19\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\x81R3`\x04\x82\x01R`$\x81\x01\x84\x90Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x85\x16\x92Pc@\xC1\x0F\x19\x91P`D\x01`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a\x0FEW`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x0FYW=`\0\x80>=`\0\xFD[PPPP3s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x82s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x84s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xF9\x85\"\xC4\xD7\xCC\xB9\xDEm{\xB89ZV{\xD9\0\x03\xFE\x87mW~M\x0F\xD4\xB5>\x1D\xDF\xED\xF8\x84`@Qa\x0F\xD3\x91\x81R` \x01\x90V[`@Q\x80\x91\x03\x90\xA4PPPV[a\x0F\xE8a\x04_V[a\x10tW`@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\x82\x01R`7`$\x82\x01R\x7FStandardBridge: function can onl`D\x82\x01R\x7Fy be called from an EOA\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x01\xC2V[a\x10\xB8\x8533\x87\x87\x87\x87\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RPa\x04\x9C\x92PPPV[PPPPPV[a\x05m\x87\x873\x88\x88\x88\x88\x88\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RPa\x16=\x92PPPV[``a\x11@`@\x80Q\x80\x82\x01\x90\x91R`\x06\x81R\x7F1.13.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` \x82\x01R\x90V[`@Q` \x01a\x11P\x91\x90a.\xCBV[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x90P\x90V[a\x11la\x04_V[a\x11\xF8W`@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\x82\x01R`7`$\x82\x01R\x7FStandardBridge: function can onl`D\x82\x01R\x7Fy be called from an EOA\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x01\xC2V[a\x05o\x86\x8633\x88\x88\x88\x88\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RPa\x16=\x92PPPV[a\x05o\x863\x87\x87\x87\x87\x87\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RPa\x04\x9C\x92PPPV[`\0Ta\x01\0\x90\x04`\xFF\x16\x15\x80\x80\x15a\x12\xA1WP`\0T`\x01`\xFF\x90\x91\x16\x10[\x80a\x12\xBBWP0;\x15\x80\x15a\x12\xBBWP`\0T`\xFF\x16`\x01\x14[a\x13GW`@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\x82\x01R`.`$\x82\x01R\x7FInitializable: contract is alrea`D\x82\x01R\x7Fdy initialized\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x01\xC2V[`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x16`\x01\x17\x90U\x80\x15a\x13\xA5W`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\x16a\x01\0\x17\x90U[a\x13\xC3sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x07\x83a\x1E\xD0V[\x80\x15a\x14&W`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\x16\x90U`@Q`\x01\x81R\x7F\x7F&\xB8?\xF9n\x1F+jh/\x138R\xF6y\x8A\t\xC4e\xDA\x95\x92\x14`\xCE\xFB8G@$\x98\x90` \x01`@Q\x80\x91\x03\x90\xA1[PPV[a\x14m3\x854\x86\x86\x86\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RPa\x14s\x92PPPV[PPPPV[\x824\x14a\x15\x02W`@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\x82\x01R`>`$\x82\x01R\x7FStandardBridge: bridging ETH mus`D\x82\x01R\x7Ft include sufficient ETH value\0\0`d\x82\x01R`\x84\x01a\x01\xC2V[a\x15\x0E\x85\x85\x85\x84a\x1F\xBAV[`\x03T`\x04T`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x92\x83\x16\x92c=\xBB +\x92\x87\x92\x91\x16\x90\x7F\x165\xF5\xFD\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\x90a\x15q\x90\x8B\x90\x8B\x90\x86\x90\x8A\x90`$\x01a/\x0CV[`@\x80Q\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x81\x84\x03\x01\x81R\x91\x81R` \x82\x01\x80Q{\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xFF\xFF\xFF\xFF\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\x94\x85\x16\x17\x90RQ`\xE0\x86\x90\x1B\x90\x92\x16\x82Ra\x16\x04\x92\x91\x88\x90`\x04\x01a/UV[`\0`@Q\x80\x83\x03\x81\x85\x88\x80;\x15\x80\x15a\x16\x1DW`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x161W=`\0\x80>=`\0\xFD[PPPPPPPPPPV[4\x15a\x16\xCBW`@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\x82\x01R`!`$\x82\x01R\x7FStandardBridge: cannot send valu`D\x82\x01R\x7Fe\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x01\xC2V[a\x16\xD4\x87a\x19\xF6V[\x15a\x18\"Wa\x16\xE3\x87\x87a\x1AXV[a\x17\x95W`@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\x82\x01R`J`$\x82\x01R\x7FStandardBridge: wrong remote tok`D\x82\x01R\x7Fen for Optimism Mintable ERC20 l`d\x82\x01R\x7Focal token\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x84\x82\x01R`\xA4\x01a\x01\xC2V[`@Q\x7F\x9D\xC2\x9F\xAC\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\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x86\x81\x16`\x04\x83\x01R`$\x82\x01\x85\x90R\x88\x16\x90c\x9D\xC2\x9F\xAC\x90`D\x01`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a\x18\x05W`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x18\x19W=`\0\x80>=`\0\xFD[PPPPa\x18\xB6V[a\x18Ds\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x88\x16\x860\x86a [V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x88\x16`\0\x90\x81R`\x02` \x90\x81R`@\x80\x83 \x93\x8A\x16\x83R\x92\x90R Ta\x18\x82\x90\x84\x90a/\x9AV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x89\x16`\0\x90\x81R`\x02` \x90\x81R`@\x80\x83 \x93\x8B\x16\x83R\x92\x90R U[a\x18\xC4\x87\x87\x87\x87\x87\x86a \xB9V[`\x03T`\x04T`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x92\x83\x16\x92c=\xBB +\x92\x16\x90\x7F\x01f\xA0z\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\x90a\x19(\x90\x8B\x90\x8D\x90\x8C\x90\x8C\x90\x8C\x90\x8B\x90`$\x01a/\xB2V[`@\x80Q\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x81\x84\x03\x01\x81R\x91\x81R` \x82\x01\x80Q{\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xFF\xFF\xFF\xFF\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\x94\x85\x16\x17\x90RQ`\xE0\x85\x90\x1B\x90\x92\x16\x82Ra\x19\xBB\x92\x91\x87\x90`\x04\x01a/UV[`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a\x19\xD5W`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x19\xE9W=`\0\x80>=`\0\xFD[PPPPPPPPPPPV[`\0a\x1A\"\x82\x7F\x1D\x1D\x8Bc\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\0a!GV[\x80a\x1ARWPa\x1AR\x82\x7F\xECO\xC8\xE3\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\0a!GV[\x92\x91PPV[`\0a\x1A\x84\x83\x7F\x1D\x1D\x8Bc\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\0a!GV[\x15a\x1B-W\x82s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xC0\x1E\x1B\xD6`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x1A\xD4W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x1A\xF8\x91\x90a.hV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x82s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14\x90Pa\x1ARV[\x82s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xD6\xC0\xB2\xC4`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x1A\xD4W=`\0\x80>=`\0\xFD[`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x16`$\x82\x01R`D\x81\x01\x82\x90Ra\t\xF0\x90\x84\x90\x7F\xA9\x05\x9C\xBB\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\x90`d\x01[`@\x80Q\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x81\x84\x03\x01\x81R\x91\x90R` \x81\x01\x80Q{\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xFF\xFF\xFF\xFF\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\x90\x93\x16\x92\x90\x92\x17\x90\x91Ra!jV[\x83s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x86s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x86s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xB0DE#&\x87\x17\xA0&\x98\xBEG\xD0\x80:\xA7F\x8C\0\xAC\xBE\xD2\xF8\xBD\x93\xA0E\x9C\xDEa\xDD\x89\x86\x86\x86`@Qa\x1C\xC4\x93\x92\x91\x90a0\rV[`@Q\x80\x91\x03\x90\xA4a\x05o\x86\x86\x86\x86\x86\x86a\"vV[\x83s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16s\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\0\0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xB0DE#&\x87\x17\xA0&\x98\xBEG\xD0\x80:\xA7F\x8C\0\xAC\xBE\xD2\xF8\xBD\x93\xA0E\x9C\xDEa\xDD\x89\x86\x86\x86`@Qa\x1Dg\x93\x92\x91\x90a0\rV[`@Q\x80\x91\x03\x90\xA4a\x14m\x84\x84\x84\x84a\"\xFEV[`\0\x80`\0\x83Q` \x85\x01\x86\x89\x89\xF1\x95\x94PPPPPV[\x80s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c1<\xE5g`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x1D\xDEW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x1E\x02\x91\x90a0KV[`\xFF\x16\x82s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c1<\xE5g`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x1EPW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x1Et\x91\x90a0KV[`\xFF\x16\x14a\x1E\xAEW`@Q\x7F\xD2U\x98\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\x01`@Q\x80\x91\x03\x90\xFD[a\x1E\xB7\x82a\x19\xF6V[\x15a\x1E\xC6Wa\x14&\x82\x82a#kV[a\x14&\x81\x83a#kV[`\0Ta\x01\0\x90\x04`\xFF\x16a\x1FgW`@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\x82\x01R`+`$\x82\x01R\x7FInitializable: contract is not i`D\x82\x01R\x7Fnitializing\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x01\xC2V[`\x03\x80Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x93\x84\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x91\x82\x16\x17\x90\x91U`\x04\x80T\x92\x90\x93\x16\x91\x16\x17\x90UV[\x83s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16s\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\xDE\xAD\0\0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7Fs\xD1p\x91\n\xBA\x9EmP\xB1\x02\xDBR+\x1D\xBC\xD7\x96!oQ(\xB4E\xAA!5'(\x86I~\x86\x86\x86`@Qa G\x93\x92\x91\x90a0\rV[`@Q\x80\x91\x03\x90\xA4a\x14m\x84\x84\x84\x84a%\xB8V[`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x85\x16`$\x83\x01R\x83\x16`D\x82\x01R`d\x81\x01\x82\x90Ra\x14m\x90\x85\x90\x7F#\xB8r\xDD\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\x90`\x84\x01a\x1B\xCAV[\x83s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x86s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x86s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7Fs\xD1p\x91\n\xBA\x9EmP\xB1\x02\xDBR+\x1D\xBC\xD7\x96!oQ(\xB4E\xAA!5'(\x86I~\x86\x86\x86`@Qa!1\x93\x92\x91\x90a0\rV[`@Q\x80\x91\x03\x90\xA4a\x05o\x86\x86\x86\x86\x86\x86a&\x17V[`\0a!R\x83a&\x8FV[\x80\x15a!cWPa!c\x83\x83a&\xF3V[\x93\x92PPPV[`\0a!\xCC\x82`@Q\x80`@\x01`@R\x80` \x81R` \x01\x7FSafeERC20: low-level call failed\x81RP\x85s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a'\xC2\x90\x92\x91\x90c\xFF\xFF\xFF\xFF\x16V[\x80Q\x90\x91P\x15a\t\xF0W\x80\x80` \x01\x90Q\x81\x01\x90a!\xEA\x91\x90a0nV[a\t\xF0W`@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\x82\x01R`*`$\x82\x01R\x7FSafeERC20: ERC20 operation did n`D\x82\x01R\x7Fot succeed\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x01\xC2V[\x83s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x85s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x87s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xD5\x9Ce\xB3TE\"X5\xC8?P\xB6\xED\xE0j{\xE0G\xD2.5ps\xE2P\xD9\xAFSu\x18\xCD\x86\x86\x86`@Qa\"\xEE\x93\x92\x91\x90a0\rV[`@Q\x80\x91\x03\x90\xA4PPPPPPV[\x82s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x84s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F1\xB2\x16o\xF6\x04\xFCVr\xEA]\xF0\x8Ax\x08\x1D+\xC6\xD7F\xCA\xDC\xE8\x80t\x7F6C\xD8\x19\xE8=\x84\x84`@Qa#]\x92\x91\x90a0\x90V[`@Q\x80\x91\x03\x90\xA3PPPPV[`@Q\x7F1k79\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\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x16`\x04\x82\x01R`\0\x90sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x12\x90c1k79\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a#\xECW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a$\x10\x91\x90a.hV[\x90Ps\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16a$_W`@Q\x7F\xB3\xD3p\xD4\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\x01`@Q\x80\x91\x03\x90\xFD[`@Q\x7F1k79\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\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x16`\x04\x82\x01R`\0\x90sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0&\x90c1k79\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a$\xE0W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a%\x04\x91\x90a.hV[\x90Ps\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16a%SW`@Q\x7Fz\xCF\xD4S\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\x01`@Q\x80\x91\x03\x90\xFD[\x80s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x82s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14a\x14mW`@Q\x7F\x86\x86em\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\x01`@Q\x80\x91\x03\x90\xFD[\x82s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x84s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F(I\xB40t\t:\x059ko*\x93}\xEE\x85e\xB1ZH\xA7\xB3\xD4\xBF\xFBs*P\x178\n\xF5\x84\x84`@Qa#]\x92\x91\x90a0\x90V[\x83s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x85s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x87s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\x7F\xF1&\xDB\x80$BK\xBF\xD9\x82n\x8A\xB8/\xF5\x916(\x9E\xA4@\xB0K9\xA0\xDF\x1B\x03\xB9\xCA\xBF\x86\x86\x86`@Qa\"\xEE\x93\x92\x91\x90a0\rV[`\0a&\xBB\x82\x7F\x01\xFF\xC9\xA7\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\0a&\xF3V[\x80\x15a\x1ARWPa&\xEC\x82\x7F\xFF\xFF\xFF\xFF\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\0a&\xF3V[\x15\x92\x91PPV[`@\x80Q\x7F\xFF\xFF\xFF\xFF\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\x83\x16`$\x80\x83\x01\x91\x90\x91R\x82Q\x80\x83\x03\x90\x91\x01\x81R`D\x90\x91\x01\x90\x91R` \x80\x82\x01\x80Q{\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\x01\xFF\xC9\xA7\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\x17\x81R\x82Q`\0\x93\x92\x84\x92\x83\x92\x83\x92\x91\x83\x91\x90\x8Aau0\xFA\x92P=\x91P`\0Q\x90P\x82\x80\x15a'\xABWP` \x82\x10\x15[\x80\x15a'\xB7WP`\0\x81\x11[\x97\x96PPPPPPPV[``a'\xD1\x84\x84`\0\x85a'\xD9V[\x94\x93PPPPV[``\x82G\x10\x15a(kW`@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\x82\x01R`&`$\x82\x01R\x7FAddress: insufficient balance fo`D\x82\x01R\x7Fr call\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`d\x82\x01R`\x84\x01a\x01\xC2V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x85\x16;a(\xE9W`@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\x82\x01R`\x1D`$\x82\x01R\x7FAddress: call to non-contract\0\0\0`D\x82\x01R`d\x01a\x01\xC2V[`\0\x80\x86s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x85\x87`@Qa)\x12\x91\x90a0\xA9V[`\0`@Q\x80\x83\x03\x81\x85\x87Z\xF1\x92PPP=\x80`\0\x81\x14a)OW`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=`\0` \x84\x01>a)TV[``\x91P[P\x91P\x91Pa'\xB7\x82\x82\x86``\x83\x15a)nWP\x81a!cV[\x82Q\x15a)~W\x82Q\x80\x84` \x01\xFD[\x81`@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\x01\xC2\x91\x90a-\x19V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a)\xD4W`\0\x80\xFD[PV[`\0\x80\x83`\x1F\x84\x01\x12a)\xE9W`\0\x80\xFD[P\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a*\x01W`\0\x80\xFD[` \x83\x01\x91P\x83` \x82\x85\x01\x01\x11\x15a*\x19W`\0\x80\xFD[\x92P\x92\x90PV[`\0\x80`\0\x80`\0\x80`\0`\xC0\x88\x8A\x03\x12\x15a*;W`\0\x80\xFD[\x875a*F\x81a)\xB2V[\x96P` \x88\x015a*V\x81a)\xB2V[\x95P`@\x88\x015a*f\x81a)\xB2V[\x94P``\x88\x015a*v\x81a)\xB2V[\x93P`\x80\x88\x015\x92P`\xA0\x88\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a*\x99W`\0\x80\xFD[a*\xA5\x8A\x82\x8B\x01a)\xD7V[\x98\x9B\x97\x9AP\x95\x98P\x93\x96\x92\x95\x92\x93PPPV[\x805c\xFF\xFF\xFF\xFF\x81\x16\x81\x14a*\xCCW`\0\x80\xFD[\x91\x90PV[`\0\x80`\0`@\x84\x86\x03\x12\x15a*\xE6W`\0\x80\xFD[a*\xEF\x84a*\xB8V[\x92P` \x84\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a+\x0BW`\0\x80\xFD[a+\x17\x86\x82\x87\x01a)\xD7V[\x94\x97\x90\x96P\x93\x94PPPPV[`\0\x80`\0\x80`\0`\x80\x86\x88\x03\x12\x15a+ = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InvalidDecimals) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InvalidDecimals { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidDecimals { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidDecimals()"; + const SELECTOR: [u8; 4] = [210u8, 85u8, 152u8, 160u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidLegacyERC20Address()` and selector `0xb3d370d4`. +```solidity +error InvalidLegacyERC20Address(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidLegacyERC20Address; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: InvalidLegacyERC20Address) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for InvalidLegacyERC20Address { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidLegacyERC20Address { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidLegacyERC20Address()"; + const SELECTOR: [u8; 4] = [179u8, 211u8, 112u8, 212u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidSuperchainERC20Address()` and selector `0x7acfd453`. +```solidity +error InvalidSuperchainERC20Address(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidSuperchainERC20Address; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: InvalidSuperchainERC20Address) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for InvalidSuperchainERC20Address { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidSuperchainERC20Address { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidSuperchainERC20Address()"; + const SELECTOR: [u8; 4] = [122u8, 207u8, 212u8, 83u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidTokenPair()` and selector `0x8686656d`. +```solidity +error InvalidTokenPair(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidTokenPair; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InvalidTokenPair) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InvalidTokenPair { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidTokenPair { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidTokenPair()"; + const SELECTOR: [u8; 4] = [134u8, 134u8, 101u8, 109u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `Converted(address,address,address,uint256)` and selector `0xf98522c4d7ccb9de6d7bb8395a567bd90003fe876d577e4d0fd4b53e1ddfedf8`. +```solidity +event Converted(address indexed from, address indexed to, address indexed caller, uint256 amount); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct Converted { + #[allow(missing_docs)] + pub from: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub caller: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub amount: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for Converted { + type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "Converted(address,address,address,uint256)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 249u8, 133u8, 34u8, 196u8, 215u8, 204u8, 185u8, 222u8, 109u8, 123u8, + 184u8, 57u8, 90u8, 86u8, 123u8, 217u8, 0u8, 3u8, 254u8, 135u8, 109u8, + 87u8, 126u8, 77u8, 15u8, 212u8, 181u8, 62u8, 29u8, 223u8, 237u8, 248u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + from: topics.1, + to: topics.2, + caller: topics.3, + amount: data.0, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.amount), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + ( + Self::SIGNATURE_HASH.into(), + self.from.clone(), + self.to.clone(), + self.caller.clone(), + ) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.from, + ); + out[2usize] = ::encode_topic( + &self.to, + ); + out[3usize] = ::encode_topic( + &self.caller, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for Converted { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&Converted> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &Converted) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `DepositFinalized(address,address,address,address,uint256,bytes)` and selector `0xb0444523268717a02698be47d0803aa7468c00acbed2f8bd93a0459cde61dd89`. +```solidity +event DepositFinalized(address indexed l1Token, address indexed l2Token, address indexed from, address to, uint256 amount, bytes extraData); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct DepositFinalized { + #[allow(missing_docs)] + pub l1Token: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub l2Token: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub from: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub amount: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub extraData: alloy::sol_types::private::Bytes, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for DepositFinalized { + type DataTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Bytes, + ); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "DepositFinalized(address,address,address,address,uint256,bytes)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 176u8, 68u8, 69u8, 35u8, 38u8, 135u8, 23u8, 160u8, 38u8, 152u8, 190u8, + 71u8, 208u8, 128u8, 58u8, 167u8, 70u8, 140u8, 0u8, 172u8, 190u8, 210u8, + 248u8, 189u8, 147u8, 160u8, 69u8, 156u8, 222u8, 97u8, 221u8, 137u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + l1Token: topics.1, + l2Token: topics.2, + from: topics.3, + to: data.0, + amount: data.1, + extraData: data.2, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + ::tokenize( + &self.to, + ), + as alloy_sol_types::SolType>::tokenize(&self.amount), + ::tokenize( + &self.extraData, + ), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + ( + Self::SIGNATURE_HASH.into(), + self.l1Token.clone(), + self.l2Token.clone(), + self.from.clone(), + ) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.l1Token, + ); + out[2usize] = ::encode_topic( + &self.l2Token, + ); + out[3usize] = ::encode_topic( + &self.from, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for DepositFinalized { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&DepositFinalized> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &DepositFinalized) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `ERC20BridgeFinalized(address,address,address,address,uint256,bytes)` and selector `0xd59c65b35445225835c83f50b6ede06a7be047d22e357073e250d9af537518cd`. +```solidity +event ERC20BridgeFinalized(address indexed localToken, address indexed remoteToken, address indexed from, address to, uint256 amount, bytes extraData); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct ERC20BridgeFinalized { + #[allow(missing_docs)] + pub localToken: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub remoteToken: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub from: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub amount: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub extraData: alloy::sol_types::private::Bytes, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for ERC20BridgeFinalized { + type DataTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Bytes, + ); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "ERC20BridgeFinalized(address,address,address,address,uint256,bytes)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 213u8, 156u8, 101u8, 179u8, 84u8, 69u8, 34u8, 88u8, 53u8, 200u8, 63u8, + 80u8, 182u8, 237u8, 224u8, 106u8, 123u8, 224u8, 71u8, 210u8, 46u8, 53u8, + 112u8, 115u8, 226u8, 80u8, 217u8, 175u8, 83u8, 117u8, 24u8, 205u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + localToken: topics.1, + remoteToken: topics.2, + from: topics.3, + to: data.0, + amount: data.1, + extraData: data.2, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + ::tokenize( + &self.to, + ), + as alloy_sol_types::SolType>::tokenize(&self.amount), + ::tokenize( + &self.extraData, + ), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + ( + Self::SIGNATURE_HASH.into(), + self.localToken.clone(), + self.remoteToken.clone(), + self.from.clone(), + ) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.localToken, + ); + out[2usize] = ::encode_topic( + &self.remoteToken, + ); + out[3usize] = ::encode_topic( + &self.from, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for ERC20BridgeFinalized { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&ERC20BridgeFinalized> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &ERC20BridgeFinalized) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `ERC20BridgeInitiated(address,address,address,address,uint256,bytes)` and selector `0x7ff126db8024424bbfd9826e8ab82ff59136289ea440b04b39a0df1b03b9cabf`. +```solidity +event ERC20BridgeInitiated(address indexed localToken, address indexed remoteToken, address indexed from, address to, uint256 amount, bytes extraData); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct ERC20BridgeInitiated { + #[allow(missing_docs)] + pub localToken: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub remoteToken: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub from: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub amount: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub extraData: alloy::sol_types::private::Bytes, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for ERC20BridgeInitiated { + type DataTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Bytes, + ); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "ERC20BridgeInitiated(address,address,address,address,uint256,bytes)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 127u8, 241u8, 38u8, 219u8, 128u8, 36u8, 66u8, 75u8, 191u8, 217u8, 130u8, + 110u8, 138u8, 184u8, 47u8, 245u8, 145u8, 54u8, 40u8, 158u8, 164u8, 64u8, + 176u8, 75u8, 57u8, 160u8, 223u8, 27u8, 3u8, 185u8, 202u8, 191u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + localToken: topics.1, + remoteToken: topics.2, + from: topics.3, + to: data.0, + amount: data.1, + extraData: data.2, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + ::tokenize( + &self.to, + ), + as alloy_sol_types::SolType>::tokenize(&self.amount), + ::tokenize( + &self.extraData, + ), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + ( + Self::SIGNATURE_HASH.into(), + self.localToken.clone(), + self.remoteToken.clone(), + self.from.clone(), + ) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.localToken, + ); + out[2usize] = ::encode_topic( + &self.remoteToken, + ); + out[3usize] = ::encode_topic( + &self.from, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for ERC20BridgeInitiated { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&ERC20BridgeInitiated> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &ERC20BridgeInitiated) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `ETHBridgeFinalized(address,address,uint256,bytes)` and selector `0x31b2166ff604fc5672ea5df08a78081d2bc6d746cadce880747f3643d819e83d`. +```solidity +event ETHBridgeFinalized(address indexed from, address indexed to, uint256 amount, bytes extraData); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct ETHBridgeFinalized { + #[allow(missing_docs)] + pub from: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub amount: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub extraData: alloy::sol_types::private::Bytes, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for ETHBridgeFinalized { + type DataTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Bytes, + ); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "ETHBridgeFinalized(address,address,uint256,bytes)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 49u8, 178u8, 22u8, 111u8, 246u8, 4u8, 252u8, 86u8, 114u8, 234u8, 93u8, + 240u8, 138u8, 120u8, 8u8, 29u8, 43u8, 198u8, 215u8, 70u8, 202u8, 220u8, + 232u8, 128u8, 116u8, 127u8, 54u8, 67u8, 216u8, 25u8, 232u8, 61u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + from: topics.1, + to: topics.2, + amount: data.0, + extraData: data.1, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.amount), + ::tokenize( + &self.extraData, + ), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.from.clone(), self.to.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.from, + ); + out[2usize] = ::encode_topic( + &self.to, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for ETHBridgeFinalized { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<ÐBridgeFinalized> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: ÐBridgeFinalized) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `ETHBridgeInitiated(address,address,uint256,bytes)` and selector `0x2849b43074093a05396b6f2a937dee8565b15a48a7b3d4bffb732a5017380af5`. +```solidity +event ETHBridgeInitiated(address indexed from, address indexed to, uint256 amount, bytes extraData); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct ETHBridgeInitiated { + #[allow(missing_docs)] + pub from: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub amount: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub extraData: alloy::sol_types::private::Bytes, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for ETHBridgeInitiated { + type DataTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Bytes, + ); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "ETHBridgeInitiated(address,address,uint256,bytes)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 40u8, 73u8, 180u8, 48u8, 116u8, 9u8, 58u8, 5u8, 57u8, 107u8, 111u8, 42u8, + 147u8, 125u8, 238u8, 133u8, 101u8, 177u8, 90u8, 72u8, 167u8, 179u8, + 212u8, 191u8, 251u8, 115u8, 42u8, 80u8, 23u8, 56u8, 10u8, 245u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + from: topics.1, + to: topics.2, + amount: data.0, + extraData: data.1, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.amount), + ::tokenize( + &self.extraData, + ), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.from.clone(), self.to.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.from, + ); + out[2usize] = ::encode_topic( + &self.to, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for ETHBridgeInitiated { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<ÐBridgeInitiated> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: ÐBridgeInitiated) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `Initialized(uint8)` and selector `0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498`. +```solidity +event Initialized(uint8 version); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct Initialized { + #[allow(missing_docs)] + pub version: u8, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for Initialized { + type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<8>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,); + const SIGNATURE: &'static str = "Initialized(uint8)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 127u8, 38u8, 184u8, 63u8, 249u8, 110u8, 31u8, 43u8, 106u8, 104u8, 47u8, + 19u8, 56u8, 82u8, 246u8, 121u8, 138u8, 9u8, 196u8, 101u8, 218u8, 149u8, + 146u8, 20u8, 96u8, 206u8, 251u8, 56u8, 71u8, 64u8, 36u8, 152u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { version: data.0 } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.version), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(),) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for Initialized { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&Initialized> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &Initialized) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `WithdrawalInitiated(address,address,address,address,uint256,bytes)` and selector `0x73d170910aba9e6d50b102db522b1dbcd796216f5128b445aa2135272886497e`. +```solidity +event WithdrawalInitiated(address indexed l1Token, address indexed l2Token, address indexed from, address to, uint256 amount, bytes extraData); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct WithdrawalInitiated { + #[allow(missing_docs)] + pub l1Token: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub l2Token: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub from: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub amount: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub extraData: alloy::sol_types::private::Bytes, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for WithdrawalInitiated { + type DataTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Bytes, + ); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "WithdrawalInitiated(address,address,address,address,uint256,bytes)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 115u8, 209u8, 112u8, 145u8, 10u8, 186u8, 158u8, 109u8, 80u8, 177u8, 2u8, + 219u8, 82u8, 43u8, 29u8, 188u8, 215u8, 150u8, 33u8, 111u8, 81u8, 40u8, + 180u8, 69u8, 170u8, 33u8, 53u8, 39u8, 40u8, 134u8, 73u8, 126u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + l1Token: topics.1, + l2Token: topics.2, + from: topics.3, + to: data.0, + amount: data.1, + extraData: data.2, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + ::tokenize( + &self.to, + ), + as alloy_sol_types::SolType>::tokenize(&self.amount), + ::tokenize( + &self.extraData, + ), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + ( + Self::SIGNATURE_HASH.into(), + self.l1Token.clone(), + self.l2Token.clone(), + self.from.clone(), + ) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.l1Token, + ); + out[2usize] = ::encode_topic( + &self.l2Token, + ); + out[3usize] = ::encode_topic( + &self.from, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for WithdrawalInitiated { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&WithdrawalInitiated> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &WithdrawalInitiated) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `MESSENGER()` and selector `0x927ede2d`. +```solidity +function MESSENGER() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct MESSENGERCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`MESSENGER()`](MESSENGERCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct MESSENGERReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: MESSENGERCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for MESSENGERCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: MESSENGERReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for MESSENGERReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for MESSENGERCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "MESSENGER()"; + const SELECTOR: [u8; 4] = [146u8, 126u8, 222u8, 45u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: MESSENGERReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: MESSENGERReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `OTHER_BRIDGE()` and selector `0x7f46ddb2`. +```solidity +function OTHER_BRIDGE() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct OTHER_BRIDGECall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`OTHER_BRIDGE()`](OTHER_BRIDGECall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct OTHER_BRIDGEReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: OTHER_BRIDGECall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for OTHER_BRIDGECall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: OTHER_BRIDGEReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for OTHER_BRIDGEReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for OTHER_BRIDGECall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "OTHER_BRIDGE()"; + const SELECTOR: [u8; 4] = [127u8, 70u8, 221u8, 178u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: OTHER_BRIDGEReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: OTHER_BRIDGEReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `bridgeERC20(address,address,uint256,uint32,bytes)` and selector `0x87087623`. +```solidity +function bridgeERC20(address _localToken, address _remoteToken, uint256 _amount, uint32 _minGasLimit, bytes memory _extraData) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct bridgeERC20Call { + #[allow(missing_docs)] + pub _localToken: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _remoteToken: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _amount: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _minGasLimit: u32, + #[allow(missing_docs)] + pub _extraData: alloy::sol_types::private::Bytes, + } + ///Container type for the return parameters of the [`bridgeERC20(address,address,uint256,uint32,bytes)`](bridgeERC20Call) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct bridgeERC20Return {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<32>, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + u32, + alloy::sol_types::private::Bytes, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: bridgeERC20Call) -> Self { + ( + value._localToken, + value._remoteToken, + value._amount, + value._minGasLimit, + value._extraData, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for bridgeERC20Call { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _localToken: tuple.0, + _remoteToken: tuple.1, + _amount: tuple.2, + _minGasLimit: tuple.3, + _extraData: tuple.4, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: bridgeERC20Return) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for bridgeERC20Return { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl bridgeERC20Return { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for bridgeERC20Call { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<32>, + alloy::sol_types::sol_data::Bytes, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bridgeERC20Return; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "bridgeERC20(address,address,uint256,uint32,bytes)"; + const SELECTOR: [u8; 4] = [135u8, 8u8, 118u8, 35u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._localToken, + ), + ::tokenize( + &self._remoteToken, + ), + as alloy_sol_types::SolType>::tokenize(&self._amount), + as alloy_sol_types::SolType>::tokenize(&self._minGasLimit), + ::tokenize( + &self._extraData, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + bridgeERC20Return::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `bridgeERC20To(address,address,address,uint256,uint32,bytes)` and selector `0x540abf73`. +```solidity +function bridgeERC20To(address _localToken, address _remoteToken, address _to, uint256 _amount, uint32 _minGasLimit, bytes memory _extraData) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct bridgeERC20ToCall { + #[allow(missing_docs)] + pub _localToken: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _remoteToken: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _amount: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _minGasLimit: u32, + #[allow(missing_docs)] + pub _extraData: alloy::sol_types::private::Bytes, + } + ///Container type for the return parameters of the [`bridgeERC20To(address,address,address,uint256,uint32,bytes)`](bridgeERC20ToCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct bridgeERC20ToReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<32>, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + u32, + alloy::sol_types::private::Bytes, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: bridgeERC20ToCall) -> Self { + ( + value._localToken, + value._remoteToken, + value._to, + value._amount, + value._minGasLimit, + value._extraData, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for bridgeERC20ToCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _localToken: tuple.0, + _remoteToken: tuple.1, + _to: tuple.2, + _amount: tuple.3, + _minGasLimit: tuple.4, + _extraData: tuple.5, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: bridgeERC20ToReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for bridgeERC20ToReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl bridgeERC20ToReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for bridgeERC20ToCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<32>, + alloy::sol_types::sol_data::Bytes, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bridgeERC20ToReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "bridgeERC20To(address,address,address,uint256,uint32,bytes)"; + const SELECTOR: [u8; 4] = [84u8, 10u8, 191u8, 115u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._localToken, + ), + ::tokenize( + &self._remoteToken, + ), + ::tokenize( + &self._to, + ), + as alloy_sol_types::SolType>::tokenize(&self._amount), + as alloy_sol_types::SolType>::tokenize(&self._minGasLimit), + ::tokenize( + &self._extraData, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + bridgeERC20ToReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `bridgeETH(uint32,bytes)` and selector `0x09fc8843`. +```solidity +function bridgeETH(uint32 _minGasLimit, bytes memory _extraData) external payable; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct bridgeETHCall { + #[allow(missing_docs)] + pub _minGasLimit: u32, + #[allow(missing_docs)] + pub _extraData: alloy::sol_types::private::Bytes, + } + ///Container type for the return parameters of the [`bridgeETH(uint32,bytes)`](bridgeETHCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct bridgeETHReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Uint<32>, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u32, alloy::sol_types::private::Bytes); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: bridgeETHCall) -> Self { + (value._minGasLimit, value._extraData) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for bridgeETHCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _minGasLimit: tuple.0, + _extraData: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: bridgeETHReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for bridgeETHReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl bridgeETHReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for bridgeETHCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Uint<32>, + alloy::sol_types::sol_data::Bytes, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bridgeETHReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "bridgeETH(uint32,bytes)"; + const SELECTOR: [u8; 4] = [9u8, 252u8, 136u8, 67u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._minGasLimit), + ::tokenize( + &self._extraData, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + bridgeETHReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `bridgeETHTo(address,uint32,bytes)` and selector `0xe11013dd`. +```solidity +function bridgeETHTo(address _to, uint32 _minGasLimit, bytes memory _extraData) external payable; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct bridgeETHToCall { + #[allow(missing_docs)] + pub _to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _minGasLimit: u32, + #[allow(missing_docs)] + pub _extraData: alloy::sol_types::private::Bytes, + } + ///Container type for the return parameters of the [`bridgeETHTo(address,uint32,bytes)`](bridgeETHToCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct bridgeETHToReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<32>, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + u32, + alloy::sol_types::private::Bytes, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: bridgeETHToCall) -> Self { + (value._to, value._minGasLimit, value._extraData) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for bridgeETHToCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _to: tuple.0, + _minGasLimit: tuple.1, + _extraData: tuple.2, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: bridgeETHToReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for bridgeETHToReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl bridgeETHToReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for bridgeETHToCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<32>, + alloy::sol_types::sol_data::Bytes, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bridgeETHToReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "bridgeETHTo(address,uint32,bytes)"; + const SELECTOR: [u8; 4] = [225u8, 16u8, 19u8, 221u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._to, + ), + as alloy_sol_types::SolType>::tokenize(&self._minGasLimit), + ::tokenize( + &self._extraData, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + bridgeETHToReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `convert(address,address,uint256)` and selector `0x248391ff`. +```solidity +function convert(address _from, address _to, uint256 _amount) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct convertCall { + #[allow(missing_docs)] + pub _from: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _amount: alloy::sol_types::private::primitives::aliases::U256, + } + ///Container type for the return parameters of the [`convert(address,address,uint256)`](convertCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct convertReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: convertCall) -> Self { + (value._from, value._to, value._amount) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for convertCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _from: tuple.0, + _to: tuple.1, + _amount: tuple.2, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: convertReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for convertReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl convertReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for convertCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = convertReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "convert(address,address,uint256)"; + const SELECTOR: [u8; 4] = [36u8, 131u8, 145u8, 255u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._from, + ), + ::tokenize( + &self._to, + ), + as alloy_sol_types::SolType>::tokenize(&self._amount), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + convertReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `deposits(address,address)` and selector `0x8f601f66`. +```solidity +function deposits(address, address) external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct depositsCall { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _1: alloy::sol_types::private::Address, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`deposits(address,address)`](depositsCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct depositsReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: depositsCall) -> Self { + (value._0, value._1) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for depositsCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0, _1: tuple.1 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: depositsReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for depositsReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for depositsCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "deposits(address,address)"; + const SELECTOR: [u8; 4] = [143u8, 96u8, 31u8, 102u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._0, + ), + ::tokenize( + &self._1, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: depositsReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: depositsReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `finalizeBridgeERC20(address,address,address,address,uint256,bytes)` and selector `0x0166a07a`. +```solidity +function finalizeBridgeERC20(address _localToken, address _remoteToken, address _from, address _to, uint256 _amount, bytes memory _extraData) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct finalizeBridgeERC20Call { + #[allow(missing_docs)] + pub _localToken: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _remoteToken: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _from: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _amount: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _extraData: alloy::sol_types::private::Bytes, + } + ///Container type for the return parameters of the [`finalizeBridgeERC20(address,address,address,address,uint256,bytes)`](finalizeBridgeERC20Call) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct finalizeBridgeERC20Return {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::Bytes, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: finalizeBridgeERC20Call) -> Self { + ( + value._localToken, + value._remoteToken, + value._from, + value._to, + value._amount, + value._extraData, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for finalizeBridgeERC20Call { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _localToken: tuple.0, + _remoteToken: tuple.1, + _from: tuple.2, + _to: tuple.3, + _amount: tuple.4, + _extraData: tuple.5, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: finalizeBridgeERC20Return) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for finalizeBridgeERC20Return { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl finalizeBridgeERC20Return { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for finalizeBridgeERC20Call { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Bytes, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = finalizeBridgeERC20Return; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "finalizeBridgeERC20(address,address,address,address,uint256,bytes)"; + const SELECTOR: [u8; 4] = [1u8, 102u8, 160u8, 122u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._localToken, + ), + ::tokenize( + &self._remoteToken, + ), + ::tokenize( + &self._from, + ), + ::tokenize( + &self._to, + ), + as alloy_sol_types::SolType>::tokenize(&self._amount), + ::tokenize( + &self._extraData, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + finalizeBridgeERC20Return::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `finalizeBridgeETH(address,address,uint256,bytes)` and selector `0x1635f5fd`. +```solidity +function finalizeBridgeETH(address _from, address _to, uint256 _amount, bytes memory _extraData) external payable; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct finalizeBridgeETHCall { + #[allow(missing_docs)] + pub _from: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _amount: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _extraData: alloy::sol_types::private::Bytes, + } + ///Container type for the return parameters of the [`finalizeBridgeETH(address,address,uint256,bytes)`](finalizeBridgeETHCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct finalizeBridgeETHReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::Bytes, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: finalizeBridgeETHCall) -> Self { + (value._from, value._to, value._amount, value._extraData) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for finalizeBridgeETHCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _from: tuple.0, + _to: tuple.1, + _amount: tuple.2, + _extraData: tuple.3, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: finalizeBridgeETHReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for finalizeBridgeETHReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl finalizeBridgeETHReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for finalizeBridgeETHCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Bytes, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = finalizeBridgeETHReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "finalizeBridgeETH(address,address,uint256,bytes)"; + const SELECTOR: [u8; 4] = [22u8, 53u8, 245u8, 253u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._from, + ), + ::tokenize( + &self._to, + ), + as alloy_sol_types::SolType>::tokenize(&self._amount), + ::tokenize( + &self._extraData, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + finalizeBridgeETHReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `initialize(address)` and selector `0xc4d66de8`. +```solidity +function initialize(address _otherBridge) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct initializeCall { + #[allow(missing_docs)] + pub _otherBridge: alloy::sol_types::private::Address, + } + ///Container type for the return parameters of the [`initialize(address)`](initializeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct initializeReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: initializeCall) -> Self { + (value._otherBridge,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for initializeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _otherBridge: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: initializeReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for initializeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl initializeReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for initializeCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = initializeReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "initialize(address)"; + const SELECTOR: [u8; 4] = [196u8, 214u8, 109u8, 232u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._otherBridge, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + initializeReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `l1TokenBridge()` and selector `0x36c717c1`. +```solidity +function l1TokenBridge() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct l1TokenBridgeCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`l1TokenBridge()`](l1TokenBridgeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct l1TokenBridgeReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: l1TokenBridgeCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for l1TokenBridgeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: l1TokenBridgeReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for l1TokenBridgeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for l1TokenBridgeCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "l1TokenBridge()"; + const SELECTOR: [u8; 4] = [54u8, 199u8, 23u8, 193u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: l1TokenBridgeReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: l1TokenBridgeReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `messenger()` and selector `0x3cb747bf`. +```solidity +function messenger() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct messengerCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`messenger()`](messengerCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct messengerReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: messengerCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for messengerCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: messengerReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for messengerReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for messengerCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "messenger()"; + const SELECTOR: [u8; 4] = [60u8, 183u8, 71u8, 191u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: messengerReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: messengerReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `otherBridge()` and selector `0xc89701a2`. +```solidity +function otherBridge() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct otherBridgeCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`otherBridge()`](otherBridgeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct otherBridgeReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: otherBridgeCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for otherBridgeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: otherBridgeReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for otherBridgeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for otherBridgeCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "otherBridge()"; + const SELECTOR: [u8; 4] = [200u8, 151u8, 1u8, 162u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: otherBridgeReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: otherBridgeReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `paused()` and selector `0x5c975abb`. +```solidity +function paused() external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct pausedCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`paused()`](pausedCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct pausedReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: pausedCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for pausedCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: pausedReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for pausedReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for pausedCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "paused()"; + const SELECTOR: [u8; 4] = [92u8, 151u8, 90u8, 187u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: pausedReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: pausedReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `version()` and selector `0x54fd4d50`. +```solidity +function version() external pure returns (string memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`version()`](versionCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for versionCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::String; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "version()"; + const SELECTOR: [u8; 4] = [84u8, 253u8, 77u8, 80u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `withdraw(address,uint256,uint32,bytes)` and selector `0x32b7006d`. +```solidity +function withdraw(address _l2Token, uint256 _amount, uint32 _minGasLimit, bytes memory _extraData) external payable; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct withdrawCall { + #[allow(missing_docs)] + pub _l2Token: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _amount: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _minGasLimit: u32, + #[allow(missing_docs)] + pub _extraData: alloy::sol_types::private::Bytes, + } + ///Container type for the return parameters of the [`withdraw(address,uint256,uint32,bytes)`](withdrawCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct withdrawReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<32>, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + u32, + alloy::sol_types::private::Bytes, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: withdrawCall) -> Self { + (value._l2Token, value._amount, value._minGasLimit, value._extraData) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for withdrawCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _l2Token: tuple.0, + _amount: tuple.1, + _minGasLimit: tuple.2, + _extraData: tuple.3, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: withdrawReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for withdrawReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl withdrawReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for withdrawCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<32>, + alloy::sol_types::sol_data::Bytes, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = withdrawReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "withdraw(address,uint256,uint32,bytes)"; + const SELECTOR: [u8; 4] = [50u8, 183u8, 0u8, 109u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._l2Token, + ), + as alloy_sol_types::SolType>::tokenize(&self._amount), + as alloy_sol_types::SolType>::tokenize(&self._minGasLimit), + ::tokenize( + &self._extraData, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + withdrawReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `withdrawTo(address,address,uint256,uint32,bytes)` and selector `0xa3a79548`. +```solidity +function withdrawTo(address _l2Token, address _to, uint256 _amount, uint32 _minGasLimit, bytes memory _extraData) external payable; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct withdrawToCall { + #[allow(missing_docs)] + pub _l2Token: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _amount: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _minGasLimit: u32, + #[allow(missing_docs)] + pub _extraData: alloy::sol_types::private::Bytes, + } + ///Container type for the return parameters of the [`withdrawTo(address,address,uint256,uint32,bytes)`](withdrawToCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct withdrawToReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<32>, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + u32, + alloy::sol_types::private::Bytes, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: withdrawToCall) -> Self { + ( + value._l2Token, + value._to, + value._amount, + value._minGasLimit, + value._extraData, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for withdrawToCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _l2Token: tuple.0, + _to: tuple.1, + _amount: tuple.2, + _minGasLimit: tuple.3, + _extraData: tuple.4, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: withdrawToReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for withdrawToReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl withdrawToReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for withdrawToCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<32>, + alloy::sol_types::sol_data::Bytes, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = withdrawToReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "withdrawTo(address,address,uint256,uint32,bytes)"; + const SELECTOR: [u8; 4] = [163u8, 167u8, 149u8, 72u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._l2Token, + ), + ::tokenize( + &self._to, + ), + as alloy_sol_types::SolType>::tokenize(&self._amount), + as alloy_sol_types::SolType>::tokenize(&self._minGasLimit), + ::tokenize( + &self._extraData, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + withdrawToReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + ///Container for all the [`L2StandardBridgeInterop`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum L2StandardBridgeInteropCalls { + #[allow(missing_docs)] + MESSENGER(MESSENGERCall), + #[allow(missing_docs)] + OTHER_BRIDGE(OTHER_BRIDGECall), + #[allow(missing_docs)] + bridgeERC20(bridgeERC20Call), + #[allow(missing_docs)] + bridgeERC20To(bridgeERC20ToCall), + #[allow(missing_docs)] + bridgeETH(bridgeETHCall), + #[allow(missing_docs)] + bridgeETHTo(bridgeETHToCall), + #[allow(missing_docs)] + convert(convertCall), + #[allow(missing_docs)] + deposits(depositsCall), + #[allow(missing_docs)] + finalizeBridgeERC20(finalizeBridgeERC20Call), + #[allow(missing_docs)] + finalizeBridgeETH(finalizeBridgeETHCall), + #[allow(missing_docs)] + initialize(initializeCall), + #[allow(missing_docs)] + l1TokenBridge(l1TokenBridgeCall), + #[allow(missing_docs)] + messenger(messengerCall), + #[allow(missing_docs)] + otherBridge(otherBridgeCall), + #[allow(missing_docs)] + paused(pausedCall), + #[allow(missing_docs)] + version(versionCall), + #[allow(missing_docs)] + withdraw(withdrawCall), + #[allow(missing_docs)] + withdrawTo(withdrawToCall), + } + impl L2StandardBridgeInteropCalls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [1u8, 102u8, 160u8, 122u8], + [9u8, 252u8, 136u8, 67u8], + [22u8, 53u8, 245u8, 253u8], + [36u8, 131u8, 145u8, 255u8], + [50u8, 183u8, 0u8, 109u8], + [54u8, 199u8, 23u8, 193u8], + [60u8, 183u8, 71u8, 191u8], + [84u8, 10u8, 191u8, 115u8], + [84u8, 253u8, 77u8, 80u8], + [92u8, 151u8, 90u8, 187u8], + [127u8, 70u8, 221u8, 178u8], + [135u8, 8u8, 118u8, 35u8], + [143u8, 96u8, 31u8, 102u8], + [146u8, 126u8, 222u8, 45u8], + [163u8, 167u8, 149u8, 72u8], + [196u8, 214u8, 109u8, 232u8], + [200u8, 151u8, 1u8, 162u8], + [225u8, 16u8, 19u8, 221u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(finalizeBridgeERC20), + ::core::stringify!(bridgeETH), + ::core::stringify!(finalizeBridgeETH), + ::core::stringify!(convert), + ::core::stringify!(withdraw), + ::core::stringify!(l1TokenBridge), + ::core::stringify!(messenger), + ::core::stringify!(bridgeERC20To), + ::core::stringify!(version), + ::core::stringify!(paused), + ::core::stringify!(OTHER_BRIDGE), + ::core::stringify!(bridgeERC20), + ::core::stringify!(deposits), + ::core::stringify!(MESSENGER), + ::core::stringify!(withdrawTo), + ::core::stringify!(initialize), + ::core::stringify!(otherBridge), + ::core::stringify!(bridgeETHTo), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for L2StandardBridgeInteropCalls { + const NAME: &'static str = "L2StandardBridgeInteropCalls"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 18usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::MESSENGER(_) => { + ::SELECTOR + } + Self::OTHER_BRIDGE(_) => { + ::SELECTOR + } + Self::bridgeERC20(_) => { + ::SELECTOR + } + Self::bridgeERC20To(_) => { + ::SELECTOR + } + Self::bridgeETH(_) => { + ::SELECTOR + } + Self::bridgeETHTo(_) => { + ::SELECTOR + } + Self::convert(_) => ::SELECTOR, + Self::deposits(_) => ::SELECTOR, + Self::finalizeBridgeERC20(_) => { + ::SELECTOR + } + Self::finalizeBridgeETH(_) => { + ::SELECTOR + } + Self::initialize(_) => { + ::SELECTOR + } + Self::l1TokenBridge(_) => { + ::SELECTOR + } + Self::messenger(_) => { + ::SELECTOR + } + Self::otherBridge(_) => { + ::SELECTOR + } + Self::paused(_) => ::SELECTOR, + Self::version(_) => ::SELECTOR, + Self::withdraw(_) => ::SELECTOR, + Self::withdrawTo(_) => { + ::SELECTOR + } + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn finalizeBridgeERC20( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L2StandardBridgeInteropCalls::finalizeBridgeERC20) + } + finalizeBridgeERC20 + }, + { + fn bridgeETH( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(L2StandardBridgeInteropCalls::bridgeETH) + } + bridgeETH + }, + { + fn finalizeBridgeETH( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L2StandardBridgeInteropCalls::finalizeBridgeETH) + } + finalizeBridgeETH + }, + { + fn convert( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(L2StandardBridgeInteropCalls::convert) + } + convert + }, + { + fn withdraw( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(L2StandardBridgeInteropCalls::withdraw) + } + withdraw + }, + { + fn l1TokenBridge( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L2StandardBridgeInteropCalls::l1TokenBridge) + } + l1TokenBridge + }, + { + fn messenger( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(L2StandardBridgeInteropCalls::messenger) + } + messenger + }, + { + fn bridgeERC20To( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L2StandardBridgeInteropCalls::bridgeERC20To) + } + bridgeERC20To + }, + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(L2StandardBridgeInteropCalls::version) + } + version + }, + { + fn paused( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(L2StandardBridgeInteropCalls::paused) + } + paused + }, + { + fn OTHER_BRIDGE( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L2StandardBridgeInteropCalls::OTHER_BRIDGE) + } + OTHER_BRIDGE + }, + { + fn bridgeERC20( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L2StandardBridgeInteropCalls::bridgeERC20) + } + bridgeERC20 + }, + { + fn deposits( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(L2StandardBridgeInteropCalls::deposits) + } + deposits + }, + { + fn MESSENGER( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(L2StandardBridgeInteropCalls::MESSENGER) + } + MESSENGER + }, + { + fn withdrawTo( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L2StandardBridgeInteropCalls::withdrawTo) + } + withdrawTo + }, + { + fn initialize( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L2StandardBridgeInteropCalls::initialize) + } + initialize + }, + { + fn otherBridge( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L2StandardBridgeInteropCalls::otherBridge) + } + otherBridge + }, + { + fn bridgeETHTo( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L2StandardBridgeInteropCalls::bridgeETHTo) + } + bridgeETHTo + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn finalizeBridgeERC20( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L2StandardBridgeInteropCalls::finalizeBridgeERC20) + } + finalizeBridgeERC20 + }, + { + fn bridgeETH( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L2StandardBridgeInteropCalls::bridgeETH) + } + bridgeETH + }, + { + fn finalizeBridgeETH( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L2StandardBridgeInteropCalls::finalizeBridgeETH) + } + finalizeBridgeETH + }, + { + fn convert( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L2StandardBridgeInteropCalls::convert) + } + convert + }, + { + fn withdraw( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L2StandardBridgeInteropCalls::withdraw) + } + withdraw + }, + { + fn l1TokenBridge( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L2StandardBridgeInteropCalls::l1TokenBridge) + } + l1TokenBridge + }, + { + fn messenger( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L2StandardBridgeInteropCalls::messenger) + } + messenger + }, + { + fn bridgeERC20To( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L2StandardBridgeInteropCalls::bridgeERC20To) + } + bridgeERC20To + }, + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L2StandardBridgeInteropCalls::version) + } + version + }, + { + fn paused( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L2StandardBridgeInteropCalls::paused) + } + paused + }, + { + fn OTHER_BRIDGE( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L2StandardBridgeInteropCalls::OTHER_BRIDGE) + } + OTHER_BRIDGE + }, + { + fn bridgeERC20( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L2StandardBridgeInteropCalls::bridgeERC20) + } + bridgeERC20 + }, + { + fn deposits( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L2StandardBridgeInteropCalls::deposits) + } + deposits + }, + { + fn MESSENGER( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L2StandardBridgeInteropCalls::MESSENGER) + } + MESSENGER + }, + { + fn withdrawTo( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L2StandardBridgeInteropCalls::withdrawTo) + } + withdrawTo + }, + { + fn initialize( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L2StandardBridgeInteropCalls::initialize) + } + initialize + }, + { + fn otherBridge( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L2StandardBridgeInteropCalls::otherBridge) + } + otherBridge + }, + { + fn bridgeETHTo( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L2StandardBridgeInteropCalls::bridgeETHTo) + } + bridgeETHTo + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::MESSENGER(inner) => { + ::abi_encoded_size(inner) + } + Self::OTHER_BRIDGE(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::bridgeERC20(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::bridgeERC20To(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::bridgeETH(inner) => { + ::abi_encoded_size(inner) + } + Self::bridgeETHTo(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::convert(inner) => { + ::abi_encoded_size(inner) + } + Self::deposits(inner) => { + ::abi_encoded_size(inner) + } + Self::finalizeBridgeERC20(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::finalizeBridgeETH(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::initialize(inner) => { + ::abi_encoded_size(inner) + } + Self::l1TokenBridge(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::messenger(inner) => { + ::abi_encoded_size(inner) + } + Self::otherBridge(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::paused(inner) => { + ::abi_encoded_size(inner) + } + Self::version(inner) => { + ::abi_encoded_size(inner) + } + Self::withdraw(inner) => { + ::abi_encoded_size(inner) + } + Self::withdrawTo(inner) => { + ::abi_encoded_size(inner) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::MESSENGER(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::OTHER_BRIDGE(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::bridgeERC20(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::bridgeERC20To(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::bridgeETH(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::bridgeETHTo(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::convert(inner) => { + ::abi_encode_raw(inner, out) + } + Self::deposits(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::finalizeBridgeERC20(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::finalizeBridgeETH(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::initialize(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::l1TokenBridge(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::messenger(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::otherBridge(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::paused(inner) => { + ::abi_encode_raw(inner, out) + } + Self::version(inner) => { + ::abi_encode_raw(inner, out) + } + Self::withdraw(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::withdrawTo(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + } + } + } + ///Container for all the [`L2StandardBridgeInterop`](self) custom errors. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum L2StandardBridgeInteropErrors { + #[allow(missing_docs)] + InvalidDecimals(InvalidDecimals), + #[allow(missing_docs)] + InvalidLegacyERC20Address(InvalidLegacyERC20Address), + #[allow(missing_docs)] + InvalidSuperchainERC20Address(InvalidSuperchainERC20Address), + #[allow(missing_docs)] + InvalidTokenPair(InvalidTokenPair), + } + impl L2StandardBridgeInteropErrors { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [122u8, 207u8, 212u8, 83u8], + [134u8, 134u8, 101u8, 109u8], + [179u8, 211u8, 112u8, 212u8], + [210u8, 85u8, 152u8, 160u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(InvalidSuperchainERC20Address), + ::core::stringify!(InvalidTokenPair), + ::core::stringify!(InvalidLegacyERC20Address), + ::core::stringify!(InvalidDecimals), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for L2StandardBridgeInteropErrors { + const NAME: &'static str = "L2StandardBridgeInteropErrors"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 4usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::InvalidDecimals(_) => { + ::SELECTOR + } + Self::InvalidLegacyERC20Address(_) => { + ::SELECTOR + } + Self::InvalidSuperchainERC20Address(_) => { + ::SELECTOR + } + Self::InvalidTokenPair(_) => { + ::SELECTOR + } + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn InvalidSuperchainERC20Address( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + L2StandardBridgeInteropErrors::InvalidSuperchainERC20Address, + ) + } + InvalidSuperchainERC20Address + }, + { + fn InvalidTokenPair( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L2StandardBridgeInteropErrors::InvalidTokenPair) + } + InvalidTokenPair + }, + { + fn InvalidLegacyERC20Address( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + L2StandardBridgeInteropErrors::InvalidLegacyERC20Address, + ) + } + InvalidLegacyERC20Address + }, + { + fn InvalidDecimals( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L2StandardBridgeInteropErrors::InvalidDecimals) + } + InvalidDecimals + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn InvalidSuperchainERC20Address( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + L2StandardBridgeInteropErrors::InvalidSuperchainERC20Address, + ) + } + InvalidSuperchainERC20Address + }, + { + fn InvalidTokenPair( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L2StandardBridgeInteropErrors::InvalidTokenPair) + } + InvalidTokenPair + }, + { + fn InvalidLegacyERC20Address( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + L2StandardBridgeInteropErrors::InvalidLegacyERC20Address, + ) + } + InvalidLegacyERC20Address + }, + { + fn InvalidDecimals( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L2StandardBridgeInteropErrors::InvalidDecimals) + } + InvalidDecimals + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::InvalidDecimals(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::InvalidLegacyERC20Address(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::InvalidSuperchainERC20Address(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::InvalidTokenPair(inner) => { + ::abi_encoded_size( + inner, + ) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::InvalidDecimals(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidLegacyERC20Address(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidSuperchainERC20Address(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidTokenPair(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + } + } + } + ///Container for all the [`L2StandardBridgeInterop`](self) events. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum L2StandardBridgeInteropEvents { + #[allow(missing_docs)] + Converted(Converted), + #[allow(missing_docs)] + DepositFinalized(DepositFinalized), + #[allow(missing_docs)] + ERC20BridgeFinalized(ERC20BridgeFinalized), + #[allow(missing_docs)] + ERC20BridgeInitiated(ERC20BridgeInitiated), + #[allow(missing_docs)] + ETHBridgeFinalized(ETHBridgeFinalized), + #[allow(missing_docs)] + ETHBridgeInitiated(ETHBridgeInitiated), + #[allow(missing_docs)] + Initialized(Initialized), + #[allow(missing_docs)] + WithdrawalInitiated(WithdrawalInitiated), + } + impl L2StandardBridgeInteropEvents { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 32usize]] = &[ + [ + 40u8, 73u8, 180u8, 48u8, 116u8, 9u8, 58u8, 5u8, 57u8, 107u8, 111u8, 42u8, + 147u8, 125u8, 238u8, 133u8, 101u8, 177u8, 90u8, 72u8, 167u8, 179u8, + 212u8, 191u8, 251u8, 115u8, 42u8, 80u8, 23u8, 56u8, 10u8, 245u8, + ], + [ + 49u8, 178u8, 22u8, 111u8, 246u8, 4u8, 252u8, 86u8, 114u8, 234u8, 93u8, + 240u8, 138u8, 120u8, 8u8, 29u8, 43u8, 198u8, 215u8, 70u8, 202u8, 220u8, + 232u8, 128u8, 116u8, 127u8, 54u8, 67u8, 216u8, 25u8, 232u8, 61u8, + ], + [ + 115u8, 209u8, 112u8, 145u8, 10u8, 186u8, 158u8, 109u8, 80u8, 177u8, 2u8, + 219u8, 82u8, 43u8, 29u8, 188u8, 215u8, 150u8, 33u8, 111u8, 81u8, 40u8, + 180u8, 69u8, 170u8, 33u8, 53u8, 39u8, 40u8, 134u8, 73u8, 126u8, + ], + [ + 127u8, 38u8, 184u8, 63u8, 249u8, 110u8, 31u8, 43u8, 106u8, 104u8, 47u8, + 19u8, 56u8, 82u8, 246u8, 121u8, 138u8, 9u8, 196u8, 101u8, 218u8, 149u8, + 146u8, 20u8, 96u8, 206u8, 251u8, 56u8, 71u8, 64u8, 36u8, 152u8, + ], + [ + 127u8, 241u8, 38u8, 219u8, 128u8, 36u8, 66u8, 75u8, 191u8, 217u8, 130u8, + 110u8, 138u8, 184u8, 47u8, 245u8, 145u8, 54u8, 40u8, 158u8, 164u8, 64u8, + 176u8, 75u8, 57u8, 160u8, 223u8, 27u8, 3u8, 185u8, 202u8, 191u8, + ], + [ + 176u8, 68u8, 69u8, 35u8, 38u8, 135u8, 23u8, 160u8, 38u8, 152u8, 190u8, + 71u8, 208u8, 128u8, 58u8, 167u8, 70u8, 140u8, 0u8, 172u8, 190u8, 210u8, + 248u8, 189u8, 147u8, 160u8, 69u8, 156u8, 222u8, 97u8, 221u8, 137u8, + ], + [ + 213u8, 156u8, 101u8, 179u8, 84u8, 69u8, 34u8, 88u8, 53u8, 200u8, 63u8, + 80u8, 182u8, 237u8, 224u8, 106u8, 123u8, 224u8, 71u8, 210u8, 46u8, 53u8, + 112u8, 115u8, 226u8, 80u8, 217u8, 175u8, 83u8, 117u8, 24u8, 205u8, + ], + [ + 249u8, 133u8, 34u8, 196u8, 215u8, 204u8, 185u8, 222u8, 109u8, 123u8, + 184u8, 57u8, 90u8, 86u8, 123u8, 217u8, 0u8, 3u8, 254u8, 135u8, 109u8, + 87u8, 126u8, 77u8, 15u8, 212u8, 181u8, 62u8, 29u8, 223u8, 237u8, 248u8, + ], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(ETHBridgeInitiated), + ::core::stringify!(ETHBridgeFinalized), + ::core::stringify!(WithdrawalInitiated), + ::core::stringify!(Initialized), + ::core::stringify!(ERC20BridgeInitiated), + ::core::stringify!(DepositFinalized), + ::core::stringify!(ERC20BridgeFinalized), + ::core::stringify!(Converted), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolEventInterface for L2StandardBridgeInteropEvents { + const NAME: &'static str = "L2StandardBridgeInteropEvents"; + const COUNT: usize = 8usize; + fn decode_raw_log( + topics: &[alloy_sol_types::Word], + data: &[u8], + ) -> alloy_sol_types::Result { + match topics.first().copied() { + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::Converted) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::DepositFinalized) + } + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::ERC20BridgeFinalized) + } + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::ERC20BridgeInitiated) + } + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::ETHBridgeFinalized) + } + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::ETHBridgeInitiated) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::Initialized) + } + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::WithdrawalInitiated) + } + _ => { + alloy_sol_types::private::Err(alloy_sol_types::Error::InvalidLog { + name: ::NAME, + log: alloy_sol_types::private::Box::new( + alloy_sol_types::private::LogData::new_unchecked( + topics.to_vec(), + data.to_vec().into(), + ), + ), + }) + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for L2StandardBridgeInteropEvents { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + match self { + Self::Converted(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::DepositFinalized(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::ERC20BridgeFinalized(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::ERC20BridgeInitiated(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::ETHBridgeFinalized(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::ETHBridgeInitiated(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::Initialized(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::WithdrawalInitiated(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + } + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + match self { + Self::Converted(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::DepositFinalized(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::ERC20BridgeFinalized(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::ERC20BridgeInitiated(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::ETHBridgeFinalized(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::ETHBridgeInitiated(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::Initialized(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::WithdrawalInitiated(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`L2StandardBridgeInterop`](self) contract instance. + +See the [wrapper's documentation](`L2StandardBridgeInteropInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> L2StandardBridgeInteropInstance { + L2StandardBridgeInteropInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + L2StandardBridgeInteropInstance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + L2StandardBridgeInteropInstance::::deploy_builder(__provider) + } + /**A [`L2StandardBridgeInterop`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`L2StandardBridgeInterop`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct L2StandardBridgeInteropInstance< + P, + N = alloy_contract::private::Ethereum, + > { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for L2StandardBridgeInteropInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("L2StandardBridgeInteropInstance") + .field(&self.address) + .finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > L2StandardBridgeInteropInstance { + /**Creates a new wrapper around an on-chain [`L2StandardBridgeInterop`](self) contract instance. + +See the [wrapper's documentation](`L2StandardBridgeInteropInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl L2StandardBridgeInteropInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> L2StandardBridgeInteropInstance { + L2StandardBridgeInteropInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > L2StandardBridgeInteropInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`MESSENGER`] function. + pub fn MESSENGER(&self) -> alloy_contract::SolCallBuilder<&P, MESSENGERCall, N> { + self.call_builder(&MESSENGERCall) + } + ///Creates a new call builder for the [`OTHER_BRIDGE`] function. + pub fn OTHER_BRIDGE( + &self, + ) -> alloy_contract::SolCallBuilder<&P, OTHER_BRIDGECall, N> { + self.call_builder(&OTHER_BRIDGECall) + } + ///Creates a new call builder for the [`bridgeERC20`] function. + pub fn bridgeERC20( + &self, + _localToken: alloy::sol_types::private::Address, + _remoteToken: alloy::sol_types::private::Address, + _amount: alloy::sol_types::private::primitives::aliases::U256, + _minGasLimit: u32, + _extraData: alloy::sol_types::private::Bytes, + ) -> alloy_contract::SolCallBuilder<&P, bridgeERC20Call, N> { + self.call_builder( + &bridgeERC20Call { + _localToken, + _remoteToken, + _amount, + _minGasLimit, + _extraData, + }, + ) + } + ///Creates a new call builder for the [`bridgeERC20To`] function. + pub fn bridgeERC20To( + &self, + _localToken: alloy::sol_types::private::Address, + _remoteToken: alloy::sol_types::private::Address, + _to: alloy::sol_types::private::Address, + _amount: alloy::sol_types::private::primitives::aliases::U256, + _minGasLimit: u32, + _extraData: alloy::sol_types::private::Bytes, + ) -> alloy_contract::SolCallBuilder<&P, bridgeERC20ToCall, N> { + self.call_builder( + &bridgeERC20ToCall { + _localToken, + _remoteToken, + _to, + _amount, + _minGasLimit, + _extraData, + }, + ) + } + ///Creates a new call builder for the [`bridgeETH`] function. + pub fn bridgeETH( + &self, + _minGasLimit: u32, + _extraData: alloy::sol_types::private::Bytes, + ) -> alloy_contract::SolCallBuilder<&P, bridgeETHCall, N> { + self.call_builder( + &bridgeETHCall { + _minGasLimit, + _extraData, + }, + ) + } + ///Creates a new call builder for the [`bridgeETHTo`] function. + pub fn bridgeETHTo( + &self, + _to: alloy::sol_types::private::Address, + _minGasLimit: u32, + _extraData: alloy::sol_types::private::Bytes, + ) -> alloy_contract::SolCallBuilder<&P, bridgeETHToCall, N> { + self.call_builder( + &bridgeETHToCall { + _to, + _minGasLimit, + _extraData, + }, + ) + } + ///Creates a new call builder for the [`convert`] function. + pub fn convert( + &self, + _from: alloy::sol_types::private::Address, + _to: alloy::sol_types::private::Address, + _amount: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, convertCall, N> { + self.call_builder(&convertCall { _from, _to, _amount }) + } + ///Creates a new call builder for the [`deposits`] function. + pub fn deposits( + &self, + _0: alloy::sol_types::private::Address, + _1: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, depositsCall, N> { + self.call_builder(&depositsCall { _0, _1 }) + } + ///Creates a new call builder for the [`finalizeBridgeERC20`] function. + pub fn finalizeBridgeERC20( + &self, + _localToken: alloy::sol_types::private::Address, + _remoteToken: alloy::sol_types::private::Address, + _from: alloy::sol_types::private::Address, + _to: alloy::sol_types::private::Address, + _amount: alloy::sol_types::private::primitives::aliases::U256, + _extraData: alloy::sol_types::private::Bytes, + ) -> alloy_contract::SolCallBuilder<&P, finalizeBridgeERC20Call, N> { + self.call_builder( + &finalizeBridgeERC20Call { + _localToken, + _remoteToken, + _from, + _to, + _amount, + _extraData, + }, + ) + } + ///Creates a new call builder for the [`finalizeBridgeETH`] function. + pub fn finalizeBridgeETH( + &self, + _from: alloy::sol_types::private::Address, + _to: alloy::sol_types::private::Address, + _amount: alloy::sol_types::private::primitives::aliases::U256, + _extraData: alloy::sol_types::private::Bytes, + ) -> alloy_contract::SolCallBuilder<&P, finalizeBridgeETHCall, N> { + self.call_builder( + &finalizeBridgeETHCall { + _from, + _to, + _amount, + _extraData, + }, + ) + } + ///Creates a new call builder for the [`initialize`] function. + pub fn initialize( + &self, + _otherBridge: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, initializeCall, N> { + self.call_builder(&initializeCall { _otherBridge }) + } + ///Creates a new call builder for the [`l1TokenBridge`] function. + pub fn l1TokenBridge( + &self, + ) -> alloy_contract::SolCallBuilder<&P, l1TokenBridgeCall, N> { + self.call_builder(&l1TokenBridgeCall) + } + ///Creates a new call builder for the [`messenger`] function. + pub fn messenger(&self) -> alloy_contract::SolCallBuilder<&P, messengerCall, N> { + self.call_builder(&messengerCall) + } + ///Creates a new call builder for the [`otherBridge`] function. + pub fn otherBridge( + &self, + ) -> alloy_contract::SolCallBuilder<&P, otherBridgeCall, N> { + self.call_builder(&otherBridgeCall) + } + ///Creates a new call builder for the [`paused`] function. + pub fn paused(&self) -> alloy_contract::SolCallBuilder<&P, pausedCall, N> { + self.call_builder(&pausedCall) + } + ///Creates a new call builder for the [`version`] function. + pub fn version(&self) -> alloy_contract::SolCallBuilder<&P, versionCall, N> { + self.call_builder(&versionCall) + } + ///Creates a new call builder for the [`withdraw`] function. + pub fn withdraw( + &self, + _l2Token: alloy::sol_types::private::Address, + _amount: alloy::sol_types::private::primitives::aliases::U256, + _minGasLimit: u32, + _extraData: alloy::sol_types::private::Bytes, + ) -> alloy_contract::SolCallBuilder<&P, withdrawCall, N> { + self.call_builder( + &withdrawCall { + _l2Token, + _amount, + _minGasLimit, + _extraData, + }, + ) + } + ///Creates a new call builder for the [`withdrawTo`] function. + pub fn withdrawTo( + &self, + _l2Token: alloy::sol_types::private::Address, + _to: alloy::sol_types::private::Address, + _amount: alloy::sol_types::private::primitives::aliases::U256, + _minGasLimit: u32, + _extraData: alloy::sol_types::private::Bytes, + ) -> alloy_contract::SolCallBuilder<&P, withdrawToCall, N> { + self.call_builder( + &withdrawToCall { + _l2Token, + _to, + _amount, + _minGasLimit, + _extraData, + }, + ) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > L2StandardBridgeInteropInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + ///Creates a new event filter for the [`Converted`] event. + pub fn Converted_filter(&self) -> alloy_contract::Event<&P, Converted, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`DepositFinalized`] event. + pub fn DepositFinalized_filter( + &self, + ) -> alloy_contract::Event<&P, DepositFinalized, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`ERC20BridgeFinalized`] event. + pub fn ERC20BridgeFinalized_filter( + &self, + ) -> alloy_contract::Event<&P, ERC20BridgeFinalized, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`ERC20BridgeInitiated`] event. + pub fn ERC20BridgeInitiated_filter( + &self, + ) -> alloy_contract::Event<&P, ERC20BridgeInitiated, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`ETHBridgeFinalized`] event. + pub fn ETHBridgeFinalized_filter( + &self, + ) -> alloy_contract::Event<&P, ETHBridgeFinalized, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`ETHBridgeInitiated`] event. + pub fn ETHBridgeInitiated_filter( + &self, + ) -> alloy_contract::Event<&P, ETHBridgeInitiated, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`Initialized`] event. + pub fn Initialized_filter(&self) -> alloy_contract::Event<&P, Initialized, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`WithdrawalInitiated`] event. + pub fn WithdrawalInitiated_filter( + &self, + ) -> alloy_contract::Event<&P, WithdrawalInitiated, N> { + self.event_filter::() + } + } +} diff --git a/bindings/rust/src/l2_to_l1_message_passer.rs b/bindings/rust/src/l2_to_l1_message_passer.rs new file mode 100644 index 000000000..8af5ca669 --- /dev/null +++ b/bindings/rust/src/l2_to_l1_message_passer.rs @@ -0,0 +1,2061 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface L2ToL1MessagePasser { + event MessagePassed(uint256 indexed nonce, address indexed sender, address indexed target, uint256 value, uint256 gasLimit, bytes data, bytes32 withdrawalHash); + event WithdrawerBalanceBurnt(uint256 indexed amount); + + receive() external payable; + + function MESSAGE_VERSION() external view returns (uint16); + function burn() external; + function initiateWithdrawal(address _target, uint256 _gasLimit, bytes memory _data) external payable; + function messageNonce() external view returns (uint256); + function sentMessages(bytes32) external view returns (bool); + function version() external pure returns (string memory); +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "receive", + "stateMutability": "payable" + }, + { + "type": "function", + "name": "MESSAGE_VERSION", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint16", + "internalType": "uint16" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "burn", + "inputs": [], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "initiateWithdrawal", + "inputs": [ + { + "name": "_target", + "type": "address", + "internalType": "address" + }, + { + "name": "_gasLimit", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_data", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "messageNonce", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "sentMessages", + "inputs": [ + { + "name": "", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "version", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "pure" + }, + { + "type": "event", + "name": "MessagePassed", + "inputs": [ + { + "name": "nonce", + "type": "uint256", + "indexed": true, + "internalType": "uint256" + }, + { + "name": "sender", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "target", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "value", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + }, + { + "name": "gasLimit", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + }, + { + "name": "data", + "type": "bytes", + "indexed": false, + "internalType": "bytes" + }, + { + "name": "withdrawalHash", + "type": "bytes32", + "indexed": false, + "internalType": "bytes32" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "WithdrawerBalanceBurnt", + "inputs": [ + { + "name": "amount", + "type": "uint256", + "indexed": true, + "internalType": "uint256" + } + ], + "anonymous": false + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod L2ToL1MessagePasser { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x608060405234801561001057600080fd5b506106c9806100206000396000f3fe6080604052600436106100695760003560e01c806382e3702d1161004357806382e3702d14610120578063c2b3e5ac14610160578063ecc704281461017357600080fd5b80633f827a5a1461009257806344df8e70146100bf57806354fd4d50146100d457600080fd5b3661008d5761008b33620186a0604051806020016040528060008152506101d8565b005b600080fd5b34801561009e57600080fd5b506100a7600181565b60405161ffff90911681526020015b60405180910390f35b3480156100cb57600080fd5b5061008b61039c565b3480156100e057600080fd5b50604080518082018252600581527f312e322e30000000000000000000000000000000000000000000000000000000602082015290516100b691906104c7565b34801561012c57600080fd5b5061015061013b3660046104e1565b60006020819052908152604090205460ff1681565b60405190151581526020016100b6565b61008b61016e366004610529565b6101d8565b34801561017f57600080fd5b506101ca6001547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167e010000000000000000000000000000000000000000000000000000000000001790565b6040519081526020016100b6565b600061026e6040518060c001604052806102326001547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167e010000000000000000000000000000000000000000000000000000000000001790565b815233602082015273ffffffffffffffffffffffffffffffffffffffff871660408201523460608201526080810186905260a0018490526103d4565b600081815260208190526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055905073ffffffffffffffffffffffffffffffffffffffff8416336103096001547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167e010000000000000000000000000000000000000000000000000000000000001790565b7f02a52367d10742d8032712c1bb8e0144ff1ec5ffda1ed7d70bb05a27449550543487878760405161033e949392919061062d565b60405180910390a45050600180547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8082168301167fffff0000000000000000000000000000000000000000000000000000000000009091161790555050565b476103a681610421565b60405181907f7967de617a5ac1cc7eba2d6f37570a0135afa950d8bb77cdd35f0d0b4e85a16f90600090a250565b80516020808301516040808501516060860151608087015160a0880151935160009761040497909695910161065d565b604051602081830303815290604052805190602001209050919050565b8060405161042e90610450565b6040518091039082f090508015801561044b573d6000803e3d6000fd5b505050565b6008806106b583390190565b6000815180845260005b8181101561048257602081850181015186830182015201610466565b81811115610494576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006104da602083018461045c565b9392505050565b6000602082840312156104f357600080fd5b5035919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008060006060848603121561053e57600080fd5b833573ffffffffffffffffffffffffffffffffffffffff8116811461056257600080fd5b925060208401359150604084013567ffffffffffffffff8082111561058657600080fd5b818601915086601f83011261059a57600080fd5b8135818111156105ac576105ac6104fa565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019083821181831017156105f2576105f26104fa565b8160405282815289602084870101111561060b57600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b84815283602082015260806040820152600061064c608083018561045c565b905082606083015295945050505050565b868152600073ffffffffffffffffffffffffffffffffffffffff808816602084015280871660408401525084606083015283608083015260c060a08301526106a860c083018461045c565b9897505050505050505056fe608060405230fffea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[Pa\x06\xC9\x80a\0 `\09`\0\xF3\xFE`\x80`@R`\x046\x10a\0iW`\x005`\xE0\x1C\x80c\x82\xE3p-\x11a\0CW\x80c\x82\xE3p-\x14a\x01 W\x80c\xC2\xB3\xE5\xAC\x14a\x01`W\x80c\xEC\xC7\x04(\x14a\x01sW`\0\x80\xFD[\x80c?\x82zZ\x14a\0\x92W\x80cD\xDF\x8Ep\x14a\0\xBFW\x80cT\xFDMP\x14a\0\xD4W`\0\x80\xFD[6a\0\x8DWa\0\x8B3b\x01\x86\xA0`@Q\x80` \x01`@R\x80`\0\x81RPa\x01\xD8V[\0[`\0\x80\xFD[4\x80\x15a\0\x9EW`\0\x80\xFD[Pa\0\xA7`\x01\x81V[`@Qa\xFF\xFF\x90\x91\x16\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[4\x80\x15a\0\xCBW`\0\x80\xFD[Pa\0\x8Ba\x03\x9CV[4\x80\x15a\0\xE0W`\0\x80\xFD[P`@\x80Q\x80\x82\x01\x82R`\x05\x81R\x7F1.2.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` \x82\x01R\x90Qa\0\xB6\x91\x90a\x04\xC7V[4\x80\x15a\x01,W`\0\x80\xFD[Pa\x01Pa\x01;6`\x04a\x04\xE1V[`\0` \x81\x90R\x90\x81R`@\x90 T`\xFF\x16\x81V[`@Q\x90\x15\x15\x81R` \x01a\0\xB6V[a\0\x8Ba\x01n6`\x04a\x05)V[a\x01\xD8V[4\x80\x15a\x01\x7FW`\0\x80\xFD[Pa\x01\xCA`\x01T}\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16~\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x17\x90V[`@Q\x90\x81R` \x01a\0\xB6V[`\0a\x02n`@Q\x80`\xC0\x01`@R\x80a\x022`\x01T}\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16~\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x17\x90V[\x81R3` \x82\x01Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x16`@\x82\x01R4``\x82\x01R`\x80\x81\x01\x86\x90R`\xA0\x01\x84\x90Ra\x03\xD4V[`\0\x81\x81R` \x81\x90R`@\x90 \x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x16`\x01\x17\x90U\x90Ps\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x163a\x03\t`\x01T}\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16~\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x17\x90V[\x7F\x02\xA5#g\xD1\x07B\xD8\x03'\x12\xC1\xBB\x8E\x01D\xFF\x1E\xC5\xFF\xDA\x1E\xD7\xD7\x0B\xB0Z'D\x95PT4\x87\x87\x87`@Qa\x03>\x94\x93\x92\x91\x90a\x06-V[`@Q\x80\x91\x03\x90\xA4PP`\x01\x80T}\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x16\x83\x01\x16\x7F\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x91\x16\x17\x90UPPV[Ga\x03\xA6\x81a\x04!V[`@Q\x81\x90\x7Fyg\xDEazZ\xC1\xCC~\xBA-o7W\n\x015\xAF\xA9P\xD8\xBBw\xCD\xD3_\r\x0BN\x85\xA1o\x90`\0\x90\xA2PV[\x80Q` \x80\x83\x01Q`@\x80\x85\x01Q``\x86\x01Q`\x80\x87\x01Q`\xA0\x88\x01Q\x93Q`\0\x97a\x04\x04\x97\x90\x96\x95\x91\x01a\x06]V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 \x90P\x91\x90PV[\x80`@Qa\x04.\x90a\x04PV[`@Q\x80\x91\x03\x90\x82\xF0\x90P\x80\x15\x80\x15a\x04KW=`\0\x80>=`\0\xFD[PPPV[`\x08\x80a\x06\xB5\x839\x01\x90V[`\0\x81Q\x80\x84R`\0[\x81\x81\x10\x15a\x04\x82W` \x81\x85\x01\x81\x01Q\x86\x83\x01\x82\x01R\x01a\x04fV[\x81\x81\x11\x15a\x04\x94W`\0` \x83\x87\x01\x01R[P`\x1F\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x92\x90\x92\x01` \x01\x92\x91PPV[` \x81R`\0a\x04\xDA` \x83\x01\x84a\x04\\V[\x93\x92PPPV[`\0` \x82\x84\x03\x12\x15a\x04\xF3W`\0\x80\xFD[P5\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[`\0\x80`\0``\x84\x86\x03\x12\x15a\x05>W`\0\x80\xFD[\x835s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x05bW`\0\x80\xFD[\x92P` \x84\x015\x91P`@\x84\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x05\x86W`\0\x80\xFD[\x81\x86\x01\x91P\x86`\x1F\x83\x01\x12a\x05\x9AW`\0\x80\xFD[\x815\x81\x81\x11\x15a\x05\xACWa\x05\xACa\x04\xFAV[`@Q`\x1F\x82\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x90\x81\x16`?\x01\x16\x81\x01\x90\x83\x82\x11\x81\x83\x10\x17\x15a\x05\xF2Wa\x05\xF2a\x04\xFAV[\x81`@R\x82\x81R\x89` \x84\x87\x01\x01\x11\x15a\x06\x0BW`\0\x80\xFD[\x82` \x86\x01` \x83\x017`\0` \x84\x83\x01\x01R\x80\x95PPPPPP\x92P\x92P\x92V[\x84\x81R\x83` \x82\x01R`\x80`@\x82\x01R`\0a\x06L`\x80\x83\x01\x85a\x04\\V[\x90P\x82``\x83\x01R\x95\x94PPPPPV[\x86\x81R`\0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x88\x16` \x84\x01R\x80\x87\x16`@\x84\x01RP\x84``\x83\x01R\x83`\x80\x83\x01R`\xC0`\xA0\x83\x01Ra\x06\xA8`\xC0\x83\x01\x84a\x04\\V[\x98\x97PPPPPPPPV\xFE`\x80`@R0\xFF\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x6080604052600436106100695760003560e01c806382e3702d1161004357806382e3702d14610120578063c2b3e5ac14610160578063ecc704281461017357600080fd5b80633f827a5a1461009257806344df8e70146100bf57806354fd4d50146100d457600080fd5b3661008d5761008b33620186a0604051806020016040528060008152506101d8565b005b600080fd5b34801561009e57600080fd5b506100a7600181565b60405161ffff90911681526020015b60405180910390f35b3480156100cb57600080fd5b5061008b61039c565b3480156100e057600080fd5b50604080518082018252600581527f312e322e30000000000000000000000000000000000000000000000000000000602082015290516100b691906104c7565b34801561012c57600080fd5b5061015061013b3660046104e1565b60006020819052908152604090205460ff1681565b60405190151581526020016100b6565b61008b61016e366004610529565b6101d8565b34801561017f57600080fd5b506101ca6001547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167e010000000000000000000000000000000000000000000000000000000000001790565b6040519081526020016100b6565b600061026e6040518060c001604052806102326001547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167e010000000000000000000000000000000000000000000000000000000000001790565b815233602082015273ffffffffffffffffffffffffffffffffffffffff871660408201523460608201526080810186905260a0018490526103d4565b600081815260208190526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055905073ffffffffffffffffffffffffffffffffffffffff8416336103096001547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167e010000000000000000000000000000000000000000000000000000000000001790565b7f02a52367d10742d8032712c1bb8e0144ff1ec5ffda1ed7d70bb05a27449550543487878760405161033e949392919061062d565b60405180910390a45050600180547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8082168301167fffff0000000000000000000000000000000000000000000000000000000000009091161790555050565b476103a681610421565b60405181907f7967de617a5ac1cc7eba2d6f37570a0135afa950d8bb77cdd35f0d0b4e85a16f90600090a250565b80516020808301516040808501516060860151608087015160a0880151935160009761040497909695910161065d565b604051602081830303815290604052805190602001209050919050565b8060405161042e90610450565b6040518091039082f090508015801561044b573d6000803e3d6000fd5b505050565b6008806106b583390190565b6000815180845260005b8181101561048257602081850181015186830182015201610466565b81811115610494576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006104da602083018461045c565b9392505050565b6000602082840312156104f357600080fd5b5035919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008060006060848603121561053e57600080fd5b833573ffffffffffffffffffffffffffffffffffffffff8116811461056257600080fd5b925060208401359150604084013567ffffffffffffffff8082111561058657600080fd5b818601915086601f83011261059a57600080fd5b8135818111156105ac576105ac6104fa565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019083821181831017156105f2576105f26104fa565b8160405282815289602084870101111561060b57600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b84815283602082015260806040820152600061064c608083018561045c565b905082606083015295945050505050565b868152600073ffffffffffffffffffffffffffffffffffffffff808816602084015280871660408401525084606083015283608083015260c060a08301526106a860c083018461045c565b9897505050505050505056fe608060405230fffea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R`\x046\x10a\0iW`\x005`\xE0\x1C\x80c\x82\xE3p-\x11a\0CW\x80c\x82\xE3p-\x14a\x01 W\x80c\xC2\xB3\xE5\xAC\x14a\x01`W\x80c\xEC\xC7\x04(\x14a\x01sW`\0\x80\xFD[\x80c?\x82zZ\x14a\0\x92W\x80cD\xDF\x8Ep\x14a\0\xBFW\x80cT\xFDMP\x14a\0\xD4W`\0\x80\xFD[6a\0\x8DWa\0\x8B3b\x01\x86\xA0`@Q\x80` \x01`@R\x80`\0\x81RPa\x01\xD8V[\0[`\0\x80\xFD[4\x80\x15a\0\x9EW`\0\x80\xFD[Pa\0\xA7`\x01\x81V[`@Qa\xFF\xFF\x90\x91\x16\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[4\x80\x15a\0\xCBW`\0\x80\xFD[Pa\0\x8Ba\x03\x9CV[4\x80\x15a\0\xE0W`\0\x80\xFD[P`@\x80Q\x80\x82\x01\x82R`\x05\x81R\x7F1.2.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` \x82\x01R\x90Qa\0\xB6\x91\x90a\x04\xC7V[4\x80\x15a\x01,W`\0\x80\xFD[Pa\x01Pa\x01;6`\x04a\x04\xE1V[`\0` \x81\x90R\x90\x81R`@\x90 T`\xFF\x16\x81V[`@Q\x90\x15\x15\x81R` \x01a\0\xB6V[a\0\x8Ba\x01n6`\x04a\x05)V[a\x01\xD8V[4\x80\x15a\x01\x7FW`\0\x80\xFD[Pa\x01\xCA`\x01T}\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16~\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x17\x90V[`@Q\x90\x81R` \x01a\0\xB6V[`\0a\x02n`@Q\x80`\xC0\x01`@R\x80a\x022`\x01T}\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16~\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x17\x90V[\x81R3` \x82\x01Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x16`@\x82\x01R4``\x82\x01R`\x80\x81\x01\x86\x90R`\xA0\x01\x84\x90Ra\x03\xD4V[`\0\x81\x81R` \x81\x90R`@\x90 \x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x16`\x01\x17\x90U\x90Ps\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x163a\x03\t`\x01T}\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16~\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x17\x90V[\x7F\x02\xA5#g\xD1\x07B\xD8\x03'\x12\xC1\xBB\x8E\x01D\xFF\x1E\xC5\xFF\xDA\x1E\xD7\xD7\x0B\xB0Z'D\x95PT4\x87\x87\x87`@Qa\x03>\x94\x93\x92\x91\x90a\x06-V[`@Q\x80\x91\x03\x90\xA4PP`\x01\x80T}\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x16\x83\x01\x16\x7F\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x91\x16\x17\x90UPPV[Ga\x03\xA6\x81a\x04!V[`@Q\x81\x90\x7Fyg\xDEazZ\xC1\xCC~\xBA-o7W\n\x015\xAF\xA9P\xD8\xBBw\xCD\xD3_\r\x0BN\x85\xA1o\x90`\0\x90\xA2PV[\x80Q` \x80\x83\x01Q`@\x80\x85\x01Q``\x86\x01Q`\x80\x87\x01Q`\xA0\x88\x01Q\x93Q`\0\x97a\x04\x04\x97\x90\x96\x95\x91\x01a\x06]V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 \x90P\x91\x90PV[\x80`@Qa\x04.\x90a\x04PV[`@Q\x80\x91\x03\x90\x82\xF0\x90P\x80\x15\x80\x15a\x04KW=`\0\x80>=`\0\xFD[PPPV[`\x08\x80a\x06\xB5\x839\x01\x90V[`\0\x81Q\x80\x84R`\0[\x81\x81\x10\x15a\x04\x82W` \x81\x85\x01\x81\x01Q\x86\x83\x01\x82\x01R\x01a\x04fV[\x81\x81\x11\x15a\x04\x94W`\0` \x83\x87\x01\x01R[P`\x1F\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x92\x90\x92\x01` \x01\x92\x91PPV[` \x81R`\0a\x04\xDA` \x83\x01\x84a\x04\\V[\x93\x92PPPV[`\0` \x82\x84\x03\x12\x15a\x04\xF3W`\0\x80\xFD[P5\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[`\0\x80`\0``\x84\x86\x03\x12\x15a\x05>W`\0\x80\xFD[\x835s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x05bW`\0\x80\xFD[\x92P` \x84\x015\x91P`@\x84\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x05\x86W`\0\x80\xFD[\x81\x86\x01\x91P\x86`\x1F\x83\x01\x12a\x05\x9AW`\0\x80\xFD[\x815\x81\x81\x11\x15a\x05\xACWa\x05\xACa\x04\xFAV[`@Q`\x1F\x82\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x90\x81\x16`?\x01\x16\x81\x01\x90\x83\x82\x11\x81\x83\x10\x17\x15a\x05\xF2Wa\x05\xF2a\x04\xFAV[\x81`@R\x82\x81R\x89` \x84\x87\x01\x01\x11\x15a\x06\x0BW`\0\x80\xFD[\x82` \x86\x01` \x83\x017`\0` \x84\x83\x01\x01R\x80\x95PPPPPP\x92P\x92P\x92V[\x84\x81R\x83` \x82\x01R`\x80`@\x82\x01R`\0a\x06L`\x80\x83\x01\x85a\x04\\V[\x90P\x82``\x83\x01R\x95\x94PPPPPV[\x86\x81R`\0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x88\x16` \x84\x01R\x80\x87\x16`@\x84\x01RP\x84``\x83\x01R\x83`\x80\x83\x01R`\xC0`\xA0\x83\x01Ra\x06\xA8`\xC0\x83\x01\x84a\x04\\V[\x98\x97PPPPPPPPV\xFE`\x80`@R0\xFF\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `MessagePassed(uint256,address,address,uint256,uint256,bytes,bytes32)` and selector `0x02a52367d10742d8032712c1bb8e0144ff1ec5ffda1ed7d70bb05a2744955054`. +```solidity +event MessagePassed(uint256 indexed nonce, address indexed sender, address indexed target, uint256 value, uint256 gasLimit, bytes data, bytes32 withdrawalHash); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct MessagePassed { + #[allow(missing_docs)] + pub nonce: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub sender: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub target: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub value: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub gasLimit: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub data: alloy::sol_types::private::Bytes, + #[allow(missing_docs)] + pub withdrawalHash: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for MessagePassed { + type DataTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Bytes, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "MessagePassed(uint256,address,address,uint256,uint256,bytes,bytes32)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 2u8, 165u8, 35u8, 103u8, 209u8, 7u8, 66u8, 216u8, 3u8, 39u8, 18u8, 193u8, + 187u8, 142u8, 1u8, 68u8, 255u8, 30u8, 197u8, 255u8, 218u8, 30u8, 215u8, + 215u8, 11u8, 176u8, 90u8, 39u8, 68u8, 149u8, 80u8, 84u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + nonce: topics.1, + sender: topics.2, + target: topics.3, + value: data.0, + gasLimit: data.1, + data: data.2, + withdrawalHash: data.3, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.value), + as alloy_sol_types::SolType>::tokenize(&self.gasLimit), + ::tokenize( + &self.data, + ), + as alloy_sol_types::SolType>::tokenize(&self.withdrawalHash), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + ( + Self::SIGNATURE_HASH.into(), + self.nonce.clone(), + self.sender.clone(), + self.target.clone(), + ) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = as alloy_sol_types::EventTopic>::encode_topic(&self.nonce); + out[2usize] = ::encode_topic( + &self.sender, + ); + out[3usize] = ::encode_topic( + &self.target, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for MessagePassed { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&MessagePassed> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &MessagePassed) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `WithdrawerBalanceBurnt(uint256)` and selector `0x7967de617a5ac1cc7eba2d6f37570a0135afa950d8bb77cdd35f0d0b4e85a16f`. +```solidity +event WithdrawerBalanceBurnt(uint256 indexed amount); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct WithdrawerBalanceBurnt { + #[allow(missing_docs)] + pub amount: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for WithdrawerBalanceBurnt { + type DataTuple<'a> = (); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Uint<256>, + ); + const SIGNATURE: &'static str = "WithdrawerBalanceBurnt(uint256)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 121u8, 103u8, 222u8, 97u8, 122u8, 90u8, 193u8, 204u8, 126u8, 186u8, 45u8, + 111u8, 55u8, 87u8, 10u8, 1u8, 53u8, 175u8, 169u8, 80u8, 216u8, 187u8, + 119u8, 205u8, 211u8, 95u8, 13u8, 11u8, 78u8, 133u8, 161u8, 111u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { amount: topics.1 } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + () + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.amount.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = as alloy_sol_types::EventTopic>::encode_topic(&self.amount); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for WithdrawerBalanceBurnt { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&WithdrawerBalanceBurnt> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &WithdrawerBalanceBurnt) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `MESSAGE_VERSION()` and selector `0x3f827a5a`. +```solidity +function MESSAGE_VERSION() external view returns (uint16); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct MESSAGE_VERSIONCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`MESSAGE_VERSION()`](MESSAGE_VERSIONCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct MESSAGE_VERSIONReturn { + #[allow(missing_docs)] + pub _0: u16, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: MESSAGE_VERSIONCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for MESSAGE_VERSIONCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<16>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u16,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: MESSAGE_VERSIONReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for MESSAGE_VERSIONReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for MESSAGE_VERSIONCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u16; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<16>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "MESSAGE_VERSION()"; + const SELECTOR: [u8; 4] = [63u8, 130u8, 122u8, 90u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: MESSAGE_VERSIONReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: MESSAGE_VERSIONReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `burn()` and selector `0x44df8e70`. +```solidity +function burn() external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct burnCall; + ///Container type for the return parameters of the [`burn()`](burnCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct burnReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: burnCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for burnCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: burnReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for burnReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl burnReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for burnCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = burnReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "burn()"; + const SELECTOR: [u8; 4] = [68u8, 223u8, 142u8, 112u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + burnReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `initiateWithdrawal(address,uint256,bytes)` and selector `0xc2b3e5ac`. +```solidity +function initiateWithdrawal(address _target, uint256 _gasLimit, bytes memory _data) external payable; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct initiateWithdrawalCall { + #[allow(missing_docs)] + pub _target: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _gasLimit: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _data: alloy::sol_types::private::Bytes, + } + ///Container type for the return parameters of the [`initiateWithdrawal(address,uint256,bytes)`](initiateWithdrawalCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct initiateWithdrawalReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::Bytes, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: initiateWithdrawalCall) -> Self { + (value._target, value._gasLimit, value._data) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for initiateWithdrawalCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _target: tuple.0, + _gasLimit: tuple.1, + _data: tuple.2, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: initiateWithdrawalReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for initiateWithdrawalReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl initiateWithdrawalReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for initiateWithdrawalCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Bytes, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = initiateWithdrawalReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "initiateWithdrawal(address,uint256,bytes)"; + const SELECTOR: [u8; 4] = [194u8, 179u8, 229u8, 172u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._target, + ), + as alloy_sol_types::SolType>::tokenize(&self._gasLimit), + ::tokenize( + &self._data, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + initiateWithdrawalReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `messageNonce()` and selector `0xecc70428`. +```solidity +function messageNonce() external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct messageNonceCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`messageNonce()`](messageNonceCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct messageNonceReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: messageNonceCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for messageNonceCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: messageNonceReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for messageNonceReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for messageNonceCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "messageNonce()"; + const SELECTOR: [u8; 4] = [236u8, 199u8, 4u8, 40u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: messageNonceReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: messageNonceReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `sentMessages(bytes32)` and selector `0x82e3702d`. +```solidity +function sentMessages(bytes32) external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct sentMessagesCall(pub alloy::sol_types::private::FixedBytes<32>); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`sentMessages(bytes32)`](sentMessagesCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct sentMessagesReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: sentMessagesCall) -> Self { + (value.0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for sentMessagesCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self(tuple.0) + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: sentMessagesReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for sentMessagesReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for sentMessagesCall { + type Parameters<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "sentMessages(bytes32)"; + const SELECTOR: [u8; 4] = [130u8, 227u8, 112u8, 45u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.0), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: sentMessagesReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: sentMessagesReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `version()` and selector `0x54fd4d50`. +```solidity +function version() external pure returns (string memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`version()`](versionCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for versionCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::String; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "version()"; + const SELECTOR: [u8; 4] = [84u8, 253u8, 77u8, 80u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + } + }; + ///Container for all the [`L2ToL1MessagePasser`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum L2ToL1MessagePasserCalls { + #[allow(missing_docs)] + MESSAGE_VERSION(MESSAGE_VERSIONCall), + #[allow(missing_docs)] + burn(burnCall), + #[allow(missing_docs)] + initiateWithdrawal(initiateWithdrawalCall), + #[allow(missing_docs)] + messageNonce(messageNonceCall), + #[allow(missing_docs)] + sentMessages(sentMessagesCall), + #[allow(missing_docs)] + version(versionCall), + } + impl L2ToL1MessagePasserCalls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [63u8, 130u8, 122u8, 90u8], + [68u8, 223u8, 142u8, 112u8], + [84u8, 253u8, 77u8, 80u8], + [130u8, 227u8, 112u8, 45u8], + [194u8, 179u8, 229u8, 172u8], + [236u8, 199u8, 4u8, 40u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(MESSAGE_VERSION), + ::core::stringify!(burn), + ::core::stringify!(version), + ::core::stringify!(sentMessages), + ::core::stringify!(initiateWithdrawal), + ::core::stringify!(messageNonce), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for L2ToL1MessagePasserCalls { + const NAME: &'static str = "L2ToL1MessagePasserCalls"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 6usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::MESSAGE_VERSION(_) => { + ::SELECTOR + } + Self::burn(_) => ::SELECTOR, + Self::initiateWithdrawal(_) => { + ::SELECTOR + } + Self::messageNonce(_) => { + ::SELECTOR + } + Self::sentMessages(_) => { + ::SELECTOR + } + Self::version(_) => ::SELECTOR, + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn MESSAGE_VERSION( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L2ToL1MessagePasserCalls::MESSAGE_VERSION) + } + MESSAGE_VERSION + }, + { + fn burn( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(L2ToL1MessagePasserCalls::burn) + } + burn + }, + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(L2ToL1MessagePasserCalls::version) + } + version + }, + { + fn sentMessages( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L2ToL1MessagePasserCalls::sentMessages) + } + sentMessages + }, + { + fn initiateWithdrawal( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L2ToL1MessagePasserCalls::initiateWithdrawal) + } + initiateWithdrawal + }, + { + fn messageNonce( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L2ToL1MessagePasserCalls::messageNonce) + } + messageNonce + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn MESSAGE_VERSION( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L2ToL1MessagePasserCalls::MESSAGE_VERSION) + } + MESSAGE_VERSION + }, + { + fn burn( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L2ToL1MessagePasserCalls::burn) + } + burn + }, + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L2ToL1MessagePasserCalls::version) + } + version + }, + { + fn sentMessages( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L2ToL1MessagePasserCalls::sentMessages) + } + sentMessages + }, + { + fn initiateWithdrawal( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L2ToL1MessagePasserCalls::initiateWithdrawal) + } + initiateWithdrawal + }, + { + fn messageNonce( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L2ToL1MessagePasserCalls::messageNonce) + } + messageNonce + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::MESSAGE_VERSION(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::burn(inner) => { + ::abi_encoded_size(inner) + } + Self::initiateWithdrawal(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::messageNonce(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::sentMessages(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::version(inner) => { + ::abi_encoded_size(inner) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::MESSAGE_VERSION(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::burn(inner) => { + ::abi_encode_raw(inner, out) + } + Self::initiateWithdrawal(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::messageNonce(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::sentMessages(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::version(inner) => { + ::abi_encode_raw(inner, out) + } + } + } + } + ///Container for all the [`L2ToL1MessagePasser`](self) events. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum L2ToL1MessagePasserEvents { + #[allow(missing_docs)] + MessagePassed(MessagePassed), + #[allow(missing_docs)] + WithdrawerBalanceBurnt(WithdrawerBalanceBurnt), + } + impl L2ToL1MessagePasserEvents { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 32usize]] = &[ + [ + 2u8, 165u8, 35u8, 103u8, 209u8, 7u8, 66u8, 216u8, 3u8, 39u8, 18u8, 193u8, + 187u8, 142u8, 1u8, 68u8, 255u8, 30u8, 197u8, 255u8, 218u8, 30u8, 215u8, + 215u8, 11u8, 176u8, 90u8, 39u8, 68u8, 149u8, 80u8, 84u8, + ], + [ + 121u8, 103u8, 222u8, 97u8, 122u8, 90u8, 193u8, 204u8, 126u8, 186u8, 45u8, + 111u8, 55u8, 87u8, 10u8, 1u8, 53u8, 175u8, 169u8, 80u8, 216u8, 187u8, + 119u8, 205u8, 211u8, 95u8, 13u8, 11u8, 78u8, 133u8, 161u8, 111u8, + ], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(MessagePassed), + ::core::stringify!(WithdrawerBalanceBurnt), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolEventInterface for L2ToL1MessagePasserEvents { + const NAME: &'static str = "L2ToL1MessagePasserEvents"; + const COUNT: usize = 2usize; + fn decode_raw_log( + topics: &[alloy_sol_types::Word], + data: &[u8], + ) -> alloy_sol_types::Result { + match topics.first().copied() { + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::MessagePassed) + } + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::WithdrawerBalanceBurnt) + } + _ => { + alloy_sol_types::private::Err(alloy_sol_types::Error::InvalidLog { + name: ::NAME, + log: alloy_sol_types::private::Box::new( + alloy_sol_types::private::LogData::new_unchecked( + topics.to_vec(), + data.to_vec().into(), + ), + ), + }) + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for L2ToL1MessagePasserEvents { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + match self { + Self::MessagePassed(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::WithdrawerBalanceBurnt(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + } + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + match self { + Self::MessagePassed(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::WithdrawerBalanceBurnt(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`L2ToL1MessagePasser`](self) contract instance. + +See the [wrapper's documentation](`L2ToL1MessagePasserInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> L2ToL1MessagePasserInstance { + L2ToL1MessagePasserInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + L2ToL1MessagePasserInstance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + L2ToL1MessagePasserInstance::::deploy_builder(__provider) + } + /**A [`L2ToL1MessagePasser`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`L2ToL1MessagePasser`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct L2ToL1MessagePasserInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for L2ToL1MessagePasserInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("L2ToL1MessagePasserInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > L2ToL1MessagePasserInstance { + /**Creates a new wrapper around an on-chain [`L2ToL1MessagePasser`](self) contract instance. + +See the [wrapper's documentation](`L2ToL1MessagePasserInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl L2ToL1MessagePasserInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> L2ToL1MessagePasserInstance { + L2ToL1MessagePasserInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > L2ToL1MessagePasserInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`MESSAGE_VERSION`] function. + pub fn MESSAGE_VERSION( + &self, + ) -> alloy_contract::SolCallBuilder<&P, MESSAGE_VERSIONCall, N> { + self.call_builder(&MESSAGE_VERSIONCall) + } + ///Creates a new call builder for the [`burn`] function. + pub fn burn(&self) -> alloy_contract::SolCallBuilder<&P, burnCall, N> { + self.call_builder(&burnCall) + } + ///Creates a new call builder for the [`initiateWithdrawal`] function. + pub fn initiateWithdrawal( + &self, + _target: alloy::sol_types::private::Address, + _gasLimit: alloy::sol_types::private::primitives::aliases::U256, + _data: alloy::sol_types::private::Bytes, + ) -> alloy_contract::SolCallBuilder<&P, initiateWithdrawalCall, N> { + self.call_builder( + &initiateWithdrawalCall { + _target, + _gasLimit, + _data, + }, + ) + } + ///Creates a new call builder for the [`messageNonce`] function. + pub fn messageNonce( + &self, + ) -> alloy_contract::SolCallBuilder<&P, messageNonceCall, N> { + self.call_builder(&messageNonceCall) + } + ///Creates a new call builder for the [`sentMessages`] function. + pub fn sentMessages( + &self, + _0: alloy::sol_types::private::FixedBytes<32>, + ) -> alloy_contract::SolCallBuilder<&P, sentMessagesCall, N> { + self.call_builder(&sentMessagesCall(_0)) + } + ///Creates a new call builder for the [`version`] function. + pub fn version(&self) -> alloy_contract::SolCallBuilder<&P, versionCall, N> { + self.call_builder(&versionCall) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > L2ToL1MessagePasserInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + ///Creates a new event filter for the [`MessagePassed`] event. + pub fn MessagePassed_filter( + &self, + ) -> alloy_contract::Event<&P, MessagePassed, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`WithdrawerBalanceBurnt`] event. + pub fn WithdrawerBalanceBurnt_filter( + &self, + ) -> alloy_contract::Event<&P, WithdrawerBalanceBurnt, N> { + self.event_filter::() + } + } +} diff --git a/bindings/rust/src/l2_to_l1_message_passer_cgt.rs b/bindings/rust/src/l2_to_l1_message_passer_cgt.rs new file mode 100644 index 000000000..14bbd7dbe --- /dev/null +++ b/bindings/rust/src/l2_to_l1_message_passer_cgt.rs @@ -0,0 +1,2300 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface L2ToL1MessagePasserCGT { + error L2ToL1MessagePasserCGT_NotAllowedOnCGTMode(); + + event MessagePassed(uint256 indexed nonce, address indexed sender, address indexed target, uint256 value, uint256 gasLimit, bytes data, bytes32 withdrawalHash); + event WithdrawerBalanceBurnt(uint256 indexed amount); + + receive() external payable; + + function MESSAGE_VERSION() external view returns (uint16); + function burn() external; + function initiateWithdrawal(address _target, uint256 _gasLimit, bytes memory _data) external payable; + function messageNonce() external view returns (uint256); + function sentMessages(bytes32) external view returns (bool); + function version() external pure returns (string memory); +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "receive", + "stateMutability": "payable" + }, + { + "type": "function", + "name": "MESSAGE_VERSION", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint16", + "internalType": "uint16" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "burn", + "inputs": [], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "initiateWithdrawal", + "inputs": [ + { + "name": "_target", + "type": "address", + "internalType": "address" + }, + { + "name": "_gasLimit", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_data", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "messageNonce", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "sentMessages", + "inputs": [ + { + "name": "", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "version", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "pure" + }, + { + "type": "event", + "name": "MessagePassed", + "inputs": [ + { + "name": "nonce", + "type": "uint256", + "indexed": true, + "internalType": "uint256" + }, + { + "name": "sender", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "target", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "value", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + }, + { + "name": "gasLimit", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + }, + { + "name": "data", + "type": "bytes", + "indexed": false, + "internalType": "bytes" + }, + { + "name": "withdrawalHash", + "type": "bytes32", + "indexed": false, + "internalType": "bytes32" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "WithdrawerBalanceBurnt", + "inputs": [ + { + "name": "amount", + "type": "uint256", + "indexed": true, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "error", + "name": "L2ToL1MessagePasserCGT_NotAllowedOnCGTMode", + "inputs": [] + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod L2ToL1MessagePasserCGT { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x608060405234801561001057600080fd5b50610842806100206000396000f3fe6080604052600436106100695760003560e01c806382e3702d1161004357806382e3702d146100f6578063c2b3e5ac14610136578063ecc704281461014957600080fd5b80633f827a5a1461009257806344df8e70146100bf57806354fd4d50146100d457600080fd5b3661008d5761008b33620186a0604051806020016040528060008152506101ae565b005b600080fd5b34801561009e57600080fd5b506100a7600181565b60405161ffff90911681526020015b60405180910390f35b3480156100cb57600080fd5b5061008b610284565b3480156100e057600080fd5b506100e96102bc565b6040516100b691906105dd565b34801561010257600080fd5b506101266101113660046105f7565b60006020819052908152604090205460ff1681565b60405190151581526020016100b6565b61008b61014436600461063f565b6101ae565b34801561015557600080fd5b506101a06001547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167e010000000000000000000000000000000000000000000000000000000000001790565b6040519081526020016100b6565b73420000000000000000000000000000000000001573ffffffffffffffffffffffffffffffffffffffff1663213268496040518163ffffffff1660e01b8152600401602060405180830381865afa15801561020d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102319190610743565b801561023d5750600034115b15610274576040517fcdfaa11100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61027f83838361031c565b505050565b4761028e816104e0565b60405181907f7967de617a5ac1cc7eba2d6f37570a0135afa950d8bb77cdd35f0d0b4e85a16f90600090a250565b60606102f860408051808201909152600581527f312e322e30000000000000000000000000000000000000000000000000000000602082015290565b6040516020016103089190610765565b604051602081830303815290604052905090565b60006103b26040518060c001604052806103766001547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167e010000000000000000000000000000000000000000000000000000000000001790565b815233602082015273ffffffffffffffffffffffffffffffffffffffff871660408201523460608201526080810186905260a00184905261050a565b600081815260208190526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055905073ffffffffffffffffffffffffffffffffffffffff84163361044d6001547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167e010000000000000000000000000000000000000000000000000000000000001790565b7f02a52367d10742d8032712c1bb8e0144ff1ec5ffda1ed7d70bb05a27449550543487878760405161048294939291906107a6565b60405180910390a45050600180547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8082168301167fffff0000000000000000000000000000000000000000000000000000000000009091161790555050565b806040516104ed90610557565b6040518091039082f090508015801561027f573d6000803e3d6000fd5b80516020808301516040808501516060860151608087015160a0880151935160009761053a9790969591016107d6565b604051602081830303815290604052805190602001209050919050565b60088061082e83390190565b60005b8381101561057e578181015183820152602001610566565b8381111561058d576000848401525b50505050565b600081518084526105ab816020860160208601610563565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006105f06020830184610593565b9392505050565b60006020828403121561060957600080fd5b5035919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008060006060848603121561065457600080fd5b833573ffffffffffffffffffffffffffffffffffffffff8116811461067857600080fd5b925060208401359150604084013567ffffffffffffffff8082111561069c57600080fd5b818601915086601f8301126106b057600080fd5b8135818111156106c2576106c2610610565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190838211818310171561070857610708610610565b8160405282815289602084870101111561072157600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b60006020828403121561075557600080fd5b815180151581146105f057600080fd5b60008251610777818460208701610563565b7f2b637573746f6d2d6761732d746f6b656e000000000000000000000000000000920191825250601101919050565b8481528360208201526080604082015260006107c56080830185610593565b905082606083015295945050505050565b868152600073ffffffffffffffffffffffffffffffffffffffff808816602084015280871660408401525084606083015283608083015260c060a083015261082160c0830184610593565b9897505050505050505056fe608060405230fffea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[Pa\x08B\x80a\0 `\09`\0\xF3\xFE`\x80`@R`\x046\x10a\0iW`\x005`\xE0\x1C\x80c\x82\xE3p-\x11a\0CW\x80c\x82\xE3p-\x14a\0\xF6W\x80c\xC2\xB3\xE5\xAC\x14a\x016W\x80c\xEC\xC7\x04(\x14a\x01IW`\0\x80\xFD[\x80c?\x82zZ\x14a\0\x92W\x80cD\xDF\x8Ep\x14a\0\xBFW\x80cT\xFDMP\x14a\0\xD4W`\0\x80\xFD[6a\0\x8DWa\0\x8B3b\x01\x86\xA0`@Q\x80` \x01`@R\x80`\0\x81RPa\x01\xAEV[\0[`\0\x80\xFD[4\x80\x15a\0\x9EW`\0\x80\xFD[Pa\0\xA7`\x01\x81V[`@Qa\xFF\xFF\x90\x91\x16\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[4\x80\x15a\0\xCBW`\0\x80\xFD[Pa\0\x8Ba\x02\x84V[4\x80\x15a\0\xE0W`\0\x80\xFD[Pa\0\xE9a\x02\xBCV[`@Qa\0\xB6\x91\x90a\x05\xDDV[4\x80\x15a\x01\x02W`\0\x80\xFD[Pa\x01&a\x01\x116`\x04a\x05\xF7V[`\0` \x81\x90R\x90\x81R`@\x90 T`\xFF\x16\x81V[`@Q\x90\x15\x15\x81R` \x01a\0\xB6V[a\0\x8Ba\x01D6`\x04a\x06?V[a\x01\xAEV[4\x80\x15a\x01UW`\0\x80\xFD[Pa\x01\xA0`\x01T}\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16~\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x17\x90V[`@Q\x90\x81R` \x01a\0\xB6V[sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x15s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c!2hI`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x02\rW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x021\x91\x90a\x07CV[\x80\x15a\x02=WP`\x004\x11[\x15a\x02tW`@Q\x7F\xCD\xFA\xA1\x11\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\x01`@Q\x80\x91\x03\x90\xFD[a\x02\x7F\x83\x83\x83a\x03\x1CV[PPPV[Ga\x02\x8E\x81a\x04\xE0V[`@Q\x81\x90\x7Fyg\xDEazZ\xC1\xCC~\xBA-o7W\n\x015\xAF\xA9P\xD8\xBBw\xCD\xD3_\r\x0BN\x85\xA1o\x90`\0\x90\xA2PV[``a\x02\xF8`@\x80Q\x80\x82\x01\x90\x91R`\x05\x81R\x7F1.2.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` \x82\x01R\x90V[`@Q` \x01a\x03\x08\x91\x90a\x07eV[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x90P\x90V[`\0a\x03\xB2`@Q\x80`\xC0\x01`@R\x80a\x03v`\x01T}\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16~\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x17\x90V[\x81R3` \x82\x01Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x16`@\x82\x01R4``\x82\x01R`\x80\x81\x01\x86\x90R`\xA0\x01\x84\x90Ra\x05\nV[`\0\x81\x81R` \x81\x90R`@\x90 \x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x16`\x01\x17\x90U\x90Ps\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x163a\x04M`\x01T}\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16~\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x17\x90V[\x7F\x02\xA5#g\xD1\x07B\xD8\x03'\x12\xC1\xBB\x8E\x01D\xFF\x1E\xC5\xFF\xDA\x1E\xD7\xD7\x0B\xB0Z'D\x95PT4\x87\x87\x87`@Qa\x04\x82\x94\x93\x92\x91\x90a\x07\xA6V[`@Q\x80\x91\x03\x90\xA4PP`\x01\x80T}\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x16\x83\x01\x16\x7F\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x91\x16\x17\x90UPPV[\x80`@Qa\x04\xED\x90a\x05WV[`@Q\x80\x91\x03\x90\x82\xF0\x90P\x80\x15\x80\x15a\x02\x7FW=`\0\x80>=`\0\xFD[\x80Q` \x80\x83\x01Q`@\x80\x85\x01Q``\x86\x01Q`\x80\x87\x01Q`\xA0\x88\x01Q\x93Q`\0\x97a\x05:\x97\x90\x96\x95\x91\x01a\x07\xD6V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 \x90P\x91\x90PV[`\x08\x80a\x08.\x839\x01\x90V[`\0[\x83\x81\x10\x15a\x05~W\x81\x81\x01Q\x83\x82\x01R` \x01a\x05fV[\x83\x81\x11\x15a\x05\x8DW`\0\x84\x84\x01R[PPPPV[`\0\x81Q\x80\x84Ra\x05\xAB\x81` \x86\x01` \x86\x01a\x05cV[`\x1F\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x92\x90\x92\x01` \x01\x92\x91PPV[` \x81R`\0a\x05\xF0` \x83\x01\x84a\x05\x93V[\x93\x92PPPV[`\0` \x82\x84\x03\x12\x15a\x06\tW`\0\x80\xFD[P5\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[`\0\x80`\0``\x84\x86\x03\x12\x15a\x06TW`\0\x80\xFD[\x835s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x06xW`\0\x80\xFD[\x92P` \x84\x015\x91P`@\x84\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x06\x9CW`\0\x80\xFD[\x81\x86\x01\x91P\x86`\x1F\x83\x01\x12a\x06\xB0W`\0\x80\xFD[\x815\x81\x81\x11\x15a\x06\xC2Wa\x06\xC2a\x06\x10V[`@Q`\x1F\x82\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x90\x81\x16`?\x01\x16\x81\x01\x90\x83\x82\x11\x81\x83\x10\x17\x15a\x07\x08Wa\x07\x08a\x06\x10V[\x81`@R\x82\x81R\x89` \x84\x87\x01\x01\x11\x15a\x07!W`\0\x80\xFD[\x82` \x86\x01` \x83\x017`\0` \x84\x83\x01\x01R\x80\x95PPPPPP\x92P\x92P\x92V[`\0` \x82\x84\x03\x12\x15a\x07UW`\0\x80\xFD[\x81Q\x80\x15\x15\x81\x14a\x05\xF0W`\0\x80\xFD[`\0\x82Qa\x07w\x81\x84` \x87\x01a\x05cV[\x7F+custom-gas-token\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x92\x01\x91\x82RP`\x11\x01\x91\x90PV[\x84\x81R\x83` \x82\x01R`\x80`@\x82\x01R`\0a\x07\xC5`\x80\x83\x01\x85a\x05\x93V[\x90P\x82``\x83\x01R\x95\x94PPPPPV[\x86\x81R`\0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x88\x16` \x84\x01R\x80\x87\x16`@\x84\x01RP\x84``\x83\x01R\x83`\x80\x83\x01R`\xC0`\xA0\x83\x01Ra\x08!`\xC0\x83\x01\x84a\x05\x93V[\x98\x97PPPPPPPPV\xFE`\x80`@R0\xFF\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x6080604052600436106100695760003560e01c806382e3702d1161004357806382e3702d146100f6578063c2b3e5ac14610136578063ecc704281461014957600080fd5b80633f827a5a1461009257806344df8e70146100bf57806354fd4d50146100d457600080fd5b3661008d5761008b33620186a0604051806020016040528060008152506101ae565b005b600080fd5b34801561009e57600080fd5b506100a7600181565b60405161ffff90911681526020015b60405180910390f35b3480156100cb57600080fd5b5061008b610284565b3480156100e057600080fd5b506100e96102bc565b6040516100b691906105dd565b34801561010257600080fd5b506101266101113660046105f7565b60006020819052908152604090205460ff1681565b60405190151581526020016100b6565b61008b61014436600461063f565b6101ae565b34801561015557600080fd5b506101a06001547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167e010000000000000000000000000000000000000000000000000000000000001790565b6040519081526020016100b6565b73420000000000000000000000000000000000001573ffffffffffffffffffffffffffffffffffffffff1663213268496040518163ffffffff1660e01b8152600401602060405180830381865afa15801561020d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102319190610743565b801561023d5750600034115b15610274576040517fcdfaa11100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61027f83838361031c565b505050565b4761028e816104e0565b60405181907f7967de617a5ac1cc7eba2d6f37570a0135afa950d8bb77cdd35f0d0b4e85a16f90600090a250565b60606102f860408051808201909152600581527f312e322e30000000000000000000000000000000000000000000000000000000602082015290565b6040516020016103089190610765565b604051602081830303815290604052905090565b60006103b26040518060c001604052806103766001547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167e010000000000000000000000000000000000000000000000000000000000001790565b815233602082015273ffffffffffffffffffffffffffffffffffffffff871660408201523460608201526080810186905260a00184905261050a565b600081815260208190526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055905073ffffffffffffffffffffffffffffffffffffffff84163361044d6001547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167e010000000000000000000000000000000000000000000000000000000000001790565b7f02a52367d10742d8032712c1bb8e0144ff1ec5ffda1ed7d70bb05a27449550543487878760405161048294939291906107a6565b60405180910390a45050600180547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8082168301167fffff0000000000000000000000000000000000000000000000000000000000009091161790555050565b806040516104ed90610557565b6040518091039082f090508015801561027f573d6000803e3d6000fd5b80516020808301516040808501516060860151608087015160a0880151935160009761053a9790969591016107d6565b604051602081830303815290604052805190602001209050919050565b60088061082e83390190565b60005b8381101561057e578181015183820152602001610566565b8381111561058d576000848401525b50505050565b600081518084526105ab816020860160208601610563565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006105f06020830184610593565b9392505050565b60006020828403121561060957600080fd5b5035919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008060006060848603121561065457600080fd5b833573ffffffffffffffffffffffffffffffffffffffff8116811461067857600080fd5b925060208401359150604084013567ffffffffffffffff8082111561069c57600080fd5b818601915086601f8301126106b057600080fd5b8135818111156106c2576106c2610610565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190838211818310171561070857610708610610565b8160405282815289602084870101111561072157600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b60006020828403121561075557600080fd5b815180151581146105f057600080fd5b60008251610777818460208701610563565b7f2b637573746f6d2d6761732d746f6b656e000000000000000000000000000000920191825250601101919050565b8481528360208201526080604082015260006107c56080830185610593565b905082606083015295945050505050565b868152600073ffffffffffffffffffffffffffffffffffffffff808816602084015280871660408401525084606083015283608083015260c060a083015261082160c0830184610593565b9897505050505050505056fe608060405230fffea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R`\x046\x10a\0iW`\x005`\xE0\x1C\x80c\x82\xE3p-\x11a\0CW\x80c\x82\xE3p-\x14a\0\xF6W\x80c\xC2\xB3\xE5\xAC\x14a\x016W\x80c\xEC\xC7\x04(\x14a\x01IW`\0\x80\xFD[\x80c?\x82zZ\x14a\0\x92W\x80cD\xDF\x8Ep\x14a\0\xBFW\x80cT\xFDMP\x14a\0\xD4W`\0\x80\xFD[6a\0\x8DWa\0\x8B3b\x01\x86\xA0`@Q\x80` \x01`@R\x80`\0\x81RPa\x01\xAEV[\0[`\0\x80\xFD[4\x80\x15a\0\x9EW`\0\x80\xFD[Pa\0\xA7`\x01\x81V[`@Qa\xFF\xFF\x90\x91\x16\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[4\x80\x15a\0\xCBW`\0\x80\xFD[Pa\0\x8Ba\x02\x84V[4\x80\x15a\0\xE0W`\0\x80\xFD[Pa\0\xE9a\x02\xBCV[`@Qa\0\xB6\x91\x90a\x05\xDDV[4\x80\x15a\x01\x02W`\0\x80\xFD[Pa\x01&a\x01\x116`\x04a\x05\xF7V[`\0` \x81\x90R\x90\x81R`@\x90 T`\xFF\x16\x81V[`@Q\x90\x15\x15\x81R` \x01a\0\xB6V[a\0\x8Ba\x01D6`\x04a\x06?V[a\x01\xAEV[4\x80\x15a\x01UW`\0\x80\xFD[Pa\x01\xA0`\x01T}\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16~\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x17\x90V[`@Q\x90\x81R` \x01a\0\xB6V[sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x15s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c!2hI`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x02\rW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x021\x91\x90a\x07CV[\x80\x15a\x02=WP`\x004\x11[\x15a\x02tW`@Q\x7F\xCD\xFA\xA1\x11\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\x01`@Q\x80\x91\x03\x90\xFD[a\x02\x7F\x83\x83\x83a\x03\x1CV[PPPV[Ga\x02\x8E\x81a\x04\xE0V[`@Q\x81\x90\x7Fyg\xDEazZ\xC1\xCC~\xBA-o7W\n\x015\xAF\xA9P\xD8\xBBw\xCD\xD3_\r\x0BN\x85\xA1o\x90`\0\x90\xA2PV[``a\x02\xF8`@\x80Q\x80\x82\x01\x90\x91R`\x05\x81R\x7F1.2.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` \x82\x01R\x90V[`@Q` \x01a\x03\x08\x91\x90a\x07eV[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x90P\x90V[`\0a\x03\xB2`@Q\x80`\xC0\x01`@R\x80a\x03v`\x01T}\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16~\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x17\x90V[\x81R3` \x82\x01Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x16`@\x82\x01R4``\x82\x01R`\x80\x81\x01\x86\x90R`\xA0\x01\x84\x90Ra\x05\nV[`\0\x81\x81R` \x81\x90R`@\x90 \x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x16`\x01\x17\x90U\x90Ps\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x163a\x04M`\x01T}\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16~\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x17\x90V[\x7F\x02\xA5#g\xD1\x07B\xD8\x03'\x12\xC1\xBB\x8E\x01D\xFF\x1E\xC5\xFF\xDA\x1E\xD7\xD7\x0B\xB0Z'D\x95PT4\x87\x87\x87`@Qa\x04\x82\x94\x93\x92\x91\x90a\x07\xA6V[`@Q\x80\x91\x03\x90\xA4PP`\x01\x80T}\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x16\x83\x01\x16\x7F\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x91\x16\x17\x90UPPV[\x80`@Qa\x04\xED\x90a\x05WV[`@Q\x80\x91\x03\x90\x82\xF0\x90P\x80\x15\x80\x15a\x02\x7FW=`\0\x80>=`\0\xFD[\x80Q` \x80\x83\x01Q`@\x80\x85\x01Q``\x86\x01Q`\x80\x87\x01Q`\xA0\x88\x01Q\x93Q`\0\x97a\x05:\x97\x90\x96\x95\x91\x01a\x07\xD6V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 \x90P\x91\x90PV[`\x08\x80a\x08.\x839\x01\x90V[`\0[\x83\x81\x10\x15a\x05~W\x81\x81\x01Q\x83\x82\x01R` \x01a\x05fV[\x83\x81\x11\x15a\x05\x8DW`\0\x84\x84\x01R[PPPPV[`\0\x81Q\x80\x84Ra\x05\xAB\x81` \x86\x01` \x86\x01a\x05cV[`\x1F\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x92\x90\x92\x01` \x01\x92\x91PPV[` \x81R`\0a\x05\xF0` \x83\x01\x84a\x05\x93V[\x93\x92PPPV[`\0` \x82\x84\x03\x12\x15a\x06\tW`\0\x80\xFD[P5\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[`\0\x80`\0``\x84\x86\x03\x12\x15a\x06TW`\0\x80\xFD[\x835s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x06xW`\0\x80\xFD[\x92P` \x84\x015\x91P`@\x84\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x06\x9CW`\0\x80\xFD[\x81\x86\x01\x91P\x86`\x1F\x83\x01\x12a\x06\xB0W`\0\x80\xFD[\x815\x81\x81\x11\x15a\x06\xC2Wa\x06\xC2a\x06\x10V[`@Q`\x1F\x82\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x90\x81\x16`?\x01\x16\x81\x01\x90\x83\x82\x11\x81\x83\x10\x17\x15a\x07\x08Wa\x07\x08a\x06\x10V[\x81`@R\x82\x81R\x89` \x84\x87\x01\x01\x11\x15a\x07!W`\0\x80\xFD[\x82` \x86\x01` \x83\x017`\0` \x84\x83\x01\x01R\x80\x95PPPPPP\x92P\x92P\x92V[`\0` \x82\x84\x03\x12\x15a\x07UW`\0\x80\xFD[\x81Q\x80\x15\x15\x81\x14a\x05\xF0W`\0\x80\xFD[`\0\x82Qa\x07w\x81\x84` \x87\x01a\x05cV[\x7F+custom-gas-token\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x92\x01\x91\x82RP`\x11\x01\x91\x90PV[\x84\x81R\x83` \x82\x01R`\x80`@\x82\x01R`\0a\x07\xC5`\x80\x83\x01\x85a\x05\x93V[\x90P\x82``\x83\x01R\x95\x94PPPPPV[\x86\x81R`\0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x88\x16` \x84\x01R\x80\x87\x16`@\x84\x01RP\x84``\x83\x01R\x83`\x80\x83\x01R`\xC0`\xA0\x83\x01Ra\x08!`\xC0\x83\x01\x84a\x05\x93V[\x98\x97PPPPPPPPV\xFE`\x80`@R0\xFF\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `L2ToL1MessagePasserCGT_NotAllowedOnCGTMode()` and selector `0xcdfaa111`. +```solidity +error L2ToL1MessagePasserCGT_NotAllowedOnCGTMode(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct L2ToL1MessagePasserCGT_NotAllowedOnCGTMode; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: L2ToL1MessagePasserCGT_NotAllowedOnCGTMode) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for L2ToL1MessagePasserCGT_NotAllowedOnCGTMode { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for L2ToL1MessagePasserCGT_NotAllowedOnCGTMode { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "L2ToL1MessagePasserCGT_NotAllowedOnCGTMode()"; + const SELECTOR: [u8; 4] = [205u8, 250u8, 161u8, 17u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `MessagePassed(uint256,address,address,uint256,uint256,bytes,bytes32)` and selector `0x02a52367d10742d8032712c1bb8e0144ff1ec5ffda1ed7d70bb05a2744955054`. +```solidity +event MessagePassed(uint256 indexed nonce, address indexed sender, address indexed target, uint256 value, uint256 gasLimit, bytes data, bytes32 withdrawalHash); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct MessagePassed { + #[allow(missing_docs)] + pub nonce: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub sender: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub target: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub value: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub gasLimit: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub data: alloy::sol_types::private::Bytes, + #[allow(missing_docs)] + pub withdrawalHash: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for MessagePassed { + type DataTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Bytes, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "MessagePassed(uint256,address,address,uint256,uint256,bytes,bytes32)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 2u8, 165u8, 35u8, 103u8, 209u8, 7u8, 66u8, 216u8, 3u8, 39u8, 18u8, 193u8, + 187u8, 142u8, 1u8, 68u8, 255u8, 30u8, 197u8, 255u8, 218u8, 30u8, 215u8, + 215u8, 11u8, 176u8, 90u8, 39u8, 68u8, 149u8, 80u8, 84u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + nonce: topics.1, + sender: topics.2, + target: topics.3, + value: data.0, + gasLimit: data.1, + data: data.2, + withdrawalHash: data.3, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.value), + as alloy_sol_types::SolType>::tokenize(&self.gasLimit), + ::tokenize( + &self.data, + ), + as alloy_sol_types::SolType>::tokenize(&self.withdrawalHash), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + ( + Self::SIGNATURE_HASH.into(), + self.nonce.clone(), + self.sender.clone(), + self.target.clone(), + ) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = as alloy_sol_types::EventTopic>::encode_topic(&self.nonce); + out[2usize] = ::encode_topic( + &self.sender, + ); + out[3usize] = ::encode_topic( + &self.target, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for MessagePassed { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&MessagePassed> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &MessagePassed) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `WithdrawerBalanceBurnt(uint256)` and selector `0x7967de617a5ac1cc7eba2d6f37570a0135afa950d8bb77cdd35f0d0b4e85a16f`. +```solidity +event WithdrawerBalanceBurnt(uint256 indexed amount); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct WithdrawerBalanceBurnt { + #[allow(missing_docs)] + pub amount: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for WithdrawerBalanceBurnt { + type DataTuple<'a> = (); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Uint<256>, + ); + const SIGNATURE: &'static str = "WithdrawerBalanceBurnt(uint256)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 121u8, 103u8, 222u8, 97u8, 122u8, 90u8, 193u8, 204u8, 126u8, 186u8, 45u8, + 111u8, 55u8, 87u8, 10u8, 1u8, 53u8, 175u8, 169u8, 80u8, 216u8, 187u8, + 119u8, 205u8, 211u8, 95u8, 13u8, 11u8, 78u8, 133u8, 161u8, 111u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { amount: topics.1 } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + () + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.amount.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = as alloy_sol_types::EventTopic>::encode_topic(&self.amount); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for WithdrawerBalanceBurnt { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&WithdrawerBalanceBurnt> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &WithdrawerBalanceBurnt) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `MESSAGE_VERSION()` and selector `0x3f827a5a`. +```solidity +function MESSAGE_VERSION() external view returns (uint16); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct MESSAGE_VERSIONCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`MESSAGE_VERSION()`](MESSAGE_VERSIONCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct MESSAGE_VERSIONReturn { + #[allow(missing_docs)] + pub _0: u16, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: MESSAGE_VERSIONCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for MESSAGE_VERSIONCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<16>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u16,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: MESSAGE_VERSIONReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for MESSAGE_VERSIONReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for MESSAGE_VERSIONCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u16; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<16>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "MESSAGE_VERSION()"; + const SELECTOR: [u8; 4] = [63u8, 130u8, 122u8, 90u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: MESSAGE_VERSIONReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: MESSAGE_VERSIONReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `burn()` and selector `0x44df8e70`. +```solidity +function burn() external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct burnCall; + ///Container type for the return parameters of the [`burn()`](burnCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct burnReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: burnCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for burnCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: burnReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for burnReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl burnReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for burnCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = burnReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "burn()"; + const SELECTOR: [u8; 4] = [68u8, 223u8, 142u8, 112u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + burnReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `initiateWithdrawal(address,uint256,bytes)` and selector `0xc2b3e5ac`. +```solidity +function initiateWithdrawal(address _target, uint256 _gasLimit, bytes memory _data) external payable; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct initiateWithdrawalCall { + #[allow(missing_docs)] + pub _target: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _gasLimit: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _data: alloy::sol_types::private::Bytes, + } + ///Container type for the return parameters of the [`initiateWithdrawal(address,uint256,bytes)`](initiateWithdrawalCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct initiateWithdrawalReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::Bytes, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: initiateWithdrawalCall) -> Self { + (value._target, value._gasLimit, value._data) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for initiateWithdrawalCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _target: tuple.0, + _gasLimit: tuple.1, + _data: tuple.2, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: initiateWithdrawalReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for initiateWithdrawalReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl initiateWithdrawalReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for initiateWithdrawalCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Bytes, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = initiateWithdrawalReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "initiateWithdrawal(address,uint256,bytes)"; + const SELECTOR: [u8; 4] = [194u8, 179u8, 229u8, 172u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._target, + ), + as alloy_sol_types::SolType>::tokenize(&self._gasLimit), + ::tokenize( + &self._data, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + initiateWithdrawalReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `messageNonce()` and selector `0xecc70428`. +```solidity +function messageNonce() external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct messageNonceCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`messageNonce()`](messageNonceCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct messageNonceReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: messageNonceCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for messageNonceCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: messageNonceReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for messageNonceReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for messageNonceCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "messageNonce()"; + const SELECTOR: [u8; 4] = [236u8, 199u8, 4u8, 40u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: messageNonceReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: messageNonceReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `sentMessages(bytes32)` and selector `0x82e3702d`. +```solidity +function sentMessages(bytes32) external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct sentMessagesCall(pub alloy::sol_types::private::FixedBytes<32>); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`sentMessages(bytes32)`](sentMessagesCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct sentMessagesReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: sentMessagesCall) -> Self { + (value.0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for sentMessagesCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self(tuple.0) + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: sentMessagesReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for sentMessagesReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for sentMessagesCall { + type Parameters<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "sentMessages(bytes32)"; + const SELECTOR: [u8; 4] = [130u8, 227u8, 112u8, 45u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.0), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: sentMessagesReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: sentMessagesReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `version()` and selector `0x54fd4d50`. +```solidity +function version() external pure returns (string memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`version()`](versionCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for versionCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::String; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "version()"; + const SELECTOR: [u8; 4] = [84u8, 253u8, 77u8, 80u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + } + }; + ///Container for all the [`L2ToL1MessagePasserCGT`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum L2ToL1MessagePasserCGTCalls { + #[allow(missing_docs)] + MESSAGE_VERSION(MESSAGE_VERSIONCall), + #[allow(missing_docs)] + burn(burnCall), + #[allow(missing_docs)] + initiateWithdrawal(initiateWithdrawalCall), + #[allow(missing_docs)] + messageNonce(messageNonceCall), + #[allow(missing_docs)] + sentMessages(sentMessagesCall), + #[allow(missing_docs)] + version(versionCall), + } + impl L2ToL1MessagePasserCGTCalls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [63u8, 130u8, 122u8, 90u8], + [68u8, 223u8, 142u8, 112u8], + [84u8, 253u8, 77u8, 80u8], + [130u8, 227u8, 112u8, 45u8], + [194u8, 179u8, 229u8, 172u8], + [236u8, 199u8, 4u8, 40u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(MESSAGE_VERSION), + ::core::stringify!(burn), + ::core::stringify!(version), + ::core::stringify!(sentMessages), + ::core::stringify!(initiateWithdrawal), + ::core::stringify!(messageNonce), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for L2ToL1MessagePasserCGTCalls { + const NAME: &'static str = "L2ToL1MessagePasserCGTCalls"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 6usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::MESSAGE_VERSION(_) => { + ::SELECTOR + } + Self::burn(_) => ::SELECTOR, + Self::initiateWithdrawal(_) => { + ::SELECTOR + } + Self::messageNonce(_) => { + ::SELECTOR + } + Self::sentMessages(_) => { + ::SELECTOR + } + Self::version(_) => ::SELECTOR, + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn MESSAGE_VERSION( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L2ToL1MessagePasserCGTCalls::MESSAGE_VERSION) + } + MESSAGE_VERSION + }, + { + fn burn( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(L2ToL1MessagePasserCGTCalls::burn) + } + burn + }, + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(L2ToL1MessagePasserCGTCalls::version) + } + version + }, + { + fn sentMessages( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L2ToL1MessagePasserCGTCalls::sentMessages) + } + sentMessages + }, + { + fn initiateWithdrawal( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L2ToL1MessagePasserCGTCalls::initiateWithdrawal) + } + initiateWithdrawal + }, + { + fn messageNonce( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L2ToL1MessagePasserCGTCalls::messageNonce) + } + messageNonce + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn MESSAGE_VERSION( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L2ToL1MessagePasserCGTCalls::MESSAGE_VERSION) + } + MESSAGE_VERSION + }, + { + fn burn( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L2ToL1MessagePasserCGTCalls::burn) + } + burn + }, + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L2ToL1MessagePasserCGTCalls::version) + } + version + }, + { + fn sentMessages( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L2ToL1MessagePasserCGTCalls::sentMessages) + } + sentMessages + }, + { + fn initiateWithdrawal( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L2ToL1MessagePasserCGTCalls::initiateWithdrawal) + } + initiateWithdrawal + }, + { + fn messageNonce( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L2ToL1MessagePasserCGTCalls::messageNonce) + } + messageNonce + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::MESSAGE_VERSION(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::burn(inner) => { + ::abi_encoded_size(inner) + } + Self::initiateWithdrawal(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::messageNonce(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::sentMessages(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::version(inner) => { + ::abi_encoded_size(inner) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::MESSAGE_VERSION(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::burn(inner) => { + ::abi_encode_raw(inner, out) + } + Self::initiateWithdrawal(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::messageNonce(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::sentMessages(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::version(inner) => { + ::abi_encode_raw(inner, out) + } + } + } + } + ///Container for all the [`L2ToL1MessagePasserCGT`](self) custom errors. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum L2ToL1MessagePasserCGTErrors { + #[allow(missing_docs)] + L2ToL1MessagePasserCGT_NotAllowedOnCGTMode( + L2ToL1MessagePasserCGT_NotAllowedOnCGTMode, + ), + } + impl L2ToL1MessagePasserCGTErrors { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[[205u8, 250u8, 161u8, 17u8]]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(L2ToL1MessagePasserCGT_NotAllowedOnCGTMode), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for L2ToL1MessagePasserCGTErrors { + const NAME: &'static str = "L2ToL1MessagePasserCGTErrors"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 1usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::L2ToL1MessagePasserCGT_NotAllowedOnCGTMode(_) => { + ::SELECTOR + } + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn L2ToL1MessagePasserCGT_NotAllowedOnCGTMode( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + L2ToL1MessagePasserCGTErrors::L2ToL1MessagePasserCGT_NotAllowedOnCGTMode, + ) + } + L2ToL1MessagePasserCGT_NotAllowedOnCGTMode + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn L2ToL1MessagePasserCGT_NotAllowedOnCGTMode( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + L2ToL1MessagePasserCGTErrors::L2ToL1MessagePasserCGT_NotAllowedOnCGTMode, + ) + } + L2ToL1MessagePasserCGT_NotAllowedOnCGTMode + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::L2ToL1MessagePasserCGT_NotAllowedOnCGTMode(inner) => { + ::abi_encoded_size( + inner, + ) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::L2ToL1MessagePasserCGT_NotAllowedOnCGTMode(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + } + } + } + ///Container for all the [`L2ToL1MessagePasserCGT`](self) events. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum L2ToL1MessagePasserCGTEvents { + #[allow(missing_docs)] + MessagePassed(MessagePassed), + #[allow(missing_docs)] + WithdrawerBalanceBurnt(WithdrawerBalanceBurnt), + } + impl L2ToL1MessagePasserCGTEvents { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 32usize]] = &[ + [ + 2u8, 165u8, 35u8, 103u8, 209u8, 7u8, 66u8, 216u8, 3u8, 39u8, 18u8, 193u8, + 187u8, 142u8, 1u8, 68u8, 255u8, 30u8, 197u8, 255u8, 218u8, 30u8, 215u8, + 215u8, 11u8, 176u8, 90u8, 39u8, 68u8, 149u8, 80u8, 84u8, + ], + [ + 121u8, 103u8, 222u8, 97u8, 122u8, 90u8, 193u8, 204u8, 126u8, 186u8, 45u8, + 111u8, 55u8, 87u8, 10u8, 1u8, 53u8, 175u8, 169u8, 80u8, 216u8, 187u8, + 119u8, 205u8, 211u8, 95u8, 13u8, 11u8, 78u8, 133u8, 161u8, 111u8, + ], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(MessagePassed), + ::core::stringify!(WithdrawerBalanceBurnt), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolEventInterface for L2ToL1MessagePasserCGTEvents { + const NAME: &'static str = "L2ToL1MessagePasserCGTEvents"; + const COUNT: usize = 2usize; + fn decode_raw_log( + topics: &[alloy_sol_types::Word], + data: &[u8], + ) -> alloy_sol_types::Result { + match topics.first().copied() { + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::MessagePassed) + } + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::WithdrawerBalanceBurnt) + } + _ => { + alloy_sol_types::private::Err(alloy_sol_types::Error::InvalidLog { + name: ::NAME, + log: alloy_sol_types::private::Box::new( + alloy_sol_types::private::LogData::new_unchecked( + topics.to_vec(), + data.to_vec().into(), + ), + ), + }) + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for L2ToL1MessagePasserCGTEvents { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + match self { + Self::MessagePassed(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::WithdrawerBalanceBurnt(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + } + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + match self { + Self::MessagePassed(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::WithdrawerBalanceBurnt(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`L2ToL1MessagePasserCGT`](self) contract instance. + +See the [wrapper's documentation](`L2ToL1MessagePasserCGTInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> L2ToL1MessagePasserCGTInstance { + L2ToL1MessagePasserCGTInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + L2ToL1MessagePasserCGTInstance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + L2ToL1MessagePasserCGTInstance::::deploy_builder(__provider) + } + /**A [`L2ToL1MessagePasserCGT`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`L2ToL1MessagePasserCGT`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct L2ToL1MessagePasserCGTInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for L2ToL1MessagePasserCGTInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("L2ToL1MessagePasserCGTInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > L2ToL1MessagePasserCGTInstance { + /**Creates a new wrapper around an on-chain [`L2ToL1MessagePasserCGT`](self) contract instance. + +See the [wrapper's documentation](`L2ToL1MessagePasserCGTInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl L2ToL1MessagePasserCGTInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> L2ToL1MessagePasserCGTInstance { + L2ToL1MessagePasserCGTInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > L2ToL1MessagePasserCGTInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`MESSAGE_VERSION`] function. + pub fn MESSAGE_VERSION( + &self, + ) -> alloy_contract::SolCallBuilder<&P, MESSAGE_VERSIONCall, N> { + self.call_builder(&MESSAGE_VERSIONCall) + } + ///Creates a new call builder for the [`burn`] function. + pub fn burn(&self) -> alloy_contract::SolCallBuilder<&P, burnCall, N> { + self.call_builder(&burnCall) + } + ///Creates a new call builder for the [`initiateWithdrawal`] function. + pub fn initiateWithdrawal( + &self, + _target: alloy::sol_types::private::Address, + _gasLimit: alloy::sol_types::private::primitives::aliases::U256, + _data: alloy::sol_types::private::Bytes, + ) -> alloy_contract::SolCallBuilder<&P, initiateWithdrawalCall, N> { + self.call_builder( + &initiateWithdrawalCall { + _target, + _gasLimit, + _data, + }, + ) + } + ///Creates a new call builder for the [`messageNonce`] function. + pub fn messageNonce( + &self, + ) -> alloy_contract::SolCallBuilder<&P, messageNonceCall, N> { + self.call_builder(&messageNonceCall) + } + ///Creates a new call builder for the [`sentMessages`] function. + pub fn sentMessages( + &self, + _0: alloy::sol_types::private::FixedBytes<32>, + ) -> alloy_contract::SolCallBuilder<&P, sentMessagesCall, N> { + self.call_builder(&sentMessagesCall(_0)) + } + ///Creates a new call builder for the [`version`] function. + pub fn version(&self) -> alloy_contract::SolCallBuilder<&P, versionCall, N> { + self.call_builder(&versionCall) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > L2ToL1MessagePasserCGTInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + ///Creates a new event filter for the [`MessagePassed`] event. + pub fn MessagePassed_filter( + &self, + ) -> alloy_contract::Event<&P, MessagePassed, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`WithdrawerBalanceBurnt`] event. + pub fn WithdrawerBalanceBurnt_filter( + &self, + ) -> alloy_contract::Event<&P, WithdrawerBalanceBurnt, N> { + self.event_filter::() + } + } +} diff --git a/bindings/rust/src/l2_to_l2_cross_domain_messenger.rs b/bindings/rust/src/l2_to_l2_cross_domain_messenger.rs new file mode 100644 index 000000000..80b26f5e7 --- /dev/null +++ b/bindings/rust/src/l2_to_l2_cross_domain_messenger.rs @@ -0,0 +1,4901 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface L2ToL2CrossDomainMessenger { + struct Identifier { + address origin; + uint256 blockNumber; + uint256 logIndex; + uint256 timestamp; + uint256 chainId; + } + + error EventPayloadNotSentMessage(); + error IdOriginNotL2ToL2CrossDomainMessenger(); + error InvalidMessage(); + error MessageAlreadyRelayed(); + error MessageDestinationNotRelayChain(); + error MessageDestinationSameChain(); + error MessageTargetL2ToL2CrossDomainMessenger(); + error NotEntered(); + error ReentrantCall(); + + event RelayedMessage(uint256 indexed source, uint256 indexed messageNonce, bytes32 indexed messageHash, bytes32 returnDataHash); + event SentMessage(uint256 indexed destination, address indexed target, uint256 indexed messageNonce, address sender, bytes message); + + function crossDomainMessageContext() external view returns (address sender_, uint256 source_); + function crossDomainMessageSender() external view returns (address sender_); + function crossDomainMessageSource() external view returns (uint256 source_); + function messageNonce() external view returns (uint256); + function messageVersion() external view returns (uint16); + function relayMessage(Identifier memory _id, bytes memory _sentMessage) external payable returns (bytes memory returnData_); + function resendMessage(uint256 _destination, uint256 _nonce, address _sender, address _target, bytes memory _message) external returns (bytes32 messageHash_); + function sendMessage(uint256 _destination, address _target, bytes memory _message) external returns (bytes32 messageHash_); + function sentMessages(uint256) external view returns (bytes32); + function successfulMessages(bytes32) external view returns (bool); + function version() external view returns (string memory); +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "function", + "name": "crossDomainMessageContext", + "inputs": [], + "outputs": [ + { + "name": "sender_", + "type": "address", + "internalType": "address" + }, + { + "name": "source_", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "crossDomainMessageSender", + "inputs": [], + "outputs": [ + { + "name": "sender_", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "crossDomainMessageSource", + "inputs": [], + "outputs": [ + { + "name": "source_", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "messageNonce", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "messageVersion", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint16", + "internalType": "uint16" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "relayMessage", + "inputs": [ + { + "name": "_id", + "type": "tuple", + "internalType": "struct Identifier", + "components": [ + { + "name": "origin", + "type": "address", + "internalType": "address" + }, + { + "name": "blockNumber", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "logIndex", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "timestamp", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "chainId", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { + "name": "_sentMessage", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [ + { + "name": "returnData_", + "type": "bytes", + "internalType": "bytes" + } + ], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "resendMessage", + "inputs": [ + { + "name": "_destination", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_nonce", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_sender", + "type": "address", + "internalType": "address" + }, + { + "name": "_target", + "type": "address", + "internalType": "address" + }, + { + "name": "_message", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [ + { + "name": "messageHash_", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "sendMessage", + "inputs": [ + { + "name": "_destination", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_target", + "type": "address", + "internalType": "address" + }, + { + "name": "_message", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [ + { + "name": "messageHash_", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "sentMessages", + "inputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "successfulMessages", + "inputs": [ + { + "name": "", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "version", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "view" + }, + { + "type": "event", + "name": "RelayedMessage", + "inputs": [ + { + "name": "source", + "type": "uint256", + "indexed": true, + "internalType": "uint256" + }, + { + "name": "messageNonce", + "type": "uint256", + "indexed": true, + "internalType": "uint256" + }, + { + "name": "messageHash", + "type": "bytes32", + "indexed": true, + "internalType": "bytes32" + }, + { + "name": "returnDataHash", + "type": "bytes32", + "indexed": false, + "internalType": "bytes32" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "SentMessage", + "inputs": [ + { + "name": "destination", + "type": "uint256", + "indexed": true, + "internalType": "uint256" + }, + { + "name": "target", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "messageNonce", + "type": "uint256", + "indexed": true, + "internalType": "uint256" + }, + { + "name": "sender", + "type": "address", + "indexed": false, + "internalType": "address" + }, + { + "name": "message", + "type": "bytes", + "indexed": false, + "internalType": "bytes" + } + ], + "anonymous": false + }, + { + "type": "error", + "name": "EventPayloadNotSentMessage", + "inputs": [] + }, + { + "type": "error", + "name": "IdOriginNotL2ToL2CrossDomainMessenger", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidMessage", + "inputs": [] + }, + { + "type": "error", + "name": "MessageAlreadyRelayed", + "inputs": [] + }, + { + "type": "error", + "name": "MessageDestinationNotRelayChain", + "inputs": [] + }, + { + "type": "error", + "name": "MessageDestinationSameChain", + "inputs": [] + }, + { + "type": "error", + "name": "MessageTargetL2ToL2CrossDomainMessenger", + "inputs": [] + }, + { + "type": "error", + "name": "NotEntered", + "inputs": [] + }, + { + "type": "error", + "name": "ReentrantCall", + "inputs": [] + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod L2ToL2CrossDomainMessenger { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x6080604052348015600e575f80fd5b506111678061001c5f395ff3fe6080604052600436106100b8575f3560e01c80637056f41f11610071578063b1b1b2091161004c578063b1b1b20914610228578063bc294d7d14610266578063ecc7042814610291575f80fd5b80637056f41f146101b65780637936cbee146101d55780638d1d298f14610215575f80fd5b806352617f3c116100a157806352617f3c1461011c57806354fd4d50146101425780636b0c3c5e14610197575f80fd5b806324794462146100bc57806338ffde18146100e3575b5f80fd5b3480156100c7575f80fd5b506100d06102c5565b6040519081526020015b60405180910390f35b3480156100ee575f80fd5b506100f7610344565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100da565b348015610127575f80fd5b5061012f5f81565b60405161ffff90911681526020016100da565b34801561014d575f80fd5b5061018a6040518060400160405280600581526020017f312e332e3000000000000000000000000000000000000000000000000000000081525081565b6040516100da9190610c7e565b3480156101a2575f80fd5b506100d06101b1366004610d00565b6103c3565b3480156101c1575f80fd5b506100d06101d0366004610d77565b6104ae565b3480156101e0575f80fd5b506101e96106ba565b6040805173ffffffffffffffffffffffffffffffffffffffff90931683526020830191909152016100da565b61018a610223366004610dcf565b61075e565b348015610233575f80fd5b50610256610242366004610e25565b5f6020819052908152604090205460ff1681565b60405190151581526020016100da565b348015610271575f80fd5b506100d0610280366004610e25565b60026020525f908152604090205481565b34801561029c575f80fd5b506001547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff166100d0565b5f7ff13569814868ede994184d5a425471fb19e869768a33421cb701a2ba3d420c0a5c61031e576040517fbca35af600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b507f711dfa3259c842fffc17d6e1f1e0fc5927756133a2345ca56b4cb8178589fee75c90565b5f7ff13569814868ede994184d5a425471fb19e869768a33421cb701a2ba3d420c0a5c61039d576040517fbca35af600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b507fb83444d07072b122e2e72a669ce32857d892345c19856f4e7142d06a167ab3f35c90565b5f610407874688888888888080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250610ae192505050565b5f878152600260205260409020549091508114610450576040517f6eca2e4b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b858473ffffffffffffffffffffffffffffffffffffffff16887f382409ac69001e11931a28435afef442cbfd20d9891907e8fa373ba7d351f32088878760405161049c93929190610e3c565b60405180910390a49695505050505050565b5f4685036104e8576040517f8ed9a95d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fffffffffffffffffffffffffbdffffffffffffffffffffffffffffffffffffdd73ffffffffffffffffffffffffffffffffffffffff851601610557576040517f4faa250900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6105816001547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1690565b90506105c6864683338989898080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250610ae192505050565b5f828152600260205260408120829055600180549294507dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff909216919061060a83610ea5565b91906101000a8154817dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02191690837dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff16021790555050808573ffffffffffffffffffffffffffffffffffffffff16877f382409ac69001e11931a28435afef442cbfd20d9891907e8fa373ba7d351f3203388886040516106a993929190610e3c565b60405180910390a450949350505050565b5f807ff13569814868ede994184d5a425471fb19e869768a33421cb701a2ba3d420c0a5c610714576040517fbca35af600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50507fb83444d07072b122e2e72a669ce32857d892345c19856f4e7142d06a167ab3f35c907f711dfa3259c842fffc17d6e1f1e0fc5927756133a2345ca56b4cb8178589fee75c90565b60607ff13569814868ede994184d5a425471fb19e869768a33421cb701a2ba3d420c0a5c156107b9576040517f37ed32e800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60017ff13569814868ede994184d5a425471fb19e869768a33421cb701a2ba3d420c0a5d7342000000000000000000000000000000000000236107ff6020860186610f06565b73ffffffffffffffffffffffffffffffffffffffff161461084c576040517f7987c15700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73420000000000000000000000000000000000002273ffffffffffffffffffffffffffffffffffffffff1663ab4d6f7585858560405161088d929190610f21565b6040519081900381207fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1682526108cc9291600401610f30565b5f604051808303815f87803b1580156108e3575f80fd5b505af11580156108f5573d5f803e3d5ffd5b505050505f805f805f6109088888610b1f565b9450945094509450945046851461094b576040517f31ac221100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60808901355f61095f878387878a88610ae1565b5f8181526020819052604090205490915060ff16156109aa576040517f9ca9480b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f81815260208190526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790556109ea8285610be8565b5f8673ffffffffffffffffffffffffffffffffffffffff163485604051610a119190610f89565b5f6040518083038185875af1925050503d805f8114610a4b576040519150601f19603f3d011682016040523d82523d5f602084013e610a50565b606091505b509950905080610a6257885189602001fd5b8186847fc270d73e26d2d39dee7ef92093555927e344e243415547ecc350b2b5385b68a28c80519060200120604051610a9d91815260200190565b60405180910390a4610aaf5f80610be8565b50505050505050505f7ff13569814868ede994184d5a425471fb19e869768a33421cb701a2ba3d420c0a5d9392505050565b5f868686868686604051602001610afd96959493929190610f9f565b6040516020818303038152906040528051906020012090509695505050505050565b5f808080606081610b33602082898b610ff5565b810190610b409190610e25565b90507f382409ac69001e11931a28435afef442cbfd20d9891907e8fa373ba7d351f3208114610b9b576040517fdf1eb58600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610ba960806020898b610ff5565b810190610bb6919061101c565b91975095509350610bca876080818b610ff5565b810190610bd7919061107e565b969995985093965092949392505050565b817f711dfa3259c842fffc17d6e1f1e0fc5927756133a2345ca56b4cb8178589fee75d807fb83444d07072b122e2e72a669ce32857d892345c19856f4e7142d06a167ab3f35d5050565b5f81518084528060208401602086015e5f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b602081525f610c906020830184610c32565b9392505050565b73ffffffffffffffffffffffffffffffffffffffff81168114610cb8575f80fd5b50565b5f8083601f840112610ccb575f80fd5b50813567ffffffffffffffff811115610ce2575f80fd5b602083019150836020828501011115610cf9575f80fd5b9250929050565b5f805f805f8060a08789031215610d15575f80fd5b86359550602087013594506040870135610d2e81610c97565b93506060870135610d3e81610c97565b9250608087013567ffffffffffffffff811115610d59575f80fd5b610d6589828a01610cbb565b979a9699509497509295939492505050565b5f805f8060608587031215610d8a575f80fd5b843593506020850135610d9c81610c97565b9250604085013567ffffffffffffffff811115610db7575f80fd5b610dc387828801610cbb565b95989497509550505050565b5f805f83850360c0811215610de2575f80fd5b60a0811215610def575f80fd5b5083925060a084013567ffffffffffffffff811115610e0c575f80fd5b610e1886828701610cbb565b9497909650939450505050565b5f60208284031215610e35575f80fd5b5035919050565b73ffffffffffffffffffffffffffffffffffffffff8416815260406020820152816040820152818360608301375f818301606090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016010192915050565b5f7dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff808316818103610efc577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b6001019392505050565b5f60208284031215610f16575f80fd5b8135610c9081610c97565b818382375f9101908152919050565b60c081018335610f3f81610c97565b73ffffffffffffffffffffffffffffffffffffffff1682526020848101359083015260408085013590830152606080850135908301526080938401359382019390935260a0015290565b5f82518060208501845e5f920191825250919050565b8681528560208201528460408201525f73ffffffffffffffffffffffffffffffffffffffff808616606084015280851660808401525060c060a0830152610fe960c0830184610c32565b98975050505050505050565b5f8085851115611003575f80fd5b8386111561100f575f80fd5b5050820193919092039150565b5f805f6060848603121561102e575f80fd5b83359250602084013561104081610c97565b929592945050506040919091013590565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f806040838503121561108f575f80fd5b823561109a81610c97565b9150602083013567ffffffffffffffff808211156110b6575f80fd5b818501915085601f8301126110c9575f80fd5b8135818111156110db576110db611051565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190838211818310171561112157611121611051565b81604052828152886020848701011115611139575f80fd5b826020860160208301375f602084830101528095505050505050925092905056fea164736f6c6343000819000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R4\x80\x15`\x0EW_\x80\xFD[Pa\x11g\x80a\0\x1C_9_\xF3\xFE`\x80`@R`\x046\x10a\0\xB8W_5`\xE0\x1C\x80cpV\xF4\x1F\x11a\0qW\x80c\xB1\xB1\xB2\t\x11a\0LW\x80c\xB1\xB1\xB2\t\x14a\x02(W\x80c\xBC)M}\x14a\x02fW\x80c\xEC\xC7\x04(\x14a\x02\x91W_\x80\xFD[\x80cpV\xF4\x1F\x14a\x01\xB6W\x80cy6\xCB\xEE\x14a\x01\xD5W\x80c\x8D\x1D)\x8F\x14a\x02\x15W_\x80\xFD[\x80cRa\x7F<\x11a\0\xA1W\x80cRa\x7F<\x14a\x01\x1CW\x80cT\xFDMP\x14a\x01BW\x80ck\x0C<^\x14a\x01\x97W_\x80\xFD[\x80c$yDb\x14a\0\xBCW\x80c8\xFF\xDE\x18\x14a\0\xE3W[_\x80\xFD[4\x80\x15a\0\xC7W_\x80\xFD[Pa\0\xD0a\x02\xC5V[`@Q\x90\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[4\x80\x15a\0\xEEW_\x80\xFD[Pa\0\xF7a\x03DV[`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01a\0\xDAV[4\x80\x15a\x01'W_\x80\xFD[Pa\x01/_\x81V[`@Qa\xFF\xFF\x90\x91\x16\x81R` \x01a\0\xDAV[4\x80\x15a\x01MW_\x80\xFD[Pa\x01\x8A`@Q\x80`@\x01`@R\x80`\x05\x81R` \x01\x7F1.3.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\x81RP\x81V[`@Qa\0\xDA\x91\x90a\x0C~V[4\x80\x15a\x01\xA2W_\x80\xFD[Pa\0\xD0a\x01\xB16`\x04a\r\0V[a\x03\xC3V[4\x80\x15a\x01\xC1W_\x80\xFD[Pa\0\xD0a\x01\xD06`\x04a\rwV[a\x04\xAEV[4\x80\x15a\x01\xE0W_\x80\xFD[Pa\x01\xE9a\x06\xBAV[`@\x80Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x93\x16\x83R` \x83\x01\x91\x90\x91R\x01a\0\xDAV[a\x01\x8Aa\x02#6`\x04a\r\xCFV[a\x07^V[4\x80\x15a\x023W_\x80\xFD[Pa\x02Va\x02B6`\x04a\x0E%V[_` \x81\x90R\x90\x81R`@\x90 T`\xFF\x16\x81V[`@Q\x90\x15\x15\x81R` \x01a\0\xDAV[4\x80\x15a\x02qW_\x80\xFD[Pa\0\xD0a\x02\x806`\x04a\x0E%V[`\x02` R_\x90\x81R`@\x90 T\x81V[4\x80\x15a\x02\x9CW_\x80\xFD[P`\x01T}\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a\0\xD0V[_\x7F\xF15i\x81Hh\xED\xE9\x94\x18MZBTq\xFB\x19\xE8iv\x8A3B\x1C\xB7\x01\xA2\xBA=B\x0C\n\\a\x03\x1EW`@Q\x7F\xBC\xA3Z\xF6\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\x01`@Q\x80\x91\x03\x90\xFD[P\x7Fq\x1D\xFA2Y\xC8B\xFF\xFC\x17\xD6\xE1\xF1\xE0\xFCY'ua3\xA24\\\xA5kL\xB8\x17\x85\x89\xFE\xE7\\\x90V[_\x7F\xF15i\x81Hh\xED\xE9\x94\x18MZBTq\xFB\x19\xE8iv\x8A3B\x1C\xB7\x01\xA2\xBA=B\x0C\n\\a\x03\x9DW`@Q\x7F\xBC\xA3Z\xF6\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\x01`@Q\x80\x91\x03\x90\xFD[P\x7F\xB84D\xD0pr\xB1\"\xE2\xE7*f\x9C\xE3(W\xD8\x924\\\x19\x85oNqB\xD0j\x16z\xB3\xF3\\\x90V[_a\x04\x07\x87F\x88\x88\x88\x88\x88\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847_\x92\x01\x91\x90\x91RPa\n\xE1\x92PPPV[_\x87\x81R`\x02` R`@\x90 T\x90\x91P\x81\x14a\x04PW`@Q\x7Fn\xCA.K\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\x01`@Q\x80\x91\x03\x90\xFD[\x85\x84s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x88\x7F8$\t\xACi\0\x1E\x11\x93\x1A(CZ\xFE\xF4B\xCB\xFD \xD9\x89\x19\x07\xE8\xFA7;\xA7\xD3Q\xF3 \x88\x87\x87`@Qa\x04\x9C\x93\x92\x91\x90a\x0E=_\xFD[PPPP_\x80_\x80_a\t\x08\x88\x88a\x0B\x1FV[\x94P\x94P\x94P\x94P\x94PF\x85\x14a\tKW`@Q\x7F1\xAC\"\x11\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\x01`@Q\x80\x91\x03\x90\xFD[`\x80\x89\x015_a\t_\x87\x83\x87\x87\x8A\x88a\n\xE1V[_\x81\x81R` \x81\x90R`@\x90 T\x90\x91P`\xFF\x16\x15a\t\xAAW`@Q\x7F\x9C\xA9H\x0B\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\x01`@Q\x80\x91\x03\x90\xFD[_\x81\x81R` \x81\x90R`@\x90 \x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x16`\x01\x17\x90Ua\t\xEA\x82\x85a\x0B\xE8V[_\x86s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x164\x85`@Qa\n\x11\x91\x90a\x0F\x89V[_`@Q\x80\x83\x03\x81\x85\x87Z\xF1\x92PPP=\x80_\x81\x14a\nKW`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=_` \x84\x01>a\nPV[``\x91P[P\x99P\x90P\x80a\nbW\x88Q\x89` \x01\xFD[\x81\x86\x84\x7F\xC2p\xD7>&\xD2\xD3\x9D\xEE~\xF9 \x93UY'\xE3D\xE2CAUG\xEC\xC3P\xB2\xB58[h\xA2\x8C\x80Q\x90` \x01 `@Qa\n\x9D\x91\x81R` \x01\x90V[`@Q\x80\x91\x03\x90\xA4a\n\xAF_\x80a\x0B\xE8V[PPPPPPPP_\x7F\xF15i\x81Hh\xED\xE9\x94\x18MZBTq\xFB\x19\xE8iv\x8A3B\x1C\xB7\x01\xA2\xBA=B\x0C\n]\x93\x92PPPV[_\x86\x86\x86\x86\x86\x86`@Q` \x01a\n\xFD\x96\x95\x94\x93\x92\x91\x90a\x0F\x9FV[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 \x90P\x96\x95PPPPPPV[_\x80\x80\x80``\x81a\x0B3` \x82\x89\x8Ba\x0F\xF5V[\x81\x01\x90a\x0B@\x91\x90a\x0E%V[\x90P\x7F8$\t\xACi\0\x1E\x11\x93\x1A(CZ\xFE\xF4B\xCB\xFD \xD9\x89\x19\x07\xE8\xFA7;\xA7\xD3Q\xF3 \x81\x14a\x0B\x9BW`@Q\x7F\xDF\x1E\xB5\x86\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\x01`@Q\x80\x91\x03\x90\xFD[a\x0B\xA9`\x80` \x89\x8Ba\x0F\xF5V[\x81\x01\x90a\x0B\xB6\x91\x90a\x10\x1CV[\x91\x97P\x95P\x93Pa\x0B\xCA\x87`\x80\x81\x8Ba\x0F\xF5V[\x81\x01\x90a\x0B\xD7\x91\x90a\x10~V[\x96\x99\x95\x98P\x93\x96P\x92\x94\x93\x92PPPV[\x81\x7Fq\x1D\xFA2Y\xC8B\xFF\xFC\x17\xD6\xE1\xF1\xE0\xFCY'ua3\xA24\\\xA5kL\xB8\x17\x85\x89\xFE\xE7]\x80\x7F\xB84D\xD0pr\xB1\"\xE2\xE7*f\x9C\xE3(W\xD8\x924\\\x19\x85oNqB\xD0j\x16z\xB3\xF3]PPV[_\x81Q\x80\x84R\x80` \x84\x01` \x86\x01^_` \x82\x86\x01\x01R` \x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0`\x1F\x83\x01\x16\x85\x01\x01\x91PP\x92\x91PPV[` \x81R_a\x0C\x90` \x83\x01\x84a\x0C2V[\x93\x92PPPV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x0C\xB8W_\x80\xFD[PV[_\x80\x83`\x1F\x84\x01\x12a\x0C\xCBW_\x80\xFD[P\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x0C\xE2W_\x80\xFD[` \x83\x01\x91P\x83` \x82\x85\x01\x01\x11\x15a\x0C\xF9W_\x80\xFD[\x92P\x92\x90PV[_\x80_\x80_\x80`\xA0\x87\x89\x03\x12\x15a\r\x15W_\x80\xFD[\x865\x95P` \x87\x015\x94P`@\x87\x015a\r.\x81a\x0C\x97V[\x93P``\x87\x015a\r>\x81a\x0C\x97V[\x92P`\x80\x87\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\rYW_\x80\xFD[a\re\x89\x82\x8A\x01a\x0C\xBBV[\x97\x9A\x96\x99P\x94\x97P\x92\x95\x93\x94\x92PPPV[_\x80_\x80``\x85\x87\x03\x12\x15a\r\x8AW_\x80\xFD[\x845\x93P` \x85\x015a\r\x9C\x81a\x0C\x97V[\x92P`@\x85\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\r\xB7W_\x80\xFD[a\r\xC3\x87\x82\x88\x01a\x0C\xBBV[\x95\x98\x94\x97P\x95PPPPV[_\x80_\x83\x85\x03`\xC0\x81\x12\x15a\r\xE2W_\x80\xFD[`\xA0\x81\x12\x15a\r\xEFW_\x80\xFD[P\x83\x92P`\xA0\x84\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x0E\x0CW_\x80\xFD[a\x0E\x18\x86\x82\x87\x01a\x0C\xBBV[\x94\x97\x90\x96P\x93\x94PPPPV[_` \x82\x84\x03\x12\x15a\x0E5W_\x80\xFD[P5\x91\x90PV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x16\x81R`@` \x82\x01R\x81`@\x82\x01R\x81\x83``\x83\x017_\x81\x83\x01``\x90\x81\x01\x91\x90\x91R`\x1F\x90\x92\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x01\x01\x92\x91PPV[_}\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x83\x16\x81\x81\x03a\x0E\xFCW\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_R`\x11`\x04R`$_\xFD[`\x01\x01\x93\x92PPPV[_` \x82\x84\x03\x12\x15a\x0F\x16W_\x80\xFD[\x815a\x0C\x90\x81a\x0C\x97V[\x81\x83\x827_\x91\x01\x90\x81R\x91\x90PV[`\xC0\x81\x01\x835a\x0F?\x81a\x0C\x97V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x82R` \x84\x81\x015\x90\x83\x01R`@\x80\x85\x015\x90\x83\x01R``\x80\x85\x015\x90\x83\x01R`\x80\x93\x84\x015\x93\x82\x01\x93\x90\x93R`\xA0\x01R\x90V[_\x82Q\x80` \x85\x01\x84^_\x92\x01\x91\x82RP\x91\x90PV[\x86\x81R\x85` \x82\x01R\x84`@\x82\x01R_s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x86\x16``\x84\x01R\x80\x85\x16`\x80\x84\x01RP`\xC0`\xA0\x83\x01Ra\x0F\xE9`\xC0\x83\x01\x84a\x0C2V[\x98\x97PPPPPPPPV[_\x80\x85\x85\x11\x15a\x10\x03W_\x80\xFD[\x83\x86\x11\x15a\x10\x0FW_\x80\xFD[PP\x82\x01\x93\x91\x90\x92\x03\x91PV[_\x80_``\x84\x86\x03\x12\x15a\x10.W_\x80\xFD[\x835\x92P` \x84\x015a\x10@\x81a\x0C\x97V[\x92\x95\x92\x94PPP`@\x91\x90\x91\x015\x90V[\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_R`A`\x04R`$_\xFD[_\x80`@\x83\x85\x03\x12\x15a\x10\x8FW_\x80\xFD[\x825a\x10\x9A\x81a\x0C\x97V[\x91P` \x83\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x10\xB6W_\x80\xFD[\x81\x85\x01\x91P\x85`\x1F\x83\x01\x12a\x10\xC9W_\x80\xFD[\x815\x81\x81\x11\x15a\x10\xDBWa\x10\xDBa\x10QV[`@Q`\x1F\x82\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x90\x81\x16`?\x01\x16\x81\x01\x90\x83\x82\x11\x81\x83\x10\x17\x15a\x11!Wa\x11!a\x10QV[\x81`@R\x82\x81R\x88` \x84\x87\x01\x01\x11\x15a\x119W_\x80\xFD[\x82` \x86\x01` \x83\x017_` \x84\x83\x01\x01R\x80\x95PPPPPP\x92P\x92\x90PV\xFE\xA1dsolcC\0\x08\x19\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x6080604052600436106100b8575f3560e01c80637056f41f11610071578063b1b1b2091161004c578063b1b1b20914610228578063bc294d7d14610266578063ecc7042814610291575f80fd5b80637056f41f146101b65780637936cbee146101d55780638d1d298f14610215575f80fd5b806352617f3c116100a157806352617f3c1461011c57806354fd4d50146101425780636b0c3c5e14610197575f80fd5b806324794462146100bc57806338ffde18146100e3575b5f80fd5b3480156100c7575f80fd5b506100d06102c5565b6040519081526020015b60405180910390f35b3480156100ee575f80fd5b506100f7610344565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100da565b348015610127575f80fd5b5061012f5f81565b60405161ffff90911681526020016100da565b34801561014d575f80fd5b5061018a6040518060400160405280600581526020017f312e332e3000000000000000000000000000000000000000000000000000000081525081565b6040516100da9190610c7e565b3480156101a2575f80fd5b506100d06101b1366004610d00565b6103c3565b3480156101c1575f80fd5b506100d06101d0366004610d77565b6104ae565b3480156101e0575f80fd5b506101e96106ba565b6040805173ffffffffffffffffffffffffffffffffffffffff90931683526020830191909152016100da565b61018a610223366004610dcf565b61075e565b348015610233575f80fd5b50610256610242366004610e25565b5f6020819052908152604090205460ff1681565b60405190151581526020016100da565b348015610271575f80fd5b506100d0610280366004610e25565b60026020525f908152604090205481565b34801561029c575f80fd5b506001547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff166100d0565b5f7ff13569814868ede994184d5a425471fb19e869768a33421cb701a2ba3d420c0a5c61031e576040517fbca35af600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b507f711dfa3259c842fffc17d6e1f1e0fc5927756133a2345ca56b4cb8178589fee75c90565b5f7ff13569814868ede994184d5a425471fb19e869768a33421cb701a2ba3d420c0a5c61039d576040517fbca35af600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b507fb83444d07072b122e2e72a669ce32857d892345c19856f4e7142d06a167ab3f35c90565b5f610407874688888888888080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250610ae192505050565b5f878152600260205260409020549091508114610450576040517f6eca2e4b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b858473ffffffffffffffffffffffffffffffffffffffff16887f382409ac69001e11931a28435afef442cbfd20d9891907e8fa373ba7d351f32088878760405161049c93929190610e3c565b60405180910390a49695505050505050565b5f4685036104e8576040517f8ed9a95d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fffffffffffffffffffffffffbdffffffffffffffffffffffffffffffffffffdd73ffffffffffffffffffffffffffffffffffffffff851601610557576040517f4faa250900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6105816001547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1690565b90506105c6864683338989898080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250610ae192505050565b5f828152600260205260408120829055600180549294507dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff909216919061060a83610ea5565b91906101000a8154817dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02191690837dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff16021790555050808573ffffffffffffffffffffffffffffffffffffffff16877f382409ac69001e11931a28435afef442cbfd20d9891907e8fa373ba7d351f3203388886040516106a993929190610e3c565b60405180910390a450949350505050565b5f807ff13569814868ede994184d5a425471fb19e869768a33421cb701a2ba3d420c0a5c610714576040517fbca35af600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50507fb83444d07072b122e2e72a669ce32857d892345c19856f4e7142d06a167ab3f35c907f711dfa3259c842fffc17d6e1f1e0fc5927756133a2345ca56b4cb8178589fee75c90565b60607ff13569814868ede994184d5a425471fb19e869768a33421cb701a2ba3d420c0a5c156107b9576040517f37ed32e800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60017ff13569814868ede994184d5a425471fb19e869768a33421cb701a2ba3d420c0a5d7342000000000000000000000000000000000000236107ff6020860186610f06565b73ffffffffffffffffffffffffffffffffffffffff161461084c576040517f7987c15700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73420000000000000000000000000000000000002273ffffffffffffffffffffffffffffffffffffffff1663ab4d6f7585858560405161088d929190610f21565b6040519081900381207fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1682526108cc9291600401610f30565b5f604051808303815f87803b1580156108e3575f80fd5b505af11580156108f5573d5f803e3d5ffd5b505050505f805f805f6109088888610b1f565b9450945094509450945046851461094b576040517f31ac221100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60808901355f61095f878387878a88610ae1565b5f8181526020819052604090205490915060ff16156109aa576040517f9ca9480b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f81815260208190526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790556109ea8285610be8565b5f8673ffffffffffffffffffffffffffffffffffffffff163485604051610a119190610f89565b5f6040518083038185875af1925050503d805f8114610a4b576040519150601f19603f3d011682016040523d82523d5f602084013e610a50565b606091505b509950905080610a6257885189602001fd5b8186847fc270d73e26d2d39dee7ef92093555927e344e243415547ecc350b2b5385b68a28c80519060200120604051610a9d91815260200190565b60405180910390a4610aaf5f80610be8565b50505050505050505f7ff13569814868ede994184d5a425471fb19e869768a33421cb701a2ba3d420c0a5d9392505050565b5f868686868686604051602001610afd96959493929190610f9f565b6040516020818303038152906040528051906020012090509695505050505050565b5f808080606081610b33602082898b610ff5565b810190610b409190610e25565b90507f382409ac69001e11931a28435afef442cbfd20d9891907e8fa373ba7d351f3208114610b9b576040517fdf1eb58600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610ba960806020898b610ff5565b810190610bb6919061101c565b91975095509350610bca876080818b610ff5565b810190610bd7919061107e565b969995985093965092949392505050565b817f711dfa3259c842fffc17d6e1f1e0fc5927756133a2345ca56b4cb8178589fee75d807fb83444d07072b122e2e72a669ce32857d892345c19856f4e7142d06a167ab3f35d5050565b5f81518084528060208401602086015e5f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b602081525f610c906020830184610c32565b9392505050565b73ffffffffffffffffffffffffffffffffffffffff81168114610cb8575f80fd5b50565b5f8083601f840112610ccb575f80fd5b50813567ffffffffffffffff811115610ce2575f80fd5b602083019150836020828501011115610cf9575f80fd5b9250929050565b5f805f805f8060a08789031215610d15575f80fd5b86359550602087013594506040870135610d2e81610c97565b93506060870135610d3e81610c97565b9250608087013567ffffffffffffffff811115610d59575f80fd5b610d6589828a01610cbb565b979a9699509497509295939492505050565b5f805f8060608587031215610d8a575f80fd5b843593506020850135610d9c81610c97565b9250604085013567ffffffffffffffff811115610db7575f80fd5b610dc387828801610cbb565b95989497509550505050565b5f805f83850360c0811215610de2575f80fd5b60a0811215610def575f80fd5b5083925060a084013567ffffffffffffffff811115610e0c575f80fd5b610e1886828701610cbb565b9497909650939450505050565b5f60208284031215610e35575f80fd5b5035919050565b73ffffffffffffffffffffffffffffffffffffffff8416815260406020820152816040820152818360608301375f818301606090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016010192915050565b5f7dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff808316818103610efc577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b6001019392505050565b5f60208284031215610f16575f80fd5b8135610c9081610c97565b818382375f9101908152919050565b60c081018335610f3f81610c97565b73ffffffffffffffffffffffffffffffffffffffff1682526020848101359083015260408085013590830152606080850135908301526080938401359382019390935260a0015290565b5f82518060208501845e5f920191825250919050565b8681528560208201528460408201525f73ffffffffffffffffffffffffffffffffffffffff808616606084015280851660808401525060c060a0830152610fe960c0830184610c32565b98975050505050505050565b5f8085851115611003575f80fd5b8386111561100f575f80fd5b5050820193919092039150565b5f805f6060848603121561102e575f80fd5b83359250602084013561104081610c97565b929592945050506040919091013590565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f806040838503121561108f575f80fd5b823561109a81610c97565b9150602083013567ffffffffffffffff808211156110b6575f80fd5b818501915085601f8301126110c9575f80fd5b8135818111156110db576110db611051565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190838211818310171561112157611121611051565b81604052828152886020848701011115611139575f80fd5b826020860160208301375f602084830101528095505050505050925092905056fea164736f6c6343000819000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R`\x046\x10a\0\xB8W_5`\xE0\x1C\x80cpV\xF4\x1F\x11a\0qW\x80c\xB1\xB1\xB2\t\x11a\0LW\x80c\xB1\xB1\xB2\t\x14a\x02(W\x80c\xBC)M}\x14a\x02fW\x80c\xEC\xC7\x04(\x14a\x02\x91W_\x80\xFD[\x80cpV\xF4\x1F\x14a\x01\xB6W\x80cy6\xCB\xEE\x14a\x01\xD5W\x80c\x8D\x1D)\x8F\x14a\x02\x15W_\x80\xFD[\x80cRa\x7F<\x11a\0\xA1W\x80cRa\x7F<\x14a\x01\x1CW\x80cT\xFDMP\x14a\x01BW\x80ck\x0C<^\x14a\x01\x97W_\x80\xFD[\x80c$yDb\x14a\0\xBCW\x80c8\xFF\xDE\x18\x14a\0\xE3W[_\x80\xFD[4\x80\x15a\0\xC7W_\x80\xFD[Pa\0\xD0a\x02\xC5V[`@Q\x90\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[4\x80\x15a\0\xEEW_\x80\xFD[Pa\0\xF7a\x03DV[`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01a\0\xDAV[4\x80\x15a\x01'W_\x80\xFD[Pa\x01/_\x81V[`@Qa\xFF\xFF\x90\x91\x16\x81R` \x01a\0\xDAV[4\x80\x15a\x01MW_\x80\xFD[Pa\x01\x8A`@Q\x80`@\x01`@R\x80`\x05\x81R` \x01\x7F1.3.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\x81RP\x81V[`@Qa\0\xDA\x91\x90a\x0C~V[4\x80\x15a\x01\xA2W_\x80\xFD[Pa\0\xD0a\x01\xB16`\x04a\r\0V[a\x03\xC3V[4\x80\x15a\x01\xC1W_\x80\xFD[Pa\0\xD0a\x01\xD06`\x04a\rwV[a\x04\xAEV[4\x80\x15a\x01\xE0W_\x80\xFD[Pa\x01\xE9a\x06\xBAV[`@\x80Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x93\x16\x83R` \x83\x01\x91\x90\x91R\x01a\0\xDAV[a\x01\x8Aa\x02#6`\x04a\r\xCFV[a\x07^V[4\x80\x15a\x023W_\x80\xFD[Pa\x02Va\x02B6`\x04a\x0E%V[_` \x81\x90R\x90\x81R`@\x90 T`\xFF\x16\x81V[`@Q\x90\x15\x15\x81R` \x01a\0\xDAV[4\x80\x15a\x02qW_\x80\xFD[Pa\0\xD0a\x02\x806`\x04a\x0E%V[`\x02` R_\x90\x81R`@\x90 T\x81V[4\x80\x15a\x02\x9CW_\x80\xFD[P`\x01T}\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a\0\xD0V[_\x7F\xF15i\x81Hh\xED\xE9\x94\x18MZBTq\xFB\x19\xE8iv\x8A3B\x1C\xB7\x01\xA2\xBA=B\x0C\n\\a\x03\x1EW`@Q\x7F\xBC\xA3Z\xF6\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\x01`@Q\x80\x91\x03\x90\xFD[P\x7Fq\x1D\xFA2Y\xC8B\xFF\xFC\x17\xD6\xE1\xF1\xE0\xFCY'ua3\xA24\\\xA5kL\xB8\x17\x85\x89\xFE\xE7\\\x90V[_\x7F\xF15i\x81Hh\xED\xE9\x94\x18MZBTq\xFB\x19\xE8iv\x8A3B\x1C\xB7\x01\xA2\xBA=B\x0C\n\\a\x03\x9DW`@Q\x7F\xBC\xA3Z\xF6\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\x01`@Q\x80\x91\x03\x90\xFD[P\x7F\xB84D\xD0pr\xB1\"\xE2\xE7*f\x9C\xE3(W\xD8\x924\\\x19\x85oNqB\xD0j\x16z\xB3\xF3\\\x90V[_a\x04\x07\x87F\x88\x88\x88\x88\x88\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847_\x92\x01\x91\x90\x91RPa\n\xE1\x92PPPV[_\x87\x81R`\x02` R`@\x90 T\x90\x91P\x81\x14a\x04PW`@Q\x7Fn\xCA.K\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\x01`@Q\x80\x91\x03\x90\xFD[\x85\x84s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x88\x7F8$\t\xACi\0\x1E\x11\x93\x1A(CZ\xFE\xF4B\xCB\xFD \xD9\x89\x19\x07\xE8\xFA7;\xA7\xD3Q\xF3 \x88\x87\x87`@Qa\x04\x9C\x93\x92\x91\x90a\x0E=_\xFD[PPPP_\x80_\x80_a\t\x08\x88\x88a\x0B\x1FV[\x94P\x94P\x94P\x94P\x94PF\x85\x14a\tKW`@Q\x7F1\xAC\"\x11\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\x01`@Q\x80\x91\x03\x90\xFD[`\x80\x89\x015_a\t_\x87\x83\x87\x87\x8A\x88a\n\xE1V[_\x81\x81R` \x81\x90R`@\x90 T\x90\x91P`\xFF\x16\x15a\t\xAAW`@Q\x7F\x9C\xA9H\x0B\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\x01`@Q\x80\x91\x03\x90\xFD[_\x81\x81R` \x81\x90R`@\x90 \x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x16`\x01\x17\x90Ua\t\xEA\x82\x85a\x0B\xE8V[_\x86s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x164\x85`@Qa\n\x11\x91\x90a\x0F\x89V[_`@Q\x80\x83\x03\x81\x85\x87Z\xF1\x92PPP=\x80_\x81\x14a\nKW`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=_` \x84\x01>a\nPV[``\x91P[P\x99P\x90P\x80a\nbW\x88Q\x89` \x01\xFD[\x81\x86\x84\x7F\xC2p\xD7>&\xD2\xD3\x9D\xEE~\xF9 \x93UY'\xE3D\xE2CAUG\xEC\xC3P\xB2\xB58[h\xA2\x8C\x80Q\x90` \x01 `@Qa\n\x9D\x91\x81R` \x01\x90V[`@Q\x80\x91\x03\x90\xA4a\n\xAF_\x80a\x0B\xE8V[PPPPPPPP_\x7F\xF15i\x81Hh\xED\xE9\x94\x18MZBTq\xFB\x19\xE8iv\x8A3B\x1C\xB7\x01\xA2\xBA=B\x0C\n]\x93\x92PPPV[_\x86\x86\x86\x86\x86\x86`@Q` \x01a\n\xFD\x96\x95\x94\x93\x92\x91\x90a\x0F\x9FV[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 \x90P\x96\x95PPPPPPV[_\x80\x80\x80``\x81a\x0B3` \x82\x89\x8Ba\x0F\xF5V[\x81\x01\x90a\x0B@\x91\x90a\x0E%V[\x90P\x7F8$\t\xACi\0\x1E\x11\x93\x1A(CZ\xFE\xF4B\xCB\xFD \xD9\x89\x19\x07\xE8\xFA7;\xA7\xD3Q\xF3 \x81\x14a\x0B\x9BW`@Q\x7F\xDF\x1E\xB5\x86\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\x01`@Q\x80\x91\x03\x90\xFD[a\x0B\xA9`\x80` \x89\x8Ba\x0F\xF5V[\x81\x01\x90a\x0B\xB6\x91\x90a\x10\x1CV[\x91\x97P\x95P\x93Pa\x0B\xCA\x87`\x80\x81\x8Ba\x0F\xF5V[\x81\x01\x90a\x0B\xD7\x91\x90a\x10~V[\x96\x99\x95\x98P\x93\x96P\x92\x94\x93\x92PPPV[\x81\x7Fq\x1D\xFA2Y\xC8B\xFF\xFC\x17\xD6\xE1\xF1\xE0\xFCY'ua3\xA24\\\xA5kL\xB8\x17\x85\x89\xFE\xE7]\x80\x7F\xB84D\xD0pr\xB1\"\xE2\xE7*f\x9C\xE3(W\xD8\x924\\\x19\x85oNqB\xD0j\x16z\xB3\xF3]PPV[_\x81Q\x80\x84R\x80` \x84\x01` \x86\x01^_` \x82\x86\x01\x01R` \x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0`\x1F\x83\x01\x16\x85\x01\x01\x91PP\x92\x91PPV[` \x81R_a\x0C\x90` \x83\x01\x84a\x0C2V[\x93\x92PPPV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x0C\xB8W_\x80\xFD[PV[_\x80\x83`\x1F\x84\x01\x12a\x0C\xCBW_\x80\xFD[P\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x0C\xE2W_\x80\xFD[` \x83\x01\x91P\x83` \x82\x85\x01\x01\x11\x15a\x0C\xF9W_\x80\xFD[\x92P\x92\x90PV[_\x80_\x80_\x80`\xA0\x87\x89\x03\x12\x15a\r\x15W_\x80\xFD[\x865\x95P` \x87\x015\x94P`@\x87\x015a\r.\x81a\x0C\x97V[\x93P``\x87\x015a\r>\x81a\x0C\x97V[\x92P`\x80\x87\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\rYW_\x80\xFD[a\re\x89\x82\x8A\x01a\x0C\xBBV[\x97\x9A\x96\x99P\x94\x97P\x92\x95\x93\x94\x92PPPV[_\x80_\x80``\x85\x87\x03\x12\x15a\r\x8AW_\x80\xFD[\x845\x93P` \x85\x015a\r\x9C\x81a\x0C\x97V[\x92P`@\x85\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\r\xB7W_\x80\xFD[a\r\xC3\x87\x82\x88\x01a\x0C\xBBV[\x95\x98\x94\x97P\x95PPPPV[_\x80_\x83\x85\x03`\xC0\x81\x12\x15a\r\xE2W_\x80\xFD[`\xA0\x81\x12\x15a\r\xEFW_\x80\xFD[P\x83\x92P`\xA0\x84\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x0E\x0CW_\x80\xFD[a\x0E\x18\x86\x82\x87\x01a\x0C\xBBV[\x94\x97\x90\x96P\x93\x94PPPPV[_` \x82\x84\x03\x12\x15a\x0E5W_\x80\xFD[P5\x91\x90PV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x16\x81R`@` \x82\x01R\x81`@\x82\x01R\x81\x83``\x83\x017_\x81\x83\x01``\x90\x81\x01\x91\x90\x91R`\x1F\x90\x92\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x01\x01\x92\x91PPV[_}\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x83\x16\x81\x81\x03a\x0E\xFCW\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_R`\x11`\x04R`$_\xFD[`\x01\x01\x93\x92PPPV[_` \x82\x84\x03\x12\x15a\x0F\x16W_\x80\xFD[\x815a\x0C\x90\x81a\x0C\x97V[\x81\x83\x827_\x91\x01\x90\x81R\x91\x90PV[`\xC0\x81\x01\x835a\x0F?\x81a\x0C\x97V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x82R` \x84\x81\x015\x90\x83\x01R`@\x80\x85\x015\x90\x83\x01R``\x80\x85\x015\x90\x83\x01R`\x80\x93\x84\x015\x93\x82\x01\x93\x90\x93R`\xA0\x01R\x90V[_\x82Q\x80` \x85\x01\x84^_\x92\x01\x91\x82RP\x91\x90PV[\x86\x81R\x85` \x82\x01R\x84`@\x82\x01R_s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x86\x16``\x84\x01R\x80\x85\x16`\x80\x84\x01RP`\xC0`\xA0\x83\x01Ra\x0F\xE9`\xC0\x83\x01\x84a\x0C2V[\x98\x97PPPPPPPPV[_\x80\x85\x85\x11\x15a\x10\x03W_\x80\xFD[\x83\x86\x11\x15a\x10\x0FW_\x80\xFD[PP\x82\x01\x93\x91\x90\x92\x03\x91PV[_\x80_``\x84\x86\x03\x12\x15a\x10.W_\x80\xFD[\x835\x92P` \x84\x015a\x10@\x81a\x0C\x97V[\x92\x95\x92\x94PPP`@\x91\x90\x91\x015\x90V[\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_R`A`\x04R`$_\xFD[_\x80`@\x83\x85\x03\x12\x15a\x10\x8FW_\x80\xFD[\x825a\x10\x9A\x81a\x0C\x97V[\x91P` \x83\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x10\xB6W_\x80\xFD[\x81\x85\x01\x91P\x85`\x1F\x83\x01\x12a\x10\xC9W_\x80\xFD[\x815\x81\x81\x11\x15a\x10\xDBWa\x10\xDBa\x10QV[`@Q`\x1F\x82\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x90\x81\x16`?\x01\x16\x81\x01\x90\x83\x82\x11\x81\x83\x10\x17\x15a\x11!Wa\x11!a\x10QV[\x81`@R\x82\x81R\x88` \x84\x87\x01\x01\x11\x15a\x119W_\x80\xFD[\x82` \x86\x01` \x83\x017_` \x84\x83\x01\x01R\x80\x95PPPPPP\x92P\x92\x90PV\xFE\xA1dsolcC\0\x08\x19\0\n", + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**```solidity +struct Identifier { address origin; uint256 blockNumber; uint256 logIndex; uint256 timestamp; uint256 chainId; } +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct Identifier { + #[allow(missing_docs)] + pub origin: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub blockNumber: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub logIndex: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub timestamp: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub chainId: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: Identifier) -> Self { + ( + value.origin, + value.blockNumber, + value.logIndex, + value.timestamp, + value.chainId, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for Identifier { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + origin: tuple.0, + blockNumber: tuple.1, + logIndex: tuple.2, + timestamp: tuple.3, + chainId: tuple.4, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolValue for Identifier { + type SolType = Self; + } + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for Identifier { + #[inline] + fn stv_to_tokens(&self) -> ::Token<'_> { + ( + ::tokenize( + &self.origin, + ), + as alloy_sol_types::SolType>::tokenize(&self.blockNumber), + as alloy_sol_types::SolType>::tokenize(&self.logIndex), + as alloy_sol_types::SolType>::tokenize(&self.timestamp), + as alloy_sol_types::SolType>::tokenize(&self.chainId), + ) + } + #[inline] + fn stv_abi_encoded_size(&self) -> usize { + if let Some(size) = ::ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encoded_size(&tuple) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + ::eip712_hash_struct(self) + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + if let Some(size) = ::PACKED_ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for Identifier { + type RustType = Self; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = ::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + as alloy_sol_types::SolType>::valid_token(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + let tuple = as alloy_sol_types::SolType>::detokenize(token); + >>::from(tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolStruct for Identifier { + const NAME: &'static str = "Identifier"; + #[inline] + fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> { + alloy_sol_types::private::Cow::Borrowed( + "Identifier(address origin,uint256 blockNumber,uint256 logIndex,uint256 timestamp,uint256 chainId)", + ) + } + #[inline] + fn eip712_components() -> alloy_sol_types::private::Vec< + alloy_sol_types::private::Cow<'static, str>, + > { + alloy_sol_types::private::Vec::new() + } + #[inline] + fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> { + ::eip712_root_type() + } + #[inline] + fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec { + [ + ::eip712_data_word( + &self.origin, + ) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.blockNumber) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.logIndex) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.timestamp) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.chainId) + .0, + ] + .concat() + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for Identifier { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + 0usize + + ::topic_preimage_length( + &rust.origin, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.blockNumber, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.logIndex, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.timestamp, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.chainId, + ) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + out.reserve( + ::topic_preimage_length(rust), + ); + ::encode_topic_preimage( + &rust.origin, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.blockNumber, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.logIndex, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.timestamp, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.chainId, + out, + ); + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + let mut out = alloy_sol_types::private::Vec::new(); + ::encode_topic_preimage( + rust, + &mut out, + ); + alloy_sol_types::abi::token::WordToken( + alloy_sol_types::private::keccak256(out), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `EventPayloadNotSentMessage()` and selector `0xdf1eb586`. +```solidity +error EventPayloadNotSentMessage(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct EventPayloadNotSentMessage; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: EventPayloadNotSentMessage) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for EventPayloadNotSentMessage { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for EventPayloadNotSentMessage { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "EventPayloadNotSentMessage()"; + const SELECTOR: [u8; 4] = [223u8, 30u8, 181u8, 134u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `IdOriginNotL2ToL2CrossDomainMessenger()` and selector `0x7987c157`. +```solidity +error IdOriginNotL2ToL2CrossDomainMessenger(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct IdOriginNotL2ToL2CrossDomainMessenger; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: IdOriginNotL2ToL2CrossDomainMessenger) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for IdOriginNotL2ToL2CrossDomainMessenger { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for IdOriginNotL2ToL2CrossDomainMessenger { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "IdOriginNotL2ToL2CrossDomainMessenger()"; + const SELECTOR: [u8; 4] = [121u8, 135u8, 193u8, 87u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidMessage()` and selector `0x6eca2e4b`. +```solidity +error InvalidMessage(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidMessage; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InvalidMessage) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InvalidMessage { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidMessage { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidMessage()"; + const SELECTOR: [u8; 4] = [110u8, 202u8, 46u8, 75u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `MessageAlreadyRelayed()` and selector `0x9ca9480b`. +```solidity +error MessageAlreadyRelayed(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct MessageAlreadyRelayed; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: MessageAlreadyRelayed) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for MessageAlreadyRelayed { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for MessageAlreadyRelayed { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "MessageAlreadyRelayed()"; + const SELECTOR: [u8; 4] = [156u8, 169u8, 72u8, 11u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `MessageDestinationNotRelayChain()` and selector `0x31ac2211`. +```solidity +error MessageDestinationNotRelayChain(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct MessageDestinationNotRelayChain; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: MessageDestinationNotRelayChain) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for MessageDestinationNotRelayChain { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for MessageDestinationNotRelayChain { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "MessageDestinationNotRelayChain()"; + const SELECTOR: [u8; 4] = [49u8, 172u8, 34u8, 17u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `MessageDestinationSameChain()` and selector `0x8ed9a95d`. +```solidity +error MessageDestinationSameChain(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct MessageDestinationSameChain; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: MessageDestinationSameChain) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for MessageDestinationSameChain { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for MessageDestinationSameChain { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "MessageDestinationSameChain()"; + const SELECTOR: [u8; 4] = [142u8, 217u8, 169u8, 93u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `MessageTargetL2ToL2CrossDomainMessenger()` and selector `0x4faa2509`. +```solidity +error MessageTargetL2ToL2CrossDomainMessenger(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct MessageTargetL2ToL2CrossDomainMessenger; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: MessageTargetL2ToL2CrossDomainMessenger) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for MessageTargetL2ToL2CrossDomainMessenger { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for MessageTargetL2ToL2CrossDomainMessenger { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "MessageTargetL2ToL2CrossDomainMessenger()"; + const SELECTOR: [u8; 4] = [79u8, 170u8, 37u8, 9u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `NotEntered()` and selector `0xbca35af6`. +```solidity +error NotEntered(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct NotEntered; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: NotEntered) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for NotEntered { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for NotEntered { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "NotEntered()"; + const SELECTOR: [u8; 4] = [188u8, 163u8, 90u8, 246u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ReentrantCall()` and selector `0x37ed32e8`. +```solidity +error ReentrantCall(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ReentrantCall; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ReentrantCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ReentrantCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ReentrantCall { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ReentrantCall()"; + const SELECTOR: [u8; 4] = [55u8, 237u8, 50u8, 232u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `RelayedMessage(uint256,uint256,bytes32,bytes32)` and selector `0xc270d73e26d2d39dee7ef92093555927e344e243415547ecc350b2b5385b68a2`. +```solidity +event RelayedMessage(uint256 indexed source, uint256 indexed messageNonce, bytes32 indexed messageHash, bytes32 returnDataHash); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct RelayedMessage { + #[allow(missing_docs)] + pub source: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub messageNonce: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub messageHash: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub returnDataHash: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for RelayedMessage { + type DataTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + const SIGNATURE: &'static str = "RelayedMessage(uint256,uint256,bytes32,bytes32)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 194u8, 112u8, 215u8, 62u8, 38u8, 210u8, 211u8, 157u8, 238u8, 126u8, + 249u8, 32u8, 147u8, 85u8, 89u8, 39u8, 227u8, 68u8, 226u8, 67u8, 65u8, + 85u8, 71u8, 236u8, 195u8, 80u8, 178u8, 181u8, 56u8, 91u8, 104u8, 162u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + source: topics.1, + messageNonce: topics.2, + messageHash: topics.3, + returnDataHash: data.0, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.returnDataHash), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + ( + Self::SIGNATURE_HASH.into(), + self.source.clone(), + self.messageNonce.clone(), + self.messageHash.clone(), + ) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = as alloy_sol_types::EventTopic>::encode_topic(&self.source); + out[2usize] = as alloy_sol_types::EventTopic>::encode_topic(&self.messageNonce); + out[3usize] = as alloy_sol_types::EventTopic>::encode_topic(&self.messageHash); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for RelayedMessage { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&RelayedMessage> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &RelayedMessage) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `SentMessage(uint256,address,uint256,address,bytes)` and selector `0x382409ac69001e11931a28435afef442cbfd20d9891907e8fa373ba7d351f320`. +```solidity +event SentMessage(uint256 indexed destination, address indexed target, uint256 indexed messageNonce, address sender, bytes message); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct SentMessage { + #[allow(missing_docs)] + pub destination: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub target: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub messageNonce: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub sender: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub message: alloy::sol_types::private::Bytes, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for SentMessage { + type DataTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Bytes, + ); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + const SIGNATURE: &'static str = "SentMessage(uint256,address,uint256,address,bytes)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 56u8, 36u8, 9u8, 172u8, 105u8, 0u8, 30u8, 17u8, 147u8, 26u8, 40u8, 67u8, + 90u8, 254u8, 244u8, 66u8, 203u8, 253u8, 32u8, 217u8, 137u8, 25u8, 7u8, + 232u8, 250u8, 55u8, 59u8, 167u8, 211u8, 81u8, 243u8, 32u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + destination: topics.1, + target: topics.2, + messageNonce: topics.3, + sender: data.0, + message: data.1, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + ::tokenize( + &self.sender, + ), + ::tokenize( + &self.message, + ), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + ( + Self::SIGNATURE_HASH.into(), + self.destination.clone(), + self.target.clone(), + self.messageNonce.clone(), + ) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = as alloy_sol_types::EventTopic>::encode_topic(&self.destination); + out[2usize] = ::encode_topic( + &self.target, + ); + out[3usize] = as alloy_sol_types::EventTopic>::encode_topic(&self.messageNonce); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for SentMessage { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&SentMessage> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &SentMessage) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `crossDomainMessageContext()` and selector `0x7936cbee`. +```solidity +function crossDomainMessageContext() external view returns (address sender_, uint256 source_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct crossDomainMessageContextCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`crossDomainMessageContext()`](crossDomainMessageContextCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct crossDomainMessageContextReturn { + #[allow(missing_docs)] + pub sender_: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub source_: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: crossDomainMessageContextCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for crossDomainMessageContextCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: crossDomainMessageContextReturn) -> Self { + (value.sender_, value.source_) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for crossDomainMessageContextReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + sender_: tuple.0, + source_: tuple.1, + } + } + } + } + impl crossDomainMessageContextReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken< + '_, + > { + ( + ::tokenize( + &self.sender_, + ), + as alloy_sol_types::SolType>::tokenize(&self.source_), + ) + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for crossDomainMessageContextCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = crossDomainMessageContextReturn; + type ReturnTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "crossDomainMessageContext()"; + const SELECTOR: [u8; 4] = [121u8, 54u8, 203u8, 238u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + crossDomainMessageContextReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `crossDomainMessageSender()` and selector `0x38ffde18`. +```solidity +function crossDomainMessageSender() external view returns (address sender_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct crossDomainMessageSenderCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`crossDomainMessageSender()`](crossDomainMessageSenderCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct crossDomainMessageSenderReturn { + #[allow(missing_docs)] + pub sender_: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: crossDomainMessageSenderCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for crossDomainMessageSenderCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: crossDomainMessageSenderReturn) -> Self { + (value.sender_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for crossDomainMessageSenderReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { sender_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for crossDomainMessageSenderCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "crossDomainMessageSender()"; + const SELECTOR: [u8; 4] = [56u8, 255u8, 222u8, 24u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: crossDomainMessageSenderReturn = r.into(); + r.sender_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: crossDomainMessageSenderReturn = r.into(); + r.sender_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `crossDomainMessageSource()` and selector `0x24794462`. +```solidity +function crossDomainMessageSource() external view returns (uint256 source_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct crossDomainMessageSourceCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`crossDomainMessageSource()`](crossDomainMessageSourceCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct crossDomainMessageSourceReturn { + #[allow(missing_docs)] + pub source_: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: crossDomainMessageSourceCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for crossDomainMessageSourceCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: crossDomainMessageSourceReturn) -> Self { + (value.source_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for crossDomainMessageSourceReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { source_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for crossDomainMessageSourceCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "crossDomainMessageSource()"; + const SELECTOR: [u8; 4] = [36u8, 121u8, 68u8, 98u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: crossDomainMessageSourceReturn = r.into(); + r.source_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: crossDomainMessageSourceReturn = r.into(); + r.source_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `messageNonce()` and selector `0xecc70428`. +```solidity +function messageNonce() external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct messageNonceCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`messageNonce()`](messageNonceCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct messageNonceReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: messageNonceCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for messageNonceCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: messageNonceReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for messageNonceReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for messageNonceCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "messageNonce()"; + const SELECTOR: [u8; 4] = [236u8, 199u8, 4u8, 40u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: messageNonceReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: messageNonceReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `messageVersion()` and selector `0x52617f3c`. +```solidity +function messageVersion() external view returns (uint16); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct messageVersionCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`messageVersion()`](messageVersionCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct messageVersionReturn { + #[allow(missing_docs)] + pub _0: u16, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: messageVersionCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for messageVersionCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<16>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u16,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: messageVersionReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for messageVersionReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for messageVersionCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u16; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<16>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "messageVersion()"; + const SELECTOR: [u8; 4] = [82u8, 97u8, 127u8, 60u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: messageVersionReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: messageVersionReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `relayMessage((address,uint256,uint256,uint256,uint256),bytes)` and selector `0x8d1d298f`. +```solidity +function relayMessage(Identifier memory _id, bytes memory _sentMessage) external payable returns (bytes memory returnData_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct relayMessageCall { + #[allow(missing_docs)] + pub _id: ::RustType, + #[allow(missing_docs)] + pub _sentMessage: alloy::sol_types::private::Bytes, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`relayMessage((address,uint256,uint256,uint256,uint256),bytes)`](relayMessageCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct relayMessageReturn { + #[allow(missing_docs)] + pub returnData_: alloy::sol_types::private::Bytes, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + Identifier, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + alloy::sol_types::private::Bytes, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: relayMessageCall) -> Self { + (value._id, value._sentMessage) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for relayMessageCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _id: tuple.0, + _sentMessage: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bytes,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Bytes,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: relayMessageReturn) -> Self { + (value.returnData_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for relayMessageReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { returnData_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for relayMessageCall { + type Parameters<'a> = (Identifier, alloy::sol_types::sol_data::Bytes); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Bytes; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bytes,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "relayMessage((address,uint256,uint256,uint256,uint256),bytes)"; + const SELECTOR: [u8; 4] = [141u8, 29u8, 41u8, 143u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize(&self._id), + ::tokenize( + &self._sentMessage, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: relayMessageReturn = r.into(); + r.returnData_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: relayMessageReturn = r.into(); + r.returnData_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `resendMessage(uint256,uint256,address,address,bytes)` and selector `0x6b0c3c5e`. +```solidity +function resendMessage(uint256 _destination, uint256 _nonce, address _sender, address _target, bytes memory _message) external returns (bytes32 messageHash_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct resendMessageCall { + #[allow(missing_docs)] + pub _destination: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _nonce: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _sender: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _target: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _message: alloy::sol_types::private::Bytes, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`resendMessage(uint256,uint256,address,address,bytes)`](resendMessageCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct resendMessageReturn { + #[allow(missing_docs)] + pub messageHash_: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::Bytes, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: resendMessageCall) -> Self { + ( + value._destination, + value._nonce, + value._sender, + value._target, + value._message, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for resendMessageCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _destination: tuple.0, + _nonce: tuple.1, + _sender: tuple.2, + _target: tuple.3, + _message: tuple.4, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: resendMessageReturn) -> Self { + (value.messageHash_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for resendMessageReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { messageHash_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for resendMessageCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Bytes, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::FixedBytes<32>; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "resendMessage(uint256,uint256,address,address,bytes)"; + const SELECTOR: [u8; 4] = [107u8, 12u8, 60u8, 94u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._destination), + as alloy_sol_types::SolType>::tokenize(&self._nonce), + ::tokenize( + &self._sender, + ), + ::tokenize( + &self._target, + ), + ::tokenize( + &self._message, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: resendMessageReturn = r.into(); + r.messageHash_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: resendMessageReturn = r.into(); + r.messageHash_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `sendMessage(uint256,address,bytes)` and selector `0x7056f41f`. +```solidity +function sendMessage(uint256 _destination, address _target, bytes memory _message) external returns (bytes32 messageHash_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct sendMessageCall { + #[allow(missing_docs)] + pub _destination: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _target: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _message: alloy::sol_types::private::Bytes, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`sendMessage(uint256,address,bytes)`](sendMessageCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct sendMessageReturn { + #[allow(missing_docs)] + pub messageHash_: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::Address, + alloy::sol_types::private::Bytes, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: sendMessageCall) -> Self { + (value._destination, value._target, value._message) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for sendMessageCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _destination: tuple.0, + _target: tuple.1, + _message: tuple.2, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: sendMessageReturn) -> Self { + (value.messageHash_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for sendMessageReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { messageHash_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for sendMessageCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Bytes, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::FixedBytes<32>; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "sendMessage(uint256,address,bytes)"; + const SELECTOR: [u8; 4] = [112u8, 86u8, 244u8, 31u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._destination), + ::tokenize( + &self._target, + ), + ::tokenize( + &self._message, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: sendMessageReturn = r.into(); + r.messageHash_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: sendMessageReturn = r.into(); + r.messageHash_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `sentMessages(uint256)` and selector `0xbc294d7d`. +```solidity +function sentMessages(uint256) external view returns (bytes32); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct sentMessagesCall( + pub alloy::sol_types::private::primitives::aliases::U256, + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`sentMessages(uint256)`](sentMessagesCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct sentMessagesReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: sentMessagesCall) -> Self { + (value.0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for sentMessagesCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self(tuple.0) + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: sentMessagesReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for sentMessagesReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for sentMessagesCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::FixedBytes<32>; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "sentMessages(uint256)"; + const SELECTOR: [u8; 4] = [188u8, 41u8, 77u8, 125u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.0), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: sentMessagesReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: sentMessagesReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `successfulMessages(bytes32)` and selector `0xb1b1b209`. +```solidity +function successfulMessages(bytes32) external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct successfulMessagesCall(pub alloy::sol_types::private::FixedBytes<32>); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`successfulMessages(bytes32)`](successfulMessagesCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct successfulMessagesReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: successfulMessagesCall) -> Self { + (value.0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for successfulMessagesCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self(tuple.0) + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: successfulMessagesReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for successfulMessagesReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for successfulMessagesCall { + type Parameters<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "successfulMessages(bytes32)"; + const SELECTOR: [u8; 4] = [177u8, 177u8, 178u8, 9u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.0), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: successfulMessagesReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: successfulMessagesReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `version()` and selector `0x54fd4d50`. +```solidity +function version() external view returns (string memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`version()`](versionCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for versionCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::String; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "version()"; + const SELECTOR: [u8; 4] = [84u8, 253u8, 77u8, 80u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + } + }; + ///Container for all the [`L2ToL2CrossDomainMessenger`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum L2ToL2CrossDomainMessengerCalls { + #[allow(missing_docs)] + crossDomainMessageContext(crossDomainMessageContextCall), + #[allow(missing_docs)] + crossDomainMessageSender(crossDomainMessageSenderCall), + #[allow(missing_docs)] + crossDomainMessageSource(crossDomainMessageSourceCall), + #[allow(missing_docs)] + messageNonce(messageNonceCall), + #[allow(missing_docs)] + messageVersion(messageVersionCall), + #[allow(missing_docs)] + relayMessage(relayMessageCall), + #[allow(missing_docs)] + resendMessage(resendMessageCall), + #[allow(missing_docs)] + sendMessage(sendMessageCall), + #[allow(missing_docs)] + sentMessages(sentMessagesCall), + #[allow(missing_docs)] + successfulMessages(successfulMessagesCall), + #[allow(missing_docs)] + version(versionCall), + } + impl L2ToL2CrossDomainMessengerCalls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [36u8, 121u8, 68u8, 98u8], + [56u8, 255u8, 222u8, 24u8], + [82u8, 97u8, 127u8, 60u8], + [84u8, 253u8, 77u8, 80u8], + [107u8, 12u8, 60u8, 94u8], + [112u8, 86u8, 244u8, 31u8], + [121u8, 54u8, 203u8, 238u8], + [141u8, 29u8, 41u8, 143u8], + [177u8, 177u8, 178u8, 9u8], + [188u8, 41u8, 77u8, 125u8], + [236u8, 199u8, 4u8, 40u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(crossDomainMessageSource), + ::core::stringify!(crossDomainMessageSender), + ::core::stringify!(messageVersion), + ::core::stringify!(version), + ::core::stringify!(resendMessage), + ::core::stringify!(sendMessage), + ::core::stringify!(crossDomainMessageContext), + ::core::stringify!(relayMessage), + ::core::stringify!(successfulMessages), + ::core::stringify!(sentMessages), + ::core::stringify!(messageNonce), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for L2ToL2CrossDomainMessengerCalls { + const NAME: &'static str = "L2ToL2CrossDomainMessengerCalls"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 11usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::crossDomainMessageContext(_) => { + ::SELECTOR + } + Self::crossDomainMessageSender(_) => { + ::SELECTOR + } + Self::crossDomainMessageSource(_) => { + ::SELECTOR + } + Self::messageNonce(_) => { + ::SELECTOR + } + Self::messageVersion(_) => { + ::SELECTOR + } + Self::relayMessage(_) => { + ::SELECTOR + } + Self::resendMessage(_) => { + ::SELECTOR + } + Self::sendMessage(_) => { + ::SELECTOR + } + Self::sentMessages(_) => { + ::SELECTOR + } + Self::successfulMessages(_) => { + ::SELECTOR + } + Self::version(_) => ::SELECTOR, + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn crossDomainMessageSource( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + L2ToL2CrossDomainMessengerCalls::crossDomainMessageSource, + ) + } + crossDomainMessageSource + }, + { + fn crossDomainMessageSender( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + L2ToL2CrossDomainMessengerCalls::crossDomainMessageSender, + ) + } + crossDomainMessageSender + }, + { + fn messageVersion( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L2ToL2CrossDomainMessengerCalls::messageVersion) + } + messageVersion + }, + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(L2ToL2CrossDomainMessengerCalls::version) + } + version + }, + { + fn resendMessage( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L2ToL2CrossDomainMessengerCalls::resendMessage) + } + resendMessage + }, + { + fn sendMessage( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L2ToL2CrossDomainMessengerCalls::sendMessage) + } + sendMessage + }, + { + fn crossDomainMessageContext( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + L2ToL2CrossDomainMessengerCalls::crossDomainMessageContext, + ) + } + crossDomainMessageContext + }, + { + fn relayMessage( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L2ToL2CrossDomainMessengerCalls::relayMessage) + } + relayMessage + }, + { + fn successfulMessages( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L2ToL2CrossDomainMessengerCalls::successfulMessages) + } + successfulMessages + }, + { + fn sentMessages( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L2ToL2CrossDomainMessengerCalls::sentMessages) + } + sentMessages + }, + { + fn messageNonce( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L2ToL2CrossDomainMessengerCalls::messageNonce) + } + messageNonce + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn crossDomainMessageSource( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + L2ToL2CrossDomainMessengerCalls::crossDomainMessageSource, + ) + } + crossDomainMessageSource + }, + { + fn crossDomainMessageSender( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + L2ToL2CrossDomainMessengerCalls::crossDomainMessageSender, + ) + } + crossDomainMessageSender + }, + { + fn messageVersion( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L2ToL2CrossDomainMessengerCalls::messageVersion) + } + messageVersion + }, + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L2ToL2CrossDomainMessengerCalls::version) + } + version + }, + { + fn resendMessage( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L2ToL2CrossDomainMessengerCalls::resendMessage) + } + resendMessage + }, + { + fn sendMessage( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L2ToL2CrossDomainMessengerCalls::sendMessage) + } + sendMessage + }, + { + fn crossDomainMessageContext( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + L2ToL2CrossDomainMessengerCalls::crossDomainMessageContext, + ) + } + crossDomainMessageContext + }, + { + fn relayMessage( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L2ToL2CrossDomainMessengerCalls::relayMessage) + } + relayMessage + }, + { + fn successfulMessages( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L2ToL2CrossDomainMessengerCalls::successfulMessages) + } + successfulMessages + }, + { + fn sentMessages( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L2ToL2CrossDomainMessengerCalls::sentMessages) + } + sentMessages + }, + { + fn messageNonce( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L2ToL2CrossDomainMessengerCalls::messageNonce) + } + messageNonce + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::crossDomainMessageContext(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::crossDomainMessageSender(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::crossDomainMessageSource(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::messageNonce(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::messageVersion(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::relayMessage(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::resendMessage(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::sendMessage(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::sentMessages(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::successfulMessages(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::version(inner) => { + ::abi_encoded_size(inner) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::crossDomainMessageContext(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::crossDomainMessageSender(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::crossDomainMessageSource(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::messageNonce(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::messageVersion(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::relayMessage(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::resendMessage(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::sendMessage(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::sentMessages(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::successfulMessages(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::version(inner) => { + ::abi_encode_raw(inner, out) + } + } + } + } + ///Container for all the [`L2ToL2CrossDomainMessenger`](self) custom errors. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum L2ToL2CrossDomainMessengerErrors { + #[allow(missing_docs)] + EventPayloadNotSentMessage(EventPayloadNotSentMessage), + #[allow(missing_docs)] + IdOriginNotL2ToL2CrossDomainMessenger(IdOriginNotL2ToL2CrossDomainMessenger), + #[allow(missing_docs)] + InvalidMessage(InvalidMessage), + #[allow(missing_docs)] + MessageAlreadyRelayed(MessageAlreadyRelayed), + #[allow(missing_docs)] + MessageDestinationNotRelayChain(MessageDestinationNotRelayChain), + #[allow(missing_docs)] + MessageDestinationSameChain(MessageDestinationSameChain), + #[allow(missing_docs)] + MessageTargetL2ToL2CrossDomainMessenger(MessageTargetL2ToL2CrossDomainMessenger), + #[allow(missing_docs)] + NotEntered(NotEntered), + #[allow(missing_docs)] + ReentrantCall(ReentrantCall), + } + impl L2ToL2CrossDomainMessengerErrors { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [49u8, 172u8, 34u8, 17u8], + [55u8, 237u8, 50u8, 232u8], + [79u8, 170u8, 37u8, 9u8], + [110u8, 202u8, 46u8, 75u8], + [121u8, 135u8, 193u8, 87u8], + [142u8, 217u8, 169u8, 93u8], + [156u8, 169u8, 72u8, 11u8], + [188u8, 163u8, 90u8, 246u8], + [223u8, 30u8, 181u8, 134u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(MessageDestinationNotRelayChain), + ::core::stringify!(ReentrantCall), + ::core::stringify!(MessageTargetL2ToL2CrossDomainMessenger), + ::core::stringify!(InvalidMessage), + ::core::stringify!(IdOriginNotL2ToL2CrossDomainMessenger), + ::core::stringify!(MessageDestinationSameChain), + ::core::stringify!(MessageAlreadyRelayed), + ::core::stringify!(NotEntered), + ::core::stringify!(EventPayloadNotSentMessage), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for L2ToL2CrossDomainMessengerErrors { + const NAME: &'static str = "L2ToL2CrossDomainMessengerErrors"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 9usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::EventPayloadNotSentMessage(_) => { + ::SELECTOR + } + Self::IdOriginNotL2ToL2CrossDomainMessenger(_) => { + ::SELECTOR + } + Self::InvalidMessage(_) => { + ::SELECTOR + } + Self::MessageAlreadyRelayed(_) => { + ::SELECTOR + } + Self::MessageDestinationNotRelayChain(_) => { + ::SELECTOR + } + Self::MessageDestinationSameChain(_) => { + ::SELECTOR + } + Self::MessageTargetL2ToL2CrossDomainMessenger(_) => { + ::SELECTOR + } + Self::NotEntered(_) => { + ::SELECTOR + } + Self::ReentrantCall(_) => { + ::SELECTOR + } + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn MessageDestinationNotRelayChain( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + L2ToL2CrossDomainMessengerErrors::MessageDestinationNotRelayChain, + ) + } + MessageDestinationNotRelayChain + }, + { + fn ReentrantCall( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L2ToL2CrossDomainMessengerErrors::ReentrantCall) + } + ReentrantCall + }, + { + fn MessageTargetL2ToL2CrossDomainMessenger( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + L2ToL2CrossDomainMessengerErrors::MessageTargetL2ToL2CrossDomainMessenger, + ) + } + MessageTargetL2ToL2CrossDomainMessenger + }, + { + fn InvalidMessage( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L2ToL2CrossDomainMessengerErrors::InvalidMessage) + } + InvalidMessage + }, + { + fn IdOriginNotL2ToL2CrossDomainMessenger( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + L2ToL2CrossDomainMessengerErrors::IdOriginNotL2ToL2CrossDomainMessenger, + ) + } + IdOriginNotL2ToL2CrossDomainMessenger + }, + { + fn MessageDestinationSameChain( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + L2ToL2CrossDomainMessengerErrors::MessageDestinationSameChain, + ) + } + MessageDestinationSameChain + }, + { + fn MessageAlreadyRelayed( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L2ToL2CrossDomainMessengerErrors::MessageAlreadyRelayed) + } + MessageAlreadyRelayed + }, + { + fn NotEntered( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(L2ToL2CrossDomainMessengerErrors::NotEntered) + } + NotEntered + }, + { + fn EventPayloadNotSentMessage( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + L2ToL2CrossDomainMessengerErrors::EventPayloadNotSentMessage, + ) + } + EventPayloadNotSentMessage + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn MessageDestinationNotRelayChain( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + L2ToL2CrossDomainMessengerErrors::MessageDestinationNotRelayChain, + ) + } + MessageDestinationNotRelayChain + }, + { + fn ReentrantCall( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L2ToL2CrossDomainMessengerErrors::ReentrantCall) + } + ReentrantCall + }, + { + fn MessageTargetL2ToL2CrossDomainMessenger( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + L2ToL2CrossDomainMessengerErrors::MessageTargetL2ToL2CrossDomainMessenger, + ) + } + MessageTargetL2ToL2CrossDomainMessenger + }, + { + fn InvalidMessage( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L2ToL2CrossDomainMessengerErrors::InvalidMessage) + } + InvalidMessage + }, + { + fn IdOriginNotL2ToL2CrossDomainMessenger( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + L2ToL2CrossDomainMessengerErrors::IdOriginNotL2ToL2CrossDomainMessenger, + ) + } + IdOriginNotL2ToL2CrossDomainMessenger + }, + { + fn MessageDestinationSameChain( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + L2ToL2CrossDomainMessengerErrors::MessageDestinationSameChain, + ) + } + MessageDestinationSameChain + }, + { + fn MessageAlreadyRelayed( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L2ToL2CrossDomainMessengerErrors::MessageAlreadyRelayed) + } + MessageAlreadyRelayed + }, + { + fn NotEntered( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L2ToL2CrossDomainMessengerErrors::NotEntered) + } + NotEntered + }, + { + fn EventPayloadNotSentMessage( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + L2ToL2CrossDomainMessengerErrors::EventPayloadNotSentMessage, + ) + } + EventPayloadNotSentMessage + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::EventPayloadNotSentMessage(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::IdOriginNotL2ToL2CrossDomainMessenger(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::InvalidMessage(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::MessageAlreadyRelayed(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::MessageDestinationNotRelayChain(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::MessageDestinationSameChain(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::MessageTargetL2ToL2CrossDomainMessenger(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::NotEntered(inner) => { + ::abi_encoded_size(inner) + } + Self::ReentrantCall(inner) => { + ::abi_encoded_size(inner) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::EventPayloadNotSentMessage(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::IdOriginNotL2ToL2CrossDomainMessenger(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidMessage(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::MessageAlreadyRelayed(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::MessageDestinationNotRelayChain(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::MessageDestinationSameChain(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::MessageTargetL2ToL2CrossDomainMessenger(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::NotEntered(inner) => { + ::abi_encode_raw(inner, out) + } + Self::ReentrantCall(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + } + } + } + ///Container for all the [`L2ToL2CrossDomainMessenger`](self) events. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum L2ToL2CrossDomainMessengerEvents { + #[allow(missing_docs)] + RelayedMessage(RelayedMessage), + #[allow(missing_docs)] + SentMessage(SentMessage), + } + impl L2ToL2CrossDomainMessengerEvents { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 32usize]] = &[ + [ + 56u8, 36u8, 9u8, 172u8, 105u8, 0u8, 30u8, 17u8, 147u8, 26u8, 40u8, 67u8, + 90u8, 254u8, 244u8, 66u8, 203u8, 253u8, 32u8, 217u8, 137u8, 25u8, 7u8, + 232u8, 250u8, 55u8, 59u8, 167u8, 211u8, 81u8, 243u8, 32u8, + ], + [ + 194u8, 112u8, 215u8, 62u8, 38u8, 210u8, 211u8, 157u8, 238u8, 126u8, + 249u8, 32u8, 147u8, 85u8, 89u8, 39u8, 227u8, 68u8, 226u8, 67u8, 65u8, + 85u8, 71u8, 236u8, 195u8, 80u8, 178u8, 181u8, 56u8, 91u8, 104u8, 162u8, + ], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(SentMessage), + ::core::stringify!(RelayedMessage), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolEventInterface for L2ToL2CrossDomainMessengerEvents { + const NAME: &'static str = "L2ToL2CrossDomainMessengerEvents"; + const COUNT: usize = 2usize; + fn decode_raw_log( + topics: &[alloy_sol_types::Word], + data: &[u8], + ) -> alloy_sol_types::Result { + match topics.first().copied() { + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::RelayedMessage) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::SentMessage) + } + _ => { + alloy_sol_types::private::Err(alloy_sol_types::Error::InvalidLog { + name: ::NAME, + log: alloy_sol_types::private::Box::new( + alloy_sol_types::private::LogData::new_unchecked( + topics.to_vec(), + data.to_vec().into(), + ), + ), + }) + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for L2ToL2CrossDomainMessengerEvents { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + match self { + Self::RelayedMessage(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::SentMessage(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + } + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + match self { + Self::RelayedMessage(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::SentMessage(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`L2ToL2CrossDomainMessenger`](self) contract instance. + +See the [wrapper's documentation](`L2ToL2CrossDomainMessengerInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> L2ToL2CrossDomainMessengerInstance { + L2ToL2CrossDomainMessengerInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + L2ToL2CrossDomainMessengerInstance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + L2ToL2CrossDomainMessengerInstance::::deploy_builder(__provider) + } + /**A [`L2ToL2CrossDomainMessenger`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`L2ToL2CrossDomainMessenger`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct L2ToL2CrossDomainMessengerInstance< + P, + N = alloy_contract::private::Ethereum, + > { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for L2ToL2CrossDomainMessengerInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("L2ToL2CrossDomainMessengerInstance") + .field(&self.address) + .finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > L2ToL2CrossDomainMessengerInstance { + /**Creates a new wrapper around an on-chain [`L2ToL2CrossDomainMessenger`](self) contract instance. + +See the [wrapper's documentation](`L2ToL2CrossDomainMessengerInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl L2ToL2CrossDomainMessengerInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> L2ToL2CrossDomainMessengerInstance { + L2ToL2CrossDomainMessengerInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > L2ToL2CrossDomainMessengerInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`crossDomainMessageContext`] function. + pub fn crossDomainMessageContext( + &self, + ) -> alloy_contract::SolCallBuilder<&P, crossDomainMessageContextCall, N> { + self.call_builder(&crossDomainMessageContextCall) + } + ///Creates a new call builder for the [`crossDomainMessageSender`] function. + pub fn crossDomainMessageSender( + &self, + ) -> alloy_contract::SolCallBuilder<&P, crossDomainMessageSenderCall, N> { + self.call_builder(&crossDomainMessageSenderCall) + } + ///Creates a new call builder for the [`crossDomainMessageSource`] function. + pub fn crossDomainMessageSource( + &self, + ) -> alloy_contract::SolCallBuilder<&P, crossDomainMessageSourceCall, N> { + self.call_builder(&crossDomainMessageSourceCall) + } + ///Creates a new call builder for the [`messageNonce`] function. + pub fn messageNonce( + &self, + ) -> alloy_contract::SolCallBuilder<&P, messageNonceCall, N> { + self.call_builder(&messageNonceCall) + } + ///Creates a new call builder for the [`messageVersion`] function. + pub fn messageVersion( + &self, + ) -> alloy_contract::SolCallBuilder<&P, messageVersionCall, N> { + self.call_builder(&messageVersionCall) + } + ///Creates a new call builder for the [`relayMessage`] function. + pub fn relayMessage( + &self, + _id: ::RustType, + _sentMessage: alloy::sol_types::private::Bytes, + ) -> alloy_contract::SolCallBuilder<&P, relayMessageCall, N> { + self.call_builder( + &relayMessageCall { + _id, + _sentMessage, + }, + ) + } + ///Creates a new call builder for the [`resendMessage`] function. + pub fn resendMessage( + &self, + _destination: alloy::sol_types::private::primitives::aliases::U256, + _nonce: alloy::sol_types::private::primitives::aliases::U256, + _sender: alloy::sol_types::private::Address, + _target: alloy::sol_types::private::Address, + _message: alloy::sol_types::private::Bytes, + ) -> alloy_contract::SolCallBuilder<&P, resendMessageCall, N> { + self.call_builder( + &resendMessageCall { + _destination, + _nonce, + _sender, + _target, + _message, + }, + ) + } + ///Creates a new call builder for the [`sendMessage`] function. + pub fn sendMessage( + &self, + _destination: alloy::sol_types::private::primitives::aliases::U256, + _target: alloy::sol_types::private::Address, + _message: alloy::sol_types::private::Bytes, + ) -> alloy_contract::SolCallBuilder<&P, sendMessageCall, N> { + self.call_builder( + &sendMessageCall { + _destination, + _target, + _message, + }, + ) + } + ///Creates a new call builder for the [`sentMessages`] function. + pub fn sentMessages( + &self, + _0: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, sentMessagesCall, N> { + self.call_builder(&sentMessagesCall(_0)) + } + ///Creates a new call builder for the [`successfulMessages`] function. + pub fn successfulMessages( + &self, + _0: alloy::sol_types::private::FixedBytes<32>, + ) -> alloy_contract::SolCallBuilder<&P, successfulMessagesCall, N> { + self.call_builder(&successfulMessagesCall(_0)) + } + ///Creates a new call builder for the [`version`] function. + pub fn version(&self) -> alloy_contract::SolCallBuilder<&P, versionCall, N> { + self.call_builder(&versionCall) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > L2ToL2CrossDomainMessengerInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + ///Creates a new event filter for the [`RelayedMessage`] event. + pub fn RelayedMessage_filter( + &self, + ) -> alloy_contract::Event<&P, RelayedMessage, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`SentMessage`] event. + pub fn SentMessage_filter(&self) -> alloy_contract::Event<&P, SentMessage, N> { + self.event_filter::() + } + } +} diff --git a/bindings/rust/src/l2erc721_bridge.rs b/bindings/rust/src/l2erc721_bridge.rs new file mode 100644 index 000000000..47369d287 --- /dev/null +++ b/bindings/rust/src/l2erc721_bridge.rs @@ -0,0 +1,3378 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface L2ERC721Bridge { + event ERC721BridgeFinalized(address indexed localToken, address indexed remoteToken, address indexed from, address to, uint256 tokenId, bytes extraData); + event ERC721BridgeInitiated(address indexed localToken, address indexed remoteToken, address indexed from, address to, uint256 tokenId, bytes extraData); + event Initialized(uint8 version); + + constructor(); + + function MESSENGER() external view returns (address); + function OTHER_BRIDGE() external view returns (address); + function bridgeERC721(address _localToken, address _remoteToken, uint256 _tokenId, uint32 _minGasLimit, bytes memory _extraData) external; + function bridgeERC721To(address _localToken, address _remoteToken, address _to, uint256 _tokenId, uint32 _minGasLimit, bytes memory _extraData) external; + function finalizeBridgeERC721(address _localToken, address _remoteToken, address _from, address _to, uint256 _tokenId, bytes memory _extraData) external; + function initialize(address payable _l1ERC721Bridge) external; + function messenger() external view returns (address); + function otherBridge() external view returns (address); + function paused() external view returns (bool); + function version() external view returns (string memory); +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "constructor", + "inputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "MESSENGER", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract ICrossDomainMessenger" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "OTHER_BRIDGE", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract ERC721Bridge" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "bridgeERC721", + "inputs": [ + { + "name": "_localToken", + "type": "address", + "internalType": "address" + }, + { + "name": "_remoteToken", + "type": "address", + "internalType": "address" + }, + { + "name": "_tokenId", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_minGasLimit", + "type": "uint32", + "internalType": "uint32" + }, + { + "name": "_extraData", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "bridgeERC721To", + "inputs": [ + { + "name": "_localToken", + "type": "address", + "internalType": "address" + }, + { + "name": "_remoteToken", + "type": "address", + "internalType": "address" + }, + { + "name": "_to", + "type": "address", + "internalType": "address" + }, + { + "name": "_tokenId", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_minGasLimit", + "type": "uint32", + "internalType": "uint32" + }, + { + "name": "_extraData", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "finalizeBridgeERC721", + "inputs": [ + { + "name": "_localToken", + "type": "address", + "internalType": "address" + }, + { + "name": "_remoteToken", + "type": "address", + "internalType": "address" + }, + { + "name": "_from", + "type": "address", + "internalType": "address" + }, + { + "name": "_to", + "type": "address", + "internalType": "address" + }, + { + "name": "_tokenId", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_extraData", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "initialize", + "inputs": [ + { + "name": "_l1ERC721Bridge", + "type": "address", + "internalType": "address payable" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "messenger", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract ICrossDomainMessenger" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "otherBridge", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract ERC721Bridge" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "paused", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "version", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "view" + }, + { + "type": "event", + "name": "ERC721BridgeFinalized", + "inputs": [ + { + "name": "localToken", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "remoteToken", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "from", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "to", + "type": "address", + "indexed": false, + "internalType": "address" + }, + { + "name": "tokenId", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + }, + { + "name": "extraData", + "type": "bytes", + "indexed": false, + "internalType": "bytes" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "ERC721BridgeInitiated", + "inputs": [ + { + "name": "localToken", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "remoteToken", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "from", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "to", + "type": "address", + "indexed": false, + "internalType": "address" + }, + { + "name": "tokenId", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + }, + { + "name": "extraData", + "type": "bytes", + "indexed": false, + "internalType": "bytes" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "Initialized", + "inputs": [ + { + "name": "version", + "type": "uint8", + "indexed": false, + "internalType": "uint8" + } + ], + "anonymous": false + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod L2ERC721Bridge { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x608060405234801561001057600080fd5b5061001961001e565b6100de565b600054610100900460ff161561008a5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811610156100dc576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b611620806100ed6000396000f3fe608060405234801561001057600080fd5b50600436106100be5760003560e01c80637f46ddb211610076578063aa5574521161005b578063aa557452146101c9578063c4d66de8146101dc578063c89701a2146101ef57600080fd5b80637f46ddb21461018d578063927ede2d146101ab57600080fd5b806354fd4d50116100a757806354fd4d50146101225780635c975abb1461016b578063761f44931461017a57600080fd5b80633687011a146100c35780633cb747bf146100d8575b600080fd5b6100d66100d136600461129e565b61020f565b005b6001546100f89073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b61015e6040518060400160405280600681526020017f312e31302e30000000000000000000000000000000000000000000000000000081525081565b604051610119919061138c565b60405160008152602001610119565b6100d661018836600461139f565b6102c0565b60025473ffffffffffffffffffffffffffffffffffffffff166100f8565b60015473ffffffffffffffffffffffffffffffffffffffff166100f8565b6100d66101d7366004611437565b6107de565b6100d66101ea3660046114ae565b61089a565b6002546100f89073ffffffffffffffffffffffffffffffffffffffff1681565b610217610a43565b6102a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f4552433732314272696467653a206163636f756e74206973206e6f742065787460448201527f65726e616c6c79206f776e65640000000000000000000000000000000000000060648201526084015b60405180910390fd5b6102b88686333388888888610a80565b505050505050565b60015473ffffffffffffffffffffffffffffffffffffffff16331480156103955750600254600154604080517f6e296e45000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff9384169390921691636e296e45916004808201926020929091908290030181865afa158015610359573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061037d91906114cb565b73ffffffffffffffffffffffffffffffffffffffff16145b610421576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603f60248201527f4552433732314272696467653a2066756e6374696f6e2063616e206f6e6c792060448201527f62652063616c6c65642066726f6d20746865206f746865722062726964676500606482015260840161029f565b3073ffffffffffffffffffffffffffffffffffffffff8816036104c6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f4c324552433732314272696467653a206c6f63616c20746f6b656e2063616e6e60448201527f6f742062652073656c6600000000000000000000000000000000000000000000606482015260840161029f565b6104f0877faecafc2300000000000000000000000000000000000000000000000000000000610fd6565b61057c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f4c324552433732314272696467653a206c6f63616c20746f6b656e20696e746560448201527f7266616365206973206e6f7420636f6d706c69616e7400000000000000000000606482015260840161029f565b8673ffffffffffffffffffffffffffffffffffffffff1663d6c0b2c46040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105eb91906114cb565b73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16146106cb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604b60248201527f4c324552433732314272696467653a2077726f6e672072656d6f746520746f6b60448201527f656e20666f72204f7074696d69736d204d696e7461626c65204552433732312060648201527f6c6f63616c20746f6b656e000000000000000000000000000000000000000000608482015260a40161029f565b6040517fa144819400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85811660048301526024820185905288169063a144819490604401600060405180830381600087803b15801561073b57600080fd5b505af115801561074f573d6000803e3d6000fd5b505050508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167f1f39bf6707b5d608453e0ae4c067b562bcc4c85c0f562ef5d2c774d2e7f131ac878787876040516107cd9493929190611531565b60405180910390a450505050505050565b73ffffffffffffffffffffffffffffffffffffffff8516610881576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f4552433732314272696467653a206e667420726563697069656e742063616e6e60448201527f6f74206265206164647265737328302900000000000000000000000000000000606482015260840161029f565b6108918787338888888888610a80565b50505050505050565b600054610100900460ff16158080156108ba5750600054600160ff909116105b806108d45750303b1580156108d4575060005460ff166001145b610960576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161029f565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580156109be57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6109dc73420000000000000000000000000000000000000783610ff9565b8015610a3f57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6000323303610a525750600190565b333b601703610a7a57604051602081016040526020600082333c5160e81c62ef010014905090565b50600090565b73ffffffffffffffffffffffffffffffffffffffff8716610b23576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603160248201527f4c324552433732314272696467653a2072656d6f746520746f6b656e2063616e60448201527f6e6f742062652061646472657373283029000000000000000000000000000000606482015260840161029f565b6040517f6352211e0000000000000000000000000000000000000000000000000000000081526004810185905273ffffffffffffffffffffffffffffffffffffffff891690636352211e90602401602060405180830381865afa158015610b8e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bb291906114cb565b73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614610c6c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603e60248201527f4c324552433732314272696467653a205769746864726177616c206973206e6f60448201527f74206265696e6720696e69746961746564206279204e4654206f776e65720000606482015260840161029f565b60008873ffffffffffffffffffffffffffffffffffffffff1663d6c0b2c46040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cb9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cdd91906114cb565b90508773ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610d9a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f4c324552433732314272696467653a2072656d6f746520746f6b656e20646f6560448201527f73206e6f74206d6174636820676976656e2076616c7565000000000000000000606482015260840161029f565b6040517f9dc29fac00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8881166004830152602482018790528a1690639dc29fac90604401600060405180830381600087803b158015610e0a57600080fd5b505af1158015610e1e573d6000803e3d6000fd5b505050506000818a8989898888604051602401610e419796959493929190611571565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f761f44930000000000000000000000000000000000000000000000000000000017905260015460025491517f3dbb202b00000000000000000000000000000000000000000000000000000000815292935073ffffffffffffffffffffffffffffffffffffffff90811692633dbb202b92610f1692169085908a906004016115ce565b600060405180830381600087803b158015610f3057600080fd5b505af1158015610f44573d6000803e3d6000fd5b505050508773ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167fb7460e2a880f256ebef3406116ff3eee0cee51ebccdc2a40698f87ebb2e9c1a58a8a8989604051610fc29493929190611531565b60405180910390a450505050505050505050565b6000610fe1836110e3565b8015610ff25750610ff28383611148565b9392505050565b600054610100900460ff16611090576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161029f565b6001805473ffffffffffffffffffffffffffffffffffffffff9384167fffffffffffffffffffffffff00000000000000000000000000000000000000009182161790915560028054929093169116179055565b600061110f827f01ffc9a700000000000000000000000000000000000000000000000000000000611148565b80156111425750611140827fffffffff00000000000000000000000000000000000000000000000000000000611148565b155b92915050565b604080517fffffffff000000000000000000000000000000000000000000000000000000008316602480830191909152825180830390910181526044909101909152602080820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f01ffc9a700000000000000000000000000000000000000000000000000000000178152825160009392849283928392918391908a617530fa92503d91506000519050828015611200575060208210155b801561120c5750600081115b979650505050505050565b73ffffffffffffffffffffffffffffffffffffffff8116811461123957600080fd5b50565b803563ffffffff8116811461125057600080fd5b919050565b60008083601f84011261126757600080fd5b50813567ffffffffffffffff81111561127f57600080fd5b60208301915083602082850101111561129757600080fd5b9250929050565b60008060008060008060a087890312156112b757600080fd5b86356112c281611217565b955060208701356112d281611217565b9450604087013593506112e76060880161123c565b9250608087013567ffffffffffffffff81111561130357600080fd5b61130f89828a01611255565b979a9699509497509295939492505050565b6000815180845260005b818110156113475760208185018101518683018201520161132b565b81811115611359576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000610ff26020830184611321565b600080600080600080600060c0888a0312156113ba57600080fd5b87356113c581611217565b965060208801356113d581611217565b955060408801356113e581611217565b945060608801356113f581611217565b93506080880135925060a088013567ffffffffffffffff81111561141857600080fd5b6114248a828b01611255565b989b979a50959850939692959293505050565b600080600080600080600060c0888a03121561145257600080fd5b873561145d81611217565b9650602088013561146d81611217565b9550604088013561147d81611217565b9450606088013593506114926080890161123c565b925060a088013567ffffffffffffffff81111561141857600080fd5b6000602082840312156114c057600080fd5b8135610ff281611217565b6000602082840312156114dd57600080fd5b8151610ff281611217565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b73ffffffffffffffffffffffffffffffffffffffff851681528360208201526060604082015260006115676060830184866114e8565b9695505050505050565b600073ffffffffffffffffffffffffffffffffffffffff808a1683528089166020840152808816604084015280871660608401525084608083015260c060a08301526115c160c0830184866114e8565b9998505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff841681526060602082015260006115fd6060830185611321565b905063ffffffff8316604083015294935050505056fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[Pa\0\x19a\0\x1EV[a\0\xDEV[`\0Ta\x01\0\x90\x04`\xFF\x16\x15a\0\x8AW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`'`$\x82\x01R\x7FInitializable: contract is initi`D\x82\x01Rfalizing`\xC8\x1B`d\x82\x01R`\x84\x01`@Q\x80\x91\x03\x90\xFD[`\0T`\xFF\x90\x81\x16\x10\x15a\0\xDCW`\0\x80T`\xFF\x19\x16`\xFF\x90\x81\x17\x90\x91U`@Q\x90\x81R\x7F\x7F&\xB8?\xF9n\x1F+jh/\x138R\xF6y\x8A\t\xC4e\xDA\x95\x92\x14`\xCE\xFB8G@$\x98\x90` \x01`@Q\x80\x91\x03\x90\xA1[V[a\x16 \x80a\0\xED`\09`\0\xF3\xFE`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`\x046\x10a\0\xBEW`\x005`\xE0\x1C\x80c\x7FF\xDD\xB2\x11a\0vW\x80c\xAAUtR\x11a\0[W\x80c\xAAUtR\x14a\x01\xC9W\x80c\xC4\xD6m\xE8\x14a\x01\xDCW\x80c\xC8\x97\x01\xA2\x14a\x01\xEFW`\0\x80\xFD[\x80c\x7FF\xDD\xB2\x14a\x01\x8DW\x80c\x92~\xDE-\x14a\x01\xABW`\0\x80\xFD[\x80cT\xFDMP\x11a\0\xA7W\x80cT\xFDMP\x14a\x01\"W\x80c\\\x97Z\xBB\x14a\x01kW\x80cv\x1FD\x93\x14a\x01zW`\0\x80\xFD[\x80c6\x87\x01\x1A\x14a\0\xC3W\x80c<\xB7G\xBF\x14a\0\xD8W[`\0\x80\xFD[a\0\xD6a\0\xD16`\x04a\x12\x9EV[a\x02\x0FV[\0[`\x01Ta\0\xF8\x90s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[a\x01^`@Q\x80`@\x01`@R\x80`\x06\x81R` \x01\x7F1.10.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\x81RP\x81V[`@Qa\x01\x19\x91\x90a\x13\x8CV[`@Q`\0\x81R` \x01a\x01\x19V[a\0\xD6a\x01\x886`\x04a\x13\x9FV[a\x02\xC0V[`\x02Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a\0\xF8V[`\x01Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a\0\xF8V[a\0\xD6a\x01\xD76`\x04a\x147V[a\x07\xDEV[a\0\xD6a\x01\xEA6`\x04a\x14\xAEV[a\x08\x9AV[`\x02Ta\0\xF8\x90s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[a\x02\x17a\nCV[a\x02\xA8W`@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\x82\x01R`-`$\x82\x01R\x7FERC721Bridge: account is not ext`D\x82\x01R\x7Fernally owned\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01[`@Q\x80\x91\x03\x90\xFD[a\x02\xB8\x86\x8633\x88\x88\x88\x88a\n\x80V[PPPPPPV[`\x01Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x163\x14\x80\x15a\x03\x95WP`\x02T`\x01T`@\x80Q\x7Fn)nE\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\x90Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x93\x84\x16\x93\x90\x92\x16\x91cn)nE\x91`\x04\x80\x82\x01\x92` \x92\x90\x91\x90\x82\x90\x03\x01\x81\x86Z\xFA\x15\x80\x15a\x03YW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x03}\x91\x90a\x14\xCBV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14[a\x04!W`@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\x82\x01R`?`$\x82\x01R\x7FERC721Bridge: function can only `D\x82\x01R\x7Fbe called from the other bridge\0`d\x82\x01R`\x84\x01a\x02\x9FV[0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x88\x16\x03a\x04\xC6W`@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\x82\x01R`*`$\x82\x01R\x7FL2ERC721Bridge: local token cann`D\x82\x01R\x7Fot be self\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x02\x9FV[a\x04\xF0\x87\x7F\xAE\xCA\xFC#\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\0a\x0F\xD6V[a\x05|W`@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\x82\x01R`6`$\x82\x01R\x7FL2ERC721Bridge: local token inte`D\x82\x01R\x7Frface is not compliant\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x02\x9FV[\x86s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xD6\xC0\xB2\xC4`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x05\xC7W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x05\xEB\x91\x90a\x14\xCBV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x86s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14a\x06\xCBW`@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\x82\x01R`K`$\x82\x01R\x7FL2ERC721Bridge: wrong remote tok`D\x82\x01R\x7Fen for Optimism Mintable ERC721 `d\x82\x01R\x7Flocal token\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x84\x82\x01R`\xA4\x01a\x02\x9FV[`@Q\x7F\xA1D\x81\x94\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\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x85\x81\x16`\x04\x83\x01R`$\x82\x01\x85\x90R\x88\x16\x90c\xA1D\x81\x94\x90`D\x01`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a\x07;W`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x07OW=`\0\x80>=`\0\xFD[PPPP\x84s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x86s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x88s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\x1F9\xBFg\x07\xB5\xD6\x08E>\n\xE4\xC0g\xB5b\xBC\xC4\xC8\\\x0FV.\xF5\xD2\xC7t\xD2\xE7\xF11\xAC\x87\x87\x87\x87`@Qa\x07\xCD\x94\x93\x92\x91\x90a\x151V[`@Q\x80\x91\x03\x90\xA4PPPPPPPV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x85\x16a\x08\x81W`@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\x82\x01R`0`$\x82\x01R\x7FERC721Bridge: nft recipient cann`D\x82\x01R\x7Fot be address(0)\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x02\x9FV[a\x08\x91\x87\x873\x88\x88\x88\x88\x88a\n\x80V[PPPPPPPV[`\0Ta\x01\0\x90\x04`\xFF\x16\x15\x80\x80\x15a\x08\xBAWP`\0T`\x01`\xFF\x90\x91\x16\x10[\x80a\x08\xD4WP0;\x15\x80\x15a\x08\xD4WP`\0T`\xFF\x16`\x01\x14[a\t`W`@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\x82\x01R`.`$\x82\x01R\x7FInitializable: contract is alrea`D\x82\x01R\x7Fdy initialized\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x02\x9FV[`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x16`\x01\x17\x90U\x80\x15a\t\xBEW`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\x16a\x01\0\x17\x90U[a\t\xDCsB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x07\x83a\x0F\xF9V[\x80\x15a\n?W`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\x16\x90U`@Q`\x01\x81R\x7F\x7F&\xB8?\xF9n\x1F+jh/\x138R\xF6y\x8A\t\xC4e\xDA\x95\x92\x14`\xCE\xFB8G@$\x98\x90` \x01`@Q\x80\x91\x03\x90\xA1[PPV[`\x0023\x03a\nRWP`\x01\x90V[3;`\x17\x03a\nzW`@Q` \x81\x01`@R` `\0\x823=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x0B\xB2\x91\x90a\x14\xCBV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x86s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14a\x0ClW`@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\x82\x01R`>`$\x82\x01R\x7FL2ERC721Bridge: Withdrawal is no`D\x82\x01R\x7Ft being initiated by NFT owner\0\0`d\x82\x01R`\x84\x01a\x02\x9FV[`\0\x88s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xD6\xC0\xB2\xC4`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x0C\xB9W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x0C\xDD\x91\x90a\x14\xCBV[\x90P\x87s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14a\r\x9AW`@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\x82\x01R`7`$\x82\x01R\x7FL2ERC721Bridge: remote token doe`D\x82\x01R\x7Fs not match given value\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x02\x9FV[`@Q\x7F\x9D\xC2\x9F\xAC\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\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x88\x81\x16`\x04\x83\x01R`$\x82\x01\x87\x90R\x8A\x16\x90c\x9D\xC2\x9F\xAC\x90`D\x01`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a\x0E\nW`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x0E\x1EW=`\0\x80>=`\0\xFD[PPPP`\0\x81\x8A\x89\x89\x89\x88\x88`@Q`$\x01a\x0EA\x97\x96\x95\x94\x93\x92\x91\x90a\x15qV[`@\x80Q\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x81\x84\x03\x01\x81R\x91\x81R` \x82\x01\x80Q{\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7Fv\x1FD\x93\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\x17\x90R`\x01T`\x02T\x91Q\x7F=\xBB +\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\x92\x93Ps\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x81\x16\x92c=\xBB +\x92a\x0F\x16\x92\x16\x90\x85\x90\x8A\x90`\x04\x01a\x15\xCEV[`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a\x0F0W`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x0FDW=`\0\x80>=`\0\xFD[PPPP\x87s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x82s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x8Bs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xB7F\x0E*\x88\x0F%n\xBE\xF3@a\x16\xFF>\xEE\x0C\xEEQ\xEB\xCC\xDC*@i\x8F\x87\xEB\xB2\xE9\xC1\xA5\x8A\x8A\x89\x89`@Qa\x0F\xC2\x94\x93\x92\x91\x90a\x151V[`@Q\x80\x91\x03\x90\xA4PPPPPPPPPPV[`\0a\x0F\xE1\x83a\x10\xE3V[\x80\x15a\x0F\xF2WPa\x0F\xF2\x83\x83a\x11HV[\x93\x92PPPV[`\0Ta\x01\0\x90\x04`\xFF\x16a\x10\x90W`@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\x82\x01R`+`$\x82\x01R\x7FInitializable: contract is not i`D\x82\x01R\x7Fnitializing\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x02\x9FV[`\x01\x80Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x93\x84\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x91\x82\x16\x17\x90\x91U`\x02\x80T\x92\x90\x93\x16\x91\x16\x17\x90UV[`\0a\x11\x0F\x82\x7F\x01\xFF\xC9\xA7\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\0a\x11HV[\x80\x15a\x11BWPa\x11@\x82\x7F\xFF\xFF\xFF\xFF\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\0a\x11HV[\x15[\x92\x91PPV[`@\x80Q\x7F\xFF\xFF\xFF\xFF\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\x83\x16`$\x80\x83\x01\x91\x90\x91R\x82Q\x80\x83\x03\x90\x91\x01\x81R`D\x90\x91\x01\x90\x91R` \x80\x82\x01\x80Q{\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\x01\xFF\xC9\xA7\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\x17\x81R\x82Q`\0\x93\x92\x84\x92\x83\x92\x83\x92\x91\x83\x91\x90\x8Aau0\xFA\x92P=\x91P`\0Q\x90P\x82\x80\x15a\x12\0WP` \x82\x10\x15[\x80\x15a\x12\x0CWP`\0\x81\x11[\x97\x96PPPPPPPV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x129W`\0\x80\xFD[PV[\x805c\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x12PW`\0\x80\xFD[\x91\x90PV[`\0\x80\x83`\x1F\x84\x01\x12a\x12gW`\0\x80\xFD[P\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x12\x7FW`\0\x80\xFD[` \x83\x01\x91P\x83` \x82\x85\x01\x01\x11\x15a\x12\x97W`\0\x80\xFD[\x92P\x92\x90PV[`\0\x80`\0\x80`\0\x80`\xA0\x87\x89\x03\x12\x15a\x12\xB7W`\0\x80\xFD[\x865a\x12\xC2\x81a\x12\x17V[\x95P` \x87\x015a\x12\xD2\x81a\x12\x17V[\x94P`@\x87\x015\x93Pa\x12\xE7``\x88\x01a\x12=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x03}\x91\x90a\x14\xCBV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14[a\x04!W`@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\x82\x01R`?`$\x82\x01R\x7FERC721Bridge: function can only `D\x82\x01R\x7Fbe called from the other bridge\0`d\x82\x01R`\x84\x01a\x02\x9FV[0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x88\x16\x03a\x04\xC6W`@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\x82\x01R`*`$\x82\x01R\x7FL2ERC721Bridge: local token cann`D\x82\x01R\x7Fot be self\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x02\x9FV[a\x04\xF0\x87\x7F\xAE\xCA\xFC#\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\0a\x0F\xD6V[a\x05|W`@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\x82\x01R`6`$\x82\x01R\x7FL2ERC721Bridge: local token inte`D\x82\x01R\x7Frface is not compliant\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x02\x9FV[\x86s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xD6\xC0\xB2\xC4`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x05\xC7W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x05\xEB\x91\x90a\x14\xCBV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x86s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14a\x06\xCBW`@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\x82\x01R`K`$\x82\x01R\x7FL2ERC721Bridge: wrong remote tok`D\x82\x01R\x7Fen for Optimism Mintable ERC721 `d\x82\x01R\x7Flocal token\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x84\x82\x01R`\xA4\x01a\x02\x9FV[`@Q\x7F\xA1D\x81\x94\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\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x85\x81\x16`\x04\x83\x01R`$\x82\x01\x85\x90R\x88\x16\x90c\xA1D\x81\x94\x90`D\x01`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a\x07;W`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x07OW=`\0\x80>=`\0\xFD[PPPP\x84s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x86s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x88s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\x1F9\xBFg\x07\xB5\xD6\x08E>\n\xE4\xC0g\xB5b\xBC\xC4\xC8\\\x0FV.\xF5\xD2\xC7t\xD2\xE7\xF11\xAC\x87\x87\x87\x87`@Qa\x07\xCD\x94\x93\x92\x91\x90a\x151V[`@Q\x80\x91\x03\x90\xA4PPPPPPPV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x85\x16a\x08\x81W`@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\x82\x01R`0`$\x82\x01R\x7FERC721Bridge: nft recipient cann`D\x82\x01R\x7Fot be address(0)\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x02\x9FV[a\x08\x91\x87\x873\x88\x88\x88\x88\x88a\n\x80V[PPPPPPPV[`\0Ta\x01\0\x90\x04`\xFF\x16\x15\x80\x80\x15a\x08\xBAWP`\0T`\x01`\xFF\x90\x91\x16\x10[\x80a\x08\xD4WP0;\x15\x80\x15a\x08\xD4WP`\0T`\xFF\x16`\x01\x14[a\t`W`@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\x82\x01R`.`$\x82\x01R\x7FInitializable: contract is alrea`D\x82\x01R\x7Fdy initialized\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x02\x9FV[`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x16`\x01\x17\x90U\x80\x15a\t\xBEW`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\x16a\x01\0\x17\x90U[a\t\xDCsB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x07\x83a\x0F\xF9V[\x80\x15a\n?W`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\x16\x90U`@Q`\x01\x81R\x7F\x7F&\xB8?\xF9n\x1F+jh/\x138R\xF6y\x8A\t\xC4e\xDA\x95\x92\x14`\xCE\xFB8G@$\x98\x90` \x01`@Q\x80\x91\x03\x90\xA1[PPV[`\x0023\x03a\nRWP`\x01\x90V[3;`\x17\x03a\nzW`@Q` \x81\x01`@R` `\0\x823=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x0B\xB2\x91\x90a\x14\xCBV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x86s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14a\x0ClW`@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\x82\x01R`>`$\x82\x01R\x7FL2ERC721Bridge: Withdrawal is no`D\x82\x01R\x7Ft being initiated by NFT owner\0\0`d\x82\x01R`\x84\x01a\x02\x9FV[`\0\x88s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xD6\xC0\xB2\xC4`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x0C\xB9W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x0C\xDD\x91\x90a\x14\xCBV[\x90P\x87s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14a\r\x9AW`@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\x82\x01R`7`$\x82\x01R\x7FL2ERC721Bridge: remote token doe`D\x82\x01R\x7Fs not match given value\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x02\x9FV[`@Q\x7F\x9D\xC2\x9F\xAC\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\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x88\x81\x16`\x04\x83\x01R`$\x82\x01\x87\x90R\x8A\x16\x90c\x9D\xC2\x9F\xAC\x90`D\x01`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a\x0E\nW`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x0E\x1EW=`\0\x80>=`\0\xFD[PPPP`\0\x81\x8A\x89\x89\x89\x88\x88`@Q`$\x01a\x0EA\x97\x96\x95\x94\x93\x92\x91\x90a\x15qV[`@\x80Q\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x81\x84\x03\x01\x81R\x91\x81R` \x82\x01\x80Q{\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7Fv\x1FD\x93\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\x17\x90R`\x01T`\x02T\x91Q\x7F=\xBB +\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\x92\x93Ps\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x81\x16\x92c=\xBB +\x92a\x0F\x16\x92\x16\x90\x85\x90\x8A\x90`\x04\x01a\x15\xCEV[`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a\x0F0W`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x0FDW=`\0\x80>=`\0\xFD[PPPP\x87s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x82s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x8Bs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xB7F\x0E*\x88\x0F%n\xBE\xF3@a\x16\xFF>\xEE\x0C\xEEQ\xEB\xCC\xDC*@i\x8F\x87\xEB\xB2\xE9\xC1\xA5\x8A\x8A\x89\x89`@Qa\x0F\xC2\x94\x93\x92\x91\x90a\x151V[`@Q\x80\x91\x03\x90\xA4PPPPPPPPPPV[`\0a\x0F\xE1\x83a\x10\xE3V[\x80\x15a\x0F\xF2WPa\x0F\xF2\x83\x83a\x11HV[\x93\x92PPPV[`\0Ta\x01\0\x90\x04`\xFF\x16a\x10\x90W`@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\x82\x01R`+`$\x82\x01R\x7FInitializable: contract is not i`D\x82\x01R\x7Fnitializing\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x02\x9FV[`\x01\x80Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x93\x84\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x91\x82\x16\x17\x90\x91U`\x02\x80T\x92\x90\x93\x16\x91\x16\x17\x90UV[`\0a\x11\x0F\x82\x7F\x01\xFF\xC9\xA7\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\0a\x11HV[\x80\x15a\x11BWPa\x11@\x82\x7F\xFF\xFF\xFF\xFF\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\0a\x11HV[\x15[\x92\x91PPV[`@\x80Q\x7F\xFF\xFF\xFF\xFF\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\x83\x16`$\x80\x83\x01\x91\x90\x91R\x82Q\x80\x83\x03\x90\x91\x01\x81R`D\x90\x91\x01\x90\x91R` \x80\x82\x01\x80Q{\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\x01\xFF\xC9\xA7\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\x17\x81R\x82Q`\0\x93\x92\x84\x92\x83\x92\x83\x92\x91\x83\x91\x90\x8Aau0\xFA\x92P=\x91P`\0Q\x90P\x82\x80\x15a\x12\0WP` \x82\x10\x15[\x80\x15a\x12\x0CWP`\0\x81\x11[\x97\x96PPPPPPPV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x129W`\0\x80\xFD[PV[\x805c\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x12PW`\0\x80\xFD[\x91\x90PV[`\0\x80\x83`\x1F\x84\x01\x12a\x12gW`\0\x80\xFD[P\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x12\x7FW`\0\x80\xFD[` \x83\x01\x91P\x83` \x82\x85\x01\x01\x11\x15a\x12\x97W`\0\x80\xFD[\x92P\x92\x90PV[`\0\x80`\0\x80`\0\x80`\xA0\x87\x89\x03\x12\x15a\x12\xB7W`\0\x80\xFD[\x865a\x12\xC2\x81a\x12\x17V[\x95P` \x87\x015a\x12\xD2\x81a\x12\x17V[\x94P`@\x87\x015\x93Pa\x12\xE7``\x88\x01a\x12 = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Bytes, + ); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "ERC721BridgeFinalized(address,address,address,address,uint256,bytes)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 31u8, 57u8, 191u8, 103u8, 7u8, 181u8, 214u8, 8u8, 69u8, 62u8, 10u8, + 228u8, 192u8, 103u8, 181u8, 98u8, 188u8, 196u8, 200u8, 92u8, 15u8, 86u8, + 46u8, 245u8, 210u8, 199u8, 116u8, 210u8, 231u8, 241u8, 49u8, 172u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + localToken: topics.1, + remoteToken: topics.2, + from: topics.3, + to: data.0, + tokenId: data.1, + extraData: data.2, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + ::tokenize( + &self.to, + ), + as alloy_sol_types::SolType>::tokenize(&self.tokenId), + ::tokenize( + &self.extraData, + ), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + ( + Self::SIGNATURE_HASH.into(), + self.localToken.clone(), + self.remoteToken.clone(), + self.from.clone(), + ) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.localToken, + ); + out[2usize] = ::encode_topic( + &self.remoteToken, + ); + out[3usize] = ::encode_topic( + &self.from, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for ERC721BridgeFinalized { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&ERC721BridgeFinalized> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &ERC721BridgeFinalized) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `ERC721BridgeInitiated(address,address,address,address,uint256,bytes)` and selector `0xb7460e2a880f256ebef3406116ff3eee0cee51ebccdc2a40698f87ebb2e9c1a5`. +```solidity +event ERC721BridgeInitiated(address indexed localToken, address indexed remoteToken, address indexed from, address to, uint256 tokenId, bytes extraData); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct ERC721BridgeInitiated { + #[allow(missing_docs)] + pub localToken: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub remoteToken: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub from: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub tokenId: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub extraData: alloy::sol_types::private::Bytes, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for ERC721BridgeInitiated { + type DataTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Bytes, + ); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "ERC721BridgeInitiated(address,address,address,address,uint256,bytes)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 183u8, 70u8, 14u8, 42u8, 136u8, 15u8, 37u8, 110u8, 190u8, 243u8, 64u8, + 97u8, 22u8, 255u8, 62u8, 238u8, 12u8, 238u8, 81u8, 235u8, 204u8, 220u8, + 42u8, 64u8, 105u8, 143u8, 135u8, 235u8, 178u8, 233u8, 193u8, 165u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + localToken: topics.1, + remoteToken: topics.2, + from: topics.3, + to: data.0, + tokenId: data.1, + extraData: data.2, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + ::tokenize( + &self.to, + ), + as alloy_sol_types::SolType>::tokenize(&self.tokenId), + ::tokenize( + &self.extraData, + ), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + ( + Self::SIGNATURE_HASH.into(), + self.localToken.clone(), + self.remoteToken.clone(), + self.from.clone(), + ) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.localToken, + ); + out[2usize] = ::encode_topic( + &self.remoteToken, + ); + out[3usize] = ::encode_topic( + &self.from, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for ERC721BridgeInitiated { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&ERC721BridgeInitiated> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &ERC721BridgeInitiated) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `Initialized(uint8)` and selector `0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498`. +```solidity +event Initialized(uint8 version); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct Initialized { + #[allow(missing_docs)] + pub version: u8, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for Initialized { + type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<8>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,); + const SIGNATURE: &'static str = "Initialized(uint8)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 127u8, 38u8, 184u8, 63u8, 249u8, 110u8, 31u8, 43u8, 106u8, 104u8, 47u8, + 19u8, 56u8, 82u8, 246u8, 121u8, 138u8, 9u8, 196u8, 101u8, 218u8, 149u8, + 146u8, 20u8, 96u8, 206u8, 251u8, 56u8, 71u8, 64u8, 36u8, 152u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { version: data.0 } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.version), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(),) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for Initialized { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&Initialized> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &Initialized) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + /**Constructor`. +```solidity +constructor(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct constructorCall {} + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: constructorCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for constructorCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolConstructor for constructorCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `MESSENGER()` and selector `0x927ede2d`. +```solidity +function MESSENGER() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct MESSENGERCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`MESSENGER()`](MESSENGERCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct MESSENGERReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: MESSENGERCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for MESSENGERCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: MESSENGERReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for MESSENGERReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for MESSENGERCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "MESSENGER()"; + const SELECTOR: [u8; 4] = [146u8, 126u8, 222u8, 45u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: MESSENGERReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: MESSENGERReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `OTHER_BRIDGE()` and selector `0x7f46ddb2`. +```solidity +function OTHER_BRIDGE() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct OTHER_BRIDGECall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`OTHER_BRIDGE()`](OTHER_BRIDGECall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct OTHER_BRIDGEReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: OTHER_BRIDGECall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for OTHER_BRIDGECall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: OTHER_BRIDGEReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for OTHER_BRIDGEReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for OTHER_BRIDGECall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "OTHER_BRIDGE()"; + const SELECTOR: [u8; 4] = [127u8, 70u8, 221u8, 178u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: OTHER_BRIDGEReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: OTHER_BRIDGEReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `bridgeERC721(address,address,uint256,uint32,bytes)` and selector `0x3687011a`. +```solidity +function bridgeERC721(address _localToken, address _remoteToken, uint256 _tokenId, uint32 _minGasLimit, bytes memory _extraData) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct bridgeERC721Call { + #[allow(missing_docs)] + pub _localToken: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _remoteToken: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _tokenId: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _minGasLimit: u32, + #[allow(missing_docs)] + pub _extraData: alloy::sol_types::private::Bytes, + } + ///Container type for the return parameters of the [`bridgeERC721(address,address,uint256,uint32,bytes)`](bridgeERC721Call) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct bridgeERC721Return {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<32>, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + u32, + alloy::sol_types::private::Bytes, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: bridgeERC721Call) -> Self { + ( + value._localToken, + value._remoteToken, + value._tokenId, + value._minGasLimit, + value._extraData, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for bridgeERC721Call { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _localToken: tuple.0, + _remoteToken: tuple.1, + _tokenId: tuple.2, + _minGasLimit: tuple.3, + _extraData: tuple.4, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: bridgeERC721Return) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for bridgeERC721Return { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl bridgeERC721Return { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for bridgeERC721Call { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<32>, + alloy::sol_types::sol_data::Bytes, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bridgeERC721Return; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "bridgeERC721(address,address,uint256,uint32,bytes)"; + const SELECTOR: [u8; 4] = [54u8, 135u8, 1u8, 26u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._localToken, + ), + ::tokenize( + &self._remoteToken, + ), + as alloy_sol_types::SolType>::tokenize(&self._tokenId), + as alloy_sol_types::SolType>::tokenize(&self._minGasLimit), + ::tokenize( + &self._extraData, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + bridgeERC721Return::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `bridgeERC721To(address,address,address,uint256,uint32,bytes)` and selector `0xaa557452`. +```solidity +function bridgeERC721To(address _localToken, address _remoteToken, address _to, uint256 _tokenId, uint32 _minGasLimit, bytes memory _extraData) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct bridgeERC721ToCall { + #[allow(missing_docs)] + pub _localToken: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _remoteToken: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _tokenId: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _minGasLimit: u32, + #[allow(missing_docs)] + pub _extraData: alloy::sol_types::private::Bytes, + } + ///Container type for the return parameters of the [`bridgeERC721To(address,address,address,uint256,uint32,bytes)`](bridgeERC721ToCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct bridgeERC721ToReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<32>, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + u32, + alloy::sol_types::private::Bytes, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: bridgeERC721ToCall) -> Self { + ( + value._localToken, + value._remoteToken, + value._to, + value._tokenId, + value._minGasLimit, + value._extraData, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for bridgeERC721ToCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _localToken: tuple.0, + _remoteToken: tuple.1, + _to: tuple.2, + _tokenId: tuple.3, + _minGasLimit: tuple.4, + _extraData: tuple.5, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: bridgeERC721ToReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for bridgeERC721ToReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl bridgeERC721ToReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for bridgeERC721ToCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<32>, + alloy::sol_types::sol_data::Bytes, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bridgeERC721ToReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "bridgeERC721To(address,address,address,uint256,uint32,bytes)"; + const SELECTOR: [u8; 4] = [170u8, 85u8, 116u8, 82u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._localToken, + ), + ::tokenize( + &self._remoteToken, + ), + ::tokenize( + &self._to, + ), + as alloy_sol_types::SolType>::tokenize(&self._tokenId), + as alloy_sol_types::SolType>::tokenize(&self._minGasLimit), + ::tokenize( + &self._extraData, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + bridgeERC721ToReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `finalizeBridgeERC721(address,address,address,address,uint256,bytes)` and selector `0x761f4493`. +```solidity +function finalizeBridgeERC721(address _localToken, address _remoteToken, address _from, address _to, uint256 _tokenId, bytes memory _extraData) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct finalizeBridgeERC721Call { + #[allow(missing_docs)] + pub _localToken: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _remoteToken: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _from: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _tokenId: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _extraData: alloy::sol_types::private::Bytes, + } + ///Container type for the return parameters of the [`finalizeBridgeERC721(address,address,address,address,uint256,bytes)`](finalizeBridgeERC721Call) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct finalizeBridgeERC721Return {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::Bytes, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: finalizeBridgeERC721Call) -> Self { + ( + value._localToken, + value._remoteToken, + value._from, + value._to, + value._tokenId, + value._extraData, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for finalizeBridgeERC721Call { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _localToken: tuple.0, + _remoteToken: tuple.1, + _from: tuple.2, + _to: tuple.3, + _tokenId: tuple.4, + _extraData: tuple.5, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: finalizeBridgeERC721Return) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for finalizeBridgeERC721Return { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl finalizeBridgeERC721Return { + fn _tokenize( + &self, + ) -> ::ReturnToken< + '_, + > { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for finalizeBridgeERC721Call { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Bytes, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = finalizeBridgeERC721Return; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "finalizeBridgeERC721(address,address,address,address,uint256,bytes)"; + const SELECTOR: [u8; 4] = [118u8, 31u8, 68u8, 147u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._localToken, + ), + ::tokenize( + &self._remoteToken, + ), + ::tokenize( + &self._from, + ), + ::tokenize( + &self._to, + ), + as alloy_sol_types::SolType>::tokenize(&self._tokenId), + ::tokenize( + &self._extraData, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + finalizeBridgeERC721Return::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `initialize(address)` and selector `0xc4d66de8`. +```solidity +function initialize(address _l1ERC721Bridge) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct initializeCall { + #[allow(missing_docs)] + pub _l1ERC721Bridge: alloy::sol_types::private::Address, + } + ///Container type for the return parameters of the [`initialize(address)`](initializeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct initializeReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: initializeCall) -> Self { + (value._l1ERC721Bridge,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for initializeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _l1ERC721Bridge: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: initializeReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for initializeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl initializeReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for initializeCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = initializeReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "initialize(address)"; + const SELECTOR: [u8; 4] = [196u8, 214u8, 109u8, 232u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._l1ERC721Bridge, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + initializeReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `messenger()` and selector `0x3cb747bf`. +```solidity +function messenger() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct messengerCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`messenger()`](messengerCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct messengerReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: messengerCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for messengerCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: messengerReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for messengerReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for messengerCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "messenger()"; + const SELECTOR: [u8; 4] = [60u8, 183u8, 71u8, 191u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: messengerReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: messengerReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `otherBridge()` and selector `0xc89701a2`. +```solidity +function otherBridge() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct otherBridgeCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`otherBridge()`](otherBridgeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct otherBridgeReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: otherBridgeCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for otherBridgeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: otherBridgeReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for otherBridgeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for otherBridgeCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "otherBridge()"; + const SELECTOR: [u8; 4] = [200u8, 151u8, 1u8, 162u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: otherBridgeReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: otherBridgeReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `paused()` and selector `0x5c975abb`. +```solidity +function paused() external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct pausedCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`paused()`](pausedCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct pausedReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: pausedCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for pausedCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: pausedReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for pausedReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for pausedCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "paused()"; + const SELECTOR: [u8; 4] = [92u8, 151u8, 90u8, 187u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: pausedReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: pausedReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `version()` and selector `0x54fd4d50`. +```solidity +function version() external view returns (string memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`version()`](versionCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for versionCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::String; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "version()"; + const SELECTOR: [u8; 4] = [84u8, 253u8, 77u8, 80u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + } + }; + ///Container for all the [`L2ERC721Bridge`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum L2ERC721BridgeCalls { + #[allow(missing_docs)] + MESSENGER(MESSENGERCall), + #[allow(missing_docs)] + OTHER_BRIDGE(OTHER_BRIDGECall), + #[allow(missing_docs)] + bridgeERC721(bridgeERC721Call), + #[allow(missing_docs)] + bridgeERC721To(bridgeERC721ToCall), + #[allow(missing_docs)] + finalizeBridgeERC721(finalizeBridgeERC721Call), + #[allow(missing_docs)] + initialize(initializeCall), + #[allow(missing_docs)] + messenger(messengerCall), + #[allow(missing_docs)] + otherBridge(otherBridgeCall), + #[allow(missing_docs)] + paused(pausedCall), + #[allow(missing_docs)] + version(versionCall), + } + impl L2ERC721BridgeCalls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [54u8, 135u8, 1u8, 26u8], + [60u8, 183u8, 71u8, 191u8], + [84u8, 253u8, 77u8, 80u8], + [92u8, 151u8, 90u8, 187u8], + [118u8, 31u8, 68u8, 147u8], + [127u8, 70u8, 221u8, 178u8], + [146u8, 126u8, 222u8, 45u8], + [170u8, 85u8, 116u8, 82u8], + [196u8, 214u8, 109u8, 232u8], + [200u8, 151u8, 1u8, 162u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(bridgeERC721), + ::core::stringify!(messenger), + ::core::stringify!(version), + ::core::stringify!(paused), + ::core::stringify!(finalizeBridgeERC721), + ::core::stringify!(OTHER_BRIDGE), + ::core::stringify!(MESSENGER), + ::core::stringify!(bridgeERC721To), + ::core::stringify!(initialize), + ::core::stringify!(otherBridge), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for L2ERC721BridgeCalls { + const NAME: &'static str = "L2ERC721BridgeCalls"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 10usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::MESSENGER(_) => { + ::SELECTOR + } + Self::OTHER_BRIDGE(_) => { + ::SELECTOR + } + Self::bridgeERC721(_) => { + ::SELECTOR + } + Self::bridgeERC721To(_) => { + ::SELECTOR + } + Self::finalizeBridgeERC721(_) => { + ::SELECTOR + } + Self::initialize(_) => { + ::SELECTOR + } + Self::messenger(_) => { + ::SELECTOR + } + Self::otherBridge(_) => { + ::SELECTOR + } + Self::paused(_) => ::SELECTOR, + Self::version(_) => ::SELECTOR, + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn bridgeERC721( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L2ERC721BridgeCalls::bridgeERC721) + } + bridgeERC721 + }, + { + fn messenger( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(L2ERC721BridgeCalls::messenger) + } + messenger + }, + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(L2ERC721BridgeCalls::version) + } + version + }, + { + fn paused( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(L2ERC721BridgeCalls::paused) + } + paused + }, + { + fn finalizeBridgeERC721( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L2ERC721BridgeCalls::finalizeBridgeERC721) + } + finalizeBridgeERC721 + }, + { + fn OTHER_BRIDGE( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L2ERC721BridgeCalls::OTHER_BRIDGE) + } + OTHER_BRIDGE + }, + { + fn MESSENGER( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(L2ERC721BridgeCalls::MESSENGER) + } + MESSENGER + }, + { + fn bridgeERC721To( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L2ERC721BridgeCalls::bridgeERC721To) + } + bridgeERC721To + }, + { + fn initialize( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L2ERC721BridgeCalls::initialize) + } + initialize + }, + { + fn otherBridge( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(L2ERC721BridgeCalls::otherBridge) + } + otherBridge + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn bridgeERC721( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L2ERC721BridgeCalls::bridgeERC721) + } + bridgeERC721 + }, + { + fn messenger( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L2ERC721BridgeCalls::messenger) + } + messenger + }, + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L2ERC721BridgeCalls::version) + } + version + }, + { + fn paused( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L2ERC721BridgeCalls::paused) + } + paused + }, + { + fn finalizeBridgeERC721( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L2ERC721BridgeCalls::finalizeBridgeERC721) + } + finalizeBridgeERC721 + }, + { + fn OTHER_BRIDGE( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L2ERC721BridgeCalls::OTHER_BRIDGE) + } + OTHER_BRIDGE + }, + { + fn MESSENGER( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L2ERC721BridgeCalls::MESSENGER) + } + MESSENGER + }, + { + fn bridgeERC721To( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L2ERC721BridgeCalls::bridgeERC721To) + } + bridgeERC721To + }, + { + fn initialize( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L2ERC721BridgeCalls::initialize) + } + initialize + }, + { + fn otherBridge( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(L2ERC721BridgeCalls::otherBridge) + } + otherBridge + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::MESSENGER(inner) => { + ::abi_encoded_size(inner) + } + Self::OTHER_BRIDGE(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::bridgeERC721(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::bridgeERC721To(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::finalizeBridgeERC721(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::initialize(inner) => { + ::abi_encoded_size(inner) + } + Self::messenger(inner) => { + ::abi_encoded_size(inner) + } + Self::otherBridge(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::paused(inner) => { + ::abi_encoded_size(inner) + } + Self::version(inner) => { + ::abi_encoded_size(inner) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::MESSENGER(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::OTHER_BRIDGE(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::bridgeERC721(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::bridgeERC721To(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::finalizeBridgeERC721(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::initialize(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::messenger(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::otherBridge(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::paused(inner) => { + ::abi_encode_raw(inner, out) + } + Self::version(inner) => { + ::abi_encode_raw(inner, out) + } + } + } + } + ///Container for all the [`L2ERC721Bridge`](self) events. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum L2ERC721BridgeEvents { + #[allow(missing_docs)] + ERC721BridgeFinalized(ERC721BridgeFinalized), + #[allow(missing_docs)] + ERC721BridgeInitiated(ERC721BridgeInitiated), + #[allow(missing_docs)] + Initialized(Initialized), + } + impl L2ERC721BridgeEvents { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 32usize]] = &[ + [ + 31u8, 57u8, 191u8, 103u8, 7u8, 181u8, 214u8, 8u8, 69u8, 62u8, 10u8, + 228u8, 192u8, 103u8, 181u8, 98u8, 188u8, 196u8, 200u8, 92u8, 15u8, 86u8, + 46u8, 245u8, 210u8, 199u8, 116u8, 210u8, 231u8, 241u8, 49u8, 172u8, + ], + [ + 127u8, 38u8, 184u8, 63u8, 249u8, 110u8, 31u8, 43u8, 106u8, 104u8, 47u8, + 19u8, 56u8, 82u8, 246u8, 121u8, 138u8, 9u8, 196u8, 101u8, 218u8, 149u8, + 146u8, 20u8, 96u8, 206u8, 251u8, 56u8, 71u8, 64u8, 36u8, 152u8, + ], + [ + 183u8, 70u8, 14u8, 42u8, 136u8, 15u8, 37u8, 110u8, 190u8, 243u8, 64u8, + 97u8, 22u8, 255u8, 62u8, 238u8, 12u8, 238u8, 81u8, 235u8, 204u8, 220u8, + 42u8, 64u8, 105u8, 143u8, 135u8, 235u8, 178u8, 233u8, 193u8, 165u8, + ], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(ERC721BridgeFinalized), + ::core::stringify!(Initialized), + ::core::stringify!(ERC721BridgeInitiated), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolEventInterface for L2ERC721BridgeEvents { + const NAME: &'static str = "L2ERC721BridgeEvents"; + const COUNT: usize = 3usize; + fn decode_raw_log( + topics: &[alloy_sol_types::Word], + data: &[u8], + ) -> alloy_sol_types::Result { + match topics.first().copied() { + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::ERC721BridgeFinalized) + } + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::ERC721BridgeInitiated) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::Initialized) + } + _ => { + alloy_sol_types::private::Err(alloy_sol_types::Error::InvalidLog { + name: ::NAME, + log: alloy_sol_types::private::Box::new( + alloy_sol_types::private::LogData::new_unchecked( + topics.to_vec(), + data.to_vec().into(), + ), + ), + }) + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for L2ERC721BridgeEvents { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + match self { + Self::ERC721BridgeFinalized(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::ERC721BridgeInitiated(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::Initialized(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + } + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + match self { + Self::ERC721BridgeFinalized(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::ERC721BridgeInitiated(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::Initialized(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`L2ERC721Bridge`](self) contract instance. + +See the [wrapper's documentation](`L2ERC721BridgeInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> L2ERC721BridgeInstance { + L2ERC721BridgeInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + L2ERC721BridgeInstance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + L2ERC721BridgeInstance::::deploy_builder(__provider) + } + /**A [`L2ERC721Bridge`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`L2ERC721Bridge`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct L2ERC721BridgeInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for L2ERC721BridgeInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("L2ERC721BridgeInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > L2ERC721BridgeInstance { + /**Creates a new wrapper around an on-chain [`L2ERC721Bridge`](self) contract instance. + +See the [wrapper's documentation](`L2ERC721BridgeInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl L2ERC721BridgeInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> L2ERC721BridgeInstance { + L2ERC721BridgeInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > L2ERC721BridgeInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`MESSENGER`] function. + pub fn MESSENGER(&self) -> alloy_contract::SolCallBuilder<&P, MESSENGERCall, N> { + self.call_builder(&MESSENGERCall) + } + ///Creates a new call builder for the [`OTHER_BRIDGE`] function. + pub fn OTHER_BRIDGE( + &self, + ) -> alloy_contract::SolCallBuilder<&P, OTHER_BRIDGECall, N> { + self.call_builder(&OTHER_BRIDGECall) + } + ///Creates a new call builder for the [`bridgeERC721`] function. + pub fn bridgeERC721( + &self, + _localToken: alloy::sol_types::private::Address, + _remoteToken: alloy::sol_types::private::Address, + _tokenId: alloy::sol_types::private::primitives::aliases::U256, + _minGasLimit: u32, + _extraData: alloy::sol_types::private::Bytes, + ) -> alloy_contract::SolCallBuilder<&P, bridgeERC721Call, N> { + self.call_builder( + &bridgeERC721Call { + _localToken, + _remoteToken, + _tokenId, + _minGasLimit, + _extraData, + }, + ) + } + ///Creates a new call builder for the [`bridgeERC721To`] function. + pub fn bridgeERC721To( + &self, + _localToken: alloy::sol_types::private::Address, + _remoteToken: alloy::sol_types::private::Address, + _to: alloy::sol_types::private::Address, + _tokenId: alloy::sol_types::private::primitives::aliases::U256, + _minGasLimit: u32, + _extraData: alloy::sol_types::private::Bytes, + ) -> alloy_contract::SolCallBuilder<&P, bridgeERC721ToCall, N> { + self.call_builder( + &bridgeERC721ToCall { + _localToken, + _remoteToken, + _to, + _tokenId, + _minGasLimit, + _extraData, + }, + ) + } + ///Creates a new call builder for the [`finalizeBridgeERC721`] function. + pub fn finalizeBridgeERC721( + &self, + _localToken: alloy::sol_types::private::Address, + _remoteToken: alloy::sol_types::private::Address, + _from: alloy::sol_types::private::Address, + _to: alloy::sol_types::private::Address, + _tokenId: alloy::sol_types::private::primitives::aliases::U256, + _extraData: alloy::sol_types::private::Bytes, + ) -> alloy_contract::SolCallBuilder<&P, finalizeBridgeERC721Call, N> { + self.call_builder( + &finalizeBridgeERC721Call { + _localToken, + _remoteToken, + _from, + _to, + _tokenId, + _extraData, + }, + ) + } + ///Creates a new call builder for the [`initialize`] function. + pub fn initialize( + &self, + _l1ERC721Bridge: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, initializeCall, N> { + self.call_builder(&initializeCall { _l1ERC721Bridge }) + } + ///Creates a new call builder for the [`messenger`] function. + pub fn messenger(&self) -> alloy_contract::SolCallBuilder<&P, messengerCall, N> { + self.call_builder(&messengerCall) + } + ///Creates a new call builder for the [`otherBridge`] function. + pub fn otherBridge( + &self, + ) -> alloy_contract::SolCallBuilder<&P, otherBridgeCall, N> { + self.call_builder(&otherBridgeCall) + } + ///Creates a new call builder for the [`paused`] function. + pub fn paused(&self) -> alloy_contract::SolCallBuilder<&P, pausedCall, N> { + self.call_builder(&pausedCall) + } + ///Creates a new call builder for the [`version`] function. + pub fn version(&self) -> alloy_contract::SolCallBuilder<&P, versionCall, N> { + self.call_builder(&versionCall) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > L2ERC721BridgeInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + ///Creates a new event filter for the [`ERC721BridgeFinalized`] event. + pub fn ERC721BridgeFinalized_filter( + &self, + ) -> alloy_contract::Event<&P, ERC721BridgeFinalized, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`ERC721BridgeInitiated`] event. + pub fn ERC721BridgeInitiated_filter( + &self, + ) -> alloy_contract::Event<&P, ERC721BridgeInitiated, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`Initialized`] event. + pub fn Initialized_filter(&self) -> alloy_contract::Event<&P, Initialized, N> { + self.event_filter::() + } + } +} diff --git a/bindings/rust/src/legacy_cross_domain_utils.rs b/bindings/rust/src/legacy_cross_domain_utils.rs new file mode 100644 index 000000000..b3592bac8 --- /dev/null +++ b/bindings/rust/src/legacy_cross_domain_utils.rs @@ -0,0 +1,215 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface LegacyCrossDomainUtils {} +``` + +...which was generated by the following JSON ABI: +```json +[] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod LegacyCrossDomainUtils { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`-`7`\x0B\x82\x82\x829\x80Q`\0\x1A`s\x14`*WcNH{q`\xE0\x1B`\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`\0\x80\xFD\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + 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`\0\x80\xFD\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`LegacyCrossDomainUtils`](self) contract instance. + +See the [wrapper's documentation](`LegacyCrossDomainUtilsInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> LegacyCrossDomainUtilsInstance { + LegacyCrossDomainUtilsInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + LegacyCrossDomainUtilsInstance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + LegacyCrossDomainUtilsInstance::::deploy_builder(__provider) + } + /**A [`LegacyCrossDomainUtils`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`LegacyCrossDomainUtils`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct LegacyCrossDomainUtilsInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for LegacyCrossDomainUtilsInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("LegacyCrossDomainUtilsInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > LegacyCrossDomainUtilsInstance { + /**Creates a new wrapper around an on-chain [`LegacyCrossDomainUtils`](self) contract instance. + +See the [wrapper's documentation](`LegacyCrossDomainUtilsInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl LegacyCrossDomainUtilsInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> LegacyCrossDomainUtilsInstance { + LegacyCrossDomainUtilsInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > LegacyCrossDomainUtilsInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > LegacyCrossDomainUtilsInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + } +} diff --git a/bindings/rust/src/legacy_message_passer.rs b/bindings/rust/src/legacy_message_passer.rs new file mode 100644 index 000000000..0c867aa90 --- /dev/null +++ b/bindings/rust/src/legacy_message_passer.rs @@ -0,0 +1,948 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface LegacyMessagePasser { + function passMessageToL1(bytes memory _message) external; + function sentMessages(bytes32) external view returns (bool); + function version() external view returns (string memory); +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "function", + "name": "passMessageToL1", + "inputs": [ + { + "name": "_message", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "sentMessages", + "inputs": [ + { + "name": "", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "version", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "view" + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod LegacyMessagePasser { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x608060405234801561001057600080fd5b5061035a806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806354fd4d501461004657806382e3702d14610098578063cafa81dc146100cb575b600080fd5b6100826040518060400160405280600581526020017f312e312e3200000000000000000000000000000000000000000000000000000081525081565b60405161008f919061019b565b60405180910390f35b6100bb6100a63660046101ec565b60006020819052908152604090205460ff1681565b604051901515815260200161008f565b6100de6100d9366004610234565b6100e0565b005b600160008083336040516020016100f8929190610303565b604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe001815291815281516020928301208352908201929092520160002080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001691151591909117905550565b60005b8381101561018657818101518382015260200161016e565b83811115610195576000848401525b50505050565b60208152600082518060208401526101ba81604085016020870161016b565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b6000602082840312156101fe57600080fd5b5035919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60006020828403121561024657600080fd5b813567ffffffffffffffff8082111561025e57600080fd5b818401915084601f83011261027257600080fd5b81358181111561028457610284610205565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019083821181831017156102ca576102ca610205565b816040528281528760208487010111156102e357600080fd5b826020860160208301376000928101602001929092525095945050505050565b6000835161031581846020880161016b565b60609390931b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016919092019081526014019291505056fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[Pa\x03Z\x80a\0 `\09`\0\xF3\xFE`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`\x046\x10a\0AW`\x005`\xE0\x1C\x80cT\xFDMP\x14a\0FW\x80c\x82\xE3p-\x14a\0\x98W\x80c\xCA\xFA\x81\xDC\x14a\0\xCBW[`\0\x80\xFD[a\0\x82`@Q\x80`@\x01`@R\x80`\x05\x81R` \x01\x7F1.1.2\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\x81RP\x81V[`@Qa\0\x8F\x91\x90a\x01\x9BV[`@Q\x80\x91\x03\x90\xF3[a\0\xBBa\0\xA66`\x04a\x01\xECV[`\0` \x81\x90R\x90\x81R`@\x90 T`\xFF\x16\x81V[`@Q\x90\x15\x15\x81R` \x01a\0\x8FV[a\0\xDEa\0\xD96`\x04a\x024V[a\0\xE0V[\0[`\x01`\0\x80\x833`@Q` \x01a\0\xF8\x92\x91\x90a\x03\x03V[`@\x80Q\x80\x83\x03\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x01\x81R\x91\x81R\x81Q` \x92\x83\x01 \x83R\x90\x82\x01\x92\x90\x92R\x01`\0 \x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x16\x91\x15\x15\x91\x90\x91\x17\x90UPV[`\0[\x83\x81\x10\x15a\x01\x86W\x81\x81\x01Q\x83\x82\x01R` \x01a\x01nV[\x83\x81\x11\x15a\x01\x95W`\0\x84\x84\x01R[PPPPV[` \x81R`\0\x82Q\x80` \x84\x01Ra\x01\xBA\x81`@\x85\x01` \x87\x01a\x01kV[`\x1F\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x91\x90\x91\x01`@\x01\x92\x91PPV[`\0` \x82\x84\x03\x12\x15a\x01\xFEW`\0\x80\xFD[P5\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[`\0` \x82\x84\x03\x12\x15a\x02FW`\0\x80\xFD[\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x02^W`\0\x80\xFD[\x81\x84\x01\x91P\x84`\x1F\x83\x01\x12a\x02rW`\0\x80\xFD[\x815\x81\x81\x11\x15a\x02\x84Wa\x02\x84a\x02\x05V[`@Q`\x1F\x82\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x90\x81\x16`?\x01\x16\x81\x01\x90\x83\x82\x11\x81\x83\x10\x17\x15a\x02\xCAWa\x02\xCAa\x02\x05V[\x81`@R\x82\x81R\x87` \x84\x87\x01\x01\x11\x15a\x02\xE3W`\0\x80\xFD[\x82` \x86\x01` \x83\x017`\0\x92\x81\x01` \x01\x92\x90\x92RP\x95\x94PPPPPV[`\0\x83Qa\x03\x15\x81\x84` \x88\x01a\x01kV[``\x93\x90\x93\x1B\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\x16\x91\x90\x92\x01\x90\x81R`\x14\x01\x92\x91PPV\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x608060405234801561001057600080fd5b50600436106100415760003560e01c806354fd4d501461004657806382e3702d14610098578063cafa81dc146100cb575b600080fd5b6100826040518060400160405280600581526020017f312e312e3200000000000000000000000000000000000000000000000000000081525081565b60405161008f919061019b565b60405180910390f35b6100bb6100a63660046101ec565b60006020819052908152604090205460ff1681565b604051901515815260200161008f565b6100de6100d9366004610234565b6100e0565b005b600160008083336040516020016100f8929190610303565b604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe001815291815281516020928301208352908201929092520160002080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001691151591909117905550565b60005b8381101561018657818101518382015260200161016e565b83811115610195576000848401525b50505050565b60208152600082518060208401526101ba81604085016020870161016b565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b6000602082840312156101fe57600080fd5b5035919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60006020828403121561024657600080fd5b813567ffffffffffffffff8082111561025e57600080fd5b818401915084601f83011261027257600080fd5b81358181111561028457610284610205565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019083821181831017156102ca576102ca610205565b816040528281528760208487010111156102e357600080fd5b826020860160208301376000928101602001929092525095945050505050565b6000835161031581846020880161016b565b60609390931b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016919092019081526014019291505056fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`\x046\x10a\0AW`\x005`\xE0\x1C\x80cT\xFDMP\x14a\0FW\x80c\x82\xE3p-\x14a\0\x98W\x80c\xCA\xFA\x81\xDC\x14a\0\xCBW[`\0\x80\xFD[a\0\x82`@Q\x80`@\x01`@R\x80`\x05\x81R` \x01\x7F1.1.2\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\x81RP\x81V[`@Qa\0\x8F\x91\x90a\x01\x9BV[`@Q\x80\x91\x03\x90\xF3[a\0\xBBa\0\xA66`\x04a\x01\xECV[`\0` \x81\x90R\x90\x81R`@\x90 T`\xFF\x16\x81V[`@Q\x90\x15\x15\x81R` \x01a\0\x8FV[a\0\xDEa\0\xD96`\x04a\x024V[a\0\xE0V[\0[`\x01`\0\x80\x833`@Q` \x01a\0\xF8\x92\x91\x90a\x03\x03V[`@\x80Q\x80\x83\x03\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x01\x81R\x91\x81R\x81Q` \x92\x83\x01 \x83R\x90\x82\x01\x92\x90\x92R\x01`\0 \x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x16\x91\x15\x15\x91\x90\x91\x17\x90UPV[`\0[\x83\x81\x10\x15a\x01\x86W\x81\x81\x01Q\x83\x82\x01R` \x01a\x01nV[\x83\x81\x11\x15a\x01\x95W`\0\x84\x84\x01R[PPPPV[` \x81R`\0\x82Q\x80` \x84\x01Ra\x01\xBA\x81`@\x85\x01` \x87\x01a\x01kV[`\x1F\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x91\x90\x91\x01`@\x01\x92\x91PPV[`\0` \x82\x84\x03\x12\x15a\x01\xFEW`\0\x80\xFD[P5\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[`\0` \x82\x84\x03\x12\x15a\x02FW`\0\x80\xFD[\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x02^W`\0\x80\xFD[\x81\x84\x01\x91P\x84`\x1F\x83\x01\x12a\x02rW`\0\x80\xFD[\x815\x81\x81\x11\x15a\x02\x84Wa\x02\x84a\x02\x05V[`@Q`\x1F\x82\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x90\x81\x16`?\x01\x16\x81\x01\x90\x83\x82\x11\x81\x83\x10\x17\x15a\x02\xCAWa\x02\xCAa\x02\x05V[\x81`@R\x82\x81R\x87` \x84\x87\x01\x01\x11\x15a\x02\xE3W`\0\x80\xFD[\x82` \x86\x01` \x83\x017`\0\x92\x81\x01` \x01\x92\x90\x92RP\x95\x94PPPPPV[`\0\x83Qa\x03\x15\x81\x84` \x88\x01a\x01kV[``\x93\x90\x93\x1B\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\x16\x91\x90\x92\x01\x90\x81R`\x14\x01\x92\x91PPV\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `passMessageToL1(bytes)` and selector `0xcafa81dc`. +```solidity +function passMessageToL1(bytes memory _message) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct passMessageToL1Call { + #[allow(missing_docs)] + pub _message: alloy::sol_types::private::Bytes, + } + ///Container type for the return parameters of the [`passMessageToL1(bytes)`](passMessageToL1Call) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct passMessageToL1Return {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bytes,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Bytes,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: passMessageToL1Call) -> Self { + (value._message,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for passMessageToL1Call { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _message: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: passMessageToL1Return) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for passMessageToL1Return { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl passMessageToL1Return { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for passMessageToL1Call { + type Parameters<'a> = (alloy::sol_types::sol_data::Bytes,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = passMessageToL1Return; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "passMessageToL1(bytes)"; + const SELECTOR: [u8; 4] = [202u8, 250u8, 129u8, 220u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._message, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + passMessageToL1Return::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `sentMessages(bytes32)` and selector `0x82e3702d`. +```solidity +function sentMessages(bytes32) external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct sentMessagesCall(pub alloy::sol_types::private::FixedBytes<32>); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`sentMessages(bytes32)`](sentMessagesCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct sentMessagesReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: sentMessagesCall) -> Self { + (value.0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for sentMessagesCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self(tuple.0) + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: sentMessagesReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for sentMessagesReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for sentMessagesCall { + type Parameters<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "sentMessages(bytes32)"; + const SELECTOR: [u8; 4] = [130u8, 227u8, 112u8, 45u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.0), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: sentMessagesReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: sentMessagesReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `version()` and selector `0x54fd4d50`. +```solidity +function version() external view returns (string memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`version()`](versionCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for versionCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::String; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "version()"; + const SELECTOR: [u8; 4] = [84u8, 253u8, 77u8, 80u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + } + }; + ///Container for all the [`LegacyMessagePasser`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum LegacyMessagePasserCalls { + #[allow(missing_docs)] + passMessageToL1(passMessageToL1Call), + #[allow(missing_docs)] + sentMessages(sentMessagesCall), + #[allow(missing_docs)] + version(versionCall), + } + impl LegacyMessagePasserCalls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [84u8, 253u8, 77u8, 80u8], + [130u8, 227u8, 112u8, 45u8], + [202u8, 250u8, 129u8, 220u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(version), + ::core::stringify!(sentMessages), + ::core::stringify!(passMessageToL1), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for LegacyMessagePasserCalls { + const NAME: &'static str = "LegacyMessagePasserCalls"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 3usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::passMessageToL1(_) => { + ::SELECTOR + } + Self::sentMessages(_) => { + ::SELECTOR + } + Self::version(_) => ::SELECTOR, + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(LegacyMessagePasserCalls::version) + } + version + }, + { + fn sentMessages( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(LegacyMessagePasserCalls::sentMessages) + } + sentMessages + }, + { + fn passMessageToL1( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(LegacyMessagePasserCalls::passMessageToL1) + } + passMessageToL1 + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(LegacyMessagePasserCalls::version) + } + version + }, + { + fn sentMessages( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(LegacyMessagePasserCalls::sentMessages) + } + sentMessages + }, + { + fn passMessageToL1( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(LegacyMessagePasserCalls::passMessageToL1) + } + passMessageToL1 + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::passMessageToL1(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::sentMessages(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::version(inner) => { + ::abi_encoded_size(inner) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::passMessageToL1(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::sentMessages(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::version(inner) => { + ::abi_encode_raw(inner, out) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`LegacyMessagePasser`](self) contract instance. + +See the [wrapper's documentation](`LegacyMessagePasserInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> LegacyMessagePasserInstance { + LegacyMessagePasserInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + LegacyMessagePasserInstance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + LegacyMessagePasserInstance::::deploy_builder(__provider) + } + /**A [`LegacyMessagePasser`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`LegacyMessagePasser`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct LegacyMessagePasserInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for LegacyMessagePasserInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("LegacyMessagePasserInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > LegacyMessagePasserInstance { + /**Creates a new wrapper around an on-chain [`LegacyMessagePasser`](self) contract instance. + +See the [wrapper's documentation](`LegacyMessagePasserInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl LegacyMessagePasserInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> LegacyMessagePasserInstance { + LegacyMessagePasserInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > LegacyMessagePasserInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`passMessageToL1`] function. + pub fn passMessageToL1( + &self, + _message: alloy::sol_types::private::Bytes, + ) -> alloy_contract::SolCallBuilder<&P, passMessageToL1Call, N> { + self.call_builder(&passMessageToL1Call { _message }) + } + ///Creates a new call builder for the [`sentMessages`] function. + pub fn sentMessages( + &self, + _0: alloy::sol_types::private::FixedBytes<32>, + ) -> alloy_contract::SolCallBuilder<&P, sentMessagesCall, N> { + self.call_builder(&sentMessagesCall(_0)) + } + ///Creates a new call builder for the [`version`] function. + pub fn version(&self) -> alloy_contract::SolCallBuilder<&P, versionCall, N> { + self.call_builder(&versionCall) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > LegacyMessagePasserInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + } +} diff --git a/bindings/rust/src/legacy_mintable_erc20.rs b/bindings/rust/src/legacy_mintable_erc20.rs new file mode 100644 index 000000000..548e773b4 --- /dev/null +++ b/bindings/rust/src/legacy_mintable_erc20.rs @@ -0,0 +1,4795 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface LegacyMintableERC20 { + event Approval(address indexed owner, address indexed spender, uint256 value); + event Burn(address indexed _account, uint256 _amount); + event Mint(address indexed _account, uint256 _amount); + event Transfer(address indexed from, address indexed to, uint256 value); + + constructor(address _l2Bridge, address _l1Token, string _name, string _symbol); + + function allowance(address owner, address spender) external view returns (uint256); + function approve(address spender, uint256 amount) external returns (bool); + function balanceOf(address account) external view returns (uint256); + function burn(address _from, uint256 _amount) external; + function decimals() external view returns (uint8); + function decreaseAllowance(address spender, uint256 subtractedValue) external returns (bool); + function increaseAllowance(address spender, uint256 addedValue) external returns (bool); + function l1Token() external view returns (address); + function l2Bridge() external view returns (address); + function mint(address _to, uint256 _amount) external; + function name() external view returns (string memory); + function supportsInterface(bytes4 _interfaceId) external pure returns (bool); + function symbol() external view returns (string memory); + function totalSupply() external view returns (uint256); + function transfer(address to, uint256 amount) external returns (bool); + function transferFrom(address from, address to, uint256 amount) external returns (bool); +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "constructor", + "inputs": [ + { + "name": "_l2Bridge", + "type": "address", + "internalType": "address" + }, + { + "name": "_l1Token", + "type": "address", + "internalType": "address" + }, + { + "name": "_name", + "type": "string", + "internalType": "string" + }, + { + "name": "_symbol", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "allowance", + "inputs": [ + { + "name": "owner", + "type": "address", + "internalType": "address" + }, + { + "name": "spender", + "type": "address", + "internalType": "address" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "approve", + "inputs": [ + { + "name": "spender", + "type": "address", + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "balanceOf", + "inputs": [ + { + "name": "account", + "type": "address", + "internalType": "address" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "burn", + "inputs": [ + { + "name": "_from", + "type": "address", + "internalType": "address" + }, + { + "name": "_amount", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "decimals", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint8", + "internalType": "uint8" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "decreaseAllowance", + "inputs": [ + { + "name": "spender", + "type": "address", + "internalType": "address" + }, + { + "name": "subtractedValue", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "increaseAllowance", + "inputs": [ + { + "name": "spender", + "type": "address", + "internalType": "address" + }, + { + "name": "addedValue", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "l1Token", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "l2Bridge", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "mint", + "inputs": [ + { + "name": "_to", + "type": "address", + "internalType": "address" + }, + { + "name": "_amount", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "name", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "supportsInterface", + "inputs": [ + { + "name": "_interfaceId", + "type": "bytes4", + "internalType": "bytes4" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "symbol", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "totalSupply", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "transfer", + "inputs": [ + { + "name": "to", + "type": "address", + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "transferFrom", + "inputs": [ + { + "name": "from", + "type": "address", + "internalType": "address" + }, + { + "name": "to", + "type": "address", + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "event", + "name": "Approval", + "inputs": [ + { + "name": "owner", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "spender", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "value", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "Burn", + "inputs": [ + { + "name": "_account", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "_amount", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "Mint", + "inputs": [ + { + "name": "_account", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "_amount", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "Transfer", + "inputs": [ + { + "name": "from", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "to", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "value", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod LegacyMintableERC20 { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x60806040523480156200001157600080fd5b506040516200156038038062001560833981016040819052620000349162000179565b8181600362000044838262000298565b50600462000053828262000298565b5050600580546001600160a01b039586166001600160a01b03199182161790915560068054969095169516949094179092555062000364915050565b80516001600160a01b0381168114620000a757600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112620000d457600080fd5b81516001600160401b0380821115620000f157620000f1620000ac565b604051601f8301601f19908116603f011681019082821181831017156200011c576200011c620000ac565b816040528381526020925086838588010111156200013957600080fd5b600091505b838210156200015d57858201830151818301840152908201906200013e565b838211156200016f5760008385830101525b9695505050505050565b600080600080608085870312156200019057600080fd5b6200019b856200008f565b9350620001ab602086016200008f565b60408601519093506001600160401b0380821115620001c957600080fd5b620001d788838901620000c2565b93506060870151915080821115620001ee57600080fd5b50620001fd87828801620000c2565b91505092959194509250565b600181811c908216806200021e57607f821691505b6020821081036200023f57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200029357600081815260208120601f850160051c810160208610156200026e5750805b601f850160051c820191505b818110156200028f578281556001016200027a565b5050505b505050565b81516001600160401b03811115620002b457620002b4620000ac565b620002cc81620002c5845462000209565b8462000245565b602080601f831160018114620003045760008415620002eb5750858301515b600019600386901b1c1916600185901b1785556200028f565b600085815260208120601f198616915b82811015620003355788860151825594840194600190910190840162000314565b5085821015620003545787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6111ec80620003746000396000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c806370a0823111610097578063a9059cbb11610066578063a9059cbb14610215578063ae1f6aaf14610228578063c01e1bd61461026d578063dd62ed3e1461028d57600080fd5b806370a08231146101b157806395d89b41146101e75780639dc29fac146101ef578063a457c2d71461020257600080fd5b806323b872dd116100d357806323b872dd14610167578063313ce5671461017a578063395093511461018957806340c10f191461019c57600080fd5b806301ffc9a71461010557806306fdde031461012d578063095ea7b31461014257806318160ddd14610155575b600080fd5b610118610113366004610f95565b6102d3565b60405190151581526020015b60405180910390f35b610135610393565b6040516101249190610fde565b61011861015036600461107a565b610425565b6002545b604051908152602001610124565b6101186101753660046110a4565b61043d565b60405160128152602001610124565b61011861019736600461107a565b610461565b6101af6101aa36600461107a565b6104ad565b005b6101596101bf3660046110e0565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b610135610591565b6101af6101fd36600461107a565b6105a0565b61011861021036600461107a565b610673565b61011861022336600461107a565b610744565b6006546102489073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610124565b6005546102489073ffffffffffffffffffffffffffffffffffffffff1681565b61015961029b3660046110fb565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b60007f01ffc9a7a5cef8baa21ed3c5c0d7e23accb804b619e9333b597f47a0d84076e27f1d1d8b63000000000000000000000000000000000000000000000000000000007fffffffff0000000000000000000000000000000000000000000000000000000084167f01ffc9a700000000000000000000000000000000000000000000000000000000148061038b57507fffffffff00000000000000000000000000000000000000000000000000000000848116908216145b949350505050565b6060600380546103a29061112e565b80601f01602080910402602001604051908101604052809291908181526020018280546103ce9061112e565b801561041b5780601f106103f05761010080835404028352916020019161041b565b820191906000526020600020905b8154815290600101906020018083116103fe57829003601f168201915b5050505050905090565b600033610433818585610752565b5060019392505050565b60003361044b858285610906565b6104568585856109dd565b506001949350505050565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716845290915281205490919061043390829086906104a89087906111b0565b610752565b60065473ffffffffffffffffffffffffffffffffffffffff163314610533576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f6e6c79204c32204272696467652063616e206d696e7420616e64206275726e60448201526064015b60405180910390fd5b61053d8282610c90565b8173ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d41213968858260405161058591815260200190565b60405180910390a25050565b6060600480546103a29061112e565b60065473ffffffffffffffffffffffffffffffffffffffff163314610621576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f6e6c79204c32204272696467652063616e206d696e7420616e64206275726e604482015260640161052a565b61062b8282610db0565b8173ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca58260405161058591815260200190565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716845290915281205490919083811015610737576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f000000000000000000000000000000000000000000000000000000606482015260840161052a565b6104568286868403610752565b6000336104338185856109dd565b73ffffffffffffffffffffffffffffffffffffffff83166107f4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015260840161052a565b73ffffffffffffffffffffffffffffffffffffffff8216610897576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f7373000000000000000000000000000000000000000000000000000000000000606482015260840161052a565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff8381166000908152600160209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146109d757818110156109ca576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161052a565b6109d78484848403610752565b50505050565b73ffffffffffffffffffffffffffffffffffffffff8316610a80576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f6472657373000000000000000000000000000000000000000000000000000000606482015260840161052a565b73ffffffffffffffffffffffffffffffffffffffff8216610b23576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015260840161052a565b73ffffffffffffffffffffffffffffffffffffffff831660009081526020819052604090205481811015610bd9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e63650000000000000000000000000000000000000000000000000000606482015260840161052a565b73ffffffffffffffffffffffffffffffffffffffff808516600090815260208190526040808220858503905591851681529081208054849290610c1d9084906111b0565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610c8391815260200190565b60405180910390a36109d7565b73ffffffffffffffffffffffffffffffffffffffff8216610d0d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640161052a565b8060026000828254610d1f91906111b0565b909155505073ffffffffffffffffffffffffffffffffffffffff821660009081526020819052604081208054839290610d599084906111b0565b909155505060405181815273ffffffffffffffffffffffffffffffffffffffff8316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b73ffffffffffffffffffffffffffffffffffffffff8216610e53576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f7300000000000000000000000000000000000000000000000000000000000000606482015260840161052a565b73ffffffffffffffffffffffffffffffffffffffff821660009081526020819052604090205481811015610f09576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f6365000000000000000000000000000000000000000000000000000000000000606482015260840161052a565b73ffffffffffffffffffffffffffffffffffffffff83166000908152602081905260408120838303905560028054849290610f459084906111c8565b909155505060405182815260009073ffffffffffffffffffffffffffffffffffffffff8516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906020016108f9565b600060208284031215610fa757600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610fd757600080fd5b9392505050565b600060208083528351808285015260005b8181101561100b57858101830151858201604001528201610fef565b8181111561101d576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461107557600080fd5b919050565b6000806040838503121561108d57600080fd5b61109683611051565b946020939093013593505050565b6000806000606084860312156110b957600080fd5b6110c284611051565b92506110d060208501611051565b9150604084013590509250925092565b6000602082840312156110f257600080fd5b610fd782611051565b6000806040838503121561110e57600080fd5b61111783611051565b915061112560208401611051565b90509250929050565b600181811c9082168061114257607f821691505b60208210810361117b577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600082198211156111c3576111c3611181565b500190565b6000828210156111da576111da611181565b50039056fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R4\x80\x15b\0\0\x11W`\0\x80\xFD[P`@Qb\0\x15`8\x03\x80b\0\x15`\x839\x81\x01`@\x81\x90Rb\0\x004\x91b\0\x01yV[\x81\x81`\x03b\0\0D\x83\x82b\0\x02\x98V[P`\x04b\0\0S\x82\x82b\0\x02\x98V[PP`\x05\x80T`\x01`\x01`\xA0\x1B\x03\x95\x86\x16`\x01`\x01`\xA0\x1B\x03\x19\x91\x82\x16\x17\x90\x91U`\x06\x80T\x96\x90\x95\x16\x95\x16\x94\x90\x94\x17\x90\x92UPb\0\x03d\x91PPV[\x80Q`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14b\0\0\xA7W`\0\x80\xFD[\x91\x90PV[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[`\0\x82`\x1F\x83\x01\x12b\0\0\xD4W`\0\x80\xFD[\x81Q`\x01`\x01`@\x1B\x03\x80\x82\x11\x15b\0\0\xF1Wb\0\0\xF1b\0\0\xACV[`@Q`\x1F\x83\x01`\x1F\x19\x90\x81\x16`?\x01\x16\x81\x01\x90\x82\x82\x11\x81\x83\x10\x17\x15b\0\x01\x1CWb\0\x01\x1Cb\0\0\xACV[\x81`@R\x83\x81R` \x92P\x86\x83\x85\x88\x01\x01\x11\x15b\0\x019W`\0\x80\xFD[`\0\x91P[\x83\x82\x10\x15b\0\x01]W\x85\x82\x01\x83\x01Q\x81\x83\x01\x84\x01R\x90\x82\x01\x90b\0\x01>V[\x83\x82\x11\x15b\0\x01oW`\0\x83\x85\x83\x01\x01R[\x96\x95PPPPPPV[`\0\x80`\0\x80`\x80\x85\x87\x03\x12\x15b\0\x01\x90W`\0\x80\xFD[b\0\x01\x9B\x85b\0\0\x8FV[\x93Pb\0\x01\xAB` \x86\x01b\0\0\x8FV[`@\x86\x01Q\x90\x93P`\x01`\x01`@\x1B\x03\x80\x82\x11\x15b\0\x01\xC9W`\0\x80\xFD[b\0\x01\xD7\x88\x83\x89\x01b\0\0\xC2V[\x93P``\x87\x01Q\x91P\x80\x82\x11\x15b\0\x01\xEEW`\0\x80\xFD[Pb\0\x01\xFD\x87\x82\x88\x01b\0\0\xC2V[\x91PP\x92\x95\x91\x94P\x92PV[`\x01\x81\x81\x1C\x90\x82\x16\x80b\0\x02\x1EW`\x7F\x82\x16\x91P[` \x82\x10\x81\x03b\0\x02?WcNH{q`\xE0\x1B`\0R`\"`\x04R`$`\0\xFD[P\x91\x90PV[`\x1F\x82\x11\x15b\0\x02\x93W`\0\x81\x81R` \x81 `\x1F\x85\x01`\x05\x1C\x81\x01` \x86\x10\x15b\0\x02nWP\x80[`\x1F\x85\x01`\x05\x1C\x82\x01\x91P[\x81\x81\x10\x15b\0\x02\x8FW\x82\x81U`\x01\x01b\0\x02zV[PPP[PPPV[\x81Q`\x01`\x01`@\x1B\x03\x81\x11\x15b\0\x02\xB4Wb\0\x02\xB4b\0\0\xACV[b\0\x02\xCC\x81b\0\x02\xC5\x84Tb\0\x02\tV[\x84b\0\x02EV[` \x80`\x1F\x83\x11`\x01\x81\x14b\0\x03\x04W`\0\x84\x15b\0\x02\xEBWP\x85\x83\x01Q[`\0\x19`\x03\x86\x90\x1B\x1C\x19\x16`\x01\x85\x90\x1B\x17\x85Ub\0\x02\x8FV[`\0\x85\x81R` \x81 `\x1F\x19\x86\x16\x91[\x82\x81\x10\x15b\0\x035W\x88\x86\x01Q\x82U\x94\x84\x01\x94`\x01\x90\x91\x01\x90\x84\x01b\0\x03\x14V[P\x85\x82\x10\x15b\0\x03TW\x87\x85\x01Q`\0\x19`\x03\x88\x90\x1B`\xF8\x16\x1C\x19\x16\x81U[PPPPP`\x01\x90\x81\x1B\x01\x90UPV[a\x11\xEC\x80b\0\x03t`\09`\0\xF3\xFE`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`\x046\x10a\x01\0W`\x005`\xE0\x1C\x80cp\xA0\x821\x11a\0\x97W\x80c\xA9\x05\x9C\xBB\x11a\0fW\x80c\xA9\x05\x9C\xBB\x14a\x02\x15W\x80c\xAE\x1Fj\xAF\x14a\x02(W\x80c\xC0\x1E\x1B\xD6\x14a\x02mW\x80c\xDDb\xED>\x14a\x02\x8DW`\0\x80\xFD[\x80cp\xA0\x821\x14a\x01\xB1W\x80c\x95\xD8\x9BA\x14a\x01\xE7W\x80c\x9D\xC2\x9F\xAC\x14a\x01\xEFW\x80c\xA4W\xC2\xD7\x14a\x02\x02W`\0\x80\xFD[\x80c#\xB8r\xDD\x11a\0\xD3W\x80c#\xB8r\xDD\x14a\x01gW\x80c1<\xE5g\x14a\x01zW\x80c9P\x93Q\x14a\x01\x89W\x80c@\xC1\x0F\x19\x14a\x01\x9CW`\0\x80\xFD[\x80c\x01\xFF\xC9\xA7\x14a\x01\x05W\x80c\x06\xFD\xDE\x03\x14a\x01-W\x80c\t^\xA7\xB3\x14a\x01BW\x80c\x18\x16\r\xDD\x14a\x01UW[`\0\x80\xFD[a\x01\x18a\x01\x136`\x04a\x0F\x95V[a\x02\xD3V[`@Q\x90\x15\x15\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[a\x015a\x03\x93V[`@Qa\x01$\x91\x90a\x0F\xDEV[a\x01\x18a\x01P6`\x04a\x10zV[a\x04%V[`\x02T[`@Q\x90\x81R` \x01a\x01$V[a\x01\x18a\x01u6`\x04a\x10\xA4V[a\x04=V[`@Q`\x12\x81R` \x01a\x01$V[a\x01\x18a\x01\x976`\x04a\x10zV[a\x04aV[a\x01\xAFa\x01\xAA6`\x04a\x10zV[a\x04\xADV[\0[a\x01Ya\x01\xBF6`\x04a\x10\xE0V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\0\x90\x81R` \x81\x90R`@\x90 T\x90V[a\x015a\x05\x91V[a\x01\xAFa\x01\xFD6`\x04a\x10zV[a\x05\xA0V[a\x01\x18a\x02\x106`\x04a\x10zV[a\x06sV[a\x01\x18a\x02#6`\x04a\x10zV[a\x07DV[`\x06Ta\x02H\x90s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01a\x01$V[`\x05Ta\x02H\x90s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[a\x01Ya\x02\x9B6`\x04a\x10\xFBV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x91\x82\x16`\0\x90\x81R`\x01` \x90\x81R`@\x80\x83 \x93\x90\x94\x16\x82R\x91\x90\x91R T\x90V[`\0\x7F\x01\xFF\xC9\xA7\xA5\xCE\xF8\xBA\xA2\x1E\xD3\xC5\xC0\xD7\xE2:\xCC\xB8\x04\xB6\x19\xE93;Y\x7FG\xA0\xD8@v\xE2\x7F\x1D\x1D\x8Bc\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\x7F\xFF\xFF\xFF\xFF\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\x84\x16\x7F\x01\xFF\xC9\xA7\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\x14\x80a\x03\x8BWP\x7F\xFF\xFF\xFF\xFF\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\x84\x81\x16\x90\x82\x16\x14[\x94\x93PPPPV[```\x03\x80Ta\x03\xA2\x90a\x11.V[\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x92\x91\x90\x81\x81R` \x01\x82\x80Ta\x03\xCE\x90a\x11.V[\x80\x15a\x04\x1BW\x80`\x1F\x10a\x03\xF0Wa\x01\0\x80\x83T\x04\x02\x83R\x91` \x01\x91a\x04\x1BV[\x82\x01\x91\x90`\0R` `\0 \x90[\x81T\x81R\x90`\x01\x01\x90` \x01\x80\x83\x11a\x03\xFEW\x82\x90\x03`\x1F\x16\x82\x01\x91[PPPPP\x90P\x90V[`\x003a\x043\x81\x85\x85a\x07RV[P`\x01\x93\x92PPPV[`\x003a\x04K\x85\x82\x85a\t\x06V[a\x04V\x85\x85\x85a\t\xDDV[P`\x01\x94\x93PPPPV[3`\0\x81\x81R`\x01` \x90\x81R`@\x80\x83 s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x16\x84R\x90\x91R\x81 T\x90\x91\x90a\x043\x90\x82\x90\x86\x90a\x04\xA8\x90\x87\x90a\x11\xB0V[a\x07RV[`\x06Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x163\x14a\x053W`@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\x82\x01\x81\x90R`$\x82\x01R\x7FOnly L2 Bridge can mint and burn`D\x82\x01R`d\x01[`@Q\x80\x91\x03\x90\xFD[a\x05=\x82\x82a\x0C\x90V[\x81s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\x0Fg\x98\xA5`y:T\xC3\xBC\xFE\x86\xA9<\xDE\x1Es\x08}\x94L\x0E\xA2\x05D\x13}A!9h\x85\x82`@Qa\x05\x85\x91\x81R` \x01\x90V[`@Q\x80\x91\x03\x90\xA2PPV[```\x04\x80Ta\x03\xA2\x90a\x11.V[`\x06Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x163\x14a\x06!W`@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\x82\x01\x81\x90R`$\x82\x01R\x7FOnly L2 Bridge can mint and burn`D\x82\x01R`d\x01a\x05*V[a\x06+\x82\x82a\r\xB0V[\x81s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xCC\x16\xF5\xDB\xB4\x872\x80\x81\\\x1E\xE0\x9D\xBD\x06sl\xFF\xCC\x18D\x12\xCFzq\xA0\xFD\xB7]9|\xA5\x82`@Qa\x05\x85\x91\x81R` \x01\x90V[3`\0\x81\x81R`\x01` \x90\x81R`@\x80\x83 s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x16\x84R\x90\x91R\x81 T\x90\x91\x90\x83\x81\x10\x15a\x077W`@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\x82\x01R`%`$\x82\x01R\x7FERC20: decreased allowance below`D\x82\x01R\x7F zero\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`d\x82\x01R`\x84\x01a\x05*V[a\x04V\x82\x86\x86\x84\x03a\x07RV[`\x003a\x043\x81\x85\x85a\t\xDDV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x16a\x07\xF4W`@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\x82\x01R`$\x80\x82\x01R\x7FERC20: approve from the zero add`D\x82\x01R\x7Fress\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`d\x82\x01R`\x84\x01a\x05*V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16a\x08\x97W`@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\x82\x01R`\"`$\x82\x01R\x7FERC20: approve to the zero addre`D\x82\x01R\x7Fss\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x05*V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x81\x16`\0\x81\x81R`\x01` \x90\x81R`@\x80\x83 \x94\x87\x16\x80\x84R\x94\x82R\x91\x82\x90 \x85\x90U\x90Q\x84\x81R\x7F\x8C[\xE1\xE5\xEB\xEC}[\xD1OqB}\x1E\x84\xF3\xDD\x03\x14\xC0\xF7\xB2)\x1E[ \n\xC8\xC7\xC3\xB9%\x91\x01[`@Q\x80\x91\x03\x90\xA3PPPV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x81\x16`\0\x90\x81R`\x01` \x90\x81R`@\x80\x83 \x93\x86\x16\x83R\x92\x90R T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x14a\t\xD7W\x81\x81\x10\x15a\t\xCAW`@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\x82\x01R`\x1D`$\x82\x01R\x7FERC20: insufficient allowance\0\0\0`D\x82\x01R`d\x01a\x05*V[a\t\xD7\x84\x84\x84\x84\x03a\x07RV[PPPPV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x16a\n\x80W`@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\x82\x01R`%`$\x82\x01R\x7FERC20: transfer from the zero ad`D\x82\x01R\x7Fdress\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`d\x82\x01R`\x84\x01a\x05*V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16a\x0B#W`@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\x82\x01R`#`$\x82\x01R\x7FERC20: transfer to the zero addr`D\x82\x01R\x7Fess\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x05*V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x16`\0\x90\x81R` \x81\x90R`@\x90 T\x81\x81\x10\x15a\x0B\xD9W`@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\x82\x01R`&`$\x82\x01R\x7FERC20: transfer amount exceeds b`D\x82\x01R\x7Falance\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`d\x82\x01R`\x84\x01a\x05*V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x85\x16`\0\x90\x81R` \x81\x90R`@\x80\x82 \x85\x85\x03\x90U\x91\x85\x16\x81R\x90\x81 \x80T\x84\x92\x90a\x0C\x1D\x90\x84\x90a\x11\xB0V[\x92PP\x81\x90UP\x82s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x84s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xDD\xF2R\xAD\x1B\xE2\xC8\x9Bi\xC2\xB0h\xFC7\x8D\xAA\x95+\xA7\xF1c\xC4\xA1\x16(\xF5ZM\xF5#\xB3\xEF\x84`@Qa\x0C\x83\x91\x81R` \x01\x90V[`@Q\x80\x91\x03\x90\xA3a\t\xD7V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16a\r\rW`@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\x82\x01R`\x1F`$\x82\x01R\x7FERC20: mint to the zero address\0`D\x82\x01R`d\x01a\x05*V[\x80`\x02`\0\x82\x82Ta\r\x1F\x91\x90a\x11\xB0V[\x90\x91UPPs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16`\0\x90\x81R` \x81\x90R`@\x81 \x80T\x83\x92\x90a\rY\x90\x84\x90a\x11\xB0V[\x90\x91UPP`@Q\x81\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x16\x90`\0\x90\x7F\xDD\xF2R\xAD\x1B\xE2\xC8\x9Bi\xC2\xB0h\xFC7\x8D\xAA\x95+\xA7\xF1c\xC4\xA1\x16(\xF5ZM\xF5#\xB3\xEF\x90` \x01`@Q\x80\x91\x03\x90\xA3PPV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16a\x0ESW`@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\x82\x01R`!`$\x82\x01R\x7FERC20: burn from the zero addres`D\x82\x01R\x7Fs\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x05*V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16`\0\x90\x81R` \x81\x90R`@\x90 T\x81\x81\x10\x15a\x0F\tW`@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\x82\x01R`\"`$\x82\x01R\x7FERC20: burn amount exceeds balan`D\x82\x01R\x7Fce\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x05*V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x16`\0\x90\x81R` \x81\x90R`@\x81 \x83\x83\x03\x90U`\x02\x80T\x84\x92\x90a\x0FE\x90\x84\x90a\x11\xC8V[\x90\x91UPP`@Q\x82\x81R`\0\x90s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x85\x16\x90\x7F\xDD\xF2R\xAD\x1B\xE2\xC8\x9Bi\xC2\xB0h\xFC7\x8D\xAA\x95+\xA7\xF1c\xC4\xA1\x16(\xF5ZM\xF5#\xB3\xEF\x90` \x01a\x08\xF9V[`\0` \x82\x84\x03\x12\x15a\x0F\xA7W`\0\x80\xFD[\x815\x7F\xFF\xFF\xFF\xFF\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\x81\x16\x81\x14a\x0F\xD7W`\0\x80\xFD[\x93\x92PPPV[`\0` \x80\x83R\x83Q\x80\x82\x85\x01R`\0[\x81\x81\x10\x15a\x10\x0BW\x85\x81\x01\x83\x01Q\x85\x82\x01`@\x01R\x82\x01a\x0F\xEFV[\x81\x81\x11\x15a\x10\x1DW`\0`@\x83\x87\x01\x01R[P`\x1F\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x92\x90\x92\x01`@\x01\x93\x92PPPV[\x805s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x10uW`\0\x80\xFD[\x91\x90PV[`\0\x80`@\x83\x85\x03\x12\x15a\x10\x8DW`\0\x80\xFD[a\x10\x96\x83a\x10QV[\x94` \x93\x90\x93\x015\x93PPPV[`\0\x80`\0``\x84\x86\x03\x12\x15a\x10\xB9W`\0\x80\xFD[a\x10\xC2\x84a\x10QV[\x92Pa\x10\xD0` \x85\x01a\x10QV[\x91P`@\x84\x015\x90P\x92P\x92P\x92V[`\0` \x82\x84\x03\x12\x15a\x10\xF2W`\0\x80\xFD[a\x0F\xD7\x82a\x10QV[`\0\x80`@\x83\x85\x03\x12\x15a\x11\x0EW`\0\x80\xFD[a\x11\x17\x83a\x10QV[\x91Pa\x11%` \x84\x01a\x10QV[\x90P\x92P\x92\x90PV[`\x01\x81\x81\x1C\x90\x82\x16\x80a\x11BW`\x7F\x82\x16\x91P[` \x82\x10\x81\x03a\x11{W\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`\"`\x04R`$`\0\xFD[P\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`\x11`\x04R`$`\0\xFD[`\0\x82\x19\x82\x11\x15a\x11\xC3Wa\x11\xC3a\x11\x81V[P\x01\x90V[`\0\x82\x82\x10\x15a\x11\xDAWa\x11\xDAa\x11\x81V[P\x03\x90V\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x608060405234801561001057600080fd5b50600436106101005760003560e01c806370a0823111610097578063a9059cbb11610066578063a9059cbb14610215578063ae1f6aaf14610228578063c01e1bd61461026d578063dd62ed3e1461028d57600080fd5b806370a08231146101b157806395d89b41146101e75780639dc29fac146101ef578063a457c2d71461020257600080fd5b806323b872dd116100d357806323b872dd14610167578063313ce5671461017a578063395093511461018957806340c10f191461019c57600080fd5b806301ffc9a71461010557806306fdde031461012d578063095ea7b31461014257806318160ddd14610155575b600080fd5b610118610113366004610f95565b6102d3565b60405190151581526020015b60405180910390f35b610135610393565b6040516101249190610fde565b61011861015036600461107a565b610425565b6002545b604051908152602001610124565b6101186101753660046110a4565b61043d565b60405160128152602001610124565b61011861019736600461107a565b610461565b6101af6101aa36600461107a565b6104ad565b005b6101596101bf3660046110e0565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b610135610591565b6101af6101fd36600461107a565b6105a0565b61011861021036600461107a565b610673565b61011861022336600461107a565b610744565b6006546102489073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610124565b6005546102489073ffffffffffffffffffffffffffffffffffffffff1681565b61015961029b3660046110fb565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b60007f01ffc9a7a5cef8baa21ed3c5c0d7e23accb804b619e9333b597f47a0d84076e27f1d1d8b63000000000000000000000000000000000000000000000000000000007fffffffff0000000000000000000000000000000000000000000000000000000084167f01ffc9a700000000000000000000000000000000000000000000000000000000148061038b57507fffffffff00000000000000000000000000000000000000000000000000000000848116908216145b949350505050565b6060600380546103a29061112e565b80601f01602080910402602001604051908101604052809291908181526020018280546103ce9061112e565b801561041b5780601f106103f05761010080835404028352916020019161041b565b820191906000526020600020905b8154815290600101906020018083116103fe57829003601f168201915b5050505050905090565b600033610433818585610752565b5060019392505050565b60003361044b858285610906565b6104568585856109dd565b506001949350505050565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716845290915281205490919061043390829086906104a89087906111b0565b610752565b60065473ffffffffffffffffffffffffffffffffffffffff163314610533576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f6e6c79204c32204272696467652063616e206d696e7420616e64206275726e60448201526064015b60405180910390fd5b61053d8282610c90565b8173ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d41213968858260405161058591815260200190565b60405180910390a25050565b6060600480546103a29061112e565b60065473ffffffffffffffffffffffffffffffffffffffff163314610621576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f6e6c79204c32204272696467652063616e206d696e7420616e64206275726e604482015260640161052a565b61062b8282610db0565b8173ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca58260405161058591815260200190565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716845290915281205490919083811015610737576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f000000000000000000000000000000000000000000000000000000606482015260840161052a565b6104568286868403610752565b6000336104338185856109dd565b73ffffffffffffffffffffffffffffffffffffffff83166107f4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015260840161052a565b73ffffffffffffffffffffffffffffffffffffffff8216610897576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f7373000000000000000000000000000000000000000000000000000000000000606482015260840161052a565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff8381166000908152600160209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146109d757818110156109ca576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161052a565b6109d78484848403610752565b50505050565b73ffffffffffffffffffffffffffffffffffffffff8316610a80576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f6472657373000000000000000000000000000000000000000000000000000000606482015260840161052a565b73ffffffffffffffffffffffffffffffffffffffff8216610b23576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015260840161052a565b73ffffffffffffffffffffffffffffffffffffffff831660009081526020819052604090205481811015610bd9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e63650000000000000000000000000000000000000000000000000000606482015260840161052a565b73ffffffffffffffffffffffffffffffffffffffff808516600090815260208190526040808220858503905591851681529081208054849290610c1d9084906111b0565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610c8391815260200190565b60405180910390a36109d7565b73ffffffffffffffffffffffffffffffffffffffff8216610d0d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640161052a565b8060026000828254610d1f91906111b0565b909155505073ffffffffffffffffffffffffffffffffffffffff821660009081526020819052604081208054839290610d599084906111b0565b909155505060405181815273ffffffffffffffffffffffffffffffffffffffff8316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b73ffffffffffffffffffffffffffffffffffffffff8216610e53576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f7300000000000000000000000000000000000000000000000000000000000000606482015260840161052a565b73ffffffffffffffffffffffffffffffffffffffff821660009081526020819052604090205481811015610f09576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f6365000000000000000000000000000000000000000000000000000000000000606482015260840161052a565b73ffffffffffffffffffffffffffffffffffffffff83166000908152602081905260408120838303905560028054849290610f459084906111c8565b909155505060405182815260009073ffffffffffffffffffffffffffffffffffffffff8516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906020016108f9565b600060208284031215610fa757600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610fd757600080fd5b9392505050565b600060208083528351808285015260005b8181101561100b57858101830151858201604001528201610fef565b8181111561101d576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461107557600080fd5b919050565b6000806040838503121561108d57600080fd5b61109683611051565b946020939093013593505050565b6000806000606084860312156110b957600080fd5b6110c284611051565b92506110d060208501611051565b9150604084013590509250925092565b6000602082840312156110f257600080fd5b610fd782611051565b6000806040838503121561110e57600080fd5b61111783611051565b915061112560208401611051565b90509250929050565b600181811c9082168061114257607f821691505b60208210810361117b577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600082198211156111c3576111c3611181565b500190565b6000828210156111da576111da611181565b50039056fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`\x046\x10a\x01\0W`\x005`\xE0\x1C\x80cp\xA0\x821\x11a\0\x97W\x80c\xA9\x05\x9C\xBB\x11a\0fW\x80c\xA9\x05\x9C\xBB\x14a\x02\x15W\x80c\xAE\x1Fj\xAF\x14a\x02(W\x80c\xC0\x1E\x1B\xD6\x14a\x02mW\x80c\xDDb\xED>\x14a\x02\x8DW`\0\x80\xFD[\x80cp\xA0\x821\x14a\x01\xB1W\x80c\x95\xD8\x9BA\x14a\x01\xE7W\x80c\x9D\xC2\x9F\xAC\x14a\x01\xEFW\x80c\xA4W\xC2\xD7\x14a\x02\x02W`\0\x80\xFD[\x80c#\xB8r\xDD\x11a\0\xD3W\x80c#\xB8r\xDD\x14a\x01gW\x80c1<\xE5g\x14a\x01zW\x80c9P\x93Q\x14a\x01\x89W\x80c@\xC1\x0F\x19\x14a\x01\x9CW`\0\x80\xFD[\x80c\x01\xFF\xC9\xA7\x14a\x01\x05W\x80c\x06\xFD\xDE\x03\x14a\x01-W\x80c\t^\xA7\xB3\x14a\x01BW\x80c\x18\x16\r\xDD\x14a\x01UW[`\0\x80\xFD[a\x01\x18a\x01\x136`\x04a\x0F\x95V[a\x02\xD3V[`@Q\x90\x15\x15\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[a\x015a\x03\x93V[`@Qa\x01$\x91\x90a\x0F\xDEV[a\x01\x18a\x01P6`\x04a\x10zV[a\x04%V[`\x02T[`@Q\x90\x81R` \x01a\x01$V[a\x01\x18a\x01u6`\x04a\x10\xA4V[a\x04=V[`@Q`\x12\x81R` \x01a\x01$V[a\x01\x18a\x01\x976`\x04a\x10zV[a\x04aV[a\x01\xAFa\x01\xAA6`\x04a\x10zV[a\x04\xADV[\0[a\x01Ya\x01\xBF6`\x04a\x10\xE0V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\0\x90\x81R` \x81\x90R`@\x90 T\x90V[a\x015a\x05\x91V[a\x01\xAFa\x01\xFD6`\x04a\x10zV[a\x05\xA0V[a\x01\x18a\x02\x106`\x04a\x10zV[a\x06sV[a\x01\x18a\x02#6`\x04a\x10zV[a\x07DV[`\x06Ta\x02H\x90s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01a\x01$V[`\x05Ta\x02H\x90s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[a\x01Ya\x02\x9B6`\x04a\x10\xFBV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x91\x82\x16`\0\x90\x81R`\x01` \x90\x81R`@\x80\x83 \x93\x90\x94\x16\x82R\x91\x90\x91R T\x90V[`\0\x7F\x01\xFF\xC9\xA7\xA5\xCE\xF8\xBA\xA2\x1E\xD3\xC5\xC0\xD7\xE2:\xCC\xB8\x04\xB6\x19\xE93;Y\x7FG\xA0\xD8@v\xE2\x7F\x1D\x1D\x8Bc\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\x7F\xFF\xFF\xFF\xFF\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\x84\x16\x7F\x01\xFF\xC9\xA7\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\x14\x80a\x03\x8BWP\x7F\xFF\xFF\xFF\xFF\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\x84\x81\x16\x90\x82\x16\x14[\x94\x93PPPPV[```\x03\x80Ta\x03\xA2\x90a\x11.V[\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x92\x91\x90\x81\x81R` \x01\x82\x80Ta\x03\xCE\x90a\x11.V[\x80\x15a\x04\x1BW\x80`\x1F\x10a\x03\xF0Wa\x01\0\x80\x83T\x04\x02\x83R\x91` \x01\x91a\x04\x1BV[\x82\x01\x91\x90`\0R` `\0 \x90[\x81T\x81R\x90`\x01\x01\x90` \x01\x80\x83\x11a\x03\xFEW\x82\x90\x03`\x1F\x16\x82\x01\x91[PPPPP\x90P\x90V[`\x003a\x043\x81\x85\x85a\x07RV[P`\x01\x93\x92PPPV[`\x003a\x04K\x85\x82\x85a\t\x06V[a\x04V\x85\x85\x85a\t\xDDV[P`\x01\x94\x93PPPPV[3`\0\x81\x81R`\x01` \x90\x81R`@\x80\x83 s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x16\x84R\x90\x91R\x81 T\x90\x91\x90a\x043\x90\x82\x90\x86\x90a\x04\xA8\x90\x87\x90a\x11\xB0V[a\x07RV[`\x06Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x163\x14a\x053W`@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\x82\x01\x81\x90R`$\x82\x01R\x7FOnly L2 Bridge can mint and burn`D\x82\x01R`d\x01[`@Q\x80\x91\x03\x90\xFD[a\x05=\x82\x82a\x0C\x90V[\x81s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\x0Fg\x98\xA5`y:T\xC3\xBC\xFE\x86\xA9<\xDE\x1Es\x08}\x94L\x0E\xA2\x05D\x13}A!9h\x85\x82`@Qa\x05\x85\x91\x81R` \x01\x90V[`@Q\x80\x91\x03\x90\xA2PPV[```\x04\x80Ta\x03\xA2\x90a\x11.V[`\x06Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x163\x14a\x06!W`@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\x82\x01\x81\x90R`$\x82\x01R\x7FOnly L2 Bridge can mint and burn`D\x82\x01R`d\x01a\x05*V[a\x06+\x82\x82a\r\xB0V[\x81s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xCC\x16\xF5\xDB\xB4\x872\x80\x81\\\x1E\xE0\x9D\xBD\x06sl\xFF\xCC\x18D\x12\xCFzq\xA0\xFD\xB7]9|\xA5\x82`@Qa\x05\x85\x91\x81R` \x01\x90V[3`\0\x81\x81R`\x01` \x90\x81R`@\x80\x83 s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x16\x84R\x90\x91R\x81 T\x90\x91\x90\x83\x81\x10\x15a\x077W`@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\x82\x01R`%`$\x82\x01R\x7FERC20: decreased allowance below`D\x82\x01R\x7F zero\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`d\x82\x01R`\x84\x01a\x05*V[a\x04V\x82\x86\x86\x84\x03a\x07RV[`\x003a\x043\x81\x85\x85a\t\xDDV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x16a\x07\xF4W`@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\x82\x01R`$\x80\x82\x01R\x7FERC20: approve from the zero add`D\x82\x01R\x7Fress\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`d\x82\x01R`\x84\x01a\x05*V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16a\x08\x97W`@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\x82\x01R`\"`$\x82\x01R\x7FERC20: approve to the zero addre`D\x82\x01R\x7Fss\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x05*V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x81\x16`\0\x81\x81R`\x01` \x90\x81R`@\x80\x83 \x94\x87\x16\x80\x84R\x94\x82R\x91\x82\x90 \x85\x90U\x90Q\x84\x81R\x7F\x8C[\xE1\xE5\xEB\xEC}[\xD1OqB}\x1E\x84\xF3\xDD\x03\x14\xC0\xF7\xB2)\x1E[ \n\xC8\xC7\xC3\xB9%\x91\x01[`@Q\x80\x91\x03\x90\xA3PPPV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x81\x16`\0\x90\x81R`\x01` \x90\x81R`@\x80\x83 \x93\x86\x16\x83R\x92\x90R T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x14a\t\xD7W\x81\x81\x10\x15a\t\xCAW`@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\x82\x01R`\x1D`$\x82\x01R\x7FERC20: insufficient allowance\0\0\0`D\x82\x01R`d\x01a\x05*V[a\t\xD7\x84\x84\x84\x84\x03a\x07RV[PPPPV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x16a\n\x80W`@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\x82\x01R`%`$\x82\x01R\x7FERC20: transfer from the zero ad`D\x82\x01R\x7Fdress\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`d\x82\x01R`\x84\x01a\x05*V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16a\x0B#W`@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\x82\x01R`#`$\x82\x01R\x7FERC20: transfer to the zero addr`D\x82\x01R\x7Fess\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x05*V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x16`\0\x90\x81R` \x81\x90R`@\x90 T\x81\x81\x10\x15a\x0B\xD9W`@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\x82\x01R`&`$\x82\x01R\x7FERC20: transfer amount exceeds b`D\x82\x01R\x7Falance\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`d\x82\x01R`\x84\x01a\x05*V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x85\x16`\0\x90\x81R` \x81\x90R`@\x80\x82 \x85\x85\x03\x90U\x91\x85\x16\x81R\x90\x81 \x80T\x84\x92\x90a\x0C\x1D\x90\x84\x90a\x11\xB0V[\x92PP\x81\x90UP\x82s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x84s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xDD\xF2R\xAD\x1B\xE2\xC8\x9Bi\xC2\xB0h\xFC7\x8D\xAA\x95+\xA7\xF1c\xC4\xA1\x16(\xF5ZM\xF5#\xB3\xEF\x84`@Qa\x0C\x83\x91\x81R` \x01\x90V[`@Q\x80\x91\x03\x90\xA3a\t\xD7V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16a\r\rW`@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\x82\x01R`\x1F`$\x82\x01R\x7FERC20: mint to the zero address\0`D\x82\x01R`d\x01a\x05*V[\x80`\x02`\0\x82\x82Ta\r\x1F\x91\x90a\x11\xB0V[\x90\x91UPPs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16`\0\x90\x81R` \x81\x90R`@\x81 \x80T\x83\x92\x90a\rY\x90\x84\x90a\x11\xB0V[\x90\x91UPP`@Q\x81\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x16\x90`\0\x90\x7F\xDD\xF2R\xAD\x1B\xE2\xC8\x9Bi\xC2\xB0h\xFC7\x8D\xAA\x95+\xA7\xF1c\xC4\xA1\x16(\xF5ZM\xF5#\xB3\xEF\x90` \x01`@Q\x80\x91\x03\x90\xA3PPV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16a\x0ESW`@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\x82\x01R`!`$\x82\x01R\x7FERC20: burn from the zero addres`D\x82\x01R\x7Fs\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x05*V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16`\0\x90\x81R` \x81\x90R`@\x90 T\x81\x81\x10\x15a\x0F\tW`@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\x82\x01R`\"`$\x82\x01R\x7FERC20: burn amount exceeds balan`D\x82\x01R\x7Fce\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x05*V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x16`\0\x90\x81R` \x81\x90R`@\x81 \x83\x83\x03\x90U`\x02\x80T\x84\x92\x90a\x0FE\x90\x84\x90a\x11\xC8V[\x90\x91UPP`@Q\x82\x81R`\0\x90s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x85\x16\x90\x7F\xDD\xF2R\xAD\x1B\xE2\xC8\x9Bi\xC2\xB0h\xFC7\x8D\xAA\x95+\xA7\xF1c\xC4\xA1\x16(\xF5ZM\xF5#\xB3\xEF\x90` \x01a\x08\xF9V[`\0` \x82\x84\x03\x12\x15a\x0F\xA7W`\0\x80\xFD[\x815\x7F\xFF\xFF\xFF\xFF\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\x81\x16\x81\x14a\x0F\xD7W`\0\x80\xFD[\x93\x92PPPV[`\0` \x80\x83R\x83Q\x80\x82\x85\x01R`\0[\x81\x81\x10\x15a\x10\x0BW\x85\x81\x01\x83\x01Q\x85\x82\x01`@\x01R\x82\x01a\x0F\xEFV[\x81\x81\x11\x15a\x10\x1DW`\0`@\x83\x87\x01\x01R[P`\x1F\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x92\x90\x92\x01`@\x01\x93\x92PPPV[\x805s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x10uW`\0\x80\xFD[\x91\x90PV[`\0\x80`@\x83\x85\x03\x12\x15a\x10\x8DW`\0\x80\xFD[a\x10\x96\x83a\x10QV[\x94` \x93\x90\x93\x015\x93PPPV[`\0\x80`\0``\x84\x86\x03\x12\x15a\x10\xB9W`\0\x80\xFD[a\x10\xC2\x84a\x10QV[\x92Pa\x10\xD0` \x85\x01a\x10QV[\x91P`@\x84\x015\x90P\x92P\x92P\x92V[`\0` \x82\x84\x03\x12\x15a\x10\xF2W`\0\x80\xFD[a\x0F\xD7\x82a\x10QV[`\0\x80`@\x83\x85\x03\x12\x15a\x11\x0EW`\0\x80\xFD[a\x11\x17\x83a\x10QV[\x91Pa\x11%` \x84\x01a\x10QV[\x90P\x92P\x92\x90PV[`\x01\x81\x81\x1C\x90\x82\x16\x80a\x11BW`\x7F\x82\x16\x91P[` \x82\x10\x81\x03a\x11{W\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`\"`\x04R`$`\0\xFD[P\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`\x11`\x04R`$`\0\xFD[`\0\x82\x19\x82\x11\x15a\x11\xC3Wa\x11\xC3a\x11\x81V[P\x01\x90V[`\0\x82\x82\x10\x15a\x11\xDAWa\x11\xDAa\x11\x81V[P\x03\x90V\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `Approval(address,address,uint256)` and selector `0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925`. +```solidity +event Approval(address indexed owner, address indexed spender, uint256 value); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct Approval { + #[allow(missing_docs)] + pub owner: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub spender: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub value: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for Approval { + type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "Approval(address,address,uint256)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 140u8, 91u8, 225u8, 229u8, 235u8, 236u8, 125u8, 91u8, 209u8, 79u8, 113u8, + 66u8, 125u8, 30u8, 132u8, 243u8, 221u8, 3u8, 20u8, 192u8, 247u8, 178u8, + 41u8, 30u8, 91u8, 32u8, 10u8, 200u8, 199u8, 195u8, 185u8, 37u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + owner: topics.1, + spender: topics.2, + value: data.0, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.value), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.owner.clone(), self.spender.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.owner, + ); + out[2usize] = ::encode_topic( + &self.spender, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for Approval { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&Approval> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &Approval) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `Burn(address,uint256)` and selector `0xcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5`. +```solidity +event Burn(address indexed _account, uint256 _amount); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct Burn { + #[allow(missing_docs)] + pub _account: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _amount: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for Burn { + type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "Burn(address,uint256)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 204u8, 22u8, 245u8, 219u8, 180u8, 135u8, 50u8, 128u8, 129u8, 92u8, 30u8, + 224u8, 157u8, 189u8, 6u8, 115u8, 108u8, 255u8, 204u8, 24u8, 68u8, 18u8, + 207u8, 122u8, 113u8, 160u8, 253u8, 183u8, 93u8, 57u8, 124u8, 165u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + _account: topics.1, + _amount: data.0, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._amount), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self._account.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self._account, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for Burn { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&Burn> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &Burn) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `Mint(address,uint256)` and selector `0x0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885`. +```solidity +event Mint(address indexed _account, uint256 _amount); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct Mint { + #[allow(missing_docs)] + pub _account: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _amount: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for Mint { + type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "Mint(address,uint256)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 15u8, 103u8, 152u8, 165u8, 96u8, 121u8, 58u8, 84u8, 195u8, 188u8, 254u8, + 134u8, 169u8, 60u8, 222u8, 30u8, 115u8, 8u8, 125u8, 148u8, 76u8, 14u8, + 162u8, 5u8, 68u8, 19u8, 125u8, 65u8, 33u8, 57u8, 104u8, 133u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + _account: topics.1, + _amount: data.0, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._amount), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self._account.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self._account, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for Mint { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&Mint> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &Mint) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `Transfer(address,address,uint256)` and selector `0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef`. +```solidity +event Transfer(address indexed from, address indexed to, uint256 value); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct Transfer { + #[allow(missing_docs)] + pub from: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub value: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for Transfer { + type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "Transfer(address,address,uint256)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 221u8, 242u8, 82u8, 173u8, 27u8, 226u8, 200u8, 155u8, 105u8, 194u8, + 176u8, 104u8, 252u8, 55u8, 141u8, 170u8, 149u8, 43u8, 167u8, 241u8, 99u8, + 196u8, 161u8, 22u8, 40u8, 245u8, 90u8, 77u8, 245u8, 35u8, 179u8, 239u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + from: topics.1, + to: topics.2, + value: data.0, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.value), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.from.clone(), self.to.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.from, + ); + out[2usize] = ::encode_topic( + &self.to, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for Transfer { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&Transfer> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &Transfer) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + /**Constructor`. +```solidity +constructor(address _l2Bridge, address _l1Token, string _name, string _symbol); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct constructorCall { + #[allow(missing_docs)] + pub _l2Bridge: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _l1Token: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _name: alloy::sol_types::private::String, + #[allow(missing_docs)] + pub _symbol: alloy::sol_types::private::String, + } + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::String, + alloy::sol_types::sol_data::String, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::String, + alloy::sol_types::private::String, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: constructorCall) -> Self { + (value._l2Bridge, value._l1Token, value._name, value._symbol) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for constructorCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _l2Bridge: tuple.0, + _l1Token: tuple.1, + _name: tuple.2, + _symbol: tuple.3, + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolConstructor for constructorCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::String, + alloy::sol_types::sol_data::String, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._l2Bridge, + ), + ::tokenize( + &self._l1Token, + ), + ::tokenize( + &self._name, + ), + ::tokenize( + &self._symbol, + ), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `allowance(address,address)` and selector `0xdd62ed3e`. +```solidity +function allowance(address owner, address spender) external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct allowanceCall { + #[allow(missing_docs)] + pub owner: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub spender: alloy::sol_types::private::Address, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`allowance(address,address)`](allowanceCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct allowanceReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: allowanceCall) -> Self { + (value.owner, value.spender) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for allowanceCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + owner: tuple.0, + spender: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: allowanceReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for allowanceReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for allowanceCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "allowance(address,address)"; + const SELECTOR: [u8; 4] = [221u8, 98u8, 237u8, 62u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.owner, + ), + ::tokenize( + &self.spender, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: allowanceReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: allowanceReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `approve(address,uint256)` and selector `0x095ea7b3`. +```solidity +function approve(address spender, uint256 amount) external returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct approveCall { + #[allow(missing_docs)] + pub spender: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub amount: alloy::sol_types::private::primitives::aliases::U256, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`approve(address,uint256)`](approveCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct approveReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: approveCall) -> Self { + (value.spender, value.amount) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for approveCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + spender: tuple.0, + amount: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: approveReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for approveReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for approveCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "approve(address,uint256)"; + const SELECTOR: [u8; 4] = [9u8, 94u8, 167u8, 179u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.spender, + ), + as alloy_sol_types::SolType>::tokenize(&self.amount), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: approveReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: approveReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `balanceOf(address)` and selector `0x70a08231`. +```solidity +function balanceOf(address account) external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct balanceOfCall { + #[allow(missing_docs)] + pub account: alloy::sol_types::private::Address, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`balanceOf(address)`](balanceOfCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct balanceOfReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: balanceOfCall) -> Self { + (value.account,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for balanceOfCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { account: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: balanceOfReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for balanceOfReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for balanceOfCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "balanceOf(address)"; + const SELECTOR: [u8; 4] = [112u8, 160u8, 130u8, 49u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.account, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: balanceOfReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: balanceOfReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `burn(address,uint256)` and selector `0x9dc29fac`. +```solidity +function burn(address _from, uint256 _amount) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct burnCall { + #[allow(missing_docs)] + pub _from: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _amount: alloy::sol_types::private::primitives::aliases::U256, + } + ///Container type for the return parameters of the [`burn(address,uint256)`](burnCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct burnReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: burnCall) -> Self { + (value._from, value._amount) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for burnCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _from: tuple.0, + _amount: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: burnReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for burnReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl burnReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for burnCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = burnReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "burn(address,uint256)"; + const SELECTOR: [u8; 4] = [157u8, 194u8, 159u8, 172u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._from, + ), + as alloy_sol_types::SolType>::tokenize(&self._amount), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + burnReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `decimals()` and selector `0x313ce567`. +```solidity +function decimals() external view returns (uint8); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct decimalsCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`decimals()`](decimalsCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct decimalsReturn { + #[allow(missing_docs)] + pub _0: u8, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: decimalsCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for decimalsCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<8>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u8,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: decimalsReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for decimalsReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for decimalsCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u8; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<8>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "decimals()"; + const SELECTOR: [u8; 4] = [49u8, 60u8, 229u8, 103u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: decimalsReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: decimalsReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `decreaseAllowance(address,uint256)` and selector `0xa457c2d7`. +```solidity +function decreaseAllowance(address spender, uint256 subtractedValue) external returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct decreaseAllowanceCall { + #[allow(missing_docs)] + pub spender: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub subtractedValue: alloy::sol_types::private::primitives::aliases::U256, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`decreaseAllowance(address,uint256)`](decreaseAllowanceCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct decreaseAllowanceReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: decreaseAllowanceCall) -> Self { + (value.spender, value.subtractedValue) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for decreaseAllowanceCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + spender: tuple.0, + subtractedValue: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: decreaseAllowanceReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for decreaseAllowanceReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for decreaseAllowanceCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "decreaseAllowance(address,uint256)"; + const SELECTOR: [u8; 4] = [164u8, 87u8, 194u8, 215u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.spender, + ), + as alloy_sol_types::SolType>::tokenize(&self.subtractedValue), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: decreaseAllowanceReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: decreaseAllowanceReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `increaseAllowance(address,uint256)` and selector `0x39509351`. +```solidity +function increaseAllowance(address spender, uint256 addedValue) external returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct increaseAllowanceCall { + #[allow(missing_docs)] + pub spender: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub addedValue: alloy::sol_types::private::primitives::aliases::U256, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`increaseAllowance(address,uint256)`](increaseAllowanceCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct increaseAllowanceReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: increaseAllowanceCall) -> Self { + (value.spender, value.addedValue) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for increaseAllowanceCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + spender: tuple.0, + addedValue: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: increaseAllowanceReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for increaseAllowanceReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for increaseAllowanceCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "increaseAllowance(address,uint256)"; + const SELECTOR: [u8; 4] = [57u8, 80u8, 147u8, 81u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.spender, + ), + as alloy_sol_types::SolType>::tokenize(&self.addedValue), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: increaseAllowanceReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: increaseAllowanceReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `l1Token()` and selector `0xc01e1bd6`. +```solidity +function l1Token() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct l1TokenCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`l1Token()`](l1TokenCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct l1TokenReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: l1TokenCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for l1TokenCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: l1TokenReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for l1TokenReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for l1TokenCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "l1Token()"; + const SELECTOR: [u8; 4] = [192u8, 30u8, 27u8, 214u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: l1TokenReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: l1TokenReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `l2Bridge()` and selector `0xae1f6aaf`. +```solidity +function l2Bridge() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct l2BridgeCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`l2Bridge()`](l2BridgeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct l2BridgeReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: l2BridgeCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for l2BridgeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: l2BridgeReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for l2BridgeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for l2BridgeCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "l2Bridge()"; + const SELECTOR: [u8; 4] = [174u8, 31u8, 106u8, 175u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: l2BridgeReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: l2BridgeReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `mint(address,uint256)` and selector `0x40c10f19`. +```solidity +function mint(address _to, uint256 _amount) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct mintCall { + #[allow(missing_docs)] + pub _to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _amount: alloy::sol_types::private::primitives::aliases::U256, + } + ///Container type for the return parameters of the [`mint(address,uint256)`](mintCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct mintReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: mintCall) -> Self { + (value._to, value._amount) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for mintCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _to: tuple.0, + _amount: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: mintReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for mintReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl mintReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for mintCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = mintReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "mint(address,uint256)"; + const SELECTOR: [u8; 4] = [64u8, 193u8, 15u8, 25u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._to, + ), + as alloy_sol_types::SolType>::tokenize(&self._amount), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + mintReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `name()` and selector `0x06fdde03`. +```solidity +function name() external view returns (string memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct nameCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`name()`](nameCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct nameReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: nameCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for nameCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: nameReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for nameReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for nameCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::String; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "name()"; + const SELECTOR: [u8; 4] = [6u8, 253u8, 222u8, 3u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: nameReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: nameReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `supportsInterface(bytes4)` and selector `0x01ffc9a7`. +```solidity +function supportsInterface(bytes4 _interfaceId) external pure returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct supportsInterfaceCall { + #[allow(missing_docs)] + pub _interfaceId: alloy::sol_types::private::FixedBytes<4>, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`supportsInterface(bytes4)`](supportsInterfaceCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct supportsInterfaceReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<4>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<4>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: supportsInterfaceCall) -> Self { + (value._interfaceId,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for supportsInterfaceCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _interfaceId: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: supportsInterfaceReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for supportsInterfaceReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for supportsInterfaceCall { + type Parameters<'a> = (alloy::sol_types::sol_data::FixedBytes<4>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "supportsInterface(bytes4)"; + const SELECTOR: [u8; 4] = [1u8, 255u8, 201u8, 167u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._interfaceId), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: supportsInterfaceReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: supportsInterfaceReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `symbol()` and selector `0x95d89b41`. +```solidity +function symbol() external view returns (string memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct symbolCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`symbol()`](symbolCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct symbolReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: symbolCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for symbolCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: symbolReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for symbolReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for symbolCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::String; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "symbol()"; + const SELECTOR: [u8; 4] = [149u8, 216u8, 155u8, 65u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: symbolReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: symbolReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `totalSupply()` and selector `0x18160ddd`. +```solidity +function totalSupply() external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct totalSupplyCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`totalSupply()`](totalSupplyCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct totalSupplyReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: totalSupplyCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for totalSupplyCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: totalSupplyReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for totalSupplyReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for totalSupplyCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "totalSupply()"; + const SELECTOR: [u8; 4] = [24u8, 22u8, 13u8, 221u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: totalSupplyReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: totalSupplyReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `transfer(address,uint256)` and selector `0xa9059cbb`. +```solidity +function transfer(address to, uint256 amount) external returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct transferCall { + #[allow(missing_docs)] + pub to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub amount: alloy::sol_types::private::primitives::aliases::U256, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`transfer(address,uint256)`](transferCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct transferReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: transferCall) -> Self { + (value.to, value.amount) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for transferCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + to: tuple.0, + amount: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: transferReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for transferReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for transferCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "transfer(address,uint256)"; + const SELECTOR: [u8; 4] = [169u8, 5u8, 156u8, 187u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.to, + ), + as alloy_sol_types::SolType>::tokenize(&self.amount), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: transferReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: transferReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd`. +```solidity +function transferFrom(address from, address to, uint256 amount) external returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct transferFromCall { + #[allow(missing_docs)] + pub from: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub amount: alloy::sol_types::private::primitives::aliases::U256, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`transferFrom(address,address,uint256)`](transferFromCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct transferFromReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: transferFromCall) -> Self { + (value.from, value.to, value.amount) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for transferFromCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + from: tuple.0, + to: tuple.1, + amount: tuple.2, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: transferFromReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for transferFromReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for transferFromCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "transferFrom(address,address,uint256)"; + const SELECTOR: [u8; 4] = [35u8, 184u8, 114u8, 221u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.from, + ), + ::tokenize( + &self.to, + ), + as alloy_sol_types::SolType>::tokenize(&self.amount), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: transferFromReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: transferFromReturn = r.into(); + r._0 + }) + } + } + }; + ///Container for all the [`LegacyMintableERC20`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum LegacyMintableERC20Calls { + #[allow(missing_docs)] + allowance(allowanceCall), + #[allow(missing_docs)] + approve(approveCall), + #[allow(missing_docs)] + balanceOf(balanceOfCall), + #[allow(missing_docs)] + burn(burnCall), + #[allow(missing_docs)] + decimals(decimalsCall), + #[allow(missing_docs)] + decreaseAllowance(decreaseAllowanceCall), + #[allow(missing_docs)] + increaseAllowance(increaseAllowanceCall), + #[allow(missing_docs)] + l1Token(l1TokenCall), + #[allow(missing_docs)] + l2Bridge(l2BridgeCall), + #[allow(missing_docs)] + mint(mintCall), + #[allow(missing_docs)] + name(nameCall), + #[allow(missing_docs)] + supportsInterface(supportsInterfaceCall), + #[allow(missing_docs)] + symbol(symbolCall), + #[allow(missing_docs)] + totalSupply(totalSupplyCall), + #[allow(missing_docs)] + transfer(transferCall), + #[allow(missing_docs)] + transferFrom(transferFromCall), + } + impl LegacyMintableERC20Calls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [1u8, 255u8, 201u8, 167u8], + [6u8, 253u8, 222u8, 3u8], + [9u8, 94u8, 167u8, 179u8], + [24u8, 22u8, 13u8, 221u8], + [35u8, 184u8, 114u8, 221u8], + [49u8, 60u8, 229u8, 103u8], + [57u8, 80u8, 147u8, 81u8], + [64u8, 193u8, 15u8, 25u8], + [112u8, 160u8, 130u8, 49u8], + [149u8, 216u8, 155u8, 65u8], + [157u8, 194u8, 159u8, 172u8], + [164u8, 87u8, 194u8, 215u8], + [169u8, 5u8, 156u8, 187u8], + [174u8, 31u8, 106u8, 175u8], + [192u8, 30u8, 27u8, 214u8], + [221u8, 98u8, 237u8, 62u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(supportsInterface), + ::core::stringify!(name), + ::core::stringify!(approve), + ::core::stringify!(totalSupply), + ::core::stringify!(transferFrom), + ::core::stringify!(decimals), + ::core::stringify!(increaseAllowance), + ::core::stringify!(mint), + ::core::stringify!(balanceOf), + ::core::stringify!(symbol), + ::core::stringify!(burn), + ::core::stringify!(decreaseAllowance), + ::core::stringify!(transfer), + ::core::stringify!(l2Bridge), + ::core::stringify!(l1Token), + ::core::stringify!(allowance), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for LegacyMintableERC20Calls { + const NAME: &'static str = "LegacyMintableERC20Calls"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 16usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::allowance(_) => { + ::SELECTOR + } + Self::approve(_) => ::SELECTOR, + Self::balanceOf(_) => { + ::SELECTOR + } + Self::burn(_) => ::SELECTOR, + Self::decimals(_) => ::SELECTOR, + Self::decreaseAllowance(_) => { + ::SELECTOR + } + Self::increaseAllowance(_) => { + ::SELECTOR + } + Self::l1Token(_) => ::SELECTOR, + Self::l2Bridge(_) => ::SELECTOR, + Self::mint(_) => ::SELECTOR, + Self::name(_) => ::SELECTOR, + Self::supportsInterface(_) => { + ::SELECTOR + } + Self::symbol(_) => ::SELECTOR, + Self::totalSupply(_) => { + ::SELECTOR + } + Self::transfer(_) => ::SELECTOR, + Self::transferFrom(_) => { + ::SELECTOR + } + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn supportsInterface( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(LegacyMintableERC20Calls::supportsInterface) + } + supportsInterface + }, + { + fn name( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(LegacyMintableERC20Calls::name) + } + name + }, + { + fn approve( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(LegacyMintableERC20Calls::approve) + } + approve + }, + { + fn totalSupply( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(LegacyMintableERC20Calls::totalSupply) + } + totalSupply + }, + { + fn transferFrom( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(LegacyMintableERC20Calls::transferFrom) + } + transferFrom + }, + { + fn decimals( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(LegacyMintableERC20Calls::decimals) + } + decimals + }, + { + fn increaseAllowance( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(LegacyMintableERC20Calls::increaseAllowance) + } + increaseAllowance + }, + { + fn mint( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(LegacyMintableERC20Calls::mint) + } + mint + }, + { + fn balanceOf( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(LegacyMintableERC20Calls::balanceOf) + } + balanceOf + }, + { + fn symbol( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(LegacyMintableERC20Calls::symbol) + } + symbol + }, + { + fn burn( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(LegacyMintableERC20Calls::burn) + } + burn + }, + { + fn decreaseAllowance( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(LegacyMintableERC20Calls::decreaseAllowance) + } + decreaseAllowance + }, + { + fn transfer( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(LegacyMintableERC20Calls::transfer) + } + transfer + }, + { + fn l2Bridge( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(LegacyMintableERC20Calls::l2Bridge) + } + l2Bridge + }, + { + fn l1Token( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(LegacyMintableERC20Calls::l1Token) + } + l1Token + }, + { + fn allowance( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(LegacyMintableERC20Calls::allowance) + } + allowance + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn supportsInterface( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(LegacyMintableERC20Calls::supportsInterface) + } + supportsInterface + }, + { + fn name( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(LegacyMintableERC20Calls::name) + } + name + }, + { + fn approve( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(LegacyMintableERC20Calls::approve) + } + approve + }, + { + fn totalSupply( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(LegacyMintableERC20Calls::totalSupply) + } + totalSupply + }, + { + fn transferFrom( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(LegacyMintableERC20Calls::transferFrom) + } + transferFrom + }, + { + fn decimals( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(LegacyMintableERC20Calls::decimals) + } + decimals + }, + { + fn increaseAllowance( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(LegacyMintableERC20Calls::increaseAllowance) + } + increaseAllowance + }, + { + fn mint( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(LegacyMintableERC20Calls::mint) + } + mint + }, + { + fn balanceOf( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(LegacyMintableERC20Calls::balanceOf) + } + balanceOf + }, + { + fn symbol( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(LegacyMintableERC20Calls::symbol) + } + symbol + }, + { + fn burn( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(LegacyMintableERC20Calls::burn) + } + burn + }, + { + fn decreaseAllowance( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(LegacyMintableERC20Calls::decreaseAllowance) + } + decreaseAllowance + }, + { + fn transfer( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(LegacyMintableERC20Calls::transfer) + } + transfer + }, + { + fn l2Bridge( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(LegacyMintableERC20Calls::l2Bridge) + } + l2Bridge + }, + { + fn l1Token( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(LegacyMintableERC20Calls::l1Token) + } + l1Token + }, + { + fn allowance( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(LegacyMintableERC20Calls::allowance) + } + allowance + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::allowance(inner) => { + ::abi_encoded_size(inner) + } + Self::approve(inner) => { + ::abi_encoded_size(inner) + } + Self::balanceOf(inner) => { + ::abi_encoded_size(inner) + } + Self::burn(inner) => { + ::abi_encoded_size(inner) + } + Self::decimals(inner) => { + ::abi_encoded_size(inner) + } + Self::decreaseAllowance(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::increaseAllowance(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::l1Token(inner) => { + ::abi_encoded_size(inner) + } + Self::l2Bridge(inner) => { + ::abi_encoded_size(inner) + } + Self::mint(inner) => { + ::abi_encoded_size(inner) + } + Self::name(inner) => { + ::abi_encoded_size(inner) + } + Self::supportsInterface(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::symbol(inner) => { + ::abi_encoded_size(inner) + } + Self::totalSupply(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::transfer(inner) => { + ::abi_encoded_size(inner) + } + Self::transferFrom(inner) => { + ::abi_encoded_size( + inner, + ) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::allowance(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::approve(inner) => { + ::abi_encode_raw(inner, out) + } + Self::balanceOf(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::burn(inner) => { + ::abi_encode_raw(inner, out) + } + Self::decimals(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::decreaseAllowance(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::increaseAllowance(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::l1Token(inner) => { + ::abi_encode_raw(inner, out) + } + Self::l2Bridge(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::mint(inner) => { + ::abi_encode_raw(inner, out) + } + Self::name(inner) => { + ::abi_encode_raw(inner, out) + } + Self::supportsInterface(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::symbol(inner) => { + ::abi_encode_raw(inner, out) + } + Self::totalSupply(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::transfer(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::transferFrom(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + } + } + } + ///Container for all the [`LegacyMintableERC20`](self) events. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum LegacyMintableERC20Events { + #[allow(missing_docs)] + Approval(Approval), + #[allow(missing_docs)] + Burn(Burn), + #[allow(missing_docs)] + Mint(Mint), + #[allow(missing_docs)] + Transfer(Transfer), + } + impl LegacyMintableERC20Events { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 32usize]] = &[ + [ + 15u8, 103u8, 152u8, 165u8, 96u8, 121u8, 58u8, 84u8, 195u8, 188u8, 254u8, + 134u8, 169u8, 60u8, 222u8, 30u8, 115u8, 8u8, 125u8, 148u8, 76u8, 14u8, + 162u8, 5u8, 68u8, 19u8, 125u8, 65u8, 33u8, 57u8, 104u8, 133u8, + ], + [ + 140u8, 91u8, 225u8, 229u8, 235u8, 236u8, 125u8, 91u8, 209u8, 79u8, 113u8, + 66u8, 125u8, 30u8, 132u8, 243u8, 221u8, 3u8, 20u8, 192u8, 247u8, 178u8, + 41u8, 30u8, 91u8, 32u8, 10u8, 200u8, 199u8, 195u8, 185u8, 37u8, + ], + [ + 204u8, 22u8, 245u8, 219u8, 180u8, 135u8, 50u8, 128u8, 129u8, 92u8, 30u8, + 224u8, 157u8, 189u8, 6u8, 115u8, 108u8, 255u8, 204u8, 24u8, 68u8, 18u8, + 207u8, 122u8, 113u8, 160u8, 253u8, 183u8, 93u8, 57u8, 124u8, 165u8, + ], + [ + 221u8, 242u8, 82u8, 173u8, 27u8, 226u8, 200u8, 155u8, 105u8, 194u8, + 176u8, 104u8, 252u8, 55u8, 141u8, 170u8, 149u8, 43u8, 167u8, 241u8, 99u8, + 196u8, 161u8, 22u8, 40u8, 245u8, 90u8, 77u8, 245u8, 35u8, 179u8, 239u8, + ], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(Mint), + ::core::stringify!(Approval), + ::core::stringify!(Burn), + ::core::stringify!(Transfer), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolEventInterface for LegacyMintableERC20Events { + const NAME: &'static str = "LegacyMintableERC20Events"; + const COUNT: usize = 4usize; + fn decode_raw_log( + topics: &[alloy_sol_types::Word], + data: &[u8], + ) -> alloy_sol_types::Result { + match topics.first().copied() { + Some(::SIGNATURE_HASH) => { + ::decode_raw_log(topics, data) + .map(Self::Approval) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log(topics, data) + .map(Self::Burn) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log(topics, data) + .map(Self::Mint) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log(topics, data) + .map(Self::Transfer) + } + _ => { + alloy_sol_types::private::Err(alloy_sol_types::Error::InvalidLog { + name: ::NAME, + log: alloy_sol_types::private::Box::new( + alloy_sol_types::private::LogData::new_unchecked( + topics.to_vec(), + data.to_vec().into(), + ), + ), + }) + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for LegacyMintableERC20Events { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + match self { + Self::Approval(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::Burn(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::Mint(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::Transfer(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + } + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + match self { + Self::Approval(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::Burn(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::Mint(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::Transfer(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`LegacyMintableERC20`](self) contract instance. + +See the [wrapper's documentation](`LegacyMintableERC20Instance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> LegacyMintableERC20Instance { + LegacyMintableERC20Instance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + _l2Bridge: alloy::sol_types::private::Address, + _l1Token: alloy::sol_types::private::Address, + _name: alloy::sol_types::private::String, + _symbol: alloy::sol_types::private::String, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + LegacyMintableERC20Instance::< + P, + N, + >::deploy(__provider, _l2Bridge, _l1Token, _name, _symbol) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + _l2Bridge: alloy::sol_types::private::Address, + _l1Token: alloy::sol_types::private::Address, + _name: alloy::sol_types::private::String, + _symbol: alloy::sol_types::private::String, + ) -> alloy_contract::RawCallBuilder { + LegacyMintableERC20Instance::< + P, + N, + >::deploy_builder(__provider, _l2Bridge, _l1Token, _name, _symbol) + } + /**A [`LegacyMintableERC20`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`LegacyMintableERC20`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct LegacyMintableERC20Instance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for LegacyMintableERC20Instance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("LegacyMintableERC20Instance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > LegacyMintableERC20Instance { + /**Creates a new wrapper around an on-chain [`LegacyMintableERC20`](self) contract instance. + +See the [wrapper's documentation](`LegacyMintableERC20Instance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + _l2Bridge: alloy::sol_types::private::Address, + _l1Token: alloy::sol_types::private::Address, + _name: alloy::sol_types::private::String, + _symbol: alloy::sol_types::private::String, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder( + __provider, + _l2Bridge, + _l1Token, + _name, + _symbol, + ); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder( + __provider: P, + _l2Bridge: alloy::sol_types::private::Address, + _l1Token: alloy::sol_types::private::Address, + _name: alloy::sol_types::private::String, + _symbol: alloy::sol_types::private::String, + ) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + [ + &BYTECODE[..], + &alloy_sol_types::SolConstructor::abi_encode( + &constructorCall { + _l2Bridge, + _l1Token, + _name, + _symbol, + }, + )[..], + ] + .concat() + .into(), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl LegacyMintableERC20Instance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> LegacyMintableERC20Instance { + LegacyMintableERC20Instance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > LegacyMintableERC20Instance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`allowance`] function. + pub fn allowance( + &self, + owner: alloy::sol_types::private::Address, + spender: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, allowanceCall, N> { + self.call_builder(&allowanceCall { owner, spender }) + } + ///Creates a new call builder for the [`approve`] function. + pub fn approve( + &self, + spender: alloy::sol_types::private::Address, + amount: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, approveCall, N> { + self.call_builder(&approveCall { spender, amount }) + } + ///Creates a new call builder for the [`balanceOf`] function. + pub fn balanceOf( + &self, + account: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, balanceOfCall, N> { + self.call_builder(&balanceOfCall { account }) + } + ///Creates a new call builder for the [`burn`] function. + pub fn burn( + &self, + _from: alloy::sol_types::private::Address, + _amount: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, burnCall, N> { + self.call_builder(&burnCall { _from, _amount }) + } + ///Creates a new call builder for the [`decimals`] function. + pub fn decimals(&self) -> alloy_contract::SolCallBuilder<&P, decimalsCall, N> { + self.call_builder(&decimalsCall) + } + ///Creates a new call builder for the [`decreaseAllowance`] function. + pub fn decreaseAllowance( + &self, + spender: alloy::sol_types::private::Address, + subtractedValue: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, decreaseAllowanceCall, N> { + self.call_builder( + &decreaseAllowanceCall { + spender, + subtractedValue, + }, + ) + } + ///Creates a new call builder for the [`increaseAllowance`] function. + pub fn increaseAllowance( + &self, + spender: alloy::sol_types::private::Address, + addedValue: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, increaseAllowanceCall, N> { + self.call_builder( + &increaseAllowanceCall { + spender, + addedValue, + }, + ) + } + ///Creates a new call builder for the [`l1Token`] function. + pub fn l1Token(&self) -> alloy_contract::SolCallBuilder<&P, l1TokenCall, N> { + self.call_builder(&l1TokenCall) + } + ///Creates a new call builder for the [`l2Bridge`] function. + pub fn l2Bridge(&self) -> alloy_contract::SolCallBuilder<&P, l2BridgeCall, N> { + self.call_builder(&l2BridgeCall) + } + ///Creates a new call builder for the [`mint`] function. + pub fn mint( + &self, + _to: alloy::sol_types::private::Address, + _amount: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, mintCall, N> { + self.call_builder(&mintCall { _to, _amount }) + } + ///Creates a new call builder for the [`name`] function. + pub fn name(&self) -> alloy_contract::SolCallBuilder<&P, nameCall, N> { + self.call_builder(&nameCall) + } + ///Creates a new call builder for the [`supportsInterface`] function. + pub fn supportsInterface( + &self, + _interfaceId: alloy::sol_types::private::FixedBytes<4>, + ) -> alloy_contract::SolCallBuilder<&P, supportsInterfaceCall, N> { + self.call_builder( + &supportsInterfaceCall { + _interfaceId, + }, + ) + } + ///Creates a new call builder for the [`symbol`] function. + pub fn symbol(&self) -> alloy_contract::SolCallBuilder<&P, symbolCall, N> { + self.call_builder(&symbolCall) + } + ///Creates a new call builder for the [`totalSupply`] function. + pub fn totalSupply( + &self, + ) -> alloy_contract::SolCallBuilder<&P, totalSupplyCall, N> { + self.call_builder(&totalSupplyCall) + } + ///Creates a new call builder for the [`transfer`] function. + pub fn transfer( + &self, + to: alloy::sol_types::private::Address, + amount: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, transferCall, N> { + self.call_builder(&transferCall { to, amount }) + } + ///Creates a new call builder for the [`transferFrom`] function. + pub fn transferFrom( + &self, + from: alloy::sol_types::private::Address, + to: alloy::sol_types::private::Address, + amount: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, transferFromCall, N> { + self.call_builder( + &transferFromCall { + from, + to, + amount, + }, + ) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > LegacyMintableERC20Instance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + ///Creates a new event filter for the [`Approval`] event. + pub fn Approval_filter(&self) -> alloy_contract::Event<&P, Approval, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`Burn`] event. + pub fn Burn_filter(&self) -> alloy_contract::Event<&P, Burn, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`Mint`] event. + pub fn Mint_filter(&self) -> alloy_contract::Event<&P, Mint, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`Transfer`] event. + pub fn Transfer_filter(&self) -> alloy_contract::Event<&P, Transfer, N> { + self.event_filter::() + } + } +} diff --git a/bindings/rust/src/lib.rs b/bindings/rust/src/lib.rs new file mode 100644 index 000000000..6e0b6d315 --- /dev/null +++ b/bindings/rust/src/lib.rs @@ -0,0 +1,169 @@ +#![allow(unused_imports, unused_attributes, clippy::all, rustdoc::all)] +//! This module contains the sol! generated bindings for solidity contracts. +//! This is autogenerated code. +//! Do not manually edit these files. +//! These files may be overwritten by the codegen system at any time. +pub mod r#access_manager; +pub mod r#address_alias_helper; +pub mod r#address_manager; +pub mod r#admin_faucet_auth_module; +pub mod r#aggregate_verifier; +pub mod r#anchor_state_registry; +pub mod r#arithmetic; +pub mod r#asset_receiver; +pub mod r#balance_tracker; +pub mod r#base_fee_vault; +pub mod r#blueprint; +pub mod r#burn; +pub mod r#bytes; +pub mod r#cb_multicall; +pub mod r#cannon_errors; +pub mod r#check_balance_low; +pub mod r#check_secrets; +pub mod r#check_true; +pub mod r#common; +pub mod r#common_errors; +pub mod r#constants; +pub mod r#cross_domain_messenger; +pub mod r#cross_domain_ownable; +pub mod r#cross_domain_ownable2; +pub mod r#cross_domain_ownable3; +pub mod r#cross_l2_inbox; +pub mod r#data_availability_challenge; +pub mod r#delayed_weth; +pub mod r#deployer_whitelist; +pub mod r#deputy_pause_module; +pub mod r#dev_features; +pub mod r#dispute_game_factory; +pub mod r#dispute_monitor_helper; +pub mod r#drippie; +pub mod r#eas; +pub mod r#eip1271_verifier; +pub mod r#eoa; +pub mod r#erc721_bridge; +pub mod r#eth_liquidity; +pub mod r#eth_lockbox; +pub mod r#encoding; +pub mod r#errors; +pub mod r#event_logger; +pub mod r#faucet; +pub mod r#fault_dispute_game; +pub mod r#fault_dispute_game_v2; +pub mod r#features; +pub mod r#fee_disburser; +pub mod r#fee_splitter; +pub mod r#fee_vault; +pub mod r#fees_depositor; +pub mod r#game_helper; +pub mod r#gas_paying_token; +pub mod r#gas_price_oracle; +pub mod r#governance_token; +pub mod r#hashing; +pub mod r#icb_multicall; +pub mod r#i_drip_check; +pub mod r#ieas; +pub mod r#i_faucet_auth_module; +pub mod r#isp1_verifier; +pub mod r#i_schema_registry; +pub mod r#i_schema_resolver; +pub mod r#l1_block; +pub mod r#l1_block_cgt; +pub mod r#l1_block_errors; +pub mod r#l1_block_number; +pub mod r#l1_chug_splash_proxy; +pub mod r#l1_cross_domain_messenger; +pub mod r#l1erc721_bridge; +pub mod r#l1_fee_vault; +pub mod r#l1_standard_bridge; +pub mod r#l1_withdrawer; +pub mod r#l2_cross_domain_messenger; +pub mod r#l2erc721_bridge; +pub mod r#l2_standard_bridge; +pub mod r#l2_standard_bridge_interop; +pub mod r#l2_to_l1_message_passer; +pub mod r#l2_to_l1_message_passer_cgt; +pub mod r#l2_to_l2_cross_domain_messenger; +pub mod r#legacy_cross_domain_utils; +pub mod r#legacy_message_passer; +pub mod r#legacy_mintable_erc20; +pub mod r#lib_game_args; +pub mod r#lib_position; +pub mod r#liquidity_controller; +pub mod r#liveness_guard; +pub mod r#liveness_module; +pub mod r#liveness_module2; +pub mod r#mips64; +pub mod r#mips64_arch; +pub mod r#mips64_instructions; +pub mod r#mips64_memory; +pub mod r#mips64_state; +pub mod r#mips64_syscalls; +pub mod r#merkle_trie; +pub mod r#mint_manager; +pub mod r#mock_system_config; +pub mod r#mock_verifier; +pub mod r#native_asset_liquidity; +pub mod r#nitro_enclave_verifier; +pub mod r#op_contracts_manager; +pub mod r#op_contracts_manager_standard_validator; +pub mod r#op_succinct_fault_dispute_game; +pub mod r#operator_fee_vault; +pub mod r#optimism_mintable_erc20; +pub mod r#optimism_mintable_erc20_factory; +pub mod r#optimism_mintable_erc721; +pub mod r#optimism_mintable_erc721_factory; +pub mod r#optimism_portal2; +pub mod r#optimism_portal_interop; +pub mod r#optimism_superchain_erc20; +pub mod r#optimism_superchain_erc20_beacon; +pub mod r#optimism_superchain_erc20_factory; +pub mod r#permissioned_dispute_game; +pub mod r#permissioned_dispute_game_v2; +pub mod r#predeploys; +pub mod r#preimage_key_lib; +pub mod r#preimage_oracle; +pub mod r#preinstalls; +pub mod r#protocol_versions; +pub mod r#proxy; +pub mod r#proxy_admin; +pub mod r#proxy_admin_owned_base; +pub mod r#riscv; +pub mod r#rlp_errors; +pub mod r#rlp_reader; +pub mod r#rlp_writer; +pub mod r#recovery; +pub mod r#reinitializable_base; +pub mod r#resolved_delegate_proxy; +pub mod r#resource_metering; +pub mod r#safe_call; +pub mod r#safe_send; +pub mod r#safe_signers; +pub mod r#safer_safes; +pub mod r#schema_registry; +pub mod r#schema_resolver; +pub mod r#secure_merkle_trie; +pub mod r#semver_comp; +pub mod r#sequencer_fee_vault; +pub mod r#smart_escrow; +pub mod r#standard_bridge; +pub mod r#static_config; +pub mod r#storage; +pub mod r#storage_setter; +pub mod r#super_fault_dispute_game; +pub mod r#super_permissioned_dispute_game; +pub mod r#superchain_config; +pub mod r#superchain_erc20; +pub mod r#superchain_eth_bridge; +pub mod r#superchain_rev_shares_calculator; +pub mod r#superchain_token_bridge; +pub mod r#system_config; +pub mod r#tee_prover_registry; +pub mod r#tee_verifier; +pub mod r#timelock_guard; +pub mod r#transactor; +pub mod r#transfer_onion; +pub mod r#transient_context; +pub mod r#types; +pub mod r#verifier; +pub mod r#weth; +pub mod r#weth98; diff --git a/bindings/rust/src/lib_game_args.rs b/bindings/rust/src/lib_game_args.rs new file mode 100644 index 000000000..4d8f6dfdf --- /dev/null +++ b/bindings/rust/src/lib_game_args.rs @@ -0,0 +1,752 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface LibGameArgs { + function PERMISSIONED_ARGS_LENGTH() external view returns (uint256); + function PERMISSIONLESS_ARGS_LENGTH() external view returns (uint256); +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "function", + "name": "PERMISSIONED_ARGS_LENGTH", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "PERMISSIONLESS_ARGS_LENGTH", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod LibGameArgs { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x606f610038600b82828239805160001a607314602b57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe7300000000000000000000000000000000000000003014608060405260043610603d5760003560e01c806337eb4fa3146042578063b0e55afd14605b575b600080fd5b6049607c81565b60405190815260200160405180910390f35b604960a48156fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`oa\08`\x0B\x82\x82\x829\x80Q`\0\x1A`s\x14`+WcNH{q`\xE0\x1B`\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\x10`=W`\x005`\xE0\x1C\x80c7\xEBO\xA3\x14`BW\x80c\xB0\xE5Z\xFD\x14`[W[`\0\x80\xFD[`I`|\x81V[`@Q\x90\x81R` \x01`@Q\x80\x91\x03\x90\xF3[`I`\xA4\x81V\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x7300000000000000000000000000000000000000003014608060405260043610603d5760003560e01c806337eb4fa3146042578063b0e55afd14605b575b600080fd5b6049607c81565b60405190815260200160405180910390f35b604960a48156fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + 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\x10`=W`\x005`\xE0\x1C\x80c7\xEBO\xA3\x14`BW\x80c\xB0\xE5Z\xFD\x14`[W[`\0\x80\xFD[`I`|\x81V[`@Q\x90\x81R` \x01`@Q\x80\x91\x03\x90\xF3[`I`\xA4\x81V\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `PERMISSIONED_ARGS_LENGTH()` and selector `0xb0e55afd`. +```solidity +function PERMISSIONED_ARGS_LENGTH() external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct PERMISSIONED_ARGS_LENGTHCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`PERMISSIONED_ARGS_LENGTH()`](PERMISSIONED_ARGS_LENGTHCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct PERMISSIONED_ARGS_LENGTHReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: PERMISSIONED_ARGS_LENGTHCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for PERMISSIONED_ARGS_LENGTHCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: PERMISSIONED_ARGS_LENGTHReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for PERMISSIONED_ARGS_LENGTHReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for PERMISSIONED_ARGS_LENGTHCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "PERMISSIONED_ARGS_LENGTH()"; + const SELECTOR: [u8; 4] = [176u8, 229u8, 90u8, 253u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: PERMISSIONED_ARGS_LENGTHReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: PERMISSIONED_ARGS_LENGTHReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `PERMISSIONLESS_ARGS_LENGTH()` and selector `0x37eb4fa3`. +```solidity +function PERMISSIONLESS_ARGS_LENGTH() external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct PERMISSIONLESS_ARGS_LENGTHCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`PERMISSIONLESS_ARGS_LENGTH()`](PERMISSIONLESS_ARGS_LENGTHCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct PERMISSIONLESS_ARGS_LENGTHReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: PERMISSIONLESS_ARGS_LENGTHCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for PERMISSIONLESS_ARGS_LENGTHCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: PERMISSIONLESS_ARGS_LENGTHReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for PERMISSIONLESS_ARGS_LENGTHReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for PERMISSIONLESS_ARGS_LENGTHCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "PERMISSIONLESS_ARGS_LENGTH()"; + const SELECTOR: [u8; 4] = [55u8, 235u8, 79u8, 163u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: PERMISSIONLESS_ARGS_LENGTHReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: PERMISSIONLESS_ARGS_LENGTHReturn = r.into(); + r._0 + }) + } + } + }; + ///Container for all the [`LibGameArgs`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum LibGameArgsCalls { + #[allow(missing_docs)] + PERMISSIONED_ARGS_LENGTH(PERMISSIONED_ARGS_LENGTHCall), + #[allow(missing_docs)] + PERMISSIONLESS_ARGS_LENGTH(PERMISSIONLESS_ARGS_LENGTHCall), + } + impl LibGameArgsCalls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [55u8, 235u8, 79u8, 163u8], + [176u8, 229u8, 90u8, 253u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(PERMISSIONLESS_ARGS_LENGTH), + ::core::stringify!(PERMISSIONED_ARGS_LENGTH), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for LibGameArgsCalls { + const NAME: &'static str = "LibGameArgsCalls"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 2usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::PERMISSIONED_ARGS_LENGTH(_) => { + ::SELECTOR + } + Self::PERMISSIONLESS_ARGS_LENGTH(_) => { + ::SELECTOR + } + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn PERMISSIONLESS_ARGS_LENGTH( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(LibGameArgsCalls::PERMISSIONLESS_ARGS_LENGTH) + } + PERMISSIONLESS_ARGS_LENGTH + }, + { + fn PERMISSIONED_ARGS_LENGTH( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(LibGameArgsCalls::PERMISSIONED_ARGS_LENGTH) + } + PERMISSIONED_ARGS_LENGTH + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn PERMISSIONLESS_ARGS_LENGTH( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(LibGameArgsCalls::PERMISSIONLESS_ARGS_LENGTH) + } + PERMISSIONLESS_ARGS_LENGTH + }, + { + fn PERMISSIONED_ARGS_LENGTH( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(LibGameArgsCalls::PERMISSIONED_ARGS_LENGTH) + } + PERMISSIONED_ARGS_LENGTH + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::PERMISSIONED_ARGS_LENGTH(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::PERMISSIONLESS_ARGS_LENGTH(inner) => { + ::abi_encoded_size( + inner, + ) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::PERMISSIONED_ARGS_LENGTH(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::PERMISSIONLESS_ARGS_LENGTH(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`LibGameArgs`](self) contract instance. + +See the [wrapper's documentation](`LibGameArgsInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> LibGameArgsInstance { + LibGameArgsInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + LibGameArgsInstance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + LibGameArgsInstance::::deploy_builder(__provider) + } + /**A [`LibGameArgs`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`LibGameArgs`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct LibGameArgsInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for LibGameArgsInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("LibGameArgsInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > LibGameArgsInstance { + /**Creates a new wrapper around an on-chain [`LibGameArgs`](self) contract instance. + +See the [wrapper's documentation](`LibGameArgsInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl LibGameArgsInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> LibGameArgsInstance { + LibGameArgsInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > LibGameArgsInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`PERMISSIONED_ARGS_LENGTH`] function. + pub fn PERMISSIONED_ARGS_LENGTH( + &self, + ) -> alloy_contract::SolCallBuilder<&P, PERMISSIONED_ARGS_LENGTHCall, N> { + self.call_builder(&PERMISSIONED_ARGS_LENGTHCall) + } + ///Creates a new call builder for the [`PERMISSIONLESS_ARGS_LENGTH`] function. + pub fn PERMISSIONLESS_ARGS_LENGTH( + &self, + ) -> alloy_contract::SolCallBuilder<&P, PERMISSIONLESS_ARGS_LENGTHCall, N> { + self.call_builder(&PERMISSIONLESS_ARGS_LENGTHCall) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > LibGameArgsInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + } +} diff --git a/bindings/rust/src/lib_position.rs b/bindings/rust/src/lib_position.rs new file mode 100644 index 000000000..fdc5addd4 --- /dev/null +++ b/bindings/rust/src/lib_position.rs @@ -0,0 +1,215 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface LibPosition {} +``` + +...which was generated by the following JSON ABI: +```json +[] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod LibPosition { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`-`7`\x0B\x82\x82\x829\x80Q`\0\x1A`s\x14`*WcNH{q`\xE0\x1B`\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`\0\x80\xFD\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + 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`\0\x80\xFD\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`LibPosition`](self) contract instance. + +See the [wrapper's documentation](`LibPositionInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> LibPositionInstance { + LibPositionInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + LibPositionInstance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + LibPositionInstance::::deploy_builder(__provider) + } + /**A [`LibPosition`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`LibPosition`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct LibPositionInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for LibPositionInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("LibPositionInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > LibPositionInstance { + /**Creates a new wrapper around an on-chain [`LibPosition`](self) contract instance. + +See the [wrapper's documentation](`LibPositionInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl LibPositionInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> LibPositionInstance { + LibPositionInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > LibPositionInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > LibPositionInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + } +} diff --git a/bindings/rust/src/liquidity_controller.rs b/bindings/rust/src/liquidity_controller.rs new file mode 100644 index 000000000..b345f00ca --- /dev/null +++ b/bindings/rust/src/liquidity_controller.rs @@ -0,0 +1,4159 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface LiquidityController { + error LiquidityController_Unauthorized(); + + event Initialized(uint8 version); + event LiquidityBurned(address indexed minter, uint256 amount); + event LiquidityMinted(address indexed minter, address indexed to, uint256 amount); + event MinterAuthorized(address indexed minter); + event MinterDeauthorized(address indexed minter); + event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); + + constructor(); + + function authorizeMinter(address _minter) external; + function burn() external payable; + function deauthorizeMinter(address _minter) external; + function gasPayingTokenName() external view returns (string memory); + function gasPayingTokenSymbol() external view returns (string memory); + function initialize(address _owner, string memory _gasPayingTokenName, string memory _gasPayingTokenSymbol) external; + function mint(address _to, uint256 _amount) external; + function minters(address) external view returns (bool); + function owner() external view returns (address); + function renounceOwnership() external; + function transferOwnership(address newOwner) external; + function version() external view returns (string memory); +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "constructor", + "inputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "authorizeMinter", + "inputs": [ + { + "name": "_minter", + "type": "address", + "internalType": "address" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "burn", + "inputs": [], + "outputs": [], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "deauthorizeMinter", + "inputs": [ + { + "name": "_minter", + "type": "address", + "internalType": "address" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "gasPayingTokenName", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "gasPayingTokenSymbol", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "initialize", + "inputs": [ + { + "name": "_owner", + "type": "address", + "internalType": "address" + }, + { + "name": "_gasPayingTokenName", + "type": "string", + "internalType": "string" + }, + { + "name": "_gasPayingTokenSymbol", + "type": "string", + "internalType": "string" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "mint", + "inputs": [ + { + "name": "_to", + "type": "address", + "internalType": "address" + }, + { + "name": "_amount", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "minters", + "inputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "owner", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "renounceOwnership", + "inputs": [], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "transferOwnership", + "inputs": [ + { + "name": "newOwner", + "type": "address", + "internalType": "address" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "version", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "view" + }, + { + "type": "event", + "name": "Initialized", + "inputs": [ + { + "name": "version", + "type": "uint8", + "indexed": false, + "internalType": "uint8" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "LiquidityBurned", + "inputs": [ + { + "name": "minter", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "LiquidityMinted", + "inputs": [ + { + "name": "minter", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "to", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "MinterAuthorized", + "inputs": [ + { + "name": "minter", + "type": "address", + "indexed": true, + "internalType": "address" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "MinterDeauthorized", + "inputs": [ + { + "name": "minter", + "type": "address", + "indexed": true, + "internalType": "address" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "OwnershipTransferred", + "inputs": [ + { + "name": "previousOwner", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "newOwner", + "type": "address", + "indexed": true, + "internalType": "address" + } + ], + "anonymous": false + }, + { + "type": "error", + "name": "LiquidityController_Unauthorized", + "inputs": [] + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod LiquidityController { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x608060405234801561001057600080fd5b5061001961001e565b6100de565b600054610100900460ff161561008a5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811610156100dc576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b610f95806100ed6000396000f3fe6080604052600436106100c75760003560e01c80638da5cb5b11610074578063d84447151161004e578063d844471514610214578063f2fde38b14610229578063f46eccc41461024957600080fd5b80638da5cb5b1461019f57806390657147146101d4578063c6f69fbb146101f457600080fd5b806354fd4d50116100a557806354fd4d5014610116578063550fcdc914610175578063715018a61461018a57600080fd5b80630c984832146100cc57806340c10f19146100ee57806344df8e701461010e575b600080fd5b3480156100d857600080fd5b506100ec6100e7366004610b66565b610289565b005b3480156100fa57600080fd5b506100ec610109366004610b88565b610308565b6100ec61046a565b34801561012257600080fd5b5061015f6040518060400160405280600581526020017f312e302e3000000000000000000000000000000000000000000000000000000081525081565b60405161016c9190610bb2565b60405180910390f35b34801561018157600080fd5b5061015f610560565b34801561019657600080fd5b506100ec6105ee565b3480156101ab57600080fd5b5060335460405173ffffffffffffffffffffffffffffffffffffffff909116815260200161016c565b3480156101e057600080fd5b506100ec6101ef366004610cff565b610602565b34801561020057600080fd5b506100ec61020f366004610b66565b6107bf565b34801561022057600080fd5b5061015f61083b565b34801561023557600080fd5b506100ec610244366004610b66565b610848565b34801561025557600080fd5b50610279610264366004610b66565b60656020526000908152604090205460ff1681565b604051901515815260200161016c565b6102916108ff565b73ffffffffffffffffffffffffffffffffffffffff811660008181526065602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055517f83b05b6735acd4b85e3bded8e72c851d1a87718f81e3c8e6f0c9d9a2baa88e469190a250565b3360009081526065602052604090205460ff16610351576040517f5fbc4ede00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f2e1a7d4d0000000000000000000000000000000000000000000000000000000081526004810182905273420000000000000000000000000000000000002990632e1a7d4d90602401600060405180830381600087803b1580156103b757600080fd5b505af11580156103cb573d6000803e3d6000fd5b5050505080826040516103dd90610b31565b73ffffffffffffffffffffffffffffffffffffffff90911681526020016040518091039082f0905080158015610417573d6000803e3d6000fd5b505060405181815273ffffffffffffffffffffffffffffffffffffffff83169033907fec89d80a36947288037745287dde87d62cd8c141d5323130b3d26d97d84004c79060200160405180910390a35050565b3360009081526065602052604090205460ff166104b3576040517f5fbc4ede00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73420000000000000000000000000000000000002973ffffffffffffffffffffffffffffffffffffffff1663d0e30db0346040518263ffffffff1660e01b81526004016000604051808303818588803b15801561050f57600080fd5b505af1158015610523573d6000803e3d6000fd5b50506040513481523393507f875e07afd7ce17c6531b1a6b7b34829dcd8b7e6639448afbd6a8e29fa1422b829250602001905060405180910390a2565b6067805461056d90610d73565b80601f016020809104026020016040519081016040528092919081815260200182805461059990610d73565b80156105e65780601f106105bb576101008083540402835291602001916105e6565b820191906000526020600020905b8154815290600101906020018083116105c957829003601f168201915b505050505081565b6105f66108ff565b6106006000610980565b565b600054610100900460ff16158080156106225750600054600160ff909116105b8061063c5750303b15801561063c575060005460ff166001145b6106cd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084015b60405180910390fd5b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561072b57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6107336109f7565b61073c84610848565b60666107488482610e15565b5060676107558382610e15565b5080156107b957600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b6107c76108ff565b73ffffffffffffffffffffffffffffffffffffffff811660008181526065602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055517fdf6bf03dfab5b4ccec3ba95544b98d7ecc9d4b9293d8673e86cb6edb5ac0cb629190a250565b6066805461056d90610d73565b6108506108ff565b73ffffffffffffffffffffffffffffffffffffffff81166108f3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016106c4565b6108fc81610980565b50565b60335473ffffffffffffffffffffffffffffffffffffffff163314610600576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106c4565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff16610a8e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016106c4565b610600600054610100900460ff16610b28576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016106c4565b61060033610980565b605980610f3083390190565b803573ffffffffffffffffffffffffffffffffffffffff81168114610b6157600080fd5b919050565b600060208284031215610b7857600080fd5b610b8182610b3d565b9392505050565b60008060408385031215610b9b57600080fd5b610ba483610b3d565b946020939093013593505050565b600060208083528351808285015260005b81811015610bdf57858101830151858201604001528201610bc3565b81811115610bf1576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f830112610c6557600080fd5b813567ffffffffffffffff80821115610c8057610c80610c25565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908282118183101715610cc657610cc6610c25565b81604052838152866020858801011115610cdf57600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600060608486031215610d1457600080fd5b610d1d84610b3d565b9250602084013567ffffffffffffffff80821115610d3a57600080fd5b610d4687838801610c54565b93506040860135915080821115610d5c57600080fd5b50610d6986828701610c54565b9150509250925092565b600181811c90821680610d8757607f821691505b602082108103610dc0577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b601f821115610e1057600081815260208120601f850160051c81016020861015610ded5750805b601f850160051c820191505b81811015610e0c57828155600101610df9565b5050505b505050565b815167ffffffffffffffff811115610e2f57610e2f610c25565b610e4381610e3d8454610d73565b84610dc6565b602080601f831160018114610e965760008415610e605750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555610e0c565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b82811015610ee357888601518255948401946001909101908401610ec4565b5085821015610f1f57878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b0190555056fe608060405260405160593803806059833981016040819052601e91602a565b806001600160a01b0316ff5b600060208284031215603b57600080fd5b81516001600160a01b0381168114605157600080fd5b939250505056fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[Pa\0\x19a\0\x1EV[a\0\xDEV[`\0Ta\x01\0\x90\x04`\xFF\x16\x15a\0\x8AW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`'`$\x82\x01R\x7FInitializable: contract is initi`D\x82\x01Rfalizing`\xC8\x1B`d\x82\x01R`\x84\x01`@Q\x80\x91\x03\x90\xFD[`\0T`\xFF\x90\x81\x16\x10\x15a\0\xDCW`\0\x80T`\xFF\x19\x16`\xFF\x90\x81\x17\x90\x91U`@Q\x90\x81R\x7F\x7F&\xB8?\xF9n\x1F+jh/\x138R\xF6y\x8A\t\xC4e\xDA\x95\x92\x14`\xCE\xFB8G@$\x98\x90` \x01`@Q\x80\x91\x03\x90\xA1[V[a\x0F\x95\x80a\0\xED`\09`\0\xF3\xFE`\x80`@R`\x046\x10a\0\xC7W`\x005`\xE0\x1C\x80c\x8D\xA5\xCB[\x11a\0tW\x80c\xD8DG\x15\x11a\0NW\x80c\xD8DG\x15\x14a\x02\x14W\x80c\xF2\xFD\xE3\x8B\x14a\x02)W\x80c\xF4n\xCC\xC4\x14a\x02IW`\0\x80\xFD[\x80c\x8D\xA5\xCB[\x14a\x01\x9FW\x80c\x90eqG\x14a\x01\xD4W\x80c\xC6\xF6\x9F\xBB\x14a\x01\xF4W`\0\x80\xFD[\x80cT\xFDMP\x11a\0\xA5W\x80cT\xFDMP\x14a\x01\x16W\x80cU\x0F\xCD\xC9\x14a\x01uW\x80cqP\x18\xA6\x14a\x01\x8AW`\0\x80\xFD[\x80c\x0C\x98H2\x14a\0\xCCW\x80c@\xC1\x0F\x19\x14a\0\xEEW\x80cD\xDF\x8Ep\x14a\x01\x0EW[`\0\x80\xFD[4\x80\x15a\0\xD8W`\0\x80\xFD[Pa\0\xECa\0\xE76`\x04a\x0BfV[a\x02\x89V[\0[4\x80\x15a\0\xFAW`\0\x80\xFD[Pa\0\xECa\x01\t6`\x04a\x0B\x88V[a\x03\x08V[a\0\xECa\x04jV[4\x80\x15a\x01\"W`\0\x80\xFD[Pa\x01_`@Q\x80`@\x01`@R\x80`\x05\x81R` \x01\x7F1.0.0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RP\x81V[`@Qa\x01l\x91\x90a\x0B\xB2V[`@Q\x80\x91\x03\x90\xF3[4\x80\x15a\x01\x81W`\0\x80\xFD[Pa\x01_a\x05`V[4\x80\x15a\x01\x96W`\0\x80\xFD[Pa\0\xECa\x05\xEEV[4\x80\x15a\x01\xABW`\0\x80\xFD[P`3T`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01a\x01lV[4\x80\x15a\x01\xE0W`\0\x80\xFD[Pa\0\xECa\x01\xEF6`\x04a\x0C\xFFV[a\x06\x02V[4\x80\x15a\x02\0W`\0\x80\xFD[Pa\0\xECa\x02\x0F6`\x04a\x0BfV[a\x07\xBFV[4\x80\x15a\x02 W`\0\x80\xFD[Pa\x01_a\x08;V[4\x80\x15a\x025W`\0\x80\xFD[Pa\0\xECa\x02D6`\x04a\x0BfV[a\x08HV[4\x80\x15a\x02UW`\0\x80\xFD[Pa\x02ya\x02d6`\x04a\x0BfV[`e` R`\0\x90\x81R`@\x90 T`\xFF\x16\x81V[`@Q\x90\x15\x15\x81R` \x01a\x01lV[a\x02\x91a\x08\xFFV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16`\0\x81\x81R`e` R`@\x80\x82 \x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x16`\x01\x17\x90UQ\x7F\x83\xB0[g5\xAC\xD4\xB8^;\xDE\xD8\xE7,\x85\x1D\x1A\x87q\x8F\x81\xE3\xC8\xE6\xF0\xC9\xD9\xA2\xBA\xA8\x8EF\x91\x90\xA2PV[3`\0\x90\x81R`e` R`@\x90 T`\xFF\x16a\x03QW`@Q\x7F_\xBCN\xDE\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\x01`@Q\x80\x91\x03\x90\xFD[`@Q\x7F.\x1A}M\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\x81\x01\x82\x90RsB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0)\x90c.\x1A}M\x90`$\x01`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a\x03\xB7W`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x03\xCBW=`\0\x80>=`\0\xFD[PPPP\x80\x82`@Qa\x03\xDD\x90a\x0B1V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01`@Q\x80\x91\x03\x90\x82\xF0\x90P\x80\x15\x80\x15a\x04\x17W=`\0\x80>=`\0\xFD[PP`@Q\x81\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x16\x903\x90\x7F\xEC\x89\xD8\n6\x94r\x88\x03wE(}\xDE\x87\xD6,\xD8\xC1A\xD5210\xB3\xD2m\x97\xD8@\x04\xC7\x90` \x01`@Q\x80\x91\x03\x90\xA3PPV[3`\0\x90\x81R`e` R`@\x90 T`\xFF\x16a\x04\xB3W`@Q\x7F_\xBCN\xDE\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\x01`@Q\x80\x91\x03\x90\xFD[sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0)s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xD0\xE3\r\xB04`@Q\x82c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01`\0`@Q\x80\x83\x03\x81\x85\x88\x80;\x15\x80\x15a\x05\x0FW`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x05#W=`\0\x80>=`\0\xFD[PP`@Q4\x81R3\x93P\x7F\x87^\x07\xAF\xD7\xCE\x17\xC6S\x1B\x1Ak{4\x82\x9D\xCD\x8B~f9D\x8A\xFB\xD6\xA8\xE2\x9F\xA1B+\x82\x92P` \x01\x90P`@Q\x80\x91\x03\x90\xA2V[`g\x80Ta\x05m\x90a\rsV[\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x92\x91\x90\x81\x81R` \x01\x82\x80Ta\x05\x99\x90a\rsV[\x80\x15a\x05\xE6W\x80`\x1F\x10a\x05\xBBWa\x01\0\x80\x83T\x04\x02\x83R\x91` \x01\x91a\x05\xE6V[\x82\x01\x91\x90`\0R` `\0 \x90[\x81T\x81R\x90`\x01\x01\x90` \x01\x80\x83\x11a\x05\xC9W\x82\x90\x03`\x1F\x16\x82\x01\x91[PPPPP\x81V[a\x05\xF6a\x08\xFFV[a\x06\0`\0a\t\x80V[V[`\0Ta\x01\0\x90\x04`\xFF\x16\x15\x80\x80\x15a\x06\"WP`\0T`\x01`\xFF\x90\x91\x16\x10[\x80a\x06\x86\xCBn\xDBZ\xC0\xCBb\x91\x90\xA2PV[`f\x80Ta\x05m\x90a\rsV[a\x08Pa\x08\xFFV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16a\x08\xF3W`@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\x82\x01R`&`$\x82\x01R\x7FOwnable: new owner is the zero a`D\x82\x01R\x7Fddress\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`d\x82\x01R`\x84\x01a\x06\xC4V[a\x08\xFC\x81a\t\x80V[PV[`3Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x163\x14a\x06\0W`@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\x82\x01\x81\x90R`$\x82\x01R\x7FOwnable: caller is not the owner`D\x82\x01R`d\x01a\x06\xC4V[`3\x80Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x81\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x83\x16\x81\x17\x90\x93U`@Q\x91\x16\x91\x90\x82\x90\x7F\x8B\xE0\x07\x9CS\x16Y\x14\x13D\xCD\x1F\xD0\xA4\xF2\x84\x19I\x7F\x97\"\xA3\xDA\xAF\xE3\xB4\x18okdW\xE0\x90`\0\x90\xA3PPV[`\0Ta\x01\0\x90\x04`\xFF\x16a\n\x8EW`@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\x82\x01R`+`$\x82\x01R\x7FInitializable: contract is not i`D\x82\x01R\x7Fnitializing\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x06\xC4V[a\x06\0`\0Ta\x01\0\x90\x04`\xFF\x16a\x0B(W`@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\x82\x01R`+`$\x82\x01R\x7FInitializable: contract is not i`D\x82\x01R\x7Fnitializing\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x06\xC4V[a\x06\x003a\t\x80V[`Y\x80a\x0F0\x839\x01\x90V[\x805s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x0BaW`\0\x80\xFD[\x91\x90PV[`\0` \x82\x84\x03\x12\x15a\x0BxW`\0\x80\xFD[a\x0B\x81\x82a\x0B=V[\x93\x92PPPV[`\0\x80`@\x83\x85\x03\x12\x15a\x0B\x9BW`\0\x80\xFD[a\x0B\xA4\x83a\x0B=V[\x94` \x93\x90\x93\x015\x93PPPV[`\0` \x80\x83R\x83Q\x80\x82\x85\x01R`\0[\x81\x81\x10\x15a\x0B\xDFW\x85\x81\x01\x83\x01Q\x85\x82\x01`@\x01R\x82\x01a\x0B\xC3V[\x81\x81\x11\x15a\x0B\xF1W`\0`@\x83\x87\x01\x01R[P`\x1F\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x92\x90\x92\x01`@\x01\x93\x92PPPV[\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[`\0\x82`\x1F\x83\x01\x12a\x0CeW`\0\x80\xFD[\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x0C\x80Wa\x0C\x80a\x0C%V[`@Q`\x1F\x83\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x90\x81\x16`?\x01\x16\x81\x01\x90\x82\x82\x11\x81\x83\x10\x17\x15a\x0C\xC6Wa\x0C\xC6a\x0C%V[\x81`@R\x83\x81R\x86` \x85\x88\x01\x01\x11\x15a\x0C\xDFW`\0\x80\xFD[\x83` \x87\x01` \x83\x017`\0` \x85\x83\x01\x01R\x80\x94PPPPP\x92\x91PPV[`\0\x80`\0``\x84\x86\x03\x12\x15a\r\x14W`\0\x80\xFD[a\r\x1D\x84a\x0B=V[\x92P` \x84\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\r:W`\0\x80\xFD[a\rF\x87\x83\x88\x01a\x0CTV[\x93P`@\x86\x015\x91P\x80\x82\x11\x15a\r\\W`\0\x80\xFD[Pa\ri\x86\x82\x87\x01a\x0CTV[\x91PP\x92P\x92P\x92V[`\x01\x81\x81\x1C\x90\x82\x16\x80a\r\x87W`\x7F\x82\x16\x91P[` \x82\x10\x81\x03a\r\xC0W\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`\"`\x04R`$`\0\xFD[P\x91\x90PV[`\x1F\x82\x11\x15a\x0E\x10W`\0\x81\x81R` \x81 `\x1F\x85\x01`\x05\x1C\x81\x01` \x86\x10\x15a\r\xEDWP\x80[`\x1F\x85\x01`\x05\x1C\x82\x01\x91P[\x81\x81\x10\x15a\x0E\x0CW\x82\x81U`\x01\x01a\r\xF9V[PPP[PPPV[\x81Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x0E/Wa\x0E/a\x0C%V[a\x0EC\x81a\x0E=\x84Ta\rsV[\x84a\r\xC6V[` \x80`\x1F\x83\x11`\x01\x81\x14a\x0E\x96W`\0\x84\x15a\x0E`WP\x85\x83\x01Q[\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF`\x03\x86\x90\x1B\x1C\x19\x16`\x01\x85\x90\x1B\x17\x85Ua\x0E\x0CV[`\0\x85\x81R` \x81 \x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x86\x16\x91[\x82\x81\x10\x15a\x0E\xE3W\x88\x86\x01Q\x82U\x94\x84\x01\x94`\x01\x90\x91\x01\x90\x84\x01a\x0E\xC4V[P\x85\x82\x10\x15a\x0F\x1FW\x87\x85\x01Q\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF`\x03\x88\x90\x1B`\xF8\x16\x1C\x19\x16\x81U[PPPPP`\x01\x90\x81\x1B\x01\x90UPV\xFE`\x80`@R`@Q`Y8\x03\x80`Y\x839\x81\x01`@\x81\x90R`\x1E\x91`*V[\x80`\x01`\x01`\xA0\x1B\x03\x16\xFF[`\0` \x82\x84\x03\x12\x15`;W`\0\x80\xFD[\x81Q`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14`QW`\0\x80\xFD[\x93\x92PPPV\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x6080604052600436106100c75760003560e01c80638da5cb5b11610074578063d84447151161004e578063d844471514610214578063f2fde38b14610229578063f46eccc41461024957600080fd5b80638da5cb5b1461019f57806390657147146101d4578063c6f69fbb146101f457600080fd5b806354fd4d50116100a557806354fd4d5014610116578063550fcdc914610175578063715018a61461018a57600080fd5b80630c984832146100cc57806340c10f19146100ee57806344df8e701461010e575b600080fd5b3480156100d857600080fd5b506100ec6100e7366004610b66565b610289565b005b3480156100fa57600080fd5b506100ec610109366004610b88565b610308565b6100ec61046a565b34801561012257600080fd5b5061015f6040518060400160405280600581526020017f312e302e3000000000000000000000000000000000000000000000000000000081525081565b60405161016c9190610bb2565b60405180910390f35b34801561018157600080fd5b5061015f610560565b34801561019657600080fd5b506100ec6105ee565b3480156101ab57600080fd5b5060335460405173ffffffffffffffffffffffffffffffffffffffff909116815260200161016c565b3480156101e057600080fd5b506100ec6101ef366004610cff565b610602565b34801561020057600080fd5b506100ec61020f366004610b66565b6107bf565b34801561022057600080fd5b5061015f61083b565b34801561023557600080fd5b506100ec610244366004610b66565b610848565b34801561025557600080fd5b50610279610264366004610b66565b60656020526000908152604090205460ff1681565b604051901515815260200161016c565b6102916108ff565b73ffffffffffffffffffffffffffffffffffffffff811660008181526065602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055517f83b05b6735acd4b85e3bded8e72c851d1a87718f81e3c8e6f0c9d9a2baa88e469190a250565b3360009081526065602052604090205460ff16610351576040517f5fbc4ede00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f2e1a7d4d0000000000000000000000000000000000000000000000000000000081526004810182905273420000000000000000000000000000000000002990632e1a7d4d90602401600060405180830381600087803b1580156103b757600080fd5b505af11580156103cb573d6000803e3d6000fd5b5050505080826040516103dd90610b31565b73ffffffffffffffffffffffffffffffffffffffff90911681526020016040518091039082f0905080158015610417573d6000803e3d6000fd5b505060405181815273ffffffffffffffffffffffffffffffffffffffff83169033907fec89d80a36947288037745287dde87d62cd8c141d5323130b3d26d97d84004c79060200160405180910390a35050565b3360009081526065602052604090205460ff166104b3576040517f5fbc4ede00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73420000000000000000000000000000000000002973ffffffffffffffffffffffffffffffffffffffff1663d0e30db0346040518263ffffffff1660e01b81526004016000604051808303818588803b15801561050f57600080fd5b505af1158015610523573d6000803e3d6000fd5b50506040513481523393507f875e07afd7ce17c6531b1a6b7b34829dcd8b7e6639448afbd6a8e29fa1422b829250602001905060405180910390a2565b6067805461056d90610d73565b80601f016020809104026020016040519081016040528092919081815260200182805461059990610d73565b80156105e65780601f106105bb576101008083540402835291602001916105e6565b820191906000526020600020905b8154815290600101906020018083116105c957829003601f168201915b505050505081565b6105f66108ff565b6106006000610980565b565b600054610100900460ff16158080156106225750600054600160ff909116105b8061063c5750303b15801561063c575060005460ff166001145b6106cd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084015b60405180910390fd5b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561072b57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6107336109f7565b61073c84610848565b60666107488482610e15565b5060676107558382610e15565b5080156107b957600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b6107c76108ff565b73ffffffffffffffffffffffffffffffffffffffff811660008181526065602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055517fdf6bf03dfab5b4ccec3ba95544b98d7ecc9d4b9293d8673e86cb6edb5ac0cb629190a250565b6066805461056d90610d73565b6108506108ff565b73ffffffffffffffffffffffffffffffffffffffff81166108f3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016106c4565b6108fc81610980565b50565b60335473ffffffffffffffffffffffffffffffffffffffff163314610600576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106c4565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff16610a8e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016106c4565b610600600054610100900460ff16610b28576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016106c4565b61060033610980565b605980610f3083390190565b803573ffffffffffffffffffffffffffffffffffffffff81168114610b6157600080fd5b919050565b600060208284031215610b7857600080fd5b610b8182610b3d565b9392505050565b60008060408385031215610b9b57600080fd5b610ba483610b3d565b946020939093013593505050565b600060208083528351808285015260005b81811015610bdf57858101830151858201604001528201610bc3565b81811115610bf1576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f830112610c6557600080fd5b813567ffffffffffffffff80821115610c8057610c80610c25565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908282118183101715610cc657610cc6610c25565b81604052838152866020858801011115610cdf57600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600060608486031215610d1457600080fd5b610d1d84610b3d565b9250602084013567ffffffffffffffff80821115610d3a57600080fd5b610d4687838801610c54565b93506040860135915080821115610d5c57600080fd5b50610d6986828701610c54565b9150509250925092565b600181811c90821680610d8757607f821691505b602082108103610dc0577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b601f821115610e1057600081815260208120601f850160051c81016020861015610ded5750805b601f850160051c820191505b81811015610e0c57828155600101610df9565b5050505b505050565b815167ffffffffffffffff811115610e2f57610e2f610c25565b610e4381610e3d8454610d73565b84610dc6565b602080601f831160018114610e965760008415610e605750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555610e0c565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b82811015610ee357888601518255948401946001909101908401610ec4565b5085821015610f1f57878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b0190555056fe608060405260405160593803806059833981016040819052601e91602a565b806001600160a01b0316ff5b600060208284031215603b57600080fd5b81516001600160a01b0381168114605157600080fd5b939250505056fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R`\x046\x10a\0\xC7W`\x005`\xE0\x1C\x80c\x8D\xA5\xCB[\x11a\0tW\x80c\xD8DG\x15\x11a\0NW\x80c\xD8DG\x15\x14a\x02\x14W\x80c\xF2\xFD\xE3\x8B\x14a\x02)W\x80c\xF4n\xCC\xC4\x14a\x02IW`\0\x80\xFD[\x80c\x8D\xA5\xCB[\x14a\x01\x9FW\x80c\x90eqG\x14a\x01\xD4W\x80c\xC6\xF6\x9F\xBB\x14a\x01\xF4W`\0\x80\xFD[\x80cT\xFDMP\x11a\0\xA5W\x80cT\xFDMP\x14a\x01\x16W\x80cU\x0F\xCD\xC9\x14a\x01uW\x80cqP\x18\xA6\x14a\x01\x8AW`\0\x80\xFD[\x80c\x0C\x98H2\x14a\0\xCCW\x80c@\xC1\x0F\x19\x14a\0\xEEW\x80cD\xDF\x8Ep\x14a\x01\x0EW[`\0\x80\xFD[4\x80\x15a\0\xD8W`\0\x80\xFD[Pa\0\xECa\0\xE76`\x04a\x0BfV[a\x02\x89V[\0[4\x80\x15a\0\xFAW`\0\x80\xFD[Pa\0\xECa\x01\t6`\x04a\x0B\x88V[a\x03\x08V[a\0\xECa\x04jV[4\x80\x15a\x01\"W`\0\x80\xFD[Pa\x01_`@Q\x80`@\x01`@R\x80`\x05\x81R` \x01\x7F1.0.0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RP\x81V[`@Qa\x01l\x91\x90a\x0B\xB2V[`@Q\x80\x91\x03\x90\xF3[4\x80\x15a\x01\x81W`\0\x80\xFD[Pa\x01_a\x05`V[4\x80\x15a\x01\x96W`\0\x80\xFD[Pa\0\xECa\x05\xEEV[4\x80\x15a\x01\xABW`\0\x80\xFD[P`3T`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01a\x01lV[4\x80\x15a\x01\xE0W`\0\x80\xFD[Pa\0\xECa\x01\xEF6`\x04a\x0C\xFFV[a\x06\x02V[4\x80\x15a\x02\0W`\0\x80\xFD[Pa\0\xECa\x02\x0F6`\x04a\x0BfV[a\x07\xBFV[4\x80\x15a\x02 W`\0\x80\xFD[Pa\x01_a\x08;V[4\x80\x15a\x025W`\0\x80\xFD[Pa\0\xECa\x02D6`\x04a\x0BfV[a\x08HV[4\x80\x15a\x02UW`\0\x80\xFD[Pa\x02ya\x02d6`\x04a\x0BfV[`e` R`\0\x90\x81R`@\x90 T`\xFF\x16\x81V[`@Q\x90\x15\x15\x81R` \x01a\x01lV[a\x02\x91a\x08\xFFV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16`\0\x81\x81R`e` R`@\x80\x82 \x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x16`\x01\x17\x90UQ\x7F\x83\xB0[g5\xAC\xD4\xB8^;\xDE\xD8\xE7,\x85\x1D\x1A\x87q\x8F\x81\xE3\xC8\xE6\xF0\xC9\xD9\xA2\xBA\xA8\x8EF\x91\x90\xA2PV[3`\0\x90\x81R`e` R`@\x90 T`\xFF\x16a\x03QW`@Q\x7F_\xBCN\xDE\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\x01`@Q\x80\x91\x03\x90\xFD[`@Q\x7F.\x1A}M\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\x81\x01\x82\x90RsB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0)\x90c.\x1A}M\x90`$\x01`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a\x03\xB7W`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x03\xCBW=`\0\x80>=`\0\xFD[PPPP\x80\x82`@Qa\x03\xDD\x90a\x0B1V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01`@Q\x80\x91\x03\x90\x82\xF0\x90P\x80\x15\x80\x15a\x04\x17W=`\0\x80>=`\0\xFD[PP`@Q\x81\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x16\x903\x90\x7F\xEC\x89\xD8\n6\x94r\x88\x03wE(}\xDE\x87\xD6,\xD8\xC1A\xD5210\xB3\xD2m\x97\xD8@\x04\xC7\x90` \x01`@Q\x80\x91\x03\x90\xA3PPV[3`\0\x90\x81R`e` R`@\x90 T`\xFF\x16a\x04\xB3W`@Q\x7F_\xBCN\xDE\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\x01`@Q\x80\x91\x03\x90\xFD[sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0)s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xD0\xE3\r\xB04`@Q\x82c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01`\0`@Q\x80\x83\x03\x81\x85\x88\x80;\x15\x80\x15a\x05\x0FW`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x05#W=`\0\x80>=`\0\xFD[PP`@Q4\x81R3\x93P\x7F\x87^\x07\xAF\xD7\xCE\x17\xC6S\x1B\x1Ak{4\x82\x9D\xCD\x8B~f9D\x8A\xFB\xD6\xA8\xE2\x9F\xA1B+\x82\x92P` \x01\x90P`@Q\x80\x91\x03\x90\xA2V[`g\x80Ta\x05m\x90a\rsV[\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x92\x91\x90\x81\x81R` \x01\x82\x80Ta\x05\x99\x90a\rsV[\x80\x15a\x05\xE6W\x80`\x1F\x10a\x05\xBBWa\x01\0\x80\x83T\x04\x02\x83R\x91` \x01\x91a\x05\xE6V[\x82\x01\x91\x90`\0R` `\0 \x90[\x81T\x81R\x90`\x01\x01\x90` \x01\x80\x83\x11a\x05\xC9W\x82\x90\x03`\x1F\x16\x82\x01\x91[PPPPP\x81V[a\x05\xF6a\x08\xFFV[a\x06\0`\0a\t\x80V[V[`\0Ta\x01\0\x90\x04`\xFF\x16\x15\x80\x80\x15a\x06\"WP`\0T`\x01`\xFF\x90\x91\x16\x10[\x80a\x06\x86\xCBn\xDBZ\xC0\xCBb\x91\x90\xA2PV[`f\x80Ta\x05m\x90a\rsV[a\x08Pa\x08\xFFV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16a\x08\xF3W`@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\x82\x01R`&`$\x82\x01R\x7FOwnable: new owner is the zero a`D\x82\x01R\x7Fddress\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`d\x82\x01R`\x84\x01a\x06\xC4V[a\x08\xFC\x81a\t\x80V[PV[`3Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x163\x14a\x06\0W`@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\x82\x01\x81\x90R`$\x82\x01R\x7FOwnable: caller is not the owner`D\x82\x01R`d\x01a\x06\xC4V[`3\x80Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x81\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x83\x16\x81\x17\x90\x93U`@Q\x91\x16\x91\x90\x82\x90\x7F\x8B\xE0\x07\x9CS\x16Y\x14\x13D\xCD\x1F\xD0\xA4\xF2\x84\x19I\x7F\x97\"\xA3\xDA\xAF\xE3\xB4\x18okdW\xE0\x90`\0\x90\xA3PPV[`\0Ta\x01\0\x90\x04`\xFF\x16a\n\x8EW`@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\x82\x01R`+`$\x82\x01R\x7FInitializable: contract is not i`D\x82\x01R\x7Fnitializing\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x06\xC4V[a\x06\0`\0Ta\x01\0\x90\x04`\xFF\x16a\x0B(W`@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\x82\x01R`+`$\x82\x01R\x7FInitializable: contract is not i`D\x82\x01R\x7Fnitializing\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x06\xC4V[a\x06\x003a\t\x80V[`Y\x80a\x0F0\x839\x01\x90V[\x805s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x0BaW`\0\x80\xFD[\x91\x90PV[`\0` \x82\x84\x03\x12\x15a\x0BxW`\0\x80\xFD[a\x0B\x81\x82a\x0B=V[\x93\x92PPPV[`\0\x80`@\x83\x85\x03\x12\x15a\x0B\x9BW`\0\x80\xFD[a\x0B\xA4\x83a\x0B=V[\x94` \x93\x90\x93\x015\x93PPPV[`\0` \x80\x83R\x83Q\x80\x82\x85\x01R`\0[\x81\x81\x10\x15a\x0B\xDFW\x85\x81\x01\x83\x01Q\x85\x82\x01`@\x01R\x82\x01a\x0B\xC3V[\x81\x81\x11\x15a\x0B\xF1W`\0`@\x83\x87\x01\x01R[P`\x1F\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x92\x90\x92\x01`@\x01\x93\x92PPPV[\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[`\0\x82`\x1F\x83\x01\x12a\x0CeW`\0\x80\xFD[\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x0C\x80Wa\x0C\x80a\x0C%V[`@Q`\x1F\x83\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x90\x81\x16`?\x01\x16\x81\x01\x90\x82\x82\x11\x81\x83\x10\x17\x15a\x0C\xC6Wa\x0C\xC6a\x0C%V[\x81`@R\x83\x81R\x86` \x85\x88\x01\x01\x11\x15a\x0C\xDFW`\0\x80\xFD[\x83` \x87\x01` \x83\x017`\0` \x85\x83\x01\x01R\x80\x94PPPPP\x92\x91PPV[`\0\x80`\0``\x84\x86\x03\x12\x15a\r\x14W`\0\x80\xFD[a\r\x1D\x84a\x0B=V[\x92P` \x84\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\r:W`\0\x80\xFD[a\rF\x87\x83\x88\x01a\x0CTV[\x93P`@\x86\x015\x91P\x80\x82\x11\x15a\r\\W`\0\x80\xFD[Pa\ri\x86\x82\x87\x01a\x0CTV[\x91PP\x92P\x92P\x92V[`\x01\x81\x81\x1C\x90\x82\x16\x80a\r\x87W`\x7F\x82\x16\x91P[` \x82\x10\x81\x03a\r\xC0W\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`\"`\x04R`$`\0\xFD[P\x91\x90PV[`\x1F\x82\x11\x15a\x0E\x10W`\0\x81\x81R` \x81 `\x1F\x85\x01`\x05\x1C\x81\x01` \x86\x10\x15a\r\xEDWP\x80[`\x1F\x85\x01`\x05\x1C\x82\x01\x91P[\x81\x81\x10\x15a\x0E\x0CW\x82\x81U`\x01\x01a\r\xF9V[PPP[PPPV[\x81Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x0E/Wa\x0E/a\x0C%V[a\x0EC\x81a\x0E=\x84Ta\rsV[\x84a\r\xC6V[` \x80`\x1F\x83\x11`\x01\x81\x14a\x0E\x96W`\0\x84\x15a\x0E`WP\x85\x83\x01Q[\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF`\x03\x86\x90\x1B\x1C\x19\x16`\x01\x85\x90\x1B\x17\x85Ua\x0E\x0CV[`\0\x85\x81R` \x81 \x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x86\x16\x91[\x82\x81\x10\x15a\x0E\xE3W\x88\x86\x01Q\x82U\x94\x84\x01\x94`\x01\x90\x91\x01\x90\x84\x01a\x0E\xC4V[P\x85\x82\x10\x15a\x0F\x1FW\x87\x85\x01Q\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF`\x03\x88\x90\x1B`\xF8\x16\x1C\x19\x16\x81U[PPPPP`\x01\x90\x81\x1B\x01\x90UPV\xFE`\x80`@R`@Q`Y8\x03\x80`Y\x839\x81\x01`@\x81\x90R`\x1E\x91`*V[\x80`\x01`\x01`\xA0\x1B\x03\x16\xFF[`\0` \x82\x84\x03\x12\x15`;W`\0\x80\xFD[\x81Q`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14`QW`\0\x80\xFD[\x93\x92PPPV\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `LiquidityController_Unauthorized()` and selector `0x5fbc4ede`. +```solidity +error LiquidityController_Unauthorized(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct LiquidityController_Unauthorized; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: LiquidityController_Unauthorized) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for LiquidityController_Unauthorized { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for LiquidityController_Unauthorized { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "LiquidityController_Unauthorized()"; + const SELECTOR: [u8; 4] = [95u8, 188u8, 78u8, 222u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `Initialized(uint8)` and selector `0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498`. +```solidity +event Initialized(uint8 version); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct Initialized { + #[allow(missing_docs)] + pub version: u8, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for Initialized { + type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<8>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,); + const SIGNATURE: &'static str = "Initialized(uint8)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 127u8, 38u8, 184u8, 63u8, 249u8, 110u8, 31u8, 43u8, 106u8, 104u8, 47u8, + 19u8, 56u8, 82u8, 246u8, 121u8, 138u8, 9u8, 196u8, 101u8, 218u8, 149u8, + 146u8, 20u8, 96u8, 206u8, 251u8, 56u8, 71u8, 64u8, 36u8, 152u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { version: data.0 } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.version), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(),) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for Initialized { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&Initialized> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &Initialized) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `LiquidityBurned(address,uint256)` and selector `0x875e07afd7ce17c6531b1a6b7b34829dcd8b7e6639448afbd6a8e29fa1422b82`. +```solidity +event LiquidityBurned(address indexed minter, uint256 amount); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct LiquidityBurned { + #[allow(missing_docs)] + pub minter: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub amount: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for LiquidityBurned { + type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "LiquidityBurned(address,uint256)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 135u8, 94u8, 7u8, 175u8, 215u8, 206u8, 23u8, 198u8, 83u8, 27u8, 26u8, + 107u8, 123u8, 52u8, 130u8, 157u8, 205u8, 139u8, 126u8, 102u8, 57u8, 68u8, + 138u8, 251u8, 214u8, 168u8, 226u8, 159u8, 161u8, 66u8, 43u8, 130u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + minter: topics.1, + amount: data.0, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.amount), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.minter.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.minter, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for LiquidityBurned { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&LiquidityBurned> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &LiquidityBurned) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `LiquidityMinted(address,address,uint256)` and selector `0xec89d80a36947288037745287dde87d62cd8c141d5323130b3d26d97d84004c7`. +```solidity +event LiquidityMinted(address indexed minter, address indexed to, uint256 amount); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct LiquidityMinted { + #[allow(missing_docs)] + pub minter: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub amount: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for LiquidityMinted { + type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "LiquidityMinted(address,address,uint256)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 236u8, 137u8, 216u8, 10u8, 54u8, 148u8, 114u8, 136u8, 3u8, 119u8, 69u8, + 40u8, 125u8, 222u8, 135u8, 214u8, 44u8, 216u8, 193u8, 65u8, 213u8, 50u8, + 49u8, 48u8, 179u8, 210u8, 109u8, 151u8, 216u8, 64u8, 4u8, 199u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + minter: topics.1, + to: topics.2, + amount: data.0, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.amount), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.minter.clone(), self.to.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.minter, + ); + out[2usize] = ::encode_topic( + &self.to, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for LiquidityMinted { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&LiquidityMinted> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &LiquidityMinted) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `MinterAuthorized(address)` and selector `0x83b05b6735acd4b85e3bded8e72c851d1a87718f81e3c8e6f0c9d9a2baa88e46`. +```solidity +event MinterAuthorized(address indexed minter); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct MinterAuthorized { + #[allow(missing_docs)] + pub minter: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for MinterAuthorized { + type DataTuple<'a> = (); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "MinterAuthorized(address)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 131u8, 176u8, 91u8, 103u8, 53u8, 172u8, 212u8, 184u8, 94u8, 59u8, 222u8, + 216u8, 231u8, 44u8, 133u8, 29u8, 26u8, 135u8, 113u8, 143u8, 129u8, 227u8, + 200u8, 230u8, 240u8, 201u8, 217u8, 162u8, 186u8, 168u8, 142u8, 70u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { minter: topics.1 } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + () + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.minter.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.minter, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for MinterAuthorized { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&MinterAuthorized> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &MinterAuthorized) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `MinterDeauthorized(address)` and selector `0xdf6bf03dfab5b4ccec3ba95544b98d7ecc9d4b9293d8673e86cb6edb5ac0cb62`. +```solidity +event MinterDeauthorized(address indexed minter); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct MinterDeauthorized { + #[allow(missing_docs)] + pub minter: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for MinterDeauthorized { + type DataTuple<'a> = (); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "MinterDeauthorized(address)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 223u8, 107u8, 240u8, 61u8, 250u8, 181u8, 180u8, 204u8, 236u8, 59u8, + 169u8, 85u8, 68u8, 185u8, 141u8, 126u8, 204u8, 157u8, 75u8, 146u8, 147u8, + 216u8, 103u8, 62u8, 134u8, 203u8, 110u8, 219u8, 90u8, 192u8, 203u8, 98u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { minter: topics.1 } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + () + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.minter.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.minter, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for MinterDeauthorized { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&MinterDeauthorized> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &MinterDeauthorized) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `OwnershipTransferred(address,address)` and selector `0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0`. +```solidity +event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct OwnershipTransferred { + #[allow(missing_docs)] + pub previousOwner: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub newOwner: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for OwnershipTransferred { + type DataTuple<'a> = (); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "OwnershipTransferred(address,address)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 139u8, 224u8, 7u8, 156u8, 83u8, 22u8, 89u8, 20u8, 19u8, 68u8, 205u8, + 31u8, 208u8, 164u8, 242u8, 132u8, 25u8, 73u8, 127u8, 151u8, 34u8, 163u8, + 218u8, 175u8, 227u8, 180u8, 24u8, 111u8, 107u8, 100u8, 87u8, 224u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + previousOwner: topics.1, + newOwner: topics.2, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + () + } + #[inline] + fn topics(&self) -> ::RustType { + ( + Self::SIGNATURE_HASH.into(), + self.previousOwner.clone(), + self.newOwner.clone(), + ) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.previousOwner, + ); + out[2usize] = ::encode_topic( + &self.newOwner, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for OwnershipTransferred { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&OwnershipTransferred> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &OwnershipTransferred) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + /**Constructor`. +```solidity +constructor(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct constructorCall {} + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: constructorCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for constructorCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolConstructor for constructorCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `authorizeMinter(address)` and selector `0x0c984832`. +```solidity +function authorizeMinter(address _minter) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct authorizeMinterCall { + #[allow(missing_docs)] + pub _minter: alloy::sol_types::private::Address, + } + ///Container type for the return parameters of the [`authorizeMinter(address)`](authorizeMinterCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct authorizeMinterReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: authorizeMinterCall) -> Self { + (value._minter,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for authorizeMinterCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _minter: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: authorizeMinterReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for authorizeMinterReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl authorizeMinterReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for authorizeMinterCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = authorizeMinterReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "authorizeMinter(address)"; + const SELECTOR: [u8; 4] = [12u8, 152u8, 72u8, 50u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._minter, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + authorizeMinterReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `burn()` and selector `0x44df8e70`. +```solidity +function burn() external payable; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct burnCall; + ///Container type for the return parameters of the [`burn()`](burnCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct burnReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: burnCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for burnCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: burnReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for burnReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl burnReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for burnCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = burnReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "burn()"; + const SELECTOR: [u8; 4] = [68u8, 223u8, 142u8, 112u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + burnReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `deauthorizeMinter(address)` and selector `0xc6f69fbb`. +```solidity +function deauthorizeMinter(address _minter) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct deauthorizeMinterCall { + #[allow(missing_docs)] + pub _minter: alloy::sol_types::private::Address, + } + ///Container type for the return parameters of the [`deauthorizeMinter(address)`](deauthorizeMinterCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct deauthorizeMinterReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: deauthorizeMinterCall) -> Self { + (value._minter,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for deauthorizeMinterCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _minter: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: deauthorizeMinterReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for deauthorizeMinterReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl deauthorizeMinterReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for deauthorizeMinterCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = deauthorizeMinterReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "deauthorizeMinter(address)"; + const SELECTOR: [u8; 4] = [198u8, 246u8, 159u8, 187u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._minter, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + deauthorizeMinterReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `gasPayingTokenName()` and selector `0xd8444715`. +```solidity +function gasPayingTokenName() external view returns (string memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct gasPayingTokenNameCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`gasPayingTokenName()`](gasPayingTokenNameCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct gasPayingTokenNameReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: gasPayingTokenNameCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for gasPayingTokenNameCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: gasPayingTokenNameReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for gasPayingTokenNameReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for gasPayingTokenNameCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::String; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "gasPayingTokenName()"; + const SELECTOR: [u8; 4] = [216u8, 68u8, 71u8, 21u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: gasPayingTokenNameReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: gasPayingTokenNameReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `gasPayingTokenSymbol()` and selector `0x550fcdc9`. +```solidity +function gasPayingTokenSymbol() external view returns (string memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct gasPayingTokenSymbolCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`gasPayingTokenSymbol()`](gasPayingTokenSymbolCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct gasPayingTokenSymbolReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: gasPayingTokenSymbolCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for gasPayingTokenSymbolCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: gasPayingTokenSymbolReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for gasPayingTokenSymbolReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for gasPayingTokenSymbolCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::String; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "gasPayingTokenSymbol()"; + const SELECTOR: [u8; 4] = [85u8, 15u8, 205u8, 201u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: gasPayingTokenSymbolReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: gasPayingTokenSymbolReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `initialize(address,string,string)` and selector `0x90657147`. +```solidity +function initialize(address _owner, string memory _gasPayingTokenName, string memory _gasPayingTokenSymbol) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct initializeCall { + #[allow(missing_docs)] + pub _owner: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _gasPayingTokenName: alloy::sol_types::private::String, + #[allow(missing_docs)] + pub _gasPayingTokenSymbol: alloy::sol_types::private::String, + } + ///Container type for the return parameters of the [`initialize(address,string,string)`](initializeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct initializeReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::String, + alloy::sol_types::sol_data::String, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::String, + alloy::sol_types::private::String, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: initializeCall) -> Self { + ( + value._owner, + value._gasPayingTokenName, + value._gasPayingTokenSymbol, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for initializeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _owner: tuple.0, + _gasPayingTokenName: tuple.1, + _gasPayingTokenSymbol: tuple.2, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: initializeReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for initializeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl initializeReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for initializeCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::String, + alloy::sol_types::sol_data::String, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = initializeReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "initialize(address,string,string)"; + const SELECTOR: [u8; 4] = [144u8, 101u8, 113u8, 71u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._owner, + ), + ::tokenize( + &self._gasPayingTokenName, + ), + ::tokenize( + &self._gasPayingTokenSymbol, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + initializeReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `mint(address,uint256)` and selector `0x40c10f19`. +```solidity +function mint(address _to, uint256 _amount) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct mintCall { + #[allow(missing_docs)] + pub _to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _amount: alloy::sol_types::private::primitives::aliases::U256, + } + ///Container type for the return parameters of the [`mint(address,uint256)`](mintCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct mintReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: mintCall) -> Self { + (value._to, value._amount) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for mintCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _to: tuple.0, + _amount: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: mintReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for mintReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl mintReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for mintCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = mintReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "mint(address,uint256)"; + const SELECTOR: [u8; 4] = [64u8, 193u8, 15u8, 25u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._to, + ), + as alloy_sol_types::SolType>::tokenize(&self._amount), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + mintReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `minters(address)` and selector `0xf46eccc4`. +```solidity +function minters(address) external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct mintersCall(pub alloy::sol_types::private::Address); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`minters(address)`](mintersCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct mintersReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: mintersCall) -> Self { + (value.0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for mintersCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self(tuple.0) + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: mintersReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for mintersReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for mintersCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "minters(address)"; + const SELECTOR: [u8; 4] = [244u8, 110u8, 204u8, 196u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.0, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: mintersReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: mintersReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `owner()` and selector `0x8da5cb5b`. +```solidity +function owner() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ownerCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`owner()`](ownerCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ownerReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ownerCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ownerCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ownerReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ownerReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for ownerCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "owner()"; + const SELECTOR: [u8; 4] = [141u8, 165u8, 203u8, 91u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: ownerReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: ownerReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `renounceOwnership()` and selector `0x715018a6`. +```solidity +function renounceOwnership() external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct renounceOwnershipCall; + ///Container type for the return parameters of the [`renounceOwnership()`](renounceOwnershipCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct renounceOwnershipReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: renounceOwnershipCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for renounceOwnershipCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: renounceOwnershipReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for renounceOwnershipReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl renounceOwnershipReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for renounceOwnershipCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = renounceOwnershipReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "renounceOwnership()"; + const SELECTOR: [u8; 4] = [113u8, 80u8, 24u8, 166u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + renounceOwnershipReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `transferOwnership(address)` and selector `0xf2fde38b`. +```solidity +function transferOwnership(address newOwner) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct transferOwnershipCall { + #[allow(missing_docs)] + pub newOwner: alloy::sol_types::private::Address, + } + ///Container type for the return parameters of the [`transferOwnership(address)`](transferOwnershipCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct transferOwnershipReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: transferOwnershipCall) -> Self { + (value.newOwner,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for transferOwnershipCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { newOwner: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: transferOwnershipReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for transferOwnershipReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl transferOwnershipReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for transferOwnershipCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = transferOwnershipReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "transferOwnership(address)"; + const SELECTOR: [u8; 4] = [242u8, 253u8, 227u8, 139u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.newOwner, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + transferOwnershipReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `version()` and selector `0x54fd4d50`. +```solidity +function version() external view returns (string memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`version()`](versionCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for versionCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::String; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "version()"; + const SELECTOR: [u8; 4] = [84u8, 253u8, 77u8, 80u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + } + }; + ///Container for all the [`LiquidityController`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum LiquidityControllerCalls { + #[allow(missing_docs)] + authorizeMinter(authorizeMinterCall), + #[allow(missing_docs)] + burn(burnCall), + #[allow(missing_docs)] + deauthorizeMinter(deauthorizeMinterCall), + #[allow(missing_docs)] + gasPayingTokenName(gasPayingTokenNameCall), + #[allow(missing_docs)] + gasPayingTokenSymbol(gasPayingTokenSymbolCall), + #[allow(missing_docs)] + initialize(initializeCall), + #[allow(missing_docs)] + mint(mintCall), + #[allow(missing_docs)] + minters(mintersCall), + #[allow(missing_docs)] + owner(ownerCall), + #[allow(missing_docs)] + renounceOwnership(renounceOwnershipCall), + #[allow(missing_docs)] + transferOwnership(transferOwnershipCall), + #[allow(missing_docs)] + version(versionCall), + } + impl LiquidityControllerCalls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [12u8, 152u8, 72u8, 50u8], + [64u8, 193u8, 15u8, 25u8], + [68u8, 223u8, 142u8, 112u8], + [84u8, 253u8, 77u8, 80u8], + [85u8, 15u8, 205u8, 201u8], + [113u8, 80u8, 24u8, 166u8], + [141u8, 165u8, 203u8, 91u8], + [144u8, 101u8, 113u8, 71u8], + [198u8, 246u8, 159u8, 187u8], + [216u8, 68u8, 71u8, 21u8], + [242u8, 253u8, 227u8, 139u8], + [244u8, 110u8, 204u8, 196u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(authorizeMinter), + ::core::stringify!(mint), + ::core::stringify!(burn), + ::core::stringify!(version), + ::core::stringify!(gasPayingTokenSymbol), + ::core::stringify!(renounceOwnership), + ::core::stringify!(owner), + ::core::stringify!(initialize), + ::core::stringify!(deauthorizeMinter), + ::core::stringify!(gasPayingTokenName), + ::core::stringify!(transferOwnership), + ::core::stringify!(minters), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for LiquidityControllerCalls { + const NAME: &'static str = "LiquidityControllerCalls"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 12usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::authorizeMinter(_) => { + ::SELECTOR + } + Self::burn(_) => ::SELECTOR, + Self::deauthorizeMinter(_) => { + ::SELECTOR + } + Self::gasPayingTokenName(_) => { + ::SELECTOR + } + Self::gasPayingTokenSymbol(_) => { + ::SELECTOR + } + Self::initialize(_) => { + ::SELECTOR + } + Self::mint(_) => ::SELECTOR, + Self::minters(_) => ::SELECTOR, + Self::owner(_) => ::SELECTOR, + Self::renounceOwnership(_) => { + ::SELECTOR + } + Self::transferOwnership(_) => { + ::SELECTOR + } + Self::version(_) => ::SELECTOR, + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn authorizeMinter( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(LiquidityControllerCalls::authorizeMinter) + } + authorizeMinter + }, + { + fn mint( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(LiquidityControllerCalls::mint) + } + mint + }, + { + fn burn( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(LiquidityControllerCalls::burn) + } + burn + }, + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(LiquidityControllerCalls::version) + } + version + }, + { + fn gasPayingTokenSymbol( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(LiquidityControllerCalls::gasPayingTokenSymbol) + } + gasPayingTokenSymbol + }, + { + fn renounceOwnership( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(LiquidityControllerCalls::renounceOwnership) + } + renounceOwnership + }, + { + fn owner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(LiquidityControllerCalls::owner) + } + owner + }, + { + fn initialize( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(LiquidityControllerCalls::initialize) + } + initialize + }, + { + fn deauthorizeMinter( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(LiquidityControllerCalls::deauthorizeMinter) + } + deauthorizeMinter + }, + { + fn gasPayingTokenName( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(LiquidityControllerCalls::gasPayingTokenName) + } + gasPayingTokenName + }, + { + fn transferOwnership( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(LiquidityControllerCalls::transferOwnership) + } + transferOwnership + }, + { + fn minters( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(LiquidityControllerCalls::minters) + } + minters + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn authorizeMinter( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(LiquidityControllerCalls::authorizeMinter) + } + authorizeMinter + }, + { + fn mint( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(LiquidityControllerCalls::mint) + } + mint + }, + { + fn burn( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(LiquidityControllerCalls::burn) + } + burn + }, + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(LiquidityControllerCalls::version) + } + version + }, + { + fn gasPayingTokenSymbol( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(LiquidityControllerCalls::gasPayingTokenSymbol) + } + gasPayingTokenSymbol + }, + { + fn renounceOwnership( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(LiquidityControllerCalls::renounceOwnership) + } + renounceOwnership + }, + { + fn owner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(LiquidityControllerCalls::owner) + } + owner + }, + { + fn initialize( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(LiquidityControllerCalls::initialize) + } + initialize + }, + { + fn deauthorizeMinter( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(LiquidityControllerCalls::deauthorizeMinter) + } + deauthorizeMinter + }, + { + fn gasPayingTokenName( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(LiquidityControllerCalls::gasPayingTokenName) + } + gasPayingTokenName + }, + { + fn transferOwnership( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(LiquidityControllerCalls::transferOwnership) + } + transferOwnership + }, + { + fn minters( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(LiquidityControllerCalls::minters) + } + minters + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::authorizeMinter(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::burn(inner) => { + ::abi_encoded_size(inner) + } + Self::deauthorizeMinter(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::gasPayingTokenName(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::gasPayingTokenSymbol(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::initialize(inner) => { + ::abi_encoded_size(inner) + } + Self::mint(inner) => { + ::abi_encoded_size(inner) + } + Self::minters(inner) => { + ::abi_encoded_size(inner) + } + Self::owner(inner) => { + ::abi_encoded_size(inner) + } + Self::renounceOwnership(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::transferOwnership(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::version(inner) => { + ::abi_encoded_size(inner) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::authorizeMinter(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::burn(inner) => { + ::abi_encode_raw(inner, out) + } + Self::deauthorizeMinter(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::gasPayingTokenName(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::gasPayingTokenSymbol(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::initialize(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::mint(inner) => { + ::abi_encode_raw(inner, out) + } + Self::minters(inner) => { + ::abi_encode_raw(inner, out) + } + Self::owner(inner) => { + ::abi_encode_raw(inner, out) + } + Self::renounceOwnership(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::transferOwnership(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::version(inner) => { + ::abi_encode_raw(inner, out) + } + } + } + } + ///Container for all the [`LiquidityController`](self) custom errors. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum LiquidityControllerErrors { + #[allow(missing_docs)] + LiquidityController_Unauthorized(LiquidityController_Unauthorized), + } + impl LiquidityControllerErrors { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[[95u8, 188u8, 78u8, 222u8]]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(LiquidityController_Unauthorized), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for LiquidityControllerErrors { + const NAME: &'static str = "LiquidityControllerErrors"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 1usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::LiquidityController_Unauthorized(_) => { + ::SELECTOR + } + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn LiquidityController_Unauthorized( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + LiquidityControllerErrors::LiquidityController_Unauthorized, + ) + } + LiquidityController_Unauthorized + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn LiquidityController_Unauthorized( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + LiquidityControllerErrors::LiquidityController_Unauthorized, + ) + } + LiquidityController_Unauthorized + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::LiquidityController_Unauthorized(inner) => { + ::abi_encoded_size( + inner, + ) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::LiquidityController_Unauthorized(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + } + } + } + ///Container for all the [`LiquidityController`](self) events. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum LiquidityControllerEvents { + #[allow(missing_docs)] + Initialized(Initialized), + #[allow(missing_docs)] + LiquidityBurned(LiquidityBurned), + #[allow(missing_docs)] + LiquidityMinted(LiquidityMinted), + #[allow(missing_docs)] + MinterAuthorized(MinterAuthorized), + #[allow(missing_docs)] + MinterDeauthorized(MinterDeauthorized), + #[allow(missing_docs)] + OwnershipTransferred(OwnershipTransferred), + } + impl LiquidityControllerEvents { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 32usize]] = &[ + [ + 127u8, 38u8, 184u8, 63u8, 249u8, 110u8, 31u8, 43u8, 106u8, 104u8, 47u8, + 19u8, 56u8, 82u8, 246u8, 121u8, 138u8, 9u8, 196u8, 101u8, 218u8, 149u8, + 146u8, 20u8, 96u8, 206u8, 251u8, 56u8, 71u8, 64u8, 36u8, 152u8, + ], + [ + 131u8, 176u8, 91u8, 103u8, 53u8, 172u8, 212u8, 184u8, 94u8, 59u8, 222u8, + 216u8, 231u8, 44u8, 133u8, 29u8, 26u8, 135u8, 113u8, 143u8, 129u8, 227u8, + 200u8, 230u8, 240u8, 201u8, 217u8, 162u8, 186u8, 168u8, 142u8, 70u8, + ], + [ + 135u8, 94u8, 7u8, 175u8, 215u8, 206u8, 23u8, 198u8, 83u8, 27u8, 26u8, + 107u8, 123u8, 52u8, 130u8, 157u8, 205u8, 139u8, 126u8, 102u8, 57u8, 68u8, + 138u8, 251u8, 214u8, 168u8, 226u8, 159u8, 161u8, 66u8, 43u8, 130u8, + ], + [ + 139u8, 224u8, 7u8, 156u8, 83u8, 22u8, 89u8, 20u8, 19u8, 68u8, 205u8, + 31u8, 208u8, 164u8, 242u8, 132u8, 25u8, 73u8, 127u8, 151u8, 34u8, 163u8, + 218u8, 175u8, 227u8, 180u8, 24u8, 111u8, 107u8, 100u8, 87u8, 224u8, + ], + [ + 223u8, 107u8, 240u8, 61u8, 250u8, 181u8, 180u8, 204u8, 236u8, 59u8, + 169u8, 85u8, 68u8, 185u8, 141u8, 126u8, 204u8, 157u8, 75u8, 146u8, 147u8, + 216u8, 103u8, 62u8, 134u8, 203u8, 110u8, 219u8, 90u8, 192u8, 203u8, 98u8, + ], + [ + 236u8, 137u8, 216u8, 10u8, 54u8, 148u8, 114u8, 136u8, 3u8, 119u8, 69u8, + 40u8, 125u8, 222u8, 135u8, 214u8, 44u8, 216u8, 193u8, 65u8, 213u8, 50u8, + 49u8, 48u8, 179u8, 210u8, 109u8, 151u8, 216u8, 64u8, 4u8, 199u8, + ], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(Initialized), + ::core::stringify!(MinterAuthorized), + ::core::stringify!(LiquidityBurned), + ::core::stringify!(OwnershipTransferred), + ::core::stringify!(MinterDeauthorized), + ::core::stringify!(LiquidityMinted), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolEventInterface for LiquidityControllerEvents { + const NAME: &'static str = "LiquidityControllerEvents"; + const COUNT: usize = 6usize; + fn decode_raw_log( + topics: &[alloy_sol_types::Word], + data: &[u8], + ) -> alloy_sol_types::Result { + match topics.first().copied() { + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::Initialized) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::LiquidityBurned) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::LiquidityMinted) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::MinterAuthorized) + } + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::MinterDeauthorized) + } + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::OwnershipTransferred) + } + _ => { + alloy_sol_types::private::Err(alloy_sol_types::Error::InvalidLog { + name: ::NAME, + log: alloy_sol_types::private::Box::new( + alloy_sol_types::private::LogData::new_unchecked( + topics.to_vec(), + data.to_vec().into(), + ), + ), + }) + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for LiquidityControllerEvents { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + match self { + Self::Initialized(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::LiquidityBurned(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::LiquidityMinted(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::MinterAuthorized(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::MinterDeauthorized(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::OwnershipTransferred(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + } + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + match self { + Self::Initialized(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::LiquidityBurned(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::LiquidityMinted(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::MinterAuthorized(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::MinterDeauthorized(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::OwnershipTransferred(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`LiquidityController`](self) contract instance. + +See the [wrapper's documentation](`LiquidityControllerInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> LiquidityControllerInstance { + LiquidityControllerInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + LiquidityControllerInstance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + LiquidityControllerInstance::::deploy_builder(__provider) + } + /**A [`LiquidityController`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`LiquidityController`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct LiquidityControllerInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for LiquidityControllerInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("LiquidityControllerInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > LiquidityControllerInstance { + /**Creates a new wrapper around an on-chain [`LiquidityController`](self) contract instance. + +See the [wrapper's documentation](`LiquidityControllerInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl LiquidityControllerInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> LiquidityControllerInstance { + LiquidityControllerInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > LiquidityControllerInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`authorizeMinter`] function. + pub fn authorizeMinter( + &self, + _minter: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, authorizeMinterCall, N> { + self.call_builder(&authorizeMinterCall { _minter }) + } + ///Creates a new call builder for the [`burn`] function. + pub fn burn(&self) -> alloy_contract::SolCallBuilder<&P, burnCall, N> { + self.call_builder(&burnCall) + } + ///Creates a new call builder for the [`deauthorizeMinter`] function. + pub fn deauthorizeMinter( + &self, + _minter: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, deauthorizeMinterCall, N> { + self.call_builder(&deauthorizeMinterCall { _minter }) + } + ///Creates a new call builder for the [`gasPayingTokenName`] function. + pub fn gasPayingTokenName( + &self, + ) -> alloy_contract::SolCallBuilder<&P, gasPayingTokenNameCall, N> { + self.call_builder(&gasPayingTokenNameCall) + } + ///Creates a new call builder for the [`gasPayingTokenSymbol`] function. + pub fn gasPayingTokenSymbol( + &self, + ) -> alloy_contract::SolCallBuilder<&P, gasPayingTokenSymbolCall, N> { + self.call_builder(&gasPayingTokenSymbolCall) + } + ///Creates a new call builder for the [`initialize`] function. + pub fn initialize( + &self, + _owner: alloy::sol_types::private::Address, + _gasPayingTokenName: alloy::sol_types::private::String, + _gasPayingTokenSymbol: alloy::sol_types::private::String, + ) -> alloy_contract::SolCallBuilder<&P, initializeCall, N> { + self.call_builder( + &initializeCall { + _owner, + _gasPayingTokenName, + _gasPayingTokenSymbol, + }, + ) + } + ///Creates a new call builder for the [`mint`] function. + pub fn mint( + &self, + _to: alloy::sol_types::private::Address, + _amount: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, mintCall, N> { + self.call_builder(&mintCall { _to, _amount }) + } + ///Creates a new call builder for the [`minters`] function. + pub fn minters( + &self, + _0: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, mintersCall, N> { + self.call_builder(&mintersCall(_0)) + } + ///Creates a new call builder for the [`owner`] function. + pub fn owner(&self) -> alloy_contract::SolCallBuilder<&P, ownerCall, N> { + self.call_builder(&ownerCall) + } + ///Creates a new call builder for the [`renounceOwnership`] function. + pub fn renounceOwnership( + &self, + ) -> alloy_contract::SolCallBuilder<&P, renounceOwnershipCall, N> { + self.call_builder(&renounceOwnershipCall) + } + ///Creates a new call builder for the [`transferOwnership`] function. + pub fn transferOwnership( + &self, + newOwner: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, transferOwnershipCall, N> { + self.call_builder(&transferOwnershipCall { newOwner }) + } + ///Creates a new call builder for the [`version`] function. + pub fn version(&self) -> alloy_contract::SolCallBuilder<&P, versionCall, N> { + self.call_builder(&versionCall) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > LiquidityControllerInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + ///Creates a new event filter for the [`Initialized`] event. + pub fn Initialized_filter(&self) -> alloy_contract::Event<&P, Initialized, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`LiquidityBurned`] event. + pub fn LiquidityBurned_filter( + &self, + ) -> alloy_contract::Event<&P, LiquidityBurned, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`LiquidityMinted`] event. + pub fn LiquidityMinted_filter( + &self, + ) -> alloy_contract::Event<&P, LiquidityMinted, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`MinterAuthorized`] event. + pub fn MinterAuthorized_filter( + &self, + ) -> alloy_contract::Event<&P, MinterAuthorized, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`MinterDeauthorized`] event. + pub fn MinterDeauthorized_filter( + &self, + ) -> alloy_contract::Event<&P, MinterDeauthorized, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`OwnershipTransferred`] event. + pub fn OwnershipTransferred_filter( + &self, + ) -> alloy_contract::Event<&P, OwnershipTransferred, N> { + self.event_filter::() + } + } +} diff --git a/bindings/rust/src/liveness_guard.rs b/bindings/rust/src/liveness_guard.rs new file mode 100644 index 000000000..4e1c6c7f1 --- /dev/null +++ b/bindings/rust/src/liveness_guard.rs @@ -0,0 +1,2566 @@ +///Module containing a contract's types and functions. +/** + +```solidity +library Enum { + type Operation is uint8; +} +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod Enum { + use super::*; + use alloy::sol_types as alloy_sol_types; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct Operation(u8); + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for u8 { + #[inline] + fn stv_to_tokens( + &self, + ) -> as alloy_sol_types::SolType>::Token<'_> { + alloy_sol_types::private::SolTypeValue::< + alloy::sol_types::sol_data::Uint<8>, + >::stv_to_tokens(self) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + as alloy_sol_types::SolType>::tokenize(self) + .0 + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::SolType>::abi_encode_packed_to(self, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + as alloy_sol_types::SolType>::abi_encoded_size(self) + } + } + impl Operation { + /// The Solidity type name. + pub const NAME: &'static str = stringify!(@ name); + /// Convert from the underlying value type. + #[inline] + pub const fn from_underlying(value: u8) -> Self { + Self(value) + } + /// Return the underlying value. + #[inline] + pub const fn into_underlying(self) -> u8 { + self.0 + } + /// Return the single encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode(&self) -> alloy_sol_types::private::Vec { + ::abi_encode(&self.0) + } + /// Return the packed encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec { + ::abi_encode_packed(&self.0) + } + } + #[automatically_derived] + impl From for Operation { + fn from(value: u8) -> Self { + Self::from_underlying(value) + } + } + #[automatically_derived] + impl From for u8 { + fn from(value: Operation) -> Self { + value.into_underlying() + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for Operation { + type RustType = u8; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = Self::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + Self::type_check(token).is_ok() + } + #[inline] + fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> { + as alloy_sol_types::SolType>::type_check(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + as alloy_sol_types::SolType>::detokenize(token) + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for Operation { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + as alloy_sol_types::EventTopic>::topic_preimage_length(rust) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out) + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + as alloy_sol_types::EventTopic>::encode_topic(rust) + } + } + }; + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`Enum`](self) contract instance. + +See the [wrapper's documentation](`EnumInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(address: alloy_sol_types::private::Address, __provider: P) -> EnumInstance { + EnumInstance::::new(address, __provider) + } + /**A [`Enum`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`Enum`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct EnumInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for EnumInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("EnumInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > EnumInstance { + /**Creates a new wrapper around an on-chain [`Enum`](self) contract instance. + +See the [wrapper's documentation](`EnumInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl EnumInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> EnumInstance { + EnumInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > EnumInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > EnumInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + } +} +/** + +Generated by the following Solidity interface... +```solidity +library Enum { + type Operation is uint8; +} + +interface LivenessGuard { + event OwnerRecorded(address owner); + + constructor(address _safe); + + function checkAfterExecution(bytes32, bool) external; + function checkTransaction(address _to, uint256 _value, bytes memory _data, Enum.Operation _operation, uint256 _safeTxGas, uint256 _baseGas, uint256 _gasPrice, address _gasToken, address payable _refundReceiver, bytes memory _signatures, address _msgSender) external; + function lastLive(address) external view returns (uint256); + function safe() external view returns (address safe_); + function showLiveness() external; + function supportsInterface(bytes4 interfaceId) external view returns (bool); + function version() external view returns (string memory); +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "constructor", + "inputs": [ + { + "name": "_safe", + "type": "address", + "internalType": "contract Safe" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "checkAfterExecution", + "inputs": [ + { + "name": "", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "checkTransaction", + "inputs": [ + { + "name": "_to", + "type": "address", + "internalType": "address" + }, + { + "name": "_value", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_data", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "_operation", + "type": "uint8", + "internalType": "enum Enum.Operation" + }, + { + "name": "_safeTxGas", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_baseGas", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_gasPrice", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_gasToken", + "type": "address", + "internalType": "address" + }, + { + "name": "_refundReceiver", + "type": "address", + "internalType": "address payable" + }, + { + "name": "_signatures", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "_msgSender", + "type": "address", + "internalType": "address" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "lastLive", + "inputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "safe", + "inputs": [], + "outputs": [ + { + "name": "safe_", + "type": "address", + "internalType": "contract Safe" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "showLiveness", + "inputs": [], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "supportsInterface", + "inputs": [ + { + "name": "interfaceId", + "type": "bytes4", + "internalType": "bytes4" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "version", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "view" + }, + { + "type": "event", + "name": "OwnerRecorded", + "inputs": [ + { + "name": "owner", + "type": "address", + "indexed": false, + "internalType": "address" + } + ], + "anonymous": false + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod LivenessGuard { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x60a06040523480156200001157600080fd5b506040516200177138038062001771833981016040819052620000349162000170565b806001600160a01b03166080816001600160a01b0316815250506000816001600160a01b031663a0e67e2b6040518163ffffffff1660e01b8152600401600060405180830381865afa1580156200008f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052620000b99190810190620001bf565b905060005b81518110156200014e576000828281518110620000df57620000df62000291565b6020908102919091018101516001600160a01b0381166000818152808452604090819020429055519081529092507f833bc129023866d52116d61e94b791eb8be46f05709362e0bcf1fe7c1a8c225c910160405180910390a150806200014581620002a7565b915050620000be565b505050620002cf565b6001600160a01b03811681146200016d57600080fd5b50565b6000602082840312156200018357600080fd5b8151620001908162000157565b9392505050565b634e487b7160e01b600052604160045260246000fd5b8051620001ba8162000157565b919050565b60006020808385031215620001d357600080fd5b82516001600160401b0380821115620001eb57600080fd5b818501915085601f8301126200020057600080fd5b81518181111562000215576200021562000197565b8060051b604051601f19603f830116810181811085821117156200023d576200023d62000197565b6040529182528482019250838101850191888311156200025c57600080fd5b938501935b8285101562000285576200027585620001ad565b8452938501939285019262000261565b98975050505050505050565b634e487b7160e01b600052603260045260246000fd5b600060018201620002c857634e487b7160e01b600052601160045260246000fd5b5060010190565b6080516114566200031b6000396000818160c40152818161025c015281816103bf015281816104c1015281816105080152818161060b015281816107ad015261098501526114566000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c806354fd4d501161005b57806354fd4d50146100f857806375f0bb52146101415780639327136814610154578063e458779b1461016757600080fd5b806301ffc9a714610082578063186f0354146100aa5780634c205d0d146100ee575b600080fd5b610095610090366004610e47565b610195565b60405190151581526020015b60405180910390f35b60405173ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001681526020016100a1565b6100f661022e565b005b6101346040518060400160405280600581526020017f312e312e3000000000000000000000000000000000000000000000000000000081525081565b6040516100a19190610ef4565b6100f661014f366004611057565b6103b3565b6100f661016236600461114a565b6107a1565b61018761017536600461117a565b60006020819052908152604090205481565b6040519081526020016100a1565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fe6d7a83a00000000000000000000000000000000000000000000000000000000148061022857507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b6040517f2f54bf6e0000000000000000000000000000000000000000000000000000000081523360048201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690632f54bf6e90602401602060405180830381865afa1580156102b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102dc9190611197565b61036d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603860248201527f4c6976656e65737347756172643a206f6e6c792053616665206f776e6572732060448201527f6d61792064656d6f6e737472617465206c6976656e657373000000000000000060648201526084015b60405180910390fd5b336000818152602081815260409182902042905590519182527f833bc129023866d52116d61e94b791eb8be46f05709362e0bcf1fe7c1a8c225c910160405180910390a1565b6103bb61096d565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a0e67e2b6040518163ffffffff1660e01b8152600401600060405180830381865afa158015610428573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405261046e91908101906111b4565b905060005b81518110156104bc576104a982828151811061049157610491611266565b60200260200101516001610a3490919063ffffffff16565b50806104b4816112c4565b915050610473565b5060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d8d11f788e8e8e8e8e8e8e8e8e60017f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663affed0e06040518163ffffffff1660e01b8152600401602060405180830381865afa158015610571573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061059591906112fc565b61059f9190611315565b6040518b63ffffffff1660e01b81526004016105c49a9998979695949392919061132c565b602060405180830381865afa1580156105e1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061060591906112fc565b905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e75235b86040518163ffffffff1660e01b8152600401602060405180830381865afa158015610674573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061069891906112fc565b905060006106a7838784610a5d565b905060005b815181101561078f57426000808484815181106106cb576106cb611266565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507f833bc129023866d52116d61e94b791eb8be46f05709362e0bcf1fe7c1a8c225c82828151811061074457610744611266565b6020026020010151604051610775919073ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b60405180910390a180610787816112c4565b9150506106ac565b50505050505050505050505050505050565b6107a961096d565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a0e67e2b6040518163ffffffff1660e01b8152600401600060405180830381865afa158015610816573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405261085c91908101906111b4565b905060005b81518110156108e157600082828151811061087e5761087e611266565b6020026020010151905061089c816001610c7a90919063ffffffff16565b15156000036108ce5773ffffffffffffffffffffffffffffffffffffffff811660009081526020819052604090204290555b50806108d9816112c4565b915050610861565b5060006108ee6001610c9c565b905060005b815181101561096657600082828151811061091057610910611266565b60209081029190910181015173ffffffffffffffffffffffffffffffffffffffff811660009081529182905260408220919091559050610951600182610c7a565b5050808061095e906112c4565b9150506108f3565b5050505050565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610a32576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602f60248201527f4c6976656e65737347756172643a206f6e6c7920536166652063616e2063616c60448201527f6c20746869732066756e6374696f6e00000000000000000000000000000000006064820152608401610364565b565b6000610a568373ffffffffffffffffffffffffffffffffffffffff8416610ca9565b9392505050565b60608167ffffffffffffffff811115610a7857610a78610f3c565b604051908082528060200260200182016040528015610aa1578160200160208202803683370190505b50905060008060008060005b86811015610c6e576041818102890160208101516040820151919092015160ff16955090935091506000849003610ae9578260001c9450610c24565b8360ff16600103610aff578260001c9450610c24565b601e8460ff161115610bc4576040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152603c81018a9052600190605c0160405160208183030381529060405280519060200120600486610b6491906113f7565b6040805160008152602081018083529390935260ff90911690820152606081018590526080810184905260a0016020604051602081039080840390855afa158015610bb3573d6000803e3d6000fd5b505050602060405103519450610c24565b6040805160008152602081018083528b905260ff861691810191909152606081018490526080810183905260019060a0016020604051602081039080840390855afa158015610c17573d6000803e3d6000fd5b5050506020604051035194505b84868281518110610c3757610c37611266565b73ffffffffffffffffffffffffffffffffffffffff9092166020928302919091019091015280610c66816112c4565b915050610aad565b50505050509392505050565b6000610a568373ffffffffffffffffffffffffffffffffffffffff8416610cf8565b60606000610a5683610deb565b6000818152600183016020526040812054610cf057508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610228565b506000610228565b60008181526001830160205260408120548015610de1576000610d1c600183611315565b8554909150600090610d3090600190611315565b9050818114610d95576000866000018281548110610d5057610d50611266565b9060005260206000200154905080876000018481548110610d7357610d73611266565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080610da657610da661141a565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610228565b6000915050610228565b606081600001805480602002602001604051908101604052809291908181526020018280548015610e3b57602002820191906000526020600020905b815481526020019060010190808311610e27575b50505050509050919050565b600060208284031215610e5957600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610a5657600080fd5b6000815180845260005b81811015610eaf57602081850181015186830182015201610e93565b81811115610ec1576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000610a566020830184610e89565b73ffffffffffffffffffffffffffffffffffffffff81168114610f2957600080fd5b50565b8035610f3781610f07565b919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715610fb257610fb2610f3c565b604052919050565b600082601f830112610fcb57600080fd5b813567ffffffffffffffff811115610fe557610fe5610f3c565b61101660207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601610f6b565b81815284602083860101111561102b57600080fd5b816020850160208301376000918101602001919091529392505050565b803560028110610f3757600080fd5b60008060008060008060008060008060006101608c8e03121561107957600080fd5b6110828c610f2c565b9a5060208c0135995067ffffffffffffffff8060408e013511156110a557600080fd5b6110b58e60408f01358f01610fba565b99506110c360608e01611048565b985060808d0135975060a08d0135965060c08d013595506110e660e08e01610f2c565b94506110f56101008e01610f2c565b9350806101208e0135111561110957600080fd5b5061111b8d6101208e01358e01610fba565b915061112a6101408d01610f2c565b90509295989b509295989b9093969950565b8015158114610f2957600080fd5b6000806040838503121561115d57600080fd5b82359150602083013561116f8161113c565b809150509250929050565b60006020828403121561118c57600080fd5b8135610a5681610f07565b6000602082840312156111a957600080fd5b8151610a568161113c565b600060208083850312156111c757600080fd5b825167ffffffffffffffff808211156111df57600080fd5b818501915085601f8301126111f357600080fd5b81518181111561120557611205610f3c565b8060051b9150611216848301610f6b565b818152918301840191848101908884111561123057600080fd5b938501935b8385101561125a578451925061124a83610f07565b8282529385019390850190611235565b98975050505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036112f5576112f5611295565b5060010190565b60006020828403121561130e57600080fd5b5051919050565b60008282101561132757611327611295565b500390565b600061014073ffffffffffffffffffffffffffffffffffffffff808e1684528c60208501528160408501526113638285018d610e89565b925060028b1061139c577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8a60608501528960808501528860a08501528760c085015280871660e085015250506113e161010083018573ffffffffffffffffffffffffffffffffffffffff169052565b826101208301529b9a5050505050505050505050565b600060ff821660ff84168082101561141157611411611295565b90039392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\xA0`@R4\x80\x15b\0\0\x11W`\0\x80\xFD[P`@Qb\0\x17q8\x03\x80b\0\x17q\x839\x81\x01`@\x81\x90Rb\0\x004\x91b\0\x01pV[\x80`\x01`\x01`\xA0\x1B\x03\x16`\x80\x81`\x01`\x01`\xA0\x1B\x03\x16\x81RPP`\0\x81`\x01`\x01`\xA0\x1B\x03\x16c\xA0\xE6~+`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01`\0`@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15b\0\0\x8FW=`\0\x80>=`\0\xFD[PPPP`@Q=`\0\x82>`\x1F=\x90\x81\x01`\x1F\x19\x16\x82\x01`@Rb\0\0\xB9\x91\x90\x81\x01\x90b\0\x01\xBFV[\x90P`\0[\x81Q\x81\x10\x15b\0\x01NW`\0\x82\x82\x81Q\x81\x10b\0\0\xDFWb\0\0\xDFb\0\x02\x91V[` \x90\x81\x02\x91\x90\x91\x01\x81\x01Q`\x01`\x01`\xA0\x1B\x03\x81\x16`\0\x81\x81R\x80\x84R`@\x90\x81\x90 B\x90UQ\x90\x81R\x90\x92P\x7F\x83;\xC1)\x028f\xD5!\x16\xD6\x1E\x94\xB7\x91\xEB\x8B\xE4o\x05p\x93b\xE0\xBC\xF1\xFE|\x1A\x8C\"\\\x91\x01`@Q\x80\x91\x03\x90\xA1P\x80b\0\x01E\x81b\0\x02\xA7V[\x91PPb\0\0\xBEV[PPPb\0\x02\xCFV[`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14b\0\x01mW`\0\x80\xFD[PV[`\0` \x82\x84\x03\x12\x15b\0\x01\x83W`\0\x80\xFD[\x81Qb\0\x01\x90\x81b\0\x01WV[\x93\x92PPPV[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[\x80Qb\0\x01\xBA\x81b\0\x01WV[\x91\x90PV[`\0` \x80\x83\x85\x03\x12\x15b\0\x01\xD3W`\0\x80\xFD[\x82Q`\x01`\x01`@\x1B\x03\x80\x82\x11\x15b\0\x01\xEBW`\0\x80\xFD[\x81\x85\x01\x91P\x85`\x1F\x83\x01\x12b\0\x02\0W`\0\x80\xFD[\x81Q\x81\x81\x11\x15b\0\x02\x15Wb\0\x02\x15b\0\x01\x97V[\x80`\x05\x1B`@Q`\x1F\x19`?\x83\x01\x16\x81\x01\x81\x81\x10\x85\x82\x11\x17\x15b\0\x02=Wb\0\x02=b\0\x01\x97V[`@R\x91\x82R\x84\x82\x01\x92P\x83\x81\x01\x85\x01\x91\x88\x83\x11\x15b\0\x02\\W`\0\x80\xFD[\x93\x85\x01\x93[\x82\x85\x10\x15b\0\x02\x85Wb\0\x02u\x85b\0\x01\xADV[\x84R\x93\x85\x01\x93\x92\x85\x01\x92b\0\x02aV[\x98\x97PPPPPPPPV[cNH{q`\xE0\x1B`\0R`2`\x04R`$`\0\xFD[`\0`\x01\x82\x01b\0\x02\xC8WcNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[P`\x01\x01\x90V[`\x80Qa\x14Vb\0\x03\x1B`\09`\0\x81\x81`\xC4\x01R\x81\x81a\x02\\\x01R\x81\x81a\x03\xBF\x01R\x81\x81a\x04\xC1\x01R\x81\x81a\x05\x08\x01R\x81\x81a\x06\x0B\x01R\x81\x81a\x07\xAD\x01Ra\t\x85\x01Ra\x14V`\0\xF3\xFE`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`\x046\x10a\0}W`\x005`\xE0\x1C\x80cT\xFDMP\x11a\0[W\x80cT\xFDMP\x14a\0\xF8W\x80cu\xF0\xBBR\x14a\x01AW\x80c\x93'\x13h\x14a\x01TW\x80c\xE4Xw\x9B\x14a\x01gW`\0\x80\xFD[\x80c\x01\xFF\xC9\xA7\x14a\0\x82W\x80c\x18o\x03T\x14a\0\xAAW\x80cL ]\r\x14a\0\xEEW[`\0\x80\xFD[a\0\x95a\0\x906`\x04a\x0EGV[a\x01\x95V[`@Q\x90\x15\x15\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x81R` \x01a\0\xA1V[a\0\xF6a\x02.V[\0[a\x014`@Q\x80`@\x01`@R\x80`\x05\x81R` \x01\x7F1.1.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\x81RP\x81V[`@Qa\0\xA1\x91\x90a\x0E\xF4V[a\0\xF6a\x01O6`\x04a\x10WV[a\x03\xB3V[a\0\xF6a\x01b6`\x04a\x11JV[a\x07\xA1V[a\x01\x87a\x01u6`\x04a\x11zV[`\0` \x81\x90R\x90\x81R`@\x90 T\x81V[`@Q\x90\x81R` \x01a\0\xA1V[`\0\x7F\xFF\xFF\xFF\xFF\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\x82\x16\x7F\xE6\xD7\xA8:\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\x14\x80a\x02(WP\x7F\xFF\xFF\xFF\xFF\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\x82\x16\x7F\x01\xFF\xC9\xA7\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\x14[\x92\x91PPV[`@Q\x7F/T\xBFn\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\x81R3`\x04\x82\x01R\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90c/T\xBFn\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x02\xB8W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x02\xDC\x91\x90a\x11\x97V[a\x03mW`@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\x82\x01R`8`$\x82\x01R\x7FLivenessGuard: only Safe owners `D\x82\x01R\x7Fmay demonstrate liveness\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01[`@Q\x80\x91\x03\x90\xFD[3`\0\x81\x81R` \x81\x81R`@\x91\x82\x90 B\x90U\x90Q\x91\x82R\x7F\x83;\xC1)\x028f\xD5!\x16\xD6\x1E\x94\xB7\x91\xEB\x8B\xE4o\x05p\x93b\xE0\xBC\xF1\xFE|\x1A\x8C\"\\\x91\x01`@Q\x80\x91\x03\x90\xA1V[a\x03\xBBa\tmV[`\0\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xA0\xE6~+`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01`\0`@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x04(W=`\0\x80>=`\0\xFD[PPPP`@Q=`\0\x82>`\x1F=\x90\x81\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x82\x01`@Ra\x04n\x91\x90\x81\x01\x90a\x11\xB4V[\x90P`\0[\x81Q\x81\x10\x15a\x04\xBCWa\x04\xA9\x82\x82\x81Q\x81\x10a\x04\x91Wa\x04\x91a\x12fV[` \x02` \x01\x01Q`\x01a\n4\x90\x91\x90c\xFF\xFF\xFF\xFF\x16V[P\x80a\x04\xB4\x81a\x12\xC4V[\x91PPa\x04sV[P`\0\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xD8\xD1\x1Fx\x8E\x8E\x8E\x8E\x8E\x8E\x8E\x8E\x8E`\x01\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xAF\xFE\xD0\xE0`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x05qW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x05\x95\x91\x90a\x12\xFCV[a\x05\x9F\x91\x90a\x13\x15V[`@Q\x8Bc\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01a\x05\xC4\x9A\x99\x98\x97\x96\x95\x94\x93\x92\x91\x90a\x13,V[` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x05\xE1W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x06\x05\x91\x90a\x12\xFCV[\x90P`\0\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xE7R5\xB8`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x06tW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x06\x98\x91\x90a\x12\xFCV[\x90P`\0a\x06\xA7\x83\x87\x84a\n]V[\x90P`\0[\x81Q\x81\x10\x15a\x07\x8FWB`\0\x80\x84\x84\x81Q\x81\x10a\x06\xCBWa\x06\xCBa\x12fV[` \x02` \x01\x01Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81R` \x01\x90\x81R` \x01`\0 \x81\x90UP\x7F\x83;\xC1)\x028f\xD5!\x16\xD6\x1E\x94\xB7\x91\xEB\x8B\xE4o\x05p\x93b\xE0\xBC\xF1\xFE|\x1A\x8C\"\\\x82\x82\x81Q\x81\x10a\x07DWa\x07Da\x12fV[` \x02` \x01\x01Q`@Qa\x07u\x91\x90s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x91\x90\x91\x16\x81R` \x01\x90V[`@Q\x80\x91\x03\x90\xA1\x80a\x07\x87\x81a\x12\xC4V[\x91PPa\x06\xACV[PPPPPPPPPPPPPPPPV[a\x07\xA9a\tmV[`\0\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xA0\xE6~+`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01`\0`@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x08\x16W=`\0\x80>=`\0\xFD[PPPP`@Q=`\0\x82>`\x1F=\x90\x81\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x82\x01`@Ra\x08\\\x91\x90\x81\x01\x90a\x11\xB4V[\x90P`\0[\x81Q\x81\x10\x15a\x08\xE1W`\0\x82\x82\x81Q\x81\x10a\x08~Wa\x08~a\x12fV[` \x02` \x01\x01Q\x90Pa\x08\x9C\x81`\x01a\x0Cz\x90\x91\x90c\xFF\xFF\xFF\xFF\x16V[\x15\x15`\0\x03a\x08\xCEWs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16`\0\x90\x81R` \x81\x90R`@\x90 B\x90U[P\x80a\x08\xD9\x81a\x12\xC4V[\x91PPa\x08aV[P`\0a\x08\xEE`\x01a\x0C\x9CV[\x90P`\0[\x81Q\x81\x10\x15a\tfW`\0\x82\x82\x81Q\x81\x10a\t\x10Wa\t\x10a\x12fV[` \x90\x81\x02\x91\x90\x91\x01\x81\x01Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16`\0\x90\x81R\x91\x82\x90R`@\x82 \x91\x90\x91U\x90Pa\tQ`\x01\x82a\x0CzV[PP\x80\x80a\t^\x90a\x12\xC4V[\x91PPa\x08\xF3V[PPPPPV[3s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x14a\n2W`@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\x82\x01R`/`$\x82\x01R\x7FLivenessGuard: only Safe can cal`D\x82\x01R\x7Fl this function\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x03dV[V[`\0a\nV\x83s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x16a\x0C\xA9V[\x93\x92PPPV[``\x81g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\nxWa\nxa\x0F=`\0\xFD[PPP` `@Q\x03Q\x94Pa\x0C$V[`@\x80Q`\0\x81R` \x81\x01\x80\x83R\x8B\x90R`\xFF\x86\x16\x91\x81\x01\x91\x90\x91R``\x81\x01\x84\x90R`\x80\x81\x01\x83\x90R`\x01\x90`\xA0\x01` `@Q` \x81\x03\x90\x80\x84\x03\x90\x85Z\xFA\x15\x80\x15a\x0C\x17W=`\0\x80>=`\0\xFD[PPP` `@Q\x03Q\x94P[\x84\x86\x82\x81Q\x81\x10a\x0C7Wa\x0C7a\x12fV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x92\x16` \x92\x83\x02\x91\x90\x91\x01\x90\x91\x01R\x80a\x0Cf\x81a\x12\xC4V[\x91PPa\n\xADV[PPPPP\x93\x92PPPV[`\0a\nV\x83s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x16a\x0C\xF8V[```\0a\nV\x83a\r\xEBV[`\0\x81\x81R`\x01\x83\x01` R`@\x81 Ta\x0C\xF0WP\x81T`\x01\x81\x81\x01\x84U`\0\x84\x81R` \x80\x82 \x90\x93\x01\x84\x90U\x84T\x84\x82R\x82\x86\x01\x90\x93R`@\x90 \x91\x90\x91Ua\x02(V[P`\0a\x02(V[`\0\x81\x81R`\x01\x83\x01` R`@\x81 T\x80\x15a\r\xE1W`\0a\r\x1C`\x01\x83a\x13\x15V[\x85T\x90\x91P`\0\x90a\r0\x90`\x01\x90a\x13\x15V[\x90P\x81\x81\x14a\r\x95W`\0\x86`\0\x01\x82\x81T\x81\x10a\rPWa\rPa\x12fV[\x90`\0R` `\0 \x01T\x90P\x80\x87`\0\x01\x84\x81T\x81\x10a\rsWa\rsa\x12fV[`\0\x91\x82R` \x80\x83 \x90\x91\x01\x92\x90\x92U\x91\x82R`\x01\x88\x01\x90R`@\x90 \x83\x90U[\x85T\x86\x90\x80a\r\xA6Wa\r\xA6a\x14\x1AV[`\x01\x90\x03\x81\x81\x90`\0R` `\0 \x01`\0\x90U\x90U\x85`\x01\x01`\0\x86\x81R` \x01\x90\x81R` \x01`\0 `\0\x90U`\x01\x93PPPPa\x02(V[`\0\x91PPa\x02(V[``\x81`\0\x01\x80T\x80` \x02` \x01`@Q\x90\x81\x01`@R\x80\x92\x91\x90\x81\x81R` \x01\x82\x80T\x80\x15a\x0E;W` \x02\x82\x01\x91\x90`\0R` `\0 \x90[\x81T\x81R` \x01\x90`\x01\x01\x90\x80\x83\x11a\x0E'W[PPPPP\x90P\x91\x90PV[`\0` \x82\x84\x03\x12\x15a\x0EYW`\0\x80\xFD[\x815\x7F\xFF\xFF\xFF\xFF\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\x81\x16\x81\x14a\nVW`\0\x80\xFD[`\0\x81Q\x80\x84R`\0[\x81\x81\x10\x15a\x0E\xAFW` \x81\x85\x01\x81\x01Q\x86\x83\x01\x82\x01R\x01a\x0E\x93V[\x81\x81\x11\x15a\x0E\xC1W`\0` \x83\x87\x01\x01R[P`\x1F\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x92\x90\x92\x01` \x01\x92\x91PPV[` \x81R`\0a\nV` \x83\x01\x84a\x0E\x89V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x0F)W`\0\x80\xFD[PV[\x805a\x0F7\x81a\x0F\x07V[\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[`@Q`\x1F\x82\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a\x0F\xB2Wa\x0F\xB2a\x0F=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x02\xDC\x91\x90a\x11\x97V[a\x03mW`@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\x82\x01R`8`$\x82\x01R\x7FLivenessGuard: only Safe owners `D\x82\x01R\x7Fmay demonstrate liveness\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01[`@Q\x80\x91\x03\x90\xFD[3`\0\x81\x81R` \x81\x81R`@\x91\x82\x90 B\x90U\x90Q\x91\x82R\x7F\x83;\xC1)\x028f\xD5!\x16\xD6\x1E\x94\xB7\x91\xEB\x8B\xE4o\x05p\x93b\xE0\xBC\xF1\xFE|\x1A\x8C\"\\\x91\x01`@Q\x80\x91\x03\x90\xA1V[a\x03\xBBa\tmV[`\0\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xA0\xE6~+`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01`\0`@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x04(W=`\0\x80>=`\0\xFD[PPPP`@Q=`\0\x82>`\x1F=\x90\x81\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x82\x01`@Ra\x04n\x91\x90\x81\x01\x90a\x11\xB4V[\x90P`\0[\x81Q\x81\x10\x15a\x04\xBCWa\x04\xA9\x82\x82\x81Q\x81\x10a\x04\x91Wa\x04\x91a\x12fV[` \x02` \x01\x01Q`\x01a\n4\x90\x91\x90c\xFF\xFF\xFF\xFF\x16V[P\x80a\x04\xB4\x81a\x12\xC4V[\x91PPa\x04sV[P`\0\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xD8\xD1\x1Fx\x8E\x8E\x8E\x8E\x8E\x8E\x8E\x8E\x8E`\x01\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xAF\xFE\xD0\xE0`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x05qW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x05\x95\x91\x90a\x12\xFCV[a\x05\x9F\x91\x90a\x13\x15V[`@Q\x8Bc\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01a\x05\xC4\x9A\x99\x98\x97\x96\x95\x94\x93\x92\x91\x90a\x13,V[` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x05\xE1W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x06\x05\x91\x90a\x12\xFCV[\x90P`\0\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xE7R5\xB8`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x06tW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x06\x98\x91\x90a\x12\xFCV[\x90P`\0a\x06\xA7\x83\x87\x84a\n]V[\x90P`\0[\x81Q\x81\x10\x15a\x07\x8FWB`\0\x80\x84\x84\x81Q\x81\x10a\x06\xCBWa\x06\xCBa\x12fV[` \x02` \x01\x01Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81R` \x01\x90\x81R` \x01`\0 \x81\x90UP\x7F\x83;\xC1)\x028f\xD5!\x16\xD6\x1E\x94\xB7\x91\xEB\x8B\xE4o\x05p\x93b\xE0\xBC\xF1\xFE|\x1A\x8C\"\\\x82\x82\x81Q\x81\x10a\x07DWa\x07Da\x12fV[` \x02` \x01\x01Q`@Qa\x07u\x91\x90s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x91\x90\x91\x16\x81R` \x01\x90V[`@Q\x80\x91\x03\x90\xA1\x80a\x07\x87\x81a\x12\xC4V[\x91PPa\x06\xACV[PPPPPPPPPPPPPPPPV[a\x07\xA9a\tmV[`\0\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xA0\xE6~+`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01`\0`@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x08\x16W=`\0\x80>=`\0\xFD[PPPP`@Q=`\0\x82>`\x1F=\x90\x81\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x82\x01`@Ra\x08\\\x91\x90\x81\x01\x90a\x11\xB4V[\x90P`\0[\x81Q\x81\x10\x15a\x08\xE1W`\0\x82\x82\x81Q\x81\x10a\x08~Wa\x08~a\x12fV[` \x02` \x01\x01Q\x90Pa\x08\x9C\x81`\x01a\x0Cz\x90\x91\x90c\xFF\xFF\xFF\xFF\x16V[\x15\x15`\0\x03a\x08\xCEWs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16`\0\x90\x81R` \x81\x90R`@\x90 B\x90U[P\x80a\x08\xD9\x81a\x12\xC4V[\x91PPa\x08aV[P`\0a\x08\xEE`\x01a\x0C\x9CV[\x90P`\0[\x81Q\x81\x10\x15a\tfW`\0\x82\x82\x81Q\x81\x10a\t\x10Wa\t\x10a\x12fV[` \x90\x81\x02\x91\x90\x91\x01\x81\x01Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16`\0\x90\x81R\x91\x82\x90R`@\x82 \x91\x90\x91U\x90Pa\tQ`\x01\x82a\x0CzV[PP\x80\x80a\t^\x90a\x12\xC4V[\x91PPa\x08\xF3V[PPPPPV[3s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x14a\n2W`@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\x82\x01R`/`$\x82\x01R\x7FLivenessGuard: only Safe can cal`D\x82\x01R\x7Fl this function\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x03dV[V[`\0a\nV\x83s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x16a\x0C\xA9V[\x93\x92PPPV[``\x81g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\nxWa\nxa\x0F=`\0\xFD[PPP` `@Q\x03Q\x94Pa\x0C$V[`@\x80Q`\0\x81R` \x81\x01\x80\x83R\x8B\x90R`\xFF\x86\x16\x91\x81\x01\x91\x90\x91R``\x81\x01\x84\x90R`\x80\x81\x01\x83\x90R`\x01\x90`\xA0\x01` `@Q` \x81\x03\x90\x80\x84\x03\x90\x85Z\xFA\x15\x80\x15a\x0C\x17W=`\0\x80>=`\0\xFD[PPP` `@Q\x03Q\x94P[\x84\x86\x82\x81Q\x81\x10a\x0C7Wa\x0C7a\x12fV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x92\x16` \x92\x83\x02\x91\x90\x91\x01\x90\x91\x01R\x80a\x0Cf\x81a\x12\xC4V[\x91PPa\n\xADV[PPPPP\x93\x92PPPV[`\0a\nV\x83s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x16a\x0C\xF8V[```\0a\nV\x83a\r\xEBV[`\0\x81\x81R`\x01\x83\x01` R`@\x81 Ta\x0C\xF0WP\x81T`\x01\x81\x81\x01\x84U`\0\x84\x81R` \x80\x82 \x90\x93\x01\x84\x90U\x84T\x84\x82R\x82\x86\x01\x90\x93R`@\x90 \x91\x90\x91Ua\x02(V[P`\0a\x02(V[`\0\x81\x81R`\x01\x83\x01` R`@\x81 T\x80\x15a\r\xE1W`\0a\r\x1C`\x01\x83a\x13\x15V[\x85T\x90\x91P`\0\x90a\r0\x90`\x01\x90a\x13\x15V[\x90P\x81\x81\x14a\r\x95W`\0\x86`\0\x01\x82\x81T\x81\x10a\rPWa\rPa\x12fV[\x90`\0R` `\0 \x01T\x90P\x80\x87`\0\x01\x84\x81T\x81\x10a\rsWa\rsa\x12fV[`\0\x91\x82R` \x80\x83 \x90\x91\x01\x92\x90\x92U\x91\x82R`\x01\x88\x01\x90R`@\x90 \x83\x90U[\x85T\x86\x90\x80a\r\xA6Wa\r\xA6a\x14\x1AV[`\x01\x90\x03\x81\x81\x90`\0R` `\0 \x01`\0\x90U\x90U\x85`\x01\x01`\0\x86\x81R` \x01\x90\x81R` \x01`\0 `\0\x90U`\x01\x93PPPPa\x02(V[`\0\x91PPa\x02(V[``\x81`\0\x01\x80T\x80` \x02` \x01`@Q\x90\x81\x01`@R\x80\x92\x91\x90\x81\x81R` \x01\x82\x80T\x80\x15a\x0E;W` \x02\x82\x01\x91\x90`\0R` `\0 \x90[\x81T\x81R` \x01\x90`\x01\x01\x90\x80\x83\x11a\x0E'W[PPPPP\x90P\x91\x90PV[`\0` \x82\x84\x03\x12\x15a\x0EYW`\0\x80\xFD[\x815\x7F\xFF\xFF\xFF\xFF\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\x81\x16\x81\x14a\nVW`\0\x80\xFD[`\0\x81Q\x80\x84R`\0[\x81\x81\x10\x15a\x0E\xAFW` \x81\x85\x01\x81\x01Q\x86\x83\x01\x82\x01R\x01a\x0E\x93V[\x81\x81\x11\x15a\x0E\xC1W`\0` \x83\x87\x01\x01R[P`\x1F\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x92\x90\x92\x01` \x01\x92\x91PPV[` \x81R`\0a\nV` \x83\x01\x84a\x0E\x89V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x0F)W`\0\x80\xFD[PV[\x805a\x0F7\x81a\x0F\x07V[\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[`@Q`\x1F\x82\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a\x0F\xB2Wa\x0F\xB2a\x0F = (alloy::sol_types::sol_data::Address,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,); + const SIGNATURE: &'static str = "OwnerRecorded(address)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 131u8, 59u8, 193u8, 41u8, 2u8, 56u8, 102u8, 213u8, 33u8, 22u8, 214u8, + 30u8, 148u8, 183u8, 145u8, 235u8, 139u8, 228u8, 111u8, 5u8, 112u8, 147u8, + 98u8, 224u8, 188u8, 241u8, 254u8, 124u8, 26u8, 140u8, 34u8, 92u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { owner: data.0 } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + ::tokenize( + &self.owner, + ), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(),) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for OwnerRecorded { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&OwnerRecorded> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &OwnerRecorded) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + /**Constructor`. +```solidity +constructor(address _safe); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct constructorCall { + #[allow(missing_docs)] + pub _safe: alloy::sol_types::private::Address, + } + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: constructorCall) -> Self { + (value._safe,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for constructorCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _safe: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolConstructor for constructorCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._safe, + ), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `checkAfterExecution(bytes32,bool)` and selector `0x93271368`. +```solidity +function checkAfterExecution(bytes32, bool) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct checkAfterExecutionCall { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub _1: bool, + } + ///Container type for the return parameters of the [`checkAfterExecution(bytes32,bool)`](checkAfterExecutionCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct checkAfterExecutionReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Bool, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::FixedBytes<32>, + bool, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: checkAfterExecutionCall) -> Self { + (value._0, value._1) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for checkAfterExecutionCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0, _1: tuple.1 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: checkAfterExecutionReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for checkAfterExecutionReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl checkAfterExecutionReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for checkAfterExecutionCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Bool, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = checkAfterExecutionReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "checkAfterExecution(bytes32,bool)"; + const SELECTOR: [u8; 4] = [147u8, 39u8, 19u8, 104u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._0), + ::tokenize( + &self._1, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + checkAfterExecutionReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `checkTransaction(address,uint256,bytes,uint8,uint256,uint256,uint256,address,address,bytes,address)` and selector `0x75f0bb52`. +```solidity +function checkTransaction(address _to, uint256 _value, bytes memory _data, Enum.Operation _operation, uint256 _safeTxGas, uint256 _baseGas, uint256 _gasPrice, address _gasToken, address _refundReceiver, bytes memory _signatures, address _msgSender) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct checkTransactionCall { + #[allow(missing_docs)] + pub _to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _value: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _data: alloy::sol_types::private::Bytes, + #[allow(missing_docs)] + pub _operation: ::RustType, + #[allow(missing_docs)] + pub _safeTxGas: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _baseGas: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _gasPrice: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _gasToken: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _refundReceiver: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _signatures: alloy::sol_types::private::Bytes, + #[allow(missing_docs)] + pub _msgSender: alloy::sol_types::private::Address, + } + ///Container type for the return parameters of the [`checkTransaction(address,uint256,bytes,uint8,uint256,uint256,uint256,address,address,bytes,address)`](checkTransactionCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct checkTransactionReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Bytes, + Enum::Operation, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Bytes, + alloy::sol_types::sol_data::Address, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::Bytes, + ::RustType, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::Bytes, + alloy::sol_types::private::Address, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: checkTransactionCall) -> Self { + ( + value._to, + value._value, + value._data, + value._operation, + value._safeTxGas, + value._baseGas, + value._gasPrice, + value._gasToken, + value._refundReceiver, + value._signatures, + value._msgSender, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for checkTransactionCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _to: tuple.0, + _value: tuple.1, + _data: tuple.2, + _operation: tuple.3, + _safeTxGas: tuple.4, + _baseGas: tuple.5, + _gasPrice: tuple.6, + _gasToken: tuple.7, + _refundReceiver: tuple.8, + _signatures: tuple.9, + _msgSender: tuple.10, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: checkTransactionReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for checkTransactionReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl checkTransactionReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for checkTransactionCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Bytes, + Enum::Operation, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Bytes, + alloy::sol_types::sol_data::Address, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = checkTransactionReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "checkTransaction(address,uint256,bytes,uint8,uint256,uint256,uint256,address,address,bytes,address)"; + const SELECTOR: [u8; 4] = [117u8, 240u8, 187u8, 82u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._to, + ), + as alloy_sol_types::SolType>::tokenize(&self._value), + ::tokenize( + &self._data, + ), + ::tokenize( + &self._operation, + ), + as alloy_sol_types::SolType>::tokenize(&self._safeTxGas), + as alloy_sol_types::SolType>::tokenize(&self._baseGas), + as alloy_sol_types::SolType>::tokenize(&self._gasPrice), + ::tokenize( + &self._gasToken, + ), + ::tokenize( + &self._refundReceiver, + ), + ::tokenize( + &self._signatures, + ), + ::tokenize( + &self._msgSender, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + checkTransactionReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `lastLive(address)` and selector `0xe458779b`. +```solidity +function lastLive(address) external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct lastLiveCall(pub alloy::sol_types::private::Address); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`lastLive(address)`](lastLiveCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct lastLiveReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: lastLiveCall) -> Self { + (value.0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for lastLiveCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self(tuple.0) + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: lastLiveReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for lastLiveReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for lastLiveCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "lastLive(address)"; + const SELECTOR: [u8; 4] = [228u8, 88u8, 119u8, 155u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.0, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: lastLiveReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: lastLiveReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `safe()` and selector `0x186f0354`. +```solidity +function safe() external view returns (address safe_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct safeCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`safe()`](safeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct safeReturn { + #[allow(missing_docs)] + pub safe_: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: safeCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for safeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: safeReturn) -> Self { + (value.safe_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for safeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { safe_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for safeCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "safe()"; + const SELECTOR: [u8; 4] = [24u8, 111u8, 3u8, 84u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: safeReturn = r.into(); + r.safe_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: safeReturn = r.into(); + r.safe_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `showLiveness()` and selector `0x4c205d0d`. +```solidity +function showLiveness() external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct showLivenessCall; + ///Container type for the return parameters of the [`showLiveness()`](showLivenessCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct showLivenessReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: showLivenessCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for showLivenessCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: showLivenessReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for showLivenessReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl showLivenessReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for showLivenessCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = showLivenessReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "showLiveness()"; + const SELECTOR: [u8; 4] = [76u8, 32u8, 93u8, 13u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + showLivenessReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `supportsInterface(bytes4)` and selector `0x01ffc9a7`. +```solidity +function supportsInterface(bytes4 interfaceId) external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct supportsInterfaceCall { + #[allow(missing_docs)] + pub interfaceId: alloy::sol_types::private::FixedBytes<4>, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`supportsInterface(bytes4)`](supportsInterfaceCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct supportsInterfaceReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<4>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<4>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: supportsInterfaceCall) -> Self { + (value.interfaceId,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for supportsInterfaceCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { interfaceId: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: supportsInterfaceReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for supportsInterfaceReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for supportsInterfaceCall { + type Parameters<'a> = (alloy::sol_types::sol_data::FixedBytes<4>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "supportsInterface(bytes4)"; + const SELECTOR: [u8; 4] = [1u8, 255u8, 201u8, 167u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.interfaceId), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: supportsInterfaceReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: supportsInterfaceReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `version()` and selector `0x54fd4d50`. +```solidity +function version() external view returns (string memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`version()`](versionCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for versionCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::String; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "version()"; + const SELECTOR: [u8; 4] = [84u8, 253u8, 77u8, 80u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + } + }; + ///Container for all the [`LivenessGuard`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum LivenessGuardCalls { + #[allow(missing_docs)] + checkAfterExecution(checkAfterExecutionCall), + #[allow(missing_docs)] + checkTransaction(checkTransactionCall), + #[allow(missing_docs)] + lastLive(lastLiveCall), + #[allow(missing_docs)] + safe(safeCall), + #[allow(missing_docs)] + showLiveness(showLivenessCall), + #[allow(missing_docs)] + supportsInterface(supportsInterfaceCall), + #[allow(missing_docs)] + version(versionCall), + } + impl LivenessGuardCalls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [1u8, 255u8, 201u8, 167u8], + [24u8, 111u8, 3u8, 84u8], + [76u8, 32u8, 93u8, 13u8], + [84u8, 253u8, 77u8, 80u8], + [117u8, 240u8, 187u8, 82u8], + [147u8, 39u8, 19u8, 104u8], + [228u8, 88u8, 119u8, 155u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(supportsInterface), + ::core::stringify!(safe), + ::core::stringify!(showLiveness), + ::core::stringify!(version), + ::core::stringify!(checkTransaction), + ::core::stringify!(checkAfterExecution), + ::core::stringify!(lastLive), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for LivenessGuardCalls { + const NAME: &'static str = "LivenessGuardCalls"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 7usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::checkAfterExecution(_) => { + ::SELECTOR + } + Self::checkTransaction(_) => { + ::SELECTOR + } + Self::lastLive(_) => ::SELECTOR, + Self::safe(_) => ::SELECTOR, + Self::showLiveness(_) => { + ::SELECTOR + } + Self::supportsInterface(_) => { + ::SELECTOR + } + Self::version(_) => ::SELECTOR, + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn supportsInterface( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(LivenessGuardCalls::supportsInterface) + } + supportsInterface + }, + { + fn safe(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(LivenessGuardCalls::safe) + } + safe + }, + { + fn showLiveness( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(LivenessGuardCalls::showLiveness) + } + showLiveness + }, + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(LivenessGuardCalls::version) + } + version + }, + { + fn checkTransaction( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(LivenessGuardCalls::checkTransaction) + } + checkTransaction + }, + { + fn checkAfterExecution( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(LivenessGuardCalls::checkAfterExecution) + } + checkAfterExecution + }, + { + fn lastLive( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(LivenessGuardCalls::lastLive) + } + lastLive + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn supportsInterface( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(LivenessGuardCalls::supportsInterface) + } + supportsInterface + }, + { + fn safe(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(LivenessGuardCalls::safe) + } + safe + }, + { + fn showLiveness( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(LivenessGuardCalls::showLiveness) + } + showLiveness + }, + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(LivenessGuardCalls::version) + } + version + }, + { + fn checkTransaction( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(LivenessGuardCalls::checkTransaction) + } + checkTransaction + }, + { + fn checkAfterExecution( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(LivenessGuardCalls::checkAfterExecution) + } + checkAfterExecution + }, + { + fn lastLive( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(LivenessGuardCalls::lastLive) + } + lastLive + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::checkAfterExecution(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::checkTransaction(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::lastLive(inner) => { + ::abi_encoded_size(inner) + } + Self::safe(inner) => { + ::abi_encoded_size(inner) + } + Self::showLiveness(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::supportsInterface(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::version(inner) => { + ::abi_encoded_size(inner) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::checkAfterExecution(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::checkTransaction(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::lastLive(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::safe(inner) => { + ::abi_encode_raw(inner, out) + } + Self::showLiveness(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::supportsInterface(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::version(inner) => { + ::abi_encode_raw(inner, out) + } + } + } + } + ///Container for all the [`LivenessGuard`](self) events. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum LivenessGuardEvents { + #[allow(missing_docs)] + OwnerRecorded(OwnerRecorded), + } + impl LivenessGuardEvents { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 32usize]] = &[ + [ + 131u8, 59u8, 193u8, 41u8, 2u8, 56u8, 102u8, 213u8, 33u8, 22u8, 214u8, + 30u8, 148u8, 183u8, 145u8, 235u8, 139u8, 228u8, 111u8, 5u8, 112u8, 147u8, + 98u8, 224u8, 188u8, 241u8, 254u8, 124u8, 26u8, 140u8, 34u8, 92u8, + ], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(OwnerRecorded), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolEventInterface for LivenessGuardEvents { + const NAME: &'static str = "LivenessGuardEvents"; + const COUNT: usize = 1usize; + fn decode_raw_log( + topics: &[alloy_sol_types::Word], + data: &[u8], + ) -> alloy_sol_types::Result { + match topics.first().copied() { + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::OwnerRecorded) + } + _ => { + alloy_sol_types::private::Err(alloy_sol_types::Error::InvalidLog { + name: ::NAME, + log: alloy_sol_types::private::Box::new( + alloy_sol_types::private::LogData::new_unchecked( + topics.to_vec(), + data.to_vec().into(), + ), + ), + }) + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for LivenessGuardEvents { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + match self { + Self::OwnerRecorded(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + } + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + match self { + Self::OwnerRecorded(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`LivenessGuard`](self) contract instance. + +See the [wrapper's documentation](`LivenessGuardInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> LivenessGuardInstance { + LivenessGuardInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + _safe: alloy::sol_types::private::Address, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + LivenessGuardInstance::::deploy(__provider, _safe) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + _safe: alloy::sol_types::private::Address, + ) -> alloy_contract::RawCallBuilder { + LivenessGuardInstance::::deploy_builder(__provider, _safe) + } + /**A [`LivenessGuard`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`LivenessGuard`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct LivenessGuardInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for LivenessGuardInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("LivenessGuardInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > LivenessGuardInstance { + /**Creates a new wrapper around an on-chain [`LivenessGuard`](self) contract instance. + +See the [wrapper's documentation](`LivenessGuardInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + _safe: alloy::sol_types::private::Address, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider, _safe); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder( + __provider: P, + _safe: alloy::sol_types::private::Address, + ) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + [ + &BYTECODE[..], + &alloy_sol_types::SolConstructor::abi_encode( + &constructorCall { _safe }, + )[..], + ] + .concat() + .into(), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl LivenessGuardInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> LivenessGuardInstance { + LivenessGuardInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > LivenessGuardInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`checkAfterExecution`] function. + pub fn checkAfterExecution( + &self, + _0: alloy::sol_types::private::FixedBytes<32>, + _1: bool, + ) -> alloy_contract::SolCallBuilder<&P, checkAfterExecutionCall, N> { + self.call_builder(&checkAfterExecutionCall { _0, _1 }) + } + ///Creates a new call builder for the [`checkTransaction`] function. + pub fn checkTransaction( + &self, + _to: alloy::sol_types::private::Address, + _value: alloy::sol_types::private::primitives::aliases::U256, + _data: alloy::sol_types::private::Bytes, + _operation: ::RustType, + _safeTxGas: alloy::sol_types::private::primitives::aliases::U256, + _baseGas: alloy::sol_types::private::primitives::aliases::U256, + _gasPrice: alloy::sol_types::private::primitives::aliases::U256, + _gasToken: alloy::sol_types::private::Address, + _refundReceiver: alloy::sol_types::private::Address, + _signatures: alloy::sol_types::private::Bytes, + _msgSender: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, checkTransactionCall, N> { + self.call_builder( + &checkTransactionCall { + _to, + _value, + _data, + _operation, + _safeTxGas, + _baseGas, + _gasPrice, + _gasToken, + _refundReceiver, + _signatures, + _msgSender, + }, + ) + } + ///Creates a new call builder for the [`lastLive`] function. + pub fn lastLive( + &self, + _0: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, lastLiveCall, N> { + self.call_builder(&lastLiveCall(_0)) + } + ///Creates a new call builder for the [`safe`] function. + pub fn safe(&self) -> alloy_contract::SolCallBuilder<&P, safeCall, N> { + self.call_builder(&safeCall) + } + ///Creates a new call builder for the [`showLiveness`] function. + pub fn showLiveness( + &self, + ) -> alloy_contract::SolCallBuilder<&P, showLivenessCall, N> { + self.call_builder(&showLivenessCall) + } + ///Creates a new call builder for the [`supportsInterface`] function. + pub fn supportsInterface( + &self, + interfaceId: alloy::sol_types::private::FixedBytes<4>, + ) -> alloy_contract::SolCallBuilder<&P, supportsInterfaceCall, N> { + self.call_builder( + &supportsInterfaceCall { + interfaceId, + }, + ) + } + ///Creates a new call builder for the [`version`] function. + pub fn version(&self) -> alloy_contract::SolCallBuilder<&P, versionCall, N> { + self.call_builder(&versionCall) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > LivenessGuardInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + ///Creates a new event filter for the [`OwnerRecorded`] event. + pub fn OwnerRecorded_filter( + &self, + ) -> alloy_contract::Event<&P, OwnerRecorded, N> { + self.event_filter::() + } + } +} diff --git a/bindings/rust/src/liveness_module.rs b/bindings/rust/src/liveness_module.rs new file mode 100644 index 000000000..e37d8fd56 --- /dev/null +++ b/bindings/rust/src/liveness_module.rs @@ -0,0 +1,3499 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface LivenessModule { + error OwnerRemovalFailed(string); + + event OwnershipTransferredToFallback(); + event RemovedOwner(address indexed owner); + + constructor(address _safe, address _livenessGuard, uint256 _livenessInterval, uint256 _minOwners, uint256 _thresholdPercentage, address _fallbackOwner); + + function canRemove(address _owner) external view returns (bool canRemove_); + function fallbackOwner() external view returns (address fallbackOwner_); + function getRequiredThreshold(uint256 _numOwners) external view returns (uint256 threshold_); + function livenessGuard() external view returns (address livenessGuard_); + function livenessInterval() external view returns (uint256 livenessInterval_); + function minOwners() external view returns (uint256 minOwners_); + function ownershipTransferredToFallback() external view returns (bool); + function removeOwners(address[] memory _previousOwners, address[] memory _ownersToRemove) external; + function safe() external view returns (address safe_); + function thresholdPercentage() external view returns (uint256 thresholdPercentage_); + function version() external view returns (string memory); +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "constructor", + "inputs": [ + { + "name": "_safe", + "type": "address", + "internalType": "contract Safe" + }, + { + "name": "_livenessGuard", + "type": "address", + "internalType": "contract LivenessGuard" + }, + { + "name": "_livenessInterval", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_minOwners", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_thresholdPercentage", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_fallbackOwner", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "canRemove", + "inputs": [ + { + "name": "_owner", + "type": "address", + "internalType": "address" + } + ], + "outputs": [ + { + "name": "canRemove_", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "fallbackOwner", + "inputs": [], + "outputs": [ + { + "name": "fallbackOwner_", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "getRequiredThreshold", + "inputs": [ + { + "name": "_numOwners", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "threshold_", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "livenessGuard", + "inputs": [], + "outputs": [ + { + "name": "livenessGuard_", + "type": "address", + "internalType": "contract LivenessGuard" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "livenessInterval", + "inputs": [], + "outputs": [ + { + "name": "livenessInterval_", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "minOwners", + "inputs": [], + "outputs": [ + { + "name": "minOwners_", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "ownershipTransferredToFallback", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "removeOwners", + "inputs": [ + { + "name": "_previousOwners", + "type": "address[]", + "internalType": "address[]" + }, + { + "name": "_ownersToRemove", + "type": "address[]", + "internalType": "address[]" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "safe", + "inputs": [], + "outputs": [ + { + "name": "safe_", + "type": "address", + "internalType": "contract Safe" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "thresholdPercentage", + "inputs": [], + "outputs": [ + { + "name": "thresholdPercentage_", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "version", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "view" + }, + { + "type": "event", + "name": "OwnershipTransferredToFallback", + "inputs": [], + "anonymous": false + }, + { + "type": "event", + "name": "RemovedOwner", + "inputs": [ + { + "name": "owner", + "type": "address", + "indexed": true, + "internalType": "address" + } + ], + "anonymous": false + }, + { + "type": "error", + "name": "OwnerRemovalFailed", + "inputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ] + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod LivenessModule { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x6101406040523480156200001257600080fd5b5060405162001d7138038062001d71833981016040819052620000359162000260565b6001600160a01b03808716608081905286821660a05260c08690526101008490529082166101205260e08490526040805163a0e67e2b60e01b815290516000929163a0e67e2b91600480830192869291908290030181865afa158015620000a0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052620000ca9190810190620002e7565b905080518411156200014b576040805162461bcd60e51b81526020600482015260248101919091527f4c6976656e6573734d6f64756c653a206d696e4f776e657273206d757374206260448201527f65206c657373207468616e20746865206e756d626572206f66206f776e65727360648201526084015b60405180910390fd5b60008311620001b25760405162461bcd60e51b815260206004820152603a602482015260008051602062001d5183398151915260448201527f616765206d7573742062652067726561746572207468616e2030000000000000606482015260840162000142565b6064831115620002285760405162461bcd60e51b8152602060048201526045602482015260008051602062001d5183398151915260448201527f616765206d757374206265206c657373207468616e206f7220657175616c207460648201526406f203130360dc1b608482015260a40162000142565b50505050505050620003b9565b6001600160a01b03811681146200024b57600080fd5b50565b80516200025b8162000235565b919050565b60008060008060008060c087890312156200027a57600080fd5b8651620002878162000235565b60208801519096506200029a8162000235565b8095505060408701519350606087015192506080870151915060a0870151620002c38162000235565b809150509295509295509295565b634e487b7160e01b600052604160045260246000fd5b60006020808385031215620002fb57600080fd5b82516001600160401b03808211156200031357600080fd5b818501915085601f8301126200032857600080fd5b8151818111156200033d576200033d620002d1565b8060051b604051601f19603f83011681018181108582111715620003655762000365620002d1565b6040529182528482019250838101850191888311156200038457600080fd5b938501935b82851015620003ad576200039d856200024e565b8452938501939285019262000389565b98975050505050505050565b60805160a05160c05160e05161010051610120516118e062000471600039600081816101fe015281816109630152611063015260008181610172015261028c01526000818161014c0152818161072f0152610a5d01526000818161011c015261045b0152600081816102370152818161047d0152610d7601526000818160d0015281816103140152818161058e015281816108a401528181610b3501528181610cb001528181610e6e015261109001526118e06000f3fe608060405234801561001057600080fd5b50600436106100c95760003560e01c80635b2e9c0311610081578063be81c6941161005b578063be81c69414610235578063d45996f11461025b578063f6ac15c41461026e57600080fd5b80635b2e9c03146101df578063602b263b146101fc57806386644d1e1461022257600080fd5b80634b810d3e116100b25780634b810d3e1461014a5780634ed2859e1461017057806354fd4d501461019657600080fd5b8063186f0354146100ce57806338af7c5c1461011a575b600080fd5b7f00000000000000000000000000000000000000000000000000000000000000005b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b7f00000000000000000000000000000000000000000000000000000000000000005b604051908152602001610111565b7f000000000000000000000000000000000000000000000000000000000000000061013c565b7f000000000000000000000000000000000000000000000000000000000000000061013c565b6101d26040518060400160405280600581526020017f312e332e3000000000000000000000000000000000000000000000000000000081525081565b60405161011191906112e1565b6000546101ec9060ff1681565b6040519015158152602001610111565b7f00000000000000000000000000000000000000000000000000000000000000006100f0565b61013c6102303660046112fb565b610283565b7f00000000000000000000000000000000000000000000000000000000000000006100f0565b6101ec610269366004611339565b6102cc565b61028161027c36600461146c565b6104f9565b005b600060646102b17f0000000000000000000000000000000000000000000000000000000000000000846114ff565b6102bc90606361153c565b6102c69190611554565b92915050565b6040517f2f54bf6e00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82811660048301526000917f000000000000000000000000000000000000000000000000000000000000000090911690632f54bf6e90602401602060405180830381865afa15801561035d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061038191906115a4565b61041457604080517f08c379a00000000000000000000000000000000000000000000000000000000081526020600482015260248101919091527f4c6976656e6573734d6f64756c653a20746865206f776e657220746f2072656d60448201527f6f7665206d75737420626520616e206f776e6572206f6620746865205361666560648201526084015b60405180910390fd5b6040517fe458779b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff838116600483015242917f0000000000000000000000000000000000000000000000000000000000000000917f0000000000000000000000000000000000000000000000000000000000000000169063e458779b90602401602060405180830381865afa1580156104c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104e891906115bf565b6104f2919061153c565b1092915050565b805182511461058a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f4c6976656e6573734d6f64756c653a20617272617973206d757374206265207460448201527f68652073616d65206c656e677468000000000000000000000000000000000000606482015260840161040b565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a0e67e2b6040518163ffffffff1660e01b8152600401600060405180830381865afa1580156105f7573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405261063d91908101906115d8565b60005490915060ff161561071f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152606f60248201527f4c6976656e6573734d6f64756c653a205468652073616665206861732062656560448201527f6e2073687574646f776e2c20746865204c6976656e6573734d6f64756c65206160648201527f6e64204c6976656e65737347756172642073686f756c642062652072656d6f7660848201527f6564206f72207265706c616365642e000000000000000000000000000000000060a482015260c40161040b565b805160005b8451811015610864577f000000000000000000000000000000000000000000000000000000000000000082106108025761077684828151811061076957610769611672565b60200260200101516102cc565b610802576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f4c6976656e6573734d6f64756c653a20746865206f776e657220746f2072656d60448201527f6f766520686173207369676e656420726563656e746c79000000000000000000606482015260840161040b565b8161080c816116a1565b92505061084c85828151811061082457610824611672565b602002602001015185838151811061083e5761083e611672565b602002602001015184610873565b8115610864578061085c816116d6565b915050610724565b5061086d6108a0565b50505050565b801561089157600061088482610283565b905061086d848483610e38565b61089b8383611039565b505050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a0e67e2b6040518163ffffffff1660e01b8152600401600060405180830381865afa15801561090d573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405261095391908101906115d8565b80519091506001819003610a5b577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16826000815181106109ab576109ab611672565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614610a56576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603960248201527f4c6976656e6573734d6f64756c653a206d757374207472616e73666572206f7760448201527f6e65727368697020746f2066616c6c6261636b206f776e657200000000000000606482015260840161040b565b610b31565b7f0000000000000000000000000000000000000000000000000000000000000000811015610b31576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152605e60248201527f4c6976656e6573734d6f64756c653a206d7573742072656d6f766520616c6c2060448201527f6f776e65727320616e64207472616e7366657220746f2066616c6c6261636b2060648201527f6f776e6572206966206e756d4f776e657273203c206d696e4f776e6572730000608482015260a40161040b565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e75235b86040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b9e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bc291906115bf565b9050610bcd82610283565b8114610c5b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603f60248201527f4c6976656e6573734d6f64756c653a20496e73756666696369656e742074687260448201527f6573686f6c6420666f7220746865206e756d626572206f66206f776e65727300606482015260840161040b565b6040517f5624b25b0000000000000000000000000000000000000000000000000000000081527f4a204f620c8c5ccdca3fd54d003badd85ba500436a431f0cbda4f558c93c34c86004820152600160248201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690635624b25b90604401600060405180830381865afa158015610d0c573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052610d529190810190611798565b610d5b906117cd565b60001c73ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff161461089b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4c6976656e6573734d6f64756c653a20677561726420686173206265656e206360448201527f68616e6765640000000000000000000000000000000000000000000000000000606482015260840161040b565b60405173ffffffffffffffffffffffffffffffffffffffff848116602483015283811660448301526064820183905260009182917f000000000000000000000000000000000000000000000000000000000000000090811691635229073f91908490608401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167ff8dc5dd900000000000000000000000000000000000000000000000000000000179052517fffffffff0000000000000000000000000000000000000000000000000000000060e086901b168152610f4f93929190600090600401611812565b6000604051808303816000875af1158015610f6e573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052610fb4919081019061188f565b9150915081610ff157806040517fe94e84e900000000000000000000000000000000000000000000000000000000815260040161040b91906112e1565b60405173ffffffffffffffffffffffffffffffffffffffff8516907ff8d49fc529812e9a7c5c50e69c20f0dccc0db8fa95c98bc58cc9a4f1c1299eaf90600090a25050505050565b60405173ffffffffffffffffffffffffffffffffffffffff838116602483015282811660448301527f00000000000000000000000000000000000000000000000000000000000000008116606483015260009182917f000000000000000000000000000000000000000000000000000000000000000090811691635229073f91908490608401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fe318b52b00000000000000000000000000000000000000000000000000000000179052517fffffffff0000000000000000000000000000000000000000000000000000000060e086901b16815261117193929190600090600401611812565b6000604051808303816000875af1158015611190573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526111d6919081019061188f565b915091508161121357806040517fe94e84e900000000000000000000000000000000000000000000000000000000815260040161040b91906112e1565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011781556040517f903af33ae084e750e45a10a53f61a69a4c5444f13a59954f5b3cf96e2862b5f49190a150505050565b60005b8381101561128657818101518382015260200161126e565b8381111561086d5750506000910152565b600081518084526112af81602086016020860161126b565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006112f46020830184611297565b9392505050565b60006020828403121561130d57600080fd5b5035919050565b73ffffffffffffffffffffffffffffffffffffffff8116811461133657600080fd5b50565b60006020828403121561134b57600080fd5b81356112f481611314565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff811182821017156113cc576113cc611356565b604052919050565b600067ffffffffffffffff8211156113ee576113ee611356565b5060051b60200190565b600082601f83011261140957600080fd5b8135602061141e611419836113d4565b611385565b82815260059290921b8401810191818101908684111561143d57600080fd5b8286015b8481101561146157803561145481611314565b8352918301918301611441565b509695505050505050565b6000806040838503121561147f57600080fd5b823567ffffffffffffffff8082111561149757600080fd5b6114a3868387016113f8565b935060208501359150808211156114b957600080fd5b506114c6858286016113f8565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615611537576115376114d0565b500290565b6000821982111561154f5761154f6114d0565b500190565b60008261158a577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b8051801515811461159f57600080fd5b919050565b6000602082840312156115b657600080fd5b6112f48261158f565b6000602082840312156115d157600080fd5b5051919050565b600060208083850312156115eb57600080fd5b825167ffffffffffffffff81111561160257600080fd5b8301601f8101851361161357600080fd5b8051611621611419826113d4565b81815260059190911b8201830190838101908783111561164057600080fd5b928401925b8284101561166757835161165881611314565b82529284019290840190611645565b979650505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000816116b0576116b06114d0565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611707576117076114d0565b5060010190565b600082601f83011261171f57600080fd5b815167ffffffffffffffff81111561173957611739611356565b61176a60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601611385565b81815284602083860101111561177f57600080fd5b61179082602083016020870161126b565b949350505050565b6000602082840312156117aa57600080fd5b815167ffffffffffffffff8111156117c157600080fd5b6117908482850161170e565b8051602080830151919081101561180c577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8160200360031b1b821691505b50919050565b73ffffffffffffffffffffffffffffffffffffffff851681528360208201526080604082015260006118476080830185611297565b905060028310611880577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b82606083015295945050505050565b600080604083850312156118a257600080fd5b6118ab8361158f565b9150602083015167ffffffffffffffff8111156118c757600080fd5b6114c68582860161170e56fea164736f6c634300080f000a4c6976656e6573734d6f64756c653a207468726573686f6c6450657263656e74 + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"a\x01@`@R4\x80\x15b\0\0\x12W`\0\x80\xFD[P`@Qb\0\x1Dq8\x03\x80b\0\x1Dq\x839\x81\x01`@\x81\x90Rb\0\x005\x91b\0\x02`V[`\x01`\x01`\xA0\x1B\x03\x80\x87\x16`\x80\x81\x90R\x86\x82\x16`\xA0R`\xC0\x86\x90Ra\x01\0\x84\x90R\x90\x82\x16a\x01 R`\xE0\x84\x90R`@\x80Qc\xA0\xE6~+`\xE0\x1B\x81R\x90Q`\0\x92\x91c\xA0\xE6~+\x91`\x04\x80\x83\x01\x92\x86\x92\x91\x90\x82\x90\x03\x01\x81\x86Z\xFA\x15\x80\x15b\0\0\xA0W=`\0\x80>=`\0\xFD[PPPP`@Q=`\0\x82>`\x1F=\x90\x81\x01`\x1F\x19\x16\x82\x01`@Rb\0\0\xCA\x91\x90\x81\x01\x90b\0\x02\xE7V[\x90P\x80Q\x84\x11\x15b\0\x01KW`@\x80QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`$\x81\x01\x91\x90\x91R\x7FLivenessModule: minOwners must b`D\x82\x01R\x7Fe less than the number of owners`d\x82\x01R`\x84\x01[`@Q\x80\x91\x03\x90\xFD[`\0\x83\x11b\0\x01\xB2W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`:`$\x82\x01R`\0\x80Q` b\0\x1DQ\x839\x81Q\x91R`D\x82\x01R\x7Fage must be greater than 0\0\0\0\0\0\0`d\x82\x01R`\x84\x01b\0\x01BV[`d\x83\x11\x15b\0\x02(W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`E`$\x82\x01R`\0\x80Q` b\0\x1DQ\x839\x81Q\x91R`D\x82\x01R\x7Fage must be less than or equal t`d\x82\x01Rd\x06\xF2\x03\x13\x03`\xDC\x1B`\x84\x82\x01R`\xA4\x01b\0\x01BV[PPPPPPPb\0\x03\xB9V[`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14b\0\x02KW`\0\x80\xFD[PV[\x80Qb\0\x02[\x81b\0\x025V[\x91\x90PV[`\0\x80`\0\x80`\0\x80`\xC0\x87\x89\x03\x12\x15b\0\x02zW`\0\x80\xFD[\x86Qb\0\x02\x87\x81b\0\x025V[` \x88\x01Q\x90\x96Pb\0\x02\x9A\x81b\0\x025V[\x80\x95PP`@\x87\x01Q\x93P``\x87\x01Q\x92P`\x80\x87\x01Q\x91P`\xA0\x87\x01Qb\0\x02\xC3\x81b\0\x025V[\x80\x91PP\x92\x95P\x92\x95P\x92\x95V[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[`\0` \x80\x83\x85\x03\x12\x15b\0\x02\xFBW`\0\x80\xFD[\x82Q`\x01`\x01`@\x1B\x03\x80\x82\x11\x15b\0\x03\x13W`\0\x80\xFD[\x81\x85\x01\x91P\x85`\x1F\x83\x01\x12b\0\x03(W`\0\x80\xFD[\x81Q\x81\x81\x11\x15b\0\x03=Wb\0\x03=b\0\x02\xD1V[\x80`\x05\x1B`@Q`\x1F\x19`?\x83\x01\x16\x81\x01\x81\x81\x10\x85\x82\x11\x17\x15b\0\x03eWb\0\x03eb\0\x02\xD1V[`@R\x91\x82R\x84\x82\x01\x92P\x83\x81\x01\x85\x01\x91\x88\x83\x11\x15b\0\x03\x84W`\0\x80\xFD[\x93\x85\x01\x93[\x82\x85\x10\x15b\0\x03\xADWb\0\x03\x9D\x85b\0\x02NV[\x84R\x93\x85\x01\x93\x92\x85\x01\x92b\0\x03\x89V[\x98\x97PPPPPPPPV[`\x80Q`\xA0Q`\xC0Q`\xE0Qa\x01\0Qa\x01 Qa\x18\xE0b\0\x04q`\09`\0\x81\x81a\x01\xFE\x01R\x81\x81a\tc\x01Ra\x10c\x01R`\0\x81\x81a\x01r\x01Ra\x02\x8C\x01R`\0\x81\x81a\x01L\x01R\x81\x81a\x07/\x01Ra\n]\x01R`\0\x81\x81a\x01\x1C\x01Ra\x04[\x01R`\0\x81\x81a\x027\x01R\x81\x81a\x04}\x01Ra\rv\x01R`\0\x81\x81`\xD0\x01R\x81\x81a\x03\x14\x01R\x81\x81a\x05\x8E\x01R\x81\x81a\x08\xA4\x01R\x81\x81a\x0B5\x01R\x81\x81a\x0C\xB0\x01R\x81\x81a\x0En\x01Ra\x10\x90\x01Ra\x18\xE0`\0\xF3\xFE`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`\x046\x10a\0\xC9W`\x005`\xE0\x1C\x80c[.\x9C\x03\x11a\0\x81W\x80c\xBE\x81\xC6\x94\x11a\0[W\x80c\xBE\x81\xC6\x94\x14a\x025W\x80c\xD4Y\x96\xF1\x14a\x02[W\x80c\xF6\xAC\x15\xC4\x14a\x02nW`\0\x80\xFD[\x80c[.\x9C\x03\x14a\x01\xDFW\x80c`+&;\x14a\x01\xFCW\x80c\x86dM\x1E\x14a\x02\"W`\0\x80\xFD[\x80cK\x81\r>\x11a\0\xB2W\x80cK\x81\r>\x14a\x01JW\x80cN\xD2\x85\x9E\x14a\x01pW\x80cT\xFDMP\x14a\x01\x96W`\0\x80\xFD[\x80c\x18o\x03T\x14a\0\xCEW\x80c8\xAF|\\\x14a\x01\x1AW[`\0\x80\xFD[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0[`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0[`@Q\x90\x81R` \x01a\x01\x11V[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x01=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x03\x81\x91\x90a\x15\xA4V[a\x04\x14W`@\x80Q\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\x82\x01R`$\x81\x01\x91\x90\x91R\x7FLivenessModule: the owner to rem`D\x82\x01R\x7Fove must be an owner of the Safe`d\x82\x01R`\x84\x01[`@Q\x80\x91\x03\x90\xFD[`@Q\x7F\xE4Xw\x9B\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\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x81\x16`\x04\x83\x01RB\x91\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x91\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x90c\xE4Xw\x9B\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x04\xC4W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x04\xE8\x91\x90a\x15\xBFV[a\x04\xF2\x91\x90a\x15=`\0\xFD[PPPP`@Q=`\0\x82>`\x1F=\x90\x81\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x82\x01`@Ra\x06=\x91\x90\x81\x01\x90a\x15\xD8V[`\0T\x90\x91P`\xFF\x16\x15a\x07\x1FW`@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\x82\x01R`o`$\x82\x01R\x7FLivenessModule: The safe has bee`D\x82\x01R\x7Fn shutdown, the LivenessModule a`d\x82\x01R\x7Fnd LivenessGuard should be remov`\x84\x82\x01R\x7Fed or replaced.\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\xA4\x82\x01R`\xC4\x01a\x04\x0BV[\x80Q`\0[\x84Q\x81\x10\x15a\x08dW\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x82\x10a\x08\x02Wa\x07v\x84\x82\x81Q\x81\x10a\x07iWa\x07ia\x16rV[` \x02` \x01\x01Qa\x02\xCCV[a\x08\x02W`@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\x82\x01R`7`$\x82\x01R\x7FLivenessModule: the owner to rem`D\x82\x01R\x7Fove has signed recently\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x04\x0BV[\x81a\x08\x0C\x81a\x16\xA1V[\x92PPa\x08L\x85\x82\x81Q\x81\x10a\x08$Wa\x08$a\x16rV[` \x02` \x01\x01Q\x85\x83\x81Q\x81\x10a\x08>Wa\x08>a\x16rV[` \x02` \x01\x01Q\x84a\x08sV[\x81\x15a\x08dW\x80a\x08\\\x81a\x16\xD6V[\x91PPa\x07$V[Pa\x08ma\x08\xA0V[PPPPV[\x80\x15a\x08\x91W`\0a\x08\x84\x82a\x02\x83V[\x90Pa\x08m\x84\x84\x83a\x0E8V[a\x08\x9B\x83\x83a\x109V[PPPV[`\0\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xA0\xE6~+`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01`\0`@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\t\rW=`\0\x80>=`\0\xFD[PPPP`@Q=`\0\x82>`\x1F=\x90\x81\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x82\x01`@Ra\tS\x91\x90\x81\x01\x90a\x15\xD8V[\x80Q\x90\x91P`\x01\x81\x90\x03a\n[W\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x82`\0\x81Q\x81\x10a\t\xABWa\t\xABa\x16rV[` \x02` \x01\x01Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14a\nVW`@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\x82\x01R`9`$\x82\x01R\x7FLivenessModule: must transfer ow`D\x82\x01R\x7Fnership to fallback owner\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x04\x0BV[a\x0B1V[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81\x10\x15a\x0B1W`@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\x82\x01R`^`$\x82\x01R\x7FLivenessModule: must remove all `D\x82\x01R\x7Fowners and transfer to fallback `d\x82\x01R\x7Fowner if numOwners < minOwners\0\0`\x84\x82\x01R`\xA4\x01a\x04\x0BV[`\0\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xE7R5\xB8`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x0B\x9EW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x0B\xC2\x91\x90a\x15\xBFV[\x90Pa\x0B\xCD\x82a\x02\x83V[\x81\x14a\x0C[W`@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\x82\x01R`?`$\x82\x01R\x7FLivenessModule: Insufficient thr`D\x82\x01R\x7Feshold for the number of owners\0`d\x82\x01R`\x84\x01a\x04\x0BV[`@Q\x7FV$\xB2[\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\x7FJ Ob\x0C\x8C\\\xCD\xCA?\xD5M\0;\xAD\xD8[\xA5\0CjC\x1F\x0C\xBD\xA4\xF5X\xC9<4\xC8`\x04\x82\x01R`\x01`$\x82\x01R\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90cV$\xB2[\x90`D\x01`\0`@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\r\x0CW=`\0\x80>=`\0\xFD[PPPP`@Q=`\0\x82>`\x1F=\x90\x81\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x82\x01`@Ra\rR\x91\x90\x81\x01\x90a\x17\x98V[a\r[\x90a\x17\xCDV[`\0\x1Cs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14a\x08\x9BW`@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\x82\x01R`&`$\x82\x01R\x7FLivenessModule: guard has been c`D\x82\x01R\x7Fhanged\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`d\x82\x01R`\x84\x01a\x04\x0BV[`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x81\x16`$\x83\x01R\x83\x81\x16`D\x83\x01R`d\x82\x01\x83\x90R`\0\x91\x82\x91\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x81\x16\x91cR)\x07?\x91\x90\x84\x90`\x84\x01`@\x80Q\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x81\x84\x03\x01\x81R\x91\x81R` \x82\x01\x80Q{\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xF8\xDC]\xD9\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\x17\x90RQ\x7F\xFF\xFF\xFF\xFF\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`\xE0\x86\x90\x1B\x16\x81Ra\x0FO\x93\x92\x91\x90`\0\x90`\x04\x01a\x18\x12V[`\0`@Q\x80\x83\x03\x81`\0\x87Z\xF1\x15\x80\x15a\x0FnW=`\0\x80>=`\0\xFD[PPPP`@Q=`\0\x82>`\x1F=\x90\x81\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x82\x01`@Ra\x0F\xB4\x91\x90\x81\x01\x90a\x18\x8FV[\x91P\x91P\x81a\x0F\xF1W\x80`@Q\x7F\xE9N\x84\xE9\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\x04\x0B\x91\x90a\x12\xE1V[`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x85\x16\x90\x7F\xF8\xD4\x9F\xC5)\x81.\x9A|\\P\xE6\x9C \xF0\xDC\xCC\r\xB8\xFA\x95\xC9\x8B\xC5\x8C\xC9\xA4\xF1\xC1)\x9E\xAF\x90`\0\x90\xA2PPPPPV[`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x81\x16`$\x83\x01R\x82\x81\x16`D\x83\x01R\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81\x16`d\x83\x01R`\0\x91\x82\x91\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x81\x16\x91cR)\x07?\x91\x90\x84\x90`\x84\x01`@\x80Q\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x81\x84\x03\x01\x81R\x91\x81R` \x82\x01\x80Q{\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xE3\x18\xB5+\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\x17\x90RQ\x7F\xFF\xFF\xFF\xFF\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`\xE0\x86\x90\x1B\x16\x81Ra\x11q\x93\x92\x91\x90`\0\x90`\x04\x01a\x18\x12V[`\0`@Q\x80\x83\x03\x81`\0\x87Z\xF1\x15\x80\x15a\x11\x90W=`\0\x80>=`\0\xFD[PPPP`@Q=`\0\x82>`\x1F=\x90\x81\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x82\x01`@Ra\x11\xD6\x91\x90\x81\x01\x90a\x18\x8FV[\x91P\x91P\x81a\x12\x13W\x80`@Q\x7F\xE9N\x84\xE9\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\x04\x0B\x91\x90a\x12\xE1V[`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x16`\x01\x17\x81U`@Q\x7F\x90:\xF3:\xE0\x84\xE7P\xE4Z\x10\xA5?a\xA6\x9ALTD\xF1:Y\x95O[<\xF9n(b\xB5\xF4\x91\x90\xA1PPPPV[`\0[\x83\x81\x10\x15a\x12\x86W\x81\x81\x01Q\x83\x82\x01R` \x01a\x12nV[\x83\x81\x11\x15a\x08mWPP`\0\x91\x01RV[`\0\x81Q\x80\x84Ra\x12\xAF\x81` \x86\x01` \x86\x01a\x12kV[`\x1F\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x92\x90\x92\x01` \x01\x92\x91PPV[` \x81R`\0a\x12\xF4` \x83\x01\x84a\x12\x97V[\x93\x92PPPV[`\0` \x82\x84\x03\x12\x15a\x13\rW`\0\x80\xFD[P5\x91\x90PV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x136W`\0\x80\xFD[PV[`\0` \x82\x84\x03\x12\x15a\x13KW`\0\x80\xFD[\x815a\x12\xF4\x81a\x13\x14V[\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[`@Q`\x1F\x82\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a\x13\xCCWa\x13\xCCa\x13VV[`@R\x91\x90PV[`\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x15a\x13\xEEWa\x13\xEEa\x13VV[P`\x05\x1B` \x01\x90V[`\0\x82`\x1F\x83\x01\x12a\x14\tW`\0\x80\xFD[\x815` a\x14\x1Ea\x14\x19\x83a\x13\xD4V[a\x13\x85V[\x82\x81R`\x05\x92\x90\x92\x1B\x84\x01\x81\x01\x91\x81\x81\x01\x90\x86\x84\x11\x15a\x14=W`\0\x80\xFD[\x82\x86\x01[\x84\x81\x10\x15a\x14aW\x805a\x14T\x81a\x13\x14V[\x83R\x91\x83\x01\x91\x83\x01a\x14AV[P\x96\x95PPPPPPV[`\0\x80`@\x83\x85\x03\x12\x15a\x14\x7FW`\0\x80\xFD[\x825g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x14\x97W`\0\x80\xFD[a\x14\xA3\x86\x83\x87\x01a\x13\xF8V[\x93P` \x85\x015\x91P\x80\x82\x11\x15a\x14\xB9W`\0\x80\xFD[Pa\x14\xC6\x85\x82\x86\x01a\x13\xF8V[\x91PP\x92P\x92\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`\x11`\x04R`$`\0\xFD[`\0\x81\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x04\x83\x11\x82\x15\x15\x16\x15a\x157Wa\x157a\x14\xD0V[P\x02\x90V[`\0\x82\x19\x82\x11\x15a\x15OWa\x15Oa\x14\xD0V[P\x01\x90V[`\0\x82a\x15\x8AW\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`\x12`\x04R`$`\0\xFD[P\x04\x90V[\x80Q\x80\x15\x15\x81\x14a\x15\x9FW`\0\x80\xFD[\x91\x90PV[`\0` \x82\x84\x03\x12\x15a\x15\xB6W`\0\x80\xFD[a\x12\xF4\x82a\x15\x8FV[`\0` \x82\x84\x03\x12\x15a\x15\xD1W`\0\x80\xFD[PQ\x91\x90PV[`\0` \x80\x83\x85\x03\x12\x15a\x15\xEBW`\0\x80\xFD[\x82Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x16\x02W`\0\x80\xFD[\x83\x01`\x1F\x81\x01\x85\x13a\x16\x13W`\0\x80\xFD[\x80Qa\x16!a\x14\x19\x82a\x13\xD4V[\x81\x81R`\x05\x91\x90\x91\x1B\x82\x01\x83\x01\x90\x83\x81\x01\x90\x87\x83\x11\x15a\x16@W`\0\x80\xFD[\x92\x84\x01\x92[\x82\x84\x10\x15a\x16gW\x83Qa\x16X\x81a\x13\x14V[\x82R\x92\x84\x01\x92\x90\x84\x01\x90a\x16EV[\x97\x96PPPPPPPV[\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`2`\x04R`$`\0\xFD[`\0\x81a\x16\xB0Wa\x16\xB0a\x14\xD0V[P\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x01\x90V[`\0\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x03a\x17\x07Wa\x17\x07a\x14\xD0V[P`\x01\x01\x90V[`\0\x82`\x1F\x83\x01\x12a\x17\x1FW`\0\x80\xFD[\x81Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x179Wa\x179a\x13VV[a\x17j` \x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0`\x1F\x84\x01\x16\x01a\x13\x85V[\x81\x81R\x84` \x83\x86\x01\x01\x11\x15a\x17\x7FW`\0\x80\xFD[a\x17\x90\x82` \x83\x01` \x87\x01a\x12kV[\x94\x93PPPPV[`\0` \x82\x84\x03\x12\x15a\x17\xAAW`\0\x80\xFD[\x81Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x17\xC1W`\0\x80\xFD[a\x17\x90\x84\x82\x85\x01a\x17\x0EV[\x80Q` \x80\x83\x01Q\x91\x90\x81\x10\x15a\x18\x0CW\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81` \x03`\x03\x1B\x1B\x82\x16\x91P[P\x91\x90PV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x85\x16\x81R\x83` \x82\x01R`\x80`@\x82\x01R`\0a\x18G`\x80\x83\x01\x85a\x12\x97V[\x90P`\x02\x83\x10a\x18\x80W\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`!`\x04R`$`\0\xFD[\x82``\x83\x01R\x95\x94PPPPPV[`\0\x80`@\x83\x85\x03\x12\x15a\x18\xA2W`\0\x80\xFD[a\x18\xAB\x83a\x15\x8FV[\x91P` \x83\x01Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x18\xC7W`\0\x80\xFD[a\x14\xC6\x85\x82\x86\x01a\x17\x0EV\xFE\xA1dsolcC\0\x08\x0F\0\nLivenessModule: thresholdPercent", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x608060405234801561001057600080fd5b50600436106100c95760003560e01c80635b2e9c0311610081578063be81c6941161005b578063be81c69414610235578063d45996f11461025b578063f6ac15c41461026e57600080fd5b80635b2e9c03146101df578063602b263b146101fc57806386644d1e1461022257600080fd5b80634b810d3e116100b25780634b810d3e1461014a5780634ed2859e1461017057806354fd4d501461019657600080fd5b8063186f0354146100ce57806338af7c5c1461011a575b600080fd5b7f00000000000000000000000000000000000000000000000000000000000000005b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b7f00000000000000000000000000000000000000000000000000000000000000005b604051908152602001610111565b7f000000000000000000000000000000000000000000000000000000000000000061013c565b7f000000000000000000000000000000000000000000000000000000000000000061013c565b6101d26040518060400160405280600581526020017f312e332e3000000000000000000000000000000000000000000000000000000081525081565b60405161011191906112e1565b6000546101ec9060ff1681565b6040519015158152602001610111565b7f00000000000000000000000000000000000000000000000000000000000000006100f0565b61013c6102303660046112fb565b610283565b7f00000000000000000000000000000000000000000000000000000000000000006100f0565b6101ec610269366004611339565b6102cc565b61028161027c36600461146c565b6104f9565b005b600060646102b17f0000000000000000000000000000000000000000000000000000000000000000846114ff565b6102bc90606361153c565b6102c69190611554565b92915050565b6040517f2f54bf6e00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82811660048301526000917f000000000000000000000000000000000000000000000000000000000000000090911690632f54bf6e90602401602060405180830381865afa15801561035d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061038191906115a4565b61041457604080517f08c379a00000000000000000000000000000000000000000000000000000000081526020600482015260248101919091527f4c6976656e6573734d6f64756c653a20746865206f776e657220746f2072656d60448201527f6f7665206d75737420626520616e206f776e6572206f6620746865205361666560648201526084015b60405180910390fd5b6040517fe458779b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff838116600483015242917f0000000000000000000000000000000000000000000000000000000000000000917f0000000000000000000000000000000000000000000000000000000000000000169063e458779b90602401602060405180830381865afa1580156104c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104e891906115bf565b6104f2919061153c565b1092915050565b805182511461058a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f4c6976656e6573734d6f64756c653a20617272617973206d757374206265207460448201527f68652073616d65206c656e677468000000000000000000000000000000000000606482015260840161040b565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a0e67e2b6040518163ffffffff1660e01b8152600401600060405180830381865afa1580156105f7573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405261063d91908101906115d8565b60005490915060ff161561071f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152606f60248201527f4c6976656e6573734d6f64756c653a205468652073616665206861732062656560448201527f6e2073687574646f776e2c20746865204c6976656e6573734d6f64756c65206160648201527f6e64204c6976656e65737347756172642073686f756c642062652072656d6f7660848201527f6564206f72207265706c616365642e000000000000000000000000000000000060a482015260c40161040b565b805160005b8451811015610864577f000000000000000000000000000000000000000000000000000000000000000082106108025761077684828151811061076957610769611672565b60200260200101516102cc565b610802576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f4c6976656e6573734d6f64756c653a20746865206f776e657220746f2072656d60448201527f6f766520686173207369676e656420726563656e746c79000000000000000000606482015260840161040b565b8161080c816116a1565b92505061084c85828151811061082457610824611672565b602002602001015185838151811061083e5761083e611672565b602002602001015184610873565b8115610864578061085c816116d6565b915050610724565b5061086d6108a0565b50505050565b801561089157600061088482610283565b905061086d848483610e38565b61089b8383611039565b505050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a0e67e2b6040518163ffffffff1660e01b8152600401600060405180830381865afa15801561090d573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405261095391908101906115d8565b80519091506001819003610a5b577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16826000815181106109ab576109ab611672565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614610a56576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603960248201527f4c6976656e6573734d6f64756c653a206d757374207472616e73666572206f7760448201527f6e65727368697020746f2066616c6c6261636b206f776e657200000000000000606482015260840161040b565b610b31565b7f0000000000000000000000000000000000000000000000000000000000000000811015610b31576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152605e60248201527f4c6976656e6573734d6f64756c653a206d7573742072656d6f766520616c6c2060448201527f6f776e65727320616e64207472616e7366657220746f2066616c6c6261636b2060648201527f6f776e6572206966206e756d4f776e657273203c206d696e4f776e6572730000608482015260a40161040b565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e75235b86040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b9e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bc291906115bf565b9050610bcd82610283565b8114610c5b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603f60248201527f4c6976656e6573734d6f64756c653a20496e73756666696369656e742074687260448201527f6573686f6c6420666f7220746865206e756d626572206f66206f776e65727300606482015260840161040b565b6040517f5624b25b0000000000000000000000000000000000000000000000000000000081527f4a204f620c8c5ccdca3fd54d003badd85ba500436a431f0cbda4f558c93c34c86004820152600160248201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690635624b25b90604401600060405180830381865afa158015610d0c573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052610d529190810190611798565b610d5b906117cd565b60001c73ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff161461089b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4c6976656e6573734d6f64756c653a20677561726420686173206265656e206360448201527f68616e6765640000000000000000000000000000000000000000000000000000606482015260840161040b565b60405173ffffffffffffffffffffffffffffffffffffffff848116602483015283811660448301526064820183905260009182917f000000000000000000000000000000000000000000000000000000000000000090811691635229073f91908490608401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167ff8dc5dd900000000000000000000000000000000000000000000000000000000179052517fffffffff0000000000000000000000000000000000000000000000000000000060e086901b168152610f4f93929190600090600401611812565b6000604051808303816000875af1158015610f6e573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052610fb4919081019061188f565b9150915081610ff157806040517fe94e84e900000000000000000000000000000000000000000000000000000000815260040161040b91906112e1565b60405173ffffffffffffffffffffffffffffffffffffffff8516907ff8d49fc529812e9a7c5c50e69c20f0dccc0db8fa95c98bc58cc9a4f1c1299eaf90600090a25050505050565b60405173ffffffffffffffffffffffffffffffffffffffff838116602483015282811660448301527f00000000000000000000000000000000000000000000000000000000000000008116606483015260009182917f000000000000000000000000000000000000000000000000000000000000000090811691635229073f91908490608401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fe318b52b00000000000000000000000000000000000000000000000000000000179052517fffffffff0000000000000000000000000000000000000000000000000000000060e086901b16815261117193929190600090600401611812565b6000604051808303816000875af1158015611190573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526111d6919081019061188f565b915091508161121357806040517fe94e84e900000000000000000000000000000000000000000000000000000000815260040161040b91906112e1565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011781556040517f903af33ae084e750e45a10a53f61a69a4c5444f13a59954f5b3cf96e2862b5f49190a150505050565b60005b8381101561128657818101518382015260200161126e565b8381111561086d5750506000910152565b600081518084526112af81602086016020860161126b565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006112f46020830184611297565b9392505050565b60006020828403121561130d57600080fd5b5035919050565b73ffffffffffffffffffffffffffffffffffffffff8116811461133657600080fd5b50565b60006020828403121561134b57600080fd5b81356112f481611314565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff811182821017156113cc576113cc611356565b604052919050565b600067ffffffffffffffff8211156113ee576113ee611356565b5060051b60200190565b600082601f83011261140957600080fd5b8135602061141e611419836113d4565b611385565b82815260059290921b8401810191818101908684111561143d57600080fd5b8286015b8481101561146157803561145481611314565b8352918301918301611441565b509695505050505050565b6000806040838503121561147f57600080fd5b823567ffffffffffffffff8082111561149757600080fd5b6114a3868387016113f8565b935060208501359150808211156114b957600080fd5b506114c6858286016113f8565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615611537576115376114d0565b500290565b6000821982111561154f5761154f6114d0565b500190565b60008261158a577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b8051801515811461159f57600080fd5b919050565b6000602082840312156115b657600080fd5b6112f48261158f565b6000602082840312156115d157600080fd5b5051919050565b600060208083850312156115eb57600080fd5b825167ffffffffffffffff81111561160257600080fd5b8301601f8101851361161357600080fd5b8051611621611419826113d4565b81815260059190911b8201830190838101908783111561164057600080fd5b928401925b8284101561166757835161165881611314565b82529284019290840190611645565b979650505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000816116b0576116b06114d0565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611707576117076114d0565b5060010190565b600082601f83011261171f57600080fd5b815167ffffffffffffffff81111561173957611739611356565b61176a60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601611385565b81815284602083860101111561177f57600080fd5b61179082602083016020870161126b565b949350505050565b6000602082840312156117aa57600080fd5b815167ffffffffffffffff8111156117c157600080fd5b6117908482850161170e565b8051602080830151919081101561180c577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8160200360031b1b821691505b50919050565b73ffffffffffffffffffffffffffffffffffffffff851681528360208201526080604082015260006118476080830185611297565b905060028310611880577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b82606083015295945050505050565b600080604083850312156118a257600080fd5b6118ab8361158f565b9150602083015167ffffffffffffffff8111156118c757600080fd5b6114c68582860161170e56fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`\x046\x10a\0\xC9W`\x005`\xE0\x1C\x80c[.\x9C\x03\x11a\0\x81W\x80c\xBE\x81\xC6\x94\x11a\0[W\x80c\xBE\x81\xC6\x94\x14a\x025W\x80c\xD4Y\x96\xF1\x14a\x02[W\x80c\xF6\xAC\x15\xC4\x14a\x02nW`\0\x80\xFD[\x80c[.\x9C\x03\x14a\x01\xDFW\x80c`+&;\x14a\x01\xFCW\x80c\x86dM\x1E\x14a\x02\"W`\0\x80\xFD[\x80cK\x81\r>\x11a\0\xB2W\x80cK\x81\r>\x14a\x01JW\x80cN\xD2\x85\x9E\x14a\x01pW\x80cT\xFDMP\x14a\x01\x96W`\0\x80\xFD[\x80c\x18o\x03T\x14a\0\xCEW\x80c8\xAF|\\\x14a\x01\x1AW[`\0\x80\xFD[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0[`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0[`@Q\x90\x81R` \x01a\x01\x11V[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x01=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x03\x81\x91\x90a\x15\xA4V[a\x04\x14W`@\x80Q\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\x82\x01R`$\x81\x01\x91\x90\x91R\x7FLivenessModule: the owner to rem`D\x82\x01R\x7Fove must be an owner of the Safe`d\x82\x01R`\x84\x01[`@Q\x80\x91\x03\x90\xFD[`@Q\x7F\xE4Xw\x9B\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\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x81\x16`\x04\x83\x01RB\x91\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x91\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x90c\xE4Xw\x9B\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x04\xC4W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x04\xE8\x91\x90a\x15\xBFV[a\x04\xF2\x91\x90a\x15=`\0\xFD[PPPP`@Q=`\0\x82>`\x1F=\x90\x81\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x82\x01`@Ra\x06=\x91\x90\x81\x01\x90a\x15\xD8V[`\0T\x90\x91P`\xFF\x16\x15a\x07\x1FW`@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\x82\x01R`o`$\x82\x01R\x7FLivenessModule: The safe has bee`D\x82\x01R\x7Fn shutdown, the LivenessModule a`d\x82\x01R\x7Fnd LivenessGuard should be remov`\x84\x82\x01R\x7Fed or replaced.\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\xA4\x82\x01R`\xC4\x01a\x04\x0BV[\x80Q`\0[\x84Q\x81\x10\x15a\x08dW\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x82\x10a\x08\x02Wa\x07v\x84\x82\x81Q\x81\x10a\x07iWa\x07ia\x16rV[` \x02` \x01\x01Qa\x02\xCCV[a\x08\x02W`@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\x82\x01R`7`$\x82\x01R\x7FLivenessModule: the owner to rem`D\x82\x01R\x7Fove has signed recently\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x04\x0BV[\x81a\x08\x0C\x81a\x16\xA1V[\x92PPa\x08L\x85\x82\x81Q\x81\x10a\x08$Wa\x08$a\x16rV[` \x02` \x01\x01Q\x85\x83\x81Q\x81\x10a\x08>Wa\x08>a\x16rV[` \x02` \x01\x01Q\x84a\x08sV[\x81\x15a\x08dW\x80a\x08\\\x81a\x16\xD6V[\x91PPa\x07$V[Pa\x08ma\x08\xA0V[PPPPV[\x80\x15a\x08\x91W`\0a\x08\x84\x82a\x02\x83V[\x90Pa\x08m\x84\x84\x83a\x0E8V[a\x08\x9B\x83\x83a\x109V[PPPV[`\0\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xA0\xE6~+`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01`\0`@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\t\rW=`\0\x80>=`\0\xFD[PPPP`@Q=`\0\x82>`\x1F=\x90\x81\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x82\x01`@Ra\tS\x91\x90\x81\x01\x90a\x15\xD8V[\x80Q\x90\x91P`\x01\x81\x90\x03a\n[W\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x82`\0\x81Q\x81\x10a\t\xABWa\t\xABa\x16rV[` \x02` \x01\x01Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14a\nVW`@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\x82\x01R`9`$\x82\x01R\x7FLivenessModule: must transfer ow`D\x82\x01R\x7Fnership to fallback owner\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x04\x0BV[a\x0B1V[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81\x10\x15a\x0B1W`@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\x82\x01R`^`$\x82\x01R\x7FLivenessModule: must remove all `D\x82\x01R\x7Fowners and transfer to fallback `d\x82\x01R\x7Fowner if numOwners < minOwners\0\0`\x84\x82\x01R`\xA4\x01a\x04\x0BV[`\0\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xE7R5\xB8`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x0B\x9EW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x0B\xC2\x91\x90a\x15\xBFV[\x90Pa\x0B\xCD\x82a\x02\x83V[\x81\x14a\x0C[W`@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\x82\x01R`?`$\x82\x01R\x7FLivenessModule: Insufficient thr`D\x82\x01R\x7Feshold for the number of owners\0`d\x82\x01R`\x84\x01a\x04\x0BV[`@Q\x7FV$\xB2[\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\x7FJ Ob\x0C\x8C\\\xCD\xCA?\xD5M\0;\xAD\xD8[\xA5\0CjC\x1F\x0C\xBD\xA4\xF5X\xC9<4\xC8`\x04\x82\x01R`\x01`$\x82\x01R\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90cV$\xB2[\x90`D\x01`\0`@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\r\x0CW=`\0\x80>=`\0\xFD[PPPP`@Q=`\0\x82>`\x1F=\x90\x81\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x82\x01`@Ra\rR\x91\x90\x81\x01\x90a\x17\x98V[a\r[\x90a\x17\xCDV[`\0\x1Cs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14a\x08\x9BW`@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\x82\x01R`&`$\x82\x01R\x7FLivenessModule: guard has been c`D\x82\x01R\x7Fhanged\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`d\x82\x01R`\x84\x01a\x04\x0BV[`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x81\x16`$\x83\x01R\x83\x81\x16`D\x83\x01R`d\x82\x01\x83\x90R`\0\x91\x82\x91\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x81\x16\x91cR)\x07?\x91\x90\x84\x90`\x84\x01`@\x80Q\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x81\x84\x03\x01\x81R\x91\x81R` \x82\x01\x80Q{\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xF8\xDC]\xD9\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\x17\x90RQ\x7F\xFF\xFF\xFF\xFF\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`\xE0\x86\x90\x1B\x16\x81Ra\x0FO\x93\x92\x91\x90`\0\x90`\x04\x01a\x18\x12V[`\0`@Q\x80\x83\x03\x81`\0\x87Z\xF1\x15\x80\x15a\x0FnW=`\0\x80>=`\0\xFD[PPPP`@Q=`\0\x82>`\x1F=\x90\x81\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x82\x01`@Ra\x0F\xB4\x91\x90\x81\x01\x90a\x18\x8FV[\x91P\x91P\x81a\x0F\xF1W\x80`@Q\x7F\xE9N\x84\xE9\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\x04\x0B\x91\x90a\x12\xE1V[`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x85\x16\x90\x7F\xF8\xD4\x9F\xC5)\x81.\x9A|\\P\xE6\x9C \xF0\xDC\xCC\r\xB8\xFA\x95\xC9\x8B\xC5\x8C\xC9\xA4\xF1\xC1)\x9E\xAF\x90`\0\x90\xA2PPPPPV[`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x81\x16`$\x83\x01R\x82\x81\x16`D\x83\x01R\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81\x16`d\x83\x01R`\0\x91\x82\x91\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x81\x16\x91cR)\x07?\x91\x90\x84\x90`\x84\x01`@\x80Q\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x81\x84\x03\x01\x81R\x91\x81R` \x82\x01\x80Q{\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xE3\x18\xB5+\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\x17\x90RQ\x7F\xFF\xFF\xFF\xFF\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`\xE0\x86\x90\x1B\x16\x81Ra\x11q\x93\x92\x91\x90`\0\x90`\x04\x01a\x18\x12V[`\0`@Q\x80\x83\x03\x81`\0\x87Z\xF1\x15\x80\x15a\x11\x90W=`\0\x80>=`\0\xFD[PPPP`@Q=`\0\x82>`\x1F=\x90\x81\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x82\x01`@Ra\x11\xD6\x91\x90\x81\x01\x90a\x18\x8FV[\x91P\x91P\x81a\x12\x13W\x80`@Q\x7F\xE9N\x84\xE9\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\x04\x0B\x91\x90a\x12\xE1V[`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x16`\x01\x17\x81U`@Q\x7F\x90:\xF3:\xE0\x84\xE7P\xE4Z\x10\xA5?a\xA6\x9ALTD\xF1:Y\x95O[<\xF9n(b\xB5\xF4\x91\x90\xA1PPPPV[`\0[\x83\x81\x10\x15a\x12\x86W\x81\x81\x01Q\x83\x82\x01R` \x01a\x12nV[\x83\x81\x11\x15a\x08mWPP`\0\x91\x01RV[`\0\x81Q\x80\x84Ra\x12\xAF\x81` \x86\x01` \x86\x01a\x12kV[`\x1F\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x92\x90\x92\x01` \x01\x92\x91PPV[` \x81R`\0a\x12\xF4` \x83\x01\x84a\x12\x97V[\x93\x92PPPV[`\0` \x82\x84\x03\x12\x15a\x13\rW`\0\x80\xFD[P5\x91\x90PV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x136W`\0\x80\xFD[PV[`\0` \x82\x84\x03\x12\x15a\x13KW`\0\x80\xFD[\x815a\x12\xF4\x81a\x13\x14V[\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[`@Q`\x1F\x82\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a\x13\xCCWa\x13\xCCa\x13VV[`@R\x91\x90PV[`\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x15a\x13\xEEWa\x13\xEEa\x13VV[P`\x05\x1B` \x01\x90V[`\0\x82`\x1F\x83\x01\x12a\x14\tW`\0\x80\xFD[\x815` a\x14\x1Ea\x14\x19\x83a\x13\xD4V[a\x13\x85V[\x82\x81R`\x05\x92\x90\x92\x1B\x84\x01\x81\x01\x91\x81\x81\x01\x90\x86\x84\x11\x15a\x14=W`\0\x80\xFD[\x82\x86\x01[\x84\x81\x10\x15a\x14aW\x805a\x14T\x81a\x13\x14V[\x83R\x91\x83\x01\x91\x83\x01a\x14AV[P\x96\x95PPPPPPV[`\0\x80`@\x83\x85\x03\x12\x15a\x14\x7FW`\0\x80\xFD[\x825g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x14\x97W`\0\x80\xFD[a\x14\xA3\x86\x83\x87\x01a\x13\xF8V[\x93P` \x85\x015\x91P\x80\x82\x11\x15a\x14\xB9W`\0\x80\xFD[Pa\x14\xC6\x85\x82\x86\x01a\x13\xF8V[\x91PP\x92P\x92\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`\x11`\x04R`$`\0\xFD[`\0\x81\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x04\x83\x11\x82\x15\x15\x16\x15a\x157Wa\x157a\x14\xD0V[P\x02\x90V[`\0\x82\x19\x82\x11\x15a\x15OWa\x15Oa\x14\xD0V[P\x01\x90V[`\0\x82a\x15\x8AW\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`\x12`\x04R`$`\0\xFD[P\x04\x90V[\x80Q\x80\x15\x15\x81\x14a\x15\x9FW`\0\x80\xFD[\x91\x90PV[`\0` \x82\x84\x03\x12\x15a\x15\xB6W`\0\x80\xFD[a\x12\xF4\x82a\x15\x8FV[`\0` \x82\x84\x03\x12\x15a\x15\xD1W`\0\x80\xFD[PQ\x91\x90PV[`\0` \x80\x83\x85\x03\x12\x15a\x15\xEBW`\0\x80\xFD[\x82Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x16\x02W`\0\x80\xFD[\x83\x01`\x1F\x81\x01\x85\x13a\x16\x13W`\0\x80\xFD[\x80Qa\x16!a\x14\x19\x82a\x13\xD4V[\x81\x81R`\x05\x91\x90\x91\x1B\x82\x01\x83\x01\x90\x83\x81\x01\x90\x87\x83\x11\x15a\x16@W`\0\x80\xFD[\x92\x84\x01\x92[\x82\x84\x10\x15a\x16gW\x83Qa\x16X\x81a\x13\x14V[\x82R\x92\x84\x01\x92\x90\x84\x01\x90a\x16EV[\x97\x96PPPPPPPV[\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`2`\x04R`$`\0\xFD[`\0\x81a\x16\xB0Wa\x16\xB0a\x14\xD0V[P\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x01\x90V[`\0\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x03a\x17\x07Wa\x17\x07a\x14\xD0V[P`\x01\x01\x90V[`\0\x82`\x1F\x83\x01\x12a\x17\x1FW`\0\x80\xFD[\x81Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x179Wa\x179a\x13VV[a\x17j` \x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0`\x1F\x84\x01\x16\x01a\x13\x85V[\x81\x81R\x84` \x83\x86\x01\x01\x11\x15a\x17\x7FW`\0\x80\xFD[a\x17\x90\x82` \x83\x01` \x87\x01a\x12kV[\x94\x93PPPPV[`\0` \x82\x84\x03\x12\x15a\x17\xAAW`\0\x80\xFD[\x81Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x17\xC1W`\0\x80\xFD[a\x17\x90\x84\x82\x85\x01a\x17\x0EV[\x80Q` \x80\x83\x01Q\x91\x90\x81\x10\x15a\x18\x0CW\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81` \x03`\x03\x1B\x1B\x82\x16\x91P[P\x91\x90PV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x85\x16\x81R\x83` \x82\x01R`\x80`@\x82\x01R`\0a\x18G`\x80\x83\x01\x85a\x12\x97V[\x90P`\x02\x83\x10a\x18\x80W\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`!`\x04R`$`\0\xFD[\x82``\x83\x01R\x95\x94PPPPPV[`\0\x80`@\x83\x85\x03\x12\x15a\x18\xA2W`\0\x80\xFD[a\x18\xAB\x83a\x15\x8FV[\x91P` \x83\x01Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x18\xC7W`\0\x80\xFD[a\x14\xC6\x85\x82\x86\x01a\x17\x0EV\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `OwnerRemovalFailed(string)` and selector `0xe94e84e9`. +```solidity +error OwnerRemovalFailed(string); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct OwnerRemovalFailed(pub alloy::sol_types::private::String); + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: OwnerRemovalFailed) -> Self { + (value.0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for OwnerRemovalFailed { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self(tuple.0) + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for OwnerRemovalFailed { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "OwnerRemovalFailed(string)"; + const SELECTOR: [u8; 4] = [233u8, 78u8, 132u8, 233u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.0, + ), + ) + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `OwnershipTransferredToFallback()` and selector `0x903af33ae084e750e45a10a53f61a69a4c5444f13a59954f5b3cf96e2862b5f4`. +```solidity +event OwnershipTransferredToFallback(); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct OwnershipTransferredToFallback; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for OwnershipTransferredToFallback { + type DataTuple<'a> = (); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,); + const SIGNATURE: &'static str = "OwnershipTransferredToFallback()"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 144u8, 58u8, 243u8, 58u8, 224u8, 132u8, 231u8, 80u8, 228u8, 90u8, 16u8, + 165u8, 63u8, 97u8, 166u8, 154u8, 76u8, 84u8, 68u8, 241u8, 58u8, 89u8, + 149u8, 79u8, 91u8, 60u8, 249u8, 110u8, 40u8, 98u8, 181u8, 244u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self {} + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + () + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(),) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for OwnershipTransferredToFallback { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&OwnershipTransferredToFallback> + for alloy_sol_types::private::LogData { + #[inline] + fn from( + this: &OwnershipTransferredToFallback, + ) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `RemovedOwner(address)` and selector `0xf8d49fc529812e9a7c5c50e69c20f0dccc0db8fa95c98bc58cc9a4f1c1299eaf`. +```solidity +event RemovedOwner(address indexed owner); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct RemovedOwner { + #[allow(missing_docs)] + pub owner: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for RemovedOwner { + type DataTuple<'a> = (); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "RemovedOwner(address)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 248u8, 212u8, 159u8, 197u8, 41u8, 129u8, 46u8, 154u8, 124u8, 92u8, 80u8, + 230u8, 156u8, 32u8, 240u8, 220u8, 204u8, 13u8, 184u8, 250u8, 149u8, + 201u8, 139u8, 197u8, 140u8, 201u8, 164u8, 241u8, 193u8, 41u8, 158u8, + 175u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { owner: topics.1 } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + () + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.owner.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.owner, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for RemovedOwner { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&RemovedOwner> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &RemovedOwner) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + /**Constructor`. +```solidity +constructor(address _safe, address _livenessGuard, uint256 _livenessInterval, uint256 _minOwners, uint256 _thresholdPercentage, address _fallbackOwner); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct constructorCall { + #[allow(missing_docs)] + pub _safe: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _livenessGuard: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _livenessInterval: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _minOwners: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _thresholdPercentage: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _fallbackOwner: alloy::sol_types::private::Address, + } + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Address, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::Address, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: constructorCall) -> Self { + ( + value._safe, + value._livenessGuard, + value._livenessInterval, + value._minOwners, + value._thresholdPercentage, + value._fallbackOwner, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for constructorCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _safe: tuple.0, + _livenessGuard: tuple.1, + _livenessInterval: tuple.2, + _minOwners: tuple.3, + _thresholdPercentage: tuple.4, + _fallbackOwner: tuple.5, + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolConstructor for constructorCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Address, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._safe, + ), + ::tokenize( + &self._livenessGuard, + ), + as alloy_sol_types::SolType>::tokenize(&self._livenessInterval), + as alloy_sol_types::SolType>::tokenize(&self._minOwners), + as alloy_sol_types::SolType>::tokenize(&self._thresholdPercentage), + ::tokenize( + &self._fallbackOwner, + ), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `canRemove(address)` and selector `0xd45996f1`. +```solidity +function canRemove(address _owner) external view returns (bool canRemove_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct canRemoveCall { + #[allow(missing_docs)] + pub _owner: alloy::sol_types::private::Address, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`canRemove(address)`](canRemoveCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct canRemoveReturn { + #[allow(missing_docs)] + pub canRemove_: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: canRemoveCall) -> Self { + (value._owner,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for canRemoveCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _owner: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: canRemoveReturn) -> Self { + (value.canRemove_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for canRemoveReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { canRemove_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for canRemoveCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "canRemove(address)"; + const SELECTOR: [u8; 4] = [212u8, 89u8, 150u8, 241u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._owner, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: canRemoveReturn = r.into(); + r.canRemove_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: canRemoveReturn = r.into(); + r.canRemove_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `fallbackOwner()` and selector `0x602b263b`. +```solidity +function fallbackOwner() external view returns (address fallbackOwner_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct fallbackOwnerCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`fallbackOwner()`](fallbackOwnerCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct fallbackOwnerReturn { + #[allow(missing_docs)] + pub fallbackOwner_: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: fallbackOwnerCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for fallbackOwnerCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: fallbackOwnerReturn) -> Self { + (value.fallbackOwner_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for fallbackOwnerReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { fallbackOwner_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for fallbackOwnerCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "fallbackOwner()"; + const SELECTOR: [u8; 4] = [96u8, 43u8, 38u8, 59u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: fallbackOwnerReturn = r.into(); + r.fallbackOwner_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: fallbackOwnerReturn = r.into(); + r.fallbackOwner_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `getRequiredThreshold(uint256)` and selector `0x86644d1e`. +```solidity +function getRequiredThreshold(uint256 _numOwners) external view returns (uint256 threshold_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getRequiredThresholdCall { + #[allow(missing_docs)] + pub _numOwners: alloy::sol_types::private::primitives::aliases::U256, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`getRequiredThreshold(uint256)`](getRequiredThresholdCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getRequiredThresholdReturn { + #[allow(missing_docs)] + pub threshold_: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: getRequiredThresholdCall) -> Self { + (value._numOwners,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for getRequiredThresholdCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _numOwners: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: getRequiredThresholdReturn) -> Self { + (value.threshold_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for getRequiredThresholdReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { threshold_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for getRequiredThresholdCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "getRequiredThreshold(uint256)"; + const SELECTOR: [u8; 4] = [134u8, 100u8, 77u8, 30u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._numOwners), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: getRequiredThresholdReturn = r.into(); + r.threshold_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: getRequiredThresholdReturn = r.into(); + r.threshold_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `livenessGuard()` and selector `0xbe81c694`. +```solidity +function livenessGuard() external view returns (address livenessGuard_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct livenessGuardCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`livenessGuard()`](livenessGuardCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct livenessGuardReturn { + #[allow(missing_docs)] + pub livenessGuard_: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: livenessGuardCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for livenessGuardCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: livenessGuardReturn) -> Self { + (value.livenessGuard_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for livenessGuardReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { livenessGuard_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for livenessGuardCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "livenessGuard()"; + const SELECTOR: [u8; 4] = [190u8, 129u8, 198u8, 148u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: livenessGuardReturn = r.into(); + r.livenessGuard_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: livenessGuardReturn = r.into(); + r.livenessGuard_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `livenessInterval()` and selector `0x38af7c5c`. +```solidity +function livenessInterval() external view returns (uint256 livenessInterval_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct livenessIntervalCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`livenessInterval()`](livenessIntervalCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct livenessIntervalReturn { + #[allow(missing_docs)] + pub livenessInterval_: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: livenessIntervalCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for livenessIntervalCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: livenessIntervalReturn) -> Self { + (value.livenessInterval_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for livenessIntervalReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { livenessInterval_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for livenessIntervalCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "livenessInterval()"; + const SELECTOR: [u8; 4] = [56u8, 175u8, 124u8, 92u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: livenessIntervalReturn = r.into(); + r.livenessInterval_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: livenessIntervalReturn = r.into(); + r.livenessInterval_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `minOwners()` and selector `0x4b810d3e`. +```solidity +function minOwners() external view returns (uint256 minOwners_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct minOwnersCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`minOwners()`](minOwnersCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct minOwnersReturn { + #[allow(missing_docs)] + pub minOwners_: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: minOwnersCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for minOwnersCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: minOwnersReturn) -> Self { + (value.minOwners_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for minOwnersReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { minOwners_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for minOwnersCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "minOwners()"; + const SELECTOR: [u8; 4] = [75u8, 129u8, 13u8, 62u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: minOwnersReturn = r.into(); + r.minOwners_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: minOwnersReturn = r.into(); + r.minOwners_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `ownershipTransferredToFallback()` and selector `0x5b2e9c03`. +```solidity +function ownershipTransferredToFallback() external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ownershipTransferredToFallbackCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`ownershipTransferredToFallback()`](ownershipTransferredToFallbackCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ownershipTransferredToFallbackReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: ownershipTransferredToFallbackCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for ownershipTransferredToFallbackCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: ownershipTransferredToFallbackReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for ownershipTransferredToFallbackReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for ownershipTransferredToFallbackCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ownershipTransferredToFallback()"; + const SELECTOR: [u8; 4] = [91u8, 46u8, 156u8, 3u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: ownershipTransferredToFallbackReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: ownershipTransferredToFallbackReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `removeOwners(address[],address[])` and selector `0xf6ac15c4`. +```solidity +function removeOwners(address[] memory _previousOwners, address[] memory _ownersToRemove) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct removeOwnersCall { + #[allow(missing_docs)] + pub _previousOwners: alloy::sol_types::private::Vec< + alloy::sol_types::private::Address, + >, + #[allow(missing_docs)] + pub _ownersToRemove: alloy::sol_types::private::Vec< + alloy::sol_types::private::Address, + >, + } + ///Container type for the return parameters of the [`removeOwners(address[],address[])`](removeOwnersCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct removeOwnersReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Array, + alloy::sol_types::sol_data::Array, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Vec, + alloy::sol_types::private::Vec, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: removeOwnersCall) -> Self { + (value._previousOwners, value._ownersToRemove) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for removeOwnersCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _previousOwners: tuple.0, + _ownersToRemove: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: removeOwnersReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for removeOwnersReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl removeOwnersReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for removeOwnersCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Array, + alloy::sol_types::sol_data::Array, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = removeOwnersReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "removeOwners(address[],address[])"; + const SELECTOR: [u8; 4] = [246u8, 172u8, 21u8, 196u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._previousOwners), + as alloy_sol_types::SolType>::tokenize(&self._ownersToRemove), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + removeOwnersReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `safe()` and selector `0x186f0354`. +```solidity +function safe() external view returns (address safe_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct safeCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`safe()`](safeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct safeReturn { + #[allow(missing_docs)] + pub safe_: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: safeCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for safeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: safeReturn) -> Self { + (value.safe_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for safeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { safe_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for safeCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "safe()"; + const SELECTOR: [u8; 4] = [24u8, 111u8, 3u8, 84u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: safeReturn = r.into(); + r.safe_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: safeReturn = r.into(); + r.safe_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `thresholdPercentage()` and selector `0x4ed2859e`. +```solidity +function thresholdPercentage() external view returns (uint256 thresholdPercentage_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct thresholdPercentageCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`thresholdPercentage()`](thresholdPercentageCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct thresholdPercentageReturn { + #[allow(missing_docs)] + pub thresholdPercentage_: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: thresholdPercentageCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for thresholdPercentageCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: thresholdPercentageReturn) -> Self { + (value.thresholdPercentage_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for thresholdPercentageReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + thresholdPercentage_: tuple.0, + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for thresholdPercentageCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "thresholdPercentage()"; + const SELECTOR: [u8; 4] = [78u8, 210u8, 133u8, 158u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: thresholdPercentageReturn = r.into(); + r.thresholdPercentage_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: thresholdPercentageReturn = r.into(); + r.thresholdPercentage_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `version()` and selector `0x54fd4d50`. +```solidity +function version() external view returns (string memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`version()`](versionCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for versionCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::String; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "version()"; + const SELECTOR: [u8; 4] = [84u8, 253u8, 77u8, 80u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + } + }; + ///Container for all the [`LivenessModule`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum LivenessModuleCalls { + #[allow(missing_docs)] + canRemove(canRemoveCall), + #[allow(missing_docs)] + fallbackOwner(fallbackOwnerCall), + #[allow(missing_docs)] + getRequiredThreshold(getRequiredThresholdCall), + #[allow(missing_docs)] + livenessGuard(livenessGuardCall), + #[allow(missing_docs)] + livenessInterval(livenessIntervalCall), + #[allow(missing_docs)] + minOwners(minOwnersCall), + #[allow(missing_docs)] + ownershipTransferredToFallback(ownershipTransferredToFallbackCall), + #[allow(missing_docs)] + removeOwners(removeOwnersCall), + #[allow(missing_docs)] + safe(safeCall), + #[allow(missing_docs)] + thresholdPercentage(thresholdPercentageCall), + #[allow(missing_docs)] + version(versionCall), + } + impl LivenessModuleCalls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [24u8, 111u8, 3u8, 84u8], + [56u8, 175u8, 124u8, 92u8], + [75u8, 129u8, 13u8, 62u8], + [78u8, 210u8, 133u8, 158u8], + [84u8, 253u8, 77u8, 80u8], + [91u8, 46u8, 156u8, 3u8], + [96u8, 43u8, 38u8, 59u8], + [134u8, 100u8, 77u8, 30u8], + [190u8, 129u8, 198u8, 148u8], + [212u8, 89u8, 150u8, 241u8], + [246u8, 172u8, 21u8, 196u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(safe), + ::core::stringify!(livenessInterval), + ::core::stringify!(minOwners), + ::core::stringify!(thresholdPercentage), + ::core::stringify!(version), + ::core::stringify!(ownershipTransferredToFallback), + ::core::stringify!(fallbackOwner), + ::core::stringify!(getRequiredThreshold), + ::core::stringify!(livenessGuard), + ::core::stringify!(canRemove), + ::core::stringify!(removeOwners), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for LivenessModuleCalls { + const NAME: &'static str = "LivenessModuleCalls"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 11usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::canRemove(_) => { + ::SELECTOR + } + Self::fallbackOwner(_) => { + ::SELECTOR + } + Self::getRequiredThreshold(_) => { + ::SELECTOR + } + Self::livenessGuard(_) => { + ::SELECTOR + } + Self::livenessInterval(_) => { + ::SELECTOR + } + Self::minOwners(_) => { + ::SELECTOR + } + Self::ownershipTransferredToFallback(_) => { + ::SELECTOR + } + Self::removeOwners(_) => { + ::SELECTOR + } + Self::safe(_) => ::SELECTOR, + Self::thresholdPercentage(_) => { + ::SELECTOR + } + Self::version(_) => ::SELECTOR, + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn safe( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(LivenessModuleCalls::safe) + } + safe + }, + { + fn livenessInterval( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(LivenessModuleCalls::livenessInterval) + } + livenessInterval + }, + { + fn minOwners( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(LivenessModuleCalls::minOwners) + } + minOwners + }, + { + fn thresholdPercentage( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(LivenessModuleCalls::thresholdPercentage) + } + thresholdPercentage + }, + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(LivenessModuleCalls::version) + } + version + }, + { + fn ownershipTransferredToFallback( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(LivenessModuleCalls::ownershipTransferredToFallback) + } + ownershipTransferredToFallback + }, + { + fn fallbackOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(LivenessModuleCalls::fallbackOwner) + } + fallbackOwner + }, + { + fn getRequiredThreshold( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(LivenessModuleCalls::getRequiredThreshold) + } + getRequiredThreshold + }, + { + fn livenessGuard( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(LivenessModuleCalls::livenessGuard) + } + livenessGuard + }, + { + fn canRemove( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(LivenessModuleCalls::canRemove) + } + canRemove + }, + { + fn removeOwners( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(LivenessModuleCalls::removeOwners) + } + removeOwners + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn safe( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(LivenessModuleCalls::safe) + } + safe + }, + { + fn livenessInterval( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(LivenessModuleCalls::livenessInterval) + } + livenessInterval + }, + { + fn minOwners( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(LivenessModuleCalls::minOwners) + } + minOwners + }, + { + fn thresholdPercentage( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(LivenessModuleCalls::thresholdPercentage) + } + thresholdPercentage + }, + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(LivenessModuleCalls::version) + } + version + }, + { + fn ownershipTransferredToFallback( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(LivenessModuleCalls::ownershipTransferredToFallback) + } + ownershipTransferredToFallback + }, + { + fn fallbackOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(LivenessModuleCalls::fallbackOwner) + } + fallbackOwner + }, + { + fn getRequiredThreshold( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(LivenessModuleCalls::getRequiredThreshold) + } + getRequiredThreshold + }, + { + fn livenessGuard( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(LivenessModuleCalls::livenessGuard) + } + livenessGuard + }, + { + fn canRemove( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(LivenessModuleCalls::canRemove) + } + canRemove + }, + { + fn removeOwners( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(LivenessModuleCalls::removeOwners) + } + removeOwners + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::canRemove(inner) => { + ::abi_encoded_size(inner) + } + Self::fallbackOwner(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::getRequiredThreshold(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::livenessGuard(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::livenessInterval(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::minOwners(inner) => { + ::abi_encoded_size(inner) + } + Self::ownershipTransferredToFallback(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::removeOwners(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::safe(inner) => { + ::abi_encoded_size(inner) + } + Self::thresholdPercentage(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::version(inner) => { + ::abi_encoded_size(inner) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::canRemove(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::fallbackOwner(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::getRequiredThreshold(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::livenessGuard(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::livenessInterval(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::minOwners(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ownershipTransferredToFallback(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::removeOwners(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::safe(inner) => { + ::abi_encode_raw(inner, out) + } + Self::thresholdPercentage(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::version(inner) => { + ::abi_encode_raw(inner, out) + } + } + } + } + ///Container for all the [`LivenessModule`](self) custom errors. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum LivenessModuleErrors { + #[allow(missing_docs)] + OwnerRemovalFailed(OwnerRemovalFailed), + } + impl LivenessModuleErrors { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[[233u8, 78u8, 132u8, 233u8]]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(OwnerRemovalFailed), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for LivenessModuleErrors { + const NAME: &'static str = "LivenessModuleErrors"; + const MIN_DATA_LENGTH: usize = 64usize; + const COUNT: usize = 1usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::OwnerRemovalFailed(_) => { + ::SELECTOR + } + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn OwnerRemovalFailed( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(LivenessModuleErrors::OwnerRemovalFailed) + } + OwnerRemovalFailed + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn OwnerRemovalFailed( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(LivenessModuleErrors::OwnerRemovalFailed) + } + OwnerRemovalFailed + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::OwnerRemovalFailed(inner) => { + ::abi_encoded_size( + inner, + ) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::OwnerRemovalFailed(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + } + } + } + ///Container for all the [`LivenessModule`](self) events. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum LivenessModuleEvents { + #[allow(missing_docs)] + OwnershipTransferredToFallback(OwnershipTransferredToFallback), + #[allow(missing_docs)] + RemovedOwner(RemovedOwner), + } + impl LivenessModuleEvents { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 32usize]] = &[ + [ + 144u8, 58u8, 243u8, 58u8, 224u8, 132u8, 231u8, 80u8, 228u8, 90u8, 16u8, + 165u8, 63u8, 97u8, 166u8, 154u8, 76u8, 84u8, 68u8, 241u8, 58u8, 89u8, + 149u8, 79u8, 91u8, 60u8, 249u8, 110u8, 40u8, 98u8, 181u8, 244u8, + ], + [ + 248u8, 212u8, 159u8, 197u8, 41u8, 129u8, 46u8, 154u8, 124u8, 92u8, 80u8, + 230u8, 156u8, 32u8, 240u8, 220u8, 204u8, 13u8, 184u8, 250u8, 149u8, + 201u8, 139u8, 197u8, 140u8, 201u8, 164u8, 241u8, 193u8, 41u8, 158u8, + 175u8, + ], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(OwnershipTransferredToFallback), + ::core::stringify!(RemovedOwner), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolEventInterface for LivenessModuleEvents { + const NAME: &'static str = "LivenessModuleEvents"; + const COUNT: usize = 2usize; + fn decode_raw_log( + topics: &[alloy_sol_types::Word], + data: &[u8], + ) -> alloy_sol_types::Result { + match topics.first().copied() { + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::OwnershipTransferredToFallback) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::RemovedOwner) + } + _ => { + alloy_sol_types::private::Err(alloy_sol_types::Error::InvalidLog { + name: ::NAME, + log: alloy_sol_types::private::Box::new( + alloy_sol_types::private::LogData::new_unchecked( + topics.to_vec(), + data.to_vec().into(), + ), + ), + }) + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for LivenessModuleEvents { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + match self { + Self::OwnershipTransferredToFallback(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::RemovedOwner(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + } + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + match self { + Self::OwnershipTransferredToFallback(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::RemovedOwner(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`LivenessModule`](self) contract instance. + +See the [wrapper's documentation](`LivenessModuleInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> LivenessModuleInstance { + LivenessModuleInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + _safe: alloy::sol_types::private::Address, + _livenessGuard: alloy::sol_types::private::Address, + _livenessInterval: alloy::sol_types::private::primitives::aliases::U256, + _minOwners: alloy::sol_types::private::primitives::aliases::U256, + _thresholdPercentage: alloy::sol_types::private::primitives::aliases::U256, + _fallbackOwner: alloy::sol_types::private::Address, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + LivenessModuleInstance::< + P, + N, + >::deploy( + __provider, + _safe, + _livenessGuard, + _livenessInterval, + _minOwners, + _thresholdPercentage, + _fallbackOwner, + ) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + _safe: alloy::sol_types::private::Address, + _livenessGuard: alloy::sol_types::private::Address, + _livenessInterval: alloy::sol_types::private::primitives::aliases::U256, + _minOwners: alloy::sol_types::private::primitives::aliases::U256, + _thresholdPercentage: alloy::sol_types::private::primitives::aliases::U256, + _fallbackOwner: alloy::sol_types::private::Address, + ) -> alloy_contract::RawCallBuilder { + LivenessModuleInstance::< + P, + N, + >::deploy_builder( + __provider, + _safe, + _livenessGuard, + _livenessInterval, + _minOwners, + _thresholdPercentage, + _fallbackOwner, + ) + } + /**A [`LivenessModule`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`LivenessModule`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct LivenessModuleInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for LivenessModuleInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("LivenessModuleInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > LivenessModuleInstance { + /**Creates a new wrapper around an on-chain [`LivenessModule`](self) contract instance. + +See the [wrapper's documentation](`LivenessModuleInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + _safe: alloy::sol_types::private::Address, + _livenessGuard: alloy::sol_types::private::Address, + _livenessInterval: alloy::sol_types::private::primitives::aliases::U256, + _minOwners: alloy::sol_types::private::primitives::aliases::U256, + _thresholdPercentage: alloy::sol_types::private::primitives::aliases::U256, + _fallbackOwner: alloy::sol_types::private::Address, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder( + __provider, + _safe, + _livenessGuard, + _livenessInterval, + _minOwners, + _thresholdPercentage, + _fallbackOwner, + ); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder( + __provider: P, + _safe: alloy::sol_types::private::Address, + _livenessGuard: alloy::sol_types::private::Address, + _livenessInterval: alloy::sol_types::private::primitives::aliases::U256, + _minOwners: alloy::sol_types::private::primitives::aliases::U256, + _thresholdPercentage: alloy::sol_types::private::primitives::aliases::U256, + _fallbackOwner: alloy::sol_types::private::Address, + ) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + [ + &BYTECODE[..], + &alloy_sol_types::SolConstructor::abi_encode( + &constructorCall { + _safe, + _livenessGuard, + _livenessInterval, + _minOwners, + _thresholdPercentage, + _fallbackOwner, + }, + )[..], + ] + .concat() + .into(), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl LivenessModuleInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> LivenessModuleInstance { + LivenessModuleInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > LivenessModuleInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`canRemove`] function. + pub fn canRemove( + &self, + _owner: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, canRemoveCall, N> { + self.call_builder(&canRemoveCall { _owner }) + } + ///Creates a new call builder for the [`fallbackOwner`] function. + pub fn fallbackOwner( + &self, + ) -> alloy_contract::SolCallBuilder<&P, fallbackOwnerCall, N> { + self.call_builder(&fallbackOwnerCall) + } + ///Creates a new call builder for the [`getRequiredThreshold`] function. + pub fn getRequiredThreshold( + &self, + _numOwners: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, getRequiredThresholdCall, N> { + self.call_builder( + &getRequiredThresholdCall { + _numOwners, + }, + ) + } + ///Creates a new call builder for the [`livenessGuard`] function. + pub fn livenessGuard( + &self, + ) -> alloy_contract::SolCallBuilder<&P, livenessGuardCall, N> { + self.call_builder(&livenessGuardCall) + } + ///Creates a new call builder for the [`livenessInterval`] function. + pub fn livenessInterval( + &self, + ) -> alloy_contract::SolCallBuilder<&P, livenessIntervalCall, N> { + self.call_builder(&livenessIntervalCall) + } + ///Creates a new call builder for the [`minOwners`] function. + pub fn minOwners(&self) -> alloy_contract::SolCallBuilder<&P, minOwnersCall, N> { + self.call_builder(&minOwnersCall) + } + ///Creates a new call builder for the [`ownershipTransferredToFallback`] function. + pub fn ownershipTransferredToFallback( + &self, + ) -> alloy_contract::SolCallBuilder<&P, ownershipTransferredToFallbackCall, N> { + self.call_builder(&ownershipTransferredToFallbackCall) + } + ///Creates a new call builder for the [`removeOwners`] function. + pub fn removeOwners( + &self, + _previousOwners: alloy::sol_types::private::Vec< + alloy::sol_types::private::Address, + >, + _ownersToRemove: alloy::sol_types::private::Vec< + alloy::sol_types::private::Address, + >, + ) -> alloy_contract::SolCallBuilder<&P, removeOwnersCall, N> { + self.call_builder( + &removeOwnersCall { + _previousOwners, + _ownersToRemove, + }, + ) + } + ///Creates a new call builder for the [`safe`] function. + pub fn safe(&self) -> alloy_contract::SolCallBuilder<&P, safeCall, N> { + self.call_builder(&safeCall) + } + ///Creates a new call builder for the [`thresholdPercentage`] function. + pub fn thresholdPercentage( + &self, + ) -> alloy_contract::SolCallBuilder<&P, thresholdPercentageCall, N> { + self.call_builder(&thresholdPercentageCall) + } + ///Creates a new call builder for the [`version`] function. + pub fn version(&self) -> alloy_contract::SolCallBuilder<&P, versionCall, N> { + self.call_builder(&versionCall) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > LivenessModuleInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + ///Creates a new event filter for the [`OwnershipTransferredToFallback`] event. + pub fn OwnershipTransferredToFallback_filter( + &self, + ) -> alloy_contract::Event<&P, OwnershipTransferredToFallback, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`RemovedOwner`] event. + pub fn RemovedOwner_filter(&self) -> alloy_contract::Event<&P, RemovedOwner, N> { + self.event_filter::() + } + } +} diff --git a/bindings/rust/src/liveness_module2.rs b/bindings/rust/src/liveness_module2.rs new file mode 100644 index 000000000..202d96882 --- /dev/null +++ b/bindings/rust/src/liveness_module2.rs @@ -0,0 +1,4909 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface LivenessModule2 { + struct ModuleConfig { + uint256 livenessResponsePeriod; + address fallbackOwner; + } + + error LivenessModule2_ChallengeAlreadyExists(); + error LivenessModule2_ChallengeDoesNotExist(); + error LivenessModule2_InvalidFallbackOwner(); + error LivenessModule2_InvalidResponsePeriod(); + error LivenessModule2_InvalidVersion(); + error LivenessModule2_ModuleNotConfigured(); + error LivenessModule2_ModuleNotEnabled(); + error LivenessModule2_ModuleStillEnabled(); + error LivenessModule2_OwnershipTransferFailed(); + error LivenessModule2_ResponsePeriodActive(); + error LivenessModule2_ResponsePeriodEnded(); + error LivenessModule2_UnauthorizedCaller(); + error SemverComp_InvalidSemverParts(); + + event ChallengeCancelled(address indexed safe); + event ChallengeStarted(address indexed safe, uint256 challengeStartTime); + event ChallengeSucceeded(address indexed safe, address fallbackOwner); + event ModuleCleared(address indexed safe); + event ModuleConfigured(address indexed safe, uint256 livenessResponsePeriod, address fallbackOwner); + + function challenge(address _safe) external; + function challengeStartTime(address) external view returns (uint256); + function changeOwnershipToFallback(address _safe) external; + function clearLivenessModule() external; + function configureLivenessModule(ModuleConfig memory _config) external; + function getChallengePeriodEnd(address _safe) external view returns (uint256); + function livenessSafeConfiguration(address _safe) external view returns (ModuleConfig memory); + function respond() external; +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "function", + "name": "challenge", + "inputs": [ + { + "name": "_safe", + "type": "address", + "internalType": "contract Safe" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "challengeStartTime", + "inputs": [ + { + "name": "", + "type": "address", + "internalType": "contract Safe" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "changeOwnershipToFallback", + "inputs": [ + { + "name": "_safe", + "type": "address", + "internalType": "contract Safe" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "clearLivenessModule", + "inputs": [], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "configureLivenessModule", + "inputs": [ + { + "name": "_config", + "type": "tuple", + "internalType": "struct LivenessModule2.ModuleConfig", + "components": [ + { + "name": "livenessResponsePeriod", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "fallbackOwner", + "type": "address", + "internalType": "address" + } + ] + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "getChallengePeriodEnd", + "inputs": [ + { + "name": "_safe", + "type": "address", + "internalType": "contract Safe" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "livenessSafeConfiguration", + "inputs": [ + { + "name": "_safe", + "type": "address", + "internalType": "contract Safe" + } + ], + "outputs": [ + { + "name": "", + "type": "tuple", + "internalType": "struct LivenessModule2.ModuleConfig", + "components": [ + { + "name": "livenessResponsePeriod", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "fallbackOwner", + "type": "address", + "internalType": "address" + } + ] + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "respond", + "inputs": [], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "event", + "name": "ChallengeCancelled", + "inputs": [ + { + "name": "safe", + "type": "address", + "indexed": true, + "internalType": "address" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "ChallengeStarted", + "inputs": [ + { + "name": "safe", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "challengeStartTime", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "ChallengeSucceeded", + "inputs": [ + { + "name": "safe", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "fallbackOwner", + "type": "address", + "indexed": false, + "internalType": "address" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "ModuleCleared", + "inputs": [ + { + "name": "safe", + "type": "address", + "indexed": true, + "internalType": "address" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "ModuleConfigured", + "inputs": [ + { + "name": "safe", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "livenessResponsePeriod", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + }, + { + "name": "fallbackOwner", + "type": "address", + "indexed": false, + "internalType": "address" + } + ], + "anonymous": false + }, + { + "type": "error", + "name": "LivenessModule2_ChallengeAlreadyExists", + "inputs": [] + }, + { + "type": "error", + "name": "LivenessModule2_ChallengeDoesNotExist", + "inputs": [] + }, + { + "type": "error", + "name": "LivenessModule2_InvalidFallbackOwner", + "inputs": [] + }, + { + "type": "error", + "name": "LivenessModule2_InvalidResponsePeriod", + "inputs": [] + }, + { + "type": "error", + "name": "LivenessModule2_InvalidVersion", + "inputs": [] + }, + { + "type": "error", + "name": "LivenessModule2_ModuleNotConfigured", + "inputs": [] + }, + { + "type": "error", + "name": "LivenessModule2_ModuleNotEnabled", + "inputs": [] + }, + { + "type": "error", + "name": "LivenessModule2_ModuleStillEnabled", + "inputs": [] + }, + { + "type": "error", + "name": "LivenessModule2_OwnershipTransferFailed", + "inputs": [] + }, + { + "type": "error", + "name": "LivenessModule2_ResponsePeriodActive", + "inputs": [] + }, + { + "type": "error", + "name": "LivenessModule2_ResponsePeriodEnded", + "inputs": [] + }, + { + "type": "error", + "name": "LivenessModule2_UnauthorizedCaller", + "inputs": [] + }, + { + "type": "error", + "name": "SemverComp_InvalidSemverParts", + "inputs": [] + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod LivenessModule2 { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"", + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**```solidity +struct ModuleConfig { uint256 livenessResponsePeriod; address fallbackOwner; } +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ModuleConfig { + #[allow(missing_docs)] + pub livenessResponsePeriod: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub fallbackOwner: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Address, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::Address, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ModuleConfig) -> Self { + (value.livenessResponsePeriod, value.fallbackOwner) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ModuleConfig { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + livenessResponsePeriod: tuple.0, + fallbackOwner: tuple.1, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolValue for ModuleConfig { + type SolType = Self; + } + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for ModuleConfig { + #[inline] + fn stv_to_tokens(&self) -> ::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize( + &self.livenessResponsePeriod, + ), + ::tokenize( + &self.fallbackOwner, + ), + ) + } + #[inline] + fn stv_abi_encoded_size(&self) -> usize { + if let Some(size) = ::ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encoded_size(&tuple) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + ::eip712_hash_struct(self) + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + if let Some(size) = ::PACKED_ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for ModuleConfig { + type RustType = Self; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = ::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + as alloy_sol_types::SolType>::valid_token(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + let tuple = as alloy_sol_types::SolType>::detokenize(token); + >>::from(tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolStruct for ModuleConfig { + const NAME: &'static str = "ModuleConfig"; + #[inline] + fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> { + alloy_sol_types::private::Cow::Borrowed( + "ModuleConfig(uint256 livenessResponsePeriod,address fallbackOwner)", + ) + } + #[inline] + fn eip712_components() -> alloy_sol_types::private::Vec< + alloy_sol_types::private::Cow<'static, str>, + > { + alloy_sol_types::private::Vec::new() + } + #[inline] + fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> { + ::eip712_root_type() + } + #[inline] + fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec { + [ + as alloy_sol_types::SolType>::eip712_data_word( + &self.livenessResponsePeriod, + ) + .0, + ::eip712_data_word( + &self.fallbackOwner, + ) + .0, + ] + .concat() + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for ModuleConfig { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + 0usize + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.livenessResponsePeriod, + ) + + ::topic_preimage_length( + &rust.fallbackOwner, + ) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + out.reserve( + ::topic_preimage_length(rust), + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.livenessResponsePeriod, + out, + ); + ::encode_topic_preimage( + &rust.fallbackOwner, + out, + ); + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + let mut out = alloy_sol_types::private::Vec::new(); + ::encode_topic_preimage( + rust, + &mut out, + ); + alloy_sol_types::abi::token::WordToken( + alloy_sol_types::private::keccak256(out), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `LivenessModule2_ChallengeAlreadyExists()` and selector `0x9cd90904`. +```solidity +error LivenessModule2_ChallengeAlreadyExists(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct LivenessModule2_ChallengeAlreadyExists; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: LivenessModule2_ChallengeAlreadyExists) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for LivenessModule2_ChallengeAlreadyExists { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for LivenessModule2_ChallengeAlreadyExists { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "LivenessModule2_ChallengeAlreadyExists()"; + const SELECTOR: [u8; 4] = [156u8, 217u8, 9u8, 4u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `LivenessModule2_ChallengeDoesNotExist()` and selector `0x09f95920`. +```solidity +error LivenessModule2_ChallengeDoesNotExist(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct LivenessModule2_ChallengeDoesNotExist; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: LivenessModule2_ChallengeDoesNotExist) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for LivenessModule2_ChallengeDoesNotExist { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for LivenessModule2_ChallengeDoesNotExist { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "LivenessModule2_ChallengeDoesNotExist()"; + const SELECTOR: [u8; 4] = [9u8, 249u8, 89u8, 32u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `LivenessModule2_InvalidFallbackOwner()` and selector `0x552dd1b7`. +```solidity +error LivenessModule2_InvalidFallbackOwner(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct LivenessModule2_InvalidFallbackOwner; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: LivenessModule2_InvalidFallbackOwner) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for LivenessModule2_InvalidFallbackOwner { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for LivenessModule2_InvalidFallbackOwner { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "LivenessModule2_InvalidFallbackOwner()"; + const SELECTOR: [u8; 4] = [85u8, 45u8, 209u8, 183u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `LivenessModule2_InvalidResponsePeriod()` and selector `0x74a7e96e`. +```solidity +error LivenessModule2_InvalidResponsePeriod(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct LivenessModule2_InvalidResponsePeriod; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: LivenessModule2_InvalidResponsePeriod) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for LivenessModule2_InvalidResponsePeriod { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for LivenessModule2_InvalidResponsePeriod { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "LivenessModule2_InvalidResponsePeriod()"; + const SELECTOR: [u8; 4] = [116u8, 167u8, 233u8, 110u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `LivenessModule2_InvalidVersion()` and selector `0xda21aed9`. +```solidity +error LivenessModule2_InvalidVersion(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct LivenessModule2_InvalidVersion; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: LivenessModule2_InvalidVersion) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for LivenessModule2_InvalidVersion { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for LivenessModule2_InvalidVersion { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "LivenessModule2_InvalidVersion()"; + const SELECTOR: [u8; 4] = [218u8, 33u8, 174u8, 217u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `LivenessModule2_ModuleNotConfigured()` and selector `0xa0fe939b`. +```solidity +error LivenessModule2_ModuleNotConfigured(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct LivenessModule2_ModuleNotConfigured; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: LivenessModule2_ModuleNotConfigured) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for LivenessModule2_ModuleNotConfigured { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for LivenessModule2_ModuleNotConfigured { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "LivenessModule2_ModuleNotConfigured()"; + const SELECTOR: [u8; 4] = [160u8, 254u8, 147u8, 155u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `LivenessModule2_ModuleNotEnabled()` and selector `0x9fdada31`. +```solidity +error LivenessModule2_ModuleNotEnabled(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct LivenessModule2_ModuleNotEnabled; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: LivenessModule2_ModuleNotEnabled) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for LivenessModule2_ModuleNotEnabled { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for LivenessModule2_ModuleNotEnabled { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "LivenessModule2_ModuleNotEnabled()"; + const SELECTOR: [u8; 4] = [159u8, 218u8, 218u8, 49u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `LivenessModule2_ModuleStillEnabled()` and selector `0x70a38094`. +```solidity +error LivenessModule2_ModuleStillEnabled(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct LivenessModule2_ModuleStillEnabled; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: LivenessModule2_ModuleStillEnabled) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for LivenessModule2_ModuleStillEnabled { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for LivenessModule2_ModuleStillEnabled { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "LivenessModule2_ModuleStillEnabled()"; + const SELECTOR: [u8; 4] = [112u8, 163u8, 128u8, 148u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `LivenessModule2_OwnershipTransferFailed()` and selector `0xe330ac05`. +```solidity +error LivenessModule2_OwnershipTransferFailed(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct LivenessModule2_OwnershipTransferFailed; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: LivenessModule2_OwnershipTransferFailed) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for LivenessModule2_OwnershipTransferFailed { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for LivenessModule2_OwnershipTransferFailed { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "LivenessModule2_OwnershipTransferFailed()"; + const SELECTOR: [u8; 4] = [227u8, 48u8, 172u8, 5u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `LivenessModule2_ResponsePeriodActive()` and selector `0x279e3d24`. +```solidity +error LivenessModule2_ResponsePeriodActive(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct LivenessModule2_ResponsePeriodActive; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: LivenessModule2_ResponsePeriodActive) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for LivenessModule2_ResponsePeriodActive { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for LivenessModule2_ResponsePeriodActive { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "LivenessModule2_ResponsePeriodActive()"; + const SELECTOR: [u8; 4] = [39u8, 158u8, 61u8, 36u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `LivenessModule2_ResponsePeriodEnded()` and selector `0xeb911af0`. +```solidity +error LivenessModule2_ResponsePeriodEnded(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct LivenessModule2_ResponsePeriodEnded; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: LivenessModule2_ResponsePeriodEnded) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for LivenessModule2_ResponsePeriodEnded { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for LivenessModule2_ResponsePeriodEnded { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "LivenessModule2_ResponsePeriodEnded()"; + const SELECTOR: [u8; 4] = [235u8, 145u8, 26u8, 240u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `LivenessModule2_UnauthorizedCaller()` and selector `0xa1f20820`. +```solidity +error LivenessModule2_UnauthorizedCaller(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct LivenessModule2_UnauthorizedCaller; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: LivenessModule2_UnauthorizedCaller) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for LivenessModule2_UnauthorizedCaller { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for LivenessModule2_UnauthorizedCaller { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "LivenessModule2_UnauthorizedCaller()"; + const SELECTOR: [u8; 4] = [161u8, 242u8, 8u8, 32u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `SemverComp_InvalidSemverParts()` and selector `0x9eda858c`. +```solidity +error SemverComp_InvalidSemverParts(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct SemverComp_InvalidSemverParts; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: SemverComp_InvalidSemverParts) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for SemverComp_InvalidSemverParts { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for SemverComp_InvalidSemverParts { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "SemverComp_InvalidSemverParts()"; + const SELECTOR: [u8; 4] = [158u8, 218u8, 133u8, 140u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `ChallengeCancelled(address)` and selector `0xadfa6511c5a9b5ac1adc5e4e0ca637c465f24ab56c1bd255a083e0023e3b7c42`. +```solidity +event ChallengeCancelled(address indexed safe); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct ChallengeCancelled { + #[allow(missing_docs)] + pub safe: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for ChallengeCancelled { + type DataTuple<'a> = (); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "ChallengeCancelled(address)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 173u8, 250u8, 101u8, 17u8, 197u8, 169u8, 181u8, 172u8, 26u8, 220u8, 94u8, + 78u8, 12u8, 166u8, 55u8, 196u8, 101u8, 242u8, 74u8, 181u8, 108u8, 27u8, + 210u8, 85u8, 160u8, 131u8, 224u8, 2u8, 62u8, 59u8, 124u8, 66u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { safe: topics.1 } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + () + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.safe.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.safe, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for ChallengeCancelled { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&ChallengeCancelled> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &ChallengeCancelled) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `ChallengeStarted(address,uint256)` and selector `0x3eb9241ca06793ab672590e858d0977206f824e7367806f94a90af391d275d33`. +```solidity +event ChallengeStarted(address indexed safe, uint256 challengeStartTime); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct ChallengeStarted { + #[allow(missing_docs)] + pub safe: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub challengeStartTime: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for ChallengeStarted { + type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "ChallengeStarted(address,uint256)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 62u8, 185u8, 36u8, 28u8, 160u8, 103u8, 147u8, 171u8, 103u8, 37u8, 144u8, + 232u8, 88u8, 208u8, 151u8, 114u8, 6u8, 248u8, 36u8, 231u8, 54u8, 120u8, + 6u8, 249u8, 74u8, 144u8, 175u8, 57u8, 29u8, 39u8, 93u8, 51u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + safe: topics.1, + challengeStartTime: data.0, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.challengeStartTime), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.safe.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.safe, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for ChallengeStarted { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&ChallengeStarted> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &ChallengeStarted) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `ChallengeSucceeded(address,address)` and selector `0xdfdecb71eb0580c9263c867bc6de9dd6f859cc6a6ee33d47e505904f1d5601c9`. +```solidity +event ChallengeSucceeded(address indexed safe, address fallbackOwner); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct ChallengeSucceeded { + #[allow(missing_docs)] + pub safe: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub fallbackOwner: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for ChallengeSucceeded { + type DataTuple<'a> = (alloy::sol_types::sol_data::Address,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "ChallengeSucceeded(address,address)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 223u8, 222u8, 203u8, 113u8, 235u8, 5u8, 128u8, 201u8, 38u8, 60u8, 134u8, + 123u8, 198u8, 222u8, 157u8, 214u8, 248u8, 89u8, 204u8, 106u8, 110u8, + 227u8, 61u8, 71u8, 229u8, 5u8, 144u8, 79u8, 29u8, 86u8, 1u8, 201u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + safe: topics.1, + fallbackOwner: data.0, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + ::tokenize( + &self.fallbackOwner, + ), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.safe.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.safe, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for ChallengeSucceeded { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&ChallengeSucceeded> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &ChallengeSucceeded) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `ModuleCleared(address)` and selector `0x9c6ff02e684f8a81389ed942fea1147c16b8cc5fe79f2bfbc520d44e214aed4b`. +```solidity +event ModuleCleared(address indexed safe); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct ModuleCleared { + #[allow(missing_docs)] + pub safe: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for ModuleCleared { + type DataTuple<'a> = (); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "ModuleCleared(address)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 156u8, 111u8, 240u8, 46u8, 104u8, 79u8, 138u8, 129u8, 56u8, 158u8, 217u8, + 66u8, 254u8, 161u8, 20u8, 124u8, 22u8, 184u8, 204u8, 95u8, 231u8, 159u8, + 43u8, 251u8, 197u8, 32u8, 212u8, 78u8, 33u8, 74u8, 237u8, 75u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { safe: topics.1 } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + () + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.safe.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.safe, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for ModuleCleared { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&ModuleCleared> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &ModuleCleared) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `ModuleConfigured(address,uint256,address)` and selector `0x47e2ddae3ece2c77f60d8e9e5a89a50f1d1374a87fb11956d27a6b4986bba17e`. +```solidity +event ModuleConfigured(address indexed safe, uint256 livenessResponsePeriod, address fallbackOwner); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct ModuleConfigured { + #[allow(missing_docs)] + pub safe: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub livenessResponsePeriod: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub fallbackOwner: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for ModuleConfigured { + type DataTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Address, + ); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "ModuleConfigured(address,uint256,address)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 71u8, 226u8, 221u8, 174u8, 62u8, 206u8, 44u8, 119u8, 246u8, 13u8, 142u8, + 158u8, 90u8, 137u8, 165u8, 15u8, 29u8, 19u8, 116u8, 168u8, 127u8, 177u8, + 25u8, 86u8, 210u8, 122u8, 107u8, 73u8, 134u8, 187u8, 161u8, 126u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + safe: topics.1, + livenessResponsePeriod: data.0, + fallbackOwner: data.1, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize( + &self.livenessResponsePeriod, + ), + ::tokenize( + &self.fallbackOwner, + ), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.safe.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.safe, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for ModuleConfigured { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&ModuleConfigured> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &ModuleConfigured) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `challenge(address)` and selector `0x72fb9703`. +```solidity +function challenge(address _safe) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct challengeCall { + #[allow(missing_docs)] + pub _safe: alloy::sol_types::private::Address, + } + ///Container type for the return parameters of the [`challenge(address)`](challengeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct challengeReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: challengeCall) -> Self { + (value._safe,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for challengeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _safe: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: challengeReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for challengeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl challengeReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for challengeCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = challengeReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "challenge(address)"; + const SELECTOR: [u8; 4] = [114u8, 251u8, 151u8, 3u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._safe, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + challengeReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `challengeStartTime(address)` and selector `0x96de45a4`. +```solidity +function challengeStartTime(address) external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct challengeStartTimeCall(pub alloy::sol_types::private::Address); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`challengeStartTime(address)`](challengeStartTimeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct challengeStartTimeReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: challengeStartTimeCall) -> Self { + (value.0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for challengeStartTimeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self(tuple.0) + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: challengeStartTimeReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for challengeStartTimeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for challengeStartTimeCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "challengeStartTime(address)"; + const SELECTOR: [u8; 4] = [150u8, 222u8, 69u8, 164u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.0, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: challengeStartTimeReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: challengeStartTimeReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `changeOwnershipToFallback(address)` and selector `0xbceb8eda`. +```solidity +function changeOwnershipToFallback(address _safe) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct changeOwnershipToFallbackCall { + #[allow(missing_docs)] + pub _safe: alloy::sol_types::private::Address, + } + ///Container type for the return parameters of the [`changeOwnershipToFallback(address)`](changeOwnershipToFallbackCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct changeOwnershipToFallbackReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: changeOwnershipToFallbackCall) -> Self { + (value._safe,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for changeOwnershipToFallbackCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _safe: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: changeOwnershipToFallbackReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for changeOwnershipToFallbackReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl changeOwnershipToFallbackReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken< + '_, + > { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for changeOwnershipToFallbackCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = changeOwnershipToFallbackReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "changeOwnershipToFallback(address)"; + const SELECTOR: [u8; 4] = [188u8, 235u8, 142u8, 218u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._safe, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + changeOwnershipToFallbackReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `clearLivenessModule()` and selector `0x6092b318`. +```solidity +function clearLivenessModule() external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct clearLivenessModuleCall; + ///Container type for the return parameters of the [`clearLivenessModule()`](clearLivenessModuleCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct clearLivenessModuleReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: clearLivenessModuleCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for clearLivenessModuleCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: clearLivenessModuleReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for clearLivenessModuleReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl clearLivenessModuleReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for clearLivenessModuleCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = clearLivenessModuleReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "clearLivenessModule()"; + const SELECTOR: [u8; 4] = [96u8, 146u8, 179u8, 24u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + clearLivenessModuleReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `configureLivenessModule((uint256,address))` and selector `0x05ccf606`. +```solidity +function configureLivenessModule(ModuleConfig memory _config) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct configureLivenessModuleCall { + #[allow(missing_docs)] + pub _config: ::RustType, + } + ///Container type for the return parameters of the [`configureLivenessModule((uint256,address))`](configureLivenessModuleCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct configureLivenessModuleReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (ModuleConfig,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: configureLivenessModuleCall) -> Self { + (value._config,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for configureLivenessModuleCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _config: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: configureLivenessModuleReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for configureLivenessModuleReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl configureLivenessModuleReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken< + '_, + > { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for configureLivenessModuleCall { + type Parameters<'a> = (ModuleConfig,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = configureLivenessModuleReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "configureLivenessModule((uint256,address))"; + const SELECTOR: [u8; 4] = [5u8, 204u8, 246u8, 6u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + (::tokenize(&self._config),) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + configureLivenessModuleReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `getChallengePeriodEnd(address)` and selector `0xe10ffc92`. +```solidity +function getChallengePeriodEnd(address _safe) external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getChallengePeriodEndCall { + #[allow(missing_docs)] + pub _safe: alloy::sol_types::private::Address, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`getChallengePeriodEnd(address)`](getChallengePeriodEndCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getChallengePeriodEndReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: getChallengePeriodEndCall) -> Self { + (value._safe,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for getChallengePeriodEndCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _safe: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: getChallengePeriodEndReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for getChallengePeriodEndReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for getChallengePeriodEndCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "getChallengePeriodEnd(address)"; + const SELECTOR: [u8; 4] = [225u8, 15u8, 252u8, 146u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._safe, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: getChallengePeriodEndReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: getChallengePeriodEndReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `livenessSafeConfiguration(address)` and selector `0x47c03223`. +```solidity +function livenessSafeConfiguration(address _safe) external view returns (ModuleConfig memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct livenessSafeConfigurationCall { + #[allow(missing_docs)] + pub _safe: alloy::sol_types::private::Address, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`livenessSafeConfiguration(address)`](livenessSafeConfigurationCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct livenessSafeConfigurationReturn { + #[allow(missing_docs)] + pub _0: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: livenessSafeConfigurationCall) -> Self { + (value._safe,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for livenessSafeConfigurationCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _safe: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (ModuleConfig,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: livenessSafeConfigurationReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for livenessSafeConfigurationReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for livenessSafeConfigurationCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (ModuleConfig,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "livenessSafeConfiguration(address)"; + const SELECTOR: [u8; 4] = [71u8, 192u8, 50u8, 35u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._safe, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: livenessSafeConfigurationReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: livenessSafeConfigurationReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `respond()` and selector `0xdb16aab9`. +```solidity +function respond() external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct respondCall; + ///Container type for the return parameters of the [`respond()`](respondCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct respondReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: respondCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for respondCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: respondReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for respondReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl respondReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for respondCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = respondReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "respond()"; + const SELECTOR: [u8; 4] = [219u8, 22u8, 170u8, 185u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + respondReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + ///Container for all the [`LivenessModule2`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum LivenessModule2Calls { + #[allow(missing_docs)] + challenge(challengeCall), + #[allow(missing_docs)] + challengeStartTime(challengeStartTimeCall), + #[allow(missing_docs)] + changeOwnershipToFallback(changeOwnershipToFallbackCall), + #[allow(missing_docs)] + clearLivenessModule(clearLivenessModuleCall), + #[allow(missing_docs)] + configureLivenessModule(configureLivenessModuleCall), + #[allow(missing_docs)] + getChallengePeriodEnd(getChallengePeriodEndCall), + #[allow(missing_docs)] + livenessSafeConfiguration(livenessSafeConfigurationCall), + #[allow(missing_docs)] + respond(respondCall), + } + impl LivenessModule2Calls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [5u8, 204u8, 246u8, 6u8], + [71u8, 192u8, 50u8, 35u8], + [96u8, 146u8, 179u8, 24u8], + [114u8, 251u8, 151u8, 3u8], + [150u8, 222u8, 69u8, 164u8], + [188u8, 235u8, 142u8, 218u8], + [219u8, 22u8, 170u8, 185u8], + [225u8, 15u8, 252u8, 146u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(configureLivenessModule), + ::core::stringify!(livenessSafeConfiguration), + ::core::stringify!(clearLivenessModule), + ::core::stringify!(challenge), + ::core::stringify!(challengeStartTime), + ::core::stringify!(changeOwnershipToFallback), + ::core::stringify!(respond), + ::core::stringify!(getChallengePeriodEnd), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for LivenessModule2Calls { + const NAME: &'static str = "LivenessModule2Calls"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 8usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::challenge(_) => { + ::SELECTOR + } + Self::challengeStartTime(_) => { + ::SELECTOR + } + Self::changeOwnershipToFallback(_) => { + ::SELECTOR + } + Self::clearLivenessModule(_) => { + ::SELECTOR + } + Self::configureLivenessModule(_) => { + ::SELECTOR + } + Self::getChallengePeriodEnd(_) => { + ::SELECTOR + } + Self::livenessSafeConfiguration(_) => { + ::SELECTOR + } + Self::respond(_) => ::SELECTOR, + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn configureLivenessModule( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(LivenessModule2Calls::configureLivenessModule) + } + configureLivenessModule + }, + { + fn livenessSafeConfiguration( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(LivenessModule2Calls::livenessSafeConfiguration) + } + livenessSafeConfiguration + }, + { + fn clearLivenessModule( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(LivenessModule2Calls::clearLivenessModule) + } + clearLivenessModule + }, + { + fn challenge( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(LivenessModule2Calls::challenge) + } + challenge + }, + { + fn challengeStartTime( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(LivenessModule2Calls::challengeStartTime) + } + challengeStartTime + }, + { + fn changeOwnershipToFallback( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(LivenessModule2Calls::changeOwnershipToFallback) + } + changeOwnershipToFallback + }, + { + fn respond( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(LivenessModule2Calls::respond) + } + respond + }, + { + fn getChallengePeriodEnd( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(LivenessModule2Calls::getChallengePeriodEnd) + } + getChallengePeriodEnd + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn configureLivenessModule( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(LivenessModule2Calls::configureLivenessModule) + } + configureLivenessModule + }, + { + fn livenessSafeConfiguration( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(LivenessModule2Calls::livenessSafeConfiguration) + } + livenessSafeConfiguration + }, + { + fn clearLivenessModule( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(LivenessModule2Calls::clearLivenessModule) + } + clearLivenessModule + }, + { + fn challenge( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(LivenessModule2Calls::challenge) + } + challenge + }, + { + fn challengeStartTime( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(LivenessModule2Calls::challengeStartTime) + } + challengeStartTime + }, + { + fn changeOwnershipToFallback( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(LivenessModule2Calls::changeOwnershipToFallback) + } + changeOwnershipToFallback + }, + { + fn respond( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(LivenessModule2Calls::respond) + } + respond + }, + { + fn getChallengePeriodEnd( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(LivenessModule2Calls::getChallengePeriodEnd) + } + getChallengePeriodEnd + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::challenge(inner) => { + ::abi_encoded_size(inner) + } + Self::challengeStartTime(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::changeOwnershipToFallback(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::clearLivenessModule(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::configureLivenessModule(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::getChallengePeriodEnd(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::livenessSafeConfiguration(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::respond(inner) => { + ::abi_encoded_size(inner) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::challenge(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::challengeStartTime(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::changeOwnershipToFallback(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::clearLivenessModule(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::configureLivenessModule(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::getChallengePeriodEnd(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::livenessSafeConfiguration(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::respond(inner) => { + ::abi_encode_raw(inner, out) + } + } + } + } + ///Container for all the [`LivenessModule2`](self) custom errors. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum LivenessModule2Errors { + #[allow(missing_docs)] + LivenessModule2_ChallengeAlreadyExists(LivenessModule2_ChallengeAlreadyExists), + #[allow(missing_docs)] + LivenessModule2_ChallengeDoesNotExist(LivenessModule2_ChallengeDoesNotExist), + #[allow(missing_docs)] + LivenessModule2_InvalidFallbackOwner(LivenessModule2_InvalidFallbackOwner), + #[allow(missing_docs)] + LivenessModule2_InvalidResponsePeriod(LivenessModule2_InvalidResponsePeriod), + #[allow(missing_docs)] + LivenessModule2_InvalidVersion(LivenessModule2_InvalidVersion), + #[allow(missing_docs)] + LivenessModule2_ModuleNotConfigured(LivenessModule2_ModuleNotConfigured), + #[allow(missing_docs)] + LivenessModule2_ModuleNotEnabled(LivenessModule2_ModuleNotEnabled), + #[allow(missing_docs)] + LivenessModule2_ModuleStillEnabled(LivenessModule2_ModuleStillEnabled), + #[allow(missing_docs)] + LivenessModule2_OwnershipTransferFailed(LivenessModule2_OwnershipTransferFailed), + #[allow(missing_docs)] + LivenessModule2_ResponsePeriodActive(LivenessModule2_ResponsePeriodActive), + #[allow(missing_docs)] + LivenessModule2_ResponsePeriodEnded(LivenessModule2_ResponsePeriodEnded), + #[allow(missing_docs)] + LivenessModule2_UnauthorizedCaller(LivenessModule2_UnauthorizedCaller), + #[allow(missing_docs)] + SemverComp_InvalidSemverParts(SemverComp_InvalidSemverParts), + } + impl LivenessModule2Errors { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [9u8, 249u8, 89u8, 32u8], + [39u8, 158u8, 61u8, 36u8], + [85u8, 45u8, 209u8, 183u8], + [112u8, 163u8, 128u8, 148u8], + [116u8, 167u8, 233u8, 110u8], + [156u8, 217u8, 9u8, 4u8], + [158u8, 218u8, 133u8, 140u8], + [159u8, 218u8, 218u8, 49u8], + [160u8, 254u8, 147u8, 155u8], + [161u8, 242u8, 8u8, 32u8], + [218u8, 33u8, 174u8, 217u8], + [227u8, 48u8, 172u8, 5u8], + [235u8, 145u8, 26u8, 240u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(LivenessModule2_ChallengeDoesNotExist), + ::core::stringify!(LivenessModule2_ResponsePeriodActive), + ::core::stringify!(LivenessModule2_InvalidFallbackOwner), + ::core::stringify!(LivenessModule2_ModuleStillEnabled), + ::core::stringify!(LivenessModule2_InvalidResponsePeriod), + ::core::stringify!(LivenessModule2_ChallengeAlreadyExists), + ::core::stringify!(SemverComp_InvalidSemverParts), + ::core::stringify!(LivenessModule2_ModuleNotEnabled), + ::core::stringify!(LivenessModule2_ModuleNotConfigured), + ::core::stringify!(LivenessModule2_UnauthorizedCaller), + ::core::stringify!(LivenessModule2_InvalidVersion), + ::core::stringify!(LivenessModule2_OwnershipTransferFailed), + ::core::stringify!(LivenessModule2_ResponsePeriodEnded), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for LivenessModule2Errors { + const NAME: &'static str = "LivenessModule2Errors"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 13usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::LivenessModule2_ChallengeAlreadyExists(_) => { + ::SELECTOR + } + Self::LivenessModule2_ChallengeDoesNotExist(_) => { + ::SELECTOR + } + Self::LivenessModule2_InvalidFallbackOwner(_) => { + ::SELECTOR + } + Self::LivenessModule2_InvalidResponsePeriod(_) => { + ::SELECTOR + } + Self::LivenessModule2_InvalidVersion(_) => { + ::SELECTOR + } + Self::LivenessModule2_ModuleNotConfigured(_) => { + ::SELECTOR + } + Self::LivenessModule2_ModuleNotEnabled(_) => { + ::SELECTOR + } + Self::LivenessModule2_ModuleStillEnabled(_) => { + ::SELECTOR + } + Self::LivenessModule2_OwnershipTransferFailed(_) => { + ::SELECTOR + } + Self::LivenessModule2_ResponsePeriodActive(_) => { + ::SELECTOR + } + Self::LivenessModule2_ResponsePeriodEnded(_) => { + ::SELECTOR + } + Self::LivenessModule2_UnauthorizedCaller(_) => { + ::SELECTOR + } + Self::SemverComp_InvalidSemverParts(_) => { + ::SELECTOR + } + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn LivenessModule2_ChallengeDoesNotExist( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + LivenessModule2Errors::LivenessModule2_ChallengeDoesNotExist, + ) + } + LivenessModule2_ChallengeDoesNotExist + }, + { + fn LivenessModule2_ResponsePeriodActive( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + LivenessModule2Errors::LivenessModule2_ResponsePeriodActive, + ) + } + LivenessModule2_ResponsePeriodActive + }, + { + fn LivenessModule2_InvalidFallbackOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + LivenessModule2Errors::LivenessModule2_InvalidFallbackOwner, + ) + } + LivenessModule2_InvalidFallbackOwner + }, + { + fn LivenessModule2_ModuleStillEnabled( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + LivenessModule2Errors::LivenessModule2_ModuleStillEnabled, + ) + } + LivenessModule2_ModuleStillEnabled + }, + { + fn LivenessModule2_InvalidResponsePeriod( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + LivenessModule2Errors::LivenessModule2_InvalidResponsePeriod, + ) + } + LivenessModule2_InvalidResponsePeriod + }, + { + fn LivenessModule2_ChallengeAlreadyExists( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + LivenessModule2Errors::LivenessModule2_ChallengeAlreadyExists, + ) + } + LivenessModule2_ChallengeAlreadyExists + }, + { + fn SemverComp_InvalidSemverParts( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(LivenessModule2Errors::SemverComp_InvalidSemverParts) + } + SemverComp_InvalidSemverParts + }, + { + fn LivenessModule2_ModuleNotEnabled( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(LivenessModule2Errors::LivenessModule2_ModuleNotEnabled) + } + LivenessModule2_ModuleNotEnabled + }, + { + fn LivenessModule2_ModuleNotConfigured( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + LivenessModule2Errors::LivenessModule2_ModuleNotConfigured, + ) + } + LivenessModule2_ModuleNotConfigured + }, + { + fn LivenessModule2_UnauthorizedCaller( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + LivenessModule2Errors::LivenessModule2_UnauthorizedCaller, + ) + } + LivenessModule2_UnauthorizedCaller + }, + { + fn LivenessModule2_InvalidVersion( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(LivenessModule2Errors::LivenessModule2_InvalidVersion) + } + LivenessModule2_InvalidVersion + }, + { + fn LivenessModule2_OwnershipTransferFailed( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + LivenessModule2Errors::LivenessModule2_OwnershipTransferFailed, + ) + } + LivenessModule2_OwnershipTransferFailed + }, + { + fn LivenessModule2_ResponsePeriodEnded( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + LivenessModule2Errors::LivenessModule2_ResponsePeriodEnded, + ) + } + LivenessModule2_ResponsePeriodEnded + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn LivenessModule2_ChallengeDoesNotExist( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + LivenessModule2Errors::LivenessModule2_ChallengeDoesNotExist, + ) + } + LivenessModule2_ChallengeDoesNotExist + }, + { + fn LivenessModule2_ResponsePeriodActive( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + LivenessModule2Errors::LivenessModule2_ResponsePeriodActive, + ) + } + LivenessModule2_ResponsePeriodActive + }, + { + fn LivenessModule2_InvalidFallbackOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + LivenessModule2Errors::LivenessModule2_InvalidFallbackOwner, + ) + } + LivenessModule2_InvalidFallbackOwner + }, + { + fn LivenessModule2_ModuleStillEnabled( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + LivenessModule2Errors::LivenessModule2_ModuleStillEnabled, + ) + } + LivenessModule2_ModuleStillEnabled + }, + { + fn LivenessModule2_InvalidResponsePeriod( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + LivenessModule2Errors::LivenessModule2_InvalidResponsePeriod, + ) + } + LivenessModule2_InvalidResponsePeriod + }, + { + fn LivenessModule2_ChallengeAlreadyExists( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + LivenessModule2Errors::LivenessModule2_ChallengeAlreadyExists, + ) + } + LivenessModule2_ChallengeAlreadyExists + }, + { + fn SemverComp_InvalidSemverParts( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(LivenessModule2Errors::SemverComp_InvalidSemverParts) + } + SemverComp_InvalidSemverParts + }, + { + fn LivenessModule2_ModuleNotEnabled( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(LivenessModule2Errors::LivenessModule2_ModuleNotEnabled) + } + LivenessModule2_ModuleNotEnabled + }, + { + fn LivenessModule2_ModuleNotConfigured( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + LivenessModule2Errors::LivenessModule2_ModuleNotConfigured, + ) + } + LivenessModule2_ModuleNotConfigured + }, + { + fn LivenessModule2_UnauthorizedCaller( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + LivenessModule2Errors::LivenessModule2_UnauthorizedCaller, + ) + } + LivenessModule2_UnauthorizedCaller + }, + { + fn LivenessModule2_InvalidVersion( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(LivenessModule2Errors::LivenessModule2_InvalidVersion) + } + LivenessModule2_InvalidVersion + }, + { + fn LivenessModule2_OwnershipTransferFailed( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + LivenessModule2Errors::LivenessModule2_OwnershipTransferFailed, + ) + } + LivenessModule2_OwnershipTransferFailed + }, + { + fn LivenessModule2_ResponsePeriodEnded( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + LivenessModule2Errors::LivenessModule2_ResponsePeriodEnded, + ) + } + LivenessModule2_ResponsePeriodEnded + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::LivenessModule2_ChallengeAlreadyExists(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::LivenessModule2_ChallengeDoesNotExist(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::LivenessModule2_InvalidFallbackOwner(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::LivenessModule2_InvalidResponsePeriod(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::LivenessModule2_InvalidVersion(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::LivenessModule2_ModuleNotConfigured(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::LivenessModule2_ModuleNotEnabled(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::LivenessModule2_ModuleStillEnabled(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::LivenessModule2_OwnershipTransferFailed(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::LivenessModule2_ResponsePeriodActive(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::LivenessModule2_ResponsePeriodEnded(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::LivenessModule2_UnauthorizedCaller(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::SemverComp_InvalidSemverParts(inner) => { + ::abi_encoded_size( + inner, + ) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::LivenessModule2_ChallengeAlreadyExists(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::LivenessModule2_ChallengeDoesNotExist(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::LivenessModule2_InvalidFallbackOwner(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::LivenessModule2_InvalidResponsePeriod(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::LivenessModule2_InvalidVersion(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::LivenessModule2_ModuleNotConfigured(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::LivenessModule2_ModuleNotEnabled(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::LivenessModule2_ModuleStillEnabled(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::LivenessModule2_OwnershipTransferFailed(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::LivenessModule2_ResponsePeriodActive(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::LivenessModule2_ResponsePeriodEnded(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::LivenessModule2_UnauthorizedCaller(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::SemverComp_InvalidSemverParts(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + } + } + } + ///Container for all the [`LivenessModule2`](self) events. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum LivenessModule2Events { + #[allow(missing_docs)] + ChallengeCancelled(ChallengeCancelled), + #[allow(missing_docs)] + ChallengeStarted(ChallengeStarted), + #[allow(missing_docs)] + ChallengeSucceeded(ChallengeSucceeded), + #[allow(missing_docs)] + ModuleCleared(ModuleCleared), + #[allow(missing_docs)] + ModuleConfigured(ModuleConfigured), + } + impl LivenessModule2Events { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 32usize]] = &[ + [ + 62u8, 185u8, 36u8, 28u8, 160u8, 103u8, 147u8, 171u8, 103u8, 37u8, 144u8, + 232u8, 88u8, 208u8, 151u8, 114u8, 6u8, 248u8, 36u8, 231u8, 54u8, 120u8, + 6u8, 249u8, 74u8, 144u8, 175u8, 57u8, 29u8, 39u8, 93u8, 51u8, + ], + [ + 71u8, 226u8, 221u8, 174u8, 62u8, 206u8, 44u8, 119u8, 246u8, 13u8, 142u8, + 158u8, 90u8, 137u8, 165u8, 15u8, 29u8, 19u8, 116u8, 168u8, 127u8, 177u8, + 25u8, 86u8, 210u8, 122u8, 107u8, 73u8, 134u8, 187u8, 161u8, 126u8, + ], + [ + 156u8, 111u8, 240u8, 46u8, 104u8, 79u8, 138u8, 129u8, 56u8, 158u8, 217u8, + 66u8, 254u8, 161u8, 20u8, 124u8, 22u8, 184u8, 204u8, 95u8, 231u8, 159u8, + 43u8, 251u8, 197u8, 32u8, 212u8, 78u8, 33u8, 74u8, 237u8, 75u8, + ], + [ + 173u8, 250u8, 101u8, 17u8, 197u8, 169u8, 181u8, 172u8, 26u8, 220u8, 94u8, + 78u8, 12u8, 166u8, 55u8, 196u8, 101u8, 242u8, 74u8, 181u8, 108u8, 27u8, + 210u8, 85u8, 160u8, 131u8, 224u8, 2u8, 62u8, 59u8, 124u8, 66u8, + ], + [ + 223u8, 222u8, 203u8, 113u8, 235u8, 5u8, 128u8, 201u8, 38u8, 60u8, 134u8, + 123u8, 198u8, 222u8, 157u8, 214u8, 248u8, 89u8, 204u8, 106u8, 110u8, + 227u8, 61u8, 71u8, 229u8, 5u8, 144u8, 79u8, 29u8, 86u8, 1u8, 201u8, + ], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(ChallengeStarted), + ::core::stringify!(ModuleConfigured), + ::core::stringify!(ModuleCleared), + ::core::stringify!(ChallengeCancelled), + ::core::stringify!(ChallengeSucceeded), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolEventInterface for LivenessModule2Events { + const NAME: &'static str = "LivenessModule2Events"; + const COUNT: usize = 5usize; + fn decode_raw_log( + topics: &[alloy_sol_types::Word], + data: &[u8], + ) -> alloy_sol_types::Result { + match topics.first().copied() { + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::ChallengeCancelled) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::ChallengeStarted) + } + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::ChallengeSucceeded) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::ModuleCleared) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::ModuleConfigured) + } + _ => { + alloy_sol_types::private::Err(alloy_sol_types::Error::InvalidLog { + name: ::NAME, + log: alloy_sol_types::private::Box::new( + alloy_sol_types::private::LogData::new_unchecked( + topics.to_vec(), + data.to_vec().into(), + ), + ), + }) + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for LivenessModule2Events { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + match self { + Self::ChallengeCancelled(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::ChallengeStarted(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::ChallengeSucceeded(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::ModuleCleared(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::ModuleConfigured(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + } + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + match self { + Self::ChallengeCancelled(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::ChallengeStarted(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::ChallengeSucceeded(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::ModuleCleared(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::ModuleConfigured(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`LivenessModule2`](self) contract instance. + +See the [wrapper's documentation](`LivenessModule2Instance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> LivenessModule2Instance { + LivenessModule2Instance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + LivenessModule2Instance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + LivenessModule2Instance::::deploy_builder(__provider) + } + /**A [`LivenessModule2`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`LivenessModule2`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct LivenessModule2Instance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for LivenessModule2Instance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("LivenessModule2Instance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > LivenessModule2Instance { + /**Creates a new wrapper around an on-chain [`LivenessModule2`](self) contract instance. + +See the [wrapper's documentation](`LivenessModule2Instance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl LivenessModule2Instance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> LivenessModule2Instance { + LivenessModule2Instance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > LivenessModule2Instance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`challenge`] function. + pub fn challenge( + &self, + _safe: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, challengeCall, N> { + self.call_builder(&challengeCall { _safe }) + } + ///Creates a new call builder for the [`challengeStartTime`] function. + pub fn challengeStartTime( + &self, + _0: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, challengeStartTimeCall, N> { + self.call_builder(&challengeStartTimeCall(_0)) + } + ///Creates a new call builder for the [`changeOwnershipToFallback`] function. + pub fn changeOwnershipToFallback( + &self, + _safe: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, changeOwnershipToFallbackCall, N> { + self.call_builder( + &changeOwnershipToFallbackCall { + _safe, + }, + ) + } + ///Creates a new call builder for the [`clearLivenessModule`] function. + pub fn clearLivenessModule( + &self, + ) -> alloy_contract::SolCallBuilder<&P, clearLivenessModuleCall, N> { + self.call_builder(&clearLivenessModuleCall) + } + ///Creates a new call builder for the [`configureLivenessModule`] function. + pub fn configureLivenessModule( + &self, + _config: ::RustType, + ) -> alloy_contract::SolCallBuilder<&P, configureLivenessModuleCall, N> { + self.call_builder( + &configureLivenessModuleCall { + _config, + }, + ) + } + ///Creates a new call builder for the [`getChallengePeriodEnd`] function. + pub fn getChallengePeriodEnd( + &self, + _safe: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, getChallengePeriodEndCall, N> { + self.call_builder(&getChallengePeriodEndCall { _safe }) + } + ///Creates a new call builder for the [`livenessSafeConfiguration`] function. + pub fn livenessSafeConfiguration( + &self, + _safe: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, livenessSafeConfigurationCall, N> { + self.call_builder( + &livenessSafeConfigurationCall { + _safe, + }, + ) + } + ///Creates a new call builder for the [`respond`] function. + pub fn respond(&self) -> alloy_contract::SolCallBuilder<&P, respondCall, N> { + self.call_builder(&respondCall) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > LivenessModule2Instance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + ///Creates a new event filter for the [`ChallengeCancelled`] event. + pub fn ChallengeCancelled_filter( + &self, + ) -> alloy_contract::Event<&P, ChallengeCancelled, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`ChallengeStarted`] event. + pub fn ChallengeStarted_filter( + &self, + ) -> alloy_contract::Event<&P, ChallengeStarted, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`ChallengeSucceeded`] event. + pub fn ChallengeSucceeded_filter( + &self, + ) -> alloy_contract::Event<&P, ChallengeSucceeded, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`ModuleCleared`] event. + pub fn ModuleCleared_filter( + &self, + ) -> alloy_contract::Event<&P, ModuleCleared, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`ModuleConfigured`] event. + pub fn ModuleConfigured_filter( + &self, + ) -> alloy_contract::Event<&P, ModuleConfigured, N> { + self.event_filter::() + } + } +} diff --git a/bindings/rust/src/merkle_trie.rs b/bindings/rust/src/merkle_trie.rs new file mode 100644 index 000000000..68f675517 --- /dev/null +++ b/bindings/rust/src/merkle_trie.rs @@ -0,0 +1,215 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface MerkleTrie {} +``` + +...which was generated by the following JSON ABI: +```json +[] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod MerkleTrie { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`-`7`\x0B\x82\x82\x829\x80Q`\0\x1A`s\x14`*WcNH{q`\xE0\x1B`\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`\0\x80\xFD\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + 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`\0\x80\xFD\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`MerkleTrie`](self) contract instance. + +See the [wrapper's documentation](`MerkleTrieInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> MerkleTrieInstance { + MerkleTrieInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + MerkleTrieInstance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + MerkleTrieInstance::::deploy_builder(__provider) + } + /**A [`MerkleTrie`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`MerkleTrie`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct MerkleTrieInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for MerkleTrieInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("MerkleTrieInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > MerkleTrieInstance { + /**Creates a new wrapper around an on-chain [`MerkleTrie`](self) contract instance. + +See the [wrapper's documentation](`MerkleTrieInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl MerkleTrieInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> MerkleTrieInstance { + MerkleTrieInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > MerkleTrieInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > MerkleTrieInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + } +} diff --git a/bindings/rust/src/mint_manager.rs b/bindings/rust/src/mint_manager.rs new file mode 100644 index 000000000..dd2cd06d3 --- /dev/null +++ b/bindings/rust/src/mint_manager.rs @@ -0,0 +1,2751 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface MintManager { + event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); + + constructor(address _upgrader, address _governanceToken); + + function DENOMINATOR() external view returns (uint256); + function MINT_CAP() external view returns (uint256); + function MINT_PERIOD() external view returns (uint256); + function governanceToken() external view returns (address); + function mint(address _account, uint256 _amount) external; + function mintPermittedAfter() external view returns (uint256); + function owner() external view returns (address); + function renounceOwnership() external; + function transferOwnership(address newOwner) external; + function upgrade(address _newMintManager) external; +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "constructor", + "inputs": [ + { + "name": "_upgrader", + "type": "address", + "internalType": "address" + }, + { + "name": "_governanceToken", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "DENOMINATOR", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "MINT_CAP", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "MINT_PERIOD", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "governanceToken", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract IGovernanceToken" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "mint", + "inputs": [ + { + "name": "_account", + "type": "address", + "internalType": "address" + }, + { + "name": "_amount", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "mintPermittedAfter", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "owner", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "renounceOwnership", + "inputs": [], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "transferOwnership", + "inputs": [ + { + "name": "newOwner", + "type": "address", + "internalType": "address" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "upgrade", + "inputs": [ + { + "name": "_newMintManager", + "type": "address", + "internalType": "address" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "event", + "name": "OwnershipTransferred", + "inputs": [ + { + "name": "previousOwner", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "newOwner", + "type": "address", + "indexed": true, + "internalType": "address" + } + ], + "anonymous": false + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod MintManager { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x60a060405234801561001057600080fd5b50604051610aa3380380610aa383398101604081905261002f91610199565b61003833610053565b610041826100a3565b6001600160a01b0316608052506101cc565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6100ab610121565b6001600160a01b0381166101155760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b61011e81610053565b50565b6000546001600160a01b0316331461017b5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161010c565b565b80516001600160a01b038116811461019457600080fd5b919050565b600080604083850312156101ac57600080fd5b6101b58361017d565b91506101c36020840161017d565b90509250929050565b6080516108a76101fc6000396000818161018101528181610298015281816103a0015261052c01526108a76000f3fe608060405234801561001057600080fd5b50600436106100bd5760003560e01c80638da5cb5b1161007657806398f1312e1161005b57806398f1312e14610161578063f2fde38b14610169578063f96dae0a1461017c57600080fd5b80638da5cb5b14610119578063918f86741461015857600080fd5b806340c10f19116100a757806340c10f19146100f3578063715018a61461010657806383ea6e971461010e57600080fd5b8062f8900c146100c25780630900f010146100de575b600080fd5b6100cb60015481565b6040519081526020015b60405180910390f35b6100f16100ec366004610776565b6101a3565b005b6100f1610101366004610798565b6102f7565b6100f161058c565b6100cb6301e1338081565b60005473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100d5565b6100cb6103e881565b6100cb601481565b6100f1610177366004610776565b6105a0565b6101337f000000000000000000000000000000000000000000000000000000000000000081565b6101ab610657565b73ffffffffffffffffffffffffffffffffffffffff8116610253576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603460248201527f4d696e744d616e616765723a206d696e74206d616e616765722063616e6e6f7460448201527f20626520746865207a65726f206164647265737300000000000000000000000060648201526084015b60405180910390fd5b6040517ff2fde38b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063f2fde38b90602401600060405180830381600087803b1580156102dc57600080fd5b505af11580156102f0573d6000803e3d6000fd5b5050505050565b6102ff610657565b600154156104cf57426001541115610399576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4d696e744d616e616765723a206d696e74696e67206e6f74207065726d69747460448201527f6564207965740000000000000000000000000000000000000000000000000000606482015260840161024a565b6103e860147f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610409573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061042d91906107c2565b610437919061080a565b6104419190610847565b8111156104cf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f4d696e744d616e616765723a206d696e7420616d6f756e74206578636565647360448201527f2063617000000000000000000000000000000000000000000000000000000000606482015260840161024a565b6104dd6301e1338042610882565b6001556040517f40c10f1900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8381166004830152602482018390527f000000000000000000000000000000000000000000000000000000000000000016906340c10f1990604401600060405180830381600087803b15801561057057600080fd5b505af1158015610584573d6000803e3d6000fd5b505050505050565b610594610657565b61059e60006106d8565b565b6105a8610657565b73ffffffffffffffffffffffffffffffffffffffff811661064b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161024a565b610654816106d8565b50565b60005473ffffffffffffffffffffffffffffffffffffffff16331461059e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161024a565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461077157600080fd5b919050565b60006020828403121561078857600080fd5b6107918261074d565b9392505050565b600080604083850312156107ab57600080fd5b6107b48361074d565b946020939093013593505050565b6000602082840312156107d457600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615610842576108426107db565b500290565b60008261087d577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b60008219821115610895576108956107db565b50019056fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\xA0`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`@Qa\n\xA38\x03\x80a\n\xA3\x839\x81\x01`@\x81\x90Ra\0/\x91a\x01\x99V[a\083a\0SV[a\0A\x82a\0\xA3V[`\x01`\x01`\xA0\x1B\x03\x16`\x80RPa\x01\xCCV[`\0\x80T`\x01`\x01`\xA0\x1B\x03\x83\x81\x16`\x01`\x01`\xA0\x1B\x03\x19\x83\x16\x81\x17\x84U`@Q\x91\x90\x92\x16\x92\x83\x91\x7F\x8B\xE0\x07\x9CS\x16Y\x14\x13D\xCD\x1F\xD0\xA4\xF2\x84\x19I\x7F\x97\"\xA3\xDA\xAF\xE3\xB4\x18okdW\xE0\x91\x90\xA3PPV[a\0\xABa\x01!V[`\x01`\x01`\xA0\x1B\x03\x81\x16a\x01\x15W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`&`$\x82\x01R\x7FOwnable: new owner is the zero a`D\x82\x01Reddress`\xD0\x1B`d\x82\x01R`\x84\x01[`@Q\x80\x91\x03\x90\xFD[a\x01\x1E\x81a\0SV[PV[`\0T`\x01`\x01`\xA0\x1B\x03\x163\x14a\x01{W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01\x81\x90R`$\x82\x01R\x7FOwnable: caller is not the owner`D\x82\x01R`d\x01a\x01\x0CV[V[\x80Q`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a\x01\x94W`\0\x80\xFD[\x91\x90PV[`\0\x80`@\x83\x85\x03\x12\x15a\x01\xACW`\0\x80\xFD[a\x01\xB5\x83a\x01}V[\x91Pa\x01\xC3` \x84\x01a\x01}V[\x90P\x92P\x92\x90PV[`\x80Qa\x08\xA7a\x01\xFC`\09`\0\x81\x81a\x01\x81\x01R\x81\x81a\x02\x98\x01R\x81\x81a\x03\xA0\x01Ra\x05,\x01Ra\x08\xA7`\0\xF3\xFE`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`\x046\x10a\0\xBDW`\x005`\xE0\x1C\x80c\x8D\xA5\xCB[\x11a\0vW\x80c\x98\xF11.\x11a\0[W\x80c\x98\xF11.\x14a\x01aW\x80c\xF2\xFD\xE3\x8B\x14a\x01iW\x80c\xF9m\xAE\n\x14a\x01|W`\0\x80\xFD[\x80c\x8D\xA5\xCB[\x14a\x01\x19W\x80c\x91\x8F\x86t\x14a\x01XW`\0\x80\xFD[\x80c@\xC1\x0F\x19\x11a\0\xA7W\x80c@\xC1\x0F\x19\x14a\0\xF3W\x80cqP\x18\xA6\x14a\x01\x06W\x80c\x83\xEAn\x97\x14a\x01\x0EW`\0\x80\xFD[\x80b\xF8\x90\x0C\x14a\0\xC2W\x80c\t\0\xF0\x10\x14a\0\xDEW[`\0\x80\xFD[a\0\xCB`\x01T\x81V[`@Q\x90\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[a\0\xF1a\0\xEC6`\x04a\x07vV[a\x01\xA3V[\0[a\0\xF1a\x01\x016`\x04a\x07\x98V[a\x02\xF7V[a\0\xF1a\x05\x8CV[a\0\xCBc\x01\xE13\x80\x81V[`\0Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16[`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01a\0\xD5V[a\0\xCBa\x03\xE8\x81V[a\0\xCB`\x14\x81V[a\0\xF1a\x01w6`\x04a\x07vV[a\x05\xA0V[a\x013\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[a\x01\xABa\x06WV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16a\x02SW`@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\x82\x01R`4`$\x82\x01R\x7FMintManager: mint manager cannot`D\x82\x01R\x7F be the zero address\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01[`@Q\x80\x91\x03\x90\xFD[`@Q\x7F\xF2\xFD\xE3\x8B\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\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x81\x16`\x04\x83\x01R\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x90c\xF2\xFD\xE3\x8B\x90`$\x01`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a\x02\xDCW`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x02\xF0W=`\0\x80>=`\0\xFD[PPPPPV[a\x02\xFFa\x06WV[`\x01T\x15a\x04\xCFWB`\x01T\x11\x15a\x03\x99W`@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\x82\x01R`&`$\x82\x01R\x7FMintManager: minting not permitt`D\x82\x01R\x7Fed yet\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`d\x82\x01R`\x84\x01a\x02JV[a\x03\xE8`\x14\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\x18\x16\r\xDD`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x04\tW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x04-\x91\x90a\x07\xC2V[a\x047\x91\x90a\x08\nV[a\x04A\x91\x90a\x08GV[\x81\x11\x15a\x04\xCFW`@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\x82\x01R`$\x80\x82\x01R\x7FMintManager: mint amount exceeds`D\x82\x01R\x7F cap\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`d\x82\x01R`\x84\x01a\x02JV[a\x04\xDDc\x01\xE13\x80Ba\x08\x82V[`\x01U`@Q\x7F@\xC1\x0F\x19\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\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x81\x16`\x04\x83\x01R`$\x82\x01\x83\x90R\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x90c@\xC1\x0F\x19\x90`D\x01`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a\x05pW`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x05\x84W=`\0\x80>=`\0\xFD[PPPPPPV[a\x05\x94a\x06WV[a\x05\x9E`\0a\x06\xD8V[V[a\x05\xA8a\x06WV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16a\x06KW`@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\x82\x01R`&`$\x82\x01R\x7FOwnable: new owner is the zero a`D\x82\x01R\x7Fddress\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`d\x82\x01R`\x84\x01a\x02JV[a\x06T\x81a\x06\xD8V[PV[`\0Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x163\x14a\x05\x9EW`@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\x82\x01\x81\x90R`$\x82\x01R\x7FOwnable: caller is not the owner`D\x82\x01R`d\x01a\x02JV[`\0\x80Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x81\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x83\x16\x81\x17\x84U`@Q\x91\x90\x92\x16\x92\x83\x91\x7F\x8B\xE0\x07\x9CS\x16Y\x14\x13D\xCD\x1F\xD0\xA4\xF2\x84\x19I\x7F\x97\"\xA3\xDA\xAF\xE3\xB4\x18okdW\xE0\x91\x90\xA3PPV[\x805s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x07qW`\0\x80\xFD[\x91\x90PV[`\0` \x82\x84\x03\x12\x15a\x07\x88W`\0\x80\xFD[a\x07\x91\x82a\x07MV[\x93\x92PPPV[`\0\x80`@\x83\x85\x03\x12\x15a\x07\xABW`\0\x80\xFD[a\x07\xB4\x83a\x07MV[\x94` \x93\x90\x93\x015\x93PPPV[`\0` \x82\x84\x03\x12\x15a\x07\xD4W`\0\x80\xFD[PQ\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`\x11`\x04R`$`\0\xFD[`\0\x81\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x04\x83\x11\x82\x15\x15\x16\x15a\x08BWa\x08Ba\x07\xDBV[P\x02\x90V[`\0\x82a\x08}W\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`\x12`\x04R`$`\0\xFD[P\x04\x90V[`\0\x82\x19\x82\x11\x15a\x08\x95Wa\x08\x95a\x07\xDBV[P\x01\x90V\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x608060405234801561001057600080fd5b50600436106100bd5760003560e01c80638da5cb5b1161007657806398f1312e1161005b57806398f1312e14610161578063f2fde38b14610169578063f96dae0a1461017c57600080fd5b80638da5cb5b14610119578063918f86741461015857600080fd5b806340c10f19116100a757806340c10f19146100f3578063715018a61461010657806383ea6e971461010e57600080fd5b8062f8900c146100c25780630900f010146100de575b600080fd5b6100cb60015481565b6040519081526020015b60405180910390f35b6100f16100ec366004610776565b6101a3565b005b6100f1610101366004610798565b6102f7565b6100f161058c565b6100cb6301e1338081565b60005473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100d5565b6100cb6103e881565b6100cb601481565b6100f1610177366004610776565b6105a0565b6101337f000000000000000000000000000000000000000000000000000000000000000081565b6101ab610657565b73ffffffffffffffffffffffffffffffffffffffff8116610253576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603460248201527f4d696e744d616e616765723a206d696e74206d616e616765722063616e6e6f7460448201527f20626520746865207a65726f206164647265737300000000000000000000000060648201526084015b60405180910390fd5b6040517ff2fde38b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063f2fde38b90602401600060405180830381600087803b1580156102dc57600080fd5b505af11580156102f0573d6000803e3d6000fd5b5050505050565b6102ff610657565b600154156104cf57426001541115610399576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4d696e744d616e616765723a206d696e74696e67206e6f74207065726d69747460448201527f6564207965740000000000000000000000000000000000000000000000000000606482015260840161024a565b6103e860147f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610409573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061042d91906107c2565b610437919061080a565b6104419190610847565b8111156104cf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f4d696e744d616e616765723a206d696e7420616d6f756e74206578636565647360448201527f2063617000000000000000000000000000000000000000000000000000000000606482015260840161024a565b6104dd6301e1338042610882565b6001556040517f40c10f1900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8381166004830152602482018390527f000000000000000000000000000000000000000000000000000000000000000016906340c10f1990604401600060405180830381600087803b15801561057057600080fd5b505af1158015610584573d6000803e3d6000fd5b505050505050565b610594610657565b61059e60006106d8565b565b6105a8610657565b73ffffffffffffffffffffffffffffffffffffffff811661064b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161024a565b610654816106d8565b50565b60005473ffffffffffffffffffffffffffffffffffffffff16331461059e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161024a565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461077157600080fd5b919050565b60006020828403121561078857600080fd5b6107918261074d565b9392505050565b600080604083850312156107ab57600080fd5b6107b48361074d565b946020939093013593505050565b6000602082840312156107d457600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615610842576108426107db565b500290565b60008261087d577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b60008219821115610895576108956107db565b50019056fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`\x046\x10a\0\xBDW`\x005`\xE0\x1C\x80c\x8D\xA5\xCB[\x11a\0vW\x80c\x98\xF11.\x11a\0[W\x80c\x98\xF11.\x14a\x01aW\x80c\xF2\xFD\xE3\x8B\x14a\x01iW\x80c\xF9m\xAE\n\x14a\x01|W`\0\x80\xFD[\x80c\x8D\xA5\xCB[\x14a\x01\x19W\x80c\x91\x8F\x86t\x14a\x01XW`\0\x80\xFD[\x80c@\xC1\x0F\x19\x11a\0\xA7W\x80c@\xC1\x0F\x19\x14a\0\xF3W\x80cqP\x18\xA6\x14a\x01\x06W\x80c\x83\xEAn\x97\x14a\x01\x0EW`\0\x80\xFD[\x80b\xF8\x90\x0C\x14a\0\xC2W\x80c\t\0\xF0\x10\x14a\0\xDEW[`\0\x80\xFD[a\0\xCB`\x01T\x81V[`@Q\x90\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[a\0\xF1a\0\xEC6`\x04a\x07vV[a\x01\xA3V[\0[a\0\xF1a\x01\x016`\x04a\x07\x98V[a\x02\xF7V[a\0\xF1a\x05\x8CV[a\0\xCBc\x01\xE13\x80\x81V[`\0Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16[`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01a\0\xD5V[a\0\xCBa\x03\xE8\x81V[a\0\xCB`\x14\x81V[a\0\xF1a\x01w6`\x04a\x07vV[a\x05\xA0V[a\x013\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[a\x01\xABa\x06WV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16a\x02SW`@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\x82\x01R`4`$\x82\x01R\x7FMintManager: mint manager cannot`D\x82\x01R\x7F be the zero address\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01[`@Q\x80\x91\x03\x90\xFD[`@Q\x7F\xF2\xFD\xE3\x8B\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\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x81\x16`\x04\x83\x01R\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x90c\xF2\xFD\xE3\x8B\x90`$\x01`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a\x02\xDCW`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x02\xF0W=`\0\x80>=`\0\xFD[PPPPPV[a\x02\xFFa\x06WV[`\x01T\x15a\x04\xCFWB`\x01T\x11\x15a\x03\x99W`@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\x82\x01R`&`$\x82\x01R\x7FMintManager: minting not permitt`D\x82\x01R\x7Fed yet\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`d\x82\x01R`\x84\x01a\x02JV[a\x03\xE8`\x14\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\x18\x16\r\xDD`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x04\tW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x04-\x91\x90a\x07\xC2V[a\x047\x91\x90a\x08\nV[a\x04A\x91\x90a\x08GV[\x81\x11\x15a\x04\xCFW`@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\x82\x01R`$\x80\x82\x01R\x7FMintManager: mint amount exceeds`D\x82\x01R\x7F cap\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`d\x82\x01R`\x84\x01a\x02JV[a\x04\xDDc\x01\xE13\x80Ba\x08\x82V[`\x01U`@Q\x7F@\xC1\x0F\x19\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\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x81\x16`\x04\x83\x01R`$\x82\x01\x83\x90R\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x90c@\xC1\x0F\x19\x90`D\x01`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a\x05pW`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x05\x84W=`\0\x80>=`\0\xFD[PPPPPPV[a\x05\x94a\x06WV[a\x05\x9E`\0a\x06\xD8V[V[a\x05\xA8a\x06WV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16a\x06KW`@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\x82\x01R`&`$\x82\x01R\x7FOwnable: new owner is the zero a`D\x82\x01R\x7Fddress\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`d\x82\x01R`\x84\x01a\x02JV[a\x06T\x81a\x06\xD8V[PV[`\0Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x163\x14a\x05\x9EW`@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\x82\x01\x81\x90R`$\x82\x01R\x7FOwnable: caller is not the owner`D\x82\x01R`d\x01a\x02JV[`\0\x80Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x81\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x83\x16\x81\x17\x84U`@Q\x91\x90\x92\x16\x92\x83\x91\x7F\x8B\xE0\x07\x9CS\x16Y\x14\x13D\xCD\x1F\xD0\xA4\xF2\x84\x19I\x7F\x97\"\xA3\xDA\xAF\xE3\xB4\x18okdW\xE0\x91\x90\xA3PPV[\x805s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x07qW`\0\x80\xFD[\x91\x90PV[`\0` \x82\x84\x03\x12\x15a\x07\x88W`\0\x80\xFD[a\x07\x91\x82a\x07MV[\x93\x92PPPV[`\0\x80`@\x83\x85\x03\x12\x15a\x07\xABW`\0\x80\xFD[a\x07\xB4\x83a\x07MV[\x94` \x93\x90\x93\x015\x93PPPV[`\0` \x82\x84\x03\x12\x15a\x07\xD4W`\0\x80\xFD[PQ\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`\x11`\x04R`$`\0\xFD[`\0\x81\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x04\x83\x11\x82\x15\x15\x16\x15a\x08BWa\x08Ba\x07\xDBV[P\x02\x90V[`\0\x82a\x08}W\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`\x12`\x04R`$`\0\xFD[P\x04\x90V[`\0\x82\x19\x82\x11\x15a\x08\x95Wa\x08\x95a\x07\xDBV[P\x01\x90V\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `OwnershipTransferred(address,address)` and selector `0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0`. +```solidity +event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct OwnershipTransferred { + #[allow(missing_docs)] + pub previousOwner: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub newOwner: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for OwnershipTransferred { + type DataTuple<'a> = (); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "OwnershipTransferred(address,address)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 139u8, 224u8, 7u8, 156u8, 83u8, 22u8, 89u8, 20u8, 19u8, 68u8, 205u8, + 31u8, 208u8, 164u8, 242u8, 132u8, 25u8, 73u8, 127u8, 151u8, 34u8, 163u8, + 218u8, 175u8, 227u8, 180u8, 24u8, 111u8, 107u8, 100u8, 87u8, 224u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + previousOwner: topics.1, + newOwner: topics.2, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + () + } + #[inline] + fn topics(&self) -> ::RustType { + ( + Self::SIGNATURE_HASH.into(), + self.previousOwner.clone(), + self.newOwner.clone(), + ) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.previousOwner, + ); + out[2usize] = ::encode_topic( + &self.newOwner, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for OwnershipTransferred { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&OwnershipTransferred> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &OwnershipTransferred) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + /**Constructor`. +```solidity +constructor(address _upgrader, address _governanceToken); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct constructorCall { + #[allow(missing_docs)] + pub _upgrader: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _governanceToken: alloy::sol_types::private::Address, + } + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: constructorCall) -> Self { + (value._upgrader, value._governanceToken) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for constructorCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _upgrader: tuple.0, + _governanceToken: tuple.1, + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolConstructor for constructorCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._upgrader, + ), + ::tokenize( + &self._governanceToken, + ), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `DENOMINATOR()` and selector `0x918f8674`. +```solidity +function DENOMINATOR() external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct DENOMINATORCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`DENOMINATOR()`](DENOMINATORCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct DENOMINATORReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: DENOMINATORCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for DENOMINATORCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: DENOMINATORReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for DENOMINATORReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for DENOMINATORCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "DENOMINATOR()"; + const SELECTOR: [u8; 4] = [145u8, 143u8, 134u8, 116u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: DENOMINATORReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: DENOMINATORReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `MINT_CAP()` and selector `0x98f1312e`. +```solidity +function MINT_CAP() external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct MINT_CAPCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`MINT_CAP()`](MINT_CAPCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct MINT_CAPReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: MINT_CAPCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for MINT_CAPCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: MINT_CAPReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for MINT_CAPReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for MINT_CAPCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "MINT_CAP()"; + const SELECTOR: [u8; 4] = [152u8, 241u8, 49u8, 46u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: MINT_CAPReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: MINT_CAPReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `MINT_PERIOD()` and selector `0x83ea6e97`. +```solidity +function MINT_PERIOD() external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct MINT_PERIODCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`MINT_PERIOD()`](MINT_PERIODCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct MINT_PERIODReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: MINT_PERIODCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for MINT_PERIODCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: MINT_PERIODReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for MINT_PERIODReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for MINT_PERIODCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "MINT_PERIOD()"; + const SELECTOR: [u8; 4] = [131u8, 234u8, 110u8, 151u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: MINT_PERIODReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: MINT_PERIODReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `governanceToken()` and selector `0xf96dae0a`. +```solidity +function governanceToken() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct governanceTokenCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`governanceToken()`](governanceTokenCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct governanceTokenReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: governanceTokenCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for governanceTokenCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: governanceTokenReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for governanceTokenReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for governanceTokenCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "governanceToken()"; + const SELECTOR: [u8; 4] = [249u8, 109u8, 174u8, 10u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: governanceTokenReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: governanceTokenReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `mint(address,uint256)` and selector `0x40c10f19`. +```solidity +function mint(address _account, uint256 _amount) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct mintCall { + #[allow(missing_docs)] + pub _account: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _amount: alloy::sol_types::private::primitives::aliases::U256, + } + ///Container type for the return parameters of the [`mint(address,uint256)`](mintCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct mintReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: mintCall) -> Self { + (value._account, value._amount) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for mintCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _account: tuple.0, + _amount: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: mintReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for mintReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl mintReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for mintCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = mintReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "mint(address,uint256)"; + const SELECTOR: [u8; 4] = [64u8, 193u8, 15u8, 25u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._account, + ), + as alloy_sol_types::SolType>::tokenize(&self._amount), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + mintReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `mintPermittedAfter()` and selector `0x00f8900c`. +```solidity +function mintPermittedAfter() external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct mintPermittedAfterCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`mintPermittedAfter()`](mintPermittedAfterCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct mintPermittedAfterReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: mintPermittedAfterCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for mintPermittedAfterCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: mintPermittedAfterReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for mintPermittedAfterReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for mintPermittedAfterCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "mintPermittedAfter()"; + const SELECTOR: [u8; 4] = [0u8, 248u8, 144u8, 12u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: mintPermittedAfterReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: mintPermittedAfterReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `owner()` and selector `0x8da5cb5b`. +```solidity +function owner() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ownerCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`owner()`](ownerCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ownerReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ownerCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ownerCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ownerReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ownerReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for ownerCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "owner()"; + const SELECTOR: [u8; 4] = [141u8, 165u8, 203u8, 91u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: ownerReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: ownerReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `renounceOwnership()` and selector `0x715018a6`. +```solidity +function renounceOwnership() external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct renounceOwnershipCall; + ///Container type for the return parameters of the [`renounceOwnership()`](renounceOwnershipCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct renounceOwnershipReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: renounceOwnershipCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for renounceOwnershipCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: renounceOwnershipReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for renounceOwnershipReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl renounceOwnershipReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for renounceOwnershipCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = renounceOwnershipReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "renounceOwnership()"; + const SELECTOR: [u8; 4] = [113u8, 80u8, 24u8, 166u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + renounceOwnershipReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `transferOwnership(address)` and selector `0xf2fde38b`. +```solidity +function transferOwnership(address newOwner) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct transferOwnershipCall { + #[allow(missing_docs)] + pub newOwner: alloy::sol_types::private::Address, + } + ///Container type for the return parameters of the [`transferOwnership(address)`](transferOwnershipCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct transferOwnershipReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: transferOwnershipCall) -> Self { + (value.newOwner,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for transferOwnershipCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { newOwner: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: transferOwnershipReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for transferOwnershipReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl transferOwnershipReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for transferOwnershipCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = transferOwnershipReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "transferOwnership(address)"; + const SELECTOR: [u8; 4] = [242u8, 253u8, 227u8, 139u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.newOwner, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + transferOwnershipReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `upgrade(address)` and selector `0x0900f010`. +```solidity +function upgrade(address _newMintManager) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct upgradeCall { + #[allow(missing_docs)] + pub _newMintManager: alloy::sol_types::private::Address, + } + ///Container type for the return parameters of the [`upgrade(address)`](upgradeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct upgradeReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: upgradeCall) -> Self { + (value._newMintManager,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for upgradeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _newMintManager: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: upgradeReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for upgradeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl upgradeReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for upgradeCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = upgradeReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "upgrade(address)"; + const SELECTOR: [u8; 4] = [9u8, 0u8, 240u8, 16u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._newMintManager, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + upgradeReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + ///Container for all the [`MintManager`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum MintManagerCalls { + #[allow(missing_docs)] + DENOMINATOR(DENOMINATORCall), + #[allow(missing_docs)] + MINT_CAP(MINT_CAPCall), + #[allow(missing_docs)] + MINT_PERIOD(MINT_PERIODCall), + #[allow(missing_docs)] + governanceToken(governanceTokenCall), + #[allow(missing_docs)] + mint(mintCall), + #[allow(missing_docs)] + mintPermittedAfter(mintPermittedAfterCall), + #[allow(missing_docs)] + owner(ownerCall), + #[allow(missing_docs)] + renounceOwnership(renounceOwnershipCall), + #[allow(missing_docs)] + transferOwnership(transferOwnershipCall), + #[allow(missing_docs)] + upgrade(upgradeCall), + } + impl MintManagerCalls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [0u8, 248u8, 144u8, 12u8], + [9u8, 0u8, 240u8, 16u8], + [64u8, 193u8, 15u8, 25u8], + [113u8, 80u8, 24u8, 166u8], + [131u8, 234u8, 110u8, 151u8], + [141u8, 165u8, 203u8, 91u8], + [145u8, 143u8, 134u8, 116u8], + [152u8, 241u8, 49u8, 46u8], + [242u8, 253u8, 227u8, 139u8], + [249u8, 109u8, 174u8, 10u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(mintPermittedAfter), + ::core::stringify!(upgrade), + ::core::stringify!(mint), + ::core::stringify!(renounceOwnership), + ::core::stringify!(MINT_PERIOD), + ::core::stringify!(owner), + ::core::stringify!(DENOMINATOR), + ::core::stringify!(MINT_CAP), + ::core::stringify!(transferOwnership), + ::core::stringify!(governanceToken), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for MintManagerCalls { + const NAME: &'static str = "MintManagerCalls"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 10usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::DENOMINATOR(_) => { + ::SELECTOR + } + Self::MINT_CAP(_) => ::SELECTOR, + Self::MINT_PERIOD(_) => { + ::SELECTOR + } + Self::governanceToken(_) => { + ::SELECTOR + } + Self::mint(_) => ::SELECTOR, + Self::mintPermittedAfter(_) => { + ::SELECTOR + } + Self::owner(_) => ::SELECTOR, + Self::renounceOwnership(_) => { + ::SELECTOR + } + Self::transferOwnership(_) => { + ::SELECTOR + } + Self::upgrade(_) => ::SELECTOR, + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn mintPermittedAfter( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(MintManagerCalls::mintPermittedAfter) + } + mintPermittedAfter + }, + { + fn upgrade( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(MintManagerCalls::upgrade) + } + upgrade + }, + { + fn mint(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(MintManagerCalls::mint) + } + mint + }, + { + fn renounceOwnership( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(MintManagerCalls::renounceOwnership) + } + renounceOwnership + }, + { + fn MINT_PERIOD( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(MintManagerCalls::MINT_PERIOD) + } + MINT_PERIOD + }, + { + fn owner(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(MintManagerCalls::owner) + } + owner + }, + { + fn DENOMINATOR( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(MintManagerCalls::DENOMINATOR) + } + DENOMINATOR + }, + { + fn MINT_CAP( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(MintManagerCalls::MINT_CAP) + } + MINT_CAP + }, + { + fn transferOwnership( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(MintManagerCalls::transferOwnership) + } + transferOwnership + }, + { + fn governanceToken( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(MintManagerCalls::governanceToken) + } + governanceToken + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn mintPermittedAfter( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(MintManagerCalls::mintPermittedAfter) + } + mintPermittedAfter + }, + { + fn upgrade( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(MintManagerCalls::upgrade) + } + upgrade + }, + { + fn mint(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(MintManagerCalls::mint) + } + mint + }, + { + fn renounceOwnership( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(MintManagerCalls::renounceOwnership) + } + renounceOwnership + }, + { + fn MINT_PERIOD( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(MintManagerCalls::MINT_PERIOD) + } + MINT_PERIOD + }, + { + fn owner(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(MintManagerCalls::owner) + } + owner + }, + { + fn DENOMINATOR( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(MintManagerCalls::DENOMINATOR) + } + DENOMINATOR + }, + { + fn MINT_CAP( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(MintManagerCalls::MINT_CAP) + } + MINT_CAP + }, + { + fn transferOwnership( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(MintManagerCalls::transferOwnership) + } + transferOwnership + }, + { + fn governanceToken( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(MintManagerCalls::governanceToken) + } + governanceToken + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::DENOMINATOR(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::MINT_CAP(inner) => { + ::abi_encoded_size(inner) + } + Self::MINT_PERIOD(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::governanceToken(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::mint(inner) => { + ::abi_encoded_size(inner) + } + Self::mintPermittedAfter(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::owner(inner) => { + ::abi_encoded_size(inner) + } + Self::renounceOwnership(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::transferOwnership(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::upgrade(inner) => { + ::abi_encoded_size(inner) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::DENOMINATOR(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::MINT_CAP(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::MINT_PERIOD(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::governanceToken(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::mint(inner) => { + ::abi_encode_raw(inner, out) + } + Self::mintPermittedAfter(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::owner(inner) => { + ::abi_encode_raw(inner, out) + } + Self::renounceOwnership(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::transferOwnership(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::upgrade(inner) => { + ::abi_encode_raw(inner, out) + } + } + } + } + ///Container for all the [`MintManager`](self) events. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum MintManagerEvents { + #[allow(missing_docs)] + OwnershipTransferred(OwnershipTransferred), + } + impl MintManagerEvents { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 32usize]] = &[ + [ + 139u8, 224u8, 7u8, 156u8, 83u8, 22u8, 89u8, 20u8, 19u8, 68u8, 205u8, + 31u8, 208u8, 164u8, 242u8, 132u8, 25u8, 73u8, 127u8, 151u8, 34u8, 163u8, + 218u8, 175u8, 227u8, 180u8, 24u8, 111u8, 107u8, 100u8, 87u8, 224u8, + ], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(OwnershipTransferred), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolEventInterface for MintManagerEvents { + const NAME: &'static str = "MintManagerEvents"; + const COUNT: usize = 1usize; + fn decode_raw_log( + topics: &[alloy_sol_types::Word], + data: &[u8], + ) -> alloy_sol_types::Result { + match topics.first().copied() { + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::OwnershipTransferred) + } + _ => { + alloy_sol_types::private::Err(alloy_sol_types::Error::InvalidLog { + name: ::NAME, + log: alloy_sol_types::private::Box::new( + alloy_sol_types::private::LogData::new_unchecked( + topics.to_vec(), + data.to_vec().into(), + ), + ), + }) + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for MintManagerEvents { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + match self { + Self::OwnershipTransferred(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + } + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + match self { + Self::OwnershipTransferred(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`MintManager`](self) contract instance. + +See the [wrapper's documentation](`MintManagerInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> MintManagerInstance { + MintManagerInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + _upgrader: alloy::sol_types::private::Address, + _governanceToken: alloy::sol_types::private::Address, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + MintManagerInstance::::deploy(__provider, _upgrader, _governanceToken) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + _upgrader: alloy::sol_types::private::Address, + _governanceToken: alloy::sol_types::private::Address, + ) -> alloy_contract::RawCallBuilder { + MintManagerInstance::< + P, + N, + >::deploy_builder(__provider, _upgrader, _governanceToken) + } + /**A [`MintManager`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`MintManager`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct MintManagerInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for MintManagerInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("MintManagerInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > MintManagerInstance { + /**Creates a new wrapper around an on-chain [`MintManager`](self) contract instance. + +See the [wrapper's documentation](`MintManagerInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + _upgrader: alloy::sol_types::private::Address, + _governanceToken: alloy::sol_types::private::Address, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder( + __provider, + _upgrader, + _governanceToken, + ); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder( + __provider: P, + _upgrader: alloy::sol_types::private::Address, + _governanceToken: alloy::sol_types::private::Address, + ) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + [ + &BYTECODE[..], + &alloy_sol_types::SolConstructor::abi_encode( + &constructorCall { + _upgrader, + _governanceToken, + }, + )[..], + ] + .concat() + .into(), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl MintManagerInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> MintManagerInstance { + MintManagerInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > MintManagerInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`DENOMINATOR`] function. + pub fn DENOMINATOR( + &self, + ) -> alloy_contract::SolCallBuilder<&P, DENOMINATORCall, N> { + self.call_builder(&DENOMINATORCall) + } + ///Creates a new call builder for the [`MINT_CAP`] function. + pub fn MINT_CAP(&self) -> alloy_contract::SolCallBuilder<&P, MINT_CAPCall, N> { + self.call_builder(&MINT_CAPCall) + } + ///Creates a new call builder for the [`MINT_PERIOD`] function. + pub fn MINT_PERIOD( + &self, + ) -> alloy_contract::SolCallBuilder<&P, MINT_PERIODCall, N> { + self.call_builder(&MINT_PERIODCall) + } + ///Creates a new call builder for the [`governanceToken`] function. + pub fn governanceToken( + &self, + ) -> alloy_contract::SolCallBuilder<&P, governanceTokenCall, N> { + self.call_builder(&governanceTokenCall) + } + ///Creates a new call builder for the [`mint`] function. + pub fn mint( + &self, + _account: alloy::sol_types::private::Address, + _amount: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, mintCall, N> { + self.call_builder(&mintCall { _account, _amount }) + } + ///Creates a new call builder for the [`mintPermittedAfter`] function. + pub fn mintPermittedAfter( + &self, + ) -> alloy_contract::SolCallBuilder<&P, mintPermittedAfterCall, N> { + self.call_builder(&mintPermittedAfterCall) + } + ///Creates a new call builder for the [`owner`] function. + pub fn owner(&self) -> alloy_contract::SolCallBuilder<&P, ownerCall, N> { + self.call_builder(&ownerCall) + } + ///Creates a new call builder for the [`renounceOwnership`] function. + pub fn renounceOwnership( + &self, + ) -> alloy_contract::SolCallBuilder<&P, renounceOwnershipCall, N> { + self.call_builder(&renounceOwnershipCall) + } + ///Creates a new call builder for the [`transferOwnership`] function. + pub fn transferOwnership( + &self, + newOwner: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, transferOwnershipCall, N> { + self.call_builder(&transferOwnershipCall { newOwner }) + } + ///Creates a new call builder for the [`upgrade`] function. + pub fn upgrade( + &self, + _newMintManager: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, upgradeCall, N> { + self.call_builder(&upgradeCall { _newMintManager }) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > MintManagerInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + ///Creates a new event filter for the [`OwnershipTransferred`] event. + pub fn OwnershipTransferred_filter( + &self, + ) -> alloy_contract::Event<&P, OwnershipTransferred, N> { + self.event_filter::() + } + } +} diff --git a/bindings/rust/src/mips64.rs b/bindings/rust/src/mips64.rs new file mode 100644 index 000000000..e4d08bc85 --- /dev/null +++ b/bindings/rust/src/mips64.rs @@ -0,0 +1,2115 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface MIPS64 { + error InvalidExitedValue(); + error InvalidMemoryProof(); + error InvalidPC(); + error InvalidRMWInstruction(); + error InvalidSecondMemoryProof(); + error UnsupportedStateVersion(); + + constructor(address _oracle, uint256 _stateVersion); + + function oracle() external view returns (address oracle_); + function stateVersion() external view returns (uint256 stateVersion_); + function step(bytes memory _stateData, bytes memory _proof, bytes32 _localContext) external returns (bytes32 postState_); + function version() external view returns (string memory); +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "constructor", + "inputs": [ + { + "name": "_oracle", + "type": "address", + "internalType": "contract IPreimageOracle" + }, + { + "name": "_stateVersion", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "oracle", + "inputs": [], + "outputs": [ + { + "name": "oracle_", + "type": "address", + "internalType": "contract IPreimageOracle" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "stateVersion", + "inputs": [], + "outputs": [ + { + "name": "stateVersion_", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "step", + "inputs": [ + { + "name": "_stateData", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "_proof", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "_localContext", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "outputs": [ + { + "name": "postState_", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "version", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "view" + }, + { + "type": "error", + "name": "InvalidExitedValue", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidMemoryProof", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidPC", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidRMWInstruction", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidSecondMemoryProof", + "inputs": [] + }, + { + "type": "error", + "name": "UnsupportedStateVersion", + "inputs": [] + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod MIPS64 { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x60c06040523480156200001157600080fd5b50604051620055173803806200551783398101604081905262000034916200007d565b8060071415801562000047575080600814155b156200006657604051630fc5815160e11b815260040160405180910390fd5b6001600160a01b0390911660805260a052620000b9565b600080604083850312156200009157600080fd5b82516001600160a01b0381168114620000a957600080fd5b6020939093015192949293505050565b60805160a05161542c620000eb60003960008181605301526117b501526000818160e9015261121a015261542c6000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80631219a4e41461005157806354fd4d50146100865780637dc0d1d0146100cf578063e14ced3214610113575b600080fd5b7f00000000000000000000000000000000000000000000000000000000000000005b6040519081526020015b60405180910390f35b6100c26040518060400160405280600581526020017f312e392e3000000000000000000000000000000000000000000000000000000081525081565b60405161007d9190615195565b60405173ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016815260200161007d565b61007361012136600461524a565b60006101308686868686610143565b905061013a61066b565b95945050505050565b604080516101e081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810182905261012081018290526101408101829052610160810182905261018081018290526101a081018290526101c081018290526101c361512b565b6000608083146101d257600080fd5b61026082146101e057600080fd5b604051610760146101f057600080fd5b608489146101fd57600080fd5b610164871461020b57600080fd5b508735608052602088013560a052604088013560c090811c81526048890135811c60e052605089013560f890811c6101005260518a0135821c6101205260598a0135821c6101405260618a0135811c6101605260628a0135811c61018081905260638b0135831c6101a052606b8b0135831c6101c05260738b013590911c6101e05260748a01356102005260948a01356102205260b48a013590911c610240526102b4816107b5565b826101000151156102d1576102c76107f9565b935050505061013a565b7fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb58361018001511480156103085750826101600151155b8061034457507fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5836101a0015114801561034457508261016001515b156103d5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f4d49505336343a206163746976652074687265616420737461636b206973206560448201527f6d7074790000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6101208301805160010167ffffffffffffffff1690526103f482610919565b6103fe8383610a3d565b8160400151156104195761041183610ae1565b6102c76107f9565b620186a067ffffffffffffffff1683610140015167ffffffffffffffff161061044f576104468383610b6c565b506102c76107f9565b6101408301805160010167ffffffffffffffff16905260006102ae905060008060006104848660600151886000015186610d4a565b9250925092508163ffffffff1660001480156104a657508063ffffffff16600c145b156104c2576104b489610dd0565b97505050505050505061013a565b63ffffffff8216603014806104dd575063ffffffff82166038145b156104ee576104b487878585611fc5565b63ffffffff821660341480610509575063ffffffff8216603c145b1561051a576104b487878585611fc5565b60006105a4876040805160808101825260008082526020820181905291810182905260608101919091526040518060800160405280836060015167ffffffffffffffff168152602001836080015167ffffffffffffffff1681526020018360a0015167ffffffffffffffff1681526020018360c0015167ffffffffffffffff168152509050919050565b6040805160e080820183528382528a015160208201528a5191810191909152610a2e606082015263ffffffff808716608083015285811660a0830152841660c08201529091506000806105f68361227a565b918d52855167ffffffffffffffff9081166060808f01919091526020880151821660808f01526040880151821660a08f01528701511660c08d01529250905061063d61282f565b811561064d5761064d8b826128ec565b6106556107f9565b9b50505050505050505050505095945050505050565b604080516101e0808201835260008083526020830181905292820183905260608201839052608080830184905260a0830184905260c0830184905260e08301849052610100830184905261012083018490526101408301849052610160830184905261018083018490526101a083018490526101c0909201839052519091906106f957816101800151610700565b816101a001515b90507fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb581036107b1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602f60248201527f4d49505336343a20706f73742d7374617465206163746976652074687265616460448201527f20737461636b20697320656d707479000000000000000000000000000000000060648201526084016103cc565b5050565b60018163ffffffff1611156107f6576040517f0136cc7600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b60408051608051815260a051602082015260d8519181019190915260f851604882015261011f5160508201526101385160518201526101585160598201526101605161017f5160618301526101805161019f5160628401526101b85160638401526101d851606b8401526101ff5160738401526102005160748401526102205160948401526102585160b4840152600060bc8085018281529194929361026093929183a06000935084600181146108b357600394506108db565b8180156108cb57600181146108d457600295506108d9565b600095506108d9565b600195505b505b505081900390207effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1660f89190911b179150610915816107b5565b5090565b3661092861012a6101646152ed565b8110156109b7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f4d49505336343a20696e73756666696369656e742063616c6c6461746120666f60448201527f7220746872656164207769746e6573730000000000000000000000000000000060648201526084016103cc565b6101643560c090811c835261016c3560f890811c602085015261016d35901c604084015261016e35811c606084015261017635811c608084015261017e35811c60a084015261018635811c9083015260e082015161018e9060005b6020811015610a3657823560c01c8252600890920191602090910190600101610a12565b5050505050565b6000610a50610a4a612924565b836129d7565b90506000836101600151610a6957836101800151610a70565b836101a001515b9050818114610adb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f4d49505336343a20696e76616c696420746872656164207769746e657373000060448201526064016103cc565b50505050565b80610160015115610aff57610af4612924565b6101a0820152610b0e565b610b07612924565b6101808201525b6000816101600151610b2557816101800151610b2c565b816101a001515b90507fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb58103610b6057610160820180511590525b50600061014090910152565b600082610160015115610c30577fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5836101a0015103610c07576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4d49505336343a20656d7074792072696768742074687265616420737461636b60448201526064016103cc565b610c0f612924565b6101a0840152610180830151610c2590836129d7565b610180840152610ce3565b7fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb583610180015103610cbe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f4d49505336343a20656d707479206c6566742074687265616420737461636b0060448201526064016103cc565b610cc6612924565b6101808401526101a0830151610cdc90836129d7565b6101a08401525b6000836101600151610cfa57836101800151610d01565b836101a001515b90507fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb58103610d395761016084018051159052600191505b506000610140909301929092525090565b600080806003861615610d89576040517f3f8200bc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000610da08667fffffffffffffff8891687612a19565b9050610db0878260046000612a6b565b9350601a8463ffffffff16901c925083603f169150505b93509350939050565b604080516101e081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810182905261012081018290526101408101829052610160810182905261018081018290526101a081018290526101c08101829052610e5061512b565b608091506102609050600080600080610e6c8560e00151612abb565b935093509350935060008061139163ffffffff168667ffffffffffffffff1603610eb857610e9f85858a60600151612ad7565b67ffffffffffffffff1660608b01529092509050611ebf565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec6c67ffffffffffffffff871601610ef757654000000000009150611ebf565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec4167ffffffffffffffff87160161114e5762050f0067ffffffffffffffff861614610f61576001610100890152600260e0890152610f536107f9565b9a9950505050505050505050565b50506101c08601516000610f7361512b565b6101c089015167ffffffffffffffff9081168252600060208301819052604083018190526080808b018051841660608601525160040183169084015260a0808b015183169084015260c0808b0151909216918301919091525b6020811015611022578860e001518160208110610feb57610feb615305565b60200201518260e00151826020811061100657611006615305565b67ffffffffffffffff9092166020929092020152600101610fcc565b5060e0818101805167ffffffffffffffff8881166103a09092019190915281516000604091820181905292519093018290526101c08c018051600101821690528251608080820185528382526020808301859052828601859052606092830185905285518083018752838f015185168152918e015184169082015260a08d015183169481019490945260c08c0151909116908301529060e0808b015167ffffffffffffffff80881660408301528087169190920152602082018051808316845260040190911690529050805167ffffffffffffffff9081166060808c01919091526020830151821660808c01526040830151821660a08c01528201511660c08a015261112c61282f565b6111368a83612b89565b61113e6107f9565b9c9b505050505050505050505050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffebab67ffffffffffffffff8716016111a057600161010089015260ff851660e089015261119861282f565b610f536107f9565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec7867ffffffffffffffff87160161127a57604080516101208101825267ffffffffffffffff8781168252868116602080840191909152868216838501528b01516060830152918a0151909116608082015260a081018b90527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1660c0820152610a2e60e0820152885161010082015261126e8982612bcf565b9093509150611ebf9050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec7767ffffffffffffffff871601611322576040805160e08101825267ffffffffffffffff8781168252868116602080840191909152868216838501528b01516060830152918a01519091166080820152610a2e60a0820152885160c082015261130281612c15565b67ffffffffffffffff1660408d015260208c01529093509150611ebf9050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec3267ffffffffffffffff8716016113675761135d8585612da7565b9092509050611ebf565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffebc667ffffffffffffffff8716016113a357505084516000611ebf565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec3e67ffffffffffffffff87160161140c576001604088015260ff851660208801526113ed88612f2e565b1561140457600161010089015260ff851660e08901525b61119861282f565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffebb667ffffffffffffffff87160161152d5767fffffffffffffffc85167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8067ffffffffffffffff8616016114cd57600061148482612fb1565b90508463ffffffff808316908216146114ab57600b945067ffffffffffffffff93506114c6565b6114b58b8b61303b565b9d9c50505050505050505050505050565b5050611527565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f67ffffffffffffffff86160161151757611508898961303b565b9b9a5050505050505050505050565b6016925067ffffffffffffffff91505b50611ebf565b67ffffffffffffffff861661139f1480611552575067ffffffffffffffff86166113aa145b1561156157610f53888861303b565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec7667ffffffffffffffff8716016115a557506009905067ffffffffffffffff611ebf565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeb9a67ffffffffffffffff8716016117435767ffffffffffffffff851615806115f7575067ffffffffffffffff85166001145b156117305750600090508080807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff67ffffffffffffffff8816016116575750506101208801516298968067ffffffffffffffff9091168181049190066064025b895167fffffffffffffff88716906116729082610a2e613151565b6116a8576040517f8e77b2b700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6116b581610a2e8561315e565b8b526116c18b826128ec565b8a516116d390600883016111ae613151565b611709576040517f834c4cd400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611719600882016111ae8461315e565b8b526117288b600883016128ec565b505050611ebf565b506016905067ffffffffffffffff611ebf565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec5267ffffffffffffffff87160161177f57506000905080611ebf565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeb3f67ffffffffffffffff8716016117f7576117d97f000000000000000000000000000000000000000000000000000000000000000061322d565b51156117f2576117ea88868661324e565b8a5290925090505b611ebf565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec6d67ffffffffffffffff87160115611ebf577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec6e67ffffffffffffffff87160115611ebf577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffebb467ffffffffffffffff87160115611ebf577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec5d67ffffffffffffffff87160115611ebf577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec6a67ffffffffffffffff87160115611ebf577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffebf767ffffffffffffffff87160115611ebf577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec6b67ffffffffffffffff87160115611ebf577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeb4f67ffffffffffffffff87160115611ebf577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec7567ffffffffffffffff87160115611ebf577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec6867ffffffffffffffff87160115611ebf577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec7467ffffffffffffffff87160115611ebf577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec7367ffffffffffffffff87160115611ebf577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeb8167ffffffffffffffff87160115611ebf577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec2167ffffffffffffffff87160115611ebf577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeb7767ffffffffffffffff87160115611ebf577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec6967ffffffffffffffff87160115611ebf577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeb5b67ffffffffffffffff87160115611ebf577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeb5967ffffffffffffffff87160115611ebf577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeba867ffffffffffffffff87160115611ebf577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeb6867ffffffffffffffff87160115611ebf577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec3b67ffffffffffffffff87160115611ebf577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec1467ffffffffffffffff87160115611ebf577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec1267ffffffffffffffff87160115611ebf577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec5e67ffffffffffffffff87160115611ebf577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeb9767ffffffffffffffff87160115611ebf577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec5467ffffffffffffffff87160115611ebf577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeba067ffffffffffffffff87160115611ebf577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeb9f67ffffffffffffffff87160115611ebf577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeb9c67ffffffffffffffff87160115611ebf577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec1967ffffffffffffffff87160115611ebf577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec7067ffffffffffffffff87160115611ebf577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeb5c67ffffffffffffffff871601611e5d5760808416600003611e5457506016905067ffffffffffffffff611ebf565b60649150611ebf565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f4d49505336343a20756e696d706c656d656e7465642073797363616c6c00000060448201526064016103cc565b6000611f49886040805160808101825260008082526020820181905291810182905260608101919091526040518060800160405280836060015167ffffffffffffffff168152602001836080015167ffffffffffffffff1681526020018360a0015167ffffffffffffffff1681526020018360c0015167ffffffffffffffff168152509050919050565b60e0808a015167ffffffffffffffff80871660408301528086169190920152602082018051808316845260040190911690529050805167ffffffffffffffff9081166060808b01919091526020830151821660808b01526040830151821660a08b01528201511660c0890152611fbd61282f565b6115086107f9565b60e08301516000908190601f601586901c1660208110611fe757611fe7615305565b60200201519050601f601085901c166000612001866133db565b830190506001600463ffffffff871660341480612024575063ffffffff8716603c145b1561203157506002905060085b885160009063ffffffff891660301480612051575063ffffffff89166034145b1561208b576120638c868560016133f2565b60ff851660808e015267ffffffffffffffff80871660a08f0152821660c08e0152915061218e565b63ffffffff8916603814806120a6575063ffffffff8916603c145b1561215c578360ff168c6080015160ff161480156120db57508067ffffffffffffffff168c60c0015167ffffffffffffffff16145b80156120fe57508467ffffffffffffffff168c60a0015167ffffffffffffffff16145b1561215357600060808d0181905260a08d0181905260c08d015260008b60e001518763ffffffff166020811061213657612136615305565b602002015190506121498d878684613432565b600192505061218e565b6000915061218e565b6040517fecf79d0d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006122188c6040805160808101825260008082526020820181905291810182905260608101919091526040518060800160405280836060015167ffffffffffffffff168152602001836080015167ffffffffffffffff1681526020018360a0015167ffffffffffffffff1681526020018360c0015167ffffffffffffffff168152509050919050565b9050612232818d60e001518963ffffffff1686600161348c565b805167ffffffffffffffff9081166060808f01919091526020830151821660808f01526040830151821660a08f01528201511660c08d015261227261282f565b6114b56107f9565b604081015160a0820151600090819063ffffffff16600214806122a757508360a0015163ffffffff166003145b1561230b57608084015160009060021b630ffffffc166122cc63f00000006020613570565b86600001516020015116179050612305858660a0015163ffffffff166002146122f657601f6122f9565b60005b63ffffffff16836135ea565b50612828565b60808401516020808601516000928392601f601083901c8116939260151c1690811061233957612339615305565b6020020151925060008190508760a0015163ffffffff166027148061236857508760a0015163ffffffff16601a145b8061237d57508760a0015163ffffffff16601b145b156123b15787602001518267ffffffffffffffff16602081106123a2576123a2615305565b602002015192508190506124ee565b60a088015163ffffffff1615806123d257508760a0015163ffffffff16601c145b156124115787602001518267ffffffffffffffff16602081106123f7576123f7615305565b60200201516080890151909350600b1c601f1690506124ee565b60208860a0015163ffffffff161015612485578760a0015163ffffffff16600c148061244757508760a0015163ffffffff16600d145b8061245c57508760a0015163ffffffff16600e145b1561247157608088015161ffff1692506124ee565b61247e88608001516133db565b92506124ee565b60288860a0015163ffffffff161015806124a957508760a0015163ffffffff166022145b806124be57508760a0015163ffffffff166026145b156124ee5787602001518267ffffffffffffffff16602081106124e3576124e3615305565b602002015192508190505b60048860a0015163ffffffff1610158015612513575060088860a0015163ffffffff16105b8061252857508760a0015163ffffffff166001145b156125545761254b886000015189602001518a60a001518b6080015186896136d4565b50505050612828565b600067ffffffffffffffff9050600060208a60a0015163ffffffff16101580612587575060a08a015163ffffffff16601a145b8061259c575060a08a015163ffffffff16601b145b15612604576125ae8a608001516133db565b86019550600067fffffffffffffff8871690506125d48b60400151828d60600151612a19565b915060288b60a0015163ffffffff1610612602578a60a0015163ffffffff1660371461260257809250600093505b505b60006040518060c001604052808c6080015163ffffffff1681526020018c60a0015163ffffffff1681526020018c60c0015163ffffffff1681526020018867ffffffffffffffff1681526020018767ffffffffffffffff1681526020018367ffffffffffffffff168152509050600067ffffffffffffffff61268583613947565b60a08e01519116915060209063ffffffff161580156126af575060088d60c0015163ffffffff1610155b80156126ce57508067ffffffffffffffff168d60c0015163ffffffff16105b156127de578c60c0015163ffffffff16600814806126f657508c60c0015163ffffffff166009145b1561272e576127208d8e60c0015163ffffffff16600814612717578761271a565b60005b8b6135ea565b505050505050505050612828565b8c60c0015163ffffffff16600a0361275f578c5160208e01516127209190888c67ffffffffffffffff8d161561348c565b8c60c0015163ffffffff16600b03612791578c5160208e01516127209190888c67ffffffffffffffff8d16151561348c565b60108d60c0015163ffffffff16101580156127bf57508067ffffffffffffffff168d60c0015163ffffffff16105b156127de576127208d600001518e602001518f60c001518c8c8b6145c1565b67ffffffffffffffff85811614612808576127fe858e606001518461315e565b9b5060019a508499505b61281e8d600001518e602001518885600161348c565b5050505050505050505b9193909250565b604080516101e081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810182905261012081018290526101408101829052610160810182905261018081018290526101a081018290526101c08101919091526128b061512b565b506080905061026060006128c5610a4a612924565b9050826101600151156128df576101a08301819052505050565b6101808301819052505050565b60a082015167fffffffffffffff81667ffffffffffffffff8216036107b15760006080830181905260a0830181905260c08301525050565b61028e353661293661012a6020615363565b6129489063ffffffff166101646152ed565b811015610915576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f4d49505336343a20696e73756666696369656e742063616c6c6461746120666f60448201527f7220746872656164207769746e6573730000000000000000000000000000000060648201526084016103cc565b6000806129e383614b9b565b60408051602081018790529081018290529091506060016040516020818303038152906040528051906020012091505092915050565b600080612a27858585614c24565b909250905080612a63576040517f8e77b2b700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b509392505050565b600080600080612a7b8887614cfc565b925092509250828267ffffffffffffffff168867ffffffffffffffff16901c1693508415612ab057612aad8482613570565b93505b505050949350505050565b6040810151608082015160a083015160c08401515b9193509193565b6000808284610fff811615612af157610fff811661100003015b8667ffffffffffffffff16600003612b7b57849350908101906560000000000067ffffffffffffffff83161180612b3b57508467ffffffffffffffff168267ffffffffffffffff16105b80612b5957508567ffffffffffffffff168167ffffffffffffffff16105b15612b7657506016925067ffffffffffffffff9150839050610dc7565b612b7f565b8693505b5093509350939050565b81610160015115612bae57612ba3826101a00151826129d7565b6101a0830152610b60565b612bbd826101800151826129d7565b61018083015250600061014090910152565b600080600080612bde85614d80565b918b5267ffffffffffffffff90921660408b0152929650909450925090508115612c0c57612c0c86826128ec565b50509250929050565b6060810151608082015182516000928392909167ffffffffffffffff1660011480612c4b5750845167ffffffffffffffff166002145b80612c615750845167ffffffffffffffff166004145b15612c725784604001519350612ad0565b845167ffffffffffffffff167ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa01612d4c576000612cc78660c0015167fffffffffffffff88860200151168860a00151612a19565b60608701516020880151604089015192935090916007821660080381811015612cee578091505b67ffffffffffffffff821660408b018190529850600880830294851b600190951b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0192909103029390931c9290921617925060009150612ad09050565b845167ffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9c01612d9257600b935067ffffffffffffffff9250612ad0565b60099567ffffffffffffffff95509193509150565b60008067ffffffffffffffff8316600103612e675767ffffffffffffffff84161580612ddd575067ffffffffffffffff84166001145b80612df2575067ffffffffffffffff84166002145b80612e07575067ffffffffffffffff84166005145b80612e1c575067ffffffffffffffff84166003145b80612e31575067ffffffffffffffff84166006145b80612e46575067ffffffffffffffff84166004145b15612e545760009150612f27565b506009905067ffffffffffffffff612f27565b8267ffffffffffffffff16600303612f185767ffffffffffffffff84161580612e9a575067ffffffffffffffff84166005145b80612eaf575067ffffffffffffffff84166003145b15612ebd5760009150612f27565b67ffffffffffffffff841660011480612ee0575067ffffffffffffffff84166002145b80612ef5575067ffffffffffffffff84166006145b80612f0a575067ffffffffffffffff84166004145b15612e545760019150612f27565b506016905067ffffffffffffffff5b9250929050565b600080826101600151612f4657826101a00151612f4d565b8261018001515b905060007fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5612f7a612924565b1490507fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb582148015612fa95750805b949350505050565b604080516101e081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810182905261012081018290526101408101829052610160810182905261018081018290526101a081018290526101c081018290525060806000612fa982856004846133f2565b60008080806130c8856040805160808101825260008082526020820181905291810182905260608101919091526040518060800160405280836060015167ffffffffffffffff168152602001836080015167ffffffffffffffff1681526020018360a0015167ffffffffffffffff1681526020018360c0015167ffffffffffffffff168152509050919050565b60e08087015167ffffffffffffffff80871660408301528086169190920152602082018051808316845260040190911690529050805167ffffffffffffffff9081166060808801919091526020830151821660808801526040830151821660a08801528201511660c086015261313e8686610b6c565b506131476107f9565b9695505050505050565b600061013a848484614c24565b60006131698361505e565b600784161561319d576040517fe6c4247b000000000000000000000000000000000000000000000000000000008152600481fd5b6020830192601f851660180360031b83811b913567ffffffffffffffff90911b191617600585901c603b60005b818110156132215760208701963583821c60011680156131f1576001811461320657613217565b60008681526020839052604090209550613217565b600082815260208790526040902095505b50506001016131ca565b50919695505050505050565b6040805160208101909152600081526008821061324957600181525b919050565b6000808067fffffffffffffff885168161328161326f61012a6101646152ed565b61327a9060206152ed565b6107800190565b9050600061329489600001518484612a19565b905060006133048a610120015160008082679e3779b97f4a7c15019050601e8167ffffffffffffffff16901c811867bf58476d1ce4e5b9029050601b8167ffffffffffffffff16901c81186794d049bb133111eb029050601f8167ffffffffffffffff16901c8118915050919050565b90506000613312858b61538b565b9050600061332182600861538b565b90508967ffffffffffffffff808216908316101561333c5750805b6000600161334b8360086153b4565b67ffffffffffffffff166001901b61336391906153e4565b905061337082600861538b565b61337b9060086153b4565b67ffffffffffffffff91821691161b6133958460086153b4565b67ffffffffffffffff91821691161c80198616858216176133b789898361315e565b99506133c38f8a6128ec565b50909d60009d50979b50969950505050505050505050565b60006133ec61ffff83166010613570565b92915050565b600067fffffffffffffff884168161341161326f61012a6101646152ed565b9050600061342488600001518484612a19565b9050612aad87828888612a6b565b67fffffffffffffff88316600061345061326f61012a6101646152ed565b9050600061346387600001518484612a19565b90506000613473878388886150f3565b905061348084848361315e565b90975250505050505050565b60208367ffffffffffffffff1610613500576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4d49505336343a2076616c69642072656769737465720000000000000000000060448201526064016103cc565b67ffffffffffffffff8316158015906135165750805b1561354d5781848467ffffffffffffffff166020811061353857613538615305565b67ffffffffffffffff90921660209290920201525b5050505060208101805167ffffffffffffffff8082169093526004019091169052565b6000600167ffffffffffffffff8481167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff85810183169190911c83161515926040869003831681901b820192861692831b921b01826135d05760006135d2565b815b90861667ffffffffffffffff16179250505092915050565b8251805160209091015167ffffffffffffffff9081166004909201161461366d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f4d49505336343a206a756d7020696e2064656c617920736c6f7400000000000060448201526064016103cc565b8251805160208083015167ffffffffffffffff908116909352855184841691015290831615610adb578060080184602001518467ffffffffffffffff16602081106136ba576136ba615305565b67ffffffffffffffff909216602092909202015250505050565b6000866000015160040167ffffffffffffffff16876020015167ffffffffffffffff161461375e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f4d49505336343a206272616e636820696e2064656c617920736c6f740000000060448201526064016103cc565b8463ffffffff166004148061377957508463ffffffff166005145b15613804576000868467ffffffffffffffff166020811061379c5761379c615305565b602002015190508067ffffffffffffffff168367ffffffffffffffff161480156137cc57508563ffffffff166004145b806137fc57508067ffffffffffffffff168367ffffffffffffffff16141580156137fc57508563ffffffff166005145b9150506138de565b8463ffffffff166006036138215760008260070b131590506138de565b8463ffffffff1660070361383d5760008260070b1390506138de565b8463ffffffff166001036138de57601f601085901c1660008190036138665760008360070b1291505b8063ffffffff1660100361389457875160080167ffffffffffffffff166103e08801526000600784900b1291505b8063ffffffff166001036138ad5760008360070b121591505b8063ffffffff166011036138dc57875160080167ffffffffffffffff166103e08801526000600784900b121591505b505b8651602088015167ffffffffffffffff168852811561392757600261390861ffff87166010613570565b67ffffffffffffffff90811690911b820160040116602089015261393d565b60208801805160040167ffffffffffffffff1690525b5050505050505050565b8051602082015160408301516060840151608085015160a0860151600095949392919063ffffffff85161580613995575060088563ffffffff16101580156139955750600f8563ffffffff16105b806139a657508463ffffffff166018145b806139b757508463ffffffff166019145b156140eb578460088114613a0a5760098114613a1357600a8114613a1c57600b8114613a2557600c8114613a2e57600d8114613a3757600e8114613a405760188114613a495760198114613a5257613a57565b60209450613a57565b60219450613a57565b602a9450613a57565b602b9450613a57565b60249450613a57565b60259450613a57565b60269450613a57565b602c9450613a57565b602d94505b508363ffffffff16600003613a9857601f600687901c16613a8b67ffffffffffffffff8416821b63ffffffff166020613570565b9998505050505050505050565b8363ffffffff16600203613acc57613ac063ffffffff8316601f600689901c161c6020613570565b98975050505050505050565b8363ffffffff16600303613afb57601f600687901c16613a8b63ffffffff848116831c90602084900316613570565b8363ffffffff16600403613b2a57601f8316613a8b67ffffffffffffffff8416821b63ffffffff166020613570565b8363ffffffff16600603613b4e57613ac063ffffffff8316601f85161c6020613570565b8363ffffffff16600703613b7657601f8316613a8b63ffffffff8416821c6020839003613570565b8363ffffffff16600803613b905750909695505050505050565b8363ffffffff16600903613baa5750909695505050505050565b8363ffffffff16600a03613bc45750909695505050505050565b8363ffffffff16600b03613bde5750909695505050505050565b8363ffffffff16600c03613bf85750909695505050505050565b8363ffffffff16600f03613c125750909695505050505050565b8363ffffffff16601003613c2c5750909695505050505050565b8363ffffffff16601103613c465750909695505050505050565b8363ffffffff16601203613c605750909695505050505050565b8363ffffffff16601303613c7a5750909695505050505050565b8363ffffffff16601403613c9357509695505050505050565b8363ffffffff16601603613cac57509695505050505050565b8363ffffffff16601703613cc557509695505050505050565b8363ffffffff16601803613cdf5750909695505050505050565b8363ffffffff16601903613cf95750909695505050505050565b8363ffffffff16601a03613d135750909695505050505050565b8363ffffffff16601b03613d2d5750909695505050505050565b8363ffffffff16601c03613d475750909695505050505050565b8363ffffffff16601d03613d615750909695505050505050565b8363ffffffff16601e03613d7b5750909695505050505050565b8363ffffffff16601f03613d955750909695505050505050565b8363ffffffff16602003613db657613ac082840163ffffffff166020613570565b8363ffffffff16602103613dd757613ac082840163ffffffff166020613570565b8363ffffffff16602203613df857613ac082840363ffffffff166020613570565b8363ffffffff16602303613e1957613ac082840363ffffffff166020613570565b8363ffffffff16602403613e3257501695945050505050565b8363ffffffff16602503613e4b57501795945050505050565b8363ffffffff16602603613e6457501895945050505050565b8363ffffffff16602703613e7e5750171995945050505050565b8363ffffffff16602a03613eb2578160070b8360070b12613ea0576000613ea3565b60015b60ff1698975050505050505050565b8363ffffffff16602b03613ee2578167ffffffffffffffff168367ffffffffffffffff1610613ea0576000613ea3565b8363ffffffff16602c03613efb57500195945050505050565b8363ffffffff16602d03613f1457500195945050505050565b8363ffffffff16602e03613f2e5750900395945050505050565b8363ffffffff16602f03613f485750900395945050505050565b8363ffffffff16603803613f77575067ffffffffffffffff1660069490941c601f169390931b95945050505050565b8363ffffffff16603a03613fa6575067ffffffffffffffff1660069490941c601f169390931c95945050505050565b8363ffffffff16603b03613fce575060070b60069490941c601f169390931d95945050505050565b8363ffffffff16603c0361400d5760068663ffffffff16901c601f1660200163ffffffff168267ffffffffffffffff16901b9650505050505050919050565b8363ffffffff16603e0361404c5760068663ffffffff16901c601f1660200163ffffffff168267ffffffffffffffff16901c9650505050505050919050565b8363ffffffff16603f036140845760068663ffffffff16901c601f1660200163ffffffff168260070b901d9650505050505050919050565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f4d49505336343a20696e76616c696420696e737472756374696f6e000000000060448201526064016103cc565b614084565b8463ffffffff16601c036141e0578363ffffffff1660020361411a57613ac082840263ffffffff166020613570565b8363ffffffff166020148061413557508363ffffffff166021145b15614184578363ffffffff1660200361414c579119915b60005b6380000000841615614172576801fffffffffffffffe600194851b16930161414f565b63ffffffff1698975050505050505050565b8363ffffffff166024148061419f57508363ffffffff166025145b156140e6578363ffffffff166024036141b6579119915b60005b678000000000000000841615614172576801fffffffffffffffe600194851b1693016141b9565b8463ffffffff16600f0361420757613ac060108367ffffffffffffffff16901b6020613570565b8463ffffffff1660200361422257613ac08382600180612a6b565b8463ffffffff1660210361423e57613ac0838260026001612a6b565b8463ffffffff1660220361428f57600061425c848360046000612a6b565b905063ffffffff80821660086003871602821690811b919081901b81169061150890821987168116908416176020613570565b8463ffffffff166023036142ab57613ac0838260046001612a6b565b8463ffffffff166024036142c757613ac0838260016000612a6b565b8463ffffffff166025036142e357613ac0838260026000612a6b565b8463ffffffff16602603614360576000614301848360046000612a6b565b905063ffffffff80821660038681166008810260180367ffffffffffffffff1692831c939283901c928319881685171691036143425761113e816020613570565b67ffffffff00000000959095169094179a9950505050505050505050565b8463ffffffff1660280361437b57613ac083826001856150f3565b8463ffffffff1660290361439657613ac083826002856150f3565b8463ffffffff16602a036143e95763ffffffff601860039490941b93841681811c67ffffffffffffffff9081166020968716909603811695861b199390931693909116901c1690911b1795945050505050565b8463ffffffff16602b0361440457613ac083826004856150f3565b8463ffffffff16602e03614464576000614422848360046000612a6b565b905067ffffffffffffffff838116600860038716026018039182161b9063ffffffff90811681901b8116908119841681169083161761113e87866004846150f3565b8463ffffffff16601a036144985767ffffffffffffffff90811660039390931b60381692831b921b19161795945050505050565b8463ffffffff16601b036144db5767ffffffffffffffff90811660039390931b60389081169081900382169390931c60089390930181161b161795945050505050565b8463ffffffff166027036145175767ffffffffffffffff908116602060039490941b8416909303169190911c63ffffffff169695505050505050565b8463ffffffff16602c036145505767ffffffffffffffff91821660039390931b60381692831c9190921c19919091161795945050505050565b8463ffffffff16602d0361458f5767ffffffffffffffff603860039490941b8416909303831683811b19919091169190921690911b1795945050505050565b8463ffffffff166037036145a857979650505050505050565b8463ffffffff16603f0361408457509695505050505050565b60008463ffffffff166010036145dc57506060860151614b33565b8463ffffffff166011036145ff5767ffffffffffffffff84166060880152614b33565b8463ffffffff1660120361461857506040860151614b33565b8463ffffffff1660130361463b5767ffffffffffffffff84166040880152614b33565b8463ffffffff166018036146a45760008360030b8560030b02905061466f60208267ffffffffffffffff16901c6020613570565b67ffffffffffffffff16606089015261468f63ffffffff82166020613570565b67ffffffffffffffff16604089015250614b33565b8463ffffffff166019036146de5760008363ffffffff168563ffffffff1602905061466f60208267ffffffffffffffff16901c6020613570565b8463ffffffff16601a036147cc578263ffffffff1660000361475c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4d49505336343a206469766973696f6e206279207a65726f000000000000000060448201526064016103cc565b6147828360030b8560030b8161477457614774615334565b0763ffffffff166020613570565b67ffffffffffffffff1660608801526147b8600384810b9086900b816147aa576147aa615334565b0563ffffffff166020613570565b67ffffffffffffffff166040880152614b33565b8463ffffffff16601b036148ae578263ffffffff1660000361484a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4d49505336343a206469766973696f6e206279207a65726f000000000000000060448201526064016103cc565b6148768363ffffffff168563ffffffff168161486857614868615334565b0663ffffffff166020613570565b67ffffffffffffffff1660608801526147b863ffffffff808516908616816148a0576148a0615334565b0463ffffffff166020613570565b8463ffffffff166014036148d2575067ffffffffffffffff8216603f84161b614b33565b8463ffffffff166016036148f6575067ffffffffffffffff8216603f84161c614b33565b8463ffffffff166017036149145750600782900b603f84161d614b33565b8463ffffffff16601c036149515767ffffffffffffffff600785810b9085900b02600f81900b604090811d831660608b0152911690880152614b33565b8463ffffffff16601d036149865767ffffffffffffffff84811681851602604081811c831660608b0152911690880152614b33565b8463ffffffff16601e03614a58578267ffffffffffffffff16600003614a08576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4d49505336343a206469766973696f6e206279207a65726f000000000000000060448201526064016103cc565b8260070b8460070b81614a1d57614a1d615334565b0767ffffffffffffffff166060880152600783810b9085900b81614a4357614a43615334565b0567ffffffffffffffff166040880152614b33565b8463ffffffff16601f03614b33578267ffffffffffffffff16600003614ada576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4d49505336343a206469766973696f6e206279207a65726f000000000000000060448201526064016103cc565b8267ffffffffffffffff168467ffffffffffffffff1681614afd57614afd615334565b0667ffffffffffffffff908116606089015283811690851681614b2257614b22615334565b0467ffffffffffffffff1660408801525b67ffffffffffffffff821615614b755780868367ffffffffffffffff1660208110614b6057614b60615305565b67ffffffffffffffff90921660209290920201525b50505060208401805167ffffffffffffffff808216909652600401909416909352505050565b60405160188201518152603f8201516008820152605f82015160098201526078820151600a8201526098820151601282015260b8820151601a82015260d8820151602282015260e0820151600091602a8101835b6020811015614c135760188401518252602090930192600890910190600101614bef565b506000815281900390209392505050565b600080614c308361505e565b6007841615614c64576040517fe6c4247b000000000000000000000000000000000000000000000000000000008152600481fd5b602083019235600585901c81603b60005b81811015614ccc5760208801973584821c6001168015614c9c5760018114614cb157614cc2565b60008581526020839052604090209450614cc2565b600082815260208690526040902094505b5050600101614c75565b505087149250508115614cf357601f851660180360031b81901c67ffffffffffffffff1692505b50935093915050565b600080806807fffffffffffffff8600385901b1681614d1c82604061538b565b67ffffffffffffffff9081161c90506000614d3860018861538b565b19881660071690506000614d4d88600861538b565b905088821660006003614d60838561538b565b959c67ffffffffffffffff909616901b9a50949850929650505050505050565b610100810151608082015182516000928392918390819067ffffffffffffffff161561505557865167ffffffffffffffff167ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb01614fc157600067fffffffffffffff888602001511690506000614e01896101000151838b60e00151612a19565b60608a015190915060001a600103614e8357614e7d89606001518a60a0015160408051600093845233602052918152606090922091527effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f01000000000000000000000000000000000000000000000000000000000000001790565b60608a01525b6000808a60c0015173ffffffffffffffffffffffffffffffffffffffff1663e03110e18c606001518d608001516040518363ffffffff1660e01b8152600401614ee092919091825267ffffffffffffffff16602082015260400190565b6040805180830381865afa158015614efc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614f2091906153fb565b60208d015160408e01519294509092509060078216600881900384811015614f46578094505b5083821015614f53578193505b8460088502610100031c9450846008828660080303021b9450600180600883600803021b036001806008878560080303021b03915081198116905085811988161796505050614fa7868e60e001518761315e565b929b50505096890196955060019450919250615055915050565b865167ffffffffffffffff167ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd01614fff5786604001519550615055565b865167ffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9c0161504557600b955067ffffffffffffffff9450615055565b6009955067ffffffffffffffff94505b91939550919395565b3661078082018110156107b1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603160248201527f4d49505336344d656d6f72793a20636865636b2074686174207468657265206960448201527f7320656e6f7567682063616c6c6461746100000000000000000000000000000060648201526084016103cc565b60008060006151028786614cfc565b5067ffffffffffffffff868316811691811691821b9216901b1987161792505050949350505050565b6040805161010081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c081019190915260e08101615171615176565b905290565b6040518061040001604052806020906020820280368337509192915050565b600060208083528351808285015260005b818110156151c2578581018301518582016040015282016151a6565b818111156151d4576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b60008083601f84011261521a57600080fd5b50813567ffffffffffffffff81111561523257600080fd5b602083019150836020828501011115612f2757600080fd5b60008060008060006060868803121561526257600080fd5b853567ffffffffffffffff8082111561527a57600080fd5b61528689838a01615208565b9097509550602088013591508082111561529f57600080fd5b506152ac88828901615208565b96999598509660400135949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008219821115615300576153006152be565b500190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600063ffffffff808316818516808303821115615382576153826152be565b01949350505050565b600067ffffffffffffffff838116908316818110156153ac576153ac6152be565b039392505050565b600067ffffffffffffffff808316818516818304811182151516156153db576153db6152be565b02949350505050565b6000828210156153f6576153f66152be565b500390565b6000806040838503121561540e57600080fd5b50508051602090910151909290915056fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\xC0`@R4\x80\x15b\0\0\x11W`\0\x80\xFD[P`@Qb\0U\x178\x03\x80b\0U\x17\x839\x81\x01`@\x81\x90Rb\0\x004\x91b\0\0}V[\x80`\x07\x14\x15\x80\x15b\0\0GWP\x80`\x08\x14\x15[\x15b\0\0fW`@Qc\x0F\xC5\x81Q`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xA0\x1B\x03\x90\x91\x16`\x80R`\xA0Rb\0\0\xB9V[`\0\x80`@\x83\x85\x03\x12\x15b\0\0\x91W`\0\x80\xFD[\x82Q`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14b\0\0\xA9W`\0\x80\xFD[` \x93\x90\x93\x01Q\x92\x94\x92\x93PPPV[`\x80Q`\xA0QaT,b\0\0\xEB`\09`\0\x81\x81`S\x01Ra\x17\xB5\x01R`\0\x81\x81`\xE9\x01Ra\x12\x1A\x01RaT,`\0\xF3\xFE`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`\x046\x10a\0LW`\x005`\xE0\x1C\x80c\x12\x19\xA4\xE4\x14a\0QW\x80cT\xFDMP\x14a\0\x86W\x80c}\xC0\xD1\xD0\x14a\0\xCFW\x80c\xE1L\xED2\x14a\x01\x13W[`\0\x80\xFD[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0[`@Q\x90\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[a\0\xC2`@Q\x80`@\x01`@R\x80`\x05\x81R` \x01\x7F1.9.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\x81RP\x81V[`@Qa\0}\x91\x90aQ\x95V[`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x81R` \x01a\0}V[a\0sa\x01!6`\x04aRJV[`\0a\x010\x86\x86\x86\x86\x86a\x01CV[\x90Pa\x01:a\x06kV[\x95\x94PPPPPV[`@\x80Qa\x01\xE0\x81\x01\x82R`\0\x80\x82R` \x82\x01\x81\x90R\x91\x81\x01\x82\x90R``\x81\x01\x82\x90R`\x80\x81\x01\x82\x90R`\xA0\x81\x01\x82\x90R`\xC0\x81\x01\x82\x90R`\xE0\x81\x01\x82\x90Ra\x01\0\x81\x01\x82\x90Ra\x01 \x81\x01\x82\x90Ra\x01@\x81\x01\x82\x90Ra\x01`\x81\x01\x82\x90Ra\x01\x80\x81\x01\x82\x90Ra\x01\xA0\x81\x01\x82\x90Ra\x01\xC0\x81\x01\x82\x90Ra\x01\xC3aQ+V[`\0`\x80\x83\x14a\x01\xD2W`\0\x80\xFD[a\x02`\x82\x14a\x01\xE0W`\0\x80\xFD[`@Qa\x07`\x14a\x01\xF0W`\0\x80\xFD[`\x84\x89\x14a\x01\xFDW`\0\x80\xFD[a\x01d\x87\x14a\x02\x0BW`\0\x80\xFD[P\x875`\x80R` \x88\x015`\xA0R`@\x88\x015`\xC0\x90\x81\x1C\x81R`H\x89\x015\x81\x1C`\xE0R`P\x89\x015`\xF8\x90\x81\x1Ca\x01\0R`Q\x8A\x015\x82\x1Ca\x01 R`Y\x8A\x015\x82\x1Ca\x01@R`a\x8A\x015\x81\x1Ca\x01`R`b\x8A\x015\x81\x1Ca\x01\x80\x81\x90R`c\x8B\x015\x83\x1Ca\x01\xA0R`k\x8B\x015\x83\x1Ca\x01\xC0R`s\x8B\x015\x90\x91\x1Ca\x01\xE0R`t\x8A\x015a\x02\0R`\x94\x8A\x015a\x02 R`\xB4\x8A\x015\x90\x91\x1Ca\x02@Ra\x02\xB4\x81a\x07\xB5V[\x82a\x01\0\x01Q\x15a\x02\xD1Wa\x02\xC7a\x07\xF9V[\x93PPPPa\x01:V[\x7F\xAD2(\xB6v\xF7\xD3\xCDB\x84\xA5D?\x17\xF1\x96+6\xE4\x91\xB3\n@\xB2@XI\xE5\x97\xBA_\xB5\x83a\x01\x80\x01Q\x14\x80\x15a\x03\x08WP\x82a\x01`\x01Q\x15[\x80a\x03DWP\x7F\xAD2(\xB6v\xF7\xD3\xCDB\x84\xA5D?\x17\xF1\x96+6\xE4\x91\xB3\n@\xB2@XI\xE5\x97\xBA_\xB5\x83a\x01\xA0\x01Q\x14\x80\x15a\x03DWP\x82a\x01`\x01Q[\x15a\x03\xD5W`@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\x82\x01R`$\x80\x82\x01R\x7FMIPS64: active thread stack is e`D\x82\x01R\x7Fmpty\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`d\x82\x01R`\x84\x01[`@Q\x80\x91\x03\x90\xFD[a\x01 \x83\x01\x80Q`\x01\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90Ra\x03\xF4\x82a\t\x19V[a\x03\xFE\x83\x83a\n=V[\x81`@\x01Q\x15a\x04\x19Wa\x04\x11\x83a\n\xE1V[a\x02\xC7a\x07\xF9V[b\x01\x86\xA0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x83a\x01@\x01Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x10a\x04OWa\x04F\x83\x83a\x0BlV[Pa\x02\xC7a\x07\xF9V[a\x01@\x83\x01\x80Q`\x01\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90R`\0a\x02\xAE\x90P`\0\x80`\0a\x04\x84\x86``\x01Q\x88`\0\x01Q\x86a\rJV[\x92P\x92P\x92P\x81c\xFF\xFF\xFF\xFF\x16`\0\x14\x80\x15a\x04\xA6WP\x80c\xFF\xFF\xFF\xFF\x16`\x0C\x14[\x15a\x04\xC2Wa\x04\xB4\x89a\r\xD0V[\x97PPPPPPPPa\x01:V[c\xFF\xFF\xFF\xFF\x82\x16`0\x14\x80a\x04\xDDWPc\xFF\xFF\xFF\xFF\x82\x16`8\x14[\x15a\x04\xEEWa\x04\xB4\x87\x87\x85\x85a\x1F\xC5V[c\xFF\xFF\xFF\xFF\x82\x16`4\x14\x80a\x05\tWPc\xFF\xFF\xFF\xFF\x82\x16`<\x14[\x15a\x05\x1AWa\x04\xB4\x87\x87\x85\x85a\x1F\xC5V[`\0a\x05\xA4\x87`@\x80Q`\x80\x81\x01\x82R`\0\x80\x82R` \x82\x01\x81\x90R\x91\x81\x01\x82\x90R``\x81\x01\x91\x90\x91R`@Q\x80`\x80\x01`@R\x80\x83``\x01Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81R` \x01\x83`\x80\x01Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81R` \x01\x83`\xA0\x01Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81R` \x01\x83`\xC0\x01Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81RP\x90P\x91\x90PV[`@\x80Q`\xE0\x80\x82\x01\x83R\x83\x82R\x8A\x01Q` \x82\x01R\x8AQ\x91\x81\x01\x91\x90\x91Ra\n.``\x82\x01Rc\xFF\xFF\xFF\xFF\x80\x87\x16`\x80\x83\x01R\x85\x81\x16`\xA0\x83\x01R\x84\x16`\xC0\x82\x01R\x90\x91P`\0\x80a\x05\xF6\x83a\"zV[\x91\x8DR\x85Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x81\x16``\x80\x8F\x01\x91\x90\x91R` \x88\x01Q\x82\x16`\x80\x8F\x01R`@\x88\x01Q\x82\x16`\xA0\x8F\x01R\x87\x01Q\x16`\xC0\x8D\x01R\x92P\x90Pa\x06=a(/V[\x81\x15a\x06MWa\x06M\x8B\x82a(\xECV[a\x06Ua\x07\xF9V[\x9BPPPPPPPPPPPP\x95\x94PPPPPV[`@\x80Qa\x01\xE0\x80\x82\x01\x83R`\0\x80\x83R` \x83\x01\x81\x90R\x92\x82\x01\x83\x90R``\x82\x01\x83\x90R`\x80\x80\x83\x01\x84\x90R`\xA0\x83\x01\x84\x90R`\xC0\x83\x01\x84\x90R`\xE0\x83\x01\x84\x90Ra\x01\0\x83\x01\x84\x90Ra\x01 \x83\x01\x84\x90Ra\x01@\x83\x01\x84\x90Ra\x01`\x83\x01\x84\x90Ra\x01\x80\x83\x01\x84\x90Ra\x01\xA0\x83\x01\x84\x90Ra\x01\xC0\x90\x92\x01\x83\x90RQ\x90\x91\x90a\x06\xF9W\x81a\x01\x80\x01Qa\x07\0V[\x81a\x01\xA0\x01Q[\x90P\x7F\xAD2(\xB6v\xF7\xD3\xCDB\x84\xA5D?\x17\xF1\x96+6\xE4\x91\xB3\n@\xB2@XI\xE5\x97\xBA_\xB5\x81\x03a\x07\xB1W`@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\x82\x01R`/`$\x82\x01R\x7FMIPS64: post-state active thread`D\x82\x01R\x7F stack is empty\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x03\xCCV[PPV[`\x01\x81c\xFF\xFF\xFF\xFF\x16\x11\x15a\x07\xF6W`@Q\x7F\x016\xCCv\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\x01`@Q\x80\x91\x03\x90\xFD[PV[`@\x80Q`\x80Q\x81R`\xA0Q` \x82\x01R`\xD8Q\x91\x81\x01\x91\x90\x91R`\xF8Q`H\x82\x01Ra\x01\x1FQ`P\x82\x01Ra\x018Q`Q\x82\x01Ra\x01XQ`Y\x82\x01Ra\x01`Qa\x01\x7FQ`a\x83\x01Ra\x01\x80Qa\x01\x9FQ`b\x84\x01Ra\x01\xB8Q`c\x84\x01Ra\x01\xD8Q`k\x84\x01Ra\x01\xFFQ`s\x84\x01Ra\x02\0Q`t\x84\x01Ra\x02 Q`\x94\x84\x01Ra\x02XQ`\xB4\x84\x01R`\0`\xBC\x80\x85\x01\x82\x81R\x91\x94\x92\x93a\x02`\x93\x92\x91\x83\xA0`\0\x93P\x84`\x01\x81\x14a\x08\xB3W`\x03\x94Pa\x08\xDBV[\x81\x80\x15a\x08\xCBW`\x01\x81\x14a\x08\xD4W`\x02\x95Pa\x08\xD9V[`\0\x95Pa\x08\xD9V[`\x01\x95P[P[PP\x81\x90\x03\x90 ~\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\xF8\x91\x90\x91\x1B\x17\x91Pa\t\x15\x81a\x07\xB5V[P\x90V[6a\t(a\x01*a\x01daR\xEDV[\x81\x10\x15a\t\xB7W`@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\x82\x01R`0`$\x82\x01R\x7FMIPS64: insufficient calldata fo`D\x82\x01R\x7Fr thread witness\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x03\xCCV[a\x01d5`\xC0\x90\x81\x1C\x83Ra\x01l5`\xF8\x90\x81\x1C` \x85\x01Ra\x01m5\x90\x1C`@\x84\x01Ra\x01n5\x81\x1C``\x84\x01Ra\x01v5\x81\x1C`\x80\x84\x01Ra\x01~5\x81\x1C`\xA0\x84\x01Ra\x01\x865\x81\x1C\x90\x83\x01R`\xE0\x82\x01Qa\x01\x8E\x90`\0[` \x81\x10\x15a\n6W\x825`\xC0\x1C\x82R`\x08\x90\x92\x01\x91` \x90\x91\x01\x90`\x01\x01a\n\x12V[PPPPPV[`\0a\nPa\nJa)$V[\x83a)\xD7V[\x90P`\0\x83a\x01`\x01Qa\niW\x83a\x01\x80\x01Qa\npV[\x83a\x01\xA0\x01Q[\x90P\x81\x81\x14a\n\xDBW`@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\x82\x01R`\x1E`$\x82\x01R\x7FMIPS64: invalid thread witness\0\0`D\x82\x01R`d\x01a\x03\xCCV[PPPPV[\x80a\x01`\x01Q\x15a\n\xFFWa\n\xF4a)$V[a\x01\xA0\x82\x01Ra\x0B\x0EV[a\x0B\x07a)$V[a\x01\x80\x82\x01R[`\0\x81a\x01`\x01Qa\x0B%W\x81a\x01\x80\x01Qa\x0B,V[\x81a\x01\xA0\x01Q[\x90P\x7F\xAD2(\xB6v\xF7\xD3\xCDB\x84\xA5D?\x17\xF1\x96+6\xE4\x91\xB3\n@\xB2@XI\xE5\x97\xBA_\xB5\x81\x03a\x0B`Wa\x01`\x82\x01\x80Q\x15\x90R[P`\0a\x01@\x90\x91\x01RV[`\0\x82a\x01`\x01Q\x15a\x0C0W\x7F\xAD2(\xB6v\xF7\xD3\xCDB\x84\xA5D?\x17\xF1\x96+6\xE4\x91\xB3\n@\xB2@XI\xE5\x97\xBA_\xB5\x83a\x01\xA0\x01Q\x03a\x0C\x07W`@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\x82\x01\x81\x90R`$\x82\x01R\x7FMIPS64: empty right thread stack`D\x82\x01R`d\x01a\x03\xCCV[a\x0C\x0Fa)$V[a\x01\xA0\x84\x01Ra\x01\x80\x83\x01Qa\x0C%\x90\x83a)\xD7V[a\x01\x80\x84\x01Ra\x0C\xE3V[\x7F\xAD2(\xB6v\xF7\xD3\xCDB\x84\xA5D?\x17\xF1\x96+6\xE4\x91\xB3\n@\xB2@XI\xE5\x97\xBA_\xB5\x83a\x01\x80\x01Q\x03a\x0C\xBEW`@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\x82\x01R`\x1F`$\x82\x01R\x7FMIPS64: empty left thread stack\0`D\x82\x01R`d\x01a\x03\xCCV[a\x0C\xC6a)$V[a\x01\x80\x84\x01Ra\x01\xA0\x83\x01Qa\x0C\xDC\x90\x83a)\xD7V[a\x01\xA0\x84\x01R[`\0\x83a\x01`\x01Qa\x0C\xFAW\x83a\x01\x80\x01Qa\r\x01V[\x83a\x01\xA0\x01Q[\x90P\x7F\xAD2(\xB6v\xF7\xD3\xCDB\x84\xA5D?\x17\xF1\x96+6\xE4\x91\xB3\n@\xB2@XI\xE5\x97\xBA_\xB5\x81\x03a\r9Wa\x01`\x84\x01\x80Q\x15\x90R`\x01\x91P[P`\0a\x01@\x90\x93\x01\x92\x90\x92RP\x90V[`\0\x80\x80`\x03\x86\x16\x15a\r\x89W`@Q\x7F?\x82\0\xBC\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\x01`@Q\x80\x91\x03\x90\xFD[`\0a\r\xA0\x86g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF8\x89\x16\x87a*\x19V[\x90Pa\r\xB0\x87\x82`\x04`\0a*kV[\x93P`\x1A\x84c\xFF\xFF\xFF\xFF\x16\x90\x1C\x92P\x83`?\x16\x91PP[\x93P\x93P\x93\x90PV[`@\x80Qa\x01\xE0\x81\x01\x82R`\0\x80\x82R` \x82\x01\x81\x90R\x91\x81\x01\x82\x90R``\x81\x01\x82\x90R`\x80\x81\x01\x82\x90R`\xA0\x81\x01\x82\x90R`\xC0\x81\x01\x82\x90R`\xE0\x81\x01\x82\x90Ra\x01\0\x81\x01\x82\x90Ra\x01 \x81\x01\x82\x90Ra\x01@\x81\x01\x82\x90Ra\x01`\x81\x01\x82\x90Ra\x01\x80\x81\x01\x82\x90Ra\x01\xA0\x81\x01\x82\x90Ra\x01\xC0\x81\x01\x82\x90Ra\x0EPaQ+V[`\x80\x91Pa\x02`\x90P`\0\x80`\0\x80a\x0El\x85`\xE0\x01Qa*\xBBV[\x93P\x93P\x93P\x93P`\0\x80a\x13\x91c\xFF\xFF\xFF\xFF\x16\x86g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x03a\x0E\xB8Wa\x0E\x9F\x85\x85\x8A``\x01Qa*\xD7V[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16``\x8B\x01R\x90\x92P\x90Pa\x1E\xBFV[\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xEClg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x16\x01a\x0E\xF7We@\0\0\0\0\0\x91Pa\x1E\xBFV[\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xECAg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x16\x01a\x11NWb\x05\x0F\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x86\x16\x14a\x0FaW`\x01a\x01\0\x89\x01R`\x02`\xE0\x89\x01Ra\x0FSa\x07\xF9V[\x9A\x99PPPPPPPPPPV[PPa\x01\xC0\x86\x01Q`\0a\x0FsaQ+V[a\x01\xC0\x89\x01Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x81\x16\x82R`\0` \x83\x01\x81\x90R`@\x83\x01\x81\x90R`\x80\x80\x8B\x01\x80Q\x84\x16``\x86\x01RQ`\x04\x01\x83\x16\x90\x84\x01R`\xA0\x80\x8B\x01Q\x83\x16\x90\x84\x01R`\xC0\x80\x8B\x01Q\x90\x92\x16\x91\x83\x01\x91\x90\x91R[` \x81\x10\x15a\x10\"W\x88`\xE0\x01Q\x81` \x81\x10a\x0F\xEBWa\x0F\xEBaS\x05V[` \x02\x01Q\x82`\xE0\x01Q\x82` \x81\x10a\x10\x06Wa\x10\x06aS\x05V[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x92\x16` \x92\x90\x92\x02\x01R`\x01\x01a\x0F\xCCV[P`\xE0\x81\x81\x01\x80Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x88\x81\x16a\x03\xA0\x90\x92\x01\x91\x90\x91R\x81Q`\0`@\x91\x82\x01\x81\x90R\x92Q\x90\x93\x01\x82\x90Ra\x01\xC0\x8C\x01\x80Q`\x01\x01\x82\x16\x90R\x82Q`\x80\x80\x82\x01\x85R\x83\x82R` \x80\x83\x01\x85\x90R\x82\x86\x01\x85\x90R``\x92\x83\x01\x85\x90R\x85Q\x80\x83\x01\x87R\x83\x8F\x01Q\x85\x16\x81R\x91\x8E\x01Q\x84\x16\x90\x82\x01R`\xA0\x8D\x01Q\x83\x16\x94\x81\x01\x94\x90\x94R`\xC0\x8C\x01Q\x90\x91\x16\x90\x83\x01R\x90`\xE0\x80\x8B\x01Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x88\x16`@\x83\x01R\x80\x87\x16\x91\x90\x92\x01R` \x82\x01\x80Q\x80\x83\x16\x84R`\x04\x01\x90\x91\x16\x90R\x90P\x80Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x81\x16``\x80\x8C\x01\x91\x90\x91R` \x83\x01Q\x82\x16`\x80\x8C\x01R`@\x83\x01Q\x82\x16`\xA0\x8C\x01R\x82\x01Q\x16`\xC0\x8A\x01Ra\x11,a(/V[a\x116\x8A\x83a+\x89V[a\x11>a\x07\xF9V[\x9C\x9BPPPPPPPPPPPPV[\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xEB\xABg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x16\x01a\x11\xA0W`\x01a\x01\0\x89\x01R`\xFF\x85\x16`\xE0\x89\x01Ra\x11\x98a(/V[a\x0FSa\x07\xF9V[\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xECxg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x16\x01a\x12zW`@\x80Qa\x01 \x81\x01\x82Rg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x81\x16\x82R\x86\x81\x16` \x80\x84\x01\x91\x90\x91R\x86\x82\x16\x83\x85\x01R\x8B\x01Q``\x83\x01R\x91\x8A\x01Q\x90\x91\x16`\x80\x82\x01R`\xA0\x81\x01\x8B\x90R\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\xC0\x82\x01Ra\n.`\xE0\x82\x01R\x88Qa\x01\0\x82\x01Ra\x12n\x89\x82a+\xCFV[\x90\x93P\x91Pa\x1E\xBF\x90PV[\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xECwg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x16\x01a\x13\"W`@\x80Q`\xE0\x81\x01\x82Rg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x81\x16\x82R\x86\x81\x16` \x80\x84\x01\x91\x90\x91R\x86\x82\x16\x83\x85\x01R\x8B\x01Q``\x83\x01R\x91\x8A\x01Q\x90\x91\x16`\x80\x82\x01Ra\n.`\xA0\x82\x01R\x88Q`\xC0\x82\x01Ra\x13\x02\x81a,\x15V[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`@\x8D\x01R` \x8C\x01R\x90\x93P\x91Pa\x1E\xBF\x90PV[\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xEC2g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x16\x01a\x13gWa\x13]\x85\x85a-\xA7V[\x90\x92P\x90Pa\x1E\xBFV[\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xEB\xC6g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x16\x01a\x13\xA3WPP\x84Q`\0a\x1E\xBFV[\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xEC>g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x16\x01a\x14\x0CW`\x01`@\x88\x01R`\xFF\x85\x16` \x88\x01Ra\x13\xED\x88a/.V[\x15a\x14\x04W`\x01a\x01\0\x89\x01R`\xFF\x85\x16`\xE0\x89\x01R[a\x11\x98a(/V[\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xEB\xB6g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x16\x01a\x15-Wg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFC\x85\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x86\x16\x01a\x14\xCDW`\0a\x14\x84\x82a/\xB1V[\x90P\x84c\xFF\xFF\xFF\xFF\x80\x83\x16\x90\x82\x16\x14a\x14\xABW`\x0B\x94Pg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x93Pa\x14\xC6V[a\x14\xB5\x8B\x8Ba0;V[\x9D\x9CPPPPPPPPPPPPPV[PPa\x15'V[\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x7Fg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x86\x16\x01a\x15\x17Wa\x15\x08\x89\x89a0;V[\x9B\x9APPPPPPPPPPPV[`\x16\x92Pg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x91P[Pa\x1E\xBFV[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x86\x16a\x13\x9F\x14\x80a\x15RWPg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x86\x16a\x13\xAA\x14[\x15a\x15aWa\x0FS\x88\x88a0;V[\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xECvg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x16\x01a\x15\xA5WP`\t\x90Pg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFFa\x1E\xBFV[\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xEB\x9Ag\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x16\x01a\x17CWg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x85\x16\x15\x80a\x15\xF7WPg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x85\x16`\x01\x14[\x15a\x170WP`\0\x90P\x80\x80\x80\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFFg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x88\x16\x01a\x16WWPPa\x01 \x88\x01Qb\x98\x96\x80g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81\x81\x04\x91\x90\x06`d\x02[\x89Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF8\x87\x16\x90a\x16r\x90\x82a\n.a1QV[a\x16\xA8W`@Q\x7F\x8Ew\xB2\xB7\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\x01`@Q\x80\x91\x03\x90\xFD[a\x16\xB5\x81a\n.\x85a1^V[\x8BRa\x16\xC1\x8B\x82a(\xECV[\x8AQa\x16\xD3\x90`\x08\x83\x01a\x11\xAEa1QV[a\x17\tW`@Q\x7F\x83LL\xD4\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\x01`@Q\x80\x91\x03\x90\xFD[a\x17\x19`\x08\x82\x01a\x11\xAE\x84a1^V[\x8BRa\x17(\x8B`\x08\x83\x01a(\xECV[PPPa\x1E\xBFV[P`\x16\x90Pg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFFa\x1E\xBFV[\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xECRg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x16\x01a\x17\x7FWP`\0\x90P\x80a\x1E\xBFV[\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xEB?g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x16\x01a\x17\xF7Wa\x17\xD9\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a2-V[Q\x15a\x17\xF2Wa\x17\xEA\x88\x86\x86a2NV[\x8AR\x90\x92P\x90P[a\x1E\xBFV[\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xECmg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x16\x01\x15a\x1E\xBFW\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xECng\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x16\x01\x15a\x1E\xBFW\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xEB\xB4g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x16\x01\x15a\x1E\xBFW\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xEC]g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x16\x01\x15a\x1E\xBFW\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xECjg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x16\x01\x15a\x1E\xBFW\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xEB\xF7g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x16\x01\x15a\x1E\xBFW\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xECkg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x16\x01\x15a\x1E\xBFW\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xEBOg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x16\x01\x15a\x1E\xBFW\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xECug\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x16\x01\x15a\x1E\xBFW\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xEChg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x16\x01\x15a\x1E\xBFW\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xECtg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x16\x01\x15a\x1E\xBFW\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xECsg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x16\x01\x15a\x1E\xBFW\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xEB\x81g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x16\x01\x15a\x1E\xBFW\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xEC!g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x16\x01\x15a\x1E\xBFW\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xEBwg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x16\x01\x15a\x1E\xBFW\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xECig\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x16\x01\x15a\x1E\xBFW\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xEB[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x16\x01\x15a\x1E\xBFW\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xEBYg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x16\x01\x15a\x1E\xBFW\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xEB\xA8g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x16\x01\x15a\x1E\xBFW\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xEBhg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x16\x01\x15a\x1E\xBFW\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xEC;g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x16\x01\x15a\x1E\xBFW\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xEC\x14g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x16\x01\x15a\x1E\xBFW\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xEC\x12g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x16\x01\x15a\x1E\xBFW\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xEC^g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x16\x01\x15a\x1E\xBFW\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xEB\x97g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x16\x01\x15a\x1E\xBFW\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xECTg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x16\x01\x15a\x1E\xBFW\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xEB\xA0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x16\x01\x15a\x1E\xBFW\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xEB\x9Fg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x16\x01\x15a\x1E\xBFW\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xEB\x9Cg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x16\x01\x15a\x1E\xBFW\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xEC\x19g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x16\x01\x15a\x1E\xBFW\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xECpg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x16\x01\x15a\x1E\xBFW\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xEB\\g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x16\x01a\x1E]W`\x80\x84\x16`\0\x03a\x1ETWP`\x16\x90Pg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFFa\x1E\xBFV[`d\x91Pa\x1E\xBFV[`@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\x82\x01R`\x1D`$\x82\x01R\x7FMIPS64: unimplemented syscall\0\0\0`D\x82\x01R`d\x01a\x03\xCCV[`\0a\x1FI\x88`@\x80Q`\x80\x81\x01\x82R`\0\x80\x82R` \x82\x01\x81\x90R\x91\x81\x01\x82\x90R``\x81\x01\x91\x90\x91R`@Q\x80`\x80\x01`@R\x80\x83``\x01Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81R` \x01\x83`\x80\x01Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81R` \x01\x83`\xA0\x01Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81R` \x01\x83`\xC0\x01Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81RP\x90P\x91\x90PV[`\xE0\x80\x8A\x01Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x87\x16`@\x83\x01R\x80\x86\x16\x91\x90\x92\x01R` \x82\x01\x80Q\x80\x83\x16\x84R`\x04\x01\x90\x91\x16\x90R\x90P\x80Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x81\x16``\x80\x8B\x01\x91\x90\x91R` \x83\x01Q\x82\x16`\x80\x8B\x01R`@\x83\x01Q\x82\x16`\xA0\x8B\x01R\x82\x01Q\x16`\xC0\x89\x01Ra\x1F\xBDa(/V[a\x15\x08a\x07\xF9V[`\xE0\x83\x01Q`\0\x90\x81\x90`\x1F`\x15\x86\x90\x1C\x16` \x81\x10a\x1F\xE7Wa\x1F\xE7aS\x05V[` \x02\x01Q\x90P`\x1F`\x10\x85\x90\x1C\x16`\0a \x01\x86a3\xDBV[\x83\x01\x90P`\x01`\x04c\xFF\xFF\xFF\xFF\x87\x16`4\x14\x80a $WPc\xFF\xFF\xFF\xFF\x87\x16`<\x14[\x15a 1WP`\x02\x90P`\x08[\x88Q`\0\x90c\xFF\xFF\xFF\xFF\x89\x16`0\x14\x80a QWPc\xFF\xFF\xFF\xFF\x89\x16`4\x14[\x15a \x8BWa c\x8C\x86\x85`\x01a3\xF2V[`\xFF\x85\x16`\x80\x8E\x01Rg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x87\x16`\xA0\x8F\x01R\x82\x16`\xC0\x8E\x01R\x91Pa!\x8EV[c\xFF\xFF\xFF\xFF\x89\x16`8\x14\x80a \xA6WPc\xFF\xFF\xFF\xFF\x89\x16`<\x14[\x15a!\\W\x83`\xFF\x16\x8C`\x80\x01Q`\xFF\x16\x14\x80\x15a \xDBWP\x80g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x8C`\xC0\x01Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14[\x80\x15a \xFEWP\x84g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x8C`\xA0\x01Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14[\x15a!SW`\0`\x80\x8D\x01\x81\x90R`\xA0\x8D\x01\x81\x90R`\xC0\x8D\x01R`\0\x8B`\xE0\x01Q\x87c\xFF\xFF\xFF\xFF\x16` \x81\x10a!6Wa!6aS\x05V[` \x02\x01Q\x90Pa!I\x8D\x87\x86\x84a42V[`\x01\x92PPa!\x8EV[`\0\x91Pa!\x8EV[`@Q\x7F\xEC\xF7\x9D\r\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\x01`@Q\x80\x91\x03\x90\xFD[`\0a\"\x18\x8C`@\x80Q`\x80\x81\x01\x82R`\0\x80\x82R` \x82\x01\x81\x90R\x91\x81\x01\x82\x90R``\x81\x01\x91\x90\x91R`@Q\x80`\x80\x01`@R\x80\x83``\x01Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81R` \x01\x83`\x80\x01Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81R` \x01\x83`\xA0\x01Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81R` \x01\x83`\xC0\x01Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81RP\x90P\x91\x90PV[\x90Pa\"2\x81\x8D`\xE0\x01Q\x89c\xFF\xFF\xFF\xFF\x16\x86`\x01a4\x8CV[\x80Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x81\x16``\x80\x8F\x01\x91\x90\x91R` \x83\x01Q\x82\x16`\x80\x8F\x01R`@\x83\x01Q\x82\x16`\xA0\x8F\x01R\x82\x01Q\x16`\xC0\x8D\x01Ra\"ra(/V[a\x14\xB5a\x07\xF9V[`@\x81\x01Q`\xA0\x82\x01Q`\0\x90\x81\x90c\xFF\xFF\xFF\xFF\x16`\x02\x14\x80a\"\xA7WP\x83`\xA0\x01Qc\xFF\xFF\xFF\xFF\x16`\x03\x14[\x15a#\x0BW`\x80\x84\x01Q`\0\x90`\x02\x1Bc\x0F\xFF\xFF\xFC\x16a\"\xCCc\xF0\0\0\0` a5pV[\x86`\0\x01Q` \x01Q\x16\x17\x90Pa#\x05\x85\x86`\xA0\x01Qc\xFF\xFF\xFF\xFF\x16`\x02\x14a\"\xF6W`\x1Fa\"\xF9V[`\0[c\xFF\xFF\xFF\xFF\x16\x83a5\xEAV[Pa((V[`\x80\x84\x01Q` \x80\x86\x01Q`\0\x92\x83\x92`\x1F`\x10\x83\x90\x1C\x81\x16\x93\x92`\x15\x1C\x16\x90\x81\x10a#9Wa#9aS\x05V[` \x02\x01Q\x92P`\0\x81\x90P\x87`\xA0\x01Qc\xFF\xFF\xFF\xFF\x16`'\x14\x80a#hWP\x87`\xA0\x01Qc\xFF\xFF\xFF\xFF\x16`\x1A\x14[\x80a#}WP\x87`\xA0\x01Qc\xFF\xFF\xFF\xFF\x16`\x1B\x14[\x15a#\xB1W\x87` \x01Q\x82g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16` \x81\x10a#\xA2Wa#\xA2aS\x05V[` \x02\x01Q\x92P\x81\x90Pa$\xEEV[`\xA0\x88\x01Qc\xFF\xFF\xFF\xFF\x16\x15\x80a#\xD2WP\x87`\xA0\x01Qc\xFF\xFF\xFF\xFF\x16`\x1C\x14[\x15a$\x11W\x87` \x01Q\x82g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16` \x81\x10a#\xF7Wa#\xF7aS\x05V[` \x02\x01Q`\x80\x89\x01Q\x90\x93P`\x0B\x1C`\x1F\x16\x90Pa$\xEEV[` \x88`\xA0\x01Qc\xFF\xFF\xFF\xFF\x16\x10\x15a$\x85W\x87`\xA0\x01Qc\xFF\xFF\xFF\xFF\x16`\x0C\x14\x80a$GWP\x87`\xA0\x01Qc\xFF\xFF\xFF\xFF\x16`\r\x14[\x80a$\\WP\x87`\xA0\x01Qc\xFF\xFF\xFF\xFF\x16`\x0E\x14[\x15a$qW`\x80\x88\x01Qa\xFF\xFF\x16\x92Pa$\xEEV[a$~\x88`\x80\x01Qa3\xDBV[\x92Pa$\xEEV[`(\x88`\xA0\x01Qc\xFF\xFF\xFF\xFF\x16\x10\x15\x80a$\xA9WP\x87`\xA0\x01Qc\xFF\xFF\xFF\xFF\x16`\"\x14[\x80a$\xBEWP\x87`\xA0\x01Qc\xFF\xFF\xFF\xFF\x16`&\x14[\x15a$\xEEW\x87` \x01Q\x82g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16` \x81\x10a$\xE3Wa$\xE3aS\x05V[` \x02\x01Q\x92P\x81\x90P[`\x04\x88`\xA0\x01Qc\xFF\xFF\xFF\xFF\x16\x10\x15\x80\x15a%\x13WP`\x08\x88`\xA0\x01Qc\xFF\xFF\xFF\xFF\x16\x10[\x80a%(WP\x87`\xA0\x01Qc\xFF\xFF\xFF\xFF\x16`\x01\x14[\x15a%TWa%K\x88`\0\x01Q\x89` \x01Q\x8A`\xA0\x01Q\x8B`\x80\x01Q\x86\x89a6\xD4V[PPPPa((V[`\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90P`\0` \x8A`\xA0\x01Qc\xFF\xFF\xFF\xFF\x16\x10\x15\x80a%\x87WP`\xA0\x8A\x01Qc\xFF\xFF\xFF\xFF\x16`\x1A\x14[\x80a%\x9CWP`\xA0\x8A\x01Qc\xFF\xFF\xFF\xFF\x16`\x1B\x14[\x15a&\x04Wa%\xAE\x8A`\x80\x01Qa3\xDBV[\x86\x01\x95P`\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF8\x87\x16\x90Pa%\xD4\x8B`@\x01Q\x82\x8D``\x01Qa*\x19V[\x91P`(\x8B`\xA0\x01Qc\xFF\xFF\xFF\xFF\x16\x10a&\x02W\x8A`\xA0\x01Qc\xFF\xFF\xFF\xFF\x16`7\x14a&\x02W\x80\x92P`\0\x93P[P[`\0`@Q\x80`\xC0\x01`@R\x80\x8C`\x80\x01Qc\xFF\xFF\xFF\xFF\x16\x81R` \x01\x8C`\xA0\x01Qc\xFF\xFF\xFF\xFF\x16\x81R` \x01\x8C`\xC0\x01Qc\xFF\xFF\xFF\xFF\x16\x81R` \x01\x88g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81R` \x01\x87g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81R` \x01\x83g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81RP\x90P`\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFFa&\x85\x83a9GV[`\xA0\x8E\x01Q\x91\x16\x91P` \x90c\xFF\xFF\xFF\xFF\x16\x15\x80\x15a&\xAFWP`\x08\x8D`\xC0\x01Qc\xFF\xFF\xFF\xFF\x16\x10\x15[\x80\x15a&\xCEWP\x80g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x8D`\xC0\x01Qc\xFF\xFF\xFF\xFF\x16\x10[\x15a'\xDEW\x8C`\xC0\x01Qc\xFF\xFF\xFF\xFF\x16`\x08\x14\x80a&\xF6WP\x8C`\xC0\x01Qc\xFF\xFF\xFF\xFF\x16`\t\x14[\x15a'.Wa' \x8D\x8E`\xC0\x01Qc\xFF\xFF\xFF\xFF\x16`\x08\x14a'\x17W\x87a'\x1AV[`\0[\x8Ba5\xEAV[PPPPPPPPPa((V[\x8C`\xC0\x01Qc\xFF\xFF\xFF\xFF\x16`\n\x03a'_W\x8CQ` \x8E\x01Qa' \x91\x90\x88\x8Cg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x8D\x16\x15a4\x8CV[\x8C`\xC0\x01Qc\xFF\xFF\xFF\xFF\x16`\x0B\x03a'\x91W\x8CQ` \x8E\x01Qa' \x91\x90\x88\x8Cg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x8D\x16\x15\x15a4\x8CV[`\x10\x8D`\xC0\x01Qc\xFF\xFF\xFF\xFF\x16\x10\x15\x80\x15a'\xBFWP\x80g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x8D`\xC0\x01Qc\xFF\xFF\xFF\xFF\x16\x10[\x15a'\xDEWa' \x8D`\0\x01Q\x8E` \x01Q\x8F`\xC0\x01Q\x8C\x8C\x8BaE\xC1V[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x85\x81\x16\x14a(\x08Wa'\xFE\x85\x8E``\x01Q\x84a1^V[\x9BP`\x01\x9AP\x84\x99P[a(\x1E\x8D`\0\x01Q\x8E` \x01Q\x88\x85`\x01a4\x8CV[PPPPPPPPP[\x91\x93\x90\x92PV[`@\x80Qa\x01\xE0\x81\x01\x82R`\0\x80\x82R` \x82\x01\x81\x90R\x91\x81\x01\x82\x90R``\x81\x01\x82\x90R`\x80\x81\x01\x82\x90R`\xA0\x81\x01\x82\x90R`\xC0\x81\x01\x82\x90R`\xE0\x81\x01\x82\x90Ra\x01\0\x81\x01\x82\x90Ra\x01 \x81\x01\x82\x90Ra\x01@\x81\x01\x82\x90Ra\x01`\x81\x01\x82\x90Ra\x01\x80\x81\x01\x82\x90Ra\x01\xA0\x81\x01\x82\x90Ra\x01\xC0\x81\x01\x91\x90\x91Ra(\xB0aQ+V[P`\x80\x90Pa\x02``\0a(\xC5a\nJa)$V[\x90P\x82a\x01`\x01Q\x15a(\xDFWa\x01\xA0\x83\x01\x81\x90RPPPV[a\x01\x80\x83\x01\x81\x90RPPPV[`\xA0\x82\x01Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF8\x16g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16\x03a\x07\xB1W`\0`\x80\x83\x01\x81\x90R`\xA0\x83\x01\x81\x90R`\xC0\x83\x01RPPV[a\x02\x8E56a)6a\x01*` aScV[a)H\x90c\xFF\xFF\xFF\xFF\x16a\x01daR\xEDV[\x81\x10\x15a\t\x15W`@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\x82\x01R`0`$\x82\x01R\x7FMIPS64: insufficient calldata fo`D\x82\x01R\x7Fr thread witness\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x03\xCCV[`\0\x80a)\xE3\x83aK\x9BV[`@\x80Q` \x81\x01\x87\x90R\x90\x81\x01\x82\x90R\x90\x91P``\x01`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 \x91PP\x92\x91PPV[`\0\x80a*'\x85\x85\x85aL$V[\x90\x92P\x90P\x80a*cW`@Q\x7F\x8Ew\xB2\xB7\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\x01`@Q\x80\x91\x03\x90\xFD[P\x93\x92PPPV[`\0\x80`\0\x80a*{\x88\x87aL\xFCV[\x92P\x92P\x92P\x82\x82g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x88g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90\x1C\x16\x93P\x84\x15a*\xB0Wa*\xAD\x84\x82a5pV[\x93P[PPP\x94\x93PPPPV[`@\x81\x01Q`\x80\x82\x01Q`\xA0\x83\x01Q`\xC0\x84\x01Q[\x91\x93P\x91\x93V[`\0\x80\x82\x84a\x0F\xFF\x81\x16\x15a*\xF1Wa\x0F\xFF\x81\x16a\x10\0\x03\x01[\x86g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\0\x03a+{W\x84\x93P\x90\x81\x01\x90e`\0\0\0\0\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x16\x11\x80a+;WP\x84g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x82g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x10[\x80a+YWP\x85g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x10[\x15a+vWP`\x16\x92Pg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x91P\x83\x90Pa\r\xC7V[a+\x7FV[\x86\x93P[P\x93P\x93P\x93\x90PV[\x81a\x01`\x01Q\x15a+\xAEWa+\xA3\x82a\x01\xA0\x01Q\x82a)\xD7V[a\x01\xA0\x83\x01Ra\x0B`V[a+\xBD\x82a\x01\x80\x01Q\x82a)\xD7V[a\x01\x80\x83\x01RP`\0a\x01@\x90\x91\x01RV[`\0\x80`\0\x80a+\xDE\x85aM\x80V[\x91\x8BRg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x92\x16`@\x8B\x01R\x92\x96P\x90\x94P\x92P\x90P\x81\x15a,\x0CWa,\x0C\x86\x82a(\xECV[PP\x92P\x92\x90PV[``\x81\x01Q`\x80\x82\x01Q\x82Q`\0\x92\x83\x92\x90\x91g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\x01\x14\x80a,KWP\x84Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\x02\x14[\x80a,aWP\x84Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\x04\x14[\x15a,rW\x84`@\x01Q\x93Pa*\xD0V[\x84Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFA\x01a-LW`\0a,\xC7\x86`\xC0\x01Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF8\x88` \x01Q\x16\x88`\xA0\x01Qa*\x19V[``\x87\x01Q` \x88\x01Q`@\x89\x01Q\x92\x93P\x90\x91`\x07\x82\x16`\x08\x03\x81\x81\x10\x15a,\xEEW\x80\x91P[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16`@\x8B\x01\x81\x90R\x98P`\x08\x80\x83\x02\x94\x85\x1B`\x01\x90\x95\x1B\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x01\x92\x90\x91\x03\x02\x93\x90\x93\x1C\x92\x90\x92\x16\x17\x92P`\0\x91Pa*\xD0\x90PV[\x84Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x9C\x01a-\x92W`\x0B\x93Pg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x92Pa*\xD0V[`\t\x95g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x95P\x91\x93P\x91PV[`\0\x80g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x16`\x01\x03a.gWg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x16\x15\x80a-\xDDWPg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x16`\x01\x14[\x80a-\xF2WPg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x16`\x02\x14[\x80a.\x07WPg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x16`\x05\x14[\x80a.\x1CWPg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x16`\x03\x14[\x80a.1WPg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x16`\x06\x14[\x80a.FWPg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x16`\x04\x14[\x15a.TW`\0\x91Pa/'V[P`\t\x90Pg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFFa/'V[\x82g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\x03\x03a/\x18Wg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x16\x15\x80a.\x9AWPg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x16`\x05\x14[\x80a.\xAFWPg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x16`\x03\x14[\x15a.\xBDW`\0\x91Pa/'V[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x16`\x01\x14\x80a.\xE0WPg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x16`\x02\x14[\x80a.\xF5WPg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x16`\x06\x14[\x80a/\nWPg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x16`\x04\x14[\x15a.TW`\x01\x91Pa/'V[P`\x16\x90Pg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF[\x92P\x92\x90PV[`\0\x80\x82a\x01`\x01Qa/FW\x82a\x01\xA0\x01Qa/MV[\x82a\x01\x80\x01Q[\x90P`\0\x7F\xAD2(\xB6v\xF7\xD3\xCDB\x84\xA5D?\x17\xF1\x96+6\xE4\x91\xB3\n@\xB2@XI\xE5\x97\xBA_\xB5a/za)$V[\x14\x90P\x7F\xAD2(\xB6v\xF7\xD3\xCDB\x84\xA5D?\x17\xF1\x96+6\xE4\x91\xB3\n@\xB2@XI\xE5\x97\xBA_\xB5\x82\x14\x80\x15a/\xA9WP\x80[\x94\x93PPPPV[`@\x80Qa\x01\xE0\x81\x01\x82R`\0\x80\x82R` \x82\x01\x81\x90R\x91\x81\x01\x82\x90R``\x81\x01\x82\x90R`\x80\x81\x01\x82\x90R`\xA0\x81\x01\x82\x90R`\xC0\x81\x01\x82\x90R`\xE0\x81\x01\x82\x90Ra\x01\0\x81\x01\x82\x90Ra\x01 \x81\x01\x82\x90Ra\x01@\x81\x01\x82\x90Ra\x01`\x81\x01\x82\x90Ra\x01\x80\x81\x01\x82\x90Ra\x01\xA0\x81\x01\x82\x90Ra\x01\xC0\x81\x01\x82\x90RP`\x80`\0a/\xA9\x82\x85`\x04\x84a3\xF2V[`\0\x80\x80\x80a0\xC8\x85`@\x80Q`\x80\x81\x01\x82R`\0\x80\x82R` \x82\x01\x81\x90R\x91\x81\x01\x82\x90R``\x81\x01\x91\x90\x91R`@Q\x80`\x80\x01`@R\x80\x83``\x01Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81R` \x01\x83`\x80\x01Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81R` \x01\x83`\xA0\x01Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81R` \x01\x83`\xC0\x01Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81RP\x90P\x91\x90PV[`\xE0\x80\x87\x01Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x87\x16`@\x83\x01R\x80\x86\x16\x91\x90\x92\x01R` \x82\x01\x80Q\x80\x83\x16\x84R`\x04\x01\x90\x91\x16\x90R\x90P\x80Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x81\x16``\x80\x88\x01\x91\x90\x91R` \x83\x01Q\x82\x16`\x80\x88\x01R`@\x83\x01Q\x82\x16`\xA0\x88\x01R\x82\x01Q\x16`\xC0\x86\x01Ra1>\x86\x86a\x0BlV[Pa1Ga\x07\xF9V[\x96\x95PPPPPPV[`\0a\x01:\x84\x84\x84aL$V[`\0a1i\x83aP^V[`\x07\x84\x16\x15a1\x9DW`@Q\x7F\xE6\xC4${\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\x81\xFD[` \x83\x01\x92`\x1F\x85\x16`\x18\x03`\x03\x1B\x83\x81\x1B\x915g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x1B\x19\x16\x17`\x05\x85\x90\x1C`;`\0[\x81\x81\x10\x15a2!W` \x87\x01\x965\x83\x82\x1C`\x01\x16\x80\x15a1\xF1W`\x01\x81\x14a2\x06Wa2\x17V[`\0\x86\x81R` \x83\x90R`@\x90 \x95Pa2\x17V[`\0\x82\x81R` \x87\x90R`@\x90 \x95P[PP`\x01\x01a1\xCAV[P\x91\x96\x95PPPPPPV[`@\x80Q` \x81\x01\x90\x91R`\0\x81R`\x08\x82\x10a2IW`\x01\x81R[\x91\x90PV[`\0\x80\x80g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF8\x85\x16\x81a2\x81a2oa\x01*a\x01daR\xEDV[a2z\x90` aR\xEDV[a\x07\x80\x01\x90V[\x90P`\0a2\x94\x89`\0\x01Q\x84\x84a*\x19V[\x90P`\0a3\x04\x8Aa\x01 \x01Q`\0\x80\x82g\x9E7y\xB9\x7FJ|\x15\x01\x90P`\x1E\x81g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90\x1C\x81\x18g\xBFXGm\x1C\xE4\xE5\xB9\x02\x90P`\x1B\x81g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90\x1C\x81\x18g\x94\xD0I\xBB\x131\x11\xEB\x02\x90P`\x1F\x81g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90\x1C\x81\x18\x91PP\x91\x90PV[\x90P`\0a3\x12\x85\x8BaS\x8BV[\x90P`\0a3!\x82`\x08aS\x8BV[\x90P\x89g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x16\x90\x83\x16\x10\x15a3\x19Wa:\xC0\x82\x84\x03c\xFF\xFF\xFF\xFF\x16` a5pV[\x83c\xFF\xFF\xFF\xFF\x16`$\x03a>2WP\x16\x95\x94PPPPPV[\x83c\xFF\xFF\xFF\xFF\x16`%\x03a>KWP\x17\x95\x94PPPPPV[\x83c\xFF\xFF\xFF\xFF\x16`&\x03a>dWP\x18\x95\x94PPPPPV[\x83c\xFF\xFF\xFF\xFF\x16`'\x03a>~WP\x17\x19\x95\x94PPPPPV[\x83c\xFF\xFF\xFF\xFF\x16`*\x03a>\xB2W\x81`\x07\x0B\x83`\x07\x0B\x12a>\xA0W`\0a>\xA3V[`\x01[`\xFF\x16\x98\x97PPPPPPPPV[\x83c\xFF\xFF\xFF\xFF\x16`+\x03a>\xE2W\x81g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x83g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x10a>\xA0W`\0a>\xA3V[\x83c\xFF\xFF\xFF\xFF\x16`,\x03a>\xFBWP\x01\x95\x94PPPPPV[\x83c\xFF\xFF\xFF\xFF\x16`-\x03a?\x14WP\x01\x95\x94PPPPPV[\x83c\xFF\xFF\xFF\xFF\x16`.\x03a?.WP\x90\x03\x95\x94PPPPPV[\x83c\xFF\xFF\xFF\xFF\x16`/\x03a?HWP\x90\x03\x95\x94PPPPPV[\x83c\xFF\xFF\xFF\xFF\x16`8\x03a?wWPg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\x06\x94\x90\x94\x1C`\x1F\x16\x93\x90\x93\x1B\x95\x94PPPPPV[\x83c\xFF\xFF\xFF\xFF\x16`:\x03a?\xA6WPg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\x06\x94\x90\x94\x1C`\x1F\x16\x93\x90\x93\x1C\x95\x94PPPPPV[\x83c\xFF\xFF\xFF\xFF\x16`;\x03a?\xCEWP`\x07\x0B`\x06\x94\x90\x94\x1C`\x1F\x16\x93\x90\x93\x1D\x95\x94PPPPPV[\x83c\xFF\xFF\xFF\xFF\x16`<\x03a@\rW`\x06\x86c\xFF\xFF\xFF\xFF\x16\x90\x1C`\x1F\x16` \x01c\xFF\xFF\xFF\xFF\x16\x82g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90\x1B\x96PPPPPPP\x91\x90PV[\x83c\xFF\xFF\xFF\xFF\x16`>\x03a@LW`\x06\x86c\xFF\xFF\xFF\xFF\x16\x90\x1C`\x1F\x16` \x01c\xFF\xFF\xFF\xFF\x16\x82g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90\x1C\x96PPPPPPP\x91\x90PV[\x83c\xFF\xFF\xFF\xFF\x16`?\x03a@\x84W`\x06\x86c\xFF\xFF\xFF\xFF\x16\x90\x1C`\x1F\x16` \x01c\xFF\xFF\xFF\xFF\x16\x82`\x07\x0B\x90\x1D\x96PPPPPPP\x91\x90PV[`@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\x82\x01R`\x1B`$\x82\x01R\x7FMIPS64: invalid instruction\0\0\0\0\0`D\x82\x01R`d\x01a\x03\xCCV[a@\x84V[\x84c\xFF\xFF\xFF\xFF\x16`\x1C\x03aA\xE0W\x83c\xFF\xFF\xFF\xFF\x16`\x02\x03aA\x1AWa:\xC0\x82\x84\x02c\xFF\xFF\xFF\xFF\x16` a5pV[\x83c\xFF\xFF\xFF\xFF\x16` \x14\x80aA5WP\x83c\xFF\xFF\xFF\xFF\x16`!\x14[\x15aA\x84W\x83c\xFF\xFF\xFF\xFF\x16` \x03aALW\x91\x19\x91[`\0[c\x80\0\0\0\x84\x16\x15aArWh\x01\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE`\x01\x94\x85\x1B\x16\x93\x01aAOV[c\xFF\xFF\xFF\xFF\x16\x98\x97PPPPPPPPV[\x83c\xFF\xFF\xFF\xFF\x16`$\x14\x80aA\x9FWP\x83c\xFF\xFF\xFF\xFF\x16`%\x14[\x15a@\xE6W\x83c\xFF\xFF\xFF\xFF\x16`$\x03aA\xB6W\x91\x19\x91[`\0[g\x80\0\0\0\0\0\0\0\x84\x16\x15aArWh\x01\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE`\x01\x94\x85\x1B\x16\x93\x01aA\xB9V[\x84c\xFF\xFF\xFF\xFF\x16`\x0F\x03aB\x07Wa:\xC0`\x10\x83g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90\x1B` a5pV[\x84c\xFF\xFF\xFF\xFF\x16` \x03aB\"Wa:\xC0\x83\x82`\x01\x80a*kV[\x84c\xFF\xFF\xFF\xFF\x16`!\x03aB>Wa:\xC0\x83\x82`\x02`\x01a*kV[\x84c\xFF\xFF\xFF\xFF\x16`\"\x03aB\x8FW`\0aB\\\x84\x83`\x04`\0a*kV[\x90Pc\xFF\xFF\xFF\xFF\x80\x82\x16`\x08`\x03\x87\x16\x02\x82\x16\x90\x81\x1B\x91\x90\x81\x90\x1B\x81\x16\x90a\x15\x08\x90\x82\x19\x87\x16\x81\x16\x90\x84\x16\x17` a5pV[\x84c\xFF\xFF\xFF\xFF\x16`#\x03aB\xABWa:\xC0\x83\x82`\x04`\x01a*kV[\x84c\xFF\xFF\xFF\xFF\x16`$\x03aB\xC7Wa:\xC0\x83\x82`\x01`\0a*kV[\x84c\xFF\xFF\xFF\xFF\x16`%\x03aB\xE3Wa:\xC0\x83\x82`\x02`\0a*kV[\x84c\xFF\xFF\xFF\xFF\x16`&\x03aC`W`\0aC\x01\x84\x83`\x04`\0a*kV[\x90Pc\xFF\xFF\xFF\xFF\x80\x82\x16`\x03\x86\x81\x16`\x08\x81\x02`\x18\x03g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x92\x83\x1C\x93\x92\x83\x90\x1C\x92\x83\x19\x88\x16\x85\x17\x16\x91\x03aCBWa\x11>\x81` a5pV[g\xFF\xFF\xFF\xFF\0\0\0\0\x95\x90\x95\x16\x90\x94\x17\x9A\x99PPPPPPPPPPV[\x84c\xFF\xFF\xFF\xFF\x16`(\x03aC{Wa:\xC0\x83\x82`\x01\x85aP\xF3V[\x84c\xFF\xFF\xFF\xFF\x16`)\x03aC\x96Wa:\xC0\x83\x82`\x02\x85aP\xF3V[\x84c\xFF\xFF\xFF\xFF\x16`*\x03aC\xE9Wc\xFF\xFF\xFF\xFF`\x18`\x03\x94\x90\x94\x1B\x93\x84\x16\x81\x81\x1Cg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x81\x16` \x96\x87\x16\x90\x96\x03\x81\x16\x95\x86\x1B\x19\x93\x90\x93\x16\x93\x90\x91\x16\x90\x1C\x16\x90\x91\x1B\x17\x95\x94PPPPPV[\x84c\xFF\xFF\xFF\xFF\x16`+\x03aD\x04Wa:\xC0\x83\x82`\x04\x85aP\xF3V[\x84c\xFF\xFF\xFF\xFF\x16`.\x03aDdW`\0aD\"\x84\x83`\x04`\0a*kV[\x90Pg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x81\x16`\x08`\x03\x87\x16\x02`\x18\x03\x91\x82\x16\x1B\x90c\xFF\xFF\xFF\xFF\x90\x81\x16\x81\x90\x1B\x81\x16\x90\x81\x19\x84\x16\x81\x16\x90\x83\x16\x17a\x11>\x87\x86`\x04\x84aP\xF3V[\x84c\xFF\xFF\xFF\xFF\x16`\x1A\x03aD\x98Wg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x81\x16`\x03\x93\x90\x93\x1B`8\x16\x92\x83\x1B\x92\x1B\x19\x16\x17\x95\x94PPPPPV[\x84c\xFF\xFF\xFF\xFF\x16`\x1B\x03aD\xDBWg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x81\x16`\x03\x93\x90\x93\x1B`8\x90\x81\x16\x90\x81\x90\x03\x82\x16\x93\x90\x93\x1C`\x08\x93\x90\x93\x01\x81\x16\x1B\x16\x17\x95\x94PPPPPV[\x84c\xFF\xFF\xFF\xFF\x16`'\x03aE\x17Wg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x81\x16` `\x03\x94\x90\x94\x1B\x84\x16\x90\x93\x03\x16\x91\x90\x91\x1Cc\xFF\xFF\xFF\xFF\x16\x96\x95PPPPPPV[\x84c\xFF\xFF\xFF\xFF\x16`,\x03aEPWg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x91\x82\x16`\x03\x93\x90\x93\x1B`8\x16\x92\x83\x1C\x91\x90\x92\x1C\x19\x91\x90\x91\x16\x17\x95\x94PPPPPV[\x84c\xFF\xFF\xFF\xFF\x16`-\x03aE\x8FWg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF`8`\x03\x94\x90\x94\x1B\x84\x16\x90\x93\x03\x83\x16\x83\x81\x1B\x19\x91\x90\x91\x16\x91\x90\x92\x16\x90\x91\x1B\x17\x95\x94PPPPPV[\x84c\xFF\xFF\xFF\xFF\x16`7\x03aE\xA8W\x97\x96PPPPPPPV[\x84c\xFF\xFF\xFF\xFF\x16`?\x03a@\x84WP\x96\x95PPPPPPV[`\0\x84c\xFF\xFF\xFF\xFF\x16`\x10\x03aE\xDCWP``\x86\x01QaK3V[\x84c\xFF\xFF\xFF\xFF\x16`\x11\x03aE\xFFWg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x16``\x88\x01RaK3V[\x84c\xFF\xFF\xFF\xFF\x16`\x12\x03aF\x18WP`@\x86\x01QaK3V[\x84c\xFF\xFF\xFF\xFF\x16`\x13\x03aF;Wg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x16`@\x88\x01RaK3V[\x84c\xFF\xFF\xFF\xFF\x16`\x18\x03aF\xA4W`\0\x83`\x03\x0B\x85`\x03\x0B\x02\x90PaFo` \x82g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90\x1C` a5pV[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16``\x89\x01RaF\x8Fc\xFF\xFF\xFF\xFF\x82\x16` a5pV[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`@\x89\x01RPaK3V[\x84c\xFF\xFF\xFF\xFF\x16`\x19\x03aF\xDEW`\0\x83c\xFF\xFF\xFF\xFF\x16\x85c\xFF\xFF\xFF\xFF\x16\x02\x90PaFo` \x82g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90\x1C` a5pV[\x84c\xFF\xFF\xFF\xFF\x16`\x1A\x03aG\xCCW\x82c\xFF\xFF\xFF\xFF\x16`\0\x03aG\\W`@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\x82\x01R`\x18`$\x82\x01R\x7FMIPS64: division by zero\0\0\0\0\0\0\0\0`D\x82\x01R`d\x01a\x03\xCCV[aG\x82\x83`\x03\x0B\x85`\x03\x0B\x81aGtWaGtaS4V[\x07c\xFF\xFF\xFF\xFF\x16` a5pV[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16``\x88\x01RaG\xB8`\x03\x84\x81\x0B\x90\x86\x90\x0B\x81aG\xAAWaG\xAAaS4V[\x05c\xFF\xFF\xFF\xFF\x16` a5pV[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`@\x88\x01RaK3V[\x84c\xFF\xFF\xFF\xFF\x16`\x1B\x03aH\xAEW\x82c\xFF\xFF\xFF\xFF\x16`\0\x03aHJW`@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\x82\x01R`\x18`$\x82\x01R\x7FMIPS64: division by zero\0\0\0\0\0\0\0\0`D\x82\x01R`d\x01a\x03\xCCV[aHv\x83c\xFF\xFF\xFF\xFF\x16\x85c\xFF\xFF\xFF\xFF\x16\x81aHhWaHhaS4V[\x06c\xFF\xFF\xFF\xFF\x16` a5pV[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16``\x88\x01RaG\xB8c\xFF\xFF\xFF\xFF\x80\x85\x16\x90\x86\x16\x81aH\xA0WaH\xA0aS4V[\x04c\xFF\xFF\xFF\xFF\x16` a5pV[\x84c\xFF\xFF\xFF\xFF\x16`\x14\x03aH\xD2WPg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16`?\x84\x16\x1BaK3V[\x84c\xFF\xFF\xFF\xFF\x16`\x16\x03aH\xF6WPg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16`?\x84\x16\x1CaK3V[\x84c\xFF\xFF\xFF\xFF\x16`\x17\x03aI\x14WP`\x07\x82\x90\x0B`?\x84\x16\x1DaK3V[\x84c\xFF\xFF\xFF\xFF\x16`\x1C\x03aIQWg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF`\x07\x85\x81\x0B\x90\x85\x90\x0B\x02`\x0F\x81\x90\x0B`@\x90\x81\x1D\x83\x16``\x8B\x01R\x91\x16\x90\x88\x01RaK3V[\x84c\xFF\xFF\xFF\xFF\x16`\x1D\x03aI\x86Wg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x81\x16\x81\x85\x16\x02`@\x81\x81\x1C\x83\x16``\x8B\x01R\x91\x16\x90\x88\x01RaK3V[\x84c\xFF\xFF\xFF\xFF\x16`\x1E\x03aJXW\x82g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\0\x03aJ\x08W`@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\x82\x01R`\x18`$\x82\x01R\x7FMIPS64: division by zero\0\0\0\0\0\0\0\0`D\x82\x01R`d\x01a\x03\xCCV[\x82`\x07\x0B\x84`\x07\x0B\x81aJ\x1DWaJ\x1DaS4V[\x07g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16``\x88\x01R`\x07\x83\x81\x0B\x90\x85\x90\x0B\x81aJCWaJCaS4V[\x05g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`@\x88\x01RaK3V[\x84c\xFF\xFF\xFF\xFF\x16`\x1F\x03aK3W\x82g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\0\x03aJ\xDAW`@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\x82\x01R`\x18`$\x82\x01R\x7FMIPS64: division by zero\0\0\0\0\0\0\0\0`D\x82\x01R`d\x01a\x03\xCCV[\x82g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x84g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81aJ\xFDWaJ\xFDaS4V[\x06g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x81\x16``\x89\x01R\x83\x81\x16\x90\x85\x16\x81aK\"WaK\"aS4V[\x04g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`@\x88\x01R[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16\x15aKuW\x80\x86\x83g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16` \x81\x10aK`WaK`aS\x05V[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x92\x16` \x92\x90\x92\x02\x01R[PPP` \x84\x01\x80Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x16\x90\x96R`\x04\x01\x90\x94\x16\x90\x93RPPPV[`@Q`\x18\x82\x01Q\x81R`?\x82\x01Q`\x08\x82\x01R`_\x82\x01Q`\t\x82\x01R`x\x82\x01Q`\n\x82\x01R`\x98\x82\x01Q`\x12\x82\x01R`\xB8\x82\x01Q`\x1A\x82\x01R`\xD8\x82\x01Q`\"\x82\x01R`\xE0\x82\x01Q`\0\x91`*\x81\x01\x83[` \x81\x10\x15aL\x13W`\x18\x84\x01Q\x82R` \x90\x93\x01\x92`\x08\x90\x91\x01\x90`\x01\x01aK\xEFV[P`\0\x81R\x81\x90\x03\x90 \x93\x92PPPV[`\0\x80aL0\x83aP^V[`\x07\x84\x16\x15aLdW`@Q\x7F\xE6\xC4${\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\x81\xFD[` \x83\x01\x925`\x05\x85\x90\x1C\x81`;`\0[\x81\x81\x10\x15aL\xCCW` \x88\x01\x975\x84\x82\x1C`\x01\x16\x80\x15aL\x9CW`\x01\x81\x14aL\xB1WaL\xC2V[`\0\x85\x81R` \x83\x90R`@\x90 \x94PaL\xC2V[`\0\x82\x81R` \x86\x90R`@\x90 \x94P[PP`\x01\x01aLuV[PP\x87\x14\x92PP\x81\x15aL\xF3W`\x1F\x85\x16`\x18\x03`\x03\x1B\x81\x90\x1Cg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x92P[P\x93P\x93\x91PPV[`\0\x80\x80h\x07\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF8`\x03\x85\x90\x1B\x16\x81aM\x1C\x82`@aS\x8BV[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x81\x16\x1C\x90P`\0aM8`\x01\x88aS\x8BV[\x19\x88\x16`\x07\x16\x90P`\0aMM\x88`\x08aS\x8BV[\x90P\x88\x82\x16`\0`\x03aM`\x83\x85aS\x8BV[\x95\x9Cg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x96\x16\x90\x1B\x9AP\x94\x98P\x92\x96PPPPPPPV[a\x01\0\x81\x01Q`\x80\x82\x01Q\x82Q`\0\x92\x83\x92\x91\x83\x90\x81\x90g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x15aPUW\x86Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFB\x01aO\xC1W`\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF8\x88` \x01Q\x16\x90P`\0aN\x01\x89a\x01\0\x01Q\x83\x8B`\xE0\x01Qa*\x19V[``\x8A\x01Q\x90\x91P`\0\x1A`\x01\x03aN\x83WaN}\x89``\x01Q\x8A`\xA0\x01Q`@\x80Q`\0\x93\x84R3` R\x91\x81R``\x90\x92 \x91R~\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x17\x90V[``\x8A\x01R[`\0\x80\x8A`\xC0\x01Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xE01\x10\xE1\x8C``\x01Q\x8D`\x80\x01Q`@Q\x83c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01aN\xE0\x92\x91\x90\x91\x82Rg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16` \x82\x01R`@\x01\x90V[`@\x80Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15aN\xFCW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90aO \x91\x90aS\xFBV[` \x8D\x01Q`@\x8E\x01Q\x92\x94P\x90\x92P\x90`\x07\x82\x16`\x08\x81\x90\x03\x84\x81\x10\x15aOFW\x80\x94P[P\x83\x82\x10\x15aOSW\x81\x93P[\x84`\x08\x85\x02a\x01\0\x03\x1C\x94P\x84`\x08\x82\x86`\x08\x03\x03\x02\x1B\x94P`\x01\x80`\x08\x83`\x08\x03\x02\x1B\x03`\x01\x80`\x08\x87\x85`\x08\x03\x03\x02\x1B\x03\x91P\x81\x19\x81\x16\x90P\x85\x81\x19\x88\x16\x17\x96PPPaO\xA7\x86\x8E`\xE0\x01Q\x87a1^V[\x92\x9BPPP\x96\x89\x01\x96\x95P`\x01\x94P\x91\x92PaPU\x91PPV[\x86Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFD\x01aO\xFFW\x86`@\x01Q\x95PaPUV[\x86Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x9C\x01aPEW`\x0B\x95Pg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x94PaPUV[`\t\x95Pg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x94P[\x91\x93\x95P\x91\x93\x95V[6a\x07\x80\x82\x01\x81\x10\x15a\x07\xB1W`@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\x82\x01R`1`$\x82\x01R\x7FMIPS64Memory: check that there i`D\x82\x01R\x7Fs enough calldata\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x03\xCCV[`\0\x80`\0aQ\x02\x87\x86aL\xFCV[Pg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x86\x83\x16\x81\x16\x91\x81\x16\x91\x82\x1B\x92\x16\x90\x1B\x19\x87\x16\x17\x92PPP\x94\x93PPPPV[`@\x80Qa\x01\0\x81\x01\x82R`\0\x80\x82R` \x82\x01\x81\x90R\x91\x81\x01\x82\x90R``\x81\x01\x82\x90R`\x80\x81\x01\x82\x90R`\xA0\x81\x01\x82\x90R`\xC0\x81\x01\x91\x90\x91R`\xE0\x81\x01aQqaQvV[\x90R\x90V[`@Q\x80a\x04\0\x01`@R\x80` \x90` \x82\x02\x806\x837P\x91\x92\x91PPV[`\0` \x80\x83R\x83Q\x80\x82\x85\x01R`\0[\x81\x81\x10\x15aQ\xC2W\x85\x81\x01\x83\x01Q\x85\x82\x01`@\x01R\x82\x01aQ\xA6V[\x81\x81\x11\x15aQ\xD4W`\0`@\x83\x87\x01\x01R[P`\x1F\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x92\x90\x92\x01`@\x01\x93\x92PPPV[`\0\x80\x83`\x1F\x84\x01\x12aR\x1AW`\0\x80\xFD[P\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15aR2W`\0\x80\xFD[` \x83\x01\x91P\x83` \x82\x85\x01\x01\x11\x15a/'W`\0\x80\xFD[`\0\x80`\0\x80`\0``\x86\x88\x03\x12\x15aRbW`\0\x80\xFD[\x855g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15aRzW`\0\x80\xFD[aR\x86\x89\x83\x8A\x01aR\x08V[\x90\x97P\x95P` \x88\x015\x91P\x80\x82\x11\x15aR\x9FW`\0\x80\xFD[PaR\xAC\x88\x82\x89\x01aR\x08V[\x96\x99\x95\x98P\x96`@\x015\x94\x93PPPPV[\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`\x11`\x04R`$`\0\xFD[`\0\x82\x19\x82\x11\x15aS\0WaS\0aR\xBEV[P\x01\x90V[\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`2`\x04R`$`\0\xFD[\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`\x12`\x04R`$`\0\xFD[`\0c\xFF\xFF\xFF\xFF\x80\x83\x16\x81\x85\x16\x80\x83\x03\x82\x11\x15aS\x82WaS\x82aR\xBEV[\x01\x94\x93PPPPV[`\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x81\x16\x90\x83\x16\x81\x81\x10\x15aS\xACWaS\xACaR\xBEV[\x03\x93\x92PPPV[`\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x83\x16\x81\x85\x16\x81\x83\x04\x81\x11\x82\x15\x15\x16\x15aS\xDBWaS\xDBaR\xBEV[\x02\x94\x93PPPPV[`\0\x82\x82\x10\x15aS\xF6WaS\xF6aR\xBEV[P\x03\x90V[`\0\x80`@\x83\x85\x03\x12\x15aT\x0EW`\0\x80\xFD[PP\x80Q` \x90\x91\x01Q\x90\x92\x90\x91PV\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x608060405234801561001057600080fd5b506004361061004c5760003560e01c80631219a4e41461005157806354fd4d50146100865780637dc0d1d0146100cf578063e14ced3214610113575b600080fd5b7f00000000000000000000000000000000000000000000000000000000000000005b6040519081526020015b60405180910390f35b6100c26040518060400160405280600581526020017f312e392e3000000000000000000000000000000000000000000000000000000081525081565b60405161007d9190615195565b60405173ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016815260200161007d565b61007361012136600461524a565b60006101308686868686610143565b905061013a61066b565b95945050505050565b604080516101e081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810182905261012081018290526101408101829052610160810182905261018081018290526101a081018290526101c081018290526101c361512b565b6000608083146101d257600080fd5b61026082146101e057600080fd5b604051610760146101f057600080fd5b608489146101fd57600080fd5b610164871461020b57600080fd5b508735608052602088013560a052604088013560c090811c81526048890135811c60e052605089013560f890811c6101005260518a0135821c6101205260598a0135821c6101405260618a0135811c6101605260628a0135811c61018081905260638b0135831c6101a052606b8b0135831c6101c05260738b013590911c6101e05260748a01356102005260948a01356102205260b48a013590911c610240526102b4816107b5565b826101000151156102d1576102c76107f9565b935050505061013a565b7fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb58361018001511480156103085750826101600151155b8061034457507fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5836101a0015114801561034457508261016001515b156103d5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f4d49505336343a206163746976652074687265616420737461636b206973206560448201527f6d7074790000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6101208301805160010167ffffffffffffffff1690526103f482610919565b6103fe8383610a3d565b8160400151156104195761041183610ae1565b6102c76107f9565b620186a067ffffffffffffffff1683610140015167ffffffffffffffff161061044f576104468383610b6c565b506102c76107f9565b6101408301805160010167ffffffffffffffff16905260006102ae905060008060006104848660600151886000015186610d4a565b9250925092508163ffffffff1660001480156104a657508063ffffffff16600c145b156104c2576104b489610dd0565b97505050505050505061013a565b63ffffffff8216603014806104dd575063ffffffff82166038145b156104ee576104b487878585611fc5565b63ffffffff821660341480610509575063ffffffff8216603c145b1561051a576104b487878585611fc5565b60006105a4876040805160808101825260008082526020820181905291810182905260608101919091526040518060800160405280836060015167ffffffffffffffff168152602001836080015167ffffffffffffffff1681526020018360a0015167ffffffffffffffff1681526020018360c0015167ffffffffffffffff168152509050919050565b6040805160e080820183528382528a015160208201528a5191810191909152610a2e606082015263ffffffff808716608083015285811660a0830152841660c08201529091506000806105f68361227a565b918d52855167ffffffffffffffff9081166060808f01919091526020880151821660808f01526040880151821660a08f01528701511660c08d01529250905061063d61282f565b811561064d5761064d8b826128ec565b6106556107f9565b9b50505050505050505050505095945050505050565b604080516101e0808201835260008083526020830181905292820183905260608201839052608080830184905260a0830184905260c0830184905260e08301849052610100830184905261012083018490526101408301849052610160830184905261018083018490526101a083018490526101c0909201839052519091906106f957816101800151610700565b816101a001515b90507fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb581036107b1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602f60248201527f4d49505336343a20706f73742d7374617465206163746976652074687265616460448201527f20737461636b20697320656d707479000000000000000000000000000000000060648201526084016103cc565b5050565b60018163ffffffff1611156107f6576040517f0136cc7600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b60408051608051815260a051602082015260d8519181019190915260f851604882015261011f5160508201526101385160518201526101585160598201526101605161017f5160618301526101805161019f5160628401526101b85160638401526101d851606b8401526101ff5160738401526102005160748401526102205160948401526102585160b4840152600060bc8085018281529194929361026093929183a06000935084600181146108b357600394506108db565b8180156108cb57600181146108d457600295506108d9565b600095506108d9565b600195505b505b505081900390207effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1660f89190911b179150610915816107b5565b5090565b3661092861012a6101646152ed565b8110156109b7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f4d49505336343a20696e73756666696369656e742063616c6c6461746120666f60448201527f7220746872656164207769746e6573730000000000000000000000000000000060648201526084016103cc565b6101643560c090811c835261016c3560f890811c602085015261016d35901c604084015261016e35811c606084015261017635811c608084015261017e35811c60a084015261018635811c9083015260e082015161018e9060005b6020811015610a3657823560c01c8252600890920191602090910190600101610a12565b5050505050565b6000610a50610a4a612924565b836129d7565b90506000836101600151610a6957836101800151610a70565b836101a001515b9050818114610adb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f4d49505336343a20696e76616c696420746872656164207769746e657373000060448201526064016103cc565b50505050565b80610160015115610aff57610af4612924565b6101a0820152610b0e565b610b07612924565b6101808201525b6000816101600151610b2557816101800151610b2c565b816101a001515b90507fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb58103610b6057610160820180511590525b50600061014090910152565b600082610160015115610c30577fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5836101a0015103610c07576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4d49505336343a20656d7074792072696768742074687265616420737461636b60448201526064016103cc565b610c0f612924565b6101a0840152610180830151610c2590836129d7565b610180840152610ce3565b7fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb583610180015103610cbe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f4d49505336343a20656d707479206c6566742074687265616420737461636b0060448201526064016103cc565b610cc6612924565b6101808401526101a0830151610cdc90836129d7565b6101a08401525b6000836101600151610cfa57836101800151610d01565b836101a001515b90507fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb58103610d395761016084018051159052600191505b506000610140909301929092525090565b600080806003861615610d89576040517f3f8200bc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000610da08667fffffffffffffff8891687612a19565b9050610db0878260046000612a6b565b9350601a8463ffffffff16901c925083603f169150505b93509350939050565b604080516101e081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810182905261012081018290526101408101829052610160810182905261018081018290526101a081018290526101c08101829052610e5061512b565b608091506102609050600080600080610e6c8560e00151612abb565b935093509350935060008061139163ffffffff168667ffffffffffffffff1603610eb857610e9f85858a60600151612ad7565b67ffffffffffffffff1660608b01529092509050611ebf565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec6c67ffffffffffffffff871601610ef757654000000000009150611ebf565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec4167ffffffffffffffff87160161114e5762050f0067ffffffffffffffff861614610f61576001610100890152600260e0890152610f536107f9565b9a9950505050505050505050565b50506101c08601516000610f7361512b565b6101c089015167ffffffffffffffff9081168252600060208301819052604083018190526080808b018051841660608601525160040183169084015260a0808b015183169084015260c0808b0151909216918301919091525b6020811015611022578860e001518160208110610feb57610feb615305565b60200201518260e00151826020811061100657611006615305565b67ffffffffffffffff9092166020929092020152600101610fcc565b5060e0818101805167ffffffffffffffff8881166103a09092019190915281516000604091820181905292519093018290526101c08c018051600101821690528251608080820185528382526020808301859052828601859052606092830185905285518083018752838f015185168152918e015184169082015260a08d015183169481019490945260c08c0151909116908301529060e0808b015167ffffffffffffffff80881660408301528087169190920152602082018051808316845260040190911690529050805167ffffffffffffffff9081166060808c01919091526020830151821660808c01526040830151821660a08c01528201511660c08a015261112c61282f565b6111368a83612b89565b61113e6107f9565b9c9b505050505050505050505050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffebab67ffffffffffffffff8716016111a057600161010089015260ff851660e089015261119861282f565b610f536107f9565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec7867ffffffffffffffff87160161127a57604080516101208101825267ffffffffffffffff8781168252868116602080840191909152868216838501528b01516060830152918a0151909116608082015260a081018b90527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1660c0820152610a2e60e0820152885161010082015261126e8982612bcf565b9093509150611ebf9050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec7767ffffffffffffffff871601611322576040805160e08101825267ffffffffffffffff8781168252868116602080840191909152868216838501528b01516060830152918a01519091166080820152610a2e60a0820152885160c082015261130281612c15565b67ffffffffffffffff1660408d015260208c01529093509150611ebf9050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec3267ffffffffffffffff8716016113675761135d8585612da7565b9092509050611ebf565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffebc667ffffffffffffffff8716016113a357505084516000611ebf565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec3e67ffffffffffffffff87160161140c576001604088015260ff851660208801526113ed88612f2e565b1561140457600161010089015260ff851660e08901525b61119861282f565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffebb667ffffffffffffffff87160161152d5767fffffffffffffffc85167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8067ffffffffffffffff8616016114cd57600061148482612fb1565b90508463ffffffff808316908216146114ab57600b945067ffffffffffffffff93506114c6565b6114b58b8b61303b565b9d9c50505050505050505050505050565b5050611527565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f67ffffffffffffffff86160161151757611508898961303b565b9b9a5050505050505050505050565b6016925067ffffffffffffffff91505b50611ebf565b67ffffffffffffffff861661139f1480611552575067ffffffffffffffff86166113aa145b1561156157610f53888861303b565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec7667ffffffffffffffff8716016115a557506009905067ffffffffffffffff611ebf565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeb9a67ffffffffffffffff8716016117435767ffffffffffffffff851615806115f7575067ffffffffffffffff85166001145b156117305750600090508080807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff67ffffffffffffffff8816016116575750506101208801516298968067ffffffffffffffff9091168181049190066064025b895167fffffffffffffff88716906116729082610a2e613151565b6116a8576040517f8e77b2b700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6116b581610a2e8561315e565b8b526116c18b826128ec565b8a516116d390600883016111ae613151565b611709576040517f834c4cd400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611719600882016111ae8461315e565b8b526117288b600883016128ec565b505050611ebf565b506016905067ffffffffffffffff611ebf565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec5267ffffffffffffffff87160161177f57506000905080611ebf565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeb3f67ffffffffffffffff8716016117f7576117d97f000000000000000000000000000000000000000000000000000000000000000061322d565b51156117f2576117ea88868661324e565b8a5290925090505b611ebf565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec6d67ffffffffffffffff87160115611ebf577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec6e67ffffffffffffffff87160115611ebf577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffebb467ffffffffffffffff87160115611ebf577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec5d67ffffffffffffffff87160115611ebf577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec6a67ffffffffffffffff87160115611ebf577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffebf767ffffffffffffffff87160115611ebf577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec6b67ffffffffffffffff87160115611ebf577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeb4f67ffffffffffffffff87160115611ebf577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec7567ffffffffffffffff87160115611ebf577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec6867ffffffffffffffff87160115611ebf577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec7467ffffffffffffffff87160115611ebf577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec7367ffffffffffffffff87160115611ebf577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeb8167ffffffffffffffff87160115611ebf577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec2167ffffffffffffffff87160115611ebf577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeb7767ffffffffffffffff87160115611ebf577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec6967ffffffffffffffff87160115611ebf577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeb5b67ffffffffffffffff87160115611ebf577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeb5967ffffffffffffffff87160115611ebf577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeba867ffffffffffffffff87160115611ebf577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeb6867ffffffffffffffff87160115611ebf577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec3b67ffffffffffffffff87160115611ebf577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec1467ffffffffffffffff87160115611ebf577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec1267ffffffffffffffff87160115611ebf577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec5e67ffffffffffffffff87160115611ebf577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeb9767ffffffffffffffff87160115611ebf577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec5467ffffffffffffffff87160115611ebf577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeba067ffffffffffffffff87160115611ebf577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeb9f67ffffffffffffffff87160115611ebf577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeb9c67ffffffffffffffff87160115611ebf577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec1967ffffffffffffffff87160115611ebf577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec7067ffffffffffffffff87160115611ebf577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeb5c67ffffffffffffffff871601611e5d5760808416600003611e5457506016905067ffffffffffffffff611ebf565b60649150611ebf565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f4d49505336343a20756e696d706c656d656e7465642073797363616c6c00000060448201526064016103cc565b6000611f49886040805160808101825260008082526020820181905291810182905260608101919091526040518060800160405280836060015167ffffffffffffffff168152602001836080015167ffffffffffffffff1681526020018360a0015167ffffffffffffffff1681526020018360c0015167ffffffffffffffff168152509050919050565b60e0808a015167ffffffffffffffff80871660408301528086169190920152602082018051808316845260040190911690529050805167ffffffffffffffff9081166060808b01919091526020830151821660808b01526040830151821660a08b01528201511660c0890152611fbd61282f565b6115086107f9565b60e08301516000908190601f601586901c1660208110611fe757611fe7615305565b60200201519050601f601085901c166000612001866133db565b830190506001600463ffffffff871660341480612024575063ffffffff8716603c145b1561203157506002905060085b885160009063ffffffff891660301480612051575063ffffffff89166034145b1561208b576120638c868560016133f2565b60ff851660808e015267ffffffffffffffff80871660a08f0152821660c08e0152915061218e565b63ffffffff8916603814806120a6575063ffffffff8916603c145b1561215c578360ff168c6080015160ff161480156120db57508067ffffffffffffffff168c60c0015167ffffffffffffffff16145b80156120fe57508467ffffffffffffffff168c60a0015167ffffffffffffffff16145b1561215357600060808d0181905260a08d0181905260c08d015260008b60e001518763ffffffff166020811061213657612136615305565b602002015190506121498d878684613432565b600192505061218e565b6000915061218e565b6040517fecf79d0d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006122188c6040805160808101825260008082526020820181905291810182905260608101919091526040518060800160405280836060015167ffffffffffffffff168152602001836080015167ffffffffffffffff1681526020018360a0015167ffffffffffffffff1681526020018360c0015167ffffffffffffffff168152509050919050565b9050612232818d60e001518963ffffffff1686600161348c565b805167ffffffffffffffff9081166060808f01919091526020830151821660808f01526040830151821660a08f01528201511660c08d015261227261282f565b6114b56107f9565b604081015160a0820151600090819063ffffffff16600214806122a757508360a0015163ffffffff166003145b1561230b57608084015160009060021b630ffffffc166122cc63f00000006020613570565b86600001516020015116179050612305858660a0015163ffffffff166002146122f657601f6122f9565b60005b63ffffffff16836135ea565b50612828565b60808401516020808601516000928392601f601083901c8116939260151c1690811061233957612339615305565b6020020151925060008190508760a0015163ffffffff166027148061236857508760a0015163ffffffff16601a145b8061237d57508760a0015163ffffffff16601b145b156123b15787602001518267ffffffffffffffff16602081106123a2576123a2615305565b602002015192508190506124ee565b60a088015163ffffffff1615806123d257508760a0015163ffffffff16601c145b156124115787602001518267ffffffffffffffff16602081106123f7576123f7615305565b60200201516080890151909350600b1c601f1690506124ee565b60208860a0015163ffffffff161015612485578760a0015163ffffffff16600c148061244757508760a0015163ffffffff16600d145b8061245c57508760a0015163ffffffff16600e145b1561247157608088015161ffff1692506124ee565b61247e88608001516133db565b92506124ee565b60288860a0015163ffffffff161015806124a957508760a0015163ffffffff166022145b806124be57508760a0015163ffffffff166026145b156124ee5787602001518267ffffffffffffffff16602081106124e3576124e3615305565b602002015192508190505b60048860a0015163ffffffff1610158015612513575060088860a0015163ffffffff16105b8061252857508760a0015163ffffffff166001145b156125545761254b886000015189602001518a60a001518b6080015186896136d4565b50505050612828565b600067ffffffffffffffff9050600060208a60a0015163ffffffff16101580612587575060a08a015163ffffffff16601a145b8061259c575060a08a015163ffffffff16601b145b15612604576125ae8a608001516133db565b86019550600067fffffffffffffff8871690506125d48b60400151828d60600151612a19565b915060288b60a0015163ffffffff1610612602578a60a0015163ffffffff1660371461260257809250600093505b505b60006040518060c001604052808c6080015163ffffffff1681526020018c60a0015163ffffffff1681526020018c60c0015163ffffffff1681526020018867ffffffffffffffff1681526020018767ffffffffffffffff1681526020018367ffffffffffffffff168152509050600067ffffffffffffffff61268583613947565b60a08e01519116915060209063ffffffff161580156126af575060088d60c0015163ffffffff1610155b80156126ce57508067ffffffffffffffff168d60c0015163ffffffff16105b156127de578c60c0015163ffffffff16600814806126f657508c60c0015163ffffffff166009145b1561272e576127208d8e60c0015163ffffffff16600814612717578761271a565b60005b8b6135ea565b505050505050505050612828565b8c60c0015163ffffffff16600a0361275f578c5160208e01516127209190888c67ffffffffffffffff8d161561348c565b8c60c0015163ffffffff16600b03612791578c5160208e01516127209190888c67ffffffffffffffff8d16151561348c565b60108d60c0015163ffffffff16101580156127bf57508067ffffffffffffffff168d60c0015163ffffffff16105b156127de576127208d600001518e602001518f60c001518c8c8b6145c1565b67ffffffffffffffff85811614612808576127fe858e606001518461315e565b9b5060019a508499505b61281e8d600001518e602001518885600161348c565b5050505050505050505b9193909250565b604080516101e081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810182905261012081018290526101408101829052610160810182905261018081018290526101a081018290526101c08101919091526128b061512b565b506080905061026060006128c5610a4a612924565b9050826101600151156128df576101a08301819052505050565b6101808301819052505050565b60a082015167fffffffffffffff81667ffffffffffffffff8216036107b15760006080830181905260a0830181905260c08301525050565b61028e353661293661012a6020615363565b6129489063ffffffff166101646152ed565b811015610915576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f4d49505336343a20696e73756666696369656e742063616c6c6461746120666f60448201527f7220746872656164207769746e6573730000000000000000000000000000000060648201526084016103cc565b6000806129e383614b9b565b60408051602081018790529081018290529091506060016040516020818303038152906040528051906020012091505092915050565b600080612a27858585614c24565b909250905080612a63576040517f8e77b2b700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b509392505050565b600080600080612a7b8887614cfc565b925092509250828267ffffffffffffffff168867ffffffffffffffff16901c1693508415612ab057612aad8482613570565b93505b505050949350505050565b6040810151608082015160a083015160c08401515b9193509193565b6000808284610fff811615612af157610fff811661100003015b8667ffffffffffffffff16600003612b7b57849350908101906560000000000067ffffffffffffffff83161180612b3b57508467ffffffffffffffff168267ffffffffffffffff16105b80612b5957508567ffffffffffffffff168167ffffffffffffffff16105b15612b7657506016925067ffffffffffffffff9150839050610dc7565b612b7f565b8693505b5093509350939050565b81610160015115612bae57612ba3826101a00151826129d7565b6101a0830152610b60565b612bbd826101800151826129d7565b61018083015250600061014090910152565b600080600080612bde85614d80565b918b5267ffffffffffffffff90921660408b0152929650909450925090508115612c0c57612c0c86826128ec565b50509250929050565b6060810151608082015182516000928392909167ffffffffffffffff1660011480612c4b5750845167ffffffffffffffff166002145b80612c615750845167ffffffffffffffff166004145b15612c725784604001519350612ad0565b845167ffffffffffffffff167ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa01612d4c576000612cc78660c0015167fffffffffffffff88860200151168860a00151612a19565b60608701516020880151604089015192935090916007821660080381811015612cee578091505b67ffffffffffffffff821660408b018190529850600880830294851b600190951b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0192909103029390931c9290921617925060009150612ad09050565b845167ffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9c01612d9257600b935067ffffffffffffffff9250612ad0565b60099567ffffffffffffffff95509193509150565b60008067ffffffffffffffff8316600103612e675767ffffffffffffffff84161580612ddd575067ffffffffffffffff84166001145b80612df2575067ffffffffffffffff84166002145b80612e07575067ffffffffffffffff84166005145b80612e1c575067ffffffffffffffff84166003145b80612e31575067ffffffffffffffff84166006145b80612e46575067ffffffffffffffff84166004145b15612e545760009150612f27565b506009905067ffffffffffffffff612f27565b8267ffffffffffffffff16600303612f185767ffffffffffffffff84161580612e9a575067ffffffffffffffff84166005145b80612eaf575067ffffffffffffffff84166003145b15612ebd5760009150612f27565b67ffffffffffffffff841660011480612ee0575067ffffffffffffffff84166002145b80612ef5575067ffffffffffffffff84166006145b80612f0a575067ffffffffffffffff84166004145b15612e545760019150612f27565b506016905067ffffffffffffffff5b9250929050565b600080826101600151612f4657826101a00151612f4d565b8261018001515b905060007fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5612f7a612924565b1490507fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb582148015612fa95750805b949350505050565b604080516101e081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810182905261012081018290526101408101829052610160810182905261018081018290526101a081018290526101c081018290525060806000612fa982856004846133f2565b60008080806130c8856040805160808101825260008082526020820181905291810182905260608101919091526040518060800160405280836060015167ffffffffffffffff168152602001836080015167ffffffffffffffff1681526020018360a0015167ffffffffffffffff1681526020018360c0015167ffffffffffffffff168152509050919050565b60e08087015167ffffffffffffffff80871660408301528086169190920152602082018051808316845260040190911690529050805167ffffffffffffffff9081166060808801919091526020830151821660808801526040830151821660a08801528201511660c086015261313e8686610b6c565b506131476107f9565b9695505050505050565b600061013a848484614c24565b60006131698361505e565b600784161561319d576040517fe6c4247b000000000000000000000000000000000000000000000000000000008152600481fd5b6020830192601f851660180360031b83811b913567ffffffffffffffff90911b191617600585901c603b60005b818110156132215760208701963583821c60011680156131f1576001811461320657613217565b60008681526020839052604090209550613217565b600082815260208790526040902095505b50506001016131ca565b50919695505050505050565b6040805160208101909152600081526008821061324957600181525b919050565b6000808067fffffffffffffff885168161328161326f61012a6101646152ed565b61327a9060206152ed565b6107800190565b9050600061329489600001518484612a19565b905060006133048a610120015160008082679e3779b97f4a7c15019050601e8167ffffffffffffffff16901c811867bf58476d1ce4e5b9029050601b8167ffffffffffffffff16901c81186794d049bb133111eb029050601f8167ffffffffffffffff16901c8118915050919050565b90506000613312858b61538b565b9050600061332182600861538b565b90508967ffffffffffffffff808216908316101561333c5750805b6000600161334b8360086153b4565b67ffffffffffffffff166001901b61336391906153e4565b905061337082600861538b565b61337b9060086153b4565b67ffffffffffffffff91821691161b6133958460086153b4565b67ffffffffffffffff91821691161c80198616858216176133b789898361315e565b99506133c38f8a6128ec565b50909d60009d50979b50969950505050505050505050565b60006133ec61ffff83166010613570565b92915050565b600067fffffffffffffff884168161341161326f61012a6101646152ed565b9050600061342488600001518484612a19565b9050612aad87828888612a6b565b67fffffffffffffff88316600061345061326f61012a6101646152ed565b9050600061346387600001518484612a19565b90506000613473878388886150f3565b905061348084848361315e565b90975250505050505050565b60208367ffffffffffffffff1610613500576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4d49505336343a2076616c69642072656769737465720000000000000000000060448201526064016103cc565b67ffffffffffffffff8316158015906135165750805b1561354d5781848467ffffffffffffffff166020811061353857613538615305565b67ffffffffffffffff90921660209290920201525b5050505060208101805167ffffffffffffffff8082169093526004019091169052565b6000600167ffffffffffffffff8481167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff85810183169190911c83161515926040869003831681901b820192861692831b921b01826135d05760006135d2565b815b90861667ffffffffffffffff16179250505092915050565b8251805160209091015167ffffffffffffffff9081166004909201161461366d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f4d49505336343a206a756d7020696e2064656c617920736c6f7400000000000060448201526064016103cc565b8251805160208083015167ffffffffffffffff908116909352855184841691015290831615610adb578060080184602001518467ffffffffffffffff16602081106136ba576136ba615305565b67ffffffffffffffff909216602092909202015250505050565b6000866000015160040167ffffffffffffffff16876020015167ffffffffffffffff161461375e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f4d49505336343a206272616e636820696e2064656c617920736c6f740000000060448201526064016103cc565b8463ffffffff166004148061377957508463ffffffff166005145b15613804576000868467ffffffffffffffff166020811061379c5761379c615305565b602002015190508067ffffffffffffffff168367ffffffffffffffff161480156137cc57508563ffffffff166004145b806137fc57508067ffffffffffffffff168367ffffffffffffffff16141580156137fc57508563ffffffff166005145b9150506138de565b8463ffffffff166006036138215760008260070b131590506138de565b8463ffffffff1660070361383d5760008260070b1390506138de565b8463ffffffff166001036138de57601f601085901c1660008190036138665760008360070b1291505b8063ffffffff1660100361389457875160080167ffffffffffffffff166103e08801526000600784900b1291505b8063ffffffff166001036138ad5760008360070b121591505b8063ffffffff166011036138dc57875160080167ffffffffffffffff166103e08801526000600784900b121591505b505b8651602088015167ffffffffffffffff168852811561392757600261390861ffff87166010613570565b67ffffffffffffffff90811690911b820160040116602089015261393d565b60208801805160040167ffffffffffffffff1690525b5050505050505050565b8051602082015160408301516060840151608085015160a0860151600095949392919063ffffffff85161580613995575060088563ffffffff16101580156139955750600f8563ffffffff16105b806139a657508463ffffffff166018145b806139b757508463ffffffff166019145b156140eb578460088114613a0a5760098114613a1357600a8114613a1c57600b8114613a2557600c8114613a2e57600d8114613a3757600e8114613a405760188114613a495760198114613a5257613a57565b60209450613a57565b60219450613a57565b602a9450613a57565b602b9450613a57565b60249450613a57565b60259450613a57565b60269450613a57565b602c9450613a57565b602d94505b508363ffffffff16600003613a9857601f600687901c16613a8b67ffffffffffffffff8416821b63ffffffff166020613570565b9998505050505050505050565b8363ffffffff16600203613acc57613ac063ffffffff8316601f600689901c161c6020613570565b98975050505050505050565b8363ffffffff16600303613afb57601f600687901c16613a8b63ffffffff848116831c90602084900316613570565b8363ffffffff16600403613b2a57601f8316613a8b67ffffffffffffffff8416821b63ffffffff166020613570565b8363ffffffff16600603613b4e57613ac063ffffffff8316601f85161c6020613570565b8363ffffffff16600703613b7657601f8316613a8b63ffffffff8416821c6020839003613570565b8363ffffffff16600803613b905750909695505050505050565b8363ffffffff16600903613baa5750909695505050505050565b8363ffffffff16600a03613bc45750909695505050505050565b8363ffffffff16600b03613bde5750909695505050505050565b8363ffffffff16600c03613bf85750909695505050505050565b8363ffffffff16600f03613c125750909695505050505050565b8363ffffffff16601003613c2c5750909695505050505050565b8363ffffffff16601103613c465750909695505050505050565b8363ffffffff16601203613c605750909695505050505050565b8363ffffffff16601303613c7a5750909695505050505050565b8363ffffffff16601403613c9357509695505050505050565b8363ffffffff16601603613cac57509695505050505050565b8363ffffffff16601703613cc557509695505050505050565b8363ffffffff16601803613cdf5750909695505050505050565b8363ffffffff16601903613cf95750909695505050505050565b8363ffffffff16601a03613d135750909695505050505050565b8363ffffffff16601b03613d2d5750909695505050505050565b8363ffffffff16601c03613d475750909695505050505050565b8363ffffffff16601d03613d615750909695505050505050565b8363ffffffff16601e03613d7b5750909695505050505050565b8363ffffffff16601f03613d955750909695505050505050565b8363ffffffff16602003613db657613ac082840163ffffffff166020613570565b8363ffffffff16602103613dd757613ac082840163ffffffff166020613570565b8363ffffffff16602203613df857613ac082840363ffffffff166020613570565b8363ffffffff16602303613e1957613ac082840363ffffffff166020613570565b8363ffffffff16602403613e3257501695945050505050565b8363ffffffff16602503613e4b57501795945050505050565b8363ffffffff16602603613e6457501895945050505050565b8363ffffffff16602703613e7e5750171995945050505050565b8363ffffffff16602a03613eb2578160070b8360070b12613ea0576000613ea3565b60015b60ff1698975050505050505050565b8363ffffffff16602b03613ee2578167ffffffffffffffff168367ffffffffffffffff1610613ea0576000613ea3565b8363ffffffff16602c03613efb57500195945050505050565b8363ffffffff16602d03613f1457500195945050505050565b8363ffffffff16602e03613f2e5750900395945050505050565b8363ffffffff16602f03613f485750900395945050505050565b8363ffffffff16603803613f77575067ffffffffffffffff1660069490941c601f169390931b95945050505050565b8363ffffffff16603a03613fa6575067ffffffffffffffff1660069490941c601f169390931c95945050505050565b8363ffffffff16603b03613fce575060070b60069490941c601f169390931d95945050505050565b8363ffffffff16603c0361400d5760068663ffffffff16901c601f1660200163ffffffff168267ffffffffffffffff16901b9650505050505050919050565b8363ffffffff16603e0361404c5760068663ffffffff16901c601f1660200163ffffffff168267ffffffffffffffff16901c9650505050505050919050565b8363ffffffff16603f036140845760068663ffffffff16901c601f1660200163ffffffff168260070b901d9650505050505050919050565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f4d49505336343a20696e76616c696420696e737472756374696f6e000000000060448201526064016103cc565b614084565b8463ffffffff16601c036141e0578363ffffffff1660020361411a57613ac082840263ffffffff166020613570565b8363ffffffff166020148061413557508363ffffffff166021145b15614184578363ffffffff1660200361414c579119915b60005b6380000000841615614172576801fffffffffffffffe600194851b16930161414f565b63ffffffff1698975050505050505050565b8363ffffffff166024148061419f57508363ffffffff166025145b156140e6578363ffffffff166024036141b6579119915b60005b678000000000000000841615614172576801fffffffffffffffe600194851b1693016141b9565b8463ffffffff16600f0361420757613ac060108367ffffffffffffffff16901b6020613570565b8463ffffffff1660200361422257613ac08382600180612a6b565b8463ffffffff1660210361423e57613ac0838260026001612a6b565b8463ffffffff1660220361428f57600061425c848360046000612a6b565b905063ffffffff80821660086003871602821690811b919081901b81169061150890821987168116908416176020613570565b8463ffffffff166023036142ab57613ac0838260046001612a6b565b8463ffffffff166024036142c757613ac0838260016000612a6b565b8463ffffffff166025036142e357613ac0838260026000612a6b565b8463ffffffff16602603614360576000614301848360046000612a6b565b905063ffffffff80821660038681166008810260180367ffffffffffffffff1692831c939283901c928319881685171691036143425761113e816020613570565b67ffffffff00000000959095169094179a9950505050505050505050565b8463ffffffff1660280361437b57613ac083826001856150f3565b8463ffffffff1660290361439657613ac083826002856150f3565b8463ffffffff16602a036143e95763ffffffff601860039490941b93841681811c67ffffffffffffffff9081166020968716909603811695861b199390931693909116901c1690911b1795945050505050565b8463ffffffff16602b0361440457613ac083826004856150f3565b8463ffffffff16602e03614464576000614422848360046000612a6b565b905067ffffffffffffffff838116600860038716026018039182161b9063ffffffff90811681901b8116908119841681169083161761113e87866004846150f3565b8463ffffffff16601a036144985767ffffffffffffffff90811660039390931b60381692831b921b19161795945050505050565b8463ffffffff16601b036144db5767ffffffffffffffff90811660039390931b60389081169081900382169390931c60089390930181161b161795945050505050565b8463ffffffff166027036145175767ffffffffffffffff908116602060039490941b8416909303169190911c63ffffffff169695505050505050565b8463ffffffff16602c036145505767ffffffffffffffff91821660039390931b60381692831c9190921c19919091161795945050505050565b8463ffffffff16602d0361458f5767ffffffffffffffff603860039490941b8416909303831683811b19919091169190921690911b1795945050505050565b8463ffffffff166037036145a857979650505050505050565b8463ffffffff16603f0361408457509695505050505050565b60008463ffffffff166010036145dc57506060860151614b33565b8463ffffffff166011036145ff5767ffffffffffffffff84166060880152614b33565b8463ffffffff1660120361461857506040860151614b33565b8463ffffffff1660130361463b5767ffffffffffffffff84166040880152614b33565b8463ffffffff166018036146a45760008360030b8560030b02905061466f60208267ffffffffffffffff16901c6020613570565b67ffffffffffffffff16606089015261468f63ffffffff82166020613570565b67ffffffffffffffff16604089015250614b33565b8463ffffffff166019036146de5760008363ffffffff168563ffffffff1602905061466f60208267ffffffffffffffff16901c6020613570565b8463ffffffff16601a036147cc578263ffffffff1660000361475c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4d49505336343a206469766973696f6e206279207a65726f000000000000000060448201526064016103cc565b6147828360030b8560030b8161477457614774615334565b0763ffffffff166020613570565b67ffffffffffffffff1660608801526147b8600384810b9086900b816147aa576147aa615334565b0563ffffffff166020613570565b67ffffffffffffffff166040880152614b33565b8463ffffffff16601b036148ae578263ffffffff1660000361484a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4d49505336343a206469766973696f6e206279207a65726f000000000000000060448201526064016103cc565b6148768363ffffffff168563ffffffff168161486857614868615334565b0663ffffffff166020613570565b67ffffffffffffffff1660608801526147b863ffffffff808516908616816148a0576148a0615334565b0463ffffffff166020613570565b8463ffffffff166014036148d2575067ffffffffffffffff8216603f84161b614b33565b8463ffffffff166016036148f6575067ffffffffffffffff8216603f84161c614b33565b8463ffffffff166017036149145750600782900b603f84161d614b33565b8463ffffffff16601c036149515767ffffffffffffffff600785810b9085900b02600f81900b604090811d831660608b0152911690880152614b33565b8463ffffffff16601d036149865767ffffffffffffffff84811681851602604081811c831660608b0152911690880152614b33565b8463ffffffff16601e03614a58578267ffffffffffffffff16600003614a08576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4d49505336343a206469766973696f6e206279207a65726f000000000000000060448201526064016103cc565b8260070b8460070b81614a1d57614a1d615334565b0767ffffffffffffffff166060880152600783810b9085900b81614a4357614a43615334565b0567ffffffffffffffff166040880152614b33565b8463ffffffff16601f03614b33578267ffffffffffffffff16600003614ada576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4d49505336343a206469766973696f6e206279207a65726f000000000000000060448201526064016103cc565b8267ffffffffffffffff168467ffffffffffffffff1681614afd57614afd615334565b0667ffffffffffffffff908116606089015283811690851681614b2257614b22615334565b0467ffffffffffffffff1660408801525b67ffffffffffffffff821615614b755780868367ffffffffffffffff1660208110614b6057614b60615305565b67ffffffffffffffff90921660209290920201525b50505060208401805167ffffffffffffffff808216909652600401909416909352505050565b60405160188201518152603f8201516008820152605f82015160098201526078820151600a8201526098820151601282015260b8820151601a82015260d8820151602282015260e0820151600091602a8101835b6020811015614c135760188401518252602090930192600890910190600101614bef565b506000815281900390209392505050565b600080614c308361505e565b6007841615614c64576040517fe6c4247b000000000000000000000000000000000000000000000000000000008152600481fd5b602083019235600585901c81603b60005b81811015614ccc5760208801973584821c6001168015614c9c5760018114614cb157614cc2565b60008581526020839052604090209450614cc2565b600082815260208690526040902094505b5050600101614c75565b505087149250508115614cf357601f851660180360031b81901c67ffffffffffffffff1692505b50935093915050565b600080806807fffffffffffffff8600385901b1681614d1c82604061538b565b67ffffffffffffffff9081161c90506000614d3860018861538b565b19881660071690506000614d4d88600861538b565b905088821660006003614d60838561538b565b959c67ffffffffffffffff909616901b9a50949850929650505050505050565b610100810151608082015182516000928392918390819067ffffffffffffffff161561505557865167ffffffffffffffff167ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb01614fc157600067fffffffffffffff888602001511690506000614e01896101000151838b60e00151612a19565b60608a015190915060001a600103614e8357614e7d89606001518a60a0015160408051600093845233602052918152606090922091527effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f01000000000000000000000000000000000000000000000000000000000000001790565b60608a01525b6000808a60c0015173ffffffffffffffffffffffffffffffffffffffff1663e03110e18c606001518d608001516040518363ffffffff1660e01b8152600401614ee092919091825267ffffffffffffffff16602082015260400190565b6040805180830381865afa158015614efc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614f2091906153fb565b60208d015160408e01519294509092509060078216600881900384811015614f46578094505b5083821015614f53578193505b8460088502610100031c9450846008828660080303021b9450600180600883600803021b036001806008878560080303021b03915081198116905085811988161796505050614fa7868e60e001518761315e565b929b50505096890196955060019450919250615055915050565b865167ffffffffffffffff167ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd01614fff5786604001519550615055565b865167ffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9c0161504557600b955067ffffffffffffffff9450615055565b6009955067ffffffffffffffff94505b91939550919395565b3661078082018110156107b1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603160248201527f4d49505336344d656d6f72793a20636865636b2074686174207468657265206960448201527f7320656e6f7567682063616c6c6461746100000000000000000000000000000060648201526084016103cc565b60008060006151028786614cfc565b5067ffffffffffffffff868316811691811691821b9216901b1987161792505050949350505050565b6040805161010081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c081019190915260e08101615171615176565b905290565b6040518061040001604052806020906020820280368337509192915050565b600060208083528351808285015260005b818110156151c2578581018301518582016040015282016151a6565b818111156151d4576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b60008083601f84011261521a57600080fd5b50813567ffffffffffffffff81111561523257600080fd5b602083019150836020828501011115612f2757600080fd5b60008060008060006060868803121561526257600080fd5b853567ffffffffffffffff8082111561527a57600080fd5b61528689838a01615208565b9097509550602088013591508082111561529f57600080fd5b506152ac88828901615208565b96999598509660400135949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008219821115615300576153006152be565b500190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600063ffffffff808316818516808303821115615382576153826152be565b01949350505050565b600067ffffffffffffffff838116908316818110156153ac576153ac6152be565b039392505050565b600067ffffffffffffffff808316818516818304811182151516156153db576153db6152be565b02949350505050565b6000828210156153f6576153f66152be565b500390565b6000806040838503121561540e57600080fd5b50508051602090910151909290915056fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`\x046\x10a\0LW`\x005`\xE0\x1C\x80c\x12\x19\xA4\xE4\x14a\0QW\x80cT\xFDMP\x14a\0\x86W\x80c}\xC0\xD1\xD0\x14a\0\xCFW\x80c\xE1L\xED2\x14a\x01\x13W[`\0\x80\xFD[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0[`@Q\x90\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[a\0\xC2`@Q\x80`@\x01`@R\x80`\x05\x81R` \x01\x7F1.9.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\x81RP\x81V[`@Qa\0}\x91\x90aQ\x95V[`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x81R` \x01a\0}V[a\0sa\x01!6`\x04aRJV[`\0a\x010\x86\x86\x86\x86\x86a\x01CV[\x90Pa\x01:a\x06kV[\x95\x94PPPPPV[`@\x80Qa\x01\xE0\x81\x01\x82R`\0\x80\x82R` \x82\x01\x81\x90R\x91\x81\x01\x82\x90R``\x81\x01\x82\x90R`\x80\x81\x01\x82\x90R`\xA0\x81\x01\x82\x90R`\xC0\x81\x01\x82\x90R`\xE0\x81\x01\x82\x90Ra\x01\0\x81\x01\x82\x90Ra\x01 \x81\x01\x82\x90Ra\x01@\x81\x01\x82\x90Ra\x01`\x81\x01\x82\x90Ra\x01\x80\x81\x01\x82\x90Ra\x01\xA0\x81\x01\x82\x90Ra\x01\xC0\x81\x01\x82\x90Ra\x01\xC3aQ+V[`\0`\x80\x83\x14a\x01\xD2W`\0\x80\xFD[a\x02`\x82\x14a\x01\xE0W`\0\x80\xFD[`@Qa\x07`\x14a\x01\xF0W`\0\x80\xFD[`\x84\x89\x14a\x01\xFDW`\0\x80\xFD[a\x01d\x87\x14a\x02\x0BW`\0\x80\xFD[P\x875`\x80R` \x88\x015`\xA0R`@\x88\x015`\xC0\x90\x81\x1C\x81R`H\x89\x015\x81\x1C`\xE0R`P\x89\x015`\xF8\x90\x81\x1Ca\x01\0R`Q\x8A\x015\x82\x1Ca\x01 R`Y\x8A\x015\x82\x1Ca\x01@R`a\x8A\x015\x81\x1Ca\x01`R`b\x8A\x015\x81\x1Ca\x01\x80\x81\x90R`c\x8B\x015\x83\x1Ca\x01\xA0R`k\x8B\x015\x83\x1Ca\x01\xC0R`s\x8B\x015\x90\x91\x1Ca\x01\xE0R`t\x8A\x015a\x02\0R`\x94\x8A\x015a\x02 R`\xB4\x8A\x015\x90\x91\x1Ca\x02@Ra\x02\xB4\x81a\x07\xB5V[\x82a\x01\0\x01Q\x15a\x02\xD1Wa\x02\xC7a\x07\xF9V[\x93PPPPa\x01:V[\x7F\xAD2(\xB6v\xF7\xD3\xCDB\x84\xA5D?\x17\xF1\x96+6\xE4\x91\xB3\n@\xB2@XI\xE5\x97\xBA_\xB5\x83a\x01\x80\x01Q\x14\x80\x15a\x03\x08WP\x82a\x01`\x01Q\x15[\x80a\x03DWP\x7F\xAD2(\xB6v\xF7\xD3\xCDB\x84\xA5D?\x17\xF1\x96+6\xE4\x91\xB3\n@\xB2@XI\xE5\x97\xBA_\xB5\x83a\x01\xA0\x01Q\x14\x80\x15a\x03DWP\x82a\x01`\x01Q[\x15a\x03\xD5W`@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\x82\x01R`$\x80\x82\x01R\x7FMIPS64: active thread stack is e`D\x82\x01R\x7Fmpty\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`d\x82\x01R`\x84\x01[`@Q\x80\x91\x03\x90\xFD[a\x01 \x83\x01\x80Q`\x01\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90Ra\x03\xF4\x82a\t\x19V[a\x03\xFE\x83\x83a\n=V[\x81`@\x01Q\x15a\x04\x19Wa\x04\x11\x83a\n\xE1V[a\x02\xC7a\x07\xF9V[b\x01\x86\xA0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x83a\x01@\x01Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x10a\x04OWa\x04F\x83\x83a\x0BlV[Pa\x02\xC7a\x07\xF9V[a\x01@\x83\x01\x80Q`\x01\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90R`\0a\x02\xAE\x90P`\0\x80`\0a\x04\x84\x86``\x01Q\x88`\0\x01Q\x86a\rJV[\x92P\x92P\x92P\x81c\xFF\xFF\xFF\xFF\x16`\0\x14\x80\x15a\x04\xA6WP\x80c\xFF\xFF\xFF\xFF\x16`\x0C\x14[\x15a\x04\xC2Wa\x04\xB4\x89a\r\xD0V[\x97PPPPPPPPa\x01:V[c\xFF\xFF\xFF\xFF\x82\x16`0\x14\x80a\x04\xDDWPc\xFF\xFF\xFF\xFF\x82\x16`8\x14[\x15a\x04\xEEWa\x04\xB4\x87\x87\x85\x85a\x1F\xC5V[c\xFF\xFF\xFF\xFF\x82\x16`4\x14\x80a\x05\tWPc\xFF\xFF\xFF\xFF\x82\x16`<\x14[\x15a\x05\x1AWa\x04\xB4\x87\x87\x85\x85a\x1F\xC5V[`\0a\x05\xA4\x87`@\x80Q`\x80\x81\x01\x82R`\0\x80\x82R` \x82\x01\x81\x90R\x91\x81\x01\x82\x90R``\x81\x01\x91\x90\x91R`@Q\x80`\x80\x01`@R\x80\x83``\x01Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81R` \x01\x83`\x80\x01Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81R` \x01\x83`\xA0\x01Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81R` \x01\x83`\xC0\x01Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81RP\x90P\x91\x90PV[`@\x80Q`\xE0\x80\x82\x01\x83R\x83\x82R\x8A\x01Q` \x82\x01R\x8AQ\x91\x81\x01\x91\x90\x91Ra\n.``\x82\x01Rc\xFF\xFF\xFF\xFF\x80\x87\x16`\x80\x83\x01R\x85\x81\x16`\xA0\x83\x01R\x84\x16`\xC0\x82\x01R\x90\x91P`\0\x80a\x05\xF6\x83a\"zV[\x91\x8DR\x85Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x81\x16``\x80\x8F\x01\x91\x90\x91R` \x88\x01Q\x82\x16`\x80\x8F\x01R`@\x88\x01Q\x82\x16`\xA0\x8F\x01R\x87\x01Q\x16`\xC0\x8D\x01R\x92P\x90Pa\x06=a(/V[\x81\x15a\x06MWa\x06M\x8B\x82a(\xECV[a\x06Ua\x07\xF9V[\x9BPPPPPPPPPPPP\x95\x94PPPPPV[`@\x80Qa\x01\xE0\x80\x82\x01\x83R`\0\x80\x83R` \x83\x01\x81\x90R\x92\x82\x01\x83\x90R``\x82\x01\x83\x90R`\x80\x80\x83\x01\x84\x90R`\xA0\x83\x01\x84\x90R`\xC0\x83\x01\x84\x90R`\xE0\x83\x01\x84\x90Ra\x01\0\x83\x01\x84\x90Ra\x01 \x83\x01\x84\x90Ra\x01@\x83\x01\x84\x90Ra\x01`\x83\x01\x84\x90Ra\x01\x80\x83\x01\x84\x90Ra\x01\xA0\x83\x01\x84\x90Ra\x01\xC0\x90\x92\x01\x83\x90RQ\x90\x91\x90a\x06\xF9W\x81a\x01\x80\x01Qa\x07\0V[\x81a\x01\xA0\x01Q[\x90P\x7F\xAD2(\xB6v\xF7\xD3\xCDB\x84\xA5D?\x17\xF1\x96+6\xE4\x91\xB3\n@\xB2@XI\xE5\x97\xBA_\xB5\x81\x03a\x07\xB1W`@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\x82\x01R`/`$\x82\x01R\x7FMIPS64: post-state active thread`D\x82\x01R\x7F stack is empty\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x03\xCCV[PPV[`\x01\x81c\xFF\xFF\xFF\xFF\x16\x11\x15a\x07\xF6W`@Q\x7F\x016\xCCv\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\x01`@Q\x80\x91\x03\x90\xFD[PV[`@\x80Q`\x80Q\x81R`\xA0Q` \x82\x01R`\xD8Q\x91\x81\x01\x91\x90\x91R`\xF8Q`H\x82\x01Ra\x01\x1FQ`P\x82\x01Ra\x018Q`Q\x82\x01Ra\x01XQ`Y\x82\x01Ra\x01`Qa\x01\x7FQ`a\x83\x01Ra\x01\x80Qa\x01\x9FQ`b\x84\x01Ra\x01\xB8Q`c\x84\x01Ra\x01\xD8Q`k\x84\x01Ra\x01\xFFQ`s\x84\x01Ra\x02\0Q`t\x84\x01Ra\x02 Q`\x94\x84\x01Ra\x02XQ`\xB4\x84\x01R`\0`\xBC\x80\x85\x01\x82\x81R\x91\x94\x92\x93a\x02`\x93\x92\x91\x83\xA0`\0\x93P\x84`\x01\x81\x14a\x08\xB3W`\x03\x94Pa\x08\xDBV[\x81\x80\x15a\x08\xCBW`\x01\x81\x14a\x08\xD4W`\x02\x95Pa\x08\xD9V[`\0\x95Pa\x08\xD9V[`\x01\x95P[P[PP\x81\x90\x03\x90 ~\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\xF8\x91\x90\x91\x1B\x17\x91Pa\t\x15\x81a\x07\xB5V[P\x90V[6a\t(a\x01*a\x01daR\xEDV[\x81\x10\x15a\t\xB7W`@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\x82\x01R`0`$\x82\x01R\x7FMIPS64: insufficient calldata fo`D\x82\x01R\x7Fr thread witness\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x03\xCCV[a\x01d5`\xC0\x90\x81\x1C\x83Ra\x01l5`\xF8\x90\x81\x1C` \x85\x01Ra\x01m5\x90\x1C`@\x84\x01Ra\x01n5\x81\x1C``\x84\x01Ra\x01v5\x81\x1C`\x80\x84\x01Ra\x01~5\x81\x1C`\xA0\x84\x01Ra\x01\x865\x81\x1C\x90\x83\x01R`\xE0\x82\x01Qa\x01\x8E\x90`\0[` \x81\x10\x15a\n6W\x825`\xC0\x1C\x82R`\x08\x90\x92\x01\x91` \x90\x91\x01\x90`\x01\x01a\n\x12V[PPPPPV[`\0a\nPa\nJa)$V[\x83a)\xD7V[\x90P`\0\x83a\x01`\x01Qa\niW\x83a\x01\x80\x01Qa\npV[\x83a\x01\xA0\x01Q[\x90P\x81\x81\x14a\n\xDBW`@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\x82\x01R`\x1E`$\x82\x01R\x7FMIPS64: invalid thread witness\0\0`D\x82\x01R`d\x01a\x03\xCCV[PPPPV[\x80a\x01`\x01Q\x15a\n\xFFWa\n\xF4a)$V[a\x01\xA0\x82\x01Ra\x0B\x0EV[a\x0B\x07a)$V[a\x01\x80\x82\x01R[`\0\x81a\x01`\x01Qa\x0B%W\x81a\x01\x80\x01Qa\x0B,V[\x81a\x01\xA0\x01Q[\x90P\x7F\xAD2(\xB6v\xF7\xD3\xCDB\x84\xA5D?\x17\xF1\x96+6\xE4\x91\xB3\n@\xB2@XI\xE5\x97\xBA_\xB5\x81\x03a\x0B`Wa\x01`\x82\x01\x80Q\x15\x90R[P`\0a\x01@\x90\x91\x01RV[`\0\x82a\x01`\x01Q\x15a\x0C0W\x7F\xAD2(\xB6v\xF7\xD3\xCDB\x84\xA5D?\x17\xF1\x96+6\xE4\x91\xB3\n@\xB2@XI\xE5\x97\xBA_\xB5\x83a\x01\xA0\x01Q\x03a\x0C\x07W`@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\x82\x01\x81\x90R`$\x82\x01R\x7FMIPS64: empty right thread stack`D\x82\x01R`d\x01a\x03\xCCV[a\x0C\x0Fa)$V[a\x01\xA0\x84\x01Ra\x01\x80\x83\x01Qa\x0C%\x90\x83a)\xD7V[a\x01\x80\x84\x01Ra\x0C\xE3V[\x7F\xAD2(\xB6v\xF7\xD3\xCDB\x84\xA5D?\x17\xF1\x96+6\xE4\x91\xB3\n@\xB2@XI\xE5\x97\xBA_\xB5\x83a\x01\x80\x01Q\x03a\x0C\xBEW`@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\x82\x01R`\x1F`$\x82\x01R\x7FMIPS64: empty left thread stack\0`D\x82\x01R`d\x01a\x03\xCCV[a\x0C\xC6a)$V[a\x01\x80\x84\x01Ra\x01\xA0\x83\x01Qa\x0C\xDC\x90\x83a)\xD7V[a\x01\xA0\x84\x01R[`\0\x83a\x01`\x01Qa\x0C\xFAW\x83a\x01\x80\x01Qa\r\x01V[\x83a\x01\xA0\x01Q[\x90P\x7F\xAD2(\xB6v\xF7\xD3\xCDB\x84\xA5D?\x17\xF1\x96+6\xE4\x91\xB3\n@\xB2@XI\xE5\x97\xBA_\xB5\x81\x03a\r9Wa\x01`\x84\x01\x80Q\x15\x90R`\x01\x91P[P`\0a\x01@\x90\x93\x01\x92\x90\x92RP\x90V[`\0\x80\x80`\x03\x86\x16\x15a\r\x89W`@Q\x7F?\x82\0\xBC\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\x01`@Q\x80\x91\x03\x90\xFD[`\0a\r\xA0\x86g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF8\x89\x16\x87a*\x19V[\x90Pa\r\xB0\x87\x82`\x04`\0a*kV[\x93P`\x1A\x84c\xFF\xFF\xFF\xFF\x16\x90\x1C\x92P\x83`?\x16\x91PP[\x93P\x93P\x93\x90PV[`@\x80Qa\x01\xE0\x81\x01\x82R`\0\x80\x82R` \x82\x01\x81\x90R\x91\x81\x01\x82\x90R``\x81\x01\x82\x90R`\x80\x81\x01\x82\x90R`\xA0\x81\x01\x82\x90R`\xC0\x81\x01\x82\x90R`\xE0\x81\x01\x82\x90Ra\x01\0\x81\x01\x82\x90Ra\x01 \x81\x01\x82\x90Ra\x01@\x81\x01\x82\x90Ra\x01`\x81\x01\x82\x90Ra\x01\x80\x81\x01\x82\x90Ra\x01\xA0\x81\x01\x82\x90Ra\x01\xC0\x81\x01\x82\x90Ra\x0EPaQ+V[`\x80\x91Pa\x02`\x90P`\0\x80`\0\x80a\x0El\x85`\xE0\x01Qa*\xBBV[\x93P\x93P\x93P\x93P`\0\x80a\x13\x91c\xFF\xFF\xFF\xFF\x16\x86g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x03a\x0E\xB8Wa\x0E\x9F\x85\x85\x8A``\x01Qa*\xD7V[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16``\x8B\x01R\x90\x92P\x90Pa\x1E\xBFV[\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xEClg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x16\x01a\x0E\xF7We@\0\0\0\0\0\x91Pa\x1E\xBFV[\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xECAg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x16\x01a\x11NWb\x05\x0F\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x86\x16\x14a\x0FaW`\x01a\x01\0\x89\x01R`\x02`\xE0\x89\x01Ra\x0FSa\x07\xF9V[\x9A\x99PPPPPPPPPPV[PPa\x01\xC0\x86\x01Q`\0a\x0FsaQ+V[a\x01\xC0\x89\x01Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x81\x16\x82R`\0` \x83\x01\x81\x90R`@\x83\x01\x81\x90R`\x80\x80\x8B\x01\x80Q\x84\x16``\x86\x01RQ`\x04\x01\x83\x16\x90\x84\x01R`\xA0\x80\x8B\x01Q\x83\x16\x90\x84\x01R`\xC0\x80\x8B\x01Q\x90\x92\x16\x91\x83\x01\x91\x90\x91R[` \x81\x10\x15a\x10\"W\x88`\xE0\x01Q\x81` \x81\x10a\x0F\xEBWa\x0F\xEBaS\x05V[` \x02\x01Q\x82`\xE0\x01Q\x82` \x81\x10a\x10\x06Wa\x10\x06aS\x05V[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x92\x16` \x92\x90\x92\x02\x01R`\x01\x01a\x0F\xCCV[P`\xE0\x81\x81\x01\x80Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x88\x81\x16a\x03\xA0\x90\x92\x01\x91\x90\x91R\x81Q`\0`@\x91\x82\x01\x81\x90R\x92Q\x90\x93\x01\x82\x90Ra\x01\xC0\x8C\x01\x80Q`\x01\x01\x82\x16\x90R\x82Q`\x80\x80\x82\x01\x85R\x83\x82R` \x80\x83\x01\x85\x90R\x82\x86\x01\x85\x90R``\x92\x83\x01\x85\x90R\x85Q\x80\x83\x01\x87R\x83\x8F\x01Q\x85\x16\x81R\x91\x8E\x01Q\x84\x16\x90\x82\x01R`\xA0\x8D\x01Q\x83\x16\x94\x81\x01\x94\x90\x94R`\xC0\x8C\x01Q\x90\x91\x16\x90\x83\x01R\x90`\xE0\x80\x8B\x01Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x88\x16`@\x83\x01R\x80\x87\x16\x91\x90\x92\x01R` \x82\x01\x80Q\x80\x83\x16\x84R`\x04\x01\x90\x91\x16\x90R\x90P\x80Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x81\x16``\x80\x8C\x01\x91\x90\x91R` \x83\x01Q\x82\x16`\x80\x8C\x01R`@\x83\x01Q\x82\x16`\xA0\x8C\x01R\x82\x01Q\x16`\xC0\x8A\x01Ra\x11,a(/V[a\x116\x8A\x83a+\x89V[a\x11>a\x07\xF9V[\x9C\x9BPPPPPPPPPPPPV[\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xEB\xABg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x16\x01a\x11\xA0W`\x01a\x01\0\x89\x01R`\xFF\x85\x16`\xE0\x89\x01Ra\x11\x98a(/V[a\x0FSa\x07\xF9V[\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xECxg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x16\x01a\x12zW`@\x80Qa\x01 \x81\x01\x82Rg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x81\x16\x82R\x86\x81\x16` \x80\x84\x01\x91\x90\x91R\x86\x82\x16\x83\x85\x01R\x8B\x01Q``\x83\x01R\x91\x8A\x01Q\x90\x91\x16`\x80\x82\x01R`\xA0\x81\x01\x8B\x90R\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\xC0\x82\x01Ra\n.`\xE0\x82\x01R\x88Qa\x01\0\x82\x01Ra\x12n\x89\x82a+\xCFV[\x90\x93P\x91Pa\x1E\xBF\x90PV[\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xECwg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x16\x01a\x13\"W`@\x80Q`\xE0\x81\x01\x82Rg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x81\x16\x82R\x86\x81\x16` \x80\x84\x01\x91\x90\x91R\x86\x82\x16\x83\x85\x01R\x8B\x01Q``\x83\x01R\x91\x8A\x01Q\x90\x91\x16`\x80\x82\x01Ra\n.`\xA0\x82\x01R\x88Q`\xC0\x82\x01Ra\x13\x02\x81a,\x15V[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`@\x8D\x01R` \x8C\x01R\x90\x93P\x91Pa\x1E\xBF\x90PV[\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xEC2g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x16\x01a\x13gWa\x13]\x85\x85a-\xA7V[\x90\x92P\x90Pa\x1E\xBFV[\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xEB\xC6g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x16\x01a\x13\xA3WPP\x84Q`\0a\x1E\xBFV[\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xEC>g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x16\x01a\x14\x0CW`\x01`@\x88\x01R`\xFF\x85\x16` \x88\x01Ra\x13\xED\x88a/.V[\x15a\x14\x04W`\x01a\x01\0\x89\x01R`\xFF\x85\x16`\xE0\x89\x01R[a\x11\x98a(/V[\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xEB\xB6g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x16\x01a\x15-Wg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFC\x85\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x86\x16\x01a\x14\xCDW`\0a\x14\x84\x82a/\xB1V[\x90P\x84c\xFF\xFF\xFF\xFF\x80\x83\x16\x90\x82\x16\x14a\x14\xABW`\x0B\x94Pg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x93Pa\x14\xC6V[a\x14\xB5\x8B\x8Ba0;V[\x9D\x9CPPPPPPPPPPPPPV[PPa\x15'V[\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x7Fg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x86\x16\x01a\x15\x17Wa\x15\x08\x89\x89a0;V[\x9B\x9APPPPPPPPPPPV[`\x16\x92Pg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x91P[Pa\x1E\xBFV[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x86\x16a\x13\x9F\x14\x80a\x15RWPg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x86\x16a\x13\xAA\x14[\x15a\x15aWa\x0FS\x88\x88a0;V[\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xECvg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x16\x01a\x15\xA5WP`\t\x90Pg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFFa\x1E\xBFV[\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xEB\x9Ag\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x16\x01a\x17CWg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x85\x16\x15\x80a\x15\xF7WPg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x85\x16`\x01\x14[\x15a\x170WP`\0\x90P\x80\x80\x80\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFFg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x88\x16\x01a\x16WWPPa\x01 \x88\x01Qb\x98\x96\x80g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81\x81\x04\x91\x90\x06`d\x02[\x89Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF8\x87\x16\x90a\x16r\x90\x82a\n.a1QV[a\x16\xA8W`@Q\x7F\x8Ew\xB2\xB7\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\x01`@Q\x80\x91\x03\x90\xFD[a\x16\xB5\x81a\n.\x85a1^V[\x8BRa\x16\xC1\x8B\x82a(\xECV[\x8AQa\x16\xD3\x90`\x08\x83\x01a\x11\xAEa1QV[a\x17\tW`@Q\x7F\x83LL\xD4\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\x01`@Q\x80\x91\x03\x90\xFD[a\x17\x19`\x08\x82\x01a\x11\xAE\x84a1^V[\x8BRa\x17(\x8B`\x08\x83\x01a(\xECV[PPPa\x1E\xBFV[P`\x16\x90Pg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFFa\x1E\xBFV[\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xECRg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x16\x01a\x17\x7FWP`\0\x90P\x80a\x1E\xBFV[\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xEB?g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x16\x01a\x17\xF7Wa\x17\xD9\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a2-V[Q\x15a\x17\xF2Wa\x17\xEA\x88\x86\x86a2NV[\x8AR\x90\x92P\x90P[a\x1E\xBFV[\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xECmg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x16\x01\x15a\x1E\xBFW\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xECng\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x16\x01\x15a\x1E\xBFW\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xEB\xB4g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x16\x01\x15a\x1E\xBFW\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xEC]g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x16\x01\x15a\x1E\xBFW\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xECjg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x16\x01\x15a\x1E\xBFW\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xEB\xF7g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x16\x01\x15a\x1E\xBFW\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xECkg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x16\x01\x15a\x1E\xBFW\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xEBOg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x16\x01\x15a\x1E\xBFW\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xECug\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x16\x01\x15a\x1E\xBFW\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xEChg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x16\x01\x15a\x1E\xBFW\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xECtg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x16\x01\x15a\x1E\xBFW\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xECsg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x16\x01\x15a\x1E\xBFW\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xEB\x81g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x16\x01\x15a\x1E\xBFW\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xEC!g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x16\x01\x15a\x1E\xBFW\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xEBwg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x16\x01\x15a\x1E\xBFW\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xECig\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x16\x01\x15a\x1E\xBFW\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xEB[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x16\x01\x15a\x1E\xBFW\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xEBYg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x16\x01\x15a\x1E\xBFW\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xEB\xA8g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x16\x01\x15a\x1E\xBFW\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xEBhg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x16\x01\x15a\x1E\xBFW\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xEC;g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x16\x01\x15a\x1E\xBFW\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xEC\x14g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x16\x01\x15a\x1E\xBFW\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xEC\x12g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x16\x01\x15a\x1E\xBFW\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xEC^g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x16\x01\x15a\x1E\xBFW\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xEB\x97g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x16\x01\x15a\x1E\xBFW\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xECTg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x16\x01\x15a\x1E\xBFW\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xEB\xA0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x16\x01\x15a\x1E\xBFW\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xEB\x9Fg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x16\x01\x15a\x1E\xBFW\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xEB\x9Cg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x16\x01\x15a\x1E\xBFW\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xEC\x19g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x16\x01\x15a\x1E\xBFW\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xECpg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x16\x01\x15a\x1E\xBFW\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xEB\\g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x16\x01a\x1E]W`\x80\x84\x16`\0\x03a\x1ETWP`\x16\x90Pg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFFa\x1E\xBFV[`d\x91Pa\x1E\xBFV[`@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\x82\x01R`\x1D`$\x82\x01R\x7FMIPS64: unimplemented syscall\0\0\0`D\x82\x01R`d\x01a\x03\xCCV[`\0a\x1FI\x88`@\x80Q`\x80\x81\x01\x82R`\0\x80\x82R` \x82\x01\x81\x90R\x91\x81\x01\x82\x90R``\x81\x01\x91\x90\x91R`@Q\x80`\x80\x01`@R\x80\x83``\x01Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81R` \x01\x83`\x80\x01Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81R` \x01\x83`\xA0\x01Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81R` \x01\x83`\xC0\x01Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81RP\x90P\x91\x90PV[`\xE0\x80\x8A\x01Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x87\x16`@\x83\x01R\x80\x86\x16\x91\x90\x92\x01R` \x82\x01\x80Q\x80\x83\x16\x84R`\x04\x01\x90\x91\x16\x90R\x90P\x80Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x81\x16``\x80\x8B\x01\x91\x90\x91R` \x83\x01Q\x82\x16`\x80\x8B\x01R`@\x83\x01Q\x82\x16`\xA0\x8B\x01R\x82\x01Q\x16`\xC0\x89\x01Ra\x1F\xBDa(/V[a\x15\x08a\x07\xF9V[`\xE0\x83\x01Q`\0\x90\x81\x90`\x1F`\x15\x86\x90\x1C\x16` \x81\x10a\x1F\xE7Wa\x1F\xE7aS\x05V[` \x02\x01Q\x90P`\x1F`\x10\x85\x90\x1C\x16`\0a \x01\x86a3\xDBV[\x83\x01\x90P`\x01`\x04c\xFF\xFF\xFF\xFF\x87\x16`4\x14\x80a $WPc\xFF\xFF\xFF\xFF\x87\x16`<\x14[\x15a 1WP`\x02\x90P`\x08[\x88Q`\0\x90c\xFF\xFF\xFF\xFF\x89\x16`0\x14\x80a QWPc\xFF\xFF\xFF\xFF\x89\x16`4\x14[\x15a \x8BWa c\x8C\x86\x85`\x01a3\xF2V[`\xFF\x85\x16`\x80\x8E\x01Rg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x87\x16`\xA0\x8F\x01R\x82\x16`\xC0\x8E\x01R\x91Pa!\x8EV[c\xFF\xFF\xFF\xFF\x89\x16`8\x14\x80a \xA6WPc\xFF\xFF\xFF\xFF\x89\x16`<\x14[\x15a!\\W\x83`\xFF\x16\x8C`\x80\x01Q`\xFF\x16\x14\x80\x15a \xDBWP\x80g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x8C`\xC0\x01Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14[\x80\x15a \xFEWP\x84g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x8C`\xA0\x01Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14[\x15a!SW`\0`\x80\x8D\x01\x81\x90R`\xA0\x8D\x01\x81\x90R`\xC0\x8D\x01R`\0\x8B`\xE0\x01Q\x87c\xFF\xFF\xFF\xFF\x16` \x81\x10a!6Wa!6aS\x05V[` \x02\x01Q\x90Pa!I\x8D\x87\x86\x84a42V[`\x01\x92PPa!\x8EV[`\0\x91Pa!\x8EV[`@Q\x7F\xEC\xF7\x9D\r\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\x01`@Q\x80\x91\x03\x90\xFD[`\0a\"\x18\x8C`@\x80Q`\x80\x81\x01\x82R`\0\x80\x82R` \x82\x01\x81\x90R\x91\x81\x01\x82\x90R``\x81\x01\x91\x90\x91R`@Q\x80`\x80\x01`@R\x80\x83``\x01Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81R` \x01\x83`\x80\x01Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81R` \x01\x83`\xA0\x01Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81R` \x01\x83`\xC0\x01Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81RP\x90P\x91\x90PV[\x90Pa\"2\x81\x8D`\xE0\x01Q\x89c\xFF\xFF\xFF\xFF\x16\x86`\x01a4\x8CV[\x80Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x81\x16``\x80\x8F\x01\x91\x90\x91R` \x83\x01Q\x82\x16`\x80\x8F\x01R`@\x83\x01Q\x82\x16`\xA0\x8F\x01R\x82\x01Q\x16`\xC0\x8D\x01Ra\"ra(/V[a\x14\xB5a\x07\xF9V[`@\x81\x01Q`\xA0\x82\x01Q`\0\x90\x81\x90c\xFF\xFF\xFF\xFF\x16`\x02\x14\x80a\"\xA7WP\x83`\xA0\x01Qc\xFF\xFF\xFF\xFF\x16`\x03\x14[\x15a#\x0BW`\x80\x84\x01Q`\0\x90`\x02\x1Bc\x0F\xFF\xFF\xFC\x16a\"\xCCc\xF0\0\0\0` a5pV[\x86`\0\x01Q` \x01Q\x16\x17\x90Pa#\x05\x85\x86`\xA0\x01Qc\xFF\xFF\xFF\xFF\x16`\x02\x14a\"\xF6W`\x1Fa\"\xF9V[`\0[c\xFF\xFF\xFF\xFF\x16\x83a5\xEAV[Pa((V[`\x80\x84\x01Q` \x80\x86\x01Q`\0\x92\x83\x92`\x1F`\x10\x83\x90\x1C\x81\x16\x93\x92`\x15\x1C\x16\x90\x81\x10a#9Wa#9aS\x05V[` \x02\x01Q\x92P`\0\x81\x90P\x87`\xA0\x01Qc\xFF\xFF\xFF\xFF\x16`'\x14\x80a#hWP\x87`\xA0\x01Qc\xFF\xFF\xFF\xFF\x16`\x1A\x14[\x80a#}WP\x87`\xA0\x01Qc\xFF\xFF\xFF\xFF\x16`\x1B\x14[\x15a#\xB1W\x87` \x01Q\x82g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16` \x81\x10a#\xA2Wa#\xA2aS\x05V[` \x02\x01Q\x92P\x81\x90Pa$\xEEV[`\xA0\x88\x01Qc\xFF\xFF\xFF\xFF\x16\x15\x80a#\xD2WP\x87`\xA0\x01Qc\xFF\xFF\xFF\xFF\x16`\x1C\x14[\x15a$\x11W\x87` \x01Q\x82g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16` \x81\x10a#\xF7Wa#\xF7aS\x05V[` \x02\x01Q`\x80\x89\x01Q\x90\x93P`\x0B\x1C`\x1F\x16\x90Pa$\xEEV[` \x88`\xA0\x01Qc\xFF\xFF\xFF\xFF\x16\x10\x15a$\x85W\x87`\xA0\x01Qc\xFF\xFF\xFF\xFF\x16`\x0C\x14\x80a$GWP\x87`\xA0\x01Qc\xFF\xFF\xFF\xFF\x16`\r\x14[\x80a$\\WP\x87`\xA0\x01Qc\xFF\xFF\xFF\xFF\x16`\x0E\x14[\x15a$qW`\x80\x88\x01Qa\xFF\xFF\x16\x92Pa$\xEEV[a$~\x88`\x80\x01Qa3\xDBV[\x92Pa$\xEEV[`(\x88`\xA0\x01Qc\xFF\xFF\xFF\xFF\x16\x10\x15\x80a$\xA9WP\x87`\xA0\x01Qc\xFF\xFF\xFF\xFF\x16`\"\x14[\x80a$\xBEWP\x87`\xA0\x01Qc\xFF\xFF\xFF\xFF\x16`&\x14[\x15a$\xEEW\x87` \x01Q\x82g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16` \x81\x10a$\xE3Wa$\xE3aS\x05V[` \x02\x01Q\x92P\x81\x90P[`\x04\x88`\xA0\x01Qc\xFF\xFF\xFF\xFF\x16\x10\x15\x80\x15a%\x13WP`\x08\x88`\xA0\x01Qc\xFF\xFF\xFF\xFF\x16\x10[\x80a%(WP\x87`\xA0\x01Qc\xFF\xFF\xFF\xFF\x16`\x01\x14[\x15a%TWa%K\x88`\0\x01Q\x89` \x01Q\x8A`\xA0\x01Q\x8B`\x80\x01Q\x86\x89a6\xD4V[PPPPa((V[`\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90P`\0` \x8A`\xA0\x01Qc\xFF\xFF\xFF\xFF\x16\x10\x15\x80a%\x87WP`\xA0\x8A\x01Qc\xFF\xFF\xFF\xFF\x16`\x1A\x14[\x80a%\x9CWP`\xA0\x8A\x01Qc\xFF\xFF\xFF\xFF\x16`\x1B\x14[\x15a&\x04Wa%\xAE\x8A`\x80\x01Qa3\xDBV[\x86\x01\x95P`\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF8\x87\x16\x90Pa%\xD4\x8B`@\x01Q\x82\x8D``\x01Qa*\x19V[\x91P`(\x8B`\xA0\x01Qc\xFF\xFF\xFF\xFF\x16\x10a&\x02W\x8A`\xA0\x01Qc\xFF\xFF\xFF\xFF\x16`7\x14a&\x02W\x80\x92P`\0\x93P[P[`\0`@Q\x80`\xC0\x01`@R\x80\x8C`\x80\x01Qc\xFF\xFF\xFF\xFF\x16\x81R` \x01\x8C`\xA0\x01Qc\xFF\xFF\xFF\xFF\x16\x81R` \x01\x8C`\xC0\x01Qc\xFF\xFF\xFF\xFF\x16\x81R` \x01\x88g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81R` \x01\x87g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81R` \x01\x83g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81RP\x90P`\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFFa&\x85\x83a9GV[`\xA0\x8E\x01Q\x91\x16\x91P` \x90c\xFF\xFF\xFF\xFF\x16\x15\x80\x15a&\xAFWP`\x08\x8D`\xC0\x01Qc\xFF\xFF\xFF\xFF\x16\x10\x15[\x80\x15a&\xCEWP\x80g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x8D`\xC0\x01Qc\xFF\xFF\xFF\xFF\x16\x10[\x15a'\xDEW\x8C`\xC0\x01Qc\xFF\xFF\xFF\xFF\x16`\x08\x14\x80a&\xF6WP\x8C`\xC0\x01Qc\xFF\xFF\xFF\xFF\x16`\t\x14[\x15a'.Wa' \x8D\x8E`\xC0\x01Qc\xFF\xFF\xFF\xFF\x16`\x08\x14a'\x17W\x87a'\x1AV[`\0[\x8Ba5\xEAV[PPPPPPPPPa((V[\x8C`\xC0\x01Qc\xFF\xFF\xFF\xFF\x16`\n\x03a'_W\x8CQ` \x8E\x01Qa' \x91\x90\x88\x8Cg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x8D\x16\x15a4\x8CV[\x8C`\xC0\x01Qc\xFF\xFF\xFF\xFF\x16`\x0B\x03a'\x91W\x8CQ` \x8E\x01Qa' \x91\x90\x88\x8Cg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x8D\x16\x15\x15a4\x8CV[`\x10\x8D`\xC0\x01Qc\xFF\xFF\xFF\xFF\x16\x10\x15\x80\x15a'\xBFWP\x80g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x8D`\xC0\x01Qc\xFF\xFF\xFF\xFF\x16\x10[\x15a'\xDEWa' \x8D`\0\x01Q\x8E` \x01Q\x8F`\xC0\x01Q\x8C\x8C\x8BaE\xC1V[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x85\x81\x16\x14a(\x08Wa'\xFE\x85\x8E``\x01Q\x84a1^V[\x9BP`\x01\x9AP\x84\x99P[a(\x1E\x8D`\0\x01Q\x8E` \x01Q\x88\x85`\x01a4\x8CV[PPPPPPPPP[\x91\x93\x90\x92PV[`@\x80Qa\x01\xE0\x81\x01\x82R`\0\x80\x82R` \x82\x01\x81\x90R\x91\x81\x01\x82\x90R``\x81\x01\x82\x90R`\x80\x81\x01\x82\x90R`\xA0\x81\x01\x82\x90R`\xC0\x81\x01\x82\x90R`\xE0\x81\x01\x82\x90Ra\x01\0\x81\x01\x82\x90Ra\x01 \x81\x01\x82\x90Ra\x01@\x81\x01\x82\x90Ra\x01`\x81\x01\x82\x90Ra\x01\x80\x81\x01\x82\x90Ra\x01\xA0\x81\x01\x82\x90Ra\x01\xC0\x81\x01\x91\x90\x91Ra(\xB0aQ+V[P`\x80\x90Pa\x02``\0a(\xC5a\nJa)$V[\x90P\x82a\x01`\x01Q\x15a(\xDFWa\x01\xA0\x83\x01\x81\x90RPPPV[a\x01\x80\x83\x01\x81\x90RPPPV[`\xA0\x82\x01Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF8\x16g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16\x03a\x07\xB1W`\0`\x80\x83\x01\x81\x90R`\xA0\x83\x01\x81\x90R`\xC0\x83\x01RPPV[a\x02\x8E56a)6a\x01*` aScV[a)H\x90c\xFF\xFF\xFF\xFF\x16a\x01daR\xEDV[\x81\x10\x15a\t\x15W`@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\x82\x01R`0`$\x82\x01R\x7FMIPS64: insufficient calldata fo`D\x82\x01R\x7Fr thread witness\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x03\xCCV[`\0\x80a)\xE3\x83aK\x9BV[`@\x80Q` \x81\x01\x87\x90R\x90\x81\x01\x82\x90R\x90\x91P``\x01`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 \x91PP\x92\x91PPV[`\0\x80a*'\x85\x85\x85aL$V[\x90\x92P\x90P\x80a*cW`@Q\x7F\x8Ew\xB2\xB7\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\x01`@Q\x80\x91\x03\x90\xFD[P\x93\x92PPPV[`\0\x80`\0\x80a*{\x88\x87aL\xFCV[\x92P\x92P\x92P\x82\x82g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x88g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90\x1C\x16\x93P\x84\x15a*\xB0Wa*\xAD\x84\x82a5pV[\x93P[PPP\x94\x93PPPPV[`@\x81\x01Q`\x80\x82\x01Q`\xA0\x83\x01Q`\xC0\x84\x01Q[\x91\x93P\x91\x93V[`\0\x80\x82\x84a\x0F\xFF\x81\x16\x15a*\xF1Wa\x0F\xFF\x81\x16a\x10\0\x03\x01[\x86g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\0\x03a+{W\x84\x93P\x90\x81\x01\x90e`\0\0\0\0\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x16\x11\x80a+;WP\x84g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x82g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x10[\x80a+YWP\x85g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x10[\x15a+vWP`\x16\x92Pg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x91P\x83\x90Pa\r\xC7V[a+\x7FV[\x86\x93P[P\x93P\x93P\x93\x90PV[\x81a\x01`\x01Q\x15a+\xAEWa+\xA3\x82a\x01\xA0\x01Q\x82a)\xD7V[a\x01\xA0\x83\x01Ra\x0B`V[a+\xBD\x82a\x01\x80\x01Q\x82a)\xD7V[a\x01\x80\x83\x01RP`\0a\x01@\x90\x91\x01RV[`\0\x80`\0\x80a+\xDE\x85aM\x80V[\x91\x8BRg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x92\x16`@\x8B\x01R\x92\x96P\x90\x94P\x92P\x90P\x81\x15a,\x0CWa,\x0C\x86\x82a(\xECV[PP\x92P\x92\x90PV[``\x81\x01Q`\x80\x82\x01Q\x82Q`\0\x92\x83\x92\x90\x91g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\x01\x14\x80a,KWP\x84Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\x02\x14[\x80a,aWP\x84Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\x04\x14[\x15a,rW\x84`@\x01Q\x93Pa*\xD0V[\x84Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFA\x01a-LW`\0a,\xC7\x86`\xC0\x01Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF8\x88` \x01Q\x16\x88`\xA0\x01Qa*\x19V[``\x87\x01Q` \x88\x01Q`@\x89\x01Q\x92\x93P\x90\x91`\x07\x82\x16`\x08\x03\x81\x81\x10\x15a,\xEEW\x80\x91P[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16`@\x8B\x01\x81\x90R\x98P`\x08\x80\x83\x02\x94\x85\x1B`\x01\x90\x95\x1B\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x01\x92\x90\x91\x03\x02\x93\x90\x93\x1C\x92\x90\x92\x16\x17\x92P`\0\x91Pa*\xD0\x90PV[\x84Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x9C\x01a-\x92W`\x0B\x93Pg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x92Pa*\xD0V[`\t\x95g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x95P\x91\x93P\x91PV[`\0\x80g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x16`\x01\x03a.gWg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x16\x15\x80a-\xDDWPg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x16`\x01\x14[\x80a-\xF2WPg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x16`\x02\x14[\x80a.\x07WPg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x16`\x05\x14[\x80a.\x1CWPg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x16`\x03\x14[\x80a.1WPg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x16`\x06\x14[\x80a.FWPg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x16`\x04\x14[\x15a.TW`\0\x91Pa/'V[P`\t\x90Pg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFFa/'V[\x82g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\x03\x03a/\x18Wg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x16\x15\x80a.\x9AWPg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x16`\x05\x14[\x80a.\xAFWPg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x16`\x03\x14[\x15a.\xBDW`\0\x91Pa/'V[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x16`\x01\x14\x80a.\xE0WPg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x16`\x02\x14[\x80a.\xF5WPg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x16`\x06\x14[\x80a/\nWPg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x16`\x04\x14[\x15a.TW`\x01\x91Pa/'V[P`\x16\x90Pg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF[\x92P\x92\x90PV[`\0\x80\x82a\x01`\x01Qa/FW\x82a\x01\xA0\x01Qa/MV[\x82a\x01\x80\x01Q[\x90P`\0\x7F\xAD2(\xB6v\xF7\xD3\xCDB\x84\xA5D?\x17\xF1\x96+6\xE4\x91\xB3\n@\xB2@XI\xE5\x97\xBA_\xB5a/za)$V[\x14\x90P\x7F\xAD2(\xB6v\xF7\xD3\xCDB\x84\xA5D?\x17\xF1\x96+6\xE4\x91\xB3\n@\xB2@XI\xE5\x97\xBA_\xB5\x82\x14\x80\x15a/\xA9WP\x80[\x94\x93PPPPV[`@\x80Qa\x01\xE0\x81\x01\x82R`\0\x80\x82R` \x82\x01\x81\x90R\x91\x81\x01\x82\x90R``\x81\x01\x82\x90R`\x80\x81\x01\x82\x90R`\xA0\x81\x01\x82\x90R`\xC0\x81\x01\x82\x90R`\xE0\x81\x01\x82\x90Ra\x01\0\x81\x01\x82\x90Ra\x01 \x81\x01\x82\x90Ra\x01@\x81\x01\x82\x90Ra\x01`\x81\x01\x82\x90Ra\x01\x80\x81\x01\x82\x90Ra\x01\xA0\x81\x01\x82\x90Ra\x01\xC0\x81\x01\x82\x90RP`\x80`\0a/\xA9\x82\x85`\x04\x84a3\xF2V[`\0\x80\x80\x80a0\xC8\x85`@\x80Q`\x80\x81\x01\x82R`\0\x80\x82R` \x82\x01\x81\x90R\x91\x81\x01\x82\x90R``\x81\x01\x91\x90\x91R`@Q\x80`\x80\x01`@R\x80\x83``\x01Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81R` \x01\x83`\x80\x01Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81R` \x01\x83`\xA0\x01Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81R` \x01\x83`\xC0\x01Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81RP\x90P\x91\x90PV[`\xE0\x80\x87\x01Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x87\x16`@\x83\x01R\x80\x86\x16\x91\x90\x92\x01R` \x82\x01\x80Q\x80\x83\x16\x84R`\x04\x01\x90\x91\x16\x90R\x90P\x80Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x81\x16``\x80\x88\x01\x91\x90\x91R` \x83\x01Q\x82\x16`\x80\x88\x01R`@\x83\x01Q\x82\x16`\xA0\x88\x01R\x82\x01Q\x16`\xC0\x86\x01Ra1>\x86\x86a\x0BlV[Pa1Ga\x07\xF9V[\x96\x95PPPPPPV[`\0a\x01:\x84\x84\x84aL$V[`\0a1i\x83aP^V[`\x07\x84\x16\x15a1\x9DW`@Q\x7F\xE6\xC4${\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\x81\xFD[` \x83\x01\x92`\x1F\x85\x16`\x18\x03`\x03\x1B\x83\x81\x1B\x915g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x1B\x19\x16\x17`\x05\x85\x90\x1C`;`\0[\x81\x81\x10\x15a2!W` \x87\x01\x965\x83\x82\x1C`\x01\x16\x80\x15a1\xF1W`\x01\x81\x14a2\x06Wa2\x17V[`\0\x86\x81R` \x83\x90R`@\x90 \x95Pa2\x17V[`\0\x82\x81R` \x87\x90R`@\x90 \x95P[PP`\x01\x01a1\xCAV[P\x91\x96\x95PPPPPPV[`@\x80Q` \x81\x01\x90\x91R`\0\x81R`\x08\x82\x10a2IW`\x01\x81R[\x91\x90PV[`\0\x80\x80g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF8\x85\x16\x81a2\x81a2oa\x01*a\x01daR\xEDV[a2z\x90` aR\xEDV[a\x07\x80\x01\x90V[\x90P`\0a2\x94\x89`\0\x01Q\x84\x84a*\x19V[\x90P`\0a3\x04\x8Aa\x01 \x01Q`\0\x80\x82g\x9E7y\xB9\x7FJ|\x15\x01\x90P`\x1E\x81g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90\x1C\x81\x18g\xBFXGm\x1C\xE4\xE5\xB9\x02\x90P`\x1B\x81g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90\x1C\x81\x18g\x94\xD0I\xBB\x131\x11\xEB\x02\x90P`\x1F\x81g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90\x1C\x81\x18\x91PP\x91\x90PV[\x90P`\0a3\x12\x85\x8BaS\x8BV[\x90P`\0a3!\x82`\x08aS\x8BV[\x90P\x89g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x16\x90\x83\x16\x10\x15a3\x19Wa:\xC0\x82\x84\x03c\xFF\xFF\xFF\xFF\x16` a5pV[\x83c\xFF\xFF\xFF\xFF\x16`$\x03a>2WP\x16\x95\x94PPPPPV[\x83c\xFF\xFF\xFF\xFF\x16`%\x03a>KWP\x17\x95\x94PPPPPV[\x83c\xFF\xFF\xFF\xFF\x16`&\x03a>dWP\x18\x95\x94PPPPPV[\x83c\xFF\xFF\xFF\xFF\x16`'\x03a>~WP\x17\x19\x95\x94PPPPPV[\x83c\xFF\xFF\xFF\xFF\x16`*\x03a>\xB2W\x81`\x07\x0B\x83`\x07\x0B\x12a>\xA0W`\0a>\xA3V[`\x01[`\xFF\x16\x98\x97PPPPPPPPV[\x83c\xFF\xFF\xFF\xFF\x16`+\x03a>\xE2W\x81g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x83g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x10a>\xA0W`\0a>\xA3V[\x83c\xFF\xFF\xFF\xFF\x16`,\x03a>\xFBWP\x01\x95\x94PPPPPV[\x83c\xFF\xFF\xFF\xFF\x16`-\x03a?\x14WP\x01\x95\x94PPPPPV[\x83c\xFF\xFF\xFF\xFF\x16`.\x03a?.WP\x90\x03\x95\x94PPPPPV[\x83c\xFF\xFF\xFF\xFF\x16`/\x03a?HWP\x90\x03\x95\x94PPPPPV[\x83c\xFF\xFF\xFF\xFF\x16`8\x03a?wWPg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\x06\x94\x90\x94\x1C`\x1F\x16\x93\x90\x93\x1B\x95\x94PPPPPV[\x83c\xFF\xFF\xFF\xFF\x16`:\x03a?\xA6WPg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\x06\x94\x90\x94\x1C`\x1F\x16\x93\x90\x93\x1C\x95\x94PPPPPV[\x83c\xFF\xFF\xFF\xFF\x16`;\x03a?\xCEWP`\x07\x0B`\x06\x94\x90\x94\x1C`\x1F\x16\x93\x90\x93\x1D\x95\x94PPPPPV[\x83c\xFF\xFF\xFF\xFF\x16`<\x03a@\rW`\x06\x86c\xFF\xFF\xFF\xFF\x16\x90\x1C`\x1F\x16` \x01c\xFF\xFF\xFF\xFF\x16\x82g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90\x1B\x96PPPPPPP\x91\x90PV[\x83c\xFF\xFF\xFF\xFF\x16`>\x03a@LW`\x06\x86c\xFF\xFF\xFF\xFF\x16\x90\x1C`\x1F\x16` \x01c\xFF\xFF\xFF\xFF\x16\x82g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90\x1C\x96PPPPPPP\x91\x90PV[\x83c\xFF\xFF\xFF\xFF\x16`?\x03a@\x84W`\x06\x86c\xFF\xFF\xFF\xFF\x16\x90\x1C`\x1F\x16` \x01c\xFF\xFF\xFF\xFF\x16\x82`\x07\x0B\x90\x1D\x96PPPPPPP\x91\x90PV[`@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\x82\x01R`\x1B`$\x82\x01R\x7FMIPS64: invalid instruction\0\0\0\0\0`D\x82\x01R`d\x01a\x03\xCCV[a@\x84V[\x84c\xFF\xFF\xFF\xFF\x16`\x1C\x03aA\xE0W\x83c\xFF\xFF\xFF\xFF\x16`\x02\x03aA\x1AWa:\xC0\x82\x84\x02c\xFF\xFF\xFF\xFF\x16` a5pV[\x83c\xFF\xFF\xFF\xFF\x16` \x14\x80aA5WP\x83c\xFF\xFF\xFF\xFF\x16`!\x14[\x15aA\x84W\x83c\xFF\xFF\xFF\xFF\x16` \x03aALW\x91\x19\x91[`\0[c\x80\0\0\0\x84\x16\x15aArWh\x01\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE`\x01\x94\x85\x1B\x16\x93\x01aAOV[c\xFF\xFF\xFF\xFF\x16\x98\x97PPPPPPPPV[\x83c\xFF\xFF\xFF\xFF\x16`$\x14\x80aA\x9FWP\x83c\xFF\xFF\xFF\xFF\x16`%\x14[\x15a@\xE6W\x83c\xFF\xFF\xFF\xFF\x16`$\x03aA\xB6W\x91\x19\x91[`\0[g\x80\0\0\0\0\0\0\0\x84\x16\x15aArWh\x01\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE`\x01\x94\x85\x1B\x16\x93\x01aA\xB9V[\x84c\xFF\xFF\xFF\xFF\x16`\x0F\x03aB\x07Wa:\xC0`\x10\x83g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90\x1B` a5pV[\x84c\xFF\xFF\xFF\xFF\x16` \x03aB\"Wa:\xC0\x83\x82`\x01\x80a*kV[\x84c\xFF\xFF\xFF\xFF\x16`!\x03aB>Wa:\xC0\x83\x82`\x02`\x01a*kV[\x84c\xFF\xFF\xFF\xFF\x16`\"\x03aB\x8FW`\0aB\\\x84\x83`\x04`\0a*kV[\x90Pc\xFF\xFF\xFF\xFF\x80\x82\x16`\x08`\x03\x87\x16\x02\x82\x16\x90\x81\x1B\x91\x90\x81\x90\x1B\x81\x16\x90a\x15\x08\x90\x82\x19\x87\x16\x81\x16\x90\x84\x16\x17` a5pV[\x84c\xFF\xFF\xFF\xFF\x16`#\x03aB\xABWa:\xC0\x83\x82`\x04`\x01a*kV[\x84c\xFF\xFF\xFF\xFF\x16`$\x03aB\xC7Wa:\xC0\x83\x82`\x01`\0a*kV[\x84c\xFF\xFF\xFF\xFF\x16`%\x03aB\xE3Wa:\xC0\x83\x82`\x02`\0a*kV[\x84c\xFF\xFF\xFF\xFF\x16`&\x03aC`W`\0aC\x01\x84\x83`\x04`\0a*kV[\x90Pc\xFF\xFF\xFF\xFF\x80\x82\x16`\x03\x86\x81\x16`\x08\x81\x02`\x18\x03g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x92\x83\x1C\x93\x92\x83\x90\x1C\x92\x83\x19\x88\x16\x85\x17\x16\x91\x03aCBWa\x11>\x81` a5pV[g\xFF\xFF\xFF\xFF\0\0\0\0\x95\x90\x95\x16\x90\x94\x17\x9A\x99PPPPPPPPPPV[\x84c\xFF\xFF\xFF\xFF\x16`(\x03aC{Wa:\xC0\x83\x82`\x01\x85aP\xF3V[\x84c\xFF\xFF\xFF\xFF\x16`)\x03aC\x96Wa:\xC0\x83\x82`\x02\x85aP\xF3V[\x84c\xFF\xFF\xFF\xFF\x16`*\x03aC\xE9Wc\xFF\xFF\xFF\xFF`\x18`\x03\x94\x90\x94\x1B\x93\x84\x16\x81\x81\x1Cg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x81\x16` \x96\x87\x16\x90\x96\x03\x81\x16\x95\x86\x1B\x19\x93\x90\x93\x16\x93\x90\x91\x16\x90\x1C\x16\x90\x91\x1B\x17\x95\x94PPPPPV[\x84c\xFF\xFF\xFF\xFF\x16`+\x03aD\x04Wa:\xC0\x83\x82`\x04\x85aP\xF3V[\x84c\xFF\xFF\xFF\xFF\x16`.\x03aDdW`\0aD\"\x84\x83`\x04`\0a*kV[\x90Pg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x81\x16`\x08`\x03\x87\x16\x02`\x18\x03\x91\x82\x16\x1B\x90c\xFF\xFF\xFF\xFF\x90\x81\x16\x81\x90\x1B\x81\x16\x90\x81\x19\x84\x16\x81\x16\x90\x83\x16\x17a\x11>\x87\x86`\x04\x84aP\xF3V[\x84c\xFF\xFF\xFF\xFF\x16`\x1A\x03aD\x98Wg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x81\x16`\x03\x93\x90\x93\x1B`8\x16\x92\x83\x1B\x92\x1B\x19\x16\x17\x95\x94PPPPPV[\x84c\xFF\xFF\xFF\xFF\x16`\x1B\x03aD\xDBWg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x81\x16`\x03\x93\x90\x93\x1B`8\x90\x81\x16\x90\x81\x90\x03\x82\x16\x93\x90\x93\x1C`\x08\x93\x90\x93\x01\x81\x16\x1B\x16\x17\x95\x94PPPPPV[\x84c\xFF\xFF\xFF\xFF\x16`'\x03aE\x17Wg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x81\x16` `\x03\x94\x90\x94\x1B\x84\x16\x90\x93\x03\x16\x91\x90\x91\x1Cc\xFF\xFF\xFF\xFF\x16\x96\x95PPPPPPV[\x84c\xFF\xFF\xFF\xFF\x16`,\x03aEPWg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x91\x82\x16`\x03\x93\x90\x93\x1B`8\x16\x92\x83\x1C\x91\x90\x92\x1C\x19\x91\x90\x91\x16\x17\x95\x94PPPPPV[\x84c\xFF\xFF\xFF\xFF\x16`-\x03aE\x8FWg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF`8`\x03\x94\x90\x94\x1B\x84\x16\x90\x93\x03\x83\x16\x83\x81\x1B\x19\x91\x90\x91\x16\x91\x90\x92\x16\x90\x91\x1B\x17\x95\x94PPPPPV[\x84c\xFF\xFF\xFF\xFF\x16`7\x03aE\xA8W\x97\x96PPPPPPPV[\x84c\xFF\xFF\xFF\xFF\x16`?\x03a@\x84WP\x96\x95PPPPPPV[`\0\x84c\xFF\xFF\xFF\xFF\x16`\x10\x03aE\xDCWP``\x86\x01QaK3V[\x84c\xFF\xFF\xFF\xFF\x16`\x11\x03aE\xFFWg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x16``\x88\x01RaK3V[\x84c\xFF\xFF\xFF\xFF\x16`\x12\x03aF\x18WP`@\x86\x01QaK3V[\x84c\xFF\xFF\xFF\xFF\x16`\x13\x03aF;Wg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x16`@\x88\x01RaK3V[\x84c\xFF\xFF\xFF\xFF\x16`\x18\x03aF\xA4W`\0\x83`\x03\x0B\x85`\x03\x0B\x02\x90PaFo` \x82g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90\x1C` a5pV[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16``\x89\x01RaF\x8Fc\xFF\xFF\xFF\xFF\x82\x16` a5pV[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`@\x89\x01RPaK3V[\x84c\xFF\xFF\xFF\xFF\x16`\x19\x03aF\xDEW`\0\x83c\xFF\xFF\xFF\xFF\x16\x85c\xFF\xFF\xFF\xFF\x16\x02\x90PaFo` \x82g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90\x1C` a5pV[\x84c\xFF\xFF\xFF\xFF\x16`\x1A\x03aG\xCCW\x82c\xFF\xFF\xFF\xFF\x16`\0\x03aG\\W`@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\x82\x01R`\x18`$\x82\x01R\x7FMIPS64: division by zero\0\0\0\0\0\0\0\0`D\x82\x01R`d\x01a\x03\xCCV[aG\x82\x83`\x03\x0B\x85`\x03\x0B\x81aGtWaGtaS4V[\x07c\xFF\xFF\xFF\xFF\x16` a5pV[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16``\x88\x01RaG\xB8`\x03\x84\x81\x0B\x90\x86\x90\x0B\x81aG\xAAWaG\xAAaS4V[\x05c\xFF\xFF\xFF\xFF\x16` a5pV[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`@\x88\x01RaK3V[\x84c\xFF\xFF\xFF\xFF\x16`\x1B\x03aH\xAEW\x82c\xFF\xFF\xFF\xFF\x16`\0\x03aHJW`@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\x82\x01R`\x18`$\x82\x01R\x7FMIPS64: division by zero\0\0\0\0\0\0\0\0`D\x82\x01R`d\x01a\x03\xCCV[aHv\x83c\xFF\xFF\xFF\xFF\x16\x85c\xFF\xFF\xFF\xFF\x16\x81aHhWaHhaS4V[\x06c\xFF\xFF\xFF\xFF\x16` a5pV[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16``\x88\x01RaG\xB8c\xFF\xFF\xFF\xFF\x80\x85\x16\x90\x86\x16\x81aH\xA0WaH\xA0aS4V[\x04c\xFF\xFF\xFF\xFF\x16` a5pV[\x84c\xFF\xFF\xFF\xFF\x16`\x14\x03aH\xD2WPg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16`?\x84\x16\x1BaK3V[\x84c\xFF\xFF\xFF\xFF\x16`\x16\x03aH\xF6WPg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16`?\x84\x16\x1CaK3V[\x84c\xFF\xFF\xFF\xFF\x16`\x17\x03aI\x14WP`\x07\x82\x90\x0B`?\x84\x16\x1DaK3V[\x84c\xFF\xFF\xFF\xFF\x16`\x1C\x03aIQWg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF`\x07\x85\x81\x0B\x90\x85\x90\x0B\x02`\x0F\x81\x90\x0B`@\x90\x81\x1D\x83\x16``\x8B\x01R\x91\x16\x90\x88\x01RaK3V[\x84c\xFF\xFF\xFF\xFF\x16`\x1D\x03aI\x86Wg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x81\x16\x81\x85\x16\x02`@\x81\x81\x1C\x83\x16``\x8B\x01R\x91\x16\x90\x88\x01RaK3V[\x84c\xFF\xFF\xFF\xFF\x16`\x1E\x03aJXW\x82g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\0\x03aJ\x08W`@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\x82\x01R`\x18`$\x82\x01R\x7FMIPS64: division by zero\0\0\0\0\0\0\0\0`D\x82\x01R`d\x01a\x03\xCCV[\x82`\x07\x0B\x84`\x07\x0B\x81aJ\x1DWaJ\x1DaS4V[\x07g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16``\x88\x01R`\x07\x83\x81\x0B\x90\x85\x90\x0B\x81aJCWaJCaS4V[\x05g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`@\x88\x01RaK3V[\x84c\xFF\xFF\xFF\xFF\x16`\x1F\x03aK3W\x82g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\0\x03aJ\xDAW`@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\x82\x01R`\x18`$\x82\x01R\x7FMIPS64: division by zero\0\0\0\0\0\0\0\0`D\x82\x01R`d\x01a\x03\xCCV[\x82g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x84g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81aJ\xFDWaJ\xFDaS4V[\x06g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x81\x16``\x89\x01R\x83\x81\x16\x90\x85\x16\x81aK\"WaK\"aS4V[\x04g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`@\x88\x01R[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16\x15aKuW\x80\x86\x83g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16` \x81\x10aK`WaK`aS\x05V[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x92\x16` \x92\x90\x92\x02\x01R[PPP` \x84\x01\x80Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x16\x90\x96R`\x04\x01\x90\x94\x16\x90\x93RPPPV[`@Q`\x18\x82\x01Q\x81R`?\x82\x01Q`\x08\x82\x01R`_\x82\x01Q`\t\x82\x01R`x\x82\x01Q`\n\x82\x01R`\x98\x82\x01Q`\x12\x82\x01R`\xB8\x82\x01Q`\x1A\x82\x01R`\xD8\x82\x01Q`\"\x82\x01R`\xE0\x82\x01Q`\0\x91`*\x81\x01\x83[` \x81\x10\x15aL\x13W`\x18\x84\x01Q\x82R` \x90\x93\x01\x92`\x08\x90\x91\x01\x90`\x01\x01aK\xEFV[P`\0\x81R\x81\x90\x03\x90 \x93\x92PPPV[`\0\x80aL0\x83aP^V[`\x07\x84\x16\x15aLdW`@Q\x7F\xE6\xC4${\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\x81\xFD[` \x83\x01\x925`\x05\x85\x90\x1C\x81`;`\0[\x81\x81\x10\x15aL\xCCW` \x88\x01\x975\x84\x82\x1C`\x01\x16\x80\x15aL\x9CW`\x01\x81\x14aL\xB1WaL\xC2V[`\0\x85\x81R` \x83\x90R`@\x90 \x94PaL\xC2V[`\0\x82\x81R` \x86\x90R`@\x90 \x94P[PP`\x01\x01aLuV[PP\x87\x14\x92PP\x81\x15aL\xF3W`\x1F\x85\x16`\x18\x03`\x03\x1B\x81\x90\x1Cg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x92P[P\x93P\x93\x91PPV[`\0\x80\x80h\x07\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF8`\x03\x85\x90\x1B\x16\x81aM\x1C\x82`@aS\x8BV[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x81\x16\x1C\x90P`\0aM8`\x01\x88aS\x8BV[\x19\x88\x16`\x07\x16\x90P`\0aMM\x88`\x08aS\x8BV[\x90P\x88\x82\x16`\0`\x03aM`\x83\x85aS\x8BV[\x95\x9Cg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x96\x16\x90\x1B\x9AP\x94\x98P\x92\x96PPPPPPPV[a\x01\0\x81\x01Q`\x80\x82\x01Q\x82Q`\0\x92\x83\x92\x91\x83\x90\x81\x90g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x15aPUW\x86Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFB\x01aO\xC1W`\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF8\x88` \x01Q\x16\x90P`\0aN\x01\x89a\x01\0\x01Q\x83\x8B`\xE0\x01Qa*\x19V[``\x8A\x01Q\x90\x91P`\0\x1A`\x01\x03aN\x83WaN}\x89``\x01Q\x8A`\xA0\x01Q`@\x80Q`\0\x93\x84R3` R\x91\x81R``\x90\x92 \x91R~\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x17\x90V[``\x8A\x01R[`\0\x80\x8A`\xC0\x01Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xE01\x10\xE1\x8C``\x01Q\x8D`\x80\x01Q`@Q\x83c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01aN\xE0\x92\x91\x90\x91\x82Rg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16` \x82\x01R`@\x01\x90V[`@\x80Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15aN\xFCW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90aO \x91\x90aS\xFBV[` \x8D\x01Q`@\x8E\x01Q\x92\x94P\x90\x92P\x90`\x07\x82\x16`\x08\x81\x90\x03\x84\x81\x10\x15aOFW\x80\x94P[P\x83\x82\x10\x15aOSW\x81\x93P[\x84`\x08\x85\x02a\x01\0\x03\x1C\x94P\x84`\x08\x82\x86`\x08\x03\x03\x02\x1B\x94P`\x01\x80`\x08\x83`\x08\x03\x02\x1B\x03`\x01\x80`\x08\x87\x85`\x08\x03\x03\x02\x1B\x03\x91P\x81\x19\x81\x16\x90P\x85\x81\x19\x88\x16\x17\x96PPPaO\xA7\x86\x8E`\xE0\x01Q\x87a1^V[\x92\x9BPPP\x96\x89\x01\x96\x95P`\x01\x94P\x91\x92PaPU\x91PPV[\x86Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFD\x01aO\xFFW\x86`@\x01Q\x95PaPUV[\x86Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x9C\x01aPEW`\x0B\x95Pg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x94PaPUV[`\t\x95Pg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x94P[\x91\x93\x95P\x91\x93\x95V[6a\x07\x80\x82\x01\x81\x10\x15a\x07\xB1W`@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\x82\x01R`1`$\x82\x01R\x7FMIPS64Memory: check that there i`D\x82\x01R\x7Fs enough calldata\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x03\xCCV[`\0\x80`\0aQ\x02\x87\x86aL\xFCV[Pg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x86\x83\x16\x81\x16\x91\x81\x16\x91\x82\x1B\x92\x16\x90\x1B\x19\x87\x16\x17\x92PPP\x94\x93PPPPV[`@\x80Qa\x01\0\x81\x01\x82R`\0\x80\x82R` \x82\x01\x81\x90R\x91\x81\x01\x82\x90R``\x81\x01\x82\x90R`\x80\x81\x01\x82\x90R`\xA0\x81\x01\x82\x90R`\xC0\x81\x01\x91\x90\x91R`\xE0\x81\x01aQqaQvV[\x90R\x90V[`@Q\x80a\x04\0\x01`@R\x80` \x90` \x82\x02\x806\x837P\x91\x92\x91PPV[`\0` \x80\x83R\x83Q\x80\x82\x85\x01R`\0[\x81\x81\x10\x15aQ\xC2W\x85\x81\x01\x83\x01Q\x85\x82\x01`@\x01R\x82\x01aQ\xA6V[\x81\x81\x11\x15aQ\xD4W`\0`@\x83\x87\x01\x01R[P`\x1F\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x92\x90\x92\x01`@\x01\x93\x92PPPV[`\0\x80\x83`\x1F\x84\x01\x12aR\x1AW`\0\x80\xFD[P\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15aR2W`\0\x80\xFD[` \x83\x01\x91P\x83` \x82\x85\x01\x01\x11\x15a/'W`\0\x80\xFD[`\0\x80`\0\x80`\0``\x86\x88\x03\x12\x15aRbW`\0\x80\xFD[\x855g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15aRzW`\0\x80\xFD[aR\x86\x89\x83\x8A\x01aR\x08V[\x90\x97P\x95P` \x88\x015\x91P\x80\x82\x11\x15aR\x9FW`\0\x80\xFD[PaR\xAC\x88\x82\x89\x01aR\x08V[\x96\x99\x95\x98P\x96`@\x015\x94\x93PPPPV[\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`\x11`\x04R`$`\0\xFD[`\0\x82\x19\x82\x11\x15aS\0WaS\0aR\xBEV[P\x01\x90V[\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`2`\x04R`$`\0\xFD[\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`\x12`\x04R`$`\0\xFD[`\0c\xFF\xFF\xFF\xFF\x80\x83\x16\x81\x85\x16\x80\x83\x03\x82\x11\x15aS\x82WaS\x82aR\xBEV[\x01\x94\x93PPPPV[`\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x81\x16\x90\x83\x16\x81\x81\x10\x15aS\xACWaS\xACaR\xBEV[\x03\x93\x92PPPV[`\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x83\x16\x81\x85\x16\x81\x83\x04\x81\x11\x82\x15\x15\x16\x15aS\xDBWaS\xDBaR\xBEV[\x02\x94\x93PPPPV[`\0\x82\x82\x10\x15aS\xF6WaS\xF6aR\xBEV[P\x03\x90V[`\0\x80`@\x83\x85\x03\x12\x15aT\x0EW`\0\x80\xFD[PP\x80Q` \x90\x91\x01Q\x90\x92\x90\x91PV\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidExitedValue()` and selector `0x0136cc76`. +```solidity +error InvalidExitedValue(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidExitedValue; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InvalidExitedValue) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InvalidExitedValue { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidExitedValue { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidExitedValue()"; + const SELECTOR: [u8; 4] = [1u8, 54u8, 204u8, 118u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidMemoryProof()` and selector `0x8e77b2b7`. +```solidity +error InvalidMemoryProof(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidMemoryProof; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InvalidMemoryProof) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InvalidMemoryProof { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidMemoryProof { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidMemoryProof()"; + const SELECTOR: [u8; 4] = [142u8, 119u8, 178u8, 183u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidPC()` and selector `0x3f8200bc`. +```solidity +error InvalidPC(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidPC; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InvalidPC) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InvalidPC { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidPC { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidPC()"; + const SELECTOR: [u8; 4] = [63u8, 130u8, 0u8, 188u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidRMWInstruction()` and selector `0xecf79d0d`. +```solidity +error InvalidRMWInstruction(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidRMWInstruction; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InvalidRMWInstruction) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InvalidRMWInstruction { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidRMWInstruction { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidRMWInstruction()"; + const SELECTOR: [u8; 4] = [236u8, 247u8, 157u8, 13u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidSecondMemoryProof()` and selector `0x834c4cd4`. +```solidity +error InvalidSecondMemoryProof(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidSecondMemoryProof; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: InvalidSecondMemoryProof) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for InvalidSecondMemoryProof { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidSecondMemoryProof { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidSecondMemoryProof()"; + const SELECTOR: [u8; 4] = [131u8, 76u8, 76u8, 212u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `UnsupportedStateVersion()` and selector `0x1f8b02a2`. +```solidity +error UnsupportedStateVersion(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct UnsupportedStateVersion; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: UnsupportedStateVersion) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for UnsupportedStateVersion { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for UnsupportedStateVersion { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "UnsupportedStateVersion()"; + const SELECTOR: [u8; 4] = [31u8, 139u8, 2u8, 162u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + /**Constructor`. +```solidity +constructor(address _oracle, uint256 _stateVersion); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct constructorCall { + #[allow(missing_docs)] + pub _oracle: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _stateVersion: alloy::sol_types::private::primitives::aliases::U256, + } + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: constructorCall) -> Self { + (value._oracle, value._stateVersion) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for constructorCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _oracle: tuple.0, + _stateVersion: tuple.1, + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolConstructor for constructorCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._oracle, + ), + as alloy_sol_types::SolType>::tokenize(&self._stateVersion), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `oracle()` and selector `0x7dc0d1d0`. +```solidity +function oracle() external view returns (address oracle_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct oracleCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`oracle()`](oracleCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct oracleReturn { + #[allow(missing_docs)] + pub oracle_: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: oracleCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for oracleCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: oracleReturn) -> Self { + (value.oracle_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for oracleReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { oracle_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for oracleCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "oracle()"; + const SELECTOR: [u8; 4] = [125u8, 192u8, 209u8, 208u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: oracleReturn = r.into(); + r.oracle_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: oracleReturn = r.into(); + r.oracle_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `stateVersion()` and selector `0x1219a4e4`. +```solidity +function stateVersion() external view returns (uint256 stateVersion_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct stateVersionCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`stateVersion()`](stateVersionCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct stateVersionReturn { + #[allow(missing_docs)] + pub stateVersion_: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: stateVersionCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for stateVersionCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: stateVersionReturn) -> Self { + (value.stateVersion_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for stateVersionReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { stateVersion_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for stateVersionCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "stateVersion()"; + const SELECTOR: [u8; 4] = [18u8, 25u8, 164u8, 228u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: stateVersionReturn = r.into(); + r.stateVersion_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: stateVersionReturn = r.into(); + r.stateVersion_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `step(bytes,bytes,bytes32)` and selector `0xe14ced32`. +```solidity +function step(bytes memory _stateData, bytes memory _proof, bytes32 _localContext) external returns (bytes32 postState_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct stepCall { + #[allow(missing_docs)] + pub _stateData: alloy::sol_types::private::Bytes, + #[allow(missing_docs)] + pub _proof: alloy::sol_types::private::Bytes, + #[allow(missing_docs)] + pub _localContext: alloy::sol_types::private::FixedBytes<32>, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`step(bytes,bytes,bytes32)`](stepCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct stepReturn { + #[allow(missing_docs)] + pub postState_: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Bytes, + alloy::sol_types::sol_data::Bytes, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Bytes, + alloy::sol_types::private::Bytes, + alloy::sol_types::private::FixedBytes<32>, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: stepCall) -> Self { + (value._stateData, value._proof, value._localContext) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for stepCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _stateData: tuple.0, + _proof: tuple.1, + _localContext: tuple.2, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: stepReturn) -> Self { + (value.postState_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for stepReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { postState_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for stepCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Bytes, + alloy::sol_types::sol_data::Bytes, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::FixedBytes<32>; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "step(bytes,bytes,bytes32)"; + const SELECTOR: [u8; 4] = [225u8, 76u8, 237u8, 50u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._stateData, + ), + ::tokenize( + &self._proof, + ), + as alloy_sol_types::SolType>::tokenize(&self._localContext), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: stepReturn = r.into(); + r.postState_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: stepReturn = r.into(); + r.postState_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `version()` and selector `0x54fd4d50`. +```solidity +function version() external view returns (string memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`version()`](versionCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for versionCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::String; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "version()"; + const SELECTOR: [u8; 4] = [84u8, 253u8, 77u8, 80u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + } + }; + ///Container for all the [`MIPS64`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum MIPS64Calls { + #[allow(missing_docs)] + oracle(oracleCall), + #[allow(missing_docs)] + stateVersion(stateVersionCall), + #[allow(missing_docs)] + step(stepCall), + #[allow(missing_docs)] + version(versionCall), + } + impl MIPS64Calls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [18u8, 25u8, 164u8, 228u8], + [84u8, 253u8, 77u8, 80u8], + [125u8, 192u8, 209u8, 208u8], + [225u8, 76u8, 237u8, 50u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(stateVersion), + ::core::stringify!(version), + ::core::stringify!(oracle), + ::core::stringify!(step), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for MIPS64Calls { + const NAME: &'static str = "MIPS64Calls"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 4usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::oracle(_) => ::SELECTOR, + Self::stateVersion(_) => { + ::SELECTOR + } + Self::step(_) => ::SELECTOR, + Self::version(_) => ::SELECTOR, + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn(&[u8]) -> alloy_sol_types::Result] = &[ + { + fn stateVersion( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(MIPS64Calls::stateVersion) + } + stateVersion + }, + { + fn version(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(MIPS64Calls::version) + } + version + }, + { + fn oracle(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(MIPS64Calls::oracle) + } + oracle + }, + { + fn step(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(MIPS64Calls::step) + } + step + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn stateVersion( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(MIPS64Calls::stateVersion) + } + stateVersion + }, + { + fn version(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(MIPS64Calls::version) + } + version + }, + { + fn oracle(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(MIPS64Calls::oracle) + } + oracle + }, + { + fn step(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(MIPS64Calls::step) + } + step + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::oracle(inner) => { + ::abi_encoded_size(inner) + } + Self::stateVersion(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::step(inner) => { + ::abi_encoded_size(inner) + } + Self::version(inner) => { + ::abi_encoded_size(inner) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::oracle(inner) => { + ::abi_encode_raw(inner, out) + } + Self::stateVersion(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::step(inner) => { + ::abi_encode_raw(inner, out) + } + Self::version(inner) => { + ::abi_encode_raw(inner, out) + } + } + } + } + ///Container for all the [`MIPS64`](self) custom errors. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum MIPS64Errors { + #[allow(missing_docs)] + InvalidExitedValue(InvalidExitedValue), + #[allow(missing_docs)] + InvalidMemoryProof(InvalidMemoryProof), + #[allow(missing_docs)] + InvalidPC(InvalidPC), + #[allow(missing_docs)] + InvalidRMWInstruction(InvalidRMWInstruction), + #[allow(missing_docs)] + InvalidSecondMemoryProof(InvalidSecondMemoryProof), + #[allow(missing_docs)] + UnsupportedStateVersion(UnsupportedStateVersion), + } + impl MIPS64Errors { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [1u8, 54u8, 204u8, 118u8], + [31u8, 139u8, 2u8, 162u8], + [63u8, 130u8, 0u8, 188u8], + [131u8, 76u8, 76u8, 212u8], + [142u8, 119u8, 178u8, 183u8], + [236u8, 247u8, 157u8, 13u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(InvalidExitedValue), + ::core::stringify!(UnsupportedStateVersion), + ::core::stringify!(InvalidPC), + ::core::stringify!(InvalidSecondMemoryProof), + ::core::stringify!(InvalidMemoryProof), + ::core::stringify!(InvalidRMWInstruction), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for MIPS64Errors { + const NAME: &'static str = "MIPS64Errors"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 6usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::InvalidExitedValue(_) => { + ::SELECTOR + } + Self::InvalidMemoryProof(_) => { + ::SELECTOR + } + Self::InvalidPC(_) => ::SELECTOR, + Self::InvalidRMWInstruction(_) => { + ::SELECTOR + } + Self::InvalidSecondMemoryProof(_) => { + ::SELECTOR + } + Self::UnsupportedStateVersion(_) => { + ::SELECTOR + } + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn(&[u8]) -> alloy_sol_types::Result] = &[ + { + fn InvalidExitedValue( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(MIPS64Errors::InvalidExitedValue) + } + InvalidExitedValue + }, + { + fn UnsupportedStateVersion( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(MIPS64Errors::UnsupportedStateVersion) + } + UnsupportedStateVersion + }, + { + fn InvalidPC(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(MIPS64Errors::InvalidPC) + } + InvalidPC + }, + { + fn InvalidSecondMemoryProof( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(MIPS64Errors::InvalidSecondMemoryProof) + } + InvalidSecondMemoryProof + }, + { + fn InvalidMemoryProof( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(MIPS64Errors::InvalidMemoryProof) + } + InvalidMemoryProof + }, + { + fn InvalidRMWInstruction( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(MIPS64Errors::InvalidRMWInstruction) + } + InvalidRMWInstruction + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn InvalidExitedValue( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(MIPS64Errors::InvalidExitedValue) + } + InvalidExitedValue + }, + { + fn UnsupportedStateVersion( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(MIPS64Errors::UnsupportedStateVersion) + } + UnsupportedStateVersion + }, + { + fn InvalidPC(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(MIPS64Errors::InvalidPC) + } + InvalidPC + }, + { + fn InvalidSecondMemoryProof( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(MIPS64Errors::InvalidSecondMemoryProof) + } + InvalidSecondMemoryProof + }, + { + fn InvalidMemoryProof( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(MIPS64Errors::InvalidMemoryProof) + } + InvalidMemoryProof + }, + { + fn InvalidRMWInstruction( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(MIPS64Errors::InvalidRMWInstruction) + } + InvalidRMWInstruction + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::InvalidExitedValue(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::InvalidMemoryProof(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::InvalidPC(inner) => { + ::abi_encoded_size(inner) + } + Self::InvalidRMWInstruction(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::InvalidSecondMemoryProof(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::UnsupportedStateVersion(inner) => { + ::abi_encoded_size( + inner, + ) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::InvalidExitedValue(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidMemoryProof(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidPC(inner) => { + ::abi_encode_raw(inner, out) + } + Self::InvalidRMWInstruction(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidSecondMemoryProof(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::UnsupportedStateVersion(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`MIPS64`](self) contract instance. + +See the [wrapper's documentation](`MIPS64Instance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> MIPS64Instance { + MIPS64Instance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + _oracle: alloy::sol_types::private::Address, + _stateVersion: alloy::sol_types::private::primitives::aliases::U256, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + MIPS64Instance::::deploy(__provider, _oracle, _stateVersion) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + _oracle: alloy::sol_types::private::Address, + _stateVersion: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::RawCallBuilder { + MIPS64Instance::::deploy_builder(__provider, _oracle, _stateVersion) + } + /**A [`MIPS64`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`MIPS64`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct MIPS64Instance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for MIPS64Instance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("MIPS64Instance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > MIPS64Instance { + /**Creates a new wrapper around an on-chain [`MIPS64`](self) contract instance. + +See the [wrapper's documentation](`MIPS64Instance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + _oracle: alloy::sol_types::private::Address, + _stateVersion: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider, _oracle, _stateVersion); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder( + __provider: P, + _oracle: alloy::sol_types::private::Address, + _stateVersion: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + [ + &BYTECODE[..], + &alloy_sol_types::SolConstructor::abi_encode( + &constructorCall { + _oracle, + _stateVersion, + }, + )[..], + ] + .concat() + .into(), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl MIPS64Instance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> MIPS64Instance { + MIPS64Instance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > MIPS64Instance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`oracle`] function. + pub fn oracle(&self) -> alloy_contract::SolCallBuilder<&P, oracleCall, N> { + self.call_builder(&oracleCall) + } + ///Creates a new call builder for the [`stateVersion`] function. + pub fn stateVersion( + &self, + ) -> alloy_contract::SolCallBuilder<&P, stateVersionCall, N> { + self.call_builder(&stateVersionCall) + } + ///Creates a new call builder for the [`step`] function. + pub fn step( + &self, + _stateData: alloy::sol_types::private::Bytes, + _proof: alloy::sol_types::private::Bytes, + _localContext: alloy::sol_types::private::FixedBytes<32>, + ) -> alloy_contract::SolCallBuilder<&P, stepCall, N> { + self.call_builder( + &stepCall { + _stateData, + _proof, + _localContext, + }, + ) + } + ///Creates a new call builder for the [`version`] function. + pub fn version(&self) -> alloy_contract::SolCallBuilder<&P, versionCall, N> { + self.call_builder(&versionCall) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > MIPS64Instance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + } +} diff --git a/bindings/rust/src/mips64_arch.rs b/bindings/rust/src/mips64_arch.rs new file mode 100644 index 000000000..cce74034a --- /dev/null +++ b/bindings/rust/src/mips64_arch.rs @@ -0,0 +1,215 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface MIPS64Arch {} +``` + +...which was generated by the following JSON ABI: +```json +[] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod MIPS64Arch { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`-`7`\x0B\x82\x82\x829\x80Q`\0\x1A`s\x14`*WcNH{q`\xE0\x1B`\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`\0\x80\xFD\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + 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`\0\x80\xFD\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`MIPS64Arch`](self) contract instance. + +See the [wrapper's documentation](`MIPS64ArchInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> MIPS64ArchInstance { + MIPS64ArchInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + MIPS64ArchInstance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + MIPS64ArchInstance::::deploy_builder(__provider) + } + /**A [`MIPS64Arch`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`MIPS64Arch`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct MIPS64ArchInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for MIPS64ArchInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("MIPS64ArchInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > MIPS64ArchInstance { + /**Creates a new wrapper around an on-chain [`MIPS64Arch`](self) contract instance. + +See the [wrapper's documentation](`MIPS64ArchInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl MIPS64ArchInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> MIPS64ArchInstance { + MIPS64ArchInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > MIPS64ArchInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > MIPS64ArchInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + } +} diff --git a/bindings/rust/src/mips64_instructions.rs b/bindings/rust/src/mips64_instructions.rs new file mode 100644 index 000000000..847e2faec --- /dev/null +++ b/bindings/rust/src/mips64_instructions.rs @@ -0,0 +1,438 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface MIPS64Instructions { + error InvalidPC(); +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "error", + "name": "InvalidPC", + "inputs": [] + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod MIPS64Instructions { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`-`7`\x0B\x82\x82\x829\x80Q`\0\x1A`s\x14`*WcNH{q`\xE0\x1B`\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`\0\x80\xFD\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + 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`\0\x80\xFD\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidPC()` and selector `0x3f8200bc`. +```solidity +error InvalidPC(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidPC; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InvalidPC) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InvalidPC { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidPC { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidPC()"; + const SELECTOR: [u8; 4] = [63u8, 130u8, 0u8, 188u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + ///Container for all the [`MIPS64Instructions`](self) custom errors. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum MIPS64InstructionsErrors { + #[allow(missing_docs)] + InvalidPC(InvalidPC), + } + impl MIPS64InstructionsErrors { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[[63u8, 130u8, 0u8, 188u8]]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(InvalidPC), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for MIPS64InstructionsErrors { + const NAME: &'static str = "MIPS64InstructionsErrors"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 1usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::InvalidPC(_) => ::SELECTOR, + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn InvalidPC( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(MIPS64InstructionsErrors::InvalidPC) + } + InvalidPC + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn InvalidPC( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(MIPS64InstructionsErrors::InvalidPC) + } + InvalidPC + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::InvalidPC(inner) => { + ::abi_encoded_size(inner) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::InvalidPC(inner) => { + ::abi_encode_raw(inner, out) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`MIPS64Instructions`](self) contract instance. + +See the [wrapper's documentation](`MIPS64InstructionsInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> MIPS64InstructionsInstance { + MIPS64InstructionsInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + MIPS64InstructionsInstance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + MIPS64InstructionsInstance::::deploy_builder(__provider) + } + /**A [`MIPS64Instructions`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`MIPS64Instructions`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct MIPS64InstructionsInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for MIPS64InstructionsInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("MIPS64InstructionsInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > MIPS64InstructionsInstance { + /**Creates a new wrapper around an on-chain [`MIPS64Instructions`](self) contract instance. + +See the [wrapper's documentation](`MIPS64InstructionsInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl MIPS64InstructionsInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> MIPS64InstructionsInstance { + MIPS64InstructionsInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > MIPS64InstructionsInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > MIPS64InstructionsInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + } +} diff --git a/bindings/rust/src/mips64_memory.rs b/bindings/rust/src/mips64_memory.rs new file mode 100644 index 000000000..64ba9f44e --- /dev/null +++ b/bindings/rust/src/mips64_memory.rs @@ -0,0 +1,215 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface MIPS64Memory {} +``` + +...which was generated by the following JSON ABI: +```json +[] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod MIPS64Memory { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`-`7`\x0B\x82\x82\x829\x80Q`\0\x1A`s\x14`*WcNH{q`\xE0\x1B`\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`\0\x80\xFD\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + 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`\0\x80\xFD\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`MIPS64Memory`](self) contract instance. + +See the [wrapper's documentation](`MIPS64MemoryInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> MIPS64MemoryInstance { + MIPS64MemoryInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + MIPS64MemoryInstance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + MIPS64MemoryInstance::::deploy_builder(__provider) + } + /**A [`MIPS64Memory`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`MIPS64Memory`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct MIPS64MemoryInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for MIPS64MemoryInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("MIPS64MemoryInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > MIPS64MemoryInstance { + /**Creates a new wrapper around an on-chain [`MIPS64Memory`](self) contract instance. + +See the [wrapper's documentation](`MIPS64MemoryInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl MIPS64MemoryInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> MIPS64MemoryInstance { + MIPS64MemoryInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > MIPS64MemoryInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > MIPS64MemoryInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + } +} diff --git a/bindings/rust/src/mips64_state.rs b/bindings/rust/src/mips64_state.rs new file mode 100644 index 000000000..a2d8cd87b --- /dev/null +++ b/bindings/rust/src/mips64_state.rs @@ -0,0 +1,215 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface MIPS64State {} +``` + +...which was generated by the following JSON ABI: +```json +[] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod MIPS64State { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`-`7`\x0B\x82\x82\x829\x80Q`\0\x1A`s\x14`*WcNH{q`\xE0\x1B`\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`\0\x80\xFD\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + 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`\0\x80\xFD\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`MIPS64State`](self) contract instance. + +See the [wrapper's documentation](`MIPS64StateInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> MIPS64StateInstance { + MIPS64StateInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + MIPS64StateInstance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + MIPS64StateInstance::::deploy_builder(__provider) + } + /**A [`MIPS64State`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`MIPS64State`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct MIPS64StateInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for MIPS64StateInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("MIPS64StateInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > MIPS64StateInstance { + /**Creates a new wrapper around an on-chain [`MIPS64State`](self) contract instance. + +See the [wrapper's documentation](`MIPS64StateInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl MIPS64StateInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> MIPS64StateInstance { + MIPS64StateInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > MIPS64StateInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > MIPS64StateInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + } +} diff --git a/bindings/rust/src/mips64_syscalls.rs b/bindings/rust/src/mips64_syscalls.rs new file mode 100644 index 000000000..81beb8813 --- /dev/null +++ b/bindings/rust/src/mips64_syscalls.rs @@ -0,0 +1,215 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface MIPS64Syscalls {} +``` + +...which was generated by the following JSON ABI: +```json +[] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod MIPS64Syscalls { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`-`7`\x0B\x82\x82\x829\x80Q`\0\x1A`s\x14`*WcNH{q`\xE0\x1B`\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`\0\x80\xFD\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + 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`\0\x80\xFD\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`MIPS64Syscalls`](self) contract instance. + +See the [wrapper's documentation](`MIPS64SyscallsInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> MIPS64SyscallsInstance { + MIPS64SyscallsInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + MIPS64SyscallsInstance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + MIPS64SyscallsInstance::::deploy_builder(__provider) + } + /**A [`MIPS64Syscalls`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`MIPS64Syscalls`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct MIPS64SyscallsInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for MIPS64SyscallsInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("MIPS64SyscallsInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > MIPS64SyscallsInstance { + /**Creates a new wrapper around an on-chain [`MIPS64Syscalls`](self) contract instance. + +See the [wrapper's documentation](`MIPS64SyscallsInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl MIPS64SyscallsInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> MIPS64SyscallsInstance { + MIPS64SyscallsInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > MIPS64SyscallsInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > MIPS64SyscallsInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + } +} diff --git a/bindings/rust/src/mock_system_config.rs b/bindings/rust/src/mock_system_config.rs new file mode 100644 index 000000000..9c6f03b1a --- /dev/null +++ b/bindings/rust/src/mock_system_config.rs @@ -0,0 +1,787 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface MockSystemConfig { + constructor(); + + function guardian() external view returns (address); + function paused() external pure returns (bool); +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "constructor", + "inputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "guardian", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "paused", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "pure" + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod MockSystemConfig { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x608060405234801561001057600080fd5b50600080546001600160a01b03191633179055609b806100316000396000f3fe6080604052348015600f57600080fd5b506004361060325760003560e01c8063452a93201460375780635c975abb146080575b600080fd5b60005460569073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b60405160008152602001607756fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`\0\x80T`\x01`\x01`\xA0\x1B\x03\x19\x163\x17\x90U`\x9B\x80a\x001`\09`\0\xF3\xFE`\x80`@R4\x80\x15`\x0FW`\0\x80\xFD[P`\x046\x10`2W`\x005`\xE0\x1C\x80cE*\x93 \x14`7W\x80c\\\x97Z\xBB\x14`\x80W[`\0\x80\xFD[`\0T`V\x90s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[`@Q`\0\x81R` \x01`wV\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x6080604052348015600f57600080fd5b506004361060325760003560e01c8063452a93201460375780635c975abb146080575b600080fd5b60005460569073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b60405160008152602001607756fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R4\x80\x15`\x0FW`\0\x80\xFD[P`\x046\x10`2W`\x005`\xE0\x1C\x80cE*\x93 \x14`7W\x80c\\\x97Z\xBB\x14`\x80W[`\0\x80\xFD[`\0T`V\x90s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[`@Q`\0\x81R` \x01`wV\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + /**Constructor`. +```solidity +constructor(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct constructorCall {} + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: constructorCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for constructorCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolConstructor for constructorCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `guardian()` and selector `0x452a9320`. +```solidity +function guardian() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct guardianCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`guardian()`](guardianCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct guardianReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: guardianCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for guardianCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: guardianReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for guardianReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for guardianCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "guardian()"; + const SELECTOR: [u8; 4] = [69u8, 42u8, 147u8, 32u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: guardianReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: guardianReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `paused()` and selector `0x5c975abb`. +```solidity +function paused() external pure returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct pausedCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`paused()`](pausedCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct pausedReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: pausedCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for pausedCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: pausedReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for pausedReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for pausedCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "paused()"; + const SELECTOR: [u8; 4] = [92u8, 151u8, 90u8, 187u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: pausedReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: pausedReturn = r.into(); + r._0 + }) + } + } + }; + ///Container for all the [`MockSystemConfig`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum MockSystemConfigCalls { + #[allow(missing_docs)] + guardian(guardianCall), + #[allow(missing_docs)] + paused(pausedCall), + } + impl MockSystemConfigCalls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [69u8, 42u8, 147u8, 32u8], + [92u8, 151u8, 90u8, 187u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(guardian), + ::core::stringify!(paused), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for MockSystemConfigCalls { + const NAME: &'static str = "MockSystemConfigCalls"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 2usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::guardian(_) => ::SELECTOR, + Self::paused(_) => ::SELECTOR, + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn guardian( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(MockSystemConfigCalls::guardian) + } + guardian + }, + { + fn paused( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(MockSystemConfigCalls::paused) + } + paused + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn guardian( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(MockSystemConfigCalls::guardian) + } + guardian + }, + { + fn paused( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(MockSystemConfigCalls::paused) + } + paused + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::guardian(inner) => { + ::abi_encoded_size(inner) + } + Self::paused(inner) => { + ::abi_encoded_size(inner) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::guardian(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::paused(inner) => { + ::abi_encode_raw(inner, out) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`MockSystemConfig`](self) contract instance. + +See the [wrapper's documentation](`MockSystemConfigInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> MockSystemConfigInstance { + MockSystemConfigInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + MockSystemConfigInstance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + MockSystemConfigInstance::::deploy_builder(__provider) + } + /**A [`MockSystemConfig`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`MockSystemConfig`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct MockSystemConfigInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for MockSystemConfigInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("MockSystemConfigInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > MockSystemConfigInstance { + /**Creates a new wrapper around an on-chain [`MockSystemConfig`](self) contract instance. + +See the [wrapper's documentation](`MockSystemConfigInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl MockSystemConfigInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> MockSystemConfigInstance { + MockSystemConfigInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > MockSystemConfigInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`guardian`] function. + pub fn guardian(&self) -> alloy_contract::SolCallBuilder<&P, guardianCall, N> { + self.call_builder(&guardianCall) + } + ///Creates a new call builder for the [`paused`] function. + pub fn paused(&self) -> alloy_contract::SolCallBuilder<&P, pausedCall, N> { + self.call_builder(&pausedCall) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > MockSystemConfigInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + } +} diff --git a/bindings/rust/src/mock_verifier.rs b/bindings/rust/src/mock_verifier.rs new file mode 100644 index 000000000..77475e816 --- /dev/null +++ b/bindings/rust/src/mock_verifier.rs @@ -0,0 +1,1609 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface MockVerifier { + error NotProperGame(); + error Nullified(); + + constructor(address anchorStateRegistry); + + function ANCHOR_STATE_REGISTRY() external view returns (address); + function nullified() external view returns (bool); + function nullify() external; + function verify(bytes memory, bytes32, bytes32) external view returns (bool); +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "constructor", + "inputs": [ + { + "name": "anchorStateRegistry", + "type": "address", + "internalType": "contract IAnchorStateRegistry" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "ANCHOR_STATE_REGISTRY", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract IAnchorStateRegistry" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "nullified", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "nullify", + "inputs": [], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "verify", + "inputs": [ + { + "name": "", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "error", + "name": "NotProperGame", + "inputs": [] + }, + { + "type": "error", + "name": "Nullified", + "inputs": [] + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod MockVerifier { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x60a060405234801561001057600080fd5b5060405161043b38038061043b83398101604081905261002f91610040565b6001600160a01b0316608052610070565b60006020828403121561005257600080fd5b81516001600160a01b038116811461006957600080fd5b9392505050565b6080516103a361009860003960008181605601528181610153015261020801526103a36000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80635e02132e14610051578063ab750e75146100a2578063ece20f36146100c5578063f9df65eb146100cf575b600080fd5b6100787f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b6100b56100b03660046102ee565b6100dc565b6040519015158152602001610099565b6100cd610125565b005b6000546100b59060ff1681565b6000805460ff161561011a576040517fbcf3e86400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b506001949350505050565b6040517f496b9c160000000000000000000000000000000000000000000000000000000081523360048201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063496b9c1690602401602060405180830381865afa1580156101af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d3919061036d565b158061028a57506040517f04e50fed0000000000000000000000000000000000000000000000000000000081523360048201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906304e50fed90602401602060405180830381865afa158015610264573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610288919061036d565b155b156102c1576040517f7c3e4fdb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055565b6000806000806060858703121561030457600080fd5b843567ffffffffffffffff8082111561031c57600080fd5b818701915087601f83011261033057600080fd5b81358181111561033f57600080fd5b88602082850101111561035157600080fd5b6020928301999098509187013596604001359550909350505050565b60006020828403121561037f57600080fd5b8151801515811461038f57600080fd5b939250505056fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\xA0`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`@Qa\x04;8\x03\x80a\x04;\x839\x81\x01`@\x81\x90Ra\0/\x91a\0@V[`\x01`\x01`\xA0\x1B\x03\x16`\x80Ra\0pV[`\0` \x82\x84\x03\x12\x15a\0RW`\0\x80\xFD[\x81Q`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a\0iW`\0\x80\xFD[\x93\x92PPPV[`\x80Qa\x03\xA3a\0\x98`\09`\0\x81\x81`V\x01R\x81\x81a\x01S\x01Ra\x02\x08\x01Ra\x03\xA3`\0\xF3\xFE`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`\x046\x10a\0LW`\x005`\xE0\x1C\x80c^\x02\x13.\x14a\0QW\x80c\xABu\x0Eu\x14a\0\xA2W\x80c\xEC\xE2\x0F6\x14a\0\xC5W\x80c\xF9\xDFe\xEB\x14a\0\xCFW[`\0\x80\xFD[a\0x\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[a\0\xB5a\0\xB06`\x04a\x02\xEEV[a\0\xDCV[`@Q\x90\x15\x15\x81R` \x01a\0\x99V[a\0\xCDa\x01%V[\0[`\0Ta\0\xB5\x90`\xFF\x16\x81V[`\0\x80T`\xFF\x16\x15a\x01\x1AW`@Q\x7F\xBC\xF3\xE8d\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\x01`@Q\x80\x91\x03\x90\xFD[P`\x01\x94\x93PPPPV[`@Q\x7FIk\x9C\x16\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\x81R3`\x04\x82\x01R\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90cIk\x9C\x16\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x01\xAFW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x01\xD3\x91\x90a\x03mV[\x15\x80a\x02\x8AWP`@Q\x7F\x04\xE5\x0F\xED\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\x81R3`\x04\x82\x01R\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90c\x04\xE5\x0F\xED\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x02dW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x02\x88\x91\x90a\x03mV[\x15[\x15a\x02\xC1W`@Q\x7F|>O\xDB\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\x01`@Q\x80\x91\x03\x90\xFD[`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x16`\x01\x17\x90UV[`\0\x80`\0\x80``\x85\x87\x03\x12\x15a\x03\x04W`\0\x80\xFD[\x845g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x03\x1CW`\0\x80\xFD[\x81\x87\x01\x91P\x87`\x1F\x83\x01\x12a\x030W`\0\x80\xFD[\x815\x81\x81\x11\x15a\x03?W`\0\x80\xFD[\x88` \x82\x85\x01\x01\x11\x15a\x03QW`\0\x80\xFD[` \x92\x83\x01\x99\x90\x98P\x91\x87\x015\x96`@\x015\x95P\x90\x93PPPPV[`\0` \x82\x84\x03\x12\x15a\x03\x7FW`\0\x80\xFD[\x81Q\x80\x15\x15\x81\x14a\x03\x8FW`\0\x80\xFD[\x93\x92PPPV\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x608060405234801561001057600080fd5b506004361061004c5760003560e01c80635e02132e14610051578063ab750e75146100a2578063ece20f36146100c5578063f9df65eb146100cf575b600080fd5b6100787f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b6100b56100b03660046102ee565b6100dc565b6040519015158152602001610099565b6100cd610125565b005b6000546100b59060ff1681565b6000805460ff161561011a576040517fbcf3e86400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b506001949350505050565b6040517f496b9c160000000000000000000000000000000000000000000000000000000081523360048201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063496b9c1690602401602060405180830381865afa1580156101af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d3919061036d565b158061028a57506040517f04e50fed0000000000000000000000000000000000000000000000000000000081523360048201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906304e50fed90602401602060405180830381865afa158015610264573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610288919061036d565b155b156102c1576040517f7c3e4fdb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055565b6000806000806060858703121561030457600080fd5b843567ffffffffffffffff8082111561031c57600080fd5b818701915087601f83011261033057600080fd5b81358181111561033f57600080fd5b88602082850101111561035157600080fd5b6020928301999098509187013596604001359550909350505050565b60006020828403121561037f57600080fd5b8151801515811461038f57600080fd5b939250505056fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`\x046\x10a\0LW`\x005`\xE0\x1C\x80c^\x02\x13.\x14a\0QW\x80c\xABu\x0Eu\x14a\0\xA2W\x80c\xEC\xE2\x0F6\x14a\0\xC5W\x80c\xF9\xDFe\xEB\x14a\0\xCFW[`\0\x80\xFD[a\0x\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[a\0\xB5a\0\xB06`\x04a\x02\xEEV[a\0\xDCV[`@Q\x90\x15\x15\x81R` \x01a\0\x99V[a\0\xCDa\x01%V[\0[`\0Ta\0\xB5\x90`\xFF\x16\x81V[`\0\x80T`\xFF\x16\x15a\x01\x1AW`@Q\x7F\xBC\xF3\xE8d\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\x01`@Q\x80\x91\x03\x90\xFD[P`\x01\x94\x93PPPPV[`@Q\x7FIk\x9C\x16\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\x81R3`\x04\x82\x01R\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90cIk\x9C\x16\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x01\xAFW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x01\xD3\x91\x90a\x03mV[\x15\x80a\x02\x8AWP`@Q\x7F\x04\xE5\x0F\xED\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\x81R3`\x04\x82\x01R\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90c\x04\xE5\x0F\xED\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x02dW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x02\x88\x91\x90a\x03mV[\x15[\x15a\x02\xC1W`@Q\x7F|>O\xDB\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\x01`@Q\x80\x91\x03\x90\xFD[`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x16`\x01\x17\x90UV[`\0\x80`\0\x80``\x85\x87\x03\x12\x15a\x03\x04W`\0\x80\xFD[\x845g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x03\x1CW`\0\x80\xFD[\x81\x87\x01\x91P\x87`\x1F\x83\x01\x12a\x030W`\0\x80\xFD[\x815\x81\x81\x11\x15a\x03?W`\0\x80\xFD[\x88` \x82\x85\x01\x01\x11\x15a\x03QW`\0\x80\xFD[` \x92\x83\x01\x99\x90\x98P\x91\x87\x015\x96`@\x015\x95P\x90\x93PPPPV[`\0` \x82\x84\x03\x12\x15a\x03\x7FW`\0\x80\xFD[\x81Q\x80\x15\x15\x81\x14a\x03\x8FW`\0\x80\xFD[\x93\x92PPPV\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `NotProperGame()` and selector `0x7c3e4fdb`. +```solidity +error NotProperGame(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct NotProperGame; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: NotProperGame) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for NotProperGame { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for NotProperGame { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "NotProperGame()"; + const SELECTOR: [u8; 4] = [124u8, 62u8, 79u8, 219u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `Nullified()` and selector `0xbcf3e864`. +```solidity +error Nullified(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct Nullified; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: Nullified) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for Nullified { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for Nullified { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "Nullified()"; + const SELECTOR: [u8; 4] = [188u8, 243u8, 232u8, 100u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + /**Constructor`. +```solidity +constructor(address anchorStateRegistry); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct constructorCall { + #[allow(missing_docs)] + pub anchorStateRegistry: alloy::sol_types::private::Address, + } + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: constructorCall) -> Self { + (value.anchorStateRegistry,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for constructorCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + anchorStateRegistry: tuple.0, + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolConstructor for constructorCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.anchorStateRegistry, + ), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `ANCHOR_STATE_REGISTRY()` and selector `0x5e02132e`. +```solidity +function ANCHOR_STATE_REGISTRY() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ANCHOR_STATE_REGISTRYCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`ANCHOR_STATE_REGISTRY()`](ANCHOR_STATE_REGISTRYCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ANCHOR_STATE_REGISTRYReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: ANCHOR_STATE_REGISTRYCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for ANCHOR_STATE_REGISTRYCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: ANCHOR_STATE_REGISTRYReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for ANCHOR_STATE_REGISTRYReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for ANCHOR_STATE_REGISTRYCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ANCHOR_STATE_REGISTRY()"; + const SELECTOR: [u8; 4] = [94u8, 2u8, 19u8, 46u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: ANCHOR_STATE_REGISTRYReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: ANCHOR_STATE_REGISTRYReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `nullified()` and selector `0xf9df65eb`. +```solidity +function nullified() external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct nullifiedCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`nullified()`](nullifiedCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct nullifiedReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: nullifiedCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for nullifiedCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: nullifiedReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for nullifiedReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for nullifiedCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "nullified()"; + const SELECTOR: [u8; 4] = [249u8, 223u8, 101u8, 235u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: nullifiedReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: nullifiedReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `nullify()` and selector `0xece20f36`. +```solidity +function nullify() external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct nullifyCall; + ///Container type for the return parameters of the [`nullify()`](nullifyCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct nullifyReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: nullifyCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for nullifyCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: nullifyReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for nullifyReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl nullifyReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for nullifyCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = nullifyReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "nullify()"; + const SELECTOR: [u8; 4] = [236u8, 226u8, 15u8, 54u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + nullifyReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `verify(bytes,bytes32,bytes32)` and selector `0xab750e75`. +```solidity +function verify(bytes memory, bytes32, bytes32) external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct verifyCall { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Bytes, + #[allow(missing_docs)] + pub _1: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub _2: alloy::sol_types::private::FixedBytes<32>, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`verify(bytes,bytes32,bytes32)`](verifyCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct verifyReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Bytes, + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Bytes, + alloy::sol_types::private::FixedBytes<32>, + alloy::sol_types::private::FixedBytes<32>, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: verifyCall) -> Self { + (value._0, value._1, value._2) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for verifyCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _0: tuple.0, + _1: tuple.1, + _2: tuple.2, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: verifyReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for verifyReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for verifyCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Bytes, + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "verify(bytes,bytes32,bytes32)"; + const SELECTOR: [u8; 4] = [171u8, 117u8, 14u8, 117u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._0, + ), + as alloy_sol_types::SolType>::tokenize(&self._1), + as alloy_sol_types::SolType>::tokenize(&self._2), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: verifyReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: verifyReturn = r.into(); + r._0 + }) + } + } + }; + ///Container for all the [`MockVerifier`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum MockVerifierCalls { + #[allow(missing_docs)] + ANCHOR_STATE_REGISTRY(ANCHOR_STATE_REGISTRYCall), + #[allow(missing_docs)] + nullified(nullifiedCall), + #[allow(missing_docs)] + nullify(nullifyCall), + #[allow(missing_docs)] + verify(verifyCall), + } + impl MockVerifierCalls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [94u8, 2u8, 19u8, 46u8], + [171u8, 117u8, 14u8, 117u8], + [236u8, 226u8, 15u8, 54u8], + [249u8, 223u8, 101u8, 235u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(ANCHOR_STATE_REGISTRY), + ::core::stringify!(verify), + ::core::stringify!(nullify), + ::core::stringify!(nullified), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for MockVerifierCalls { + const NAME: &'static str = "MockVerifierCalls"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 4usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::ANCHOR_STATE_REGISTRY(_) => { + ::SELECTOR + } + Self::nullified(_) => { + ::SELECTOR + } + Self::nullify(_) => ::SELECTOR, + Self::verify(_) => ::SELECTOR, + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn ANCHOR_STATE_REGISTRY( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(MockVerifierCalls::ANCHOR_STATE_REGISTRY) + } + ANCHOR_STATE_REGISTRY + }, + { + fn verify( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(MockVerifierCalls::verify) + } + verify + }, + { + fn nullify( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(MockVerifierCalls::nullify) + } + nullify + }, + { + fn nullified( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(MockVerifierCalls::nullified) + } + nullified + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn ANCHOR_STATE_REGISTRY( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(MockVerifierCalls::ANCHOR_STATE_REGISTRY) + } + ANCHOR_STATE_REGISTRY + }, + { + fn verify( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(MockVerifierCalls::verify) + } + verify + }, + { + fn nullify( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(MockVerifierCalls::nullify) + } + nullify + }, + { + fn nullified( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(MockVerifierCalls::nullified) + } + nullified + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::ANCHOR_STATE_REGISTRY(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::nullified(inner) => { + ::abi_encoded_size(inner) + } + Self::nullify(inner) => { + ::abi_encoded_size(inner) + } + Self::verify(inner) => { + ::abi_encoded_size(inner) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::ANCHOR_STATE_REGISTRY(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::nullified(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::nullify(inner) => { + ::abi_encode_raw(inner, out) + } + Self::verify(inner) => { + ::abi_encode_raw(inner, out) + } + } + } + } + ///Container for all the [`MockVerifier`](self) custom errors. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum MockVerifierErrors { + #[allow(missing_docs)] + NotProperGame(NotProperGame), + #[allow(missing_docs)] + Nullified(Nullified), + } + impl MockVerifierErrors { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [124u8, 62u8, 79u8, 219u8], + [188u8, 243u8, 232u8, 100u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(NotProperGame), + ::core::stringify!(Nullified), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for MockVerifierErrors { + const NAME: &'static str = "MockVerifierErrors"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 2usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::NotProperGame(_) => { + ::SELECTOR + } + Self::Nullified(_) => ::SELECTOR, + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn NotProperGame( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(MockVerifierErrors::NotProperGame) + } + NotProperGame + }, + { + fn Nullified( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(MockVerifierErrors::Nullified) + } + Nullified + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn NotProperGame( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(MockVerifierErrors::NotProperGame) + } + NotProperGame + }, + { + fn Nullified( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(MockVerifierErrors::Nullified) + } + Nullified + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::NotProperGame(inner) => { + ::abi_encoded_size(inner) + } + Self::Nullified(inner) => { + ::abi_encoded_size(inner) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::NotProperGame(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::Nullified(inner) => { + ::abi_encode_raw(inner, out) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`MockVerifier`](self) contract instance. + +See the [wrapper's documentation](`MockVerifierInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> MockVerifierInstance { + MockVerifierInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + anchorStateRegistry: alloy::sol_types::private::Address, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + MockVerifierInstance::::deploy(__provider, anchorStateRegistry) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + anchorStateRegistry: alloy::sol_types::private::Address, + ) -> alloy_contract::RawCallBuilder { + MockVerifierInstance::::deploy_builder(__provider, anchorStateRegistry) + } + /**A [`MockVerifier`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`MockVerifier`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct MockVerifierInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for MockVerifierInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("MockVerifierInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > MockVerifierInstance { + /**Creates a new wrapper around an on-chain [`MockVerifier`](self) contract instance. + +See the [wrapper's documentation](`MockVerifierInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + anchorStateRegistry: alloy::sol_types::private::Address, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider, anchorStateRegistry); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder( + __provider: P, + anchorStateRegistry: alloy::sol_types::private::Address, + ) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + [ + &BYTECODE[..], + &alloy_sol_types::SolConstructor::abi_encode( + &constructorCall { + anchorStateRegistry, + }, + )[..], + ] + .concat() + .into(), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl MockVerifierInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> MockVerifierInstance { + MockVerifierInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > MockVerifierInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`ANCHOR_STATE_REGISTRY`] function. + pub fn ANCHOR_STATE_REGISTRY( + &self, + ) -> alloy_contract::SolCallBuilder<&P, ANCHOR_STATE_REGISTRYCall, N> { + self.call_builder(&ANCHOR_STATE_REGISTRYCall) + } + ///Creates a new call builder for the [`nullified`] function. + pub fn nullified(&self) -> alloy_contract::SolCallBuilder<&P, nullifiedCall, N> { + self.call_builder(&nullifiedCall) + } + ///Creates a new call builder for the [`nullify`] function. + pub fn nullify(&self) -> alloy_contract::SolCallBuilder<&P, nullifyCall, N> { + self.call_builder(&nullifyCall) + } + ///Creates a new call builder for the [`verify`] function. + pub fn verify( + &self, + _0: alloy::sol_types::private::Bytes, + _1: alloy::sol_types::private::FixedBytes<32>, + _2: alloy::sol_types::private::FixedBytes<32>, + ) -> alloy_contract::SolCallBuilder<&P, verifyCall, N> { + self.call_builder(&verifyCall { _0, _1, _2 }) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > MockVerifierInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + } +} diff --git a/bindings/rust/src/native_asset_liquidity.rs b/bindings/rust/src/native_asset_liquidity.rs new file mode 100644 index 000000000..570c224d1 --- /dev/null +++ b/bindings/rust/src/native_asset_liquidity.rs @@ -0,0 +1,1683 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface NativeAssetLiquidity { + error NativeAssetLiquidity_InsufficientBalance(); + error NativeAssetLiquidity_Unauthorized(); + + event LiquidityDeposited(address indexed caller, uint256 value); + event LiquidityWithdrawn(address indexed caller, uint256 value); + + function deposit() external payable; + function version() external view returns (string memory); + function withdraw(uint256 _amount) external; +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "function", + "name": "deposit", + "inputs": [], + "outputs": [], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "version", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "withdraw", + "inputs": [ + { + "name": "_amount", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "event", + "name": "LiquidityDeposited", + "inputs": [ + { + "name": "caller", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "value", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "LiquidityWithdrawn", + "inputs": [ + { + "name": "caller", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "value", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "error", + "name": "NativeAssetLiquidity_InsufficientBalance", + "inputs": [] + }, + { + "type": "error", + "name": "NativeAssetLiquidity_Unauthorized", + "inputs": [] + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod NativeAssetLiquidity { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x608060405234801561001057600080fd5b5061034d806100206000396000f3fe6080604052600436106100345760003560e01c80632e1a7d4d1461003957806354fd4d501461005b578063d0e30db0146100ba575b600080fd5b34801561004557600080fd5b5061005961005436600461025b565b6100c2565b005b34801561006757600080fd5b506100a46040518060400160405280600581526020017f312e302e3000000000000000000000000000000000000000000000000000000081525081565b6040516100b19190610274565b60405180910390f35b6100596101cb565b3373420000000000000000000000000000000000002a1461010f576040517f565369fa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b47811115610149576040517f7b7f21e900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80336040516101579061024f565b73ffffffffffffffffffffffffffffffffffffffff90911681526020016040518091039082f0905080158015610191573d6000803e3d6000fd5b505060405181815233907fb1cce8684b4ffa8667b4577654e61ee3480d661ee9c27522ac80e211f6bd4d259060200160405180910390a250565b3373420000000000000000000000000000000000002a14610218576040517f565369fa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60405134815233907f7ff07ce9a287649537e4b012e45cf012d90228b12e2b56bb03515a6b5436fcdf9060200160405180910390a2565b6059806102e883390190565b60006020828403121561026d57600080fd5b5035919050565b600060208083528351808285015260005b818110156102a157858101830151858201604001528201610285565b818111156102b3576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01692909201604001939250505056fe608060405260405160593803806059833981016040819052601e91602a565b806001600160a01b0316ff5b600060208284031215603b57600080fd5b81516001600160a01b0381168114605157600080fd5b939250505056fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[Pa\x03M\x80a\0 `\09`\0\xF3\xFE`\x80`@R`\x046\x10a\x004W`\x005`\xE0\x1C\x80c.\x1A}M\x14a\09W\x80cT\xFDMP\x14a\0[W\x80c\xD0\xE3\r\xB0\x14a\0\xBAW[`\0\x80\xFD[4\x80\x15a\0EW`\0\x80\xFD[Pa\0Ya\0T6`\x04a\x02[V[a\0\xC2V[\0[4\x80\x15a\0gW`\0\x80\xFD[Pa\0\xA4`@Q\x80`@\x01`@R\x80`\x05\x81R` \x01\x7F1.0.0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RP\x81V[`@Qa\0\xB1\x91\x90a\x02tV[`@Q\x80\x91\x03\x90\xF3[a\0Ya\x01\xCBV[3sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0*\x14a\x01\x0FW`@Q\x7FVSi\xFA\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\x01`@Q\x80\x91\x03\x90\xFD[G\x81\x11\x15a\x01IW`@Q\x7F{\x7F!\xE9\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\x01`@Q\x80\x91\x03\x90\xFD[\x803`@Qa\x01W\x90a\x02OV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01`@Q\x80\x91\x03\x90\x82\xF0\x90P\x80\x15\x80\x15a\x01\x91W=`\0\x80>=`\0\xFD[PP`@Q\x81\x81R3\x90\x7F\xB1\xCC\xE8hKO\xFA\x86g\xB4WvT\xE6\x1E\xE3H\rf\x1E\xE9\xC2u\"\xAC\x80\xE2\x11\xF6\xBDM%\x90` \x01`@Q\x80\x91\x03\x90\xA2PV[3sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0*\x14a\x02\x18W`@Q\x7FVSi\xFA\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\x01`@Q\x80\x91\x03\x90\xFD[`@Q4\x81R3\x90\x7F\x7F\xF0|\xE9\xA2\x87d\x957\xE4\xB0\x12\xE4\\\xF0\x12\xD9\x02(\xB1.+V\xBB\x03QZkT6\xFC\xDF\x90` \x01`@Q\x80\x91\x03\x90\xA2V[`Y\x80a\x02\xE8\x839\x01\x90V[`\0` \x82\x84\x03\x12\x15a\x02mW`\0\x80\xFD[P5\x91\x90PV[`\0` \x80\x83R\x83Q\x80\x82\x85\x01R`\0[\x81\x81\x10\x15a\x02\xA1W\x85\x81\x01\x83\x01Q\x85\x82\x01`@\x01R\x82\x01a\x02\x85V[\x81\x81\x11\x15a\x02\xB3W`\0`@\x83\x87\x01\x01R[P`\x1F\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x92\x90\x92\x01`@\x01\x93\x92PPPV\xFE`\x80`@R`@Q`Y8\x03\x80`Y\x839\x81\x01`@\x81\x90R`\x1E\x91`*V[\x80`\x01`\x01`\xA0\x1B\x03\x16\xFF[`\0` \x82\x84\x03\x12\x15`;W`\0\x80\xFD[\x81Q`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14`QW`\0\x80\xFD[\x93\x92PPPV\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x6080604052600436106100345760003560e01c80632e1a7d4d1461003957806354fd4d501461005b578063d0e30db0146100ba575b600080fd5b34801561004557600080fd5b5061005961005436600461025b565b6100c2565b005b34801561006757600080fd5b506100a46040518060400160405280600581526020017f312e302e3000000000000000000000000000000000000000000000000000000081525081565b6040516100b19190610274565b60405180910390f35b6100596101cb565b3373420000000000000000000000000000000000002a1461010f576040517f565369fa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b47811115610149576040517f7b7f21e900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80336040516101579061024f565b73ffffffffffffffffffffffffffffffffffffffff90911681526020016040518091039082f0905080158015610191573d6000803e3d6000fd5b505060405181815233907fb1cce8684b4ffa8667b4577654e61ee3480d661ee9c27522ac80e211f6bd4d259060200160405180910390a250565b3373420000000000000000000000000000000000002a14610218576040517f565369fa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60405134815233907f7ff07ce9a287649537e4b012e45cf012d90228b12e2b56bb03515a6b5436fcdf9060200160405180910390a2565b6059806102e883390190565b60006020828403121561026d57600080fd5b5035919050565b600060208083528351808285015260005b818110156102a157858101830151858201604001528201610285565b818111156102b3576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01692909201604001939250505056fe608060405260405160593803806059833981016040819052601e91602a565b806001600160a01b0316ff5b600060208284031215603b57600080fd5b81516001600160a01b0381168114605157600080fd5b939250505056fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R`\x046\x10a\x004W`\x005`\xE0\x1C\x80c.\x1A}M\x14a\09W\x80cT\xFDMP\x14a\0[W\x80c\xD0\xE3\r\xB0\x14a\0\xBAW[`\0\x80\xFD[4\x80\x15a\0EW`\0\x80\xFD[Pa\0Ya\0T6`\x04a\x02[V[a\0\xC2V[\0[4\x80\x15a\0gW`\0\x80\xFD[Pa\0\xA4`@Q\x80`@\x01`@R\x80`\x05\x81R` \x01\x7F1.0.0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RP\x81V[`@Qa\0\xB1\x91\x90a\x02tV[`@Q\x80\x91\x03\x90\xF3[a\0Ya\x01\xCBV[3sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0*\x14a\x01\x0FW`@Q\x7FVSi\xFA\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\x01`@Q\x80\x91\x03\x90\xFD[G\x81\x11\x15a\x01IW`@Q\x7F{\x7F!\xE9\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\x01`@Q\x80\x91\x03\x90\xFD[\x803`@Qa\x01W\x90a\x02OV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01`@Q\x80\x91\x03\x90\x82\xF0\x90P\x80\x15\x80\x15a\x01\x91W=`\0\x80>=`\0\xFD[PP`@Q\x81\x81R3\x90\x7F\xB1\xCC\xE8hKO\xFA\x86g\xB4WvT\xE6\x1E\xE3H\rf\x1E\xE9\xC2u\"\xAC\x80\xE2\x11\xF6\xBDM%\x90` \x01`@Q\x80\x91\x03\x90\xA2PV[3sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0*\x14a\x02\x18W`@Q\x7FVSi\xFA\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\x01`@Q\x80\x91\x03\x90\xFD[`@Q4\x81R3\x90\x7F\x7F\xF0|\xE9\xA2\x87d\x957\xE4\xB0\x12\xE4\\\xF0\x12\xD9\x02(\xB1.+V\xBB\x03QZkT6\xFC\xDF\x90` \x01`@Q\x80\x91\x03\x90\xA2V[`Y\x80a\x02\xE8\x839\x01\x90V[`\0` \x82\x84\x03\x12\x15a\x02mW`\0\x80\xFD[P5\x91\x90PV[`\0` \x80\x83R\x83Q\x80\x82\x85\x01R`\0[\x81\x81\x10\x15a\x02\xA1W\x85\x81\x01\x83\x01Q\x85\x82\x01`@\x01R\x82\x01a\x02\x85V[\x81\x81\x11\x15a\x02\xB3W`\0`@\x83\x87\x01\x01R[P`\x1F\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x92\x90\x92\x01`@\x01\x93\x92PPPV\xFE`\x80`@R`@Q`Y8\x03\x80`Y\x839\x81\x01`@\x81\x90R`\x1E\x91`*V[\x80`\x01`\x01`\xA0\x1B\x03\x16\xFF[`\0` \x82\x84\x03\x12\x15`;W`\0\x80\xFD[\x81Q`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14`QW`\0\x80\xFD[\x93\x92PPPV\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `NativeAssetLiquidity_InsufficientBalance()` and selector `0x7b7f21e9`. +```solidity +error NativeAssetLiquidity_InsufficientBalance(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct NativeAssetLiquidity_InsufficientBalance; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: NativeAssetLiquidity_InsufficientBalance) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for NativeAssetLiquidity_InsufficientBalance { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for NativeAssetLiquidity_InsufficientBalance { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "NativeAssetLiquidity_InsufficientBalance()"; + const SELECTOR: [u8; 4] = [123u8, 127u8, 33u8, 233u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `NativeAssetLiquidity_Unauthorized()` and selector `0x565369fa`. +```solidity +error NativeAssetLiquidity_Unauthorized(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct NativeAssetLiquidity_Unauthorized; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: NativeAssetLiquidity_Unauthorized) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for NativeAssetLiquidity_Unauthorized { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for NativeAssetLiquidity_Unauthorized { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "NativeAssetLiquidity_Unauthorized()"; + const SELECTOR: [u8; 4] = [86u8, 83u8, 105u8, 250u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `LiquidityDeposited(address,uint256)` and selector `0x7ff07ce9a287649537e4b012e45cf012d90228b12e2b56bb03515a6b5436fcdf`. +```solidity +event LiquidityDeposited(address indexed caller, uint256 value); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct LiquidityDeposited { + #[allow(missing_docs)] + pub caller: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub value: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for LiquidityDeposited { + type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "LiquidityDeposited(address,uint256)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 127u8, 240u8, 124u8, 233u8, 162u8, 135u8, 100u8, 149u8, 55u8, 228u8, + 176u8, 18u8, 228u8, 92u8, 240u8, 18u8, 217u8, 2u8, 40u8, 177u8, 46u8, + 43u8, 86u8, 187u8, 3u8, 81u8, 90u8, 107u8, 84u8, 54u8, 252u8, 223u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + caller: topics.1, + value: data.0, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.value), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.caller.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.caller, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for LiquidityDeposited { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&LiquidityDeposited> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &LiquidityDeposited) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `LiquidityWithdrawn(address,uint256)` and selector `0xb1cce8684b4ffa8667b4577654e61ee3480d661ee9c27522ac80e211f6bd4d25`. +```solidity +event LiquidityWithdrawn(address indexed caller, uint256 value); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct LiquidityWithdrawn { + #[allow(missing_docs)] + pub caller: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub value: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for LiquidityWithdrawn { + type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "LiquidityWithdrawn(address,uint256)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 177u8, 204u8, 232u8, 104u8, 75u8, 79u8, 250u8, 134u8, 103u8, 180u8, 87u8, + 118u8, 84u8, 230u8, 30u8, 227u8, 72u8, 13u8, 102u8, 30u8, 233u8, 194u8, + 117u8, 34u8, 172u8, 128u8, 226u8, 17u8, 246u8, 189u8, 77u8, 37u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + caller: topics.1, + value: data.0, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.value), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.caller.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.caller, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for LiquidityWithdrawn { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&LiquidityWithdrawn> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &LiquidityWithdrawn) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `deposit()` and selector `0xd0e30db0`. +```solidity +function deposit() external payable; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct depositCall; + ///Container type for the return parameters of the [`deposit()`](depositCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct depositReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: depositCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for depositCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: depositReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for depositReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl depositReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for depositCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = depositReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "deposit()"; + const SELECTOR: [u8; 4] = [208u8, 227u8, 13u8, 176u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + depositReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `version()` and selector `0x54fd4d50`. +```solidity +function version() external view returns (string memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`version()`](versionCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for versionCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::String; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "version()"; + const SELECTOR: [u8; 4] = [84u8, 253u8, 77u8, 80u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `withdraw(uint256)` and selector `0x2e1a7d4d`. +```solidity +function withdraw(uint256 _amount) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct withdrawCall { + #[allow(missing_docs)] + pub _amount: alloy::sol_types::private::primitives::aliases::U256, + } + ///Container type for the return parameters of the [`withdraw(uint256)`](withdrawCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct withdrawReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: withdrawCall) -> Self { + (value._amount,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for withdrawCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _amount: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: withdrawReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for withdrawReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl withdrawReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for withdrawCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = withdrawReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "withdraw(uint256)"; + const SELECTOR: [u8; 4] = [46u8, 26u8, 125u8, 77u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._amount), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + withdrawReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + ///Container for all the [`NativeAssetLiquidity`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum NativeAssetLiquidityCalls { + #[allow(missing_docs)] + deposit(depositCall), + #[allow(missing_docs)] + version(versionCall), + #[allow(missing_docs)] + withdraw(withdrawCall), + } + impl NativeAssetLiquidityCalls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [46u8, 26u8, 125u8, 77u8], + [84u8, 253u8, 77u8, 80u8], + [208u8, 227u8, 13u8, 176u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(withdraw), + ::core::stringify!(version), + ::core::stringify!(deposit), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for NativeAssetLiquidityCalls { + const NAME: &'static str = "NativeAssetLiquidityCalls"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 3usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::deposit(_) => ::SELECTOR, + Self::version(_) => ::SELECTOR, + Self::withdraw(_) => ::SELECTOR, + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn withdraw( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(NativeAssetLiquidityCalls::withdraw) + } + withdraw + }, + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(NativeAssetLiquidityCalls::version) + } + version + }, + { + fn deposit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(NativeAssetLiquidityCalls::deposit) + } + deposit + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn withdraw( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(NativeAssetLiquidityCalls::withdraw) + } + withdraw + }, + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(NativeAssetLiquidityCalls::version) + } + version + }, + { + fn deposit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(NativeAssetLiquidityCalls::deposit) + } + deposit + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::deposit(inner) => { + ::abi_encoded_size(inner) + } + Self::version(inner) => { + ::abi_encoded_size(inner) + } + Self::withdraw(inner) => { + ::abi_encoded_size(inner) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::deposit(inner) => { + ::abi_encode_raw(inner, out) + } + Self::version(inner) => { + ::abi_encode_raw(inner, out) + } + Self::withdraw(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + } + } + } + ///Container for all the [`NativeAssetLiquidity`](self) custom errors. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum NativeAssetLiquidityErrors { + #[allow(missing_docs)] + NativeAssetLiquidity_InsufficientBalance( + NativeAssetLiquidity_InsufficientBalance, + ), + #[allow(missing_docs)] + NativeAssetLiquidity_Unauthorized(NativeAssetLiquidity_Unauthorized), + } + impl NativeAssetLiquidityErrors { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [86u8, 83u8, 105u8, 250u8], + [123u8, 127u8, 33u8, 233u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(NativeAssetLiquidity_Unauthorized), + ::core::stringify!(NativeAssetLiquidity_InsufficientBalance), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for NativeAssetLiquidityErrors { + const NAME: &'static str = "NativeAssetLiquidityErrors"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 2usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::NativeAssetLiquidity_InsufficientBalance(_) => { + ::SELECTOR + } + Self::NativeAssetLiquidity_Unauthorized(_) => { + ::SELECTOR + } + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn NativeAssetLiquidity_Unauthorized( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + NativeAssetLiquidityErrors::NativeAssetLiquidity_Unauthorized, + ) + } + NativeAssetLiquidity_Unauthorized + }, + { + fn NativeAssetLiquidity_InsufficientBalance( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + NativeAssetLiquidityErrors::NativeAssetLiquidity_InsufficientBalance, + ) + } + NativeAssetLiquidity_InsufficientBalance + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn NativeAssetLiquidity_Unauthorized( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + NativeAssetLiquidityErrors::NativeAssetLiquidity_Unauthorized, + ) + } + NativeAssetLiquidity_Unauthorized + }, + { + fn NativeAssetLiquidity_InsufficientBalance( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + NativeAssetLiquidityErrors::NativeAssetLiquidity_InsufficientBalance, + ) + } + NativeAssetLiquidity_InsufficientBalance + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::NativeAssetLiquidity_InsufficientBalance(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::NativeAssetLiquidity_Unauthorized(inner) => { + ::abi_encoded_size( + inner, + ) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::NativeAssetLiquidity_InsufficientBalance(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::NativeAssetLiquidity_Unauthorized(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + } + } + } + ///Container for all the [`NativeAssetLiquidity`](self) events. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum NativeAssetLiquidityEvents { + #[allow(missing_docs)] + LiquidityDeposited(LiquidityDeposited), + #[allow(missing_docs)] + LiquidityWithdrawn(LiquidityWithdrawn), + } + impl NativeAssetLiquidityEvents { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 32usize]] = &[ + [ + 127u8, 240u8, 124u8, 233u8, 162u8, 135u8, 100u8, 149u8, 55u8, 228u8, + 176u8, 18u8, 228u8, 92u8, 240u8, 18u8, 217u8, 2u8, 40u8, 177u8, 46u8, + 43u8, 86u8, 187u8, 3u8, 81u8, 90u8, 107u8, 84u8, 54u8, 252u8, 223u8, + ], + [ + 177u8, 204u8, 232u8, 104u8, 75u8, 79u8, 250u8, 134u8, 103u8, 180u8, 87u8, + 118u8, 84u8, 230u8, 30u8, 227u8, 72u8, 13u8, 102u8, 30u8, 233u8, 194u8, + 117u8, 34u8, 172u8, 128u8, 226u8, 17u8, 246u8, 189u8, 77u8, 37u8, + ], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(LiquidityDeposited), + ::core::stringify!(LiquidityWithdrawn), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolEventInterface for NativeAssetLiquidityEvents { + const NAME: &'static str = "NativeAssetLiquidityEvents"; + const COUNT: usize = 2usize; + fn decode_raw_log( + topics: &[alloy_sol_types::Word], + data: &[u8], + ) -> alloy_sol_types::Result { + match topics.first().copied() { + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::LiquidityDeposited) + } + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::LiquidityWithdrawn) + } + _ => { + alloy_sol_types::private::Err(alloy_sol_types::Error::InvalidLog { + name: ::NAME, + log: alloy_sol_types::private::Box::new( + alloy_sol_types::private::LogData::new_unchecked( + topics.to_vec(), + data.to_vec().into(), + ), + ), + }) + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for NativeAssetLiquidityEvents { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + match self { + Self::LiquidityDeposited(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::LiquidityWithdrawn(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + } + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + match self { + Self::LiquidityDeposited(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::LiquidityWithdrawn(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`NativeAssetLiquidity`](self) contract instance. + +See the [wrapper's documentation](`NativeAssetLiquidityInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> NativeAssetLiquidityInstance { + NativeAssetLiquidityInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + NativeAssetLiquidityInstance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + NativeAssetLiquidityInstance::::deploy_builder(__provider) + } + /**A [`NativeAssetLiquidity`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`NativeAssetLiquidity`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct NativeAssetLiquidityInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for NativeAssetLiquidityInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("NativeAssetLiquidityInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > NativeAssetLiquidityInstance { + /**Creates a new wrapper around an on-chain [`NativeAssetLiquidity`](self) contract instance. + +See the [wrapper's documentation](`NativeAssetLiquidityInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl NativeAssetLiquidityInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> NativeAssetLiquidityInstance { + NativeAssetLiquidityInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > NativeAssetLiquidityInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`deposit`] function. + pub fn deposit(&self) -> alloy_contract::SolCallBuilder<&P, depositCall, N> { + self.call_builder(&depositCall) + } + ///Creates a new call builder for the [`version`] function. + pub fn version(&self) -> alloy_contract::SolCallBuilder<&P, versionCall, N> { + self.call_builder(&versionCall) + } + ///Creates a new call builder for the [`withdraw`] function. + pub fn withdraw( + &self, + _amount: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, withdrawCall, N> { + self.call_builder(&withdrawCall { _amount }) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > NativeAssetLiquidityInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + ///Creates a new event filter for the [`LiquidityDeposited`] event. + pub fn LiquidityDeposited_filter( + &self, + ) -> alloy_contract::Event<&P, LiquidityDeposited, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`LiquidityWithdrawn`] event. + pub fn LiquidityWithdrawn_filter( + &self, + ) -> alloy_contract::Event<&P, LiquidityWithdrawn, N> { + self.event_filter::() + } + } +} diff --git a/bindings/rust/src/nitro_enclave_verifier.rs b/bindings/rust/src/nitro_enclave_verifier.rs new file mode 100644 index 000000000..eb7d726c1 --- /dev/null +++ b/bindings/rust/src/nitro_enclave_verifier.rs @@ -0,0 +1,14839 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface NitroEnclaveVerifier { + type VerificationResult is uint8; + type ZkCoProcessorType is uint8; + struct Bytes48 { + bytes32 first; + bytes16 second; + } + struct Pcr { + uint64 index; + Bytes48 value; + } + struct VerifierJournal { + VerificationResult result; + uint8 trustedCertsPrefixLen; + uint64 timestamp; + bytes32[] certs; + bytes userData; + bytes nonce; + bytes publicKey; + Pcr[] pcrs; + string moduleId; + } + struct ZkCoProcessorConfig { + bytes32 verifierId; + bytes32 aggregatorId; + address zkVerifier; + } + + error AlreadyInitialized(); + error CallerNotProofSubmitter(); + error CannotRemoveLatestProgramId(ZkCoProcessorType zkCoProcessor, bytes32 identifier); + error CertificateNotFound(bytes32 certHash); + error NewOwnerIsZeroAddress(); + error NoHandoverRequest(); + error NotImplemented(); + error ProgramIdAlreadyLatest(ZkCoProcessorType zkCoProcessor, bytes32 identifier); + error ProgramIdNotFound(ZkCoProcessorType zkCoProcessor, bytes32 identifier); + error RootCertMismatch(bytes32 expected, bytes32 actual); + error Unauthorized(); + error Unknown_Zk_Coprocessor(); + error VerifierVkMismatch(bytes32 expected, bytes32 actual); + error ZeroMaxTimeDiff(); + error ZeroProgramId(); + error ZeroProofSubmitter(); + error ZeroVerifierAddress(); + error ZkRouteFrozen(ZkCoProcessorType zkCoProcessor, bytes4 selector); + error ZkVerifierNotConfigured(ZkCoProcessorType zkCoProcessor); + + event AggregatorIdUpdated(ZkCoProcessorType indexed zkCoProcessor, bytes32 indexed newId); + event AttestationSubmitted(VerificationResult result, ZkCoProcessorType zkCoProcessor, bytes output); + event BatchAttestationSubmitted(bytes32 verifierId, ZkCoProcessorType zkCoProcessor, bytes encodedBatch); + event CertRevoked(bytes32 certHash); + event MaxTimeDiffUpdated(uint64 newMaxTimeDiff); + event OwnershipHandoverCanceled(address indexed pendingOwner); + event OwnershipHandoverRequested(address indexed pendingOwner); + event OwnershipTransferred(address indexed oldOwner, address indexed newOwner); + event ProgramIdRemoved(ZkCoProcessorType indexed zkCoProcessor, bytes32 indexed programId, bool isAggregator); + event ProofSubmitterChanged(address newProofSubmitter); + event RootCertChanged(bytes32 newRootCert); + event VerifierIdUpdated(ZkCoProcessorType indexed zkCoProcessor, bytes32 indexed newId, bytes32 newProofId); + event ZKConfigurationUpdated(ZkCoProcessorType zkCoProcessor, ZkCoProcessorConfig config, bytes32 verifierProofId); + event ZkRouteAdded(ZkCoProcessorType indexed zkCoProcessor, bytes4 indexed selector, address verifier); + event ZkRouteWasFrozen(ZkCoProcessorType indexed zkCoProcessor, bytes4 indexed selector); + + constructor(address _owner, uint64 _maxTimeDiff, bytes32[] _initializeTrustedCerts); + + function addVerifyRoute(ZkCoProcessorType _zkCoProcessor, bytes4 _selector, address _verifier) external; + function batchVerify(bytes memory output, ZkCoProcessorType zkCoprocessor, bytes memory proofBytes) external returns (VerifierJournal[] memory results); + function cancelOwnershipHandover() external payable; + function checkTrustedIntermediateCerts(bytes32[][] memory _report_certs) external view returns (uint8[] memory); + function completeOwnershipHandover(address pendingOwner) external payable; + function freezeVerifyRoute(ZkCoProcessorType _zkCoProcessor, bytes4 _selector) external; + function getAggregatorIds(ZkCoProcessorType _zkCoProcessor) external view returns (bytes32[] memory); + function getVerifierIds(ZkCoProcessorType _zkCoProcessor) external view returns (bytes32[] memory); + function getVerifierProofId(ZkCoProcessorType _zkCoProcessor, bytes32 _verifierId) external view returns (bytes32); + function getZkConfig(ZkCoProcessorType _zkCoProcessor) external view returns (ZkCoProcessorConfig memory); + function getZkVerifier(ZkCoProcessorType _zkCoProcessor, bytes4 _selector) external view returns (address); + function isAggregatorIdSupported(ZkCoProcessorType _zkCoProcessor, bytes32 _aggregatorId) external view returns (bool); + function isVerifierIdSupported(ZkCoProcessorType _zkCoProcessor, bytes32 _verifierId) external view returns (bool); + function maxTimeDiff() external view returns (uint64); + function owner() external view returns (address result); + function ownershipHandoverExpiresAt(address pendingOwner) external view returns (uint256 result); + function proofSubmitter() external view returns (address); + function removeAggregatorId(ZkCoProcessorType _zkCoProcessor, bytes32 _aggregatorId) external; + function removeVerifierId(ZkCoProcessorType _zkCoProcessor, bytes32 _verifierId) external; + function renounceOwnership() external payable; + function requestOwnershipHandover() external payable; + function revokeCert(bytes32 _certHash) external; + function rootCert() external view returns (bytes32); + function setMaxTimeDiff(uint64 _maxTimeDiff) external; + function setProofSubmitter(address _proofSubmitter) external; + function setRootCert(bytes32 _rootCert) external; + function setZkConfiguration(ZkCoProcessorType _zkCoProcessor, ZkCoProcessorConfig memory _config, bytes32 _verifierProofId) external; + function transferOwnership(address newOwner) external payable; + function trustedIntermediateCerts(bytes32 trustedCertHash) external view returns (bool); + function updateAggregatorId(ZkCoProcessorType _zkCoProcessor, bytes32 _newAggregatorId) external; + function updateVerifierId(ZkCoProcessorType _zkCoProcessor, bytes32 _newVerifierId, bytes32 _newVerifierProofId) external; + function verify(bytes memory output, ZkCoProcessorType zkCoprocessor, bytes memory proofBytes) external returns (VerifierJournal memory journal); + function zkConfig(ZkCoProcessorType) external view returns (bytes32 verifierId, bytes32 aggregatorId, address zkVerifier); +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "constructor", + "inputs": [ + { + "name": "_owner", + "type": "address", + "internalType": "address" + }, + { + "name": "_maxTimeDiff", + "type": "uint64", + "internalType": "uint64" + }, + { + "name": "_initializeTrustedCerts", + "type": "bytes32[]", + "internalType": "bytes32[]" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "addVerifyRoute", + "inputs": [ + { + "name": "_zkCoProcessor", + "type": "uint8", + "internalType": "enum ZkCoProcessorType" + }, + { + "name": "_selector", + "type": "bytes4", + "internalType": "bytes4" + }, + { + "name": "_verifier", + "type": "address", + "internalType": "address" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "batchVerify", + "inputs": [ + { + "name": "output", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "zkCoprocessor", + "type": "uint8", + "internalType": "enum ZkCoProcessorType" + }, + { + "name": "proofBytes", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [ + { + "name": "results", + "type": "tuple[]", + "internalType": "struct VerifierJournal[]", + "components": [ + { + "name": "result", + "type": "uint8", + "internalType": "enum VerificationResult" + }, + { + "name": "trustedCertsPrefixLen", + "type": "uint8", + "internalType": "uint8" + }, + { + "name": "timestamp", + "type": "uint64", + "internalType": "uint64" + }, + { + "name": "certs", + "type": "bytes32[]", + "internalType": "bytes32[]" + }, + { + "name": "userData", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "nonce", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "publicKey", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "pcrs", + "type": "tuple[]", + "internalType": "struct Pcr[]", + "components": [ + { + "name": "index", + "type": "uint64", + "internalType": "uint64" + }, + { + "name": "value", + "type": "tuple", + "internalType": "struct Bytes48", + "components": [ + { + "name": "first", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "second", + "type": "bytes16", + "internalType": "bytes16" + } + ] + } + ] + }, + { + "name": "moduleId", + "type": "string", + "internalType": "string" + } + ] + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "cancelOwnershipHandover", + "inputs": [], + "outputs": [], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "checkTrustedIntermediateCerts", + "inputs": [ + { + "name": "_report_certs", + "type": "bytes32[][]", + "internalType": "bytes32[][]" + } + ], + "outputs": [ + { + "name": "", + "type": "uint8[]", + "internalType": "uint8[]" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "completeOwnershipHandover", + "inputs": [ + { + "name": "pendingOwner", + "type": "address", + "internalType": "address" + } + ], + "outputs": [], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "freezeVerifyRoute", + "inputs": [ + { + "name": "_zkCoProcessor", + "type": "uint8", + "internalType": "enum ZkCoProcessorType" + }, + { + "name": "_selector", + "type": "bytes4", + "internalType": "bytes4" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "getAggregatorIds", + "inputs": [ + { + "name": "_zkCoProcessor", + "type": "uint8", + "internalType": "enum ZkCoProcessorType" + } + ], + "outputs": [ + { + "name": "", + "type": "bytes32[]", + "internalType": "bytes32[]" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "getVerifierIds", + "inputs": [ + { + "name": "_zkCoProcessor", + "type": "uint8", + "internalType": "enum ZkCoProcessorType" + } + ], + "outputs": [ + { + "name": "", + "type": "bytes32[]", + "internalType": "bytes32[]" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "getVerifierProofId", + "inputs": [ + { + "name": "_zkCoProcessor", + "type": "uint8", + "internalType": "enum ZkCoProcessorType" + }, + { + "name": "_verifierId", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "outputs": [ + { + "name": "", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "getZkConfig", + "inputs": [ + { + "name": "_zkCoProcessor", + "type": "uint8", + "internalType": "enum ZkCoProcessorType" + } + ], + "outputs": [ + { + "name": "", + "type": "tuple", + "internalType": "struct ZkCoProcessorConfig", + "components": [ + { + "name": "verifierId", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "aggregatorId", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "zkVerifier", + "type": "address", + "internalType": "address" + } + ] + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "getZkVerifier", + "inputs": [ + { + "name": "_zkCoProcessor", + "type": "uint8", + "internalType": "enum ZkCoProcessorType" + }, + { + "name": "_selector", + "type": "bytes4", + "internalType": "bytes4" + } + ], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "isAggregatorIdSupported", + "inputs": [ + { + "name": "_zkCoProcessor", + "type": "uint8", + "internalType": "enum ZkCoProcessorType" + }, + { + "name": "_aggregatorId", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "isVerifierIdSupported", + "inputs": [ + { + "name": "_zkCoProcessor", + "type": "uint8", + "internalType": "enum ZkCoProcessorType" + }, + { + "name": "_verifierId", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "maxTimeDiff", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint64", + "internalType": "uint64" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "owner", + "inputs": [], + "outputs": [ + { + "name": "result", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "ownershipHandoverExpiresAt", + "inputs": [ + { + "name": "pendingOwner", + "type": "address", + "internalType": "address" + } + ], + "outputs": [ + { + "name": "result", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "proofSubmitter", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "removeAggregatorId", + "inputs": [ + { + "name": "_zkCoProcessor", + "type": "uint8", + "internalType": "enum ZkCoProcessorType" + }, + { + "name": "_aggregatorId", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "removeVerifierId", + "inputs": [ + { + "name": "_zkCoProcessor", + "type": "uint8", + "internalType": "enum ZkCoProcessorType" + }, + { + "name": "_verifierId", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "renounceOwnership", + "inputs": [], + "outputs": [], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "requestOwnershipHandover", + "inputs": [], + "outputs": [], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "revokeCert", + "inputs": [ + { + "name": "_certHash", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "rootCert", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "setMaxTimeDiff", + "inputs": [ + { + "name": "_maxTimeDiff", + "type": "uint64", + "internalType": "uint64" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "setProofSubmitter", + "inputs": [ + { + "name": "_proofSubmitter", + "type": "address", + "internalType": "address" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "setRootCert", + "inputs": [ + { + "name": "_rootCert", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "setZkConfiguration", + "inputs": [ + { + "name": "_zkCoProcessor", + "type": "uint8", + "internalType": "enum ZkCoProcessorType" + }, + { + "name": "_config", + "type": "tuple", + "internalType": "struct ZkCoProcessorConfig", + "components": [ + { + "name": "verifierId", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "aggregatorId", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "zkVerifier", + "type": "address", + "internalType": "address" + } + ] + }, + { + "name": "_verifierProofId", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "transferOwnership", + "inputs": [ + { + "name": "newOwner", + "type": "address", + "internalType": "address" + } + ], + "outputs": [], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "trustedIntermediateCerts", + "inputs": [ + { + "name": "trustedCertHash", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "updateAggregatorId", + "inputs": [ + { + "name": "_zkCoProcessor", + "type": "uint8", + "internalType": "enum ZkCoProcessorType" + }, + { + "name": "_newAggregatorId", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "updateVerifierId", + "inputs": [ + { + "name": "_zkCoProcessor", + "type": "uint8", + "internalType": "enum ZkCoProcessorType" + }, + { + "name": "_newVerifierId", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "_newVerifierProofId", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "verify", + "inputs": [ + { + "name": "output", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "zkCoprocessor", + "type": "uint8", + "internalType": "enum ZkCoProcessorType" + }, + { + "name": "proofBytes", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [ + { + "name": "journal", + "type": "tuple", + "internalType": "struct VerifierJournal", + "components": [ + { + "name": "result", + "type": "uint8", + "internalType": "enum VerificationResult" + }, + { + "name": "trustedCertsPrefixLen", + "type": "uint8", + "internalType": "uint8" + }, + { + "name": "timestamp", + "type": "uint64", + "internalType": "uint64" + }, + { + "name": "certs", + "type": "bytes32[]", + "internalType": "bytes32[]" + }, + { + "name": "userData", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "nonce", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "publicKey", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "pcrs", + "type": "tuple[]", + "internalType": "struct Pcr[]", + "components": [ + { + "name": "index", + "type": "uint64", + "internalType": "uint64" + }, + { + "name": "value", + "type": "tuple", + "internalType": "struct Bytes48", + "components": [ + { + "name": "first", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "second", + "type": "bytes16", + "internalType": "bytes16" + } + ] + } + ] + }, + { + "name": "moduleId", + "type": "string", + "internalType": "string" + } + ] + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "zkConfig", + "inputs": [ + { + "name": "", + "type": "uint8", + "internalType": "enum ZkCoProcessorType" + } + ], + "outputs": [ + { + "name": "verifierId", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "aggregatorId", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "zkVerifier", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "event", + "name": "AggregatorIdUpdated", + "inputs": [ + { + "name": "zkCoProcessor", + "type": "uint8", + "indexed": true, + "internalType": "enum ZkCoProcessorType" + }, + { + "name": "newId", + "type": "bytes32", + "indexed": true, + "internalType": "bytes32" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "AttestationSubmitted", + "inputs": [ + { + "name": "result", + "type": "uint8", + "indexed": false, + "internalType": "enum VerificationResult" + }, + { + "name": "zkCoProcessor", + "type": "uint8", + "indexed": false, + "internalType": "enum ZkCoProcessorType" + }, + { + "name": "output", + "type": "bytes", + "indexed": false, + "internalType": "bytes" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "BatchAttestationSubmitted", + "inputs": [ + { + "name": "verifierId", + "type": "bytes32", + "indexed": false, + "internalType": "bytes32" + }, + { + "name": "zkCoProcessor", + "type": "uint8", + "indexed": false, + "internalType": "enum ZkCoProcessorType" + }, + { + "name": "encodedBatch", + "type": "bytes", + "indexed": false, + "internalType": "bytes" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "CertRevoked", + "inputs": [ + { + "name": "certHash", + "type": "bytes32", + "indexed": false, + "internalType": "bytes32" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "MaxTimeDiffUpdated", + "inputs": [ + { + "name": "newMaxTimeDiff", + "type": "uint64", + "indexed": false, + "internalType": "uint64" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "OwnershipHandoverCanceled", + "inputs": [ + { + "name": "pendingOwner", + "type": "address", + "indexed": true, + "internalType": "address" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "OwnershipHandoverRequested", + "inputs": [ + { + "name": "pendingOwner", + "type": "address", + "indexed": true, + "internalType": "address" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "OwnershipTransferred", + "inputs": [ + { + "name": "oldOwner", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "newOwner", + "type": "address", + "indexed": true, + "internalType": "address" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "ProgramIdRemoved", + "inputs": [ + { + "name": "zkCoProcessor", + "type": "uint8", + "indexed": true, + "internalType": "enum ZkCoProcessorType" + }, + { + "name": "programId", + "type": "bytes32", + "indexed": true, + "internalType": "bytes32" + }, + { + "name": "isAggregator", + "type": "bool", + "indexed": false, + "internalType": "bool" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "ProofSubmitterChanged", + "inputs": [ + { + "name": "newProofSubmitter", + "type": "address", + "indexed": false, + "internalType": "address" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "RootCertChanged", + "inputs": [ + { + "name": "newRootCert", + "type": "bytes32", + "indexed": false, + "internalType": "bytes32" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "VerifierIdUpdated", + "inputs": [ + { + "name": "zkCoProcessor", + "type": "uint8", + "indexed": true, + "internalType": "enum ZkCoProcessorType" + }, + { + "name": "newId", + "type": "bytes32", + "indexed": true, + "internalType": "bytes32" + }, + { + "name": "newProofId", + "type": "bytes32", + "indexed": false, + "internalType": "bytes32" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "ZKConfigurationUpdated", + "inputs": [ + { + "name": "zkCoProcessor", + "type": "uint8", + "indexed": false, + "internalType": "enum ZkCoProcessorType" + }, + { + "name": "config", + "type": "tuple", + "indexed": false, + "internalType": "struct ZkCoProcessorConfig", + "components": [ + { + "name": "verifierId", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "aggregatorId", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "zkVerifier", + "type": "address", + "internalType": "address" + } + ] + }, + { + "name": "verifierProofId", + "type": "bytes32", + "indexed": false, + "internalType": "bytes32" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "ZkRouteAdded", + "inputs": [ + { + "name": "zkCoProcessor", + "type": "uint8", + "indexed": true, + "internalType": "enum ZkCoProcessorType" + }, + { + "name": "selector", + "type": "bytes4", + "indexed": true, + "internalType": "bytes4" + }, + { + "name": "verifier", + "type": "address", + "indexed": false, + "internalType": "address" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "ZkRouteWasFrozen", + "inputs": [ + { + "name": "zkCoProcessor", + "type": "uint8", + "indexed": true, + "internalType": "enum ZkCoProcessorType" + }, + { + "name": "selector", + "type": "bytes4", + "indexed": true, + "internalType": "bytes4" + } + ], + "anonymous": false + }, + { + "type": "error", + "name": "AlreadyInitialized", + "inputs": [] + }, + { + "type": "error", + "name": "CallerNotProofSubmitter", + "inputs": [] + }, + { + "type": "error", + "name": "CannotRemoveLatestProgramId", + "inputs": [ + { + "name": "zkCoProcessor", + "type": "uint8", + "internalType": "enum ZkCoProcessorType" + }, + { + "name": "identifier", + "type": "bytes32", + "internalType": "bytes32" + } + ] + }, + { + "type": "error", + "name": "CertificateNotFound", + "inputs": [ + { + "name": "certHash", + "type": "bytes32", + "internalType": "bytes32" + } + ] + }, + { + "type": "error", + "name": "NewOwnerIsZeroAddress", + "inputs": [] + }, + { + "type": "error", + "name": "NoHandoverRequest", + "inputs": [] + }, + { + "type": "error", + "name": "NotImplemented", + "inputs": [] + }, + { + "type": "error", + "name": "ProgramIdAlreadyLatest", + "inputs": [ + { + "name": "zkCoProcessor", + "type": "uint8", + "internalType": "enum ZkCoProcessorType" + }, + { + "name": "identifier", + "type": "bytes32", + "internalType": "bytes32" + } + ] + }, + { + "type": "error", + "name": "ProgramIdNotFound", + "inputs": [ + { + "name": "zkCoProcessor", + "type": "uint8", + "internalType": "enum ZkCoProcessorType" + }, + { + "name": "identifier", + "type": "bytes32", + "internalType": "bytes32" + } + ] + }, + { + "type": "error", + "name": "RootCertMismatch", + "inputs": [ + { + "name": "expected", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "actual", + "type": "bytes32", + "internalType": "bytes32" + } + ] + }, + { + "type": "error", + "name": "Unauthorized", + "inputs": [] + }, + { + "type": "error", + "name": "Unknown_Zk_Coprocessor", + "inputs": [] + }, + { + "type": "error", + "name": "VerifierVkMismatch", + "inputs": [ + { + "name": "expected", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "actual", + "type": "bytes32", + "internalType": "bytes32" + } + ] + }, + { + "type": "error", + "name": "ZeroMaxTimeDiff", + "inputs": [] + }, + { + "type": "error", + "name": "ZeroProgramId", + "inputs": [] + }, + { + "type": "error", + "name": "ZeroProofSubmitter", + "inputs": [] + }, + { + "type": "error", + "name": "ZeroVerifierAddress", + "inputs": [] + }, + { + "type": "error", + "name": "ZkRouteFrozen", + "inputs": [ + { + "name": "zkCoProcessor", + "type": "uint8", + "internalType": "enum ZkCoProcessorType" + }, + { + "name": "selector", + "type": "bytes4", + "internalType": "bytes4" + } + ] + }, + { + "type": "error", + "name": "ZkVerifierNotConfigured", + "inputs": [ + { + "name": "zkCoProcessor", + "type": "uint8", + "internalType": "enum ZkCoProcessorType" + } + ] + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod NitroEnclaveVerifier { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x608060405234801561000f575f5ffd5b506040516138c13803806138c183398101604081905261002e91610125565b816001600160401b03165f0361005757604051635409e3e760e01b815260040160405180910390fd5b600380546001600160401b0319166001600160401b0384161790555f5b81518110156100c457600160025f8484815181106100945761009461022a565b60209081029190910181015182528101919091526040015f20805460ff1916911515919091179055600101610074565b506100ce836100d6565b50505061023e565b6001600160a01b0316638b78c6d819819055805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a350565b634e487b7160e01b5f52604160045260245ffd5b5f5f5f60608486031215610137575f5ffd5b83516001600160a01b038116811461014d575f5ffd5b60208501519093506001600160401b0381168114610169575f5ffd5b60408501519092506001600160401b03811115610184575f5ffd5b8401601f81018613610194575f5ffd5b80516001600160401b038111156101ad576101ad610111565b604051600582901b90603f8201601f191681016001600160401b03811182821017156101db576101db610111565b6040529182526020818401810192908101898411156101f8575f5ffd5b6020850194505b8385101561021b578451808252602095860195909350016101ff565b50809450505050509250925092565b634e487b7160e01b5f52603260045260245ffd5b6136768061024b5f395ff3fe6080604052600436106101f5575f3560e01c8063a12b896a11610117578063e865158e116100ac578063f2fde38b1161007c578063f8b507c711610062578063f8b507c7146105fb578063f9f91b1314610627578063fee81cf4146106a7575f5ffd5b8063f2fde38b146105c9578063f36bb961146105dc575f5ffd5b8063e865158e14610559578063ea9e485714610578578063efa5a35714610597578063f04e283e146105b6575f5ffd5b8063cc05c0b3116100e7578063cc05c0b3146104ce578063d06d5587146104ed578063dd4a471d1461050c578063e3f476951461053a575f5ffd5b8063a12b896a14610438578063af42a98d14610457578063b5ce95b914610483578063c9569bc3146104a2575f5ffd5b8063715018a61161018d57806386546a491161015d57806386546a49146103a85780638cb50c44146103c75780638da5cb5b146103e65780639b1c4e7b14610419575f5ffd5b8063715018a61461032f5780637221e6fc146103375780637354a3f31461035a57806374c183aa14610389575f5ffd5b806358753357116101c8578063587533571461026857806363cd3456146102b857806367451515146102d75780636d114be314610303575f5ffd5b806325692962146101f9578063369855e6146102035780633a837cc21461024157806354d1f13d14610260575b5f5ffd5b6102016106d8565b005b34801561020e575f5ffd5b506003546102239067ffffffffffffffff1681565b60405167ffffffffffffffff90911681526020015b60405180910390f35b34801561024c575f5ffd5b5061020161025b366004612701565b610725565b6102016108bd565b348015610273575f5ffd5b505f546102939073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610238565b3480156102c3575f5ffd5b506102016102d23660046127d8565b6108f6565b3480156102e2575f5ffd5b506102f66102f1366004612809565b610acb565b6040516102389190612822565b34801561030e575f5ffd5b5061032261031d36600461289e565b610b76565b6040516102389190612b33565b610201610cca565b348015610342575f5ffd5b5061034c60045481565b604051908152602001610238565b348015610365575f5ffd5b50610379610374366004612b45565b610cdd565b6040519015158152602001610238565b348015610394575f5ffd5b506102016103a3366004612b6d565b610d2c565b3480156103b3575f5ffd5b506102016103c2366004612b84565b610d70565b3480156103d2575f5ffd5b506102016103e1366004612b6d565b610f87565b3480156103f1575f5ffd5b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754610293565b348015610424575f5ffd5b50610201610433366004612b45565b61103e565b348015610443575f5ffd5b506102936104523660046127d8565b6111e1565b348015610462575f5ffd5b50610476610471366004612809565b611330565b6040516102389190612bc4565b34801561048e575f5ffd5b5061034c61049d366004612b45565b61136d565b3480156104ad575f5ffd5b506104c16104bc36600461289e565b6113b9565b6040516102389190612c06565b3480156104d9575f5ffd5b506102016104e8366004612c87565b6116b1565b3480156104f8575f5ffd5b50610201610507366004612cb7565b61183d565b348015610517575f5ffd5b50610379610526366004612b6d565b60026020525f908152604090205460ff1681565b348015610545575f5ffd5b50610201610554366004612ce7565b611903565b348015610564575f5ffd5b50610476610573366004612809565b6119b5565b348015610583575f5ffd5b50610201610592366004612b45565b6119cf565b3480156105a2575f5ffd5b506103796105b1366004612b45565b611b15565b6102016105c4366004612cb7565b611b2f565b6102016105d7366004612cb7565b611b6c565b3480156105e7575f5ffd5b506102016105f6366004612b45565b611b92565b348015610606575f5ffd5b5061061a610615366004612d00565b611cbe565b6040516102389190612d71565b348015610632575f5ffd5b50610676610641366004612809565b600160208190525f918252604090912080549181015460029091015473ffffffffffffffffffffffffffffffffffffffff1683565b60408051938452602084019290925273ffffffffffffffffffffffffffffffffffffffff1690820152606001610238565b3480156106b2575f5ffd5b5061034c6106c1366004612cb7565b63389a75e1600c9081525f91909152602090205490565b5f6202a30067ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f5fa250565b61072d611e47565b8160015f8560028111156107435761074361291f565b60028111156107545761075461291f565b815260208082019290925260409081015f20835181559183015160018301559190910151600290910180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff90921691909117905581511561085457815161080d9060055f8660028111156107e1576107e161291f565b60028111156107f2576107f261291f565b81526020019081526020015f20611e7c90919063ffffffff16565b508060085f8560028111156108245761082461291f565b60028111156108355761083561291f565b815260208082019290925260409081015f908120865182529092529020555b60208201511561087d5761087b826020015160065f8660028111156107e1576107e161291f565b505b7f8c7491c9018c0b332e7d992d1b37db1a61f4c075cb30e237cc826c52c3166cef8383836040516108b093929190612dbb565b60405180910390a1505050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f5fa2565b6108fe611e47565b5f60075f8460028111156109145761091461291f565b60028111156109255761092561291f565b815260208082019290925260409081015f9081207fffffffff000000000000000000000000000000000000000000000000000000008616825290925290205473ffffffffffffffffffffffffffffffffffffffff1690507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff215381016109e25782826040517f029a2a680000000000000000000000000000000000000000000000000000000081526004016109d9929190612e0e565b60405180910390fd5b61dead60075f8560028111156109fa576109fa61291f565b6002811115610a0b57610a0b61291f565b815260208082019290925260409081015f9081207fffffffff00000000000000000000000000000000000000000000000000000000871680835293522080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9390931692909217909155836002811115610a9e57610a9e61291f565b6040517fcdce14b5df954ed0ddf4bd33cc38717ee1c46e06a27d69962dd7f03f70c449c4905f90a3505050565b610b0260405180606001604052805f81526020015f81526020015f73ffffffffffffffffffffffffffffffffffffffff1681525090565b60015f836002811115610b1757610b1761291f565b6002811115610b2857610b2861291f565b815260208082019290925260409081015f208151606081018352815481526001820154938101939093526002015473ffffffffffffffffffffffffffffffffffffffff169082015292915050565b610bd0604080516101208101909152805f81526020015f60ff1681526020015f67ffffffffffffffff1681526020016060815260200160608152602001606081526020016060815260200160608152602001606081525090565b5f5473ffffffffffffffffffffffffffffffffffffffff163314610c20576040517ffe0232c300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f60015f866002811115610c3657610c3661291f565b6002811115610c4757610c4761291f565b81526020019081526020015f205f01549050610c67858289898888611e87565b610c73868801886131d7565b9150610c7e8261201b565b91507f34d71c5db80e3c1db53f6d245503c531894f694aa26c7a967adf77167b126036825f0151868989604051610cb89493929190613258565b60405180910390a15095945050505050565b610cd2611e47565b610cdb5f6121a6565b565b5f610d238260065f866002811115610cf757610cf761291f565b6002811115610d0857610d0861291f565b81526020019081526020015f2061220b90919063ffffffff16565b90505b92915050565b610d34611e47565b60048190556040518181527f63f2d4dca4c937ba68e57bbddd2b0a3560e5b497593228dbea7372c127c16dc8906020015b60405180910390a150565b610d78611e47565b73ffffffffffffffffffffffffffffffffffffffff8116610dc5576040517f0e3ba0af00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61dead60075f856002811115610ddd57610ddd61291f565b6002811115610dee57610dee61291f565b815260208082019290925260409081015f9081207fffffffff000000000000000000000000000000000000000000000000000000008716825290925290205473ffffffffffffffffffffffffffffffffffffffff1603610e7e5782826040517f029a2a680000000000000000000000000000000000000000000000000000000081526004016109d9929190612e0e565b8060075f856002811115610e9457610e9461291f565b6002811115610ea557610ea561291f565b815260208082019290925260409081015f9081207fffffffff00000000000000000000000000000000000000000000000000000000871680835293522080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9390931692909217909155836002811115610f3857610f3861291f565b60405173ffffffffffffffffffffffffffffffffffffffff841681527f760c87aaca384c3dc82d5bcce05884a75cf787ef7f7cacaef26a6822b2831dd4906020015b60405180910390a3505050565b610f8f611e47565b5f8181526002602052604090205460ff16610fd9576040517f7585e638000000000000000000000000000000000000000000000000000000008152600481018290526024016109d9565b5f818152600260205260409081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055517f49f59bec846fd3588d7d4900a9d7698f294a73043ed6c407d5c2cfa90b8b90d790610d659083815260200190565b611046611e47565b61105f8160055f856002811115610cf757610cf761291f565b6110995781816040517fbe59a1ed0000000000000000000000000000000000000000000000000000000081526004016109d992919061328f565b8060015f8460028111156110af576110af61291f565b60028111156110c0576110c061291f565b81526020019081526020015f205f01540361110b5781816040517f2c225d2a0000000000000000000000000000000000000000000000000000000081526004016109d992919061328f565b6111508160055f8560028111156111245761112461291f565b60028111156111355761113561291f565b81526020019081526020015f2061222290919063ffffffff16565b5060085f8360028111156111665761116661291f565b60028111156111775761117761291f565b81526020019081526020015f205f8281526020019081526020015f205f9055808260028111156111a9576111a961291f565b6040515f81527fd9178bc498f8a83830cb6db76b6a68922b6da8c25f3b865a6ea2a7451ac8b476906020015b60405180910390a35050565b5f5f60075f8560028111156111f8576111f861291f565b60028111156112095761120961291f565b815260208082019290925260409081015f9081207fffffffff000000000000000000000000000000000000000000000000000000008716825290925290205473ffffffffffffffffffffffffffffffffffffffff1690507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff215381016112bd5783836040517f029a2a680000000000000000000000000000000000000000000000000000000081526004016109d9929190612e0e565b73ffffffffffffffffffffffffffffffffffffffff8116610d235760015f8560028111156112ed576112ed61291f565b60028111156112fe576112fe61291f565b815260208101919091526040015f206002015473ffffffffffffffffffffffffffffffffffffffff169150610d269050565b6060610d2660055f84600281111561134a5761134a61291f565b600281111561135b5761135b61291f565b81526020019081526020015f2061222d565b5f60085f8460028111156113835761138361291f565b60028111156113945761139461291f565b81526020019081526020015f205f8381526020019081526020015f2054905092915050565b5f5460609073ffffffffffffffffffffffffffffffffffffffff16331461140c576040517ffe0232c300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f60015f8660028111156114225761142261291f565b60028111156114335761143361291f565b81526020019081526020015f206001015490505f60015f87600281111561145c5761145c61291f565b600281111561146d5761146d61291f565b81526020019081526020015f205f015490505f60085f8860028111156114955761149561291f565b60028111156114a6576114a661291f565b81526020019081526020015f205f8381526020019081526020015f205490506114d387848b8b8a8a611e87565b5f6114e0898b018b6132aa565b8051909150821461152a5780516040517f21b9587c0000000000000000000000000000000000000000000000000000000081526109d9918491600401918252602082015260400190565b6020810151518067ffffffffffffffff81111561154957611549612615565b6040519080825280602002602001820160405280156115d457816020015b6115c1604080516101208101909152805f81526020015f60ff1681526020015f67ffffffffffffffff1681526020016060815260200160608152602001606081526020016060815260200160608152602001606081525090565b8152602001906001900390816115675790505b5095505f5b8181101561162c57611607836020015182815181106115fa576115fa61339b565b602002602001015161201b565b8782815181106116195761161961339b565b60209081029190910101526001016115d9565b507fdfa767ad54931d8d889f34b418a66f09a0bec3406debbd9decbb8ce919c24ffe848a886040516020016116619190612c06565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529082905261169b9392916133c8565b60405180910390a1505050505095945050505050565b6116b9611e47565b816116f0576040517f41a463a500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8160015f8560028111156117065761170661291f565b60028111156117175761171761291f565b81526020019081526020015f205f0154036117625782826040517ff3df69dc0000000000000000000000000000000000000000000000000000000081526004016109d992919061328f565b8160015f8560028111156117785761177861291f565b60028111156117895761178961291f565b81526020019081526020015f205f01819055506117b58260055f8660028111156107e1576107e161291f565b508060085f8560028111156117cc576117cc61291f565b60028111156117dd576117dd61291f565b815260208082019290925260409081015f9081208682529092529020558183600281111561180d5761180d61291f565b6040518381527f51084eb34dac0e8c796b2741ed1a6fed727311fc435b0af0dac30f0581dbce4990602001610f7a565b611845611e47565b73ffffffffffffffffffffffffffffffffffffffff8116611891576040517e9ef5cb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040519081527f6f4e85fb3166a80d086aca6e527682a6c1128bfee79107af6d4216f843e2017090602001610d65565b61190b611e47565b8067ffffffffffffffff165f0361194e576040517f5409e3e700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600380547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001667ffffffffffffffff83169081179091556040519081527fc620470b92e1af69c914495bff0725d3f9ddef58f4e3dad2d2e5b2f4bf63f0e390602001610d65565b6060610d2660065f84600281111561134a5761134a61291f565b6119d7611e47565b80611a0e576040517f41a463a500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060015f846002811115611a2457611a2461291f565b6002811115611a3557611a3561291f565b81526020019081526020015f206001015403611a815781816040517ff3df69dc0000000000000000000000000000000000000000000000000000000081526004016109d992919061328f565b8060015f846002811115611a9757611a9761291f565b6002811115611aa857611aa861291f565b81526020019081526020015f2060010181905550611ad58160065f8560028111156107e1576107e161291f565b5080826002811115611ae957611ae961291f565b6040517fa13c7e79c76dcced91cc62c49db73a3a02935aef810eea7b7942625e94bc4070905f90a35050565b5f610d238260055f866002811115610cf757610cf761291f565b611b37611e47565b63389a75e1600c52805f526020600c208054421115611b5d57636f5e88185f526004601cfd5b5f9055611b69816121a6565b50565b611b74611e47565b8060601b611b8957637448fbae5f526004601cfd5b611b69816121a6565b611b9a611e47565b611bb38160065f856002811115610cf757610cf761291f565b611bed5781816040517fbe59a1ed0000000000000000000000000000000000000000000000000000000081526004016109d992919061328f565b8060015f846002811115611c0357611c0361291f565b6002811115611c1457611c1461291f565b81526020019081526020015f206001015403611c605781816040517f2c225d2a0000000000000000000000000000000000000000000000000000000081526004016109d992919061328f565b611c798160065f8560028111156111245761112461291f565b5080826002811115611c8d57611c8d61291f565b604051600181527fd9178bc498f8a83830cb6db76b6a68922b6da8c25f3b865a6ea2a7451ac8b476906020016111d5565b60605f8267ffffffffffffffff811115611cda57611cda612615565b604051908082528060200260200182016040528015611d03578160200160208202803683370190505b506004549091505f5b84811015611e3d57365f878784818110611d2857611d2861339b565b9050602002810190611d3a91906133ed565b909250905060018483835f81611d5257611d5261339b565b9050602002013514611db5578483835f818110611d7157611d7161339b565b905060200201356040517fe4ac496b0000000000000000000000000000000000000000000000000000000081526004016109d9929190918252602082015260400190565b60015b82811015611e0b5760025f858584818110611dd557611dd561339b565b602090810292909201358352508101919091526040015f205460ff1615611e0b57611e0160018361347e565b9150600101611db8565b5080868581518110611e1f57611e1f61339b565b60ff9290921660209283029190910190910152505050600101611d0c565b5090949350505050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927543314610cdb576382b429005f526004601cfd5b5f610d238383612238565b5f611e93878484612284565b90506001876002811115611ea957611ea961291f565b03611f6d578073ffffffffffffffffffffffffffffffffffffffff1663ab750e7584848960028a8a604051611edf929190613497565b602060405180830381855afa158015611efa573d5f5f3e3d5ffd5b5050506040513d601f19601f82011682018060405250810190611f1d91906134a6565b6040518563ffffffff1660e01b8152600401611f3c94939291906134bd565b5f6040518083038186803b158015611f52575f5ffd5b505afa158015611f64573d5f5f3e3d5ffd5b50505050612012565b6002876002811115611f8157611f8161291f565b03611fe0576040517f41493c6000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8216906341493c6090611f3c90899089908990899089906004016134e3565b6040517f51abd95c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505050505050565b612075604080516101208101909152805f81526020015f60ff1681526020015f67ffffffffffffffff1681526020016060815260200160608152602001606081526020016060815260200160608152602001606081525090565b5f825160038111156120895761208961291f565b14612092575090565b816020015160ff165f036120a857506001815290565b5f5b826020015160ff16811015612139575f836060015182815181106120d0576120d061339b565b60200260200101519050815f0361211257600454811461210c578360015b908160038111156121015761210161291f565b905250929392505050565b50612131565b5f8181526002602052604090205460ff1661212f578360026120ee565b505b6001016120aa565b505f6103e8836040015161214d919061351b565b60035490915042906121699067ffffffffffffffff168361356f565b67ffffffffffffffff1610806121885750428167ffffffffffffffff16115b156121965750506003815290565b61219f8361243e565b5090919050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927805473ffffffffffffffffffffffffffffffffffffffff9092169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a355565b5f8181526001830160205260408120541515610d23565b5f610d2383836124bf565b6060610d26826125a9565b5f81815260018301602052604081205461227d57508154600181810184555f848152602080822090930184905584548482528286019093526040902091909155610d26565b505f610d26565b5f80612293600482858761358f565b61229c916135b6565b90505f60075f8760028111156122b4576122b461291f565b60028111156122c5576122c561291f565b815260208082019290925260409081015f9081207fffffffff000000000000000000000000000000000000000000000000000000008616825290925290205473ffffffffffffffffffffffffffffffffffffffff1690507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff215381016123795785826040517f029a2a680000000000000000000000000000000000000000000000000000000081526004016109d9929190612e0e565b73ffffffffffffffffffffffffffffffffffffffff81166123e65760015f8760028111156123a9576123a961291f565b60028111156123ba576123ba61291f565b815260208101919091526040015f206002015473ffffffffffffffffffffffffffffffffffffffff1690505b73ffffffffffffffffffffffffffffffffffffffff811661243557856040517fce4bc6d60000000000000000000000000000000000000000000000000000000081526004016109d9919061361b565b95945050505050565b602081015160ff165b8160600151518110156124bb575f8260600151828151811061246b5761246b61339b565b6020908102919091018101515f90815260029091526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001908117909155919091019050612447565b5050565b5f8181526001830160205260408120548015612599575f6124e1600183613629565b85549091505f906124f490600190613629565b9050818114612553575f865f0182815481106125125761251261339b565b905f5260205f200154905080875f0184815481106125325761253261339b565b5f918252602080832090910192909255918252600188019052604090208390555b85548690806125645761256461363c565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f905560019350505050610d26565b5f915050610d26565b5092915050565b6060815f018054806020026020016040519081016040528092919081815260200182805480156125f657602002820191905f5260205f20905b8154815260200190600101908083116125e2575b50505050509050919050565b803560038110612610575f5ffd5b919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040805190810167ffffffffffffffff8111828210171561266557612665612615565b60405290565b604051610120810167ffffffffffffffff8111828210171561266557612665612615565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff811182821017156126d6576126d6612615565b604052919050565b803573ffffffffffffffffffffffffffffffffffffffff81168114612610575f5ffd5b5f5f5f83850360a0811215612714575f5ffd5b61271d85612602565b935060607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08201121561274e575f5ffd5b506040516060810167ffffffffffffffff8111828210171561277257612772612615565b604090815260208681013583529086013590820152612793606086016126de565b6040820152929592945050506080919091013590565b80357fffffffff0000000000000000000000000000000000000000000000000000000081168114612610575f5ffd5b5f5f604083850312156127e9575f5ffd5b6127f283612602565b9150612800602084016127a9565b90509250929050565b5f60208284031215612819575f5ffd5b610d2382612602565b815181526020808301519082015260408083015173ffffffffffffffffffffffffffffffffffffffff169082015260608101610d26565b5f5f83601f840112612869575f5ffd5b50813567ffffffffffffffff811115612880575f5ffd5b602083019150836020828501011115612897575f5ffd5b9250929050565b5f5f5f5f5f606086880312156128b2575f5ffd5b853567ffffffffffffffff8111156128c8575f5ffd5b6128d488828901612859565b90965094506128e7905060208701612602565b9250604086013567ffffffffffffffff811115612902575f5ffd5b61290e88828901612859565b969995985093965092949392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b6004811061295c5761295c61291f565b9052565b5f8151808452602084019350602083015f5b82811015612990578151865260209586019590910190600101612972565b5093949350505050565b5f81518084528060208401602086015e5f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b5f8151808452602084019350602083015f5b82811015612990578151805167ffffffffffffffff1687526020908101518051828901528101517fffffffffffffffffffffffffffffffff00000000000000000000000000000000166040880152606090960195909101906001016129f8565b612a6382825161294c565b5f6020820151612a78602085018260ff169052565b506040820151612a94604085018267ffffffffffffffff169052565b5060608201516101206060850152612ab0610120850182612960565b905060808301518482036080860152612ac9828261299a565b91505060a083015184820360a0860152612ae3828261299a565b91505060c083015184820360c0860152612afd828261299a565b91505060e083015184820360e0860152612b1782826129e6565b915050610100830151848203610100860152612435828261299a565b602081525f610d236020830184612a58565b5f5f60408385031215612b56575f5ffd5b612b5f83612602565b946020939093013593505050565b5f60208284031215612b7d575f5ffd5b5035919050565b5f5f5f60608486031215612b96575f5ffd5b612b9f84612602565b9250612bad602085016127a9565b9150612bbb604085016126de565b90509250925092565b602080825282518282018190525f918401906040840190835b81811015612bfb578351835260209384019390920191600101612bdd565b509095945050505050565b5f602082016020835280845180835260408501915060408160051b8601019250602086015f5b82811015612c7b577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0878603018452612c66858351612a58565b94506020938401939190910190600101612c2c565b50929695505050505050565b5f5f5f60608486031215612c99575f5ffd5b612ca284612602565b95602085013595506040909401359392505050565b5f60208284031215612cc7575f5ffd5b610d23826126de565b803567ffffffffffffffff81168114612610575f5ffd5b5f60208284031215612cf7575f5ffd5b610d2382612cd0565b5f5f60208385031215612d11575f5ffd5b823567ffffffffffffffff811115612d27575f5ffd5b8301601f81018513612d37575f5ffd5b803567ffffffffffffffff811115612d4d575f5ffd5b8560208260051b8401011115612d61575f5ffd5b6020919091019590945092505050565b602080825282518282018190525f918401906040840190835b81811015612bfb57835160ff16835260209384019390920191600101612d8a565b6003811061295c5761295c61291f565b60a08101612dc98286612dab565b612e006020830185805182526020808201519083015260409081015173ffffffffffffffffffffffffffffffffffffffff16910152565b826080830152949350505050565b60408101612e1c8285612dab565b7fffffffff00000000000000000000000000000000000000000000000000000000831660208301529392505050565b803560048110612610575f5ffd5b803560ff81168114612610575f5ffd5b5f67ffffffffffffffff821115612e8257612e82612615565b5060051b60200190565b5f82601f830112612e9b575f5ffd5b8135612eae612ea982612e69565b61268f565b8082825260208201915060208360051b860101925085831115612ecf575f5ffd5b602085015b83811015612eec578035835260209283019201612ed4565b5095945050505050565b5f82601f830112612f05575f5ffd5b8135602083015f5f67ffffffffffffffff841115612f2557612f25612615565b50601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016602001612f588161268f565b915050828152858383011115612f6c575f5ffd5b828260208301375f92810160200192909252509392505050565b5f82601f830112612f95575f5ffd5b8135612fa3612ea982612e69565b80828252602082019150602060608402860101925085831115612fc4575f5ffd5b602085015b83811015612eec578087036060811215612fe1575f5ffd5b612fe9612642565b612ff283612cd0565b815260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe083011215613023575f5ffd5b61302b612642565b60208401358152915060408301357fffffffffffffffffffffffffffffffff0000000000000000000000000000000081168114613066575f5ffd5b6020838101919091528181019290925284529290920191606001612fc9565b5f6101208284031215613096575f5ffd5b61309e61266b565b90506130a982612e4b565b81526130b760208301612e59565b60208201526130c860408301612cd0565b6040820152606082013567ffffffffffffffff8111156130e6575f5ffd5b6130f284828501612e8c565b606083015250608082013567ffffffffffffffff811115613111575f5ffd5b61311d84828501612ef6565b60808301525060a082013567ffffffffffffffff81111561313c575f5ffd5b61314884828501612ef6565b60a08301525060c082013567ffffffffffffffff811115613167575f5ffd5b61317384828501612ef6565b60c08301525060e082013567ffffffffffffffff811115613192575f5ffd5b61319e84828501612f86565b60e08301525061010082013567ffffffffffffffff8111156131be575f5ffd5b6131ca84828501612ef6565b6101008301525092915050565b5f602082840312156131e7575f5ffd5b813567ffffffffffffffff8111156131fd575f5ffd5b61320984828501613085565b949350505050565b81835281816020850137505f602082840101525f60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b613262818661294c565b61326f6020820185612dab565b606060408201525f613285606083018486613211565b9695505050505050565b6040810161329d8285612dab565b8260208301529392505050565b5f602082840312156132ba575f5ffd5b813567ffffffffffffffff8111156132d0575f5ffd5b8201604081850312156132e1575f5ffd5b6132e9612642565b81358152602082013567ffffffffffffffff811115613306575f5ffd5b80830192505084601f83011261331a575f5ffd5b8135613328612ea982612e69565b8082825260208201915060208360051b860101925087831115613349575f5ffd5b602085015b8381101561338a57803567ffffffffffffffff81111561336c575f5ffd5b61337b8a6020838a0101613085565b8452506020928301920161334e565b506020840152509095945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b8381526133d86020820184612dab565b606060408201525f612435606083018461299a565b5f5f83357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112613420575f5ffd5b83018035915067ffffffffffffffff82111561343a575f5ffd5b6020019150600581901b3603821315612897575f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b60ff8181168382160190811115610d2657610d26613451565b818382375f9101908152919050565b5f602082840312156134b6575f5ffd5b5051919050565b606081525f6134d0606083018688613211565b6020830194909452506040015292915050565b858152606060208201525f6134fc606083018688613211565b828103604084015261350f818587613211565b98975050505050505050565b5f67ffffffffffffffff831680613559577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b8067ffffffffffffffff84160491505092915050565b67ffffffffffffffff8181168382160190811115610d2657610d26613451565b5f5f8585111561359d575f5ffd5b838611156135a9575f5ffd5b5050820193919092039150565b80357fffffffff0000000000000000000000000000000000000000000000000000000081169060048410156125a2577fffffffff00000000000000000000000000000000000000000000000000000000808560040360031b1b82161691505092915050565b60208101610d268284612dab565b81810381811115610d2657610d26613451565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffdfea164736f6c634300081e000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R4\x80\x15a\0\x0FW__\xFD[P`@Qa8\xC18\x03\x80a8\xC1\x839\x81\x01`@\x81\x90Ra\0.\x91a\x01%V[\x81`\x01`\x01`@\x1B\x03\x16_\x03a\0WW`@QcT\t\xE3\xE7`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x03\x80T`\x01`\x01`@\x1B\x03\x19\x16`\x01`\x01`@\x1B\x03\x84\x16\x17\x90U_[\x81Q\x81\x10\x15a\0\xC4W`\x01`\x02_\x84\x84\x81Q\x81\x10a\0\x94Wa\0\x94a\x02*V[` \x90\x81\x02\x91\x90\x91\x01\x81\x01Q\x82R\x81\x01\x91\x90\x91R`@\x01_ \x80T`\xFF\x19\x16\x91\x15\x15\x91\x90\x91\x17\x90U`\x01\x01a\0tV[Pa\0\xCE\x83a\0\xD6V[PPPa\x02>V[`\x01`\x01`\xA0\x1B\x03\x16c\x8Bx\xC6\xD8\x19\x81\x90U\x80_\x7F\x8B\xE0\x07\x9CS\x16Y\x14\x13D\xCD\x1F\xD0\xA4\xF2\x84\x19I\x7F\x97\"\xA3\xDA\xAF\xE3\xB4\x18okdW\xE0\x81\x80\xA3PV[cNH{q`\xE0\x1B_R`A`\x04R`$_\xFD[___``\x84\x86\x03\x12\x15a\x017W__\xFD[\x83Q`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a\x01MW__\xFD[` \x85\x01Q\x90\x93P`\x01`\x01`@\x1B\x03\x81\x16\x81\x14a\x01iW__\xFD[`@\x85\x01Q\x90\x92P`\x01`\x01`@\x1B\x03\x81\x11\x15a\x01\x84W__\xFD[\x84\x01`\x1F\x81\x01\x86\x13a\x01\x94W__\xFD[\x80Q`\x01`\x01`@\x1B\x03\x81\x11\x15a\x01\xADWa\x01\xADa\x01\x11V[`@Q`\x05\x82\x90\x1B\x90`?\x82\x01`\x1F\x19\x16\x81\x01`\x01`\x01`@\x1B\x03\x81\x11\x82\x82\x10\x17\x15a\x01\xDBWa\x01\xDBa\x01\x11V[`@R\x91\x82R` \x81\x84\x01\x81\x01\x92\x90\x81\x01\x89\x84\x11\x15a\x01\xF8W__\xFD[` \x85\x01\x94P[\x83\x85\x10\x15a\x02\x1BW\x84Q\x80\x82R` \x95\x86\x01\x95\x90\x93P\x01a\x01\xFFV[P\x80\x94PPPPP\x92P\x92P\x92V[cNH{q`\xE0\x1B_R`2`\x04R`$_\xFD[a6v\x80a\x02K_9_\xF3\xFE`\x80`@R`\x046\x10a\x01\xF5W_5`\xE0\x1C\x80c\xA1+\x89j\x11a\x01\x17W\x80c\xE8e\x15\x8E\x11a\0\xACW\x80c\xF2\xFD\xE3\x8B\x11a\0|W\x80c\xF8\xB5\x07\xC7\x11a\0bW\x80c\xF8\xB5\x07\xC7\x14a\x05\xFBW\x80c\xF9\xF9\x1B\x13\x14a\x06'W\x80c\xFE\xE8\x1C\xF4\x14a\x06\xA7W__\xFD[\x80c\xF2\xFD\xE3\x8B\x14a\x05\xC9W\x80c\xF3k\xB9a\x14a\x05\xDCW__\xFD[\x80c\xE8e\x15\x8E\x14a\x05YW\x80c\xEA\x9EHW\x14a\x05xW\x80c\xEF\xA5\xA3W\x14a\x05\x97W\x80c\xF0N(>\x14a\x05\xB6W__\xFD[\x80c\xCC\x05\xC0\xB3\x11a\0\xE7W\x80c\xCC\x05\xC0\xB3\x14a\x04\xCEW\x80c\xD0mU\x87\x14a\x04\xEDW\x80c\xDDJG\x1D\x14a\x05\x0CW\x80c\xE3\xF4v\x95\x14a\x05:W__\xFD[\x80c\xA1+\x89j\x14a\x048W\x80c\xAFB\xA9\x8D\x14a\x04WW\x80c\xB5\xCE\x95\xB9\x14a\x04\x83W\x80c\xC9V\x9B\xC3\x14a\x04\xA2W__\xFD[\x80cqP\x18\xA6\x11a\x01\x8DW\x80c\x86TjI\x11a\x01]W\x80c\x86TjI\x14a\x03\xA8W\x80c\x8C\xB5\x0CD\x14a\x03\xC7W\x80c\x8D\xA5\xCB[\x14a\x03\xE6W\x80c\x9B\x1CN{\x14a\x04\x19W__\xFD[\x80cqP\x18\xA6\x14a\x03/W\x80cr!\xE6\xFC\x14a\x037W\x80csT\xA3\xF3\x14a\x03ZW\x80ct\xC1\x83\xAA\x14a\x03\x89W__\xFD[\x80cXu3W\x11a\x01\xC8W\x80cXu3W\x14a\x02hW\x80cc\xCD4V\x14a\x02\xB8W\x80cgE\x15\x15\x14a\x02\xD7W\x80cm\x11K\xE3\x14a\x03\x03W__\xFD[\x80c%i)b\x14a\x01\xF9W\x80c6\x98U\xE6\x14a\x02\x03W\x80c:\x83|\xC2\x14a\x02AW\x80cT\xD1\xF1=\x14a\x02`W[__\xFD[a\x02\x01a\x06\xD8V[\0[4\x80\x15a\x02\x0EW__\xFD[P`\x03Ta\x02#\x90g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[`@Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[4\x80\x15a\x02LW__\xFD[Pa\x02\x01a\x02[6`\x04a'\x01V[a\x07%V[a\x02\x01a\x08\xBDV[4\x80\x15a\x02sW__\xFD[P_Ta\x02\x93\x90s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01a\x028V[4\x80\x15a\x02\xC3W__\xFD[Pa\x02\x01a\x02\xD26`\x04a'\xD8V[a\x08\xF6V[4\x80\x15a\x02\xE2W__\xFD[Pa\x02\xF6a\x02\xF16`\x04a(\tV[a\n\xCBV[`@Qa\x028\x91\x90a(\"V[4\x80\x15a\x03\x0EW__\xFD[Pa\x03\"a\x03\x1D6`\x04a(\x9EV[a\x0BvV[`@Qa\x028\x91\x90a+3V[a\x02\x01a\x0C\xCAV[4\x80\x15a\x03BW__\xFD[Pa\x03L`\x04T\x81V[`@Q\x90\x81R` \x01a\x028V[4\x80\x15a\x03eW__\xFD[Pa\x03ya\x03t6`\x04a+EV[a\x0C\xDDV[`@Q\x90\x15\x15\x81R` \x01a\x028V[4\x80\x15a\x03\x94W__\xFD[Pa\x02\x01a\x03\xA36`\x04a+mV[a\r,V[4\x80\x15a\x03\xB3W__\xFD[Pa\x02\x01a\x03\xC26`\x04a+\x84V[a\rpV[4\x80\x15a\x03\xD2W__\xFD[Pa\x02\x01a\x03\xE16`\x04a+mV[a\x0F\x87V[4\x80\x15a\x03\xF1W__\xFD[P\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFFt\x879'Ta\x02\x93V[4\x80\x15a\x04$W__\xFD[Pa\x02\x01a\x0436`\x04a+EV[a\x10>V[4\x80\x15a\x04CW__\xFD[Pa\x02\x93a\x04R6`\x04a'\xD8V[a\x11\xE1V[4\x80\x15a\x04bW__\xFD[Pa\x04va\x04q6`\x04a(\tV[a\x130V[`@Qa\x028\x91\x90a+\xC4V[4\x80\x15a\x04\x8EW__\xFD[Pa\x03La\x04\x9D6`\x04a+EV[a\x13mV[4\x80\x15a\x04\xADW__\xFD[Pa\x04\xC1a\x04\xBC6`\x04a(\x9EV[a\x13\xB9V[`@Qa\x028\x91\x90a,\x06V[4\x80\x15a\x04\xD9W__\xFD[Pa\x02\x01a\x04\xE86`\x04a,\x87V[a\x16\xB1V[4\x80\x15a\x04\xF8W__\xFD[Pa\x02\x01a\x05\x076`\x04a,\xB7V[a\x18=V[4\x80\x15a\x05\x17W__\xFD[Pa\x03ya\x05&6`\x04a+mV[`\x02` R_\x90\x81R`@\x90 T`\xFF\x16\x81V[4\x80\x15a\x05EW__\xFD[Pa\x02\x01a\x05T6`\x04a,\xE7V[a\x19\x03V[4\x80\x15a\x05dW__\xFD[Pa\x04va\x05s6`\x04a(\tV[a\x19\xB5V[4\x80\x15a\x05\x83W__\xFD[Pa\x02\x01a\x05\x926`\x04a+EV[a\x19\xCFV[4\x80\x15a\x05\xA2W__\xFD[Pa\x03ya\x05\xB16`\x04a+EV[a\x1B\x15V[a\x02\x01a\x05\xC46`\x04a,\xB7V[a\x1B/V[a\x02\x01a\x05\xD76`\x04a,\xB7V[a\x1BlV[4\x80\x15a\x05\xE7W__\xFD[Pa\x02\x01a\x05\xF66`\x04a+EV[a\x1B\x92V[4\x80\x15a\x06\x06W__\xFD[Pa\x06\x1Aa\x06\x156`\x04a-\0V[a\x1C\xBEV[`@Qa\x028\x91\x90a-qV[4\x80\x15a\x062W__\xFD[Pa\x06va\x06A6`\x04a(\tV[`\x01` \x81\x90R_\x91\x82R`@\x90\x91 \x80T\x91\x81\x01T`\x02\x90\x91\x01Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x83V[`@\x80Q\x93\x84R` \x84\x01\x92\x90\x92Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90\x82\x01R``\x01a\x028V[4\x80\x15a\x06\xB2W__\xFD[Pa\x03La\x06\xC16`\x04a,\xB7V[c8\x9Au\xE1`\x0C\x90\x81R_\x91\x90\x91R` \x90 T\x90V[_b\x02\xA3\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16B\x01\x90Pc8\x9Au\xE1`\x0CR3_R\x80` `\x0C U3\x7F\xDB\xF3j\x10}\xA1\x9EIRzqv\xA1\xBA\xBF\x96;K\x0F\xF8\xCD\xE3^\xE3]l\xD8\xF1\xF9\xAC~\x1D__\xA2PV[a\x07-a\x1EGV[\x81`\x01_\x85`\x02\x81\x11\x15a\x07CWa\x07Ca)\x1FV[`\x02\x81\x11\x15a\x07TWa\x07Ta)\x1FV[\x81R` \x80\x82\x01\x92\x90\x92R`@\x90\x81\x01_ \x83Q\x81U\x91\x83\x01Q`\x01\x83\x01U\x91\x90\x91\x01Q`\x02\x90\x91\x01\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x92\x16\x91\x90\x91\x17\x90U\x81Q\x15a\x08TW\x81Qa\x08\r\x90`\x05_\x86`\x02\x81\x11\x15a\x07\xE1Wa\x07\xE1a)\x1FV[`\x02\x81\x11\x15a\x07\xF2Wa\x07\xF2a)\x1FV[\x81R` \x01\x90\x81R` \x01_ a\x1E|\x90\x91\x90c\xFF\xFF\xFF\xFF\x16V[P\x80`\x08_\x85`\x02\x81\x11\x15a\x08$Wa\x08$a)\x1FV[`\x02\x81\x11\x15a\x085Wa\x085a)\x1FV[\x81R` \x80\x82\x01\x92\x90\x92R`@\x90\x81\x01_\x90\x81 \x86Q\x82R\x90\x92R\x90 U[` \x82\x01Q\x15a\x08}Wa\x08{\x82` \x01Q`\x06_\x86`\x02\x81\x11\x15a\x07\xE1Wa\x07\xE1a)\x1FV[P[\x7F\x8Ct\x91\xC9\x01\x8C\x0B3.}\x99-\x1B7\xDB\x1Aa\xF4\xC0u\xCB0\xE27\xCC\x82lR\xC3\x16l\xEF\x83\x83\x83`@Qa\x08\xB0\x93\x92\x91\x90a-\xBBV[`@Q\x80\x91\x03\x90\xA1PPPV[c8\x9Au\xE1`\x0CR3_R_` `\x0C U3\x7F\xFA{\x8E\xAB}\xA6\x7FA,\xC9W^\xD44dF\x8F\x9B\xFB\xAE\x89\xD1gY\x174l\xA6\xD8\xFE<\x92__\xA2V[a\x08\xFEa\x1EGV[_`\x07_\x84`\x02\x81\x11\x15a\t\x14Wa\t\x14a)\x1FV[`\x02\x81\x11\x15a\t%Wa\t%a)\x1FV[\x81R` \x80\x82\x01\x92\x90\x92R`@\x90\x81\x01_\x90\x81 \x7F\xFF\xFF\xFF\xFF\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\x86\x16\x82R\x90\x92R\x90 Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90P\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF!S\x81\x01a\t\xE2W\x82\x82`@Q\x7F\x02\x9A*h\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\t\xD9\x92\x91\x90a.\x0EV[`@Q\x80\x91\x03\x90\xFD[a\xDE\xAD`\x07_\x85`\x02\x81\x11\x15a\t\xFAWa\t\xFAa)\x1FV[`\x02\x81\x11\x15a\n\x0BWa\n\x0Ba)\x1FV[\x81R` \x80\x82\x01\x92\x90\x92R`@\x90\x81\x01_\x90\x81 \x7F\xFF\xFF\xFF\xFF\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\x87\x16\x80\x83R\x93R \x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x93\x90\x93\x16\x92\x90\x92\x17\x90\x91U\x83`\x02\x81\x11\x15a\n\x9EWa\n\x9Ea)\x1FV[`@Q\x7F\xCD\xCE\x14\xB5\xDF\x95N\xD0\xDD\xF4\xBD3\xCC8q~\xE1\xC4n\x06\xA2}i\x96-\xD7\xF0?p\xC4I\xC4\x90_\x90\xA3PPPV[a\x0B\x02`@Q\x80``\x01`@R\x80_\x81R` \x01_\x81R` \x01_s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81RP\x90V[`\x01_\x83`\x02\x81\x11\x15a\x0B\x17Wa\x0B\x17a)\x1FV[`\x02\x81\x11\x15a\x0B(Wa\x0B(a)\x1FV[\x81R` \x80\x82\x01\x92\x90\x92R`@\x90\x81\x01_ \x81Q``\x81\x01\x83R\x81T\x81R`\x01\x82\x01T\x93\x81\x01\x93\x90\x93R`\x02\x01Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90\x82\x01R\x92\x91PPV[a\x0B\xD0`@\x80Qa\x01 \x81\x01\x90\x91R\x80_\x81R` \x01_`\xFF\x16\x81R` \x01_g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81R` \x01``\x81R` \x01``\x81R` \x01``\x81R` \x01``\x81R` \x01``\x81R` \x01``\x81RP\x90V[_Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x163\x14a\x0C W`@Q\x7F\xFE\x022\xC3\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\x01`@Q\x80\x91\x03\x90\xFD[_`\x01_\x86`\x02\x81\x11\x15a\x0C6Wa\x0C6a)\x1FV[`\x02\x81\x11\x15a\x0CGWa\x0CGa)\x1FV[\x81R` \x01\x90\x81R` \x01_ _\x01T\x90Pa\x0Cg\x85\x82\x89\x89\x88\x88a\x1E\x87V[a\x0Cs\x86\x88\x01\x88a1\xD7V[\x91Pa\x0C~\x82a \x1BV[\x91P\x7F4\xD7\x1C]\xB8\x0E<\x1D\xB5?m$U\x03\xC51\x89OiJ\xA2lz\x96z\xDFw\x16{\x12`6\x82_\x01Q\x86\x89\x89`@Qa\x0C\xB8\x94\x93\x92\x91\x90a2XV[`@Q\x80\x91\x03\x90\xA1P\x95\x94PPPPPV[a\x0C\xD2a\x1EGV[a\x0C\xDB_a!\xA6V[V[_a\r#\x82`\x06_\x86`\x02\x81\x11\x15a\x0C\xF7Wa\x0C\xF7a)\x1FV[`\x02\x81\x11\x15a\r\x08Wa\r\x08a)\x1FV[\x81R` \x01\x90\x81R` \x01_ a\"\x0B\x90\x91\x90c\xFF\xFF\xFF\xFF\x16V[\x90P[\x92\x91PPV[a\r4a\x1EGV[`\x04\x81\x90U`@Q\x81\x81R\x7Fc\xF2\xD4\xDC\xA4\xC97\xBAh\xE5{\xBD\xDD+\n5`\xE5\xB4\x97Y2(\xDB\xEAsr\xC1'\xC1m\xC8\x90` \x01[`@Q\x80\x91\x03\x90\xA1PV[a\rxa\x1EGV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16a\r\xC5W`@Q\x7F\x0E;\xA0\xAF\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\x01`@Q\x80\x91\x03\x90\xFD[a\xDE\xAD`\x07_\x85`\x02\x81\x11\x15a\r\xDDWa\r\xDDa)\x1FV[`\x02\x81\x11\x15a\r\xEEWa\r\xEEa)\x1FV[\x81R` \x80\x82\x01\x92\x90\x92R`@\x90\x81\x01_\x90\x81 \x7F\xFF\xFF\xFF\xFF\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\x87\x16\x82R\x90\x92R\x90 Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x03a\x0E~W\x82\x82`@Q\x7F\x02\x9A*h\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\t\xD9\x92\x91\x90a.\x0EV[\x80`\x07_\x85`\x02\x81\x11\x15a\x0E\x94Wa\x0E\x94a)\x1FV[`\x02\x81\x11\x15a\x0E\xA5Wa\x0E\xA5a)\x1FV[\x81R` \x80\x82\x01\x92\x90\x92R`@\x90\x81\x01_\x90\x81 \x7F\xFF\xFF\xFF\xFF\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\x87\x16\x80\x83R\x93R \x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x93\x90\x93\x16\x92\x90\x92\x17\x90\x91U\x83`\x02\x81\x11\x15a\x0F8Wa\x0F8a)\x1FV[`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x16\x81R\x7Fv\x0C\x87\xAA\xCA8L=\xC8-[\xCC\xE0X\x84\xA7\\\xF7\x87\xEF\x7F|\xAC\xAE\xF2jh\"\xB2\x83\x1D\xD4\x90` \x01[`@Q\x80\x91\x03\x90\xA3PPPV[a\x0F\x8Fa\x1EGV[_\x81\x81R`\x02` R`@\x90 T`\xFF\x16a\x0F\xD9W`@Q\x7Fu\x85\xE68\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\x81\x01\x82\x90R`$\x01a\t\xD9V[_\x81\x81R`\x02` R`@\x90\x81\x90 \x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x16\x90UQ\x7FI\xF5\x9B\xEC\x84o\xD3X\x8D}I\0\xA9\xD7i\x8F)Js\x04>\xD6\xC4\x07\xD5\xC2\xCF\xA9\x0B\x8B\x90\xD7\x90a\re\x90\x83\x81R` \x01\x90V[a\x10Fa\x1EGV[a\x10_\x81`\x05_\x85`\x02\x81\x11\x15a\x0C\xF7Wa\x0C\xF7a)\x1FV[a\x10\x99W\x81\x81`@Q\x7F\xBEY\xA1\xED\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\t\xD9\x92\x91\x90a2\x8FV[\x80`\x01_\x84`\x02\x81\x11\x15a\x10\xAFWa\x10\xAFa)\x1FV[`\x02\x81\x11\x15a\x10\xC0Wa\x10\xC0a)\x1FV[\x81R` \x01\x90\x81R` \x01_ _\x01T\x03a\x11\x0BW\x81\x81`@Q\x7F,\"]*\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81R`\x04\x01a\t\xD9\x92\x91\x90a2\x8FV[a\x11P\x81`\x05_\x85`\x02\x81\x11\x15a\x11$Wa\x11$a)\x1FV[`\x02\x81\x11\x15a\x115Wa\x115a)\x1FV[\x81R` \x01\x90\x81R` \x01_ a\"\"\x90\x91\x90c\xFF\xFF\xFF\xFF\x16V[P`\x08_\x83`\x02\x81\x11\x15a\x11fWa\x11fa)\x1FV[`\x02\x81\x11\x15a\x11wWa\x11wa)\x1FV[\x81R` \x01\x90\x81R` \x01_ _\x82\x81R` \x01\x90\x81R` \x01_ _\x90U\x80\x82`\x02\x81\x11\x15a\x11\xA9Wa\x11\xA9a)\x1FV[`@Q_\x81R\x7F\xD9\x17\x8B\xC4\x98\xF8\xA880\xCBm\xB7kjh\x92+m\xA8\xC2_;\x86Zn\xA2\xA7E\x1A\xC8\xB4v\x90` \x01[`@Q\x80\x91\x03\x90\xA3PPV[__`\x07_\x85`\x02\x81\x11\x15a\x11\xF8Wa\x11\xF8a)\x1FV[`\x02\x81\x11\x15a\x12\tWa\x12\ta)\x1FV[\x81R` \x80\x82\x01\x92\x90\x92R`@\x90\x81\x01_\x90\x81 \x7F\xFF\xFF\xFF\xFF\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\x87\x16\x82R\x90\x92R\x90 Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90P\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF!S\x81\x01a\x12\xBDW\x83\x83`@Q\x7F\x02\x9A*h\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\t\xD9\x92\x91\x90a.\x0EV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16a\r#W`\x01_\x85`\x02\x81\x11\x15a\x12\xEDWa\x12\xEDa)\x1FV[`\x02\x81\x11\x15a\x12\xFEWa\x12\xFEa)\x1FV[\x81R` \x81\x01\x91\x90\x91R`@\x01_ `\x02\x01Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x91Pa\r&\x90PV[``a\r&`\x05_\x84`\x02\x81\x11\x15a\x13JWa\x13Ja)\x1FV[`\x02\x81\x11\x15a\x13[Wa\x13[a)\x1FV[\x81R` \x01\x90\x81R` \x01_ a\"-V[_`\x08_\x84`\x02\x81\x11\x15a\x13\x83Wa\x13\x83a)\x1FV[`\x02\x81\x11\x15a\x13\x94Wa\x13\x94a)\x1FV[\x81R` \x01\x90\x81R` \x01_ _\x83\x81R` \x01\x90\x81R` \x01_ T\x90P\x92\x91PPV[_T``\x90s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x163\x14a\x14\x0CW`@Q\x7F\xFE\x022\xC3\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\x01`@Q\x80\x91\x03\x90\xFD[_`\x01_\x86`\x02\x81\x11\x15a\x14\"Wa\x14\"a)\x1FV[`\x02\x81\x11\x15a\x143Wa\x143a)\x1FV[\x81R` \x01\x90\x81R` \x01_ `\x01\x01T\x90P_`\x01_\x87`\x02\x81\x11\x15a\x14\\Wa\x14\\a)\x1FV[`\x02\x81\x11\x15a\x14mWa\x14ma)\x1FV[\x81R` \x01\x90\x81R` \x01_ _\x01T\x90P_`\x08_\x88`\x02\x81\x11\x15a\x14\x95Wa\x14\x95a)\x1FV[`\x02\x81\x11\x15a\x14\xA6Wa\x14\xA6a)\x1FV[\x81R` \x01\x90\x81R` \x01_ _\x83\x81R` \x01\x90\x81R` \x01_ T\x90Pa\x14\xD3\x87\x84\x8B\x8B\x8A\x8Aa\x1E\x87V[_a\x14\xE0\x89\x8B\x01\x8Ba2\xAAV[\x80Q\x90\x91P\x82\x14a\x15*W\x80Q`@Q\x7F!\xB9X|\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\x81Ra\t\xD9\x91\x84\x91`\x04\x01\x91\x82R` \x82\x01R`@\x01\x90V[` \x81\x01QQ\x80g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x15IWa\x15Ia&\x15V[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a\x15\xD4W\x81` \x01[a\x15\xC1`@\x80Qa\x01 \x81\x01\x90\x91R\x80_\x81R` \x01_`\xFF\x16\x81R` \x01_g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81R` \x01``\x81R` \x01``\x81R` \x01``\x81R` \x01``\x81R` \x01``\x81R` \x01``\x81RP\x90V[\x81R` \x01\x90`\x01\x90\x03\x90\x81a\x15gW\x90P[P\x95P_[\x81\x81\x10\x15a\x16,Wa\x16\x07\x83` \x01Q\x82\x81Q\x81\x10a\x15\xFAWa\x15\xFAa3\x9BV[` \x02` \x01\x01Qa \x1BV[\x87\x82\x81Q\x81\x10a\x16\x19Wa\x16\x19a3\x9BV[` \x90\x81\x02\x91\x90\x91\x01\x01R`\x01\x01a\x15\xD9V[P\x7F\xDF\xA7g\xADT\x93\x1D\x8D\x88\x9F4\xB4\x18\xA6o\t\xA0\xBE\xC3@m\xEB\xBD\x9D\xEC\xBB\x8C\xE9\x19\xC2O\xFE\x84\x8A\x88`@Q` \x01a\x16a\x91\x90a,\x06V[`@\x80Q\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x81\x84\x03\x01\x81R\x90\x82\x90Ra\x16\x9B\x93\x92\x91a3\xC8V[`@Q\x80\x91\x03\x90\xA1PPPPP\x95\x94PPPPPV[a\x16\xB9a\x1EGV[\x81a\x16\xF0W`@Q\x7FA\xA4c\xA5\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\x01`@Q\x80\x91\x03\x90\xFD[\x81`\x01_\x85`\x02\x81\x11\x15a\x17\x06Wa\x17\x06a)\x1FV[`\x02\x81\x11\x15a\x17\x17Wa\x17\x17a)\x1FV[\x81R` \x01\x90\x81R` \x01_ _\x01T\x03a\x17bW\x82\x82`@Q\x7F\xF3\xDFi\xDC\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\t\xD9\x92\x91\x90a2\x8FV[\x81`\x01_\x85`\x02\x81\x11\x15a\x17xWa\x17xa)\x1FV[`\x02\x81\x11\x15a\x17\x89Wa\x17\x89a)\x1FV[\x81R` \x01\x90\x81R` \x01_ _\x01\x81\x90UPa\x17\xB5\x82`\x05_\x86`\x02\x81\x11\x15a\x07\xE1Wa\x07\xE1a)\x1FV[P\x80`\x08_\x85`\x02\x81\x11\x15a\x17\xCCWa\x17\xCCa)\x1FV[`\x02\x81\x11\x15a\x17\xDDWa\x17\xDDa)\x1FV[\x81R` \x80\x82\x01\x92\x90\x92R`@\x90\x81\x01_\x90\x81 \x86\x82R\x90\x92R\x90 U\x81\x83`\x02\x81\x11\x15a\x18\rWa\x18\ra)\x1FV[`@Q\x83\x81R\x7FQ\x08N\xB3M\xAC\x0E\x8Cyk'A\xED\x1Ao\xEDrs\x11\xFCC[\n\xF0\xDA\xC3\x0F\x05\x81\xDB\xCEI\x90` \x01a\x0FzV[a\x18Ea\x1EGV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16a\x18\x91W`@Q~\x9E\xF5\xCB\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\x01`@Q\x80\x91\x03\x90\xFD[_\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x16\x90\x81\x17\x90\x91U`@Q\x90\x81R\x7FoN\x85\xFB1f\xA8\r\x08j\xCAnRv\x82\xA6\xC1\x12\x8B\xFE\xE7\x91\x07\xAFmB\x16\xF8C\xE2\x01p\x90` \x01a\reV[a\x19\x0Ba\x1EGV[\x80g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16_\x03a\x19NW`@Q\x7FT\t\xE3\xE7\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\x01`@Q\x80\x91\x03\x90\xFD[`\x03\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\x16g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x16\x90\x81\x17\x90\x91U`@Q\x90\x81R\x7F\xC6 G\x0B\x92\xE1\xAFi\xC9\x14I[\xFF\x07%\xD3\xF9\xDD\xEFX\xF4\xE3\xDA\xD2\xD2\xE5\xB2\xF4\xBFc\xF0\xE3\x90` \x01a\reV[``a\r&`\x06_\x84`\x02\x81\x11\x15a\x13JWa\x13Ja)\x1FV[a\x19\xD7a\x1EGV[\x80a\x1A\x0EW`@Q\x7FA\xA4c\xA5\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\x01`@Q\x80\x91\x03\x90\xFD[\x80`\x01_\x84`\x02\x81\x11\x15a\x1A$Wa\x1A$a)\x1FV[`\x02\x81\x11\x15a\x1A5Wa\x1A5a)\x1FV[\x81R` \x01\x90\x81R` \x01_ `\x01\x01T\x03a\x1A\x81W\x81\x81`@Q\x7F\xF3\xDFi\xDC\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\t\xD9\x92\x91\x90a2\x8FV[\x80`\x01_\x84`\x02\x81\x11\x15a\x1A\x97Wa\x1A\x97a)\x1FV[`\x02\x81\x11\x15a\x1A\xA8Wa\x1A\xA8a)\x1FV[\x81R` \x01\x90\x81R` \x01_ `\x01\x01\x81\x90UPa\x1A\xD5\x81`\x06_\x85`\x02\x81\x11\x15a\x07\xE1Wa\x07\xE1a)\x1FV[P\x80\x82`\x02\x81\x11\x15a\x1A\xE9Wa\x1A\xE9a)\x1FV[`@Q\x7F\xA1<~y\xC7m\xCC\xED\x91\xCCb\xC4\x9D\xB7::\x02\x93Z\xEF\x81\x0E\xEA{yBb^\x94\xBC@p\x90_\x90\xA3PPV[_a\r#\x82`\x05_\x86`\x02\x81\x11\x15a\x0C\xF7Wa\x0C\xF7a)\x1FV[a\x1B7a\x1EGV[c8\x9Au\xE1`\x0CR\x80_R` `\x0C \x80TB\x11\x15a\x1B]Wco^\x88\x18_R`\x04`\x1C\xFD[_\x90Ua\x1Bi\x81a!\xA6V[PV[a\x1Bta\x1EGV[\x80``\x1Ba\x1B\x89WctH\xFB\xAE_R`\x04`\x1C\xFD[a\x1Bi\x81a!\xA6V[a\x1B\x9Aa\x1EGV[a\x1B\xB3\x81`\x06_\x85`\x02\x81\x11\x15a\x0C\xF7Wa\x0C\xF7a)\x1FV[a\x1B\xEDW\x81\x81`@Q\x7F\xBEY\xA1\xED\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\t\xD9\x92\x91\x90a2\x8FV[\x80`\x01_\x84`\x02\x81\x11\x15a\x1C\x03Wa\x1C\x03a)\x1FV[`\x02\x81\x11\x15a\x1C\x14Wa\x1C\x14a)\x1FV[\x81R` \x01\x90\x81R` \x01_ `\x01\x01T\x03a\x1C`W\x81\x81`@Q\x7F,\"]*\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81R`\x04\x01a\t\xD9\x92\x91\x90a2\x8FV[a\x1Cy\x81`\x06_\x85`\x02\x81\x11\x15a\x11$Wa\x11$a)\x1FV[P\x80\x82`\x02\x81\x11\x15a\x1C\x8DWa\x1C\x8Da)\x1FV[`@Q`\x01\x81R\x7F\xD9\x17\x8B\xC4\x98\xF8\xA880\xCBm\xB7kjh\x92+m\xA8\xC2_;\x86Zn\xA2\xA7E\x1A\xC8\xB4v\x90` \x01a\x11\xD5V[``_\x82g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x1C\xDAWa\x1C\xDAa&\x15V[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a\x1D\x03W\x81` \x01` \x82\x02\x806\x837\x01\x90P[P`\x04T\x90\x91P_[\x84\x81\x10\x15a\x1E=W6_\x87\x87\x84\x81\x81\x10a\x1D(Wa\x1D(a3\x9BV[\x90P` \x02\x81\x01\x90a\x1D:\x91\x90a3\xEDV[\x90\x92P\x90P`\x01\x84\x83\x83_\x81a\x1DRWa\x1DRa3\x9BV[\x90P` \x02\x015\x14a\x1D\xB5W\x84\x83\x83_\x81\x81\x10a\x1DqWa\x1Dqa3\x9BV[\x90P` \x02\x015`@Q\x7F\xE4\xACIk\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\t\xD9\x92\x91\x90\x91\x82R` \x82\x01R`@\x01\x90V[`\x01[\x82\x81\x10\x15a\x1E\x0BW`\x02_\x85\x85\x84\x81\x81\x10a\x1D\xD5Wa\x1D\xD5a3\x9BV[` \x90\x81\x02\x92\x90\x92\x015\x83RP\x81\x01\x91\x90\x91R`@\x01_ T`\xFF\x16\x15a\x1E\x0BWa\x1E\x01`\x01\x83a4~V[\x91P`\x01\x01a\x1D\xB8V[P\x80\x86\x85\x81Q\x81\x10a\x1E\x1FWa\x1E\x1Fa3\x9BV[`\xFF\x92\x90\x92\x16` \x92\x83\x02\x91\x90\x91\x01\x90\x91\x01RPPP`\x01\x01a\x1D\x0CV[P\x90\x94\x93PPPPV[\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFFt\x879'T3\x14a\x0C\xDBWc\x82\xB4)\0_R`\x04`\x1C\xFD[_a\r#\x83\x83a\"8V[_a\x1E\x93\x87\x84\x84a\"\x84V[\x90P`\x01\x87`\x02\x81\x11\x15a\x1E\xA9Wa\x1E\xA9a)\x1FV[\x03a\x1FmW\x80s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xABu\x0Eu\x84\x84\x89`\x02\x8A\x8A`@Qa\x1E\xDF\x92\x91\x90a4\x97V[` `@Q\x80\x83\x03\x81\x85Z\xFA\x15\x80\x15a\x1E\xFAW=__>=_\xFD[PPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x1F\x1D\x91\x90a4\xA6V[`@Q\x85c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01a\x1F<\x94\x93\x92\x91\x90a4\xBDV[_`@Q\x80\x83\x03\x81\x86\x80;\x15\x80\x15a\x1FRW__\xFD[PZ\xFA\x15\x80\x15a\x1FdW=__>=_\xFD[PPPPa \x12V[`\x02\x87`\x02\x81\x11\x15a\x1F\x81Wa\x1F\x81a)\x1FV[\x03a\x1F\xE0W`@Q\x7FAI<`\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\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16\x90cAI<`\x90a\x1F<\x90\x89\x90\x89\x90\x89\x90\x89\x90\x89\x90`\x04\x01a4\xE3V[`@Q\x7FQ\xAB\xD9\\\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\x01`@Q\x80\x91\x03\x90\xFD[PPPPPPPV[a u`@\x80Qa\x01 \x81\x01\x90\x91R\x80_\x81R` \x01_`\xFF\x16\x81R` \x01_g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81R` \x01``\x81R` \x01``\x81R` \x01``\x81R` \x01``\x81R` \x01``\x81R` \x01``\x81RP\x90V[_\x82Q`\x03\x81\x11\x15a \x89Wa \x89a)\x1FV[\x14a \x92WP\x90V[\x81` \x01Q`\xFF\x16_\x03a \xA8WP`\x01\x81R\x90V[_[\x82` \x01Q`\xFF\x16\x81\x10\x15a!9W_\x83``\x01Q\x82\x81Q\x81\x10a \xD0Wa \xD0a3\x9BV[` \x02` \x01\x01Q\x90P\x81_\x03a!\x12W`\x04T\x81\x14a!\x0CW\x83`\x01[\x90\x81`\x03\x81\x11\x15a!\x01Wa!\x01a)\x1FV[\x90RP\x92\x93\x92PPPV[Pa!1V[_\x81\x81R`\x02` R`@\x90 T`\xFF\x16a!/W\x83`\x02a \xEEV[P[`\x01\x01a \xAAV[P_a\x03\xE8\x83`@\x01Qa!M\x91\x90a5\x1BV[`\x03T\x90\x91PB\x90a!i\x90g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x83a5oV[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x10\x80a!\x88WPB\x81g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x11[\x15a!\x96WPP`\x03\x81R\x90V[a!\x9F\x83a$>V[P\x90\x91\x90PV[\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFFt\x879'\x80Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x92\x16\x91\x82\x90\x7F\x8B\xE0\x07\x9CS\x16Y\x14\x13D\xCD\x1F\xD0\xA4\xF2\x84\x19I\x7F\x97\"\xA3\xDA\xAF\xE3\xB4\x18okdW\xE0_\x80\xA3UV[_\x81\x81R`\x01\x83\x01` R`@\x81 T\x15\x15a\r#V[_a\r#\x83\x83a$\xBFV[``a\r&\x82a%\xA9V[_\x81\x81R`\x01\x83\x01` R`@\x81 Ta\"}WP\x81T`\x01\x81\x81\x01\x84U_\x84\x81R` \x80\x82 \x90\x93\x01\x84\x90U\x84T\x84\x82R\x82\x86\x01\x90\x93R`@\x90 \x91\x90\x91Ua\r&V[P_a\r&V[_\x80a\"\x93`\x04\x82\x85\x87a5\x8FV[a\"\x9C\x91a5\xB6V[\x90P_`\x07_\x87`\x02\x81\x11\x15a\"\xB4Wa\"\xB4a)\x1FV[`\x02\x81\x11\x15a\"\xC5Wa\"\xC5a)\x1FV[\x81R` \x80\x82\x01\x92\x90\x92R`@\x90\x81\x01_\x90\x81 \x7F\xFF\xFF\xFF\xFF\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\x86\x16\x82R\x90\x92R\x90 Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90P\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF!S\x81\x01a#yW\x85\x82`@Q\x7F\x02\x9A*h\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\t\xD9\x92\x91\x90a.\x0EV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16a#\xE6W`\x01_\x87`\x02\x81\x11\x15a#\xA9Wa#\xA9a)\x1FV[`\x02\x81\x11\x15a#\xBAWa#\xBAa)\x1FV[\x81R` \x81\x01\x91\x90\x91R`@\x01_ `\x02\x01Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90P[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16a$5W\x85`@Q\x7F\xCEK\xC6\xD6\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\t\xD9\x91\x90a6\x1BV[\x95\x94PPPPPV[` \x81\x01Q`\xFF\x16[\x81``\x01QQ\x81\x10\x15a$\xBBW_\x82``\x01Q\x82\x81Q\x81\x10a$kWa$ka3\x9BV[` \x90\x81\x02\x91\x90\x91\x01\x81\x01Q_\x90\x81R`\x02\x90\x91R`@\x90 \x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x16`\x01\x90\x81\x17\x90\x91U\x91\x90\x91\x01\x90Pa$GV[PPV[_\x81\x81R`\x01\x83\x01` R`@\x81 T\x80\x15a%\x99W_a$\xE1`\x01\x83a6)V[\x85T\x90\x91P_\x90a$\xF4\x90`\x01\x90a6)V[\x90P\x81\x81\x14a%SW_\x86_\x01\x82\x81T\x81\x10a%\x12Wa%\x12a3\x9BV[\x90_R` _ \x01T\x90P\x80\x87_\x01\x84\x81T\x81\x10a%2Wa%2a3\x9BV[_\x91\x82R` \x80\x83 \x90\x91\x01\x92\x90\x92U\x91\x82R`\x01\x88\x01\x90R`@\x90 \x83\x90U[\x85T\x86\x90\x80a%dWa%da6\x14a\x05\xB6W__\xFD[\x80c\xCC\x05\xC0\xB3\x11a\0\xE7W\x80c\xCC\x05\xC0\xB3\x14a\x04\xCEW\x80c\xD0mU\x87\x14a\x04\xEDW\x80c\xDDJG\x1D\x14a\x05\x0CW\x80c\xE3\xF4v\x95\x14a\x05:W__\xFD[\x80c\xA1+\x89j\x14a\x048W\x80c\xAFB\xA9\x8D\x14a\x04WW\x80c\xB5\xCE\x95\xB9\x14a\x04\x83W\x80c\xC9V\x9B\xC3\x14a\x04\xA2W__\xFD[\x80cqP\x18\xA6\x11a\x01\x8DW\x80c\x86TjI\x11a\x01]W\x80c\x86TjI\x14a\x03\xA8W\x80c\x8C\xB5\x0CD\x14a\x03\xC7W\x80c\x8D\xA5\xCB[\x14a\x03\xE6W\x80c\x9B\x1CN{\x14a\x04\x19W__\xFD[\x80cqP\x18\xA6\x14a\x03/W\x80cr!\xE6\xFC\x14a\x037W\x80csT\xA3\xF3\x14a\x03ZW\x80ct\xC1\x83\xAA\x14a\x03\x89W__\xFD[\x80cXu3W\x11a\x01\xC8W\x80cXu3W\x14a\x02hW\x80cc\xCD4V\x14a\x02\xB8W\x80cgE\x15\x15\x14a\x02\xD7W\x80cm\x11K\xE3\x14a\x03\x03W__\xFD[\x80c%i)b\x14a\x01\xF9W\x80c6\x98U\xE6\x14a\x02\x03W\x80c:\x83|\xC2\x14a\x02AW\x80cT\xD1\xF1=\x14a\x02`W[__\xFD[a\x02\x01a\x06\xD8V[\0[4\x80\x15a\x02\x0EW__\xFD[P`\x03Ta\x02#\x90g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[`@Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[4\x80\x15a\x02LW__\xFD[Pa\x02\x01a\x02[6`\x04a'\x01V[a\x07%V[a\x02\x01a\x08\xBDV[4\x80\x15a\x02sW__\xFD[P_Ta\x02\x93\x90s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01a\x028V[4\x80\x15a\x02\xC3W__\xFD[Pa\x02\x01a\x02\xD26`\x04a'\xD8V[a\x08\xF6V[4\x80\x15a\x02\xE2W__\xFD[Pa\x02\xF6a\x02\xF16`\x04a(\tV[a\n\xCBV[`@Qa\x028\x91\x90a(\"V[4\x80\x15a\x03\x0EW__\xFD[Pa\x03\"a\x03\x1D6`\x04a(\x9EV[a\x0BvV[`@Qa\x028\x91\x90a+3V[a\x02\x01a\x0C\xCAV[4\x80\x15a\x03BW__\xFD[Pa\x03L`\x04T\x81V[`@Q\x90\x81R` \x01a\x028V[4\x80\x15a\x03eW__\xFD[Pa\x03ya\x03t6`\x04a+EV[a\x0C\xDDV[`@Q\x90\x15\x15\x81R` \x01a\x028V[4\x80\x15a\x03\x94W__\xFD[Pa\x02\x01a\x03\xA36`\x04a+mV[a\r,V[4\x80\x15a\x03\xB3W__\xFD[Pa\x02\x01a\x03\xC26`\x04a+\x84V[a\rpV[4\x80\x15a\x03\xD2W__\xFD[Pa\x02\x01a\x03\xE16`\x04a+mV[a\x0F\x87V[4\x80\x15a\x03\xF1W__\xFD[P\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFFt\x879'Ta\x02\x93V[4\x80\x15a\x04$W__\xFD[Pa\x02\x01a\x0436`\x04a+EV[a\x10>V[4\x80\x15a\x04CW__\xFD[Pa\x02\x93a\x04R6`\x04a'\xD8V[a\x11\xE1V[4\x80\x15a\x04bW__\xFD[Pa\x04va\x04q6`\x04a(\tV[a\x130V[`@Qa\x028\x91\x90a+\xC4V[4\x80\x15a\x04\x8EW__\xFD[Pa\x03La\x04\x9D6`\x04a+EV[a\x13mV[4\x80\x15a\x04\xADW__\xFD[Pa\x04\xC1a\x04\xBC6`\x04a(\x9EV[a\x13\xB9V[`@Qa\x028\x91\x90a,\x06V[4\x80\x15a\x04\xD9W__\xFD[Pa\x02\x01a\x04\xE86`\x04a,\x87V[a\x16\xB1V[4\x80\x15a\x04\xF8W__\xFD[Pa\x02\x01a\x05\x076`\x04a,\xB7V[a\x18=V[4\x80\x15a\x05\x17W__\xFD[Pa\x03ya\x05&6`\x04a+mV[`\x02` R_\x90\x81R`@\x90 T`\xFF\x16\x81V[4\x80\x15a\x05EW__\xFD[Pa\x02\x01a\x05T6`\x04a,\xE7V[a\x19\x03V[4\x80\x15a\x05dW__\xFD[Pa\x04va\x05s6`\x04a(\tV[a\x19\xB5V[4\x80\x15a\x05\x83W__\xFD[Pa\x02\x01a\x05\x926`\x04a+EV[a\x19\xCFV[4\x80\x15a\x05\xA2W__\xFD[Pa\x03ya\x05\xB16`\x04a+EV[a\x1B\x15V[a\x02\x01a\x05\xC46`\x04a,\xB7V[a\x1B/V[a\x02\x01a\x05\xD76`\x04a,\xB7V[a\x1BlV[4\x80\x15a\x05\xE7W__\xFD[Pa\x02\x01a\x05\xF66`\x04a+EV[a\x1B\x92V[4\x80\x15a\x06\x06W__\xFD[Pa\x06\x1Aa\x06\x156`\x04a-\0V[a\x1C\xBEV[`@Qa\x028\x91\x90a-qV[4\x80\x15a\x062W__\xFD[Pa\x06va\x06A6`\x04a(\tV[`\x01` \x81\x90R_\x91\x82R`@\x90\x91 \x80T\x91\x81\x01T`\x02\x90\x91\x01Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x83V[`@\x80Q\x93\x84R` \x84\x01\x92\x90\x92Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90\x82\x01R``\x01a\x028V[4\x80\x15a\x06\xB2W__\xFD[Pa\x03La\x06\xC16`\x04a,\xB7V[c8\x9Au\xE1`\x0C\x90\x81R_\x91\x90\x91R` \x90 T\x90V[_b\x02\xA3\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16B\x01\x90Pc8\x9Au\xE1`\x0CR3_R\x80` `\x0C U3\x7F\xDB\xF3j\x10}\xA1\x9EIRzqv\xA1\xBA\xBF\x96;K\x0F\xF8\xCD\xE3^\xE3]l\xD8\xF1\xF9\xAC~\x1D__\xA2PV[a\x07-a\x1EGV[\x81`\x01_\x85`\x02\x81\x11\x15a\x07CWa\x07Ca)\x1FV[`\x02\x81\x11\x15a\x07TWa\x07Ta)\x1FV[\x81R` \x80\x82\x01\x92\x90\x92R`@\x90\x81\x01_ \x83Q\x81U\x91\x83\x01Q`\x01\x83\x01U\x91\x90\x91\x01Q`\x02\x90\x91\x01\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x92\x16\x91\x90\x91\x17\x90U\x81Q\x15a\x08TW\x81Qa\x08\r\x90`\x05_\x86`\x02\x81\x11\x15a\x07\xE1Wa\x07\xE1a)\x1FV[`\x02\x81\x11\x15a\x07\xF2Wa\x07\xF2a)\x1FV[\x81R` \x01\x90\x81R` \x01_ a\x1E|\x90\x91\x90c\xFF\xFF\xFF\xFF\x16V[P\x80`\x08_\x85`\x02\x81\x11\x15a\x08$Wa\x08$a)\x1FV[`\x02\x81\x11\x15a\x085Wa\x085a)\x1FV[\x81R` \x80\x82\x01\x92\x90\x92R`@\x90\x81\x01_\x90\x81 \x86Q\x82R\x90\x92R\x90 U[` \x82\x01Q\x15a\x08}Wa\x08{\x82` \x01Q`\x06_\x86`\x02\x81\x11\x15a\x07\xE1Wa\x07\xE1a)\x1FV[P[\x7F\x8Ct\x91\xC9\x01\x8C\x0B3.}\x99-\x1B7\xDB\x1Aa\xF4\xC0u\xCB0\xE27\xCC\x82lR\xC3\x16l\xEF\x83\x83\x83`@Qa\x08\xB0\x93\x92\x91\x90a-\xBBV[`@Q\x80\x91\x03\x90\xA1PPPV[c8\x9Au\xE1`\x0CR3_R_` `\x0C U3\x7F\xFA{\x8E\xAB}\xA6\x7FA,\xC9W^\xD44dF\x8F\x9B\xFB\xAE\x89\xD1gY\x174l\xA6\xD8\xFE<\x92__\xA2V[a\x08\xFEa\x1EGV[_`\x07_\x84`\x02\x81\x11\x15a\t\x14Wa\t\x14a)\x1FV[`\x02\x81\x11\x15a\t%Wa\t%a)\x1FV[\x81R` \x80\x82\x01\x92\x90\x92R`@\x90\x81\x01_\x90\x81 \x7F\xFF\xFF\xFF\xFF\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\x86\x16\x82R\x90\x92R\x90 Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90P\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF!S\x81\x01a\t\xE2W\x82\x82`@Q\x7F\x02\x9A*h\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\t\xD9\x92\x91\x90a.\x0EV[`@Q\x80\x91\x03\x90\xFD[a\xDE\xAD`\x07_\x85`\x02\x81\x11\x15a\t\xFAWa\t\xFAa)\x1FV[`\x02\x81\x11\x15a\n\x0BWa\n\x0Ba)\x1FV[\x81R` \x80\x82\x01\x92\x90\x92R`@\x90\x81\x01_\x90\x81 \x7F\xFF\xFF\xFF\xFF\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\x87\x16\x80\x83R\x93R \x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x93\x90\x93\x16\x92\x90\x92\x17\x90\x91U\x83`\x02\x81\x11\x15a\n\x9EWa\n\x9Ea)\x1FV[`@Q\x7F\xCD\xCE\x14\xB5\xDF\x95N\xD0\xDD\xF4\xBD3\xCC8q~\xE1\xC4n\x06\xA2}i\x96-\xD7\xF0?p\xC4I\xC4\x90_\x90\xA3PPPV[a\x0B\x02`@Q\x80``\x01`@R\x80_\x81R` \x01_\x81R` \x01_s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81RP\x90V[`\x01_\x83`\x02\x81\x11\x15a\x0B\x17Wa\x0B\x17a)\x1FV[`\x02\x81\x11\x15a\x0B(Wa\x0B(a)\x1FV[\x81R` \x80\x82\x01\x92\x90\x92R`@\x90\x81\x01_ \x81Q``\x81\x01\x83R\x81T\x81R`\x01\x82\x01T\x93\x81\x01\x93\x90\x93R`\x02\x01Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90\x82\x01R\x92\x91PPV[a\x0B\xD0`@\x80Qa\x01 \x81\x01\x90\x91R\x80_\x81R` \x01_`\xFF\x16\x81R` \x01_g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81R` \x01``\x81R` \x01``\x81R` \x01``\x81R` \x01``\x81R` \x01``\x81R` \x01``\x81RP\x90V[_Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x163\x14a\x0C W`@Q\x7F\xFE\x022\xC3\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\x01`@Q\x80\x91\x03\x90\xFD[_`\x01_\x86`\x02\x81\x11\x15a\x0C6Wa\x0C6a)\x1FV[`\x02\x81\x11\x15a\x0CGWa\x0CGa)\x1FV[\x81R` \x01\x90\x81R` \x01_ _\x01T\x90Pa\x0Cg\x85\x82\x89\x89\x88\x88a\x1E\x87V[a\x0Cs\x86\x88\x01\x88a1\xD7V[\x91Pa\x0C~\x82a \x1BV[\x91P\x7F4\xD7\x1C]\xB8\x0E<\x1D\xB5?m$U\x03\xC51\x89OiJ\xA2lz\x96z\xDFw\x16{\x12`6\x82_\x01Q\x86\x89\x89`@Qa\x0C\xB8\x94\x93\x92\x91\x90a2XV[`@Q\x80\x91\x03\x90\xA1P\x95\x94PPPPPV[a\x0C\xD2a\x1EGV[a\x0C\xDB_a!\xA6V[V[_a\r#\x82`\x06_\x86`\x02\x81\x11\x15a\x0C\xF7Wa\x0C\xF7a)\x1FV[`\x02\x81\x11\x15a\r\x08Wa\r\x08a)\x1FV[\x81R` \x01\x90\x81R` \x01_ a\"\x0B\x90\x91\x90c\xFF\xFF\xFF\xFF\x16V[\x90P[\x92\x91PPV[a\r4a\x1EGV[`\x04\x81\x90U`@Q\x81\x81R\x7Fc\xF2\xD4\xDC\xA4\xC97\xBAh\xE5{\xBD\xDD+\n5`\xE5\xB4\x97Y2(\xDB\xEAsr\xC1'\xC1m\xC8\x90` \x01[`@Q\x80\x91\x03\x90\xA1PV[a\rxa\x1EGV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16a\r\xC5W`@Q\x7F\x0E;\xA0\xAF\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\x01`@Q\x80\x91\x03\x90\xFD[a\xDE\xAD`\x07_\x85`\x02\x81\x11\x15a\r\xDDWa\r\xDDa)\x1FV[`\x02\x81\x11\x15a\r\xEEWa\r\xEEa)\x1FV[\x81R` \x80\x82\x01\x92\x90\x92R`@\x90\x81\x01_\x90\x81 \x7F\xFF\xFF\xFF\xFF\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\x87\x16\x82R\x90\x92R\x90 Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x03a\x0E~W\x82\x82`@Q\x7F\x02\x9A*h\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\t\xD9\x92\x91\x90a.\x0EV[\x80`\x07_\x85`\x02\x81\x11\x15a\x0E\x94Wa\x0E\x94a)\x1FV[`\x02\x81\x11\x15a\x0E\xA5Wa\x0E\xA5a)\x1FV[\x81R` \x80\x82\x01\x92\x90\x92R`@\x90\x81\x01_\x90\x81 \x7F\xFF\xFF\xFF\xFF\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\x87\x16\x80\x83R\x93R \x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x93\x90\x93\x16\x92\x90\x92\x17\x90\x91U\x83`\x02\x81\x11\x15a\x0F8Wa\x0F8a)\x1FV[`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x16\x81R\x7Fv\x0C\x87\xAA\xCA8L=\xC8-[\xCC\xE0X\x84\xA7\\\xF7\x87\xEF\x7F|\xAC\xAE\xF2jh\"\xB2\x83\x1D\xD4\x90` \x01[`@Q\x80\x91\x03\x90\xA3PPPV[a\x0F\x8Fa\x1EGV[_\x81\x81R`\x02` R`@\x90 T`\xFF\x16a\x0F\xD9W`@Q\x7Fu\x85\xE68\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\x81\x01\x82\x90R`$\x01a\t\xD9V[_\x81\x81R`\x02` R`@\x90\x81\x90 \x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x16\x90UQ\x7FI\xF5\x9B\xEC\x84o\xD3X\x8D}I\0\xA9\xD7i\x8F)Js\x04>\xD6\xC4\x07\xD5\xC2\xCF\xA9\x0B\x8B\x90\xD7\x90a\re\x90\x83\x81R` \x01\x90V[a\x10Fa\x1EGV[a\x10_\x81`\x05_\x85`\x02\x81\x11\x15a\x0C\xF7Wa\x0C\xF7a)\x1FV[a\x10\x99W\x81\x81`@Q\x7F\xBEY\xA1\xED\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\t\xD9\x92\x91\x90a2\x8FV[\x80`\x01_\x84`\x02\x81\x11\x15a\x10\xAFWa\x10\xAFa)\x1FV[`\x02\x81\x11\x15a\x10\xC0Wa\x10\xC0a)\x1FV[\x81R` \x01\x90\x81R` \x01_ _\x01T\x03a\x11\x0BW\x81\x81`@Q\x7F,\"]*\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81R`\x04\x01a\t\xD9\x92\x91\x90a2\x8FV[a\x11P\x81`\x05_\x85`\x02\x81\x11\x15a\x11$Wa\x11$a)\x1FV[`\x02\x81\x11\x15a\x115Wa\x115a)\x1FV[\x81R` \x01\x90\x81R` \x01_ a\"\"\x90\x91\x90c\xFF\xFF\xFF\xFF\x16V[P`\x08_\x83`\x02\x81\x11\x15a\x11fWa\x11fa)\x1FV[`\x02\x81\x11\x15a\x11wWa\x11wa)\x1FV[\x81R` \x01\x90\x81R` \x01_ _\x82\x81R` \x01\x90\x81R` \x01_ _\x90U\x80\x82`\x02\x81\x11\x15a\x11\xA9Wa\x11\xA9a)\x1FV[`@Q_\x81R\x7F\xD9\x17\x8B\xC4\x98\xF8\xA880\xCBm\xB7kjh\x92+m\xA8\xC2_;\x86Zn\xA2\xA7E\x1A\xC8\xB4v\x90` \x01[`@Q\x80\x91\x03\x90\xA3PPV[__`\x07_\x85`\x02\x81\x11\x15a\x11\xF8Wa\x11\xF8a)\x1FV[`\x02\x81\x11\x15a\x12\tWa\x12\ta)\x1FV[\x81R` \x80\x82\x01\x92\x90\x92R`@\x90\x81\x01_\x90\x81 \x7F\xFF\xFF\xFF\xFF\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\x87\x16\x82R\x90\x92R\x90 Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90P\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF!S\x81\x01a\x12\xBDW\x83\x83`@Q\x7F\x02\x9A*h\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\t\xD9\x92\x91\x90a.\x0EV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16a\r#W`\x01_\x85`\x02\x81\x11\x15a\x12\xEDWa\x12\xEDa)\x1FV[`\x02\x81\x11\x15a\x12\xFEWa\x12\xFEa)\x1FV[\x81R` \x81\x01\x91\x90\x91R`@\x01_ `\x02\x01Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x91Pa\r&\x90PV[``a\r&`\x05_\x84`\x02\x81\x11\x15a\x13JWa\x13Ja)\x1FV[`\x02\x81\x11\x15a\x13[Wa\x13[a)\x1FV[\x81R` \x01\x90\x81R` \x01_ a\"-V[_`\x08_\x84`\x02\x81\x11\x15a\x13\x83Wa\x13\x83a)\x1FV[`\x02\x81\x11\x15a\x13\x94Wa\x13\x94a)\x1FV[\x81R` \x01\x90\x81R` \x01_ _\x83\x81R` \x01\x90\x81R` \x01_ T\x90P\x92\x91PPV[_T``\x90s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x163\x14a\x14\x0CW`@Q\x7F\xFE\x022\xC3\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\x01`@Q\x80\x91\x03\x90\xFD[_`\x01_\x86`\x02\x81\x11\x15a\x14\"Wa\x14\"a)\x1FV[`\x02\x81\x11\x15a\x143Wa\x143a)\x1FV[\x81R` \x01\x90\x81R` \x01_ `\x01\x01T\x90P_`\x01_\x87`\x02\x81\x11\x15a\x14\\Wa\x14\\a)\x1FV[`\x02\x81\x11\x15a\x14mWa\x14ma)\x1FV[\x81R` \x01\x90\x81R` \x01_ _\x01T\x90P_`\x08_\x88`\x02\x81\x11\x15a\x14\x95Wa\x14\x95a)\x1FV[`\x02\x81\x11\x15a\x14\xA6Wa\x14\xA6a)\x1FV[\x81R` \x01\x90\x81R` \x01_ _\x83\x81R` \x01\x90\x81R` \x01_ T\x90Pa\x14\xD3\x87\x84\x8B\x8B\x8A\x8Aa\x1E\x87V[_a\x14\xE0\x89\x8B\x01\x8Ba2\xAAV[\x80Q\x90\x91P\x82\x14a\x15*W\x80Q`@Q\x7F!\xB9X|\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\x81Ra\t\xD9\x91\x84\x91`\x04\x01\x91\x82R` \x82\x01R`@\x01\x90V[` \x81\x01QQ\x80g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x15IWa\x15Ia&\x15V[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a\x15\xD4W\x81` \x01[a\x15\xC1`@\x80Qa\x01 \x81\x01\x90\x91R\x80_\x81R` \x01_`\xFF\x16\x81R` \x01_g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81R` \x01``\x81R` \x01``\x81R` \x01``\x81R` \x01``\x81R` \x01``\x81R` \x01``\x81RP\x90V[\x81R` \x01\x90`\x01\x90\x03\x90\x81a\x15gW\x90P[P\x95P_[\x81\x81\x10\x15a\x16,Wa\x16\x07\x83` \x01Q\x82\x81Q\x81\x10a\x15\xFAWa\x15\xFAa3\x9BV[` \x02` \x01\x01Qa \x1BV[\x87\x82\x81Q\x81\x10a\x16\x19Wa\x16\x19a3\x9BV[` \x90\x81\x02\x91\x90\x91\x01\x01R`\x01\x01a\x15\xD9V[P\x7F\xDF\xA7g\xADT\x93\x1D\x8D\x88\x9F4\xB4\x18\xA6o\t\xA0\xBE\xC3@m\xEB\xBD\x9D\xEC\xBB\x8C\xE9\x19\xC2O\xFE\x84\x8A\x88`@Q` \x01a\x16a\x91\x90a,\x06V[`@\x80Q\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x81\x84\x03\x01\x81R\x90\x82\x90Ra\x16\x9B\x93\x92\x91a3\xC8V[`@Q\x80\x91\x03\x90\xA1PPPPP\x95\x94PPPPPV[a\x16\xB9a\x1EGV[\x81a\x16\xF0W`@Q\x7FA\xA4c\xA5\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\x01`@Q\x80\x91\x03\x90\xFD[\x81`\x01_\x85`\x02\x81\x11\x15a\x17\x06Wa\x17\x06a)\x1FV[`\x02\x81\x11\x15a\x17\x17Wa\x17\x17a)\x1FV[\x81R` \x01\x90\x81R` \x01_ _\x01T\x03a\x17bW\x82\x82`@Q\x7F\xF3\xDFi\xDC\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\t\xD9\x92\x91\x90a2\x8FV[\x81`\x01_\x85`\x02\x81\x11\x15a\x17xWa\x17xa)\x1FV[`\x02\x81\x11\x15a\x17\x89Wa\x17\x89a)\x1FV[\x81R` \x01\x90\x81R` \x01_ _\x01\x81\x90UPa\x17\xB5\x82`\x05_\x86`\x02\x81\x11\x15a\x07\xE1Wa\x07\xE1a)\x1FV[P\x80`\x08_\x85`\x02\x81\x11\x15a\x17\xCCWa\x17\xCCa)\x1FV[`\x02\x81\x11\x15a\x17\xDDWa\x17\xDDa)\x1FV[\x81R` \x80\x82\x01\x92\x90\x92R`@\x90\x81\x01_\x90\x81 \x86\x82R\x90\x92R\x90 U\x81\x83`\x02\x81\x11\x15a\x18\rWa\x18\ra)\x1FV[`@Q\x83\x81R\x7FQ\x08N\xB3M\xAC\x0E\x8Cyk'A\xED\x1Ao\xEDrs\x11\xFCC[\n\xF0\xDA\xC3\x0F\x05\x81\xDB\xCEI\x90` \x01a\x0FzV[a\x18Ea\x1EGV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16a\x18\x91W`@Q~\x9E\xF5\xCB\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\x01`@Q\x80\x91\x03\x90\xFD[_\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x16\x90\x81\x17\x90\x91U`@Q\x90\x81R\x7FoN\x85\xFB1f\xA8\r\x08j\xCAnRv\x82\xA6\xC1\x12\x8B\xFE\xE7\x91\x07\xAFmB\x16\xF8C\xE2\x01p\x90` \x01a\reV[a\x19\x0Ba\x1EGV[\x80g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16_\x03a\x19NW`@Q\x7FT\t\xE3\xE7\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\x01`@Q\x80\x91\x03\x90\xFD[`\x03\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\x16g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x16\x90\x81\x17\x90\x91U`@Q\x90\x81R\x7F\xC6 G\x0B\x92\xE1\xAFi\xC9\x14I[\xFF\x07%\xD3\xF9\xDD\xEFX\xF4\xE3\xDA\xD2\xD2\xE5\xB2\xF4\xBFc\xF0\xE3\x90` \x01a\reV[``a\r&`\x06_\x84`\x02\x81\x11\x15a\x13JWa\x13Ja)\x1FV[a\x19\xD7a\x1EGV[\x80a\x1A\x0EW`@Q\x7FA\xA4c\xA5\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\x01`@Q\x80\x91\x03\x90\xFD[\x80`\x01_\x84`\x02\x81\x11\x15a\x1A$Wa\x1A$a)\x1FV[`\x02\x81\x11\x15a\x1A5Wa\x1A5a)\x1FV[\x81R` \x01\x90\x81R` \x01_ `\x01\x01T\x03a\x1A\x81W\x81\x81`@Q\x7F\xF3\xDFi\xDC\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\t\xD9\x92\x91\x90a2\x8FV[\x80`\x01_\x84`\x02\x81\x11\x15a\x1A\x97Wa\x1A\x97a)\x1FV[`\x02\x81\x11\x15a\x1A\xA8Wa\x1A\xA8a)\x1FV[\x81R` \x01\x90\x81R` \x01_ `\x01\x01\x81\x90UPa\x1A\xD5\x81`\x06_\x85`\x02\x81\x11\x15a\x07\xE1Wa\x07\xE1a)\x1FV[P\x80\x82`\x02\x81\x11\x15a\x1A\xE9Wa\x1A\xE9a)\x1FV[`@Q\x7F\xA1<~y\xC7m\xCC\xED\x91\xCCb\xC4\x9D\xB7::\x02\x93Z\xEF\x81\x0E\xEA{yBb^\x94\xBC@p\x90_\x90\xA3PPV[_a\r#\x82`\x05_\x86`\x02\x81\x11\x15a\x0C\xF7Wa\x0C\xF7a)\x1FV[a\x1B7a\x1EGV[c8\x9Au\xE1`\x0CR\x80_R` `\x0C \x80TB\x11\x15a\x1B]Wco^\x88\x18_R`\x04`\x1C\xFD[_\x90Ua\x1Bi\x81a!\xA6V[PV[a\x1Bta\x1EGV[\x80``\x1Ba\x1B\x89WctH\xFB\xAE_R`\x04`\x1C\xFD[a\x1Bi\x81a!\xA6V[a\x1B\x9Aa\x1EGV[a\x1B\xB3\x81`\x06_\x85`\x02\x81\x11\x15a\x0C\xF7Wa\x0C\xF7a)\x1FV[a\x1B\xEDW\x81\x81`@Q\x7F\xBEY\xA1\xED\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\t\xD9\x92\x91\x90a2\x8FV[\x80`\x01_\x84`\x02\x81\x11\x15a\x1C\x03Wa\x1C\x03a)\x1FV[`\x02\x81\x11\x15a\x1C\x14Wa\x1C\x14a)\x1FV[\x81R` \x01\x90\x81R` \x01_ `\x01\x01T\x03a\x1C`W\x81\x81`@Q\x7F,\"]*\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81R`\x04\x01a\t\xD9\x92\x91\x90a2\x8FV[a\x1Cy\x81`\x06_\x85`\x02\x81\x11\x15a\x11$Wa\x11$a)\x1FV[P\x80\x82`\x02\x81\x11\x15a\x1C\x8DWa\x1C\x8Da)\x1FV[`@Q`\x01\x81R\x7F\xD9\x17\x8B\xC4\x98\xF8\xA880\xCBm\xB7kjh\x92+m\xA8\xC2_;\x86Zn\xA2\xA7E\x1A\xC8\xB4v\x90` \x01a\x11\xD5V[``_\x82g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x1C\xDAWa\x1C\xDAa&\x15V[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a\x1D\x03W\x81` \x01` \x82\x02\x806\x837\x01\x90P[P`\x04T\x90\x91P_[\x84\x81\x10\x15a\x1E=W6_\x87\x87\x84\x81\x81\x10a\x1D(Wa\x1D(a3\x9BV[\x90P` \x02\x81\x01\x90a\x1D:\x91\x90a3\xEDV[\x90\x92P\x90P`\x01\x84\x83\x83_\x81a\x1DRWa\x1DRa3\x9BV[\x90P` \x02\x015\x14a\x1D\xB5W\x84\x83\x83_\x81\x81\x10a\x1DqWa\x1Dqa3\x9BV[\x90P` \x02\x015`@Q\x7F\xE4\xACIk\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\t\xD9\x92\x91\x90\x91\x82R` \x82\x01R`@\x01\x90V[`\x01[\x82\x81\x10\x15a\x1E\x0BW`\x02_\x85\x85\x84\x81\x81\x10a\x1D\xD5Wa\x1D\xD5a3\x9BV[` \x90\x81\x02\x92\x90\x92\x015\x83RP\x81\x01\x91\x90\x91R`@\x01_ T`\xFF\x16\x15a\x1E\x0BWa\x1E\x01`\x01\x83a4~V[\x91P`\x01\x01a\x1D\xB8V[P\x80\x86\x85\x81Q\x81\x10a\x1E\x1FWa\x1E\x1Fa3\x9BV[`\xFF\x92\x90\x92\x16` \x92\x83\x02\x91\x90\x91\x01\x90\x91\x01RPPP`\x01\x01a\x1D\x0CV[P\x90\x94\x93PPPPV[\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFFt\x879'T3\x14a\x0C\xDBWc\x82\xB4)\0_R`\x04`\x1C\xFD[_a\r#\x83\x83a\"8V[_a\x1E\x93\x87\x84\x84a\"\x84V[\x90P`\x01\x87`\x02\x81\x11\x15a\x1E\xA9Wa\x1E\xA9a)\x1FV[\x03a\x1FmW\x80s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xABu\x0Eu\x84\x84\x89`\x02\x8A\x8A`@Qa\x1E\xDF\x92\x91\x90a4\x97V[` `@Q\x80\x83\x03\x81\x85Z\xFA\x15\x80\x15a\x1E\xFAW=__>=_\xFD[PPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x1F\x1D\x91\x90a4\xA6V[`@Q\x85c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01a\x1F<\x94\x93\x92\x91\x90a4\xBDV[_`@Q\x80\x83\x03\x81\x86\x80;\x15\x80\x15a\x1FRW__\xFD[PZ\xFA\x15\x80\x15a\x1FdW=__>=_\xFD[PPPPa \x12V[`\x02\x87`\x02\x81\x11\x15a\x1F\x81Wa\x1F\x81a)\x1FV[\x03a\x1F\xE0W`@Q\x7FAI<`\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\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16\x90cAI<`\x90a\x1F<\x90\x89\x90\x89\x90\x89\x90\x89\x90\x89\x90`\x04\x01a4\xE3V[`@Q\x7FQ\xAB\xD9\\\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\x01`@Q\x80\x91\x03\x90\xFD[PPPPPPPV[a u`@\x80Qa\x01 \x81\x01\x90\x91R\x80_\x81R` \x01_`\xFF\x16\x81R` \x01_g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81R` \x01``\x81R` \x01``\x81R` \x01``\x81R` \x01``\x81R` \x01``\x81R` \x01``\x81RP\x90V[_\x82Q`\x03\x81\x11\x15a \x89Wa \x89a)\x1FV[\x14a \x92WP\x90V[\x81` \x01Q`\xFF\x16_\x03a \xA8WP`\x01\x81R\x90V[_[\x82` \x01Q`\xFF\x16\x81\x10\x15a!9W_\x83``\x01Q\x82\x81Q\x81\x10a \xD0Wa \xD0a3\x9BV[` \x02` \x01\x01Q\x90P\x81_\x03a!\x12W`\x04T\x81\x14a!\x0CW\x83`\x01[\x90\x81`\x03\x81\x11\x15a!\x01Wa!\x01a)\x1FV[\x90RP\x92\x93\x92PPPV[Pa!1V[_\x81\x81R`\x02` R`@\x90 T`\xFF\x16a!/W\x83`\x02a \xEEV[P[`\x01\x01a \xAAV[P_a\x03\xE8\x83`@\x01Qa!M\x91\x90a5\x1BV[`\x03T\x90\x91PB\x90a!i\x90g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x83a5oV[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x10\x80a!\x88WPB\x81g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x11[\x15a!\x96WPP`\x03\x81R\x90V[a!\x9F\x83a$>V[P\x90\x91\x90PV[\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFFt\x879'\x80Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x92\x16\x91\x82\x90\x7F\x8B\xE0\x07\x9CS\x16Y\x14\x13D\xCD\x1F\xD0\xA4\xF2\x84\x19I\x7F\x97\"\xA3\xDA\xAF\xE3\xB4\x18okdW\xE0_\x80\xA3UV[_\x81\x81R`\x01\x83\x01` R`@\x81 T\x15\x15a\r#V[_a\r#\x83\x83a$\xBFV[``a\r&\x82a%\xA9V[_\x81\x81R`\x01\x83\x01` R`@\x81 Ta\"}WP\x81T`\x01\x81\x81\x01\x84U_\x84\x81R` \x80\x82 \x90\x93\x01\x84\x90U\x84T\x84\x82R\x82\x86\x01\x90\x93R`@\x90 \x91\x90\x91Ua\r&V[P_a\r&V[_\x80a\"\x93`\x04\x82\x85\x87a5\x8FV[a\"\x9C\x91a5\xB6V[\x90P_`\x07_\x87`\x02\x81\x11\x15a\"\xB4Wa\"\xB4a)\x1FV[`\x02\x81\x11\x15a\"\xC5Wa\"\xC5a)\x1FV[\x81R` \x80\x82\x01\x92\x90\x92R`@\x90\x81\x01_\x90\x81 \x7F\xFF\xFF\xFF\xFF\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\x86\x16\x82R\x90\x92R\x90 Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90P\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF!S\x81\x01a#yW\x85\x82`@Q\x7F\x02\x9A*h\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\t\xD9\x92\x91\x90a.\x0EV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16a#\xE6W`\x01_\x87`\x02\x81\x11\x15a#\xA9Wa#\xA9a)\x1FV[`\x02\x81\x11\x15a#\xBAWa#\xBAa)\x1FV[\x81R` \x81\x01\x91\x90\x91R`@\x01_ `\x02\x01Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90P[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16a$5W\x85`@Q\x7F\xCEK\xC6\xD6\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\t\xD9\x91\x90a6\x1BV[\x95\x94PPPPPV[` \x81\x01Q`\xFF\x16[\x81``\x01QQ\x81\x10\x15a$\xBBW_\x82``\x01Q\x82\x81Q\x81\x10a$kWa$ka3\x9BV[` \x90\x81\x02\x91\x90\x91\x01\x81\x01Q_\x90\x81R`\x02\x90\x91R`@\x90 \x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x16`\x01\x90\x81\x17\x90\x91U\x91\x90\x91\x01\x90Pa$GV[PPV[_\x81\x81R`\x01\x83\x01` R`@\x81 T\x80\x15a%\x99W_a$\xE1`\x01\x83a6)V[\x85T\x90\x91P_\x90a$\xF4\x90`\x01\x90a6)V[\x90P\x81\x81\x14a%SW_\x86_\x01\x82\x81T\x81\x10a%\x12Wa%\x12a3\x9BV[\x90_R` _ \x01T\x90P\x80\x87_\x01\x84\x81T\x81\x10a%2Wa%2a3\x9BV[_\x91\x82R` \x80\x83 \x90\x91\x01\x92\x90\x92U\x91\x82R`\x01\x88\x01\x90R`@\x90 \x83\x90U[\x85T\x86\x90\x80a%dWa%da6 for u8 { + #[inline] + fn stv_to_tokens( + &self, + ) -> as alloy_sol_types::SolType>::Token<'_> { + alloy_sol_types::private::SolTypeValue::< + alloy::sol_types::sol_data::Uint<8>, + >::stv_to_tokens(self) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + as alloy_sol_types::SolType>::tokenize(self) + .0 + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::SolType>::abi_encode_packed_to(self, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + as alloy_sol_types::SolType>::abi_encoded_size(self) + } + } + impl VerificationResult { + /// The Solidity type name. + pub const NAME: &'static str = stringify!(@ name); + /// Convert from the underlying value type. + #[inline] + pub const fn from_underlying(value: u8) -> Self { + Self(value) + } + /// Return the underlying value. + #[inline] + pub const fn into_underlying(self) -> u8 { + self.0 + } + /// Return the single encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode(&self) -> alloy_sol_types::private::Vec { + ::abi_encode(&self.0) + } + /// Return the packed encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec { + ::abi_encode_packed(&self.0) + } + } + #[automatically_derived] + impl From for VerificationResult { + fn from(value: u8) -> Self { + Self::from_underlying(value) + } + } + #[automatically_derived] + impl From for u8 { + fn from(value: VerificationResult) -> Self { + value.into_underlying() + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for VerificationResult { + type RustType = u8; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = Self::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + Self::type_check(token).is_ok() + } + #[inline] + fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> { + as alloy_sol_types::SolType>::type_check(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + as alloy_sol_types::SolType>::detokenize(token) + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for VerificationResult { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + as alloy_sol_types::EventTopic>::topic_preimage_length(rust) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out) + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + as alloy_sol_types::EventTopic>::encode_topic(rust) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ZkCoProcessorType(u8); + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for u8 { + #[inline] + fn stv_to_tokens( + &self, + ) -> as alloy_sol_types::SolType>::Token<'_> { + alloy_sol_types::private::SolTypeValue::< + alloy::sol_types::sol_data::Uint<8>, + >::stv_to_tokens(self) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + as alloy_sol_types::SolType>::tokenize(self) + .0 + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::SolType>::abi_encode_packed_to(self, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + as alloy_sol_types::SolType>::abi_encoded_size(self) + } + } + impl ZkCoProcessorType { + /// The Solidity type name. + pub const NAME: &'static str = stringify!(@ name); + /// Convert from the underlying value type. + #[inline] + pub const fn from_underlying(value: u8) -> Self { + Self(value) + } + /// Return the underlying value. + #[inline] + pub const fn into_underlying(self) -> u8 { + self.0 + } + /// Return the single encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode(&self) -> alloy_sol_types::private::Vec { + ::abi_encode(&self.0) + } + /// Return the packed encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec { + ::abi_encode_packed(&self.0) + } + } + #[automatically_derived] + impl From for ZkCoProcessorType { + fn from(value: u8) -> Self { + Self::from_underlying(value) + } + } + #[automatically_derived] + impl From for u8 { + fn from(value: ZkCoProcessorType) -> Self { + value.into_underlying() + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for ZkCoProcessorType { + type RustType = u8; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = Self::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + Self::type_check(token).is_ok() + } + #[inline] + fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> { + as alloy_sol_types::SolType>::type_check(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + as alloy_sol_types::SolType>::detokenize(token) + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for ZkCoProcessorType { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + as alloy_sol_types::EventTopic>::topic_preimage_length(rust) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out) + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + as alloy_sol_types::EventTopic>::encode_topic(rust) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**```solidity +struct Bytes48 { bytes32 first; bytes16 second; } +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct Bytes48 { + #[allow(missing_docs)] + pub first: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub second: alloy::sol_types::private::FixedBytes<16>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::FixedBytes<16>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::FixedBytes<32>, + alloy::sol_types::private::FixedBytes<16>, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: Bytes48) -> Self { + (value.first, value.second) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for Bytes48 { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + first: tuple.0, + second: tuple.1, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolValue for Bytes48 { + type SolType = Self; + } + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for Bytes48 { + #[inline] + fn stv_to_tokens(&self) -> ::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.first), + as alloy_sol_types::SolType>::tokenize(&self.second), + ) + } + #[inline] + fn stv_abi_encoded_size(&self) -> usize { + if let Some(size) = ::ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encoded_size(&tuple) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + ::eip712_hash_struct(self) + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + if let Some(size) = ::PACKED_ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for Bytes48 { + type RustType = Self; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = ::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + as alloy_sol_types::SolType>::valid_token(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + let tuple = as alloy_sol_types::SolType>::detokenize(token); + >>::from(tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolStruct for Bytes48 { + const NAME: &'static str = "Bytes48"; + #[inline] + fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> { + alloy_sol_types::private::Cow::Borrowed( + "Bytes48(bytes32 first,bytes16 second)", + ) + } + #[inline] + fn eip712_components() -> alloy_sol_types::private::Vec< + alloy_sol_types::private::Cow<'static, str>, + > { + alloy_sol_types::private::Vec::new() + } + #[inline] + fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> { + ::eip712_root_type() + } + #[inline] + fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec { + [ + as alloy_sol_types::SolType>::eip712_data_word(&self.first) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.second) + .0, + ] + .concat() + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for Bytes48 { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + 0usize + + as alloy_sol_types::EventTopic>::topic_preimage_length(&rust.first) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.second, + ) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + out.reserve( + ::topic_preimage_length(rust), + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.first, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.second, + out, + ); + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + let mut out = alloy_sol_types::private::Vec::new(); + ::encode_topic_preimage( + rust, + &mut out, + ); + alloy_sol_types::abi::token::WordToken( + alloy_sol_types::private::keccak256(out), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**```solidity +struct Pcr { uint64 index; Bytes48 value; } +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct Pcr { + #[allow(missing_docs)] + pub index: u64, + #[allow(missing_docs)] + pub value: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<64>, Bytes48); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + u64, + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: Pcr) -> Self { + (value.index, value.value) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for Pcr { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + index: tuple.0, + value: tuple.1, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolValue for Pcr { + type SolType = Self; + } + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for Pcr { + #[inline] + fn stv_to_tokens(&self) -> ::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.index), + ::tokenize(&self.value), + ) + } + #[inline] + fn stv_abi_encoded_size(&self) -> usize { + if let Some(size) = ::ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encoded_size(&tuple) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + ::eip712_hash_struct(self) + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + if let Some(size) = ::PACKED_ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for Pcr { + type RustType = Self; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = ::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + as alloy_sol_types::SolType>::valid_token(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + let tuple = as alloy_sol_types::SolType>::detokenize(token); + >>::from(tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolStruct for Pcr { + const NAME: &'static str = "Pcr"; + #[inline] + fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> { + alloy_sol_types::private::Cow::Borrowed( + "Pcr(uint64 index,Bytes48 value)", + ) + } + #[inline] + fn eip712_components() -> alloy_sol_types::private::Vec< + alloy_sol_types::private::Cow<'static, str>, + > { + let mut components = alloy_sol_types::private::Vec::with_capacity(1); + components + .push(::eip712_root_type()); + components + .extend( + ::eip712_components(), + ); + components + } + #[inline] + fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec { + [ + as alloy_sol_types::SolType>::eip712_data_word(&self.index) + .0, + ::eip712_data_word(&self.value) + .0, + ] + .concat() + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for Pcr { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + 0usize + + as alloy_sol_types::EventTopic>::topic_preimage_length(&rust.index) + + ::topic_preimage_length( + &rust.value, + ) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + out.reserve( + ::topic_preimage_length(rust), + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.index, + out, + ); + ::encode_topic_preimage( + &rust.value, + out, + ); + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + let mut out = alloy_sol_types::private::Vec::new(); + ::encode_topic_preimage( + rust, + &mut out, + ); + alloy_sol_types::abi::token::WordToken( + alloy_sol_types::private::keccak256(out), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**```solidity +struct VerifierJournal { VerificationResult result; uint8 trustedCertsPrefixLen; uint64 timestamp; bytes32[] certs; bytes userData; bytes nonce; bytes publicKey; Pcr[] pcrs; string moduleId; } +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct VerifierJournal { + #[allow(missing_docs)] + pub result: ::RustType, + #[allow(missing_docs)] + pub trustedCertsPrefixLen: u8, + #[allow(missing_docs)] + pub timestamp: u64, + #[allow(missing_docs)] + pub certs: alloy::sol_types::private::Vec< + alloy::sol_types::private::FixedBytes<32>, + >, + #[allow(missing_docs)] + pub userData: alloy::sol_types::private::Bytes, + #[allow(missing_docs)] + pub nonce: alloy::sol_types::private::Bytes, + #[allow(missing_docs)] + pub publicKey: alloy::sol_types::private::Bytes, + #[allow(missing_docs)] + pub pcrs: alloy::sol_types::private::Vec< + ::RustType, + >, + #[allow(missing_docs)] + pub moduleId: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + VerificationResult, + alloy::sol_types::sol_data::Uint<8>, + alloy::sol_types::sol_data::Uint<64>, + alloy::sol_types::sol_data::Array< + alloy::sol_types::sol_data::FixedBytes<32>, + >, + alloy::sol_types::sol_data::Bytes, + alloy::sol_types::sol_data::Bytes, + alloy::sol_types::sol_data::Bytes, + alloy::sol_types::sol_data::Array, + alloy::sol_types::sol_data::String, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + u8, + u64, + alloy::sol_types::private::Vec>, + alloy::sol_types::private::Bytes, + alloy::sol_types::private::Bytes, + alloy::sol_types::private::Bytes, + alloy::sol_types::private::Vec<::RustType>, + alloy::sol_types::private::String, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: VerifierJournal) -> Self { + ( + value.result, + value.trustedCertsPrefixLen, + value.timestamp, + value.certs, + value.userData, + value.nonce, + value.publicKey, + value.pcrs, + value.moduleId, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for VerifierJournal { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + result: tuple.0, + trustedCertsPrefixLen: tuple.1, + timestamp: tuple.2, + certs: tuple.3, + userData: tuple.4, + nonce: tuple.5, + publicKey: tuple.6, + pcrs: tuple.7, + moduleId: tuple.8, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolValue for VerifierJournal { + type SolType = Self; + } + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for VerifierJournal { + #[inline] + fn stv_to_tokens(&self) -> ::Token<'_> { + ( + ::tokenize( + &self.result, + ), + as alloy_sol_types::SolType>::tokenize( + &self.trustedCertsPrefixLen, + ), + as alloy_sol_types::SolType>::tokenize(&self.timestamp), + , + > as alloy_sol_types::SolType>::tokenize(&self.certs), + ::tokenize( + &self.userData, + ), + ::tokenize( + &self.nonce, + ), + ::tokenize( + &self.publicKey, + ), + as alloy_sol_types::SolType>::tokenize(&self.pcrs), + ::tokenize( + &self.moduleId, + ), + ) + } + #[inline] + fn stv_abi_encoded_size(&self) -> usize { + if let Some(size) = ::ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encoded_size(&tuple) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + ::eip712_hash_struct(self) + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + if let Some(size) = ::PACKED_ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for VerifierJournal { + type RustType = Self; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = ::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + as alloy_sol_types::SolType>::valid_token(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + let tuple = as alloy_sol_types::SolType>::detokenize(token); + >>::from(tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolStruct for VerifierJournal { + const NAME: &'static str = "VerifierJournal"; + #[inline] + fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> { + alloy_sol_types::private::Cow::Borrowed( + "VerifierJournal(uint8 result,uint8 trustedCertsPrefixLen,uint64 timestamp,bytes32[] certs,bytes userData,bytes nonce,bytes publicKey,Pcr[] pcrs,string moduleId)", + ) + } + #[inline] + fn eip712_components() -> alloy_sol_types::private::Vec< + alloy_sol_types::private::Cow<'static, str>, + > { + let mut components = alloy_sol_types::private::Vec::with_capacity(1); + components.push(::eip712_root_type()); + components + .extend(::eip712_components()); + components + } + #[inline] + fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec { + [ + ::eip712_data_word( + &self.result, + ) + .0, + as alloy_sol_types::SolType>::eip712_data_word( + &self.trustedCertsPrefixLen, + ) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.timestamp) + .0, + , + > as alloy_sol_types::SolType>::eip712_data_word(&self.certs) + .0, + ::eip712_data_word( + &self.userData, + ) + .0, + ::eip712_data_word( + &self.nonce, + ) + .0, + ::eip712_data_word( + &self.publicKey, + ) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.pcrs) + .0, + ::eip712_data_word( + &self.moduleId, + ) + .0, + ] + .concat() + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for VerifierJournal { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + 0usize + + ::topic_preimage_length( + &rust.result, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.trustedCertsPrefixLen, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.timestamp, + ) + + , + > as alloy_sol_types::EventTopic>::topic_preimage_length(&rust.certs) + + ::topic_preimage_length( + &rust.userData, + ) + + ::topic_preimage_length( + &rust.nonce, + ) + + ::topic_preimage_length( + &rust.publicKey, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length(&rust.pcrs) + + ::topic_preimage_length( + &rust.moduleId, + ) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + out.reserve( + ::topic_preimage_length(rust), + ); + ::encode_topic_preimage( + &rust.result, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.trustedCertsPrefixLen, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.timestamp, + out, + ); + , + > as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.certs, + out, + ); + ::encode_topic_preimage( + &rust.userData, + out, + ); + ::encode_topic_preimage( + &rust.nonce, + out, + ); + ::encode_topic_preimage( + &rust.publicKey, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.pcrs, + out, + ); + ::encode_topic_preimage( + &rust.moduleId, + out, + ); + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + let mut out = alloy_sol_types::private::Vec::new(); + ::encode_topic_preimage( + rust, + &mut out, + ); + alloy_sol_types::abi::token::WordToken( + alloy_sol_types::private::keccak256(out), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**```solidity +struct ZkCoProcessorConfig { bytes32 verifierId; bytes32 aggregatorId; address zkVerifier; } +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ZkCoProcessorConfig { + #[allow(missing_docs)] + pub verifierId: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub aggregatorId: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub zkVerifier: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::FixedBytes<32>, + alloy::sol_types::private::FixedBytes<32>, + alloy::sol_types::private::Address, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ZkCoProcessorConfig) -> Self { + (value.verifierId, value.aggregatorId, value.zkVerifier) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ZkCoProcessorConfig { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + verifierId: tuple.0, + aggregatorId: tuple.1, + zkVerifier: tuple.2, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolValue for ZkCoProcessorConfig { + type SolType = Self; + } + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for ZkCoProcessorConfig { + #[inline] + fn stv_to_tokens(&self) -> ::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.verifierId), + as alloy_sol_types::SolType>::tokenize(&self.aggregatorId), + ::tokenize( + &self.zkVerifier, + ), + ) + } + #[inline] + fn stv_abi_encoded_size(&self) -> usize { + if let Some(size) = ::ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encoded_size(&tuple) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + ::eip712_hash_struct(self) + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + if let Some(size) = ::PACKED_ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for ZkCoProcessorConfig { + type RustType = Self; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = ::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + as alloy_sol_types::SolType>::valid_token(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + let tuple = as alloy_sol_types::SolType>::detokenize(token); + >>::from(tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolStruct for ZkCoProcessorConfig { + const NAME: &'static str = "ZkCoProcessorConfig"; + #[inline] + fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> { + alloy_sol_types::private::Cow::Borrowed( + "ZkCoProcessorConfig(bytes32 verifierId,bytes32 aggregatorId,address zkVerifier)", + ) + } + #[inline] + fn eip712_components() -> alloy_sol_types::private::Vec< + alloy_sol_types::private::Cow<'static, str>, + > { + alloy_sol_types::private::Vec::new() + } + #[inline] + fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> { + ::eip712_root_type() + } + #[inline] + fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec { + [ + as alloy_sol_types::SolType>::eip712_data_word(&self.verifierId) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.aggregatorId) + .0, + ::eip712_data_word( + &self.zkVerifier, + ) + .0, + ] + .concat() + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for ZkCoProcessorConfig { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + 0usize + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.verifierId, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.aggregatorId, + ) + + ::topic_preimage_length( + &rust.zkVerifier, + ) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + out.reserve( + ::topic_preimage_length(rust), + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.verifierId, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.aggregatorId, + out, + ); + ::encode_topic_preimage( + &rust.zkVerifier, + out, + ); + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + let mut out = alloy_sol_types::private::Vec::new(); + ::encode_topic_preimage( + rust, + &mut out, + ); + alloy_sol_types::abi::token::WordToken( + alloy_sol_types::private::keccak256(out), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `AlreadyInitialized()` and selector `0x0dc149f0`. +```solidity +error AlreadyInitialized(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct AlreadyInitialized; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: AlreadyInitialized) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for AlreadyInitialized { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for AlreadyInitialized { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "AlreadyInitialized()"; + const SELECTOR: [u8; 4] = [13u8, 193u8, 73u8, 240u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `CallerNotProofSubmitter()` and selector `0xfe0232c3`. +```solidity +error CallerNotProofSubmitter(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct CallerNotProofSubmitter; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: CallerNotProofSubmitter) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for CallerNotProofSubmitter { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for CallerNotProofSubmitter { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "CallerNotProofSubmitter()"; + const SELECTOR: [u8; 4] = [254u8, 2u8, 50u8, 195u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `CannotRemoveLatestProgramId(uint8,bytes32)` and selector `0x2c225d2a`. +```solidity +error CannotRemoveLatestProgramId(ZkCoProcessorType zkCoProcessor, bytes32 identifier); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct CannotRemoveLatestProgramId { + #[allow(missing_docs)] + pub zkCoProcessor: ::RustType, + #[allow(missing_docs)] + pub identifier: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + ZkCoProcessorType, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + alloy::sol_types::private::FixedBytes<32>, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: CannotRemoveLatestProgramId) -> Self { + (value.zkCoProcessor, value.identifier) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for CannotRemoveLatestProgramId { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + zkCoProcessor: tuple.0, + identifier: tuple.1, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for CannotRemoveLatestProgramId { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "CannotRemoveLatestProgramId(uint8,bytes32)"; + const SELECTOR: [u8; 4] = [44u8, 34u8, 93u8, 42u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.zkCoProcessor, + ), + as alloy_sol_types::SolType>::tokenize(&self.identifier), + ) + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `CertificateNotFound(bytes32)` and selector `0x7585e638`. +```solidity +error CertificateNotFound(bytes32 certHash); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct CertificateNotFound { + #[allow(missing_docs)] + pub certHash: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: CertificateNotFound) -> Self { + (value.certHash,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for CertificateNotFound { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { certHash: tuple.0 } + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for CertificateNotFound { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "CertificateNotFound(bytes32)"; + const SELECTOR: [u8; 4] = [117u8, 133u8, 230u8, 56u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.certHash), + ) + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `NewOwnerIsZeroAddress()` and selector `0x7448fbae`. +```solidity +error NewOwnerIsZeroAddress(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct NewOwnerIsZeroAddress; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: NewOwnerIsZeroAddress) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for NewOwnerIsZeroAddress { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for NewOwnerIsZeroAddress { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "NewOwnerIsZeroAddress()"; + const SELECTOR: [u8; 4] = [116u8, 72u8, 251u8, 174u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `NoHandoverRequest()` and selector `0x6f5e8818`. +```solidity +error NoHandoverRequest(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct NoHandoverRequest; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: NoHandoverRequest) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for NoHandoverRequest { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for NoHandoverRequest { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "NoHandoverRequest()"; + const SELECTOR: [u8; 4] = [111u8, 94u8, 136u8, 24u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `NotImplemented()` and selector `0xd6234725`. +```solidity +error NotImplemented(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct NotImplemented; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: NotImplemented) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for NotImplemented { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for NotImplemented { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "NotImplemented()"; + const SELECTOR: [u8; 4] = [214u8, 35u8, 71u8, 37u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ProgramIdAlreadyLatest(uint8,bytes32)` and selector `0xf3df69dc`. +```solidity +error ProgramIdAlreadyLatest(ZkCoProcessorType zkCoProcessor, bytes32 identifier); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ProgramIdAlreadyLatest { + #[allow(missing_docs)] + pub zkCoProcessor: ::RustType, + #[allow(missing_docs)] + pub identifier: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + ZkCoProcessorType, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + alloy::sol_types::private::FixedBytes<32>, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ProgramIdAlreadyLatest) -> Self { + (value.zkCoProcessor, value.identifier) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ProgramIdAlreadyLatest { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + zkCoProcessor: tuple.0, + identifier: tuple.1, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ProgramIdAlreadyLatest { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ProgramIdAlreadyLatest(uint8,bytes32)"; + const SELECTOR: [u8; 4] = [243u8, 223u8, 105u8, 220u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.zkCoProcessor, + ), + as alloy_sol_types::SolType>::tokenize(&self.identifier), + ) + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ProgramIdNotFound(uint8,bytes32)` and selector `0xbe59a1ed`. +```solidity +error ProgramIdNotFound(ZkCoProcessorType zkCoProcessor, bytes32 identifier); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ProgramIdNotFound { + #[allow(missing_docs)] + pub zkCoProcessor: ::RustType, + #[allow(missing_docs)] + pub identifier: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + ZkCoProcessorType, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + alloy::sol_types::private::FixedBytes<32>, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ProgramIdNotFound) -> Self { + (value.zkCoProcessor, value.identifier) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ProgramIdNotFound { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + zkCoProcessor: tuple.0, + identifier: tuple.1, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ProgramIdNotFound { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ProgramIdNotFound(uint8,bytes32)"; + const SELECTOR: [u8; 4] = [190u8, 89u8, 161u8, 237u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.zkCoProcessor, + ), + as alloy_sol_types::SolType>::tokenize(&self.identifier), + ) + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `RootCertMismatch(bytes32,bytes32)` and selector `0xe4ac496b`. +```solidity +error RootCertMismatch(bytes32 expected, bytes32 actual); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct RootCertMismatch { + #[allow(missing_docs)] + pub expected: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub actual: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::FixedBytes<32>, + alloy::sol_types::private::FixedBytes<32>, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: RootCertMismatch) -> Self { + (value.expected, value.actual) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for RootCertMismatch { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + expected: tuple.0, + actual: tuple.1, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for RootCertMismatch { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "RootCertMismatch(bytes32,bytes32)"; + const SELECTOR: [u8; 4] = [228u8, 172u8, 73u8, 107u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.expected), + as alloy_sol_types::SolType>::tokenize(&self.actual), + ) + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `Unauthorized()` and selector `0x82b42900`. +```solidity +error Unauthorized(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct Unauthorized; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: Unauthorized) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for Unauthorized { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for Unauthorized { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "Unauthorized()"; + const SELECTOR: [u8; 4] = [130u8, 180u8, 41u8, 0u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `Unknown_Zk_Coprocessor()` and selector `0x51abd95c`. +```solidity +error Unknown_Zk_Coprocessor(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct Unknown_Zk_Coprocessor; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: Unknown_Zk_Coprocessor) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for Unknown_Zk_Coprocessor { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for Unknown_Zk_Coprocessor { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "Unknown_Zk_Coprocessor()"; + const SELECTOR: [u8; 4] = [81u8, 171u8, 217u8, 92u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `VerifierVkMismatch(bytes32,bytes32)` and selector `0x21b9587c`. +```solidity +error VerifierVkMismatch(bytes32 expected, bytes32 actual); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct VerifierVkMismatch { + #[allow(missing_docs)] + pub expected: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub actual: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::FixedBytes<32>, + alloy::sol_types::private::FixedBytes<32>, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: VerifierVkMismatch) -> Self { + (value.expected, value.actual) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for VerifierVkMismatch { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + expected: tuple.0, + actual: tuple.1, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for VerifierVkMismatch { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "VerifierVkMismatch(bytes32,bytes32)"; + const SELECTOR: [u8; 4] = [33u8, 185u8, 88u8, 124u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.expected), + as alloy_sol_types::SolType>::tokenize(&self.actual), + ) + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ZeroMaxTimeDiff()` and selector `0x5409e3e7`. +```solidity +error ZeroMaxTimeDiff(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ZeroMaxTimeDiff; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ZeroMaxTimeDiff) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ZeroMaxTimeDiff { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ZeroMaxTimeDiff { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ZeroMaxTimeDiff()"; + const SELECTOR: [u8; 4] = [84u8, 9u8, 227u8, 231u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ZeroProgramId()` and selector `0x41a463a5`. +```solidity +error ZeroProgramId(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ZeroProgramId; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ZeroProgramId) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ZeroProgramId { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ZeroProgramId { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ZeroProgramId()"; + const SELECTOR: [u8; 4] = [65u8, 164u8, 99u8, 165u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ZeroProofSubmitter()` and selector `0x009ef5cb`. +```solidity +error ZeroProofSubmitter(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ZeroProofSubmitter; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ZeroProofSubmitter) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ZeroProofSubmitter { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ZeroProofSubmitter { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ZeroProofSubmitter()"; + const SELECTOR: [u8; 4] = [0u8, 158u8, 245u8, 203u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ZeroVerifierAddress()` and selector `0x0e3ba0af`. +```solidity +error ZeroVerifierAddress(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ZeroVerifierAddress; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ZeroVerifierAddress) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ZeroVerifierAddress { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ZeroVerifierAddress { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ZeroVerifierAddress()"; + const SELECTOR: [u8; 4] = [14u8, 59u8, 160u8, 175u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ZkRouteFrozen(uint8,bytes4)` and selector `0x029a2a68`. +```solidity +error ZkRouteFrozen(ZkCoProcessorType zkCoProcessor, bytes4 selector); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ZkRouteFrozen { + #[allow(missing_docs)] + pub zkCoProcessor: ::RustType, + #[allow(missing_docs)] + pub selector: alloy::sol_types::private::FixedBytes<4>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + ZkCoProcessorType, + alloy::sol_types::sol_data::FixedBytes<4>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + alloy::sol_types::private::FixedBytes<4>, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ZkRouteFrozen) -> Self { + (value.zkCoProcessor, value.selector) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ZkRouteFrozen { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + zkCoProcessor: tuple.0, + selector: tuple.1, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ZkRouteFrozen { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ZkRouteFrozen(uint8,bytes4)"; + const SELECTOR: [u8; 4] = [2u8, 154u8, 42u8, 104u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.zkCoProcessor, + ), + as alloy_sol_types::SolType>::tokenize(&self.selector), + ) + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ZkVerifierNotConfigured(uint8)` and selector `0xce4bc6d6`. +```solidity +error ZkVerifierNotConfigured(ZkCoProcessorType zkCoProcessor); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ZkVerifierNotConfigured { + #[allow(missing_docs)] + pub zkCoProcessor: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (ZkCoProcessorType,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ZkVerifierNotConfigured) -> Self { + (value.zkCoProcessor,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ZkVerifierNotConfigured { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { zkCoProcessor: tuple.0 } + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ZkVerifierNotConfigured { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ZkVerifierNotConfigured(uint8)"; + const SELECTOR: [u8; 4] = [206u8, 75u8, 198u8, 214u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.zkCoProcessor, + ), + ) + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `AggregatorIdUpdated(uint8,bytes32)` and selector `0xa13c7e79c76dcced91cc62c49db73a3a02935aef810eea7b7942625e94bc4070`. +```solidity +event AggregatorIdUpdated(ZkCoProcessorType indexed zkCoProcessor, bytes32 indexed newId); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct AggregatorIdUpdated { + #[allow(missing_docs)] + pub zkCoProcessor: ::RustType, + #[allow(missing_docs)] + pub newId: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for AggregatorIdUpdated { + type DataTuple<'a> = (); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + ZkCoProcessorType, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + const SIGNATURE: &'static str = "AggregatorIdUpdated(uint8,bytes32)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 161u8, 60u8, 126u8, 121u8, 199u8, 109u8, 204u8, 237u8, 145u8, 204u8, + 98u8, 196u8, 157u8, 183u8, 58u8, 58u8, 2u8, 147u8, 90u8, 239u8, 129u8, + 14u8, 234u8, 123u8, 121u8, 66u8, 98u8, 94u8, 148u8, 188u8, 64u8, 112u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + zkCoProcessor: topics.1, + newId: topics.2, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + () + } + #[inline] + fn topics(&self) -> ::RustType { + ( + Self::SIGNATURE_HASH.into(), + self.zkCoProcessor.clone(), + self.newId.clone(), + ) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.zkCoProcessor, + ); + out[2usize] = as alloy_sol_types::EventTopic>::encode_topic(&self.newId); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for AggregatorIdUpdated { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&AggregatorIdUpdated> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &AggregatorIdUpdated) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `AttestationSubmitted(uint8,uint8,bytes)` and selector `0x34d71c5db80e3c1db53f6d245503c531894f694aa26c7a967adf77167b126036`. +```solidity +event AttestationSubmitted(VerificationResult result, ZkCoProcessorType zkCoProcessor, bytes output); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct AttestationSubmitted { + #[allow(missing_docs)] + pub result: ::RustType, + #[allow(missing_docs)] + pub zkCoProcessor: ::RustType, + #[allow(missing_docs)] + pub output: alloy::sol_types::private::Bytes, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for AttestationSubmitted { + type DataTuple<'a> = ( + VerificationResult, + ZkCoProcessorType, + alloy::sol_types::sol_data::Bytes, + ); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,); + const SIGNATURE: &'static str = "AttestationSubmitted(uint8,uint8,bytes)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 52u8, 215u8, 28u8, 93u8, 184u8, 14u8, 60u8, 29u8, 181u8, 63u8, 109u8, + 36u8, 85u8, 3u8, 197u8, 49u8, 137u8, 79u8, 105u8, 74u8, 162u8, 108u8, + 122u8, 150u8, 122u8, 223u8, 119u8, 22u8, 123u8, 18u8, 96u8, 54u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + result: data.0, + zkCoProcessor: data.1, + output: data.2, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + ::tokenize( + &self.result, + ), + ::tokenize( + &self.zkCoProcessor, + ), + ::tokenize( + &self.output, + ), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(),) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for AttestationSubmitted { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&AttestationSubmitted> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &AttestationSubmitted) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `BatchAttestationSubmitted(bytes32,uint8,bytes)` and selector `0xdfa767ad54931d8d889f34b418a66f09a0bec3406debbd9decbb8ce919c24ffe`. +```solidity +event BatchAttestationSubmitted(bytes32 verifierId, ZkCoProcessorType zkCoProcessor, bytes encodedBatch); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct BatchAttestationSubmitted { + #[allow(missing_docs)] + pub verifierId: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub zkCoProcessor: ::RustType, + #[allow(missing_docs)] + pub encodedBatch: alloy::sol_types::private::Bytes, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for BatchAttestationSubmitted { + type DataTuple<'a> = ( + alloy::sol_types::sol_data::FixedBytes<32>, + ZkCoProcessorType, + alloy::sol_types::sol_data::Bytes, + ); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,); + const SIGNATURE: &'static str = "BatchAttestationSubmitted(bytes32,uint8,bytes)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 223u8, 167u8, 103u8, 173u8, 84u8, 147u8, 29u8, 141u8, 136u8, 159u8, 52u8, + 180u8, 24u8, 166u8, 111u8, 9u8, 160u8, 190u8, 195u8, 64u8, 109u8, 235u8, + 189u8, 157u8, 236u8, 187u8, 140u8, 233u8, 25u8, 194u8, 79u8, 254u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + verifierId: data.0, + zkCoProcessor: data.1, + encodedBatch: data.2, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.verifierId), + ::tokenize( + &self.zkCoProcessor, + ), + ::tokenize( + &self.encodedBatch, + ), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(),) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for BatchAttestationSubmitted { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&BatchAttestationSubmitted> for alloy_sol_types::private::LogData { + #[inline] + fn from( + this: &BatchAttestationSubmitted, + ) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `CertRevoked(bytes32)` and selector `0x49f59bec846fd3588d7d4900a9d7698f294a73043ed6c407d5c2cfa90b8b90d7`. +```solidity +event CertRevoked(bytes32 certHash); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct CertRevoked { + #[allow(missing_docs)] + pub certHash: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for CertRevoked { + type DataTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,); + const SIGNATURE: &'static str = "CertRevoked(bytes32)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 73u8, 245u8, 155u8, 236u8, 132u8, 111u8, 211u8, 88u8, 141u8, 125u8, 73u8, + 0u8, 169u8, 215u8, 105u8, 143u8, 41u8, 74u8, 115u8, 4u8, 62u8, 214u8, + 196u8, 7u8, 213u8, 194u8, 207u8, 169u8, 11u8, 139u8, 144u8, 215u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { certHash: data.0 } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.certHash), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(),) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for CertRevoked { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&CertRevoked> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &CertRevoked) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `MaxTimeDiffUpdated(uint64)` and selector `0xc620470b92e1af69c914495bff0725d3f9ddef58f4e3dad2d2e5b2f4bf63f0e3`. +```solidity +event MaxTimeDiffUpdated(uint64 newMaxTimeDiff); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct MaxTimeDiffUpdated { + #[allow(missing_docs)] + pub newMaxTimeDiff: u64, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for MaxTimeDiffUpdated { + type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,); + const SIGNATURE: &'static str = "MaxTimeDiffUpdated(uint64)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 198u8, 32u8, 71u8, 11u8, 146u8, 225u8, 175u8, 105u8, 201u8, 20u8, 73u8, + 91u8, 255u8, 7u8, 37u8, 211u8, 249u8, 221u8, 239u8, 88u8, 244u8, 227u8, + 218u8, 210u8, 210u8, 229u8, 178u8, 244u8, 191u8, 99u8, 240u8, 227u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { newMaxTimeDiff: data.0 } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.newMaxTimeDiff), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(),) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for MaxTimeDiffUpdated { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&MaxTimeDiffUpdated> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &MaxTimeDiffUpdated) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `OwnershipHandoverCanceled(address)` and selector `0xfa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c92`. +```solidity +event OwnershipHandoverCanceled(address indexed pendingOwner); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct OwnershipHandoverCanceled { + #[allow(missing_docs)] + pub pendingOwner: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for OwnershipHandoverCanceled { + type DataTuple<'a> = (); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "OwnershipHandoverCanceled(address)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 250u8, 123u8, 142u8, 171u8, 125u8, 166u8, 127u8, 65u8, 44u8, 201u8, 87u8, + 94u8, 212u8, 52u8, 100u8, 70u8, 143u8, 155u8, 251u8, 174u8, 137u8, 209u8, + 103u8, 89u8, 23u8, 52u8, 108u8, 166u8, 216u8, 254u8, 60u8, 146u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { pendingOwner: topics.1 } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + () + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.pendingOwner.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.pendingOwner, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for OwnershipHandoverCanceled { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&OwnershipHandoverCanceled> for alloy_sol_types::private::LogData { + #[inline] + fn from( + this: &OwnershipHandoverCanceled, + ) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `OwnershipHandoverRequested(address)` and selector `0xdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d`. +```solidity +event OwnershipHandoverRequested(address indexed pendingOwner); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct OwnershipHandoverRequested { + #[allow(missing_docs)] + pub pendingOwner: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for OwnershipHandoverRequested { + type DataTuple<'a> = (); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "OwnershipHandoverRequested(address)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 219u8, 243u8, 106u8, 16u8, 125u8, 161u8, 158u8, 73u8, 82u8, 122u8, 113u8, + 118u8, 161u8, 186u8, 191u8, 150u8, 59u8, 75u8, 15u8, 248u8, 205u8, 227u8, + 94u8, 227u8, 93u8, 108u8, 216u8, 241u8, 249u8, 172u8, 126u8, 29u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { pendingOwner: topics.1 } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + () + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.pendingOwner.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.pendingOwner, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for OwnershipHandoverRequested { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&OwnershipHandoverRequested> for alloy_sol_types::private::LogData { + #[inline] + fn from( + this: &OwnershipHandoverRequested, + ) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `OwnershipTransferred(address,address)` and selector `0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0`. +```solidity +event OwnershipTransferred(address indexed oldOwner, address indexed newOwner); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct OwnershipTransferred { + #[allow(missing_docs)] + pub oldOwner: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub newOwner: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for OwnershipTransferred { + type DataTuple<'a> = (); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "OwnershipTransferred(address,address)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 139u8, 224u8, 7u8, 156u8, 83u8, 22u8, 89u8, 20u8, 19u8, 68u8, 205u8, + 31u8, 208u8, 164u8, 242u8, 132u8, 25u8, 73u8, 127u8, 151u8, 34u8, 163u8, + 218u8, 175u8, 227u8, 180u8, 24u8, 111u8, 107u8, 100u8, 87u8, 224u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + oldOwner: topics.1, + newOwner: topics.2, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + () + } + #[inline] + fn topics(&self) -> ::RustType { + ( + Self::SIGNATURE_HASH.into(), + self.oldOwner.clone(), + self.newOwner.clone(), + ) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.oldOwner, + ); + out[2usize] = ::encode_topic( + &self.newOwner, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for OwnershipTransferred { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&OwnershipTransferred> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &OwnershipTransferred) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `ProgramIdRemoved(uint8,bytes32,bool)` and selector `0xd9178bc498f8a83830cb6db76b6a68922b6da8c25f3b865a6ea2a7451ac8b476`. +```solidity +event ProgramIdRemoved(ZkCoProcessorType indexed zkCoProcessor, bytes32 indexed programId, bool isAggregator); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct ProgramIdRemoved { + #[allow(missing_docs)] + pub zkCoProcessor: ::RustType, + #[allow(missing_docs)] + pub programId: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub isAggregator: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for ProgramIdRemoved { + type DataTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + ZkCoProcessorType, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + const SIGNATURE: &'static str = "ProgramIdRemoved(uint8,bytes32,bool)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 217u8, 23u8, 139u8, 196u8, 152u8, 248u8, 168u8, 56u8, 48u8, 203u8, 109u8, + 183u8, 107u8, 106u8, 104u8, 146u8, 43u8, 109u8, 168u8, 194u8, 95u8, 59u8, + 134u8, 90u8, 110u8, 162u8, 167u8, 69u8, 26u8, 200u8, 180u8, 118u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + zkCoProcessor: topics.1, + programId: topics.2, + isAggregator: data.0, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + ::tokenize( + &self.isAggregator, + ), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + ( + Self::SIGNATURE_HASH.into(), + self.zkCoProcessor.clone(), + self.programId.clone(), + ) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.zkCoProcessor, + ); + out[2usize] = as alloy_sol_types::EventTopic>::encode_topic(&self.programId); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for ProgramIdRemoved { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&ProgramIdRemoved> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &ProgramIdRemoved) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `ProofSubmitterChanged(address)` and selector `0x6f4e85fb3166a80d086aca6e527682a6c1128bfee79107af6d4216f843e20170`. +```solidity +event ProofSubmitterChanged(address newProofSubmitter); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct ProofSubmitterChanged { + #[allow(missing_docs)] + pub newProofSubmitter: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for ProofSubmitterChanged { + type DataTuple<'a> = (alloy::sol_types::sol_data::Address,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,); + const SIGNATURE: &'static str = "ProofSubmitterChanged(address)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 111u8, 78u8, 133u8, 251u8, 49u8, 102u8, 168u8, 13u8, 8u8, 106u8, 202u8, + 110u8, 82u8, 118u8, 130u8, 166u8, 193u8, 18u8, 139u8, 254u8, 231u8, + 145u8, 7u8, 175u8, 109u8, 66u8, 22u8, 248u8, 67u8, 226u8, 1u8, 112u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { newProofSubmitter: data.0 } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + ::tokenize( + &self.newProofSubmitter, + ), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(),) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for ProofSubmitterChanged { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&ProofSubmitterChanged> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &ProofSubmitterChanged) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `RootCertChanged(bytes32)` and selector `0x63f2d4dca4c937ba68e57bbddd2b0a3560e5b497593228dbea7372c127c16dc8`. +```solidity +event RootCertChanged(bytes32 newRootCert); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct RootCertChanged { + #[allow(missing_docs)] + pub newRootCert: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for RootCertChanged { + type DataTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,); + const SIGNATURE: &'static str = "RootCertChanged(bytes32)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 99u8, 242u8, 212u8, 220u8, 164u8, 201u8, 55u8, 186u8, 104u8, 229u8, + 123u8, 189u8, 221u8, 43u8, 10u8, 53u8, 96u8, 229u8, 180u8, 151u8, 89u8, + 50u8, 40u8, 219u8, 234u8, 115u8, 114u8, 193u8, 39u8, 193u8, 109u8, 200u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { newRootCert: data.0 } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.newRootCert), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(),) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for RootCertChanged { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&RootCertChanged> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &RootCertChanged) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `VerifierIdUpdated(uint8,bytes32,bytes32)` and selector `0x51084eb34dac0e8c796b2741ed1a6fed727311fc435b0af0dac30f0581dbce49`. +```solidity +event VerifierIdUpdated(ZkCoProcessorType indexed zkCoProcessor, bytes32 indexed newId, bytes32 newProofId); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct VerifierIdUpdated { + #[allow(missing_docs)] + pub zkCoProcessor: ::RustType, + #[allow(missing_docs)] + pub newId: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub newProofId: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for VerifierIdUpdated { + type DataTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + ZkCoProcessorType, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + const SIGNATURE: &'static str = "VerifierIdUpdated(uint8,bytes32,bytes32)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 81u8, 8u8, 78u8, 179u8, 77u8, 172u8, 14u8, 140u8, 121u8, 107u8, 39u8, + 65u8, 237u8, 26u8, 111u8, 237u8, 114u8, 115u8, 17u8, 252u8, 67u8, 91u8, + 10u8, 240u8, 218u8, 195u8, 15u8, 5u8, 129u8, 219u8, 206u8, 73u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + zkCoProcessor: topics.1, + newId: topics.2, + newProofId: data.0, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.newProofId), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + ( + Self::SIGNATURE_HASH.into(), + self.zkCoProcessor.clone(), + self.newId.clone(), + ) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.zkCoProcessor, + ); + out[2usize] = as alloy_sol_types::EventTopic>::encode_topic(&self.newId); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for VerifierIdUpdated { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&VerifierIdUpdated> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &VerifierIdUpdated) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `ZKConfigurationUpdated(uint8,(bytes32,bytes32,address),bytes32)` and selector `0x8c7491c9018c0b332e7d992d1b37db1a61f4c075cb30e237cc826c52c3166cef`. +```solidity +event ZKConfigurationUpdated(ZkCoProcessorType zkCoProcessor, ZkCoProcessorConfig config, bytes32 verifierProofId); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct ZKConfigurationUpdated { + #[allow(missing_docs)] + pub zkCoProcessor: ::RustType, + #[allow(missing_docs)] + pub config: ::RustType, + #[allow(missing_docs)] + pub verifierProofId: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for ZKConfigurationUpdated { + type DataTuple<'a> = ( + ZkCoProcessorType, + ZkCoProcessorConfig, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,); + const SIGNATURE: &'static str = "ZKConfigurationUpdated(uint8,(bytes32,bytes32,address),bytes32)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 140u8, 116u8, 145u8, 201u8, 1u8, 140u8, 11u8, 51u8, 46u8, 125u8, 153u8, + 45u8, 27u8, 55u8, 219u8, 26u8, 97u8, 244u8, 192u8, 117u8, 203u8, 48u8, + 226u8, 55u8, 204u8, 130u8, 108u8, 82u8, 195u8, 22u8, 108u8, 239u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + zkCoProcessor: data.0, + config: data.1, + verifierProofId: data.2, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + ::tokenize( + &self.zkCoProcessor, + ), + ::tokenize( + &self.config, + ), + as alloy_sol_types::SolType>::tokenize(&self.verifierProofId), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(),) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for ZKConfigurationUpdated { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&ZKConfigurationUpdated> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &ZKConfigurationUpdated) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `ZkRouteAdded(uint8,bytes4,address)` and selector `0x760c87aaca384c3dc82d5bcce05884a75cf787ef7f7cacaef26a6822b2831dd4`. +```solidity +event ZkRouteAdded(ZkCoProcessorType indexed zkCoProcessor, bytes4 indexed selector, address verifier); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct ZkRouteAdded { + #[allow(missing_docs)] + pub zkCoProcessor: ::RustType, + #[allow(missing_docs)] + pub selector: alloy::sol_types::private::FixedBytes<4>, + #[allow(missing_docs)] + pub verifier: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for ZkRouteAdded { + type DataTuple<'a> = (alloy::sol_types::sol_data::Address,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + ZkCoProcessorType, + alloy::sol_types::sol_data::FixedBytes<4>, + ); + const SIGNATURE: &'static str = "ZkRouteAdded(uint8,bytes4,address)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 118u8, 12u8, 135u8, 170u8, 202u8, 56u8, 76u8, 61u8, 200u8, 45u8, 91u8, + 204u8, 224u8, 88u8, 132u8, 167u8, 92u8, 247u8, 135u8, 239u8, 127u8, + 124u8, 172u8, 174u8, 242u8, 106u8, 104u8, 34u8, 178u8, 131u8, 29u8, 212u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + zkCoProcessor: topics.1, + selector: topics.2, + verifier: data.0, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + ::tokenize( + &self.verifier, + ), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + ( + Self::SIGNATURE_HASH.into(), + self.zkCoProcessor.clone(), + self.selector.clone(), + ) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.zkCoProcessor, + ); + out[2usize] = as alloy_sol_types::EventTopic>::encode_topic(&self.selector); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for ZkRouteAdded { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&ZkRouteAdded> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &ZkRouteAdded) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `ZkRouteWasFrozen(uint8,bytes4)` and selector `0xcdce14b5df954ed0ddf4bd33cc38717ee1c46e06a27d69962dd7f03f70c449c4`. +```solidity +event ZkRouteWasFrozen(ZkCoProcessorType indexed zkCoProcessor, bytes4 indexed selector); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct ZkRouteWasFrozen { + #[allow(missing_docs)] + pub zkCoProcessor: ::RustType, + #[allow(missing_docs)] + pub selector: alloy::sol_types::private::FixedBytes<4>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for ZkRouteWasFrozen { + type DataTuple<'a> = (); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + ZkCoProcessorType, + alloy::sol_types::sol_data::FixedBytes<4>, + ); + const SIGNATURE: &'static str = "ZkRouteWasFrozen(uint8,bytes4)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 205u8, 206u8, 20u8, 181u8, 223u8, 149u8, 78u8, 208u8, 221u8, 244u8, + 189u8, 51u8, 204u8, 56u8, 113u8, 126u8, 225u8, 196u8, 110u8, 6u8, 162u8, + 125u8, 105u8, 150u8, 45u8, 215u8, 240u8, 63u8, 112u8, 196u8, 73u8, 196u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + zkCoProcessor: topics.1, + selector: topics.2, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + () + } + #[inline] + fn topics(&self) -> ::RustType { + ( + Self::SIGNATURE_HASH.into(), + self.zkCoProcessor.clone(), + self.selector.clone(), + ) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.zkCoProcessor, + ); + out[2usize] = as alloy_sol_types::EventTopic>::encode_topic(&self.selector); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for ZkRouteWasFrozen { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&ZkRouteWasFrozen> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &ZkRouteWasFrozen) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + /**Constructor`. +```solidity +constructor(address _owner, uint64 _maxTimeDiff, bytes32[] _initializeTrustedCerts); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct constructorCall { + #[allow(missing_docs)] + pub _owner: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _maxTimeDiff: u64, + #[allow(missing_docs)] + pub _initializeTrustedCerts: alloy::sol_types::private::Vec< + alloy::sol_types::private::FixedBytes<32>, + >, + } + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<64>, + alloy::sol_types::sol_data::Array< + alloy::sol_types::sol_data::FixedBytes<32>, + >, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + u64, + alloy::sol_types::private::Vec>, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: constructorCall) -> Self { + (value._owner, value._maxTimeDiff, value._initializeTrustedCerts) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for constructorCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _owner: tuple.0, + _maxTimeDiff: tuple.1, + _initializeTrustedCerts: tuple.2, + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolConstructor for constructorCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<64>, + alloy::sol_types::sol_data::Array< + alloy::sol_types::sol_data::FixedBytes<32>, + >, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._owner, + ), + as alloy_sol_types::SolType>::tokenize(&self._maxTimeDiff), + , + > as alloy_sol_types::SolType>::tokenize( + &self._initializeTrustedCerts, + ), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `addVerifyRoute(uint8,bytes4,address)` and selector `0x86546a49`. +```solidity +function addVerifyRoute(ZkCoProcessorType _zkCoProcessor, bytes4 _selector, address _verifier) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct addVerifyRouteCall { + #[allow(missing_docs)] + pub _zkCoProcessor: ::RustType, + #[allow(missing_docs)] + pub _selector: alloy::sol_types::private::FixedBytes<4>, + #[allow(missing_docs)] + pub _verifier: alloy::sol_types::private::Address, + } + ///Container type for the return parameters of the [`addVerifyRoute(uint8,bytes4,address)`](addVerifyRouteCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct addVerifyRouteReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + ZkCoProcessorType, + alloy::sol_types::sol_data::FixedBytes<4>, + alloy::sol_types::sol_data::Address, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + alloy::sol_types::private::FixedBytes<4>, + alloy::sol_types::private::Address, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: addVerifyRouteCall) -> Self { + (value._zkCoProcessor, value._selector, value._verifier) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for addVerifyRouteCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _zkCoProcessor: tuple.0, + _selector: tuple.1, + _verifier: tuple.2, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: addVerifyRouteReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for addVerifyRouteReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl addVerifyRouteReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for addVerifyRouteCall { + type Parameters<'a> = ( + ZkCoProcessorType, + alloy::sol_types::sol_data::FixedBytes<4>, + alloy::sol_types::sol_data::Address, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = addVerifyRouteReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "addVerifyRoute(uint8,bytes4,address)"; + const SELECTOR: [u8; 4] = [134u8, 84u8, 106u8, 73u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._zkCoProcessor, + ), + as alloy_sol_types::SolType>::tokenize(&self._selector), + ::tokenize( + &self._verifier, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + addVerifyRouteReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `batchVerify(bytes,uint8,bytes)` and selector `0xc9569bc3`. +```solidity +function batchVerify(bytes memory output, ZkCoProcessorType zkCoprocessor, bytes memory proofBytes) external returns (VerifierJournal[] memory results); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct batchVerifyCall { + #[allow(missing_docs)] + pub output: alloy::sol_types::private::Bytes, + #[allow(missing_docs)] + pub zkCoprocessor: ::RustType, + #[allow(missing_docs)] + pub proofBytes: alloy::sol_types::private::Bytes, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`batchVerify(bytes,uint8,bytes)`](batchVerifyCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct batchVerifyReturn { + #[allow(missing_docs)] + pub results: alloy::sol_types::private::Vec< + ::RustType, + >, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Bytes, + ZkCoProcessorType, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Bytes, + ::RustType, + alloy::sol_types::private::Bytes, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: batchVerifyCall) -> Self { + (value.output, value.zkCoprocessor, value.proofBytes) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for batchVerifyCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + output: tuple.0, + zkCoprocessor: tuple.1, + proofBytes: tuple.2, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Array, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Vec< + ::RustType, + >, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: batchVerifyReturn) -> Self { + (value.results,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for batchVerifyReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { results: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for batchVerifyCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Bytes, + ZkCoProcessorType, + alloy::sol_types::sol_data::Bytes, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Vec< + ::RustType, + >; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Array,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "batchVerify(bytes,uint8,bytes)"; + const SELECTOR: [u8; 4] = [201u8, 86u8, 155u8, 195u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.output, + ), + ::tokenize( + &self.zkCoprocessor, + ), + ::tokenize( + &self.proofBytes, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: batchVerifyReturn = r.into(); + r.results + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: batchVerifyReturn = r.into(); + r.results + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `cancelOwnershipHandover()` and selector `0x54d1f13d`. +```solidity +function cancelOwnershipHandover() external payable; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct cancelOwnershipHandoverCall; + ///Container type for the return parameters of the [`cancelOwnershipHandover()`](cancelOwnershipHandoverCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct cancelOwnershipHandoverReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: cancelOwnershipHandoverCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for cancelOwnershipHandoverCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: cancelOwnershipHandoverReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for cancelOwnershipHandoverReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl cancelOwnershipHandoverReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken< + '_, + > { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for cancelOwnershipHandoverCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = cancelOwnershipHandoverReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "cancelOwnershipHandover()"; + const SELECTOR: [u8; 4] = [84u8, 209u8, 241u8, 61u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + cancelOwnershipHandoverReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `checkTrustedIntermediateCerts(bytes32[][])` and selector `0xf8b507c7`. +```solidity +function checkTrustedIntermediateCerts(bytes32[][] memory _report_certs) external view returns (uint8[] memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct checkTrustedIntermediateCertsCall { + #[allow(missing_docs)] + pub _report_certs: alloy::sol_types::private::Vec< + alloy::sol_types::private::Vec>, + >, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`checkTrustedIntermediateCerts(bytes32[][])`](checkTrustedIntermediateCertsCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct checkTrustedIntermediateCertsReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Vec, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Array< + alloy::sol_types::sol_data::Array< + alloy::sol_types::sol_data::FixedBytes<32>, + >, + >, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Vec< + alloy::sol_types::private::Vec< + alloy::sol_types::private::FixedBytes<32>, + >, + >, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: checkTrustedIntermediateCertsCall) -> Self { + (value._report_certs,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for checkTrustedIntermediateCertsCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _report_certs: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Array>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Vec,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: checkTrustedIntermediateCertsReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for checkTrustedIntermediateCertsReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for checkTrustedIntermediateCertsCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Array< + alloy::sol_types::sol_data::Array< + alloy::sol_types::sol_data::FixedBytes<32>, + >, + >, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Vec; + type ReturnTuple<'a> = ( + alloy::sol_types::sol_data::Array>, + ); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "checkTrustedIntermediateCerts(bytes32[][])"; + const SELECTOR: [u8; 4] = [248u8, 181u8, 7u8, 199u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + , + >, + > as alloy_sol_types::SolType>::tokenize(&self._report_certs), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + , + > as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: checkTrustedIntermediateCertsReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: checkTrustedIntermediateCertsReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `completeOwnershipHandover(address)` and selector `0xf04e283e`. +```solidity +function completeOwnershipHandover(address pendingOwner) external payable; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct completeOwnershipHandoverCall { + #[allow(missing_docs)] + pub pendingOwner: alloy::sol_types::private::Address, + } + ///Container type for the return parameters of the [`completeOwnershipHandover(address)`](completeOwnershipHandoverCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct completeOwnershipHandoverReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: completeOwnershipHandoverCall) -> Self { + (value.pendingOwner,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for completeOwnershipHandoverCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { pendingOwner: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: completeOwnershipHandoverReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for completeOwnershipHandoverReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl completeOwnershipHandoverReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken< + '_, + > { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for completeOwnershipHandoverCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = completeOwnershipHandoverReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "completeOwnershipHandover(address)"; + const SELECTOR: [u8; 4] = [240u8, 78u8, 40u8, 62u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.pendingOwner, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + completeOwnershipHandoverReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `freezeVerifyRoute(uint8,bytes4)` and selector `0x63cd3456`. +```solidity +function freezeVerifyRoute(ZkCoProcessorType _zkCoProcessor, bytes4 _selector) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct freezeVerifyRouteCall { + #[allow(missing_docs)] + pub _zkCoProcessor: ::RustType, + #[allow(missing_docs)] + pub _selector: alloy::sol_types::private::FixedBytes<4>, + } + ///Container type for the return parameters of the [`freezeVerifyRoute(uint8,bytes4)`](freezeVerifyRouteCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct freezeVerifyRouteReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + ZkCoProcessorType, + alloy::sol_types::sol_data::FixedBytes<4>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + alloy::sol_types::private::FixedBytes<4>, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: freezeVerifyRouteCall) -> Self { + (value._zkCoProcessor, value._selector) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for freezeVerifyRouteCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _zkCoProcessor: tuple.0, + _selector: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: freezeVerifyRouteReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for freezeVerifyRouteReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl freezeVerifyRouteReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for freezeVerifyRouteCall { + type Parameters<'a> = ( + ZkCoProcessorType, + alloy::sol_types::sol_data::FixedBytes<4>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = freezeVerifyRouteReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "freezeVerifyRoute(uint8,bytes4)"; + const SELECTOR: [u8; 4] = [99u8, 205u8, 52u8, 86u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._zkCoProcessor, + ), + as alloy_sol_types::SolType>::tokenize(&self._selector), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + freezeVerifyRouteReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `getAggregatorIds(uint8)` and selector `0xe865158e`. +```solidity +function getAggregatorIds(ZkCoProcessorType _zkCoProcessor) external view returns (bytes32[] memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getAggregatorIdsCall { + #[allow(missing_docs)] + pub _zkCoProcessor: ::RustType, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`getAggregatorIds(uint8)`](getAggregatorIdsCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getAggregatorIdsReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Vec< + alloy::sol_types::private::FixedBytes<32>, + >, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (ZkCoProcessorType,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: getAggregatorIdsCall) -> Self { + (value._zkCoProcessor,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for getAggregatorIdsCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _zkCoProcessor: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Array< + alloy::sol_types::sol_data::FixedBytes<32>, + >, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Vec< + alloy::sol_types::private::FixedBytes<32>, + >, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: getAggregatorIdsReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for getAggregatorIdsReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for getAggregatorIdsCall { + type Parameters<'a> = (ZkCoProcessorType,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Vec< + alloy::sol_types::private::FixedBytes<32>, + >; + type ReturnTuple<'a> = ( + alloy::sol_types::sol_data::Array< + alloy::sol_types::sol_data::FixedBytes<32>, + >, + ); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "getAggregatorIds(uint8)"; + const SELECTOR: [u8; 4] = [232u8, 101u8, 21u8, 142u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._zkCoProcessor, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + , + > as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: getAggregatorIdsReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: getAggregatorIdsReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `getVerifierIds(uint8)` and selector `0xaf42a98d`. +```solidity +function getVerifierIds(ZkCoProcessorType _zkCoProcessor) external view returns (bytes32[] memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getVerifierIdsCall { + #[allow(missing_docs)] + pub _zkCoProcessor: ::RustType, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`getVerifierIds(uint8)`](getVerifierIdsCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getVerifierIdsReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Vec< + alloy::sol_types::private::FixedBytes<32>, + >, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (ZkCoProcessorType,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: getVerifierIdsCall) -> Self { + (value._zkCoProcessor,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for getVerifierIdsCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _zkCoProcessor: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Array< + alloy::sol_types::sol_data::FixedBytes<32>, + >, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Vec< + alloy::sol_types::private::FixedBytes<32>, + >, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: getVerifierIdsReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for getVerifierIdsReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for getVerifierIdsCall { + type Parameters<'a> = (ZkCoProcessorType,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Vec< + alloy::sol_types::private::FixedBytes<32>, + >; + type ReturnTuple<'a> = ( + alloy::sol_types::sol_data::Array< + alloy::sol_types::sol_data::FixedBytes<32>, + >, + ); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "getVerifierIds(uint8)"; + const SELECTOR: [u8; 4] = [175u8, 66u8, 169u8, 141u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._zkCoProcessor, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + , + > as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: getVerifierIdsReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: getVerifierIdsReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `getVerifierProofId(uint8,bytes32)` and selector `0xb5ce95b9`. +```solidity +function getVerifierProofId(ZkCoProcessorType _zkCoProcessor, bytes32 _verifierId) external view returns (bytes32); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getVerifierProofIdCall { + #[allow(missing_docs)] + pub _zkCoProcessor: ::RustType, + #[allow(missing_docs)] + pub _verifierId: alloy::sol_types::private::FixedBytes<32>, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`getVerifierProofId(uint8,bytes32)`](getVerifierProofIdCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getVerifierProofIdReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + ZkCoProcessorType, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + alloy::sol_types::private::FixedBytes<32>, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: getVerifierProofIdCall) -> Self { + (value._zkCoProcessor, value._verifierId) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for getVerifierProofIdCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _zkCoProcessor: tuple.0, + _verifierId: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: getVerifierProofIdReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for getVerifierProofIdReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for getVerifierProofIdCall { + type Parameters<'a> = ( + ZkCoProcessorType, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::FixedBytes<32>; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "getVerifierProofId(uint8,bytes32)"; + const SELECTOR: [u8; 4] = [181u8, 206u8, 149u8, 185u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._zkCoProcessor, + ), + as alloy_sol_types::SolType>::tokenize(&self._verifierId), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: getVerifierProofIdReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: getVerifierProofIdReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `getZkConfig(uint8)` and selector `0x67451515`. +```solidity +function getZkConfig(ZkCoProcessorType _zkCoProcessor) external view returns (ZkCoProcessorConfig memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getZkConfigCall { + #[allow(missing_docs)] + pub _zkCoProcessor: ::RustType, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`getZkConfig(uint8)`](getZkConfigCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getZkConfigReturn { + #[allow(missing_docs)] + pub _0: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (ZkCoProcessorType,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: getZkConfigCall) -> Self { + (value._zkCoProcessor,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for getZkConfigCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _zkCoProcessor: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (ZkCoProcessorConfig,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: getZkConfigReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for getZkConfigReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for getZkConfigCall { + type Parameters<'a> = (ZkCoProcessorType,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (ZkCoProcessorConfig,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "getZkConfig(uint8)"; + const SELECTOR: [u8; 4] = [103u8, 69u8, 21u8, 21u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._zkCoProcessor, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: getZkConfigReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: getZkConfigReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `getZkVerifier(uint8,bytes4)` and selector `0xa12b896a`. +```solidity +function getZkVerifier(ZkCoProcessorType _zkCoProcessor, bytes4 _selector) external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getZkVerifierCall { + #[allow(missing_docs)] + pub _zkCoProcessor: ::RustType, + #[allow(missing_docs)] + pub _selector: alloy::sol_types::private::FixedBytes<4>, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`getZkVerifier(uint8,bytes4)`](getZkVerifierCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getZkVerifierReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + ZkCoProcessorType, + alloy::sol_types::sol_data::FixedBytes<4>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + alloy::sol_types::private::FixedBytes<4>, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: getZkVerifierCall) -> Self { + (value._zkCoProcessor, value._selector) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for getZkVerifierCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _zkCoProcessor: tuple.0, + _selector: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: getZkVerifierReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for getZkVerifierReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for getZkVerifierCall { + type Parameters<'a> = ( + ZkCoProcessorType, + alloy::sol_types::sol_data::FixedBytes<4>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "getZkVerifier(uint8,bytes4)"; + const SELECTOR: [u8; 4] = [161u8, 43u8, 137u8, 106u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._zkCoProcessor, + ), + as alloy_sol_types::SolType>::tokenize(&self._selector), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: getZkVerifierReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: getZkVerifierReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `isAggregatorIdSupported(uint8,bytes32)` and selector `0x7354a3f3`. +```solidity +function isAggregatorIdSupported(ZkCoProcessorType _zkCoProcessor, bytes32 _aggregatorId) external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct isAggregatorIdSupportedCall { + #[allow(missing_docs)] + pub _zkCoProcessor: ::RustType, + #[allow(missing_docs)] + pub _aggregatorId: alloy::sol_types::private::FixedBytes<32>, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`isAggregatorIdSupported(uint8,bytes32)`](isAggregatorIdSupportedCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct isAggregatorIdSupportedReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + ZkCoProcessorType, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + alloy::sol_types::private::FixedBytes<32>, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: isAggregatorIdSupportedCall) -> Self { + (value._zkCoProcessor, value._aggregatorId) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for isAggregatorIdSupportedCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _zkCoProcessor: tuple.0, + _aggregatorId: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: isAggregatorIdSupportedReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for isAggregatorIdSupportedReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for isAggregatorIdSupportedCall { + type Parameters<'a> = ( + ZkCoProcessorType, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "isAggregatorIdSupported(uint8,bytes32)"; + const SELECTOR: [u8; 4] = [115u8, 84u8, 163u8, 243u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._zkCoProcessor, + ), + as alloy_sol_types::SolType>::tokenize(&self._aggregatorId), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: isAggregatorIdSupportedReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: isAggregatorIdSupportedReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `isVerifierIdSupported(uint8,bytes32)` and selector `0xefa5a357`. +```solidity +function isVerifierIdSupported(ZkCoProcessorType _zkCoProcessor, bytes32 _verifierId) external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct isVerifierIdSupportedCall { + #[allow(missing_docs)] + pub _zkCoProcessor: ::RustType, + #[allow(missing_docs)] + pub _verifierId: alloy::sol_types::private::FixedBytes<32>, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`isVerifierIdSupported(uint8,bytes32)`](isVerifierIdSupportedCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct isVerifierIdSupportedReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + ZkCoProcessorType, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + alloy::sol_types::private::FixedBytes<32>, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: isVerifierIdSupportedCall) -> Self { + (value._zkCoProcessor, value._verifierId) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for isVerifierIdSupportedCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _zkCoProcessor: tuple.0, + _verifierId: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: isVerifierIdSupportedReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for isVerifierIdSupportedReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for isVerifierIdSupportedCall { + type Parameters<'a> = ( + ZkCoProcessorType, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "isVerifierIdSupported(uint8,bytes32)"; + const SELECTOR: [u8; 4] = [239u8, 165u8, 163u8, 87u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._zkCoProcessor, + ), + as alloy_sol_types::SolType>::tokenize(&self._verifierId), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: isVerifierIdSupportedReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: isVerifierIdSupportedReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `maxTimeDiff()` and selector `0x369855e6`. +```solidity +function maxTimeDiff() external view returns (uint64); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct maxTimeDiffCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`maxTimeDiff()`](maxTimeDiffCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct maxTimeDiffReturn { + #[allow(missing_docs)] + pub _0: u64, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: maxTimeDiffCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for maxTimeDiffCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u64,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: maxTimeDiffReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for maxTimeDiffReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for maxTimeDiffCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u64; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "maxTimeDiff()"; + const SELECTOR: [u8; 4] = [54u8, 152u8, 85u8, 230u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: maxTimeDiffReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: maxTimeDiffReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `owner()` and selector `0x8da5cb5b`. +```solidity +function owner() external view returns (address result); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ownerCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`owner()`](ownerCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ownerReturn { + #[allow(missing_docs)] + pub result: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ownerCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ownerCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ownerReturn) -> Self { + (value.result,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ownerReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { result: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for ownerCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "owner()"; + const SELECTOR: [u8; 4] = [141u8, 165u8, 203u8, 91u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: ownerReturn = r.into(); + r.result + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: ownerReturn = r.into(); + r.result + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `ownershipHandoverExpiresAt(address)` and selector `0xfee81cf4`. +```solidity +function ownershipHandoverExpiresAt(address pendingOwner) external view returns (uint256 result); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ownershipHandoverExpiresAtCall { + #[allow(missing_docs)] + pub pendingOwner: alloy::sol_types::private::Address, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`ownershipHandoverExpiresAt(address)`](ownershipHandoverExpiresAtCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ownershipHandoverExpiresAtReturn { + #[allow(missing_docs)] + pub result: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: ownershipHandoverExpiresAtCall) -> Self { + (value.pendingOwner,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for ownershipHandoverExpiresAtCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { pendingOwner: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: ownershipHandoverExpiresAtReturn) -> Self { + (value.result,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for ownershipHandoverExpiresAtReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { result: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for ownershipHandoverExpiresAtCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ownershipHandoverExpiresAt(address)"; + const SELECTOR: [u8; 4] = [254u8, 232u8, 28u8, 244u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.pendingOwner, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: ownershipHandoverExpiresAtReturn = r.into(); + r.result + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: ownershipHandoverExpiresAtReturn = r.into(); + r.result + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `proofSubmitter()` and selector `0x58753357`. +```solidity +function proofSubmitter() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct proofSubmitterCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`proofSubmitter()`](proofSubmitterCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct proofSubmitterReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: proofSubmitterCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for proofSubmitterCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: proofSubmitterReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for proofSubmitterReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for proofSubmitterCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "proofSubmitter()"; + const SELECTOR: [u8; 4] = [88u8, 117u8, 51u8, 87u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: proofSubmitterReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: proofSubmitterReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `removeAggregatorId(uint8,bytes32)` and selector `0xf36bb961`. +```solidity +function removeAggregatorId(ZkCoProcessorType _zkCoProcessor, bytes32 _aggregatorId) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct removeAggregatorIdCall { + #[allow(missing_docs)] + pub _zkCoProcessor: ::RustType, + #[allow(missing_docs)] + pub _aggregatorId: alloy::sol_types::private::FixedBytes<32>, + } + ///Container type for the return parameters of the [`removeAggregatorId(uint8,bytes32)`](removeAggregatorIdCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct removeAggregatorIdReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + ZkCoProcessorType, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + alloy::sol_types::private::FixedBytes<32>, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: removeAggregatorIdCall) -> Self { + (value._zkCoProcessor, value._aggregatorId) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for removeAggregatorIdCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _zkCoProcessor: tuple.0, + _aggregatorId: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: removeAggregatorIdReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for removeAggregatorIdReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl removeAggregatorIdReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for removeAggregatorIdCall { + type Parameters<'a> = ( + ZkCoProcessorType, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = removeAggregatorIdReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "removeAggregatorId(uint8,bytes32)"; + const SELECTOR: [u8; 4] = [243u8, 107u8, 185u8, 97u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._zkCoProcessor, + ), + as alloy_sol_types::SolType>::tokenize(&self._aggregatorId), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + removeAggregatorIdReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `removeVerifierId(uint8,bytes32)` and selector `0x9b1c4e7b`. +```solidity +function removeVerifierId(ZkCoProcessorType _zkCoProcessor, bytes32 _verifierId) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct removeVerifierIdCall { + #[allow(missing_docs)] + pub _zkCoProcessor: ::RustType, + #[allow(missing_docs)] + pub _verifierId: alloy::sol_types::private::FixedBytes<32>, + } + ///Container type for the return parameters of the [`removeVerifierId(uint8,bytes32)`](removeVerifierIdCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct removeVerifierIdReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + ZkCoProcessorType, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + alloy::sol_types::private::FixedBytes<32>, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: removeVerifierIdCall) -> Self { + (value._zkCoProcessor, value._verifierId) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for removeVerifierIdCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _zkCoProcessor: tuple.0, + _verifierId: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: removeVerifierIdReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for removeVerifierIdReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl removeVerifierIdReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for removeVerifierIdCall { + type Parameters<'a> = ( + ZkCoProcessorType, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = removeVerifierIdReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "removeVerifierId(uint8,bytes32)"; + const SELECTOR: [u8; 4] = [155u8, 28u8, 78u8, 123u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._zkCoProcessor, + ), + as alloy_sol_types::SolType>::tokenize(&self._verifierId), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + removeVerifierIdReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `renounceOwnership()` and selector `0x715018a6`. +```solidity +function renounceOwnership() external payable; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct renounceOwnershipCall; + ///Container type for the return parameters of the [`renounceOwnership()`](renounceOwnershipCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct renounceOwnershipReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: renounceOwnershipCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for renounceOwnershipCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: renounceOwnershipReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for renounceOwnershipReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl renounceOwnershipReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for renounceOwnershipCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = renounceOwnershipReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "renounceOwnership()"; + const SELECTOR: [u8; 4] = [113u8, 80u8, 24u8, 166u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + renounceOwnershipReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `requestOwnershipHandover()` and selector `0x25692962`. +```solidity +function requestOwnershipHandover() external payable; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct requestOwnershipHandoverCall; + ///Container type for the return parameters of the [`requestOwnershipHandover()`](requestOwnershipHandoverCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct requestOwnershipHandoverReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: requestOwnershipHandoverCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for requestOwnershipHandoverCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: requestOwnershipHandoverReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for requestOwnershipHandoverReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl requestOwnershipHandoverReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken< + '_, + > { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for requestOwnershipHandoverCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = requestOwnershipHandoverReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "requestOwnershipHandover()"; + const SELECTOR: [u8; 4] = [37u8, 105u8, 41u8, 98u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + requestOwnershipHandoverReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `revokeCert(bytes32)` and selector `0x8cb50c44`. +```solidity +function revokeCert(bytes32 _certHash) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct revokeCertCall { + #[allow(missing_docs)] + pub _certHash: alloy::sol_types::private::FixedBytes<32>, + } + ///Container type for the return parameters of the [`revokeCert(bytes32)`](revokeCertCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct revokeCertReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: revokeCertCall) -> Self { + (value._certHash,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for revokeCertCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _certHash: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: revokeCertReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for revokeCertReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl revokeCertReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for revokeCertCall { + type Parameters<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = revokeCertReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "revokeCert(bytes32)"; + const SELECTOR: [u8; 4] = [140u8, 181u8, 12u8, 68u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._certHash), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + revokeCertReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `rootCert()` and selector `0x7221e6fc`. +```solidity +function rootCert() external view returns (bytes32); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct rootCertCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`rootCert()`](rootCertCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct rootCertReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: rootCertCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for rootCertCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: rootCertReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for rootCertReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for rootCertCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::FixedBytes<32>; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "rootCert()"; + const SELECTOR: [u8; 4] = [114u8, 33u8, 230u8, 252u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: rootCertReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: rootCertReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `setMaxTimeDiff(uint64)` and selector `0xe3f47695`. +```solidity +function setMaxTimeDiff(uint64 _maxTimeDiff) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setMaxTimeDiffCall { + #[allow(missing_docs)] + pub _maxTimeDiff: u64, + } + ///Container type for the return parameters of the [`setMaxTimeDiff(uint64)`](setMaxTimeDiffCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setMaxTimeDiffReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u64,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: setMaxTimeDiffCall) -> Self { + (value._maxTimeDiff,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for setMaxTimeDiffCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _maxTimeDiff: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: setMaxTimeDiffReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for setMaxTimeDiffReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl setMaxTimeDiffReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for setMaxTimeDiffCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Uint<64>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = setMaxTimeDiffReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "setMaxTimeDiff(uint64)"; + const SELECTOR: [u8; 4] = [227u8, 244u8, 118u8, 149u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._maxTimeDiff), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + setMaxTimeDiffReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `setProofSubmitter(address)` and selector `0xd06d5587`. +```solidity +function setProofSubmitter(address _proofSubmitter) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setProofSubmitterCall { + #[allow(missing_docs)] + pub _proofSubmitter: alloy::sol_types::private::Address, + } + ///Container type for the return parameters of the [`setProofSubmitter(address)`](setProofSubmitterCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setProofSubmitterReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: setProofSubmitterCall) -> Self { + (value._proofSubmitter,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for setProofSubmitterCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _proofSubmitter: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: setProofSubmitterReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for setProofSubmitterReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl setProofSubmitterReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for setProofSubmitterCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = setProofSubmitterReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "setProofSubmitter(address)"; + const SELECTOR: [u8; 4] = [208u8, 109u8, 85u8, 135u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._proofSubmitter, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + setProofSubmitterReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `setRootCert(bytes32)` and selector `0x74c183aa`. +```solidity +function setRootCert(bytes32 _rootCert) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setRootCertCall { + #[allow(missing_docs)] + pub _rootCert: alloy::sol_types::private::FixedBytes<32>, + } + ///Container type for the return parameters of the [`setRootCert(bytes32)`](setRootCertCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setRootCertReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: setRootCertCall) -> Self { + (value._rootCert,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for setRootCertCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _rootCert: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: setRootCertReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for setRootCertReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl setRootCertReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for setRootCertCall { + type Parameters<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = setRootCertReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "setRootCert(bytes32)"; + const SELECTOR: [u8; 4] = [116u8, 193u8, 131u8, 170u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._rootCert), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + setRootCertReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `setZkConfiguration(uint8,(bytes32,bytes32,address),bytes32)` and selector `0x3a837cc2`. +```solidity +function setZkConfiguration(ZkCoProcessorType _zkCoProcessor, ZkCoProcessorConfig memory _config, bytes32 _verifierProofId) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setZkConfigurationCall { + #[allow(missing_docs)] + pub _zkCoProcessor: ::RustType, + #[allow(missing_docs)] + pub _config: ::RustType, + #[allow(missing_docs)] + pub _verifierProofId: alloy::sol_types::private::FixedBytes<32>, + } + ///Container type for the return parameters of the [`setZkConfiguration(uint8,(bytes32,bytes32,address),bytes32)`](setZkConfigurationCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setZkConfigurationReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + ZkCoProcessorType, + ZkCoProcessorConfig, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ::RustType, + alloy::sol_types::private::FixedBytes<32>, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: setZkConfigurationCall) -> Self { + (value._zkCoProcessor, value._config, value._verifierProofId) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for setZkConfigurationCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _zkCoProcessor: tuple.0, + _config: tuple.1, + _verifierProofId: tuple.2, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: setZkConfigurationReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for setZkConfigurationReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl setZkConfigurationReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for setZkConfigurationCall { + type Parameters<'a> = ( + ZkCoProcessorType, + ZkCoProcessorConfig, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = setZkConfigurationReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "setZkConfiguration(uint8,(bytes32,bytes32,address),bytes32)"; + const SELECTOR: [u8; 4] = [58u8, 131u8, 124u8, 194u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._zkCoProcessor, + ), + ::tokenize( + &self._config, + ), + as alloy_sol_types::SolType>::tokenize(&self._verifierProofId), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + setZkConfigurationReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `transferOwnership(address)` and selector `0xf2fde38b`. +```solidity +function transferOwnership(address newOwner) external payable; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct transferOwnershipCall { + #[allow(missing_docs)] + pub newOwner: alloy::sol_types::private::Address, + } + ///Container type for the return parameters of the [`transferOwnership(address)`](transferOwnershipCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct transferOwnershipReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: transferOwnershipCall) -> Self { + (value.newOwner,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for transferOwnershipCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { newOwner: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: transferOwnershipReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for transferOwnershipReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl transferOwnershipReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for transferOwnershipCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = transferOwnershipReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "transferOwnership(address)"; + const SELECTOR: [u8; 4] = [242u8, 253u8, 227u8, 139u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.newOwner, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + transferOwnershipReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `trustedIntermediateCerts(bytes32)` and selector `0xdd4a471d`. +```solidity +function trustedIntermediateCerts(bytes32 trustedCertHash) external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct trustedIntermediateCertsCall { + #[allow(missing_docs)] + pub trustedCertHash: alloy::sol_types::private::FixedBytes<32>, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`trustedIntermediateCerts(bytes32)`](trustedIntermediateCertsCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct trustedIntermediateCertsReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: trustedIntermediateCertsCall) -> Self { + (value.trustedCertHash,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for trustedIntermediateCertsCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { trustedCertHash: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: trustedIntermediateCertsReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for trustedIntermediateCertsReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for trustedIntermediateCertsCall { + type Parameters<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "trustedIntermediateCerts(bytes32)"; + const SELECTOR: [u8; 4] = [221u8, 74u8, 71u8, 29u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.trustedCertHash), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: trustedIntermediateCertsReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: trustedIntermediateCertsReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `updateAggregatorId(uint8,bytes32)` and selector `0xea9e4857`. +```solidity +function updateAggregatorId(ZkCoProcessorType _zkCoProcessor, bytes32 _newAggregatorId) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct updateAggregatorIdCall { + #[allow(missing_docs)] + pub _zkCoProcessor: ::RustType, + #[allow(missing_docs)] + pub _newAggregatorId: alloy::sol_types::private::FixedBytes<32>, + } + ///Container type for the return parameters of the [`updateAggregatorId(uint8,bytes32)`](updateAggregatorIdCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct updateAggregatorIdReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + ZkCoProcessorType, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + alloy::sol_types::private::FixedBytes<32>, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: updateAggregatorIdCall) -> Self { + (value._zkCoProcessor, value._newAggregatorId) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for updateAggregatorIdCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _zkCoProcessor: tuple.0, + _newAggregatorId: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: updateAggregatorIdReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for updateAggregatorIdReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl updateAggregatorIdReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for updateAggregatorIdCall { + type Parameters<'a> = ( + ZkCoProcessorType, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = updateAggregatorIdReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "updateAggregatorId(uint8,bytes32)"; + const SELECTOR: [u8; 4] = [234u8, 158u8, 72u8, 87u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._zkCoProcessor, + ), + as alloy_sol_types::SolType>::tokenize(&self._newAggregatorId), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + updateAggregatorIdReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `updateVerifierId(uint8,bytes32,bytes32)` and selector `0xcc05c0b3`. +```solidity +function updateVerifierId(ZkCoProcessorType _zkCoProcessor, bytes32 _newVerifierId, bytes32 _newVerifierProofId) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct updateVerifierIdCall { + #[allow(missing_docs)] + pub _zkCoProcessor: ::RustType, + #[allow(missing_docs)] + pub _newVerifierId: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub _newVerifierProofId: alloy::sol_types::private::FixedBytes<32>, + } + ///Container type for the return parameters of the [`updateVerifierId(uint8,bytes32,bytes32)`](updateVerifierIdCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct updateVerifierIdReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + ZkCoProcessorType, + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + alloy::sol_types::private::FixedBytes<32>, + alloy::sol_types::private::FixedBytes<32>, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: updateVerifierIdCall) -> Self { + ( + value._zkCoProcessor, + value._newVerifierId, + value._newVerifierProofId, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for updateVerifierIdCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _zkCoProcessor: tuple.0, + _newVerifierId: tuple.1, + _newVerifierProofId: tuple.2, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: updateVerifierIdReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for updateVerifierIdReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl updateVerifierIdReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for updateVerifierIdCall { + type Parameters<'a> = ( + ZkCoProcessorType, + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = updateVerifierIdReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "updateVerifierId(uint8,bytes32,bytes32)"; + const SELECTOR: [u8; 4] = [204u8, 5u8, 192u8, 179u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._zkCoProcessor, + ), + as alloy_sol_types::SolType>::tokenize(&self._newVerifierId), + as alloy_sol_types::SolType>::tokenize(&self._newVerifierProofId), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + updateVerifierIdReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `verify(bytes,uint8,bytes)` and selector `0x6d114be3`. +```solidity +function verify(bytes memory output, ZkCoProcessorType zkCoprocessor, bytes memory proofBytes) external returns (VerifierJournal memory journal); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct verifyCall { + #[allow(missing_docs)] + pub output: alloy::sol_types::private::Bytes, + #[allow(missing_docs)] + pub zkCoprocessor: ::RustType, + #[allow(missing_docs)] + pub proofBytes: alloy::sol_types::private::Bytes, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`verify(bytes,uint8,bytes)`](verifyCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct verifyReturn { + #[allow(missing_docs)] + pub journal: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Bytes, + ZkCoProcessorType, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Bytes, + ::RustType, + alloy::sol_types::private::Bytes, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: verifyCall) -> Self { + (value.output, value.zkCoprocessor, value.proofBytes) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for verifyCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + output: tuple.0, + zkCoprocessor: tuple.1, + proofBytes: tuple.2, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (VerifierJournal,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: verifyReturn) -> Self { + (value.journal,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for verifyReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { journal: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for verifyCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Bytes, + ZkCoProcessorType, + alloy::sol_types::sol_data::Bytes, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (VerifierJournal,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "verify(bytes,uint8,bytes)"; + const SELECTOR: [u8; 4] = [109u8, 17u8, 75u8, 227u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.output, + ), + ::tokenize( + &self.zkCoprocessor, + ), + ::tokenize( + &self.proofBytes, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: verifyReturn = r.into(); + r.journal + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: verifyReturn = r.into(); + r.journal + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `zkConfig(uint8)` and selector `0xf9f91b13`. +```solidity +function zkConfig(ZkCoProcessorType) external view returns (bytes32 verifierId, bytes32 aggregatorId, address zkVerifier); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct zkConfigCall( + pub ::RustType, + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`zkConfig(uint8)`](zkConfigCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct zkConfigReturn { + #[allow(missing_docs)] + pub verifierId: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub aggregatorId: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub zkVerifier: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (ZkCoProcessorType,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: zkConfigCall) -> Self { + (value.0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for zkConfigCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self(tuple.0) + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::FixedBytes<32>, + alloy::sol_types::private::FixedBytes<32>, + alloy::sol_types::private::Address, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: zkConfigReturn) -> Self { + (value.verifierId, value.aggregatorId, value.zkVerifier) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for zkConfigReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + verifierId: tuple.0, + aggregatorId: tuple.1, + zkVerifier: tuple.2, + } + } + } + } + impl zkConfigReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.verifierId), + as alloy_sol_types::SolType>::tokenize(&self.aggregatorId), + ::tokenize( + &self.zkVerifier, + ), + ) + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for zkConfigCall { + type Parameters<'a> = (ZkCoProcessorType,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = zkConfigReturn; + type ReturnTuple<'a> = ( + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + ); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "zkConfig(uint8)"; + const SELECTOR: [u8; 4] = [249u8, 249u8, 27u8, 19u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + (::tokenize(&self.0),) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + zkConfigReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + ///Container for all the [`NitroEnclaveVerifier`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum NitroEnclaveVerifierCalls { + #[allow(missing_docs)] + addVerifyRoute(addVerifyRouteCall), + #[allow(missing_docs)] + batchVerify(batchVerifyCall), + #[allow(missing_docs)] + cancelOwnershipHandover(cancelOwnershipHandoverCall), + #[allow(missing_docs)] + checkTrustedIntermediateCerts(checkTrustedIntermediateCertsCall), + #[allow(missing_docs)] + completeOwnershipHandover(completeOwnershipHandoverCall), + #[allow(missing_docs)] + freezeVerifyRoute(freezeVerifyRouteCall), + #[allow(missing_docs)] + getAggregatorIds(getAggregatorIdsCall), + #[allow(missing_docs)] + getVerifierIds(getVerifierIdsCall), + #[allow(missing_docs)] + getVerifierProofId(getVerifierProofIdCall), + #[allow(missing_docs)] + getZkConfig(getZkConfigCall), + #[allow(missing_docs)] + getZkVerifier(getZkVerifierCall), + #[allow(missing_docs)] + isAggregatorIdSupported(isAggregatorIdSupportedCall), + #[allow(missing_docs)] + isVerifierIdSupported(isVerifierIdSupportedCall), + #[allow(missing_docs)] + maxTimeDiff(maxTimeDiffCall), + #[allow(missing_docs)] + owner(ownerCall), + #[allow(missing_docs)] + ownershipHandoverExpiresAt(ownershipHandoverExpiresAtCall), + #[allow(missing_docs)] + proofSubmitter(proofSubmitterCall), + #[allow(missing_docs)] + removeAggregatorId(removeAggregatorIdCall), + #[allow(missing_docs)] + removeVerifierId(removeVerifierIdCall), + #[allow(missing_docs)] + renounceOwnership(renounceOwnershipCall), + #[allow(missing_docs)] + requestOwnershipHandover(requestOwnershipHandoverCall), + #[allow(missing_docs)] + revokeCert(revokeCertCall), + #[allow(missing_docs)] + rootCert(rootCertCall), + #[allow(missing_docs)] + setMaxTimeDiff(setMaxTimeDiffCall), + #[allow(missing_docs)] + setProofSubmitter(setProofSubmitterCall), + #[allow(missing_docs)] + setRootCert(setRootCertCall), + #[allow(missing_docs)] + setZkConfiguration(setZkConfigurationCall), + #[allow(missing_docs)] + transferOwnership(transferOwnershipCall), + #[allow(missing_docs)] + trustedIntermediateCerts(trustedIntermediateCertsCall), + #[allow(missing_docs)] + updateAggregatorId(updateAggregatorIdCall), + #[allow(missing_docs)] + updateVerifierId(updateVerifierIdCall), + #[allow(missing_docs)] + verify(verifyCall), + #[allow(missing_docs)] + zkConfig(zkConfigCall), + } + impl NitroEnclaveVerifierCalls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [37u8, 105u8, 41u8, 98u8], + [54u8, 152u8, 85u8, 230u8], + [58u8, 131u8, 124u8, 194u8], + [84u8, 209u8, 241u8, 61u8], + [88u8, 117u8, 51u8, 87u8], + [99u8, 205u8, 52u8, 86u8], + [103u8, 69u8, 21u8, 21u8], + [109u8, 17u8, 75u8, 227u8], + [113u8, 80u8, 24u8, 166u8], + [114u8, 33u8, 230u8, 252u8], + [115u8, 84u8, 163u8, 243u8], + [116u8, 193u8, 131u8, 170u8], + [134u8, 84u8, 106u8, 73u8], + [140u8, 181u8, 12u8, 68u8], + [141u8, 165u8, 203u8, 91u8], + [155u8, 28u8, 78u8, 123u8], + [161u8, 43u8, 137u8, 106u8], + [175u8, 66u8, 169u8, 141u8], + [181u8, 206u8, 149u8, 185u8], + [201u8, 86u8, 155u8, 195u8], + [204u8, 5u8, 192u8, 179u8], + [208u8, 109u8, 85u8, 135u8], + [221u8, 74u8, 71u8, 29u8], + [227u8, 244u8, 118u8, 149u8], + [232u8, 101u8, 21u8, 142u8], + [234u8, 158u8, 72u8, 87u8], + [239u8, 165u8, 163u8, 87u8], + [240u8, 78u8, 40u8, 62u8], + [242u8, 253u8, 227u8, 139u8], + [243u8, 107u8, 185u8, 97u8], + [248u8, 181u8, 7u8, 199u8], + [249u8, 249u8, 27u8, 19u8], + [254u8, 232u8, 28u8, 244u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(requestOwnershipHandover), + ::core::stringify!(maxTimeDiff), + ::core::stringify!(setZkConfiguration), + ::core::stringify!(cancelOwnershipHandover), + ::core::stringify!(proofSubmitter), + ::core::stringify!(freezeVerifyRoute), + ::core::stringify!(getZkConfig), + ::core::stringify!(verify), + ::core::stringify!(renounceOwnership), + ::core::stringify!(rootCert), + ::core::stringify!(isAggregatorIdSupported), + ::core::stringify!(setRootCert), + ::core::stringify!(addVerifyRoute), + ::core::stringify!(revokeCert), + ::core::stringify!(owner), + ::core::stringify!(removeVerifierId), + ::core::stringify!(getZkVerifier), + ::core::stringify!(getVerifierIds), + ::core::stringify!(getVerifierProofId), + ::core::stringify!(batchVerify), + ::core::stringify!(updateVerifierId), + ::core::stringify!(setProofSubmitter), + ::core::stringify!(trustedIntermediateCerts), + ::core::stringify!(setMaxTimeDiff), + ::core::stringify!(getAggregatorIds), + ::core::stringify!(updateAggregatorId), + ::core::stringify!(isVerifierIdSupported), + ::core::stringify!(completeOwnershipHandover), + ::core::stringify!(transferOwnership), + ::core::stringify!(removeAggregatorId), + ::core::stringify!(checkTrustedIntermediateCerts), + ::core::stringify!(zkConfig), + ::core::stringify!(ownershipHandoverExpiresAt), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for NitroEnclaveVerifierCalls { + const NAME: &'static str = "NitroEnclaveVerifierCalls"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 33usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::addVerifyRoute(_) => { + ::SELECTOR + } + Self::batchVerify(_) => { + ::SELECTOR + } + Self::cancelOwnershipHandover(_) => { + ::SELECTOR + } + Self::checkTrustedIntermediateCerts(_) => { + ::SELECTOR + } + Self::completeOwnershipHandover(_) => { + ::SELECTOR + } + Self::freezeVerifyRoute(_) => { + ::SELECTOR + } + Self::getAggregatorIds(_) => { + ::SELECTOR + } + Self::getVerifierIds(_) => { + ::SELECTOR + } + Self::getVerifierProofId(_) => { + ::SELECTOR + } + Self::getZkConfig(_) => { + ::SELECTOR + } + Self::getZkVerifier(_) => { + ::SELECTOR + } + Self::isAggregatorIdSupported(_) => { + ::SELECTOR + } + Self::isVerifierIdSupported(_) => { + ::SELECTOR + } + Self::maxTimeDiff(_) => { + ::SELECTOR + } + Self::owner(_) => ::SELECTOR, + Self::ownershipHandoverExpiresAt(_) => { + ::SELECTOR + } + Self::proofSubmitter(_) => { + ::SELECTOR + } + Self::removeAggregatorId(_) => { + ::SELECTOR + } + Self::removeVerifierId(_) => { + ::SELECTOR + } + Self::renounceOwnership(_) => { + ::SELECTOR + } + Self::requestOwnershipHandover(_) => { + ::SELECTOR + } + Self::revokeCert(_) => { + ::SELECTOR + } + Self::rootCert(_) => ::SELECTOR, + Self::setMaxTimeDiff(_) => { + ::SELECTOR + } + Self::setProofSubmitter(_) => { + ::SELECTOR + } + Self::setRootCert(_) => { + ::SELECTOR + } + Self::setZkConfiguration(_) => { + ::SELECTOR + } + Self::transferOwnership(_) => { + ::SELECTOR + } + Self::trustedIntermediateCerts(_) => { + ::SELECTOR + } + Self::updateAggregatorId(_) => { + ::SELECTOR + } + Self::updateVerifierId(_) => { + ::SELECTOR + } + Self::verify(_) => ::SELECTOR, + Self::zkConfig(_) => ::SELECTOR, + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn requestOwnershipHandover( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(NitroEnclaveVerifierCalls::requestOwnershipHandover) + } + requestOwnershipHandover + }, + { + fn maxTimeDiff( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(NitroEnclaveVerifierCalls::maxTimeDiff) + } + maxTimeDiff + }, + { + fn setZkConfiguration( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(NitroEnclaveVerifierCalls::setZkConfiguration) + } + setZkConfiguration + }, + { + fn cancelOwnershipHandover( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(NitroEnclaveVerifierCalls::cancelOwnershipHandover) + } + cancelOwnershipHandover + }, + { + fn proofSubmitter( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(NitroEnclaveVerifierCalls::proofSubmitter) + } + proofSubmitter + }, + { + fn freezeVerifyRoute( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(NitroEnclaveVerifierCalls::freezeVerifyRoute) + } + freezeVerifyRoute + }, + { + fn getZkConfig( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(NitroEnclaveVerifierCalls::getZkConfig) + } + getZkConfig + }, + { + fn verify( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(NitroEnclaveVerifierCalls::verify) + } + verify + }, + { + fn renounceOwnership( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(NitroEnclaveVerifierCalls::renounceOwnership) + } + renounceOwnership + }, + { + fn rootCert( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(NitroEnclaveVerifierCalls::rootCert) + } + rootCert + }, + { + fn isAggregatorIdSupported( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(NitroEnclaveVerifierCalls::isAggregatorIdSupported) + } + isAggregatorIdSupported + }, + { + fn setRootCert( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(NitroEnclaveVerifierCalls::setRootCert) + } + setRootCert + }, + { + fn addVerifyRoute( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(NitroEnclaveVerifierCalls::addVerifyRoute) + } + addVerifyRoute + }, + { + fn revokeCert( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(NitroEnclaveVerifierCalls::revokeCert) + } + revokeCert + }, + { + fn owner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(NitroEnclaveVerifierCalls::owner) + } + owner + }, + { + fn removeVerifierId( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(NitroEnclaveVerifierCalls::removeVerifierId) + } + removeVerifierId + }, + { + fn getZkVerifier( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(NitroEnclaveVerifierCalls::getZkVerifier) + } + getZkVerifier + }, + { + fn getVerifierIds( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(NitroEnclaveVerifierCalls::getVerifierIds) + } + getVerifierIds + }, + { + fn getVerifierProofId( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(NitroEnclaveVerifierCalls::getVerifierProofId) + } + getVerifierProofId + }, + { + fn batchVerify( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(NitroEnclaveVerifierCalls::batchVerify) + } + batchVerify + }, + { + fn updateVerifierId( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(NitroEnclaveVerifierCalls::updateVerifierId) + } + updateVerifierId + }, + { + fn setProofSubmitter( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(NitroEnclaveVerifierCalls::setProofSubmitter) + } + setProofSubmitter + }, + { + fn trustedIntermediateCerts( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(NitroEnclaveVerifierCalls::trustedIntermediateCerts) + } + trustedIntermediateCerts + }, + { + fn setMaxTimeDiff( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(NitroEnclaveVerifierCalls::setMaxTimeDiff) + } + setMaxTimeDiff + }, + { + fn getAggregatorIds( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(NitroEnclaveVerifierCalls::getAggregatorIds) + } + getAggregatorIds + }, + { + fn updateAggregatorId( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(NitroEnclaveVerifierCalls::updateAggregatorId) + } + updateAggregatorId + }, + { + fn isVerifierIdSupported( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(NitroEnclaveVerifierCalls::isVerifierIdSupported) + } + isVerifierIdSupported + }, + { + fn completeOwnershipHandover( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(NitroEnclaveVerifierCalls::completeOwnershipHandover) + } + completeOwnershipHandover + }, + { + fn transferOwnership( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(NitroEnclaveVerifierCalls::transferOwnership) + } + transferOwnership + }, + { + fn removeAggregatorId( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(NitroEnclaveVerifierCalls::removeAggregatorId) + } + removeAggregatorId + }, + { + fn checkTrustedIntermediateCerts( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + NitroEnclaveVerifierCalls::checkTrustedIntermediateCerts, + ) + } + checkTrustedIntermediateCerts + }, + { + fn zkConfig( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(NitroEnclaveVerifierCalls::zkConfig) + } + zkConfig + }, + { + fn ownershipHandoverExpiresAt( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(NitroEnclaveVerifierCalls::ownershipHandoverExpiresAt) + } + ownershipHandoverExpiresAt + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn requestOwnershipHandover( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(NitroEnclaveVerifierCalls::requestOwnershipHandover) + } + requestOwnershipHandover + }, + { + fn maxTimeDiff( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(NitroEnclaveVerifierCalls::maxTimeDiff) + } + maxTimeDiff + }, + { + fn setZkConfiguration( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(NitroEnclaveVerifierCalls::setZkConfiguration) + } + setZkConfiguration + }, + { + fn cancelOwnershipHandover( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(NitroEnclaveVerifierCalls::cancelOwnershipHandover) + } + cancelOwnershipHandover + }, + { + fn proofSubmitter( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(NitroEnclaveVerifierCalls::proofSubmitter) + } + proofSubmitter + }, + { + fn freezeVerifyRoute( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(NitroEnclaveVerifierCalls::freezeVerifyRoute) + } + freezeVerifyRoute + }, + { + fn getZkConfig( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(NitroEnclaveVerifierCalls::getZkConfig) + } + getZkConfig + }, + { + fn verify( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(NitroEnclaveVerifierCalls::verify) + } + verify + }, + { + fn renounceOwnership( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(NitroEnclaveVerifierCalls::renounceOwnership) + } + renounceOwnership + }, + { + fn rootCert( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(NitroEnclaveVerifierCalls::rootCert) + } + rootCert + }, + { + fn isAggregatorIdSupported( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(NitroEnclaveVerifierCalls::isAggregatorIdSupported) + } + isAggregatorIdSupported + }, + { + fn setRootCert( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(NitroEnclaveVerifierCalls::setRootCert) + } + setRootCert + }, + { + fn addVerifyRoute( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(NitroEnclaveVerifierCalls::addVerifyRoute) + } + addVerifyRoute + }, + { + fn revokeCert( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(NitroEnclaveVerifierCalls::revokeCert) + } + revokeCert + }, + { + fn owner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(NitroEnclaveVerifierCalls::owner) + } + owner + }, + { + fn removeVerifierId( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(NitroEnclaveVerifierCalls::removeVerifierId) + } + removeVerifierId + }, + { + fn getZkVerifier( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(NitroEnclaveVerifierCalls::getZkVerifier) + } + getZkVerifier + }, + { + fn getVerifierIds( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(NitroEnclaveVerifierCalls::getVerifierIds) + } + getVerifierIds + }, + { + fn getVerifierProofId( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(NitroEnclaveVerifierCalls::getVerifierProofId) + } + getVerifierProofId + }, + { + fn batchVerify( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(NitroEnclaveVerifierCalls::batchVerify) + } + batchVerify + }, + { + fn updateVerifierId( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(NitroEnclaveVerifierCalls::updateVerifierId) + } + updateVerifierId + }, + { + fn setProofSubmitter( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(NitroEnclaveVerifierCalls::setProofSubmitter) + } + setProofSubmitter + }, + { + fn trustedIntermediateCerts( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(NitroEnclaveVerifierCalls::trustedIntermediateCerts) + } + trustedIntermediateCerts + }, + { + fn setMaxTimeDiff( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(NitroEnclaveVerifierCalls::setMaxTimeDiff) + } + setMaxTimeDiff + }, + { + fn getAggregatorIds( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(NitroEnclaveVerifierCalls::getAggregatorIds) + } + getAggregatorIds + }, + { + fn updateAggregatorId( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(NitroEnclaveVerifierCalls::updateAggregatorId) + } + updateAggregatorId + }, + { + fn isVerifierIdSupported( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(NitroEnclaveVerifierCalls::isVerifierIdSupported) + } + isVerifierIdSupported + }, + { + fn completeOwnershipHandover( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(NitroEnclaveVerifierCalls::completeOwnershipHandover) + } + completeOwnershipHandover + }, + { + fn transferOwnership( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(NitroEnclaveVerifierCalls::transferOwnership) + } + transferOwnership + }, + { + fn removeAggregatorId( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(NitroEnclaveVerifierCalls::removeAggregatorId) + } + removeAggregatorId + }, + { + fn checkTrustedIntermediateCerts( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + NitroEnclaveVerifierCalls::checkTrustedIntermediateCerts, + ) + } + checkTrustedIntermediateCerts + }, + { + fn zkConfig( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(NitroEnclaveVerifierCalls::zkConfig) + } + zkConfig + }, + { + fn ownershipHandoverExpiresAt( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(NitroEnclaveVerifierCalls::ownershipHandoverExpiresAt) + } + ownershipHandoverExpiresAt + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::addVerifyRoute(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::batchVerify(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::cancelOwnershipHandover(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::checkTrustedIntermediateCerts(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::completeOwnershipHandover(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::freezeVerifyRoute(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::getAggregatorIds(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::getVerifierIds(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::getVerifierProofId(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::getZkConfig(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::getZkVerifier(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::isAggregatorIdSupported(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::isVerifierIdSupported(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::maxTimeDiff(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::owner(inner) => { + ::abi_encoded_size(inner) + } + Self::ownershipHandoverExpiresAt(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::proofSubmitter(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::removeAggregatorId(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::removeVerifierId(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::renounceOwnership(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::requestOwnershipHandover(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::revokeCert(inner) => { + ::abi_encoded_size(inner) + } + Self::rootCert(inner) => { + ::abi_encoded_size(inner) + } + Self::setMaxTimeDiff(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::setProofSubmitter(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::setRootCert(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::setZkConfiguration(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::transferOwnership(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::trustedIntermediateCerts(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::updateAggregatorId(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::updateVerifierId(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::verify(inner) => { + ::abi_encoded_size(inner) + } + Self::zkConfig(inner) => { + ::abi_encoded_size(inner) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::addVerifyRoute(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::batchVerify(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::cancelOwnershipHandover(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::checkTrustedIntermediateCerts(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::completeOwnershipHandover(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::freezeVerifyRoute(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::getAggregatorIds(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::getVerifierIds(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::getVerifierProofId(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::getZkConfig(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::getZkVerifier(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::isAggregatorIdSupported(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::isVerifierIdSupported(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::maxTimeDiff(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::owner(inner) => { + ::abi_encode_raw(inner, out) + } + Self::ownershipHandoverExpiresAt(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::proofSubmitter(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::removeAggregatorId(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::removeVerifierId(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::renounceOwnership(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::requestOwnershipHandover(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::revokeCert(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::rootCert(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::setMaxTimeDiff(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::setProofSubmitter(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::setRootCert(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::setZkConfiguration(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::transferOwnership(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::trustedIntermediateCerts(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::updateAggregatorId(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::updateVerifierId(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::verify(inner) => { + ::abi_encode_raw(inner, out) + } + Self::zkConfig(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + } + } + } + ///Container for all the [`NitroEnclaveVerifier`](self) custom errors. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum NitroEnclaveVerifierErrors { + #[allow(missing_docs)] + AlreadyInitialized(AlreadyInitialized), + #[allow(missing_docs)] + CallerNotProofSubmitter(CallerNotProofSubmitter), + #[allow(missing_docs)] + CannotRemoveLatestProgramId(CannotRemoveLatestProgramId), + #[allow(missing_docs)] + CertificateNotFound(CertificateNotFound), + #[allow(missing_docs)] + NewOwnerIsZeroAddress(NewOwnerIsZeroAddress), + #[allow(missing_docs)] + NoHandoverRequest(NoHandoverRequest), + #[allow(missing_docs)] + NotImplemented(NotImplemented), + #[allow(missing_docs)] + ProgramIdAlreadyLatest(ProgramIdAlreadyLatest), + #[allow(missing_docs)] + ProgramIdNotFound(ProgramIdNotFound), + #[allow(missing_docs)] + RootCertMismatch(RootCertMismatch), + #[allow(missing_docs)] + Unauthorized(Unauthorized), + #[allow(missing_docs)] + Unknown_Zk_Coprocessor(Unknown_Zk_Coprocessor), + #[allow(missing_docs)] + VerifierVkMismatch(VerifierVkMismatch), + #[allow(missing_docs)] + ZeroMaxTimeDiff(ZeroMaxTimeDiff), + #[allow(missing_docs)] + ZeroProgramId(ZeroProgramId), + #[allow(missing_docs)] + ZeroProofSubmitter(ZeroProofSubmitter), + #[allow(missing_docs)] + ZeroVerifierAddress(ZeroVerifierAddress), + #[allow(missing_docs)] + ZkRouteFrozen(ZkRouteFrozen), + #[allow(missing_docs)] + ZkVerifierNotConfigured(ZkVerifierNotConfigured), + } + impl NitroEnclaveVerifierErrors { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [0u8, 158u8, 245u8, 203u8], + [2u8, 154u8, 42u8, 104u8], + [13u8, 193u8, 73u8, 240u8], + [14u8, 59u8, 160u8, 175u8], + [33u8, 185u8, 88u8, 124u8], + [44u8, 34u8, 93u8, 42u8], + [65u8, 164u8, 99u8, 165u8], + [81u8, 171u8, 217u8, 92u8], + [84u8, 9u8, 227u8, 231u8], + [111u8, 94u8, 136u8, 24u8], + [116u8, 72u8, 251u8, 174u8], + [117u8, 133u8, 230u8, 56u8], + [130u8, 180u8, 41u8, 0u8], + [190u8, 89u8, 161u8, 237u8], + [206u8, 75u8, 198u8, 214u8], + [214u8, 35u8, 71u8, 37u8], + [228u8, 172u8, 73u8, 107u8], + [243u8, 223u8, 105u8, 220u8], + [254u8, 2u8, 50u8, 195u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(ZeroProofSubmitter), + ::core::stringify!(ZkRouteFrozen), + ::core::stringify!(AlreadyInitialized), + ::core::stringify!(ZeroVerifierAddress), + ::core::stringify!(VerifierVkMismatch), + ::core::stringify!(CannotRemoveLatestProgramId), + ::core::stringify!(ZeroProgramId), + ::core::stringify!(Unknown_Zk_Coprocessor), + ::core::stringify!(ZeroMaxTimeDiff), + ::core::stringify!(NoHandoverRequest), + ::core::stringify!(NewOwnerIsZeroAddress), + ::core::stringify!(CertificateNotFound), + ::core::stringify!(Unauthorized), + ::core::stringify!(ProgramIdNotFound), + ::core::stringify!(ZkVerifierNotConfigured), + ::core::stringify!(NotImplemented), + ::core::stringify!(RootCertMismatch), + ::core::stringify!(ProgramIdAlreadyLatest), + ::core::stringify!(CallerNotProofSubmitter), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for NitroEnclaveVerifierErrors { + const NAME: &'static str = "NitroEnclaveVerifierErrors"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 19usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::AlreadyInitialized(_) => { + ::SELECTOR + } + Self::CallerNotProofSubmitter(_) => { + ::SELECTOR + } + Self::CannotRemoveLatestProgramId(_) => { + ::SELECTOR + } + Self::CertificateNotFound(_) => { + ::SELECTOR + } + Self::NewOwnerIsZeroAddress(_) => { + ::SELECTOR + } + Self::NoHandoverRequest(_) => { + ::SELECTOR + } + Self::NotImplemented(_) => { + ::SELECTOR + } + Self::ProgramIdAlreadyLatest(_) => { + ::SELECTOR + } + Self::ProgramIdNotFound(_) => { + ::SELECTOR + } + Self::RootCertMismatch(_) => { + ::SELECTOR + } + Self::Unauthorized(_) => { + ::SELECTOR + } + Self::Unknown_Zk_Coprocessor(_) => { + ::SELECTOR + } + Self::VerifierVkMismatch(_) => { + ::SELECTOR + } + Self::ZeroMaxTimeDiff(_) => { + ::SELECTOR + } + Self::ZeroProgramId(_) => { + ::SELECTOR + } + Self::ZeroProofSubmitter(_) => { + ::SELECTOR + } + Self::ZeroVerifierAddress(_) => { + ::SELECTOR + } + Self::ZkRouteFrozen(_) => { + ::SELECTOR + } + Self::ZkVerifierNotConfigured(_) => { + ::SELECTOR + } + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn ZeroProofSubmitter( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(NitroEnclaveVerifierErrors::ZeroProofSubmitter) + } + ZeroProofSubmitter + }, + { + fn ZkRouteFrozen( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(NitroEnclaveVerifierErrors::ZkRouteFrozen) + } + ZkRouteFrozen + }, + { + fn AlreadyInitialized( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(NitroEnclaveVerifierErrors::AlreadyInitialized) + } + AlreadyInitialized + }, + { + fn ZeroVerifierAddress( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(NitroEnclaveVerifierErrors::ZeroVerifierAddress) + } + ZeroVerifierAddress + }, + { + fn VerifierVkMismatch( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(NitroEnclaveVerifierErrors::VerifierVkMismatch) + } + VerifierVkMismatch + }, + { + fn CannotRemoveLatestProgramId( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(NitroEnclaveVerifierErrors::CannotRemoveLatestProgramId) + } + CannotRemoveLatestProgramId + }, + { + fn ZeroProgramId( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(NitroEnclaveVerifierErrors::ZeroProgramId) + } + ZeroProgramId + }, + { + fn Unknown_Zk_Coprocessor( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(NitroEnclaveVerifierErrors::Unknown_Zk_Coprocessor) + } + Unknown_Zk_Coprocessor + }, + { + fn ZeroMaxTimeDiff( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(NitroEnclaveVerifierErrors::ZeroMaxTimeDiff) + } + ZeroMaxTimeDiff + }, + { + fn NoHandoverRequest( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(NitroEnclaveVerifierErrors::NoHandoverRequest) + } + NoHandoverRequest + }, + { + fn NewOwnerIsZeroAddress( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(NitroEnclaveVerifierErrors::NewOwnerIsZeroAddress) + } + NewOwnerIsZeroAddress + }, + { + fn CertificateNotFound( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(NitroEnclaveVerifierErrors::CertificateNotFound) + } + CertificateNotFound + }, + { + fn Unauthorized( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(NitroEnclaveVerifierErrors::Unauthorized) + } + Unauthorized + }, + { + fn ProgramIdNotFound( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(NitroEnclaveVerifierErrors::ProgramIdNotFound) + } + ProgramIdNotFound + }, + { + fn ZkVerifierNotConfigured( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(NitroEnclaveVerifierErrors::ZkVerifierNotConfigured) + } + ZkVerifierNotConfigured + }, + { + fn NotImplemented( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(NitroEnclaveVerifierErrors::NotImplemented) + } + NotImplemented + }, + { + fn RootCertMismatch( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(NitroEnclaveVerifierErrors::RootCertMismatch) + } + RootCertMismatch + }, + { + fn ProgramIdAlreadyLatest( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(NitroEnclaveVerifierErrors::ProgramIdAlreadyLatest) + } + ProgramIdAlreadyLatest + }, + { + fn CallerNotProofSubmitter( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(NitroEnclaveVerifierErrors::CallerNotProofSubmitter) + } + CallerNotProofSubmitter + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn ZeroProofSubmitter( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(NitroEnclaveVerifierErrors::ZeroProofSubmitter) + } + ZeroProofSubmitter + }, + { + fn ZkRouteFrozen( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(NitroEnclaveVerifierErrors::ZkRouteFrozen) + } + ZkRouteFrozen + }, + { + fn AlreadyInitialized( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(NitroEnclaveVerifierErrors::AlreadyInitialized) + } + AlreadyInitialized + }, + { + fn ZeroVerifierAddress( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(NitroEnclaveVerifierErrors::ZeroVerifierAddress) + } + ZeroVerifierAddress + }, + { + fn VerifierVkMismatch( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(NitroEnclaveVerifierErrors::VerifierVkMismatch) + } + VerifierVkMismatch + }, + { + fn CannotRemoveLatestProgramId( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(NitroEnclaveVerifierErrors::CannotRemoveLatestProgramId) + } + CannotRemoveLatestProgramId + }, + { + fn ZeroProgramId( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(NitroEnclaveVerifierErrors::ZeroProgramId) + } + ZeroProgramId + }, + { + fn Unknown_Zk_Coprocessor( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(NitroEnclaveVerifierErrors::Unknown_Zk_Coprocessor) + } + Unknown_Zk_Coprocessor + }, + { + fn ZeroMaxTimeDiff( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(NitroEnclaveVerifierErrors::ZeroMaxTimeDiff) + } + ZeroMaxTimeDiff + }, + { + fn NoHandoverRequest( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(NitroEnclaveVerifierErrors::NoHandoverRequest) + } + NoHandoverRequest + }, + { + fn NewOwnerIsZeroAddress( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(NitroEnclaveVerifierErrors::NewOwnerIsZeroAddress) + } + NewOwnerIsZeroAddress + }, + { + fn CertificateNotFound( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(NitroEnclaveVerifierErrors::CertificateNotFound) + } + CertificateNotFound + }, + { + fn Unauthorized( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(NitroEnclaveVerifierErrors::Unauthorized) + } + Unauthorized + }, + { + fn ProgramIdNotFound( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(NitroEnclaveVerifierErrors::ProgramIdNotFound) + } + ProgramIdNotFound + }, + { + fn ZkVerifierNotConfigured( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(NitroEnclaveVerifierErrors::ZkVerifierNotConfigured) + } + ZkVerifierNotConfigured + }, + { + fn NotImplemented( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(NitroEnclaveVerifierErrors::NotImplemented) + } + NotImplemented + }, + { + fn RootCertMismatch( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(NitroEnclaveVerifierErrors::RootCertMismatch) + } + RootCertMismatch + }, + { + fn ProgramIdAlreadyLatest( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(NitroEnclaveVerifierErrors::ProgramIdAlreadyLatest) + } + ProgramIdAlreadyLatest + }, + { + fn CallerNotProofSubmitter( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(NitroEnclaveVerifierErrors::CallerNotProofSubmitter) + } + CallerNotProofSubmitter + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::AlreadyInitialized(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::CallerNotProofSubmitter(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::CannotRemoveLatestProgramId(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::CertificateNotFound(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::NewOwnerIsZeroAddress(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::NoHandoverRequest(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::NotImplemented(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ProgramIdAlreadyLatest(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ProgramIdNotFound(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::RootCertMismatch(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::Unauthorized(inner) => { + ::abi_encoded_size(inner) + } + Self::Unknown_Zk_Coprocessor(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::VerifierVkMismatch(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ZeroMaxTimeDiff(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ZeroProgramId(inner) => { + ::abi_encoded_size(inner) + } + Self::ZeroProofSubmitter(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ZeroVerifierAddress(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ZkRouteFrozen(inner) => { + ::abi_encoded_size(inner) + } + Self::ZkVerifierNotConfigured(inner) => { + ::abi_encoded_size( + inner, + ) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::AlreadyInitialized(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::CallerNotProofSubmitter(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::CannotRemoveLatestProgramId(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::CertificateNotFound(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::NewOwnerIsZeroAddress(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::NoHandoverRequest(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::NotImplemented(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ProgramIdAlreadyLatest(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ProgramIdNotFound(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::RootCertMismatch(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::Unauthorized(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::Unknown_Zk_Coprocessor(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::VerifierVkMismatch(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ZeroMaxTimeDiff(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ZeroProgramId(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ZeroProofSubmitter(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ZeroVerifierAddress(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ZkRouteFrozen(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ZkVerifierNotConfigured(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + } + } + } + ///Container for all the [`NitroEnclaveVerifier`](self) events. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum NitroEnclaveVerifierEvents { + #[allow(missing_docs)] + AggregatorIdUpdated(AggregatorIdUpdated), + #[allow(missing_docs)] + AttestationSubmitted(AttestationSubmitted), + #[allow(missing_docs)] + BatchAttestationSubmitted(BatchAttestationSubmitted), + #[allow(missing_docs)] + CertRevoked(CertRevoked), + #[allow(missing_docs)] + MaxTimeDiffUpdated(MaxTimeDiffUpdated), + #[allow(missing_docs)] + OwnershipHandoverCanceled(OwnershipHandoverCanceled), + #[allow(missing_docs)] + OwnershipHandoverRequested(OwnershipHandoverRequested), + #[allow(missing_docs)] + OwnershipTransferred(OwnershipTransferred), + #[allow(missing_docs)] + ProgramIdRemoved(ProgramIdRemoved), + #[allow(missing_docs)] + ProofSubmitterChanged(ProofSubmitterChanged), + #[allow(missing_docs)] + RootCertChanged(RootCertChanged), + #[allow(missing_docs)] + VerifierIdUpdated(VerifierIdUpdated), + #[allow(missing_docs)] + ZKConfigurationUpdated(ZKConfigurationUpdated), + #[allow(missing_docs)] + ZkRouteAdded(ZkRouteAdded), + #[allow(missing_docs)] + ZkRouteWasFrozen(ZkRouteWasFrozen), + } + impl NitroEnclaveVerifierEvents { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 32usize]] = &[ + [ + 52u8, 215u8, 28u8, 93u8, 184u8, 14u8, 60u8, 29u8, 181u8, 63u8, 109u8, + 36u8, 85u8, 3u8, 197u8, 49u8, 137u8, 79u8, 105u8, 74u8, 162u8, 108u8, + 122u8, 150u8, 122u8, 223u8, 119u8, 22u8, 123u8, 18u8, 96u8, 54u8, + ], + [ + 73u8, 245u8, 155u8, 236u8, 132u8, 111u8, 211u8, 88u8, 141u8, 125u8, 73u8, + 0u8, 169u8, 215u8, 105u8, 143u8, 41u8, 74u8, 115u8, 4u8, 62u8, 214u8, + 196u8, 7u8, 213u8, 194u8, 207u8, 169u8, 11u8, 139u8, 144u8, 215u8, + ], + [ + 81u8, 8u8, 78u8, 179u8, 77u8, 172u8, 14u8, 140u8, 121u8, 107u8, 39u8, + 65u8, 237u8, 26u8, 111u8, 237u8, 114u8, 115u8, 17u8, 252u8, 67u8, 91u8, + 10u8, 240u8, 218u8, 195u8, 15u8, 5u8, 129u8, 219u8, 206u8, 73u8, + ], + [ + 99u8, 242u8, 212u8, 220u8, 164u8, 201u8, 55u8, 186u8, 104u8, 229u8, + 123u8, 189u8, 221u8, 43u8, 10u8, 53u8, 96u8, 229u8, 180u8, 151u8, 89u8, + 50u8, 40u8, 219u8, 234u8, 115u8, 114u8, 193u8, 39u8, 193u8, 109u8, 200u8, + ], + [ + 111u8, 78u8, 133u8, 251u8, 49u8, 102u8, 168u8, 13u8, 8u8, 106u8, 202u8, + 110u8, 82u8, 118u8, 130u8, 166u8, 193u8, 18u8, 139u8, 254u8, 231u8, + 145u8, 7u8, 175u8, 109u8, 66u8, 22u8, 248u8, 67u8, 226u8, 1u8, 112u8, + ], + [ + 118u8, 12u8, 135u8, 170u8, 202u8, 56u8, 76u8, 61u8, 200u8, 45u8, 91u8, + 204u8, 224u8, 88u8, 132u8, 167u8, 92u8, 247u8, 135u8, 239u8, 127u8, + 124u8, 172u8, 174u8, 242u8, 106u8, 104u8, 34u8, 178u8, 131u8, 29u8, 212u8, + ], + [ + 139u8, 224u8, 7u8, 156u8, 83u8, 22u8, 89u8, 20u8, 19u8, 68u8, 205u8, + 31u8, 208u8, 164u8, 242u8, 132u8, 25u8, 73u8, 127u8, 151u8, 34u8, 163u8, + 218u8, 175u8, 227u8, 180u8, 24u8, 111u8, 107u8, 100u8, 87u8, 224u8, + ], + [ + 140u8, 116u8, 145u8, 201u8, 1u8, 140u8, 11u8, 51u8, 46u8, 125u8, 153u8, + 45u8, 27u8, 55u8, 219u8, 26u8, 97u8, 244u8, 192u8, 117u8, 203u8, 48u8, + 226u8, 55u8, 204u8, 130u8, 108u8, 82u8, 195u8, 22u8, 108u8, 239u8, + ], + [ + 161u8, 60u8, 126u8, 121u8, 199u8, 109u8, 204u8, 237u8, 145u8, 204u8, + 98u8, 196u8, 157u8, 183u8, 58u8, 58u8, 2u8, 147u8, 90u8, 239u8, 129u8, + 14u8, 234u8, 123u8, 121u8, 66u8, 98u8, 94u8, 148u8, 188u8, 64u8, 112u8, + ], + [ + 198u8, 32u8, 71u8, 11u8, 146u8, 225u8, 175u8, 105u8, 201u8, 20u8, 73u8, + 91u8, 255u8, 7u8, 37u8, 211u8, 249u8, 221u8, 239u8, 88u8, 244u8, 227u8, + 218u8, 210u8, 210u8, 229u8, 178u8, 244u8, 191u8, 99u8, 240u8, 227u8, + ], + [ + 205u8, 206u8, 20u8, 181u8, 223u8, 149u8, 78u8, 208u8, 221u8, 244u8, + 189u8, 51u8, 204u8, 56u8, 113u8, 126u8, 225u8, 196u8, 110u8, 6u8, 162u8, + 125u8, 105u8, 150u8, 45u8, 215u8, 240u8, 63u8, 112u8, 196u8, 73u8, 196u8, + ], + [ + 217u8, 23u8, 139u8, 196u8, 152u8, 248u8, 168u8, 56u8, 48u8, 203u8, 109u8, + 183u8, 107u8, 106u8, 104u8, 146u8, 43u8, 109u8, 168u8, 194u8, 95u8, 59u8, + 134u8, 90u8, 110u8, 162u8, 167u8, 69u8, 26u8, 200u8, 180u8, 118u8, + ], + [ + 219u8, 243u8, 106u8, 16u8, 125u8, 161u8, 158u8, 73u8, 82u8, 122u8, 113u8, + 118u8, 161u8, 186u8, 191u8, 150u8, 59u8, 75u8, 15u8, 248u8, 205u8, 227u8, + 94u8, 227u8, 93u8, 108u8, 216u8, 241u8, 249u8, 172u8, 126u8, 29u8, + ], + [ + 223u8, 167u8, 103u8, 173u8, 84u8, 147u8, 29u8, 141u8, 136u8, 159u8, 52u8, + 180u8, 24u8, 166u8, 111u8, 9u8, 160u8, 190u8, 195u8, 64u8, 109u8, 235u8, + 189u8, 157u8, 236u8, 187u8, 140u8, 233u8, 25u8, 194u8, 79u8, 254u8, + ], + [ + 250u8, 123u8, 142u8, 171u8, 125u8, 166u8, 127u8, 65u8, 44u8, 201u8, 87u8, + 94u8, 212u8, 52u8, 100u8, 70u8, 143u8, 155u8, 251u8, 174u8, 137u8, 209u8, + 103u8, 89u8, 23u8, 52u8, 108u8, 166u8, 216u8, 254u8, 60u8, 146u8, + ], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(AttestationSubmitted), + ::core::stringify!(CertRevoked), + ::core::stringify!(VerifierIdUpdated), + ::core::stringify!(RootCertChanged), + ::core::stringify!(ProofSubmitterChanged), + ::core::stringify!(ZkRouteAdded), + ::core::stringify!(OwnershipTransferred), + ::core::stringify!(ZKConfigurationUpdated), + ::core::stringify!(AggregatorIdUpdated), + ::core::stringify!(MaxTimeDiffUpdated), + ::core::stringify!(ZkRouteWasFrozen), + ::core::stringify!(ProgramIdRemoved), + ::core::stringify!(OwnershipHandoverRequested), + ::core::stringify!(BatchAttestationSubmitted), + ::core::stringify!(OwnershipHandoverCanceled), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolEventInterface for NitroEnclaveVerifierEvents { + const NAME: &'static str = "NitroEnclaveVerifierEvents"; + const COUNT: usize = 15usize; + fn decode_raw_log( + topics: &[alloy_sol_types::Word], + data: &[u8], + ) -> alloy_sol_types::Result { + match topics.first().copied() { + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::AggregatorIdUpdated) + } + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::AttestationSubmitted) + } + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::BatchAttestationSubmitted) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::CertRevoked) + } + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::MaxTimeDiffUpdated) + } + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::OwnershipHandoverCanceled) + } + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::OwnershipHandoverRequested) + } + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::OwnershipTransferred) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::ProgramIdRemoved) + } + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::ProofSubmitterChanged) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::RootCertChanged) + } + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::VerifierIdUpdated) + } + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::ZKConfigurationUpdated) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::ZkRouteAdded) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::ZkRouteWasFrozen) + } + _ => { + alloy_sol_types::private::Err(alloy_sol_types::Error::InvalidLog { + name: ::NAME, + log: alloy_sol_types::private::Box::new( + alloy_sol_types::private::LogData::new_unchecked( + topics.to_vec(), + data.to_vec().into(), + ), + ), + }) + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for NitroEnclaveVerifierEvents { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + match self { + Self::AggregatorIdUpdated(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::AttestationSubmitted(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::BatchAttestationSubmitted(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::CertRevoked(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::MaxTimeDiffUpdated(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::OwnershipHandoverCanceled(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::OwnershipHandoverRequested(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::OwnershipTransferred(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::ProgramIdRemoved(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::ProofSubmitterChanged(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::RootCertChanged(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::VerifierIdUpdated(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::ZKConfigurationUpdated(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::ZkRouteAdded(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::ZkRouteWasFrozen(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + } + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + match self { + Self::AggregatorIdUpdated(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::AttestationSubmitted(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::BatchAttestationSubmitted(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::CertRevoked(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::MaxTimeDiffUpdated(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::OwnershipHandoverCanceled(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::OwnershipHandoverRequested(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::OwnershipTransferred(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::ProgramIdRemoved(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::ProofSubmitterChanged(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::RootCertChanged(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::VerifierIdUpdated(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::ZKConfigurationUpdated(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::ZkRouteAdded(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::ZkRouteWasFrozen(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`NitroEnclaveVerifier`](self) contract instance. + +See the [wrapper's documentation](`NitroEnclaveVerifierInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> NitroEnclaveVerifierInstance { + NitroEnclaveVerifierInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + _owner: alloy::sol_types::private::Address, + _maxTimeDiff: u64, + _initializeTrustedCerts: alloy::sol_types::private::Vec< + alloy::sol_types::private::FixedBytes<32>, + >, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + NitroEnclaveVerifierInstance::< + P, + N, + >::deploy(__provider, _owner, _maxTimeDiff, _initializeTrustedCerts) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + _owner: alloy::sol_types::private::Address, + _maxTimeDiff: u64, + _initializeTrustedCerts: alloy::sol_types::private::Vec< + alloy::sol_types::private::FixedBytes<32>, + >, + ) -> alloy_contract::RawCallBuilder { + NitroEnclaveVerifierInstance::< + P, + N, + >::deploy_builder(__provider, _owner, _maxTimeDiff, _initializeTrustedCerts) + } + /**A [`NitroEnclaveVerifier`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`NitroEnclaveVerifier`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct NitroEnclaveVerifierInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for NitroEnclaveVerifierInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("NitroEnclaveVerifierInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > NitroEnclaveVerifierInstance { + /**Creates a new wrapper around an on-chain [`NitroEnclaveVerifier`](self) contract instance. + +See the [wrapper's documentation](`NitroEnclaveVerifierInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + _owner: alloy::sol_types::private::Address, + _maxTimeDiff: u64, + _initializeTrustedCerts: alloy::sol_types::private::Vec< + alloy::sol_types::private::FixedBytes<32>, + >, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder( + __provider, + _owner, + _maxTimeDiff, + _initializeTrustedCerts, + ); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder( + __provider: P, + _owner: alloy::sol_types::private::Address, + _maxTimeDiff: u64, + _initializeTrustedCerts: alloy::sol_types::private::Vec< + alloy::sol_types::private::FixedBytes<32>, + >, + ) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + [ + &BYTECODE[..], + &alloy_sol_types::SolConstructor::abi_encode( + &constructorCall { + _owner, + _maxTimeDiff, + _initializeTrustedCerts, + }, + )[..], + ] + .concat() + .into(), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl NitroEnclaveVerifierInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> NitroEnclaveVerifierInstance { + NitroEnclaveVerifierInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > NitroEnclaveVerifierInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`addVerifyRoute`] function. + pub fn addVerifyRoute( + &self, + _zkCoProcessor: ::RustType, + _selector: alloy::sol_types::private::FixedBytes<4>, + _verifier: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, addVerifyRouteCall, N> { + self.call_builder( + &addVerifyRouteCall { + _zkCoProcessor, + _selector, + _verifier, + }, + ) + } + ///Creates a new call builder for the [`batchVerify`] function. + pub fn batchVerify( + &self, + output: alloy::sol_types::private::Bytes, + zkCoprocessor: ::RustType, + proofBytes: alloy::sol_types::private::Bytes, + ) -> alloy_contract::SolCallBuilder<&P, batchVerifyCall, N> { + self.call_builder( + &batchVerifyCall { + output, + zkCoprocessor, + proofBytes, + }, + ) + } + ///Creates a new call builder for the [`cancelOwnershipHandover`] function. + pub fn cancelOwnershipHandover( + &self, + ) -> alloy_contract::SolCallBuilder<&P, cancelOwnershipHandoverCall, N> { + self.call_builder(&cancelOwnershipHandoverCall) + } + ///Creates a new call builder for the [`checkTrustedIntermediateCerts`] function. + pub fn checkTrustedIntermediateCerts( + &self, + _report_certs: alloy::sol_types::private::Vec< + alloy::sol_types::private::Vec>, + >, + ) -> alloy_contract::SolCallBuilder<&P, checkTrustedIntermediateCertsCall, N> { + self.call_builder( + &checkTrustedIntermediateCertsCall { + _report_certs, + }, + ) + } + ///Creates a new call builder for the [`completeOwnershipHandover`] function. + pub fn completeOwnershipHandover( + &self, + pendingOwner: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, completeOwnershipHandoverCall, N> { + self.call_builder( + &completeOwnershipHandoverCall { + pendingOwner, + }, + ) + } + ///Creates a new call builder for the [`freezeVerifyRoute`] function. + pub fn freezeVerifyRoute( + &self, + _zkCoProcessor: ::RustType, + _selector: alloy::sol_types::private::FixedBytes<4>, + ) -> alloy_contract::SolCallBuilder<&P, freezeVerifyRouteCall, N> { + self.call_builder( + &freezeVerifyRouteCall { + _zkCoProcessor, + _selector, + }, + ) + } + ///Creates a new call builder for the [`getAggregatorIds`] function. + pub fn getAggregatorIds( + &self, + _zkCoProcessor: ::RustType, + ) -> alloy_contract::SolCallBuilder<&P, getAggregatorIdsCall, N> { + self.call_builder( + &getAggregatorIdsCall { + _zkCoProcessor, + }, + ) + } + ///Creates a new call builder for the [`getVerifierIds`] function. + pub fn getVerifierIds( + &self, + _zkCoProcessor: ::RustType, + ) -> alloy_contract::SolCallBuilder<&P, getVerifierIdsCall, N> { + self.call_builder( + &getVerifierIdsCall { + _zkCoProcessor, + }, + ) + } + ///Creates a new call builder for the [`getVerifierProofId`] function. + pub fn getVerifierProofId( + &self, + _zkCoProcessor: ::RustType, + _verifierId: alloy::sol_types::private::FixedBytes<32>, + ) -> alloy_contract::SolCallBuilder<&P, getVerifierProofIdCall, N> { + self.call_builder( + &getVerifierProofIdCall { + _zkCoProcessor, + _verifierId, + }, + ) + } + ///Creates a new call builder for the [`getZkConfig`] function. + pub fn getZkConfig( + &self, + _zkCoProcessor: ::RustType, + ) -> alloy_contract::SolCallBuilder<&P, getZkConfigCall, N> { + self.call_builder(&getZkConfigCall { _zkCoProcessor }) + } + ///Creates a new call builder for the [`getZkVerifier`] function. + pub fn getZkVerifier( + &self, + _zkCoProcessor: ::RustType, + _selector: alloy::sol_types::private::FixedBytes<4>, + ) -> alloy_contract::SolCallBuilder<&P, getZkVerifierCall, N> { + self.call_builder( + &getZkVerifierCall { + _zkCoProcessor, + _selector, + }, + ) + } + ///Creates a new call builder for the [`isAggregatorIdSupported`] function. + pub fn isAggregatorIdSupported( + &self, + _zkCoProcessor: ::RustType, + _aggregatorId: alloy::sol_types::private::FixedBytes<32>, + ) -> alloy_contract::SolCallBuilder<&P, isAggregatorIdSupportedCall, N> { + self.call_builder( + &isAggregatorIdSupportedCall { + _zkCoProcessor, + _aggregatorId, + }, + ) + } + ///Creates a new call builder for the [`isVerifierIdSupported`] function. + pub fn isVerifierIdSupported( + &self, + _zkCoProcessor: ::RustType, + _verifierId: alloy::sol_types::private::FixedBytes<32>, + ) -> alloy_contract::SolCallBuilder<&P, isVerifierIdSupportedCall, N> { + self.call_builder( + &isVerifierIdSupportedCall { + _zkCoProcessor, + _verifierId, + }, + ) + } + ///Creates a new call builder for the [`maxTimeDiff`] function. + pub fn maxTimeDiff( + &self, + ) -> alloy_contract::SolCallBuilder<&P, maxTimeDiffCall, N> { + self.call_builder(&maxTimeDiffCall) + } + ///Creates a new call builder for the [`owner`] function. + pub fn owner(&self) -> alloy_contract::SolCallBuilder<&P, ownerCall, N> { + self.call_builder(&ownerCall) + } + ///Creates a new call builder for the [`ownershipHandoverExpiresAt`] function. + pub fn ownershipHandoverExpiresAt( + &self, + pendingOwner: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, ownershipHandoverExpiresAtCall, N> { + self.call_builder( + &ownershipHandoverExpiresAtCall { + pendingOwner, + }, + ) + } + ///Creates a new call builder for the [`proofSubmitter`] function. + pub fn proofSubmitter( + &self, + ) -> alloy_contract::SolCallBuilder<&P, proofSubmitterCall, N> { + self.call_builder(&proofSubmitterCall) + } + ///Creates a new call builder for the [`removeAggregatorId`] function. + pub fn removeAggregatorId( + &self, + _zkCoProcessor: ::RustType, + _aggregatorId: alloy::sol_types::private::FixedBytes<32>, + ) -> alloy_contract::SolCallBuilder<&P, removeAggregatorIdCall, N> { + self.call_builder( + &removeAggregatorIdCall { + _zkCoProcessor, + _aggregatorId, + }, + ) + } + ///Creates a new call builder for the [`removeVerifierId`] function. + pub fn removeVerifierId( + &self, + _zkCoProcessor: ::RustType, + _verifierId: alloy::sol_types::private::FixedBytes<32>, + ) -> alloy_contract::SolCallBuilder<&P, removeVerifierIdCall, N> { + self.call_builder( + &removeVerifierIdCall { + _zkCoProcessor, + _verifierId, + }, + ) + } + ///Creates a new call builder for the [`renounceOwnership`] function. + pub fn renounceOwnership( + &self, + ) -> alloy_contract::SolCallBuilder<&P, renounceOwnershipCall, N> { + self.call_builder(&renounceOwnershipCall) + } + ///Creates a new call builder for the [`requestOwnershipHandover`] function. + pub fn requestOwnershipHandover( + &self, + ) -> alloy_contract::SolCallBuilder<&P, requestOwnershipHandoverCall, N> { + self.call_builder(&requestOwnershipHandoverCall) + } + ///Creates a new call builder for the [`revokeCert`] function. + pub fn revokeCert( + &self, + _certHash: alloy::sol_types::private::FixedBytes<32>, + ) -> alloy_contract::SolCallBuilder<&P, revokeCertCall, N> { + self.call_builder(&revokeCertCall { _certHash }) + } + ///Creates a new call builder for the [`rootCert`] function. + pub fn rootCert(&self) -> alloy_contract::SolCallBuilder<&P, rootCertCall, N> { + self.call_builder(&rootCertCall) + } + ///Creates a new call builder for the [`setMaxTimeDiff`] function. + pub fn setMaxTimeDiff( + &self, + _maxTimeDiff: u64, + ) -> alloy_contract::SolCallBuilder<&P, setMaxTimeDiffCall, N> { + self.call_builder(&setMaxTimeDiffCall { _maxTimeDiff }) + } + ///Creates a new call builder for the [`setProofSubmitter`] function. + pub fn setProofSubmitter( + &self, + _proofSubmitter: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, setProofSubmitterCall, N> { + self.call_builder( + &setProofSubmitterCall { + _proofSubmitter, + }, + ) + } + ///Creates a new call builder for the [`setRootCert`] function. + pub fn setRootCert( + &self, + _rootCert: alloy::sol_types::private::FixedBytes<32>, + ) -> alloy_contract::SolCallBuilder<&P, setRootCertCall, N> { + self.call_builder(&setRootCertCall { _rootCert }) + } + ///Creates a new call builder for the [`setZkConfiguration`] function. + pub fn setZkConfiguration( + &self, + _zkCoProcessor: ::RustType, + _config: ::RustType, + _verifierProofId: alloy::sol_types::private::FixedBytes<32>, + ) -> alloy_contract::SolCallBuilder<&P, setZkConfigurationCall, N> { + self.call_builder( + &setZkConfigurationCall { + _zkCoProcessor, + _config, + _verifierProofId, + }, + ) + } + ///Creates a new call builder for the [`transferOwnership`] function. + pub fn transferOwnership( + &self, + newOwner: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, transferOwnershipCall, N> { + self.call_builder(&transferOwnershipCall { newOwner }) + } + ///Creates a new call builder for the [`trustedIntermediateCerts`] function. + pub fn trustedIntermediateCerts( + &self, + trustedCertHash: alloy::sol_types::private::FixedBytes<32>, + ) -> alloy_contract::SolCallBuilder<&P, trustedIntermediateCertsCall, N> { + self.call_builder( + &trustedIntermediateCertsCall { + trustedCertHash, + }, + ) + } + ///Creates a new call builder for the [`updateAggregatorId`] function. + pub fn updateAggregatorId( + &self, + _zkCoProcessor: ::RustType, + _newAggregatorId: alloy::sol_types::private::FixedBytes<32>, + ) -> alloy_contract::SolCallBuilder<&P, updateAggregatorIdCall, N> { + self.call_builder( + &updateAggregatorIdCall { + _zkCoProcessor, + _newAggregatorId, + }, + ) + } + ///Creates a new call builder for the [`updateVerifierId`] function. + pub fn updateVerifierId( + &self, + _zkCoProcessor: ::RustType, + _newVerifierId: alloy::sol_types::private::FixedBytes<32>, + _newVerifierProofId: alloy::sol_types::private::FixedBytes<32>, + ) -> alloy_contract::SolCallBuilder<&P, updateVerifierIdCall, N> { + self.call_builder( + &updateVerifierIdCall { + _zkCoProcessor, + _newVerifierId, + _newVerifierProofId, + }, + ) + } + ///Creates a new call builder for the [`verify`] function. + pub fn verify( + &self, + output: alloy::sol_types::private::Bytes, + zkCoprocessor: ::RustType, + proofBytes: alloy::sol_types::private::Bytes, + ) -> alloy_contract::SolCallBuilder<&P, verifyCall, N> { + self.call_builder( + &verifyCall { + output, + zkCoprocessor, + proofBytes, + }, + ) + } + ///Creates a new call builder for the [`zkConfig`] function. + pub fn zkConfig( + &self, + _0: ::RustType, + ) -> alloy_contract::SolCallBuilder<&P, zkConfigCall, N> { + self.call_builder(&zkConfigCall(_0)) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > NitroEnclaveVerifierInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + ///Creates a new event filter for the [`AggregatorIdUpdated`] event. + pub fn AggregatorIdUpdated_filter( + &self, + ) -> alloy_contract::Event<&P, AggregatorIdUpdated, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`AttestationSubmitted`] event. + pub fn AttestationSubmitted_filter( + &self, + ) -> alloy_contract::Event<&P, AttestationSubmitted, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`BatchAttestationSubmitted`] event. + pub fn BatchAttestationSubmitted_filter( + &self, + ) -> alloy_contract::Event<&P, BatchAttestationSubmitted, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`CertRevoked`] event. + pub fn CertRevoked_filter(&self) -> alloy_contract::Event<&P, CertRevoked, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`MaxTimeDiffUpdated`] event. + pub fn MaxTimeDiffUpdated_filter( + &self, + ) -> alloy_contract::Event<&P, MaxTimeDiffUpdated, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`OwnershipHandoverCanceled`] event. + pub fn OwnershipHandoverCanceled_filter( + &self, + ) -> alloy_contract::Event<&P, OwnershipHandoverCanceled, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`OwnershipHandoverRequested`] event. + pub fn OwnershipHandoverRequested_filter( + &self, + ) -> alloy_contract::Event<&P, OwnershipHandoverRequested, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`OwnershipTransferred`] event. + pub fn OwnershipTransferred_filter( + &self, + ) -> alloy_contract::Event<&P, OwnershipTransferred, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`ProgramIdRemoved`] event. + pub fn ProgramIdRemoved_filter( + &self, + ) -> alloy_contract::Event<&P, ProgramIdRemoved, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`ProofSubmitterChanged`] event. + pub fn ProofSubmitterChanged_filter( + &self, + ) -> alloy_contract::Event<&P, ProofSubmitterChanged, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`RootCertChanged`] event. + pub fn RootCertChanged_filter( + &self, + ) -> alloy_contract::Event<&P, RootCertChanged, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`VerifierIdUpdated`] event. + pub fn VerifierIdUpdated_filter( + &self, + ) -> alloy_contract::Event<&P, VerifierIdUpdated, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`ZKConfigurationUpdated`] event. + pub fn ZKConfigurationUpdated_filter( + &self, + ) -> alloy_contract::Event<&P, ZKConfigurationUpdated, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`ZkRouteAdded`] event. + pub fn ZkRouteAdded_filter(&self) -> alloy_contract::Event<&P, ZkRouteAdded, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`ZkRouteWasFrozen`] event. + pub fn ZkRouteWasFrozen_filter( + &self, + ) -> alloy_contract::Event<&P, ZkRouteWasFrozen, N> { + self.event_filter::() + } + } +} diff --git a/bindings/rust/src/op_contracts_manager.rs b/bindings/rust/src/op_contracts_manager.rs new file mode 100644 index 000000000..c48b69b2e --- /dev/null +++ b/bindings/rust/src/op_contracts_manager.rs @@ -0,0 +1,14028 @@ +///Module containing a contract's types and functions. +/** + +```solidity +library OPContractsManagerInteropMigrator { + struct GameParameters { address proposer; address challenger; uint256 maxGameDepth; uint256 splitDepth; uint256 initBond; Duration clockExtension; Duration maxClockDuration; } + struct MigrateInput { bool usePermissionlessGame; Proposal startingAnchorRoot; GameParameters gameParameters; OPContractsManager.OpChainConfig[] opChainConfigs; } +} +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod OPContractsManagerInteropMigrator { + use super::*; + use alloy::sol_types as alloy_sol_types; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + /**```solidity +struct GameParameters { address proposer; address challenger; uint256 maxGameDepth; uint256 splitDepth; uint256 initBond; Duration clockExtension; Duration maxClockDuration; } +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct GameParameters { + #[allow(missing_docs)] + pub proposer: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub challenger: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub maxGameDepth: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub splitDepth: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub initBond: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub clockExtension: ::RustType, + #[allow(missing_docs)] + pub maxClockDuration: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + Duration, + Duration, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::primitives::aliases::U256, + ::RustType, + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: GameParameters) -> Self { + ( + value.proposer, + value.challenger, + value.maxGameDepth, + value.splitDepth, + value.initBond, + value.clockExtension, + value.maxClockDuration, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for GameParameters { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + proposer: tuple.0, + challenger: tuple.1, + maxGameDepth: tuple.2, + splitDepth: tuple.3, + initBond: tuple.4, + clockExtension: tuple.5, + maxClockDuration: tuple.6, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolValue for GameParameters { + type SolType = Self; + } + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for GameParameters { + #[inline] + fn stv_to_tokens(&self) -> ::Token<'_> { + ( + ::tokenize( + &self.proposer, + ), + ::tokenize( + &self.challenger, + ), + as alloy_sol_types::SolType>::tokenize(&self.maxGameDepth), + as alloy_sol_types::SolType>::tokenize(&self.splitDepth), + as alloy_sol_types::SolType>::tokenize(&self.initBond), + ::tokenize( + &self.clockExtension, + ), + ::tokenize( + &self.maxClockDuration, + ), + ) + } + #[inline] + fn stv_abi_encoded_size(&self) -> usize { + if let Some(size) = ::ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encoded_size(&tuple) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + ::eip712_hash_struct(self) + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + if let Some(size) = ::PACKED_ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for GameParameters { + type RustType = Self; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = ::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + as alloy_sol_types::SolType>::valid_token(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + let tuple = as alloy_sol_types::SolType>::detokenize(token); + >>::from(tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolStruct for GameParameters { + const NAME: &'static str = "GameParameters"; + #[inline] + fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> { + alloy_sol_types::private::Cow::Borrowed( + "GameParameters(address proposer,address challenger,uint256 maxGameDepth,uint256 splitDepth,uint256 initBond,Duration clockExtension,Duration maxClockDuration)", + ) + } + #[inline] + fn eip712_components() -> alloy_sol_types::private::Vec< + alloy_sol_types::private::Cow<'static, str>, + > { + let mut components = alloy_sol_types::private::Vec::with_capacity(2); + components + .push(::eip712_root_type()); + components + .extend( + ::eip712_components(), + ); + components + .push(::eip712_root_type()); + components + .extend( + ::eip712_components(), + ); + components + } + #[inline] + fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec { + [ + ::eip712_data_word( + &self.proposer, + ) + .0, + ::eip712_data_word( + &self.challenger, + ) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.maxGameDepth) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.splitDepth) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.initBond) + .0, + ::eip712_data_word( + &self.clockExtension, + ) + .0, + ::eip712_data_word( + &self.maxClockDuration, + ) + .0, + ] + .concat() + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for GameParameters { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + 0usize + + ::topic_preimage_length( + &rust.proposer, + ) + + ::topic_preimage_length( + &rust.challenger, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.maxGameDepth, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.splitDepth, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.initBond, + ) + + ::topic_preimage_length( + &rust.clockExtension, + ) + + ::topic_preimage_length( + &rust.maxClockDuration, + ) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + out.reserve( + ::topic_preimage_length(rust), + ); + ::encode_topic_preimage( + &rust.proposer, + out, + ); + ::encode_topic_preimage( + &rust.challenger, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.maxGameDepth, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.splitDepth, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.initBond, + out, + ); + ::encode_topic_preimage( + &rust.clockExtension, + out, + ); + ::encode_topic_preimage( + &rust.maxClockDuration, + out, + ); + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + let mut out = alloy_sol_types::private::Vec::new(); + ::encode_topic_preimage( + rust, + &mut out, + ); + alloy_sol_types::abi::token::WordToken( + alloy_sol_types::private::keccak256(out), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + /**```solidity +struct MigrateInput { bool usePermissionlessGame; Proposal startingAnchorRoot; GameParameters gameParameters; OPContractsManager.OpChainConfig[] opChainConfigs; } +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct MigrateInput { + #[allow(missing_docs)] + pub usePermissionlessGame: bool, + #[allow(missing_docs)] + pub startingAnchorRoot: ::RustType, + #[allow(missing_docs)] + pub gameParameters: ::RustType, + #[allow(missing_docs)] + pub opChainConfigs: alloy::sol_types::private::Vec< + ::RustType, + >, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Bool, + Proposal, + GameParameters, + alloy::sol_types::sol_data::Array, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + bool, + ::RustType, + ::RustType, + alloy::sol_types::private::Vec< + ::RustType, + >, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: MigrateInput) -> Self { + ( + value.usePermissionlessGame, + value.startingAnchorRoot, + value.gameParameters, + value.opChainConfigs, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for MigrateInput { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + usePermissionlessGame: tuple.0, + startingAnchorRoot: tuple.1, + gameParameters: tuple.2, + opChainConfigs: tuple.3, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolValue for MigrateInput { + type SolType = Self; + } + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for MigrateInput { + #[inline] + fn stv_to_tokens(&self) -> ::Token<'_> { + ( + ::tokenize( + &self.usePermissionlessGame, + ), + ::tokenize( + &self.startingAnchorRoot, + ), + ::tokenize( + &self.gameParameters, + ), + as alloy_sol_types::SolType>::tokenize(&self.opChainConfigs), + ) + } + #[inline] + fn stv_abi_encoded_size(&self) -> usize { + if let Some(size) = ::ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encoded_size(&tuple) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + ::eip712_hash_struct(self) + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + if let Some(size) = ::PACKED_ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for MigrateInput { + type RustType = Self; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = ::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + as alloy_sol_types::SolType>::valid_token(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + let tuple = as alloy_sol_types::SolType>::detokenize(token); + >>::from(tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolStruct for MigrateInput { + const NAME: &'static str = "MigrateInput"; + #[inline] + fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> { + alloy_sol_types::private::Cow::Borrowed( + "MigrateInput(bool usePermissionlessGame,Proposal startingAnchorRoot,GameParameters gameParameters,OPContractsManager.OpChainConfig[] opChainConfigs)", + ) + } + #[inline] + fn eip712_components() -> alloy_sol_types::private::Vec< + alloy_sol_types::private::Cow<'static, str>, + > { + let mut components = alloy_sol_types::private::Vec::with_capacity(3); + components + .push(::eip712_root_type()); + components + .extend( + ::eip712_components(), + ); + components + .push( + ::eip712_root_type(), + ); + components + .extend( + ::eip712_components(), + ); + components + .push( + ::eip712_root_type(), + ); + components + .extend( + ::eip712_components(), + ); + components + } + #[inline] + fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec { + [ + ::eip712_data_word( + &self.usePermissionlessGame, + ) + .0, + ::eip712_data_word( + &self.startingAnchorRoot, + ) + .0, + ::eip712_data_word( + &self.gameParameters, + ) + .0, + as alloy_sol_types::SolType>::eip712_data_word( + &self.opChainConfigs, + ) + .0, + ] + .concat() + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for MigrateInput { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + 0usize + + ::topic_preimage_length( + &rust.usePermissionlessGame, + ) + + ::topic_preimage_length( + &rust.startingAnchorRoot, + ) + + ::topic_preimage_length( + &rust.gameParameters, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.opChainConfigs, + ) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + out.reserve( + ::topic_preimage_length(rust), + ); + ::encode_topic_preimage( + &rust.usePermissionlessGame, + out, + ); + ::encode_topic_preimage( + &rust.startingAnchorRoot, + out, + ); + ::encode_topic_preimage( + &rust.gameParameters, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.opChainConfigs, + out, + ); + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + let mut out = alloy_sol_types::private::Vec::new(); + ::encode_topic_preimage( + rust, + &mut out, + ); + alloy_sol_types::abi::token::WordToken( + alloy_sol_types::private::keccak256(out), + ) + } + } + }; + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`OPContractsManagerInteropMigrator`](self) contract instance. + +See the [wrapper's documentation](`OPContractsManagerInteropMigratorInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> OPContractsManagerInteropMigratorInstance { + OPContractsManagerInteropMigratorInstance::::new(address, __provider) + } + /**A [`OPContractsManagerInteropMigrator`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`OPContractsManagerInteropMigrator`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct OPContractsManagerInteropMigratorInstance< + P, + N = alloy_contract::private::Ethereum, + > { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for OPContractsManagerInteropMigratorInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("OPContractsManagerInteropMigratorInstance") + .field(&self.address) + .finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > OPContractsManagerInteropMigratorInstance { + /**Creates a new wrapper around an on-chain [`OPContractsManagerInteropMigrator`](self) contract instance. + +See the [wrapper's documentation](`OPContractsManagerInteropMigratorInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl OPContractsManagerInteropMigratorInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider( + self, + ) -> OPContractsManagerInteropMigratorInstance { + OPContractsManagerInteropMigratorInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > OPContractsManagerInteropMigratorInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > OPContractsManagerInteropMigratorInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + } +} +///Module containing a contract's types and functions. +/** + +```solidity +library OPContractsManagerStandardValidator { + struct ValidationInput { address sysCfg; bytes32 absolutePrestate; uint256 l2ChainID; address proposer; } + struct ValidationInputDev { address sysCfg; bytes32 cannonPrestate; bytes32 cannonKonaPrestate; uint256 l2ChainID; address proposer; } + struct ValidationOverrides { address l1PAOMultisig; address challenger; } +} +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod OPContractsManagerStandardValidator { + use super::*; + use alloy::sol_types as alloy_sol_types; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**```solidity +struct ValidationInput { address sysCfg; bytes32 absolutePrestate; uint256 l2ChainID; address proposer; } +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ValidationInput { + #[allow(missing_docs)] + pub sysCfg: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub absolutePrestate: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub l2ChainID: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub proposer: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Address, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::FixedBytes<32>, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::Address, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ValidationInput) -> Self { + (value.sysCfg, value.absolutePrestate, value.l2ChainID, value.proposer) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ValidationInput { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + sysCfg: tuple.0, + absolutePrestate: tuple.1, + l2ChainID: tuple.2, + proposer: tuple.3, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolValue for ValidationInput { + type SolType = Self; + } + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for ValidationInput { + #[inline] + fn stv_to_tokens(&self) -> ::Token<'_> { + ( + ::tokenize( + &self.sysCfg, + ), + as alloy_sol_types::SolType>::tokenize(&self.absolutePrestate), + as alloy_sol_types::SolType>::tokenize(&self.l2ChainID), + ::tokenize( + &self.proposer, + ), + ) + } + #[inline] + fn stv_abi_encoded_size(&self) -> usize { + if let Some(size) = ::ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encoded_size(&tuple) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + ::eip712_hash_struct(self) + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + if let Some(size) = ::PACKED_ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for ValidationInput { + type RustType = Self; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = ::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + as alloy_sol_types::SolType>::valid_token(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + let tuple = as alloy_sol_types::SolType>::detokenize(token); + >>::from(tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolStruct for ValidationInput { + const NAME: &'static str = "ValidationInput"; + #[inline] + fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> { + alloy_sol_types::private::Cow::Borrowed( + "ValidationInput(address sysCfg,bytes32 absolutePrestate,uint256 l2ChainID,address proposer)", + ) + } + #[inline] + fn eip712_components() -> alloy_sol_types::private::Vec< + alloy_sol_types::private::Cow<'static, str>, + > { + alloy_sol_types::private::Vec::new() + } + #[inline] + fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> { + ::eip712_root_type() + } + #[inline] + fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec { + [ + ::eip712_data_word( + &self.sysCfg, + ) + .0, + as alloy_sol_types::SolType>::eip712_data_word( + &self.absolutePrestate, + ) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.l2ChainID) + .0, + ::eip712_data_word( + &self.proposer, + ) + .0, + ] + .concat() + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for ValidationInput { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + 0usize + + ::topic_preimage_length( + &rust.sysCfg, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.absolutePrestate, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.l2ChainID, + ) + + ::topic_preimage_length( + &rust.proposer, + ) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + out.reserve( + ::topic_preimage_length(rust), + ); + ::encode_topic_preimage( + &rust.sysCfg, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.absolutePrestate, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.l2ChainID, + out, + ); + ::encode_topic_preimage( + &rust.proposer, + out, + ); + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + let mut out = alloy_sol_types::private::Vec::new(); + ::encode_topic_preimage( + rust, + &mut out, + ); + alloy_sol_types::abi::token::WordToken( + alloy_sol_types::private::keccak256(out), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**```solidity +struct ValidationInputDev { address sysCfg; bytes32 cannonPrestate; bytes32 cannonKonaPrestate; uint256 l2ChainID; address proposer; } +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ValidationInputDev { + #[allow(missing_docs)] + pub sysCfg: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub cannonPrestate: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub cannonKonaPrestate: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub l2ChainID: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub proposer: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Address, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::FixedBytes<32>, + alloy::sol_types::private::FixedBytes<32>, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::Address, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ValidationInputDev) -> Self { + ( + value.sysCfg, + value.cannonPrestate, + value.cannonKonaPrestate, + value.l2ChainID, + value.proposer, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ValidationInputDev { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + sysCfg: tuple.0, + cannonPrestate: tuple.1, + cannonKonaPrestate: tuple.2, + l2ChainID: tuple.3, + proposer: tuple.4, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolValue for ValidationInputDev { + type SolType = Self; + } + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for ValidationInputDev { + #[inline] + fn stv_to_tokens(&self) -> ::Token<'_> { + ( + ::tokenize( + &self.sysCfg, + ), + as alloy_sol_types::SolType>::tokenize(&self.cannonPrestate), + as alloy_sol_types::SolType>::tokenize(&self.cannonKonaPrestate), + as alloy_sol_types::SolType>::tokenize(&self.l2ChainID), + ::tokenize( + &self.proposer, + ), + ) + } + #[inline] + fn stv_abi_encoded_size(&self) -> usize { + if let Some(size) = ::ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encoded_size(&tuple) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + ::eip712_hash_struct(self) + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + if let Some(size) = ::PACKED_ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for ValidationInputDev { + type RustType = Self; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = ::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + as alloy_sol_types::SolType>::valid_token(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + let tuple = as alloy_sol_types::SolType>::detokenize(token); + >>::from(tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolStruct for ValidationInputDev { + const NAME: &'static str = "ValidationInputDev"; + #[inline] + fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> { + alloy_sol_types::private::Cow::Borrowed( + "ValidationInputDev(address sysCfg,bytes32 cannonPrestate,bytes32 cannonKonaPrestate,uint256 l2ChainID,address proposer)", + ) + } + #[inline] + fn eip712_components() -> alloy_sol_types::private::Vec< + alloy_sol_types::private::Cow<'static, str>, + > { + alloy_sol_types::private::Vec::new() + } + #[inline] + fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> { + ::eip712_root_type() + } + #[inline] + fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec { + [ + ::eip712_data_word( + &self.sysCfg, + ) + .0, + as alloy_sol_types::SolType>::eip712_data_word( + &self.cannonPrestate, + ) + .0, + as alloy_sol_types::SolType>::eip712_data_word( + &self.cannonKonaPrestate, + ) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.l2ChainID) + .0, + ::eip712_data_word( + &self.proposer, + ) + .0, + ] + .concat() + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for ValidationInputDev { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + 0usize + + ::topic_preimage_length( + &rust.sysCfg, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.cannonPrestate, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.cannonKonaPrestate, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.l2ChainID, + ) + + ::topic_preimage_length( + &rust.proposer, + ) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + out.reserve( + ::topic_preimage_length(rust), + ); + ::encode_topic_preimage( + &rust.sysCfg, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.cannonPrestate, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.cannonKonaPrestate, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.l2ChainID, + out, + ); + ::encode_topic_preimage( + &rust.proposer, + out, + ); + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + let mut out = alloy_sol_types::private::Vec::new(); + ::encode_topic_preimage( + rust, + &mut out, + ); + alloy_sol_types::abi::token::WordToken( + alloy_sol_types::private::keccak256(out), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**```solidity +struct ValidationOverrides { address l1PAOMultisig; address challenger; } +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ValidationOverrides { + #[allow(missing_docs)] + pub l1PAOMultisig: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub challenger: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ValidationOverrides) -> Self { + (value.l1PAOMultisig, value.challenger) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ValidationOverrides { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + l1PAOMultisig: tuple.0, + challenger: tuple.1, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolValue for ValidationOverrides { + type SolType = Self; + } + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for ValidationOverrides { + #[inline] + fn stv_to_tokens(&self) -> ::Token<'_> { + ( + ::tokenize( + &self.l1PAOMultisig, + ), + ::tokenize( + &self.challenger, + ), + ) + } + #[inline] + fn stv_abi_encoded_size(&self) -> usize { + if let Some(size) = ::ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encoded_size(&tuple) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + ::eip712_hash_struct(self) + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + if let Some(size) = ::PACKED_ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for ValidationOverrides { + type RustType = Self; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = ::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + as alloy_sol_types::SolType>::valid_token(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + let tuple = as alloy_sol_types::SolType>::detokenize(token); + >>::from(tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolStruct for ValidationOverrides { + const NAME: &'static str = "ValidationOverrides"; + #[inline] + fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> { + alloy_sol_types::private::Cow::Borrowed( + "ValidationOverrides(address l1PAOMultisig,address challenger)", + ) + } + #[inline] + fn eip712_components() -> alloy_sol_types::private::Vec< + alloy_sol_types::private::Cow<'static, str>, + > { + alloy_sol_types::private::Vec::new() + } + #[inline] + fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> { + ::eip712_root_type() + } + #[inline] + fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec { + [ + ::eip712_data_word( + &self.l1PAOMultisig, + ) + .0, + ::eip712_data_word( + &self.challenger, + ) + .0, + ] + .concat() + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for ValidationOverrides { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + 0usize + + ::topic_preimage_length( + &rust.l1PAOMultisig, + ) + + ::topic_preimage_length( + &rust.challenger, + ) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + out.reserve( + ::topic_preimage_length(rust), + ); + ::encode_topic_preimage( + &rust.l1PAOMultisig, + out, + ); + ::encode_topic_preimage( + &rust.challenger, + out, + ); + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + let mut out = alloy_sol_types::private::Vec::new(); + ::encode_topic_preimage( + rust, + &mut out, + ); + alloy_sol_types::abi::token::WordToken( + alloy_sol_types::private::keccak256(out), + ) + } + } + }; + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`OPContractsManagerStandardValidator`](self) contract instance. + +See the [wrapper's documentation](`OPContractsManagerStandardValidatorInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> OPContractsManagerStandardValidatorInstance { + OPContractsManagerStandardValidatorInstance::::new(address, __provider) + } + /**A [`OPContractsManagerStandardValidator`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`OPContractsManagerStandardValidator`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct OPContractsManagerStandardValidatorInstance< + P, + N = alloy_contract::private::Ethereum, + > { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for OPContractsManagerStandardValidatorInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("OPContractsManagerStandardValidatorInstance") + .field(&self.address) + .finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > OPContractsManagerStandardValidatorInstance { + /**Creates a new wrapper around an on-chain [`OPContractsManagerStandardValidator`](self) contract instance. + +See the [wrapper's documentation](`OPContractsManagerStandardValidatorInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl OPContractsManagerStandardValidatorInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider( + self, + ) -> OPContractsManagerStandardValidatorInstance { + OPContractsManagerStandardValidatorInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > OPContractsManagerStandardValidatorInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > OPContractsManagerStandardValidatorInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + } +} +/** + +Generated by the following Solidity interface... +```solidity +library OPContractsManagerInteropMigrator { + struct GameParameters { + address proposer; + address challenger; + uint256 maxGameDepth; + uint256 splitDepth; + uint256 initBond; + Duration clockExtension; + Duration maxClockDuration; + } + struct MigrateInput { + bool usePermissionlessGame; + Proposal startingAnchorRoot; + GameParameters gameParameters; + OPContractsManager.OpChainConfig[] opChainConfigs; + } +} + +library OPContractsManagerStandardValidator { + struct ValidationInput { + address sysCfg; + bytes32 absolutePrestate; + uint256 l2ChainID; + address proposer; + } + struct ValidationInputDev { + address sysCfg; + bytes32 cannonPrestate; + bytes32 cannonKonaPrestate; + uint256 l2ChainID; + address proposer; + } + struct ValidationOverrides { + address l1PAOMultisig; + address challenger; + } +} + +interface OPContractsManager { + type Claim is bytes32; + type Duration is uint64; + type GameType is uint32; + type Hash is bytes32; + struct AddGameInput { + string saltMixer; + address systemConfig; + address delayedWETH; + GameType disputeGameType; + Claim disputeAbsolutePrestate; + uint256 disputeMaxGameDepth; + uint256 disputeSplitDepth; + Duration disputeClockExtension; + Duration disputeMaxClockDuration; + uint256 initialBond; + address vm; + bool permissioned; + } + struct AddGameOutput { + address delayedWETH; + address faultDisputeGame; + } + struct Blueprints { + address addressManager; + address proxy; + address proxyAdmin; + address l1ChugSplashProxy; + address resolvedDelegateProxy; + } + struct DeployInput { + Roles roles; + uint32 basefeeScalar; + uint32 blobBasefeeScalar; + uint256 l2ChainId; + bytes startingAnchorRoot; + string saltMixer; + uint64 gasLimit; + GameType disputeGameType; + Claim disputeAbsolutePrestate; + uint256 disputeMaxGameDepth; + uint256 disputeSplitDepth; + Duration disputeClockExtension; + Duration disputeMaxClockDuration; + bool useCustomGasToken; + } + struct DeployOutput { + address opChainProxyAdmin; + address addressManager; + address l1ERC721BridgeProxy; + address systemConfigProxy; + address optimismMintableERC20FactoryProxy; + address l1StandardBridgeProxy; + address l1CrossDomainMessengerProxy; + address ethLockboxProxy; + address optimismPortalProxy; + address disputeGameFactoryProxy; + address anchorStateRegistryProxy; + address faultDisputeGame; + address permissionedDisputeGame; + address delayedWETHPermissionedGameProxy; + address delayedWETHPermissionlessGameProxy; + } + struct Implementations { + address superchainConfigImpl; + address protocolVersionsImpl; + address l1ERC721BridgeImpl; + address optimismPortalImpl; + address optimismPortalInteropImpl; + address ethLockboxImpl; + address systemConfigImpl; + address optimismMintableERC20FactoryImpl; + address l1CrossDomainMessengerImpl; + address l1StandardBridgeImpl; + address disputeGameFactoryImpl; + address anchorStateRegistryImpl; + address delayedWETHImpl; + address mipsImpl; + address faultDisputeGameV2Impl; + address permissionedDisputeGameV2Impl; + address superFaultDisputeGameImpl; + address superPermissionedDisputeGameImpl; + } + struct OpChainConfig { + address systemConfigProxy; + Claim cannonPrestate; + Claim cannonKonaPrestate; + } + struct Proposal { + Hash root; + uint256 l2SequenceNumber; + } + struct Roles { + address opChainProxyAdminOwner; + address systemConfigOwner; + address batcher; + address unsafeBlockSigner; + address proposer; + address challenger; + } + struct UpdatePrestateInput { + address systemConfigProxy; + Claim cannonPrestate; + Claim cannonKonaPrestate; + } + + error AddressHasNoCode(address who); + error AddressNotFound(address who); + error AlreadyReleased(); + error InvalidChainId(); + error InvalidDevFeatureAccess(bytes32 devFeature); + error InvalidGameConfigs(); + error InvalidRoleAddress(string role); + error InvalidStartingAnchorRoot(); + error LatestReleaseNotSet(); + error OnlyDelegatecall(); + error PrestateNotSet(); + error PrestateRequired(); + error SuperchainConfigMismatch(address systemConfig); + error SuperchainProxyAdminMismatch(); + + constructor(address _opcmGameTypeAdder, address _opcmDeployer, address _opcmUpgrader, address _opcmInteropMigrator, address _opcmStandardValidator, address _superchainConfig, address _protocolVersions); + + function addGameType(AddGameInput[] memory _gameConfigs) external returns (AddGameOutput[] memory); + function blueprints() external view returns (Blueprints memory); + function chainIdToBatchInboxAddress(uint256 _l2ChainId) external view returns (address); + function deploy(DeployInput memory _input) external returns (DeployOutput memory); + function devFeatureBitmap() external view returns (bytes32); + function implementations() external view returns (Implementations memory); + function isDevFeatureEnabled(bytes32 _feature) external view returns (bool); + function migrate(OPContractsManagerInteropMigrator.MigrateInput memory _input) external; + function opcmDeployer() external view returns (address); + function opcmGameTypeAdder() external view returns (address); + function opcmInteropMigrator() external view returns (address); + function opcmStandardValidator() external view returns (address); + function opcmUpgrader() external view returns (address); + function protocolVersions() external view returns (address); + function superchainConfig() external view returns (address); + function updatePrestate(UpdatePrestateInput[] memory _prestateUpdateInputs) external; + function upgrade(OpChainConfig[] memory _opChainConfigs) external; + function upgradeSuperchainConfig(address _superchainConfig) external; + function validate(OPContractsManagerStandardValidator.ValidationInput memory _input, bool _allowFailure) external view returns (string memory); + function validate(OPContractsManagerStandardValidator.ValidationInputDev memory _input, bool _allowFailure) external view returns (string memory); + function validateWithOverrides(OPContractsManagerStandardValidator.ValidationInput memory _input, bool _allowFailure, OPContractsManagerStandardValidator.ValidationOverrides memory _overrides) external view returns (string memory); + function validateWithOverrides(OPContractsManagerStandardValidator.ValidationInputDev memory _input, bool _allowFailure, OPContractsManagerStandardValidator.ValidationOverrides memory _overrides) external view returns (string memory); + function version() external pure returns (string memory); +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "constructor", + "inputs": [ + { + "name": "_opcmGameTypeAdder", + "type": "address", + "internalType": "contract OPContractsManagerGameTypeAdder" + }, + { + "name": "_opcmDeployer", + "type": "address", + "internalType": "contract OPContractsManagerDeployer" + }, + { + "name": "_opcmUpgrader", + "type": "address", + "internalType": "contract OPContractsManagerUpgrader" + }, + { + "name": "_opcmInteropMigrator", + "type": "address", + "internalType": "contract OPContractsManagerInteropMigrator" + }, + { + "name": "_opcmStandardValidator", + "type": "address", + "internalType": "contract OPContractsManagerStandardValidator" + }, + { + "name": "_superchainConfig", + "type": "address", + "internalType": "contract ISuperchainConfig" + }, + { + "name": "_protocolVersions", + "type": "address", + "internalType": "contract IProtocolVersions" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "addGameType", + "inputs": [ + { + "name": "_gameConfigs", + "type": "tuple[]", + "internalType": "struct OPContractsManager.AddGameInput[]", + "components": [ + { + "name": "saltMixer", + "type": "string", + "internalType": "string" + }, + { + "name": "systemConfig", + "type": "address", + "internalType": "contract ISystemConfig" + }, + { + "name": "delayedWETH", + "type": "address", + "internalType": "contract IDelayedWETH" + }, + { + "name": "disputeGameType", + "type": "uint32", + "internalType": "GameType" + }, + { + "name": "disputeAbsolutePrestate", + "type": "bytes32", + "internalType": "Claim" + }, + { + "name": "disputeMaxGameDepth", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "disputeSplitDepth", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "disputeClockExtension", + "type": "uint64", + "internalType": "Duration" + }, + { + "name": "disputeMaxClockDuration", + "type": "uint64", + "internalType": "Duration" + }, + { + "name": "initialBond", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "vm", + "type": "address", + "internalType": "contract IBigStepper" + }, + { + "name": "permissioned", + "type": "bool", + "internalType": "bool" + } + ] + } + ], + "outputs": [ + { + "name": "", + "type": "tuple[]", + "internalType": "struct OPContractsManager.AddGameOutput[]", + "components": [ + { + "name": "delayedWETH", + "type": "address", + "internalType": "contract IDelayedWETH" + }, + { + "name": "faultDisputeGame", + "type": "address", + "internalType": "contract IFaultDisputeGame" + } + ] + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "blueprints", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "tuple", + "internalType": "struct OPContractsManager.Blueprints", + "components": [ + { + "name": "addressManager", + "type": "address", + "internalType": "address" + }, + { + "name": "proxy", + "type": "address", + "internalType": "address" + }, + { + "name": "proxyAdmin", + "type": "address", + "internalType": "address" + }, + { + "name": "l1ChugSplashProxy", + "type": "address", + "internalType": "address" + }, + { + "name": "resolvedDelegateProxy", + "type": "address", + "internalType": "address" + } + ] + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "chainIdToBatchInboxAddress", + "inputs": [ + { + "name": "_l2ChainId", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "deploy", + "inputs": [ + { + "name": "_input", + "type": "tuple", + "internalType": "struct OPContractsManager.DeployInput", + "components": [ + { + "name": "roles", + "type": "tuple", + "internalType": "struct OPContractsManager.Roles", + "components": [ + { + "name": "opChainProxyAdminOwner", + "type": "address", + "internalType": "address" + }, + { + "name": "systemConfigOwner", + "type": "address", + "internalType": "address" + }, + { + "name": "batcher", + "type": "address", + "internalType": "address" + }, + { + "name": "unsafeBlockSigner", + "type": "address", + "internalType": "address" + }, + { + "name": "proposer", + "type": "address", + "internalType": "address" + }, + { + "name": "challenger", + "type": "address", + "internalType": "address" + } + ] + }, + { + "name": "basefeeScalar", + "type": "uint32", + "internalType": "uint32" + }, + { + "name": "blobBasefeeScalar", + "type": "uint32", + "internalType": "uint32" + }, + { + "name": "l2ChainId", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "startingAnchorRoot", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "saltMixer", + "type": "string", + "internalType": "string" + }, + { + "name": "gasLimit", + "type": "uint64", + "internalType": "uint64" + }, + { + "name": "disputeGameType", + "type": "uint32", + "internalType": "GameType" + }, + { + "name": "disputeAbsolutePrestate", + "type": "bytes32", + "internalType": "Claim" + }, + { + "name": "disputeMaxGameDepth", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "disputeSplitDepth", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "disputeClockExtension", + "type": "uint64", + "internalType": "Duration" + }, + { + "name": "disputeMaxClockDuration", + "type": "uint64", + "internalType": "Duration" + }, + { + "name": "useCustomGasToken", + "type": "bool", + "internalType": "bool" + } + ] + } + ], + "outputs": [ + { + "name": "", + "type": "tuple", + "internalType": "struct OPContractsManager.DeployOutput", + "components": [ + { + "name": "opChainProxyAdmin", + "type": "address", + "internalType": "contract IProxyAdmin" + }, + { + "name": "addressManager", + "type": "address", + "internalType": "contract IAddressManager" + }, + { + "name": "l1ERC721BridgeProxy", + "type": "address", + "internalType": "contract IL1ERC721Bridge" + }, + { + "name": "systemConfigProxy", + "type": "address", + "internalType": "contract ISystemConfig" + }, + { + "name": "optimismMintableERC20FactoryProxy", + "type": "address", + "internalType": "contract IOptimismMintableERC20Factory" + }, + { + "name": "l1StandardBridgeProxy", + "type": "address", + "internalType": "contract IL1StandardBridge" + }, + { + "name": "l1CrossDomainMessengerProxy", + "type": "address", + "internalType": "contract IL1CrossDomainMessenger" + }, + { + "name": "ethLockboxProxy", + "type": "address", + "internalType": "contract IETHLockbox" + }, + { + "name": "optimismPortalProxy", + "type": "address", + "internalType": "contract IOptimismPortal2" + }, + { + "name": "disputeGameFactoryProxy", + "type": "address", + "internalType": "contract IDisputeGameFactory" + }, + { + "name": "anchorStateRegistryProxy", + "type": "address", + "internalType": "contract IAnchorStateRegistry" + }, + { + "name": "faultDisputeGame", + "type": "address", + "internalType": "contract IFaultDisputeGame" + }, + { + "name": "permissionedDisputeGame", + "type": "address", + "internalType": "contract IPermissionedDisputeGame" + }, + { + "name": "delayedWETHPermissionedGameProxy", + "type": "address", + "internalType": "contract IDelayedWETH" + }, + { + "name": "delayedWETHPermissionlessGameProxy", + "type": "address", + "internalType": "contract IDelayedWETH" + } + ] + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "devFeatureBitmap", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "implementations", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "tuple", + "internalType": "struct OPContractsManager.Implementations", + "components": [ + { + "name": "superchainConfigImpl", + "type": "address", + "internalType": "address" + }, + { + "name": "protocolVersionsImpl", + "type": "address", + "internalType": "address" + }, + { + "name": "l1ERC721BridgeImpl", + "type": "address", + "internalType": "address" + }, + { + "name": "optimismPortalImpl", + "type": "address", + "internalType": "address" + }, + { + "name": "optimismPortalInteropImpl", + "type": "address", + "internalType": "address" + }, + { + "name": "ethLockboxImpl", + "type": "address", + "internalType": "address" + }, + { + "name": "systemConfigImpl", + "type": "address", + "internalType": "address" + }, + { + "name": "optimismMintableERC20FactoryImpl", + "type": "address", + "internalType": "address" + }, + { + "name": "l1CrossDomainMessengerImpl", + "type": "address", + "internalType": "address" + }, + { + "name": "l1StandardBridgeImpl", + "type": "address", + "internalType": "address" + }, + { + "name": "disputeGameFactoryImpl", + "type": "address", + "internalType": "address" + }, + { + "name": "anchorStateRegistryImpl", + "type": "address", + "internalType": "address" + }, + { + "name": "delayedWETHImpl", + "type": "address", + "internalType": "address" + }, + { + "name": "mipsImpl", + "type": "address", + "internalType": "address" + }, + { + "name": "faultDisputeGameV2Impl", + "type": "address", + "internalType": "address" + }, + { + "name": "permissionedDisputeGameV2Impl", + "type": "address", + "internalType": "address" + }, + { + "name": "superFaultDisputeGameImpl", + "type": "address", + "internalType": "address" + }, + { + "name": "superPermissionedDisputeGameImpl", + "type": "address", + "internalType": "address" + } + ] + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "isDevFeatureEnabled", + "inputs": [ + { + "name": "_feature", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "migrate", + "inputs": [ + { + "name": "_input", + "type": "tuple", + "internalType": "struct OPContractsManagerInteropMigrator.MigrateInput", + "components": [ + { + "name": "usePermissionlessGame", + "type": "bool", + "internalType": "bool" + }, + { + "name": "startingAnchorRoot", + "type": "tuple", + "internalType": "struct Proposal", + "components": [ + { + "name": "root", + "type": "bytes32", + "internalType": "Hash" + }, + { + "name": "l2SequenceNumber", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { + "name": "gameParameters", + "type": "tuple", + "internalType": "struct OPContractsManagerInteropMigrator.GameParameters", + "components": [ + { + "name": "proposer", + "type": "address", + "internalType": "address" + }, + { + "name": "challenger", + "type": "address", + "internalType": "address" + }, + { + "name": "maxGameDepth", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "splitDepth", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "initBond", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "clockExtension", + "type": "uint64", + "internalType": "Duration" + }, + { + "name": "maxClockDuration", + "type": "uint64", + "internalType": "Duration" + } + ] + }, + { + "name": "opChainConfigs", + "type": "tuple[]", + "internalType": "struct OPContractsManager.OpChainConfig[]", + "components": [ + { + "name": "systemConfigProxy", + "type": "address", + "internalType": "contract ISystemConfig" + }, + { + "name": "cannonPrestate", + "type": "bytes32", + "internalType": "Claim" + }, + { + "name": "cannonKonaPrestate", + "type": "bytes32", + "internalType": "Claim" + } + ] + } + ] + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "opcmDeployer", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract OPContractsManagerDeployer" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "opcmGameTypeAdder", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract OPContractsManagerGameTypeAdder" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "opcmInteropMigrator", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract OPContractsManagerInteropMigrator" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "opcmStandardValidator", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract OPContractsManagerStandardValidator" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "opcmUpgrader", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract OPContractsManagerUpgrader" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "protocolVersions", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract IProtocolVersions" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "superchainConfig", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract ISuperchainConfig" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "updatePrestate", + "inputs": [ + { + "name": "_prestateUpdateInputs", + "type": "tuple[]", + "internalType": "struct OPContractsManager.UpdatePrestateInput[]", + "components": [ + { + "name": "systemConfigProxy", + "type": "address", + "internalType": "contract ISystemConfig" + }, + { + "name": "cannonPrestate", + "type": "bytes32", + "internalType": "Claim" + }, + { + "name": "cannonKonaPrestate", + "type": "bytes32", + "internalType": "Claim" + } + ] + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "upgrade", + "inputs": [ + { + "name": "_opChainConfigs", + "type": "tuple[]", + "internalType": "struct OPContractsManager.OpChainConfig[]", + "components": [ + { + "name": "systemConfigProxy", + "type": "address", + "internalType": "contract ISystemConfig" + }, + { + "name": "cannonPrestate", + "type": "bytes32", + "internalType": "Claim" + }, + { + "name": "cannonKonaPrestate", + "type": "bytes32", + "internalType": "Claim" + } + ] + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "upgradeSuperchainConfig", + "inputs": [ + { + "name": "_superchainConfig", + "type": "address", + "internalType": "contract ISuperchainConfig" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "validate", + "inputs": [ + { + "name": "_input", + "type": "tuple", + "internalType": "struct OPContractsManagerStandardValidator.ValidationInput", + "components": [ + { + "name": "sysCfg", + "type": "address", + "internalType": "contract ISystemConfig" + }, + { + "name": "absolutePrestate", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "l2ChainID", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "proposer", + "type": "address", + "internalType": "address" + } + ] + }, + { + "name": "_allowFailure", + "type": "bool", + "internalType": "bool" + } + ], + "outputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "validate", + "inputs": [ + { + "name": "_input", + "type": "tuple", + "internalType": "struct OPContractsManagerStandardValidator.ValidationInputDev", + "components": [ + { + "name": "sysCfg", + "type": "address", + "internalType": "contract ISystemConfig" + }, + { + "name": "cannonPrestate", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "cannonKonaPrestate", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "l2ChainID", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "proposer", + "type": "address", + "internalType": "address" + } + ] + }, + { + "name": "_allowFailure", + "type": "bool", + "internalType": "bool" + } + ], + "outputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "validateWithOverrides", + "inputs": [ + { + "name": "_input", + "type": "tuple", + "internalType": "struct OPContractsManagerStandardValidator.ValidationInput", + "components": [ + { + "name": "sysCfg", + "type": "address", + "internalType": "contract ISystemConfig" + }, + { + "name": "absolutePrestate", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "l2ChainID", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "proposer", + "type": "address", + "internalType": "address" + } + ] + }, + { + "name": "_allowFailure", + "type": "bool", + "internalType": "bool" + }, + { + "name": "_overrides", + "type": "tuple", + "internalType": "struct OPContractsManagerStandardValidator.ValidationOverrides", + "components": [ + { + "name": "l1PAOMultisig", + "type": "address", + "internalType": "address" + }, + { + "name": "challenger", + "type": "address", + "internalType": "address" + } + ] + } + ], + "outputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "validateWithOverrides", + "inputs": [ + { + "name": "_input", + "type": "tuple", + "internalType": "struct OPContractsManagerStandardValidator.ValidationInputDev", + "components": [ + { + "name": "sysCfg", + "type": "address", + "internalType": "contract ISystemConfig" + }, + { + "name": "cannonPrestate", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "cannonKonaPrestate", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "l2ChainID", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "proposer", + "type": "address", + "internalType": "address" + } + ] + }, + { + "name": "_allowFailure", + "type": "bool", + "internalType": "bool" + }, + { + "name": "_overrides", + "type": "tuple", + "internalType": "struct OPContractsManagerStandardValidator.ValidationOverrides", + "components": [ + { + "name": "l1PAOMultisig", + "type": "address", + "internalType": "address" + }, + { + "name": "challenger", + "type": "address", + "internalType": "address" + } + ] + } + ], + "outputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "version", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "pure" + }, + { + "type": "error", + "name": "AddressHasNoCode", + "inputs": [ + { + "name": "who", + "type": "address", + "internalType": "address" + } + ] + }, + { + "type": "error", + "name": "AddressNotFound", + "inputs": [ + { + "name": "who", + "type": "address", + "internalType": "address" + } + ] + }, + { + "type": "error", + "name": "AlreadyReleased", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidChainId", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidDevFeatureAccess", + "inputs": [ + { + "name": "devFeature", + "type": "bytes32", + "internalType": "bytes32" + } + ] + }, + { + "type": "error", + "name": "InvalidGameConfigs", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidRoleAddress", + "inputs": [ + { + "name": "role", + "type": "string", + "internalType": "string" + } + ] + }, + { + "type": "error", + "name": "InvalidStartingAnchorRoot", + "inputs": [] + }, + { + "type": "error", + "name": "LatestReleaseNotSet", + "inputs": [] + }, + { + "type": "error", + "name": "OnlyDelegatecall", + "inputs": [] + }, + { + "type": "error", + "name": "PrestateNotSet", + "inputs": [] + }, + { + "type": "error", + "name": "PrestateRequired", + "inputs": [] + }, + { + "type": "error", + "name": "SuperchainConfigMismatch", + "inputs": [ + { + "name": "systemConfig", + "type": "address", + "internalType": "contract ISystemConfig" + } + ] + }, + { + "type": "error", + "name": "SuperchainProxyAdminMismatch", + "inputs": [] + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod OPContractsManager { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x6101806040523480156200001257600080fd5b5060405162002d9138038062002d91833981016040819052620000359162000306565b60405163b6a4cd2160e01b81526001600160a01b03838116600483015287169063b6a4cd219060240160006040518083038186803b1580156200007757600080fd5b505afa1580156200008c573d6000803e3d6000fd5b505060405163b6a4cd2160e01b81526001600160a01b0384811660048301528916925063b6a4cd21915060240160006040518083038186803b158015620000d257600080fd5b505afa158015620000e7573d6000803e3d6000fd5b505060405163b6a4cd2160e01b81526001600160a01b038a811660048301528916925063b6a4cd21915060240160006040518083038186803b1580156200012d57600080fd5b505afa15801562000142573d6000803e3d6000fd5b505060405163b6a4cd2160e01b81526001600160a01b03891660048201819052925063b6a4cd21915060240160006040518083038186803b1580156200018757600080fd5b505afa1580156200019c573d6000803e3d6000fd5b505060405163b6a4cd2160e01b81526001600160a01b0388811660048301528916925063b6a4cd21915060240160006040518083038186803b158015620001e257600080fd5b505afa158015620001f7573d6000803e3d6000fd5b505060405163b6a4cd2160e01b81526001600160a01b0387811660048301528916925063b6a4cd21915060240160006040518083038186803b1580156200023d57600080fd5b505afa15801562000252573d6000803e3d6000fd5b505060405163b6a4cd2160e01b81526001600160a01b0386811660048301528916925063b6a4cd21915060240160006040518083038186803b1580156200029857600080fd5b505afa158015620002ad573d6000803e3d6000fd5b5050506001600160a01b039788166080525094861660a05292851660c05290841660e05283166101005282166101205216610140523061016052620003b1565b6001600160a01b03811681146200030357600080fd5b50565b600080600080600080600060e0888a0312156200032257600080fd5b87516200032f81620002ed565b60208901519097506200034281620002ed565b60408901519096506200035581620002ed565b60608901519095506200036881620002ed565b60808901519094506200037b81620002ed565b60a08901519093506200038e81620002ed565b60c0890151909250620003a181620002ed565b8091505092959891949750929550565b60805160a05160c05160e051610100516101205161014051610160516128ee620004a3600039600081816108590152818161095901528181610cbd01528181610e630152610f610152600061032f0152600081816102600152610b34015260008181610416015281816104cb015281816107cc01528181610c7a01526110830152600081816101fb015261092301526000818161019701528181610f32015261102b015260008181610308015281816105550152818161066d0152818161072001528181610afd01528181610bd40152610dd901526000818161043d01528181610a250152610d8701526128ee6000f3fe608060405234801561001057600080fd5b506004361061018d5760003560e01c8063622d56f1116100e3578063b51f9c2b1161008c578063c993f27c11610066578063c993f27c1461045f578063cbeda5a714610472578063f3edcbe11461048557600080fd5b8063b51f9c2b146103ba578063ba7903db14610411578063becbdf4a1461043857600080fd5b806378ecabce116100bd57806378ecabce146103715780638970ac4414610394578063b23cc044146103a757600080fd5b8063622d56f1146103035780636624856a1461032a5780636ab5f6611461035157600080fd5b8063318b1b801161014557806354fd4d501161011f57806354fd4d501461029557806358084273146102ce578063604aa628146102e357600080fd5b8063318b1b801461024857806335e80ab31461025b57806341fe53851461028257600080fd5b80631481a724116101765780631481a724146101f65780631d8a4e921461021d57806330e9012c1461023357600080fd5b806303dbe68c146101925780630e9d5cb9146101d6575b600080fd5b6101b97f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b6101e96101e436600461131a565b610498565b6040516101cd91906113bd565b6101b97f000000000000000000000000000000000000000000000000000000000000000081565b610225610551565b6040519081526020016101cd565b61023b6105da565b6040516101cd91906113d0565b6101b9610256366004611538565b6106ee565b6101b97f000000000000000000000000000000000000000000000000000000000000000081565b6101e9610290366004611551565b610799565b60408051808201909152600581527f362e302e3000000000000000000000000000000000000000000000000000000060208201526101e9565b6102e16102dc366004611589565b61084f565b005b6102f66102f136600461169c565b61094d565b6040516101cd9190611831565b6101b97f000000000000000000000000000000000000000000000000000000000000000081565b6101b97f000000000000000000000000000000000000000000000000000000000000000081565b61036461035f36600461188d565b610a60565b6040516101cd91906118c9565b61038461037f366004611538565b610ba2565b60405190151581526020016101cd565b6101e96103a2366004611a89565b610c47565b6102e16103b5366004611b6d565b610cb3565b6103c2610dac565b6040516101cd919081516001600160a01b039081168252602080840151821690830152604080840151821690830152606080840151821690830152608092830151169181019190915260a00190565b6101b97f000000000000000000000000000000000000000000000000000000000000000081565b6101b97f000000000000000000000000000000000000000000000000000000000000000081565b6102e161046d366004611bb6565b610e59565b6102e1610480366004611b6d565b610f57565b6101e9610493366004611bd3565b611050565b6040517f0e9d5cb90000000000000000000000000000000000000000000000000000000081526060906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690630e9d5cb99061050490879087908790600401611c00565b600060405180830381865afa158015610521573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526105499190810190611c62565b949350505050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316631d8a4e926040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105d59190611cd9565b905090565b6040805161024081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810182905261012081018290526101408101829052610160810182905261018081018290526101a081018290526101c081018290526101e0810182905261020081018290526102208101919091527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166330e9012c6040518163ffffffff1660e01b815260040161024060405180830381865afa1580156106ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105d59190611cfd565b6040517f318b1b80000000000000000000000000000000000000000000000000000000008152600481018290526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063318b1b8090602401602060405180830381865afa15801561076f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107939190611e55565b92915050565b6040517f41fe53850000000000000000000000000000000000000000000000000000000081526060906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906341fe5385906108039086908690600401611e72565b600060405180830381865afa158015610820573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108489190810190611c62565b9392505050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036108b1576040517f0a57d61d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000816040516024016108c49190611f84565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f580842730000000000000000000000000000000000000000000000000000000017905290506109487f0000000000000000000000000000000000000000000000000000000000000000826110ba565b505050565b60606001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036109b1576040517f0a57d61d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000826040516024016109c49190612077565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f604aa6280000000000000000000000000000000000000000000000000000000017905290506000610a4a7f0000000000000000000000000000000000000000000000000000000000000000836110ba565b90508080602001905181019061054991906121ac565b604080516101e081018252600080825260208201819052818301819052606082018190526080820181905260a0820181905260c0820181905260e08201819052610100820181905261012082018190526101408201819052610160820181905261018082018190526101a082018190526101c082015290517fcefe12230000000000000000000000000000000000000000000000000000000081527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063cefe122390610b5e9085907f0000000000000000000000000000000000000000000000000000000000000000903390600401612395565b6101e0604051808303816000875af1158015610b7e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107939190612569565b6040517f78ecabce000000000000000000000000000000000000000000000000000000008152600481018290526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906378ecabce90602401602060405180830381865afa158015610c23573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107939190612680565b6040517f8970ac440000000000000000000000000000000000000000000000000000000081526060906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690638970ac44906105049087908790879060040161269d565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610d15576040517f0a57d61d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600081604051602401610d28919061270e565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fb23cc0440000000000000000000000000000000000000000000000000000000017905290506109487f0000000000000000000000000000000000000000000000000000000000000000826110ba565b6040805160a0810182526000808252602082018190529181018290526060810182905260808101919091527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b51f9c2b6040518163ffffffff1660e01b815260040160a060405180830381865afa158015610e35573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105d59190612779565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610ebb576040517f0a57d61d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040516001600160a01b038216602482015260009060440160408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fc993f27c0000000000000000000000000000000000000000000000000000000017905290506109487f0000000000000000000000000000000000000000000000000000000000000000826110ba565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610fb9576040517f0a57d61d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600081604051602401610fcc9190612811565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fcbeda5a70000000000000000000000000000000000000000000000000000000017905290506109487f0000000000000000000000000000000000000000000000000000000000000000826110ba565b6040517ff3edcbe10000000000000000000000000000000000000000000000000000000081526060906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063f3edcbe1906108039086908690600401612870565b6060600080846001600160a01b0316846040516110d791906128c5565b600060405180830381855af49150503d8060008114611112576040519150601f19603f3d011682016040523d82523d6000602084013e611117565b606091505b50915091508161054957805160208201fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040805190810167ffffffffffffffff8111828210171561117b5761117b611129565b60405290565b604051610180810167ffffffffffffffff8111828210171561117b5761117b611129565b604051610240810167ffffffffffffffff8111828210171561117b5761117b611129565b6040516101e0810167ffffffffffffffff8111828210171561117b5761117b611129565b604051601f8201601f1916810167ffffffffffffffff8111828210171561121657611216611129565b604052919050565b6001600160a01b038116811461123357600080fd5b50565b80356112418161121e565b919050565b60006080828403121561125857600080fd5b6040516080810181811067ffffffffffffffff8211171561127b5761127b611129565b604052905080823561128c8161121e565b80825250602083013560208201526040830135604082015260608301356112b28161121e565b6060919091015292915050565b801515811461123357600080fd5b8035611241816112bf565b6000604082840312156112ea57600080fd5b6112f2611158565b905081356112ff8161121e565b8152602082013561130f8161121e565b602082015292915050565b600080600060e0848603121561132f57600080fd5b6113398585611246565b92506080840135611349816112bf565b91506113588560a086016112d8565b90509250925092565b60005b8381101561137c578181015183820152602001611364565b8381111561138b576000848401525b50505050565b600081518084526113a9816020860160208601611361565b601f01601f19169290920160200192915050565b6020815260006108486020830184611391565b81516001600160a01b03168152610240810160208301516113fc60208401826001600160a01b03169052565b50604083015161141760408401826001600160a01b03169052565b50606083015161143260608401826001600160a01b03169052565b50608083015161144d60808401826001600160a01b03169052565b5060a083015161146860a08401826001600160a01b03169052565b5060c083015161148360c08401826001600160a01b03169052565b5060e083015161149e60e08401826001600160a01b03169052565b50610100838101516001600160a01b0390811691840191909152610120808501518216908401526101408085015182169084015261016080850151821690840152610180808501518216908401526101a0808501518216908401526101c0808501518216908401526101e080850151821690840152610200808501518216908401526102208085015191821681850152905b505092915050565b60006020828403121561154a57600080fd5b5035919050565b60008060a0838503121561156457600080fd5b61156e8484611246565b9150608083013561157e816112bf565b809150509250929050565b60006020828403121561159b57600080fd5b813567ffffffffffffffff8111156115b257600080fd5b8201610160818503121561084857600080fd5b600067ffffffffffffffff8211156115df576115df611129565b5060051b60200190565b600067ffffffffffffffff82111561160357611603611129565b50601f01601f191660200190565b600082601f83011261162257600080fd5b8135611635611630826115e9565b6111ed565b81815284602083860101111561164a57600080fd5b816020850160208301376000918101602001919091529392505050565b803563ffffffff8116811461124157600080fd5b67ffffffffffffffff8116811461123357600080fd5b80356112418161167b565b600060208083850312156116af57600080fd5b823567ffffffffffffffff808211156116c757600080fd5b818501915085601f8301126116db57600080fd5b81356116e9611630826115c5565b81815260059190911b8301840190848101908883111561170857600080fd5b8585015b83811015611824578035858111156117245760008081fd5b8601610180818c03601f190181131561173d5760008081fd5b611745611181565b89830135888111156117575760008081fd5b6117658e8c83870101611611565b8252506040611775818501611236565b8b8301526060611786818601611236565b8284015260809150611799828601611667565b818401525060a0808501358284015260c0915081850135818401525060e0808501358284015261010091506117cf828601611691565b908301526101206117e1858201611691565b828401526101409150818501358184015250610160611801818601611236565b828401526118108486016112cd565b90830152508552505091860191860161170c565b5098975050505050505050565b602080825282518282018190526000919060409081850190868401855b8281101561188057815180516001600160a01b039081168652908701511686850152928401929085019060010161184e565b5091979650505050505050565b60006020828403121561189f57600080fd5b813567ffffffffffffffff8111156118b657600080fd5b8201610260818503121561084857600080fd5b81516001600160a01b031681526101e0810160208301516118f560208401826001600160a01b03169052565b50604083015161191060408401826001600160a01b03169052565b50606083015161192b60608401826001600160a01b03169052565b50608083015161194660808401826001600160a01b03169052565b5060a083015161196160a08401826001600160a01b03169052565b5060c083015161197c60c08401826001600160a01b03169052565b5060e083015161199760e08401826001600160a01b03169052565b50610100838101516001600160a01b0390811691840191909152610120808501518216908401526101408085015182169084015261016080850151821690840152610180808501518216908401526101a0808501518216908401526101c0808501519182168185015290611530565b600060a08284031215611a1857600080fd5b60405160a0810181811067ffffffffffffffff82111715611a3b57611a3b611129565b6040529050808235611a4c8161121e565b808252506020830135602082015260408301356040820152606083013560608201526080830135611a7c8161121e565b6080919091015292915050565b60008060006101008486031215611a9f57600080fd5b611aa98585611a06565b925060a0840135611ab9816112bf565b91506113588560c086016112d8565b6000611ad6611630846115c5565b83815290506020808201906060808602850187811115611af557600080fd5b855b81811015611b615782818a031215611b0f5760008081fd5b6040805184810181811067ffffffffffffffff82111715611b3257611b32611129565b82528235611b3f8161121e565b8152828601358682015281830135918101919091528552938301938201611af7565b50505050509392505050565b600060208284031215611b7f57600080fd5b813567ffffffffffffffff811115611b9657600080fd5b8201601f81018413611ba757600080fd5b61054984823560208401611ac8565b600060208284031215611bc857600080fd5b81356108488161121e565b60008060c08385031215611be657600080fd5b611bf08484611a06565b915060a083013561157e816112bf565b60e08101611c38828680516001600160a01b039081168352602080830151908401526040808301519084015260609182015116910152565b831515608083015282516001600160a01b0390811660a084015260208401511660c0830152610549565b600060208284031215611c7457600080fd5b815167ffffffffffffffff811115611c8b57600080fd5b8201601f81018413611c9c57600080fd5b8051611caa611630826115e9565b818152856020838501011115611cbf57600080fd5b611cd0826020830160208601611361565b95945050505050565b600060208284031215611ceb57600080fd5b5051919050565b80516112418161121e565b60006102408284031215611d1057600080fd5b611d186111a5565b611d2183611cf2565b8152611d2f60208401611cf2565b6020820152611d4060408401611cf2565b6040820152611d5160608401611cf2565b6060820152611d6260808401611cf2565b6080820152611d7360a08401611cf2565b60a0820152611d8460c08401611cf2565b60c0820152611d9560e08401611cf2565b60e0820152610100611da8818501611cf2565b90820152610120611dba848201611cf2565b90820152610140611dcc848201611cf2565b90820152610160611dde848201611cf2565b90820152610180611df0848201611cf2565b908201526101a0611e02848201611cf2565b908201526101c0611e14848201611cf2565b908201526101e0611e26848201611cf2565b90820152610200611e38848201611cf2565b90820152610220611e4a848201611cf2565b908201529392505050565b600060208284031215611e6757600080fd5b81516108488161121e565b60a08101611eaa828580516001600160a01b039081168352602080830151908401526040808301519084015260609182015116910152565b82151560808301529392505050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112611eee57600080fd5b830160208101925035905067ffffffffffffffff811115611f0e57600080fd5b606081023603821315611f2057600080fd5b9250929050565b8183526000602080850194508260005b85811015611f79578135611f4a8161121e565b6001600160a01b0316875281830135838801526040808301359088015260609687019690910190600101611f37565b509495945050505050565b6020815260008235611f95816112bf565b80151560208401525060208301356040830152604083013560608301526060830135611fc08161121e565b6001600160a01b03808216608085015260808501359150611fe08261121e565b80821660a0850152505060a083013560c083015260c083013560e083015261010060e0840135818401528084013590506120198161167b565b61012067ffffffffffffffff821681850152612036818601611691565b9150506101406120518185018367ffffffffffffffff169052565b61205d81860186611eb9565b6101608681015292509050611cd061018085018383611f27565b60006020808301818452808551808352604092508286019150828160051b87010184880160005b8381101561219e577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0898403018552815161018081518186526120e382870182611391565b915050888201516120fe8a8701826001600160a01b03169052565b50878201516001600160a01b03908116868a015260608084015163ffffffff16908701526080808401519087015260a0808401519087015260c0808401519087015260e08084015167ffffffffffffffff908116918801919091526101008085015190911690870152610120808401519087015261014080840151909116908601526101609182015115159190940152938601939086019060010161209e565b509098975050505050505050565b600060208083850312156121bf57600080fd5b825167ffffffffffffffff8111156121d657600080fd5b8301601f810185136121e757600080fd5b80516121f5611630826115c5565b81815260069190911b8201830190838101908783111561221457600080fd5b928401925b8284101561226a57604084890312156122325760008081fd5b61223a611158565b84516122458161121e565b8152848601516122548161121e565b8187015282526040939093019290840190612219565b979650505050505050565b80356122808161121e565b6001600160a01b03908116835260208201359061229c8261121e565b90811660208401526040820135906122b38261121e565b90811660408401526060820135906122ca8261121e565b90811660608401526080820135906122e18261121e565b908116608084015260a0820135906122f88261121e565b80821660a085015250505050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261233b57600080fd5b830160208101925035905067ffffffffffffffff81111561235b57600080fd5b803603821315611f2057600080fd5b818352818160208501375060006020828401015260006020601f19601f840116840101905092915050565b606081526123a66060820185612275565b60006123b460c08601611667565b6101206123c88185018363ffffffff169052565b6123d460e08801611667565b91506101406123ea8186018463ffffffff169052565b61016092506101008801358386015261240582890189612306565b925061026061018081818901526124216102c08901868561236a565b945061242f848c018c612306565b945092506101a07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa089870301818a015261246a86868661236a565b9550612477878d01611691565b96506101c09450612493858a018867ffffffffffffffff169052565b61249e828d01611667565b96506101e093506124b6848a018863ffffffff169052565b6102009650808c0135878a01525050610220838b0135818901526102409350828b0135848901526124e8868c01611691565b67ffffffffffffffff8116898401529550612504818c01611691565b955050505061252061028086018467ffffffffffffffff169052565b61252b8189016112cd565b92505061253d6102a085018315159052565b6001600160a01b038616602085015291506125559050565b6001600160a01b0383166040830152610549565b60006101e0828403121561257c57600080fd5b6125846111c9565b61258d83611cf2565b815261259b60208401611cf2565b60208201526125ac60408401611cf2565b60408201526125bd60608401611cf2565b60608201526125ce60808401611cf2565b60808201526125df60a08401611cf2565b60a08201526125f060c08401611cf2565b60c082015261260160e08401611cf2565b60e0820152610100612614818501611cf2565b90820152610120612626848201611cf2565b90820152610140612638848201611cf2565b9082015261016061264a848201611cf2565b9082015261018061265c848201611cf2565b908201526101a061266e848201611cf2565b908201526101c0611e4a848201611cf2565b60006020828403121561269257600080fd5b8151610848816112bf565b61010081016126e482866001600160a01b03808251168352602082015160208401526040820151604084015260608201516060840152806080830151166080840152505050565b83151560a083015282516001600160a01b0390811660c084015260208401511660e0830152610549565b6020808252825182820181905260009190848201906040850190845b8181101561276d5761275a83855180516001600160a01b0316825260208082015190830152604090810151910152565b928401926060929092019160010161272a565b50909695505050505050565b600060a0828403121561278b57600080fd5b60405160a0810181811067ffffffffffffffff821117156127ae576127ae611129565b60405282516127bc8161121e565b815260208301516127cc8161121e565b602082015260408301516127df8161121e565b604082015260608301516127f28161121e565b606082015260808301516128058161121e565b60808201529392505050565b6020808252825182820181905260009190848201906040850190845b8181101561276d5761285d83855180516001600160a01b0316825260208082015190830152604090810151910152565b928401926060929092019160010161282d565b60c081016128b682856001600160a01b03808251168352602082015160208401526040820151604084015260608201516060840152806080830151166080840152505050565b82151560a08301529392505050565b600082516128d7818460208701611361565b919091019291505056fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"a\x01\x80`@R4\x80\x15b\0\0\x12W`\0\x80\xFD[P`@Qb\0-\x918\x03\x80b\0-\x91\x839\x81\x01`@\x81\x90Rb\0\x005\x91b\0\x03\x06V[`@Qc\xB6\xA4\xCD!`\xE0\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x83\x81\x16`\x04\x83\x01R\x87\x16\x90c\xB6\xA4\xCD!\x90`$\x01`\0`@Q\x80\x83\x03\x81\x86\x80;\x15\x80\x15b\0\0wW`\0\x80\xFD[PZ\xFA\x15\x80\x15b\0\0\x8CW=`\0\x80>=`\0\xFD[PP`@Qc\xB6\xA4\xCD!`\xE0\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x84\x81\x16`\x04\x83\x01R\x89\x16\x92Pc\xB6\xA4\xCD!\x91P`$\x01`\0`@Q\x80\x83\x03\x81\x86\x80;\x15\x80\x15b\0\0\xD2W`\0\x80\xFD[PZ\xFA\x15\x80\x15b\0\0\xE7W=`\0\x80>=`\0\xFD[PP`@Qc\xB6\xA4\xCD!`\xE0\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x8A\x81\x16`\x04\x83\x01R\x89\x16\x92Pc\xB6\xA4\xCD!\x91P`$\x01`\0`@Q\x80\x83\x03\x81\x86\x80;\x15\x80\x15b\0\x01-W`\0\x80\xFD[PZ\xFA\x15\x80\x15b\0\x01BW=`\0\x80>=`\0\xFD[PP`@Qc\xB6\xA4\xCD!`\xE0\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x89\x16`\x04\x82\x01\x81\x90R\x92Pc\xB6\xA4\xCD!\x91P`$\x01`\0`@Q\x80\x83\x03\x81\x86\x80;\x15\x80\x15b\0\x01\x87W`\0\x80\xFD[PZ\xFA\x15\x80\x15b\0\x01\x9CW=`\0\x80>=`\0\xFD[PP`@Qc\xB6\xA4\xCD!`\xE0\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x88\x81\x16`\x04\x83\x01R\x89\x16\x92Pc\xB6\xA4\xCD!\x91P`$\x01`\0`@Q\x80\x83\x03\x81\x86\x80;\x15\x80\x15b\0\x01\xE2W`\0\x80\xFD[PZ\xFA\x15\x80\x15b\0\x01\xF7W=`\0\x80>=`\0\xFD[PP`@Qc\xB6\xA4\xCD!`\xE0\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x87\x81\x16`\x04\x83\x01R\x89\x16\x92Pc\xB6\xA4\xCD!\x91P`$\x01`\0`@Q\x80\x83\x03\x81\x86\x80;\x15\x80\x15b\0\x02=W`\0\x80\xFD[PZ\xFA\x15\x80\x15b\0\x02RW=`\0\x80>=`\0\xFD[PP`@Qc\xB6\xA4\xCD!`\xE0\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x86\x81\x16`\x04\x83\x01R\x89\x16\x92Pc\xB6\xA4\xCD!\x91P`$\x01`\0`@Q\x80\x83\x03\x81\x86\x80;\x15\x80\x15b\0\x02\x98W`\0\x80\xFD[PZ\xFA\x15\x80\x15b\0\x02\xADW=`\0\x80>=`\0\xFD[PPP`\x01`\x01`\xA0\x1B\x03\x97\x88\x16`\x80RP\x94\x86\x16`\xA0R\x92\x85\x16`\xC0R\x90\x84\x16`\xE0R\x83\x16a\x01\0R\x82\x16a\x01 R\x16a\x01@R0a\x01`Rb\0\x03\xB1V[`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14b\0\x03\x03W`\0\x80\xFD[PV[`\0\x80`\0\x80`\0\x80`\0`\xE0\x88\x8A\x03\x12\x15b\0\x03\"W`\0\x80\xFD[\x87Qb\0\x03/\x81b\0\x02\xEDV[` \x89\x01Q\x90\x97Pb\0\x03B\x81b\0\x02\xEDV[`@\x89\x01Q\x90\x96Pb\0\x03U\x81b\0\x02\xEDV[``\x89\x01Q\x90\x95Pb\0\x03h\x81b\0\x02\xEDV[`\x80\x89\x01Q\x90\x94Pb\0\x03{\x81b\0\x02\xEDV[`\xA0\x89\x01Q\x90\x93Pb\0\x03\x8E\x81b\0\x02\xEDV[`\xC0\x89\x01Q\x90\x92Pb\0\x03\xA1\x81b\0\x02\xEDV[\x80\x91PP\x92\x95\x98\x91\x94\x97P\x92\x95PV[`\x80Q`\xA0Q`\xC0Q`\xE0Qa\x01\0Qa\x01 Qa\x01@Qa\x01`Qa(\xEEb\0\x04\xA3`\09`\0\x81\x81a\x08Y\x01R\x81\x81a\tY\x01R\x81\x81a\x0C\xBD\x01R\x81\x81a\x0Ec\x01Ra\x0Fa\x01R`\0a\x03/\x01R`\0\x81\x81a\x02`\x01Ra\x0B4\x01R`\0\x81\x81a\x04\x16\x01R\x81\x81a\x04\xCB\x01R\x81\x81a\x07\xCC\x01R\x81\x81a\x0Cz\x01Ra\x10\x83\x01R`\0\x81\x81a\x01\xFB\x01Ra\t#\x01R`\0\x81\x81a\x01\x97\x01R\x81\x81a\x0F2\x01Ra\x10+\x01R`\0\x81\x81a\x03\x08\x01R\x81\x81a\x05U\x01R\x81\x81a\x06m\x01R\x81\x81a\x07 \x01R\x81\x81a\n\xFD\x01R\x81\x81a\x0B\xD4\x01Ra\r\xD9\x01R`\0\x81\x81a\x04=\x01R\x81\x81a\n%\x01Ra\r\x87\x01Ra(\xEE`\0\xF3\xFE`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`\x046\x10a\x01\x8DW`\x005`\xE0\x1C\x80cb-V\xF1\x11a\0\xE3W\x80c\xB5\x1F\x9C+\x11a\0\x8CW\x80c\xC9\x93\xF2|\x11a\0fW\x80c\xC9\x93\xF2|\x14a\x04_W\x80c\xCB\xED\xA5\xA7\x14a\x04rW\x80c\xF3\xED\xCB\xE1\x14a\x04\x85W`\0\x80\xFD[\x80c\xB5\x1F\x9C+\x14a\x03\xBAW\x80c\xBAy\x03\xDB\x14a\x04\x11W\x80c\xBE\xCB\xDFJ\x14a\x048W`\0\x80\xFD[\x80cx\xEC\xAB\xCE\x11a\0\xBDW\x80cx\xEC\xAB\xCE\x14a\x03qW\x80c\x89p\xACD\x14a\x03\x94W\x80c\xB2<\xC0D\x14a\x03\xA7W`\0\x80\xFD[\x80cb-V\xF1\x14a\x03\x03W\x80cf$\x85j\x14a\x03*W\x80cj\xB5\xF6a\x14a\x03QW`\0\x80\xFD[\x80c1\x8B\x1B\x80\x11a\x01EW\x80cT\xFDMP\x11a\x01\x1FW\x80cT\xFDMP\x14a\x02\x95W\x80cX\x08Bs\x14a\x02\xCEW\x80c`J\xA6(\x14a\x02\xE3W`\0\x80\xFD[\x80c1\x8B\x1B\x80\x14a\x02HW\x80c5\xE8\n\xB3\x14a\x02[W\x80cA\xFES\x85\x14a\x02\x82W`\0\x80\xFD[\x80c\x14\x81\xA7$\x11a\x01vW\x80c\x14\x81\xA7$\x14a\x01\xF6W\x80c\x1D\x8AN\x92\x14a\x02\x1DW\x80c0\xE9\x01,\x14a\x023W`\0\x80\xFD[\x80c\x03\xDB\xE6\x8C\x14a\x01\x92W\x80c\x0E\x9D\\\xB9\x14a\x01\xD6W[`\0\x80\xFD[a\x01\xB9\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[a\x01\xE9a\x01\xE46`\x04a\x13\x1AV[a\x04\x98V[`@Qa\x01\xCD\x91\x90a\x13\xBDV[a\x01\xB9\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[a\x02%a\x05QV[`@Q\x90\x81R` \x01a\x01\xCDV[a\x02;a\x05\xDAV[`@Qa\x01\xCD\x91\x90a\x13\xD0V[a\x01\xB9a\x02V6`\x04a\x158V[a\x06\xEEV[a\x01\xB9\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[a\x01\xE9a\x02\x906`\x04a\x15QV[a\x07\x99V[`@\x80Q\x80\x82\x01\x90\x91R`\x05\x81R\x7F6.0.0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0` \x82\x01Ra\x01\xE9V[a\x02\xE1a\x02\xDC6`\x04a\x15\x89V[a\x08OV[\0[a\x02\xF6a\x02\xF16`\x04a\x16\x9CV[a\tMV[`@Qa\x01\xCD\x91\x90a\x181V[a\x01\xB9\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[a\x01\xB9\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[a\x03da\x03_6`\x04a\x18\x8DV[a\n`V[`@Qa\x01\xCD\x91\x90a\x18\xC9V[a\x03\x84a\x03\x7F6`\x04a\x158V[a\x0B\xA2V[`@Q\x90\x15\x15\x81R` \x01a\x01\xCDV[a\x01\xE9a\x03\xA26`\x04a\x1A\x89V[a\x0CGV[a\x02\xE1a\x03\xB56`\x04a\x1BmV[a\x0C\xB3V[a\x03\xC2a\r\xACV[`@Qa\x01\xCD\x91\x90\x81Q`\x01`\x01`\xA0\x1B\x03\x90\x81\x16\x82R` \x80\x84\x01Q\x82\x16\x90\x83\x01R`@\x80\x84\x01Q\x82\x16\x90\x83\x01R``\x80\x84\x01Q\x82\x16\x90\x83\x01R`\x80\x92\x83\x01Q\x16\x91\x81\x01\x91\x90\x91R`\xA0\x01\x90V[a\x01\xB9\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[a\x01\xB9\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[a\x02\xE1a\x04m6`\x04a\x1B\xB6V[a\x0EYV[a\x02\xE1a\x04\x806`\x04a\x1BmV[a\x0FWV[a\x01\xE9a\x04\x936`\x04a\x1B\xD3V[a\x10PV[`@Q\x7F\x0E\x9D\\\xB9\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``\x90`\x01`\x01`\xA0\x1B\x03\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x90c\x0E\x9D\\\xB9\x90a\x05\x04\x90\x87\x90\x87\x90\x87\x90`\x04\x01a\x1C\0V[`\0`@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x05!W=`\0\x80>=`\0\xFD[PPPP`@Q=`\0\x82>`\x1F=\x90\x81\x01`\x1F\x19\x16\x82\x01`@Ra\x05I\x91\x90\x81\x01\x90a\x1CbV[\x94\x93PPPPV[`\0\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16c\x1D\x8AN\x92`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x05\xB1W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x05\xD5\x91\x90a\x1C\xD9V[\x90P\x90V[`@\x80Qa\x02@\x81\x01\x82R`\0\x80\x82R` \x82\x01\x81\x90R\x91\x81\x01\x82\x90R``\x81\x01\x82\x90R`\x80\x81\x01\x82\x90R`\xA0\x81\x01\x82\x90R`\xC0\x81\x01\x82\x90R`\xE0\x81\x01\x82\x90Ra\x01\0\x81\x01\x82\x90Ra\x01 \x81\x01\x82\x90Ra\x01@\x81\x01\x82\x90Ra\x01`\x81\x01\x82\x90Ra\x01\x80\x81\x01\x82\x90Ra\x01\xA0\x81\x01\x82\x90Ra\x01\xC0\x81\x01\x82\x90Ra\x01\xE0\x81\x01\x82\x90Ra\x02\0\x81\x01\x82\x90Ra\x02 \x81\x01\x91\x90\x91R\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16c0\xE9\x01,`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01a\x02@`@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x06\xCAW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x05\xD5\x91\x90a\x1C\xFDV[`@Q\x7F1\x8B\x1B\x80\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\x81\x01\x82\x90R`\0\x90\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16\x90c1\x8B\x1B\x80\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x07oW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x07\x93\x91\x90a\x1EUV[\x92\x91PPV[`@Q\x7FA\xFES\x85\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``\x90`\x01`\x01`\xA0\x1B\x03\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x90cA\xFES\x85\x90a\x08\x03\x90\x86\x90\x86\x90`\x04\x01a\x1ErV[`\0`@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x08 W=`\0\x80>=`\0\xFD[PPPP`@Q=`\0\x82>`\x1F=\x90\x81\x01`\x1F\x19\x16\x82\x01`@Ra\x08H\x91\x90\x81\x01\x90a\x1CbV[\x93\x92PPPV[`\x01`\x01`\xA0\x1B\x03\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x160\x03a\x08\xB1W`@Q\x7F\nW\xD6\x1D\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\x01`@Q\x80\x91\x03\x90\xFD[`\0\x81`@Q`$\x01a\x08\xC4\x91\x90a\x1F\x84V[`@\x80Q`\x1F\x19\x81\x84\x03\x01\x81R\x91\x90R` \x81\x01\x80Q{\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7FX\x08Bs\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\x17\x90R\x90Pa\tH\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x82a\x10\xBAV[PPPV[```\x01`\x01`\xA0\x1B\x03\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x160\x03a\t\xB1W`@Q\x7F\nW\xD6\x1D\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\x01`@Q\x80\x91\x03\x90\xFD[`\0\x82`@Q`$\x01a\t\xC4\x91\x90a wV[`@\x80Q`\x1F\x19\x81\x84\x03\x01\x81R\x91\x90R` \x81\x01\x80Q{\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F`J\xA6(\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\x17\x90R\x90P`\0a\nJ\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x83a\x10\xBAV[\x90P\x80\x80` \x01\x90Q\x81\x01\x90a\x05I\x91\x90a!\xACV[`@\x80Qa\x01\xE0\x81\x01\x82R`\0\x80\x82R` \x82\x01\x81\x90R\x81\x83\x01\x81\x90R``\x82\x01\x81\x90R`\x80\x82\x01\x81\x90R`\xA0\x82\x01\x81\x90R`\xC0\x82\x01\x81\x90R`\xE0\x82\x01\x81\x90Ra\x01\0\x82\x01\x81\x90Ra\x01 \x82\x01\x81\x90Ra\x01@\x82\x01\x81\x90Ra\x01`\x82\x01\x81\x90Ra\x01\x80\x82\x01\x81\x90Ra\x01\xA0\x82\x01\x81\x90Ra\x01\xC0\x82\x01R\x90Q\x7F\xCE\xFE\x12#\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\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16\x90c\xCE\xFE\x12#\x90a\x0B^\x90\x85\x90\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x903\x90`\x04\x01a#\x95V[a\x01\xE0`@Q\x80\x83\x03\x81`\0\x87Z\xF1\x15\x80\x15a\x0B~W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x07\x93\x91\x90a%iV[`@Q\x7Fx\xEC\xAB\xCE\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\x81\x01\x82\x90R`\0\x90\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16\x90cx\xEC\xAB\xCE\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x0C#W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x07\x93\x91\x90a&\x80V[`@Q\x7F\x89p\xACD\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``\x90`\x01`\x01`\xA0\x1B\x03\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x90c\x89p\xACD\x90a\x05\x04\x90\x87\x90\x87\x90\x87\x90`\x04\x01a&\x9DV[`\x01`\x01`\xA0\x1B\x03\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x160\x03a\r\x15W`@Q\x7F\nW\xD6\x1D\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\x01`@Q\x80\x91\x03\x90\xFD[`\0\x81`@Q`$\x01a\r(\x91\x90a'\x0EV[`@\x80Q`\x1F\x19\x81\x84\x03\x01\x81R\x91\x90R` \x81\x01\x80Q{\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xB2<\xC0D\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\x17\x90R\x90Pa\tH\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x82a\x10\xBAV[`@\x80Q`\xA0\x81\x01\x82R`\0\x80\x82R` \x82\x01\x81\x90R\x91\x81\x01\x82\x90R``\x81\x01\x82\x90R`\x80\x81\x01\x91\x90\x91R\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16c\xB5\x1F\x9C+`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01`\xA0`@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x0E5W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x05\xD5\x91\x90a'yV[`\x01`\x01`\xA0\x1B\x03\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x160\x03a\x0E\xBBW`@Q\x7F\nW\xD6\x1D\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\x01`@Q\x80\x91\x03\x90\xFD[`@Q`\x01`\x01`\xA0\x1B\x03\x82\x16`$\x82\x01R`\0\x90`D\x01`@\x80Q`\x1F\x19\x81\x84\x03\x01\x81R\x91\x90R` \x81\x01\x80Q{\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xC9\x93\xF2|\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\x17\x90R\x90Pa\tH\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x82a\x10\xBAV[`\x01`\x01`\xA0\x1B\x03\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x160\x03a\x0F\xB9W`@Q\x7F\nW\xD6\x1D\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\x01`@Q\x80\x91\x03\x90\xFD[`\0\x81`@Q`$\x01a\x0F\xCC\x91\x90a(\x11V[`@\x80Q`\x1F\x19\x81\x84\x03\x01\x81R\x91\x90R` \x81\x01\x80Q{\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xCB\xED\xA5\xA7\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\x17\x90R\x90Pa\tH\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x82a\x10\xBAV[`@Q\x7F\xF3\xED\xCB\xE1\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``\x90`\x01`\x01`\xA0\x1B\x03\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x90c\xF3\xED\xCB\xE1\x90a\x08\x03\x90\x86\x90\x86\x90`\x04\x01a(pV[```\0\x80\x84`\x01`\x01`\xA0\x1B\x03\x16\x84`@Qa\x10\xD7\x91\x90a(\xC5V[`\0`@Q\x80\x83\x03\x81\x85Z\xF4\x91PP=\x80`\0\x81\x14a\x11\x12W`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=`\0` \x84\x01>a\x11\x17V[``\x91P[P\x91P\x91P\x81a\x05IW\x80Q` \x82\x01\xFD[\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[`@\x80Q\x90\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a\x11{Wa\x11{a\x11)V[`@R\x90V[`@Qa\x01\x80\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a\x11{Wa\x11{a\x11)V[`@Qa\x02@\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a\x11{Wa\x11{a\x11)V[`@Qa\x01\xE0\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a\x11{Wa\x11{a\x11)V[`@Q`\x1F\x82\x01`\x1F\x19\x16\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a\x12\x16Wa\x12\x16a\x11)V[`@R\x91\x90PV[`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a\x123W`\0\x80\xFD[PV[\x805a\x12A\x81a\x12\x1EV[\x91\x90PV[`\0`\x80\x82\x84\x03\x12\x15a\x12XW`\0\x80\xFD[`@Q`\x80\x81\x01\x81\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17\x15a\x12{Wa\x12{a\x11)V[`@R\x90P\x80\x825a\x12\x8C\x81a\x12\x1EV[\x80\x82RP` \x83\x015` \x82\x01R`@\x83\x015`@\x82\x01R``\x83\x015a\x12\xB2\x81a\x12\x1EV[``\x91\x90\x91\x01R\x92\x91PPV[\x80\x15\x15\x81\x14a\x123W`\0\x80\xFD[\x805a\x12A\x81a\x12\xBFV[`\0`@\x82\x84\x03\x12\x15a\x12\xEAW`\0\x80\xFD[a\x12\xF2a\x11XV[\x90P\x815a\x12\xFF\x81a\x12\x1EV[\x81R` \x82\x015a\x13\x0F\x81a\x12\x1EV[` \x82\x01R\x92\x91PPV[`\0\x80`\0`\xE0\x84\x86\x03\x12\x15a\x13/W`\0\x80\xFD[a\x139\x85\x85a\x12FV[\x92P`\x80\x84\x015a\x13I\x81a\x12\xBFV[\x91Pa\x13X\x85`\xA0\x86\x01a\x12\xD8V[\x90P\x92P\x92P\x92V[`\0[\x83\x81\x10\x15a\x13|W\x81\x81\x01Q\x83\x82\x01R` \x01a\x13dV[\x83\x81\x11\x15a\x13\x8BW`\0\x84\x84\x01R[PPPPV[`\0\x81Q\x80\x84Ra\x13\xA9\x81` \x86\x01` \x86\x01a\x13aV[`\x1F\x01`\x1F\x19\x16\x92\x90\x92\x01` \x01\x92\x91PPV[` \x81R`\0a\x08H` \x83\x01\x84a\x13\x91V[\x81Q`\x01`\x01`\xA0\x1B\x03\x16\x81Ra\x02@\x81\x01` \x83\x01Qa\x13\xFC` \x84\x01\x82`\x01`\x01`\xA0\x1B\x03\x16\x90RV[P`@\x83\x01Qa\x14\x17`@\x84\x01\x82`\x01`\x01`\xA0\x1B\x03\x16\x90RV[P``\x83\x01Qa\x142``\x84\x01\x82`\x01`\x01`\xA0\x1B\x03\x16\x90RV[P`\x80\x83\x01Qa\x14M`\x80\x84\x01\x82`\x01`\x01`\xA0\x1B\x03\x16\x90RV[P`\xA0\x83\x01Qa\x14h`\xA0\x84\x01\x82`\x01`\x01`\xA0\x1B\x03\x16\x90RV[P`\xC0\x83\x01Qa\x14\x83`\xC0\x84\x01\x82`\x01`\x01`\xA0\x1B\x03\x16\x90RV[P`\xE0\x83\x01Qa\x14\x9E`\xE0\x84\x01\x82`\x01`\x01`\xA0\x1B\x03\x16\x90RV[Pa\x01\0\x83\x81\x01Q`\x01`\x01`\xA0\x1B\x03\x90\x81\x16\x91\x84\x01\x91\x90\x91Ra\x01 \x80\x85\x01Q\x82\x16\x90\x84\x01Ra\x01@\x80\x85\x01Q\x82\x16\x90\x84\x01Ra\x01`\x80\x85\x01Q\x82\x16\x90\x84\x01Ra\x01\x80\x80\x85\x01Q\x82\x16\x90\x84\x01Ra\x01\xA0\x80\x85\x01Q\x82\x16\x90\x84\x01Ra\x01\xC0\x80\x85\x01Q\x82\x16\x90\x84\x01Ra\x01\xE0\x80\x85\x01Q\x82\x16\x90\x84\x01Ra\x02\0\x80\x85\x01Q\x82\x16\x90\x84\x01Ra\x02 \x80\x85\x01Q\x91\x82\x16\x81\x85\x01R\x90[PP\x92\x91PPV[`\0` \x82\x84\x03\x12\x15a\x15JW`\0\x80\xFD[P5\x91\x90PV[`\0\x80`\xA0\x83\x85\x03\x12\x15a\x15dW`\0\x80\xFD[a\x15n\x84\x84a\x12FV[\x91P`\x80\x83\x015a\x15~\x81a\x12\xBFV[\x80\x91PP\x92P\x92\x90PV[`\0` \x82\x84\x03\x12\x15a\x15\x9BW`\0\x80\xFD[\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x15\xB2W`\0\x80\xFD[\x82\x01a\x01`\x81\x85\x03\x12\x15a\x08HW`\0\x80\xFD[`\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x15a\x15\xDFWa\x15\xDFa\x11)V[P`\x05\x1B` \x01\x90V[`\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x15a\x16\x03Wa\x16\x03a\x11)V[P`\x1F\x01`\x1F\x19\x16` \x01\x90V[`\0\x82`\x1F\x83\x01\x12a\x16\"W`\0\x80\xFD[\x815a\x165a\x160\x82a\x15\xE9V[a\x11\xEDV[\x81\x81R\x84` \x83\x86\x01\x01\x11\x15a\x16JW`\0\x80\xFD[\x81` \x85\x01` \x83\x017`\0\x91\x81\x01` \x01\x91\x90\x91R\x93\x92PPPV[\x805c\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x12AW`\0\x80\xFD[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x123W`\0\x80\xFD[\x805a\x12A\x81a\x16{V[`\0` \x80\x83\x85\x03\x12\x15a\x16\xAFW`\0\x80\xFD[\x825g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x16\xC7W`\0\x80\xFD[\x81\x85\x01\x91P\x85`\x1F\x83\x01\x12a\x16\xDBW`\0\x80\xFD[\x815a\x16\xE9a\x160\x82a\x15\xC5V[\x81\x81R`\x05\x91\x90\x91\x1B\x83\x01\x84\x01\x90\x84\x81\x01\x90\x88\x83\x11\x15a\x17\x08W`\0\x80\xFD[\x85\x85\x01[\x83\x81\x10\x15a\x18$W\x805\x85\x81\x11\x15a\x17$W`\0\x80\x81\xFD[\x86\x01a\x01\x80\x81\x8C\x03`\x1F\x19\x01\x81\x13\x15a\x17=W`\0\x80\x81\xFD[a\x17Ea\x11\x81V[\x89\x83\x015\x88\x81\x11\x15a\x17WW`\0\x80\x81\xFD[a\x17e\x8E\x8C\x83\x87\x01\x01a\x16\x11V[\x82RP`@a\x17u\x81\x85\x01a\x126V[\x8B\x83\x01R``a\x17\x86\x81\x86\x01a\x126V[\x82\x84\x01R`\x80\x91Pa\x17\x99\x82\x86\x01a\x16gV[\x81\x84\x01RP`\xA0\x80\x85\x015\x82\x84\x01R`\xC0\x91P\x81\x85\x015\x81\x84\x01RP`\xE0\x80\x85\x015\x82\x84\x01Ra\x01\0\x91Pa\x17\xCF\x82\x86\x01a\x16\x91V[\x90\x83\x01Ra\x01 a\x17\xE1\x85\x82\x01a\x16\x91V[\x82\x84\x01Ra\x01@\x91P\x81\x85\x015\x81\x84\x01RPa\x01`a\x18\x01\x81\x86\x01a\x126V[\x82\x84\x01Ra\x18\x10\x84\x86\x01a\x12\xCDV[\x90\x83\x01RP\x85RPP\x91\x86\x01\x91\x86\x01a\x17\x0CV[P\x98\x97PPPPPPPPV[` \x80\x82R\x82Q\x82\x82\x01\x81\x90R`\0\x91\x90`@\x90\x81\x85\x01\x90\x86\x84\x01\x85[\x82\x81\x10\x15a\x18\x80W\x81Q\x80Q`\x01`\x01`\xA0\x1B\x03\x90\x81\x16\x86R\x90\x87\x01Q\x16\x86\x85\x01R\x92\x84\x01\x92\x90\x85\x01\x90`\x01\x01a\x18NV[P\x91\x97\x96PPPPPPPV[`\0` \x82\x84\x03\x12\x15a\x18\x9FW`\0\x80\xFD[\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x18\xB6W`\0\x80\xFD[\x82\x01a\x02`\x81\x85\x03\x12\x15a\x08HW`\0\x80\xFD[\x81Q`\x01`\x01`\xA0\x1B\x03\x16\x81Ra\x01\xE0\x81\x01` \x83\x01Qa\x18\xF5` \x84\x01\x82`\x01`\x01`\xA0\x1B\x03\x16\x90RV[P`@\x83\x01Qa\x19\x10`@\x84\x01\x82`\x01`\x01`\xA0\x1B\x03\x16\x90RV[P``\x83\x01Qa\x19+``\x84\x01\x82`\x01`\x01`\xA0\x1B\x03\x16\x90RV[P`\x80\x83\x01Qa\x19F`\x80\x84\x01\x82`\x01`\x01`\xA0\x1B\x03\x16\x90RV[P`\xA0\x83\x01Qa\x19a`\xA0\x84\x01\x82`\x01`\x01`\xA0\x1B\x03\x16\x90RV[P`\xC0\x83\x01Qa\x19|`\xC0\x84\x01\x82`\x01`\x01`\xA0\x1B\x03\x16\x90RV[P`\xE0\x83\x01Qa\x19\x97`\xE0\x84\x01\x82`\x01`\x01`\xA0\x1B\x03\x16\x90RV[Pa\x01\0\x83\x81\x01Q`\x01`\x01`\xA0\x1B\x03\x90\x81\x16\x91\x84\x01\x91\x90\x91Ra\x01 \x80\x85\x01Q\x82\x16\x90\x84\x01Ra\x01@\x80\x85\x01Q\x82\x16\x90\x84\x01Ra\x01`\x80\x85\x01Q\x82\x16\x90\x84\x01Ra\x01\x80\x80\x85\x01Q\x82\x16\x90\x84\x01Ra\x01\xA0\x80\x85\x01Q\x82\x16\x90\x84\x01Ra\x01\xC0\x80\x85\x01Q\x91\x82\x16\x81\x85\x01R\x90a\x150V[`\0`\xA0\x82\x84\x03\x12\x15a\x1A\x18W`\0\x80\xFD[`@Q`\xA0\x81\x01\x81\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17\x15a\x1A;Wa\x1A;a\x11)V[`@R\x90P\x80\x825a\x1AL\x81a\x12\x1EV[\x80\x82RP` \x83\x015` \x82\x01R`@\x83\x015`@\x82\x01R``\x83\x015``\x82\x01R`\x80\x83\x015a\x1A|\x81a\x12\x1EV[`\x80\x91\x90\x91\x01R\x92\x91PPV[`\0\x80`\0a\x01\0\x84\x86\x03\x12\x15a\x1A\x9FW`\0\x80\xFD[a\x1A\xA9\x85\x85a\x1A\x06V[\x92P`\xA0\x84\x015a\x1A\xB9\x81a\x12\xBFV[\x91Pa\x13X\x85`\xC0\x86\x01a\x12\xD8V[`\0a\x1A\xD6a\x160\x84a\x15\xC5V[\x83\x81R\x90P` \x80\x82\x01\x90``\x80\x86\x02\x85\x01\x87\x81\x11\x15a\x1A\xF5W`\0\x80\xFD[\x85[\x81\x81\x10\x15a\x1BaW\x82\x81\x8A\x03\x12\x15a\x1B\x0FW`\0\x80\x81\xFD[`@\x80Q\x84\x81\x01\x81\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17\x15a\x1B2Wa\x1B2a\x11)V[\x82R\x825a\x1B?\x81a\x12\x1EV[\x81R\x82\x86\x015\x86\x82\x01R\x81\x83\x015\x91\x81\x01\x91\x90\x91R\x85R\x93\x83\x01\x93\x82\x01a\x1A\xF7V[PPPPP\x93\x92PPPV[`\0` \x82\x84\x03\x12\x15a\x1B\x7FW`\0\x80\xFD[\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x1B\x96W`\0\x80\xFD[\x82\x01`\x1F\x81\x01\x84\x13a\x1B\xA7W`\0\x80\xFD[a\x05I\x84\x825` \x84\x01a\x1A\xC8V[`\0` \x82\x84\x03\x12\x15a\x1B\xC8W`\0\x80\xFD[\x815a\x08H\x81a\x12\x1EV[`\0\x80`\xC0\x83\x85\x03\x12\x15a\x1B\xE6W`\0\x80\xFD[a\x1B\xF0\x84\x84a\x1A\x06V[\x91P`\xA0\x83\x015a\x15~\x81a\x12\xBFV[`\xE0\x81\x01a\x1C8\x82\x86\x80Q`\x01`\x01`\xA0\x1B\x03\x90\x81\x16\x83R` \x80\x83\x01Q\x90\x84\x01R`@\x80\x83\x01Q\x90\x84\x01R``\x91\x82\x01Q\x16\x91\x01RV[\x83\x15\x15`\x80\x83\x01R\x82Q`\x01`\x01`\xA0\x1B\x03\x90\x81\x16`\xA0\x84\x01R` \x84\x01Q\x16`\xC0\x83\x01Ra\x05IV[`\0` \x82\x84\x03\x12\x15a\x1CtW`\0\x80\xFD[\x81Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x1C\x8BW`\0\x80\xFD[\x82\x01`\x1F\x81\x01\x84\x13a\x1C\x9CW`\0\x80\xFD[\x80Qa\x1C\xAAa\x160\x82a\x15\xE9V[\x81\x81R\x85` \x83\x85\x01\x01\x11\x15a\x1C\xBFW`\0\x80\xFD[a\x1C\xD0\x82` \x83\x01` \x86\x01a\x13aV[\x95\x94PPPPPV[`\0` \x82\x84\x03\x12\x15a\x1C\xEBW`\0\x80\xFD[PQ\x91\x90PV[\x80Qa\x12A\x81a\x12\x1EV[`\0a\x02@\x82\x84\x03\x12\x15a\x1D\x10W`\0\x80\xFD[a\x1D\x18a\x11\xA5V[a\x1D!\x83a\x1C\xF2V[\x81Ra\x1D/` \x84\x01a\x1C\xF2V[` \x82\x01Ra\x1D@`@\x84\x01a\x1C\xF2V[`@\x82\x01Ra\x1DQ``\x84\x01a\x1C\xF2V[``\x82\x01Ra\x1Db`\x80\x84\x01a\x1C\xF2V[`\x80\x82\x01Ra\x1Ds`\xA0\x84\x01a\x1C\xF2V[`\xA0\x82\x01Ra\x1D\x84`\xC0\x84\x01a\x1C\xF2V[`\xC0\x82\x01Ra\x1D\x95`\xE0\x84\x01a\x1C\xF2V[`\xE0\x82\x01Ra\x01\0a\x1D\xA8\x81\x85\x01a\x1C\xF2V[\x90\x82\x01Ra\x01 a\x1D\xBA\x84\x82\x01a\x1C\xF2V[\x90\x82\x01Ra\x01@a\x1D\xCC\x84\x82\x01a\x1C\xF2V[\x90\x82\x01Ra\x01`a\x1D\xDE\x84\x82\x01a\x1C\xF2V[\x90\x82\x01Ra\x01\x80a\x1D\xF0\x84\x82\x01a\x1C\xF2V[\x90\x82\x01Ra\x01\xA0a\x1E\x02\x84\x82\x01a\x1C\xF2V[\x90\x82\x01Ra\x01\xC0a\x1E\x14\x84\x82\x01a\x1C\xF2V[\x90\x82\x01Ra\x01\xE0a\x1E&\x84\x82\x01a\x1C\xF2V[\x90\x82\x01Ra\x02\0a\x1E8\x84\x82\x01a\x1C\xF2V[\x90\x82\x01Ra\x02 a\x1EJ\x84\x82\x01a\x1C\xF2V[\x90\x82\x01R\x93\x92PPPV[`\0` \x82\x84\x03\x12\x15a\x1EgW`\0\x80\xFD[\x81Qa\x08H\x81a\x12\x1EV[`\xA0\x81\x01a\x1E\xAA\x82\x85\x80Q`\x01`\x01`\xA0\x1B\x03\x90\x81\x16\x83R` \x80\x83\x01Q\x90\x84\x01R`@\x80\x83\x01Q\x90\x84\x01R``\x91\x82\x01Q\x16\x91\x01RV[\x82\x15\x15`\x80\x83\x01R\x93\x92PPPV[`\0\x80\x835\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE1\x846\x03\x01\x81\x12a\x1E\xEEW`\0\x80\xFD[\x83\x01` \x81\x01\x92P5\x90Pg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x1F\x0EW`\0\x80\xFD[``\x81\x026\x03\x82\x13\x15a\x1F W`\0\x80\xFD[\x92P\x92\x90PV[\x81\x83R`\0` \x80\x85\x01\x94P\x82`\0[\x85\x81\x10\x15a\x1FyW\x815a\x1FJ\x81a\x12\x1EV[`\x01`\x01`\xA0\x1B\x03\x16\x87R\x81\x83\x015\x83\x88\x01R`@\x80\x83\x015\x90\x88\x01R``\x96\x87\x01\x96\x90\x91\x01\x90`\x01\x01a\x1F7V[P\x94\x95\x94PPPPPV[` \x81R`\0\x825a\x1F\x95\x81a\x12\xBFV[\x80\x15\x15` \x84\x01RP` \x83\x015`@\x83\x01R`@\x83\x015``\x83\x01R``\x83\x015a\x1F\xC0\x81a\x12\x1EV[`\x01`\x01`\xA0\x1B\x03\x80\x82\x16`\x80\x85\x01R`\x80\x85\x015\x91Pa\x1F\xE0\x82a\x12\x1EV[\x80\x82\x16`\xA0\x85\x01RPP`\xA0\x83\x015`\xC0\x83\x01R`\xC0\x83\x015`\xE0\x83\x01Ra\x01\0`\xE0\x84\x015\x81\x84\x01R\x80\x84\x015\x90Pa \x19\x81a\x16{V[a\x01 g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16\x81\x85\x01Ra 6\x81\x86\x01a\x16\x91V[\x91PPa\x01@a Q\x81\x85\x01\x83g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90RV[a ]\x81\x86\x01\x86a\x1E\xB9V[a\x01`\x86\x81\x01R\x92P\x90Pa\x1C\xD0a\x01\x80\x85\x01\x83\x83a\x1F'V[`\0` \x80\x83\x01\x81\x84R\x80\x85Q\x80\x83R`@\x92P\x82\x86\x01\x91P\x82\x81`\x05\x1B\x87\x01\x01\x84\x88\x01`\0[\x83\x81\x10\x15a!\x9EW\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xC0\x89\x84\x03\x01\x85R\x81Qa\x01\x80\x81Q\x81\x86Ra \xE3\x82\x87\x01\x82a\x13\x91V[\x91PP\x88\x82\x01Qa \xFE\x8A\x87\x01\x82`\x01`\x01`\xA0\x1B\x03\x16\x90RV[P\x87\x82\x01Q`\x01`\x01`\xA0\x1B\x03\x90\x81\x16\x86\x8A\x01R``\x80\x84\x01Qc\xFF\xFF\xFF\xFF\x16\x90\x87\x01R`\x80\x80\x84\x01Q\x90\x87\x01R`\xA0\x80\x84\x01Q\x90\x87\x01R`\xC0\x80\x84\x01Q\x90\x87\x01R`\xE0\x80\x84\x01Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x81\x16\x91\x88\x01\x91\x90\x91Ra\x01\0\x80\x85\x01Q\x90\x91\x16\x90\x87\x01Ra\x01 \x80\x84\x01Q\x90\x87\x01Ra\x01@\x80\x84\x01Q\x90\x91\x16\x90\x86\x01Ra\x01`\x91\x82\x01Q\x15\x15\x91\x90\x94\x01R\x93\x86\x01\x93\x90\x86\x01\x90`\x01\x01a \x9EV[P\x90\x98\x97PPPPPPPPV[`\0` \x80\x83\x85\x03\x12\x15a!\xBFW`\0\x80\xFD[\x82Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a!\xD6W`\0\x80\xFD[\x83\x01`\x1F\x81\x01\x85\x13a!\xE7W`\0\x80\xFD[\x80Qa!\xF5a\x160\x82a\x15\xC5V[\x81\x81R`\x06\x91\x90\x91\x1B\x82\x01\x83\x01\x90\x83\x81\x01\x90\x87\x83\x11\x15a\"\x14W`\0\x80\xFD[\x92\x84\x01\x92[\x82\x84\x10\x15a\"jW`@\x84\x89\x03\x12\x15a\"2W`\0\x80\x81\xFD[a\":a\x11XV[\x84Qa\"E\x81a\x12\x1EV[\x81R\x84\x86\x01Qa\"T\x81a\x12\x1EV[\x81\x87\x01R\x82R`@\x93\x90\x93\x01\x92\x90\x84\x01\x90a\"\x19V[\x97\x96PPPPPPPV[\x805a\"\x80\x81a\x12\x1EV[`\x01`\x01`\xA0\x1B\x03\x90\x81\x16\x83R` \x82\x015\x90a\"\x9C\x82a\x12\x1EV[\x90\x81\x16` \x84\x01R`@\x82\x015\x90a\"\xB3\x82a\x12\x1EV[\x90\x81\x16`@\x84\x01R``\x82\x015\x90a\"\xCA\x82a\x12\x1EV[\x90\x81\x16``\x84\x01R`\x80\x82\x015\x90a\"\xE1\x82a\x12\x1EV[\x90\x81\x16`\x80\x84\x01R`\xA0\x82\x015\x90a\"\xF8\x82a\x12\x1EV[\x80\x82\x16`\xA0\x85\x01RPPPPV[`\0\x80\x835\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE1\x846\x03\x01\x81\x12a#;W`\0\x80\xFD[\x83\x01` \x81\x01\x92P5\x90Pg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a#[W`\0\x80\xFD[\x806\x03\x82\x13\x15a\x1F W`\0\x80\xFD[\x81\x83R\x81\x81` \x85\x017P`\0` \x82\x84\x01\x01R`\0` `\x1F\x19`\x1F\x84\x01\x16\x84\x01\x01\x90P\x92\x91PPV[``\x81Ra#\xA6``\x82\x01\x85a\"uV[`\0a#\xB4`\xC0\x86\x01a\x16gV[a\x01 a#\xC8\x81\x85\x01\x83c\xFF\xFF\xFF\xFF\x16\x90RV[a#\xD4`\xE0\x88\x01a\x16gV[\x91Pa\x01@a#\xEA\x81\x86\x01\x84c\xFF\xFF\xFF\xFF\x16\x90RV[a\x01`\x92Pa\x01\0\x88\x015\x83\x86\x01Ra$\x05\x82\x89\x01\x89a#\x06V[\x92Pa\x02`a\x01\x80\x81\x81\x89\x01Ra$!a\x02\xC0\x89\x01\x86\x85a#jV[\x94Pa$/\x84\x8C\x01\x8Ca#\x06V[\x94P\x92Pa\x01\xA0\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xA0\x89\x87\x03\x01\x81\x8A\x01Ra$j\x86\x86\x86a#jV[\x95Pa$w\x87\x8D\x01a\x16\x91V[\x96Pa\x01\xC0\x94Pa$\x93\x85\x8A\x01\x88g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90RV[a$\x9E\x82\x8D\x01a\x16gV[\x96Pa\x01\xE0\x93Pa$\xB6\x84\x8A\x01\x88c\xFF\xFF\xFF\xFF\x16\x90RV[a\x02\0\x96P\x80\x8C\x015\x87\x8A\x01RPPa\x02 \x83\x8B\x015\x81\x89\x01Ra\x02@\x93P\x82\x8B\x015\x84\x89\x01Ra$\xE8\x86\x8C\x01a\x16\x91V[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x89\x84\x01R\x95Pa%\x04\x81\x8C\x01a\x16\x91V[\x95PPPPa% a\x02\x80\x86\x01\x84g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90RV[a%+\x81\x89\x01a\x12\xCDV[\x92PPa%=a\x02\xA0\x85\x01\x83\x15\x15\x90RV[`\x01`\x01`\xA0\x1B\x03\x86\x16` \x85\x01R\x91Pa%U\x90PV[`\x01`\x01`\xA0\x1B\x03\x83\x16`@\x83\x01Ra\x05IV[`\0a\x01\xE0\x82\x84\x03\x12\x15a%|W`\0\x80\xFD[a%\x84a\x11\xC9V[a%\x8D\x83a\x1C\xF2V[\x81Ra%\x9B` \x84\x01a\x1C\xF2V[` \x82\x01Ra%\xAC`@\x84\x01a\x1C\xF2V[`@\x82\x01Ra%\xBD``\x84\x01a\x1C\xF2V[``\x82\x01Ra%\xCE`\x80\x84\x01a\x1C\xF2V[`\x80\x82\x01Ra%\xDF`\xA0\x84\x01a\x1C\xF2V[`\xA0\x82\x01Ra%\xF0`\xC0\x84\x01a\x1C\xF2V[`\xC0\x82\x01Ra&\x01`\xE0\x84\x01a\x1C\xF2V[`\xE0\x82\x01Ra\x01\0a&\x14\x81\x85\x01a\x1C\xF2V[\x90\x82\x01Ra\x01 a&&\x84\x82\x01a\x1C\xF2V[\x90\x82\x01Ra\x01@a&8\x84\x82\x01a\x1C\xF2V[\x90\x82\x01Ra\x01`a&J\x84\x82\x01a\x1C\xF2V[\x90\x82\x01Ra\x01\x80a&\\\x84\x82\x01a\x1C\xF2V[\x90\x82\x01Ra\x01\xA0a&n\x84\x82\x01a\x1C\xF2V[\x90\x82\x01Ra\x01\xC0a\x1EJ\x84\x82\x01a\x1C\xF2V[`\0` \x82\x84\x03\x12\x15a&\x92W`\0\x80\xFD[\x81Qa\x08H\x81a\x12\xBFV[a\x01\0\x81\x01a&\xE4\x82\x86`\x01`\x01`\xA0\x1B\x03\x80\x82Q\x16\x83R` \x82\x01Q` \x84\x01R`@\x82\x01Q`@\x84\x01R``\x82\x01Q``\x84\x01R\x80`\x80\x83\x01Q\x16`\x80\x84\x01RPPPV[\x83\x15\x15`\xA0\x83\x01R\x82Q`\x01`\x01`\xA0\x1B\x03\x90\x81\x16`\xC0\x84\x01R` \x84\x01Q\x16`\xE0\x83\x01Ra\x05IV[` \x80\x82R\x82Q\x82\x82\x01\x81\x90R`\0\x91\x90\x84\x82\x01\x90`@\x85\x01\x90\x84[\x81\x81\x10\x15a'mWa'Z\x83\x85Q\x80Q`\x01`\x01`\xA0\x1B\x03\x16\x82R` \x80\x82\x01Q\x90\x83\x01R`@\x90\x81\x01Q\x91\x01RV[\x92\x84\x01\x92``\x92\x90\x92\x01\x91`\x01\x01a'*V[P\x90\x96\x95PPPPPPV[`\0`\xA0\x82\x84\x03\x12\x15a'\x8BW`\0\x80\xFD[`@Q`\xA0\x81\x01\x81\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17\x15a'\xAEWa'\xAEa\x11)V[`@R\x82Qa'\xBC\x81a\x12\x1EV[\x81R` \x83\x01Qa'\xCC\x81a\x12\x1EV[` \x82\x01R`@\x83\x01Qa'\xDF\x81a\x12\x1EV[`@\x82\x01R``\x83\x01Qa'\xF2\x81a\x12\x1EV[``\x82\x01R`\x80\x83\x01Qa(\x05\x81a\x12\x1EV[`\x80\x82\x01R\x93\x92PPPV[` \x80\x82R\x82Q\x82\x82\x01\x81\x90R`\0\x91\x90\x84\x82\x01\x90`@\x85\x01\x90\x84[\x81\x81\x10\x15a'mWa(]\x83\x85Q\x80Q`\x01`\x01`\xA0\x1B\x03\x16\x82R` \x80\x82\x01Q\x90\x83\x01R`@\x90\x81\x01Q\x91\x01RV[\x92\x84\x01\x92``\x92\x90\x92\x01\x91`\x01\x01a(-V[`\xC0\x81\x01a(\xB6\x82\x85`\x01`\x01`\xA0\x1B\x03\x80\x82Q\x16\x83R` \x82\x01Q` \x84\x01R`@\x82\x01Q`@\x84\x01R``\x82\x01Q``\x84\x01R\x80`\x80\x83\x01Q\x16`\x80\x84\x01RPPPV[\x82\x15\x15`\xA0\x83\x01R\x93\x92PPPV[`\0\x82Qa(\xD7\x81\x84` \x87\x01a\x13aV[\x91\x90\x91\x01\x92\x91PPV\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x608060405234801561001057600080fd5b506004361061018d5760003560e01c8063622d56f1116100e3578063b51f9c2b1161008c578063c993f27c11610066578063c993f27c1461045f578063cbeda5a714610472578063f3edcbe11461048557600080fd5b8063b51f9c2b146103ba578063ba7903db14610411578063becbdf4a1461043857600080fd5b806378ecabce116100bd57806378ecabce146103715780638970ac4414610394578063b23cc044146103a757600080fd5b8063622d56f1146103035780636624856a1461032a5780636ab5f6611461035157600080fd5b8063318b1b801161014557806354fd4d501161011f57806354fd4d501461029557806358084273146102ce578063604aa628146102e357600080fd5b8063318b1b801461024857806335e80ab31461025b57806341fe53851461028257600080fd5b80631481a724116101765780631481a724146101f65780631d8a4e921461021d57806330e9012c1461023357600080fd5b806303dbe68c146101925780630e9d5cb9146101d6575b600080fd5b6101b97f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b6101e96101e436600461131a565b610498565b6040516101cd91906113bd565b6101b97f000000000000000000000000000000000000000000000000000000000000000081565b610225610551565b6040519081526020016101cd565b61023b6105da565b6040516101cd91906113d0565b6101b9610256366004611538565b6106ee565b6101b97f000000000000000000000000000000000000000000000000000000000000000081565b6101e9610290366004611551565b610799565b60408051808201909152600581527f362e302e3000000000000000000000000000000000000000000000000000000060208201526101e9565b6102e16102dc366004611589565b61084f565b005b6102f66102f136600461169c565b61094d565b6040516101cd9190611831565b6101b97f000000000000000000000000000000000000000000000000000000000000000081565b6101b97f000000000000000000000000000000000000000000000000000000000000000081565b61036461035f36600461188d565b610a60565b6040516101cd91906118c9565b61038461037f366004611538565b610ba2565b60405190151581526020016101cd565b6101e96103a2366004611a89565b610c47565b6102e16103b5366004611b6d565b610cb3565b6103c2610dac565b6040516101cd919081516001600160a01b039081168252602080840151821690830152604080840151821690830152606080840151821690830152608092830151169181019190915260a00190565b6101b97f000000000000000000000000000000000000000000000000000000000000000081565b6101b97f000000000000000000000000000000000000000000000000000000000000000081565b6102e161046d366004611bb6565b610e59565b6102e1610480366004611b6d565b610f57565b6101e9610493366004611bd3565b611050565b6040517f0e9d5cb90000000000000000000000000000000000000000000000000000000081526060906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690630e9d5cb99061050490879087908790600401611c00565b600060405180830381865afa158015610521573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526105499190810190611c62565b949350505050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316631d8a4e926040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105d59190611cd9565b905090565b6040805161024081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810182905261012081018290526101408101829052610160810182905261018081018290526101a081018290526101c081018290526101e0810182905261020081018290526102208101919091527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166330e9012c6040518163ffffffff1660e01b815260040161024060405180830381865afa1580156106ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105d59190611cfd565b6040517f318b1b80000000000000000000000000000000000000000000000000000000008152600481018290526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063318b1b8090602401602060405180830381865afa15801561076f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107939190611e55565b92915050565b6040517f41fe53850000000000000000000000000000000000000000000000000000000081526060906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906341fe5385906108039086908690600401611e72565b600060405180830381865afa158015610820573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108489190810190611c62565b9392505050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036108b1576040517f0a57d61d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000816040516024016108c49190611f84565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f580842730000000000000000000000000000000000000000000000000000000017905290506109487f0000000000000000000000000000000000000000000000000000000000000000826110ba565b505050565b60606001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036109b1576040517f0a57d61d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000826040516024016109c49190612077565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f604aa6280000000000000000000000000000000000000000000000000000000017905290506000610a4a7f0000000000000000000000000000000000000000000000000000000000000000836110ba565b90508080602001905181019061054991906121ac565b604080516101e081018252600080825260208201819052818301819052606082018190526080820181905260a0820181905260c0820181905260e08201819052610100820181905261012082018190526101408201819052610160820181905261018082018190526101a082018190526101c082015290517fcefe12230000000000000000000000000000000000000000000000000000000081527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063cefe122390610b5e9085907f0000000000000000000000000000000000000000000000000000000000000000903390600401612395565b6101e0604051808303816000875af1158015610b7e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107939190612569565b6040517f78ecabce000000000000000000000000000000000000000000000000000000008152600481018290526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906378ecabce90602401602060405180830381865afa158015610c23573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107939190612680565b6040517f8970ac440000000000000000000000000000000000000000000000000000000081526060906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690638970ac44906105049087908790879060040161269d565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610d15576040517f0a57d61d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600081604051602401610d28919061270e565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fb23cc0440000000000000000000000000000000000000000000000000000000017905290506109487f0000000000000000000000000000000000000000000000000000000000000000826110ba565b6040805160a0810182526000808252602082018190529181018290526060810182905260808101919091527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b51f9c2b6040518163ffffffff1660e01b815260040160a060405180830381865afa158015610e35573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105d59190612779565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610ebb576040517f0a57d61d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040516001600160a01b038216602482015260009060440160408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fc993f27c0000000000000000000000000000000000000000000000000000000017905290506109487f0000000000000000000000000000000000000000000000000000000000000000826110ba565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610fb9576040517f0a57d61d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600081604051602401610fcc9190612811565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fcbeda5a70000000000000000000000000000000000000000000000000000000017905290506109487f0000000000000000000000000000000000000000000000000000000000000000826110ba565b6040517ff3edcbe10000000000000000000000000000000000000000000000000000000081526060906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063f3edcbe1906108039086908690600401612870565b6060600080846001600160a01b0316846040516110d791906128c5565b600060405180830381855af49150503d8060008114611112576040519150601f19603f3d011682016040523d82523d6000602084013e611117565b606091505b50915091508161054957805160208201fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040805190810167ffffffffffffffff8111828210171561117b5761117b611129565b60405290565b604051610180810167ffffffffffffffff8111828210171561117b5761117b611129565b604051610240810167ffffffffffffffff8111828210171561117b5761117b611129565b6040516101e0810167ffffffffffffffff8111828210171561117b5761117b611129565b604051601f8201601f1916810167ffffffffffffffff8111828210171561121657611216611129565b604052919050565b6001600160a01b038116811461123357600080fd5b50565b80356112418161121e565b919050565b60006080828403121561125857600080fd5b6040516080810181811067ffffffffffffffff8211171561127b5761127b611129565b604052905080823561128c8161121e565b80825250602083013560208201526040830135604082015260608301356112b28161121e565b6060919091015292915050565b801515811461123357600080fd5b8035611241816112bf565b6000604082840312156112ea57600080fd5b6112f2611158565b905081356112ff8161121e565b8152602082013561130f8161121e565b602082015292915050565b600080600060e0848603121561132f57600080fd5b6113398585611246565b92506080840135611349816112bf565b91506113588560a086016112d8565b90509250925092565b60005b8381101561137c578181015183820152602001611364565b8381111561138b576000848401525b50505050565b600081518084526113a9816020860160208601611361565b601f01601f19169290920160200192915050565b6020815260006108486020830184611391565b81516001600160a01b03168152610240810160208301516113fc60208401826001600160a01b03169052565b50604083015161141760408401826001600160a01b03169052565b50606083015161143260608401826001600160a01b03169052565b50608083015161144d60808401826001600160a01b03169052565b5060a083015161146860a08401826001600160a01b03169052565b5060c083015161148360c08401826001600160a01b03169052565b5060e083015161149e60e08401826001600160a01b03169052565b50610100838101516001600160a01b0390811691840191909152610120808501518216908401526101408085015182169084015261016080850151821690840152610180808501518216908401526101a0808501518216908401526101c0808501518216908401526101e080850151821690840152610200808501518216908401526102208085015191821681850152905b505092915050565b60006020828403121561154a57600080fd5b5035919050565b60008060a0838503121561156457600080fd5b61156e8484611246565b9150608083013561157e816112bf565b809150509250929050565b60006020828403121561159b57600080fd5b813567ffffffffffffffff8111156115b257600080fd5b8201610160818503121561084857600080fd5b600067ffffffffffffffff8211156115df576115df611129565b5060051b60200190565b600067ffffffffffffffff82111561160357611603611129565b50601f01601f191660200190565b600082601f83011261162257600080fd5b8135611635611630826115e9565b6111ed565b81815284602083860101111561164a57600080fd5b816020850160208301376000918101602001919091529392505050565b803563ffffffff8116811461124157600080fd5b67ffffffffffffffff8116811461123357600080fd5b80356112418161167b565b600060208083850312156116af57600080fd5b823567ffffffffffffffff808211156116c757600080fd5b818501915085601f8301126116db57600080fd5b81356116e9611630826115c5565b81815260059190911b8301840190848101908883111561170857600080fd5b8585015b83811015611824578035858111156117245760008081fd5b8601610180818c03601f190181131561173d5760008081fd5b611745611181565b89830135888111156117575760008081fd5b6117658e8c83870101611611565b8252506040611775818501611236565b8b8301526060611786818601611236565b8284015260809150611799828601611667565b818401525060a0808501358284015260c0915081850135818401525060e0808501358284015261010091506117cf828601611691565b908301526101206117e1858201611691565b828401526101409150818501358184015250610160611801818601611236565b828401526118108486016112cd565b90830152508552505091860191860161170c565b5098975050505050505050565b602080825282518282018190526000919060409081850190868401855b8281101561188057815180516001600160a01b039081168652908701511686850152928401929085019060010161184e565b5091979650505050505050565b60006020828403121561189f57600080fd5b813567ffffffffffffffff8111156118b657600080fd5b8201610260818503121561084857600080fd5b81516001600160a01b031681526101e0810160208301516118f560208401826001600160a01b03169052565b50604083015161191060408401826001600160a01b03169052565b50606083015161192b60608401826001600160a01b03169052565b50608083015161194660808401826001600160a01b03169052565b5060a083015161196160a08401826001600160a01b03169052565b5060c083015161197c60c08401826001600160a01b03169052565b5060e083015161199760e08401826001600160a01b03169052565b50610100838101516001600160a01b0390811691840191909152610120808501518216908401526101408085015182169084015261016080850151821690840152610180808501518216908401526101a0808501518216908401526101c0808501519182168185015290611530565b600060a08284031215611a1857600080fd5b60405160a0810181811067ffffffffffffffff82111715611a3b57611a3b611129565b6040529050808235611a4c8161121e565b808252506020830135602082015260408301356040820152606083013560608201526080830135611a7c8161121e565b6080919091015292915050565b60008060006101008486031215611a9f57600080fd5b611aa98585611a06565b925060a0840135611ab9816112bf565b91506113588560c086016112d8565b6000611ad6611630846115c5565b83815290506020808201906060808602850187811115611af557600080fd5b855b81811015611b615782818a031215611b0f5760008081fd5b6040805184810181811067ffffffffffffffff82111715611b3257611b32611129565b82528235611b3f8161121e565b8152828601358682015281830135918101919091528552938301938201611af7565b50505050509392505050565b600060208284031215611b7f57600080fd5b813567ffffffffffffffff811115611b9657600080fd5b8201601f81018413611ba757600080fd5b61054984823560208401611ac8565b600060208284031215611bc857600080fd5b81356108488161121e565b60008060c08385031215611be657600080fd5b611bf08484611a06565b915060a083013561157e816112bf565b60e08101611c38828680516001600160a01b039081168352602080830151908401526040808301519084015260609182015116910152565b831515608083015282516001600160a01b0390811660a084015260208401511660c0830152610549565b600060208284031215611c7457600080fd5b815167ffffffffffffffff811115611c8b57600080fd5b8201601f81018413611c9c57600080fd5b8051611caa611630826115e9565b818152856020838501011115611cbf57600080fd5b611cd0826020830160208601611361565b95945050505050565b600060208284031215611ceb57600080fd5b5051919050565b80516112418161121e565b60006102408284031215611d1057600080fd5b611d186111a5565b611d2183611cf2565b8152611d2f60208401611cf2565b6020820152611d4060408401611cf2565b6040820152611d5160608401611cf2565b6060820152611d6260808401611cf2565b6080820152611d7360a08401611cf2565b60a0820152611d8460c08401611cf2565b60c0820152611d9560e08401611cf2565b60e0820152610100611da8818501611cf2565b90820152610120611dba848201611cf2565b90820152610140611dcc848201611cf2565b90820152610160611dde848201611cf2565b90820152610180611df0848201611cf2565b908201526101a0611e02848201611cf2565b908201526101c0611e14848201611cf2565b908201526101e0611e26848201611cf2565b90820152610200611e38848201611cf2565b90820152610220611e4a848201611cf2565b908201529392505050565b600060208284031215611e6757600080fd5b81516108488161121e565b60a08101611eaa828580516001600160a01b039081168352602080830151908401526040808301519084015260609182015116910152565b82151560808301529392505050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112611eee57600080fd5b830160208101925035905067ffffffffffffffff811115611f0e57600080fd5b606081023603821315611f2057600080fd5b9250929050565b8183526000602080850194508260005b85811015611f79578135611f4a8161121e565b6001600160a01b0316875281830135838801526040808301359088015260609687019690910190600101611f37565b509495945050505050565b6020815260008235611f95816112bf565b80151560208401525060208301356040830152604083013560608301526060830135611fc08161121e565b6001600160a01b03808216608085015260808501359150611fe08261121e565b80821660a0850152505060a083013560c083015260c083013560e083015261010060e0840135818401528084013590506120198161167b565b61012067ffffffffffffffff821681850152612036818601611691565b9150506101406120518185018367ffffffffffffffff169052565b61205d81860186611eb9565b6101608681015292509050611cd061018085018383611f27565b60006020808301818452808551808352604092508286019150828160051b87010184880160005b8381101561219e577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0898403018552815161018081518186526120e382870182611391565b915050888201516120fe8a8701826001600160a01b03169052565b50878201516001600160a01b03908116868a015260608084015163ffffffff16908701526080808401519087015260a0808401519087015260c0808401519087015260e08084015167ffffffffffffffff908116918801919091526101008085015190911690870152610120808401519087015261014080840151909116908601526101609182015115159190940152938601939086019060010161209e565b509098975050505050505050565b600060208083850312156121bf57600080fd5b825167ffffffffffffffff8111156121d657600080fd5b8301601f810185136121e757600080fd5b80516121f5611630826115c5565b81815260069190911b8201830190838101908783111561221457600080fd5b928401925b8284101561226a57604084890312156122325760008081fd5b61223a611158565b84516122458161121e565b8152848601516122548161121e565b8187015282526040939093019290840190612219565b979650505050505050565b80356122808161121e565b6001600160a01b03908116835260208201359061229c8261121e565b90811660208401526040820135906122b38261121e565b90811660408401526060820135906122ca8261121e565b90811660608401526080820135906122e18261121e565b908116608084015260a0820135906122f88261121e565b80821660a085015250505050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261233b57600080fd5b830160208101925035905067ffffffffffffffff81111561235b57600080fd5b803603821315611f2057600080fd5b818352818160208501375060006020828401015260006020601f19601f840116840101905092915050565b606081526123a66060820185612275565b60006123b460c08601611667565b6101206123c88185018363ffffffff169052565b6123d460e08801611667565b91506101406123ea8186018463ffffffff169052565b61016092506101008801358386015261240582890189612306565b925061026061018081818901526124216102c08901868561236a565b945061242f848c018c612306565b945092506101a07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa089870301818a015261246a86868661236a565b9550612477878d01611691565b96506101c09450612493858a018867ffffffffffffffff169052565b61249e828d01611667565b96506101e093506124b6848a018863ffffffff169052565b6102009650808c0135878a01525050610220838b0135818901526102409350828b0135848901526124e8868c01611691565b67ffffffffffffffff8116898401529550612504818c01611691565b955050505061252061028086018467ffffffffffffffff169052565b61252b8189016112cd565b92505061253d6102a085018315159052565b6001600160a01b038616602085015291506125559050565b6001600160a01b0383166040830152610549565b60006101e0828403121561257c57600080fd5b6125846111c9565b61258d83611cf2565b815261259b60208401611cf2565b60208201526125ac60408401611cf2565b60408201526125bd60608401611cf2565b60608201526125ce60808401611cf2565b60808201526125df60a08401611cf2565b60a08201526125f060c08401611cf2565b60c082015261260160e08401611cf2565b60e0820152610100612614818501611cf2565b90820152610120612626848201611cf2565b90820152610140612638848201611cf2565b9082015261016061264a848201611cf2565b9082015261018061265c848201611cf2565b908201526101a061266e848201611cf2565b908201526101c0611e4a848201611cf2565b60006020828403121561269257600080fd5b8151610848816112bf565b61010081016126e482866001600160a01b03808251168352602082015160208401526040820151604084015260608201516060840152806080830151166080840152505050565b83151560a083015282516001600160a01b0390811660c084015260208401511660e0830152610549565b6020808252825182820181905260009190848201906040850190845b8181101561276d5761275a83855180516001600160a01b0316825260208082015190830152604090810151910152565b928401926060929092019160010161272a565b50909695505050505050565b600060a0828403121561278b57600080fd5b60405160a0810181811067ffffffffffffffff821117156127ae576127ae611129565b60405282516127bc8161121e565b815260208301516127cc8161121e565b602082015260408301516127df8161121e565b604082015260608301516127f28161121e565b606082015260808301516128058161121e565b60808201529392505050565b6020808252825182820181905260009190848201906040850190845b8181101561276d5761285d83855180516001600160a01b0316825260208082015190830152604090810151910152565b928401926060929092019160010161282d565b60c081016128b682856001600160a01b03808251168352602082015160208401526040820151604084015260608201516060840152806080830151166080840152505050565b82151560a08301529392505050565b600082516128d7818460208701611361565b919091019291505056fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`\x046\x10a\x01\x8DW`\x005`\xE0\x1C\x80cb-V\xF1\x11a\0\xE3W\x80c\xB5\x1F\x9C+\x11a\0\x8CW\x80c\xC9\x93\xF2|\x11a\0fW\x80c\xC9\x93\xF2|\x14a\x04_W\x80c\xCB\xED\xA5\xA7\x14a\x04rW\x80c\xF3\xED\xCB\xE1\x14a\x04\x85W`\0\x80\xFD[\x80c\xB5\x1F\x9C+\x14a\x03\xBAW\x80c\xBAy\x03\xDB\x14a\x04\x11W\x80c\xBE\xCB\xDFJ\x14a\x048W`\0\x80\xFD[\x80cx\xEC\xAB\xCE\x11a\0\xBDW\x80cx\xEC\xAB\xCE\x14a\x03qW\x80c\x89p\xACD\x14a\x03\x94W\x80c\xB2<\xC0D\x14a\x03\xA7W`\0\x80\xFD[\x80cb-V\xF1\x14a\x03\x03W\x80cf$\x85j\x14a\x03*W\x80cj\xB5\xF6a\x14a\x03QW`\0\x80\xFD[\x80c1\x8B\x1B\x80\x11a\x01EW\x80cT\xFDMP\x11a\x01\x1FW\x80cT\xFDMP\x14a\x02\x95W\x80cX\x08Bs\x14a\x02\xCEW\x80c`J\xA6(\x14a\x02\xE3W`\0\x80\xFD[\x80c1\x8B\x1B\x80\x14a\x02HW\x80c5\xE8\n\xB3\x14a\x02[W\x80cA\xFES\x85\x14a\x02\x82W`\0\x80\xFD[\x80c\x14\x81\xA7$\x11a\x01vW\x80c\x14\x81\xA7$\x14a\x01\xF6W\x80c\x1D\x8AN\x92\x14a\x02\x1DW\x80c0\xE9\x01,\x14a\x023W`\0\x80\xFD[\x80c\x03\xDB\xE6\x8C\x14a\x01\x92W\x80c\x0E\x9D\\\xB9\x14a\x01\xD6W[`\0\x80\xFD[a\x01\xB9\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[a\x01\xE9a\x01\xE46`\x04a\x13\x1AV[a\x04\x98V[`@Qa\x01\xCD\x91\x90a\x13\xBDV[a\x01\xB9\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[a\x02%a\x05QV[`@Q\x90\x81R` \x01a\x01\xCDV[a\x02;a\x05\xDAV[`@Qa\x01\xCD\x91\x90a\x13\xD0V[a\x01\xB9a\x02V6`\x04a\x158V[a\x06\xEEV[a\x01\xB9\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[a\x01\xE9a\x02\x906`\x04a\x15QV[a\x07\x99V[`@\x80Q\x80\x82\x01\x90\x91R`\x05\x81R\x7F6.0.0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0` \x82\x01Ra\x01\xE9V[a\x02\xE1a\x02\xDC6`\x04a\x15\x89V[a\x08OV[\0[a\x02\xF6a\x02\xF16`\x04a\x16\x9CV[a\tMV[`@Qa\x01\xCD\x91\x90a\x181V[a\x01\xB9\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[a\x01\xB9\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[a\x03da\x03_6`\x04a\x18\x8DV[a\n`V[`@Qa\x01\xCD\x91\x90a\x18\xC9V[a\x03\x84a\x03\x7F6`\x04a\x158V[a\x0B\xA2V[`@Q\x90\x15\x15\x81R` \x01a\x01\xCDV[a\x01\xE9a\x03\xA26`\x04a\x1A\x89V[a\x0CGV[a\x02\xE1a\x03\xB56`\x04a\x1BmV[a\x0C\xB3V[a\x03\xC2a\r\xACV[`@Qa\x01\xCD\x91\x90\x81Q`\x01`\x01`\xA0\x1B\x03\x90\x81\x16\x82R` \x80\x84\x01Q\x82\x16\x90\x83\x01R`@\x80\x84\x01Q\x82\x16\x90\x83\x01R``\x80\x84\x01Q\x82\x16\x90\x83\x01R`\x80\x92\x83\x01Q\x16\x91\x81\x01\x91\x90\x91R`\xA0\x01\x90V[a\x01\xB9\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[a\x01\xB9\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[a\x02\xE1a\x04m6`\x04a\x1B\xB6V[a\x0EYV[a\x02\xE1a\x04\x806`\x04a\x1BmV[a\x0FWV[a\x01\xE9a\x04\x936`\x04a\x1B\xD3V[a\x10PV[`@Q\x7F\x0E\x9D\\\xB9\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``\x90`\x01`\x01`\xA0\x1B\x03\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x90c\x0E\x9D\\\xB9\x90a\x05\x04\x90\x87\x90\x87\x90\x87\x90`\x04\x01a\x1C\0V[`\0`@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x05!W=`\0\x80>=`\0\xFD[PPPP`@Q=`\0\x82>`\x1F=\x90\x81\x01`\x1F\x19\x16\x82\x01`@Ra\x05I\x91\x90\x81\x01\x90a\x1CbV[\x94\x93PPPPV[`\0\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16c\x1D\x8AN\x92`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x05\xB1W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x05\xD5\x91\x90a\x1C\xD9V[\x90P\x90V[`@\x80Qa\x02@\x81\x01\x82R`\0\x80\x82R` \x82\x01\x81\x90R\x91\x81\x01\x82\x90R``\x81\x01\x82\x90R`\x80\x81\x01\x82\x90R`\xA0\x81\x01\x82\x90R`\xC0\x81\x01\x82\x90R`\xE0\x81\x01\x82\x90Ra\x01\0\x81\x01\x82\x90Ra\x01 \x81\x01\x82\x90Ra\x01@\x81\x01\x82\x90Ra\x01`\x81\x01\x82\x90Ra\x01\x80\x81\x01\x82\x90Ra\x01\xA0\x81\x01\x82\x90Ra\x01\xC0\x81\x01\x82\x90Ra\x01\xE0\x81\x01\x82\x90Ra\x02\0\x81\x01\x82\x90Ra\x02 \x81\x01\x91\x90\x91R\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16c0\xE9\x01,`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01a\x02@`@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x06\xCAW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x05\xD5\x91\x90a\x1C\xFDV[`@Q\x7F1\x8B\x1B\x80\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\x81\x01\x82\x90R`\0\x90\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16\x90c1\x8B\x1B\x80\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x07oW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x07\x93\x91\x90a\x1EUV[\x92\x91PPV[`@Q\x7FA\xFES\x85\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``\x90`\x01`\x01`\xA0\x1B\x03\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x90cA\xFES\x85\x90a\x08\x03\x90\x86\x90\x86\x90`\x04\x01a\x1ErV[`\0`@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x08 W=`\0\x80>=`\0\xFD[PPPP`@Q=`\0\x82>`\x1F=\x90\x81\x01`\x1F\x19\x16\x82\x01`@Ra\x08H\x91\x90\x81\x01\x90a\x1CbV[\x93\x92PPPV[`\x01`\x01`\xA0\x1B\x03\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x160\x03a\x08\xB1W`@Q\x7F\nW\xD6\x1D\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\x01`@Q\x80\x91\x03\x90\xFD[`\0\x81`@Q`$\x01a\x08\xC4\x91\x90a\x1F\x84V[`@\x80Q`\x1F\x19\x81\x84\x03\x01\x81R\x91\x90R` \x81\x01\x80Q{\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7FX\x08Bs\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\x17\x90R\x90Pa\tH\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x82a\x10\xBAV[PPPV[```\x01`\x01`\xA0\x1B\x03\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x160\x03a\t\xB1W`@Q\x7F\nW\xD6\x1D\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\x01`@Q\x80\x91\x03\x90\xFD[`\0\x82`@Q`$\x01a\t\xC4\x91\x90a wV[`@\x80Q`\x1F\x19\x81\x84\x03\x01\x81R\x91\x90R` \x81\x01\x80Q{\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F`J\xA6(\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\x17\x90R\x90P`\0a\nJ\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x83a\x10\xBAV[\x90P\x80\x80` \x01\x90Q\x81\x01\x90a\x05I\x91\x90a!\xACV[`@\x80Qa\x01\xE0\x81\x01\x82R`\0\x80\x82R` \x82\x01\x81\x90R\x81\x83\x01\x81\x90R``\x82\x01\x81\x90R`\x80\x82\x01\x81\x90R`\xA0\x82\x01\x81\x90R`\xC0\x82\x01\x81\x90R`\xE0\x82\x01\x81\x90Ra\x01\0\x82\x01\x81\x90Ra\x01 \x82\x01\x81\x90Ra\x01@\x82\x01\x81\x90Ra\x01`\x82\x01\x81\x90Ra\x01\x80\x82\x01\x81\x90Ra\x01\xA0\x82\x01\x81\x90Ra\x01\xC0\x82\x01R\x90Q\x7F\xCE\xFE\x12#\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\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16\x90c\xCE\xFE\x12#\x90a\x0B^\x90\x85\x90\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x903\x90`\x04\x01a#\x95V[a\x01\xE0`@Q\x80\x83\x03\x81`\0\x87Z\xF1\x15\x80\x15a\x0B~W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x07\x93\x91\x90a%iV[`@Q\x7Fx\xEC\xAB\xCE\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\x81\x01\x82\x90R`\0\x90\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16\x90cx\xEC\xAB\xCE\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x0C#W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x07\x93\x91\x90a&\x80V[`@Q\x7F\x89p\xACD\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``\x90`\x01`\x01`\xA0\x1B\x03\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x90c\x89p\xACD\x90a\x05\x04\x90\x87\x90\x87\x90\x87\x90`\x04\x01a&\x9DV[`\x01`\x01`\xA0\x1B\x03\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x160\x03a\r\x15W`@Q\x7F\nW\xD6\x1D\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\x01`@Q\x80\x91\x03\x90\xFD[`\0\x81`@Q`$\x01a\r(\x91\x90a'\x0EV[`@\x80Q`\x1F\x19\x81\x84\x03\x01\x81R\x91\x90R` \x81\x01\x80Q{\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xB2<\xC0D\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\x17\x90R\x90Pa\tH\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x82a\x10\xBAV[`@\x80Q`\xA0\x81\x01\x82R`\0\x80\x82R` \x82\x01\x81\x90R\x91\x81\x01\x82\x90R``\x81\x01\x82\x90R`\x80\x81\x01\x91\x90\x91R\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16c\xB5\x1F\x9C+`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01`\xA0`@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x0E5W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x05\xD5\x91\x90a'yV[`\x01`\x01`\xA0\x1B\x03\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x160\x03a\x0E\xBBW`@Q\x7F\nW\xD6\x1D\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\x01`@Q\x80\x91\x03\x90\xFD[`@Q`\x01`\x01`\xA0\x1B\x03\x82\x16`$\x82\x01R`\0\x90`D\x01`@\x80Q`\x1F\x19\x81\x84\x03\x01\x81R\x91\x90R` \x81\x01\x80Q{\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xC9\x93\xF2|\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\x17\x90R\x90Pa\tH\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x82a\x10\xBAV[`\x01`\x01`\xA0\x1B\x03\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x160\x03a\x0F\xB9W`@Q\x7F\nW\xD6\x1D\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\x01`@Q\x80\x91\x03\x90\xFD[`\0\x81`@Q`$\x01a\x0F\xCC\x91\x90a(\x11V[`@\x80Q`\x1F\x19\x81\x84\x03\x01\x81R\x91\x90R` \x81\x01\x80Q{\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xCB\xED\xA5\xA7\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\x17\x90R\x90Pa\tH\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x82a\x10\xBAV[`@Q\x7F\xF3\xED\xCB\xE1\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``\x90`\x01`\x01`\xA0\x1B\x03\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x90c\xF3\xED\xCB\xE1\x90a\x08\x03\x90\x86\x90\x86\x90`\x04\x01a(pV[```\0\x80\x84`\x01`\x01`\xA0\x1B\x03\x16\x84`@Qa\x10\xD7\x91\x90a(\xC5V[`\0`@Q\x80\x83\x03\x81\x85Z\xF4\x91PP=\x80`\0\x81\x14a\x11\x12W`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=`\0` \x84\x01>a\x11\x17V[``\x91P[P\x91P\x91P\x81a\x05IW\x80Q` \x82\x01\xFD[\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[`@\x80Q\x90\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a\x11{Wa\x11{a\x11)V[`@R\x90V[`@Qa\x01\x80\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a\x11{Wa\x11{a\x11)V[`@Qa\x02@\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a\x11{Wa\x11{a\x11)V[`@Qa\x01\xE0\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a\x11{Wa\x11{a\x11)V[`@Q`\x1F\x82\x01`\x1F\x19\x16\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a\x12\x16Wa\x12\x16a\x11)V[`@R\x91\x90PV[`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a\x123W`\0\x80\xFD[PV[\x805a\x12A\x81a\x12\x1EV[\x91\x90PV[`\0`\x80\x82\x84\x03\x12\x15a\x12XW`\0\x80\xFD[`@Q`\x80\x81\x01\x81\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17\x15a\x12{Wa\x12{a\x11)V[`@R\x90P\x80\x825a\x12\x8C\x81a\x12\x1EV[\x80\x82RP` \x83\x015` \x82\x01R`@\x83\x015`@\x82\x01R``\x83\x015a\x12\xB2\x81a\x12\x1EV[``\x91\x90\x91\x01R\x92\x91PPV[\x80\x15\x15\x81\x14a\x123W`\0\x80\xFD[\x805a\x12A\x81a\x12\xBFV[`\0`@\x82\x84\x03\x12\x15a\x12\xEAW`\0\x80\xFD[a\x12\xF2a\x11XV[\x90P\x815a\x12\xFF\x81a\x12\x1EV[\x81R` \x82\x015a\x13\x0F\x81a\x12\x1EV[` \x82\x01R\x92\x91PPV[`\0\x80`\0`\xE0\x84\x86\x03\x12\x15a\x13/W`\0\x80\xFD[a\x139\x85\x85a\x12FV[\x92P`\x80\x84\x015a\x13I\x81a\x12\xBFV[\x91Pa\x13X\x85`\xA0\x86\x01a\x12\xD8V[\x90P\x92P\x92P\x92V[`\0[\x83\x81\x10\x15a\x13|W\x81\x81\x01Q\x83\x82\x01R` \x01a\x13dV[\x83\x81\x11\x15a\x13\x8BW`\0\x84\x84\x01R[PPPPV[`\0\x81Q\x80\x84Ra\x13\xA9\x81` \x86\x01` \x86\x01a\x13aV[`\x1F\x01`\x1F\x19\x16\x92\x90\x92\x01` \x01\x92\x91PPV[` \x81R`\0a\x08H` \x83\x01\x84a\x13\x91V[\x81Q`\x01`\x01`\xA0\x1B\x03\x16\x81Ra\x02@\x81\x01` \x83\x01Qa\x13\xFC` \x84\x01\x82`\x01`\x01`\xA0\x1B\x03\x16\x90RV[P`@\x83\x01Qa\x14\x17`@\x84\x01\x82`\x01`\x01`\xA0\x1B\x03\x16\x90RV[P``\x83\x01Qa\x142``\x84\x01\x82`\x01`\x01`\xA0\x1B\x03\x16\x90RV[P`\x80\x83\x01Qa\x14M`\x80\x84\x01\x82`\x01`\x01`\xA0\x1B\x03\x16\x90RV[P`\xA0\x83\x01Qa\x14h`\xA0\x84\x01\x82`\x01`\x01`\xA0\x1B\x03\x16\x90RV[P`\xC0\x83\x01Qa\x14\x83`\xC0\x84\x01\x82`\x01`\x01`\xA0\x1B\x03\x16\x90RV[P`\xE0\x83\x01Qa\x14\x9E`\xE0\x84\x01\x82`\x01`\x01`\xA0\x1B\x03\x16\x90RV[Pa\x01\0\x83\x81\x01Q`\x01`\x01`\xA0\x1B\x03\x90\x81\x16\x91\x84\x01\x91\x90\x91Ra\x01 \x80\x85\x01Q\x82\x16\x90\x84\x01Ra\x01@\x80\x85\x01Q\x82\x16\x90\x84\x01Ra\x01`\x80\x85\x01Q\x82\x16\x90\x84\x01Ra\x01\x80\x80\x85\x01Q\x82\x16\x90\x84\x01Ra\x01\xA0\x80\x85\x01Q\x82\x16\x90\x84\x01Ra\x01\xC0\x80\x85\x01Q\x82\x16\x90\x84\x01Ra\x01\xE0\x80\x85\x01Q\x82\x16\x90\x84\x01Ra\x02\0\x80\x85\x01Q\x82\x16\x90\x84\x01Ra\x02 \x80\x85\x01Q\x91\x82\x16\x81\x85\x01R\x90[PP\x92\x91PPV[`\0` \x82\x84\x03\x12\x15a\x15JW`\0\x80\xFD[P5\x91\x90PV[`\0\x80`\xA0\x83\x85\x03\x12\x15a\x15dW`\0\x80\xFD[a\x15n\x84\x84a\x12FV[\x91P`\x80\x83\x015a\x15~\x81a\x12\xBFV[\x80\x91PP\x92P\x92\x90PV[`\0` \x82\x84\x03\x12\x15a\x15\x9BW`\0\x80\xFD[\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x15\xB2W`\0\x80\xFD[\x82\x01a\x01`\x81\x85\x03\x12\x15a\x08HW`\0\x80\xFD[`\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x15a\x15\xDFWa\x15\xDFa\x11)V[P`\x05\x1B` \x01\x90V[`\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x15a\x16\x03Wa\x16\x03a\x11)V[P`\x1F\x01`\x1F\x19\x16` \x01\x90V[`\0\x82`\x1F\x83\x01\x12a\x16\"W`\0\x80\xFD[\x815a\x165a\x160\x82a\x15\xE9V[a\x11\xEDV[\x81\x81R\x84` \x83\x86\x01\x01\x11\x15a\x16JW`\0\x80\xFD[\x81` \x85\x01` \x83\x017`\0\x91\x81\x01` \x01\x91\x90\x91R\x93\x92PPPV[\x805c\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x12AW`\0\x80\xFD[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x123W`\0\x80\xFD[\x805a\x12A\x81a\x16{V[`\0` \x80\x83\x85\x03\x12\x15a\x16\xAFW`\0\x80\xFD[\x825g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x16\xC7W`\0\x80\xFD[\x81\x85\x01\x91P\x85`\x1F\x83\x01\x12a\x16\xDBW`\0\x80\xFD[\x815a\x16\xE9a\x160\x82a\x15\xC5V[\x81\x81R`\x05\x91\x90\x91\x1B\x83\x01\x84\x01\x90\x84\x81\x01\x90\x88\x83\x11\x15a\x17\x08W`\0\x80\xFD[\x85\x85\x01[\x83\x81\x10\x15a\x18$W\x805\x85\x81\x11\x15a\x17$W`\0\x80\x81\xFD[\x86\x01a\x01\x80\x81\x8C\x03`\x1F\x19\x01\x81\x13\x15a\x17=W`\0\x80\x81\xFD[a\x17Ea\x11\x81V[\x89\x83\x015\x88\x81\x11\x15a\x17WW`\0\x80\x81\xFD[a\x17e\x8E\x8C\x83\x87\x01\x01a\x16\x11V[\x82RP`@a\x17u\x81\x85\x01a\x126V[\x8B\x83\x01R``a\x17\x86\x81\x86\x01a\x126V[\x82\x84\x01R`\x80\x91Pa\x17\x99\x82\x86\x01a\x16gV[\x81\x84\x01RP`\xA0\x80\x85\x015\x82\x84\x01R`\xC0\x91P\x81\x85\x015\x81\x84\x01RP`\xE0\x80\x85\x015\x82\x84\x01Ra\x01\0\x91Pa\x17\xCF\x82\x86\x01a\x16\x91V[\x90\x83\x01Ra\x01 a\x17\xE1\x85\x82\x01a\x16\x91V[\x82\x84\x01Ra\x01@\x91P\x81\x85\x015\x81\x84\x01RPa\x01`a\x18\x01\x81\x86\x01a\x126V[\x82\x84\x01Ra\x18\x10\x84\x86\x01a\x12\xCDV[\x90\x83\x01RP\x85RPP\x91\x86\x01\x91\x86\x01a\x17\x0CV[P\x98\x97PPPPPPPPV[` \x80\x82R\x82Q\x82\x82\x01\x81\x90R`\0\x91\x90`@\x90\x81\x85\x01\x90\x86\x84\x01\x85[\x82\x81\x10\x15a\x18\x80W\x81Q\x80Q`\x01`\x01`\xA0\x1B\x03\x90\x81\x16\x86R\x90\x87\x01Q\x16\x86\x85\x01R\x92\x84\x01\x92\x90\x85\x01\x90`\x01\x01a\x18NV[P\x91\x97\x96PPPPPPPV[`\0` \x82\x84\x03\x12\x15a\x18\x9FW`\0\x80\xFD[\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x18\xB6W`\0\x80\xFD[\x82\x01a\x02`\x81\x85\x03\x12\x15a\x08HW`\0\x80\xFD[\x81Q`\x01`\x01`\xA0\x1B\x03\x16\x81Ra\x01\xE0\x81\x01` \x83\x01Qa\x18\xF5` \x84\x01\x82`\x01`\x01`\xA0\x1B\x03\x16\x90RV[P`@\x83\x01Qa\x19\x10`@\x84\x01\x82`\x01`\x01`\xA0\x1B\x03\x16\x90RV[P``\x83\x01Qa\x19+``\x84\x01\x82`\x01`\x01`\xA0\x1B\x03\x16\x90RV[P`\x80\x83\x01Qa\x19F`\x80\x84\x01\x82`\x01`\x01`\xA0\x1B\x03\x16\x90RV[P`\xA0\x83\x01Qa\x19a`\xA0\x84\x01\x82`\x01`\x01`\xA0\x1B\x03\x16\x90RV[P`\xC0\x83\x01Qa\x19|`\xC0\x84\x01\x82`\x01`\x01`\xA0\x1B\x03\x16\x90RV[P`\xE0\x83\x01Qa\x19\x97`\xE0\x84\x01\x82`\x01`\x01`\xA0\x1B\x03\x16\x90RV[Pa\x01\0\x83\x81\x01Q`\x01`\x01`\xA0\x1B\x03\x90\x81\x16\x91\x84\x01\x91\x90\x91Ra\x01 \x80\x85\x01Q\x82\x16\x90\x84\x01Ra\x01@\x80\x85\x01Q\x82\x16\x90\x84\x01Ra\x01`\x80\x85\x01Q\x82\x16\x90\x84\x01Ra\x01\x80\x80\x85\x01Q\x82\x16\x90\x84\x01Ra\x01\xA0\x80\x85\x01Q\x82\x16\x90\x84\x01Ra\x01\xC0\x80\x85\x01Q\x91\x82\x16\x81\x85\x01R\x90a\x150V[`\0`\xA0\x82\x84\x03\x12\x15a\x1A\x18W`\0\x80\xFD[`@Q`\xA0\x81\x01\x81\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17\x15a\x1A;Wa\x1A;a\x11)V[`@R\x90P\x80\x825a\x1AL\x81a\x12\x1EV[\x80\x82RP` \x83\x015` \x82\x01R`@\x83\x015`@\x82\x01R``\x83\x015``\x82\x01R`\x80\x83\x015a\x1A|\x81a\x12\x1EV[`\x80\x91\x90\x91\x01R\x92\x91PPV[`\0\x80`\0a\x01\0\x84\x86\x03\x12\x15a\x1A\x9FW`\0\x80\xFD[a\x1A\xA9\x85\x85a\x1A\x06V[\x92P`\xA0\x84\x015a\x1A\xB9\x81a\x12\xBFV[\x91Pa\x13X\x85`\xC0\x86\x01a\x12\xD8V[`\0a\x1A\xD6a\x160\x84a\x15\xC5V[\x83\x81R\x90P` \x80\x82\x01\x90``\x80\x86\x02\x85\x01\x87\x81\x11\x15a\x1A\xF5W`\0\x80\xFD[\x85[\x81\x81\x10\x15a\x1BaW\x82\x81\x8A\x03\x12\x15a\x1B\x0FW`\0\x80\x81\xFD[`@\x80Q\x84\x81\x01\x81\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17\x15a\x1B2Wa\x1B2a\x11)V[\x82R\x825a\x1B?\x81a\x12\x1EV[\x81R\x82\x86\x015\x86\x82\x01R\x81\x83\x015\x91\x81\x01\x91\x90\x91R\x85R\x93\x83\x01\x93\x82\x01a\x1A\xF7V[PPPPP\x93\x92PPPV[`\0` \x82\x84\x03\x12\x15a\x1B\x7FW`\0\x80\xFD[\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x1B\x96W`\0\x80\xFD[\x82\x01`\x1F\x81\x01\x84\x13a\x1B\xA7W`\0\x80\xFD[a\x05I\x84\x825` \x84\x01a\x1A\xC8V[`\0` \x82\x84\x03\x12\x15a\x1B\xC8W`\0\x80\xFD[\x815a\x08H\x81a\x12\x1EV[`\0\x80`\xC0\x83\x85\x03\x12\x15a\x1B\xE6W`\0\x80\xFD[a\x1B\xF0\x84\x84a\x1A\x06V[\x91P`\xA0\x83\x015a\x15~\x81a\x12\xBFV[`\xE0\x81\x01a\x1C8\x82\x86\x80Q`\x01`\x01`\xA0\x1B\x03\x90\x81\x16\x83R` \x80\x83\x01Q\x90\x84\x01R`@\x80\x83\x01Q\x90\x84\x01R``\x91\x82\x01Q\x16\x91\x01RV[\x83\x15\x15`\x80\x83\x01R\x82Q`\x01`\x01`\xA0\x1B\x03\x90\x81\x16`\xA0\x84\x01R` \x84\x01Q\x16`\xC0\x83\x01Ra\x05IV[`\0` \x82\x84\x03\x12\x15a\x1CtW`\0\x80\xFD[\x81Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x1C\x8BW`\0\x80\xFD[\x82\x01`\x1F\x81\x01\x84\x13a\x1C\x9CW`\0\x80\xFD[\x80Qa\x1C\xAAa\x160\x82a\x15\xE9V[\x81\x81R\x85` \x83\x85\x01\x01\x11\x15a\x1C\xBFW`\0\x80\xFD[a\x1C\xD0\x82` \x83\x01` \x86\x01a\x13aV[\x95\x94PPPPPV[`\0` \x82\x84\x03\x12\x15a\x1C\xEBW`\0\x80\xFD[PQ\x91\x90PV[\x80Qa\x12A\x81a\x12\x1EV[`\0a\x02@\x82\x84\x03\x12\x15a\x1D\x10W`\0\x80\xFD[a\x1D\x18a\x11\xA5V[a\x1D!\x83a\x1C\xF2V[\x81Ra\x1D/` \x84\x01a\x1C\xF2V[` \x82\x01Ra\x1D@`@\x84\x01a\x1C\xF2V[`@\x82\x01Ra\x1DQ``\x84\x01a\x1C\xF2V[``\x82\x01Ra\x1Db`\x80\x84\x01a\x1C\xF2V[`\x80\x82\x01Ra\x1Ds`\xA0\x84\x01a\x1C\xF2V[`\xA0\x82\x01Ra\x1D\x84`\xC0\x84\x01a\x1C\xF2V[`\xC0\x82\x01Ra\x1D\x95`\xE0\x84\x01a\x1C\xF2V[`\xE0\x82\x01Ra\x01\0a\x1D\xA8\x81\x85\x01a\x1C\xF2V[\x90\x82\x01Ra\x01 a\x1D\xBA\x84\x82\x01a\x1C\xF2V[\x90\x82\x01Ra\x01@a\x1D\xCC\x84\x82\x01a\x1C\xF2V[\x90\x82\x01Ra\x01`a\x1D\xDE\x84\x82\x01a\x1C\xF2V[\x90\x82\x01Ra\x01\x80a\x1D\xF0\x84\x82\x01a\x1C\xF2V[\x90\x82\x01Ra\x01\xA0a\x1E\x02\x84\x82\x01a\x1C\xF2V[\x90\x82\x01Ra\x01\xC0a\x1E\x14\x84\x82\x01a\x1C\xF2V[\x90\x82\x01Ra\x01\xE0a\x1E&\x84\x82\x01a\x1C\xF2V[\x90\x82\x01Ra\x02\0a\x1E8\x84\x82\x01a\x1C\xF2V[\x90\x82\x01Ra\x02 a\x1EJ\x84\x82\x01a\x1C\xF2V[\x90\x82\x01R\x93\x92PPPV[`\0` \x82\x84\x03\x12\x15a\x1EgW`\0\x80\xFD[\x81Qa\x08H\x81a\x12\x1EV[`\xA0\x81\x01a\x1E\xAA\x82\x85\x80Q`\x01`\x01`\xA0\x1B\x03\x90\x81\x16\x83R` \x80\x83\x01Q\x90\x84\x01R`@\x80\x83\x01Q\x90\x84\x01R``\x91\x82\x01Q\x16\x91\x01RV[\x82\x15\x15`\x80\x83\x01R\x93\x92PPPV[`\0\x80\x835\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE1\x846\x03\x01\x81\x12a\x1E\xEEW`\0\x80\xFD[\x83\x01` \x81\x01\x92P5\x90Pg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x1F\x0EW`\0\x80\xFD[``\x81\x026\x03\x82\x13\x15a\x1F W`\0\x80\xFD[\x92P\x92\x90PV[\x81\x83R`\0` \x80\x85\x01\x94P\x82`\0[\x85\x81\x10\x15a\x1FyW\x815a\x1FJ\x81a\x12\x1EV[`\x01`\x01`\xA0\x1B\x03\x16\x87R\x81\x83\x015\x83\x88\x01R`@\x80\x83\x015\x90\x88\x01R``\x96\x87\x01\x96\x90\x91\x01\x90`\x01\x01a\x1F7V[P\x94\x95\x94PPPPPV[` \x81R`\0\x825a\x1F\x95\x81a\x12\xBFV[\x80\x15\x15` \x84\x01RP` \x83\x015`@\x83\x01R`@\x83\x015``\x83\x01R``\x83\x015a\x1F\xC0\x81a\x12\x1EV[`\x01`\x01`\xA0\x1B\x03\x80\x82\x16`\x80\x85\x01R`\x80\x85\x015\x91Pa\x1F\xE0\x82a\x12\x1EV[\x80\x82\x16`\xA0\x85\x01RPP`\xA0\x83\x015`\xC0\x83\x01R`\xC0\x83\x015`\xE0\x83\x01Ra\x01\0`\xE0\x84\x015\x81\x84\x01R\x80\x84\x015\x90Pa \x19\x81a\x16{V[a\x01 g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16\x81\x85\x01Ra 6\x81\x86\x01a\x16\x91V[\x91PPa\x01@a Q\x81\x85\x01\x83g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90RV[a ]\x81\x86\x01\x86a\x1E\xB9V[a\x01`\x86\x81\x01R\x92P\x90Pa\x1C\xD0a\x01\x80\x85\x01\x83\x83a\x1F'V[`\0` \x80\x83\x01\x81\x84R\x80\x85Q\x80\x83R`@\x92P\x82\x86\x01\x91P\x82\x81`\x05\x1B\x87\x01\x01\x84\x88\x01`\0[\x83\x81\x10\x15a!\x9EW\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xC0\x89\x84\x03\x01\x85R\x81Qa\x01\x80\x81Q\x81\x86Ra \xE3\x82\x87\x01\x82a\x13\x91V[\x91PP\x88\x82\x01Qa \xFE\x8A\x87\x01\x82`\x01`\x01`\xA0\x1B\x03\x16\x90RV[P\x87\x82\x01Q`\x01`\x01`\xA0\x1B\x03\x90\x81\x16\x86\x8A\x01R``\x80\x84\x01Qc\xFF\xFF\xFF\xFF\x16\x90\x87\x01R`\x80\x80\x84\x01Q\x90\x87\x01R`\xA0\x80\x84\x01Q\x90\x87\x01R`\xC0\x80\x84\x01Q\x90\x87\x01R`\xE0\x80\x84\x01Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x81\x16\x91\x88\x01\x91\x90\x91Ra\x01\0\x80\x85\x01Q\x90\x91\x16\x90\x87\x01Ra\x01 \x80\x84\x01Q\x90\x87\x01Ra\x01@\x80\x84\x01Q\x90\x91\x16\x90\x86\x01Ra\x01`\x91\x82\x01Q\x15\x15\x91\x90\x94\x01R\x93\x86\x01\x93\x90\x86\x01\x90`\x01\x01a \x9EV[P\x90\x98\x97PPPPPPPPV[`\0` \x80\x83\x85\x03\x12\x15a!\xBFW`\0\x80\xFD[\x82Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a!\xD6W`\0\x80\xFD[\x83\x01`\x1F\x81\x01\x85\x13a!\xE7W`\0\x80\xFD[\x80Qa!\xF5a\x160\x82a\x15\xC5V[\x81\x81R`\x06\x91\x90\x91\x1B\x82\x01\x83\x01\x90\x83\x81\x01\x90\x87\x83\x11\x15a\"\x14W`\0\x80\xFD[\x92\x84\x01\x92[\x82\x84\x10\x15a\"jW`@\x84\x89\x03\x12\x15a\"2W`\0\x80\x81\xFD[a\":a\x11XV[\x84Qa\"E\x81a\x12\x1EV[\x81R\x84\x86\x01Qa\"T\x81a\x12\x1EV[\x81\x87\x01R\x82R`@\x93\x90\x93\x01\x92\x90\x84\x01\x90a\"\x19V[\x97\x96PPPPPPPV[\x805a\"\x80\x81a\x12\x1EV[`\x01`\x01`\xA0\x1B\x03\x90\x81\x16\x83R` \x82\x015\x90a\"\x9C\x82a\x12\x1EV[\x90\x81\x16` \x84\x01R`@\x82\x015\x90a\"\xB3\x82a\x12\x1EV[\x90\x81\x16`@\x84\x01R``\x82\x015\x90a\"\xCA\x82a\x12\x1EV[\x90\x81\x16``\x84\x01R`\x80\x82\x015\x90a\"\xE1\x82a\x12\x1EV[\x90\x81\x16`\x80\x84\x01R`\xA0\x82\x015\x90a\"\xF8\x82a\x12\x1EV[\x80\x82\x16`\xA0\x85\x01RPPPPV[`\0\x80\x835\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE1\x846\x03\x01\x81\x12a#;W`\0\x80\xFD[\x83\x01` \x81\x01\x92P5\x90Pg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a#[W`\0\x80\xFD[\x806\x03\x82\x13\x15a\x1F W`\0\x80\xFD[\x81\x83R\x81\x81` \x85\x017P`\0` \x82\x84\x01\x01R`\0` `\x1F\x19`\x1F\x84\x01\x16\x84\x01\x01\x90P\x92\x91PPV[``\x81Ra#\xA6``\x82\x01\x85a\"uV[`\0a#\xB4`\xC0\x86\x01a\x16gV[a\x01 a#\xC8\x81\x85\x01\x83c\xFF\xFF\xFF\xFF\x16\x90RV[a#\xD4`\xE0\x88\x01a\x16gV[\x91Pa\x01@a#\xEA\x81\x86\x01\x84c\xFF\xFF\xFF\xFF\x16\x90RV[a\x01`\x92Pa\x01\0\x88\x015\x83\x86\x01Ra$\x05\x82\x89\x01\x89a#\x06V[\x92Pa\x02`a\x01\x80\x81\x81\x89\x01Ra$!a\x02\xC0\x89\x01\x86\x85a#jV[\x94Pa$/\x84\x8C\x01\x8Ca#\x06V[\x94P\x92Pa\x01\xA0\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xA0\x89\x87\x03\x01\x81\x8A\x01Ra$j\x86\x86\x86a#jV[\x95Pa$w\x87\x8D\x01a\x16\x91V[\x96Pa\x01\xC0\x94Pa$\x93\x85\x8A\x01\x88g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90RV[a$\x9E\x82\x8D\x01a\x16gV[\x96Pa\x01\xE0\x93Pa$\xB6\x84\x8A\x01\x88c\xFF\xFF\xFF\xFF\x16\x90RV[a\x02\0\x96P\x80\x8C\x015\x87\x8A\x01RPPa\x02 \x83\x8B\x015\x81\x89\x01Ra\x02@\x93P\x82\x8B\x015\x84\x89\x01Ra$\xE8\x86\x8C\x01a\x16\x91V[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x89\x84\x01R\x95Pa%\x04\x81\x8C\x01a\x16\x91V[\x95PPPPa% a\x02\x80\x86\x01\x84g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90RV[a%+\x81\x89\x01a\x12\xCDV[\x92PPa%=a\x02\xA0\x85\x01\x83\x15\x15\x90RV[`\x01`\x01`\xA0\x1B\x03\x86\x16` \x85\x01R\x91Pa%U\x90PV[`\x01`\x01`\xA0\x1B\x03\x83\x16`@\x83\x01Ra\x05IV[`\0a\x01\xE0\x82\x84\x03\x12\x15a%|W`\0\x80\xFD[a%\x84a\x11\xC9V[a%\x8D\x83a\x1C\xF2V[\x81Ra%\x9B` \x84\x01a\x1C\xF2V[` \x82\x01Ra%\xAC`@\x84\x01a\x1C\xF2V[`@\x82\x01Ra%\xBD``\x84\x01a\x1C\xF2V[``\x82\x01Ra%\xCE`\x80\x84\x01a\x1C\xF2V[`\x80\x82\x01Ra%\xDF`\xA0\x84\x01a\x1C\xF2V[`\xA0\x82\x01Ra%\xF0`\xC0\x84\x01a\x1C\xF2V[`\xC0\x82\x01Ra&\x01`\xE0\x84\x01a\x1C\xF2V[`\xE0\x82\x01Ra\x01\0a&\x14\x81\x85\x01a\x1C\xF2V[\x90\x82\x01Ra\x01 a&&\x84\x82\x01a\x1C\xF2V[\x90\x82\x01Ra\x01@a&8\x84\x82\x01a\x1C\xF2V[\x90\x82\x01Ra\x01`a&J\x84\x82\x01a\x1C\xF2V[\x90\x82\x01Ra\x01\x80a&\\\x84\x82\x01a\x1C\xF2V[\x90\x82\x01Ra\x01\xA0a&n\x84\x82\x01a\x1C\xF2V[\x90\x82\x01Ra\x01\xC0a\x1EJ\x84\x82\x01a\x1C\xF2V[`\0` \x82\x84\x03\x12\x15a&\x92W`\0\x80\xFD[\x81Qa\x08H\x81a\x12\xBFV[a\x01\0\x81\x01a&\xE4\x82\x86`\x01`\x01`\xA0\x1B\x03\x80\x82Q\x16\x83R` \x82\x01Q` \x84\x01R`@\x82\x01Q`@\x84\x01R``\x82\x01Q``\x84\x01R\x80`\x80\x83\x01Q\x16`\x80\x84\x01RPPPV[\x83\x15\x15`\xA0\x83\x01R\x82Q`\x01`\x01`\xA0\x1B\x03\x90\x81\x16`\xC0\x84\x01R` \x84\x01Q\x16`\xE0\x83\x01Ra\x05IV[` \x80\x82R\x82Q\x82\x82\x01\x81\x90R`\0\x91\x90\x84\x82\x01\x90`@\x85\x01\x90\x84[\x81\x81\x10\x15a'mWa'Z\x83\x85Q\x80Q`\x01`\x01`\xA0\x1B\x03\x16\x82R` \x80\x82\x01Q\x90\x83\x01R`@\x90\x81\x01Q\x91\x01RV[\x92\x84\x01\x92``\x92\x90\x92\x01\x91`\x01\x01a'*V[P\x90\x96\x95PPPPPPV[`\0`\xA0\x82\x84\x03\x12\x15a'\x8BW`\0\x80\xFD[`@Q`\xA0\x81\x01\x81\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17\x15a'\xAEWa'\xAEa\x11)V[`@R\x82Qa'\xBC\x81a\x12\x1EV[\x81R` \x83\x01Qa'\xCC\x81a\x12\x1EV[` \x82\x01R`@\x83\x01Qa'\xDF\x81a\x12\x1EV[`@\x82\x01R``\x83\x01Qa'\xF2\x81a\x12\x1EV[``\x82\x01R`\x80\x83\x01Qa(\x05\x81a\x12\x1EV[`\x80\x82\x01R\x93\x92PPPV[` \x80\x82R\x82Q\x82\x82\x01\x81\x90R`\0\x91\x90\x84\x82\x01\x90`@\x85\x01\x90\x84[\x81\x81\x10\x15a'mWa(]\x83\x85Q\x80Q`\x01`\x01`\xA0\x1B\x03\x16\x82R` \x80\x82\x01Q\x90\x83\x01R`@\x90\x81\x01Q\x91\x01RV[\x92\x84\x01\x92``\x92\x90\x92\x01\x91`\x01\x01a(-V[`\xC0\x81\x01a(\xB6\x82\x85`\x01`\x01`\xA0\x1B\x03\x80\x82Q\x16\x83R` \x82\x01Q` \x84\x01R`@\x82\x01Q`@\x84\x01R``\x82\x01Q``\x84\x01R\x80`\x80\x83\x01Q\x16`\x80\x84\x01RPPPV[\x82\x15\x15`\xA0\x83\x01R\x93\x92PPPV[`\0\x82Qa(\xD7\x81\x84` \x87\x01a\x13aV[\x91\x90\x91\x01\x92\x91PPV\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct Claim(alloy::sol_types::private::FixedBytes<32>); + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue + for alloy::sol_types::private::FixedBytes<32> { + #[inline] + fn stv_to_tokens( + &self, + ) -> as alloy_sol_types::SolType>::Token<'_> { + alloy_sol_types::private::SolTypeValue::< + alloy::sol_types::sol_data::FixedBytes<32>, + >::stv_to_tokens(self) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + as alloy_sol_types::SolType>::tokenize(self) + .0 + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::SolType>::abi_encode_packed_to(self, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + as alloy_sol_types::SolType>::abi_encoded_size(self) + } + } + impl Claim { + /// The Solidity type name. + pub const NAME: &'static str = stringify!(@ name); + /// Convert from the underlying value type. + #[inline] + pub const fn from_underlying( + value: alloy::sol_types::private::FixedBytes<32>, + ) -> Self { + Self(value) + } + /// Return the underlying value. + #[inline] + pub const fn into_underlying( + self, + ) -> alloy::sol_types::private::FixedBytes<32> { + self.0 + } + /// Return the single encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode(&self) -> alloy_sol_types::private::Vec { + ::abi_encode(&self.0) + } + /// Return the packed encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec { + ::abi_encode_packed(&self.0) + } + } + #[automatically_derived] + impl From> for Claim { + fn from(value: alloy::sol_types::private::FixedBytes<32>) -> Self { + Self::from_underlying(value) + } + } + #[automatically_derived] + impl From for alloy::sol_types::private::FixedBytes<32> { + fn from(value: Claim) -> Self { + value.into_underlying() + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for Claim { + type RustType = alloy::sol_types::private::FixedBytes<32>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = Self::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + Self::type_check(token).is_ok() + } + #[inline] + fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> { + as alloy_sol_types::SolType>::type_check(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + as alloy_sol_types::SolType>::detokenize(token) + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for Claim { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + as alloy_sol_types::EventTopic>::topic_preimage_length(rust) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out) + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + as alloy_sol_types::EventTopic>::encode_topic(rust) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct Duration(u64); + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for u64 { + #[inline] + fn stv_to_tokens( + &self, + ) -> as alloy_sol_types::SolType>::Token<'_> { + alloy_sol_types::private::SolTypeValue::< + alloy::sol_types::sol_data::Uint<64>, + >::stv_to_tokens(self) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + as alloy_sol_types::SolType>::tokenize(self) + .0 + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::SolType>::abi_encode_packed_to(self, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + as alloy_sol_types::SolType>::abi_encoded_size(self) + } + } + impl Duration { + /// The Solidity type name. + pub const NAME: &'static str = stringify!(@ name); + /// Convert from the underlying value type. + #[inline] + pub const fn from_underlying(value: u64) -> Self { + Self(value) + } + /// Return the underlying value. + #[inline] + pub const fn into_underlying(self) -> u64 { + self.0 + } + /// Return the single encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode(&self) -> alloy_sol_types::private::Vec { + ::abi_encode(&self.0) + } + /// Return the packed encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec { + ::abi_encode_packed(&self.0) + } + } + #[automatically_derived] + impl From for Duration { + fn from(value: u64) -> Self { + Self::from_underlying(value) + } + } + #[automatically_derived] + impl From for u64 { + fn from(value: Duration) -> Self { + value.into_underlying() + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for Duration { + type RustType = u64; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = Self::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + Self::type_check(token).is_ok() + } + #[inline] + fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> { + as alloy_sol_types::SolType>::type_check(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + as alloy_sol_types::SolType>::detokenize(token) + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for Duration { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + as alloy_sol_types::EventTopic>::topic_preimage_length(rust) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out) + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + as alloy_sol_types::EventTopic>::encode_topic(rust) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct GameType(u32); + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for u32 { + #[inline] + fn stv_to_tokens( + &self, + ) -> as alloy_sol_types::SolType>::Token<'_> { + alloy_sol_types::private::SolTypeValue::< + alloy::sol_types::sol_data::Uint<32>, + >::stv_to_tokens(self) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + as alloy_sol_types::SolType>::tokenize(self) + .0 + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::SolType>::abi_encode_packed_to(self, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + as alloy_sol_types::SolType>::abi_encoded_size(self) + } + } + impl GameType { + /// The Solidity type name. + pub const NAME: &'static str = stringify!(@ name); + /// Convert from the underlying value type. + #[inline] + pub const fn from_underlying(value: u32) -> Self { + Self(value) + } + /// Return the underlying value. + #[inline] + pub const fn into_underlying(self) -> u32 { + self.0 + } + /// Return the single encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode(&self) -> alloy_sol_types::private::Vec { + ::abi_encode(&self.0) + } + /// Return the packed encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec { + ::abi_encode_packed(&self.0) + } + } + #[automatically_derived] + impl From for GameType { + fn from(value: u32) -> Self { + Self::from_underlying(value) + } + } + #[automatically_derived] + impl From for u32 { + fn from(value: GameType) -> Self { + value.into_underlying() + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for GameType { + type RustType = u32; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = Self::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + Self::type_check(token).is_ok() + } + #[inline] + fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> { + as alloy_sol_types::SolType>::type_check(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + as alloy_sol_types::SolType>::detokenize(token) + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for GameType { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + as alloy_sol_types::EventTopic>::topic_preimage_length(rust) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out) + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + as alloy_sol_types::EventTopic>::encode_topic(rust) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct Hash(alloy::sol_types::private::FixedBytes<32>); + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue + for alloy::sol_types::private::FixedBytes<32> { + #[inline] + fn stv_to_tokens( + &self, + ) -> as alloy_sol_types::SolType>::Token<'_> { + alloy_sol_types::private::SolTypeValue::< + alloy::sol_types::sol_data::FixedBytes<32>, + >::stv_to_tokens(self) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + as alloy_sol_types::SolType>::tokenize(self) + .0 + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::SolType>::abi_encode_packed_to(self, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + as alloy_sol_types::SolType>::abi_encoded_size(self) + } + } + impl Hash { + /// The Solidity type name. + pub const NAME: &'static str = stringify!(@ name); + /// Convert from the underlying value type. + #[inline] + pub const fn from_underlying( + value: alloy::sol_types::private::FixedBytes<32>, + ) -> Self { + Self(value) + } + /// Return the underlying value. + #[inline] + pub const fn into_underlying( + self, + ) -> alloy::sol_types::private::FixedBytes<32> { + self.0 + } + /// Return the single encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode(&self) -> alloy_sol_types::private::Vec { + ::abi_encode(&self.0) + } + /// Return the packed encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec { + ::abi_encode_packed(&self.0) + } + } + #[automatically_derived] + impl From> for Hash { + fn from(value: alloy::sol_types::private::FixedBytes<32>) -> Self { + Self::from_underlying(value) + } + } + #[automatically_derived] + impl From for alloy::sol_types::private::FixedBytes<32> { + fn from(value: Hash) -> Self { + value.into_underlying() + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for Hash { + type RustType = alloy::sol_types::private::FixedBytes<32>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = Self::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + Self::type_check(token).is_ok() + } + #[inline] + fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> { + as alloy_sol_types::SolType>::type_check(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + as alloy_sol_types::SolType>::detokenize(token) + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for Hash { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + as alloy_sol_types::EventTopic>::topic_preimage_length(rust) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out) + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + as alloy_sol_types::EventTopic>::encode_topic(rust) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**```solidity +struct AddGameInput { string saltMixer; address systemConfig; address delayedWETH; GameType disputeGameType; Claim disputeAbsolutePrestate; uint256 disputeMaxGameDepth; uint256 disputeSplitDepth; Duration disputeClockExtension; Duration disputeMaxClockDuration; uint256 initialBond; address vm; bool permissioned; } +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct AddGameInput { + #[allow(missing_docs)] + pub saltMixer: alloy::sol_types::private::String, + #[allow(missing_docs)] + pub systemConfig: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub delayedWETH: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub disputeGameType: ::RustType, + #[allow(missing_docs)] + pub disputeAbsolutePrestate: ::RustType, + #[allow(missing_docs)] + pub disputeMaxGameDepth: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub disputeSplitDepth: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub disputeClockExtension: ::RustType, + #[allow(missing_docs)] + pub disputeMaxClockDuration: ::RustType, + #[allow(missing_docs)] + pub initialBond: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub vm: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub permissioned: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::String, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + GameType, + Claim, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + Duration, + Duration, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Bool, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::String, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + ::RustType, + ::RustType, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::primitives::aliases::U256, + ::RustType, + ::RustType, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::Address, + bool, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: AddGameInput) -> Self { + ( + value.saltMixer, + value.systemConfig, + value.delayedWETH, + value.disputeGameType, + value.disputeAbsolutePrestate, + value.disputeMaxGameDepth, + value.disputeSplitDepth, + value.disputeClockExtension, + value.disputeMaxClockDuration, + value.initialBond, + value.vm, + value.permissioned, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for AddGameInput { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + saltMixer: tuple.0, + systemConfig: tuple.1, + delayedWETH: tuple.2, + disputeGameType: tuple.3, + disputeAbsolutePrestate: tuple.4, + disputeMaxGameDepth: tuple.5, + disputeSplitDepth: tuple.6, + disputeClockExtension: tuple.7, + disputeMaxClockDuration: tuple.8, + initialBond: tuple.9, + vm: tuple.10, + permissioned: tuple.11, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolValue for AddGameInput { + type SolType = Self; + } + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for AddGameInput { + #[inline] + fn stv_to_tokens(&self) -> ::Token<'_> { + ( + ::tokenize( + &self.saltMixer, + ), + ::tokenize( + &self.systemConfig, + ), + ::tokenize( + &self.delayedWETH, + ), + ::tokenize( + &self.disputeGameType, + ), + ::tokenize( + &self.disputeAbsolutePrestate, + ), + as alloy_sol_types::SolType>::tokenize(&self.disputeMaxGameDepth), + as alloy_sol_types::SolType>::tokenize(&self.disputeSplitDepth), + ::tokenize( + &self.disputeClockExtension, + ), + ::tokenize( + &self.disputeMaxClockDuration, + ), + as alloy_sol_types::SolType>::tokenize(&self.initialBond), + ::tokenize( + &self.vm, + ), + ::tokenize( + &self.permissioned, + ), + ) + } + #[inline] + fn stv_abi_encoded_size(&self) -> usize { + if let Some(size) = ::ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encoded_size(&tuple) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + ::eip712_hash_struct(self) + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + if let Some(size) = ::PACKED_ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for AddGameInput { + type RustType = Self; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = ::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + as alloy_sol_types::SolType>::valid_token(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + let tuple = as alloy_sol_types::SolType>::detokenize(token); + >>::from(tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolStruct for AddGameInput { + const NAME: &'static str = "AddGameInput"; + #[inline] + fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> { + alloy_sol_types::private::Cow::Borrowed( + "AddGameInput(string saltMixer,address systemConfig,address delayedWETH,uint32 disputeGameType,bytes32 disputeAbsolutePrestate,uint256 disputeMaxGameDepth,uint256 disputeSplitDepth,uint64 disputeClockExtension,uint64 disputeMaxClockDuration,uint256 initialBond,address vm,bool permissioned)", + ) + } + #[inline] + fn eip712_components() -> alloy_sol_types::private::Vec< + alloy_sol_types::private::Cow<'static, str>, + > { + alloy_sol_types::private::Vec::new() + } + #[inline] + fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> { + ::eip712_root_type() + } + #[inline] + fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec { + [ + ::eip712_data_word( + &self.saltMixer, + ) + .0, + ::eip712_data_word( + &self.systemConfig, + ) + .0, + ::eip712_data_word( + &self.delayedWETH, + ) + .0, + ::eip712_data_word( + &self.disputeGameType, + ) + .0, + ::eip712_data_word( + &self.disputeAbsolutePrestate, + ) + .0, + as alloy_sol_types::SolType>::eip712_data_word( + &self.disputeMaxGameDepth, + ) + .0, + as alloy_sol_types::SolType>::eip712_data_word( + &self.disputeSplitDepth, + ) + .0, + ::eip712_data_word( + &self.disputeClockExtension, + ) + .0, + ::eip712_data_word( + &self.disputeMaxClockDuration, + ) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.initialBond) + .0, + ::eip712_data_word( + &self.vm, + ) + .0, + ::eip712_data_word( + &self.permissioned, + ) + .0, + ] + .concat() + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for AddGameInput { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + 0usize + + ::topic_preimage_length( + &rust.saltMixer, + ) + + ::topic_preimage_length( + &rust.systemConfig, + ) + + ::topic_preimage_length( + &rust.delayedWETH, + ) + + ::topic_preimage_length( + &rust.disputeGameType, + ) + + ::topic_preimage_length( + &rust.disputeAbsolutePrestate, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.disputeMaxGameDepth, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.disputeSplitDepth, + ) + + ::topic_preimage_length( + &rust.disputeClockExtension, + ) + + ::topic_preimage_length( + &rust.disputeMaxClockDuration, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.initialBond, + ) + + ::topic_preimage_length( + &rust.vm, + ) + + ::topic_preimage_length( + &rust.permissioned, + ) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + out.reserve( + ::topic_preimage_length(rust), + ); + ::encode_topic_preimage( + &rust.saltMixer, + out, + ); + ::encode_topic_preimage( + &rust.systemConfig, + out, + ); + ::encode_topic_preimage( + &rust.delayedWETH, + out, + ); + ::encode_topic_preimage( + &rust.disputeGameType, + out, + ); + ::encode_topic_preimage( + &rust.disputeAbsolutePrestate, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.disputeMaxGameDepth, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.disputeSplitDepth, + out, + ); + ::encode_topic_preimage( + &rust.disputeClockExtension, + out, + ); + ::encode_topic_preimage( + &rust.disputeMaxClockDuration, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.initialBond, + out, + ); + ::encode_topic_preimage( + &rust.vm, + out, + ); + ::encode_topic_preimage( + &rust.permissioned, + out, + ); + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + let mut out = alloy_sol_types::private::Vec::new(); + ::encode_topic_preimage( + rust, + &mut out, + ); + alloy_sol_types::abi::token::WordToken( + alloy_sol_types::private::keccak256(out), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**```solidity +struct AddGameOutput { address delayedWETH; address faultDisputeGame; } +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct AddGameOutput { + #[allow(missing_docs)] + pub delayedWETH: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub faultDisputeGame: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: AddGameOutput) -> Self { + (value.delayedWETH, value.faultDisputeGame) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for AddGameOutput { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + delayedWETH: tuple.0, + faultDisputeGame: tuple.1, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolValue for AddGameOutput { + type SolType = Self; + } + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for AddGameOutput { + #[inline] + fn stv_to_tokens(&self) -> ::Token<'_> { + ( + ::tokenize( + &self.delayedWETH, + ), + ::tokenize( + &self.faultDisputeGame, + ), + ) + } + #[inline] + fn stv_abi_encoded_size(&self) -> usize { + if let Some(size) = ::ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encoded_size(&tuple) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + ::eip712_hash_struct(self) + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + if let Some(size) = ::PACKED_ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for AddGameOutput { + type RustType = Self; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = ::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + as alloy_sol_types::SolType>::valid_token(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + let tuple = as alloy_sol_types::SolType>::detokenize(token); + >>::from(tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolStruct for AddGameOutput { + const NAME: &'static str = "AddGameOutput"; + #[inline] + fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> { + alloy_sol_types::private::Cow::Borrowed( + "AddGameOutput(address delayedWETH,address faultDisputeGame)", + ) + } + #[inline] + fn eip712_components() -> alloy_sol_types::private::Vec< + alloy_sol_types::private::Cow<'static, str>, + > { + alloy_sol_types::private::Vec::new() + } + #[inline] + fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> { + ::eip712_root_type() + } + #[inline] + fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec { + [ + ::eip712_data_word( + &self.delayedWETH, + ) + .0, + ::eip712_data_word( + &self.faultDisputeGame, + ) + .0, + ] + .concat() + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for AddGameOutput { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + 0usize + + ::topic_preimage_length( + &rust.delayedWETH, + ) + + ::topic_preimage_length( + &rust.faultDisputeGame, + ) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + out.reserve( + ::topic_preimage_length(rust), + ); + ::encode_topic_preimage( + &rust.delayedWETH, + out, + ); + ::encode_topic_preimage( + &rust.faultDisputeGame, + out, + ); + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + let mut out = alloy_sol_types::private::Vec::new(); + ::encode_topic_preimage( + rust, + &mut out, + ); + alloy_sol_types::abi::token::WordToken( + alloy_sol_types::private::keccak256(out), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**```solidity +struct Blueprints { address addressManager; address proxy; address proxyAdmin; address l1ChugSplashProxy; address resolvedDelegateProxy; } +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct Blueprints { + #[allow(missing_docs)] + pub addressManager: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub proxy: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub proxyAdmin: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub l1ChugSplashProxy: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub resolvedDelegateProxy: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: Blueprints) -> Self { + ( + value.addressManager, + value.proxy, + value.proxyAdmin, + value.l1ChugSplashProxy, + value.resolvedDelegateProxy, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for Blueprints { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + addressManager: tuple.0, + proxy: tuple.1, + proxyAdmin: tuple.2, + l1ChugSplashProxy: tuple.3, + resolvedDelegateProxy: tuple.4, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolValue for Blueprints { + type SolType = Self; + } + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for Blueprints { + #[inline] + fn stv_to_tokens(&self) -> ::Token<'_> { + ( + ::tokenize( + &self.addressManager, + ), + ::tokenize( + &self.proxy, + ), + ::tokenize( + &self.proxyAdmin, + ), + ::tokenize( + &self.l1ChugSplashProxy, + ), + ::tokenize( + &self.resolvedDelegateProxy, + ), + ) + } + #[inline] + fn stv_abi_encoded_size(&self) -> usize { + if let Some(size) = ::ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encoded_size(&tuple) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + ::eip712_hash_struct(self) + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + if let Some(size) = ::PACKED_ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for Blueprints { + type RustType = Self; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = ::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + as alloy_sol_types::SolType>::valid_token(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + let tuple = as alloy_sol_types::SolType>::detokenize(token); + >>::from(tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolStruct for Blueprints { + const NAME: &'static str = "Blueprints"; + #[inline] + fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> { + alloy_sol_types::private::Cow::Borrowed( + "Blueprints(address addressManager,address proxy,address proxyAdmin,address l1ChugSplashProxy,address resolvedDelegateProxy)", + ) + } + #[inline] + fn eip712_components() -> alloy_sol_types::private::Vec< + alloy_sol_types::private::Cow<'static, str>, + > { + alloy_sol_types::private::Vec::new() + } + #[inline] + fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> { + ::eip712_root_type() + } + #[inline] + fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec { + [ + ::eip712_data_word( + &self.addressManager, + ) + .0, + ::eip712_data_word( + &self.proxy, + ) + .0, + ::eip712_data_word( + &self.proxyAdmin, + ) + .0, + ::eip712_data_word( + &self.l1ChugSplashProxy, + ) + .0, + ::eip712_data_word( + &self.resolvedDelegateProxy, + ) + .0, + ] + .concat() + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for Blueprints { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + 0usize + + ::topic_preimage_length( + &rust.addressManager, + ) + + ::topic_preimage_length( + &rust.proxy, + ) + + ::topic_preimage_length( + &rust.proxyAdmin, + ) + + ::topic_preimage_length( + &rust.l1ChugSplashProxy, + ) + + ::topic_preimage_length( + &rust.resolvedDelegateProxy, + ) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + out.reserve( + ::topic_preimage_length(rust), + ); + ::encode_topic_preimage( + &rust.addressManager, + out, + ); + ::encode_topic_preimage( + &rust.proxy, + out, + ); + ::encode_topic_preimage( + &rust.proxyAdmin, + out, + ); + ::encode_topic_preimage( + &rust.l1ChugSplashProxy, + out, + ); + ::encode_topic_preimage( + &rust.resolvedDelegateProxy, + out, + ); + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + let mut out = alloy_sol_types::private::Vec::new(); + ::encode_topic_preimage( + rust, + &mut out, + ); + alloy_sol_types::abi::token::WordToken( + alloy_sol_types::private::keccak256(out), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**```solidity +struct DeployInput { Roles roles; uint32 basefeeScalar; uint32 blobBasefeeScalar; uint256 l2ChainId; bytes startingAnchorRoot; string saltMixer; uint64 gasLimit; GameType disputeGameType; Claim disputeAbsolutePrestate; uint256 disputeMaxGameDepth; uint256 disputeSplitDepth; Duration disputeClockExtension; Duration disputeMaxClockDuration; bool useCustomGasToken; } +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct DeployInput { + #[allow(missing_docs)] + pub roles: ::RustType, + #[allow(missing_docs)] + pub basefeeScalar: u32, + #[allow(missing_docs)] + pub blobBasefeeScalar: u32, + #[allow(missing_docs)] + pub l2ChainId: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub startingAnchorRoot: alloy::sol_types::private::Bytes, + #[allow(missing_docs)] + pub saltMixer: alloy::sol_types::private::String, + #[allow(missing_docs)] + pub gasLimit: u64, + #[allow(missing_docs)] + pub disputeGameType: ::RustType, + #[allow(missing_docs)] + pub disputeAbsolutePrestate: ::RustType, + #[allow(missing_docs)] + pub disputeMaxGameDepth: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub disputeSplitDepth: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub disputeClockExtension: ::RustType, + #[allow(missing_docs)] + pub disputeMaxClockDuration: ::RustType, + #[allow(missing_docs)] + pub useCustomGasToken: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + Roles, + alloy::sol_types::sol_data::Uint<32>, + alloy::sol_types::sol_data::Uint<32>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Bytes, + alloy::sol_types::sol_data::String, + alloy::sol_types::sol_data::Uint<64>, + GameType, + Claim, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + Duration, + Duration, + alloy::sol_types::sol_data::Bool, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + u32, + u32, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::Bytes, + alloy::sol_types::private::String, + u64, + ::RustType, + ::RustType, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::primitives::aliases::U256, + ::RustType, + ::RustType, + bool, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: DeployInput) -> Self { + ( + value.roles, + value.basefeeScalar, + value.blobBasefeeScalar, + value.l2ChainId, + value.startingAnchorRoot, + value.saltMixer, + value.gasLimit, + value.disputeGameType, + value.disputeAbsolutePrestate, + value.disputeMaxGameDepth, + value.disputeSplitDepth, + value.disputeClockExtension, + value.disputeMaxClockDuration, + value.useCustomGasToken, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for DeployInput { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + roles: tuple.0, + basefeeScalar: tuple.1, + blobBasefeeScalar: tuple.2, + l2ChainId: tuple.3, + startingAnchorRoot: tuple.4, + saltMixer: tuple.5, + gasLimit: tuple.6, + disputeGameType: tuple.7, + disputeAbsolutePrestate: tuple.8, + disputeMaxGameDepth: tuple.9, + disputeSplitDepth: tuple.10, + disputeClockExtension: tuple.11, + disputeMaxClockDuration: tuple.12, + useCustomGasToken: tuple.13, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolValue for DeployInput { + type SolType = Self; + } + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for DeployInput { + #[inline] + fn stv_to_tokens(&self) -> ::Token<'_> { + ( + ::tokenize(&self.roles), + as alloy_sol_types::SolType>::tokenize(&self.basefeeScalar), + as alloy_sol_types::SolType>::tokenize(&self.blobBasefeeScalar), + as alloy_sol_types::SolType>::tokenize(&self.l2ChainId), + ::tokenize( + &self.startingAnchorRoot, + ), + ::tokenize( + &self.saltMixer, + ), + as alloy_sol_types::SolType>::tokenize(&self.gasLimit), + ::tokenize( + &self.disputeGameType, + ), + ::tokenize( + &self.disputeAbsolutePrestate, + ), + as alloy_sol_types::SolType>::tokenize(&self.disputeMaxGameDepth), + as alloy_sol_types::SolType>::tokenize(&self.disputeSplitDepth), + ::tokenize( + &self.disputeClockExtension, + ), + ::tokenize( + &self.disputeMaxClockDuration, + ), + ::tokenize( + &self.useCustomGasToken, + ), + ) + } + #[inline] + fn stv_abi_encoded_size(&self) -> usize { + if let Some(size) = ::ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encoded_size(&tuple) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + ::eip712_hash_struct(self) + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + if let Some(size) = ::PACKED_ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for DeployInput { + type RustType = Self; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = ::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + as alloy_sol_types::SolType>::valid_token(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + let tuple = as alloy_sol_types::SolType>::detokenize(token); + >>::from(tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolStruct for DeployInput { + const NAME: &'static str = "DeployInput"; + #[inline] + fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> { + alloy_sol_types::private::Cow::Borrowed( + "DeployInput(Roles roles,uint32 basefeeScalar,uint32 blobBasefeeScalar,uint256 l2ChainId,bytes startingAnchorRoot,string saltMixer,uint64 gasLimit,uint32 disputeGameType,bytes32 disputeAbsolutePrestate,uint256 disputeMaxGameDepth,uint256 disputeSplitDepth,uint64 disputeClockExtension,uint64 disputeMaxClockDuration,bool useCustomGasToken)", + ) + } + #[inline] + fn eip712_components() -> alloy_sol_types::private::Vec< + alloy_sol_types::private::Cow<'static, str>, + > { + let mut components = alloy_sol_types::private::Vec::with_capacity(1); + components + .push(::eip712_root_type()); + components + .extend(::eip712_components()); + components + } + #[inline] + fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec { + [ + ::eip712_data_word(&self.roles).0, + as alloy_sol_types::SolType>::eip712_data_word(&self.basefeeScalar) + .0, + as alloy_sol_types::SolType>::eip712_data_word( + &self.blobBasefeeScalar, + ) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.l2ChainId) + .0, + ::eip712_data_word( + &self.startingAnchorRoot, + ) + .0, + ::eip712_data_word( + &self.saltMixer, + ) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.gasLimit) + .0, + ::eip712_data_word( + &self.disputeGameType, + ) + .0, + ::eip712_data_word( + &self.disputeAbsolutePrestate, + ) + .0, + as alloy_sol_types::SolType>::eip712_data_word( + &self.disputeMaxGameDepth, + ) + .0, + as alloy_sol_types::SolType>::eip712_data_word( + &self.disputeSplitDepth, + ) + .0, + ::eip712_data_word( + &self.disputeClockExtension, + ) + .0, + ::eip712_data_word( + &self.disputeMaxClockDuration, + ) + .0, + ::eip712_data_word( + &self.useCustomGasToken, + ) + .0, + ] + .concat() + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for DeployInput { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + 0usize + + ::topic_preimage_length( + &rust.roles, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.basefeeScalar, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.blobBasefeeScalar, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.l2ChainId, + ) + + ::topic_preimage_length( + &rust.startingAnchorRoot, + ) + + ::topic_preimage_length( + &rust.saltMixer, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.gasLimit, + ) + + ::topic_preimage_length( + &rust.disputeGameType, + ) + + ::topic_preimage_length( + &rust.disputeAbsolutePrestate, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.disputeMaxGameDepth, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.disputeSplitDepth, + ) + + ::topic_preimage_length( + &rust.disputeClockExtension, + ) + + ::topic_preimage_length( + &rust.disputeMaxClockDuration, + ) + + ::topic_preimage_length( + &rust.useCustomGasToken, + ) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + out.reserve( + ::topic_preimage_length(rust), + ); + ::encode_topic_preimage( + &rust.roles, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.basefeeScalar, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.blobBasefeeScalar, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.l2ChainId, + out, + ); + ::encode_topic_preimage( + &rust.startingAnchorRoot, + out, + ); + ::encode_topic_preimage( + &rust.saltMixer, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.gasLimit, + out, + ); + ::encode_topic_preimage( + &rust.disputeGameType, + out, + ); + ::encode_topic_preimage( + &rust.disputeAbsolutePrestate, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.disputeMaxGameDepth, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.disputeSplitDepth, + out, + ); + ::encode_topic_preimage( + &rust.disputeClockExtension, + out, + ); + ::encode_topic_preimage( + &rust.disputeMaxClockDuration, + out, + ); + ::encode_topic_preimage( + &rust.useCustomGasToken, + out, + ); + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + let mut out = alloy_sol_types::private::Vec::new(); + ::encode_topic_preimage( + rust, + &mut out, + ); + alloy_sol_types::abi::token::WordToken( + alloy_sol_types::private::keccak256(out), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**```solidity +struct DeployOutput { address opChainProxyAdmin; address addressManager; address l1ERC721BridgeProxy; address systemConfigProxy; address optimismMintableERC20FactoryProxy; address l1StandardBridgeProxy; address l1CrossDomainMessengerProxy; address ethLockboxProxy; address optimismPortalProxy; address disputeGameFactoryProxy; address anchorStateRegistryProxy; address faultDisputeGame; address permissionedDisputeGame; address delayedWETHPermissionedGameProxy; address delayedWETHPermissionlessGameProxy; } +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct DeployOutput { + #[allow(missing_docs)] + pub opChainProxyAdmin: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub addressManager: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub l1ERC721BridgeProxy: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub systemConfigProxy: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub optimismMintableERC20FactoryProxy: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub l1StandardBridgeProxy: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub l1CrossDomainMessengerProxy: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub ethLockboxProxy: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub optimismPortalProxy: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub disputeGameFactoryProxy: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub anchorStateRegistryProxy: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub faultDisputeGame: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub permissionedDisputeGame: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub delayedWETHPermissionedGameProxy: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub delayedWETHPermissionlessGameProxy: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: DeployOutput) -> Self { + ( + value.opChainProxyAdmin, + value.addressManager, + value.l1ERC721BridgeProxy, + value.systemConfigProxy, + value.optimismMintableERC20FactoryProxy, + value.l1StandardBridgeProxy, + value.l1CrossDomainMessengerProxy, + value.ethLockboxProxy, + value.optimismPortalProxy, + value.disputeGameFactoryProxy, + value.anchorStateRegistryProxy, + value.faultDisputeGame, + value.permissionedDisputeGame, + value.delayedWETHPermissionedGameProxy, + value.delayedWETHPermissionlessGameProxy, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for DeployOutput { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + opChainProxyAdmin: tuple.0, + addressManager: tuple.1, + l1ERC721BridgeProxy: tuple.2, + systemConfigProxy: tuple.3, + optimismMintableERC20FactoryProxy: tuple.4, + l1StandardBridgeProxy: tuple.5, + l1CrossDomainMessengerProxy: tuple.6, + ethLockboxProxy: tuple.7, + optimismPortalProxy: tuple.8, + disputeGameFactoryProxy: tuple.9, + anchorStateRegistryProxy: tuple.10, + faultDisputeGame: tuple.11, + permissionedDisputeGame: tuple.12, + delayedWETHPermissionedGameProxy: tuple.13, + delayedWETHPermissionlessGameProxy: tuple.14, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolValue for DeployOutput { + type SolType = Self; + } + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for DeployOutput { + #[inline] + fn stv_to_tokens(&self) -> ::Token<'_> { + ( + ::tokenize( + &self.opChainProxyAdmin, + ), + ::tokenize( + &self.addressManager, + ), + ::tokenize( + &self.l1ERC721BridgeProxy, + ), + ::tokenize( + &self.systemConfigProxy, + ), + ::tokenize( + &self.optimismMintableERC20FactoryProxy, + ), + ::tokenize( + &self.l1StandardBridgeProxy, + ), + ::tokenize( + &self.l1CrossDomainMessengerProxy, + ), + ::tokenize( + &self.ethLockboxProxy, + ), + ::tokenize( + &self.optimismPortalProxy, + ), + ::tokenize( + &self.disputeGameFactoryProxy, + ), + ::tokenize( + &self.anchorStateRegistryProxy, + ), + ::tokenize( + &self.faultDisputeGame, + ), + ::tokenize( + &self.permissionedDisputeGame, + ), + ::tokenize( + &self.delayedWETHPermissionedGameProxy, + ), + ::tokenize( + &self.delayedWETHPermissionlessGameProxy, + ), + ) + } + #[inline] + fn stv_abi_encoded_size(&self) -> usize { + if let Some(size) = ::ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encoded_size(&tuple) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + ::eip712_hash_struct(self) + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + if let Some(size) = ::PACKED_ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for DeployOutput { + type RustType = Self; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = ::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + as alloy_sol_types::SolType>::valid_token(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + let tuple = as alloy_sol_types::SolType>::detokenize(token); + >>::from(tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolStruct for DeployOutput { + const NAME: &'static str = "DeployOutput"; + #[inline] + fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> { + alloy_sol_types::private::Cow::Borrowed( + "DeployOutput(address opChainProxyAdmin,address addressManager,address l1ERC721BridgeProxy,address systemConfigProxy,address optimismMintableERC20FactoryProxy,address l1StandardBridgeProxy,address l1CrossDomainMessengerProxy,address ethLockboxProxy,address optimismPortalProxy,address disputeGameFactoryProxy,address anchorStateRegistryProxy,address faultDisputeGame,address permissionedDisputeGame,address delayedWETHPermissionedGameProxy,address delayedWETHPermissionlessGameProxy)", + ) + } + #[inline] + fn eip712_components() -> alloy_sol_types::private::Vec< + alloy_sol_types::private::Cow<'static, str>, + > { + alloy_sol_types::private::Vec::new() + } + #[inline] + fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> { + ::eip712_root_type() + } + #[inline] + fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec { + [ + ::eip712_data_word( + &self.opChainProxyAdmin, + ) + .0, + ::eip712_data_word( + &self.addressManager, + ) + .0, + ::eip712_data_word( + &self.l1ERC721BridgeProxy, + ) + .0, + ::eip712_data_word( + &self.systemConfigProxy, + ) + .0, + ::eip712_data_word( + &self.optimismMintableERC20FactoryProxy, + ) + .0, + ::eip712_data_word( + &self.l1StandardBridgeProxy, + ) + .0, + ::eip712_data_word( + &self.l1CrossDomainMessengerProxy, + ) + .0, + ::eip712_data_word( + &self.ethLockboxProxy, + ) + .0, + ::eip712_data_word( + &self.optimismPortalProxy, + ) + .0, + ::eip712_data_word( + &self.disputeGameFactoryProxy, + ) + .0, + ::eip712_data_word( + &self.anchorStateRegistryProxy, + ) + .0, + ::eip712_data_word( + &self.faultDisputeGame, + ) + .0, + ::eip712_data_word( + &self.permissionedDisputeGame, + ) + .0, + ::eip712_data_word( + &self.delayedWETHPermissionedGameProxy, + ) + .0, + ::eip712_data_word( + &self.delayedWETHPermissionlessGameProxy, + ) + .0, + ] + .concat() + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for DeployOutput { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + 0usize + + ::topic_preimage_length( + &rust.opChainProxyAdmin, + ) + + ::topic_preimage_length( + &rust.addressManager, + ) + + ::topic_preimage_length( + &rust.l1ERC721BridgeProxy, + ) + + ::topic_preimage_length( + &rust.systemConfigProxy, + ) + + ::topic_preimage_length( + &rust.optimismMintableERC20FactoryProxy, + ) + + ::topic_preimage_length( + &rust.l1StandardBridgeProxy, + ) + + ::topic_preimage_length( + &rust.l1CrossDomainMessengerProxy, + ) + + ::topic_preimage_length( + &rust.ethLockboxProxy, + ) + + ::topic_preimage_length( + &rust.optimismPortalProxy, + ) + + ::topic_preimage_length( + &rust.disputeGameFactoryProxy, + ) + + ::topic_preimage_length( + &rust.anchorStateRegistryProxy, + ) + + ::topic_preimage_length( + &rust.faultDisputeGame, + ) + + ::topic_preimage_length( + &rust.permissionedDisputeGame, + ) + + ::topic_preimage_length( + &rust.delayedWETHPermissionedGameProxy, + ) + + ::topic_preimage_length( + &rust.delayedWETHPermissionlessGameProxy, + ) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + out.reserve( + ::topic_preimage_length(rust), + ); + ::encode_topic_preimage( + &rust.opChainProxyAdmin, + out, + ); + ::encode_topic_preimage( + &rust.addressManager, + out, + ); + ::encode_topic_preimage( + &rust.l1ERC721BridgeProxy, + out, + ); + ::encode_topic_preimage( + &rust.systemConfigProxy, + out, + ); + ::encode_topic_preimage( + &rust.optimismMintableERC20FactoryProxy, + out, + ); + ::encode_topic_preimage( + &rust.l1StandardBridgeProxy, + out, + ); + ::encode_topic_preimage( + &rust.l1CrossDomainMessengerProxy, + out, + ); + ::encode_topic_preimage( + &rust.ethLockboxProxy, + out, + ); + ::encode_topic_preimage( + &rust.optimismPortalProxy, + out, + ); + ::encode_topic_preimage( + &rust.disputeGameFactoryProxy, + out, + ); + ::encode_topic_preimage( + &rust.anchorStateRegistryProxy, + out, + ); + ::encode_topic_preimage( + &rust.faultDisputeGame, + out, + ); + ::encode_topic_preimage( + &rust.permissionedDisputeGame, + out, + ); + ::encode_topic_preimage( + &rust.delayedWETHPermissionedGameProxy, + out, + ); + ::encode_topic_preimage( + &rust.delayedWETHPermissionlessGameProxy, + out, + ); + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + let mut out = alloy_sol_types::private::Vec::new(); + ::encode_topic_preimage( + rust, + &mut out, + ); + alloy_sol_types::abi::token::WordToken( + alloy_sol_types::private::keccak256(out), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**```solidity +struct Implementations { address superchainConfigImpl; address protocolVersionsImpl; address l1ERC721BridgeImpl; address optimismPortalImpl; address optimismPortalInteropImpl; address ethLockboxImpl; address systemConfigImpl; address optimismMintableERC20FactoryImpl; address l1CrossDomainMessengerImpl; address l1StandardBridgeImpl; address disputeGameFactoryImpl; address anchorStateRegistryImpl; address delayedWETHImpl; address mipsImpl; address faultDisputeGameV2Impl; address permissionedDisputeGameV2Impl; address superFaultDisputeGameImpl; address superPermissionedDisputeGameImpl; } +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct Implementations { + #[allow(missing_docs)] + pub superchainConfigImpl: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub protocolVersionsImpl: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub l1ERC721BridgeImpl: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub optimismPortalImpl: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub optimismPortalInteropImpl: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub ethLockboxImpl: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub systemConfigImpl: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub optimismMintableERC20FactoryImpl: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub l1CrossDomainMessengerImpl: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub l1StandardBridgeImpl: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub disputeGameFactoryImpl: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub anchorStateRegistryImpl: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub delayedWETHImpl: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub mipsImpl: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub faultDisputeGameV2Impl: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub permissionedDisputeGameV2Impl: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub superFaultDisputeGameImpl: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub superPermissionedDisputeGameImpl: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: Implementations) -> Self { + ( + value.superchainConfigImpl, + value.protocolVersionsImpl, + value.l1ERC721BridgeImpl, + value.optimismPortalImpl, + value.optimismPortalInteropImpl, + value.ethLockboxImpl, + value.systemConfigImpl, + value.optimismMintableERC20FactoryImpl, + value.l1CrossDomainMessengerImpl, + value.l1StandardBridgeImpl, + value.disputeGameFactoryImpl, + value.anchorStateRegistryImpl, + value.delayedWETHImpl, + value.mipsImpl, + value.faultDisputeGameV2Impl, + value.permissionedDisputeGameV2Impl, + value.superFaultDisputeGameImpl, + value.superPermissionedDisputeGameImpl, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for Implementations { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + superchainConfigImpl: tuple.0, + protocolVersionsImpl: tuple.1, + l1ERC721BridgeImpl: tuple.2, + optimismPortalImpl: tuple.3, + optimismPortalInteropImpl: tuple.4, + ethLockboxImpl: tuple.5, + systemConfigImpl: tuple.6, + optimismMintableERC20FactoryImpl: tuple.7, + l1CrossDomainMessengerImpl: tuple.8, + l1StandardBridgeImpl: tuple.9, + disputeGameFactoryImpl: tuple.10, + anchorStateRegistryImpl: tuple.11, + delayedWETHImpl: tuple.12, + mipsImpl: tuple.13, + faultDisputeGameV2Impl: tuple.14, + permissionedDisputeGameV2Impl: tuple.15, + superFaultDisputeGameImpl: tuple.16, + superPermissionedDisputeGameImpl: tuple.17, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolValue for Implementations { + type SolType = Self; + } + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for Implementations { + #[inline] + fn stv_to_tokens(&self) -> ::Token<'_> { + ( + ::tokenize( + &self.superchainConfigImpl, + ), + ::tokenize( + &self.protocolVersionsImpl, + ), + ::tokenize( + &self.l1ERC721BridgeImpl, + ), + ::tokenize( + &self.optimismPortalImpl, + ), + ::tokenize( + &self.optimismPortalInteropImpl, + ), + ::tokenize( + &self.ethLockboxImpl, + ), + ::tokenize( + &self.systemConfigImpl, + ), + ::tokenize( + &self.optimismMintableERC20FactoryImpl, + ), + ::tokenize( + &self.l1CrossDomainMessengerImpl, + ), + ::tokenize( + &self.l1StandardBridgeImpl, + ), + ::tokenize( + &self.disputeGameFactoryImpl, + ), + ::tokenize( + &self.anchorStateRegistryImpl, + ), + ::tokenize( + &self.delayedWETHImpl, + ), + ::tokenize( + &self.mipsImpl, + ), + ::tokenize( + &self.faultDisputeGameV2Impl, + ), + ::tokenize( + &self.permissionedDisputeGameV2Impl, + ), + ::tokenize( + &self.superFaultDisputeGameImpl, + ), + ::tokenize( + &self.superPermissionedDisputeGameImpl, + ), + ) + } + #[inline] + fn stv_abi_encoded_size(&self) -> usize { + if let Some(size) = ::ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encoded_size(&tuple) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + ::eip712_hash_struct(self) + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + if let Some(size) = ::PACKED_ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for Implementations { + type RustType = Self; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = ::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + as alloy_sol_types::SolType>::valid_token(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + let tuple = as alloy_sol_types::SolType>::detokenize(token); + >>::from(tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolStruct for Implementations { + const NAME: &'static str = "Implementations"; + #[inline] + fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> { + alloy_sol_types::private::Cow::Borrowed( + "Implementations(address superchainConfigImpl,address protocolVersionsImpl,address l1ERC721BridgeImpl,address optimismPortalImpl,address optimismPortalInteropImpl,address ethLockboxImpl,address systemConfigImpl,address optimismMintableERC20FactoryImpl,address l1CrossDomainMessengerImpl,address l1StandardBridgeImpl,address disputeGameFactoryImpl,address anchorStateRegistryImpl,address delayedWETHImpl,address mipsImpl,address faultDisputeGameV2Impl,address permissionedDisputeGameV2Impl,address superFaultDisputeGameImpl,address superPermissionedDisputeGameImpl)", + ) + } + #[inline] + fn eip712_components() -> alloy_sol_types::private::Vec< + alloy_sol_types::private::Cow<'static, str>, + > { + alloy_sol_types::private::Vec::new() + } + #[inline] + fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> { + ::eip712_root_type() + } + #[inline] + fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec { + [ + ::eip712_data_word( + &self.superchainConfigImpl, + ) + .0, + ::eip712_data_word( + &self.protocolVersionsImpl, + ) + .0, + ::eip712_data_word( + &self.l1ERC721BridgeImpl, + ) + .0, + ::eip712_data_word( + &self.optimismPortalImpl, + ) + .0, + ::eip712_data_word( + &self.optimismPortalInteropImpl, + ) + .0, + ::eip712_data_word( + &self.ethLockboxImpl, + ) + .0, + ::eip712_data_word( + &self.systemConfigImpl, + ) + .0, + ::eip712_data_word( + &self.optimismMintableERC20FactoryImpl, + ) + .0, + ::eip712_data_word( + &self.l1CrossDomainMessengerImpl, + ) + .0, + ::eip712_data_word( + &self.l1StandardBridgeImpl, + ) + .0, + ::eip712_data_word( + &self.disputeGameFactoryImpl, + ) + .0, + ::eip712_data_word( + &self.anchorStateRegistryImpl, + ) + .0, + ::eip712_data_word( + &self.delayedWETHImpl, + ) + .0, + ::eip712_data_word( + &self.mipsImpl, + ) + .0, + ::eip712_data_word( + &self.faultDisputeGameV2Impl, + ) + .0, + ::eip712_data_word( + &self.permissionedDisputeGameV2Impl, + ) + .0, + ::eip712_data_word( + &self.superFaultDisputeGameImpl, + ) + .0, + ::eip712_data_word( + &self.superPermissionedDisputeGameImpl, + ) + .0, + ] + .concat() + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for Implementations { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + 0usize + + ::topic_preimage_length( + &rust.superchainConfigImpl, + ) + + ::topic_preimage_length( + &rust.protocolVersionsImpl, + ) + + ::topic_preimage_length( + &rust.l1ERC721BridgeImpl, + ) + + ::topic_preimage_length( + &rust.optimismPortalImpl, + ) + + ::topic_preimage_length( + &rust.optimismPortalInteropImpl, + ) + + ::topic_preimage_length( + &rust.ethLockboxImpl, + ) + + ::topic_preimage_length( + &rust.systemConfigImpl, + ) + + ::topic_preimage_length( + &rust.optimismMintableERC20FactoryImpl, + ) + + ::topic_preimage_length( + &rust.l1CrossDomainMessengerImpl, + ) + + ::topic_preimage_length( + &rust.l1StandardBridgeImpl, + ) + + ::topic_preimage_length( + &rust.disputeGameFactoryImpl, + ) + + ::topic_preimage_length( + &rust.anchorStateRegistryImpl, + ) + + ::topic_preimage_length( + &rust.delayedWETHImpl, + ) + + ::topic_preimage_length( + &rust.mipsImpl, + ) + + ::topic_preimage_length( + &rust.faultDisputeGameV2Impl, + ) + + ::topic_preimage_length( + &rust.permissionedDisputeGameV2Impl, + ) + + ::topic_preimage_length( + &rust.superFaultDisputeGameImpl, + ) + + ::topic_preimage_length( + &rust.superPermissionedDisputeGameImpl, + ) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + out.reserve( + ::topic_preimage_length(rust), + ); + ::encode_topic_preimage( + &rust.superchainConfigImpl, + out, + ); + ::encode_topic_preimage( + &rust.protocolVersionsImpl, + out, + ); + ::encode_topic_preimage( + &rust.l1ERC721BridgeImpl, + out, + ); + ::encode_topic_preimage( + &rust.optimismPortalImpl, + out, + ); + ::encode_topic_preimage( + &rust.optimismPortalInteropImpl, + out, + ); + ::encode_topic_preimage( + &rust.ethLockboxImpl, + out, + ); + ::encode_topic_preimage( + &rust.systemConfigImpl, + out, + ); + ::encode_topic_preimage( + &rust.optimismMintableERC20FactoryImpl, + out, + ); + ::encode_topic_preimage( + &rust.l1CrossDomainMessengerImpl, + out, + ); + ::encode_topic_preimage( + &rust.l1StandardBridgeImpl, + out, + ); + ::encode_topic_preimage( + &rust.disputeGameFactoryImpl, + out, + ); + ::encode_topic_preimage( + &rust.anchorStateRegistryImpl, + out, + ); + ::encode_topic_preimage( + &rust.delayedWETHImpl, + out, + ); + ::encode_topic_preimage( + &rust.mipsImpl, + out, + ); + ::encode_topic_preimage( + &rust.faultDisputeGameV2Impl, + out, + ); + ::encode_topic_preimage( + &rust.permissionedDisputeGameV2Impl, + out, + ); + ::encode_topic_preimage( + &rust.superFaultDisputeGameImpl, + out, + ); + ::encode_topic_preimage( + &rust.superPermissionedDisputeGameImpl, + out, + ); + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + let mut out = alloy_sol_types::private::Vec::new(); + ::encode_topic_preimage( + rust, + &mut out, + ); + alloy_sol_types::abi::token::WordToken( + alloy_sol_types::private::keccak256(out), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**```solidity +struct OpChainConfig { address systemConfigProxy; Claim cannonPrestate; Claim cannonKonaPrestate; } +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct OpChainConfig { + #[allow(missing_docs)] + pub systemConfigProxy: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub cannonPrestate: ::RustType, + #[allow(missing_docs)] + pub cannonKonaPrestate: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + Claim, + Claim, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + ::RustType, + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: OpChainConfig) -> Self { + (value.systemConfigProxy, value.cannonPrestate, value.cannonKonaPrestate) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for OpChainConfig { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + systemConfigProxy: tuple.0, + cannonPrestate: tuple.1, + cannonKonaPrestate: tuple.2, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolValue for OpChainConfig { + type SolType = Self; + } + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for OpChainConfig { + #[inline] + fn stv_to_tokens(&self) -> ::Token<'_> { + ( + ::tokenize( + &self.systemConfigProxy, + ), + ::tokenize(&self.cannonPrestate), + ::tokenize( + &self.cannonKonaPrestate, + ), + ) + } + #[inline] + fn stv_abi_encoded_size(&self) -> usize { + if let Some(size) = ::ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encoded_size(&tuple) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + ::eip712_hash_struct(self) + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + if let Some(size) = ::PACKED_ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for OpChainConfig { + type RustType = Self; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = ::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + as alloy_sol_types::SolType>::valid_token(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + let tuple = as alloy_sol_types::SolType>::detokenize(token); + >>::from(tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolStruct for OpChainConfig { + const NAME: &'static str = "OpChainConfig"; + #[inline] + fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> { + alloy_sol_types::private::Cow::Borrowed( + "OpChainConfig(address systemConfigProxy,bytes32 cannonPrestate,bytes32 cannonKonaPrestate)", + ) + } + #[inline] + fn eip712_components() -> alloy_sol_types::private::Vec< + alloy_sol_types::private::Cow<'static, str>, + > { + alloy_sol_types::private::Vec::new() + } + #[inline] + fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> { + ::eip712_root_type() + } + #[inline] + fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec { + [ + ::eip712_data_word( + &self.systemConfigProxy, + ) + .0, + ::eip712_data_word( + &self.cannonPrestate, + ) + .0, + ::eip712_data_word( + &self.cannonKonaPrestate, + ) + .0, + ] + .concat() + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for OpChainConfig { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + 0usize + + ::topic_preimage_length( + &rust.systemConfigProxy, + ) + + ::topic_preimage_length( + &rust.cannonPrestate, + ) + + ::topic_preimage_length( + &rust.cannonKonaPrestate, + ) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + out.reserve( + ::topic_preimage_length(rust), + ); + ::encode_topic_preimage( + &rust.systemConfigProxy, + out, + ); + ::encode_topic_preimage( + &rust.cannonPrestate, + out, + ); + ::encode_topic_preimage( + &rust.cannonKonaPrestate, + out, + ); + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + let mut out = alloy_sol_types::private::Vec::new(); + ::encode_topic_preimage( + rust, + &mut out, + ); + alloy_sol_types::abi::token::WordToken( + alloy_sol_types::private::keccak256(out), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**```solidity +struct Proposal { Hash root; uint256 l2SequenceNumber; } +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct Proposal { + #[allow(missing_docs)] + pub root: ::RustType, + #[allow(missing_docs)] + pub l2SequenceNumber: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Hash, alloy::sol_types::sol_data::Uint<256>); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: Proposal) -> Self { + (value.root, value.l2SequenceNumber) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for Proposal { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + root: tuple.0, + l2SequenceNumber: tuple.1, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolValue for Proposal { + type SolType = Self; + } + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for Proposal { + #[inline] + fn stv_to_tokens(&self) -> ::Token<'_> { + ( + ::tokenize(&self.root), + as alloy_sol_types::SolType>::tokenize(&self.l2SequenceNumber), + ) + } + #[inline] + fn stv_abi_encoded_size(&self) -> usize { + if let Some(size) = ::ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encoded_size(&tuple) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + ::eip712_hash_struct(self) + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + if let Some(size) = ::PACKED_ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for Proposal { + type RustType = Self; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = ::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + as alloy_sol_types::SolType>::valid_token(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + let tuple = as alloy_sol_types::SolType>::detokenize(token); + >>::from(tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolStruct for Proposal { + const NAME: &'static str = "Proposal"; + #[inline] + fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> { + alloy_sol_types::private::Cow::Borrowed( + "Proposal(bytes32 root,uint256 l2SequenceNumber)", + ) + } + #[inline] + fn eip712_components() -> alloy_sol_types::private::Vec< + alloy_sol_types::private::Cow<'static, str>, + > { + alloy_sol_types::private::Vec::new() + } + #[inline] + fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> { + ::eip712_root_type() + } + #[inline] + fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec { + [ + ::eip712_data_word(&self.root).0, + as alloy_sol_types::SolType>::eip712_data_word( + &self.l2SequenceNumber, + ) + .0, + ] + .concat() + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for Proposal { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + 0usize + + ::topic_preimage_length( + &rust.root, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.l2SequenceNumber, + ) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + out.reserve( + ::topic_preimage_length(rust), + ); + ::encode_topic_preimage( + &rust.root, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.l2SequenceNumber, + out, + ); + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + let mut out = alloy_sol_types::private::Vec::new(); + ::encode_topic_preimage( + rust, + &mut out, + ); + alloy_sol_types::abi::token::WordToken( + alloy_sol_types::private::keccak256(out), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**```solidity +struct Roles { address opChainProxyAdminOwner; address systemConfigOwner; address batcher; address unsafeBlockSigner; address proposer; address challenger; } +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct Roles { + #[allow(missing_docs)] + pub opChainProxyAdminOwner: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub systemConfigOwner: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub batcher: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub unsafeBlockSigner: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub proposer: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub challenger: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: Roles) -> Self { + ( + value.opChainProxyAdminOwner, + value.systemConfigOwner, + value.batcher, + value.unsafeBlockSigner, + value.proposer, + value.challenger, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for Roles { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + opChainProxyAdminOwner: tuple.0, + systemConfigOwner: tuple.1, + batcher: tuple.2, + unsafeBlockSigner: tuple.3, + proposer: tuple.4, + challenger: tuple.5, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolValue for Roles { + type SolType = Self; + } + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for Roles { + #[inline] + fn stv_to_tokens(&self) -> ::Token<'_> { + ( + ::tokenize( + &self.opChainProxyAdminOwner, + ), + ::tokenize( + &self.systemConfigOwner, + ), + ::tokenize( + &self.batcher, + ), + ::tokenize( + &self.unsafeBlockSigner, + ), + ::tokenize( + &self.proposer, + ), + ::tokenize( + &self.challenger, + ), + ) + } + #[inline] + fn stv_abi_encoded_size(&self) -> usize { + if let Some(size) = ::ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encoded_size(&tuple) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + ::eip712_hash_struct(self) + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + if let Some(size) = ::PACKED_ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for Roles { + type RustType = Self; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = ::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + as alloy_sol_types::SolType>::valid_token(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + let tuple = as alloy_sol_types::SolType>::detokenize(token); + >>::from(tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolStruct for Roles { + const NAME: &'static str = "Roles"; + #[inline] + fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> { + alloy_sol_types::private::Cow::Borrowed( + "Roles(address opChainProxyAdminOwner,address systemConfigOwner,address batcher,address unsafeBlockSigner,address proposer,address challenger)", + ) + } + #[inline] + fn eip712_components() -> alloy_sol_types::private::Vec< + alloy_sol_types::private::Cow<'static, str>, + > { + alloy_sol_types::private::Vec::new() + } + #[inline] + fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> { + ::eip712_root_type() + } + #[inline] + fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec { + [ + ::eip712_data_word( + &self.opChainProxyAdminOwner, + ) + .0, + ::eip712_data_word( + &self.systemConfigOwner, + ) + .0, + ::eip712_data_word( + &self.batcher, + ) + .0, + ::eip712_data_word( + &self.unsafeBlockSigner, + ) + .0, + ::eip712_data_word( + &self.proposer, + ) + .0, + ::eip712_data_word( + &self.challenger, + ) + .0, + ] + .concat() + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for Roles { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + 0usize + + ::topic_preimage_length( + &rust.opChainProxyAdminOwner, + ) + + ::topic_preimage_length( + &rust.systemConfigOwner, + ) + + ::topic_preimage_length( + &rust.batcher, + ) + + ::topic_preimage_length( + &rust.unsafeBlockSigner, + ) + + ::topic_preimage_length( + &rust.proposer, + ) + + ::topic_preimage_length( + &rust.challenger, + ) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + out.reserve( + ::topic_preimage_length(rust), + ); + ::encode_topic_preimage( + &rust.opChainProxyAdminOwner, + out, + ); + ::encode_topic_preimage( + &rust.systemConfigOwner, + out, + ); + ::encode_topic_preimage( + &rust.batcher, + out, + ); + ::encode_topic_preimage( + &rust.unsafeBlockSigner, + out, + ); + ::encode_topic_preimage( + &rust.proposer, + out, + ); + ::encode_topic_preimage( + &rust.challenger, + out, + ); + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + let mut out = alloy_sol_types::private::Vec::new(); + ::encode_topic_preimage( + rust, + &mut out, + ); + alloy_sol_types::abi::token::WordToken( + alloy_sol_types::private::keccak256(out), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**```solidity +struct UpdatePrestateInput { address systemConfigProxy; Claim cannonPrestate; Claim cannonKonaPrestate; } +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct UpdatePrestateInput { + #[allow(missing_docs)] + pub systemConfigProxy: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub cannonPrestate: ::RustType, + #[allow(missing_docs)] + pub cannonKonaPrestate: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + Claim, + Claim, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + ::RustType, + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: UpdatePrestateInput) -> Self { + (value.systemConfigProxy, value.cannonPrestate, value.cannonKonaPrestate) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for UpdatePrestateInput { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + systemConfigProxy: tuple.0, + cannonPrestate: tuple.1, + cannonKonaPrestate: tuple.2, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolValue for UpdatePrestateInput { + type SolType = Self; + } + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for UpdatePrestateInput { + #[inline] + fn stv_to_tokens(&self) -> ::Token<'_> { + ( + ::tokenize( + &self.systemConfigProxy, + ), + ::tokenize(&self.cannonPrestate), + ::tokenize( + &self.cannonKonaPrestate, + ), + ) + } + #[inline] + fn stv_abi_encoded_size(&self) -> usize { + if let Some(size) = ::ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encoded_size(&tuple) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + ::eip712_hash_struct(self) + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + if let Some(size) = ::PACKED_ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for UpdatePrestateInput { + type RustType = Self; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = ::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + as alloy_sol_types::SolType>::valid_token(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + let tuple = as alloy_sol_types::SolType>::detokenize(token); + >>::from(tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolStruct for UpdatePrestateInput { + const NAME: &'static str = "UpdatePrestateInput"; + #[inline] + fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> { + alloy_sol_types::private::Cow::Borrowed( + "UpdatePrestateInput(address systemConfigProxy,bytes32 cannonPrestate,bytes32 cannonKonaPrestate)", + ) + } + #[inline] + fn eip712_components() -> alloy_sol_types::private::Vec< + alloy_sol_types::private::Cow<'static, str>, + > { + alloy_sol_types::private::Vec::new() + } + #[inline] + fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> { + ::eip712_root_type() + } + #[inline] + fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec { + [ + ::eip712_data_word( + &self.systemConfigProxy, + ) + .0, + ::eip712_data_word( + &self.cannonPrestate, + ) + .0, + ::eip712_data_word( + &self.cannonKonaPrestate, + ) + .0, + ] + .concat() + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for UpdatePrestateInput { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + 0usize + + ::topic_preimage_length( + &rust.systemConfigProxy, + ) + + ::topic_preimage_length( + &rust.cannonPrestate, + ) + + ::topic_preimage_length( + &rust.cannonKonaPrestate, + ) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + out.reserve( + ::topic_preimage_length(rust), + ); + ::encode_topic_preimage( + &rust.systemConfigProxy, + out, + ); + ::encode_topic_preimage( + &rust.cannonPrestate, + out, + ); + ::encode_topic_preimage( + &rust.cannonKonaPrestate, + out, + ); + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + let mut out = alloy_sol_types::private::Vec::new(); + ::encode_topic_preimage( + rust, + &mut out, + ); + alloy_sol_types::abi::token::WordToken( + alloy_sol_types::private::keccak256(out), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `AddressHasNoCode(address)` and selector `0x86bb51b8`. +```solidity +error AddressHasNoCode(address who); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct AddressHasNoCode { + #[allow(missing_docs)] + pub who: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: AddressHasNoCode) -> Self { + (value.who,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for AddressHasNoCode { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { who: tuple.0 } + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for AddressHasNoCode { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "AddressHasNoCode(address)"; + const SELECTOR: [u8; 4] = [134u8, 187u8, 81u8, 184u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.who, + ), + ) + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `AddressNotFound(address)` and selector `0x70de3231`. +```solidity +error AddressNotFound(address who); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct AddressNotFound { + #[allow(missing_docs)] + pub who: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: AddressNotFound) -> Self { + (value.who,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for AddressNotFound { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { who: tuple.0 } + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for AddressNotFound { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "AddressNotFound(address)"; + const SELECTOR: [u8; 4] = [112u8, 222u8, 50u8, 49u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.who, + ), + ) + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `AlreadyReleased()` and selector `0x63b4904e`. +```solidity +error AlreadyReleased(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct AlreadyReleased; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: AlreadyReleased) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for AlreadyReleased { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for AlreadyReleased { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "AlreadyReleased()"; + const SELECTOR: [u8; 4] = [99u8, 180u8, 144u8, 78u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidChainId()` and selector `0x7a47c9a2`. +```solidity +error InvalidChainId(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidChainId; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InvalidChainId) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InvalidChainId { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidChainId { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidChainId()"; + const SELECTOR: [u8; 4] = [122u8, 71u8, 201u8, 162u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidDevFeatureAccess(bytes32)` and selector `0x228ff8f2`. +```solidity +error InvalidDevFeatureAccess(bytes32 devFeature); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidDevFeatureAccess { + #[allow(missing_docs)] + pub devFeature: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InvalidDevFeatureAccess) -> Self { + (value.devFeature,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InvalidDevFeatureAccess { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { devFeature: tuple.0 } + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidDevFeatureAccess { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidDevFeatureAccess(bytes32)"; + const SELECTOR: [u8; 4] = [34u8, 143u8, 248u8, 242u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.devFeature), + ) + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidGameConfigs()` and selector `0xea116472`. +```solidity +error InvalidGameConfigs(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidGameConfigs; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InvalidGameConfigs) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InvalidGameConfigs { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidGameConfigs { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidGameConfigs()"; + const SELECTOR: [u8; 4] = [234u8, 17u8, 100u8, 114u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidRoleAddress(string)` and selector `0xe646e043`. +```solidity +error InvalidRoleAddress(string role); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidRoleAddress { + #[allow(missing_docs)] + pub role: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InvalidRoleAddress) -> Self { + (value.role,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InvalidRoleAddress { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { role: tuple.0 } + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidRoleAddress { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidRoleAddress(string)"; + const SELECTOR: [u8; 4] = [230u8, 70u8, 224u8, 67u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.role, + ), + ) + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidStartingAnchorRoot()` and selector `0x89e0acdf`. +```solidity +error InvalidStartingAnchorRoot(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidStartingAnchorRoot; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: InvalidStartingAnchorRoot) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for InvalidStartingAnchorRoot { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidStartingAnchorRoot { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidStartingAnchorRoot()"; + const SELECTOR: [u8; 4] = [137u8, 224u8, 172u8, 223u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `LatestReleaseNotSet()` and selector `0xe7a227dc`. +```solidity +error LatestReleaseNotSet(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct LatestReleaseNotSet; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: LatestReleaseNotSet) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for LatestReleaseNotSet { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for LatestReleaseNotSet { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "LatestReleaseNotSet()"; + const SELECTOR: [u8; 4] = [231u8, 162u8, 39u8, 220u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `OnlyDelegatecall()` and selector `0x0a57d61d`. +```solidity +error OnlyDelegatecall(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct OnlyDelegatecall; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: OnlyDelegatecall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for OnlyDelegatecall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for OnlyDelegatecall { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "OnlyDelegatecall()"; + const SELECTOR: [u8; 4] = [10u8, 87u8, 214u8, 29u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `PrestateNotSet()` and selector `0xefc878f2`. +```solidity +error PrestateNotSet(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct PrestateNotSet; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: PrestateNotSet) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for PrestateNotSet { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for PrestateNotSet { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "PrestateNotSet()"; + const SELECTOR: [u8; 4] = [239u8, 200u8, 120u8, 242u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `PrestateRequired()` and selector `0xb30c83ab`. +```solidity +error PrestateRequired(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct PrestateRequired; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: PrestateRequired) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for PrestateRequired { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for PrestateRequired { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "PrestateRequired()"; + const SELECTOR: [u8; 4] = [179u8, 12u8, 131u8, 171u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `SuperchainConfigMismatch(address)` and selector `0xc358e75a`. +```solidity +error SuperchainConfigMismatch(address systemConfig); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct SuperchainConfigMismatch { + #[allow(missing_docs)] + pub systemConfig: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: SuperchainConfigMismatch) -> Self { + (value.systemConfig,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for SuperchainConfigMismatch { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { systemConfig: tuple.0 } + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for SuperchainConfigMismatch { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "SuperchainConfigMismatch(address)"; + const SELECTOR: [u8; 4] = [195u8, 88u8, 231u8, 90u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.systemConfig, + ), + ) + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `SuperchainProxyAdminMismatch()` and selector `0x83e442ff`. +```solidity +error SuperchainProxyAdminMismatch(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct SuperchainProxyAdminMismatch; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: SuperchainProxyAdminMismatch) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for SuperchainProxyAdminMismatch { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for SuperchainProxyAdminMismatch { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "SuperchainProxyAdminMismatch()"; + const SELECTOR: [u8; 4] = [131u8, 228u8, 66u8, 255u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + /**Constructor`. +```solidity +constructor(address _opcmGameTypeAdder, address _opcmDeployer, address _opcmUpgrader, address _opcmInteropMigrator, address _opcmStandardValidator, address _superchainConfig, address _protocolVersions); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct constructorCall { + #[allow(missing_docs)] + pub _opcmGameTypeAdder: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _opcmDeployer: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _opcmUpgrader: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _opcmInteropMigrator: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _opcmStandardValidator: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _superchainConfig: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _protocolVersions: alloy::sol_types::private::Address, + } + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: constructorCall) -> Self { + ( + value._opcmGameTypeAdder, + value._opcmDeployer, + value._opcmUpgrader, + value._opcmInteropMigrator, + value._opcmStandardValidator, + value._superchainConfig, + value._protocolVersions, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for constructorCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _opcmGameTypeAdder: tuple.0, + _opcmDeployer: tuple.1, + _opcmUpgrader: tuple.2, + _opcmInteropMigrator: tuple.3, + _opcmStandardValidator: tuple.4, + _superchainConfig: tuple.5, + _protocolVersions: tuple.6, + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolConstructor for constructorCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._opcmGameTypeAdder, + ), + ::tokenize( + &self._opcmDeployer, + ), + ::tokenize( + &self._opcmUpgrader, + ), + ::tokenize( + &self._opcmInteropMigrator, + ), + ::tokenize( + &self._opcmStandardValidator, + ), + ::tokenize( + &self._superchainConfig, + ), + ::tokenize( + &self._protocolVersions, + ), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `addGameType((string,address,address,uint32,bytes32,uint256,uint256,uint64,uint64,uint256,address,bool)[])` and selector `0x604aa628`. +```solidity +function addGameType(AddGameInput[] memory _gameConfigs) external returns (AddGameOutput[] memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct addGameTypeCall { + #[allow(missing_docs)] + pub _gameConfigs: alloy::sol_types::private::Vec< + ::RustType, + >, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`addGameType((string,address,address,uint32,bytes32,uint256,uint256,uint64,uint64,uint256,address,bool)[])`](addGameTypeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct addGameTypeReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Vec< + ::RustType, + >, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Array, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Vec< + ::RustType, + >, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: addGameTypeCall) -> Self { + (value._gameConfigs,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for addGameTypeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _gameConfigs: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Array, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Vec< + ::RustType, + >, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: addGameTypeReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for addGameTypeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for addGameTypeCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Array,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Vec< + ::RustType, + >; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Array,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "addGameType((string,address,address,uint32,bytes32,uint256,uint256,uint64,uint64,uint256,address,bool)[])"; + const SELECTOR: [u8; 4] = [96u8, 74u8, 166u8, 40u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._gameConfigs), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: addGameTypeReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: addGameTypeReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `blueprints()` and selector `0xb51f9c2b`. +```solidity +function blueprints() external view returns (Blueprints memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct blueprintsCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`blueprints()`](blueprintsCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct blueprintsReturn { + #[allow(missing_docs)] + pub _0: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: blueprintsCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for blueprintsCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Blueprints,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: blueprintsReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for blueprintsReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for blueprintsCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (Blueprints,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "blueprints()"; + const SELECTOR: [u8; 4] = [181u8, 31u8, 156u8, 43u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: blueprintsReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: blueprintsReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `chainIdToBatchInboxAddress(uint256)` and selector `0x318b1b80`. +```solidity +function chainIdToBatchInboxAddress(uint256 _l2ChainId) external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct chainIdToBatchInboxAddressCall { + #[allow(missing_docs)] + pub _l2ChainId: alloy::sol_types::private::primitives::aliases::U256, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`chainIdToBatchInboxAddress(uint256)`](chainIdToBatchInboxAddressCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct chainIdToBatchInboxAddressReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: chainIdToBatchInboxAddressCall) -> Self { + (value._l2ChainId,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for chainIdToBatchInboxAddressCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _l2ChainId: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: chainIdToBatchInboxAddressReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for chainIdToBatchInboxAddressReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for chainIdToBatchInboxAddressCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "chainIdToBatchInboxAddress(uint256)"; + const SELECTOR: [u8; 4] = [49u8, 139u8, 27u8, 128u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._l2ChainId), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: chainIdToBatchInboxAddressReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: chainIdToBatchInboxAddressReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `deploy(((address,address,address,address,address,address),uint32,uint32,uint256,bytes,string,uint64,uint32,bytes32,uint256,uint256,uint64,uint64,bool))` and selector `0x6ab5f661`. +```solidity +function deploy(DeployInput memory _input) external returns (DeployOutput memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct deployCall { + #[allow(missing_docs)] + pub _input: ::RustType, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`deploy(((address,address,address,address,address,address),uint32,uint32,uint256,bytes,string,uint64,uint32,bytes32,uint256,uint256,uint64,uint64,bool))`](deployCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct deployReturn { + #[allow(missing_docs)] + pub _0: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (DeployInput,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: deployCall) -> Self { + (value._input,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for deployCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _input: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (DeployOutput,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: deployReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for deployReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for deployCall { + type Parameters<'a> = (DeployInput,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (DeployOutput,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "deploy(((address,address,address,address,address,address),uint32,uint32,uint256,bytes,string,uint64,uint32,bytes32,uint256,uint256,uint64,uint64,bool))"; + const SELECTOR: [u8; 4] = [106u8, 181u8, 246u8, 97u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + (::tokenize(&self._input),) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: deployReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: deployReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `devFeatureBitmap()` and selector `0x1d8a4e92`. +```solidity +function devFeatureBitmap() external view returns (bytes32); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct devFeatureBitmapCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`devFeatureBitmap()`](devFeatureBitmapCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct devFeatureBitmapReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: devFeatureBitmapCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for devFeatureBitmapCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: devFeatureBitmapReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for devFeatureBitmapReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for devFeatureBitmapCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::FixedBytes<32>; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "devFeatureBitmap()"; + const SELECTOR: [u8; 4] = [29u8, 138u8, 78u8, 146u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: devFeatureBitmapReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: devFeatureBitmapReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `implementations()` and selector `0x30e9012c`. +```solidity +function implementations() external view returns (Implementations memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct implementationsCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`implementations()`](implementationsCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct implementationsReturn { + #[allow(missing_docs)] + pub _0: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: implementationsCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for implementationsCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Implementations,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: implementationsReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for implementationsReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for implementationsCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (Implementations,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "implementations()"; + const SELECTOR: [u8; 4] = [48u8, 233u8, 1u8, 44u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: implementationsReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: implementationsReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `isDevFeatureEnabled(bytes32)` and selector `0x78ecabce`. +```solidity +function isDevFeatureEnabled(bytes32 _feature) external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct isDevFeatureEnabledCall { + #[allow(missing_docs)] + pub _feature: alloy::sol_types::private::FixedBytes<32>, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`isDevFeatureEnabled(bytes32)`](isDevFeatureEnabledCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct isDevFeatureEnabledReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: isDevFeatureEnabledCall) -> Self { + (value._feature,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for isDevFeatureEnabledCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _feature: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: isDevFeatureEnabledReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for isDevFeatureEnabledReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for isDevFeatureEnabledCall { + type Parameters<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "isDevFeatureEnabled(bytes32)"; + const SELECTOR: [u8; 4] = [120u8, 236u8, 171u8, 206u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._feature), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: isDevFeatureEnabledReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: isDevFeatureEnabledReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + /**Function with signature `migrate((bool,(bytes32,uint256),(address,address,uint256,uint256,uint256,uint64,uint64),(address,bytes32,bytes32)[]))` and selector `0x58084273`. +```solidity +function migrate(OPContractsManagerInteropMigrator.MigrateInput memory _input) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct migrateCall { + #[allow(missing_docs)] + pub _input: ::RustType, + } + ///Container type for the return parameters of the [`migrate((bool,(bytes32,uint256),(address,address,uint256,uint256,uint256,uint64,uint64),(address,bytes32,bytes32)[]))`](migrateCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct migrateReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + OPContractsManagerInteropMigrator::MigrateInput, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: migrateCall) -> Self { + (value._input,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for migrateCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _input: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: migrateReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for migrateReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl migrateReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for migrateCall { + type Parameters<'a> = (OPContractsManagerInteropMigrator::MigrateInput,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = migrateReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "migrate((bool,(bytes32,uint256),(address,address,uint256,uint256,uint256,uint64,uint64),(address,bytes32,bytes32)[]))"; + const SELECTOR: [u8; 4] = [88u8, 8u8, 66u8, 115u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._input, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + migrateReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `opcmDeployer()` and selector `0x622d56f1`. +```solidity +function opcmDeployer() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct opcmDeployerCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`opcmDeployer()`](opcmDeployerCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct opcmDeployerReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: opcmDeployerCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for opcmDeployerCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: opcmDeployerReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for opcmDeployerReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for opcmDeployerCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "opcmDeployer()"; + const SELECTOR: [u8; 4] = [98u8, 45u8, 86u8, 241u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: opcmDeployerReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: opcmDeployerReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `opcmGameTypeAdder()` and selector `0xbecbdf4a`. +```solidity +function opcmGameTypeAdder() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct opcmGameTypeAdderCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`opcmGameTypeAdder()`](opcmGameTypeAdderCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct opcmGameTypeAdderReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: opcmGameTypeAdderCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for opcmGameTypeAdderCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: opcmGameTypeAdderReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for opcmGameTypeAdderReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for opcmGameTypeAdderCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "opcmGameTypeAdder()"; + const SELECTOR: [u8; 4] = [190u8, 203u8, 223u8, 74u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: opcmGameTypeAdderReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: opcmGameTypeAdderReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `opcmInteropMigrator()` and selector `0x1481a724`. +```solidity +function opcmInteropMigrator() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct opcmInteropMigratorCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`opcmInteropMigrator()`](opcmInteropMigratorCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct opcmInteropMigratorReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: opcmInteropMigratorCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for opcmInteropMigratorCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: opcmInteropMigratorReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for opcmInteropMigratorReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for opcmInteropMigratorCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "opcmInteropMigrator()"; + const SELECTOR: [u8; 4] = [20u8, 129u8, 167u8, 36u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: opcmInteropMigratorReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: opcmInteropMigratorReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `opcmStandardValidator()` and selector `0xba7903db`. +```solidity +function opcmStandardValidator() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct opcmStandardValidatorCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`opcmStandardValidator()`](opcmStandardValidatorCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct opcmStandardValidatorReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: opcmStandardValidatorCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for opcmStandardValidatorCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: opcmStandardValidatorReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for opcmStandardValidatorReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for opcmStandardValidatorCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "opcmStandardValidator()"; + const SELECTOR: [u8; 4] = [186u8, 121u8, 3u8, 219u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: opcmStandardValidatorReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: opcmStandardValidatorReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `opcmUpgrader()` and selector `0x03dbe68c`. +```solidity +function opcmUpgrader() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct opcmUpgraderCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`opcmUpgrader()`](opcmUpgraderCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct opcmUpgraderReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: opcmUpgraderCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for opcmUpgraderCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: opcmUpgraderReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for opcmUpgraderReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for opcmUpgraderCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "opcmUpgrader()"; + const SELECTOR: [u8; 4] = [3u8, 219u8, 230u8, 140u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: opcmUpgraderReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: opcmUpgraderReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `protocolVersions()` and selector `0x6624856a`. +```solidity +function protocolVersions() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct protocolVersionsCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`protocolVersions()`](protocolVersionsCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct protocolVersionsReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: protocolVersionsCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for protocolVersionsCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: protocolVersionsReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for protocolVersionsReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for protocolVersionsCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "protocolVersions()"; + const SELECTOR: [u8; 4] = [102u8, 36u8, 133u8, 106u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: protocolVersionsReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: protocolVersionsReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `superchainConfig()` and selector `0x35e80ab3`. +```solidity +function superchainConfig() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct superchainConfigCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`superchainConfig()`](superchainConfigCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct superchainConfigReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: superchainConfigCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for superchainConfigCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: superchainConfigReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for superchainConfigReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for superchainConfigCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "superchainConfig()"; + const SELECTOR: [u8; 4] = [53u8, 232u8, 10u8, 179u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: superchainConfigReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: superchainConfigReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `updatePrestate((address,bytes32,bytes32)[])` and selector `0xb23cc044`. +```solidity +function updatePrestate(UpdatePrestateInput[] memory _prestateUpdateInputs) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct updatePrestateCall { + #[allow(missing_docs)] + pub _prestateUpdateInputs: alloy::sol_types::private::Vec< + ::RustType, + >, + } + ///Container type for the return parameters of the [`updatePrestate((address,bytes32,bytes32)[])`](updatePrestateCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct updatePrestateReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Array, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Vec< + ::RustType, + >, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: updatePrestateCall) -> Self { + (value._prestateUpdateInputs,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for updatePrestateCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _prestateUpdateInputs: tuple.0, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: updatePrestateReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for updatePrestateReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl updatePrestateReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for updatePrestateCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Array, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = updatePrestateReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "updatePrestate((address,bytes32,bytes32)[])"; + const SELECTOR: [u8; 4] = [178u8, 60u8, 192u8, 68u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize( + &self._prestateUpdateInputs, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + updatePrestateReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `upgrade((address,bytes32,bytes32)[])` and selector `0xcbeda5a7`. +```solidity +function upgrade(OpChainConfig[] memory _opChainConfigs) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct upgradeCall { + #[allow(missing_docs)] + pub _opChainConfigs: alloy::sol_types::private::Vec< + ::RustType, + >, + } + ///Container type for the return parameters of the [`upgrade((address,bytes32,bytes32)[])`](upgradeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct upgradeReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Array, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Vec< + ::RustType, + >, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: upgradeCall) -> Self { + (value._opChainConfigs,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for upgradeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _opChainConfigs: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: upgradeReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for upgradeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl upgradeReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for upgradeCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Array,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = upgradeReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "upgrade((address,bytes32,bytes32)[])"; + const SELECTOR: [u8; 4] = [203u8, 237u8, 165u8, 167u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._opChainConfigs), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + upgradeReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `upgradeSuperchainConfig(address)` and selector `0xc993f27c`. +```solidity +function upgradeSuperchainConfig(address _superchainConfig) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct upgradeSuperchainConfigCall { + #[allow(missing_docs)] + pub _superchainConfig: alloy::sol_types::private::Address, + } + ///Container type for the return parameters of the [`upgradeSuperchainConfig(address)`](upgradeSuperchainConfigCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct upgradeSuperchainConfigReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: upgradeSuperchainConfigCall) -> Self { + (value._superchainConfig,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for upgradeSuperchainConfigCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _superchainConfig: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: upgradeSuperchainConfigReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for upgradeSuperchainConfigReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl upgradeSuperchainConfigReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken< + '_, + > { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for upgradeSuperchainConfigCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = upgradeSuperchainConfigReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "upgradeSuperchainConfig(address)"; + const SELECTOR: [u8; 4] = [201u8, 147u8, 242u8, 124u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._superchainConfig, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + upgradeSuperchainConfigReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `validate((address,bytes32,uint256,address),bool)` and selector `0x41fe5385`. +```solidity +function validate(OPContractsManagerStandardValidator.ValidationInput memory _input, bool _allowFailure) external view returns (string memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct validate_0Call { + #[allow(missing_docs)] + pub _input: ::RustType, + #[allow(missing_docs)] + pub _allowFailure: bool, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`validate((address,bytes32,uint256,address),bool)`](validate_0Call) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct validate_0Return { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + OPContractsManagerStandardValidator::ValidationInput, + alloy::sol_types::sol_data::Bool, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + bool, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: validate_0Call) -> Self { + (value._input, value._allowFailure) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for validate_0Call { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _input: tuple.0, + _allowFailure: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: validate_0Return) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for validate_0Return { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for validate_0Call { + type Parameters<'a> = ( + OPContractsManagerStandardValidator::ValidationInput, + alloy::sol_types::sol_data::Bool, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::String; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "validate((address,bytes32,uint256,address),bool)"; + const SELECTOR: [u8; 4] = [65u8, 254u8, 83u8, 133u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._input, + ), + ::tokenize( + &self._allowFailure, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: validate_0Return = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: validate_0Return = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `validate((address,bytes32,bytes32,uint256,address),bool)` and selector `0xf3edcbe1`. +```solidity +function validate(OPContractsManagerStandardValidator.ValidationInputDev memory _input, bool _allowFailure) external view returns (string memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct validate_1Call { + #[allow(missing_docs)] + pub _input: ::RustType, + #[allow(missing_docs)] + pub _allowFailure: bool, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`validate((address,bytes32,bytes32,uint256,address),bool)`](validate_1Call) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct validate_1Return { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + OPContractsManagerStandardValidator::ValidationInputDev, + alloy::sol_types::sol_data::Bool, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + bool, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: validate_1Call) -> Self { + (value._input, value._allowFailure) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for validate_1Call { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _input: tuple.0, + _allowFailure: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: validate_1Return) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for validate_1Return { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for validate_1Call { + type Parameters<'a> = ( + OPContractsManagerStandardValidator::ValidationInputDev, + alloy::sol_types::sol_data::Bool, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::String; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "validate((address,bytes32,bytes32,uint256,address),bool)"; + const SELECTOR: [u8; 4] = [243u8, 237u8, 203u8, 225u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._input, + ), + ::tokenize( + &self._allowFailure, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: validate_1Return = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: validate_1Return = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `validateWithOverrides((address,bytes32,uint256,address),bool,(address,address))` and selector `0x0e9d5cb9`. +```solidity +function validateWithOverrides(OPContractsManagerStandardValidator.ValidationInput memory _input, bool _allowFailure, OPContractsManagerStandardValidator.ValidationOverrides memory _overrides) external view returns (string memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct validateWithOverrides_0Call { + #[allow(missing_docs)] + pub _input: ::RustType, + #[allow(missing_docs)] + pub _allowFailure: bool, + #[allow(missing_docs)] + pub _overrides: ::RustType, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`validateWithOverrides((address,bytes32,uint256,address),bool,(address,address))`](validateWithOverrides_0Call) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct validateWithOverrides_0Return { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + OPContractsManagerStandardValidator::ValidationInput, + alloy::sol_types::sol_data::Bool, + OPContractsManagerStandardValidator::ValidationOverrides, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + bool, + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: validateWithOverrides_0Call) -> Self { + (value._input, value._allowFailure, value._overrides) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for validateWithOverrides_0Call { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _input: tuple.0, + _allowFailure: tuple.1, + _overrides: tuple.2, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: validateWithOverrides_0Return) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for validateWithOverrides_0Return { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for validateWithOverrides_0Call { + type Parameters<'a> = ( + OPContractsManagerStandardValidator::ValidationInput, + alloy::sol_types::sol_data::Bool, + OPContractsManagerStandardValidator::ValidationOverrides, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::String; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "validateWithOverrides((address,bytes32,uint256,address),bool,(address,address))"; + const SELECTOR: [u8; 4] = [14u8, 157u8, 92u8, 185u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._input, + ), + ::tokenize( + &self._allowFailure, + ), + ::tokenize( + &self._overrides, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: validateWithOverrides_0Return = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: validateWithOverrides_0Return = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `validateWithOverrides((address,bytes32,bytes32,uint256,address),bool,(address,address))` and selector `0x8970ac44`. +```solidity +function validateWithOverrides(OPContractsManagerStandardValidator.ValidationInputDev memory _input, bool _allowFailure, OPContractsManagerStandardValidator.ValidationOverrides memory _overrides) external view returns (string memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct validateWithOverrides_1Call { + #[allow(missing_docs)] + pub _input: ::RustType, + #[allow(missing_docs)] + pub _allowFailure: bool, + #[allow(missing_docs)] + pub _overrides: ::RustType, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`validateWithOverrides((address,bytes32,bytes32,uint256,address),bool,(address,address))`](validateWithOverrides_1Call) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct validateWithOverrides_1Return { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + OPContractsManagerStandardValidator::ValidationInputDev, + alloy::sol_types::sol_data::Bool, + OPContractsManagerStandardValidator::ValidationOverrides, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + bool, + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: validateWithOverrides_1Call) -> Self { + (value._input, value._allowFailure, value._overrides) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for validateWithOverrides_1Call { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _input: tuple.0, + _allowFailure: tuple.1, + _overrides: tuple.2, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: validateWithOverrides_1Return) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for validateWithOverrides_1Return { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for validateWithOverrides_1Call { + type Parameters<'a> = ( + OPContractsManagerStandardValidator::ValidationInputDev, + alloy::sol_types::sol_data::Bool, + OPContractsManagerStandardValidator::ValidationOverrides, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::String; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "validateWithOverrides((address,bytes32,bytes32,uint256,address),bool,(address,address))"; + const SELECTOR: [u8; 4] = [137u8, 112u8, 172u8, 68u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._input, + ), + ::tokenize( + &self._allowFailure, + ), + ::tokenize( + &self._overrides, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: validateWithOverrides_1Return = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: validateWithOverrides_1Return = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `version()` and selector `0x54fd4d50`. +```solidity +function version() external pure returns (string memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`version()`](versionCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for versionCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::String; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "version()"; + const SELECTOR: [u8; 4] = [84u8, 253u8, 77u8, 80u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + } + }; + ///Container for all the [`OPContractsManager`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum OPContractsManagerCalls { + #[allow(missing_docs)] + addGameType(addGameTypeCall), + #[allow(missing_docs)] + blueprints(blueprintsCall), + #[allow(missing_docs)] + chainIdToBatchInboxAddress(chainIdToBatchInboxAddressCall), + #[allow(missing_docs)] + deploy(deployCall), + #[allow(missing_docs)] + devFeatureBitmap(devFeatureBitmapCall), + #[allow(missing_docs)] + implementations(implementationsCall), + #[allow(missing_docs)] + isDevFeatureEnabled(isDevFeatureEnabledCall), + #[allow(missing_docs)] + migrate(migrateCall), + #[allow(missing_docs)] + opcmDeployer(opcmDeployerCall), + #[allow(missing_docs)] + opcmGameTypeAdder(opcmGameTypeAdderCall), + #[allow(missing_docs)] + opcmInteropMigrator(opcmInteropMigratorCall), + #[allow(missing_docs)] + opcmStandardValidator(opcmStandardValidatorCall), + #[allow(missing_docs)] + opcmUpgrader(opcmUpgraderCall), + #[allow(missing_docs)] + protocolVersions(protocolVersionsCall), + #[allow(missing_docs)] + superchainConfig(superchainConfigCall), + #[allow(missing_docs)] + updatePrestate(updatePrestateCall), + #[allow(missing_docs)] + upgrade(upgradeCall), + #[allow(missing_docs)] + upgradeSuperchainConfig(upgradeSuperchainConfigCall), + #[allow(missing_docs)] + validate_0(validate_0Call), + #[allow(missing_docs)] + validate_1(validate_1Call), + #[allow(missing_docs)] + validateWithOverrides_0(validateWithOverrides_0Call), + #[allow(missing_docs)] + validateWithOverrides_1(validateWithOverrides_1Call), + #[allow(missing_docs)] + version(versionCall), + } + impl OPContractsManagerCalls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [3u8, 219u8, 230u8, 140u8], + [14u8, 157u8, 92u8, 185u8], + [20u8, 129u8, 167u8, 36u8], + [29u8, 138u8, 78u8, 146u8], + [48u8, 233u8, 1u8, 44u8], + [49u8, 139u8, 27u8, 128u8], + [53u8, 232u8, 10u8, 179u8], + [65u8, 254u8, 83u8, 133u8], + [84u8, 253u8, 77u8, 80u8], + [88u8, 8u8, 66u8, 115u8], + [96u8, 74u8, 166u8, 40u8], + [98u8, 45u8, 86u8, 241u8], + [102u8, 36u8, 133u8, 106u8], + [106u8, 181u8, 246u8, 97u8], + [120u8, 236u8, 171u8, 206u8], + [137u8, 112u8, 172u8, 68u8], + [178u8, 60u8, 192u8, 68u8], + [181u8, 31u8, 156u8, 43u8], + [186u8, 121u8, 3u8, 219u8], + [190u8, 203u8, 223u8, 74u8], + [201u8, 147u8, 242u8, 124u8], + [203u8, 237u8, 165u8, 167u8], + [243u8, 237u8, 203u8, 225u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(opcmUpgrader), + ::core::stringify!(validateWithOverrides_0), + ::core::stringify!(opcmInteropMigrator), + ::core::stringify!(devFeatureBitmap), + ::core::stringify!(implementations), + ::core::stringify!(chainIdToBatchInboxAddress), + ::core::stringify!(superchainConfig), + ::core::stringify!(validate_0), + ::core::stringify!(version), + ::core::stringify!(migrate), + ::core::stringify!(addGameType), + ::core::stringify!(opcmDeployer), + ::core::stringify!(protocolVersions), + ::core::stringify!(deploy), + ::core::stringify!(isDevFeatureEnabled), + ::core::stringify!(validateWithOverrides_1), + ::core::stringify!(updatePrestate), + ::core::stringify!(blueprints), + ::core::stringify!(opcmStandardValidator), + ::core::stringify!(opcmGameTypeAdder), + ::core::stringify!(upgradeSuperchainConfig), + ::core::stringify!(upgrade), + ::core::stringify!(validate_1), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for OPContractsManagerCalls { + const NAME: &'static str = "OPContractsManagerCalls"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 23usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::addGameType(_) => { + ::SELECTOR + } + Self::blueprints(_) => { + ::SELECTOR + } + Self::chainIdToBatchInboxAddress(_) => { + ::SELECTOR + } + Self::deploy(_) => ::SELECTOR, + Self::devFeatureBitmap(_) => { + ::SELECTOR + } + Self::implementations(_) => { + ::SELECTOR + } + Self::isDevFeatureEnabled(_) => { + ::SELECTOR + } + Self::migrate(_) => ::SELECTOR, + Self::opcmDeployer(_) => { + ::SELECTOR + } + Self::opcmGameTypeAdder(_) => { + ::SELECTOR + } + Self::opcmInteropMigrator(_) => { + ::SELECTOR + } + Self::opcmStandardValidator(_) => { + ::SELECTOR + } + Self::opcmUpgrader(_) => { + ::SELECTOR + } + Self::protocolVersions(_) => { + ::SELECTOR + } + Self::superchainConfig(_) => { + ::SELECTOR + } + Self::updatePrestate(_) => { + ::SELECTOR + } + Self::upgrade(_) => ::SELECTOR, + Self::upgradeSuperchainConfig(_) => { + ::SELECTOR + } + Self::validate_0(_) => { + ::SELECTOR + } + Self::validate_1(_) => { + ::SELECTOR + } + Self::validateWithOverrides_0(_) => { + ::SELECTOR + } + Self::validateWithOverrides_1(_) => { + ::SELECTOR + } + Self::version(_) => ::SELECTOR, + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn opcmUpgrader( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OPContractsManagerCalls::opcmUpgrader) + } + opcmUpgrader + }, + { + fn validateWithOverrides_0( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OPContractsManagerCalls::validateWithOverrides_0) + } + validateWithOverrides_0 + }, + { + fn opcmInteropMigrator( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OPContractsManagerCalls::opcmInteropMigrator) + } + opcmInteropMigrator + }, + { + fn devFeatureBitmap( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OPContractsManagerCalls::devFeatureBitmap) + } + devFeatureBitmap + }, + { + fn implementations( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OPContractsManagerCalls::implementations) + } + implementations + }, + { + fn chainIdToBatchInboxAddress( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OPContractsManagerCalls::chainIdToBatchInboxAddress) + } + chainIdToBatchInboxAddress + }, + { + fn superchainConfig( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OPContractsManagerCalls::superchainConfig) + } + superchainConfig + }, + { + fn validate_0( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OPContractsManagerCalls::validate_0) + } + validate_0 + }, + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(OPContractsManagerCalls::version) + } + version + }, + { + fn migrate( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(OPContractsManagerCalls::migrate) + } + migrate + }, + { + fn addGameType( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OPContractsManagerCalls::addGameType) + } + addGameType + }, + { + fn opcmDeployer( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OPContractsManagerCalls::opcmDeployer) + } + opcmDeployer + }, + { + fn protocolVersions( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OPContractsManagerCalls::protocolVersions) + } + protocolVersions + }, + { + fn deploy( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(OPContractsManagerCalls::deploy) + } + deploy + }, + { + fn isDevFeatureEnabled( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OPContractsManagerCalls::isDevFeatureEnabled) + } + isDevFeatureEnabled + }, + { + fn validateWithOverrides_1( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OPContractsManagerCalls::validateWithOverrides_1) + } + validateWithOverrides_1 + }, + { + fn updatePrestate( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OPContractsManagerCalls::updatePrestate) + } + updatePrestate + }, + { + fn blueprints( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OPContractsManagerCalls::blueprints) + } + blueprints + }, + { + fn opcmStandardValidator( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OPContractsManagerCalls::opcmStandardValidator) + } + opcmStandardValidator + }, + { + fn opcmGameTypeAdder( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OPContractsManagerCalls::opcmGameTypeAdder) + } + opcmGameTypeAdder + }, + { + fn upgradeSuperchainConfig( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OPContractsManagerCalls::upgradeSuperchainConfig) + } + upgradeSuperchainConfig + }, + { + fn upgrade( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(OPContractsManagerCalls::upgrade) + } + upgrade + }, + { + fn validate_1( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OPContractsManagerCalls::validate_1) + } + validate_1 + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn opcmUpgrader( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OPContractsManagerCalls::opcmUpgrader) + } + opcmUpgrader + }, + { + fn validateWithOverrides_0( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OPContractsManagerCalls::validateWithOverrides_0) + } + validateWithOverrides_0 + }, + { + fn opcmInteropMigrator( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OPContractsManagerCalls::opcmInteropMigrator) + } + opcmInteropMigrator + }, + { + fn devFeatureBitmap( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OPContractsManagerCalls::devFeatureBitmap) + } + devFeatureBitmap + }, + { + fn implementations( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OPContractsManagerCalls::implementations) + } + implementations + }, + { + fn chainIdToBatchInboxAddress( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OPContractsManagerCalls::chainIdToBatchInboxAddress) + } + chainIdToBatchInboxAddress + }, + { + fn superchainConfig( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OPContractsManagerCalls::superchainConfig) + } + superchainConfig + }, + { + fn validate_0( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OPContractsManagerCalls::validate_0) + } + validate_0 + }, + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OPContractsManagerCalls::version) + } + version + }, + { + fn migrate( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OPContractsManagerCalls::migrate) + } + migrate + }, + { + fn addGameType( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OPContractsManagerCalls::addGameType) + } + addGameType + }, + { + fn opcmDeployer( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OPContractsManagerCalls::opcmDeployer) + } + opcmDeployer + }, + { + fn protocolVersions( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OPContractsManagerCalls::protocolVersions) + } + protocolVersions + }, + { + fn deploy( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OPContractsManagerCalls::deploy) + } + deploy + }, + { + fn isDevFeatureEnabled( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OPContractsManagerCalls::isDevFeatureEnabled) + } + isDevFeatureEnabled + }, + { + fn validateWithOverrides_1( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OPContractsManagerCalls::validateWithOverrides_1) + } + validateWithOverrides_1 + }, + { + fn updatePrestate( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OPContractsManagerCalls::updatePrestate) + } + updatePrestate + }, + { + fn blueprints( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OPContractsManagerCalls::blueprints) + } + blueprints + }, + { + fn opcmStandardValidator( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OPContractsManagerCalls::opcmStandardValidator) + } + opcmStandardValidator + }, + { + fn opcmGameTypeAdder( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OPContractsManagerCalls::opcmGameTypeAdder) + } + opcmGameTypeAdder + }, + { + fn upgradeSuperchainConfig( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OPContractsManagerCalls::upgradeSuperchainConfig) + } + upgradeSuperchainConfig + }, + { + fn upgrade( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OPContractsManagerCalls::upgrade) + } + upgrade + }, + { + fn validate_1( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OPContractsManagerCalls::validate_1) + } + validate_1 + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::addGameType(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::blueprints(inner) => { + ::abi_encoded_size(inner) + } + Self::chainIdToBatchInboxAddress(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::deploy(inner) => { + ::abi_encoded_size(inner) + } + Self::devFeatureBitmap(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::implementations(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::isDevFeatureEnabled(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::migrate(inner) => { + ::abi_encoded_size(inner) + } + Self::opcmDeployer(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::opcmGameTypeAdder(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::opcmInteropMigrator(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::opcmStandardValidator(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::opcmUpgrader(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::protocolVersions(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::superchainConfig(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::updatePrestate(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::upgrade(inner) => { + ::abi_encoded_size(inner) + } + Self::upgradeSuperchainConfig(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::validate_0(inner) => { + ::abi_encoded_size(inner) + } + Self::validate_1(inner) => { + ::abi_encoded_size(inner) + } + Self::validateWithOverrides_0(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::validateWithOverrides_1(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::version(inner) => { + ::abi_encoded_size(inner) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::addGameType(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::blueprints(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::chainIdToBatchInboxAddress(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::deploy(inner) => { + ::abi_encode_raw(inner, out) + } + Self::devFeatureBitmap(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::implementations(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::isDevFeatureEnabled(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::migrate(inner) => { + ::abi_encode_raw(inner, out) + } + Self::opcmDeployer(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::opcmGameTypeAdder(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::opcmInteropMigrator(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::opcmStandardValidator(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::opcmUpgrader(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::protocolVersions(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::superchainConfig(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::updatePrestate(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::upgrade(inner) => { + ::abi_encode_raw(inner, out) + } + Self::upgradeSuperchainConfig(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::validate_0(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::validate_1(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::validateWithOverrides_0(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::validateWithOverrides_1(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::version(inner) => { + ::abi_encode_raw(inner, out) + } + } + } + } + ///Container for all the [`OPContractsManager`](self) custom errors. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum OPContractsManagerErrors { + #[allow(missing_docs)] + AddressHasNoCode(AddressHasNoCode), + #[allow(missing_docs)] + AddressNotFound(AddressNotFound), + #[allow(missing_docs)] + AlreadyReleased(AlreadyReleased), + #[allow(missing_docs)] + InvalidChainId(InvalidChainId), + #[allow(missing_docs)] + InvalidDevFeatureAccess(InvalidDevFeatureAccess), + #[allow(missing_docs)] + InvalidGameConfigs(InvalidGameConfigs), + #[allow(missing_docs)] + InvalidRoleAddress(InvalidRoleAddress), + #[allow(missing_docs)] + InvalidStartingAnchorRoot(InvalidStartingAnchorRoot), + #[allow(missing_docs)] + LatestReleaseNotSet(LatestReleaseNotSet), + #[allow(missing_docs)] + OnlyDelegatecall(OnlyDelegatecall), + #[allow(missing_docs)] + PrestateNotSet(PrestateNotSet), + #[allow(missing_docs)] + PrestateRequired(PrestateRequired), + #[allow(missing_docs)] + SuperchainConfigMismatch(SuperchainConfigMismatch), + #[allow(missing_docs)] + SuperchainProxyAdminMismatch(SuperchainProxyAdminMismatch), + } + impl OPContractsManagerErrors { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [10u8, 87u8, 214u8, 29u8], + [34u8, 143u8, 248u8, 242u8], + [99u8, 180u8, 144u8, 78u8], + [112u8, 222u8, 50u8, 49u8], + [122u8, 71u8, 201u8, 162u8], + [131u8, 228u8, 66u8, 255u8], + [134u8, 187u8, 81u8, 184u8], + [137u8, 224u8, 172u8, 223u8], + [179u8, 12u8, 131u8, 171u8], + [195u8, 88u8, 231u8, 90u8], + [230u8, 70u8, 224u8, 67u8], + [231u8, 162u8, 39u8, 220u8], + [234u8, 17u8, 100u8, 114u8], + [239u8, 200u8, 120u8, 242u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(OnlyDelegatecall), + ::core::stringify!(InvalidDevFeatureAccess), + ::core::stringify!(AlreadyReleased), + ::core::stringify!(AddressNotFound), + ::core::stringify!(InvalidChainId), + ::core::stringify!(SuperchainProxyAdminMismatch), + ::core::stringify!(AddressHasNoCode), + ::core::stringify!(InvalidStartingAnchorRoot), + ::core::stringify!(PrestateRequired), + ::core::stringify!(SuperchainConfigMismatch), + ::core::stringify!(InvalidRoleAddress), + ::core::stringify!(LatestReleaseNotSet), + ::core::stringify!(InvalidGameConfigs), + ::core::stringify!(PrestateNotSet), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for OPContractsManagerErrors { + const NAME: &'static str = "OPContractsManagerErrors"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 14usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::AddressHasNoCode(_) => { + ::SELECTOR + } + Self::AddressNotFound(_) => { + ::SELECTOR + } + Self::AlreadyReleased(_) => { + ::SELECTOR + } + Self::InvalidChainId(_) => { + ::SELECTOR + } + Self::InvalidDevFeatureAccess(_) => { + ::SELECTOR + } + Self::InvalidGameConfigs(_) => { + ::SELECTOR + } + Self::InvalidRoleAddress(_) => { + ::SELECTOR + } + Self::InvalidStartingAnchorRoot(_) => { + ::SELECTOR + } + Self::LatestReleaseNotSet(_) => { + ::SELECTOR + } + Self::OnlyDelegatecall(_) => { + ::SELECTOR + } + Self::PrestateNotSet(_) => { + ::SELECTOR + } + Self::PrestateRequired(_) => { + ::SELECTOR + } + Self::SuperchainConfigMismatch(_) => { + ::SELECTOR + } + Self::SuperchainProxyAdminMismatch(_) => { + ::SELECTOR + } + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn OnlyDelegatecall( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OPContractsManagerErrors::OnlyDelegatecall) + } + OnlyDelegatecall + }, + { + fn InvalidDevFeatureAccess( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OPContractsManagerErrors::InvalidDevFeatureAccess) + } + InvalidDevFeatureAccess + }, + { + fn AlreadyReleased( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OPContractsManagerErrors::AlreadyReleased) + } + AlreadyReleased + }, + { + fn AddressNotFound( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OPContractsManagerErrors::AddressNotFound) + } + AddressNotFound + }, + { + fn InvalidChainId( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OPContractsManagerErrors::InvalidChainId) + } + InvalidChainId + }, + { + fn SuperchainProxyAdminMismatch( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OPContractsManagerErrors::SuperchainProxyAdminMismatch) + } + SuperchainProxyAdminMismatch + }, + { + fn AddressHasNoCode( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OPContractsManagerErrors::AddressHasNoCode) + } + AddressHasNoCode + }, + { + fn InvalidStartingAnchorRoot( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OPContractsManagerErrors::InvalidStartingAnchorRoot) + } + InvalidStartingAnchorRoot + }, + { + fn PrestateRequired( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OPContractsManagerErrors::PrestateRequired) + } + PrestateRequired + }, + { + fn SuperchainConfigMismatch( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OPContractsManagerErrors::SuperchainConfigMismatch) + } + SuperchainConfigMismatch + }, + { + fn InvalidRoleAddress( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OPContractsManagerErrors::InvalidRoleAddress) + } + InvalidRoleAddress + }, + { + fn LatestReleaseNotSet( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OPContractsManagerErrors::LatestReleaseNotSet) + } + LatestReleaseNotSet + }, + { + fn InvalidGameConfigs( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OPContractsManagerErrors::InvalidGameConfigs) + } + InvalidGameConfigs + }, + { + fn PrestateNotSet( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OPContractsManagerErrors::PrestateNotSet) + } + PrestateNotSet + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn OnlyDelegatecall( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OPContractsManagerErrors::OnlyDelegatecall) + } + OnlyDelegatecall + }, + { + fn InvalidDevFeatureAccess( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OPContractsManagerErrors::InvalidDevFeatureAccess) + } + InvalidDevFeatureAccess + }, + { + fn AlreadyReleased( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OPContractsManagerErrors::AlreadyReleased) + } + AlreadyReleased + }, + { + fn AddressNotFound( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OPContractsManagerErrors::AddressNotFound) + } + AddressNotFound + }, + { + fn InvalidChainId( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OPContractsManagerErrors::InvalidChainId) + } + InvalidChainId + }, + { + fn SuperchainProxyAdminMismatch( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OPContractsManagerErrors::SuperchainProxyAdminMismatch) + } + SuperchainProxyAdminMismatch + }, + { + fn AddressHasNoCode( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OPContractsManagerErrors::AddressHasNoCode) + } + AddressHasNoCode + }, + { + fn InvalidStartingAnchorRoot( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OPContractsManagerErrors::InvalidStartingAnchorRoot) + } + InvalidStartingAnchorRoot + }, + { + fn PrestateRequired( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OPContractsManagerErrors::PrestateRequired) + } + PrestateRequired + }, + { + fn SuperchainConfigMismatch( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OPContractsManagerErrors::SuperchainConfigMismatch) + } + SuperchainConfigMismatch + }, + { + fn InvalidRoleAddress( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OPContractsManagerErrors::InvalidRoleAddress) + } + InvalidRoleAddress + }, + { + fn LatestReleaseNotSet( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OPContractsManagerErrors::LatestReleaseNotSet) + } + LatestReleaseNotSet + }, + { + fn InvalidGameConfigs( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OPContractsManagerErrors::InvalidGameConfigs) + } + InvalidGameConfigs + }, + { + fn PrestateNotSet( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OPContractsManagerErrors::PrestateNotSet) + } + PrestateNotSet + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::AddressHasNoCode(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::AddressNotFound(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::AlreadyReleased(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::InvalidChainId(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::InvalidDevFeatureAccess(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::InvalidGameConfigs(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::InvalidRoleAddress(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::InvalidStartingAnchorRoot(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::LatestReleaseNotSet(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::OnlyDelegatecall(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::PrestateNotSet(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::PrestateRequired(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::SuperchainConfigMismatch(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::SuperchainProxyAdminMismatch(inner) => { + ::abi_encoded_size( + inner, + ) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::AddressHasNoCode(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::AddressNotFound(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::AlreadyReleased(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidChainId(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidDevFeatureAccess(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidGameConfigs(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidRoleAddress(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidStartingAnchorRoot(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::LatestReleaseNotSet(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::OnlyDelegatecall(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::PrestateNotSet(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::PrestateRequired(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::SuperchainConfigMismatch(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::SuperchainProxyAdminMismatch(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`OPContractsManager`](self) contract instance. + +See the [wrapper's documentation](`OPContractsManagerInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> OPContractsManagerInstance { + OPContractsManagerInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + _opcmGameTypeAdder: alloy::sol_types::private::Address, + _opcmDeployer: alloy::sol_types::private::Address, + _opcmUpgrader: alloy::sol_types::private::Address, + _opcmInteropMigrator: alloy::sol_types::private::Address, + _opcmStandardValidator: alloy::sol_types::private::Address, + _superchainConfig: alloy::sol_types::private::Address, + _protocolVersions: alloy::sol_types::private::Address, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + OPContractsManagerInstance::< + P, + N, + >::deploy( + __provider, + _opcmGameTypeAdder, + _opcmDeployer, + _opcmUpgrader, + _opcmInteropMigrator, + _opcmStandardValidator, + _superchainConfig, + _protocolVersions, + ) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + _opcmGameTypeAdder: alloy::sol_types::private::Address, + _opcmDeployer: alloy::sol_types::private::Address, + _opcmUpgrader: alloy::sol_types::private::Address, + _opcmInteropMigrator: alloy::sol_types::private::Address, + _opcmStandardValidator: alloy::sol_types::private::Address, + _superchainConfig: alloy::sol_types::private::Address, + _protocolVersions: alloy::sol_types::private::Address, + ) -> alloy_contract::RawCallBuilder { + OPContractsManagerInstance::< + P, + N, + >::deploy_builder( + __provider, + _opcmGameTypeAdder, + _opcmDeployer, + _opcmUpgrader, + _opcmInteropMigrator, + _opcmStandardValidator, + _superchainConfig, + _protocolVersions, + ) + } + /**A [`OPContractsManager`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`OPContractsManager`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct OPContractsManagerInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for OPContractsManagerInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("OPContractsManagerInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > OPContractsManagerInstance { + /**Creates a new wrapper around an on-chain [`OPContractsManager`](self) contract instance. + +See the [wrapper's documentation](`OPContractsManagerInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + _opcmGameTypeAdder: alloy::sol_types::private::Address, + _opcmDeployer: alloy::sol_types::private::Address, + _opcmUpgrader: alloy::sol_types::private::Address, + _opcmInteropMigrator: alloy::sol_types::private::Address, + _opcmStandardValidator: alloy::sol_types::private::Address, + _superchainConfig: alloy::sol_types::private::Address, + _protocolVersions: alloy::sol_types::private::Address, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder( + __provider, + _opcmGameTypeAdder, + _opcmDeployer, + _opcmUpgrader, + _opcmInteropMigrator, + _opcmStandardValidator, + _superchainConfig, + _protocolVersions, + ); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder( + __provider: P, + _opcmGameTypeAdder: alloy::sol_types::private::Address, + _opcmDeployer: alloy::sol_types::private::Address, + _opcmUpgrader: alloy::sol_types::private::Address, + _opcmInteropMigrator: alloy::sol_types::private::Address, + _opcmStandardValidator: alloy::sol_types::private::Address, + _superchainConfig: alloy::sol_types::private::Address, + _protocolVersions: alloy::sol_types::private::Address, + ) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + [ + &BYTECODE[..], + &alloy_sol_types::SolConstructor::abi_encode( + &constructorCall { + _opcmGameTypeAdder, + _opcmDeployer, + _opcmUpgrader, + _opcmInteropMigrator, + _opcmStandardValidator, + _superchainConfig, + _protocolVersions, + }, + )[..], + ] + .concat() + .into(), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl OPContractsManagerInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> OPContractsManagerInstance { + OPContractsManagerInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > OPContractsManagerInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`addGameType`] function. + pub fn addGameType( + &self, + _gameConfigs: alloy::sol_types::private::Vec< + ::RustType, + >, + ) -> alloy_contract::SolCallBuilder<&P, addGameTypeCall, N> { + self.call_builder(&addGameTypeCall { _gameConfigs }) + } + ///Creates a new call builder for the [`blueprints`] function. + pub fn blueprints( + &self, + ) -> alloy_contract::SolCallBuilder<&P, blueprintsCall, N> { + self.call_builder(&blueprintsCall) + } + ///Creates a new call builder for the [`chainIdToBatchInboxAddress`] function. + pub fn chainIdToBatchInboxAddress( + &self, + _l2ChainId: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, chainIdToBatchInboxAddressCall, N> { + self.call_builder( + &chainIdToBatchInboxAddressCall { + _l2ChainId, + }, + ) + } + ///Creates a new call builder for the [`deploy_call`] function. + pub fn deploy_call( + &self, + _input: ::RustType, + ) -> alloy_contract::SolCallBuilder<&P, deployCall, N> { + self.call_builder(&deployCall { _input }) + } + ///Creates a new call builder for the [`devFeatureBitmap`] function. + pub fn devFeatureBitmap( + &self, + ) -> alloy_contract::SolCallBuilder<&P, devFeatureBitmapCall, N> { + self.call_builder(&devFeatureBitmapCall) + } + ///Creates a new call builder for the [`implementations`] function. + pub fn implementations( + &self, + ) -> alloy_contract::SolCallBuilder<&P, implementationsCall, N> { + self.call_builder(&implementationsCall) + } + ///Creates a new call builder for the [`isDevFeatureEnabled`] function. + pub fn isDevFeatureEnabled( + &self, + _feature: alloy::sol_types::private::FixedBytes<32>, + ) -> alloy_contract::SolCallBuilder<&P, isDevFeatureEnabledCall, N> { + self.call_builder( + &isDevFeatureEnabledCall { + _feature, + }, + ) + } + ///Creates a new call builder for the [`migrate`] function. + pub fn migrate( + &self, + _input: ::RustType, + ) -> alloy_contract::SolCallBuilder<&P, migrateCall, N> { + self.call_builder(&migrateCall { _input }) + } + ///Creates a new call builder for the [`opcmDeployer`] function. + pub fn opcmDeployer( + &self, + ) -> alloy_contract::SolCallBuilder<&P, opcmDeployerCall, N> { + self.call_builder(&opcmDeployerCall) + } + ///Creates a new call builder for the [`opcmGameTypeAdder`] function. + pub fn opcmGameTypeAdder( + &self, + ) -> alloy_contract::SolCallBuilder<&P, opcmGameTypeAdderCall, N> { + self.call_builder(&opcmGameTypeAdderCall) + } + ///Creates a new call builder for the [`opcmInteropMigrator`] function. + pub fn opcmInteropMigrator( + &self, + ) -> alloy_contract::SolCallBuilder<&P, opcmInteropMigratorCall, N> { + self.call_builder(&opcmInteropMigratorCall) + } + ///Creates a new call builder for the [`opcmStandardValidator`] function. + pub fn opcmStandardValidator( + &self, + ) -> alloy_contract::SolCallBuilder<&P, opcmStandardValidatorCall, N> { + self.call_builder(&opcmStandardValidatorCall) + } + ///Creates a new call builder for the [`opcmUpgrader`] function. + pub fn opcmUpgrader( + &self, + ) -> alloy_contract::SolCallBuilder<&P, opcmUpgraderCall, N> { + self.call_builder(&opcmUpgraderCall) + } + ///Creates a new call builder for the [`protocolVersions`] function. + pub fn protocolVersions( + &self, + ) -> alloy_contract::SolCallBuilder<&P, protocolVersionsCall, N> { + self.call_builder(&protocolVersionsCall) + } + ///Creates a new call builder for the [`superchainConfig`] function. + pub fn superchainConfig( + &self, + ) -> alloy_contract::SolCallBuilder<&P, superchainConfigCall, N> { + self.call_builder(&superchainConfigCall) + } + ///Creates a new call builder for the [`updatePrestate`] function. + pub fn updatePrestate( + &self, + _prestateUpdateInputs: alloy::sol_types::private::Vec< + ::RustType, + >, + ) -> alloy_contract::SolCallBuilder<&P, updatePrestateCall, N> { + self.call_builder( + &updatePrestateCall { + _prestateUpdateInputs, + }, + ) + } + ///Creates a new call builder for the [`upgrade`] function. + pub fn upgrade( + &self, + _opChainConfigs: alloy::sol_types::private::Vec< + ::RustType, + >, + ) -> alloy_contract::SolCallBuilder<&P, upgradeCall, N> { + self.call_builder(&upgradeCall { _opChainConfigs }) + } + ///Creates a new call builder for the [`upgradeSuperchainConfig`] function. + pub fn upgradeSuperchainConfig( + &self, + _superchainConfig: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, upgradeSuperchainConfigCall, N> { + self.call_builder( + &upgradeSuperchainConfigCall { + _superchainConfig, + }, + ) + } + ///Creates a new call builder for the [`validate_0`] function. + pub fn validate_0( + &self, + _input: ::RustType, + _allowFailure: bool, + ) -> alloy_contract::SolCallBuilder<&P, validate_0Call, N> { + self.call_builder( + &validate_0Call { + _input, + _allowFailure, + }, + ) + } + ///Creates a new call builder for the [`validate_1`] function. + pub fn validate_1( + &self, + _input: ::RustType, + _allowFailure: bool, + ) -> alloy_contract::SolCallBuilder<&P, validate_1Call, N> { + self.call_builder( + &validate_1Call { + _input, + _allowFailure, + }, + ) + } + ///Creates a new call builder for the [`validateWithOverrides_0`] function. + pub fn validateWithOverrides_0( + &self, + _input: ::RustType, + _allowFailure: bool, + _overrides: ::RustType, + ) -> alloy_contract::SolCallBuilder<&P, validateWithOverrides_0Call, N> { + self.call_builder( + &validateWithOverrides_0Call { + _input, + _allowFailure, + _overrides, + }, + ) + } + ///Creates a new call builder for the [`validateWithOverrides_1`] function. + pub fn validateWithOverrides_1( + &self, + _input: ::RustType, + _allowFailure: bool, + _overrides: ::RustType, + ) -> alloy_contract::SolCallBuilder<&P, validateWithOverrides_1Call, N> { + self.call_builder( + &validateWithOverrides_1Call { + _input, + _allowFailure, + _overrides, + }, + ) + } + ///Creates a new call builder for the [`version`] function. + pub fn version(&self) -> alloy_contract::SolCallBuilder<&P, versionCall, N> { + self.call_builder(&versionCall) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > OPContractsManagerInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + } +} diff --git a/bindings/rust/src/op_contracts_manager_standard_validator.rs b/bindings/rust/src/op_contracts_manager_standard_validator.rs new file mode 100644 index 000000000..29df78997 --- /dev/null +++ b/bindings/rust/src/op_contracts_manager_standard_validator.rs @@ -0,0 +1,7869 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface OPContractsManagerStandardValidator { + struct Implementations { + address l1ERC721BridgeImpl; + address optimismPortalImpl; + address optimismPortalInteropImpl; + address ethLockboxImpl; + address systemConfigImpl; + address optimismMintableERC20FactoryImpl; + address l1CrossDomainMessengerImpl; + address l1StandardBridgeImpl; + address disputeGameFactoryImpl; + address anchorStateRegistryImpl; + address delayedWETHImpl; + address mipsImpl; + address faultDisputeGameImpl; + address permissionedDisputeGameImpl; + } + struct ValidationInput { + address sysCfg; + bytes32 absolutePrestate; + uint256 l2ChainID; + address proposer; + } + struct ValidationInputDev { + address sysCfg; + bytes32 cannonPrestate; + bytes32 cannonKonaPrestate; + uint256 l2ChainID; + address proposer; + } + struct ValidationOverrides { + address l1PAOMultisig; + address challenger; + } + + error InvalidGameArgsLength(); + + constructor(Implementations _implementations, address _superchainConfig, address _l1PAOMultisig, address _challenger, uint256 _withdrawalDelaySeconds, bytes32 _devFeatureBitmap); + + function anchorStateRegistryImpl() external view returns (address); + function challenger() external view returns (address); + function delayedWETHImpl() external view returns (address); + function devFeatureBitmap() external view returns (bytes32); + function disputeGameFactoryImpl() external view returns (address); + function ethLockboxImpl() external view returns (address); + function faultDisputeGameImpl() external view returns (address); + function l1CrossDomainMessengerImpl() external view returns (address); + function l1ERC721BridgeImpl() external view returns (address); + function l1PAOMultisig() external view returns (address); + function l1StandardBridgeImpl() external view returns (address); + function mipsImpl() external view returns (address); + function optimismMintableERC20FactoryImpl() external view returns (address); + function optimismPortalImpl() external view returns (address); + function optimismPortalInteropImpl() external view returns (address); + function permissionedDisputeGameImpl() external view returns (address); + function preimageOracleVersion() external pure returns (string memory); + function superchainConfig() external view returns (address); + function systemConfigImpl() external view returns (address); + function validate(ValidationInput memory _input, bool _allowFailure) external view returns (string memory); + function validate(ValidationInputDev memory _input, bool _allowFailure) external view returns (string memory); + function validateWithOverrides(ValidationInput memory _input, bool _allowFailure, ValidationOverrides memory _overrides) external view returns (string memory); + function validateWithOverrides(ValidationInputDev memory _input, bool _allowFailure, ValidationOverrides memory _overrides) external view returns (string memory); + function version() external view returns (string memory); + function withdrawalDelaySeconds() external view returns (uint256); +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "constructor", + "inputs": [ + { + "name": "_implementations", + "type": "tuple", + "internalType": "struct OPContractsManagerStandardValidator.Implementations", + "components": [ + { + "name": "l1ERC721BridgeImpl", + "type": "address", + "internalType": "address" + }, + { + "name": "optimismPortalImpl", + "type": "address", + "internalType": "address" + }, + { + "name": "optimismPortalInteropImpl", + "type": "address", + "internalType": "address" + }, + { + "name": "ethLockboxImpl", + "type": "address", + "internalType": "address" + }, + { + "name": "systemConfigImpl", + "type": "address", + "internalType": "address" + }, + { + "name": "optimismMintableERC20FactoryImpl", + "type": "address", + "internalType": "address" + }, + { + "name": "l1CrossDomainMessengerImpl", + "type": "address", + "internalType": "address" + }, + { + "name": "l1StandardBridgeImpl", + "type": "address", + "internalType": "address" + }, + { + "name": "disputeGameFactoryImpl", + "type": "address", + "internalType": "address" + }, + { + "name": "anchorStateRegistryImpl", + "type": "address", + "internalType": "address" + }, + { + "name": "delayedWETHImpl", + "type": "address", + "internalType": "address" + }, + { + "name": "mipsImpl", + "type": "address", + "internalType": "address" + }, + { + "name": "faultDisputeGameImpl", + "type": "address", + "internalType": "address" + }, + { + "name": "permissionedDisputeGameImpl", + "type": "address", + "internalType": "address" + } + ] + }, + { + "name": "_superchainConfig", + "type": "address", + "internalType": "contract ISuperchainConfig" + }, + { + "name": "_l1PAOMultisig", + "type": "address", + "internalType": "address" + }, + { + "name": "_challenger", + "type": "address", + "internalType": "address" + }, + { + "name": "_withdrawalDelaySeconds", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_devFeatureBitmap", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "anchorStateRegistryImpl", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "challenger", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "delayedWETHImpl", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "devFeatureBitmap", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "disputeGameFactoryImpl", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "ethLockboxImpl", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "faultDisputeGameImpl", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "l1CrossDomainMessengerImpl", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "l1ERC721BridgeImpl", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "l1PAOMultisig", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "l1StandardBridgeImpl", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "mipsImpl", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "optimismMintableERC20FactoryImpl", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "optimismPortalImpl", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "optimismPortalInteropImpl", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "permissionedDisputeGameImpl", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "preimageOracleVersion", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "superchainConfig", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract ISuperchainConfig" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "systemConfigImpl", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "validate", + "inputs": [ + { + "name": "_input", + "type": "tuple", + "internalType": "struct OPContractsManagerStandardValidator.ValidationInput", + "components": [ + { + "name": "sysCfg", + "type": "address", + "internalType": "contract ISystemConfig" + }, + { + "name": "absolutePrestate", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "l2ChainID", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "proposer", + "type": "address", + "internalType": "address" + } + ] + }, + { + "name": "_allowFailure", + "type": "bool", + "internalType": "bool" + } + ], + "outputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "validate", + "inputs": [ + { + "name": "_input", + "type": "tuple", + "internalType": "struct OPContractsManagerStandardValidator.ValidationInputDev", + "components": [ + { + "name": "sysCfg", + "type": "address", + "internalType": "contract ISystemConfig" + }, + { + "name": "cannonPrestate", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "cannonKonaPrestate", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "l2ChainID", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "proposer", + "type": "address", + "internalType": "address" + } + ] + }, + { + "name": "_allowFailure", + "type": "bool", + "internalType": "bool" + } + ], + "outputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "validateWithOverrides", + "inputs": [ + { + "name": "_input", + "type": "tuple", + "internalType": "struct OPContractsManagerStandardValidator.ValidationInput", + "components": [ + { + "name": "sysCfg", + "type": "address", + "internalType": "contract ISystemConfig" + }, + { + "name": "absolutePrestate", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "l2ChainID", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "proposer", + "type": "address", + "internalType": "address" + } + ] + }, + { + "name": "_allowFailure", + "type": "bool", + "internalType": "bool" + }, + { + "name": "_overrides", + "type": "tuple", + "internalType": "struct OPContractsManagerStandardValidator.ValidationOverrides", + "components": [ + { + "name": "l1PAOMultisig", + "type": "address", + "internalType": "address" + }, + { + "name": "challenger", + "type": "address", + "internalType": "address" + } + ] + } + ], + "outputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "validateWithOverrides", + "inputs": [ + { + "name": "_input", + "type": "tuple", + "internalType": "struct OPContractsManagerStandardValidator.ValidationInputDev", + "components": [ + { + "name": "sysCfg", + "type": "address", + "internalType": "contract ISystemConfig" + }, + { + "name": "cannonPrestate", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "cannonKonaPrestate", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "l2ChainID", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "proposer", + "type": "address", + "internalType": "address" + } + ] + }, + { + "name": "_allowFailure", + "type": "bool", + "internalType": "bool" + }, + { + "name": "_overrides", + "type": "tuple", + "internalType": "struct OPContractsManagerStandardValidator.ValidationOverrides", + "components": [ + { + "name": "l1PAOMultisig", + "type": "address", + "internalType": "address" + }, + { + "name": "challenger", + "type": "address", + "internalType": "address" + } + ] + } + ], + "outputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "version", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "withdrawalDelaySeconds", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "error", + "name": "InvalidGameArgsLength", + "inputs": [] + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod OPContractsManagerStandardValidator { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x60806040523480156200001157600080fd5b506040516200564c3803806200564c8339810160408190526200003491620001ed565b600080546001600160a01b03199081166001600160a01b039788161790915560018054821695871695909517909455600280548516938616939093179092556003556012558251600480548316918416919091179055602083015160058054831691841691909117905560408301516006805483169184169190911790556060830151600780548316918416919091179055608083015160088054831691841691909117905560a083015160098054831691841691909117905560c0830151600a8054831691841691909117905560e0830151600b80548316918416919091179055610100830151600c80548316918416919091179055610120830151600d80548316918416919091179055610140830151600e80548316918416919091179055610160830151600f805483169184169190911790556101808301516010805483169184169190911790556101a09092015160118054909316911617905562000381565b6040516101c081016001600160401b0381118282101715620001ca57634e487b7160e01b600052604160045260246000fd5b60405290565b80516001600160a01b0381168114620001e857600080fd5b919050565b6000806000806000808688036102608112156200020957600080fd5b6101c0808212156200021a57600080fd5b6200022462000198565b91506200023189620001d0565b82526200024160208a01620001d0565b60208301526200025460408a01620001d0565b60408301526200026760608a01620001d0565b60608301526200027a60808a01620001d0565b60808301526200028d60a08a01620001d0565b60a0830152620002a060c08a01620001d0565b60c0830152620002b360e08a01620001d0565b60e0830152610100620002c8818b01620001d0565b90830152610120620002dc8a8201620001d0565b90830152610140620002f08a8201620001d0565b90830152610160620003048a8201620001d0565b90830152610180620003188a8201620001d0565b908301526101a06200032c8a8201620001d0565b818401525081975062000341818a01620001d0565b96505050620003546101e08801620001d0565b9350620003656102008801620001d0565b9250610220870151915061024087015190509295509295509295565b6152bb80620003916000396000f3fe608060405234801561001057600080fd5b50600436106101a35760003560e01c80637d8bd0d8116100ee578063bb98b3f411610097578063dea2198411610071578063dea21984146103ae578063e303272c146103c1578063e3fef4a8146103d4578063f3edcbe1146103e757600080fd5b8063bb98b3f414610375578063bc3f6fd414610388578063c34e047a1461039b57600080fd5b8063a38d5595116100c8578063a38d559514610316578063a4dec37a14610329578063ad7e7e401461033c57600080fd5b80637d8bd0d8146102dd5780638970ac44146102f057806398ccec3e1461030357600080fd5b806354fd4d5011610150578063718394181161012a57806371839418146102ae57806374459cf3146102b75780637b491a98146102ca57600080fd5b806354fd4d501461024c57806358256afb146102885780636c0e21701461029b57600080fd5b806335e80ab31161018157806335e80ab31461021357806341fe538514610226578063534db0e21461023957600080fd5b80630e9d5cb9146101a85780631d8a4e92146101d15780632aecd35c146101e8575b600080fd5b6101bb6101b6366004614888565b6103fa565b6040516101c891906148ff565b60405180910390f35b6101da60125481565b6040519081526020016101c8565b600d546101fb906001600160a01b031681565b6040516001600160a01b0390911681526020016101c8565b6000546101fb906001600160a01b031681565b6101bb610234366004614932565b61047b565b6002546101fb906001600160a01b031681565b6101bb6040518060400160405280600581526020017f322e332e3000000000000000000000000000000000000000000000000000000081525081565b600a546101fb906001600160a01b031681565b6006546101fb906001600160a01b031681565b6101da60035481565b600e546101fb906001600160a01b031681565b6007546101fb906001600160a01b031681565b6004546101fb906001600160a01b031681565b6101bb6102fe3660046149ed565b6104f8565b6011546101fb906001600160a01b031681565b6005546101fb906001600160a01b031681565b6001546101fb906001600160a01b031681565b60408051808201909152600581527f312e312e3400000000000000000000000000000000000000000000000000000060208201526101bb565b600c546101fb906001600160a01b031681565b6008546101fb906001600160a01b031681565b600b546101fb906001600160a01b031681565b6010546101fb906001600160a01b031681565b600f546101fb906001600160a01b031681565b6009546101fb906001600160a01b031681565b6101bb6103f5366004614a2c565b6107a5565b6040805160a0808201835260008083526020808401829052838501829052606084810183905260809485018390528551938401865288516001600160a01b039081168552828a015192850192909252838601839052948801518386015287850151169282019290925290506104708185856104f8565b9150505b9392505050565b6040805160a0808201835260008083526020808401829052838501829052606084810183905260809485018390528551938401865287516001600160a01b0390811685528289015192850192909252838601839052948701518386015286850151169282019290925290506104f081846107a5565b949350505050565b60606000604051806020016040528060008152509050600085600001516001600160a01b0316633e47158c6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610552573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105769190614a59565b9050610581826107da565b915061058e8282866108aa565b915061059f82876000015183610977565b91506105b08287600001518361103c565b91506105c1828760000151836115f0565b91506105d282876000015183611b9a565b91506105e382876000015183611e99565b91506105f482876000015183612443565b915061060682876000015183876128ec565b915061062782876000015188602001518960600151858b608001518a612b39565b915061067b828760000151600089602001518a60600151868a6040518060400160405280600481526020017f504c444700000000000000000000000000000000000000000000000000000000815250612d3d565b91506106cf828760000151600889604001518a60600151868a6040518060400160405280600481526020017f434b444700000000000000000000000000000000000000000000000000000000815250612d3d565b91506106e082876000015183612e47565b915060006106ed85613263565b805190915083901561072c57835115610729578184604051602001610713929190614a76565b604051602081830303815290604052905061072c565b50805b6000845111801561073b575086155b1561079a57806040516020016107519190614ace565b60408051601f19818403018152908290527f08c379a0000000000000000000000000000000000000000000000000000000008252610791916004016148ff565b60405180910390fd5b979650505050505050565b60606104748383604051806040016040528060006001600160a01b0316815260200160006001600160a01b03168152506104f8565b600080546040517f2e48152c00000000000000000000000000000000000000000000000000000000815260048101929092526060916108a4916001600160a01b031690632e48152c90602401602060405180830381865afa158015610843573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108679190614b39565b156040518060400160405280600981526020017f5350524346472d3130000000000000000000000000000000000000000000000081525084613300565b92915050565b606060006108b78361334c565b905061096e816001600160a01b0316856001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610904573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109289190614a59565b6001600160a01b0316146040518060400160405280600981526020017f50524f5859412d3130000000000000000000000000000000000000000000000081525087613300565b95945050505050565b60606109ef6109b361098885613375565b60085461099d906001600160a01b0316613375565b8051602091820120825192909101919091201490565b6040518060400160405280600981526020017f535953434f4e2d3130000000000000000000000000000000000000000000000081525086613300565b9350610aad631dcd650067ffffffffffffffff16846001600160a01b031663f68016b76040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a41573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a659190614b6c565b67ffffffffffffffff1611156040518060400160405280600981526020017f535953434f4e2d3230000000000000000000000000000000000000000000000081525086613300565b9350610b54836001600160a01b031663f45e65d86040518163ffffffff1660e01b8152600401602060405180830381865afa158015610af0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b149190614b89565b600014156040518060400160405280600981526020017f535953434f4e2d3330000000000000000000000000000000000000000000000081525086613300565b600854909450610bb7906001600160a01b0316610b7184866133dd565b6001600160a01b0316146040518060400160405280600981526020017f535953434f4e2d3430000000000000000000000000000000000000000000000081525086613300565b93506000836001600160a01b031663cc731b026040518163ffffffff1660e01b815260040160c060405180830381865afa158015610bf9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c1d9190614bcc565b9050610c6f816000015163ffffffff166301312d00146040518060400160405280600981526020017f535953434f4e2d3530000000000000000000000000000000000000000000000081525087613300565b9450610cbb816020015160ff16600a146040518060400160405280600981526020017f535953434f4e2d3630000000000000000000000000000000000000000000000081525087613300565b9450610d07816040015160ff166008146040518060400160405280600981526020017f535953434f4e2d3730000000000000000000000000000000000000000000000081525087613300565b9450610d58816080015163ffffffff16620f4240146040518060400160405280600981526020017f535953434f4e2d3830000000000000000000000000000000000000000000000081525087613300565b9450610daa816060015163ffffffff16633b9aca00146040518060400160405280600981526020017f535953434f4e2d3930000000000000000000000000000000000000000000000081525087613300565b9450610e166fffffffffffffffffffffffffffffffff80168260a001516fffffffffffffffffffffffffffffffff16146040518060400160405280600a81526020017f535953434f4e2d3130300000000000000000000000000000000000000000000081525087613300565b9450610ec2846001600160a01b0316634d5d9a2a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e59573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e7d9190614c82565b63ffffffff166000146040518060400160405280600a81526020017f535953434f4e2d3131300000000000000000000000000000000000000000000081525087613300565b9450610f72846001600160a01b03166316d3bc7f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f05573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f299190614b6c565b67ffffffffffffffff166000146040518060400160405280600a81526020017f535953434f4e2d3132300000000000000000000000000000000000000000000081525087613300565b945061096e60008054906101000a90046001600160a01b03166001600160a01b0316856001600160a01b03166335e80ab36040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fd2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ff69190614a59565b6001600160a01b0316146040518060400160405280600a81526020017f535953434f4e2d3133300000000000000000000000000000000000000000000081525087613300565b60606000836001600160a01b031663a71198696040518163ffffffff1660e01b8152600401602060405180830381865afa15801561107e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110a29190614a59565b90506111046110c86110b383613375565b600a5461099d906001600160a01b0316613375565b6040518060400160405280600881526020017f4c3178444d2d313000000000000000000000000000000000000000000000000081525087613300565b600a54909550611167906001600160a01b031661112185846133dd565b6001600160a01b0316146040518060400160405280600881526020017f4c3178444d2d323000000000000000000000000000000000000000000000000081525087613300565b94506000846001600160a01b0316630a49cb036040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111cd9190614a59565b90506112987342000000000000000000000000000000000000076001600160a01b0316836001600160a01b0316639fce812c6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561122e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112529190614a59565b6001600160a01b0316146040518060400160405280600881526020017f4c3178444d2d333000000000000000000000000000000000000000000000000081525088613300565b95506113637342000000000000000000000000000000000000076001600160a01b0316836001600160a01b031663db505d806040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061131d9190614a59565b6001600160a01b0316146040518060400160405280600881526020017f4c3178444d2d343000000000000000000000000000000000000000000000000081525088613300565b955061141a816001600160a01b0316836001600160a01b0316630ff754ea6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113d49190614a59565b6001600160a01b0316146040518060400160405280600881526020017f4c3178444d2d353000000000000000000000000000000000000000000000000081525088613300565b95506114d1816001600160a01b0316836001600160a01b0316636425666b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611467573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061148b9190614a59565b6001600160a01b0316146040518060400160405280600881526020017f4c3178444d2d363000000000000000000000000000000000000000000000000081525088613300565b9550611588856001600160a01b0316836001600160a01b03166333d7e2bd6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561151e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115429190614a59565b6001600160a01b0316146040518060400160405280600881526020017f4c3178444d2d373000000000000000000000000000000000000000000000000081525088613300565b95506115e6846001600160a01b03166115a084613464565b6001600160a01b0316146040518060400160405280600881526020017f4c3178444d2d383000000000000000000000000000000000000000000000000081525088613300565b9695505050505050565b60606000836001600160a01b031663078f29cf6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611632573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116569190614a59565b90506116b861167c61166783613375565b600b5461099d906001600160a01b0316613375565b6040518060400160405280600781526020017f4c3153422d31300000000000000000000000000000000000000000000000000081525087613300565b600b5490955061171b906001600160a01b03166116d585846133dd565b6001600160a01b0316146040518060400160405280600781526020017f4c3153422d32300000000000000000000000000000000000000000000000000081525087613300565b94506000846001600160a01b031663a71198696040518163ffffffff1660e01b8152600401602060405180830381865afa15801561175d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117819190614a59565b9050611838816001600160a01b0316836001600160a01b031663927ede2d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117f29190614a59565b6001600160a01b0316146040518060400160405280600781526020017f4c3153422d33300000000000000000000000000000000000000000000000000081525088613300565b95506118ef816001600160a01b0316836001600160a01b0316633cb747bf6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611885573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118a99190614a59565b6001600160a01b0316146040518060400160405280600781526020017f4c3153422d34300000000000000000000000000000000000000000000000000081525088613300565b95506119ba7342000000000000000000000000000000000000106001600160a01b0316836001600160a01b0316637f46ddb26040518163ffffffff1660e01b8152600401602060405180830381865afa158015611950573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119749190614a59565b6001600160a01b0316146040518060400160405280600781526020017f4c3153422d35300000000000000000000000000000000000000000000000000081525088613300565b9550611a857342000000000000000000000000000000000000106001600160a01b0316836001600160a01b031663c89701a26040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3f9190614a59565b6001600160a01b0316146040518060400160405280600781526020017f4c3153422d36300000000000000000000000000000000000000000000000000081525088613300565b9550611b3c856001600160a01b0316836001600160a01b03166333d7e2bd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ad2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611af69190614a59565b6001600160a01b0316146040518060400160405280600781526020017f4c3153422d37300000000000000000000000000000000000000000000000000081525088613300565b95506115e6846001600160a01b0316611b5484613464565b6001600160a01b0316146040518060400160405280600781526020017f4c3153422d38300000000000000000000000000000000000000000000000000081525088613300565b60606000836001600160a01b0316639b7d7f0a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611bdc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c009190614a59565b9050611c62611c26611c1183613375565b60095461099d906001600160a01b0316613375565b6040518060400160405280600a81526020017f4d4552433230462d31300000000000000000000000000000000000000000000081525087613300565b600954909550611cc5906001600160a01b0316611c7f85846133dd565b6001600160a01b0316146040518060400160405280600a81526020017f4d4552433230462d32300000000000000000000000000000000000000000000081525087613300565b94506000846001600160a01b031663078f29cf6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d07573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d2b9190614a59565b9050611de2816001600160a01b0316836001600160a01b031663ee9a31a26040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d78573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d9c9190614a59565b6001600160a01b0316146040518060400160405280600a81526020017f4d4552433230462d33300000000000000000000000000000000000000000000081525088613300565b95506115e6816001600160a01b0316836001600160a01b031663e78cea926040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e2f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e539190614a59565b6001600160a01b0316146040518060400160405280600a81526020017f4d4552433230462d34300000000000000000000000000000000000000000000081525088613300565b60606000836001600160a01b031663c4e8ddfa6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611edb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611eff9190614a59565b9050611f61611f25611f1083613375565b60045461099d906001600160a01b0316613375565b6040518060400160405280600881526020017f4c373231422d313000000000000000000000000000000000000000000000000081525087613300565b600454909550611fc4906001600160a01b0316611f7e85846133dd565b6001600160a01b0316146040518060400160405280600881526020017f4c373231422d323000000000000000000000000000000000000000000000000081525087613300565b94506000846001600160a01b031663a71198696040518163ffffffff1660e01b8152600401602060405180830381865afa158015612006573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061202a9190614a59565b90506120f57342000000000000000000000000000000000000146001600160a01b0316836001600160a01b0316637f46ddb26040518163ffffffff1660e01b8152600401602060405180830381865afa15801561208b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120af9190614a59565b6001600160a01b0316146040518060400160405280600881526020017f4c373231422d333000000000000000000000000000000000000000000000000081525088613300565b95506121c07342000000000000000000000000000000000000146001600160a01b0316836001600160a01b031663c89701a26040518163ffffffff1660e01b8152600401602060405180830381865afa158015612156573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061217a9190614a59565b6001600160a01b0316146040518060400160405280600881526020017f4c373231422d343000000000000000000000000000000000000000000000000081525088613300565b9550612277816001600160a01b0316836001600160a01b031663927ede2d6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561220d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122319190614a59565b6001600160a01b0316146040518060400160405280600881526020017f4c373231422d353000000000000000000000000000000000000000000000000081525088613300565b955061232e816001600160a01b0316836001600160a01b0316633cb747bf6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156122c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122e89190614a59565b6001600160a01b0316146040518060400160405280600881526020017f4c373231422d363000000000000000000000000000000000000000000000000081525088613300565b95506123e5856001600160a01b0316836001600160a01b03166333d7e2bd6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561237b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061239f9190614a59565b6001600160a01b0316146040518060400160405280600881526020017f4c373231422d373000000000000000000000000000000000000000000000000081525088613300565b95506115e6846001600160a01b03166123fd84613464565b6001600160a01b0316146040518060400160405280600881526020017f4c373231422d383000000000000000000000000000000000000000000000000081525088613300565b60606000836001600160a01b0316630a49cb036040518163ffffffff1660e01b8152600401602060405180830381865afa158015612485573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124a99190614a59565b90506124bb601254600160001b6134c8565b156125bf576125556125196124cf83613375565b6006546124e4906001600160a01b0316613375565b6040516020016124f49190614c9d565b6040516020818303038152906040528051602091820120825192909101919091201490565b6040518060400160405280600981526020017f504f5254414c2d3130000000000000000000000000000000000000000000000081525087613300565b6006549095506125b8906001600160a01b031661257285846133dd565b6001600160a01b0316146040518060400160405280600981526020017f504f5254414c2d3230000000000000000000000000000000000000000000000081525087613300565b9450612603565b6125e36125196125ce83613375565b60055461099d906001600160a01b0316613375565b600554909550612600906001600160a01b031661257285846133dd565b94505b6000846001600160a01b031663f2b4e6176040518163ffffffff1660e01b8152600401602060405180830381865afa158015612643573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126679190614a59565b905061271e816001600160a01b0316836001600160a01b031663f2b4e6176040518163ffffffff1660e01b8152600401602060405180830381865afa1580156126b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126d89190614a59565b6001600160a01b0316146040518060400160405280600981526020017f504f5254414c2d3330000000000000000000000000000000000000000000000081525088613300565b95506127d5856001600160a01b0316836001600160a01b03166333d7e2bd6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561276b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061278f9190614a59565b6001600160a01b0316146040518060400160405280600981526020017f504f5254414c2d3430000000000000000000000000000000000000000000000081525088613300565b955061288e61dead6001600160a01b0316836001600160a01b0316639bf62d826040518163ffffffff1660e01b8152600401602060405180830381865afa158015612824573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128489190614a59565b6001600160a01b0316146040518060400160405280600981526020017f504f5254414c2d3830000000000000000000000000000000000000000000000081525088613300565b95506115e6846001600160a01b03166128a684613464565b6001600160a01b0316146040518060400160405280600981526020017f504f5254414c2d3930000000000000000000000000000000000000000000000081525088613300565b606060006128f98361334c565b90506000856001600160a01b031663f2b4e6176040518163ffffffff1660e01b8152600401602060405180830381865afa15801561293b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061295f9190614a59565b90506129c161298561297083613375565b600c5461099d906001600160a01b0316613375565b6040518060400160405280600581526020017f44462d313000000000000000000000000000000000000000000000000000000081525089613300565b600c54909750612a24906001600160a01b03166129de87846133dd565b6001600160a01b0316146040518060400160405280600581526020017f44462d323000000000000000000000000000000000000000000000000000000081525089613300565b9650612adb826001600160a01b0316826001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612a71573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a959190614a59565b6001600160a01b0316146040518060400160405280600581526020017f44462d333000000000000000000000000000000000000000000000000000000081525089613300565b965061079a856001600160a01b0316612af383613464565b6001600160a01b0316146040518060400160405280600581526020017f44462d343000000000000000000000000000000000000000000000000000000081525089613300565b604080518082018252600481527f504444470000000000000000000000000000000000000000000000000000000060208083019190915282516101c081018452600080825291810182905292830181905260608084018290526080840182905260a0840182905260c0840182905260e08401829052610100840182905261012084018290526101408401829052610160840182905261018084018290526101a084018290529260019291612bef8c858d866134dc565b909d5090925090508015612c09578b94505050505061079a565b612c696040518061012001604052808e81526020018d6001600160a01b031681526020018481526020018c81526020018b81526020018a6001600160a01b031681526020018663ffffffff16815260200188815260200185815250613770565b9b506000612c7687613afe565b9050612cd1816001600160a01b03168461018001516001600160a01b0316146040518060400160405280600881526020017f504444472d3133300000000000000000000000000000000000000000000000008152508f613300565b9c50612d2c886001600160a01b0316846101a001516001600160a01b0316146040518060400160405280600881526020017f504444472d3134300000000000000000000000000000000000000000000000008152508f613300565b9d9c50505050505050505050505050565b604080516101c08101825260008082526020820181905291810182905260608082018390526080820183905260a0820183905260c0820183905260e08201839052610100820183905261012082018390526101408201839052610160820183905261018082018390526101a0820183905291612dbb8b8a8c876134dc565b909c5090925090508015612dd3578a92505050612e3b565b612e336040518061012001604052808d81526020018c6001600160a01b031681526020018481526020018a8152602001898152602001886001600160a01b031681526020018b63ffffffff16815260200187815260200186815250613770565b9a508a925050505b98975050505050505050565b60606000836001600160a01b0316630a49cb036040518163ffffffff1660e01b8152600401602060405180830381865afa158015612e89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ead9190614a59565b90506000816001600160a01b031663b682c4446040518163ffffffff1660e01b8152600401602060405180830381865afa158015612eef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f139190614a59565b6040517f47af267b0000000000000000000000000000000000000000000000000000000081527f4554485f4c4f434b424f5800000000000000000000000000000000000000000060048201529091506001600160a01b038616906347af267b90602401602060405180830381865afa158015612f93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612fb79190614b39565b612fc5578592505050610474565b613025612fe9612fd483613375565b60075461099d906001600160a01b0316613375565b6040518060400160405280600a81526020017f4c4f434b424f582d31300000000000000000000000000000000000000000000081525088613300565b600754909650613088906001600160a01b031661304286846133dd565b6001600160a01b0316146040518060400160405280600a81526020017f4c4f434b424f582d32300000000000000000000000000000000000000000000081525088613300565b95506130e6846001600160a01b03166130a083613464565b6001600160a01b0316146040518060400160405280600a81526020017f4c4f434b424f582d33300000000000000000000000000000000000000000000081525088613300565b955061319d856001600160a01b0316826001600160a01b03166333d7e2bd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613133573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131579190614a59565b6001600160a01b0316146040518060400160405280600a81526020017f4c4f434b424f582d34300000000000000000000000000000000000000000000081525088613300565b6040517f0fd110770000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301529197506115e691831690630fd1107790602401602060405180830381865afa158015613203573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132279190614b39565b6040518060400160405280600a81526020017f4c4f434b424f582d35300000000000000000000000000000000000000000000081525088613300565b805160609081906001600160a01b03161561329b57806040516020016132899190614cb9565b60405160208183030381529060405290505b60208301516001600160a01b0316156108a4578051156132d857806040516020016132c69190614cfa565b60405160208183030381529060405290505b806040516020016132e99190614d3b565b604051602081830303815290604052905092915050565b6060831561330f575080610474565b815160000361332057829150613345565b8183604051602001613333929190614a76565b60405160208183030381529060405291505b5092915050565b80516000906001600160a01b03161561336457505190565b50506001546001600160a01b031690565b6060816001600160a01b03166354fd4d506040518163ffffffff1660e01b8152600401600060405180830381865afa1580156133b5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108a49190810190614df0565b6040517f204e1c7a0000000000000000000000000000000000000000000000000000000081526001600160a01b0382811660048301526000919084169063204e1c7a90602401602060405180830381865afa158015613440573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104749190614a59565b6000816001600160a01b0316633e47158c6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156134a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108a49190614a59565b600081158015906104745750509081161490565b604080516101c081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810182905261012081018290526101408101829052610160810182905261018081018290526101a0810182905290859080600163ffffffff881663ffffffff161490506000866001600160a01b031663f2b4e6176040518163ffffffff1660e01b8152600401602060405180830381865afa1580156135a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135c69190614a59565b6040517f1b685b9e00000000000000000000000000000000000000000000000000000000815263ffffffff8a1660048201529091506000906001600160a01b03831690631b685b9e90602401602060405180830381865afa15801561362f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136539190614a59565b90506001600160a01b03811661369c5761368e6000886040516020016136799190614e39565b60405160208183030381529060405287613300565b945060019350505050613766565b6040517f74cc86ac00000000000000000000000000000000000000000000000000000000815263ffffffff8a1660048201526000906001600160a01b038416906374cc86ac90602401600060405180830381865afa158015613702573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261372a9190810190614df0565b9050600061373a8783878c613b2d565b9097509050801561375357600195505050505050613766565b61375e83838d613bb5565b975050505050505b9450945094915050565b805161010082015160408084015161012081015182517fd83ef267000000000000000000000000000000000000000000000000000000008152835192936000936001600160a01b039093169263d83ef2679260048082019392918290030181865afa1580156137e3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138079190614e7a565b509050600085602001516001600160a01b031663f2b4e6176040518163ffffffff1660e01b8152600401602060405180830381865afa15801561384e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138729190614a59565b90506138d96138c86138878560000151613375565b60c089015163ffffffff166001146138b3576010546138ae906001600160a01b0316613375565b61099d565b60115461099d906001600160a01b0316613375565b856040516020016136799190614e9e565b94506139068660c0015163ffffffff168460a0015163ffffffff1614856040516020016136799190614edf565b945061392786606001518460e0015114856040516020016136799190614f20565b9450613949866080015184610160015114856040516020016136799190614f61565b94506139678360c00151600014856040516020016136799190614fa2565b9450613990836080015167ffffffffffffffff16612a3014856040516020016136799190614fe3565b94506139ae8360400151601e14856040516020016136799190615024565b94506139cc8360200151604914856040516020016136799190615065565b94506139f6836060015167ffffffffffffffff1662049d40148560405160200161367991906150a6565b9450613a136000801b8314158560405160200161367991906150e7565b9450613a348587602001518561014001518960a001518a60e0015189613eea565b9450613a51858760200151838661012001518a60a0015189614164565b9450613a638584610100015186614399565b600f546101008501519196506001600160a01b03908116911603613af557613af2858461010001516001600160a01b0316637dc0d1d06040518163ffffffff1660e01b8152600401602060405180830381865afa158015613ac8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613aec9190614a59565b866144ae565b94505b50505050919050565b60208101516000906001600160a01b031615613b1c57506020015190565b50506002546001600160a01b031690565b6060600082604051602001613b429190615128565b60405160208183030381529060405292508315613b9f576000613b66865160a41490565b9050613b928185604051602001613b7d9190614e39565b60405160208183030381529060405289613300565b9650869250159050613bac565b6000613b668651607c1490565b94509492505050565b604080516101c081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810182905261012081018290526101408101829052610160810182905261018081018290526101a0810182905290613c2f84614625565b9050604051806101c00160405280866001600160a01b03168152602001866001600160a01b031663fa315aa96040518163ffffffff1660e01b8152600401602060405180830381865afa158015613c8a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613cae9190614b89565b8152602001866001600160a01b031663ec5e63086040518163ffffffff1660e01b8152600401602060405180830381865afa158015613cf1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613d159190614b89565b8152602001866001600160a01b031663dabd396d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613d58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613d7c9190614b6c565b67ffffffffffffffff168152602001866001600160a01b0316636b6716c06040518163ffffffff1660e01b8152600401602060405180830381865afa158015613dc9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ded9190614b6c565b67ffffffffffffffff1681526020018463ffffffff168152602001866001600160a01b03166399735e326040518163ffffffff1660e01b8152600401602060405180830381865afa158015613e46573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613e6a9190614b89565b81526020018260000151815260200182602001516001600160a01b0316815260200182604001516001600160a01b0316815260200182606001516001600160a01b03168152602001826080015181526020018260c001516001600160a01b031681526020018260a001516001600160a01b03168152509150509392505050565b606081604051602001613efd9190615169565b6040516020818303038152906040529150613f43613f32613f1d87613375565b600e5461099d906001600160a01b0316613375565b83604051602001613b7d9190614e39565b600e54909750613f7b906001600160a01b0316613f6086886133dd565b6001600160a01b03161483604051602001613b7d9190614e9e565b96506000613f888461334c565b9050614029816001600160a01b0316876001600160a01b031663dad544e06040518163ffffffff1660e01b8152600401602060405180830381865afa158015613fd5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ff99190614a59565b6001600160a01b031614846040516020016140149190614edf565b6040516020818303038152906040528a613300565b97506140a5600354876001600160a01b0316636a42b8f86040518163ffffffff1660e01b8152600401602060405180830381865afa15801561406f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906140939190614b89565b14846040516020016140149190614f20565b9750614131876001600160a01b0316876001600160a01b03166333d7e2bd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156140f2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906141169190614a59565b6001600160a01b0316148460405160200161401491906151aa565b9750612e3b856001600160a01b031661414988613464565b6001600160a01b031614846040516020016140149190614f61565b60608160405160200161417791906151eb565b60405160208183030381529060405291506141ac613f3261419786613375565b600d5461099d906001600160a01b0316613375565b600d549097506141c9906001600160a01b0316613f6085876133dd565b9650614255856001600160a01b0316856001600160a01b031663f2b4e6176040518163ffffffff1660e01b8152600401602060405180830381865afa158015614216573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061423a9190614a59565b6001600160a01b03161483604051602001613b7d9190614edf565b96506142e1866001600160a01b0316856001600160a01b03166333d7e2bd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156142a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906142c69190614a59565b6001600160a01b03161483604051602001613b7d9190614f20565b9650614314836001600160a01b03166142f986613464565b6001600160a01b03161483604051602001613b7d91906151aa565b965061079a6000856001600160a01b0316634086d1836040518163ffffffff1660e01b8152600401602060405180830381865afa158015614359573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061437d9190614b6c565b67ffffffffffffffff161183604051602001613b7d9190614f61565b6060816040516020016143ac919061522c565b60408051601f1981840301815290829052600f549093506143fc916001600160a01b03868116921691909114906143e7908590602001614e39565b60405160208183030381529060405286613300565b935061443361442261440d85613375565b600f5461099d906001600160a01b0316613375565b836040516020016143e79190614e9e565b93506104f0836001600160a01b0316631219a4e46040518163ffffffff1660e01b8152600401602060405180830381865afa158015614476573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061449a9190614b89565b600814836040516020016143e79190614edf565b6060816040516020016144c1919061526d565b604051602081830303815290604052915061452b61451a6144e185613375565b60408051808201909152600581527f312e312e34000000000000000000000000000000000000000000000000000000602082015261099d565b836040516020016143e79190614e39565b93506145a8836001600160a01b031663f3f480d96040518163ffffffff1660e01b8152600401602060405180830381865afa15801561456e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906145929190614b89565b6201518014836040516020016143e79190614e9e565b93506104f0836001600160a01b031663dd24f9bf6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156145eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061460f9190614b89565b6201ec3014836040516020016143e79190614edf565b6040805160e081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810191909152815160a481148015906146725750607c8114155b156146a9576040517fbff6e41600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6020830151604084015160548501516068860151607c870151606093841c9392831c929190911c906000807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5c880161470f575050609c88015160b0890151606091821c911c5b6040805160e0810182529788526001600160a01b0396871660208901529486169487019490945291841660608601526080850152821660a08401521660c08201529392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6001600160a01b038116811461479b57600080fd5b50565b6000608082840312156147b057600080fd5b6040516080810181811067ffffffffffffffff821117156147d3576147d3614757565b60405290508082356147e481614786565b808252506020830135602082015260408301356040820152606083013561480a81614786565b6060919091015292915050565b801515811461479b57600080fd5b60006040828403121561483757600080fd5b6040516040810181811067ffffffffffffffff8211171561485a5761485a614757565b604052905080823561486b81614786565b8152602083013561487b81614786565b6020919091015292915050565b600080600060e0848603121561489d57600080fd5b6148a7858561479e565b925060808401356148b781614817565b91506148c68560a08601614825565b90509250925092565b60005b838110156148ea5781810151838201526020016148d2565b838111156148f9576000848401525b50505050565b602081526000825180602084015261491e8160408501602087016148cf565b601f01601f19169190910160400192915050565b60008060a0838503121561494557600080fd5b61494f848461479e565b9150608083013561495f81614817565b809150509250929050565b600060a0828403121561497c57600080fd5b60405160a0810181811067ffffffffffffffff8211171561499f5761499f614757565b60405290508082356149b081614786565b8082525060208301356020820152604083013560408201526060830135606082015260808301356149e081614786565b6080919091015292915050565b60008060006101008486031215614a0357600080fd5b614a0d858561496a565b925060a0840135614a1d81614817565b91506148c68560c08601614825565b60008060c08385031215614a3f57600080fd5b614a49848461496a565b915060a083013561495f81614817565b600060208284031215614a6b57600080fd5b815161047481614786565b60008351614a888184602088016148cf565b7f2c000000000000000000000000000000000000000000000000000000000000009083019081528351614ac28160018401602088016148cf565b01600101949350505050565b7f4f50436f6e7472616374734d616e616765725374616e6461726456616c69646181527f746f723a20000000000000000000000000000000000000000000000000000000602082015260008251614b2c8160258501602087016148cf565b9190910160250192915050565b600060208284031215614b4b57600080fd5b815161047481614817565b67ffffffffffffffff8116811461479b57600080fd5b600060208284031215614b7e57600080fd5b815161047481614b56565b600060208284031215614b9b57600080fd5b5051919050565b805163ffffffff81168114614bb657600080fd5b919050565b805160ff81168114614bb657600080fd5b600060c08284031215614bde57600080fd5b60405160c0810181811067ffffffffffffffff82111715614c0157614c01614757565b604052614c0d83614ba2565b8152614c1b60208401614bbb565b6020820152614c2c60408401614bbb565b6040820152614c3d60608401614ba2565b6060820152614c4e60808401614ba2565b608082015260a08301516fffffffffffffffffffffffffffffffff81168114614c7657600080fd5b60a08201529392505050565b600060208284031215614c9457600080fd5b61047482614ba2565b60008251614caf8184602087016148cf565b9190910192915050565b60008251614ccb8184602087016148cf565b7f4f56455252494445532d4c3150414f4d554c5449534947000000000000000000920191825250601701919050565b60008251614d0c8184602087016148cf565b7f2c00000000000000000000000000000000000000000000000000000000000000920191825250600101919050565b60008251614d4d8184602087016148cf565b7f4f56455252494445532d4348414c4c454e474552000000000000000000000000920191825250601401919050565b600067ffffffffffffffff80841115614d9757614d97614757565b604051601f8501601f19908116603f01168101908282118183101715614dbf57614dbf614757565b81604052809350858152868686011115614dd857600080fd5b614de68660208301876148cf565b5050509392505050565b600060208284031215614e0257600080fd5b815167ffffffffffffffff811115614e1957600080fd5b8201601f81018413614e2a57600080fd5b6104f084825160208401614d7c565b60008251614e4b8184602087016148cf565b7f2d31300000000000000000000000000000000000000000000000000000000000920191825250600301919050565b60008060408385031215614e8d57600080fd5b505080516020909101519092909150565b60008251614eb08184602087016148cf565b7f2d32300000000000000000000000000000000000000000000000000000000000920191825250600301919050565b60008251614ef18184602087016148cf565b7f2d33300000000000000000000000000000000000000000000000000000000000920191825250600301919050565b60008251614f328184602087016148cf565b7f2d34300000000000000000000000000000000000000000000000000000000000920191825250600301919050565b60008251614f738184602087016148cf565b7f2d36300000000000000000000000000000000000000000000000000000000000920191825250600301919050565b60008251614fb48184602087016148cf565b7f2d37300000000000000000000000000000000000000000000000000000000000920191825250600301919050565b60008251614ff58184602087016148cf565b7f2d38300000000000000000000000000000000000000000000000000000000000920191825250600301919050565b600082516150368184602087016148cf565b7f2d39300000000000000000000000000000000000000000000000000000000000920191825250600301919050565b600082516150778184602087016148cf565b7f2d31303000000000000000000000000000000000000000000000000000000000920191825250600401919050565b600082516150b88184602087016148cf565b7f2d31313000000000000000000000000000000000000000000000000000000000920191825250600401919050565b600082516150f98184602087016148cf565b7f2d31323000000000000000000000000000000000000000000000000000000000920191825250600401919050565b6000825161513a8184602087016148cf565b7f2d47415247530000000000000000000000000000000000000000000000000000920191825250600601919050565b6000825161517b8184602087016148cf565b7f2d44574554480000000000000000000000000000000000000000000000000000920191825250600601919050565b600082516151bc8184602087016148cf565b7f2d35300000000000000000000000000000000000000000000000000000000000920191825250600301919050565b600082516151fd8184602087016148cf565b7f2d414e43484f5250000000000000000000000000000000000000000000000000920191825250600801919050565b6000825161523e8184602087016148cf565b7f2d564d0000000000000000000000000000000000000000000000000000000000920191825250600301919050565b6000825161527f8184602087016148cf565b7f2d50494d474f000000000000000000000000000000000000000000000000000092019182525060060191905056fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R4\x80\x15b\0\0\x11W`\0\x80\xFD[P`@Qb\0VL8\x03\x80b\0VL\x839\x81\x01`@\x81\x90Rb\0\x004\x91b\0\x01\xEDV[`\0\x80T`\x01`\x01`\xA0\x1B\x03\x19\x90\x81\x16`\x01`\x01`\xA0\x1B\x03\x97\x88\x16\x17\x90\x91U`\x01\x80T\x82\x16\x95\x87\x16\x95\x90\x95\x17\x90\x94U`\x02\x80T\x85\x16\x93\x86\x16\x93\x90\x93\x17\x90\x92U`\x03U`\x12U\x82Q`\x04\x80T\x83\x16\x91\x84\x16\x91\x90\x91\x17\x90U` \x83\x01Q`\x05\x80T\x83\x16\x91\x84\x16\x91\x90\x91\x17\x90U`@\x83\x01Q`\x06\x80T\x83\x16\x91\x84\x16\x91\x90\x91\x17\x90U``\x83\x01Q`\x07\x80T\x83\x16\x91\x84\x16\x91\x90\x91\x17\x90U`\x80\x83\x01Q`\x08\x80T\x83\x16\x91\x84\x16\x91\x90\x91\x17\x90U`\xA0\x83\x01Q`\t\x80T\x83\x16\x91\x84\x16\x91\x90\x91\x17\x90U`\xC0\x83\x01Q`\n\x80T\x83\x16\x91\x84\x16\x91\x90\x91\x17\x90U`\xE0\x83\x01Q`\x0B\x80T\x83\x16\x91\x84\x16\x91\x90\x91\x17\x90Ua\x01\0\x83\x01Q`\x0C\x80T\x83\x16\x91\x84\x16\x91\x90\x91\x17\x90Ua\x01 \x83\x01Q`\r\x80T\x83\x16\x91\x84\x16\x91\x90\x91\x17\x90Ua\x01@\x83\x01Q`\x0E\x80T\x83\x16\x91\x84\x16\x91\x90\x91\x17\x90Ua\x01`\x83\x01Q`\x0F\x80T\x83\x16\x91\x84\x16\x91\x90\x91\x17\x90Ua\x01\x80\x83\x01Q`\x10\x80T\x83\x16\x91\x84\x16\x91\x90\x91\x17\x90Ua\x01\xA0\x90\x92\x01Q`\x11\x80T\x90\x93\x16\x91\x16\x17\x90Ub\0\x03\x81V[`@Qa\x01\xC0\x81\x01`\x01`\x01`@\x1B\x03\x81\x11\x82\x82\x10\x17\x15b\0\x01\xCAWcNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[`@R\x90V[\x80Q`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14b\0\x01\xE8W`\0\x80\xFD[\x91\x90PV[`\0\x80`\0\x80`\0\x80\x86\x88\x03a\x02`\x81\x12\x15b\0\x02\tW`\0\x80\xFD[a\x01\xC0\x80\x82\x12\x15b\0\x02\x1AW`\0\x80\xFD[b\0\x02$b\0\x01\x98V[\x91Pb\0\x021\x89b\0\x01\xD0V[\x82Rb\0\x02A` \x8A\x01b\0\x01\xD0V[` \x83\x01Rb\0\x02T`@\x8A\x01b\0\x01\xD0V[`@\x83\x01Rb\0\x02g``\x8A\x01b\0\x01\xD0V[``\x83\x01Rb\0\x02z`\x80\x8A\x01b\0\x01\xD0V[`\x80\x83\x01Rb\0\x02\x8D`\xA0\x8A\x01b\0\x01\xD0V[`\xA0\x83\x01Rb\0\x02\xA0`\xC0\x8A\x01b\0\x01\xD0V[`\xC0\x83\x01Rb\0\x02\xB3`\xE0\x8A\x01b\0\x01\xD0V[`\xE0\x83\x01Ra\x01\0b\0\x02\xC8\x81\x8B\x01b\0\x01\xD0V[\x90\x83\x01Ra\x01 b\0\x02\xDC\x8A\x82\x01b\0\x01\xD0V[\x90\x83\x01Ra\x01@b\0\x02\xF0\x8A\x82\x01b\0\x01\xD0V[\x90\x83\x01Ra\x01`b\0\x03\x04\x8A\x82\x01b\0\x01\xD0V[\x90\x83\x01Ra\x01\x80b\0\x03\x18\x8A\x82\x01b\0\x01\xD0V[\x90\x83\x01Ra\x01\xA0b\0\x03,\x8A\x82\x01b\0\x01\xD0V[\x81\x84\x01RP\x81\x97Pb\0\x03A\x81\x8A\x01b\0\x01\xD0V[\x96PPPb\0\x03Ta\x01\xE0\x88\x01b\0\x01\xD0V[\x93Pb\0\x03ea\x02\0\x88\x01b\0\x01\xD0V[\x92Pa\x02 \x87\x01Q\x91Pa\x02@\x87\x01Q\x90P\x92\x95P\x92\x95P\x92\x95V[aR\xBB\x80b\0\x03\x91`\09`\0\xF3\xFE`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`\x046\x10a\x01\xA3W`\x005`\xE0\x1C\x80c}\x8B\xD0\xD8\x11a\0\xEEW\x80c\xBB\x98\xB3\xF4\x11a\0\x97W\x80c\xDE\xA2\x19\x84\x11a\0qW\x80c\xDE\xA2\x19\x84\x14a\x03\xAEW\x80c\xE3\x03',\x14a\x03\xC1W\x80c\xE3\xFE\xF4\xA8\x14a\x03\xD4W\x80c\xF3\xED\xCB\xE1\x14a\x03\xE7W`\0\x80\xFD[\x80c\xBB\x98\xB3\xF4\x14a\x03uW\x80c\xBC?o\xD4\x14a\x03\x88W\x80c\xC3N\x04z\x14a\x03\x9BW`\0\x80\xFD[\x80c\xA3\x8DU\x95\x11a\0\xC8W\x80c\xA3\x8DU\x95\x14a\x03\x16W\x80c\xA4\xDE\xC3z\x14a\x03)W\x80c\xAD~~@\x14a\x03\x14a\x03\x03W`\0\x80\xFD[\x80cT\xFDMP\x11a\x01PW\x80cq\x83\x94\x18\x11a\x01*W\x80cq\x83\x94\x18\x14a\x02\xAEW\x80ctE\x9C\xF3\x14a\x02\xB7W\x80c{I\x1A\x98\x14a\x02\xCAW`\0\x80\xFD[\x80cT\xFDMP\x14a\x02LW\x80cX%j\xFB\x14a\x02\x88W\x80cl\x0E!p\x14a\x02\x9BW`\0\x80\xFD[\x80c5\xE8\n\xB3\x11a\x01\x81W\x80c5\xE8\n\xB3\x14a\x02\x13W\x80cA\xFES\x85\x14a\x02&W\x80cSM\xB0\xE2\x14a\x029W`\0\x80\xFD[\x80c\x0E\x9D\\\xB9\x14a\x01\xA8W\x80c\x1D\x8AN\x92\x14a\x01\xD1W\x80c*\xEC\xD3\\\x14a\x01\xE8W[`\0\x80\xFD[a\x01\xBBa\x01\xB66`\x04aH\x88V[a\x03\xFAV[`@Qa\x01\xC8\x91\x90aH\xFFV[`@Q\x80\x91\x03\x90\xF3[a\x01\xDA`\x12T\x81V[`@Q\x90\x81R` \x01a\x01\xC8V[`\rTa\x01\xFB\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x01a\x01\xC8V[`\0Ta\x01\xFB\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[a\x01\xBBa\x0246`\x04aI2V[a\x04{V[`\x02Ta\x01\xFB\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[a\x01\xBB`@Q\x80`@\x01`@R\x80`\x05\x81R` \x01\x7F2.3.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\x81RP\x81V[`\nTa\x01\xFB\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[`\x06Ta\x01\xFB\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[a\x01\xDA`\x03T\x81V[`\x0ETa\x01\xFB\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[`\x07Ta\x01\xFB\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[`\x04Ta\x01\xFB\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[a\x01\xBBa\x02\xFE6`\x04aI\xEDV[a\x04\xF8V[`\x11Ta\x01\xFB\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[`\x05Ta\x01\xFB\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[`\x01Ta\x01\xFB\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[`@\x80Q\x80\x82\x01\x90\x91R`\x05\x81R\x7F1.1.4\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` \x82\x01Ra\x01\xBBV[`\x0CTa\x01\xFB\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[`\x08Ta\x01\xFB\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[`\x0BTa\x01\xFB\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[`\x10Ta\x01\xFB\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[`\x0FTa\x01\xFB\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[`\tTa\x01\xFB\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[a\x01\xBBa\x03\xF56`\x04aJ,V[a\x07\xA5V[`@\x80Q`\xA0\x80\x82\x01\x83R`\0\x80\x83R` \x80\x84\x01\x82\x90R\x83\x85\x01\x82\x90R``\x84\x81\x01\x83\x90R`\x80\x94\x85\x01\x83\x90R\x85Q\x93\x84\x01\x86R\x88Q`\x01`\x01`\xA0\x1B\x03\x90\x81\x16\x85R\x82\x8A\x01Q\x92\x85\x01\x92\x90\x92R\x83\x86\x01\x83\x90R\x94\x88\x01Q\x83\x86\x01R\x87\x85\x01Q\x16\x92\x82\x01\x92\x90\x92R\x90Pa\x04p\x81\x85\x85a\x04\xF8V[\x91PP[\x93\x92PPPV[`@\x80Q`\xA0\x80\x82\x01\x83R`\0\x80\x83R` \x80\x84\x01\x82\x90R\x83\x85\x01\x82\x90R``\x84\x81\x01\x83\x90R`\x80\x94\x85\x01\x83\x90R\x85Q\x93\x84\x01\x86R\x87Q`\x01`\x01`\xA0\x1B\x03\x90\x81\x16\x85R\x82\x89\x01Q\x92\x85\x01\x92\x90\x92R\x83\x86\x01\x83\x90R\x94\x87\x01Q\x83\x86\x01R\x86\x85\x01Q\x16\x92\x82\x01\x92\x90\x92R\x90Pa\x04\xF0\x81\x84a\x07\xA5V[\x94\x93PPPPV[```\0`@Q\x80` \x01`@R\x80`\0\x81RP\x90P`\0\x85`\0\x01Q`\x01`\x01`\xA0\x1B\x03\x16c>G\x15\x8C`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x05RW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x05v\x91\x90aJYV[\x90Pa\x05\x81\x82a\x07\xDAV[\x91Pa\x05\x8E\x82\x82\x86a\x08\xAAV[\x91Pa\x05\x9F\x82\x87`\0\x01Q\x83a\twV[\x91Pa\x05\xB0\x82\x87`\0\x01Q\x83a\x10=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x08g\x91\x90aK9V[\x15`@Q\x80`@\x01`@R\x80`\t\x81R` \x01\x7FSPRCFG-10\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RP\x84a3\0V[\x92\x91PPV[```\0a\x08\xB7\x83a3LV[\x90Pa\tn\x81`\x01`\x01`\xA0\x1B\x03\x16\x85`\x01`\x01`\xA0\x1B\x03\x16c\x8D\xA5\xCB[`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\t\x04W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\t(\x91\x90aJYV[`\x01`\x01`\xA0\x1B\x03\x16\x14`@Q\x80`@\x01`@R\x80`\t\x81R` \x01\x7FPROXYA-10\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RP\x87a3\0V[\x95\x94PPPPPV[``a\t\xEFa\t\xB3a\t\x88\x85a3uV[`\x08Ta\t\x9D\x90`\x01`\x01`\xA0\x1B\x03\x16a3uV[\x80Q` \x91\x82\x01 \x82Q\x92\x90\x91\x01\x91\x90\x91 \x14\x90V[`@Q\x80`@\x01`@R\x80`\t\x81R` \x01\x7FSYSCON-10\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RP\x86a3\0V[\x93Pa\n\xADc\x1D\xCDe\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x84`\x01`\x01`\xA0\x1B\x03\x16c\xF6\x80\x16\xB7`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\nAW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\ne\x91\x90aKlV[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x11\x15`@Q\x80`@\x01`@R\x80`\t\x81R` \x01\x7FSYSCON-20\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RP\x86a3\0V[\x93Pa\x0BT\x83`\x01`\x01`\xA0\x1B\x03\x16c\xF4^e\xD8`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\n\xF0W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x0B\x14\x91\x90aK\x89V[`\0\x14\x15`@Q\x80`@\x01`@R\x80`\t\x81R` \x01\x7FSYSCON-30\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RP\x86a3\0V[`\x08T\x90\x94Pa\x0B\xB7\x90`\x01`\x01`\xA0\x1B\x03\x16a\x0Bq\x84\x86a3\xDDV[`\x01`\x01`\xA0\x1B\x03\x16\x14`@Q\x80`@\x01`@R\x80`\t\x81R` \x01\x7FSYSCON-40\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RP\x86a3\0V[\x93P`\0\x83`\x01`\x01`\xA0\x1B\x03\x16c\xCCs\x1B\x02`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01`\xC0`@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x0B\xF9W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x0C\x1D\x91\x90aK\xCCV[\x90Pa\x0Co\x81`\0\x01Qc\xFF\xFF\xFF\xFF\x16c\x011-\0\x14`@Q\x80`@\x01`@R\x80`\t\x81R` \x01\x7FSYSCON-50\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RP\x87a3\0V[\x94Pa\x0C\xBB\x81` \x01Q`\xFF\x16`\n\x14`@Q\x80`@\x01`@R\x80`\t\x81R` \x01\x7FSYSCON-60\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RP\x87a3\0V[\x94Pa\r\x07\x81`@\x01Q`\xFF\x16`\x08\x14`@Q\x80`@\x01`@R\x80`\t\x81R` \x01\x7FSYSCON-70\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RP\x87a3\0V[\x94Pa\rX\x81`\x80\x01Qc\xFF\xFF\xFF\xFF\x16b\x0FB@\x14`@Q\x80`@\x01`@R\x80`\t\x81R` \x01\x7FSYSCON-80\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RP\x87a3\0V[\x94Pa\r\xAA\x81``\x01Qc\xFF\xFF\xFF\xFF\x16c;\x9A\xCA\0\x14`@Q\x80`@\x01`@R\x80`\t\x81R` \x01\x7FSYSCON-90\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RP\x87a3\0V[\x94Pa\x0E\x16o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x16\x82`\xA0\x01Qo\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14`@Q\x80`@\x01`@R\x80`\n\x81R` \x01\x7FSYSCON-100\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RP\x87a3\0V[\x94Pa\x0E\xC2\x84`\x01`\x01`\xA0\x1B\x03\x16cM]\x9A*`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x0EYW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x0E}\x91\x90aL\x82V[c\xFF\xFF\xFF\xFF\x16`\0\x14`@Q\x80`@\x01`@R\x80`\n\x81R` \x01\x7FSYSCON-110\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RP\x87a3\0V[\x94Pa\x0Fr\x84`\x01`\x01`\xA0\x1B\x03\x16c\x16\xD3\xBC\x7F`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x0F\x05W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x0F)\x91\x90aKlV[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\0\x14`@Q\x80`@\x01`@R\x80`\n\x81R` \x01\x7FSYSCON-120\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RP\x87a3\0V[\x94Pa\tn`\0\x80T\x90a\x01\0\n\x90\x04`\x01`\x01`\xA0\x1B\x03\x16`\x01`\x01`\xA0\x1B\x03\x16\x85`\x01`\x01`\xA0\x1B\x03\x16c5\xE8\n\xB3`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x0F\xD2W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x0F\xF6\x91\x90aJYV[`\x01`\x01`\xA0\x1B\x03\x16\x14`@Q\x80`@\x01`@R\x80`\n\x81R` \x01\x7FSYSCON-130\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RP\x87a3\0V[```\0\x83`\x01`\x01`\xA0\x1B\x03\x16c\xA7\x11\x98i`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x10~W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x10\xA2\x91\x90aJYV[\x90Pa\x11\x04a\x10\xC8a\x10\xB3\x83a3uV[`\nTa\t\x9D\x90`\x01`\x01`\xA0\x1B\x03\x16a3uV[`@Q\x80`@\x01`@R\x80`\x08\x81R` \x01\x7FL1xDM-10\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RP\x87a3\0V[`\nT\x90\x95Pa\x11g\x90`\x01`\x01`\xA0\x1B\x03\x16a\x11!\x85\x84a3\xDDV[`\x01`\x01`\xA0\x1B\x03\x16\x14`@Q\x80`@\x01`@R\x80`\x08\x81R` \x01\x7FL1xDM-20\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RP\x87a3\0V[\x94P`\0\x84`\x01`\x01`\xA0\x1B\x03\x16c\nI\xCB\x03`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x11\xA9W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x11\xCD\x91\x90aJYV[\x90Pa\x12\x98sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x07`\x01`\x01`\xA0\x1B\x03\x16\x83`\x01`\x01`\xA0\x1B\x03\x16c\x9F\xCE\x81,`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x12.W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x12R\x91\x90aJYV[`\x01`\x01`\xA0\x1B\x03\x16\x14`@Q\x80`@\x01`@R\x80`\x08\x81R` \x01\x7FL1xDM-30\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RP\x88a3\0V[\x95Pa\x13csB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x07`\x01`\x01`\xA0\x1B\x03\x16\x83`\x01`\x01`\xA0\x1B\x03\x16c\xDBP]\x80`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x12\xF9W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x13\x1D\x91\x90aJYV[`\x01`\x01`\xA0\x1B\x03\x16\x14`@Q\x80`@\x01`@R\x80`\x08\x81R` \x01\x7FL1xDM-40\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RP\x88a3\0V[\x95Pa\x14\x1A\x81`\x01`\x01`\xA0\x1B\x03\x16\x83`\x01`\x01`\xA0\x1B\x03\x16c\x0F\xF7T\xEA`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x13\xB0W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x13\xD4\x91\x90aJYV[`\x01`\x01`\xA0\x1B\x03\x16\x14`@Q\x80`@\x01`@R\x80`\x08\x81R` \x01\x7FL1xDM-50\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RP\x88a3\0V[\x95Pa\x14\xD1\x81`\x01`\x01`\xA0\x1B\x03\x16\x83`\x01`\x01`\xA0\x1B\x03\x16cd%fk`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x14gW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x14\x8B\x91\x90aJYV[`\x01`\x01`\xA0\x1B\x03\x16\x14`@Q\x80`@\x01`@R\x80`\x08\x81R` \x01\x7FL1xDM-60\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RP\x88a3\0V[\x95Pa\x15\x88\x85`\x01`\x01`\xA0\x1B\x03\x16\x83`\x01`\x01`\xA0\x1B\x03\x16c3\xD7\xE2\xBD`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x15\x1EW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x15B\x91\x90aJYV[`\x01`\x01`\xA0\x1B\x03\x16\x14`@Q\x80`@\x01`@R\x80`\x08\x81R` \x01\x7FL1xDM-70\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RP\x88a3\0V[\x95Pa\x15\xE6\x84`\x01`\x01`\xA0\x1B\x03\x16a\x15\xA0\x84a4dV[`\x01`\x01`\xA0\x1B\x03\x16\x14`@Q\x80`@\x01`@R\x80`\x08\x81R` \x01\x7FL1xDM-80\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RP\x88a3\0V[\x96\x95PPPPPPV[```\0\x83`\x01`\x01`\xA0\x1B\x03\x16c\x07\x8F)\xCF`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x162W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x16V\x91\x90aJYV[\x90Pa\x16\xB8a\x16|a\x16g\x83a3uV[`\x0BTa\t\x9D\x90`\x01`\x01`\xA0\x1B\x03\x16a3uV[`@Q\x80`@\x01`@R\x80`\x07\x81R` \x01\x7FL1SB-10\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\x81RP\x87a3\0V[`\x0BT\x90\x95Pa\x17\x1B\x90`\x01`\x01`\xA0\x1B\x03\x16a\x16\xD5\x85\x84a3\xDDV[`\x01`\x01`\xA0\x1B\x03\x16\x14`@Q\x80`@\x01`@R\x80`\x07\x81R` \x01\x7FL1SB-20\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\x81RP\x87a3\0V[\x94P`\0\x84`\x01`\x01`\xA0\x1B\x03\x16c\xA7\x11\x98i`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x17]W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x17\x81\x91\x90aJYV[\x90Pa\x188\x81`\x01`\x01`\xA0\x1B\x03\x16\x83`\x01`\x01`\xA0\x1B\x03\x16c\x92~\xDE-`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x17\xCEW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x17\xF2\x91\x90aJYV[`\x01`\x01`\xA0\x1B\x03\x16\x14`@Q\x80`@\x01`@R\x80`\x07\x81R` \x01\x7FL1SB-30\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\x81RP\x88a3\0V[\x95Pa\x18\xEF\x81`\x01`\x01`\xA0\x1B\x03\x16\x83`\x01`\x01`\xA0\x1B\x03\x16c<\xB7G\xBF`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x18\x85W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x18\xA9\x91\x90aJYV[`\x01`\x01`\xA0\x1B\x03\x16\x14`@Q\x80`@\x01`@R\x80`\x07\x81R` \x01\x7FL1SB-40\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\x81RP\x88a3\0V[\x95Pa\x19\xBAsB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x10`\x01`\x01`\xA0\x1B\x03\x16\x83`\x01`\x01`\xA0\x1B\x03\x16c\x7FF\xDD\xB2`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x19PW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x19t\x91\x90aJYV[`\x01`\x01`\xA0\x1B\x03\x16\x14`@Q\x80`@\x01`@R\x80`\x07\x81R` \x01\x7FL1SB-50\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\x81RP\x88a3\0V[\x95Pa\x1A\x85sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x10`\x01`\x01`\xA0\x1B\x03\x16\x83`\x01`\x01`\xA0\x1B\x03\x16c\xC8\x97\x01\xA2`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x1A\x1BW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x1A?\x91\x90aJYV[`\x01`\x01`\xA0\x1B\x03\x16\x14`@Q\x80`@\x01`@R\x80`\x07\x81R` \x01\x7FL1SB-60\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\x81RP\x88a3\0V[\x95Pa\x1B<\x85`\x01`\x01`\xA0\x1B\x03\x16\x83`\x01`\x01`\xA0\x1B\x03\x16c3\xD7\xE2\xBD`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x1A\xD2W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x1A\xF6\x91\x90aJYV[`\x01`\x01`\xA0\x1B\x03\x16\x14`@Q\x80`@\x01`@R\x80`\x07\x81R` \x01\x7FL1SB-70\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\x81RP\x88a3\0V[\x95Pa\x15\xE6\x84`\x01`\x01`\xA0\x1B\x03\x16a\x1BT\x84a4dV[`\x01`\x01`\xA0\x1B\x03\x16\x14`@Q\x80`@\x01`@R\x80`\x07\x81R` \x01\x7FL1SB-80\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\x81RP\x88a3\0V[```\0\x83`\x01`\x01`\xA0\x1B\x03\x16c\x9B}\x7F\n`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x1B\xDCW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x1C\0\x91\x90aJYV[\x90Pa\x1Cba\x1C&a\x1C\x11\x83a3uV[`\tTa\t\x9D\x90`\x01`\x01`\xA0\x1B\x03\x16a3uV[`@Q\x80`@\x01`@R\x80`\n\x81R` \x01\x7FMERC20F-10\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RP\x87a3\0V[`\tT\x90\x95Pa\x1C\xC5\x90`\x01`\x01`\xA0\x1B\x03\x16a\x1C\x7F\x85\x84a3\xDDV[`\x01`\x01`\xA0\x1B\x03\x16\x14`@Q\x80`@\x01`@R\x80`\n\x81R` \x01\x7FMERC20F-20\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RP\x87a3\0V[\x94P`\0\x84`\x01`\x01`\xA0\x1B\x03\x16c\x07\x8F)\xCF`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x1D\x07W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x1D+\x91\x90aJYV[\x90Pa\x1D\xE2\x81`\x01`\x01`\xA0\x1B\x03\x16\x83`\x01`\x01`\xA0\x1B\x03\x16c\xEE\x9A1\xA2`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x1DxW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x1D\x9C\x91\x90aJYV[`\x01`\x01`\xA0\x1B\x03\x16\x14`@Q\x80`@\x01`@R\x80`\n\x81R` \x01\x7FMERC20F-30\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RP\x88a3\0V[\x95Pa\x15\xE6\x81`\x01`\x01`\xA0\x1B\x03\x16\x83`\x01`\x01`\xA0\x1B\x03\x16c\xE7\x8C\xEA\x92`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x1E/W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x1ES\x91\x90aJYV[`\x01`\x01`\xA0\x1B\x03\x16\x14`@Q\x80`@\x01`@R\x80`\n\x81R` \x01\x7FMERC20F-40\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RP\x88a3\0V[```\0\x83`\x01`\x01`\xA0\x1B\x03\x16c\xC4\xE8\xDD\xFA`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x1E\xDBW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x1E\xFF\x91\x90aJYV[\x90Pa\x1Faa\x1F%a\x1F\x10\x83a3uV[`\x04Ta\t\x9D\x90`\x01`\x01`\xA0\x1B\x03\x16a3uV[`@Q\x80`@\x01`@R\x80`\x08\x81R` \x01\x7FL721B-10\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RP\x87a3\0V[`\x04T\x90\x95Pa\x1F\xC4\x90`\x01`\x01`\xA0\x1B\x03\x16a\x1F~\x85\x84a3\xDDV[`\x01`\x01`\xA0\x1B\x03\x16\x14`@Q\x80`@\x01`@R\x80`\x08\x81R` \x01\x7FL721B-20\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RP\x87a3\0V[\x94P`\0\x84`\x01`\x01`\xA0\x1B\x03\x16c\xA7\x11\x98i`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a \x06W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a *\x91\x90aJYV[\x90Pa \xF5sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x14`\x01`\x01`\xA0\x1B\x03\x16\x83`\x01`\x01`\xA0\x1B\x03\x16c\x7FF\xDD\xB2`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a \x8BW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a \xAF\x91\x90aJYV[`\x01`\x01`\xA0\x1B\x03\x16\x14`@Q\x80`@\x01`@R\x80`\x08\x81R` \x01\x7FL721B-30\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RP\x88a3\0V[\x95Pa!\xC0sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x14`\x01`\x01`\xA0\x1B\x03\x16\x83`\x01`\x01`\xA0\x1B\x03\x16c\xC8\x97\x01\xA2`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a!VW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a!z\x91\x90aJYV[`\x01`\x01`\xA0\x1B\x03\x16\x14`@Q\x80`@\x01`@R\x80`\x08\x81R` \x01\x7FL721B-40\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RP\x88a3\0V[\x95Pa\"w\x81`\x01`\x01`\xA0\x1B\x03\x16\x83`\x01`\x01`\xA0\x1B\x03\x16c\x92~\xDE-`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\"\rW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\"1\x91\x90aJYV[`\x01`\x01`\xA0\x1B\x03\x16\x14`@Q\x80`@\x01`@R\x80`\x08\x81R` \x01\x7FL721B-50\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RP\x88a3\0V[\x95Pa#.\x81`\x01`\x01`\xA0\x1B\x03\x16\x83`\x01`\x01`\xA0\x1B\x03\x16c<\xB7G\xBF`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\"\xC4W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\"\xE8\x91\x90aJYV[`\x01`\x01`\xA0\x1B\x03\x16\x14`@Q\x80`@\x01`@R\x80`\x08\x81R` \x01\x7FL721B-60\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RP\x88a3\0V[\x95Pa#\xE5\x85`\x01`\x01`\xA0\x1B\x03\x16\x83`\x01`\x01`\xA0\x1B\x03\x16c3\xD7\xE2\xBD`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a#{W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a#\x9F\x91\x90aJYV[`\x01`\x01`\xA0\x1B\x03\x16\x14`@Q\x80`@\x01`@R\x80`\x08\x81R` \x01\x7FL721B-70\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RP\x88a3\0V[\x95Pa\x15\xE6\x84`\x01`\x01`\xA0\x1B\x03\x16a#\xFD\x84a4dV[`\x01`\x01`\xA0\x1B\x03\x16\x14`@Q\x80`@\x01`@R\x80`\x08\x81R` \x01\x7FL721B-80\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RP\x88a3\0V[```\0\x83`\x01`\x01`\xA0\x1B\x03\x16c\nI\xCB\x03`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a$\x85W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a$\xA9\x91\x90aJYV[\x90Pa$\xBB`\x12T`\x01`\0\x1Ba4\xC8V[\x15a%\xBFWa%Ua%\x19a$\xCF\x83a3uV[`\x06Ta$\xE4\x90`\x01`\x01`\xA0\x1B\x03\x16a3uV[`@Q` \x01a$\xF4\x91\x90aL\x9DV[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q` \x91\x82\x01 \x82Q\x92\x90\x91\x01\x91\x90\x91 \x14\x90V[`@Q\x80`@\x01`@R\x80`\t\x81R` \x01\x7FPORTAL-10\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RP\x87a3\0V[`\x06T\x90\x95Pa%\xB8\x90`\x01`\x01`\xA0\x1B\x03\x16a%r\x85\x84a3\xDDV[`\x01`\x01`\xA0\x1B\x03\x16\x14`@Q\x80`@\x01`@R\x80`\t\x81R` \x01\x7FPORTAL-20\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RP\x87a3\0V[\x94Pa&\x03V[a%\xE3a%\x19a%\xCE\x83a3uV[`\x05Ta\t\x9D\x90`\x01`\x01`\xA0\x1B\x03\x16a3uV[`\x05T\x90\x95Pa&\0\x90`\x01`\x01`\xA0\x1B\x03\x16a%r\x85\x84a3\xDDV[\x94P[`\0\x84`\x01`\x01`\xA0\x1B\x03\x16c\xF2\xB4\xE6\x17`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a&CW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a&g\x91\x90aJYV[\x90Pa'\x1E\x81`\x01`\x01`\xA0\x1B\x03\x16\x83`\x01`\x01`\xA0\x1B\x03\x16c\xF2\xB4\xE6\x17`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a&\xB4W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a&\xD8\x91\x90aJYV[`\x01`\x01`\xA0\x1B\x03\x16\x14`@Q\x80`@\x01`@R\x80`\t\x81R` \x01\x7FPORTAL-30\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RP\x88a3\0V[\x95Pa'\xD5\x85`\x01`\x01`\xA0\x1B\x03\x16\x83`\x01`\x01`\xA0\x1B\x03\x16c3\xD7\xE2\xBD`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a'kW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a'\x8F\x91\x90aJYV[`\x01`\x01`\xA0\x1B\x03\x16\x14`@Q\x80`@\x01`@R\x80`\t\x81R` \x01\x7FPORTAL-40\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RP\x88a3\0V[\x95Pa(\x8Ea\xDE\xAD`\x01`\x01`\xA0\x1B\x03\x16\x83`\x01`\x01`\xA0\x1B\x03\x16c\x9B\xF6-\x82`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a($W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a(H\x91\x90aJYV[`\x01`\x01`\xA0\x1B\x03\x16\x14`@Q\x80`@\x01`@R\x80`\t\x81R` \x01\x7FPORTAL-80\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RP\x88a3\0V[\x95Pa\x15\xE6\x84`\x01`\x01`\xA0\x1B\x03\x16a(\xA6\x84a4dV[`\x01`\x01`\xA0\x1B\x03\x16\x14`@Q\x80`@\x01`@R\x80`\t\x81R` \x01\x7FPORTAL-90\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RP\x88a3\0V[```\0a(\xF9\x83a3LV[\x90P`\0\x85`\x01`\x01`\xA0\x1B\x03\x16c\xF2\xB4\xE6\x17`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a);W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a)_\x91\x90aJYV[\x90Pa)\xC1a)\x85a)p\x83a3uV[`\x0CTa\t\x9D\x90`\x01`\x01`\xA0\x1B\x03\x16a3uV[`@Q\x80`@\x01`@R\x80`\x05\x81R` \x01\x7FDF-10\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\x81RP\x89a3\0V[`\x0CT\x90\x97Pa*$\x90`\x01`\x01`\xA0\x1B\x03\x16a)\xDE\x87\x84a3\xDDV[`\x01`\x01`\xA0\x1B\x03\x16\x14`@Q\x80`@\x01`@R\x80`\x05\x81R` \x01\x7FDF-20\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\x81RP\x89a3\0V[\x96Pa*\xDB\x82`\x01`\x01`\xA0\x1B\x03\x16\x82`\x01`\x01`\xA0\x1B\x03\x16c\x8D\xA5\xCB[`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a*qW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a*\x95\x91\x90aJYV[`\x01`\x01`\xA0\x1B\x03\x16\x14`@Q\x80`@\x01`@R\x80`\x05\x81R` \x01\x7FDF-30\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\x81RP\x89a3\0V[\x96Pa\x07\x9A\x85`\x01`\x01`\xA0\x1B\x03\x16a*\xF3\x83a4dV[`\x01`\x01`\xA0\x1B\x03\x16\x14`@Q\x80`@\x01`@R\x80`\x05\x81R` \x01\x7FDF-40\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\x81RP\x89a3\0V[`@\x80Q\x80\x82\x01\x82R`\x04\x81R\x7FPDDG\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` \x80\x83\x01\x91\x90\x91R\x82Qa\x01\xC0\x81\x01\x84R`\0\x80\x82R\x91\x81\x01\x82\x90R\x92\x83\x01\x81\x90R``\x80\x84\x01\x82\x90R`\x80\x84\x01\x82\x90R`\xA0\x84\x01\x82\x90R`\xC0\x84\x01\x82\x90R`\xE0\x84\x01\x82\x90Ra\x01\0\x84\x01\x82\x90Ra\x01 \x84\x01\x82\x90Ra\x01@\x84\x01\x82\x90Ra\x01`\x84\x01\x82\x90Ra\x01\x80\x84\x01\x82\x90Ra\x01\xA0\x84\x01\x82\x90R\x92`\x01\x92\x91a+\xEF\x8C\x85\x8D\x86a4\xDCV[\x90\x9DP\x90\x92P\x90P\x80\x15a,\tW\x8B\x94PPPPPa\x07\x9AV[a,i`@Q\x80a\x01 \x01`@R\x80\x8E\x81R` \x01\x8D`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x01\x84\x81R` \x01\x8C\x81R` \x01\x8B\x81R` \x01\x8A`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x01\x86c\xFF\xFF\xFF\xFF\x16\x81R` \x01\x88\x81R` \x01\x85\x81RPa7pV[\x9BP`\0a,v\x87a:\xFEV[\x90Pa,\xD1\x81`\x01`\x01`\xA0\x1B\x03\x16\x84a\x01\x80\x01Q`\x01`\x01`\xA0\x1B\x03\x16\x14`@Q\x80`@\x01`@R\x80`\x08\x81R` \x01\x7FPDDG-130\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RP\x8Fa3\0V[\x9CPa-,\x88`\x01`\x01`\xA0\x1B\x03\x16\x84a\x01\xA0\x01Q`\x01`\x01`\xA0\x1B\x03\x16\x14`@Q\x80`@\x01`@R\x80`\x08\x81R` \x01\x7FPDDG-140\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RP\x8Fa3\0V[\x9D\x9CPPPPPPPPPPPPPV[`@\x80Qa\x01\xC0\x81\x01\x82R`\0\x80\x82R` \x82\x01\x81\x90R\x91\x81\x01\x82\x90R``\x80\x82\x01\x83\x90R`\x80\x82\x01\x83\x90R`\xA0\x82\x01\x83\x90R`\xC0\x82\x01\x83\x90R`\xE0\x82\x01\x83\x90Ra\x01\0\x82\x01\x83\x90Ra\x01 \x82\x01\x83\x90Ra\x01@\x82\x01\x83\x90Ra\x01`\x82\x01\x83\x90Ra\x01\x80\x82\x01\x83\x90Ra\x01\xA0\x82\x01\x83\x90R\x91a-\xBB\x8B\x8A\x8C\x87a4\xDCV[\x90\x9CP\x90\x92P\x90P\x80\x15a-\xD3W\x8A\x92PPPa.;V[a.3`@Q\x80a\x01 \x01`@R\x80\x8D\x81R` \x01\x8C`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x01\x84\x81R` \x01\x8A\x81R` \x01\x89\x81R` \x01\x88`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x01\x8Bc\xFF\xFF\xFF\xFF\x16\x81R` \x01\x87\x81R` \x01\x86\x81RPa7pV[\x9AP\x8A\x92PPP[\x98\x97PPPPPPPPV[```\0\x83`\x01`\x01`\xA0\x1B\x03\x16c\nI\xCB\x03`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a.\x89W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a.\xAD\x91\x90aJYV[\x90P`\0\x81`\x01`\x01`\xA0\x1B\x03\x16c\xB6\x82\xC4D`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a.\xEFW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a/\x13\x91\x90aJYV[`@Q\x7FG\xAF&{\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\x7FETH_LOCKBOX\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x04\x82\x01R\x90\x91P`\x01`\x01`\xA0\x1B\x03\x86\x16\x90cG\xAF&{\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a/\x93W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a/\xB7\x91\x90aK9V[a/\xC5W\x85\x92PPPa\x04tV[a0%a/\xE9a/\xD4\x83a3uV[`\x07Ta\t\x9D\x90`\x01`\x01`\xA0\x1B\x03\x16a3uV[`@Q\x80`@\x01`@R\x80`\n\x81R` \x01\x7FLOCKBOX-10\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RP\x88a3\0V[`\x07T\x90\x96Pa0\x88\x90`\x01`\x01`\xA0\x1B\x03\x16a0B\x86\x84a3\xDDV[`\x01`\x01`\xA0\x1B\x03\x16\x14`@Q\x80`@\x01`@R\x80`\n\x81R` \x01\x7FLOCKBOX-20\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RP\x88a3\0V[\x95Pa0\xE6\x84`\x01`\x01`\xA0\x1B\x03\x16a0\xA0\x83a4dV[`\x01`\x01`\xA0\x1B\x03\x16\x14`@Q\x80`@\x01`@R\x80`\n\x81R` \x01\x7FLOCKBOX-30\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RP\x88a3\0V[\x95Pa1\x9D\x85`\x01`\x01`\xA0\x1B\x03\x16\x82`\x01`\x01`\xA0\x1B\x03\x16c3\xD7\xE2\xBD`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a13W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a1W\x91\x90aJYV[`\x01`\x01`\xA0\x1B\x03\x16\x14`@Q\x80`@\x01`@R\x80`\n\x81R` \x01\x7FLOCKBOX-40\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RP\x88a3\0V[`@Q\x7F\x0F\xD1\x10w\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`\x01`\x01`\xA0\x1B\x03\x84\x81\x16`\x04\x83\x01R\x91\x97Pa\x15\xE6\x91\x83\x16\x90c\x0F\xD1\x10w\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a2\x03W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a2'\x91\x90aK9V[`@Q\x80`@\x01`@R\x80`\n\x81R` \x01\x7FLOCKBOX-50\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RP\x88a3\0V[\x80Q``\x90\x81\x90`\x01`\x01`\xA0\x1B\x03\x16\x15a2\x9BW\x80`@Q` \x01a2\x89\x91\x90aL\xB9V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x90P[` \x83\x01Q`\x01`\x01`\xA0\x1B\x03\x16\x15a\x08\xA4W\x80Q\x15a2\xD8W\x80`@Q` \x01a2\xC6\x91\x90aL\xFAV[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x90P[\x80`@Q` \x01a2\xE9\x91\x90aM;V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x90P\x92\x91PPV[``\x83\x15a3\x0FWP\x80a\x04tV[\x81Q`\0\x03a3 W\x82\x91Pa3EV[\x81\x83`@Q` \x01a33\x92\x91\x90aJvV[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x91P[P\x92\x91PPV[\x80Q`\0\x90`\x01`\x01`\xA0\x1B\x03\x16\x15a3dWPQ\x90V[PP`\x01T`\x01`\x01`\xA0\x1B\x03\x16\x90V[``\x81`\x01`\x01`\xA0\x1B\x03\x16cT\xFDMP`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01`\0`@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a3\xB5W=`\0\x80>=`\0\xFD[PPPP`@Q=`\0\x82>`\x1F=\x90\x81\x01`\x1F\x19\x16\x82\x01`@Ra\x08\xA4\x91\x90\x81\x01\x90aM\xF0V[`@Q\x7F N\x1Cz\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`\x01`\x01`\xA0\x1B\x03\x82\x81\x16`\x04\x83\x01R`\0\x91\x90\x84\x16\x90c N\x1Cz\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a4@W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x04t\x91\x90aJYV[`\0\x81`\x01`\x01`\xA0\x1B\x03\x16c>G\x15\x8C`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a4\xA4W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x08\xA4\x91\x90aJYV[`\0\x81\x15\x80\x15\x90a\x04tWPP\x90\x81\x16\x14\x90V[`@\x80Qa\x01\xC0\x81\x01\x82R`\0\x80\x82R` \x82\x01\x81\x90R\x91\x81\x01\x82\x90R``\x81\x01\x82\x90R`\x80\x81\x01\x82\x90R`\xA0\x81\x01\x82\x90R`\xC0\x81\x01\x82\x90R`\xE0\x81\x01\x82\x90Ra\x01\0\x81\x01\x82\x90Ra\x01 \x81\x01\x82\x90Ra\x01@\x81\x01\x82\x90Ra\x01`\x81\x01\x82\x90Ra\x01\x80\x81\x01\x82\x90Ra\x01\xA0\x81\x01\x82\x90R\x90\x85\x90\x80`\x01c\xFF\xFF\xFF\xFF\x88\x16c\xFF\xFF\xFF\xFF\x16\x14\x90P`\0\x86`\x01`\x01`\xA0\x1B\x03\x16c\xF2\xB4\xE6\x17`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a5\xA2W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a5\xC6\x91\x90aJYV[`@Q\x7F\x1Bh[\x9E\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\x81Rc\xFF\xFF\xFF\xFF\x8A\x16`\x04\x82\x01R\x90\x91P`\0\x90`\x01`\x01`\xA0\x1B\x03\x83\x16\x90c\x1Bh[\x9E\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a6/W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a6S\x91\x90aJYV[\x90P`\x01`\x01`\xA0\x1B\x03\x81\x16a6\x9CWa6\x8E`\0\x88`@Q` \x01a6y\x91\x90aN9V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x87a3\0V[\x94P`\x01\x93PPPPa7fV[`@Q\x7Ft\xCC\x86\xAC\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\x81Rc\xFF\xFF\xFF\xFF\x8A\x16`\x04\x82\x01R`\0\x90`\x01`\x01`\xA0\x1B\x03\x84\x16\x90ct\xCC\x86\xAC\x90`$\x01`\0`@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a7\x02W=`\0\x80>=`\0\xFD[PPPP`@Q=`\0\x82>`\x1F=\x90\x81\x01`\x1F\x19\x16\x82\x01`@Ra7*\x91\x90\x81\x01\x90aM\xF0V[\x90P`\0a7:\x87\x83\x87\x8Ca;-V[\x90\x97P\x90P\x80\x15a7SW`\x01\x95PPPPPPa7fV[a7^\x83\x83\x8Da;\xB5V[\x97PPPPPP[\x94P\x94P\x94\x91PPV[\x80Qa\x01\0\x82\x01Q`@\x80\x84\x01Qa\x01 \x81\x01Q\x82Q\x7F\xD8>\xF2g\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\x83Q\x92\x93`\0\x93`\x01`\x01`\xA0\x1B\x03\x90\x93\x16\x92c\xD8>\xF2g\x92`\x04\x80\x82\x01\x93\x92\x91\x82\x90\x03\x01\x81\x86Z\xFA\x15\x80\x15a7\xE3W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a8\x07\x91\x90aNzV[P\x90P`\0\x85` \x01Q`\x01`\x01`\xA0\x1B\x03\x16c\xF2\xB4\xE6\x17`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a8NW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a8r\x91\x90aJYV[\x90Pa8\xD9a8\xC8a8\x87\x85`\0\x01Qa3uV[`\xC0\x89\x01Qc\xFF\xFF\xFF\xFF\x16`\x01\x14a8\xB3W`\x10Ta8\xAE\x90`\x01`\x01`\xA0\x1B\x03\x16a3uV[a\t\x9DV[`\x11Ta\t\x9D\x90`\x01`\x01`\xA0\x1B\x03\x16a3uV[\x85`@Q` \x01a6y\x91\x90aN\x9EV[\x94Pa9\x06\x86`\xC0\x01Qc\xFF\xFF\xFF\xFF\x16\x84`\xA0\x01Qc\xFF\xFF\xFF\xFF\x16\x14\x85`@Q` \x01a6y\x91\x90aN\xDFV[\x94Pa9'\x86``\x01Q\x84`\xE0\x01Q\x14\x85`@Q` \x01a6y\x91\x90aO V[\x94Pa9I\x86`\x80\x01Q\x84a\x01`\x01Q\x14\x85`@Q` \x01a6y\x91\x90aOaV[\x94Pa9g\x83`\xC0\x01Q`\0\x14\x85`@Q` \x01a6y\x91\x90aO\xA2V[\x94Pa9\x90\x83`\x80\x01Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a*0\x14\x85`@Q` \x01a6y\x91\x90aO\xE3V[\x94Pa9\xAE\x83`@\x01Q`\x1E\x14\x85`@Q` \x01a6y\x91\x90aP$V[\x94Pa9\xCC\x83` \x01Q`I\x14\x85`@Q` \x01a6y\x91\x90aPeV[\x94Pa9\xF6\x83``\x01Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16b\x04\x9D@\x14\x85`@Q` \x01a6y\x91\x90aP\xA6V[\x94Pa:\x13`\0\x80\x1B\x83\x14\x15\x85`@Q` \x01a6y\x91\x90aP\xE7V[\x94Pa:4\x85\x87` \x01Q\x85a\x01@\x01Q\x89`\xA0\x01Q\x8A`\xE0\x01Q\x89a>\xEAV[\x94Pa:Q\x85\x87` \x01Q\x83\x86a\x01 \x01Q\x8A`\xA0\x01Q\x89aAdV[\x94Pa:c\x85\x84a\x01\0\x01Q\x86aC\x99V[`\x0FTa\x01\0\x85\x01Q\x91\x96P`\x01`\x01`\xA0\x1B\x03\x90\x81\x16\x91\x16\x03a:\xF5Wa:\xF2\x85\x84a\x01\0\x01Q`\x01`\x01`\xA0\x1B\x03\x16c}\xC0\xD1\xD0`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a:\xC8W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a:\xEC\x91\x90aJYV[\x86aD\xAEV[\x94P[PPPP\x91\x90PV[` \x81\x01Q`\0\x90`\x01`\x01`\xA0\x1B\x03\x16\x15a;\x1CWP` \x01Q\x90V[PP`\x02T`\x01`\x01`\xA0\x1B\x03\x16\x90V[```\0\x82`@Q` \x01a;B\x91\x90aQ(V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x92P\x83\x15a;\x9FW`\0a;f\x86Q`\xA4\x14\x90V[\x90Pa;\x92\x81\x85`@Q` \x01a;}\x91\x90aN9V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x89a3\0V[\x96P\x86\x92P\x15\x90Pa;\xACV[`\0a;f\x86Q`|\x14\x90V[\x94P\x94\x92PPPV[`@\x80Qa\x01\xC0\x81\x01\x82R`\0\x80\x82R` \x82\x01\x81\x90R\x91\x81\x01\x82\x90R``\x81\x01\x82\x90R`\x80\x81\x01\x82\x90R`\xA0\x81\x01\x82\x90R`\xC0\x81\x01\x82\x90R`\xE0\x81\x01\x82\x90Ra\x01\0\x81\x01\x82\x90Ra\x01 \x81\x01\x82\x90Ra\x01@\x81\x01\x82\x90Ra\x01`\x81\x01\x82\x90Ra\x01\x80\x81\x01\x82\x90Ra\x01\xA0\x81\x01\x82\x90R\x90a=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a<\xAE\x91\x90aK\x89V[\x81R` \x01\x86`\x01`\x01`\xA0\x1B\x03\x16c\xEC^c\x08`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a<\xF1W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a=\x15\x91\x90aK\x89V[\x81R` \x01\x86`\x01`\x01`\xA0\x1B\x03\x16c\xDA\xBD9m`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a=XW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a=|\x91\x90aKlV[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81R` \x01\x86`\x01`\x01`\xA0\x1B\x03\x16ckg\x16\xC0`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a=\xC9W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a=\xED\x91\x90aKlV[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81R` \x01\x84c\xFF\xFF\xFF\xFF\x16\x81R` \x01\x86`\x01`\x01`\xA0\x1B\x03\x16c\x99s^2`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a>FW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a>j\x91\x90aK\x89V[\x81R` \x01\x82`\0\x01Q\x81R` \x01\x82` \x01Q`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x01\x82`@\x01Q`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x01\x82``\x01Q`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x01\x82`\x80\x01Q\x81R` \x01\x82`\xC0\x01Q`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x01\x82`\xA0\x01Q`\x01`\x01`\xA0\x1B\x03\x16\x81RP\x91PP\x93\x92PPPV[``\x81`@Q` \x01a>\xFD\x91\x90aQiV[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x91Pa?Ca?2a?\x1D\x87a3uV[`\x0ETa\t\x9D\x90`\x01`\x01`\xA0\x1B\x03\x16a3uV[\x83`@Q` \x01a;}\x91\x90aN9V[`\x0ET\x90\x97Pa?{\x90`\x01`\x01`\xA0\x1B\x03\x16a?`\x86\x88a3\xDDV[`\x01`\x01`\xA0\x1B\x03\x16\x14\x83`@Q` \x01a;}\x91\x90aN\x9EV[\x96P`\0a?\x88\x84a3LV[\x90Pa@)\x81`\x01`\x01`\xA0\x1B\x03\x16\x87`\x01`\x01`\xA0\x1B\x03\x16c\xDA\xD5D\xE0`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a?\xD5W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a?\xF9\x91\x90aJYV[`\x01`\x01`\xA0\x1B\x03\x16\x14\x84`@Q` \x01a@\x14\x91\x90aN\xDFV[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x8Aa3\0V[\x97Pa@\xA5`\x03T\x87`\x01`\x01`\xA0\x1B\x03\x16cjB\xB8\xF8`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a@oW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a@\x93\x91\x90aK\x89V[\x14\x84`@Q` \x01a@\x14\x91\x90aO V[\x97PaA1\x87`\x01`\x01`\xA0\x1B\x03\x16\x87`\x01`\x01`\xA0\x1B\x03\x16c3\xD7\xE2\xBD`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a@\xF2W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90aA\x16\x91\x90aJYV[`\x01`\x01`\xA0\x1B\x03\x16\x14\x84`@Q` \x01a@\x14\x91\x90aQ\xAAV[\x97Pa.;\x85`\x01`\x01`\xA0\x1B\x03\x16aAI\x88a4dV[`\x01`\x01`\xA0\x1B\x03\x16\x14\x84`@Q` \x01a@\x14\x91\x90aOaV[``\x81`@Q` \x01aAw\x91\x90aQ\xEBV[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x91PaA\xACa?2aA\x97\x86a3uV[`\rTa\t\x9D\x90`\x01`\x01`\xA0\x1B\x03\x16a3uV[`\rT\x90\x97PaA\xC9\x90`\x01`\x01`\xA0\x1B\x03\x16a?`\x85\x87a3\xDDV[\x96PaBU\x85`\x01`\x01`\xA0\x1B\x03\x16\x85`\x01`\x01`\xA0\x1B\x03\x16c\xF2\xB4\xE6\x17`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15aB\x16W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90aB:\x91\x90aJYV[`\x01`\x01`\xA0\x1B\x03\x16\x14\x83`@Q` \x01a;}\x91\x90aN\xDFV[\x96PaB\xE1\x86`\x01`\x01`\xA0\x1B\x03\x16\x85`\x01`\x01`\xA0\x1B\x03\x16c3\xD7\xE2\xBD`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15aB\xA2W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90aB\xC6\x91\x90aJYV[`\x01`\x01`\xA0\x1B\x03\x16\x14\x83`@Q` \x01a;}\x91\x90aO V[\x96PaC\x14\x83`\x01`\x01`\xA0\x1B\x03\x16aB\xF9\x86a4dV[`\x01`\x01`\xA0\x1B\x03\x16\x14\x83`@Q` \x01a;}\x91\x90aQ\xAAV[\x96Pa\x07\x9A`\0\x85`\x01`\x01`\xA0\x1B\x03\x16c@\x86\xD1\x83`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15aCYW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90aC}\x91\x90aKlV[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x11\x83`@Q` \x01a;}\x91\x90aOaV[``\x81`@Q` \x01aC\xAC\x91\x90aR,V[`@\x80Q`\x1F\x19\x81\x84\x03\x01\x81R\x90\x82\x90R`\x0FT\x90\x93PaC\xFC\x91`\x01`\x01`\xA0\x1B\x03\x86\x81\x16\x92\x16\x91\x90\x91\x14\x90aC\xE7\x90\x85\x90` \x01aN9V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x86a3\0V[\x93PaD3aD\"aD\r\x85a3uV[`\x0FTa\t\x9D\x90`\x01`\x01`\xA0\x1B\x03\x16a3uV[\x83`@Q` \x01aC\xE7\x91\x90aN\x9EV[\x93Pa\x04\xF0\x83`\x01`\x01`\xA0\x1B\x03\x16c\x12\x19\xA4\xE4`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15aDvW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90aD\x9A\x91\x90aK\x89V[`\x08\x14\x83`@Q` \x01aC\xE7\x91\x90aN\xDFV[``\x81`@Q` \x01aD\xC1\x91\x90aRmV[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x91PaE+aE\x1AaD\xE1\x85a3uV[`@\x80Q\x80\x82\x01\x90\x91R`\x05\x81R\x7F1.1.4\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` \x82\x01Ra\t\x9DV[\x83`@Q` \x01aC\xE7\x91\x90aN9V[\x93PaE\xA8\x83`\x01`\x01`\xA0\x1B\x03\x16c\xF3\xF4\x80\xD9`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15aEnW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90aE\x92\x91\x90aK\x89V[b\x01Q\x80\x14\x83`@Q` \x01aC\xE7\x91\x90aN\x9EV[\x93Pa\x04\xF0\x83`\x01`\x01`\xA0\x1B\x03\x16c\xDD$\xF9\xBF`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15aE\xEBW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90aF\x0F\x91\x90aK\x89V[b\x01\xEC0\x14\x83`@Q` \x01aC\xE7\x91\x90aN\xDFV[`@\x80Q`\xE0\x81\x01\x82R`\0\x80\x82R` \x82\x01\x81\x90R\x91\x81\x01\x82\x90R``\x81\x01\x82\x90R`\x80\x81\x01\x82\x90R`\xA0\x81\x01\x82\x90R`\xC0\x81\x01\x91\x90\x91R\x81Q`\xA4\x81\x14\x80\x15\x90aFrWP`|\x81\x14\x15[\x15aF\xA9W`@Q\x7F\xBF\xF6\xE4\x16\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\x01`@Q\x80\x91\x03\x90\xFD[` \x83\x01Q`@\x84\x01Q`T\x85\x01Q`h\x86\x01Q`|\x87\x01Q``\x93\x84\x1C\x93\x92\x83\x1C\x92\x91\x90\x91\x1C\x90`\0\x80\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\\\x88\x01aG\x0FWPP`\x9C\x88\x01Q`\xB0\x89\x01Q``\x91\x82\x1C\x91\x1C[`@\x80Q`\xE0\x81\x01\x82R\x97\x88R`\x01`\x01`\xA0\x1B\x03\x96\x87\x16` \x89\x01R\x94\x86\x16\x94\x87\x01\x94\x90\x94R\x91\x84\x16``\x86\x01R`\x80\x85\x01R\x82\x16`\xA0\x84\x01R\x16`\xC0\x82\x01R\x93\x92PPPV[\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[`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14aG\x9BW`\0\x80\xFD[PV[`\0`\x80\x82\x84\x03\x12\x15aG\xB0W`\0\x80\xFD[`@Q`\x80\x81\x01\x81\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17\x15aG\xD3WaG\xD3aGWV[`@R\x90P\x80\x825aG\xE4\x81aG\x86V[\x80\x82RP` \x83\x015` \x82\x01R`@\x83\x015`@\x82\x01R``\x83\x015aH\n\x81aG\x86V[``\x91\x90\x91\x01R\x92\x91PPV[\x80\x15\x15\x81\x14aG\x9BW`\0\x80\xFD[`\0`@\x82\x84\x03\x12\x15aH7W`\0\x80\xFD[`@Q`@\x81\x01\x81\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17\x15aHZWaHZaGWV[`@R\x90P\x80\x825aHk\x81aG\x86V[\x81R` \x83\x015aH{\x81aG\x86V[` \x91\x90\x91\x01R\x92\x91PPV[`\0\x80`\0`\xE0\x84\x86\x03\x12\x15aH\x9DW`\0\x80\xFD[aH\xA7\x85\x85aG\x9EV[\x92P`\x80\x84\x015aH\xB7\x81aH\x17V[\x91PaH\xC6\x85`\xA0\x86\x01aH%V[\x90P\x92P\x92P\x92V[`\0[\x83\x81\x10\x15aH\xEAW\x81\x81\x01Q\x83\x82\x01R` \x01aH\xD2V[\x83\x81\x11\x15aH\xF9W`\0\x84\x84\x01R[PPPPV[` \x81R`\0\x82Q\x80` \x84\x01RaI\x1E\x81`@\x85\x01` \x87\x01aH\xCFV[`\x1F\x01`\x1F\x19\x16\x91\x90\x91\x01`@\x01\x92\x91PPV[`\0\x80`\xA0\x83\x85\x03\x12\x15aIEW`\0\x80\xFD[aIO\x84\x84aG\x9EV[\x91P`\x80\x83\x015aI_\x81aH\x17V[\x80\x91PP\x92P\x92\x90PV[`\0`\xA0\x82\x84\x03\x12\x15aI|W`\0\x80\xFD[`@Q`\xA0\x81\x01\x81\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17\x15aI\x9FWaI\x9FaGWV[`@R\x90P\x80\x825aI\xB0\x81aG\x86V[\x80\x82RP` \x83\x015` \x82\x01R`@\x83\x015`@\x82\x01R``\x83\x015``\x82\x01R`\x80\x83\x015aI\xE0\x81aG\x86V[`\x80\x91\x90\x91\x01R\x92\x91PPV[`\0\x80`\0a\x01\0\x84\x86\x03\x12\x15aJ\x03W`\0\x80\xFD[aJ\r\x85\x85aIjV[\x92P`\xA0\x84\x015aJ\x1D\x81aH\x17V[\x91PaH\xC6\x85`\xC0\x86\x01aH%V[`\0\x80`\xC0\x83\x85\x03\x12\x15aJ?W`\0\x80\xFD[aJI\x84\x84aIjV[\x91P`\xA0\x83\x015aI_\x81aH\x17V[`\0` \x82\x84\x03\x12\x15aJkW`\0\x80\xFD[\x81Qa\x04t\x81aG\x86V[`\0\x83QaJ\x88\x81\x84` \x88\x01aH\xCFV[\x7F,\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x83\x01\x90\x81R\x83QaJ\xC2\x81`\x01\x84\x01` \x88\x01aH\xCFV[\x01`\x01\x01\x94\x93PPPPV[\x7FOPContractsManagerStandardValida\x81R\x7Ftor: \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` \x82\x01R`\0\x82QaK,\x81`%\x85\x01` \x87\x01aH\xCFV[\x91\x90\x91\x01`%\x01\x92\x91PPV[`\0` \x82\x84\x03\x12\x15aKKW`\0\x80\xFD[\x81Qa\x04t\x81aH\x17V[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14aG\x9BW`\0\x80\xFD[`\0` \x82\x84\x03\x12\x15aK~W`\0\x80\xFD[\x81Qa\x04t\x81aKVV[`\0` \x82\x84\x03\x12\x15aK\x9BW`\0\x80\xFD[PQ\x91\x90PV[\x80Qc\xFF\xFF\xFF\xFF\x81\x16\x81\x14aK\xB6W`\0\x80\xFD[\x91\x90PV[\x80Q`\xFF\x81\x16\x81\x14aK\xB6W`\0\x80\xFD[`\0`\xC0\x82\x84\x03\x12\x15aK\xDEW`\0\x80\xFD[`@Q`\xC0\x81\x01\x81\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17\x15aL\x01WaL\x01aGWV[`@RaL\r\x83aK\xA2V[\x81RaL\x1B` \x84\x01aK\xBBV[` \x82\x01RaL,`@\x84\x01aK\xBBV[`@\x82\x01RaL=``\x84\x01aK\xA2V[``\x82\x01RaLN`\x80\x84\x01aK\xA2V[`\x80\x82\x01R`\xA0\x83\x01Qo\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14aLvW`\0\x80\xFD[`\xA0\x82\x01R\x93\x92PPPV[`\0` \x82\x84\x03\x12\x15aL\x94W`\0\x80\xFD[a\x04t\x82aK\xA2V[`\0\x82QaL\xAF\x81\x84` \x87\x01aH\xCFV[\x91\x90\x91\x01\x92\x91PPV[`\0\x82QaL\xCB\x81\x84` \x87\x01aH\xCFV[\x7FOVERRIDES-L1PAOMULTISIG\0\0\0\0\0\0\0\0\0\x92\x01\x91\x82RP`\x17\x01\x91\x90PV[`\0\x82QaM\x0C\x81\x84` \x87\x01aH\xCFV[\x7F,\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x92\x01\x91\x82RP`\x01\x01\x91\x90PV[`\0\x82QaMM\x81\x84` \x87\x01aH\xCFV[\x7FOVERRIDES-CHALLENGER\0\0\0\0\0\0\0\0\0\0\0\0\x92\x01\x91\x82RP`\x14\x01\x91\x90PV[`\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x84\x11\x15aM\x97WaM\x97aGWV[`@Q`\x1F\x85\x01`\x1F\x19\x90\x81\x16`?\x01\x16\x81\x01\x90\x82\x82\x11\x81\x83\x10\x17\x15aM\xBFWaM\xBFaGWV[\x81`@R\x80\x93P\x85\x81R\x86\x86\x86\x01\x11\x15aM\xD8W`\0\x80\xFD[aM\xE6\x86` \x83\x01\x87aH\xCFV[PPP\x93\x92PPPV[`\0` \x82\x84\x03\x12\x15aN\x02W`\0\x80\xFD[\x81Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15aN\x19W`\0\x80\xFD[\x82\x01`\x1F\x81\x01\x84\x13aN*W`\0\x80\xFD[a\x04\xF0\x84\x82Q` \x84\x01aM|V[`\0\x82QaNK\x81\x84` \x87\x01aH\xCFV[\x7F-10\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x92\x01\x91\x82RP`\x03\x01\x91\x90PV[`\0\x80`@\x83\x85\x03\x12\x15aN\x8DW`\0\x80\xFD[PP\x80Q` \x90\x91\x01Q\x90\x92\x90\x91PV[`\0\x82QaN\xB0\x81\x84` \x87\x01aH\xCFV[\x7F-20\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x92\x01\x91\x82RP`\x03\x01\x91\x90PV[`\0\x82QaN\xF1\x81\x84` \x87\x01aH\xCFV[\x7F-30\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x92\x01\x91\x82RP`\x03\x01\x91\x90PV[`\0\x82QaO2\x81\x84` \x87\x01aH\xCFV[\x7F-40\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x92\x01\x91\x82RP`\x03\x01\x91\x90PV[`\0\x82QaOs\x81\x84` \x87\x01aH\xCFV[\x7F-60\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x92\x01\x91\x82RP`\x03\x01\x91\x90PV[`\0\x82QaO\xB4\x81\x84` \x87\x01aH\xCFV[\x7F-70\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x92\x01\x91\x82RP`\x03\x01\x91\x90PV[`\0\x82QaO\xF5\x81\x84` \x87\x01aH\xCFV[\x7F-80\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x92\x01\x91\x82RP`\x03\x01\x91\x90PV[`\0\x82QaP6\x81\x84` \x87\x01aH\xCFV[\x7F-90\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x92\x01\x91\x82RP`\x03\x01\x91\x90PV[`\0\x82QaPw\x81\x84` \x87\x01aH\xCFV[\x7F-100\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\x92\x01\x91\x82RP`\x04\x01\x91\x90PV[`\0\x82QaP\xB8\x81\x84` \x87\x01aH\xCFV[\x7F-110\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\x92\x01\x91\x82RP`\x04\x01\x91\x90PV[`\0\x82QaP\xF9\x81\x84` \x87\x01aH\xCFV[\x7F-120\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\x92\x01\x91\x82RP`\x04\x01\x91\x90PV[`\0\x82QaQ:\x81\x84` \x87\x01aH\xCFV[\x7F-GARGS\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\x92\x01\x91\x82RP`\x06\x01\x91\x90PV[`\0\x82QaQ{\x81\x84` \x87\x01aH\xCFV[\x7F-DWETH\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\x92\x01\x91\x82RP`\x06\x01\x91\x90PV[`\0\x82QaQ\xBC\x81\x84` \x87\x01aH\xCFV[\x7F-50\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x92\x01\x91\x82RP`\x03\x01\x91\x90PV[`\0\x82QaQ\xFD\x81\x84` \x87\x01aH\xCFV[\x7F-ANCHORP\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x92\x01\x91\x82RP`\x08\x01\x91\x90PV[`\0\x82QaR>\x81\x84` \x87\x01aH\xCFV[\x7F-VM\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x92\x01\x91\x82RP`\x03\x01\x91\x90PV[`\0\x82QaR\x7F\x81\x84` \x87\x01aH\xCFV[\x7F-PIMGO\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\x92\x01\x91\x82RP`\x06\x01\x91\x90PV\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x608060405234801561001057600080fd5b50600436106101a35760003560e01c80637d8bd0d8116100ee578063bb98b3f411610097578063dea2198411610071578063dea21984146103ae578063e303272c146103c1578063e3fef4a8146103d4578063f3edcbe1146103e757600080fd5b8063bb98b3f414610375578063bc3f6fd414610388578063c34e047a1461039b57600080fd5b8063a38d5595116100c8578063a38d559514610316578063a4dec37a14610329578063ad7e7e401461033c57600080fd5b80637d8bd0d8146102dd5780638970ac44146102f057806398ccec3e1461030357600080fd5b806354fd4d5011610150578063718394181161012a57806371839418146102ae57806374459cf3146102b75780637b491a98146102ca57600080fd5b806354fd4d501461024c57806358256afb146102885780636c0e21701461029b57600080fd5b806335e80ab31161018157806335e80ab31461021357806341fe538514610226578063534db0e21461023957600080fd5b80630e9d5cb9146101a85780631d8a4e92146101d15780632aecd35c146101e8575b600080fd5b6101bb6101b6366004614888565b6103fa565b6040516101c891906148ff565b60405180910390f35b6101da60125481565b6040519081526020016101c8565b600d546101fb906001600160a01b031681565b6040516001600160a01b0390911681526020016101c8565b6000546101fb906001600160a01b031681565b6101bb610234366004614932565b61047b565b6002546101fb906001600160a01b031681565b6101bb6040518060400160405280600581526020017f322e332e3000000000000000000000000000000000000000000000000000000081525081565b600a546101fb906001600160a01b031681565b6006546101fb906001600160a01b031681565b6101da60035481565b600e546101fb906001600160a01b031681565b6007546101fb906001600160a01b031681565b6004546101fb906001600160a01b031681565b6101bb6102fe3660046149ed565b6104f8565b6011546101fb906001600160a01b031681565b6005546101fb906001600160a01b031681565b6001546101fb906001600160a01b031681565b60408051808201909152600581527f312e312e3400000000000000000000000000000000000000000000000000000060208201526101bb565b600c546101fb906001600160a01b031681565b6008546101fb906001600160a01b031681565b600b546101fb906001600160a01b031681565b6010546101fb906001600160a01b031681565b600f546101fb906001600160a01b031681565b6009546101fb906001600160a01b031681565b6101bb6103f5366004614a2c565b6107a5565b6040805160a0808201835260008083526020808401829052838501829052606084810183905260809485018390528551938401865288516001600160a01b039081168552828a015192850192909252838601839052948801518386015287850151169282019290925290506104708185856104f8565b9150505b9392505050565b6040805160a0808201835260008083526020808401829052838501829052606084810183905260809485018390528551938401865287516001600160a01b0390811685528289015192850192909252838601839052948701518386015286850151169282019290925290506104f081846107a5565b949350505050565b60606000604051806020016040528060008152509050600085600001516001600160a01b0316633e47158c6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610552573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105769190614a59565b9050610581826107da565b915061058e8282866108aa565b915061059f82876000015183610977565b91506105b08287600001518361103c565b91506105c1828760000151836115f0565b91506105d282876000015183611b9a565b91506105e382876000015183611e99565b91506105f482876000015183612443565b915061060682876000015183876128ec565b915061062782876000015188602001518960600151858b608001518a612b39565b915061067b828760000151600089602001518a60600151868a6040518060400160405280600481526020017f504c444700000000000000000000000000000000000000000000000000000000815250612d3d565b91506106cf828760000151600889604001518a60600151868a6040518060400160405280600481526020017f434b444700000000000000000000000000000000000000000000000000000000815250612d3d565b91506106e082876000015183612e47565b915060006106ed85613263565b805190915083901561072c57835115610729578184604051602001610713929190614a76565b604051602081830303815290604052905061072c565b50805b6000845111801561073b575086155b1561079a57806040516020016107519190614ace565b60408051601f19818403018152908290527f08c379a0000000000000000000000000000000000000000000000000000000008252610791916004016148ff565b60405180910390fd5b979650505050505050565b60606104748383604051806040016040528060006001600160a01b0316815260200160006001600160a01b03168152506104f8565b600080546040517f2e48152c00000000000000000000000000000000000000000000000000000000815260048101929092526060916108a4916001600160a01b031690632e48152c90602401602060405180830381865afa158015610843573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108679190614b39565b156040518060400160405280600981526020017f5350524346472d3130000000000000000000000000000000000000000000000081525084613300565b92915050565b606060006108b78361334c565b905061096e816001600160a01b0316856001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610904573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109289190614a59565b6001600160a01b0316146040518060400160405280600981526020017f50524f5859412d3130000000000000000000000000000000000000000000000081525087613300565b95945050505050565b60606109ef6109b361098885613375565b60085461099d906001600160a01b0316613375565b8051602091820120825192909101919091201490565b6040518060400160405280600981526020017f535953434f4e2d3130000000000000000000000000000000000000000000000081525086613300565b9350610aad631dcd650067ffffffffffffffff16846001600160a01b031663f68016b76040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a41573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a659190614b6c565b67ffffffffffffffff1611156040518060400160405280600981526020017f535953434f4e2d3230000000000000000000000000000000000000000000000081525086613300565b9350610b54836001600160a01b031663f45e65d86040518163ffffffff1660e01b8152600401602060405180830381865afa158015610af0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b149190614b89565b600014156040518060400160405280600981526020017f535953434f4e2d3330000000000000000000000000000000000000000000000081525086613300565b600854909450610bb7906001600160a01b0316610b7184866133dd565b6001600160a01b0316146040518060400160405280600981526020017f535953434f4e2d3430000000000000000000000000000000000000000000000081525086613300565b93506000836001600160a01b031663cc731b026040518163ffffffff1660e01b815260040160c060405180830381865afa158015610bf9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c1d9190614bcc565b9050610c6f816000015163ffffffff166301312d00146040518060400160405280600981526020017f535953434f4e2d3530000000000000000000000000000000000000000000000081525087613300565b9450610cbb816020015160ff16600a146040518060400160405280600981526020017f535953434f4e2d3630000000000000000000000000000000000000000000000081525087613300565b9450610d07816040015160ff166008146040518060400160405280600981526020017f535953434f4e2d3730000000000000000000000000000000000000000000000081525087613300565b9450610d58816080015163ffffffff16620f4240146040518060400160405280600981526020017f535953434f4e2d3830000000000000000000000000000000000000000000000081525087613300565b9450610daa816060015163ffffffff16633b9aca00146040518060400160405280600981526020017f535953434f4e2d3930000000000000000000000000000000000000000000000081525087613300565b9450610e166fffffffffffffffffffffffffffffffff80168260a001516fffffffffffffffffffffffffffffffff16146040518060400160405280600a81526020017f535953434f4e2d3130300000000000000000000000000000000000000000000081525087613300565b9450610ec2846001600160a01b0316634d5d9a2a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e59573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e7d9190614c82565b63ffffffff166000146040518060400160405280600a81526020017f535953434f4e2d3131300000000000000000000000000000000000000000000081525087613300565b9450610f72846001600160a01b03166316d3bc7f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f05573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f299190614b6c565b67ffffffffffffffff166000146040518060400160405280600a81526020017f535953434f4e2d3132300000000000000000000000000000000000000000000081525087613300565b945061096e60008054906101000a90046001600160a01b03166001600160a01b0316856001600160a01b03166335e80ab36040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fd2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ff69190614a59565b6001600160a01b0316146040518060400160405280600a81526020017f535953434f4e2d3133300000000000000000000000000000000000000000000081525087613300565b60606000836001600160a01b031663a71198696040518163ffffffff1660e01b8152600401602060405180830381865afa15801561107e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110a29190614a59565b90506111046110c86110b383613375565b600a5461099d906001600160a01b0316613375565b6040518060400160405280600881526020017f4c3178444d2d313000000000000000000000000000000000000000000000000081525087613300565b600a54909550611167906001600160a01b031661112185846133dd565b6001600160a01b0316146040518060400160405280600881526020017f4c3178444d2d323000000000000000000000000000000000000000000000000081525087613300565b94506000846001600160a01b0316630a49cb036040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111cd9190614a59565b90506112987342000000000000000000000000000000000000076001600160a01b0316836001600160a01b0316639fce812c6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561122e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112529190614a59565b6001600160a01b0316146040518060400160405280600881526020017f4c3178444d2d333000000000000000000000000000000000000000000000000081525088613300565b95506113637342000000000000000000000000000000000000076001600160a01b0316836001600160a01b031663db505d806040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061131d9190614a59565b6001600160a01b0316146040518060400160405280600881526020017f4c3178444d2d343000000000000000000000000000000000000000000000000081525088613300565b955061141a816001600160a01b0316836001600160a01b0316630ff754ea6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113d49190614a59565b6001600160a01b0316146040518060400160405280600881526020017f4c3178444d2d353000000000000000000000000000000000000000000000000081525088613300565b95506114d1816001600160a01b0316836001600160a01b0316636425666b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611467573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061148b9190614a59565b6001600160a01b0316146040518060400160405280600881526020017f4c3178444d2d363000000000000000000000000000000000000000000000000081525088613300565b9550611588856001600160a01b0316836001600160a01b03166333d7e2bd6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561151e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115429190614a59565b6001600160a01b0316146040518060400160405280600881526020017f4c3178444d2d373000000000000000000000000000000000000000000000000081525088613300565b95506115e6846001600160a01b03166115a084613464565b6001600160a01b0316146040518060400160405280600881526020017f4c3178444d2d383000000000000000000000000000000000000000000000000081525088613300565b9695505050505050565b60606000836001600160a01b031663078f29cf6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611632573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116569190614a59565b90506116b861167c61166783613375565b600b5461099d906001600160a01b0316613375565b6040518060400160405280600781526020017f4c3153422d31300000000000000000000000000000000000000000000000000081525087613300565b600b5490955061171b906001600160a01b03166116d585846133dd565b6001600160a01b0316146040518060400160405280600781526020017f4c3153422d32300000000000000000000000000000000000000000000000000081525087613300565b94506000846001600160a01b031663a71198696040518163ffffffff1660e01b8152600401602060405180830381865afa15801561175d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117819190614a59565b9050611838816001600160a01b0316836001600160a01b031663927ede2d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117f29190614a59565b6001600160a01b0316146040518060400160405280600781526020017f4c3153422d33300000000000000000000000000000000000000000000000000081525088613300565b95506118ef816001600160a01b0316836001600160a01b0316633cb747bf6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611885573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118a99190614a59565b6001600160a01b0316146040518060400160405280600781526020017f4c3153422d34300000000000000000000000000000000000000000000000000081525088613300565b95506119ba7342000000000000000000000000000000000000106001600160a01b0316836001600160a01b0316637f46ddb26040518163ffffffff1660e01b8152600401602060405180830381865afa158015611950573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119749190614a59565b6001600160a01b0316146040518060400160405280600781526020017f4c3153422d35300000000000000000000000000000000000000000000000000081525088613300565b9550611a857342000000000000000000000000000000000000106001600160a01b0316836001600160a01b031663c89701a26040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3f9190614a59565b6001600160a01b0316146040518060400160405280600781526020017f4c3153422d36300000000000000000000000000000000000000000000000000081525088613300565b9550611b3c856001600160a01b0316836001600160a01b03166333d7e2bd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ad2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611af69190614a59565b6001600160a01b0316146040518060400160405280600781526020017f4c3153422d37300000000000000000000000000000000000000000000000000081525088613300565b95506115e6846001600160a01b0316611b5484613464565b6001600160a01b0316146040518060400160405280600781526020017f4c3153422d38300000000000000000000000000000000000000000000000000081525088613300565b60606000836001600160a01b0316639b7d7f0a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611bdc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c009190614a59565b9050611c62611c26611c1183613375565b60095461099d906001600160a01b0316613375565b6040518060400160405280600a81526020017f4d4552433230462d31300000000000000000000000000000000000000000000081525087613300565b600954909550611cc5906001600160a01b0316611c7f85846133dd565b6001600160a01b0316146040518060400160405280600a81526020017f4d4552433230462d32300000000000000000000000000000000000000000000081525087613300565b94506000846001600160a01b031663078f29cf6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d07573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d2b9190614a59565b9050611de2816001600160a01b0316836001600160a01b031663ee9a31a26040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d78573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d9c9190614a59565b6001600160a01b0316146040518060400160405280600a81526020017f4d4552433230462d33300000000000000000000000000000000000000000000081525088613300565b95506115e6816001600160a01b0316836001600160a01b031663e78cea926040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e2f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e539190614a59565b6001600160a01b0316146040518060400160405280600a81526020017f4d4552433230462d34300000000000000000000000000000000000000000000081525088613300565b60606000836001600160a01b031663c4e8ddfa6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611edb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611eff9190614a59565b9050611f61611f25611f1083613375565b60045461099d906001600160a01b0316613375565b6040518060400160405280600881526020017f4c373231422d313000000000000000000000000000000000000000000000000081525087613300565b600454909550611fc4906001600160a01b0316611f7e85846133dd565b6001600160a01b0316146040518060400160405280600881526020017f4c373231422d323000000000000000000000000000000000000000000000000081525087613300565b94506000846001600160a01b031663a71198696040518163ffffffff1660e01b8152600401602060405180830381865afa158015612006573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061202a9190614a59565b90506120f57342000000000000000000000000000000000000146001600160a01b0316836001600160a01b0316637f46ddb26040518163ffffffff1660e01b8152600401602060405180830381865afa15801561208b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120af9190614a59565b6001600160a01b0316146040518060400160405280600881526020017f4c373231422d333000000000000000000000000000000000000000000000000081525088613300565b95506121c07342000000000000000000000000000000000000146001600160a01b0316836001600160a01b031663c89701a26040518163ffffffff1660e01b8152600401602060405180830381865afa158015612156573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061217a9190614a59565b6001600160a01b0316146040518060400160405280600881526020017f4c373231422d343000000000000000000000000000000000000000000000000081525088613300565b9550612277816001600160a01b0316836001600160a01b031663927ede2d6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561220d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122319190614a59565b6001600160a01b0316146040518060400160405280600881526020017f4c373231422d353000000000000000000000000000000000000000000000000081525088613300565b955061232e816001600160a01b0316836001600160a01b0316633cb747bf6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156122c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122e89190614a59565b6001600160a01b0316146040518060400160405280600881526020017f4c373231422d363000000000000000000000000000000000000000000000000081525088613300565b95506123e5856001600160a01b0316836001600160a01b03166333d7e2bd6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561237b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061239f9190614a59565b6001600160a01b0316146040518060400160405280600881526020017f4c373231422d373000000000000000000000000000000000000000000000000081525088613300565b95506115e6846001600160a01b03166123fd84613464565b6001600160a01b0316146040518060400160405280600881526020017f4c373231422d383000000000000000000000000000000000000000000000000081525088613300565b60606000836001600160a01b0316630a49cb036040518163ffffffff1660e01b8152600401602060405180830381865afa158015612485573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124a99190614a59565b90506124bb601254600160001b6134c8565b156125bf576125556125196124cf83613375565b6006546124e4906001600160a01b0316613375565b6040516020016124f49190614c9d565b6040516020818303038152906040528051602091820120825192909101919091201490565b6040518060400160405280600981526020017f504f5254414c2d3130000000000000000000000000000000000000000000000081525087613300565b6006549095506125b8906001600160a01b031661257285846133dd565b6001600160a01b0316146040518060400160405280600981526020017f504f5254414c2d3230000000000000000000000000000000000000000000000081525087613300565b9450612603565b6125e36125196125ce83613375565b60055461099d906001600160a01b0316613375565b600554909550612600906001600160a01b031661257285846133dd565b94505b6000846001600160a01b031663f2b4e6176040518163ffffffff1660e01b8152600401602060405180830381865afa158015612643573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126679190614a59565b905061271e816001600160a01b0316836001600160a01b031663f2b4e6176040518163ffffffff1660e01b8152600401602060405180830381865afa1580156126b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126d89190614a59565b6001600160a01b0316146040518060400160405280600981526020017f504f5254414c2d3330000000000000000000000000000000000000000000000081525088613300565b95506127d5856001600160a01b0316836001600160a01b03166333d7e2bd6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561276b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061278f9190614a59565b6001600160a01b0316146040518060400160405280600981526020017f504f5254414c2d3430000000000000000000000000000000000000000000000081525088613300565b955061288e61dead6001600160a01b0316836001600160a01b0316639bf62d826040518163ffffffff1660e01b8152600401602060405180830381865afa158015612824573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128489190614a59565b6001600160a01b0316146040518060400160405280600981526020017f504f5254414c2d3830000000000000000000000000000000000000000000000081525088613300565b95506115e6846001600160a01b03166128a684613464565b6001600160a01b0316146040518060400160405280600981526020017f504f5254414c2d3930000000000000000000000000000000000000000000000081525088613300565b606060006128f98361334c565b90506000856001600160a01b031663f2b4e6176040518163ffffffff1660e01b8152600401602060405180830381865afa15801561293b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061295f9190614a59565b90506129c161298561297083613375565b600c5461099d906001600160a01b0316613375565b6040518060400160405280600581526020017f44462d313000000000000000000000000000000000000000000000000000000081525089613300565b600c54909750612a24906001600160a01b03166129de87846133dd565b6001600160a01b0316146040518060400160405280600581526020017f44462d323000000000000000000000000000000000000000000000000000000081525089613300565b9650612adb826001600160a01b0316826001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612a71573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a959190614a59565b6001600160a01b0316146040518060400160405280600581526020017f44462d333000000000000000000000000000000000000000000000000000000081525089613300565b965061079a856001600160a01b0316612af383613464565b6001600160a01b0316146040518060400160405280600581526020017f44462d343000000000000000000000000000000000000000000000000000000081525089613300565b604080518082018252600481527f504444470000000000000000000000000000000000000000000000000000000060208083019190915282516101c081018452600080825291810182905292830181905260608084018290526080840182905260a0840182905260c0840182905260e08401829052610100840182905261012084018290526101408401829052610160840182905261018084018290526101a084018290529260019291612bef8c858d866134dc565b909d5090925090508015612c09578b94505050505061079a565b612c696040518061012001604052808e81526020018d6001600160a01b031681526020018481526020018c81526020018b81526020018a6001600160a01b031681526020018663ffffffff16815260200188815260200185815250613770565b9b506000612c7687613afe565b9050612cd1816001600160a01b03168461018001516001600160a01b0316146040518060400160405280600881526020017f504444472d3133300000000000000000000000000000000000000000000000008152508f613300565b9c50612d2c886001600160a01b0316846101a001516001600160a01b0316146040518060400160405280600881526020017f504444472d3134300000000000000000000000000000000000000000000000008152508f613300565b9d9c50505050505050505050505050565b604080516101c08101825260008082526020820181905291810182905260608082018390526080820183905260a0820183905260c0820183905260e08201839052610100820183905261012082018390526101408201839052610160820183905261018082018390526101a0820183905291612dbb8b8a8c876134dc565b909c5090925090508015612dd3578a92505050612e3b565b612e336040518061012001604052808d81526020018c6001600160a01b031681526020018481526020018a8152602001898152602001886001600160a01b031681526020018b63ffffffff16815260200187815260200186815250613770565b9a508a925050505b98975050505050505050565b60606000836001600160a01b0316630a49cb036040518163ffffffff1660e01b8152600401602060405180830381865afa158015612e89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ead9190614a59565b90506000816001600160a01b031663b682c4446040518163ffffffff1660e01b8152600401602060405180830381865afa158015612eef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f139190614a59565b6040517f47af267b0000000000000000000000000000000000000000000000000000000081527f4554485f4c4f434b424f5800000000000000000000000000000000000000000060048201529091506001600160a01b038616906347af267b90602401602060405180830381865afa158015612f93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612fb79190614b39565b612fc5578592505050610474565b613025612fe9612fd483613375565b60075461099d906001600160a01b0316613375565b6040518060400160405280600a81526020017f4c4f434b424f582d31300000000000000000000000000000000000000000000081525088613300565b600754909650613088906001600160a01b031661304286846133dd565b6001600160a01b0316146040518060400160405280600a81526020017f4c4f434b424f582d32300000000000000000000000000000000000000000000081525088613300565b95506130e6846001600160a01b03166130a083613464565b6001600160a01b0316146040518060400160405280600a81526020017f4c4f434b424f582d33300000000000000000000000000000000000000000000081525088613300565b955061319d856001600160a01b0316826001600160a01b03166333d7e2bd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613133573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131579190614a59565b6001600160a01b0316146040518060400160405280600a81526020017f4c4f434b424f582d34300000000000000000000000000000000000000000000081525088613300565b6040517f0fd110770000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301529197506115e691831690630fd1107790602401602060405180830381865afa158015613203573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132279190614b39565b6040518060400160405280600a81526020017f4c4f434b424f582d35300000000000000000000000000000000000000000000081525088613300565b805160609081906001600160a01b03161561329b57806040516020016132899190614cb9565b60405160208183030381529060405290505b60208301516001600160a01b0316156108a4578051156132d857806040516020016132c69190614cfa565b60405160208183030381529060405290505b806040516020016132e99190614d3b565b604051602081830303815290604052905092915050565b6060831561330f575080610474565b815160000361332057829150613345565b8183604051602001613333929190614a76565b60405160208183030381529060405291505b5092915050565b80516000906001600160a01b03161561336457505190565b50506001546001600160a01b031690565b6060816001600160a01b03166354fd4d506040518163ffffffff1660e01b8152600401600060405180830381865afa1580156133b5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108a49190810190614df0565b6040517f204e1c7a0000000000000000000000000000000000000000000000000000000081526001600160a01b0382811660048301526000919084169063204e1c7a90602401602060405180830381865afa158015613440573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104749190614a59565b6000816001600160a01b0316633e47158c6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156134a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108a49190614a59565b600081158015906104745750509081161490565b604080516101c081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810182905261012081018290526101408101829052610160810182905261018081018290526101a0810182905290859080600163ffffffff881663ffffffff161490506000866001600160a01b031663f2b4e6176040518163ffffffff1660e01b8152600401602060405180830381865afa1580156135a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135c69190614a59565b6040517f1b685b9e00000000000000000000000000000000000000000000000000000000815263ffffffff8a1660048201529091506000906001600160a01b03831690631b685b9e90602401602060405180830381865afa15801561362f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136539190614a59565b90506001600160a01b03811661369c5761368e6000886040516020016136799190614e39565b60405160208183030381529060405287613300565b945060019350505050613766565b6040517f74cc86ac00000000000000000000000000000000000000000000000000000000815263ffffffff8a1660048201526000906001600160a01b038416906374cc86ac90602401600060405180830381865afa158015613702573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261372a9190810190614df0565b9050600061373a8783878c613b2d565b9097509050801561375357600195505050505050613766565b61375e83838d613bb5565b975050505050505b9450945094915050565b805161010082015160408084015161012081015182517fd83ef267000000000000000000000000000000000000000000000000000000008152835192936000936001600160a01b039093169263d83ef2679260048082019392918290030181865afa1580156137e3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138079190614e7a565b509050600085602001516001600160a01b031663f2b4e6176040518163ffffffff1660e01b8152600401602060405180830381865afa15801561384e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138729190614a59565b90506138d96138c86138878560000151613375565b60c089015163ffffffff166001146138b3576010546138ae906001600160a01b0316613375565b61099d565b60115461099d906001600160a01b0316613375565b856040516020016136799190614e9e565b94506139068660c0015163ffffffff168460a0015163ffffffff1614856040516020016136799190614edf565b945061392786606001518460e0015114856040516020016136799190614f20565b9450613949866080015184610160015114856040516020016136799190614f61565b94506139678360c00151600014856040516020016136799190614fa2565b9450613990836080015167ffffffffffffffff16612a3014856040516020016136799190614fe3565b94506139ae8360400151601e14856040516020016136799190615024565b94506139cc8360200151604914856040516020016136799190615065565b94506139f6836060015167ffffffffffffffff1662049d40148560405160200161367991906150a6565b9450613a136000801b8314158560405160200161367991906150e7565b9450613a348587602001518561014001518960a001518a60e0015189613eea565b9450613a51858760200151838661012001518a60a0015189614164565b9450613a638584610100015186614399565b600f546101008501519196506001600160a01b03908116911603613af557613af2858461010001516001600160a01b0316637dc0d1d06040518163ffffffff1660e01b8152600401602060405180830381865afa158015613ac8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613aec9190614a59565b866144ae565b94505b50505050919050565b60208101516000906001600160a01b031615613b1c57506020015190565b50506002546001600160a01b031690565b6060600082604051602001613b429190615128565b60405160208183030381529060405292508315613b9f576000613b66865160a41490565b9050613b928185604051602001613b7d9190614e39565b60405160208183030381529060405289613300565b9650869250159050613bac565b6000613b668651607c1490565b94509492505050565b604080516101c081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810182905261012081018290526101408101829052610160810182905261018081018290526101a0810182905290613c2f84614625565b9050604051806101c00160405280866001600160a01b03168152602001866001600160a01b031663fa315aa96040518163ffffffff1660e01b8152600401602060405180830381865afa158015613c8a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613cae9190614b89565b8152602001866001600160a01b031663ec5e63086040518163ffffffff1660e01b8152600401602060405180830381865afa158015613cf1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613d159190614b89565b8152602001866001600160a01b031663dabd396d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613d58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613d7c9190614b6c565b67ffffffffffffffff168152602001866001600160a01b0316636b6716c06040518163ffffffff1660e01b8152600401602060405180830381865afa158015613dc9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ded9190614b6c565b67ffffffffffffffff1681526020018463ffffffff168152602001866001600160a01b03166399735e326040518163ffffffff1660e01b8152600401602060405180830381865afa158015613e46573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613e6a9190614b89565b81526020018260000151815260200182602001516001600160a01b0316815260200182604001516001600160a01b0316815260200182606001516001600160a01b03168152602001826080015181526020018260c001516001600160a01b031681526020018260a001516001600160a01b03168152509150509392505050565b606081604051602001613efd9190615169565b6040516020818303038152906040529150613f43613f32613f1d87613375565b600e5461099d906001600160a01b0316613375565b83604051602001613b7d9190614e39565b600e54909750613f7b906001600160a01b0316613f6086886133dd565b6001600160a01b03161483604051602001613b7d9190614e9e565b96506000613f888461334c565b9050614029816001600160a01b0316876001600160a01b031663dad544e06040518163ffffffff1660e01b8152600401602060405180830381865afa158015613fd5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ff99190614a59565b6001600160a01b031614846040516020016140149190614edf565b6040516020818303038152906040528a613300565b97506140a5600354876001600160a01b0316636a42b8f86040518163ffffffff1660e01b8152600401602060405180830381865afa15801561406f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906140939190614b89565b14846040516020016140149190614f20565b9750614131876001600160a01b0316876001600160a01b03166333d7e2bd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156140f2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906141169190614a59565b6001600160a01b0316148460405160200161401491906151aa565b9750612e3b856001600160a01b031661414988613464565b6001600160a01b031614846040516020016140149190614f61565b60608160405160200161417791906151eb565b60405160208183030381529060405291506141ac613f3261419786613375565b600d5461099d906001600160a01b0316613375565b600d549097506141c9906001600160a01b0316613f6085876133dd565b9650614255856001600160a01b0316856001600160a01b031663f2b4e6176040518163ffffffff1660e01b8152600401602060405180830381865afa158015614216573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061423a9190614a59565b6001600160a01b03161483604051602001613b7d9190614edf565b96506142e1866001600160a01b0316856001600160a01b03166333d7e2bd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156142a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906142c69190614a59565b6001600160a01b03161483604051602001613b7d9190614f20565b9650614314836001600160a01b03166142f986613464565b6001600160a01b03161483604051602001613b7d91906151aa565b965061079a6000856001600160a01b0316634086d1836040518163ffffffff1660e01b8152600401602060405180830381865afa158015614359573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061437d9190614b6c565b67ffffffffffffffff161183604051602001613b7d9190614f61565b6060816040516020016143ac919061522c565b60408051601f1981840301815290829052600f549093506143fc916001600160a01b03868116921691909114906143e7908590602001614e39565b60405160208183030381529060405286613300565b935061443361442261440d85613375565b600f5461099d906001600160a01b0316613375565b836040516020016143e79190614e9e565b93506104f0836001600160a01b0316631219a4e46040518163ffffffff1660e01b8152600401602060405180830381865afa158015614476573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061449a9190614b89565b600814836040516020016143e79190614edf565b6060816040516020016144c1919061526d565b604051602081830303815290604052915061452b61451a6144e185613375565b60408051808201909152600581527f312e312e34000000000000000000000000000000000000000000000000000000602082015261099d565b836040516020016143e79190614e39565b93506145a8836001600160a01b031663f3f480d96040518163ffffffff1660e01b8152600401602060405180830381865afa15801561456e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906145929190614b89565b6201518014836040516020016143e79190614e9e565b93506104f0836001600160a01b031663dd24f9bf6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156145eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061460f9190614b89565b6201ec3014836040516020016143e79190614edf565b6040805160e081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810191909152815160a481148015906146725750607c8114155b156146a9576040517fbff6e41600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6020830151604084015160548501516068860151607c870151606093841c9392831c929190911c906000807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5c880161470f575050609c88015160b0890151606091821c911c5b6040805160e0810182529788526001600160a01b0396871660208901529486169487019490945291841660608601526080850152821660a08401521660c08201529392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6001600160a01b038116811461479b57600080fd5b50565b6000608082840312156147b057600080fd5b6040516080810181811067ffffffffffffffff821117156147d3576147d3614757565b60405290508082356147e481614786565b808252506020830135602082015260408301356040820152606083013561480a81614786565b6060919091015292915050565b801515811461479b57600080fd5b60006040828403121561483757600080fd5b6040516040810181811067ffffffffffffffff8211171561485a5761485a614757565b604052905080823561486b81614786565b8152602083013561487b81614786565b6020919091015292915050565b600080600060e0848603121561489d57600080fd5b6148a7858561479e565b925060808401356148b781614817565b91506148c68560a08601614825565b90509250925092565b60005b838110156148ea5781810151838201526020016148d2565b838111156148f9576000848401525b50505050565b602081526000825180602084015261491e8160408501602087016148cf565b601f01601f19169190910160400192915050565b60008060a0838503121561494557600080fd5b61494f848461479e565b9150608083013561495f81614817565b809150509250929050565b600060a0828403121561497c57600080fd5b60405160a0810181811067ffffffffffffffff8211171561499f5761499f614757565b60405290508082356149b081614786565b8082525060208301356020820152604083013560408201526060830135606082015260808301356149e081614786565b6080919091015292915050565b60008060006101008486031215614a0357600080fd5b614a0d858561496a565b925060a0840135614a1d81614817565b91506148c68560c08601614825565b60008060c08385031215614a3f57600080fd5b614a49848461496a565b915060a083013561495f81614817565b600060208284031215614a6b57600080fd5b815161047481614786565b60008351614a888184602088016148cf565b7f2c000000000000000000000000000000000000000000000000000000000000009083019081528351614ac28160018401602088016148cf565b01600101949350505050565b7f4f50436f6e7472616374734d616e616765725374616e6461726456616c69646181527f746f723a20000000000000000000000000000000000000000000000000000000602082015260008251614b2c8160258501602087016148cf565b9190910160250192915050565b600060208284031215614b4b57600080fd5b815161047481614817565b67ffffffffffffffff8116811461479b57600080fd5b600060208284031215614b7e57600080fd5b815161047481614b56565b600060208284031215614b9b57600080fd5b5051919050565b805163ffffffff81168114614bb657600080fd5b919050565b805160ff81168114614bb657600080fd5b600060c08284031215614bde57600080fd5b60405160c0810181811067ffffffffffffffff82111715614c0157614c01614757565b604052614c0d83614ba2565b8152614c1b60208401614bbb565b6020820152614c2c60408401614bbb565b6040820152614c3d60608401614ba2565b6060820152614c4e60808401614ba2565b608082015260a08301516fffffffffffffffffffffffffffffffff81168114614c7657600080fd5b60a08201529392505050565b600060208284031215614c9457600080fd5b61047482614ba2565b60008251614caf8184602087016148cf565b9190910192915050565b60008251614ccb8184602087016148cf565b7f4f56455252494445532d4c3150414f4d554c5449534947000000000000000000920191825250601701919050565b60008251614d0c8184602087016148cf565b7f2c00000000000000000000000000000000000000000000000000000000000000920191825250600101919050565b60008251614d4d8184602087016148cf565b7f4f56455252494445532d4348414c4c454e474552000000000000000000000000920191825250601401919050565b600067ffffffffffffffff80841115614d9757614d97614757565b604051601f8501601f19908116603f01168101908282118183101715614dbf57614dbf614757565b81604052809350858152868686011115614dd857600080fd5b614de68660208301876148cf565b5050509392505050565b600060208284031215614e0257600080fd5b815167ffffffffffffffff811115614e1957600080fd5b8201601f81018413614e2a57600080fd5b6104f084825160208401614d7c565b60008251614e4b8184602087016148cf565b7f2d31300000000000000000000000000000000000000000000000000000000000920191825250600301919050565b60008060408385031215614e8d57600080fd5b505080516020909101519092909150565b60008251614eb08184602087016148cf565b7f2d32300000000000000000000000000000000000000000000000000000000000920191825250600301919050565b60008251614ef18184602087016148cf565b7f2d33300000000000000000000000000000000000000000000000000000000000920191825250600301919050565b60008251614f328184602087016148cf565b7f2d34300000000000000000000000000000000000000000000000000000000000920191825250600301919050565b60008251614f738184602087016148cf565b7f2d36300000000000000000000000000000000000000000000000000000000000920191825250600301919050565b60008251614fb48184602087016148cf565b7f2d37300000000000000000000000000000000000000000000000000000000000920191825250600301919050565b60008251614ff58184602087016148cf565b7f2d38300000000000000000000000000000000000000000000000000000000000920191825250600301919050565b600082516150368184602087016148cf565b7f2d39300000000000000000000000000000000000000000000000000000000000920191825250600301919050565b600082516150778184602087016148cf565b7f2d31303000000000000000000000000000000000000000000000000000000000920191825250600401919050565b600082516150b88184602087016148cf565b7f2d31313000000000000000000000000000000000000000000000000000000000920191825250600401919050565b600082516150f98184602087016148cf565b7f2d31323000000000000000000000000000000000000000000000000000000000920191825250600401919050565b6000825161513a8184602087016148cf565b7f2d47415247530000000000000000000000000000000000000000000000000000920191825250600601919050565b6000825161517b8184602087016148cf565b7f2d44574554480000000000000000000000000000000000000000000000000000920191825250600601919050565b600082516151bc8184602087016148cf565b7f2d35300000000000000000000000000000000000000000000000000000000000920191825250600301919050565b600082516151fd8184602087016148cf565b7f2d414e43484f5250000000000000000000000000000000000000000000000000920191825250600801919050565b6000825161523e8184602087016148cf565b7f2d564d0000000000000000000000000000000000000000000000000000000000920191825250600301919050565b6000825161527f8184602087016148cf565b7f2d50494d474f000000000000000000000000000000000000000000000000000092019182525060060191905056fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`\x046\x10a\x01\xA3W`\x005`\xE0\x1C\x80c}\x8B\xD0\xD8\x11a\0\xEEW\x80c\xBB\x98\xB3\xF4\x11a\0\x97W\x80c\xDE\xA2\x19\x84\x11a\0qW\x80c\xDE\xA2\x19\x84\x14a\x03\xAEW\x80c\xE3\x03',\x14a\x03\xC1W\x80c\xE3\xFE\xF4\xA8\x14a\x03\xD4W\x80c\xF3\xED\xCB\xE1\x14a\x03\xE7W`\0\x80\xFD[\x80c\xBB\x98\xB3\xF4\x14a\x03uW\x80c\xBC?o\xD4\x14a\x03\x88W\x80c\xC3N\x04z\x14a\x03\x9BW`\0\x80\xFD[\x80c\xA3\x8DU\x95\x11a\0\xC8W\x80c\xA3\x8DU\x95\x14a\x03\x16W\x80c\xA4\xDE\xC3z\x14a\x03)W\x80c\xAD~~@\x14a\x03\x14a\x03\x03W`\0\x80\xFD[\x80cT\xFDMP\x11a\x01PW\x80cq\x83\x94\x18\x11a\x01*W\x80cq\x83\x94\x18\x14a\x02\xAEW\x80ctE\x9C\xF3\x14a\x02\xB7W\x80c{I\x1A\x98\x14a\x02\xCAW`\0\x80\xFD[\x80cT\xFDMP\x14a\x02LW\x80cX%j\xFB\x14a\x02\x88W\x80cl\x0E!p\x14a\x02\x9BW`\0\x80\xFD[\x80c5\xE8\n\xB3\x11a\x01\x81W\x80c5\xE8\n\xB3\x14a\x02\x13W\x80cA\xFES\x85\x14a\x02&W\x80cSM\xB0\xE2\x14a\x029W`\0\x80\xFD[\x80c\x0E\x9D\\\xB9\x14a\x01\xA8W\x80c\x1D\x8AN\x92\x14a\x01\xD1W\x80c*\xEC\xD3\\\x14a\x01\xE8W[`\0\x80\xFD[a\x01\xBBa\x01\xB66`\x04aH\x88V[a\x03\xFAV[`@Qa\x01\xC8\x91\x90aH\xFFV[`@Q\x80\x91\x03\x90\xF3[a\x01\xDA`\x12T\x81V[`@Q\x90\x81R` \x01a\x01\xC8V[`\rTa\x01\xFB\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x01a\x01\xC8V[`\0Ta\x01\xFB\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[a\x01\xBBa\x0246`\x04aI2V[a\x04{V[`\x02Ta\x01\xFB\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[a\x01\xBB`@Q\x80`@\x01`@R\x80`\x05\x81R` \x01\x7F2.3.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\x81RP\x81V[`\nTa\x01\xFB\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[`\x06Ta\x01\xFB\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[a\x01\xDA`\x03T\x81V[`\x0ETa\x01\xFB\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[`\x07Ta\x01\xFB\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[`\x04Ta\x01\xFB\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[a\x01\xBBa\x02\xFE6`\x04aI\xEDV[a\x04\xF8V[`\x11Ta\x01\xFB\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[`\x05Ta\x01\xFB\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[`\x01Ta\x01\xFB\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[`@\x80Q\x80\x82\x01\x90\x91R`\x05\x81R\x7F1.1.4\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` \x82\x01Ra\x01\xBBV[`\x0CTa\x01\xFB\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[`\x08Ta\x01\xFB\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[`\x0BTa\x01\xFB\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[`\x10Ta\x01\xFB\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[`\x0FTa\x01\xFB\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[`\tTa\x01\xFB\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[a\x01\xBBa\x03\xF56`\x04aJ,V[a\x07\xA5V[`@\x80Q`\xA0\x80\x82\x01\x83R`\0\x80\x83R` \x80\x84\x01\x82\x90R\x83\x85\x01\x82\x90R``\x84\x81\x01\x83\x90R`\x80\x94\x85\x01\x83\x90R\x85Q\x93\x84\x01\x86R\x88Q`\x01`\x01`\xA0\x1B\x03\x90\x81\x16\x85R\x82\x8A\x01Q\x92\x85\x01\x92\x90\x92R\x83\x86\x01\x83\x90R\x94\x88\x01Q\x83\x86\x01R\x87\x85\x01Q\x16\x92\x82\x01\x92\x90\x92R\x90Pa\x04p\x81\x85\x85a\x04\xF8V[\x91PP[\x93\x92PPPV[`@\x80Q`\xA0\x80\x82\x01\x83R`\0\x80\x83R` \x80\x84\x01\x82\x90R\x83\x85\x01\x82\x90R``\x84\x81\x01\x83\x90R`\x80\x94\x85\x01\x83\x90R\x85Q\x93\x84\x01\x86R\x87Q`\x01`\x01`\xA0\x1B\x03\x90\x81\x16\x85R\x82\x89\x01Q\x92\x85\x01\x92\x90\x92R\x83\x86\x01\x83\x90R\x94\x87\x01Q\x83\x86\x01R\x86\x85\x01Q\x16\x92\x82\x01\x92\x90\x92R\x90Pa\x04\xF0\x81\x84a\x07\xA5V[\x94\x93PPPPV[```\0`@Q\x80` \x01`@R\x80`\0\x81RP\x90P`\0\x85`\0\x01Q`\x01`\x01`\xA0\x1B\x03\x16c>G\x15\x8C`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x05RW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x05v\x91\x90aJYV[\x90Pa\x05\x81\x82a\x07\xDAV[\x91Pa\x05\x8E\x82\x82\x86a\x08\xAAV[\x91Pa\x05\x9F\x82\x87`\0\x01Q\x83a\twV[\x91Pa\x05\xB0\x82\x87`\0\x01Q\x83a\x10=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x08g\x91\x90aK9V[\x15`@Q\x80`@\x01`@R\x80`\t\x81R` \x01\x7FSPRCFG-10\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RP\x84a3\0V[\x92\x91PPV[```\0a\x08\xB7\x83a3LV[\x90Pa\tn\x81`\x01`\x01`\xA0\x1B\x03\x16\x85`\x01`\x01`\xA0\x1B\x03\x16c\x8D\xA5\xCB[`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\t\x04W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\t(\x91\x90aJYV[`\x01`\x01`\xA0\x1B\x03\x16\x14`@Q\x80`@\x01`@R\x80`\t\x81R` \x01\x7FPROXYA-10\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RP\x87a3\0V[\x95\x94PPPPPV[``a\t\xEFa\t\xB3a\t\x88\x85a3uV[`\x08Ta\t\x9D\x90`\x01`\x01`\xA0\x1B\x03\x16a3uV[\x80Q` \x91\x82\x01 \x82Q\x92\x90\x91\x01\x91\x90\x91 \x14\x90V[`@Q\x80`@\x01`@R\x80`\t\x81R` \x01\x7FSYSCON-10\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RP\x86a3\0V[\x93Pa\n\xADc\x1D\xCDe\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x84`\x01`\x01`\xA0\x1B\x03\x16c\xF6\x80\x16\xB7`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\nAW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\ne\x91\x90aKlV[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x11\x15`@Q\x80`@\x01`@R\x80`\t\x81R` \x01\x7FSYSCON-20\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RP\x86a3\0V[\x93Pa\x0BT\x83`\x01`\x01`\xA0\x1B\x03\x16c\xF4^e\xD8`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\n\xF0W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x0B\x14\x91\x90aK\x89V[`\0\x14\x15`@Q\x80`@\x01`@R\x80`\t\x81R` \x01\x7FSYSCON-30\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RP\x86a3\0V[`\x08T\x90\x94Pa\x0B\xB7\x90`\x01`\x01`\xA0\x1B\x03\x16a\x0Bq\x84\x86a3\xDDV[`\x01`\x01`\xA0\x1B\x03\x16\x14`@Q\x80`@\x01`@R\x80`\t\x81R` \x01\x7FSYSCON-40\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RP\x86a3\0V[\x93P`\0\x83`\x01`\x01`\xA0\x1B\x03\x16c\xCCs\x1B\x02`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01`\xC0`@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x0B\xF9W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x0C\x1D\x91\x90aK\xCCV[\x90Pa\x0Co\x81`\0\x01Qc\xFF\xFF\xFF\xFF\x16c\x011-\0\x14`@Q\x80`@\x01`@R\x80`\t\x81R` \x01\x7FSYSCON-50\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RP\x87a3\0V[\x94Pa\x0C\xBB\x81` \x01Q`\xFF\x16`\n\x14`@Q\x80`@\x01`@R\x80`\t\x81R` \x01\x7FSYSCON-60\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RP\x87a3\0V[\x94Pa\r\x07\x81`@\x01Q`\xFF\x16`\x08\x14`@Q\x80`@\x01`@R\x80`\t\x81R` \x01\x7FSYSCON-70\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RP\x87a3\0V[\x94Pa\rX\x81`\x80\x01Qc\xFF\xFF\xFF\xFF\x16b\x0FB@\x14`@Q\x80`@\x01`@R\x80`\t\x81R` \x01\x7FSYSCON-80\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RP\x87a3\0V[\x94Pa\r\xAA\x81``\x01Qc\xFF\xFF\xFF\xFF\x16c;\x9A\xCA\0\x14`@Q\x80`@\x01`@R\x80`\t\x81R` \x01\x7FSYSCON-90\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RP\x87a3\0V[\x94Pa\x0E\x16o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x16\x82`\xA0\x01Qo\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14`@Q\x80`@\x01`@R\x80`\n\x81R` \x01\x7FSYSCON-100\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RP\x87a3\0V[\x94Pa\x0E\xC2\x84`\x01`\x01`\xA0\x1B\x03\x16cM]\x9A*`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x0EYW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x0E}\x91\x90aL\x82V[c\xFF\xFF\xFF\xFF\x16`\0\x14`@Q\x80`@\x01`@R\x80`\n\x81R` \x01\x7FSYSCON-110\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RP\x87a3\0V[\x94Pa\x0Fr\x84`\x01`\x01`\xA0\x1B\x03\x16c\x16\xD3\xBC\x7F`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x0F\x05W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x0F)\x91\x90aKlV[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\0\x14`@Q\x80`@\x01`@R\x80`\n\x81R` \x01\x7FSYSCON-120\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RP\x87a3\0V[\x94Pa\tn`\0\x80T\x90a\x01\0\n\x90\x04`\x01`\x01`\xA0\x1B\x03\x16`\x01`\x01`\xA0\x1B\x03\x16\x85`\x01`\x01`\xA0\x1B\x03\x16c5\xE8\n\xB3`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x0F\xD2W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x0F\xF6\x91\x90aJYV[`\x01`\x01`\xA0\x1B\x03\x16\x14`@Q\x80`@\x01`@R\x80`\n\x81R` \x01\x7FSYSCON-130\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RP\x87a3\0V[```\0\x83`\x01`\x01`\xA0\x1B\x03\x16c\xA7\x11\x98i`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x10~W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x10\xA2\x91\x90aJYV[\x90Pa\x11\x04a\x10\xC8a\x10\xB3\x83a3uV[`\nTa\t\x9D\x90`\x01`\x01`\xA0\x1B\x03\x16a3uV[`@Q\x80`@\x01`@R\x80`\x08\x81R` \x01\x7FL1xDM-10\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RP\x87a3\0V[`\nT\x90\x95Pa\x11g\x90`\x01`\x01`\xA0\x1B\x03\x16a\x11!\x85\x84a3\xDDV[`\x01`\x01`\xA0\x1B\x03\x16\x14`@Q\x80`@\x01`@R\x80`\x08\x81R` \x01\x7FL1xDM-20\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RP\x87a3\0V[\x94P`\0\x84`\x01`\x01`\xA0\x1B\x03\x16c\nI\xCB\x03`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x11\xA9W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x11\xCD\x91\x90aJYV[\x90Pa\x12\x98sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x07`\x01`\x01`\xA0\x1B\x03\x16\x83`\x01`\x01`\xA0\x1B\x03\x16c\x9F\xCE\x81,`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x12.W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x12R\x91\x90aJYV[`\x01`\x01`\xA0\x1B\x03\x16\x14`@Q\x80`@\x01`@R\x80`\x08\x81R` \x01\x7FL1xDM-30\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RP\x88a3\0V[\x95Pa\x13csB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x07`\x01`\x01`\xA0\x1B\x03\x16\x83`\x01`\x01`\xA0\x1B\x03\x16c\xDBP]\x80`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x12\xF9W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x13\x1D\x91\x90aJYV[`\x01`\x01`\xA0\x1B\x03\x16\x14`@Q\x80`@\x01`@R\x80`\x08\x81R` \x01\x7FL1xDM-40\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RP\x88a3\0V[\x95Pa\x14\x1A\x81`\x01`\x01`\xA0\x1B\x03\x16\x83`\x01`\x01`\xA0\x1B\x03\x16c\x0F\xF7T\xEA`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x13\xB0W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x13\xD4\x91\x90aJYV[`\x01`\x01`\xA0\x1B\x03\x16\x14`@Q\x80`@\x01`@R\x80`\x08\x81R` \x01\x7FL1xDM-50\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RP\x88a3\0V[\x95Pa\x14\xD1\x81`\x01`\x01`\xA0\x1B\x03\x16\x83`\x01`\x01`\xA0\x1B\x03\x16cd%fk`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x14gW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x14\x8B\x91\x90aJYV[`\x01`\x01`\xA0\x1B\x03\x16\x14`@Q\x80`@\x01`@R\x80`\x08\x81R` \x01\x7FL1xDM-60\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RP\x88a3\0V[\x95Pa\x15\x88\x85`\x01`\x01`\xA0\x1B\x03\x16\x83`\x01`\x01`\xA0\x1B\x03\x16c3\xD7\xE2\xBD`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x15\x1EW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x15B\x91\x90aJYV[`\x01`\x01`\xA0\x1B\x03\x16\x14`@Q\x80`@\x01`@R\x80`\x08\x81R` \x01\x7FL1xDM-70\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RP\x88a3\0V[\x95Pa\x15\xE6\x84`\x01`\x01`\xA0\x1B\x03\x16a\x15\xA0\x84a4dV[`\x01`\x01`\xA0\x1B\x03\x16\x14`@Q\x80`@\x01`@R\x80`\x08\x81R` \x01\x7FL1xDM-80\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RP\x88a3\0V[\x96\x95PPPPPPV[```\0\x83`\x01`\x01`\xA0\x1B\x03\x16c\x07\x8F)\xCF`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x162W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x16V\x91\x90aJYV[\x90Pa\x16\xB8a\x16|a\x16g\x83a3uV[`\x0BTa\t\x9D\x90`\x01`\x01`\xA0\x1B\x03\x16a3uV[`@Q\x80`@\x01`@R\x80`\x07\x81R` \x01\x7FL1SB-10\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\x81RP\x87a3\0V[`\x0BT\x90\x95Pa\x17\x1B\x90`\x01`\x01`\xA0\x1B\x03\x16a\x16\xD5\x85\x84a3\xDDV[`\x01`\x01`\xA0\x1B\x03\x16\x14`@Q\x80`@\x01`@R\x80`\x07\x81R` \x01\x7FL1SB-20\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\x81RP\x87a3\0V[\x94P`\0\x84`\x01`\x01`\xA0\x1B\x03\x16c\xA7\x11\x98i`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x17]W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x17\x81\x91\x90aJYV[\x90Pa\x188\x81`\x01`\x01`\xA0\x1B\x03\x16\x83`\x01`\x01`\xA0\x1B\x03\x16c\x92~\xDE-`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x17\xCEW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x17\xF2\x91\x90aJYV[`\x01`\x01`\xA0\x1B\x03\x16\x14`@Q\x80`@\x01`@R\x80`\x07\x81R` \x01\x7FL1SB-30\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\x81RP\x88a3\0V[\x95Pa\x18\xEF\x81`\x01`\x01`\xA0\x1B\x03\x16\x83`\x01`\x01`\xA0\x1B\x03\x16c<\xB7G\xBF`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x18\x85W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x18\xA9\x91\x90aJYV[`\x01`\x01`\xA0\x1B\x03\x16\x14`@Q\x80`@\x01`@R\x80`\x07\x81R` \x01\x7FL1SB-40\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\x81RP\x88a3\0V[\x95Pa\x19\xBAsB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x10`\x01`\x01`\xA0\x1B\x03\x16\x83`\x01`\x01`\xA0\x1B\x03\x16c\x7FF\xDD\xB2`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x19PW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x19t\x91\x90aJYV[`\x01`\x01`\xA0\x1B\x03\x16\x14`@Q\x80`@\x01`@R\x80`\x07\x81R` \x01\x7FL1SB-50\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\x81RP\x88a3\0V[\x95Pa\x1A\x85sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x10`\x01`\x01`\xA0\x1B\x03\x16\x83`\x01`\x01`\xA0\x1B\x03\x16c\xC8\x97\x01\xA2`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x1A\x1BW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x1A?\x91\x90aJYV[`\x01`\x01`\xA0\x1B\x03\x16\x14`@Q\x80`@\x01`@R\x80`\x07\x81R` \x01\x7FL1SB-60\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\x81RP\x88a3\0V[\x95Pa\x1B<\x85`\x01`\x01`\xA0\x1B\x03\x16\x83`\x01`\x01`\xA0\x1B\x03\x16c3\xD7\xE2\xBD`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x1A\xD2W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x1A\xF6\x91\x90aJYV[`\x01`\x01`\xA0\x1B\x03\x16\x14`@Q\x80`@\x01`@R\x80`\x07\x81R` \x01\x7FL1SB-70\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\x81RP\x88a3\0V[\x95Pa\x15\xE6\x84`\x01`\x01`\xA0\x1B\x03\x16a\x1BT\x84a4dV[`\x01`\x01`\xA0\x1B\x03\x16\x14`@Q\x80`@\x01`@R\x80`\x07\x81R` \x01\x7FL1SB-80\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\x81RP\x88a3\0V[```\0\x83`\x01`\x01`\xA0\x1B\x03\x16c\x9B}\x7F\n`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x1B\xDCW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x1C\0\x91\x90aJYV[\x90Pa\x1Cba\x1C&a\x1C\x11\x83a3uV[`\tTa\t\x9D\x90`\x01`\x01`\xA0\x1B\x03\x16a3uV[`@Q\x80`@\x01`@R\x80`\n\x81R` \x01\x7FMERC20F-10\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RP\x87a3\0V[`\tT\x90\x95Pa\x1C\xC5\x90`\x01`\x01`\xA0\x1B\x03\x16a\x1C\x7F\x85\x84a3\xDDV[`\x01`\x01`\xA0\x1B\x03\x16\x14`@Q\x80`@\x01`@R\x80`\n\x81R` \x01\x7FMERC20F-20\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RP\x87a3\0V[\x94P`\0\x84`\x01`\x01`\xA0\x1B\x03\x16c\x07\x8F)\xCF`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x1D\x07W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x1D+\x91\x90aJYV[\x90Pa\x1D\xE2\x81`\x01`\x01`\xA0\x1B\x03\x16\x83`\x01`\x01`\xA0\x1B\x03\x16c\xEE\x9A1\xA2`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x1DxW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x1D\x9C\x91\x90aJYV[`\x01`\x01`\xA0\x1B\x03\x16\x14`@Q\x80`@\x01`@R\x80`\n\x81R` \x01\x7FMERC20F-30\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RP\x88a3\0V[\x95Pa\x15\xE6\x81`\x01`\x01`\xA0\x1B\x03\x16\x83`\x01`\x01`\xA0\x1B\x03\x16c\xE7\x8C\xEA\x92`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x1E/W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x1ES\x91\x90aJYV[`\x01`\x01`\xA0\x1B\x03\x16\x14`@Q\x80`@\x01`@R\x80`\n\x81R` \x01\x7FMERC20F-40\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RP\x88a3\0V[```\0\x83`\x01`\x01`\xA0\x1B\x03\x16c\xC4\xE8\xDD\xFA`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x1E\xDBW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x1E\xFF\x91\x90aJYV[\x90Pa\x1Faa\x1F%a\x1F\x10\x83a3uV[`\x04Ta\t\x9D\x90`\x01`\x01`\xA0\x1B\x03\x16a3uV[`@Q\x80`@\x01`@R\x80`\x08\x81R` \x01\x7FL721B-10\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RP\x87a3\0V[`\x04T\x90\x95Pa\x1F\xC4\x90`\x01`\x01`\xA0\x1B\x03\x16a\x1F~\x85\x84a3\xDDV[`\x01`\x01`\xA0\x1B\x03\x16\x14`@Q\x80`@\x01`@R\x80`\x08\x81R` \x01\x7FL721B-20\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RP\x87a3\0V[\x94P`\0\x84`\x01`\x01`\xA0\x1B\x03\x16c\xA7\x11\x98i`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a \x06W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a *\x91\x90aJYV[\x90Pa \xF5sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x14`\x01`\x01`\xA0\x1B\x03\x16\x83`\x01`\x01`\xA0\x1B\x03\x16c\x7FF\xDD\xB2`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a \x8BW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a \xAF\x91\x90aJYV[`\x01`\x01`\xA0\x1B\x03\x16\x14`@Q\x80`@\x01`@R\x80`\x08\x81R` \x01\x7FL721B-30\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RP\x88a3\0V[\x95Pa!\xC0sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x14`\x01`\x01`\xA0\x1B\x03\x16\x83`\x01`\x01`\xA0\x1B\x03\x16c\xC8\x97\x01\xA2`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a!VW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a!z\x91\x90aJYV[`\x01`\x01`\xA0\x1B\x03\x16\x14`@Q\x80`@\x01`@R\x80`\x08\x81R` \x01\x7FL721B-40\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RP\x88a3\0V[\x95Pa\"w\x81`\x01`\x01`\xA0\x1B\x03\x16\x83`\x01`\x01`\xA0\x1B\x03\x16c\x92~\xDE-`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\"\rW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\"1\x91\x90aJYV[`\x01`\x01`\xA0\x1B\x03\x16\x14`@Q\x80`@\x01`@R\x80`\x08\x81R` \x01\x7FL721B-50\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RP\x88a3\0V[\x95Pa#.\x81`\x01`\x01`\xA0\x1B\x03\x16\x83`\x01`\x01`\xA0\x1B\x03\x16c<\xB7G\xBF`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\"\xC4W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\"\xE8\x91\x90aJYV[`\x01`\x01`\xA0\x1B\x03\x16\x14`@Q\x80`@\x01`@R\x80`\x08\x81R` \x01\x7FL721B-60\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RP\x88a3\0V[\x95Pa#\xE5\x85`\x01`\x01`\xA0\x1B\x03\x16\x83`\x01`\x01`\xA0\x1B\x03\x16c3\xD7\xE2\xBD`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a#{W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a#\x9F\x91\x90aJYV[`\x01`\x01`\xA0\x1B\x03\x16\x14`@Q\x80`@\x01`@R\x80`\x08\x81R` \x01\x7FL721B-70\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RP\x88a3\0V[\x95Pa\x15\xE6\x84`\x01`\x01`\xA0\x1B\x03\x16a#\xFD\x84a4dV[`\x01`\x01`\xA0\x1B\x03\x16\x14`@Q\x80`@\x01`@R\x80`\x08\x81R` \x01\x7FL721B-80\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RP\x88a3\0V[```\0\x83`\x01`\x01`\xA0\x1B\x03\x16c\nI\xCB\x03`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a$\x85W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a$\xA9\x91\x90aJYV[\x90Pa$\xBB`\x12T`\x01`\0\x1Ba4\xC8V[\x15a%\xBFWa%Ua%\x19a$\xCF\x83a3uV[`\x06Ta$\xE4\x90`\x01`\x01`\xA0\x1B\x03\x16a3uV[`@Q` \x01a$\xF4\x91\x90aL\x9DV[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q` \x91\x82\x01 \x82Q\x92\x90\x91\x01\x91\x90\x91 \x14\x90V[`@Q\x80`@\x01`@R\x80`\t\x81R` \x01\x7FPORTAL-10\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RP\x87a3\0V[`\x06T\x90\x95Pa%\xB8\x90`\x01`\x01`\xA0\x1B\x03\x16a%r\x85\x84a3\xDDV[`\x01`\x01`\xA0\x1B\x03\x16\x14`@Q\x80`@\x01`@R\x80`\t\x81R` \x01\x7FPORTAL-20\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RP\x87a3\0V[\x94Pa&\x03V[a%\xE3a%\x19a%\xCE\x83a3uV[`\x05Ta\t\x9D\x90`\x01`\x01`\xA0\x1B\x03\x16a3uV[`\x05T\x90\x95Pa&\0\x90`\x01`\x01`\xA0\x1B\x03\x16a%r\x85\x84a3\xDDV[\x94P[`\0\x84`\x01`\x01`\xA0\x1B\x03\x16c\xF2\xB4\xE6\x17`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a&CW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a&g\x91\x90aJYV[\x90Pa'\x1E\x81`\x01`\x01`\xA0\x1B\x03\x16\x83`\x01`\x01`\xA0\x1B\x03\x16c\xF2\xB4\xE6\x17`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a&\xB4W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a&\xD8\x91\x90aJYV[`\x01`\x01`\xA0\x1B\x03\x16\x14`@Q\x80`@\x01`@R\x80`\t\x81R` \x01\x7FPORTAL-30\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RP\x88a3\0V[\x95Pa'\xD5\x85`\x01`\x01`\xA0\x1B\x03\x16\x83`\x01`\x01`\xA0\x1B\x03\x16c3\xD7\xE2\xBD`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a'kW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a'\x8F\x91\x90aJYV[`\x01`\x01`\xA0\x1B\x03\x16\x14`@Q\x80`@\x01`@R\x80`\t\x81R` \x01\x7FPORTAL-40\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RP\x88a3\0V[\x95Pa(\x8Ea\xDE\xAD`\x01`\x01`\xA0\x1B\x03\x16\x83`\x01`\x01`\xA0\x1B\x03\x16c\x9B\xF6-\x82`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a($W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a(H\x91\x90aJYV[`\x01`\x01`\xA0\x1B\x03\x16\x14`@Q\x80`@\x01`@R\x80`\t\x81R` \x01\x7FPORTAL-80\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RP\x88a3\0V[\x95Pa\x15\xE6\x84`\x01`\x01`\xA0\x1B\x03\x16a(\xA6\x84a4dV[`\x01`\x01`\xA0\x1B\x03\x16\x14`@Q\x80`@\x01`@R\x80`\t\x81R` \x01\x7FPORTAL-90\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RP\x88a3\0V[```\0a(\xF9\x83a3LV[\x90P`\0\x85`\x01`\x01`\xA0\x1B\x03\x16c\xF2\xB4\xE6\x17`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a);W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a)_\x91\x90aJYV[\x90Pa)\xC1a)\x85a)p\x83a3uV[`\x0CTa\t\x9D\x90`\x01`\x01`\xA0\x1B\x03\x16a3uV[`@Q\x80`@\x01`@R\x80`\x05\x81R` \x01\x7FDF-10\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\x81RP\x89a3\0V[`\x0CT\x90\x97Pa*$\x90`\x01`\x01`\xA0\x1B\x03\x16a)\xDE\x87\x84a3\xDDV[`\x01`\x01`\xA0\x1B\x03\x16\x14`@Q\x80`@\x01`@R\x80`\x05\x81R` \x01\x7FDF-20\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\x81RP\x89a3\0V[\x96Pa*\xDB\x82`\x01`\x01`\xA0\x1B\x03\x16\x82`\x01`\x01`\xA0\x1B\x03\x16c\x8D\xA5\xCB[`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a*qW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a*\x95\x91\x90aJYV[`\x01`\x01`\xA0\x1B\x03\x16\x14`@Q\x80`@\x01`@R\x80`\x05\x81R` \x01\x7FDF-30\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\x81RP\x89a3\0V[\x96Pa\x07\x9A\x85`\x01`\x01`\xA0\x1B\x03\x16a*\xF3\x83a4dV[`\x01`\x01`\xA0\x1B\x03\x16\x14`@Q\x80`@\x01`@R\x80`\x05\x81R` \x01\x7FDF-40\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\x81RP\x89a3\0V[`@\x80Q\x80\x82\x01\x82R`\x04\x81R\x7FPDDG\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` \x80\x83\x01\x91\x90\x91R\x82Qa\x01\xC0\x81\x01\x84R`\0\x80\x82R\x91\x81\x01\x82\x90R\x92\x83\x01\x81\x90R``\x80\x84\x01\x82\x90R`\x80\x84\x01\x82\x90R`\xA0\x84\x01\x82\x90R`\xC0\x84\x01\x82\x90R`\xE0\x84\x01\x82\x90Ra\x01\0\x84\x01\x82\x90Ra\x01 \x84\x01\x82\x90Ra\x01@\x84\x01\x82\x90Ra\x01`\x84\x01\x82\x90Ra\x01\x80\x84\x01\x82\x90Ra\x01\xA0\x84\x01\x82\x90R\x92`\x01\x92\x91a+\xEF\x8C\x85\x8D\x86a4\xDCV[\x90\x9DP\x90\x92P\x90P\x80\x15a,\tW\x8B\x94PPPPPa\x07\x9AV[a,i`@Q\x80a\x01 \x01`@R\x80\x8E\x81R` \x01\x8D`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x01\x84\x81R` \x01\x8C\x81R` \x01\x8B\x81R` \x01\x8A`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x01\x86c\xFF\xFF\xFF\xFF\x16\x81R` \x01\x88\x81R` \x01\x85\x81RPa7pV[\x9BP`\0a,v\x87a:\xFEV[\x90Pa,\xD1\x81`\x01`\x01`\xA0\x1B\x03\x16\x84a\x01\x80\x01Q`\x01`\x01`\xA0\x1B\x03\x16\x14`@Q\x80`@\x01`@R\x80`\x08\x81R` \x01\x7FPDDG-130\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RP\x8Fa3\0V[\x9CPa-,\x88`\x01`\x01`\xA0\x1B\x03\x16\x84a\x01\xA0\x01Q`\x01`\x01`\xA0\x1B\x03\x16\x14`@Q\x80`@\x01`@R\x80`\x08\x81R` \x01\x7FPDDG-140\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RP\x8Fa3\0V[\x9D\x9CPPPPPPPPPPPPPV[`@\x80Qa\x01\xC0\x81\x01\x82R`\0\x80\x82R` \x82\x01\x81\x90R\x91\x81\x01\x82\x90R``\x80\x82\x01\x83\x90R`\x80\x82\x01\x83\x90R`\xA0\x82\x01\x83\x90R`\xC0\x82\x01\x83\x90R`\xE0\x82\x01\x83\x90Ra\x01\0\x82\x01\x83\x90Ra\x01 \x82\x01\x83\x90Ra\x01@\x82\x01\x83\x90Ra\x01`\x82\x01\x83\x90Ra\x01\x80\x82\x01\x83\x90Ra\x01\xA0\x82\x01\x83\x90R\x91a-\xBB\x8B\x8A\x8C\x87a4\xDCV[\x90\x9CP\x90\x92P\x90P\x80\x15a-\xD3W\x8A\x92PPPa.;V[a.3`@Q\x80a\x01 \x01`@R\x80\x8D\x81R` \x01\x8C`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x01\x84\x81R` \x01\x8A\x81R` \x01\x89\x81R` \x01\x88`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x01\x8Bc\xFF\xFF\xFF\xFF\x16\x81R` \x01\x87\x81R` \x01\x86\x81RPa7pV[\x9AP\x8A\x92PPP[\x98\x97PPPPPPPPV[```\0\x83`\x01`\x01`\xA0\x1B\x03\x16c\nI\xCB\x03`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a.\x89W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a.\xAD\x91\x90aJYV[\x90P`\0\x81`\x01`\x01`\xA0\x1B\x03\x16c\xB6\x82\xC4D`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a.\xEFW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a/\x13\x91\x90aJYV[`@Q\x7FG\xAF&{\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\x7FETH_LOCKBOX\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x04\x82\x01R\x90\x91P`\x01`\x01`\xA0\x1B\x03\x86\x16\x90cG\xAF&{\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a/\x93W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a/\xB7\x91\x90aK9V[a/\xC5W\x85\x92PPPa\x04tV[a0%a/\xE9a/\xD4\x83a3uV[`\x07Ta\t\x9D\x90`\x01`\x01`\xA0\x1B\x03\x16a3uV[`@Q\x80`@\x01`@R\x80`\n\x81R` \x01\x7FLOCKBOX-10\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RP\x88a3\0V[`\x07T\x90\x96Pa0\x88\x90`\x01`\x01`\xA0\x1B\x03\x16a0B\x86\x84a3\xDDV[`\x01`\x01`\xA0\x1B\x03\x16\x14`@Q\x80`@\x01`@R\x80`\n\x81R` \x01\x7FLOCKBOX-20\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RP\x88a3\0V[\x95Pa0\xE6\x84`\x01`\x01`\xA0\x1B\x03\x16a0\xA0\x83a4dV[`\x01`\x01`\xA0\x1B\x03\x16\x14`@Q\x80`@\x01`@R\x80`\n\x81R` \x01\x7FLOCKBOX-30\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RP\x88a3\0V[\x95Pa1\x9D\x85`\x01`\x01`\xA0\x1B\x03\x16\x82`\x01`\x01`\xA0\x1B\x03\x16c3\xD7\xE2\xBD`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a13W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a1W\x91\x90aJYV[`\x01`\x01`\xA0\x1B\x03\x16\x14`@Q\x80`@\x01`@R\x80`\n\x81R` \x01\x7FLOCKBOX-40\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RP\x88a3\0V[`@Q\x7F\x0F\xD1\x10w\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`\x01`\x01`\xA0\x1B\x03\x84\x81\x16`\x04\x83\x01R\x91\x97Pa\x15\xE6\x91\x83\x16\x90c\x0F\xD1\x10w\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a2\x03W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a2'\x91\x90aK9V[`@Q\x80`@\x01`@R\x80`\n\x81R` \x01\x7FLOCKBOX-50\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RP\x88a3\0V[\x80Q``\x90\x81\x90`\x01`\x01`\xA0\x1B\x03\x16\x15a2\x9BW\x80`@Q` \x01a2\x89\x91\x90aL\xB9V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x90P[` \x83\x01Q`\x01`\x01`\xA0\x1B\x03\x16\x15a\x08\xA4W\x80Q\x15a2\xD8W\x80`@Q` \x01a2\xC6\x91\x90aL\xFAV[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x90P[\x80`@Q` \x01a2\xE9\x91\x90aM;V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x90P\x92\x91PPV[``\x83\x15a3\x0FWP\x80a\x04tV[\x81Q`\0\x03a3 W\x82\x91Pa3EV[\x81\x83`@Q` \x01a33\x92\x91\x90aJvV[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x91P[P\x92\x91PPV[\x80Q`\0\x90`\x01`\x01`\xA0\x1B\x03\x16\x15a3dWPQ\x90V[PP`\x01T`\x01`\x01`\xA0\x1B\x03\x16\x90V[``\x81`\x01`\x01`\xA0\x1B\x03\x16cT\xFDMP`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01`\0`@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a3\xB5W=`\0\x80>=`\0\xFD[PPPP`@Q=`\0\x82>`\x1F=\x90\x81\x01`\x1F\x19\x16\x82\x01`@Ra\x08\xA4\x91\x90\x81\x01\x90aM\xF0V[`@Q\x7F N\x1Cz\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`\x01`\x01`\xA0\x1B\x03\x82\x81\x16`\x04\x83\x01R`\0\x91\x90\x84\x16\x90c N\x1Cz\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a4@W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x04t\x91\x90aJYV[`\0\x81`\x01`\x01`\xA0\x1B\x03\x16c>G\x15\x8C`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a4\xA4W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x08\xA4\x91\x90aJYV[`\0\x81\x15\x80\x15\x90a\x04tWPP\x90\x81\x16\x14\x90V[`@\x80Qa\x01\xC0\x81\x01\x82R`\0\x80\x82R` \x82\x01\x81\x90R\x91\x81\x01\x82\x90R``\x81\x01\x82\x90R`\x80\x81\x01\x82\x90R`\xA0\x81\x01\x82\x90R`\xC0\x81\x01\x82\x90R`\xE0\x81\x01\x82\x90Ra\x01\0\x81\x01\x82\x90Ra\x01 \x81\x01\x82\x90Ra\x01@\x81\x01\x82\x90Ra\x01`\x81\x01\x82\x90Ra\x01\x80\x81\x01\x82\x90Ra\x01\xA0\x81\x01\x82\x90R\x90\x85\x90\x80`\x01c\xFF\xFF\xFF\xFF\x88\x16c\xFF\xFF\xFF\xFF\x16\x14\x90P`\0\x86`\x01`\x01`\xA0\x1B\x03\x16c\xF2\xB4\xE6\x17`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a5\xA2W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a5\xC6\x91\x90aJYV[`@Q\x7F\x1Bh[\x9E\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\x81Rc\xFF\xFF\xFF\xFF\x8A\x16`\x04\x82\x01R\x90\x91P`\0\x90`\x01`\x01`\xA0\x1B\x03\x83\x16\x90c\x1Bh[\x9E\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a6/W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a6S\x91\x90aJYV[\x90P`\x01`\x01`\xA0\x1B\x03\x81\x16a6\x9CWa6\x8E`\0\x88`@Q` \x01a6y\x91\x90aN9V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x87a3\0V[\x94P`\x01\x93PPPPa7fV[`@Q\x7Ft\xCC\x86\xAC\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\x81Rc\xFF\xFF\xFF\xFF\x8A\x16`\x04\x82\x01R`\0\x90`\x01`\x01`\xA0\x1B\x03\x84\x16\x90ct\xCC\x86\xAC\x90`$\x01`\0`@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a7\x02W=`\0\x80>=`\0\xFD[PPPP`@Q=`\0\x82>`\x1F=\x90\x81\x01`\x1F\x19\x16\x82\x01`@Ra7*\x91\x90\x81\x01\x90aM\xF0V[\x90P`\0a7:\x87\x83\x87\x8Ca;-V[\x90\x97P\x90P\x80\x15a7SW`\x01\x95PPPPPPa7fV[a7^\x83\x83\x8Da;\xB5V[\x97PPPPPP[\x94P\x94P\x94\x91PPV[\x80Qa\x01\0\x82\x01Q`@\x80\x84\x01Qa\x01 \x81\x01Q\x82Q\x7F\xD8>\xF2g\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\x83Q\x92\x93`\0\x93`\x01`\x01`\xA0\x1B\x03\x90\x93\x16\x92c\xD8>\xF2g\x92`\x04\x80\x82\x01\x93\x92\x91\x82\x90\x03\x01\x81\x86Z\xFA\x15\x80\x15a7\xE3W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a8\x07\x91\x90aNzV[P\x90P`\0\x85` \x01Q`\x01`\x01`\xA0\x1B\x03\x16c\xF2\xB4\xE6\x17`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a8NW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a8r\x91\x90aJYV[\x90Pa8\xD9a8\xC8a8\x87\x85`\0\x01Qa3uV[`\xC0\x89\x01Qc\xFF\xFF\xFF\xFF\x16`\x01\x14a8\xB3W`\x10Ta8\xAE\x90`\x01`\x01`\xA0\x1B\x03\x16a3uV[a\t\x9DV[`\x11Ta\t\x9D\x90`\x01`\x01`\xA0\x1B\x03\x16a3uV[\x85`@Q` \x01a6y\x91\x90aN\x9EV[\x94Pa9\x06\x86`\xC0\x01Qc\xFF\xFF\xFF\xFF\x16\x84`\xA0\x01Qc\xFF\xFF\xFF\xFF\x16\x14\x85`@Q` \x01a6y\x91\x90aN\xDFV[\x94Pa9'\x86``\x01Q\x84`\xE0\x01Q\x14\x85`@Q` \x01a6y\x91\x90aO V[\x94Pa9I\x86`\x80\x01Q\x84a\x01`\x01Q\x14\x85`@Q` \x01a6y\x91\x90aOaV[\x94Pa9g\x83`\xC0\x01Q`\0\x14\x85`@Q` \x01a6y\x91\x90aO\xA2V[\x94Pa9\x90\x83`\x80\x01Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a*0\x14\x85`@Q` \x01a6y\x91\x90aO\xE3V[\x94Pa9\xAE\x83`@\x01Q`\x1E\x14\x85`@Q` \x01a6y\x91\x90aP$V[\x94Pa9\xCC\x83` \x01Q`I\x14\x85`@Q` \x01a6y\x91\x90aPeV[\x94Pa9\xF6\x83``\x01Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16b\x04\x9D@\x14\x85`@Q` \x01a6y\x91\x90aP\xA6V[\x94Pa:\x13`\0\x80\x1B\x83\x14\x15\x85`@Q` \x01a6y\x91\x90aP\xE7V[\x94Pa:4\x85\x87` \x01Q\x85a\x01@\x01Q\x89`\xA0\x01Q\x8A`\xE0\x01Q\x89a>\xEAV[\x94Pa:Q\x85\x87` \x01Q\x83\x86a\x01 \x01Q\x8A`\xA0\x01Q\x89aAdV[\x94Pa:c\x85\x84a\x01\0\x01Q\x86aC\x99V[`\x0FTa\x01\0\x85\x01Q\x91\x96P`\x01`\x01`\xA0\x1B\x03\x90\x81\x16\x91\x16\x03a:\xF5Wa:\xF2\x85\x84a\x01\0\x01Q`\x01`\x01`\xA0\x1B\x03\x16c}\xC0\xD1\xD0`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a:\xC8W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a:\xEC\x91\x90aJYV[\x86aD\xAEV[\x94P[PPPP\x91\x90PV[` \x81\x01Q`\0\x90`\x01`\x01`\xA0\x1B\x03\x16\x15a;\x1CWP` \x01Q\x90V[PP`\x02T`\x01`\x01`\xA0\x1B\x03\x16\x90V[```\0\x82`@Q` \x01a;B\x91\x90aQ(V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x92P\x83\x15a;\x9FW`\0a;f\x86Q`\xA4\x14\x90V[\x90Pa;\x92\x81\x85`@Q` \x01a;}\x91\x90aN9V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x89a3\0V[\x96P\x86\x92P\x15\x90Pa;\xACV[`\0a;f\x86Q`|\x14\x90V[\x94P\x94\x92PPPV[`@\x80Qa\x01\xC0\x81\x01\x82R`\0\x80\x82R` \x82\x01\x81\x90R\x91\x81\x01\x82\x90R``\x81\x01\x82\x90R`\x80\x81\x01\x82\x90R`\xA0\x81\x01\x82\x90R`\xC0\x81\x01\x82\x90R`\xE0\x81\x01\x82\x90Ra\x01\0\x81\x01\x82\x90Ra\x01 \x81\x01\x82\x90Ra\x01@\x81\x01\x82\x90Ra\x01`\x81\x01\x82\x90Ra\x01\x80\x81\x01\x82\x90Ra\x01\xA0\x81\x01\x82\x90R\x90a=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a<\xAE\x91\x90aK\x89V[\x81R` \x01\x86`\x01`\x01`\xA0\x1B\x03\x16c\xEC^c\x08`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a<\xF1W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a=\x15\x91\x90aK\x89V[\x81R` \x01\x86`\x01`\x01`\xA0\x1B\x03\x16c\xDA\xBD9m`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a=XW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a=|\x91\x90aKlV[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81R` \x01\x86`\x01`\x01`\xA0\x1B\x03\x16ckg\x16\xC0`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a=\xC9W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a=\xED\x91\x90aKlV[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81R` \x01\x84c\xFF\xFF\xFF\xFF\x16\x81R` \x01\x86`\x01`\x01`\xA0\x1B\x03\x16c\x99s^2`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a>FW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a>j\x91\x90aK\x89V[\x81R` \x01\x82`\0\x01Q\x81R` \x01\x82` \x01Q`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x01\x82`@\x01Q`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x01\x82``\x01Q`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x01\x82`\x80\x01Q\x81R` \x01\x82`\xC0\x01Q`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x01\x82`\xA0\x01Q`\x01`\x01`\xA0\x1B\x03\x16\x81RP\x91PP\x93\x92PPPV[``\x81`@Q` \x01a>\xFD\x91\x90aQiV[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x91Pa?Ca?2a?\x1D\x87a3uV[`\x0ETa\t\x9D\x90`\x01`\x01`\xA0\x1B\x03\x16a3uV[\x83`@Q` \x01a;}\x91\x90aN9V[`\x0ET\x90\x97Pa?{\x90`\x01`\x01`\xA0\x1B\x03\x16a?`\x86\x88a3\xDDV[`\x01`\x01`\xA0\x1B\x03\x16\x14\x83`@Q` \x01a;}\x91\x90aN\x9EV[\x96P`\0a?\x88\x84a3LV[\x90Pa@)\x81`\x01`\x01`\xA0\x1B\x03\x16\x87`\x01`\x01`\xA0\x1B\x03\x16c\xDA\xD5D\xE0`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a?\xD5W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a?\xF9\x91\x90aJYV[`\x01`\x01`\xA0\x1B\x03\x16\x14\x84`@Q` \x01a@\x14\x91\x90aN\xDFV[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x8Aa3\0V[\x97Pa@\xA5`\x03T\x87`\x01`\x01`\xA0\x1B\x03\x16cjB\xB8\xF8`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a@oW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a@\x93\x91\x90aK\x89V[\x14\x84`@Q` \x01a@\x14\x91\x90aO V[\x97PaA1\x87`\x01`\x01`\xA0\x1B\x03\x16\x87`\x01`\x01`\xA0\x1B\x03\x16c3\xD7\xE2\xBD`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a@\xF2W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90aA\x16\x91\x90aJYV[`\x01`\x01`\xA0\x1B\x03\x16\x14\x84`@Q` \x01a@\x14\x91\x90aQ\xAAV[\x97Pa.;\x85`\x01`\x01`\xA0\x1B\x03\x16aAI\x88a4dV[`\x01`\x01`\xA0\x1B\x03\x16\x14\x84`@Q` \x01a@\x14\x91\x90aOaV[``\x81`@Q` \x01aAw\x91\x90aQ\xEBV[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x91PaA\xACa?2aA\x97\x86a3uV[`\rTa\t\x9D\x90`\x01`\x01`\xA0\x1B\x03\x16a3uV[`\rT\x90\x97PaA\xC9\x90`\x01`\x01`\xA0\x1B\x03\x16a?`\x85\x87a3\xDDV[\x96PaBU\x85`\x01`\x01`\xA0\x1B\x03\x16\x85`\x01`\x01`\xA0\x1B\x03\x16c\xF2\xB4\xE6\x17`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15aB\x16W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90aB:\x91\x90aJYV[`\x01`\x01`\xA0\x1B\x03\x16\x14\x83`@Q` \x01a;}\x91\x90aN\xDFV[\x96PaB\xE1\x86`\x01`\x01`\xA0\x1B\x03\x16\x85`\x01`\x01`\xA0\x1B\x03\x16c3\xD7\xE2\xBD`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15aB\xA2W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90aB\xC6\x91\x90aJYV[`\x01`\x01`\xA0\x1B\x03\x16\x14\x83`@Q` \x01a;}\x91\x90aO V[\x96PaC\x14\x83`\x01`\x01`\xA0\x1B\x03\x16aB\xF9\x86a4dV[`\x01`\x01`\xA0\x1B\x03\x16\x14\x83`@Q` \x01a;}\x91\x90aQ\xAAV[\x96Pa\x07\x9A`\0\x85`\x01`\x01`\xA0\x1B\x03\x16c@\x86\xD1\x83`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15aCYW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90aC}\x91\x90aKlV[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x11\x83`@Q` \x01a;}\x91\x90aOaV[``\x81`@Q` \x01aC\xAC\x91\x90aR,V[`@\x80Q`\x1F\x19\x81\x84\x03\x01\x81R\x90\x82\x90R`\x0FT\x90\x93PaC\xFC\x91`\x01`\x01`\xA0\x1B\x03\x86\x81\x16\x92\x16\x91\x90\x91\x14\x90aC\xE7\x90\x85\x90` \x01aN9V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x86a3\0V[\x93PaD3aD\"aD\r\x85a3uV[`\x0FTa\t\x9D\x90`\x01`\x01`\xA0\x1B\x03\x16a3uV[\x83`@Q` \x01aC\xE7\x91\x90aN\x9EV[\x93Pa\x04\xF0\x83`\x01`\x01`\xA0\x1B\x03\x16c\x12\x19\xA4\xE4`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15aDvW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90aD\x9A\x91\x90aK\x89V[`\x08\x14\x83`@Q` \x01aC\xE7\x91\x90aN\xDFV[``\x81`@Q` \x01aD\xC1\x91\x90aRmV[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x91PaE+aE\x1AaD\xE1\x85a3uV[`@\x80Q\x80\x82\x01\x90\x91R`\x05\x81R\x7F1.1.4\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` \x82\x01Ra\t\x9DV[\x83`@Q` \x01aC\xE7\x91\x90aN9V[\x93PaE\xA8\x83`\x01`\x01`\xA0\x1B\x03\x16c\xF3\xF4\x80\xD9`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15aEnW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90aE\x92\x91\x90aK\x89V[b\x01Q\x80\x14\x83`@Q` \x01aC\xE7\x91\x90aN\x9EV[\x93Pa\x04\xF0\x83`\x01`\x01`\xA0\x1B\x03\x16c\xDD$\xF9\xBF`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15aE\xEBW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90aF\x0F\x91\x90aK\x89V[b\x01\xEC0\x14\x83`@Q` \x01aC\xE7\x91\x90aN\xDFV[`@\x80Q`\xE0\x81\x01\x82R`\0\x80\x82R` \x82\x01\x81\x90R\x91\x81\x01\x82\x90R``\x81\x01\x82\x90R`\x80\x81\x01\x82\x90R`\xA0\x81\x01\x82\x90R`\xC0\x81\x01\x91\x90\x91R\x81Q`\xA4\x81\x14\x80\x15\x90aFrWP`|\x81\x14\x15[\x15aF\xA9W`@Q\x7F\xBF\xF6\xE4\x16\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\x01`@Q\x80\x91\x03\x90\xFD[` \x83\x01Q`@\x84\x01Q`T\x85\x01Q`h\x86\x01Q`|\x87\x01Q``\x93\x84\x1C\x93\x92\x83\x1C\x92\x91\x90\x91\x1C\x90`\0\x80\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\\\x88\x01aG\x0FWPP`\x9C\x88\x01Q`\xB0\x89\x01Q``\x91\x82\x1C\x91\x1C[`@\x80Q`\xE0\x81\x01\x82R\x97\x88R`\x01`\x01`\xA0\x1B\x03\x96\x87\x16` \x89\x01R\x94\x86\x16\x94\x87\x01\x94\x90\x94R\x91\x84\x16``\x86\x01R`\x80\x85\x01R\x82\x16`\xA0\x84\x01R\x16`\xC0\x82\x01R\x93\x92PPPV[\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[`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14aG\x9BW`\0\x80\xFD[PV[`\0`\x80\x82\x84\x03\x12\x15aG\xB0W`\0\x80\xFD[`@Q`\x80\x81\x01\x81\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17\x15aG\xD3WaG\xD3aGWV[`@R\x90P\x80\x825aG\xE4\x81aG\x86V[\x80\x82RP` \x83\x015` \x82\x01R`@\x83\x015`@\x82\x01R``\x83\x015aH\n\x81aG\x86V[``\x91\x90\x91\x01R\x92\x91PPV[\x80\x15\x15\x81\x14aG\x9BW`\0\x80\xFD[`\0`@\x82\x84\x03\x12\x15aH7W`\0\x80\xFD[`@Q`@\x81\x01\x81\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17\x15aHZWaHZaGWV[`@R\x90P\x80\x825aHk\x81aG\x86V[\x81R` \x83\x015aH{\x81aG\x86V[` \x91\x90\x91\x01R\x92\x91PPV[`\0\x80`\0`\xE0\x84\x86\x03\x12\x15aH\x9DW`\0\x80\xFD[aH\xA7\x85\x85aG\x9EV[\x92P`\x80\x84\x015aH\xB7\x81aH\x17V[\x91PaH\xC6\x85`\xA0\x86\x01aH%V[\x90P\x92P\x92P\x92V[`\0[\x83\x81\x10\x15aH\xEAW\x81\x81\x01Q\x83\x82\x01R` \x01aH\xD2V[\x83\x81\x11\x15aH\xF9W`\0\x84\x84\x01R[PPPPV[` \x81R`\0\x82Q\x80` \x84\x01RaI\x1E\x81`@\x85\x01` \x87\x01aH\xCFV[`\x1F\x01`\x1F\x19\x16\x91\x90\x91\x01`@\x01\x92\x91PPV[`\0\x80`\xA0\x83\x85\x03\x12\x15aIEW`\0\x80\xFD[aIO\x84\x84aG\x9EV[\x91P`\x80\x83\x015aI_\x81aH\x17V[\x80\x91PP\x92P\x92\x90PV[`\0`\xA0\x82\x84\x03\x12\x15aI|W`\0\x80\xFD[`@Q`\xA0\x81\x01\x81\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17\x15aI\x9FWaI\x9FaGWV[`@R\x90P\x80\x825aI\xB0\x81aG\x86V[\x80\x82RP` \x83\x015` \x82\x01R`@\x83\x015`@\x82\x01R``\x83\x015``\x82\x01R`\x80\x83\x015aI\xE0\x81aG\x86V[`\x80\x91\x90\x91\x01R\x92\x91PPV[`\0\x80`\0a\x01\0\x84\x86\x03\x12\x15aJ\x03W`\0\x80\xFD[aJ\r\x85\x85aIjV[\x92P`\xA0\x84\x015aJ\x1D\x81aH\x17V[\x91PaH\xC6\x85`\xC0\x86\x01aH%V[`\0\x80`\xC0\x83\x85\x03\x12\x15aJ?W`\0\x80\xFD[aJI\x84\x84aIjV[\x91P`\xA0\x83\x015aI_\x81aH\x17V[`\0` \x82\x84\x03\x12\x15aJkW`\0\x80\xFD[\x81Qa\x04t\x81aG\x86V[`\0\x83QaJ\x88\x81\x84` \x88\x01aH\xCFV[\x7F,\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x83\x01\x90\x81R\x83QaJ\xC2\x81`\x01\x84\x01` \x88\x01aH\xCFV[\x01`\x01\x01\x94\x93PPPPV[\x7FOPContractsManagerStandardValida\x81R\x7Ftor: \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` \x82\x01R`\0\x82QaK,\x81`%\x85\x01` \x87\x01aH\xCFV[\x91\x90\x91\x01`%\x01\x92\x91PPV[`\0` \x82\x84\x03\x12\x15aKKW`\0\x80\xFD[\x81Qa\x04t\x81aH\x17V[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14aG\x9BW`\0\x80\xFD[`\0` \x82\x84\x03\x12\x15aK~W`\0\x80\xFD[\x81Qa\x04t\x81aKVV[`\0` \x82\x84\x03\x12\x15aK\x9BW`\0\x80\xFD[PQ\x91\x90PV[\x80Qc\xFF\xFF\xFF\xFF\x81\x16\x81\x14aK\xB6W`\0\x80\xFD[\x91\x90PV[\x80Q`\xFF\x81\x16\x81\x14aK\xB6W`\0\x80\xFD[`\0`\xC0\x82\x84\x03\x12\x15aK\xDEW`\0\x80\xFD[`@Q`\xC0\x81\x01\x81\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17\x15aL\x01WaL\x01aGWV[`@RaL\r\x83aK\xA2V[\x81RaL\x1B` \x84\x01aK\xBBV[` \x82\x01RaL,`@\x84\x01aK\xBBV[`@\x82\x01RaL=``\x84\x01aK\xA2V[``\x82\x01RaLN`\x80\x84\x01aK\xA2V[`\x80\x82\x01R`\xA0\x83\x01Qo\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14aLvW`\0\x80\xFD[`\xA0\x82\x01R\x93\x92PPPV[`\0` \x82\x84\x03\x12\x15aL\x94W`\0\x80\xFD[a\x04t\x82aK\xA2V[`\0\x82QaL\xAF\x81\x84` \x87\x01aH\xCFV[\x91\x90\x91\x01\x92\x91PPV[`\0\x82QaL\xCB\x81\x84` \x87\x01aH\xCFV[\x7FOVERRIDES-L1PAOMULTISIG\0\0\0\0\0\0\0\0\0\x92\x01\x91\x82RP`\x17\x01\x91\x90PV[`\0\x82QaM\x0C\x81\x84` \x87\x01aH\xCFV[\x7F,\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x92\x01\x91\x82RP`\x01\x01\x91\x90PV[`\0\x82QaMM\x81\x84` \x87\x01aH\xCFV[\x7FOVERRIDES-CHALLENGER\0\0\0\0\0\0\0\0\0\0\0\0\x92\x01\x91\x82RP`\x14\x01\x91\x90PV[`\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x84\x11\x15aM\x97WaM\x97aGWV[`@Q`\x1F\x85\x01`\x1F\x19\x90\x81\x16`?\x01\x16\x81\x01\x90\x82\x82\x11\x81\x83\x10\x17\x15aM\xBFWaM\xBFaGWV[\x81`@R\x80\x93P\x85\x81R\x86\x86\x86\x01\x11\x15aM\xD8W`\0\x80\xFD[aM\xE6\x86` \x83\x01\x87aH\xCFV[PPP\x93\x92PPPV[`\0` \x82\x84\x03\x12\x15aN\x02W`\0\x80\xFD[\x81Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15aN\x19W`\0\x80\xFD[\x82\x01`\x1F\x81\x01\x84\x13aN*W`\0\x80\xFD[a\x04\xF0\x84\x82Q` \x84\x01aM|V[`\0\x82QaNK\x81\x84` \x87\x01aH\xCFV[\x7F-10\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x92\x01\x91\x82RP`\x03\x01\x91\x90PV[`\0\x80`@\x83\x85\x03\x12\x15aN\x8DW`\0\x80\xFD[PP\x80Q` \x90\x91\x01Q\x90\x92\x90\x91PV[`\0\x82QaN\xB0\x81\x84` \x87\x01aH\xCFV[\x7F-20\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x92\x01\x91\x82RP`\x03\x01\x91\x90PV[`\0\x82QaN\xF1\x81\x84` \x87\x01aH\xCFV[\x7F-30\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x92\x01\x91\x82RP`\x03\x01\x91\x90PV[`\0\x82QaO2\x81\x84` \x87\x01aH\xCFV[\x7F-40\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x92\x01\x91\x82RP`\x03\x01\x91\x90PV[`\0\x82QaOs\x81\x84` \x87\x01aH\xCFV[\x7F-60\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x92\x01\x91\x82RP`\x03\x01\x91\x90PV[`\0\x82QaO\xB4\x81\x84` \x87\x01aH\xCFV[\x7F-70\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x92\x01\x91\x82RP`\x03\x01\x91\x90PV[`\0\x82QaO\xF5\x81\x84` \x87\x01aH\xCFV[\x7F-80\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x92\x01\x91\x82RP`\x03\x01\x91\x90PV[`\0\x82QaP6\x81\x84` \x87\x01aH\xCFV[\x7F-90\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x92\x01\x91\x82RP`\x03\x01\x91\x90PV[`\0\x82QaPw\x81\x84` \x87\x01aH\xCFV[\x7F-100\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\x92\x01\x91\x82RP`\x04\x01\x91\x90PV[`\0\x82QaP\xB8\x81\x84` \x87\x01aH\xCFV[\x7F-110\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\x92\x01\x91\x82RP`\x04\x01\x91\x90PV[`\0\x82QaP\xF9\x81\x84` \x87\x01aH\xCFV[\x7F-120\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\x92\x01\x91\x82RP`\x04\x01\x91\x90PV[`\0\x82QaQ:\x81\x84` \x87\x01aH\xCFV[\x7F-GARGS\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\x92\x01\x91\x82RP`\x06\x01\x91\x90PV[`\0\x82QaQ{\x81\x84` \x87\x01aH\xCFV[\x7F-DWETH\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\x92\x01\x91\x82RP`\x06\x01\x91\x90PV[`\0\x82QaQ\xBC\x81\x84` \x87\x01aH\xCFV[\x7F-50\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x92\x01\x91\x82RP`\x03\x01\x91\x90PV[`\0\x82QaQ\xFD\x81\x84` \x87\x01aH\xCFV[\x7F-ANCHORP\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x92\x01\x91\x82RP`\x08\x01\x91\x90PV[`\0\x82QaR>\x81\x84` \x87\x01aH\xCFV[\x7F-VM\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x92\x01\x91\x82RP`\x03\x01\x91\x90PV[`\0\x82QaR\x7F\x81\x84` \x87\x01aH\xCFV[\x7F-PIMGO\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\x92\x01\x91\x82RP`\x06\x01\x91\x90PV\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**```solidity +struct Implementations { address l1ERC721BridgeImpl; address optimismPortalImpl; address optimismPortalInteropImpl; address ethLockboxImpl; address systemConfigImpl; address optimismMintableERC20FactoryImpl; address l1CrossDomainMessengerImpl; address l1StandardBridgeImpl; address disputeGameFactoryImpl; address anchorStateRegistryImpl; address delayedWETHImpl; address mipsImpl; address faultDisputeGameImpl; address permissionedDisputeGameImpl; } +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct Implementations { + #[allow(missing_docs)] + pub l1ERC721BridgeImpl: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub optimismPortalImpl: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub optimismPortalInteropImpl: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub ethLockboxImpl: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub systemConfigImpl: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub optimismMintableERC20FactoryImpl: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub l1CrossDomainMessengerImpl: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub l1StandardBridgeImpl: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub disputeGameFactoryImpl: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub anchorStateRegistryImpl: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub delayedWETHImpl: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub mipsImpl: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub faultDisputeGameImpl: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub permissionedDisputeGameImpl: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: Implementations) -> Self { + ( + value.l1ERC721BridgeImpl, + value.optimismPortalImpl, + value.optimismPortalInteropImpl, + value.ethLockboxImpl, + value.systemConfigImpl, + value.optimismMintableERC20FactoryImpl, + value.l1CrossDomainMessengerImpl, + value.l1StandardBridgeImpl, + value.disputeGameFactoryImpl, + value.anchorStateRegistryImpl, + value.delayedWETHImpl, + value.mipsImpl, + value.faultDisputeGameImpl, + value.permissionedDisputeGameImpl, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for Implementations { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + l1ERC721BridgeImpl: tuple.0, + optimismPortalImpl: tuple.1, + optimismPortalInteropImpl: tuple.2, + ethLockboxImpl: tuple.3, + systemConfigImpl: tuple.4, + optimismMintableERC20FactoryImpl: tuple.5, + l1CrossDomainMessengerImpl: tuple.6, + l1StandardBridgeImpl: tuple.7, + disputeGameFactoryImpl: tuple.8, + anchorStateRegistryImpl: tuple.9, + delayedWETHImpl: tuple.10, + mipsImpl: tuple.11, + faultDisputeGameImpl: tuple.12, + permissionedDisputeGameImpl: tuple.13, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolValue for Implementations { + type SolType = Self; + } + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for Implementations { + #[inline] + fn stv_to_tokens(&self) -> ::Token<'_> { + ( + ::tokenize( + &self.l1ERC721BridgeImpl, + ), + ::tokenize( + &self.optimismPortalImpl, + ), + ::tokenize( + &self.optimismPortalInteropImpl, + ), + ::tokenize( + &self.ethLockboxImpl, + ), + ::tokenize( + &self.systemConfigImpl, + ), + ::tokenize( + &self.optimismMintableERC20FactoryImpl, + ), + ::tokenize( + &self.l1CrossDomainMessengerImpl, + ), + ::tokenize( + &self.l1StandardBridgeImpl, + ), + ::tokenize( + &self.disputeGameFactoryImpl, + ), + ::tokenize( + &self.anchorStateRegistryImpl, + ), + ::tokenize( + &self.delayedWETHImpl, + ), + ::tokenize( + &self.mipsImpl, + ), + ::tokenize( + &self.faultDisputeGameImpl, + ), + ::tokenize( + &self.permissionedDisputeGameImpl, + ), + ) + } + #[inline] + fn stv_abi_encoded_size(&self) -> usize { + if let Some(size) = ::ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encoded_size(&tuple) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + ::eip712_hash_struct(self) + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + if let Some(size) = ::PACKED_ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for Implementations { + type RustType = Self; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = ::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + as alloy_sol_types::SolType>::valid_token(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + let tuple = as alloy_sol_types::SolType>::detokenize(token); + >>::from(tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolStruct for Implementations { + const NAME: &'static str = "Implementations"; + #[inline] + fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> { + alloy_sol_types::private::Cow::Borrowed( + "Implementations(address l1ERC721BridgeImpl,address optimismPortalImpl,address optimismPortalInteropImpl,address ethLockboxImpl,address systemConfigImpl,address optimismMintableERC20FactoryImpl,address l1CrossDomainMessengerImpl,address l1StandardBridgeImpl,address disputeGameFactoryImpl,address anchorStateRegistryImpl,address delayedWETHImpl,address mipsImpl,address faultDisputeGameImpl,address permissionedDisputeGameImpl)", + ) + } + #[inline] + fn eip712_components() -> alloy_sol_types::private::Vec< + alloy_sol_types::private::Cow<'static, str>, + > { + alloy_sol_types::private::Vec::new() + } + #[inline] + fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> { + ::eip712_root_type() + } + #[inline] + fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec { + [ + ::eip712_data_word( + &self.l1ERC721BridgeImpl, + ) + .0, + ::eip712_data_word( + &self.optimismPortalImpl, + ) + .0, + ::eip712_data_word( + &self.optimismPortalInteropImpl, + ) + .0, + ::eip712_data_word( + &self.ethLockboxImpl, + ) + .0, + ::eip712_data_word( + &self.systemConfigImpl, + ) + .0, + ::eip712_data_word( + &self.optimismMintableERC20FactoryImpl, + ) + .0, + ::eip712_data_word( + &self.l1CrossDomainMessengerImpl, + ) + .0, + ::eip712_data_word( + &self.l1StandardBridgeImpl, + ) + .0, + ::eip712_data_word( + &self.disputeGameFactoryImpl, + ) + .0, + ::eip712_data_word( + &self.anchorStateRegistryImpl, + ) + .0, + ::eip712_data_word( + &self.delayedWETHImpl, + ) + .0, + ::eip712_data_word( + &self.mipsImpl, + ) + .0, + ::eip712_data_word( + &self.faultDisputeGameImpl, + ) + .0, + ::eip712_data_word( + &self.permissionedDisputeGameImpl, + ) + .0, + ] + .concat() + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for Implementations { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + 0usize + + ::topic_preimage_length( + &rust.l1ERC721BridgeImpl, + ) + + ::topic_preimage_length( + &rust.optimismPortalImpl, + ) + + ::topic_preimage_length( + &rust.optimismPortalInteropImpl, + ) + + ::topic_preimage_length( + &rust.ethLockboxImpl, + ) + + ::topic_preimage_length( + &rust.systemConfigImpl, + ) + + ::topic_preimage_length( + &rust.optimismMintableERC20FactoryImpl, + ) + + ::topic_preimage_length( + &rust.l1CrossDomainMessengerImpl, + ) + + ::topic_preimage_length( + &rust.l1StandardBridgeImpl, + ) + + ::topic_preimage_length( + &rust.disputeGameFactoryImpl, + ) + + ::topic_preimage_length( + &rust.anchorStateRegistryImpl, + ) + + ::topic_preimage_length( + &rust.delayedWETHImpl, + ) + + ::topic_preimage_length( + &rust.mipsImpl, + ) + + ::topic_preimage_length( + &rust.faultDisputeGameImpl, + ) + + ::topic_preimage_length( + &rust.permissionedDisputeGameImpl, + ) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + out.reserve( + ::topic_preimage_length(rust), + ); + ::encode_topic_preimage( + &rust.l1ERC721BridgeImpl, + out, + ); + ::encode_topic_preimage( + &rust.optimismPortalImpl, + out, + ); + ::encode_topic_preimage( + &rust.optimismPortalInteropImpl, + out, + ); + ::encode_topic_preimage( + &rust.ethLockboxImpl, + out, + ); + ::encode_topic_preimage( + &rust.systemConfigImpl, + out, + ); + ::encode_topic_preimage( + &rust.optimismMintableERC20FactoryImpl, + out, + ); + ::encode_topic_preimage( + &rust.l1CrossDomainMessengerImpl, + out, + ); + ::encode_topic_preimage( + &rust.l1StandardBridgeImpl, + out, + ); + ::encode_topic_preimage( + &rust.disputeGameFactoryImpl, + out, + ); + ::encode_topic_preimage( + &rust.anchorStateRegistryImpl, + out, + ); + ::encode_topic_preimage( + &rust.delayedWETHImpl, + out, + ); + ::encode_topic_preimage( + &rust.mipsImpl, + out, + ); + ::encode_topic_preimage( + &rust.faultDisputeGameImpl, + out, + ); + ::encode_topic_preimage( + &rust.permissionedDisputeGameImpl, + out, + ); + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + let mut out = alloy_sol_types::private::Vec::new(); + ::encode_topic_preimage( + rust, + &mut out, + ); + alloy_sol_types::abi::token::WordToken( + alloy_sol_types::private::keccak256(out), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**```solidity +struct ValidationInput { address sysCfg; bytes32 absolutePrestate; uint256 l2ChainID; address proposer; } +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ValidationInput { + #[allow(missing_docs)] + pub sysCfg: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub absolutePrestate: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub l2ChainID: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub proposer: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Address, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::FixedBytes<32>, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::Address, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ValidationInput) -> Self { + (value.sysCfg, value.absolutePrestate, value.l2ChainID, value.proposer) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ValidationInput { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + sysCfg: tuple.0, + absolutePrestate: tuple.1, + l2ChainID: tuple.2, + proposer: tuple.3, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolValue for ValidationInput { + type SolType = Self; + } + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for ValidationInput { + #[inline] + fn stv_to_tokens(&self) -> ::Token<'_> { + ( + ::tokenize( + &self.sysCfg, + ), + as alloy_sol_types::SolType>::tokenize(&self.absolutePrestate), + as alloy_sol_types::SolType>::tokenize(&self.l2ChainID), + ::tokenize( + &self.proposer, + ), + ) + } + #[inline] + fn stv_abi_encoded_size(&self) -> usize { + if let Some(size) = ::ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encoded_size(&tuple) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + ::eip712_hash_struct(self) + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + if let Some(size) = ::PACKED_ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for ValidationInput { + type RustType = Self; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = ::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + as alloy_sol_types::SolType>::valid_token(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + let tuple = as alloy_sol_types::SolType>::detokenize(token); + >>::from(tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolStruct for ValidationInput { + const NAME: &'static str = "ValidationInput"; + #[inline] + fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> { + alloy_sol_types::private::Cow::Borrowed( + "ValidationInput(address sysCfg,bytes32 absolutePrestate,uint256 l2ChainID,address proposer)", + ) + } + #[inline] + fn eip712_components() -> alloy_sol_types::private::Vec< + alloy_sol_types::private::Cow<'static, str>, + > { + alloy_sol_types::private::Vec::new() + } + #[inline] + fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> { + ::eip712_root_type() + } + #[inline] + fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec { + [ + ::eip712_data_word( + &self.sysCfg, + ) + .0, + as alloy_sol_types::SolType>::eip712_data_word( + &self.absolutePrestate, + ) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.l2ChainID) + .0, + ::eip712_data_word( + &self.proposer, + ) + .0, + ] + .concat() + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for ValidationInput { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + 0usize + + ::topic_preimage_length( + &rust.sysCfg, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.absolutePrestate, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.l2ChainID, + ) + + ::topic_preimage_length( + &rust.proposer, + ) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + out.reserve( + ::topic_preimage_length(rust), + ); + ::encode_topic_preimage( + &rust.sysCfg, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.absolutePrestate, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.l2ChainID, + out, + ); + ::encode_topic_preimage( + &rust.proposer, + out, + ); + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + let mut out = alloy_sol_types::private::Vec::new(); + ::encode_topic_preimage( + rust, + &mut out, + ); + alloy_sol_types::abi::token::WordToken( + alloy_sol_types::private::keccak256(out), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**```solidity +struct ValidationInputDev { address sysCfg; bytes32 cannonPrestate; bytes32 cannonKonaPrestate; uint256 l2ChainID; address proposer; } +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ValidationInputDev { + #[allow(missing_docs)] + pub sysCfg: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub cannonPrestate: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub cannonKonaPrestate: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub l2ChainID: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub proposer: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Address, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::FixedBytes<32>, + alloy::sol_types::private::FixedBytes<32>, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::Address, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ValidationInputDev) -> Self { + ( + value.sysCfg, + value.cannonPrestate, + value.cannonKonaPrestate, + value.l2ChainID, + value.proposer, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ValidationInputDev { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + sysCfg: tuple.0, + cannonPrestate: tuple.1, + cannonKonaPrestate: tuple.2, + l2ChainID: tuple.3, + proposer: tuple.4, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolValue for ValidationInputDev { + type SolType = Self; + } + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for ValidationInputDev { + #[inline] + fn stv_to_tokens(&self) -> ::Token<'_> { + ( + ::tokenize( + &self.sysCfg, + ), + as alloy_sol_types::SolType>::tokenize(&self.cannonPrestate), + as alloy_sol_types::SolType>::tokenize(&self.cannonKonaPrestate), + as alloy_sol_types::SolType>::tokenize(&self.l2ChainID), + ::tokenize( + &self.proposer, + ), + ) + } + #[inline] + fn stv_abi_encoded_size(&self) -> usize { + if let Some(size) = ::ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encoded_size(&tuple) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + ::eip712_hash_struct(self) + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + if let Some(size) = ::PACKED_ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for ValidationInputDev { + type RustType = Self; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = ::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + as alloy_sol_types::SolType>::valid_token(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + let tuple = as alloy_sol_types::SolType>::detokenize(token); + >>::from(tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolStruct for ValidationInputDev { + const NAME: &'static str = "ValidationInputDev"; + #[inline] + fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> { + alloy_sol_types::private::Cow::Borrowed( + "ValidationInputDev(address sysCfg,bytes32 cannonPrestate,bytes32 cannonKonaPrestate,uint256 l2ChainID,address proposer)", + ) + } + #[inline] + fn eip712_components() -> alloy_sol_types::private::Vec< + alloy_sol_types::private::Cow<'static, str>, + > { + alloy_sol_types::private::Vec::new() + } + #[inline] + fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> { + ::eip712_root_type() + } + #[inline] + fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec { + [ + ::eip712_data_word( + &self.sysCfg, + ) + .0, + as alloy_sol_types::SolType>::eip712_data_word( + &self.cannonPrestate, + ) + .0, + as alloy_sol_types::SolType>::eip712_data_word( + &self.cannonKonaPrestate, + ) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.l2ChainID) + .0, + ::eip712_data_word( + &self.proposer, + ) + .0, + ] + .concat() + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for ValidationInputDev { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + 0usize + + ::topic_preimage_length( + &rust.sysCfg, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.cannonPrestate, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.cannonKonaPrestate, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.l2ChainID, + ) + + ::topic_preimage_length( + &rust.proposer, + ) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + out.reserve( + ::topic_preimage_length(rust), + ); + ::encode_topic_preimage( + &rust.sysCfg, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.cannonPrestate, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.cannonKonaPrestate, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.l2ChainID, + out, + ); + ::encode_topic_preimage( + &rust.proposer, + out, + ); + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + let mut out = alloy_sol_types::private::Vec::new(); + ::encode_topic_preimage( + rust, + &mut out, + ); + alloy_sol_types::abi::token::WordToken( + alloy_sol_types::private::keccak256(out), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**```solidity +struct ValidationOverrides { address l1PAOMultisig; address challenger; } +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ValidationOverrides { + #[allow(missing_docs)] + pub l1PAOMultisig: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub challenger: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ValidationOverrides) -> Self { + (value.l1PAOMultisig, value.challenger) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ValidationOverrides { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + l1PAOMultisig: tuple.0, + challenger: tuple.1, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolValue for ValidationOverrides { + type SolType = Self; + } + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for ValidationOverrides { + #[inline] + fn stv_to_tokens(&self) -> ::Token<'_> { + ( + ::tokenize( + &self.l1PAOMultisig, + ), + ::tokenize( + &self.challenger, + ), + ) + } + #[inline] + fn stv_abi_encoded_size(&self) -> usize { + if let Some(size) = ::ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encoded_size(&tuple) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + ::eip712_hash_struct(self) + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + if let Some(size) = ::PACKED_ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for ValidationOverrides { + type RustType = Self; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = ::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + as alloy_sol_types::SolType>::valid_token(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + let tuple = as alloy_sol_types::SolType>::detokenize(token); + >>::from(tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolStruct for ValidationOverrides { + const NAME: &'static str = "ValidationOverrides"; + #[inline] + fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> { + alloy_sol_types::private::Cow::Borrowed( + "ValidationOverrides(address l1PAOMultisig,address challenger)", + ) + } + #[inline] + fn eip712_components() -> alloy_sol_types::private::Vec< + alloy_sol_types::private::Cow<'static, str>, + > { + alloy_sol_types::private::Vec::new() + } + #[inline] + fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> { + ::eip712_root_type() + } + #[inline] + fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec { + [ + ::eip712_data_word( + &self.l1PAOMultisig, + ) + .0, + ::eip712_data_word( + &self.challenger, + ) + .0, + ] + .concat() + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for ValidationOverrides { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + 0usize + + ::topic_preimage_length( + &rust.l1PAOMultisig, + ) + + ::topic_preimage_length( + &rust.challenger, + ) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + out.reserve( + ::topic_preimage_length(rust), + ); + ::encode_topic_preimage( + &rust.l1PAOMultisig, + out, + ); + ::encode_topic_preimage( + &rust.challenger, + out, + ); + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + let mut out = alloy_sol_types::private::Vec::new(); + ::encode_topic_preimage( + rust, + &mut out, + ); + alloy_sol_types::abi::token::WordToken( + alloy_sol_types::private::keccak256(out), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidGameArgsLength()` and selector `0xbff6e416`. +```solidity +error InvalidGameArgsLength(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidGameArgsLength; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InvalidGameArgsLength) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InvalidGameArgsLength { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidGameArgsLength { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidGameArgsLength()"; + const SELECTOR: [u8; 4] = [191u8, 246u8, 228u8, 22u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + /**Constructor`. +```solidity +constructor(Implementations _implementations, address _superchainConfig, address _l1PAOMultisig, address _challenger, uint256 _withdrawalDelaySeconds, bytes32 _devFeatureBitmap); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct constructorCall { + #[allow(missing_docs)] + pub _implementations: ::RustType, + #[allow(missing_docs)] + pub _superchainConfig: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _l1PAOMultisig: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _challenger: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _withdrawalDelaySeconds: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _devFeatureBitmap: alloy::sol_types::private::FixedBytes<32>, + } + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + Implementations, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::FixedBytes<32>, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: constructorCall) -> Self { + ( + value._implementations, + value._superchainConfig, + value._l1PAOMultisig, + value._challenger, + value._withdrawalDelaySeconds, + value._devFeatureBitmap, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for constructorCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _implementations: tuple.0, + _superchainConfig: tuple.1, + _l1PAOMultisig: tuple.2, + _challenger: tuple.3, + _withdrawalDelaySeconds: tuple.4, + _devFeatureBitmap: tuple.5, + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolConstructor for constructorCall { + type Parameters<'a> = ( + Implementations, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._implementations, + ), + ::tokenize( + &self._superchainConfig, + ), + ::tokenize( + &self._l1PAOMultisig, + ), + ::tokenize( + &self._challenger, + ), + as alloy_sol_types::SolType>::tokenize( + &self._withdrawalDelaySeconds, + ), + as alloy_sol_types::SolType>::tokenize(&self._devFeatureBitmap), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `anchorStateRegistryImpl()` and selector `0x2aecd35c`. +```solidity +function anchorStateRegistryImpl() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct anchorStateRegistryImplCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`anchorStateRegistryImpl()`](anchorStateRegistryImplCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct anchorStateRegistryImplReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: anchorStateRegistryImplCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for anchorStateRegistryImplCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: anchorStateRegistryImplReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for anchorStateRegistryImplReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for anchorStateRegistryImplCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "anchorStateRegistryImpl()"; + const SELECTOR: [u8; 4] = [42u8, 236u8, 211u8, 92u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: anchorStateRegistryImplReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: anchorStateRegistryImplReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `challenger()` and selector `0x534db0e2`. +```solidity +function challenger() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct challengerCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`challenger()`](challengerCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct challengerReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: challengerCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for challengerCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: challengerReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for challengerReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for challengerCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "challenger()"; + const SELECTOR: [u8; 4] = [83u8, 77u8, 176u8, 226u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: challengerReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: challengerReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `delayedWETHImpl()` and selector `0x74459cf3`. +```solidity +function delayedWETHImpl() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct delayedWETHImplCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`delayedWETHImpl()`](delayedWETHImplCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct delayedWETHImplReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: delayedWETHImplCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for delayedWETHImplCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: delayedWETHImplReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for delayedWETHImplReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for delayedWETHImplCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "delayedWETHImpl()"; + const SELECTOR: [u8; 4] = [116u8, 69u8, 156u8, 243u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: delayedWETHImplReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: delayedWETHImplReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `devFeatureBitmap()` and selector `0x1d8a4e92`. +```solidity +function devFeatureBitmap() external view returns (bytes32); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct devFeatureBitmapCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`devFeatureBitmap()`](devFeatureBitmapCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct devFeatureBitmapReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: devFeatureBitmapCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for devFeatureBitmapCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: devFeatureBitmapReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for devFeatureBitmapReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for devFeatureBitmapCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::FixedBytes<32>; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "devFeatureBitmap()"; + const SELECTOR: [u8; 4] = [29u8, 138u8, 78u8, 146u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: devFeatureBitmapReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: devFeatureBitmapReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `disputeGameFactoryImpl()` and selector `0xbb98b3f4`. +```solidity +function disputeGameFactoryImpl() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct disputeGameFactoryImplCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`disputeGameFactoryImpl()`](disputeGameFactoryImplCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct disputeGameFactoryImplReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: disputeGameFactoryImplCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for disputeGameFactoryImplCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: disputeGameFactoryImplReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for disputeGameFactoryImplReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for disputeGameFactoryImplCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "disputeGameFactoryImpl()"; + const SELECTOR: [u8; 4] = [187u8, 152u8, 179u8, 244u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: disputeGameFactoryImplReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: disputeGameFactoryImplReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `ethLockboxImpl()` and selector `0x7b491a98`. +```solidity +function ethLockboxImpl() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ethLockboxImplCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`ethLockboxImpl()`](ethLockboxImplCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ethLockboxImplReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ethLockboxImplCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ethLockboxImplCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: ethLockboxImplReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for ethLockboxImplReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for ethLockboxImplCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ethLockboxImpl()"; + const SELECTOR: [u8; 4] = [123u8, 73u8, 26u8, 152u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: ethLockboxImplReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: ethLockboxImplReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `faultDisputeGameImpl()` and selector `0xdea21984`. +```solidity +function faultDisputeGameImpl() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct faultDisputeGameImplCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`faultDisputeGameImpl()`](faultDisputeGameImplCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct faultDisputeGameImplReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: faultDisputeGameImplCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for faultDisputeGameImplCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: faultDisputeGameImplReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for faultDisputeGameImplReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for faultDisputeGameImplCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "faultDisputeGameImpl()"; + const SELECTOR: [u8; 4] = [222u8, 162u8, 25u8, 132u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: faultDisputeGameImplReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: faultDisputeGameImplReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `l1CrossDomainMessengerImpl()` and selector `0x58256afb`. +```solidity +function l1CrossDomainMessengerImpl() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct l1CrossDomainMessengerImplCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`l1CrossDomainMessengerImpl()`](l1CrossDomainMessengerImplCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct l1CrossDomainMessengerImplReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: l1CrossDomainMessengerImplCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for l1CrossDomainMessengerImplCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: l1CrossDomainMessengerImplReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for l1CrossDomainMessengerImplReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for l1CrossDomainMessengerImplCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "l1CrossDomainMessengerImpl()"; + const SELECTOR: [u8; 4] = [88u8, 37u8, 106u8, 251u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: l1CrossDomainMessengerImplReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: l1CrossDomainMessengerImplReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `l1ERC721BridgeImpl()` and selector `0x7d8bd0d8`. +```solidity +function l1ERC721BridgeImpl() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct l1ERC721BridgeImplCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`l1ERC721BridgeImpl()`](l1ERC721BridgeImplCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct l1ERC721BridgeImplReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: l1ERC721BridgeImplCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for l1ERC721BridgeImplCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: l1ERC721BridgeImplReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for l1ERC721BridgeImplReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for l1ERC721BridgeImplCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "l1ERC721BridgeImpl()"; + const SELECTOR: [u8; 4] = [125u8, 139u8, 208u8, 216u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: l1ERC721BridgeImplReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: l1ERC721BridgeImplReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `l1PAOMultisig()` and selector `0xa4dec37a`. +```solidity +function l1PAOMultisig() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct l1PAOMultisigCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`l1PAOMultisig()`](l1PAOMultisigCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct l1PAOMultisigReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: l1PAOMultisigCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for l1PAOMultisigCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: l1PAOMultisigReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for l1PAOMultisigReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for l1PAOMultisigCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "l1PAOMultisig()"; + const SELECTOR: [u8; 4] = [164u8, 222u8, 195u8, 122u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: l1PAOMultisigReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: l1PAOMultisigReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `l1StandardBridgeImpl()` and selector `0xc34e047a`. +```solidity +function l1StandardBridgeImpl() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct l1StandardBridgeImplCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`l1StandardBridgeImpl()`](l1StandardBridgeImplCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct l1StandardBridgeImplReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: l1StandardBridgeImplCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for l1StandardBridgeImplCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: l1StandardBridgeImplReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for l1StandardBridgeImplReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for l1StandardBridgeImplCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "l1StandardBridgeImpl()"; + const SELECTOR: [u8; 4] = [195u8, 78u8, 4u8, 122u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: l1StandardBridgeImplReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: l1StandardBridgeImplReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `mipsImpl()` and selector `0xe303272c`. +```solidity +function mipsImpl() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct mipsImplCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`mipsImpl()`](mipsImplCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct mipsImplReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: mipsImplCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for mipsImplCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: mipsImplReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for mipsImplReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for mipsImplCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "mipsImpl()"; + const SELECTOR: [u8; 4] = [227u8, 3u8, 39u8, 44u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: mipsImplReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: mipsImplReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `optimismMintableERC20FactoryImpl()` and selector `0xe3fef4a8`. +```solidity +function optimismMintableERC20FactoryImpl() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct optimismMintableERC20FactoryImplCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`optimismMintableERC20FactoryImpl()`](optimismMintableERC20FactoryImplCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct optimismMintableERC20FactoryImplReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: optimismMintableERC20FactoryImplCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for optimismMintableERC20FactoryImplCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: optimismMintableERC20FactoryImplReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for optimismMintableERC20FactoryImplReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for optimismMintableERC20FactoryImplCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "optimismMintableERC20FactoryImpl()"; + const SELECTOR: [u8; 4] = [227u8, 254u8, 244u8, 168u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: optimismMintableERC20FactoryImplReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: optimismMintableERC20FactoryImplReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `optimismPortalImpl()` and selector `0xa38d5595`. +```solidity +function optimismPortalImpl() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct optimismPortalImplCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`optimismPortalImpl()`](optimismPortalImplCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct optimismPortalImplReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: optimismPortalImplCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for optimismPortalImplCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: optimismPortalImplReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for optimismPortalImplReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for optimismPortalImplCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "optimismPortalImpl()"; + const SELECTOR: [u8; 4] = [163u8, 141u8, 85u8, 149u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: optimismPortalImplReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: optimismPortalImplReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `optimismPortalInteropImpl()` and selector `0x6c0e2170`. +```solidity +function optimismPortalInteropImpl() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct optimismPortalInteropImplCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`optimismPortalInteropImpl()`](optimismPortalInteropImplCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct optimismPortalInteropImplReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: optimismPortalInteropImplCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for optimismPortalInteropImplCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: optimismPortalInteropImplReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for optimismPortalInteropImplReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for optimismPortalInteropImplCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "optimismPortalInteropImpl()"; + const SELECTOR: [u8; 4] = [108u8, 14u8, 33u8, 112u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: optimismPortalInteropImplReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: optimismPortalInteropImplReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `permissionedDisputeGameImpl()` and selector `0x98ccec3e`. +```solidity +function permissionedDisputeGameImpl() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct permissionedDisputeGameImplCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`permissionedDisputeGameImpl()`](permissionedDisputeGameImplCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct permissionedDisputeGameImplReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: permissionedDisputeGameImplCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for permissionedDisputeGameImplCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: permissionedDisputeGameImplReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for permissionedDisputeGameImplReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for permissionedDisputeGameImplCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "permissionedDisputeGameImpl()"; + const SELECTOR: [u8; 4] = [152u8, 204u8, 236u8, 62u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: permissionedDisputeGameImplReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: permissionedDisputeGameImplReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `preimageOracleVersion()` and selector `0xad7e7e40`. +```solidity +function preimageOracleVersion() external pure returns (string memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct preimageOracleVersionCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`preimageOracleVersion()`](preimageOracleVersionCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct preimageOracleVersionReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: preimageOracleVersionCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for preimageOracleVersionCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: preimageOracleVersionReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for preimageOracleVersionReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for preimageOracleVersionCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::String; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "preimageOracleVersion()"; + const SELECTOR: [u8; 4] = [173u8, 126u8, 126u8, 64u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: preimageOracleVersionReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: preimageOracleVersionReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `superchainConfig()` and selector `0x35e80ab3`. +```solidity +function superchainConfig() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct superchainConfigCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`superchainConfig()`](superchainConfigCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct superchainConfigReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: superchainConfigCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for superchainConfigCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: superchainConfigReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for superchainConfigReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for superchainConfigCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "superchainConfig()"; + const SELECTOR: [u8; 4] = [53u8, 232u8, 10u8, 179u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: superchainConfigReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: superchainConfigReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `systemConfigImpl()` and selector `0xbc3f6fd4`. +```solidity +function systemConfigImpl() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct systemConfigImplCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`systemConfigImpl()`](systemConfigImplCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct systemConfigImplReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: systemConfigImplCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for systemConfigImplCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: systemConfigImplReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for systemConfigImplReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for systemConfigImplCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "systemConfigImpl()"; + const SELECTOR: [u8; 4] = [188u8, 63u8, 111u8, 212u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: systemConfigImplReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: systemConfigImplReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `validate((address,bytes32,uint256,address),bool)` and selector `0x41fe5385`. +```solidity +function validate(ValidationInput memory _input, bool _allowFailure) external view returns (string memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct validate_0Call { + #[allow(missing_docs)] + pub _input: ::RustType, + #[allow(missing_docs)] + pub _allowFailure: bool, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`validate((address,bytes32,uint256,address),bool)`](validate_0Call) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct validate_0Return { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + ValidationInput, + alloy::sol_types::sol_data::Bool, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + bool, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: validate_0Call) -> Self { + (value._input, value._allowFailure) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for validate_0Call { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _input: tuple.0, + _allowFailure: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: validate_0Return) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for validate_0Return { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for validate_0Call { + type Parameters<'a> = (ValidationInput, alloy::sol_types::sol_data::Bool); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::String; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "validate((address,bytes32,uint256,address),bool)"; + const SELECTOR: [u8; 4] = [65u8, 254u8, 83u8, 133u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._input, + ), + ::tokenize( + &self._allowFailure, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: validate_0Return = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: validate_0Return = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `validate((address,bytes32,bytes32,uint256,address),bool)` and selector `0xf3edcbe1`. +```solidity +function validate(ValidationInputDev memory _input, bool _allowFailure) external view returns (string memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct validate_1Call { + #[allow(missing_docs)] + pub _input: ::RustType, + #[allow(missing_docs)] + pub _allowFailure: bool, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`validate((address,bytes32,bytes32,uint256,address),bool)`](validate_1Call) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct validate_1Return { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + ValidationInputDev, + alloy::sol_types::sol_data::Bool, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + bool, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: validate_1Call) -> Self { + (value._input, value._allowFailure) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for validate_1Call { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _input: tuple.0, + _allowFailure: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: validate_1Return) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for validate_1Return { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for validate_1Call { + type Parameters<'a> = (ValidationInputDev, alloy::sol_types::sol_data::Bool); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::String; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "validate((address,bytes32,bytes32,uint256,address),bool)"; + const SELECTOR: [u8; 4] = [243u8, 237u8, 203u8, 225u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._input, + ), + ::tokenize( + &self._allowFailure, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: validate_1Return = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: validate_1Return = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `validateWithOverrides((address,bytes32,uint256,address),bool,(address,address))` and selector `0x0e9d5cb9`. +```solidity +function validateWithOverrides(ValidationInput memory _input, bool _allowFailure, ValidationOverrides memory _overrides) external view returns (string memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct validateWithOverrides_0Call { + #[allow(missing_docs)] + pub _input: ::RustType, + #[allow(missing_docs)] + pub _allowFailure: bool, + #[allow(missing_docs)] + pub _overrides: ::RustType, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`validateWithOverrides((address,bytes32,uint256,address),bool,(address,address))`](validateWithOverrides_0Call) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct validateWithOverrides_0Return { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + ValidationInput, + alloy::sol_types::sol_data::Bool, + ValidationOverrides, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + bool, + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: validateWithOverrides_0Call) -> Self { + (value._input, value._allowFailure, value._overrides) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for validateWithOverrides_0Call { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _input: tuple.0, + _allowFailure: tuple.1, + _overrides: tuple.2, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: validateWithOverrides_0Return) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for validateWithOverrides_0Return { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for validateWithOverrides_0Call { + type Parameters<'a> = ( + ValidationInput, + alloy::sol_types::sol_data::Bool, + ValidationOverrides, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::String; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "validateWithOverrides((address,bytes32,uint256,address),bool,(address,address))"; + const SELECTOR: [u8; 4] = [14u8, 157u8, 92u8, 185u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._input, + ), + ::tokenize( + &self._allowFailure, + ), + ::tokenize( + &self._overrides, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: validateWithOverrides_0Return = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: validateWithOverrides_0Return = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `validateWithOverrides((address,bytes32,bytes32,uint256,address),bool,(address,address))` and selector `0x8970ac44`. +```solidity +function validateWithOverrides(ValidationInputDev memory _input, bool _allowFailure, ValidationOverrides memory _overrides) external view returns (string memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct validateWithOverrides_1Call { + #[allow(missing_docs)] + pub _input: ::RustType, + #[allow(missing_docs)] + pub _allowFailure: bool, + #[allow(missing_docs)] + pub _overrides: ::RustType, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`validateWithOverrides((address,bytes32,bytes32,uint256,address),bool,(address,address))`](validateWithOverrides_1Call) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct validateWithOverrides_1Return { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + ValidationInputDev, + alloy::sol_types::sol_data::Bool, + ValidationOverrides, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + bool, + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: validateWithOverrides_1Call) -> Self { + (value._input, value._allowFailure, value._overrides) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for validateWithOverrides_1Call { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _input: tuple.0, + _allowFailure: tuple.1, + _overrides: tuple.2, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: validateWithOverrides_1Return) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for validateWithOverrides_1Return { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for validateWithOverrides_1Call { + type Parameters<'a> = ( + ValidationInputDev, + alloy::sol_types::sol_data::Bool, + ValidationOverrides, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::String; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "validateWithOverrides((address,bytes32,bytes32,uint256,address),bool,(address,address))"; + const SELECTOR: [u8; 4] = [137u8, 112u8, 172u8, 68u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._input, + ), + ::tokenize( + &self._allowFailure, + ), + ::tokenize( + &self._overrides, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: validateWithOverrides_1Return = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: validateWithOverrides_1Return = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `version()` and selector `0x54fd4d50`. +```solidity +function version() external view returns (string memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`version()`](versionCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for versionCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::String; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "version()"; + const SELECTOR: [u8; 4] = [84u8, 253u8, 77u8, 80u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `withdrawalDelaySeconds()` and selector `0x71839418`. +```solidity +function withdrawalDelaySeconds() external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct withdrawalDelaySecondsCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`withdrawalDelaySeconds()`](withdrawalDelaySecondsCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct withdrawalDelaySecondsReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: withdrawalDelaySecondsCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for withdrawalDelaySecondsCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: withdrawalDelaySecondsReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for withdrawalDelaySecondsReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for withdrawalDelaySecondsCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "withdrawalDelaySeconds()"; + const SELECTOR: [u8; 4] = [113u8, 131u8, 148u8, 24u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: withdrawalDelaySecondsReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: withdrawalDelaySecondsReturn = r.into(); + r._0 + }) + } + } + }; + ///Container for all the [`OPContractsManagerStandardValidator`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum OPContractsManagerStandardValidatorCalls { + #[allow(missing_docs)] + anchorStateRegistryImpl(anchorStateRegistryImplCall), + #[allow(missing_docs)] + challenger(challengerCall), + #[allow(missing_docs)] + delayedWETHImpl(delayedWETHImplCall), + #[allow(missing_docs)] + devFeatureBitmap(devFeatureBitmapCall), + #[allow(missing_docs)] + disputeGameFactoryImpl(disputeGameFactoryImplCall), + #[allow(missing_docs)] + ethLockboxImpl(ethLockboxImplCall), + #[allow(missing_docs)] + faultDisputeGameImpl(faultDisputeGameImplCall), + #[allow(missing_docs)] + l1CrossDomainMessengerImpl(l1CrossDomainMessengerImplCall), + #[allow(missing_docs)] + l1ERC721BridgeImpl(l1ERC721BridgeImplCall), + #[allow(missing_docs)] + l1PAOMultisig(l1PAOMultisigCall), + #[allow(missing_docs)] + l1StandardBridgeImpl(l1StandardBridgeImplCall), + #[allow(missing_docs)] + mipsImpl(mipsImplCall), + #[allow(missing_docs)] + optimismMintableERC20FactoryImpl(optimismMintableERC20FactoryImplCall), + #[allow(missing_docs)] + optimismPortalImpl(optimismPortalImplCall), + #[allow(missing_docs)] + optimismPortalInteropImpl(optimismPortalInteropImplCall), + #[allow(missing_docs)] + permissionedDisputeGameImpl(permissionedDisputeGameImplCall), + #[allow(missing_docs)] + preimageOracleVersion(preimageOracleVersionCall), + #[allow(missing_docs)] + superchainConfig(superchainConfigCall), + #[allow(missing_docs)] + systemConfigImpl(systemConfigImplCall), + #[allow(missing_docs)] + validate_0(validate_0Call), + #[allow(missing_docs)] + validate_1(validate_1Call), + #[allow(missing_docs)] + validateWithOverrides_0(validateWithOverrides_0Call), + #[allow(missing_docs)] + validateWithOverrides_1(validateWithOverrides_1Call), + #[allow(missing_docs)] + version(versionCall), + #[allow(missing_docs)] + withdrawalDelaySeconds(withdrawalDelaySecondsCall), + } + impl OPContractsManagerStandardValidatorCalls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [14u8, 157u8, 92u8, 185u8], + [29u8, 138u8, 78u8, 146u8], + [42u8, 236u8, 211u8, 92u8], + [53u8, 232u8, 10u8, 179u8], + [65u8, 254u8, 83u8, 133u8], + [83u8, 77u8, 176u8, 226u8], + [84u8, 253u8, 77u8, 80u8], + [88u8, 37u8, 106u8, 251u8], + [108u8, 14u8, 33u8, 112u8], + [113u8, 131u8, 148u8, 24u8], + [116u8, 69u8, 156u8, 243u8], + [123u8, 73u8, 26u8, 152u8], + [125u8, 139u8, 208u8, 216u8], + [137u8, 112u8, 172u8, 68u8], + [152u8, 204u8, 236u8, 62u8], + [163u8, 141u8, 85u8, 149u8], + [164u8, 222u8, 195u8, 122u8], + [173u8, 126u8, 126u8, 64u8], + [187u8, 152u8, 179u8, 244u8], + [188u8, 63u8, 111u8, 212u8], + [195u8, 78u8, 4u8, 122u8], + [222u8, 162u8, 25u8, 132u8], + [227u8, 3u8, 39u8, 44u8], + [227u8, 254u8, 244u8, 168u8], + [243u8, 237u8, 203u8, 225u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(validateWithOverrides_0), + ::core::stringify!(devFeatureBitmap), + ::core::stringify!(anchorStateRegistryImpl), + ::core::stringify!(superchainConfig), + ::core::stringify!(validate_0), + ::core::stringify!(challenger), + ::core::stringify!(version), + ::core::stringify!(l1CrossDomainMessengerImpl), + ::core::stringify!(optimismPortalInteropImpl), + ::core::stringify!(withdrawalDelaySeconds), + ::core::stringify!(delayedWETHImpl), + ::core::stringify!(ethLockboxImpl), + ::core::stringify!(l1ERC721BridgeImpl), + ::core::stringify!(validateWithOverrides_1), + ::core::stringify!(permissionedDisputeGameImpl), + ::core::stringify!(optimismPortalImpl), + ::core::stringify!(l1PAOMultisig), + ::core::stringify!(preimageOracleVersion), + ::core::stringify!(disputeGameFactoryImpl), + ::core::stringify!(systemConfigImpl), + ::core::stringify!(l1StandardBridgeImpl), + ::core::stringify!(faultDisputeGameImpl), + ::core::stringify!(mipsImpl), + ::core::stringify!(optimismMintableERC20FactoryImpl), + ::core::stringify!(validate_1), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for OPContractsManagerStandardValidatorCalls { + const NAME: &'static str = "OPContractsManagerStandardValidatorCalls"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 25usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::anchorStateRegistryImpl(_) => { + ::SELECTOR + } + Self::challenger(_) => { + ::SELECTOR + } + Self::delayedWETHImpl(_) => { + ::SELECTOR + } + Self::devFeatureBitmap(_) => { + ::SELECTOR + } + Self::disputeGameFactoryImpl(_) => { + ::SELECTOR + } + Self::ethLockboxImpl(_) => { + ::SELECTOR + } + Self::faultDisputeGameImpl(_) => { + ::SELECTOR + } + Self::l1CrossDomainMessengerImpl(_) => { + ::SELECTOR + } + Self::l1ERC721BridgeImpl(_) => { + ::SELECTOR + } + Self::l1PAOMultisig(_) => { + ::SELECTOR + } + Self::l1StandardBridgeImpl(_) => { + ::SELECTOR + } + Self::mipsImpl(_) => ::SELECTOR, + Self::optimismMintableERC20FactoryImpl(_) => { + ::SELECTOR + } + Self::optimismPortalImpl(_) => { + ::SELECTOR + } + Self::optimismPortalInteropImpl(_) => { + ::SELECTOR + } + Self::permissionedDisputeGameImpl(_) => { + ::SELECTOR + } + Self::preimageOracleVersion(_) => { + ::SELECTOR + } + Self::superchainConfig(_) => { + ::SELECTOR + } + Self::systemConfigImpl(_) => { + ::SELECTOR + } + Self::validate_0(_) => { + ::SELECTOR + } + Self::validate_1(_) => { + ::SELECTOR + } + Self::validateWithOverrides_0(_) => { + ::SELECTOR + } + Self::validateWithOverrides_1(_) => { + ::SELECTOR + } + Self::version(_) => ::SELECTOR, + Self::withdrawalDelaySeconds(_) => { + ::SELECTOR + } + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn validateWithOverrides_0( + data: &[u8], + ) -> alloy_sol_types::Result< + OPContractsManagerStandardValidatorCalls, + > { + ::abi_decode_raw( + data, + ) + .map( + OPContractsManagerStandardValidatorCalls::validateWithOverrides_0, + ) + } + validateWithOverrides_0 + }, + { + fn devFeatureBitmap( + data: &[u8], + ) -> alloy_sol_types::Result< + OPContractsManagerStandardValidatorCalls, + > { + ::abi_decode_raw( + data, + ) + .map( + OPContractsManagerStandardValidatorCalls::devFeatureBitmap, + ) + } + devFeatureBitmap + }, + { + fn anchorStateRegistryImpl( + data: &[u8], + ) -> alloy_sol_types::Result< + OPContractsManagerStandardValidatorCalls, + > { + ::abi_decode_raw( + data, + ) + .map( + OPContractsManagerStandardValidatorCalls::anchorStateRegistryImpl, + ) + } + anchorStateRegistryImpl + }, + { + fn superchainConfig( + data: &[u8], + ) -> alloy_sol_types::Result< + OPContractsManagerStandardValidatorCalls, + > { + ::abi_decode_raw( + data, + ) + .map( + OPContractsManagerStandardValidatorCalls::superchainConfig, + ) + } + superchainConfig + }, + { + fn validate_0( + data: &[u8], + ) -> alloy_sol_types::Result< + OPContractsManagerStandardValidatorCalls, + > { + ::abi_decode_raw( + data, + ) + .map(OPContractsManagerStandardValidatorCalls::validate_0) + } + validate_0 + }, + { + fn challenger( + data: &[u8], + ) -> alloy_sol_types::Result< + OPContractsManagerStandardValidatorCalls, + > { + ::abi_decode_raw( + data, + ) + .map(OPContractsManagerStandardValidatorCalls::challenger) + } + challenger + }, + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result< + OPContractsManagerStandardValidatorCalls, + > { + ::abi_decode_raw(data) + .map(OPContractsManagerStandardValidatorCalls::version) + } + version + }, + { + fn l1CrossDomainMessengerImpl( + data: &[u8], + ) -> alloy_sol_types::Result< + OPContractsManagerStandardValidatorCalls, + > { + ::abi_decode_raw( + data, + ) + .map( + OPContractsManagerStandardValidatorCalls::l1CrossDomainMessengerImpl, + ) + } + l1CrossDomainMessengerImpl + }, + { + fn optimismPortalInteropImpl( + data: &[u8], + ) -> alloy_sol_types::Result< + OPContractsManagerStandardValidatorCalls, + > { + ::abi_decode_raw( + data, + ) + .map( + OPContractsManagerStandardValidatorCalls::optimismPortalInteropImpl, + ) + } + optimismPortalInteropImpl + }, + { + fn withdrawalDelaySeconds( + data: &[u8], + ) -> alloy_sol_types::Result< + OPContractsManagerStandardValidatorCalls, + > { + ::abi_decode_raw( + data, + ) + .map( + OPContractsManagerStandardValidatorCalls::withdrawalDelaySeconds, + ) + } + withdrawalDelaySeconds + }, + { + fn delayedWETHImpl( + data: &[u8], + ) -> alloy_sol_types::Result< + OPContractsManagerStandardValidatorCalls, + > { + ::abi_decode_raw( + data, + ) + .map( + OPContractsManagerStandardValidatorCalls::delayedWETHImpl, + ) + } + delayedWETHImpl + }, + { + fn ethLockboxImpl( + data: &[u8], + ) -> alloy_sol_types::Result< + OPContractsManagerStandardValidatorCalls, + > { + ::abi_decode_raw( + data, + ) + .map( + OPContractsManagerStandardValidatorCalls::ethLockboxImpl, + ) + } + ethLockboxImpl + }, + { + fn l1ERC721BridgeImpl( + data: &[u8], + ) -> alloy_sol_types::Result< + OPContractsManagerStandardValidatorCalls, + > { + ::abi_decode_raw( + data, + ) + .map( + OPContractsManagerStandardValidatorCalls::l1ERC721BridgeImpl, + ) + } + l1ERC721BridgeImpl + }, + { + fn validateWithOverrides_1( + data: &[u8], + ) -> alloy_sol_types::Result< + OPContractsManagerStandardValidatorCalls, + > { + ::abi_decode_raw( + data, + ) + .map( + OPContractsManagerStandardValidatorCalls::validateWithOverrides_1, + ) + } + validateWithOverrides_1 + }, + { + fn permissionedDisputeGameImpl( + data: &[u8], + ) -> alloy_sol_types::Result< + OPContractsManagerStandardValidatorCalls, + > { + ::abi_decode_raw( + data, + ) + .map( + OPContractsManagerStandardValidatorCalls::permissionedDisputeGameImpl, + ) + } + permissionedDisputeGameImpl + }, + { + fn optimismPortalImpl( + data: &[u8], + ) -> alloy_sol_types::Result< + OPContractsManagerStandardValidatorCalls, + > { + ::abi_decode_raw( + data, + ) + .map( + OPContractsManagerStandardValidatorCalls::optimismPortalImpl, + ) + } + optimismPortalImpl + }, + { + fn l1PAOMultisig( + data: &[u8], + ) -> alloy_sol_types::Result< + OPContractsManagerStandardValidatorCalls, + > { + ::abi_decode_raw( + data, + ) + .map(OPContractsManagerStandardValidatorCalls::l1PAOMultisig) + } + l1PAOMultisig + }, + { + fn preimageOracleVersion( + data: &[u8], + ) -> alloy_sol_types::Result< + OPContractsManagerStandardValidatorCalls, + > { + ::abi_decode_raw( + data, + ) + .map( + OPContractsManagerStandardValidatorCalls::preimageOracleVersion, + ) + } + preimageOracleVersion + }, + { + fn disputeGameFactoryImpl( + data: &[u8], + ) -> alloy_sol_types::Result< + OPContractsManagerStandardValidatorCalls, + > { + ::abi_decode_raw( + data, + ) + .map( + OPContractsManagerStandardValidatorCalls::disputeGameFactoryImpl, + ) + } + disputeGameFactoryImpl + }, + { + fn systemConfigImpl( + data: &[u8], + ) -> alloy_sol_types::Result< + OPContractsManagerStandardValidatorCalls, + > { + ::abi_decode_raw( + data, + ) + .map( + OPContractsManagerStandardValidatorCalls::systemConfigImpl, + ) + } + systemConfigImpl + }, + { + fn l1StandardBridgeImpl( + data: &[u8], + ) -> alloy_sol_types::Result< + OPContractsManagerStandardValidatorCalls, + > { + ::abi_decode_raw( + data, + ) + .map( + OPContractsManagerStandardValidatorCalls::l1StandardBridgeImpl, + ) + } + l1StandardBridgeImpl + }, + { + fn faultDisputeGameImpl( + data: &[u8], + ) -> alloy_sol_types::Result< + OPContractsManagerStandardValidatorCalls, + > { + ::abi_decode_raw( + data, + ) + .map( + OPContractsManagerStandardValidatorCalls::faultDisputeGameImpl, + ) + } + faultDisputeGameImpl + }, + { + fn mipsImpl( + data: &[u8], + ) -> alloy_sol_types::Result< + OPContractsManagerStandardValidatorCalls, + > { + ::abi_decode_raw(data) + .map(OPContractsManagerStandardValidatorCalls::mipsImpl) + } + mipsImpl + }, + { + fn optimismMintableERC20FactoryImpl( + data: &[u8], + ) -> alloy_sol_types::Result< + OPContractsManagerStandardValidatorCalls, + > { + ::abi_decode_raw( + data, + ) + .map( + OPContractsManagerStandardValidatorCalls::optimismMintableERC20FactoryImpl, + ) + } + optimismMintableERC20FactoryImpl + }, + { + fn validate_1( + data: &[u8], + ) -> alloy_sol_types::Result< + OPContractsManagerStandardValidatorCalls, + > { + ::abi_decode_raw( + data, + ) + .map(OPContractsManagerStandardValidatorCalls::validate_1) + } + validate_1 + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn validateWithOverrides_0( + data: &[u8], + ) -> alloy_sol_types::Result< + OPContractsManagerStandardValidatorCalls, + > { + ::abi_decode_raw_validate( + data, + ) + .map( + OPContractsManagerStandardValidatorCalls::validateWithOverrides_0, + ) + } + validateWithOverrides_0 + }, + { + fn devFeatureBitmap( + data: &[u8], + ) -> alloy_sol_types::Result< + OPContractsManagerStandardValidatorCalls, + > { + ::abi_decode_raw_validate( + data, + ) + .map( + OPContractsManagerStandardValidatorCalls::devFeatureBitmap, + ) + } + devFeatureBitmap + }, + { + fn anchorStateRegistryImpl( + data: &[u8], + ) -> alloy_sol_types::Result< + OPContractsManagerStandardValidatorCalls, + > { + ::abi_decode_raw_validate( + data, + ) + .map( + OPContractsManagerStandardValidatorCalls::anchorStateRegistryImpl, + ) + } + anchorStateRegistryImpl + }, + { + fn superchainConfig( + data: &[u8], + ) -> alloy_sol_types::Result< + OPContractsManagerStandardValidatorCalls, + > { + ::abi_decode_raw_validate( + data, + ) + .map( + OPContractsManagerStandardValidatorCalls::superchainConfig, + ) + } + superchainConfig + }, + { + fn validate_0( + data: &[u8], + ) -> alloy_sol_types::Result< + OPContractsManagerStandardValidatorCalls, + > { + ::abi_decode_raw_validate( + data, + ) + .map(OPContractsManagerStandardValidatorCalls::validate_0) + } + validate_0 + }, + { + fn challenger( + data: &[u8], + ) -> alloy_sol_types::Result< + OPContractsManagerStandardValidatorCalls, + > { + ::abi_decode_raw_validate( + data, + ) + .map(OPContractsManagerStandardValidatorCalls::challenger) + } + challenger + }, + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result< + OPContractsManagerStandardValidatorCalls, + > { + ::abi_decode_raw_validate( + data, + ) + .map(OPContractsManagerStandardValidatorCalls::version) + } + version + }, + { + fn l1CrossDomainMessengerImpl( + data: &[u8], + ) -> alloy_sol_types::Result< + OPContractsManagerStandardValidatorCalls, + > { + ::abi_decode_raw_validate( + data, + ) + .map( + OPContractsManagerStandardValidatorCalls::l1CrossDomainMessengerImpl, + ) + } + l1CrossDomainMessengerImpl + }, + { + fn optimismPortalInteropImpl( + data: &[u8], + ) -> alloy_sol_types::Result< + OPContractsManagerStandardValidatorCalls, + > { + ::abi_decode_raw_validate( + data, + ) + .map( + OPContractsManagerStandardValidatorCalls::optimismPortalInteropImpl, + ) + } + optimismPortalInteropImpl + }, + { + fn withdrawalDelaySeconds( + data: &[u8], + ) -> alloy_sol_types::Result< + OPContractsManagerStandardValidatorCalls, + > { + ::abi_decode_raw_validate( + data, + ) + .map( + OPContractsManagerStandardValidatorCalls::withdrawalDelaySeconds, + ) + } + withdrawalDelaySeconds + }, + { + fn delayedWETHImpl( + data: &[u8], + ) -> alloy_sol_types::Result< + OPContractsManagerStandardValidatorCalls, + > { + ::abi_decode_raw_validate( + data, + ) + .map( + OPContractsManagerStandardValidatorCalls::delayedWETHImpl, + ) + } + delayedWETHImpl + }, + { + fn ethLockboxImpl( + data: &[u8], + ) -> alloy_sol_types::Result< + OPContractsManagerStandardValidatorCalls, + > { + ::abi_decode_raw_validate( + data, + ) + .map( + OPContractsManagerStandardValidatorCalls::ethLockboxImpl, + ) + } + ethLockboxImpl + }, + { + fn l1ERC721BridgeImpl( + data: &[u8], + ) -> alloy_sol_types::Result< + OPContractsManagerStandardValidatorCalls, + > { + ::abi_decode_raw_validate( + data, + ) + .map( + OPContractsManagerStandardValidatorCalls::l1ERC721BridgeImpl, + ) + } + l1ERC721BridgeImpl + }, + { + fn validateWithOverrides_1( + data: &[u8], + ) -> alloy_sol_types::Result< + OPContractsManagerStandardValidatorCalls, + > { + ::abi_decode_raw_validate( + data, + ) + .map( + OPContractsManagerStandardValidatorCalls::validateWithOverrides_1, + ) + } + validateWithOverrides_1 + }, + { + fn permissionedDisputeGameImpl( + data: &[u8], + ) -> alloy_sol_types::Result< + OPContractsManagerStandardValidatorCalls, + > { + ::abi_decode_raw_validate( + data, + ) + .map( + OPContractsManagerStandardValidatorCalls::permissionedDisputeGameImpl, + ) + } + permissionedDisputeGameImpl + }, + { + fn optimismPortalImpl( + data: &[u8], + ) -> alloy_sol_types::Result< + OPContractsManagerStandardValidatorCalls, + > { + ::abi_decode_raw_validate( + data, + ) + .map( + OPContractsManagerStandardValidatorCalls::optimismPortalImpl, + ) + } + optimismPortalImpl + }, + { + fn l1PAOMultisig( + data: &[u8], + ) -> alloy_sol_types::Result< + OPContractsManagerStandardValidatorCalls, + > { + ::abi_decode_raw_validate( + data, + ) + .map(OPContractsManagerStandardValidatorCalls::l1PAOMultisig) + } + l1PAOMultisig + }, + { + fn preimageOracleVersion( + data: &[u8], + ) -> alloy_sol_types::Result< + OPContractsManagerStandardValidatorCalls, + > { + ::abi_decode_raw_validate( + data, + ) + .map( + OPContractsManagerStandardValidatorCalls::preimageOracleVersion, + ) + } + preimageOracleVersion + }, + { + fn disputeGameFactoryImpl( + data: &[u8], + ) -> alloy_sol_types::Result< + OPContractsManagerStandardValidatorCalls, + > { + ::abi_decode_raw_validate( + data, + ) + .map( + OPContractsManagerStandardValidatorCalls::disputeGameFactoryImpl, + ) + } + disputeGameFactoryImpl + }, + { + fn systemConfigImpl( + data: &[u8], + ) -> alloy_sol_types::Result< + OPContractsManagerStandardValidatorCalls, + > { + ::abi_decode_raw_validate( + data, + ) + .map( + OPContractsManagerStandardValidatorCalls::systemConfigImpl, + ) + } + systemConfigImpl + }, + { + fn l1StandardBridgeImpl( + data: &[u8], + ) -> alloy_sol_types::Result< + OPContractsManagerStandardValidatorCalls, + > { + ::abi_decode_raw_validate( + data, + ) + .map( + OPContractsManagerStandardValidatorCalls::l1StandardBridgeImpl, + ) + } + l1StandardBridgeImpl + }, + { + fn faultDisputeGameImpl( + data: &[u8], + ) -> alloy_sol_types::Result< + OPContractsManagerStandardValidatorCalls, + > { + ::abi_decode_raw_validate( + data, + ) + .map( + OPContractsManagerStandardValidatorCalls::faultDisputeGameImpl, + ) + } + faultDisputeGameImpl + }, + { + fn mipsImpl( + data: &[u8], + ) -> alloy_sol_types::Result< + OPContractsManagerStandardValidatorCalls, + > { + ::abi_decode_raw_validate( + data, + ) + .map(OPContractsManagerStandardValidatorCalls::mipsImpl) + } + mipsImpl + }, + { + fn optimismMintableERC20FactoryImpl( + data: &[u8], + ) -> alloy_sol_types::Result< + OPContractsManagerStandardValidatorCalls, + > { + ::abi_decode_raw_validate( + data, + ) + .map( + OPContractsManagerStandardValidatorCalls::optimismMintableERC20FactoryImpl, + ) + } + optimismMintableERC20FactoryImpl + }, + { + fn validate_1( + data: &[u8], + ) -> alloy_sol_types::Result< + OPContractsManagerStandardValidatorCalls, + > { + ::abi_decode_raw_validate( + data, + ) + .map(OPContractsManagerStandardValidatorCalls::validate_1) + } + validate_1 + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::anchorStateRegistryImpl(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::challenger(inner) => { + ::abi_encoded_size(inner) + } + Self::delayedWETHImpl(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::devFeatureBitmap(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::disputeGameFactoryImpl(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ethLockboxImpl(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::faultDisputeGameImpl(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::l1CrossDomainMessengerImpl(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::l1ERC721BridgeImpl(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::l1PAOMultisig(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::l1StandardBridgeImpl(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::mipsImpl(inner) => { + ::abi_encoded_size(inner) + } + Self::optimismMintableERC20FactoryImpl(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::optimismPortalImpl(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::optimismPortalInteropImpl(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::permissionedDisputeGameImpl(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::preimageOracleVersion(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::superchainConfig(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::systemConfigImpl(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::validate_0(inner) => { + ::abi_encoded_size(inner) + } + Self::validate_1(inner) => { + ::abi_encoded_size(inner) + } + Self::validateWithOverrides_0(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::validateWithOverrides_1(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::version(inner) => { + ::abi_encoded_size(inner) + } + Self::withdrawalDelaySeconds(inner) => { + ::abi_encoded_size( + inner, + ) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::anchorStateRegistryImpl(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::challenger(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::delayedWETHImpl(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::devFeatureBitmap(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::disputeGameFactoryImpl(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ethLockboxImpl(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::faultDisputeGameImpl(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::l1CrossDomainMessengerImpl(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::l1ERC721BridgeImpl(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::l1PAOMultisig(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::l1StandardBridgeImpl(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::mipsImpl(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::optimismMintableERC20FactoryImpl(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::optimismPortalImpl(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::optimismPortalInteropImpl(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::permissionedDisputeGameImpl(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::preimageOracleVersion(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::superchainConfig(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::systemConfigImpl(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::validate_0(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::validate_1(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::validateWithOverrides_0(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::validateWithOverrides_1(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::version(inner) => { + ::abi_encode_raw(inner, out) + } + Self::withdrawalDelaySeconds(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + } + } + } + ///Container for all the [`OPContractsManagerStandardValidator`](self) custom errors. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum OPContractsManagerStandardValidatorErrors { + #[allow(missing_docs)] + InvalidGameArgsLength(InvalidGameArgsLength), + } + impl OPContractsManagerStandardValidatorErrors { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[[191u8, 246u8, 228u8, 22u8]]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(InvalidGameArgsLength), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for OPContractsManagerStandardValidatorErrors { + const NAME: &'static str = "OPContractsManagerStandardValidatorErrors"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 1usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::InvalidGameArgsLength(_) => { + ::SELECTOR + } + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn InvalidGameArgsLength( + data: &[u8], + ) -> alloy_sol_types::Result< + OPContractsManagerStandardValidatorErrors, + > { + ::abi_decode_raw( + data, + ) + .map( + OPContractsManagerStandardValidatorErrors::InvalidGameArgsLength, + ) + } + InvalidGameArgsLength + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn InvalidGameArgsLength( + data: &[u8], + ) -> alloy_sol_types::Result< + OPContractsManagerStandardValidatorErrors, + > { + ::abi_decode_raw_validate( + data, + ) + .map( + OPContractsManagerStandardValidatorErrors::InvalidGameArgsLength, + ) + } + InvalidGameArgsLength + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::InvalidGameArgsLength(inner) => { + ::abi_encoded_size( + inner, + ) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::InvalidGameArgsLength(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`OPContractsManagerStandardValidator`](self) contract instance. + +See the [wrapper's documentation](`OPContractsManagerStandardValidatorInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> OPContractsManagerStandardValidatorInstance { + OPContractsManagerStandardValidatorInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + _implementations: ::RustType, + _superchainConfig: alloy::sol_types::private::Address, + _l1PAOMultisig: alloy::sol_types::private::Address, + _challenger: alloy::sol_types::private::Address, + _withdrawalDelaySeconds: alloy::sol_types::private::primitives::aliases::U256, + _devFeatureBitmap: alloy::sol_types::private::FixedBytes<32>, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result< + OPContractsManagerStandardValidatorInstance, + >, + > { + OPContractsManagerStandardValidatorInstance::< + P, + N, + >::deploy( + __provider, + _implementations, + _superchainConfig, + _l1PAOMultisig, + _challenger, + _withdrawalDelaySeconds, + _devFeatureBitmap, + ) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + _implementations: ::RustType, + _superchainConfig: alloy::sol_types::private::Address, + _l1PAOMultisig: alloy::sol_types::private::Address, + _challenger: alloy::sol_types::private::Address, + _withdrawalDelaySeconds: alloy::sol_types::private::primitives::aliases::U256, + _devFeatureBitmap: alloy::sol_types::private::FixedBytes<32>, + ) -> alloy_contract::RawCallBuilder { + OPContractsManagerStandardValidatorInstance::< + P, + N, + >::deploy_builder( + __provider, + _implementations, + _superchainConfig, + _l1PAOMultisig, + _challenger, + _withdrawalDelaySeconds, + _devFeatureBitmap, + ) + } + /**A [`OPContractsManagerStandardValidator`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`OPContractsManagerStandardValidator`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct OPContractsManagerStandardValidatorInstance< + P, + N = alloy_contract::private::Ethereum, + > { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for OPContractsManagerStandardValidatorInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("OPContractsManagerStandardValidatorInstance") + .field(&self.address) + .finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > OPContractsManagerStandardValidatorInstance { + /**Creates a new wrapper around an on-chain [`OPContractsManagerStandardValidator`](self) contract instance. + +See the [wrapper's documentation](`OPContractsManagerStandardValidatorInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + _implementations: ::RustType, + _superchainConfig: alloy::sol_types::private::Address, + _l1PAOMultisig: alloy::sol_types::private::Address, + _challenger: alloy::sol_types::private::Address, + _withdrawalDelaySeconds: alloy::sol_types::private::primitives::aliases::U256, + _devFeatureBitmap: alloy::sol_types::private::FixedBytes<32>, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder( + __provider, + _implementations, + _superchainConfig, + _l1PAOMultisig, + _challenger, + _withdrawalDelaySeconds, + _devFeatureBitmap, + ); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder( + __provider: P, + _implementations: ::RustType, + _superchainConfig: alloy::sol_types::private::Address, + _l1PAOMultisig: alloy::sol_types::private::Address, + _challenger: alloy::sol_types::private::Address, + _withdrawalDelaySeconds: alloy::sol_types::private::primitives::aliases::U256, + _devFeatureBitmap: alloy::sol_types::private::FixedBytes<32>, + ) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + [ + &BYTECODE[..], + &alloy_sol_types::SolConstructor::abi_encode( + &constructorCall { + _implementations, + _superchainConfig, + _l1PAOMultisig, + _challenger, + _withdrawalDelaySeconds, + _devFeatureBitmap, + }, + )[..], + ] + .concat() + .into(), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl OPContractsManagerStandardValidatorInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider( + self, + ) -> OPContractsManagerStandardValidatorInstance { + OPContractsManagerStandardValidatorInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > OPContractsManagerStandardValidatorInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`anchorStateRegistryImpl`] function. + pub fn anchorStateRegistryImpl( + &self, + ) -> alloy_contract::SolCallBuilder<&P, anchorStateRegistryImplCall, N> { + self.call_builder(&anchorStateRegistryImplCall) + } + ///Creates a new call builder for the [`challenger`] function. + pub fn challenger( + &self, + ) -> alloy_contract::SolCallBuilder<&P, challengerCall, N> { + self.call_builder(&challengerCall) + } + ///Creates a new call builder for the [`delayedWETHImpl`] function. + pub fn delayedWETHImpl( + &self, + ) -> alloy_contract::SolCallBuilder<&P, delayedWETHImplCall, N> { + self.call_builder(&delayedWETHImplCall) + } + ///Creates a new call builder for the [`devFeatureBitmap`] function. + pub fn devFeatureBitmap( + &self, + ) -> alloy_contract::SolCallBuilder<&P, devFeatureBitmapCall, N> { + self.call_builder(&devFeatureBitmapCall) + } + ///Creates a new call builder for the [`disputeGameFactoryImpl`] function. + pub fn disputeGameFactoryImpl( + &self, + ) -> alloy_contract::SolCallBuilder<&P, disputeGameFactoryImplCall, N> { + self.call_builder(&disputeGameFactoryImplCall) + } + ///Creates a new call builder for the [`ethLockboxImpl`] function. + pub fn ethLockboxImpl( + &self, + ) -> alloy_contract::SolCallBuilder<&P, ethLockboxImplCall, N> { + self.call_builder(ðLockboxImplCall) + } + ///Creates a new call builder for the [`faultDisputeGameImpl`] function. + pub fn faultDisputeGameImpl( + &self, + ) -> alloy_contract::SolCallBuilder<&P, faultDisputeGameImplCall, N> { + self.call_builder(&faultDisputeGameImplCall) + } + ///Creates a new call builder for the [`l1CrossDomainMessengerImpl`] function. + pub fn l1CrossDomainMessengerImpl( + &self, + ) -> alloy_contract::SolCallBuilder<&P, l1CrossDomainMessengerImplCall, N> { + self.call_builder(&l1CrossDomainMessengerImplCall) + } + ///Creates a new call builder for the [`l1ERC721BridgeImpl`] function. + pub fn l1ERC721BridgeImpl( + &self, + ) -> alloy_contract::SolCallBuilder<&P, l1ERC721BridgeImplCall, N> { + self.call_builder(&l1ERC721BridgeImplCall) + } + ///Creates a new call builder for the [`l1PAOMultisig`] function. + pub fn l1PAOMultisig( + &self, + ) -> alloy_contract::SolCallBuilder<&P, l1PAOMultisigCall, N> { + self.call_builder(&l1PAOMultisigCall) + } + ///Creates a new call builder for the [`l1StandardBridgeImpl`] function. + pub fn l1StandardBridgeImpl( + &self, + ) -> alloy_contract::SolCallBuilder<&P, l1StandardBridgeImplCall, N> { + self.call_builder(&l1StandardBridgeImplCall) + } + ///Creates a new call builder for the [`mipsImpl`] function. + pub fn mipsImpl(&self) -> alloy_contract::SolCallBuilder<&P, mipsImplCall, N> { + self.call_builder(&mipsImplCall) + } + ///Creates a new call builder for the [`optimismMintableERC20FactoryImpl`] function. + pub fn optimismMintableERC20FactoryImpl( + &self, + ) -> alloy_contract::SolCallBuilder< + &P, + optimismMintableERC20FactoryImplCall, + N, + > { + self.call_builder(&optimismMintableERC20FactoryImplCall) + } + ///Creates a new call builder for the [`optimismPortalImpl`] function. + pub fn optimismPortalImpl( + &self, + ) -> alloy_contract::SolCallBuilder<&P, optimismPortalImplCall, N> { + self.call_builder(&optimismPortalImplCall) + } + ///Creates a new call builder for the [`optimismPortalInteropImpl`] function. + pub fn optimismPortalInteropImpl( + &self, + ) -> alloy_contract::SolCallBuilder<&P, optimismPortalInteropImplCall, N> { + self.call_builder(&optimismPortalInteropImplCall) + } + ///Creates a new call builder for the [`permissionedDisputeGameImpl`] function. + pub fn permissionedDisputeGameImpl( + &self, + ) -> alloy_contract::SolCallBuilder<&P, permissionedDisputeGameImplCall, N> { + self.call_builder(&permissionedDisputeGameImplCall) + } + ///Creates a new call builder for the [`preimageOracleVersion`] function. + pub fn preimageOracleVersion( + &self, + ) -> alloy_contract::SolCallBuilder<&P, preimageOracleVersionCall, N> { + self.call_builder(&preimageOracleVersionCall) + } + ///Creates a new call builder for the [`superchainConfig`] function. + pub fn superchainConfig( + &self, + ) -> alloy_contract::SolCallBuilder<&P, superchainConfigCall, N> { + self.call_builder(&superchainConfigCall) + } + ///Creates a new call builder for the [`systemConfigImpl`] function. + pub fn systemConfigImpl( + &self, + ) -> alloy_contract::SolCallBuilder<&P, systemConfigImplCall, N> { + self.call_builder(&systemConfigImplCall) + } + ///Creates a new call builder for the [`validate_0`] function. + pub fn validate_0( + &self, + _input: ::RustType, + _allowFailure: bool, + ) -> alloy_contract::SolCallBuilder<&P, validate_0Call, N> { + self.call_builder( + &validate_0Call { + _input, + _allowFailure, + }, + ) + } + ///Creates a new call builder for the [`validate_1`] function. + pub fn validate_1( + &self, + _input: ::RustType, + _allowFailure: bool, + ) -> alloy_contract::SolCallBuilder<&P, validate_1Call, N> { + self.call_builder( + &validate_1Call { + _input, + _allowFailure, + }, + ) + } + ///Creates a new call builder for the [`validateWithOverrides_0`] function. + pub fn validateWithOverrides_0( + &self, + _input: ::RustType, + _allowFailure: bool, + _overrides: ::RustType, + ) -> alloy_contract::SolCallBuilder<&P, validateWithOverrides_0Call, N> { + self.call_builder( + &validateWithOverrides_0Call { + _input, + _allowFailure, + _overrides, + }, + ) + } + ///Creates a new call builder for the [`validateWithOverrides_1`] function. + pub fn validateWithOverrides_1( + &self, + _input: ::RustType, + _allowFailure: bool, + _overrides: ::RustType, + ) -> alloy_contract::SolCallBuilder<&P, validateWithOverrides_1Call, N> { + self.call_builder( + &validateWithOverrides_1Call { + _input, + _allowFailure, + _overrides, + }, + ) + } + ///Creates a new call builder for the [`version`] function. + pub fn version(&self) -> alloy_contract::SolCallBuilder<&P, versionCall, N> { + self.call_builder(&versionCall) + } + ///Creates a new call builder for the [`withdrawalDelaySeconds`] function. + pub fn withdrawalDelaySeconds( + &self, + ) -> alloy_contract::SolCallBuilder<&P, withdrawalDelaySecondsCall, N> { + self.call_builder(&withdrawalDelaySecondsCall) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > OPContractsManagerStandardValidatorInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + } +} diff --git a/bindings/rust/src/op_succinct_fault_dispute_game.rs b/bindings/rust/src/op_succinct_fault_dispute_game.rs new file mode 100644 index 000000000..178f10cbe --- /dev/null +++ b/bindings/rust/src/op_succinct_fault_dispute_game.rs @@ -0,0 +1,12598 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface OPSuccinctFaultDisputeGame { + type BondDistributionMode is uint8; + type GameStatus is uint8; + type ProposalStatus is uint8; + type Claim is bytes32; + type Duration is uint64; + type GameType is uint32; + type Hash is bytes32; + type Timestamp is uint64; + + error AlreadyInitialized(); + error BadAuth(); + error BondTransferFailed(); + error ClaimAlreadyChallenged(); + error ClaimAlreadyResolved(); + error GameNotFinalized(); + error GameNotOver(); + error GameOver(); + error IncorrectBondAmount(); + error IncorrectDisputeGameFactory(); + error InvalidBondDistributionMode(); + error InvalidParentGame(); + error InvalidProposalStatus(); + error NoCreditToClaim(); + error ParentGameNotResolved(); + error UnexpectedRootClaim(Claim rootClaim); + + event Challenged(address indexed challenger); + event GameClosed(BondDistributionMode bondDistributionMode); + event Proved(address indexed prover); + event Resolved(GameStatus indexed status); + + constructor(Duration _maxChallengeDuration, Duration _maxProveDuration, address _disputeGameFactory, address _sp1Verifier, bytes32 _rollupConfigHash, bytes32 _aggregationVkey, bytes32 _rangeVkeyCommitment, uint256 _challengerBond, address _anchorStateRegistry, address _accessManager); + + function accessManager() external view returns (address accessManager_); + function aggregationVkey() external view returns (bytes32 aggregationVkey_); + function anchorStateRegistry() external view returns (address registry_); + function bondDistributionMode() external view returns (BondDistributionMode); + function challenge() external payable returns (ProposalStatus); + function challengerBond() external view returns (uint256 challengerBond_); + function claimCredit(address _recipient) external; + function claimData() external view returns (uint32 parentIndex, address counteredBy, address prover, Claim claim, ProposalStatus status, Timestamp deadline); + function closeGame() external; + function createdAt() external view returns (Timestamp); + function credit(address _recipient) external view returns (uint256 credit_); + function disputeGameFactory() external view returns (address disputeGameFactory_); + function extraData() external pure returns (bytes memory extraData_); + function gameCreator() external pure returns (address creator_); + function gameData() external view returns (GameType gameType_, Claim rootClaim_, bytes memory extraData_); + function gameOver() external view returns (bool gameOver_); + function gameType() external view returns (GameType gameType_); + function initialize() external payable; + function initializeWithInitData(bytes memory) external payable; + function l1Head() external pure returns (Hash l1Head_); + function l2SequenceNumber() external pure returns (uint256 l2SequenceNumber_); + function maxChallengeDuration() external view returns (Duration maxChallengeDuration_); + function maxProveDuration() external view returns (Duration maxProveDuration_); + function normalModeCredit(address) external view returns (uint256); + function parentIndex() external pure returns (uint32 parentIndex_); + function prove(bytes memory _proofBytes) external returns (ProposalStatus); + function rangeVkeyCommitment() external view returns (bytes32 rangeVkeyCommitment_); + function refundModeCredit(address) external view returns (uint256); + function resolve() external returns (GameStatus); + function resolvedAt() external view returns (Timestamp); + function rollupConfigHash() external view returns (bytes32 rollupConfigHash_); + function rootClaim() external pure returns (Claim rootClaim_); + function sp1Verifier() external view returns (address verifier_); + function startingBlockNumber() external view returns (uint256 startingBlockNumber_); + function startingProposal() external view returns (Hash root, uint256 l2SequenceNumber); + function startingRootHash() external view returns (Hash startingRootHash_); + function status() external view returns (GameStatus); + function version() external view returns (string memory); + function wasRespectedGameTypeWhenCreated() external view returns (bool); +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "constructor", + "inputs": [ + { + "name": "_maxChallengeDuration", + "type": "uint64", + "internalType": "Duration" + }, + { + "name": "_maxProveDuration", + "type": "uint64", + "internalType": "Duration" + }, + { + "name": "_disputeGameFactory", + "type": "address", + "internalType": "contract IDisputeGameFactory" + }, + { + "name": "_sp1Verifier", + "type": "address", + "internalType": "contract ISP1Verifier" + }, + { + "name": "_rollupConfigHash", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "_aggregationVkey", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "_rangeVkeyCommitment", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "_challengerBond", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_anchorStateRegistry", + "type": "address", + "internalType": "contract IAnchorStateRegistry" + }, + { + "name": "_accessManager", + "type": "address", + "internalType": "contract AccessManager" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "accessManager", + "inputs": [], + "outputs": [ + { + "name": "accessManager_", + "type": "address", + "internalType": "contract AccessManager" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "aggregationVkey", + "inputs": [], + "outputs": [ + { + "name": "aggregationVkey_", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "anchorStateRegistry", + "inputs": [], + "outputs": [ + { + "name": "registry_", + "type": "address", + "internalType": "contract IAnchorStateRegistry" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "bondDistributionMode", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint8", + "internalType": "enum BondDistributionMode" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "challenge", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint8", + "internalType": "enum OPSuccinctFaultDisputeGame.ProposalStatus" + } + ], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "challengerBond", + "inputs": [], + "outputs": [ + { + "name": "challengerBond_", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "claimCredit", + "inputs": [ + { + "name": "_recipient", + "type": "address", + "internalType": "address" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "claimData", + "inputs": [], + "outputs": [ + { + "name": "parentIndex", + "type": "uint32", + "internalType": "uint32" + }, + { + "name": "counteredBy", + "type": "address", + "internalType": "address" + }, + { + "name": "prover", + "type": "address", + "internalType": "address" + }, + { + "name": "claim", + "type": "bytes32", + "internalType": "Claim" + }, + { + "name": "status", + "type": "uint8", + "internalType": "enum OPSuccinctFaultDisputeGame.ProposalStatus" + }, + { + "name": "deadline", + "type": "uint64", + "internalType": "Timestamp" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "closeGame", + "inputs": [], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "createdAt", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint64", + "internalType": "Timestamp" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "credit", + "inputs": [ + { + "name": "_recipient", + "type": "address", + "internalType": "address" + } + ], + "outputs": [ + { + "name": "credit_", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "disputeGameFactory", + "inputs": [], + "outputs": [ + { + "name": "disputeGameFactory_", + "type": "address", + "internalType": "contract IDisputeGameFactory" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "extraData", + "inputs": [], + "outputs": [ + { + "name": "extraData_", + "type": "bytes", + "internalType": "bytes" + } + ], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "gameCreator", + "inputs": [], + "outputs": [ + { + "name": "creator_", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "gameData", + "inputs": [], + "outputs": [ + { + "name": "gameType_", + "type": "uint32", + "internalType": "GameType" + }, + { + "name": "rootClaim_", + "type": "bytes32", + "internalType": "Claim" + }, + { + "name": "extraData_", + "type": "bytes", + "internalType": "bytes" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "gameOver", + "inputs": [], + "outputs": [ + { + "name": "gameOver_", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "gameType", + "inputs": [], + "outputs": [ + { + "name": "gameType_", + "type": "uint32", + "internalType": "GameType" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "initialize", + "inputs": [], + "outputs": [], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "initializeWithInitData", + "inputs": [ + { + "name": "", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "l1Head", + "inputs": [], + "outputs": [ + { + "name": "l1Head_", + "type": "bytes32", + "internalType": "Hash" + } + ], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "l2SequenceNumber", + "inputs": [], + "outputs": [ + { + "name": "l2SequenceNumber_", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "maxChallengeDuration", + "inputs": [], + "outputs": [ + { + "name": "maxChallengeDuration_", + "type": "uint64", + "internalType": "Duration" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "maxProveDuration", + "inputs": [], + "outputs": [ + { + "name": "maxProveDuration_", + "type": "uint64", + "internalType": "Duration" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "normalModeCredit", + "inputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "parentIndex", + "inputs": [], + "outputs": [ + { + "name": "parentIndex_", + "type": "uint32", + "internalType": "uint32" + } + ], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "prove", + "inputs": [ + { + "name": "_proofBytes", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [ + { + "name": "", + "type": "uint8", + "internalType": "enum OPSuccinctFaultDisputeGame.ProposalStatus" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "rangeVkeyCommitment", + "inputs": [], + "outputs": [ + { + "name": "rangeVkeyCommitment_", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "refundModeCredit", + "inputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "resolve", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint8", + "internalType": "enum GameStatus" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "resolvedAt", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint64", + "internalType": "Timestamp" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "rollupConfigHash", + "inputs": [], + "outputs": [ + { + "name": "rollupConfigHash_", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "rootClaim", + "inputs": [], + "outputs": [ + { + "name": "rootClaim_", + "type": "bytes32", + "internalType": "Claim" + } + ], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "sp1Verifier", + "inputs": [], + "outputs": [ + { + "name": "verifier_", + "type": "address", + "internalType": "contract ISP1Verifier" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "startingBlockNumber", + "inputs": [], + "outputs": [ + { + "name": "startingBlockNumber_", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "startingProposal", + "inputs": [], + "outputs": [ + { + "name": "root", + "type": "bytes32", + "internalType": "Hash" + }, + { + "name": "l2SequenceNumber", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "startingRootHash", + "inputs": [], + "outputs": [ + { + "name": "startingRootHash_", + "type": "bytes32", + "internalType": "Hash" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "status", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint8", + "internalType": "enum GameStatus" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "version", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "wasRespectedGameTypeWhenCreated", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "event", + "name": "Challenged", + "inputs": [ + { + "name": "challenger", + "type": "address", + "indexed": true, + "internalType": "address" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "GameClosed", + "inputs": [ + { + "name": "bondDistributionMode", + "type": "uint8", + "indexed": false, + "internalType": "enum BondDistributionMode" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "Proved", + "inputs": [ + { + "name": "prover", + "type": "address", + "indexed": true, + "internalType": "address" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "Resolved", + "inputs": [ + { + "name": "status", + "type": "uint8", + "indexed": true, + "internalType": "enum GameStatus" + } + ], + "anonymous": false + }, + { + "type": "error", + "name": "AlreadyInitialized", + "inputs": [] + }, + { + "type": "error", + "name": "BadAuth", + "inputs": [] + }, + { + "type": "error", + "name": "BondTransferFailed", + "inputs": [] + }, + { + "type": "error", + "name": "ClaimAlreadyChallenged", + "inputs": [] + }, + { + "type": "error", + "name": "ClaimAlreadyResolved", + "inputs": [] + }, + { + "type": "error", + "name": "GameNotFinalized", + "inputs": [] + }, + { + "type": "error", + "name": "GameNotOver", + "inputs": [] + }, + { + "type": "error", + "name": "GameOver", + "inputs": [] + }, + { + "type": "error", + "name": "IncorrectBondAmount", + "inputs": [] + }, + { + "type": "error", + "name": "IncorrectDisputeGameFactory", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidBondDistributionMode", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidParentGame", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidProposalStatus", + "inputs": [] + }, + { + "type": "error", + "name": "NoCreditToClaim", + "inputs": [] + }, + { + "type": "error", + "name": "ParentGameNotResolved", + "inputs": [] + }, + { + "type": "error", + "name": "UnexpectedRootClaim", + "inputs": [ + { + "name": "rootClaim", + "type": "bytes32", + "internalType": "Claim" + } + ] + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod OPSuccinctFaultDisputeGame { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x6101e06040523480156200001257600080fd5b5060405162002c6238038062002c628339810160408190526200003591620000bf565b602a60c0526001600160401b03998a166080529790981660a0526001600160a01b0395861660e05293851661010052610120929092526101405261016052610180529182166101a052166101c05262000178565b80516001600160401b0381168114620000a157600080fd5b919050565b6001600160a01b0381168114620000bc57600080fd5b50565b6000806000806000806000806000806101408b8d031215620000e057600080fd5b620000eb8b62000089565b9950620000fb60208c0162000089565b985060408b01516200010d81620000a6565b60608c01519098506200012081620000a6565b8097505060808b0151955060a08b0151945060c08b0151935060e08b015192506101008b01516200015181620000a6565b6101208c01519092506200016581620000a6565b809150509295989b9194979a5092959850565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c0516129bb620002a7600039600081816108f70152818161167a015261213501526000818161057d015281816113300152818161140a015281816114990152818161189501528181611943015281816119ec01528181611c790152611ff201526000818161060701528181610cb4015261221f0152600081816103980152610eb60152600081816107f10152610f1a01526000818161063a0152610e900152600081816104f40152610eeb0152600081816108a001528181611610015281816117a4015261246201526000818161072701528181611c5201528181611fca01526123f701526000818161075a01526122c20152600081816108450152611db001526129bb6000f3fe6080604052600436106102a05760003560e01c80636d9a1c8b1161016e578063bdb337d1116100cb578063d2ef73981161007f578063f2b4e61711610064578063f2b4e61714610891578063fa24f743146108c4578063fdcb6068146108e857600080fd5b8063d2ef739814610869578063d5d44d801461087157600080fd5b8063c32e4e3e116100b0578063c32e4e3e146107e2578063cf09e0d014610815578063d2177bdd1461083657600080fd5b8063bdb337d1146107a0578063c0d8bb74146107b557600080fd5b8063938d689a11610122578063bbdc02db11610107578063bbdc02db14610718578063bcbe50941461074b578063bcef3b551461077e57600080fd5b8063938d689a146106c657806399735e32146106f657600080fd5b8063786b844b11610153578063786b844b146106735780637948690a146106885780638129fc1c146106be57600080fd5b80636d9a1c8b1461062b57806370872aa51461065e57600080fd5b80633ec4d4d61161021c5780635c0cba33116101d057806360e27464116101b557806360e27464146105b65780636361506d146105d657806368ccdc86146105f857600080fd5b80635c0cba331461056e578063609d3334146105a157600080fd5b8063529d6a8c11610201578063529d6a8c146104b857806352a07fa3146104e557806354fd4d501461051857600080fd5b80633ec4d4d61461043e5780634224b1e7146104a457600080fd5b80632810e1d611610273578063375bfa5d11610258578063375bfa5d146103bc578063378dd48c146103e957806337b1b2291461040857600080fd5b80632810e1d6146103745780632b31841e1461038957600080fd5b806319effeb4146102a5578063200d2ed2146102f0578063250e69bd1461032b57806325fc2ace14610355575b600080fd5b3480156102b157600080fd5b506000546102d29068010000000000000000900467ffffffffffffffff1681565b60405167ffffffffffffffff90911681526020015b60405180910390f35b3480156102fc57600080fd5b5060005461031e90700100000000000000000000000000000000900460ff1681565b6040516102e79190612600565b34801561033757600080fd5b506009546103459060ff1681565b60405190151581526020016102e7565b34801561036157600080fd5b506007545b6040519081526020016102e7565b34801561038057600080fd5b5061031e61091b565b34801561039557600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610366565b3480156103c857600080fd5b506103dc6103d7366004612613565b610de9565b6040516102e79190612699565b3480156103f557600080fd5b5060095461031e90610100900460ff1681565b34801561041457600080fd5b503660011981013560f01c90033560601c5b6040516001600160a01b0390911681526020016102e7565b34801561044a57600080fd5b506001546002546003546004546104929363ffffffff8116936001600160a01b0364010000000090920482169391169160ff81169067ffffffffffffffff6101009091041686565b6040516102e7969594939291906126a7565b6104b66104b2366004612613565b5050565b005b3480156104c457600080fd5b506103666104d336600461270f565b60056020526000908152604090205481565b3480156104f157600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610426565b34801561052457600080fd5b506105616040518060400160405280600581526020017f302e302e3000000000000000000000000000000000000000000000000000000081525081565b6040516102e7919061279e565b34801561057a57600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610426565b3480156105ad57600080fd5b506105616110aa565b3480156105c257600080fd5b506104b66105d136600461270f565b6110b8565b3480156105e257600080fd5b503660011981013560f01c900360340135610366565b34801561060457600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610366565b34801561063757600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610366565b34801561066a57600080fd5b50600854610366565b34801561067f57600080fd5b506104b661125e565b34801561069457600080fd5b503660011981013560f01c90036074013560e01c5b60405163ffffffff90911681526020016102e7565b6104b66115bc565b3480156106d257600080fd5b506007546008546106e1919082565b604080519283526020830191909152016102e7565b34801561070257600080fd5b503660011981013560f01c900360540135610366565b34801561072457600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006106a9565b34801561075757600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006102d2565b34801561078a57600080fd5b503660011981013560f01c900360140135610366565b3480156107ac57600080fd5b50610345612084565b3480156107c157600080fd5b506103666107d036600461270f565b60066020526000908152604090205481565b3480156107ee57600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610366565b34801561082157600080fd5b506000546102d29067ffffffffffffffff1681565b34801561084257600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006102d2565b6103dc6120b6565b34801561087d57600080fd5b5061036661088c36600461270f565b612394565b34801561089d57600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610426565b3480156108d057600080fd5b506108d96123f5565b6040516102e7939291906127b1565b3480156108f457600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610426565b600080600054700100000000000000000000000000000000900460ff166002811115610949576109496125be565b14610980576040517ff1a9458100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061098a612437565b905060008160028111156109a0576109a06125be565b036109d7576040517f92c506ae00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60018160028111156109eb576109eb6125be565b03610a5d5760008054600191907fffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff16700100000000000000000000000000000000835b021790555060015464010000000090046001600160a01b03166000908152600560205260409020479055610d2c565b610a65612084565b610a9b576040517f04643c3900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006004805460ff1690811115610ab457610ab46125be565b03610b315760008054600291907fffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff16700100000000000000000000000000000000835b021790555047600560003660011981013560f01c90033560601c5b6001600160a01b03168152602081019190915260400160002055610d2c565b60016004805460ff1690811115610b4a57610b4a6125be565b03610b915760008054600191907fffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff1670010000000000000000000000000000000083610a2e565b60026004805460ff1690811115610baa57610baa6125be565b03610bf15760008054600291907fffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff1670010000000000000000000000000000000083610af7565b60036004805460ff1690811115610c0a57610c0a6125be565b03610cfa57600080547fffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff16700200000000000000000000000000000000179055610c61600119369081013560f01c90033560601c90565b6002546001600160a01b03918216911603610c98576002546001600160a01b03166000908152600560205260409020479055610d2c565b6002546001600160a01b031660009081526005602052604090207f000000000000000000000000000000000000000000000000000000000000000090819055610ce1904761280e565b600560003660011981013560f01c90033560601c610b12565b6040517f7492a26900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6004805460ff191681179055600080547fffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff16680100000000000000004267ffffffffffffffff16021790819055700100000000000000000000000000000000900460ff166002811115610da157610da16125be565b6040517f5e186f09b9c93491f14e277eea7faa5de6a2d4bda75a79af7a3684fbfb42da6090600090a25050600054700100000000000000000000000000000000900460ff1690565b6000610df3612084565b15610e2a576040517fdf469ccb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006040518060e00160405280610e4e6034600119369081013560f01c9003013590565b81526007546020820152604001610e743660011981013560f01c90036014013590565b90565b81526020013660011981013560f01c90036054013581526020017f000000000000000000000000000000000000000000000000000000000000000081526020017f00000000000000000000000000000000000000000000000000000000000000008152602001336001600160a01b031681525090507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166341493c607f000000000000000000000000000000000000000000000000000000000000000083604051602001610f9c9190600060e082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015260a083015160a08301526001600160a01b0360c08401511660c083015292915050565b60405160208183030381529060405287876040518563ffffffff1660e01b8152600401610fcc9493929190612825565b60006040518083038186803b158015610fe457600080fd5b505afa158015610ff8573d6000803e3d6000fd5b5050600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001633179055505060015464010000000090046001600160a01b0316611050576004805460ff1916600217905561105e565b6004805460ff191660031790555b6002546040516001600160a01b03909116907f5e6565d9ca2f5c8501d6418bf563322a7243ba7ace266d75eac99f4adbb30ba790600090a2505060045460ff165b92915050565b905090565b60606110a56054602461258a565b6110c061125e565b60006002600954610100900460ff1660028111156110e0576110e06125be565b0361110457506001600160a01b038116600090815260066020526040902054611178565b6001600954610100900460ff166002811115611122576111226125be565b0361114657506001600160a01b038116600090815260056020526040902054611178565b6040517f078a3df400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806000036111b2576040517f17bfe5f700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038216600081815260066020908152604080832083905560059091528082208290555190919083908381818185875af1925050503d8060008114611219576040519150601f19603f3d011682016040523d82523d6000602084013e61121e565b606091505b5050905080611259576040517f83e6cc6b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b6002600954610100900460ff16600281111561127c5761127c6125be565b14806112a357506001600954610100900460ff1660028111156112a1576112a16125be565b145b156112aa57565b6000600954610100900460ff1660028111156112c8576112c86125be565b146112ff576040517f078a3df400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f0314d2b30000000000000000000000000000000000000000000000000000000081523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690630314d2b390602401602060405180830381865afa15801561137f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113a39190612890565b9050806113dc576040517f4851bd9b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f17cf21a90000000000000000000000000000000000000000000000000000000081523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906317cf21a990602401600060405180830381600087803b15801561145657600080fd5b505af1925050508015611467575060015b506040517f496b9c160000000000000000000000000000000000000000000000000000000081523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063496b9c1690602401602060405180830381865afa1580156114e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061150c9190612890565b9050801561154557600980547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16610100179055611572565b600980547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166102001790555b7f9908eaac0645df9d0704d06adc9e07337c951de2f06b5f2836151d48d5e4722f600960019054906101000a900460ff166040516115b09190612600565b60405180910390a15050565b60005471010000000000000000000000000000000000900460ff161561160e576040517f0dc149f000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314611670576040517f940d38c700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016631d3225e33660011981013560f01c90033560601c6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa15801561170b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061172f9190612890565b611765576040517fd386ef3e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b607e361461177b57639824bdab6000526004601cfd5b63ffffffff3660011981013560f01c90036074013560e01c14611c255760006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663bb8aa1fc3660011981013560f01c90036074013560e01c6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815263ffffffff919091166004820152602401606060405180830381865afa158015611836573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061185a91906128c6565b6040517f04e50fed0000000000000000000000000000000000000000000000000000000081526001600160a01b0380831660048301529194507f000000000000000000000000000000000000000000000000000000000000000090911692506304e50fed9150602401602060405180830381865afa1580156118e0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119049190612890565b15806119ae57506040517f34a346ea0000000000000000000000000000000000000000000000000000000081526001600160a01b0382811660048301527f000000000000000000000000000000000000000000000000000000000000000016906334a346ea90602401602060405180830381865afa15801561198a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119ae9190612890565b80611a5757506040517f5958a1930000000000000000000000000000000000000000000000000000000081526001600160a01b0382811660048301527f00000000000000000000000000000000000000000000000000000000000000001690635958a19390602401602060405180830381865afa158015611a33573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a579190612890565b15611a8e576040517f346119f700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040518060400160405280611afe836001600160a01b031663bcef3b556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ada573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e71919061291d565b8152602001826001600160a01b03166399735e326040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b41573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b65919061291d565b90528051600755602001516008556001816001600160a01b031663200d2ed26040518163ffffffff1660e01b8152600401602060405180830381865afa158015611bb3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bd79190612936565b6002811115611be857611be86125be565b03611c1f576040517f346119f700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50611cf2565b6040517f7258a80700000000000000000000000000000000000000000000000000000000815263ffffffff7f00000000000000000000000000000000000000000000000000000000000000001660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690637258a807906024016040805180830381865afa158015611cc7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ceb9190612957565b6008556007555b6008543660011981013560f01c90036054013511611d51576040517ff40239db0000000000000000000000000000000000000000000000000000000081523660011981013560f01c900360140135600482015260240160405180910390fd5b6040518060c00160405280611d766074600119369081013560f01c9003013560e01c90565b63ffffffff16815260006020820181905260408201526060013660011981013560f01c900360140135815260006020820152604001611ddf7f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff164261297b565b67ffffffffffffffff169052805160018054602084015163ffffffff9093167fffffffffffffffff000000000000000000000000000000000000000000000000909116176401000000006001600160a01b03938416021781556040830151600280547fffffffffffffffffffffffff0000000000000000000000000000000000000000169190931617909155606082015160035560808201516004805460ff1916838383811115611e9257611e926125be565b021790555060a091909101516003909101805467ffffffffffffffff909216610100027fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000ff909216919091179055600080547fffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff16710100000000000000000000000000000000001781553490600690611f37600119369081013560f01c90033560601c90565b6001600160a01b03166001600160a01b031681526020019081526020016000206000828254611f66919061297b565b9091555050600080547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000164267ffffffffffffffff16179055604080517f3c9f397c00000000000000000000000000000000000000000000000000000000815290517f000000000000000000000000000000000000000000000000000000000000000063ffffffff16917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031691633c9f397c916004808201926020929091908290030181865afa158015612046573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061206a9190612993565b6009805460ff191663ffffffff9290921692909214179055565b60045460009067ffffffffffffffff4281166101009092041610806110a55750506002546001600160a01b0316151590565b6000806004805460ff16908111156120d0576120d06125be565b14612107576040517f85c345b000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517fff59ae7d0000000000000000000000000000000000000000000000000000000081523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063ff59ae7d90602401602060405180830381865afa158015612184573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121a89190612890565b6121de576040517fd386ef3e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6121e6612084565b1561221d576040517fdf469ccb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000003414612276576040517f8620aa1900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600180547fffffffffffffffff0000000000000000000000000000000000000000ffffffff1633640100000000021781556004805460ff191690911790556122e867ffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000164261297b565b6004805467ffffffffffffffff92909216610100027fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000ff909216919091179055336000908152600660205260408120805434929061234690849061297b565b90915550506001546040516401000000009091046001600160a01b0316907f98027b38153f995c4b802a5c7e6365bee3addb25af6b29818c0c304684d8052c90600090a25060045460ff1690565b60006002600954610100900460ff1660028111156123b4576123b46125be565b036123d557506001600160a01b031660009081526006602052604090205490565b506001600160a01b0381166000908152600560205260409020545b919050565b7f00000000000000000000000000000000000000000000000000000000000000003660011981013560f01c90036014013560606124306110aa565b9050909192565b600063ffffffff3660011981013560f01c90036074013560e01c146125845760006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663bb8aa1fc3660011981013560f01c90036074013560e01c6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815263ffffffff919091166004820152602401606060405180830381865afa1580156124f4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061251891906128c6565b92505050806001600160a01b031663200d2ed26040518163ffffffff1660e01b8152600401602060405180830381865afa15801561255a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061257e9190612936565b91505090565b50600290565b6040518181523660011981013560f01c90038284820160208401378260208301016000815260208101604052505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600381106125fd576125fd6125be565b50565b6020810161260d836125ed565b91905290565b6000806020838503121561262657600080fd5b823567ffffffffffffffff8082111561263e57600080fd5b818501915085601f83011261265257600080fd5b81358181111561266157600080fd5b86602082850101111561267357600080fd5b60209290920196919550909350505050565b60058110612695576126956125be565b9052565b6020810161109f8284612685565b63ffffffff871681526001600160a01b038681166020830152851660408201526060810184905260c081016126df6080830185612685565b67ffffffffffffffff831660a0830152979650505050505050565b6001600160a01b03811681146125fd57600080fd5b60006020828403121561272157600080fd5b813561272c816126fa565b9392505050565b6000815180845260005b818110156127595760208185018101518683018201520161273d565b8181111561276b576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60208152600061272c6020830184612733565b63ffffffff841681528260208201526060604082015260006127d66060830184612733565b95945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600082821015612820576128206127df565b500390565b84815260606020820152600061283e6060830186612733565b82810360408401528381528385602083013760006020858301015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f86011682010191505095945050505050565b6000602082840312156128a257600080fd5b8151801515811461272c57600080fd5b805163ffffffff811681146123f057600080fd5b6000806000606084860312156128db57600080fd5b6128e4846128b2565b9250602084015167ffffffffffffffff8116811461290157600080fd5b6040850151909250612912816126fa565b809150509250925092565b60006020828403121561292f57600080fd5b5051919050565b60006020828403121561294857600080fd5b81516003811061272c57600080fd5b6000806040838503121561296a57600080fd5b505080516020909101519092909150565b6000821982111561298e5761298e6127df565b500190565b6000602082840312156129a557600080fd5b61272c826128b256fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"a\x01\xE0`@R4\x80\x15b\0\0\x12W`\0\x80\xFD[P`@Qb\0,b8\x03\x80b\0,b\x839\x81\x01`@\x81\x90Rb\0\x005\x91b\0\0\xBFV[`*`\xC0R`\x01`\x01`@\x1B\x03\x99\x8A\x16`\x80R\x97\x90\x98\x16`\xA0R`\x01`\x01`\xA0\x1B\x03\x95\x86\x16`\xE0R\x93\x85\x16a\x01\0Ra\x01 \x92\x90\x92Ra\x01@Ra\x01`Ra\x01\x80R\x91\x82\x16a\x01\xA0R\x16a\x01\xC0Rb\0\x01xV[\x80Q`\x01`\x01`@\x1B\x03\x81\x16\x81\x14b\0\0\xA1W`\0\x80\xFD[\x91\x90PV[`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14b\0\0\xBCW`\0\x80\xFD[PV[`\0\x80`\0\x80`\0\x80`\0\x80`\0\x80a\x01@\x8B\x8D\x03\x12\x15b\0\0\xE0W`\0\x80\xFD[b\0\0\xEB\x8Bb\0\0\x89V[\x99Pb\0\0\xFB` \x8C\x01b\0\0\x89V[\x98P`@\x8B\x01Qb\0\x01\r\x81b\0\0\xA6V[``\x8C\x01Q\x90\x98Pb\0\x01 \x81b\0\0\xA6V[\x80\x97PP`\x80\x8B\x01Q\x95P`\xA0\x8B\x01Q\x94P`\xC0\x8B\x01Q\x93P`\xE0\x8B\x01Q\x92Pa\x01\0\x8B\x01Qb\0\x01Q\x81b\0\0\xA6V[a\x01 \x8C\x01Q\x90\x92Pb\0\x01e\x81b\0\0\xA6V[\x80\x91PP\x92\x95\x98\x9B\x91\x94\x97\x9AP\x92\x95\x98PV[`\x80Q`\xA0Q`\xC0Q`\xE0Qa\x01\0Qa\x01 Qa\x01@Qa\x01`Qa\x01\x80Qa\x01\xA0Qa\x01\xC0Qa)\xBBb\0\x02\xA7`\09`\0\x81\x81a\x08\xF7\x01R\x81\x81a\x16z\x01Ra!5\x01R`\0\x81\x81a\x05}\x01R\x81\x81a\x130\x01R\x81\x81a\x14\n\x01R\x81\x81a\x14\x99\x01R\x81\x81a\x18\x95\x01R\x81\x81a\x19C\x01R\x81\x81a\x19\xEC\x01R\x81\x81a\x1Cy\x01Ra\x1F\xF2\x01R`\0\x81\x81a\x06\x07\x01R\x81\x81a\x0C\xB4\x01Ra\"\x1F\x01R`\0\x81\x81a\x03\x98\x01Ra\x0E\xB6\x01R`\0\x81\x81a\x07\xF1\x01Ra\x0F\x1A\x01R`\0\x81\x81a\x06:\x01Ra\x0E\x90\x01R`\0\x81\x81a\x04\xF4\x01Ra\x0E\xEB\x01R`\0\x81\x81a\x08\xA0\x01R\x81\x81a\x16\x10\x01R\x81\x81a\x17\xA4\x01Ra$b\x01R`\0\x81\x81a\x07'\x01R\x81\x81a\x1CR\x01R\x81\x81a\x1F\xCA\x01Ra#\xF7\x01R`\0\x81\x81a\x07Z\x01Ra\"\xC2\x01R`\0\x81\x81a\x08E\x01Ra\x1D\xB0\x01Ra)\xBB`\0\xF3\xFE`\x80`@R`\x046\x10a\x02\xA0W`\x005`\xE0\x1C\x80cm\x9A\x1C\x8B\x11a\x01nW\x80c\xBD\xB37\xD1\x11a\0\xCBW\x80c\xD2\xEFs\x98\x11a\0\x7FW\x80c\xF2\xB4\xE6\x17\x11a\0dW\x80c\xF2\xB4\xE6\x17\x14a\x08\x91W\x80c\xFA$\xF7C\x14a\x08\xC4W\x80c\xFD\xCB`h\x14a\x08\xE8W`\0\x80\xFD[\x80c\xD2\xEFs\x98\x14a\x08iW\x80c\xD5\xD4M\x80\x14a\x08qW`\0\x80\xFD[\x80c\xC3.N>\x11a\0\xB0W\x80c\xC3.N>\x14a\x07\xE2W\x80c\xCF\t\xE0\xD0\x14a\x08\x15W\x80c\xD2\x17{\xDD\x14a\x086W`\0\x80\xFD[\x80c\xBD\xB37\xD1\x14a\x07\xA0W\x80c\xC0\xD8\xBBt\x14a\x07\xB5W`\0\x80\xFD[\x80c\x93\x8Dh\x9A\x11a\x01\"W\x80c\xBB\xDC\x02\xDB\x11a\x01\x07W\x80c\xBB\xDC\x02\xDB\x14a\x07\x18W\x80c\xBC\xBEP\x94\x14a\x07KW\x80c\xBC\xEF;U\x14a\x07~W`\0\x80\xFD[\x80c\x93\x8Dh\x9A\x14a\x06\xC6W\x80c\x99s^2\x14a\x06\xF6W`\0\x80\xFD[\x80cxk\x84K\x11a\x01SW\x80cxk\x84K\x14a\x06sW\x80cyHi\n\x14a\x06\x88W\x80c\x81)\xFC\x1C\x14a\x06\xBEW`\0\x80\xFD[\x80cm\x9A\x1C\x8B\x14a\x06+W\x80cp\x87*\xA5\x14a\x06^W`\0\x80\xFD[\x80c>\xC4\xD4\xD6\x11a\x02\x1CW\x80c\\\x0C\xBA3\x11a\x01\xD0W\x80c`\xE2td\x11a\x01\xB5W\x80c`\xE2td\x14a\x05\xB6W\x80ccaPm\x14a\x05\xD6W\x80ch\xCC\xDC\x86\x14a\x05\xF8W`\0\x80\xFD[\x80c\\\x0C\xBA3\x14a\x05nW\x80c`\x9D34\x14a\x05\xA1W`\0\x80\xFD[\x80cR\x9Dj\x8C\x11a\x02\x01W\x80cR\x9Dj\x8C\x14a\x04\xB8W\x80cR\xA0\x7F\xA3\x14a\x04\xE5W\x80cT\xFDMP\x14a\x05\x18W`\0\x80\xFD[\x80c>\xC4\xD4\xD6\x14a\x04>W\x80cB$\xB1\xE7\x14a\x04\xA4W`\0\x80\xFD[\x80c(\x10\xE1\xD6\x11a\x02sW\x80c7[\xFA]\x11a\x02XW\x80c7[\xFA]\x14a\x03\xBCW\x80c7\x8D\xD4\x8C\x14a\x03\xE9W\x80c7\xB1\xB2)\x14a\x04\x08W`\0\x80\xFD[\x80c(\x10\xE1\xD6\x14a\x03tW\x80c+1\x84\x1E\x14a\x03\x89W`\0\x80\xFD[\x80c\x19\xEF\xFE\xB4\x14a\x02\xA5W\x80c \r.\xD2\x14a\x02\xF0W\x80c%\x0Ei\xBD\x14a\x03+W\x80c%\xFC*\xCE\x14a\x03UW[`\0\x80\xFD[4\x80\x15a\x02\xB1W`\0\x80\xFD[P`\0Ta\x02\xD2\x90h\x01\0\0\0\0\0\0\0\0\x90\x04g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[`@Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[4\x80\x15a\x02\xFCW`\0\x80\xFD[P`\0Ta\x03\x1E\x90p\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16\x81V[`@Qa\x02\xE7\x91\x90a&\0V[4\x80\x15a\x037W`\0\x80\xFD[P`\tTa\x03E\x90`\xFF\x16\x81V[`@Q\x90\x15\x15\x81R` \x01a\x02\xE7V[4\x80\x15a\x03aW`\0\x80\xFD[P`\x07T[`@Q\x90\x81R` \x01a\x02\xE7V[4\x80\x15a\x03\x80W`\0\x80\xFD[Pa\x03\x1Ea\t\x1BV[4\x80\x15a\x03\x95W`\0\x80\xFD[P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x03fV[4\x80\x15a\x03\xC8W`\0\x80\xFD[Pa\x03\xDCa\x03\xD76`\x04a&\x13V[a\r\xE9V[`@Qa\x02\xE7\x91\x90a&\x99V[4\x80\x15a\x03\xF5W`\0\x80\xFD[P`\tTa\x03\x1E\x90a\x01\0\x90\x04`\xFF\x16\x81V[4\x80\x15a\x04\x14W`\0\x80\xFD[P6`\x01\x19\x81\x015`\xF0\x1C\x90\x035``\x1C[`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x01a\x02\xE7V[4\x80\x15a\x04JW`\0\x80\xFD[P`\x01T`\x02T`\x03T`\x04Ta\x04\x92\x93c\xFF\xFF\xFF\xFF\x81\x16\x93`\x01`\x01`\xA0\x1B\x03d\x01\0\0\0\0\x90\x92\x04\x82\x16\x93\x91\x16\x91`\xFF\x81\x16\x90g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFFa\x01\0\x90\x91\x04\x16\x86V[`@Qa\x02\xE7\x96\x95\x94\x93\x92\x91\x90a&\xA7V[a\x04\xB6a\x04\xB26`\x04a&\x13V[PPV[\0[4\x80\x15a\x04\xC4W`\0\x80\xFD[Pa\x03fa\x04\xD36`\x04a'\x0FV[`\x05` R`\0\x90\x81R`@\x90 T\x81V[4\x80\x15a\x04\xF1W`\0\x80\xFD[P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x04&V[4\x80\x15a\x05$W`\0\x80\xFD[Pa\x05a`@Q\x80`@\x01`@R\x80`\x05\x81R` \x01\x7F0.0.0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RP\x81V[`@Qa\x02\xE7\x91\x90a'\x9EV[4\x80\x15a\x05zW`\0\x80\xFD[P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x04&V[4\x80\x15a\x05\xADW`\0\x80\xFD[Pa\x05aa\x10\xAAV[4\x80\x15a\x05\xC2W`\0\x80\xFD[Pa\x04\xB6a\x05\xD16`\x04a'\x0FV[a\x10\xB8V[4\x80\x15a\x05\xE2W`\0\x80\xFD[P6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`4\x015a\x03fV[4\x80\x15a\x06\x04W`\0\x80\xFD[P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x03fV[4\x80\x15a\x067W`\0\x80\xFD[P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x03fV[4\x80\x15a\x06jW`\0\x80\xFD[P`\x08Ta\x03fV[4\x80\x15a\x06\x7FW`\0\x80\xFD[Pa\x04\xB6a\x12^V[4\x80\x15a\x06\x94W`\0\x80\xFD[P6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`t\x015`\xE0\x1C[`@Qc\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01a\x02\xE7V[a\x04\xB6a\x15\xBCV[4\x80\x15a\x06\xD2W`\0\x80\xFD[P`\x07T`\x08Ta\x06\xE1\x91\x90\x82V[`@\x80Q\x92\x83R` \x83\x01\x91\x90\x91R\x01a\x02\xE7V[4\x80\x15a\x07\x02W`\0\x80\xFD[P6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`T\x015a\x03fV[4\x80\x15a\x07$W`\0\x80\xFD[P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x06\xA9V[4\x80\x15a\x07WW`\0\x80\xFD[P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x02\xD2V[4\x80\x15a\x07\x8AW`\0\x80\xFD[P6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\x14\x015a\x03fV[4\x80\x15a\x07\xACW`\0\x80\xFD[Pa\x03Ea \x84V[4\x80\x15a\x07\xC1W`\0\x80\xFD[Pa\x03fa\x07\xD06`\x04a'\x0FV[`\x06` R`\0\x90\x81R`@\x90 T\x81V[4\x80\x15a\x07\xEEW`\0\x80\xFD[P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x03fV[4\x80\x15a\x08!W`\0\x80\xFD[P`\0Ta\x02\xD2\x90g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[4\x80\x15a\x08BW`\0\x80\xFD[P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x02\xD2V[a\x03\xDCa \xB6V[4\x80\x15a\x08}W`\0\x80\xFD[Pa\x03fa\x08\x8C6`\x04a'\x0FV[a#\x94V[4\x80\x15a\x08\x9DW`\0\x80\xFD[P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x04&V[4\x80\x15a\x08\xD0W`\0\x80\xFD[Pa\x08\xD9a#\xF5V[`@Qa\x02\xE7\x93\x92\x91\x90a'\xB1V[4\x80\x15a\x08\xF4W`\0\x80\xFD[P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x04&V[`\0\x80`\0Tp\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16`\x02\x81\x11\x15a\tIWa\tIa%\xBEV[\x14a\t\x80W`@Q\x7F\xF1\xA9E\x81\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\x01`@Q\x80\x91\x03\x90\xFD[`\0a\t\x8Aa$7V[\x90P`\0\x81`\x02\x81\x11\x15a\t\xA0Wa\t\xA0a%\xBEV[\x03a\t\xD7W`@Q\x7F\x92\xC5\x06\xAE\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01\x81`\x02\x81\x11\x15a\t\xEBWa\t\xEBa%\xBEV[\x03a\n]W`\0\x80T`\x01\x91\x90\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16p\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x83[\x02\x17\x90UP`\x01Td\x01\0\0\0\0\x90\x04`\x01`\x01`\xA0\x1B\x03\x16`\0\x90\x81R`\x05` R`@\x90 G\x90Ua\r,V[a\nea \x84V[a\n\x9BW`@Q\x7F\x04d<9\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\x01`@Q\x80\x91\x03\x90\xFD[`\0`\x04\x80T`\xFF\x16\x90\x81\x11\x15a\n\xB4Wa\n\xB4a%\xBEV[\x03a\x0B1W`\0\x80T`\x02\x91\x90\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16p\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x83[\x02\x17\x90UPG`\x05`\x006`\x01\x19\x81\x015`\xF0\x1C\x90\x035``\x1C[`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x81\x01\x91\x90\x91R`@\x01`\0 Ua\r,V[`\x01`\x04\x80T`\xFF\x16\x90\x81\x11\x15a\x0BJWa\x0BJa%\xBEV[\x03a\x0B\x91W`\0\x80T`\x01\x91\x90\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16p\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x83a\n.V[`\x02`\x04\x80T`\xFF\x16\x90\x81\x11\x15a\x0B\xAAWa\x0B\xAAa%\xBEV[\x03a\x0B\xF1W`\0\x80T`\x02\x91\x90\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16p\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x83a\n\xF7V[`\x03`\x04\x80T`\xFF\x16\x90\x81\x11\x15a\x0C\nWa\x0C\na%\xBEV[\x03a\x0C\xFAW`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16p\x02\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x17\x90Ua\x0Ca`\x01\x196\x90\x81\x015`\xF0\x1C\x90\x035``\x1C\x90V[`\x02T`\x01`\x01`\xA0\x1B\x03\x91\x82\x16\x91\x16\x03a\x0C\x98W`\x02T`\x01`\x01`\xA0\x1B\x03\x16`\0\x90\x81R`\x05` R`@\x90 G\x90Ua\r,V[`\x02T`\x01`\x01`\xA0\x1B\x03\x16`\0\x90\x81R`\x05` R`@\x90 \x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x81\x90Ua\x0C\xE1\x90Ga(\x0EV[`\x05`\x006`\x01\x19\x81\x015`\xF0\x1C\x90\x035``\x1Ca\x0B\x12V[`@Q\x7Ft\x92\xA2i\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\x01`@Q\x80\x91\x03\x90\xFD[`\x04\x80T`\xFF\x19\x16\x81\x17\x90U`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16h\x01\0\0\0\0\0\0\0\0Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x02\x17\x90\x81\x90Up\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16`\x02\x81\x11\x15a\r\xA1Wa\r\xA1a%\xBEV[`@Q\x7F^\x18o\t\xB9\xC94\x91\xF1N'~\xEA\x7F\xAA]\xE6\xA2\xD4\xBD\xA7Zy\xAFz6\x84\xFB\xFBB\xDA`\x90`\0\x90\xA2PP`\0Tp\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16\x90V[`\0a\r\xF3a \x84V[\x15a\x0E*W`@Q\x7F\xDFF\x9C\xCB\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\x01`@Q\x80\x91\x03\x90\xFD[`\0`@Q\x80`\xE0\x01`@R\x80a\x0EN`4`\x01\x196\x90\x81\x015`\xF0\x1C\x90\x03\x015\x90V[\x81R`\x07T` \x82\x01R`@\x01a\x0Et6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\x14\x015\x90V[\x90V[\x81R` \x016`\x01\x19\x81\x015`\xF0\x1C\x90\x03`T\x015\x81R` \x01\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81R` \x01\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81R` \x013`\x01`\x01`\xA0\x1B\x03\x16\x81RP\x90P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16cAI<`\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x83`@Q` \x01a\x0F\x9C\x91\x90`\0`\xE0\x82\x01\x90P\x82Q\x82R` \x83\x01Q` \x83\x01R`@\x83\x01Q`@\x83\x01R``\x83\x01Q``\x83\x01R`\x80\x83\x01Q`\x80\x83\x01R`\xA0\x83\x01Q`\xA0\x83\x01R`\x01`\x01`\xA0\x1B\x03`\xC0\x84\x01Q\x16`\xC0\x83\x01R\x92\x91PPV[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x87\x87`@Q\x85c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01a\x0F\xCC\x94\x93\x92\x91\x90a(%V[`\0`@Q\x80\x83\x03\x81\x86\x80;\x15\x80\x15a\x0F\xE4W`\0\x80\xFD[PZ\xFA\x15\x80\x15a\x0F\xF8W=`\0\x80>=`\0\xFD[PP`\x02\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x163\x17\x90UPP`\x01Td\x01\0\0\0\0\x90\x04`\x01`\x01`\xA0\x1B\x03\x16a\x10PW`\x04\x80T`\xFF\x19\x16`\x02\x17\x90Ua\x10^V[`\x04\x80T`\xFF\x19\x16`\x03\x17\x90U[`\x02T`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x90\x7F^ee\xD9\xCA/\\\x85\x01\xD6A\x8B\xF5c2*rC\xBAz\xCE&mu\xEA\xC9\x9FJ\xDB\xB3\x0B\xA7\x90`\0\x90\xA2PP`\x04T`\xFF\x16[\x92\x91PPV[\x90P\x90V[``a\x10\xA5`T`$a%\x8AV[a\x10\xC0a\x12^V[`\0`\x02`\tTa\x01\0\x90\x04`\xFF\x16`\x02\x81\x11\x15a\x10\xE0Wa\x10\xE0a%\xBEV[\x03a\x11\x04WP`\x01`\x01`\xA0\x1B\x03\x81\x16`\0\x90\x81R`\x06` R`@\x90 Ta\x11xV[`\x01`\tTa\x01\0\x90\x04`\xFF\x16`\x02\x81\x11\x15a\x11\"Wa\x11\"a%\xBEV[\x03a\x11FWP`\x01`\x01`\xA0\x1B\x03\x81\x16`\0\x90\x81R`\x05` R`@\x90 Ta\x11xV[`@Q\x7F\x07\x8A=\xF4\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\x01`@Q\x80\x91\x03\x90\xFD[\x80`\0\x03a\x11\xB2W`@Q\x7F\x17\xBF\xE5\xF7\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xA0\x1B\x03\x82\x16`\0\x81\x81R`\x06` \x90\x81R`@\x80\x83 \x83\x90U`\x05\x90\x91R\x80\x82 \x82\x90UQ\x90\x91\x90\x83\x90\x83\x81\x81\x81\x85\x87Z\xF1\x92PPP=\x80`\0\x81\x14a\x12\x19W`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=`\0` \x84\x01>a\x12\x1EV[``\x91P[PP\x90P\x80a\x12YW`@Q\x7F\x83\xE6\xCCk\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\x01`@Q\x80\x91\x03\x90\xFD[PPPV[`\x02`\tTa\x01\0\x90\x04`\xFF\x16`\x02\x81\x11\x15a\x12|Wa\x12|a%\xBEV[\x14\x80a\x12\xA3WP`\x01`\tTa\x01\0\x90\x04`\xFF\x16`\x02\x81\x11\x15a\x12\xA1Wa\x12\xA1a%\xBEV[\x14[\x15a\x12\xAAWV[`\0`\tTa\x01\0\x90\x04`\xFF\x16`\x02\x81\x11\x15a\x12\xC8Wa\x12\xC8a%\xBEV[\x14a\x12\xFFW`@Q\x7F\x07\x8A=\xF4\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\x01`@Q\x80\x91\x03\x90\xFD[`@Q\x7F\x03\x14\xD2\xB3\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\x81R0`\x04\x82\x01R`\0\x90\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16\x90c\x03\x14\xD2\xB3\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x13\x7FW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x13\xA3\x91\x90a(\x90V[\x90P\x80a\x13\xDCW`@Q\x7FHQ\xBD\x9B\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\x01`@Q\x80\x91\x03\x90\xFD[`@Q\x7F\x17\xCF!\xA9\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\x81R0`\x04\x82\x01R\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16\x90c\x17\xCF!\xA9\x90`$\x01`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a\x14VW`\0\x80\xFD[PZ\xF1\x92PPP\x80\x15a\x14gWP`\x01[P`@Q\x7FIk\x9C\x16\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\x81R0`\x04\x82\x01R`\0\x90\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16\x90cIk\x9C\x16\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x14\xE8W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x15\x0C\x91\x90a(\x90V[\x90P\x80\x15a\x15EW`\t\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\x16a\x01\0\x17\x90Ua\x15rV[`\t\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\x16a\x02\0\x17\x90U[\x7F\x99\x08\xEA\xAC\x06E\xDF\x9D\x07\x04\xD0j\xDC\x9E\x073|\x95\x1D\xE2\xF0k_(6\x15\x1DH\xD5\xE4r/`\t`\x01\x90T\x90a\x01\0\n\x90\x04`\xFF\x16`@Qa\x15\xB0\x91\x90a&\0V[`@Q\x80\x91\x03\x90\xA1PPV[`\0Tq\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16\x15a\x16\x0EW`@Q\x7F\r\xC1I\xF0\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\x01`@Q\x80\x91\x03\x90\xFD[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x163\x14a\x16pW`@Q\x7F\x94\r8\xC7\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xA0\x1B\x03\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16c\x1D2%\xE36`\x01\x19\x81\x015`\xF0\x1C\x90\x035``\x1C`@Q\x7F\xFF\xFF\xFF\xFF\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`\xE0\x84\x90\x1B\x16\x81R`\x01`\x01`\xA0\x1B\x03\x90\x91\x16`\x04\x82\x01R`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x17\x0BW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x17/\x91\x90a(\x90V[a\x17eW`@Q\x7F\xD3\x86\xEF>\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\x01`@Q\x80\x91\x03\x90\xFD[`~6\x14a\x17{Wc\x98$\xBD\xAB`\0R`\x04`\x1C\xFD[c\xFF\xFF\xFF\xFF6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`t\x015`\xE0\x1C\x14a\x1C%W`\0`\x01`\x01`\xA0\x1B\x03\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16c\xBB\x8A\xA1\xFC6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`t\x015`\xE0\x1C`@Q\x7F\xFF\xFF\xFF\xFF\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`\xE0\x84\x90\x1B\x16\x81Rc\xFF\xFF\xFF\xFF\x91\x90\x91\x16`\x04\x82\x01R`$\x01```@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x186W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x18Z\x91\x90a(\xC6V[`@Q\x7F\x04\xE5\x0F\xED\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`\x01`\x01`\xA0\x1B\x03\x80\x83\x16`\x04\x83\x01R\x91\x94P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x91\x16\x92Pc\x04\xE5\x0F\xED\x91P`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x18\xE0W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x19\x04\x91\x90a(\x90V[\x15\x80a\x19\xAEWP`@Q\x7F4\xA3F\xEA\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`\x01`\x01`\xA0\x1B\x03\x82\x81\x16`\x04\x83\x01R\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x90c4\xA3F\xEA\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x19\x8AW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x19\xAE\x91\x90a(\x90V[\x80a\x1AWWP`@Q\x7FYX\xA1\x93\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`\x01`\x01`\xA0\x1B\x03\x82\x81\x16`\x04\x83\x01R\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x90cYX\xA1\x93\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x1A3W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x1AW\x91\x90a(\x90V[\x15a\x1A\x8EW`@Q\x7F4a\x19\xF7\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\x01`@Q\x80\x91\x03\x90\xFD[`@Q\x80`@\x01`@R\x80a\x1A\xFE\x83`\x01`\x01`\xA0\x1B\x03\x16c\xBC\xEF;U`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x1A\xDAW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x0Eq\x91\x90a)\x1DV[\x81R` \x01\x82`\x01`\x01`\xA0\x1B\x03\x16c\x99s^2`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x1BAW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x1Be\x91\x90a)\x1DV[\x90R\x80Q`\x07U` \x01Q`\x08U`\x01\x81`\x01`\x01`\xA0\x1B\x03\x16c \r.\xD2`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x1B\xB3W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x1B\xD7\x91\x90a)6V[`\x02\x81\x11\x15a\x1B\xE8Wa\x1B\xE8a%\xBEV[\x03a\x1C\x1FW`@Q\x7F4a\x19\xF7\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\x01`@Q\x80\x91\x03\x90\xFD[Pa\x1C\xF2V[`@Q\x7FrX\xA8\x07\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\x81Rc\xFF\xFF\xFF\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16`\x04\x82\x01R\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16\x90crX\xA8\x07\x90`$\x01`@\x80Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x1C\xC7W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x1C\xEB\x91\x90a)WV[`\x08U`\x07U[`\x08T6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`T\x015\x11a\x1DQW`@Q\x7F\xF4\x029\xDB\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\x81R6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\x14\x015`\x04\x82\x01R`$\x01`@Q\x80\x91\x03\x90\xFD[`@Q\x80`\xC0\x01`@R\x80a\x1Dv`t`\x01\x196\x90\x81\x015`\xF0\x1C\x90\x03\x015`\xE0\x1C\x90V[c\xFF\xFF\xFF\xFF\x16\x81R`\0` \x82\x01\x81\x90R`@\x82\x01R``\x016`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\x14\x015\x81R`\0` \x82\x01R`@\x01a\x1D\xDF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16Ba){V[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90R\x80Q`\x01\x80T` \x84\x01Qc\xFF\xFF\xFF\xFF\x90\x93\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x91\x16\x17d\x01\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x93\x84\x16\x02\x17\x81U`@\x83\x01Q`\x02\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x91\x90\x93\x16\x17\x90\x91U``\x82\x01Q`\x03U`\x80\x82\x01Q`\x04\x80T`\xFF\x19\x16\x83\x83\x83\x81\x11\x15a\x1E\x92Wa\x1E\x92a%\xBEV[\x02\x17\x90UP`\xA0\x91\x90\x91\x01Q`\x03\x90\x91\x01\x80Tg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x92\x16a\x01\0\x02\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\xFF\x90\x92\x16\x91\x90\x91\x17\x90U`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16q\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x17\x81U4\x90`\x06\x90a\x1F7`\x01\x196\x90\x81\x015`\xF0\x1C\x90\x035``\x1C\x90V[`\x01`\x01`\xA0\x1B\x03\x16`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x01\x90\x81R` \x01`\0 `\0\x82\x82Ta\x1Ff\x91\x90a){V[\x90\x91UPP`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\x16Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x17\x90U`@\x80Q\x7F<\x9F9|\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\x90Q\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0c\xFF\xFF\xFF\xFF\x16\x91\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16\x91c<\x9F9|\x91`\x04\x80\x82\x01\x92` \x92\x90\x91\x90\x82\x90\x03\x01\x81\x86Z\xFA\x15\x80\x15a FW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a j\x91\x90a)\x93V[`\t\x80T`\xFF\x19\x16c\xFF\xFF\xFF\xFF\x92\x90\x92\x16\x92\x90\x92\x14\x17\x90UV[`\x04T`\0\x90g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFFB\x81\x16a\x01\0\x90\x92\x04\x16\x10\x80a\x10\xA5WPP`\x02T`\x01`\x01`\xA0\x1B\x03\x16\x15\x15\x90V[`\0\x80`\x04\x80T`\xFF\x16\x90\x81\x11\x15a \xD0Wa \xD0a%\xBEV[\x14a!\x07W`@Q\x7F\x85\xC3E\xB0\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\x01`@Q\x80\x91\x03\x90\xFD[`@Q\x7F\xFFY\xAE}\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\x81R3`\x04\x82\x01R\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16\x90c\xFFY\xAE}\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a!\x84W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a!\xA8\x91\x90a(\x90V[a!\xDEW`@Q\x7F\xD3\x86\xEF>\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\x01`@Q\x80\x91\x03\x90\xFD[a!\xE6a \x84V[\x15a\"\x1DW`@Q\x7F\xDFF\x9C\xCB\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\x01`@Q\x80\x91\x03\x90\xFD[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x004\x14a\"vW`@Q\x7F\x86 \xAA\x19\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xFF\xFF\xFF\xFF\x163d\x01\0\0\0\0\x02\x17\x81U`\x04\x80T`\xFF\x19\x16\x90\x91\x17\x90Ua\"\xE8g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16Ba){V[`\x04\x80Tg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x92\x90\x92\x16a\x01\0\x02\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\xFF\x90\x92\x16\x91\x90\x91\x17\x90U3`\0\x90\x81R`\x06` R`@\x81 \x80T4\x92\x90a#F\x90\x84\x90a){V[\x90\x91UPP`\x01T`@Qd\x01\0\0\0\0\x90\x91\x04`\x01`\x01`\xA0\x1B\x03\x16\x90\x7F\x98\x02{8\x15?\x99\\K\x80*\\~ce\xBE\xE3\xAD\xDB%\xAFk)\x81\x8C\x0C0F\x84\xD8\x05,\x90`\0\x90\xA2P`\x04T`\xFF\x16\x90V[`\0`\x02`\tTa\x01\0\x90\x04`\xFF\x16`\x02\x81\x11\x15a#\xB4Wa#\xB4a%\xBEV[\x03a#\xD5WP`\x01`\x01`\xA0\x1B\x03\x16`\0\x90\x81R`\x06` R`@\x90 T\x90V[P`\x01`\x01`\xA0\x1B\x03\x81\x16`\0\x90\x81R`\x05` R`@\x90 T[\x91\x90PV[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x006`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\x14\x015``a$0a\x10\xAAV[\x90P\x90\x91\x92V[`\0c\xFF\xFF\xFF\xFF6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`t\x015`\xE0\x1C\x14a%\x84W`\0`\x01`\x01`\xA0\x1B\x03\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16c\xBB\x8A\xA1\xFC6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`t\x015`\xE0\x1C`@Q\x7F\xFF\xFF\xFF\xFF\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`\xE0\x84\x90\x1B\x16\x81Rc\xFF\xFF\xFF\xFF\x91\x90\x91\x16`\x04\x82\x01R`$\x01```@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a$\xF4W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a%\x18\x91\x90a(\xC6V[\x92PPP\x80`\x01`\x01`\xA0\x1B\x03\x16c \r.\xD2`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a%ZW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a%~\x91\x90a)6V[\x91PP\x90V[P`\x02\x90V[`@Q\x81\x81R6`\x01\x19\x81\x015`\xF0\x1C\x90\x03\x82\x84\x82\x01` \x84\x017\x82` \x83\x01\x01`\0\x81R` \x81\x01`@RPP\x92\x91PPV[\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`!`\x04R`$`\0\xFD[`\x03\x81\x10a%\xFDWa%\xFDa%\xBEV[PV[` \x81\x01a&\r\x83a%\xEDV[\x91\x90R\x90V[`\0\x80` \x83\x85\x03\x12\x15a&&W`\0\x80\xFD[\x825g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a&>W`\0\x80\xFD[\x81\x85\x01\x91P\x85`\x1F\x83\x01\x12a&RW`\0\x80\xFD[\x815\x81\x81\x11\x15a&aW`\0\x80\xFD[\x86` \x82\x85\x01\x01\x11\x15a&sW`\0\x80\xFD[` \x92\x90\x92\x01\x96\x91\x95P\x90\x93PPPPV[`\x05\x81\x10a&\x95Wa&\x95a%\xBEV[\x90RV[` \x81\x01a\x10\x9F\x82\x84a&\x85V[c\xFF\xFF\xFF\xFF\x87\x16\x81R`\x01`\x01`\xA0\x1B\x03\x86\x81\x16` \x83\x01R\x85\x16`@\x82\x01R``\x81\x01\x84\x90R`\xC0\x81\x01a&\xDF`\x80\x83\x01\x85a&\x85V[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x16`\xA0\x83\x01R\x97\x96PPPPPPPV[`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a%\xFDW`\0\x80\xFD[`\0` \x82\x84\x03\x12\x15a'!W`\0\x80\xFD[\x815a',\x81a&\xFAV[\x93\x92PPPV[`\0\x81Q\x80\x84R`\0[\x81\x81\x10\x15a'YW` \x81\x85\x01\x81\x01Q\x86\x83\x01\x82\x01R\x01a'=V[\x81\x81\x11\x15a'kW`\0` \x83\x87\x01\x01R[P`\x1F\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x92\x90\x92\x01` \x01\x92\x91PPV[` \x81R`\0a',` \x83\x01\x84a'3V[c\xFF\xFF\xFF\xFF\x84\x16\x81R\x82` \x82\x01R```@\x82\x01R`\0a'\xD6``\x83\x01\x84a'3V[\x95\x94PPPPPV[\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`\x11`\x04R`$`\0\xFD[`\0\x82\x82\x10\x15a( Wa( a'\xDFV[P\x03\x90V[\x84\x81R``` \x82\x01R`\0a(>``\x83\x01\x86a'3V[\x82\x81\x03`@\x84\x01R\x83\x81R\x83\x85` \x83\x017`\0` \x85\x83\x01\x01R` \x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0`\x1F\x86\x01\x16\x82\x01\x01\x91PP\x95\x94PPPPPV[`\0` \x82\x84\x03\x12\x15a(\xA2W`\0\x80\xFD[\x81Q\x80\x15\x15\x81\x14a',W`\0\x80\xFD[\x80Qc\xFF\xFF\xFF\xFF\x81\x16\x81\x14a#\xF0W`\0\x80\xFD[`\0\x80`\0``\x84\x86\x03\x12\x15a(\xDBW`\0\x80\xFD[a(\xE4\x84a(\xB2V[\x92P` \x84\x01Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a)\x01W`\0\x80\xFD[`@\x85\x01Q\x90\x92Pa)\x12\x81a&\xFAV[\x80\x91PP\x92P\x92P\x92V[`\0` \x82\x84\x03\x12\x15a)/W`\0\x80\xFD[PQ\x91\x90PV[`\0` \x82\x84\x03\x12\x15a)HW`\0\x80\xFD[\x81Q`\x03\x81\x10a',W`\0\x80\xFD[`\0\x80`@\x83\x85\x03\x12\x15a)jW`\0\x80\xFD[PP\x80Q` \x90\x91\x01Q\x90\x92\x90\x91PV[`\0\x82\x19\x82\x11\x15a)\x8EWa)\x8Ea'\xDFV[P\x01\x90V[`\0` \x82\x84\x03\x12\x15a)\xA5W`\0\x80\xFD[a',\x82a(\xB2V\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x6080604052600436106102a05760003560e01c80636d9a1c8b1161016e578063bdb337d1116100cb578063d2ef73981161007f578063f2b4e61711610064578063f2b4e61714610891578063fa24f743146108c4578063fdcb6068146108e857600080fd5b8063d2ef739814610869578063d5d44d801461087157600080fd5b8063c32e4e3e116100b0578063c32e4e3e146107e2578063cf09e0d014610815578063d2177bdd1461083657600080fd5b8063bdb337d1146107a0578063c0d8bb74146107b557600080fd5b8063938d689a11610122578063bbdc02db11610107578063bbdc02db14610718578063bcbe50941461074b578063bcef3b551461077e57600080fd5b8063938d689a146106c657806399735e32146106f657600080fd5b8063786b844b11610153578063786b844b146106735780637948690a146106885780638129fc1c146106be57600080fd5b80636d9a1c8b1461062b57806370872aa51461065e57600080fd5b80633ec4d4d61161021c5780635c0cba33116101d057806360e27464116101b557806360e27464146105b65780636361506d146105d657806368ccdc86146105f857600080fd5b80635c0cba331461056e578063609d3334146105a157600080fd5b8063529d6a8c11610201578063529d6a8c146104b857806352a07fa3146104e557806354fd4d501461051857600080fd5b80633ec4d4d61461043e5780634224b1e7146104a457600080fd5b80632810e1d611610273578063375bfa5d11610258578063375bfa5d146103bc578063378dd48c146103e957806337b1b2291461040857600080fd5b80632810e1d6146103745780632b31841e1461038957600080fd5b806319effeb4146102a5578063200d2ed2146102f0578063250e69bd1461032b57806325fc2ace14610355575b600080fd5b3480156102b157600080fd5b506000546102d29068010000000000000000900467ffffffffffffffff1681565b60405167ffffffffffffffff90911681526020015b60405180910390f35b3480156102fc57600080fd5b5060005461031e90700100000000000000000000000000000000900460ff1681565b6040516102e79190612600565b34801561033757600080fd5b506009546103459060ff1681565b60405190151581526020016102e7565b34801561036157600080fd5b506007545b6040519081526020016102e7565b34801561038057600080fd5b5061031e61091b565b34801561039557600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610366565b3480156103c857600080fd5b506103dc6103d7366004612613565b610de9565b6040516102e79190612699565b3480156103f557600080fd5b5060095461031e90610100900460ff1681565b34801561041457600080fd5b503660011981013560f01c90033560601c5b6040516001600160a01b0390911681526020016102e7565b34801561044a57600080fd5b506001546002546003546004546104929363ffffffff8116936001600160a01b0364010000000090920482169391169160ff81169067ffffffffffffffff6101009091041686565b6040516102e7969594939291906126a7565b6104b66104b2366004612613565b5050565b005b3480156104c457600080fd5b506103666104d336600461270f565b60056020526000908152604090205481565b3480156104f157600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610426565b34801561052457600080fd5b506105616040518060400160405280600581526020017f302e302e3000000000000000000000000000000000000000000000000000000081525081565b6040516102e7919061279e565b34801561057a57600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610426565b3480156105ad57600080fd5b506105616110aa565b3480156105c257600080fd5b506104b66105d136600461270f565b6110b8565b3480156105e257600080fd5b503660011981013560f01c900360340135610366565b34801561060457600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610366565b34801561063757600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610366565b34801561066a57600080fd5b50600854610366565b34801561067f57600080fd5b506104b661125e565b34801561069457600080fd5b503660011981013560f01c90036074013560e01c5b60405163ffffffff90911681526020016102e7565b6104b66115bc565b3480156106d257600080fd5b506007546008546106e1919082565b604080519283526020830191909152016102e7565b34801561070257600080fd5b503660011981013560f01c900360540135610366565b34801561072457600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006106a9565b34801561075757600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006102d2565b34801561078a57600080fd5b503660011981013560f01c900360140135610366565b3480156107ac57600080fd5b50610345612084565b3480156107c157600080fd5b506103666107d036600461270f565b60066020526000908152604090205481565b3480156107ee57600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610366565b34801561082157600080fd5b506000546102d29067ffffffffffffffff1681565b34801561084257600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006102d2565b6103dc6120b6565b34801561087d57600080fd5b5061036661088c36600461270f565b612394565b34801561089d57600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610426565b3480156108d057600080fd5b506108d96123f5565b6040516102e7939291906127b1565b3480156108f457600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610426565b600080600054700100000000000000000000000000000000900460ff166002811115610949576109496125be565b14610980576040517ff1a9458100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061098a612437565b905060008160028111156109a0576109a06125be565b036109d7576040517f92c506ae00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60018160028111156109eb576109eb6125be565b03610a5d5760008054600191907fffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff16700100000000000000000000000000000000835b021790555060015464010000000090046001600160a01b03166000908152600560205260409020479055610d2c565b610a65612084565b610a9b576040517f04643c3900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006004805460ff1690811115610ab457610ab46125be565b03610b315760008054600291907fffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff16700100000000000000000000000000000000835b021790555047600560003660011981013560f01c90033560601c5b6001600160a01b03168152602081019190915260400160002055610d2c565b60016004805460ff1690811115610b4a57610b4a6125be565b03610b915760008054600191907fffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff1670010000000000000000000000000000000083610a2e565b60026004805460ff1690811115610baa57610baa6125be565b03610bf15760008054600291907fffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff1670010000000000000000000000000000000083610af7565b60036004805460ff1690811115610c0a57610c0a6125be565b03610cfa57600080547fffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff16700200000000000000000000000000000000179055610c61600119369081013560f01c90033560601c90565b6002546001600160a01b03918216911603610c98576002546001600160a01b03166000908152600560205260409020479055610d2c565b6002546001600160a01b031660009081526005602052604090207f000000000000000000000000000000000000000000000000000000000000000090819055610ce1904761280e565b600560003660011981013560f01c90033560601c610b12565b6040517f7492a26900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6004805460ff191681179055600080547fffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff16680100000000000000004267ffffffffffffffff16021790819055700100000000000000000000000000000000900460ff166002811115610da157610da16125be565b6040517f5e186f09b9c93491f14e277eea7faa5de6a2d4bda75a79af7a3684fbfb42da6090600090a25050600054700100000000000000000000000000000000900460ff1690565b6000610df3612084565b15610e2a576040517fdf469ccb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006040518060e00160405280610e4e6034600119369081013560f01c9003013590565b81526007546020820152604001610e743660011981013560f01c90036014013590565b90565b81526020013660011981013560f01c90036054013581526020017f000000000000000000000000000000000000000000000000000000000000000081526020017f00000000000000000000000000000000000000000000000000000000000000008152602001336001600160a01b031681525090507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166341493c607f000000000000000000000000000000000000000000000000000000000000000083604051602001610f9c9190600060e082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015260a083015160a08301526001600160a01b0360c08401511660c083015292915050565b60405160208183030381529060405287876040518563ffffffff1660e01b8152600401610fcc9493929190612825565b60006040518083038186803b158015610fe457600080fd5b505afa158015610ff8573d6000803e3d6000fd5b5050600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001633179055505060015464010000000090046001600160a01b0316611050576004805460ff1916600217905561105e565b6004805460ff191660031790555b6002546040516001600160a01b03909116907f5e6565d9ca2f5c8501d6418bf563322a7243ba7ace266d75eac99f4adbb30ba790600090a2505060045460ff165b92915050565b905090565b60606110a56054602461258a565b6110c061125e565b60006002600954610100900460ff1660028111156110e0576110e06125be565b0361110457506001600160a01b038116600090815260066020526040902054611178565b6001600954610100900460ff166002811115611122576111226125be565b0361114657506001600160a01b038116600090815260056020526040902054611178565b6040517f078a3df400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806000036111b2576040517f17bfe5f700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038216600081815260066020908152604080832083905560059091528082208290555190919083908381818185875af1925050503d8060008114611219576040519150601f19603f3d011682016040523d82523d6000602084013e61121e565b606091505b5050905080611259576040517f83e6cc6b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b6002600954610100900460ff16600281111561127c5761127c6125be565b14806112a357506001600954610100900460ff1660028111156112a1576112a16125be565b145b156112aa57565b6000600954610100900460ff1660028111156112c8576112c86125be565b146112ff576040517f078a3df400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f0314d2b30000000000000000000000000000000000000000000000000000000081523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690630314d2b390602401602060405180830381865afa15801561137f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113a39190612890565b9050806113dc576040517f4851bd9b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f17cf21a90000000000000000000000000000000000000000000000000000000081523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906317cf21a990602401600060405180830381600087803b15801561145657600080fd5b505af1925050508015611467575060015b506040517f496b9c160000000000000000000000000000000000000000000000000000000081523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063496b9c1690602401602060405180830381865afa1580156114e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061150c9190612890565b9050801561154557600980547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16610100179055611572565b600980547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166102001790555b7f9908eaac0645df9d0704d06adc9e07337c951de2f06b5f2836151d48d5e4722f600960019054906101000a900460ff166040516115b09190612600565b60405180910390a15050565b60005471010000000000000000000000000000000000900460ff161561160e576040517f0dc149f000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314611670576040517f940d38c700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016631d3225e33660011981013560f01c90033560601c6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa15801561170b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061172f9190612890565b611765576040517fd386ef3e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b607e361461177b57639824bdab6000526004601cfd5b63ffffffff3660011981013560f01c90036074013560e01c14611c255760006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663bb8aa1fc3660011981013560f01c90036074013560e01c6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815263ffffffff919091166004820152602401606060405180830381865afa158015611836573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061185a91906128c6565b6040517f04e50fed0000000000000000000000000000000000000000000000000000000081526001600160a01b0380831660048301529194507f000000000000000000000000000000000000000000000000000000000000000090911692506304e50fed9150602401602060405180830381865afa1580156118e0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119049190612890565b15806119ae57506040517f34a346ea0000000000000000000000000000000000000000000000000000000081526001600160a01b0382811660048301527f000000000000000000000000000000000000000000000000000000000000000016906334a346ea90602401602060405180830381865afa15801561198a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119ae9190612890565b80611a5757506040517f5958a1930000000000000000000000000000000000000000000000000000000081526001600160a01b0382811660048301527f00000000000000000000000000000000000000000000000000000000000000001690635958a19390602401602060405180830381865afa158015611a33573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a579190612890565b15611a8e576040517f346119f700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040518060400160405280611afe836001600160a01b031663bcef3b556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ada573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e71919061291d565b8152602001826001600160a01b03166399735e326040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b41573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b65919061291d565b90528051600755602001516008556001816001600160a01b031663200d2ed26040518163ffffffff1660e01b8152600401602060405180830381865afa158015611bb3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bd79190612936565b6002811115611be857611be86125be565b03611c1f576040517f346119f700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50611cf2565b6040517f7258a80700000000000000000000000000000000000000000000000000000000815263ffffffff7f00000000000000000000000000000000000000000000000000000000000000001660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690637258a807906024016040805180830381865afa158015611cc7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ceb9190612957565b6008556007555b6008543660011981013560f01c90036054013511611d51576040517ff40239db0000000000000000000000000000000000000000000000000000000081523660011981013560f01c900360140135600482015260240160405180910390fd5b6040518060c00160405280611d766074600119369081013560f01c9003013560e01c90565b63ffffffff16815260006020820181905260408201526060013660011981013560f01c900360140135815260006020820152604001611ddf7f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff164261297b565b67ffffffffffffffff169052805160018054602084015163ffffffff9093167fffffffffffffffff000000000000000000000000000000000000000000000000909116176401000000006001600160a01b03938416021781556040830151600280547fffffffffffffffffffffffff0000000000000000000000000000000000000000169190931617909155606082015160035560808201516004805460ff1916838383811115611e9257611e926125be565b021790555060a091909101516003909101805467ffffffffffffffff909216610100027fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000ff909216919091179055600080547fffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff16710100000000000000000000000000000000001781553490600690611f37600119369081013560f01c90033560601c90565b6001600160a01b03166001600160a01b031681526020019081526020016000206000828254611f66919061297b565b9091555050600080547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000164267ffffffffffffffff16179055604080517f3c9f397c00000000000000000000000000000000000000000000000000000000815290517f000000000000000000000000000000000000000000000000000000000000000063ffffffff16917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031691633c9f397c916004808201926020929091908290030181865afa158015612046573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061206a9190612993565b6009805460ff191663ffffffff9290921692909214179055565b60045460009067ffffffffffffffff4281166101009092041610806110a55750506002546001600160a01b0316151590565b6000806004805460ff16908111156120d0576120d06125be565b14612107576040517f85c345b000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517fff59ae7d0000000000000000000000000000000000000000000000000000000081523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063ff59ae7d90602401602060405180830381865afa158015612184573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121a89190612890565b6121de576040517fd386ef3e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6121e6612084565b1561221d576040517fdf469ccb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000003414612276576040517f8620aa1900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600180547fffffffffffffffff0000000000000000000000000000000000000000ffffffff1633640100000000021781556004805460ff191690911790556122e867ffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000164261297b565b6004805467ffffffffffffffff92909216610100027fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000ff909216919091179055336000908152600660205260408120805434929061234690849061297b565b90915550506001546040516401000000009091046001600160a01b0316907f98027b38153f995c4b802a5c7e6365bee3addb25af6b29818c0c304684d8052c90600090a25060045460ff1690565b60006002600954610100900460ff1660028111156123b4576123b46125be565b036123d557506001600160a01b031660009081526006602052604090205490565b506001600160a01b0381166000908152600560205260409020545b919050565b7f00000000000000000000000000000000000000000000000000000000000000003660011981013560f01c90036014013560606124306110aa565b9050909192565b600063ffffffff3660011981013560f01c90036074013560e01c146125845760006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663bb8aa1fc3660011981013560f01c90036074013560e01c6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815263ffffffff919091166004820152602401606060405180830381865afa1580156124f4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061251891906128c6565b92505050806001600160a01b031663200d2ed26040518163ffffffff1660e01b8152600401602060405180830381865afa15801561255a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061257e9190612936565b91505090565b50600290565b6040518181523660011981013560f01c90038284820160208401378260208301016000815260208101604052505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600381106125fd576125fd6125be565b50565b6020810161260d836125ed565b91905290565b6000806020838503121561262657600080fd5b823567ffffffffffffffff8082111561263e57600080fd5b818501915085601f83011261265257600080fd5b81358181111561266157600080fd5b86602082850101111561267357600080fd5b60209290920196919550909350505050565b60058110612695576126956125be565b9052565b6020810161109f8284612685565b63ffffffff871681526001600160a01b038681166020830152851660408201526060810184905260c081016126df6080830185612685565b67ffffffffffffffff831660a0830152979650505050505050565b6001600160a01b03811681146125fd57600080fd5b60006020828403121561272157600080fd5b813561272c816126fa565b9392505050565b6000815180845260005b818110156127595760208185018101518683018201520161273d565b8181111561276b576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60208152600061272c6020830184612733565b63ffffffff841681528260208201526060604082015260006127d66060830184612733565b95945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600082821015612820576128206127df565b500390565b84815260606020820152600061283e6060830186612733565b82810360408401528381528385602083013760006020858301015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f86011682010191505095945050505050565b6000602082840312156128a257600080fd5b8151801515811461272c57600080fd5b805163ffffffff811681146123f057600080fd5b6000806000606084860312156128db57600080fd5b6128e4846128b2565b9250602084015167ffffffffffffffff8116811461290157600080fd5b6040850151909250612912816126fa565b809150509250925092565b60006020828403121561292f57600080fd5b5051919050565b60006020828403121561294857600080fd5b81516003811061272c57600080fd5b6000806040838503121561296a57600080fd5b505080516020909101519092909150565b6000821982111561298e5761298e6127df565b500190565b6000602082840312156129a557600080fd5b61272c826128b256fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R`\x046\x10a\x02\xA0W`\x005`\xE0\x1C\x80cm\x9A\x1C\x8B\x11a\x01nW\x80c\xBD\xB37\xD1\x11a\0\xCBW\x80c\xD2\xEFs\x98\x11a\0\x7FW\x80c\xF2\xB4\xE6\x17\x11a\0dW\x80c\xF2\xB4\xE6\x17\x14a\x08\x91W\x80c\xFA$\xF7C\x14a\x08\xC4W\x80c\xFD\xCB`h\x14a\x08\xE8W`\0\x80\xFD[\x80c\xD2\xEFs\x98\x14a\x08iW\x80c\xD5\xD4M\x80\x14a\x08qW`\0\x80\xFD[\x80c\xC3.N>\x11a\0\xB0W\x80c\xC3.N>\x14a\x07\xE2W\x80c\xCF\t\xE0\xD0\x14a\x08\x15W\x80c\xD2\x17{\xDD\x14a\x086W`\0\x80\xFD[\x80c\xBD\xB37\xD1\x14a\x07\xA0W\x80c\xC0\xD8\xBBt\x14a\x07\xB5W`\0\x80\xFD[\x80c\x93\x8Dh\x9A\x11a\x01\"W\x80c\xBB\xDC\x02\xDB\x11a\x01\x07W\x80c\xBB\xDC\x02\xDB\x14a\x07\x18W\x80c\xBC\xBEP\x94\x14a\x07KW\x80c\xBC\xEF;U\x14a\x07~W`\0\x80\xFD[\x80c\x93\x8Dh\x9A\x14a\x06\xC6W\x80c\x99s^2\x14a\x06\xF6W`\0\x80\xFD[\x80cxk\x84K\x11a\x01SW\x80cxk\x84K\x14a\x06sW\x80cyHi\n\x14a\x06\x88W\x80c\x81)\xFC\x1C\x14a\x06\xBEW`\0\x80\xFD[\x80cm\x9A\x1C\x8B\x14a\x06+W\x80cp\x87*\xA5\x14a\x06^W`\0\x80\xFD[\x80c>\xC4\xD4\xD6\x11a\x02\x1CW\x80c\\\x0C\xBA3\x11a\x01\xD0W\x80c`\xE2td\x11a\x01\xB5W\x80c`\xE2td\x14a\x05\xB6W\x80ccaPm\x14a\x05\xD6W\x80ch\xCC\xDC\x86\x14a\x05\xF8W`\0\x80\xFD[\x80c\\\x0C\xBA3\x14a\x05nW\x80c`\x9D34\x14a\x05\xA1W`\0\x80\xFD[\x80cR\x9Dj\x8C\x11a\x02\x01W\x80cR\x9Dj\x8C\x14a\x04\xB8W\x80cR\xA0\x7F\xA3\x14a\x04\xE5W\x80cT\xFDMP\x14a\x05\x18W`\0\x80\xFD[\x80c>\xC4\xD4\xD6\x14a\x04>W\x80cB$\xB1\xE7\x14a\x04\xA4W`\0\x80\xFD[\x80c(\x10\xE1\xD6\x11a\x02sW\x80c7[\xFA]\x11a\x02XW\x80c7[\xFA]\x14a\x03\xBCW\x80c7\x8D\xD4\x8C\x14a\x03\xE9W\x80c7\xB1\xB2)\x14a\x04\x08W`\0\x80\xFD[\x80c(\x10\xE1\xD6\x14a\x03tW\x80c+1\x84\x1E\x14a\x03\x89W`\0\x80\xFD[\x80c\x19\xEF\xFE\xB4\x14a\x02\xA5W\x80c \r.\xD2\x14a\x02\xF0W\x80c%\x0Ei\xBD\x14a\x03+W\x80c%\xFC*\xCE\x14a\x03UW[`\0\x80\xFD[4\x80\x15a\x02\xB1W`\0\x80\xFD[P`\0Ta\x02\xD2\x90h\x01\0\0\0\0\0\0\0\0\x90\x04g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[`@Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[4\x80\x15a\x02\xFCW`\0\x80\xFD[P`\0Ta\x03\x1E\x90p\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16\x81V[`@Qa\x02\xE7\x91\x90a&\0V[4\x80\x15a\x037W`\0\x80\xFD[P`\tTa\x03E\x90`\xFF\x16\x81V[`@Q\x90\x15\x15\x81R` \x01a\x02\xE7V[4\x80\x15a\x03aW`\0\x80\xFD[P`\x07T[`@Q\x90\x81R` \x01a\x02\xE7V[4\x80\x15a\x03\x80W`\0\x80\xFD[Pa\x03\x1Ea\t\x1BV[4\x80\x15a\x03\x95W`\0\x80\xFD[P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x03fV[4\x80\x15a\x03\xC8W`\0\x80\xFD[Pa\x03\xDCa\x03\xD76`\x04a&\x13V[a\r\xE9V[`@Qa\x02\xE7\x91\x90a&\x99V[4\x80\x15a\x03\xF5W`\0\x80\xFD[P`\tTa\x03\x1E\x90a\x01\0\x90\x04`\xFF\x16\x81V[4\x80\x15a\x04\x14W`\0\x80\xFD[P6`\x01\x19\x81\x015`\xF0\x1C\x90\x035``\x1C[`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x01a\x02\xE7V[4\x80\x15a\x04JW`\0\x80\xFD[P`\x01T`\x02T`\x03T`\x04Ta\x04\x92\x93c\xFF\xFF\xFF\xFF\x81\x16\x93`\x01`\x01`\xA0\x1B\x03d\x01\0\0\0\0\x90\x92\x04\x82\x16\x93\x91\x16\x91`\xFF\x81\x16\x90g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFFa\x01\0\x90\x91\x04\x16\x86V[`@Qa\x02\xE7\x96\x95\x94\x93\x92\x91\x90a&\xA7V[a\x04\xB6a\x04\xB26`\x04a&\x13V[PPV[\0[4\x80\x15a\x04\xC4W`\0\x80\xFD[Pa\x03fa\x04\xD36`\x04a'\x0FV[`\x05` R`\0\x90\x81R`@\x90 T\x81V[4\x80\x15a\x04\xF1W`\0\x80\xFD[P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x04&V[4\x80\x15a\x05$W`\0\x80\xFD[Pa\x05a`@Q\x80`@\x01`@R\x80`\x05\x81R` \x01\x7F0.0.0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RP\x81V[`@Qa\x02\xE7\x91\x90a'\x9EV[4\x80\x15a\x05zW`\0\x80\xFD[P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x04&V[4\x80\x15a\x05\xADW`\0\x80\xFD[Pa\x05aa\x10\xAAV[4\x80\x15a\x05\xC2W`\0\x80\xFD[Pa\x04\xB6a\x05\xD16`\x04a'\x0FV[a\x10\xB8V[4\x80\x15a\x05\xE2W`\0\x80\xFD[P6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`4\x015a\x03fV[4\x80\x15a\x06\x04W`\0\x80\xFD[P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x03fV[4\x80\x15a\x067W`\0\x80\xFD[P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x03fV[4\x80\x15a\x06jW`\0\x80\xFD[P`\x08Ta\x03fV[4\x80\x15a\x06\x7FW`\0\x80\xFD[Pa\x04\xB6a\x12^V[4\x80\x15a\x06\x94W`\0\x80\xFD[P6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`t\x015`\xE0\x1C[`@Qc\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01a\x02\xE7V[a\x04\xB6a\x15\xBCV[4\x80\x15a\x06\xD2W`\0\x80\xFD[P`\x07T`\x08Ta\x06\xE1\x91\x90\x82V[`@\x80Q\x92\x83R` \x83\x01\x91\x90\x91R\x01a\x02\xE7V[4\x80\x15a\x07\x02W`\0\x80\xFD[P6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`T\x015a\x03fV[4\x80\x15a\x07$W`\0\x80\xFD[P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x06\xA9V[4\x80\x15a\x07WW`\0\x80\xFD[P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x02\xD2V[4\x80\x15a\x07\x8AW`\0\x80\xFD[P6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\x14\x015a\x03fV[4\x80\x15a\x07\xACW`\0\x80\xFD[Pa\x03Ea \x84V[4\x80\x15a\x07\xC1W`\0\x80\xFD[Pa\x03fa\x07\xD06`\x04a'\x0FV[`\x06` R`\0\x90\x81R`@\x90 T\x81V[4\x80\x15a\x07\xEEW`\0\x80\xFD[P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x03fV[4\x80\x15a\x08!W`\0\x80\xFD[P`\0Ta\x02\xD2\x90g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[4\x80\x15a\x08BW`\0\x80\xFD[P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x02\xD2V[a\x03\xDCa \xB6V[4\x80\x15a\x08}W`\0\x80\xFD[Pa\x03fa\x08\x8C6`\x04a'\x0FV[a#\x94V[4\x80\x15a\x08\x9DW`\0\x80\xFD[P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x04&V[4\x80\x15a\x08\xD0W`\0\x80\xFD[Pa\x08\xD9a#\xF5V[`@Qa\x02\xE7\x93\x92\x91\x90a'\xB1V[4\x80\x15a\x08\xF4W`\0\x80\xFD[P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x04&V[`\0\x80`\0Tp\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16`\x02\x81\x11\x15a\tIWa\tIa%\xBEV[\x14a\t\x80W`@Q\x7F\xF1\xA9E\x81\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\x01`@Q\x80\x91\x03\x90\xFD[`\0a\t\x8Aa$7V[\x90P`\0\x81`\x02\x81\x11\x15a\t\xA0Wa\t\xA0a%\xBEV[\x03a\t\xD7W`@Q\x7F\x92\xC5\x06\xAE\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01\x81`\x02\x81\x11\x15a\t\xEBWa\t\xEBa%\xBEV[\x03a\n]W`\0\x80T`\x01\x91\x90\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16p\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x83[\x02\x17\x90UP`\x01Td\x01\0\0\0\0\x90\x04`\x01`\x01`\xA0\x1B\x03\x16`\0\x90\x81R`\x05` R`@\x90 G\x90Ua\r,V[a\nea \x84V[a\n\x9BW`@Q\x7F\x04d<9\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\x01`@Q\x80\x91\x03\x90\xFD[`\0`\x04\x80T`\xFF\x16\x90\x81\x11\x15a\n\xB4Wa\n\xB4a%\xBEV[\x03a\x0B1W`\0\x80T`\x02\x91\x90\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16p\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x83[\x02\x17\x90UPG`\x05`\x006`\x01\x19\x81\x015`\xF0\x1C\x90\x035``\x1C[`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x81\x01\x91\x90\x91R`@\x01`\0 Ua\r,V[`\x01`\x04\x80T`\xFF\x16\x90\x81\x11\x15a\x0BJWa\x0BJa%\xBEV[\x03a\x0B\x91W`\0\x80T`\x01\x91\x90\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16p\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x83a\n.V[`\x02`\x04\x80T`\xFF\x16\x90\x81\x11\x15a\x0B\xAAWa\x0B\xAAa%\xBEV[\x03a\x0B\xF1W`\0\x80T`\x02\x91\x90\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16p\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x83a\n\xF7V[`\x03`\x04\x80T`\xFF\x16\x90\x81\x11\x15a\x0C\nWa\x0C\na%\xBEV[\x03a\x0C\xFAW`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16p\x02\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x17\x90Ua\x0Ca`\x01\x196\x90\x81\x015`\xF0\x1C\x90\x035``\x1C\x90V[`\x02T`\x01`\x01`\xA0\x1B\x03\x91\x82\x16\x91\x16\x03a\x0C\x98W`\x02T`\x01`\x01`\xA0\x1B\x03\x16`\0\x90\x81R`\x05` R`@\x90 G\x90Ua\r,V[`\x02T`\x01`\x01`\xA0\x1B\x03\x16`\0\x90\x81R`\x05` R`@\x90 \x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x81\x90Ua\x0C\xE1\x90Ga(\x0EV[`\x05`\x006`\x01\x19\x81\x015`\xF0\x1C\x90\x035``\x1Ca\x0B\x12V[`@Q\x7Ft\x92\xA2i\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\x01`@Q\x80\x91\x03\x90\xFD[`\x04\x80T`\xFF\x19\x16\x81\x17\x90U`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16h\x01\0\0\0\0\0\0\0\0Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x02\x17\x90\x81\x90Up\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16`\x02\x81\x11\x15a\r\xA1Wa\r\xA1a%\xBEV[`@Q\x7F^\x18o\t\xB9\xC94\x91\xF1N'~\xEA\x7F\xAA]\xE6\xA2\xD4\xBD\xA7Zy\xAFz6\x84\xFB\xFBB\xDA`\x90`\0\x90\xA2PP`\0Tp\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16\x90V[`\0a\r\xF3a \x84V[\x15a\x0E*W`@Q\x7F\xDFF\x9C\xCB\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\x01`@Q\x80\x91\x03\x90\xFD[`\0`@Q\x80`\xE0\x01`@R\x80a\x0EN`4`\x01\x196\x90\x81\x015`\xF0\x1C\x90\x03\x015\x90V[\x81R`\x07T` \x82\x01R`@\x01a\x0Et6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\x14\x015\x90V[\x90V[\x81R` \x016`\x01\x19\x81\x015`\xF0\x1C\x90\x03`T\x015\x81R` \x01\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81R` \x01\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81R` \x013`\x01`\x01`\xA0\x1B\x03\x16\x81RP\x90P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16cAI<`\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x83`@Q` \x01a\x0F\x9C\x91\x90`\0`\xE0\x82\x01\x90P\x82Q\x82R` \x83\x01Q` \x83\x01R`@\x83\x01Q`@\x83\x01R``\x83\x01Q``\x83\x01R`\x80\x83\x01Q`\x80\x83\x01R`\xA0\x83\x01Q`\xA0\x83\x01R`\x01`\x01`\xA0\x1B\x03`\xC0\x84\x01Q\x16`\xC0\x83\x01R\x92\x91PPV[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x87\x87`@Q\x85c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01a\x0F\xCC\x94\x93\x92\x91\x90a(%V[`\0`@Q\x80\x83\x03\x81\x86\x80;\x15\x80\x15a\x0F\xE4W`\0\x80\xFD[PZ\xFA\x15\x80\x15a\x0F\xF8W=`\0\x80>=`\0\xFD[PP`\x02\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x163\x17\x90UPP`\x01Td\x01\0\0\0\0\x90\x04`\x01`\x01`\xA0\x1B\x03\x16a\x10PW`\x04\x80T`\xFF\x19\x16`\x02\x17\x90Ua\x10^V[`\x04\x80T`\xFF\x19\x16`\x03\x17\x90U[`\x02T`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x90\x7F^ee\xD9\xCA/\\\x85\x01\xD6A\x8B\xF5c2*rC\xBAz\xCE&mu\xEA\xC9\x9FJ\xDB\xB3\x0B\xA7\x90`\0\x90\xA2PP`\x04T`\xFF\x16[\x92\x91PPV[\x90P\x90V[``a\x10\xA5`T`$a%\x8AV[a\x10\xC0a\x12^V[`\0`\x02`\tTa\x01\0\x90\x04`\xFF\x16`\x02\x81\x11\x15a\x10\xE0Wa\x10\xE0a%\xBEV[\x03a\x11\x04WP`\x01`\x01`\xA0\x1B\x03\x81\x16`\0\x90\x81R`\x06` R`@\x90 Ta\x11xV[`\x01`\tTa\x01\0\x90\x04`\xFF\x16`\x02\x81\x11\x15a\x11\"Wa\x11\"a%\xBEV[\x03a\x11FWP`\x01`\x01`\xA0\x1B\x03\x81\x16`\0\x90\x81R`\x05` R`@\x90 Ta\x11xV[`@Q\x7F\x07\x8A=\xF4\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\x01`@Q\x80\x91\x03\x90\xFD[\x80`\0\x03a\x11\xB2W`@Q\x7F\x17\xBF\xE5\xF7\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xA0\x1B\x03\x82\x16`\0\x81\x81R`\x06` \x90\x81R`@\x80\x83 \x83\x90U`\x05\x90\x91R\x80\x82 \x82\x90UQ\x90\x91\x90\x83\x90\x83\x81\x81\x81\x85\x87Z\xF1\x92PPP=\x80`\0\x81\x14a\x12\x19W`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=`\0` \x84\x01>a\x12\x1EV[``\x91P[PP\x90P\x80a\x12YW`@Q\x7F\x83\xE6\xCCk\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\x01`@Q\x80\x91\x03\x90\xFD[PPPV[`\x02`\tTa\x01\0\x90\x04`\xFF\x16`\x02\x81\x11\x15a\x12|Wa\x12|a%\xBEV[\x14\x80a\x12\xA3WP`\x01`\tTa\x01\0\x90\x04`\xFF\x16`\x02\x81\x11\x15a\x12\xA1Wa\x12\xA1a%\xBEV[\x14[\x15a\x12\xAAWV[`\0`\tTa\x01\0\x90\x04`\xFF\x16`\x02\x81\x11\x15a\x12\xC8Wa\x12\xC8a%\xBEV[\x14a\x12\xFFW`@Q\x7F\x07\x8A=\xF4\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\x01`@Q\x80\x91\x03\x90\xFD[`@Q\x7F\x03\x14\xD2\xB3\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\x81R0`\x04\x82\x01R`\0\x90\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16\x90c\x03\x14\xD2\xB3\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x13\x7FW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x13\xA3\x91\x90a(\x90V[\x90P\x80a\x13\xDCW`@Q\x7FHQ\xBD\x9B\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\x01`@Q\x80\x91\x03\x90\xFD[`@Q\x7F\x17\xCF!\xA9\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\x81R0`\x04\x82\x01R\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16\x90c\x17\xCF!\xA9\x90`$\x01`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a\x14VW`\0\x80\xFD[PZ\xF1\x92PPP\x80\x15a\x14gWP`\x01[P`@Q\x7FIk\x9C\x16\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\x81R0`\x04\x82\x01R`\0\x90\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16\x90cIk\x9C\x16\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x14\xE8W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x15\x0C\x91\x90a(\x90V[\x90P\x80\x15a\x15EW`\t\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\x16a\x01\0\x17\x90Ua\x15rV[`\t\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\x16a\x02\0\x17\x90U[\x7F\x99\x08\xEA\xAC\x06E\xDF\x9D\x07\x04\xD0j\xDC\x9E\x073|\x95\x1D\xE2\xF0k_(6\x15\x1DH\xD5\xE4r/`\t`\x01\x90T\x90a\x01\0\n\x90\x04`\xFF\x16`@Qa\x15\xB0\x91\x90a&\0V[`@Q\x80\x91\x03\x90\xA1PPV[`\0Tq\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16\x15a\x16\x0EW`@Q\x7F\r\xC1I\xF0\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\x01`@Q\x80\x91\x03\x90\xFD[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x163\x14a\x16pW`@Q\x7F\x94\r8\xC7\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xA0\x1B\x03\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16c\x1D2%\xE36`\x01\x19\x81\x015`\xF0\x1C\x90\x035``\x1C`@Q\x7F\xFF\xFF\xFF\xFF\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`\xE0\x84\x90\x1B\x16\x81R`\x01`\x01`\xA0\x1B\x03\x90\x91\x16`\x04\x82\x01R`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x17\x0BW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x17/\x91\x90a(\x90V[a\x17eW`@Q\x7F\xD3\x86\xEF>\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\x01`@Q\x80\x91\x03\x90\xFD[`~6\x14a\x17{Wc\x98$\xBD\xAB`\0R`\x04`\x1C\xFD[c\xFF\xFF\xFF\xFF6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`t\x015`\xE0\x1C\x14a\x1C%W`\0`\x01`\x01`\xA0\x1B\x03\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16c\xBB\x8A\xA1\xFC6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`t\x015`\xE0\x1C`@Q\x7F\xFF\xFF\xFF\xFF\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`\xE0\x84\x90\x1B\x16\x81Rc\xFF\xFF\xFF\xFF\x91\x90\x91\x16`\x04\x82\x01R`$\x01```@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x186W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x18Z\x91\x90a(\xC6V[`@Q\x7F\x04\xE5\x0F\xED\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`\x01`\x01`\xA0\x1B\x03\x80\x83\x16`\x04\x83\x01R\x91\x94P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x91\x16\x92Pc\x04\xE5\x0F\xED\x91P`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x18\xE0W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x19\x04\x91\x90a(\x90V[\x15\x80a\x19\xAEWP`@Q\x7F4\xA3F\xEA\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`\x01`\x01`\xA0\x1B\x03\x82\x81\x16`\x04\x83\x01R\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x90c4\xA3F\xEA\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x19\x8AW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x19\xAE\x91\x90a(\x90V[\x80a\x1AWWP`@Q\x7FYX\xA1\x93\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`\x01`\x01`\xA0\x1B\x03\x82\x81\x16`\x04\x83\x01R\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x90cYX\xA1\x93\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x1A3W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x1AW\x91\x90a(\x90V[\x15a\x1A\x8EW`@Q\x7F4a\x19\xF7\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\x01`@Q\x80\x91\x03\x90\xFD[`@Q\x80`@\x01`@R\x80a\x1A\xFE\x83`\x01`\x01`\xA0\x1B\x03\x16c\xBC\xEF;U`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x1A\xDAW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x0Eq\x91\x90a)\x1DV[\x81R` \x01\x82`\x01`\x01`\xA0\x1B\x03\x16c\x99s^2`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x1BAW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x1Be\x91\x90a)\x1DV[\x90R\x80Q`\x07U` \x01Q`\x08U`\x01\x81`\x01`\x01`\xA0\x1B\x03\x16c \r.\xD2`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x1B\xB3W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x1B\xD7\x91\x90a)6V[`\x02\x81\x11\x15a\x1B\xE8Wa\x1B\xE8a%\xBEV[\x03a\x1C\x1FW`@Q\x7F4a\x19\xF7\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\x01`@Q\x80\x91\x03\x90\xFD[Pa\x1C\xF2V[`@Q\x7FrX\xA8\x07\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\x81Rc\xFF\xFF\xFF\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16`\x04\x82\x01R\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16\x90crX\xA8\x07\x90`$\x01`@\x80Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x1C\xC7W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x1C\xEB\x91\x90a)WV[`\x08U`\x07U[`\x08T6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`T\x015\x11a\x1DQW`@Q\x7F\xF4\x029\xDB\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\x81R6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\x14\x015`\x04\x82\x01R`$\x01`@Q\x80\x91\x03\x90\xFD[`@Q\x80`\xC0\x01`@R\x80a\x1Dv`t`\x01\x196\x90\x81\x015`\xF0\x1C\x90\x03\x015`\xE0\x1C\x90V[c\xFF\xFF\xFF\xFF\x16\x81R`\0` \x82\x01\x81\x90R`@\x82\x01R``\x016`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\x14\x015\x81R`\0` \x82\x01R`@\x01a\x1D\xDF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16Ba){V[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90R\x80Q`\x01\x80T` \x84\x01Qc\xFF\xFF\xFF\xFF\x90\x93\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x91\x16\x17d\x01\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x93\x84\x16\x02\x17\x81U`@\x83\x01Q`\x02\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x91\x90\x93\x16\x17\x90\x91U``\x82\x01Q`\x03U`\x80\x82\x01Q`\x04\x80T`\xFF\x19\x16\x83\x83\x83\x81\x11\x15a\x1E\x92Wa\x1E\x92a%\xBEV[\x02\x17\x90UP`\xA0\x91\x90\x91\x01Q`\x03\x90\x91\x01\x80Tg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x92\x16a\x01\0\x02\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\xFF\x90\x92\x16\x91\x90\x91\x17\x90U`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16q\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x17\x81U4\x90`\x06\x90a\x1F7`\x01\x196\x90\x81\x015`\xF0\x1C\x90\x035``\x1C\x90V[`\x01`\x01`\xA0\x1B\x03\x16`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x01\x90\x81R` \x01`\0 `\0\x82\x82Ta\x1Ff\x91\x90a){V[\x90\x91UPP`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\x16Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x17\x90U`@\x80Q\x7F<\x9F9|\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\x90Q\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0c\xFF\xFF\xFF\xFF\x16\x91\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16\x91c<\x9F9|\x91`\x04\x80\x82\x01\x92` \x92\x90\x91\x90\x82\x90\x03\x01\x81\x86Z\xFA\x15\x80\x15a FW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a j\x91\x90a)\x93V[`\t\x80T`\xFF\x19\x16c\xFF\xFF\xFF\xFF\x92\x90\x92\x16\x92\x90\x92\x14\x17\x90UV[`\x04T`\0\x90g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFFB\x81\x16a\x01\0\x90\x92\x04\x16\x10\x80a\x10\xA5WPP`\x02T`\x01`\x01`\xA0\x1B\x03\x16\x15\x15\x90V[`\0\x80`\x04\x80T`\xFF\x16\x90\x81\x11\x15a \xD0Wa \xD0a%\xBEV[\x14a!\x07W`@Q\x7F\x85\xC3E\xB0\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\x01`@Q\x80\x91\x03\x90\xFD[`@Q\x7F\xFFY\xAE}\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\x81R3`\x04\x82\x01R\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16\x90c\xFFY\xAE}\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a!\x84W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a!\xA8\x91\x90a(\x90V[a!\xDEW`@Q\x7F\xD3\x86\xEF>\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\x01`@Q\x80\x91\x03\x90\xFD[a!\xE6a \x84V[\x15a\"\x1DW`@Q\x7F\xDFF\x9C\xCB\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\x01`@Q\x80\x91\x03\x90\xFD[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x004\x14a\"vW`@Q\x7F\x86 \xAA\x19\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xFF\xFF\xFF\xFF\x163d\x01\0\0\0\0\x02\x17\x81U`\x04\x80T`\xFF\x19\x16\x90\x91\x17\x90Ua\"\xE8g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16Ba){V[`\x04\x80Tg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x92\x90\x92\x16a\x01\0\x02\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\xFF\x90\x92\x16\x91\x90\x91\x17\x90U3`\0\x90\x81R`\x06` R`@\x81 \x80T4\x92\x90a#F\x90\x84\x90a){V[\x90\x91UPP`\x01T`@Qd\x01\0\0\0\0\x90\x91\x04`\x01`\x01`\xA0\x1B\x03\x16\x90\x7F\x98\x02{8\x15?\x99\\K\x80*\\~ce\xBE\xE3\xAD\xDB%\xAFk)\x81\x8C\x0C0F\x84\xD8\x05,\x90`\0\x90\xA2P`\x04T`\xFF\x16\x90V[`\0`\x02`\tTa\x01\0\x90\x04`\xFF\x16`\x02\x81\x11\x15a#\xB4Wa#\xB4a%\xBEV[\x03a#\xD5WP`\x01`\x01`\xA0\x1B\x03\x16`\0\x90\x81R`\x06` R`@\x90 T\x90V[P`\x01`\x01`\xA0\x1B\x03\x81\x16`\0\x90\x81R`\x05` R`@\x90 T[\x91\x90PV[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x006`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\x14\x015``a$0a\x10\xAAV[\x90P\x90\x91\x92V[`\0c\xFF\xFF\xFF\xFF6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`t\x015`\xE0\x1C\x14a%\x84W`\0`\x01`\x01`\xA0\x1B\x03\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16c\xBB\x8A\xA1\xFC6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`t\x015`\xE0\x1C`@Q\x7F\xFF\xFF\xFF\xFF\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`\xE0\x84\x90\x1B\x16\x81Rc\xFF\xFF\xFF\xFF\x91\x90\x91\x16`\x04\x82\x01R`$\x01```@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a$\xF4W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a%\x18\x91\x90a(\xC6V[\x92PPP\x80`\x01`\x01`\xA0\x1B\x03\x16c \r.\xD2`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a%ZW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a%~\x91\x90a)6V[\x91PP\x90V[P`\x02\x90V[`@Q\x81\x81R6`\x01\x19\x81\x015`\xF0\x1C\x90\x03\x82\x84\x82\x01` \x84\x017\x82` \x83\x01\x01`\0\x81R` \x81\x01`@RPP\x92\x91PPV[\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`!`\x04R`$`\0\xFD[`\x03\x81\x10a%\xFDWa%\xFDa%\xBEV[PV[` \x81\x01a&\r\x83a%\xEDV[\x91\x90R\x90V[`\0\x80` \x83\x85\x03\x12\x15a&&W`\0\x80\xFD[\x825g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a&>W`\0\x80\xFD[\x81\x85\x01\x91P\x85`\x1F\x83\x01\x12a&RW`\0\x80\xFD[\x815\x81\x81\x11\x15a&aW`\0\x80\xFD[\x86` \x82\x85\x01\x01\x11\x15a&sW`\0\x80\xFD[` \x92\x90\x92\x01\x96\x91\x95P\x90\x93PPPPV[`\x05\x81\x10a&\x95Wa&\x95a%\xBEV[\x90RV[` \x81\x01a\x10\x9F\x82\x84a&\x85V[c\xFF\xFF\xFF\xFF\x87\x16\x81R`\x01`\x01`\xA0\x1B\x03\x86\x81\x16` \x83\x01R\x85\x16`@\x82\x01R``\x81\x01\x84\x90R`\xC0\x81\x01a&\xDF`\x80\x83\x01\x85a&\x85V[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x16`\xA0\x83\x01R\x97\x96PPPPPPPV[`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a%\xFDW`\0\x80\xFD[`\0` \x82\x84\x03\x12\x15a'!W`\0\x80\xFD[\x815a',\x81a&\xFAV[\x93\x92PPPV[`\0\x81Q\x80\x84R`\0[\x81\x81\x10\x15a'YW` \x81\x85\x01\x81\x01Q\x86\x83\x01\x82\x01R\x01a'=V[\x81\x81\x11\x15a'kW`\0` \x83\x87\x01\x01R[P`\x1F\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x92\x90\x92\x01` \x01\x92\x91PPV[` \x81R`\0a',` \x83\x01\x84a'3V[c\xFF\xFF\xFF\xFF\x84\x16\x81R\x82` \x82\x01R```@\x82\x01R`\0a'\xD6``\x83\x01\x84a'3V[\x95\x94PPPPPV[\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`\x11`\x04R`$`\0\xFD[`\0\x82\x82\x10\x15a( Wa( a'\xDFV[P\x03\x90V[\x84\x81R``` \x82\x01R`\0a(>``\x83\x01\x86a'3V[\x82\x81\x03`@\x84\x01R\x83\x81R\x83\x85` \x83\x017`\0` \x85\x83\x01\x01R` \x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0`\x1F\x86\x01\x16\x82\x01\x01\x91PP\x95\x94PPPPPV[`\0` \x82\x84\x03\x12\x15a(\xA2W`\0\x80\xFD[\x81Q\x80\x15\x15\x81\x14a',W`\0\x80\xFD[\x80Qc\xFF\xFF\xFF\xFF\x81\x16\x81\x14a#\xF0W`\0\x80\xFD[`\0\x80`\0``\x84\x86\x03\x12\x15a(\xDBW`\0\x80\xFD[a(\xE4\x84a(\xB2V[\x92P` \x84\x01Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a)\x01W`\0\x80\xFD[`@\x85\x01Q\x90\x92Pa)\x12\x81a&\xFAV[\x80\x91PP\x92P\x92P\x92V[`\0` \x82\x84\x03\x12\x15a)/W`\0\x80\xFD[PQ\x91\x90PV[`\0` \x82\x84\x03\x12\x15a)HW`\0\x80\xFD[\x81Q`\x03\x81\x10a',W`\0\x80\xFD[`\0\x80`@\x83\x85\x03\x12\x15a)jW`\0\x80\xFD[PP\x80Q` \x90\x91\x01Q\x90\x92\x90\x91PV[`\0\x82\x19\x82\x11\x15a)\x8EWa)\x8Ea'\xDFV[P\x01\x90V[`\0` \x82\x84\x03\x12\x15a)\xA5W`\0\x80\xFD[a',\x82a(\xB2V\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct BondDistributionMode(u8); + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for u8 { + #[inline] + fn stv_to_tokens( + &self, + ) -> as alloy_sol_types::SolType>::Token<'_> { + alloy_sol_types::private::SolTypeValue::< + alloy::sol_types::sol_data::Uint<8>, + >::stv_to_tokens(self) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + as alloy_sol_types::SolType>::tokenize(self) + .0 + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::SolType>::abi_encode_packed_to(self, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + as alloy_sol_types::SolType>::abi_encoded_size(self) + } + } + impl BondDistributionMode { + /// The Solidity type name. + pub const NAME: &'static str = stringify!(@ name); + /// Convert from the underlying value type. + #[inline] + pub const fn from_underlying(value: u8) -> Self { + Self(value) + } + /// Return the underlying value. + #[inline] + pub const fn into_underlying(self) -> u8 { + self.0 + } + /// Return the single encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode(&self) -> alloy_sol_types::private::Vec { + ::abi_encode(&self.0) + } + /// Return the packed encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec { + ::abi_encode_packed(&self.0) + } + } + #[automatically_derived] + impl From for BondDistributionMode { + fn from(value: u8) -> Self { + Self::from_underlying(value) + } + } + #[automatically_derived] + impl From for u8 { + fn from(value: BondDistributionMode) -> Self { + value.into_underlying() + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for BondDistributionMode { + type RustType = u8; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = Self::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + Self::type_check(token).is_ok() + } + #[inline] + fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> { + as alloy_sol_types::SolType>::type_check(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + as alloy_sol_types::SolType>::detokenize(token) + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for BondDistributionMode { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + as alloy_sol_types::EventTopic>::topic_preimage_length(rust) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out) + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + as alloy_sol_types::EventTopic>::encode_topic(rust) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct GameStatus(u8); + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for u8 { + #[inline] + fn stv_to_tokens( + &self, + ) -> as alloy_sol_types::SolType>::Token<'_> { + alloy_sol_types::private::SolTypeValue::< + alloy::sol_types::sol_data::Uint<8>, + >::stv_to_tokens(self) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + as alloy_sol_types::SolType>::tokenize(self) + .0 + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::SolType>::abi_encode_packed_to(self, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + as alloy_sol_types::SolType>::abi_encoded_size(self) + } + } + impl GameStatus { + /// The Solidity type name. + pub const NAME: &'static str = stringify!(@ name); + /// Convert from the underlying value type. + #[inline] + pub const fn from_underlying(value: u8) -> Self { + Self(value) + } + /// Return the underlying value. + #[inline] + pub const fn into_underlying(self) -> u8 { + self.0 + } + /// Return the single encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode(&self) -> alloy_sol_types::private::Vec { + ::abi_encode(&self.0) + } + /// Return the packed encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec { + ::abi_encode_packed(&self.0) + } + } + #[automatically_derived] + impl From for GameStatus { + fn from(value: u8) -> Self { + Self::from_underlying(value) + } + } + #[automatically_derived] + impl From for u8 { + fn from(value: GameStatus) -> Self { + value.into_underlying() + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for GameStatus { + type RustType = u8; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = Self::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + Self::type_check(token).is_ok() + } + #[inline] + fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> { + as alloy_sol_types::SolType>::type_check(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + as alloy_sol_types::SolType>::detokenize(token) + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for GameStatus { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + as alloy_sol_types::EventTopic>::topic_preimage_length(rust) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out) + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + as alloy_sol_types::EventTopic>::encode_topic(rust) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ProposalStatus(u8); + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for u8 { + #[inline] + fn stv_to_tokens( + &self, + ) -> as alloy_sol_types::SolType>::Token<'_> { + alloy_sol_types::private::SolTypeValue::< + alloy::sol_types::sol_data::Uint<8>, + >::stv_to_tokens(self) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + as alloy_sol_types::SolType>::tokenize(self) + .0 + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::SolType>::abi_encode_packed_to(self, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + as alloy_sol_types::SolType>::abi_encoded_size(self) + } + } + impl ProposalStatus { + /// The Solidity type name. + pub const NAME: &'static str = stringify!(@ name); + /// Convert from the underlying value type. + #[inline] + pub const fn from_underlying(value: u8) -> Self { + Self(value) + } + /// Return the underlying value. + #[inline] + pub const fn into_underlying(self) -> u8 { + self.0 + } + /// Return the single encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode(&self) -> alloy_sol_types::private::Vec { + ::abi_encode(&self.0) + } + /// Return the packed encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec { + ::abi_encode_packed(&self.0) + } + } + #[automatically_derived] + impl From for ProposalStatus { + fn from(value: u8) -> Self { + Self::from_underlying(value) + } + } + #[automatically_derived] + impl From for u8 { + fn from(value: ProposalStatus) -> Self { + value.into_underlying() + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for ProposalStatus { + type RustType = u8; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = Self::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + Self::type_check(token).is_ok() + } + #[inline] + fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> { + as alloy_sol_types::SolType>::type_check(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + as alloy_sol_types::SolType>::detokenize(token) + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for ProposalStatus { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + as alloy_sol_types::EventTopic>::topic_preimage_length(rust) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out) + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + as alloy_sol_types::EventTopic>::encode_topic(rust) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct Claim(alloy::sol_types::private::FixedBytes<32>); + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue + for alloy::sol_types::private::FixedBytes<32> { + #[inline] + fn stv_to_tokens( + &self, + ) -> as alloy_sol_types::SolType>::Token<'_> { + alloy_sol_types::private::SolTypeValue::< + alloy::sol_types::sol_data::FixedBytes<32>, + >::stv_to_tokens(self) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + as alloy_sol_types::SolType>::tokenize(self) + .0 + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::SolType>::abi_encode_packed_to(self, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + as alloy_sol_types::SolType>::abi_encoded_size(self) + } + } + impl Claim { + /// The Solidity type name. + pub const NAME: &'static str = stringify!(@ name); + /// Convert from the underlying value type. + #[inline] + pub const fn from_underlying( + value: alloy::sol_types::private::FixedBytes<32>, + ) -> Self { + Self(value) + } + /// Return the underlying value. + #[inline] + pub const fn into_underlying( + self, + ) -> alloy::sol_types::private::FixedBytes<32> { + self.0 + } + /// Return the single encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode(&self) -> alloy_sol_types::private::Vec { + ::abi_encode(&self.0) + } + /// Return the packed encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec { + ::abi_encode_packed(&self.0) + } + } + #[automatically_derived] + impl From> for Claim { + fn from(value: alloy::sol_types::private::FixedBytes<32>) -> Self { + Self::from_underlying(value) + } + } + #[automatically_derived] + impl From for alloy::sol_types::private::FixedBytes<32> { + fn from(value: Claim) -> Self { + value.into_underlying() + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for Claim { + type RustType = alloy::sol_types::private::FixedBytes<32>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = Self::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + Self::type_check(token).is_ok() + } + #[inline] + fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> { + as alloy_sol_types::SolType>::type_check(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + as alloy_sol_types::SolType>::detokenize(token) + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for Claim { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + as alloy_sol_types::EventTopic>::topic_preimage_length(rust) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out) + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + as alloy_sol_types::EventTopic>::encode_topic(rust) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct Duration(u64); + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for u64 { + #[inline] + fn stv_to_tokens( + &self, + ) -> as alloy_sol_types::SolType>::Token<'_> { + alloy_sol_types::private::SolTypeValue::< + alloy::sol_types::sol_data::Uint<64>, + >::stv_to_tokens(self) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + as alloy_sol_types::SolType>::tokenize(self) + .0 + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::SolType>::abi_encode_packed_to(self, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + as alloy_sol_types::SolType>::abi_encoded_size(self) + } + } + impl Duration { + /// The Solidity type name. + pub const NAME: &'static str = stringify!(@ name); + /// Convert from the underlying value type. + #[inline] + pub const fn from_underlying(value: u64) -> Self { + Self(value) + } + /// Return the underlying value. + #[inline] + pub const fn into_underlying(self) -> u64 { + self.0 + } + /// Return the single encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode(&self) -> alloy_sol_types::private::Vec { + ::abi_encode(&self.0) + } + /// Return the packed encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec { + ::abi_encode_packed(&self.0) + } + } + #[automatically_derived] + impl From for Duration { + fn from(value: u64) -> Self { + Self::from_underlying(value) + } + } + #[automatically_derived] + impl From for u64 { + fn from(value: Duration) -> Self { + value.into_underlying() + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for Duration { + type RustType = u64; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = Self::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + Self::type_check(token).is_ok() + } + #[inline] + fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> { + as alloy_sol_types::SolType>::type_check(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + as alloy_sol_types::SolType>::detokenize(token) + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for Duration { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + as alloy_sol_types::EventTopic>::topic_preimage_length(rust) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out) + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + as alloy_sol_types::EventTopic>::encode_topic(rust) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct GameType(u32); + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for u32 { + #[inline] + fn stv_to_tokens( + &self, + ) -> as alloy_sol_types::SolType>::Token<'_> { + alloy_sol_types::private::SolTypeValue::< + alloy::sol_types::sol_data::Uint<32>, + >::stv_to_tokens(self) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + as alloy_sol_types::SolType>::tokenize(self) + .0 + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::SolType>::abi_encode_packed_to(self, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + as alloy_sol_types::SolType>::abi_encoded_size(self) + } + } + impl GameType { + /// The Solidity type name. + pub const NAME: &'static str = stringify!(@ name); + /// Convert from the underlying value type. + #[inline] + pub const fn from_underlying(value: u32) -> Self { + Self(value) + } + /// Return the underlying value. + #[inline] + pub const fn into_underlying(self) -> u32 { + self.0 + } + /// Return the single encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode(&self) -> alloy_sol_types::private::Vec { + ::abi_encode(&self.0) + } + /// Return the packed encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec { + ::abi_encode_packed(&self.0) + } + } + #[automatically_derived] + impl From for GameType { + fn from(value: u32) -> Self { + Self::from_underlying(value) + } + } + #[automatically_derived] + impl From for u32 { + fn from(value: GameType) -> Self { + value.into_underlying() + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for GameType { + type RustType = u32; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = Self::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + Self::type_check(token).is_ok() + } + #[inline] + fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> { + as alloy_sol_types::SolType>::type_check(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + as alloy_sol_types::SolType>::detokenize(token) + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for GameType { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + as alloy_sol_types::EventTopic>::topic_preimage_length(rust) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out) + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + as alloy_sol_types::EventTopic>::encode_topic(rust) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct Hash(alloy::sol_types::private::FixedBytes<32>); + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue + for alloy::sol_types::private::FixedBytes<32> { + #[inline] + fn stv_to_tokens( + &self, + ) -> as alloy_sol_types::SolType>::Token<'_> { + alloy_sol_types::private::SolTypeValue::< + alloy::sol_types::sol_data::FixedBytes<32>, + >::stv_to_tokens(self) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + as alloy_sol_types::SolType>::tokenize(self) + .0 + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::SolType>::abi_encode_packed_to(self, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + as alloy_sol_types::SolType>::abi_encoded_size(self) + } + } + impl Hash { + /// The Solidity type name. + pub const NAME: &'static str = stringify!(@ name); + /// Convert from the underlying value type. + #[inline] + pub const fn from_underlying( + value: alloy::sol_types::private::FixedBytes<32>, + ) -> Self { + Self(value) + } + /// Return the underlying value. + #[inline] + pub const fn into_underlying( + self, + ) -> alloy::sol_types::private::FixedBytes<32> { + self.0 + } + /// Return the single encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode(&self) -> alloy_sol_types::private::Vec { + ::abi_encode(&self.0) + } + /// Return the packed encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec { + ::abi_encode_packed(&self.0) + } + } + #[automatically_derived] + impl From> for Hash { + fn from(value: alloy::sol_types::private::FixedBytes<32>) -> Self { + Self::from_underlying(value) + } + } + #[automatically_derived] + impl From for alloy::sol_types::private::FixedBytes<32> { + fn from(value: Hash) -> Self { + value.into_underlying() + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for Hash { + type RustType = alloy::sol_types::private::FixedBytes<32>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = Self::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + Self::type_check(token).is_ok() + } + #[inline] + fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> { + as alloy_sol_types::SolType>::type_check(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + as alloy_sol_types::SolType>::detokenize(token) + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for Hash { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + as alloy_sol_types::EventTopic>::topic_preimage_length(rust) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out) + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + as alloy_sol_types::EventTopic>::encode_topic(rust) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct Timestamp(u64); + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for u64 { + #[inline] + fn stv_to_tokens( + &self, + ) -> as alloy_sol_types::SolType>::Token<'_> { + alloy_sol_types::private::SolTypeValue::< + alloy::sol_types::sol_data::Uint<64>, + >::stv_to_tokens(self) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + as alloy_sol_types::SolType>::tokenize(self) + .0 + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::SolType>::abi_encode_packed_to(self, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + as alloy_sol_types::SolType>::abi_encoded_size(self) + } + } + impl Timestamp { + /// The Solidity type name. + pub const NAME: &'static str = stringify!(@ name); + /// Convert from the underlying value type. + #[inline] + pub const fn from_underlying(value: u64) -> Self { + Self(value) + } + /// Return the underlying value. + #[inline] + pub const fn into_underlying(self) -> u64 { + self.0 + } + /// Return the single encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode(&self) -> alloy_sol_types::private::Vec { + ::abi_encode(&self.0) + } + /// Return the packed encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec { + ::abi_encode_packed(&self.0) + } + } + #[automatically_derived] + impl From for Timestamp { + fn from(value: u64) -> Self { + Self::from_underlying(value) + } + } + #[automatically_derived] + impl From for u64 { + fn from(value: Timestamp) -> Self { + value.into_underlying() + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for Timestamp { + type RustType = u64; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = Self::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + Self::type_check(token).is_ok() + } + #[inline] + fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> { + as alloy_sol_types::SolType>::type_check(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + as alloy_sol_types::SolType>::detokenize(token) + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for Timestamp { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + as alloy_sol_types::EventTopic>::topic_preimage_length(rust) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out) + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + as alloy_sol_types::EventTopic>::encode_topic(rust) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `AlreadyInitialized()` and selector `0x0dc149f0`. +```solidity +error AlreadyInitialized(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct AlreadyInitialized; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: AlreadyInitialized) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for AlreadyInitialized { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for AlreadyInitialized { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "AlreadyInitialized()"; + const SELECTOR: [u8; 4] = [13u8, 193u8, 73u8, 240u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `BadAuth()` and selector `0xd386ef3e`. +```solidity +error BadAuth(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct BadAuth; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: BadAuth) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for BadAuth { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for BadAuth { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "BadAuth()"; + const SELECTOR: [u8; 4] = [211u8, 134u8, 239u8, 62u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `BondTransferFailed()` and selector `0x83e6cc6b`. +```solidity +error BondTransferFailed(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct BondTransferFailed; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: BondTransferFailed) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for BondTransferFailed { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for BondTransferFailed { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "BondTransferFailed()"; + const SELECTOR: [u8; 4] = [131u8, 230u8, 204u8, 107u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ClaimAlreadyChallenged()` and selector `0x85c345b0`. +```solidity +error ClaimAlreadyChallenged(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ClaimAlreadyChallenged; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ClaimAlreadyChallenged) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ClaimAlreadyChallenged { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ClaimAlreadyChallenged { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ClaimAlreadyChallenged()"; + const SELECTOR: [u8; 4] = [133u8, 195u8, 69u8, 176u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ClaimAlreadyResolved()` and selector `0xf1a94581`. +```solidity +error ClaimAlreadyResolved(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ClaimAlreadyResolved; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ClaimAlreadyResolved) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ClaimAlreadyResolved { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ClaimAlreadyResolved { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ClaimAlreadyResolved()"; + const SELECTOR: [u8; 4] = [241u8, 169u8, 69u8, 129u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `GameNotFinalized()` and selector `0x4851bd9b`. +```solidity +error GameNotFinalized(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct GameNotFinalized; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: GameNotFinalized) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for GameNotFinalized { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for GameNotFinalized { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "GameNotFinalized()"; + const SELECTOR: [u8; 4] = [72u8, 81u8, 189u8, 155u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `GameNotOver()` and selector `0x04643c39`. +```solidity +error GameNotOver(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct GameNotOver; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: GameNotOver) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for GameNotOver { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for GameNotOver { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "GameNotOver()"; + const SELECTOR: [u8; 4] = [4u8, 100u8, 60u8, 57u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `GameOver()` and selector `0xdf469ccb`. +```solidity +error GameOver(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct GameOver; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: GameOver) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for GameOver { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for GameOver { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "GameOver()"; + const SELECTOR: [u8; 4] = [223u8, 70u8, 156u8, 203u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `IncorrectBondAmount()` and selector `0x8620aa19`. +```solidity +error IncorrectBondAmount(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct IncorrectBondAmount; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: IncorrectBondAmount) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for IncorrectBondAmount { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for IncorrectBondAmount { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "IncorrectBondAmount()"; + const SELECTOR: [u8; 4] = [134u8, 32u8, 170u8, 25u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `IncorrectDisputeGameFactory()` and selector `0x940d38c7`. +```solidity +error IncorrectDisputeGameFactory(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct IncorrectDisputeGameFactory; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: IncorrectDisputeGameFactory) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for IncorrectDisputeGameFactory { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for IncorrectDisputeGameFactory { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "IncorrectDisputeGameFactory()"; + const SELECTOR: [u8; 4] = [148u8, 13u8, 56u8, 199u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidBondDistributionMode()` and selector `0x078a3df4`. +```solidity +error InvalidBondDistributionMode(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidBondDistributionMode; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: InvalidBondDistributionMode) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for InvalidBondDistributionMode { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidBondDistributionMode { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidBondDistributionMode()"; + const SELECTOR: [u8; 4] = [7u8, 138u8, 61u8, 244u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidParentGame()` and selector `0x346119f7`. +```solidity +error InvalidParentGame(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidParentGame; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InvalidParentGame) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InvalidParentGame { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidParentGame { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidParentGame()"; + const SELECTOR: [u8; 4] = [52u8, 97u8, 25u8, 247u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidProposalStatus()` and selector `0x7492a269`. +```solidity +error InvalidProposalStatus(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidProposalStatus; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InvalidProposalStatus) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InvalidProposalStatus { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidProposalStatus { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidProposalStatus()"; + const SELECTOR: [u8; 4] = [116u8, 146u8, 162u8, 105u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `NoCreditToClaim()` and selector `0x17bfe5f7`. +```solidity +error NoCreditToClaim(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct NoCreditToClaim; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: NoCreditToClaim) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for NoCreditToClaim { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for NoCreditToClaim { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "NoCreditToClaim()"; + const SELECTOR: [u8; 4] = [23u8, 191u8, 229u8, 247u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ParentGameNotResolved()` and selector `0x92c506ae`. +```solidity +error ParentGameNotResolved(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ParentGameNotResolved; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ParentGameNotResolved) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ParentGameNotResolved { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ParentGameNotResolved { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ParentGameNotResolved()"; + const SELECTOR: [u8; 4] = [146u8, 197u8, 6u8, 174u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `UnexpectedRootClaim(bytes32)` and selector `0xf40239db`. +```solidity +error UnexpectedRootClaim(Claim rootClaim); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct UnexpectedRootClaim { + #[allow(missing_docs)] + pub rootClaim: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Claim,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (::RustType,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: UnexpectedRootClaim) -> Self { + (value.rootClaim,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for UnexpectedRootClaim { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { rootClaim: tuple.0 } + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for UnexpectedRootClaim { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "UnexpectedRootClaim(bytes32)"; + const SELECTOR: [u8; 4] = [244u8, 2u8, 57u8, 219u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + (::tokenize(&self.rootClaim),) + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `Challenged(address)` and selector `0x98027b38153f995c4b802a5c7e6365bee3addb25af6b29818c0c304684d8052c`. +```solidity +event Challenged(address indexed challenger); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct Challenged { + #[allow(missing_docs)] + pub challenger: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for Challenged { + type DataTuple<'a> = (); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "Challenged(address)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 152u8, 2u8, 123u8, 56u8, 21u8, 63u8, 153u8, 92u8, 75u8, 128u8, 42u8, + 92u8, 126u8, 99u8, 101u8, 190u8, 227u8, 173u8, 219u8, 37u8, 175u8, 107u8, + 41u8, 129u8, 140u8, 12u8, 48u8, 70u8, 132u8, 216u8, 5u8, 44u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { challenger: topics.1 } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + () + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.challenger.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.challenger, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for Challenged { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&Challenged> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &Challenged) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `GameClosed(uint8)` and selector `0x9908eaac0645df9d0704d06adc9e07337c951de2f06b5f2836151d48d5e4722f`. +```solidity +event GameClosed(BondDistributionMode bondDistributionMode); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct GameClosed { + #[allow(missing_docs)] + pub bondDistributionMode: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for GameClosed { + type DataTuple<'a> = (BondDistributionMode,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,); + const SIGNATURE: &'static str = "GameClosed(uint8)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 153u8, 8u8, 234u8, 172u8, 6u8, 69u8, 223u8, 157u8, 7u8, 4u8, 208u8, + 106u8, 220u8, 158u8, 7u8, 51u8, 124u8, 149u8, 29u8, 226u8, 240u8, 107u8, + 95u8, 40u8, 54u8, 21u8, 29u8, 72u8, 213u8, 228u8, 114u8, 47u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + bondDistributionMode: data.0, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + ::tokenize( + &self.bondDistributionMode, + ), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(),) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for GameClosed { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&GameClosed> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &GameClosed) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `Proved(address)` and selector `0x5e6565d9ca2f5c8501d6418bf563322a7243ba7ace266d75eac99f4adbb30ba7`. +```solidity +event Proved(address indexed prover); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct Proved { + #[allow(missing_docs)] + pub prover: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for Proved { + type DataTuple<'a> = (); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "Proved(address)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 94u8, 101u8, 101u8, 217u8, 202u8, 47u8, 92u8, 133u8, 1u8, 214u8, 65u8, + 139u8, 245u8, 99u8, 50u8, 42u8, 114u8, 67u8, 186u8, 122u8, 206u8, 38u8, + 109u8, 117u8, 234u8, 201u8, 159u8, 74u8, 219u8, 179u8, 11u8, 167u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { prover: topics.1 } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + () + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.prover.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.prover, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for Proved { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&Proved> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &Proved) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `Resolved(uint8)` and selector `0x5e186f09b9c93491f14e277eea7faa5de6a2d4bda75a79af7a3684fbfb42da60`. +```solidity +event Resolved(GameStatus indexed status); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct Resolved { + #[allow(missing_docs)] + pub status: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for Resolved { + type DataTuple<'a> = (); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>, GameStatus); + const SIGNATURE: &'static str = "Resolved(uint8)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 94u8, 24u8, 111u8, 9u8, 185u8, 201u8, 52u8, 145u8, 241u8, 78u8, 39u8, + 126u8, 234u8, 127u8, 170u8, 93u8, 230u8, 162u8, 212u8, 189u8, 167u8, + 90u8, 121u8, 175u8, 122u8, 54u8, 132u8, 251u8, 251u8, 66u8, 218u8, 96u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { status: topics.1 } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + () + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.status.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.status, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for Resolved { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&Resolved> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &Resolved) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + /**Constructor`. +```solidity +constructor(Duration _maxChallengeDuration, Duration _maxProveDuration, address _disputeGameFactory, address _sp1Verifier, bytes32 _rollupConfigHash, bytes32 _aggregationVkey, bytes32 _rangeVkeyCommitment, uint256 _challengerBond, address _anchorStateRegistry, address _accessManager); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct constructorCall { + #[allow(missing_docs)] + pub _maxChallengeDuration: ::RustType, + #[allow(missing_docs)] + pub _maxProveDuration: ::RustType, + #[allow(missing_docs)] + pub _disputeGameFactory: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _sp1Verifier: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _rollupConfigHash: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub _aggregationVkey: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub _rangeVkeyCommitment: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub _challengerBond: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _anchorStateRegistry: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _accessManager: alloy::sol_types::private::Address, + } + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + Duration, + Duration, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ::RustType, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::FixedBytes<32>, + alloy::sol_types::private::FixedBytes<32>, + alloy::sol_types::private::FixedBytes<32>, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: constructorCall) -> Self { + ( + value._maxChallengeDuration, + value._maxProveDuration, + value._disputeGameFactory, + value._sp1Verifier, + value._rollupConfigHash, + value._aggregationVkey, + value._rangeVkeyCommitment, + value._challengerBond, + value._anchorStateRegistry, + value._accessManager, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for constructorCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _maxChallengeDuration: tuple.0, + _maxProveDuration: tuple.1, + _disputeGameFactory: tuple.2, + _sp1Verifier: tuple.3, + _rollupConfigHash: tuple.4, + _aggregationVkey: tuple.5, + _rangeVkeyCommitment: tuple.6, + _challengerBond: tuple.7, + _anchorStateRegistry: tuple.8, + _accessManager: tuple.9, + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolConstructor for constructorCall { + type Parameters<'a> = ( + Duration, + Duration, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._maxChallengeDuration, + ), + ::tokenize( + &self._maxProveDuration, + ), + ::tokenize( + &self._disputeGameFactory, + ), + ::tokenize( + &self._sp1Verifier, + ), + as alloy_sol_types::SolType>::tokenize(&self._rollupConfigHash), + as alloy_sol_types::SolType>::tokenize(&self._aggregationVkey), + as alloy_sol_types::SolType>::tokenize(&self._rangeVkeyCommitment), + as alloy_sol_types::SolType>::tokenize(&self._challengerBond), + ::tokenize( + &self._anchorStateRegistry, + ), + ::tokenize( + &self._accessManager, + ), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `accessManager()` and selector `0xfdcb6068`. +```solidity +function accessManager() external view returns (address accessManager_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct accessManagerCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`accessManager()`](accessManagerCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct accessManagerReturn { + #[allow(missing_docs)] + pub accessManager_: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: accessManagerCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for accessManagerCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: accessManagerReturn) -> Self { + (value.accessManager_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for accessManagerReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { accessManager_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for accessManagerCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "accessManager()"; + const SELECTOR: [u8; 4] = [253u8, 203u8, 96u8, 104u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: accessManagerReturn = r.into(); + r.accessManager_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: accessManagerReturn = r.into(); + r.accessManager_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `aggregationVkey()` and selector `0xc32e4e3e`. +```solidity +function aggregationVkey() external view returns (bytes32 aggregationVkey_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct aggregationVkeyCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`aggregationVkey()`](aggregationVkeyCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct aggregationVkeyReturn { + #[allow(missing_docs)] + pub aggregationVkey_: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: aggregationVkeyCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for aggregationVkeyCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: aggregationVkeyReturn) -> Self { + (value.aggregationVkey_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for aggregationVkeyReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { aggregationVkey_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for aggregationVkeyCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::FixedBytes<32>; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "aggregationVkey()"; + const SELECTOR: [u8; 4] = [195u8, 46u8, 78u8, 62u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: aggregationVkeyReturn = r.into(); + r.aggregationVkey_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: aggregationVkeyReturn = r.into(); + r.aggregationVkey_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `anchorStateRegistry()` and selector `0x5c0cba33`. +```solidity +function anchorStateRegistry() external view returns (address registry_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct anchorStateRegistryCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`anchorStateRegistry()`](anchorStateRegistryCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct anchorStateRegistryReturn { + #[allow(missing_docs)] + pub registry_: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: anchorStateRegistryCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for anchorStateRegistryCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: anchorStateRegistryReturn) -> Self { + (value.registry_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for anchorStateRegistryReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { registry_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for anchorStateRegistryCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "anchorStateRegistry()"; + const SELECTOR: [u8; 4] = [92u8, 12u8, 186u8, 51u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: anchorStateRegistryReturn = r.into(); + r.registry_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: anchorStateRegistryReturn = r.into(); + r.registry_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `bondDistributionMode()` and selector `0x378dd48c`. +```solidity +function bondDistributionMode() external view returns (BondDistributionMode); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct bondDistributionModeCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`bondDistributionMode()`](bondDistributionModeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct bondDistributionModeReturn { + #[allow(missing_docs)] + pub _0: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: bondDistributionModeCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for bondDistributionModeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (BondDistributionMode,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: bondDistributionModeReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for bondDistributionModeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for bondDistributionModeCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (BondDistributionMode,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "bondDistributionMode()"; + const SELECTOR: [u8; 4] = [55u8, 141u8, 212u8, 140u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: bondDistributionModeReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: bondDistributionModeReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `challenge()` and selector `0xd2ef7398`. +```solidity +function challenge() external payable returns (ProposalStatus); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct challengeCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`challenge()`](challengeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct challengeReturn { + #[allow(missing_docs)] + pub _0: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: challengeCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for challengeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (ProposalStatus,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: challengeReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for challengeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for challengeCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (ProposalStatus,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "challenge()"; + const SELECTOR: [u8; 4] = [210u8, 239u8, 115u8, 152u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: challengeReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: challengeReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `challengerBond()` and selector `0x68ccdc86`. +```solidity +function challengerBond() external view returns (uint256 challengerBond_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct challengerBondCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`challengerBond()`](challengerBondCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct challengerBondReturn { + #[allow(missing_docs)] + pub challengerBond_: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: challengerBondCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for challengerBondCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: challengerBondReturn) -> Self { + (value.challengerBond_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for challengerBondReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { challengerBond_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for challengerBondCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "challengerBond()"; + const SELECTOR: [u8; 4] = [104u8, 204u8, 220u8, 134u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: challengerBondReturn = r.into(); + r.challengerBond_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: challengerBondReturn = r.into(); + r.challengerBond_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `claimCredit(address)` and selector `0x60e27464`. +```solidity +function claimCredit(address _recipient) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct claimCreditCall { + #[allow(missing_docs)] + pub _recipient: alloy::sol_types::private::Address, + } + ///Container type for the return parameters of the [`claimCredit(address)`](claimCreditCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct claimCreditReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: claimCreditCall) -> Self { + (value._recipient,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for claimCreditCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _recipient: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: claimCreditReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for claimCreditReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl claimCreditReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for claimCreditCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = claimCreditReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "claimCredit(address)"; + const SELECTOR: [u8; 4] = [96u8, 226u8, 116u8, 100u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._recipient, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + claimCreditReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `claimData()` and selector `0x3ec4d4d6`. +```solidity +function claimData() external view returns (uint32 parentIndex, address counteredBy, address prover, Claim claim, ProposalStatus status, Timestamp deadline); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct claimDataCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`claimData()`](claimDataCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct claimDataReturn { + #[allow(missing_docs)] + pub parentIndex: u32, + #[allow(missing_docs)] + pub counteredBy: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub prover: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub claim: ::RustType, + #[allow(missing_docs)] + pub status: ::RustType, + #[allow(missing_docs)] + pub deadline: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: claimDataCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for claimDataCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Uint<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + Claim, + ProposalStatus, + Timestamp, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + u32, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + ::RustType, + ::RustType, + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: claimDataReturn) -> Self { + ( + value.parentIndex, + value.counteredBy, + value.prover, + value.claim, + value.status, + value.deadline, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for claimDataReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + parentIndex: tuple.0, + counteredBy: tuple.1, + prover: tuple.2, + claim: tuple.3, + status: tuple.4, + deadline: tuple.5, + } + } + } + } + impl claimDataReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.parentIndex), + ::tokenize( + &self.counteredBy, + ), + ::tokenize( + &self.prover, + ), + ::tokenize(&self.claim), + ::tokenize(&self.status), + ::tokenize(&self.deadline), + ) + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for claimDataCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = claimDataReturn; + type ReturnTuple<'a> = ( + alloy::sol_types::sol_data::Uint<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + Claim, + ProposalStatus, + Timestamp, + ); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "claimData()"; + const SELECTOR: [u8; 4] = [62u8, 196u8, 212u8, 214u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + claimDataReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `closeGame()` and selector `0x786b844b`. +```solidity +function closeGame() external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct closeGameCall; + ///Container type for the return parameters of the [`closeGame()`](closeGameCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct closeGameReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: closeGameCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for closeGameCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: closeGameReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for closeGameReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl closeGameReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for closeGameCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = closeGameReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "closeGame()"; + const SELECTOR: [u8; 4] = [120u8, 107u8, 132u8, 75u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + closeGameReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `createdAt()` and selector `0xcf09e0d0`. +```solidity +function createdAt() external view returns (Timestamp); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct createdAtCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`createdAt()`](createdAtCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct createdAtReturn { + #[allow(missing_docs)] + pub _0: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: createdAtCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for createdAtCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Timestamp,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: createdAtReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for createdAtReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for createdAtCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (Timestamp,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "createdAt()"; + const SELECTOR: [u8; 4] = [207u8, 9u8, 224u8, 208u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: createdAtReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: createdAtReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `credit(address)` and selector `0xd5d44d80`. +```solidity +function credit(address _recipient) external view returns (uint256 credit_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct creditCall { + #[allow(missing_docs)] + pub _recipient: alloy::sol_types::private::Address, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`credit(address)`](creditCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct creditReturn { + #[allow(missing_docs)] + pub credit_: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: creditCall) -> Self { + (value._recipient,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for creditCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _recipient: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: creditReturn) -> Self { + (value.credit_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for creditReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { credit_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for creditCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "credit(address)"; + const SELECTOR: [u8; 4] = [213u8, 212u8, 77u8, 128u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._recipient, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: creditReturn = r.into(); + r.credit_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: creditReturn = r.into(); + r.credit_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `disputeGameFactory()` and selector `0xf2b4e617`. +```solidity +function disputeGameFactory() external view returns (address disputeGameFactory_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct disputeGameFactoryCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`disputeGameFactory()`](disputeGameFactoryCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct disputeGameFactoryReturn { + #[allow(missing_docs)] + pub disputeGameFactory_: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: disputeGameFactoryCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for disputeGameFactoryCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: disputeGameFactoryReturn) -> Self { + (value.disputeGameFactory_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for disputeGameFactoryReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + disputeGameFactory_: tuple.0, + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for disputeGameFactoryCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "disputeGameFactory()"; + const SELECTOR: [u8; 4] = [242u8, 180u8, 230u8, 23u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: disputeGameFactoryReturn = r.into(); + r.disputeGameFactory_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: disputeGameFactoryReturn = r.into(); + r.disputeGameFactory_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `extraData()` and selector `0x609d3334`. +```solidity +function extraData() external pure returns (bytes memory extraData_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct extraDataCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`extraData()`](extraDataCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct extraDataReturn { + #[allow(missing_docs)] + pub extraData_: alloy::sol_types::private::Bytes, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: extraDataCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for extraDataCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bytes,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Bytes,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: extraDataReturn) -> Self { + (value.extraData_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for extraDataReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { extraData_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for extraDataCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Bytes; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bytes,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "extraData()"; + const SELECTOR: [u8; 4] = [96u8, 157u8, 51u8, 52u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: extraDataReturn = r.into(); + r.extraData_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: extraDataReturn = r.into(); + r.extraData_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `gameCreator()` and selector `0x37b1b229`. +```solidity +function gameCreator() external pure returns (address creator_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct gameCreatorCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`gameCreator()`](gameCreatorCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct gameCreatorReturn { + #[allow(missing_docs)] + pub creator_: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: gameCreatorCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for gameCreatorCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: gameCreatorReturn) -> Self { + (value.creator_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for gameCreatorReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { creator_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for gameCreatorCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "gameCreator()"; + const SELECTOR: [u8; 4] = [55u8, 177u8, 178u8, 41u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: gameCreatorReturn = r.into(); + r.creator_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: gameCreatorReturn = r.into(); + r.creator_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `gameData()` and selector `0xfa24f743`. +```solidity +function gameData() external view returns (GameType gameType_, Claim rootClaim_, bytes memory extraData_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct gameDataCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`gameData()`](gameDataCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct gameDataReturn { + #[allow(missing_docs)] + pub gameType_: ::RustType, + #[allow(missing_docs)] + pub rootClaim_: ::RustType, + #[allow(missing_docs)] + pub extraData_: alloy::sol_types::private::Bytes, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: gameDataCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for gameDataCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + GameType, + Claim, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ::RustType, + alloy::sol_types::private::Bytes, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: gameDataReturn) -> Self { + (value.gameType_, value.rootClaim_, value.extraData_) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for gameDataReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + gameType_: tuple.0, + rootClaim_: tuple.1, + extraData_: tuple.2, + } + } + } + } + impl gameDataReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + ( + ::tokenize(&self.gameType_), + ::tokenize(&self.rootClaim_), + ::tokenize( + &self.extraData_, + ), + ) + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for gameDataCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = gameDataReturn; + type ReturnTuple<'a> = (GameType, Claim, alloy::sol_types::sol_data::Bytes); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "gameData()"; + const SELECTOR: [u8; 4] = [250u8, 36u8, 247u8, 67u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + gameDataReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `gameOver()` and selector `0xbdb337d1`. +```solidity +function gameOver() external view returns (bool gameOver_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct gameOverCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`gameOver()`](gameOverCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct gameOverReturn { + #[allow(missing_docs)] + pub gameOver_: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: gameOverCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for gameOverCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: gameOverReturn) -> Self { + (value.gameOver_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for gameOverReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { gameOver_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for gameOverCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "gameOver()"; + const SELECTOR: [u8; 4] = [189u8, 179u8, 55u8, 209u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: gameOverReturn = r.into(); + r.gameOver_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: gameOverReturn = r.into(); + r.gameOver_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `gameType()` and selector `0xbbdc02db`. +```solidity +function gameType() external view returns (GameType gameType_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct gameTypeCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`gameType()`](gameTypeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct gameTypeReturn { + #[allow(missing_docs)] + pub gameType_: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: gameTypeCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for gameTypeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (GameType,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: gameTypeReturn) -> Self { + (value.gameType_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for gameTypeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { gameType_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for gameTypeCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (GameType,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "gameType()"; + const SELECTOR: [u8; 4] = [187u8, 220u8, 2u8, 219u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: gameTypeReturn = r.into(); + r.gameType_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: gameTypeReturn = r.into(); + r.gameType_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `initialize()` and selector `0x8129fc1c`. +```solidity +function initialize() external payable; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct initializeCall; + ///Container type for the return parameters of the [`initialize()`](initializeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct initializeReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: initializeCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for initializeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: initializeReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for initializeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl initializeReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for initializeCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = initializeReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "initialize()"; + const SELECTOR: [u8; 4] = [129u8, 41u8, 252u8, 28u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + initializeReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `initializeWithInitData(bytes)` and selector `0x4224b1e7`. +```solidity +function initializeWithInitData(bytes memory) external payable; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct initializeWithInitDataCall(pub alloy::sol_types::private::Bytes); + ///Container type for the return parameters of the [`initializeWithInitData(bytes)`](initializeWithInitDataCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct initializeWithInitDataReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bytes,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Bytes,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: initializeWithInitDataCall) -> Self { + (value.0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for initializeWithInitDataCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self(tuple.0) + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: initializeWithInitDataReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for initializeWithInitDataReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl initializeWithInitDataReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken< + '_, + > { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for initializeWithInitDataCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Bytes,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = initializeWithInitDataReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "initializeWithInitData(bytes)"; + const SELECTOR: [u8; 4] = [66u8, 36u8, 177u8, 231u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.0, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + initializeWithInitDataReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `l1Head()` and selector `0x6361506d`. +```solidity +function l1Head() external pure returns (Hash l1Head_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct l1HeadCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`l1Head()`](l1HeadCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct l1HeadReturn { + #[allow(missing_docs)] + pub l1Head_: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: l1HeadCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for l1HeadCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Hash,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: l1HeadReturn) -> Self { + (value.l1Head_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for l1HeadReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { l1Head_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for l1HeadCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (Hash,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "l1Head()"; + const SELECTOR: [u8; 4] = [99u8, 97u8, 80u8, 109u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: l1HeadReturn = r.into(); + r.l1Head_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: l1HeadReturn = r.into(); + r.l1Head_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `l2SequenceNumber()` and selector `0x99735e32`. +```solidity +function l2SequenceNumber() external pure returns (uint256 l2SequenceNumber_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct l2SequenceNumberCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`l2SequenceNumber()`](l2SequenceNumberCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct l2SequenceNumberReturn { + #[allow(missing_docs)] + pub l2SequenceNumber_: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: l2SequenceNumberCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for l2SequenceNumberCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: l2SequenceNumberReturn) -> Self { + (value.l2SequenceNumber_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for l2SequenceNumberReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { l2SequenceNumber_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for l2SequenceNumberCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "l2SequenceNumber()"; + const SELECTOR: [u8; 4] = [153u8, 115u8, 94u8, 50u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: l2SequenceNumberReturn = r.into(); + r.l2SequenceNumber_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: l2SequenceNumberReturn = r.into(); + r.l2SequenceNumber_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `maxChallengeDuration()` and selector `0xd2177bdd`. +```solidity +function maxChallengeDuration() external view returns (Duration maxChallengeDuration_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct maxChallengeDurationCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`maxChallengeDuration()`](maxChallengeDurationCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct maxChallengeDurationReturn { + #[allow(missing_docs)] + pub maxChallengeDuration_: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: maxChallengeDurationCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for maxChallengeDurationCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Duration,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: maxChallengeDurationReturn) -> Self { + (value.maxChallengeDuration_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for maxChallengeDurationReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + maxChallengeDuration_: tuple.0, + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for maxChallengeDurationCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (Duration,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "maxChallengeDuration()"; + const SELECTOR: [u8; 4] = [210u8, 23u8, 123u8, 221u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: maxChallengeDurationReturn = r.into(); + r.maxChallengeDuration_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: maxChallengeDurationReturn = r.into(); + r.maxChallengeDuration_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `maxProveDuration()` and selector `0xbcbe5094`. +```solidity +function maxProveDuration() external view returns (Duration maxProveDuration_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct maxProveDurationCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`maxProveDuration()`](maxProveDurationCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct maxProveDurationReturn { + #[allow(missing_docs)] + pub maxProveDuration_: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: maxProveDurationCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for maxProveDurationCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Duration,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: maxProveDurationReturn) -> Self { + (value.maxProveDuration_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for maxProveDurationReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { maxProveDuration_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for maxProveDurationCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (Duration,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "maxProveDuration()"; + const SELECTOR: [u8; 4] = [188u8, 190u8, 80u8, 148u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: maxProveDurationReturn = r.into(); + r.maxProveDuration_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: maxProveDurationReturn = r.into(); + r.maxProveDuration_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `normalModeCredit(address)` and selector `0x529d6a8c`. +```solidity +function normalModeCredit(address) external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct normalModeCreditCall(pub alloy::sol_types::private::Address); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`normalModeCredit(address)`](normalModeCreditCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct normalModeCreditReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: normalModeCreditCall) -> Self { + (value.0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for normalModeCreditCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self(tuple.0) + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: normalModeCreditReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for normalModeCreditReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for normalModeCreditCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "normalModeCredit(address)"; + const SELECTOR: [u8; 4] = [82u8, 157u8, 106u8, 140u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.0, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: normalModeCreditReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: normalModeCreditReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `parentIndex()` and selector `0x7948690a`. +```solidity +function parentIndex() external pure returns (uint32 parentIndex_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct parentIndexCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`parentIndex()`](parentIndexCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct parentIndexReturn { + #[allow(missing_docs)] + pub parentIndex_: u32, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: parentIndexCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for parentIndexCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u32,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: parentIndexReturn) -> Self { + (value.parentIndex_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for parentIndexReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { parentIndex_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for parentIndexCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u32; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<32>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "parentIndex()"; + const SELECTOR: [u8; 4] = [121u8, 72u8, 105u8, 10u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: parentIndexReturn = r.into(); + r.parentIndex_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: parentIndexReturn = r.into(); + r.parentIndex_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `prove(bytes)` and selector `0x375bfa5d`. +```solidity +function prove(bytes memory _proofBytes) external returns (ProposalStatus); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct proveCall { + #[allow(missing_docs)] + pub _proofBytes: alloy::sol_types::private::Bytes, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`prove(bytes)`](proveCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct proveReturn { + #[allow(missing_docs)] + pub _0: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bytes,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Bytes,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: proveCall) -> Self { + (value._proofBytes,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for proveCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _proofBytes: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (ProposalStatus,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: proveReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for proveReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for proveCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Bytes,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (ProposalStatus,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "prove(bytes)"; + const SELECTOR: [u8; 4] = [55u8, 91u8, 250u8, 93u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._proofBytes, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: proveReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: proveReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `rangeVkeyCommitment()` and selector `0x2b31841e`. +```solidity +function rangeVkeyCommitment() external view returns (bytes32 rangeVkeyCommitment_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct rangeVkeyCommitmentCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`rangeVkeyCommitment()`](rangeVkeyCommitmentCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct rangeVkeyCommitmentReturn { + #[allow(missing_docs)] + pub rangeVkeyCommitment_: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: rangeVkeyCommitmentCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for rangeVkeyCommitmentCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: rangeVkeyCommitmentReturn) -> Self { + (value.rangeVkeyCommitment_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for rangeVkeyCommitmentReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + rangeVkeyCommitment_: tuple.0, + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for rangeVkeyCommitmentCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::FixedBytes<32>; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "rangeVkeyCommitment()"; + const SELECTOR: [u8; 4] = [43u8, 49u8, 132u8, 30u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: rangeVkeyCommitmentReturn = r.into(); + r.rangeVkeyCommitment_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: rangeVkeyCommitmentReturn = r.into(); + r.rangeVkeyCommitment_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `refundModeCredit(address)` and selector `0xc0d8bb74`. +```solidity +function refundModeCredit(address) external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct refundModeCreditCall(pub alloy::sol_types::private::Address); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`refundModeCredit(address)`](refundModeCreditCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct refundModeCreditReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: refundModeCreditCall) -> Self { + (value.0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for refundModeCreditCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self(tuple.0) + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: refundModeCreditReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for refundModeCreditReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for refundModeCreditCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "refundModeCredit(address)"; + const SELECTOR: [u8; 4] = [192u8, 216u8, 187u8, 116u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.0, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: refundModeCreditReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: refundModeCreditReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `resolve()` and selector `0x2810e1d6`. +```solidity +function resolve() external returns (GameStatus); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct resolveCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`resolve()`](resolveCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct resolveReturn { + #[allow(missing_docs)] + pub _0: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: resolveCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for resolveCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (GameStatus,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: resolveReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for resolveReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for resolveCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (GameStatus,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "resolve()"; + const SELECTOR: [u8; 4] = [40u8, 16u8, 225u8, 214u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: resolveReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: resolveReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `resolvedAt()` and selector `0x19effeb4`. +```solidity +function resolvedAt() external view returns (Timestamp); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct resolvedAtCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`resolvedAt()`](resolvedAtCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct resolvedAtReturn { + #[allow(missing_docs)] + pub _0: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: resolvedAtCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for resolvedAtCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Timestamp,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: resolvedAtReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for resolvedAtReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for resolvedAtCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (Timestamp,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "resolvedAt()"; + const SELECTOR: [u8; 4] = [25u8, 239u8, 254u8, 180u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: resolvedAtReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: resolvedAtReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `rollupConfigHash()` and selector `0x6d9a1c8b`. +```solidity +function rollupConfigHash() external view returns (bytes32 rollupConfigHash_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct rollupConfigHashCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`rollupConfigHash()`](rollupConfigHashCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct rollupConfigHashReturn { + #[allow(missing_docs)] + pub rollupConfigHash_: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: rollupConfigHashCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for rollupConfigHashCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: rollupConfigHashReturn) -> Self { + (value.rollupConfigHash_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for rollupConfigHashReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { rollupConfigHash_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for rollupConfigHashCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::FixedBytes<32>; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "rollupConfigHash()"; + const SELECTOR: [u8; 4] = [109u8, 154u8, 28u8, 139u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: rollupConfigHashReturn = r.into(); + r.rollupConfigHash_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: rollupConfigHashReturn = r.into(); + r.rollupConfigHash_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `rootClaim()` and selector `0xbcef3b55`. +```solidity +function rootClaim() external pure returns (Claim rootClaim_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct rootClaimCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`rootClaim()`](rootClaimCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct rootClaimReturn { + #[allow(missing_docs)] + pub rootClaim_: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: rootClaimCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for rootClaimCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Claim,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: rootClaimReturn) -> Self { + (value.rootClaim_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for rootClaimReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { rootClaim_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for rootClaimCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (Claim,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "rootClaim()"; + const SELECTOR: [u8; 4] = [188u8, 239u8, 59u8, 85u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: rootClaimReturn = r.into(); + r.rootClaim_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: rootClaimReturn = r.into(); + r.rootClaim_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `sp1Verifier()` and selector `0x52a07fa3`. +```solidity +function sp1Verifier() external view returns (address verifier_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct sp1VerifierCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`sp1Verifier()`](sp1VerifierCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct sp1VerifierReturn { + #[allow(missing_docs)] + pub verifier_: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: sp1VerifierCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for sp1VerifierCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: sp1VerifierReturn) -> Self { + (value.verifier_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for sp1VerifierReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { verifier_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for sp1VerifierCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "sp1Verifier()"; + const SELECTOR: [u8; 4] = [82u8, 160u8, 127u8, 163u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: sp1VerifierReturn = r.into(); + r.verifier_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: sp1VerifierReturn = r.into(); + r.verifier_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `startingBlockNumber()` and selector `0x70872aa5`. +```solidity +function startingBlockNumber() external view returns (uint256 startingBlockNumber_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct startingBlockNumberCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`startingBlockNumber()`](startingBlockNumberCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct startingBlockNumberReturn { + #[allow(missing_docs)] + pub startingBlockNumber_: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: startingBlockNumberCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for startingBlockNumberCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: startingBlockNumberReturn) -> Self { + (value.startingBlockNumber_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for startingBlockNumberReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + startingBlockNumber_: tuple.0, + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for startingBlockNumberCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "startingBlockNumber()"; + const SELECTOR: [u8; 4] = [112u8, 135u8, 42u8, 165u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: startingBlockNumberReturn = r.into(); + r.startingBlockNumber_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: startingBlockNumberReturn = r.into(); + r.startingBlockNumber_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `startingProposal()` and selector `0x938d689a`. +```solidity +function startingProposal() external view returns (Hash root, uint256 l2SequenceNumber); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct startingProposalCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`startingProposal()`](startingProposalCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct startingProposalReturn { + #[allow(missing_docs)] + pub root: ::RustType, + #[allow(missing_docs)] + pub l2SequenceNumber: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: startingProposalCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for startingProposalCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Hash, alloy::sol_types::sol_data::Uint<256>); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: startingProposalReturn) -> Self { + (value.root, value.l2SequenceNumber) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for startingProposalReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + root: tuple.0, + l2SequenceNumber: tuple.1, + } + } + } + } + impl startingProposalReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + ( + ::tokenize(&self.root), + as alloy_sol_types::SolType>::tokenize(&self.l2SequenceNumber), + ) + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for startingProposalCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = startingProposalReturn; + type ReturnTuple<'a> = (Hash, alloy::sol_types::sol_data::Uint<256>); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "startingProposal()"; + const SELECTOR: [u8; 4] = [147u8, 141u8, 104u8, 154u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + startingProposalReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `startingRootHash()` and selector `0x25fc2ace`. +```solidity +function startingRootHash() external view returns (Hash startingRootHash_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct startingRootHashCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`startingRootHash()`](startingRootHashCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct startingRootHashReturn { + #[allow(missing_docs)] + pub startingRootHash_: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: startingRootHashCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for startingRootHashCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Hash,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: startingRootHashReturn) -> Self { + (value.startingRootHash_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for startingRootHashReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { startingRootHash_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for startingRootHashCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (Hash,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "startingRootHash()"; + const SELECTOR: [u8; 4] = [37u8, 252u8, 42u8, 206u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: startingRootHashReturn = r.into(); + r.startingRootHash_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: startingRootHashReturn = r.into(); + r.startingRootHash_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `status()` and selector `0x200d2ed2`. +```solidity +function status() external view returns (GameStatus); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct statusCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`status()`](statusCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct statusReturn { + #[allow(missing_docs)] + pub _0: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: statusCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for statusCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (GameStatus,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: statusReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for statusReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for statusCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (GameStatus,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "status()"; + const SELECTOR: [u8; 4] = [32u8, 13u8, 46u8, 210u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: statusReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: statusReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `version()` and selector `0x54fd4d50`. +```solidity +function version() external view returns (string memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`version()`](versionCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for versionCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::String; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "version()"; + const SELECTOR: [u8; 4] = [84u8, 253u8, 77u8, 80u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `wasRespectedGameTypeWhenCreated()` and selector `0x250e69bd`. +```solidity +function wasRespectedGameTypeWhenCreated() external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct wasRespectedGameTypeWhenCreatedCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`wasRespectedGameTypeWhenCreated()`](wasRespectedGameTypeWhenCreatedCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct wasRespectedGameTypeWhenCreatedReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: wasRespectedGameTypeWhenCreatedCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for wasRespectedGameTypeWhenCreatedCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: wasRespectedGameTypeWhenCreatedReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for wasRespectedGameTypeWhenCreatedReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for wasRespectedGameTypeWhenCreatedCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "wasRespectedGameTypeWhenCreated()"; + const SELECTOR: [u8; 4] = [37u8, 14u8, 105u8, 189u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: wasRespectedGameTypeWhenCreatedReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: wasRespectedGameTypeWhenCreatedReturn = r.into(); + r._0 + }) + } + } + }; + ///Container for all the [`OPSuccinctFaultDisputeGame`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum OPSuccinctFaultDisputeGameCalls { + #[allow(missing_docs)] + accessManager(accessManagerCall), + #[allow(missing_docs)] + aggregationVkey(aggregationVkeyCall), + #[allow(missing_docs)] + anchorStateRegistry(anchorStateRegistryCall), + #[allow(missing_docs)] + bondDistributionMode(bondDistributionModeCall), + #[allow(missing_docs)] + challenge(challengeCall), + #[allow(missing_docs)] + challengerBond(challengerBondCall), + #[allow(missing_docs)] + claimCredit(claimCreditCall), + #[allow(missing_docs)] + claimData(claimDataCall), + #[allow(missing_docs)] + closeGame(closeGameCall), + #[allow(missing_docs)] + createdAt(createdAtCall), + #[allow(missing_docs)] + credit(creditCall), + #[allow(missing_docs)] + disputeGameFactory(disputeGameFactoryCall), + #[allow(missing_docs)] + extraData(extraDataCall), + #[allow(missing_docs)] + gameCreator(gameCreatorCall), + #[allow(missing_docs)] + gameData(gameDataCall), + #[allow(missing_docs)] + gameOver(gameOverCall), + #[allow(missing_docs)] + gameType(gameTypeCall), + #[allow(missing_docs)] + initialize(initializeCall), + #[allow(missing_docs)] + initializeWithInitData(initializeWithInitDataCall), + #[allow(missing_docs)] + l1Head(l1HeadCall), + #[allow(missing_docs)] + l2SequenceNumber(l2SequenceNumberCall), + #[allow(missing_docs)] + maxChallengeDuration(maxChallengeDurationCall), + #[allow(missing_docs)] + maxProveDuration(maxProveDurationCall), + #[allow(missing_docs)] + normalModeCredit(normalModeCreditCall), + #[allow(missing_docs)] + parentIndex(parentIndexCall), + #[allow(missing_docs)] + prove(proveCall), + #[allow(missing_docs)] + rangeVkeyCommitment(rangeVkeyCommitmentCall), + #[allow(missing_docs)] + refundModeCredit(refundModeCreditCall), + #[allow(missing_docs)] + resolve(resolveCall), + #[allow(missing_docs)] + resolvedAt(resolvedAtCall), + #[allow(missing_docs)] + rollupConfigHash(rollupConfigHashCall), + #[allow(missing_docs)] + rootClaim(rootClaimCall), + #[allow(missing_docs)] + sp1Verifier(sp1VerifierCall), + #[allow(missing_docs)] + startingBlockNumber(startingBlockNumberCall), + #[allow(missing_docs)] + startingProposal(startingProposalCall), + #[allow(missing_docs)] + startingRootHash(startingRootHashCall), + #[allow(missing_docs)] + status(statusCall), + #[allow(missing_docs)] + version(versionCall), + #[allow(missing_docs)] + wasRespectedGameTypeWhenCreated(wasRespectedGameTypeWhenCreatedCall), + } + impl OPSuccinctFaultDisputeGameCalls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [25u8, 239u8, 254u8, 180u8], + [32u8, 13u8, 46u8, 210u8], + [37u8, 14u8, 105u8, 189u8], + [37u8, 252u8, 42u8, 206u8], + [40u8, 16u8, 225u8, 214u8], + [43u8, 49u8, 132u8, 30u8], + [55u8, 91u8, 250u8, 93u8], + [55u8, 141u8, 212u8, 140u8], + [55u8, 177u8, 178u8, 41u8], + [62u8, 196u8, 212u8, 214u8], + [66u8, 36u8, 177u8, 231u8], + [82u8, 157u8, 106u8, 140u8], + [82u8, 160u8, 127u8, 163u8], + [84u8, 253u8, 77u8, 80u8], + [92u8, 12u8, 186u8, 51u8], + [96u8, 157u8, 51u8, 52u8], + [96u8, 226u8, 116u8, 100u8], + [99u8, 97u8, 80u8, 109u8], + [104u8, 204u8, 220u8, 134u8], + [109u8, 154u8, 28u8, 139u8], + [112u8, 135u8, 42u8, 165u8], + [120u8, 107u8, 132u8, 75u8], + [121u8, 72u8, 105u8, 10u8], + [129u8, 41u8, 252u8, 28u8], + [147u8, 141u8, 104u8, 154u8], + [153u8, 115u8, 94u8, 50u8], + [187u8, 220u8, 2u8, 219u8], + [188u8, 190u8, 80u8, 148u8], + [188u8, 239u8, 59u8, 85u8], + [189u8, 179u8, 55u8, 209u8], + [192u8, 216u8, 187u8, 116u8], + [195u8, 46u8, 78u8, 62u8], + [207u8, 9u8, 224u8, 208u8], + [210u8, 23u8, 123u8, 221u8], + [210u8, 239u8, 115u8, 152u8], + [213u8, 212u8, 77u8, 128u8], + [242u8, 180u8, 230u8, 23u8], + [250u8, 36u8, 247u8, 67u8], + [253u8, 203u8, 96u8, 104u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(resolvedAt), + ::core::stringify!(status), + ::core::stringify!(wasRespectedGameTypeWhenCreated), + ::core::stringify!(startingRootHash), + ::core::stringify!(resolve), + ::core::stringify!(rangeVkeyCommitment), + ::core::stringify!(prove), + ::core::stringify!(bondDistributionMode), + ::core::stringify!(gameCreator), + ::core::stringify!(claimData), + ::core::stringify!(initializeWithInitData), + ::core::stringify!(normalModeCredit), + ::core::stringify!(sp1Verifier), + ::core::stringify!(version), + ::core::stringify!(anchorStateRegistry), + ::core::stringify!(extraData), + ::core::stringify!(claimCredit), + ::core::stringify!(l1Head), + ::core::stringify!(challengerBond), + ::core::stringify!(rollupConfigHash), + ::core::stringify!(startingBlockNumber), + ::core::stringify!(closeGame), + ::core::stringify!(parentIndex), + ::core::stringify!(initialize), + ::core::stringify!(startingProposal), + ::core::stringify!(l2SequenceNumber), + ::core::stringify!(gameType), + ::core::stringify!(maxProveDuration), + ::core::stringify!(rootClaim), + ::core::stringify!(gameOver), + ::core::stringify!(refundModeCredit), + ::core::stringify!(aggregationVkey), + ::core::stringify!(createdAt), + ::core::stringify!(maxChallengeDuration), + ::core::stringify!(challenge), + ::core::stringify!(credit), + ::core::stringify!(disputeGameFactory), + ::core::stringify!(gameData), + ::core::stringify!(accessManager), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for OPSuccinctFaultDisputeGameCalls { + const NAME: &'static str = "OPSuccinctFaultDisputeGameCalls"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 39usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::accessManager(_) => { + ::SELECTOR + } + Self::aggregationVkey(_) => { + ::SELECTOR + } + Self::anchorStateRegistry(_) => { + ::SELECTOR + } + Self::bondDistributionMode(_) => { + ::SELECTOR + } + Self::challenge(_) => { + ::SELECTOR + } + Self::challengerBond(_) => { + ::SELECTOR + } + Self::claimCredit(_) => { + ::SELECTOR + } + Self::claimData(_) => { + ::SELECTOR + } + Self::closeGame(_) => { + ::SELECTOR + } + Self::createdAt(_) => { + ::SELECTOR + } + Self::credit(_) => ::SELECTOR, + Self::disputeGameFactory(_) => { + ::SELECTOR + } + Self::extraData(_) => { + ::SELECTOR + } + Self::gameCreator(_) => { + ::SELECTOR + } + Self::gameData(_) => ::SELECTOR, + Self::gameOver(_) => ::SELECTOR, + Self::gameType(_) => ::SELECTOR, + Self::initialize(_) => { + ::SELECTOR + } + Self::initializeWithInitData(_) => { + ::SELECTOR + } + Self::l1Head(_) => ::SELECTOR, + Self::l2SequenceNumber(_) => { + ::SELECTOR + } + Self::maxChallengeDuration(_) => { + ::SELECTOR + } + Self::maxProveDuration(_) => { + ::SELECTOR + } + Self::normalModeCredit(_) => { + ::SELECTOR + } + Self::parentIndex(_) => { + ::SELECTOR + } + Self::prove(_) => ::SELECTOR, + Self::rangeVkeyCommitment(_) => { + ::SELECTOR + } + Self::refundModeCredit(_) => { + ::SELECTOR + } + Self::resolve(_) => ::SELECTOR, + Self::resolvedAt(_) => { + ::SELECTOR + } + Self::rollupConfigHash(_) => { + ::SELECTOR + } + Self::rootClaim(_) => { + ::SELECTOR + } + Self::sp1Verifier(_) => { + ::SELECTOR + } + Self::startingBlockNumber(_) => { + ::SELECTOR + } + Self::startingProposal(_) => { + ::SELECTOR + } + Self::startingRootHash(_) => { + ::SELECTOR + } + Self::status(_) => ::SELECTOR, + Self::version(_) => ::SELECTOR, + Self::wasRespectedGameTypeWhenCreated(_) => { + ::SELECTOR + } + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn resolvedAt( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OPSuccinctFaultDisputeGameCalls::resolvedAt) + } + resolvedAt + }, + { + fn status( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(OPSuccinctFaultDisputeGameCalls::status) + } + status + }, + { + fn wasRespectedGameTypeWhenCreated( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + OPSuccinctFaultDisputeGameCalls::wasRespectedGameTypeWhenCreated, + ) + } + wasRespectedGameTypeWhenCreated + }, + { + fn startingRootHash( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OPSuccinctFaultDisputeGameCalls::startingRootHash) + } + startingRootHash + }, + { + fn resolve( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(OPSuccinctFaultDisputeGameCalls::resolve) + } + resolve + }, + { + fn rangeVkeyCommitment( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OPSuccinctFaultDisputeGameCalls::rangeVkeyCommitment) + } + rangeVkeyCommitment + }, + { + fn prove( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(OPSuccinctFaultDisputeGameCalls::prove) + } + prove + }, + { + fn bondDistributionMode( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OPSuccinctFaultDisputeGameCalls::bondDistributionMode) + } + bondDistributionMode + }, + { + fn gameCreator( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OPSuccinctFaultDisputeGameCalls::gameCreator) + } + gameCreator + }, + { + fn claimData( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(OPSuccinctFaultDisputeGameCalls::claimData) + } + claimData + }, + { + fn initializeWithInitData( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OPSuccinctFaultDisputeGameCalls::initializeWithInitData) + } + initializeWithInitData + }, + { + fn normalModeCredit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OPSuccinctFaultDisputeGameCalls::normalModeCredit) + } + normalModeCredit + }, + { + fn sp1Verifier( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OPSuccinctFaultDisputeGameCalls::sp1Verifier) + } + sp1Verifier + }, + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(OPSuccinctFaultDisputeGameCalls::version) + } + version + }, + { + fn anchorStateRegistry( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OPSuccinctFaultDisputeGameCalls::anchorStateRegistry) + } + anchorStateRegistry + }, + { + fn extraData( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(OPSuccinctFaultDisputeGameCalls::extraData) + } + extraData + }, + { + fn claimCredit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OPSuccinctFaultDisputeGameCalls::claimCredit) + } + claimCredit + }, + { + fn l1Head( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(OPSuccinctFaultDisputeGameCalls::l1Head) + } + l1Head + }, + { + fn challengerBond( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OPSuccinctFaultDisputeGameCalls::challengerBond) + } + challengerBond + }, + { + fn rollupConfigHash( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OPSuccinctFaultDisputeGameCalls::rollupConfigHash) + } + rollupConfigHash + }, + { + fn startingBlockNumber( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OPSuccinctFaultDisputeGameCalls::startingBlockNumber) + } + startingBlockNumber + }, + { + fn closeGame( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(OPSuccinctFaultDisputeGameCalls::closeGame) + } + closeGame + }, + { + fn parentIndex( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OPSuccinctFaultDisputeGameCalls::parentIndex) + } + parentIndex + }, + { + fn initialize( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OPSuccinctFaultDisputeGameCalls::initialize) + } + initialize + }, + { + fn startingProposal( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OPSuccinctFaultDisputeGameCalls::startingProposal) + } + startingProposal + }, + { + fn l2SequenceNumber( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OPSuccinctFaultDisputeGameCalls::l2SequenceNumber) + } + l2SequenceNumber + }, + { + fn gameType( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(OPSuccinctFaultDisputeGameCalls::gameType) + } + gameType + }, + { + fn maxProveDuration( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OPSuccinctFaultDisputeGameCalls::maxProveDuration) + } + maxProveDuration + }, + { + fn rootClaim( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(OPSuccinctFaultDisputeGameCalls::rootClaim) + } + rootClaim + }, + { + fn gameOver( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(OPSuccinctFaultDisputeGameCalls::gameOver) + } + gameOver + }, + { + fn refundModeCredit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OPSuccinctFaultDisputeGameCalls::refundModeCredit) + } + refundModeCredit + }, + { + fn aggregationVkey( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OPSuccinctFaultDisputeGameCalls::aggregationVkey) + } + aggregationVkey + }, + { + fn createdAt( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(OPSuccinctFaultDisputeGameCalls::createdAt) + } + createdAt + }, + { + fn maxChallengeDuration( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OPSuccinctFaultDisputeGameCalls::maxChallengeDuration) + } + maxChallengeDuration + }, + { + fn challenge( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(OPSuccinctFaultDisputeGameCalls::challenge) + } + challenge + }, + { + fn credit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(OPSuccinctFaultDisputeGameCalls::credit) + } + credit + }, + { + fn disputeGameFactory( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OPSuccinctFaultDisputeGameCalls::disputeGameFactory) + } + disputeGameFactory + }, + { + fn gameData( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(OPSuccinctFaultDisputeGameCalls::gameData) + } + gameData + }, + { + fn accessManager( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OPSuccinctFaultDisputeGameCalls::accessManager) + } + accessManager + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn resolvedAt( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OPSuccinctFaultDisputeGameCalls::resolvedAt) + } + resolvedAt + }, + { + fn status( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OPSuccinctFaultDisputeGameCalls::status) + } + status + }, + { + fn wasRespectedGameTypeWhenCreated( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + OPSuccinctFaultDisputeGameCalls::wasRespectedGameTypeWhenCreated, + ) + } + wasRespectedGameTypeWhenCreated + }, + { + fn startingRootHash( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OPSuccinctFaultDisputeGameCalls::startingRootHash) + } + startingRootHash + }, + { + fn resolve( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OPSuccinctFaultDisputeGameCalls::resolve) + } + resolve + }, + { + fn rangeVkeyCommitment( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OPSuccinctFaultDisputeGameCalls::rangeVkeyCommitment) + } + rangeVkeyCommitment + }, + { + fn prove( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OPSuccinctFaultDisputeGameCalls::prove) + } + prove + }, + { + fn bondDistributionMode( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OPSuccinctFaultDisputeGameCalls::bondDistributionMode) + } + bondDistributionMode + }, + { + fn gameCreator( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OPSuccinctFaultDisputeGameCalls::gameCreator) + } + gameCreator + }, + { + fn claimData( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OPSuccinctFaultDisputeGameCalls::claimData) + } + claimData + }, + { + fn initializeWithInitData( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OPSuccinctFaultDisputeGameCalls::initializeWithInitData) + } + initializeWithInitData + }, + { + fn normalModeCredit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OPSuccinctFaultDisputeGameCalls::normalModeCredit) + } + normalModeCredit + }, + { + fn sp1Verifier( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OPSuccinctFaultDisputeGameCalls::sp1Verifier) + } + sp1Verifier + }, + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OPSuccinctFaultDisputeGameCalls::version) + } + version + }, + { + fn anchorStateRegistry( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OPSuccinctFaultDisputeGameCalls::anchorStateRegistry) + } + anchorStateRegistry + }, + { + fn extraData( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OPSuccinctFaultDisputeGameCalls::extraData) + } + extraData + }, + { + fn claimCredit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OPSuccinctFaultDisputeGameCalls::claimCredit) + } + claimCredit + }, + { + fn l1Head( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OPSuccinctFaultDisputeGameCalls::l1Head) + } + l1Head + }, + { + fn challengerBond( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OPSuccinctFaultDisputeGameCalls::challengerBond) + } + challengerBond + }, + { + fn rollupConfigHash( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OPSuccinctFaultDisputeGameCalls::rollupConfigHash) + } + rollupConfigHash + }, + { + fn startingBlockNumber( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OPSuccinctFaultDisputeGameCalls::startingBlockNumber) + } + startingBlockNumber + }, + { + fn closeGame( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OPSuccinctFaultDisputeGameCalls::closeGame) + } + closeGame + }, + { + fn parentIndex( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OPSuccinctFaultDisputeGameCalls::parentIndex) + } + parentIndex + }, + { + fn initialize( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OPSuccinctFaultDisputeGameCalls::initialize) + } + initialize + }, + { + fn startingProposal( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OPSuccinctFaultDisputeGameCalls::startingProposal) + } + startingProposal + }, + { + fn l2SequenceNumber( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OPSuccinctFaultDisputeGameCalls::l2SequenceNumber) + } + l2SequenceNumber + }, + { + fn gameType( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OPSuccinctFaultDisputeGameCalls::gameType) + } + gameType + }, + { + fn maxProveDuration( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OPSuccinctFaultDisputeGameCalls::maxProveDuration) + } + maxProveDuration + }, + { + fn rootClaim( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OPSuccinctFaultDisputeGameCalls::rootClaim) + } + rootClaim + }, + { + fn gameOver( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OPSuccinctFaultDisputeGameCalls::gameOver) + } + gameOver + }, + { + fn refundModeCredit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OPSuccinctFaultDisputeGameCalls::refundModeCredit) + } + refundModeCredit + }, + { + fn aggregationVkey( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OPSuccinctFaultDisputeGameCalls::aggregationVkey) + } + aggregationVkey + }, + { + fn createdAt( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OPSuccinctFaultDisputeGameCalls::createdAt) + } + createdAt + }, + { + fn maxChallengeDuration( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OPSuccinctFaultDisputeGameCalls::maxChallengeDuration) + } + maxChallengeDuration + }, + { + fn challenge( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OPSuccinctFaultDisputeGameCalls::challenge) + } + challenge + }, + { + fn credit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OPSuccinctFaultDisputeGameCalls::credit) + } + credit + }, + { + fn disputeGameFactory( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OPSuccinctFaultDisputeGameCalls::disputeGameFactory) + } + disputeGameFactory + }, + { + fn gameData( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OPSuccinctFaultDisputeGameCalls::gameData) + } + gameData + }, + { + fn accessManager( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OPSuccinctFaultDisputeGameCalls::accessManager) + } + accessManager + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::accessManager(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::aggregationVkey(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::anchorStateRegistry(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::bondDistributionMode(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::challenge(inner) => { + ::abi_encoded_size(inner) + } + Self::challengerBond(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::claimCredit(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::claimData(inner) => { + ::abi_encoded_size(inner) + } + Self::closeGame(inner) => { + ::abi_encoded_size(inner) + } + Self::createdAt(inner) => { + ::abi_encoded_size(inner) + } + Self::credit(inner) => { + ::abi_encoded_size(inner) + } + Self::disputeGameFactory(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::extraData(inner) => { + ::abi_encoded_size(inner) + } + Self::gameCreator(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::gameData(inner) => { + ::abi_encoded_size(inner) + } + Self::gameOver(inner) => { + ::abi_encoded_size(inner) + } + Self::gameType(inner) => { + ::abi_encoded_size(inner) + } + Self::initialize(inner) => { + ::abi_encoded_size(inner) + } + Self::initializeWithInitData(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::l1Head(inner) => { + ::abi_encoded_size(inner) + } + Self::l2SequenceNumber(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::maxChallengeDuration(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::maxProveDuration(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::normalModeCredit(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::parentIndex(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::prove(inner) => { + ::abi_encoded_size(inner) + } + Self::rangeVkeyCommitment(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::refundModeCredit(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::resolve(inner) => { + ::abi_encoded_size(inner) + } + Self::resolvedAt(inner) => { + ::abi_encoded_size(inner) + } + Self::rollupConfigHash(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::rootClaim(inner) => { + ::abi_encoded_size(inner) + } + Self::sp1Verifier(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::startingBlockNumber(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::startingProposal(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::startingRootHash(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::status(inner) => { + ::abi_encoded_size(inner) + } + Self::version(inner) => { + ::abi_encoded_size(inner) + } + Self::wasRespectedGameTypeWhenCreated(inner) => { + ::abi_encoded_size( + inner, + ) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::accessManager(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::aggregationVkey(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::anchorStateRegistry(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::bondDistributionMode(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::challenge(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::challengerBond(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::claimCredit(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::claimData(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::closeGame(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::createdAt(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::credit(inner) => { + ::abi_encode_raw(inner, out) + } + Self::disputeGameFactory(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::extraData(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::gameCreator(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::gameData(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::gameOver(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::gameType(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::initialize(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::initializeWithInitData(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::l1Head(inner) => { + ::abi_encode_raw(inner, out) + } + Self::l2SequenceNumber(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::maxChallengeDuration(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::maxProveDuration(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::normalModeCredit(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::parentIndex(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::prove(inner) => { + ::abi_encode_raw(inner, out) + } + Self::rangeVkeyCommitment(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::refundModeCredit(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::resolve(inner) => { + ::abi_encode_raw(inner, out) + } + Self::resolvedAt(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::rollupConfigHash(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::rootClaim(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::sp1Verifier(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::startingBlockNumber(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::startingProposal(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::startingRootHash(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::status(inner) => { + ::abi_encode_raw(inner, out) + } + Self::version(inner) => { + ::abi_encode_raw(inner, out) + } + Self::wasRespectedGameTypeWhenCreated(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + } + } + } + ///Container for all the [`OPSuccinctFaultDisputeGame`](self) custom errors. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum OPSuccinctFaultDisputeGameErrors { + #[allow(missing_docs)] + AlreadyInitialized(AlreadyInitialized), + #[allow(missing_docs)] + BadAuth(BadAuth), + #[allow(missing_docs)] + BondTransferFailed(BondTransferFailed), + #[allow(missing_docs)] + ClaimAlreadyChallenged(ClaimAlreadyChallenged), + #[allow(missing_docs)] + ClaimAlreadyResolved(ClaimAlreadyResolved), + #[allow(missing_docs)] + GameNotFinalized(GameNotFinalized), + #[allow(missing_docs)] + GameNotOver(GameNotOver), + #[allow(missing_docs)] + GameOver(GameOver), + #[allow(missing_docs)] + IncorrectBondAmount(IncorrectBondAmount), + #[allow(missing_docs)] + IncorrectDisputeGameFactory(IncorrectDisputeGameFactory), + #[allow(missing_docs)] + InvalidBondDistributionMode(InvalidBondDistributionMode), + #[allow(missing_docs)] + InvalidParentGame(InvalidParentGame), + #[allow(missing_docs)] + InvalidProposalStatus(InvalidProposalStatus), + #[allow(missing_docs)] + NoCreditToClaim(NoCreditToClaim), + #[allow(missing_docs)] + ParentGameNotResolved(ParentGameNotResolved), + #[allow(missing_docs)] + UnexpectedRootClaim(UnexpectedRootClaim), + } + impl OPSuccinctFaultDisputeGameErrors { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [4u8, 100u8, 60u8, 57u8], + [7u8, 138u8, 61u8, 244u8], + [13u8, 193u8, 73u8, 240u8], + [23u8, 191u8, 229u8, 247u8], + [52u8, 97u8, 25u8, 247u8], + [72u8, 81u8, 189u8, 155u8], + [116u8, 146u8, 162u8, 105u8], + [131u8, 230u8, 204u8, 107u8], + [133u8, 195u8, 69u8, 176u8], + [134u8, 32u8, 170u8, 25u8], + [146u8, 197u8, 6u8, 174u8], + [148u8, 13u8, 56u8, 199u8], + [211u8, 134u8, 239u8, 62u8], + [223u8, 70u8, 156u8, 203u8], + [241u8, 169u8, 69u8, 129u8], + [244u8, 2u8, 57u8, 219u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(GameNotOver), + ::core::stringify!(InvalidBondDistributionMode), + ::core::stringify!(AlreadyInitialized), + ::core::stringify!(NoCreditToClaim), + ::core::stringify!(InvalidParentGame), + ::core::stringify!(GameNotFinalized), + ::core::stringify!(InvalidProposalStatus), + ::core::stringify!(BondTransferFailed), + ::core::stringify!(ClaimAlreadyChallenged), + ::core::stringify!(IncorrectBondAmount), + ::core::stringify!(ParentGameNotResolved), + ::core::stringify!(IncorrectDisputeGameFactory), + ::core::stringify!(BadAuth), + ::core::stringify!(GameOver), + ::core::stringify!(ClaimAlreadyResolved), + ::core::stringify!(UnexpectedRootClaim), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for OPSuccinctFaultDisputeGameErrors { + const NAME: &'static str = "OPSuccinctFaultDisputeGameErrors"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 16usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::AlreadyInitialized(_) => { + ::SELECTOR + } + Self::BadAuth(_) => ::SELECTOR, + Self::BondTransferFailed(_) => { + ::SELECTOR + } + Self::ClaimAlreadyChallenged(_) => { + ::SELECTOR + } + Self::ClaimAlreadyResolved(_) => { + ::SELECTOR + } + Self::GameNotFinalized(_) => { + ::SELECTOR + } + Self::GameNotOver(_) => { + ::SELECTOR + } + Self::GameOver(_) => ::SELECTOR, + Self::IncorrectBondAmount(_) => { + ::SELECTOR + } + Self::IncorrectDisputeGameFactory(_) => { + ::SELECTOR + } + Self::InvalidBondDistributionMode(_) => { + ::SELECTOR + } + Self::InvalidParentGame(_) => { + ::SELECTOR + } + Self::InvalidProposalStatus(_) => { + ::SELECTOR + } + Self::NoCreditToClaim(_) => { + ::SELECTOR + } + Self::ParentGameNotResolved(_) => { + ::SELECTOR + } + Self::UnexpectedRootClaim(_) => { + ::SELECTOR + } + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn GameNotOver( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(OPSuccinctFaultDisputeGameErrors::GameNotOver) + } + GameNotOver + }, + { + fn InvalidBondDistributionMode( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + OPSuccinctFaultDisputeGameErrors::InvalidBondDistributionMode, + ) + } + InvalidBondDistributionMode + }, + { + fn AlreadyInitialized( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OPSuccinctFaultDisputeGameErrors::AlreadyInitialized) + } + AlreadyInitialized + }, + { + fn NoCreditToClaim( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OPSuccinctFaultDisputeGameErrors::NoCreditToClaim) + } + NoCreditToClaim + }, + { + fn InvalidParentGame( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OPSuccinctFaultDisputeGameErrors::InvalidParentGame) + } + InvalidParentGame + }, + { + fn GameNotFinalized( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OPSuccinctFaultDisputeGameErrors::GameNotFinalized) + } + GameNotFinalized + }, + { + fn InvalidProposalStatus( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OPSuccinctFaultDisputeGameErrors::InvalidProposalStatus) + } + InvalidProposalStatus + }, + { + fn BondTransferFailed( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OPSuccinctFaultDisputeGameErrors::BondTransferFailed) + } + BondTransferFailed + }, + { + fn ClaimAlreadyChallenged( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + OPSuccinctFaultDisputeGameErrors::ClaimAlreadyChallenged, + ) + } + ClaimAlreadyChallenged + }, + { + fn IncorrectBondAmount( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OPSuccinctFaultDisputeGameErrors::IncorrectBondAmount) + } + IncorrectBondAmount + }, + { + fn ParentGameNotResolved( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OPSuccinctFaultDisputeGameErrors::ParentGameNotResolved) + } + ParentGameNotResolved + }, + { + fn IncorrectDisputeGameFactory( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + OPSuccinctFaultDisputeGameErrors::IncorrectDisputeGameFactory, + ) + } + IncorrectDisputeGameFactory + }, + { + fn BadAuth( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(OPSuccinctFaultDisputeGameErrors::BadAuth) + } + BadAuth + }, + { + fn GameOver( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(OPSuccinctFaultDisputeGameErrors::GameOver) + } + GameOver + }, + { + fn ClaimAlreadyResolved( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OPSuccinctFaultDisputeGameErrors::ClaimAlreadyResolved) + } + ClaimAlreadyResolved + }, + { + fn UnexpectedRootClaim( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OPSuccinctFaultDisputeGameErrors::UnexpectedRootClaim) + } + UnexpectedRootClaim + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn GameNotOver( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OPSuccinctFaultDisputeGameErrors::GameNotOver) + } + GameNotOver + }, + { + fn InvalidBondDistributionMode( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + OPSuccinctFaultDisputeGameErrors::InvalidBondDistributionMode, + ) + } + InvalidBondDistributionMode + }, + { + fn AlreadyInitialized( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OPSuccinctFaultDisputeGameErrors::AlreadyInitialized) + } + AlreadyInitialized + }, + { + fn NoCreditToClaim( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OPSuccinctFaultDisputeGameErrors::NoCreditToClaim) + } + NoCreditToClaim + }, + { + fn InvalidParentGame( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OPSuccinctFaultDisputeGameErrors::InvalidParentGame) + } + InvalidParentGame + }, + { + fn GameNotFinalized( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OPSuccinctFaultDisputeGameErrors::GameNotFinalized) + } + GameNotFinalized + }, + { + fn InvalidProposalStatus( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OPSuccinctFaultDisputeGameErrors::InvalidProposalStatus) + } + InvalidProposalStatus + }, + { + fn BondTransferFailed( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OPSuccinctFaultDisputeGameErrors::BondTransferFailed) + } + BondTransferFailed + }, + { + fn ClaimAlreadyChallenged( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + OPSuccinctFaultDisputeGameErrors::ClaimAlreadyChallenged, + ) + } + ClaimAlreadyChallenged + }, + { + fn IncorrectBondAmount( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OPSuccinctFaultDisputeGameErrors::IncorrectBondAmount) + } + IncorrectBondAmount + }, + { + fn ParentGameNotResolved( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OPSuccinctFaultDisputeGameErrors::ParentGameNotResolved) + } + ParentGameNotResolved + }, + { + fn IncorrectDisputeGameFactory( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + OPSuccinctFaultDisputeGameErrors::IncorrectDisputeGameFactory, + ) + } + IncorrectDisputeGameFactory + }, + { + fn BadAuth( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OPSuccinctFaultDisputeGameErrors::BadAuth) + } + BadAuth + }, + { + fn GameOver( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OPSuccinctFaultDisputeGameErrors::GameOver) + } + GameOver + }, + { + fn ClaimAlreadyResolved( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OPSuccinctFaultDisputeGameErrors::ClaimAlreadyResolved) + } + ClaimAlreadyResolved + }, + { + fn UnexpectedRootClaim( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OPSuccinctFaultDisputeGameErrors::UnexpectedRootClaim) + } + UnexpectedRootClaim + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::AlreadyInitialized(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::BadAuth(inner) => { + ::abi_encoded_size(inner) + } + Self::BondTransferFailed(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ClaimAlreadyChallenged(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ClaimAlreadyResolved(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::GameNotFinalized(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::GameNotOver(inner) => { + ::abi_encoded_size(inner) + } + Self::GameOver(inner) => { + ::abi_encoded_size(inner) + } + Self::IncorrectBondAmount(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::IncorrectDisputeGameFactory(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::InvalidBondDistributionMode(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::InvalidParentGame(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::InvalidProposalStatus(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::NoCreditToClaim(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ParentGameNotResolved(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::UnexpectedRootClaim(inner) => { + ::abi_encoded_size( + inner, + ) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::AlreadyInitialized(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::BadAuth(inner) => { + ::abi_encode_raw(inner, out) + } + Self::BondTransferFailed(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ClaimAlreadyChallenged(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ClaimAlreadyResolved(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::GameNotFinalized(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::GameNotOver(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::GameOver(inner) => { + ::abi_encode_raw(inner, out) + } + Self::IncorrectBondAmount(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::IncorrectDisputeGameFactory(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidBondDistributionMode(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidParentGame(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidProposalStatus(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::NoCreditToClaim(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ParentGameNotResolved(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::UnexpectedRootClaim(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + } + } + } + ///Container for all the [`OPSuccinctFaultDisputeGame`](self) events. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum OPSuccinctFaultDisputeGameEvents { + #[allow(missing_docs)] + Challenged(Challenged), + #[allow(missing_docs)] + GameClosed(GameClosed), + #[allow(missing_docs)] + Proved(Proved), + #[allow(missing_docs)] + Resolved(Resolved), + } + impl OPSuccinctFaultDisputeGameEvents { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 32usize]] = &[ + [ + 94u8, 24u8, 111u8, 9u8, 185u8, 201u8, 52u8, 145u8, 241u8, 78u8, 39u8, + 126u8, 234u8, 127u8, 170u8, 93u8, 230u8, 162u8, 212u8, 189u8, 167u8, + 90u8, 121u8, 175u8, 122u8, 54u8, 132u8, 251u8, 251u8, 66u8, 218u8, 96u8, + ], + [ + 94u8, 101u8, 101u8, 217u8, 202u8, 47u8, 92u8, 133u8, 1u8, 214u8, 65u8, + 139u8, 245u8, 99u8, 50u8, 42u8, 114u8, 67u8, 186u8, 122u8, 206u8, 38u8, + 109u8, 117u8, 234u8, 201u8, 159u8, 74u8, 219u8, 179u8, 11u8, 167u8, + ], + [ + 152u8, 2u8, 123u8, 56u8, 21u8, 63u8, 153u8, 92u8, 75u8, 128u8, 42u8, + 92u8, 126u8, 99u8, 101u8, 190u8, 227u8, 173u8, 219u8, 37u8, 175u8, 107u8, + 41u8, 129u8, 140u8, 12u8, 48u8, 70u8, 132u8, 216u8, 5u8, 44u8, + ], + [ + 153u8, 8u8, 234u8, 172u8, 6u8, 69u8, 223u8, 157u8, 7u8, 4u8, 208u8, + 106u8, 220u8, 158u8, 7u8, 51u8, 124u8, 149u8, 29u8, 226u8, 240u8, 107u8, + 95u8, 40u8, 54u8, 21u8, 29u8, 72u8, 213u8, 228u8, 114u8, 47u8, + ], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(Resolved), + ::core::stringify!(Proved), + ::core::stringify!(Challenged), + ::core::stringify!(GameClosed), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolEventInterface for OPSuccinctFaultDisputeGameEvents { + const NAME: &'static str = "OPSuccinctFaultDisputeGameEvents"; + const COUNT: usize = 4usize; + fn decode_raw_log( + topics: &[alloy_sol_types::Word], + data: &[u8], + ) -> alloy_sol_types::Result { + match topics.first().copied() { + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::Challenged) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::GameClosed) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log(topics, data) + .map(Self::Proved) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log(topics, data) + .map(Self::Resolved) + } + _ => { + alloy_sol_types::private::Err(alloy_sol_types::Error::InvalidLog { + name: ::NAME, + log: alloy_sol_types::private::Box::new( + alloy_sol_types::private::LogData::new_unchecked( + topics.to_vec(), + data.to_vec().into(), + ), + ), + }) + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for OPSuccinctFaultDisputeGameEvents { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + match self { + Self::Challenged(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::GameClosed(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::Proved(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::Resolved(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + } + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + match self { + Self::Challenged(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::GameClosed(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::Proved(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::Resolved(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`OPSuccinctFaultDisputeGame`](self) contract instance. + +See the [wrapper's documentation](`OPSuccinctFaultDisputeGameInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> OPSuccinctFaultDisputeGameInstance { + OPSuccinctFaultDisputeGameInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + _maxChallengeDuration: ::RustType, + _maxProveDuration: ::RustType, + _disputeGameFactory: alloy::sol_types::private::Address, + _sp1Verifier: alloy::sol_types::private::Address, + _rollupConfigHash: alloy::sol_types::private::FixedBytes<32>, + _aggregationVkey: alloy::sol_types::private::FixedBytes<32>, + _rangeVkeyCommitment: alloy::sol_types::private::FixedBytes<32>, + _challengerBond: alloy::sol_types::private::primitives::aliases::U256, + _anchorStateRegistry: alloy::sol_types::private::Address, + _accessManager: alloy::sol_types::private::Address, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + OPSuccinctFaultDisputeGameInstance::< + P, + N, + >::deploy( + __provider, + _maxChallengeDuration, + _maxProveDuration, + _disputeGameFactory, + _sp1Verifier, + _rollupConfigHash, + _aggregationVkey, + _rangeVkeyCommitment, + _challengerBond, + _anchorStateRegistry, + _accessManager, + ) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + _maxChallengeDuration: ::RustType, + _maxProveDuration: ::RustType, + _disputeGameFactory: alloy::sol_types::private::Address, + _sp1Verifier: alloy::sol_types::private::Address, + _rollupConfigHash: alloy::sol_types::private::FixedBytes<32>, + _aggregationVkey: alloy::sol_types::private::FixedBytes<32>, + _rangeVkeyCommitment: alloy::sol_types::private::FixedBytes<32>, + _challengerBond: alloy::sol_types::private::primitives::aliases::U256, + _anchorStateRegistry: alloy::sol_types::private::Address, + _accessManager: alloy::sol_types::private::Address, + ) -> alloy_contract::RawCallBuilder { + OPSuccinctFaultDisputeGameInstance::< + P, + N, + >::deploy_builder( + __provider, + _maxChallengeDuration, + _maxProveDuration, + _disputeGameFactory, + _sp1Verifier, + _rollupConfigHash, + _aggregationVkey, + _rangeVkeyCommitment, + _challengerBond, + _anchorStateRegistry, + _accessManager, + ) + } + /**A [`OPSuccinctFaultDisputeGame`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`OPSuccinctFaultDisputeGame`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct OPSuccinctFaultDisputeGameInstance< + P, + N = alloy_contract::private::Ethereum, + > { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for OPSuccinctFaultDisputeGameInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("OPSuccinctFaultDisputeGameInstance") + .field(&self.address) + .finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > OPSuccinctFaultDisputeGameInstance { + /**Creates a new wrapper around an on-chain [`OPSuccinctFaultDisputeGame`](self) contract instance. + +See the [wrapper's documentation](`OPSuccinctFaultDisputeGameInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + _maxChallengeDuration: ::RustType, + _maxProveDuration: ::RustType, + _disputeGameFactory: alloy::sol_types::private::Address, + _sp1Verifier: alloy::sol_types::private::Address, + _rollupConfigHash: alloy::sol_types::private::FixedBytes<32>, + _aggregationVkey: alloy::sol_types::private::FixedBytes<32>, + _rangeVkeyCommitment: alloy::sol_types::private::FixedBytes<32>, + _challengerBond: alloy::sol_types::private::primitives::aliases::U256, + _anchorStateRegistry: alloy::sol_types::private::Address, + _accessManager: alloy::sol_types::private::Address, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder( + __provider, + _maxChallengeDuration, + _maxProveDuration, + _disputeGameFactory, + _sp1Verifier, + _rollupConfigHash, + _aggregationVkey, + _rangeVkeyCommitment, + _challengerBond, + _anchorStateRegistry, + _accessManager, + ); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder( + __provider: P, + _maxChallengeDuration: ::RustType, + _maxProveDuration: ::RustType, + _disputeGameFactory: alloy::sol_types::private::Address, + _sp1Verifier: alloy::sol_types::private::Address, + _rollupConfigHash: alloy::sol_types::private::FixedBytes<32>, + _aggregationVkey: alloy::sol_types::private::FixedBytes<32>, + _rangeVkeyCommitment: alloy::sol_types::private::FixedBytes<32>, + _challengerBond: alloy::sol_types::private::primitives::aliases::U256, + _anchorStateRegistry: alloy::sol_types::private::Address, + _accessManager: alloy::sol_types::private::Address, + ) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + [ + &BYTECODE[..], + &alloy_sol_types::SolConstructor::abi_encode( + &constructorCall { + _maxChallengeDuration, + _maxProveDuration, + _disputeGameFactory, + _sp1Verifier, + _rollupConfigHash, + _aggregationVkey, + _rangeVkeyCommitment, + _challengerBond, + _anchorStateRegistry, + _accessManager, + }, + )[..], + ] + .concat() + .into(), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl OPSuccinctFaultDisputeGameInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> OPSuccinctFaultDisputeGameInstance { + OPSuccinctFaultDisputeGameInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > OPSuccinctFaultDisputeGameInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`accessManager`] function. + pub fn accessManager( + &self, + ) -> alloy_contract::SolCallBuilder<&P, accessManagerCall, N> { + self.call_builder(&accessManagerCall) + } + ///Creates a new call builder for the [`aggregationVkey`] function. + pub fn aggregationVkey( + &self, + ) -> alloy_contract::SolCallBuilder<&P, aggregationVkeyCall, N> { + self.call_builder(&aggregationVkeyCall) + } + ///Creates a new call builder for the [`anchorStateRegistry`] function. + pub fn anchorStateRegistry( + &self, + ) -> alloy_contract::SolCallBuilder<&P, anchorStateRegistryCall, N> { + self.call_builder(&anchorStateRegistryCall) + } + ///Creates a new call builder for the [`bondDistributionMode`] function. + pub fn bondDistributionMode( + &self, + ) -> alloy_contract::SolCallBuilder<&P, bondDistributionModeCall, N> { + self.call_builder(&bondDistributionModeCall) + } + ///Creates a new call builder for the [`challenge`] function. + pub fn challenge(&self) -> alloy_contract::SolCallBuilder<&P, challengeCall, N> { + self.call_builder(&challengeCall) + } + ///Creates a new call builder for the [`challengerBond`] function. + pub fn challengerBond( + &self, + ) -> alloy_contract::SolCallBuilder<&P, challengerBondCall, N> { + self.call_builder(&challengerBondCall) + } + ///Creates a new call builder for the [`claimCredit`] function. + pub fn claimCredit( + &self, + _recipient: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, claimCreditCall, N> { + self.call_builder(&claimCreditCall { _recipient }) + } + ///Creates a new call builder for the [`claimData`] function. + pub fn claimData(&self) -> alloy_contract::SolCallBuilder<&P, claimDataCall, N> { + self.call_builder(&claimDataCall) + } + ///Creates a new call builder for the [`closeGame`] function. + pub fn closeGame(&self) -> alloy_contract::SolCallBuilder<&P, closeGameCall, N> { + self.call_builder(&closeGameCall) + } + ///Creates a new call builder for the [`createdAt`] function. + pub fn createdAt(&self) -> alloy_contract::SolCallBuilder<&P, createdAtCall, N> { + self.call_builder(&createdAtCall) + } + ///Creates a new call builder for the [`credit`] function. + pub fn credit( + &self, + _recipient: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, creditCall, N> { + self.call_builder(&creditCall { _recipient }) + } + ///Creates a new call builder for the [`disputeGameFactory`] function. + pub fn disputeGameFactory( + &self, + ) -> alloy_contract::SolCallBuilder<&P, disputeGameFactoryCall, N> { + self.call_builder(&disputeGameFactoryCall) + } + ///Creates a new call builder for the [`extraData`] function. + pub fn extraData(&self) -> alloy_contract::SolCallBuilder<&P, extraDataCall, N> { + self.call_builder(&extraDataCall) + } + ///Creates a new call builder for the [`gameCreator`] function. + pub fn gameCreator( + &self, + ) -> alloy_contract::SolCallBuilder<&P, gameCreatorCall, N> { + self.call_builder(&gameCreatorCall) + } + ///Creates a new call builder for the [`gameData`] function. + pub fn gameData(&self) -> alloy_contract::SolCallBuilder<&P, gameDataCall, N> { + self.call_builder(&gameDataCall) + } + ///Creates a new call builder for the [`gameOver`] function. + pub fn gameOver(&self) -> alloy_contract::SolCallBuilder<&P, gameOverCall, N> { + self.call_builder(&gameOverCall) + } + ///Creates a new call builder for the [`gameType`] function. + pub fn gameType(&self) -> alloy_contract::SolCallBuilder<&P, gameTypeCall, N> { + self.call_builder(&gameTypeCall) + } + ///Creates a new call builder for the [`initialize`] function. + pub fn initialize( + &self, + ) -> alloy_contract::SolCallBuilder<&P, initializeCall, N> { + self.call_builder(&initializeCall) + } + ///Creates a new call builder for the [`initializeWithInitData`] function. + pub fn initializeWithInitData( + &self, + _0: alloy::sol_types::private::Bytes, + ) -> alloy_contract::SolCallBuilder<&P, initializeWithInitDataCall, N> { + self.call_builder(&initializeWithInitDataCall(_0)) + } + ///Creates a new call builder for the [`l1Head`] function. + pub fn l1Head(&self) -> alloy_contract::SolCallBuilder<&P, l1HeadCall, N> { + self.call_builder(&l1HeadCall) + } + ///Creates a new call builder for the [`l2SequenceNumber`] function. + pub fn l2SequenceNumber( + &self, + ) -> alloy_contract::SolCallBuilder<&P, l2SequenceNumberCall, N> { + self.call_builder(&l2SequenceNumberCall) + } + ///Creates a new call builder for the [`maxChallengeDuration`] function. + pub fn maxChallengeDuration( + &self, + ) -> alloy_contract::SolCallBuilder<&P, maxChallengeDurationCall, N> { + self.call_builder(&maxChallengeDurationCall) + } + ///Creates a new call builder for the [`maxProveDuration`] function. + pub fn maxProveDuration( + &self, + ) -> alloy_contract::SolCallBuilder<&P, maxProveDurationCall, N> { + self.call_builder(&maxProveDurationCall) + } + ///Creates a new call builder for the [`normalModeCredit`] function. + pub fn normalModeCredit( + &self, + _0: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, normalModeCreditCall, N> { + self.call_builder(&normalModeCreditCall(_0)) + } + ///Creates a new call builder for the [`parentIndex`] function. + pub fn parentIndex( + &self, + ) -> alloy_contract::SolCallBuilder<&P, parentIndexCall, N> { + self.call_builder(&parentIndexCall) + } + ///Creates a new call builder for the [`prove`] function. + pub fn prove( + &self, + _proofBytes: alloy::sol_types::private::Bytes, + ) -> alloy_contract::SolCallBuilder<&P, proveCall, N> { + self.call_builder(&proveCall { _proofBytes }) + } + ///Creates a new call builder for the [`rangeVkeyCommitment`] function. + pub fn rangeVkeyCommitment( + &self, + ) -> alloy_contract::SolCallBuilder<&P, rangeVkeyCommitmentCall, N> { + self.call_builder(&rangeVkeyCommitmentCall) + } + ///Creates a new call builder for the [`refundModeCredit`] function. + pub fn refundModeCredit( + &self, + _0: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, refundModeCreditCall, N> { + self.call_builder(&refundModeCreditCall(_0)) + } + ///Creates a new call builder for the [`resolve`] function. + pub fn resolve(&self) -> alloy_contract::SolCallBuilder<&P, resolveCall, N> { + self.call_builder(&resolveCall) + } + ///Creates a new call builder for the [`resolvedAt`] function. + pub fn resolvedAt( + &self, + ) -> alloy_contract::SolCallBuilder<&P, resolvedAtCall, N> { + self.call_builder(&resolvedAtCall) + } + ///Creates a new call builder for the [`rollupConfigHash`] function. + pub fn rollupConfigHash( + &self, + ) -> alloy_contract::SolCallBuilder<&P, rollupConfigHashCall, N> { + self.call_builder(&rollupConfigHashCall) + } + ///Creates a new call builder for the [`rootClaim`] function. + pub fn rootClaim(&self) -> alloy_contract::SolCallBuilder<&P, rootClaimCall, N> { + self.call_builder(&rootClaimCall) + } + ///Creates a new call builder for the [`sp1Verifier`] function. + pub fn sp1Verifier( + &self, + ) -> alloy_contract::SolCallBuilder<&P, sp1VerifierCall, N> { + self.call_builder(&sp1VerifierCall) + } + ///Creates a new call builder for the [`startingBlockNumber`] function. + pub fn startingBlockNumber( + &self, + ) -> alloy_contract::SolCallBuilder<&P, startingBlockNumberCall, N> { + self.call_builder(&startingBlockNumberCall) + } + ///Creates a new call builder for the [`startingProposal`] function. + pub fn startingProposal( + &self, + ) -> alloy_contract::SolCallBuilder<&P, startingProposalCall, N> { + self.call_builder(&startingProposalCall) + } + ///Creates a new call builder for the [`startingRootHash`] function. + pub fn startingRootHash( + &self, + ) -> alloy_contract::SolCallBuilder<&P, startingRootHashCall, N> { + self.call_builder(&startingRootHashCall) + } + ///Creates a new call builder for the [`status`] function. + pub fn status(&self) -> alloy_contract::SolCallBuilder<&P, statusCall, N> { + self.call_builder(&statusCall) + } + ///Creates a new call builder for the [`version`] function. + pub fn version(&self) -> alloy_contract::SolCallBuilder<&P, versionCall, N> { + self.call_builder(&versionCall) + } + ///Creates a new call builder for the [`wasRespectedGameTypeWhenCreated`] function. + pub fn wasRespectedGameTypeWhenCreated( + &self, + ) -> alloy_contract::SolCallBuilder<&P, wasRespectedGameTypeWhenCreatedCall, N> { + self.call_builder(&wasRespectedGameTypeWhenCreatedCall) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > OPSuccinctFaultDisputeGameInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + ///Creates a new event filter for the [`Challenged`] event. + pub fn Challenged_filter(&self) -> alloy_contract::Event<&P, Challenged, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`GameClosed`] event. + pub fn GameClosed_filter(&self) -> alloy_contract::Event<&P, GameClosed, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`Proved`] event. + pub fn Proved_filter(&self) -> alloy_contract::Event<&P, Proved, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`Resolved`] event. + pub fn Resolved_filter(&self) -> alloy_contract::Event<&P, Resolved, N> { + self.event_filter::() + } + } +} diff --git a/bindings/rust/src/operator_fee_vault.rs b/bindings/rust/src/operator_fee_vault.rs new file mode 100644 index 000000000..13b3ff8aa --- /dev/null +++ b/bindings/rust/src/operator_fee_vault.rs @@ -0,0 +1,4915 @@ +///Module containing a contract's types and functions. +/** + +```solidity +library Types { + type WithdrawalNetwork is uint8; +} +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod Types { + use super::*; + use alloy::sol_types as alloy_sol_types; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct WithdrawalNetwork(u8); + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for u8 { + #[inline] + fn stv_to_tokens( + &self, + ) -> as alloy_sol_types::SolType>::Token<'_> { + alloy_sol_types::private::SolTypeValue::< + alloy::sol_types::sol_data::Uint<8>, + >::stv_to_tokens(self) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + as alloy_sol_types::SolType>::tokenize(self) + .0 + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::SolType>::abi_encode_packed_to(self, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + as alloy_sol_types::SolType>::abi_encoded_size(self) + } + } + impl WithdrawalNetwork { + /// The Solidity type name. + pub const NAME: &'static str = stringify!(@ name); + /// Convert from the underlying value type. + #[inline] + pub const fn from_underlying(value: u8) -> Self { + Self(value) + } + /// Return the underlying value. + #[inline] + pub const fn into_underlying(self) -> u8 { + self.0 + } + /// Return the single encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode(&self) -> alloy_sol_types::private::Vec { + ::abi_encode(&self.0) + } + /// Return the packed encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec { + ::abi_encode_packed(&self.0) + } + } + #[automatically_derived] + impl From for WithdrawalNetwork { + fn from(value: u8) -> Self { + Self::from_underlying(value) + } + } + #[automatically_derived] + impl From for u8 { + fn from(value: WithdrawalNetwork) -> Self { + value.into_underlying() + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for WithdrawalNetwork { + type RustType = u8; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = Self::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + Self::type_check(token).is_ok() + } + #[inline] + fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> { + as alloy_sol_types::SolType>::type_check(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + as alloy_sol_types::SolType>::detokenize(token) + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for WithdrawalNetwork { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + as alloy_sol_types::EventTopic>::topic_preimage_length(rust) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out) + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + as alloy_sol_types::EventTopic>::encode_topic(rust) + } + } + }; + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`Types`](self) contract instance. + +See the [wrapper's documentation](`TypesInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(address: alloy_sol_types::private::Address, __provider: P) -> TypesInstance { + TypesInstance::::new(address, __provider) + } + /**A [`Types`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`Types`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct TypesInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for TypesInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("TypesInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > TypesInstance { + /**Creates a new wrapper around an on-chain [`Types`](self) contract instance. + +See the [wrapper's documentation](`TypesInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl TypesInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> TypesInstance { + TypesInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > TypesInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > TypesInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + } +} +/** + +Generated by the following Solidity interface... +```solidity +library Types { + type WithdrawalNetwork is uint8; +} + +interface OperatorFeeVault { + error FeeVault_OnlyProxyAdminOwner(); + error InvalidInitialization(); + error NotInitializing(); + + event Initialized(uint64 version); + event MinWithdrawalAmountUpdated(uint256 oldWithdrawalAmount, uint256 newWithdrawalAmount); + event RecipientUpdated(address oldRecipient, address newRecipient); + event Withdrawal(uint256 value, address to, address from); + event Withdrawal(uint256 value, address to, address from, Types.WithdrawalNetwork withdrawalNetwork); + event WithdrawalNetworkUpdated(Types.WithdrawalNetwork oldWithdrawalNetwork, Types.WithdrawalNetwork newWithdrawalNetwork); + + receive() external payable; + + function MIN_WITHDRAWAL_AMOUNT() external view returns (uint256); + function RECIPIENT() external view returns (address); + function WITHDRAWAL_NETWORK() external view returns (Types.WithdrawalNetwork); + function initialize(address _recipient, uint256 _minWithdrawalAmount, Types.WithdrawalNetwork _withdrawalNetwork) external; + function minWithdrawalAmount() external view returns (uint256); + function recipient() external view returns (address); + function setMinWithdrawalAmount(uint256 _newMinWithdrawalAmount) external; + function setRecipient(address _newRecipient) external; + function setWithdrawalNetwork(Types.WithdrawalNetwork _newWithdrawalNetwork) external; + function totalProcessed() external view returns (uint256); + function version() external view returns (string memory); + function withdraw() external returns (uint256 value_); + function withdrawalNetwork() external view returns (Types.WithdrawalNetwork); +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "receive", + "stateMutability": "payable" + }, + { + "type": "function", + "name": "MIN_WITHDRAWAL_AMOUNT", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "RECIPIENT", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "WITHDRAWAL_NETWORK", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint8", + "internalType": "enum Types.WithdrawalNetwork" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "initialize", + "inputs": [ + { + "name": "_recipient", + "type": "address", + "internalType": "address" + }, + { + "name": "_minWithdrawalAmount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_withdrawalNetwork", + "type": "uint8", + "internalType": "enum Types.WithdrawalNetwork" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "minWithdrawalAmount", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "recipient", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "setMinWithdrawalAmount", + "inputs": [ + { + "name": "_newMinWithdrawalAmount", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "setRecipient", + "inputs": [ + { + "name": "_newRecipient", + "type": "address", + "internalType": "address" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "setWithdrawalNetwork", + "inputs": [ + { + "name": "_newWithdrawalNetwork", + "type": "uint8", + "internalType": "enum Types.WithdrawalNetwork" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "totalProcessed", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "version", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "withdraw", + "inputs": [], + "outputs": [ + { + "name": "value_", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "withdrawalNetwork", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint8", + "internalType": "enum Types.WithdrawalNetwork" + } + ], + "stateMutability": "view" + }, + { + "type": "event", + "name": "Initialized", + "inputs": [ + { + "name": "version", + "type": "uint64", + "indexed": false, + "internalType": "uint64" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "MinWithdrawalAmountUpdated", + "inputs": [ + { + "name": "oldWithdrawalAmount", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + }, + { + "name": "newWithdrawalAmount", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "RecipientUpdated", + "inputs": [ + { + "name": "oldRecipient", + "type": "address", + "indexed": false, + "internalType": "address" + }, + { + "name": "newRecipient", + "type": "address", + "indexed": false, + "internalType": "address" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "Withdrawal", + "inputs": [ + { + "name": "value", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + }, + { + "name": "to", + "type": "address", + "indexed": false, + "internalType": "address" + }, + { + "name": "from", + "type": "address", + "indexed": false, + "internalType": "address" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "Withdrawal", + "inputs": [ + { + "name": "value", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + }, + { + "name": "to", + "type": "address", + "indexed": false, + "internalType": "address" + }, + { + "name": "from", + "type": "address", + "indexed": false, + "internalType": "address" + }, + { + "name": "withdrawalNetwork", + "type": "uint8", + "indexed": false, + "internalType": "enum Types.WithdrawalNetwork" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "WithdrawalNetworkUpdated", + "inputs": [ + { + "name": "oldWithdrawalNetwork", + "type": "uint8", + "indexed": false, + "internalType": "enum Types.WithdrawalNetwork" + }, + { + "name": "newWithdrawalNetwork", + "type": "uint8", + "indexed": false, + "internalType": "enum Types.WithdrawalNetwork" + } + ], + "anonymous": false + }, + { + "type": "error", + "name": "FeeVault_OnlyProxyAdminOwner", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidInitialization", + "inputs": [] + }, + { + "type": "error", + "name": "NotInitializing", + "inputs": [] + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod OperatorFeeVault { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x6080604052348015600e575f80fd5b5060156019565b60c9565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff161560685760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b039081161460c65780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b610e8d806100d65f395ff3fe6080604052600436106100d1575f3560e01c806382356d8a1161007c57806385b5b14d1161005757806385b5b14d14610276578063b49dc74114610295578063d0e12f90146102b4578063d3e5792b146102e3575f80fd5b806382356d8a1461020f5780638312f1491461024d57806384411d6514610262575f80fd5b80633ccfd60b116100ac5780633ccfd60b1461016c57806354fd4d501461018e57806366d003ac146101e3575f80fd5b80630d9019e1146100dc578063307f29621461012c5780633bbed4a01461014d575f80fd5b366100d857005b5f80fd5b3480156100e7575f80fd5b5060025473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b348015610137575f80fd5b5061014b610146366004610c5a565b6102f7565b005b348015610158575f80fd5b5061014b610167366004610c97565b61047a565b348015610177575f80fd5b506101806105de565b604051908152602001610123565b348015610199575f80fd5b506101d66040518060400160405280600581526020017f312e312e3000000000000000000000000000000000000000000000000000000081525081565b6040516101239190610cb2565b3480156101ee575f80fd5b506002546101029073ffffffffffffffffffffffffffffffffffffffff1681565b34801561021a575f80fd5b506002546102409074010000000000000000000000000000000000000000900460ff1681565b6040516101239190610d6b565b348015610258575f80fd5b5061018060015481565b34801561026d575f80fd5b506101805f5481565b348015610281575f80fd5b5061014b610290366004610d7f565b6108ec565b3480156102a0575f80fd5b5061014b6102af366004610d96565b610a0f565b3480156102bf575f80fd5b5060025474010000000000000000000000000000000000000000900460ff16610240565b3480156102ee575f80fd5b50600154610180565b73420000000000000000000000000000000000001873ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610354573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103789190610dd1565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146103dc576040517f7cd7e09f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600280547401000000000000000000000000000000000000000080820460ff1692849290917fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff9091169083600181111561043857610438610d05565b02179055507ff2ec44eb1c3b3acd547b76333eb2c4b27eee311860c57a9fdb04c95f62398fc8818360405161046e929190610dec565b60405180910390a15050565b73420000000000000000000000000000000000001873ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104d7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104fb9190610dd1565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461055f576040517f7cd7e09f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff000000000000000000000000000000000000000083168117909355604080519190921680825260208201939093527f62e69886a5df0ba8ffcacbfc1388754e7abd9bde24b036354c561f1acd4e4593910161046e565b5f60015447101561069c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f4665655661756c743a207769746864726177616c20616d6f756e74206d75737460448201527f2062652067726561746572207468616e206d696e696d756d207769746864726160648201527f77616c20616d6f756e7400000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b479050805f808282546106af9190610e07565b90915550506002546040805183815273ffffffffffffffffffffffffffffffffffffffff909216602083018190523383830152905190917fc8a211cc64b6ed1b50595a9fcb1932b6d1e5a6e8ef15b60e5b1f988ea9086bba919081900360600190a16002546040517f38e04cbeb8c10f8f568618aa75be0f10b6729b8b4237743b4de20cbcde2839ee916107649185918591339174010000000000000000000000000000000000000000900460ff1690610e3f565b60405180910390a1600160025474010000000000000000000000000000000000000000900460ff16600181111561079d5761079d610d05565b03610841575f6107ad8284610c23565b90508061083c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f4665655661756c743a206661696c656420746f2073656e642045544820746f2060448201527f4c322066656520726563697069656e74000000000000000000000000000000006064820152608401610693565b505090565b6040517fc2b3e5ac00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8216600482015262061a806024820152606060448201525f60648201527342000000000000000000000000000000000000169063c2b3e5ac9084906084015f604051808303818588803b1580156108d1575f80fd5b505af11580156108e3573d5f803e3d5ffd5b50505050505090565b73420000000000000000000000000000000000001873ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610949573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061096d9190610dd1565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146109d1576040517f7cd7e09f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600180549082905560408051828152602081018490527f895a067c78583e800418fabf3da26a9496aab2ff3429cebdf7fefa642b2e4203910161046e565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff165f81158015610a595750825b90505f8267ffffffffffffffff166001148015610a755750303b155b905081158015610a83575080155b15610aba576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001660011785558315610b1b5784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b6002805473ffffffffffffffffffffffffffffffffffffffff8a167fffffffffffffffffffffffff000000000000000000000000000000000000000082168117835560018a81558993927fffffffffffffffffffffff000000000000000000000000000000000000000000169091179074010000000000000000000000000000000000000000908490811115610bb357610bb3610d05565b02179055508315610c195784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050565b5f610c2f835a84610c36565b9392505050565b5f805f805f858888f1949350505050565b803560028110610c55575f80fd5b919050565b5f60208284031215610c6a575f80fd5b610c2f82610c47565b73ffffffffffffffffffffffffffffffffffffffff81168114610c94575f80fd5b50565b5f60208284031215610ca7575f80fd5b8135610c2f81610c73565b602081525f82518060208401528060208501604085015e5f6040828501015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011684010191505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b60028110610d67577f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b9052565b60208101610d798284610d32565b92915050565b5f60208284031215610d8f575f80fd5b5035919050565b5f805f60608486031215610da8575f80fd5b8335610db381610c73565b925060208401359150610dc860408501610c47565b90509250925092565b5f60208284031215610de1575f80fd5b8151610c2f81610c73565b60408101610dfa8285610d32565b610c2f6020830184610d32565b80820180821115610d79577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b84815273ffffffffffffffffffffffffffffffffffffffff84811660208301528316604082015260808101610e776060830184610d32565b9594505050505056fea164736f6c6343000819000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R4\x80\x15`\x0EW_\x80\xFD[P`\x15`\x19V[`\xC9V[\x7F\xF0\xC5~\x16\x84\r\xF0@\xF1P\x88\xDC/\x81\xFE9\x1C9#\xBE\xC7>#\xA9f.\xFC\x9C\"\x9Cj\0\x80Th\x01\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16\x15`hW`@Qc\xF9.\xE8\xA9`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[\x80T`\x01`\x01`@\x1B\x03\x90\x81\x16\x14`\xC6W\x80T`\x01`\x01`@\x1B\x03\x19\x16`\x01`\x01`@\x1B\x03\x90\x81\x17\x82U`@Q\x90\x81R\x7F\xC7\xF5\x05\xB2\xF3q\xAE!u\xEEI\x13\xF4I\x9E\x1F&3\xA7\xB5\x93c!\xEE\xD1\xCD\xAE\xB6\x11Q\x81\xD2\x90` \x01`@Q\x80\x91\x03\x90\xA1[PV[a\x0E\x8D\x80a\0\xD6_9_\xF3\xFE`\x80`@R`\x046\x10a\0\xD1W_5`\xE0\x1C\x80c\x825m\x8A\x11a\0|W\x80c\x85\xB5\xB1M\x11a\0WW\x80c\x85\xB5\xB1M\x14a\x02vW\x80c\xB4\x9D\xC7A\x14a\x02\x95W\x80c\xD0\xE1/\x90\x14a\x02\xB4W\x80c\xD3\xE5y+\x14a\x02\xE3W_\x80\xFD[\x80c\x825m\x8A\x14a\x02\x0FW\x80c\x83\x12\xF1I\x14a\x02MW\x80c\x84A\x1De\x14a\x02bW_\x80\xFD[\x80c<\xCF\xD6\x0B\x11a\0\xACW\x80c<\xCF\xD6\x0B\x14a\x01lW\x80cT\xFDMP\x14a\x01\x8EW\x80cf\xD0\x03\xAC\x14a\x01\xE3W_\x80\xFD[\x80c\r\x90\x19\xE1\x14a\0\xDCW\x80c0\x7F)b\x14a\x01,W\x80c;\xBE\xD4\xA0\x14a\x01MW_\x80\xFD[6a\0\xD8W\0[_\x80\xFD[4\x80\x15a\0\xE7W_\x80\xFD[P`\x02Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16[`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[4\x80\x15a\x017W_\x80\xFD[Pa\x01Ka\x01F6`\x04a\x0CZV[a\x02\xF7V[\0[4\x80\x15a\x01XW_\x80\xFD[Pa\x01Ka\x01g6`\x04a\x0C\x97V[a\x04zV[4\x80\x15a\x01wW_\x80\xFD[Pa\x01\x80a\x05\xDEV[`@Q\x90\x81R` \x01a\x01#V[4\x80\x15a\x01\x99W_\x80\xFD[Pa\x01\xD6`@Q\x80`@\x01`@R\x80`\x05\x81R` \x01\x7F1.1.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\x81RP\x81V[`@Qa\x01#\x91\x90a\x0C\xB2V[4\x80\x15a\x01\xEEW_\x80\xFD[P`\x02Ta\x01\x02\x90s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[4\x80\x15a\x02\x1AW_\x80\xFD[P`\x02Ta\x02@\x90t\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16\x81V[`@Qa\x01#\x91\x90a\rkV[4\x80\x15a\x02XW_\x80\xFD[Pa\x01\x80`\x01T\x81V[4\x80\x15a\x02mW_\x80\xFD[Pa\x01\x80_T\x81V[4\x80\x15a\x02\x81W_\x80\xFD[Pa\x01Ka\x02\x906`\x04a\r\x7FV[a\x08\xECV[4\x80\x15a\x02\xA0W_\x80\xFD[Pa\x01Ka\x02\xAF6`\x04a\r\x96V[a\n\x0FV[4\x80\x15a\x02\xBFW_\x80\xFD[P`\x02Tt\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16a\x02@V[4\x80\x15a\x02\xEEW_\x80\xFD[P`\x01Ta\x01\x80V[sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x18s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\x8D\xA5\xCB[`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x03TW=_\x80>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x03x\x91\x90a\r\xD1V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x163s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14a\x03\xDCW`@Q\x7F|\xD7\xE0\x9F\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\x01`@Q\x80\x91\x03\x90\xFD[`\x02\x80Tt\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x80\x82\x04`\xFF\x16\x92\x84\x92\x90\x91\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x90\x83`\x01\x81\x11\x15a\x048Wa\x048a\r\x05V[\x02\x17\x90UP\x7F\xF2\xECD\xEB\x1C;:\xCDT{v3>\xB2\xC4\xB2~\xEE1\x18`\xC5z\x9F\xDB\x04\xC9_b9\x8F\xC8\x81\x83`@Qa\x04n\x92\x91\x90a\r\xECV[`@Q\x80\x91\x03\x90\xA1PPV[sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x18s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\x8D\xA5\xCB[`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x04\xD7W=_\x80>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x04\xFB\x91\x90a\r\xD1V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x163s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14a\x05_W`@Q\x7F|\xD7\xE0\x9F\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\x01`@Q\x80\x91\x03\x90\xFD[`\x02\x80Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x81\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x83\x16\x81\x17\x90\x93U`@\x80Q\x91\x90\x92\x16\x80\x82R` \x82\x01\x93\x90\x93R\x7Fb\xE6\x98\x86\xA5\xDF\x0B\xA8\xFF\xCA\xCB\xFC\x13\x88uNz\xBD\x9B\xDE$\xB065LV\x1F\x1A\xCDNE\x93\x91\x01a\x04nV[_`\x01TG\x10\x15a\x06\x9CW`@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\x82\x01R`J`$\x82\x01R\x7FFeeVault: withdrawal amount must`D\x82\x01R\x7F be greater than minimum withdra`d\x82\x01R\x7Fwal amount\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x84\x82\x01R`\xA4\x01[`@Q\x80\x91\x03\x90\xFD[G\x90P\x80_\x80\x82\x82Ta\x06\xAF\x91\x90a\x0E\x07V[\x90\x91UPP`\x02T`@\x80Q\x83\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x92\x16` \x83\x01\x81\x90R3\x83\x83\x01R\x90Q\x90\x91\x7F\xC8\xA2\x11\xCCd\xB6\xED\x1BPYZ\x9F\xCB\x192\xB6\xD1\xE5\xA6\xE8\xEF\x15\xB6\x0E[\x1F\x98\x8E\xA9\x08k\xBA\x91\x90\x81\x90\x03``\x01\x90\xA1`\x02T`@Q\x7F8\xE0L\xBE\xB8\xC1\x0F\x8FV\x86\x18\xAAu\xBE\x0F\x10\xB6r\x9B\x8BB7t;M\xE2\x0C\xBC\xDE(9\xEE\x91a\x07d\x91\x85\x91\x85\x913\x91t\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16\x90a\x0E?V[`@Q\x80\x91\x03\x90\xA1`\x01`\x02Tt\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16`\x01\x81\x11\x15a\x07\x9DWa\x07\x9Da\r\x05V[\x03a\x08AW_a\x07\xAD\x82\x84a\x0C#V[\x90P\x80a\x08=_\xFD[PPPPPP\x90V[sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x18s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\x8D\xA5\xCB[`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\tIW=_\x80>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\tm\x91\x90a\r\xD1V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x163s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14a\t\xD1W`@Q\x7F|\xD7\xE0\x9F\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01\x80T\x90\x82\x90U`@\x80Q\x82\x81R` \x81\x01\x84\x90R\x7F\x89Z\x06|xX>\x80\x04\x18\xFA\xBF=\xA2j\x94\x96\xAA\xB2\xFF4)\xCE\xBD\xF7\xFE\xFAd+.B\x03\x91\x01a\x04nV[\x7F\xF0\xC5~\x16\x84\r\xF0@\xF1P\x88\xDC/\x81\xFE9\x1C9#\xBE\xC7>#\xA9f.\xFC\x9C\"\x9Cj\0\x80Th\x01\0\0\0\0\0\0\0\0\x81\x04`\xFF\x16\x15\x90g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16_\x81\x15\x80\x15a\nYWP\x82[\x90P_\x82g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\x01\x14\x80\x15a\nuWP0;\x15[\x90P\x81\x15\x80\x15a\n\x83WP\x80\x15[\x15a\n\xBAW`@Q\x7F\xF9.\xE8\xA9\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\x01`@Q\x80\x91\x03\x90\xFD[\x84T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\x16`\x01\x17\x85U\x83\x15a\x0B\x1BW\x84T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16h\x01\0\0\0\0\0\0\0\0\x17\x85U[`\x02\x80Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x8A\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x82\x16\x81\x17\x83U`\x01\x8A\x81U\x89\x93\x92\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x90\x91\x17\x90t\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x84\x90\x81\x11\x15a\x0B\xB3Wa\x0B\xB3a\r\x05V[\x02\x17\x90UP\x83\x15a\x0C\x19W\x84T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x85U`@Q`\x01\x81R\x7F\xC7\xF5\x05\xB2\xF3q\xAE!u\xEEI\x13\xF4I\x9E\x1F&3\xA7\xB5\x93c!\xEE\xD1\xCD\xAE\xB6\x11Q\x81\xD2\x90` \x01`@Q\x80\x91\x03\x90\xA1[PPPPPPPPV[_a\x0C/\x83Z\x84a\x0C6V[\x93\x92PPPV[_\x80_\x80_\x85\x88\x88\xF1\x94\x93PPPPV[\x805`\x02\x81\x10a\x0CUW_\x80\xFD[\x91\x90PV[_` \x82\x84\x03\x12\x15a\x0CjW_\x80\xFD[a\x0C/\x82a\x0CGV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x0C\x94W_\x80\xFD[PV[_` \x82\x84\x03\x12\x15a\x0C\xA7W_\x80\xFD[\x815a\x0C/\x81a\x0CsV[` \x81R_\x82Q\x80` \x84\x01R\x80` \x85\x01`@\x85\x01^_`@\x82\x85\x01\x01R`@\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0`\x1F\x83\x01\x16\x84\x01\x01\x91PP\x92\x91PPV[\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_R`!`\x04R`$_\xFD[`\x02\x81\x10a\rgW\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_R`!`\x04R`$_\xFD[\x90RV[` \x81\x01a\ry\x82\x84a\r2V[\x92\x91PPV[_` \x82\x84\x03\x12\x15a\r\x8FW_\x80\xFD[P5\x91\x90PV[_\x80_``\x84\x86\x03\x12\x15a\r\xA8W_\x80\xFD[\x835a\r\xB3\x81a\x0CsV[\x92P` \x84\x015\x91Pa\r\xC8`@\x85\x01a\x0CGV[\x90P\x92P\x92P\x92V[_` \x82\x84\x03\x12\x15a\r\xE1W_\x80\xFD[\x81Qa\x0C/\x81a\x0CsV[`@\x81\x01a\r\xFA\x82\x85a\r2V[a\x0C/` \x83\x01\x84a\r2V[\x80\x82\x01\x80\x82\x11\x15a\ryW\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_R`\x11`\x04R`$_\xFD[\x84\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x81\x16` \x83\x01R\x83\x16`@\x82\x01R`\x80\x81\x01a\x0Ew``\x83\x01\x84a\r2V[\x95\x94PPPPPV\xFE\xA1dsolcC\0\x08\x19\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x6080604052600436106100d1575f3560e01c806382356d8a1161007c57806385b5b14d1161005757806385b5b14d14610276578063b49dc74114610295578063d0e12f90146102b4578063d3e5792b146102e3575f80fd5b806382356d8a1461020f5780638312f1491461024d57806384411d6514610262575f80fd5b80633ccfd60b116100ac5780633ccfd60b1461016c57806354fd4d501461018e57806366d003ac146101e3575f80fd5b80630d9019e1146100dc578063307f29621461012c5780633bbed4a01461014d575f80fd5b366100d857005b5f80fd5b3480156100e7575f80fd5b5060025473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b348015610137575f80fd5b5061014b610146366004610c5a565b6102f7565b005b348015610158575f80fd5b5061014b610167366004610c97565b61047a565b348015610177575f80fd5b506101806105de565b604051908152602001610123565b348015610199575f80fd5b506101d66040518060400160405280600581526020017f312e312e3000000000000000000000000000000000000000000000000000000081525081565b6040516101239190610cb2565b3480156101ee575f80fd5b506002546101029073ffffffffffffffffffffffffffffffffffffffff1681565b34801561021a575f80fd5b506002546102409074010000000000000000000000000000000000000000900460ff1681565b6040516101239190610d6b565b348015610258575f80fd5b5061018060015481565b34801561026d575f80fd5b506101805f5481565b348015610281575f80fd5b5061014b610290366004610d7f565b6108ec565b3480156102a0575f80fd5b5061014b6102af366004610d96565b610a0f565b3480156102bf575f80fd5b5060025474010000000000000000000000000000000000000000900460ff16610240565b3480156102ee575f80fd5b50600154610180565b73420000000000000000000000000000000000001873ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610354573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103789190610dd1565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146103dc576040517f7cd7e09f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600280547401000000000000000000000000000000000000000080820460ff1692849290917fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff9091169083600181111561043857610438610d05565b02179055507ff2ec44eb1c3b3acd547b76333eb2c4b27eee311860c57a9fdb04c95f62398fc8818360405161046e929190610dec565b60405180910390a15050565b73420000000000000000000000000000000000001873ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104d7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104fb9190610dd1565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461055f576040517f7cd7e09f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff000000000000000000000000000000000000000083168117909355604080519190921680825260208201939093527f62e69886a5df0ba8ffcacbfc1388754e7abd9bde24b036354c561f1acd4e4593910161046e565b5f60015447101561069c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f4665655661756c743a207769746864726177616c20616d6f756e74206d75737460448201527f2062652067726561746572207468616e206d696e696d756d207769746864726160648201527f77616c20616d6f756e7400000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b479050805f808282546106af9190610e07565b90915550506002546040805183815273ffffffffffffffffffffffffffffffffffffffff909216602083018190523383830152905190917fc8a211cc64b6ed1b50595a9fcb1932b6d1e5a6e8ef15b60e5b1f988ea9086bba919081900360600190a16002546040517f38e04cbeb8c10f8f568618aa75be0f10b6729b8b4237743b4de20cbcde2839ee916107649185918591339174010000000000000000000000000000000000000000900460ff1690610e3f565b60405180910390a1600160025474010000000000000000000000000000000000000000900460ff16600181111561079d5761079d610d05565b03610841575f6107ad8284610c23565b90508061083c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f4665655661756c743a206661696c656420746f2073656e642045544820746f2060448201527f4c322066656520726563697069656e74000000000000000000000000000000006064820152608401610693565b505090565b6040517fc2b3e5ac00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8216600482015262061a806024820152606060448201525f60648201527342000000000000000000000000000000000000169063c2b3e5ac9084906084015f604051808303818588803b1580156108d1575f80fd5b505af11580156108e3573d5f803e3d5ffd5b50505050505090565b73420000000000000000000000000000000000001873ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610949573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061096d9190610dd1565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146109d1576040517f7cd7e09f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600180549082905560408051828152602081018490527f895a067c78583e800418fabf3da26a9496aab2ff3429cebdf7fefa642b2e4203910161046e565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff165f81158015610a595750825b90505f8267ffffffffffffffff166001148015610a755750303b155b905081158015610a83575080155b15610aba576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001660011785558315610b1b5784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b6002805473ffffffffffffffffffffffffffffffffffffffff8a167fffffffffffffffffffffffff000000000000000000000000000000000000000082168117835560018a81558993927fffffffffffffffffffffff000000000000000000000000000000000000000000169091179074010000000000000000000000000000000000000000908490811115610bb357610bb3610d05565b02179055508315610c195784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050565b5f610c2f835a84610c36565b9392505050565b5f805f805f858888f1949350505050565b803560028110610c55575f80fd5b919050565b5f60208284031215610c6a575f80fd5b610c2f82610c47565b73ffffffffffffffffffffffffffffffffffffffff81168114610c94575f80fd5b50565b5f60208284031215610ca7575f80fd5b8135610c2f81610c73565b602081525f82518060208401528060208501604085015e5f6040828501015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011684010191505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b60028110610d67577f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b9052565b60208101610d798284610d32565b92915050565b5f60208284031215610d8f575f80fd5b5035919050565b5f805f60608486031215610da8575f80fd5b8335610db381610c73565b925060208401359150610dc860408501610c47565b90509250925092565b5f60208284031215610de1575f80fd5b8151610c2f81610c73565b60408101610dfa8285610d32565b610c2f6020830184610d32565b80820180821115610d79577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b84815273ffffffffffffffffffffffffffffffffffffffff84811660208301528316604082015260808101610e776060830184610d32565b9594505050505056fea164736f6c6343000819000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R`\x046\x10a\0\xD1W_5`\xE0\x1C\x80c\x825m\x8A\x11a\0|W\x80c\x85\xB5\xB1M\x11a\0WW\x80c\x85\xB5\xB1M\x14a\x02vW\x80c\xB4\x9D\xC7A\x14a\x02\x95W\x80c\xD0\xE1/\x90\x14a\x02\xB4W\x80c\xD3\xE5y+\x14a\x02\xE3W_\x80\xFD[\x80c\x825m\x8A\x14a\x02\x0FW\x80c\x83\x12\xF1I\x14a\x02MW\x80c\x84A\x1De\x14a\x02bW_\x80\xFD[\x80c<\xCF\xD6\x0B\x11a\0\xACW\x80c<\xCF\xD6\x0B\x14a\x01lW\x80cT\xFDMP\x14a\x01\x8EW\x80cf\xD0\x03\xAC\x14a\x01\xE3W_\x80\xFD[\x80c\r\x90\x19\xE1\x14a\0\xDCW\x80c0\x7F)b\x14a\x01,W\x80c;\xBE\xD4\xA0\x14a\x01MW_\x80\xFD[6a\0\xD8W\0[_\x80\xFD[4\x80\x15a\0\xE7W_\x80\xFD[P`\x02Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16[`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[4\x80\x15a\x017W_\x80\xFD[Pa\x01Ka\x01F6`\x04a\x0CZV[a\x02\xF7V[\0[4\x80\x15a\x01XW_\x80\xFD[Pa\x01Ka\x01g6`\x04a\x0C\x97V[a\x04zV[4\x80\x15a\x01wW_\x80\xFD[Pa\x01\x80a\x05\xDEV[`@Q\x90\x81R` \x01a\x01#V[4\x80\x15a\x01\x99W_\x80\xFD[Pa\x01\xD6`@Q\x80`@\x01`@R\x80`\x05\x81R` \x01\x7F1.1.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\x81RP\x81V[`@Qa\x01#\x91\x90a\x0C\xB2V[4\x80\x15a\x01\xEEW_\x80\xFD[P`\x02Ta\x01\x02\x90s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[4\x80\x15a\x02\x1AW_\x80\xFD[P`\x02Ta\x02@\x90t\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16\x81V[`@Qa\x01#\x91\x90a\rkV[4\x80\x15a\x02XW_\x80\xFD[Pa\x01\x80`\x01T\x81V[4\x80\x15a\x02mW_\x80\xFD[Pa\x01\x80_T\x81V[4\x80\x15a\x02\x81W_\x80\xFD[Pa\x01Ka\x02\x906`\x04a\r\x7FV[a\x08\xECV[4\x80\x15a\x02\xA0W_\x80\xFD[Pa\x01Ka\x02\xAF6`\x04a\r\x96V[a\n\x0FV[4\x80\x15a\x02\xBFW_\x80\xFD[P`\x02Tt\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16a\x02@V[4\x80\x15a\x02\xEEW_\x80\xFD[P`\x01Ta\x01\x80V[sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x18s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\x8D\xA5\xCB[`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x03TW=_\x80>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x03x\x91\x90a\r\xD1V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x163s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14a\x03\xDCW`@Q\x7F|\xD7\xE0\x9F\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\x01`@Q\x80\x91\x03\x90\xFD[`\x02\x80Tt\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x80\x82\x04`\xFF\x16\x92\x84\x92\x90\x91\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x90\x83`\x01\x81\x11\x15a\x048Wa\x048a\r\x05V[\x02\x17\x90UP\x7F\xF2\xECD\xEB\x1C;:\xCDT{v3>\xB2\xC4\xB2~\xEE1\x18`\xC5z\x9F\xDB\x04\xC9_b9\x8F\xC8\x81\x83`@Qa\x04n\x92\x91\x90a\r\xECV[`@Q\x80\x91\x03\x90\xA1PPV[sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x18s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\x8D\xA5\xCB[`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x04\xD7W=_\x80>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x04\xFB\x91\x90a\r\xD1V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x163s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14a\x05_W`@Q\x7F|\xD7\xE0\x9F\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\x01`@Q\x80\x91\x03\x90\xFD[`\x02\x80Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x81\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x83\x16\x81\x17\x90\x93U`@\x80Q\x91\x90\x92\x16\x80\x82R` \x82\x01\x93\x90\x93R\x7Fb\xE6\x98\x86\xA5\xDF\x0B\xA8\xFF\xCA\xCB\xFC\x13\x88uNz\xBD\x9B\xDE$\xB065LV\x1F\x1A\xCDNE\x93\x91\x01a\x04nV[_`\x01TG\x10\x15a\x06\x9CW`@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\x82\x01R`J`$\x82\x01R\x7FFeeVault: withdrawal amount must`D\x82\x01R\x7F be greater than minimum withdra`d\x82\x01R\x7Fwal amount\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x84\x82\x01R`\xA4\x01[`@Q\x80\x91\x03\x90\xFD[G\x90P\x80_\x80\x82\x82Ta\x06\xAF\x91\x90a\x0E\x07V[\x90\x91UPP`\x02T`@\x80Q\x83\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x92\x16` \x83\x01\x81\x90R3\x83\x83\x01R\x90Q\x90\x91\x7F\xC8\xA2\x11\xCCd\xB6\xED\x1BPYZ\x9F\xCB\x192\xB6\xD1\xE5\xA6\xE8\xEF\x15\xB6\x0E[\x1F\x98\x8E\xA9\x08k\xBA\x91\x90\x81\x90\x03``\x01\x90\xA1`\x02T`@Q\x7F8\xE0L\xBE\xB8\xC1\x0F\x8FV\x86\x18\xAAu\xBE\x0F\x10\xB6r\x9B\x8BB7t;M\xE2\x0C\xBC\xDE(9\xEE\x91a\x07d\x91\x85\x91\x85\x913\x91t\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16\x90a\x0E?V[`@Q\x80\x91\x03\x90\xA1`\x01`\x02Tt\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16`\x01\x81\x11\x15a\x07\x9DWa\x07\x9Da\r\x05V[\x03a\x08AW_a\x07\xAD\x82\x84a\x0C#V[\x90P\x80a\x08=_\xFD[PPPPPP\x90V[sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x18s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\x8D\xA5\xCB[`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\tIW=_\x80>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\tm\x91\x90a\r\xD1V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x163s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14a\t\xD1W`@Q\x7F|\xD7\xE0\x9F\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01\x80T\x90\x82\x90U`@\x80Q\x82\x81R` \x81\x01\x84\x90R\x7F\x89Z\x06|xX>\x80\x04\x18\xFA\xBF=\xA2j\x94\x96\xAA\xB2\xFF4)\xCE\xBD\xF7\xFE\xFAd+.B\x03\x91\x01a\x04nV[\x7F\xF0\xC5~\x16\x84\r\xF0@\xF1P\x88\xDC/\x81\xFE9\x1C9#\xBE\xC7>#\xA9f.\xFC\x9C\"\x9Cj\0\x80Th\x01\0\0\0\0\0\0\0\0\x81\x04`\xFF\x16\x15\x90g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16_\x81\x15\x80\x15a\nYWP\x82[\x90P_\x82g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\x01\x14\x80\x15a\nuWP0;\x15[\x90P\x81\x15\x80\x15a\n\x83WP\x80\x15[\x15a\n\xBAW`@Q\x7F\xF9.\xE8\xA9\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\x01`@Q\x80\x91\x03\x90\xFD[\x84T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\x16`\x01\x17\x85U\x83\x15a\x0B\x1BW\x84T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16h\x01\0\0\0\0\0\0\0\0\x17\x85U[`\x02\x80Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x8A\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x82\x16\x81\x17\x83U`\x01\x8A\x81U\x89\x93\x92\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x90\x91\x17\x90t\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x84\x90\x81\x11\x15a\x0B\xB3Wa\x0B\xB3a\r\x05V[\x02\x17\x90UP\x83\x15a\x0C\x19W\x84T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x85U`@Q`\x01\x81R\x7F\xC7\xF5\x05\xB2\xF3q\xAE!u\xEEI\x13\xF4I\x9E\x1F&3\xA7\xB5\x93c!\xEE\xD1\xCD\xAE\xB6\x11Q\x81\xD2\x90` \x01`@Q\x80\x91\x03\x90\xA1[PPPPPPPPV[_a\x0C/\x83Z\x84a\x0C6V[\x93\x92PPPV[_\x80_\x80_\x85\x88\x88\xF1\x94\x93PPPPV[\x805`\x02\x81\x10a\x0CUW_\x80\xFD[\x91\x90PV[_` \x82\x84\x03\x12\x15a\x0CjW_\x80\xFD[a\x0C/\x82a\x0CGV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x0C\x94W_\x80\xFD[PV[_` \x82\x84\x03\x12\x15a\x0C\xA7W_\x80\xFD[\x815a\x0C/\x81a\x0CsV[` \x81R_\x82Q\x80` \x84\x01R\x80` \x85\x01`@\x85\x01^_`@\x82\x85\x01\x01R`@\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0`\x1F\x83\x01\x16\x84\x01\x01\x91PP\x92\x91PPV[\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_R`!`\x04R`$_\xFD[`\x02\x81\x10a\rgW\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_R`!`\x04R`$_\xFD[\x90RV[` \x81\x01a\ry\x82\x84a\r2V[\x92\x91PPV[_` \x82\x84\x03\x12\x15a\r\x8FW_\x80\xFD[P5\x91\x90PV[_\x80_``\x84\x86\x03\x12\x15a\r\xA8W_\x80\xFD[\x835a\r\xB3\x81a\x0CsV[\x92P` \x84\x015\x91Pa\r\xC8`@\x85\x01a\x0CGV[\x90P\x92P\x92P\x92V[_` \x82\x84\x03\x12\x15a\r\xE1W_\x80\xFD[\x81Qa\x0C/\x81a\x0CsV[`@\x81\x01a\r\xFA\x82\x85a\r2V[a\x0C/` \x83\x01\x84a\r2V[\x80\x82\x01\x80\x82\x11\x15a\ryW\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_R`\x11`\x04R`$_\xFD[\x84\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x81\x16` \x83\x01R\x83\x16`@\x82\x01R`\x80\x81\x01a\x0Ew``\x83\x01\x84a\r2V[\x95\x94PPPPPV\xFE\xA1dsolcC\0\x08\x19\0\n", + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `FeeVault_OnlyProxyAdminOwner()` and selector `0x7cd7e09f`. +```solidity +error FeeVault_OnlyProxyAdminOwner(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct FeeVault_OnlyProxyAdminOwner; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: FeeVault_OnlyProxyAdminOwner) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for FeeVault_OnlyProxyAdminOwner { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for FeeVault_OnlyProxyAdminOwner { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "FeeVault_OnlyProxyAdminOwner()"; + const SELECTOR: [u8; 4] = [124u8, 215u8, 224u8, 159u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidInitialization()` and selector `0xf92ee8a9`. +```solidity +error InvalidInitialization(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidInitialization; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InvalidInitialization) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InvalidInitialization { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidInitialization { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidInitialization()"; + const SELECTOR: [u8; 4] = [249u8, 46u8, 232u8, 169u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `NotInitializing()` and selector `0xd7e6bcf8`. +```solidity +error NotInitializing(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct NotInitializing; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: NotInitializing) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for NotInitializing { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for NotInitializing { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "NotInitializing()"; + const SELECTOR: [u8; 4] = [215u8, 230u8, 188u8, 248u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `Initialized(uint64)` and selector `0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2`. +```solidity +event Initialized(uint64 version); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct Initialized { + #[allow(missing_docs)] + pub version: u64, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for Initialized { + type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,); + const SIGNATURE: &'static str = "Initialized(uint64)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 199u8, 245u8, 5u8, 178u8, 243u8, 113u8, 174u8, 33u8, 117u8, 238u8, 73u8, + 19u8, 244u8, 73u8, 158u8, 31u8, 38u8, 51u8, 167u8, 181u8, 147u8, 99u8, + 33u8, 238u8, 209u8, 205u8, 174u8, 182u8, 17u8, 81u8, 129u8, 210u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { version: data.0 } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.version), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(),) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for Initialized { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&Initialized> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &Initialized) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `MinWithdrawalAmountUpdated(uint256,uint256)` and selector `0x895a067c78583e800418fabf3da26a9496aab2ff3429cebdf7fefa642b2e4203`. +```solidity +event MinWithdrawalAmountUpdated(uint256 oldWithdrawalAmount, uint256 newWithdrawalAmount); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct MinWithdrawalAmountUpdated { + #[allow(missing_docs)] + pub oldWithdrawalAmount: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub newWithdrawalAmount: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for MinWithdrawalAmountUpdated { + type DataTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + ); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,); + const SIGNATURE: &'static str = "MinWithdrawalAmountUpdated(uint256,uint256)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 137u8, 90u8, 6u8, 124u8, 120u8, 88u8, 62u8, 128u8, 4u8, 24u8, 250u8, + 191u8, 61u8, 162u8, 106u8, 148u8, 150u8, 170u8, 178u8, 255u8, 52u8, 41u8, + 206u8, 189u8, 247u8, 254u8, 250u8, 100u8, 43u8, 46u8, 66u8, 3u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + oldWithdrawalAmount: data.0, + newWithdrawalAmount: data.1, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.oldWithdrawalAmount), + as alloy_sol_types::SolType>::tokenize(&self.newWithdrawalAmount), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(),) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for MinWithdrawalAmountUpdated { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&MinWithdrawalAmountUpdated> for alloy_sol_types::private::LogData { + #[inline] + fn from( + this: &MinWithdrawalAmountUpdated, + ) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `RecipientUpdated(address,address)` and selector `0x62e69886a5df0ba8ffcacbfc1388754e7abd9bde24b036354c561f1acd4e4593`. +```solidity +event RecipientUpdated(address oldRecipient, address newRecipient); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct RecipientUpdated { + #[allow(missing_docs)] + pub oldRecipient: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub newRecipient: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for RecipientUpdated { + type DataTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,); + const SIGNATURE: &'static str = "RecipientUpdated(address,address)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 98u8, 230u8, 152u8, 134u8, 165u8, 223u8, 11u8, 168u8, 255u8, 202u8, + 203u8, 252u8, 19u8, 136u8, 117u8, 78u8, 122u8, 189u8, 155u8, 222u8, 36u8, + 176u8, 54u8, 53u8, 76u8, 86u8, 31u8, 26u8, 205u8, 78u8, 69u8, 147u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + oldRecipient: data.0, + newRecipient: data.1, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + ::tokenize( + &self.oldRecipient, + ), + ::tokenize( + &self.newRecipient, + ), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(),) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for RecipientUpdated { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&RecipientUpdated> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &RecipientUpdated) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `Withdrawal(uint256,address,address)` and selector `0xc8a211cc64b6ed1b50595a9fcb1932b6d1e5a6e8ef15b60e5b1f988ea9086bba`. +```solidity +event Withdrawal(uint256 value, address to, address from); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct Withdrawal_0 { + #[allow(missing_docs)] + pub value: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub from: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for Withdrawal_0 { + type DataTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,); + const SIGNATURE: &'static str = "Withdrawal(uint256,address,address)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 200u8, 162u8, 17u8, 204u8, 100u8, 182u8, 237u8, 27u8, 80u8, 89u8, 90u8, + 159u8, 203u8, 25u8, 50u8, 182u8, 209u8, 229u8, 166u8, 232u8, 239u8, 21u8, + 182u8, 14u8, 91u8, 31u8, 152u8, 142u8, 169u8, 8u8, 107u8, 186u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + value: data.0, + to: data.1, + from: data.2, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.value), + ::tokenize( + &self.to, + ), + ::tokenize( + &self.from, + ), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(),) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for Withdrawal_0 { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&Withdrawal_0> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &Withdrawal_0) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `Withdrawal(uint256,address,address,uint8)` and selector `0x38e04cbeb8c10f8f568618aa75be0f10b6729b8b4237743b4de20cbcde2839ee`. +```solidity +event Withdrawal(uint256 value, address to, address from, Types.WithdrawalNetwork withdrawalNetwork); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct Withdrawal_1 { + #[allow(missing_docs)] + pub value: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub from: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub withdrawalNetwork: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for Withdrawal_1 { + type DataTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + Types::WithdrawalNetwork, + ); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,); + const SIGNATURE: &'static str = "Withdrawal(uint256,address,address,uint8)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 56u8, 224u8, 76u8, 190u8, 184u8, 193u8, 15u8, 143u8, 86u8, 134u8, 24u8, + 170u8, 117u8, 190u8, 15u8, 16u8, 182u8, 114u8, 155u8, 139u8, 66u8, 55u8, + 116u8, 59u8, 77u8, 226u8, 12u8, 188u8, 222u8, 40u8, 57u8, 238u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + value: data.0, + to: data.1, + from: data.2, + withdrawalNetwork: data.3, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.value), + ::tokenize( + &self.to, + ), + ::tokenize( + &self.from, + ), + ::tokenize( + &self.withdrawalNetwork, + ), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(),) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for Withdrawal_1 { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&Withdrawal_1> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &Withdrawal_1) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `WithdrawalNetworkUpdated(uint8,uint8)` and selector `0xf2ec44eb1c3b3acd547b76333eb2c4b27eee311860c57a9fdb04c95f62398fc8`. +```solidity +event WithdrawalNetworkUpdated(Types.WithdrawalNetwork oldWithdrawalNetwork, Types.WithdrawalNetwork newWithdrawalNetwork); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct WithdrawalNetworkUpdated { + #[allow(missing_docs)] + pub oldWithdrawalNetwork: ::RustType, + #[allow(missing_docs)] + pub newWithdrawalNetwork: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for WithdrawalNetworkUpdated { + type DataTuple<'a> = (Types::WithdrawalNetwork, Types::WithdrawalNetwork); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,); + const SIGNATURE: &'static str = "WithdrawalNetworkUpdated(uint8,uint8)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 242u8, 236u8, 68u8, 235u8, 28u8, 59u8, 58u8, 205u8, 84u8, 123u8, 118u8, + 51u8, 62u8, 178u8, 196u8, 178u8, 126u8, 238u8, 49u8, 24u8, 96u8, 197u8, + 122u8, 159u8, 219u8, 4u8, 201u8, 95u8, 98u8, 57u8, 143u8, 200u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + oldWithdrawalNetwork: data.0, + newWithdrawalNetwork: data.1, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + ::tokenize( + &self.oldWithdrawalNetwork, + ), + ::tokenize( + &self.newWithdrawalNetwork, + ), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(),) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for WithdrawalNetworkUpdated { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&WithdrawalNetworkUpdated> for alloy_sol_types::private::LogData { + #[inline] + fn from( + this: &WithdrawalNetworkUpdated, + ) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `MIN_WITHDRAWAL_AMOUNT()` and selector `0xd3e5792b`. +```solidity +function MIN_WITHDRAWAL_AMOUNT() external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct MIN_WITHDRAWAL_AMOUNTCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`MIN_WITHDRAWAL_AMOUNT()`](MIN_WITHDRAWAL_AMOUNTCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct MIN_WITHDRAWAL_AMOUNTReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: MIN_WITHDRAWAL_AMOUNTCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for MIN_WITHDRAWAL_AMOUNTCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: MIN_WITHDRAWAL_AMOUNTReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for MIN_WITHDRAWAL_AMOUNTReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for MIN_WITHDRAWAL_AMOUNTCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "MIN_WITHDRAWAL_AMOUNT()"; + const SELECTOR: [u8; 4] = [211u8, 229u8, 121u8, 43u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: MIN_WITHDRAWAL_AMOUNTReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: MIN_WITHDRAWAL_AMOUNTReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `RECIPIENT()` and selector `0x0d9019e1`. +```solidity +function RECIPIENT() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct RECIPIENTCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`RECIPIENT()`](RECIPIENTCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct RECIPIENTReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: RECIPIENTCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for RECIPIENTCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: RECIPIENTReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for RECIPIENTReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for RECIPIENTCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "RECIPIENT()"; + const SELECTOR: [u8; 4] = [13u8, 144u8, 25u8, 225u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: RECIPIENTReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: RECIPIENTReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `WITHDRAWAL_NETWORK()` and selector `0xd0e12f90`. +```solidity +function WITHDRAWAL_NETWORK() external view returns (Types.WithdrawalNetwork); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct WITHDRAWAL_NETWORKCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`WITHDRAWAL_NETWORK()`](WITHDRAWAL_NETWORKCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct WITHDRAWAL_NETWORKReturn { + #[allow(missing_docs)] + pub _0: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: WITHDRAWAL_NETWORKCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for WITHDRAWAL_NETWORKCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Types::WithdrawalNetwork,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: WITHDRAWAL_NETWORKReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for WITHDRAWAL_NETWORKReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for WITHDRAWAL_NETWORKCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (Types::WithdrawalNetwork,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "WITHDRAWAL_NETWORK()"; + const SELECTOR: [u8; 4] = [208u8, 225u8, 47u8, 144u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: WITHDRAWAL_NETWORKReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: WITHDRAWAL_NETWORKReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `initialize(address,uint256,uint8)` and selector `0xb49dc741`. +```solidity +function initialize(address _recipient, uint256 _minWithdrawalAmount, Types.WithdrawalNetwork _withdrawalNetwork) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct initializeCall { + #[allow(missing_docs)] + pub _recipient: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _minWithdrawalAmount: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _withdrawalNetwork: ::RustType, + } + ///Container type for the return parameters of the [`initialize(address,uint256,uint8)`](initializeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct initializeReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + Types::WithdrawalNetwork, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: initializeCall) -> Self { + ( + value._recipient, + value._minWithdrawalAmount, + value._withdrawalNetwork, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for initializeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _recipient: tuple.0, + _minWithdrawalAmount: tuple.1, + _withdrawalNetwork: tuple.2, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: initializeReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for initializeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl initializeReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for initializeCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + Types::WithdrawalNetwork, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = initializeReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "initialize(address,uint256,uint8)"; + const SELECTOR: [u8; 4] = [180u8, 157u8, 199u8, 65u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._recipient, + ), + as alloy_sol_types::SolType>::tokenize(&self._minWithdrawalAmount), + ::tokenize( + &self._withdrawalNetwork, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + initializeReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `minWithdrawalAmount()` and selector `0x8312f149`. +```solidity +function minWithdrawalAmount() external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct minWithdrawalAmountCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`minWithdrawalAmount()`](minWithdrawalAmountCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct minWithdrawalAmountReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: minWithdrawalAmountCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for minWithdrawalAmountCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: minWithdrawalAmountReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for minWithdrawalAmountReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for minWithdrawalAmountCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "minWithdrawalAmount()"; + const SELECTOR: [u8; 4] = [131u8, 18u8, 241u8, 73u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: minWithdrawalAmountReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: minWithdrawalAmountReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `recipient()` and selector `0x66d003ac`. +```solidity +function recipient() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct recipientCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`recipient()`](recipientCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct recipientReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: recipientCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for recipientCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: recipientReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for recipientReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for recipientCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "recipient()"; + const SELECTOR: [u8; 4] = [102u8, 208u8, 3u8, 172u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: recipientReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: recipientReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `setMinWithdrawalAmount(uint256)` and selector `0x85b5b14d`. +```solidity +function setMinWithdrawalAmount(uint256 _newMinWithdrawalAmount) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setMinWithdrawalAmountCall { + #[allow(missing_docs)] + pub _newMinWithdrawalAmount: alloy::sol_types::private::primitives::aliases::U256, + } + ///Container type for the return parameters of the [`setMinWithdrawalAmount(uint256)`](setMinWithdrawalAmountCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setMinWithdrawalAmountReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: setMinWithdrawalAmountCall) -> Self { + (value._newMinWithdrawalAmount,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for setMinWithdrawalAmountCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _newMinWithdrawalAmount: tuple.0, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: setMinWithdrawalAmountReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for setMinWithdrawalAmountReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl setMinWithdrawalAmountReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken< + '_, + > { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for setMinWithdrawalAmountCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = setMinWithdrawalAmountReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "setMinWithdrawalAmount(uint256)"; + const SELECTOR: [u8; 4] = [133u8, 181u8, 177u8, 77u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize( + &self._newMinWithdrawalAmount, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + setMinWithdrawalAmountReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `setRecipient(address)` and selector `0x3bbed4a0`. +```solidity +function setRecipient(address _newRecipient) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setRecipientCall { + #[allow(missing_docs)] + pub _newRecipient: alloy::sol_types::private::Address, + } + ///Container type for the return parameters of the [`setRecipient(address)`](setRecipientCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setRecipientReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: setRecipientCall) -> Self { + (value._newRecipient,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for setRecipientCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _newRecipient: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: setRecipientReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for setRecipientReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl setRecipientReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for setRecipientCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = setRecipientReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "setRecipient(address)"; + const SELECTOR: [u8; 4] = [59u8, 190u8, 212u8, 160u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._newRecipient, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + setRecipientReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `setWithdrawalNetwork(uint8)` and selector `0x307f2962`. +```solidity +function setWithdrawalNetwork(Types.WithdrawalNetwork _newWithdrawalNetwork) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setWithdrawalNetworkCall { + #[allow(missing_docs)] + pub _newWithdrawalNetwork: ::RustType, + } + ///Container type for the return parameters of the [`setWithdrawalNetwork(uint8)`](setWithdrawalNetworkCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setWithdrawalNetworkReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Types::WithdrawalNetwork,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: setWithdrawalNetworkCall) -> Self { + (value._newWithdrawalNetwork,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for setWithdrawalNetworkCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _newWithdrawalNetwork: tuple.0, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: setWithdrawalNetworkReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for setWithdrawalNetworkReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl setWithdrawalNetworkReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken< + '_, + > { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for setWithdrawalNetworkCall { + type Parameters<'a> = (Types::WithdrawalNetwork,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = setWithdrawalNetworkReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "setWithdrawalNetwork(uint8)"; + const SELECTOR: [u8; 4] = [48u8, 127u8, 41u8, 98u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._newWithdrawalNetwork, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + setWithdrawalNetworkReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `totalProcessed()` and selector `0x84411d65`. +```solidity +function totalProcessed() external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct totalProcessedCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`totalProcessed()`](totalProcessedCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct totalProcessedReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: totalProcessedCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for totalProcessedCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: totalProcessedReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for totalProcessedReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for totalProcessedCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "totalProcessed()"; + const SELECTOR: [u8; 4] = [132u8, 65u8, 29u8, 101u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: totalProcessedReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: totalProcessedReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `version()` and selector `0x54fd4d50`. +```solidity +function version() external view returns (string memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`version()`](versionCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for versionCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::String; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "version()"; + const SELECTOR: [u8; 4] = [84u8, 253u8, 77u8, 80u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `withdraw()` and selector `0x3ccfd60b`. +```solidity +function withdraw() external returns (uint256 value_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct withdrawCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`withdraw()`](withdrawCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct withdrawReturn { + #[allow(missing_docs)] + pub value_: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: withdrawCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for withdrawCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: withdrawReturn) -> Self { + (value.value_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for withdrawReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { value_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for withdrawCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "withdraw()"; + const SELECTOR: [u8; 4] = [60u8, 207u8, 214u8, 11u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: withdrawReturn = r.into(); + r.value_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: withdrawReturn = r.into(); + r.value_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `withdrawalNetwork()` and selector `0x82356d8a`. +```solidity +function withdrawalNetwork() external view returns (Types.WithdrawalNetwork); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct withdrawalNetworkCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`withdrawalNetwork()`](withdrawalNetworkCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct withdrawalNetworkReturn { + #[allow(missing_docs)] + pub _0: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: withdrawalNetworkCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for withdrawalNetworkCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Types::WithdrawalNetwork,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: withdrawalNetworkReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for withdrawalNetworkReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for withdrawalNetworkCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (Types::WithdrawalNetwork,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "withdrawalNetwork()"; + const SELECTOR: [u8; 4] = [130u8, 53u8, 109u8, 138u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: withdrawalNetworkReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: withdrawalNetworkReturn = r.into(); + r._0 + }) + } + } + }; + ///Container for all the [`OperatorFeeVault`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum OperatorFeeVaultCalls { + #[allow(missing_docs)] + MIN_WITHDRAWAL_AMOUNT(MIN_WITHDRAWAL_AMOUNTCall), + #[allow(missing_docs)] + RECIPIENT(RECIPIENTCall), + #[allow(missing_docs)] + WITHDRAWAL_NETWORK(WITHDRAWAL_NETWORKCall), + #[allow(missing_docs)] + initialize(initializeCall), + #[allow(missing_docs)] + minWithdrawalAmount(minWithdrawalAmountCall), + #[allow(missing_docs)] + recipient(recipientCall), + #[allow(missing_docs)] + setMinWithdrawalAmount(setMinWithdrawalAmountCall), + #[allow(missing_docs)] + setRecipient(setRecipientCall), + #[allow(missing_docs)] + setWithdrawalNetwork(setWithdrawalNetworkCall), + #[allow(missing_docs)] + totalProcessed(totalProcessedCall), + #[allow(missing_docs)] + version(versionCall), + #[allow(missing_docs)] + withdraw(withdrawCall), + #[allow(missing_docs)] + withdrawalNetwork(withdrawalNetworkCall), + } + impl OperatorFeeVaultCalls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [13u8, 144u8, 25u8, 225u8], + [48u8, 127u8, 41u8, 98u8], + [59u8, 190u8, 212u8, 160u8], + [60u8, 207u8, 214u8, 11u8], + [84u8, 253u8, 77u8, 80u8], + [102u8, 208u8, 3u8, 172u8], + [130u8, 53u8, 109u8, 138u8], + [131u8, 18u8, 241u8, 73u8], + [132u8, 65u8, 29u8, 101u8], + [133u8, 181u8, 177u8, 77u8], + [180u8, 157u8, 199u8, 65u8], + [208u8, 225u8, 47u8, 144u8], + [211u8, 229u8, 121u8, 43u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(RECIPIENT), + ::core::stringify!(setWithdrawalNetwork), + ::core::stringify!(setRecipient), + ::core::stringify!(withdraw), + ::core::stringify!(version), + ::core::stringify!(recipient), + ::core::stringify!(withdrawalNetwork), + ::core::stringify!(minWithdrawalAmount), + ::core::stringify!(totalProcessed), + ::core::stringify!(setMinWithdrawalAmount), + ::core::stringify!(initialize), + ::core::stringify!(WITHDRAWAL_NETWORK), + ::core::stringify!(MIN_WITHDRAWAL_AMOUNT), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for OperatorFeeVaultCalls { + const NAME: &'static str = "OperatorFeeVaultCalls"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 13usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::MIN_WITHDRAWAL_AMOUNT(_) => { + ::SELECTOR + } + Self::RECIPIENT(_) => { + ::SELECTOR + } + Self::WITHDRAWAL_NETWORK(_) => { + ::SELECTOR + } + Self::initialize(_) => { + ::SELECTOR + } + Self::minWithdrawalAmount(_) => { + ::SELECTOR + } + Self::recipient(_) => { + ::SELECTOR + } + Self::setMinWithdrawalAmount(_) => { + ::SELECTOR + } + Self::setRecipient(_) => { + ::SELECTOR + } + Self::setWithdrawalNetwork(_) => { + ::SELECTOR + } + Self::totalProcessed(_) => { + ::SELECTOR + } + Self::version(_) => ::SELECTOR, + Self::withdraw(_) => ::SELECTOR, + Self::withdrawalNetwork(_) => { + ::SELECTOR + } + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn RECIPIENT( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(OperatorFeeVaultCalls::RECIPIENT) + } + RECIPIENT + }, + { + fn setWithdrawalNetwork( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OperatorFeeVaultCalls::setWithdrawalNetwork) + } + setWithdrawalNetwork + }, + { + fn setRecipient( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OperatorFeeVaultCalls::setRecipient) + } + setRecipient + }, + { + fn withdraw( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(OperatorFeeVaultCalls::withdraw) + } + withdraw + }, + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(OperatorFeeVaultCalls::version) + } + version + }, + { + fn recipient( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(OperatorFeeVaultCalls::recipient) + } + recipient + }, + { + fn withdrawalNetwork( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OperatorFeeVaultCalls::withdrawalNetwork) + } + withdrawalNetwork + }, + { + fn minWithdrawalAmount( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OperatorFeeVaultCalls::minWithdrawalAmount) + } + minWithdrawalAmount + }, + { + fn totalProcessed( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OperatorFeeVaultCalls::totalProcessed) + } + totalProcessed + }, + { + fn setMinWithdrawalAmount( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OperatorFeeVaultCalls::setMinWithdrawalAmount) + } + setMinWithdrawalAmount + }, + { + fn initialize( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OperatorFeeVaultCalls::initialize) + } + initialize + }, + { + fn WITHDRAWAL_NETWORK( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OperatorFeeVaultCalls::WITHDRAWAL_NETWORK) + } + WITHDRAWAL_NETWORK + }, + { + fn MIN_WITHDRAWAL_AMOUNT( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OperatorFeeVaultCalls::MIN_WITHDRAWAL_AMOUNT) + } + MIN_WITHDRAWAL_AMOUNT + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn RECIPIENT( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OperatorFeeVaultCalls::RECIPIENT) + } + RECIPIENT + }, + { + fn setWithdrawalNetwork( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OperatorFeeVaultCalls::setWithdrawalNetwork) + } + setWithdrawalNetwork + }, + { + fn setRecipient( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OperatorFeeVaultCalls::setRecipient) + } + setRecipient + }, + { + fn withdraw( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OperatorFeeVaultCalls::withdraw) + } + withdraw + }, + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OperatorFeeVaultCalls::version) + } + version + }, + { + fn recipient( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OperatorFeeVaultCalls::recipient) + } + recipient + }, + { + fn withdrawalNetwork( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OperatorFeeVaultCalls::withdrawalNetwork) + } + withdrawalNetwork + }, + { + fn minWithdrawalAmount( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OperatorFeeVaultCalls::minWithdrawalAmount) + } + minWithdrawalAmount + }, + { + fn totalProcessed( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OperatorFeeVaultCalls::totalProcessed) + } + totalProcessed + }, + { + fn setMinWithdrawalAmount( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OperatorFeeVaultCalls::setMinWithdrawalAmount) + } + setMinWithdrawalAmount + }, + { + fn initialize( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OperatorFeeVaultCalls::initialize) + } + initialize + }, + { + fn WITHDRAWAL_NETWORK( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OperatorFeeVaultCalls::WITHDRAWAL_NETWORK) + } + WITHDRAWAL_NETWORK + }, + { + fn MIN_WITHDRAWAL_AMOUNT( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OperatorFeeVaultCalls::MIN_WITHDRAWAL_AMOUNT) + } + MIN_WITHDRAWAL_AMOUNT + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::MIN_WITHDRAWAL_AMOUNT(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::RECIPIENT(inner) => { + ::abi_encoded_size(inner) + } + Self::WITHDRAWAL_NETWORK(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::initialize(inner) => { + ::abi_encoded_size(inner) + } + Self::minWithdrawalAmount(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::recipient(inner) => { + ::abi_encoded_size(inner) + } + Self::setMinWithdrawalAmount(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::setRecipient(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::setWithdrawalNetwork(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::totalProcessed(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::version(inner) => { + ::abi_encoded_size(inner) + } + Self::withdraw(inner) => { + ::abi_encoded_size(inner) + } + Self::withdrawalNetwork(inner) => { + ::abi_encoded_size( + inner, + ) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::MIN_WITHDRAWAL_AMOUNT(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::RECIPIENT(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::WITHDRAWAL_NETWORK(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::initialize(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::minWithdrawalAmount(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::recipient(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::setMinWithdrawalAmount(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::setRecipient(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::setWithdrawalNetwork(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::totalProcessed(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::version(inner) => { + ::abi_encode_raw(inner, out) + } + Self::withdraw(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::withdrawalNetwork(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + } + } + } + ///Container for all the [`OperatorFeeVault`](self) custom errors. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum OperatorFeeVaultErrors { + #[allow(missing_docs)] + FeeVault_OnlyProxyAdminOwner(FeeVault_OnlyProxyAdminOwner), + #[allow(missing_docs)] + InvalidInitialization(InvalidInitialization), + #[allow(missing_docs)] + NotInitializing(NotInitializing), + } + impl OperatorFeeVaultErrors { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [124u8, 215u8, 224u8, 159u8], + [215u8, 230u8, 188u8, 248u8], + [249u8, 46u8, 232u8, 169u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(FeeVault_OnlyProxyAdminOwner), + ::core::stringify!(NotInitializing), + ::core::stringify!(InvalidInitialization), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for OperatorFeeVaultErrors { + const NAME: &'static str = "OperatorFeeVaultErrors"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 3usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::FeeVault_OnlyProxyAdminOwner(_) => { + ::SELECTOR + } + Self::InvalidInitialization(_) => { + ::SELECTOR + } + Self::NotInitializing(_) => { + ::SELECTOR + } + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn FeeVault_OnlyProxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OperatorFeeVaultErrors::FeeVault_OnlyProxyAdminOwner) + } + FeeVault_OnlyProxyAdminOwner + }, + { + fn NotInitializing( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OperatorFeeVaultErrors::NotInitializing) + } + NotInitializing + }, + { + fn InvalidInitialization( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OperatorFeeVaultErrors::InvalidInitialization) + } + InvalidInitialization + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn FeeVault_OnlyProxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OperatorFeeVaultErrors::FeeVault_OnlyProxyAdminOwner) + } + FeeVault_OnlyProxyAdminOwner + }, + { + fn NotInitializing( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OperatorFeeVaultErrors::NotInitializing) + } + NotInitializing + }, + { + fn InvalidInitialization( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OperatorFeeVaultErrors::InvalidInitialization) + } + InvalidInitialization + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::FeeVault_OnlyProxyAdminOwner(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::InvalidInitialization(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::NotInitializing(inner) => { + ::abi_encoded_size( + inner, + ) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::FeeVault_OnlyProxyAdminOwner(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidInitialization(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::NotInitializing(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + } + } + } + ///Container for all the [`OperatorFeeVault`](self) events. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum OperatorFeeVaultEvents { + #[allow(missing_docs)] + Initialized(Initialized), + #[allow(missing_docs)] + MinWithdrawalAmountUpdated(MinWithdrawalAmountUpdated), + #[allow(missing_docs)] + RecipientUpdated(RecipientUpdated), + #[allow(missing_docs)] + Withdrawal_0(Withdrawal_0), + #[allow(missing_docs)] + Withdrawal_1(Withdrawal_1), + #[allow(missing_docs)] + WithdrawalNetworkUpdated(WithdrawalNetworkUpdated), + } + impl OperatorFeeVaultEvents { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 32usize]] = &[ + [ + 56u8, 224u8, 76u8, 190u8, 184u8, 193u8, 15u8, 143u8, 86u8, 134u8, 24u8, + 170u8, 117u8, 190u8, 15u8, 16u8, 182u8, 114u8, 155u8, 139u8, 66u8, 55u8, + 116u8, 59u8, 77u8, 226u8, 12u8, 188u8, 222u8, 40u8, 57u8, 238u8, + ], + [ + 98u8, 230u8, 152u8, 134u8, 165u8, 223u8, 11u8, 168u8, 255u8, 202u8, + 203u8, 252u8, 19u8, 136u8, 117u8, 78u8, 122u8, 189u8, 155u8, 222u8, 36u8, + 176u8, 54u8, 53u8, 76u8, 86u8, 31u8, 26u8, 205u8, 78u8, 69u8, 147u8, + ], + [ + 137u8, 90u8, 6u8, 124u8, 120u8, 88u8, 62u8, 128u8, 4u8, 24u8, 250u8, + 191u8, 61u8, 162u8, 106u8, 148u8, 150u8, 170u8, 178u8, 255u8, 52u8, 41u8, + 206u8, 189u8, 247u8, 254u8, 250u8, 100u8, 43u8, 46u8, 66u8, 3u8, + ], + [ + 199u8, 245u8, 5u8, 178u8, 243u8, 113u8, 174u8, 33u8, 117u8, 238u8, 73u8, + 19u8, 244u8, 73u8, 158u8, 31u8, 38u8, 51u8, 167u8, 181u8, 147u8, 99u8, + 33u8, 238u8, 209u8, 205u8, 174u8, 182u8, 17u8, 81u8, 129u8, 210u8, + ], + [ + 200u8, 162u8, 17u8, 204u8, 100u8, 182u8, 237u8, 27u8, 80u8, 89u8, 90u8, + 159u8, 203u8, 25u8, 50u8, 182u8, 209u8, 229u8, 166u8, 232u8, 239u8, 21u8, + 182u8, 14u8, 91u8, 31u8, 152u8, 142u8, 169u8, 8u8, 107u8, 186u8, + ], + [ + 242u8, 236u8, 68u8, 235u8, 28u8, 59u8, 58u8, 205u8, 84u8, 123u8, 118u8, + 51u8, 62u8, 178u8, 196u8, 178u8, 126u8, 238u8, 49u8, 24u8, 96u8, 197u8, + 122u8, 159u8, 219u8, 4u8, 201u8, 95u8, 98u8, 57u8, 143u8, 200u8, + ], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(Withdrawal_1), + ::core::stringify!(RecipientUpdated), + ::core::stringify!(MinWithdrawalAmountUpdated), + ::core::stringify!(Initialized), + ::core::stringify!(Withdrawal_0), + ::core::stringify!(WithdrawalNetworkUpdated), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolEventInterface for OperatorFeeVaultEvents { + const NAME: &'static str = "OperatorFeeVaultEvents"; + const COUNT: usize = 6usize; + fn decode_raw_log( + topics: &[alloy_sol_types::Word], + data: &[u8], + ) -> alloy_sol_types::Result { + match topics.first().copied() { + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::Initialized) + } + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::MinWithdrawalAmountUpdated) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::RecipientUpdated) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::Withdrawal_0) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::Withdrawal_1) + } + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::WithdrawalNetworkUpdated) + } + _ => { + alloy_sol_types::private::Err(alloy_sol_types::Error::InvalidLog { + name: ::NAME, + log: alloy_sol_types::private::Box::new( + alloy_sol_types::private::LogData::new_unchecked( + topics.to_vec(), + data.to_vec().into(), + ), + ), + }) + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for OperatorFeeVaultEvents { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + match self { + Self::Initialized(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::MinWithdrawalAmountUpdated(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::RecipientUpdated(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::Withdrawal_0(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::Withdrawal_1(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::WithdrawalNetworkUpdated(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + } + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + match self { + Self::Initialized(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::MinWithdrawalAmountUpdated(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::RecipientUpdated(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::Withdrawal_0(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::Withdrawal_1(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::WithdrawalNetworkUpdated(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`OperatorFeeVault`](self) contract instance. + +See the [wrapper's documentation](`OperatorFeeVaultInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> OperatorFeeVaultInstance { + OperatorFeeVaultInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + OperatorFeeVaultInstance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + OperatorFeeVaultInstance::::deploy_builder(__provider) + } + /**A [`OperatorFeeVault`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`OperatorFeeVault`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct OperatorFeeVaultInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for OperatorFeeVaultInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("OperatorFeeVaultInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > OperatorFeeVaultInstance { + /**Creates a new wrapper around an on-chain [`OperatorFeeVault`](self) contract instance. + +See the [wrapper's documentation](`OperatorFeeVaultInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl OperatorFeeVaultInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> OperatorFeeVaultInstance { + OperatorFeeVaultInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > OperatorFeeVaultInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`MIN_WITHDRAWAL_AMOUNT`] function. + pub fn MIN_WITHDRAWAL_AMOUNT( + &self, + ) -> alloy_contract::SolCallBuilder<&P, MIN_WITHDRAWAL_AMOUNTCall, N> { + self.call_builder(&MIN_WITHDRAWAL_AMOUNTCall) + } + ///Creates a new call builder for the [`RECIPIENT`] function. + pub fn RECIPIENT(&self) -> alloy_contract::SolCallBuilder<&P, RECIPIENTCall, N> { + self.call_builder(&RECIPIENTCall) + } + ///Creates a new call builder for the [`WITHDRAWAL_NETWORK`] function. + pub fn WITHDRAWAL_NETWORK( + &self, + ) -> alloy_contract::SolCallBuilder<&P, WITHDRAWAL_NETWORKCall, N> { + self.call_builder(&WITHDRAWAL_NETWORKCall) + } + ///Creates a new call builder for the [`initialize`] function. + pub fn initialize( + &self, + _recipient: alloy::sol_types::private::Address, + _minWithdrawalAmount: alloy::sol_types::private::primitives::aliases::U256, + _withdrawalNetwork: ::RustType, + ) -> alloy_contract::SolCallBuilder<&P, initializeCall, N> { + self.call_builder( + &initializeCall { + _recipient, + _minWithdrawalAmount, + _withdrawalNetwork, + }, + ) + } + ///Creates a new call builder for the [`minWithdrawalAmount`] function. + pub fn minWithdrawalAmount( + &self, + ) -> alloy_contract::SolCallBuilder<&P, minWithdrawalAmountCall, N> { + self.call_builder(&minWithdrawalAmountCall) + } + ///Creates a new call builder for the [`recipient`] function. + pub fn recipient(&self) -> alloy_contract::SolCallBuilder<&P, recipientCall, N> { + self.call_builder(&recipientCall) + } + ///Creates a new call builder for the [`setMinWithdrawalAmount`] function. + pub fn setMinWithdrawalAmount( + &self, + _newMinWithdrawalAmount: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, setMinWithdrawalAmountCall, N> { + self.call_builder( + &setMinWithdrawalAmountCall { + _newMinWithdrawalAmount, + }, + ) + } + ///Creates a new call builder for the [`setRecipient`] function. + pub fn setRecipient( + &self, + _newRecipient: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, setRecipientCall, N> { + self.call_builder(&setRecipientCall { _newRecipient }) + } + ///Creates a new call builder for the [`setWithdrawalNetwork`] function. + pub fn setWithdrawalNetwork( + &self, + _newWithdrawalNetwork: ::RustType, + ) -> alloy_contract::SolCallBuilder<&P, setWithdrawalNetworkCall, N> { + self.call_builder( + &setWithdrawalNetworkCall { + _newWithdrawalNetwork, + }, + ) + } + ///Creates a new call builder for the [`totalProcessed`] function. + pub fn totalProcessed( + &self, + ) -> alloy_contract::SolCallBuilder<&P, totalProcessedCall, N> { + self.call_builder(&totalProcessedCall) + } + ///Creates a new call builder for the [`version`] function. + pub fn version(&self) -> alloy_contract::SolCallBuilder<&P, versionCall, N> { + self.call_builder(&versionCall) + } + ///Creates a new call builder for the [`withdraw`] function. + pub fn withdraw(&self) -> alloy_contract::SolCallBuilder<&P, withdrawCall, N> { + self.call_builder(&withdrawCall) + } + ///Creates a new call builder for the [`withdrawalNetwork`] function. + pub fn withdrawalNetwork( + &self, + ) -> alloy_contract::SolCallBuilder<&P, withdrawalNetworkCall, N> { + self.call_builder(&withdrawalNetworkCall) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > OperatorFeeVaultInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + ///Creates a new event filter for the [`Initialized`] event. + pub fn Initialized_filter(&self) -> alloy_contract::Event<&P, Initialized, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`MinWithdrawalAmountUpdated`] event. + pub fn MinWithdrawalAmountUpdated_filter( + &self, + ) -> alloy_contract::Event<&P, MinWithdrawalAmountUpdated, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`RecipientUpdated`] event. + pub fn RecipientUpdated_filter( + &self, + ) -> alloy_contract::Event<&P, RecipientUpdated, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`Withdrawal_0`] event. + pub fn Withdrawal_0_filter(&self) -> alloy_contract::Event<&P, Withdrawal_0, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`Withdrawal_1`] event. + pub fn Withdrawal_1_filter(&self) -> alloy_contract::Event<&P, Withdrawal_1, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`WithdrawalNetworkUpdated`] event. + pub fn WithdrawalNetworkUpdated_filter( + &self, + ) -> alloy_contract::Event<&P, WithdrawalNetworkUpdated, N> { + self.event_filter::() + } + } +} diff --git a/bindings/rust/src/optimism_mintable_erc20.rs b/bindings/rust/src/optimism_mintable_erc20.rs new file mode 100644 index 000000000..b67909cd1 --- /dev/null +++ b/bindings/rust/src/optimism_mintable_erc20.rs @@ -0,0 +1,6749 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface OptimismMintableERC20 { + event Approval(address indexed owner, address indexed spender, uint256 value); + event Burn(address indexed account, uint256 amount); + event Mint(address indexed account, uint256 amount); + event Transfer(address indexed from, address indexed to, uint256 value); + + constructor(address _bridge, address _remoteToken, string _name, string _symbol, uint8 _decimals); + + function BRIDGE() external view returns (address); + function DOMAIN_SEPARATOR() external view returns (bytes32); + function PERMIT2() external pure returns (address); + function REMOTE_TOKEN() external view returns (address); + function allowance(address _owner, address _spender) external view returns (uint256); + function approve(address spender, uint256 amount) external returns (bool); + function balanceOf(address account) external view returns (uint256); + function bridge() external view returns (address); + function burn(address _from, uint256 _amount) external; + function decimals() external view returns (uint8); + function decreaseAllowance(address spender, uint256 subtractedValue) external returns (bool); + function increaseAllowance(address spender, uint256 addedValue) external returns (bool); + function l1Token() external view returns (address); + function l2Bridge() external view returns (address); + function mint(address _to, uint256 _amount) external; + function name() external view returns (string memory); + function nonces(address owner) external view returns (uint256); + function permit(address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) external; + function remoteToken() external view returns (address); + function supportsInterface(bytes4 _interfaceId) external pure returns (bool); + function symbol() external view returns (string memory); + function totalSupply() external view returns (uint256); + function transfer(address to, uint256 amount) external returns (bool); + function transferFrom(address from, address to, uint256 amount) external returns (bool); + function version() external view returns (string memory); +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "constructor", + "inputs": [ + { + "name": "_bridge", + "type": "address", + "internalType": "address" + }, + { + "name": "_remoteToken", + "type": "address", + "internalType": "address" + }, + { + "name": "_name", + "type": "string", + "internalType": "string" + }, + { + "name": "_symbol", + "type": "string", + "internalType": "string" + }, + { + "name": "_decimals", + "type": "uint8", + "internalType": "uint8" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "BRIDGE", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "DOMAIN_SEPARATOR", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "PERMIT2", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "REMOTE_TOKEN", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "allowance", + "inputs": [ + { + "name": "_owner", + "type": "address", + "internalType": "address" + }, + { + "name": "_spender", + "type": "address", + "internalType": "address" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "approve", + "inputs": [ + { + "name": "spender", + "type": "address", + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "balanceOf", + "inputs": [ + { + "name": "account", + "type": "address", + "internalType": "address" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "bridge", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "burn", + "inputs": [ + { + "name": "_from", + "type": "address", + "internalType": "address" + }, + { + "name": "_amount", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "decimals", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint8", + "internalType": "uint8" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "decreaseAllowance", + "inputs": [ + { + "name": "spender", + "type": "address", + "internalType": "address" + }, + { + "name": "subtractedValue", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "increaseAllowance", + "inputs": [ + { + "name": "spender", + "type": "address", + "internalType": "address" + }, + { + "name": "addedValue", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "l1Token", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "l2Bridge", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "mint", + "inputs": [ + { + "name": "_to", + "type": "address", + "internalType": "address" + }, + { + "name": "_amount", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "name", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "nonces", + "inputs": [ + { + "name": "owner", + "type": "address", + "internalType": "address" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "permit", + "inputs": [ + { + "name": "owner", + "type": "address", + "internalType": "address" + }, + { + "name": "spender", + "type": "address", + "internalType": "address" + }, + { + "name": "value", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "deadline", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "v", + "type": "uint8", + "internalType": "uint8" + }, + { + "name": "r", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "s", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "remoteToken", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "supportsInterface", + "inputs": [ + { + "name": "_interfaceId", + "type": "bytes4", + "internalType": "bytes4" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "symbol", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "totalSupply", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "transfer", + "inputs": [ + { + "name": "to", + "type": "address", + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "transferFrom", + "inputs": [ + { + "name": "from", + "type": "address", + "internalType": "address" + }, + { + "name": "to", + "type": "address", + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "version", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "view" + }, + { + "type": "event", + "name": "Approval", + "inputs": [ + { + "name": "owner", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "spender", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "value", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "Burn", + "inputs": [ + { + "name": "account", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "Mint", + "inputs": [ + { + "name": "account", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "Transfer", + "inputs": [ + { + "name": "from", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "to", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "value", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod OptimismMintableERC20 { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x6101a06040523480156200001257600080fd5b5060405162001d6c38038062001d6c833981016040819052620000359162000215565b6040805180820190915260018152603160f81b6020820152839081908185600362000061838262000350565b50600462000070828262000350565b5050825160208085019190912083518483012060e08290526101008190524660a0818152604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81880181905281830187905260608201869052608082019490945230818401528151808203909301835260c0019052805194019390932091935091906080523060c05261012052505050506001600160a01b0394851661014052509390921661016052505060ff16610180526200041c565b80516001600160a01b03811681146200014357600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200017057600080fd5b81516001600160401b03808211156200018d576200018d62000148565b604051601f8301601f19908116603f01168101908282118183101715620001b857620001b862000148565b81604052838152602092508683858801011115620001d557600080fd5b600091505b83821015620001f95785820183015181830184015290820190620001da565b838211156200020b5760008385830101525b9695505050505050565b600080600080600060a086880312156200022e57600080fd5b62000239866200012b565b945062000249602087016200012b565b60408701519094506001600160401b03808211156200026757600080fd5b6200027589838a016200015e565b945060608801519150808211156200028c57600080fd5b506200029b888289016200015e565b925050608086015160ff81168114620002b357600080fd5b809150509295509295909350565b600181811c90821680620002d657607f821691505b602082108103620002f757634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200034b57600081815260208120601f850160051c81016020861015620003265750805b601f850160051c820191505b81811015620003475782815560010162000332565b5050505b505050565b81516001600160401b038111156200036c576200036c62000148565b62000384816200037d8454620002c1565b84620002fd565b602080601f831160018114620003bc5760008415620003a35750858301515b600019600386901b1c1916600185901b17855562000347565b600085815260208120601f198616915b82811015620003ed57888601518255948401946001909101908401620003cc565b50858210156200040c5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60805160a05160c05160e05161010051610120516101405161016051610180516118c3620004a9600039600061026301526000818161038d015281816104020152818161062101526107420152600081816101d501526103b301526000610f3801526000610f8701526000610f6201526000610ebb01526000610ee501526000610f0f01526118c36000f3fe608060405234801561001057600080fd5b50600436106101a35760003560e01c806370a08231116100ee578063ae1f6aaf11610097578063d6c0b2c411610071578063d6c0b2c4146103b1578063dd62ed3e146103ea578063e78cea921461038b578063ee9a31a2146103fd57600080fd5b8063ae1f6aaf1461038b578063c01e1bd6146103b1578063d505accf146103d757600080fd5b80639dc29fac116100c85780639dc29fac14610352578063a457c2d714610365578063a9059cbb1461037857600080fd5b806370a082311461030e5780637ecebe001461033757806395d89b411461034a57600080fd5b8063313ce5671161015057806340c10f191161012a57806340c10f19146102a857806354fd4d50146102bd5780636afdd850146102f957600080fd5b8063313ce5671461025c5780633644e5151461028d578063395093511461029557600080fd5b8063095ea7b311610181578063095ea7b31461022457806318160ddd1461023757806323b872dd1461024957600080fd5b806301ffc9a7146101a8578063033964be146101d057806306fdde031461020f575b600080fd5b6101bb6101b63660046115e4565b610424565b60405190151581526020015b60405180910390f35b6101f77f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016101c7565b610217610515565b6040516101c79190611626565b6101bb6102323660046116b5565b6105a7565b6002545b6040519081526020016101c7565b6101bb6102573660046116df565b6105c1565b60405160ff7f00000000000000000000000000000000000000000000000000000000000000001681526020016101c7565b61023b6105e5565b6101bb6102a33660046116b5565b6105f4565b6102bb6102b63660046116b5565b610616565b005b6102176040518060400160405280600581526020017f312e342e3100000000000000000000000000000000000000000000000000000081525081565b6e22d473030f116ddee9f6b43ac78ba36101f7565b61023b61031c36600461171b565b6001600160a01b031660009081526020819052604090205490565b61023b61034536600461171b565b61070a565b610217610728565b6102bb6103603660046116b5565b610737565b6101bb6103733660046116b5565b61081a565b6101bb6103863660046116b5565b6108ad565b7f00000000000000000000000000000000000000000000000000000000000000006101f7565b7f00000000000000000000000000000000000000000000000000000000000000006101f7565b6102bb6103e5366004611736565b6108bb565b61023b6103f83660046117a9565b610a1f565b6101f77f000000000000000000000000000000000000000000000000000000000000000081565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007f1d1d8b63000000000000000000000000000000000000000000000000000000007fec4fc8e3000000000000000000000000000000000000000000000000000000007fffffffff0000000000000000000000000000000000000000000000000000000085168314806104dd57507fffffffff00000000000000000000000000000000000000000000000000000000858116908316145b8061050c57507fffffffff00000000000000000000000000000000000000000000000000000000858116908216145b95945050505050565b606060038054610524906117dc565b80601f0160208091040260200160405190810160405280929190818152602001828054610550906117dc565b801561059d5780601f106105725761010080835404028352916020019161059d565b820191906000526020600020905b81548152906001019060200180831161058057829003601f168201915b5050505050905090565b6000336105b5818585610aa6565b60019150505b92915050565b6000336105cf858285610bff565b6105da858585610c97565b506001949350505050565b60006105ef610eae565b905090565b6000336105b58185856106078383610a1f565b6106119190611858565b610aa6565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146106b95760405162461bcd60e51b815260206004820152603460248201527f4f7074696d69736d4d696e7461626c6545524332303a206f6e6c79206272696460448201527f67652063616e206d696e7420616e64206275726e00000000000000000000000060648201526084015b60405180910390fd5b6106c38282610fd5565b816001600160a01b03167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885826040516106fe91815260200190565b60405180910390a25050565b6001600160a01b0381166000908152600560205260408120546105bb565b606060048054610524906117dc565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146107d55760405162461bcd60e51b815260206004820152603460248201527f4f7074696d69736d4d696e7461626c6545524332303a206f6e6c79206272696460448201527f67652063616e206d696e7420616e64206275726e00000000000000000000000060648201526084016106b0565b6107df82826110b4565b816001600160a01b03167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5826040516106fe91815260200190565b600033816108288286610a1f565b9050838110156108a05760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084016106b0565b6105da8286868403610aa6565b6000336105b5818585610c97565b8342111561090b5760405162461bcd60e51b815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e6500000060448201526064016106b0565b60007f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c988888861093a8c611231565b6040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e001604051602081830303815290604052805190602001209050600061099582611259565b905060006109a5828787876112c2565b9050896001600160a01b0316816001600160a01b031614610a085760405162461bcd60e51b815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e6174757265000060448201526064016106b0565b610a138a8a8a610aa6565b50505050505050505050565b60007fffffffffffffffffffffffffffffffffffdd2b8cfcf0ee922116094bc538745d6001600160a01b03831601610a7857507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6105bb565b6001600160a01b038084166000908152600160209081526040808320938616835292905220545b9392505050565b6001600160a01b038316610b215760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016106b0565b6001600160a01b038216610b9d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016106b0565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6000610c0b8484610a1f565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610c915781811015610c845760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016106b0565b610c918484848403610aa6565b50505050565b6001600160a01b038316610d135760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016106b0565b6001600160a01b038216610d8f5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f657373000000000000000000000000000000000000000000000000000000000060648201526084016106b0565b6001600160a01b03831660009081526020819052604090205481811015610e1e5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e6365000000000000000000000000000000000000000000000000000060648201526084016106b0565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290610e55908490611858565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610ea191815260200190565b60405180910390a3610c91565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148015610f0757507f000000000000000000000000000000000000000000000000000000000000000046145b15610f3157507f000000000000000000000000000000000000000000000000000000000000000090565b50604080517f00000000000000000000000000000000000000000000000000000000000000006020808301919091527f0000000000000000000000000000000000000000000000000000000000000000828401527f000000000000000000000000000000000000000000000000000000000000000060608301524660808301523060a0808401919091528351808403909101815260c0909201909252805191012090565b6001600160a01b03821661102b5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016106b0565b806002600082825461103d9190611858565b90915550506001600160a01b0382166000908152602081905260408120805483929061106a908490611858565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6001600160a01b0382166111305760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f730000000000000000000000000000000000000000000000000000000000000060648201526084016106b0565b6001600160a01b038216600090815260208190526040902054818110156111bf5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f636500000000000000000000000000000000000000000000000000000000000060648201526084016106b0565b6001600160a01b03831660009081526020819052604081208383039055600280548492906111ee908490611870565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001610bf2565b6001600160a01b03811660009081526005602052604090208054600181018255905b50919050565b60006105bb611266610eae565b836040517f19010000000000000000000000000000000000000000000000000000000000006020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b60008060006112d3878787876112ea565b915091506112e0816113f5565b5095945050505050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561132157506000905060036113ec565b8460ff16601b1415801561133957508460ff16601c14155b1561134a57506000905060046113ec565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa15801561139e573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe001519150506001600160a01b0381166113e5576000600192509250506113ec565b9150600090505b94509492505050565b600081600481111561140957611409611887565b036114115750565b600181600481111561142557611425611887565b036114725760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e6174757265000000000000000060448201526064016106b0565b600281600481111561148657611486611887565b036114d35760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e6774680060448201526064016106b0565b60038160048111156114e7576114e7611887565b0361155a5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c60448201527f756500000000000000000000000000000000000000000000000000000000000060648201526084016106b0565b600481600481111561156e5761156e611887565b036115e15760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c60448201527f756500000000000000000000000000000000000000000000000000000000000060648201526084016106b0565b50565b6000602082840312156115f657600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610a9f57600080fd5b600060208083528351808285015260005b8181101561165357858101830151858201604001528201611637565b81811115611665576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b80356001600160a01b03811681146116b057600080fd5b919050565b600080604083850312156116c857600080fd5b6116d183611699565b946020939093013593505050565b6000806000606084860312156116f457600080fd5b6116fd84611699565b925061170b60208501611699565b9150604084013590509250925092565b60006020828403121561172d57600080fd5b610a9f82611699565b600080600080600080600060e0888a03121561175157600080fd5b61175a88611699565b965061176860208901611699565b95506040880135945060608801359350608088013560ff8116811461178c57600080fd5b9699959850939692959460a0840135945060c09093013592915050565b600080604083850312156117bc57600080fd5b6117c583611699565b91506117d360208401611699565b90509250929050565b600181811c908216806117f057607f821691505b602082108103611253577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000821982111561186b5761186b611829565b500190565b60008282101561188257611882611829565b500390565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fdfea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"a\x01\xA0`@R4\x80\x15b\0\0\x12W`\0\x80\xFD[P`@Qb\0\x1Dl8\x03\x80b\0\x1Dl\x839\x81\x01`@\x81\x90Rb\0\x005\x91b\0\x02\x15V[`@\x80Q\x80\x82\x01\x90\x91R`\x01\x81R`1`\xF8\x1B` \x82\x01R\x83\x90\x81\x90\x81\x85`\x03b\0\0a\x83\x82b\0\x03PV[P`\x04b\0\0p\x82\x82b\0\x03PV[PP\x82Q` \x80\x85\x01\x91\x90\x91 \x83Q\x84\x83\x01 `\xE0\x82\x90Ra\x01\0\x81\x90RF`\xA0\x81\x81R`@\x80Q\x7F\x8Bs\xC3\xC6\x9B\xB8\xFE=Q.\xCCL\xF7Y\xCCy#\x9F{\x17\x9B\x0F\xFA\xCA\xA9\xA7]R+9@\x0F\x81\x88\x01\x81\x90R\x81\x83\x01\x87\x90R``\x82\x01\x86\x90R`\x80\x82\x01\x94\x90\x94R0\x81\x84\x01R\x81Q\x80\x82\x03\x90\x93\x01\x83R`\xC0\x01\x90R\x80Q\x94\x01\x93\x90\x93 \x91\x93P\x91\x90`\x80R0`\xC0Ra\x01 RPPPP`\x01`\x01`\xA0\x1B\x03\x94\x85\x16a\x01@RP\x93\x90\x92\x16a\x01`RPP`\xFF\x16a\x01\x80Rb\0\x04\x1CV[\x80Q`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14b\0\x01CW`\0\x80\xFD[\x91\x90PV[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[`\0\x82`\x1F\x83\x01\x12b\0\x01pW`\0\x80\xFD[\x81Q`\x01`\x01`@\x1B\x03\x80\x82\x11\x15b\0\x01\x8DWb\0\x01\x8Db\0\x01HV[`@Q`\x1F\x83\x01`\x1F\x19\x90\x81\x16`?\x01\x16\x81\x01\x90\x82\x82\x11\x81\x83\x10\x17\x15b\0\x01\xB8Wb\0\x01\xB8b\0\x01HV[\x81`@R\x83\x81R` \x92P\x86\x83\x85\x88\x01\x01\x11\x15b\0\x01\xD5W`\0\x80\xFD[`\0\x91P[\x83\x82\x10\x15b\0\x01\xF9W\x85\x82\x01\x83\x01Q\x81\x83\x01\x84\x01R\x90\x82\x01\x90b\0\x01\xDAV[\x83\x82\x11\x15b\0\x02\x0BW`\0\x83\x85\x83\x01\x01R[\x96\x95PPPPPPV[`\0\x80`\0\x80`\0`\xA0\x86\x88\x03\x12\x15b\0\x02.W`\0\x80\xFD[b\0\x029\x86b\0\x01+V[\x94Pb\0\x02I` \x87\x01b\0\x01+V[`@\x87\x01Q\x90\x94P`\x01`\x01`@\x1B\x03\x80\x82\x11\x15b\0\x02gW`\0\x80\xFD[b\0\x02u\x89\x83\x8A\x01b\0\x01^V[\x94P``\x88\x01Q\x91P\x80\x82\x11\x15b\0\x02\x8CW`\0\x80\xFD[Pb\0\x02\x9B\x88\x82\x89\x01b\0\x01^V[\x92PP`\x80\x86\x01Q`\xFF\x81\x16\x81\x14b\0\x02\xB3W`\0\x80\xFD[\x80\x91PP\x92\x95P\x92\x95\x90\x93PV[`\x01\x81\x81\x1C\x90\x82\x16\x80b\0\x02\xD6W`\x7F\x82\x16\x91P[` \x82\x10\x81\x03b\0\x02\xF7WcNH{q`\xE0\x1B`\0R`\"`\x04R`$`\0\xFD[P\x91\x90PV[`\x1F\x82\x11\x15b\0\x03KW`\0\x81\x81R` \x81 `\x1F\x85\x01`\x05\x1C\x81\x01` \x86\x10\x15b\0\x03&WP\x80[`\x1F\x85\x01`\x05\x1C\x82\x01\x91P[\x81\x81\x10\x15b\0\x03GW\x82\x81U`\x01\x01b\0\x032V[PPP[PPPV[\x81Q`\x01`\x01`@\x1B\x03\x81\x11\x15b\0\x03lWb\0\x03lb\0\x01HV[b\0\x03\x84\x81b\0\x03}\x84Tb\0\x02\xC1V[\x84b\0\x02\xFDV[` \x80`\x1F\x83\x11`\x01\x81\x14b\0\x03\xBCW`\0\x84\x15b\0\x03\xA3WP\x85\x83\x01Q[`\0\x19`\x03\x86\x90\x1B\x1C\x19\x16`\x01\x85\x90\x1B\x17\x85Ub\0\x03GV[`\0\x85\x81R` \x81 `\x1F\x19\x86\x16\x91[\x82\x81\x10\x15b\0\x03\xEDW\x88\x86\x01Q\x82U\x94\x84\x01\x94`\x01\x90\x91\x01\x90\x84\x01b\0\x03\xCCV[P\x85\x82\x10\x15b\0\x04\x0CW\x87\x85\x01Q`\0\x19`\x03\x88\x90\x1B`\xF8\x16\x1C\x19\x16\x81U[PPPPP`\x01\x90\x81\x1B\x01\x90UPV[`\x80Q`\xA0Q`\xC0Q`\xE0Qa\x01\0Qa\x01 Qa\x01@Qa\x01`Qa\x01\x80Qa\x18\xC3b\0\x04\xA9`\09`\0a\x02c\x01R`\0\x81\x81a\x03\x8D\x01R\x81\x81a\x04\x02\x01R\x81\x81a\x06!\x01Ra\x07B\x01R`\0\x81\x81a\x01\xD5\x01Ra\x03\xB3\x01R`\0a\x0F8\x01R`\0a\x0F\x87\x01R`\0a\x0Fb\x01R`\0a\x0E\xBB\x01R`\0a\x0E\xE5\x01R`\0a\x0F\x0F\x01Ra\x18\xC3`\0\xF3\xFE`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`\x046\x10a\x01\xA3W`\x005`\xE0\x1C\x80cp\xA0\x821\x11a\0\xEEW\x80c\xAE\x1Fj\xAF\x11a\0\x97W\x80c\xD6\xC0\xB2\xC4\x11a\0qW\x80c\xD6\xC0\xB2\xC4\x14a\x03\xB1W\x80c\xDDb\xED>\x14a\x03\xEAW\x80c\xE7\x8C\xEA\x92\x14a\x03\x8BW\x80c\xEE\x9A1\xA2\x14a\x03\xFDW`\0\x80\xFD[\x80c\xAE\x1Fj\xAF\x14a\x03\x8BW\x80c\xC0\x1E\x1B\xD6\x14a\x03\xB1W\x80c\xD5\x05\xAC\xCF\x14a\x03\xD7W`\0\x80\xFD[\x80c\x9D\xC2\x9F\xAC\x11a\0\xC8W\x80c\x9D\xC2\x9F\xAC\x14a\x03RW\x80c\xA4W\xC2\xD7\x14a\x03eW\x80c\xA9\x05\x9C\xBB\x14a\x03xW`\0\x80\xFD[\x80cp\xA0\x821\x14a\x03\x0EW\x80c~\xCE\xBE\0\x14a\x037W\x80c\x95\xD8\x9BA\x14a\x03JW`\0\x80\xFD[\x80c1<\xE5g\x11a\x01PW\x80c@\xC1\x0F\x19\x11a\x01*W\x80c@\xC1\x0F\x19\x14a\x02\xA8W\x80cT\xFDMP\x14a\x02\xBDW\x80cj\xFD\xD8P\x14a\x02\xF9W`\0\x80\xFD[\x80c1<\xE5g\x14a\x02\\W\x80c6D\xE5\x15\x14a\x02\x8DW\x80c9P\x93Q\x14a\x02\x95W`\0\x80\xFD[\x80c\t^\xA7\xB3\x11a\x01\x81W\x80c\t^\xA7\xB3\x14a\x02$W\x80c\x18\x16\r\xDD\x14a\x027W\x80c#\xB8r\xDD\x14a\x02IW`\0\x80\xFD[\x80c\x01\xFF\xC9\xA7\x14a\x01\xA8W\x80c\x039d\xBE\x14a\x01\xD0W\x80c\x06\xFD\xDE\x03\x14a\x02\x0FW[`\0\x80\xFD[a\x01\xBBa\x01\xB66`\x04a\x15\xE4V[a\x04$V[`@Q\x90\x15\x15\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[a\x01\xF7\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x01a\x01\xC7V[a\x02\x17a\x05\x15V[`@Qa\x01\xC7\x91\x90a\x16&V[a\x01\xBBa\x0226`\x04a\x16\xB5V[a\x05\xA7V[`\x02T[`@Q\x90\x81R` \x01a\x01\xC7V[a\x01\xBBa\x02W6`\x04a\x16\xDFV[a\x05\xC1V[`@Q`\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x81R` \x01a\x01\xC7V[a\x02;a\x05\xE5V[a\x01\xBBa\x02\xA36`\x04a\x16\xB5V[a\x05\xF4V[a\x02\xBBa\x02\xB66`\x04a\x16\xB5V[a\x06\x16V[\0[a\x02\x17`@Q\x80`@\x01`@R\x80`\x05\x81R` \x01\x7F1.4.1\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\x81RP\x81V[n\"\xD4s\x03\x0F\x11m\xDE\xE9\xF6\xB4:\xC7\x8B\xA3a\x01\xF7V[a\x02;a\x03\x1C6`\x04a\x17\x1BV[`\x01`\x01`\xA0\x1B\x03\x16`\0\x90\x81R` \x81\x90R`@\x90 T\x90V[a\x02;a\x03E6`\x04a\x17\x1BV[a\x07\nV[a\x02\x17a\x07(V[a\x02\xBBa\x03`6`\x04a\x16\xB5V[a\x077V[a\x01\xBBa\x03s6`\x04a\x16\xB5V[a\x08\x1AV[a\x01\xBBa\x03\x866`\x04a\x16\xB5V[a\x08\xADV[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x01\xF7V[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x01\xF7V[a\x02\xBBa\x03\xE56`\x04a\x176V[a\x08\xBBV[a\x02;a\x03\xF86`\x04a\x17\xA9V[a\n\x1FV[a\x01\xF7\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[`\0\x7F\x01\xFF\xC9\xA7\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\x7F\x1D\x1D\x8Bc\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\x7F\xECO\xC8\xE3\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\x7F\xFF\xFF\xFF\xFF\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\x85\x16\x83\x14\x80a\x04\xDDWP\x7F\xFF\xFF\xFF\xFF\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\x85\x81\x16\x90\x83\x16\x14[\x80a\x05\x0CWP\x7F\xFF\xFF\xFF\xFF\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\x85\x81\x16\x90\x82\x16\x14[\x95\x94PPPPPV[```\x03\x80Ta\x05$\x90a\x17\xDCV[\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x92\x91\x90\x81\x81R` \x01\x82\x80Ta\x05P\x90a\x17\xDCV[\x80\x15a\x05\x9DW\x80`\x1F\x10a\x05rWa\x01\0\x80\x83T\x04\x02\x83R\x91` \x01\x91a\x05\x9DV[\x82\x01\x91\x90`\0R` `\0 \x90[\x81T\x81R\x90`\x01\x01\x90` \x01\x80\x83\x11a\x05\x80W\x82\x90\x03`\x1F\x16\x82\x01\x91[PPPPP\x90P\x90V[`\x003a\x05\xB5\x81\x85\x85a\n\xA6V[`\x01\x91PP[\x92\x91PPV[`\x003a\x05\xCF\x85\x82\x85a\x0B\xFFV[a\x05\xDA\x85\x85\x85a\x0C\x97V[P`\x01\x94\x93PPPPV[`\0a\x05\xEFa\x0E\xAEV[\x90P\x90V[`\x003a\x05\xB5\x81\x85\x85a\x06\x07\x83\x83a\n\x1FV[a\x06\x11\x91\x90a\x18XV[a\n\xA6V[3`\x01`\x01`\xA0\x1B\x03\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x14a\x06\xB9W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`4`$\x82\x01R\x7FOptimismMintableERC20: only brid`D\x82\x01R\x7Fge can mint and burn\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01[`@Q\x80\x91\x03\x90\xFD[a\x06\xC3\x82\x82a\x0F\xD5V[\x81`\x01`\x01`\xA0\x1B\x03\x16\x7F\x0Fg\x98\xA5`y:T\xC3\xBC\xFE\x86\xA9<\xDE\x1Es\x08}\x94L\x0E\xA2\x05D\x13}A!9h\x85\x82`@Qa\x06\xFE\x91\x81R` \x01\x90V[`@Q\x80\x91\x03\x90\xA2PPV[`\x01`\x01`\xA0\x1B\x03\x81\x16`\0\x90\x81R`\x05` R`@\x81 Ta\x05\xBBV[```\x04\x80Ta\x05$\x90a\x17\xDCV[3`\x01`\x01`\xA0\x1B\x03\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x14a\x07\xD5W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`4`$\x82\x01R\x7FOptimismMintableERC20: only brid`D\x82\x01R\x7Fge can mint and burn\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x06\xB0V[a\x07\xDF\x82\x82a\x10\xB4V[\x81`\x01`\x01`\xA0\x1B\x03\x16\x7F\xCC\x16\xF5\xDB\xB4\x872\x80\x81\\\x1E\xE0\x9D\xBD\x06sl\xFF\xCC\x18D\x12\xCFzq\xA0\xFD\xB7]9|\xA5\x82`@Qa\x06\xFE\x91\x81R` \x01\x90V[`\x003\x81a\x08(\x82\x86a\n\x1FV[\x90P\x83\x81\x10\x15a\x08\xA0W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`%`$\x82\x01R\x7FERC20: decreased allowance below`D\x82\x01R\x7F zero\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`d\x82\x01R`\x84\x01a\x06\xB0V[a\x05\xDA\x82\x86\x86\x84\x03a\n\xA6V[`\x003a\x05\xB5\x81\x85\x85a\x0C\x97V[\x83B\x11\x15a\t\x0BW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1D`$\x82\x01R\x7FERC20Permit: expired deadline\0\0\0`D\x82\x01R`d\x01a\x06\xB0V[`\0\x7Fnq\xED\xAE\x12\xB1\xB9\x7FM\x1F`7\x0F\xEF\x10\x10_\xA2\xFA\xAE\x01&\x11J\x16\x9Cd\x84]a&\xC9\x88\x88\x88a\t:\x8Ca\x121V[`@\x80Q` \x81\x01\x96\x90\x96R`\x01`\x01`\xA0\x1B\x03\x94\x85\x16\x90\x86\x01R\x92\x90\x91\x16``\x84\x01R`\x80\x83\x01R`\xA0\x82\x01R`\xC0\x81\x01\x86\x90R`\xE0\x01`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 \x90P`\0a\t\x95\x82a\x12YV[\x90P`\0a\t\xA5\x82\x87\x87\x87a\x12\xC2V[\x90P\x89`\x01`\x01`\xA0\x1B\x03\x16\x81`\x01`\x01`\xA0\x1B\x03\x16\x14a\n\x08W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1E`$\x82\x01R\x7FERC20Permit: invalid signature\0\0`D\x82\x01R`d\x01a\x06\xB0V[a\n\x13\x8A\x8A\x8Aa\n\xA6V[PPPPPPPPPPV[`\0\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xDD+\x8C\xFC\xF0\xEE\x92!\x16\tK\xC58t]`\x01`\x01`\xA0\x1B\x03\x83\x16\x01a\nxWP\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFFa\x05\xBBV[`\x01`\x01`\xA0\x1B\x03\x80\x84\x16`\0\x90\x81R`\x01` \x90\x81R`@\x80\x83 \x93\x86\x16\x83R\x92\x90R T[\x93\x92PPPV[`\x01`\x01`\xA0\x1B\x03\x83\x16a\x0B!W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`$\x80\x82\x01R\x7FERC20: approve from the zero add`D\x82\x01R\x7Fress\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`d\x82\x01R`\x84\x01a\x06\xB0V[`\x01`\x01`\xA0\x1B\x03\x82\x16a\x0B\x9DW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FERC20: approve to the zero addre`D\x82\x01R\x7Fss\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x06\xB0V[`\x01`\x01`\xA0\x1B\x03\x83\x81\x16`\0\x81\x81R`\x01` \x90\x81R`@\x80\x83 \x94\x87\x16\x80\x84R\x94\x82R\x91\x82\x90 \x85\x90U\x90Q\x84\x81R\x7F\x8C[\xE1\xE5\xEB\xEC}[\xD1OqB}\x1E\x84\xF3\xDD\x03\x14\xC0\xF7\xB2)\x1E[ \n\xC8\xC7\xC3\xB9%\x91\x01[`@Q\x80\x91\x03\x90\xA3PPPV[`\0a\x0C\x0B\x84\x84a\n\x1FV[\x90P\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x14a\x0C\x91W\x81\x81\x10\x15a\x0C\x84W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1D`$\x82\x01R\x7FERC20: insufficient allowance\0\0\0`D\x82\x01R`d\x01a\x06\xB0V[a\x0C\x91\x84\x84\x84\x84\x03a\n\xA6V[PPPPV[`\x01`\x01`\xA0\x1B\x03\x83\x16a\r\x13W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`%`$\x82\x01R\x7FERC20: transfer from the zero ad`D\x82\x01R\x7Fdress\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`d\x82\x01R`\x84\x01a\x06\xB0V[`\x01`\x01`\xA0\x1B\x03\x82\x16a\r\x8FW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`#`$\x82\x01R\x7FERC20: transfer to the zero addr`D\x82\x01R\x7Fess\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x06\xB0V[`\x01`\x01`\xA0\x1B\x03\x83\x16`\0\x90\x81R` \x81\x90R`@\x90 T\x81\x81\x10\x15a\x0E\x1EW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`&`$\x82\x01R\x7FERC20: transfer amount exceeds b`D\x82\x01R\x7Falance\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`d\x82\x01R`\x84\x01a\x06\xB0V[`\x01`\x01`\xA0\x1B\x03\x80\x85\x16`\0\x90\x81R` \x81\x90R`@\x80\x82 \x85\x85\x03\x90U\x91\x85\x16\x81R\x90\x81 \x80T\x84\x92\x90a\x0EU\x90\x84\x90a\x18XV[\x92PP\x81\x90UP\x82`\x01`\x01`\xA0\x1B\x03\x16\x84`\x01`\x01`\xA0\x1B\x03\x16\x7F\xDD\xF2R\xAD\x1B\xE2\xC8\x9Bi\xC2\xB0h\xFC7\x8D\xAA\x95+\xA7\xF1c\xC4\xA1\x16(\xF5ZM\xF5#\xB3\xEF\x84`@Qa\x0E\xA1\x91\x81R` \x01\x90V[`@Q\x80\x91\x03\x90\xA3a\x0C\x91V[`\x000`\x01`\x01`\xA0\x1B\x03\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x14\x80\x15a\x0F\x07WP\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0F\x14[\x15a\x0F1WP\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90V[P`@\x80Q\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0` \x80\x83\x01\x91\x90\x91R\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x82\x84\x01R\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0``\x83\x01RF`\x80\x83\x01R0`\xA0\x80\x84\x01\x91\x90\x91R\x83Q\x80\x84\x03\x90\x91\x01\x81R`\xC0\x90\x92\x01\x90\x92R\x80Q\x91\x01 \x90V[`\x01`\x01`\xA0\x1B\x03\x82\x16a\x10+W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1F`$\x82\x01R\x7FERC20: mint to the zero address\0`D\x82\x01R`d\x01a\x06\xB0V[\x80`\x02`\0\x82\x82Ta\x10=\x91\x90a\x18XV[\x90\x91UPP`\x01`\x01`\xA0\x1B\x03\x82\x16`\0\x90\x81R` \x81\x90R`@\x81 \x80T\x83\x92\x90a\x10j\x90\x84\x90a\x18XV[\x90\x91UPP`@Q\x81\x81R`\x01`\x01`\xA0\x1B\x03\x83\x16\x90`\0\x90\x7F\xDD\xF2R\xAD\x1B\xE2\xC8\x9Bi\xC2\xB0h\xFC7\x8D\xAA\x95+\xA7\xF1c\xC4\xA1\x16(\xF5ZM\xF5#\xB3\xEF\x90` \x01`@Q\x80\x91\x03\x90\xA3PPV[`\x01`\x01`\xA0\x1B\x03\x82\x16a\x110W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`!`$\x82\x01R\x7FERC20: burn from the zero addres`D\x82\x01R\x7Fs\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x06\xB0V[`\x01`\x01`\xA0\x1B\x03\x82\x16`\0\x90\x81R` \x81\x90R`@\x90 T\x81\x81\x10\x15a\x11\xBFW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FERC20: burn amount exceeds balan`D\x82\x01R\x7Fce\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x06\xB0V[`\x01`\x01`\xA0\x1B\x03\x83\x16`\0\x90\x81R` \x81\x90R`@\x81 \x83\x83\x03\x90U`\x02\x80T\x84\x92\x90a\x11\xEE\x90\x84\x90a\x18pV[\x90\x91UPP`@Q\x82\x81R`\0\x90`\x01`\x01`\xA0\x1B\x03\x85\x16\x90\x7F\xDD\xF2R\xAD\x1B\xE2\xC8\x9Bi\xC2\xB0h\xFC7\x8D\xAA\x95+\xA7\xF1c\xC4\xA1\x16(\xF5ZM\xF5#\xB3\xEF\x90` \x01a\x0B\xF2V[`\x01`\x01`\xA0\x1B\x03\x81\x16`\0\x90\x81R`\x05` R`@\x90 \x80T`\x01\x81\x01\x82U\x90[P\x91\x90PV[`\0a\x05\xBBa\x12fa\x0E\xAEV[\x83`@Q\x7F\x19\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0` \x82\x01R`\"\x81\x01\x83\x90R`B\x81\x01\x82\x90R`\0\x90`b\x01`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 \x90P\x92\x91PPV[`\0\x80`\0a\x12\xD3\x87\x87\x87\x87a\x12\xEAV[\x91P\x91Pa\x12\xE0\x81a\x13\xF5V[P\x95\x94PPPPPV[`\0\x80\x7F\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF]WnsW\xA4P\x1D\xDF\xE9/Fh\x1B \xA0\x83\x11\x15a\x13!WP`\0\x90P`\x03a\x13\xECV[\x84`\xFF\x16`\x1B\x14\x15\x80\x15a\x139WP\x84`\xFF\x16`\x1C\x14\x15[\x15a\x13JWP`\0\x90P`\x04a\x13\xECV[`@\x80Q`\0\x80\x82R` \x82\x01\x80\x84R\x89\x90R`\xFF\x88\x16\x92\x82\x01\x92\x90\x92R``\x81\x01\x86\x90R`\x80\x81\x01\x85\x90R`\x01\x90`\xA0\x01` `@Q` \x81\x03\x90\x80\x84\x03\x90\x85Z\xFA\x15\x80\x15a\x13\x9EW=`\0\x80>=`\0\xFD[PP`@Q\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x01Q\x91PP`\x01`\x01`\xA0\x1B\x03\x81\x16a\x13\xE5W`\0`\x01\x92P\x92PPa\x13\xECV[\x91P`\0\x90P[\x94P\x94\x92PPPV[`\0\x81`\x04\x81\x11\x15a\x14\tWa\x14\ta\x18\x87V[\x03a\x14\x11WPV[`\x01\x81`\x04\x81\x11\x15a\x14%Wa\x14%a\x18\x87V[\x03a\x14rW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x18`$\x82\x01R\x7FECDSA: invalid signature\0\0\0\0\0\0\0\0`D\x82\x01R`d\x01a\x06\xB0V[`\x02\x81`\x04\x81\x11\x15a\x14\x86Wa\x14\x86a\x18\x87V[\x03a\x14\xD3W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1F`$\x82\x01R\x7FECDSA: invalid signature length\0`D\x82\x01R`d\x01a\x06\xB0V[`\x03\x81`\x04\x81\x11\x15a\x14\xE7Wa\x14\xE7a\x18\x87V[\x03a\x15ZW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FECDSA: invalid signature 's' val`D\x82\x01R\x7Fue\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x06\xB0V[`\x04\x81`\x04\x81\x11\x15a\x15nWa\x15na\x18\x87V[\x03a\x15\xE1W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FECDSA: invalid signature 'v' val`D\x82\x01R\x7Fue\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x06\xB0V[PV[`\0` \x82\x84\x03\x12\x15a\x15\xF6W`\0\x80\xFD[\x815\x7F\xFF\xFF\xFF\xFF\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\x81\x16\x81\x14a\n\x9FW`\0\x80\xFD[`\0` \x80\x83R\x83Q\x80\x82\x85\x01R`\0[\x81\x81\x10\x15a\x16SW\x85\x81\x01\x83\x01Q\x85\x82\x01`@\x01R\x82\x01a\x167V[\x81\x81\x11\x15a\x16eW`\0`@\x83\x87\x01\x01R[P`\x1F\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x92\x90\x92\x01`@\x01\x93\x92PPPV[\x805`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a\x16\xB0W`\0\x80\xFD[\x91\x90PV[`\0\x80`@\x83\x85\x03\x12\x15a\x16\xC8W`\0\x80\xFD[a\x16\xD1\x83a\x16\x99V[\x94` \x93\x90\x93\x015\x93PPPV[`\0\x80`\0``\x84\x86\x03\x12\x15a\x16\xF4W`\0\x80\xFD[a\x16\xFD\x84a\x16\x99V[\x92Pa\x17\x0B` \x85\x01a\x16\x99V[\x91P`@\x84\x015\x90P\x92P\x92P\x92V[`\0` \x82\x84\x03\x12\x15a\x17-W`\0\x80\xFD[a\n\x9F\x82a\x16\x99V[`\0\x80`\0\x80`\0\x80`\0`\xE0\x88\x8A\x03\x12\x15a\x17QW`\0\x80\xFD[a\x17Z\x88a\x16\x99V[\x96Pa\x17h` \x89\x01a\x16\x99V[\x95P`@\x88\x015\x94P``\x88\x015\x93P`\x80\x88\x015`\xFF\x81\x16\x81\x14a\x17\x8CW`\0\x80\xFD[\x96\x99\x95\x98P\x93\x96\x92\x95\x94`\xA0\x84\x015\x94P`\xC0\x90\x93\x015\x92\x91PPV[`\0\x80`@\x83\x85\x03\x12\x15a\x17\xBCW`\0\x80\xFD[a\x17\xC5\x83a\x16\x99V[\x91Pa\x17\xD3` \x84\x01a\x16\x99V[\x90P\x92P\x92\x90PV[`\x01\x81\x81\x1C\x90\x82\x16\x80a\x17\xF0W`\x7F\x82\x16\x91P[` \x82\x10\x81\x03a\x12SW\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`\"`\x04R`$`\0\xFD[\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`\x11`\x04R`$`\0\xFD[`\0\x82\x19\x82\x11\x15a\x18kWa\x18ka\x18)V[P\x01\x90V[`\0\x82\x82\x10\x15a\x18\x82Wa\x18\x82a\x18)V[P\x03\x90V[\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`!`\x04R`$`\0\xFD\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x608060405234801561001057600080fd5b50600436106101a35760003560e01c806370a08231116100ee578063ae1f6aaf11610097578063d6c0b2c411610071578063d6c0b2c4146103b1578063dd62ed3e146103ea578063e78cea921461038b578063ee9a31a2146103fd57600080fd5b8063ae1f6aaf1461038b578063c01e1bd6146103b1578063d505accf146103d757600080fd5b80639dc29fac116100c85780639dc29fac14610352578063a457c2d714610365578063a9059cbb1461037857600080fd5b806370a082311461030e5780637ecebe001461033757806395d89b411461034a57600080fd5b8063313ce5671161015057806340c10f191161012a57806340c10f19146102a857806354fd4d50146102bd5780636afdd850146102f957600080fd5b8063313ce5671461025c5780633644e5151461028d578063395093511461029557600080fd5b8063095ea7b311610181578063095ea7b31461022457806318160ddd1461023757806323b872dd1461024957600080fd5b806301ffc9a7146101a8578063033964be146101d057806306fdde031461020f575b600080fd5b6101bb6101b63660046115e4565b610424565b60405190151581526020015b60405180910390f35b6101f77f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016101c7565b610217610515565b6040516101c79190611626565b6101bb6102323660046116b5565b6105a7565b6002545b6040519081526020016101c7565b6101bb6102573660046116df565b6105c1565b60405160ff7f00000000000000000000000000000000000000000000000000000000000000001681526020016101c7565b61023b6105e5565b6101bb6102a33660046116b5565b6105f4565b6102bb6102b63660046116b5565b610616565b005b6102176040518060400160405280600581526020017f312e342e3100000000000000000000000000000000000000000000000000000081525081565b6e22d473030f116ddee9f6b43ac78ba36101f7565b61023b61031c36600461171b565b6001600160a01b031660009081526020819052604090205490565b61023b61034536600461171b565b61070a565b610217610728565b6102bb6103603660046116b5565b610737565b6101bb6103733660046116b5565b61081a565b6101bb6103863660046116b5565b6108ad565b7f00000000000000000000000000000000000000000000000000000000000000006101f7565b7f00000000000000000000000000000000000000000000000000000000000000006101f7565b6102bb6103e5366004611736565b6108bb565b61023b6103f83660046117a9565b610a1f565b6101f77f000000000000000000000000000000000000000000000000000000000000000081565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007f1d1d8b63000000000000000000000000000000000000000000000000000000007fec4fc8e3000000000000000000000000000000000000000000000000000000007fffffffff0000000000000000000000000000000000000000000000000000000085168314806104dd57507fffffffff00000000000000000000000000000000000000000000000000000000858116908316145b8061050c57507fffffffff00000000000000000000000000000000000000000000000000000000858116908216145b95945050505050565b606060038054610524906117dc565b80601f0160208091040260200160405190810160405280929190818152602001828054610550906117dc565b801561059d5780601f106105725761010080835404028352916020019161059d565b820191906000526020600020905b81548152906001019060200180831161058057829003601f168201915b5050505050905090565b6000336105b5818585610aa6565b60019150505b92915050565b6000336105cf858285610bff565b6105da858585610c97565b506001949350505050565b60006105ef610eae565b905090565b6000336105b58185856106078383610a1f565b6106119190611858565b610aa6565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146106b95760405162461bcd60e51b815260206004820152603460248201527f4f7074696d69736d4d696e7461626c6545524332303a206f6e6c79206272696460448201527f67652063616e206d696e7420616e64206275726e00000000000000000000000060648201526084015b60405180910390fd5b6106c38282610fd5565b816001600160a01b03167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885826040516106fe91815260200190565b60405180910390a25050565b6001600160a01b0381166000908152600560205260408120546105bb565b606060048054610524906117dc565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146107d55760405162461bcd60e51b815260206004820152603460248201527f4f7074696d69736d4d696e7461626c6545524332303a206f6e6c79206272696460448201527f67652063616e206d696e7420616e64206275726e00000000000000000000000060648201526084016106b0565b6107df82826110b4565b816001600160a01b03167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5826040516106fe91815260200190565b600033816108288286610a1f565b9050838110156108a05760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084016106b0565b6105da8286868403610aa6565b6000336105b5818585610c97565b8342111561090b5760405162461bcd60e51b815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e6500000060448201526064016106b0565b60007f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c988888861093a8c611231565b6040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e001604051602081830303815290604052805190602001209050600061099582611259565b905060006109a5828787876112c2565b9050896001600160a01b0316816001600160a01b031614610a085760405162461bcd60e51b815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e6174757265000060448201526064016106b0565b610a138a8a8a610aa6565b50505050505050505050565b60007fffffffffffffffffffffffffffffffffffdd2b8cfcf0ee922116094bc538745d6001600160a01b03831601610a7857507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6105bb565b6001600160a01b038084166000908152600160209081526040808320938616835292905220545b9392505050565b6001600160a01b038316610b215760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016106b0565b6001600160a01b038216610b9d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016106b0565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6000610c0b8484610a1f565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610c915781811015610c845760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016106b0565b610c918484848403610aa6565b50505050565b6001600160a01b038316610d135760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016106b0565b6001600160a01b038216610d8f5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f657373000000000000000000000000000000000000000000000000000000000060648201526084016106b0565b6001600160a01b03831660009081526020819052604090205481811015610e1e5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e6365000000000000000000000000000000000000000000000000000060648201526084016106b0565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290610e55908490611858565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610ea191815260200190565b60405180910390a3610c91565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148015610f0757507f000000000000000000000000000000000000000000000000000000000000000046145b15610f3157507f000000000000000000000000000000000000000000000000000000000000000090565b50604080517f00000000000000000000000000000000000000000000000000000000000000006020808301919091527f0000000000000000000000000000000000000000000000000000000000000000828401527f000000000000000000000000000000000000000000000000000000000000000060608301524660808301523060a0808401919091528351808403909101815260c0909201909252805191012090565b6001600160a01b03821661102b5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016106b0565b806002600082825461103d9190611858565b90915550506001600160a01b0382166000908152602081905260408120805483929061106a908490611858565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6001600160a01b0382166111305760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f730000000000000000000000000000000000000000000000000000000000000060648201526084016106b0565b6001600160a01b038216600090815260208190526040902054818110156111bf5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f636500000000000000000000000000000000000000000000000000000000000060648201526084016106b0565b6001600160a01b03831660009081526020819052604081208383039055600280548492906111ee908490611870565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001610bf2565b6001600160a01b03811660009081526005602052604090208054600181018255905b50919050565b60006105bb611266610eae565b836040517f19010000000000000000000000000000000000000000000000000000000000006020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b60008060006112d3878787876112ea565b915091506112e0816113f5565b5095945050505050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561132157506000905060036113ec565b8460ff16601b1415801561133957508460ff16601c14155b1561134a57506000905060046113ec565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa15801561139e573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe001519150506001600160a01b0381166113e5576000600192509250506113ec565b9150600090505b94509492505050565b600081600481111561140957611409611887565b036114115750565b600181600481111561142557611425611887565b036114725760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e6174757265000000000000000060448201526064016106b0565b600281600481111561148657611486611887565b036114d35760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e6774680060448201526064016106b0565b60038160048111156114e7576114e7611887565b0361155a5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c60448201527f756500000000000000000000000000000000000000000000000000000000000060648201526084016106b0565b600481600481111561156e5761156e611887565b036115e15760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c60448201527f756500000000000000000000000000000000000000000000000000000000000060648201526084016106b0565b50565b6000602082840312156115f657600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610a9f57600080fd5b600060208083528351808285015260005b8181101561165357858101830151858201604001528201611637565b81811115611665576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b80356001600160a01b03811681146116b057600080fd5b919050565b600080604083850312156116c857600080fd5b6116d183611699565b946020939093013593505050565b6000806000606084860312156116f457600080fd5b6116fd84611699565b925061170b60208501611699565b9150604084013590509250925092565b60006020828403121561172d57600080fd5b610a9f82611699565b600080600080600080600060e0888a03121561175157600080fd5b61175a88611699565b965061176860208901611699565b95506040880135945060608801359350608088013560ff8116811461178c57600080fd5b9699959850939692959460a0840135945060c09093013592915050565b600080604083850312156117bc57600080fd5b6117c583611699565b91506117d360208401611699565b90509250929050565b600181811c908216806117f057607f821691505b602082108103611253577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000821982111561186b5761186b611829565b500190565b60008282101561188257611882611829565b500390565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fdfea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`\x046\x10a\x01\xA3W`\x005`\xE0\x1C\x80cp\xA0\x821\x11a\0\xEEW\x80c\xAE\x1Fj\xAF\x11a\0\x97W\x80c\xD6\xC0\xB2\xC4\x11a\0qW\x80c\xD6\xC0\xB2\xC4\x14a\x03\xB1W\x80c\xDDb\xED>\x14a\x03\xEAW\x80c\xE7\x8C\xEA\x92\x14a\x03\x8BW\x80c\xEE\x9A1\xA2\x14a\x03\xFDW`\0\x80\xFD[\x80c\xAE\x1Fj\xAF\x14a\x03\x8BW\x80c\xC0\x1E\x1B\xD6\x14a\x03\xB1W\x80c\xD5\x05\xAC\xCF\x14a\x03\xD7W`\0\x80\xFD[\x80c\x9D\xC2\x9F\xAC\x11a\0\xC8W\x80c\x9D\xC2\x9F\xAC\x14a\x03RW\x80c\xA4W\xC2\xD7\x14a\x03eW\x80c\xA9\x05\x9C\xBB\x14a\x03xW`\0\x80\xFD[\x80cp\xA0\x821\x14a\x03\x0EW\x80c~\xCE\xBE\0\x14a\x037W\x80c\x95\xD8\x9BA\x14a\x03JW`\0\x80\xFD[\x80c1<\xE5g\x11a\x01PW\x80c@\xC1\x0F\x19\x11a\x01*W\x80c@\xC1\x0F\x19\x14a\x02\xA8W\x80cT\xFDMP\x14a\x02\xBDW\x80cj\xFD\xD8P\x14a\x02\xF9W`\0\x80\xFD[\x80c1<\xE5g\x14a\x02\\W\x80c6D\xE5\x15\x14a\x02\x8DW\x80c9P\x93Q\x14a\x02\x95W`\0\x80\xFD[\x80c\t^\xA7\xB3\x11a\x01\x81W\x80c\t^\xA7\xB3\x14a\x02$W\x80c\x18\x16\r\xDD\x14a\x027W\x80c#\xB8r\xDD\x14a\x02IW`\0\x80\xFD[\x80c\x01\xFF\xC9\xA7\x14a\x01\xA8W\x80c\x039d\xBE\x14a\x01\xD0W\x80c\x06\xFD\xDE\x03\x14a\x02\x0FW[`\0\x80\xFD[a\x01\xBBa\x01\xB66`\x04a\x15\xE4V[a\x04$V[`@Q\x90\x15\x15\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[a\x01\xF7\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x01a\x01\xC7V[a\x02\x17a\x05\x15V[`@Qa\x01\xC7\x91\x90a\x16&V[a\x01\xBBa\x0226`\x04a\x16\xB5V[a\x05\xA7V[`\x02T[`@Q\x90\x81R` \x01a\x01\xC7V[a\x01\xBBa\x02W6`\x04a\x16\xDFV[a\x05\xC1V[`@Q`\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x81R` \x01a\x01\xC7V[a\x02;a\x05\xE5V[a\x01\xBBa\x02\xA36`\x04a\x16\xB5V[a\x05\xF4V[a\x02\xBBa\x02\xB66`\x04a\x16\xB5V[a\x06\x16V[\0[a\x02\x17`@Q\x80`@\x01`@R\x80`\x05\x81R` \x01\x7F1.4.1\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\x81RP\x81V[n\"\xD4s\x03\x0F\x11m\xDE\xE9\xF6\xB4:\xC7\x8B\xA3a\x01\xF7V[a\x02;a\x03\x1C6`\x04a\x17\x1BV[`\x01`\x01`\xA0\x1B\x03\x16`\0\x90\x81R` \x81\x90R`@\x90 T\x90V[a\x02;a\x03E6`\x04a\x17\x1BV[a\x07\nV[a\x02\x17a\x07(V[a\x02\xBBa\x03`6`\x04a\x16\xB5V[a\x077V[a\x01\xBBa\x03s6`\x04a\x16\xB5V[a\x08\x1AV[a\x01\xBBa\x03\x866`\x04a\x16\xB5V[a\x08\xADV[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x01\xF7V[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x01\xF7V[a\x02\xBBa\x03\xE56`\x04a\x176V[a\x08\xBBV[a\x02;a\x03\xF86`\x04a\x17\xA9V[a\n\x1FV[a\x01\xF7\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[`\0\x7F\x01\xFF\xC9\xA7\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\x7F\x1D\x1D\x8Bc\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\x7F\xECO\xC8\xE3\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\x7F\xFF\xFF\xFF\xFF\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\x85\x16\x83\x14\x80a\x04\xDDWP\x7F\xFF\xFF\xFF\xFF\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\x85\x81\x16\x90\x83\x16\x14[\x80a\x05\x0CWP\x7F\xFF\xFF\xFF\xFF\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\x85\x81\x16\x90\x82\x16\x14[\x95\x94PPPPPV[```\x03\x80Ta\x05$\x90a\x17\xDCV[\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x92\x91\x90\x81\x81R` \x01\x82\x80Ta\x05P\x90a\x17\xDCV[\x80\x15a\x05\x9DW\x80`\x1F\x10a\x05rWa\x01\0\x80\x83T\x04\x02\x83R\x91` \x01\x91a\x05\x9DV[\x82\x01\x91\x90`\0R` `\0 \x90[\x81T\x81R\x90`\x01\x01\x90` \x01\x80\x83\x11a\x05\x80W\x82\x90\x03`\x1F\x16\x82\x01\x91[PPPPP\x90P\x90V[`\x003a\x05\xB5\x81\x85\x85a\n\xA6V[`\x01\x91PP[\x92\x91PPV[`\x003a\x05\xCF\x85\x82\x85a\x0B\xFFV[a\x05\xDA\x85\x85\x85a\x0C\x97V[P`\x01\x94\x93PPPPV[`\0a\x05\xEFa\x0E\xAEV[\x90P\x90V[`\x003a\x05\xB5\x81\x85\x85a\x06\x07\x83\x83a\n\x1FV[a\x06\x11\x91\x90a\x18XV[a\n\xA6V[3`\x01`\x01`\xA0\x1B\x03\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x14a\x06\xB9W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`4`$\x82\x01R\x7FOptimismMintableERC20: only brid`D\x82\x01R\x7Fge can mint and burn\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01[`@Q\x80\x91\x03\x90\xFD[a\x06\xC3\x82\x82a\x0F\xD5V[\x81`\x01`\x01`\xA0\x1B\x03\x16\x7F\x0Fg\x98\xA5`y:T\xC3\xBC\xFE\x86\xA9<\xDE\x1Es\x08}\x94L\x0E\xA2\x05D\x13}A!9h\x85\x82`@Qa\x06\xFE\x91\x81R` \x01\x90V[`@Q\x80\x91\x03\x90\xA2PPV[`\x01`\x01`\xA0\x1B\x03\x81\x16`\0\x90\x81R`\x05` R`@\x81 Ta\x05\xBBV[```\x04\x80Ta\x05$\x90a\x17\xDCV[3`\x01`\x01`\xA0\x1B\x03\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x14a\x07\xD5W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`4`$\x82\x01R\x7FOptimismMintableERC20: only brid`D\x82\x01R\x7Fge can mint and burn\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x06\xB0V[a\x07\xDF\x82\x82a\x10\xB4V[\x81`\x01`\x01`\xA0\x1B\x03\x16\x7F\xCC\x16\xF5\xDB\xB4\x872\x80\x81\\\x1E\xE0\x9D\xBD\x06sl\xFF\xCC\x18D\x12\xCFzq\xA0\xFD\xB7]9|\xA5\x82`@Qa\x06\xFE\x91\x81R` \x01\x90V[`\x003\x81a\x08(\x82\x86a\n\x1FV[\x90P\x83\x81\x10\x15a\x08\xA0W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`%`$\x82\x01R\x7FERC20: decreased allowance below`D\x82\x01R\x7F zero\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`d\x82\x01R`\x84\x01a\x06\xB0V[a\x05\xDA\x82\x86\x86\x84\x03a\n\xA6V[`\x003a\x05\xB5\x81\x85\x85a\x0C\x97V[\x83B\x11\x15a\t\x0BW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1D`$\x82\x01R\x7FERC20Permit: expired deadline\0\0\0`D\x82\x01R`d\x01a\x06\xB0V[`\0\x7Fnq\xED\xAE\x12\xB1\xB9\x7FM\x1F`7\x0F\xEF\x10\x10_\xA2\xFA\xAE\x01&\x11J\x16\x9Cd\x84]a&\xC9\x88\x88\x88a\t:\x8Ca\x121V[`@\x80Q` \x81\x01\x96\x90\x96R`\x01`\x01`\xA0\x1B\x03\x94\x85\x16\x90\x86\x01R\x92\x90\x91\x16``\x84\x01R`\x80\x83\x01R`\xA0\x82\x01R`\xC0\x81\x01\x86\x90R`\xE0\x01`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 \x90P`\0a\t\x95\x82a\x12YV[\x90P`\0a\t\xA5\x82\x87\x87\x87a\x12\xC2V[\x90P\x89`\x01`\x01`\xA0\x1B\x03\x16\x81`\x01`\x01`\xA0\x1B\x03\x16\x14a\n\x08W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1E`$\x82\x01R\x7FERC20Permit: invalid signature\0\0`D\x82\x01R`d\x01a\x06\xB0V[a\n\x13\x8A\x8A\x8Aa\n\xA6V[PPPPPPPPPPV[`\0\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xDD+\x8C\xFC\xF0\xEE\x92!\x16\tK\xC58t]`\x01`\x01`\xA0\x1B\x03\x83\x16\x01a\nxWP\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFFa\x05\xBBV[`\x01`\x01`\xA0\x1B\x03\x80\x84\x16`\0\x90\x81R`\x01` \x90\x81R`@\x80\x83 \x93\x86\x16\x83R\x92\x90R T[\x93\x92PPPV[`\x01`\x01`\xA0\x1B\x03\x83\x16a\x0B!W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`$\x80\x82\x01R\x7FERC20: approve from the zero add`D\x82\x01R\x7Fress\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`d\x82\x01R`\x84\x01a\x06\xB0V[`\x01`\x01`\xA0\x1B\x03\x82\x16a\x0B\x9DW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FERC20: approve to the zero addre`D\x82\x01R\x7Fss\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x06\xB0V[`\x01`\x01`\xA0\x1B\x03\x83\x81\x16`\0\x81\x81R`\x01` \x90\x81R`@\x80\x83 \x94\x87\x16\x80\x84R\x94\x82R\x91\x82\x90 \x85\x90U\x90Q\x84\x81R\x7F\x8C[\xE1\xE5\xEB\xEC}[\xD1OqB}\x1E\x84\xF3\xDD\x03\x14\xC0\xF7\xB2)\x1E[ \n\xC8\xC7\xC3\xB9%\x91\x01[`@Q\x80\x91\x03\x90\xA3PPPV[`\0a\x0C\x0B\x84\x84a\n\x1FV[\x90P\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x14a\x0C\x91W\x81\x81\x10\x15a\x0C\x84W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1D`$\x82\x01R\x7FERC20: insufficient allowance\0\0\0`D\x82\x01R`d\x01a\x06\xB0V[a\x0C\x91\x84\x84\x84\x84\x03a\n\xA6V[PPPPV[`\x01`\x01`\xA0\x1B\x03\x83\x16a\r\x13W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`%`$\x82\x01R\x7FERC20: transfer from the zero ad`D\x82\x01R\x7Fdress\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`d\x82\x01R`\x84\x01a\x06\xB0V[`\x01`\x01`\xA0\x1B\x03\x82\x16a\r\x8FW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`#`$\x82\x01R\x7FERC20: transfer to the zero addr`D\x82\x01R\x7Fess\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x06\xB0V[`\x01`\x01`\xA0\x1B\x03\x83\x16`\0\x90\x81R` \x81\x90R`@\x90 T\x81\x81\x10\x15a\x0E\x1EW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`&`$\x82\x01R\x7FERC20: transfer amount exceeds b`D\x82\x01R\x7Falance\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`d\x82\x01R`\x84\x01a\x06\xB0V[`\x01`\x01`\xA0\x1B\x03\x80\x85\x16`\0\x90\x81R` \x81\x90R`@\x80\x82 \x85\x85\x03\x90U\x91\x85\x16\x81R\x90\x81 \x80T\x84\x92\x90a\x0EU\x90\x84\x90a\x18XV[\x92PP\x81\x90UP\x82`\x01`\x01`\xA0\x1B\x03\x16\x84`\x01`\x01`\xA0\x1B\x03\x16\x7F\xDD\xF2R\xAD\x1B\xE2\xC8\x9Bi\xC2\xB0h\xFC7\x8D\xAA\x95+\xA7\xF1c\xC4\xA1\x16(\xF5ZM\xF5#\xB3\xEF\x84`@Qa\x0E\xA1\x91\x81R` \x01\x90V[`@Q\x80\x91\x03\x90\xA3a\x0C\x91V[`\x000`\x01`\x01`\xA0\x1B\x03\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x14\x80\x15a\x0F\x07WP\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0F\x14[\x15a\x0F1WP\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90V[P`@\x80Q\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0` \x80\x83\x01\x91\x90\x91R\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x82\x84\x01R\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0``\x83\x01RF`\x80\x83\x01R0`\xA0\x80\x84\x01\x91\x90\x91R\x83Q\x80\x84\x03\x90\x91\x01\x81R`\xC0\x90\x92\x01\x90\x92R\x80Q\x91\x01 \x90V[`\x01`\x01`\xA0\x1B\x03\x82\x16a\x10+W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1F`$\x82\x01R\x7FERC20: mint to the zero address\0`D\x82\x01R`d\x01a\x06\xB0V[\x80`\x02`\0\x82\x82Ta\x10=\x91\x90a\x18XV[\x90\x91UPP`\x01`\x01`\xA0\x1B\x03\x82\x16`\0\x90\x81R` \x81\x90R`@\x81 \x80T\x83\x92\x90a\x10j\x90\x84\x90a\x18XV[\x90\x91UPP`@Q\x81\x81R`\x01`\x01`\xA0\x1B\x03\x83\x16\x90`\0\x90\x7F\xDD\xF2R\xAD\x1B\xE2\xC8\x9Bi\xC2\xB0h\xFC7\x8D\xAA\x95+\xA7\xF1c\xC4\xA1\x16(\xF5ZM\xF5#\xB3\xEF\x90` \x01`@Q\x80\x91\x03\x90\xA3PPV[`\x01`\x01`\xA0\x1B\x03\x82\x16a\x110W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`!`$\x82\x01R\x7FERC20: burn from the zero addres`D\x82\x01R\x7Fs\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x06\xB0V[`\x01`\x01`\xA0\x1B\x03\x82\x16`\0\x90\x81R` \x81\x90R`@\x90 T\x81\x81\x10\x15a\x11\xBFW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FERC20: burn amount exceeds balan`D\x82\x01R\x7Fce\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x06\xB0V[`\x01`\x01`\xA0\x1B\x03\x83\x16`\0\x90\x81R` \x81\x90R`@\x81 \x83\x83\x03\x90U`\x02\x80T\x84\x92\x90a\x11\xEE\x90\x84\x90a\x18pV[\x90\x91UPP`@Q\x82\x81R`\0\x90`\x01`\x01`\xA0\x1B\x03\x85\x16\x90\x7F\xDD\xF2R\xAD\x1B\xE2\xC8\x9Bi\xC2\xB0h\xFC7\x8D\xAA\x95+\xA7\xF1c\xC4\xA1\x16(\xF5ZM\xF5#\xB3\xEF\x90` \x01a\x0B\xF2V[`\x01`\x01`\xA0\x1B\x03\x81\x16`\0\x90\x81R`\x05` R`@\x90 \x80T`\x01\x81\x01\x82U\x90[P\x91\x90PV[`\0a\x05\xBBa\x12fa\x0E\xAEV[\x83`@Q\x7F\x19\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0` \x82\x01R`\"\x81\x01\x83\x90R`B\x81\x01\x82\x90R`\0\x90`b\x01`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 \x90P\x92\x91PPV[`\0\x80`\0a\x12\xD3\x87\x87\x87\x87a\x12\xEAV[\x91P\x91Pa\x12\xE0\x81a\x13\xF5V[P\x95\x94PPPPPV[`\0\x80\x7F\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF]WnsW\xA4P\x1D\xDF\xE9/Fh\x1B \xA0\x83\x11\x15a\x13!WP`\0\x90P`\x03a\x13\xECV[\x84`\xFF\x16`\x1B\x14\x15\x80\x15a\x139WP\x84`\xFF\x16`\x1C\x14\x15[\x15a\x13JWP`\0\x90P`\x04a\x13\xECV[`@\x80Q`\0\x80\x82R` \x82\x01\x80\x84R\x89\x90R`\xFF\x88\x16\x92\x82\x01\x92\x90\x92R``\x81\x01\x86\x90R`\x80\x81\x01\x85\x90R`\x01\x90`\xA0\x01` `@Q` \x81\x03\x90\x80\x84\x03\x90\x85Z\xFA\x15\x80\x15a\x13\x9EW=`\0\x80>=`\0\xFD[PP`@Q\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x01Q\x91PP`\x01`\x01`\xA0\x1B\x03\x81\x16a\x13\xE5W`\0`\x01\x92P\x92PPa\x13\xECV[\x91P`\0\x90P[\x94P\x94\x92PPPV[`\0\x81`\x04\x81\x11\x15a\x14\tWa\x14\ta\x18\x87V[\x03a\x14\x11WPV[`\x01\x81`\x04\x81\x11\x15a\x14%Wa\x14%a\x18\x87V[\x03a\x14rW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x18`$\x82\x01R\x7FECDSA: invalid signature\0\0\0\0\0\0\0\0`D\x82\x01R`d\x01a\x06\xB0V[`\x02\x81`\x04\x81\x11\x15a\x14\x86Wa\x14\x86a\x18\x87V[\x03a\x14\xD3W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1F`$\x82\x01R\x7FECDSA: invalid signature length\0`D\x82\x01R`d\x01a\x06\xB0V[`\x03\x81`\x04\x81\x11\x15a\x14\xE7Wa\x14\xE7a\x18\x87V[\x03a\x15ZW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FECDSA: invalid signature 's' val`D\x82\x01R\x7Fue\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x06\xB0V[`\x04\x81`\x04\x81\x11\x15a\x15nWa\x15na\x18\x87V[\x03a\x15\xE1W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FECDSA: invalid signature 'v' val`D\x82\x01R\x7Fue\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x06\xB0V[PV[`\0` \x82\x84\x03\x12\x15a\x15\xF6W`\0\x80\xFD[\x815\x7F\xFF\xFF\xFF\xFF\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\x81\x16\x81\x14a\n\x9FW`\0\x80\xFD[`\0` \x80\x83R\x83Q\x80\x82\x85\x01R`\0[\x81\x81\x10\x15a\x16SW\x85\x81\x01\x83\x01Q\x85\x82\x01`@\x01R\x82\x01a\x167V[\x81\x81\x11\x15a\x16eW`\0`@\x83\x87\x01\x01R[P`\x1F\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x92\x90\x92\x01`@\x01\x93\x92PPPV[\x805`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a\x16\xB0W`\0\x80\xFD[\x91\x90PV[`\0\x80`@\x83\x85\x03\x12\x15a\x16\xC8W`\0\x80\xFD[a\x16\xD1\x83a\x16\x99V[\x94` \x93\x90\x93\x015\x93PPPV[`\0\x80`\0``\x84\x86\x03\x12\x15a\x16\xF4W`\0\x80\xFD[a\x16\xFD\x84a\x16\x99V[\x92Pa\x17\x0B` \x85\x01a\x16\x99V[\x91P`@\x84\x015\x90P\x92P\x92P\x92V[`\0` \x82\x84\x03\x12\x15a\x17-W`\0\x80\xFD[a\n\x9F\x82a\x16\x99V[`\0\x80`\0\x80`\0\x80`\0`\xE0\x88\x8A\x03\x12\x15a\x17QW`\0\x80\xFD[a\x17Z\x88a\x16\x99V[\x96Pa\x17h` \x89\x01a\x16\x99V[\x95P`@\x88\x015\x94P``\x88\x015\x93P`\x80\x88\x015`\xFF\x81\x16\x81\x14a\x17\x8CW`\0\x80\xFD[\x96\x99\x95\x98P\x93\x96\x92\x95\x94`\xA0\x84\x015\x94P`\xC0\x90\x93\x015\x92\x91PPV[`\0\x80`@\x83\x85\x03\x12\x15a\x17\xBCW`\0\x80\xFD[a\x17\xC5\x83a\x16\x99V[\x91Pa\x17\xD3` \x84\x01a\x16\x99V[\x90P\x92P\x92\x90PV[`\x01\x81\x81\x1C\x90\x82\x16\x80a\x17\xF0W`\x7F\x82\x16\x91P[` \x82\x10\x81\x03a\x12SW\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`\"`\x04R`$`\0\xFD[\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`\x11`\x04R`$`\0\xFD[`\0\x82\x19\x82\x11\x15a\x18kWa\x18ka\x18)V[P\x01\x90V[`\0\x82\x82\x10\x15a\x18\x82Wa\x18\x82a\x18)V[P\x03\x90V[\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`!`\x04R`$`\0\xFD\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `Approval(address,address,uint256)` and selector `0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925`. +```solidity +event Approval(address indexed owner, address indexed spender, uint256 value); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct Approval { + #[allow(missing_docs)] + pub owner: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub spender: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub value: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for Approval { + type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "Approval(address,address,uint256)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 140u8, 91u8, 225u8, 229u8, 235u8, 236u8, 125u8, 91u8, 209u8, 79u8, 113u8, + 66u8, 125u8, 30u8, 132u8, 243u8, 221u8, 3u8, 20u8, 192u8, 247u8, 178u8, + 41u8, 30u8, 91u8, 32u8, 10u8, 200u8, 199u8, 195u8, 185u8, 37u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + owner: topics.1, + spender: topics.2, + value: data.0, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.value), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.owner.clone(), self.spender.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.owner, + ); + out[2usize] = ::encode_topic( + &self.spender, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for Approval { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&Approval> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &Approval) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `Burn(address,uint256)` and selector `0xcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5`. +```solidity +event Burn(address indexed account, uint256 amount); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct Burn { + #[allow(missing_docs)] + pub account: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub amount: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for Burn { + type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "Burn(address,uint256)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 204u8, 22u8, 245u8, 219u8, 180u8, 135u8, 50u8, 128u8, 129u8, 92u8, 30u8, + 224u8, 157u8, 189u8, 6u8, 115u8, 108u8, 255u8, 204u8, 24u8, 68u8, 18u8, + 207u8, 122u8, 113u8, 160u8, 253u8, 183u8, 93u8, 57u8, 124u8, 165u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + account: topics.1, + amount: data.0, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.amount), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.account.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.account, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for Burn { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&Burn> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &Burn) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `Mint(address,uint256)` and selector `0x0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885`. +```solidity +event Mint(address indexed account, uint256 amount); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct Mint { + #[allow(missing_docs)] + pub account: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub amount: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for Mint { + type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "Mint(address,uint256)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 15u8, 103u8, 152u8, 165u8, 96u8, 121u8, 58u8, 84u8, 195u8, 188u8, 254u8, + 134u8, 169u8, 60u8, 222u8, 30u8, 115u8, 8u8, 125u8, 148u8, 76u8, 14u8, + 162u8, 5u8, 68u8, 19u8, 125u8, 65u8, 33u8, 57u8, 104u8, 133u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + account: topics.1, + amount: data.0, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.amount), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.account.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.account, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for Mint { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&Mint> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &Mint) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `Transfer(address,address,uint256)` and selector `0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef`. +```solidity +event Transfer(address indexed from, address indexed to, uint256 value); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct Transfer { + #[allow(missing_docs)] + pub from: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub value: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for Transfer { + type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "Transfer(address,address,uint256)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 221u8, 242u8, 82u8, 173u8, 27u8, 226u8, 200u8, 155u8, 105u8, 194u8, + 176u8, 104u8, 252u8, 55u8, 141u8, 170u8, 149u8, 43u8, 167u8, 241u8, 99u8, + 196u8, 161u8, 22u8, 40u8, 245u8, 90u8, 77u8, 245u8, 35u8, 179u8, 239u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + from: topics.1, + to: topics.2, + value: data.0, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.value), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.from.clone(), self.to.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.from, + ); + out[2usize] = ::encode_topic( + &self.to, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for Transfer { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&Transfer> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &Transfer) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + /**Constructor`. +```solidity +constructor(address _bridge, address _remoteToken, string _name, string _symbol, uint8 _decimals); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct constructorCall { + #[allow(missing_docs)] + pub _bridge: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _remoteToken: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _name: alloy::sol_types::private::String, + #[allow(missing_docs)] + pub _symbol: alloy::sol_types::private::String, + #[allow(missing_docs)] + pub _decimals: u8, + } + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::String, + alloy::sol_types::sol_data::String, + alloy::sol_types::sol_data::Uint<8>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::String, + alloy::sol_types::private::String, + u8, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: constructorCall) -> Self { + ( + value._bridge, + value._remoteToken, + value._name, + value._symbol, + value._decimals, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for constructorCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _bridge: tuple.0, + _remoteToken: tuple.1, + _name: tuple.2, + _symbol: tuple.3, + _decimals: tuple.4, + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolConstructor for constructorCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::String, + alloy::sol_types::sol_data::String, + alloy::sol_types::sol_data::Uint<8>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._bridge, + ), + ::tokenize( + &self._remoteToken, + ), + ::tokenize( + &self._name, + ), + ::tokenize( + &self._symbol, + ), + as alloy_sol_types::SolType>::tokenize(&self._decimals), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `BRIDGE()` and selector `0xee9a31a2`. +```solidity +function BRIDGE() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct BRIDGECall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`BRIDGE()`](BRIDGECall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct BRIDGEReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: BRIDGECall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for BRIDGECall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: BRIDGEReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for BRIDGEReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for BRIDGECall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "BRIDGE()"; + const SELECTOR: [u8; 4] = [238u8, 154u8, 49u8, 162u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: BRIDGEReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: BRIDGEReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `DOMAIN_SEPARATOR()` and selector `0x3644e515`. +```solidity +function DOMAIN_SEPARATOR() external view returns (bytes32); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct DOMAIN_SEPARATORCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`DOMAIN_SEPARATOR()`](DOMAIN_SEPARATORCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct DOMAIN_SEPARATORReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: DOMAIN_SEPARATORCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for DOMAIN_SEPARATORCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: DOMAIN_SEPARATORReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for DOMAIN_SEPARATORReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for DOMAIN_SEPARATORCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::FixedBytes<32>; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "DOMAIN_SEPARATOR()"; + const SELECTOR: [u8; 4] = [54u8, 68u8, 229u8, 21u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: DOMAIN_SEPARATORReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: DOMAIN_SEPARATORReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `PERMIT2()` and selector `0x6afdd850`. +```solidity +function PERMIT2() external pure returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct PERMIT2Call; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`PERMIT2()`](PERMIT2Call) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct PERMIT2Return { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: PERMIT2Call) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for PERMIT2Call { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: PERMIT2Return) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for PERMIT2Return { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for PERMIT2Call { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "PERMIT2()"; + const SELECTOR: [u8; 4] = [106u8, 253u8, 216u8, 80u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: PERMIT2Return = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: PERMIT2Return = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `REMOTE_TOKEN()` and selector `0x033964be`. +```solidity +function REMOTE_TOKEN() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct REMOTE_TOKENCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`REMOTE_TOKEN()`](REMOTE_TOKENCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct REMOTE_TOKENReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: REMOTE_TOKENCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for REMOTE_TOKENCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: REMOTE_TOKENReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for REMOTE_TOKENReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for REMOTE_TOKENCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "REMOTE_TOKEN()"; + const SELECTOR: [u8; 4] = [3u8, 57u8, 100u8, 190u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: REMOTE_TOKENReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: REMOTE_TOKENReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `allowance(address,address)` and selector `0xdd62ed3e`. +```solidity +function allowance(address _owner, address _spender) external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct allowanceCall { + #[allow(missing_docs)] + pub _owner: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _spender: alloy::sol_types::private::Address, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`allowance(address,address)`](allowanceCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct allowanceReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: allowanceCall) -> Self { + (value._owner, value._spender) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for allowanceCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _owner: tuple.0, + _spender: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: allowanceReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for allowanceReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for allowanceCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "allowance(address,address)"; + const SELECTOR: [u8; 4] = [221u8, 98u8, 237u8, 62u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._owner, + ), + ::tokenize( + &self._spender, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: allowanceReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: allowanceReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `approve(address,uint256)` and selector `0x095ea7b3`. +```solidity +function approve(address spender, uint256 amount) external returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct approveCall { + #[allow(missing_docs)] + pub spender: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub amount: alloy::sol_types::private::primitives::aliases::U256, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`approve(address,uint256)`](approveCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct approveReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: approveCall) -> Self { + (value.spender, value.amount) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for approveCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + spender: tuple.0, + amount: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: approveReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for approveReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for approveCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "approve(address,uint256)"; + const SELECTOR: [u8; 4] = [9u8, 94u8, 167u8, 179u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.spender, + ), + as alloy_sol_types::SolType>::tokenize(&self.amount), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: approveReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: approveReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `balanceOf(address)` and selector `0x70a08231`. +```solidity +function balanceOf(address account) external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct balanceOfCall { + #[allow(missing_docs)] + pub account: alloy::sol_types::private::Address, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`balanceOf(address)`](balanceOfCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct balanceOfReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: balanceOfCall) -> Self { + (value.account,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for balanceOfCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { account: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: balanceOfReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for balanceOfReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for balanceOfCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "balanceOf(address)"; + const SELECTOR: [u8; 4] = [112u8, 160u8, 130u8, 49u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.account, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: balanceOfReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: balanceOfReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `bridge()` and selector `0xe78cea92`. +```solidity +function bridge() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct bridgeCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`bridge()`](bridgeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct bridgeReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: bridgeCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for bridgeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: bridgeReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for bridgeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for bridgeCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "bridge()"; + const SELECTOR: [u8; 4] = [231u8, 140u8, 234u8, 146u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: bridgeReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: bridgeReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `burn(address,uint256)` and selector `0x9dc29fac`. +```solidity +function burn(address _from, uint256 _amount) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct burnCall { + #[allow(missing_docs)] + pub _from: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _amount: alloy::sol_types::private::primitives::aliases::U256, + } + ///Container type for the return parameters of the [`burn(address,uint256)`](burnCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct burnReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: burnCall) -> Self { + (value._from, value._amount) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for burnCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _from: tuple.0, + _amount: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: burnReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for burnReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl burnReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for burnCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = burnReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "burn(address,uint256)"; + const SELECTOR: [u8; 4] = [157u8, 194u8, 159u8, 172u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._from, + ), + as alloy_sol_types::SolType>::tokenize(&self._amount), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + burnReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `decimals()` and selector `0x313ce567`. +```solidity +function decimals() external view returns (uint8); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct decimalsCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`decimals()`](decimalsCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct decimalsReturn { + #[allow(missing_docs)] + pub _0: u8, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: decimalsCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for decimalsCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<8>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u8,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: decimalsReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for decimalsReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for decimalsCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u8; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<8>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "decimals()"; + const SELECTOR: [u8; 4] = [49u8, 60u8, 229u8, 103u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: decimalsReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: decimalsReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `decreaseAllowance(address,uint256)` and selector `0xa457c2d7`. +```solidity +function decreaseAllowance(address spender, uint256 subtractedValue) external returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct decreaseAllowanceCall { + #[allow(missing_docs)] + pub spender: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub subtractedValue: alloy::sol_types::private::primitives::aliases::U256, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`decreaseAllowance(address,uint256)`](decreaseAllowanceCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct decreaseAllowanceReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: decreaseAllowanceCall) -> Self { + (value.spender, value.subtractedValue) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for decreaseAllowanceCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + spender: tuple.0, + subtractedValue: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: decreaseAllowanceReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for decreaseAllowanceReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for decreaseAllowanceCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "decreaseAllowance(address,uint256)"; + const SELECTOR: [u8; 4] = [164u8, 87u8, 194u8, 215u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.spender, + ), + as alloy_sol_types::SolType>::tokenize(&self.subtractedValue), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: decreaseAllowanceReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: decreaseAllowanceReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `increaseAllowance(address,uint256)` and selector `0x39509351`. +```solidity +function increaseAllowance(address spender, uint256 addedValue) external returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct increaseAllowanceCall { + #[allow(missing_docs)] + pub spender: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub addedValue: alloy::sol_types::private::primitives::aliases::U256, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`increaseAllowance(address,uint256)`](increaseAllowanceCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct increaseAllowanceReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: increaseAllowanceCall) -> Self { + (value.spender, value.addedValue) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for increaseAllowanceCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + spender: tuple.0, + addedValue: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: increaseAllowanceReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for increaseAllowanceReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for increaseAllowanceCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "increaseAllowance(address,uint256)"; + const SELECTOR: [u8; 4] = [57u8, 80u8, 147u8, 81u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.spender, + ), + as alloy_sol_types::SolType>::tokenize(&self.addedValue), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: increaseAllowanceReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: increaseAllowanceReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `l1Token()` and selector `0xc01e1bd6`. +```solidity +function l1Token() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct l1TokenCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`l1Token()`](l1TokenCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct l1TokenReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: l1TokenCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for l1TokenCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: l1TokenReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for l1TokenReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for l1TokenCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "l1Token()"; + const SELECTOR: [u8; 4] = [192u8, 30u8, 27u8, 214u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: l1TokenReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: l1TokenReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `l2Bridge()` and selector `0xae1f6aaf`. +```solidity +function l2Bridge() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct l2BridgeCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`l2Bridge()`](l2BridgeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct l2BridgeReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: l2BridgeCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for l2BridgeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: l2BridgeReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for l2BridgeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for l2BridgeCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "l2Bridge()"; + const SELECTOR: [u8; 4] = [174u8, 31u8, 106u8, 175u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: l2BridgeReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: l2BridgeReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `mint(address,uint256)` and selector `0x40c10f19`. +```solidity +function mint(address _to, uint256 _amount) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct mintCall { + #[allow(missing_docs)] + pub _to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _amount: alloy::sol_types::private::primitives::aliases::U256, + } + ///Container type for the return parameters of the [`mint(address,uint256)`](mintCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct mintReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: mintCall) -> Self { + (value._to, value._amount) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for mintCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _to: tuple.0, + _amount: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: mintReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for mintReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl mintReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for mintCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = mintReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "mint(address,uint256)"; + const SELECTOR: [u8; 4] = [64u8, 193u8, 15u8, 25u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._to, + ), + as alloy_sol_types::SolType>::tokenize(&self._amount), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + mintReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `name()` and selector `0x06fdde03`. +```solidity +function name() external view returns (string memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct nameCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`name()`](nameCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct nameReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: nameCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for nameCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: nameReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for nameReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for nameCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::String; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "name()"; + const SELECTOR: [u8; 4] = [6u8, 253u8, 222u8, 3u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: nameReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: nameReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `nonces(address)` and selector `0x7ecebe00`. +```solidity +function nonces(address owner) external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct noncesCall { + #[allow(missing_docs)] + pub owner: alloy::sol_types::private::Address, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`nonces(address)`](noncesCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct noncesReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: noncesCall) -> Self { + (value.owner,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for noncesCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { owner: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: noncesReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for noncesReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for noncesCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "nonces(address)"; + const SELECTOR: [u8; 4] = [126u8, 206u8, 190u8, 0u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.owner, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: noncesReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: noncesReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `permit(address,address,uint256,uint256,uint8,bytes32,bytes32)` and selector `0xd505accf`. +```solidity +function permit(address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct permitCall { + #[allow(missing_docs)] + pub owner: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub spender: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub value: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub deadline: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub v: u8, + #[allow(missing_docs)] + pub r: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub s: alloy::sol_types::private::FixedBytes<32>, + } + ///Container type for the return parameters of the [`permit(address,address,uint256,uint256,uint8,bytes32,bytes32)`](permitCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct permitReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<8>, + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::primitives::aliases::U256, + u8, + alloy::sol_types::private::FixedBytes<32>, + alloy::sol_types::private::FixedBytes<32>, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: permitCall) -> Self { + ( + value.owner, + value.spender, + value.value, + value.deadline, + value.v, + value.r, + value.s, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for permitCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + owner: tuple.0, + spender: tuple.1, + value: tuple.2, + deadline: tuple.3, + v: tuple.4, + r: tuple.5, + s: tuple.6, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: permitReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for permitReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl permitReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for permitCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<8>, + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = permitReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "permit(address,address,uint256,uint256,uint8,bytes32,bytes32)"; + const SELECTOR: [u8; 4] = [213u8, 5u8, 172u8, 207u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.owner, + ), + ::tokenize( + &self.spender, + ), + as alloy_sol_types::SolType>::tokenize(&self.value), + as alloy_sol_types::SolType>::tokenize(&self.deadline), + as alloy_sol_types::SolType>::tokenize(&self.v), + as alloy_sol_types::SolType>::tokenize(&self.r), + as alloy_sol_types::SolType>::tokenize(&self.s), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + permitReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `remoteToken()` and selector `0xd6c0b2c4`. +```solidity +function remoteToken() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct remoteTokenCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`remoteToken()`](remoteTokenCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct remoteTokenReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: remoteTokenCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for remoteTokenCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: remoteTokenReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for remoteTokenReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for remoteTokenCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "remoteToken()"; + const SELECTOR: [u8; 4] = [214u8, 192u8, 178u8, 196u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: remoteTokenReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: remoteTokenReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `supportsInterface(bytes4)` and selector `0x01ffc9a7`. +```solidity +function supportsInterface(bytes4 _interfaceId) external pure returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct supportsInterfaceCall { + #[allow(missing_docs)] + pub _interfaceId: alloy::sol_types::private::FixedBytes<4>, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`supportsInterface(bytes4)`](supportsInterfaceCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct supportsInterfaceReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<4>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<4>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: supportsInterfaceCall) -> Self { + (value._interfaceId,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for supportsInterfaceCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _interfaceId: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: supportsInterfaceReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for supportsInterfaceReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for supportsInterfaceCall { + type Parameters<'a> = (alloy::sol_types::sol_data::FixedBytes<4>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "supportsInterface(bytes4)"; + const SELECTOR: [u8; 4] = [1u8, 255u8, 201u8, 167u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._interfaceId), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: supportsInterfaceReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: supportsInterfaceReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `symbol()` and selector `0x95d89b41`. +```solidity +function symbol() external view returns (string memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct symbolCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`symbol()`](symbolCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct symbolReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: symbolCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for symbolCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: symbolReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for symbolReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for symbolCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::String; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "symbol()"; + const SELECTOR: [u8; 4] = [149u8, 216u8, 155u8, 65u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: symbolReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: symbolReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `totalSupply()` and selector `0x18160ddd`. +```solidity +function totalSupply() external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct totalSupplyCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`totalSupply()`](totalSupplyCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct totalSupplyReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: totalSupplyCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for totalSupplyCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: totalSupplyReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for totalSupplyReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for totalSupplyCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "totalSupply()"; + const SELECTOR: [u8; 4] = [24u8, 22u8, 13u8, 221u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: totalSupplyReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: totalSupplyReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `transfer(address,uint256)` and selector `0xa9059cbb`. +```solidity +function transfer(address to, uint256 amount) external returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct transferCall { + #[allow(missing_docs)] + pub to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub amount: alloy::sol_types::private::primitives::aliases::U256, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`transfer(address,uint256)`](transferCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct transferReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: transferCall) -> Self { + (value.to, value.amount) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for transferCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + to: tuple.0, + amount: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: transferReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for transferReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for transferCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "transfer(address,uint256)"; + const SELECTOR: [u8; 4] = [169u8, 5u8, 156u8, 187u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.to, + ), + as alloy_sol_types::SolType>::tokenize(&self.amount), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: transferReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: transferReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd`. +```solidity +function transferFrom(address from, address to, uint256 amount) external returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct transferFromCall { + #[allow(missing_docs)] + pub from: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub amount: alloy::sol_types::private::primitives::aliases::U256, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`transferFrom(address,address,uint256)`](transferFromCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct transferFromReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: transferFromCall) -> Self { + (value.from, value.to, value.amount) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for transferFromCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + from: tuple.0, + to: tuple.1, + amount: tuple.2, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: transferFromReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for transferFromReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for transferFromCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "transferFrom(address,address,uint256)"; + const SELECTOR: [u8; 4] = [35u8, 184u8, 114u8, 221u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.from, + ), + ::tokenize( + &self.to, + ), + as alloy_sol_types::SolType>::tokenize(&self.amount), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: transferFromReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: transferFromReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `version()` and selector `0x54fd4d50`. +```solidity +function version() external view returns (string memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`version()`](versionCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for versionCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::String; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "version()"; + const SELECTOR: [u8; 4] = [84u8, 253u8, 77u8, 80u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + } + }; + ///Container for all the [`OptimismMintableERC20`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum OptimismMintableERC20Calls { + #[allow(missing_docs)] + BRIDGE(BRIDGECall), + #[allow(missing_docs)] + DOMAIN_SEPARATOR(DOMAIN_SEPARATORCall), + #[allow(missing_docs)] + PERMIT2(PERMIT2Call), + #[allow(missing_docs)] + REMOTE_TOKEN(REMOTE_TOKENCall), + #[allow(missing_docs)] + allowance(allowanceCall), + #[allow(missing_docs)] + approve(approveCall), + #[allow(missing_docs)] + balanceOf(balanceOfCall), + #[allow(missing_docs)] + bridge(bridgeCall), + #[allow(missing_docs)] + burn(burnCall), + #[allow(missing_docs)] + decimals(decimalsCall), + #[allow(missing_docs)] + decreaseAllowance(decreaseAllowanceCall), + #[allow(missing_docs)] + increaseAllowance(increaseAllowanceCall), + #[allow(missing_docs)] + l1Token(l1TokenCall), + #[allow(missing_docs)] + l2Bridge(l2BridgeCall), + #[allow(missing_docs)] + mint(mintCall), + #[allow(missing_docs)] + name(nameCall), + #[allow(missing_docs)] + nonces(noncesCall), + #[allow(missing_docs)] + permit(permitCall), + #[allow(missing_docs)] + remoteToken(remoteTokenCall), + #[allow(missing_docs)] + supportsInterface(supportsInterfaceCall), + #[allow(missing_docs)] + symbol(symbolCall), + #[allow(missing_docs)] + totalSupply(totalSupplyCall), + #[allow(missing_docs)] + transfer(transferCall), + #[allow(missing_docs)] + transferFrom(transferFromCall), + #[allow(missing_docs)] + version(versionCall), + } + impl OptimismMintableERC20Calls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [1u8, 255u8, 201u8, 167u8], + [3u8, 57u8, 100u8, 190u8], + [6u8, 253u8, 222u8, 3u8], + [9u8, 94u8, 167u8, 179u8], + [24u8, 22u8, 13u8, 221u8], + [35u8, 184u8, 114u8, 221u8], + [49u8, 60u8, 229u8, 103u8], + [54u8, 68u8, 229u8, 21u8], + [57u8, 80u8, 147u8, 81u8], + [64u8, 193u8, 15u8, 25u8], + [84u8, 253u8, 77u8, 80u8], + [106u8, 253u8, 216u8, 80u8], + [112u8, 160u8, 130u8, 49u8], + [126u8, 206u8, 190u8, 0u8], + [149u8, 216u8, 155u8, 65u8], + [157u8, 194u8, 159u8, 172u8], + [164u8, 87u8, 194u8, 215u8], + [169u8, 5u8, 156u8, 187u8], + [174u8, 31u8, 106u8, 175u8], + [192u8, 30u8, 27u8, 214u8], + [213u8, 5u8, 172u8, 207u8], + [214u8, 192u8, 178u8, 196u8], + [221u8, 98u8, 237u8, 62u8], + [231u8, 140u8, 234u8, 146u8], + [238u8, 154u8, 49u8, 162u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(supportsInterface), + ::core::stringify!(REMOTE_TOKEN), + ::core::stringify!(name), + ::core::stringify!(approve), + ::core::stringify!(totalSupply), + ::core::stringify!(transferFrom), + ::core::stringify!(decimals), + ::core::stringify!(DOMAIN_SEPARATOR), + ::core::stringify!(increaseAllowance), + ::core::stringify!(mint), + ::core::stringify!(version), + ::core::stringify!(PERMIT2), + ::core::stringify!(balanceOf), + ::core::stringify!(nonces), + ::core::stringify!(symbol), + ::core::stringify!(burn), + ::core::stringify!(decreaseAllowance), + ::core::stringify!(transfer), + ::core::stringify!(l2Bridge), + ::core::stringify!(l1Token), + ::core::stringify!(permit), + ::core::stringify!(remoteToken), + ::core::stringify!(allowance), + ::core::stringify!(bridge), + ::core::stringify!(BRIDGE), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for OptimismMintableERC20Calls { + const NAME: &'static str = "OptimismMintableERC20Calls"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 25usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::BRIDGE(_) => ::SELECTOR, + Self::DOMAIN_SEPARATOR(_) => { + ::SELECTOR + } + Self::PERMIT2(_) => ::SELECTOR, + Self::REMOTE_TOKEN(_) => { + ::SELECTOR + } + Self::allowance(_) => { + ::SELECTOR + } + Self::approve(_) => ::SELECTOR, + Self::balanceOf(_) => { + ::SELECTOR + } + Self::bridge(_) => ::SELECTOR, + Self::burn(_) => ::SELECTOR, + Self::decimals(_) => ::SELECTOR, + Self::decreaseAllowance(_) => { + ::SELECTOR + } + Self::increaseAllowance(_) => { + ::SELECTOR + } + Self::l1Token(_) => ::SELECTOR, + Self::l2Bridge(_) => ::SELECTOR, + Self::mint(_) => ::SELECTOR, + Self::name(_) => ::SELECTOR, + Self::nonces(_) => ::SELECTOR, + Self::permit(_) => ::SELECTOR, + Self::remoteToken(_) => { + ::SELECTOR + } + Self::supportsInterface(_) => { + ::SELECTOR + } + Self::symbol(_) => ::SELECTOR, + Self::totalSupply(_) => { + ::SELECTOR + } + Self::transfer(_) => ::SELECTOR, + Self::transferFrom(_) => { + ::SELECTOR + } + Self::version(_) => ::SELECTOR, + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn supportsInterface( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OptimismMintableERC20Calls::supportsInterface) + } + supportsInterface + }, + { + fn REMOTE_TOKEN( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OptimismMintableERC20Calls::REMOTE_TOKEN) + } + REMOTE_TOKEN + }, + { + fn name( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(OptimismMintableERC20Calls::name) + } + name + }, + { + fn approve( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(OptimismMintableERC20Calls::approve) + } + approve + }, + { + fn totalSupply( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OptimismMintableERC20Calls::totalSupply) + } + totalSupply + }, + { + fn transferFrom( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OptimismMintableERC20Calls::transferFrom) + } + transferFrom + }, + { + fn decimals( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(OptimismMintableERC20Calls::decimals) + } + decimals + }, + { + fn DOMAIN_SEPARATOR( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OptimismMintableERC20Calls::DOMAIN_SEPARATOR) + } + DOMAIN_SEPARATOR + }, + { + fn increaseAllowance( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OptimismMintableERC20Calls::increaseAllowance) + } + increaseAllowance + }, + { + fn mint( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(OptimismMintableERC20Calls::mint) + } + mint + }, + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(OptimismMintableERC20Calls::version) + } + version + }, + { + fn PERMIT2( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(OptimismMintableERC20Calls::PERMIT2) + } + PERMIT2 + }, + { + fn balanceOf( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(OptimismMintableERC20Calls::balanceOf) + } + balanceOf + }, + { + fn nonces( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(OptimismMintableERC20Calls::nonces) + } + nonces + }, + { + fn symbol( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(OptimismMintableERC20Calls::symbol) + } + symbol + }, + { + fn burn( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(OptimismMintableERC20Calls::burn) + } + burn + }, + { + fn decreaseAllowance( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OptimismMintableERC20Calls::decreaseAllowance) + } + decreaseAllowance + }, + { + fn transfer( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(OptimismMintableERC20Calls::transfer) + } + transfer + }, + { + fn l2Bridge( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(OptimismMintableERC20Calls::l2Bridge) + } + l2Bridge + }, + { + fn l1Token( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(OptimismMintableERC20Calls::l1Token) + } + l1Token + }, + { + fn permit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(OptimismMintableERC20Calls::permit) + } + permit + }, + { + fn remoteToken( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OptimismMintableERC20Calls::remoteToken) + } + remoteToken + }, + { + fn allowance( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(OptimismMintableERC20Calls::allowance) + } + allowance + }, + { + fn bridge( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(OptimismMintableERC20Calls::bridge) + } + bridge + }, + { + fn BRIDGE( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(OptimismMintableERC20Calls::BRIDGE) + } + BRIDGE + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn supportsInterface( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismMintableERC20Calls::supportsInterface) + } + supportsInterface + }, + { + fn REMOTE_TOKEN( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismMintableERC20Calls::REMOTE_TOKEN) + } + REMOTE_TOKEN + }, + { + fn name( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismMintableERC20Calls::name) + } + name + }, + { + fn approve( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismMintableERC20Calls::approve) + } + approve + }, + { + fn totalSupply( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismMintableERC20Calls::totalSupply) + } + totalSupply + }, + { + fn transferFrom( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismMintableERC20Calls::transferFrom) + } + transferFrom + }, + { + fn decimals( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismMintableERC20Calls::decimals) + } + decimals + }, + { + fn DOMAIN_SEPARATOR( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismMintableERC20Calls::DOMAIN_SEPARATOR) + } + DOMAIN_SEPARATOR + }, + { + fn increaseAllowance( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismMintableERC20Calls::increaseAllowance) + } + increaseAllowance + }, + { + fn mint( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismMintableERC20Calls::mint) + } + mint + }, + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismMintableERC20Calls::version) + } + version + }, + { + fn PERMIT2( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismMintableERC20Calls::PERMIT2) + } + PERMIT2 + }, + { + fn balanceOf( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismMintableERC20Calls::balanceOf) + } + balanceOf + }, + { + fn nonces( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismMintableERC20Calls::nonces) + } + nonces + }, + { + fn symbol( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismMintableERC20Calls::symbol) + } + symbol + }, + { + fn burn( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismMintableERC20Calls::burn) + } + burn + }, + { + fn decreaseAllowance( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismMintableERC20Calls::decreaseAllowance) + } + decreaseAllowance + }, + { + fn transfer( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismMintableERC20Calls::transfer) + } + transfer + }, + { + fn l2Bridge( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismMintableERC20Calls::l2Bridge) + } + l2Bridge + }, + { + fn l1Token( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismMintableERC20Calls::l1Token) + } + l1Token + }, + { + fn permit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismMintableERC20Calls::permit) + } + permit + }, + { + fn remoteToken( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismMintableERC20Calls::remoteToken) + } + remoteToken + }, + { + fn allowance( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismMintableERC20Calls::allowance) + } + allowance + }, + { + fn bridge( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismMintableERC20Calls::bridge) + } + bridge + }, + { + fn BRIDGE( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismMintableERC20Calls::BRIDGE) + } + BRIDGE + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::BRIDGE(inner) => { + ::abi_encoded_size(inner) + } + Self::DOMAIN_SEPARATOR(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::PERMIT2(inner) => { + ::abi_encoded_size(inner) + } + Self::REMOTE_TOKEN(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::allowance(inner) => { + ::abi_encoded_size(inner) + } + Self::approve(inner) => { + ::abi_encoded_size(inner) + } + Self::balanceOf(inner) => { + ::abi_encoded_size(inner) + } + Self::bridge(inner) => { + ::abi_encoded_size(inner) + } + Self::burn(inner) => { + ::abi_encoded_size(inner) + } + Self::decimals(inner) => { + ::abi_encoded_size(inner) + } + Self::decreaseAllowance(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::increaseAllowance(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::l1Token(inner) => { + ::abi_encoded_size(inner) + } + Self::l2Bridge(inner) => { + ::abi_encoded_size(inner) + } + Self::mint(inner) => { + ::abi_encoded_size(inner) + } + Self::name(inner) => { + ::abi_encoded_size(inner) + } + Self::nonces(inner) => { + ::abi_encoded_size(inner) + } + Self::permit(inner) => { + ::abi_encoded_size(inner) + } + Self::remoteToken(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::supportsInterface(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::symbol(inner) => { + ::abi_encoded_size(inner) + } + Self::totalSupply(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::transfer(inner) => { + ::abi_encoded_size(inner) + } + Self::transferFrom(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::version(inner) => { + ::abi_encoded_size(inner) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::BRIDGE(inner) => { + ::abi_encode_raw(inner, out) + } + Self::DOMAIN_SEPARATOR(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::PERMIT2(inner) => { + ::abi_encode_raw(inner, out) + } + Self::REMOTE_TOKEN(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::allowance(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::approve(inner) => { + ::abi_encode_raw(inner, out) + } + Self::balanceOf(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::bridge(inner) => { + ::abi_encode_raw(inner, out) + } + Self::burn(inner) => { + ::abi_encode_raw(inner, out) + } + Self::decimals(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::decreaseAllowance(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::increaseAllowance(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::l1Token(inner) => { + ::abi_encode_raw(inner, out) + } + Self::l2Bridge(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::mint(inner) => { + ::abi_encode_raw(inner, out) + } + Self::name(inner) => { + ::abi_encode_raw(inner, out) + } + Self::nonces(inner) => { + ::abi_encode_raw(inner, out) + } + Self::permit(inner) => { + ::abi_encode_raw(inner, out) + } + Self::remoteToken(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::supportsInterface(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::symbol(inner) => { + ::abi_encode_raw(inner, out) + } + Self::totalSupply(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::transfer(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::transferFrom(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::version(inner) => { + ::abi_encode_raw(inner, out) + } + } + } + } + ///Container for all the [`OptimismMintableERC20`](self) events. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum OptimismMintableERC20Events { + #[allow(missing_docs)] + Approval(Approval), + #[allow(missing_docs)] + Burn(Burn), + #[allow(missing_docs)] + Mint(Mint), + #[allow(missing_docs)] + Transfer(Transfer), + } + impl OptimismMintableERC20Events { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 32usize]] = &[ + [ + 15u8, 103u8, 152u8, 165u8, 96u8, 121u8, 58u8, 84u8, 195u8, 188u8, 254u8, + 134u8, 169u8, 60u8, 222u8, 30u8, 115u8, 8u8, 125u8, 148u8, 76u8, 14u8, + 162u8, 5u8, 68u8, 19u8, 125u8, 65u8, 33u8, 57u8, 104u8, 133u8, + ], + [ + 140u8, 91u8, 225u8, 229u8, 235u8, 236u8, 125u8, 91u8, 209u8, 79u8, 113u8, + 66u8, 125u8, 30u8, 132u8, 243u8, 221u8, 3u8, 20u8, 192u8, 247u8, 178u8, + 41u8, 30u8, 91u8, 32u8, 10u8, 200u8, 199u8, 195u8, 185u8, 37u8, + ], + [ + 204u8, 22u8, 245u8, 219u8, 180u8, 135u8, 50u8, 128u8, 129u8, 92u8, 30u8, + 224u8, 157u8, 189u8, 6u8, 115u8, 108u8, 255u8, 204u8, 24u8, 68u8, 18u8, + 207u8, 122u8, 113u8, 160u8, 253u8, 183u8, 93u8, 57u8, 124u8, 165u8, + ], + [ + 221u8, 242u8, 82u8, 173u8, 27u8, 226u8, 200u8, 155u8, 105u8, 194u8, + 176u8, 104u8, 252u8, 55u8, 141u8, 170u8, 149u8, 43u8, 167u8, 241u8, 99u8, + 196u8, 161u8, 22u8, 40u8, 245u8, 90u8, 77u8, 245u8, 35u8, 179u8, 239u8, + ], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(Mint), + ::core::stringify!(Approval), + ::core::stringify!(Burn), + ::core::stringify!(Transfer), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolEventInterface for OptimismMintableERC20Events { + const NAME: &'static str = "OptimismMintableERC20Events"; + const COUNT: usize = 4usize; + fn decode_raw_log( + topics: &[alloy_sol_types::Word], + data: &[u8], + ) -> alloy_sol_types::Result { + match topics.first().copied() { + Some(::SIGNATURE_HASH) => { + ::decode_raw_log(topics, data) + .map(Self::Approval) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log(topics, data) + .map(Self::Burn) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log(topics, data) + .map(Self::Mint) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log(topics, data) + .map(Self::Transfer) + } + _ => { + alloy_sol_types::private::Err(alloy_sol_types::Error::InvalidLog { + name: ::NAME, + log: alloy_sol_types::private::Box::new( + alloy_sol_types::private::LogData::new_unchecked( + topics.to_vec(), + data.to_vec().into(), + ), + ), + }) + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for OptimismMintableERC20Events { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + match self { + Self::Approval(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::Burn(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::Mint(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::Transfer(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + } + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + match self { + Self::Approval(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::Burn(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::Mint(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::Transfer(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`OptimismMintableERC20`](self) contract instance. + +See the [wrapper's documentation](`OptimismMintableERC20Instance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> OptimismMintableERC20Instance { + OptimismMintableERC20Instance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + _bridge: alloy::sol_types::private::Address, + _remoteToken: alloy::sol_types::private::Address, + _name: alloy::sol_types::private::String, + _symbol: alloy::sol_types::private::String, + _decimals: u8, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + OptimismMintableERC20Instance::< + P, + N, + >::deploy(__provider, _bridge, _remoteToken, _name, _symbol, _decimals) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + _bridge: alloy::sol_types::private::Address, + _remoteToken: alloy::sol_types::private::Address, + _name: alloy::sol_types::private::String, + _symbol: alloy::sol_types::private::String, + _decimals: u8, + ) -> alloy_contract::RawCallBuilder { + OptimismMintableERC20Instance::< + P, + N, + >::deploy_builder(__provider, _bridge, _remoteToken, _name, _symbol, _decimals) + } + /**A [`OptimismMintableERC20`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`OptimismMintableERC20`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct OptimismMintableERC20Instance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for OptimismMintableERC20Instance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("OptimismMintableERC20Instance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > OptimismMintableERC20Instance { + /**Creates a new wrapper around an on-chain [`OptimismMintableERC20`](self) contract instance. + +See the [wrapper's documentation](`OptimismMintableERC20Instance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + _bridge: alloy::sol_types::private::Address, + _remoteToken: alloy::sol_types::private::Address, + _name: alloy::sol_types::private::String, + _symbol: alloy::sol_types::private::String, + _decimals: u8, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder( + __provider, + _bridge, + _remoteToken, + _name, + _symbol, + _decimals, + ); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder( + __provider: P, + _bridge: alloy::sol_types::private::Address, + _remoteToken: alloy::sol_types::private::Address, + _name: alloy::sol_types::private::String, + _symbol: alloy::sol_types::private::String, + _decimals: u8, + ) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + [ + &BYTECODE[..], + &alloy_sol_types::SolConstructor::abi_encode( + &constructorCall { + _bridge, + _remoteToken, + _name, + _symbol, + _decimals, + }, + )[..], + ] + .concat() + .into(), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl OptimismMintableERC20Instance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> OptimismMintableERC20Instance { + OptimismMintableERC20Instance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > OptimismMintableERC20Instance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`BRIDGE`] function. + pub fn BRIDGE(&self) -> alloy_contract::SolCallBuilder<&P, BRIDGECall, N> { + self.call_builder(&BRIDGECall) + } + ///Creates a new call builder for the [`DOMAIN_SEPARATOR`] function. + pub fn DOMAIN_SEPARATOR( + &self, + ) -> alloy_contract::SolCallBuilder<&P, DOMAIN_SEPARATORCall, N> { + self.call_builder(&DOMAIN_SEPARATORCall) + } + ///Creates a new call builder for the [`PERMIT2`] function. + pub fn PERMIT2(&self) -> alloy_contract::SolCallBuilder<&P, PERMIT2Call, N> { + self.call_builder(&PERMIT2Call) + } + ///Creates a new call builder for the [`REMOTE_TOKEN`] function. + pub fn REMOTE_TOKEN( + &self, + ) -> alloy_contract::SolCallBuilder<&P, REMOTE_TOKENCall, N> { + self.call_builder(&REMOTE_TOKENCall) + } + ///Creates a new call builder for the [`allowance`] function. + pub fn allowance( + &self, + _owner: alloy::sol_types::private::Address, + _spender: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, allowanceCall, N> { + self.call_builder(&allowanceCall { _owner, _spender }) + } + ///Creates a new call builder for the [`approve`] function. + pub fn approve( + &self, + spender: alloy::sol_types::private::Address, + amount: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, approveCall, N> { + self.call_builder(&approveCall { spender, amount }) + } + ///Creates a new call builder for the [`balanceOf`] function. + pub fn balanceOf( + &self, + account: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, balanceOfCall, N> { + self.call_builder(&balanceOfCall { account }) + } + ///Creates a new call builder for the [`bridge`] function. + pub fn bridge(&self) -> alloy_contract::SolCallBuilder<&P, bridgeCall, N> { + self.call_builder(&bridgeCall) + } + ///Creates a new call builder for the [`burn`] function. + pub fn burn( + &self, + _from: alloy::sol_types::private::Address, + _amount: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, burnCall, N> { + self.call_builder(&burnCall { _from, _amount }) + } + ///Creates a new call builder for the [`decimals`] function. + pub fn decimals(&self) -> alloy_contract::SolCallBuilder<&P, decimalsCall, N> { + self.call_builder(&decimalsCall) + } + ///Creates a new call builder for the [`decreaseAllowance`] function. + pub fn decreaseAllowance( + &self, + spender: alloy::sol_types::private::Address, + subtractedValue: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, decreaseAllowanceCall, N> { + self.call_builder( + &decreaseAllowanceCall { + spender, + subtractedValue, + }, + ) + } + ///Creates a new call builder for the [`increaseAllowance`] function. + pub fn increaseAllowance( + &self, + spender: alloy::sol_types::private::Address, + addedValue: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, increaseAllowanceCall, N> { + self.call_builder( + &increaseAllowanceCall { + spender, + addedValue, + }, + ) + } + ///Creates a new call builder for the [`l1Token`] function. + pub fn l1Token(&self) -> alloy_contract::SolCallBuilder<&P, l1TokenCall, N> { + self.call_builder(&l1TokenCall) + } + ///Creates a new call builder for the [`l2Bridge`] function. + pub fn l2Bridge(&self) -> alloy_contract::SolCallBuilder<&P, l2BridgeCall, N> { + self.call_builder(&l2BridgeCall) + } + ///Creates a new call builder for the [`mint`] function. + pub fn mint( + &self, + _to: alloy::sol_types::private::Address, + _amount: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, mintCall, N> { + self.call_builder(&mintCall { _to, _amount }) + } + ///Creates a new call builder for the [`name`] function. + pub fn name(&self) -> alloy_contract::SolCallBuilder<&P, nameCall, N> { + self.call_builder(&nameCall) + } + ///Creates a new call builder for the [`nonces`] function. + pub fn nonces( + &self, + owner: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, noncesCall, N> { + self.call_builder(&noncesCall { owner }) + } + ///Creates a new call builder for the [`permit`] function. + pub fn permit( + &self, + owner: alloy::sol_types::private::Address, + spender: alloy::sol_types::private::Address, + value: alloy::sol_types::private::primitives::aliases::U256, + deadline: alloy::sol_types::private::primitives::aliases::U256, + v: u8, + r: alloy::sol_types::private::FixedBytes<32>, + s: alloy::sol_types::private::FixedBytes<32>, + ) -> alloy_contract::SolCallBuilder<&P, permitCall, N> { + self.call_builder( + &permitCall { + owner, + spender, + value, + deadline, + v, + r, + s, + }, + ) + } + ///Creates a new call builder for the [`remoteToken`] function. + pub fn remoteToken( + &self, + ) -> alloy_contract::SolCallBuilder<&P, remoteTokenCall, N> { + self.call_builder(&remoteTokenCall) + } + ///Creates a new call builder for the [`supportsInterface`] function. + pub fn supportsInterface( + &self, + _interfaceId: alloy::sol_types::private::FixedBytes<4>, + ) -> alloy_contract::SolCallBuilder<&P, supportsInterfaceCall, N> { + self.call_builder( + &supportsInterfaceCall { + _interfaceId, + }, + ) + } + ///Creates a new call builder for the [`symbol`] function. + pub fn symbol(&self) -> alloy_contract::SolCallBuilder<&P, symbolCall, N> { + self.call_builder(&symbolCall) + } + ///Creates a new call builder for the [`totalSupply`] function. + pub fn totalSupply( + &self, + ) -> alloy_contract::SolCallBuilder<&P, totalSupplyCall, N> { + self.call_builder(&totalSupplyCall) + } + ///Creates a new call builder for the [`transfer`] function. + pub fn transfer( + &self, + to: alloy::sol_types::private::Address, + amount: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, transferCall, N> { + self.call_builder(&transferCall { to, amount }) + } + ///Creates a new call builder for the [`transferFrom`] function. + pub fn transferFrom( + &self, + from: alloy::sol_types::private::Address, + to: alloy::sol_types::private::Address, + amount: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, transferFromCall, N> { + self.call_builder( + &transferFromCall { + from, + to, + amount, + }, + ) + } + ///Creates a new call builder for the [`version`] function. + pub fn version(&self) -> alloy_contract::SolCallBuilder<&P, versionCall, N> { + self.call_builder(&versionCall) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > OptimismMintableERC20Instance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + ///Creates a new event filter for the [`Approval`] event. + pub fn Approval_filter(&self) -> alloy_contract::Event<&P, Approval, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`Burn`] event. + pub fn Burn_filter(&self) -> alloy_contract::Event<&P, Burn, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`Mint`] event. + pub fn Mint_filter(&self) -> alloy_contract::Event<&P, Mint, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`Transfer`] event. + pub fn Transfer_filter(&self) -> alloy_contract::Event<&P, Transfer, N> { + self.event_filter::() + } + } +} diff --git a/bindings/rust/src/optimism_mintable_erc20_factory.rs b/bindings/rust/src/optimism_mintable_erc20_factory.rs new file mode 100644 index 000000000..5c56b99a9 --- /dev/null +++ b/bindings/rust/src/optimism_mintable_erc20_factory.rs @@ -0,0 +1,2820 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface OptimismMintableERC20Factory { + event Initialized(uint8 version); + event OptimismMintableERC20Created(address indexed localToken, address indexed remoteToken, address deployer); + event StandardL2TokenCreated(address indexed remoteToken, address indexed localToken); + + constructor(); + + function BRIDGE() external view returns (address); + function bridge() external view returns (address); + function createOptimismMintableERC20(address _remoteToken, string memory _name, string memory _symbol) external returns (address); + function createOptimismMintableERC20WithDecimals(address _remoteToken, string memory _name, string memory _symbol, uint8 _decimals) external returns (address); + function createStandardL2Token(address _remoteToken, string memory _name, string memory _symbol) external returns (address); + function deployments(address) external view returns (address); + function initialize(address _bridge) external; + function version() external view returns (string memory); +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "constructor", + "inputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "BRIDGE", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "bridge", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "createOptimismMintableERC20", + "inputs": [ + { + "name": "_remoteToken", + "type": "address", + "internalType": "address" + }, + { + "name": "_name", + "type": "string", + "internalType": "string" + }, + { + "name": "_symbol", + "type": "string", + "internalType": "string" + } + ], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "createOptimismMintableERC20WithDecimals", + "inputs": [ + { + "name": "_remoteToken", + "type": "address", + "internalType": "address" + }, + { + "name": "_name", + "type": "string", + "internalType": "string" + }, + { + "name": "_symbol", + "type": "string", + "internalType": "string" + }, + { + "name": "_decimals", + "type": "uint8", + "internalType": "uint8" + } + ], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "createStandardL2Token", + "inputs": [ + { + "name": "_remoteToken", + "type": "address", + "internalType": "address" + }, + { + "name": "_name", + "type": "string", + "internalType": "string" + }, + { + "name": "_symbol", + "type": "string", + "internalType": "string" + } + ], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "deployments", + "inputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "initialize", + "inputs": [ + { + "name": "_bridge", + "type": "address", + "internalType": "address" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "version", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "view" + }, + { + "type": "event", + "name": "Initialized", + "inputs": [ + { + "name": "version", + "type": "uint8", + "indexed": false, + "internalType": "uint8" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "OptimismMintableERC20Created", + "inputs": [ + { + "name": "localToken", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "remoteToken", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "deployer", + "type": "address", + "indexed": false, + "internalType": "address" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "StandardL2TokenCreated", + "inputs": [ + { + "name": "remoteToken", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "localToken", + "type": "address", + "indexed": true, + "internalType": "address" + } + ], + "anonymous": false + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod OptimismMintableERC20Factory { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x608060405234801561001057600080fd5b5061001961001e565b6100de565b600054610100900460ff161561008a5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811610156100dc576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b61270c806100ed6000396000f3fe60806040523480156200001157600080fd5b5060043610620000935760003560e01c8063c4d66de81162000062578063c4d66de81462000175578063ce5ac90f146200018e578063e78cea9214620001a5578063ee9a31a214620001c657600080fd5b8063316b3739146200009857806354fd4d5014620000fb578063896f93d114620001475780638cf0629c146200015e575b600080fd5b620000d1620000a936600462000636565b60026020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b620001386040518060400160405280600681526020017f312e31302e32000000000000000000000000000000000000000000000000000081525081565b604051620000f29190620006c9565b620000d162000158366004620007c0565b620001e5565b620000d16200016f3660046200083d565b620001fc565b6200018c6200018636600462000636565b6200041b565b005b620000d16200019f366004620007c0565b620005ed565b600154620000d19073ffffffffffffffffffffffffffffffffffffffff1681565b60015473ffffffffffffffffffffffffffffffffffffffff16620000d1565b6000620001f4848484620005ed565b949350505050565b600073ffffffffffffffffffffffffffffffffffffffff8516620002a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603f60248201527f4f7074696d69736d4d696e7461626c654552433230466163746f72793a206d7560448201527f73742070726f766964652072656d6f746520746f6b656e20616464726573730060648201526084015b60405180910390fd5b600085858585604051602001620002c29493929190620008d4565b604051602081830303815290604052805190602001209050600081600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16888888886040516200031290620005fe565b620003229594939291906200092e565b8190604051809103906000f590508015801562000343573d6000803e3d6000fd5b5073ffffffffffffffffffffffffffffffffffffffff81811660008181526002602052604080822080547fffffffffffffffffffffffff000000000000000000000000000000000000000016948d1694851790555193945090927fceeb8e7d520d7f3b65fc11a262b91066940193b05d4f93df07cfdced0eb551cf9190a360405133815273ffffffffffffffffffffffffffffffffffffffff80891691908316907f52fe89dd5930f343d25650b62fd367bae47088bcddffd2a88350a6ecdd620cdb9060200160405180910390a39695505050505050565b600054610100900460ff16158080156200043c5750600054600160ff909116105b80620004585750303b15801562000458575060005460ff166001145b620004e6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016200029e565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580156200054557600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84161790558015620005e957600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6000620001f48484846012620001fc565b611d6c806200099483390190565b803573ffffffffffffffffffffffffffffffffffffffff811681146200063157600080fd5b919050565b6000602082840312156200064957600080fd5b62000654826200060c565b9392505050565b6000815180845260005b81811015620006835760208185018101518683018201520162000665565b8181111562000696576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006200065460208301846200065b565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f8301126200071f57600080fd5b813567ffffffffffffffff808211156200073d576200073d620006de565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908282118183101715620007865762000786620006de565b81604052838152866020858801011115620007a057600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600060608486031215620007d657600080fd5b620007e1846200060c565b9250602084013567ffffffffffffffff80821115620007ff57600080fd5b6200080d878388016200070d565b935060408601359150808211156200082457600080fd5b5062000833868287016200070d565b9150509250925092565b600080600080608085870312156200085457600080fd5b6200085f856200060c565b9350602085013567ffffffffffffffff808211156200087d57600080fd5b6200088b888389016200070d565b94506040870135915080821115620008a257600080fd5b50620008b1878288016200070d565b925050606085013560ff81168114620008c957600080fd5b939692955090935050565b73ffffffffffffffffffffffffffffffffffffffff851681526080602082015260006200090560808301866200065b565b82810360408401526200091981866200065b565b91505060ff8316606083015295945050505050565b600073ffffffffffffffffffffffffffffffffffffffff808816835280871660208401525060a060408301526200096960a08301866200065b565b82810360608401526200097d81866200065b565b91505060ff83166080830152969550505050505056fe6101a06040523480156200001257600080fd5b5060405162001d6c38038062001d6c833981016040819052620000359162000215565b6040805180820190915260018152603160f81b6020820152839081908185600362000061838262000350565b50600462000070828262000350565b5050825160208085019190912083518483012060e08290526101008190524660a0818152604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81880181905281830187905260608201869052608082019490945230818401528151808203909301835260c0019052805194019390932091935091906080523060c05261012052505050506001600160a01b0394851661014052509390921661016052505060ff16610180526200041c565b80516001600160a01b03811681146200014357600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200017057600080fd5b81516001600160401b03808211156200018d576200018d62000148565b604051601f8301601f19908116603f01168101908282118183101715620001b857620001b862000148565b81604052838152602092508683858801011115620001d557600080fd5b600091505b83821015620001f95785820183015181830184015290820190620001da565b838211156200020b5760008385830101525b9695505050505050565b600080600080600060a086880312156200022e57600080fd5b62000239866200012b565b945062000249602087016200012b565b60408701519094506001600160401b03808211156200026757600080fd5b6200027589838a016200015e565b945060608801519150808211156200028c57600080fd5b506200029b888289016200015e565b925050608086015160ff81168114620002b357600080fd5b809150509295509295909350565b600181811c90821680620002d657607f821691505b602082108103620002f757634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200034b57600081815260208120601f850160051c81016020861015620003265750805b601f850160051c820191505b81811015620003475782815560010162000332565b5050505b505050565b81516001600160401b038111156200036c576200036c62000148565b62000384816200037d8454620002c1565b84620002fd565b602080601f831160018114620003bc5760008415620003a35750858301515b600019600386901b1c1916600185901b17855562000347565b600085815260208120601f198616915b82811015620003ed57888601518255948401946001909101908401620003cc565b50858210156200040c5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60805160a05160c05160e05161010051610120516101405161016051610180516118c3620004a9600039600061026301526000818161038d015281816104020152818161062101526107420152600081816101d501526103b301526000610f3801526000610f8701526000610f6201526000610ebb01526000610ee501526000610f0f01526118c36000f3fe608060405234801561001057600080fd5b50600436106101a35760003560e01c806370a08231116100ee578063ae1f6aaf11610097578063d6c0b2c411610071578063d6c0b2c4146103b1578063dd62ed3e146103ea578063e78cea921461038b578063ee9a31a2146103fd57600080fd5b8063ae1f6aaf1461038b578063c01e1bd6146103b1578063d505accf146103d757600080fd5b80639dc29fac116100c85780639dc29fac14610352578063a457c2d714610365578063a9059cbb1461037857600080fd5b806370a082311461030e5780637ecebe001461033757806395d89b411461034a57600080fd5b8063313ce5671161015057806340c10f191161012a57806340c10f19146102a857806354fd4d50146102bd5780636afdd850146102f957600080fd5b8063313ce5671461025c5780633644e5151461028d578063395093511461029557600080fd5b8063095ea7b311610181578063095ea7b31461022457806318160ddd1461023757806323b872dd1461024957600080fd5b806301ffc9a7146101a8578063033964be146101d057806306fdde031461020f575b600080fd5b6101bb6101b63660046115e4565b610424565b60405190151581526020015b60405180910390f35b6101f77f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016101c7565b610217610515565b6040516101c79190611626565b6101bb6102323660046116b5565b6105a7565b6002545b6040519081526020016101c7565b6101bb6102573660046116df565b6105c1565b60405160ff7f00000000000000000000000000000000000000000000000000000000000000001681526020016101c7565b61023b6105e5565b6101bb6102a33660046116b5565b6105f4565b6102bb6102b63660046116b5565b610616565b005b6102176040518060400160405280600581526020017f312e342e3100000000000000000000000000000000000000000000000000000081525081565b6e22d473030f116ddee9f6b43ac78ba36101f7565b61023b61031c36600461171b565b6001600160a01b031660009081526020819052604090205490565b61023b61034536600461171b565b61070a565b610217610728565b6102bb6103603660046116b5565b610737565b6101bb6103733660046116b5565b61081a565b6101bb6103863660046116b5565b6108ad565b7f00000000000000000000000000000000000000000000000000000000000000006101f7565b7f00000000000000000000000000000000000000000000000000000000000000006101f7565b6102bb6103e5366004611736565b6108bb565b61023b6103f83660046117a9565b610a1f565b6101f77f000000000000000000000000000000000000000000000000000000000000000081565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007f1d1d8b63000000000000000000000000000000000000000000000000000000007fec4fc8e3000000000000000000000000000000000000000000000000000000007fffffffff0000000000000000000000000000000000000000000000000000000085168314806104dd57507fffffffff00000000000000000000000000000000000000000000000000000000858116908316145b8061050c57507fffffffff00000000000000000000000000000000000000000000000000000000858116908216145b95945050505050565b606060038054610524906117dc565b80601f0160208091040260200160405190810160405280929190818152602001828054610550906117dc565b801561059d5780601f106105725761010080835404028352916020019161059d565b820191906000526020600020905b81548152906001019060200180831161058057829003601f168201915b5050505050905090565b6000336105b5818585610aa6565b60019150505b92915050565b6000336105cf858285610bff565b6105da858585610c97565b506001949350505050565b60006105ef610eae565b905090565b6000336105b58185856106078383610a1f565b6106119190611858565b610aa6565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146106b95760405162461bcd60e51b815260206004820152603460248201527f4f7074696d69736d4d696e7461626c6545524332303a206f6e6c79206272696460448201527f67652063616e206d696e7420616e64206275726e00000000000000000000000060648201526084015b60405180910390fd5b6106c38282610fd5565b816001600160a01b03167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885826040516106fe91815260200190565b60405180910390a25050565b6001600160a01b0381166000908152600560205260408120546105bb565b606060048054610524906117dc565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146107d55760405162461bcd60e51b815260206004820152603460248201527f4f7074696d69736d4d696e7461626c6545524332303a206f6e6c79206272696460448201527f67652063616e206d696e7420616e64206275726e00000000000000000000000060648201526084016106b0565b6107df82826110b4565b816001600160a01b03167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5826040516106fe91815260200190565b600033816108288286610a1f565b9050838110156108a05760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084016106b0565b6105da8286868403610aa6565b6000336105b5818585610c97565b8342111561090b5760405162461bcd60e51b815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e6500000060448201526064016106b0565b60007f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c988888861093a8c611231565b6040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e001604051602081830303815290604052805190602001209050600061099582611259565b905060006109a5828787876112c2565b9050896001600160a01b0316816001600160a01b031614610a085760405162461bcd60e51b815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e6174757265000060448201526064016106b0565b610a138a8a8a610aa6565b50505050505050505050565b60007fffffffffffffffffffffffffffffffffffdd2b8cfcf0ee922116094bc538745d6001600160a01b03831601610a7857507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6105bb565b6001600160a01b038084166000908152600160209081526040808320938616835292905220545b9392505050565b6001600160a01b038316610b215760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016106b0565b6001600160a01b038216610b9d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016106b0565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6000610c0b8484610a1f565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610c915781811015610c845760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016106b0565b610c918484848403610aa6565b50505050565b6001600160a01b038316610d135760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016106b0565b6001600160a01b038216610d8f5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f657373000000000000000000000000000000000000000000000000000000000060648201526084016106b0565b6001600160a01b03831660009081526020819052604090205481811015610e1e5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e6365000000000000000000000000000000000000000000000000000060648201526084016106b0565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290610e55908490611858565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610ea191815260200190565b60405180910390a3610c91565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148015610f0757507f000000000000000000000000000000000000000000000000000000000000000046145b15610f3157507f000000000000000000000000000000000000000000000000000000000000000090565b50604080517f00000000000000000000000000000000000000000000000000000000000000006020808301919091527f0000000000000000000000000000000000000000000000000000000000000000828401527f000000000000000000000000000000000000000000000000000000000000000060608301524660808301523060a0808401919091528351808403909101815260c0909201909252805191012090565b6001600160a01b03821661102b5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016106b0565b806002600082825461103d9190611858565b90915550506001600160a01b0382166000908152602081905260408120805483929061106a908490611858565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6001600160a01b0382166111305760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f730000000000000000000000000000000000000000000000000000000000000060648201526084016106b0565b6001600160a01b038216600090815260208190526040902054818110156111bf5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f636500000000000000000000000000000000000000000000000000000000000060648201526084016106b0565b6001600160a01b03831660009081526020819052604081208383039055600280548492906111ee908490611870565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001610bf2565b6001600160a01b03811660009081526005602052604090208054600181018255905b50919050565b60006105bb611266610eae565b836040517f19010000000000000000000000000000000000000000000000000000000000006020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b60008060006112d3878787876112ea565b915091506112e0816113f5565b5095945050505050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561132157506000905060036113ec565b8460ff16601b1415801561133957508460ff16601c14155b1561134a57506000905060046113ec565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa15801561139e573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe001519150506001600160a01b0381166113e5576000600192509250506113ec565b9150600090505b94509492505050565b600081600481111561140957611409611887565b036114115750565b600181600481111561142557611425611887565b036114725760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e6174757265000000000000000060448201526064016106b0565b600281600481111561148657611486611887565b036114d35760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e6774680060448201526064016106b0565b60038160048111156114e7576114e7611887565b0361155a5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c60448201527f756500000000000000000000000000000000000000000000000000000000000060648201526084016106b0565b600481600481111561156e5761156e611887565b036115e15760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c60448201527f756500000000000000000000000000000000000000000000000000000000000060648201526084016106b0565b50565b6000602082840312156115f657600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610a9f57600080fd5b600060208083528351808285015260005b8181101561165357858101830151858201604001528201611637565b81811115611665576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b80356001600160a01b03811681146116b057600080fd5b919050565b600080604083850312156116c857600080fd5b6116d183611699565b946020939093013593505050565b6000806000606084860312156116f457600080fd5b6116fd84611699565b925061170b60208501611699565b9150604084013590509250925092565b60006020828403121561172d57600080fd5b610a9f82611699565b600080600080600080600060e0888a03121561175157600080fd5b61175a88611699565b965061176860208901611699565b95506040880135945060608801359350608088013560ff8116811461178c57600080fd5b9699959850939692959460a0840135945060c09093013592915050565b600080604083850312156117bc57600080fd5b6117c583611699565b91506117d360208401611699565b90509250929050565b600181811c908216806117f057607f821691505b602082108103611253577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000821982111561186b5761186b611829565b500190565b60008282101561188257611882611829565b500390565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fdfea164736f6c634300080f000aa164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[Pa\0\x19a\0\x1EV[a\0\xDEV[`\0Ta\x01\0\x90\x04`\xFF\x16\x15a\0\x8AW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`'`$\x82\x01R\x7FInitializable: contract is initi`D\x82\x01Rfalizing`\xC8\x1B`d\x82\x01R`\x84\x01`@Q\x80\x91\x03\x90\xFD[`\0T`\xFF\x90\x81\x16\x10\x15a\0\xDCW`\0\x80T`\xFF\x19\x16`\xFF\x90\x81\x17\x90\x91U`@Q\x90\x81R\x7F\x7F&\xB8?\xF9n\x1F+jh/\x138R\xF6y\x8A\t\xC4e\xDA\x95\x92\x14`\xCE\xFB8G@$\x98\x90` \x01`@Q\x80\x91\x03\x90\xA1[V[a'\x0C\x80a\0\xED`\09`\0\xF3\xFE`\x80`@R4\x80\x15b\0\0\x11W`\0\x80\xFD[P`\x046\x10b\0\0\x93W`\x005`\xE0\x1C\x80c\xC4\xD6m\xE8\x11b\0\0bW\x80c\xC4\xD6m\xE8\x14b\0\x01uW\x80c\xCEZ\xC9\x0F\x14b\0\x01\x8EW\x80c\xE7\x8C\xEA\x92\x14b\0\x01\xA5W\x80c\xEE\x9A1\xA2\x14b\0\x01\xC6W`\0\x80\xFD[\x80c1k79\x14b\0\0\x98W\x80cT\xFDMP\x14b\0\0\xFBW\x80c\x89o\x93\xD1\x14b\0\x01GW\x80c\x8C\xF0b\x9C\x14b\0\x01^W[`\0\x80\xFD[b\0\0\xD1b\0\0\xA96`\x04b\0\x066V[`\x02` R`\0\x90\x81R`@\x90 Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[b\0\x018`@Q\x80`@\x01`@R\x80`\x06\x81R` \x01\x7F1.10.2\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\x81RP\x81V[`@Qb\0\0\xF2\x91\x90b\0\x06\xC9V[b\0\0\xD1b\0\x01X6`\x04b\0\x07\xC0V[b\0\x01\xE5V[b\0\0\xD1b\0\x01o6`\x04b\0\x08=V[b\0\x01\xFCV[b\0\x01\x8Cb\0\x01\x866`\x04b\0\x066V[b\0\x04\x1BV[\0[b\0\0\xD1b\0\x01\x9F6`\x04b\0\x07\xC0V[b\0\x05\xEDV[`\x01Tb\0\0\xD1\x90s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[`\x01Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16b\0\0\xD1V[`\0b\0\x01\xF4\x84\x84\x84b\0\x05\xEDV[\x94\x93PPPPV[`\0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x85\x16b\0\x02\xA7W`@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\x82\x01R`?`$\x82\x01R\x7FOptimismMintableERC20Factory: mu`D\x82\x01R\x7Fst provide remote token address\0`d\x82\x01R`\x84\x01[`@Q\x80\x91\x03\x90\xFD[`\0\x85\x85\x85\x85`@Q` \x01b\0\x02\xC2\x94\x93\x92\x91\x90b\0\x08\xD4V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 \x90P`\0\x81`\x01`\0\x90T\x90a\x01\0\n\x90\x04s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x88\x88\x88\x88`@Qb\0\x03\x12\x90b\0\x05\xFEV[b\0\x03\"\x95\x94\x93\x92\x91\x90b\0\t.V[\x81\x90`@Q\x80\x91\x03\x90`\0\xF5\x90P\x80\x15\x80\x15b\0\x03CW=`\0\x80>=`\0\xFD[Ps\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x81\x16`\0\x81\x81R`\x02` R`@\x80\x82 \x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x94\x8D\x16\x94\x85\x17\x90UQ\x93\x94P\x90\x92\x7F\xCE\xEB\x8E}R\r\x7F;e\xFC\x11\xA2b\xB9\x10f\x94\x01\x93\xB0]O\x93\xDF\x07\xCF\xDC\xED\x0E\xB5Q\xCF\x91\x90\xA3`@Q3\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x89\x16\x91\x90\x83\x16\x90\x7FR\xFE\x89\xDDY0\xF3C\xD2VP\xB6/\xD3g\xBA\xE4p\x88\xBC\xDD\xFF\xD2\xA8\x83P\xA6\xEC\xDDb\x0C\xDB\x90` \x01`@Q\x80\x91\x03\x90\xA3\x96\x95PPPPPPV[`\0Ta\x01\0\x90\x04`\xFF\x16\x15\x80\x80\x15b\0\x04\x14a\x03\xEAW\x80c\xE7\x8C\xEA\x92\x14a\x03\x8BW\x80c\xEE\x9A1\xA2\x14a\x03\xFDW`\0\x80\xFD[\x80c\xAE\x1Fj\xAF\x14a\x03\x8BW\x80c\xC0\x1E\x1B\xD6\x14a\x03\xB1W\x80c\xD5\x05\xAC\xCF\x14a\x03\xD7W`\0\x80\xFD[\x80c\x9D\xC2\x9F\xAC\x11a\0\xC8W\x80c\x9D\xC2\x9F\xAC\x14a\x03RW\x80c\xA4W\xC2\xD7\x14a\x03eW\x80c\xA9\x05\x9C\xBB\x14a\x03xW`\0\x80\xFD[\x80cp\xA0\x821\x14a\x03\x0EW\x80c~\xCE\xBE\0\x14a\x037W\x80c\x95\xD8\x9BA\x14a\x03JW`\0\x80\xFD[\x80c1<\xE5g\x11a\x01PW\x80c@\xC1\x0F\x19\x11a\x01*W\x80c@\xC1\x0F\x19\x14a\x02\xA8W\x80cT\xFDMP\x14a\x02\xBDW\x80cj\xFD\xD8P\x14a\x02\xF9W`\0\x80\xFD[\x80c1<\xE5g\x14a\x02\\W\x80c6D\xE5\x15\x14a\x02\x8DW\x80c9P\x93Q\x14a\x02\x95W`\0\x80\xFD[\x80c\t^\xA7\xB3\x11a\x01\x81W\x80c\t^\xA7\xB3\x14a\x02$W\x80c\x18\x16\r\xDD\x14a\x027W\x80c#\xB8r\xDD\x14a\x02IW`\0\x80\xFD[\x80c\x01\xFF\xC9\xA7\x14a\x01\xA8W\x80c\x039d\xBE\x14a\x01\xD0W\x80c\x06\xFD\xDE\x03\x14a\x02\x0FW[`\0\x80\xFD[a\x01\xBBa\x01\xB66`\x04a\x15\xE4V[a\x04$V[`@Q\x90\x15\x15\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[a\x01\xF7\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x01a\x01\xC7V[a\x02\x17a\x05\x15V[`@Qa\x01\xC7\x91\x90a\x16&V[a\x01\xBBa\x0226`\x04a\x16\xB5V[a\x05\xA7V[`\x02T[`@Q\x90\x81R` \x01a\x01\xC7V[a\x01\xBBa\x02W6`\x04a\x16\xDFV[a\x05\xC1V[`@Q`\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x81R` \x01a\x01\xC7V[a\x02;a\x05\xE5V[a\x01\xBBa\x02\xA36`\x04a\x16\xB5V[a\x05\xF4V[a\x02\xBBa\x02\xB66`\x04a\x16\xB5V[a\x06\x16V[\0[a\x02\x17`@Q\x80`@\x01`@R\x80`\x05\x81R` \x01\x7F1.4.1\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\x81RP\x81V[n\"\xD4s\x03\x0F\x11m\xDE\xE9\xF6\xB4:\xC7\x8B\xA3a\x01\xF7V[a\x02;a\x03\x1C6`\x04a\x17\x1BV[`\x01`\x01`\xA0\x1B\x03\x16`\0\x90\x81R` \x81\x90R`@\x90 T\x90V[a\x02;a\x03E6`\x04a\x17\x1BV[a\x07\nV[a\x02\x17a\x07(V[a\x02\xBBa\x03`6`\x04a\x16\xB5V[a\x077V[a\x01\xBBa\x03s6`\x04a\x16\xB5V[a\x08\x1AV[a\x01\xBBa\x03\x866`\x04a\x16\xB5V[a\x08\xADV[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x01\xF7V[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x01\xF7V[a\x02\xBBa\x03\xE56`\x04a\x176V[a\x08\xBBV[a\x02;a\x03\xF86`\x04a\x17\xA9V[a\n\x1FV[a\x01\xF7\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[`\0\x7F\x01\xFF\xC9\xA7\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\x7F\x1D\x1D\x8Bc\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\x7F\xECO\xC8\xE3\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\x7F\xFF\xFF\xFF\xFF\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\x85\x16\x83\x14\x80a\x04\xDDWP\x7F\xFF\xFF\xFF\xFF\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\x85\x81\x16\x90\x83\x16\x14[\x80a\x05\x0CWP\x7F\xFF\xFF\xFF\xFF\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\x85\x81\x16\x90\x82\x16\x14[\x95\x94PPPPPV[```\x03\x80Ta\x05$\x90a\x17\xDCV[\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x92\x91\x90\x81\x81R` \x01\x82\x80Ta\x05P\x90a\x17\xDCV[\x80\x15a\x05\x9DW\x80`\x1F\x10a\x05rWa\x01\0\x80\x83T\x04\x02\x83R\x91` \x01\x91a\x05\x9DV[\x82\x01\x91\x90`\0R` `\0 \x90[\x81T\x81R\x90`\x01\x01\x90` \x01\x80\x83\x11a\x05\x80W\x82\x90\x03`\x1F\x16\x82\x01\x91[PPPPP\x90P\x90V[`\x003a\x05\xB5\x81\x85\x85a\n\xA6V[`\x01\x91PP[\x92\x91PPV[`\x003a\x05\xCF\x85\x82\x85a\x0B\xFFV[a\x05\xDA\x85\x85\x85a\x0C\x97V[P`\x01\x94\x93PPPPV[`\0a\x05\xEFa\x0E\xAEV[\x90P\x90V[`\x003a\x05\xB5\x81\x85\x85a\x06\x07\x83\x83a\n\x1FV[a\x06\x11\x91\x90a\x18XV[a\n\xA6V[3`\x01`\x01`\xA0\x1B\x03\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x14a\x06\xB9W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`4`$\x82\x01R\x7FOptimismMintableERC20: only brid`D\x82\x01R\x7Fge can mint and burn\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01[`@Q\x80\x91\x03\x90\xFD[a\x06\xC3\x82\x82a\x0F\xD5V[\x81`\x01`\x01`\xA0\x1B\x03\x16\x7F\x0Fg\x98\xA5`y:T\xC3\xBC\xFE\x86\xA9<\xDE\x1Es\x08}\x94L\x0E\xA2\x05D\x13}A!9h\x85\x82`@Qa\x06\xFE\x91\x81R` \x01\x90V[`@Q\x80\x91\x03\x90\xA2PPV[`\x01`\x01`\xA0\x1B\x03\x81\x16`\0\x90\x81R`\x05` R`@\x81 Ta\x05\xBBV[```\x04\x80Ta\x05$\x90a\x17\xDCV[3`\x01`\x01`\xA0\x1B\x03\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x14a\x07\xD5W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`4`$\x82\x01R\x7FOptimismMintableERC20: only brid`D\x82\x01R\x7Fge can mint and burn\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x06\xB0V[a\x07\xDF\x82\x82a\x10\xB4V[\x81`\x01`\x01`\xA0\x1B\x03\x16\x7F\xCC\x16\xF5\xDB\xB4\x872\x80\x81\\\x1E\xE0\x9D\xBD\x06sl\xFF\xCC\x18D\x12\xCFzq\xA0\xFD\xB7]9|\xA5\x82`@Qa\x06\xFE\x91\x81R` \x01\x90V[`\x003\x81a\x08(\x82\x86a\n\x1FV[\x90P\x83\x81\x10\x15a\x08\xA0W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`%`$\x82\x01R\x7FERC20: decreased allowance below`D\x82\x01R\x7F zero\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`d\x82\x01R`\x84\x01a\x06\xB0V[a\x05\xDA\x82\x86\x86\x84\x03a\n\xA6V[`\x003a\x05\xB5\x81\x85\x85a\x0C\x97V[\x83B\x11\x15a\t\x0BW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1D`$\x82\x01R\x7FERC20Permit: expired deadline\0\0\0`D\x82\x01R`d\x01a\x06\xB0V[`\0\x7Fnq\xED\xAE\x12\xB1\xB9\x7FM\x1F`7\x0F\xEF\x10\x10_\xA2\xFA\xAE\x01&\x11J\x16\x9Cd\x84]a&\xC9\x88\x88\x88a\t:\x8Ca\x121V[`@\x80Q` \x81\x01\x96\x90\x96R`\x01`\x01`\xA0\x1B\x03\x94\x85\x16\x90\x86\x01R\x92\x90\x91\x16``\x84\x01R`\x80\x83\x01R`\xA0\x82\x01R`\xC0\x81\x01\x86\x90R`\xE0\x01`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 \x90P`\0a\t\x95\x82a\x12YV[\x90P`\0a\t\xA5\x82\x87\x87\x87a\x12\xC2V[\x90P\x89`\x01`\x01`\xA0\x1B\x03\x16\x81`\x01`\x01`\xA0\x1B\x03\x16\x14a\n\x08W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1E`$\x82\x01R\x7FERC20Permit: invalid signature\0\0`D\x82\x01R`d\x01a\x06\xB0V[a\n\x13\x8A\x8A\x8Aa\n\xA6V[PPPPPPPPPPV[`\0\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xDD+\x8C\xFC\xF0\xEE\x92!\x16\tK\xC58t]`\x01`\x01`\xA0\x1B\x03\x83\x16\x01a\nxWP\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFFa\x05\xBBV[`\x01`\x01`\xA0\x1B\x03\x80\x84\x16`\0\x90\x81R`\x01` \x90\x81R`@\x80\x83 \x93\x86\x16\x83R\x92\x90R T[\x93\x92PPPV[`\x01`\x01`\xA0\x1B\x03\x83\x16a\x0B!W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`$\x80\x82\x01R\x7FERC20: approve from the zero add`D\x82\x01R\x7Fress\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`d\x82\x01R`\x84\x01a\x06\xB0V[`\x01`\x01`\xA0\x1B\x03\x82\x16a\x0B\x9DW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FERC20: approve to the zero addre`D\x82\x01R\x7Fss\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x06\xB0V[`\x01`\x01`\xA0\x1B\x03\x83\x81\x16`\0\x81\x81R`\x01` \x90\x81R`@\x80\x83 \x94\x87\x16\x80\x84R\x94\x82R\x91\x82\x90 \x85\x90U\x90Q\x84\x81R\x7F\x8C[\xE1\xE5\xEB\xEC}[\xD1OqB}\x1E\x84\xF3\xDD\x03\x14\xC0\xF7\xB2)\x1E[ \n\xC8\xC7\xC3\xB9%\x91\x01[`@Q\x80\x91\x03\x90\xA3PPPV[`\0a\x0C\x0B\x84\x84a\n\x1FV[\x90P\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x14a\x0C\x91W\x81\x81\x10\x15a\x0C\x84W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1D`$\x82\x01R\x7FERC20: insufficient allowance\0\0\0`D\x82\x01R`d\x01a\x06\xB0V[a\x0C\x91\x84\x84\x84\x84\x03a\n\xA6V[PPPPV[`\x01`\x01`\xA0\x1B\x03\x83\x16a\r\x13W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`%`$\x82\x01R\x7FERC20: transfer from the zero ad`D\x82\x01R\x7Fdress\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`d\x82\x01R`\x84\x01a\x06\xB0V[`\x01`\x01`\xA0\x1B\x03\x82\x16a\r\x8FW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`#`$\x82\x01R\x7FERC20: transfer to the zero addr`D\x82\x01R\x7Fess\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x06\xB0V[`\x01`\x01`\xA0\x1B\x03\x83\x16`\0\x90\x81R` \x81\x90R`@\x90 T\x81\x81\x10\x15a\x0E\x1EW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`&`$\x82\x01R\x7FERC20: transfer amount exceeds b`D\x82\x01R\x7Falance\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`d\x82\x01R`\x84\x01a\x06\xB0V[`\x01`\x01`\xA0\x1B\x03\x80\x85\x16`\0\x90\x81R` \x81\x90R`@\x80\x82 \x85\x85\x03\x90U\x91\x85\x16\x81R\x90\x81 \x80T\x84\x92\x90a\x0EU\x90\x84\x90a\x18XV[\x92PP\x81\x90UP\x82`\x01`\x01`\xA0\x1B\x03\x16\x84`\x01`\x01`\xA0\x1B\x03\x16\x7F\xDD\xF2R\xAD\x1B\xE2\xC8\x9Bi\xC2\xB0h\xFC7\x8D\xAA\x95+\xA7\xF1c\xC4\xA1\x16(\xF5ZM\xF5#\xB3\xEF\x84`@Qa\x0E\xA1\x91\x81R` \x01\x90V[`@Q\x80\x91\x03\x90\xA3a\x0C\x91V[`\x000`\x01`\x01`\xA0\x1B\x03\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x14\x80\x15a\x0F\x07WP\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0F\x14[\x15a\x0F1WP\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90V[P`@\x80Q\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0` \x80\x83\x01\x91\x90\x91R\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x82\x84\x01R\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0``\x83\x01RF`\x80\x83\x01R0`\xA0\x80\x84\x01\x91\x90\x91R\x83Q\x80\x84\x03\x90\x91\x01\x81R`\xC0\x90\x92\x01\x90\x92R\x80Q\x91\x01 \x90V[`\x01`\x01`\xA0\x1B\x03\x82\x16a\x10+W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1F`$\x82\x01R\x7FERC20: mint to the zero address\0`D\x82\x01R`d\x01a\x06\xB0V[\x80`\x02`\0\x82\x82Ta\x10=\x91\x90a\x18XV[\x90\x91UPP`\x01`\x01`\xA0\x1B\x03\x82\x16`\0\x90\x81R` \x81\x90R`@\x81 \x80T\x83\x92\x90a\x10j\x90\x84\x90a\x18XV[\x90\x91UPP`@Q\x81\x81R`\x01`\x01`\xA0\x1B\x03\x83\x16\x90`\0\x90\x7F\xDD\xF2R\xAD\x1B\xE2\xC8\x9Bi\xC2\xB0h\xFC7\x8D\xAA\x95+\xA7\xF1c\xC4\xA1\x16(\xF5ZM\xF5#\xB3\xEF\x90` \x01`@Q\x80\x91\x03\x90\xA3PPV[`\x01`\x01`\xA0\x1B\x03\x82\x16a\x110W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`!`$\x82\x01R\x7FERC20: burn from the zero addres`D\x82\x01R\x7Fs\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x06\xB0V[`\x01`\x01`\xA0\x1B\x03\x82\x16`\0\x90\x81R` \x81\x90R`@\x90 T\x81\x81\x10\x15a\x11\xBFW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FERC20: burn amount exceeds balan`D\x82\x01R\x7Fce\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x06\xB0V[`\x01`\x01`\xA0\x1B\x03\x83\x16`\0\x90\x81R` \x81\x90R`@\x81 \x83\x83\x03\x90U`\x02\x80T\x84\x92\x90a\x11\xEE\x90\x84\x90a\x18pV[\x90\x91UPP`@Q\x82\x81R`\0\x90`\x01`\x01`\xA0\x1B\x03\x85\x16\x90\x7F\xDD\xF2R\xAD\x1B\xE2\xC8\x9Bi\xC2\xB0h\xFC7\x8D\xAA\x95+\xA7\xF1c\xC4\xA1\x16(\xF5ZM\xF5#\xB3\xEF\x90` \x01a\x0B\xF2V[`\x01`\x01`\xA0\x1B\x03\x81\x16`\0\x90\x81R`\x05` R`@\x90 \x80T`\x01\x81\x01\x82U\x90[P\x91\x90PV[`\0a\x05\xBBa\x12fa\x0E\xAEV[\x83`@Q\x7F\x19\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0` \x82\x01R`\"\x81\x01\x83\x90R`B\x81\x01\x82\x90R`\0\x90`b\x01`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 \x90P\x92\x91PPV[`\0\x80`\0a\x12\xD3\x87\x87\x87\x87a\x12\xEAV[\x91P\x91Pa\x12\xE0\x81a\x13\xF5V[P\x95\x94PPPPPV[`\0\x80\x7F\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF]WnsW\xA4P\x1D\xDF\xE9/Fh\x1B \xA0\x83\x11\x15a\x13!WP`\0\x90P`\x03a\x13\xECV[\x84`\xFF\x16`\x1B\x14\x15\x80\x15a\x139WP\x84`\xFF\x16`\x1C\x14\x15[\x15a\x13JWP`\0\x90P`\x04a\x13\xECV[`@\x80Q`\0\x80\x82R` \x82\x01\x80\x84R\x89\x90R`\xFF\x88\x16\x92\x82\x01\x92\x90\x92R``\x81\x01\x86\x90R`\x80\x81\x01\x85\x90R`\x01\x90`\xA0\x01` `@Q` \x81\x03\x90\x80\x84\x03\x90\x85Z\xFA\x15\x80\x15a\x13\x9EW=`\0\x80>=`\0\xFD[PP`@Q\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x01Q\x91PP`\x01`\x01`\xA0\x1B\x03\x81\x16a\x13\xE5W`\0`\x01\x92P\x92PPa\x13\xECV[\x91P`\0\x90P[\x94P\x94\x92PPPV[`\0\x81`\x04\x81\x11\x15a\x14\tWa\x14\ta\x18\x87V[\x03a\x14\x11WPV[`\x01\x81`\x04\x81\x11\x15a\x14%Wa\x14%a\x18\x87V[\x03a\x14rW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x18`$\x82\x01R\x7FECDSA: invalid signature\0\0\0\0\0\0\0\0`D\x82\x01R`d\x01a\x06\xB0V[`\x02\x81`\x04\x81\x11\x15a\x14\x86Wa\x14\x86a\x18\x87V[\x03a\x14\xD3W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1F`$\x82\x01R\x7FECDSA: invalid signature length\0`D\x82\x01R`d\x01a\x06\xB0V[`\x03\x81`\x04\x81\x11\x15a\x14\xE7Wa\x14\xE7a\x18\x87V[\x03a\x15ZW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FECDSA: invalid signature 's' val`D\x82\x01R\x7Fue\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x06\xB0V[`\x04\x81`\x04\x81\x11\x15a\x15nWa\x15na\x18\x87V[\x03a\x15\xE1W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FECDSA: invalid signature 'v' val`D\x82\x01R\x7Fue\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x06\xB0V[PV[`\0` \x82\x84\x03\x12\x15a\x15\xF6W`\0\x80\xFD[\x815\x7F\xFF\xFF\xFF\xFF\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\x81\x16\x81\x14a\n\x9FW`\0\x80\xFD[`\0` \x80\x83R\x83Q\x80\x82\x85\x01R`\0[\x81\x81\x10\x15a\x16SW\x85\x81\x01\x83\x01Q\x85\x82\x01`@\x01R\x82\x01a\x167V[\x81\x81\x11\x15a\x16eW`\0`@\x83\x87\x01\x01R[P`\x1F\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x92\x90\x92\x01`@\x01\x93\x92PPPV[\x805`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a\x16\xB0W`\0\x80\xFD[\x91\x90PV[`\0\x80`@\x83\x85\x03\x12\x15a\x16\xC8W`\0\x80\xFD[a\x16\xD1\x83a\x16\x99V[\x94` \x93\x90\x93\x015\x93PPPV[`\0\x80`\0``\x84\x86\x03\x12\x15a\x16\xF4W`\0\x80\xFD[a\x16\xFD\x84a\x16\x99V[\x92Pa\x17\x0B` \x85\x01a\x16\x99V[\x91P`@\x84\x015\x90P\x92P\x92P\x92V[`\0` \x82\x84\x03\x12\x15a\x17-W`\0\x80\xFD[a\n\x9F\x82a\x16\x99V[`\0\x80`\0\x80`\0\x80`\0`\xE0\x88\x8A\x03\x12\x15a\x17QW`\0\x80\xFD[a\x17Z\x88a\x16\x99V[\x96Pa\x17h` \x89\x01a\x16\x99V[\x95P`@\x88\x015\x94P``\x88\x015\x93P`\x80\x88\x015`\xFF\x81\x16\x81\x14a\x17\x8CW`\0\x80\xFD[\x96\x99\x95\x98P\x93\x96\x92\x95\x94`\xA0\x84\x015\x94P`\xC0\x90\x93\x015\x92\x91PPV[`\0\x80`@\x83\x85\x03\x12\x15a\x17\xBCW`\0\x80\xFD[a\x17\xC5\x83a\x16\x99V[\x91Pa\x17\xD3` \x84\x01a\x16\x99V[\x90P\x92P\x92\x90PV[`\x01\x81\x81\x1C\x90\x82\x16\x80a\x17\xF0W`\x7F\x82\x16\x91P[` \x82\x10\x81\x03a\x12SW\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`\"`\x04R`$`\0\xFD[\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`\x11`\x04R`$`\0\xFD[`\0\x82\x19\x82\x11\x15a\x18kWa\x18ka\x18)V[P\x01\x90V[`\0\x82\x82\x10\x15a\x18\x82Wa\x18\x82a\x18)V[P\x03\x90V[\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`!`\x04R`$`\0\xFD\xFE\xA1dsolcC\0\x08\x0F\0\n\xA1dsolcC\0\x08\x0F\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x60806040523480156200001157600080fd5b5060043610620000935760003560e01c8063c4d66de81162000062578063c4d66de81462000175578063ce5ac90f146200018e578063e78cea9214620001a5578063ee9a31a214620001c657600080fd5b8063316b3739146200009857806354fd4d5014620000fb578063896f93d114620001475780638cf0629c146200015e575b600080fd5b620000d1620000a936600462000636565b60026020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b620001386040518060400160405280600681526020017f312e31302e32000000000000000000000000000000000000000000000000000081525081565b604051620000f29190620006c9565b620000d162000158366004620007c0565b620001e5565b620000d16200016f3660046200083d565b620001fc565b6200018c6200018636600462000636565b6200041b565b005b620000d16200019f366004620007c0565b620005ed565b600154620000d19073ffffffffffffffffffffffffffffffffffffffff1681565b60015473ffffffffffffffffffffffffffffffffffffffff16620000d1565b6000620001f4848484620005ed565b949350505050565b600073ffffffffffffffffffffffffffffffffffffffff8516620002a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603f60248201527f4f7074696d69736d4d696e7461626c654552433230466163746f72793a206d7560448201527f73742070726f766964652072656d6f746520746f6b656e20616464726573730060648201526084015b60405180910390fd5b600085858585604051602001620002c29493929190620008d4565b604051602081830303815290604052805190602001209050600081600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16888888886040516200031290620005fe565b620003229594939291906200092e565b8190604051809103906000f590508015801562000343573d6000803e3d6000fd5b5073ffffffffffffffffffffffffffffffffffffffff81811660008181526002602052604080822080547fffffffffffffffffffffffff000000000000000000000000000000000000000016948d1694851790555193945090927fceeb8e7d520d7f3b65fc11a262b91066940193b05d4f93df07cfdced0eb551cf9190a360405133815273ffffffffffffffffffffffffffffffffffffffff80891691908316907f52fe89dd5930f343d25650b62fd367bae47088bcddffd2a88350a6ecdd620cdb9060200160405180910390a39695505050505050565b600054610100900460ff16158080156200043c5750600054600160ff909116105b80620004585750303b15801562000458575060005460ff166001145b620004e6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016200029e565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580156200054557600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84161790558015620005e957600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6000620001f48484846012620001fc565b611d6c806200099483390190565b803573ffffffffffffffffffffffffffffffffffffffff811681146200063157600080fd5b919050565b6000602082840312156200064957600080fd5b62000654826200060c565b9392505050565b6000815180845260005b81811015620006835760208185018101518683018201520162000665565b8181111562000696576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006200065460208301846200065b565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f8301126200071f57600080fd5b813567ffffffffffffffff808211156200073d576200073d620006de565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908282118183101715620007865762000786620006de565b81604052838152866020858801011115620007a057600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600060608486031215620007d657600080fd5b620007e1846200060c565b9250602084013567ffffffffffffffff80821115620007ff57600080fd5b6200080d878388016200070d565b935060408601359150808211156200082457600080fd5b5062000833868287016200070d565b9150509250925092565b600080600080608085870312156200085457600080fd5b6200085f856200060c565b9350602085013567ffffffffffffffff808211156200087d57600080fd5b6200088b888389016200070d565b94506040870135915080821115620008a257600080fd5b50620008b1878288016200070d565b925050606085013560ff81168114620008c957600080fd5b939692955090935050565b73ffffffffffffffffffffffffffffffffffffffff851681526080602082015260006200090560808301866200065b565b82810360408401526200091981866200065b565b91505060ff8316606083015295945050505050565b600073ffffffffffffffffffffffffffffffffffffffff808816835280871660208401525060a060408301526200096960a08301866200065b565b82810360608401526200097d81866200065b565b91505060ff83166080830152969550505050505056fe6101a06040523480156200001257600080fd5b5060405162001d6c38038062001d6c833981016040819052620000359162000215565b6040805180820190915260018152603160f81b6020820152839081908185600362000061838262000350565b50600462000070828262000350565b5050825160208085019190912083518483012060e08290526101008190524660a0818152604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81880181905281830187905260608201869052608082019490945230818401528151808203909301835260c0019052805194019390932091935091906080523060c05261012052505050506001600160a01b0394851661014052509390921661016052505060ff16610180526200041c565b80516001600160a01b03811681146200014357600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200017057600080fd5b81516001600160401b03808211156200018d576200018d62000148565b604051601f8301601f19908116603f01168101908282118183101715620001b857620001b862000148565b81604052838152602092508683858801011115620001d557600080fd5b600091505b83821015620001f95785820183015181830184015290820190620001da565b838211156200020b5760008385830101525b9695505050505050565b600080600080600060a086880312156200022e57600080fd5b62000239866200012b565b945062000249602087016200012b565b60408701519094506001600160401b03808211156200026757600080fd5b6200027589838a016200015e565b945060608801519150808211156200028c57600080fd5b506200029b888289016200015e565b925050608086015160ff81168114620002b357600080fd5b809150509295509295909350565b600181811c90821680620002d657607f821691505b602082108103620002f757634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200034b57600081815260208120601f850160051c81016020861015620003265750805b601f850160051c820191505b81811015620003475782815560010162000332565b5050505b505050565b81516001600160401b038111156200036c576200036c62000148565b62000384816200037d8454620002c1565b84620002fd565b602080601f831160018114620003bc5760008415620003a35750858301515b600019600386901b1c1916600185901b17855562000347565b600085815260208120601f198616915b82811015620003ed57888601518255948401946001909101908401620003cc565b50858210156200040c5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60805160a05160c05160e05161010051610120516101405161016051610180516118c3620004a9600039600061026301526000818161038d015281816104020152818161062101526107420152600081816101d501526103b301526000610f3801526000610f8701526000610f6201526000610ebb01526000610ee501526000610f0f01526118c36000f3fe608060405234801561001057600080fd5b50600436106101a35760003560e01c806370a08231116100ee578063ae1f6aaf11610097578063d6c0b2c411610071578063d6c0b2c4146103b1578063dd62ed3e146103ea578063e78cea921461038b578063ee9a31a2146103fd57600080fd5b8063ae1f6aaf1461038b578063c01e1bd6146103b1578063d505accf146103d757600080fd5b80639dc29fac116100c85780639dc29fac14610352578063a457c2d714610365578063a9059cbb1461037857600080fd5b806370a082311461030e5780637ecebe001461033757806395d89b411461034a57600080fd5b8063313ce5671161015057806340c10f191161012a57806340c10f19146102a857806354fd4d50146102bd5780636afdd850146102f957600080fd5b8063313ce5671461025c5780633644e5151461028d578063395093511461029557600080fd5b8063095ea7b311610181578063095ea7b31461022457806318160ddd1461023757806323b872dd1461024957600080fd5b806301ffc9a7146101a8578063033964be146101d057806306fdde031461020f575b600080fd5b6101bb6101b63660046115e4565b610424565b60405190151581526020015b60405180910390f35b6101f77f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016101c7565b610217610515565b6040516101c79190611626565b6101bb6102323660046116b5565b6105a7565b6002545b6040519081526020016101c7565b6101bb6102573660046116df565b6105c1565b60405160ff7f00000000000000000000000000000000000000000000000000000000000000001681526020016101c7565b61023b6105e5565b6101bb6102a33660046116b5565b6105f4565b6102bb6102b63660046116b5565b610616565b005b6102176040518060400160405280600581526020017f312e342e3100000000000000000000000000000000000000000000000000000081525081565b6e22d473030f116ddee9f6b43ac78ba36101f7565b61023b61031c36600461171b565b6001600160a01b031660009081526020819052604090205490565b61023b61034536600461171b565b61070a565b610217610728565b6102bb6103603660046116b5565b610737565b6101bb6103733660046116b5565b61081a565b6101bb6103863660046116b5565b6108ad565b7f00000000000000000000000000000000000000000000000000000000000000006101f7565b7f00000000000000000000000000000000000000000000000000000000000000006101f7565b6102bb6103e5366004611736565b6108bb565b61023b6103f83660046117a9565b610a1f565b6101f77f000000000000000000000000000000000000000000000000000000000000000081565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007f1d1d8b63000000000000000000000000000000000000000000000000000000007fec4fc8e3000000000000000000000000000000000000000000000000000000007fffffffff0000000000000000000000000000000000000000000000000000000085168314806104dd57507fffffffff00000000000000000000000000000000000000000000000000000000858116908316145b8061050c57507fffffffff00000000000000000000000000000000000000000000000000000000858116908216145b95945050505050565b606060038054610524906117dc565b80601f0160208091040260200160405190810160405280929190818152602001828054610550906117dc565b801561059d5780601f106105725761010080835404028352916020019161059d565b820191906000526020600020905b81548152906001019060200180831161058057829003601f168201915b5050505050905090565b6000336105b5818585610aa6565b60019150505b92915050565b6000336105cf858285610bff565b6105da858585610c97565b506001949350505050565b60006105ef610eae565b905090565b6000336105b58185856106078383610a1f565b6106119190611858565b610aa6565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146106b95760405162461bcd60e51b815260206004820152603460248201527f4f7074696d69736d4d696e7461626c6545524332303a206f6e6c79206272696460448201527f67652063616e206d696e7420616e64206275726e00000000000000000000000060648201526084015b60405180910390fd5b6106c38282610fd5565b816001600160a01b03167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885826040516106fe91815260200190565b60405180910390a25050565b6001600160a01b0381166000908152600560205260408120546105bb565b606060048054610524906117dc565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146107d55760405162461bcd60e51b815260206004820152603460248201527f4f7074696d69736d4d696e7461626c6545524332303a206f6e6c79206272696460448201527f67652063616e206d696e7420616e64206275726e00000000000000000000000060648201526084016106b0565b6107df82826110b4565b816001600160a01b03167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5826040516106fe91815260200190565b600033816108288286610a1f565b9050838110156108a05760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084016106b0565b6105da8286868403610aa6565b6000336105b5818585610c97565b8342111561090b5760405162461bcd60e51b815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e6500000060448201526064016106b0565b60007f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c988888861093a8c611231565b6040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e001604051602081830303815290604052805190602001209050600061099582611259565b905060006109a5828787876112c2565b9050896001600160a01b0316816001600160a01b031614610a085760405162461bcd60e51b815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e6174757265000060448201526064016106b0565b610a138a8a8a610aa6565b50505050505050505050565b60007fffffffffffffffffffffffffffffffffffdd2b8cfcf0ee922116094bc538745d6001600160a01b03831601610a7857507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6105bb565b6001600160a01b038084166000908152600160209081526040808320938616835292905220545b9392505050565b6001600160a01b038316610b215760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016106b0565b6001600160a01b038216610b9d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016106b0565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6000610c0b8484610a1f565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610c915781811015610c845760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016106b0565b610c918484848403610aa6565b50505050565b6001600160a01b038316610d135760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016106b0565b6001600160a01b038216610d8f5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f657373000000000000000000000000000000000000000000000000000000000060648201526084016106b0565b6001600160a01b03831660009081526020819052604090205481811015610e1e5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e6365000000000000000000000000000000000000000000000000000060648201526084016106b0565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290610e55908490611858565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610ea191815260200190565b60405180910390a3610c91565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148015610f0757507f000000000000000000000000000000000000000000000000000000000000000046145b15610f3157507f000000000000000000000000000000000000000000000000000000000000000090565b50604080517f00000000000000000000000000000000000000000000000000000000000000006020808301919091527f0000000000000000000000000000000000000000000000000000000000000000828401527f000000000000000000000000000000000000000000000000000000000000000060608301524660808301523060a0808401919091528351808403909101815260c0909201909252805191012090565b6001600160a01b03821661102b5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016106b0565b806002600082825461103d9190611858565b90915550506001600160a01b0382166000908152602081905260408120805483929061106a908490611858565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6001600160a01b0382166111305760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f730000000000000000000000000000000000000000000000000000000000000060648201526084016106b0565b6001600160a01b038216600090815260208190526040902054818110156111bf5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f636500000000000000000000000000000000000000000000000000000000000060648201526084016106b0565b6001600160a01b03831660009081526020819052604081208383039055600280548492906111ee908490611870565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001610bf2565b6001600160a01b03811660009081526005602052604090208054600181018255905b50919050565b60006105bb611266610eae565b836040517f19010000000000000000000000000000000000000000000000000000000000006020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b60008060006112d3878787876112ea565b915091506112e0816113f5565b5095945050505050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561132157506000905060036113ec565b8460ff16601b1415801561133957508460ff16601c14155b1561134a57506000905060046113ec565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa15801561139e573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe001519150506001600160a01b0381166113e5576000600192509250506113ec565b9150600090505b94509492505050565b600081600481111561140957611409611887565b036114115750565b600181600481111561142557611425611887565b036114725760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e6174757265000000000000000060448201526064016106b0565b600281600481111561148657611486611887565b036114d35760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e6774680060448201526064016106b0565b60038160048111156114e7576114e7611887565b0361155a5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c60448201527f756500000000000000000000000000000000000000000000000000000000000060648201526084016106b0565b600481600481111561156e5761156e611887565b036115e15760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c60448201527f756500000000000000000000000000000000000000000000000000000000000060648201526084016106b0565b50565b6000602082840312156115f657600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610a9f57600080fd5b600060208083528351808285015260005b8181101561165357858101830151858201604001528201611637565b81811115611665576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b80356001600160a01b03811681146116b057600080fd5b919050565b600080604083850312156116c857600080fd5b6116d183611699565b946020939093013593505050565b6000806000606084860312156116f457600080fd5b6116fd84611699565b925061170b60208501611699565b9150604084013590509250925092565b60006020828403121561172d57600080fd5b610a9f82611699565b600080600080600080600060e0888a03121561175157600080fd5b61175a88611699565b965061176860208901611699565b95506040880135945060608801359350608088013560ff8116811461178c57600080fd5b9699959850939692959460a0840135945060c09093013592915050565b600080604083850312156117bc57600080fd5b6117c583611699565b91506117d360208401611699565b90509250929050565b600181811c908216806117f057607f821691505b602082108103611253577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000821982111561186b5761186b611829565b500190565b60008282101561188257611882611829565b500390565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fdfea164736f6c634300080f000aa164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R4\x80\x15b\0\0\x11W`\0\x80\xFD[P`\x046\x10b\0\0\x93W`\x005`\xE0\x1C\x80c\xC4\xD6m\xE8\x11b\0\0bW\x80c\xC4\xD6m\xE8\x14b\0\x01uW\x80c\xCEZ\xC9\x0F\x14b\0\x01\x8EW\x80c\xE7\x8C\xEA\x92\x14b\0\x01\xA5W\x80c\xEE\x9A1\xA2\x14b\0\x01\xC6W`\0\x80\xFD[\x80c1k79\x14b\0\0\x98W\x80cT\xFDMP\x14b\0\0\xFBW\x80c\x89o\x93\xD1\x14b\0\x01GW\x80c\x8C\xF0b\x9C\x14b\0\x01^W[`\0\x80\xFD[b\0\0\xD1b\0\0\xA96`\x04b\0\x066V[`\x02` R`\0\x90\x81R`@\x90 Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[b\0\x018`@Q\x80`@\x01`@R\x80`\x06\x81R` \x01\x7F1.10.2\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\x81RP\x81V[`@Qb\0\0\xF2\x91\x90b\0\x06\xC9V[b\0\0\xD1b\0\x01X6`\x04b\0\x07\xC0V[b\0\x01\xE5V[b\0\0\xD1b\0\x01o6`\x04b\0\x08=V[b\0\x01\xFCV[b\0\x01\x8Cb\0\x01\x866`\x04b\0\x066V[b\0\x04\x1BV[\0[b\0\0\xD1b\0\x01\x9F6`\x04b\0\x07\xC0V[b\0\x05\xEDV[`\x01Tb\0\0\xD1\x90s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[`\x01Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16b\0\0\xD1V[`\0b\0\x01\xF4\x84\x84\x84b\0\x05\xEDV[\x94\x93PPPPV[`\0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x85\x16b\0\x02\xA7W`@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\x82\x01R`?`$\x82\x01R\x7FOptimismMintableERC20Factory: mu`D\x82\x01R\x7Fst provide remote token address\0`d\x82\x01R`\x84\x01[`@Q\x80\x91\x03\x90\xFD[`\0\x85\x85\x85\x85`@Q` \x01b\0\x02\xC2\x94\x93\x92\x91\x90b\0\x08\xD4V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 \x90P`\0\x81`\x01`\0\x90T\x90a\x01\0\n\x90\x04s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x88\x88\x88\x88`@Qb\0\x03\x12\x90b\0\x05\xFEV[b\0\x03\"\x95\x94\x93\x92\x91\x90b\0\t.V[\x81\x90`@Q\x80\x91\x03\x90`\0\xF5\x90P\x80\x15\x80\x15b\0\x03CW=`\0\x80>=`\0\xFD[Ps\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x81\x16`\0\x81\x81R`\x02` R`@\x80\x82 \x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x94\x8D\x16\x94\x85\x17\x90UQ\x93\x94P\x90\x92\x7F\xCE\xEB\x8E}R\r\x7F;e\xFC\x11\xA2b\xB9\x10f\x94\x01\x93\xB0]O\x93\xDF\x07\xCF\xDC\xED\x0E\xB5Q\xCF\x91\x90\xA3`@Q3\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x89\x16\x91\x90\x83\x16\x90\x7FR\xFE\x89\xDDY0\xF3C\xD2VP\xB6/\xD3g\xBA\xE4p\x88\xBC\xDD\xFF\xD2\xA8\x83P\xA6\xEC\xDDb\x0C\xDB\x90` \x01`@Q\x80\x91\x03\x90\xA3\x96\x95PPPPPPV[`\0Ta\x01\0\x90\x04`\xFF\x16\x15\x80\x80\x15b\0\x04\x14a\x03\xEAW\x80c\xE7\x8C\xEA\x92\x14a\x03\x8BW\x80c\xEE\x9A1\xA2\x14a\x03\xFDW`\0\x80\xFD[\x80c\xAE\x1Fj\xAF\x14a\x03\x8BW\x80c\xC0\x1E\x1B\xD6\x14a\x03\xB1W\x80c\xD5\x05\xAC\xCF\x14a\x03\xD7W`\0\x80\xFD[\x80c\x9D\xC2\x9F\xAC\x11a\0\xC8W\x80c\x9D\xC2\x9F\xAC\x14a\x03RW\x80c\xA4W\xC2\xD7\x14a\x03eW\x80c\xA9\x05\x9C\xBB\x14a\x03xW`\0\x80\xFD[\x80cp\xA0\x821\x14a\x03\x0EW\x80c~\xCE\xBE\0\x14a\x037W\x80c\x95\xD8\x9BA\x14a\x03JW`\0\x80\xFD[\x80c1<\xE5g\x11a\x01PW\x80c@\xC1\x0F\x19\x11a\x01*W\x80c@\xC1\x0F\x19\x14a\x02\xA8W\x80cT\xFDMP\x14a\x02\xBDW\x80cj\xFD\xD8P\x14a\x02\xF9W`\0\x80\xFD[\x80c1<\xE5g\x14a\x02\\W\x80c6D\xE5\x15\x14a\x02\x8DW\x80c9P\x93Q\x14a\x02\x95W`\0\x80\xFD[\x80c\t^\xA7\xB3\x11a\x01\x81W\x80c\t^\xA7\xB3\x14a\x02$W\x80c\x18\x16\r\xDD\x14a\x027W\x80c#\xB8r\xDD\x14a\x02IW`\0\x80\xFD[\x80c\x01\xFF\xC9\xA7\x14a\x01\xA8W\x80c\x039d\xBE\x14a\x01\xD0W\x80c\x06\xFD\xDE\x03\x14a\x02\x0FW[`\0\x80\xFD[a\x01\xBBa\x01\xB66`\x04a\x15\xE4V[a\x04$V[`@Q\x90\x15\x15\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[a\x01\xF7\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x01a\x01\xC7V[a\x02\x17a\x05\x15V[`@Qa\x01\xC7\x91\x90a\x16&V[a\x01\xBBa\x0226`\x04a\x16\xB5V[a\x05\xA7V[`\x02T[`@Q\x90\x81R` \x01a\x01\xC7V[a\x01\xBBa\x02W6`\x04a\x16\xDFV[a\x05\xC1V[`@Q`\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x81R` \x01a\x01\xC7V[a\x02;a\x05\xE5V[a\x01\xBBa\x02\xA36`\x04a\x16\xB5V[a\x05\xF4V[a\x02\xBBa\x02\xB66`\x04a\x16\xB5V[a\x06\x16V[\0[a\x02\x17`@Q\x80`@\x01`@R\x80`\x05\x81R` \x01\x7F1.4.1\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\x81RP\x81V[n\"\xD4s\x03\x0F\x11m\xDE\xE9\xF6\xB4:\xC7\x8B\xA3a\x01\xF7V[a\x02;a\x03\x1C6`\x04a\x17\x1BV[`\x01`\x01`\xA0\x1B\x03\x16`\0\x90\x81R` \x81\x90R`@\x90 T\x90V[a\x02;a\x03E6`\x04a\x17\x1BV[a\x07\nV[a\x02\x17a\x07(V[a\x02\xBBa\x03`6`\x04a\x16\xB5V[a\x077V[a\x01\xBBa\x03s6`\x04a\x16\xB5V[a\x08\x1AV[a\x01\xBBa\x03\x866`\x04a\x16\xB5V[a\x08\xADV[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x01\xF7V[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x01\xF7V[a\x02\xBBa\x03\xE56`\x04a\x176V[a\x08\xBBV[a\x02;a\x03\xF86`\x04a\x17\xA9V[a\n\x1FV[a\x01\xF7\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[`\0\x7F\x01\xFF\xC9\xA7\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\x7F\x1D\x1D\x8Bc\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\x7F\xECO\xC8\xE3\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\x7F\xFF\xFF\xFF\xFF\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\x85\x16\x83\x14\x80a\x04\xDDWP\x7F\xFF\xFF\xFF\xFF\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\x85\x81\x16\x90\x83\x16\x14[\x80a\x05\x0CWP\x7F\xFF\xFF\xFF\xFF\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\x85\x81\x16\x90\x82\x16\x14[\x95\x94PPPPPV[```\x03\x80Ta\x05$\x90a\x17\xDCV[\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x92\x91\x90\x81\x81R` \x01\x82\x80Ta\x05P\x90a\x17\xDCV[\x80\x15a\x05\x9DW\x80`\x1F\x10a\x05rWa\x01\0\x80\x83T\x04\x02\x83R\x91` \x01\x91a\x05\x9DV[\x82\x01\x91\x90`\0R` `\0 \x90[\x81T\x81R\x90`\x01\x01\x90` \x01\x80\x83\x11a\x05\x80W\x82\x90\x03`\x1F\x16\x82\x01\x91[PPPPP\x90P\x90V[`\x003a\x05\xB5\x81\x85\x85a\n\xA6V[`\x01\x91PP[\x92\x91PPV[`\x003a\x05\xCF\x85\x82\x85a\x0B\xFFV[a\x05\xDA\x85\x85\x85a\x0C\x97V[P`\x01\x94\x93PPPPV[`\0a\x05\xEFa\x0E\xAEV[\x90P\x90V[`\x003a\x05\xB5\x81\x85\x85a\x06\x07\x83\x83a\n\x1FV[a\x06\x11\x91\x90a\x18XV[a\n\xA6V[3`\x01`\x01`\xA0\x1B\x03\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x14a\x06\xB9W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`4`$\x82\x01R\x7FOptimismMintableERC20: only brid`D\x82\x01R\x7Fge can mint and burn\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01[`@Q\x80\x91\x03\x90\xFD[a\x06\xC3\x82\x82a\x0F\xD5V[\x81`\x01`\x01`\xA0\x1B\x03\x16\x7F\x0Fg\x98\xA5`y:T\xC3\xBC\xFE\x86\xA9<\xDE\x1Es\x08}\x94L\x0E\xA2\x05D\x13}A!9h\x85\x82`@Qa\x06\xFE\x91\x81R` \x01\x90V[`@Q\x80\x91\x03\x90\xA2PPV[`\x01`\x01`\xA0\x1B\x03\x81\x16`\0\x90\x81R`\x05` R`@\x81 Ta\x05\xBBV[```\x04\x80Ta\x05$\x90a\x17\xDCV[3`\x01`\x01`\xA0\x1B\x03\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x14a\x07\xD5W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`4`$\x82\x01R\x7FOptimismMintableERC20: only brid`D\x82\x01R\x7Fge can mint and burn\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x06\xB0V[a\x07\xDF\x82\x82a\x10\xB4V[\x81`\x01`\x01`\xA0\x1B\x03\x16\x7F\xCC\x16\xF5\xDB\xB4\x872\x80\x81\\\x1E\xE0\x9D\xBD\x06sl\xFF\xCC\x18D\x12\xCFzq\xA0\xFD\xB7]9|\xA5\x82`@Qa\x06\xFE\x91\x81R` \x01\x90V[`\x003\x81a\x08(\x82\x86a\n\x1FV[\x90P\x83\x81\x10\x15a\x08\xA0W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`%`$\x82\x01R\x7FERC20: decreased allowance below`D\x82\x01R\x7F zero\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`d\x82\x01R`\x84\x01a\x06\xB0V[a\x05\xDA\x82\x86\x86\x84\x03a\n\xA6V[`\x003a\x05\xB5\x81\x85\x85a\x0C\x97V[\x83B\x11\x15a\t\x0BW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1D`$\x82\x01R\x7FERC20Permit: expired deadline\0\0\0`D\x82\x01R`d\x01a\x06\xB0V[`\0\x7Fnq\xED\xAE\x12\xB1\xB9\x7FM\x1F`7\x0F\xEF\x10\x10_\xA2\xFA\xAE\x01&\x11J\x16\x9Cd\x84]a&\xC9\x88\x88\x88a\t:\x8Ca\x121V[`@\x80Q` \x81\x01\x96\x90\x96R`\x01`\x01`\xA0\x1B\x03\x94\x85\x16\x90\x86\x01R\x92\x90\x91\x16``\x84\x01R`\x80\x83\x01R`\xA0\x82\x01R`\xC0\x81\x01\x86\x90R`\xE0\x01`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 \x90P`\0a\t\x95\x82a\x12YV[\x90P`\0a\t\xA5\x82\x87\x87\x87a\x12\xC2V[\x90P\x89`\x01`\x01`\xA0\x1B\x03\x16\x81`\x01`\x01`\xA0\x1B\x03\x16\x14a\n\x08W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1E`$\x82\x01R\x7FERC20Permit: invalid signature\0\0`D\x82\x01R`d\x01a\x06\xB0V[a\n\x13\x8A\x8A\x8Aa\n\xA6V[PPPPPPPPPPV[`\0\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xDD+\x8C\xFC\xF0\xEE\x92!\x16\tK\xC58t]`\x01`\x01`\xA0\x1B\x03\x83\x16\x01a\nxWP\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFFa\x05\xBBV[`\x01`\x01`\xA0\x1B\x03\x80\x84\x16`\0\x90\x81R`\x01` \x90\x81R`@\x80\x83 \x93\x86\x16\x83R\x92\x90R T[\x93\x92PPPV[`\x01`\x01`\xA0\x1B\x03\x83\x16a\x0B!W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`$\x80\x82\x01R\x7FERC20: approve from the zero add`D\x82\x01R\x7Fress\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`d\x82\x01R`\x84\x01a\x06\xB0V[`\x01`\x01`\xA0\x1B\x03\x82\x16a\x0B\x9DW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FERC20: approve to the zero addre`D\x82\x01R\x7Fss\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x06\xB0V[`\x01`\x01`\xA0\x1B\x03\x83\x81\x16`\0\x81\x81R`\x01` \x90\x81R`@\x80\x83 \x94\x87\x16\x80\x84R\x94\x82R\x91\x82\x90 \x85\x90U\x90Q\x84\x81R\x7F\x8C[\xE1\xE5\xEB\xEC}[\xD1OqB}\x1E\x84\xF3\xDD\x03\x14\xC0\xF7\xB2)\x1E[ \n\xC8\xC7\xC3\xB9%\x91\x01[`@Q\x80\x91\x03\x90\xA3PPPV[`\0a\x0C\x0B\x84\x84a\n\x1FV[\x90P\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x14a\x0C\x91W\x81\x81\x10\x15a\x0C\x84W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1D`$\x82\x01R\x7FERC20: insufficient allowance\0\0\0`D\x82\x01R`d\x01a\x06\xB0V[a\x0C\x91\x84\x84\x84\x84\x03a\n\xA6V[PPPPV[`\x01`\x01`\xA0\x1B\x03\x83\x16a\r\x13W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`%`$\x82\x01R\x7FERC20: transfer from the zero ad`D\x82\x01R\x7Fdress\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`d\x82\x01R`\x84\x01a\x06\xB0V[`\x01`\x01`\xA0\x1B\x03\x82\x16a\r\x8FW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`#`$\x82\x01R\x7FERC20: transfer to the zero addr`D\x82\x01R\x7Fess\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x06\xB0V[`\x01`\x01`\xA0\x1B\x03\x83\x16`\0\x90\x81R` \x81\x90R`@\x90 T\x81\x81\x10\x15a\x0E\x1EW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`&`$\x82\x01R\x7FERC20: transfer amount exceeds b`D\x82\x01R\x7Falance\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`d\x82\x01R`\x84\x01a\x06\xB0V[`\x01`\x01`\xA0\x1B\x03\x80\x85\x16`\0\x90\x81R` \x81\x90R`@\x80\x82 \x85\x85\x03\x90U\x91\x85\x16\x81R\x90\x81 \x80T\x84\x92\x90a\x0EU\x90\x84\x90a\x18XV[\x92PP\x81\x90UP\x82`\x01`\x01`\xA0\x1B\x03\x16\x84`\x01`\x01`\xA0\x1B\x03\x16\x7F\xDD\xF2R\xAD\x1B\xE2\xC8\x9Bi\xC2\xB0h\xFC7\x8D\xAA\x95+\xA7\xF1c\xC4\xA1\x16(\xF5ZM\xF5#\xB3\xEF\x84`@Qa\x0E\xA1\x91\x81R` \x01\x90V[`@Q\x80\x91\x03\x90\xA3a\x0C\x91V[`\x000`\x01`\x01`\xA0\x1B\x03\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x14\x80\x15a\x0F\x07WP\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0F\x14[\x15a\x0F1WP\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90V[P`@\x80Q\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0` \x80\x83\x01\x91\x90\x91R\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x82\x84\x01R\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0``\x83\x01RF`\x80\x83\x01R0`\xA0\x80\x84\x01\x91\x90\x91R\x83Q\x80\x84\x03\x90\x91\x01\x81R`\xC0\x90\x92\x01\x90\x92R\x80Q\x91\x01 \x90V[`\x01`\x01`\xA0\x1B\x03\x82\x16a\x10+W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1F`$\x82\x01R\x7FERC20: mint to the zero address\0`D\x82\x01R`d\x01a\x06\xB0V[\x80`\x02`\0\x82\x82Ta\x10=\x91\x90a\x18XV[\x90\x91UPP`\x01`\x01`\xA0\x1B\x03\x82\x16`\0\x90\x81R` \x81\x90R`@\x81 \x80T\x83\x92\x90a\x10j\x90\x84\x90a\x18XV[\x90\x91UPP`@Q\x81\x81R`\x01`\x01`\xA0\x1B\x03\x83\x16\x90`\0\x90\x7F\xDD\xF2R\xAD\x1B\xE2\xC8\x9Bi\xC2\xB0h\xFC7\x8D\xAA\x95+\xA7\xF1c\xC4\xA1\x16(\xF5ZM\xF5#\xB3\xEF\x90` \x01`@Q\x80\x91\x03\x90\xA3PPV[`\x01`\x01`\xA0\x1B\x03\x82\x16a\x110W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`!`$\x82\x01R\x7FERC20: burn from the zero addres`D\x82\x01R\x7Fs\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x06\xB0V[`\x01`\x01`\xA0\x1B\x03\x82\x16`\0\x90\x81R` \x81\x90R`@\x90 T\x81\x81\x10\x15a\x11\xBFW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FERC20: burn amount exceeds balan`D\x82\x01R\x7Fce\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x06\xB0V[`\x01`\x01`\xA0\x1B\x03\x83\x16`\0\x90\x81R` \x81\x90R`@\x81 \x83\x83\x03\x90U`\x02\x80T\x84\x92\x90a\x11\xEE\x90\x84\x90a\x18pV[\x90\x91UPP`@Q\x82\x81R`\0\x90`\x01`\x01`\xA0\x1B\x03\x85\x16\x90\x7F\xDD\xF2R\xAD\x1B\xE2\xC8\x9Bi\xC2\xB0h\xFC7\x8D\xAA\x95+\xA7\xF1c\xC4\xA1\x16(\xF5ZM\xF5#\xB3\xEF\x90` \x01a\x0B\xF2V[`\x01`\x01`\xA0\x1B\x03\x81\x16`\0\x90\x81R`\x05` R`@\x90 \x80T`\x01\x81\x01\x82U\x90[P\x91\x90PV[`\0a\x05\xBBa\x12fa\x0E\xAEV[\x83`@Q\x7F\x19\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0` \x82\x01R`\"\x81\x01\x83\x90R`B\x81\x01\x82\x90R`\0\x90`b\x01`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 \x90P\x92\x91PPV[`\0\x80`\0a\x12\xD3\x87\x87\x87\x87a\x12\xEAV[\x91P\x91Pa\x12\xE0\x81a\x13\xF5V[P\x95\x94PPPPPV[`\0\x80\x7F\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF]WnsW\xA4P\x1D\xDF\xE9/Fh\x1B \xA0\x83\x11\x15a\x13!WP`\0\x90P`\x03a\x13\xECV[\x84`\xFF\x16`\x1B\x14\x15\x80\x15a\x139WP\x84`\xFF\x16`\x1C\x14\x15[\x15a\x13JWP`\0\x90P`\x04a\x13\xECV[`@\x80Q`\0\x80\x82R` \x82\x01\x80\x84R\x89\x90R`\xFF\x88\x16\x92\x82\x01\x92\x90\x92R``\x81\x01\x86\x90R`\x80\x81\x01\x85\x90R`\x01\x90`\xA0\x01` `@Q` \x81\x03\x90\x80\x84\x03\x90\x85Z\xFA\x15\x80\x15a\x13\x9EW=`\0\x80>=`\0\xFD[PP`@Q\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x01Q\x91PP`\x01`\x01`\xA0\x1B\x03\x81\x16a\x13\xE5W`\0`\x01\x92P\x92PPa\x13\xECV[\x91P`\0\x90P[\x94P\x94\x92PPPV[`\0\x81`\x04\x81\x11\x15a\x14\tWa\x14\ta\x18\x87V[\x03a\x14\x11WPV[`\x01\x81`\x04\x81\x11\x15a\x14%Wa\x14%a\x18\x87V[\x03a\x14rW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x18`$\x82\x01R\x7FECDSA: invalid signature\0\0\0\0\0\0\0\0`D\x82\x01R`d\x01a\x06\xB0V[`\x02\x81`\x04\x81\x11\x15a\x14\x86Wa\x14\x86a\x18\x87V[\x03a\x14\xD3W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1F`$\x82\x01R\x7FECDSA: invalid signature length\0`D\x82\x01R`d\x01a\x06\xB0V[`\x03\x81`\x04\x81\x11\x15a\x14\xE7Wa\x14\xE7a\x18\x87V[\x03a\x15ZW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FECDSA: invalid signature 's' val`D\x82\x01R\x7Fue\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x06\xB0V[`\x04\x81`\x04\x81\x11\x15a\x15nWa\x15na\x18\x87V[\x03a\x15\xE1W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FECDSA: invalid signature 'v' val`D\x82\x01R\x7Fue\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x06\xB0V[PV[`\0` \x82\x84\x03\x12\x15a\x15\xF6W`\0\x80\xFD[\x815\x7F\xFF\xFF\xFF\xFF\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\x81\x16\x81\x14a\n\x9FW`\0\x80\xFD[`\0` \x80\x83R\x83Q\x80\x82\x85\x01R`\0[\x81\x81\x10\x15a\x16SW\x85\x81\x01\x83\x01Q\x85\x82\x01`@\x01R\x82\x01a\x167V[\x81\x81\x11\x15a\x16eW`\0`@\x83\x87\x01\x01R[P`\x1F\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x92\x90\x92\x01`@\x01\x93\x92PPPV[\x805`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a\x16\xB0W`\0\x80\xFD[\x91\x90PV[`\0\x80`@\x83\x85\x03\x12\x15a\x16\xC8W`\0\x80\xFD[a\x16\xD1\x83a\x16\x99V[\x94` \x93\x90\x93\x015\x93PPPV[`\0\x80`\0``\x84\x86\x03\x12\x15a\x16\xF4W`\0\x80\xFD[a\x16\xFD\x84a\x16\x99V[\x92Pa\x17\x0B` \x85\x01a\x16\x99V[\x91P`@\x84\x015\x90P\x92P\x92P\x92V[`\0` \x82\x84\x03\x12\x15a\x17-W`\0\x80\xFD[a\n\x9F\x82a\x16\x99V[`\0\x80`\0\x80`\0\x80`\0`\xE0\x88\x8A\x03\x12\x15a\x17QW`\0\x80\xFD[a\x17Z\x88a\x16\x99V[\x96Pa\x17h` \x89\x01a\x16\x99V[\x95P`@\x88\x015\x94P``\x88\x015\x93P`\x80\x88\x015`\xFF\x81\x16\x81\x14a\x17\x8CW`\0\x80\xFD[\x96\x99\x95\x98P\x93\x96\x92\x95\x94`\xA0\x84\x015\x94P`\xC0\x90\x93\x015\x92\x91PPV[`\0\x80`@\x83\x85\x03\x12\x15a\x17\xBCW`\0\x80\xFD[a\x17\xC5\x83a\x16\x99V[\x91Pa\x17\xD3` \x84\x01a\x16\x99V[\x90P\x92P\x92\x90PV[`\x01\x81\x81\x1C\x90\x82\x16\x80a\x17\xF0W`\x7F\x82\x16\x91P[` \x82\x10\x81\x03a\x12SW\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`\"`\x04R`$`\0\xFD[\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`\x11`\x04R`$`\0\xFD[`\0\x82\x19\x82\x11\x15a\x18kWa\x18ka\x18)V[P\x01\x90V[`\0\x82\x82\x10\x15a\x18\x82Wa\x18\x82a\x18)V[P\x03\x90V[\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`!`\x04R`$`\0\xFD\xFE\xA1dsolcC\0\x08\x0F\0\n\xA1dsolcC\0\x08\x0F\0\n", + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `Initialized(uint8)` and selector `0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498`. +```solidity +event Initialized(uint8 version); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct Initialized { + #[allow(missing_docs)] + pub version: u8, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for Initialized { + type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<8>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,); + const SIGNATURE: &'static str = "Initialized(uint8)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 127u8, 38u8, 184u8, 63u8, 249u8, 110u8, 31u8, 43u8, 106u8, 104u8, 47u8, + 19u8, 56u8, 82u8, 246u8, 121u8, 138u8, 9u8, 196u8, 101u8, 218u8, 149u8, + 146u8, 20u8, 96u8, 206u8, 251u8, 56u8, 71u8, 64u8, 36u8, 152u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { version: data.0 } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.version), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(),) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for Initialized { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&Initialized> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &Initialized) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `OptimismMintableERC20Created(address,address,address)` and selector `0x52fe89dd5930f343d25650b62fd367bae47088bcddffd2a88350a6ecdd620cdb`. +```solidity +event OptimismMintableERC20Created(address indexed localToken, address indexed remoteToken, address deployer); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct OptimismMintableERC20Created { + #[allow(missing_docs)] + pub localToken: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub remoteToken: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub deployer: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for OptimismMintableERC20Created { + type DataTuple<'a> = (alloy::sol_types::sol_data::Address,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "OptimismMintableERC20Created(address,address,address)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 82u8, 254u8, 137u8, 221u8, 89u8, 48u8, 243u8, 67u8, 210u8, 86u8, 80u8, + 182u8, 47u8, 211u8, 103u8, 186u8, 228u8, 112u8, 136u8, 188u8, 221u8, + 255u8, 210u8, 168u8, 131u8, 80u8, 166u8, 236u8, 221u8, 98u8, 12u8, 219u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + localToken: topics.1, + remoteToken: topics.2, + deployer: data.0, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + ::tokenize( + &self.deployer, + ), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + ( + Self::SIGNATURE_HASH.into(), + self.localToken.clone(), + self.remoteToken.clone(), + ) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.localToken, + ); + out[2usize] = ::encode_topic( + &self.remoteToken, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for OptimismMintableERC20Created { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&OptimismMintableERC20Created> for alloy_sol_types::private::LogData { + #[inline] + fn from( + this: &OptimismMintableERC20Created, + ) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `StandardL2TokenCreated(address,address)` and selector `0xceeb8e7d520d7f3b65fc11a262b91066940193b05d4f93df07cfdced0eb551cf`. +```solidity +event StandardL2TokenCreated(address indexed remoteToken, address indexed localToken); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct StandardL2TokenCreated { + #[allow(missing_docs)] + pub remoteToken: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub localToken: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for StandardL2TokenCreated { + type DataTuple<'a> = (); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "StandardL2TokenCreated(address,address)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 206u8, 235u8, 142u8, 125u8, 82u8, 13u8, 127u8, 59u8, 101u8, 252u8, 17u8, + 162u8, 98u8, 185u8, 16u8, 102u8, 148u8, 1u8, 147u8, 176u8, 93u8, 79u8, + 147u8, 223u8, 7u8, 207u8, 220u8, 237u8, 14u8, 181u8, 81u8, 207u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + remoteToken: topics.1, + localToken: topics.2, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + () + } + #[inline] + fn topics(&self) -> ::RustType { + ( + Self::SIGNATURE_HASH.into(), + self.remoteToken.clone(), + self.localToken.clone(), + ) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.remoteToken, + ); + out[2usize] = ::encode_topic( + &self.localToken, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for StandardL2TokenCreated { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&StandardL2TokenCreated> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &StandardL2TokenCreated) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + /**Constructor`. +```solidity +constructor(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct constructorCall {} + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: constructorCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for constructorCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolConstructor for constructorCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `BRIDGE()` and selector `0xee9a31a2`. +```solidity +function BRIDGE() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct BRIDGECall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`BRIDGE()`](BRIDGECall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct BRIDGEReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: BRIDGECall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for BRIDGECall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: BRIDGEReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for BRIDGEReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for BRIDGECall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "BRIDGE()"; + const SELECTOR: [u8; 4] = [238u8, 154u8, 49u8, 162u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: BRIDGEReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: BRIDGEReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `bridge()` and selector `0xe78cea92`. +```solidity +function bridge() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct bridgeCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`bridge()`](bridgeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct bridgeReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: bridgeCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for bridgeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: bridgeReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for bridgeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for bridgeCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "bridge()"; + const SELECTOR: [u8; 4] = [231u8, 140u8, 234u8, 146u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: bridgeReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: bridgeReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `createOptimismMintableERC20(address,string,string)` and selector `0xce5ac90f`. +```solidity +function createOptimismMintableERC20(address _remoteToken, string memory _name, string memory _symbol) external returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct createOptimismMintableERC20Call { + #[allow(missing_docs)] + pub _remoteToken: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _name: alloy::sol_types::private::String, + #[allow(missing_docs)] + pub _symbol: alloy::sol_types::private::String, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`createOptimismMintableERC20(address,string,string)`](createOptimismMintableERC20Call) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct createOptimismMintableERC20Return { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::String, + alloy::sol_types::sol_data::String, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::String, + alloy::sol_types::private::String, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: createOptimismMintableERC20Call) -> Self { + (value._remoteToken, value._name, value._symbol) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for createOptimismMintableERC20Call { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _remoteToken: tuple.0, + _name: tuple.1, + _symbol: tuple.2, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: createOptimismMintableERC20Return) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for createOptimismMintableERC20Return { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for createOptimismMintableERC20Call { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::String, + alloy::sol_types::sol_data::String, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "createOptimismMintableERC20(address,string,string)"; + const SELECTOR: [u8; 4] = [206u8, 90u8, 201u8, 15u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._remoteToken, + ), + ::tokenize( + &self._name, + ), + ::tokenize( + &self._symbol, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: createOptimismMintableERC20Return = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: createOptimismMintableERC20Return = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `createOptimismMintableERC20WithDecimals(address,string,string,uint8)` and selector `0x8cf0629c`. +```solidity +function createOptimismMintableERC20WithDecimals(address _remoteToken, string memory _name, string memory _symbol, uint8 _decimals) external returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct createOptimismMintableERC20WithDecimalsCall { + #[allow(missing_docs)] + pub _remoteToken: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _name: alloy::sol_types::private::String, + #[allow(missing_docs)] + pub _symbol: alloy::sol_types::private::String, + #[allow(missing_docs)] + pub _decimals: u8, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`createOptimismMintableERC20WithDecimals(address,string,string,uint8)`](createOptimismMintableERC20WithDecimalsCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct createOptimismMintableERC20WithDecimalsReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::String, + alloy::sol_types::sol_data::String, + alloy::sol_types::sol_data::Uint<8>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::String, + alloy::sol_types::private::String, + u8, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: createOptimismMintableERC20WithDecimalsCall) -> Self { + (value._remoteToken, value._name, value._symbol, value._decimals) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for createOptimismMintableERC20WithDecimalsCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _remoteToken: tuple.0, + _name: tuple.1, + _symbol: tuple.2, + _decimals: tuple.3, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: createOptimismMintableERC20WithDecimalsReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for createOptimismMintableERC20WithDecimalsReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for createOptimismMintableERC20WithDecimalsCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::String, + alloy::sol_types::sol_data::String, + alloy::sol_types::sol_data::Uint<8>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "createOptimismMintableERC20WithDecimals(address,string,string,uint8)"; + const SELECTOR: [u8; 4] = [140u8, 240u8, 98u8, 156u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._remoteToken, + ), + ::tokenize( + &self._name, + ), + ::tokenize( + &self._symbol, + ), + as alloy_sol_types::SolType>::tokenize(&self._decimals), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: createOptimismMintableERC20WithDecimalsReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: createOptimismMintableERC20WithDecimalsReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `createStandardL2Token(address,string,string)` and selector `0x896f93d1`. +```solidity +function createStandardL2Token(address _remoteToken, string memory _name, string memory _symbol) external returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct createStandardL2TokenCall { + #[allow(missing_docs)] + pub _remoteToken: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _name: alloy::sol_types::private::String, + #[allow(missing_docs)] + pub _symbol: alloy::sol_types::private::String, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`createStandardL2Token(address,string,string)`](createStandardL2TokenCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct createStandardL2TokenReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::String, + alloy::sol_types::sol_data::String, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::String, + alloy::sol_types::private::String, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: createStandardL2TokenCall) -> Self { + (value._remoteToken, value._name, value._symbol) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for createStandardL2TokenCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _remoteToken: tuple.0, + _name: tuple.1, + _symbol: tuple.2, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: createStandardL2TokenReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for createStandardL2TokenReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for createStandardL2TokenCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::String, + alloy::sol_types::sol_data::String, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "createStandardL2Token(address,string,string)"; + const SELECTOR: [u8; 4] = [137u8, 111u8, 147u8, 209u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._remoteToken, + ), + ::tokenize( + &self._name, + ), + ::tokenize( + &self._symbol, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: createStandardL2TokenReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: createStandardL2TokenReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `deployments(address)` and selector `0x316b3739`. +```solidity +function deployments(address) external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct deploymentsCall(pub alloy::sol_types::private::Address); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`deployments(address)`](deploymentsCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct deploymentsReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: deploymentsCall) -> Self { + (value.0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for deploymentsCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self(tuple.0) + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: deploymentsReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for deploymentsReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for deploymentsCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "deployments(address)"; + const SELECTOR: [u8; 4] = [49u8, 107u8, 55u8, 57u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.0, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: deploymentsReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: deploymentsReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `initialize(address)` and selector `0xc4d66de8`. +```solidity +function initialize(address _bridge) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct initializeCall { + #[allow(missing_docs)] + pub _bridge: alloy::sol_types::private::Address, + } + ///Container type for the return parameters of the [`initialize(address)`](initializeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct initializeReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: initializeCall) -> Self { + (value._bridge,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for initializeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _bridge: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: initializeReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for initializeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl initializeReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for initializeCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = initializeReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "initialize(address)"; + const SELECTOR: [u8; 4] = [196u8, 214u8, 109u8, 232u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._bridge, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + initializeReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `version()` and selector `0x54fd4d50`. +```solidity +function version() external view returns (string memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`version()`](versionCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for versionCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::String; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "version()"; + const SELECTOR: [u8; 4] = [84u8, 253u8, 77u8, 80u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + } + }; + ///Container for all the [`OptimismMintableERC20Factory`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum OptimismMintableERC20FactoryCalls { + #[allow(missing_docs)] + BRIDGE(BRIDGECall), + #[allow(missing_docs)] + bridge(bridgeCall), + #[allow(missing_docs)] + createOptimismMintableERC20(createOptimismMintableERC20Call), + #[allow(missing_docs)] + createOptimismMintableERC20WithDecimals( + createOptimismMintableERC20WithDecimalsCall, + ), + #[allow(missing_docs)] + createStandardL2Token(createStandardL2TokenCall), + #[allow(missing_docs)] + deployments(deploymentsCall), + #[allow(missing_docs)] + initialize(initializeCall), + #[allow(missing_docs)] + version(versionCall), + } + impl OptimismMintableERC20FactoryCalls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [49u8, 107u8, 55u8, 57u8], + [84u8, 253u8, 77u8, 80u8], + [137u8, 111u8, 147u8, 209u8], + [140u8, 240u8, 98u8, 156u8], + [196u8, 214u8, 109u8, 232u8], + [206u8, 90u8, 201u8, 15u8], + [231u8, 140u8, 234u8, 146u8], + [238u8, 154u8, 49u8, 162u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(deployments), + ::core::stringify!(version), + ::core::stringify!(createStandardL2Token), + ::core::stringify!(createOptimismMintableERC20WithDecimals), + ::core::stringify!(initialize), + ::core::stringify!(createOptimismMintableERC20), + ::core::stringify!(bridge), + ::core::stringify!(BRIDGE), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for OptimismMintableERC20FactoryCalls { + const NAME: &'static str = "OptimismMintableERC20FactoryCalls"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 8usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::BRIDGE(_) => ::SELECTOR, + Self::bridge(_) => ::SELECTOR, + Self::createOptimismMintableERC20(_) => { + ::SELECTOR + } + Self::createOptimismMintableERC20WithDecimals(_) => { + ::SELECTOR + } + Self::createStandardL2Token(_) => { + ::SELECTOR + } + Self::deployments(_) => { + ::SELECTOR + } + Self::initialize(_) => { + ::SELECTOR + } + Self::version(_) => ::SELECTOR, + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn deployments( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OptimismMintableERC20FactoryCalls::deployments) + } + deployments + }, + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(OptimismMintableERC20FactoryCalls::version) + } + version + }, + { + fn createStandardL2Token( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + OptimismMintableERC20FactoryCalls::createStandardL2Token, + ) + } + createStandardL2Token + }, + { + fn createOptimismMintableERC20WithDecimals( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + OptimismMintableERC20FactoryCalls::createOptimismMintableERC20WithDecimals, + ) + } + createOptimismMintableERC20WithDecimals + }, + { + fn initialize( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OptimismMintableERC20FactoryCalls::initialize) + } + initialize + }, + { + fn createOptimismMintableERC20( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + OptimismMintableERC20FactoryCalls::createOptimismMintableERC20, + ) + } + createOptimismMintableERC20 + }, + { + fn bridge( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(OptimismMintableERC20FactoryCalls::bridge) + } + bridge + }, + { + fn BRIDGE( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(OptimismMintableERC20FactoryCalls::BRIDGE) + } + BRIDGE + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn deployments( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismMintableERC20FactoryCalls::deployments) + } + deployments + }, + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismMintableERC20FactoryCalls::version) + } + version + }, + { + fn createStandardL2Token( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + OptimismMintableERC20FactoryCalls::createStandardL2Token, + ) + } + createStandardL2Token + }, + { + fn createOptimismMintableERC20WithDecimals( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + OptimismMintableERC20FactoryCalls::createOptimismMintableERC20WithDecimals, + ) + } + createOptimismMintableERC20WithDecimals + }, + { + fn initialize( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismMintableERC20FactoryCalls::initialize) + } + initialize + }, + { + fn createOptimismMintableERC20( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + OptimismMintableERC20FactoryCalls::createOptimismMintableERC20, + ) + } + createOptimismMintableERC20 + }, + { + fn bridge( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismMintableERC20FactoryCalls::bridge) + } + bridge + }, + { + fn BRIDGE( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismMintableERC20FactoryCalls::BRIDGE) + } + BRIDGE + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::BRIDGE(inner) => { + ::abi_encoded_size(inner) + } + Self::bridge(inner) => { + ::abi_encoded_size(inner) + } + Self::createOptimismMintableERC20(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::createOptimismMintableERC20WithDecimals(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::createStandardL2Token(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::deployments(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::initialize(inner) => { + ::abi_encoded_size(inner) + } + Self::version(inner) => { + ::abi_encoded_size(inner) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::BRIDGE(inner) => { + ::abi_encode_raw(inner, out) + } + Self::bridge(inner) => { + ::abi_encode_raw(inner, out) + } + Self::createOptimismMintableERC20(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::createOptimismMintableERC20WithDecimals(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::createStandardL2Token(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::deployments(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::initialize(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::version(inner) => { + ::abi_encode_raw(inner, out) + } + } + } + } + ///Container for all the [`OptimismMintableERC20Factory`](self) events. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum OptimismMintableERC20FactoryEvents { + #[allow(missing_docs)] + Initialized(Initialized), + #[allow(missing_docs)] + OptimismMintableERC20Created(OptimismMintableERC20Created), + #[allow(missing_docs)] + StandardL2TokenCreated(StandardL2TokenCreated), + } + impl OptimismMintableERC20FactoryEvents { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 32usize]] = &[ + [ + 82u8, 254u8, 137u8, 221u8, 89u8, 48u8, 243u8, 67u8, 210u8, 86u8, 80u8, + 182u8, 47u8, 211u8, 103u8, 186u8, 228u8, 112u8, 136u8, 188u8, 221u8, + 255u8, 210u8, 168u8, 131u8, 80u8, 166u8, 236u8, 221u8, 98u8, 12u8, 219u8, + ], + [ + 127u8, 38u8, 184u8, 63u8, 249u8, 110u8, 31u8, 43u8, 106u8, 104u8, 47u8, + 19u8, 56u8, 82u8, 246u8, 121u8, 138u8, 9u8, 196u8, 101u8, 218u8, 149u8, + 146u8, 20u8, 96u8, 206u8, 251u8, 56u8, 71u8, 64u8, 36u8, 152u8, + ], + [ + 206u8, 235u8, 142u8, 125u8, 82u8, 13u8, 127u8, 59u8, 101u8, 252u8, 17u8, + 162u8, 98u8, 185u8, 16u8, 102u8, 148u8, 1u8, 147u8, 176u8, 93u8, 79u8, + 147u8, 223u8, 7u8, 207u8, 220u8, 237u8, 14u8, 181u8, 81u8, 207u8, + ], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(OptimismMintableERC20Created), + ::core::stringify!(Initialized), + ::core::stringify!(StandardL2TokenCreated), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolEventInterface for OptimismMintableERC20FactoryEvents { + const NAME: &'static str = "OptimismMintableERC20FactoryEvents"; + const COUNT: usize = 3usize; + fn decode_raw_log( + topics: &[alloy_sol_types::Word], + data: &[u8], + ) -> alloy_sol_types::Result { + match topics.first().copied() { + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::Initialized) + } + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::OptimismMintableERC20Created) + } + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::StandardL2TokenCreated) + } + _ => { + alloy_sol_types::private::Err(alloy_sol_types::Error::InvalidLog { + name: ::NAME, + log: alloy_sol_types::private::Box::new( + alloy_sol_types::private::LogData::new_unchecked( + topics.to_vec(), + data.to_vec().into(), + ), + ), + }) + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for OptimismMintableERC20FactoryEvents { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + match self { + Self::Initialized(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::OptimismMintableERC20Created(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::StandardL2TokenCreated(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + } + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + match self { + Self::Initialized(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::OptimismMintableERC20Created(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::StandardL2TokenCreated(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`OptimismMintableERC20Factory`](self) contract instance. + +See the [wrapper's documentation](`OptimismMintableERC20FactoryInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> OptimismMintableERC20FactoryInstance { + OptimismMintableERC20FactoryInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + OptimismMintableERC20FactoryInstance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + OptimismMintableERC20FactoryInstance::::deploy_builder(__provider) + } + /**A [`OptimismMintableERC20Factory`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`OptimismMintableERC20Factory`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct OptimismMintableERC20FactoryInstance< + P, + N = alloy_contract::private::Ethereum, + > { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for OptimismMintableERC20FactoryInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("OptimismMintableERC20FactoryInstance") + .field(&self.address) + .finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > OptimismMintableERC20FactoryInstance { + /**Creates a new wrapper around an on-chain [`OptimismMintableERC20Factory`](self) contract instance. + +See the [wrapper's documentation](`OptimismMintableERC20FactoryInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl OptimismMintableERC20FactoryInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> OptimismMintableERC20FactoryInstance { + OptimismMintableERC20FactoryInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > OptimismMintableERC20FactoryInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`BRIDGE`] function. + pub fn BRIDGE(&self) -> alloy_contract::SolCallBuilder<&P, BRIDGECall, N> { + self.call_builder(&BRIDGECall) + } + ///Creates a new call builder for the [`bridge`] function. + pub fn bridge(&self) -> alloy_contract::SolCallBuilder<&P, bridgeCall, N> { + self.call_builder(&bridgeCall) + } + ///Creates a new call builder for the [`createOptimismMintableERC20`] function. + pub fn createOptimismMintableERC20( + &self, + _remoteToken: alloy::sol_types::private::Address, + _name: alloy::sol_types::private::String, + _symbol: alloy::sol_types::private::String, + ) -> alloy_contract::SolCallBuilder<&P, createOptimismMintableERC20Call, N> { + self.call_builder( + &createOptimismMintableERC20Call { + _remoteToken, + _name, + _symbol, + }, + ) + } + ///Creates a new call builder for the [`createOptimismMintableERC20WithDecimals`] function. + pub fn createOptimismMintableERC20WithDecimals( + &self, + _remoteToken: alloy::sol_types::private::Address, + _name: alloy::sol_types::private::String, + _symbol: alloy::sol_types::private::String, + _decimals: u8, + ) -> alloy_contract::SolCallBuilder< + &P, + createOptimismMintableERC20WithDecimalsCall, + N, + > { + self.call_builder( + &createOptimismMintableERC20WithDecimalsCall { + _remoteToken, + _name, + _symbol, + _decimals, + }, + ) + } + ///Creates a new call builder for the [`createStandardL2Token`] function. + pub fn createStandardL2Token( + &self, + _remoteToken: alloy::sol_types::private::Address, + _name: alloy::sol_types::private::String, + _symbol: alloy::sol_types::private::String, + ) -> alloy_contract::SolCallBuilder<&P, createStandardL2TokenCall, N> { + self.call_builder( + &createStandardL2TokenCall { + _remoteToken, + _name, + _symbol, + }, + ) + } + ///Creates a new call builder for the [`deployments`] function. + pub fn deployments( + &self, + _0: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, deploymentsCall, N> { + self.call_builder(&deploymentsCall(_0)) + } + ///Creates a new call builder for the [`initialize`] function. + pub fn initialize( + &self, + _bridge: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, initializeCall, N> { + self.call_builder(&initializeCall { _bridge }) + } + ///Creates a new call builder for the [`version`] function. + pub fn version(&self) -> alloy_contract::SolCallBuilder<&P, versionCall, N> { + self.call_builder(&versionCall) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > OptimismMintableERC20FactoryInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + ///Creates a new event filter for the [`Initialized`] event. + pub fn Initialized_filter(&self) -> alloy_contract::Event<&P, Initialized, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`OptimismMintableERC20Created`] event. + pub fn OptimismMintableERC20Created_filter( + &self, + ) -> alloy_contract::Event<&P, OptimismMintableERC20Created, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`StandardL2TokenCreated`] event. + pub fn StandardL2TokenCreated_filter( + &self, + ) -> alloy_contract::Event<&P, StandardL2TokenCreated, N> { + self.event_filter::() + } + } +} diff --git a/bindings/rust/src/optimism_mintable_erc721.rs b/bindings/rust/src/optimism_mintable_erc721.rs new file mode 100644 index 000000000..dbf5294b3 --- /dev/null +++ b/bindings/rust/src/optimism_mintable_erc721.rs @@ -0,0 +1,7178 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface OptimismMintableERC721 { + event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId); + event ApprovalForAll(address indexed owner, address indexed operator, bool approved); + event Burn(address indexed account, uint256 tokenId); + event Mint(address indexed account, uint256 tokenId); + event Transfer(address indexed from, address indexed to, uint256 indexed tokenId); + + constructor(address _bridge, uint256 _remoteChainId, address _remoteToken, string _name, string _symbol); + + function BRIDGE() external view returns (address); + function REMOTE_CHAIN_ID() external view returns (uint256); + function REMOTE_TOKEN() external view returns (address); + function approve(address to, uint256 tokenId) external; + function balanceOf(address owner) external view returns (uint256); + function baseTokenURI() external view returns (string memory); + function bridge() external view returns (address); + function burn(address _from, uint256 _tokenId) external; + function getApproved(uint256 tokenId) external view returns (address); + function isApprovedForAll(address owner, address operator) external view returns (bool); + function name() external view returns (string memory); + function ownerOf(uint256 tokenId) external view returns (address); + function remoteChainId() external view returns (uint256); + function remoteToken() external view returns (address); + function safeMint(address _to, uint256 _tokenId) external; + function safeTransferFrom(address from, address to, uint256 tokenId) external; + function safeTransferFrom(address from, address to, uint256 tokenId, bytes memory data) external; + function setApprovalForAll(address operator, bool approved) external; + function supportsInterface(bytes4 _interfaceId) external view returns (bool); + function symbol() external view returns (string memory); + function tokenByIndex(uint256 index) external view returns (uint256); + function tokenOfOwnerByIndex(address owner, uint256 index) external view returns (uint256); + function tokenURI(uint256 tokenId) external view returns (string memory); + function totalSupply() external view returns (uint256); + function transferFrom(address from, address to, uint256 tokenId) external; + function version() external view returns (string memory); +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "constructor", + "inputs": [ + { + "name": "_bridge", + "type": "address", + "internalType": "address" + }, + { + "name": "_remoteChainId", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_remoteToken", + "type": "address", + "internalType": "address" + }, + { + "name": "_name", + "type": "string", + "internalType": "string" + }, + { + "name": "_symbol", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "BRIDGE", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "REMOTE_CHAIN_ID", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "REMOTE_TOKEN", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "approve", + "inputs": [ + { + "name": "to", + "type": "address", + "internalType": "address" + }, + { + "name": "tokenId", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "balanceOf", + "inputs": [ + { + "name": "owner", + "type": "address", + "internalType": "address" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "baseTokenURI", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "bridge", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "burn", + "inputs": [ + { + "name": "_from", + "type": "address", + "internalType": "address" + }, + { + "name": "_tokenId", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "getApproved", + "inputs": [ + { + "name": "tokenId", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "isApprovedForAll", + "inputs": [ + { + "name": "owner", + "type": "address", + "internalType": "address" + }, + { + "name": "operator", + "type": "address", + "internalType": "address" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "name", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "ownerOf", + "inputs": [ + { + "name": "tokenId", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "remoteChainId", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "remoteToken", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "safeMint", + "inputs": [ + { + "name": "_to", + "type": "address", + "internalType": "address" + }, + { + "name": "_tokenId", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "safeTransferFrom", + "inputs": [ + { + "name": "from", + "type": "address", + "internalType": "address" + }, + { + "name": "to", + "type": "address", + "internalType": "address" + }, + { + "name": "tokenId", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "safeTransferFrom", + "inputs": [ + { + "name": "from", + "type": "address", + "internalType": "address" + }, + { + "name": "to", + "type": "address", + "internalType": "address" + }, + { + "name": "tokenId", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "data", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "setApprovalForAll", + "inputs": [ + { + "name": "operator", + "type": "address", + "internalType": "address" + }, + { + "name": "approved", + "type": "bool", + "internalType": "bool" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "supportsInterface", + "inputs": [ + { + "name": "_interfaceId", + "type": "bytes4", + "internalType": "bytes4" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "symbol", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "tokenByIndex", + "inputs": [ + { + "name": "index", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "tokenOfOwnerByIndex", + "inputs": [ + { + "name": "owner", + "type": "address", + "internalType": "address" + }, + { + "name": "index", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "tokenURI", + "inputs": [ + { + "name": "tokenId", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "totalSupply", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "transferFrom", + "inputs": [ + { + "name": "from", + "type": "address", + "internalType": "address" + }, + { + "name": "to", + "type": "address", + "internalType": "address" + }, + { + "name": "tokenId", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "version", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "view" + }, + { + "type": "event", + "name": "Approval", + "inputs": [ + { + "name": "owner", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "approved", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "tokenId", + "type": "uint256", + "indexed": true, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "ApprovalForAll", + "inputs": [ + { + "name": "owner", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "operator", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "approved", + "type": "bool", + "indexed": false, + "internalType": "bool" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "Burn", + "inputs": [ + { + "name": "account", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "tokenId", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "Mint", + "inputs": [ + { + "name": "account", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "tokenId", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "Transfer", + "inputs": [ + { + "name": "from", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "to", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "tokenId", + "type": "uint256", + "indexed": true, + "internalType": "uint256" + } + ], + "anonymous": false + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod OptimismMintableERC721 { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x60e06040523480156200001157600080fd5b5060405162002c7938038062002c7983398101604081905262000034916200062d565b8181600062000044838262000756565b50600162000053828262000756565b5050506001600160a01b038516620000d85760405162461bcd60e51b815260206004820152603360248201527f4f7074696d69736d4d696e7461626c654552433732313a20627269646765206360448201527f616e6e6f7420626520616464726573732830290000000000000000000000000060648201526084015b60405180910390fd5b83600003620001505760405162461bcd60e51b815260206004820152603660248201527f4f7074696d69736d4d696e7461626c654552433732313a2072656d6f7465206360448201527f6861696e2069642063616e6e6f74206265207a65726f000000000000000000006064820152608401620000cf565b6001600160a01b038316620001ce5760405162461bcd60e51b815260206004820152603960248201527f4f7074696d69736d4d696e7461626c654552433732313a2072656d6f7465207460448201527f6f6b656e2063616e6e6f742062652061646472657373283029000000000000006064820152608401620000cf565b60808490526001600160a01b0383811660a081905290861660c0526200020290601462000256602090811b62000d3317901c565b62000218856200041660201b62000f5c1760201c565b6040516020016200022b92919062000822565b604051602081830303815290604052600a90816200024a919062000756565b50505050505062000993565b6060600062000267836002620008ac565b62000274906002620008ce565b6001600160401b038111156200028e576200028e62000553565b6040519080825280601f01601f191660200182016040528015620002b9576020820181803683370190505b509050600360fc1b81600081518110620002d757620002d7620008e9565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110620003095762000309620008e9565b60200101906001600160f81b031916908160001a90535060006200032f846002620008ac565b6200033c906001620008ce565b90505b6001811115620003be576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110620003745762000374620008e9565b1a60f81b8282815181106200038d576200038d620008e9565b60200101906001600160f81b031916908160001a90535060049490941c93620003b681620008ff565b90506200033f565b5083156200040f5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401620000cf565b9392505050565b6060816000036200043e5750506040805180820190915260018152600360fc1b602082015290565b8160005b81156200046e5780620004558162000919565b9150620004669050600a836200094b565b915062000442565b6000816001600160401b038111156200048b576200048b62000553565b6040519080825280601f01601f191660200182016040528015620004b6576020820181803683370190505b5090505b84156200052e57620004ce60018362000962565b9150620004dd600a866200097c565b620004ea906030620008ce565b60f81b818381518110620005025762000502620008e9565b60200101906001600160f81b031916908160001a90535062000526600a866200094b565b9450620004ba565b949350505050565b80516001600160a01b03811681146200054e57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b83811015620005865781810151838201526020016200056c565b8381111562000596576000848401525b50505050565b600082601f830112620005ae57600080fd5b81516001600160401b0380821115620005cb57620005cb62000553565b604051601f8301601f19908116603f01168101908282118183101715620005f657620005f662000553565b816040528381528660208588010111156200061057600080fd5b6200062384602083016020890162000569565b9695505050505050565b600080600080600060a086880312156200064657600080fd5b620006518662000536565b945060208601519350620006686040870162000536565b60608701519093506001600160401b03808211156200068657600080fd5b6200069489838a016200059c565b93506080880151915080821115620006ab57600080fd5b50620006ba888289016200059c565b9150509295509295909350565b600181811c90821680620006dc57607f821691505b602082108103620006fd57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200075157600081815260208120601f850160051c810160208610156200072c5750805b601f850160051c820191505b818110156200074d5782815560010162000738565b5050505b505050565b81516001600160401b0381111562000772576200077262000553565b6200078a81620007838454620006c7565b8462000703565b602080601f831160018114620007c25760008415620007a95750858301515b600019600386901b1c1916600185901b1785556200074d565b600085815260208120601f198616915b82811015620007f357888601518255948401946001909101908401620007d2565b5085821015620008125787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6832ba3432b932bab69d60b91b8152600083516200084881600985016020880162000569565b600160fe1b60099184019182015283516200086b81600a84016020880162000569565b712f746f6b656e5552493f75696e743235363d60701b600a9290910191820152601c01949350505050565b634e487b7160e01b600052601160045260246000fd5b6000816000190483118215151615620008c957620008c962000896565b500290565b60008219821115620008e457620008e462000896565b500190565b634e487b7160e01b600052603260045260246000fd5b60008162000911576200091162000896565b506000190190565b6000600182016200092e576200092e62000896565b5060010190565b634e487b7160e01b600052601260045260246000fd5b6000826200095d576200095d62000935565b500490565b60008282101562000977576200097762000896565b500390565b6000826200098e576200098e62000935565b500690565b60805160a05160c051612293620009e6600039600081816103d501528181610460015281816109dc0152610aca0152600081816101e001526103af01526000818161031c01526103fb01526122936000f3fe608060405234801561001057600080fd5b50600436106101ae5760003560e01c80637d1d0c5b116100ee578063c87b56dd11610097578063e78cea9211610071578063e78cea92146103d3578063e9518196146103f9578063e985e9c51461041f578063ee9a31a21461045b57600080fd5b8063c87b56dd14610392578063d547cfb7146103a5578063d6c0b2c4146103ad57600080fd5b8063a1448194116100c8578063a144819414610359578063a22cb4651461036c578063b88d4fde1461037f57600080fd5b80637d1d0c5b1461031757806395d89b411461033e5780639dc29fac1461034657600080fd5b806323b872dd1161015b5780634f6ccce7116101355780634f6ccce7146102a257806354fd4d50146102b55780636352211e146102f157806370a082311461030457600080fd5b806323b872dd146102695780632f745c591461027c57806342842e0e1461028f57600080fd5b8063081812fc1161018c578063081812fc1461022f578063095ea7b31461024257806318160ddd1461025757600080fd5b806301ffc9a7146101b3578063033964be146101db57806306fdde031461021a575b600080fd5b6101c66101c1366004611d90565b610482565b60405190151581526020015b60405180910390f35b6102027f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016101d2565b6102226104e0565b6040516101d29190611e05565b61020261023d366004611e18565b610572565b610255610250366004611e4d565b610599565b005b6008545b6040519081526020016101d2565b610255610277366004611e77565b6106cf565b61025b61028a366004611e4d565b610756565b61025561029d366004611e77565b6107fe565b61025b6102b0366004611e18565b610819565b6102226040518060400160405280600581526020017f312e332e3200000000000000000000000000000000000000000000000000000081525081565b6102026102ff366004611e18565b6108bd565b61025b610312366004611eb3565b610928565b61025b7f000000000000000000000000000000000000000000000000000000000000000081565b6102226109c2565b610255610354366004611e4d565b6109d1565b610255610367366004611e4d565b610abf565b61025561037a366004611ece565b610ba2565b61025561038d366004611f39565b610bb1565b6102226103a0366004611e18565b610c3f565b610222610ca5565b7f0000000000000000000000000000000000000000000000000000000000000000610202565b7f0000000000000000000000000000000000000000000000000000000000000000610202565b7f000000000000000000000000000000000000000000000000000000000000000061025b565b6101c661042d366004612015565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b6102027f000000000000000000000000000000000000000000000000000000000000000081565b60007faecafc23000000000000000000000000000000000000000000000000000000007fffffffff0000000000000000000000000000000000000000000000000000000083168114806104d957506104d983611099565b9392505050565b6060600080546104ef90612048565b80601f016020809104026020016040519081016040528092919081815260200182805461051b90612048565b80156105685780601f1061053d57610100808354040283529160200191610568565b820191906000526020600020905b81548152906001019060200180831161054b57829003601f168201915b5050505050905090565b600061057d826110ef565b506000908152600460205260409020546001600160a01b031690565b60006105a4826108bd565b9050806001600160a01b0316836001600160a01b0316036106325760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560448201527f720000000000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b336001600160a01b038216148061064e575061064e813361042d565b6106c05760405162461bcd60e51b815260206004820152603e60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206e6f7220617070726f76656420666f7220616c6c00006064820152608401610629565b6106ca8383611156565b505050565b6106d933826111dc565b61074b5760405162461bcd60e51b815260206004820152602e60248201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560448201527f72206e6f7220617070726f7665640000000000000000000000000000000000006064820152608401610629565b6106ca83838361125a565b600061076183610928565b82106107d55760405162461bcd60e51b815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201527f74206f6620626f756e64730000000000000000000000000000000000000000006064820152608401610629565b506001600160a01b03919091166000908152600660209081526040808320938352929052205490565b6106ca83838360405180602001604052806000815250610bb1565b600061082460085490565b82106108985760405162461bcd60e51b815260206004820152602c60248201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60448201527f7574206f6620626f756e647300000000000000000000000000000000000000006064820152608401610629565b600882815481106108ab576108ab61209b565b90600052602060002001549050919050565b6000818152600260205260408120546001600160a01b0316806109225760405162461bcd60e51b815260206004820152601860248201527f4552433732313a20696e76616c696420746f6b656e20494400000000000000006044820152606401610629565b92915050565b60006001600160a01b0382166109a65760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f74206120766160448201527f6c6964206f776e657200000000000000000000000000000000000000000000006064820152608401610629565b506001600160a01b031660009081526003602052604090205490565b6060600180546104ef90612048565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610a6f5760405162461bcd60e51b815260206004820152603a60248201527f4f7074696d69736d4d696e7461626c654552433732313a206f6e6c792062726960448201527f6467652063616e2063616c6c20746869732066756e6374696f6e0000000000006064820152608401610629565b610a788161144a565b816001600160a01b03167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca582604051610ab391815260200190565b60405180910390a25050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610b5d5760405162461bcd60e51b815260206004820152603a60248201527f4f7074696d69736d4d696e7461626c654552433732313a206f6e6c792062726960448201527f6467652063616e2063616c6c20746869732066756e6374696f6e0000000000006064820152608401610629565b610b678282611509565b816001600160a01b03167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d412139688582604051610ab391815260200190565b610bad338383611523565b5050565b610bbb33836111dc565b610c2d5760405162461bcd60e51b815260206004820152602e60248201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560448201527f72206e6f7220617070726f7665640000000000000000000000000000000000006064820152608401610629565b610c398484848461160f565b50505050565b6060610c4a826110ef565b6000610c54611698565b90506000815111610c7457604051806020016040528060008152506104d9565b80610c7e84610f5c565b604051602001610c8f9291906120ca565b6040516020818303038152906040529392505050565b600a8054610cb290612048565b80601f0160208091040260200160405190810160405280929190818152602001828054610cde90612048565b8015610d2b5780601f10610d0057610100808354040283529160200191610d2b565b820191906000526020600020905b815481529060010190602001808311610d0e57829003601f168201915b505050505081565b60606000610d42836002612128565b610d4d906002612147565b67ffffffffffffffff811115610d6557610d65611f0a565b6040519080825280601f01601f191660200182016040528015610d8f576020820181803683370190505b5090507f300000000000000000000000000000000000000000000000000000000000000081600081518110610dc657610dc661209b565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f780000000000000000000000000000000000000000000000000000000000000081600181518110610e2957610e2961209b565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506000610e65846002612128565b610e70906001612147565b90505b6001811115610f0d577f303132333435363738396162636465660000000000000000000000000000000085600f1660108110610eb157610eb161209b565b1a60f81b828281518110610ec757610ec761209b565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060049490941c93610f068161215f565b9050610e73565b5083156104d95760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610629565b606081600003610f9f57505060408051808201909152600181527f3000000000000000000000000000000000000000000000000000000000000000602082015290565b8160005b8115610fc95780610fb381612176565b9150610fc29050600a836121bf565b9150610fa3565b60008167ffffffffffffffff811115610fe457610fe4611f0a565b6040519080825280601f01601f19166020018201604052801561100e576020820181803683370190505b5090505b8415611091576110236001836121d3565b9150611030600a866121ea565b61103b906030612147565b60f81b8183815181106110505761105061209b565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535061108a600a866121bf565b9450611012565b949350505050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f780e9d630000000000000000000000000000000000000000000000000000000014806109225750610922826116a7565b6000818152600260205260409020546001600160a01b03166111535760405162461bcd60e51b815260206004820152601860248201527f4552433732313a20696e76616c696420746f6b656e20494400000000000000006044820152606401610629565b50565b600081815260046020526040902080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03841690811790915581906111a3826108bd565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000806111e8836108bd565b9050806001600160a01b0316846001600160a01b0316148061122f57506001600160a01b0380821660009081526005602090815260408083209388168352929052205460ff165b806110915750836001600160a01b031661124884610572565b6001600160a01b031614949350505050565b826001600160a01b031661126d826108bd565b6001600160a01b0316146112e95760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201527f6f776e65720000000000000000000000000000000000000000000000000000006064820152608401610629565b6001600160a01b0382166113645760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610629565b61136f83838361178a565b61137a600082611156565b6001600160a01b03831660009081526003602052604081208054600192906113a39084906121d3565b90915550506001600160a01b03821660009081526003602052604081208054600192906113d1908490612147565b909155505060008181526002602052604080822080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6000611455826108bd565b90506114638160008461178a565b61146e600083611156565b6001600160a01b03811660009081526003602052604081208054600192906114979084906121d3565b909155505060008281526002602052604080822080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055518391906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b610bad828260405180602001604052806000815250611842565b816001600160a01b0316836001600160a01b0316036115845760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610629565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b61161a84848461125a565b611626848484846118cb565b610c395760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e74657200000000000000000000000000006064820152608401610629565b6060600a80546104ef90612048565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f80ac58cd00000000000000000000000000000000000000000000000000000000148061173a57507fffffffff0000000000000000000000000000000000000000000000000000000082167f5b5e139f00000000000000000000000000000000000000000000000000000000145b8061092257507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff00000000000000000000000000000000000000000000000000000000831614610922565b6001600160a01b0383166117e5576117e081600880546000838152600960205260408120829055600182018355919091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30155565b611808565b816001600160a01b0316836001600160a01b031614611808576118088382611a6c565b6001600160a01b03821661181f576106ca81611b09565b826001600160a01b0316826001600160a01b0316146106ca576106ca8282611bb8565b61184c8383611bfc565b61185960008484846118cb565b6106ca5760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e74657200000000000000000000000000006064820152608401610629565b60006001600160a01b0384163b15611a61576040517f150b7a020000000000000000000000000000000000000000000000000000000081526001600160a01b0385169063150b7a02906119289033908990889088906004016121fe565b6020604051808303816000875af1925050508015611963575060408051601f3d908101601f191682019092526119609181019061223a565b60015b611a16573d808015611991576040519150601f19603f3d011682016040523d82523d6000602084013e611996565b606091505b508051600003611a0e5760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e74657200000000000000000000000000006064820152608401610629565b805181602001fd5b7fffffffff00000000000000000000000000000000000000000000000000000000167f150b7a0200000000000000000000000000000000000000000000000000000000149050611091565b506001949350505050565b60006001611a7984610928565b611a8391906121d3565b600083815260076020526040902054909150808214611ad6576001600160a01b03841660009081526006602090815260408083208584528252808320548484528184208190558352600790915290208190555b5060009182526007602090815260408084208490556001600160a01b039094168352600681528383209183525290812055565b600854600090611b1b906001906121d3565b60008381526009602052604081205460088054939450909284908110611b4357611b4361209b565b906000526020600020015490508060088381548110611b6457611b6461209b565b6000918252602080832090910192909255828152600990915260408082208490558582528120556008805480611b9c57611b9c612257565b6001900381819060005260206000200160009055905550505050565b6000611bc383610928565b6001600160a01b039093166000908152600660209081526040808320868452825280832085905593825260079052919091209190915550565b6001600160a01b038216611c525760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610629565b6000818152600260205260409020546001600160a01b031615611cb75760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610629565b611cc36000838361178a565b6001600160a01b0382166000908152600360205260408120805460019290611cec908490612147565b909155505060008181526002602052604080822080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b7fffffffff000000000000000000000000000000000000000000000000000000008116811461115357600080fd5b600060208284031215611da257600080fd5b81356104d981611d62565b60005b83811015611dc8578181015183820152602001611db0565b83811115610c395750506000910152565b60008151808452611df1816020860160208601611dad565b601f01601f19169290920160200192915050565b6020815260006104d96020830184611dd9565b600060208284031215611e2a57600080fd5b5035919050565b80356001600160a01b0381168114611e4857600080fd5b919050565b60008060408385031215611e6057600080fd5b611e6983611e31565b946020939093013593505050565b600080600060608486031215611e8c57600080fd5b611e9584611e31565b9250611ea360208501611e31565b9150604084013590509250925092565b600060208284031215611ec557600080fd5b6104d982611e31565b60008060408385031215611ee157600080fd5b611eea83611e31565b915060208301358015158114611eff57600080fd5b809150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008060008060808587031215611f4f57600080fd5b611f5885611e31565b9350611f6660208601611e31565b925060408501359150606085013567ffffffffffffffff80821115611f8a57600080fd5b818701915087601f830112611f9e57600080fd5b813581811115611fb057611fb0611f0a565b604051601f8201601f19908116603f01168101908382118183101715611fd857611fd8611f0a565b816040528281528a6020848701011115611ff157600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b6000806040838503121561202857600080fd5b61203183611e31565b915061203f60208401611e31565b90509250929050565b600181811c9082168061205c57607f821691505b602082108103612095577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600083516120dc818460208801611dad565b8351908301906120f0818360208801611dad565b01949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000816000190483118215151615612142576121426120f9565b500290565b6000821982111561215a5761215a6120f9565b500190565b60008161216e5761216e6120f9565b506000190190565b60006000198203612189576121896120f9565b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000826121ce576121ce612190565b500490565b6000828210156121e5576121e56120f9565b500390565b6000826121f9576121f9612190565b500690565b60006001600160a01b038087168352808616602084015250836040830152608060608301526122306080830184611dd9565b9695505050505050565b60006020828403121561224c57600080fd5b81516104d981611d62565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\xE0`@R4\x80\x15b\0\0\x11W`\0\x80\xFD[P`@Qb\0,y8\x03\x80b\0,y\x839\x81\x01`@\x81\x90Rb\0\x004\x91b\0\x06-V[\x81\x81`\0b\0\0D\x83\x82b\0\x07VV[P`\x01b\0\0S\x82\x82b\0\x07VV[PPP`\x01`\x01`\xA0\x1B\x03\x85\x16b\0\0\xD8W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`3`$\x82\x01R\x7FOptimismMintableERC721: bridge c`D\x82\x01R\x7Fannot be address(0)\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01[`@Q\x80\x91\x03\x90\xFD[\x83`\0\x03b\0\x01PW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`6`$\x82\x01R\x7FOptimismMintableERC721: remote c`D\x82\x01R\x7Fhain id cannot be zero\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01b\0\0\xCFV[`\x01`\x01`\xA0\x1B\x03\x83\x16b\0\x01\xCEW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`9`$\x82\x01R\x7FOptimismMintableERC721: remote t`D\x82\x01R\x7Foken cannot be address(0)\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01b\0\0\xCFV[`\x80\x84\x90R`\x01`\x01`\xA0\x1B\x03\x83\x81\x16`\xA0\x81\x90R\x90\x86\x16`\xC0Rb\0\x02\x02\x90`\x14b\0\x02V` \x90\x81\x1Bb\0\r3\x17\x90\x1CV[b\0\x02\x18\x85b\0\x04\x16` \x1Bb\0\x0F\\\x17` \x1CV[`@Q` \x01b\0\x02+\x92\x91\x90b\0\x08\"V[`@Q` \x81\x83\x03\x03\x81R\x90`@R`\n\x90\x81b\0\x02J\x91\x90b\0\x07VV[PPPPPPb\0\t\x93V[```\0b\0\x02g\x83`\x02b\0\x08\xACV[b\0\x02t\x90`\x02b\0\x08\xCEV[`\x01`\x01`@\x1B\x03\x81\x11\x15b\0\x02\x8EWb\0\x02\x8Eb\0\x05SV[`@Q\x90\x80\x82R\x80`\x1F\x01`\x1F\x19\x16` \x01\x82\x01`@R\x80\x15b\0\x02\xB9W` \x82\x01\x81\x806\x837\x01\x90P[P\x90P`\x03`\xFC\x1B\x81`\0\x81Q\x81\x10b\0\x02\xD7Wb\0\x02\xD7b\0\x08\xE9V[` \x01\x01\x90`\x01`\x01`\xF8\x1B\x03\x19\x16\x90\x81`\0\x1A\x90SP`\x0F`\xFB\x1B\x81`\x01\x81Q\x81\x10b\0\x03\tWb\0\x03\tb\0\x08\xE9V[` \x01\x01\x90`\x01`\x01`\xF8\x1B\x03\x19\x16\x90\x81`\0\x1A\x90SP`\0b\0\x03/\x84`\x02b\0\x08\xACV[b\0\x03<\x90`\x01b\0\x08\xCEV[\x90P[`\x01\x81\x11\x15b\0\x03\xBEWo\x18\x18\x99\x19\x9A\x1A\x9B\x1B\x9C\x1C\xB0\xB11\xB22\xB3`\x81\x1B\x85`\x0F\x16`\x10\x81\x10b\0\x03tWb\0\x03tb\0\x08\xE9V[\x1A`\xF8\x1B\x82\x82\x81Q\x81\x10b\0\x03\x8DWb\0\x03\x8Db\0\x08\xE9V[` \x01\x01\x90`\x01`\x01`\xF8\x1B\x03\x19\x16\x90\x81`\0\x1A\x90SP`\x04\x94\x90\x94\x1C\x93b\0\x03\xB6\x81b\0\x08\xFFV[\x90Pb\0\x03?V[P\x83\x15b\0\x04\x0FW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01\x81\x90R`$\x82\x01R\x7FStrings: hex length insufficient`D\x82\x01R`d\x01b\0\0\xCFV[\x93\x92PPPV[``\x81`\0\x03b\0\x04>WPP`@\x80Q\x80\x82\x01\x90\x91R`\x01\x81R`\x03`\xFC\x1B` \x82\x01R\x90V[\x81`\0[\x81\x15b\0\x04nW\x80b\0\x04U\x81b\0\t\x19V[\x91Pb\0\x04f\x90P`\n\x83b\0\tKV[\x91Pb\0\x04BV[`\0\x81`\x01`\x01`@\x1B\x03\x81\x11\x15b\0\x04\x8BWb\0\x04\x8Bb\0\x05SV[`@Q\x90\x80\x82R\x80`\x1F\x01`\x1F\x19\x16` \x01\x82\x01`@R\x80\x15b\0\x04\xB6W` \x82\x01\x81\x806\x837\x01\x90P[P\x90P[\x84\x15b\0\x05.Wb\0\x04\xCE`\x01\x83b\0\tbV[\x91Pb\0\x04\xDD`\n\x86b\0\t|V[b\0\x04\xEA\x90`0b\0\x08\xCEV[`\xF8\x1B\x81\x83\x81Q\x81\x10b\0\x05\x02Wb\0\x05\x02b\0\x08\xE9V[` \x01\x01\x90`\x01`\x01`\xF8\x1B\x03\x19\x16\x90\x81`\0\x1A\x90SPb\0\x05&`\n\x86b\0\tKV[\x94Pb\0\x04\xBAV[\x94\x93PPPPV[\x80Q`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14b\0\x05NW`\0\x80\xFD[\x91\x90PV[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[`\0[\x83\x81\x10\x15b\0\x05\x86W\x81\x81\x01Q\x83\x82\x01R` \x01b\0\x05lV[\x83\x81\x11\x15b\0\x05\x96W`\0\x84\x84\x01R[PPPPV[`\0\x82`\x1F\x83\x01\x12b\0\x05\xAEW`\0\x80\xFD[\x81Q`\x01`\x01`@\x1B\x03\x80\x82\x11\x15b\0\x05\xCBWb\0\x05\xCBb\0\x05SV[`@Q`\x1F\x83\x01`\x1F\x19\x90\x81\x16`?\x01\x16\x81\x01\x90\x82\x82\x11\x81\x83\x10\x17\x15b\0\x05\xF6Wb\0\x05\xF6b\0\x05SV[\x81`@R\x83\x81R\x86` \x85\x88\x01\x01\x11\x15b\0\x06\x10W`\0\x80\xFD[b\0\x06#\x84` \x83\x01` \x89\x01b\0\x05iV[\x96\x95PPPPPPV[`\0\x80`\0\x80`\0`\xA0\x86\x88\x03\x12\x15b\0\x06FW`\0\x80\xFD[b\0\x06Q\x86b\0\x056V[\x94P` \x86\x01Q\x93Pb\0\x06h`@\x87\x01b\0\x056V[``\x87\x01Q\x90\x93P`\x01`\x01`@\x1B\x03\x80\x82\x11\x15b\0\x06\x86W`\0\x80\xFD[b\0\x06\x94\x89\x83\x8A\x01b\0\x05\x9CV[\x93P`\x80\x88\x01Q\x91P\x80\x82\x11\x15b\0\x06\xABW`\0\x80\xFD[Pb\0\x06\xBA\x88\x82\x89\x01b\0\x05\x9CV[\x91PP\x92\x95P\x92\x95\x90\x93PV[`\x01\x81\x81\x1C\x90\x82\x16\x80b\0\x06\xDCW`\x7F\x82\x16\x91P[` \x82\x10\x81\x03b\0\x06\xFDWcNH{q`\xE0\x1B`\0R`\"`\x04R`$`\0\xFD[P\x91\x90PV[`\x1F\x82\x11\x15b\0\x07QW`\0\x81\x81R` \x81 `\x1F\x85\x01`\x05\x1C\x81\x01` \x86\x10\x15b\0\x07,WP\x80[`\x1F\x85\x01`\x05\x1C\x82\x01\x91P[\x81\x81\x10\x15b\0\x07MW\x82\x81U`\x01\x01b\0\x078V[PPP[PPPV[\x81Q`\x01`\x01`@\x1B\x03\x81\x11\x15b\0\x07rWb\0\x07rb\0\x05SV[b\0\x07\x8A\x81b\0\x07\x83\x84Tb\0\x06\xC7V[\x84b\0\x07\x03V[` \x80`\x1F\x83\x11`\x01\x81\x14b\0\x07\xC2W`\0\x84\x15b\0\x07\xA9WP\x85\x83\x01Q[`\0\x19`\x03\x86\x90\x1B\x1C\x19\x16`\x01\x85\x90\x1B\x17\x85Ub\0\x07MV[`\0\x85\x81R` \x81 `\x1F\x19\x86\x16\x91[\x82\x81\x10\x15b\0\x07\xF3W\x88\x86\x01Q\x82U\x94\x84\x01\x94`\x01\x90\x91\x01\x90\x84\x01b\0\x07\xD2V[P\x85\x82\x10\x15b\0\x08\x12W\x87\x85\x01Q`\0\x19`\x03\x88\x90\x1B`\xF8\x16\x1C\x19\x16\x81U[PPPPP`\x01\x90\x81\x1B\x01\x90UPV[h2\xBA42\xB92\xBA\xB6\x9D`\xB9\x1B\x81R`\0\x83Qb\0\x08H\x81`\t\x85\x01` \x88\x01b\0\x05iV[`\x01`\xFE\x1B`\t\x91\x84\x01\x91\x82\x01R\x83Qb\0\x08k\x81`\n\x84\x01` \x88\x01b\0\x05iV[q/tokenURI?uint256=`p\x1B`\n\x92\x90\x91\x01\x91\x82\x01R`\x1C\x01\x94\x93PPPPV[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[`\0\x81`\0\x19\x04\x83\x11\x82\x15\x15\x16\x15b\0\x08\xC9Wb\0\x08\xC9b\0\x08\x96V[P\x02\x90V[`\0\x82\x19\x82\x11\x15b\0\x08\xE4Wb\0\x08\xE4b\0\x08\x96V[P\x01\x90V[cNH{q`\xE0\x1B`\0R`2`\x04R`$`\0\xFD[`\0\x81b\0\t\x11Wb\0\t\x11b\0\x08\x96V[P`\0\x19\x01\x90V[`\0`\x01\x82\x01b\0\t.Wb\0\t.b\0\x08\x96V[P`\x01\x01\x90V[cNH{q`\xE0\x1B`\0R`\x12`\x04R`$`\0\xFD[`\0\x82b\0\t]Wb\0\t]b\0\t5V[P\x04\x90V[`\0\x82\x82\x10\x15b\0\twWb\0\twb\0\x08\x96V[P\x03\x90V[`\0\x82b\0\t\x8EWb\0\t\x8Eb\0\t5V[P\x06\x90V[`\x80Q`\xA0Q`\xC0Qa\"\x93b\0\t\xE6`\09`\0\x81\x81a\x03\xD5\x01R\x81\x81a\x04`\x01R\x81\x81a\t\xDC\x01Ra\n\xCA\x01R`\0\x81\x81a\x01\xE0\x01Ra\x03\xAF\x01R`\0\x81\x81a\x03\x1C\x01Ra\x03\xFB\x01Ra\"\x93`\0\xF3\xFE`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`\x046\x10a\x01\xAEW`\x005`\xE0\x1C\x80c}\x1D\x0C[\x11a\0\xEEW\x80c\xC8{V\xDD\x11a\0\x97W\x80c\xE7\x8C\xEA\x92\x11a\0qW\x80c\xE7\x8C\xEA\x92\x14a\x03\xD3W\x80c\xE9Q\x81\x96\x14a\x03\xF9W\x80c\xE9\x85\xE9\xC5\x14a\x04\x1FW\x80c\xEE\x9A1\xA2\x14a\x04[W`\0\x80\xFD[\x80c\xC8{V\xDD\x14a\x03\x92W\x80c\xD5G\xCF\xB7\x14a\x03\xA5W\x80c\xD6\xC0\xB2\xC4\x14a\x03\xADW`\0\x80\xFD[\x80c\xA1D\x81\x94\x11a\0\xC8W\x80c\xA1D\x81\x94\x14a\x03YW\x80c\xA2,\xB4e\x14a\x03lW\x80c\xB8\x8DO\xDE\x14a\x03\x7FW`\0\x80\xFD[\x80c}\x1D\x0C[\x14a\x03\x17W\x80c\x95\xD8\x9BA\x14a\x03>W\x80c\x9D\xC2\x9F\xAC\x14a\x03FW`\0\x80\xFD[\x80c#\xB8r\xDD\x11a\x01[W\x80cOl\xCC\xE7\x11a\x015W\x80cOl\xCC\xE7\x14a\x02\xA2W\x80cT\xFDMP\x14a\x02\xB5W\x80ccR!\x1E\x14a\x02\xF1W\x80cp\xA0\x821\x14a\x03\x04W`\0\x80\xFD[\x80c#\xB8r\xDD\x14a\x02iW\x80c/t\\Y\x14a\x02|W\x80cB\x84.\x0E\x14a\x02\x8FW`\0\x80\xFD[\x80c\x08\x18\x12\xFC\x11a\x01\x8CW\x80c\x08\x18\x12\xFC\x14a\x02/W\x80c\t^\xA7\xB3\x14a\x02BW\x80c\x18\x16\r\xDD\x14a\x02WW`\0\x80\xFD[\x80c\x01\xFF\xC9\xA7\x14a\x01\xB3W\x80c\x039d\xBE\x14a\x01\xDBW\x80c\x06\xFD\xDE\x03\x14a\x02\x1AW[`\0\x80\xFD[a\x01\xC6a\x01\xC16`\x04a\x1D\x90V[a\x04\x82V[`@Q\x90\x15\x15\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[a\x02\x02\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x01a\x01\xD2V[a\x02\"a\x04\xE0V[`@Qa\x01\xD2\x91\x90a\x1E\x05V[a\x02\x02a\x02=6`\x04a\x1E\x18V[a\x05rV[a\x02Ua\x02P6`\x04a\x1EMV[a\x05\x99V[\0[`\x08T[`@Q\x90\x81R` \x01a\x01\xD2V[a\x02Ua\x02w6`\x04a\x1EwV[a\x06\xCFV[a\x02[a\x02\x8A6`\x04a\x1EMV[a\x07VV[a\x02Ua\x02\x9D6`\x04a\x1EwV[a\x07\xFEV[a\x02[a\x02\xB06`\x04a\x1E\x18V[a\x08\x19V[a\x02\"`@Q\x80`@\x01`@R\x80`\x05\x81R` \x01\x7F1.3.2\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\x81RP\x81V[a\x02\x02a\x02\xFF6`\x04a\x1E\x18V[a\x08\xBDV[a\x02[a\x03\x126`\x04a\x1E\xB3V[a\t(V[a\x02[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[a\x02\"a\t\xC2V[a\x02Ua\x03T6`\x04a\x1EMV[a\t\xD1V[a\x02Ua\x03g6`\x04a\x1EMV[a\n\xBFV[a\x02Ua\x03z6`\x04a\x1E\xCEV[a\x0B\xA2V[a\x02Ua\x03\x8D6`\x04a\x1F9V[a\x0B\xB1V[a\x02\"a\x03\xA06`\x04a\x1E\x18V[a\x0C?V[a\x02\"a\x0C\xA5V[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x02\x02V[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x02\x02V[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x02[V[a\x01\xC6a\x04-6`\x04a \x15V[`\x01`\x01`\xA0\x1B\x03\x91\x82\x16`\0\x90\x81R`\x05` \x90\x81R`@\x80\x83 \x93\x90\x94\x16\x82R\x91\x90\x91R T`\xFF\x16\x90V[a\x02\x02\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[`\0\x7F\xAE\xCA\xFC#\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\x7F\xFF\xFF\xFF\xFF\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\x83\x16\x81\x14\x80a\x04\xD9WPa\x04\xD9\x83a\x10\x99V[\x93\x92PPPV[```\0\x80Ta\x04\xEF\x90a HV[\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x92\x91\x90\x81\x81R` \x01\x82\x80Ta\x05\x1B\x90a HV[\x80\x15a\x05hW\x80`\x1F\x10a\x05=Wa\x01\0\x80\x83T\x04\x02\x83R\x91` \x01\x91a\x05hV[\x82\x01\x91\x90`\0R` `\0 \x90[\x81T\x81R\x90`\x01\x01\x90` \x01\x80\x83\x11a\x05KW\x82\x90\x03`\x1F\x16\x82\x01\x91[PPPPP\x90P\x90V[`\0a\x05}\x82a\x10\xEFV[P`\0\x90\x81R`\x04` R`@\x90 T`\x01`\x01`\xA0\x1B\x03\x16\x90V[`\0a\x05\xA4\x82a\x08\xBDV[\x90P\x80`\x01`\x01`\xA0\x1B\x03\x16\x83`\x01`\x01`\xA0\x1B\x03\x16\x03a\x062W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`!`$\x82\x01R\x7FERC721: approval to current owne`D\x82\x01R\x7Fr\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01[`@Q\x80\x91\x03\x90\xFD[3`\x01`\x01`\xA0\x1B\x03\x82\x16\x14\x80a\x06NWPa\x06N\x813a\x04-V[a\x06\xC0W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`>`$\x82\x01R\x7FERC721: approve caller is not to`D\x82\x01R\x7Fken owner nor approved for all\0\0`d\x82\x01R`\x84\x01a\x06)V[a\x06\xCA\x83\x83a\x11VV[PPPV[a\x06\xD93\x82a\x11\xDCV[a\x07KW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`.`$\x82\x01R\x7FERC721: caller is not token owne`D\x82\x01R\x7Fr nor approved\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x06)V[a\x06\xCA\x83\x83\x83a\x12ZV[`\0a\x07a\x83a\t(V[\x82\x10a\x07\xD5W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FERC721Enumerable: owner index ou`D\x82\x01R\x7Ft of bounds\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x06)V[P`\x01`\x01`\xA0\x1B\x03\x91\x90\x91\x16`\0\x90\x81R`\x06` \x90\x81R`@\x80\x83 \x93\x83R\x92\x90R T\x90V[a\x06\xCA\x83\x83\x83`@Q\x80` \x01`@R\x80`\0\x81RPa\x0B\xB1V[`\0a\x08$`\x08T\x90V[\x82\x10a\x08\x98W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`,`$\x82\x01R\x7FERC721Enumerable: global index o`D\x82\x01R\x7Fut of bounds\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x06)V[`\x08\x82\x81T\x81\x10a\x08\xABWa\x08\xABa \x9BV[\x90`\0R` `\0 \x01T\x90P\x91\x90PV[`\0\x81\x81R`\x02` R`@\x81 T`\x01`\x01`\xA0\x1B\x03\x16\x80a\t\"W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x18`$\x82\x01R\x7FERC721: invalid token ID\0\0\0\0\0\0\0\0`D\x82\x01R`d\x01a\x06)V[\x92\x91PPV[`\0`\x01`\x01`\xA0\x1B\x03\x82\x16a\t\xA6W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`)`$\x82\x01R\x7FERC721: address zero is not a va`D\x82\x01R\x7Flid owner\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x06)V[P`\x01`\x01`\xA0\x1B\x03\x16`\0\x90\x81R`\x03` R`@\x90 T\x90V[```\x01\x80Ta\x04\xEF\x90a HV[3`\x01`\x01`\xA0\x1B\x03\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x14a\noW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`:`$\x82\x01R\x7FOptimismMintableERC721: only bri`D\x82\x01R\x7Fdge can call this function\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x06)V[a\nx\x81a\x14JV[\x81`\x01`\x01`\xA0\x1B\x03\x16\x7F\xCC\x16\xF5\xDB\xB4\x872\x80\x81\\\x1E\xE0\x9D\xBD\x06sl\xFF\xCC\x18D\x12\xCFzq\xA0\xFD\xB7]9|\xA5\x82`@Qa\n\xB3\x91\x81R` \x01\x90V[`@Q\x80\x91\x03\x90\xA2PPV[3`\x01`\x01`\xA0\x1B\x03\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x14a\x0B]W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`:`$\x82\x01R\x7FOptimismMintableERC721: only bri`D\x82\x01R\x7Fdge can call this function\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x06)V[a\x0Bg\x82\x82a\x15\tV[\x81`\x01`\x01`\xA0\x1B\x03\x16\x7F\x0Fg\x98\xA5`y:T\xC3\xBC\xFE\x86\xA9<\xDE\x1Es\x08}\x94L\x0E\xA2\x05D\x13}A!9h\x85\x82`@Qa\n\xB3\x91\x81R` \x01\x90V[a\x0B\xAD3\x83\x83a\x15#V[PPV[a\x0B\xBB3\x83a\x11\xDCV[a\x0C-W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`.`$\x82\x01R\x7FERC721: caller is not token owne`D\x82\x01R\x7Fr nor approved\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x06)V[a\x0C9\x84\x84\x84\x84a\x16\x0FV[PPPPV[``a\x0CJ\x82a\x10\xEFV[`\0a\x0CTa\x16\x98V[\x90P`\0\x81Q\x11a\x0CtW`@Q\x80` \x01`@R\x80`\0\x81RPa\x04\xD9V[\x80a\x0C~\x84a\x0F\\V[`@Q` \x01a\x0C\x8F\x92\x91\x90a \xCAV[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x93\x92PPPV[`\n\x80Ta\x0C\xB2\x90a HV[\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x92\x91\x90\x81\x81R` \x01\x82\x80Ta\x0C\xDE\x90a HV[\x80\x15a\r+W\x80`\x1F\x10a\r\0Wa\x01\0\x80\x83T\x04\x02\x83R\x91` \x01\x91a\r+V[\x82\x01\x91\x90`\0R` `\0 \x90[\x81T\x81R\x90`\x01\x01\x90` \x01\x80\x83\x11a\r\x0EW\x82\x90\x03`\x1F\x16\x82\x01\x91[PPPPP\x81V[```\0a\rB\x83`\x02a!(V[a\rM\x90`\x02a!GV[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\reWa\rea\x1F\nV[`@Q\x90\x80\x82R\x80`\x1F\x01`\x1F\x19\x16` \x01\x82\x01`@R\x80\x15a\r\x8FW` \x82\x01\x81\x806\x837\x01\x90P[P\x90P\x7F0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81`\0\x81Q\x81\x10a\r\xC6Wa\r\xC6a \x9BV[` \x01\x01\x90~\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x19\x16\x90\x81`\0\x1A\x90SP\x7Fx\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81`\x01\x81Q\x81\x10a\x0E)Wa\x0E)a \x9BV[` \x01\x01\x90~\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x19\x16\x90\x81`\0\x1A\x90SP`\0a\x0Ee\x84`\x02a!(V[a\x0Ep\x90`\x01a!GV[\x90P[`\x01\x81\x11\x15a\x0F\rW\x7F0123456789abcdef\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x85`\x0F\x16`\x10\x81\x10a\x0E\xB1Wa\x0E\xB1a \x9BV[\x1A`\xF8\x1B\x82\x82\x81Q\x81\x10a\x0E\xC7Wa\x0E\xC7a \x9BV[` \x01\x01\x90~\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x19\x16\x90\x81`\0\x1A\x90SP`\x04\x94\x90\x94\x1C\x93a\x0F\x06\x81a!_V[\x90Pa\x0EsV[P\x83\x15a\x04\xD9W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01\x81\x90R`$\x82\x01R\x7FStrings: hex length insufficient`D\x82\x01R`d\x01a\x06)V[``\x81`\0\x03a\x0F\x9FWPP`@\x80Q\x80\x82\x01\x90\x91R`\x01\x81R\x7F0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0` \x82\x01R\x90V[\x81`\0[\x81\x15a\x0F\xC9W\x80a\x0F\xB3\x81a!vV[\x91Pa\x0F\xC2\x90P`\n\x83a!\xBFV[\x91Pa\x0F\xA3V[`\0\x81g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x0F\xE4Wa\x0F\xE4a\x1F\nV[`@Q\x90\x80\x82R\x80`\x1F\x01`\x1F\x19\x16` \x01\x82\x01`@R\x80\x15a\x10\x0EW` \x82\x01\x81\x806\x837\x01\x90P[P\x90P[\x84\x15a\x10\x91Wa\x10#`\x01\x83a!\xD3V[\x91Pa\x100`\n\x86a!\xEAV[a\x10;\x90`0a!GV[`\xF8\x1B\x81\x83\x81Q\x81\x10a\x10PWa\x10Pa \x9BV[` \x01\x01\x90~\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x19\x16\x90\x81`\0\x1A\x90SPa\x10\x8A`\n\x86a!\xBFV[\x94Pa\x10\x12V[\x94\x93PPPPV[`\0\x7F\xFF\xFF\xFF\xFF\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\x82\x16\x7Fx\x0E\x9Dc\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\x14\x80a\t\"WPa\t\"\x82a\x16\xA7V[`\0\x81\x81R`\x02` R`@\x90 T`\x01`\x01`\xA0\x1B\x03\x16a\x11SW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x18`$\x82\x01R\x7FERC721: invalid token ID\0\0\0\0\0\0\0\0`D\x82\x01R`d\x01a\x06)V[PV[`\0\x81\x81R`\x04` R`@\x90 \x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16`\x01`\x01`\xA0\x1B\x03\x84\x16\x90\x81\x17\x90\x91U\x81\x90a\x11\xA3\x82a\x08\xBDV[`\x01`\x01`\xA0\x1B\x03\x16\x7F\x8C[\xE1\xE5\xEB\xEC}[\xD1OqB}\x1E\x84\xF3\xDD\x03\x14\xC0\xF7\xB2)\x1E[ \n\xC8\xC7\xC3\xB9%`@Q`@Q\x80\x91\x03\x90\xA4PPV[`\0\x80a\x11\xE8\x83a\x08\xBDV[\x90P\x80`\x01`\x01`\xA0\x1B\x03\x16\x84`\x01`\x01`\xA0\x1B\x03\x16\x14\x80a\x12/WP`\x01`\x01`\xA0\x1B\x03\x80\x82\x16`\0\x90\x81R`\x05` \x90\x81R`@\x80\x83 \x93\x88\x16\x83R\x92\x90R T`\xFF\x16[\x80a\x10\x91WP\x83`\x01`\x01`\xA0\x1B\x03\x16a\x12H\x84a\x05rV[`\x01`\x01`\xA0\x1B\x03\x16\x14\x94\x93PPPPV[\x82`\x01`\x01`\xA0\x1B\x03\x16a\x12m\x82a\x08\xBDV[`\x01`\x01`\xA0\x1B\x03\x16\x14a\x12\xE9W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`%`$\x82\x01R\x7FERC721: transfer from incorrect `D\x82\x01R\x7Fowner\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`d\x82\x01R`\x84\x01a\x06)V[`\x01`\x01`\xA0\x1B\x03\x82\x16a\x13dW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`$\x80\x82\x01R\x7FERC721: transfer to the zero add`D\x82\x01R\x7Fress\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`d\x82\x01R`\x84\x01a\x06)V[a\x13o\x83\x83\x83a\x17\x8AV[a\x13z`\0\x82a\x11VV[`\x01`\x01`\xA0\x1B\x03\x83\x16`\0\x90\x81R`\x03` R`@\x81 \x80T`\x01\x92\x90a\x13\xA3\x90\x84\x90a!\xD3V[\x90\x91UPP`\x01`\x01`\xA0\x1B\x03\x82\x16`\0\x90\x81R`\x03` R`@\x81 \x80T`\x01\x92\x90a\x13\xD1\x90\x84\x90a!GV[\x90\x91UPP`\0\x81\x81R`\x02` R`@\x80\x82 \x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16`\x01`\x01`\xA0\x1B\x03\x86\x81\x16\x91\x82\x17\x90\x92U\x91Q\x84\x93\x91\x87\x16\x91\x7F\xDD\xF2R\xAD\x1B\xE2\xC8\x9Bi\xC2\xB0h\xFC7\x8D\xAA\x95+\xA7\xF1c\xC4\xA1\x16(\xF5ZM\xF5#\xB3\xEF\x91\xA4PPPV[`\0a\x14U\x82a\x08\xBDV[\x90Pa\x14c\x81`\0\x84a\x17\x8AV[a\x14n`\0\x83a\x11VV[`\x01`\x01`\xA0\x1B\x03\x81\x16`\0\x90\x81R`\x03` R`@\x81 \x80T`\x01\x92\x90a\x14\x97\x90\x84\x90a!\xD3V[\x90\x91UPP`\0\x82\x81R`\x02` R`@\x80\x82 \x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x90UQ\x83\x91\x90`\x01`\x01`\xA0\x1B\x03\x84\x16\x90\x7F\xDD\xF2R\xAD\x1B\xE2\xC8\x9Bi\xC2\xB0h\xFC7\x8D\xAA\x95+\xA7\xF1c\xC4\xA1\x16(\xF5ZM\xF5#\xB3\xEF\x90\x83\x90\xA4PPV[a\x0B\xAD\x82\x82`@Q\x80` \x01`@R\x80`\0\x81RPa\x18BV[\x81`\x01`\x01`\xA0\x1B\x03\x16\x83`\x01`\x01`\xA0\x1B\x03\x16\x03a\x15\x84W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x19`$\x82\x01R\x7FERC721: approve to caller\0\0\0\0\0\0\0`D\x82\x01R`d\x01a\x06)V[`\x01`\x01`\xA0\x1B\x03\x83\x81\x16`\0\x81\x81R`\x05` \x90\x81R`@\x80\x83 \x94\x87\x16\x80\x84R\x94\x82R\x91\x82\x90 \x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x16\x86\x15\x15\x90\x81\x17\x90\x91U\x91Q\x91\x82R\x7F\x170~\xAB9\xABa\x07\xE8\x89\x98E\xAD=Y\xBD\x96S\xF2\0\xF2 \x92\x04\x89\xCA+Y7il1\x91\x01`@Q\x80\x91\x03\x90\xA3PPPV[a\x16\x1A\x84\x84\x84a\x12ZV[a\x16&\x84\x84\x84\x84a\x18\xCBV[a\x0C9W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`2`$\x82\x01R\x7FERC721: transfer to non ERC721Re`D\x82\x01R\x7Fceiver implementer\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x06)V[```\n\x80Ta\x04\xEF\x90a HV[`\0\x7F\xFF\xFF\xFF\xFF\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\x82\x16\x7F\x80\xACX\xCD\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\x14\x80a\x17:WP\x7F\xFF\xFF\xFF\xFF\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\x82\x16\x7F[^\x13\x9F\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\x14[\x80a\t\"WP\x7F\x01\xFF\xC9\xA7\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\x7F\xFF\xFF\xFF\xFF\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\x83\x16\x14a\t\"V[`\x01`\x01`\xA0\x1B\x03\x83\x16a\x17\xE5Wa\x17\xE0\x81`\x08\x80T`\0\x83\x81R`\t` R`@\x81 \x82\x90U`\x01\x82\x01\x83U\x91\x90\x91R\x7F\xF3\xF7\xA9\xFE6O\xAA\xB9;!m\xA5\n2\x14\x15O\"\xA0\xA2\xB4\x15\xB2:\x84\xC8\x16\x9E\x8Bcn\xE3\x01UV[a\x18\x08V[\x81`\x01`\x01`\xA0\x1B\x03\x16\x83`\x01`\x01`\xA0\x1B\x03\x16\x14a\x18\x08Wa\x18\x08\x83\x82a\x1AlV[`\x01`\x01`\xA0\x1B\x03\x82\x16a\x18\x1FWa\x06\xCA\x81a\x1B\tV[\x82`\x01`\x01`\xA0\x1B\x03\x16\x82`\x01`\x01`\xA0\x1B\x03\x16\x14a\x06\xCAWa\x06\xCA\x82\x82a\x1B\xB8V[a\x18L\x83\x83a\x1B\xFCV[a\x18Y`\0\x84\x84\x84a\x18\xCBV[a\x06\xCAW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`2`$\x82\x01R\x7FERC721: transfer to non ERC721Re`D\x82\x01R\x7Fceiver implementer\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x06)V[`\0`\x01`\x01`\xA0\x1B\x03\x84\x16;\x15a\x1AaW`@Q\x7F\x15\x0Bz\x02\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`\x01`\x01`\xA0\x1B\x03\x85\x16\x90c\x15\x0Bz\x02\x90a\x19(\x903\x90\x89\x90\x88\x90\x88\x90`\x04\x01a!\xFEV[` `@Q\x80\x83\x03\x81`\0\x87Z\xF1\x92PPP\x80\x15a\x19cWP`@\x80Q`\x1F=\x90\x81\x01`\x1F\x19\x16\x82\x01\x90\x92Ra\x19`\x91\x81\x01\x90a\":V[`\x01[a\x1A\x16W=\x80\x80\x15a\x19\x91W`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=`\0` \x84\x01>a\x19\x96V[``\x91P[P\x80Q`\0\x03a\x1A\x0EW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`2`$\x82\x01R\x7FERC721: transfer to non ERC721Re`D\x82\x01R\x7Fceiver implementer\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x06)V[\x80Q\x81` \x01\xFD[\x7F\xFF\xFF\xFF\xFF\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\x16\x7F\x15\x0Bz\x02\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\x14\x90Pa\x10\x91V[P`\x01\x94\x93PPPPV[`\0`\x01a\x1Ay\x84a\t(V[a\x1A\x83\x91\x90a!\xD3V[`\0\x83\x81R`\x07` R`@\x90 T\x90\x91P\x80\x82\x14a\x1A\xD6W`\x01`\x01`\xA0\x1B\x03\x84\x16`\0\x90\x81R`\x06` \x90\x81R`@\x80\x83 \x85\x84R\x82R\x80\x83 T\x84\x84R\x81\x84 \x81\x90U\x83R`\x07\x90\x91R\x90 \x81\x90U[P`\0\x91\x82R`\x07` \x90\x81R`@\x80\x84 \x84\x90U`\x01`\x01`\xA0\x1B\x03\x90\x94\x16\x83R`\x06\x81R\x83\x83 \x91\x83RR\x90\x81 UV[`\x08T`\0\x90a\x1B\x1B\x90`\x01\x90a!\xD3V[`\0\x83\x81R`\t` R`@\x81 T`\x08\x80T\x93\x94P\x90\x92\x84\x90\x81\x10a\x1BCWa\x1BCa \x9BV[\x90`\0R` `\0 \x01T\x90P\x80`\x08\x83\x81T\x81\x10a\x1BdWa\x1Bda \x9BV[`\0\x91\x82R` \x80\x83 \x90\x91\x01\x92\x90\x92U\x82\x81R`\t\x90\x91R`@\x80\x82 \x84\x90U\x85\x82R\x81 U`\x08\x80T\x80a\x1B\x9CWa\x1B\x9Ca\"WV[`\x01\x90\x03\x81\x81\x90`\0R` `\0 \x01`\0\x90U\x90UPPPPV[`\0a\x1B\xC3\x83a\t(V[`\x01`\x01`\xA0\x1B\x03\x90\x93\x16`\0\x90\x81R`\x06` \x90\x81R`@\x80\x83 \x86\x84R\x82R\x80\x83 \x85\x90U\x93\x82R`\x07\x90R\x91\x90\x91 \x91\x90\x91UPV[`\x01`\x01`\xA0\x1B\x03\x82\x16a\x1CRW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01\x81\x90R`$\x82\x01R\x7FERC721: mint to the zero address`D\x82\x01R`d\x01a\x06)V[`\0\x81\x81R`\x02` R`@\x90 T`\x01`\x01`\xA0\x1B\x03\x16\x15a\x1C\xB7W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1C`$\x82\x01R\x7FERC721: token already minted\0\0\0\0`D\x82\x01R`d\x01a\x06)V[a\x1C\xC3`\0\x83\x83a\x17\x8AV[`\x01`\x01`\xA0\x1B\x03\x82\x16`\0\x90\x81R`\x03` R`@\x81 \x80T`\x01\x92\x90a\x1C\xEC\x90\x84\x90a!GV[\x90\x91UPP`\0\x81\x81R`\x02` R`@\x80\x82 \x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16`\x01`\x01`\xA0\x1B\x03\x86\x16\x90\x81\x17\x90\x91U\x90Q\x83\x92\x90\x7F\xDD\xF2R\xAD\x1B\xE2\xC8\x9Bi\xC2\xB0h\xFC7\x8D\xAA\x95+\xA7\xF1c\xC4\xA1\x16(\xF5ZM\xF5#\xB3\xEF\x90\x82\x90\xA4PPV[\x7F\xFF\xFF\xFF\xFF\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\x81\x16\x81\x14a\x11SW`\0\x80\xFD[`\0` \x82\x84\x03\x12\x15a\x1D\xA2W`\0\x80\xFD[\x815a\x04\xD9\x81a\x1DbV[`\0[\x83\x81\x10\x15a\x1D\xC8W\x81\x81\x01Q\x83\x82\x01R` \x01a\x1D\xB0V[\x83\x81\x11\x15a\x0C9WPP`\0\x91\x01RV[`\0\x81Q\x80\x84Ra\x1D\xF1\x81` \x86\x01` \x86\x01a\x1D\xADV[`\x1F\x01`\x1F\x19\x16\x92\x90\x92\x01` \x01\x92\x91PPV[` \x81R`\0a\x04\xD9` \x83\x01\x84a\x1D\xD9V[`\0` \x82\x84\x03\x12\x15a\x1E*W`\0\x80\xFD[P5\x91\x90PV[\x805`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a\x1EHW`\0\x80\xFD[\x91\x90PV[`\0\x80`@\x83\x85\x03\x12\x15a\x1E`W`\0\x80\xFD[a\x1Ei\x83a\x1E1V[\x94` \x93\x90\x93\x015\x93PPPV[`\0\x80`\0``\x84\x86\x03\x12\x15a\x1E\x8CW`\0\x80\xFD[a\x1E\x95\x84a\x1E1V[\x92Pa\x1E\xA3` \x85\x01a\x1E1V[\x91P`@\x84\x015\x90P\x92P\x92P\x92V[`\0` \x82\x84\x03\x12\x15a\x1E\xC5W`\0\x80\xFD[a\x04\xD9\x82a\x1E1V[`\0\x80`@\x83\x85\x03\x12\x15a\x1E\xE1W`\0\x80\xFD[a\x1E\xEA\x83a\x1E1V[\x91P` \x83\x015\x80\x15\x15\x81\x14a\x1E\xFFW`\0\x80\xFD[\x80\x91PP\x92P\x92\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[`\0\x80`\0\x80`\x80\x85\x87\x03\x12\x15a\x1FOW`\0\x80\xFD[a\x1FX\x85a\x1E1V[\x93Pa\x1Ff` \x86\x01a\x1E1V[\x92P`@\x85\x015\x91P``\x85\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x1F\x8AW`\0\x80\xFD[\x81\x87\x01\x91P\x87`\x1F\x83\x01\x12a\x1F\x9EW`\0\x80\xFD[\x815\x81\x81\x11\x15a\x1F\xB0Wa\x1F\xB0a\x1F\nV[`@Q`\x1F\x82\x01`\x1F\x19\x90\x81\x16`?\x01\x16\x81\x01\x90\x83\x82\x11\x81\x83\x10\x17\x15a\x1F\xD8Wa\x1F\xD8a\x1F\nV[\x81`@R\x82\x81R\x8A` \x84\x87\x01\x01\x11\x15a\x1F\xF1W`\0\x80\xFD[\x82` \x86\x01` \x83\x017`\0` \x84\x83\x01\x01R\x80\x95PPPPPP\x92\x95\x91\x94P\x92PV[`\0\x80`@\x83\x85\x03\x12\x15a (W`\0\x80\xFD[a 1\x83a\x1E1V[\x91Pa ?` \x84\x01a\x1E1V[\x90P\x92P\x92\x90PV[`\x01\x81\x81\x1C\x90\x82\x16\x80a \\W`\x7F\x82\x16\x91P[` \x82\x10\x81\x03a \x95W\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`\"`\x04R`$`\0\xFD[P\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`2`\x04R`$`\0\xFD[`\0\x83Qa \xDC\x81\x84` \x88\x01a\x1D\xADV[\x83Q\x90\x83\x01\x90a \xF0\x81\x83` \x88\x01a\x1D\xADV[\x01\x94\x93PPPPV[\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`\x11`\x04R`$`\0\xFD[`\0\x81`\0\x19\x04\x83\x11\x82\x15\x15\x16\x15a!BWa!Ba \xF9V[P\x02\x90V[`\0\x82\x19\x82\x11\x15a!ZWa!Za \xF9V[P\x01\x90V[`\0\x81a!nWa!na \xF9V[P`\0\x19\x01\x90V[`\0`\0\x19\x82\x03a!\x89Wa!\x89a \xF9V[P`\x01\x01\x90V[\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`\x12`\x04R`$`\0\xFD[`\0\x82a!\xCEWa!\xCEa!\x90V[P\x04\x90V[`\0\x82\x82\x10\x15a!\xE5Wa!\xE5a \xF9V[P\x03\x90V[`\0\x82a!\xF9Wa!\xF9a!\x90V[P\x06\x90V[`\0`\x01`\x01`\xA0\x1B\x03\x80\x87\x16\x83R\x80\x86\x16` \x84\x01RP\x83`@\x83\x01R`\x80``\x83\x01Ra\"0`\x80\x83\x01\x84a\x1D\xD9V[\x96\x95PPPPPPV[`\0` \x82\x84\x03\x12\x15a\"LW`\0\x80\xFD[\x81Qa\x04\xD9\x81a\x1DbV[\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`1`\x04R`$`\0\xFD\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x608060405234801561001057600080fd5b50600436106101ae5760003560e01c80637d1d0c5b116100ee578063c87b56dd11610097578063e78cea9211610071578063e78cea92146103d3578063e9518196146103f9578063e985e9c51461041f578063ee9a31a21461045b57600080fd5b8063c87b56dd14610392578063d547cfb7146103a5578063d6c0b2c4146103ad57600080fd5b8063a1448194116100c8578063a144819414610359578063a22cb4651461036c578063b88d4fde1461037f57600080fd5b80637d1d0c5b1461031757806395d89b411461033e5780639dc29fac1461034657600080fd5b806323b872dd1161015b5780634f6ccce7116101355780634f6ccce7146102a257806354fd4d50146102b55780636352211e146102f157806370a082311461030457600080fd5b806323b872dd146102695780632f745c591461027c57806342842e0e1461028f57600080fd5b8063081812fc1161018c578063081812fc1461022f578063095ea7b31461024257806318160ddd1461025757600080fd5b806301ffc9a7146101b3578063033964be146101db57806306fdde031461021a575b600080fd5b6101c66101c1366004611d90565b610482565b60405190151581526020015b60405180910390f35b6102027f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016101d2565b6102226104e0565b6040516101d29190611e05565b61020261023d366004611e18565b610572565b610255610250366004611e4d565b610599565b005b6008545b6040519081526020016101d2565b610255610277366004611e77565b6106cf565b61025b61028a366004611e4d565b610756565b61025561029d366004611e77565b6107fe565b61025b6102b0366004611e18565b610819565b6102226040518060400160405280600581526020017f312e332e3200000000000000000000000000000000000000000000000000000081525081565b6102026102ff366004611e18565b6108bd565b61025b610312366004611eb3565b610928565b61025b7f000000000000000000000000000000000000000000000000000000000000000081565b6102226109c2565b610255610354366004611e4d565b6109d1565b610255610367366004611e4d565b610abf565b61025561037a366004611ece565b610ba2565b61025561038d366004611f39565b610bb1565b6102226103a0366004611e18565b610c3f565b610222610ca5565b7f0000000000000000000000000000000000000000000000000000000000000000610202565b7f0000000000000000000000000000000000000000000000000000000000000000610202565b7f000000000000000000000000000000000000000000000000000000000000000061025b565b6101c661042d366004612015565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b6102027f000000000000000000000000000000000000000000000000000000000000000081565b60007faecafc23000000000000000000000000000000000000000000000000000000007fffffffff0000000000000000000000000000000000000000000000000000000083168114806104d957506104d983611099565b9392505050565b6060600080546104ef90612048565b80601f016020809104026020016040519081016040528092919081815260200182805461051b90612048565b80156105685780601f1061053d57610100808354040283529160200191610568565b820191906000526020600020905b81548152906001019060200180831161054b57829003601f168201915b5050505050905090565b600061057d826110ef565b506000908152600460205260409020546001600160a01b031690565b60006105a4826108bd565b9050806001600160a01b0316836001600160a01b0316036106325760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560448201527f720000000000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b336001600160a01b038216148061064e575061064e813361042d565b6106c05760405162461bcd60e51b815260206004820152603e60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206e6f7220617070726f76656420666f7220616c6c00006064820152608401610629565b6106ca8383611156565b505050565b6106d933826111dc565b61074b5760405162461bcd60e51b815260206004820152602e60248201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560448201527f72206e6f7220617070726f7665640000000000000000000000000000000000006064820152608401610629565b6106ca83838361125a565b600061076183610928565b82106107d55760405162461bcd60e51b815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201527f74206f6620626f756e64730000000000000000000000000000000000000000006064820152608401610629565b506001600160a01b03919091166000908152600660209081526040808320938352929052205490565b6106ca83838360405180602001604052806000815250610bb1565b600061082460085490565b82106108985760405162461bcd60e51b815260206004820152602c60248201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60448201527f7574206f6620626f756e647300000000000000000000000000000000000000006064820152608401610629565b600882815481106108ab576108ab61209b565b90600052602060002001549050919050565b6000818152600260205260408120546001600160a01b0316806109225760405162461bcd60e51b815260206004820152601860248201527f4552433732313a20696e76616c696420746f6b656e20494400000000000000006044820152606401610629565b92915050565b60006001600160a01b0382166109a65760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f74206120766160448201527f6c6964206f776e657200000000000000000000000000000000000000000000006064820152608401610629565b506001600160a01b031660009081526003602052604090205490565b6060600180546104ef90612048565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610a6f5760405162461bcd60e51b815260206004820152603a60248201527f4f7074696d69736d4d696e7461626c654552433732313a206f6e6c792062726960448201527f6467652063616e2063616c6c20746869732066756e6374696f6e0000000000006064820152608401610629565b610a788161144a565b816001600160a01b03167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca582604051610ab391815260200190565b60405180910390a25050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610b5d5760405162461bcd60e51b815260206004820152603a60248201527f4f7074696d69736d4d696e7461626c654552433732313a206f6e6c792062726960448201527f6467652063616e2063616c6c20746869732066756e6374696f6e0000000000006064820152608401610629565b610b678282611509565b816001600160a01b03167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d412139688582604051610ab391815260200190565b610bad338383611523565b5050565b610bbb33836111dc565b610c2d5760405162461bcd60e51b815260206004820152602e60248201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560448201527f72206e6f7220617070726f7665640000000000000000000000000000000000006064820152608401610629565b610c398484848461160f565b50505050565b6060610c4a826110ef565b6000610c54611698565b90506000815111610c7457604051806020016040528060008152506104d9565b80610c7e84610f5c565b604051602001610c8f9291906120ca565b6040516020818303038152906040529392505050565b600a8054610cb290612048565b80601f0160208091040260200160405190810160405280929190818152602001828054610cde90612048565b8015610d2b5780601f10610d0057610100808354040283529160200191610d2b565b820191906000526020600020905b815481529060010190602001808311610d0e57829003601f168201915b505050505081565b60606000610d42836002612128565b610d4d906002612147565b67ffffffffffffffff811115610d6557610d65611f0a565b6040519080825280601f01601f191660200182016040528015610d8f576020820181803683370190505b5090507f300000000000000000000000000000000000000000000000000000000000000081600081518110610dc657610dc661209b565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f780000000000000000000000000000000000000000000000000000000000000081600181518110610e2957610e2961209b565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506000610e65846002612128565b610e70906001612147565b90505b6001811115610f0d577f303132333435363738396162636465660000000000000000000000000000000085600f1660108110610eb157610eb161209b565b1a60f81b828281518110610ec757610ec761209b565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060049490941c93610f068161215f565b9050610e73565b5083156104d95760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610629565b606081600003610f9f57505060408051808201909152600181527f3000000000000000000000000000000000000000000000000000000000000000602082015290565b8160005b8115610fc95780610fb381612176565b9150610fc29050600a836121bf565b9150610fa3565b60008167ffffffffffffffff811115610fe457610fe4611f0a565b6040519080825280601f01601f19166020018201604052801561100e576020820181803683370190505b5090505b8415611091576110236001836121d3565b9150611030600a866121ea565b61103b906030612147565b60f81b8183815181106110505761105061209b565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535061108a600a866121bf565b9450611012565b949350505050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f780e9d630000000000000000000000000000000000000000000000000000000014806109225750610922826116a7565b6000818152600260205260409020546001600160a01b03166111535760405162461bcd60e51b815260206004820152601860248201527f4552433732313a20696e76616c696420746f6b656e20494400000000000000006044820152606401610629565b50565b600081815260046020526040902080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03841690811790915581906111a3826108bd565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000806111e8836108bd565b9050806001600160a01b0316846001600160a01b0316148061122f57506001600160a01b0380821660009081526005602090815260408083209388168352929052205460ff165b806110915750836001600160a01b031661124884610572565b6001600160a01b031614949350505050565b826001600160a01b031661126d826108bd565b6001600160a01b0316146112e95760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201527f6f776e65720000000000000000000000000000000000000000000000000000006064820152608401610629565b6001600160a01b0382166113645760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610629565b61136f83838361178a565b61137a600082611156565b6001600160a01b03831660009081526003602052604081208054600192906113a39084906121d3565b90915550506001600160a01b03821660009081526003602052604081208054600192906113d1908490612147565b909155505060008181526002602052604080822080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6000611455826108bd565b90506114638160008461178a565b61146e600083611156565b6001600160a01b03811660009081526003602052604081208054600192906114979084906121d3565b909155505060008281526002602052604080822080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055518391906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b610bad828260405180602001604052806000815250611842565b816001600160a01b0316836001600160a01b0316036115845760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610629565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b61161a84848461125a565b611626848484846118cb565b610c395760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e74657200000000000000000000000000006064820152608401610629565b6060600a80546104ef90612048565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f80ac58cd00000000000000000000000000000000000000000000000000000000148061173a57507fffffffff0000000000000000000000000000000000000000000000000000000082167f5b5e139f00000000000000000000000000000000000000000000000000000000145b8061092257507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff00000000000000000000000000000000000000000000000000000000831614610922565b6001600160a01b0383166117e5576117e081600880546000838152600960205260408120829055600182018355919091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30155565b611808565b816001600160a01b0316836001600160a01b031614611808576118088382611a6c565b6001600160a01b03821661181f576106ca81611b09565b826001600160a01b0316826001600160a01b0316146106ca576106ca8282611bb8565b61184c8383611bfc565b61185960008484846118cb565b6106ca5760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e74657200000000000000000000000000006064820152608401610629565b60006001600160a01b0384163b15611a61576040517f150b7a020000000000000000000000000000000000000000000000000000000081526001600160a01b0385169063150b7a02906119289033908990889088906004016121fe565b6020604051808303816000875af1925050508015611963575060408051601f3d908101601f191682019092526119609181019061223a565b60015b611a16573d808015611991576040519150601f19603f3d011682016040523d82523d6000602084013e611996565b606091505b508051600003611a0e5760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e74657200000000000000000000000000006064820152608401610629565b805181602001fd5b7fffffffff00000000000000000000000000000000000000000000000000000000167f150b7a0200000000000000000000000000000000000000000000000000000000149050611091565b506001949350505050565b60006001611a7984610928565b611a8391906121d3565b600083815260076020526040902054909150808214611ad6576001600160a01b03841660009081526006602090815260408083208584528252808320548484528184208190558352600790915290208190555b5060009182526007602090815260408084208490556001600160a01b039094168352600681528383209183525290812055565b600854600090611b1b906001906121d3565b60008381526009602052604081205460088054939450909284908110611b4357611b4361209b565b906000526020600020015490508060088381548110611b6457611b6461209b565b6000918252602080832090910192909255828152600990915260408082208490558582528120556008805480611b9c57611b9c612257565b6001900381819060005260206000200160009055905550505050565b6000611bc383610928565b6001600160a01b039093166000908152600660209081526040808320868452825280832085905593825260079052919091209190915550565b6001600160a01b038216611c525760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610629565b6000818152600260205260409020546001600160a01b031615611cb75760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610629565b611cc36000838361178a565b6001600160a01b0382166000908152600360205260408120805460019290611cec908490612147565b909155505060008181526002602052604080822080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b7fffffffff000000000000000000000000000000000000000000000000000000008116811461115357600080fd5b600060208284031215611da257600080fd5b81356104d981611d62565b60005b83811015611dc8578181015183820152602001611db0565b83811115610c395750506000910152565b60008151808452611df1816020860160208601611dad565b601f01601f19169290920160200192915050565b6020815260006104d96020830184611dd9565b600060208284031215611e2a57600080fd5b5035919050565b80356001600160a01b0381168114611e4857600080fd5b919050565b60008060408385031215611e6057600080fd5b611e6983611e31565b946020939093013593505050565b600080600060608486031215611e8c57600080fd5b611e9584611e31565b9250611ea360208501611e31565b9150604084013590509250925092565b600060208284031215611ec557600080fd5b6104d982611e31565b60008060408385031215611ee157600080fd5b611eea83611e31565b915060208301358015158114611eff57600080fd5b809150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008060008060808587031215611f4f57600080fd5b611f5885611e31565b9350611f6660208601611e31565b925060408501359150606085013567ffffffffffffffff80821115611f8a57600080fd5b818701915087601f830112611f9e57600080fd5b813581811115611fb057611fb0611f0a565b604051601f8201601f19908116603f01168101908382118183101715611fd857611fd8611f0a565b816040528281528a6020848701011115611ff157600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b6000806040838503121561202857600080fd5b61203183611e31565b915061203f60208401611e31565b90509250929050565b600181811c9082168061205c57607f821691505b602082108103612095577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600083516120dc818460208801611dad565b8351908301906120f0818360208801611dad565b01949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000816000190483118215151615612142576121426120f9565b500290565b6000821982111561215a5761215a6120f9565b500190565b60008161216e5761216e6120f9565b506000190190565b60006000198203612189576121896120f9565b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000826121ce576121ce612190565b500490565b6000828210156121e5576121e56120f9565b500390565b6000826121f9576121f9612190565b500690565b60006001600160a01b038087168352808616602084015250836040830152608060608301526122306080830184611dd9565b9695505050505050565b60006020828403121561224c57600080fd5b81516104d981611d62565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`\x046\x10a\x01\xAEW`\x005`\xE0\x1C\x80c}\x1D\x0C[\x11a\0\xEEW\x80c\xC8{V\xDD\x11a\0\x97W\x80c\xE7\x8C\xEA\x92\x11a\0qW\x80c\xE7\x8C\xEA\x92\x14a\x03\xD3W\x80c\xE9Q\x81\x96\x14a\x03\xF9W\x80c\xE9\x85\xE9\xC5\x14a\x04\x1FW\x80c\xEE\x9A1\xA2\x14a\x04[W`\0\x80\xFD[\x80c\xC8{V\xDD\x14a\x03\x92W\x80c\xD5G\xCF\xB7\x14a\x03\xA5W\x80c\xD6\xC0\xB2\xC4\x14a\x03\xADW`\0\x80\xFD[\x80c\xA1D\x81\x94\x11a\0\xC8W\x80c\xA1D\x81\x94\x14a\x03YW\x80c\xA2,\xB4e\x14a\x03lW\x80c\xB8\x8DO\xDE\x14a\x03\x7FW`\0\x80\xFD[\x80c}\x1D\x0C[\x14a\x03\x17W\x80c\x95\xD8\x9BA\x14a\x03>W\x80c\x9D\xC2\x9F\xAC\x14a\x03FW`\0\x80\xFD[\x80c#\xB8r\xDD\x11a\x01[W\x80cOl\xCC\xE7\x11a\x015W\x80cOl\xCC\xE7\x14a\x02\xA2W\x80cT\xFDMP\x14a\x02\xB5W\x80ccR!\x1E\x14a\x02\xF1W\x80cp\xA0\x821\x14a\x03\x04W`\0\x80\xFD[\x80c#\xB8r\xDD\x14a\x02iW\x80c/t\\Y\x14a\x02|W\x80cB\x84.\x0E\x14a\x02\x8FW`\0\x80\xFD[\x80c\x08\x18\x12\xFC\x11a\x01\x8CW\x80c\x08\x18\x12\xFC\x14a\x02/W\x80c\t^\xA7\xB3\x14a\x02BW\x80c\x18\x16\r\xDD\x14a\x02WW`\0\x80\xFD[\x80c\x01\xFF\xC9\xA7\x14a\x01\xB3W\x80c\x039d\xBE\x14a\x01\xDBW\x80c\x06\xFD\xDE\x03\x14a\x02\x1AW[`\0\x80\xFD[a\x01\xC6a\x01\xC16`\x04a\x1D\x90V[a\x04\x82V[`@Q\x90\x15\x15\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[a\x02\x02\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x01a\x01\xD2V[a\x02\"a\x04\xE0V[`@Qa\x01\xD2\x91\x90a\x1E\x05V[a\x02\x02a\x02=6`\x04a\x1E\x18V[a\x05rV[a\x02Ua\x02P6`\x04a\x1EMV[a\x05\x99V[\0[`\x08T[`@Q\x90\x81R` \x01a\x01\xD2V[a\x02Ua\x02w6`\x04a\x1EwV[a\x06\xCFV[a\x02[a\x02\x8A6`\x04a\x1EMV[a\x07VV[a\x02Ua\x02\x9D6`\x04a\x1EwV[a\x07\xFEV[a\x02[a\x02\xB06`\x04a\x1E\x18V[a\x08\x19V[a\x02\"`@Q\x80`@\x01`@R\x80`\x05\x81R` \x01\x7F1.3.2\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\x81RP\x81V[a\x02\x02a\x02\xFF6`\x04a\x1E\x18V[a\x08\xBDV[a\x02[a\x03\x126`\x04a\x1E\xB3V[a\t(V[a\x02[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[a\x02\"a\t\xC2V[a\x02Ua\x03T6`\x04a\x1EMV[a\t\xD1V[a\x02Ua\x03g6`\x04a\x1EMV[a\n\xBFV[a\x02Ua\x03z6`\x04a\x1E\xCEV[a\x0B\xA2V[a\x02Ua\x03\x8D6`\x04a\x1F9V[a\x0B\xB1V[a\x02\"a\x03\xA06`\x04a\x1E\x18V[a\x0C?V[a\x02\"a\x0C\xA5V[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x02\x02V[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x02\x02V[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x02[V[a\x01\xC6a\x04-6`\x04a \x15V[`\x01`\x01`\xA0\x1B\x03\x91\x82\x16`\0\x90\x81R`\x05` \x90\x81R`@\x80\x83 \x93\x90\x94\x16\x82R\x91\x90\x91R T`\xFF\x16\x90V[a\x02\x02\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[`\0\x7F\xAE\xCA\xFC#\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\x7F\xFF\xFF\xFF\xFF\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\x83\x16\x81\x14\x80a\x04\xD9WPa\x04\xD9\x83a\x10\x99V[\x93\x92PPPV[```\0\x80Ta\x04\xEF\x90a HV[\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x92\x91\x90\x81\x81R` \x01\x82\x80Ta\x05\x1B\x90a HV[\x80\x15a\x05hW\x80`\x1F\x10a\x05=Wa\x01\0\x80\x83T\x04\x02\x83R\x91` \x01\x91a\x05hV[\x82\x01\x91\x90`\0R` `\0 \x90[\x81T\x81R\x90`\x01\x01\x90` \x01\x80\x83\x11a\x05KW\x82\x90\x03`\x1F\x16\x82\x01\x91[PPPPP\x90P\x90V[`\0a\x05}\x82a\x10\xEFV[P`\0\x90\x81R`\x04` R`@\x90 T`\x01`\x01`\xA0\x1B\x03\x16\x90V[`\0a\x05\xA4\x82a\x08\xBDV[\x90P\x80`\x01`\x01`\xA0\x1B\x03\x16\x83`\x01`\x01`\xA0\x1B\x03\x16\x03a\x062W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`!`$\x82\x01R\x7FERC721: approval to current owne`D\x82\x01R\x7Fr\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01[`@Q\x80\x91\x03\x90\xFD[3`\x01`\x01`\xA0\x1B\x03\x82\x16\x14\x80a\x06NWPa\x06N\x813a\x04-V[a\x06\xC0W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`>`$\x82\x01R\x7FERC721: approve caller is not to`D\x82\x01R\x7Fken owner nor approved for all\0\0`d\x82\x01R`\x84\x01a\x06)V[a\x06\xCA\x83\x83a\x11VV[PPPV[a\x06\xD93\x82a\x11\xDCV[a\x07KW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`.`$\x82\x01R\x7FERC721: caller is not token owne`D\x82\x01R\x7Fr nor approved\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x06)V[a\x06\xCA\x83\x83\x83a\x12ZV[`\0a\x07a\x83a\t(V[\x82\x10a\x07\xD5W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FERC721Enumerable: owner index ou`D\x82\x01R\x7Ft of bounds\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x06)V[P`\x01`\x01`\xA0\x1B\x03\x91\x90\x91\x16`\0\x90\x81R`\x06` \x90\x81R`@\x80\x83 \x93\x83R\x92\x90R T\x90V[a\x06\xCA\x83\x83\x83`@Q\x80` \x01`@R\x80`\0\x81RPa\x0B\xB1V[`\0a\x08$`\x08T\x90V[\x82\x10a\x08\x98W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`,`$\x82\x01R\x7FERC721Enumerable: global index o`D\x82\x01R\x7Fut of bounds\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x06)V[`\x08\x82\x81T\x81\x10a\x08\xABWa\x08\xABa \x9BV[\x90`\0R` `\0 \x01T\x90P\x91\x90PV[`\0\x81\x81R`\x02` R`@\x81 T`\x01`\x01`\xA0\x1B\x03\x16\x80a\t\"W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x18`$\x82\x01R\x7FERC721: invalid token ID\0\0\0\0\0\0\0\0`D\x82\x01R`d\x01a\x06)V[\x92\x91PPV[`\0`\x01`\x01`\xA0\x1B\x03\x82\x16a\t\xA6W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`)`$\x82\x01R\x7FERC721: address zero is not a va`D\x82\x01R\x7Flid owner\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x06)V[P`\x01`\x01`\xA0\x1B\x03\x16`\0\x90\x81R`\x03` R`@\x90 T\x90V[```\x01\x80Ta\x04\xEF\x90a HV[3`\x01`\x01`\xA0\x1B\x03\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x14a\noW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`:`$\x82\x01R\x7FOptimismMintableERC721: only bri`D\x82\x01R\x7Fdge can call this function\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x06)V[a\nx\x81a\x14JV[\x81`\x01`\x01`\xA0\x1B\x03\x16\x7F\xCC\x16\xF5\xDB\xB4\x872\x80\x81\\\x1E\xE0\x9D\xBD\x06sl\xFF\xCC\x18D\x12\xCFzq\xA0\xFD\xB7]9|\xA5\x82`@Qa\n\xB3\x91\x81R` \x01\x90V[`@Q\x80\x91\x03\x90\xA2PPV[3`\x01`\x01`\xA0\x1B\x03\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x14a\x0B]W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`:`$\x82\x01R\x7FOptimismMintableERC721: only bri`D\x82\x01R\x7Fdge can call this function\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x06)V[a\x0Bg\x82\x82a\x15\tV[\x81`\x01`\x01`\xA0\x1B\x03\x16\x7F\x0Fg\x98\xA5`y:T\xC3\xBC\xFE\x86\xA9<\xDE\x1Es\x08}\x94L\x0E\xA2\x05D\x13}A!9h\x85\x82`@Qa\n\xB3\x91\x81R` \x01\x90V[a\x0B\xAD3\x83\x83a\x15#V[PPV[a\x0B\xBB3\x83a\x11\xDCV[a\x0C-W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`.`$\x82\x01R\x7FERC721: caller is not token owne`D\x82\x01R\x7Fr nor approved\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x06)V[a\x0C9\x84\x84\x84\x84a\x16\x0FV[PPPPV[``a\x0CJ\x82a\x10\xEFV[`\0a\x0CTa\x16\x98V[\x90P`\0\x81Q\x11a\x0CtW`@Q\x80` \x01`@R\x80`\0\x81RPa\x04\xD9V[\x80a\x0C~\x84a\x0F\\V[`@Q` \x01a\x0C\x8F\x92\x91\x90a \xCAV[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x93\x92PPPV[`\n\x80Ta\x0C\xB2\x90a HV[\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x92\x91\x90\x81\x81R` \x01\x82\x80Ta\x0C\xDE\x90a HV[\x80\x15a\r+W\x80`\x1F\x10a\r\0Wa\x01\0\x80\x83T\x04\x02\x83R\x91` \x01\x91a\r+V[\x82\x01\x91\x90`\0R` `\0 \x90[\x81T\x81R\x90`\x01\x01\x90` \x01\x80\x83\x11a\r\x0EW\x82\x90\x03`\x1F\x16\x82\x01\x91[PPPPP\x81V[```\0a\rB\x83`\x02a!(V[a\rM\x90`\x02a!GV[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\reWa\rea\x1F\nV[`@Q\x90\x80\x82R\x80`\x1F\x01`\x1F\x19\x16` \x01\x82\x01`@R\x80\x15a\r\x8FW` \x82\x01\x81\x806\x837\x01\x90P[P\x90P\x7F0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81`\0\x81Q\x81\x10a\r\xC6Wa\r\xC6a \x9BV[` \x01\x01\x90~\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x19\x16\x90\x81`\0\x1A\x90SP\x7Fx\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81`\x01\x81Q\x81\x10a\x0E)Wa\x0E)a \x9BV[` \x01\x01\x90~\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x19\x16\x90\x81`\0\x1A\x90SP`\0a\x0Ee\x84`\x02a!(V[a\x0Ep\x90`\x01a!GV[\x90P[`\x01\x81\x11\x15a\x0F\rW\x7F0123456789abcdef\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x85`\x0F\x16`\x10\x81\x10a\x0E\xB1Wa\x0E\xB1a \x9BV[\x1A`\xF8\x1B\x82\x82\x81Q\x81\x10a\x0E\xC7Wa\x0E\xC7a \x9BV[` \x01\x01\x90~\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x19\x16\x90\x81`\0\x1A\x90SP`\x04\x94\x90\x94\x1C\x93a\x0F\x06\x81a!_V[\x90Pa\x0EsV[P\x83\x15a\x04\xD9W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01\x81\x90R`$\x82\x01R\x7FStrings: hex length insufficient`D\x82\x01R`d\x01a\x06)V[``\x81`\0\x03a\x0F\x9FWPP`@\x80Q\x80\x82\x01\x90\x91R`\x01\x81R\x7F0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0` \x82\x01R\x90V[\x81`\0[\x81\x15a\x0F\xC9W\x80a\x0F\xB3\x81a!vV[\x91Pa\x0F\xC2\x90P`\n\x83a!\xBFV[\x91Pa\x0F\xA3V[`\0\x81g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x0F\xE4Wa\x0F\xE4a\x1F\nV[`@Q\x90\x80\x82R\x80`\x1F\x01`\x1F\x19\x16` \x01\x82\x01`@R\x80\x15a\x10\x0EW` \x82\x01\x81\x806\x837\x01\x90P[P\x90P[\x84\x15a\x10\x91Wa\x10#`\x01\x83a!\xD3V[\x91Pa\x100`\n\x86a!\xEAV[a\x10;\x90`0a!GV[`\xF8\x1B\x81\x83\x81Q\x81\x10a\x10PWa\x10Pa \x9BV[` \x01\x01\x90~\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x19\x16\x90\x81`\0\x1A\x90SPa\x10\x8A`\n\x86a!\xBFV[\x94Pa\x10\x12V[\x94\x93PPPPV[`\0\x7F\xFF\xFF\xFF\xFF\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\x82\x16\x7Fx\x0E\x9Dc\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\x14\x80a\t\"WPa\t\"\x82a\x16\xA7V[`\0\x81\x81R`\x02` R`@\x90 T`\x01`\x01`\xA0\x1B\x03\x16a\x11SW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x18`$\x82\x01R\x7FERC721: invalid token ID\0\0\0\0\0\0\0\0`D\x82\x01R`d\x01a\x06)V[PV[`\0\x81\x81R`\x04` R`@\x90 \x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16`\x01`\x01`\xA0\x1B\x03\x84\x16\x90\x81\x17\x90\x91U\x81\x90a\x11\xA3\x82a\x08\xBDV[`\x01`\x01`\xA0\x1B\x03\x16\x7F\x8C[\xE1\xE5\xEB\xEC}[\xD1OqB}\x1E\x84\xF3\xDD\x03\x14\xC0\xF7\xB2)\x1E[ \n\xC8\xC7\xC3\xB9%`@Q`@Q\x80\x91\x03\x90\xA4PPV[`\0\x80a\x11\xE8\x83a\x08\xBDV[\x90P\x80`\x01`\x01`\xA0\x1B\x03\x16\x84`\x01`\x01`\xA0\x1B\x03\x16\x14\x80a\x12/WP`\x01`\x01`\xA0\x1B\x03\x80\x82\x16`\0\x90\x81R`\x05` \x90\x81R`@\x80\x83 \x93\x88\x16\x83R\x92\x90R T`\xFF\x16[\x80a\x10\x91WP\x83`\x01`\x01`\xA0\x1B\x03\x16a\x12H\x84a\x05rV[`\x01`\x01`\xA0\x1B\x03\x16\x14\x94\x93PPPPV[\x82`\x01`\x01`\xA0\x1B\x03\x16a\x12m\x82a\x08\xBDV[`\x01`\x01`\xA0\x1B\x03\x16\x14a\x12\xE9W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`%`$\x82\x01R\x7FERC721: transfer from incorrect `D\x82\x01R\x7Fowner\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`d\x82\x01R`\x84\x01a\x06)V[`\x01`\x01`\xA0\x1B\x03\x82\x16a\x13dW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`$\x80\x82\x01R\x7FERC721: transfer to the zero add`D\x82\x01R\x7Fress\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`d\x82\x01R`\x84\x01a\x06)V[a\x13o\x83\x83\x83a\x17\x8AV[a\x13z`\0\x82a\x11VV[`\x01`\x01`\xA0\x1B\x03\x83\x16`\0\x90\x81R`\x03` R`@\x81 \x80T`\x01\x92\x90a\x13\xA3\x90\x84\x90a!\xD3V[\x90\x91UPP`\x01`\x01`\xA0\x1B\x03\x82\x16`\0\x90\x81R`\x03` R`@\x81 \x80T`\x01\x92\x90a\x13\xD1\x90\x84\x90a!GV[\x90\x91UPP`\0\x81\x81R`\x02` R`@\x80\x82 \x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16`\x01`\x01`\xA0\x1B\x03\x86\x81\x16\x91\x82\x17\x90\x92U\x91Q\x84\x93\x91\x87\x16\x91\x7F\xDD\xF2R\xAD\x1B\xE2\xC8\x9Bi\xC2\xB0h\xFC7\x8D\xAA\x95+\xA7\xF1c\xC4\xA1\x16(\xF5ZM\xF5#\xB3\xEF\x91\xA4PPPV[`\0a\x14U\x82a\x08\xBDV[\x90Pa\x14c\x81`\0\x84a\x17\x8AV[a\x14n`\0\x83a\x11VV[`\x01`\x01`\xA0\x1B\x03\x81\x16`\0\x90\x81R`\x03` R`@\x81 \x80T`\x01\x92\x90a\x14\x97\x90\x84\x90a!\xD3V[\x90\x91UPP`\0\x82\x81R`\x02` R`@\x80\x82 \x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x90UQ\x83\x91\x90`\x01`\x01`\xA0\x1B\x03\x84\x16\x90\x7F\xDD\xF2R\xAD\x1B\xE2\xC8\x9Bi\xC2\xB0h\xFC7\x8D\xAA\x95+\xA7\xF1c\xC4\xA1\x16(\xF5ZM\xF5#\xB3\xEF\x90\x83\x90\xA4PPV[a\x0B\xAD\x82\x82`@Q\x80` \x01`@R\x80`\0\x81RPa\x18BV[\x81`\x01`\x01`\xA0\x1B\x03\x16\x83`\x01`\x01`\xA0\x1B\x03\x16\x03a\x15\x84W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x19`$\x82\x01R\x7FERC721: approve to caller\0\0\0\0\0\0\0`D\x82\x01R`d\x01a\x06)V[`\x01`\x01`\xA0\x1B\x03\x83\x81\x16`\0\x81\x81R`\x05` \x90\x81R`@\x80\x83 \x94\x87\x16\x80\x84R\x94\x82R\x91\x82\x90 \x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x16\x86\x15\x15\x90\x81\x17\x90\x91U\x91Q\x91\x82R\x7F\x170~\xAB9\xABa\x07\xE8\x89\x98E\xAD=Y\xBD\x96S\xF2\0\xF2 \x92\x04\x89\xCA+Y7il1\x91\x01`@Q\x80\x91\x03\x90\xA3PPPV[a\x16\x1A\x84\x84\x84a\x12ZV[a\x16&\x84\x84\x84\x84a\x18\xCBV[a\x0C9W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`2`$\x82\x01R\x7FERC721: transfer to non ERC721Re`D\x82\x01R\x7Fceiver implementer\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x06)V[```\n\x80Ta\x04\xEF\x90a HV[`\0\x7F\xFF\xFF\xFF\xFF\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\x82\x16\x7F\x80\xACX\xCD\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\x14\x80a\x17:WP\x7F\xFF\xFF\xFF\xFF\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\x82\x16\x7F[^\x13\x9F\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\x14[\x80a\t\"WP\x7F\x01\xFF\xC9\xA7\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\x7F\xFF\xFF\xFF\xFF\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\x83\x16\x14a\t\"V[`\x01`\x01`\xA0\x1B\x03\x83\x16a\x17\xE5Wa\x17\xE0\x81`\x08\x80T`\0\x83\x81R`\t` R`@\x81 \x82\x90U`\x01\x82\x01\x83U\x91\x90\x91R\x7F\xF3\xF7\xA9\xFE6O\xAA\xB9;!m\xA5\n2\x14\x15O\"\xA0\xA2\xB4\x15\xB2:\x84\xC8\x16\x9E\x8Bcn\xE3\x01UV[a\x18\x08V[\x81`\x01`\x01`\xA0\x1B\x03\x16\x83`\x01`\x01`\xA0\x1B\x03\x16\x14a\x18\x08Wa\x18\x08\x83\x82a\x1AlV[`\x01`\x01`\xA0\x1B\x03\x82\x16a\x18\x1FWa\x06\xCA\x81a\x1B\tV[\x82`\x01`\x01`\xA0\x1B\x03\x16\x82`\x01`\x01`\xA0\x1B\x03\x16\x14a\x06\xCAWa\x06\xCA\x82\x82a\x1B\xB8V[a\x18L\x83\x83a\x1B\xFCV[a\x18Y`\0\x84\x84\x84a\x18\xCBV[a\x06\xCAW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`2`$\x82\x01R\x7FERC721: transfer to non ERC721Re`D\x82\x01R\x7Fceiver implementer\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x06)V[`\0`\x01`\x01`\xA0\x1B\x03\x84\x16;\x15a\x1AaW`@Q\x7F\x15\x0Bz\x02\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`\x01`\x01`\xA0\x1B\x03\x85\x16\x90c\x15\x0Bz\x02\x90a\x19(\x903\x90\x89\x90\x88\x90\x88\x90`\x04\x01a!\xFEV[` `@Q\x80\x83\x03\x81`\0\x87Z\xF1\x92PPP\x80\x15a\x19cWP`@\x80Q`\x1F=\x90\x81\x01`\x1F\x19\x16\x82\x01\x90\x92Ra\x19`\x91\x81\x01\x90a\":V[`\x01[a\x1A\x16W=\x80\x80\x15a\x19\x91W`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=`\0` \x84\x01>a\x19\x96V[``\x91P[P\x80Q`\0\x03a\x1A\x0EW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`2`$\x82\x01R\x7FERC721: transfer to non ERC721Re`D\x82\x01R\x7Fceiver implementer\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x06)V[\x80Q\x81` \x01\xFD[\x7F\xFF\xFF\xFF\xFF\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\x16\x7F\x15\x0Bz\x02\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\x14\x90Pa\x10\x91V[P`\x01\x94\x93PPPPV[`\0`\x01a\x1Ay\x84a\t(V[a\x1A\x83\x91\x90a!\xD3V[`\0\x83\x81R`\x07` R`@\x90 T\x90\x91P\x80\x82\x14a\x1A\xD6W`\x01`\x01`\xA0\x1B\x03\x84\x16`\0\x90\x81R`\x06` \x90\x81R`@\x80\x83 \x85\x84R\x82R\x80\x83 T\x84\x84R\x81\x84 \x81\x90U\x83R`\x07\x90\x91R\x90 \x81\x90U[P`\0\x91\x82R`\x07` \x90\x81R`@\x80\x84 \x84\x90U`\x01`\x01`\xA0\x1B\x03\x90\x94\x16\x83R`\x06\x81R\x83\x83 \x91\x83RR\x90\x81 UV[`\x08T`\0\x90a\x1B\x1B\x90`\x01\x90a!\xD3V[`\0\x83\x81R`\t` R`@\x81 T`\x08\x80T\x93\x94P\x90\x92\x84\x90\x81\x10a\x1BCWa\x1BCa \x9BV[\x90`\0R` `\0 \x01T\x90P\x80`\x08\x83\x81T\x81\x10a\x1BdWa\x1Bda \x9BV[`\0\x91\x82R` \x80\x83 \x90\x91\x01\x92\x90\x92U\x82\x81R`\t\x90\x91R`@\x80\x82 \x84\x90U\x85\x82R\x81 U`\x08\x80T\x80a\x1B\x9CWa\x1B\x9Ca\"WV[`\x01\x90\x03\x81\x81\x90`\0R` `\0 \x01`\0\x90U\x90UPPPPV[`\0a\x1B\xC3\x83a\t(V[`\x01`\x01`\xA0\x1B\x03\x90\x93\x16`\0\x90\x81R`\x06` \x90\x81R`@\x80\x83 \x86\x84R\x82R\x80\x83 \x85\x90U\x93\x82R`\x07\x90R\x91\x90\x91 \x91\x90\x91UPV[`\x01`\x01`\xA0\x1B\x03\x82\x16a\x1CRW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01\x81\x90R`$\x82\x01R\x7FERC721: mint to the zero address`D\x82\x01R`d\x01a\x06)V[`\0\x81\x81R`\x02` R`@\x90 T`\x01`\x01`\xA0\x1B\x03\x16\x15a\x1C\xB7W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1C`$\x82\x01R\x7FERC721: token already minted\0\0\0\0`D\x82\x01R`d\x01a\x06)V[a\x1C\xC3`\0\x83\x83a\x17\x8AV[`\x01`\x01`\xA0\x1B\x03\x82\x16`\0\x90\x81R`\x03` R`@\x81 \x80T`\x01\x92\x90a\x1C\xEC\x90\x84\x90a!GV[\x90\x91UPP`\0\x81\x81R`\x02` R`@\x80\x82 \x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16`\x01`\x01`\xA0\x1B\x03\x86\x16\x90\x81\x17\x90\x91U\x90Q\x83\x92\x90\x7F\xDD\xF2R\xAD\x1B\xE2\xC8\x9Bi\xC2\xB0h\xFC7\x8D\xAA\x95+\xA7\xF1c\xC4\xA1\x16(\xF5ZM\xF5#\xB3\xEF\x90\x82\x90\xA4PPV[\x7F\xFF\xFF\xFF\xFF\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\x81\x16\x81\x14a\x11SW`\0\x80\xFD[`\0` \x82\x84\x03\x12\x15a\x1D\xA2W`\0\x80\xFD[\x815a\x04\xD9\x81a\x1DbV[`\0[\x83\x81\x10\x15a\x1D\xC8W\x81\x81\x01Q\x83\x82\x01R` \x01a\x1D\xB0V[\x83\x81\x11\x15a\x0C9WPP`\0\x91\x01RV[`\0\x81Q\x80\x84Ra\x1D\xF1\x81` \x86\x01` \x86\x01a\x1D\xADV[`\x1F\x01`\x1F\x19\x16\x92\x90\x92\x01` \x01\x92\x91PPV[` \x81R`\0a\x04\xD9` \x83\x01\x84a\x1D\xD9V[`\0` \x82\x84\x03\x12\x15a\x1E*W`\0\x80\xFD[P5\x91\x90PV[\x805`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a\x1EHW`\0\x80\xFD[\x91\x90PV[`\0\x80`@\x83\x85\x03\x12\x15a\x1E`W`\0\x80\xFD[a\x1Ei\x83a\x1E1V[\x94` \x93\x90\x93\x015\x93PPPV[`\0\x80`\0``\x84\x86\x03\x12\x15a\x1E\x8CW`\0\x80\xFD[a\x1E\x95\x84a\x1E1V[\x92Pa\x1E\xA3` \x85\x01a\x1E1V[\x91P`@\x84\x015\x90P\x92P\x92P\x92V[`\0` \x82\x84\x03\x12\x15a\x1E\xC5W`\0\x80\xFD[a\x04\xD9\x82a\x1E1V[`\0\x80`@\x83\x85\x03\x12\x15a\x1E\xE1W`\0\x80\xFD[a\x1E\xEA\x83a\x1E1V[\x91P` \x83\x015\x80\x15\x15\x81\x14a\x1E\xFFW`\0\x80\xFD[\x80\x91PP\x92P\x92\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[`\0\x80`\0\x80`\x80\x85\x87\x03\x12\x15a\x1FOW`\0\x80\xFD[a\x1FX\x85a\x1E1V[\x93Pa\x1Ff` \x86\x01a\x1E1V[\x92P`@\x85\x015\x91P``\x85\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x1F\x8AW`\0\x80\xFD[\x81\x87\x01\x91P\x87`\x1F\x83\x01\x12a\x1F\x9EW`\0\x80\xFD[\x815\x81\x81\x11\x15a\x1F\xB0Wa\x1F\xB0a\x1F\nV[`@Q`\x1F\x82\x01`\x1F\x19\x90\x81\x16`?\x01\x16\x81\x01\x90\x83\x82\x11\x81\x83\x10\x17\x15a\x1F\xD8Wa\x1F\xD8a\x1F\nV[\x81`@R\x82\x81R\x8A` \x84\x87\x01\x01\x11\x15a\x1F\xF1W`\0\x80\xFD[\x82` \x86\x01` \x83\x017`\0` \x84\x83\x01\x01R\x80\x95PPPPPP\x92\x95\x91\x94P\x92PV[`\0\x80`@\x83\x85\x03\x12\x15a (W`\0\x80\xFD[a 1\x83a\x1E1V[\x91Pa ?` \x84\x01a\x1E1V[\x90P\x92P\x92\x90PV[`\x01\x81\x81\x1C\x90\x82\x16\x80a \\W`\x7F\x82\x16\x91P[` \x82\x10\x81\x03a \x95W\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`\"`\x04R`$`\0\xFD[P\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`2`\x04R`$`\0\xFD[`\0\x83Qa \xDC\x81\x84` \x88\x01a\x1D\xADV[\x83Q\x90\x83\x01\x90a \xF0\x81\x83` \x88\x01a\x1D\xADV[\x01\x94\x93PPPPV[\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`\x11`\x04R`$`\0\xFD[`\0\x81`\0\x19\x04\x83\x11\x82\x15\x15\x16\x15a!BWa!Ba \xF9V[P\x02\x90V[`\0\x82\x19\x82\x11\x15a!ZWa!Za \xF9V[P\x01\x90V[`\0\x81a!nWa!na \xF9V[P`\0\x19\x01\x90V[`\0`\0\x19\x82\x03a!\x89Wa!\x89a \xF9V[P`\x01\x01\x90V[\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`\x12`\x04R`$`\0\xFD[`\0\x82a!\xCEWa!\xCEa!\x90V[P\x04\x90V[`\0\x82\x82\x10\x15a!\xE5Wa!\xE5a \xF9V[P\x03\x90V[`\0\x82a!\xF9Wa!\xF9a!\x90V[P\x06\x90V[`\0`\x01`\x01`\xA0\x1B\x03\x80\x87\x16\x83R\x80\x86\x16` \x84\x01RP\x83`@\x83\x01R`\x80``\x83\x01Ra\"0`\x80\x83\x01\x84a\x1D\xD9V[\x96\x95PPPPPPV[`\0` \x82\x84\x03\x12\x15a\"LW`\0\x80\xFD[\x81Qa\x04\xD9\x81a\x1DbV[\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`1`\x04R`$`\0\xFD\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `Approval(address,address,uint256)` and selector `0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925`. +```solidity +event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct Approval { + #[allow(missing_docs)] + pub owner: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub approved: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub tokenId: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for Approval { + type DataTuple<'a> = (); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + const SIGNATURE: &'static str = "Approval(address,address,uint256)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 140u8, 91u8, 225u8, 229u8, 235u8, 236u8, 125u8, 91u8, 209u8, 79u8, 113u8, + 66u8, 125u8, 30u8, 132u8, 243u8, 221u8, 3u8, 20u8, 192u8, 247u8, 178u8, + 41u8, 30u8, 91u8, 32u8, 10u8, 200u8, 199u8, 195u8, 185u8, 37u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + owner: topics.1, + approved: topics.2, + tokenId: topics.3, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + () + } + #[inline] + fn topics(&self) -> ::RustType { + ( + Self::SIGNATURE_HASH.into(), + self.owner.clone(), + self.approved.clone(), + self.tokenId.clone(), + ) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.owner, + ); + out[2usize] = ::encode_topic( + &self.approved, + ); + out[3usize] = as alloy_sol_types::EventTopic>::encode_topic(&self.tokenId); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for Approval { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&Approval> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &Approval) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `ApprovalForAll(address,address,bool)` and selector `0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31`. +```solidity +event ApprovalForAll(address indexed owner, address indexed operator, bool approved); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct ApprovalForAll { + #[allow(missing_docs)] + pub owner: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub operator: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub approved: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for ApprovalForAll { + type DataTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "ApprovalForAll(address,address,bool)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 23u8, 48u8, 126u8, 171u8, 57u8, 171u8, 97u8, 7u8, 232u8, 137u8, 152u8, + 69u8, 173u8, 61u8, 89u8, 189u8, 150u8, 83u8, 242u8, 0u8, 242u8, 32u8, + 146u8, 4u8, 137u8, 202u8, 43u8, 89u8, 55u8, 105u8, 108u8, 49u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + owner: topics.1, + operator: topics.2, + approved: data.0, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + ::tokenize( + &self.approved, + ), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.owner.clone(), self.operator.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.owner, + ); + out[2usize] = ::encode_topic( + &self.operator, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for ApprovalForAll { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&ApprovalForAll> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &ApprovalForAll) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `Burn(address,uint256)` and selector `0xcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5`. +```solidity +event Burn(address indexed account, uint256 tokenId); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct Burn { + #[allow(missing_docs)] + pub account: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub tokenId: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for Burn { + type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "Burn(address,uint256)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 204u8, 22u8, 245u8, 219u8, 180u8, 135u8, 50u8, 128u8, 129u8, 92u8, 30u8, + 224u8, 157u8, 189u8, 6u8, 115u8, 108u8, 255u8, 204u8, 24u8, 68u8, 18u8, + 207u8, 122u8, 113u8, 160u8, 253u8, 183u8, 93u8, 57u8, 124u8, 165u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + account: topics.1, + tokenId: data.0, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.tokenId), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.account.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.account, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for Burn { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&Burn> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &Burn) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `Mint(address,uint256)` and selector `0x0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885`. +```solidity +event Mint(address indexed account, uint256 tokenId); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct Mint { + #[allow(missing_docs)] + pub account: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub tokenId: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for Mint { + type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "Mint(address,uint256)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 15u8, 103u8, 152u8, 165u8, 96u8, 121u8, 58u8, 84u8, 195u8, 188u8, 254u8, + 134u8, 169u8, 60u8, 222u8, 30u8, 115u8, 8u8, 125u8, 148u8, 76u8, 14u8, + 162u8, 5u8, 68u8, 19u8, 125u8, 65u8, 33u8, 57u8, 104u8, 133u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + account: topics.1, + tokenId: data.0, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.tokenId), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.account.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.account, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for Mint { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&Mint> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &Mint) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `Transfer(address,address,uint256)` and selector `0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef`. +```solidity +event Transfer(address indexed from, address indexed to, uint256 indexed tokenId); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct Transfer { + #[allow(missing_docs)] + pub from: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub tokenId: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for Transfer { + type DataTuple<'a> = (); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + const SIGNATURE: &'static str = "Transfer(address,address,uint256)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 221u8, 242u8, 82u8, 173u8, 27u8, 226u8, 200u8, 155u8, 105u8, 194u8, + 176u8, 104u8, 252u8, 55u8, 141u8, 170u8, 149u8, 43u8, 167u8, 241u8, 99u8, + 196u8, 161u8, 22u8, 40u8, 245u8, 90u8, 77u8, 245u8, 35u8, 179u8, 239u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + from: topics.1, + to: topics.2, + tokenId: topics.3, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + () + } + #[inline] + fn topics(&self) -> ::RustType { + ( + Self::SIGNATURE_HASH.into(), + self.from.clone(), + self.to.clone(), + self.tokenId.clone(), + ) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.from, + ); + out[2usize] = ::encode_topic( + &self.to, + ); + out[3usize] = as alloy_sol_types::EventTopic>::encode_topic(&self.tokenId); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for Transfer { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&Transfer> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &Transfer) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + /**Constructor`. +```solidity +constructor(address _bridge, uint256 _remoteChainId, address _remoteToken, string _name, string _symbol); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct constructorCall { + #[allow(missing_docs)] + pub _bridge: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _remoteChainId: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _remoteToken: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _name: alloy::sol_types::private::String, + #[allow(missing_docs)] + pub _symbol: alloy::sol_types::private::String, + } + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::String, + alloy::sol_types::sol_data::String, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::Address, + alloy::sol_types::private::String, + alloy::sol_types::private::String, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: constructorCall) -> Self { + ( + value._bridge, + value._remoteChainId, + value._remoteToken, + value._name, + value._symbol, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for constructorCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _bridge: tuple.0, + _remoteChainId: tuple.1, + _remoteToken: tuple.2, + _name: tuple.3, + _symbol: tuple.4, + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolConstructor for constructorCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::String, + alloy::sol_types::sol_data::String, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._bridge, + ), + as alloy_sol_types::SolType>::tokenize(&self._remoteChainId), + ::tokenize( + &self._remoteToken, + ), + ::tokenize( + &self._name, + ), + ::tokenize( + &self._symbol, + ), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `BRIDGE()` and selector `0xee9a31a2`. +```solidity +function BRIDGE() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct BRIDGECall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`BRIDGE()`](BRIDGECall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct BRIDGEReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: BRIDGECall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for BRIDGECall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: BRIDGEReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for BRIDGEReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for BRIDGECall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "BRIDGE()"; + const SELECTOR: [u8; 4] = [238u8, 154u8, 49u8, 162u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: BRIDGEReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: BRIDGEReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `REMOTE_CHAIN_ID()` and selector `0x7d1d0c5b`. +```solidity +function REMOTE_CHAIN_ID() external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct REMOTE_CHAIN_IDCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`REMOTE_CHAIN_ID()`](REMOTE_CHAIN_IDCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct REMOTE_CHAIN_IDReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: REMOTE_CHAIN_IDCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for REMOTE_CHAIN_IDCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: REMOTE_CHAIN_IDReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for REMOTE_CHAIN_IDReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for REMOTE_CHAIN_IDCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "REMOTE_CHAIN_ID()"; + const SELECTOR: [u8; 4] = [125u8, 29u8, 12u8, 91u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: REMOTE_CHAIN_IDReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: REMOTE_CHAIN_IDReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `REMOTE_TOKEN()` and selector `0x033964be`. +```solidity +function REMOTE_TOKEN() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct REMOTE_TOKENCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`REMOTE_TOKEN()`](REMOTE_TOKENCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct REMOTE_TOKENReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: REMOTE_TOKENCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for REMOTE_TOKENCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: REMOTE_TOKENReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for REMOTE_TOKENReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for REMOTE_TOKENCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "REMOTE_TOKEN()"; + const SELECTOR: [u8; 4] = [3u8, 57u8, 100u8, 190u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: REMOTE_TOKENReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: REMOTE_TOKENReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `approve(address,uint256)` and selector `0x095ea7b3`. +```solidity +function approve(address to, uint256 tokenId) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct approveCall { + #[allow(missing_docs)] + pub to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub tokenId: alloy::sol_types::private::primitives::aliases::U256, + } + ///Container type for the return parameters of the [`approve(address,uint256)`](approveCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct approveReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: approveCall) -> Self { + (value.to, value.tokenId) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for approveCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + to: tuple.0, + tokenId: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: approveReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for approveReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl approveReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for approveCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = approveReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "approve(address,uint256)"; + const SELECTOR: [u8; 4] = [9u8, 94u8, 167u8, 179u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.to, + ), + as alloy_sol_types::SolType>::tokenize(&self.tokenId), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + approveReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `balanceOf(address)` and selector `0x70a08231`. +```solidity +function balanceOf(address owner) external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct balanceOfCall { + #[allow(missing_docs)] + pub owner: alloy::sol_types::private::Address, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`balanceOf(address)`](balanceOfCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct balanceOfReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: balanceOfCall) -> Self { + (value.owner,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for balanceOfCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { owner: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: balanceOfReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for balanceOfReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for balanceOfCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "balanceOf(address)"; + const SELECTOR: [u8; 4] = [112u8, 160u8, 130u8, 49u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.owner, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: balanceOfReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: balanceOfReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `baseTokenURI()` and selector `0xd547cfb7`. +```solidity +function baseTokenURI() external view returns (string memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct baseTokenURICall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`baseTokenURI()`](baseTokenURICall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct baseTokenURIReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: baseTokenURICall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for baseTokenURICall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: baseTokenURIReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for baseTokenURIReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for baseTokenURICall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::String; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "baseTokenURI()"; + const SELECTOR: [u8; 4] = [213u8, 71u8, 207u8, 183u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: baseTokenURIReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: baseTokenURIReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `bridge()` and selector `0xe78cea92`. +```solidity +function bridge() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct bridgeCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`bridge()`](bridgeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct bridgeReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: bridgeCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for bridgeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: bridgeReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for bridgeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for bridgeCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "bridge()"; + const SELECTOR: [u8; 4] = [231u8, 140u8, 234u8, 146u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: bridgeReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: bridgeReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `burn(address,uint256)` and selector `0x9dc29fac`. +```solidity +function burn(address _from, uint256 _tokenId) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct burnCall { + #[allow(missing_docs)] + pub _from: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _tokenId: alloy::sol_types::private::primitives::aliases::U256, + } + ///Container type for the return parameters of the [`burn(address,uint256)`](burnCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct burnReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: burnCall) -> Self { + (value._from, value._tokenId) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for burnCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _from: tuple.0, + _tokenId: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: burnReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for burnReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl burnReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for burnCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = burnReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "burn(address,uint256)"; + const SELECTOR: [u8; 4] = [157u8, 194u8, 159u8, 172u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._from, + ), + as alloy_sol_types::SolType>::tokenize(&self._tokenId), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + burnReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `getApproved(uint256)` and selector `0x081812fc`. +```solidity +function getApproved(uint256 tokenId) external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getApprovedCall { + #[allow(missing_docs)] + pub tokenId: alloy::sol_types::private::primitives::aliases::U256, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`getApproved(uint256)`](getApprovedCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getApprovedReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: getApprovedCall) -> Self { + (value.tokenId,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for getApprovedCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { tokenId: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: getApprovedReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for getApprovedReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for getApprovedCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "getApproved(uint256)"; + const SELECTOR: [u8; 4] = [8u8, 24u8, 18u8, 252u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.tokenId), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: getApprovedReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: getApprovedReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `isApprovedForAll(address,address)` and selector `0xe985e9c5`. +```solidity +function isApprovedForAll(address owner, address operator) external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct isApprovedForAllCall { + #[allow(missing_docs)] + pub owner: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub operator: alloy::sol_types::private::Address, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`isApprovedForAll(address,address)`](isApprovedForAllCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct isApprovedForAllReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: isApprovedForAllCall) -> Self { + (value.owner, value.operator) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for isApprovedForAllCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + owner: tuple.0, + operator: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: isApprovedForAllReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for isApprovedForAllReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for isApprovedForAllCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "isApprovedForAll(address,address)"; + const SELECTOR: [u8; 4] = [233u8, 133u8, 233u8, 197u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.owner, + ), + ::tokenize( + &self.operator, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: isApprovedForAllReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: isApprovedForAllReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `name()` and selector `0x06fdde03`. +```solidity +function name() external view returns (string memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct nameCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`name()`](nameCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct nameReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: nameCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for nameCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: nameReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for nameReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for nameCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::String; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "name()"; + const SELECTOR: [u8; 4] = [6u8, 253u8, 222u8, 3u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: nameReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: nameReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `ownerOf(uint256)` and selector `0x6352211e`. +```solidity +function ownerOf(uint256 tokenId) external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ownerOfCall { + #[allow(missing_docs)] + pub tokenId: alloy::sol_types::private::primitives::aliases::U256, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`ownerOf(uint256)`](ownerOfCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ownerOfReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ownerOfCall) -> Self { + (value.tokenId,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ownerOfCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { tokenId: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ownerOfReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ownerOfReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for ownerOfCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ownerOf(uint256)"; + const SELECTOR: [u8; 4] = [99u8, 82u8, 33u8, 30u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.tokenId), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: ownerOfReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: ownerOfReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `remoteChainId()` and selector `0xe9518196`. +```solidity +function remoteChainId() external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct remoteChainIdCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`remoteChainId()`](remoteChainIdCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct remoteChainIdReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: remoteChainIdCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for remoteChainIdCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: remoteChainIdReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for remoteChainIdReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for remoteChainIdCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "remoteChainId()"; + const SELECTOR: [u8; 4] = [233u8, 81u8, 129u8, 150u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: remoteChainIdReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: remoteChainIdReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `remoteToken()` and selector `0xd6c0b2c4`. +```solidity +function remoteToken() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct remoteTokenCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`remoteToken()`](remoteTokenCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct remoteTokenReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: remoteTokenCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for remoteTokenCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: remoteTokenReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for remoteTokenReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for remoteTokenCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "remoteToken()"; + const SELECTOR: [u8; 4] = [214u8, 192u8, 178u8, 196u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: remoteTokenReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: remoteTokenReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `safeMint(address,uint256)` and selector `0xa1448194`. +```solidity +function safeMint(address _to, uint256 _tokenId) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct safeMintCall { + #[allow(missing_docs)] + pub _to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _tokenId: alloy::sol_types::private::primitives::aliases::U256, + } + ///Container type for the return parameters of the [`safeMint(address,uint256)`](safeMintCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct safeMintReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: safeMintCall) -> Self { + (value._to, value._tokenId) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for safeMintCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _to: tuple.0, + _tokenId: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: safeMintReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for safeMintReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl safeMintReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for safeMintCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = safeMintReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "safeMint(address,uint256)"; + const SELECTOR: [u8; 4] = [161u8, 68u8, 129u8, 148u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._to, + ), + as alloy_sol_types::SolType>::tokenize(&self._tokenId), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + safeMintReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `safeTransferFrom(address,address,uint256)` and selector `0x42842e0e`. +```solidity +function safeTransferFrom(address from, address to, uint256 tokenId) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct safeTransferFrom_0Call { + #[allow(missing_docs)] + pub from: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub tokenId: alloy::sol_types::private::primitives::aliases::U256, + } + ///Container type for the return parameters of the [`safeTransferFrom(address,address,uint256)`](safeTransferFrom_0Call) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct safeTransferFrom_0Return {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: safeTransferFrom_0Call) -> Self { + (value.from, value.to, value.tokenId) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for safeTransferFrom_0Call { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + from: tuple.0, + to: tuple.1, + tokenId: tuple.2, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: safeTransferFrom_0Return) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for safeTransferFrom_0Return { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl safeTransferFrom_0Return { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for safeTransferFrom_0Call { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = safeTransferFrom_0Return; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "safeTransferFrom(address,address,uint256)"; + const SELECTOR: [u8; 4] = [66u8, 132u8, 46u8, 14u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.from, + ), + ::tokenize( + &self.to, + ), + as alloy_sol_types::SolType>::tokenize(&self.tokenId), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + safeTransferFrom_0Return::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `safeTransferFrom(address,address,uint256,bytes)` and selector `0xb88d4fde`. +```solidity +function safeTransferFrom(address from, address to, uint256 tokenId, bytes memory data) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct safeTransferFrom_1Call { + #[allow(missing_docs)] + pub from: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub tokenId: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub data: alloy::sol_types::private::Bytes, + } + ///Container type for the return parameters of the [`safeTransferFrom(address,address,uint256,bytes)`](safeTransferFrom_1Call) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct safeTransferFrom_1Return {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::Bytes, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: safeTransferFrom_1Call) -> Self { + (value.from, value.to, value.tokenId, value.data) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for safeTransferFrom_1Call { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + from: tuple.0, + to: tuple.1, + tokenId: tuple.2, + data: tuple.3, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: safeTransferFrom_1Return) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for safeTransferFrom_1Return { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl safeTransferFrom_1Return { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for safeTransferFrom_1Call { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Bytes, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = safeTransferFrom_1Return; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "safeTransferFrom(address,address,uint256,bytes)"; + const SELECTOR: [u8; 4] = [184u8, 141u8, 79u8, 222u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.from, + ), + ::tokenize( + &self.to, + ), + as alloy_sol_types::SolType>::tokenize(&self.tokenId), + ::tokenize( + &self.data, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + safeTransferFrom_1Return::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `setApprovalForAll(address,bool)` and selector `0xa22cb465`. +```solidity +function setApprovalForAll(address operator, bool approved) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setApprovalForAllCall { + #[allow(missing_docs)] + pub operator: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub approved: bool, + } + ///Container type for the return parameters of the [`setApprovalForAll(address,bool)`](setApprovalForAllCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setApprovalForAllReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Bool, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address, bool); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: setApprovalForAllCall) -> Self { + (value.operator, value.approved) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for setApprovalForAllCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + operator: tuple.0, + approved: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: setApprovalForAllReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for setApprovalForAllReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl setApprovalForAllReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for setApprovalForAllCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Bool, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = setApprovalForAllReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "setApprovalForAll(address,bool)"; + const SELECTOR: [u8; 4] = [162u8, 44u8, 180u8, 101u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.operator, + ), + ::tokenize( + &self.approved, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + setApprovalForAllReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `supportsInterface(bytes4)` and selector `0x01ffc9a7`. +```solidity +function supportsInterface(bytes4 _interfaceId) external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct supportsInterfaceCall { + #[allow(missing_docs)] + pub _interfaceId: alloy::sol_types::private::FixedBytes<4>, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`supportsInterface(bytes4)`](supportsInterfaceCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct supportsInterfaceReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<4>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<4>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: supportsInterfaceCall) -> Self { + (value._interfaceId,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for supportsInterfaceCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _interfaceId: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: supportsInterfaceReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for supportsInterfaceReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for supportsInterfaceCall { + type Parameters<'a> = (alloy::sol_types::sol_data::FixedBytes<4>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "supportsInterface(bytes4)"; + const SELECTOR: [u8; 4] = [1u8, 255u8, 201u8, 167u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._interfaceId), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: supportsInterfaceReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: supportsInterfaceReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `symbol()` and selector `0x95d89b41`. +```solidity +function symbol() external view returns (string memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct symbolCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`symbol()`](symbolCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct symbolReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: symbolCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for symbolCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: symbolReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for symbolReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for symbolCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::String; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "symbol()"; + const SELECTOR: [u8; 4] = [149u8, 216u8, 155u8, 65u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: symbolReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: symbolReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `tokenByIndex(uint256)` and selector `0x4f6ccce7`. +```solidity +function tokenByIndex(uint256 index) external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct tokenByIndexCall { + #[allow(missing_docs)] + pub index: alloy::sol_types::private::primitives::aliases::U256, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`tokenByIndex(uint256)`](tokenByIndexCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct tokenByIndexReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: tokenByIndexCall) -> Self { + (value.index,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for tokenByIndexCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { index: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: tokenByIndexReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for tokenByIndexReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for tokenByIndexCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "tokenByIndex(uint256)"; + const SELECTOR: [u8; 4] = [79u8, 108u8, 204u8, 231u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.index), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: tokenByIndexReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: tokenByIndexReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `tokenOfOwnerByIndex(address,uint256)` and selector `0x2f745c59`. +```solidity +function tokenOfOwnerByIndex(address owner, uint256 index) external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct tokenOfOwnerByIndexCall { + #[allow(missing_docs)] + pub owner: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub index: alloy::sol_types::private::primitives::aliases::U256, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`tokenOfOwnerByIndex(address,uint256)`](tokenOfOwnerByIndexCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct tokenOfOwnerByIndexReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: tokenOfOwnerByIndexCall) -> Self { + (value.owner, value.index) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for tokenOfOwnerByIndexCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + owner: tuple.0, + index: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: tokenOfOwnerByIndexReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for tokenOfOwnerByIndexReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for tokenOfOwnerByIndexCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "tokenOfOwnerByIndex(address,uint256)"; + const SELECTOR: [u8; 4] = [47u8, 116u8, 92u8, 89u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.owner, + ), + as alloy_sol_types::SolType>::tokenize(&self.index), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: tokenOfOwnerByIndexReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: tokenOfOwnerByIndexReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `tokenURI(uint256)` and selector `0xc87b56dd`. +```solidity +function tokenURI(uint256 tokenId) external view returns (string memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct tokenURICall { + #[allow(missing_docs)] + pub tokenId: alloy::sol_types::private::primitives::aliases::U256, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`tokenURI(uint256)`](tokenURICall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct tokenURIReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: tokenURICall) -> Self { + (value.tokenId,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for tokenURICall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { tokenId: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: tokenURIReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for tokenURIReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for tokenURICall { + type Parameters<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::String; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "tokenURI(uint256)"; + const SELECTOR: [u8; 4] = [200u8, 123u8, 86u8, 221u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.tokenId), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: tokenURIReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: tokenURIReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `totalSupply()` and selector `0x18160ddd`. +```solidity +function totalSupply() external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct totalSupplyCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`totalSupply()`](totalSupplyCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct totalSupplyReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: totalSupplyCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for totalSupplyCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: totalSupplyReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for totalSupplyReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for totalSupplyCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "totalSupply()"; + const SELECTOR: [u8; 4] = [24u8, 22u8, 13u8, 221u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: totalSupplyReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: totalSupplyReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd`. +```solidity +function transferFrom(address from, address to, uint256 tokenId) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct transferFromCall { + #[allow(missing_docs)] + pub from: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub tokenId: alloy::sol_types::private::primitives::aliases::U256, + } + ///Container type for the return parameters of the [`transferFrom(address,address,uint256)`](transferFromCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct transferFromReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: transferFromCall) -> Self { + (value.from, value.to, value.tokenId) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for transferFromCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + from: tuple.0, + to: tuple.1, + tokenId: tuple.2, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: transferFromReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for transferFromReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl transferFromReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for transferFromCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = transferFromReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "transferFrom(address,address,uint256)"; + const SELECTOR: [u8; 4] = [35u8, 184u8, 114u8, 221u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.from, + ), + ::tokenize( + &self.to, + ), + as alloy_sol_types::SolType>::tokenize(&self.tokenId), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + transferFromReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `version()` and selector `0x54fd4d50`. +```solidity +function version() external view returns (string memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`version()`](versionCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for versionCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::String; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "version()"; + const SELECTOR: [u8; 4] = [84u8, 253u8, 77u8, 80u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + } + }; + ///Container for all the [`OptimismMintableERC721`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum OptimismMintableERC721Calls { + #[allow(missing_docs)] + BRIDGE(BRIDGECall), + #[allow(missing_docs)] + REMOTE_CHAIN_ID(REMOTE_CHAIN_IDCall), + #[allow(missing_docs)] + REMOTE_TOKEN(REMOTE_TOKENCall), + #[allow(missing_docs)] + approve(approveCall), + #[allow(missing_docs)] + balanceOf(balanceOfCall), + #[allow(missing_docs)] + baseTokenURI(baseTokenURICall), + #[allow(missing_docs)] + bridge(bridgeCall), + #[allow(missing_docs)] + burn(burnCall), + #[allow(missing_docs)] + getApproved(getApprovedCall), + #[allow(missing_docs)] + isApprovedForAll(isApprovedForAllCall), + #[allow(missing_docs)] + name(nameCall), + #[allow(missing_docs)] + ownerOf(ownerOfCall), + #[allow(missing_docs)] + remoteChainId(remoteChainIdCall), + #[allow(missing_docs)] + remoteToken(remoteTokenCall), + #[allow(missing_docs)] + safeMint(safeMintCall), + #[allow(missing_docs)] + safeTransferFrom_0(safeTransferFrom_0Call), + #[allow(missing_docs)] + safeTransferFrom_1(safeTransferFrom_1Call), + #[allow(missing_docs)] + setApprovalForAll(setApprovalForAllCall), + #[allow(missing_docs)] + supportsInterface(supportsInterfaceCall), + #[allow(missing_docs)] + symbol(symbolCall), + #[allow(missing_docs)] + tokenByIndex(tokenByIndexCall), + #[allow(missing_docs)] + tokenOfOwnerByIndex(tokenOfOwnerByIndexCall), + #[allow(missing_docs)] + tokenURI(tokenURICall), + #[allow(missing_docs)] + totalSupply(totalSupplyCall), + #[allow(missing_docs)] + transferFrom(transferFromCall), + #[allow(missing_docs)] + version(versionCall), + } + impl OptimismMintableERC721Calls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [1u8, 255u8, 201u8, 167u8], + [3u8, 57u8, 100u8, 190u8], + [6u8, 253u8, 222u8, 3u8], + [8u8, 24u8, 18u8, 252u8], + [9u8, 94u8, 167u8, 179u8], + [24u8, 22u8, 13u8, 221u8], + [35u8, 184u8, 114u8, 221u8], + [47u8, 116u8, 92u8, 89u8], + [66u8, 132u8, 46u8, 14u8], + [79u8, 108u8, 204u8, 231u8], + [84u8, 253u8, 77u8, 80u8], + [99u8, 82u8, 33u8, 30u8], + [112u8, 160u8, 130u8, 49u8], + [125u8, 29u8, 12u8, 91u8], + [149u8, 216u8, 155u8, 65u8], + [157u8, 194u8, 159u8, 172u8], + [161u8, 68u8, 129u8, 148u8], + [162u8, 44u8, 180u8, 101u8], + [184u8, 141u8, 79u8, 222u8], + [200u8, 123u8, 86u8, 221u8], + [213u8, 71u8, 207u8, 183u8], + [214u8, 192u8, 178u8, 196u8], + [231u8, 140u8, 234u8, 146u8], + [233u8, 81u8, 129u8, 150u8], + [233u8, 133u8, 233u8, 197u8], + [238u8, 154u8, 49u8, 162u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(supportsInterface), + ::core::stringify!(REMOTE_TOKEN), + ::core::stringify!(name), + ::core::stringify!(getApproved), + ::core::stringify!(approve), + ::core::stringify!(totalSupply), + ::core::stringify!(transferFrom), + ::core::stringify!(tokenOfOwnerByIndex), + ::core::stringify!(safeTransferFrom_0), + ::core::stringify!(tokenByIndex), + ::core::stringify!(version), + ::core::stringify!(ownerOf), + ::core::stringify!(balanceOf), + ::core::stringify!(REMOTE_CHAIN_ID), + ::core::stringify!(symbol), + ::core::stringify!(burn), + ::core::stringify!(safeMint), + ::core::stringify!(setApprovalForAll), + ::core::stringify!(safeTransferFrom_1), + ::core::stringify!(tokenURI), + ::core::stringify!(baseTokenURI), + ::core::stringify!(remoteToken), + ::core::stringify!(bridge), + ::core::stringify!(remoteChainId), + ::core::stringify!(isApprovedForAll), + ::core::stringify!(BRIDGE), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for OptimismMintableERC721Calls { + const NAME: &'static str = "OptimismMintableERC721Calls"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 26usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::BRIDGE(_) => ::SELECTOR, + Self::REMOTE_CHAIN_ID(_) => { + ::SELECTOR + } + Self::REMOTE_TOKEN(_) => { + ::SELECTOR + } + Self::approve(_) => ::SELECTOR, + Self::balanceOf(_) => { + ::SELECTOR + } + Self::baseTokenURI(_) => { + ::SELECTOR + } + Self::bridge(_) => ::SELECTOR, + Self::burn(_) => ::SELECTOR, + Self::getApproved(_) => { + ::SELECTOR + } + Self::isApprovedForAll(_) => { + ::SELECTOR + } + Self::name(_) => ::SELECTOR, + Self::ownerOf(_) => ::SELECTOR, + Self::remoteChainId(_) => { + ::SELECTOR + } + Self::remoteToken(_) => { + ::SELECTOR + } + Self::safeMint(_) => ::SELECTOR, + Self::safeTransferFrom_0(_) => { + ::SELECTOR + } + Self::safeTransferFrom_1(_) => { + ::SELECTOR + } + Self::setApprovalForAll(_) => { + ::SELECTOR + } + Self::supportsInterface(_) => { + ::SELECTOR + } + Self::symbol(_) => ::SELECTOR, + Self::tokenByIndex(_) => { + ::SELECTOR + } + Self::tokenOfOwnerByIndex(_) => { + ::SELECTOR + } + Self::tokenURI(_) => ::SELECTOR, + Self::totalSupply(_) => { + ::SELECTOR + } + Self::transferFrom(_) => { + ::SELECTOR + } + Self::version(_) => ::SELECTOR, + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn supportsInterface( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OptimismMintableERC721Calls::supportsInterface) + } + supportsInterface + }, + { + fn REMOTE_TOKEN( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OptimismMintableERC721Calls::REMOTE_TOKEN) + } + REMOTE_TOKEN + }, + { + fn name( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(OptimismMintableERC721Calls::name) + } + name + }, + { + fn getApproved( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OptimismMintableERC721Calls::getApproved) + } + getApproved + }, + { + fn approve( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(OptimismMintableERC721Calls::approve) + } + approve + }, + { + fn totalSupply( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OptimismMintableERC721Calls::totalSupply) + } + totalSupply + }, + { + fn transferFrom( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OptimismMintableERC721Calls::transferFrom) + } + transferFrom + }, + { + fn tokenOfOwnerByIndex( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OptimismMintableERC721Calls::tokenOfOwnerByIndex) + } + tokenOfOwnerByIndex + }, + { + fn safeTransferFrom_0( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OptimismMintableERC721Calls::safeTransferFrom_0) + } + safeTransferFrom_0 + }, + { + fn tokenByIndex( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OptimismMintableERC721Calls::tokenByIndex) + } + tokenByIndex + }, + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(OptimismMintableERC721Calls::version) + } + version + }, + { + fn ownerOf( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(OptimismMintableERC721Calls::ownerOf) + } + ownerOf + }, + { + fn balanceOf( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(OptimismMintableERC721Calls::balanceOf) + } + balanceOf + }, + { + fn REMOTE_CHAIN_ID( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OptimismMintableERC721Calls::REMOTE_CHAIN_ID) + } + REMOTE_CHAIN_ID + }, + { + fn symbol( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(OptimismMintableERC721Calls::symbol) + } + symbol + }, + { + fn burn( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(OptimismMintableERC721Calls::burn) + } + burn + }, + { + fn safeMint( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(OptimismMintableERC721Calls::safeMint) + } + safeMint + }, + { + fn setApprovalForAll( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OptimismMintableERC721Calls::setApprovalForAll) + } + setApprovalForAll + }, + { + fn safeTransferFrom_1( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OptimismMintableERC721Calls::safeTransferFrom_1) + } + safeTransferFrom_1 + }, + { + fn tokenURI( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(OptimismMintableERC721Calls::tokenURI) + } + tokenURI + }, + { + fn baseTokenURI( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OptimismMintableERC721Calls::baseTokenURI) + } + baseTokenURI + }, + { + fn remoteToken( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OptimismMintableERC721Calls::remoteToken) + } + remoteToken + }, + { + fn bridge( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(OptimismMintableERC721Calls::bridge) + } + bridge + }, + { + fn remoteChainId( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OptimismMintableERC721Calls::remoteChainId) + } + remoteChainId + }, + { + fn isApprovedForAll( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OptimismMintableERC721Calls::isApprovedForAll) + } + isApprovedForAll + }, + { + fn BRIDGE( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(OptimismMintableERC721Calls::BRIDGE) + } + BRIDGE + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn supportsInterface( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismMintableERC721Calls::supportsInterface) + } + supportsInterface + }, + { + fn REMOTE_TOKEN( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismMintableERC721Calls::REMOTE_TOKEN) + } + REMOTE_TOKEN + }, + { + fn name( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismMintableERC721Calls::name) + } + name + }, + { + fn getApproved( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismMintableERC721Calls::getApproved) + } + getApproved + }, + { + fn approve( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismMintableERC721Calls::approve) + } + approve + }, + { + fn totalSupply( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismMintableERC721Calls::totalSupply) + } + totalSupply + }, + { + fn transferFrom( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismMintableERC721Calls::transferFrom) + } + transferFrom + }, + { + fn tokenOfOwnerByIndex( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismMintableERC721Calls::tokenOfOwnerByIndex) + } + tokenOfOwnerByIndex + }, + { + fn safeTransferFrom_0( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismMintableERC721Calls::safeTransferFrom_0) + } + safeTransferFrom_0 + }, + { + fn tokenByIndex( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismMintableERC721Calls::tokenByIndex) + } + tokenByIndex + }, + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismMintableERC721Calls::version) + } + version + }, + { + fn ownerOf( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismMintableERC721Calls::ownerOf) + } + ownerOf + }, + { + fn balanceOf( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismMintableERC721Calls::balanceOf) + } + balanceOf + }, + { + fn REMOTE_CHAIN_ID( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismMintableERC721Calls::REMOTE_CHAIN_ID) + } + REMOTE_CHAIN_ID + }, + { + fn symbol( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismMintableERC721Calls::symbol) + } + symbol + }, + { + fn burn( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismMintableERC721Calls::burn) + } + burn + }, + { + fn safeMint( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismMintableERC721Calls::safeMint) + } + safeMint + }, + { + fn setApprovalForAll( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismMintableERC721Calls::setApprovalForAll) + } + setApprovalForAll + }, + { + fn safeTransferFrom_1( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismMintableERC721Calls::safeTransferFrom_1) + } + safeTransferFrom_1 + }, + { + fn tokenURI( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismMintableERC721Calls::tokenURI) + } + tokenURI + }, + { + fn baseTokenURI( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismMintableERC721Calls::baseTokenURI) + } + baseTokenURI + }, + { + fn remoteToken( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismMintableERC721Calls::remoteToken) + } + remoteToken + }, + { + fn bridge( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismMintableERC721Calls::bridge) + } + bridge + }, + { + fn remoteChainId( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismMintableERC721Calls::remoteChainId) + } + remoteChainId + }, + { + fn isApprovedForAll( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismMintableERC721Calls::isApprovedForAll) + } + isApprovedForAll + }, + { + fn BRIDGE( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismMintableERC721Calls::BRIDGE) + } + BRIDGE + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::BRIDGE(inner) => { + ::abi_encoded_size(inner) + } + Self::REMOTE_CHAIN_ID(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::REMOTE_TOKEN(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::approve(inner) => { + ::abi_encoded_size(inner) + } + Self::balanceOf(inner) => { + ::abi_encoded_size(inner) + } + Self::baseTokenURI(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::bridge(inner) => { + ::abi_encoded_size(inner) + } + Self::burn(inner) => { + ::abi_encoded_size(inner) + } + Self::getApproved(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::isApprovedForAll(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::name(inner) => { + ::abi_encoded_size(inner) + } + Self::ownerOf(inner) => { + ::abi_encoded_size(inner) + } + Self::remoteChainId(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::remoteToken(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::safeMint(inner) => { + ::abi_encoded_size(inner) + } + Self::safeTransferFrom_0(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::safeTransferFrom_1(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::setApprovalForAll(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::supportsInterface(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::symbol(inner) => { + ::abi_encoded_size(inner) + } + Self::tokenByIndex(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::tokenOfOwnerByIndex(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::tokenURI(inner) => { + ::abi_encoded_size(inner) + } + Self::totalSupply(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::transferFrom(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::version(inner) => { + ::abi_encoded_size(inner) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::BRIDGE(inner) => { + ::abi_encode_raw(inner, out) + } + Self::REMOTE_CHAIN_ID(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::REMOTE_TOKEN(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::approve(inner) => { + ::abi_encode_raw(inner, out) + } + Self::balanceOf(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::baseTokenURI(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::bridge(inner) => { + ::abi_encode_raw(inner, out) + } + Self::burn(inner) => { + ::abi_encode_raw(inner, out) + } + Self::getApproved(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::isApprovedForAll(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::name(inner) => { + ::abi_encode_raw(inner, out) + } + Self::ownerOf(inner) => { + ::abi_encode_raw(inner, out) + } + Self::remoteChainId(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::remoteToken(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::safeMint(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::safeTransferFrom_0(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::safeTransferFrom_1(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::setApprovalForAll(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::supportsInterface(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::symbol(inner) => { + ::abi_encode_raw(inner, out) + } + Self::tokenByIndex(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::tokenOfOwnerByIndex(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::tokenURI(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::totalSupply(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::transferFrom(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::version(inner) => { + ::abi_encode_raw(inner, out) + } + } + } + } + ///Container for all the [`OptimismMintableERC721`](self) events. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum OptimismMintableERC721Events { + #[allow(missing_docs)] + Approval(Approval), + #[allow(missing_docs)] + ApprovalForAll(ApprovalForAll), + #[allow(missing_docs)] + Burn(Burn), + #[allow(missing_docs)] + Mint(Mint), + #[allow(missing_docs)] + Transfer(Transfer), + } + impl OptimismMintableERC721Events { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 32usize]] = &[ + [ + 15u8, 103u8, 152u8, 165u8, 96u8, 121u8, 58u8, 84u8, 195u8, 188u8, 254u8, + 134u8, 169u8, 60u8, 222u8, 30u8, 115u8, 8u8, 125u8, 148u8, 76u8, 14u8, + 162u8, 5u8, 68u8, 19u8, 125u8, 65u8, 33u8, 57u8, 104u8, 133u8, + ], + [ + 23u8, 48u8, 126u8, 171u8, 57u8, 171u8, 97u8, 7u8, 232u8, 137u8, 152u8, + 69u8, 173u8, 61u8, 89u8, 189u8, 150u8, 83u8, 242u8, 0u8, 242u8, 32u8, + 146u8, 4u8, 137u8, 202u8, 43u8, 89u8, 55u8, 105u8, 108u8, 49u8, + ], + [ + 140u8, 91u8, 225u8, 229u8, 235u8, 236u8, 125u8, 91u8, 209u8, 79u8, 113u8, + 66u8, 125u8, 30u8, 132u8, 243u8, 221u8, 3u8, 20u8, 192u8, 247u8, 178u8, + 41u8, 30u8, 91u8, 32u8, 10u8, 200u8, 199u8, 195u8, 185u8, 37u8, + ], + [ + 204u8, 22u8, 245u8, 219u8, 180u8, 135u8, 50u8, 128u8, 129u8, 92u8, 30u8, + 224u8, 157u8, 189u8, 6u8, 115u8, 108u8, 255u8, 204u8, 24u8, 68u8, 18u8, + 207u8, 122u8, 113u8, 160u8, 253u8, 183u8, 93u8, 57u8, 124u8, 165u8, + ], + [ + 221u8, 242u8, 82u8, 173u8, 27u8, 226u8, 200u8, 155u8, 105u8, 194u8, + 176u8, 104u8, 252u8, 55u8, 141u8, 170u8, 149u8, 43u8, 167u8, 241u8, 99u8, + 196u8, 161u8, 22u8, 40u8, 245u8, 90u8, 77u8, 245u8, 35u8, 179u8, 239u8, + ], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(Mint), + ::core::stringify!(ApprovalForAll), + ::core::stringify!(Approval), + ::core::stringify!(Burn), + ::core::stringify!(Transfer), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolEventInterface for OptimismMintableERC721Events { + const NAME: &'static str = "OptimismMintableERC721Events"; + const COUNT: usize = 5usize; + fn decode_raw_log( + topics: &[alloy_sol_types::Word], + data: &[u8], + ) -> alloy_sol_types::Result { + match topics.first().copied() { + Some(::SIGNATURE_HASH) => { + ::decode_raw_log(topics, data) + .map(Self::Approval) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::ApprovalForAll) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log(topics, data) + .map(Self::Burn) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log(topics, data) + .map(Self::Mint) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log(topics, data) + .map(Self::Transfer) + } + _ => { + alloy_sol_types::private::Err(alloy_sol_types::Error::InvalidLog { + name: ::NAME, + log: alloy_sol_types::private::Box::new( + alloy_sol_types::private::LogData::new_unchecked( + topics.to_vec(), + data.to_vec().into(), + ), + ), + }) + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for OptimismMintableERC721Events { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + match self { + Self::Approval(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::ApprovalForAll(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::Burn(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::Mint(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::Transfer(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + } + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + match self { + Self::Approval(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::ApprovalForAll(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::Burn(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::Mint(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::Transfer(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`OptimismMintableERC721`](self) contract instance. + +See the [wrapper's documentation](`OptimismMintableERC721Instance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> OptimismMintableERC721Instance { + OptimismMintableERC721Instance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + _bridge: alloy::sol_types::private::Address, + _remoteChainId: alloy::sol_types::private::primitives::aliases::U256, + _remoteToken: alloy::sol_types::private::Address, + _name: alloy::sol_types::private::String, + _symbol: alloy::sol_types::private::String, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + OptimismMintableERC721Instance::< + P, + N, + >::deploy(__provider, _bridge, _remoteChainId, _remoteToken, _name, _symbol) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + _bridge: alloy::sol_types::private::Address, + _remoteChainId: alloy::sol_types::private::primitives::aliases::U256, + _remoteToken: alloy::sol_types::private::Address, + _name: alloy::sol_types::private::String, + _symbol: alloy::sol_types::private::String, + ) -> alloy_contract::RawCallBuilder { + OptimismMintableERC721Instance::< + P, + N, + >::deploy_builder( + __provider, + _bridge, + _remoteChainId, + _remoteToken, + _name, + _symbol, + ) + } + /**A [`OptimismMintableERC721`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`OptimismMintableERC721`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct OptimismMintableERC721Instance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for OptimismMintableERC721Instance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("OptimismMintableERC721Instance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > OptimismMintableERC721Instance { + /**Creates a new wrapper around an on-chain [`OptimismMintableERC721`](self) contract instance. + +See the [wrapper's documentation](`OptimismMintableERC721Instance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + _bridge: alloy::sol_types::private::Address, + _remoteChainId: alloy::sol_types::private::primitives::aliases::U256, + _remoteToken: alloy::sol_types::private::Address, + _name: alloy::sol_types::private::String, + _symbol: alloy::sol_types::private::String, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder( + __provider, + _bridge, + _remoteChainId, + _remoteToken, + _name, + _symbol, + ); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder( + __provider: P, + _bridge: alloy::sol_types::private::Address, + _remoteChainId: alloy::sol_types::private::primitives::aliases::U256, + _remoteToken: alloy::sol_types::private::Address, + _name: alloy::sol_types::private::String, + _symbol: alloy::sol_types::private::String, + ) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + [ + &BYTECODE[..], + &alloy_sol_types::SolConstructor::abi_encode( + &constructorCall { + _bridge, + _remoteChainId, + _remoteToken, + _name, + _symbol, + }, + )[..], + ] + .concat() + .into(), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl OptimismMintableERC721Instance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> OptimismMintableERC721Instance { + OptimismMintableERC721Instance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > OptimismMintableERC721Instance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`BRIDGE`] function. + pub fn BRIDGE(&self) -> alloy_contract::SolCallBuilder<&P, BRIDGECall, N> { + self.call_builder(&BRIDGECall) + } + ///Creates a new call builder for the [`REMOTE_CHAIN_ID`] function. + pub fn REMOTE_CHAIN_ID( + &self, + ) -> alloy_contract::SolCallBuilder<&P, REMOTE_CHAIN_IDCall, N> { + self.call_builder(&REMOTE_CHAIN_IDCall) + } + ///Creates a new call builder for the [`REMOTE_TOKEN`] function. + pub fn REMOTE_TOKEN( + &self, + ) -> alloy_contract::SolCallBuilder<&P, REMOTE_TOKENCall, N> { + self.call_builder(&REMOTE_TOKENCall) + } + ///Creates a new call builder for the [`approve`] function. + pub fn approve( + &self, + to: alloy::sol_types::private::Address, + tokenId: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, approveCall, N> { + self.call_builder(&approveCall { to, tokenId }) + } + ///Creates a new call builder for the [`balanceOf`] function. + pub fn balanceOf( + &self, + owner: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, balanceOfCall, N> { + self.call_builder(&balanceOfCall { owner }) + } + ///Creates a new call builder for the [`baseTokenURI`] function. + pub fn baseTokenURI( + &self, + ) -> alloy_contract::SolCallBuilder<&P, baseTokenURICall, N> { + self.call_builder(&baseTokenURICall) + } + ///Creates a new call builder for the [`bridge`] function. + pub fn bridge(&self) -> alloy_contract::SolCallBuilder<&P, bridgeCall, N> { + self.call_builder(&bridgeCall) + } + ///Creates a new call builder for the [`burn`] function. + pub fn burn( + &self, + _from: alloy::sol_types::private::Address, + _tokenId: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, burnCall, N> { + self.call_builder(&burnCall { _from, _tokenId }) + } + ///Creates a new call builder for the [`getApproved`] function. + pub fn getApproved( + &self, + tokenId: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, getApprovedCall, N> { + self.call_builder(&getApprovedCall { tokenId }) + } + ///Creates a new call builder for the [`isApprovedForAll`] function. + pub fn isApprovedForAll( + &self, + owner: alloy::sol_types::private::Address, + operator: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, isApprovedForAllCall, N> { + self.call_builder( + &isApprovedForAllCall { + owner, + operator, + }, + ) + } + ///Creates a new call builder for the [`name`] function. + pub fn name(&self) -> alloy_contract::SolCallBuilder<&P, nameCall, N> { + self.call_builder(&nameCall) + } + ///Creates a new call builder for the [`ownerOf`] function. + pub fn ownerOf( + &self, + tokenId: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, ownerOfCall, N> { + self.call_builder(&ownerOfCall { tokenId }) + } + ///Creates a new call builder for the [`remoteChainId`] function. + pub fn remoteChainId( + &self, + ) -> alloy_contract::SolCallBuilder<&P, remoteChainIdCall, N> { + self.call_builder(&remoteChainIdCall) + } + ///Creates a new call builder for the [`remoteToken`] function. + pub fn remoteToken( + &self, + ) -> alloy_contract::SolCallBuilder<&P, remoteTokenCall, N> { + self.call_builder(&remoteTokenCall) + } + ///Creates a new call builder for the [`safeMint`] function. + pub fn safeMint( + &self, + _to: alloy::sol_types::private::Address, + _tokenId: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, safeMintCall, N> { + self.call_builder(&safeMintCall { _to, _tokenId }) + } + ///Creates a new call builder for the [`safeTransferFrom_0`] function. + pub fn safeTransferFrom_0( + &self, + from: alloy::sol_types::private::Address, + to: alloy::sol_types::private::Address, + tokenId: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, safeTransferFrom_0Call, N> { + self.call_builder( + &safeTransferFrom_0Call { + from, + to, + tokenId, + }, + ) + } + ///Creates a new call builder for the [`safeTransferFrom_1`] function. + pub fn safeTransferFrom_1( + &self, + from: alloy::sol_types::private::Address, + to: alloy::sol_types::private::Address, + tokenId: alloy::sol_types::private::primitives::aliases::U256, + data: alloy::sol_types::private::Bytes, + ) -> alloy_contract::SolCallBuilder<&P, safeTransferFrom_1Call, N> { + self.call_builder( + &safeTransferFrom_1Call { + from, + to, + tokenId, + data, + }, + ) + } + ///Creates a new call builder for the [`setApprovalForAll`] function. + pub fn setApprovalForAll( + &self, + operator: alloy::sol_types::private::Address, + approved: bool, + ) -> alloy_contract::SolCallBuilder<&P, setApprovalForAllCall, N> { + self.call_builder( + &setApprovalForAllCall { + operator, + approved, + }, + ) + } + ///Creates a new call builder for the [`supportsInterface`] function. + pub fn supportsInterface( + &self, + _interfaceId: alloy::sol_types::private::FixedBytes<4>, + ) -> alloy_contract::SolCallBuilder<&P, supportsInterfaceCall, N> { + self.call_builder( + &supportsInterfaceCall { + _interfaceId, + }, + ) + } + ///Creates a new call builder for the [`symbol`] function. + pub fn symbol(&self) -> alloy_contract::SolCallBuilder<&P, symbolCall, N> { + self.call_builder(&symbolCall) + } + ///Creates a new call builder for the [`tokenByIndex`] function. + pub fn tokenByIndex( + &self, + index: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, tokenByIndexCall, N> { + self.call_builder(&tokenByIndexCall { index }) + } + ///Creates a new call builder for the [`tokenOfOwnerByIndex`] function. + pub fn tokenOfOwnerByIndex( + &self, + owner: alloy::sol_types::private::Address, + index: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, tokenOfOwnerByIndexCall, N> { + self.call_builder( + &tokenOfOwnerByIndexCall { + owner, + index, + }, + ) + } + ///Creates a new call builder for the [`tokenURI`] function. + pub fn tokenURI( + &self, + tokenId: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, tokenURICall, N> { + self.call_builder(&tokenURICall { tokenId }) + } + ///Creates a new call builder for the [`totalSupply`] function. + pub fn totalSupply( + &self, + ) -> alloy_contract::SolCallBuilder<&P, totalSupplyCall, N> { + self.call_builder(&totalSupplyCall) + } + ///Creates a new call builder for the [`transferFrom`] function. + pub fn transferFrom( + &self, + from: alloy::sol_types::private::Address, + to: alloy::sol_types::private::Address, + tokenId: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, transferFromCall, N> { + self.call_builder( + &transferFromCall { + from, + to, + tokenId, + }, + ) + } + ///Creates a new call builder for the [`version`] function. + pub fn version(&self) -> alloy_contract::SolCallBuilder<&P, versionCall, N> { + self.call_builder(&versionCall) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > OptimismMintableERC721Instance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + ///Creates a new event filter for the [`Approval`] event. + pub fn Approval_filter(&self) -> alloy_contract::Event<&P, Approval, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`ApprovalForAll`] event. + pub fn ApprovalForAll_filter( + &self, + ) -> alloy_contract::Event<&P, ApprovalForAll, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`Burn`] event. + pub fn Burn_filter(&self) -> alloy_contract::Event<&P, Burn, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`Mint`] event. + pub fn Mint_filter(&self) -> alloy_contract::Event<&P, Mint, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`Transfer`] event. + pub fn Transfer_filter(&self) -> alloy_contract::Event<&P, Transfer, N> { + self.event_filter::() + } + } +} diff --git a/bindings/rust/src/optimism_mintable_erc721_factory.rs b/bindings/rust/src/optimism_mintable_erc721_factory.rs new file mode 100644 index 000000000..ff988c863 --- /dev/null +++ b/bindings/rust/src/optimism_mintable_erc721_factory.rs @@ -0,0 +1,2226 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface OptimismMintableERC721Factory { + event OptimismMintableERC721Created(address indexed localToken, address indexed remoteToken, address deployer); + + constructor(address _bridge, uint256 _remoteChainId); + + function BRIDGE() external view returns (address); + function REMOTE_CHAIN_ID() external view returns (uint256); + function bridge() external view returns (address); + function createOptimismMintableERC721(address _remoteToken, string memory _name, string memory _symbol) external returns (address); + function isOptimismMintableERC721(address) external view returns (bool); + function remoteChainID() external view returns (uint256); + function version() external view returns (string memory); +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "constructor", + "inputs": [ + { + "name": "_bridge", + "type": "address", + "internalType": "address" + }, + { + "name": "_remoteChainId", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "BRIDGE", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "REMOTE_CHAIN_ID", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "bridge", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "createOptimismMintableERC721", + "inputs": [ + { + "name": "_remoteToken", + "type": "address", + "internalType": "address" + }, + { + "name": "_name", + "type": "string", + "internalType": "string" + }, + { + "name": "_symbol", + "type": "string", + "internalType": "string" + } + ], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "isOptimismMintableERC721", + "inputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "remoteChainID", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "version", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "view" + }, + { + "type": "event", + "name": "OptimismMintableERC721Created", + "inputs": [ + { + "name": "localToken", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "remoteToken", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "deployer", + "type": "address", + "indexed": false, + "internalType": "address" + } + ], + "anonymous": false + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod OptimismMintableERC721Factory { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x60c060405234801561001057600080fd5b5060405161345438038061345483398101604081905261002f91610045565b6001600160a01b0390911660805260a05261007f565b6000806040838503121561005857600080fd5b82516001600160a01b038116811461006f57600080fd5b6020939093015192949293505050565b60805160a0516133946100c06000396000818161011e01528181610151015261032a0152600081816101b5015281816101e0015261030901526133946000f3fe60806040523480156200001157600080fd5b5060043610620000875760003560e01c8063d23822421162000062578063d2382242146200014f578063d97df6521462000176578063e78cea9214620001b3578063ee9a31a214620001da57600080fd5b806354fd4d50146200008c5780635572acae14620000e15780637d1d0c5b1462000118575b600080fd5b620000c96040518060400160405280600581526020017f312e342e3200000000000000000000000000000000000000000000000000000081525081565b604051620000d891906200049b565b60405180910390f35b62000107620000f2366004620004e1565b60006020819052908152604090205460ff1681565b6040519015158152602001620000d8565b620001407f000000000000000000000000000000000000000000000000000000000000000081565b604051908152602001620000d8565b7f000000000000000000000000000000000000000000000000000000000000000062000140565b6200018d62000187366004620005e1565b62000202565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001620000d8565b7f00000000000000000000000000000000000000000000000000000000000000006200018d565b6200018d7f000000000000000000000000000000000000000000000000000000000000000081565b600073ffffffffffffffffffffffffffffffffffffffff8416620002d3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526044602482018190527f4f7074696d69736d4d696e7461626c65455243373231466163746f72793a204c908201527f3120746f6b656e20616464726573732063616e6e6f742062652061646472657360648201527f7328302900000000000000000000000000000000000000000000000000000000608482015260a40160405180910390fd5b6000848484604051602001620002ec939291906200065e565b6040516020818303038152906040528051906020012090506000817f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000008888886040516200035a906200041f565b6200036a959493929190620006ad565b8190604051809103906000f59050801580156200038b573d6000803e3d6000fd5b5073ffffffffffffffffffffffffffffffffffffffff8181166000818152602081815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905590513381529394509189169290917fe72783bb8e0ca31286b85278da59684dd814df9762a52f0837f89edd1483b299910160405180910390a395945050505050565b612c79806200070f83390190565b6000815180845260005b81811015620004555760208185018101518683018201520162000437565b8181111562000468576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000620004b060208301846200042d565b9392505050565b803573ffffffffffffffffffffffffffffffffffffffff81168114620004dc57600080fd5b919050565b600060208284031215620004f457600080fd5b620004b082620004b7565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f8301126200054057600080fd5b813567ffffffffffffffff808211156200055e576200055e620004ff565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908282118183101715620005a757620005a7620004ff565b81604052838152866020858801011115620005c157600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600060608486031215620005f757600080fd5b6200060284620004b7565b9250602084013567ffffffffffffffff808211156200062057600080fd5b6200062e878388016200052e565b935060408601359150808211156200064557600080fd5b5062000654868287016200052e565b9150509250925092565b73ffffffffffffffffffffffffffffffffffffffff841681526060602082015260006200068f60608301856200042d565b8281036040840152620006a381856200042d565b9695505050505050565b600073ffffffffffffffffffffffffffffffffffffffff808816835286602084015280861660408401525060a06060830152620006ee60a08301856200042d565b82810360808401526200070281856200042d565b9897505050505050505056fe60e06040523480156200001157600080fd5b5060405162002c7938038062002c7983398101604081905262000034916200062d565b8181600062000044838262000756565b50600162000053828262000756565b5050506001600160a01b038516620000d85760405162461bcd60e51b815260206004820152603360248201527f4f7074696d69736d4d696e7461626c654552433732313a20627269646765206360448201527f616e6e6f7420626520616464726573732830290000000000000000000000000060648201526084015b60405180910390fd5b83600003620001505760405162461bcd60e51b815260206004820152603660248201527f4f7074696d69736d4d696e7461626c654552433732313a2072656d6f7465206360448201527f6861696e2069642063616e6e6f74206265207a65726f000000000000000000006064820152608401620000cf565b6001600160a01b038316620001ce5760405162461bcd60e51b815260206004820152603960248201527f4f7074696d69736d4d696e7461626c654552433732313a2072656d6f7465207460448201527f6f6b656e2063616e6e6f742062652061646472657373283029000000000000006064820152608401620000cf565b60808490526001600160a01b0383811660a081905290861660c0526200020290601462000256602090811b62000d3317901c565b62000218856200041660201b62000f5c1760201c565b6040516020016200022b92919062000822565b604051602081830303815290604052600a90816200024a919062000756565b50505050505062000993565b6060600062000267836002620008ac565b62000274906002620008ce565b6001600160401b038111156200028e576200028e62000553565b6040519080825280601f01601f191660200182016040528015620002b9576020820181803683370190505b509050600360fc1b81600081518110620002d757620002d7620008e9565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110620003095762000309620008e9565b60200101906001600160f81b031916908160001a90535060006200032f846002620008ac565b6200033c906001620008ce565b90505b6001811115620003be576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110620003745762000374620008e9565b1a60f81b8282815181106200038d576200038d620008e9565b60200101906001600160f81b031916908160001a90535060049490941c93620003b681620008ff565b90506200033f565b5083156200040f5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401620000cf565b9392505050565b6060816000036200043e5750506040805180820190915260018152600360fc1b602082015290565b8160005b81156200046e5780620004558162000919565b9150620004669050600a836200094b565b915062000442565b6000816001600160401b038111156200048b576200048b62000553565b6040519080825280601f01601f191660200182016040528015620004b6576020820181803683370190505b5090505b84156200052e57620004ce60018362000962565b9150620004dd600a866200097c565b620004ea906030620008ce565b60f81b818381518110620005025762000502620008e9565b60200101906001600160f81b031916908160001a90535062000526600a866200094b565b9450620004ba565b949350505050565b80516001600160a01b03811681146200054e57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b83811015620005865781810151838201526020016200056c565b8381111562000596576000848401525b50505050565b600082601f830112620005ae57600080fd5b81516001600160401b0380821115620005cb57620005cb62000553565b604051601f8301601f19908116603f01168101908282118183101715620005f657620005f662000553565b816040528381528660208588010111156200061057600080fd5b6200062384602083016020890162000569565b9695505050505050565b600080600080600060a086880312156200064657600080fd5b620006518662000536565b945060208601519350620006686040870162000536565b60608701519093506001600160401b03808211156200068657600080fd5b6200069489838a016200059c565b93506080880151915080821115620006ab57600080fd5b50620006ba888289016200059c565b9150509295509295909350565b600181811c90821680620006dc57607f821691505b602082108103620006fd57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200075157600081815260208120601f850160051c810160208610156200072c5750805b601f850160051c820191505b818110156200074d5782815560010162000738565b5050505b505050565b81516001600160401b0381111562000772576200077262000553565b6200078a81620007838454620006c7565b8462000703565b602080601f831160018114620007c25760008415620007a95750858301515b600019600386901b1c1916600185901b1785556200074d565b600085815260208120601f198616915b82811015620007f357888601518255948401946001909101908401620007d2565b5085821015620008125787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6832ba3432b932bab69d60b91b8152600083516200084881600985016020880162000569565b600160fe1b60099184019182015283516200086b81600a84016020880162000569565b712f746f6b656e5552493f75696e743235363d60701b600a9290910191820152601c01949350505050565b634e487b7160e01b600052601160045260246000fd5b6000816000190483118215151615620008c957620008c962000896565b500290565b60008219821115620008e457620008e462000896565b500190565b634e487b7160e01b600052603260045260246000fd5b60008162000911576200091162000896565b506000190190565b6000600182016200092e576200092e62000896565b5060010190565b634e487b7160e01b600052601260045260246000fd5b6000826200095d576200095d62000935565b500490565b60008282101562000977576200097762000896565b500390565b6000826200098e576200098e62000935565b500690565b60805160a05160c051612293620009e6600039600081816103d501528181610460015281816109dc0152610aca0152600081816101e001526103af01526000818161031c01526103fb01526122936000f3fe608060405234801561001057600080fd5b50600436106101ae5760003560e01c80637d1d0c5b116100ee578063c87b56dd11610097578063e78cea9211610071578063e78cea92146103d3578063e9518196146103f9578063e985e9c51461041f578063ee9a31a21461045b57600080fd5b8063c87b56dd14610392578063d547cfb7146103a5578063d6c0b2c4146103ad57600080fd5b8063a1448194116100c8578063a144819414610359578063a22cb4651461036c578063b88d4fde1461037f57600080fd5b80637d1d0c5b1461031757806395d89b411461033e5780639dc29fac1461034657600080fd5b806323b872dd1161015b5780634f6ccce7116101355780634f6ccce7146102a257806354fd4d50146102b55780636352211e146102f157806370a082311461030457600080fd5b806323b872dd146102695780632f745c591461027c57806342842e0e1461028f57600080fd5b8063081812fc1161018c578063081812fc1461022f578063095ea7b31461024257806318160ddd1461025757600080fd5b806301ffc9a7146101b3578063033964be146101db57806306fdde031461021a575b600080fd5b6101c66101c1366004611d90565b610482565b60405190151581526020015b60405180910390f35b6102027f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016101d2565b6102226104e0565b6040516101d29190611e05565b61020261023d366004611e18565b610572565b610255610250366004611e4d565b610599565b005b6008545b6040519081526020016101d2565b610255610277366004611e77565b6106cf565b61025b61028a366004611e4d565b610756565b61025561029d366004611e77565b6107fe565b61025b6102b0366004611e18565b610819565b6102226040518060400160405280600581526020017f312e332e3200000000000000000000000000000000000000000000000000000081525081565b6102026102ff366004611e18565b6108bd565b61025b610312366004611eb3565b610928565b61025b7f000000000000000000000000000000000000000000000000000000000000000081565b6102226109c2565b610255610354366004611e4d565b6109d1565b610255610367366004611e4d565b610abf565b61025561037a366004611ece565b610ba2565b61025561038d366004611f39565b610bb1565b6102226103a0366004611e18565b610c3f565b610222610ca5565b7f0000000000000000000000000000000000000000000000000000000000000000610202565b7f0000000000000000000000000000000000000000000000000000000000000000610202565b7f000000000000000000000000000000000000000000000000000000000000000061025b565b6101c661042d366004612015565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b6102027f000000000000000000000000000000000000000000000000000000000000000081565b60007faecafc23000000000000000000000000000000000000000000000000000000007fffffffff0000000000000000000000000000000000000000000000000000000083168114806104d957506104d983611099565b9392505050565b6060600080546104ef90612048565b80601f016020809104026020016040519081016040528092919081815260200182805461051b90612048565b80156105685780601f1061053d57610100808354040283529160200191610568565b820191906000526020600020905b81548152906001019060200180831161054b57829003601f168201915b5050505050905090565b600061057d826110ef565b506000908152600460205260409020546001600160a01b031690565b60006105a4826108bd565b9050806001600160a01b0316836001600160a01b0316036106325760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560448201527f720000000000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b336001600160a01b038216148061064e575061064e813361042d565b6106c05760405162461bcd60e51b815260206004820152603e60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206e6f7220617070726f76656420666f7220616c6c00006064820152608401610629565b6106ca8383611156565b505050565b6106d933826111dc565b61074b5760405162461bcd60e51b815260206004820152602e60248201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560448201527f72206e6f7220617070726f7665640000000000000000000000000000000000006064820152608401610629565b6106ca83838361125a565b600061076183610928565b82106107d55760405162461bcd60e51b815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201527f74206f6620626f756e64730000000000000000000000000000000000000000006064820152608401610629565b506001600160a01b03919091166000908152600660209081526040808320938352929052205490565b6106ca83838360405180602001604052806000815250610bb1565b600061082460085490565b82106108985760405162461bcd60e51b815260206004820152602c60248201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60448201527f7574206f6620626f756e647300000000000000000000000000000000000000006064820152608401610629565b600882815481106108ab576108ab61209b565b90600052602060002001549050919050565b6000818152600260205260408120546001600160a01b0316806109225760405162461bcd60e51b815260206004820152601860248201527f4552433732313a20696e76616c696420746f6b656e20494400000000000000006044820152606401610629565b92915050565b60006001600160a01b0382166109a65760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f74206120766160448201527f6c6964206f776e657200000000000000000000000000000000000000000000006064820152608401610629565b506001600160a01b031660009081526003602052604090205490565b6060600180546104ef90612048565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610a6f5760405162461bcd60e51b815260206004820152603a60248201527f4f7074696d69736d4d696e7461626c654552433732313a206f6e6c792062726960448201527f6467652063616e2063616c6c20746869732066756e6374696f6e0000000000006064820152608401610629565b610a788161144a565b816001600160a01b03167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca582604051610ab391815260200190565b60405180910390a25050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610b5d5760405162461bcd60e51b815260206004820152603a60248201527f4f7074696d69736d4d696e7461626c654552433732313a206f6e6c792062726960448201527f6467652063616e2063616c6c20746869732066756e6374696f6e0000000000006064820152608401610629565b610b678282611509565b816001600160a01b03167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d412139688582604051610ab391815260200190565b610bad338383611523565b5050565b610bbb33836111dc565b610c2d5760405162461bcd60e51b815260206004820152602e60248201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560448201527f72206e6f7220617070726f7665640000000000000000000000000000000000006064820152608401610629565b610c398484848461160f565b50505050565b6060610c4a826110ef565b6000610c54611698565b90506000815111610c7457604051806020016040528060008152506104d9565b80610c7e84610f5c565b604051602001610c8f9291906120ca565b6040516020818303038152906040529392505050565b600a8054610cb290612048565b80601f0160208091040260200160405190810160405280929190818152602001828054610cde90612048565b8015610d2b5780601f10610d0057610100808354040283529160200191610d2b565b820191906000526020600020905b815481529060010190602001808311610d0e57829003601f168201915b505050505081565b60606000610d42836002612128565b610d4d906002612147565b67ffffffffffffffff811115610d6557610d65611f0a565b6040519080825280601f01601f191660200182016040528015610d8f576020820181803683370190505b5090507f300000000000000000000000000000000000000000000000000000000000000081600081518110610dc657610dc661209b565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f780000000000000000000000000000000000000000000000000000000000000081600181518110610e2957610e2961209b565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506000610e65846002612128565b610e70906001612147565b90505b6001811115610f0d577f303132333435363738396162636465660000000000000000000000000000000085600f1660108110610eb157610eb161209b565b1a60f81b828281518110610ec757610ec761209b565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060049490941c93610f068161215f565b9050610e73565b5083156104d95760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610629565b606081600003610f9f57505060408051808201909152600181527f3000000000000000000000000000000000000000000000000000000000000000602082015290565b8160005b8115610fc95780610fb381612176565b9150610fc29050600a836121bf565b9150610fa3565b60008167ffffffffffffffff811115610fe457610fe4611f0a565b6040519080825280601f01601f19166020018201604052801561100e576020820181803683370190505b5090505b8415611091576110236001836121d3565b9150611030600a866121ea565b61103b906030612147565b60f81b8183815181106110505761105061209b565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535061108a600a866121bf565b9450611012565b949350505050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f780e9d630000000000000000000000000000000000000000000000000000000014806109225750610922826116a7565b6000818152600260205260409020546001600160a01b03166111535760405162461bcd60e51b815260206004820152601860248201527f4552433732313a20696e76616c696420746f6b656e20494400000000000000006044820152606401610629565b50565b600081815260046020526040902080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03841690811790915581906111a3826108bd565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000806111e8836108bd565b9050806001600160a01b0316846001600160a01b0316148061122f57506001600160a01b0380821660009081526005602090815260408083209388168352929052205460ff165b806110915750836001600160a01b031661124884610572565b6001600160a01b031614949350505050565b826001600160a01b031661126d826108bd565b6001600160a01b0316146112e95760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201527f6f776e65720000000000000000000000000000000000000000000000000000006064820152608401610629565b6001600160a01b0382166113645760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610629565b61136f83838361178a565b61137a600082611156565b6001600160a01b03831660009081526003602052604081208054600192906113a39084906121d3565b90915550506001600160a01b03821660009081526003602052604081208054600192906113d1908490612147565b909155505060008181526002602052604080822080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6000611455826108bd565b90506114638160008461178a565b61146e600083611156565b6001600160a01b03811660009081526003602052604081208054600192906114979084906121d3565b909155505060008281526002602052604080822080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055518391906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b610bad828260405180602001604052806000815250611842565b816001600160a01b0316836001600160a01b0316036115845760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610629565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b61161a84848461125a565b611626848484846118cb565b610c395760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e74657200000000000000000000000000006064820152608401610629565b6060600a80546104ef90612048565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f80ac58cd00000000000000000000000000000000000000000000000000000000148061173a57507fffffffff0000000000000000000000000000000000000000000000000000000082167f5b5e139f00000000000000000000000000000000000000000000000000000000145b8061092257507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff00000000000000000000000000000000000000000000000000000000831614610922565b6001600160a01b0383166117e5576117e081600880546000838152600960205260408120829055600182018355919091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30155565b611808565b816001600160a01b0316836001600160a01b031614611808576118088382611a6c565b6001600160a01b03821661181f576106ca81611b09565b826001600160a01b0316826001600160a01b0316146106ca576106ca8282611bb8565b61184c8383611bfc565b61185960008484846118cb565b6106ca5760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e74657200000000000000000000000000006064820152608401610629565b60006001600160a01b0384163b15611a61576040517f150b7a020000000000000000000000000000000000000000000000000000000081526001600160a01b0385169063150b7a02906119289033908990889088906004016121fe565b6020604051808303816000875af1925050508015611963575060408051601f3d908101601f191682019092526119609181019061223a565b60015b611a16573d808015611991576040519150601f19603f3d011682016040523d82523d6000602084013e611996565b606091505b508051600003611a0e5760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e74657200000000000000000000000000006064820152608401610629565b805181602001fd5b7fffffffff00000000000000000000000000000000000000000000000000000000167f150b7a0200000000000000000000000000000000000000000000000000000000149050611091565b506001949350505050565b60006001611a7984610928565b611a8391906121d3565b600083815260076020526040902054909150808214611ad6576001600160a01b03841660009081526006602090815260408083208584528252808320548484528184208190558352600790915290208190555b5060009182526007602090815260408084208490556001600160a01b039094168352600681528383209183525290812055565b600854600090611b1b906001906121d3565b60008381526009602052604081205460088054939450909284908110611b4357611b4361209b565b906000526020600020015490508060088381548110611b6457611b6461209b565b6000918252602080832090910192909255828152600990915260408082208490558582528120556008805480611b9c57611b9c612257565b6001900381819060005260206000200160009055905550505050565b6000611bc383610928565b6001600160a01b039093166000908152600660209081526040808320868452825280832085905593825260079052919091209190915550565b6001600160a01b038216611c525760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610629565b6000818152600260205260409020546001600160a01b031615611cb75760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610629565b611cc36000838361178a565b6001600160a01b0382166000908152600360205260408120805460019290611cec908490612147565b909155505060008181526002602052604080822080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b7fffffffff000000000000000000000000000000000000000000000000000000008116811461115357600080fd5b600060208284031215611da257600080fd5b81356104d981611d62565b60005b83811015611dc8578181015183820152602001611db0565b83811115610c395750506000910152565b60008151808452611df1816020860160208601611dad565b601f01601f19169290920160200192915050565b6020815260006104d96020830184611dd9565b600060208284031215611e2a57600080fd5b5035919050565b80356001600160a01b0381168114611e4857600080fd5b919050565b60008060408385031215611e6057600080fd5b611e6983611e31565b946020939093013593505050565b600080600060608486031215611e8c57600080fd5b611e9584611e31565b9250611ea360208501611e31565b9150604084013590509250925092565b600060208284031215611ec557600080fd5b6104d982611e31565b60008060408385031215611ee157600080fd5b611eea83611e31565b915060208301358015158114611eff57600080fd5b809150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008060008060808587031215611f4f57600080fd5b611f5885611e31565b9350611f6660208601611e31565b925060408501359150606085013567ffffffffffffffff80821115611f8a57600080fd5b818701915087601f830112611f9e57600080fd5b813581811115611fb057611fb0611f0a565b604051601f8201601f19908116603f01168101908382118183101715611fd857611fd8611f0a565b816040528281528a6020848701011115611ff157600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b6000806040838503121561202857600080fd5b61203183611e31565b915061203f60208401611e31565b90509250929050565b600181811c9082168061205c57607f821691505b602082108103612095577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600083516120dc818460208801611dad565b8351908301906120f0818360208801611dad565b01949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000816000190483118215151615612142576121426120f9565b500290565b6000821982111561215a5761215a6120f9565b500190565b60008161216e5761216e6120f9565b506000190190565b60006000198203612189576121896120f9565b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000826121ce576121ce612190565b500490565b6000828210156121e5576121e56120f9565b500390565b6000826121f9576121f9612190565b500690565b60006001600160a01b038087168352808616602084015250836040830152608060608301526122306080830184611dd9565b9695505050505050565b60006020828403121561224c57600080fd5b81516104d981611d62565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfea164736f6c634300080f000aa164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\xC0`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`@Qa4T8\x03\x80a4T\x839\x81\x01`@\x81\x90Ra\0/\x91a\0EV[`\x01`\x01`\xA0\x1B\x03\x90\x91\x16`\x80R`\xA0Ra\0\x7FV[`\0\x80`@\x83\x85\x03\x12\x15a\0XW`\0\x80\xFD[\x82Q`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a\0oW`\0\x80\xFD[` \x93\x90\x93\x01Q\x92\x94\x92\x93PPPV[`\x80Q`\xA0Qa3\x94a\0\xC0`\09`\0\x81\x81a\x01\x1E\x01R\x81\x81a\x01Q\x01Ra\x03*\x01R`\0\x81\x81a\x01\xB5\x01R\x81\x81a\x01\xE0\x01Ra\x03\t\x01Ra3\x94`\0\xF3\xFE`\x80`@R4\x80\x15b\0\0\x11W`\0\x80\xFD[P`\x046\x10b\0\0\x87W`\x005`\xE0\x1C\x80c\xD28\"B\x11b\0\0bW\x80c\xD28\"B\x14b\0\x01OW\x80c\xD9}\xF6R\x14b\0\x01vW\x80c\xE7\x8C\xEA\x92\x14b\0\x01\xB3W\x80c\xEE\x9A1\xA2\x14b\0\x01\xDAW`\0\x80\xFD[\x80cT\xFDMP\x14b\0\0\x8CW\x80cUr\xAC\xAE\x14b\0\0\xE1W\x80c}\x1D\x0C[\x14b\0\x01\x18W[`\0\x80\xFD[b\0\0\xC9`@Q\x80`@\x01`@R\x80`\x05\x81R` \x01\x7F1.4.2\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\x81RP\x81V[`@Qb\0\0\xD8\x91\x90b\0\x04\x9BV[`@Q\x80\x91\x03\x90\xF3[b\0\x01\x07b\0\0\xF26`\x04b\0\x04\xE1V[`\0` \x81\x90R\x90\x81R`@\x90 T`\xFF\x16\x81V[`@Q\x90\x15\x15\x81R` \x01b\0\0\xD8V[b\0\x01@\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[`@Q\x90\x81R` \x01b\0\0\xD8V[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0b\0\x01@V[b\0\x01\x8Db\0\x01\x876`\x04b\0\x05\xE1V[b\0\x02\x02V[`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01b\0\0\xD8V[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0b\0\x01\x8DV[b\0\x01\x8D\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[`\0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x16b\0\x02\xD3W`@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\x82\x01R`D`$\x82\x01\x81\x90R\x7FOptimismMintableERC721Factory: L\x90\x82\x01R\x7F1 token address cannot be addres`d\x82\x01R\x7Fs(0)\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x84\x82\x01R`\xA4\x01`@Q\x80\x91\x03\x90\xFD[`\0\x84\x84\x84`@Q` \x01b\0\x02\xEC\x93\x92\x91\x90b\0\x06^V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 \x90P`\0\x81\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x88\x88\x88`@Qb\0\x03Z\x90b\0\x04\x1FV[b\0\x03j\x95\x94\x93\x92\x91\x90b\0\x06\xADV[\x81\x90`@Q\x80\x91\x03\x90`\0\xF5\x90P\x80\x15\x80\x15b\0\x03\x8BW=`\0\x80>=`\0\xFD[Ps\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x81\x16`\0\x81\x81R` \x81\x81R`@\x91\x82\x90 \x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x16`\x01\x17\x90U\x90Q3\x81R\x93\x94P\x91\x89\x16\x92\x90\x91\x7F\xE7'\x83\xBB\x8E\x0C\xA3\x12\x86\xB8Rx\xDAYhM\xD8\x14\xDF\x97b\xA5/\x087\xF8\x9E\xDD\x14\x83\xB2\x99\x91\x01`@Q\x80\x91\x03\x90\xA3\x95\x94PPPPPV[a,y\x80b\0\x07\x0F\x839\x01\x90V[`\0\x81Q\x80\x84R`\0[\x81\x81\x10\x15b\0\x04UW` \x81\x85\x01\x81\x01Q\x86\x83\x01\x82\x01R\x01b\0\x047V[\x81\x81\x11\x15b\0\x04hW`\0` \x83\x87\x01\x01R[P`\x1F\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x92\x90\x92\x01` \x01\x92\x91PPV[` \x81R`\0b\0\x04\xB0` \x83\x01\x84b\0\x04-V[\x93\x92PPPV[\x805s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14b\0\x04\xDCW`\0\x80\xFD[\x91\x90PV[`\0` \x82\x84\x03\x12\x15b\0\x04\xF4W`\0\x80\xFD[b\0\x04\xB0\x82b\0\x04\xB7V[\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[`\0\x82`\x1F\x83\x01\x12b\0\x05@W`\0\x80\xFD[\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15b\0\x05^Wb\0\x05^b\0\x04\xFFV[`@Q`\x1F\x83\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x90\x81\x16`?\x01\x16\x81\x01\x90\x82\x82\x11\x81\x83\x10\x17\x15b\0\x05\xA7Wb\0\x05\xA7b\0\x04\xFFV[\x81`@R\x83\x81R\x86` \x85\x88\x01\x01\x11\x15b\0\x05\xC1W`\0\x80\xFD[\x83` \x87\x01` \x83\x017`\0` \x85\x83\x01\x01R\x80\x94PPPPP\x92\x91PPV[`\0\x80`\0``\x84\x86\x03\x12\x15b\0\x05\xF7W`\0\x80\xFD[b\0\x06\x02\x84b\0\x04\xB7V[\x92P` \x84\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15b\0\x06 W`\0\x80\xFD[b\0\x06.\x87\x83\x88\x01b\0\x05.V[\x93P`@\x86\x015\x91P\x80\x82\x11\x15b\0\x06EW`\0\x80\xFD[Pb\0\x06T\x86\x82\x87\x01b\0\x05.V[\x91PP\x92P\x92P\x92V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x16\x81R``` \x82\x01R`\0b\0\x06\x8F``\x83\x01\x85b\0\x04-V[\x82\x81\x03`@\x84\x01Rb\0\x06\xA3\x81\x85b\0\x04-V[\x96\x95PPPPPPV[`\0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x88\x16\x83R\x86` \x84\x01R\x80\x86\x16`@\x84\x01RP`\xA0``\x83\x01Rb\0\x06\xEE`\xA0\x83\x01\x85b\0\x04-V[\x82\x81\x03`\x80\x84\x01Rb\0\x07\x02\x81\x85b\0\x04-V[\x98\x97PPPPPPPPV\xFE`\xE0`@R4\x80\x15b\0\0\x11W`\0\x80\xFD[P`@Qb\0,y8\x03\x80b\0,y\x839\x81\x01`@\x81\x90Rb\0\x004\x91b\0\x06-V[\x81\x81`\0b\0\0D\x83\x82b\0\x07VV[P`\x01b\0\0S\x82\x82b\0\x07VV[PPP`\x01`\x01`\xA0\x1B\x03\x85\x16b\0\0\xD8W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`3`$\x82\x01R\x7FOptimismMintableERC721: bridge c`D\x82\x01R\x7Fannot be address(0)\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01[`@Q\x80\x91\x03\x90\xFD[\x83`\0\x03b\0\x01PW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`6`$\x82\x01R\x7FOptimismMintableERC721: remote c`D\x82\x01R\x7Fhain id cannot be zero\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01b\0\0\xCFV[`\x01`\x01`\xA0\x1B\x03\x83\x16b\0\x01\xCEW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`9`$\x82\x01R\x7FOptimismMintableERC721: remote t`D\x82\x01R\x7Foken cannot be address(0)\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01b\0\0\xCFV[`\x80\x84\x90R`\x01`\x01`\xA0\x1B\x03\x83\x81\x16`\xA0\x81\x90R\x90\x86\x16`\xC0Rb\0\x02\x02\x90`\x14b\0\x02V` \x90\x81\x1Bb\0\r3\x17\x90\x1CV[b\0\x02\x18\x85b\0\x04\x16` \x1Bb\0\x0F\\\x17` \x1CV[`@Q` \x01b\0\x02+\x92\x91\x90b\0\x08\"V[`@Q` \x81\x83\x03\x03\x81R\x90`@R`\n\x90\x81b\0\x02J\x91\x90b\0\x07VV[PPPPPPb\0\t\x93V[```\0b\0\x02g\x83`\x02b\0\x08\xACV[b\0\x02t\x90`\x02b\0\x08\xCEV[`\x01`\x01`@\x1B\x03\x81\x11\x15b\0\x02\x8EWb\0\x02\x8Eb\0\x05SV[`@Q\x90\x80\x82R\x80`\x1F\x01`\x1F\x19\x16` \x01\x82\x01`@R\x80\x15b\0\x02\xB9W` \x82\x01\x81\x806\x837\x01\x90P[P\x90P`\x03`\xFC\x1B\x81`\0\x81Q\x81\x10b\0\x02\xD7Wb\0\x02\xD7b\0\x08\xE9V[` \x01\x01\x90`\x01`\x01`\xF8\x1B\x03\x19\x16\x90\x81`\0\x1A\x90SP`\x0F`\xFB\x1B\x81`\x01\x81Q\x81\x10b\0\x03\tWb\0\x03\tb\0\x08\xE9V[` \x01\x01\x90`\x01`\x01`\xF8\x1B\x03\x19\x16\x90\x81`\0\x1A\x90SP`\0b\0\x03/\x84`\x02b\0\x08\xACV[b\0\x03<\x90`\x01b\0\x08\xCEV[\x90P[`\x01\x81\x11\x15b\0\x03\xBEWo\x18\x18\x99\x19\x9A\x1A\x9B\x1B\x9C\x1C\xB0\xB11\xB22\xB3`\x81\x1B\x85`\x0F\x16`\x10\x81\x10b\0\x03tWb\0\x03tb\0\x08\xE9V[\x1A`\xF8\x1B\x82\x82\x81Q\x81\x10b\0\x03\x8DWb\0\x03\x8Db\0\x08\xE9V[` \x01\x01\x90`\x01`\x01`\xF8\x1B\x03\x19\x16\x90\x81`\0\x1A\x90SP`\x04\x94\x90\x94\x1C\x93b\0\x03\xB6\x81b\0\x08\xFFV[\x90Pb\0\x03?V[P\x83\x15b\0\x04\x0FW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01\x81\x90R`$\x82\x01R\x7FStrings: hex length insufficient`D\x82\x01R`d\x01b\0\0\xCFV[\x93\x92PPPV[``\x81`\0\x03b\0\x04>WPP`@\x80Q\x80\x82\x01\x90\x91R`\x01\x81R`\x03`\xFC\x1B` \x82\x01R\x90V[\x81`\0[\x81\x15b\0\x04nW\x80b\0\x04U\x81b\0\t\x19V[\x91Pb\0\x04f\x90P`\n\x83b\0\tKV[\x91Pb\0\x04BV[`\0\x81`\x01`\x01`@\x1B\x03\x81\x11\x15b\0\x04\x8BWb\0\x04\x8Bb\0\x05SV[`@Q\x90\x80\x82R\x80`\x1F\x01`\x1F\x19\x16` \x01\x82\x01`@R\x80\x15b\0\x04\xB6W` \x82\x01\x81\x806\x837\x01\x90P[P\x90P[\x84\x15b\0\x05.Wb\0\x04\xCE`\x01\x83b\0\tbV[\x91Pb\0\x04\xDD`\n\x86b\0\t|V[b\0\x04\xEA\x90`0b\0\x08\xCEV[`\xF8\x1B\x81\x83\x81Q\x81\x10b\0\x05\x02Wb\0\x05\x02b\0\x08\xE9V[` \x01\x01\x90`\x01`\x01`\xF8\x1B\x03\x19\x16\x90\x81`\0\x1A\x90SPb\0\x05&`\n\x86b\0\tKV[\x94Pb\0\x04\xBAV[\x94\x93PPPPV[\x80Q`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14b\0\x05NW`\0\x80\xFD[\x91\x90PV[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[`\0[\x83\x81\x10\x15b\0\x05\x86W\x81\x81\x01Q\x83\x82\x01R` \x01b\0\x05lV[\x83\x81\x11\x15b\0\x05\x96W`\0\x84\x84\x01R[PPPPV[`\0\x82`\x1F\x83\x01\x12b\0\x05\xAEW`\0\x80\xFD[\x81Q`\x01`\x01`@\x1B\x03\x80\x82\x11\x15b\0\x05\xCBWb\0\x05\xCBb\0\x05SV[`@Q`\x1F\x83\x01`\x1F\x19\x90\x81\x16`?\x01\x16\x81\x01\x90\x82\x82\x11\x81\x83\x10\x17\x15b\0\x05\xF6Wb\0\x05\xF6b\0\x05SV[\x81`@R\x83\x81R\x86` \x85\x88\x01\x01\x11\x15b\0\x06\x10W`\0\x80\xFD[b\0\x06#\x84` \x83\x01` \x89\x01b\0\x05iV[\x96\x95PPPPPPV[`\0\x80`\0\x80`\0`\xA0\x86\x88\x03\x12\x15b\0\x06FW`\0\x80\xFD[b\0\x06Q\x86b\0\x056V[\x94P` \x86\x01Q\x93Pb\0\x06h`@\x87\x01b\0\x056V[``\x87\x01Q\x90\x93P`\x01`\x01`@\x1B\x03\x80\x82\x11\x15b\0\x06\x86W`\0\x80\xFD[b\0\x06\x94\x89\x83\x8A\x01b\0\x05\x9CV[\x93P`\x80\x88\x01Q\x91P\x80\x82\x11\x15b\0\x06\xABW`\0\x80\xFD[Pb\0\x06\xBA\x88\x82\x89\x01b\0\x05\x9CV[\x91PP\x92\x95P\x92\x95\x90\x93PV[`\x01\x81\x81\x1C\x90\x82\x16\x80b\0\x06\xDCW`\x7F\x82\x16\x91P[` \x82\x10\x81\x03b\0\x06\xFDWcNH{q`\xE0\x1B`\0R`\"`\x04R`$`\0\xFD[P\x91\x90PV[`\x1F\x82\x11\x15b\0\x07QW`\0\x81\x81R` \x81 `\x1F\x85\x01`\x05\x1C\x81\x01` \x86\x10\x15b\0\x07,WP\x80[`\x1F\x85\x01`\x05\x1C\x82\x01\x91P[\x81\x81\x10\x15b\0\x07MW\x82\x81U`\x01\x01b\0\x078V[PPP[PPPV[\x81Q`\x01`\x01`@\x1B\x03\x81\x11\x15b\0\x07rWb\0\x07rb\0\x05SV[b\0\x07\x8A\x81b\0\x07\x83\x84Tb\0\x06\xC7V[\x84b\0\x07\x03V[` \x80`\x1F\x83\x11`\x01\x81\x14b\0\x07\xC2W`\0\x84\x15b\0\x07\xA9WP\x85\x83\x01Q[`\0\x19`\x03\x86\x90\x1B\x1C\x19\x16`\x01\x85\x90\x1B\x17\x85Ub\0\x07MV[`\0\x85\x81R` \x81 `\x1F\x19\x86\x16\x91[\x82\x81\x10\x15b\0\x07\xF3W\x88\x86\x01Q\x82U\x94\x84\x01\x94`\x01\x90\x91\x01\x90\x84\x01b\0\x07\xD2V[P\x85\x82\x10\x15b\0\x08\x12W\x87\x85\x01Q`\0\x19`\x03\x88\x90\x1B`\xF8\x16\x1C\x19\x16\x81U[PPPPP`\x01\x90\x81\x1B\x01\x90UPV[h2\xBA42\xB92\xBA\xB6\x9D`\xB9\x1B\x81R`\0\x83Qb\0\x08H\x81`\t\x85\x01` \x88\x01b\0\x05iV[`\x01`\xFE\x1B`\t\x91\x84\x01\x91\x82\x01R\x83Qb\0\x08k\x81`\n\x84\x01` \x88\x01b\0\x05iV[q/tokenURI?uint256=`p\x1B`\n\x92\x90\x91\x01\x91\x82\x01R`\x1C\x01\x94\x93PPPPV[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[`\0\x81`\0\x19\x04\x83\x11\x82\x15\x15\x16\x15b\0\x08\xC9Wb\0\x08\xC9b\0\x08\x96V[P\x02\x90V[`\0\x82\x19\x82\x11\x15b\0\x08\xE4Wb\0\x08\xE4b\0\x08\x96V[P\x01\x90V[cNH{q`\xE0\x1B`\0R`2`\x04R`$`\0\xFD[`\0\x81b\0\t\x11Wb\0\t\x11b\0\x08\x96V[P`\0\x19\x01\x90V[`\0`\x01\x82\x01b\0\t.Wb\0\t.b\0\x08\x96V[P`\x01\x01\x90V[cNH{q`\xE0\x1B`\0R`\x12`\x04R`$`\0\xFD[`\0\x82b\0\t]Wb\0\t]b\0\t5V[P\x04\x90V[`\0\x82\x82\x10\x15b\0\twWb\0\twb\0\x08\x96V[P\x03\x90V[`\0\x82b\0\t\x8EWb\0\t\x8Eb\0\t5V[P\x06\x90V[`\x80Q`\xA0Q`\xC0Qa\"\x93b\0\t\xE6`\09`\0\x81\x81a\x03\xD5\x01R\x81\x81a\x04`\x01R\x81\x81a\t\xDC\x01Ra\n\xCA\x01R`\0\x81\x81a\x01\xE0\x01Ra\x03\xAF\x01R`\0\x81\x81a\x03\x1C\x01Ra\x03\xFB\x01Ra\"\x93`\0\xF3\xFE`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`\x046\x10a\x01\xAEW`\x005`\xE0\x1C\x80c}\x1D\x0C[\x11a\0\xEEW\x80c\xC8{V\xDD\x11a\0\x97W\x80c\xE7\x8C\xEA\x92\x11a\0qW\x80c\xE7\x8C\xEA\x92\x14a\x03\xD3W\x80c\xE9Q\x81\x96\x14a\x03\xF9W\x80c\xE9\x85\xE9\xC5\x14a\x04\x1FW\x80c\xEE\x9A1\xA2\x14a\x04[W`\0\x80\xFD[\x80c\xC8{V\xDD\x14a\x03\x92W\x80c\xD5G\xCF\xB7\x14a\x03\xA5W\x80c\xD6\xC0\xB2\xC4\x14a\x03\xADW`\0\x80\xFD[\x80c\xA1D\x81\x94\x11a\0\xC8W\x80c\xA1D\x81\x94\x14a\x03YW\x80c\xA2,\xB4e\x14a\x03lW\x80c\xB8\x8DO\xDE\x14a\x03\x7FW`\0\x80\xFD[\x80c}\x1D\x0C[\x14a\x03\x17W\x80c\x95\xD8\x9BA\x14a\x03>W\x80c\x9D\xC2\x9F\xAC\x14a\x03FW`\0\x80\xFD[\x80c#\xB8r\xDD\x11a\x01[W\x80cOl\xCC\xE7\x11a\x015W\x80cOl\xCC\xE7\x14a\x02\xA2W\x80cT\xFDMP\x14a\x02\xB5W\x80ccR!\x1E\x14a\x02\xF1W\x80cp\xA0\x821\x14a\x03\x04W`\0\x80\xFD[\x80c#\xB8r\xDD\x14a\x02iW\x80c/t\\Y\x14a\x02|W\x80cB\x84.\x0E\x14a\x02\x8FW`\0\x80\xFD[\x80c\x08\x18\x12\xFC\x11a\x01\x8CW\x80c\x08\x18\x12\xFC\x14a\x02/W\x80c\t^\xA7\xB3\x14a\x02BW\x80c\x18\x16\r\xDD\x14a\x02WW`\0\x80\xFD[\x80c\x01\xFF\xC9\xA7\x14a\x01\xB3W\x80c\x039d\xBE\x14a\x01\xDBW\x80c\x06\xFD\xDE\x03\x14a\x02\x1AW[`\0\x80\xFD[a\x01\xC6a\x01\xC16`\x04a\x1D\x90V[a\x04\x82V[`@Q\x90\x15\x15\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[a\x02\x02\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x01a\x01\xD2V[a\x02\"a\x04\xE0V[`@Qa\x01\xD2\x91\x90a\x1E\x05V[a\x02\x02a\x02=6`\x04a\x1E\x18V[a\x05rV[a\x02Ua\x02P6`\x04a\x1EMV[a\x05\x99V[\0[`\x08T[`@Q\x90\x81R` \x01a\x01\xD2V[a\x02Ua\x02w6`\x04a\x1EwV[a\x06\xCFV[a\x02[a\x02\x8A6`\x04a\x1EMV[a\x07VV[a\x02Ua\x02\x9D6`\x04a\x1EwV[a\x07\xFEV[a\x02[a\x02\xB06`\x04a\x1E\x18V[a\x08\x19V[a\x02\"`@Q\x80`@\x01`@R\x80`\x05\x81R` \x01\x7F1.3.2\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\x81RP\x81V[a\x02\x02a\x02\xFF6`\x04a\x1E\x18V[a\x08\xBDV[a\x02[a\x03\x126`\x04a\x1E\xB3V[a\t(V[a\x02[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[a\x02\"a\t\xC2V[a\x02Ua\x03T6`\x04a\x1EMV[a\t\xD1V[a\x02Ua\x03g6`\x04a\x1EMV[a\n\xBFV[a\x02Ua\x03z6`\x04a\x1E\xCEV[a\x0B\xA2V[a\x02Ua\x03\x8D6`\x04a\x1F9V[a\x0B\xB1V[a\x02\"a\x03\xA06`\x04a\x1E\x18V[a\x0C?V[a\x02\"a\x0C\xA5V[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x02\x02V[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x02\x02V[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x02[V[a\x01\xC6a\x04-6`\x04a \x15V[`\x01`\x01`\xA0\x1B\x03\x91\x82\x16`\0\x90\x81R`\x05` \x90\x81R`@\x80\x83 \x93\x90\x94\x16\x82R\x91\x90\x91R T`\xFF\x16\x90V[a\x02\x02\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[`\0\x7F\xAE\xCA\xFC#\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\x7F\xFF\xFF\xFF\xFF\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\x83\x16\x81\x14\x80a\x04\xD9WPa\x04\xD9\x83a\x10\x99V[\x93\x92PPPV[```\0\x80Ta\x04\xEF\x90a HV[\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x92\x91\x90\x81\x81R` \x01\x82\x80Ta\x05\x1B\x90a HV[\x80\x15a\x05hW\x80`\x1F\x10a\x05=Wa\x01\0\x80\x83T\x04\x02\x83R\x91` \x01\x91a\x05hV[\x82\x01\x91\x90`\0R` `\0 \x90[\x81T\x81R\x90`\x01\x01\x90` \x01\x80\x83\x11a\x05KW\x82\x90\x03`\x1F\x16\x82\x01\x91[PPPPP\x90P\x90V[`\0a\x05}\x82a\x10\xEFV[P`\0\x90\x81R`\x04` R`@\x90 T`\x01`\x01`\xA0\x1B\x03\x16\x90V[`\0a\x05\xA4\x82a\x08\xBDV[\x90P\x80`\x01`\x01`\xA0\x1B\x03\x16\x83`\x01`\x01`\xA0\x1B\x03\x16\x03a\x062W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`!`$\x82\x01R\x7FERC721: approval to current owne`D\x82\x01R\x7Fr\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01[`@Q\x80\x91\x03\x90\xFD[3`\x01`\x01`\xA0\x1B\x03\x82\x16\x14\x80a\x06NWPa\x06N\x813a\x04-V[a\x06\xC0W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`>`$\x82\x01R\x7FERC721: approve caller is not to`D\x82\x01R\x7Fken owner nor approved for all\0\0`d\x82\x01R`\x84\x01a\x06)V[a\x06\xCA\x83\x83a\x11VV[PPPV[a\x06\xD93\x82a\x11\xDCV[a\x07KW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`.`$\x82\x01R\x7FERC721: caller is not token owne`D\x82\x01R\x7Fr nor approved\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x06)V[a\x06\xCA\x83\x83\x83a\x12ZV[`\0a\x07a\x83a\t(V[\x82\x10a\x07\xD5W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FERC721Enumerable: owner index ou`D\x82\x01R\x7Ft of bounds\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x06)V[P`\x01`\x01`\xA0\x1B\x03\x91\x90\x91\x16`\0\x90\x81R`\x06` \x90\x81R`@\x80\x83 \x93\x83R\x92\x90R T\x90V[a\x06\xCA\x83\x83\x83`@Q\x80` \x01`@R\x80`\0\x81RPa\x0B\xB1V[`\0a\x08$`\x08T\x90V[\x82\x10a\x08\x98W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`,`$\x82\x01R\x7FERC721Enumerable: global index o`D\x82\x01R\x7Fut of bounds\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x06)V[`\x08\x82\x81T\x81\x10a\x08\xABWa\x08\xABa \x9BV[\x90`\0R` `\0 \x01T\x90P\x91\x90PV[`\0\x81\x81R`\x02` R`@\x81 T`\x01`\x01`\xA0\x1B\x03\x16\x80a\t\"W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x18`$\x82\x01R\x7FERC721: invalid token ID\0\0\0\0\0\0\0\0`D\x82\x01R`d\x01a\x06)V[\x92\x91PPV[`\0`\x01`\x01`\xA0\x1B\x03\x82\x16a\t\xA6W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`)`$\x82\x01R\x7FERC721: address zero is not a va`D\x82\x01R\x7Flid owner\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x06)V[P`\x01`\x01`\xA0\x1B\x03\x16`\0\x90\x81R`\x03` R`@\x90 T\x90V[```\x01\x80Ta\x04\xEF\x90a HV[3`\x01`\x01`\xA0\x1B\x03\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x14a\noW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`:`$\x82\x01R\x7FOptimismMintableERC721: only bri`D\x82\x01R\x7Fdge can call this function\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x06)V[a\nx\x81a\x14JV[\x81`\x01`\x01`\xA0\x1B\x03\x16\x7F\xCC\x16\xF5\xDB\xB4\x872\x80\x81\\\x1E\xE0\x9D\xBD\x06sl\xFF\xCC\x18D\x12\xCFzq\xA0\xFD\xB7]9|\xA5\x82`@Qa\n\xB3\x91\x81R` \x01\x90V[`@Q\x80\x91\x03\x90\xA2PPV[3`\x01`\x01`\xA0\x1B\x03\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x14a\x0B]W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`:`$\x82\x01R\x7FOptimismMintableERC721: only bri`D\x82\x01R\x7Fdge can call this function\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x06)V[a\x0Bg\x82\x82a\x15\tV[\x81`\x01`\x01`\xA0\x1B\x03\x16\x7F\x0Fg\x98\xA5`y:T\xC3\xBC\xFE\x86\xA9<\xDE\x1Es\x08}\x94L\x0E\xA2\x05D\x13}A!9h\x85\x82`@Qa\n\xB3\x91\x81R` \x01\x90V[a\x0B\xAD3\x83\x83a\x15#V[PPV[a\x0B\xBB3\x83a\x11\xDCV[a\x0C-W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`.`$\x82\x01R\x7FERC721: caller is not token owne`D\x82\x01R\x7Fr nor approved\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x06)V[a\x0C9\x84\x84\x84\x84a\x16\x0FV[PPPPV[``a\x0CJ\x82a\x10\xEFV[`\0a\x0CTa\x16\x98V[\x90P`\0\x81Q\x11a\x0CtW`@Q\x80` \x01`@R\x80`\0\x81RPa\x04\xD9V[\x80a\x0C~\x84a\x0F\\V[`@Q` \x01a\x0C\x8F\x92\x91\x90a \xCAV[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x93\x92PPPV[`\n\x80Ta\x0C\xB2\x90a HV[\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x92\x91\x90\x81\x81R` \x01\x82\x80Ta\x0C\xDE\x90a HV[\x80\x15a\r+W\x80`\x1F\x10a\r\0Wa\x01\0\x80\x83T\x04\x02\x83R\x91` \x01\x91a\r+V[\x82\x01\x91\x90`\0R` `\0 \x90[\x81T\x81R\x90`\x01\x01\x90` \x01\x80\x83\x11a\r\x0EW\x82\x90\x03`\x1F\x16\x82\x01\x91[PPPPP\x81V[```\0a\rB\x83`\x02a!(V[a\rM\x90`\x02a!GV[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\reWa\rea\x1F\nV[`@Q\x90\x80\x82R\x80`\x1F\x01`\x1F\x19\x16` \x01\x82\x01`@R\x80\x15a\r\x8FW` \x82\x01\x81\x806\x837\x01\x90P[P\x90P\x7F0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81`\0\x81Q\x81\x10a\r\xC6Wa\r\xC6a \x9BV[` \x01\x01\x90~\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x19\x16\x90\x81`\0\x1A\x90SP\x7Fx\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81`\x01\x81Q\x81\x10a\x0E)Wa\x0E)a \x9BV[` \x01\x01\x90~\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x19\x16\x90\x81`\0\x1A\x90SP`\0a\x0Ee\x84`\x02a!(V[a\x0Ep\x90`\x01a!GV[\x90P[`\x01\x81\x11\x15a\x0F\rW\x7F0123456789abcdef\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x85`\x0F\x16`\x10\x81\x10a\x0E\xB1Wa\x0E\xB1a \x9BV[\x1A`\xF8\x1B\x82\x82\x81Q\x81\x10a\x0E\xC7Wa\x0E\xC7a \x9BV[` \x01\x01\x90~\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x19\x16\x90\x81`\0\x1A\x90SP`\x04\x94\x90\x94\x1C\x93a\x0F\x06\x81a!_V[\x90Pa\x0EsV[P\x83\x15a\x04\xD9W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01\x81\x90R`$\x82\x01R\x7FStrings: hex length insufficient`D\x82\x01R`d\x01a\x06)V[``\x81`\0\x03a\x0F\x9FWPP`@\x80Q\x80\x82\x01\x90\x91R`\x01\x81R\x7F0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0` \x82\x01R\x90V[\x81`\0[\x81\x15a\x0F\xC9W\x80a\x0F\xB3\x81a!vV[\x91Pa\x0F\xC2\x90P`\n\x83a!\xBFV[\x91Pa\x0F\xA3V[`\0\x81g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x0F\xE4Wa\x0F\xE4a\x1F\nV[`@Q\x90\x80\x82R\x80`\x1F\x01`\x1F\x19\x16` \x01\x82\x01`@R\x80\x15a\x10\x0EW` \x82\x01\x81\x806\x837\x01\x90P[P\x90P[\x84\x15a\x10\x91Wa\x10#`\x01\x83a!\xD3V[\x91Pa\x100`\n\x86a!\xEAV[a\x10;\x90`0a!GV[`\xF8\x1B\x81\x83\x81Q\x81\x10a\x10PWa\x10Pa \x9BV[` \x01\x01\x90~\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x19\x16\x90\x81`\0\x1A\x90SPa\x10\x8A`\n\x86a!\xBFV[\x94Pa\x10\x12V[\x94\x93PPPPV[`\0\x7F\xFF\xFF\xFF\xFF\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\x82\x16\x7Fx\x0E\x9Dc\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\x14\x80a\t\"WPa\t\"\x82a\x16\xA7V[`\0\x81\x81R`\x02` R`@\x90 T`\x01`\x01`\xA0\x1B\x03\x16a\x11SW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x18`$\x82\x01R\x7FERC721: invalid token ID\0\0\0\0\0\0\0\0`D\x82\x01R`d\x01a\x06)V[PV[`\0\x81\x81R`\x04` R`@\x90 \x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16`\x01`\x01`\xA0\x1B\x03\x84\x16\x90\x81\x17\x90\x91U\x81\x90a\x11\xA3\x82a\x08\xBDV[`\x01`\x01`\xA0\x1B\x03\x16\x7F\x8C[\xE1\xE5\xEB\xEC}[\xD1OqB}\x1E\x84\xF3\xDD\x03\x14\xC0\xF7\xB2)\x1E[ \n\xC8\xC7\xC3\xB9%`@Q`@Q\x80\x91\x03\x90\xA4PPV[`\0\x80a\x11\xE8\x83a\x08\xBDV[\x90P\x80`\x01`\x01`\xA0\x1B\x03\x16\x84`\x01`\x01`\xA0\x1B\x03\x16\x14\x80a\x12/WP`\x01`\x01`\xA0\x1B\x03\x80\x82\x16`\0\x90\x81R`\x05` \x90\x81R`@\x80\x83 \x93\x88\x16\x83R\x92\x90R T`\xFF\x16[\x80a\x10\x91WP\x83`\x01`\x01`\xA0\x1B\x03\x16a\x12H\x84a\x05rV[`\x01`\x01`\xA0\x1B\x03\x16\x14\x94\x93PPPPV[\x82`\x01`\x01`\xA0\x1B\x03\x16a\x12m\x82a\x08\xBDV[`\x01`\x01`\xA0\x1B\x03\x16\x14a\x12\xE9W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`%`$\x82\x01R\x7FERC721: transfer from incorrect `D\x82\x01R\x7Fowner\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`d\x82\x01R`\x84\x01a\x06)V[`\x01`\x01`\xA0\x1B\x03\x82\x16a\x13dW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`$\x80\x82\x01R\x7FERC721: transfer to the zero add`D\x82\x01R\x7Fress\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`d\x82\x01R`\x84\x01a\x06)V[a\x13o\x83\x83\x83a\x17\x8AV[a\x13z`\0\x82a\x11VV[`\x01`\x01`\xA0\x1B\x03\x83\x16`\0\x90\x81R`\x03` R`@\x81 \x80T`\x01\x92\x90a\x13\xA3\x90\x84\x90a!\xD3V[\x90\x91UPP`\x01`\x01`\xA0\x1B\x03\x82\x16`\0\x90\x81R`\x03` R`@\x81 \x80T`\x01\x92\x90a\x13\xD1\x90\x84\x90a!GV[\x90\x91UPP`\0\x81\x81R`\x02` R`@\x80\x82 \x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16`\x01`\x01`\xA0\x1B\x03\x86\x81\x16\x91\x82\x17\x90\x92U\x91Q\x84\x93\x91\x87\x16\x91\x7F\xDD\xF2R\xAD\x1B\xE2\xC8\x9Bi\xC2\xB0h\xFC7\x8D\xAA\x95+\xA7\xF1c\xC4\xA1\x16(\xF5ZM\xF5#\xB3\xEF\x91\xA4PPPV[`\0a\x14U\x82a\x08\xBDV[\x90Pa\x14c\x81`\0\x84a\x17\x8AV[a\x14n`\0\x83a\x11VV[`\x01`\x01`\xA0\x1B\x03\x81\x16`\0\x90\x81R`\x03` R`@\x81 \x80T`\x01\x92\x90a\x14\x97\x90\x84\x90a!\xD3V[\x90\x91UPP`\0\x82\x81R`\x02` R`@\x80\x82 \x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x90UQ\x83\x91\x90`\x01`\x01`\xA0\x1B\x03\x84\x16\x90\x7F\xDD\xF2R\xAD\x1B\xE2\xC8\x9Bi\xC2\xB0h\xFC7\x8D\xAA\x95+\xA7\xF1c\xC4\xA1\x16(\xF5ZM\xF5#\xB3\xEF\x90\x83\x90\xA4PPV[a\x0B\xAD\x82\x82`@Q\x80` \x01`@R\x80`\0\x81RPa\x18BV[\x81`\x01`\x01`\xA0\x1B\x03\x16\x83`\x01`\x01`\xA0\x1B\x03\x16\x03a\x15\x84W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x19`$\x82\x01R\x7FERC721: approve to caller\0\0\0\0\0\0\0`D\x82\x01R`d\x01a\x06)V[`\x01`\x01`\xA0\x1B\x03\x83\x81\x16`\0\x81\x81R`\x05` \x90\x81R`@\x80\x83 \x94\x87\x16\x80\x84R\x94\x82R\x91\x82\x90 \x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x16\x86\x15\x15\x90\x81\x17\x90\x91U\x91Q\x91\x82R\x7F\x170~\xAB9\xABa\x07\xE8\x89\x98E\xAD=Y\xBD\x96S\xF2\0\xF2 \x92\x04\x89\xCA+Y7il1\x91\x01`@Q\x80\x91\x03\x90\xA3PPPV[a\x16\x1A\x84\x84\x84a\x12ZV[a\x16&\x84\x84\x84\x84a\x18\xCBV[a\x0C9W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`2`$\x82\x01R\x7FERC721: transfer to non ERC721Re`D\x82\x01R\x7Fceiver implementer\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x06)V[```\n\x80Ta\x04\xEF\x90a HV[`\0\x7F\xFF\xFF\xFF\xFF\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\x82\x16\x7F\x80\xACX\xCD\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\x14\x80a\x17:WP\x7F\xFF\xFF\xFF\xFF\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\x82\x16\x7F[^\x13\x9F\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\x14[\x80a\t\"WP\x7F\x01\xFF\xC9\xA7\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\x7F\xFF\xFF\xFF\xFF\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\x83\x16\x14a\t\"V[`\x01`\x01`\xA0\x1B\x03\x83\x16a\x17\xE5Wa\x17\xE0\x81`\x08\x80T`\0\x83\x81R`\t` R`@\x81 \x82\x90U`\x01\x82\x01\x83U\x91\x90\x91R\x7F\xF3\xF7\xA9\xFE6O\xAA\xB9;!m\xA5\n2\x14\x15O\"\xA0\xA2\xB4\x15\xB2:\x84\xC8\x16\x9E\x8Bcn\xE3\x01UV[a\x18\x08V[\x81`\x01`\x01`\xA0\x1B\x03\x16\x83`\x01`\x01`\xA0\x1B\x03\x16\x14a\x18\x08Wa\x18\x08\x83\x82a\x1AlV[`\x01`\x01`\xA0\x1B\x03\x82\x16a\x18\x1FWa\x06\xCA\x81a\x1B\tV[\x82`\x01`\x01`\xA0\x1B\x03\x16\x82`\x01`\x01`\xA0\x1B\x03\x16\x14a\x06\xCAWa\x06\xCA\x82\x82a\x1B\xB8V[a\x18L\x83\x83a\x1B\xFCV[a\x18Y`\0\x84\x84\x84a\x18\xCBV[a\x06\xCAW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`2`$\x82\x01R\x7FERC721: transfer to non ERC721Re`D\x82\x01R\x7Fceiver implementer\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x06)V[`\0`\x01`\x01`\xA0\x1B\x03\x84\x16;\x15a\x1AaW`@Q\x7F\x15\x0Bz\x02\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`\x01`\x01`\xA0\x1B\x03\x85\x16\x90c\x15\x0Bz\x02\x90a\x19(\x903\x90\x89\x90\x88\x90\x88\x90`\x04\x01a!\xFEV[` `@Q\x80\x83\x03\x81`\0\x87Z\xF1\x92PPP\x80\x15a\x19cWP`@\x80Q`\x1F=\x90\x81\x01`\x1F\x19\x16\x82\x01\x90\x92Ra\x19`\x91\x81\x01\x90a\":V[`\x01[a\x1A\x16W=\x80\x80\x15a\x19\x91W`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=`\0` \x84\x01>a\x19\x96V[``\x91P[P\x80Q`\0\x03a\x1A\x0EW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`2`$\x82\x01R\x7FERC721: transfer to non ERC721Re`D\x82\x01R\x7Fceiver implementer\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x06)V[\x80Q\x81` \x01\xFD[\x7F\xFF\xFF\xFF\xFF\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\x16\x7F\x15\x0Bz\x02\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\x14\x90Pa\x10\x91V[P`\x01\x94\x93PPPPV[`\0`\x01a\x1Ay\x84a\t(V[a\x1A\x83\x91\x90a!\xD3V[`\0\x83\x81R`\x07` R`@\x90 T\x90\x91P\x80\x82\x14a\x1A\xD6W`\x01`\x01`\xA0\x1B\x03\x84\x16`\0\x90\x81R`\x06` \x90\x81R`@\x80\x83 \x85\x84R\x82R\x80\x83 T\x84\x84R\x81\x84 \x81\x90U\x83R`\x07\x90\x91R\x90 \x81\x90U[P`\0\x91\x82R`\x07` \x90\x81R`@\x80\x84 \x84\x90U`\x01`\x01`\xA0\x1B\x03\x90\x94\x16\x83R`\x06\x81R\x83\x83 \x91\x83RR\x90\x81 UV[`\x08T`\0\x90a\x1B\x1B\x90`\x01\x90a!\xD3V[`\0\x83\x81R`\t` R`@\x81 T`\x08\x80T\x93\x94P\x90\x92\x84\x90\x81\x10a\x1BCWa\x1BCa \x9BV[\x90`\0R` `\0 \x01T\x90P\x80`\x08\x83\x81T\x81\x10a\x1BdWa\x1Bda \x9BV[`\0\x91\x82R` \x80\x83 \x90\x91\x01\x92\x90\x92U\x82\x81R`\t\x90\x91R`@\x80\x82 \x84\x90U\x85\x82R\x81 U`\x08\x80T\x80a\x1B\x9CWa\x1B\x9Ca\"WV[`\x01\x90\x03\x81\x81\x90`\0R` `\0 \x01`\0\x90U\x90UPPPPV[`\0a\x1B\xC3\x83a\t(V[`\x01`\x01`\xA0\x1B\x03\x90\x93\x16`\0\x90\x81R`\x06` \x90\x81R`@\x80\x83 \x86\x84R\x82R\x80\x83 \x85\x90U\x93\x82R`\x07\x90R\x91\x90\x91 \x91\x90\x91UPV[`\x01`\x01`\xA0\x1B\x03\x82\x16a\x1CRW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01\x81\x90R`$\x82\x01R\x7FERC721: mint to the zero address`D\x82\x01R`d\x01a\x06)V[`\0\x81\x81R`\x02` R`@\x90 T`\x01`\x01`\xA0\x1B\x03\x16\x15a\x1C\xB7W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1C`$\x82\x01R\x7FERC721: token already minted\0\0\0\0`D\x82\x01R`d\x01a\x06)V[a\x1C\xC3`\0\x83\x83a\x17\x8AV[`\x01`\x01`\xA0\x1B\x03\x82\x16`\0\x90\x81R`\x03` R`@\x81 \x80T`\x01\x92\x90a\x1C\xEC\x90\x84\x90a!GV[\x90\x91UPP`\0\x81\x81R`\x02` R`@\x80\x82 \x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16`\x01`\x01`\xA0\x1B\x03\x86\x16\x90\x81\x17\x90\x91U\x90Q\x83\x92\x90\x7F\xDD\xF2R\xAD\x1B\xE2\xC8\x9Bi\xC2\xB0h\xFC7\x8D\xAA\x95+\xA7\xF1c\xC4\xA1\x16(\xF5ZM\xF5#\xB3\xEF\x90\x82\x90\xA4PPV[\x7F\xFF\xFF\xFF\xFF\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\x81\x16\x81\x14a\x11SW`\0\x80\xFD[`\0` \x82\x84\x03\x12\x15a\x1D\xA2W`\0\x80\xFD[\x815a\x04\xD9\x81a\x1DbV[`\0[\x83\x81\x10\x15a\x1D\xC8W\x81\x81\x01Q\x83\x82\x01R` \x01a\x1D\xB0V[\x83\x81\x11\x15a\x0C9WPP`\0\x91\x01RV[`\0\x81Q\x80\x84Ra\x1D\xF1\x81` \x86\x01` \x86\x01a\x1D\xADV[`\x1F\x01`\x1F\x19\x16\x92\x90\x92\x01` \x01\x92\x91PPV[` \x81R`\0a\x04\xD9` \x83\x01\x84a\x1D\xD9V[`\0` \x82\x84\x03\x12\x15a\x1E*W`\0\x80\xFD[P5\x91\x90PV[\x805`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a\x1EHW`\0\x80\xFD[\x91\x90PV[`\0\x80`@\x83\x85\x03\x12\x15a\x1E`W`\0\x80\xFD[a\x1Ei\x83a\x1E1V[\x94` \x93\x90\x93\x015\x93PPPV[`\0\x80`\0``\x84\x86\x03\x12\x15a\x1E\x8CW`\0\x80\xFD[a\x1E\x95\x84a\x1E1V[\x92Pa\x1E\xA3` \x85\x01a\x1E1V[\x91P`@\x84\x015\x90P\x92P\x92P\x92V[`\0` \x82\x84\x03\x12\x15a\x1E\xC5W`\0\x80\xFD[a\x04\xD9\x82a\x1E1V[`\0\x80`@\x83\x85\x03\x12\x15a\x1E\xE1W`\0\x80\xFD[a\x1E\xEA\x83a\x1E1V[\x91P` \x83\x015\x80\x15\x15\x81\x14a\x1E\xFFW`\0\x80\xFD[\x80\x91PP\x92P\x92\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[`\0\x80`\0\x80`\x80\x85\x87\x03\x12\x15a\x1FOW`\0\x80\xFD[a\x1FX\x85a\x1E1V[\x93Pa\x1Ff` \x86\x01a\x1E1V[\x92P`@\x85\x015\x91P``\x85\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x1F\x8AW`\0\x80\xFD[\x81\x87\x01\x91P\x87`\x1F\x83\x01\x12a\x1F\x9EW`\0\x80\xFD[\x815\x81\x81\x11\x15a\x1F\xB0Wa\x1F\xB0a\x1F\nV[`@Q`\x1F\x82\x01`\x1F\x19\x90\x81\x16`?\x01\x16\x81\x01\x90\x83\x82\x11\x81\x83\x10\x17\x15a\x1F\xD8Wa\x1F\xD8a\x1F\nV[\x81`@R\x82\x81R\x8A` \x84\x87\x01\x01\x11\x15a\x1F\xF1W`\0\x80\xFD[\x82` \x86\x01` \x83\x017`\0` \x84\x83\x01\x01R\x80\x95PPPPPP\x92\x95\x91\x94P\x92PV[`\0\x80`@\x83\x85\x03\x12\x15a (W`\0\x80\xFD[a 1\x83a\x1E1V[\x91Pa ?` \x84\x01a\x1E1V[\x90P\x92P\x92\x90PV[`\x01\x81\x81\x1C\x90\x82\x16\x80a \\W`\x7F\x82\x16\x91P[` \x82\x10\x81\x03a \x95W\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`\"`\x04R`$`\0\xFD[P\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`2`\x04R`$`\0\xFD[`\0\x83Qa \xDC\x81\x84` \x88\x01a\x1D\xADV[\x83Q\x90\x83\x01\x90a \xF0\x81\x83` \x88\x01a\x1D\xADV[\x01\x94\x93PPPPV[\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`\x11`\x04R`$`\0\xFD[`\0\x81`\0\x19\x04\x83\x11\x82\x15\x15\x16\x15a!BWa!Ba \xF9V[P\x02\x90V[`\0\x82\x19\x82\x11\x15a!ZWa!Za \xF9V[P\x01\x90V[`\0\x81a!nWa!na \xF9V[P`\0\x19\x01\x90V[`\0`\0\x19\x82\x03a!\x89Wa!\x89a \xF9V[P`\x01\x01\x90V[\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`\x12`\x04R`$`\0\xFD[`\0\x82a!\xCEWa!\xCEa!\x90V[P\x04\x90V[`\0\x82\x82\x10\x15a!\xE5Wa!\xE5a \xF9V[P\x03\x90V[`\0\x82a!\xF9Wa!\xF9a!\x90V[P\x06\x90V[`\0`\x01`\x01`\xA0\x1B\x03\x80\x87\x16\x83R\x80\x86\x16` \x84\x01RP\x83`@\x83\x01R`\x80``\x83\x01Ra\"0`\x80\x83\x01\x84a\x1D\xD9V[\x96\x95PPPPPPV[`\0` \x82\x84\x03\x12\x15a\"LW`\0\x80\xFD[\x81Qa\x04\xD9\x81a\x1DbV[\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`1`\x04R`$`\0\xFD\xFE\xA1dsolcC\0\x08\x0F\0\n\xA1dsolcC\0\x08\x0F\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x60806040523480156200001157600080fd5b5060043610620000875760003560e01c8063d23822421162000062578063d2382242146200014f578063d97df6521462000176578063e78cea9214620001b3578063ee9a31a214620001da57600080fd5b806354fd4d50146200008c5780635572acae14620000e15780637d1d0c5b1462000118575b600080fd5b620000c96040518060400160405280600581526020017f312e342e3200000000000000000000000000000000000000000000000000000081525081565b604051620000d891906200049b565b60405180910390f35b62000107620000f2366004620004e1565b60006020819052908152604090205460ff1681565b6040519015158152602001620000d8565b620001407f000000000000000000000000000000000000000000000000000000000000000081565b604051908152602001620000d8565b7f000000000000000000000000000000000000000000000000000000000000000062000140565b6200018d62000187366004620005e1565b62000202565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001620000d8565b7f00000000000000000000000000000000000000000000000000000000000000006200018d565b6200018d7f000000000000000000000000000000000000000000000000000000000000000081565b600073ffffffffffffffffffffffffffffffffffffffff8416620002d3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526044602482018190527f4f7074696d69736d4d696e7461626c65455243373231466163746f72793a204c908201527f3120746f6b656e20616464726573732063616e6e6f742062652061646472657360648201527f7328302900000000000000000000000000000000000000000000000000000000608482015260a40160405180910390fd5b6000848484604051602001620002ec939291906200065e565b6040516020818303038152906040528051906020012090506000817f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000008888886040516200035a906200041f565b6200036a959493929190620006ad565b8190604051809103906000f59050801580156200038b573d6000803e3d6000fd5b5073ffffffffffffffffffffffffffffffffffffffff8181166000818152602081815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905590513381529394509189169290917fe72783bb8e0ca31286b85278da59684dd814df9762a52f0837f89edd1483b299910160405180910390a395945050505050565b612c79806200070f83390190565b6000815180845260005b81811015620004555760208185018101518683018201520162000437565b8181111562000468576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000620004b060208301846200042d565b9392505050565b803573ffffffffffffffffffffffffffffffffffffffff81168114620004dc57600080fd5b919050565b600060208284031215620004f457600080fd5b620004b082620004b7565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f8301126200054057600080fd5b813567ffffffffffffffff808211156200055e576200055e620004ff565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908282118183101715620005a757620005a7620004ff565b81604052838152866020858801011115620005c157600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600060608486031215620005f757600080fd5b6200060284620004b7565b9250602084013567ffffffffffffffff808211156200062057600080fd5b6200062e878388016200052e565b935060408601359150808211156200064557600080fd5b5062000654868287016200052e565b9150509250925092565b73ffffffffffffffffffffffffffffffffffffffff841681526060602082015260006200068f60608301856200042d565b8281036040840152620006a381856200042d565b9695505050505050565b600073ffffffffffffffffffffffffffffffffffffffff808816835286602084015280861660408401525060a06060830152620006ee60a08301856200042d565b82810360808401526200070281856200042d565b9897505050505050505056fe60e06040523480156200001157600080fd5b5060405162002c7938038062002c7983398101604081905262000034916200062d565b8181600062000044838262000756565b50600162000053828262000756565b5050506001600160a01b038516620000d85760405162461bcd60e51b815260206004820152603360248201527f4f7074696d69736d4d696e7461626c654552433732313a20627269646765206360448201527f616e6e6f7420626520616464726573732830290000000000000000000000000060648201526084015b60405180910390fd5b83600003620001505760405162461bcd60e51b815260206004820152603660248201527f4f7074696d69736d4d696e7461626c654552433732313a2072656d6f7465206360448201527f6861696e2069642063616e6e6f74206265207a65726f000000000000000000006064820152608401620000cf565b6001600160a01b038316620001ce5760405162461bcd60e51b815260206004820152603960248201527f4f7074696d69736d4d696e7461626c654552433732313a2072656d6f7465207460448201527f6f6b656e2063616e6e6f742062652061646472657373283029000000000000006064820152608401620000cf565b60808490526001600160a01b0383811660a081905290861660c0526200020290601462000256602090811b62000d3317901c565b62000218856200041660201b62000f5c1760201c565b6040516020016200022b92919062000822565b604051602081830303815290604052600a90816200024a919062000756565b50505050505062000993565b6060600062000267836002620008ac565b62000274906002620008ce565b6001600160401b038111156200028e576200028e62000553565b6040519080825280601f01601f191660200182016040528015620002b9576020820181803683370190505b509050600360fc1b81600081518110620002d757620002d7620008e9565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110620003095762000309620008e9565b60200101906001600160f81b031916908160001a90535060006200032f846002620008ac565b6200033c906001620008ce565b90505b6001811115620003be576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110620003745762000374620008e9565b1a60f81b8282815181106200038d576200038d620008e9565b60200101906001600160f81b031916908160001a90535060049490941c93620003b681620008ff565b90506200033f565b5083156200040f5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401620000cf565b9392505050565b6060816000036200043e5750506040805180820190915260018152600360fc1b602082015290565b8160005b81156200046e5780620004558162000919565b9150620004669050600a836200094b565b915062000442565b6000816001600160401b038111156200048b576200048b62000553565b6040519080825280601f01601f191660200182016040528015620004b6576020820181803683370190505b5090505b84156200052e57620004ce60018362000962565b9150620004dd600a866200097c565b620004ea906030620008ce565b60f81b818381518110620005025762000502620008e9565b60200101906001600160f81b031916908160001a90535062000526600a866200094b565b9450620004ba565b949350505050565b80516001600160a01b03811681146200054e57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b83811015620005865781810151838201526020016200056c565b8381111562000596576000848401525b50505050565b600082601f830112620005ae57600080fd5b81516001600160401b0380821115620005cb57620005cb62000553565b604051601f8301601f19908116603f01168101908282118183101715620005f657620005f662000553565b816040528381528660208588010111156200061057600080fd5b6200062384602083016020890162000569565b9695505050505050565b600080600080600060a086880312156200064657600080fd5b620006518662000536565b945060208601519350620006686040870162000536565b60608701519093506001600160401b03808211156200068657600080fd5b6200069489838a016200059c565b93506080880151915080821115620006ab57600080fd5b50620006ba888289016200059c565b9150509295509295909350565b600181811c90821680620006dc57607f821691505b602082108103620006fd57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200075157600081815260208120601f850160051c810160208610156200072c5750805b601f850160051c820191505b818110156200074d5782815560010162000738565b5050505b505050565b81516001600160401b0381111562000772576200077262000553565b6200078a81620007838454620006c7565b8462000703565b602080601f831160018114620007c25760008415620007a95750858301515b600019600386901b1c1916600185901b1785556200074d565b600085815260208120601f198616915b82811015620007f357888601518255948401946001909101908401620007d2565b5085821015620008125787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6832ba3432b932bab69d60b91b8152600083516200084881600985016020880162000569565b600160fe1b60099184019182015283516200086b81600a84016020880162000569565b712f746f6b656e5552493f75696e743235363d60701b600a9290910191820152601c01949350505050565b634e487b7160e01b600052601160045260246000fd5b6000816000190483118215151615620008c957620008c962000896565b500290565b60008219821115620008e457620008e462000896565b500190565b634e487b7160e01b600052603260045260246000fd5b60008162000911576200091162000896565b506000190190565b6000600182016200092e576200092e62000896565b5060010190565b634e487b7160e01b600052601260045260246000fd5b6000826200095d576200095d62000935565b500490565b60008282101562000977576200097762000896565b500390565b6000826200098e576200098e62000935565b500690565b60805160a05160c051612293620009e6600039600081816103d501528181610460015281816109dc0152610aca0152600081816101e001526103af01526000818161031c01526103fb01526122936000f3fe608060405234801561001057600080fd5b50600436106101ae5760003560e01c80637d1d0c5b116100ee578063c87b56dd11610097578063e78cea9211610071578063e78cea92146103d3578063e9518196146103f9578063e985e9c51461041f578063ee9a31a21461045b57600080fd5b8063c87b56dd14610392578063d547cfb7146103a5578063d6c0b2c4146103ad57600080fd5b8063a1448194116100c8578063a144819414610359578063a22cb4651461036c578063b88d4fde1461037f57600080fd5b80637d1d0c5b1461031757806395d89b411461033e5780639dc29fac1461034657600080fd5b806323b872dd1161015b5780634f6ccce7116101355780634f6ccce7146102a257806354fd4d50146102b55780636352211e146102f157806370a082311461030457600080fd5b806323b872dd146102695780632f745c591461027c57806342842e0e1461028f57600080fd5b8063081812fc1161018c578063081812fc1461022f578063095ea7b31461024257806318160ddd1461025757600080fd5b806301ffc9a7146101b3578063033964be146101db57806306fdde031461021a575b600080fd5b6101c66101c1366004611d90565b610482565b60405190151581526020015b60405180910390f35b6102027f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016101d2565b6102226104e0565b6040516101d29190611e05565b61020261023d366004611e18565b610572565b610255610250366004611e4d565b610599565b005b6008545b6040519081526020016101d2565b610255610277366004611e77565b6106cf565b61025b61028a366004611e4d565b610756565b61025561029d366004611e77565b6107fe565b61025b6102b0366004611e18565b610819565b6102226040518060400160405280600581526020017f312e332e3200000000000000000000000000000000000000000000000000000081525081565b6102026102ff366004611e18565b6108bd565b61025b610312366004611eb3565b610928565b61025b7f000000000000000000000000000000000000000000000000000000000000000081565b6102226109c2565b610255610354366004611e4d565b6109d1565b610255610367366004611e4d565b610abf565b61025561037a366004611ece565b610ba2565b61025561038d366004611f39565b610bb1565b6102226103a0366004611e18565b610c3f565b610222610ca5565b7f0000000000000000000000000000000000000000000000000000000000000000610202565b7f0000000000000000000000000000000000000000000000000000000000000000610202565b7f000000000000000000000000000000000000000000000000000000000000000061025b565b6101c661042d366004612015565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b6102027f000000000000000000000000000000000000000000000000000000000000000081565b60007faecafc23000000000000000000000000000000000000000000000000000000007fffffffff0000000000000000000000000000000000000000000000000000000083168114806104d957506104d983611099565b9392505050565b6060600080546104ef90612048565b80601f016020809104026020016040519081016040528092919081815260200182805461051b90612048565b80156105685780601f1061053d57610100808354040283529160200191610568565b820191906000526020600020905b81548152906001019060200180831161054b57829003601f168201915b5050505050905090565b600061057d826110ef565b506000908152600460205260409020546001600160a01b031690565b60006105a4826108bd565b9050806001600160a01b0316836001600160a01b0316036106325760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560448201527f720000000000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b336001600160a01b038216148061064e575061064e813361042d565b6106c05760405162461bcd60e51b815260206004820152603e60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206e6f7220617070726f76656420666f7220616c6c00006064820152608401610629565b6106ca8383611156565b505050565b6106d933826111dc565b61074b5760405162461bcd60e51b815260206004820152602e60248201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560448201527f72206e6f7220617070726f7665640000000000000000000000000000000000006064820152608401610629565b6106ca83838361125a565b600061076183610928565b82106107d55760405162461bcd60e51b815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201527f74206f6620626f756e64730000000000000000000000000000000000000000006064820152608401610629565b506001600160a01b03919091166000908152600660209081526040808320938352929052205490565b6106ca83838360405180602001604052806000815250610bb1565b600061082460085490565b82106108985760405162461bcd60e51b815260206004820152602c60248201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60448201527f7574206f6620626f756e647300000000000000000000000000000000000000006064820152608401610629565b600882815481106108ab576108ab61209b565b90600052602060002001549050919050565b6000818152600260205260408120546001600160a01b0316806109225760405162461bcd60e51b815260206004820152601860248201527f4552433732313a20696e76616c696420746f6b656e20494400000000000000006044820152606401610629565b92915050565b60006001600160a01b0382166109a65760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f74206120766160448201527f6c6964206f776e657200000000000000000000000000000000000000000000006064820152608401610629565b506001600160a01b031660009081526003602052604090205490565b6060600180546104ef90612048565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610a6f5760405162461bcd60e51b815260206004820152603a60248201527f4f7074696d69736d4d696e7461626c654552433732313a206f6e6c792062726960448201527f6467652063616e2063616c6c20746869732066756e6374696f6e0000000000006064820152608401610629565b610a788161144a565b816001600160a01b03167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca582604051610ab391815260200190565b60405180910390a25050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610b5d5760405162461bcd60e51b815260206004820152603a60248201527f4f7074696d69736d4d696e7461626c654552433732313a206f6e6c792062726960448201527f6467652063616e2063616c6c20746869732066756e6374696f6e0000000000006064820152608401610629565b610b678282611509565b816001600160a01b03167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d412139688582604051610ab391815260200190565b610bad338383611523565b5050565b610bbb33836111dc565b610c2d5760405162461bcd60e51b815260206004820152602e60248201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560448201527f72206e6f7220617070726f7665640000000000000000000000000000000000006064820152608401610629565b610c398484848461160f565b50505050565b6060610c4a826110ef565b6000610c54611698565b90506000815111610c7457604051806020016040528060008152506104d9565b80610c7e84610f5c565b604051602001610c8f9291906120ca565b6040516020818303038152906040529392505050565b600a8054610cb290612048565b80601f0160208091040260200160405190810160405280929190818152602001828054610cde90612048565b8015610d2b5780601f10610d0057610100808354040283529160200191610d2b565b820191906000526020600020905b815481529060010190602001808311610d0e57829003601f168201915b505050505081565b60606000610d42836002612128565b610d4d906002612147565b67ffffffffffffffff811115610d6557610d65611f0a565b6040519080825280601f01601f191660200182016040528015610d8f576020820181803683370190505b5090507f300000000000000000000000000000000000000000000000000000000000000081600081518110610dc657610dc661209b565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f780000000000000000000000000000000000000000000000000000000000000081600181518110610e2957610e2961209b565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506000610e65846002612128565b610e70906001612147565b90505b6001811115610f0d577f303132333435363738396162636465660000000000000000000000000000000085600f1660108110610eb157610eb161209b565b1a60f81b828281518110610ec757610ec761209b565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060049490941c93610f068161215f565b9050610e73565b5083156104d95760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610629565b606081600003610f9f57505060408051808201909152600181527f3000000000000000000000000000000000000000000000000000000000000000602082015290565b8160005b8115610fc95780610fb381612176565b9150610fc29050600a836121bf565b9150610fa3565b60008167ffffffffffffffff811115610fe457610fe4611f0a565b6040519080825280601f01601f19166020018201604052801561100e576020820181803683370190505b5090505b8415611091576110236001836121d3565b9150611030600a866121ea565b61103b906030612147565b60f81b8183815181106110505761105061209b565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535061108a600a866121bf565b9450611012565b949350505050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f780e9d630000000000000000000000000000000000000000000000000000000014806109225750610922826116a7565b6000818152600260205260409020546001600160a01b03166111535760405162461bcd60e51b815260206004820152601860248201527f4552433732313a20696e76616c696420746f6b656e20494400000000000000006044820152606401610629565b50565b600081815260046020526040902080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03841690811790915581906111a3826108bd565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000806111e8836108bd565b9050806001600160a01b0316846001600160a01b0316148061122f57506001600160a01b0380821660009081526005602090815260408083209388168352929052205460ff165b806110915750836001600160a01b031661124884610572565b6001600160a01b031614949350505050565b826001600160a01b031661126d826108bd565b6001600160a01b0316146112e95760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201527f6f776e65720000000000000000000000000000000000000000000000000000006064820152608401610629565b6001600160a01b0382166113645760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610629565b61136f83838361178a565b61137a600082611156565b6001600160a01b03831660009081526003602052604081208054600192906113a39084906121d3565b90915550506001600160a01b03821660009081526003602052604081208054600192906113d1908490612147565b909155505060008181526002602052604080822080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6000611455826108bd565b90506114638160008461178a565b61146e600083611156565b6001600160a01b03811660009081526003602052604081208054600192906114979084906121d3565b909155505060008281526002602052604080822080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055518391906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b610bad828260405180602001604052806000815250611842565b816001600160a01b0316836001600160a01b0316036115845760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610629565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b61161a84848461125a565b611626848484846118cb565b610c395760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e74657200000000000000000000000000006064820152608401610629565b6060600a80546104ef90612048565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f80ac58cd00000000000000000000000000000000000000000000000000000000148061173a57507fffffffff0000000000000000000000000000000000000000000000000000000082167f5b5e139f00000000000000000000000000000000000000000000000000000000145b8061092257507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff00000000000000000000000000000000000000000000000000000000831614610922565b6001600160a01b0383166117e5576117e081600880546000838152600960205260408120829055600182018355919091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30155565b611808565b816001600160a01b0316836001600160a01b031614611808576118088382611a6c565b6001600160a01b03821661181f576106ca81611b09565b826001600160a01b0316826001600160a01b0316146106ca576106ca8282611bb8565b61184c8383611bfc565b61185960008484846118cb565b6106ca5760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e74657200000000000000000000000000006064820152608401610629565b60006001600160a01b0384163b15611a61576040517f150b7a020000000000000000000000000000000000000000000000000000000081526001600160a01b0385169063150b7a02906119289033908990889088906004016121fe565b6020604051808303816000875af1925050508015611963575060408051601f3d908101601f191682019092526119609181019061223a565b60015b611a16573d808015611991576040519150601f19603f3d011682016040523d82523d6000602084013e611996565b606091505b508051600003611a0e5760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e74657200000000000000000000000000006064820152608401610629565b805181602001fd5b7fffffffff00000000000000000000000000000000000000000000000000000000167f150b7a0200000000000000000000000000000000000000000000000000000000149050611091565b506001949350505050565b60006001611a7984610928565b611a8391906121d3565b600083815260076020526040902054909150808214611ad6576001600160a01b03841660009081526006602090815260408083208584528252808320548484528184208190558352600790915290208190555b5060009182526007602090815260408084208490556001600160a01b039094168352600681528383209183525290812055565b600854600090611b1b906001906121d3565b60008381526009602052604081205460088054939450909284908110611b4357611b4361209b565b906000526020600020015490508060088381548110611b6457611b6461209b565b6000918252602080832090910192909255828152600990915260408082208490558582528120556008805480611b9c57611b9c612257565b6001900381819060005260206000200160009055905550505050565b6000611bc383610928565b6001600160a01b039093166000908152600660209081526040808320868452825280832085905593825260079052919091209190915550565b6001600160a01b038216611c525760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610629565b6000818152600260205260409020546001600160a01b031615611cb75760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610629565b611cc36000838361178a565b6001600160a01b0382166000908152600360205260408120805460019290611cec908490612147565b909155505060008181526002602052604080822080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b7fffffffff000000000000000000000000000000000000000000000000000000008116811461115357600080fd5b600060208284031215611da257600080fd5b81356104d981611d62565b60005b83811015611dc8578181015183820152602001611db0565b83811115610c395750506000910152565b60008151808452611df1816020860160208601611dad565b601f01601f19169290920160200192915050565b6020815260006104d96020830184611dd9565b600060208284031215611e2a57600080fd5b5035919050565b80356001600160a01b0381168114611e4857600080fd5b919050565b60008060408385031215611e6057600080fd5b611e6983611e31565b946020939093013593505050565b600080600060608486031215611e8c57600080fd5b611e9584611e31565b9250611ea360208501611e31565b9150604084013590509250925092565b600060208284031215611ec557600080fd5b6104d982611e31565b60008060408385031215611ee157600080fd5b611eea83611e31565b915060208301358015158114611eff57600080fd5b809150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008060008060808587031215611f4f57600080fd5b611f5885611e31565b9350611f6660208601611e31565b925060408501359150606085013567ffffffffffffffff80821115611f8a57600080fd5b818701915087601f830112611f9e57600080fd5b813581811115611fb057611fb0611f0a565b604051601f8201601f19908116603f01168101908382118183101715611fd857611fd8611f0a565b816040528281528a6020848701011115611ff157600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b6000806040838503121561202857600080fd5b61203183611e31565b915061203f60208401611e31565b90509250929050565b600181811c9082168061205c57607f821691505b602082108103612095577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600083516120dc818460208801611dad565b8351908301906120f0818360208801611dad565b01949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000816000190483118215151615612142576121426120f9565b500290565b6000821982111561215a5761215a6120f9565b500190565b60008161216e5761216e6120f9565b506000190190565b60006000198203612189576121896120f9565b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000826121ce576121ce612190565b500490565b6000828210156121e5576121e56120f9565b500390565b6000826121f9576121f9612190565b500690565b60006001600160a01b038087168352808616602084015250836040830152608060608301526122306080830184611dd9565b9695505050505050565b60006020828403121561224c57600080fd5b81516104d981611d62565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfea164736f6c634300080f000aa164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R4\x80\x15b\0\0\x11W`\0\x80\xFD[P`\x046\x10b\0\0\x87W`\x005`\xE0\x1C\x80c\xD28\"B\x11b\0\0bW\x80c\xD28\"B\x14b\0\x01OW\x80c\xD9}\xF6R\x14b\0\x01vW\x80c\xE7\x8C\xEA\x92\x14b\0\x01\xB3W\x80c\xEE\x9A1\xA2\x14b\0\x01\xDAW`\0\x80\xFD[\x80cT\xFDMP\x14b\0\0\x8CW\x80cUr\xAC\xAE\x14b\0\0\xE1W\x80c}\x1D\x0C[\x14b\0\x01\x18W[`\0\x80\xFD[b\0\0\xC9`@Q\x80`@\x01`@R\x80`\x05\x81R` \x01\x7F1.4.2\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\x81RP\x81V[`@Qb\0\0\xD8\x91\x90b\0\x04\x9BV[`@Q\x80\x91\x03\x90\xF3[b\0\x01\x07b\0\0\xF26`\x04b\0\x04\xE1V[`\0` \x81\x90R\x90\x81R`@\x90 T`\xFF\x16\x81V[`@Q\x90\x15\x15\x81R` \x01b\0\0\xD8V[b\0\x01@\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[`@Q\x90\x81R` \x01b\0\0\xD8V[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0b\0\x01@V[b\0\x01\x8Db\0\x01\x876`\x04b\0\x05\xE1V[b\0\x02\x02V[`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01b\0\0\xD8V[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0b\0\x01\x8DV[b\0\x01\x8D\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[`\0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x16b\0\x02\xD3W`@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\x82\x01R`D`$\x82\x01\x81\x90R\x7FOptimismMintableERC721Factory: L\x90\x82\x01R\x7F1 token address cannot be addres`d\x82\x01R\x7Fs(0)\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x84\x82\x01R`\xA4\x01`@Q\x80\x91\x03\x90\xFD[`\0\x84\x84\x84`@Q` \x01b\0\x02\xEC\x93\x92\x91\x90b\0\x06^V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 \x90P`\0\x81\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x88\x88\x88`@Qb\0\x03Z\x90b\0\x04\x1FV[b\0\x03j\x95\x94\x93\x92\x91\x90b\0\x06\xADV[\x81\x90`@Q\x80\x91\x03\x90`\0\xF5\x90P\x80\x15\x80\x15b\0\x03\x8BW=`\0\x80>=`\0\xFD[Ps\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x81\x16`\0\x81\x81R` \x81\x81R`@\x91\x82\x90 \x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x16`\x01\x17\x90U\x90Q3\x81R\x93\x94P\x91\x89\x16\x92\x90\x91\x7F\xE7'\x83\xBB\x8E\x0C\xA3\x12\x86\xB8Rx\xDAYhM\xD8\x14\xDF\x97b\xA5/\x087\xF8\x9E\xDD\x14\x83\xB2\x99\x91\x01`@Q\x80\x91\x03\x90\xA3\x95\x94PPPPPV[a,y\x80b\0\x07\x0F\x839\x01\x90V[`\0\x81Q\x80\x84R`\0[\x81\x81\x10\x15b\0\x04UW` \x81\x85\x01\x81\x01Q\x86\x83\x01\x82\x01R\x01b\0\x047V[\x81\x81\x11\x15b\0\x04hW`\0` \x83\x87\x01\x01R[P`\x1F\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x92\x90\x92\x01` \x01\x92\x91PPV[` \x81R`\0b\0\x04\xB0` \x83\x01\x84b\0\x04-V[\x93\x92PPPV[\x805s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14b\0\x04\xDCW`\0\x80\xFD[\x91\x90PV[`\0` \x82\x84\x03\x12\x15b\0\x04\xF4W`\0\x80\xFD[b\0\x04\xB0\x82b\0\x04\xB7V[\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[`\0\x82`\x1F\x83\x01\x12b\0\x05@W`\0\x80\xFD[\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15b\0\x05^Wb\0\x05^b\0\x04\xFFV[`@Q`\x1F\x83\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x90\x81\x16`?\x01\x16\x81\x01\x90\x82\x82\x11\x81\x83\x10\x17\x15b\0\x05\xA7Wb\0\x05\xA7b\0\x04\xFFV[\x81`@R\x83\x81R\x86` \x85\x88\x01\x01\x11\x15b\0\x05\xC1W`\0\x80\xFD[\x83` \x87\x01` \x83\x017`\0` \x85\x83\x01\x01R\x80\x94PPPPP\x92\x91PPV[`\0\x80`\0``\x84\x86\x03\x12\x15b\0\x05\xF7W`\0\x80\xFD[b\0\x06\x02\x84b\0\x04\xB7V[\x92P` \x84\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15b\0\x06 W`\0\x80\xFD[b\0\x06.\x87\x83\x88\x01b\0\x05.V[\x93P`@\x86\x015\x91P\x80\x82\x11\x15b\0\x06EW`\0\x80\xFD[Pb\0\x06T\x86\x82\x87\x01b\0\x05.V[\x91PP\x92P\x92P\x92V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x16\x81R``` \x82\x01R`\0b\0\x06\x8F``\x83\x01\x85b\0\x04-V[\x82\x81\x03`@\x84\x01Rb\0\x06\xA3\x81\x85b\0\x04-V[\x96\x95PPPPPPV[`\0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x88\x16\x83R\x86` \x84\x01R\x80\x86\x16`@\x84\x01RP`\xA0``\x83\x01Rb\0\x06\xEE`\xA0\x83\x01\x85b\0\x04-V[\x82\x81\x03`\x80\x84\x01Rb\0\x07\x02\x81\x85b\0\x04-V[\x98\x97PPPPPPPPV\xFE`\xE0`@R4\x80\x15b\0\0\x11W`\0\x80\xFD[P`@Qb\0,y8\x03\x80b\0,y\x839\x81\x01`@\x81\x90Rb\0\x004\x91b\0\x06-V[\x81\x81`\0b\0\0D\x83\x82b\0\x07VV[P`\x01b\0\0S\x82\x82b\0\x07VV[PPP`\x01`\x01`\xA0\x1B\x03\x85\x16b\0\0\xD8W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`3`$\x82\x01R\x7FOptimismMintableERC721: bridge c`D\x82\x01R\x7Fannot be address(0)\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01[`@Q\x80\x91\x03\x90\xFD[\x83`\0\x03b\0\x01PW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`6`$\x82\x01R\x7FOptimismMintableERC721: remote c`D\x82\x01R\x7Fhain id cannot be zero\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01b\0\0\xCFV[`\x01`\x01`\xA0\x1B\x03\x83\x16b\0\x01\xCEW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`9`$\x82\x01R\x7FOptimismMintableERC721: remote t`D\x82\x01R\x7Foken cannot be address(0)\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01b\0\0\xCFV[`\x80\x84\x90R`\x01`\x01`\xA0\x1B\x03\x83\x81\x16`\xA0\x81\x90R\x90\x86\x16`\xC0Rb\0\x02\x02\x90`\x14b\0\x02V` \x90\x81\x1Bb\0\r3\x17\x90\x1CV[b\0\x02\x18\x85b\0\x04\x16` \x1Bb\0\x0F\\\x17` \x1CV[`@Q` \x01b\0\x02+\x92\x91\x90b\0\x08\"V[`@Q` \x81\x83\x03\x03\x81R\x90`@R`\n\x90\x81b\0\x02J\x91\x90b\0\x07VV[PPPPPPb\0\t\x93V[```\0b\0\x02g\x83`\x02b\0\x08\xACV[b\0\x02t\x90`\x02b\0\x08\xCEV[`\x01`\x01`@\x1B\x03\x81\x11\x15b\0\x02\x8EWb\0\x02\x8Eb\0\x05SV[`@Q\x90\x80\x82R\x80`\x1F\x01`\x1F\x19\x16` \x01\x82\x01`@R\x80\x15b\0\x02\xB9W` \x82\x01\x81\x806\x837\x01\x90P[P\x90P`\x03`\xFC\x1B\x81`\0\x81Q\x81\x10b\0\x02\xD7Wb\0\x02\xD7b\0\x08\xE9V[` \x01\x01\x90`\x01`\x01`\xF8\x1B\x03\x19\x16\x90\x81`\0\x1A\x90SP`\x0F`\xFB\x1B\x81`\x01\x81Q\x81\x10b\0\x03\tWb\0\x03\tb\0\x08\xE9V[` \x01\x01\x90`\x01`\x01`\xF8\x1B\x03\x19\x16\x90\x81`\0\x1A\x90SP`\0b\0\x03/\x84`\x02b\0\x08\xACV[b\0\x03<\x90`\x01b\0\x08\xCEV[\x90P[`\x01\x81\x11\x15b\0\x03\xBEWo\x18\x18\x99\x19\x9A\x1A\x9B\x1B\x9C\x1C\xB0\xB11\xB22\xB3`\x81\x1B\x85`\x0F\x16`\x10\x81\x10b\0\x03tWb\0\x03tb\0\x08\xE9V[\x1A`\xF8\x1B\x82\x82\x81Q\x81\x10b\0\x03\x8DWb\0\x03\x8Db\0\x08\xE9V[` \x01\x01\x90`\x01`\x01`\xF8\x1B\x03\x19\x16\x90\x81`\0\x1A\x90SP`\x04\x94\x90\x94\x1C\x93b\0\x03\xB6\x81b\0\x08\xFFV[\x90Pb\0\x03?V[P\x83\x15b\0\x04\x0FW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01\x81\x90R`$\x82\x01R\x7FStrings: hex length insufficient`D\x82\x01R`d\x01b\0\0\xCFV[\x93\x92PPPV[``\x81`\0\x03b\0\x04>WPP`@\x80Q\x80\x82\x01\x90\x91R`\x01\x81R`\x03`\xFC\x1B` \x82\x01R\x90V[\x81`\0[\x81\x15b\0\x04nW\x80b\0\x04U\x81b\0\t\x19V[\x91Pb\0\x04f\x90P`\n\x83b\0\tKV[\x91Pb\0\x04BV[`\0\x81`\x01`\x01`@\x1B\x03\x81\x11\x15b\0\x04\x8BWb\0\x04\x8Bb\0\x05SV[`@Q\x90\x80\x82R\x80`\x1F\x01`\x1F\x19\x16` \x01\x82\x01`@R\x80\x15b\0\x04\xB6W` \x82\x01\x81\x806\x837\x01\x90P[P\x90P[\x84\x15b\0\x05.Wb\0\x04\xCE`\x01\x83b\0\tbV[\x91Pb\0\x04\xDD`\n\x86b\0\t|V[b\0\x04\xEA\x90`0b\0\x08\xCEV[`\xF8\x1B\x81\x83\x81Q\x81\x10b\0\x05\x02Wb\0\x05\x02b\0\x08\xE9V[` \x01\x01\x90`\x01`\x01`\xF8\x1B\x03\x19\x16\x90\x81`\0\x1A\x90SPb\0\x05&`\n\x86b\0\tKV[\x94Pb\0\x04\xBAV[\x94\x93PPPPV[\x80Q`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14b\0\x05NW`\0\x80\xFD[\x91\x90PV[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[`\0[\x83\x81\x10\x15b\0\x05\x86W\x81\x81\x01Q\x83\x82\x01R` \x01b\0\x05lV[\x83\x81\x11\x15b\0\x05\x96W`\0\x84\x84\x01R[PPPPV[`\0\x82`\x1F\x83\x01\x12b\0\x05\xAEW`\0\x80\xFD[\x81Q`\x01`\x01`@\x1B\x03\x80\x82\x11\x15b\0\x05\xCBWb\0\x05\xCBb\0\x05SV[`@Q`\x1F\x83\x01`\x1F\x19\x90\x81\x16`?\x01\x16\x81\x01\x90\x82\x82\x11\x81\x83\x10\x17\x15b\0\x05\xF6Wb\0\x05\xF6b\0\x05SV[\x81`@R\x83\x81R\x86` \x85\x88\x01\x01\x11\x15b\0\x06\x10W`\0\x80\xFD[b\0\x06#\x84` \x83\x01` \x89\x01b\0\x05iV[\x96\x95PPPPPPV[`\0\x80`\0\x80`\0`\xA0\x86\x88\x03\x12\x15b\0\x06FW`\0\x80\xFD[b\0\x06Q\x86b\0\x056V[\x94P` \x86\x01Q\x93Pb\0\x06h`@\x87\x01b\0\x056V[``\x87\x01Q\x90\x93P`\x01`\x01`@\x1B\x03\x80\x82\x11\x15b\0\x06\x86W`\0\x80\xFD[b\0\x06\x94\x89\x83\x8A\x01b\0\x05\x9CV[\x93P`\x80\x88\x01Q\x91P\x80\x82\x11\x15b\0\x06\xABW`\0\x80\xFD[Pb\0\x06\xBA\x88\x82\x89\x01b\0\x05\x9CV[\x91PP\x92\x95P\x92\x95\x90\x93PV[`\x01\x81\x81\x1C\x90\x82\x16\x80b\0\x06\xDCW`\x7F\x82\x16\x91P[` \x82\x10\x81\x03b\0\x06\xFDWcNH{q`\xE0\x1B`\0R`\"`\x04R`$`\0\xFD[P\x91\x90PV[`\x1F\x82\x11\x15b\0\x07QW`\0\x81\x81R` \x81 `\x1F\x85\x01`\x05\x1C\x81\x01` \x86\x10\x15b\0\x07,WP\x80[`\x1F\x85\x01`\x05\x1C\x82\x01\x91P[\x81\x81\x10\x15b\0\x07MW\x82\x81U`\x01\x01b\0\x078V[PPP[PPPV[\x81Q`\x01`\x01`@\x1B\x03\x81\x11\x15b\0\x07rWb\0\x07rb\0\x05SV[b\0\x07\x8A\x81b\0\x07\x83\x84Tb\0\x06\xC7V[\x84b\0\x07\x03V[` \x80`\x1F\x83\x11`\x01\x81\x14b\0\x07\xC2W`\0\x84\x15b\0\x07\xA9WP\x85\x83\x01Q[`\0\x19`\x03\x86\x90\x1B\x1C\x19\x16`\x01\x85\x90\x1B\x17\x85Ub\0\x07MV[`\0\x85\x81R` \x81 `\x1F\x19\x86\x16\x91[\x82\x81\x10\x15b\0\x07\xF3W\x88\x86\x01Q\x82U\x94\x84\x01\x94`\x01\x90\x91\x01\x90\x84\x01b\0\x07\xD2V[P\x85\x82\x10\x15b\0\x08\x12W\x87\x85\x01Q`\0\x19`\x03\x88\x90\x1B`\xF8\x16\x1C\x19\x16\x81U[PPPPP`\x01\x90\x81\x1B\x01\x90UPV[h2\xBA42\xB92\xBA\xB6\x9D`\xB9\x1B\x81R`\0\x83Qb\0\x08H\x81`\t\x85\x01` \x88\x01b\0\x05iV[`\x01`\xFE\x1B`\t\x91\x84\x01\x91\x82\x01R\x83Qb\0\x08k\x81`\n\x84\x01` \x88\x01b\0\x05iV[q/tokenURI?uint256=`p\x1B`\n\x92\x90\x91\x01\x91\x82\x01R`\x1C\x01\x94\x93PPPPV[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[`\0\x81`\0\x19\x04\x83\x11\x82\x15\x15\x16\x15b\0\x08\xC9Wb\0\x08\xC9b\0\x08\x96V[P\x02\x90V[`\0\x82\x19\x82\x11\x15b\0\x08\xE4Wb\0\x08\xE4b\0\x08\x96V[P\x01\x90V[cNH{q`\xE0\x1B`\0R`2`\x04R`$`\0\xFD[`\0\x81b\0\t\x11Wb\0\t\x11b\0\x08\x96V[P`\0\x19\x01\x90V[`\0`\x01\x82\x01b\0\t.Wb\0\t.b\0\x08\x96V[P`\x01\x01\x90V[cNH{q`\xE0\x1B`\0R`\x12`\x04R`$`\0\xFD[`\0\x82b\0\t]Wb\0\t]b\0\t5V[P\x04\x90V[`\0\x82\x82\x10\x15b\0\twWb\0\twb\0\x08\x96V[P\x03\x90V[`\0\x82b\0\t\x8EWb\0\t\x8Eb\0\t5V[P\x06\x90V[`\x80Q`\xA0Q`\xC0Qa\"\x93b\0\t\xE6`\09`\0\x81\x81a\x03\xD5\x01R\x81\x81a\x04`\x01R\x81\x81a\t\xDC\x01Ra\n\xCA\x01R`\0\x81\x81a\x01\xE0\x01Ra\x03\xAF\x01R`\0\x81\x81a\x03\x1C\x01Ra\x03\xFB\x01Ra\"\x93`\0\xF3\xFE`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`\x046\x10a\x01\xAEW`\x005`\xE0\x1C\x80c}\x1D\x0C[\x11a\0\xEEW\x80c\xC8{V\xDD\x11a\0\x97W\x80c\xE7\x8C\xEA\x92\x11a\0qW\x80c\xE7\x8C\xEA\x92\x14a\x03\xD3W\x80c\xE9Q\x81\x96\x14a\x03\xF9W\x80c\xE9\x85\xE9\xC5\x14a\x04\x1FW\x80c\xEE\x9A1\xA2\x14a\x04[W`\0\x80\xFD[\x80c\xC8{V\xDD\x14a\x03\x92W\x80c\xD5G\xCF\xB7\x14a\x03\xA5W\x80c\xD6\xC0\xB2\xC4\x14a\x03\xADW`\0\x80\xFD[\x80c\xA1D\x81\x94\x11a\0\xC8W\x80c\xA1D\x81\x94\x14a\x03YW\x80c\xA2,\xB4e\x14a\x03lW\x80c\xB8\x8DO\xDE\x14a\x03\x7FW`\0\x80\xFD[\x80c}\x1D\x0C[\x14a\x03\x17W\x80c\x95\xD8\x9BA\x14a\x03>W\x80c\x9D\xC2\x9F\xAC\x14a\x03FW`\0\x80\xFD[\x80c#\xB8r\xDD\x11a\x01[W\x80cOl\xCC\xE7\x11a\x015W\x80cOl\xCC\xE7\x14a\x02\xA2W\x80cT\xFDMP\x14a\x02\xB5W\x80ccR!\x1E\x14a\x02\xF1W\x80cp\xA0\x821\x14a\x03\x04W`\0\x80\xFD[\x80c#\xB8r\xDD\x14a\x02iW\x80c/t\\Y\x14a\x02|W\x80cB\x84.\x0E\x14a\x02\x8FW`\0\x80\xFD[\x80c\x08\x18\x12\xFC\x11a\x01\x8CW\x80c\x08\x18\x12\xFC\x14a\x02/W\x80c\t^\xA7\xB3\x14a\x02BW\x80c\x18\x16\r\xDD\x14a\x02WW`\0\x80\xFD[\x80c\x01\xFF\xC9\xA7\x14a\x01\xB3W\x80c\x039d\xBE\x14a\x01\xDBW\x80c\x06\xFD\xDE\x03\x14a\x02\x1AW[`\0\x80\xFD[a\x01\xC6a\x01\xC16`\x04a\x1D\x90V[a\x04\x82V[`@Q\x90\x15\x15\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[a\x02\x02\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x01a\x01\xD2V[a\x02\"a\x04\xE0V[`@Qa\x01\xD2\x91\x90a\x1E\x05V[a\x02\x02a\x02=6`\x04a\x1E\x18V[a\x05rV[a\x02Ua\x02P6`\x04a\x1EMV[a\x05\x99V[\0[`\x08T[`@Q\x90\x81R` \x01a\x01\xD2V[a\x02Ua\x02w6`\x04a\x1EwV[a\x06\xCFV[a\x02[a\x02\x8A6`\x04a\x1EMV[a\x07VV[a\x02Ua\x02\x9D6`\x04a\x1EwV[a\x07\xFEV[a\x02[a\x02\xB06`\x04a\x1E\x18V[a\x08\x19V[a\x02\"`@Q\x80`@\x01`@R\x80`\x05\x81R` \x01\x7F1.3.2\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\x81RP\x81V[a\x02\x02a\x02\xFF6`\x04a\x1E\x18V[a\x08\xBDV[a\x02[a\x03\x126`\x04a\x1E\xB3V[a\t(V[a\x02[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[a\x02\"a\t\xC2V[a\x02Ua\x03T6`\x04a\x1EMV[a\t\xD1V[a\x02Ua\x03g6`\x04a\x1EMV[a\n\xBFV[a\x02Ua\x03z6`\x04a\x1E\xCEV[a\x0B\xA2V[a\x02Ua\x03\x8D6`\x04a\x1F9V[a\x0B\xB1V[a\x02\"a\x03\xA06`\x04a\x1E\x18V[a\x0C?V[a\x02\"a\x0C\xA5V[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x02\x02V[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x02\x02V[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x02[V[a\x01\xC6a\x04-6`\x04a \x15V[`\x01`\x01`\xA0\x1B\x03\x91\x82\x16`\0\x90\x81R`\x05` \x90\x81R`@\x80\x83 \x93\x90\x94\x16\x82R\x91\x90\x91R T`\xFF\x16\x90V[a\x02\x02\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[`\0\x7F\xAE\xCA\xFC#\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\x7F\xFF\xFF\xFF\xFF\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\x83\x16\x81\x14\x80a\x04\xD9WPa\x04\xD9\x83a\x10\x99V[\x93\x92PPPV[```\0\x80Ta\x04\xEF\x90a HV[\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x92\x91\x90\x81\x81R` \x01\x82\x80Ta\x05\x1B\x90a HV[\x80\x15a\x05hW\x80`\x1F\x10a\x05=Wa\x01\0\x80\x83T\x04\x02\x83R\x91` \x01\x91a\x05hV[\x82\x01\x91\x90`\0R` `\0 \x90[\x81T\x81R\x90`\x01\x01\x90` \x01\x80\x83\x11a\x05KW\x82\x90\x03`\x1F\x16\x82\x01\x91[PPPPP\x90P\x90V[`\0a\x05}\x82a\x10\xEFV[P`\0\x90\x81R`\x04` R`@\x90 T`\x01`\x01`\xA0\x1B\x03\x16\x90V[`\0a\x05\xA4\x82a\x08\xBDV[\x90P\x80`\x01`\x01`\xA0\x1B\x03\x16\x83`\x01`\x01`\xA0\x1B\x03\x16\x03a\x062W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`!`$\x82\x01R\x7FERC721: approval to current owne`D\x82\x01R\x7Fr\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01[`@Q\x80\x91\x03\x90\xFD[3`\x01`\x01`\xA0\x1B\x03\x82\x16\x14\x80a\x06NWPa\x06N\x813a\x04-V[a\x06\xC0W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`>`$\x82\x01R\x7FERC721: approve caller is not to`D\x82\x01R\x7Fken owner nor approved for all\0\0`d\x82\x01R`\x84\x01a\x06)V[a\x06\xCA\x83\x83a\x11VV[PPPV[a\x06\xD93\x82a\x11\xDCV[a\x07KW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`.`$\x82\x01R\x7FERC721: caller is not token owne`D\x82\x01R\x7Fr nor approved\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x06)V[a\x06\xCA\x83\x83\x83a\x12ZV[`\0a\x07a\x83a\t(V[\x82\x10a\x07\xD5W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FERC721Enumerable: owner index ou`D\x82\x01R\x7Ft of bounds\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x06)V[P`\x01`\x01`\xA0\x1B\x03\x91\x90\x91\x16`\0\x90\x81R`\x06` \x90\x81R`@\x80\x83 \x93\x83R\x92\x90R T\x90V[a\x06\xCA\x83\x83\x83`@Q\x80` \x01`@R\x80`\0\x81RPa\x0B\xB1V[`\0a\x08$`\x08T\x90V[\x82\x10a\x08\x98W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`,`$\x82\x01R\x7FERC721Enumerable: global index o`D\x82\x01R\x7Fut of bounds\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x06)V[`\x08\x82\x81T\x81\x10a\x08\xABWa\x08\xABa \x9BV[\x90`\0R` `\0 \x01T\x90P\x91\x90PV[`\0\x81\x81R`\x02` R`@\x81 T`\x01`\x01`\xA0\x1B\x03\x16\x80a\t\"W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x18`$\x82\x01R\x7FERC721: invalid token ID\0\0\0\0\0\0\0\0`D\x82\x01R`d\x01a\x06)V[\x92\x91PPV[`\0`\x01`\x01`\xA0\x1B\x03\x82\x16a\t\xA6W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`)`$\x82\x01R\x7FERC721: address zero is not a va`D\x82\x01R\x7Flid owner\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x06)V[P`\x01`\x01`\xA0\x1B\x03\x16`\0\x90\x81R`\x03` R`@\x90 T\x90V[```\x01\x80Ta\x04\xEF\x90a HV[3`\x01`\x01`\xA0\x1B\x03\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x14a\noW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`:`$\x82\x01R\x7FOptimismMintableERC721: only bri`D\x82\x01R\x7Fdge can call this function\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x06)V[a\nx\x81a\x14JV[\x81`\x01`\x01`\xA0\x1B\x03\x16\x7F\xCC\x16\xF5\xDB\xB4\x872\x80\x81\\\x1E\xE0\x9D\xBD\x06sl\xFF\xCC\x18D\x12\xCFzq\xA0\xFD\xB7]9|\xA5\x82`@Qa\n\xB3\x91\x81R` \x01\x90V[`@Q\x80\x91\x03\x90\xA2PPV[3`\x01`\x01`\xA0\x1B\x03\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x14a\x0B]W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`:`$\x82\x01R\x7FOptimismMintableERC721: only bri`D\x82\x01R\x7Fdge can call this function\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x06)V[a\x0Bg\x82\x82a\x15\tV[\x81`\x01`\x01`\xA0\x1B\x03\x16\x7F\x0Fg\x98\xA5`y:T\xC3\xBC\xFE\x86\xA9<\xDE\x1Es\x08}\x94L\x0E\xA2\x05D\x13}A!9h\x85\x82`@Qa\n\xB3\x91\x81R` \x01\x90V[a\x0B\xAD3\x83\x83a\x15#V[PPV[a\x0B\xBB3\x83a\x11\xDCV[a\x0C-W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`.`$\x82\x01R\x7FERC721: caller is not token owne`D\x82\x01R\x7Fr nor approved\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x06)V[a\x0C9\x84\x84\x84\x84a\x16\x0FV[PPPPV[``a\x0CJ\x82a\x10\xEFV[`\0a\x0CTa\x16\x98V[\x90P`\0\x81Q\x11a\x0CtW`@Q\x80` \x01`@R\x80`\0\x81RPa\x04\xD9V[\x80a\x0C~\x84a\x0F\\V[`@Q` \x01a\x0C\x8F\x92\x91\x90a \xCAV[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x93\x92PPPV[`\n\x80Ta\x0C\xB2\x90a HV[\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x92\x91\x90\x81\x81R` \x01\x82\x80Ta\x0C\xDE\x90a HV[\x80\x15a\r+W\x80`\x1F\x10a\r\0Wa\x01\0\x80\x83T\x04\x02\x83R\x91` \x01\x91a\r+V[\x82\x01\x91\x90`\0R` `\0 \x90[\x81T\x81R\x90`\x01\x01\x90` \x01\x80\x83\x11a\r\x0EW\x82\x90\x03`\x1F\x16\x82\x01\x91[PPPPP\x81V[```\0a\rB\x83`\x02a!(V[a\rM\x90`\x02a!GV[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\reWa\rea\x1F\nV[`@Q\x90\x80\x82R\x80`\x1F\x01`\x1F\x19\x16` \x01\x82\x01`@R\x80\x15a\r\x8FW` \x82\x01\x81\x806\x837\x01\x90P[P\x90P\x7F0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81`\0\x81Q\x81\x10a\r\xC6Wa\r\xC6a \x9BV[` \x01\x01\x90~\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x19\x16\x90\x81`\0\x1A\x90SP\x7Fx\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81`\x01\x81Q\x81\x10a\x0E)Wa\x0E)a \x9BV[` \x01\x01\x90~\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x19\x16\x90\x81`\0\x1A\x90SP`\0a\x0Ee\x84`\x02a!(V[a\x0Ep\x90`\x01a!GV[\x90P[`\x01\x81\x11\x15a\x0F\rW\x7F0123456789abcdef\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x85`\x0F\x16`\x10\x81\x10a\x0E\xB1Wa\x0E\xB1a \x9BV[\x1A`\xF8\x1B\x82\x82\x81Q\x81\x10a\x0E\xC7Wa\x0E\xC7a \x9BV[` \x01\x01\x90~\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x19\x16\x90\x81`\0\x1A\x90SP`\x04\x94\x90\x94\x1C\x93a\x0F\x06\x81a!_V[\x90Pa\x0EsV[P\x83\x15a\x04\xD9W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01\x81\x90R`$\x82\x01R\x7FStrings: hex length insufficient`D\x82\x01R`d\x01a\x06)V[``\x81`\0\x03a\x0F\x9FWPP`@\x80Q\x80\x82\x01\x90\x91R`\x01\x81R\x7F0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0` \x82\x01R\x90V[\x81`\0[\x81\x15a\x0F\xC9W\x80a\x0F\xB3\x81a!vV[\x91Pa\x0F\xC2\x90P`\n\x83a!\xBFV[\x91Pa\x0F\xA3V[`\0\x81g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x0F\xE4Wa\x0F\xE4a\x1F\nV[`@Q\x90\x80\x82R\x80`\x1F\x01`\x1F\x19\x16` \x01\x82\x01`@R\x80\x15a\x10\x0EW` \x82\x01\x81\x806\x837\x01\x90P[P\x90P[\x84\x15a\x10\x91Wa\x10#`\x01\x83a!\xD3V[\x91Pa\x100`\n\x86a!\xEAV[a\x10;\x90`0a!GV[`\xF8\x1B\x81\x83\x81Q\x81\x10a\x10PWa\x10Pa \x9BV[` \x01\x01\x90~\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x19\x16\x90\x81`\0\x1A\x90SPa\x10\x8A`\n\x86a!\xBFV[\x94Pa\x10\x12V[\x94\x93PPPPV[`\0\x7F\xFF\xFF\xFF\xFF\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\x82\x16\x7Fx\x0E\x9Dc\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\x14\x80a\t\"WPa\t\"\x82a\x16\xA7V[`\0\x81\x81R`\x02` R`@\x90 T`\x01`\x01`\xA0\x1B\x03\x16a\x11SW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x18`$\x82\x01R\x7FERC721: invalid token ID\0\0\0\0\0\0\0\0`D\x82\x01R`d\x01a\x06)V[PV[`\0\x81\x81R`\x04` R`@\x90 \x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16`\x01`\x01`\xA0\x1B\x03\x84\x16\x90\x81\x17\x90\x91U\x81\x90a\x11\xA3\x82a\x08\xBDV[`\x01`\x01`\xA0\x1B\x03\x16\x7F\x8C[\xE1\xE5\xEB\xEC}[\xD1OqB}\x1E\x84\xF3\xDD\x03\x14\xC0\xF7\xB2)\x1E[ \n\xC8\xC7\xC3\xB9%`@Q`@Q\x80\x91\x03\x90\xA4PPV[`\0\x80a\x11\xE8\x83a\x08\xBDV[\x90P\x80`\x01`\x01`\xA0\x1B\x03\x16\x84`\x01`\x01`\xA0\x1B\x03\x16\x14\x80a\x12/WP`\x01`\x01`\xA0\x1B\x03\x80\x82\x16`\0\x90\x81R`\x05` \x90\x81R`@\x80\x83 \x93\x88\x16\x83R\x92\x90R T`\xFF\x16[\x80a\x10\x91WP\x83`\x01`\x01`\xA0\x1B\x03\x16a\x12H\x84a\x05rV[`\x01`\x01`\xA0\x1B\x03\x16\x14\x94\x93PPPPV[\x82`\x01`\x01`\xA0\x1B\x03\x16a\x12m\x82a\x08\xBDV[`\x01`\x01`\xA0\x1B\x03\x16\x14a\x12\xE9W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`%`$\x82\x01R\x7FERC721: transfer from incorrect `D\x82\x01R\x7Fowner\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`d\x82\x01R`\x84\x01a\x06)V[`\x01`\x01`\xA0\x1B\x03\x82\x16a\x13dW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`$\x80\x82\x01R\x7FERC721: transfer to the zero add`D\x82\x01R\x7Fress\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`d\x82\x01R`\x84\x01a\x06)V[a\x13o\x83\x83\x83a\x17\x8AV[a\x13z`\0\x82a\x11VV[`\x01`\x01`\xA0\x1B\x03\x83\x16`\0\x90\x81R`\x03` R`@\x81 \x80T`\x01\x92\x90a\x13\xA3\x90\x84\x90a!\xD3V[\x90\x91UPP`\x01`\x01`\xA0\x1B\x03\x82\x16`\0\x90\x81R`\x03` R`@\x81 \x80T`\x01\x92\x90a\x13\xD1\x90\x84\x90a!GV[\x90\x91UPP`\0\x81\x81R`\x02` R`@\x80\x82 \x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16`\x01`\x01`\xA0\x1B\x03\x86\x81\x16\x91\x82\x17\x90\x92U\x91Q\x84\x93\x91\x87\x16\x91\x7F\xDD\xF2R\xAD\x1B\xE2\xC8\x9Bi\xC2\xB0h\xFC7\x8D\xAA\x95+\xA7\xF1c\xC4\xA1\x16(\xF5ZM\xF5#\xB3\xEF\x91\xA4PPPV[`\0a\x14U\x82a\x08\xBDV[\x90Pa\x14c\x81`\0\x84a\x17\x8AV[a\x14n`\0\x83a\x11VV[`\x01`\x01`\xA0\x1B\x03\x81\x16`\0\x90\x81R`\x03` R`@\x81 \x80T`\x01\x92\x90a\x14\x97\x90\x84\x90a!\xD3V[\x90\x91UPP`\0\x82\x81R`\x02` R`@\x80\x82 \x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x90UQ\x83\x91\x90`\x01`\x01`\xA0\x1B\x03\x84\x16\x90\x7F\xDD\xF2R\xAD\x1B\xE2\xC8\x9Bi\xC2\xB0h\xFC7\x8D\xAA\x95+\xA7\xF1c\xC4\xA1\x16(\xF5ZM\xF5#\xB3\xEF\x90\x83\x90\xA4PPV[a\x0B\xAD\x82\x82`@Q\x80` \x01`@R\x80`\0\x81RPa\x18BV[\x81`\x01`\x01`\xA0\x1B\x03\x16\x83`\x01`\x01`\xA0\x1B\x03\x16\x03a\x15\x84W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x19`$\x82\x01R\x7FERC721: approve to caller\0\0\0\0\0\0\0`D\x82\x01R`d\x01a\x06)V[`\x01`\x01`\xA0\x1B\x03\x83\x81\x16`\0\x81\x81R`\x05` \x90\x81R`@\x80\x83 \x94\x87\x16\x80\x84R\x94\x82R\x91\x82\x90 \x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x16\x86\x15\x15\x90\x81\x17\x90\x91U\x91Q\x91\x82R\x7F\x170~\xAB9\xABa\x07\xE8\x89\x98E\xAD=Y\xBD\x96S\xF2\0\xF2 \x92\x04\x89\xCA+Y7il1\x91\x01`@Q\x80\x91\x03\x90\xA3PPPV[a\x16\x1A\x84\x84\x84a\x12ZV[a\x16&\x84\x84\x84\x84a\x18\xCBV[a\x0C9W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`2`$\x82\x01R\x7FERC721: transfer to non ERC721Re`D\x82\x01R\x7Fceiver implementer\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x06)V[```\n\x80Ta\x04\xEF\x90a HV[`\0\x7F\xFF\xFF\xFF\xFF\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\x82\x16\x7F\x80\xACX\xCD\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\x14\x80a\x17:WP\x7F\xFF\xFF\xFF\xFF\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\x82\x16\x7F[^\x13\x9F\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\x14[\x80a\t\"WP\x7F\x01\xFF\xC9\xA7\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\x7F\xFF\xFF\xFF\xFF\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\x83\x16\x14a\t\"V[`\x01`\x01`\xA0\x1B\x03\x83\x16a\x17\xE5Wa\x17\xE0\x81`\x08\x80T`\0\x83\x81R`\t` R`@\x81 \x82\x90U`\x01\x82\x01\x83U\x91\x90\x91R\x7F\xF3\xF7\xA9\xFE6O\xAA\xB9;!m\xA5\n2\x14\x15O\"\xA0\xA2\xB4\x15\xB2:\x84\xC8\x16\x9E\x8Bcn\xE3\x01UV[a\x18\x08V[\x81`\x01`\x01`\xA0\x1B\x03\x16\x83`\x01`\x01`\xA0\x1B\x03\x16\x14a\x18\x08Wa\x18\x08\x83\x82a\x1AlV[`\x01`\x01`\xA0\x1B\x03\x82\x16a\x18\x1FWa\x06\xCA\x81a\x1B\tV[\x82`\x01`\x01`\xA0\x1B\x03\x16\x82`\x01`\x01`\xA0\x1B\x03\x16\x14a\x06\xCAWa\x06\xCA\x82\x82a\x1B\xB8V[a\x18L\x83\x83a\x1B\xFCV[a\x18Y`\0\x84\x84\x84a\x18\xCBV[a\x06\xCAW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`2`$\x82\x01R\x7FERC721: transfer to non ERC721Re`D\x82\x01R\x7Fceiver implementer\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x06)V[`\0`\x01`\x01`\xA0\x1B\x03\x84\x16;\x15a\x1AaW`@Q\x7F\x15\x0Bz\x02\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`\x01`\x01`\xA0\x1B\x03\x85\x16\x90c\x15\x0Bz\x02\x90a\x19(\x903\x90\x89\x90\x88\x90\x88\x90`\x04\x01a!\xFEV[` `@Q\x80\x83\x03\x81`\0\x87Z\xF1\x92PPP\x80\x15a\x19cWP`@\x80Q`\x1F=\x90\x81\x01`\x1F\x19\x16\x82\x01\x90\x92Ra\x19`\x91\x81\x01\x90a\":V[`\x01[a\x1A\x16W=\x80\x80\x15a\x19\x91W`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=`\0` \x84\x01>a\x19\x96V[``\x91P[P\x80Q`\0\x03a\x1A\x0EW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`2`$\x82\x01R\x7FERC721: transfer to non ERC721Re`D\x82\x01R\x7Fceiver implementer\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x06)V[\x80Q\x81` \x01\xFD[\x7F\xFF\xFF\xFF\xFF\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\x16\x7F\x15\x0Bz\x02\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\x14\x90Pa\x10\x91V[P`\x01\x94\x93PPPPV[`\0`\x01a\x1Ay\x84a\t(V[a\x1A\x83\x91\x90a!\xD3V[`\0\x83\x81R`\x07` R`@\x90 T\x90\x91P\x80\x82\x14a\x1A\xD6W`\x01`\x01`\xA0\x1B\x03\x84\x16`\0\x90\x81R`\x06` \x90\x81R`@\x80\x83 \x85\x84R\x82R\x80\x83 T\x84\x84R\x81\x84 \x81\x90U\x83R`\x07\x90\x91R\x90 \x81\x90U[P`\0\x91\x82R`\x07` \x90\x81R`@\x80\x84 \x84\x90U`\x01`\x01`\xA0\x1B\x03\x90\x94\x16\x83R`\x06\x81R\x83\x83 \x91\x83RR\x90\x81 UV[`\x08T`\0\x90a\x1B\x1B\x90`\x01\x90a!\xD3V[`\0\x83\x81R`\t` R`@\x81 T`\x08\x80T\x93\x94P\x90\x92\x84\x90\x81\x10a\x1BCWa\x1BCa \x9BV[\x90`\0R` `\0 \x01T\x90P\x80`\x08\x83\x81T\x81\x10a\x1BdWa\x1Bda \x9BV[`\0\x91\x82R` \x80\x83 \x90\x91\x01\x92\x90\x92U\x82\x81R`\t\x90\x91R`@\x80\x82 \x84\x90U\x85\x82R\x81 U`\x08\x80T\x80a\x1B\x9CWa\x1B\x9Ca\"WV[`\x01\x90\x03\x81\x81\x90`\0R` `\0 \x01`\0\x90U\x90UPPPPV[`\0a\x1B\xC3\x83a\t(V[`\x01`\x01`\xA0\x1B\x03\x90\x93\x16`\0\x90\x81R`\x06` \x90\x81R`@\x80\x83 \x86\x84R\x82R\x80\x83 \x85\x90U\x93\x82R`\x07\x90R\x91\x90\x91 \x91\x90\x91UPV[`\x01`\x01`\xA0\x1B\x03\x82\x16a\x1CRW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01\x81\x90R`$\x82\x01R\x7FERC721: mint to the zero address`D\x82\x01R`d\x01a\x06)V[`\0\x81\x81R`\x02` R`@\x90 T`\x01`\x01`\xA0\x1B\x03\x16\x15a\x1C\xB7W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1C`$\x82\x01R\x7FERC721: token already minted\0\0\0\0`D\x82\x01R`d\x01a\x06)V[a\x1C\xC3`\0\x83\x83a\x17\x8AV[`\x01`\x01`\xA0\x1B\x03\x82\x16`\0\x90\x81R`\x03` R`@\x81 \x80T`\x01\x92\x90a\x1C\xEC\x90\x84\x90a!GV[\x90\x91UPP`\0\x81\x81R`\x02` R`@\x80\x82 \x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16`\x01`\x01`\xA0\x1B\x03\x86\x16\x90\x81\x17\x90\x91U\x90Q\x83\x92\x90\x7F\xDD\xF2R\xAD\x1B\xE2\xC8\x9Bi\xC2\xB0h\xFC7\x8D\xAA\x95+\xA7\xF1c\xC4\xA1\x16(\xF5ZM\xF5#\xB3\xEF\x90\x82\x90\xA4PPV[\x7F\xFF\xFF\xFF\xFF\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\x81\x16\x81\x14a\x11SW`\0\x80\xFD[`\0` \x82\x84\x03\x12\x15a\x1D\xA2W`\0\x80\xFD[\x815a\x04\xD9\x81a\x1DbV[`\0[\x83\x81\x10\x15a\x1D\xC8W\x81\x81\x01Q\x83\x82\x01R` \x01a\x1D\xB0V[\x83\x81\x11\x15a\x0C9WPP`\0\x91\x01RV[`\0\x81Q\x80\x84Ra\x1D\xF1\x81` \x86\x01` \x86\x01a\x1D\xADV[`\x1F\x01`\x1F\x19\x16\x92\x90\x92\x01` \x01\x92\x91PPV[` \x81R`\0a\x04\xD9` \x83\x01\x84a\x1D\xD9V[`\0` \x82\x84\x03\x12\x15a\x1E*W`\0\x80\xFD[P5\x91\x90PV[\x805`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a\x1EHW`\0\x80\xFD[\x91\x90PV[`\0\x80`@\x83\x85\x03\x12\x15a\x1E`W`\0\x80\xFD[a\x1Ei\x83a\x1E1V[\x94` \x93\x90\x93\x015\x93PPPV[`\0\x80`\0``\x84\x86\x03\x12\x15a\x1E\x8CW`\0\x80\xFD[a\x1E\x95\x84a\x1E1V[\x92Pa\x1E\xA3` \x85\x01a\x1E1V[\x91P`@\x84\x015\x90P\x92P\x92P\x92V[`\0` \x82\x84\x03\x12\x15a\x1E\xC5W`\0\x80\xFD[a\x04\xD9\x82a\x1E1V[`\0\x80`@\x83\x85\x03\x12\x15a\x1E\xE1W`\0\x80\xFD[a\x1E\xEA\x83a\x1E1V[\x91P` \x83\x015\x80\x15\x15\x81\x14a\x1E\xFFW`\0\x80\xFD[\x80\x91PP\x92P\x92\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[`\0\x80`\0\x80`\x80\x85\x87\x03\x12\x15a\x1FOW`\0\x80\xFD[a\x1FX\x85a\x1E1V[\x93Pa\x1Ff` \x86\x01a\x1E1V[\x92P`@\x85\x015\x91P``\x85\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x1F\x8AW`\0\x80\xFD[\x81\x87\x01\x91P\x87`\x1F\x83\x01\x12a\x1F\x9EW`\0\x80\xFD[\x815\x81\x81\x11\x15a\x1F\xB0Wa\x1F\xB0a\x1F\nV[`@Q`\x1F\x82\x01`\x1F\x19\x90\x81\x16`?\x01\x16\x81\x01\x90\x83\x82\x11\x81\x83\x10\x17\x15a\x1F\xD8Wa\x1F\xD8a\x1F\nV[\x81`@R\x82\x81R\x8A` \x84\x87\x01\x01\x11\x15a\x1F\xF1W`\0\x80\xFD[\x82` \x86\x01` \x83\x017`\0` \x84\x83\x01\x01R\x80\x95PPPPPP\x92\x95\x91\x94P\x92PV[`\0\x80`@\x83\x85\x03\x12\x15a (W`\0\x80\xFD[a 1\x83a\x1E1V[\x91Pa ?` \x84\x01a\x1E1V[\x90P\x92P\x92\x90PV[`\x01\x81\x81\x1C\x90\x82\x16\x80a \\W`\x7F\x82\x16\x91P[` \x82\x10\x81\x03a \x95W\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`\"`\x04R`$`\0\xFD[P\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`2`\x04R`$`\0\xFD[`\0\x83Qa \xDC\x81\x84` \x88\x01a\x1D\xADV[\x83Q\x90\x83\x01\x90a \xF0\x81\x83` \x88\x01a\x1D\xADV[\x01\x94\x93PPPPV[\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`\x11`\x04R`$`\0\xFD[`\0\x81`\0\x19\x04\x83\x11\x82\x15\x15\x16\x15a!BWa!Ba \xF9V[P\x02\x90V[`\0\x82\x19\x82\x11\x15a!ZWa!Za \xF9V[P\x01\x90V[`\0\x81a!nWa!na \xF9V[P`\0\x19\x01\x90V[`\0`\0\x19\x82\x03a!\x89Wa!\x89a \xF9V[P`\x01\x01\x90V[\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`\x12`\x04R`$`\0\xFD[`\0\x82a!\xCEWa!\xCEa!\x90V[P\x04\x90V[`\0\x82\x82\x10\x15a!\xE5Wa!\xE5a \xF9V[P\x03\x90V[`\0\x82a!\xF9Wa!\xF9a!\x90V[P\x06\x90V[`\0`\x01`\x01`\xA0\x1B\x03\x80\x87\x16\x83R\x80\x86\x16` \x84\x01RP\x83`@\x83\x01R`\x80``\x83\x01Ra\"0`\x80\x83\x01\x84a\x1D\xD9V[\x96\x95PPPPPPV[`\0` \x82\x84\x03\x12\x15a\"LW`\0\x80\xFD[\x81Qa\x04\xD9\x81a\x1DbV[\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`1`\x04R`$`\0\xFD\xFE\xA1dsolcC\0\x08\x0F\0\n\xA1dsolcC\0\x08\x0F\0\n", + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `OptimismMintableERC721Created(address,address,address)` and selector `0xe72783bb8e0ca31286b85278da59684dd814df9762a52f0837f89edd1483b299`. +```solidity +event OptimismMintableERC721Created(address indexed localToken, address indexed remoteToken, address deployer); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct OptimismMintableERC721Created { + #[allow(missing_docs)] + pub localToken: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub remoteToken: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub deployer: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for OptimismMintableERC721Created { + type DataTuple<'a> = (alloy::sol_types::sol_data::Address,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "OptimismMintableERC721Created(address,address,address)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 231u8, 39u8, 131u8, 187u8, 142u8, 12u8, 163u8, 18u8, 134u8, 184u8, 82u8, + 120u8, 218u8, 89u8, 104u8, 77u8, 216u8, 20u8, 223u8, 151u8, 98u8, 165u8, + 47u8, 8u8, 55u8, 248u8, 158u8, 221u8, 20u8, 131u8, 178u8, 153u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + localToken: topics.1, + remoteToken: topics.2, + deployer: data.0, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + ::tokenize( + &self.deployer, + ), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + ( + Self::SIGNATURE_HASH.into(), + self.localToken.clone(), + self.remoteToken.clone(), + ) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.localToken, + ); + out[2usize] = ::encode_topic( + &self.remoteToken, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for OptimismMintableERC721Created { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&OptimismMintableERC721Created> for alloy_sol_types::private::LogData { + #[inline] + fn from( + this: &OptimismMintableERC721Created, + ) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + /**Constructor`. +```solidity +constructor(address _bridge, uint256 _remoteChainId); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct constructorCall { + #[allow(missing_docs)] + pub _bridge: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _remoteChainId: alloy::sol_types::private::primitives::aliases::U256, + } + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: constructorCall) -> Self { + (value._bridge, value._remoteChainId) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for constructorCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _bridge: tuple.0, + _remoteChainId: tuple.1, + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolConstructor for constructorCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._bridge, + ), + as alloy_sol_types::SolType>::tokenize(&self._remoteChainId), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `BRIDGE()` and selector `0xee9a31a2`. +```solidity +function BRIDGE() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct BRIDGECall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`BRIDGE()`](BRIDGECall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct BRIDGEReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: BRIDGECall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for BRIDGECall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: BRIDGEReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for BRIDGEReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for BRIDGECall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "BRIDGE()"; + const SELECTOR: [u8; 4] = [238u8, 154u8, 49u8, 162u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: BRIDGEReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: BRIDGEReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `REMOTE_CHAIN_ID()` and selector `0x7d1d0c5b`. +```solidity +function REMOTE_CHAIN_ID() external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct REMOTE_CHAIN_IDCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`REMOTE_CHAIN_ID()`](REMOTE_CHAIN_IDCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct REMOTE_CHAIN_IDReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: REMOTE_CHAIN_IDCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for REMOTE_CHAIN_IDCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: REMOTE_CHAIN_IDReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for REMOTE_CHAIN_IDReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for REMOTE_CHAIN_IDCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "REMOTE_CHAIN_ID()"; + const SELECTOR: [u8; 4] = [125u8, 29u8, 12u8, 91u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: REMOTE_CHAIN_IDReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: REMOTE_CHAIN_IDReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `bridge()` and selector `0xe78cea92`. +```solidity +function bridge() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct bridgeCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`bridge()`](bridgeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct bridgeReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: bridgeCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for bridgeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: bridgeReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for bridgeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for bridgeCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "bridge()"; + const SELECTOR: [u8; 4] = [231u8, 140u8, 234u8, 146u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: bridgeReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: bridgeReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `createOptimismMintableERC721(address,string,string)` and selector `0xd97df652`. +```solidity +function createOptimismMintableERC721(address _remoteToken, string memory _name, string memory _symbol) external returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct createOptimismMintableERC721Call { + #[allow(missing_docs)] + pub _remoteToken: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _name: alloy::sol_types::private::String, + #[allow(missing_docs)] + pub _symbol: alloy::sol_types::private::String, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`createOptimismMintableERC721(address,string,string)`](createOptimismMintableERC721Call) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct createOptimismMintableERC721Return { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::String, + alloy::sol_types::sol_data::String, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::String, + alloy::sol_types::private::String, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: createOptimismMintableERC721Call) -> Self { + (value._remoteToken, value._name, value._symbol) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for createOptimismMintableERC721Call { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _remoteToken: tuple.0, + _name: tuple.1, + _symbol: tuple.2, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: createOptimismMintableERC721Return) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for createOptimismMintableERC721Return { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for createOptimismMintableERC721Call { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::String, + alloy::sol_types::sol_data::String, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "createOptimismMintableERC721(address,string,string)"; + const SELECTOR: [u8; 4] = [217u8, 125u8, 246u8, 82u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._remoteToken, + ), + ::tokenize( + &self._name, + ), + ::tokenize( + &self._symbol, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: createOptimismMintableERC721Return = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: createOptimismMintableERC721Return = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `isOptimismMintableERC721(address)` and selector `0x5572acae`. +```solidity +function isOptimismMintableERC721(address) external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct isOptimismMintableERC721Call(pub alloy::sol_types::private::Address); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`isOptimismMintableERC721(address)`](isOptimismMintableERC721Call) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct isOptimismMintableERC721Return { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: isOptimismMintableERC721Call) -> Self { + (value.0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for isOptimismMintableERC721Call { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self(tuple.0) + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: isOptimismMintableERC721Return) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for isOptimismMintableERC721Return { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for isOptimismMintableERC721Call { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "isOptimismMintableERC721(address)"; + const SELECTOR: [u8; 4] = [85u8, 114u8, 172u8, 174u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.0, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: isOptimismMintableERC721Return = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: isOptimismMintableERC721Return = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `remoteChainID()` and selector `0xd2382242`. +```solidity +function remoteChainID() external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct remoteChainIDCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`remoteChainID()`](remoteChainIDCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct remoteChainIDReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: remoteChainIDCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for remoteChainIDCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: remoteChainIDReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for remoteChainIDReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for remoteChainIDCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "remoteChainID()"; + const SELECTOR: [u8; 4] = [210u8, 56u8, 34u8, 66u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: remoteChainIDReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: remoteChainIDReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `version()` and selector `0x54fd4d50`. +```solidity +function version() external view returns (string memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`version()`](versionCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for versionCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::String; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "version()"; + const SELECTOR: [u8; 4] = [84u8, 253u8, 77u8, 80u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + } + }; + ///Container for all the [`OptimismMintableERC721Factory`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum OptimismMintableERC721FactoryCalls { + #[allow(missing_docs)] + BRIDGE(BRIDGECall), + #[allow(missing_docs)] + REMOTE_CHAIN_ID(REMOTE_CHAIN_IDCall), + #[allow(missing_docs)] + bridge(bridgeCall), + #[allow(missing_docs)] + createOptimismMintableERC721(createOptimismMintableERC721Call), + #[allow(missing_docs)] + isOptimismMintableERC721(isOptimismMintableERC721Call), + #[allow(missing_docs)] + remoteChainID(remoteChainIDCall), + #[allow(missing_docs)] + version(versionCall), + } + impl OptimismMintableERC721FactoryCalls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [84u8, 253u8, 77u8, 80u8], + [85u8, 114u8, 172u8, 174u8], + [125u8, 29u8, 12u8, 91u8], + [210u8, 56u8, 34u8, 66u8], + [217u8, 125u8, 246u8, 82u8], + [231u8, 140u8, 234u8, 146u8], + [238u8, 154u8, 49u8, 162u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(version), + ::core::stringify!(isOptimismMintableERC721), + ::core::stringify!(REMOTE_CHAIN_ID), + ::core::stringify!(remoteChainID), + ::core::stringify!(createOptimismMintableERC721), + ::core::stringify!(bridge), + ::core::stringify!(BRIDGE), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for OptimismMintableERC721FactoryCalls { + const NAME: &'static str = "OptimismMintableERC721FactoryCalls"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 7usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::BRIDGE(_) => ::SELECTOR, + Self::REMOTE_CHAIN_ID(_) => { + ::SELECTOR + } + Self::bridge(_) => ::SELECTOR, + Self::createOptimismMintableERC721(_) => { + ::SELECTOR + } + Self::isOptimismMintableERC721(_) => { + ::SELECTOR + } + Self::remoteChainID(_) => { + ::SELECTOR + } + Self::version(_) => ::SELECTOR, + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(OptimismMintableERC721FactoryCalls::version) + } + version + }, + { + fn isOptimismMintableERC721( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + OptimismMintableERC721FactoryCalls::isOptimismMintableERC721, + ) + } + isOptimismMintableERC721 + }, + { + fn REMOTE_CHAIN_ID( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OptimismMintableERC721FactoryCalls::REMOTE_CHAIN_ID) + } + REMOTE_CHAIN_ID + }, + { + fn remoteChainID( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OptimismMintableERC721FactoryCalls::remoteChainID) + } + remoteChainID + }, + { + fn createOptimismMintableERC721( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + OptimismMintableERC721FactoryCalls::createOptimismMintableERC721, + ) + } + createOptimismMintableERC721 + }, + { + fn bridge( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(OptimismMintableERC721FactoryCalls::bridge) + } + bridge + }, + { + fn BRIDGE( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(OptimismMintableERC721FactoryCalls::BRIDGE) + } + BRIDGE + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismMintableERC721FactoryCalls::version) + } + version + }, + { + fn isOptimismMintableERC721( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + OptimismMintableERC721FactoryCalls::isOptimismMintableERC721, + ) + } + isOptimismMintableERC721 + }, + { + fn REMOTE_CHAIN_ID( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismMintableERC721FactoryCalls::REMOTE_CHAIN_ID) + } + REMOTE_CHAIN_ID + }, + { + fn remoteChainID( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismMintableERC721FactoryCalls::remoteChainID) + } + remoteChainID + }, + { + fn createOptimismMintableERC721( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + OptimismMintableERC721FactoryCalls::createOptimismMintableERC721, + ) + } + createOptimismMintableERC721 + }, + { + fn bridge( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismMintableERC721FactoryCalls::bridge) + } + bridge + }, + { + fn BRIDGE( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismMintableERC721FactoryCalls::BRIDGE) + } + BRIDGE + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::BRIDGE(inner) => { + ::abi_encoded_size(inner) + } + Self::REMOTE_CHAIN_ID(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::bridge(inner) => { + ::abi_encoded_size(inner) + } + Self::createOptimismMintableERC721(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::isOptimismMintableERC721(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::remoteChainID(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::version(inner) => { + ::abi_encoded_size(inner) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::BRIDGE(inner) => { + ::abi_encode_raw(inner, out) + } + Self::REMOTE_CHAIN_ID(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::bridge(inner) => { + ::abi_encode_raw(inner, out) + } + Self::createOptimismMintableERC721(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::isOptimismMintableERC721(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::remoteChainID(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::version(inner) => { + ::abi_encode_raw(inner, out) + } + } + } + } + ///Container for all the [`OptimismMintableERC721Factory`](self) events. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum OptimismMintableERC721FactoryEvents { + #[allow(missing_docs)] + OptimismMintableERC721Created(OptimismMintableERC721Created), + } + impl OptimismMintableERC721FactoryEvents { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 32usize]] = &[ + [ + 231u8, 39u8, 131u8, 187u8, 142u8, 12u8, 163u8, 18u8, 134u8, 184u8, 82u8, + 120u8, 218u8, 89u8, 104u8, 77u8, 216u8, 20u8, 223u8, 151u8, 98u8, 165u8, + 47u8, 8u8, 55u8, 248u8, 158u8, 221u8, 20u8, 131u8, 178u8, 153u8, + ], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(OptimismMintableERC721Created), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolEventInterface for OptimismMintableERC721FactoryEvents { + const NAME: &'static str = "OptimismMintableERC721FactoryEvents"; + const COUNT: usize = 1usize; + fn decode_raw_log( + topics: &[alloy_sol_types::Word], + data: &[u8], + ) -> alloy_sol_types::Result { + match topics.first().copied() { + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::OptimismMintableERC721Created) + } + _ => { + alloy_sol_types::private::Err(alloy_sol_types::Error::InvalidLog { + name: ::NAME, + log: alloy_sol_types::private::Box::new( + alloy_sol_types::private::LogData::new_unchecked( + topics.to_vec(), + data.to_vec().into(), + ), + ), + }) + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for OptimismMintableERC721FactoryEvents { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + match self { + Self::OptimismMintableERC721Created(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + } + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + match self { + Self::OptimismMintableERC721Created(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`OptimismMintableERC721Factory`](self) contract instance. + +See the [wrapper's documentation](`OptimismMintableERC721FactoryInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> OptimismMintableERC721FactoryInstance { + OptimismMintableERC721FactoryInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + _bridge: alloy::sol_types::private::Address, + _remoteChainId: alloy::sol_types::private::primitives::aliases::U256, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + OptimismMintableERC721FactoryInstance::< + P, + N, + >::deploy(__provider, _bridge, _remoteChainId) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + _bridge: alloy::sol_types::private::Address, + _remoteChainId: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::RawCallBuilder { + OptimismMintableERC721FactoryInstance::< + P, + N, + >::deploy_builder(__provider, _bridge, _remoteChainId) + } + /**A [`OptimismMintableERC721Factory`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`OptimismMintableERC721Factory`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct OptimismMintableERC721FactoryInstance< + P, + N = alloy_contract::private::Ethereum, + > { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for OptimismMintableERC721FactoryInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("OptimismMintableERC721FactoryInstance") + .field(&self.address) + .finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > OptimismMintableERC721FactoryInstance { + /**Creates a new wrapper around an on-chain [`OptimismMintableERC721Factory`](self) contract instance. + +See the [wrapper's documentation](`OptimismMintableERC721FactoryInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + _bridge: alloy::sol_types::private::Address, + _remoteChainId: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider, _bridge, _remoteChainId); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder( + __provider: P, + _bridge: alloy::sol_types::private::Address, + _remoteChainId: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + [ + &BYTECODE[..], + &alloy_sol_types::SolConstructor::abi_encode( + &constructorCall { + _bridge, + _remoteChainId, + }, + )[..], + ] + .concat() + .into(), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl OptimismMintableERC721FactoryInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider( + self, + ) -> OptimismMintableERC721FactoryInstance { + OptimismMintableERC721FactoryInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > OptimismMintableERC721FactoryInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`BRIDGE`] function. + pub fn BRIDGE(&self) -> alloy_contract::SolCallBuilder<&P, BRIDGECall, N> { + self.call_builder(&BRIDGECall) + } + ///Creates a new call builder for the [`REMOTE_CHAIN_ID`] function. + pub fn REMOTE_CHAIN_ID( + &self, + ) -> alloy_contract::SolCallBuilder<&P, REMOTE_CHAIN_IDCall, N> { + self.call_builder(&REMOTE_CHAIN_IDCall) + } + ///Creates a new call builder for the [`bridge`] function. + pub fn bridge(&self) -> alloy_contract::SolCallBuilder<&P, bridgeCall, N> { + self.call_builder(&bridgeCall) + } + ///Creates a new call builder for the [`createOptimismMintableERC721`] function. + pub fn createOptimismMintableERC721( + &self, + _remoteToken: alloy::sol_types::private::Address, + _name: alloy::sol_types::private::String, + _symbol: alloy::sol_types::private::String, + ) -> alloy_contract::SolCallBuilder<&P, createOptimismMintableERC721Call, N> { + self.call_builder( + &createOptimismMintableERC721Call { + _remoteToken, + _name, + _symbol, + }, + ) + } + ///Creates a new call builder for the [`isOptimismMintableERC721`] function. + pub fn isOptimismMintableERC721( + &self, + _0: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, isOptimismMintableERC721Call, N> { + self.call_builder(&isOptimismMintableERC721Call(_0)) + } + ///Creates a new call builder for the [`remoteChainID`] function. + pub fn remoteChainID( + &self, + ) -> alloy_contract::SolCallBuilder<&P, remoteChainIDCall, N> { + self.call_builder(&remoteChainIDCall) + } + ///Creates a new call builder for the [`version`] function. + pub fn version(&self) -> alloy_contract::SolCallBuilder<&P, versionCall, N> { + self.call_builder(&versionCall) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > OptimismMintableERC721FactoryInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + ///Creates a new event filter for the [`OptimismMintableERC721Created`] event. + pub fn OptimismMintableERC721Created_filter( + &self, + ) -> alloy_contract::Event<&P, OptimismMintableERC721Created, N> { + self.event_filter::() + } + } +} diff --git a/bindings/rust/src/optimism_portal2.rs b/bindings/rust/src/optimism_portal2.rs new file mode 100644 index 000000000..76d33d86b --- /dev/null +++ b/bindings/rust/src/optimism_portal2.rs @@ -0,0 +1,12961 @@ +///Module containing a contract's types and functions. +/** + +```solidity +library Types { + struct OutputRootProof { bytes32 version; bytes32 stateRoot; bytes32 messagePasserStorageRoot; bytes32 latestBlockhash; } + struct WithdrawalTransaction { uint256 nonce; address sender; address target; uint256 value; uint256 gasLimit; bytes data; } +} +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod Types { + use super::*; + use alloy::sol_types as alloy_sol_types; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**```solidity +struct OutputRootProof { bytes32 version; bytes32 stateRoot; bytes32 messagePasserStorageRoot; bytes32 latestBlockhash; } +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct OutputRootProof { + #[allow(missing_docs)] + pub version: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub stateRoot: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub messagePasserStorageRoot: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub latestBlockhash: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::FixedBytes<32>, + alloy::sol_types::private::FixedBytes<32>, + alloy::sol_types::private::FixedBytes<32>, + alloy::sol_types::private::FixedBytes<32>, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: OutputRootProof) -> Self { + ( + value.version, + value.stateRoot, + value.messagePasserStorageRoot, + value.latestBlockhash, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for OutputRootProof { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + version: tuple.0, + stateRoot: tuple.1, + messagePasserStorageRoot: tuple.2, + latestBlockhash: tuple.3, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolValue for OutputRootProof { + type SolType = Self; + } + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for OutputRootProof { + #[inline] + fn stv_to_tokens(&self) -> ::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.version), + as alloy_sol_types::SolType>::tokenize(&self.stateRoot), + as alloy_sol_types::SolType>::tokenize( + &self.messagePasserStorageRoot, + ), + as alloy_sol_types::SolType>::tokenize(&self.latestBlockhash), + ) + } + #[inline] + fn stv_abi_encoded_size(&self) -> usize { + if let Some(size) = ::ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encoded_size(&tuple) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + ::eip712_hash_struct(self) + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + if let Some(size) = ::PACKED_ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for OutputRootProof { + type RustType = Self; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = ::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + as alloy_sol_types::SolType>::valid_token(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + let tuple = as alloy_sol_types::SolType>::detokenize(token); + >>::from(tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolStruct for OutputRootProof { + const NAME: &'static str = "OutputRootProof"; + #[inline] + fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> { + alloy_sol_types::private::Cow::Borrowed( + "OutputRootProof(bytes32 version,bytes32 stateRoot,bytes32 messagePasserStorageRoot,bytes32 latestBlockhash)", + ) + } + #[inline] + fn eip712_components() -> alloy_sol_types::private::Vec< + alloy_sol_types::private::Cow<'static, str>, + > { + alloy_sol_types::private::Vec::new() + } + #[inline] + fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> { + ::eip712_root_type() + } + #[inline] + fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec { + [ + as alloy_sol_types::SolType>::eip712_data_word(&self.version) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.stateRoot) + .0, + as alloy_sol_types::SolType>::eip712_data_word( + &self.messagePasserStorageRoot, + ) + .0, + as alloy_sol_types::SolType>::eip712_data_word( + &self.latestBlockhash, + ) + .0, + ] + .concat() + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for OutputRootProof { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + 0usize + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.version, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.stateRoot, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.messagePasserStorageRoot, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.latestBlockhash, + ) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + out.reserve( + ::topic_preimage_length(rust), + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.version, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.stateRoot, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.messagePasserStorageRoot, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.latestBlockhash, + out, + ); + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + let mut out = alloy_sol_types::private::Vec::new(); + ::encode_topic_preimage( + rust, + &mut out, + ); + alloy_sol_types::abi::token::WordToken( + alloy_sol_types::private::keccak256(out), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**```solidity +struct WithdrawalTransaction { uint256 nonce; address sender; address target; uint256 value; uint256 gasLimit; bytes data; } +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct WithdrawalTransaction { + #[allow(missing_docs)] + pub nonce: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub sender: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub target: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub value: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub gasLimit: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub data: alloy::sol_types::private::Bytes, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::Bytes, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: WithdrawalTransaction) -> Self { + ( + value.nonce, + value.sender, + value.target, + value.value, + value.gasLimit, + value.data, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for WithdrawalTransaction { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + nonce: tuple.0, + sender: tuple.1, + target: tuple.2, + value: tuple.3, + gasLimit: tuple.4, + data: tuple.5, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolValue for WithdrawalTransaction { + type SolType = Self; + } + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for WithdrawalTransaction { + #[inline] + fn stv_to_tokens(&self) -> ::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.nonce), + ::tokenize( + &self.sender, + ), + ::tokenize( + &self.target, + ), + as alloy_sol_types::SolType>::tokenize(&self.value), + as alloy_sol_types::SolType>::tokenize(&self.gasLimit), + ::tokenize( + &self.data, + ), + ) + } + #[inline] + fn stv_abi_encoded_size(&self) -> usize { + if let Some(size) = ::ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encoded_size(&tuple) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + ::eip712_hash_struct(self) + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + if let Some(size) = ::PACKED_ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for WithdrawalTransaction { + type RustType = Self; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = ::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + as alloy_sol_types::SolType>::valid_token(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + let tuple = as alloy_sol_types::SolType>::detokenize(token); + >>::from(tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolStruct for WithdrawalTransaction { + const NAME: &'static str = "WithdrawalTransaction"; + #[inline] + fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> { + alloy_sol_types::private::Cow::Borrowed( + "WithdrawalTransaction(uint256 nonce,address sender,address target,uint256 value,uint256 gasLimit,bytes data)", + ) + } + #[inline] + fn eip712_components() -> alloy_sol_types::private::Vec< + alloy_sol_types::private::Cow<'static, str>, + > { + alloy_sol_types::private::Vec::new() + } + #[inline] + fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> { + ::eip712_root_type() + } + #[inline] + fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec { + [ + as alloy_sol_types::SolType>::eip712_data_word(&self.nonce) + .0, + ::eip712_data_word( + &self.sender, + ) + .0, + ::eip712_data_word( + &self.target, + ) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.value) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.gasLimit) + .0, + ::eip712_data_word( + &self.data, + ) + .0, + ] + .concat() + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for WithdrawalTransaction { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + 0usize + + as alloy_sol_types::EventTopic>::topic_preimage_length(&rust.nonce) + + ::topic_preimage_length( + &rust.sender, + ) + + ::topic_preimage_length( + &rust.target, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length(&rust.value) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.gasLimit, + ) + + ::topic_preimage_length( + &rust.data, + ) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + out.reserve( + ::topic_preimage_length(rust), + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.nonce, + out, + ); + ::encode_topic_preimage( + &rust.sender, + out, + ); + ::encode_topic_preimage( + &rust.target, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.value, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.gasLimit, + out, + ); + ::encode_topic_preimage( + &rust.data, + out, + ); + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + let mut out = alloy_sol_types::private::Vec::new(); + ::encode_topic_preimage( + rust, + &mut out, + ); + alloy_sol_types::abi::token::WordToken( + alloy_sol_types::private::keccak256(out), + ) + } + } + }; + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`Types`](self) contract instance. + +See the [wrapper's documentation](`TypesInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(address: alloy_sol_types::private::Address, __provider: P) -> TypesInstance { + TypesInstance::::new(address, __provider) + } + /**A [`Types`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`Types`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct TypesInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for TypesInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("TypesInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > TypesInstance { + /**Creates a new wrapper around an on-chain [`Types`](self) contract instance. + +See the [wrapper's documentation](`TypesInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl TypesInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> TypesInstance { + TypesInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > TypesInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > TypesInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + } +} +/** + +Generated by the following Solidity interface... +```solidity +library Types { + struct OutputRootProof { + bytes32 version; + bytes32 stateRoot; + bytes32 messagePasserStorageRoot; + bytes32 latestBlockhash; + } + struct WithdrawalTransaction { + uint256 nonce; + address sender; + address target; + uint256 value; + uint256 gasLimit; + bytes data; + } +} + +interface OptimismPortal2 { + type GameType is uint32; + + error ContentLengthMismatch(); + error EmptyItem(); + error InvalidDataRemainder(); + error InvalidHeader(); + error OptimismPortal_AlreadyFinalized(); + error OptimismPortal_BadTarget(); + error OptimismPortal_CallPaused(); + error OptimismPortal_CalldataTooLarge(); + error OptimismPortal_GasEstimation(); + error OptimismPortal_GasLimitTooLow(); + error OptimismPortal_ImproperDisputeGame(); + error OptimismPortal_InvalidDisputeGame(); + error OptimismPortal_InvalidLockboxState(); + error OptimismPortal_InvalidMerkleProof(); + error OptimismPortal_InvalidOutputRootProof(); + error OptimismPortal_InvalidProofTimestamp(); + error OptimismPortal_InvalidRootClaim(); + error OptimismPortal_NoReentrancy(); + error OptimismPortal_NotAllowedOnCGTMode(); + error OptimismPortal_ProofNotOldEnough(); + error OptimismPortal_Unproven(); + error OutOfGas(); + error ProxyAdminOwnedBase_NotProxyAdmin(); + error ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner(); + error ProxyAdminOwnedBase_NotProxyAdminOwner(); + error ProxyAdminOwnedBase_NotResolvedDelegateProxy(); + error ProxyAdminOwnedBase_NotSharedProxyAdminOwner(); + error ProxyAdminOwnedBase_ProxyAdminNotFound(); + error ReinitializableBase_ZeroInitVersion(); + error UnexpectedList(); + error UnexpectedString(); + + event Initialized(uint8 version); + event TransactionDeposited(address indexed from, address indexed to, uint256 indexed version, bytes opaqueData); + event WithdrawalFinalized(bytes32 indexed withdrawalHash, bool success); + event WithdrawalProven(bytes32 indexed withdrawalHash, address indexed from, address indexed to); + event WithdrawalProvenExtension1(bytes32 indexed withdrawalHash, address indexed proofSubmitter); + + constructor(uint256 _proofMaturityDelaySeconds); + + receive() external payable; + + function anchorStateRegistry() external view returns (address); + function checkWithdrawal(bytes32 _withdrawalHash, address _proofSubmitter) external view; + function depositTransaction(address _to, uint256 _value, uint64 _gasLimit, bool _isCreation, bytes memory _data) external payable; + function disputeGameBlacklist(address _disputeGame) external view returns (bool); + function disputeGameFactory() external view returns (address); + function disputeGameFinalityDelaySeconds() external view returns (uint256); + function donateETH() external payable; + function ethLockbox() external view returns (address); + function finalizeWithdrawalTransaction(Types.WithdrawalTransaction memory _tx) external; + function finalizeWithdrawalTransactionExternalProof(Types.WithdrawalTransaction memory _tx, address _proofSubmitter) external; + function finalizedWithdrawals(bytes32) external view returns (bool); + function guardian() external view returns (address); + function initVersion() external view returns (uint8); + function initialize(address _systemConfig, address _anchorStateRegistry) external; + function l2Sender() external view returns (address); + function minimumGasLimit(uint64 _byteCount) external pure returns (uint64); + function numProofSubmitters(bytes32 _withdrawalHash) external view returns (uint256); + function params() external view returns (uint128 prevBaseFee, uint64 prevBoughtGas, uint64 prevBlockNum); + function paused() external view returns (bool); + function proofMaturityDelaySeconds() external view returns (uint256); + function proofSubmitters(bytes32, uint256) external view returns (address); + function proveWithdrawalTransaction(Types.WithdrawalTransaction memory _tx, uint256 _disputeGameIndex, Types.OutputRootProof memory _outputRootProof, bytes[] memory _withdrawalProof) external; + function provenWithdrawals(bytes32, address) external view returns (address disputeGameProxy, uint64 timestamp); + function proxyAdmin() external view returns (address); + function proxyAdminOwner() external view returns (address); + function respectedGameType() external view returns (GameType); + function respectedGameTypeUpdatedAt() external view returns (uint64); + function superchainConfig() external view returns (address); + function systemConfig() external view returns (address); + function version() external pure returns (string memory); +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "constructor", + "inputs": [ + { + "name": "_proofMaturityDelaySeconds", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "receive", + "stateMutability": "payable" + }, + { + "type": "function", + "name": "anchorStateRegistry", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract IAnchorStateRegistry" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "checkWithdrawal", + "inputs": [ + { + "name": "_withdrawalHash", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "_proofSubmitter", + "type": "address", + "internalType": "address" + } + ], + "outputs": [], + "stateMutability": "view" + }, + { + "type": "function", + "name": "depositTransaction", + "inputs": [ + { + "name": "_to", + "type": "address", + "internalType": "address" + }, + { + "name": "_value", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_gasLimit", + "type": "uint64", + "internalType": "uint64" + }, + { + "name": "_isCreation", + "type": "bool", + "internalType": "bool" + }, + { + "name": "_data", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "disputeGameBlacklist", + "inputs": [ + { + "name": "_disputeGame", + "type": "address", + "internalType": "contract IDisputeGame" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "disputeGameFactory", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract IDisputeGameFactory" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "disputeGameFinalityDelaySeconds", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "donateETH", + "inputs": [], + "outputs": [], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "ethLockbox", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract IETHLockbox" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "finalizeWithdrawalTransaction", + "inputs": [ + { + "name": "_tx", + "type": "tuple", + "internalType": "struct Types.WithdrawalTransaction", + "components": [ + { + "name": "nonce", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "sender", + "type": "address", + "internalType": "address" + }, + { + "name": "target", + "type": "address", + "internalType": "address" + }, + { + "name": "value", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "gasLimit", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "data", + "type": "bytes", + "internalType": "bytes" + } + ] + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "finalizeWithdrawalTransactionExternalProof", + "inputs": [ + { + "name": "_tx", + "type": "tuple", + "internalType": "struct Types.WithdrawalTransaction", + "components": [ + { + "name": "nonce", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "sender", + "type": "address", + "internalType": "address" + }, + { + "name": "target", + "type": "address", + "internalType": "address" + }, + { + "name": "value", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "gasLimit", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "data", + "type": "bytes", + "internalType": "bytes" + } + ] + }, + { + "name": "_proofSubmitter", + "type": "address", + "internalType": "address" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "finalizedWithdrawals", + "inputs": [ + { + "name": "", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "guardian", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "initVersion", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint8", + "internalType": "uint8" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "initialize", + "inputs": [ + { + "name": "_systemConfig", + "type": "address", + "internalType": "contract ISystemConfig" + }, + { + "name": "_anchorStateRegistry", + "type": "address", + "internalType": "contract IAnchorStateRegistry" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "l2Sender", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "minimumGasLimit", + "inputs": [ + { + "name": "_byteCount", + "type": "uint64", + "internalType": "uint64" + } + ], + "outputs": [ + { + "name": "", + "type": "uint64", + "internalType": "uint64" + } + ], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "numProofSubmitters", + "inputs": [ + { + "name": "_withdrawalHash", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "params", + "inputs": [], + "outputs": [ + { + "name": "prevBaseFee", + "type": "uint128", + "internalType": "uint128" + }, + { + "name": "prevBoughtGas", + "type": "uint64", + "internalType": "uint64" + }, + { + "name": "prevBlockNum", + "type": "uint64", + "internalType": "uint64" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "paused", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "proofMaturityDelaySeconds", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "proofSubmitters", + "inputs": [ + { + "name": "", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "proveWithdrawalTransaction", + "inputs": [ + { + "name": "_tx", + "type": "tuple", + "internalType": "struct Types.WithdrawalTransaction", + "components": [ + { + "name": "nonce", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "sender", + "type": "address", + "internalType": "address" + }, + { + "name": "target", + "type": "address", + "internalType": "address" + }, + { + "name": "value", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "gasLimit", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "data", + "type": "bytes", + "internalType": "bytes" + } + ] + }, + { + "name": "_disputeGameIndex", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_outputRootProof", + "type": "tuple", + "internalType": "struct Types.OutputRootProof", + "components": [ + { + "name": "version", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "stateRoot", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "messagePasserStorageRoot", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "latestBlockhash", + "type": "bytes32", + "internalType": "bytes32" + } + ] + }, + { + "name": "_withdrawalProof", + "type": "bytes[]", + "internalType": "bytes[]" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "provenWithdrawals", + "inputs": [ + { + "name": "", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "outputs": [ + { + "name": "disputeGameProxy", + "type": "address", + "internalType": "contract IDisputeGame" + }, + { + "name": "timestamp", + "type": "uint64", + "internalType": "uint64" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "proxyAdmin", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract IProxyAdmin" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "proxyAdminOwner", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "respectedGameType", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint32", + "internalType": "GameType" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "respectedGameTypeUpdatedAt", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint64", + "internalType": "uint64" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "superchainConfig", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract ISuperchainConfig" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "systemConfig", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract ISystemConfig" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "version", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "pure" + }, + { + "type": "event", + "name": "Initialized", + "inputs": [ + { + "name": "version", + "type": "uint8", + "indexed": false, + "internalType": "uint8" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "TransactionDeposited", + "inputs": [ + { + "name": "from", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "to", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "version", + "type": "uint256", + "indexed": true, + "internalType": "uint256" + }, + { + "name": "opaqueData", + "type": "bytes", + "indexed": false, + "internalType": "bytes" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "WithdrawalFinalized", + "inputs": [ + { + "name": "withdrawalHash", + "type": "bytes32", + "indexed": true, + "internalType": "bytes32" + }, + { + "name": "success", + "type": "bool", + "indexed": false, + "internalType": "bool" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "WithdrawalProven", + "inputs": [ + { + "name": "withdrawalHash", + "type": "bytes32", + "indexed": true, + "internalType": "bytes32" + }, + { + "name": "from", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "to", + "type": "address", + "indexed": true, + "internalType": "address" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "WithdrawalProvenExtension1", + "inputs": [ + { + "name": "withdrawalHash", + "type": "bytes32", + "indexed": true, + "internalType": "bytes32" + }, + { + "name": "proofSubmitter", + "type": "address", + "indexed": true, + "internalType": "address" + } + ], + "anonymous": false + }, + { + "type": "error", + "name": "ContentLengthMismatch", + "inputs": [] + }, + { + "type": "error", + "name": "EmptyItem", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidDataRemainder", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidHeader", + "inputs": [] + }, + { + "type": "error", + "name": "OptimismPortal_AlreadyFinalized", + "inputs": [] + }, + { + "type": "error", + "name": "OptimismPortal_BadTarget", + "inputs": [] + }, + { + "type": "error", + "name": "OptimismPortal_CallPaused", + "inputs": [] + }, + { + "type": "error", + "name": "OptimismPortal_CalldataTooLarge", + "inputs": [] + }, + { + "type": "error", + "name": "OptimismPortal_GasEstimation", + "inputs": [] + }, + { + "type": "error", + "name": "OptimismPortal_GasLimitTooLow", + "inputs": [] + }, + { + "type": "error", + "name": "OptimismPortal_ImproperDisputeGame", + "inputs": [] + }, + { + "type": "error", + "name": "OptimismPortal_InvalidDisputeGame", + "inputs": [] + }, + { + "type": "error", + "name": "OptimismPortal_InvalidLockboxState", + "inputs": [] + }, + { + "type": "error", + "name": "OptimismPortal_InvalidMerkleProof", + "inputs": [] + }, + { + "type": "error", + "name": "OptimismPortal_InvalidOutputRootProof", + "inputs": [] + }, + { + "type": "error", + "name": "OptimismPortal_InvalidProofTimestamp", + "inputs": [] + }, + { + "type": "error", + "name": "OptimismPortal_InvalidRootClaim", + "inputs": [] + }, + { + "type": "error", + "name": "OptimismPortal_NoReentrancy", + "inputs": [] + }, + { + "type": "error", + "name": "OptimismPortal_NotAllowedOnCGTMode", + "inputs": [] + }, + { + "type": "error", + "name": "OptimismPortal_ProofNotOldEnough", + "inputs": [] + }, + { + "type": "error", + "name": "OptimismPortal_Unproven", + "inputs": [] + }, + { + "type": "error", + "name": "OutOfGas", + "inputs": [] + }, + { + "type": "error", + "name": "ProxyAdminOwnedBase_NotProxyAdmin", + "inputs": [] + }, + { + "type": "error", + "name": "ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner", + "inputs": [] + }, + { + "type": "error", + "name": "ProxyAdminOwnedBase_NotProxyAdminOwner", + "inputs": [] + }, + { + "type": "error", + "name": "ProxyAdminOwnedBase_NotResolvedDelegateProxy", + "inputs": [] + }, + { + "type": "error", + "name": "ProxyAdminOwnedBase_NotSharedProxyAdminOwner", + "inputs": [] + }, + { + "type": "error", + "name": "ProxyAdminOwnedBase_ProxyAdminNotFound", + "inputs": [] + }, + { + "type": "error", + "name": "ReinitializableBase_ZeroInitVersion", + "inputs": [] + }, + { + "type": "error", + "name": "UnexpectedList", + "inputs": [] + }, + { + "type": "error", + "name": "UnexpectedString", + "inputs": [] + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod OptimismPortal2 { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x60c06040523480156200001157600080fd5b506040516200516938038062005169833981016040819052620000349162000111565b600360805260a0819052620000486200004f565b506200012b565b600054610100900460ff1615620000bc5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811610156200010f576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6000602082840312156200012457600080fd5b5051919050565b60805160a05161500a6200015f600039600081816105fc0152611bce015260008181610263015261109b015261500a6000f3fe6080604052600436106101d15760003560e01c806371c1566e116100f7578063a3860f4811610095578063cff0ab9611610064578063cff0ab9614610620578063dad544e0146106c1578063e9e05c42146106d6578063f2b4e617146106e957600080fd5b8063a3860f4814610520578063b682c44414610540578063bb2c727e14610560578063bf653a5c146105ed57600080fd5b8063952b2797116100d1578063952b27971461049b5780639bf62d82146104b0578063a14238e7146104d0578063a35d99df1461050057600080fd5b806371c1566e1461045b5780638b4c40b0146101f65780638c3152e91461047b57600080fd5b806345884d321161016f578063513747ab1161013e578063513747ab1461039f57806354fd4d50146103da5780635c0cba33146104265780635c975abb1461044657600080fd5b806345884d3214610301578063485cc955146103315780634870496f146103515780634fd0434c1461037157600080fd5b80633c9f397c116101ab5780633c9f397c1461028d5780633e47158c146102b757806343ca1c50146102cc578063452a9320146102ec57600080fd5b806333d7e2bd146101fd57806335e80ab31461023a57806338d38c971461024f57600080fd5b366101f8576101f63334620186a06000604051806020016040528060008152506106fe565b005b600080fd5b34801561020957600080fd5b5060375461021d906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561024657600080fd5b5061021d61095b565b34801561025b57600080fd5b5060405160ff7f0000000000000000000000000000000000000000000000000000000000000000168152602001610231565b34801561029957600080fd5b506102a26109e7565b60405163ffffffff9091168152602001610231565b3480156102c357600080fd5b5061021d610a6e565b3480156102d857600080fd5b506101f66102e736600461457d565b610c52565b3480156102f857600080fd5b5061021d610fa8565b34801561030d57600080fd5b5061032161031c3660046145cf565b61100b565b6040519015158152602001610231565b34801561033d57600080fd5b506101f661034c3660046145ec565b611099565b34801561035d57600080fd5b506101f661036c36600461461a565b611281565b34801561037d57600080fd5b50610386611943565b60405167ffffffffffffffff9091168152602001610231565b3480156103ab57600080fd5b506103cc6103ba3660046146f6565b6000908152603c602052604090205490565b604051908152602001610231565b3480156103e657600080fd5b50604080518082018252600581527f352e322e30000000000000000000000000000000000000000000000000000000602082015290516102319190614767565b34801561043257600080fd5b50603e5461021d906001600160a01b031681565b34801561045257600080fd5b506103216119ca565b34801561046757600080fd5b506101f661047636600461477a565b611a51565b34801561048757600080fd5b506101f661049636600461479f565b611cfd565b3480156104a757600080fd5b506103cc611d0a565b3480156104bc57600080fd5b5060325461021d906001600160a01b031681565b3480156104dc57600080fd5b506103216104eb3660046146f6565b60336020526000908152604090205460ff1681565b34801561050c57600080fd5b5061038661051b3660046147f2565b611d91565b34801561052c57600080fd5b5061021d61053b36600461480f565b611daa565b34801561054c57600080fd5b50603f5461021d906001600160a01b031681565b34801561056c57600080fd5b506105c561057b36600461477a565b60396020908152600092835260408084209091529082529020546001600160a01b0381169074010000000000000000000000000000000000000000900467ffffffffffffffff1682565b604080516001600160a01b03909316835267ffffffffffffffff909116602083015201610231565b3480156105f957600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006103cc565b34801561062c57600080fd5b50600154610688906fffffffffffffffffffffffffffffffff81169067ffffffffffffffff7001000000000000000000000000000000008204811691780100000000000000000000000000000000000000000000000090041683565b604080516fffffffffffffffffffffffffffffffff909416845267ffffffffffffffff9283166020850152911690820152606001610231565b3480156106cd57600080fd5b5061021d611de2565b6101f66106e436600461483f565b6106fe565b3480156106f557600080fd5b5061021d611e29565b8260005a905061070c611e8c565b15610749573415610749576040517fbd58e0a200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610751611f0e565b156107c65734156107c657603f60009054906101000a90046001600160a01b03166001600160a01b0316631ee116bf346040518263ffffffff1660e01b81526004016000604051808303818588803b1580156107ac57600080fd5b505af11580156107c0573d6000803e3d6000fd5b50505050505b8380156107db57506001600160a01b03871615155b15610812576040517fc5defbad00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61081c8351611d91565b67ffffffffffffffff168567ffffffffffffffff161015610869576040517f70c8bdbd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6201d4c0835111156108a7576040517f5aa3bac900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b336108b0611fcd565b6108cd575033731111000000000000000000000000000000001111015b600034888888886040516020016108e89594939291906148be565b60405160208183030381529060405290506000896001600160a01b0316836001600160a01b03167fb3813568d9991fc951961fcb4c784893574240a28925604d09fc577c55bb7c328460405161093e9190614767565b60405180910390a45050610952828261200a565b50505050505050565b603754604080517f35e80ab300000000000000000000000000000000000000000000000000000000815290516000926001600160a01b0316916335e80ab39160048083019260209291908290030181865afa1580156109be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109e29190614923565b905090565b603e54604080517f3c9f397c00000000000000000000000000000000000000000000000000000000815290516000926001600160a01b031691633c9f397c9160048083019260209291908290030181865afa158015610a4a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109e29190614952565b600080610a997fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b90506001600160a01b03811615610aaf57919050565b6040518060400160405280601a81526020017f4f564d5f4c3143726f7373446f6d61696e4d657373656e676572000000000000815250516002610af2919061499e565b604080513060208201526000918101919091527f4f564d5f4c3143726f7373446f6d61696e4d657373656e6765720000000000009190911790610b4d906060015b604051602081830303815290604052805190602001205490565b14610b84576040517f54e433cd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60408051306020820152600191810191909152600090610ba690606001610b33565b90506001600160a01b03811615610c2057806001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bf5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c199190614923565b9250505090565b6040517f332144db00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610c5a6122e1565b610c62611e8c565b15610ca357606082015115610ca3576040517fbd58e0a200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6032546001600160a01b031661dead14610ce9576040517fdfeaaeb800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610cf68260400151612320565b15610d2d576040517fc5defbad00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000610d3883612349565b9050610d448183611a51565b600081815260336020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055610d83611f0e565b15610e1557606083015115610e1557603f5460608401516040517f8d445bd00000000000000000000000000000000000000000000000000000000081526001600160a01b0390921691638d445bd091610de29160040190815260200190565b600060405180830381600087803b158015610dfc57600080fd5b505af1158015610e10573d6000803e3d6000fd5b505050505b8260200151603260006101000a8154816001600160a01b0302191690836001600160a01b031602179055506000610e5e8460400151856080015186606001518760a00151612396565b603280547fffffffffffffffffffffffff00000000000000000000000000000000000000001661dead17905560405190915082907fdb5c7652857aa163daadd670e116628fb42e869d8ac4251ef8971d9e5727df1b90610ec390841515815260200190565b60405180910390a2610ed3611f0e565b15610f5d5780158015610eea575060008460600151115b15610f5d57603f60009054906101000a90046001600160a01b03166001600160a01b0316631ee116bf85606001516040518263ffffffff1660e01b81526004016000604051808303818588803b158015610f4357600080fd5b505af1158015610f57573d6000803e3d6000fd5b50505050505b80158015610f6b5750326001145b15610fa2576040517fab58103600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505050565b603754604080517f452a932000000000000000000000000000000000000000000000000000000000815290516000926001600160a01b03169163452a93209160048083019260209291908290030181865afa1580156109be573d6000803e3d6000fd5b603e546040517f45884d320000000000000000000000000000000000000000000000000000000081526001600160a01b03838116600483015260009216906345884d3290602401602060405180830381865afa15801561106f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061109391906149bd565b92915050565b7f0000000000000000000000000000000000000000000000000000000000000000600054610100900460ff161580156110d9575060005460ff8083169116105b6111505760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084015b60405180910390fd5b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001660ff8316176101001790556111896123f4565b603780546001600160a01b038086167fffffffffffffffffffffffff000000000000000000000000000000000000000092831617909255603e8054928516929091169190911790556111d961245b565b6032546001600160a01b031661121657603280547fffffffffffffffffffffffff00000000000000000000000000000000000000001661dead1790555b61121e61260e565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050565b6112896122e1565b6112968560400151612320565b156112cd576040517fc5defbad00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6112d5611e8c565b1561131657606085015115611316576040517fbd58e0a200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000611320611e29565b6001600160a01b031663bb8aa1fc866040518263ffffffff1660e01b815260040161134d91815260200190565b606060405180830381865afa15801561136a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061138e91906149da565b603e546040517f496b9c160000000000000000000000000000000000000000000000000000000081526001600160a01b0380841660048301529295509116925063496b9c169150602401602060405180830381865afa1580156113f5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061141991906149bd565b61144f576040517ff395240e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b603e546040517f04e50fed0000000000000000000000000000000000000000000000000000000081526001600160a01b038381166004830152909116906304e50fed90602401602060405180830381865afa1580156114b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114d691906149bd565b61150c576040517fe29927ed00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001816001600160a01b031663200d2ed26040518163ffffffff1660e01b8152600401602060405180830381865afa15801561154c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115709190614a56565b600281111561158157611581614a27565b036115b8576040517fe29927ed00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61162a816001600160a01b031663cf09e0d06040518163ffffffff1660e01b8152600401602060405180830381865afa1580156115f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061161d9190614a77565b67ffffffffffffffff1690565b67ffffffffffffffff16421161166c576040517fb4caa4e500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61168361167e36869003860186614a94565b612707565b6116eb826001600160a01b031663bcef3b556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116e89190614afa565b90565b14611722576040517f426149af00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061172d87612349565b9050600081600060405160200161174e929190918252602082015260400190565b60408051601f19818403018152828252805160209182012090830181905292506117c5910160408051601f19818403018152828201909152600182527f01000000000000000000000000000000000000000000000000000000000000006020830152906117bb8789614b13565b8960400135612746565b1515600003611800576040517f2e57ef3a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805180820182526001600160a01b03808616825267ffffffffffffffff42811660208085019182526000888152603982528681203380835290835287822096518754945190951674010000000000000000000000000000000000000000027fffffffff000000000000000000000000000000000000000000000000000000009094169486169490941792909217909455868152603c845284812080546001810182559082528482200180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169092179091558b840151928c01519351928216939091169185917f67a6208cfcc0801d50f6cbe764733f4fddf66ac0b04442061a8a8c0cb6b63f6291a4604051339083907f798f9f13695f8f045aa5f80ed8efebb695f3c7fe65da381969f2f28bf3c60b9790600090a35050505050505050565b603e54604080517f4086d18300000000000000000000000000000000000000000000000000000000815290516000926001600160a01b031691634086d1839160048083019260209291908290030181865afa1580156119a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109e29190614a77565b603754604080517f5c975abb00000000000000000000000000000000000000000000000000000000815290516000926001600160a01b031691635c975abb9160048083019260209291908290030181865afa158015611a2d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109e291906149bd565b60008281526039602090815260408083206001600160a01b0385811685529083528184208251808401845290549182168082527401000000000000000000000000000000000000000090920467ffffffffffffffff1681850152868552603390935292205490919060ff1615611af3576040517f730a107400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b816020015167ffffffffffffffff16600003611b3b576040517fcca6afda00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611b7c816001600160a01b031663cf09e0d06040518163ffffffff1660e01b8152600401602060405180830381865afa1580156115f9573d6000803e3d6000fd5b67ffffffffffffffff16826020015167ffffffffffffffff1611611bcc576040517fb4caa4e500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f0000000000000000000000000000000000000000000000000000000000000000826020015167ffffffffffffffff1642611c079190614b97565b11611c3e576040517fd9bc01be00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b603e546040517f6c4f44670000000000000000000000000000000000000000000000000000000081526001600160a01b03838116600483015290911690636c4f446790602401602060405180830381865afa158015611ca1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cc591906149bd565b610fa2576040517f332a57f800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b611d078133610c52565b50565b603e54604080517f952b279700000000000000000000000000000000000000000000000000000000815290516000926001600160a01b03169163952b27979160048083019260209291908290030181865afa158015611d6d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109e29190614afa565b6000611d9e826028614bae565b61109390615208614bde565b603c6020528160005260406000208181548110611dc657600080fd5b6000918252602090912001546001600160a01b03169150829050565b6000611dec610a6e565b6001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109be573d6000803e3d6000fd5b603e54604080517ff2b4e61700000000000000000000000000000000000000000000000000000000815290516000926001600160a01b03169163f2b4e6179160048083019260209291908290030181865afa1580156109be573d6000803e3d6000fd5b6037546040517f47af267b0000000000000000000000000000000000000000000000000000000081527f435553544f4d5f4741535f544f4b454e0000000000000000000000000000000060048201526000916001600160a01b0316906347af267b90602401602060405180830381865afa158015611a2d573d6000803e3d6000fd5b6037546040517f47af267b0000000000000000000000000000000000000000000000000000000081527f4554485f4c4f434b424f5800000000000000000000000000000000000000000060048201526000916001600160a01b0316906347af267b90602401602060405180830381865afa158015611f90573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fb491906149bd565b80156109e2575050603f546001600160a01b0316151590565b6000323303611fdc5750600190565b333b60170361200457604051602081016040526020600082333c5160e81c62ef010014905090565b50600090565b600154600090612040907801000000000000000000000000000000000000000000000000900467ffffffffffffffff1643614b97565b9050600061204c61276a565b90506000816020015160ff16826000015163ffffffff1661206d9190614c39565b905082156121a4576001546000906120a4908390700100000000000000000000000000000000900467ffffffffffffffff16614c83565b90506000836040015160ff16836120bb9190614cf7565b6001546120db9084906fffffffffffffffffffffffffffffffff16614cf7565b6120e59190614c39565b6001549091506000906121369061210f9084906fffffffffffffffffffffffffffffffff16614db3565b866060015163ffffffff168760a001516fffffffffffffffffffffffffffffffff16612823565b905060018611156121655761216261210f82876040015160ff1660018a61215d9190614b97565b612842565b90505b6fffffffffffffffffffffffffffffffff16780100000000000000000000000000000000000000000000000067ffffffffffffffff4316021760015550505b600180548691906010906121d7908490700100000000000000000000000000000000900467ffffffffffffffff16614bde565b92506101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550816000015163ffffffff16600160000160109054906101000a900467ffffffffffffffff1667ffffffffffffffff161315612264576040517f77ebef4d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600154600090612290906fffffffffffffffffffffffffffffffff1667ffffffffffffffff881661499e565b905060006122a248633b9aca00612897565b6122ac9083614e27565b905060005a6122bb9088614b97565b9050808211156122d7576122d76122d28284614b97565b6128ae565b5050505050505050565b6122e96119ca565b15611cfb576040517fb9c3c2ef00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006001600160a01b038216301480611093575050603f546001600160a01b0390811691161490565b80516020808301516040808501516060860151608087015160a08801519351600097612379979096959101614e3b565b604051602081830303815290604052805190602001209050919050565b60008060006123a68660006128dc565b9050806123dc576308c379a06000526020805278185361666543616c6c3a204e6f7420656e6f756768206761736058526064601cfd5b600080855160208701888b5af1979650505050505050565b336123fd610a6e565b6001600160a01b031614158015612424575033612418611de2565b6001600160a01b031614155b15611cfb576040517fc4050a2600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6037546040517f47af267b0000000000000000000000000000000000000000000000000000000081527f4554485f4c4f434b424f5800000000000000000000000000000000000000000060048201526001600160a01b03909116906347af267b90602401602060405180830381865afa1580156124dc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061250091906149bd565b80156125155750603f546001600160a01b0316155b806125d757506037546040517f47af267b0000000000000000000000000000000000000000000000000000000081527f4554485f4c4f434b424f5800000000000000000000000000000000000000000060048201526001600160a01b03909116906347af267b90602401602060405180830381865afa15801561259c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125c091906149bd565b1580156125d75750603f546001600160a01b031615155b15611cfb576040517f9c46cd7900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600054610100900460ff1661268b5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401611147565b6001547801000000000000000000000000000000000000000000000000900467ffffffffffffffff16600003611cfb5760408051606081018252633b9aca00808252600060208301524367ffffffffffffffff169190920181905278010000000000000000000000000000000000000000000000000217600155565b60008160000151826020015183604001518460600151604051602001612379949392919093845260208401929092526040830152606082015260800190565b600080612752866128fa565b90506127608186868661292c565b9695505050505050565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a0810191909152603754604080517fcc731b0200000000000000000000000000000000000000000000000000000000815290516000926001600160a01b03169163cc731b029160048083019260c09291908290030181865afa1580156127ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110939190614e9b565b6000612838612832858561295c565b8361296c565b90505b9392505050565b6000670de0b6b3a764000061288361285a8583614c39565b61286c90670de0b6b3a7640000614c83565b61287e85670de0b6b3a7640000614cf7565b61297b565b61288d9086614cf7565b6128389190614c39565b6000818310156128a7578161283b565b5090919050565b6000805a90505b825a6128c19083614b97565b10156128d7576128d082614f57565b91506128b5565b505050565b600080603f83619c4001026040850201603f5a021015949350505050565b6060818051906020012060405160200161291691815260200190565b6040516020818303038152906040529050919050565b60006129538461293d8786866129ac565b8051602091820120825192909101919091201490565b95945050505050565b6000818312156128a7578161283b565b60008183126128a7578161283b565b600061283b670de0b6b3a764000083612993866132be565b61299d9190614cf7565b6129a79190614c39565b6134e8565b606060008451116129ff5760405162461bcd60e51b815260206004820152601560248201527f4d65726b6c65547269653a20656d707479206b657900000000000000000000006044820152606401611147565b6000612a0a8461370d565b90506000612a17866137f9565b9050600084604051602001612a2e91815260200190565b60405160208183030381529060405290506000805b845181101561324f576000858281518110612a6057612a60614f71565b602002602001015190508451831115612ae15760405162461bcd60e51b815260206004820152602e60248201527f4d65726b6c65547269653a206b657920696e646578206578636565647320746f60448201527f74616c206b6579206c656e6774680000000000000000000000000000000000006064820152608401611147565b82600003612b805780518051602091820120604051612b2f92612b0992910190815260200190565b604051602081830303815290604052858051602091820120825192909101919091201490565b612b7b5760405162461bcd60e51b815260206004820152601d60248201527f4d65726b6c65547269653a20696e76616c696420726f6f7420686173680000006044820152606401611147565b612ca3565b805151602011612c1c5780518051602091820120604051612baa92612b0992910190815260200190565b612b7b5760405162461bcd60e51b815260206004820152602760248201527f4d65726b6c65547269653a20696e76616c6964206c6172676520696e7465726e60448201527f616c2068617368000000000000000000000000000000000000000000000000006064820152608401611147565b805184516020808701919091208251919092012014612ca35760405162461bcd60e51b815260206004820152602660248201527f4d65726b6c65547269653a20696e76616c696420696e7465726e616c206e6f6460448201527f65206861736800000000000000000000000000000000000000000000000000006064820152608401611147565b612caf60106001614fa0565b81602001515103612e575784518303612def57612ce98160200151601081518110612cdc57612cdc614f71565b602002602001015161385c565b96506000875111612d625760405162461bcd60e51b815260206004820152603b60248201527f4d65726b6c65547269653a2076616c7565206c656e677468206d75737420626560448201527f2067726561746572207468616e207a65726f20286272616e63682900000000006064820152608401611147565b60018651612d709190614b97565b8214612de45760405162461bcd60e51b815260206004820152603a60248201527f4d65726b6c65547269653a2076616c7565206e6f6465206d757374206265206c60448201527f617374206e6f646520696e2070726f6f6620286272616e6368290000000000006064820152608401611147565b50505050505061283b565b6000858481518110612e0357612e03614f71565b602001015160f81c60f81b60f81c9050600082602001518260ff1681518110612e2e57612e2e614f71565b60200260200101519050612e4181613910565b9550612e4e600186614fa0565b9450505061323c565b6002816020015151036131ce576000612e6f82613935565b9050600081600081518110612e8657612e86614f71565b016020015160f81c90506000612e9d600283614fb8565b612ea8906002614fda565b90506000612eb9848360ff16613959565b90506000612ec78a89613959565b90506000612ed5838361398f565b905080835114612f4d5760405162461bcd60e51b815260206004820152603a60248201527f4d65726b6c65547269653a20706174682072656d61696e646572206d7573742060448201527f736861726520616c6c206e6962626c65732077697468206b65790000000000006064820152608401611147565b60ff851660021480612f62575060ff85166003145b156131035780825114612fdd5760405162461bcd60e51b815260206004820152603d60248201527f4d65726b6c65547269653a206b65792072656d61696e646572206d757374206260448201527f65206964656e746963616c20746f20706174682072656d61696e6465720000006064820152608401611147565b612ff78760200151600181518110612cdc57612cdc614f71565b9c5060008d51116130705760405162461bcd60e51b815260206004820152603960248201527f4d65726b6c65547269653a2076616c7565206c656e677468206d75737420626560448201527f2067726561746572207468616e207a65726f20286c65616629000000000000006064820152608401611147565b60018c5161307e9190614b97565b88146130f25760405162461bcd60e51b815260206004820152603860248201527f4d65726b6c65547269653a2076616c7565206e6f6465206d757374206265206c60448201527f617374206e6f646520696e2070726f6f6620286c6561662900000000000000006064820152608401611147565b50505050505050505050505061283b565b60ff85161580613116575060ff85166001145b1561315557613142876020015160018151811061313557613135614f71565b6020026020010151613910565b995061314e818a614fa0565b98506131c3565b60405162461bcd60e51b815260206004820152603260248201527f4d65726b6c65547269653a2072656365697665642061206e6f6465207769746860448201527f20616e20756e6b6e6f776e2070726566697800000000000000000000000000006064820152608401611147565b50505050505061323c565b60405162461bcd60e51b815260206004820152602860248201527f4d65726b6c65547269653a20726563656976656420616e20756e70617273656160448201527f626c65206e6f64650000000000000000000000000000000000000000000000006064820152608401611147565b508061324781614f57565b915050612a43565b5060405162461bcd60e51b815260206004820152602560248201527f4d65726b6c65547269653a2072616e206f7574206f662070726f6f6620656c6560448201527f6d656e74730000000000000000000000000000000000000000000000000000006064820152608401611147565b600080821361330f5760405162461bcd60e51b815260206004820152600960248201527f554e444546494e454400000000000000000000000000000000000000000000006044820152606401611147565b6000606061331c84613a43565b03609f8181039490941b90931c6c465772b2bbbb5f824b15207a3081018102606090811d6d0388eaa27412d5aca026815d636e018202811d6d0df99ac502031bf953eff472fdcc018202811d6d13cdffb29d51d99322bdff5f2211018202811d6d0a0f742023def783a307a986912e018202811d6d01920d8043ca89b5239253284e42018202811d6c0b7a86d7375468fac667a0a527016c29508e458543d8aa4df2abee7883018302821d6d0139601a2efabe717e604cbb4894018302821d6d02247f7a7b6594320649aa03aba1018302821d7fffffffffffffffffffffffffffffffffffffff73c0c716a594e00d54e3c4cbc9018302821d7ffffffffffffffffffffffffffffffffffffffdc7b88c420e53a9890533129f6f01830290911d7fffffffffffffffffffffffffffffffffffffff465fda27eb4d63ded474e5f832019091027ffffffffffffffff5f6af8f7b3396644f18e157960000000000000000000000000105711340daa0d5f769dba1915cef59f0815a5506027d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b393909302929092017d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b88642840160ae1d92915050565b60007ffffffffffffffffffffffffffffffffffffffffffffffffdb731c958f34d94c1821361351957506000919050565b680755bf798b4a1bf1e582126135715760405162461bcd60e51b815260206004820152600c60248201527f4558505f4f564552464c4f5700000000000000000000000000000000000000006044820152606401611147565b6503782dace9d9604e83901b059150600060606bb17217f7d1cf79abc9e3b39884821b056b80000000000000000000000001901d6bb17217f7d1cf79abc9e3b39881029093037fffffffffffffffffffffffffffffffffffffffdbf3ccf1604d263450f02a550481018102606090811d6d0277594991cfc85f6e2461837cd9018202811d7fffffffffffffffffffffffffffffffffffffe5adedaa1cb095af9e4da10e363c018202811d6db1bbb201f443cf962f1a1d3db4a5018202811d7ffffffffffffffffffffffffffffffffffffd38dc772608b0ae56cce01296c0eb018202811d6e05180bb14799ab47a8a8cb2a527d57016d02d16720577bd19bf614176fe9ea6c10fe68e7fd37d0007b713f765084018402831d9081019084017ffffffffffffffffffffffffffffffffffffffe2c69812cf03b0763fd454a8f7e010290911d6e0587f503bb6ea29d25fcb7401964500190910279d835ebba824c98fb31b83b2ca45c000000000000000000000000010574029d9dc38563c32e5c2f6dc192ee70ef65f9978af30260c3939093039290921c92915050565b80516060908067ffffffffffffffff81111561372b5761372b6143e9565b60405190808252806020026020018201604052801561377057816020015b60408051808201909152606080825260208201528152602001906001900390816137495790505b50915060005b818110156137f257604051806040016040528085838151811061379b5761379b614f71565b602002602001015181526020016137ca8684815181106137bd576137bd614f71565b6020026020010151613aff565b8152508382815181106137df576137df614f71565b6020908102919091010152600101613776565b5050919050565b606080604051905082518060011b603f8101601f1916830160405280835250602084016020830160005b83811015613851578060011b82018184015160001a8060041c8253600f811660018301535050600101613823565b509295945050505050565b6060600080600061386c85613b12565b91945092509050600081600181111561388757613887614a27565b146138be576040517f1ff9b2e400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6138c88284614fa0565b855114613901576040517f5c5537b800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61295385602001518484613fb0565b6060602082600001511061392c576139278261385c565b611093565b61109382614044565b60606110936139548360200151600081518110612cdc57612cdc614f71565b6137f9565b6060825182106139785750604080516020810190915260008152611093565b61283b838384865161398a9190614b97565b61405a565b60008082518451106139a25782516139a5565b83515b90505b8082108015613a2c57508282815181106139c4576139c4614f71565b602001015160f81c60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916848381518110613a0357613a03614f71565b01602001517fff0000000000000000000000000000000000000000000000000000000000000016145b15613a3c578160010191506139a8565b5092915050565b6000808211613a945760405162461bcd60e51b815260206004820152600960248201527f554e444546494e454400000000000000000000000000000000000000000000006044820152606401611147565b5060016fffffffffffffffffffffffffffffffff821160071b82811c67ffffffffffffffff1060061b1782811c63ffffffff1060051b1782811c61ffff1060041b1782811c60ff10600390811b90911783811c600f1060021b1783811c909110821b1791821c111790565b6060611093613b0d836141c6565b614233565b60008060008360000151600003613b55576040517f5ab458fb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6020840151805160001a607f8111613b7a576000600160009450945094505050613fa9565b60b78111613c90576000613b8f608083614b97565b905080876000015111613bce576040517f66c9448500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001838101517fff00000000000000000000000000000000000000000000000000000000000000169082148015613c4657507f80000000000000000000000000000000000000000000000000000000000000007fff000000000000000000000000000000000000000000000000000000000000008216105b15613c7d576040517fbabb01dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5060019550935060009250613fa9915050565b60bf8111613dee576000613ca560b783614b97565b905080876000015111613ce4576040517f66c9448500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60018301517fff00000000000000000000000000000000000000000000000000000000000000166000819003613d46576040517fbabb01dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600184015160088302610100031c60378111613d8e576040517fbabb01dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b613d988184614fa0565b895111613dd1576040517f66c9448500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b613ddc836001614fa0565b9750955060009450613fa99350505050565b60f78111613e53576000613e0360c083614b97565b905080876000015111613e42576040517f66c9448500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600195509350849250613fa9915050565b6000613e6060f783614b97565b905080876000015111613e9f576040517f66c9448500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60018301517fff00000000000000000000000000000000000000000000000000000000000000166000819003613f01576040517fbabb01dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600184015160088302610100031c60378111613f49576040517fbabb01dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b613f538184614fa0565b895111613f8c576040517f66c9448500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b613f97836001614fa0565b9750955060019450613fa99350505050565b9193909250565b60608167ffffffffffffffff811115613fcb57613fcb6143e9565b6040519080825280601f01601f191660200182016040528015613ff5576020820181803683370190505b509050811561283b57600061400a8486614fa0565b90506020820160005b8481101561402b578281015182820152602001614013565b8481111561403a576000858301525b5050509392505050565b6060611093826020015160008460000151613fb0565b60608182601f0110156140af5760405162461bcd60e51b815260206004820152600e60248201527f736c6963655f6f766572666c6f770000000000000000000000000000000000006044820152606401611147565b8282840110156141015760405162461bcd60e51b815260206004820152600e60248201527f736c6963655f6f766572666c6f770000000000000000000000000000000000006044820152606401611147565b818301845110156141545760405162461bcd60e51b815260206004820152601160248201527f736c6963655f6f75744f66426f756e64730000000000000000000000000000006044820152606401611147565b60608215801561417357604051915060008252602082016040526141bd565b6040519150601f8416801560200281840101858101878315602002848b0101015b818310156141ac578051835260209283019201614194565b5050858452601f01601f1916604052505b50949350505050565b60408051808201909152600080825260208201528151600003614215576040517f5ab458fb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50604080518082019091528151815260209182019181019190915290565b6060600080600061424385613b12565b91945092509050600181600181111561425e5761425e614a27565b14614295576040517f4b9c6abe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84516142a18385614fa0565b146142d8576040517f5c5537b800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604080516020808252610420820190925290816020015b60408051808201909152600080825260208201528152602001906001900390816142ef5790505093506000835b86518110156143dd576000806143626040518060400160405280858c600001516143469190614b97565b8152602001858c6020015161435b9190614fa0565b9052613b12565b50915091506040518060400160405280838361437e9190614fa0565b8152602001848b602001516143939190614fa0565b8152508885815181106143a8576143a8614f71565b60209081029190910101526143be600185614fa0565b93506143ca8183614fa0565b6143d49084614fa0565b9250505061431c565b50845250919392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715614441576144416143e9565b604052919050565b6001600160a01b0381168114611d0757600080fd5b600082601f83011261446f57600080fd5b813567ffffffffffffffff811115614489576144896143e9565b61449c6020601f19601f84011601614418565b8181528460208386010111156144b157600080fd5b816020850160208301376000918101602001919091529392505050565b600060c082840312156144e057600080fd5b60405160c0810167ffffffffffffffff8282108183111715614504576145046143e9565b81604052829350843583526020850135915061451f82614449565b8160208401526040850135915061453582614449565b816040840152606085013560608401526080850135608084015260a085013591508082111561456357600080fd5b506145708582860161445e565b60a0830152505092915050565b6000806040838503121561459057600080fd5b823567ffffffffffffffff8111156145a757600080fd5b6145b3858286016144ce565b92505060208301356145c481614449565b809150509250929050565b6000602082840312156145e157600080fd5b813561283b81614449565b600080604083850312156145ff57600080fd5b823561460a81614449565b915060208301356145c481614449565b600080600080600085870360e081121561463357600080fd5b863567ffffffffffffffff8082111561464b57600080fd5b6146578a838b016144ce565b97506020890135965060807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08401121561469057600080fd5b60408901955060c08901359250808311156146aa57600080fd5b828901925089601f8401126146be57600080fd5b82359150808211156146cf57600080fd5b508860208260051b84010111156146e557600080fd5b959894975092955050506020019190565b60006020828403121561470857600080fd5b5035919050565b60005b8381101561472a578181015183820152602001614712565b83811115610fa25750506000910152565b6000815180845261475381602086016020860161470f565b601f01601f19169290920160200192915050565b60208152600061283b602083018461473b565b6000806040838503121561478d57600080fd5b8235915060208301356145c481614449565b6000602082840312156147b157600080fd5b813567ffffffffffffffff8111156147c857600080fd5b6147d4848285016144ce565b949350505050565b67ffffffffffffffff81168114611d0757600080fd5b60006020828403121561480457600080fd5b813561283b816147dc565b6000806040838503121561482257600080fd5b50508035926020909101359150565b8015158114611d0757600080fd5b600080600080600060a0868803121561485757600080fd5b853561486281614449565b9450602086013593506040860135614879816147dc565b9250606086013561488981614831565b9150608086013567ffffffffffffffff8111156148a557600080fd5b6148b18882890161445e565b9150509295509295909350565b8581528460208201527fffffffffffffffff0000000000000000000000000000000000000000000000008460c01b16604082015282151560f81b60488201526000825161491281604985016020870161470f565b919091016049019695505050505050565b60006020828403121561493557600080fd5b815161283b81614449565b63ffffffff81168114611d0757600080fd5b60006020828403121561496457600080fd5b815161283b81614940565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160001904831182151516156149b8576149b861496f565b500290565b6000602082840312156149cf57600080fd5b815161283b81614831565b6000806000606084860312156149ef57600080fd5b83516149fa81614940565b6020850151909350614a0b816147dc565b6040850151909250614a1c81614449565b809150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600060208284031215614a6857600080fd5b81516003811061283b57600080fd5b600060208284031215614a8957600080fd5b815161283b816147dc565b600060808284031215614aa657600080fd5b6040516080810181811067ffffffffffffffff82111715614ac957614ac96143e9565b8060405250823581526020830135602082015260408301356040820152606083013560608201528091505092915050565b600060208284031215614b0c57600080fd5b5051919050565b600067ffffffffffffffff80841115614b2e57614b2e6143e9565b8360051b6020614b3f818301614418565b868152918501918181019036841115614b5757600080fd5b865b84811015614b8b57803586811115614b715760008081fd5b614b7d36828b0161445e565b845250918301918301614b59565b50979650505050505050565b600082821015614ba957614ba961496f565b500390565b600067ffffffffffffffff80831681851681830481118215151615614bd557614bd561496f565b02949350505050565b600067ffffffffffffffff808316818516808303821115614c0157614c0161496f565b01949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600082614c4857614c48614c0a565b60001983147f800000000000000000000000000000000000000000000000000000000000000083141615614c7e57614c7e61496f565b500590565b6000808312837f800000000000000000000000000000000000000000000000000000000000000001831281151615614cbd57614cbd61496f565b837f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff018313811615614cf157614cf161496f565b50500390565b60007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600084136000841385830485118282161615614d3857614d3861496f565b7f80000000000000000000000000000000000000000000000000000000000000006000871286820588128184161615614d7357614d7361496f565b60008712925087820587128484161615614d8f57614d8f61496f565b87850587128184161615614da557614da561496f565b505050929093029392505050565b6000808212827f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03841381151615614ded57614ded61496f565b827f8000000000000000000000000000000000000000000000000000000000000000038412811615614e2157614e2161496f565b50500190565b600082614e3657614e36614c0a565b500490565b86815260006001600160a01b03808816602084015280871660408401525084606083015283608083015260c060a0830152614e7960c083018461473b565b98975050505050505050565b805160ff81168114614e9657600080fd5b919050565b600060c08284031215614ead57600080fd5b60405160c0810181811067ffffffffffffffff82111715614ed057614ed06143e9565b6040528251614ede81614940565b8152614eec60208401614e85565b6020820152614efd60408401614e85565b60408201526060830151614f1081614940565b60608201526080830151614f2381614940565b608082015260a08301516fffffffffffffffffffffffffffffffff81168114614f4b57600080fd5b60a08201529392505050565b60006000198203614f6a57614f6a61496f565b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008219821115614fb357614fb361496f565b500190565b600060ff831680614fcb57614fcb614c0a565b8060ff84160691505092915050565b600060ff821660ff841680821015614ff457614ff461496f565b9003939250505056fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\xC0`@R4\x80\x15b\0\0\x11W`\0\x80\xFD[P`@Qb\0Qi8\x03\x80b\0Qi\x839\x81\x01`@\x81\x90Rb\0\x004\x91b\0\x01\x11V[`\x03`\x80R`\xA0\x81\x90Rb\0\0Hb\0\0OV[Pb\0\x01+V[`\0Ta\x01\0\x90\x04`\xFF\x16\x15b\0\0\xBCW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`'`$\x82\x01R\x7FInitializable: contract is initi`D\x82\x01Rfalizing`\xC8\x1B`d\x82\x01R`\x84\x01`@Q\x80\x91\x03\x90\xFD[`\0T`\xFF\x90\x81\x16\x10\x15b\0\x01\x0FW`\0\x80T`\xFF\x19\x16`\xFF\x90\x81\x17\x90\x91U`@Q\x90\x81R\x7F\x7F&\xB8?\xF9n\x1F+jh/\x138R\xF6y\x8A\t\xC4e\xDA\x95\x92\x14`\xCE\xFB8G@$\x98\x90` \x01`@Q\x80\x91\x03\x90\xA1[V[`\0` \x82\x84\x03\x12\x15b\0\x01$W`\0\x80\xFD[PQ\x91\x90PV[`\x80Q`\xA0QaP\nb\0\x01_`\09`\0\x81\x81a\x05\xFC\x01Ra\x1B\xCE\x01R`\0\x81\x81a\x02c\x01Ra\x10\x9B\x01RaP\n`\0\xF3\xFE`\x80`@R`\x046\x10a\x01\xD1W`\x005`\xE0\x1C\x80cq\xC1Vn\x11a\0\xF7W\x80c\xA3\x86\x0FH\x11a\0\x95W\x80c\xCF\xF0\xAB\x96\x11a\0dW\x80c\xCF\xF0\xAB\x96\x14a\x06 W\x80c\xDA\xD5D\xE0\x14a\x06\xC1W\x80c\xE9\xE0\\B\x14a\x06\xD6W\x80c\xF2\xB4\xE6\x17\x14a\x06\xE9W`\0\x80\xFD[\x80c\xA3\x86\x0FH\x14a\x05 W\x80c\xB6\x82\xC4D\x14a\x05@W\x80c\xBB,r~\x14a\x05`W\x80c\xBFe:\\\x14a\x05\xEDW`\0\x80\xFD[\x80c\x95+'\x97\x11a\0\xD1W\x80c\x95+'\x97\x14a\x04\x9BW\x80c\x9B\xF6-\x82\x14a\x04\xB0W\x80c\xA1B8\xE7\x14a\x04\xD0W\x80c\xA3]\x99\xDF\x14a\x05\0W`\0\x80\xFD[\x80cq\xC1Vn\x14a\x04[W\x80c\x8BL@\xB0\x14a\x01\xF6W\x80c\x8C1R\xE9\x14a\x04{W`\0\x80\xFD[\x80cE\x88M2\x11a\x01oW\x80cQ7G\xAB\x11a\x01>W\x80cQ7G\xAB\x14a\x03\x9FW\x80cT\xFDMP\x14a\x03\xDAW\x80c\\\x0C\xBA3\x14a\x04&W\x80c\\\x97Z\xBB\x14a\x04FW`\0\x80\xFD[\x80cE\x88M2\x14a\x03\x01W\x80cH\\\xC9U\x14a\x031W\x80cHpIo\x14a\x03QW\x80cO\xD0CL\x14a\x03qW`\0\x80\xFD[\x80c<\x9F9|\x11a\x01\xABW\x80c<\x9F9|\x14a\x02\x8DW\x80c>G\x15\x8C\x14a\x02\xB7W\x80cC\xCA\x1CP\x14a\x02\xCCW\x80cE*\x93 \x14a\x02\xECW`\0\x80\xFD[\x80c3\xD7\xE2\xBD\x14a\x01\xFDW\x80c5\xE8\n\xB3\x14a\x02:W\x80c8\xD3\x8C\x97\x14a\x02OW`\0\x80\xFD[6a\x01\xF8Wa\x01\xF634b\x01\x86\xA0`\0`@Q\x80` \x01`@R\x80`\0\x81RPa\x06\xFEV[\0[`\0\x80\xFD[4\x80\x15a\x02\tW`\0\x80\xFD[P`7Ta\x02\x1D\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[4\x80\x15a\x02FW`\0\x80\xFD[Pa\x02\x1Da\t[V[4\x80\x15a\x02[W`\0\x80\xFD[P`@Q`\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x81R` \x01a\x021V[4\x80\x15a\x02\x99W`\0\x80\xFD[Pa\x02\xA2a\t\xE7V[`@Qc\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01a\x021V[4\x80\x15a\x02\xC3W`\0\x80\xFD[Pa\x02\x1Da\nnV[4\x80\x15a\x02\xD8W`\0\x80\xFD[Pa\x01\xF6a\x02\xE76`\x04aE}V[a\x0CRV[4\x80\x15a\x02\xF8W`\0\x80\xFD[Pa\x02\x1Da\x0F\xA8V[4\x80\x15a\x03\rW`\0\x80\xFD[Pa\x03!a\x03\x1C6`\x04aE\xCFV[a\x10\x0BV[`@Q\x90\x15\x15\x81R` \x01a\x021V[4\x80\x15a\x03=W`\0\x80\xFD[Pa\x01\xF6a\x03L6`\x04aE\xECV[a\x10\x99V[4\x80\x15a\x03]W`\0\x80\xFD[Pa\x01\xF6a\x03l6`\x04aF\x1AV[a\x12\x81V[4\x80\x15a\x03}W`\0\x80\xFD[Pa\x03\x86a\x19CV[`@Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01a\x021V[4\x80\x15a\x03\xABW`\0\x80\xFD[Pa\x03\xCCa\x03\xBA6`\x04aF\xF6V[`\0\x90\x81R`<` R`@\x90 T\x90V[`@Q\x90\x81R` \x01a\x021V[4\x80\x15a\x03\xE6W`\0\x80\xFD[P`@\x80Q\x80\x82\x01\x82R`\x05\x81R\x7F5.2.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` \x82\x01R\x90Qa\x021\x91\x90aGgV[4\x80\x15a\x042W`\0\x80\xFD[P`>Ta\x02\x1D\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[4\x80\x15a\x04RW`\0\x80\xFD[Pa\x03!a\x19\xCAV[4\x80\x15a\x04gW`\0\x80\xFD[Pa\x01\xF6a\x04v6`\x04aGzV[a\x1AQV[4\x80\x15a\x04\x87W`\0\x80\xFD[Pa\x01\xF6a\x04\x966`\x04aG\x9FV[a\x1C\xFDV[4\x80\x15a\x04\xA7W`\0\x80\xFD[Pa\x03\xCCa\x1D\nV[4\x80\x15a\x04\xBCW`\0\x80\xFD[P`2Ta\x02\x1D\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[4\x80\x15a\x04\xDCW`\0\x80\xFD[Pa\x03!a\x04\xEB6`\x04aF\xF6V[`3` R`\0\x90\x81R`@\x90 T`\xFF\x16\x81V[4\x80\x15a\x05\x0CW`\0\x80\xFD[Pa\x03\x86a\x05\x1B6`\x04aG\xF2V[a\x1D\x91V[4\x80\x15a\x05,W`\0\x80\xFD[Pa\x02\x1Da\x05;6`\x04aH\x0FV[a\x1D\xAAV[4\x80\x15a\x05LW`\0\x80\xFD[P`?Ta\x02\x1D\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[4\x80\x15a\x05lW`\0\x80\xFD[Pa\x05\xC5a\x05{6`\x04aGzV[`9` \x90\x81R`\0\x92\x83R`@\x80\x84 \x90\x91R\x90\x82R\x90 T`\x01`\x01`\xA0\x1B\x03\x81\x16\x90t\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x82V[`@\x80Q`\x01`\x01`\xA0\x1B\x03\x90\x93\x16\x83Rg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16` \x83\x01R\x01a\x021V[4\x80\x15a\x05\xF9W`\0\x80\xFD[P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x03\xCCV[4\x80\x15a\x06,W`\0\x80\xFD[P`\x01Ta\x06\x88\x90o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x90g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFFp\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x82\x04\x81\x16\x91x\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04\x16\x83V[`@\x80Qo\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x94\x16\x84Rg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x92\x83\x16` \x85\x01R\x91\x16\x90\x82\x01R``\x01a\x021V[4\x80\x15a\x06\xCDW`\0\x80\xFD[Pa\x02\x1Da\x1D\xE2V[a\x01\xF6a\x06\xE46`\x04aH?V[a\x06\xFEV[4\x80\x15a\x06\xF5W`\0\x80\xFD[Pa\x02\x1Da\x1E)V[\x82`\0Z\x90Pa\x07\x0Ca\x1E\x8CV[\x15a\x07IW4\x15a\x07IW`@Q\x7F\xBDX\xE0\xA2\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\x01`@Q\x80\x91\x03\x90\xFD[a\x07Qa\x1F\x0EV[\x15a\x07\xC6W4\x15a\x07\xC6W`?`\0\x90T\x90a\x01\0\n\x90\x04`\x01`\x01`\xA0\x1B\x03\x16`\x01`\x01`\xA0\x1B\x03\x16c\x1E\xE1\x16\xBF4`@Q\x82c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01`\0`@Q\x80\x83\x03\x81\x85\x88\x80;\x15\x80\x15a\x07\xACW`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x07\xC0W=`\0\x80>=`\0\xFD[PPPPP[\x83\x80\x15a\x07\xDBWP`\x01`\x01`\xA0\x1B\x03\x87\x16\x15\x15[\x15a\x08\x12W`@Q\x7F\xC5\xDE\xFB\xAD\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\x01`@Q\x80\x91\x03\x90\xFD[a\x08\x1C\x83Qa\x1D\x91V[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x85g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x10\x15a\x08iW`@Q\x7Fp\xC8\xBD\xBD\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\x01`@Q\x80\x91\x03\x90\xFD[b\x01\xD4\xC0\x83Q\x11\x15a\x08\xA7W`@Q\x7FZ\xA3\xBA\xC9\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\x01`@Q\x80\x91\x03\x90\xFD[3a\x08\xB0a\x1F\xCDV[a\x08\xCDWP3s\x11\x11\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x11\x11\x01[`\x004\x88\x88\x88\x88`@Q` \x01a\x08\xE8\x95\x94\x93\x92\x91\x90aH\xBEV[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x90P`\0\x89`\x01`\x01`\xA0\x1B\x03\x16\x83`\x01`\x01`\xA0\x1B\x03\x16\x7F\xB3\x815h\xD9\x99\x1F\xC9Q\x96\x1F\xCBLxH\x93WB@\xA2\x89%`M\t\xFCW|U\xBB|2\x84`@Qa\t>\x91\x90aGgV[`@Q\x80\x91\x03\x90\xA4PPa\tR\x82\x82a \nV[PPPPPPPV[`7T`@\x80Q\x7F5\xE8\n\xB3\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\x90Q`\0\x92`\x01`\x01`\xA0\x1B\x03\x16\x91c5\xE8\n\xB3\x91`\x04\x80\x83\x01\x92` \x92\x91\x90\x82\x90\x03\x01\x81\x86Z\xFA\x15\x80\x15a\t\xBEW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\t\xE2\x91\x90aI#V[\x90P\x90V[`>T`@\x80Q\x7F<\x9F9|\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\x90Q`\0\x92`\x01`\x01`\xA0\x1B\x03\x16\x91c<\x9F9|\x91`\x04\x80\x83\x01\x92` \x92\x91\x90\x82\x90\x03\x01\x81\x86Z\xFA\x15\x80\x15a\nJW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\t\xE2\x91\x90aIRV[`\0\x80a\n\x99\x7F\xB51'hJV\x8B1s\xAE\x13\xB9\xF8\xA6\x01n$>c\xB6\xE8\xEE\x11x\xD6\xA7\x17\x85\x0B]a\x03T\x90V[\x90P`\x01`\x01`\xA0\x1B\x03\x81\x16\x15a\n\xAFW\x91\x90PV[`@Q\x80`@\x01`@R\x80`\x1A\x81R` \x01\x7FOVM_L1CrossDomainMessenger\0\0\0\0\0\0\x81RPQ`\x02a\n\xF2\x91\x90aI\x9EV[`@\x80Q0` \x82\x01R`\0\x91\x81\x01\x91\x90\x91R\x7FOVM_L1CrossDomainMessenger\0\0\0\0\0\0\x91\x90\x91\x17\x90a\x0BM\x90``\x01[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 T\x90V[\x14a\x0B\x84W`@Q\x7FT\xE43\xCD\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\x01`@Q\x80\x91\x03\x90\xFD[`@\x80Q0` \x82\x01R`\x01\x91\x81\x01\x91\x90\x91R`\0\x90a\x0B\xA6\x90``\x01a\x0B3V[\x90P`\x01`\x01`\xA0\x1B\x03\x81\x16\x15a\x0C W\x80`\x01`\x01`\xA0\x1B\x03\x16c\x8D\xA5\xCB[`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x0B\xF5W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x0C\x19\x91\x90aI#V[\x92PPP\x90V[`@Q\x7F3!D\xDB\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\x01`@Q\x80\x91\x03\x90\xFD[a\x0CZa\"\xE1V[a\x0Cba\x1E\x8CV[\x15a\x0C\xA3W``\x82\x01Q\x15a\x0C\xA3W`@Q\x7F\xBDX\xE0\xA2\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\x01`@Q\x80\x91\x03\x90\xFD[`2T`\x01`\x01`\xA0\x1B\x03\x16a\xDE\xAD\x14a\x0C\xE9W`@Q\x7F\xDF\xEA\xAE\xB8\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\x01`@Q\x80\x91\x03\x90\xFD[a\x0C\xF6\x82`@\x01Qa# V[\x15a\r-W`@Q\x7F\xC5\xDE\xFB\xAD\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\x01`@Q\x80\x91\x03\x90\xFD[`\0a\r8\x83a#IV[\x90Pa\rD\x81\x83a\x1AQV[`\0\x81\x81R`3` R`@\x90 \x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x16`\x01\x17\x90Ua\r\x83a\x1F\x0EV[\x15a\x0E\x15W``\x83\x01Q\x15a\x0E\x15W`?T``\x84\x01Q`@Q\x7F\x8DD[\xD0\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`\x01`\x01`\xA0\x1B\x03\x90\x92\x16\x91c\x8DD[\xD0\x91a\r\xE2\x91`\x04\x01\x90\x81R` \x01\x90V[`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a\r\xFCW`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x0E\x10W=`\0\x80>=`\0\xFD[PPPP[\x82` \x01Q`2`\0a\x01\0\n\x81T\x81`\x01`\x01`\xA0\x1B\x03\x02\x19\x16\x90\x83`\x01`\x01`\xA0\x1B\x03\x16\x02\x17\x90UP`\0a\x0E^\x84`@\x01Q\x85`\x80\x01Q\x86``\x01Q\x87`\xA0\x01Qa#\x96V[`2\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16a\xDE\xAD\x17\x90U`@Q\x90\x91P\x82\x90\x7F\xDB\\vR\x85z\xA1c\xDA\xAD\xD6p\xE1\x16b\x8F\xB4.\x86\x9D\x8A\xC4%\x1E\xF8\x97\x1D\x9EW'\xDF\x1B\x90a\x0E\xC3\x90\x84\x15\x15\x81R` \x01\x90V[`@Q\x80\x91\x03\x90\xA2a\x0E\xD3a\x1F\x0EV[\x15a\x0F]W\x80\x15\x80\x15a\x0E\xEAWP`\0\x84``\x01Q\x11[\x15a\x0F]W`?`\0\x90T\x90a\x01\0\n\x90\x04`\x01`\x01`\xA0\x1B\x03\x16`\x01`\x01`\xA0\x1B\x03\x16c\x1E\xE1\x16\xBF\x85``\x01Q`@Q\x82c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01`\0`@Q\x80\x83\x03\x81\x85\x88\x80;\x15\x80\x15a\x0FCW`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x0FWW=`\0\x80>=`\0\xFD[PPPPP[\x80\x15\x80\x15a\x0FkWP2`\x01\x14[\x15a\x0F\xA2W`@Q\x7F\xABX\x106\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\x01`@Q\x80\x91\x03\x90\xFD[PPPPV[`7T`@\x80Q\x7FE*\x93 \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\x90Q`\0\x92`\x01`\x01`\xA0\x1B\x03\x16\x91cE*\x93 \x91`\x04\x80\x83\x01\x92` \x92\x91\x90\x82\x90\x03\x01\x81\x86Z\xFA\x15\x80\x15a\t\xBEW=`\0\x80>=`\0\xFD[`>T`@Q\x7FE\x88M2\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`\x01`\x01`\xA0\x1B\x03\x83\x81\x16`\x04\x83\x01R`\0\x92\x16\x90cE\x88M2\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x10oW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x10\x93\x91\x90aI\xBDV[\x92\x91PPV[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\0Ta\x01\0\x90\x04`\xFF\x16\x15\x80\x15a\x10\xD9WP`\0T`\xFF\x80\x83\x16\x91\x16\x10[a\x11PW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`.`$\x82\x01R\x7FInitializable: contract is alrea`D\x82\x01R\x7Fdy initialized\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01[`@Q\x80\x91\x03\x90\xFD[`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\x16`\xFF\x83\x16\x17a\x01\0\x17\x90Ua\x11\x89a#\xF4V[`7\x80T`\x01`\x01`\xA0\x1B\x03\x80\x86\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x92\x83\x16\x17\x90\x92U`>\x80T\x92\x85\x16\x92\x90\x91\x16\x91\x90\x91\x17\x90Ua\x11\xD9a$[V[`2T`\x01`\x01`\xA0\x1B\x03\x16a\x12\x16W`2\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16a\xDE\xAD\x17\x90U[a\x12\x1Ea&\x0EV[`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\x16\x90U`@Q`\xFF\x82\x16\x81R\x7F\x7F&\xB8?\xF9n\x1F+jh/\x138R\xF6y\x8A\t\xC4e\xDA\x95\x92\x14`\xCE\xFB8G@$\x98\x90` \x01`@Q\x80\x91\x03\x90\xA1PPPV[a\x12\x89a\"\xE1V[a\x12\x96\x85`@\x01Qa# V[\x15a\x12\xCDW`@Q\x7F\xC5\xDE\xFB\xAD\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\x01`@Q\x80\x91\x03\x90\xFD[a\x12\xD5a\x1E\x8CV[\x15a\x13\x16W``\x85\x01Q\x15a\x13\x16W`@Q\x7F\xBDX\xE0\xA2\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\x01`@Q\x80\x91\x03\x90\xFD[`\0a\x13 a\x1E)V[`\x01`\x01`\xA0\x1B\x03\x16c\xBB\x8A\xA1\xFC\x86`@Q\x82c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01a\x13M\x91\x81R` \x01\x90V[```@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x13jW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x13\x8E\x91\x90aI\xDAV[`>T`@Q\x7FIk\x9C\x16\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`\x01`\x01`\xA0\x1B\x03\x80\x84\x16`\x04\x83\x01R\x92\x95P\x91\x16\x92PcIk\x9C\x16\x91P`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x13\xF5W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x14\x19\x91\x90aI\xBDV[a\x14OW`@Q\x7F\xF3\x95$\x0E\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\x01`@Q\x80\x91\x03\x90\xFD[`>T`@Q\x7F\x04\xE5\x0F\xED\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`\x01`\x01`\xA0\x1B\x03\x83\x81\x16`\x04\x83\x01R\x90\x91\x16\x90c\x04\xE5\x0F\xED\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x14\xB2W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x14\xD6\x91\x90aI\xBDV[a\x15\x0CW`@Q\x7F\xE2\x99'\xED\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01\x81`\x01`\x01`\xA0\x1B\x03\x16c \r.\xD2`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x15LW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x15p\x91\x90aJVV[`\x02\x81\x11\x15a\x15\x81Wa\x15\x81aJ'V[\x03a\x15\xB8W`@Q\x7F\xE2\x99'\xED\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\x01`@Q\x80\x91\x03\x90\xFD[a\x16*\x81`\x01`\x01`\xA0\x1B\x03\x16c\xCF\t\xE0\xD0`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x15\xF9W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x16\x1D\x91\x90aJwV[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90V[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16B\x11a\x16lW`@Q\x7F\xB4\xCA\xA4\xE5\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\x01`@Q\x80\x91\x03\x90\xFD[a\x16\x83a\x16~6\x86\x90\x03\x86\x01\x86aJ\x94V[a'\x07V[a\x16\xEB\x82`\x01`\x01`\xA0\x1B\x03\x16c\xBC\xEF;U`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x16\xC4W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x16\xE8\x91\x90aJ\xFAV[\x90V[\x14a\x17\"W`@Q\x7FBaI\xAF\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\x01`@Q\x80\x91\x03\x90\xFD[`\0a\x17-\x87a#IV[\x90P`\0\x81`\0`@Q` \x01a\x17N\x92\x91\x90\x91\x82R` \x82\x01R`@\x01\x90V[`@\x80Q`\x1F\x19\x81\x84\x03\x01\x81R\x82\x82R\x80Q` \x91\x82\x01 \x90\x83\x01\x81\x90R\x92Pa\x17\xC5\x91\x01`@\x80Q`\x1F\x19\x81\x84\x03\x01\x81R\x82\x82\x01\x90\x91R`\x01\x82R\x7F\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0` \x83\x01R\x90a\x17\xBB\x87\x89aK\x13V[\x89`@\x015a'FV[\x15\x15`\0\x03a\x18\0W`@Q\x7F.W\xEF:\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\x01`@Q\x80\x91\x03\x90\xFD[`@\x80Q\x80\x82\x01\x82R`\x01`\x01`\xA0\x1B\x03\x80\x86\x16\x82Rg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFFB\x81\x16` \x80\x85\x01\x91\x82R`\0\x88\x81R`9\x82R\x86\x81 3\x80\x83R\x90\x83R\x87\x82 \x96Q\x87T\x94Q\x90\x95\x16t\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x02\x7F\xFF\xFF\xFF\xFF\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\x90\x94\x16\x94\x86\x16\x94\x90\x94\x17\x92\x90\x92\x17\x90\x94U\x86\x81R`<\x84R\x84\x81 \x80T`\x01\x81\x01\x82U\x90\x82R\x84\x82 \x01\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x90\x92\x17\x90\x91U\x8B\x84\x01Q\x92\x8C\x01Q\x93Q\x92\x82\x16\x93\x90\x91\x16\x91\x85\x91\x7Fg\xA6 \x8C\xFC\xC0\x80\x1DP\xF6\xCB\xE7ds?O\xDD\xF6j\xC0\xB0DB\x06\x1A\x8A\x8C\x0C\xB6\xB6?b\x91\xA4`@Q3\x90\x83\x90\x7Fy\x8F\x9F\x13i_\x8F\x04Z\xA5\xF8\x0E\xD8\xEF\xEB\xB6\x95\xF3\xC7\xFEe\xDA8\x19i\xF2\xF2\x8B\xF3\xC6\x0B\x97\x90`\0\x90\xA3PPPPPPPPV[`>T`@\x80Q\x7F@\x86\xD1\x83\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\x90Q`\0\x92`\x01`\x01`\xA0\x1B\x03\x16\x91c@\x86\xD1\x83\x91`\x04\x80\x83\x01\x92` \x92\x91\x90\x82\x90\x03\x01\x81\x86Z\xFA\x15\x80\x15a\x19\xA6W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\t\xE2\x91\x90aJwV[`7T`@\x80Q\x7F\\\x97Z\xBB\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\x90Q`\0\x92`\x01`\x01`\xA0\x1B\x03\x16\x91c\\\x97Z\xBB\x91`\x04\x80\x83\x01\x92` \x92\x91\x90\x82\x90\x03\x01\x81\x86Z\xFA\x15\x80\x15a\x1A-W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\t\xE2\x91\x90aI\xBDV[`\0\x82\x81R`9` \x90\x81R`@\x80\x83 `\x01`\x01`\xA0\x1B\x03\x85\x81\x16\x85R\x90\x83R\x81\x84 \x82Q\x80\x84\x01\x84R\x90T\x91\x82\x16\x80\x82Rt\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x92\x04g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81\x85\x01R\x86\x85R`3\x90\x93R\x92 T\x90\x91\x90`\xFF\x16\x15a\x1A\xF3W`@Q\x7Fs\n\x10t\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\x01`@Q\x80\x91\x03\x90\xFD[\x81` \x01Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\0\x03a\x1B;W`@Q\x7F\xCC\xA6\xAF\xDA\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\x01`@Q\x80\x91\x03\x90\xFD[a\x1B|\x81`\x01`\x01`\xA0\x1B\x03\x16c\xCF\t\xE0\xD0`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x15\xF9W=`\0\x80>=`\0\xFD[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x82` \x01Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x11a\x1B\xCCW`@Q\x7F\xB4\xCA\xA4\xE5\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\x01`@Q\x80\x91\x03\x90\xFD[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x82` \x01Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16Ba\x1C\x07\x91\x90aK\x97V[\x11a\x1C>W`@Q\x7F\xD9\xBC\x01\xBE\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\x01`@Q\x80\x91\x03\x90\xFD[`>T`@Q\x7FlODg\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`\x01`\x01`\xA0\x1B\x03\x83\x81\x16`\x04\x83\x01R\x90\x91\x16\x90clODg\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x1C\xA1W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x1C\xC5\x91\x90aI\xBDV[a\x0F\xA2W`@Q\x7F3*W\xF8\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\x01`@Q\x80\x91\x03\x90\xFD[V[a\x1D\x07\x813a\x0CRV[PV[`>T`@\x80Q\x7F\x95+'\x97\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\x90Q`\0\x92`\x01`\x01`\xA0\x1B\x03\x16\x91c\x95+'\x97\x91`\x04\x80\x83\x01\x92` \x92\x91\x90\x82\x90\x03\x01\x81\x86Z\xFA\x15\x80\x15a\x1DmW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\t\xE2\x91\x90aJ\xFAV[`\0a\x1D\x9E\x82`(aK\xAEV[a\x10\x93\x90aR\x08aK\xDEV[`<` R\x81`\0R`@`\0 \x81\x81T\x81\x10a\x1D\xC6W`\0\x80\xFD[`\0\x91\x82R` \x90\x91 \x01T`\x01`\x01`\xA0\x1B\x03\x16\x91P\x82\x90PV[`\0a\x1D\xECa\nnV[`\x01`\x01`\xA0\x1B\x03\x16c\x8D\xA5\xCB[`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\t\xBEW=`\0\x80>=`\0\xFD[`>T`@\x80Q\x7F\xF2\xB4\xE6\x17\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\x90Q`\0\x92`\x01`\x01`\xA0\x1B\x03\x16\x91c\xF2\xB4\xE6\x17\x91`\x04\x80\x83\x01\x92` \x92\x91\x90\x82\x90\x03\x01\x81\x86Z\xFA\x15\x80\x15a\t\xBEW=`\0\x80>=`\0\xFD[`7T`@Q\x7FG\xAF&{\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\x7FCUSTOM_GAS_TOKEN\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x04\x82\x01R`\0\x91`\x01`\x01`\xA0\x1B\x03\x16\x90cG\xAF&{\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x1A-W=`\0\x80>=`\0\xFD[`7T`@Q\x7FG\xAF&{\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\x7FETH_LOCKBOX\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x04\x82\x01R`\0\x91`\x01`\x01`\xA0\x1B\x03\x16\x90cG\xAF&{\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x1F\x90W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x1F\xB4\x91\x90aI\xBDV[\x80\x15a\t\xE2WPP`?T`\x01`\x01`\xA0\x1B\x03\x16\x15\x15\x90V[`\x0023\x03a\x1F\xDCWP`\x01\x90V[3;`\x17\x03a \x04W`@Q` \x81\x01`@R` `\0\x823=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a%\0\x91\x90aI\xBDV[\x80\x15a%\x15WP`?T`\x01`\x01`\xA0\x1B\x03\x16\x15[\x80a%\xD7WP`7T`@Q\x7FG\xAF&{\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\x7FETH_LOCKBOX\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x04\x82\x01R`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x90cG\xAF&{\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a%\x9CW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a%\xC0\x91\x90aI\xBDV[\x15\x80\x15a%\xD7WP`?T`\x01`\x01`\xA0\x1B\x03\x16\x15\x15[\x15a\x1C\xFBW`@Q\x7F\x9CF\xCDy\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\x01`@Q\x80\x91\x03\x90\xFD[`\0Ta\x01\0\x90\x04`\xFF\x16a&\x8BW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FInitializable: contract is not i`D\x82\x01R\x7Fnitializing\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x11GV[`\x01Tx\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\0\x03a\x1C\xFBW`@\x80Q``\x81\x01\x82Rc;\x9A\xCA\0\x80\x82R`\0` \x83\x01RCg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x91\x90\x92\x01\x81\x90Rx\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x02\x17`\x01UV[`\0\x81`\0\x01Q\x82` \x01Q\x83`@\x01Q\x84``\x01Q`@Q` \x01a#y\x94\x93\x92\x91\x90\x93\x84R` \x84\x01\x92\x90\x92R`@\x83\x01R``\x82\x01R`\x80\x01\x90V[`\0\x80a'R\x86a(\xFAV[\x90Pa'`\x81\x86\x86\x86a),V[\x96\x95PPPPPPV[`@\x80Q`\xC0\x81\x01\x82R`\0\x80\x82R` \x82\x01\x81\x90R\x91\x81\x01\x82\x90R``\x81\x01\x82\x90R`\x80\x81\x01\x82\x90R`\xA0\x81\x01\x91\x90\x91R`7T`@\x80Q\x7F\xCCs\x1B\x02\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\x90Q`\0\x92`\x01`\x01`\xA0\x1B\x03\x16\x91c\xCCs\x1B\x02\x91`\x04\x80\x83\x01\x92`\xC0\x92\x91\x90\x82\x90\x03\x01\x81\x86Z\xFA\x15\x80\x15a'\xFFW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x10\x93\x91\x90aN\x9BV[`\0a(8a(2\x85\x85a)\\V[\x83a)lV[\x90P[\x93\x92PPPV[`\0g\r\xE0\xB6\xB3\xA7d\0\0a(\x83a(Z\x85\x83aL9V[a(l\x90g\r\xE0\xB6\xB3\xA7d\0\0aL\x83V[a(~\x85g\r\xE0\xB6\xB3\xA7d\0\0aL\xF7V[a){V[a(\x8D\x90\x86aL\xF7V[a(8\x91\x90aL9V[`\0\x81\x83\x10\x15a(\xA7W\x81a(;V[P\x90\x91\x90PV[`\0\x80Z\x90P[\x82Za(\xC1\x90\x83aK\x97V[\x10\x15a(\xD7Wa(\xD0\x82aOWV[\x91Pa(\xB5V[PPPV[`\0\x80`?\x83a\x9C@\x01\x02`@\x85\x02\x01`?Z\x02\x10\x15\x94\x93PPPPV[``\x81\x80Q\x90` \x01 `@Q` \x01a)\x16\x91\x81R` \x01\x90V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x90P\x91\x90PV[`\0a)S\x84a)=\x87\x86\x86a)\xACV[\x80Q` \x91\x82\x01 \x82Q\x92\x90\x91\x01\x91\x90\x91 \x14\x90V[\x95\x94PPPPPV[`\0\x81\x83\x12\x15a(\xA7W\x81a(;V[`\0\x81\x83\x12a(\xA7W\x81a(;V[`\0a(;g\r\xE0\xB6\xB3\xA7d\0\0\x83a)\x93\x86a2\xBEV[a)\x9D\x91\x90aL\xF7V[a)\xA7\x91\x90aL9V[a4\xE8V[```\0\x84Q\x11a)\xFFW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x15`$\x82\x01R\x7FMerkleTrie: empty key\0\0\0\0\0\0\0\0\0\0\0`D\x82\x01R`d\x01a\x11GV[`\0a*\n\x84a7\rV[\x90P`\0a*\x17\x86a7\xF9V[\x90P`\0\x84`@Q` \x01a*.\x91\x81R` \x01\x90V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x90P`\0\x80[\x84Q\x81\x10\x15a2OW`\0\x85\x82\x81Q\x81\x10a*`Wa*`aOqV[` \x02` \x01\x01Q\x90P\x84Q\x83\x11\x15a*\xE1W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`.`$\x82\x01R\x7FMerkleTrie: key index exceeds to`D\x82\x01R\x7Ftal key length\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x11GV[\x82`\0\x03a+\x80W\x80Q\x80Q` \x91\x82\x01 `@Qa+/\x92a+\t\x92\x91\x01\x90\x81R` \x01\x90V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x85\x80Q` \x91\x82\x01 \x82Q\x92\x90\x91\x01\x91\x90\x91 \x14\x90V[a+{W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1D`$\x82\x01R\x7FMerkleTrie: invalid root hash\0\0\0`D\x82\x01R`d\x01a\x11GV[a,\xA3V[\x80QQ` \x11a,\x1CW\x80Q\x80Q` \x91\x82\x01 `@Qa+\xAA\x92a+\t\x92\x91\x01\x90\x81R` \x01\x90V[a+{W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`'`$\x82\x01R\x7FMerkleTrie: invalid large intern`D\x82\x01R\x7Fal hash\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`d\x82\x01R`\x84\x01a\x11GV[\x80Q\x84Q` \x80\x87\x01\x91\x90\x91 \x82Q\x91\x90\x92\x01 \x14a,\xA3W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`&`$\x82\x01R\x7FMerkleTrie: invalid internal nod`D\x82\x01R\x7Fe hash\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`d\x82\x01R`\x84\x01a\x11GV[a,\xAF`\x10`\x01aO\xA0V[\x81` \x01QQ\x03a.WW\x84Q\x83\x03a-\xEFWa,\xE9\x81` \x01Q`\x10\x81Q\x81\x10a,\xDCWa,\xDCaOqV[` \x02` \x01\x01Qa8\\V[\x96P`\0\x87Q\x11a-bW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`;`$\x82\x01R\x7FMerkleTrie: value length must be`D\x82\x01R\x7F greater than zero (branch)\0\0\0\0\0`d\x82\x01R`\x84\x01a\x11GV[`\x01\x86Qa-p\x91\x90aK\x97V[\x82\x14a-\xE4W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`:`$\x82\x01R\x7FMerkleTrie: value node must be l`D\x82\x01R\x7Fast node in proof (branch)\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x11GV[PPPPPPa(;V[`\0\x85\x84\x81Q\x81\x10a.\x03Wa.\x03aOqV[` \x01\x01Q`\xF8\x1C`\xF8\x1B`\xF8\x1C\x90P`\0\x82` \x01Q\x82`\xFF\x16\x81Q\x81\x10a..Wa..aOqV[` \x02` \x01\x01Q\x90Pa.A\x81a9\x10V[\x95Pa.N`\x01\x86aO\xA0V[\x94PPPa2SW`\0a>\x03`\xC0\x83aK\x97V[\x90P\x80\x87`\0\x01Q\x11a>BW`@Q\x7Ff\xC9D\x85\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01\x95P\x93P\x84\x92Pa?\xA9\x91PPV[`\0a>``\xF7\x83aK\x97V[\x90P\x80\x87`\0\x01Q\x11a>\x9FW`@Q\x7Ff\xC9D\x85\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01\x83\x01Q\x7F\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16`\0\x81\x90\x03a?\x01W`@Q\x7F\xBA\xBB\x01\xDD\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01\x84\x01Q`\x08\x83\x02a\x01\0\x03\x1C`7\x81\x11a?IW`@Q\x7F\xBA\xBB\x01\xDD\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\x01`@Q\x80\x91\x03\x90\xFD[a?S\x81\x84aO\xA0V[\x89Q\x11a?\x8CW`@Q\x7Ff\xC9D\x85\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\x01`@Q\x80\x91\x03\x90\xFD[a?\x97\x83`\x01aO\xA0V[\x97P\x95P`\x01\x94Pa?\xA9\x93PPPPV[\x91\x93\x90\x92PV[``\x81g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a?\xCBWa?\xCBaC\xE9V[`@Q\x90\x80\x82R\x80`\x1F\x01`\x1F\x19\x16` \x01\x82\x01`@R\x80\x15a?\xF5W` \x82\x01\x81\x806\x837\x01\x90P[P\x90P\x81\x15a(;W`\0a@\n\x84\x86aO\xA0V[\x90P` \x82\x01`\0[\x84\x81\x10\x15a@+W\x82\x81\x01Q\x82\x82\x01R` \x01a@\x13V[\x84\x81\x11\x15a@:W`\0\x85\x83\x01R[PPP\x93\x92PPPV[``a\x10\x93\x82` \x01Q`\0\x84`\0\x01Qa?\xB0V[``\x81\x82`\x1F\x01\x10\x15a@\xAFW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x0E`$\x82\x01R\x7Fslice_overflow\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`D\x82\x01R`d\x01a\x11GV[\x82\x82\x84\x01\x10\x15aA\x01W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x0E`$\x82\x01R\x7Fslice_overflow\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`D\x82\x01R`d\x01a\x11GV[\x81\x83\x01\x84Q\x10\x15aATW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x11`$\x82\x01R\x7Fslice_outOfBounds\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`D\x82\x01R`d\x01a\x11GV[``\x82\x15\x80\x15aAsW`@Q\x91P`\0\x82R` \x82\x01`@RaA\xBDV[`@Q\x91P`\x1F\x84\x16\x80\x15` \x02\x81\x84\x01\x01\x85\x81\x01\x87\x83\x15` \x02\x84\x8B\x01\x01\x01[\x81\x83\x10\x15aA\xACW\x80Q\x83R` \x92\x83\x01\x92\x01aA\x94V[PP\x85\x84R`\x1F\x01`\x1F\x19\x16`@RP[P\x94\x93PPPPV[`@\x80Q\x80\x82\x01\x90\x91R`\0\x80\x82R` \x82\x01R\x81Q`\0\x03aB\x15W`@Q\x7FZ\xB4X\xFB\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\x01`@Q\x80\x91\x03\x90\xFD[P`@\x80Q\x80\x82\x01\x90\x91R\x81Q\x81R` \x91\x82\x01\x91\x81\x01\x91\x90\x91R\x90V[```\0\x80`\0aBC\x85a;\x12V[\x91\x94P\x92P\x90P`\x01\x81`\x01\x81\x11\x15aB^WaB^aJ'V[\x14aB\x95W`@Q\x7FK\x9Cj\xBE\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\x01`@Q\x80\x91\x03\x90\xFD[\x84QaB\xA1\x83\x85aO\xA0V[\x14aB\xD8W`@Q\x7F\\U7\xB8\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\x01`@Q\x80\x91\x03\x90\xFD[`@\x80Q` \x80\x82Ra\x04 \x82\x01\x90\x92R\x90\x81` \x01[`@\x80Q\x80\x82\x01\x90\x91R`\0\x80\x82R` \x82\x01R\x81R` \x01\x90`\x01\x90\x03\x90\x81aB\xEFW\x90PP\x93P`\0\x83[\x86Q\x81\x10\x15aC\xDDW`\0\x80aCb`@Q\x80`@\x01`@R\x80\x85\x8C`\0\x01QaCF\x91\x90aK\x97V[\x81R` \x01\x85\x8C` \x01QaC[\x91\x90aO\xA0V[\x90Ra;\x12V[P\x91P\x91P`@Q\x80`@\x01`@R\x80\x83\x83aC~\x91\x90aO\xA0V[\x81R` \x01\x84\x8B` \x01QaC\x93\x91\x90aO\xA0V[\x81RP\x88\x85\x81Q\x81\x10aC\xA8WaC\xA8aOqV[` \x90\x81\x02\x91\x90\x91\x01\x01RaC\xBE`\x01\x85aO\xA0V[\x93PaC\xCA\x81\x83aO\xA0V[aC\xD4\x90\x84aO\xA0V[\x92PPPaC\x1CV[P\x84RP\x91\x93\x92PPPV[\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[`@Q`\x1F\x82\x01`\x1F\x19\x16\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15aDAWaDAaC\xE9V[`@R\x91\x90PV[`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a\x1D\x07W`\0\x80\xFD[`\0\x82`\x1F\x83\x01\x12aDoW`\0\x80\xFD[\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15aD\x89WaD\x89aC\xE9V[aD\x9C` `\x1F\x19`\x1F\x84\x01\x16\x01aD\x18V[\x81\x81R\x84` \x83\x86\x01\x01\x11\x15aD\xB1W`\0\x80\xFD[\x81` \x85\x01` \x83\x017`\0\x91\x81\x01` \x01\x91\x90\x91R\x93\x92PPPV[`\0`\xC0\x82\x84\x03\x12\x15aD\xE0W`\0\x80\xFD[`@Q`\xC0\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x82\x10\x81\x83\x11\x17\x15aE\x04WaE\x04aC\xE9V[\x81`@R\x82\x93P\x845\x83R` \x85\x015\x91PaE\x1F\x82aDIV[\x81` \x84\x01R`@\x85\x015\x91PaE5\x82aDIV[\x81`@\x84\x01R``\x85\x015``\x84\x01R`\x80\x85\x015`\x80\x84\x01R`\xA0\x85\x015\x91P\x80\x82\x11\x15aEcW`\0\x80\xFD[PaEp\x85\x82\x86\x01aD^V[`\xA0\x83\x01RPP\x92\x91PPV[`\0\x80`@\x83\x85\x03\x12\x15aE\x90W`\0\x80\xFD[\x825g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15aE\xA7W`\0\x80\xFD[aE\xB3\x85\x82\x86\x01aD\xCEV[\x92PP` \x83\x015aE\xC4\x81aDIV[\x80\x91PP\x92P\x92\x90PV[`\0` \x82\x84\x03\x12\x15aE\xE1W`\0\x80\xFD[\x815a(;\x81aDIV[`\0\x80`@\x83\x85\x03\x12\x15aE\xFFW`\0\x80\xFD[\x825aF\n\x81aDIV[\x91P` \x83\x015aE\xC4\x81aDIV[`\0\x80`\0\x80`\0\x85\x87\x03`\xE0\x81\x12\x15aF3W`\0\x80\xFD[\x865g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15aFKW`\0\x80\xFD[aFW\x8A\x83\x8B\x01aD\xCEV[\x97P` \x89\x015\x96P`\x80\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xC0\x84\x01\x12\x15aF\x90W`\0\x80\xFD[`@\x89\x01\x95P`\xC0\x89\x015\x92P\x80\x83\x11\x15aF\xAAW`\0\x80\xFD[\x82\x89\x01\x92P\x89`\x1F\x84\x01\x12aF\xBEW`\0\x80\xFD[\x825\x91P\x80\x82\x11\x15aF\xCFW`\0\x80\xFD[P\x88` \x82`\x05\x1B\x84\x01\x01\x11\x15aF\xE5W`\0\x80\xFD[\x95\x98\x94\x97P\x92\x95PPP` \x01\x91\x90V[`\0` \x82\x84\x03\x12\x15aG\x08W`\0\x80\xFD[P5\x91\x90PV[`\0[\x83\x81\x10\x15aG*W\x81\x81\x01Q\x83\x82\x01R` \x01aG\x12V[\x83\x81\x11\x15a\x0F\xA2WPP`\0\x91\x01RV[`\0\x81Q\x80\x84RaGS\x81` \x86\x01` \x86\x01aG\x0FV[`\x1F\x01`\x1F\x19\x16\x92\x90\x92\x01` \x01\x92\x91PPV[` \x81R`\0a(;` \x83\x01\x84aG;V[`\0\x80`@\x83\x85\x03\x12\x15aG\x8DW`\0\x80\xFD[\x825\x91P` \x83\x015aE\xC4\x81aDIV[`\0` \x82\x84\x03\x12\x15aG\xB1W`\0\x80\xFD[\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15aG\xC8W`\0\x80\xFD[aG\xD4\x84\x82\x85\x01aD\xCEV[\x94\x93PPPPV[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x1D\x07W`\0\x80\xFD[`\0` \x82\x84\x03\x12\x15aH\x04W`\0\x80\xFD[\x815a(;\x81aG\xDCV[`\0\x80`@\x83\x85\x03\x12\x15aH\"W`\0\x80\xFD[PP\x805\x92` \x90\x91\x015\x91PV[\x80\x15\x15\x81\x14a\x1D\x07W`\0\x80\xFD[`\0\x80`\0\x80`\0`\xA0\x86\x88\x03\x12\x15aHWW`\0\x80\xFD[\x855aHb\x81aDIV[\x94P` \x86\x015\x93P`@\x86\x015aHy\x81aG\xDCV[\x92P``\x86\x015aH\x89\x81aH1V[\x91P`\x80\x86\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15aH\xA5W`\0\x80\xFD[aH\xB1\x88\x82\x89\x01aD^V[\x91PP\x92\x95P\x92\x95\x90\x93PV[\x85\x81R\x84` \x82\x01R\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x84`\xC0\x1B\x16`@\x82\x01R\x82\x15\x15`\xF8\x1B`H\x82\x01R`\0\x82QaI\x12\x81`I\x85\x01` \x87\x01aG\x0FV[\x91\x90\x91\x01`I\x01\x96\x95PPPPPPV[`\0` \x82\x84\x03\x12\x15aI5W`\0\x80\xFD[\x81Qa(;\x81aDIV[c\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x1D\x07W`\0\x80\xFD[`\0` \x82\x84\x03\x12\x15aIdW`\0\x80\xFD[\x81Qa(;\x81aI@V[\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`\x11`\x04R`$`\0\xFD[`\0\x81`\0\x19\x04\x83\x11\x82\x15\x15\x16\x15aI\xB8WaI\xB8aIoV[P\x02\x90V[`\0` \x82\x84\x03\x12\x15aI\xCFW`\0\x80\xFD[\x81Qa(;\x81aH1V[`\0\x80`\0``\x84\x86\x03\x12\x15aI\xEFW`\0\x80\xFD[\x83QaI\xFA\x81aI@V[` \x85\x01Q\x90\x93PaJ\x0B\x81aG\xDCV[`@\x85\x01Q\x90\x92PaJ\x1C\x81aDIV[\x80\x91PP\x92P\x92P\x92V[\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`!`\x04R`$`\0\xFD[`\0` \x82\x84\x03\x12\x15aJhW`\0\x80\xFD[\x81Q`\x03\x81\x10a(;W`\0\x80\xFD[`\0` \x82\x84\x03\x12\x15aJ\x89W`\0\x80\xFD[\x81Qa(;\x81aG\xDCV[`\0`\x80\x82\x84\x03\x12\x15aJ\xA6W`\0\x80\xFD[`@Q`\x80\x81\x01\x81\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17\x15aJ\xC9WaJ\xC9aC\xE9V[\x80`@RP\x825\x81R` \x83\x015` \x82\x01R`@\x83\x015`@\x82\x01R``\x83\x015``\x82\x01R\x80\x91PP\x92\x91PPV[`\0` \x82\x84\x03\x12\x15aK\x0CW`\0\x80\xFD[PQ\x91\x90PV[`\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x84\x11\x15aK.WaK.aC\xE9V[\x83`\x05\x1B` aK?\x81\x83\x01aD\x18V[\x86\x81R\x91\x85\x01\x91\x81\x81\x01\x906\x84\x11\x15aKWW`\0\x80\xFD[\x86[\x84\x81\x10\x15aK\x8BW\x805\x86\x81\x11\x15aKqW`\0\x80\x81\xFD[aK}6\x82\x8B\x01aD^V[\x84RP\x91\x83\x01\x91\x83\x01aKYV[P\x97\x96PPPPPPPV[`\0\x82\x82\x10\x15aK\xA9WaK\xA9aIoV[P\x03\x90V[`\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x83\x16\x81\x85\x16\x81\x83\x04\x81\x11\x82\x15\x15\x16\x15aK\xD5WaK\xD5aIoV[\x02\x94\x93PPPPV[`\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x83\x16\x81\x85\x16\x80\x83\x03\x82\x11\x15aL\x01WaL\x01aIoV[\x01\x94\x93PPPPV[\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`\x12`\x04R`$`\0\xFD[`\0\x82aLHWaLHaL\nV[`\0\x19\x83\x14\x7F\x80\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x83\x14\x16\x15aL~WaL~aIoV[P\x05\x90V[`\0\x80\x83\x12\x83\x7F\x80\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x83\x12\x81\x15\x16\x15aL\xBDWaL\xBDaIoV[\x83\x7F\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x01\x83\x13\x81\x16\x15aL\xF1WaL\xF1aIoV[PP\x03\x90V[`\0\x7F\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF`\0\x84\x13`\0\x84\x13\x85\x83\x04\x85\x11\x82\x82\x16\x16\x15aM8WaM8aIoV[\x7F\x80\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\0\x87\x12\x86\x82\x05\x88\x12\x81\x84\x16\x16\x15aMsWaMsaIoV[`\0\x87\x12\x92P\x87\x82\x05\x87\x12\x84\x84\x16\x16\x15aM\x8FWaM\x8FaIoV[\x87\x85\x05\x87\x12\x81\x84\x16\x16\x15aM\xA5WaM\xA5aIoV[PPP\x92\x90\x93\x02\x93\x92PPPV[`\0\x80\x82\x12\x82\x7F\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x03\x84\x13\x81\x15\x16\x15aM\xEDWaM\xEDaIoV[\x82\x7F\x80\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x03\x84\x12\x81\x16\x15aN!WaN!aIoV[PP\x01\x90V[`\0\x82aN6WaN6aL\nV[P\x04\x90V[\x86\x81R`\0`\x01`\x01`\xA0\x1B\x03\x80\x88\x16` \x84\x01R\x80\x87\x16`@\x84\x01RP\x84``\x83\x01R\x83`\x80\x83\x01R`\xC0`\xA0\x83\x01RaNy`\xC0\x83\x01\x84aG;V[\x98\x97PPPPPPPPV[\x80Q`\xFF\x81\x16\x81\x14aN\x96W`\0\x80\xFD[\x91\x90PV[`\0`\xC0\x82\x84\x03\x12\x15aN\xADW`\0\x80\xFD[`@Q`\xC0\x81\x01\x81\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17\x15aN\xD0WaN\xD0aC\xE9V[`@R\x82QaN\xDE\x81aI@V[\x81RaN\xEC` \x84\x01aN\x85V[` \x82\x01RaN\xFD`@\x84\x01aN\x85V[`@\x82\x01R``\x83\x01QaO\x10\x81aI@V[``\x82\x01R`\x80\x83\x01QaO#\x81aI@V[`\x80\x82\x01R`\xA0\x83\x01Qo\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14aOKW`\0\x80\xFD[`\xA0\x82\x01R\x93\x92PPPV[`\0`\0\x19\x82\x03aOjWaOjaIoV[P`\x01\x01\x90V[\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`2`\x04R`$`\0\xFD[`\0\x82\x19\x82\x11\x15aO\xB3WaO\xB3aIoV[P\x01\x90V[`\0`\xFF\x83\x16\x80aO\xCBWaO\xCBaL\nV[\x80`\xFF\x84\x16\x06\x91PP\x92\x91PPV[`\0`\xFF\x82\x16`\xFF\x84\x16\x80\x82\x10\x15aO\xF4WaO\xF4aIoV[\x90\x03\x93\x92PPPV\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x6080604052600436106101d15760003560e01c806371c1566e116100f7578063a3860f4811610095578063cff0ab9611610064578063cff0ab9614610620578063dad544e0146106c1578063e9e05c42146106d6578063f2b4e617146106e957600080fd5b8063a3860f4814610520578063b682c44414610540578063bb2c727e14610560578063bf653a5c146105ed57600080fd5b8063952b2797116100d1578063952b27971461049b5780639bf62d82146104b0578063a14238e7146104d0578063a35d99df1461050057600080fd5b806371c1566e1461045b5780638b4c40b0146101f65780638c3152e91461047b57600080fd5b806345884d321161016f578063513747ab1161013e578063513747ab1461039f57806354fd4d50146103da5780635c0cba33146104265780635c975abb1461044657600080fd5b806345884d3214610301578063485cc955146103315780634870496f146103515780634fd0434c1461037157600080fd5b80633c9f397c116101ab5780633c9f397c1461028d5780633e47158c146102b757806343ca1c50146102cc578063452a9320146102ec57600080fd5b806333d7e2bd146101fd57806335e80ab31461023a57806338d38c971461024f57600080fd5b366101f8576101f63334620186a06000604051806020016040528060008152506106fe565b005b600080fd5b34801561020957600080fd5b5060375461021d906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561024657600080fd5b5061021d61095b565b34801561025b57600080fd5b5060405160ff7f0000000000000000000000000000000000000000000000000000000000000000168152602001610231565b34801561029957600080fd5b506102a26109e7565b60405163ffffffff9091168152602001610231565b3480156102c357600080fd5b5061021d610a6e565b3480156102d857600080fd5b506101f66102e736600461457d565b610c52565b3480156102f857600080fd5b5061021d610fa8565b34801561030d57600080fd5b5061032161031c3660046145cf565b61100b565b6040519015158152602001610231565b34801561033d57600080fd5b506101f661034c3660046145ec565b611099565b34801561035d57600080fd5b506101f661036c36600461461a565b611281565b34801561037d57600080fd5b50610386611943565b60405167ffffffffffffffff9091168152602001610231565b3480156103ab57600080fd5b506103cc6103ba3660046146f6565b6000908152603c602052604090205490565b604051908152602001610231565b3480156103e657600080fd5b50604080518082018252600581527f352e322e30000000000000000000000000000000000000000000000000000000602082015290516102319190614767565b34801561043257600080fd5b50603e5461021d906001600160a01b031681565b34801561045257600080fd5b506103216119ca565b34801561046757600080fd5b506101f661047636600461477a565b611a51565b34801561048757600080fd5b506101f661049636600461479f565b611cfd565b3480156104a757600080fd5b506103cc611d0a565b3480156104bc57600080fd5b5060325461021d906001600160a01b031681565b3480156104dc57600080fd5b506103216104eb3660046146f6565b60336020526000908152604090205460ff1681565b34801561050c57600080fd5b5061038661051b3660046147f2565b611d91565b34801561052c57600080fd5b5061021d61053b36600461480f565b611daa565b34801561054c57600080fd5b50603f5461021d906001600160a01b031681565b34801561056c57600080fd5b506105c561057b36600461477a565b60396020908152600092835260408084209091529082529020546001600160a01b0381169074010000000000000000000000000000000000000000900467ffffffffffffffff1682565b604080516001600160a01b03909316835267ffffffffffffffff909116602083015201610231565b3480156105f957600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006103cc565b34801561062c57600080fd5b50600154610688906fffffffffffffffffffffffffffffffff81169067ffffffffffffffff7001000000000000000000000000000000008204811691780100000000000000000000000000000000000000000000000090041683565b604080516fffffffffffffffffffffffffffffffff909416845267ffffffffffffffff9283166020850152911690820152606001610231565b3480156106cd57600080fd5b5061021d611de2565b6101f66106e436600461483f565b6106fe565b3480156106f557600080fd5b5061021d611e29565b8260005a905061070c611e8c565b15610749573415610749576040517fbd58e0a200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610751611f0e565b156107c65734156107c657603f60009054906101000a90046001600160a01b03166001600160a01b0316631ee116bf346040518263ffffffff1660e01b81526004016000604051808303818588803b1580156107ac57600080fd5b505af11580156107c0573d6000803e3d6000fd5b50505050505b8380156107db57506001600160a01b03871615155b15610812576040517fc5defbad00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61081c8351611d91565b67ffffffffffffffff168567ffffffffffffffff161015610869576040517f70c8bdbd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6201d4c0835111156108a7576040517f5aa3bac900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b336108b0611fcd565b6108cd575033731111000000000000000000000000000000001111015b600034888888886040516020016108e89594939291906148be565b60405160208183030381529060405290506000896001600160a01b0316836001600160a01b03167fb3813568d9991fc951961fcb4c784893574240a28925604d09fc577c55bb7c328460405161093e9190614767565b60405180910390a45050610952828261200a565b50505050505050565b603754604080517f35e80ab300000000000000000000000000000000000000000000000000000000815290516000926001600160a01b0316916335e80ab39160048083019260209291908290030181865afa1580156109be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109e29190614923565b905090565b603e54604080517f3c9f397c00000000000000000000000000000000000000000000000000000000815290516000926001600160a01b031691633c9f397c9160048083019260209291908290030181865afa158015610a4a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109e29190614952565b600080610a997fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b90506001600160a01b03811615610aaf57919050565b6040518060400160405280601a81526020017f4f564d5f4c3143726f7373446f6d61696e4d657373656e676572000000000000815250516002610af2919061499e565b604080513060208201526000918101919091527f4f564d5f4c3143726f7373446f6d61696e4d657373656e6765720000000000009190911790610b4d906060015b604051602081830303815290604052805190602001205490565b14610b84576040517f54e433cd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60408051306020820152600191810191909152600090610ba690606001610b33565b90506001600160a01b03811615610c2057806001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bf5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c199190614923565b9250505090565b6040517f332144db00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610c5a6122e1565b610c62611e8c565b15610ca357606082015115610ca3576040517fbd58e0a200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6032546001600160a01b031661dead14610ce9576040517fdfeaaeb800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610cf68260400151612320565b15610d2d576040517fc5defbad00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000610d3883612349565b9050610d448183611a51565b600081815260336020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055610d83611f0e565b15610e1557606083015115610e1557603f5460608401516040517f8d445bd00000000000000000000000000000000000000000000000000000000081526001600160a01b0390921691638d445bd091610de29160040190815260200190565b600060405180830381600087803b158015610dfc57600080fd5b505af1158015610e10573d6000803e3d6000fd5b505050505b8260200151603260006101000a8154816001600160a01b0302191690836001600160a01b031602179055506000610e5e8460400151856080015186606001518760a00151612396565b603280547fffffffffffffffffffffffff00000000000000000000000000000000000000001661dead17905560405190915082907fdb5c7652857aa163daadd670e116628fb42e869d8ac4251ef8971d9e5727df1b90610ec390841515815260200190565b60405180910390a2610ed3611f0e565b15610f5d5780158015610eea575060008460600151115b15610f5d57603f60009054906101000a90046001600160a01b03166001600160a01b0316631ee116bf85606001516040518263ffffffff1660e01b81526004016000604051808303818588803b158015610f4357600080fd5b505af1158015610f57573d6000803e3d6000fd5b50505050505b80158015610f6b5750326001145b15610fa2576040517fab58103600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505050565b603754604080517f452a932000000000000000000000000000000000000000000000000000000000815290516000926001600160a01b03169163452a93209160048083019260209291908290030181865afa1580156109be573d6000803e3d6000fd5b603e546040517f45884d320000000000000000000000000000000000000000000000000000000081526001600160a01b03838116600483015260009216906345884d3290602401602060405180830381865afa15801561106f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061109391906149bd565b92915050565b7f0000000000000000000000000000000000000000000000000000000000000000600054610100900460ff161580156110d9575060005460ff8083169116105b6111505760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084015b60405180910390fd5b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001660ff8316176101001790556111896123f4565b603780546001600160a01b038086167fffffffffffffffffffffffff000000000000000000000000000000000000000092831617909255603e8054928516929091169190911790556111d961245b565b6032546001600160a01b031661121657603280547fffffffffffffffffffffffff00000000000000000000000000000000000000001661dead1790555b61121e61260e565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050565b6112896122e1565b6112968560400151612320565b156112cd576040517fc5defbad00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6112d5611e8c565b1561131657606085015115611316576040517fbd58e0a200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000611320611e29565b6001600160a01b031663bb8aa1fc866040518263ffffffff1660e01b815260040161134d91815260200190565b606060405180830381865afa15801561136a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061138e91906149da565b603e546040517f496b9c160000000000000000000000000000000000000000000000000000000081526001600160a01b0380841660048301529295509116925063496b9c169150602401602060405180830381865afa1580156113f5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061141991906149bd565b61144f576040517ff395240e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b603e546040517f04e50fed0000000000000000000000000000000000000000000000000000000081526001600160a01b038381166004830152909116906304e50fed90602401602060405180830381865afa1580156114b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114d691906149bd565b61150c576040517fe29927ed00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001816001600160a01b031663200d2ed26040518163ffffffff1660e01b8152600401602060405180830381865afa15801561154c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115709190614a56565b600281111561158157611581614a27565b036115b8576040517fe29927ed00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61162a816001600160a01b031663cf09e0d06040518163ffffffff1660e01b8152600401602060405180830381865afa1580156115f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061161d9190614a77565b67ffffffffffffffff1690565b67ffffffffffffffff16421161166c576040517fb4caa4e500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61168361167e36869003860186614a94565b612707565b6116eb826001600160a01b031663bcef3b556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116e89190614afa565b90565b14611722576040517f426149af00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061172d87612349565b9050600081600060405160200161174e929190918252602082015260400190565b60408051601f19818403018152828252805160209182012090830181905292506117c5910160408051601f19818403018152828201909152600182527f01000000000000000000000000000000000000000000000000000000000000006020830152906117bb8789614b13565b8960400135612746565b1515600003611800576040517f2e57ef3a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805180820182526001600160a01b03808616825267ffffffffffffffff42811660208085019182526000888152603982528681203380835290835287822096518754945190951674010000000000000000000000000000000000000000027fffffffff000000000000000000000000000000000000000000000000000000009094169486169490941792909217909455868152603c845284812080546001810182559082528482200180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169092179091558b840151928c01519351928216939091169185917f67a6208cfcc0801d50f6cbe764733f4fddf66ac0b04442061a8a8c0cb6b63f6291a4604051339083907f798f9f13695f8f045aa5f80ed8efebb695f3c7fe65da381969f2f28bf3c60b9790600090a35050505050505050565b603e54604080517f4086d18300000000000000000000000000000000000000000000000000000000815290516000926001600160a01b031691634086d1839160048083019260209291908290030181865afa1580156119a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109e29190614a77565b603754604080517f5c975abb00000000000000000000000000000000000000000000000000000000815290516000926001600160a01b031691635c975abb9160048083019260209291908290030181865afa158015611a2d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109e291906149bd565b60008281526039602090815260408083206001600160a01b0385811685529083528184208251808401845290549182168082527401000000000000000000000000000000000000000090920467ffffffffffffffff1681850152868552603390935292205490919060ff1615611af3576040517f730a107400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b816020015167ffffffffffffffff16600003611b3b576040517fcca6afda00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611b7c816001600160a01b031663cf09e0d06040518163ffffffff1660e01b8152600401602060405180830381865afa1580156115f9573d6000803e3d6000fd5b67ffffffffffffffff16826020015167ffffffffffffffff1611611bcc576040517fb4caa4e500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f0000000000000000000000000000000000000000000000000000000000000000826020015167ffffffffffffffff1642611c079190614b97565b11611c3e576040517fd9bc01be00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b603e546040517f6c4f44670000000000000000000000000000000000000000000000000000000081526001600160a01b03838116600483015290911690636c4f446790602401602060405180830381865afa158015611ca1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cc591906149bd565b610fa2576040517f332a57f800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b611d078133610c52565b50565b603e54604080517f952b279700000000000000000000000000000000000000000000000000000000815290516000926001600160a01b03169163952b27979160048083019260209291908290030181865afa158015611d6d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109e29190614afa565b6000611d9e826028614bae565b61109390615208614bde565b603c6020528160005260406000208181548110611dc657600080fd5b6000918252602090912001546001600160a01b03169150829050565b6000611dec610a6e565b6001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109be573d6000803e3d6000fd5b603e54604080517ff2b4e61700000000000000000000000000000000000000000000000000000000815290516000926001600160a01b03169163f2b4e6179160048083019260209291908290030181865afa1580156109be573d6000803e3d6000fd5b6037546040517f47af267b0000000000000000000000000000000000000000000000000000000081527f435553544f4d5f4741535f544f4b454e0000000000000000000000000000000060048201526000916001600160a01b0316906347af267b90602401602060405180830381865afa158015611a2d573d6000803e3d6000fd5b6037546040517f47af267b0000000000000000000000000000000000000000000000000000000081527f4554485f4c4f434b424f5800000000000000000000000000000000000000000060048201526000916001600160a01b0316906347af267b90602401602060405180830381865afa158015611f90573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fb491906149bd565b80156109e2575050603f546001600160a01b0316151590565b6000323303611fdc5750600190565b333b60170361200457604051602081016040526020600082333c5160e81c62ef010014905090565b50600090565b600154600090612040907801000000000000000000000000000000000000000000000000900467ffffffffffffffff1643614b97565b9050600061204c61276a565b90506000816020015160ff16826000015163ffffffff1661206d9190614c39565b905082156121a4576001546000906120a4908390700100000000000000000000000000000000900467ffffffffffffffff16614c83565b90506000836040015160ff16836120bb9190614cf7565b6001546120db9084906fffffffffffffffffffffffffffffffff16614cf7565b6120e59190614c39565b6001549091506000906121369061210f9084906fffffffffffffffffffffffffffffffff16614db3565b866060015163ffffffff168760a001516fffffffffffffffffffffffffffffffff16612823565b905060018611156121655761216261210f82876040015160ff1660018a61215d9190614b97565b612842565b90505b6fffffffffffffffffffffffffffffffff16780100000000000000000000000000000000000000000000000067ffffffffffffffff4316021760015550505b600180548691906010906121d7908490700100000000000000000000000000000000900467ffffffffffffffff16614bde565b92506101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550816000015163ffffffff16600160000160109054906101000a900467ffffffffffffffff1667ffffffffffffffff161315612264576040517f77ebef4d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600154600090612290906fffffffffffffffffffffffffffffffff1667ffffffffffffffff881661499e565b905060006122a248633b9aca00612897565b6122ac9083614e27565b905060005a6122bb9088614b97565b9050808211156122d7576122d76122d28284614b97565b6128ae565b5050505050505050565b6122e96119ca565b15611cfb576040517fb9c3c2ef00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006001600160a01b038216301480611093575050603f546001600160a01b0390811691161490565b80516020808301516040808501516060860151608087015160a08801519351600097612379979096959101614e3b565b604051602081830303815290604052805190602001209050919050565b60008060006123a68660006128dc565b9050806123dc576308c379a06000526020805278185361666543616c6c3a204e6f7420656e6f756768206761736058526064601cfd5b600080855160208701888b5af1979650505050505050565b336123fd610a6e565b6001600160a01b031614158015612424575033612418611de2565b6001600160a01b031614155b15611cfb576040517fc4050a2600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6037546040517f47af267b0000000000000000000000000000000000000000000000000000000081527f4554485f4c4f434b424f5800000000000000000000000000000000000000000060048201526001600160a01b03909116906347af267b90602401602060405180830381865afa1580156124dc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061250091906149bd565b80156125155750603f546001600160a01b0316155b806125d757506037546040517f47af267b0000000000000000000000000000000000000000000000000000000081527f4554485f4c4f434b424f5800000000000000000000000000000000000000000060048201526001600160a01b03909116906347af267b90602401602060405180830381865afa15801561259c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125c091906149bd565b1580156125d75750603f546001600160a01b031615155b15611cfb576040517f9c46cd7900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600054610100900460ff1661268b5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401611147565b6001547801000000000000000000000000000000000000000000000000900467ffffffffffffffff16600003611cfb5760408051606081018252633b9aca00808252600060208301524367ffffffffffffffff169190920181905278010000000000000000000000000000000000000000000000000217600155565b60008160000151826020015183604001518460600151604051602001612379949392919093845260208401929092526040830152606082015260800190565b600080612752866128fa565b90506127608186868661292c565b9695505050505050565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a0810191909152603754604080517fcc731b0200000000000000000000000000000000000000000000000000000000815290516000926001600160a01b03169163cc731b029160048083019260c09291908290030181865afa1580156127ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110939190614e9b565b6000612838612832858561295c565b8361296c565b90505b9392505050565b6000670de0b6b3a764000061288361285a8583614c39565b61286c90670de0b6b3a7640000614c83565b61287e85670de0b6b3a7640000614cf7565b61297b565b61288d9086614cf7565b6128389190614c39565b6000818310156128a7578161283b565b5090919050565b6000805a90505b825a6128c19083614b97565b10156128d7576128d082614f57565b91506128b5565b505050565b600080603f83619c4001026040850201603f5a021015949350505050565b6060818051906020012060405160200161291691815260200190565b6040516020818303038152906040529050919050565b60006129538461293d8786866129ac565b8051602091820120825192909101919091201490565b95945050505050565b6000818312156128a7578161283b565b60008183126128a7578161283b565b600061283b670de0b6b3a764000083612993866132be565b61299d9190614cf7565b6129a79190614c39565b6134e8565b606060008451116129ff5760405162461bcd60e51b815260206004820152601560248201527f4d65726b6c65547269653a20656d707479206b657900000000000000000000006044820152606401611147565b6000612a0a8461370d565b90506000612a17866137f9565b9050600084604051602001612a2e91815260200190565b60405160208183030381529060405290506000805b845181101561324f576000858281518110612a6057612a60614f71565b602002602001015190508451831115612ae15760405162461bcd60e51b815260206004820152602e60248201527f4d65726b6c65547269653a206b657920696e646578206578636565647320746f60448201527f74616c206b6579206c656e6774680000000000000000000000000000000000006064820152608401611147565b82600003612b805780518051602091820120604051612b2f92612b0992910190815260200190565b604051602081830303815290604052858051602091820120825192909101919091201490565b612b7b5760405162461bcd60e51b815260206004820152601d60248201527f4d65726b6c65547269653a20696e76616c696420726f6f7420686173680000006044820152606401611147565b612ca3565b805151602011612c1c5780518051602091820120604051612baa92612b0992910190815260200190565b612b7b5760405162461bcd60e51b815260206004820152602760248201527f4d65726b6c65547269653a20696e76616c6964206c6172676520696e7465726e60448201527f616c2068617368000000000000000000000000000000000000000000000000006064820152608401611147565b805184516020808701919091208251919092012014612ca35760405162461bcd60e51b815260206004820152602660248201527f4d65726b6c65547269653a20696e76616c696420696e7465726e616c206e6f6460448201527f65206861736800000000000000000000000000000000000000000000000000006064820152608401611147565b612caf60106001614fa0565b81602001515103612e575784518303612def57612ce98160200151601081518110612cdc57612cdc614f71565b602002602001015161385c565b96506000875111612d625760405162461bcd60e51b815260206004820152603b60248201527f4d65726b6c65547269653a2076616c7565206c656e677468206d75737420626560448201527f2067726561746572207468616e207a65726f20286272616e63682900000000006064820152608401611147565b60018651612d709190614b97565b8214612de45760405162461bcd60e51b815260206004820152603a60248201527f4d65726b6c65547269653a2076616c7565206e6f6465206d757374206265206c60448201527f617374206e6f646520696e2070726f6f6620286272616e6368290000000000006064820152608401611147565b50505050505061283b565b6000858481518110612e0357612e03614f71565b602001015160f81c60f81b60f81c9050600082602001518260ff1681518110612e2e57612e2e614f71565b60200260200101519050612e4181613910565b9550612e4e600186614fa0565b9450505061323c565b6002816020015151036131ce576000612e6f82613935565b9050600081600081518110612e8657612e86614f71565b016020015160f81c90506000612e9d600283614fb8565b612ea8906002614fda565b90506000612eb9848360ff16613959565b90506000612ec78a89613959565b90506000612ed5838361398f565b905080835114612f4d5760405162461bcd60e51b815260206004820152603a60248201527f4d65726b6c65547269653a20706174682072656d61696e646572206d7573742060448201527f736861726520616c6c206e6962626c65732077697468206b65790000000000006064820152608401611147565b60ff851660021480612f62575060ff85166003145b156131035780825114612fdd5760405162461bcd60e51b815260206004820152603d60248201527f4d65726b6c65547269653a206b65792072656d61696e646572206d757374206260448201527f65206964656e746963616c20746f20706174682072656d61696e6465720000006064820152608401611147565b612ff78760200151600181518110612cdc57612cdc614f71565b9c5060008d51116130705760405162461bcd60e51b815260206004820152603960248201527f4d65726b6c65547269653a2076616c7565206c656e677468206d75737420626560448201527f2067726561746572207468616e207a65726f20286c65616629000000000000006064820152608401611147565b60018c5161307e9190614b97565b88146130f25760405162461bcd60e51b815260206004820152603860248201527f4d65726b6c65547269653a2076616c7565206e6f6465206d757374206265206c60448201527f617374206e6f646520696e2070726f6f6620286c6561662900000000000000006064820152608401611147565b50505050505050505050505061283b565b60ff85161580613116575060ff85166001145b1561315557613142876020015160018151811061313557613135614f71565b6020026020010151613910565b995061314e818a614fa0565b98506131c3565b60405162461bcd60e51b815260206004820152603260248201527f4d65726b6c65547269653a2072656365697665642061206e6f6465207769746860448201527f20616e20756e6b6e6f776e2070726566697800000000000000000000000000006064820152608401611147565b50505050505061323c565b60405162461bcd60e51b815260206004820152602860248201527f4d65726b6c65547269653a20726563656976656420616e20756e70617273656160448201527f626c65206e6f64650000000000000000000000000000000000000000000000006064820152608401611147565b508061324781614f57565b915050612a43565b5060405162461bcd60e51b815260206004820152602560248201527f4d65726b6c65547269653a2072616e206f7574206f662070726f6f6620656c6560448201527f6d656e74730000000000000000000000000000000000000000000000000000006064820152608401611147565b600080821361330f5760405162461bcd60e51b815260206004820152600960248201527f554e444546494e454400000000000000000000000000000000000000000000006044820152606401611147565b6000606061331c84613a43565b03609f8181039490941b90931c6c465772b2bbbb5f824b15207a3081018102606090811d6d0388eaa27412d5aca026815d636e018202811d6d0df99ac502031bf953eff472fdcc018202811d6d13cdffb29d51d99322bdff5f2211018202811d6d0a0f742023def783a307a986912e018202811d6d01920d8043ca89b5239253284e42018202811d6c0b7a86d7375468fac667a0a527016c29508e458543d8aa4df2abee7883018302821d6d0139601a2efabe717e604cbb4894018302821d6d02247f7a7b6594320649aa03aba1018302821d7fffffffffffffffffffffffffffffffffffffff73c0c716a594e00d54e3c4cbc9018302821d7ffffffffffffffffffffffffffffffffffffffdc7b88c420e53a9890533129f6f01830290911d7fffffffffffffffffffffffffffffffffffffff465fda27eb4d63ded474e5f832019091027ffffffffffffffff5f6af8f7b3396644f18e157960000000000000000000000000105711340daa0d5f769dba1915cef59f0815a5506027d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b393909302929092017d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b88642840160ae1d92915050565b60007ffffffffffffffffffffffffffffffffffffffffffffffffdb731c958f34d94c1821361351957506000919050565b680755bf798b4a1bf1e582126135715760405162461bcd60e51b815260206004820152600c60248201527f4558505f4f564552464c4f5700000000000000000000000000000000000000006044820152606401611147565b6503782dace9d9604e83901b059150600060606bb17217f7d1cf79abc9e3b39884821b056b80000000000000000000000001901d6bb17217f7d1cf79abc9e3b39881029093037fffffffffffffffffffffffffffffffffffffffdbf3ccf1604d263450f02a550481018102606090811d6d0277594991cfc85f6e2461837cd9018202811d7fffffffffffffffffffffffffffffffffffffe5adedaa1cb095af9e4da10e363c018202811d6db1bbb201f443cf962f1a1d3db4a5018202811d7ffffffffffffffffffffffffffffffffffffd38dc772608b0ae56cce01296c0eb018202811d6e05180bb14799ab47a8a8cb2a527d57016d02d16720577bd19bf614176fe9ea6c10fe68e7fd37d0007b713f765084018402831d9081019084017ffffffffffffffffffffffffffffffffffffffe2c69812cf03b0763fd454a8f7e010290911d6e0587f503bb6ea29d25fcb7401964500190910279d835ebba824c98fb31b83b2ca45c000000000000000000000000010574029d9dc38563c32e5c2f6dc192ee70ef65f9978af30260c3939093039290921c92915050565b80516060908067ffffffffffffffff81111561372b5761372b6143e9565b60405190808252806020026020018201604052801561377057816020015b60408051808201909152606080825260208201528152602001906001900390816137495790505b50915060005b818110156137f257604051806040016040528085838151811061379b5761379b614f71565b602002602001015181526020016137ca8684815181106137bd576137bd614f71565b6020026020010151613aff565b8152508382815181106137df576137df614f71565b6020908102919091010152600101613776565b5050919050565b606080604051905082518060011b603f8101601f1916830160405280835250602084016020830160005b83811015613851578060011b82018184015160001a8060041c8253600f811660018301535050600101613823565b509295945050505050565b6060600080600061386c85613b12565b91945092509050600081600181111561388757613887614a27565b146138be576040517f1ff9b2e400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6138c88284614fa0565b855114613901576040517f5c5537b800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61295385602001518484613fb0565b6060602082600001511061392c576139278261385c565b611093565b61109382614044565b60606110936139548360200151600081518110612cdc57612cdc614f71565b6137f9565b6060825182106139785750604080516020810190915260008152611093565b61283b838384865161398a9190614b97565b61405a565b60008082518451106139a25782516139a5565b83515b90505b8082108015613a2c57508282815181106139c4576139c4614f71565b602001015160f81c60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916848381518110613a0357613a03614f71565b01602001517fff0000000000000000000000000000000000000000000000000000000000000016145b15613a3c578160010191506139a8565b5092915050565b6000808211613a945760405162461bcd60e51b815260206004820152600960248201527f554e444546494e454400000000000000000000000000000000000000000000006044820152606401611147565b5060016fffffffffffffffffffffffffffffffff821160071b82811c67ffffffffffffffff1060061b1782811c63ffffffff1060051b1782811c61ffff1060041b1782811c60ff10600390811b90911783811c600f1060021b1783811c909110821b1791821c111790565b6060611093613b0d836141c6565b614233565b60008060008360000151600003613b55576040517f5ab458fb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6020840151805160001a607f8111613b7a576000600160009450945094505050613fa9565b60b78111613c90576000613b8f608083614b97565b905080876000015111613bce576040517f66c9448500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001838101517fff00000000000000000000000000000000000000000000000000000000000000169082148015613c4657507f80000000000000000000000000000000000000000000000000000000000000007fff000000000000000000000000000000000000000000000000000000000000008216105b15613c7d576040517fbabb01dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5060019550935060009250613fa9915050565b60bf8111613dee576000613ca560b783614b97565b905080876000015111613ce4576040517f66c9448500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60018301517fff00000000000000000000000000000000000000000000000000000000000000166000819003613d46576040517fbabb01dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600184015160088302610100031c60378111613d8e576040517fbabb01dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b613d988184614fa0565b895111613dd1576040517f66c9448500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b613ddc836001614fa0565b9750955060009450613fa99350505050565b60f78111613e53576000613e0360c083614b97565b905080876000015111613e42576040517f66c9448500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600195509350849250613fa9915050565b6000613e6060f783614b97565b905080876000015111613e9f576040517f66c9448500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60018301517fff00000000000000000000000000000000000000000000000000000000000000166000819003613f01576040517fbabb01dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600184015160088302610100031c60378111613f49576040517fbabb01dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b613f538184614fa0565b895111613f8c576040517f66c9448500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b613f97836001614fa0565b9750955060019450613fa99350505050565b9193909250565b60608167ffffffffffffffff811115613fcb57613fcb6143e9565b6040519080825280601f01601f191660200182016040528015613ff5576020820181803683370190505b509050811561283b57600061400a8486614fa0565b90506020820160005b8481101561402b578281015182820152602001614013565b8481111561403a576000858301525b5050509392505050565b6060611093826020015160008460000151613fb0565b60608182601f0110156140af5760405162461bcd60e51b815260206004820152600e60248201527f736c6963655f6f766572666c6f770000000000000000000000000000000000006044820152606401611147565b8282840110156141015760405162461bcd60e51b815260206004820152600e60248201527f736c6963655f6f766572666c6f770000000000000000000000000000000000006044820152606401611147565b818301845110156141545760405162461bcd60e51b815260206004820152601160248201527f736c6963655f6f75744f66426f756e64730000000000000000000000000000006044820152606401611147565b60608215801561417357604051915060008252602082016040526141bd565b6040519150601f8416801560200281840101858101878315602002848b0101015b818310156141ac578051835260209283019201614194565b5050858452601f01601f1916604052505b50949350505050565b60408051808201909152600080825260208201528151600003614215576040517f5ab458fb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50604080518082019091528151815260209182019181019190915290565b6060600080600061424385613b12565b91945092509050600181600181111561425e5761425e614a27565b14614295576040517f4b9c6abe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84516142a18385614fa0565b146142d8576040517f5c5537b800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604080516020808252610420820190925290816020015b60408051808201909152600080825260208201528152602001906001900390816142ef5790505093506000835b86518110156143dd576000806143626040518060400160405280858c600001516143469190614b97565b8152602001858c6020015161435b9190614fa0565b9052613b12565b50915091506040518060400160405280838361437e9190614fa0565b8152602001848b602001516143939190614fa0565b8152508885815181106143a8576143a8614f71565b60209081029190910101526143be600185614fa0565b93506143ca8183614fa0565b6143d49084614fa0565b9250505061431c565b50845250919392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715614441576144416143e9565b604052919050565b6001600160a01b0381168114611d0757600080fd5b600082601f83011261446f57600080fd5b813567ffffffffffffffff811115614489576144896143e9565b61449c6020601f19601f84011601614418565b8181528460208386010111156144b157600080fd5b816020850160208301376000918101602001919091529392505050565b600060c082840312156144e057600080fd5b60405160c0810167ffffffffffffffff8282108183111715614504576145046143e9565b81604052829350843583526020850135915061451f82614449565b8160208401526040850135915061453582614449565b816040840152606085013560608401526080850135608084015260a085013591508082111561456357600080fd5b506145708582860161445e565b60a0830152505092915050565b6000806040838503121561459057600080fd5b823567ffffffffffffffff8111156145a757600080fd5b6145b3858286016144ce565b92505060208301356145c481614449565b809150509250929050565b6000602082840312156145e157600080fd5b813561283b81614449565b600080604083850312156145ff57600080fd5b823561460a81614449565b915060208301356145c481614449565b600080600080600085870360e081121561463357600080fd5b863567ffffffffffffffff8082111561464b57600080fd5b6146578a838b016144ce565b97506020890135965060807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08401121561469057600080fd5b60408901955060c08901359250808311156146aa57600080fd5b828901925089601f8401126146be57600080fd5b82359150808211156146cf57600080fd5b508860208260051b84010111156146e557600080fd5b959894975092955050506020019190565b60006020828403121561470857600080fd5b5035919050565b60005b8381101561472a578181015183820152602001614712565b83811115610fa25750506000910152565b6000815180845261475381602086016020860161470f565b601f01601f19169290920160200192915050565b60208152600061283b602083018461473b565b6000806040838503121561478d57600080fd5b8235915060208301356145c481614449565b6000602082840312156147b157600080fd5b813567ffffffffffffffff8111156147c857600080fd5b6147d4848285016144ce565b949350505050565b67ffffffffffffffff81168114611d0757600080fd5b60006020828403121561480457600080fd5b813561283b816147dc565b6000806040838503121561482257600080fd5b50508035926020909101359150565b8015158114611d0757600080fd5b600080600080600060a0868803121561485757600080fd5b853561486281614449565b9450602086013593506040860135614879816147dc565b9250606086013561488981614831565b9150608086013567ffffffffffffffff8111156148a557600080fd5b6148b18882890161445e565b9150509295509295909350565b8581528460208201527fffffffffffffffff0000000000000000000000000000000000000000000000008460c01b16604082015282151560f81b60488201526000825161491281604985016020870161470f565b919091016049019695505050505050565b60006020828403121561493557600080fd5b815161283b81614449565b63ffffffff81168114611d0757600080fd5b60006020828403121561496457600080fd5b815161283b81614940565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160001904831182151516156149b8576149b861496f565b500290565b6000602082840312156149cf57600080fd5b815161283b81614831565b6000806000606084860312156149ef57600080fd5b83516149fa81614940565b6020850151909350614a0b816147dc565b6040850151909250614a1c81614449565b809150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600060208284031215614a6857600080fd5b81516003811061283b57600080fd5b600060208284031215614a8957600080fd5b815161283b816147dc565b600060808284031215614aa657600080fd5b6040516080810181811067ffffffffffffffff82111715614ac957614ac96143e9565b8060405250823581526020830135602082015260408301356040820152606083013560608201528091505092915050565b600060208284031215614b0c57600080fd5b5051919050565b600067ffffffffffffffff80841115614b2e57614b2e6143e9565b8360051b6020614b3f818301614418565b868152918501918181019036841115614b5757600080fd5b865b84811015614b8b57803586811115614b715760008081fd5b614b7d36828b0161445e565b845250918301918301614b59565b50979650505050505050565b600082821015614ba957614ba961496f565b500390565b600067ffffffffffffffff80831681851681830481118215151615614bd557614bd561496f565b02949350505050565b600067ffffffffffffffff808316818516808303821115614c0157614c0161496f565b01949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600082614c4857614c48614c0a565b60001983147f800000000000000000000000000000000000000000000000000000000000000083141615614c7e57614c7e61496f565b500590565b6000808312837f800000000000000000000000000000000000000000000000000000000000000001831281151615614cbd57614cbd61496f565b837f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff018313811615614cf157614cf161496f565b50500390565b60007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600084136000841385830485118282161615614d3857614d3861496f565b7f80000000000000000000000000000000000000000000000000000000000000006000871286820588128184161615614d7357614d7361496f565b60008712925087820587128484161615614d8f57614d8f61496f565b87850587128184161615614da557614da561496f565b505050929093029392505050565b6000808212827f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03841381151615614ded57614ded61496f565b827f8000000000000000000000000000000000000000000000000000000000000000038412811615614e2157614e2161496f565b50500190565b600082614e3657614e36614c0a565b500490565b86815260006001600160a01b03808816602084015280871660408401525084606083015283608083015260c060a0830152614e7960c083018461473b565b98975050505050505050565b805160ff81168114614e9657600080fd5b919050565b600060c08284031215614ead57600080fd5b60405160c0810181811067ffffffffffffffff82111715614ed057614ed06143e9565b6040528251614ede81614940565b8152614eec60208401614e85565b6020820152614efd60408401614e85565b60408201526060830151614f1081614940565b60608201526080830151614f2381614940565b608082015260a08301516fffffffffffffffffffffffffffffffff81168114614f4b57600080fd5b60a08201529392505050565b60006000198203614f6a57614f6a61496f565b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008219821115614fb357614fb361496f565b500190565b600060ff831680614fcb57614fcb614c0a565b8060ff84160691505092915050565b600060ff821660ff841680821015614ff457614ff461496f565b9003939250505056fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R`\x046\x10a\x01\xD1W`\x005`\xE0\x1C\x80cq\xC1Vn\x11a\0\xF7W\x80c\xA3\x86\x0FH\x11a\0\x95W\x80c\xCF\xF0\xAB\x96\x11a\0dW\x80c\xCF\xF0\xAB\x96\x14a\x06 W\x80c\xDA\xD5D\xE0\x14a\x06\xC1W\x80c\xE9\xE0\\B\x14a\x06\xD6W\x80c\xF2\xB4\xE6\x17\x14a\x06\xE9W`\0\x80\xFD[\x80c\xA3\x86\x0FH\x14a\x05 W\x80c\xB6\x82\xC4D\x14a\x05@W\x80c\xBB,r~\x14a\x05`W\x80c\xBFe:\\\x14a\x05\xEDW`\0\x80\xFD[\x80c\x95+'\x97\x11a\0\xD1W\x80c\x95+'\x97\x14a\x04\x9BW\x80c\x9B\xF6-\x82\x14a\x04\xB0W\x80c\xA1B8\xE7\x14a\x04\xD0W\x80c\xA3]\x99\xDF\x14a\x05\0W`\0\x80\xFD[\x80cq\xC1Vn\x14a\x04[W\x80c\x8BL@\xB0\x14a\x01\xF6W\x80c\x8C1R\xE9\x14a\x04{W`\0\x80\xFD[\x80cE\x88M2\x11a\x01oW\x80cQ7G\xAB\x11a\x01>W\x80cQ7G\xAB\x14a\x03\x9FW\x80cT\xFDMP\x14a\x03\xDAW\x80c\\\x0C\xBA3\x14a\x04&W\x80c\\\x97Z\xBB\x14a\x04FW`\0\x80\xFD[\x80cE\x88M2\x14a\x03\x01W\x80cH\\\xC9U\x14a\x031W\x80cHpIo\x14a\x03QW\x80cO\xD0CL\x14a\x03qW`\0\x80\xFD[\x80c<\x9F9|\x11a\x01\xABW\x80c<\x9F9|\x14a\x02\x8DW\x80c>G\x15\x8C\x14a\x02\xB7W\x80cC\xCA\x1CP\x14a\x02\xCCW\x80cE*\x93 \x14a\x02\xECW`\0\x80\xFD[\x80c3\xD7\xE2\xBD\x14a\x01\xFDW\x80c5\xE8\n\xB3\x14a\x02:W\x80c8\xD3\x8C\x97\x14a\x02OW`\0\x80\xFD[6a\x01\xF8Wa\x01\xF634b\x01\x86\xA0`\0`@Q\x80` \x01`@R\x80`\0\x81RPa\x06\xFEV[\0[`\0\x80\xFD[4\x80\x15a\x02\tW`\0\x80\xFD[P`7Ta\x02\x1D\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[4\x80\x15a\x02FW`\0\x80\xFD[Pa\x02\x1Da\t[V[4\x80\x15a\x02[W`\0\x80\xFD[P`@Q`\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x81R` \x01a\x021V[4\x80\x15a\x02\x99W`\0\x80\xFD[Pa\x02\xA2a\t\xE7V[`@Qc\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01a\x021V[4\x80\x15a\x02\xC3W`\0\x80\xFD[Pa\x02\x1Da\nnV[4\x80\x15a\x02\xD8W`\0\x80\xFD[Pa\x01\xF6a\x02\xE76`\x04aE}V[a\x0CRV[4\x80\x15a\x02\xF8W`\0\x80\xFD[Pa\x02\x1Da\x0F\xA8V[4\x80\x15a\x03\rW`\0\x80\xFD[Pa\x03!a\x03\x1C6`\x04aE\xCFV[a\x10\x0BV[`@Q\x90\x15\x15\x81R` \x01a\x021V[4\x80\x15a\x03=W`\0\x80\xFD[Pa\x01\xF6a\x03L6`\x04aE\xECV[a\x10\x99V[4\x80\x15a\x03]W`\0\x80\xFD[Pa\x01\xF6a\x03l6`\x04aF\x1AV[a\x12\x81V[4\x80\x15a\x03}W`\0\x80\xFD[Pa\x03\x86a\x19CV[`@Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01a\x021V[4\x80\x15a\x03\xABW`\0\x80\xFD[Pa\x03\xCCa\x03\xBA6`\x04aF\xF6V[`\0\x90\x81R`<` R`@\x90 T\x90V[`@Q\x90\x81R` \x01a\x021V[4\x80\x15a\x03\xE6W`\0\x80\xFD[P`@\x80Q\x80\x82\x01\x82R`\x05\x81R\x7F5.2.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` \x82\x01R\x90Qa\x021\x91\x90aGgV[4\x80\x15a\x042W`\0\x80\xFD[P`>Ta\x02\x1D\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[4\x80\x15a\x04RW`\0\x80\xFD[Pa\x03!a\x19\xCAV[4\x80\x15a\x04gW`\0\x80\xFD[Pa\x01\xF6a\x04v6`\x04aGzV[a\x1AQV[4\x80\x15a\x04\x87W`\0\x80\xFD[Pa\x01\xF6a\x04\x966`\x04aG\x9FV[a\x1C\xFDV[4\x80\x15a\x04\xA7W`\0\x80\xFD[Pa\x03\xCCa\x1D\nV[4\x80\x15a\x04\xBCW`\0\x80\xFD[P`2Ta\x02\x1D\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[4\x80\x15a\x04\xDCW`\0\x80\xFD[Pa\x03!a\x04\xEB6`\x04aF\xF6V[`3` R`\0\x90\x81R`@\x90 T`\xFF\x16\x81V[4\x80\x15a\x05\x0CW`\0\x80\xFD[Pa\x03\x86a\x05\x1B6`\x04aG\xF2V[a\x1D\x91V[4\x80\x15a\x05,W`\0\x80\xFD[Pa\x02\x1Da\x05;6`\x04aH\x0FV[a\x1D\xAAV[4\x80\x15a\x05LW`\0\x80\xFD[P`?Ta\x02\x1D\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[4\x80\x15a\x05lW`\0\x80\xFD[Pa\x05\xC5a\x05{6`\x04aGzV[`9` \x90\x81R`\0\x92\x83R`@\x80\x84 \x90\x91R\x90\x82R\x90 T`\x01`\x01`\xA0\x1B\x03\x81\x16\x90t\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x82V[`@\x80Q`\x01`\x01`\xA0\x1B\x03\x90\x93\x16\x83Rg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16` \x83\x01R\x01a\x021V[4\x80\x15a\x05\xF9W`\0\x80\xFD[P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x03\xCCV[4\x80\x15a\x06,W`\0\x80\xFD[P`\x01Ta\x06\x88\x90o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x90g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFFp\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x82\x04\x81\x16\x91x\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04\x16\x83V[`@\x80Qo\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x94\x16\x84Rg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x92\x83\x16` \x85\x01R\x91\x16\x90\x82\x01R``\x01a\x021V[4\x80\x15a\x06\xCDW`\0\x80\xFD[Pa\x02\x1Da\x1D\xE2V[a\x01\xF6a\x06\xE46`\x04aH?V[a\x06\xFEV[4\x80\x15a\x06\xF5W`\0\x80\xFD[Pa\x02\x1Da\x1E)V[\x82`\0Z\x90Pa\x07\x0Ca\x1E\x8CV[\x15a\x07IW4\x15a\x07IW`@Q\x7F\xBDX\xE0\xA2\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\x01`@Q\x80\x91\x03\x90\xFD[a\x07Qa\x1F\x0EV[\x15a\x07\xC6W4\x15a\x07\xC6W`?`\0\x90T\x90a\x01\0\n\x90\x04`\x01`\x01`\xA0\x1B\x03\x16`\x01`\x01`\xA0\x1B\x03\x16c\x1E\xE1\x16\xBF4`@Q\x82c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01`\0`@Q\x80\x83\x03\x81\x85\x88\x80;\x15\x80\x15a\x07\xACW`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x07\xC0W=`\0\x80>=`\0\xFD[PPPPP[\x83\x80\x15a\x07\xDBWP`\x01`\x01`\xA0\x1B\x03\x87\x16\x15\x15[\x15a\x08\x12W`@Q\x7F\xC5\xDE\xFB\xAD\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\x01`@Q\x80\x91\x03\x90\xFD[a\x08\x1C\x83Qa\x1D\x91V[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x85g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x10\x15a\x08iW`@Q\x7Fp\xC8\xBD\xBD\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\x01`@Q\x80\x91\x03\x90\xFD[b\x01\xD4\xC0\x83Q\x11\x15a\x08\xA7W`@Q\x7FZ\xA3\xBA\xC9\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\x01`@Q\x80\x91\x03\x90\xFD[3a\x08\xB0a\x1F\xCDV[a\x08\xCDWP3s\x11\x11\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x11\x11\x01[`\x004\x88\x88\x88\x88`@Q` \x01a\x08\xE8\x95\x94\x93\x92\x91\x90aH\xBEV[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x90P`\0\x89`\x01`\x01`\xA0\x1B\x03\x16\x83`\x01`\x01`\xA0\x1B\x03\x16\x7F\xB3\x815h\xD9\x99\x1F\xC9Q\x96\x1F\xCBLxH\x93WB@\xA2\x89%`M\t\xFCW|U\xBB|2\x84`@Qa\t>\x91\x90aGgV[`@Q\x80\x91\x03\x90\xA4PPa\tR\x82\x82a \nV[PPPPPPPV[`7T`@\x80Q\x7F5\xE8\n\xB3\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\x90Q`\0\x92`\x01`\x01`\xA0\x1B\x03\x16\x91c5\xE8\n\xB3\x91`\x04\x80\x83\x01\x92` \x92\x91\x90\x82\x90\x03\x01\x81\x86Z\xFA\x15\x80\x15a\t\xBEW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\t\xE2\x91\x90aI#V[\x90P\x90V[`>T`@\x80Q\x7F<\x9F9|\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\x90Q`\0\x92`\x01`\x01`\xA0\x1B\x03\x16\x91c<\x9F9|\x91`\x04\x80\x83\x01\x92` \x92\x91\x90\x82\x90\x03\x01\x81\x86Z\xFA\x15\x80\x15a\nJW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\t\xE2\x91\x90aIRV[`\0\x80a\n\x99\x7F\xB51'hJV\x8B1s\xAE\x13\xB9\xF8\xA6\x01n$>c\xB6\xE8\xEE\x11x\xD6\xA7\x17\x85\x0B]a\x03T\x90V[\x90P`\x01`\x01`\xA0\x1B\x03\x81\x16\x15a\n\xAFW\x91\x90PV[`@Q\x80`@\x01`@R\x80`\x1A\x81R` \x01\x7FOVM_L1CrossDomainMessenger\0\0\0\0\0\0\x81RPQ`\x02a\n\xF2\x91\x90aI\x9EV[`@\x80Q0` \x82\x01R`\0\x91\x81\x01\x91\x90\x91R\x7FOVM_L1CrossDomainMessenger\0\0\0\0\0\0\x91\x90\x91\x17\x90a\x0BM\x90``\x01[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 T\x90V[\x14a\x0B\x84W`@Q\x7FT\xE43\xCD\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\x01`@Q\x80\x91\x03\x90\xFD[`@\x80Q0` \x82\x01R`\x01\x91\x81\x01\x91\x90\x91R`\0\x90a\x0B\xA6\x90``\x01a\x0B3V[\x90P`\x01`\x01`\xA0\x1B\x03\x81\x16\x15a\x0C W\x80`\x01`\x01`\xA0\x1B\x03\x16c\x8D\xA5\xCB[`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x0B\xF5W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x0C\x19\x91\x90aI#V[\x92PPP\x90V[`@Q\x7F3!D\xDB\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\x01`@Q\x80\x91\x03\x90\xFD[a\x0CZa\"\xE1V[a\x0Cba\x1E\x8CV[\x15a\x0C\xA3W``\x82\x01Q\x15a\x0C\xA3W`@Q\x7F\xBDX\xE0\xA2\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\x01`@Q\x80\x91\x03\x90\xFD[`2T`\x01`\x01`\xA0\x1B\x03\x16a\xDE\xAD\x14a\x0C\xE9W`@Q\x7F\xDF\xEA\xAE\xB8\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\x01`@Q\x80\x91\x03\x90\xFD[a\x0C\xF6\x82`@\x01Qa# V[\x15a\r-W`@Q\x7F\xC5\xDE\xFB\xAD\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\x01`@Q\x80\x91\x03\x90\xFD[`\0a\r8\x83a#IV[\x90Pa\rD\x81\x83a\x1AQV[`\0\x81\x81R`3` R`@\x90 \x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x16`\x01\x17\x90Ua\r\x83a\x1F\x0EV[\x15a\x0E\x15W``\x83\x01Q\x15a\x0E\x15W`?T``\x84\x01Q`@Q\x7F\x8DD[\xD0\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`\x01`\x01`\xA0\x1B\x03\x90\x92\x16\x91c\x8DD[\xD0\x91a\r\xE2\x91`\x04\x01\x90\x81R` \x01\x90V[`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a\r\xFCW`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x0E\x10W=`\0\x80>=`\0\xFD[PPPP[\x82` \x01Q`2`\0a\x01\0\n\x81T\x81`\x01`\x01`\xA0\x1B\x03\x02\x19\x16\x90\x83`\x01`\x01`\xA0\x1B\x03\x16\x02\x17\x90UP`\0a\x0E^\x84`@\x01Q\x85`\x80\x01Q\x86``\x01Q\x87`\xA0\x01Qa#\x96V[`2\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16a\xDE\xAD\x17\x90U`@Q\x90\x91P\x82\x90\x7F\xDB\\vR\x85z\xA1c\xDA\xAD\xD6p\xE1\x16b\x8F\xB4.\x86\x9D\x8A\xC4%\x1E\xF8\x97\x1D\x9EW'\xDF\x1B\x90a\x0E\xC3\x90\x84\x15\x15\x81R` \x01\x90V[`@Q\x80\x91\x03\x90\xA2a\x0E\xD3a\x1F\x0EV[\x15a\x0F]W\x80\x15\x80\x15a\x0E\xEAWP`\0\x84``\x01Q\x11[\x15a\x0F]W`?`\0\x90T\x90a\x01\0\n\x90\x04`\x01`\x01`\xA0\x1B\x03\x16`\x01`\x01`\xA0\x1B\x03\x16c\x1E\xE1\x16\xBF\x85``\x01Q`@Q\x82c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01`\0`@Q\x80\x83\x03\x81\x85\x88\x80;\x15\x80\x15a\x0FCW`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x0FWW=`\0\x80>=`\0\xFD[PPPPP[\x80\x15\x80\x15a\x0FkWP2`\x01\x14[\x15a\x0F\xA2W`@Q\x7F\xABX\x106\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\x01`@Q\x80\x91\x03\x90\xFD[PPPPV[`7T`@\x80Q\x7FE*\x93 \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\x90Q`\0\x92`\x01`\x01`\xA0\x1B\x03\x16\x91cE*\x93 \x91`\x04\x80\x83\x01\x92` \x92\x91\x90\x82\x90\x03\x01\x81\x86Z\xFA\x15\x80\x15a\t\xBEW=`\0\x80>=`\0\xFD[`>T`@Q\x7FE\x88M2\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`\x01`\x01`\xA0\x1B\x03\x83\x81\x16`\x04\x83\x01R`\0\x92\x16\x90cE\x88M2\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x10oW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x10\x93\x91\x90aI\xBDV[\x92\x91PPV[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\0Ta\x01\0\x90\x04`\xFF\x16\x15\x80\x15a\x10\xD9WP`\0T`\xFF\x80\x83\x16\x91\x16\x10[a\x11PW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`.`$\x82\x01R\x7FInitializable: contract is alrea`D\x82\x01R\x7Fdy initialized\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01[`@Q\x80\x91\x03\x90\xFD[`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\x16`\xFF\x83\x16\x17a\x01\0\x17\x90Ua\x11\x89a#\xF4V[`7\x80T`\x01`\x01`\xA0\x1B\x03\x80\x86\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x92\x83\x16\x17\x90\x92U`>\x80T\x92\x85\x16\x92\x90\x91\x16\x91\x90\x91\x17\x90Ua\x11\xD9a$[V[`2T`\x01`\x01`\xA0\x1B\x03\x16a\x12\x16W`2\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16a\xDE\xAD\x17\x90U[a\x12\x1Ea&\x0EV[`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\x16\x90U`@Q`\xFF\x82\x16\x81R\x7F\x7F&\xB8?\xF9n\x1F+jh/\x138R\xF6y\x8A\t\xC4e\xDA\x95\x92\x14`\xCE\xFB8G@$\x98\x90` \x01`@Q\x80\x91\x03\x90\xA1PPPV[a\x12\x89a\"\xE1V[a\x12\x96\x85`@\x01Qa# V[\x15a\x12\xCDW`@Q\x7F\xC5\xDE\xFB\xAD\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\x01`@Q\x80\x91\x03\x90\xFD[a\x12\xD5a\x1E\x8CV[\x15a\x13\x16W``\x85\x01Q\x15a\x13\x16W`@Q\x7F\xBDX\xE0\xA2\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\x01`@Q\x80\x91\x03\x90\xFD[`\0a\x13 a\x1E)V[`\x01`\x01`\xA0\x1B\x03\x16c\xBB\x8A\xA1\xFC\x86`@Q\x82c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01a\x13M\x91\x81R` \x01\x90V[```@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x13jW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x13\x8E\x91\x90aI\xDAV[`>T`@Q\x7FIk\x9C\x16\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`\x01`\x01`\xA0\x1B\x03\x80\x84\x16`\x04\x83\x01R\x92\x95P\x91\x16\x92PcIk\x9C\x16\x91P`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x13\xF5W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x14\x19\x91\x90aI\xBDV[a\x14OW`@Q\x7F\xF3\x95$\x0E\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\x01`@Q\x80\x91\x03\x90\xFD[`>T`@Q\x7F\x04\xE5\x0F\xED\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`\x01`\x01`\xA0\x1B\x03\x83\x81\x16`\x04\x83\x01R\x90\x91\x16\x90c\x04\xE5\x0F\xED\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x14\xB2W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x14\xD6\x91\x90aI\xBDV[a\x15\x0CW`@Q\x7F\xE2\x99'\xED\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01\x81`\x01`\x01`\xA0\x1B\x03\x16c \r.\xD2`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x15LW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x15p\x91\x90aJVV[`\x02\x81\x11\x15a\x15\x81Wa\x15\x81aJ'V[\x03a\x15\xB8W`@Q\x7F\xE2\x99'\xED\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\x01`@Q\x80\x91\x03\x90\xFD[a\x16*\x81`\x01`\x01`\xA0\x1B\x03\x16c\xCF\t\xE0\xD0`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x15\xF9W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x16\x1D\x91\x90aJwV[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90V[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16B\x11a\x16lW`@Q\x7F\xB4\xCA\xA4\xE5\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\x01`@Q\x80\x91\x03\x90\xFD[a\x16\x83a\x16~6\x86\x90\x03\x86\x01\x86aJ\x94V[a'\x07V[a\x16\xEB\x82`\x01`\x01`\xA0\x1B\x03\x16c\xBC\xEF;U`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x16\xC4W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x16\xE8\x91\x90aJ\xFAV[\x90V[\x14a\x17\"W`@Q\x7FBaI\xAF\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\x01`@Q\x80\x91\x03\x90\xFD[`\0a\x17-\x87a#IV[\x90P`\0\x81`\0`@Q` \x01a\x17N\x92\x91\x90\x91\x82R` \x82\x01R`@\x01\x90V[`@\x80Q`\x1F\x19\x81\x84\x03\x01\x81R\x82\x82R\x80Q` \x91\x82\x01 \x90\x83\x01\x81\x90R\x92Pa\x17\xC5\x91\x01`@\x80Q`\x1F\x19\x81\x84\x03\x01\x81R\x82\x82\x01\x90\x91R`\x01\x82R\x7F\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0` \x83\x01R\x90a\x17\xBB\x87\x89aK\x13V[\x89`@\x015a'FV[\x15\x15`\0\x03a\x18\0W`@Q\x7F.W\xEF:\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\x01`@Q\x80\x91\x03\x90\xFD[`@\x80Q\x80\x82\x01\x82R`\x01`\x01`\xA0\x1B\x03\x80\x86\x16\x82Rg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFFB\x81\x16` \x80\x85\x01\x91\x82R`\0\x88\x81R`9\x82R\x86\x81 3\x80\x83R\x90\x83R\x87\x82 \x96Q\x87T\x94Q\x90\x95\x16t\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x02\x7F\xFF\xFF\xFF\xFF\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\x90\x94\x16\x94\x86\x16\x94\x90\x94\x17\x92\x90\x92\x17\x90\x94U\x86\x81R`<\x84R\x84\x81 \x80T`\x01\x81\x01\x82U\x90\x82R\x84\x82 \x01\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x90\x92\x17\x90\x91U\x8B\x84\x01Q\x92\x8C\x01Q\x93Q\x92\x82\x16\x93\x90\x91\x16\x91\x85\x91\x7Fg\xA6 \x8C\xFC\xC0\x80\x1DP\xF6\xCB\xE7ds?O\xDD\xF6j\xC0\xB0DB\x06\x1A\x8A\x8C\x0C\xB6\xB6?b\x91\xA4`@Q3\x90\x83\x90\x7Fy\x8F\x9F\x13i_\x8F\x04Z\xA5\xF8\x0E\xD8\xEF\xEB\xB6\x95\xF3\xC7\xFEe\xDA8\x19i\xF2\xF2\x8B\xF3\xC6\x0B\x97\x90`\0\x90\xA3PPPPPPPPV[`>T`@\x80Q\x7F@\x86\xD1\x83\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\x90Q`\0\x92`\x01`\x01`\xA0\x1B\x03\x16\x91c@\x86\xD1\x83\x91`\x04\x80\x83\x01\x92` \x92\x91\x90\x82\x90\x03\x01\x81\x86Z\xFA\x15\x80\x15a\x19\xA6W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\t\xE2\x91\x90aJwV[`7T`@\x80Q\x7F\\\x97Z\xBB\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\x90Q`\0\x92`\x01`\x01`\xA0\x1B\x03\x16\x91c\\\x97Z\xBB\x91`\x04\x80\x83\x01\x92` \x92\x91\x90\x82\x90\x03\x01\x81\x86Z\xFA\x15\x80\x15a\x1A-W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\t\xE2\x91\x90aI\xBDV[`\0\x82\x81R`9` \x90\x81R`@\x80\x83 `\x01`\x01`\xA0\x1B\x03\x85\x81\x16\x85R\x90\x83R\x81\x84 \x82Q\x80\x84\x01\x84R\x90T\x91\x82\x16\x80\x82Rt\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x92\x04g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81\x85\x01R\x86\x85R`3\x90\x93R\x92 T\x90\x91\x90`\xFF\x16\x15a\x1A\xF3W`@Q\x7Fs\n\x10t\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\x01`@Q\x80\x91\x03\x90\xFD[\x81` \x01Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\0\x03a\x1B;W`@Q\x7F\xCC\xA6\xAF\xDA\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\x01`@Q\x80\x91\x03\x90\xFD[a\x1B|\x81`\x01`\x01`\xA0\x1B\x03\x16c\xCF\t\xE0\xD0`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x15\xF9W=`\0\x80>=`\0\xFD[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x82` \x01Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x11a\x1B\xCCW`@Q\x7F\xB4\xCA\xA4\xE5\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\x01`@Q\x80\x91\x03\x90\xFD[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x82` \x01Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16Ba\x1C\x07\x91\x90aK\x97V[\x11a\x1C>W`@Q\x7F\xD9\xBC\x01\xBE\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\x01`@Q\x80\x91\x03\x90\xFD[`>T`@Q\x7FlODg\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`\x01`\x01`\xA0\x1B\x03\x83\x81\x16`\x04\x83\x01R\x90\x91\x16\x90clODg\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x1C\xA1W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x1C\xC5\x91\x90aI\xBDV[a\x0F\xA2W`@Q\x7F3*W\xF8\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\x01`@Q\x80\x91\x03\x90\xFD[V[a\x1D\x07\x813a\x0CRV[PV[`>T`@\x80Q\x7F\x95+'\x97\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\x90Q`\0\x92`\x01`\x01`\xA0\x1B\x03\x16\x91c\x95+'\x97\x91`\x04\x80\x83\x01\x92` \x92\x91\x90\x82\x90\x03\x01\x81\x86Z\xFA\x15\x80\x15a\x1DmW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\t\xE2\x91\x90aJ\xFAV[`\0a\x1D\x9E\x82`(aK\xAEV[a\x10\x93\x90aR\x08aK\xDEV[`<` R\x81`\0R`@`\0 \x81\x81T\x81\x10a\x1D\xC6W`\0\x80\xFD[`\0\x91\x82R` \x90\x91 \x01T`\x01`\x01`\xA0\x1B\x03\x16\x91P\x82\x90PV[`\0a\x1D\xECa\nnV[`\x01`\x01`\xA0\x1B\x03\x16c\x8D\xA5\xCB[`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\t\xBEW=`\0\x80>=`\0\xFD[`>T`@\x80Q\x7F\xF2\xB4\xE6\x17\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\x90Q`\0\x92`\x01`\x01`\xA0\x1B\x03\x16\x91c\xF2\xB4\xE6\x17\x91`\x04\x80\x83\x01\x92` \x92\x91\x90\x82\x90\x03\x01\x81\x86Z\xFA\x15\x80\x15a\t\xBEW=`\0\x80>=`\0\xFD[`7T`@Q\x7FG\xAF&{\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\x7FCUSTOM_GAS_TOKEN\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x04\x82\x01R`\0\x91`\x01`\x01`\xA0\x1B\x03\x16\x90cG\xAF&{\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x1A-W=`\0\x80>=`\0\xFD[`7T`@Q\x7FG\xAF&{\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\x7FETH_LOCKBOX\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x04\x82\x01R`\0\x91`\x01`\x01`\xA0\x1B\x03\x16\x90cG\xAF&{\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x1F\x90W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x1F\xB4\x91\x90aI\xBDV[\x80\x15a\t\xE2WPP`?T`\x01`\x01`\xA0\x1B\x03\x16\x15\x15\x90V[`\x0023\x03a\x1F\xDCWP`\x01\x90V[3;`\x17\x03a \x04W`@Q` \x81\x01`@R` `\0\x823=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a%\0\x91\x90aI\xBDV[\x80\x15a%\x15WP`?T`\x01`\x01`\xA0\x1B\x03\x16\x15[\x80a%\xD7WP`7T`@Q\x7FG\xAF&{\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\x7FETH_LOCKBOX\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x04\x82\x01R`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x90cG\xAF&{\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a%\x9CW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a%\xC0\x91\x90aI\xBDV[\x15\x80\x15a%\xD7WP`?T`\x01`\x01`\xA0\x1B\x03\x16\x15\x15[\x15a\x1C\xFBW`@Q\x7F\x9CF\xCDy\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\x01`@Q\x80\x91\x03\x90\xFD[`\0Ta\x01\0\x90\x04`\xFF\x16a&\x8BW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FInitializable: contract is not i`D\x82\x01R\x7Fnitializing\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x11GV[`\x01Tx\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\0\x03a\x1C\xFBW`@\x80Q``\x81\x01\x82Rc;\x9A\xCA\0\x80\x82R`\0` \x83\x01RCg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x91\x90\x92\x01\x81\x90Rx\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x02\x17`\x01UV[`\0\x81`\0\x01Q\x82` \x01Q\x83`@\x01Q\x84``\x01Q`@Q` \x01a#y\x94\x93\x92\x91\x90\x93\x84R` \x84\x01\x92\x90\x92R`@\x83\x01R``\x82\x01R`\x80\x01\x90V[`\0\x80a'R\x86a(\xFAV[\x90Pa'`\x81\x86\x86\x86a),V[\x96\x95PPPPPPV[`@\x80Q`\xC0\x81\x01\x82R`\0\x80\x82R` \x82\x01\x81\x90R\x91\x81\x01\x82\x90R``\x81\x01\x82\x90R`\x80\x81\x01\x82\x90R`\xA0\x81\x01\x91\x90\x91R`7T`@\x80Q\x7F\xCCs\x1B\x02\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\x90Q`\0\x92`\x01`\x01`\xA0\x1B\x03\x16\x91c\xCCs\x1B\x02\x91`\x04\x80\x83\x01\x92`\xC0\x92\x91\x90\x82\x90\x03\x01\x81\x86Z\xFA\x15\x80\x15a'\xFFW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x10\x93\x91\x90aN\x9BV[`\0a(8a(2\x85\x85a)\\V[\x83a)lV[\x90P[\x93\x92PPPV[`\0g\r\xE0\xB6\xB3\xA7d\0\0a(\x83a(Z\x85\x83aL9V[a(l\x90g\r\xE0\xB6\xB3\xA7d\0\0aL\x83V[a(~\x85g\r\xE0\xB6\xB3\xA7d\0\0aL\xF7V[a){V[a(\x8D\x90\x86aL\xF7V[a(8\x91\x90aL9V[`\0\x81\x83\x10\x15a(\xA7W\x81a(;V[P\x90\x91\x90PV[`\0\x80Z\x90P[\x82Za(\xC1\x90\x83aK\x97V[\x10\x15a(\xD7Wa(\xD0\x82aOWV[\x91Pa(\xB5V[PPPV[`\0\x80`?\x83a\x9C@\x01\x02`@\x85\x02\x01`?Z\x02\x10\x15\x94\x93PPPPV[``\x81\x80Q\x90` \x01 `@Q` \x01a)\x16\x91\x81R` \x01\x90V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x90P\x91\x90PV[`\0a)S\x84a)=\x87\x86\x86a)\xACV[\x80Q` \x91\x82\x01 \x82Q\x92\x90\x91\x01\x91\x90\x91 \x14\x90V[\x95\x94PPPPPV[`\0\x81\x83\x12\x15a(\xA7W\x81a(;V[`\0\x81\x83\x12a(\xA7W\x81a(;V[`\0a(;g\r\xE0\xB6\xB3\xA7d\0\0\x83a)\x93\x86a2\xBEV[a)\x9D\x91\x90aL\xF7V[a)\xA7\x91\x90aL9V[a4\xE8V[```\0\x84Q\x11a)\xFFW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x15`$\x82\x01R\x7FMerkleTrie: empty key\0\0\0\0\0\0\0\0\0\0\0`D\x82\x01R`d\x01a\x11GV[`\0a*\n\x84a7\rV[\x90P`\0a*\x17\x86a7\xF9V[\x90P`\0\x84`@Q` \x01a*.\x91\x81R` \x01\x90V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x90P`\0\x80[\x84Q\x81\x10\x15a2OW`\0\x85\x82\x81Q\x81\x10a*`Wa*`aOqV[` \x02` \x01\x01Q\x90P\x84Q\x83\x11\x15a*\xE1W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`.`$\x82\x01R\x7FMerkleTrie: key index exceeds to`D\x82\x01R\x7Ftal key length\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x11GV[\x82`\0\x03a+\x80W\x80Q\x80Q` \x91\x82\x01 `@Qa+/\x92a+\t\x92\x91\x01\x90\x81R` \x01\x90V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x85\x80Q` \x91\x82\x01 \x82Q\x92\x90\x91\x01\x91\x90\x91 \x14\x90V[a+{W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1D`$\x82\x01R\x7FMerkleTrie: invalid root hash\0\0\0`D\x82\x01R`d\x01a\x11GV[a,\xA3V[\x80QQ` \x11a,\x1CW\x80Q\x80Q` \x91\x82\x01 `@Qa+\xAA\x92a+\t\x92\x91\x01\x90\x81R` \x01\x90V[a+{W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`'`$\x82\x01R\x7FMerkleTrie: invalid large intern`D\x82\x01R\x7Fal hash\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`d\x82\x01R`\x84\x01a\x11GV[\x80Q\x84Q` \x80\x87\x01\x91\x90\x91 \x82Q\x91\x90\x92\x01 \x14a,\xA3W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`&`$\x82\x01R\x7FMerkleTrie: invalid internal nod`D\x82\x01R\x7Fe hash\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`d\x82\x01R`\x84\x01a\x11GV[a,\xAF`\x10`\x01aO\xA0V[\x81` \x01QQ\x03a.WW\x84Q\x83\x03a-\xEFWa,\xE9\x81` \x01Q`\x10\x81Q\x81\x10a,\xDCWa,\xDCaOqV[` \x02` \x01\x01Qa8\\V[\x96P`\0\x87Q\x11a-bW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`;`$\x82\x01R\x7FMerkleTrie: value length must be`D\x82\x01R\x7F greater than zero (branch)\0\0\0\0\0`d\x82\x01R`\x84\x01a\x11GV[`\x01\x86Qa-p\x91\x90aK\x97V[\x82\x14a-\xE4W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`:`$\x82\x01R\x7FMerkleTrie: value node must be l`D\x82\x01R\x7Fast node in proof (branch)\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x11GV[PPPPPPa(;V[`\0\x85\x84\x81Q\x81\x10a.\x03Wa.\x03aOqV[` \x01\x01Q`\xF8\x1C`\xF8\x1B`\xF8\x1C\x90P`\0\x82` \x01Q\x82`\xFF\x16\x81Q\x81\x10a..Wa..aOqV[` \x02` \x01\x01Q\x90Pa.A\x81a9\x10V[\x95Pa.N`\x01\x86aO\xA0V[\x94PPPa2SW`\0a>\x03`\xC0\x83aK\x97V[\x90P\x80\x87`\0\x01Q\x11a>BW`@Q\x7Ff\xC9D\x85\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01\x95P\x93P\x84\x92Pa?\xA9\x91PPV[`\0a>``\xF7\x83aK\x97V[\x90P\x80\x87`\0\x01Q\x11a>\x9FW`@Q\x7Ff\xC9D\x85\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01\x83\x01Q\x7F\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16`\0\x81\x90\x03a?\x01W`@Q\x7F\xBA\xBB\x01\xDD\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01\x84\x01Q`\x08\x83\x02a\x01\0\x03\x1C`7\x81\x11a?IW`@Q\x7F\xBA\xBB\x01\xDD\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\x01`@Q\x80\x91\x03\x90\xFD[a?S\x81\x84aO\xA0V[\x89Q\x11a?\x8CW`@Q\x7Ff\xC9D\x85\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\x01`@Q\x80\x91\x03\x90\xFD[a?\x97\x83`\x01aO\xA0V[\x97P\x95P`\x01\x94Pa?\xA9\x93PPPPV[\x91\x93\x90\x92PV[``\x81g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a?\xCBWa?\xCBaC\xE9V[`@Q\x90\x80\x82R\x80`\x1F\x01`\x1F\x19\x16` \x01\x82\x01`@R\x80\x15a?\xF5W` \x82\x01\x81\x806\x837\x01\x90P[P\x90P\x81\x15a(;W`\0a@\n\x84\x86aO\xA0V[\x90P` \x82\x01`\0[\x84\x81\x10\x15a@+W\x82\x81\x01Q\x82\x82\x01R` \x01a@\x13V[\x84\x81\x11\x15a@:W`\0\x85\x83\x01R[PPP\x93\x92PPPV[``a\x10\x93\x82` \x01Q`\0\x84`\0\x01Qa?\xB0V[``\x81\x82`\x1F\x01\x10\x15a@\xAFW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x0E`$\x82\x01R\x7Fslice_overflow\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`D\x82\x01R`d\x01a\x11GV[\x82\x82\x84\x01\x10\x15aA\x01W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x0E`$\x82\x01R\x7Fslice_overflow\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`D\x82\x01R`d\x01a\x11GV[\x81\x83\x01\x84Q\x10\x15aATW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x11`$\x82\x01R\x7Fslice_outOfBounds\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`D\x82\x01R`d\x01a\x11GV[``\x82\x15\x80\x15aAsW`@Q\x91P`\0\x82R` \x82\x01`@RaA\xBDV[`@Q\x91P`\x1F\x84\x16\x80\x15` \x02\x81\x84\x01\x01\x85\x81\x01\x87\x83\x15` \x02\x84\x8B\x01\x01\x01[\x81\x83\x10\x15aA\xACW\x80Q\x83R` \x92\x83\x01\x92\x01aA\x94V[PP\x85\x84R`\x1F\x01`\x1F\x19\x16`@RP[P\x94\x93PPPPV[`@\x80Q\x80\x82\x01\x90\x91R`\0\x80\x82R` \x82\x01R\x81Q`\0\x03aB\x15W`@Q\x7FZ\xB4X\xFB\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\x01`@Q\x80\x91\x03\x90\xFD[P`@\x80Q\x80\x82\x01\x90\x91R\x81Q\x81R` \x91\x82\x01\x91\x81\x01\x91\x90\x91R\x90V[```\0\x80`\0aBC\x85a;\x12V[\x91\x94P\x92P\x90P`\x01\x81`\x01\x81\x11\x15aB^WaB^aJ'V[\x14aB\x95W`@Q\x7FK\x9Cj\xBE\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\x01`@Q\x80\x91\x03\x90\xFD[\x84QaB\xA1\x83\x85aO\xA0V[\x14aB\xD8W`@Q\x7F\\U7\xB8\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\x01`@Q\x80\x91\x03\x90\xFD[`@\x80Q` \x80\x82Ra\x04 \x82\x01\x90\x92R\x90\x81` \x01[`@\x80Q\x80\x82\x01\x90\x91R`\0\x80\x82R` \x82\x01R\x81R` \x01\x90`\x01\x90\x03\x90\x81aB\xEFW\x90PP\x93P`\0\x83[\x86Q\x81\x10\x15aC\xDDW`\0\x80aCb`@Q\x80`@\x01`@R\x80\x85\x8C`\0\x01QaCF\x91\x90aK\x97V[\x81R` \x01\x85\x8C` \x01QaC[\x91\x90aO\xA0V[\x90Ra;\x12V[P\x91P\x91P`@Q\x80`@\x01`@R\x80\x83\x83aC~\x91\x90aO\xA0V[\x81R` \x01\x84\x8B` \x01QaC\x93\x91\x90aO\xA0V[\x81RP\x88\x85\x81Q\x81\x10aC\xA8WaC\xA8aOqV[` \x90\x81\x02\x91\x90\x91\x01\x01RaC\xBE`\x01\x85aO\xA0V[\x93PaC\xCA\x81\x83aO\xA0V[aC\xD4\x90\x84aO\xA0V[\x92PPPaC\x1CV[P\x84RP\x91\x93\x92PPPV[\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[`@Q`\x1F\x82\x01`\x1F\x19\x16\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15aDAWaDAaC\xE9V[`@R\x91\x90PV[`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a\x1D\x07W`\0\x80\xFD[`\0\x82`\x1F\x83\x01\x12aDoW`\0\x80\xFD[\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15aD\x89WaD\x89aC\xE9V[aD\x9C` `\x1F\x19`\x1F\x84\x01\x16\x01aD\x18V[\x81\x81R\x84` \x83\x86\x01\x01\x11\x15aD\xB1W`\0\x80\xFD[\x81` \x85\x01` \x83\x017`\0\x91\x81\x01` \x01\x91\x90\x91R\x93\x92PPPV[`\0`\xC0\x82\x84\x03\x12\x15aD\xE0W`\0\x80\xFD[`@Q`\xC0\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x82\x10\x81\x83\x11\x17\x15aE\x04WaE\x04aC\xE9V[\x81`@R\x82\x93P\x845\x83R` \x85\x015\x91PaE\x1F\x82aDIV[\x81` \x84\x01R`@\x85\x015\x91PaE5\x82aDIV[\x81`@\x84\x01R``\x85\x015``\x84\x01R`\x80\x85\x015`\x80\x84\x01R`\xA0\x85\x015\x91P\x80\x82\x11\x15aEcW`\0\x80\xFD[PaEp\x85\x82\x86\x01aD^V[`\xA0\x83\x01RPP\x92\x91PPV[`\0\x80`@\x83\x85\x03\x12\x15aE\x90W`\0\x80\xFD[\x825g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15aE\xA7W`\0\x80\xFD[aE\xB3\x85\x82\x86\x01aD\xCEV[\x92PP` \x83\x015aE\xC4\x81aDIV[\x80\x91PP\x92P\x92\x90PV[`\0` \x82\x84\x03\x12\x15aE\xE1W`\0\x80\xFD[\x815a(;\x81aDIV[`\0\x80`@\x83\x85\x03\x12\x15aE\xFFW`\0\x80\xFD[\x825aF\n\x81aDIV[\x91P` \x83\x015aE\xC4\x81aDIV[`\0\x80`\0\x80`\0\x85\x87\x03`\xE0\x81\x12\x15aF3W`\0\x80\xFD[\x865g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15aFKW`\0\x80\xFD[aFW\x8A\x83\x8B\x01aD\xCEV[\x97P` \x89\x015\x96P`\x80\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xC0\x84\x01\x12\x15aF\x90W`\0\x80\xFD[`@\x89\x01\x95P`\xC0\x89\x015\x92P\x80\x83\x11\x15aF\xAAW`\0\x80\xFD[\x82\x89\x01\x92P\x89`\x1F\x84\x01\x12aF\xBEW`\0\x80\xFD[\x825\x91P\x80\x82\x11\x15aF\xCFW`\0\x80\xFD[P\x88` \x82`\x05\x1B\x84\x01\x01\x11\x15aF\xE5W`\0\x80\xFD[\x95\x98\x94\x97P\x92\x95PPP` \x01\x91\x90V[`\0` \x82\x84\x03\x12\x15aG\x08W`\0\x80\xFD[P5\x91\x90PV[`\0[\x83\x81\x10\x15aG*W\x81\x81\x01Q\x83\x82\x01R` \x01aG\x12V[\x83\x81\x11\x15a\x0F\xA2WPP`\0\x91\x01RV[`\0\x81Q\x80\x84RaGS\x81` \x86\x01` \x86\x01aG\x0FV[`\x1F\x01`\x1F\x19\x16\x92\x90\x92\x01` \x01\x92\x91PPV[` \x81R`\0a(;` \x83\x01\x84aG;V[`\0\x80`@\x83\x85\x03\x12\x15aG\x8DW`\0\x80\xFD[\x825\x91P` \x83\x015aE\xC4\x81aDIV[`\0` \x82\x84\x03\x12\x15aG\xB1W`\0\x80\xFD[\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15aG\xC8W`\0\x80\xFD[aG\xD4\x84\x82\x85\x01aD\xCEV[\x94\x93PPPPV[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x1D\x07W`\0\x80\xFD[`\0` \x82\x84\x03\x12\x15aH\x04W`\0\x80\xFD[\x815a(;\x81aG\xDCV[`\0\x80`@\x83\x85\x03\x12\x15aH\"W`\0\x80\xFD[PP\x805\x92` \x90\x91\x015\x91PV[\x80\x15\x15\x81\x14a\x1D\x07W`\0\x80\xFD[`\0\x80`\0\x80`\0`\xA0\x86\x88\x03\x12\x15aHWW`\0\x80\xFD[\x855aHb\x81aDIV[\x94P` \x86\x015\x93P`@\x86\x015aHy\x81aG\xDCV[\x92P``\x86\x015aH\x89\x81aH1V[\x91P`\x80\x86\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15aH\xA5W`\0\x80\xFD[aH\xB1\x88\x82\x89\x01aD^V[\x91PP\x92\x95P\x92\x95\x90\x93PV[\x85\x81R\x84` \x82\x01R\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x84`\xC0\x1B\x16`@\x82\x01R\x82\x15\x15`\xF8\x1B`H\x82\x01R`\0\x82QaI\x12\x81`I\x85\x01` \x87\x01aG\x0FV[\x91\x90\x91\x01`I\x01\x96\x95PPPPPPV[`\0` \x82\x84\x03\x12\x15aI5W`\0\x80\xFD[\x81Qa(;\x81aDIV[c\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x1D\x07W`\0\x80\xFD[`\0` \x82\x84\x03\x12\x15aIdW`\0\x80\xFD[\x81Qa(;\x81aI@V[\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`\x11`\x04R`$`\0\xFD[`\0\x81`\0\x19\x04\x83\x11\x82\x15\x15\x16\x15aI\xB8WaI\xB8aIoV[P\x02\x90V[`\0` \x82\x84\x03\x12\x15aI\xCFW`\0\x80\xFD[\x81Qa(;\x81aH1V[`\0\x80`\0``\x84\x86\x03\x12\x15aI\xEFW`\0\x80\xFD[\x83QaI\xFA\x81aI@V[` \x85\x01Q\x90\x93PaJ\x0B\x81aG\xDCV[`@\x85\x01Q\x90\x92PaJ\x1C\x81aDIV[\x80\x91PP\x92P\x92P\x92V[\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`!`\x04R`$`\0\xFD[`\0` \x82\x84\x03\x12\x15aJhW`\0\x80\xFD[\x81Q`\x03\x81\x10a(;W`\0\x80\xFD[`\0` \x82\x84\x03\x12\x15aJ\x89W`\0\x80\xFD[\x81Qa(;\x81aG\xDCV[`\0`\x80\x82\x84\x03\x12\x15aJ\xA6W`\0\x80\xFD[`@Q`\x80\x81\x01\x81\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17\x15aJ\xC9WaJ\xC9aC\xE9V[\x80`@RP\x825\x81R` \x83\x015` \x82\x01R`@\x83\x015`@\x82\x01R``\x83\x015``\x82\x01R\x80\x91PP\x92\x91PPV[`\0` \x82\x84\x03\x12\x15aK\x0CW`\0\x80\xFD[PQ\x91\x90PV[`\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x84\x11\x15aK.WaK.aC\xE9V[\x83`\x05\x1B` aK?\x81\x83\x01aD\x18V[\x86\x81R\x91\x85\x01\x91\x81\x81\x01\x906\x84\x11\x15aKWW`\0\x80\xFD[\x86[\x84\x81\x10\x15aK\x8BW\x805\x86\x81\x11\x15aKqW`\0\x80\x81\xFD[aK}6\x82\x8B\x01aD^V[\x84RP\x91\x83\x01\x91\x83\x01aKYV[P\x97\x96PPPPPPPV[`\0\x82\x82\x10\x15aK\xA9WaK\xA9aIoV[P\x03\x90V[`\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x83\x16\x81\x85\x16\x81\x83\x04\x81\x11\x82\x15\x15\x16\x15aK\xD5WaK\xD5aIoV[\x02\x94\x93PPPPV[`\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x83\x16\x81\x85\x16\x80\x83\x03\x82\x11\x15aL\x01WaL\x01aIoV[\x01\x94\x93PPPPV[\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`\x12`\x04R`$`\0\xFD[`\0\x82aLHWaLHaL\nV[`\0\x19\x83\x14\x7F\x80\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x83\x14\x16\x15aL~WaL~aIoV[P\x05\x90V[`\0\x80\x83\x12\x83\x7F\x80\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x83\x12\x81\x15\x16\x15aL\xBDWaL\xBDaIoV[\x83\x7F\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x01\x83\x13\x81\x16\x15aL\xF1WaL\xF1aIoV[PP\x03\x90V[`\0\x7F\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF`\0\x84\x13`\0\x84\x13\x85\x83\x04\x85\x11\x82\x82\x16\x16\x15aM8WaM8aIoV[\x7F\x80\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\0\x87\x12\x86\x82\x05\x88\x12\x81\x84\x16\x16\x15aMsWaMsaIoV[`\0\x87\x12\x92P\x87\x82\x05\x87\x12\x84\x84\x16\x16\x15aM\x8FWaM\x8FaIoV[\x87\x85\x05\x87\x12\x81\x84\x16\x16\x15aM\xA5WaM\xA5aIoV[PPP\x92\x90\x93\x02\x93\x92PPPV[`\0\x80\x82\x12\x82\x7F\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x03\x84\x13\x81\x15\x16\x15aM\xEDWaM\xEDaIoV[\x82\x7F\x80\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x03\x84\x12\x81\x16\x15aN!WaN!aIoV[PP\x01\x90V[`\0\x82aN6WaN6aL\nV[P\x04\x90V[\x86\x81R`\0`\x01`\x01`\xA0\x1B\x03\x80\x88\x16` \x84\x01R\x80\x87\x16`@\x84\x01RP\x84``\x83\x01R\x83`\x80\x83\x01R`\xC0`\xA0\x83\x01RaNy`\xC0\x83\x01\x84aG;V[\x98\x97PPPPPPPPV[\x80Q`\xFF\x81\x16\x81\x14aN\x96W`\0\x80\xFD[\x91\x90PV[`\0`\xC0\x82\x84\x03\x12\x15aN\xADW`\0\x80\xFD[`@Q`\xC0\x81\x01\x81\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17\x15aN\xD0WaN\xD0aC\xE9V[`@R\x82QaN\xDE\x81aI@V[\x81RaN\xEC` \x84\x01aN\x85V[` \x82\x01RaN\xFD`@\x84\x01aN\x85V[`@\x82\x01R``\x83\x01QaO\x10\x81aI@V[``\x82\x01R`\x80\x83\x01QaO#\x81aI@V[`\x80\x82\x01R`\xA0\x83\x01Qo\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14aOKW`\0\x80\xFD[`\xA0\x82\x01R\x93\x92PPPV[`\0`\0\x19\x82\x03aOjWaOjaIoV[P`\x01\x01\x90V[\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`2`\x04R`$`\0\xFD[`\0\x82\x19\x82\x11\x15aO\xB3WaO\xB3aIoV[P\x01\x90V[`\0`\xFF\x83\x16\x80aO\xCBWaO\xCBaL\nV[\x80`\xFF\x84\x16\x06\x91PP\x92\x91PPV[`\0`\xFF\x82\x16`\xFF\x84\x16\x80\x82\x10\x15aO\xF4WaO\xF4aIoV[\x90\x03\x93\x92PPPV\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct GameType(u32); + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for u32 { + #[inline] + fn stv_to_tokens( + &self, + ) -> as alloy_sol_types::SolType>::Token<'_> { + alloy_sol_types::private::SolTypeValue::< + alloy::sol_types::sol_data::Uint<32>, + >::stv_to_tokens(self) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + as alloy_sol_types::SolType>::tokenize(self) + .0 + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::SolType>::abi_encode_packed_to(self, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + as alloy_sol_types::SolType>::abi_encoded_size(self) + } + } + impl GameType { + /// The Solidity type name. + pub const NAME: &'static str = stringify!(@ name); + /// Convert from the underlying value type. + #[inline] + pub const fn from_underlying(value: u32) -> Self { + Self(value) + } + /// Return the underlying value. + #[inline] + pub const fn into_underlying(self) -> u32 { + self.0 + } + /// Return the single encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode(&self) -> alloy_sol_types::private::Vec { + ::abi_encode(&self.0) + } + /// Return the packed encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec { + ::abi_encode_packed(&self.0) + } + } + #[automatically_derived] + impl From for GameType { + fn from(value: u32) -> Self { + Self::from_underlying(value) + } + } + #[automatically_derived] + impl From for u32 { + fn from(value: GameType) -> Self { + value.into_underlying() + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for GameType { + type RustType = u32; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = Self::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + Self::type_check(token).is_ok() + } + #[inline] + fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> { + as alloy_sol_types::SolType>::type_check(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + as alloy_sol_types::SolType>::detokenize(token) + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for GameType { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + as alloy_sol_types::EventTopic>::topic_preimage_length(rust) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out) + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + as alloy_sol_types::EventTopic>::encode_topic(rust) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ContentLengthMismatch()` and selector `0x66c94485`. +```solidity +error ContentLengthMismatch(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ContentLengthMismatch; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ContentLengthMismatch) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ContentLengthMismatch { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ContentLengthMismatch { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ContentLengthMismatch()"; + const SELECTOR: [u8; 4] = [102u8, 201u8, 68u8, 133u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `EmptyItem()` and selector `0x5ab458fb`. +```solidity +error EmptyItem(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct EmptyItem; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: EmptyItem) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for EmptyItem { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for EmptyItem { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "EmptyItem()"; + const SELECTOR: [u8; 4] = [90u8, 180u8, 88u8, 251u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidDataRemainder()` and selector `0x5c5537b8`. +```solidity +error InvalidDataRemainder(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidDataRemainder; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InvalidDataRemainder) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InvalidDataRemainder { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidDataRemainder { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidDataRemainder()"; + const SELECTOR: [u8; 4] = [92u8, 85u8, 55u8, 184u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidHeader()` and selector `0xbabb01dd`. +```solidity +error InvalidHeader(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidHeader; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InvalidHeader) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InvalidHeader { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidHeader { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidHeader()"; + const SELECTOR: [u8; 4] = [186u8, 187u8, 1u8, 221u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `OptimismPortal_AlreadyFinalized()` and selector `0x730a1074`. +```solidity +error OptimismPortal_AlreadyFinalized(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct OptimismPortal_AlreadyFinalized; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: OptimismPortal_AlreadyFinalized) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for OptimismPortal_AlreadyFinalized { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for OptimismPortal_AlreadyFinalized { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "OptimismPortal_AlreadyFinalized()"; + const SELECTOR: [u8; 4] = [115u8, 10u8, 16u8, 116u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `OptimismPortal_BadTarget()` and selector `0xc5defbad`. +```solidity +error OptimismPortal_BadTarget(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct OptimismPortal_BadTarget; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: OptimismPortal_BadTarget) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for OptimismPortal_BadTarget { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for OptimismPortal_BadTarget { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "OptimismPortal_BadTarget()"; + const SELECTOR: [u8; 4] = [197u8, 222u8, 251u8, 173u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `OptimismPortal_CallPaused()` and selector `0xb9c3c2ef`. +```solidity +error OptimismPortal_CallPaused(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct OptimismPortal_CallPaused; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: OptimismPortal_CallPaused) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for OptimismPortal_CallPaused { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for OptimismPortal_CallPaused { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "OptimismPortal_CallPaused()"; + const SELECTOR: [u8; 4] = [185u8, 195u8, 194u8, 239u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `OptimismPortal_CalldataTooLarge()` and selector `0x5aa3bac9`. +```solidity +error OptimismPortal_CalldataTooLarge(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct OptimismPortal_CalldataTooLarge; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: OptimismPortal_CalldataTooLarge) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for OptimismPortal_CalldataTooLarge { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for OptimismPortal_CalldataTooLarge { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "OptimismPortal_CalldataTooLarge()"; + const SELECTOR: [u8; 4] = [90u8, 163u8, 186u8, 201u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `OptimismPortal_GasEstimation()` and selector `0xab581036`. +```solidity +error OptimismPortal_GasEstimation(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct OptimismPortal_GasEstimation; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: OptimismPortal_GasEstimation) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for OptimismPortal_GasEstimation { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for OptimismPortal_GasEstimation { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "OptimismPortal_GasEstimation()"; + const SELECTOR: [u8; 4] = [171u8, 88u8, 16u8, 54u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `OptimismPortal_GasLimitTooLow()` and selector `0x70c8bdbd`. +```solidity +error OptimismPortal_GasLimitTooLow(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct OptimismPortal_GasLimitTooLow; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: OptimismPortal_GasLimitTooLow) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for OptimismPortal_GasLimitTooLow { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for OptimismPortal_GasLimitTooLow { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "OptimismPortal_GasLimitTooLow()"; + const SELECTOR: [u8; 4] = [112u8, 200u8, 189u8, 189u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `OptimismPortal_ImproperDisputeGame()` and selector `0xf395240e`. +```solidity +error OptimismPortal_ImproperDisputeGame(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct OptimismPortal_ImproperDisputeGame; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: OptimismPortal_ImproperDisputeGame) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for OptimismPortal_ImproperDisputeGame { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for OptimismPortal_ImproperDisputeGame { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "OptimismPortal_ImproperDisputeGame()"; + const SELECTOR: [u8; 4] = [243u8, 149u8, 36u8, 14u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `OptimismPortal_InvalidDisputeGame()` and selector `0xe29927ed`. +```solidity +error OptimismPortal_InvalidDisputeGame(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct OptimismPortal_InvalidDisputeGame; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: OptimismPortal_InvalidDisputeGame) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for OptimismPortal_InvalidDisputeGame { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for OptimismPortal_InvalidDisputeGame { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "OptimismPortal_InvalidDisputeGame()"; + const SELECTOR: [u8; 4] = [226u8, 153u8, 39u8, 237u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `OptimismPortal_InvalidLockboxState()` and selector `0x9c46cd79`. +```solidity +error OptimismPortal_InvalidLockboxState(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct OptimismPortal_InvalidLockboxState; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: OptimismPortal_InvalidLockboxState) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for OptimismPortal_InvalidLockboxState { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for OptimismPortal_InvalidLockboxState { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "OptimismPortal_InvalidLockboxState()"; + const SELECTOR: [u8; 4] = [156u8, 70u8, 205u8, 121u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `OptimismPortal_InvalidMerkleProof()` and selector `0x2e57ef3a`. +```solidity +error OptimismPortal_InvalidMerkleProof(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct OptimismPortal_InvalidMerkleProof; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: OptimismPortal_InvalidMerkleProof) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for OptimismPortal_InvalidMerkleProof { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for OptimismPortal_InvalidMerkleProof { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "OptimismPortal_InvalidMerkleProof()"; + const SELECTOR: [u8; 4] = [46u8, 87u8, 239u8, 58u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `OptimismPortal_InvalidOutputRootProof()` and selector `0x426149af`. +```solidity +error OptimismPortal_InvalidOutputRootProof(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct OptimismPortal_InvalidOutputRootProof; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: OptimismPortal_InvalidOutputRootProof) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for OptimismPortal_InvalidOutputRootProof { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for OptimismPortal_InvalidOutputRootProof { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "OptimismPortal_InvalidOutputRootProof()"; + const SELECTOR: [u8; 4] = [66u8, 97u8, 73u8, 175u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `OptimismPortal_InvalidProofTimestamp()` and selector `0xb4caa4e5`. +```solidity +error OptimismPortal_InvalidProofTimestamp(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct OptimismPortal_InvalidProofTimestamp; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: OptimismPortal_InvalidProofTimestamp) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for OptimismPortal_InvalidProofTimestamp { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for OptimismPortal_InvalidProofTimestamp { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "OptimismPortal_InvalidProofTimestamp()"; + const SELECTOR: [u8; 4] = [180u8, 202u8, 164u8, 229u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `OptimismPortal_InvalidRootClaim()` and selector `0x332a57f8`. +```solidity +error OptimismPortal_InvalidRootClaim(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct OptimismPortal_InvalidRootClaim; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: OptimismPortal_InvalidRootClaim) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for OptimismPortal_InvalidRootClaim { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for OptimismPortal_InvalidRootClaim { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "OptimismPortal_InvalidRootClaim()"; + const SELECTOR: [u8; 4] = [51u8, 42u8, 87u8, 248u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `OptimismPortal_NoReentrancy()` and selector `0xdfeaaeb8`. +```solidity +error OptimismPortal_NoReentrancy(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct OptimismPortal_NoReentrancy; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: OptimismPortal_NoReentrancy) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for OptimismPortal_NoReentrancy { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for OptimismPortal_NoReentrancy { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "OptimismPortal_NoReentrancy()"; + const SELECTOR: [u8; 4] = [223u8, 234u8, 174u8, 184u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `OptimismPortal_NotAllowedOnCGTMode()` and selector `0xbd58e0a2`. +```solidity +error OptimismPortal_NotAllowedOnCGTMode(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct OptimismPortal_NotAllowedOnCGTMode; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: OptimismPortal_NotAllowedOnCGTMode) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for OptimismPortal_NotAllowedOnCGTMode { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for OptimismPortal_NotAllowedOnCGTMode { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "OptimismPortal_NotAllowedOnCGTMode()"; + const SELECTOR: [u8; 4] = [189u8, 88u8, 224u8, 162u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `OptimismPortal_ProofNotOldEnough()` and selector `0xd9bc01be`. +```solidity +error OptimismPortal_ProofNotOldEnough(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct OptimismPortal_ProofNotOldEnough; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: OptimismPortal_ProofNotOldEnough) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for OptimismPortal_ProofNotOldEnough { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for OptimismPortal_ProofNotOldEnough { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "OptimismPortal_ProofNotOldEnough()"; + const SELECTOR: [u8; 4] = [217u8, 188u8, 1u8, 190u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `OptimismPortal_Unproven()` and selector `0xcca6afda`. +```solidity +error OptimismPortal_Unproven(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct OptimismPortal_Unproven; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: OptimismPortal_Unproven) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for OptimismPortal_Unproven { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for OptimismPortal_Unproven { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "OptimismPortal_Unproven()"; + const SELECTOR: [u8; 4] = [204u8, 166u8, 175u8, 218u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `OutOfGas()` and selector `0x77ebef4d`. +```solidity +error OutOfGas(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct OutOfGas; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: OutOfGas) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for OutOfGas { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for OutOfGas { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "OutOfGas()"; + const SELECTOR: [u8; 4] = [119u8, 235u8, 239u8, 77u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ProxyAdminOwnedBase_NotProxyAdmin()` and selector `0xe818dcc3`. +```solidity +error ProxyAdminOwnedBase_NotProxyAdmin(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ProxyAdminOwnedBase_NotProxyAdmin; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: ProxyAdminOwnedBase_NotProxyAdmin) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for ProxyAdminOwnedBase_NotProxyAdmin { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ProxyAdminOwnedBase_NotProxyAdmin { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ProxyAdminOwnedBase_NotProxyAdmin()"; + const SELECTOR: [u8; 4] = [232u8, 24u8, 220u8, 195u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner()` and selector `0xc4050a26`. +```solidity +error ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError + for ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner()"; + const SELECTOR: [u8; 4] = [196u8, 5u8, 10u8, 38u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ProxyAdminOwnedBase_NotProxyAdminOwner()` and selector `0x7f12c64b`. +```solidity +error ProxyAdminOwnedBase_NotProxyAdminOwner(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ProxyAdminOwnedBase_NotProxyAdminOwner; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: ProxyAdminOwnedBase_NotProxyAdminOwner) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for ProxyAdminOwnedBase_NotProxyAdminOwner { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ProxyAdminOwnedBase_NotProxyAdminOwner { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ProxyAdminOwnedBase_NotProxyAdminOwner()"; + const SELECTOR: [u8; 4] = [127u8, 18u8, 198u8, 75u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ProxyAdminOwnedBase_NotResolvedDelegateProxy()` and selector `0x54e433cd`. +```solidity +error ProxyAdminOwnedBase_NotResolvedDelegateProxy(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ProxyAdminOwnedBase_NotResolvedDelegateProxy; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: ProxyAdminOwnedBase_NotResolvedDelegateProxy) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for ProxyAdminOwnedBase_NotResolvedDelegateProxy { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ProxyAdminOwnedBase_NotResolvedDelegateProxy { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ProxyAdminOwnedBase_NotResolvedDelegateProxy()"; + const SELECTOR: [u8; 4] = [84u8, 228u8, 51u8, 205u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ProxyAdminOwnedBase_NotSharedProxyAdminOwner()` and selector `0x075c4314`. +```solidity +error ProxyAdminOwnedBase_NotSharedProxyAdminOwner(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ProxyAdminOwnedBase_NotSharedProxyAdminOwner; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: ProxyAdminOwnedBase_NotSharedProxyAdminOwner) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for ProxyAdminOwnedBase_NotSharedProxyAdminOwner { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ProxyAdminOwnedBase_NotSharedProxyAdminOwner { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ProxyAdminOwnedBase_NotSharedProxyAdminOwner()"; + const SELECTOR: [u8; 4] = [7u8, 92u8, 67u8, 20u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ProxyAdminOwnedBase_ProxyAdminNotFound()` and selector `0x332144db`. +```solidity +error ProxyAdminOwnedBase_ProxyAdminNotFound(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ProxyAdminOwnedBase_ProxyAdminNotFound; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: ProxyAdminOwnedBase_ProxyAdminNotFound) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for ProxyAdminOwnedBase_ProxyAdminNotFound { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ProxyAdminOwnedBase_ProxyAdminNotFound { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ProxyAdminOwnedBase_ProxyAdminNotFound()"; + const SELECTOR: [u8; 4] = [51u8, 33u8, 68u8, 219u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ReinitializableBase_ZeroInitVersion()` and selector `0x9b01afed`. +```solidity +error ReinitializableBase_ZeroInitVersion(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ReinitializableBase_ZeroInitVersion; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: ReinitializableBase_ZeroInitVersion) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for ReinitializableBase_ZeroInitVersion { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ReinitializableBase_ZeroInitVersion { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ReinitializableBase_ZeroInitVersion()"; + const SELECTOR: [u8; 4] = [155u8, 1u8, 175u8, 237u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `UnexpectedList()` and selector `0x1ff9b2e4`. +```solidity +error UnexpectedList(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct UnexpectedList; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: UnexpectedList) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for UnexpectedList { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for UnexpectedList { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "UnexpectedList()"; + const SELECTOR: [u8; 4] = [31u8, 249u8, 178u8, 228u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `UnexpectedString()` and selector `0x4b9c6abe`. +```solidity +error UnexpectedString(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct UnexpectedString; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: UnexpectedString) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for UnexpectedString { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for UnexpectedString { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "UnexpectedString()"; + const SELECTOR: [u8; 4] = [75u8, 156u8, 106u8, 190u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `Initialized(uint8)` and selector `0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498`. +```solidity +event Initialized(uint8 version); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct Initialized { + #[allow(missing_docs)] + pub version: u8, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for Initialized { + type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<8>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,); + const SIGNATURE: &'static str = "Initialized(uint8)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 127u8, 38u8, 184u8, 63u8, 249u8, 110u8, 31u8, 43u8, 106u8, 104u8, 47u8, + 19u8, 56u8, 82u8, 246u8, 121u8, 138u8, 9u8, 196u8, 101u8, 218u8, 149u8, + 146u8, 20u8, 96u8, 206u8, 251u8, 56u8, 71u8, 64u8, 36u8, 152u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { version: data.0 } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.version), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(),) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for Initialized { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&Initialized> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &Initialized) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `TransactionDeposited(address,address,uint256,bytes)` and selector `0xb3813568d9991fc951961fcb4c784893574240a28925604d09fc577c55bb7c32`. +```solidity +event TransactionDeposited(address indexed from, address indexed to, uint256 indexed version, bytes opaqueData); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct TransactionDeposited { + #[allow(missing_docs)] + pub from: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub version: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub opaqueData: alloy::sol_types::private::Bytes, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for TransactionDeposited { + type DataTuple<'a> = (alloy::sol_types::sol_data::Bytes,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + const SIGNATURE: &'static str = "TransactionDeposited(address,address,uint256,bytes)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 179u8, 129u8, 53u8, 104u8, 217u8, 153u8, 31u8, 201u8, 81u8, 150u8, 31u8, + 203u8, 76u8, 120u8, 72u8, 147u8, 87u8, 66u8, 64u8, 162u8, 137u8, 37u8, + 96u8, 77u8, 9u8, 252u8, 87u8, 124u8, 85u8, 187u8, 124u8, 50u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + from: topics.1, + to: topics.2, + version: topics.3, + opaqueData: data.0, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + ::tokenize( + &self.opaqueData, + ), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + ( + Self::SIGNATURE_HASH.into(), + self.from.clone(), + self.to.clone(), + self.version.clone(), + ) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.from, + ); + out[2usize] = ::encode_topic( + &self.to, + ); + out[3usize] = as alloy_sol_types::EventTopic>::encode_topic(&self.version); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for TransactionDeposited { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&TransactionDeposited> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &TransactionDeposited) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `WithdrawalFinalized(bytes32,bool)` and selector `0xdb5c7652857aa163daadd670e116628fb42e869d8ac4251ef8971d9e5727df1b`. +```solidity +event WithdrawalFinalized(bytes32 indexed withdrawalHash, bool success); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct WithdrawalFinalized { + #[allow(missing_docs)] + pub withdrawalHash: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub success: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for WithdrawalFinalized { + type DataTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + const SIGNATURE: &'static str = "WithdrawalFinalized(bytes32,bool)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 219u8, 92u8, 118u8, 82u8, 133u8, 122u8, 161u8, 99u8, 218u8, 173u8, 214u8, + 112u8, 225u8, 22u8, 98u8, 143u8, 180u8, 46u8, 134u8, 157u8, 138u8, 196u8, + 37u8, 30u8, 248u8, 151u8, 29u8, 158u8, 87u8, 39u8, 223u8, 27u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + withdrawalHash: topics.1, + success: data.0, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + ::tokenize( + &self.success, + ), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.withdrawalHash.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = as alloy_sol_types::EventTopic>::encode_topic(&self.withdrawalHash); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for WithdrawalFinalized { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&WithdrawalFinalized> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &WithdrawalFinalized) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `WithdrawalProven(bytes32,address,address)` and selector `0x67a6208cfcc0801d50f6cbe764733f4fddf66ac0b04442061a8a8c0cb6b63f62`. +```solidity +event WithdrawalProven(bytes32 indexed withdrawalHash, address indexed from, address indexed to); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct WithdrawalProven { + #[allow(missing_docs)] + pub withdrawalHash: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub from: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub to: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for WithdrawalProven { + type DataTuple<'a> = (); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "WithdrawalProven(bytes32,address,address)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 103u8, 166u8, 32u8, 140u8, 252u8, 192u8, 128u8, 29u8, 80u8, 246u8, 203u8, + 231u8, 100u8, 115u8, 63u8, 79u8, 221u8, 246u8, 106u8, 192u8, 176u8, 68u8, + 66u8, 6u8, 26u8, 138u8, 140u8, 12u8, 182u8, 182u8, 63u8, 98u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + withdrawalHash: topics.1, + from: topics.2, + to: topics.3, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + () + } + #[inline] + fn topics(&self) -> ::RustType { + ( + Self::SIGNATURE_HASH.into(), + self.withdrawalHash.clone(), + self.from.clone(), + self.to.clone(), + ) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = as alloy_sol_types::EventTopic>::encode_topic(&self.withdrawalHash); + out[2usize] = ::encode_topic( + &self.from, + ); + out[3usize] = ::encode_topic( + &self.to, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for WithdrawalProven { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&WithdrawalProven> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &WithdrawalProven) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `WithdrawalProvenExtension1(bytes32,address)` and selector `0x798f9f13695f8f045aa5f80ed8efebb695f3c7fe65da381969f2f28bf3c60b97`. +```solidity +event WithdrawalProvenExtension1(bytes32 indexed withdrawalHash, address indexed proofSubmitter); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct WithdrawalProvenExtension1 { + #[allow(missing_docs)] + pub withdrawalHash: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub proofSubmitter: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for WithdrawalProvenExtension1 { + type DataTuple<'a> = (); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "WithdrawalProvenExtension1(bytes32,address)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 121u8, 143u8, 159u8, 19u8, 105u8, 95u8, 143u8, 4u8, 90u8, 165u8, 248u8, + 14u8, 216u8, 239u8, 235u8, 182u8, 149u8, 243u8, 199u8, 254u8, 101u8, + 218u8, 56u8, 25u8, 105u8, 242u8, 242u8, 139u8, 243u8, 198u8, 11u8, 151u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + withdrawalHash: topics.1, + proofSubmitter: topics.2, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + () + } + #[inline] + fn topics(&self) -> ::RustType { + ( + Self::SIGNATURE_HASH.into(), + self.withdrawalHash.clone(), + self.proofSubmitter.clone(), + ) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = as alloy_sol_types::EventTopic>::encode_topic(&self.withdrawalHash); + out[2usize] = ::encode_topic( + &self.proofSubmitter, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for WithdrawalProvenExtension1 { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&WithdrawalProvenExtension1> for alloy_sol_types::private::LogData { + #[inline] + fn from( + this: &WithdrawalProvenExtension1, + ) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + /**Constructor`. +```solidity +constructor(uint256 _proofMaturityDelaySeconds); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct constructorCall { + #[allow(missing_docs)] + pub _proofMaturityDelaySeconds: alloy::sol_types::private::primitives::aliases::U256, + } + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: constructorCall) -> Self { + (value._proofMaturityDelaySeconds,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for constructorCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _proofMaturityDelaySeconds: tuple.0, + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolConstructor for constructorCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize( + &self._proofMaturityDelaySeconds, + ), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `anchorStateRegistry()` and selector `0x5c0cba33`. +```solidity +function anchorStateRegistry() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct anchorStateRegistryCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`anchorStateRegistry()`](anchorStateRegistryCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct anchorStateRegistryReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: anchorStateRegistryCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for anchorStateRegistryCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: anchorStateRegistryReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for anchorStateRegistryReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for anchorStateRegistryCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "anchorStateRegistry()"; + const SELECTOR: [u8; 4] = [92u8, 12u8, 186u8, 51u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: anchorStateRegistryReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: anchorStateRegistryReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `checkWithdrawal(bytes32,address)` and selector `0x71c1566e`. +```solidity +function checkWithdrawal(bytes32 _withdrawalHash, address _proofSubmitter) external view; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct checkWithdrawalCall { + #[allow(missing_docs)] + pub _withdrawalHash: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub _proofSubmitter: alloy::sol_types::private::Address, + } + ///Container type for the return parameters of the [`checkWithdrawal(bytes32,address)`](checkWithdrawalCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct checkWithdrawalReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::FixedBytes<32>, + alloy::sol_types::private::Address, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: checkWithdrawalCall) -> Self { + (value._withdrawalHash, value._proofSubmitter) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for checkWithdrawalCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _withdrawalHash: tuple.0, + _proofSubmitter: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: checkWithdrawalReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for checkWithdrawalReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl checkWithdrawalReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for checkWithdrawalCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = checkWithdrawalReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "checkWithdrawal(bytes32,address)"; + const SELECTOR: [u8; 4] = [113u8, 193u8, 86u8, 110u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._withdrawalHash), + ::tokenize( + &self._proofSubmitter, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + checkWithdrawalReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `depositTransaction(address,uint256,uint64,bool,bytes)` and selector `0xe9e05c42`. +```solidity +function depositTransaction(address _to, uint256 _value, uint64 _gasLimit, bool _isCreation, bytes memory _data) external payable; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct depositTransactionCall { + #[allow(missing_docs)] + pub _to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _value: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _gasLimit: u64, + #[allow(missing_docs)] + pub _isCreation: bool, + #[allow(missing_docs)] + pub _data: alloy::sol_types::private::Bytes, + } + ///Container type for the return parameters of the [`depositTransaction(address,uint256,uint64,bool,bytes)`](depositTransactionCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct depositTransactionReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<64>, + alloy::sol_types::sol_data::Bool, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + u64, + bool, + alloy::sol_types::private::Bytes, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: depositTransactionCall) -> Self { + ( + value._to, + value._value, + value._gasLimit, + value._isCreation, + value._data, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for depositTransactionCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _to: tuple.0, + _value: tuple.1, + _gasLimit: tuple.2, + _isCreation: tuple.3, + _data: tuple.4, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: depositTransactionReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for depositTransactionReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl depositTransactionReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for depositTransactionCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<64>, + alloy::sol_types::sol_data::Bool, + alloy::sol_types::sol_data::Bytes, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = depositTransactionReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "depositTransaction(address,uint256,uint64,bool,bytes)"; + const SELECTOR: [u8; 4] = [233u8, 224u8, 92u8, 66u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._to, + ), + as alloy_sol_types::SolType>::tokenize(&self._value), + as alloy_sol_types::SolType>::tokenize(&self._gasLimit), + ::tokenize( + &self._isCreation, + ), + ::tokenize( + &self._data, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + depositTransactionReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `disputeGameBlacklist(address)` and selector `0x45884d32`. +```solidity +function disputeGameBlacklist(address _disputeGame) external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct disputeGameBlacklistCall { + #[allow(missing_docs)] + pub _disputeGame: alloy::sol_types::private::Address, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`disputeGameBlacklist(address)`](disputeGameBlacklistCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct disputeGameBlacklistReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: disputeGameBlacklistCall) -> Self { + (value._disputeGame,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for disputeGameBlacklistCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _disputeGame: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: disputeGameBlacklistReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for disputeGameBlacklistReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for disputeGameBlacklistCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "disputeGameBlacklist(address)"; + const SELECTOR: [u8; 4] = [69u8, 136u8, 77u8, 50u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._disputeGame, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: disputeGameBlacklistReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: disputeGameBlacklistReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `disputeGameFactory()` and selector `0xf2b4e617`. +```solidity +function disputeGameFactory() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct disputeGameFactoryCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`disputeGameFactory()`](disputeGameFactoryCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct disputeGameFactoryReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: disputeGameFactoryCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for disputeGameFactoryCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: disputeGameFactoryReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for disputeGameFactoryReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for disputeGameFactoryCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "disputeGameFactory()"; + const SELECTOR: [u8; 4] = [242u8, 180u8, 230u8, 23u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: disputeGameFactoryReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: disputeGameFactoryReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `disputeGameFinalityDelaySeconds()` and selector `0x952b2797`. +```solidity +function disputeGameFinalityDelaySeconds() external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct disputeGameFinalityDelaySecondsCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`disputeGameFinalityDelaySeconds()`](disputeGameFinalityDelaySecondsCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct disputeGameFinalityDelaySecondsReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: disputeGameFinalityDelaySecondsCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for disputeGameFinalityDelaySecondsCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: disputeGameFinalityDelaySecondsReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for disputeGameFinalityDelaySecondsReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for disputeGameFinalityDelaySecondsCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "disputeGameFinalityDelaySeconds()"; + const SELECTOR: [u8; 4] = [149u8, 43u8, 39u8, 151u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: disputeGameFinalityDelaySecondsReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: disputeGameFinalityDelaySecondsReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `donateETH()` and selector `0x8b4c40b0`. +```solidity +function donateETH() external payable; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct donateETHCall; + ///Container type for the return parameters of the [`donateETH()`](donateETHCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct donateETHReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: donateETHCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for donateETHCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: donateETHReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for donateETHReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl donateETHReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for donateETHCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = donateETHReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "donateETH()"; + const SELECTOR: [u8; 4] = [139u8, 76u8, 64u8, 176u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + donateETHReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `ethLockbox()` and selector `0xb682c444`. +```solidity +function ethLockbox() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ethLockboxCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`ethLockbox()`](ethLockboxCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ethLockboxReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ethLockboxCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ethLockboxCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ethLockboxReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ethLockboxReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for ethLockboxCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ethLockbox()"; + const SELECTOR: [u8; 4] = [182u8, 130u8, 196u8, 68u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: ethLockboxReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: ethLockboxReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `finalizeWithdrawalTransaction((uint256,address,address,uint256,uint256,bytes))` and selector `0x8c3152e9`. +```solidity +function finalizeWithdrawalTransaction(Types.WithdrawalTransaction memory _tx) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct finalizeWithdrawalTransactionCall { + #[allow(missing_docs)] + pub _tx: ::RustType, + } + ///Container type for the return parameters of the [`finalizeWithdrawalTransaction((uint256,address,address,uint256,uint256,bytes))`](finalizeWithdrawalTransactionCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct finalizeWithdrawalTransactionReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Types::WithdrawalTransaction,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: finalizeWithdrawalTransactionCall) -> Self { + (value._tx,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for finalizeWithdrawalTransactionCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _tx: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: finalizeWithdrawalTransactionReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for finalizeWithdrawalTransactionReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl finalizeWithdrawalTransactionReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken< + '_, + > { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for finalizeWithdrawalTransactionCall { + type Parameters<'a> = (Types::WithdrawalTransaction,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = finalizeWithdrawalTransactionReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "finalizeWithdrawalTransaction((uint256,address,address,uint256,uint256,bytes))"; + const SELECTOR: [u8; 4] = [140u8, 49u8, 82u8, 233u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._tx, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + finalizeWithdrawalTransactionReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `finalizeWithdrawalTransactionExternalProof((uint256,address,address,uint256,uint256,bytes),address)` and selector `0x43ca1c50`. +```solidity +function finalizeWithdrawalTransactionExternalProof(Types.WithdrawalTransaction memory _tx, address _proofSubmitter) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct finalizeWithdrawalTransactionExternalProofCall { + #[allow(missing_docs)] + pub _tx: ::RustType, + #[allow(missing_docs)] + pub _proofSubmitter: alloy::sol_types::private::Address, + } + ///Container type for the return parameters of the [`finalizeWithdrawalTransactionExternalProof((uint256,address,address,uint256,uint256,bytes),address)`](finalizeWithdrawalTransactionExternalProofCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct finalizeWithdrawalTransactionExternalProofReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + Types::WithdrawalTransaction, + alloy::sol_types::sol_data::Address, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + alloy::sol_types::private::Address, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: finalizeWithdrawalTransactionExternalProofCall) -> Self { + (value._tx, value._proofSubmitter) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for finalizeWithdrawalTransactionExternalProofCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _tx: tuple.0, + _proofSubmitter: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from( + value: finalizeWithdrawalTransactionExternalProofReturn, + ) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for finalizeWithdrawalTransactionExternalProofReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl finalizeWithdrawalTransactionExternalProofReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken< + '_, + > { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall + for finalizeWithdrawalTransactionExternalProofCall { + type Parameters<'a> = ( + Types::WithdrawalTransaction, + alloy::sol_types::sol_data::Address, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = finalizeWithdrawalTransactionExternalProofReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "finalizeWithdrawalTransactionExternalProof((uint256,address,address,uint256,uint256,bytes),address)"; + const SELECTOR: [u8; 4] = [67u8, 202u8, 28u8, 80u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._tx, + ), + ::tokenize( + &self._proofSubmitter, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + finalizeWithdrawalTransactionExternalProofReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `finalizedWithdrawals(bytes32)` and selector `0xa14238e7`. +```solidity +function finalizedWithdrawals(bytes32) external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct finalizedWithdrawalsCall(pub alloy::sol_types::private::FixedBytes<32>); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`finalizedWithdrawals(bytes32)`](finalizedWithdrawalsCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct finalizedWithdrawalsReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: finalizedWithdrawalsCall) -> Self { + (value.0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for finalizedWithdrawalsCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self(tuple.0) + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: finalizedWithdrawalsReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for finalizedWithdrawalsReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for finalizedWithdrawalsCall { + type Parameters<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "finalizedWithdrawals(bytes32)"; + const SELECTOR: [u8; 4] = [161u8, 66u8, 56u8, 231u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.0), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: finalizedWithdrawalsReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: finalizedWithdrawalsReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `guardian()` and selector `0x452a9320`. +```solidity +function guardian() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct guardianCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`guardian()`](guardianCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct guardianReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: guardianCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for guardianCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: guardianReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for guardianReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for guardianCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "guardian()"; + const SELECTOR: [u8; 4] = [69u8, 42u8, 147u8, 32u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: guardianReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: guardianReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `initVersion()` and selector `0x38d38c97`. +```solidity +function initVersion() external view returns (uint8); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct initVersionCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`initVersion()`](initVersionCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct initVersionReturn { + #[allow(missing_docs)] + pub _0: u8, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: initVersionCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for initVersionCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<8>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u8,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: initVersionReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for initVersionReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for initVersionCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u8; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<8>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "initVersion()"; + const SELECTOR: [u8; 4] = [56u8, 211u8, 140u8, 151u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: initVersionReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: initVersionReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `initialize(address,address)` and selector `0x485cc955`. +```solidity +function initialize(address _systemConfig, address _anchorStateRegistry) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct initializeCall { + #[allow(missing_docs)] + pub _systemConfig: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _anchorStateRegistry: alloy::sol_types::private::Address, + } + ///Container type for the return parameters of the [`initialize(address,address)`](initializeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct initializeReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: initializeCall) -> Self { + (value._systemConfig, value._anchorStateRegistry) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for initializeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _systemConfig: tuple.0, + _anchorStateRegistry: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: initializeReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for initializeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl initializeReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for initializeCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = initializeReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "initialize(address,address)"; + const SELECTOR: [u8; 4] = [72u8, 92u8, 201u8, 85u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._systemConfig, + ), + ::tokenize( + &self._anchorStateRegistry, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + initializeReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `l2Sender()` and selector `0x9bf62d82`. +```solidity +function l2Sender() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct l2SenderCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`l2Sender()`](l2SenderCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct l2SenderReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: l2SenderCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for l2SenderCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: l2SenderReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for l2SenderReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for l2SenderCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "l2Sender()"; + const SELECTOR: [u8; 4] = [155u8, 246u8, 45u8, 130u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: l2SenderReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: l2SenderReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `minimumGasLimit(uint64)` and selector `0xa35d99df`. +```solidity +function minimumGasLimit(uint64 _byteCount) external pure returns (uint64); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct minimumGasLimitCall { + #[allow(missing_docs)] + pub _byteCount: u64, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`minimumGasLimit(uint64)`](minimumGasLimitCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct minimumGasLimitReturn { + #[allow(missing_docs)] + pub _0: u64, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u64,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: minimumGasLimitCall) -> Self { + (value._byteCount,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for minimumGasLimitCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _byteCount: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u64,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: minimumGasLimitReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for minimumGasLimitReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for minimumGasLimitCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Uint<64>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u64; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "minimumGasLimit(uint64)"; + const SELECTOR: [u8; 4] = [163u8, 93u8, 153u8, 223u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._byteCount), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: minimumGasLimitReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: minimumGasLimitReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `numProofSubmitters(bytes32)` and selector `0x513747ab`. +```solidity +function numProofSubmitters(bytes32 _withdrawalHash) external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct numProofSubmittersCall { + #[allow(missing_docs)] + pub _withdrawalHash: alloy::sol_types::private::FixedBytes<32>, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`numProofSubmitters(bytes32)`](numProofSubmittersCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct numProofSubmittersReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: numProofSubmittersCall) -> Self { + (value._withdrawalHash,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for numProofSubmittersCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _withdrawalHash: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: numProofSubmittersReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for numProofSubmittersReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for numProofSubmittersCall { + type Parameters<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "numProofSubmitters(bytes32)"; + const SELECTOR: [u8; 4] = [81u8, 55u8, 71u8, 171u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._withdrawalHash), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: numProofSubmittersReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: numProofSubmittersReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `params()` and selector `0xcff0ab96`. +```solidity +function params() external view returns (uint128 prevBaseFee, uint64 prevBoughtGas, uint64 prevBlockNum); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct paramsCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`params()`](paramsCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct paramsReturn { + #[allow(missing_docs)] + pub prevBaseFee: u128, + #[allow(missing_docs)] + pub prevBoughtGas: u64, + #[allow(missing_docs)] + pub prevBlockNum: u64, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: paramsCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for paramsCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Uint<128>, + alloy::sol_types::sol_data::Uint<64>, + alloy::sol_types::sol_data::Uint<64>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u128, u64, u64); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: paramsReturn) -> Self { + (value.prevBaseFee, value.prevBoughtGas, value.prevBlockNum) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for paramsReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + prevBaseFee: tuple.0, + prevBoughtGas: tuple.1, + prevBlockNum: tuple.2, + } + } + } + } + impl paramsReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.prevBaseFee), + as alloy_sol_types::SolType>::tokenize(&self.prevBoughtGas), + as alloy_sol_types::SolType>::tokenize(&self.prevBlockNum), + ) + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for paramsCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = paramsReturn; + type ReturnTuple<'a> = ( + alloy::sol_types::sol_data::Uint<128>, + alloy::sol_types::sol_data::Uint<64>, + alloy::sol_types::sol_data::Uint<64>, + ); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "params()"; + const SELECTOR: [u8; 4] = [207u8, 240u8, 171u8, 150u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + paramsReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `paused()` and selector `0x5c975abb`. +```solidity +function paused() external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct pausedCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`paused()`](pausedCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct pausedReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: pausedCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for pausedCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: pausedReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for pausedReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for pausedCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "paused()"; + const SELECTOR: [u8; 4] = [92u8, 151u8, 90u8, 187u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: pausedReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: pausedReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `proofMaturityDelaySeconds()` and selector `0xbf653a5c`. +```solidity +function proofMaturityDelaySeconds() external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct proofMaturityDelaySecondsCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`proofMaturityDelaySeconds()`](proofMaturityDelaySecondsCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct proofMaturityDelaySecondsReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: proofMaturityDelaySecondsCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for proofMaturityDelaySecondsCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: proofMaturityDelaySecondsReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for proofMaturityDelaySecondsReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for proofMaturityDelaySecondsCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "proofMaturityDelaySeconds()"; + const SELECTOR: [u8; 4] = [191u8, 101u8, 58u8, 92u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: proofMaturityDelaySecondsReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: proofMaturityDelaySecondsReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `proofSubmitters(bytes32,uint256)` and selector `0xa3860f48`. +```solidity +function proofSubmitters(bytes32, uint256) external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct proofSubmittersCall { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub _1: alloy::sol_types::private::primitives::aliases::U256, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`proofSubmitters(bytes32,uint256)`](proofSubmittersCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct proofSubmittersReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::FixedBytes<32>, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: proofSubmittersCall) -> Self { + (value._0, value._1) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for proofSubmittersCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0, _1: tuple.1 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: proofSubmittersReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for proofSubmittersReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for proofSubmittersCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Uint<256>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "proofSubmitters(bytes32,uint256)"; + const SELECTOR: [u8; 4] = [163u8, 134u8, 15u8, 72u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._0), + as alloy_sol_types::SolType>::tokenize(&self._1), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: proofSubmittersReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: proofSubmittersReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `proveWithdrawalTransaction((uint256,address,address,uint256,uint256,bytes),uint256,(bytes32,bytes32,bytes32,bytes32),bytes[])` and selector `0x4870496f`. +```solidity +function proveWithdrawalTransaction(Types.WithdrawalTransaction memory _tx, uint256 _disputeGameIndex, Types.OutputRootProof memory _outputRootProof, bytes[] memory _withdrawalProof) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct proveWithdrawalTransactionCall { + #[allow(missing_docs)] + pub _tx: ::RustType, + #[allow(missing_docs)] + pub _disputeGameIndex: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _outputRootProof: ::RustType, + #[allow(missing_docs)] + pub _withdrawalProof: alloy::sol_types::private::Vec< + alloy::sol_types::private::Bytes, + >, + } + ///Container type for the return parameters of the [`proveWithdrawalTransaction((uint256,address,address,uint256,uint256,bytes),uint256,(bytes32,bytes32,bytes32,bytes32),bytes[])`](proveWithdrawalTransactionCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct proveWithdrawalTransactionReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + Types::WithdrawalTransaction, + alloy::sol_types::sol_data::Uint<256>, + Types::OutputRootProof, + alloy::sol_types::sol_data::Array, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + alloy::sol_types::private::primitives::aliases::U256, + ::RustType, + alloy::sol_types::private::Vec, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: proveWithdrawalTransactionCall) -> Self { + ( + value._tx, + value._disputeGameIndex, + value._outputRootProof, + value._withdrawalProof, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for proveWithdrawalTransactionCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _tx: tuple.0, + _disputeGameIndex: tuple.1, + _outputRootProof: tuple.2, + _withdrawalProof: tuple.3, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: proveWithdrawalTransactionReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for proveWithdrawalTransactionReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl proveWithdrawalTransactionReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken< + '_, + > { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for proveWithdrawalTransactionCall { + type Parameters<'a> = ( + Types::WithdrawalTransaction, + alloy::sol_types::sol_data::Uint<256>, + Types::OutputRootProof, + alloy::sol_types::sol_data::Array, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = proveWithdrawalTransactionReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "proveWithdrawalTransaction((uint256,address,address,uint256,uint256,bytes),uint256,(bytes32,bytes32,bytes32,bytes32),bytes[])"; + const SELECTOR: [u8; 4] = [72u8, 112u8, 73u8, 111u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._tx, + ), + as alloy_sol_types::SolType>::tokenize(&self._disputeGameIndex), + ::tokenize( + &self._outputRootProof, + ), + as alloy_sol_types::SolType>::tokenize(&self._withdrawalProof), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + proveWithdrawalTransactionReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `provenWithdrawals(bytes32,address)` and selector `0xbb2c727e`. +```solidity +function provenWithdrawals(bytes32, address) external view returns (address disputeGameProxy, uint64 timestamp); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct provenWithdrawalsCall { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub _1: alloy::sol_types::private::Address, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`provenWithdrawals(bytes32,address)`](provenWithdrawalsCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct provenWithdrawalsReturn { + #[allow(missing_docs)] + pub disputeGameProxy: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub timestamp: u64, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::FixedBytes<32>, + alloy::sol_types::private::Address, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: provenWithdrawalsCall) -> Self { + (value._0, value._1) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for provenWithdrawalsCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0, _1: tuple.1 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<64>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address, u64); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: provenWithdrawalsReturn) -> Self { + (value.disputeGameProxy, value.timestamp) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for provenWithdrawalsReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + disputeGameProxy: tuple.0, + timestamp: tuple.1, + } + } + } + } + impl provenWithdrawalsReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + ( + ::tokenize( + &self.disputeGameProxy, + ), + as alloy_sol_types::SolType>::tokenize(&self.timestamp), + ) + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for provenWithdrawalsCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = provenWithdrawalsReturn; + type ReturnTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<64>, + ); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "provenWithdrawals(bytes32,address)"; + const SELECTOR: [u8; 4] = [187u8, 44u8, 114u8, 126u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._0), + ::tokenize( + &self._1, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + provenWithdrawalsReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `proxyAdmin()` and selector `0x3e47158c`. +```solidity +function proxyAdmin() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct proxyAdminCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`proxyAdmin()`](proxyAdminCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct proxyAdminReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: proxyAdminCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for proxyAdminCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: proxyAdminReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for proxyAdminReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for proxyAdminCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "proxyAdmin()"; + const SELECTOR: [u8; 4] = [62u8, 71u8, 21u8, 140u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: proxyAdminReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: proxyAdminReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `proxyAdminOwner()` and selector `0xdad544e0`. +```solidity +function proxyAdminOwner() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct proxyAdminOwnerCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`proxyAdminOwner()`](proxyAdminOwnerCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct proxyAdminOwnerReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: proxyAdminOwnerCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for proxyAdminOwnerCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: proxyAdminOwnerReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for proxyAdminOwnerReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for proxyAdminOwnerCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "proxyAdminOwner()"; + const SELECTOR: [u8; 4] = [218u8, 213u8, 68u8, 224u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: proxyAdminOwnerReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: proxyAdminOwnerReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `respectedGameType()` and selector `0x3c9f397c`. +```solidity +function respectedGameType() external view returns (GameType); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct respectedGameTypeCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`respectedGameType()`](respectedGameTypeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct respectedGameTypeReturn { + #[allow(missing_docs)] + pub _0: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: respectedGameTypeCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for respectedGameTypeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (GameType,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: respectedGameTypeReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for respectedGameTypeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for respectedGameTypeCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (GameType,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "respectedGameType()"; + const SELECTOR: [u8; 4] = [60u8, 159u8, 57u8, 124u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: respectedGameTypeReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: respectedGameTypeReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `respectedGameTypeUpdatedAt()` and selector `0x4fd0434c`. +```solidity +function respectedGameTypeUpdatedAt() external view returns (uint64); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct respectedGameTypeUpdatedAtCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`respectedGameTypeUpdatedAt()`](respectedGameTypeUpdatedAtCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct respectedGameTypeUpdatedAtReturn { + #[allow(missing_docs)] + pub _0: u64, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: respectedGameTypeUpdatedAtCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for respectedGameTypeUpdatedAtCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u64,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: respectedGameTypeUpdatedAtReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for respectedGameTypeUpdatedAtReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for respectedGameTypeUpdatedAtCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u64; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "respectedGameTypeUpdatedAt()"; + const SELECTOR: [u8; 4] = [79u8, 208u8, 67u8, 76u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: respectedGameTypeUpdatedAtReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: respectedGameTypeUpdatedAtReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `superchainConfig()` and selector `0x35e80ab3`. +```solidity +function superchainConfig() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct superchainConfigCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`superchainConfig()`](superchainConfigCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct superchainConfigReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: superchainConfigCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for superchainConfigCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: superchainConfigReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for superchainConfigReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for superchainConfigCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "superchainConfig()"; + const SELECTOR: [u8; 4] = [53u8, 232u8, 10u8, 179u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: superchainConfigReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: superchainConfigReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `systemConfig()` and selector `0x33d7e2bd`. +```solidity +function systemConfig() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct systemConfigCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`systemConfig()`](systemConfigCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct systemConfigReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: systemConfigCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for systemConfigCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: systemConfigReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for systemConfigReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for systemConfigCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "systemConfig()"; + const SELECTOR: [u8; 4] = [51u8, 215u8, 226u8, 189u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: systemConfigReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: systemConfigReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `version()` and selector `0x54fd4d50`. +```solidity +function version() external pure returns (string memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`version()`](versionCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for versionCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::String; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "version()"; + const SELECTOR: [u8; 4] = [84u8, 253u8, 77u8, 80u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + } + }; + ///Container for all the [`OptimismPortal2`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum OptimismPortal2Calls { + #[allow(missing_docs)] + anchorStateRegistry(anchorStateRegistryCall), + #[allow(missing_docs)] + checkWithdrawal(checkWithdrawalCall), + #[allow(missing_docs)] + depositTransaction(depositTransactionCall), + #[allow(missing_docs)] + disputeGameBlacklist(disputeGameBlacklistCall), + #[allow(missing_docs)] + disputeGameFactory(disputeGameFactoryCall), + #[allow(missing_docs)] + disputeGameFinalityDelaySeconds(disputeGameFinalityDelaySecondsCall), + #[allow(missing_docs)] + donateETH(donateETHCall), + #[allow(missing_docs)] + ethLockbox(ethLockboxCall), + #[allow(missing_docs)] + finalizeWithdrawalTransaction(finalizeWithdrawalTransactionCall), + #[allow(missing_docs)] + finalizeWithdrawalTransactionExternalProof( + finalizeWithdrawalTransactionExternalProofCall, + ), + #[allow(missing_docs)] + finalizedWithdrawals(finalizedWithdrawalsCall), + #[allow(missing_docs)] + guardian(guardianCall), + #[allow(missing_docs)] + initVersion(initVersionCall), + #[allow(missing_docs)] + initialize(initializeCall), + #[allow(missing_docs)] + l2Sender(l2SenderCall), + #[allow(missing_docs)] + minimumGasLimit(minimumGasLimitCall), + #[allow(missing_docs)] + numProofSubmitters(numProofSubmittersCall), + #[allow(missing_docs)] + params(paramsCall), + #[allow(missing_docs)] + paused(pausedCall), + #[allow(missing_docs)] + proofMaturityDelaySeconds(proofMaturityDelaySecondsCall), + #[allow(missing_docs)] + proofSubmitters(proofSubmittersCall), + #[allow(missing_docs)] + proveWithdrawalTransaction(proveWithdrawalTransactionCall), + #[allow(missing_docs)] + provenWithdrawals(provenWithdrawalsCall), + #[allow(missing_docs)] + proxyAdmin(proxyAdminCall), + #[allow(missing_docs)] + proxyAdminOwner(proxyAdminOwnerCall), + #[allow(missing_docs)] + respectedGameType(respectedGameTypeCall), + #[allow(missing_docs)] + respectedGameTypeUpdatedAt(respectedGameTypeUpdatedAtCall), + #[allow(missing_docs)] + superchainConfig(superchainConfigCall), + #[allow(missing_docs)] + systemConfig(systemConfigCall), + #[allow(missing_docs)] + version(versionCall), + } + impl OptimismPortal2Calls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [51u8, 215u8, 226u8, 189u8], + [53u8, 232u8, 10u8, 179u8], + [56u8, 211u8, 140u8, 151u8], + [60u8, 159u8, 57u8, 124u8], + [62u8, 71u8, 21u8, 140u8], + [67u8, 202u8, 28u8, 80u8], + [69u8, 42u8, 147u8, 32u8], + [69u8, 136u8, 77u8, 50u8], + [72u8, 92u8, 201u8, 85u8], + [72u8, 112u8, 73u8, 111u8], + [79u8, 208u8, 67u8, 76u8], + [81u8, 55u8, 71u8, 171u8], + [84u8, 253u8, 77u8, 80u8], + [92u8, 12u8, 186u8, 51u8], + [92u8, 151u8, 90u8, 187u8], + [113u8, 193u8, 86u8, 110u8], + [139u8, 76u8, 64u8, 176u8], + [140u8, 49u8, 82u8, 233u8], + [149u8, 43u8, 39u8, 151u8], + [155u8, 246u8, 45u8, 130u8], + [161u8, 66u8, 56u8, 231u8], + [163u8, 93u8, 153u8, 223u8], + [163u8, 134u8, 15u8, 72u8], + [182u8, 130u8, 196u8, 68u8], + [187u8, 44u8, 114u8, 126u8], + [191u8, 101u8, 58u8, 92u8], + [207u8, 240u8, 171u8, 150u8], + [218u8, 213u8, 68u8, 224u8], + [233u8, 224u8, 92u8, 66u8], + [242u8, 180u8, 230u8, 23u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(systemConfig), + ::core::stringify!(superchainConfig), + ::core::stringify!(initVersion), + ::core::stringify!(respectedGameType), + ::core::stringify!(proxyAdmin), + ::core::stringify!(finalizeWithdrawalTransactionExternalProof), + ::core::stringify!(guardian), + ::core::stringify!(disputeGameBlacklist), + ::core::stringify!(initialize), + ::core::stringify!(proveWithdrawalTransaction), + ::core::stringify!(respectedGameTypeUpdatedAt), + ::core::stringify!(numProofSubmitters), + ::core::stringify!(version), + ::core::stringify!(anchorStateRegistry), + ::core::stringify!(paused), + ::core::stringify!(checkWithdrawal), + ::core::stringify!(donateETH), + ::core::stringify!(finalizeWithdrawalTransaction), + ::core::stringify!(disputeGameFinalityDelaySeconds), + ::core::stringify!(l2Sender), + ::core::stringify!(finalizedWithdrawals), + ::core::stringify!(minimumGasLimit), + ::core::stringify!(proofSubmitters), + ::core::stringify!(ethLockbox), + ::core::stringify!(provenWithdrawals), + ::core::stringify!(proofMaturityDelaySeconds), + ::core::stringify!(params), + ::core::stringify!(proxyAdminOwner), + ::core::stringify!(depositTransaction), + ::core::stringify!(disputeGameFactory), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for OptimismPortal2Calls { + const NAME: &'static str = "OptimismPortal2Calls"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 30usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::anchorStateRegistry(_) => { + ::SELECTOR + } + Self::checkWithdrawal(_) => { + ::SELECTOR + } + Self::depositTransaction(_) => { + ::SELECTOR + } + Self::disputeGameBlacklist(_) => { + ::SELECTOR + } + Self::disputeGameFactory(_) => { + ::SELECTOR + } + Self::disputeGameFinalityDelaySeconds(_) => { + ::SELECTOR + } + Self::donateETH(_) => { + ::SELECTOR + } + Self::ethLockbox(_) => { + ::SELECTOR + } + Self::finalizeWithdrawalTransaction(_) => { + ::SELECTOR + } + Self::finalizeWithdrawalTransactionExternalProof(_) => { + ::SELECTOR + } + Self::finalizedWithdrawals(_) => { + ::SELECTOR + } + Self::guardian(_) => ::SELECTOR, + Self::initVersion(_) => { + ::SELECTOR + } + Self::initialize(_) => { + ::SELECTOR + } + Self::l2Sender(_) => ::SELECTOR, + Self::minimumGasLimit(_) => { + ::SELECTOR + } + Self::numProofSubmitters(_) => { + ::SELECTOR + } + Self::params(_) => ::SELECTOR, + Self::paused(_) => ::SELECTOR, + Self::proofMaturityDelaySeconds(_) => { + ::SELECTOR + } + Self::proofSubmitters(_) => { + ::SELECTOR + } + Self::proveWithdrawalTransaction(_) => { + ::SELECTOR + } + Self::provenWithdrawals(_) => { + ::SELECTOR + } + Self::proxyAdmin(_) => { + ::SELECTOR + } + Self::proxyAdminOwner(_) => { + ::SELECTOR + } + Self::respectedGameType(_) => { + ::SELECTOR + } + Self::respectedGameTypeUpdatedAt(_) => { + ::SELECTOR + } + Self::superchainConfig(_) => { + ::SELECTOR + } + Self::systemConfig(_) => { + ::SELECTOR + } + Self::version(_) => ::SELECTOR, + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn systemConfig( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OptimismPortal2Calls::systemConfig) + } + systemConfig + }, + { + fn superchainConfig( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OptimismPortal2Calls::superchainConfig) + } + superchainConfig + }, + { + fn initVersion( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OptimismPortal2Calls::initVersion) + } + initVersion + }, + { + fn respectedGameType( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OptimismPortal2Calls::respectedGameType) + } + respectedGameType + }, + { + fn proxyAdmin( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OptimismPortal2Calls::proxyAdmin) + } + proxyAdmin + }, + { + fn finalizeWithdrawalTransactionExternalProof( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + OptimismPortal2Calls::finalizeWithdrawalTransactionExternalProof, + ) + } + finalizeWithdrawalTransactionExternalProof + }, + { + fn guardian( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(OptimismPortal2Calls::guardian) + } + guardian + }, + { + fn disputeGameBlacklist( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OptimismPortal2Calls::disputeGameBlacklist) + } + disputeGameBlacklist + }, + { + fn initialize( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OptimismPortal2Calls::initialize) + } + initialize + }, + { + fn proveWithdrawalTransaction( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OptimismPortal2Calls::proveWithdrawalTransaction) + } + proveWithdrawalTransaction + }, + { + fn respectedGameTypeUpdatedAt( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OptimismPortal2Calls::respectedGameTypeUpdatedAt) + } + respectedGameTypeUpdatedAt + }, + { + fn numProofSubmitters( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OptimismPortal2Calls::numProofSubmitters) + } + numProofSubmitters + }, + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(OptimismPortal2Calls::version) + } + version + }, + { + fn anchorStateRegistry( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OptimismPortal2Calls::anchorStateRegistry) + } + anchorStateRegistry + }, + { + fn paused( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(OptimismPortal2Calls::paused) + } + paused + }, + { + fn checkWithdrawal( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OptimismPortal2Calls::checkWithdrawal) + } + checkWithdrawal + }, + { + fn donateETH( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(OptimismPortal2Calls::donateETH) + } + donateETH + }, + { + fn finalizeWithdrawalTransaction( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OptimismPortal2Calls::finalizeWithdrawalTransaction) + } + finalizeWithdrawalTransaction + }, + { + fn disputeGameFinalityDelaySeconds( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OptimismPortal2Calls::disputeGameFinalityDelaySeconds) + } + disputeGameFinalityDelaySeconds + }, + { + fn l2Sender( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(OptimismPortal2Calls::l2Sender) + } + l2Sender + }, + { + fn finalizedWithdrawals( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OptimismPortal2Calls::finalizedWithdrawals) + } + finalizedWithdrawals + }, + { + fn minimumGasLimit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OptimismPortal2Calls::minimumGasLimit) + } + minimumGasLimit + }, + { + fn proofSubmitters( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OptimismPortal2Calls::proofSubmitters) + } + proofSubmitters + }, + { + fn ethLockbox( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OptimismPortal2Calls::ethLockbox) + } + ethLockbox + }, + { + fn provenWithdrawals( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OptimismPortal2Calls::provenWithdrawals) + } + provenWithdrawals + }, + { + fn proofMaturityDelaySeconds( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OptimismPortal2Calls::proofMaturityDelaySeconds) + } + proofMaturityDelaySeconds + }, + { + fn params( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(OptimismPortal2Calls::params) + } + params + }, + { + fn proxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OptimismPortal2Calls::proxyAdminOwner) + } + proxyAdminOwner + }, + { + fn depositTransaction( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OptimismPortal2Calls::depositTransaction) + } + depositTransaction + }, + { + fn disputeGameFactory( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OptimismPortal2Calls::disputeGameFactory) + } + disputeGameFactory + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn systemConfig( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismPortal2Calls::systemConfig) + } + systemConfig + }, + { + fn superchainConfig( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismPortal2Calls::superchainConfig) + } + superchainConfig + }, + { + fn initVersion( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismPortal2Calls::initVersion) + } + initVersion + }, + { + fn respectedGameType( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismPortal2Calls::respectedGameType) + } + respectedGameType + }, + { + fn proxyAdmin( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismPortal2Calls::proxyAdmin) + } + proxyAdmin + }, + { + fn finalizeWithdrawalTransactionExternalProof( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + OptimismPortal2Calls::finalizeWithdrawalTransactionExternalProof, + ) + } + finalizeWithdrawalTransactionExternalProof + }, + { + fn guardian( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismPortal2Calls::guardian) + } + guardian + }, + { + fn disputeGameBlacklist( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismPortal2Calls::disputeGameBlacklist) + } + disputeGameBlacklist + }, + { + fn initialize( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismPortal2Calls::initialize) + } + initialize + }, + { + fn proveWithdrawalTransaction( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismPortal2Calls::proveWithdrawalTransaction) + } + proveWithdrawalTransaction + }, + { + fn respectedGameTypeUpdatedAt( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismPortal2Calls::respectedGameTypeUpdatedAt) + } + respectedGameTypeUpdatedAt + }, + { + fn numProofSubmitters( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismPortal2Calls::numProofSubmitters) + } + numProofSubmitters + }, + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismPortal2Calls::version) + } + version + }, + { + fn anchorStateRegistry( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismPortal2Calls::anchorStateRegistry) + } + anchorStateRegistry + }, + { + fn paused( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismPortal2Calls::paused) + } + paused + }, + { + fn checkWithdrawal( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismPortal2Calls::checkWithdrawal) + } + checkWithdrawal + }, + { + fn donateETH( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismPortal2Calls::donateETH) + } + donateETH + }, + { + fn finalizeWithdrawalTransaction( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismPortal2Calls::finalizeWithdrawalTransaction) + } + finalizeWithdrawalTransaction + }, + { + fn disputeGameFinalityDelaySeconds( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismPortal2Calls::disputeGameFinalityDelaySeconds) + } + disputeGameFinalityDelaySeconds + }, + { + fn l2Sender( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismPortal2Calls::l2Sender) + } + l2Sender + }, + { + fn finalizedWithdrawals( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismPortal2Calls::finalizedWithdrawals) + } + finalizedWithdrawals + }, + { + fn minimumGasLimit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismPortal2Calls::minimumGasLimit) + } + minimumGasLimit + }, + { + fn proofSubmitters( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismPortal2Calls::proofSubmitters) + } + proofSubmitters + }, + { + fn ethLockbox( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismPortal2Calls::ethLockbox) + } + ethLockbox + }, + { + fn provenWithdrawals( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismPortal2Calls::provenWithdrawals) + } + provenWithdrawals + }, + { + fn proofMaturityDelaySeconds( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismPortal2Calls::proofMaturityDelaySeconds) + } + proofMaturityDelaySeconds + }, + { + fn params( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismPortal2Calls::params) + } + params + }, + { + fn proxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismPortal2Calls::proxyAdminOwner) + } + proxyAdminOwner + }, + { + fn depositTransaction( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismPortal2Calls::depositTransaction) + } + depositTransaction + }, + { + fn disputeGameFactory( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismPortal2Calls::disputeGameFactory) + } + disputeGameFactory + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::anchorStateRegistry(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::checkWithdrawal(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::depositTransaction(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::disputeGameBlacklist(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::disputeGameFactory(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::disputeGameFinalityDelaySeconds(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::donateETH(inner) => { + ::abi_encoded_size(inner) + } + Self::ethLockbox(inner) => { + ::abi_encoded_size(inner) + } + Self::finalizeWithdrawalTransaction(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::finalizeWithdrawalTransactionExternalProof(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::finalizedWithdrawals(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::guardian(inner) => { + ::abi_encoded_size(inner) + } + Self::initVersion(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::initialize(inner) => { + ::abi_encoded_size(inner) + } + Self::l2Sender(inner) => { + ::abi_encoded_size(inner) + } + Self::minimumGasLimit(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::numProofSubmitters(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::params(inner) => { + ::abi_encoded_size(inner) + } + Self::paused(inner) => { + ::abi_encoded_size(inner) + } + Self::proofMaturityDelaySeconds(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::proofSubmitters(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::proveWithdrawalTransaction(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::provenWithdrawals(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::proxyAdmin(inner) => { + ::abi_encoded_size(inner) + } + Self::proxyAdminOwner(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::respectedGameType(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::respectedGameTypeUpdatedAt(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::superchainConfig(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::systemConfig(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::version(inner) => { + ::abi_encoded_size(inner) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::anchorStateRegistry(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::checkWithdrawal(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::depositTransaction(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::disputeGameBlacklist(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::disputeGameFactory(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::disputeGameFinalityDelaySeconds(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::donateETH(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ethLockbox(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::finalizeWithdrawalTransaction(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::finalizeWithdrawalTransactionExternalProof(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::finalizedWithdrawals(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::guardian(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::initVersion(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::initialize(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::l2Sender(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::minimumGasLimit(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::numProofSubmitters(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::params(inner) => { + ::abi_encode_raw(inner, out) + } + Self::paused(inner) => { + ::abi_encode_raw(inner, out) + } + Self::proofMaturityDelaySeconds(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::proofSubmitters(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::proveWithdrawalTransaction(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::provenWithdrawals(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::proxyAdmin(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::proxyAdminOwner(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::respectedGameType(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::respectedGameTypeUpdatedAt(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::superchainConfig(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::systemConfig(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::version(inner) => { + ::abi_encode_raw(inner, out) + } + } + } + } + ///Container for all the [`OptimismPortal2`](self) custom errors. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum OptimismPortal2Errors { + #[allow(missing_docs)] + ContentLengthMismatch(ContentLengthMismatch), + #[allow(missing_docs)] + EmptyItem(EmptyItem), + #[allow(missing_docs)] + InvalidDataRemainder(InvalidDataRemainder), + #[allow(missing_docs)] + InvalidHeader(InvalidHeader), + #[allow(missing_docs)] + OptimismPortal_AlreadyFinalized(OptimismPortal_AlreadyFinalized), + #[allow(missing_docs)] + OptimismPortal_BadTarget(OptimismPortal_BadTarget), + #[allow(missing_docs)] + OptimismPortal_CallPaused(OptimismPortal_CallPaused), + #[allow(missing_docs)] + OptimismPortal_CalldataTooLarge(OptimismPortal_CalldataTooLarge), + #[allow(missing_docs)] + OptimismPortal_GasEstimation(OptimismPortal_GasEstimation), + #[allow(missing_docs)] + OptimismPortal_GasLimitTooLow(OptimismPortal_GasLimitTooLow), + #[allow(missing_docs)] + OptimismPortal_ImproperDisputeGame(OptimismPortal_ImproperDisputeGame), + #[allow(missing_docs)] + OptimismPortal_InvalidDisputeGame(OptimismPortal_InvalidDisputeGame), + #[allow(missing_docs)] + OptimismPortal_InvalidLockboxState(OptimismPortal_InvalidLockboxState), + #[allow(missing_docs)] + OptimismPortal_InvalidMerkleProof(OptimismPortal_InvalidMerkleProof), + #[allow(missing_docs)] + OptimismPortal_InvalidOutputRootProof(OptimismPortal_InvalidOutputRootProof), + #[allow(missing_docs)] + OptimismPortal_InvalidProofTimestamp(OptimismPortal_InvalidProofTimestamp), + #[allow(missing_docs)] + OptimismPortal_InvalidRootClaim(OptimismPortal_InvalidRootClaim), + #[allow(missing_docs)] + OptimismPortal_NoReentrancy(OptimismPortal_NoReentrancy), + #[allow(missing_docs)] + OptimismPortal_NotAllowedOnCGTMode(OptimismPortal_NotAllowedOnCGTMode), + #[allow(missing_docs)] + OptimismPortal_ProofNotOldEnough(OptimismPortal_ProofNotOldEnough), + #[allow(missing_docs)] + OptimismPortal_Unproven(OptimismPortal_Unproven), + #[allow(missing_docs)] + OutOfGas(OutOfGas), + #[allow(missing_docs)] + ProxyAdminOwnedBase_NotProxyAdmin(ProxyAdminOwnedBase_NotProxyAdmin), + #[allow(missing_docs)] + ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner( + ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner, + ), + #[allow(missing_docs)] + ProxyAdminOwnedBase_NotProxyAdminOwner(ProxyAdminOwnedBase_NotProxyAdminOwner), + #[allow(missing_docs)] + ProxyAdminOwnedBase_NotResolvedDelegateProxy( + ProxyAdminOwnedBase_NotResolvedDelegateProxy, + ), + #[allow(missing_docs)] + ProxyAdminOwnedBase_NotSharedProxyAdminOwner( + ProxyAdminOwnedBase_NotSharedProxyAdminOwner, + ), + #[allow(missing_docs)] + ProxyAdminOwnedBase_ProxyAdminNotFound(ProxyAdminOwnedBase_ProxyAdminNotFound), + #[allow(missing_docs)] + ReinitializableBase_ZeroInitVersion(ReinitializableBase_ZeroInitVersion), + #[allow(missing_docs)] + UnexpectedList(UnexpectedList), + #[allow(missing_docs)] + UnexpectedString(UnexpectedString), + } + impl OptimismPortal2Errors { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [7u8, 92u8, 67u8, 20u8], + [31u8, 249u8, 178u8, 228u8], + [46u8, 87u8, 239u8, 58u8], + [51u8, 33u8, 68u8, 219u8], + [51u8, 42u8, 87u8, 248u8], + [66u8, 97u8, 73u8, 175u8], + [75u8, 156u8, 106u8, 190u8], + [84u8, 228u8, 51u8, 205u8], + [90u8, 163u8, 186u8, 201u8], + [90u8, 180u8, 88u8, 251u8], + [92u8, 85u8, 55u8, 184u8], + [102u8, 201u8, 68u8, 133u8], + [112u8, 200u8, 189u8, 189u8], + [115u8, 10u8, 16u8, 116u8], + [119u8, 235u8, 239u8, 77u8], + [127u8, 18u8, 198u8, 75u8], + [155u8, 1u8, 175u8, 237u8], + [156u8, 70u8, 205u8, 121u8], + [171u8, 88u8, 16u8, 54u8], + [180u8, 202u8, 164u8, 229u8], + [185u8, 195u8, 194u8, 239u8], + [186u8, 187u8, 1u8, 221u8], + [189u8, 88u8, 224u8, 162u8], + [196u8, 5u8, 10u8, 38u8], + [197u8, 222u8, 251u8, 173u8], + [204u8, 166u8, 175u8, 218u8], + [217u8, 188u8, 1u8, 190u8], + [223u8, 234u8, 174u8, 184u8], + [226u8, 153u8, 39u8, 237u8], + [232u8, 24u8, 220u8, 195u8], + [243u8, 149u8, 36u8, 14u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(ProxyAdminOwnedBase_NotSharedProxyAdminOwner), + ::core::stringify!(UnexpectedList), + ::core::stringify!(OptimismPortal_InvalidMerkleProof), + ::core::stringify!(ProxyAdminOwnedBase_ProxyAdminNotFound), + ::core::stringify!(OptimismPortal_InvalidRootClaim), + ::core::stringify!(OptimismPortal_InvalidOutputRootProof), + ::core::stringify!(UnexpectedString), + ::core::stringify!(ProxyAdminOwnedBase_NotResolvedDelegateProxy), + ::core::stringify!(OptimismPortal_CalldataTooLarge), + ::core::stringify!(EmptyItem), + ::core::stringify!(InvalidDataRemainder), + ::core::stringify!(ContentLengthMismatch), + ::core::stringify!(OptimismPortal_GasLimitTooLow), + ::core::stringify!(OptimismPortal_AlreadyFinalized), + ::core::stringify!(OutOfGas), + ::core::stringify!(ProxyAdminOwnedBase_NotProxyAdminOwner), + ::core::stringify!(ReinitializableBase_ZeroInitVersion), + ::core::stringify!(OptimismPortal_InvalidLockboxState), + ::core::stringify!(OptimismPortal_GasEstimation), + ::core::stringify!(OptimismPortal_InvalidProofTimestamp), + ::core::stringify!(OptimismPortal_CallPaused), + ::core::stringify!(InvalidHeader), + ::core::stringify!(OptimismPortal_NotAllowedOnCGTMode), + ::core::stringify!(ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner), + ::core::stringify!(OptimismPortal_BadTarget), + ::core::stringify!(OptimismPortal_Unproven), + ::core::stringify!(OptimismPortal_ProofNotOldEnough), + ::core::stringify!(OptimismPortal_NoReentrancy), + ::core::stringify!(OptimismPortal_InvalidDisputeGame), + ::core::stringify!(ProxyAdminOwnedBase_NotProxyAdmin), + ::core::stringify!(OptimismPortal_ImproperDisputeGame), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for OptimismPortal2Errors { + const NAME: &'static str = "OptimismPortal2Errors"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 31usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::ContentLengthMismatch(_) => { + ::SELECTOR + } + Self::EmptyItem(_) => ::SELECTOR, + Self::InvalidDataRemainder(_) => { + ::SELECTOR + } + Self::InvalidHeader(_) => { + ::SELECTOR + } + Self::OptimismPortal_AlreadyFinalized(_) => { + ::SELECTOR + } + Self::OptimismPortal_BadTarget(_) => { + ::SELECTOR + } + Self::OptimismPortal_CallPaused(_) => { + ::SELECTOR + } + Self::OptimismPortal_CalldataTooLarge(_) => { + ::SELECTOR + } + Self::OptimismPortal_GasEstimation(_) => { + ::SELECTOR + } + Self::OptimismPortal_GasLimitTooLow(_) => { + ::SELECTOR + } + Self::OptimismPortal_ImproperDisputeGame(_) => { + ::SELECTOR + } + Self::OptimismPortal_InvalidDisputeGame(_) => { + ::SELECTOR + } + Self::OptimismPortal_InvalidLockboxState(_) => { + ::SELECTOR + } + Self::OptimismPortal_InvalidMerkleProof(_) => { + ::SELECTOR + } + Self::OptimismPortal_InvalidOutputRootProof(_) => { + ::SELECTOR + } + Self::OptimismPortal_InvalidProofTimestamp(_) => { + ::SELECTOR + } + Self::OptimismPortal_InvalidRootClaim(_) => { + ::SELECTOR + } + Self::OptimismPortal_NoReentrancy(_) => { + ::SELECTOR + } + Self::OptimismPortal_NotAllowedOnCGTMode(_) => { + ::SELECTOR + } + Self::OptimismPortal_ProofNotOldEnough(_) => { + ::SELECTOR + } + Self::OptimismPortal_Unproven(_) => { + ::SELECTOR + } + Self::OutOfGas(_) => ::SELECTOR, + Self::ProxyAdminOwnedBase_NotProxyAdmin(_) => { + ::SELECTOR + } + Self::ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner(_) => { + ::SELECTOR + } + Self::ProxyAdminOwnedBase_NotProxyAdminOwner(_) => { + ::SELECTOR + } + Self::ProxyAdminOwnedBase_NotResolvedDelegateProxy(_) => { + ::SELECTOR + } + Self::ProxyAdminOwnedBase_NotSharedProxyAdminOwner(_) => { + ::SELECTOR + } + Self::ProxyAdminOwnedBase_ProxyAdminNotFound(_) => { + ::SELECTOR + } + Self::ReinitializableBase_ZeroInitVersion(_) => { + ::SELECTOR + } + Self::UnexpectedList(_) => { + ::SELECTOR + } + Self::UnexpectedString(_) => { + ::SELECTOR + } + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn ProxyAdminOwnedBase_NotSharedProxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + OptimismPortal2Errors::ProxyAdminOwnedBase_NotSharedProxyAdminOwner, + ) + } + ProxyAdminOwnedBase_NotSharedProxyAdminOwner + }, + { + fn UnexpectedList( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OptimismPortal2Errors::UnexpectedList) + } + UnexpectedList + }, + { + fn OptimismPortal_InvalidMerkleProof( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + OptimismPortal2Errors::OptimismPortal_InvalidMerkleProof, + ) + } + OptimismPortal_InvalidMerkleProof + }, + { + fn ProxyAdminOwnedBase_ProxyAdminNotFound( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + OptimismPortal2Errors::ProxyAdminOwnedBase_ProxyAdminNotFound, + ) + } + ProxyAdminOwnedBase_ProxyAdminNotFound + }, + { + fn OptimismPortal_InvalidRootClaim( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OptimismPortal2Errors::OptimismPortal_InvalidRootClaim) + } + OptimismPortal_InvalidRootClaim + }, + { + fn OptimismPortal_InvalidOutputRootProof( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + OptimismPortal2Errors::OptimismPortal_InvalidOutputRootProof, + ) + } + OptimismPortal_InvalidOutputRootProof + }, + { + fn UnexpectedString( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OptimismPortal2Errors::UnexpectedString) + } + UnexpectedString + }, + { + fn ProxyAdminOwnedBase_NotResolvedDelegateProxy( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + OptimismPortal2Errors::ProxyAdminOwnedBase_NotResolvedDelegateProxy, + ) + } + ProxyAdminOwnedBase_NotResolvedDelegateProxy + }, + { + fn OptimismPortal_CalldataTooLarge( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OptimismPortal2Errors::OptimismPortal_CalldataTooLarge) + } + OptimismPortal_CalldataTooLarge + }, + { + fn EmptyItem( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(OptimismPortal2Errors::EmptyItem) + } + EmptyItem + }, + { + fn InvalidDataRemainder( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OptimismPortal2Errors::InvalidDataRemainder) + } + InvalidDataRemainder + }, + { + fn ContentLengthMismatch( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OptimismPortal2Errors::ContentLengthMismatch) + } + ContentLengthMismatch + }, + { + fn OptimismPortal_GasLimitTooLow( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OptimismPortal2Errors::OptimismPortal_GasLimitTooLow) + } + OptimismPortal_GasLimitTooLow + }, + { + fn OptimismPortal_AlreadyFinalized( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OptimismPortal2Errors::OptimismPortal_AlreadyFinalized) + } + OptimismPortal_AlreadyFinalized + }, + { + fn OutOfGas( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(OptimismPortal2Errors::OutOfGas) + } + OutOfGas + }, + { + fn ProxyAdminOwnedBase_NotProxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + OptimismPortal2Errors::ProxyAdminOwnedBase_NotProxyAdminOwner, + ) + } + ProxyAdminOwnedBase_NotProxyAdminOwner + }, + { + fn ReinitializableBase_ZeroInitVersion( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + OptimismPortal2Errors::ReinitializableBase_ZeroInitVersion, + ) + } + ReinitializableBase_ZeroInitVersion + }, + { + fn OptimismPortal_InvalidLockboxState( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + OptimismPortal2Errors::OptimismPortal_InvalidLockboxState, + ) + } + OptimismPortal_InvalidLockboxState + }, + { + fn OptimismPortal_GasEstimation( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OptimismPortal2Errors::OptimismPortal_GasEstimation) + } + OptimismPortal_GasEstimation + }, + { + fn OptimismPortal_InvalidProofTimestamp( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + OptimismPortal2Errors::OptimismPortal_InvalidProofTimestamp, + ) + } + OptimismPortal_InvalidProofTimestamp + }, + { + fn OptimismPortal_CallPaused( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OptimismPortal2Errors::OptimismPortal_CallPaused) + } + OptimismPortal_CallPaused + }, + { + fn InvalidHeader( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OptimismPortal2Errors::InvalidHeader) + } + InvalidHeader + }, + { + fn OptimismPortal_NotAllowedOnCGTMode( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + OptimismPortal2Errors::OptimismPortal_NotAllowedOnCGTMode, + ) + } + OptimismPortal_NotAllowedOnCGTMode + }, + { + fn ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + OptimismPortal2Errors::ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner, + ) + } + ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner + }, + { + fn OptimismPortal_BadTarget( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OptimismPortal2Errors::OptimismPortal_BadTarget) + } + OptimismPortal_BadTarget + }, + { + fn OptimismPortal_Unproven( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OptimismPortal2Errors::OptimismPortal_Unproven) + } + OptimismPortal_Unproven + }, + { + fn OptimismPortal_ProofNotOldEnough( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OptimismPortal2Errors::OptimismPortal_ProofNotOldEnough) + } + OptimismPortal_ProofNotOldEnough + }, + { + fn OptimismPortal_NoReentrancy( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OptimismPortal2Errors::OptimismPortal_NoReentrancy) + } + OptimismPortal_NoReentrancy + }, + { + fn OptimismPortal_InvalidDisputeGame( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + OptimismPortal2Errors::OptimismPortal_InvalidDisputeGame, + ) + } + OptimismPortal_InvalidDisputeGame + }, + { + fn ProxyAdminOwnedBase_NotProxyAdmin( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + OptimismPortal2Errors::ProxyAdminOwnedBase_NotProxyAdmin, + ) + } + ProxyAdminOwnedBase_NotProxyAdmin + }, + { + fn OptimismPortal_ImproperDisputeGame( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + OptimismPortal2Errors::OptimismPortal_ImproperDisputeGame, + ) + } + OptimismPortal_ImproperDisputeGame + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn ProxyAdminOwnedBase_NotSharedProxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + OptimismPortal2Errors::ProxyAdminOwnedBase_NotSharedProxyAdminOwner, + ) + } + ProxyAdminOwnedBase_NotSharedProxyAdminOwner + }, + { + fn UnexpectedList( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismPortal2Errors::UnexpectedList) + } + UnexpectedList + }, + { + fn OptimismPortal_InvalidMerkleProof( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + OptimismPortal2Errors::OptimismPortal_InvalidMerkleProof, + ) + } + OptimismPortal_InvalidMerkleProof + }, + { + fn ProxyAdminOwnedBase_ProxyAdminNotFound( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + OptimismPortal2Errors::ProxyAdminOwnedBase_ProxyAdminNotFound, + ) + } + ProxyAdminOwnedBase_ProxyAdminNotFound + }, + { + fn OptimismPortal_InvalidRootClaim( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismPortal2Errors::OptimismPortal_InvalidRootClaim) + } + OptimismPortal_InvalidRootClaim + }, + { + fn OptimismPortal_InvalidOutputRootProof( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + OptimismPortal2Errors::OptimismPortal_InvalidOutputRootProof, + ) + } + OptimismPortal_InvalidOutputRootProof + }, + { + fn UnexpectedString( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismPortal2Errors::UnexpectedString) + } + UnexpectedString + }, + { + fn ProxyAdminOwnedBase_NotResolvedDelegateProxy( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + OptimismPortal2Errors::ProxyAdminOwnedBase_NotResolvedDelegateProxy, + ) + } + ProxyAdminOwnedBase_NotResolvedDelegateProxy + }, + { + fn OptimismPortal_CalldataTooLarge( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismPortal2Errors::OptimismPortal_CalldataTooLarge) + } + OptimismPortal_CalldataTooLarge + }, + { + fn EmptyItem( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismPortal2Errors::EmptyItem) + } + EmptyItem + }, + { + fn InvalidDataRemainder( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismPortal2Errors::InvalidDataRemainder) + } + InvalidDataRemainder + }, + { + fn ContentLengthMismatch( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismPortal2Errors::ContentLengthMismatch) + } + ContentLengthMismatch + }, + { + fn OptimismPortal_GasLimitTooLow( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismPortal2Errors::OptimismPortal_GasLimitTooLow) + } + OptimismPortal_GasLimitTooLow + }, + { + fn OptimismPortal_AlreadyFinalized( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismPortal2Errors::OptimismPortal_AlreadyFinalized) + } + OptimismPortal_AlreadyFinalized + }, + { + fn OutOfGas( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismPortal2Errors::OutOfGas) + } + OutOfGas + }, + { + fn ProxyAdminOwnedBase_NotProxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + OptimismPortal2Errors::ProxyAdminOwnedBase_NotProxyAdminOwner, + ) + } + ProxyAdminOwnedBase_NotProxyAdminOwner + }, + { + fn ReinitializableBase_ZeroInitVersion( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + OptimismPortal2Errors::ReinitializableBase_ZeroInitVersion, + ) + } + ReinitializableBase_ZeroInitVersion + }, + { + fn OptimismPortal_InvalidLockboxState( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + OptimismPortal2Errors::OptimismPortal_InvalidLockboxState, + ) + } + OptimismPortal_InvalidLockboxState + }, + { + fn OptimismPortal_GasEstimation( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismPortal2Errors::OptimismPortal_GasEstimation) + } + OptimismPortal_GasEstimation + }, + { + fn OptimismPortal_InvalidProofTimestamp( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + OptimismPortal2Errors::OptimismPortal_InvalidProofTimestamp, + ) + } + OptimismPortal_InvalidProofTimestamp + }, + { + fn OptimismPortal_CallPaused( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismPortal2Errors::OptimismPortal_CallPaused) + } + OptimismPortal_CallPaused + }, + { + fn InvalidHeader( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismPortal2Errors::InvalidHeader) + } + InvalidHeader + }, + { + fn OptimismPortal_NotAllowedOnCGTMode( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + OptimismPortal2Errors::OptimismPortal_NotAllowedOnCGTMode, + ) + } + OptimismPortal_NotAllowedOnCGTMode + }, + { + fn ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + OptimismPortal2Errors::ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner, + ) + } + ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner + }, + { + fn OptimismPortal_BadTarget( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismPortal2Errors::OptimismPortal_BadTarget) + } + OptimismPortal_BadTarget + }, + { + fn OptimismPortal_Unproven( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismPortal2Errors::OptimismPortal_Unproven) + } + OptimismPortal_Unproven + }, + { + fn OptimismPortal_ProofNotOldEnough( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismPortal2Errors::OptimismPortal_ProofNotOldEnough) + } + OptimismPortal_ProofNotOldEnough + }, + { + fn OptimismPortal_NoReentrancy( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismPortal2Errors::OptimismPortal_NoReentrancy) + } + OptimismPortal_NoReentrancy + }, + { + fn OptimismPortal_InvalidDisputeGame( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + OptimismPortal2Errors::OptimismPortal_InvalidDisputeGame, + ) + } + OptimismPortal_InvalidDisputeGame + }, + { + fn ProxyAdminOwnedBase_NotProxyAdmin( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + OptimismPortal2Errors::ProxyAdminOwnedBase_NotProxyAdmin, + ) + } + ProxyAdminOwnedBase_NotProxyAdmin + }, + { + fn OptimismPortal_ImproperDisputeGame( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + OptimismPortal2Errors::OptimismPortal_ImproperDisputeGame, + ) + } + OptimismPortal_ImproperDisputeGame + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::ContentLengthMismatch(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::EmptyItem(inner) => { + ::abi_encoded_size(inner) + } + Self::InvalidDataRemainder(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::InvalidHeader(inner) => { + ::abi_encoded_size(inner) + } + Self::OptimismPortal_AlreadyFinalized(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::OptimismPortal_BadTarget(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::OptimismPortal_CallPaused(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::OptimismPortal_CalldataTooLarge(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::OptimismPortal_GasEstimation(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::OptimismPortal_GasLimitTooLow(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::OptimismPortal_ImproperDisputeGame(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::OptimismPortal_InvalidDisputeGame(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::OptimismPortal_InvalidLockboxState(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::OptimismPortal_InvalidMerkleProof(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::OptimismPortal_InvalidOutputRootProof(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::OptimismPortal_InvalidProofTimestamp(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::OptimismPortal_InvalidRootClaim(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::OptimismPortal_NoReentrancy(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::OptimismPortal_NotAllowedOnCGTMode(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::OptimismPortal_ProofNotOldEnough(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::OptimismPortal_Unproven(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::OutOfGas(inner) => { + ::abi_encoded_size(inner) + } + Self::ProxyAdminOwnedBase_NotProxyAdmin(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ProxyAdminOwnedBase_NotProxyAdminOwner(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ProxyAdminOwnedBase_NotResolvedDelegateProxy(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ProxyAdminOwnedBase_NotSharedProxyAdminOwner(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ProxyAdminOwnedBase_ProxyAdminNotFound(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ReinitializableBase_ZeroInitVersion(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::UnexpectedList(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::UnexpectedString(inner) => { + ::abi_encoded_size( + inner, + ) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::ContentLengthMismatch(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::EmptyItem(inner) => { + ::abi_encode_raw(inner, out) + } + Self::InvalidDataRemainder(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidHeader(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::OptimismPortal_AlreadyFinalized(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::OptimismPortal_BadTarget(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::OptimismPortal_CallPaused(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::OptimismPortal_CalldataTooLarge(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::OptimismPortal_GasEstimation(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::OptimismPortal_GasLimitTooLow(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::OptimismPortal_ImproperDisputeGame(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::OptimismPortal_InvalidDisputeGame(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::OptimismPortal_InvalidLockboxState(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::OptimismPortal_InvalidMerkleProof(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::OptimismPortal_InvalidOutputRootProof(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::OptimismPortal_InvalidProofTimestamp(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::OptimismPortal_InvalidRootClaim(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::OptimismPortal_NoReentrancy(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::OptimismPortal_NotAllowedOnCGTMode(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::OptimismPortal_ProofNotOldEnough(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::OptimismPortal_Unproven(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::OutOfGas(inner) => { + ::abi_encode_raw(inner, out) + } + Self::ProxyAdminOwnedBase_NotProxyAdmin(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ProxyAdminOwnedBase_NotProxyAdminOwner(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ProxyAdminOwnedBase_NotResolvedDelegateProxy(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ProxyAdminOwnedBase_NotSharedProxyAdminOwner(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ProxyAdminOwnedBase_ProxyAdminNotFound(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ReinitializableBase_ZeroInitVersion(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::UnexpectedList(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::UnexpectedString(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + } + } + } + ///Container for all the [`OptimismPortal2`](self) events. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum OptimismPortal2Events { + #[allow(missing_docs)] + Initialized(Initialized), + #[allow(missing_docs)] + TransactionDeposited(TransactionDeposited), + #[allow(missing_docs)] + WithdrawalFinalized(WithdrawalFinalized), + #[allow(missing_docs)] + WithdrawalProven(WithdrawalProven), + #[allow(missing_docs)] + WithdrawalProvenExtension1(WithdrawalProvenExtension1), + } + impl OptimismPortal2Events { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 32usize]] = &[ + [ + 103u8, 166u8, 32u8, 140u8, 252u8, 192u8, 128u8, 29u8, 80u8, 246u8, 203u8, + 231u8, 100u8, 115u8, 63u8, 79u8, 221u8, 246u8, 106u8, 192u8, 176u8, 68u8, + 66u8, 6u8, 26u8, 138u8, 140u8, 12u8, 182u8, 182u8, 63u8, 98u8, + ], + [ + 121u8, 143u8, 159u8, 19u8, 105u8, 95u8, 143u8, 4u8, 90u8, 165u8, 248u8, + 14u8, 216u8, 239u8, 235u8, 182u8, 149u8, 243u8, 199u8, 254u8, 101u8, + 218u8, 56u8, 25u8, 105u8, 242u8, 242u8, 139u8, 243u8, 198u8, 11u8, 151u8, + ], + [ + 127u8, 38u8, 184u8, 63u8, 249u8, 110u8, 31u8, 43u8, 106u8, 104u8, 47u8, + 19u8, 56u8, 82u8, 246u8, 121u8, 138u8, 9u8, 196u8, 101u8, 218u8, 149u8, + 146u8, 20u8, 96u8, 206u8, 251u8, 56u8, 71u8, 64u8, 36u8, 152u8, + ], + [ + 179u8, 129u8, 53u8, 104u8, 217u8, 153u8, 31u8, 201u8, 81u8, 150u8, 31u8, + 203u8, 76u8, 120u8, 72u8, 147u8, 87u8, 66u8, 64u8, 162u8, 137u8, 37u8, + 96u8, 77u8, 9u8, 252u8, 87u8, 124u8, 85u8, 187u8, 124u8, 50u8, + ], + [ + 219u8, 92u8, 118u8, 82u8, 133u8, 122u8, 161u8, 99u8, 218u8, 173u8, 214u8, + 112u8, 225u8, 22u8, 98u8, 143u8, 180u8, 46u8, 134u8, 157u8, 138u8, 196u8, + 37u8, 30u8, 248u8, 151u8, 29u8, 158u8, 87u8, 39u8, 223u8, 27u8, + ], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(WithdrawalProven), + ::core::stringify!(WithdrawalProvenExtension1), + ::core::stringify!(Initialized), + ::core::stringify!(TransactionDeposited), + ::core::stringify!(WithdrawalFinalized), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolEventInterface for OptimismPortal2Events { + const NAME: &'static str = "OptimismPortal2Events"; + const COUNT: usize = 5usize; + fn decode_raw_log( + topics: &[alloy_sol_types::Word], + data: &[u8], + ) -> alloy_sol_types::Result { + match topics.first().copied() { + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::Initialized) + } + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::TransactionDeposited) + } + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::WithdrawalFinalized) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::WithdrawalProven) + } + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::WithdrawalProvenExtension1) + } + _ => { + alloy_sol_types::private::Err(alloy_sol_types::Error::InvalidLog { + name: ::NAME, + log: alloy_sol_types::private::Box::new( + alloy_sol_types::private::LogData::new_unchecked( + topics.to_vec(), + data.to_vec().into(), + ), + ), + }) + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for OptimismPortal2Events { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + match self { + Self::Initialized(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::TransactionDeposited(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::WithdrawalFinalized(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::WithdrawalProven(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::WithdrawalProvenExtension1(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + } + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + match self { + Self::Initialized(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::TransactionDeposited(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::WithdrawalFinalized(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::WithdrawalProven(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::WithdrawalProvenExtension1(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`OptimismPortal2`](self) contract instance. + +See the [wrapper's documentation](`OptimismPortal2Instance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> OptimismPortal2Instance { + OptimismPortal2Instance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + _proofMaturityDelaySeconds: alloy::sol_types::private::primitives::aliases::U256, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + OptimismPortal2Instance::::deploy(__provider, _proofMaturityDelaySeconds) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + _proofMaturityDelaySeconds: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::RawCallBuilder { + OptimismPortal2Instance::< + P, + N, + >::deploy_builder(__provider, _proofMaturityDelaySeconds) + } + /**A [`OptimismPortal2`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`OptimismPortal2`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct OptimismPortal2Instance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for OptimismPortal2Instance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("OptimismPortal2Instance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > OptimismPortal2Instance { + /**Creates a new wrapper around an on-chain [`OptimismPortal2`](self) contract instance. + +See the [wrapper's documentation](`OptimismPortal2Instance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + _proofMaturityDelaySeconds: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder( + __provider, + _proofMaturityDelaySeconds, + ); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder( + __provider: P, + _proofMaturityDelaySeconds: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + [ + &BYTECODE[..], + &alloy_sol_types::SolConstructor::abi_encode( + &constructorCall { + _proofMaturityDelaySeconds, + }, + )[..], + ] + .concat() + .into(), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl OptimismPortal2Instance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> OptimismPortal2Instance { + OptimismPortal2Instance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > OptimismPortal2Instance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`anchorStateRegistry`] function. + pub fn anchorStateRegistry( + &self, + ) -> alloy_contract::SolCallBuilder<&P, anchorStateRegistryCall, N> { + self.call_builder(&anchorStateRegistryCall) + } + ///Creates a new call builder for the [`checkWithdrawal`] function. + pub fn checkWithdrawal( + &self, + _withdrawalHash: alloy::sol_types::private::FixedBytes<32>, + _proofSubmitter: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, checkWithdrawalCall, N> { + self.call_builder( + &checkWithdrawalCall { + _withdrawalHash, + _proofSubmitter, + }, + ) + } + ///Creates a new call builder for the [`depositTransaction`] function. + pub fn depositTransaction( + &self, + _to: alloy::sol_types::private::Address, + _value: alloy::sol_types::private::primitives::aliases::U256, + _gasLimit: u64, + _isCreation: bool, + _data: alloy::sol_types::private::Bytes, + ) -> alloy_contract::SolCallBuilder<&P, depositTransactionCall, N> { + self.call_builder( + &depositTransactionCall { + _to, + _value, + _gasLimit, + _isCreation, + _data, + }, + ) + } + ///Creates a new call builder for the [`disputeGameBlacklist`] function. + pub fn disputeGameBlacklist( + &self, + _disputeGame: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, disputeGameBlacklistCall, N> { + self.call_builder( + &disputeGameBlacklistCall { + _disputeGame, + }, + ) + } + ///Creates a new call builder for the [`disputeGameFactory`] function. + pub fn disputeGameFactory( + &self, + ) -> alloy_contract::SolCallBuilder<&P, disputeGameFactoryCall, N> { + self.call_builder(&disputeGameFactoryCall) + } + ///Creates a new call builder for the [`disputeGameFinalityDelaySeconds`] function. + pub fn disputeGameFinalityDelaySeconds( + &self, + ) -> alloy_contract::SolCallBuilder<&P, disputeGameFinalityDelaySecondsCall, N> { + self.call_builder(&disputeGameFinalityDelaySecondsCall) + } + ///Creates a new call builder for the [`donateETH`] function. + pub fn donateETH(&self) -> alloy_contract::SolCallBuilder<&P, donateETHCall, N> { + self.call_builder(&donateETHCall) + } + ///Creates a new call builder for the [`ethLockbox`] function. + pub fn ethLockbox( + &self, + ) -> alloy_contract::SolCallBuilder<&P, ethLockboxCall, N> { + self.call_builder(ðLockboxCall) + } + ///Creates a new call builder for the [`finalizeWithdrawalTransaction`] function. + pub fn finalizeWithdrawalTransaction( + &self, + _tx: ::RustType, + ) -> alloy_contract::SolCallBuilder<&P, finalizeWithdrawalTransactionCall, N> { + self.call_builder( + &finalizeWithdrawalTransactionCall { + _tx, + }, + ) + } + ///Creates a new call builder for the [`finalizeWithdrawalTransactionExternalProof`] function. + pub fn finalizeWithdrawalTransactionExternalProof( + &self, + _tx: ::RustType, + _proofSubmitter: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder< + &P, + finalizeWithdrawalTransactionExternalProofCall, + N, + > { + self.call_builder( + &finalizeWithdrawalTransactionExternalProofCall { + _tx, + _proofSubmitter, + }, + ) + } + ///Creates a new call builder for the [`finalizedWithdrawals`] function. + pub fn finalizedWithdrawals( + &self, + _0: alloy::sol_types::private::FixedBytes<32>, + ) -> alloy_contract::SolCallBuilder<&P, finalizedWithdrawalsCall, N> { + self.call_builder(&finalizedWithdrawalsCall(_0)) + } + ///Creates a new call builder for the [`guardian`] function. + pub fn guardian(&self) -> alloy_contract::SolCallBuilder<&P, guardianCall, N> { + self.call_builder(&guardianCall) + } + ///Creates a new call builder for the [`initVersion`] function. + pub fn initVersion( + &self, + ) -> alloy_contract::SolCallBuilder<&P, initVersionCall, N> { + self.call_builder(&initVersionCall) + } + ///Creates a new call builder for the [`initialize`] function. + pub fn initialize( + &self, + _systemConfig: alloy::sol_types::private::Address, + _anchorStateRegistry: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, initializeCall, N> { + self.call_builder( + &initializeCall { + _systemConfig, + _anchorStateRegistry, + }, + ) + } + ///Creates a new call builder for the [`l2Sender`] function. + pub fn l2Sender(&self) -> alloy_contract::SolCallBuilder<&P, l2SenderCall, N> { + self.call_builder(&l2SenderCall) + } + ///Creates a new call builder for the [`minimumGasLimit`] function. + pub fn minimumGasLimit( + &self, + _byteCount: u64, + ) -> alloy_contract::SolCallBuilder<&P, minimumGasLimitCall, N> { + self.call_builder(&minimumGasLimitCall { _byteCount }) + } + ///Creates a new call builder for the [`numProofSubmitters`] function. + pub fn numProofSubmitters( + &self, + _withdrawalHash: alloy::sol_types::private::FixedBytes<32>, + ) -> alloy_contract::SolCallBuilder<&P, numProofSubmittersCall, N> { + self.call_builder( + &numProofSubmittersCall { + _withdrawalHash, + }, + ) + } + ///Creates a new call builder for the [`params`] function. + pub fn params(&self) -> alloy_contract::SolCallBuilder<&P, paramsCall, N> { + self.call_builder(¶msCall) + } + ///Creates a new call builder for the [`paused`] function. + pub fn paused(&self) -> alloy_contract::SolCallBuilder<&P, pausedCall, N> { + self.call_builder(&pausedCall) + } + ///Creates a new call builder for the [`proofMaturityDelaySeconds`] function. + pub fn proofMaturityDelaySeconds( + &self, + ) -> alloy_contract::SolCallBuilder<&P, proofMaturityDelaySecondsCall, N> { + self.call_builder(&proofMaturityDelaySecondsCall) + } + ///Creates a new call builder for the [`proofSubmitters`] function. + pub fn proofSubmitters( + &self, + _0: alloy::sol_types::private::FixedBytes<32>, + _1: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, proofSubmittersCall, N> { + self.call_builder(&proofSubmittersCall { _0, _1 }) + } + ///Creates a new call builder for the [`proveWithdrawalTransaction`] function. + pub fn proveWithdrawalTransaction( + &self, + _tx: ::RustType, + _disputeGameIndex: alloy::sol_types::private::primitives::aliases::U256, + _outputRootProof: ::RustType, + _withdrawalProof: alloy::sol_types::private::Vec< + alloy::sol_types::private::Bytes, + >, + ) -> alloy_contract::SolCallBuilder<&P, proveWithdrawalTransactionCall, N> { + self.call_builder( + &proveWithdrawalTransactionCall { + _tx, + _disputeGameIndex, + _outputRootProof, + _withdrawalProof, + }, + ) + } + ///Creates a new call builder for the [`provenWithdrawals`] function. + pub fn provenWithdrawals( + &self, + _0: alloy::sol_types::private::FixedBytes<32>, + _1: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, provenWithdrawalsCall, N> { + self.call_builder(&provenWithdrawalsCall { _0, _1 }) + } + ///Creates a new call builder for the [`proxyAdmin`] function. + pub fn proxyAdmin( + &self, + ) -> alloy_contract::SolCallBuilder<&P, proxyAdminCall, N> { + self.call_builder(&proxyAdminCall) + } + ///Creates a new call builder for the [`proxyAdminOwner`] function. + pub fn proxyAdminOwner( + &self, + ) -> alloy_contract::SolCallBuilder<&P, proxyAdminOwnerCall, N> { + self.call_builder(&proxyAdminOwnerCall) + } + ///Creates a new call builder for the [`respectedGameType`] function. + pub fn respectedGameType( + &self, + ) -> alloy_contract::SolCallBuilder<&P, respectedGameTypeCall, N> { + self.call_builder(&respectedGameTypeCall) + } + ///Creates a new call builder for the [`respectedGameTypeUpdatedAt`] function. + pub fn respectedGameTypeUpdatedAt( + &self, + ) -> alloy_contract::SolCallBuilder<&P, respectedGameTypeUpdatedAtCall, N> { + self.call_builder(&respectedGameTypeUpdatedAtCall) + } + ///Creates a new call builder for the [`superchainConfig`] function. + pub fn superchainConfig( + &self, + ) -> alloy_contract::SolCallBuilder<&P, superchainConfigCall, N> { + self.call_builder(&superchainConfigCall) + } + ///Creates a new call builder for the [`systemConfig`] function. + pub fn systemConfig( + &self, + ) -> alloy_contract::SolCallBuilder<&P, systemConfigCall, N> { + self.call_builder(&systemConfigCall) + } + ///Creates a new call builder for the [`version`] function. + pub fn version(&self) -> alloy_contract::SolCallBuilder<&P, versionCall, N> { + self.call_builder(&versionCall) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > OptimismPortal2Instance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + ///Creates a new event filter for the [`Initialized`] event. + pub fn Initialized_filter(&self) -> alloy_contract::Event<&P, Initialized, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`TransactionDeposited`] event. + pub fn TransactionDeposited_filter( + &self, + ) -> alloy_contract::Event<&P, TransactionDeposited, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`WithdrawalFinalized`] event. + pub fn WithdrawalFinalized_filter( + &self, + ) -> alloy_contract::Event<&P, WithdrawalFinalized, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`WithdrawalProven`] event. + pub fn WithdrawalProven_filter( + &self, + ) -> alloy_contract::Event<&P, WithdrawalProven, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`WithdrawalProvenExtension1`] event. + pub fn WithdrawalProvenExtension1_filter( + &self, + ) -> alloy_contract::Event<&P, WithdrawalProvenExtension1, N> { + self.event_filter::() + } + } +} diff --git a/bindings/rust/src/optimism_portal_interop.rs b/bindings/rust/src/optimism_portal_interop.rs new file mode 100644 index 000000000..6c764041c --- /dev/null +++ b/bindings/rust/src/optimism_portal_interop.rs @@ -0,0 +1,15771 @@ +///Module containing a contract's types and functions. +/** + +```solidity +library Types { + struct OutputRootProof { bytes32 version; bytes32 stateRoot; bytes32 messagePasserStorageRoot; bytes32 latestBlockhash; } + struct OutputRootWithChainId { uint256 chainId; bytes32 root; } + struct SuperRootProof { bytes1 version; uint64 timestamp; OutputRootWithChainId[] outputRoots; } + struct WithdrawalTransaction { uint256 nonce; address sender; address target; uint256 value; uint256 gasLimit; bytes data; } +} +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod Types { + use super::*; + use alloy::sol_types as alloy_sol_types; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**```solidity +struct OutputRootProof { bytes32 version; bytes32 stateRoot; bytes32 messagePasserStorageRoot; bytes32 latestBlockhash; } +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct OutputRootProof { + #[allow(missing_docs)] + pub version: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub stateRoot: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub messagePasserStorageRoot: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub latestBlockhash: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::FixedBytes<32>, + alloy::sol_types::private::FixedBytes<32>, + alloy::sol_types::private::FixedBytes<32>, + alloy::sol_types::private::FixedBytes<32>, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: OutputRootProof) -> Self { + ( + value.version, + value.stateRoot, + value.messagePasserStorageRoot, + value.latestBlockhash, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for OutputRootProof { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + version: tuple.0, + stateRoot: tuple.1, + messagePasserStorageRoot: tuple.2, + latestBlockhash: tuple.3, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolValue for OutputRootProof { + type SolType = Self; + } + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for OutputRootProof { + #[inline] + fn stv_to_tokens(&self) -> ::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.version), + as alloy_sol_types::SolType>::tokenize(&self.stateRoot), + as alloy_sol_types::SolType>::tokenize( + &self.messagePasserStorageRoot, + ), + as alloy_sol_types::SolType>::tokenize(&self.latestBlockhash), + ) + } + #[inline] + fn stv_abi_encoded_size(&self) -> usize { + if let Some(size) = ::ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encoded_size(&tuple) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + ::eip712_hash_struct(self) + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + if let Some(size) = ::PACKED_ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for OutputRootProof { + type RustType = Self; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = ::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + as alloy_sol_types::SolType>::valid_token(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + let tuple = as alloy_sol_types::SolType>::detokenize(token); + >>::from(tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolStruct for OutputRootProof { + const NAME: &'static str = "OutputRootProof"; + #[inline] + fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> { + alloy_sol_types::private::Cow::Borrowed( + "OutputRootProof(bytes32 version,bytes32 stateRoot,bytes32 messagePasserStorageRoot,bytes32 latestBlockhash)", + ) + } + #[inline] + fn eip712_components() -> alloy_sol_types::private::Vec< + alloy_sol_types::private::Cow<'static, str>, + > { + alloy_sol_types::private::Vec::new() + } + #[inline] + fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> { + ::eip712_root_type() + } + #[inline] + fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec { + [ + as alloy_sol_types::SolType>::eip712_data_word(&self.version) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.stateRoot) + .0, + as alloy_sol_types::SolType>::eip712_data_word( + &self.messagePasserStorageRoot, + ) + .0, + as alloy_sol_types::SolType>::eip712_data_word( + &self.latestBlockhash, + ) + .0, + ] + .concat() + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for OutputRootProof { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + 0usize + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.version, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.stateRoot, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.messagePasserStorageRoot, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.latestBlockhash, + ) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + out.reserve( + ::topic_preimage_length(rust), + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.version, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.stateRoot, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.messagePasserStorageRoot, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.latestBlockhash, + out, + ); + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + let mut out = alloy_sol_types::private::Vec::new(); + ::encode_topic_preimage( + rust, + &mut out, + ); + alloy_sol_types::abi::token::WordToken( + alloy_sol_types::private::keccak256(out), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**```solidity +struct OutputRootWithChainId { uint256 chainId; bytes32 root; } +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct OutputRootWithChainId { + #[allow(missing_docs)] + pub chainId: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub root: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::FixedBytes<32>, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: OutputRootWithChainId) -> Self { + (value.chainId, value.root) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for OutputRootWithChainId { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + chainId: tuple.0, + root: tuple.1, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolValue for OutputRootWithChainId { + type SolType = Self; + } + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for OutputRootWithChainId { + #[inline] + fn stv_to_tokens(&self) -> ::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.chainId), + as alloy_sol_types::SolType>::tokenize(&self.root), + ) + } + #[inline] + fn stv_abi_encoded_size(&self) -> usize { + if let Some(size) = ::ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encoded_size(&tuple) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + ::eip712_hash_struct(self) + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + if let Some(size) = ::PACKED_ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for OutputRootWithChainId { + type RustType = Self; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = ::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + as alloy_sol_types::SolType>::valid_token(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + let tuple = as alloy_sol_types::SolType>::detokenize(token); + >>::from(tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolStruct for OutputRootWithChainId { + const NAME: &'static str = "OutputRootWithChainId"; + #[inline] + fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> { + alloy_sol_types::private::Cow::Borrowed( + "OutputRootWithChainId(uint256 chainId,bytes32 root)", + ) + } + #[inline] + fn eip712_components() -> alloy_sol_types::private::Vec< + alloy_sol_types::private::Cow<'static, str>, + > { + alloy_sol_types::private::Vec::new() + } + #[inline] + fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> { + ::eip712_root_type() + } + #[inline] + fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec { + [ + as alloy_sol_types::SolType>::eip712_data_word(&self.chainId) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.root) + .0, + ] + .concat() + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for OutputRootWithChainId { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + 0usize + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.chainId, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length(&rust.root) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + out.reserve( + ::topic_preimage_length(rust), + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.chainId, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.root, + out, + ); + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + let mut out = alloy_sol_types::private::Vec::new(); + ::encode_topic_preimage( + rust, + &mut out, + ); + alloy_sol_types::abi::token::WordToken( + alloy_sol_types::private::keccak256(out), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**```solidity +struct SuperRootProof { bytes1 version; uint64 timestamp; OutputRootWithChainId[] outputRoots; } +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct SuperRootProof { + #[allow(missing_docs)] + pub version: alloy::sol_types::private::FixedBytes<1>, + #[allow(missing_docs)] + pub timestamp: u64, + #[allow(missing_docs)] + pub outputRoots: alloy::sol_types::private::Vec< + ::RustType, + >, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::FixedBytes<1>, + alloy::sol_types::sol_data::Uint<64>, + alloy::sol_types::sol_data::Array, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::FixedBytes<1>, + u64, + alloy::sol_types::private::Vec< + ::RustType, + >, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: SuperRootProof) -> Self { + (value.version, value.timestamp, value.outputRoots) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for SuperRootProof { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + version: tuple.0, + timestamp: tuple.1, + outputRoots: tuple.2, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolValue for SuperRootProof { + type SolType = Self; + } + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for SuperRootProof { + #[inline] + fn stv_to_tokens(&self) -> ::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.version), + as alloy_sol_types::SolType>::tokenize(&self.timestamp), + as alloy_sol_types::SolType>::tokenize(&self.outputRoots), + ) + } + #[inline] + fn stv_abi_encoded_size(&self) -> usize { + if let Some(size) = ::ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encoded_size(&tuple) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + ::eip712_hash_struct(self) + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + if let Some(size) = ::PACKED_ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for SuperRootProof { + type RustType = Self; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = ::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + as alloy_sol_types::SolType>::valid_token(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + let tuple = as alloy_sol_types::SolType>::detokenize(token); + >>::from(tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolStruct for SuperRootProof { + const NAME: &'static str = "SuperRootProof"; + #[inline] + fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> { + alloy_sol_types::private::Cow::Borrowed( + "SuperRootProof(bytes1 version,uint64 timestamp,OutputRootWithChainId[] outputRoots)", + ) + } + #[inline] + fn eip712_components() -> alloy_sol_types::private::Vec< + alloy_sol_types::private::Cow<'static, str>, + > { + let mut components = alloy_sol_types::private::Vec::with_capacity(1); + components + .push( + ::eip712_root_type(), + ); + components + .extend( + ::eip712_components(), + ); + components + } + #[inline] + fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec { + [ + as alloy_sol_types::SolType>::eip712_data_word(&self.version) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.timestamp) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.outputRoots) + .0, + ] + .concat() + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for SuperRootProof { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + 0usize + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.version, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.timestamp, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.outputRoots, + ) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + out.reserve( + ::topic_preimage_length(rust), + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.version, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.timestamp, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.outputRoots, + out, + ); + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + let mut out = alloy_sol_types::private::Vec::new(); + ::encode_topic_preimage( + rust, + &mut out, + ); + alloy_sol_types::abi::token::WordToken( + alloy_sol_types::private::keccak256(out), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**```solidity +struct WithdrawalTransaction { uint256 nonce; address sender; address target; uint256 value; uint256 gasLimit; bytes data; } +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct WithdrawalTransaction { + #[allow(missing_docs)] + pub nonce: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub sender: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub target: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub value: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub gasLimit: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub data: alloy::sol_types::private::Bytes, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::Bytes, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: WithdrawalTransaction) -> Self { + ( + value.nonce, + value.sender, + value.target, + value.value, + value.gasLimit, + value.data, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for WithdrawalTransaction { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + nonce: tuple.0, + sender: tuple.1, + target: tuple.2, + value: tuple.3, + gasLimit: tuple.4, + data: tuple.5, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolValue for WithdrawalTransaction { + type SolType = Self; + } + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for WithdrawalTransaction { + #[inline] + fn stv_to_tokens(&self) -> ::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.nonce), + ::tokenize( + &self.sender, + ), + ::tokenize( + &self.target, + ), + as alloy_sol_types::SolType>::tokenize(&self.value), + as alloy_sol_types::SolType>::tokenize(&self.gasLimit), + ::tokenize( + &self.data, + ), + ) + } + #[inline] + fn stv_abi_encoded_size(&self) -> usize { + if let Some(size) = ::ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encoded_size(&tuple) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + ::eip712_hash_struct(self) + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + if let Some(size) = ::PACKED_ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for WithdrawalTransaction { + type RustType = Self; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = ::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + as alloy_sol_types::SolType>::valid_token(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + let tuple = as alloy_sol_types::SolType>::detokenize(token); + >>::from(tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolStruct for WithdrawalTransaction { + const NAME: &'static str = "WithdrawalTransaction"; + #[inline] + fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> { + alloy_sol_types::private::Cow::Borrowed( + "WithdrawalTransaction(uint256 nonce,address sender,address target,uint256 value,uint256 gasLimit,bytes data)", + ) + } + #[inline] + fn eip712_components() -> alloy_sol_types::private::Vec< + alloy_sol_types::private::Cow<'static, str>, + > { + alloy_sol_types::private::Vec::new() + } + #[inline] + fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> { + ::eip712_root_type() + } + #[inline] + fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec { + [ + as alloy_sol_types::SolType>::eip712_data_word(&self.nonce) + .0, + ::eip712_data_word( + &self.sender, + ) + .0, + ::eip712_data_word( + &self.target, + ) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.value) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.gasLimit) + .0, + ::eip712_data_word( + &self.data, + ) + .0, + ] + .concat() + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for WithdrawalTransaction { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + 0usize + + as alloy_sol_types::EventTopic>::topic_preimage_length(&rust.nonce) + + ::topic_preimage_length( + &rust.sender, + ) + + ::topic_preimage_length( + &rust.target, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length(&rust.value) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.gasLimit, + ) + + ::topic_preimage_length( + &rust.data, + ) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + out.reserve( + ::topic_preimage_length(rust), + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.nonce, + out, + ); + ::encode_topic_preimage( + &rust.sender, + out, + ); + ::encode_topic_preimage( + &rust.target, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.value, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.gasLimit, + out, + ); + ::encode_topic_preimage( + &rust.data, + out, + ); + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + let mut out = alloy_sol_types::private::Vec::new(); + ::encode_topic_preimage( + rust, + &mut out, + ); + alloy_sol_types::abi::token::WordToken( + alloy_sol_types::private::keccak256(out), + ) + } + } + }; + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`Types`](self) contract instance. + +See the [wrapper's documentation](`TypesInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(address: alloy_sol_types::private::Address, __provider: P) -> TypesInstance { + TypesInstance::::new(address, __provider) + } + /**A [`Types`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`Types`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct TypesInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for TypesInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("TypesInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > TypesInstance { + /**Creates a new wrapper around an on-chain [`Types`](self) contract instance. + +See the [wrapper's documentation](`TypesInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl TypesInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> TypesInstance { + TypesInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > TypesInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > TypesInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + } +} +/** + +Generated by the following Solidity interface... +```solidity +library Types { + struct OutputRootProof { + bytes32 version; + bytes32 stateRoot; + bytes32 messagePasserStorageRoot; + bytes32 latestBlockhash; + } + struct OutputRootWithChainId { + uint256 chainId; + bytes32 root; + } + struct SuperRootProof { + bytes1 version; + uint64 timestamp; + OutputRootWithChainId[] outputRoots; + } + struct WithdrawalTransaction { + uint256 nonce; + address sender; + address target; + uint256 value; + uint256 gasLimit; + bytes data; + } +} + +interface OptimismPortalInterop { + type GameType is uint32; + + error ContentLengthMismatch(); + error EmptyItem(); + error Encoding_EmptySuperRoot(); + error Encoding_InvalidSuperRootVersion(); + error InvalidDataRemainder(); + error InvalidHeader(); + error OptimismPortal_AlreadyFinalized(); + error OptimismPortal_BadTarget(); + error OptimismPortal_CallPaused(); + error OptimismPortal_CalldataTooLarge(); + error OptimismPortal_GasEstimation(); + error OptimismPortal_GasLimitTooLow(); + error OptimismPortal_ImproperDisputeGame(); + error OptimismPortal_InvalidDisputeGame(); + error OptimismPortal_InvalidMerkleProof(); + error OptimismPortal_InvalidOutputRootChainId(); + error OptimismPortal_InvalidOutputRootIndex(); + error OptimismPortal_InvalidOutputRootProof(); + error OptimismPortal_InvalidProofTimestamp(); + error OptimismPortal_InvalidRootClaim(); + error OptimismPortal_InvalidSuperRootProof(); + error OptimismPortal_MigratingToSameRegistry(); + error OptimismPortal_NoReentrancy(); + error OptimismPortal_ProofNotOldEnough(); + error OptimismPortal_Unproven(); + error OptimismPortal_WrongProofMethod(); + error OutOfGas(); + error ProxyAdminOwnedBase_NotProxyAdmin(); + error ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner(); + error ProxyAdminOwnedBase_NotProxyAdminOwner(); + error ProxyAdminOwnedBase_NotResolvedDelegateProxy(); + error ProxyAdminOwnedBase_NotSharedProxyAdminOwner(); + error ProxyAdminOwnedBase_ProxyAdminNotFound(); + error ReinitializableBase_ZeroInitVersion(); + error UnexpectedList(); + error UnexpectedString(); + + event ETHMigrated(address indexed lockbox, uint256 ethBalance); + event Initialized(uint8 version); + event PortalMigrated(address oldLockbox, address newLockbox, address oldAnchorStateRegistry, address newAnchorStateRegistry); + event TransactionDeposited(address indexed from, address indexed to, uint256 indexed version, bytes opaqueData); + event WithdrawalFinalized(bytes32 indexed withdrawalHash, bool success); + event WithdrawalProven(bytes32 indexed withdrawalHash, address indexed from, address indexed to); + event WithdrawalProvenExtension1(bytes32 indexed withdrawalHash, address indexed proofSubmitter); + + constructor(uint256 _proofMaturityDelaySeconds); + + receive() external payable; + + function anchorStateRegistry() external view returns (address); + function checkWithdrawal(bytes32 _withdrawalHash, address _proofSubmitter) external view; + function depositTransaction(address _to, uint256 _value, uint64 _gasLimit, bool _isCreation, bytes memory _data) external payable; + function disputeGameBlacklist(address _disputeGame) external view returns (bool); + function disputeGameFactory() external view returns (address); + function disputeGameFinalityDelaySeconds() external view returns (uint256); + function donateETH() external payable; + function ethLockbox() external view returns (address); + function finalizeWithdrawalTransaction(Types.WithdrawalTransaction memory _tx) external; + function finalizeWithdrawalTransactionExternalProof(Types.WithdrawalTransaction memory _tx, address _proofSubmitter) external; + function finalizedWithdrawals(bytes32) external view returns (bool); + function guardian() external view returns (address); + function initVersion() external view returns (uint8); + function initialize(address _systemConfig, address _anchorStateRegistry, address _ethLockbox) external; + function l2Sender() external view returns (address); + function migrateLiquidity() external; + function migrateToSuperRoots(address _newLockbox, address _newAnchorStateRegistry) external; + function minimumGasLimit(uint64 _byteCount) external pure returns (uint64); + function numProofSubmitters(bytes32 _withdrawalHash) external view returns (uint256); + function params() external view returns (uint128 prevBaseFee, uint64 prevBoughtGas, uint64 prevBlockNum); + function paused() external view returns (bool); + function proofMaturityDelaySeconds() external view returns (uint256); + function proofSubmitters(bytes32, uint256) external view returns (address); + function proveWithdrawalTransaction(Types.WithdrawalTransaction memory _tx, uint256 _disputeGameIndex, Types.OutputRootProof memory _outputRootProof, bytes[] memory _withdrawalProof) external; + function proveWithdrawalTransaction(Types.WithdrawalTransaction memory _tx, address _disputeGameProxy, uint256 _outputRootIndex, Types.SuperRootProof memory _superRootProof, Types.OutputRootProof memory _outputRootProof, bytes[] memory _withdrawalProof) external; + function provenWithdrawals(bytes32, address) external view returns (address disputeGameProxy, uint64 timestamp); + function proxyAdmin() external view returns (address); + function proxyAdminOwner() external view returns (address); + function respectedGameType() external view returns (GameType); + function respectedGameTypeUpdatedAt() external view returns (uint64); + function superRootsActive() external view returns (bool); + function superchainConfig() external view returns (address); + function systemConfig() external view returns (address); + function upgrade(address _anchorStateRegistry, address _ethLockbox) external; + function version() external pure returns (string memory); +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "constructor", + "inputs": [ + { + "name": "_proofMaturityDelaySeconds", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "receive", + "stateMutability": "payable" + }, + { + "type": "function", + "name": "anchorStateRegistry", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract IAnchorStateRegistry" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "checkWithdrawal", + "inputs": [ + { + "name": "_withdrawalHash", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "_proofSubmitter", + "type": "address", + "internalType": "address" + } + ], + "outputs": [], + "stateMutability": "view" + }, + { + "type": "function", + "name": "depositTransaction", + "inputs": [ + { + "name": "_to", + "type": "address", + "internalType": "address" + }, + { + "name": "_value", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_gasLimit", + "type": "uint64", + "internalType": "uint64" + }, + { + "name": "_isCreation", + "type": "bool", + "internalType": "bool" + }, + { + "name": "_data", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "disputeGameBlacklist", + "inputs": [ + { + "name": "_disputeGame", + "type": "address", + "internalType": "contract IDisputeGame" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "disputeGameFactory", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract IDisputeGameFactory" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "disputeGameFinalityDelaySeconds", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "donateETH", + "inputs": [], + "outputs": [], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "ethLockbox", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract IETHLockbox" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "finalizeWithdrawalTransaction", + "inputs": [ + { + "name": "_tx", + "type": "tuple", + "internalType": "struct Types.WithdrawalTransaction", + "components": [ + { + "name": "nonce", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "sender", + "type": "address", + "internalType": "address" + }, + { + "name": "target", + "type": "address", + "internalType": "address" + }, + { + "name": "value", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "gasLimit", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "data", + "type": "bytes", + "internalType": "bytes" + } + ] + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "finalizeWithdrawalTransactionExternalProof", + "inputs": [ + { + "name": "_tx", + "type": "tuple", + "internalType": "struct Types.WithdrawalTransaction", + "components": [ + { + "name": "nonce", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "sender", + "type": "address", + "internalType": "address" + }, + { + "name": "target", + "type": "address", + "internalType": "address" + }, + { + "name": "value", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "gasLimit", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "data", + "type": "bytes", + "internalType": "bytes" + } + ] + }, + { + "name": "_proofSubmitter", + "type": "address", + "internalType": "address" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "finalizedWithdrawals", + "inputs": [ + { + "name": "", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "guardian", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "initVersion", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint8", + "internalType": "uint8" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "initialize", + "inputs": [ + { + "name": "_systemConfig", + "type": "address", + "internalType": "contract ISystemConfig" + }, + { + "name": "_anchorStateRegistry", + "type": "address", + "internalType": "contract IAnchorStateRegistry" + }, + { + "name": "_ethLockbox", + "type": "address", + "internalType": "contract IETHLockbox" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "l2Sender", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "migrateLiquidity", + "inputs": [], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "migrateToSuperRoots", + "inputs": [ + { + "name": "_newLockbox", + "type": "address", + "internalType": "contract IETHLockbox" + }, + { + "name": "_newAnchorStateRegistry", + "type": "address", + "internalType": "contract IAnchorStateRegistry" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "minimumGasLimit", + "inputs": [ + { + "name": "_byteCount", + "type": "uint64", + "internalType": "uint64" + } + ], + "outputs": [ + { + "name": "", + "type": "uint64", + "internalType": "uint64" + } + ], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "numProofSubmitters", + "inputs": [ + { + "name": "_withdrawalHash", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "params", + "inputs": [], + "outputs": [ + { + "name": "prevBaseFee", + "type": "uint128", + "internalType": "uint128" + }, + { + "name": "prevBoughtGas", + "type": "uint64", + "internalType": "uint64" + }, + { + "name": "prevBlockNum", + "type": "uint64", + "internalType": "uint64" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "paused", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "proofMaturityDelaySeconds", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "proofSubmitters", + "inputs": [ + { + "name": "", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "proveWithdrawalTransaction", + "inputs": [ + { + "name": "_tx", + "type": "tuple", + "internalType": "struct Types.WithdrawalTransaction", + "components": [ + { + "name": "nonce", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "sender", + "type": "address", + "internalType": "address" + }, + { + "name": "target", + "type": "address", + "internalType": "address" + }, + { + "name": "value", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "gasLimit", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "data", + "type": "bytes", + "internalType": "bytes" + } + ] + }, + { + "name": "_disputeGameIndex", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_outputRootProof", + "type": "tuple", + "internalType": "struct Types.OutputRootProof", + "components": [ + { + "name": "version", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "stateRoot", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "messagePasserStorageRoot", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "latestBlockhash", + "type": "bytes32", + "internalType": "bytes32" + } + ] + }, + { + "name": "_withdrawalProof", + "type": "bytes[]", + "internalType": "bytes[]" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "proveWithdrawalTransaction", + "inputs": [ + { + "name": "_tx", + "type": "tuple", + "internalType": "struct Types.WithdrawalTransaction", + "components": [ + { + "name": "nonce", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "sender", + "type": "address", + "internalType": "address" + }, + { + "name": "target", + "type": "address", + "internalType": "address" + }, + { + "name": "value", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "gasLimit", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "data", + "type": "bytes", + "internalType": "bytes" + } + ] + }, + { + "name": "_disputeGameProxy", + "type": "address", + "internalType": "contract IDisputeGame" + }, + { + "name": "_outputRootIndex", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_superRootProof", + "type": "tuple", + "internalType": "struct Types.SuperRootProof", + "components": [ + { + "name": "version", + "type": "bytes1", + "internalType": "bytes1" + }, + { + "name": "timestamp", + "type": "uint64", + "internalType": "uint64" + }, + { + "name": "outputRoots", + "type": "tuple[]", + "internalType": "struct Types.OutputRootWithChainId[]", + "components": [ + { + "name": "chainId", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "root", + "type": "bytes32", + "internalType": "bytes32" + } + ] + } + ] + }, + { + "name": "_outputRootProof", + "type": "tuple", + "internalType": "struct Types.OutputRootProof", + "components": [ + { + "name": "version", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "stateRoot", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "messagePasserStorageRoot", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "latestBlockhash", + "type": "bytes32", + "internalType": "bytes32" + } + ] + }, + { + "name": "_withdrawalProof", + "type": "bytes[]", + "internalType": "bytes[]" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "provenWithdrawals", + "inputs": [ + { + "name": "", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "outputs": [ + { + "name": "disputeGameProxy", + "type": "address", + "internalType": "contract IDisputeGame" + }, + { + "name": "timestamp", + "type": "uint64", + "internalType": "uint64" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "proxyAdmin", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract IProxyAdmin" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "proxyAdminOwner", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "respectedGameType", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint32", + "internalType": "GameType" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "respectedGameTypeUpdatedAt", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint64", + "internalType": "uint64" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "superRootsActive", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "superchainConfig", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract ISuperchainConfig" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "systemConfig", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract ISystemConfig" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "upgrade", + "inputs": [ + { + "name": "_anchorStateRegistry", + "type": "address", + "internalType": "contract IAnchorStateRegistry" + }, + { + "name": "_ethLockbox", + "type": "address", + "internalType": "contract IETHLockbox" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "version", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "pure" + }, + { + "type": "event", + "name": "ETHMigrated", + "inputs": [ + { + "name": "lockbox", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "ethBalance", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "Initialized", + "inputs": [ + { + "name": "version", + "type": "uint8", + "indexed": false, + "internalType": "uint8" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "PortalMigrated", + "inputs": [ + { + "name": "oldLockbox", + "type": "address", + "indexed": false, + "internalType": "contract IETHLockbox" + }, + { + "name": "newLockbox", + "type": "address", + "indexed": false, + "internalType": "contract IETHLockbox" + }, + { + "name": "oldAnchorStateRegistry", + "type": "address", + "indexed": false, + "internalType": "contract IAnchorStateRegistry" + }, + { + "name": "newAnchorStateRegistry", + "type": "address", + "indexed": false, + "internalType": "contract IAnchorStateRegistry" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "TransactionDeposited", + "inputs": [ + { + "name": "from", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "to", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "version", + "type": "uint256", + "indexed": true, + "internalType": "uint256" + }, + { + "name": "opaqueData", + "type": "bytes", + "indexed": false, + "internalType": "bytes" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "WithdrawalFinalized", + "inputs": [ + { + "name": "withdrawalHash", + "type": "bytes32", + "indexed": true, + "internalType": "bytes32" + }, + { + "name": "success", + "type": "bool", + "indexed": false, + "internalType": "bool" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "WithdrawalProven", + "inputs": [ + { + "name": "withdrawalHash", + "type": "bytes32", + "indexed": true, + "internalType": "bytes32" + }, + { + "name": "from", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "to", + "type": "address", + "indexed": true, + "internalType": "address" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "WithdrawalProvenExtension1", + "inputs": [ + { + "name": "withdrawalHash", + "type": "bytes32", + "indexed": true, + "internalType": "bytes32" + }, + { + "name": "proofSubmitter", + "type": "address", + "indexed": true, + "internalType": "address" + } + ], + "anonymous": false + }, + { + "type": "error", + "name": "ContentLengthMismatch", + "inputs": [] + }, + { + "type": "error", + "name": "EmptyItem", + "inputs": [] + }, + { + "type": "error", + "name": "Encoding_EmptySuperRoot", + "inputs": [] + }, + { + "type": "error", + "name": "Encoding_InvalidSuperRootVersion", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidDataRemainder", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidHeader", + "inputs": [] + }, + { + "type": "error", + "name": "OptimismPortal_AlreadyFinalized", + "inputs": [] + }, + { + "type": "error", + "name": "OptimismPortal_BadTarget", + "inputs": [] + }, + { + "type": "error", + "name": "OptimismPortal_CallPaused", + "inputs": [] + }, + { + "type": "error", + "name": "OptimismPortal_CalldataTooLarge", + "inputs": [] + }, + { + "type": "error", + "name": "OptimismPortal_GasEstimation", + "inputs": [] + }, + { + "type": "error", + "name": "OptimismPortal_GasLimitTooLow", + "inputs": [] + }, + { + "type": "error", + "name": "OptimismPortal_ImproperDisputeGame", + "inputs": [] + }, + { + "type": "error", + "name": "OptimismPortal_InvalidDisputeGame", + "inputs": [] + }, + { + "type": "error", + "name": "OptimismPortal_InvalidMerkleProof", + "inputs": [] + }, + { + "type": "error", + "name": "OptimismPortal_InvalidOutputRootChainId", + "inputs": [] + }, + { + "type": "error", + "name": "OptimismPortal_InvalidOutputRootIndex", + "inputs": [] + }, + { + "type": "error", + "name": "OptimismPortal_InvalidOutputRootProof", + "inputs": [] + }, + { + "type": "error", + "name": "OptimismPortal_InvalidProofTimestamp", + "inputs": [] + }, + { + "type": "error", + "name": "OptimismPortal_InvalidRootClaim", + "inputs": [] + }, + { + "type": "error", + "name": "OptimismPortal_InvalidSuperRootProof", + "inputs": [] + }, + { + "type": "error", + "name": "OptimismPortal_MigratingToSameRegistry", + "inputs": [] + }, + { + "type": "error", + "name": "OptimismPortal_NoReentrancy", + "inputs": [] + }, + { + "type": "error", + "name": "OptimismPortal_ProofNotOldEnough", + "inputs": [] + }, + { + "type": "error", + "name": "OptimismPortal_Unproven", + "inputs": [] + }, + { + "type": "error", + "name": "OptimismPortal_WrongProofMethod", + "inputs": [] + }, + { + "type": "error", + "name": "OutOfGas", + "inputs": [] + }, + { + "type": "error", + "name": "ProxyAdminOwnedBase_NotProxyAdmin", + "inputs": [] + }, + { + "type": "error", + "name": "ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner", + "inputs": [] + }, + { + "type": "error", + "name": "ProxyAdminOwnedBase_NotProxyAdminOwner", + "inputs": [] + }, + { + "type": "error", + "name": "ProxyAdminOwnedBase_NotResolvedDelegateProxy", + "inputs": [] + }, + { + "type": "error", + "name": "ProxyAdminOwnedBase_NotSharedProxyAdminOwner", + "inputs": [] + }, + { + "type": "error", + "name": "ProxyAdminOwnedBase_ProxyAdminNotFound", + "inputs": [] + }, + { + "type": "error", + "name": "ReinitializableBase_ZeroInitVersion", + "inputs": [] + }, + { + "type": "error", + "name": "UnexpectedList", + "inputs": [] + }, + { + "type": "error", + "name": "UnexpectedString", + "inputs": [] + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod OptimismPortalInterop { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x60c06040523480156200001157600080fd5b506040516200602838038062006028833981016040819052620000349162000111565b600460805260a0819052620000486200004f565b506200012b565b600054610100900460ff1615620000bc5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811610156200010f576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6000602082840312156200012457600080fd5b5051919050565b60805160a051615ec26200016660003960008181610713015261179d01526000818161030401528181611a000152611d020152615ec26000f3fe6080604052600436106102385760003560e01c80638c3152e911610138578063bb2c727e116100b0578063cff0ab961161007f578063dad544e011610064578063dad544e01461082a578063e9e05c421461083f578063f2b4e6171461085257600080fd5b8063cff0ab9614610757578063d325d3bf146107f857600080fd5b8063bb2c727e14610648578063bda204bb146106ef578063bf653a5c14610704578063c0c53b8b1461073757600080fd5b80639bf62d8211610107578063a35d99df116100ec578063a35d99df146105db578063a3860f48146105fb578063b682c4441461061b57600080fd5b80639bf62d821461057e578063a14238e7146105ab57600080fd5b80638c3152e9146105095780638c90dd6514610529578063952b27971461054957806399a88ec41461055e57600080fd5b806345884d32116101cb57806354fd4d501161019a5780635c975abb1161017f5780635c975abb146104d457806371c1566e146104e95780638b4c40b01461025d57600080fd5b806354fd4d501461045b5780635c0cba33146104a757600080fd5b806345884d32146103a25780634870496f146103d25780634fd0434c146103f2578063513747ab1461042057600080fd5b80633c9f397c116102075780633c9f397c1461032e5780633e47158c1461035857806343ca1c501461036d578063452a93201461038d57600080fd5b80632152f2be1461026457806333d7e2bd1461028457806335e80ab3146102db57806338d38c97146102f057600080fd5b3661025f5761025d3334620186a0600060405180602001604052806000815250610867565b005b600080fd5b34801561027057600080fd5b5061025d61027f366004614f47565b610ab3565b34801561029057600080fd5b506037546102b19073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b3480156102e757600080fd5b506102b1610bf9565b3480156102fc57600080fd5b5060405160ff7f00000000000000000000000000000000000000000000000000000000000000001681526020016102d2565b34801561033a57600080fd5b50610343610c92565b60405163ffffffff90911681526020016102d2565b34801561036457600080fd5b506102b1610d26565b34801561037957600080fd5b5061025d610388366004615187565b610f31565b34801561039957600080fd5b506102b1611272565b3480156103ae57600080fd5b506103c26103bd3660046151ce565b6112e2565b60405190151581526020016102d2565b3480156103de57600080fd5b5061025d6103ed36600461524f565b61137d565b3480156103fe57600080fd5b506104076114ad565b60405167ffffffffffffffff90911681526020016102d2565b34801561042c57600080fd5b5061044d61043b3660046152d5565b6000908152603c602052604090205490565b6040519081526020016102d2565b34801561046757600080fd5b50604080518082018252600d81527f352e312e302b696e7465726f7000000000000000000000000000000000000000602082015290516102d29190615364565b3480156104b357600080fd5b50603e546102b19073ffffffffffffffffffffffffffffffffffffffff1681565b3480156104e057600080fd5b506103c2611541565b3480156104f557600080fd5b5061025d610504366004615377565b6115d5565b34801561051557600080fd5b5061025d61052436600461539c565b6118d9565b34801561053557600080fd5b5061025d6105443660046153d9565b6118e6565b34801561055557600080fd5b5061044d61196a565b34801561056a57600080fd5b5061025d610579366004614f47565b6119fe565b34801561058a57600080fd5b506032546102b19073ffffffffffffffffffffffffffffffffffffffff1681565b3480156105b757600080fd5b506103c26105c63660046152d5565b60336020526000908152604090205460ff1681565b3480156105e757600080fd5b506104076105f63660046154b9565b611bc0565b34801561060757600080fd5b506102b16106163660046154d6565b611bd9565b34801561062757600080fd5b50603f546102b19073ffffffffffffffffffffffffffffffffffffffff1681565b34801561065457600080fd5b506106ba610663366004615377565b603960209081526000928352604080842090915290825290205473ffffffffffffffffffffffffffffffffffffffff81169074010000000000000000000000000000000000000000900467ffffffffffffffff1682565b6040805173ffffffffffffffffffffffffffffffffffffffff909316835267ffffffffffffffff9091166020830152016102d2565b3480156106fb57600080fd5b5061025d611c1e565b34801561071057600080fd5b507f000000000000000000000000000000000000000000000000000000000000000061044d565b34801561074357600080fd5b5061025d6107523660046154f8565b611d00565b34801561076357600080fd5b506001546107bf906fffffffffffffffffffffffffffffffff81169067ffffffffffffffff7001000000000000000000000000000000008204811691780100000000000000000000000000000000000000000000000090041683565b604080516fffffffffffffffffffffffffffffffff909416845267ffffffffffffffff92831660208501529116908201526060016102d2565b34801561080457600080fd5b50603f546103c29074010000000000000000000000000000000000000000900460ff1681565b34801561083657600080fd5b506102b1611efd565b61025d61084d366004615551565b610867565b34801561085e57600080fd5b506102b1611f51565b8260005a905034156108f757603f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631ee116bf346040518263ffffffff1660e01b81526004016000604051808303818588803b1580156108dd57600080fd5b505af11580156108f1573d6000803e3d6000fd5b50505050505b838015610919575073ffffffffffffffffffffffffffffffffffffffff871615155b15610950576040517fc5defbad00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61095a8351611bc0565b67ffffffffffffffff168567ffffffffffffffff1610156109a7576040517f70c8bdbd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6201d4c0835111156109e5576040517f5aa3bac900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b336109ee611fc1565b610a0b575033731111000000000000000000000000000000001111015b60003488888888604051602001610a269594939291906155d0565b604051602081830303815290604052905060008973ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fb3813568d9991fc951961fcb4c784893574240a28925604d09fc577c55bb7c3284604051610a969190615364565b60405180910390a45050610aaa8282611fff565b50505050505050565b610abb6122d6565b610ac3612315565b603e5473ffffffffffffffffffffffffffffffffffffffff808316911603610b17576040517f785df91100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b603f8054603e805473ffffffffffffffffffffffffffffffffffffffff8581167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093557fffffffffffffffffffffff0000000000000000000000000000000000000000008416878216908117740100000000000000000000000000000000000000001790955560408051948216808652602086019690965291169083018190526060830191909152907f9e5368471a58d81987e5dc7d6374dd5ed5e756cc95a79ff726903423bce0060d906080015b60405180910390a150505050565b603754604080517f35e80ab3000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff16916335e80ab39160048083019260209291908290030181865afa158015610c69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c8d9190615635565b905090565b603e54604080517f3c9f397c000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff1691633c9f397c9160048083019260209291908290030181865afa158015610d02573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c8d9190615664565b600080610d517fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b905073ffffffffffffffffffffffffffffffffffffffff811615610d7457919050565b6040518060400160405280601a81526020017f4f564d5f4c3143726f7373446f6d61696e4d657373656e676572000000000000815250516002610db791906156b0565b604080513060208201526000918101919091527f4f564d5f4c3143726f7373446f6d61696e4d657373656e6765720000000000009190911790610e12906060015b604051602081830303815290604052805190602001205490565b14610e49576040517f54e433cd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60408051306020820152600191810191909152600090610e6b90606001610df8565b905073ffffffffffffffffffffffffffffffffffffffff811615610eff578073ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ed4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ef89190615635565b9250505090565b6040517f332144db00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610f396122d6565b60325473ffffffffffffffffffffffffffffffffffffffff1661dead14610f8c576040517fdfeaaeb800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610f99826040015161236b565b15610fd0576040517fc5defbad00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000610fdb836123ae565b9050610fe781836115d5565b600081815260336020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790556060830151156110b857603f5460608401516040517f8d445bd000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90921691638d445bd0916110859160040190815260200190565b600060405180830381600087803b15801561109f57600080fd5b505af11580156110b3573d6000803e3d6000fd5b505050505b8260200151603260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600061111b8460400151856080015186606001518760a001516123fb565b603280547fffffffffffffffffffffffff00000000000000000000000000000000000000001661dead17905560405190915082907fdb5c7652857aa163daadd670e116628fb42e869d8ac4251ef8971d9e5727df1b9061118090841515815260200190565b60405180910390a28015801561119a575060008460600151115b1561122757603f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631ee116bf85606001516040518263ffffffff1660e01b81526004016000604051808303818588803b15801561120d57600080fd5b505af1158015611221573d6000803e3d6000fd5b50505050505b801580156112355750326001145b1561126c576040517fab58103600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505050565b603754604080517f452a9320000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff169163452a93209160048083019260209291908290030181865afa158015610c69573d6000803e3d6000fd5b603e546040517f45884d3200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff838116600483015260009216906345884d3290602401602060405180830381865afa158015611353573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061137791906156ed565b92915050565b6113856122d6565b603f5474010000000000000000000000000000000000000000900460ff16156113da576040517f5e74b54200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006113e4611f51565b73ffffffffffffffffffffffffffffffffffffffff1663bb8aa1fc866040518263ffffffff1660e01b815260040161141e91815260200190565b606060405180830381865afa15801561143b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061145f919061570a565b6040805160608082018352600080835260208301529181019190915290935091506114879050565b610aaa878360008461149e368b90038b018b61574c565b6114a8898b6157d6565b612459565b603e54604080517f4086d183000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff1691634086d1839160048083019260209291908290030181865afa15801561151d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c8d919061584f565b603754604080517f5c975abb000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff1691635c975abb9160048083019260209291908290030181865afa1580156115b1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c8d91906156ed565b600082815260396020908152604080832073ffffffffffffffffffffffffffffffffffffffff85811685529083528184208251808401845290549182168082527401000000000000000000000000000000000000000090920467ffffffffffffffff1681850152868552603390935292205490919060ff1615611684576040517f730a107400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b816020015167ffffffffffffffff166000036116cc576040517fcca6afda00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61174b8173ffffffffffffffffffffffffffffffffffffffff1663cf09e0d06040518163ffffffff1660e01b8152600401602060405180830381865afa15801561171a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061173e919061584f565b67ffffffffffffffff1690565b67ffffffffffffffff16826020015167ffffffffffffffff161161179b576040517fb4caa4e500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f0000000000000000000000000000000000000000000000000000000000000000826020015167ffffffffffffffff16426117d6919061586c565b1161180d576040517fd9bc01be00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b603e546040517f6c4f446700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff838116600483015290911690636c4f446790602401602060405180830381865afa15801561187d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118a191906156ed565b61126c576040517f332a57f800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b6118e38133610f31565b50565b6118ee6122d6565b603f5474010000000000000000000000000000000000000000900460ff16611942576040517f5e74b54200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610aaa87878761195188615883565b6119603689900389018961574c565b6114a887896157d6565b603e54604080517f952b2797000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff169163952b27979160048083019260209291908290030181865afa1580156119da573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c8d919061598d565b7f0000000000000000000000000000000000000000000000000000000000000000600054610100900460ff16158015611a3e575060005460ff8083169116105b611acf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084015b60405180910390fd5b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001660ff831617610100179055611b08612cb4565b603e805473ffffffffffffffffffffffffffffffffffffffff8581167fffffffffffffffffffffffff000000000000000000000000000000000000000092831617909255603f805492851692909116919091179055600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050565b6000611bcd8260286159a6565b611377906152086159d6565b603c6020528160005260406000208181548110611bf557600080fd5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff169150829050565b611c26612315565b603f54604080517f1ee116bf0000000000000000000000000000000000000000000000000000000081529051479273ffffffffffffffffffffffffffffffffffffffff1691631ee116bf91849160048082019260009290919082900301818588803b158015611c9457600080fd5b505af1158015611ca8573d6000803e3d6000fd5b5050603f5460405185815273ffffffffffffffffffffffffffffffffffffffff90911693507fd893f630c6867fa43689da9ae949ebf04cac24aad3b45c759d442ed3c32e3a379250602001905060405180910390a250565b7f0000000000000000000000000000000000000000000000000000000000000000600054610100900460ff16158015611d40575060005460ff8083169116105b611dcc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401611ac6565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001660ff831617610100179055611e05612cb4565b6037805473ffffffffffffffffffffffffffffffffffffffff8087167fffffffffffffffffffffffff000000000000000000000000000000000000000092831617909255603e8054868416908316179055603f8054858416921691909117905560325416611e9a57603280547fffffffffffffffffffffffff00000000000000000000000000000000000000001661dead1790555b611ea2612d35565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602001610beb565b6000611f07610d26565b73ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c69573d6000803e3d6000fd5b603e54604080517ff2b4e617000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff169163f2b4e6179160048083019260209291908290030181865afa158015610c69573d6000803e3d6000fd5b6000323303611fd05750600190565b333b601703611ff857604051602081016040526020600082333c5160e81c62ef010014905090565b5060005b90565b600154600090612035907801000000000000000000000000000000000000000000000000900467ffffffffffffffff164361586c565b90506000612041612e48565b90506000816020015160ff16826000015163ffffffff166120629190615a31565b9050821561219957600154600090612099908390700100000000000000000000000000000000900467ffffffffffffffff16615a99565b90506000836040015160ff16836120b09190615b0d565b6001546120d09084906fffffffffffffffffffffffffffffffff16615b0d565b6120da9190615a31565b60015490915060009061212b906121049084906fffffffffffffffffffffffffffffffff16615bc9565b866060015163ffffffff168760a001516fffffffffffffffffffffffffffffffff16612f0e565b9050600186111561215a5761215761210482876040015160ff1660018a612152919061586c565b612f2d565b90505b6fffffffffffffffffffffffffffffffff16780100000000000000000000000000000000000000000000000067ffffffffffffffff4316021760015550505b600180548691906010906121cc908490700100000000000000000000000000000000900467ffffffffffffffff166159d6565b92506101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550816000015163ffffffff16600160000160109054906101000a900467ffffffffffffffff1667ffffffffffffffff161315612259576040517f77ebef4d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600154600090612285906fffffffffffffffffffffffffffffffff1667ffffffffffffffff88166156b0565b9050600061229748633b9aca00612f82565b6122a19083615c3d565b905060005a6122b0908861586c565b9050808211156122cc576122cc6122c7828461586c565b612f99565b5050505050505050565b6122de611541565b156118d7576040517fb9c3c2ef00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3361231e611efd565b73ffffffffffffffffffffffffffffffffffffffff16146118d7576040517f7f12c64b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff8216301480611377575050603f5473ffffffffffffffffffffffffffffffffffffffff90811691161490565b80516020808301516040808501516060860151608087015160a088015193516000976123de979096959101615c51565b604051602081830303815290604052805190602001209050919050565b600080600061240b866000612fc7565b905080612441576308c379a06000526020805278185361666543616c6c3a204e6f7420656e6f756768206761736058526064601cfd5b600080855160208701888b5af1979650505050505050565b612466866040015161236b565b1561249d576040517fc5defbad00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b603e546040517f496b9c1600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff87811660048301529091169063496b9c1690602401602060405180830381865afa15801561250d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061253191906156ed565b612567576040517ff395240e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b603e546040517f04e50fed00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8781166004830152909116906304e50fed90602401602060405180830381865afa1580156125d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125fb91906156ed565b612631576040517fe29927ed00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60018573ffffffffffffffffffffffffffffffffffffffff1663200d2ed26040518163ffffffff1660e01b8152600401602060405180830381865afa15801561267e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126a29190615cd7565b60028111156126b3576126b3615ca8565b036126ea576040517fe29927ed00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6127388573ffffffffffffffffffffffffffffffffffffffff1663cf09e0d06040518163ffffffff1660e01b8152600401602060405180830381865afa15801561171a573d6000803e3d6000fd5b67ffffffffffffffff16421161277a576040517fb4caa4e500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b603f5474010000000000000000000000000000000000000000900460ff16156129c4576127a683612fe5565b6128188673ffffffffffffffffffffffffffffffffffffffff1663bcef3b556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156127f4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ffc919061598d565b1461284f576040517f2b1a9a6600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b826040015151841061288d576040517f32dc285c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000836040015185815181106128a5576128a5615cf8565b60200260200101519050603760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d6ae3cd56040518163ffffffff1660e01b8152600401602060405180830381865afa15801561291c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612940919061598d565b815114612979576040517f7cc2f31b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61298283612ffe565b8160200151146129be576040517f426149af00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50612a52565b6129cd82612ffe565b612a1b8673ffffffffffffffffffffffffffffffffffffffff1663bcef3b556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156127f4573d6000803e3d6000fd5b14612a52576040517f426149af00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000612a5d876123ae565b90506000816000604051602001612a7e929190918252602082015260400190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815282825280516020918201209083018190529250612b299101604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181528282018252600183527f0100000000000000000000000000000000000000000000000000000000000000602084015290870151909190869061303d565b1515600003612b64576040517f2e57ef3a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60408051808201825273ffffffffffffffffffffffffffffffffffffffff808a16825267ffffffffffffffff42811660208085019182526000888152603982528681203380835290835287822096518754945190951674010000000000000000000000000000000000000000027fffffffff000000000000000000000000000000000000000000000000000000009094169486169490941792909217909455868152603c845284812080546001810182559082528482200180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169092179091558b840151928c01519351928216939091169185917f67a6208cfcc0801d50f6cbe764733f4fddf66ac0b04442061a8a8c0cb6b63f6291a4604051339083907f798f9f13695f8f045aa5f80ed8efebb695f3c7fe65da381969f2f28bf3c60b9790600090a35050505050505050565b33612cbd610d26565b73ffffffffffffffffffffffffffffffffffffffff1614158015612cfe575033612ce5611efd565b73ffffffffffffffffffffffffffffffffffffffff1614155b156118d7576040517fc4050a2600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600054610100900460ff16612dcc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401611ac6565b6001547801000000000000000000000000000000000000000000000000900467ffffffffffffffff166000036118d75760408051606081018252633b9aca00808252600060208301524367ffffffffffffffff169190920181905278010000000000000000000000000000000000000000000000000217600155565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a0810191909152603754604080517fcc731b02000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff169163cc731b029160048083019260c09291908290030181865afa158015612eea573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113779190615d3d565b6000612f23612f1d8585613061565b83613071565b90505b9392505050565b6000670de0b6b3a7640000612f6e612f458583615a31565b612f5790670de0b6b3a7640000615a99565b612f6985670de0b6b3a7640000615b0d565b613080565b612f789086615b0d565b612f239190615a31565b600081831015612f925781612f26565b5090919050565b6000805a90505b825a612fac908361586c565b1015612fc257612fbb82615df9565b9150612fa0565b505050565b600080603f83619c4001026040850201603f5a021015949350505050565b6000612ff0826130b1565b805190602001209050919050565b600081600001518260200151836040015184606001516040516020016123de949392919093845260208401929092526040830152606082015260800190565b60008061304986613267565b905061305781868686613299565b9695505050505050565b600081831215612f925781612f26565b6000818312612f925781612f26565b6000612f26670de0b6b3a764000083613098866132c9565b6130a29190615b0d565b6130ac9190615a31565b61350d565b80516060907fff00000000000000000000000000000000000000000000000000000000000000167f010000000000000000000000000000000000000000000000000000000000000014613130576040517fc06b523800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81604001515160000361316f576040517f9103e7cd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008260000151836020015160c01b6040516020016131de9291907fff000000000000000000000000000000000000000000000000000000000000009290921682527fffffffffffffffff00000000000000000000000000000000000000000000000016600182015260090190565b604051602081830303815290604052905060005b8360400151518110156132605760008460400151828151811061321757613217615cf8565b60209081029190910181015180518183015160405192945061323b93879301615e31565b604051602081830303815290604052925050808061325890615df9565b9150506131f2565b5092915050565b6060818051906020012060405160200161328391815260200190565b6040516020818303038152906040529050919050565b60006132c0846132aa87868661374c565b8051602091820120825192909101919091201490565b95945050505050565b6000808213613334576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f554e444546494e454400000000000000000000000000000000000000000000006044820152606401611ac6565b60006060613341846141ca565b03609f8181039490941b90931c6c465772b2bbbb5f824b15207a3081018102606090811d6d0388eaa27412d5aca026815d636e018202811d6d0df99ac502031bf953eff472fdcc018202811d6d13cdffb29d51d99322bdff5f2211018202811d6d0a0f742023def783a307a986912e018202811d6d01920d8043ca89b5239253284e42018202811d6c0b7a86d7375468fac667a0a527016c29508e458543d8aa4df2abee7883018302821d6d0139601a2efabe717e604cbb4894018302821d6d02247f7a7b6594320649aa03aba1018302821d7fffffffffffffffffffffffffffffffffffffff73c0c716a594e00d54e3c4cbc9018302821d7ffffffffffffffffffffffffffffffffffffffdc7b88c420e53a9890533129f6f01830290911d7fffffffffffffffffffffffffffffffffffffff465fda27eb4d63ded474e5f832019091027ffffffffffffffff5f6af8f7b3396644f18e157960000000000000000000000000105711340daa0d5f769dba1915cef59f0815a5506027d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b393909302929092017d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b88642840160ae1d92915050565b60007ffffffffffffffffffffffffffffffffffffffffffffffffdb731c958f34d94c1821361353e57506000919050565b680755bf798b4a1bf1e582126135b0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f4558505f4f564552464c4f5700000000000000000000000000000000000000006044820152606401611ac6565b6503782dace9d9604e83901b059150600060606bb17217f7d1cf79abc9e3b39884821b056b80000000000000000000000001901d6bb17217f7d1cf79abc9e3b39881029093037fffffffffffffffffffffffffffffffffffffffdbf3ccf1604d263450f02a550481018102606090811d6d0277594991cfc85f6e2461837cd9018202811d7fffffffffffffffffffffffffffffffffffffe5adedaa1cb095af9e4da10e363c018202811d6db1bbb201f443cf962f1a1d3db4a5018202811d7ffffffffffffffffffffffffffffffffffffd38dc772608b0ae56cce01296c0eb018202811d6e05180bb14799ab47a8a8cb2a527d57016d02d16720577bd19bf614176fe9ea6c10fe68e7fd37d0007b713f765084018402831d9081019084017ffffffffffffffffffffffffffffffffffffffe2c69812cf03b0763fd454a8f7e010290911d6e0587f503bb6ea29d25fcb7401964500190910279d835ebba824c98fb31b83b2ca45c000000000000000000000000010574029d9dc38563c32e5c2f6dc192ee70ef65f9978af30260c3939093039290921c92915050565b606060008451116137b9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4d65726b6c65547269653a20656d707479206b657900000000000000000000006044820152606401611ac6565b60006137c4846142a0565b905060006137d18661438c565b90506000846040516020016137e891815260200190565b60405160208183030381529060405290506000805b845181101561414157600085828151811061381a5761381a615cf8565b6020026020010151905084518311156138b5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f4d65726b6c65547269653a206b657920696e646578206578636565647320746f60448201527f74616c206b6579206c656e6774680000000000000000000000000000000000006064820152608401611ac6565b8260000361396e5780518051602091820120604051613903926138dd92910190815260200190565b604051602081830303815290604052858051602091820120825192909101919091201490565b613969576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f4d65726b6c65547269653a20696e76616c696420726f6f7420686173680000006044820152606401611ac6565b613ac5565b805151602011613a245780518051602091820120604051613998926138dd92910190815260200190565b613969576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4d65726b6c65547269653a20696e76616c6964206c6172676520696e7465726e60448201527f616c2068617368000000000000000000000000000000000000000000000000006064820152608401611ac6565b805184516020808701919091208251919092012014613ac5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4d65726b6c65547269653a20696e76616c696420696e7465726e616c206e6f6460448201527f65206861736800000000000000000000000000000000000000000000000000006064820152608401611ac6565b613ad160106001615e58565b81602001515103613cad5784518303613c4557613b0b8160200151601081518110613afe57613afe615cf8565b60200260200101516143ef565b96506000875111613b9e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603b60248201527f4d65726b6c65547269653a2076616c7565206c656e677468206d75737420626560448201527f2067726561746572207468616e207a65726f20286272616e63682900000000006064820152608401611ac6565b60018651613bac919061586c565b8214613c3a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603a60248201527f4d65726b6c65547269653a2076616c7565206e6f6465206d757374206265206c60448201527f617374206e6f646520696e2070726f6f6620286272616e6368290000000000006064820152608401611ac6565b505050505050612f26565b6000858481518110613c5957613c59615cf8565b602001015160f81c60f81b60f81c9050600082602001518260ff1681518110613c8457613c84615cf8565b60200260200101519050613c97816144a3565b9550613ca4600186615e58565b9450505061412e565b6002816020015151036140a6576000613cc5826144c8565b9050600081600081518110613cdc57613cdc615cf8565b016020015160f81c90506000613cf3600283615e70565b613cfe906002615e92565b90506000613d0f848360ff166144ec565b90506000613d1d8a896144ec565b90506000613d2b8383614522565b905080835114613dbd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603a60248201527f4d65726b6c65547269653a20706174682072656d61696e646572206d7573742060448201527f736861726520616c6c206e6962626c65732077697468206b65790000000000006064820152608401611ac6565b60ff851660021480613dd2575060ff85166003145b15613fc15780825114613e67576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603d60248201527f4d65726b6c65547269653a206b65792072656d61696e646572206d757374206260448201527f65206964656e746963616c20746f20706174682072656d61696e6465720000006064820152608401611ac6565b613e818760200151600181518110613afe57613afe615cf8565b9c5060008d5111613f14576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603960248201527f4d65726b6c65547269653a2076616c7565206c656e677468206d75737420626560448201527f2067726561746572207468616e207a65726f20286c65616629000000000000006064820152608401611ac6565b60018c51613f22919061586c565b8814613fb0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603860248201527f4d65726b6c65547269653a2076616c7565206e6f6465206d757374206265206c60448201527f617374206e6f646520696e2070726f6f6620286c6561662900000000000000006064820152608401611ac6565b505050505050505050505050612f26565b60ff85161580613fd4575060ff85166001145b15614013576140008760200151600181518110613ff357613ff3615cf8565b60200260200101516144a3565b995061400c818a615e58565b985061409b565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4d65726b6c65547269653a2072656365697665642061206e6f6465207769746860448201527f20616e20756e6b6e6f776e2070726566697800000000000000000000000000006064820152608401611ac6565b50505050505061412e565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f4d65726b6c65547269653a20726563656976656420616e20756e70617273656160448201527f626c65206e6f64650000000000000000000000000000000000000000000000006064820152608401611ac6565b508061413981615df9565b9150506137fd565b506040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f4d65726b6c65547269653a2072616e206f7574206f662070726f6f6620656c6560448201527f6d656e74730000000000000000000000000000000000000000000000000000006064820152608401611ac6565b6000808211614235576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f554e444546494e454400000000000000000000000000000000000000000000006044820152606401611ac6565b5060016fffffffffffffffffffffffffffffffff821160071b82811c67ffffffffffffffff1060061b1782811c63ffffffff1060051b1782811c61ffff1060041b1782811c60ff10600390811b90911783811c600f1060021b1783811c909110821b1791821c111790565b80516060908067ffffffffffffffff8111156142be576142be614f80565b60405190808252806020026020018201604052801561430357816020015b60408051808201909152606080825260208201528152602001906001900390816142dc5790505b50915060005b8181101561438557604051806040016040528085838151811061432e5761432e615cf8565b6020026020010151815260200161435d86848151811061435057614350615cf8565b60200260200101516145cf565b81525083828151811061437257614372615cf8565b6020908102919091010152600101614309565b5050919050565b606080604051905082518060011b603f8101601f1916830160405280835250602084016020830160005b838110156143e4578060011b82018184015160001a8060041c8253600f8116600183015350506001016143b6565b509295945050505050565b606060008060006143ff856145e2565b91945092509050600081600181111561441a5761441a615ca8565b14614451576040517f1ff9b2e400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61445b8284615e58565b855114614494576040517f5c5537b800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6132c085602001518484614a80565b606060208260000151106144bf576144ba826143ef565b611377565b61137782614b14565b60606113776144e78360200151600081518110613afe57613afe615cf8565b61438c565b60608251821061450b5750604080516020810190915260008152611377565b612f26838384865161451d919061586c565b614b2a565b6000808251845110614535578251614538565b83515b90505b80821080156145bf575082828151811061455757614557615cf8565b602001015160f81c60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191684838151811061459657614596615cf8565b01602001517fff0000000000000000000000000000000000000000000000000000000000000016145b156132605781600101915061453b565b60606113776145dd83614d02565b614d6f565b60008060008360000151600003614625576040517f5ab458fb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6020840151805160001a607f811161464a576000600160009450945094505050614a79565b60b7811161476057600061465f60808361586c565b90508087600001511161469e576040517f66c9448500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001838101517fff0000000000000000000000000000000000000000000000000000000000000016908214801561471657507f80000000000000000000000000000000000000000000000000000000000000007fff000000000000000000000000000000000000000000000000000000000000008216105b1561474d576040517fbabb01dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5060019550935060009250614a79915050565b60bf81116148be57600061477560b78361586c565b9050808760000151116147b4576040517f66c9448500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60018301517fff00000000000000000000000000000000000000000000000000000000000000166000819003614816576040517fbabb01dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600184015160088302610100031c6037811161485e576040517fbabb01dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6148688184615e58565b8951116148a1576040517f66c9448500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6148ac836001615e58565b9750955060009450614a799350505050565b60f781116149235760006148d360c08361586c565b905080876000015111614912576040517f66c9448500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600195509350849250614a79915050565b600061493060f78361586c565b90508087600001511161496f576040517f66c9448500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60018301517fff000000000000000000000000000000000000000000000000000000000000001660008190036149d1576040517fbabb01dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600184015160088302610100031c60378111614a19576040517fbabb01dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b614a238184615e58565b895111614a5c576040517f66c9448500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b614a67836001615e58565b9750955060019450614a799350505050565b9193909250565b60608167ffffffffffffffff811115614a9b57614a9b614f80565b6040519080825280601f01601f191660200182016040528015614ac5576020820181803683370190505b5090508115612f26576000614ada8486615e58565b90506020820160005b84811015614afb578281015182820152602001614ae3565b84811115614b0a576000858301525b5050509392505050565b6060611377826020015160008460000151614a80565b60608182601f011015614b99576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f736c6963655f6f766572666c6f770000000000000000000000000000000000006044820152606401611ac6565b828284011015614c05576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f736c6963655f6f766572666c6f770000000000000000000000000000000000006044820152606401611ac6565b81830184511015614c72576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f736c6963655f6f75744f66426f756e64730000000000000000000000000000006044820152606401611ac6565b606082158015614c915760405191506000825260208201604052614cf9565b6040519150601f8416801560200281840101858101878315602002848b0101015b81831015614cca578051835260209283019201614cb2565b5050858452601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016604052505b50949350505050565b60408051808201909152600080825260208201528151600003614d51576040517f5ab458fb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50604080518082019091528151815260209182019181019190915290565b60606000806000614d7f856145e2565b919450925090506001816001811115614d9a57614d9a615ca8565b14614dd1576040517f4b9c6abe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8451614ddd8385615e58565b14614e14576040517f5c5537b800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604080516020808252610420820190925290816020015b6040805180820190915260008082526020820152815260200190600190039081614e2b5790505093506000835b8651811015614f1957600080614e9e6040518060400160405280858c60000151614e82919061586c565b8152602001858c60200151614e979190615e58565b90526145e2565b509150915060405180604001604052808383614eba9190615e58565b8152602001848b60200151614ecf9190615e58565b815250888581518110614ee457614ee4615cf8565b6020908102919091010152614efa600185615e58565b9350614f068183615e58565b614f109084615e58565b92505050614e58565b50845250919392505050565b73ffffffffffffffffffffffffffffffffffffffff811681146118e357600080fd5b60008060408385031215614f5a57600080fd5b8235614f6581614f25565b91506020830135614f7581614f25565b809150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040516060810167ffffffffffffffff81118282101715614fd257614fd2614f80565b60405290565b6040805190810167ffffffffffffffff81118282101715614fd257614fd2614f80565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff8111828210171561504257615042614f80565b604052919050565b600082601f83011261505b57600080fd5b813567ffffffffffffffff81111561507557615075614f80565b6150a660207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601614ffb565b8181528460208386010111156150bb57600080fd5b816020850160208301376000918101602001919091529392505050565b600060c082840312156150ea57600080fd5b60405160c0810167ffffffffffffffff828210818311171561510e5761510e614f80565b81604052829350843583526020850135915061512982614f25565b8160208401526040850135915061513f82614f25565b816040840152606085013560608401526080850135608084015260a085013591508082111561516d57600080fd5b5061517a8582860161504a565b60a0830152505092915050565b6000806040838503121561519a57600080fd5b823567ffffffffffffffff8111156151b157600080fd5b6151bd858286016150d8565b9250506020830135614f7581614f25565b6000602082840312156151e057600080fd5b8135612f2681614f25565b6000608082840312156151fd57600080fd5b50919050565b60008083601f84011261521557600080fd5b50813567ffffffffffffffff81111561522d57600080fd5b6020830191508360208260051b850101111561524857600080fd5b9250929050565b600080600080600060e0868803121561526757600080fd5b853567ffffffffffffffff8082111561527f57600080fd5b61528b89838a016150d8565b9650602088013595506152a18960408a016151eb565b945060c08801359150808211156152b757600080fd5b506152c488828901615203565b969995985093965092949392505050565b6000602082840312156152e757600080fd5b5035919050565b60005b838110156153095781810151838201526020016152f1565b8381111561126c5750506000910152565b600081518084526153328160208601602086016152ee565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000612f26602083018461531a565b6000806040838503121561538a57600080fd5b823591506020830135614f7581614f25565b6000602082840312156153ae57600080fd5b813567ffffffffffffffff8111156153c557600080fd5b6153d1848285016150d8565b949350505050565b6000806000806000806000610120888a0312156153f557600080fd5b873567ffffffffffffffff8082111561540d57600080fd5b6154198b838c016150d8565b985060208a0135915061542b82614f25565b909650604089013595506060890135908082111561544857600080fd5b908901906060828c03121561545c57600080fd5b81955061546c8b60808c016151eb565b94506101008a013591508082111561548357600080fd5b506154908a828b01615203565b989b979a50959850939692959293505050565b67ffffffffffffffff811681146118e357600080fd5b6000602082840312156154cb57600080fd5b8135612f26816154a3565b600080604083850312156154e957600080fd5b50508035926020909101359150565b60008060006060848603121561550d57600080fd5b833561551881614f25565b9250602084013561552881614f25565b9150604084013561553881614f25565b809150509250925092565b80151581146118e357600080fd5b600080600080600060a0868803121561556957600080fd5b853561557481614f25565b945060208601359350604086013561558b816154a3565b9250606086013561559b81615543565b9150608086013567ffffffffffffffff8111156155b757600080fd5b6155c38882890161504a565b9150509295509295909350565b8581528460208201527fffffffffffffffff0000000000000000000000000000000000000000000000008460c01b16604082015282151560f81b6048820152600082516156248160498501602087016152ee565b919091016049019695505050505050565b60006020828403121561564757600080fd5b8151612f2681614f25565b63ffffffff811681146118e357600080fd5b60006020828403121561567657600080fd5b8151612f2681615652565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156156e8576156e8615681565b500290565b6000602082840312156156ff57600080fd5b8151612f2681615543565b60008060006060848603121561571f57600080fd5b835161572a81615652565b602085015190935061573b816154a3565b604085015190925061553881614f25565b60006080828403121561575e57600080fd5b6040516080810181811067ffffffffffffffff8211171561578157615781614f80565b8060405250823581526020830135602082015260408301356040820152606083013560608201528091505092915050565b600067ffffffffffffffff8211156157cc576157cc614f80565b5060051b60200190565b60006157e96157e4846157b2565b614ffb565b80848252602080830192508560051b85013681111561580757600080fd5b855b8181101561584357803567ffffffffffffffff8111156158295760008081fd5b61583536828a0161504a565b865250938201938201615809565b50919695505050505050565b60006020828403121561586157600080fd5b8151612f26816154a3565b60008282101561587e5761587e615681565b500390565b60006060823603121561589557600080fd5b61589d614faf565b82357fff00000000000000000000000000000000000000000000000000000000000000811681146158cd57600080fd5b81526020838101356158de816154a3565b8282015260408481013567ffffffffffffffff8111156158fd57600080fd5b850136601f82011261590e57600080fd5b803561591c6157e4826157b2565b81815260069190911b8201840190848101903683111561593b57600080fd5b928501925b8284101561597b578484360312156159585760008081fd5b615960614fd8565b84358152868501358782015282529284019290850190615940565b93860193909352509295945050505050565b60006020828403121561599f57600080fd5b5051919050565b600067ffffffffffffffff808316818516818304811182151516156159cd576159cd615681565b02949350505050565b600067ffffffffffffffff8083168185168083038211156159f9576159f9615681565b01949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600082615a4057615a40615a02565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83147f800000000000000000000000000000000000000000000000000000000000000083141615615a9457615a94615681565b500590565b6000808312837f800000000000000000000000000000000000000000000000000000000000000001831281151615615ad357615ad3615681565b837f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff018313811615615b0757615b07615681565b50500390565b60007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600084136000841385830485118282161615615b4e57615b4e615681565b7f80000000000000000000000000000000000000000000000000000000000000006000871286820588128184161615615b8957615b89615681565b60008712925087820587128484161615615ba557615ba5615681565b87850587128184161615615bbb57615bbb615681565b505050929093029392505050565b6000808212827f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03841381151615615c0357615c03615681565b827f8000000000000000000000000000000000000000000000000000000000000000038412811615615c3757615c37615681565b50500190565b600082615c4c57615c4c615a02565b500490565b868152600073ffffffffffffffffffffffffffffffffffffffff808816602084015280871660408401525084606083015283608083015260c060a0830152615c9c60c083018461531a565b98975050505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600060208284031215615ce957600080fd5b815160038110612f2657600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b805160ff81168114615d3857600080fd5b919050565b600060c08284031215615d4f57600080fd5b60405160c0810181811067ffffffffffffffff82111715615d7257615d72614f80565b6040528251615d8081615652565b8152615d8e60208401615d27565b6020820152615d9f60408401615d27565b60408201526060830151615db281615652565b60608201526080830151615dc581615652565b608082015260a08301516fffffffffffffffffffffffffffffffff81168114615ded57600080fd5b60a08201529392505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203615e2a57615e2a615681565b5060010190565b60008451615e438184602089016152ee565b91909101928352506020820152604001919050565b60008219821115615e6b57615e6b615681565b500190565b600060ff831680615e8357615e83615a02565b8060ff84160691505092915050565b600060ff821660ff841680821015615eac57615eac615681565b9003939250505056fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\xC0`@R4\x80\x15b\0\0\x11W`\0\x80\xFD[P`@Qb\0`(8\x03\x80b\0`(\x839\x81\x01`@\x81\x90Rb\0\x004\x91b\0\x01\x11V[`\x04`\x80R`\xA0\x81\x90Rb\0\0Hb\0\0OV[Pb\0\x01+V[`\0Ta\x01\0\x90\x04`\xFF\x16\x15b\0\0\xBCW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`'`$\x82\x01R\x7FInitializable: contract is initi`D\x82\x01Rfalizing`\xC8\x1B`d\x82\x01R`\x84\x01`@Q\x80\x91\x03\x90\xFD[`\0T`\xFF\x90\x81\x16\x10\x15b\0\x01\x0FW`\0\x80T`\xFF\x19\x16`\xFF\x90\x81\x17\x90\x91U`@Q\x90\x81R\x7F\x7F&\xB8?\xF9n\x1F+jh/\x138R\xF6y\x8A\t\xC4e\xDA\x95\x92\x14`\xCE\xFB8G@$\x98\x90` \x01`@Q\x80\x91\x03\x90\xA1[V[`\0` \x82\x84\x03\x12\x15b\0\x01$W`\0\x80\xFD[PQ\x91\x90PV[`\x80Q`\xA0Qa^\xC2b\0\x01f`\09`\0\x81\x81a\x07\x13\x01Ra\x17\x9D\x01R`\0\x81\x81a\x03\x04\x01R\x81\x81a\x1A\0\x01Ra\x1D\x02\x01Ra^\xC2`\0\xF3\xFE`\x80`@R`\x046\x10a\x028W`\x005`\xE0\x1C\x80c\x8C1R\xE9\x11a\x018W\x80c\xBB,r~\x11a\0\xB0W\x80c\xCF\xF0\xAB\x96\x11a\0\x7FW\x80c\xDA\xD5D\xE0\x11a\0dW\x80c\xDA\xD5D\xE0\x14a\x08*W\x80c\xE9\xE0\\B\x14a\x08?W\x80c\xF2\xB4\xE6\x17\x14a\x08RW`\0\x80\xFD[\x80c\xCF\xF0\xAB\x96\x14a\x07WW\x80c\xD3%\xD3\xBF\x14a\x07\xF8W`\0\x80\xFD[\x80c\xBB,r~\x14a\x06HW\x80c\xBD\xA2\x04\xBB\x14a\x06\xEFW\x80c\xBFe:\\\x14a\x07\x04W\x80c\xC0\xC5;\x8B\x14a\x077W`\0\x80\xFD[\x80c\x9B\xF6-\x82\x11a\x01\x07W\x80c\xA3]\x99\xDF\x11a\0\xECW\x80c\xA3]\x99\xDF\x14a\x05\xDBW\x80c\xA3\x86\x0FH\x14a\x05\xFBW\x80c\xB6\x82\xC4D\x14a\x06\x1BW`\0\x80\xFD[\x80c\x9B\xF6-\x82\x14a\x05~W\x80c\xA1B8\xE7\x14a\x05\xABW`\0\x80\xFD[\x80c\x8C1R\xE9\x14a\x05\tW\x80c\x8C\x90\xDDe\x14a\x05)W\x80c\x95+'\x97\x14a\x05IW\x80c\x99\xA8\x8E\xC4\x14a\x05^W`\0\x80\xFD[\x80cE\x88M2\x11a\x01\xCBW\x80cT\xFDMP\x11a\x01\x9AW\x80c\\\x97Z\xBB\x11a\x01\x7FW\x80c\\\x97Z\xBB\x14a\x04\xD4W\x80cq\xC1Vn\x14a\x04\xE9W\x80c\x8BL@\xB0\x14a\x02]W`\0\x80\xFD[\x80cT\xFDMP\x14a\x04[W\x80c\\\x0C\xBA3\x14a\x04\xA7W`\0\x80\xFD[\x80cE\x88M2\x14a\x03\xA2W\x80cHpIo\x14a\x03\xD2W\x80cO\xD0CL\x14a\x03\xF2W\x80cQ7G\xAB\x14a\x04 W`\0\x80\xFD[\x80c<\x9F9|\x11a\x02\x07W\x80c<\x9F9|\x14a\x03.W\x80c>G\x15\x8C\x14a\x03XW\x80cC\xCA\x1CP\x14a\x03mW\x80cE*\x93 \x14a\x03\x8DW`\0\x80\xFD[\x80c!R\xF2\xBE\x14a\x02dW\x80c3\xD7\xE2\xBD\x14a\x02\x84W\x80c5\xE8\n\xB3\x14a\x02\xDBW\x80c8\xD3\x8C\x97\x14a\x02\xF0W`\0\x80\xFD[6a\x02_Wa\x02]34b\x01\x86\xA0`\0`@Q\x80` \x01`@R\x80`\0\x81RPa\x08gV[\0[`\0\x80\xFD[4\x80\x15a\x02pW`\0\x80\xFD[Pa\x02]a\x02\x7F6`\x04aOGV[a\n\xB3V[4\x80\x15a\x02\x90W`\0\x80\xFD[P`7Ta\x02\xB1\x90s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[4\x80\x15a\x02\xE7W`\0\x80\xFD[Pa\x02\xB1a\x0B\xF9V[4\x80\x15a\x02\xFCW`\0\x80\xFD[P`@Q`\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x81R` \x01a\x02\xD2V[4\x80\x15a\x03:W`\0\x80\xFD[Pa\x03Ca\x0C\x92V[`@Qc\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01a\x02\xD2V[4\x80\x15a\x03dW`\0\x80\xFD[Pa\x02\xB1a\r&V[4\x80\x15a\x03yW`\0\x80\xFD[Pa\x02]a\x03\x886`\x04aQ\x87V[a\x0F1V[4\x80\x15a\x03\x99W`\0\x80\xFD[Pa\x02\xB1a\x12rV[4\x80\x15a\x03\xAEW`\0\x80\xFD[Pa\x03\xC2a\x03\xBD6`\x04aQ\xCEV[a\x12\xE2V[`@Q\x90\x15\x15\x81R` \x01a\x02\xD2V[4\x80\x15a\x03\xDEW`\0\x80\xFD[Pa\x02]a\x03\xED6`\x04aROV[a\x13}V[4\x80\x15a\x03\xFEW`\0\x80\xFD[Pa\x04\x07a\x14\xADV[`@Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01a\x02\xD2V[4\x80\x15a\x04,W`\0\x80\xFD[Pa\x04Ma\x04;6`\x04aR\xD5V[`\0\x90\x81R`<` R`@\x90 T\x90V[`@Q\x90\x81R` \x01a\x02\xD2V[4\x80\x15a\x04gW`\0\x80\xFD[P`@\x80Q\x80\x82\x01\x82R`\r\x81R\x7F5.1.0+interop\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0` \x82\x01R\x90Qa\x02\xD2\x91\x90aSdV[4\x80\x15a\x04\xB3W`\0\x80\xFD[P`>Ta\x02\xB1\x90s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[4\x80\x15a\x04\xE0W`\0\x80\xFD[Pa\x03\xC2a\x15AV[4\x80\x15a\x04\xF5W`\0\x80\xFD[Pa\x02]a\x05\x046`\x04aSwV[a\x15\xD5V[4\x80\x15a\x05\x15W`\0\x80\xFD[Pa\x02]a\x05$6`\x04aS\x9CV[a\x18\xD9V[4\x80\x15a\x055W`\0\x80\xFD[Pa\x02]a\x05D6`\x04aS\xD9V[a\x18\xE6V[4\x80\x15a\x05UW`\0\x80\xFD[Pa\x04Ma\x19jV[4\x80\x15a\x05jW`\0\x80\xFD[Pa\x02]a\x05y6`\x04aOGV[a\x19\xFEV[4\x80\x15a\x05\x8AW`\0\x80\xFD[P`2Ta\x02\xB1\x90s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[4\x80\x15a\x05\xB7W`\0\x80\xFD[Pa\x03\xC2a\x05\xC66`\x04aR\xD5V[`3` R`\0\x90\x81R`@\x90 T`\xFF\x16\x81V[4\x80\x15a\x05\xE7W`\0\x80\xFD[Pa\x04\x07a\x05\xF66`\x04aT\xB9V[a\x1B\xC0V[4\x80\x15a\x06\x07W`\0\x80\xFD[Pa\x02\xB1a\x06\x166`\x04aT\xD6V[a\x1B\xD9V[4\x80\x15a\x06'W`\0\x80\xFD[P`?Ta\x02\xB1\x90s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[4\x80\x15a\x06TW`\0\x80\xFD[Pa\x06\xBAa\x06c6`\x04aSwV[`9` \x90\x81R`\0\x92\x83R`@\x80\x84 \x90\x91R\x90\x82R\x90 Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x90t\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x82V[`@\x80Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x93\x16\x83Rg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16` \x83\x01R\x01a\x02\xD2V[4\x80\x15a\x06\xFBW`\0\x80\xFD[Pa\x02]a\x1C\x1EV[4\x80\x15a\x07\x10W`\0\x80\xFD[P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x04MV[4\x80\x15a\x07CW`\0\x80\xFD[Pa\x02]a\x07R6`\x04aT\xF8V[a\x1D\0V[4\x80\x15a\x07cW`\0\x80\xFD[P`\x01Ta\x07\xBF\x90o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x90g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFFp\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x82\x04\x81\x16\x91x\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04\x16\x83V[`@\x80Qo\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x94\x16\x84Rg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x92\x83\x16` \x85\x01R\x91\x16\x90\x82\x01R``\x01a\x02\xD2V[4\x80\x15a\x08\x04W`\0\x80\xFD[P`?Ta\x03\xC2\x90t\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16\x81V[4\x80\x15a\x086W`\0\x80\xFD[Pa\x02\xB1a\x1E\xFDV[a\x02]a\x08M6`\x04aUQV[a\x08gV[4\x80\x15a\x08^W`\0\x80\xFD[Pa\x02\xB1a\x1FQV[\x82`\0Z\x90P4\x15a\x08\xF7W`?`\0\x90T\x90a\x01\0\n\x90\x04s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\x1E\xE1\x16\xBF4`@Q\x82c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01`\0`@Q\x80\x83\x03\x81\x85\x88\x80;\x15\x80\x15a\x08\xDDW`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x08\xF1W=`\0\x80>=`\0\xFD[PPPPP[\x83\x80\x15a\t\x19WPs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x16\x15\x15[\x15a\tPW`@Q\x7F\xC5\xDE\xFB\xAD\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\x01`@Q\x80\x91\x03\x90\xFD[a\tZ\x83Qa\x1B\xC0V[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x85g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x10\x15a\t\xA7W`@Q\x7Fp\xC8\xBD\xBD\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\x01`@Q\x80\x91\x03\x90\xFD[b\x01\xD4\xC0\x83Q\x11\x15a\t\xE5W`@Q\x7FZ\xA3\xBA\xC9\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\x01`@Q\x80\x91\x03\x90\xFD[3a\t\xEEa\x1F\xC1V[a\n\x0BWP3s\x11\x11\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x11\x11\x01[`\x004\x88\x88\x88\x88`@Q` \x01a\n&\x95\x94\x93\x92\x91\x90aU\xD0V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x90P`\0\x89s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x83s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xB3\x815h\xD9\x99\x1F\xC9Q\x96\x1F\xCBLxH\x93WB@\xA2\x89%`M\t\xFCW|U\xBB|2\x84`@Qa\n\x96\x91\x90aSdV[`@Q\x80\x91\x03\x90\xA4PPa\n\xAA\x82\x82a\x1F\xFFV[PPPPPPPV[a\n\xBBa\"\xD6V[a\n\xC3a#\x15V[`>Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x83\x16\x91\x16\x03a\x0B\x17W`@Q\x7Fx]\xF9\x11\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\x01`@Q\x80\x91\x03\x90\xFD[`?\x80T`>\x80Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x85\x81\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x83\x16\x81\x17\x90\x93U\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x84\x16\x87\x82\x16\x90\x81\x17t\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x17\x90\x95U`@\x80Q\x94\x82\x16\x80\x86R` \x86\x01\x96\x90\x96R\x91\x16\x90\x83\x01\x81\x90R``\x83\x01\x91\x90\x91R\x90\x7F\x9EShG\x1AX\xD8\x19\x87\xE5\xDC}ct\xDD^\xD5\xE7V\xCC\x95\xA7\x9F\xF7&\x904#\xBC\xE0\x06\r\x90`\x80\x01[`@Q\x80\x91\x03\x90\xA1PPPPV[`7T`@\x80Q\x7F5\xE8\n\xB3\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\x90Q`\0\x92s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x91c5\xE8\n\xB3\x91`\x04\x80\x83\x01\x92` \x92\x91\x90\x82\x90\x03\x01\x81\x86Z\xFA\x15\x80\x15a\x0CiW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x0C\x8D\x91\x90aV5V[\x90P\x90V[`>T`@\x80Q\x7F<\x9F9|\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\x90Q`\0\x92s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x91c<\x9F9|\x91`\x04\x80\x83\x01\x92` \x92\x91\x90\x82\x90\x03\x01\x81\x86Z\xFA\x15\x80\x15a\r\x02W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x0C\x8D\x91\x90aVdV[`\0\x80a\rQ\x7F\xB51'hJV\x8B1s\xAE\x13\xB9\xF8\xA6\x01n$>c\xB6\xE8\xEE\x11x\xD6\xA7\x17\x85\x0B]a\x03T\x90V[\x90Ps\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x15a\rtW\x91\x90PV[`@Q\x80`@\x01`@R\x80`\x1A\x81R` \x01\x7FOVM_L1CrossDomainMessenger\0\0\0\0\0\0\x81RPQ`\x02a\r\xB7\x91\x90aV\xB0V[`@\x80Q0` \x82\x01R`\0\x91\x81\x01\x91\x90\x91R\x7FOVM_L1CrossDomainMessenger\0\0\0\0\0\0\x91\x90\x91\x17\x90a\x0E\x12\x90``\x01[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 T\x90V[\x14a\x0EIW`@Q\x7FT\xE43\xCD\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\x01`@Q\x80\x91\x03\x90\xFD[`@\x80Q0` \x82\x01R`\x01\x91\x81\x01\x91\x90\x91R`\0\x90a\x0Ek\x90``\x01a\r\xF8V[\x90Ps\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x15a\x0E\xFFW\x80s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\x8D\xA5\xCB[`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x0E\xD4W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x0E\xF8\x91\x90aV5V[\x92PPP\x90V[`@Q\x7F3!D\xDB\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\x01`@Q\x80\x91\x03\x90\xFD[a\x0F9a\"\xD6V[`2Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a\xDE\xAD\x14a\x0F\x8CW`@Q\x7F\xDF\xEA\xAE\xB8\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\x01`@Q\x80\x91\x03\x90\xFD[a\x0F\x99\x82`@\x01Qa#kV[\x15a\x0F\xD0W`@Q\x7F\xC5\xDE\xFB\xAD\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\x01`@Q\x80\x91\x03\x90\xFD[`\0a\x0F\xDB\x83a#\xAEV[\x90Pa\x0F\xE7\x81\x83a\x15\xD5V[`\0\x81\x81R`3` R`@\x90 \x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x16`\x01\x17\x90U``\x83\x01Q\x15a\x10\xB8W`?T``\x84\x01Q`@Q\x7F\x8DD[\xD0\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\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x92\x16\x91c\x8DD[\xD0\x91a\x10\x85\x91`\x04\x01\x90\x81R` \x01\x90V[`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a\x10\x9FW`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x10\xB3W=`\0\x80>=`\0\xFD[PPPP[\x82` \x01Q`2`\0a\x01\0\n\x81T\x81s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x02\x19\x16\x90\x83s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x02\x17\x90UP`\0a\x11\x1B\x84`@\x01Q\x85`\x80\x01Q\x86``\x01Q\x87`\xA0\x01Qa#\xFBV[`2\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16a\xDE\xAD\x17\x90U`@Q\x90\x91P\x82\x90\x7F\xDB\\vR\x85z\xA1c\xDA\xAD\xD6p\xE1\x16b\x8F\xB4.\x86\x9D\x8A\xC4%\x1E\xF8\x97\x1D\x9EW'\xDF\x1B\x90a\x11\x80\x90\x84\x15\x15\x81R` \x01\x90V[`@Q\x80\x91\x03\x90\xA2\x80\x15\x80\x15a\x11\x9AWP`\0\x84``\x01Q\x11[\x15a\x12'W`?`\0\x90T\x90a\x01\0\n\x90\x04s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\x1E\xE1\x16\xBF\x85``\x01Q`@Q\x82c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01`\0`@Q\x80\x83\x03\x81\x85\x88\x80;\x15\x80\x15a\x12\rW`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x12!W=`\0\x80>=`\0\xFD[PPPPP[\x80\x15\x80\x15a\x125WP2`\x01\x14[\x15a\x12lW`@Q\x7F\xABX\x106\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\x01`@Q\x80\x91\x03\x90\xFD[PPPPV[`7T`@\x80Q\x7FE*\x93 \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\x90Q`\0\x92s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x91cE*\x93 \x91`\x04\x80\x83\x01\x92` \x92\x91\x90\x82\x90\x03\x01\x81\x86Z\xFA\x15\x80\x15a\x0CiW=`\0\x80>=`\0\xFD[`>T`@Q\x7FE\x88M2\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\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x81\x16`\x04\x83\x01R`\0\x92\x16\x90cE\x88M2\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x13SW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x13w\x91\x90aV\xEDV[\x92\x91PPV[a\x13\x85a\"\xD6V[`?Tt\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16\x15a\x13\xDAW`@Q\x7F^t\xB5B\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\x01`@Q\x80\x91\x03\x90\xFD[`\0a\x13\xE4a\x1FQV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xBB\x8A\xA1\xFC\x86`@Q\x82c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01a\x14\x1E\x91\x81R` \x01\x90V[```@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x14;W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x14_\x91\x90aW\nV[`@\x80Q``\x80\x82\x01\x83R`\0\x80\x83R` \x83\x01R\x91\x81\x01\x91\x90\x91R\x90\x93P\x91Pa\x14\x87\x90PV[a\n\xAA\x87\x83`\0\x84a\x14\x9E6\x8B\x90\x03\x8B\x01\x8BaWLV[a\x14\xA8\x89\x8BaW\xD6V[a$YV[`>T`@\x80Q\x7F@\x86\xD1\x83\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\x90Q`\0\x92s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x91c@\x86\xD1\x83\x91`\x04\x80\x83\x01\x92` \x92\x91\x90\x82\x90\x03\x01\x81\x86Z\xFA\x15\x80\x15a\x15\x1DW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x0C\x8D\x91\x90aXOV[`7T`@\x80Q\x7F\\\x97Z\xBB\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\x90Q`\0\x92s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x91c\\\x97Z\xBB\x91`\x04\x80\x83\x01\x92` \x92\x91\x90\x82\x90\x03\x01\x81\x86Z\xFA\x15\x80\x15a\x15\xB1W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x0C\x8D\x91\x90aV\xEDV[`\0\x82\x81R`9` \x90\x81R`@\x80\x83 s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x85\x81\x16\x85R\x90\x83R\x81\x84 \x82Q\x80\x84\x01\x84R\x90T\x91\x82\x16\x80\x82Rt\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x92\x04g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81\x85\x01R\x86\x85R`3\x90\x93R\x92 T\x90\x91\x90`\xFF\x16\x15a\x16\x84W`@Q\x7Fs\n\x10t\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\x01`@Q\x80\x91\x03\x90\xFD[\x81` \x01Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\0\x03a\x16\xCCW`@Q\x7F\xCC\xA6\xAF\xDA\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\x01`@Q\x80\x91\x03\x90\xFD[a\x17K\x81s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xCF\t\xE0\xD0`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x17\x1AW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x17>\x91\x90aXOV[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90V[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x82` \x01Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x11a\x17\x9BW`@Q\x7F\xB4\xCA\xA4\xE5\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\x01`@Q\x80\x91\x03\x90\xFD[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x82` \x01Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16Ba\x17\xD6\x91\x90aXlV[\x11a\x18\rW`@Q\x7F\xD9\xBC\x01\xBE\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\x01`@Q\x80\x91\x03\x90\xFD[`>T`@Q\x7FlODg\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\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x81\x16`\x04\x83\x01R\x90\x91\x16\x90clODg\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x18}W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x18\xA1\x91\x90aV\xEDV[a\x12lW`@Q\x7F3*W\xF8\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\x01`@Q\x80\x91\x03\x90\xFD[V[a\x18\xE3\x813a\x0F1V[PV[a\x18\xEEa\"\xD6V[`?Tt\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16a\x19BW`@Q\x7F^t\xB5B\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\x01`@Q\x80\x91\x03\x90\xFD[a\n\xAA\x87\x87\x87a\x19Q\x88aX\x83V[a\x19`6\x89\x90\x03\x89\x01\x89aWLV[a\x14\xA8\x87\x89aW\xD6V[`>T`@\x80Q\x7F\x95+'\x97\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\x90Q`\0\x92s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x91c\x95+'\x97\x91`\x04\x80\x83\x01\x92` \x92\x91\x90\x82\x90\x03\x01\x81\x86Z\xFA\x15\x80\x15a\x19\xDAW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x0C\x8D\x91\x90aY\x8DV[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\0Ta\x01\0\x90\x04`\xFF\x16\x15\x80\x15a\x1A>WP`\0T`\xFF\x80\x83\x16\x91\x16\x10[a\x1A\xCFW`@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\x82\x01R`.`$\x82\x01R\x7FInitializable: contract is alrea`D\x82\x01R\x7Fdy initialized\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01[`@Q\x80\x91\x03\x90\xFD[`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\x16`\xFF\x83\x16\x17a\x01\0\x17\x90Ua\x1B\x08a,\xB4V[`>\x80Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x85\x81\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x92\x83\x16\x17\x90\x92U`?\x80T\x92\x85\x16\x92\x90\x91\x16\x91\x90\x91\x17\x90U`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\x16\x90U`@Q`\xFF\x82\x16\x81R\x7F\x7F&\xB8?\xF9n\x1F+jh/\x138R\xF6y\x8A\t\xC4e\xDA\x95\x92\x14`\xCE\xFB8G@$\x98\x90` \x01`@Q\x80\x91\x03\x90\xA1PPPV[`\0a\x1B\xCD\x82`(aY\xA6V[a\x13w\x90aR\x08aY\xD6V[`<` R\x81`\0R`@`\0 \x81\x81T\x81\x10a\x1B\xF5W`\0\x80\xFD[`\0\x91\x82R` \x90\x91 \x01Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x91P\x82\x90PV[a\x1C&a#\x15V[`?T`@\x80Q\x7F\x1E\xE1\x16\xBF\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\x90QG\x92s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x91c\x1E\xE1\x16\xBF\x91\x84\x91`\x04\x80\x82\x01\x92`\0\x92\x90\x91\x90\x82\x90\x03\x01\x81\x85\x88\x80;\x15\x80\x15a\x1C\x94W`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x1C\xA8W=`\0\x80>=`\0\xFD[PP`?T`@Q\x85\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x93P\x7F\xD8\x93\xF60\xC6\x86\x7F\xA46\x89\xDA\x9A\xE9I\xEB\xF0L\xAC$\xAA\xD3\xB4\\u\x9DD.\xD3\xC3.:7\x92P` \x01\x90P`@Q\x80\x91\x03\x90\xA2PV[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\0Ta\x01\0\x90\x04`\xFF\x16\x15\x80\x15a\x1D@WP`\0T`\xFF\x80\x83\x16\x91\x16\x10[a\x1D\xCCW`@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\x82\x01R`.`$\x82\x01R\x7FInitializable: contract is alrea`D\x82\x01R\x7Fdy initialized\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x1A\xC6V[`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\x16`\xFF\x83\x16\x17a\x01\0\x17\x90Ua\x1E\x05a,\xB4V[`7\x80Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x87\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x92\x83\x16\x17\x90\x92U`>\x80T\x86\x84\x16\x90\x83\x16\x17\x90U`?\x80T\x85\x84\x16\x92\x16\x91\x90\x91\x17\x90U`2T\x16a\x1E\x9AW`2\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16a\xDE\xAD\x17\x90U[a\x1E\xA2a-5V[`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\x16\x90U`@Q`\xFF\x82\x16\x81R\x7F\x7F&\xB8?\xF9n\x1F+jh/\x138R\xF6y\x8A\t\xC4e\xDA\x95\x92\x14`\xCE\xFB8G@$\x98\x90` \x01a\x0B\xEBV[`\0a\x1F\x07a\r&V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\x8D\xA5\xCB[`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x0CiW=`\0\x80>=`\0\xFD[`>T`@\x80Q\x7F\xF2\xB4\xE6\x17\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\x90Q`\0\x92s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x91c\xF2\xB4\xE6\x17\x91`\x04\x80\x83\x01\x92` \x92\x91\x90\x82\x90\x03\x01\x81\x86Z\xFA\x15\x80\x15a\x0CiW=`\0\x80>=`\0\xFD[`\x0023\x03a\x1F\xD0WP`\x01\x90V[3;`\x17\x03a\x1F\xF8W`@Q` \x81\x01`@R` `\0\x823T`@Q\x7FIk\x9C\x16\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\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x81\x16`\x04\x83\x01R\x90\x91\x16\x90cIk\x9C\x16\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a%\rW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a%1\x91\x90aV\xEDV[a%gW`@Q\x7F\xF3\x95$\x0E\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\x01`@Q\x80\x91\x03\x90\xFD[`>T`@Q\x7F\x04\xE5\x0F\xED\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\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x81\x16`\x04\x83\x01R\x90\x91\x16\x90c\x04\xE5\x0F\xED\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a%\xD7W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a%\xFB\x91\x90aV\xEDV[a&1W`@Q\x7F\xE2\x99'\xED\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01\x85s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c \r.\xD2`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a&~W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a&\xA2\x91\x90a\\\xD7V[`\x02\x81\x11\x15a&\xB3Wa&\xB3a\\\xA8V[\x03a&\xEAW`@Q\x7F\xE2\x99'\xED\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\x01`@Q\x80\x91\x03\x90\xFD[a'8\x85s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xCF\t\xE0\xD0`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x17\x1AW=`\0\x80>=`\0\xFD[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16B\x11a'zW`@Q\x7F\xB4\xCA\xA4\xE5\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\x01`@Q\x80\x91\x03\x90\xFD[`?Tt\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16\x15a)\xC4Wa'\xA6\x83a/\xE5V[a(\x18\x86s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xBC\xEF;U`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a'\xF4W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x1F\xFC\x91\x90aY\x8DV[\x14a(OW`@Q\x7F+\x1A\x9Af\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\x01`@Q\x80\x91\x03\x90\xFD[\x82`@\x01QQ\x84\x10a(\x8DW`@Q\x7F2\xDC(\\\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\x01`@Q\x80\x91\x03\x90\xFD[`\0\x83`@\x01Q\x85\x81Q\x81\x10a(\xA5Wa(\xA5a\\\xF8V[` \x02` \x01\x01Q\x90P`7`\0\x90T\x90a\x01\0\n\x90\x04s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xD6\xAE<\xD5`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a)\x1CW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a)@\x91\x90aY\x8DV[\x81Q\x14a)yW`@Q\x7F|\xC2\xF3\x1B\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\x01`@Q\x80\x91\x03\x90\xFD[a)\x82\x83a/\xFEV[\x81` \x01Q\x14a)\xBEW`@Q\x7FBaI\xAF\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\x01`@Q\x80\x91\x03\x90\xFD[Pa*RV[a)\xCD\x82a/\xFEV[a*\x1B\x86s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xBC\xEF;U`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a'\xF4W=`\0\x80>=`\0\xFD[\x14a*RW`@Q\x7FBaI\xAF\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\x01`@Q\x80\x91\x03\x90\xFD[`\0a*]\x87a#\xAEV[\x90P`\0\x81`\0`@Q` \x01a*~\x92\x91\x90\x91\x82R` \x82\x01R`@\x01\x90V[`@\x80Q\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x81\x84\x03\x01\x81R\x82\x82R\x80Q` \x91\x82\x01 \x90\x83\x01\x81\x90R\x92Pa+)\x91\x01`@\x80Q\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x81\x84\x03\x01\x81R\x82\x82\x01\x82R`\x01\x83R\x7F\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0` \x84\x01R\x90\x87\x01Q\x90\x91\x90\x86\x90a0=V[\x15\x15`\0\x03a+dW`@Q\x7F.W\xEF:\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\x01`@Q\x80\x91\x03\x90\xFD[`@\x80Q\x80\x82\x01\x82Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x8A\x16\x82Rg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFFB\x81\x16` \x80\x85\x01\x91\x82R`\0\x88\x81R`9\x82R\x86\x81 3\x80\x83R\x90\x83R\x87\x82 \x96Q\x87T\x94Q\x90\x95\x16t\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x02\x7F\xFF\xFF\xFF\xFF\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\x90\x94\x16\x94\x86\x16\x94\x90\x94\x17\x92\x90\x92\x17\x90\x94U\x86\x81R`<\x84R\x84\x81 \x80T`\x01\x81\x01\x82U\x90\x82R\x84\x82 \x01\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x90\x92\x17\x90\x91U\x8B\x84\x01Q\x92\x8C\x01Q\x93Q\x92\x82\x16\x93\x90\x91\x16\x91\x85\x91\x7Fg\xA6 \x8C\xFC\xC0\x80\x1DP\xF6\xCB\xE7ds?O\xDD\xF6j\xC0\xB0DB\x06\x1A\x8A\x8C\x0C\xB6\xB6?b\x91\xA4`@Q3\x90\x83\x90\x7Fy\x8F\x9F\x13i_\x8F\x04Z\xA5\xF8\x0E\xD8\xEF\xEB\xB6\x95\xF3\xC7\xFEe\xDA8\x19i\xF2\xF2\x8B\xF3\xC6\x0B\x97\x90`\0\x90\xA3PPPPPPPPV[3a,\xBDa\r&V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14\x15\x80\x15a,\xFEWP3a,\xE5a\x1E\xFDV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14\x15[\x15a\x18\xD7W`@Q\x7F\xC4\x05\n&\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\x01`@Q\x80\x91\x03\x90\xFD[`\0Ta\x01\0\x90\x04`\xFF\x16a-\xCCW`@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\x82\x01R`+`$\x82\x01R\x7FInitializable: contract is not i`D\x82\x01R\x7Fnitializing\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x1A\xC6V[`\x01Tx\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\0\x03a\x18\xD7W`@\x80Q``\x81\x01\x82Rc;\x9A\xCA\0\x80\x82R`\0` \x83\x01RCg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x91\x90\x92\x01\x81\x90Rx\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x02\x17`\x01UV[`@\x80Q`\xC0\x81\x01\x82R`\0\x80\x82R` \x82\x01\x81\x90R\x91\x81\x01\x82\x90R``\x81\x01\x82\x90R`\x80\x81\x01\x82\x90R`\xA0\x81\x01\x91\x90\x91R`7T`@\x80Q\x7F\xCCs\x1B\x02\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\x90Q`\0\x92s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x91c\xCCs\x1B\x02\x91`\x04\x80\x83\x01\x92`\xC0\x92\x91\x90\x82\x90\x03\x01\x81\x86Z\xFA\x15\x80\x15a.\xEAW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x13w\x91\x90a]=V[`\0a/#a/\x1D\x85\x85a0aV[\x83a0qV[\x90P[\x93\x92PPPV[`\0g\r\xE0\xB6\xB3\xA7d\0\0a/na/E\x85\x83aZ1V[a/W\x90g\r\xE0\xB6\xB3\xA7d\0\0aZ\x99V[a/i\x85g\r\xE0\xB6\xB3\xA7d\0\0a[\rV[a0\x80V[a/x\x90\x86a[\rV[a/#\x91\x90aZ1V[`\0\x81\x83\x10\x15a/\x92W\x81a/&V[P\x90\x91\x90PV[`\0\x80Z\x90P[\x82Za/\xAC\x90\x83aXlV[\x10\x15a/\xC2Wa/\xBB\x82a]\xF9V[\x91Pa/\xA0V[PPPV[`\0\x80`?\x83a\x9C@\x01\x02`@\x85\x02\x01`?Z\x02\x10\x15\x94\x93PPPPV[`\0a/\xF0\x82a0\xB1V[\x80Q\x90` \x01 \x90P\x91\x90PV[`\0\x81`\0\x01Q\x82` \x01Q\x83`@\x01Q\x84``\x01Q`@Q` \x01a#\xDE\x94\x93\x92\x91\x90\x93\x84R` \x84\x01\x92\x90\x92R`@\x83\x01R``\x82\x01R`\x80\x01\x90V[`\0\x80a0I\x86a2gV[\x90Pa0W\x81\x86\x86\x86a2\x99V[\x96\x95PPPPPPV[`\0\x81\x83\x12\x15a/\x92W\x81a/&V[`\0\x81\x83\x12a/\x92W\x81a/&V[`\0a/&g\r\xE0\xB6\xB3\xA7d\0\0\x83a0\x98\x86a2\xC9V[a0\xA2\x91\x90a[\rV[a0\xAC\x91\x90aZ1V[a5\rV[\x80Q``\x90\x7F\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x7F\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x14a10W`@Q\x7F\xC0kR8\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\x01`@Q\x80\x91\x03\x90\xFD[\x81`@\x01QQ`\0\x03a1oW`@Q\x7F\x91\x03\xE7\xCD\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\x01`@Q\x80\x91\x03\x90\xFD[`\0\x82`\0\x01Q\x83` \x01Q`\xC0\x1B`@Q` \x01a1\xDE\x92\x91\x90\x7F\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x92\x90\x92\x16\x82R\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16`\x01\x82\x01R`\t\x01\x90V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x90P`\0[\x83`@\x01QQ\x81\x10\x15a2`W`\0\x84`@\x01Q\x82\x81Q\x81\x10a2\x17Wa2\x17a\\\xF8V[` \x90\x81\x02\x91\x90\x91\x01\x81\x01Q\x80Q\x81\x83\x01Q`@Q\x92\x94Pa2;\x93\x87\x93\x01a^1V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x92PP\x80\x80a2X\x90a]\xF9V[\x91PPa1\xF2V[P\x92\x91PPV[``\x81\x80Q\x90` \x01 `@Q` \x01a2\x83\x91\x81R` \x01\x90V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x90P\x91\x90PV[`\0a2\xC0\x84a2\xAA\x87\x86\x86a7LV[\x80Q` \x91\x82\x01 \x82Q\x92\x90\x91\x01\x91\x90\x91 \x14\x90V[\x95\x94PPPPPV[`\0\x80\x82\x13a34W`@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\x82\x01R`\t`$\x82\x01R\x7FUNDEFINED\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`D\x82\x01R`d\x01a\x1A\xC6V[`\0``a3A\x84aA\xCAV[\x03`\x9F\x81\x81\x03\x94\x90\x94\x1B\x90\x93\x1ClFWr\xB2\xBB\xBB_\x82K\x15 z0\x81\x01\x81\x02``\x90\x81\x1Dm\x03\x88\xEA\xA2t\x12\xD5\xAC\xA0&\x81]cn\x01\x82\x02\x81\x1Dm\r\xF9\x9A\xC5\x02\x03\x1B\xF9S\xEF\xF4r\xFD\xCC\x01\x82\x02\x81\x1Dm\x13\xCD\xFF\xB2\x9DQ\xD9\x93\"\xBD\xFF_\"\x11\x01\x82\x02\x81\x1Dm\n\x0Ft #\xDE\xF7\x83\xA3\x07\xA9\x86\x91.\x01\x82\x02\x81\x1Dm\x01\x92\r\x80C\xCA\x89\xB5#\x92S(NB\x01\x82\x02\x81\x1Dl\x0Bz\x86\xD77Th\xFA\xC6g\xA0\xA5'\x01l)P\x8EE\x85C\xD8\xAAM\xF2\xAB\xEEx\x83\x01\x83\x02\x82\x1Dm\x019`\x1A.\xFA\xBEq~`L\xBBH\x94\x01\x83\x02\x82\x1Dm\x02$\x7Fz{e\x942\x06I\xAA\x03\xAB\xA1\x01\x83\x02\x82\x1D\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFFs\xC0\xC7\x16\xA5\x94\xE0\rT\xE3\xC4\xCB\xC9\x01\x83\x02\x82\x1D\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFD\xC7\xB8\x8CB\x0ES\xA9\x89\x053\x12\x9Fo\x01\x83\x02\x90\x91\x1D\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFFF_\xDA'\xEBMc\xDE\xD4t\xE5\xF82\x01\x90\x91\x02\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF5\xF6\xAF\x8F{3\x96dO\x18\xE1W\x96\0\0\0\0\0\0\0\0\0\0\0\0\x01\x05q\x13@\xDA\xA0\xD5\xF7i\xDB\xA1\x91\\\xEFY\xF0\x81ZU\x06\x02}\x02g\xA3l\x0C\x95\xB3\x97Z\xB3\xEE[ :v\x14\xA3\xF7Ss\xF0G\xD8\x03\xAE{f\x87\xF2\xB3\x93\x90\x93\x02\x92\x90\x92\x01}W\x11^G\x01\x8Cqw\xEE\xBF|\xD3p\xA35j\x1Bxc\0\x8AZ\xE8\x02\x8Cr\xB8\x86B\x84\x01`\xAE\x1D\x92\x91PPV[`\0\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFD\xB71\xC9X\xF3M\x94\xC1\x82\x13a5>WP`\0\x91\x90PV[h\x07U\xBFy\x8BJ\x1B\xF1\xE5\x82\x12a5\xB0W`@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\x82\x01R`\x0C`$\x82\x01R\x7FEXP_OVERFLOW\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`D\x82\x01R`d\x01a\x1A\xC6V[e\x03x-\xAC\xE9\xD9`N\x83\x90\x1B\x05\x91P`\0``k\xB1r\x17\xF7\xD1\xCFy\xAB\xC9\xE3\xB3\x98\x84\x82\x1B\x05k\x80\0\0\0\0\0\0\0\0\0\0\0\x01\x90\x1Dk\xB1r\x17\xF7\xD1\xCFy\xAB\xC9\xE3\xB3\x98\x81\x02\x90\x93\x03\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xDB\xF3\xCC\xF1`M&4P\xF0*U\x04\x81\x01\x81\x02``\x90\x81\x1Dm\x02wYI\x91\xCF\xC8_n$a\x83|\xD9\x01\x82\x02\x81\x1D\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE5\xAD\xED\xAA\x1C\xB0\x95\xAF\x9EM\xA1\x0E6<\x01\x82\x02\x81\x1Dm\xB1\xBB\xB2\x01\xF4C\xCF\x96/\x1A\x1D=\xB4\xA5\x01\x82\x02\x81\x1D\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFD8\xDCw&\x08\xB0\xAEV\xCC\xE0\x12\x96\xC0\xEB\x01\x82\x02\x81\x1Dn\x05\x18\x0B\xB1G\x99\xABG\xA8\xA8\xCB*R}W\x01m\x02\xD1g W{\xD1\x9B\xF6\x14\x17o\xE9\xEAl\x10\xFEh\xE7\xFD7\xD0\0{q?vP\x84\x01\x84\x02\x83\x1D\x90\x81\x01\x90\x84\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE,i\x81,\xF0;\x07c\xFDEJ\x8F~\x01\x02\x90\x91\x1Dn\x05\x87\xF5\x03\xBBn\xA2\x9D%\xFC\xB7@\x19dP\x01\x90\x91\x02y\xD85\xEB\xBA\x82L\x98\xFB1\xB8;,\xA4\\\0\0\0\0\0\0\0\0\0\0\0\0\x01\x05t\x02\x9D\x9D\xC3\x85c\xC3.\\/m\xC1\x92\xEEp\xEFe\xF9\x97\x8A\xF3\x02`\xC3\x93\x90\x93\x03\x92\x90\x92\x1C\x92\x91PPV[```\0\x84Q\x11a7\xB9W`@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\x82\x01R`\x15`$\x82\x01R\x7FMerkleTrie: empty key\0\0\0\0\0\0\0\0\0\0\0`D\x82\x01R`d\x01a\x1A\xC6V[`\0a7\xC4\x84aB\xA0V[\x90P`\0a7\xD1\x86aC\x8CV[\x90P`\0\x84`@Q` \x01a7\xE8\x91\x81R` \x01\x90V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x90P`\0\x80[\x84Q\x81\x10\x15aAAW`\0\x85\x82\x81Q\x81\x10a8\x1AWa8\x1Aa\\\xF8V[` \x02` \x01\x01Q\x90P\x84Q\x83\x11\x15a8\xB5W`@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\x82\x01R`.`$\x82\x01R\x7FMerkleTrie: key index exceeds to`D\x82\x01R\x7Ftal key length\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x1A\xC6V[\x82`\0\x03a9nW\x80Q\x80Q` \x91\x82\x01 `@Qa9\x03\x92a8\xDD\x92\x91\x01\x90\x81R` \x01\x90V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x85\x80Q` \x91\x82\x01 \x82Q\x92\x90\x91\x01\x91\x90\x91 \x14\x90V[a9iW`@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\x82\x01R`\x1D`$\x82\x01R\x7FMerkleTrie: invalid root hash\0\0\0`D\x82\x01R`d\x01a\x1A\xC6V[a:\xC5V[\x80QQ` \x11a:$W\x80Q\x80Q` \x91\x82\x01 `@Qa9\x98\x92a8\xDD\x92\x91\x01\x90\x81R` \x01\x90V[a9iW`@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\x82\x01R`'`$\x82\x01R\x7FMerkleTrie: invalid large intern`D\x82\x01R\x7Fal hash\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`d\x82\x01R`\x84\x01a\x1A\xC6V[\x80Q\x84Q` \x80\x87\x01\x91\x90\x91 \x82Q\x91\x90\x92\x01 \x14a:\xC5W`@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\x82\x01R`&`$\x82\x01R\x7FMerkleTrie: invalid internal nod`D\x82\x01R\x7Fe hash\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`d\x82\x01R`\x84\x01a\x1A\xC6V[a:\xD1`\x10`\x01a^XV[\x81` \x01QQ\x03a<\xADW\x84Q\x83\x03agW`@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\x82\x01R`=`$\x82\x01R\x7FMerkleTrie: key remainder must b`D\x82\x01R\x7Fe identical to path remainder\0\0\0`d\x82\x01R`\x84\x01a\x1A\xC6V[a>\x81\x87` \x01Q`\x01\x81Q\x81\x10a:\xFEWa:\xFEa\\\xF8V[\x9CP`\0\x8DQ\x11a?\x14W`@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\x82\x01R`9`$\x82\x01R\x7FMerkleTrie: value length must be`D\x82\x01R\x7F greater than zero (leaf)\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x1A\xC6V[`\x01\x8CQa?\"\x91\x90aXlV[\x88\x14a?\xB0W`@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\x82\x01R`8`$\x82\x01R\x7FMerkleTrie: value node must be l`D\x82\x01R\x7Fast node in proof (leaf)\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x1A\xC6V[PPPPPPPPPPPPa/&V[`\xFF\x85\x16\x15\x80a?\xD4WP`\xFF\x85\x16`\x01\x14[\x15a@\x13Wa@\0\x87` \x01Q`\x01\x81Q\x81\x10a?\xF3Wa?\xF3a\\\xF8V[` \x02` \x01\x01QaD\xA3V[\x99Pa@\x0C\x81\x8Aa^XV[\x98Pa@\x9BV[`@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\x82\x01R`2`$\x82\x01R\x7FMerkleTrie: received a node with`D\x82\x01R\x7F an unknown prefix\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x1A\xC6V[PPPPPPaA.V[`@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\x82\x01R`(`$\x82\x01R\x7FMerkleTrie: received an unparsea`D\x82\x01R\x7Fble node\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x1A\xC6V[P\x80aA9\x81a]\xF9V[\x91PPa7\xFDV[P`@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\x82\x01R`%`$\x82\x01R\x7FMerkleTrie: ran out of proof ele`D\x82\x01R\x7Fments\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`d\x82\x01R`\x84\x01a\x1A\xC6V[`\0\x80\x82\x11aB5W`@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\x82\x01R`\t`$\x82\x01R\x7FUNDEFINED\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`D\x82\x01R`d\x01a\x1A\xC6V[P`\x01o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11`\x07\x1B\x82\x81\x1Cg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x10`\x06\x1B\x17\x82\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x82\x81\x1Ca\xFF\xFF\x10`\x04\x1B\x17\x82\x81\x1C`\xFF\x10`\x03\x90\x81\x1B\x90\x91\x17\x83\x81\x1C`\x0F\x10`\x02\x1B\x17\x83\x81\x1C\x90\x91\x10\x82\x1B\x17\x91\x82\x1C\x11\x17\x90V[\x80Q``\x90\x80g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15aB\xBEWaB\xBEaO\x80V[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15aC\x03W\x81` \x01[`@\x80Q\x80\x82\x01\x90\x91R``\x80\x82R` \x82\x01R\x81R` \x01\x90`\x01\x90\x03\x90\x81aB\xDCW\x90P[P\x91P`\0[\x81\x81\x10\x15aC\x85W`@Q\x80`@\x01`@R\x80\x85\x83\x81Q\x81\x10aC.WaC.a\\\xF8V[` \x02` \x01\x01Q\x81R` \x01aC]\x86\x84\x81Q\x81\x10aCPWaCPa\\\xF8V[` \x02` \x01\x01QaE\xCFV[\x81RP\x83\x82\x81Q\x81\x10aCrWaCra\\\xF8V[` \x90\x81\x02\x91\x90\x91\x01\x01R`\x01\x01aC\tV[PP\x91\x90PV[``\x80`@Q\x90P\x82Q\x80`\x01\x1B`?\x81\x01`\x1F\x19\x16\x83\x01`@R\x80\x83RP` \x84\x01` \x83\x01`\0[\x83\x81\x10\x15aC\xE4W\x80`\x01\x1B\x82\x01\x81\x84\x01Q`\0\x1A\x80`\x04\x1C\x82S`\x0F\x81\x16`\x01\x83\x01SPP`\x01\x01aC\xB6V[P\x92\x95\x94PPPPPV[```\0\x80`\0aC\xFF\x85aE\xE2V[\x91\x94P\x92P\x90P`\0\x81`\x01\x81\x11\x15aD\x1AWaD\x1Aa\\\xA8V[\x14aDQW`@Q\x7F\x1F\xF9\xB2\xE4\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\x01`@Q\x80\x91\x03\x90\xFD[aD[\x82\x84a^XV[\x85Q\x14aD\x94W`@Q\x7F\\U7\xB8\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\x01`@Q\x80\x91\x03\x90\xFD[a2\xC0\x85` \x01Q\x84\x84aJ\x80V[``` \x82`\0\x01Q\x10aD\xBFWaD\xBA\x82aC\xEFV[a\x13wV[a\x13w\x82aK\x14V[``a\x13waD\xE7\x83` \x01Q`\0\x81Q\x81\x10a:\xFEWa:\xFEa\\\xF8V[aC\x8CV[``\x82Q\x82\x10aE\x0BWP`@\x80Q` \x81\x01\x90\x91R`\0\x81Ra\x13wV[a/&\x83\x83\x84\x86QaE\x1D\x91\x90aXlV[aK*V[`\0\x80\x82Q\x84Q\x10aE5W\x82QaE8V[\x83Q[\x90P[\x80\x82\x10\x80\x15aE\xBFWP\x82\x82\x81Q\x81\x10aEWWaEWa\\\xF8V[` \x01\x01Q`\xF8\x1C`\xF8\x1B~\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x19\x16\x84\x83\x81Q\x81\x10aE\x96WaE\x96a\\\xF8V[\x01` \x01Q\x7F\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x14[\x15a2`W\x81`\x01\x01\x91PaE;V[``a\x13waE\xDD\x83aM\x02V[aMoV[`\0\x80`\0\x83`\0\x01Q`\0\x03aF%W`@Q\x7FZ\xB4X\xFB\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\x01`@Q\x80\x91\x03\x90\xFD[` \x84\x01Q\x80Q`\0\x1A`\x7F\x81\x11aFJW`\0`\x01`\0\x94P\x94P\x94PPPaJyV[`\xB7\x81\x11aG`W`\0aF_`\x80\x83aXlV[\x90P\x80\x87`\0\x01Q\x11aF\x9EW`@Q\x7Ff\xC9D\x85\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01\x83\x81\x01Q\x7F\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x90\x82\x14\x80\x15aG\x16WP\x7F\x80\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x7F\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x82\x16\x10[\x15aGMW`@Q\x7F\xBA\xBB\x01\xDD\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\x01`@Q\x80\x91\x03\x90\xFD[P`\x01\x95P\x93P`\0\x92PaJy\x91PPV[`\xBF\x81\x11aH\xBEW`\0aGu`\xB7\x83aXlV[\x90P\x80\x87`\0\x01Q\x11aG\xB4W`@Q\x7Ff\xC9D\x85\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01\x83\x01Q\x7F\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16`\0\x81\x90\x03aH\x16W`@Q\x7F\xBA\xBB\x01\xDD\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01\x84\x01Q`\x08\x83\x02a\x01\0\x03\x1C`7\x81\x11aH^W`@Q\x7F\xBA\xBB\x01\xDD\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\x01`@Q\x80\x91\x03\x90\xFD[aHh\x81\x84a^XV[\x89Q\x11aH\xA1W`@Q\x7Ff\xC9D\x85\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\x01`@Q\x80\x91\x03\x90\xFD[aH\xAC\x83`\x01a^XV[\x97P\x95P`\0\x94PaJy\x93PPPPV[`\xF7\x81\x11aI#W`\0aH\xD3`\xC0\x83aXlV[\x90P\x80\x87`\0\x01Q\x11aI\x12W`@Q\x7Ff\xC9D\x85\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01\x95P\x93P\x84\x92PaJy\x91PPV[`\0aI0`\xF7\x83aXlV[\x90P\x80\x87`\0\x01Q\x11aIoW`@Q\x7Ff\xC9D\x85\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01\x83\x01Q\x7F\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16`\0\x81\x90\x03aI\xD1W`@Q\x7F\xBA\xBB\x01\xDD\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01\x84\x01Q`\x08\x83\x02a\x01\0\x03\x1C`7\x81\x11aJ\x19W`@Q\x7F\xBA\xBB\x01\xDD\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\x01`@Q\x80\x91\x03\x90\xFD[aJ#\x81\x84a^XV[\x89Q\x11aJ\\W`@Q\x7Ff\xC9D\x85\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\x01`@Q\x80\x91\x03\x90\xFD[aJg\x83`\x01a^XV[\x97P\x95P`\x01\x94PaJy\x93PPPPV[\x91\x93\x90\x92PV[``\x81g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15aJ\x9BWaJ\x9BaO\x80V[`@Q\x90\x80\x82R\x80`\x1F\x01`\x1F\x19\x16` \x01\x82\x01`@R\x80\x15aJ\xC5W` \x82\x01\x81\x806\x837\x01\x90P[P\x90P\x81\x15a/&W`\0aJ\xDA\x84\x86a^XV[\x90P` \x82\x01`\0[\x84\x81\x10\x15aJ\xFBW\x82\x81\x01Q\x82\x82\x01R` \x01aJ\xE3V[\x84\x81\x11\x15aK\nW`\0\x85\x83\x01R[PPP\x93\x92PPPV[``a\x13w\x82` \x01Q`\0\x84`\0\x01QaJ\x80V[``\x81\x82`\x1F\x01\x10\x15aK\x99W`@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\x82\x01R`\x0E`$\x82\x01R\x7Fslice_overflow\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`D\x82\x01R`d\x01a\x1A\xC6V[\x82\x82\x84\x01\x10\x15aL\x05W`@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\x82\x01R`\x0E`$\x82\x01R\x7Fslice_overflow\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`D\x82\x01R`d\x01a\x1A\xC6V[\x81\x83\x01\x84Q\x10\x15aLrW`@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\x82\x01R`\x11`$\x82\x01R\x7Fslice_outOfBounds\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`D\x82\x01R`d\x01a\x1A\xC6V[``\x82\x15\x80\x15aL\x91W`@Q\x91P`\0\x82R` \x82\x01`@RaL\xF9V[`@Q\x91P`\x1F\x84\x16\x80\x15` \x02\x81\x84\x01\x01\x85\x81\x01\x87\x83\x15` \x02\x84\x8B\x01\x01\x01[\x81\x83\x10\x15aL\xCAW\x80Q\x83R` \x92\x83\x01\x92\x01aL\xB2V[PP\x85\x84R`\x1F\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16`@RP[P\x94\x93PPPPV[`@\x80Q\x80\x82\x01\x90\x91R`\0\x80\x82R` \x82\x01R\x81Q`\0\x03aMQW`@Q\x7FZ\xB4X\xFB\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\x01`@Q\x80\x91\x03\x90\xFD[P`@\x80Q\x80\x82\x01\x90\x91R\x81Q\x81R` \x91\x82\x01\x91\x81\x01\x91\x90\x91R\x90V[```\0\x80`\0aM\x7F\x85aE\xE2V[\x91\x94P\x92P\x90P`\x01\x81`\x01\x81\x11\x15aM\x9AWaM\x9Aa\\\xA8V[\x14aM\xD1W`@Q\x7FK\x9Cj\xBE\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\x01`@Q\x80\x91\x03\x90\xFD[\x84QaM\xDD\x83\x85a^XV[\x14aN\x14W`@Q\x7F\\U7\xB8\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\x01`@Q\x80\x91\x03\x90\xFD[`@\x80Q` \x80\x82Ra\x04 \x82\x01\x90\x92R\x90\x81` \x01[`@\x80Q\x80\x82\x01\x90\x91R`\0\x80\x82R` \x82\x01R\x81R` \x01\x90`\x01\x90\x03\x90\x81aN+W\x90PP\x93P`\0\x83[\x86Q\x81\x10\x15aO\x19W`\0\x80aN\x9E`@Q\x80`@\x01`@R\x80\x85\x8C`\0\x01QaN\x82\x91\x90aXlV[\x81R` \x01\x85\x8C` \x01QaN\x97\x91\x90a^XV[\x90RaE\xE2V[P\x91P\x91P`@Q\x80`@\x01`@R\x80\x83\x83aN\xBA\x91\x90a^XV[\x81R` \x01\x84\x8B` \x01QaN\xCF\x91\x90a^XV[\x81RP\x88\x85\x81Q\x81\x10aN\xE4WaN\xE4a\\\xF8V[` \x90\x81\x02\x91\x90\x91\x01\x01RaN\xFA`\x01\x85a^XV[\x93PaO\x06\x81\x83a^XV[aO\x10\x90\x84a^XV[\x92PPPaNXV[P\x84RP\x91\x93\x92PPPV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x18\xE3W`\0\x80\xFD[`\0\x80`@\x83\x85\x03\x12\x15aOZW`\0\x80\xFD[\x825aOe\x81aO%V[\x91P` \x83\x015aOu\x81aO%V[\x80\x91PP\x92P\x92\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[`@Q``\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15aO\xD2WaO\xD2aO\x80V[`@R\x90V[`@\x80Q\x90\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15aO\xD2WaO\xD2aO\x80V[`@Q`\x1F\x82\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15aPBWaPBaO\x80V[`@R\x91\x90PV[`\0\x82`\x1F\x83\x01\x12aP[W`\0\x80\xFD[\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15aPuWaPuaO\x80V[aP\xA6` \x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0`\x1F\x84\x01\x16\x01aO\xFBV[\x81\x81R\x84` \x83\x86\x01\x01\x11\x15aP\xBBW`\0\x80\xFD[\x81` \x85\x01` \x83\x017`\0\x91\x81\x01` \x01\x91\x90\x91R\x93\x92PPPV[`\0`\xC0\x82\x84\x03\x12\x15aP\xEAW`\0\x80\xFD[`@Q`\xC0\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x82\x10\x81\x83\x11\x17\x15aQ\x0EWaQ\x0EaO\x80V[\x81`@R\x82\x93P\x845\x83R` \x85\x015\x91PaQ)\x82aO%V[\x81` \x84\x01R`@\x85\x015\x91PaQ?\x82aO%V[\x81`@\x84\x01R``\x85\x015``\x84\x01R`\x80\x85\x015`\x80\x84\x01R`\xA0\x85\x015\x91P\x80\x82\x11\x15aQmW`\0\x80\xFD[PaQz\x85\x82\x86\x01aPJV[`\xA0\x83\x01RPP\x92\x91PPV[`\0\x80`@\x83\x85\x03\x12\x15aQ\x9AW`\0\x80\xFD[\x825g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15aQ\xB1W`\0\x80\xFD[aQ\xBD\x85\x82\x86\x01aP\xD8V[\x92PP` \x83\x015aOu\x81aO%V[`\0` \x82\x84\x03\x12\x15aQ\xE0W`\0\x80\xFD[\x815a/&\x81aO%V[`\0`\x80\x82\x84\x03\x12\x15aQ\xFDW`\0\x80\xFD[P\x91\x90PV[`\0\x80\x83`\x1F\x84\x01\x12aR\x15W`\0\x80\xFD[P\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15aR-W`\0\x80\xFD[` \x83\x01\x91P\x83` \x82`\x05\x1B\x85\x01\x01\x11\x15aRHW`\0\x80\xFD[\x92P\x92\x90PV[`\0\x80`\0\x80`\0`\xE0\x86\x88\x03\x12\x15aRgW`\0\x80\xFD[\x855g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15aR\x7FW`\0\x80\xFD[aR\x8B\x89\x83\x8A\x01aP\xD8V[\x96P` \x88\x015\x95PaR\xA1\x89`@\x8A\x01aQ\xEBV[\x94P`\xC0\x88\x015\x91P\x80\x82\x11\x15aR\xB7W`\0\x80\xFD[PaR\xC4\x88\x82\x89\x01aR\x03V[\x96\x99\x95\x98P\x93\x96P\x92\x94\x93\x92PPPV[`\0` \x82\x84\x03\x12\x15aR\xE7W`\0\x80\xFD[P5\x91\x90PV[`\0[\x83\x81\x10\x15aS\tW\x81\x81\x01Q\x83\x82\x01R` \x01aR\xF1V[\x83\x81\x11\x15a\x12lWPP`\0\x91\x01RV[`\0\x81Q\x80\x84RaS2\x81` \x86\x01` \x86\x01aR\xEEV[`\x1F\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x92\x90\x92\x01` \x01\x92\x91PPV[` \x81R`\0a/&` \x83\x01\x84aS\x1AV[`\0\x80`@\x83\x85\x03\x12\x15aS\x8AW`\0\x80\xFD[\x825\x91P` \x83\x015aOu\x81aO%V[`\0` \x82\x84\x03\x12\x15aS\xAEW`\0\x80\xFD[\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15aS\xC5W`\0\x80\xFD[aS\xD1\x84\x82\x85\x01aP\xD8V[\x94\x93PPPPV[`\0\x80`\0\x80`\0\x80`\0a\x01 \x88\x8A\x03\x12\x15aS\xF5W`\0\x80\xFD[\x875g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15aT\rW`\0\x80\xFD[aT\x19\x8B\x83\x8C\x01aP\xD8V[\x98P` \x8A\x015\x91PaT+\x82aO%V[\x90\x96P`@\x89\x015\x95P``\x89\x015\x90\x80\x82\x11\x15aTHW`\0\x80\xFD[\x90\x89\x01\x90``\x82\x8C\x03\x12\x15aT\\W`\0\x80\xFD[\x81\x95PaTl\x8B`\x80\x8C\x01aQ\xEBV[\x94Pa\x01\0\x8A\x015\x91P\x80\x82\x11\x15aT\x83W`\0\x80\xFD[PaT\x90\x8A\x82\x8B\x01aR\x03V[\x98\x9B\x97\x9AP\x95\x98P\x93\x96\x92\x95\x92\x93PPPV[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x18\xE3W`\0\x80\xFD[`\0` \x82\x84\x03\x12\x15aT\xCBW`\0\x80\xFD[\x815a/&\x81aT\xA3V[`\0\x80`@\x83\x85\x03\x12\x15aT\xE9W`\0\x80\xFD[PP\x805\x92` \x90\x91\x015\x91PV[`\0\x80`\0``\x84\x86\x03\x12\x15aU\rW`\0\x80\xFD[\x835aU\x18\x81aO%V[\x92P` \x84\x015aU(\x81aO%V[\x91P`@\x84\x015aU8\x81aO%V[\x80\x91PP\x92P\x92P\x92V[\x80\x15\x15\x81\x14a\x18\xE3W`\0\x80\xFD[`\0\x80`\0\x80`\0`\xA0\x86\x88\x03\x12\x15aUiW`\0\x80\xFD[\x855aUt\x81aO%V[\x94P` \x86\x015\x93P`@\x86\x015aU\x8B\x81aT\xA3V[\x92P``\x86\x015aU\x9B\x81aUCV[\x91P`\x80\x86\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15aU\xB7W`\0\x80\xFD[aU\xC3\x88\x82\x89\x01aPJV[\x91PP\x92\x95P\x92\x95\x90\x93PV[\x85\x81R\x84` \x82\x01R\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x84`\xC0\x1B\x16`@\x82\x01R\x82\x15\x15`\xF8\x1B`H\x82\x01R`\0\x82QaV$\x81`I\x85\x01` \x87\x01aR\xEEV[\x91\x90\x91\x01`I\x01\x96\x95PPPPPPV[`\0` \x82\x84\x03\x12\x15aVGW`\0\x80\xFD[\x81Qa/&\x81aO%V[c\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x18\xE3W`\0\x80\xFD[`\0` \x82\x84\x03\x12\x15aVvW`\0\x80\xFD[\x81Qa/&\x81aVRV[\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`\x11`\x04R`$`\0\xFD[`\0\x81\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x04\x83\x11\x82\x15\x15\x16\x15aV\xE8WaV\xE8aV\x81V[P\x02\x90V[`\0` \x82\x84\x03\x12\x15aV\xFFW`\0\x80\xFD[\x81Qa/&\x81aUCV[`\0\x80`\0``\x84\x86\x03\x12\x15aW\x1FW`\0\x80\xFD[\x83QaW*\x81aVRV[` \x85\x01Q\x90\x93PaW;\x81aT\xA3V[`@\x85\x01Q\x90\x92PaU8\x81aO%V[`\0`\x80\x82\x84\x03\x12\x15aW^W`\0\x80\xFD[`@Q`\x80\x81\x01\x81\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17\x15aW\x81WaW\x81aO\x80V[\x80`@RP\x825\x81R` \x83\x015` \x82\x01R`@\x83\x015`@\x82\x01R``\x83\x015``\x82\x01R\x80\x91PP\x92\x91PPV[`\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x15aW\xCCWaW\xCCaO\x80V[P`\x05\x1B` \x01\x90V[`\0aW\xE9aW\xE4\x84aW\xB2V[aO\xFBV[\x80\x84\x82R` \x80\x83\x01\x92P\x85`\x05\x1B\x85\x016\x81\x11\x15aX\x07W`\0\x80\xFD[\x85[\x81\x81\x10\x15aXCW\x805g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15aX)W`\0\x80\x81\xFD[aX56\x82\x8A\x01aPJV[\x86RP\x93\x82\x01\x93\x82\x01aX\tV[P\x91\x96\x95PPPPPPV[`\0` \x82\x84\x03\x12\x15aXaW`\0\x80\xFD[\x81Qa/&\x81aT\xA3V[`\0\x82\x82\x10\x15aX~WaX~aV\x81V[P\x03\x90V[`\0``\x826\x03\x12\x15aX\x95W`\0\x80\xFD[aX\x9DaO\xAFV[\x825\x7F\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81\x16\x81\x14aX\xCDW`\0\x80\xFD[\x81R` \x83\x81\x015aX\xDE\x81aT\xA3V[\x82\x82\x01R`@\x84\x81\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15aX\xFDW`\0\x80\xFD[\x85\x016`\x1F\x82\x01\x12aY\x0EW`\0\x80\xFD[\x805aY\x1CaW\xE4\x82aW\xB2V[\x81\x81R`\x06\x91\x90\x91\x1B\x82\x01\x84\x01\x90\x84\x81\x01\x906\x83\x11\x15aY;W`\0\x80\xFD[\x92\x85\x01\x92[\x82\x84\x10\x15aY{W\x84\x846\x03\x12\x15aYXW`\0\x80\x81\xFD[aY`aO\xD8V[\x845\x81R\x86\x85\x015\x87\x82\x01R\x82R\x92\x84\x01\x92\x90\x85\x01\x90aY@V[\x93\x86\x01\x93\x90\x93RP\x92\x95\x94PPPPPV[`\0` \x82\x84\x03\x12\x15aY\x9FW`\0\x80\xFD[PQ\x91\x90PV[`\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x83\x16\x81\x85\x16\x81\x83\x04\x81\x11\x82\x15\x15\x16\x15aY\xCDWaY\xCDaV\x81V[\x02\x94\x93PPPPV[`\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x83\x16\x81\x85\x16\x80\x83\x03\x82\x11\x15aY\xF9WaY\xF9aV\x81V[\x01\x94\x93PPPPV[\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`\x12`\x04R`$`\0\xFD[`\0\x82aZ@WaZ@aZ\x02V[\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x14\x7F\x80\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x83\x14\x16\x15aZ\x94WaZ\x94aV\x81V[P\x05\x90V[`\0\x80\x83\x12\x83\x7F\x80\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x83\x12\x81\x15\x16\x15aZ\xD3WaZ\xD3aV\x81V[\x83\x7F\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x01\x83\x13\x81\x16\x15a[\x07Wa[\x07aV\x81V[PP\x03\x90V[`\0\x7F\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF`\0\x84\x13`\0\x84\x13\x85\x83\x04\x85\x11\x82\x82\x16\x16\x15a[NWa[NaV\x81V[\x7F\x80\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\0\x87\x12\x86\x82\x05\x88\x12\x81\x84\x16\x16\x15a[\x89Wa[\x89aV\x81V[`\0\x87\x12\x92P\x87\x82\x05\x87\x12\x84\x84\x16\x16\x15a[\xA5Wa[\xA5aV\x81V[\x87\x85\x05\x87\x12\x81\x84\x16\x16\x15a[\xBBWa[\xBBaV\x81V[PPP\x92\x90\x93\x02\x93\x92PPPV[`\0\x80\x82\x12\x82\x7F\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x03\x84\x13\x81\x15\x16\x15a\\\x03Wa\\\x03aV\x81V[\x82\x7F\x80\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x03\x84\x12\x81\x16\x15a\\7Wa\\7aV\x81V[PP\x01\x90V[`\0\x82a\\LWa\\LaZ\x02V[P\x04\x90V[\x86\x81R`\0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x88\x16` \x84\x01R\x80\x87\x16`@\x84\x01RP\x84``\x83\x01R\x83`\x80\x83\x01R`\xC0`\xA0\x83\x01Ra\\\x9C`\xC0\x83\x01\x84aS\x1AV[\x98\x97PPPPPPPPV[\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`!`\x04R`$`\0\xFD[`\0` \x82\x84\x03\x12\x15a\\\xE9W`\0\x80\xFD[\x81Q`\x03\x81\x10a/&W`\0\x80\xFD[\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`2`\x04R`$`\0\xFD[\x80Q`\xFF\x81\x16\x81\x14a]8W`\0\x80\xFD[\x91\x90PV[`\0`\xC0\x82\x84\x03\x12\x15a]OW`\0\x80\xFD[`@Q`\xC0\x81\x01\x81\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17\x15a]rWa]raO\x80V[`@R\x82Qa]\x80\x81aVRV[\x81Ra]\x8E` \x84\x01a]'V[` \x82\x01Ra]\x9F`@\x84\x01a]'V[`@\x82\x01R``\x83\x01Qa]\xB2\x81aVRV[``\x82\x01R`\x80\x83\x01Qa]\xC5\x81aVRV[`\x80\x82\x01R`\xA0\x83\x01Qo\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a]\xEDW`\0\x80\xFD[`\xA0\x82\x01R\x93\x92PPPV[`\0\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x03a^*Wa^*aV\x81V[P`\x01\x01\x90V[`\0\x84Qa^C\x81\x84` \x89\x01aR\xEEV[\x91\x90\x91\x01\x92\x83RP` \x82\x01R`@\x01\x91\x90PV[`\0\x82\x19\x82\x11\x15a^kWa^kaV\x81V[P\x01\x90V[`\0`\xFF\x83\x16\x80a^\x83Wa^\x83aZ\x02V[\x80`\xFF\x84\x16\x06\x91PP\x92\x91PPV[`\0`\xFF\x82\x16`\xFF\x84\x16\x80\x82\x10\x15a^\xACWa^\xACaV\x81V[\x90\x03\x93\x92PPPV\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x6080604052600436106102385760003560e01c80638c3152e911610138578063bb2c727e116100b0578063cff0ab961161007f578063dad544e011610064578063dad544e01461082a578063e9e05c421461083f578063f2b4e6171461085257600080fd5b8063cff0ab9614610757578063d325d3bf146107f857600080fd5b8063bb2c727e14610648578063bda204bb146106ef578063bf653a5c14610704578063c0c53b8b1461073757600080fd5b80639bf62d8211610107578063a35d99df116100ec578063a35d99df146105db578063a3860f48146105fb578063b682c4441461061b57600080fd5b80639bf62d821461057e578063a14238e7146105ab57600080fd5b80638c3152e9146105095780638c90dd6514610529578063952b27971461054957806399a88ec41461055e57600080fd5b806345884d32116101cb57806354fd4d501161019a5780635c975abb1161017f5780635c975abb146104d457806371c1566e146104e95780638b4c40b01461025d57600080fd5b806354fd4d501461045b5780635c0cba33146104a757600080fd5b806345884d32146103a25780634870496f146103d25780634fd0434c146103f2578063513747ab1461042057600080fd5b80633c9f397c116102075780633c9f397c1461032e5780633e47158c1461035857806343ca1c501461036d578063452a93201461038d57600080fd5b80632152f2be1461026457806333d7e2bd1461028457806335e80ab3146102db57806338d38c97146102f057600080fd5b3661025f5761025d3334620186a0600060405180602001604052806000815250610867565b005b600080fd5b34801561027057600080fd5b5061025d61027f366004614f47565b610ab3565b34801561029057600080fd5b506037546102b19073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b3480156102e757600080fd5b506102b1610bf9565b3480156102fc57600080fd5b5060405160ff7f00000000000000000000000000000000000000000000000000000000000000001681526020016102d2565b34801561033a57600080fd5b50610343610c92565b60405163ffffffff90911681526020016102d2565b34801561036457600080fd5b506102b1610d26565b34801561037957600080fd5b5061025d610388366004615187565b610f31565b34801561039957600080fd5b506102b1611272565b3480156103ae57600080fd5b506103c26103bd3660046151ce565b6112e2565b60405190151581526020016102d2565b3480156103de57600080fd5b5061025d6103ed36600461524f565b61137d565b3480156103fe57600080fd5b506104076114ad565b60405167ffffffffffffffff90911681526020016102d2565b34801561042c57600080fd5b5061044d61043b3660046152d5565b6000908152603c602052604090205490565b6040519081526020016102d2565b34801561046757600080fd5b50604080518082018252600d81527f352e312e302b696e7465726f7000000000000000000000000000000000000000602082015290516102d29190615364565b3480156104b357600080fd5b50603e546102b19073ffffffffffffffffffffffffffffffffffffffff1681565b3480156104e057600080fd5b506103c2611541565b3480156104f557600080fd5b5061025d610504366004615377565b6115d5565b34801561051557600080fd5b5061025d61052436600461539c565b6118d9565b34801561053557600080fd5b5061025d6105443660046153d9565b6118e6565b34801561055557600080fd5b5061044d61196a565b34801561056a57600080fd5b5061025d610579366004614f47565b6119fe565b34801561058a57600080fd5b506032546102b19073ffffffffffffffffffffffffffffffffffffffff1681565b3480156105b757600080fd5b506103c26105c63660046152d5565b60336020526000908152604090205460ff1681565b3480156105e757600080fd5b506104076105f63660046154b9565b611bc0565b34801561060757600080fd5b506102b16106163660046154d6565b611bd9565b34801561062757600080fd5b50603f546102b19073ffffffffffffffffffffffffffffffffffffffff1681565b34801561065457600080fd5b506106ba610663366004615377565b603960209081526000928352604080842090915290825290205473ffffffffffffffffffffffffffffffffffffffff81169074010000000000000000000000000000000000000000900467ffffffffffffffff1682565b6040805173ffffffffffffffffffffffffffffffffffffffff909316835267ffffffffffffffff9091166020830152016102d2565b3480156106fb57600080fd5b5061025d611c1e565b34801561071057600080fd5b507f000000000000000000000000000000000000000000000000000000000000000061044d565b34801561074357600080fd5b5061025d6107523660046154f8565b611d00565b34801561076357600080fd5b506001546107bf906fffffffffffffffffffffffffffffffff81169067ffffffffffffffff7001000000000000000000000000000000008204811691780100000000000000000000000000000000000000000000000090041683565b604080516fffffffffffffffffffffffffffffffff909416845267ffffffffffffffff92831660208501529116908201526060016102d2565b34801561080457600080fd5b50603f546103c29074010000000000000000000000000000000000000000900460ff1681565b34801561083657600080fd5b506102b1611efd565b61025d61084d366004615551565b610867565b34801561085e57600080fd5b506102b1611f51565b8260005a905034156108f757603f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631ee116bf346040518263ffffffff1660e01b81526004016000604051808303818588803b1580156108dd57600080fd5b505af11580156108f1573d6000803e3d6000fd5b50505050505b838015610919575073ffffffffffffffffffffffffffffffffffffffff871615155b15610950576040517fc5defbad00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61095a8351611bc0565b67ffffffffffffffff168567ffffffffffffffff1610156109a7576040517f70c8bdbd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6201d4c0835111156109e5576040517f5aa3bac900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b336109ee611fc1565b610a0b575033731111000000000000000000000000000000001111015b60003488888888604051602001610a269594939291906155d0565b604051602081830303815290604052905060008973ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fb3813568d9991fc951961fcb4c784893574240a28925604d09fc577c55bb7c3284604051610a969190615364565b60405180910390a45050610aaa8282611fff565b50505050505050565b610abb6122d6565b610ac3612315565b603e5473ffffffffffffffffffffffffffffffffffffffff808316911603610b17576040517f785df91100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b603f8054603e805473ffffffffffffffffffffffffffffffffffffffff8581167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093557fffffffffffffffffffffff0000000000000000000000000000000000000000008416878216908117740100000000000000000000000000000000000000001790955560408051948216808652602086019690965291169083018190526060830191909152907f9e5368471a58d81987e5dc7d6374dd5ed5e756cc95a79ff726903423bce0060d906080015b60405180910390a150505050565b603754604080517f35e80ab3000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff16916335e80ab39160048083019260209291908290030181865afa158015610c69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c8d9190615635565b905090565b603e54604080517f3c9f397c000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff1691633c9f397c9160048083019260209291908290030181865afa158015610d02573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c8d9190615664565b600080610d517fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b905073ffffffffffffffffffffffffffffffffffffffff811615610d7457919050565b6040518060400160405280601a81526020017f4f564d5f4c3143726f7373446f6d61696e4d657373656e676572000000000000815250516002610db791906156b0565b604080513060208201526000918101919091527f4f564d5f4c3143726f7373446f6d61696e4d657373656e6765720000000000009190911790610e12906060015b604051602081830303815290604052805190602001205490565b14610e49576040517f54e433cd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60408051306020820152600191810191909152600090610e6b90606001610df8565b905073ffffffffffffffffffffffffffffffffffffffff811615610eff578073ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ed4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ef89190615635565b9250505090565b6040517f332144db00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610f396122d6565b60325473ffffffffffffffffffffffffffffffffffffffff1661dead14610f8c576040517fdfeaaeb800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610f99826040015161236b565b15610fd0576040517fc5defbad00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000610fdb836123ae565b9050610fe781836115d5565b600081815260336020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790556060830151156110b857603f5460608401516040517f8d445bd000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90921691638d445bd0916110859160040190815260200190565b600060405180830381600087803b15801561109f57600080fd5b505af11580156110b3573d6000803e3d6000fd5b505050505b8260200151603260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600061111b8460400151856080015186606001518760a001516123fb565b603280547fffffffffffffffffffffffff00000000000000000000000000000000000000001661dead17905560405190915082907fdb5c7652857aa163daadd670e116628fb42e869d8ac4251ef8971d9e5727df1b9061118090841515815260200190565b60405180910390a28015801561119a575060008460600151115b1561122757603f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631ee116bf85606001516040518263ffffffff1660e01b81526004016000604051808303818588803b15801561120d57600080fd5b505af1158015611221573d6000803e3d6000fd5b50505050505b801580156112355750326001145b1561126c576040517fab58103600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505050565b603754604080517f452a9320000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff169163452a93209160048083019260209291908290030181865afa158015610c69573d6000803e3d6000fd5b603e546040517f45884d3200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff838116600483015260009216906345884d3290602401602060405180830381865afa158015611353573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061137791906156ed565b92915050565b6113856122d6565b603f5474010000000000000000000000000000000000000000900460ff16156113da576040517f5e74b54200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006113e4611f51565b73ffffffffffffffffffffffffffffffffffffffff1663bb8aa1fc866040518263ffffffff1660e01b815260040161141e91815260200190565b606060405180830381865afa15801561143b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061145f919061570a565b6040805160608082018352600080835260208301529181019190915290935091506114879050565b610aaa878360008461149e368b90038b018b61574c565b6114a8898b6157d6565b612459565b603e54604080517f4086d183000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff1691634086d1839160048083019260209291908290030181865afa15801561151d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c8d919061584f565b603754604080517f5c975abb000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff1691635c975abb9160048083019260209291908290030181865afa1580156115b1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c8d91906156ed565b600082815260396020908152604080832073ffffffffffffffffffffffffffffffffffffffff85811685529083528184208251808401845290549182168082527401000000000000000000000000000000000000000090920467ffffffffffffffff1681850152868552603390935292205490919060ff1615611684576040517f730a107400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b816020015167ffffffffffffffff166000036116cc576040517fcca6afda00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61174b8173ffffffffffffffffffffffffffffffffffffffff1663cf09e0d06040518163ffffffff1660e01b8152600401602060405180830381865afa15801561171a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061173e919061584f565b67ffffffffffffffff1690565b67ffffffffffffffff16826020015167ffffffffffffffff161161179b576040517fb4caa4e500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f0000000000000000000000000000000000000000000000000000000000000000826020015167ffffffffffffffff16426117d6919061586c565b1161180d576040517fd9bc01be00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b603e546040517f6c4f446700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff838116600483015290911690636c4f446790602401602060405180830381865afa15801561187d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118a191906156ed565b61126c576040517f332a57f800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b6118e38133610f31565b50565b6118ee6122d6565b603f5474010000000000000000000000000000000000000000900460ff16611942576040517f5e74b54200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610aaa87878761195188615883565b6119603689900389018961574c565b6114a887896157d6565b603e54604080517f952b2797000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff169163952b27979160048083019260209291908290030181865afa1580156119da573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c8d919061598d565b7f0000000000000000000000000000000000000000000000000000000000000000600054610100900460ff16158015611a3e575060005460ff8083169116105b611acf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084015b60405180910390fd5b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001660ff831617610100179055611b08612cb4565b603e805473ffffffffffffffffffffffffffffffffffffffff8581167fffffffffffffffffffffffff000000000000000000000000000000000000000092831617909255603f805492851692909116919091179055600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050565b6000611bcd8260286159a6565b611377906152086159d6565b603c6020528160005260406000208181548110611bf557600080fd5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff169150829050565b611c26612315565b603f54604080517f1ee116bf0000000000000000000000000000000000000000000000000000000081529051479273ffffffffffffffffffffffffffffffffffffffff1691631ee116bf91849160048082019260009290919082900301818588803b158015611c9457600080fd5b505af1158015611ca8573d6000803e3d6000fd5b5050603f5460405185815273ffffffffffffffffffffffffffffffffffffffff90911693507fd893f630c6867fa43689da9ae949ebf04cac24aad3b45c759d442ed3c32e3a379250602001905060405180910390a250565b7f0000000000000000000000000000000000000000000000000000000000000000600054610100900460ff16158015611d40575060005460ff8083169116105b611dcc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401611ac6565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001660ff831617610100179055611e05612cb4565b6037805473ffffffffffffffffffffffffffffffffffffffff8087167fffffffffffffffffffffffff000000000000000000000000000000000000000092831617909255603e8054868416908316179055603f8054858416921691909117905560325416611e9a57603280547fffffffffffffffffffffffff00000000000000000000000000000000000000001661dead1790555b611ea2612d35565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602001610beb565b6000611f07610d26565b73ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c69573d6000803e3d6000fd5b603e54604080517ff2b4e617000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff169163f2b4e6179160048083019260209291908290030181865afa158015610c69573d6000803e3d6000fd5b6000323303611fd05750600190565b333b601703611ff857604051602081016040526020600082333c5160e81c62ef010014905090565b5060005b90565b600154600090612035907801000000000000000000000000000000000000000000000000900467ffffffffffffffff164361586c565b90506000612041612e48565b90506000816020015160ff16826000015163ffffffff166120629190615a31565b9050821561219957600154600090612099908390700100000000000000000000000000000000900467ffffffffffffffff16615a99565b90506000836040015160ff16836120b09190615b0d565b6001546120d09084906fffffffffffffffffffffffffffffffff16615b0d565b6120da9190615a31565b60015490915060009061212b906121049084906fffffffffffffffffffffffffffffffff16615bc9565b866060015163ffffffff168760a001516fffffffffffffffffffffffffffffffff16612f0e565b9050600186111561215a5761215761210482876040015160ff1660018a612152919061586c565b612f2d565b90505b6fffffffffffffffffffffffffffffffff16780100000000000000000000000000000000000000000000000067ffffffffffffffff4316021760015550505b600180548691906010906121cc908490700100000000000000000000000000000000900467ffffffffffffffff166159d6565b92506101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550816000015163ffffffff16600160000160109054906101000a900467ffffffffffffffff1667ffffffffffffffff161315612259576040517f77ebef4d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600154600090612285906fffffffffffffffffffffffffffffffff1667ffffffffffffffff88166156b0565b9050600061229748633b9aca00612f82565b6122a19083615c3d565b905060005a6122b0908861586c565b9050808211156122cc576122cc6122c7828461586c565b612f99565b5050505050505050565b6122de611541565b156118d7576040517fb9c3c2ef00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3361231e611efd565b73ffffffffffffffffffffffffffffffffffffffff16146118d7576040517f7f12c64b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff8216301480611377575050603f5473ffffffffffffffffffffffffffffffffffffffff90811691161490565b80516020808301516040808501516060860151608087015160a088015193516000976123de979096959101615c51565b604051602081830303815290604052805190602001209050919050565b600080600061240b866000612fc7565b905080612441576308c379a06000526020805278185361666543616c6c3a204e6f7420656e6f756768206761736058526064601cfd5b600080855160208701888b5af1979650505050505050565b612466866040015161236b565b1561249d576040517fc5defbad00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b603e546040517f496b9c1600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff87811660048301529091169063496b9c1690602401602060405180830381865afa15801561250d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061253191906156ed565b612567576040517ff395240e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b603e546040517f04e50fed00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8781166004830152909116906304e50fed90602401602060405180830381865afa1580156125d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125fb91906156ed565b612631576040517fe29927ed00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60018573ffffffffffffffffffffffffffffffffffffffff1663200d2ed26040518163ffffffff1660e01b8152600401602060405180830381865afa15801561267e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126a29190615cd7565b60028111156126b3576126b3615ca8565b036126ea576040517fe29927ed00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6127388573ffffffffffffffffffffffffffffffffffffffff1663cf09e0d06040518163ffffffff1660e01b8152600401602060405180830381865afa15801561171a573d6000803e3d6000fd5b67ffffffffffffffff16421161277a576040517fb4caa4e500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b603f5474010000000000000000000000000000000000000000900460ff16156129c4576127a683612fe5565b6128188673ffffffffffffffffffffffffffffffffffffffff1663bcef3b556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156127f4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ffc919061598d565b1461284f576040517f2b1a9a6600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b826040015151841061288d576040517f32dc285c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000836040015185815181106128a5576128a5615cf8565b60200260200101519050603760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d6ae3cd56040518163ffffffff1660e01b8152600401602060405180830381865afa15801561291c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612940919061598d565b815114612979576040517f7cc2f31b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61298283612ffe565b8160200151146129be576040517f426149af00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50612a52565b6129cd82612ffe565b612a1b8673ffffffffffffffffffffffffffffffffffffffff1663bcef3b556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156127f4573d6000803e3d6000fd5b14612a52576040517f426149af00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000612a5d876123ae565b90506000816000604051602001612a7e929190918252602082015260400190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815282825280516020918201209083018190529250612b299101604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181528282018252600183527f0100000000000000000000000000000000000000000000000000000000000000602084015290870151909190869061303d565b1515600003612b64576040517f2e57ef3a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60408051808201825273ffffffffffffffffffffffffffffffffffffffff808a16825267ffffffffffffffff42811660208085019182526000888152603982528681203380835290835287822096518754945190951674010000000000000000000000000000000000000000027fffffffff000000000000000000000000000000000000000000000000000000009094169486169490941792909217909455868152603c845284812080546001810182559082528482200180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169092179091558b840151928c01519351928216939091169185917f67a6208cfcc0801d50f6cbe764733f4fddf66ac0b04442061a8a8c0cb6b63f6291a4604051339083907f798f9f13695f8f045aa5f80ed8efebb695f3c7fe65da381969f2f28bf3c60b9790600090a35050505050505050565b33612cbd610d26565b73ffffffffffffffffffffffffffffffffffffffff1614158015612cfe575033612ce5611efd565b73ffffffffffffffffffffffffffffffffffffffff1614155b156118d7576040517fc4050a2600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600054610100900460ff16612dcc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401611ac6565b6001547801000000000000000000000000000000000000000000000000900467ffffffffffffffff166000036118d75760408051606081018252633b9aca00808252600060208301524367ffffffffffffffff169190920181905278010000000000000000000000000000000000000000000000000217600155565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a0810191909152603754604080517fcc731b02000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff169163cc731b029160048083019260c09291908290030181865afa158015612eea573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113779190615d3d565b6000612f23612f1d8585613061565b83613071565b90505b9392505050565b6000670de0b6b3a7640000612f6e612f458583615a31565b612f5790670de0b6b3a7640000615a99565b612f6985670de0b6b3a7640000615b0d565b613080565b612f789086615b0d565b612f239190615a31565b600081831015612f925781612f26565b5090919050565b6000805a90505b825a612fac908361586c565b1015612fc257612fbb82615df9565b9150612fa0565b505050565b600080603f83619c4001026040850201603f5a021015949350505050565b6000612ff0826130b1565b805190602001209050919050565b600081600001518260200151836040015184606001516040516020016123de949392919093845260208401929092526040830152606082015260800190565b60008061304986613267565b905061305781868686613299565b9695505050505050565b600081831215612f925781612f26565b6000818312612f925781612f26565b6000612f26670de0b6b3a764000083613098866132c9565b6130a29190615b0d565b6130ac9190615a31565b61350d565b80516060907fff00000000000000000000000000000000000000000000000000000000000000167f010000000000000000000000000000000000000000000000000000000000000014613130576040517fc06b523800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81604001515160000361316f576040517f9103e7cd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008260000151836020015160c01b6040516020016131de9291907fff000000000000000000000000000000000000000000000000000000000000009290921682527fffffffffffffffff00000000000000000000000000000000000000000000000016600182015260090190565b604051602081830303815290604052905060005b8360400151518110156132605760008460400151828151811061321757613217615cf8565b60209081029190910181015180518183015160405192945061323b93879301615e31565b604051602081830303815290604052925050808061325890615df9565b9150506131f2565b5092915050565b6060818051906020012060405160200161328391815260200190565b6040516020818303038152906040529050919050565b60006132c0846132aa87868661374c565b8051602091820120825192909101919091201490565b95945050505050565b6000808213613334576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f554e444546494e454400000000000000000000000000000000000000000000006044820152606401611ac6565b60006060613341846141ca565b03609f8181039490941b90931c6c465772b2bbbb5f824b15207a3081018102606090811d6d0388eaa27412d5aca026815d636e018202811d6d0df99ac502031bf953eff472fdcc018202811d6d13cdffb29d51d99322bdff5f2211018202811d6d0a0f742023def783a307a986912e018202811d6d01920d8043ca89b5239253284e42018202811d6c0b7a86d7375468fac667a0a527016c29508e458543d8aa4df2abee7883018302821d6d0139601a2efabe717e604cbb4894018302821d6d02247f7a7b6594320649aa03aba1018302821d7fffffffffffffffffffffffffffffffffffffff73c0c716a594e00d54e3c4cbc9018302821d7ffffffffffffffffffffffffffffffffffffffdc7b88c420e53a9890533129f6f01830290911d7fffffffffffffffffffffffffffffffffffffff465fda27eb4d63ded474e5f832019091027ffffffffffffffff5f6af8f7b3396644f18e157960000000000000000000000000105711340daa0d5f769dba1915cef59f0815a5506027d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b393909302929092017d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b88642840160ae1d92915050565b60007ffffffffffffffffffffffffffffffffffffffffffffffffdb731c958f34d94c1821361353e57506000919050565b680755bf798b4a1bf1e582126135b0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f4558505f4f564552464c4f5700000000000000000000000000000000000000006044820152606401611ac6565b6503782dace9d9604e83901b059150600060606bb17217f7d1cf79abc9e3b39884821b056b80000000000000000000000001901d6bb17217f7d1cf79abc9e3b39881029093037fffffffffffffffffffffffffffffffffffffffdbf3ccf1604d263450f02a550481018102606090811d6d0277594991cfc85f6e2461837cd9018202811d7fffffffffffffffffffffffffffffffffffffe5adedaa1cb095af9e4da10e363c018202811d6db1bbb201f443cf962f1a1d3db4a5018202811d7ffffffffffffffffffffffffffffffffffffd38dc772608b0ae56cce01296c0eb018202811d6e05180bb14799ab47a8a8cb2a527d57016d02d16720577bd19bf614176fe9ea6c10fe68e7fd37d0007b713f765084018402831d9081019084017ffffffffffffffffffffffffffffffffffffffe2c69812cf03b0763fd454a8f7e010290911d6e0587f503bb6ea29d25fcb7401964500190910279d835ebba824c98fb31b83b2ca45c000000000000000000000000010574029d9dc38563c32e5c2f6dc192ee70ef65f9978af30260c3939093039290921c92915050565b606060008451116137b9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4d65726b6c65547269653a20656d707479206b657900000000000000000000006044820152606401611ac6565b60006137c4846142a0565b905060006137d18661438c565b90506000846040516020016137e891815260200190565b60405160208183030381529060405290506000805b845181101561414157600085828151811061381a5761381a615cf8565b6020026020010151905084518311156138b5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f4d65726b6c65547269653a206b657920696e646578206578636565647320746f60448201527f74616c206b6579206c656e6774680000000000000000000000000000000000006064820152608401611ac6565b8260000361396e5780518051602091820120604051613903926138dd92910190815260200190565b604051602081830303815290604052858051602091820120825192909101919091201490565b613969576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f4d65726b6c65547269653a20696e76616c696420726f6f7420686173680000006044820152606401611ac6565b613ac5565b805151602011613a245780518051602091820120604051613998926138dd92910190815260200190565b613969576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4d65726b6c65547269653a20696e76616c6964206c6172676520696e7465726e60448201527f616c2068617368000000000000000000000000000000000000000000000000006064820152608401611ac6565b805184516020808701919091208251919092012014613ac5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4d65726b6c65547269653a20696e76616c696420696e7465726e616c206e6f6460448201527f65206861736800000000000000000000000000000000000000000000000000006064820152608401611ac6565b613ad160106001615e58565b81602001515103613cad5784518303613c4557613b0b8160200151601081518110613afe57613afe615cf8565b60200260200101516143ef565b96506000875111613b9e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603b60248201527f4d65726b6c65547269653a2076616c7565206c656e677468206d75737420626560448201527f2067726561746572207468616e207a65726f20286272616e63682900000000006064820152608401611ac6565b60018651613bac919061586c565b8214613c3a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603a60248201527f4d65726b6c65547269653a2076616c7565206e6f6465206d757374206265206c60448201527f617374206e6f646520696e2070726f6f6620286272616e6368290000000000006064820152608401611ac6565b505050505050612f26565b6000858481518110613c5957613c59615cf8565b602001015160f81c60f81b60f81c9050600082602001518260ff1681518110613c8457613c84615cf8565b60200260200101519050613c97816144a3565b9550613ca4600186615e58565b9450505061412e565b6002816020015151036140a6576000613cc5826144c8565b9050600081600081518110613cdc57613cdc615cf8565b016020015160f81c90506000613cf3600283615e70565b613cfe906002615e92565b90506000613d0f848360ff166144ec565b90506000613d1d8a896144ec565b90506000613d2b8383614522565b905080835114613dbd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603a60248201527f4d65726b6c65547269653a20706174682072656d61696e646572206d7573742060448201527f736861726520616c6c206e6962626c65732077697468206b65790000000000006064820152608401611ac6565b60ff851660021480613dd2575060ff85166003145b15613fc15780825114613e67576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603d60248201527f4d65726b6c65547269653a206b65792072656d61696e646572206d757374206260448201527f65206964656e746963616c20746f20706174682072656d61696e6465720000006064820152608401611ac6565b613e818760200151600181518110613afe57613afe615cf8565b9c5060008d5111613f14576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603960248201527f4d65726b6c65547269653a2076616c7565206c656e677468206d75737420626560448201527f2067726561746572207468616e207a65726f20286c65616629000000000000006064820152608401611ac6565b60018c51613f22919061586c565b8814613fb0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603860248201527f4d65726b6c65547269653a2076616c7565206e6f6465206d757374206265206c60448201527f617374206e6f646520696e2070726f6f6620286c6561662900000000000000006064820152608401611ac6565b505050505050505050505050612f26565b60ff85161580613fd4575060ff85166001145b15614013576140008760200151600181518110613ff357613ff3615cf8565b60200260200101516144a3565b995061400c818a615e58565b985061409b565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4d65726b6c65547269653a2072656365697665642061206e6f6465207769746860448201527f20616e20756e6b6e6f776e2070726566697800000000000000000000000000006064820152608401611ac6565b50505050505061412e565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f4d65726b6c65547269653a20726563656976656420616e20756e70617273656160448201527f626c65206e6f64650000000000000000000000000000000000000000000000006064820152608401611ac6565b508061413981615df9565b9150506137fd565b506040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f4d65726b6c65547269653a2072616e206f7574206f662070726f6f6620656c6560448201527f6d656e74730000000000000000000000000000000000000000000000000000006064820152608401611ac6565b6000808211614235576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f554e444546494e454400000000000000000000000000000000000000000000006044820152606401611ac6565b5060016fffffffffffffffffffffffffffffffff821160071b82811c67ffffffffffffffff1060061b1782811c63ffffffff1060051b1782811c61ffff1060041b1782811c60ff10600390811b90911783811c600f1060021b1783811c909110821b1791821c111790565b80516060908067ffffffffffffffff8111156142be576142be614f80565b60405190808252806020026020018201604052801561430357816020015b60408051808201909152606080825260208201528152602001906001900390816142dc5790505b50915060005b8181101561438557604051806040016040528085838151811061432e5761432e615cf8565b6020026020010151815260200161435d86848151811061435057614350615cf8565b60200260200101516145cf565b81525083828151811061437257614372615cf8565b6020908102919091010152600101614309565b5050919050565b606080604051905082518060011b603f8101601f1916830160405280835250602084016020830160005b838110156143e4578060011b82018184015160001a8060041c8253600f8116600183015350506001016143b6565b509295945050505050565b606060008060006143ff856145e2565b91945092509050600081600181111561441a5761441a615ca8565b14614451576040517f1ff9b2e400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61445b8284615e58565b855114614494576040517f5c5537b800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6132c085602001518484614a80565b606060208260000151106144bf576144ba826143ef565b611377565b61137782614b14565b60606113776144e78360200151600081518110613afe57613afe615cf8565b61438c565b60608251821061450b5750604080516020810190915260008152611377565b612f26838384865161451d919061586c565b614b2a565b6000808251845110614535578251614538565b83515b90505b80821080156145bf575082828151811061455757614557615cf8565b602001015160f81c60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191684838151811061459657614596615cf8565b01602001517fff0000000000000000000000000000000000000000000000000000000000000016145b156132605781600101915061453b565b60606113776145dd83614d02565b614d6f565b60008060008360000151600003614625576040517f5ab458fb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6020840151805160001a607f811161464a576000600160009450945094505050614a79565b60b7811161476057600061465f60808361586c565b90508087600001511161469e576040517f66c9448500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001838101517fff0000000000000000000000000000000000000000000000000000000000000016908214801561471657507f80000000000000000000000000000000000000000000000000000000000000007fff000000000000000000000000000000000000000000000000000000000000008216105b1561474d576040517fbabb01dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5060019550935060009250614a79915050565b60bf81116148be57600061477560b78361586c565b9050808760000151116147b4576040517f66c9448500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60018301517fff00000000000000000000000000000000000000000000000000000000000000166000819003614816576040517fbabb01dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600184015160088302610100031c6037811161485e576040517fbabb01dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6148688184615e58565b8951116148a1576040517f66c9448500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6148ac836001615e58565b9750955060009450614a799350505050565b60f781116149235760006148d360c08361586c565b905080876000015111614912576040517f66c9448500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600195509350849250614a79915050565b600061493060f78361586c565b90508087600001511161496f576040517f66c9448500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60018301517fff000000000000000000000000000000000000000000000000000000000000001660008190036149d1576040517fbabb01dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600184015160088302610100031c60378111614a19576040517fbabb01dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b614a238184615e58565b895111614a5c576040517f66c9448500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b614a67836001615e58565b9750955060019450614a799350505050565b9193909250565b60608167ffffffffffffffff811115614a9b57614a9b614f80565b6040519080825280601f01601f191660200182016040528015614ac5576020820181803683370190505b5090508115612f26576000614ada8486615e58565b90506020820160005b84811015614afb578281015182820152602001614ae3565b84811115614b0a576000858301525b5050509392505050565b6060611377826020015160008460000151614a80565b60608182601f011015614b99576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f736c6963655f6f766572666c6f770000000000000000000000000000000000006044820152606401611ac6565b828284011015614c05576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f736c6963655f6f766572666c6f770000000000000000000000000000000000006044820152606401611ac6565b81830184511015614c72576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f736c6963655f6f75744f66426f756e64730000000000000000000000000000006044820152606401611ac6565b606082158015614c915760405191506000825260208201604052614cf9565b6040519150601f8416801560200281840101858101878315602002848b0101015b81831015614cca578051835260209283019201614cb2565b5050858452601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016604052505b50949350505050565b60408051808201909152600080825260208201528151600003614d51576040517f5ab458fb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50604080518082019091528151815260209182019181019190915290565b60606000806000614d7f856145e2565b919450925090506001816001811115614d9a57614d9a615ca8565b14614dd1576040517f4b9c6abe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8451614ddd8385615e58565b14614e14576040517f5c5537b800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604080516020808252610420820190925290816020015b6040805180820190915260008082526020820152815260200190600190039081614e2b5790505093506000835b8651811015614f1957600080614e9e6040518060400160405280858c60000151614e82919061586c565b8152602001858c60200151614e979190615e58565b90526145e2565b509150915060405180604001604052808383614eba9190615e58565b8152602001848b60200151614ecf9190615e58565b815250888581518110614ee457614ee4615cf8565b6020908102919091010152614efa600185615e58565b9350614f068183615e58565b614f109084615e58565b92505050614e58565b50845250919392505050565b73ffffffffffffffffffffffffffffffffffffffff811681146118e357600080fd5b60008060408385031215614f5a57600080fd5b8235614f6581614f25565b91506020830135614f7581614f25565b809150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040516060810167ffffffffffffffff81118282101715614fd257614fd2614f80565b60405290565b6040805190810167ffffffffffffffff81118282101715614fd257614fd2614f80565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff8111828210171561504257615042614f80565b604052919050565b600082601f83011261505b57600080fd5b813567ffffffffffffffff81111561507557615075614f80565b6150a660207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601614ffb565b8181528460208386010111156150bb57600080fd5b816020850160208301376000918101602001919091529392505050565b600060c082840312156150ea57600080fd5b60405160c0810167ffffffffffffffff828210818311171561510e5761510e614f80565b81604052829350843583526020850135915061512982614f25565b8160208401526040850135915061513f82614f25565b816040840152606085013560608401526080850135608084015260a085013591508082111561516d57600080fd5b5061517a8582860161504a565b60a0830152505092915050565b6000806040838503121561519a57600080fd5b823567ffffffffffffffff8111156151b157600080fd5b6151bd858286016150d8565b9250506020830135614f7581614f25565b6000602082840312156151e057600080fd5b8135612f2681614f25565b6000608082840312156151fd57600080fd5b50919050565b60008083601f84011261521557600080fd5b50813567ffffffffffffffff81111561522d57600080fd5b6020830191508360208260051b850101111561524857600080fd5b9250929050565b600080600080600060e0868803121561526757600080fd5b853567ffffffffffffffff8082111561527f57600080fd5b61528b89838a016150d8565b9650602088013595506152a18960408a016151eb565b945060c08801359150808211156152b757600080fd5b506152c488828901615203565b969995985093965092949392505050565b6000602082840312156152e757600080fd5b5035919050565b60005b838110156153095781810151838201526020016152f1565b8381111561126c5750506000910152565b600081518084526153328160208601602086016152ee565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000612f26602083018461531a565b6000806040838503121561538a57600080fd5b823591506020830135614f7581614f25565b6000602082840312156153ae57600080fd5b813567ffffffffffffffff8111156153c557600080fd5b6153d1848285016150d8565b949350505050565b6000806000806000806000610120888a0312156153f557600080fd5b873567ffffffffffffffff8082111561540d57600080fd5b6154198b838c016150d8565b985060208a0135915061542b82614f25565b909650604089013595506060890135908082111561544857600080fd5b908901906060828c03121561545c57600080fd5b81955061546c8b60808c016151eb565b94506101008a013591508082111561548357600080fd5b506154908a828b01615203565b989b979a50959850939692959293505050565b67ffffffffffffffff811681146118e357600080fd5b6000602082840312156154cb57600080fd5b8135612f26816154a3565b600080604083850312156154e957600080fd5b50508035926020909101359150565b60008060006060848603121561550d57600080fd5b833561551881614f25565b9250602084013561552881614f25565b9150604084013561553881614f25565b809150509250925092565b80151581146118e357600080fd5b600080600080600060a0868803121561556957600080fd5b853561557481614f25565b945060208601359350604086013561558b816154a3565b9250606086013561559b81615543565b9150608086013567ffffffffffffffff8111156155b757600080fd5b6155c38882890161504a565b9150509295509295909350565b8581528460208201527fffffffffffffffff0000000000000000000000000000000000000000000000008460c01b16604082015282151560f81b6048820152600082516156248160498501602087016152ee565b919091016049019695505050505050565b60006020828403121561564757600080fd5b8151612f2681614f25565b63ffffffff811681146118e357600080fd5b60006020828403121561567657600080fd5b8151612f2681615652565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156156e8576156e8615681565b500290565b6000602082840312156156ff57600080fd5b8151612f2681615543565b60008060006060848603121561571f57600080fd5b835161572a81615652565b602085015190935061573b816154a3565b604085015190925061553881614f25565b60006080828403121561575e57600080fd5b6040516080810181811067ffffffffffffffff8211171561578157615781614f80565b8060405250823581526020830135602082015260408301356040820152606083013560608201528091505092915050565b600067ffffffffffffffff8211156157cc576157cc614f80565b5060051b60200190565b60006157e96157e4846157b2565b614ffb565b80848252602080830192508560051b85013681111561580757600080fd5b855b8181101561584357803567ffffffffffffffff8111156158295760008081fd5b61583536828a0161504a565b865250938201938201615809565b50919695505050505050565b60006020828403121561586157600080fd5b8151612f26816154a3565b60008282101561587e5761587e615681565b500390565b60006060823603121561589557600080fd5b61589d614faf565b82357fff00000000000000000000000000000000000000000000000000000000000000811681146158cd57600080fd5b81526020838101356158de816154a3565b8282015260408481013567ffffffffffffffff8111156158fd57600080fd5b850136601f82011261590e57600080fd5b803561591c6157e4826157b2565b81815260069190911b8201840190848101903683111561593b57600080fd5b928501925b8284101561597b578484360312156159585760008081fd5b615960614fd8565b84358152868501358782015282529284019290850190615940565b93860193909352509295945050505050565b60006020828403121561599f57600080fd5b5051919050565b600067ffffffffffffffff808316818516818304811182151516156159cd576159cd615681565b02949350505050565b600067ffffffffffffffff8083168185168083038211156159f9576159f9615681565b01949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600082615a4057615a40615a02565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83147f800000000000000000000000000000000000000000000000000000000000000083141615615a9457615a94615681565b500590565b6000808312837f800000000000000000000000000000000000000000000000000000000000000001831281151615615ad357615ad3615681565b837f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff018313811615615b0757615b07615681565b50500390565b60007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600084136000841385830485118282161615615b4e57615b4e615681565b7f80000000000000000000000000000000000000000000000000000000000000006000871286820588128184161615615b8957615b89615681565b60008712925087820587128484161615615ba557615ba5615681565b87850587128184161615615bbb57615bbb615681565b505050929093029392505050565b6000808212827f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03841381151615615c0357615c03615681565b827f8000000000000000000000000000000000000000000000000000000000000000038412811615615c3757615c37615681565b50500190565b600082615c4c57615c4c615a02565b500490565b868152600073ffffffffffffffffffffffffffffffffffffffff808816602084015280871660408401525084606083015283608083015260c060a0830152615c9c60c083018461531a565b98975050505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600060208284031215615ce957600080fd5b815160038110612f2657600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b805160ff81168114615d3857600080fd5b919050565b600060c08284031215615d4f57600080fd5b60405160c0810181811067ffffffffffffffff82111715615d7257615d72614f80565b6040528251615d8081615652565b8152615d8e60208401615d27565b6020820152615d9f60408401615d27565b60408201526060830151615db281615652565b60608201526080830151615dc581615652565b608082015260a08301516fffffffffffffffffffffffffffffffff81168114615ded57600080fd5b60a08201529392505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203615e2a57615e2a615681565b5060010190565b60008451615e438184602089016152ee565b91909101928352506020820152604001919050565b60008219821115615e6b57615e6b615681565b500190565b600060ff831680615e8357615e83615a02565b8060ff84160691505092915050565b600060ff821660ff841680821015615eac57615eac615681565b9003939250505056fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R`\x046\x10a\x028W`\x005`\xE0\x1C\x80c\x8C1R\xE9\x11a\x018W\x80c\xBB,r~\x11a\0\xB0W\x80c\xCF\xF0\xAB\x96\x11a\0\x7FW\x80c\xDA\xD5D\xE0\x11a\0dW\x80c\xDA\xD5D\xE0\x14a\x08*W\x80c\xE9\xE0\\B\x14a\x08?W\x80c\xF2\xB4\xE6\x17\x14a\x08RW`\0\x80\xFD[\x80c\xCF\xF0\xAB\x96\x14a\x07WW\x80c\xD3%\xD3\xBF\x14a\x07\xF8W`\0\x80\xFD[\x80c\xBB,r~\x14a\x06HW\x80c\xBD\xA2\x04\xBB\x14a\x06\xEFW\x80c\xBFe:\\\x14a\x07\x04W\x80c\xC0\xC5;\x8B\x14a\x077W`\0\x80\xFD[\x80c\x9B\xF6-\x82\x11a\x01\x07W\x80c\xA3]\x99\xDF\x11a\0\xECW\x80c\xA3]\x99\xDF\x14a\x05\xDBW\x80c\xA3\x86\x0FH\x14a\x05\xFBW\x80c\xB6\x82\xC4D\x14a\x06\x1BW`\0\x80\xFD[\x80c\x9B\xF6-\x82\x14a\x05~W\x80c\xA1B8\xE7\x14a\x05\xABW`\0\x80\xFD[\x80c\x8C1R\xE9\x14a\x05\tW\x80c\x8C\x90\xDDe\x14a\x05)W\x80c\x95+'\x97\x14a\x05IW\x80c\x99\xA8\x8E\xC4\x14a\x05^W`\0\x80\xFD[\x80cE\x88M2\x11a\x01\xCBW\x80cT\xFDMP\x11a\x01\x9AW\x80c\\\x97Z\xBB\x11a\x01\x7FW\x80c\\\x97Z\xBB\x14a\x04\xD4W\x80cq\xC1Vn\x14a\x04\xE9W\x80c\x8BL@\xB0\x14a\x02]W`\0\x80\xFD[\x80cT\xFDMP\x14a\x04[W\x80c\\\x0C\xBA3\x14a\x04\xA7W`\0\x80\xFD[\x80cE\x88M2\x14a\x03\xA2W\x80cHpIo\x14a\x03\xD2W\x80cO\xD0CL\x14a\x03\xF2W\x80cQ7G\xAB\x14a\x04 W`\0\x80\xFD[\x80c<\x9F9|\x11a\x02\x07W\x80c<\x9F9|\x14a\x03.W\x80c>G\x15\x8C\x14a\x03XW\x80cC\xCA\x1CP\x14a\x03mW\x80cE*\x93 \x14a\x03\x8DW`\0\x80\xFD[\x80c!R\xF2\xBE\x14a\x02dW\x80c3\xD7\xE2\xBD\x14a\x02\x84W\x80c5\xE8\n\xB3\x14a\x02\xDBW\x80c8\xD3\x8C\x97\x14a\x02\xF0W`\0\x80\xFD[6a\x02_Wa\x02]34b\x01\x86\xA0`\0`@Q\x80` \x01`@R\x80`\0\x81RPa\x08gV[\0[`\0\x80\xFD[4\x80\x15a\x02pW`\0\x80\xFD[Pa\x02]a\x02\x7F6`\x04aOGV[a\n\xB3V[4\x80\x15a\x02\x90W`\0\x80\xFD[P`7Ta\x02\xB1\x90s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[4\x80\x15a\x02\xE7W`\0\x80\xFD[Pa\x02\xB1a\x0B\xF9V[4\x80\x15a\x02\xFCW`\0\x80\xFD[P`@Q`\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x81R` \x01a\x02\xD2V[4\x80\x15a\x03:W`\0\x80\xFD[Pa\x03Ca\x0C\x92V[`@Qc\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01a\x02\xD2V[4\x80\x15a\x03dW`\0\x80\xFD[Pa\x02\xB1a\r&V[4\x80\x15a\x03yW`\0\x80\xFD[Pa\x02]a\x03\x886`\x04aQ\x87V[a\x0F1V[4\x80\x15a\x03\x99W`\0\x80\xFD[Pa\x02\xB1a\x12rV[4\x80\x15a\x03\xAEW`\0\x80\xFD[Pa\x03\xC2a\x03\xBD6`\x04aQ\xCEV[a\x12\xE2V[`@Q\x90\x15\x15\x81R` \x01a\x02\xD2V[4\x80\x15a\x03\xDEW`\0\x80\xFD[Pa\x02]a\x03\xED6`\x04aROV[a\x13}V[4\x80\x15a\x03\xFEW`\0\x80\xFD[Pa\x04\x07a\x14\xADV[`@Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01a\x02\xD2V[4\x80\x15a\x04,W`\0\x80\xFD[Pa\x04Ma\x04;6`\x04aR\xD5V[`\0\x90\x81R`<` R`@\x90 T\x90V[`@Q\x90\x81R` \x01a\x02\xD2V[4\x80\x15a\x04gW`\0\x80\xFD[P`@\x80Q\x80\x82\x01\x82R`\r\x81R\x7F5.1.0+interop\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0` \x82\x01R\x90Qa\x02\xD2\x91\x90aSdV[4\x80\x15a\x04\xB3W`\0\x80\xFD[P`>Ta\x02\xB1\x90s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[4\x80\x15a\x04\xE0W`\0\x80\xFD[Pa\x03\xC2a\x15AV[4\x80\x15a\x04\xF5W`\0\x80\xFD[Pa\x02]a\x05\x046`\x04aSwV[a\x15\xD5V[4\x80\x15a\x05\x15W`\0\x80\xFD[Pa\x02]a\x05$6`\x04aS\x9CV[a\x18\xD9V[4\x80\x15a\x055W`\0\x80\xFD[Pa\x02]a\x05D6`\x04aS\xD9V[a\x18\xE6V[4\x80\x15a\x05UW`\0\x80\xFD[Pa\x04Ma\x19jV[4\x80\x15a\x05jW`\0\x80\xFD[Pa\x02]a\x05y6`\x04aOGV[a\x19\xFEV[4\x80\x15a\x05\x8AW`\0\x80\xFD[P`2Ta\x02\xB1\x90s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[4\x80\x15a\x05\xB7W`\0\x80\xFD[Pa\x03\xC2a\x05\xC66`\x04aR\xD5V[`3` R`\0\x90\x81R`@\x90 T`\xFF\x16\x81V[4\x80\x15a\x05\xE7W`\0\x80\xFD[Pa\x04\x07a\x05\xF66`\x04aT\xB9V[a\x1B\xC0V[4\x80\x15a\x06\x07W`\0\x80\xFD[Pa\x02\xB1a\x06\x166`\x04aT\xD6V[a\x1B\xD9V[4\x80\x15a\x06'W`\0\x80\xFD[P`?Ta\x02\xB1\x90s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[4\x80\x15a\x06TW`\0\x80\xFD[Pa\x06\xBAa\x06c6`\x04aSwV[`9` \x90\x81R`\0\x92\x83R`@\x80\x84 \x90\x91R\x90\x82R\x90 Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x90t\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x82V[`@\x80Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x93\x16\x83Rg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16` \x83\x01R\x01a\x02\xD2V[4\x80\x15a\x06\xFBW`\0\x80\xFD[Pa\x02]a\x1C\x1EV[4\x80\x15a\x07\x10W`\0\x80\xFD[P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x04MV[4\x80\x15a\x07CW`\0\x80\xFD[Pa\x02]a\x07R6`\x04aT\xF8V[a\x1D\0V[4\x80\x15a\x07cW`\0\x80\xFD[P`\x01Ta\x07\xBF\x90o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x90g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFFp\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x82\x04\x81\x16\x91x\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04\x16\x83V[`@\x80Qo\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x94\x16\x84Rg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x92\x83\x16` \x85\x01R\x91\x16\x90\x82\x01R``\x01a\x02\xD2V[4\x80\x15a\x08\x04W`\0\x80\xFD[P`?Ta\x03\xC2\x90t\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16\x81V[4\x80\x15a\x086W`\0\x80\xFD[Pa\x02\xB1a\x1E\xFDV[a\x02]a\x08M6`\x04aUQV[a\x08gV[4\x80\x15a\x08^W`\0\x80\xFD[Pa\x02\xB1a\x1FQV[\x82`\0Z\x90P4\x15a\x08\xF7W`?`\0\x90T\x90a\x01\0\n\x90\x04s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\x1E\xE1\x16\xBF4`@Q\x82c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01`\0`@Q\x80\x83\x03\x81\x85\x88\x80;\x15\x80\x15a\x08\xDDW`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x08\xF1W=`\0\x80>=`\0\xFD[PPPPP[\x83\x80\x15a\t\x19WPs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x16\x15\x15[\x15a\tPW`@Q\x7F\xC5\xDE\xFB\xAD\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\x01`@Q\x80\x91\x03\x90\xFD[a\tZ\x83Qa\x1B\xC0V[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x85g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x10\x15a\t\xA7W`@Q\x7Fp\xC8\xBD\xBD\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\x01`@Q\x80\x91\x03\x90\xFD[b\x01\xD4\xC0\x83Q\x11\x15a\t\xE5W`@Q\x7FZ\xA3\xBA\xC9\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\x01`@Q\x80\x91\x03\x90\xFD[3a\t\xEEa\x1F\xC1V[a\n\x0BWP3s\x11\x11\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x11\x11\x01[`\x004\x88\x88\x88\x88`@Q` \x01a\n&\x95\x94\x93\x92\x91\x90aU\xD0V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x90P`\0\x89s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x83s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xB3\x815h\xD9\x99\x1F\xC9Q\x96\x1F\xCBLxH\x93WB@\xA2\x89%`M\t\xFCW|U\xBB|2\x84`@Qa\n\x96\x91\x90aSdV[`@Q\x80\x91\x03\x90\xA4PPa\n\xAA\x82\x82a\x1F\xFFV[PPPPPPPV[a\n\xBBa\"\xD6V[a\n\xC3a#\x15V[`>Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x83\x16\x91\x16\x03a\x0B\x17W`@Q\x7Fx]\xF9\x11\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\x01`@Q\x80\x91\x03\x90\xFD[`?\x80T`>\x80Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x85\x81\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x83\x16\x81\x17\x90\x93U\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x84\x16\x87\x82\x16\x90\x81\x17t\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x17\x90\x95U`@\x80Q\x94\x82\x16\x80\x86R` \x86\x01\x96\x90\x96R\x91\x16\x90\x83\x01\x81\x90R``\x83\x01\x91\x90\x91R\x90\x7F\x9EShG\x1AX\xD8\x19\x87\xE5\xDC}ct\xDD^\xD5\xE7V\xCC\x95\xA7\x9F\xF7&\x904#\xBC\xE0\x06\r\x90`\x80\x01[`@Q\x80\x91\x03\x90\xA1PPPPV[`7T`@\x80Q\x7F5\xE8\n\xB3\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\x90Q`\0\x92s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x91c5\xE8\n\xB3\x91`\x04\x80\x83\x01\x92` \x92\x91\x90\x82\x90\x03\x01\x81\x86Z\xFA\x15\x80\x15a\x0CiW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x0C\x8D\x91\x90aV5V[\x90P\x90V[`>T`@\x80Q\x7F<\x9F9|\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\x90Q`\0\x92s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x91c<\x9F9|\x91`\x04\x80\x83\x01\x92` \x92\x91\x90\x82\x90\x03\x01\x81\x86Z\xFA\x15\x80\x15a\r\x02W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x0C\x8D\x91\x90aVdV[`\0\x80a\rQ\x7F\xB51'hJV\x8B1s\xAE\x13\xB9\xF8\xA6\x01n$>c\xB6\xE8\xEE\x11x\xD6\xA7\x17\x85\x0B]a\x03T\x90V[\x90Ps\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x15a\rtW\x91\x90PV[`@Q\x80`@\x01`@R\x80`\x1A\x81R` \x01\x7FOVM_L1CrossDomainMessenger\0\0\0\0\0\0\x81RPQ`\x02a\r\xB7\x91\x90aV\xB0V[`@\x80Q0` \x82\x01R`\0\x91\x81\x01\x91\x90\x91R\x7FOVM_L1CrossDomainMessenger\0\0\0\0\0\0\x91\x90\x91\x17\x90a\x0E\x12\x90``\x01[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 T\x90V[\x14a\x0EIW`@Q\x7FT\xE43\xCD\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\x01`@Q\x80\x91\x03\x90\xFD[`@\x80Q0` \x82\x01R`\x01\x91\x81\x01\x91\x90\x91R`\0\x90a\x0Ek\x90``\x01a\r\xF8V[\x90Ps\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x15a\x0E\xFFW\x80s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\x8D\xA5\xCB[`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x0E\xD4W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x0E\xF8\x91\x90aV5V[\x92PPP\x90V[`@Q\x7F3!D\xDB\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\x01`@Q\x80\x91\x03\x90\xFD[a\x0F9a\"\xD6V[`2Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a\xDE\xAD\x14a\x0F\x8CW`@Q\x7F\xDF\xEA\xAE\xB8\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\x01`@Q\x80\x91\x03\x90\xFD[a\x0F\x99\x82`@\x01Qa#kV[\x15a\x0F\xD0W`@Q\x7F\xC5\xDE\xFB\xAD\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\x01`@Q\x80\x91\x03\x90\xFD[`\0a\x0F\xDB\x83a#\xAEV[\x90Pa\x0F\xE7\x81\x83a\x15\xD5V[`\0\x81\x81R`3` R`@\x90 \x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x16`\x01\x17\x90U``\x83\x01Q\x15a\x10\xB8W`?T``\x84\x01Q`@Q\x7F\x8DD[\xD0\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\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x92\x16\x91c\x8DD[\xD0\x91a\x10\x85\x91`\x04\x01\x90\x81R` \x01\x90V[`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a\x10\x9FW`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x10\xB3W=`\0\x80>=`\0\xFD[PPPP[\x82` \x01Q`2`\0a\x01\0\n\x81T\x81s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x02\x19\x16\x90\x83s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x02\x17\x90UP`\0a\x11\x1B\x84`@\x01Q\x85`\x80\x01Q\x86``\x01Q\x87`\xA0\x01Qa#\xFBV[`2\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16a\xDE\xAD\x17\x90U`@Q\x90\x91P\x82\x90\x7F\xDB\\vR\x85z\xA1c\xDA\xAD\xD6p\xE1\x16b\x8F\xB4.\x86\x9D\x8A\xC4%\x1E\xF8\x97\x1D\x9EW'\xDF\x1B\x90a\x11\x80\x90\x84\x15\x15\x81R` \x01\x90V[`@Q\x80\x91\x03\x90\xA2\x80\x15\x80\x15a\x11\x9AWP`\0\x84``\x01Q\x11[\x15a\x12'W`?`\0\x90T\x90a\x01\0\n\x90\x04s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\x1E\xE1\x16\xBF\x85``\x01Q`@Q\x82c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01`\0`@Q\x80\x83\x03\x81\x85\x88\x80;\x15\x80\x15a\x12\rW`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x12!W=`\0\x80>=`\0\xFD[PPPPP[\x80\x15\x80\x15a\x125WP2`\x01\x14[\x15a\x12lW`@Q\x7F\xABX\x106\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\x01`@Q\x80\x91\x03\x90\xFD[PPPPV[`7T`@\x80Q\x7FE*\x93 \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\x90Q`\0\x92s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x91cE*\x93 \x91`\x04\x80\x83\x01\x92` \x92\x91\x90\x82\x90\x03\x01\x81\x86Z\xFA\x15\x80\x15a\x0CiW=`\0\x80>=`\0\xFD[`>T`@Q\x7FE\x88M2\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\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x81\x16`\x04\x83\x01R`\0\x92\x16\x90cE\x88M2\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x13SW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x13w\x91\x90aV\xEDV[\x92\x91PPV[a\x13\x85a\"\xD6V[`?Tt\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16\x15a\x13\xDAW`@Q\x7F^t\xB5B\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\x01`@Q\x80\x91\x03\x90\xFD[`\0a\x13\xE4a\x1FQV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xBB\x8A\xA1\xFC\x86`@Q\x82c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01a\x14\x1E\x91\x81R` \x01\x90V[```@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x14;W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x14_\x91\x90aW\nV[`@\x80Q``\x80\x82\x01\x83R`\0\x80\x83R` \x83\x01R\x91\x81\x01\x91\x90\x91R\x90\x93P\x91Pa\x14\x87\x90PV[a\n\xAA\x87\x83`\0\x84a\x14\x9E6\x8B\x90\x03\x8B\x01\x8BaWLV[a\x14\xA8\x89\x8BaW\xD6V[a$YV[`>T`@\x80Q\x7F@\x86\xD1\x83\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\x90Q`\0\x92s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x91c@\x86\xD1\x83\x91`\x04\x80\x83\x01\x92` \x92\x91\x90\x82\x90\x03\x01\x81\x86Z\xFA\x15\x80\x15a\x15\x1DW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x0C\x8D\x91\x90aXOV[`7T`@\x80Q\x7F\\\x97Z\xBB\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\x90Q`\0\x92s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x91c\\\x97Z\xBB\x91`\x04\x80\x83\x01\x92` \x92\x91\x90\x82\x90\x03\x01\x81\x86Z\xFA\x15\x80\x15a\x15\xB1W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x0C\x8D\x91\x90aV\xEDV[`\0\x82\x81R`9` \x90\x81R`@\x80\x83 s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x85\x81\x16\x85R\x90\x83R\x81\x84 \x82Q\x80\x84\x01\x84R\x90T\x91\x82\x16\x80\x82Rt\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x92\x04g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81\x85\x01R\x86\x85R`3\x90\x93R\x92 T\x90\x91\x90`\xFF\x16\x15a\x16\x84W`@Q\x7Fs\n\x10t\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\x01`@Q\x80\x91\x03\x90\xFD[\x81` \x01Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\0\x03a\x16\xCCW`@Q\x7F\xCC\xA6\xAF\xDA\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\x01`@Q\x80\x91\x03\x90\xFD[a\x17K\x81s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xCF\t\xE0\xD0`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x17\x1AW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x17>\x91\x90aXOV[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90V[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x82` \x01Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x11a\x17\x9BW`@Q\x7F\xB4\xCA\xA4\xE5\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\x01`@Q\x80\x91\x03\x90\xFD[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x82` \x01Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16Ba\x17\xD6\x91\x90aXlV[\x11a\x18\rW`@Q\x7F\xD9\xBC\x01\xBE\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\x01`@Q\x80\x91\x03\x90\xFD[`>T`@Q\x7FlODg\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\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x81\x16`\x04\x83\x01R\x90\x91\x16\x90clODg\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x18}W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x18\xA1\x91\x90aV\xEDV[a\x12lW`@Q\x7F3*W\xF8\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\x01`@Q\x80\x91\x03\x90\xFD[V[a\x18\xE3\x813a\x0F1V[PV[a\x18\xEEa\"\xD6V[`?Tt\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16a\x19BW`@Q\x7F^t\xB5B\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\x01`@Q\x80\x91\x03\x90\xFD[a\n\xAA\x87\x87\x87a\x19Q\x88aX\x83V[a\x19`6\x89\x90\x03\x89\x01\x89aWLV[a\x14\xA8\x87\x89aW\xD6V[`>T`@\x80Q\x7F\x95+'\x97\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\x90Q`\0\x92s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x91c\x95+'\x97\x91`\x04\x80\x83\x01\x92` \x92\x91\x90\x82\x90\x03\x01\x81\x86Z\xFA\x15\x80\x15a\x19\xDAW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x0C\x8D\x91\x90aY\x8DV[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\0Ta\x01\0\x90\x04`\xFF\x16\x15\x80\x15a\x1A>WP`\0T`\xFF\x80\x83\x16\x91\x16\x10[a\x1A\xCFW`@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\x82\x01R`.`$\x82\x01R\x7FInitializable: contract is alrea`D\x82\x01R\x7Fdy initialized\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01[`@Q\x80\x91\x03\x90\xFD[`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\x16`\xFF\x83\x16\x17a\x01\0\x17\x90Ua\x1B\x08a,\xB4V[`>\x80Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x85\x81\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x92\x83\x16\x17\x90\x92U`?\x80T\x92\x85\x16\x92\x90\x91\x16\x91\x90\x91\x17\x90U`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\x16\x90U`@Q`\xFF\x82\x16\x81R\x7F\x7F&\xB8?\xF9n\x1F+jh/\x138R\xF6y\x8A\t\xC4e\xDA\x95\x92\x14`\xCE\xFB8G@$\x98\x90` \x01`@Q\x80\x91\x03\x90\xA1PPPV[`\0a\x1B\xCD\x82`(aY\xA6V[a\x13w\x90aR\x08aY\xD6V[`<` R\x81`\0R`@`\0 \x81\x81T\x81\x10a\x1B\xF5W`\0\x80\xFD[`\0\x91\x82R` \x90\x91 \x01Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x91P\x82\x90PV[a\x1C&a#\x15V[`?T`@\x80Q\x7F\x1E\xE1\x16\xBF\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\x90QG\x92s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x91c\x1E\xE1\x16\xBF\x91\x84\x91`\x04\x80\x82\x01\x92`\0\x92\x90\x91\x90\x82\x90\x03\x01\x81\x85\x88\x80;\x15\x80\x15a\x1C\x94W`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x1C\xA8W=`\0\x80>=`\0\xFD[PP`?T`@Q\x85\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x93P\x7F\xD8\x93\xF60\xC6\x86\x7F\xA46\x89\xDA\x9A\xE9I\xEB\xF0L\xAC$\xAA\xD3\xB4\\u\x9DD.\xD3\xC3.:7\x92P` \x01\x90P`@Q\x80\x91\x03\x90\xA2PV[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\0Ta\x01\0\x90\x04`\xFF\x16\x15\x80\x15a\x1D@WP`\0T`\xFF\x80\x83\x16\x91\x16\x10[a\x1D\xCCW`@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\x82\x01R`.`$\x82\x01R\x7FInitializable: contract is alrea`D\x82\x01R\x7Fdy initialized\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x1A\xC6V[`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\x16`\xFF\x83\x16\x17a\x01\0\x17\x90Ua\x1E\x05a,\xB4V[`7\x80Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x87\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x92\x83\x16\x17\x90\x92U`>\x80T\x86\x84\x16\x90\x83\x16\x17\x90U`?\x80T\x85\x84\x16\x92\x16\x91\x90\x91\x17\x90U`2T\x16a\x1E\x9AW`2\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16a\xDE\xAD\x17\x90U[a\x1E\xA2a-5V[`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\x16\x90U`@Q`\xFF\x82\x16\x81R\x7F\x7F&\xB8?\xF9n\x1F+jh/\x138R\xF6y\x8A\t\xC4e\xDA\x95\x92\x14`\xCE\xFB8G@$\x98\x90` \x01a\x0B\xEBV[`\0a\x1F\x07a\r&V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\x8D\xA5\xCB[`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x0CiW=`\0\x80>=`\0\xFD[`>T`@\x80Q\x7F\xF2\xB4\xE6\x17\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\x90Q`\0\x92s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x91c\xF2\xB4\xE6\x17\x91`\x04\x80\x83\x01\x92` \x92\x91\x90\x82\x90\x03\x01\x81\x86Z\xFA\x15\x80\x15a\x0CiW=`\0\x80>=`\0\xFD[`\x0023\x03a\x1F\xD0WP`\x01\x90V[3;`\x17\x03a\x1F\xF8W`@Q` \x81\x01`@R` `\0\x823T`@Q\x7FIk\x9C\x16\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\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x81\x16`\x04\x83\x01R\x90\x91\x16\x90cIk\x9C\x16\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a%\rW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a%1\x91\x90aV\xEDV[a%gW`@Q\x7F\xF3\x95$\x0E\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\x01`@Q\x80\x91\x03\x90\xFD[`>T`@Q\x7F\x04\xE5\x0F\xED\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\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x81\x16`\x04\x83\x01R\x90\x91\x16\x90c\x04\xE5\x0F\xED\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a%\xD7W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a%\xFB\x91\x90aV\xEDV[a&1W`@Q\x7F\xE2\x99'\xED\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01\x85s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c \r.\xD2`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a&~W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a&\xA2\x91\x90a\\\xD7V[`\x02\x81\x11\x15a&\xB3Wa&\xB3a\\\xA8V[\x03a&\xEAW`@Q\x7F\xE2\x99'\xED\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\x01`@Q\x80\x91\x03\x90\xFD[a'8\x85s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xCF\t\xE0\xD0`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x17\x1AW=`\0\x80>=`\0\xFD[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16B\x11a'zW`@Q\x7F\xB4\xCA\xA4\xE5\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\x01`@Q\x80\x91\x03\x90\xFD[`?Tt\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16\x15a)\xC4Wa'\xA6\x83a/\xE5V[a(\x18\x86s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xBC\xEF;U`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a'\xF4W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x1F\xFC\x91\x90aY\x8DV[\x14a(OW`@Q\x7F+\x1A\x9Af\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\x01`@Q\x80\x91\x03\x90\xFD[\x82`@\x01QQ\x84\x10a(\x8DW`@Q\x7F2\xDC(\\\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\x01`@Q\x80\x91\x03\x90\xFD[`\0\x83`@\x01Q\x85\x81Q\x81\x10a(\xA5Wa(\xA5a\\\xF8V[` \x02` \x01\x01Q\x90P`7`\0\x90T\x90a\x01\0\n\x90\x04s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xD6\xAE<\xD5`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a)\x1CW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a)@\x91\x90aY\x8DV[\x81Q\x14a)yW`@Q\x7F|\xC2\xF3\x1B\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\x01`@Q\x80\x91\x03\x90\xFD[a)\x82\x83a/\xFEV[\x81` \x01Q\x14a)\xBEW`@Q\x7FBaI\xAF\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\x01`@Q\x80\x91\x03\x90\xFD[Pa*RV[a)\xCD\x82a/\xFEV[a*\x1B\x86s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xBC\xEF;U`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a'\xF4W=`\0\x80>=`\0\xFD[\x14a*RW`@Q\x7FBaI\xAF\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\x01`@Q\x80\x91\x03\x90\xFD[`\0a*]\x87a#\xAEV[\x90P`\0\x81`\0`@Q` \x01a*~\x92\x91\x90\x91\x82R` \x82\x01R`@\x01\x90V[`@\x80Q\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x81\x84\x03\x01\x81R\x82\x82R\x80Q` \x91\x82\x01 \x90\x83\x01\x81\x90R\x92Pa+)\x91\x01`@\x80Q\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x81\x84\x03\x01\x81R\x82\x82\x01\x82R`\x01\x83R\x7F\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0` \x84\x01R\x90\x87\x01Q\x90\x91\x90\x86\x90a0=V[\x15\x15`\0\x03a+dW`@Q\x7F.W\xEF:\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\x01`@Q\x80\x91\x03\x90\xFD[`@\x80Q\x80\x82\x01\x82Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x8A\x16\x82Rg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFFB\x81\x16` \x80\x85\x01\x91\x82R`\0\x88\x81R`9\x82R\x86\x81 3\x80\x83R\x90\x83R\x87\x82 \x96Q\x87T\x94Q\x90\x95\x16t\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x02\x7F\xFF\xFF\xFF\xFF\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\x90\x94\x16\x94\x86\x16\x94\x90\x94\x17\x92\x90\x92\x17\x90\x94U\x86\x81R`<\x84R\x84\x81 \x80T`\x01\x81\x01\x82U\x90\x82R\x84\x82 \x01\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x90\x92\x17\x90\x91U\x8B\x84\x01Q\x92\x8C\x01Q\x93Q\x92\x82\x16\x93\x90\x91\x16\x91\x85\x91\x7Fg\xA6 \x8C\xFC\xC0\x80\x1DP\xF6\xCB\xE7ds?O\xDD\xF6j\xC0\xB0DB\x06\x1A\x8A\x8C\x0C\xB6\xB6?b\x91\xA4`@Q3\x90\x83\x90\x7Fy\x8F\x9F\x13i_\x8F\x04Z\xA5\xF8\x0E\xD8\xEF\xEB\xB6\x95\xF3\xC7\xFEe\xDA8\x19i\xF2\xF2\x8B\xF3\xC6\x0B\x97\x90`\0\x90\xA3PPPPPPPPV[3a,\xBDa\r&V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14\x15\x80\x15a,\xFEWP3a,\xE5a\x1E\xFDV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14\x15[\x15a\x18\xD7W`@Q\x7F\xC4\x05\n&\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\x01`@Q\x80\x91\x03\x90\xFD[`\0Ta\x01\0\x90\x04`\xFF\x16a-\xCCW`@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\x82\x01R`+`$\x82\x01R\x7FInitializable: contract is not i`D\x82\x01R\x7Fnitializing\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x1A\xC6V[`\x01Tx\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\0\x03a\x18\xD7W`@\x80Q``\x81\x01\x82Rc;\x9A\xCA\0\x80\x82R`\0` \x83\x01RCg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x91\x90\x92\x01\x81\x90Rx\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x02\x17`\x01UV[`@\x80Q`\xC0\x81\x01\x82R`\0\x80\x82R` \x82\x01\x81\x90R\x91\x81\x01\x82\x90R``\x81\x01\x82\x90R`\x80\x81\x01\x82\x90R`\xA0\x81\x01\x91\x90\x91R`7T`@\x80Q\x7F\xCCs\x1B\x02\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\x90Q`\0\x92s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x91c\xCCs\x1B\x02\x91`\x04\x80\x83\x01\x92`\xC0\x92\x91\x90\x82\x90\x03\x01\x81\x86Z\xFA\x15\x80\x15a.\xEAW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x13w\x91\x90a]=V[`\0a/#a/\x1D\x85\x85a0aV[\x83a0qV[\x90P[\x93\x92PPPV[`\0g\r\xE0\xB6\xB3\xA7d\0\0a/na/E\x85\x83aZ1V[a/W\x90g\r\xE0\xB6\xB3\xA7d\0\0aZ\x99V[a/i\x85g\r\xE0\xB6\xB3\xA7d\0\0a[\rV[a0\x80V[a/x\x90\x86a[\rV[a/#\x91\x90aZ1V[`\0\x81\x83\x10\x15a/\x92W\x81a/&V[P\x90\x91\x90PV[`\0\x80Z\x90P[\x82Za/\xAC\x90\x83aXlV[\x10\x15a/\xC2Wa/\xBB\x82a]\xF9V[\x91Pa/\xA0V[PPPV[`\0\x80`?\x83a\x9C@\x01\x02`@\x85\x02\x01`?Z\x02\x10\x15\x94\x93PPPPV[`\0a/\xF0\x82a0\xB1V[\x80Q\x90` \x01 \x90P\x91\x90PV[`\0\x81`\0\x01Q\x82` \x01Q\x83`@\x01Q\x84``\x01Q`@Q` \x01a#\xDE\x94\x93\x92\x91\x90\x93\x84R` \x84\x01\x92\x90\x92R`@\x83\x01R``\x82\x01R`\x80\x01\x90V[`\0\x80a0I\x86a2gV[\x90Pa0W\x81\x86\x86\x86a2\x99V[\x96\x95PPPPPPV[`\0\x81\x83\x12\x15a/\x92W\x81a/&V[`\0\x81\x83\x12a/\x92W\x81a/&V[`\0a/&g\r\xE0\xB6\xB3\xA7d\0\0\x83a0\x98\x86a2\xC9V[a0\xA2\x91\x90a[\rV[a0\xAC\x91\x90aZ1V[a5\rV[\x80Q``\x90\x7F\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x7F\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x14a10W`@Q\x7F\xC0kR8\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\x01`@Q\x80\x91\x03\x90\xFD[\x81`@\x01QQ`\0\x03a1oW`@Q\x7F\x91\x03\xE7\xCD\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\x01`@Q\x80\x91\x03\x90\xFD[`\0\x82`\0\x01Q\x83` \x01Q`\xC0\x1B`@Q` \x01a1\xDE\x92\x91\x90\x7F\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x92\x90\x92\x16\x82R\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16`\x01\x82\x01R`\t\x01\x90V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x90P`\0[\x83`@\x01QQ\x81\x10\x15a2`W`\0\x84`@\x01Q\x82\x81Q\x81\x10a2\x17Wa2\x17a\\\xF8V[` \x90\x81\x02\x91\x90\x91\x01\x81\x01Q\x80Q\x81\x83\x01Q`@Q\x92\x94Pa2;\x93\x87\x93\x01a^1V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x92PP\x80\x80a2X\x90a]\xF9V[\x91PPa1\xF2V[P\x92\x91PPV[``\x81\x80Q\x90` \x01 `@Q` \x01a2\x83\x91\x81R` \x01\x90V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x90P\x91\x90PV[`\0a2\xC0\x84a2\xAA\x87\x86\x86a7LV[\x80Q` \x91\x82\x01 \x82Q\x92\x90\x91\x01\x91\x90\x91 \x14\x90V[\x95\x94PPPPPV[`\0\x80\x82\x13a34W`@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\x82\x01R`\t`$\x82\x01R\x7FUNDEFINED\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`D\x82\x01R`d\x01a\x1A\xC6V[`\0``a3A\x84aA\xCAV[\x03`\x9F\x81\x81\x03\x94\x90\x94\x1B\x90\x93\x1ClFWr\xB2\xBB\xBB_\x82K\x15 z0\x81\x01\x81\x02``\x90\x81\x1Dm\x03\x88\xEA\xA2t\x12\xD5\xAC\xA0&\x81]cn\x01\x82\x02\x81\x1Dm\r\xF9\x9A\xC5\x02\x03\x1B\xF9S\xEF\xF4r\xFD\xCC\x01\x82\x02\x81\x1Dm\x13\xCD\xFF\xB2\x9DQ\xD9\x93\"\xBD\xFF_\"\x11\x01\x82\x02\x81\x1Dm\n\x0Ft #\xDE\xF7\x83\xA3\x07\xA9\x86\x91.\x01\x82\x02\x81\x1Dm\x01\x92\r\x80C\xCA\x89\xB5#\x92S(NB\x01\x82\x02\x81\x1Dl\x0Bz\x86\xD77Th\xFA\xC6g\xA0\xA5'\x01l)P\x8EE\x85C\xD8\xAAM\xF2\xAB\xEEx\x83\x01\x83\x02\x82\x1Dm\x019`\x1A.\xFA\xBEq~`L\xBBH\x94\x01\x83\x02\x82\x1Dm\x02$\x7Fz{e\x942\x06I\xAA\x03\xAB\xA1\x01\x83\x02\x82\x1D\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFFs\xC0\xC7\x16\xA5\x94\xE0\rT\xE3\xC4\xCB\xC9\x01\x83\x02\x82\x1D\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFD\xC7\xB8\x8CB\x0ES\xA9\x89\x053\x12\x9Fo\x01\x83\x02\x90\x91\x1D\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFFF_\xDA'\xEBMc\xDE\xD4t\xE5\xF82\x01\x90\x91\x02\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF5\xF6\xAF\x8F{3\x96dO\x18\xE1W\x96\0\0\0\0\0\0\0\0\0\0\0\0\x01\x05q\x13@\xDA\xA0\xD5\xF7i\xDB\xA1\x91\\\xEFY\xF0\x81ZU\x06\x02}\x02g\xA3l\x0C\x95\xB3\x97Z\xB3\xEE[ :v\x14\xA3\xF7Ss\xF0G\xD8\x03\xAE{f\x87\xF2\xB3\x93\x90\x93\x02\x92\x90\x92\x01}W\x11^G\x01\x8Cqw\xEE\xBF|\xD3p\xA35j\x1Bxc\0\x8AZ\xE8\x02\x8Cr\xB8\x86B\x84\x01`\xAE\x1D\x92\x91PPV[`\0\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFD\xB71\xC9X\xF3M\x94\xC1\x82\x13a5>WP`\0\x91\x90PV[h\x07U\xBFy\x8BJ\x1B\xF1\xE5\x82\x12a5\xB0W`@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\x82\x01R`\x0C`$\x82\x01R\x7FEXP_OVERFLOW\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`D\x82\x01R`d\x01a\x1A\xC6V[e\x03x-\xAC\xE9\xD9`N\x83\x90\x1B\x05\x91P`\0``k\xB1r\x17\xF7\xD1\xCFy\xAB\xC9\xE3\xB3\x98\x84\x82\x1B\x05k\x80\0\0\0\0\0\0\0\0\0\0\0\x01\x90\x1Dk\xB1r\x17\xF7\xD1\xCFy\xAB\xC9\xE3\xB3\x98\x81\x02\x90\x93\x03\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xDB\xF3\xCC\xF1`M&4P\xF0*U\x04\x81\x01\x81\x02``\x90\x81\x1Dm\x02wYI\x91\xCF\xC8_n$a\x83|\xD9\x01\x82\x02\x81\x1D\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE5\xAD\xED\xAA\x1C\xB0\x95\xAF\x9EM\xA1\x0E6<\x01\x82\x02\x81\x1Dm\xB1\xBB\xB2\x01\xF4C\xCF\x96/\x1A\x1D=\xB4\xA5\x01\x82\x02\x81\x1D\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFD8\xDCw&\x08\xB0\xAEV\xCC\xE0\x12\x96\xC0\xEB\x01\x82\x02\x81\x1Dn\x05\x18\x0B\xB1G\x99\xABG\xA8\xA8\xCB*R}W\x01m\x02\xD1g W{\xD1\x9B\xF6\x14\x17o\xE9\xEAl\x10\xFEh\xE7\xFD7\xD0\0{q?vP\x84\x01\x84\x02\x83\x1D\x90\x81\x01\x90\x84\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE,i\x81,\xF0;\x07c\xFDEJ\x8F~\x01\x02\x90\x91\x1Dn\x05\x87\xF5\x03\xBBn\xA2\x9D%\xFC\xB7@\x19dP\x01\x90\x91\x02y\xD85\xEB\xBA\x82L\x98\xFB1\xB8;,\xA4\\\0\0\0\0\0\0\0\0\0\0\0\0\x01\x05t\x02\x9D\x9D\xC3\x85c\xC3.\\/m\xC1\x92\xEEp\xEFe\xF9\x97\x8A\xF3\x02`\xC3\x93\x90\x93\x03\x92\x90\x92\x1C\x92\x91PPV[```\0\x84Q\x11a7\xB9W`@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\x82\x01R`\x15`$\x82\x01R\x7FMerkleTrie: empty key\0\0\0\0\0\0\0\0\0\0\0`D\x82\x01R`d\x01a\x1A\xC6V[`\0a7\xC4\x84aB\xA0V[\x90P`\0a7\xD1\x86aC\x8CV[\x90P`\0\x84`@Q` \x01a7\xE8\x91\x81R` \x01\x90V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x90P`\0\x80[\x84Q\x81\x10\x15aAAW`\0\x85\x82\x81Q\x81\x10a8\x1AWa8\x1Aa\\\xF8V[` \x02` \x01\x01Q\x90P\x84Q\x83\x11\x15a8\xB5W`@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\x82\x01R`.`$\x82\x01R\x7FMerkleTrie: key index exceeds to`D\x82\x01R\x7Ftal key length\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x1A\xC6V[\x82`\0\x03a9nW\x80Q\x80Q` \x91\x82\x01 `@Qa9\x03\x92a8\xDD\x92\x91\x01\x90\x81R` \x01\x90V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x85\x80Q` \x91\x82\x01 \x82Q\x92\x90\x91\x01\x91\x90\x91 \x14\x90V[a9iW`@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\x82\x01R`\x1D`$\x82\x01R\x7FMerkleTrie: invalid root hash\0\0\0`D\x82\x01R`d\x01a\x1A\xC6V[a:\xC5V[\x80QQ` \x11a:$W\x80Q\x80Q` \x91\x82\x01 `@Qa9\x98\x92a8\xDD\x92\x91\x01\x90\x81R` \x01\x90V[a9iW`@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\x82\x01R`'`$\x82\x01R\x7FMerkleTrie: invalid large intern`D\x82\x01R\x7Fal hash\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`d\x82\x01R`\x84\x01a\x1A\xC6V[\x80Q\x84Q` \x80\x87\x01\x91\x90\x91 \x82Q\x91\x90\x92\x01 \x14a:\xC5W`@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\x82\x01R`&`$\x82\x01R\x7FMerkleTrie: invalid internal nod`D\x82\x01R\x7Fe hash\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`d\x82\x01R`\x84\x01a\x1A\xC6V[a:\xD1`\x10`\x01a^XV[\x81` \x01QQ\x03a<\xADW\x84Q\x83\x03agW`@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\x82\x01R`=`$\x82\x01R\x7FMerkleTrie: key remainder must b`D\x82\x01R\x7Fe identical to path remainder\0\0\0`d\x82\x01R`\x84\x01a\x1A\xC6V[a>\x81\x87` \x01Q`\x01\x81Q\x81\x10a:\xFEWa:\xFEa\\\xF8V[\x9CP`\0\x8DQ\x11a?\x14W`@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\x82\x01R`9`$\x82\x01R\x7FMerkleTrie: value length must be`D\x82\x01R\x7F greater than zero (leaf)\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x1A\xC6V[`\x01\x8CQa?\"\x91\x90aXlV[\x88\x14a?\xB0W`@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\x82\x01R`8`$\x82\x01R\x7FMerkleTrie: value node must be l`D\x82\x01R\x7Fast node in proof (leaf)\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x1A\xC6V[PPPPPPPPPPPPa/&V[`\xFF\x85\x16\x15\x80a?\xD4WP`\xFF\x85\x16`\x01\x14[\x15a@\x13Wa@\0\x87` \x01Q`\x01\x81Q\x81\x10a?\xF3Wa?\xF3a\\\xF8V[` \x02` \x01\x01QaD\xA3V[\x99Pa@\x0C\x81\x8Aa^XV[\x98Pa@\x9BV[`@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\x82\x01R`2`$\x82\x01R\x7FMerkleTrie: received a node with`D\x82\x01R\x7F an unknown prefix\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x1A\xC6V[PPPPPPaA.V[`@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\x82\x01R`(`$\x82\x01R\x7FMerkleTrie: received an unparsea`D\x82\x01R\x7Fble node\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x1A\xC6V[P\x80aA9\x81a]\xF9V[\x91PPa7\xFDV[P`@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\x82\x01R`%`$\x82\x01R\x7FMerkleTrie: ran out of proof ele`D\x82\x01R\x7Fments\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`d\x82\x01R`\x84\x01a\x1A\xC6V[`\0\x80\x82\x11aB5W`@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\x82\x01R`\t`$\x82\x01R\x7FUNDEFINED\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`D\x82\x01R`d\x01a\x1A\xC6V[P`\x01o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11`\x07\x1B\x82\x81\x1Cg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x10`\x06\x1B\x17\x82\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x82\x81\x1Ca\xFF\xFF\x10`\x04\x1B\x17\x82\x81\x1C`\xFF\x10`\x03\x90\x81\x1B\x90\x91\x17\x83\x81\x1C`\x0F\x10`\x02\x1B\x17\x83\x81\x1C\x90\x91\x10\x82\x1B\x17\x91\x82\x1C\x11\x17\x90V[\x80Q``\x90\x80g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15aB\xBEWaB\xBEaO\x80V[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15aC\x03W\x81` \x01[`@\x80Q\x80\x82\x01\x90\x91R``\x80\x82R` \x82\x01R\x81R` \x01\x90`\x01\x90\x03\x90\x81aB\xDCW\x90P[P\x91P`\0[\x81\x81\x10\x15aC\x85W`@Q\x80`@\x01`@R\x80\x85\x83\x81Q\x81\x10aC.WaC.a\\\xF8V[` \x02` \x01\x01Q\x81R` \x01aC]\x86\x84\x81Q\x81\x10aCPWaCPa\\\xF8V[` \x02` \x01\x01QaE\xCFV[\x81RP\x83\x82\x81Q\x81\x10aCrWaCra\\\xF8V[` \x90\x81\x02\x91\x90\x91\x01\x01R`\x01\x01aC\tV[PP\x91\x90PV[``\x80`@Q\x90P\x82Q\x80`\x01\x1B`?\x81\x01`\x1F\x19\x16\x83\x01`@R\x80\x83RP` \x84\x01` \x83\x01`\0[\x83\x81\x10\x15aC\xE4W\x80`\x01\x1B\x82\x01\x81\x84\x01Q`\0\x1A\x80`\x04\x1C\x82S`\x0F\x81\x16`\x01\x83\x01SPP`\x01\x01aC\xB6V[P\x92\x95\x94PPPPPV[```\0\x80`\0aC\xFF\x85aE\xE2V[\x91\x94P\x92P\x90P`\0\x81`\x01\x81\x11\x15aD\x1AWaD\x1Aa\\\xA8V[\x14aDQW`@Q\x7F\x1F\xF9\xB2\xE4\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\x01`@Q\x80\x91\x03\x90\xFD[aD[\x82\x84a^XV[\x85Q\x14aD\x94W`@Q\x7F\\U7\xB8\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\x01`@Q\x80\x91\x03\x90\xFD[a2\xC0\x85` \x01Q\x84\x84aJ\x80V[``` \x82`\0\x01Q\x10aD\xBFWaD\xBA\x82aC\xEFV[a\x13wV[a\x13w\x82aK\x14V[``a\x13waD\xE7\x83` \x01Q`\0\x81Q\x81\x10a:\xFEWa:\xFEa\\\xF8V[aC\x8CV[``\x82Q\x82\x10aE\x0BWP`@\x80Q` \x81\x01\x90\x91R`\0\x81Ra\x13wV[a/&\x83\x83\x84\x86QaE\x1D\x91\x90aXlV[aK*V[`\0\x80\x82Q\x84Q\x10aE5W\x82QaE8V[\x83Q[\x90P[\x80\x82\x10\x80\x15aE\xBFWP\x82\x82\x81Q\x81\x10aEWWaEWa\\\xF8V[` \x01\x01Q`\xF8\x1C`\xF8\x1B~\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x19\x16\x84\x83\x81Q\x81\x10aE\x96WaE\x96a\\\xF8V[\x01` \x01Q\x7F\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x14[\x15a2`W\x81`\x01\x01\x91PaE;V[``a\x13waE\xDD\x83aM\x02V[aMoV[`\0\x80`\0\x83`\0\x01Q`\0\x03aF%W`@Q\x7FZ\xB4X\xFB\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\x01`@Q\x80\x91\x03\x90\xFD[` \x84\x01Q\x80Q`\0\x1A`\x7F\x81\x11aFJW`\0`\x01`\0\x94P\x94P\x94PPPaJyV[`\xB7\x81\x11aG`W`\0aF_`\x80\x83aXlV[\x90P\x80\x87`\0\x01Q\x11aF\x9EW`@Q\x7Ff\xC9D\x85\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01\x83\x81\x01Q\x7F\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x90\x82\x14\x80\x15aG\x16WP\x7F\x80\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x7F\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x82\x16\x10[\x15aGMW`@Q\x7F\xBA\xBB\x01\xDD\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\x01`@Q\x80\x91\x03\x90\xFD[P`\x01\x95P\x93P`\0\x92PaJy\x91PPV[`\xBF\x81\x11aH\xBEW`\0aGu`\xB7\x83aXlV[\x90P\x80\x87`\0\x01Q\x11aG\xB4W`@Q\x7Ff\xC9D\x85\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01\x83\x01Q\x7F\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16`\0\x81\x90\x03aH\x16W`@Q\x7F\xBA\xBB\x01\xDD\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01\x84\x01Q`\x08\x83\x02a\x01\0\x03\x1C`7\x81\x11aH^W`@Q\x7F\xBA\xBB\x01\xDD\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\x01`@Q\x80\x91\x03\x90\xFD[aHh\x81\x84a^XV[\x89Q\x11aH\xA1W`@Q\x7Ff\xC9D\x85\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\x01`@Q\x80\x91\x03\x90\xFD[aH\xAC\x83`\x01a^XV[\x97P\x95P`\0\x94PaJy\x93PPPPV[`\xF7\x81\x11aI#W`\0aH\xD3`\xC0\x83aXlV[\x90P\x80\x87`\0\x01Q\x11aI\x12W`@Q\x7Ff\xC9D\x85\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01\x95P\x93P\x84\x92PaJy\x91PPV[`\0aI0`\xF7\x83aXlV[\x90P\x80\x87`\0\x01Q\x11aIoW`@Q\x7Ff\xC9D\x85\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01\x83\x01Q\x7F\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16`\0\x81\x90\x03aI\xD1W`@Q\x7F\xBA\xBB\x01\xDD\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01\x84\x01Q`\x08\x83\x02a\x01\0\x03\x1C`7\x81\x11aJ\x19W`@Q\x7F\xBA\xBB\x01\xDD\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\x01`@Q\x80\x91\x03\x90\xFD[aJ#\x81\x84a^XV[\x89Q\x11aJ\\W`@Q\x7Ff\xC9D\x85\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\x01`@Q\x80\x91\x03\x90\xFD[aJg\x83`\x01a^XV[\x97P\x95P`\x01\x94PaJy\x93PPPPV[\x91\x93\x90\x92PV[``\x81g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15aJ\x9BWaJ\x9BaO\x80V[`@Q\x90\x80\x82R\x80`\x1F\x01`\x1F\x19\x16` \x01\x82\x01`@R\x80\x15aJ\xC5W` \x82\x01\x81\x806\x837\x01\x90P[P\x90P\x81\x15a/&W`\0aJ\xDA\x84\x86a^XV[\x90P` \x82\x01`\0[\x84\x81\x10\x15aJ\xFBW\x82\x81\x01Q\x82\x82\x01R` \x01aJ\xE3V[\x84\x81\x11\x15aK\nW`\0\x85\x83\x01R[PPP\x93\x92PPPV[``a\x13w\x82` \x01Q`\0\x84`\0\x01QaJ\x80V[``\x81\x82`\x1F\x01\x10\x15aK\x99W`@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\x82\x01R`\x0E`$\x82\x01R\x7Fslice_overflow\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`D\x82\x01R`d\x01a\x1A\xC6V[\x82\x82\x84\x01\x10\x15aL\x05W`@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\x82\x01R`\x0E`$\x82\x01R\x7Fslice_overflow\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`D\x82\x01R`d\x01a\x1A\xC6V[\x81\x83\x01\x84Q\x10\x15aLrW`@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\x82\x01R`\x11`$\x82\x01R\x7Fslice_outOfBounds\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`D\x82\x01R`d\x01a\x1A\xC6V[``\x82\x15\x80\x15aL\x91W`@Q\x91P`\0\x82R` \x82\x01`@RaL\xF9V[`@Q\x91P`\x1F\x84\x16\x80\x15` \x02\x81\x84\x01\x01\x85\x81\x01\x87\x83\x15` \x02\x84\x8B\x01\x01\x01[\x81\x83\x10\x15aL\xCAW\x80Q\x83R` \x92\x83\x01\x92\x01aL\xB2V[PP\x85\x84R`\x1F\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16`@RP[P\x94\x93PPPPV[`@\x80Q\x80\x82\x01\x90\x91R`\0\x80\x82R` \x82\x01R\x81Q`\0\x03aMQW`@Q\x7FZ\xB4X\xFB\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\x01`@Q\x80\x91\x03\x90\xFD[P`@\x80Q\x80\x82\x01\x90\x91R\x81Q\x81R` \x91\x82\x01\x91\x81\x01\x91\x90\x91R\x90V[```\0\x80`\0aM\x7F\x85aE\xE2V[\x91\x94P\x92P\x90P`\x01\x81`\x01\x81\x11\x15aM\x9AWaM\x9Aa\\\xA8V[\x14aM\xD1W`@Q\x7FK\x9Cj\xBE\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\x01`@Q\x80\x91\x03\x90\xFD[\x84QaM\xDD\x83\x85a^XV[\x14aN\x14W`@Q\x7F\\U7\xB8\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\x01`@Q\x80\x91\x03\x90\xFD[`@\x80Q` \x80\x82Ra\x04 \x82\x01\x90\x92R\x90\x81` \x01[`@\x80Q\x80\x82\x01\x90\x91R`\0\x80\x82R` \x82\x01R\x81R` \x01\x90`\x01\x90\x03\x90\x81aN+W\x90PP\x93P`\0\x83[\x86Q\x81\x10\x15aO\x19W`\0\x80aN\x9E`@Q\x80`@\x01`@R\x80\x85\x8C`\0\x01QaN\x82\x91\x90aXlV[\x81R` \x01\x85\x8C` \x01QaN\x97\x91\x90a^XV[\x90RaE\xE2V[P\x91P\x91P`@Q\x80`@\x01`@R\x80\x83\x83aN\xBA\x91\x90a^XV[\x81R` \x01\x84\x8B` \x01QaN\xCF\x91\x90a^XV[\x81RP\x88\x85\x81Q\x81\x10aN\xE4WaN\xE4a\\\xF8V[` \x90\x81\x02\x91\x90\x91\x01\x01RaN\xFA`\x01\x85a^XV[\x93PaO\x06\x81\x83a^XV[aO\x10\x90\x84a^XV[\x92PPPaNXV[P\x84RP\x91\x93\x92PPPV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x18\xE3W`\0\x80\xFD[`\0\x80`@\x83\x85\x03\x12\x15aOZW`\0\x80\xFD[\x825aOe\x81aO%V[\x91P` \x83\x015aOu\x81aO%V[\x80\x91PP\x92P\x92\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[`@Q``\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15aO\xD2WaO\xD2aO\x80V[`@R\x90V[`@\x80Q\x90\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15aO\xD2WaO\xD2aO\x80V[`@Q`\x1F\x82\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15aPBWaPBaO\x80V[`@R\x91\x90PV[`\0\x82`\x1F\x83\x01\x12aP[W`\0\x80\xFD[\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15aPuWaPuaO\x80V[aP\xA6` \x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0`\x1F\x84\x01\x16\x01aO\xFBV[\x81\x81R\x84` \x83\x86\x01\x01\x11\x15aP\xBBW`\0\x80\xFD[\x81` \x85\x01` \x83\x017`\0\x91\x81\x01` \x01\x91\x90\x91R\x93\x92PPPV[`\0`\xC0\x82\x84\x03\x12\x15aP\xEAW`\0\x80\xFD[`@Q`\xC0\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x82\x10\x81\x83\x11\x17\x15aQ\x0EWaQ\x0EaO\x80V[\x81`@R\x82\x93P\x845\x83R` \x85\x015\x91PaQ)\x82aO%V[\x81` \x84\x01R`@\x85\x015\x91PaQ?\x82aO%V[\x81`@\x84\x01R``\x85\x015``\x84\x01R`\x80\x85\x015`\x80\x84\x01R`\xA0\x85\x015\x91P\x80\x82\x11\x15aQmW`\0\x80\xFD[PaQz\x85\x82\x86\x01aPJV[`\xA0\x83\x01RPP\x92\x91PPV[`\0\x80`@\x83\x85\x03\x12\x15aQ\x9AW`\0\x80\xFD[\x825g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15aQ\xB1W`\0\x80\xFD[aQ\xBD\x85\x82\x86\x01aP\xD8V[\x92PP` \x83\x015aOu\x81aO%V[`\0` \x82\x84\x03\x12\x15aQ\xE0W`\0\x80\xFD[\x815a/&\x81aO%V[`\0`\x80\x82\x84\x03\x12\x15aQ\xFDW`\0\x80\xFD[P\x91\x90PV[`\0\x80\x83`\x1F\x84\x01\x12aR\x15W`\0\x80\xFD[P\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15aR-W`\0\x80\xFD[` \x83\x01\x91P\x83` \x82`\x05\x1B\x85\x01\x01\x11\x15aRHW`\0\x80\xFD[\x92P\x92\x90PV[`\0\x80`\0\x80`\0`\xE0\x86\x88\x03\x12\x15aRgW`\0\x80\xFD[\x855g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15aR\x7FW`\0\x80\xFD[aR\x8B\x89\x83\x8A\x01aP\xD8V[\x96P` \x88\x015\x95PaR\xA1\x89`@\x8A\x01aQ\xEBV[\x94P`\xC0\x88\x015\x91P\x80\x82\x11\x15aR\xB7W`\0\x80\xFD[PaR\xC4\x88\x82\x89\x01aR\x03V[\x96\x99\x95\x98P\x93\x96P\x92\x94\x93\x92PPPV[`\0` \x82\x84\x03\x12\x15aR\xE7W`\0\x80\xFD[P5\x91\x90PV[`\0[\x83\x81\x10\x15aS\tW\x81\x81\x01Q\x83\x82\x01R` \x01aR\xF1V[\x83\x81\x11\x15a\x12lWPP`\0\x91\x01RV[`\0\x81Q\x80\x84RaS2\x81` \x86\x01` \x86\x01aR\xEEV[`\x1F\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x92\x90\x92\x01` \x01\x92\x91PPV[` \x81R`\0a/&` \x83\x01\x84aS\x1AV[`\0\x80`@\x83\x85\x03\x12\x15aS\x8AW`\0\x80\xFD[\x825\x91P` \x83\x015aOu\x81aO%V[`\0` \x82\x84\x03\x12\x15aS\xAEW`\0\x80\xFD[\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15aS\xC5W`\0\x80\xFD[aS\xD1\x84\x82\x85\x01aP\xD8V[\x94\x93PPPPV[`\0\x80`\0\x80`\0\x80`\0a\x01 \x88\x8A\x03\x12\x15aS\xF5W`\0\x80\xFD[\x875g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15aT\rW`\0\x80\xFD[aT\x19\x8B\x83\x8C\x01aP\xD8V[\x98P` \x8A\x015\x91PaT+\x82aO%V[\x90\x96P`@\x89\x015\x95P``\x89\x015\x90\x80\x82\x11\x15aTHW`\0\x80\xFD[\x90\x89\x01\x90``\x82\x8C\x03\x12\x15aT\\W`\0\x80\xFD[\x81\x95PaTl\x8B`\x80\x8C\x01aQ\xEBV[\x94Pa\x01\0\x8A\x015\x91P\x80\x82\x11\x15aT\x83W`\0\x80\xFD[PaT\x90\x8A\x82\x8B\x01aR\x03V[\x98\x9B\x97\x9AP\x95\x98P\x93\x96\x92\x95\x92\x93PPPV[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x18\xE3W`\0\x80\xFD[`\0` \x82\x84\x03\x12\x15aT\xCBW`\0\x80\xFD[\x815a/&\x81aT\xA3V[`\0\x80`@\x83\x85\x03\x12\x15aT\xE9W`\0\x80\xFD[PP\x805\x92` \x90\x91\x015\x91PV[`\0\x80`\0``\x84\x86\x03\x12\x15aU\rW`\0\x80\xFD[\x835aU\x18\x81aO%V[\x92P` \x84\x015aU(\x81aO%V[\x91P`@\x84\x015aU8\x81aO%V[\x80\x91PP\x92P\x92P\x92V[\x80\x15\x15\x81\x14a\x18\xE3W`\0\x80\xFD[`\0\x80`\0\x80`\0`\xA0\x86\x88\x03\x12\x15aUiW`\0\x80\xFD[\x855aUt\x81aO%V[\x94P` \x86\x015\x93P`@\x86\x015aU\x8B\x81aT\xA3V[\x92P``\x86\x015aU\x9B\x81aUCV[\x91P`\x80\x86\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15aU\xB7W`\0\x80\xFD[aU\xC3\x88\x82\x89\x01aPJV[\x91PP\x92\x95P\x92\x95\x90\x93PV[\x85\x81R\x84` \x82\x01R\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x84`\xC0\x1B\x16`@\x82\x01R\x82\x15\x15`\xF8\x1B`H\x82\x01R`\0\x82QaV$\x81`I\x85\x01` \x87\x01aR\xEEV[\x91\x90\x91\x01`I\x01\x96\x95PPPPPPV[`\0` \x82\x84\x03\x12\x15aVGW`\0\x80\xFD[\x81Qa/&\x81aO%V[c\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x18\xE3W`\0\x80\xFD[`\0` \x82\x84\x03\x12\x15aVvW`\0\x80\xFD[\x81Qa/&\x81aVRV[\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`\x11`\x04R`$`\0\xFD[`\0\x81\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x04\x83\x11\x82\x15\x15\x16\x15aV\xE8WaV\xE8aV\x81V[P\x02\x90V[`\0` \x82\x84\x03\x12\x15aV\xFFW`\0\x80\xFD[\x81Qa/&\x81aUCV[`\0\x80`\0``\x84\x86\x03\x12\x15aW\x1FW`\0\x80\xFD[\x83QaW*\x81aVRV[` \x85\x01Q\x90\x93PaW;\x81aT\xA3V[`@\x85\x01Q\x90\x92PaU8\x81aO%V[`\0`\x80\x82\x84\x03\x12\x15aW^W`\0\x80\xFD[`@Q`\x80\x81\x01\x81\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17\x15aW\x81WaW\x81aO\x80V[\x80`@RP\x825\x81R` \x83\x015` \x82\x01R`@\x83\x015`@\x82\x01R``\x83\x015``\x82\x01R\x80\x91PP\x92\x91PPV[`\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x15aW\xCCWaW\xCCaO\x80V[P`\x05\x1B` \x01\x90V[`\0aW\xE9aW\xE4\x84aW\xB2V[aO\xFBV[\x80\x84\x82R` \x80\x83\x01\x92P\x85`\x05\x1B\x85\x016\x81\x11\x15aX\x07W`\0\x80\xFD[\x85[\x81\x81\x10\x15aXCW\x805g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15aX)W`\0\x80\x81\xFD[aX56\x82\x8A\x01aPJV[\x86RP\x93\x82\x01\x93\x82\x01aX\tV[P\x91\x96\x95PPPPPPV[`\0` \x82\x84\x03\x12\x15aXaW`\0\x80\xFD[\x81Qa/&\x81aT\xA3V[`\0\x82\x82\x10\x15aX~WaX~aV\x81V[P\x03\x90V[`\0``\x826\x03\x12\x15aX\x95W`\0\x80\xFD[aX\x9DaO\xAFV[\x825\x7F\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81\x16\x81\x14aX\xCDW`\0\x80\xFD[\x81R` \x83\x81\x015aX\xDE\x81aT\xA3V[\x82\x82\x01R`@\x84\x81\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15aX\xFDW`\0\x80\xFD[\x85\x016`\x1F\x82\x01\x12aY\x0EW`\0\x80\xFD[\x805aY\x1CaW\xE4\x82aW\xB2V[\x81\x81R`\x06\x91\x90\x91\x1B\x82\x01\x84\x01\x90\x84\x81\x01\x906\x83\x11\x15aY;W`\0\x80\xFD[\x92\x85\x01\x92[\x82\x84\x10\x15aY{W\x84\x846\x03\x12\x15aYXW`\0\x80\x81\xFD[aY`aO\xD8V[\x845\x81R\x86\x85\x015\x87\x82\x01R\x82R\x92\x84\x01\x92\x90\x85\x01\x90aY@V[\x93\x86\x01\x93\x90\x93RP\x92\x95\x94PPPPPV[`\0` \x82\x84\x03\x12\x15aY\x9FW`\0\x80\xFD[PQ\x91\x90PV[`\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x83\x16\x81\x85\x16\x81\x83\x04\x81\x11\x82\x15\x15\x16\x15aY\xCDWaY\xCDaV\x81V[\x02\x94\x93PPPPV[`\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x83\x16\x81\x85\x16\x80\x83\x03\x82\x11\x15aY\xF9WaY\xF9aV\x81V[\x01\x94\x93PPPPV[\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`\x12`\x04R`$`\0\xFD[`\0\x82aZ@WaZ@aZ\x02V[\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x14\x7F\x80\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x83\x14\x16\x15aZ\x94WaZ\x94aV\x81V[P\x05\x90V[`\0\x80\x83\x12\x83\x7F\x80\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x83\x12\x81\x15\x16\x15aZ\xD3WaZ\xD3aV\x81V[\x83\x7F\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x01\x83\x13\x81\x16\x15a[\x07Wa[\x07aV\x81V[PP\x03\x90V[`\0\x7F\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF`\0\x84\x13`\0\x84\x13\x85\x83\x04\x85\x11\x82\x82\x16\x16\x15a[NWa[NaV\x81V[\x7F\x80\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\0\x87\x12\x86\x82\x05\x88\x12\x81\x84\x16\x16\x15a[\x89Wa[\x89aV\x81V[`\0\x87\x12\x92P\x87\x82\x05\x87\x12\x84\x84\x16\x16\x15a[\xA5Wa[\xA5aV\x81V[\x87\x85\x05\x87\x12\x81\x84\x16\x16\x15a[\xBBWa[\xBBaV\x81V[PPP\x92\x90\x93\x02\x93\x92PPPV[`\0\x80\x82\x12\x82\x7F\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x03\x84\x13\x81\x15\x16\x15a\\\x03Wa\\\x03aV\x81V[\x82\x7F\x80\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x03\x84\x12\x81\x16\x15a\\7Wa\\7aV\x81V[PP\x01\x90V[`\0\x82a\\LWa\\LaZ\x02V[P\x04\x90V[\x86\x81R`\0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x88\x16` \x84\x01R\x80\x87\x16`@\x84\x01RP\x84``\x83\x01R\x83`\x80\x83\x01R`\xC0`\xA0\x83\x01Ra\\\x9C`\xC0\x83\x01\x84aS\x1AV[\x98\x97PPPPPPPPV[\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`!`\x04R`$`\0\xFD[`\0` \x82\x84\x03\x12\x15a\\\xE9W`\0\x80\xFD[\x81Q`\x03\x81\x10a/&W`\0\x80\xFD[\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`2`\x04R`$`\0\xFD[\x80Q`\xFF\x81\x16\x81\x14a]8W`\0\x80\xFD[\x91\x90PV[`\0`\xC0\x82\x84\x03\x12\x15a]OW`\0\x80\xFD[`@Q`\xC0\x81\x01\x81\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17\x15a]rWa]raO\x80V[`@R\x82Qa]\x80\x81aVRV[\x81Ra]\x8E` \x84\x01a]'V[` \x82\x01Ra]\x9F`@\x84\x01a]'V[`@\x82\x01R``\x83\x01Qa]\xB2\x81aVRV[``\x82\x01R`\x80\x83\x01Qa]\xC5\x81aVRV[`\x80\x82\x01R`\xA0\x83\x01Qo\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a]\xEDW`\0\x80\xFD[`\xA0\x82\x01R\x93\x92PPPV[`\0\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x03a^*Wa^*aV\x81V[P`\x01\x01\x90V[`\0\x84Qa^C\x81\x84` \x89\x01aR\xEEV[\x91\x90\x91\x01\x92\x83RP` \x82\x01R`@\x01\x91\x90PV[`\0\x82\x19\x82\x11\x15a^kWa^kaV\x81V[P\x01\x90V[`\0`\xFF\x83\x16\x80a^\x83Wa^\x83aZ\x02V[\x80`\xFF\x84\x16\x06\x91PP\x92\x91PPV[`\0`\xFF\x82\x16`\xFF\x84\x16\x80\x82\x10\x15a^\xACWa^\xACaV\x81V[\x90\x03\x93\x92PPPV\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct GameType(u32); + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for u32 { + #[inline] + fn stv_to_tokens( + &self, + ) -> as alloy_sol_types::SolType>::Token<'_> { + alloy_sol_types::private::SolTypeValue::< + alloy::sol_types::sol_data::Uint<32>, + >::stv_to_tokens(self) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + as alloy_sol_types::SolType>::tokenize(self) + .0 + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::SolType>::abi_encode_packed_to(self, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + as alloy_sol_types::SolType>::abi_encoded_size(self) + } + } + impl GameType { + /// The Solidity type name. + pub const NAME: &'static str = stringify!(@ name); + /// Convert from the underlying value type. + #[inline] + pub const fn from_underlying(value: u32) -> Self { + Self(value) + } + /// Return the underlying value. + #[inline] + pub const fn into_underlying(self) -> u32 { + self.0 + } + /// Return the single encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode(&self) -> alloy_sol_types::private::Vec { + ::abi_encode(&self.0) + } + /// Return the packed encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec { + ::abi_encode_packed(&self.0) + } + } + #[automatically_derived] + impl From for GameType { + fn from(value: u32) -> Self { + Self::from_underlying(value) + } + } + #[automatically_derived] + impl From for u32 { + fn from(value: GameType) -> Self { + value.into_underlying() + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for GameType { + type RustType = u32; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = Self::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + Self::type_check(token).is_ok() + } + #[inline] + fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> { + as alloy_sol_types::SolType>::type_check(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + as alloy_sol_types::SolType>::detokenize(token) + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for GameType { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + as alloy_sol_types::EventTopic>::topic_preimage_length(rust) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out) + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + as alloy_sol_types::EventTopic>::encode_topic(rust) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ContentLengthMismatch()` and selector `0x66c94485`. +```solidity +error ContentLengthMismatch(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ContentLengthMismatch; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ContentLengthMismatch) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ContentLengthMismatch { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ContentLengthMismatch { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ContentLengthMismatch()"; + const SELECTOR: [u8; 4] = [102u8, 201u8, 68u8, 133u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `EmptyItem()` and selector `0x5ab458fb`. +```solidity +error EmptyItem(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct EmptyItem; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: EmptyItem) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for EmptyItem { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for EmptyItem { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "EmptyItem()"; + const SELECTOR: [u8; 4] = [90u8, 180u8, 88u8, 251u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `Encoding_EmptySuperRoot()` and selector `0x9103e7cd`. +```solidity +error Encoding_EmptySuperRoot(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct Encoding_EmptySuperRoot; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: Encoding_EmptySuperRoot) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for Encoding_EmptySuperRoot { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for Encoding_EmptySuperRoot { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "Encoding_EmptySuperRoot()"; + const SELECTOR: [u8; 4] = [145u8, 3u8, 231u8, 205u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `Encoding_InvalidSuperRootVersion()` and selector `0xc06b5238`. +```solidity +error Encoding_InvalidSuperRootVersion(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct Encoding_InvalidSuperRootVersion; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: Encoding_InvalidSuperRootVersion) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for Encoding_InvalidSuperRootVersion { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for Encoding_InvalidSuperRootVersion { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "Encoding_InvalidSuperRootVersion()"; + const SELECTOR: [u8; 4] = [192u8, 107u8, 82u8, 56u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidDataRemainder()` and selector `0x5c5537b8`. +```solidity +error InvalidDataRemainder(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidDataRemainder; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InvalidDataRemainder) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InvalidDataRemainder { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidDataRemainder { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidDataRemainder()"; + const SELECTOR: [u8; 4] = [92u8, 85u8, 55u8, 184u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidHeader()` and selector `0xbabb01dd`. +```solidity +error InvalidHeader(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidHeader; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InvalidHeader) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InvalidHeader { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidHeader { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidHeader()"; + const SELECTOR: [u8; 4] = [186u8, 187u8, 1u8, 221u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `OptimismPortal_AlreadyFinalized()` and selector `0x730a1074`. +```solidity +error OptimismPortal_AlreadyFinalized(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct OptimismPortal_AlreadyFinalized; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: OptimismPortal_AlreadyFinalized) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for OptimismPortal_AlreadyFinalized { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for OptimismPortal_AlreadyFinalized { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "OptimismPortal_AlreadyFinalized()"; + const SELECTOR: [u8; 4] = [115u8, 10u8, 16u8, 116u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `OptimismPortal_BadTarget()` and selector `0xc5defbad`. +```solidity +error OptimismPortal_BadTarget(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct OptimismPortal_BadTarget; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: OptimismPortal_BadTarget) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for OptimismPortal_BadTarget { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for OptimismPortal_BadTarget { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "OptimismPortal_BadTarget()"; + const SELECTOR: [u8; 4] = [197u8, 222u8, 251u8, 173u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `OptimismPortal_CallPaused()` and selector `0xb9c3c2ef`. +```solidity +error OptimismPortal_CallPaused(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct OptimismPortal_CallPaused; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: OptimismPortal_CallPaused) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for OptimismPortal_CallPaused { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for OptimismPortal_CallPaused { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "OptimismPortal_CallPaused()"; + const SELECTOR: [u8; 4] = [185u8, 195u8, 194u8, 239u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `OptimismPortal_CalldataTooLarge()` and selector `0x5aa3bac9`. +```solidity +error OptimismPortal_CalldataTooLarge(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct OptimismPortal_CalldataTooLarge; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: OptimismPortal_CalldataTooLarge) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for OptimismPortal_CalldataTooLarge { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for OptimismPortal_CalldataTooLarge { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "OptimismPortal_CalldataTooLarge()"; + const SELECTOR: [u8; 4] = [90u8, 163u8, 186u8, 201u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `OptimismPortal_GasEstimation()` and selector `0xab581036`. +```solidity +error OptimismPortal_GasEstimation(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct OptimismPortal_GasEstimation; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: OptimismPortal_GasEstimation) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for OptimismPortal_GasEstimation { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for OptimismPortal_GasEstimation { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "OptimismPortal_GasEstimation()"; + const SELECTOR: [u8; 4] = [171u8, 88u8, 16u8, 54u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `OptimismPortal_GasLimitTooLow()` and selector `0x70c8bdbd`. +```solidity +error OptimismPortal_GasLimitTooLow(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct OptimismPortal_GasLimitTooLow; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: OptimismPortal_GasLimitTooLow) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for OptimismPortal_GasLimitTooLow { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for OptimismPortal_GasLimitTooLow { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "OptimismPortal_GasLimitTooLow()"; + const SELECTOR: [u8; 4] = [112u8, 200u8, 189u8, 189u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `OptimismPortal_ImproperDisputeGame()` and selector `0xf395240e`. +```solidity +error OptimismPortal_ImproperDisputeGame(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct OptimismPortal_ImproperDisputeGame; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: OptimismPortal_ImproperDisputeGame) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for OptimismPortal_ImproperDisputeGame { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for OptimismPortal_ImproperDisputeGame { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "OptimismPortal_ImproperDisputeGame()"; + const SELECTOR: [u8; 4] = [243u8, 149u8, 36u8, 14u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `OptimismPortal_InvalidDisputeGame()` and selector `0xe29927ed`. +```solidity +error OptimismPortal_InvalidDisputeGame(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct OptimismPortal_InvalidDisputeGame; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: OptimismPortal_InvalidDisputeGame) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for OptimismPortal_InvalidDisputeGame { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for OptimismPortal_InvalidDisputeGame { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "OptimismPortal_InvalidDisputeGame()"; + const SELECTOR: [u8; 4] = [226u8, 153u8, 39u8, 237u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `OptimismPortal_InvalidMerkleProof()` and selector `0x2e57ef3a`. +```solidity +error OptimismPortal_InvalidMerkleProof(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct OptimismPortal_InvalidMerkleProof; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: OptimismPortal_InvalidMerkleProof) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for OptimismPortal_InvalidMerkleProof { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for OptimismPortal_InvalidMerkleProof { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "OptimismPortal_InvalidMerkleProof()"; + const SELECTOR: [u8; 4] = [46u8, 87u8, 239u8, 58u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `OptimismPortal_InvalidOutputRootChainId()` and selector `0x7cc2f31b`. +```solidity +error OptimismPortal_InvalidOutputRootChainId(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct OptimismPortal_InvalidOutputRootChainId; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: OptimismPortal_InvalidOutputRootChainId) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for OptimismPortal_InvalidOutputRootChainId { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for OptimismPortal_InvalidOutputRootChainId { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "OptimismPortal_InvalidOutputRootChainId()"; + const SELECTOR: [u8; 4] = [124u8, 194u8, 243u8, 27u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `OptimismPortal_InvalidOutputRootIndex()` and selector `0x32dc285c`. +```solidity +error OptimismPortal_InvalidOutputRootIndex(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct OptimismPortal_InvalidOutputRootIndex; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: OptimismPortal_InvalidOutputRootIndex) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for OptimismPortal_InvalidOutputRootIndex { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for OptimismPortal_InvalidOutputRootIndex { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "OptimismPortal_InvalidOutputRootIndex()"; + const SELECTOR: [u8; 4] = [50u8, 220u8, 40u8, 92u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `OptimismPortal_InvalidOutputRootProof()` and selector `0x426149af`. +```solidity +error OptimismPortal_InvalidOutputRootProof(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct OptimismPortal_InvalidOutputRootProof; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: OptimismPortal_InvalidOutputRootProof) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for OptimismPortal_InvalidOutputRootProof { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for OptimismPortal_InvalidOutputRootProof { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "OptimismPortal_InvalidOutputRootProof()"; + const SELECTOR: [u8; 4] = [66u8, 97u8, 73u8, 175u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `OptimismPortal_InvalidProofTimestamp()` and selector `0xb4caa4e5`. +```solidity +error OptimismPortal_InvalidProofTimestamp(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct OptimismPortal_InvalidProofTimestamp; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: OptimismPortal_InvalidProofTimestamp) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for OptimismPortal_InvalidProofTimestamp { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for OptimismPortal_InvalidProofTimestamp { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "OptimismPortal_InvalidProofTimestamp()"; + const SELECTOR: [u8; 4] = [180u8, 202u8, 164u8, 229u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `OptimismPortal_InvalidRootClaim()` and selector `0x332a57f8`. +```solidity +error OptimismPortal_InvalidRootClaim(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct OptimismPortal_InvalidRootClaim; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: OptimismPortal_InvalidRootClaim) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for OptimismPortal_InvalidRootClaim { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for OptimismPortal_InvalidRootClaim { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "OptimismPortal_InvalidRootClaim()"; + const SELECTOR: [u8; 4] = [51u8, 42u8, 87u8, 248u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `OptimismPortal_InvalidSuperRootProof()` and selector `0x2b1a9a66`. +```solidity +error OptimismPortal_InvalidSuperRootProof(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct OptimismPortal_InvalidSuperRootProof; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: OptimismPortal_InvalidSuperRootProof) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for OptimismPortal_InvalidSuperRootProof { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for OptimismPortal_InvalidSuperRootProof { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "OptimismPortal_InvalidSuperRootProof()"; + const SELECTOR: [u8; 4] = [43u8, 26u8, 154u8, 102u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `OptimismPortal_MigratingToSameRegistry()` and selector `0x785df911`. +```solidity +error OptimismPortal_MigratingToSameRegistry(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct OptimismPortal_MigratingToSameRegistry; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: OptimismPortal_MigratingToSameRegistry) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for OptimismPortal_MigratingToSameRegistry { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for OptimismPortal_MigratingToSameRegistry { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "OptimismPortal_MigratingToSameRegistry()"; + const SELECTOR: [u8; 4] = [120u8, 93u8, 249u8, 17u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `OptimismPortal_NoReentrancy()` and selector `0xdfeaaeb8`. +```solidity +error OptimismPortal_NoReentrancy(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct OptimismPortal_NoReentrancy; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: OptimismPortal_NoReentrancy) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for OptimismPortal_NoReentrancy { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for OptimismPortal_NoReentrancy { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "OptimismPortal_NoReentrancy()"; + const SELECTOR: [u8; 4] = [223u8, 234u8, 174u8, 184u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `OptimismPortal_ProofNotOldEnough()` and selector `0xd9bc01be`. +```solidity +error OptimismPortal_ProofNotOldEnough(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct OptimismPortal_ProofNotOldEnough; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: OptimismPortal_ProofNotOldEnough) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for OptimismPortal_ProofNotOldEnough { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for OptimismPortal_ProofNotOldEnough { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "OptimismPortal_ProofNotOldEnough()"; + const SELECTOR: [u8; 4] = [217u8, 188u8, 1u8, 190u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `OptimismPortal_Unproven()` and selector `0xcca6afda`. +```solidity +error OptimismPortal_Unproven(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct OptimismPortal_Unproven; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: OptimismPortal_Unproven) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for OptimismPortal_Unproven { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for OptimismPortal_Unproven { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "OptimismPortal_Unproven()"; + const SELECTOR: [u8; 4] = [204u8, 166u8, 175u8, 218u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `OptimismPortal_WrongProofMethod()` and selector `0x5e74b542`. +```solidity +error OptimismPortal_WrongProofMethod(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct OptimismPortal_WrongProofMethod; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: OptimismPortal_WrongProofMethod) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for OptimismPortal_WrongProofMethod { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for OptimismPortal_WrongProofMethod { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "OptimismPortal_WrongProofMethod()"; + const SELECTOR: [u8; 4] = [94u8, 116u8, 181u8, 66u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `OutOfGas()` and selector `0x77ebef4d`. +```solidity +error OutOfGas(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct OutOfGas; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: OutOfGas) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for OutOfGas { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for OutOfGas { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "OutOfGas()"; + const SELECTOR: [u8; 4] = [119u8, 235u8, 239u8, 77u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ProxyAdminOwnedBase_NotProxyAdmin()` and selector `0xe818dcc3`. +```solidity +error ProxyAdminOwnedBase_NotProxyAdmin(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ProxyAdminOwnedBase_NotProxyAdmin; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: ProxyAdminOwnedBase_NotProxyAdmin) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for ProxyAdminOwnedBase_NotProxyAdmin { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ProxyAdminOwnedBase_NotProxyAdmin { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ProxyAdminOwnedBase_NotProxyAdmin()"; + const SELECTOR: [u8; 4] = [232u8, 24u8, 220u8, 195u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner()` and selector `0xc4050a26`. +```solidity +error ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError + for ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner()"; + const SELECTOR: [u8; 4] = [196u8, 5u8, 10u8, 38u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ProxyAdminOwnedBase_NotProxyAdminOwner()` and selector `0x7f12c64b`. +```solidity +error ProxyAdminOwnedBase_NotProxyAdminOwner(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ProxyAdminOwnedBase_NotProxyAdminOwner; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: ProxyAdminOwnedBase_NotProxyAdminOwner) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for ProxyAdminOwnedBase_NotProxyAdminOwner { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ProxyAdminOwnedBase_NotProxyAdminOwner { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ProxyAdminOwnedBase_NotProxyAdminOwner()"; + const SELECTOR: [u8; 4] = [127u8, 18u8, 198u8, 75u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ProxyAdminOwnedBase_NotResolvedDelegateProxy()` and selector `0x54e433cd`. +```solidity +error ProxyAdminOwnedBase_NotResolvedDelegateProxy(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ProxyAdminOwnedBase_NotResolvedDelegateProxy; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: ProxyAdminOwnedBase_NotResolvedDelegateProxy) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for ProxyAdminOwnedBase_NotResolvedDelegateProxy { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ProxyAdminOwnedBase_NotResolvedDelegateProxy { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ProxyAdminOwnedBase_NotResolvedDelegateProxy()"; + const SELECTOR: [u8; 4] = [84u8, 228u8, 51u8, 205u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ProxyAdminOwnedBase_NotSharedProxyAdminOwner()` and selector `0x075c4314`. +```solidity +error ProxyAdminOwnedBase_NotSharedProxyAdminOwner(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ProxyAdminOwnedBase_NotSharedProxyAdminOwner; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: ProxyAdminOwnedBase_NotSharedProxyAdminOwner) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for ProxyAdminOwnedBase_NotSharedProxyAdminOwner { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ProxyAdminOwnedBase_NotSharedProxyAdminOwner { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ProxyAdminOwnedBase_NotSharedProxyAdminOwner()"; + const SELECTOR: [u8; 4] = [7u8, 92u8, 67u8, 20u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ProxyAdminOwnedBase_ProxyAdminNotFound()` and selector `0x332144db`. +```solidity +error ProxyAdminOwnedBase_ProxyAdminNotFound(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ProxyAdminOwnedBase_ProxyAdminNotFound; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: ProxyAdminOwnedBase_ProxyAdminNotFound) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for ProxyAdminOwnedBase_ProxyAdminNotFound { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ProxyAdminOwnedBase_ProxyAdminNotFound { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ProxyAdminOwnedBase_ProxyAdminNotFound()"; + const SELECTOR: [u8; 4] = [51u8, 33u8, 68u8, 219u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ReinitializableBase_ZeroInitVersion()` and selector `0x9b01afed`. +```solidity +error ReinitializableBase_ZeroInitVersion(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ReinitializableBase_ZeroInitVersion; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: ReinitializableBase_ZeroInitVersion) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for ReinitializableBase_ZeroInitVersion { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ReinitializableBase_ZeroInitVersion { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ReinitializableBase_ZeroInitVersion()"; + const SELECTOR: [u8; 4] = [155u8, 1u8, 175u8, 237u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `UnexpectedList()` and selector `0x1ff9b2e4`. +```solidity +error UnexpectedList(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct UnexpectedList; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: UnexpectedList) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for UnexpectedList { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for UnexpectedList { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "UnexpectedList()"; + const SELECTOR: [u8; 4] = [31u8, 249u8, 178u8, 228u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `UnexpectedString()` and selector `0x4b9c6abe`. +```solidity +error UnexpectedString(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct UnexpectedString; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: UnexpectedString) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for UnexpectedString { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for UnexpectedString { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "UnexpectedString()"; + const SELECTOR: [u8; 4] = [75u8, 156u8, 106u8, 190u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `ETHMigrated(address,uint256)` and selector `0xd893f630c6867fa43689da9ae949ebf04cac24aad3b45c759d442ed3c32e3a37`. +```solidity +event ETHMigrated(address indexed lockbox, uint256 ethBalance); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct ETHMigrated { + #[allow(missing_docs)] + pub lockbox: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub ethBalance: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for ETHMigrated { + type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "ETHMigrated(address,uint256)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 216u8, 147u8, 246u8, 48u8, 198u8, 134u8, 127u8, 164u8, 54u8, 137u8, + 218u8, 154u8, 233u8, 73u8, 235u8, 240u8, 76u8, 172u8, 36u8, 170u8, 211u8, + 180u8, 92u8, 117u8, 157u8, 68u8, 46u8, 211u8, 195u8, 46u8, 58u8, 55u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + lockbox: topics.1, + ethBalance: data.0, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.ethBalance), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.lockbox.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.lockbox, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for ETHMigrated { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<ÐMigrated> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: ÐMigrated) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `Initialized(uint8)` and selector `0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498`. +```solidity +event Initialized(uint8 version); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct Initialized { + #[allow(missing_docs)] + pub version: u8, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for Initialized { + type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<8>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,); + const SIGNATURE: &'static str = "Initialized(uint8)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 127u8, 38u8, 184u8, 63u8, 249u8, 110u8, 31u8, 43u8, 106u8, 104u8, 47u8, + 19u8, 56u8, 82u8, 246u8, 121u8, 138u8, 9u8, 196u8, 101u8, 218u8, 149u8, + 146u8, 20u8, 96u8, 206u8, 251u8, 56u8, 71u8, 64u8, 36u8, 152u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { version: data.0 } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.version), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(),) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for Initialized { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&Initialized> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &Initialized) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `PortalMigrated(address,address,address,address)` and selector `0x9e5368471a58d81987e5dc7d6374dd5ed5e756cc95a79ff726903423bce0060d`. +```solidity +event PortalMigrated(address oldLockbox, address newLockbox, address oldAnchorStateRegistry, address newAnchorStateRegistry); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct PortalMigrated { + #[allow(missing_docs)] + pub oldLockbox: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub newLockbox: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub oldAnchorStateRegistry: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub newAnchorStateRegistry: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for PortalMigrated { + type DataTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,); + const SIGNATURE: &'static str = "PortalMigrated(address,address,address,address)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 158u8, 83u8, 104u8, 71u8, 26u8, 88u8, 216u8, 25u8, 135u8, 229u8, 220u8, + 125u8, 99u8, 116u8, 221u8, 94u8, 213u8, 231u8, 86u8, 204u8, 149u8, 167u8, + 159u8, 247u8, 38u8, 144u8, 52u8, 35u8, 188u8, 224u8, 6u8, 13u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + oldLockbox: data.0, + newLockbox: data.1, + oldAnchorStateRegistry: data.2, + newAnchorStateRegistry: data.3, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + ::tokenize( + &self.oldLockbox, + ), + ::tokenize( + &self.newLockbox, + ), + ::tokenize( + &self.oldAnchorStateRegistry, + ), + ::tokenize( + &self.newAnchorStateRegistry, + ), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(),) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for PortalMigrated { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&PortalMigrated> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &PortalMigrated) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `TransactionDeposited(address,address,uint256,bytes)` and selector `0xb3813568d9991fc951961fcb4c784893574240a28925604d09fc577c55bb7c32`. +```solidity +event TransactionDeposited(address indexed from, address indexed to, uint256 indexed version, bytes opaqueData); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct TransactionDeposited { + #[allow(missing_docs)] + pub from: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub version: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub opaqueData: alloy::sol_types::private::Bytes, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for TransactionDeposited { + type DataTuple<'a> = (alloy::sol_types::sol_data::Bytes,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + const SIGNATURE: &'static str = "TransactionDeposited(address,address,uint256,bytes)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 179u8, 129u8, 53u8, 104u8, 217u8, 153u8, 31u8, 201u8, 81u8, 150u8, 31u8, + 203u8, 76u8, 120u8, 72u8, 147u8, 87u8, 66u8, 64u8, 162u8, 137u8, 37u8, + 96u8, 77u8, 9u8, 252u8, 87u8, 124u8, 85u8, 187u8, 124u8, 50u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + from: topics.1, + to: topics.2, + version: topics.3, + opaqueData: data.0, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + ::tokenize( + &self.opaqueData, + ), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + ( + Self::SIGNATURE_HASH.into(), + self.from.clone(), + self.to.clone(), + self.version.clone(), + ) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.from, + ); + out[2usize] = ::encode_topic( + &self.to, + ); + out[3usize] = as alloy_sol_types::EventTopic>::encode_topic(&self.version); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for TransactionDeposited { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&TransactionDeposited> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &TransactionDeposited) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `WithdrawalFinalized(bytes32,bool)` and selector `0xdb5c7652857aa163daadd670e116628fb42e869d8ac4251ef8971d9e5727df1b`. +```solidity +event WithdrawalFinalized(bytes32 indexed withdrawalHash, bool success); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct WithdrawalFinalized { + #[allow(missing_docs)] + pub withdrawalHash: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub success: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for WithdrawalFinalized { + type DataTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + const SIGNATURE: &'static str = "WithdrawalFinalized(bytes32,bool)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 219u8, 92u8, 118u8, 82u8, 133u8, 122u8, 161u8, 99u8, 218u8, 173u8, 214u8, + 112u8, 225u8, 22u8, 98u8, 143u8, 180u8, 46u8, 134u8, 157u8, 138u8, 196u8, + 37u8, 30u8, 248u8, 151u8, 29u8, 158u8, 87u8, 39u8, 223u8, 27u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + withdrawalHash: topics.1, + success: data.0, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + ::tokenize( + &self.success, + ), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.withdrawalHash.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = as alloy_sol_types::EventTopic>::encode_topic(&self.withdrawalHash); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for WithdrawalFinalized { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&WithdrawalFinalized> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &WithdrawalFinalized) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `WithdrawalProven(bytes32,address,address)` and selector `0x67a6208cfcc0801d50f6cbe764733f4fddf66ac0b04442061a8a8c0cb6b63f62`. +```solidity +event WithdrawalProven(bytes32 indexed withdrawalHash, address indexed from, address indexed to); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct WithdrawalProven { + #[allow(missing_docs)] + pub withdrawalHash: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub from: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub to: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for WithdrawalProven { + type DataTuple<'a> = (); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "WithdrawalProven(bytes32,address,address)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 103u8, 166u8, 32u8, 140u8, 252u8, 192u8, 128u8, 29u8, 80u8, 246u8, 203u8, + 231u8, 100u8, 115u8, 63u8, 79u8, 221u8, 246u8, 106u8, 192u8, 176u8, 68u8, + 66u8, 6u8, 26u8, 138u8, 140u8, 12u8, 182u8, 182u8, 63u8, 98u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + withdrawalHash: topics.1, + from: topics.2, + to: topics.3, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + () + } + #[inline] + fn topics(&self) -> ::RustType { + ( + Self::SIGNATURE_HASH.into(), + self.withdrawalHash.clone(), + self.from.clone(), + self.to.clone(), + ) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = as alloy_sol_types::EventTopic>::encode_topic(&self.withdrawalHash); + out[2usize] = ::encode_topic( + &self.from, + ); + out[3usize] = ::encode_topic( + &self.to, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for WithdrawalProven { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&WithdrawalProven> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &WithdrawalProven) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `WithdrawalProvenExtension1(bytes32,address)` and selector `0x798f9f13695f8f045aa5f80ed8efebb695f3c7fe65da381969f2f28bf3c60b97`. +```solidity +event WithdrawalProvenExtension1(bytes32 indexed withdrawalHash, address indexed proofSubmitter); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct WithdrawalProvenExtension1 { + #[allow(missing_docs)] + pub withdrawalHash: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub proofSubmitter: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for WithdrawalProvenExtension1 { + type DataTuple<'a> = (); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "WithdrawalProvenExtension1(bytes32,address)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 121u8, 143u8, 159u8, 19u8, 105u8, 95u8, 143u8, 4u8, 90u8, 165u8, 248u8, + 14u8, 216u8, 239u8, 235u8, 182u8, 149u8, 243u8, 199u8, 254u8, 101u8, + 218u8, 56u8, 25u8, 105u8, 242u8, 242u8, 139u8, 243u8, 198u8, 11u8, 151u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + withdrawalHash: topics.1, + proofSubmitter: topics.2, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + () + } + #[inline] + fn topics(&self) -> ::RustType { + ( + Self::SIGNATURE_HASH.into(), + self.withdrawalHash.clone(), + self.proofSubmitter.clone(), + ) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = as alloy_sol_types::EventTopic>::encode_topic(&self.withdrawalHash); + out[2usize] = ::encode_topic( + &self.proofSubmitter, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for WithdrawalProvenExtension1 { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&WithdrawalProvenExtension1> for alloy_sol_types::private::LogData { + #[inline] + fn from( + this: &WithdrawalProvenExtension1, + ) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + /**Constructor`. +```solidity +constructor(uint256 _proofMaturityDelaySeconds); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct constructorCall { + #[allow(missing_docs)] + pub _proofMaturityDelaySeconds: alloy::sol_types::private::primitives::aliases::U256, + } + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: constructorCall) -> Self { + (value._proofMaturityDelaySeconds,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for constructorCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _proofMaturityDelaySeconds: tuple.0, + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolConstructor for constructorCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize( + &self._proofMaturityDelaySeconds, + ), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `anchorStateRegistry()` and selector `0x5c0cba33`. +```solidity +function anchorStateRegistry() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct anchorStateRegistryCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`anchorStateRegistry()`](anchorStateRegistryCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct anchorStateRegistryReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: anchorStateRegistryCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for anchorStateRegistryCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: anchorStateRegistryReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for anchorStateRegistryReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for anchorStateRegistryCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "anchorStateRegistry()"; + const SELECTOR: [u8; 4] = [92u8, 12u8, 186u8, 51u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: anchorStateRegistryReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: anchorStateRegistryReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `checkWithdrawal(bytes32,address)` and selector `0x71c1566e`. +```solidity +function checkWithdrawal(bytes32 _withdrawalHash, address _proofSubmitter) external view; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct checkWithdrawalCall { + #[allow(missing_docs)] + pub _withdrawalHash: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub _proofSubmitter: alloy::sol_types::private::Address, + } + ///Container type for the return parameters of the [`checkWithdrawal(bytes32,address)`](checkWithdrawalCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct checkWithdrawalReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::FixedBytes<32>, + alloy::sol_types::private::Address, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: checkWithdrawalCall) -> Self { + (value._withdrawalHash, value._proofSubmitter) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for checkWithdrawalCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _withdrawalHash: tuple.0, + _proofSubmitter: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: checkWithdrawalReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for checkWithdrawalReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl checkWithdrawalReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for checkWithdrawalCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = checkWithdrawalReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "checkWithdrawal(bytes32,address)"; + const SELECTOR: [u8; 4] = [113u8, 193u8, 86u8, 110u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._withdrawalHash), + ::tokenize( + &self._proofSubmitter, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + checkWithdrawalReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `depositTransaction(address,uint256,uint64,bool,bytes)` and selector `0xe9e05c42`. +```solidity +function depositTransaction(address _to, uint256 _value, uint64 _gasLimit, bool _isCreation, bytes memory _data) external payable; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct depositTransactionCall { + #[allow(missing_docs)] + pub _to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _value: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _gasLimit: u64, + #[allow(missing_docs)] + pub _isCreation: bool, + #[allow(missing_docs)] + pub _data: alloy::sol_types::private::Bytes, + } + ///Container type for the return parameters of the [`depositTransaction(address,uint256,uint64,bool,bytes)`](depositTransactionCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct depositTransactionReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<64>, + alloy::sol_types::sol_data::Bool, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + u64, + bool, + alloy::sol_types::private::Bytes, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: depositTransactionCall) -> Self { + ( + value._to, + value._value, + value._gasLimit, + value._isCreation, + value._data, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for depositTransactionCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _to: tuple.0, + _value: tuple.1, + _gasLimit: tuple.2, + _isCreation: tuple.3, + _data: tuple.4, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: depositTransactionReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for depositTransactionReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl depositTransactionReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for depositTransactionCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<64>, + alloy::sol_types::sol_data::Bool, + alloy::sol_types::sol_data::Bytes, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = depositTransactionReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "depositTransaction(address,uint256,uint64,bool,bytes)"; + const SELECTOR: [u8; 4] = [233u8, 224u8, 92u8, 66u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._to, + ), + as alloy_sol_types::SolType>::tokenize(&self._value), + as alloy_sol_types::SolType>::tokenize(&self._gasLimit), + ::tokenize( + &self._isCreation, + ), + ::tokenize( + &self._data, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + depositTransactionReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `disputeGameBlacklist(address)` and selector `0x45884d32`. +```solidity +function disputeGameBlacklist(address _disputeGame) external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct disputeGameBlacklistCall { + #[allow(missing_docs)] + pub _disputeGame: alloy::sol_types::private::Address, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`disputeGameBlacklist(address)`](disputeGameBlacklistCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct disputeGameBlacklistReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: disputeGameBlacklistCall) -> Self { + (value._disputeGame,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for disputeGameBlacklistCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _disputeGame: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: disputeGameBlacklistReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for disputeGameBlacklistReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for disputeGameBlacklistCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "disputeGameBlacklist(address)"; + const SELECTOR: [u8; 4] = [69u8, 136u8, 77u8, 50u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._disputeGame, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: disputeGameBlacklistReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: disputeGameBlacklistReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `disputeGameFactory()` and selector `0xf2b4e617`. +```solidity +function disputeGameFactory() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct disputeGameFactoryCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`disputeGameFactory()`](disputeGameFactoryCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct disputeGameFactoryReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: disputeGameFactoryCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for disputeGameFactoryCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: disputeGameFactoryReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for disputeGameFactoryReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for disputeGameFactoryCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "disputeGameFactory()"; + const SELECTOR: [u8; 4] = [242u8, 180u8, 230u8, 23u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: disputeGameFactoryReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: disputeGameFactoryReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `disputeGameFinalityDelaySeconds()` and selector `0x952b2797`. +```solidity +function disputeGameFinalityDelaySeconds() external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct disputeGameFinalityDelaySecondsCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`disputeGameFinalityDelaySeconds()`](disputeGameFinalityDelaySecondsCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct disputeGameFinalityDelaySecondsReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: disputeGameFinalityDelaySecondsCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for disputeGameFinalityDelaySecondsCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: disputeGameFinalityDelaySecondsReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for disputeGameFinalityDelaySecondsReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for disputeGameFinalityDelaySecondsCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "disputeGameFinalityDelaySeconds()"; + const SELECTOR: [u8; 4] = [149u8, 43u8, 39u8, 151u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: disputeGameFinalityDelaySecondsReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: disputeGameFinalityDelaySecondsReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `donateETH()` and selector `0x8b4c40b0`. +```solidity +function donateETH() external payable; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct donateETHCall; + ///Container type for the return parameters of the [`donateETH()`](donateETHCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct donateETHReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: donateETHCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for donateETHCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: donateETHReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for donateETHReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl donateETHReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for donateETHCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = donateETHReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "donateETH()"; + const SELECTOR: [u8; 4] = [139u8, 76u8, 64u8, 176u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + donateETHReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `ethLockbox()` and selector `0xb682c444`. +```solidity +function ethLockbox() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ethLockboxCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`ethLockbox()`](ethLockboxCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ethLockboxReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ethLockboxCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ethLockboxCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ethLockboxReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ethLockboxReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for ethLockboxCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ethLockbox()"; + const SELECTOR: [u8; 4] = [182u8, 130u8, 196u8, 68u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: ethLockboxReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: ethLockboxReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `finalizeWithdrawalTransaction((uint256,address,address,uint256,uint256,bytes))` and selector `0x8c3152e9`. +```solidity +function finalizeWithdrawalTransaction(Types.WithdrawalTransaction memory _tx) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct finalizeWithdrawalTransactionCall { + #[allow(missing_docs)] + pub _tx: ::RustType, + } + ///Container type for the return parameters of the [`finalizeWithdrawalTransaction((uint256,address,address,uint256,uint256,bytes))`](finalizeWithdrawalTransactionCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct finalizeWithdrawalTransactionReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Types::WithdrawalTransaction,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: finalizeWithdrawalTransactionCall) -> Self { + (value._tx,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for finalizeWithdrawalTransactionCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _tx: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: finalizeWithdrawalTransactionReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for finalizeWithdrawalTransactionReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl finalizeWithdrawalTransactionReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken< + '_, + > { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for finalizeWithdrawalTransactionCall { + type Parameters<'a> = (Types::WithdrawalTransaction,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = finalizeWithdrawalTransactionReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "finalizeWithdrawalTransaction((uint256,address,address,uint256,uint256,bytes))"; + const SELECTOR: [u8; 4] = [140u8, 49u8, 82u8, 233u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._tx, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + finalizeWithdrawalTransactionReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `finalizeWithdrawalTransactionExternalProof((uint256,address,address,uint256,uint256,bytes),address)` and selector `0x43ca1c50`. +```solidity +function finalizeWithdrawalTransactionExternalProof(Types.WithdrawalTransaction memory _tx, address _proofSubmitter) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct finalizeWithdrawalTransactionExternalProofCall { + #[allow(missing_docs)] + pub _tx: ::RustType, + #[allow(missing_docs)] + pub _proofSubmitter: alloy::sol_types::private::Address, + } + ///Container type for the return parameters of the [`finalizeWithdrawalTransactionExternalProof((uint256,address,address,uint256,uint256,bytes),address)`](finalizeWithdrawalTransactionExternalProofCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct finalizeWithdrawalTransactionExternalProofReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + Types::WithdrawalTransaction, + alloy::sol_types::sol_data::Address, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + alloy::sol_types::private::Address, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: finalizeWithdrawalTransactionExternalProofCall) -> Self { + (value._tx, value._proofSubmitter) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for finalizeWithdrawalTransactionExternalProofCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _tx: tuple.0, + _proofSubmitter: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from( + value: finalizeWithdrawalTransactionExternalProofReturn, + ) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for finalizeWithdrawalTransactionExternalProofReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl finalizeWithdrawalTransactionExternalProofReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken< + '_, + > { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall + for finalizeWithdrawalTransactionExternalProofCall { + type Parameters<'a> = ( + Types::WithdrawalTransaction, + alloy::sol_types::sol_data::Address, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = finalizeWithdrawalTransactionExternalProofReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "finalizeWithdrawalTransactionExternalProof((uint256,address,address,uint256,uint256,bytes),address)"; + const SELECTOR: [u8; 4] = [67u8, 202u8, 28u8, 80u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._tx, + ), + ::tokenize( + &self._proofSubmitter, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + finalizeWithdrawalTransactionExternalProofReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `finalizedWithdrawals(bytes32)` and selector `0xa14238e7`. +```solidity +function finalizedWithdrawals(bytes32) external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct finalizedWithdrawalsCall(pub alloy::sol_types::private::FixedBytes<32>); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`finalizedWithdrawals(bytes32)`](finalizedWithdrawalsCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct finalizedWithdrawalsReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: finalizedWithdrawalsCall) -> Self { + (value.0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for finalizedWithdrawalsCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self(tuple.0) + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: finalizedWithdrawalsReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for finalizedWithdrawalsReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for finalizedWithdrawalsCall { + type Parameters<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "finalizedWithdrawals(bytes32)"; + const SELECTOR: [u8; 4] = [161u8, 66u8, 56u8, 231u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.0), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: finalizedWithdrawalsReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: finalizedWithdrawalsReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `guardian()` and selector `0x452a9320`. +```solidity +function guardian() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct guardianCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`guardian()`](guardianCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct guardianReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: guardianCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for guardianCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: guardianReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for guardianReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for guardianCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "guardian()"; + const SELECTOR: [u8; 4] = [69u8, 42u8, 147u8, 32u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: guardianReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: guardianReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `initVersion()` and selector `0x38d38c97`. +```solidity +function initVersion() external view returns (uint8); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct initVersionCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`initVersion()`](initVersionCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct initVersionReturn { + #[allow(missing_docs)] + pub _0: u8, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: initVersionCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for initVersionCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<8>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u8,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: initVersionReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for initVersionReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for initVersionCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u8; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<8>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "initVersion()"; + const SELECTOR: [u8; 4] = [56u8, 211u8, 140u8, 151u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: initVersionReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: initVersionReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `initialize(address,address,address)` and selector `0xc0c53b8b`. +```solidity +function initialize(address _systemConfig, address _anchorStateRegistry, address _ethLockbox) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct initializeCall { + #[allow(missing_docs)] + pub _systemConfig: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _anchorStateRegistry: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _ethLockbox: alloy::sol_types::private::Address, + } + ///Container type for the return parameters of the [`initialize(address,address,address)`](initializeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct initializeReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: initializeCall) -> Self { + (value._systemConfig, value._anchorStateRegistry, value._ethLockbox) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for initializeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _systemConfig: tuple.0, + _anchorStateRegistry: tuple.1, + _ethLockbox: tuple.2, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: initializeReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for initializeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl initializeReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for initializeCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = initializeReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "initialize(address,address,address)"; + const SELECTOR: [u8; 4] = [192u8, 197u8, 59u8, 139u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._systemConfig, + ), + ::tokenize( + &self._anchorStateRegistry, + ), + ::tokenize( + &self._ethLockbox, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + initializeReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `l2Sender()` and selector `0x9bf62d82`. +```solidity +function l2Sender() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct l2SenderCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`l2Sender()`](l2SenderCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct l2SenderReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: l2SenderCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for l2SenderCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: l2SenderReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for l2SenderReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for l2SenderCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "l2Sender()"; + const SELECTOR: [u8; 4] = [155u8, 246u8, 45u8, 130u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: l2SenderReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: l2SenderReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `migrateLiquidity()` and selector `0xbda204bb`. +```solidity +function migrateLiquidity() external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct migrateLiquidityCall; + ///Container type for the return parameters of the [`migrateLiquidity()`](migrateLiquidityCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct migrateLiquidityReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: migrateLiquidityCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for migrateLiquidityCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: migrateLiquidityReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for migrateLiquidityReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl migrateLiquidityReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for migrateLiquidityCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = migrateLiquidityReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "migrateLiquidity()"; + const SELECTOR: [u8; 4] = [189u8, 162u8, 4u8, 187u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + migrateLiquidityReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `migrateToSuperRoots(address,address)` and selector `0x2152f2be`. +```solidity +function migrateToSuperRoots(address _newLockbox, address _newAnchorStateRegistry) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct migrateToSuperRootsCall { + #[allow(missing_docs)] + pub _newLockbox: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _newAnchorStateRegistry: alloy::sol_types::private::Address, + } + ///Container type for the return parameters of the [`migrateToSuperRoots(address,address)`](migrateToSuperRootsCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct migrateToSuperRootsReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: migrateToSuperRootsCall) -> Self { + (value._newLockbox, value._newAnchorStateRegistry) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for migrateToSuperRootsCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _newLockbox: tuple.0, + _newAnchorStateRegistry: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: migrateToSuperRootsReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for migrateToSuperRootsReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl migrateToSuperRootsReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for migrateToSuperRootsCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = migrateToSuperRootsReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "migrateToSuperRoots(address,address)"; + const SELECTOR: [u8; 4] = [33u8, 82u8, 242u8, 190u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._newLockbox, + ), + ::tokenize( + &self._newAnchorStateRegistry, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + migrateToSuperRootsReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `minimumGasLimit(uint64)` and selector `0xa35d99df`. +```solidity +function minimumGasLimit(uint64 _byteCount) external pure returns (uint64); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct minimumGasLimitCall { + #[allow(missing_docs)] + pub _byteCount: u64, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`minimumGasLimit(uint64)`](minimumGasLimitCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct minimumGasLimitReturn { + #[allow(missing_docs)] + pub _0: u64, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u64,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: minimumGasLimitCall) -> Self { + (value._byteCount,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for minimumGasLimitCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _byteCount: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u64,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: minimumGasLimitReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for minimumGasLimitReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for minimumGasLimitCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Uint<64>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u64; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "minimumGasLimit(uint64)"; + const SELECTOR: [u8; 4] = [163u8, 93u8, 153u8, 223u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._byteCount), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: minimumGasLimitReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: minimumGasLimitReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `numProofSubmitters(bytes32)` and selector `0x513747ab`. +```solidity +function numProofSubmitters(bytes32 _withdrawalHash) external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct numProofSubmittersCall { + #[allow(missing_docs)] + pub _withdrawalHash: alloy::sol_types::private::FixedBytes<32>, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`numProofSubmitters(bytes32)`](numProofSubmittersCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct numProofSubmittersReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: numProofSubmittersCall) -> Self { + (value._withdrawalHash,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for numProofSubmittersCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _withdrawalHash: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: numProofSubmittersReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for numProofSubmittersReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for numProofSubmittersCall { + type Parameters<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "numProofSubmitters(bytes32)"; + const SELECTOR: [u8; 4] = [81u8, 55u8, 71u8, 171u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._withdrawalHash), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: numProofSubmittersReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: numProofSubmittersReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `params()` and selector `0xcff0ab96`. +```solidity +function params() external view returns (uint128 prevBaseFee, uint64 prevBoughtGas, uint64 prevBlockNum); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct paramsCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`params()`](paramsCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct paramsReturn { + #[allow(missing_docs)] + pub prevBaseFee: u128, + #[allow(missing_docs)] + pub prevBoughtGas: u64, + #[allow(missing_docs)] + pub prevBlockNum: u64, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: paramsCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for paramsCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Uint<128>, + alloy::sol_types::sol_data::Uint<64>, + alloy::sol_types::sol_data::Uint<64>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u128, u64, u64); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: paramsReturn) -> Self { + (value.prevBaseFee, value.prevBoughtGas, value.prevBlockNum) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for paramsReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + prevBaseFee: tuple.0, + prevBoughtGas: tuple.1, + prevBlockNum: tuple.2, + } + } + } + } + impl paramsReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.prevBaseFee), + as alloy_sol_types::SolType>::tokenize(&self.prevBoughtGas), + as alloy_sol_types::SolType>::tokenize(&self.prevBlockNum), + ) + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for paramsCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = paramsReturn; + type ReturnTuple<'a> = ( + alloy::sol_types::sol_data::Uint<128>, + alloy::sol_types::sol_data::Uint<64>, + alloy::sol_types::sol_data::Uint<64>, + ); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "params()"; + const SELECTOR: [u8; 4] = [207u8, 240u8, 171u8, 150u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + paramsReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `paused()` and selector `0x5c975abb`. +```solidity +function paused() external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct pausedCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`paused()`](pausedCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct pausedReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: pausedCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for pausedCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: pausedReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for pausedReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for pausedCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "paused()"; + const SELECTOR: [u8; 4] = [92u8, 151u8, 90u8, 187u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: pausedReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: pausedReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `proofMaturityDelaySeconds()` and selector `0xbf653a5c`. +```solidity +function proofMaturityDelaySeconds() external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct proofMaturityDelaySecondsCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`proofMaturityDelaySeconds()`](proofMaturityDelaySecondsCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct proofMaturityDelaySecondsReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: proofMaturityDelaySecondsCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for proofMaturityDelaySecondsCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: proofMaturityDelaySecondsReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for proofMaturityDelaySecondsReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for proofMaturityDelaySecondsCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "proofMaturityDelaySeconds()"; + const SELECTOR: [u8; 4] = [191u8, 101u8, 58u8, 92u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: proofMaturityDelaySecondsReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: proofMaturityDelaySecondsReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `proofSubmitters(bytes32,uint256)` and selector `0xa3860f48`. +```solidity +function proofSubmitters(bytes32, uint256) external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct proofSubmittersCall { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub _1: alloy::sol_types::private::primitives::aliases::U256, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`proofSubmitters(bytes32,uint256)`](proofSubmittersCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct proofSubmittersReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::FixedBytes<32>, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: proofSubmittersCall) -> Self { + (value._0, value._1) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for proofSubmittersCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0, _1: tuple.1 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: proofSubmittersReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for proofSubmittersReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for proofSubmittersCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Uint<256>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "proofSubmitters(bytes32,uint256)"; + const SELECTOR: [u8; 4] = [163u8, 134u8, 15u8, 72u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._0), + as alloy_sol_types::SolType>::tokenize(&self._1), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: proofSubmittersReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: proofSubmittersReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `proveWithdrawalTransaction((uint256,address,address,uint256,uint256,bytes),uint256,(bytes32,bytes32,bytes32,bytes32),bytes[])` and selector `0x4870496f`. +```solidity +function proveWithdrawalTransaction(Types.WithdrawalTransaction memory _tx, uint256 _disputeGameIndex, Types.OutputRootProof memory _outputRootProof, bytes[] memory _withdrawalProof) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct proveWithdrawalTransaction_0Call { + #[allow(missing_docs)] + pub _tx: ::RustType, + #[allow(missing_docs)] + pub _disputeGameIndex: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _outputRootProof: ::RustType, + #[allow(missing_docs)] + pub _withdrawalProof: alloy::sol_types::private::Vec< + alloy::sol_types::private::Bytes, + >, + } + ///Container type for the return parameters of the [`proveWithdrawalTransaction((uint256,address,address,uint256,uint256,bytes),uint256,(bytes32,bytes32,bytes32,bytes32),bytes[])`](proveWithdrawalTransaction_0Call) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct proveWithdrawalTransaction_0Return {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + Types::WithdrawalTransaction, + alloy::sol_types::sol_data::Uint<256>, + Types::OutputRootProof, + alloy::sol_types::sol_data::Array, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + alloy::sol_types::private::primitives::aliases::U256, + ::RustType, + alloy::sol_types::private::Vec, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: proveWithdrawalTransaction_0Call) -> Self { + ( + value._tx, + value._disputeGameIndex, + value._outputRootProof, + value._withdrawalProof, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for proveWithdrawalTransaction_0Call { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _tx: tuple.0, + _disputeGameIndex: tuple.1, + _outputRootProof: tuple.2, + _withdrawalProof: tuple.3, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: proveWithdrawalTransaction_0Return) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for proveWithdrawalTransaction_0Return { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl proveWithdrawalTransaction_0Return { + fn _tokenize( + &self, + ) -> ::ReturnToken< + '_, + > { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for proveWithdrawalTransaction_0Call { + type Parameters<'a> = ( + Types::WithdrawalTransaction, + alloy::sol_types::sol_data::Uint<256>, + Types::OutputRootProof, + alloy::sol_types::sol_data::Array, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = proveWithdrawalTransaction_0Return; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "proveWithdrawalTransaction((uint256,address,address,uint256,uint256,bytes),uint256,(bytes32,bytes32,bytes32,bytes32),bytes[])"; + const SELECTOR: [u8; 4] = [72u8, 112u8, 73u8, 111u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._tx, + ), + as alloy_sol_types::SolType>::tokenize(&self._disputeGameIndex), + ::tokenize( + &self._outputRootProof, + ), + as alloy_sol_types::SolType>::tokenize(&self._withdrawalProof), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + proveWithdrawalTransaction_0Return::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + /**Function with signature `proveWithdrawalTransaction((uint256,address,address,uint256,uint256,bytes),address,uint256,(bytes1,uint64,(uint256,bytes32)[]),(bytes32,bytes32,bytes32,bytes32),bytes[])` and selector `0x8c90dd65`. +```solidity +function proveWithdrawalTransaction(Types.WithdrawalTransaction memory _tx, address _disputeGameProxy, uint256 _outputRootIndex, Types.SuperRootProof memory _superRootProof, Types.OutputRootProof memory _outputRootProof, bytes[] memory _withdrawalProof) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct proveWithdrawalTransaction_1Call { + #[allow(missing_docs)] + pub _tx: ::RustType, + #[allow(missing_docs)] + pub _disputeGameProxy: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _outputRootIndex: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _superRootProof: ::RustType, + #[allow(missing_docs)] + pub _outputRootProof: ::RustType, + #[allow(missing_docs)] + pub _withdrawalProof: alloy::sol_types::private::Vec< + alloy::sol_types::private::Bytes, + >, + } + ///Container type for the return parameters of the [`proveWithdrawalTransaction((uint256,address,address,uint256,uint256,bytes),address,uint256,(bytes1,uint64,(uint256,bytes32)[]),(bytes32,bytes32,bytes32,bytes32),bytes[])`](proveWithdrawalTransaction_1Call) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct proveWithdrawalTransaction_1Return {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + Types::WithdrawalTransaction, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + Types::SuperRootProof, + Types::OutputRootProof, + alloy::sol_types::sol_data::Array, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + ::RustType, + ::RustType, + alloy::sol_types::private::Vec, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: proveWithdrawalTransaction_1Call) -> Self { + ( + value._tx, + value._disputeGameProxy, + value._outputRootIndex, + value._superRootProof, + value._outputRootProof, + value._withdrawalProof, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for proveWithdrawalTransaction_1Call { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _tx: tuple.0, + _disputeGameProxy: tuple.1, + _outputRootIndex: tuple.2, + _superRootProof: tuple.3, + _outputRootProof: tuple.4, + _withdrawalProof: tuple.5, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: proveWithdrawalTransaction_1Return) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for proveWithdrawalTransaction_1Return { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl proveWithdrawalTransaction_1Return { + fn _tokenize( + &self, + ) -> ::ReturnToken< + '_, + > { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for proveWithdrawalTransaction_1Call { + type Parameters<'a> = ( + Types::WithdrawalTransaction, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + Types::SuperRootProof, + Types::OutputRootProof, + alloy::sol_types::sol_data::Array, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = proveWithdrawalTransaction_1Return; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "proveWithdrawalTransaction((uint256,address,address,uint256,uint256,bytes),address,uint256,(bytes1,uint64,(uint256,bytes32)[]),(bytes32,bytes32,bytes32,bytes32),bytes[])"; + const SELECTOR: [u8; 4] = [140u8, 144u8, 221u8, 101u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._tx, + ), + ::tokenize( + &self._disputeGameProxy, + ), + as alloy_sol_types::SolType>::tokenize(&self._outputRootIndex), + ::tokenize( + &self._superRootProof, + ), + ::tokenize( + &self._outputRootProof, + ), + as alloy_sol_types::SolType>::tokenize(&self._withdrawalProof), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + proveWithdrawalTransaction_1Return::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `provenWithdrawals(bytes32,address)` and selector `0xbb2c727e`. +```solidity +function provenWithdrawals(bytes32, address) external view returns (address disputeGameProxy, uint64 timestamp); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct provenWithdrawalsCall { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub _1: alloy::sol_types::private::Address, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`provenWithdrawals(bytes32,address)`](provenWithdrawalsCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct provenWithdrawalsReturn { + #[allow(missing_docs)] + pub disputeGameProxy: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub timestamp: u64, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::FixedBytes<32>, + alloy::sol_types::private::Address, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: provenWithdrawalsCall) -> Self { + (value._0, value._1) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for provenWithdrawalsCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0, _1: tuple.1 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<64>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address, u64); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: provenWithdrawalsReturn) -> Self { + (value.disputeGameProxy, value.timestamp) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for provenWithdrawalsReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + disputeGameProxy: tuple.0, + timestamp: tuple.1, + } + } + } + } + impl provenWithdrawalsReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + ( + ::tokenize( + &self.disputeGameProxy, + ), + as alloy_sol_types::SolType>::tokenize(&self.timestamp), + ) + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for provenWithdrawalsCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = provenWithdrawalsReturn; + type ReturnTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<64>, + ); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "provenWithdrawals(bytes32,address)"; + const SELECTOR: [u8; 4] = [187u8, 44u8, 114u8, 126u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._0), + ::tokenize( + &self._1, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + provenWithdrawalsReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `proxyAdmin()` and selector `0x3e47158c`. +```solidity +function proxyAdmin() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct proxyAdminCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`proxyAdmin()`](proxyAdminCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct proxyAdminReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: proxyAdminCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for proxyAdminCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: proxyAdminReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for proxyAdminReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for proxyAdminCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "proxyAdmin()"; + const SELECTOR: [u8; 4] = [62u8, 71u8, 21u8, 140u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: proxyAdminReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: proxyAdminReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `proxyAdminOwner()` and selector `0xdad544e0`. +```solidity +function proxyAdminOwner() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct proxyAdminOwnerCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`proxyAdminOwner()`](proxyAdminOwnerCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct proxyAdminOwnerReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: proxyAdminOwnerCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for proxyAdminOwnerCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: proxyAdminOwnerReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for proxyAdminOwnerReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for proxyAdminOwnerCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "proxyAdminOwner()"; + const SELECTOR: [u8; 4] = [218u8, 213u8, 68u8, 224u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: proxyAdminOwnerReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: proxyAdminOwnerReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `respectedGameType()` and selector `0x3c9f397c`. +```solidity +function respectedGameType() external view returns (GameType); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct respectedGameTypeCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`respectedGameType()`](respectedGameTypeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct respectedGameTypeReturn { + #[allow(missing_docs)] + pub _0: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: respectedGameTypeCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for respectedGameTypeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (GameType,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: respectedGameTypeReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for respectedGameTypeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for respectedGameTypeCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (GameType,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "respectedGameType()"; + const SELECTOR: [u8; 4] = [60u8, 159u8, 57u8, 124u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: respectedGameTypeReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: respectedGameTypeReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `respectedGameTypeUpdatedAt()` and selector `0x4fd0434c`. +```solidity +function respectedGameTypeUpdatedAt() external view returns (uint64); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct respectedGameTypeUpdatedAtCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`respectedGameTypeUpdatedAt()`](respectedGameTypeUpdatedAtCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct respectedGameTypeUpdatedAtReturn { + #[allow(missing_docs)] + pub _0: u64, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: respectedGameTypeUpdatedAtCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for respectedGameTypeUpdatedAtCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u64,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: respectedGameTypeUpdatedAtReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for respectedGameTypeUpdatedAtReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for respectedGameTypeUpdatedAtCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u64; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "respectedGameTypeUpdatedAt()"; + const SELECTOR: [u8; 4] = [79u8, 208u8, 67u8, 76u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: respectedGameTypeUpdatedAtReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: respectedGameTypeUpdatedAtReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `superRootsActive()` and selector `0xd325d3bf`. +```solidity +function superRootsActive() external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct superRootsActiveCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`superRootsActive()`](superRootsActiveCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct superRootsActiveReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: superRootsActiveCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for superRootsActiveCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: superRootsActiveReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for superRootsActiveReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for superRootsActiveCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "superRootsActive()"; + const SELECTOR: [u8; 4] = [211u8, 37u8, 211u8, 191u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: superRootsActiveReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: superRootsActiveReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `superchainConfig()` and selector `0x35e80ab3`. +```solidity +function superchainConfig() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct superchainConfigCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`superchainConfig()`](superchainConfigCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct superchainConfigReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: superchainConfigCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for superchainConfigCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: superchainConfigReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for superchainConfigReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for superchainConfigCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "superchainConfig()"; + const SELECTOR: [u8; 4] = [53u8, 232u8, 10u8, 179u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: superchainConfigReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: superchainConfigReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `systemConfig()` and selector `0x33d7e2bd`. +```solidity +function systemConfig() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct systemConfigCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`systemConfig()`](systemConfigCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct systemConfigReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: systemConfigCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for systemConfigCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: systemConfigReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for systemConfigReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for systemConfigCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "systemConfig()"; + const SELECTOR: [u8; 4] = [51u8, 215u8, 226u8, 189u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: systemConfigReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: systemConfigReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `upgrade(address,address)` and selector `0x99a88ec4`. +```solidity +function upgrade(address _anchorStateRegistry, address _ethLockbox) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct upgradeCall { + #[allow(missing_docs)] + pub _anchorStateRegistry: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _ethLockbox: alloy::sol_types::private::Address, + } + ///Container type for the return parameters of the [`upgrade(address,address)`](upgradeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct upgradeReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: upgradeCall) -> Self { + (value._anchorStateRegistry, value._ethLockbox) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for upgradeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _anchorStateRegistry: tuple.0, + _ethLockbox: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: upgradeReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for upgradeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl upgradeReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for upgradeCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = upgradeReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "upgrade(address,address)"; + const SELECTOR: [u8; 4] = [153u8, 168u8, 142u8, 196u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._anchorStateRegistry, + ), + ::tokenize( + &self._ethLockbox, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + upgradeReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `version()` and selector `0x54fd4d50`. +```solidity +function version() external pure returns (string memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`version()`](versionCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for versionCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::String; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "version()"; + const SELECTOR: [u8; 4] = [84u8, 253u8, 77u8, 80u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + } + }; + ///Container for all the [`OptimismPortalInterop`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum OptimismPortalInteropCalls { + #[allow(missing_docs)] + anchorStateRegistry(anchorStateRegistryCall), + #[allow(missing_docs)] + checkWithdrawal(checkWithdrawalCall), + #[allow(missing_docs)] + depositTransaction(depositTransactionCall), + #[allow(missing_docs)] + disputeGameBlacklist(disputeGameBlacklistCall), + #[allow(missing_docs)] + disputeGameFactory(disputeGameFactoryCall), + #[allow(missing_docs)] + disputeGameFinalityDelaySeconds(disputeGameFinalityDelaySecondsCall), + #[allow(missing_docs)] + donateETH(donateETHCall), + #[allow(missing_docs)] + ethLockbox(ethLockboxCall), + #[allow(missing_docs)] + finalizeWithdrawalTransaction(finalizeWithdrawalTransactionCall), + #[allow(missing_docs)] + finalizeWithdrawalTransactionExternalProof( + finalizeWithdrawalTransactionExternalProofCall, + ), + #[allow(missing_docs)] + finalizedWithdrawals(finalizedWithdrawalsCall), + #[allow(missing_docs)] + guardian(guardianCall), + #[allow(missing_docs)] + initVersion(initVersionCall), + #[allow(missing_docs)] + initialize(initializeCall), + #[allow(missing_docs)] + l2Sender(l2SenderCall), + #[allow(missing_docs)] + migrateLiquidity(migrateLiquidityCall), + #[allow(missing_docs)] + migrateToSuperRoots(migrateToSuperRootsCall), + #[allow(missing_docs)] + minimumGasLimit(minimumGasLimitCall), + #[allow(missing_docs)] + numProofSubmitters(numProofSubmittersCall), + #[allow(missing_docs)] + params(paramsCall), + #[allow(missing_docs)] + paused(pausedCall), + #[allow(missing_docs)] + proofMaturityDelaySeconds(proofMaturityDelaySecondsCall), + #[allow(missing_docs)] + proofSubmitters(proofSubmittersCall), + #[allow(missing_docs)] + proveWithdrawalTransaction_0(proveWithdrawalTransaction_0Call), + #[allow(missing_docs)] + proveWithdrawalTransaction_1(proveWithdrawalTransaction_1Call), + #[allow(missing_docs)] + provenWithdrawals(provenWithdrawalsCall), + #[allow(missing_docs)] + proxyAdmin(proxyAdminCall), + #[allow(missing_docs)] + proxyAdminOwner(proxyAdminOwnerCall), + #[allow(missing_docs)] + respectedGameType(respectedGameTypeCall), + #[allow(missing_docs)] + respectedGameTypeUpdatedAt(respectedGameTypeUpdatedAtCall), + #[allow(missing_docs)] + superRootsActive(superRootsActiveCall), + #[allow(missing_docs)] + superchainConfig(superchainConfigCall), + #[allow(missing_docs)] + systemConfig(systemConfigCall), + #[allow(missing_docs)] + upgrade(upgradeCall), + #[allow(missing_docs)] + version(versionCall), + } + impl OptimismPortalInteropCalls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [33u8, 82u8, 242u8, 190u8], + [51u8, 215u8, 226u8, 189u8], + [53u8, 232u8, 10u8, 179u8], + [56u8, 211u8, 140u8, 151u8], + [60u8, 159u8, 57u8, 124u8], + [62u8, 71u8, 21u8, 140u8], + [67u8, 202u8, 28u8, 80u8], + [69u8, 42u8, 147u8, 32u8], + [69u8, 136u8, 77u8, 50u8], + [72u8, 112u8, 73u8, 111u8], + [79u8, 208u8, 67u8, 76u8], + [81u8, 55u8, 71u8, 171u8], + [84u8, 253u8, 77u8, 80u8], + [92u8, 12u8, 186u8, 51u8], + [92u8, 151u8, 90u8, 187u8], + [113u8, 193u8, 86u8, 110u8], + [139u8, 76u8, 64u8, 176u8], + [140u8, 49u8, 82u8, 233u8], + [140u8, 144u8, 221u8, 101u8], + [149u8, 43u8, 39u8, 151u8], + [153u8, 168u8, 142u8, 196u8], + [155u8, 246u8, 45u8, 130u8], + [161u8, 66u8, 56u8, 231u8], + [163u8, 93u8, 153u8, 223u8], + [163u8, 134u8, 15u8, 72u8], + [182u8, 130u8, 196u8, 68u8], + [187u8, 44u8, 114u8, 126u8], + [189u8, 162u8, 4u8, 187u8], + [191u8, 101u8, 58u8, 92u8], + [192u8, 197u8, 59u8, 139u8], + [207u8, 240u8, 171u8, 150u8], + [211u8, 37u8, 211u8, 191u8], + [218u8, 213u8, 68u8, 224u8], + [233u8, 224u8, 92u8, 66u8], + [242u8, 180u8, 230u8, 23u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(migrateToSuperRoots), + ::core::stringify!(systemConfig), + ::core::stringify!(superchainConfig), + ::core::stringify!(initVersion), + ::core::stringify!(respectedGameType), + ::core::stringify!(proxyAdmin), + ::core::stringify!(finalizeWithdrawalTransactionExternalProof), + ::core::stringify!(guardian), + ::core::stringify!(disputeGameBlacklist), + ::core::stringify!(proveWithdrawalTransaction_0), + ::core::stringify!(respectedGameTypeUpdatedAt), + ::core::stringify!(numProofSubmitters), + ::core::stringify!(version), + ::core::stringify!(anchorStateRegistry), + ::core::stringify!(paused), + ::core::stringify!(checkWithdrawal), + ::core::stringify!(donateETH), + ::core::stringify!(finalizeWithdrawalTransaction), + ::core::stringify!(proveWithdrawalTransaction_1), + ::core::stringify!(disputeGameFinalityDelaySeconds), + ::core::stringify!(upgrade), + ::core::stringify!(l2Sender), + ::core::stringify!(finalizedWithdrawals), + ::core::stringify!(minimumGasLimit), + ::core::stringify!(proofSubmitters), + ::core::stringify!(ethLockbox), + ::core::stringify!(provenWithdrawals), + ::core::stringify!(migrateLiquidity), + ::core::stringify!(proofMaturityDelaySeconds), + ::core::stringify!(initialize), + ::core::stringify!(params), + ::core::stringify!(superRootsActive), + ::core::stringify!(proxyAdminOwner), + ::core::stringify!(depositTransaction), + ::core::stringify!(disputeGameFactory), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for OptimismPortalInteropCalls { + const NAME: &'static str = "OptimismPortalInteropCalls"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 35usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::anchorStateRegistry(_) => { + ::SELECTOR + } + Self::checkWithdrawal(_) => { + ::SELECTOR + } + Self::depositTransaction(_) => { + ::SELECTOR + } + Self::disputeGameBlacklist(_) => { + ::SELECTOR + } + Self::disputeGameFactory(_) => { + ::SELECTOR + } + Self::disputeGameFinalityDelaySeconds(_) => { + ::SELECTOR + } + Self::donateETH(_) => { + ::SELECTOR + } + Self::ethLockbox(_) => { + ::SELECTOR + } + Self::finalizeWithdrawalTransaction(_) => { + ::SELECTOR + } + Self::finalizeWithdrawalTransactionExternalProof(_) => { + ::SELECTOR + } + Self::finalizedWithdrawals(_) => { + ::SELECTOR + } + Self::guardian(_) => ::SELECTOR, + Self::initVersion(_) => { + ::SELECTOR + } + Self::initialize(_) => { + ::SELECTOR + } + Self::l2Sender(_) => ::SELECTOR, + Self::migrateLiquidity(_) => { + ::SELECTOR + } + Self::migrateToSuperRoots(_) => { + ::SELECTOR + } + Self::minimumGasLimit(_) => { + ::SELECTOR + } + Self::numProofSubmitters(_) => { + ::SELECTOR + } + Self::params(_) => ::SELECTOR, + Self::paused(_) => ::SELECTOR, + Self::proofMaturityDelaySeconds(_) => { + ::SELECTOR + } + Self::proofSubmitters(_) => { + ::SELECTOR + } + Self::proveWithdrawalTransaction_0(_) => { + ::SELECTOR + } + Self::proveWithdrawalTransaction_1(_) => { + ::SELECTOR + } + Self::provenWithdrawals(_) => { + ::SELECTOR + } + Self::proxyAdmin(_) => { + ::SELECTOR + } + Self::proxyAdminOwner(_) => { + ::SELECTOR + } + Self::respectedGameType(_) => { + ::SELECTOR + } + Self::respectedGameTypeUpdatedAt(_) => { + ::SELECTOR + } + Self::superRootsActive(_) => { + ::SELECTOR + } + Self::superchainConfig(_) => { + ::SELECTOR + } + Self::systemConfig(_) => { + ::SELECTOR + } + Self::upgrade(_) => ::SELECTOR, + Self::version(_) => ::SELECTOR, + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn migrateToSuperRoots( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OptimismPortalInteropCalls::migrateToSuperRoots) + } + migrateToSuperRoots + }, + { + fn systemConfig( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OptimismPortalInteropCalls::systemConfig) + } + systemConfig + }, + { + fn superchainConfig( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OptimismPortalInteropCalls::superchainConfig) + } + superchainConfig + }, + { + fn initVersion( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OptimismPortalInteropCalls::initVersion) + } + initVersion + }, + { + fn respectedGameType( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OptimismPortalInteropCalls::respectedGameType) + } + respectedGameType + }, + { + fn proxyAdmin( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OptimismPortalInteropCalls::proxyAdmin) + } + proxyAdmin + }, + { + fn finalizeWithdrawalTransactionExternalProof( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + OptimismPortalInteropCalls::finalizeWithdrawalTransactionExternalProof, + ) + } + finalizeWithdrawalTransactionExternalProof + }, + { + fn guardian( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(OptimismPortalInteropCalls::guardian) + } + guardian + }, + { + fn disputeGameBlacklist( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OptimismPortalInteropCalls::disputeGameBlacklist) + } + disputeGameBlacklist + }, + { + fn proveWithdrawalTransaction_0( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + OptimismPortalInteropCalls::proveWithdrawalTransaction_0, + ) + } + proveWithdrawalTransaction_0 + }, + { + fn respectedGameTypeUpdatedAt( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OptimismPortalInteropCalls::respectedGameTypeUpdatedAt) + } + respectedGameTypeUpdatedAt + }, + { + fn numProofSubmitters( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OptimismPortalInteropCalls::numProofSubmitters) + } + numProofSubmitters + }, + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(OptimismPortalInteropCalls::version) + } + version + }, + { + fn anchorStateRegistry( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OptimismPortalInteropCalls::anchorStateRegistry) + } + anchorStateRegistry + }, + { + fn paused( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(OptimismPortalInteropCalls::paused) + } + paused + }, + { + fn checkWithdrawal( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OptimismPortalInteropCalls::checkWithdrawal) + } + checkWithdrawal + }, + { + fn donateETH( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(OptimismPortalInteropCalls::donateETH) + } + donateETH + }, + { + fn finalizeWithdrawalTransaction( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + OptimismPortalInteropCalls::finalizeWithdrawalTransaction, + ) + } + finalizeWithdrawalTransaction + }, + { + fn proveWithdrawalTransaction_1( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + OptimismPortalInteropCalls::proveWithdrawalTransaction_1, + ) + } + proveWithdrawalTransaction_1 + }, + { + fn disputeGameFinalityDelaySeconds( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + OptimismPortalInteropCalls::disputeGameFinalityDelaySeconds, + ) + } + disputeGameFinalityDelaySeconds + }, + { + fn upgrade( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(OptimismPortalInteropCalls::upgrade) + } + upgrade + }, + { + fn l2Sender( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(OptimismPortalInteropCalls::l2Sender) + } + l2Sender + }, + { + fn finalizedWithdrawals( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OptimismPortalInteropCalls::finalizedWithdrawals) + } + finalizedWithdrawals + }, + { + fn minimumGasLimit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OptimismPortalInteropCalls::minimumGasLimit) + } + minimumGasLimit + }, + { + fn proofSubmitters( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OptimismPortalInteropCalls::proofSubmitters) + } + proofSubmitters + }, + { + fn ethLockbox( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OptimismPortalInteropCalls::ethLockbox) + } + ethLockbox + }, + { + fn provenWithdrawals( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OptimismPortalInteropCalls::provenWithdrawals) + } + provenWithdrawals + }, + { + fn migrateLiquidity( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OptimismPortalInteropCalls::migrateLiquidity) + } + migrateLiquidity + }, + { + fn proofMaturityDelaySeconds( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OptimismPortalInteropCalls::proofMaturityDelaySeconds) + } + proofMaturityDelaySeconds + }, + { + fn initialize( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OptimismPortalInteropCalls::initialize) + } + initialize + }, + { + fn params( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(OptimismPortalInteropCalls::params) + } + params + }, + { + fn superRootsActive( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OptimismPortalInteropCalls::superRootsActive) + } + superRootsActive + }, + { + fn proxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OptimismPortalInteropCalls::proxyAdminOwner) + } + proxyAdminOwner + }, + { + fn depositTransaction( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OptimismPortalInteropCalls::depositTransaction) + } + depositTransaction + }, + { + fn disputeGameFactory( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OptimismPortalInteropCalls::disputeGameFactory) + } + disputeGameFactory + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn migrateToSuperRoots( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismPortalInteropCalls::migrateToSuperRoots) + } + migrateToSuperRoots + }, + { + fn systemConfig( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismPortalInteropCalls::systemConfig) + } + systemConfig + }, + { + fn superchainConfig( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismPortalInteropCalls::superchainConfig) + } + superchainConfig + }, + { + fn initVersion( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismPortalInteropCalls::initVersion) + } + initVersion + }, + { + fn respectedGameType( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismPortalInteropCalls::respectedGameType) + } + respectedGameType + }, + { + fn proxyAdmin( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismPortalInteropCalls::proxyAdmin) + } + proxyAdmin + }, + { + fn finalizeWithdrawalTransactionExternalProof( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + OptimismPortalInteropCalls::finalizeWithdrawalTransactionExternalProof, + ) + } + finalizeWithdrawalTransactionExternalProof + }, + { + fn guardian( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismPortalInteropCalls::guardian) + } + guardian + }, + { + fn disputeGameBlacklist( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismPortalInteropCalls::disputeGameBlacklist) + } + disputeGameBlacklist + }, + { + fn proveWithdrawalTransaction_0( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + OptimismPortalInteropCalls::proveWithdrawalTransaction_0, + ) + } + proveWithdrawalTransaction_0 + }, + { + fn respectedGameTypeUpdatedAt( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismPortalInteropCalls::respectedGameTypeUpdatedAt) + } + respectedGameTypeUpdatedAt + }, + { + fn numProofSubmitters( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismPortalInteropCalls::numProofSubmitters) + } + numProofSubmitters + }, + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismPortalInteropCalls::version) + } + version + }, + { + fn anchorStateRegistry( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismPortalInteropCalls::anchorStateRegistry) + } + anchorStateRegistry + }, + { + fn paused( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismPortalInteropCalls::paused) + } + paused + }, + { + fn checkWithdrawal( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismPortalInteropCalls::checkWithdrawal) + } + checkWithdrawal + }, + { + fn donateETH( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismPortalInteropCalls::donateETH) + } + donateETH + }, + { + fn finalizeWithdrawalTransaction( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + OptimismPortalInteropCalls::finalizeWithdrawalTransaction, + ) + } + finalizeWithdrawalTransaction + }, + { + fn proveWithdrawalTransaction_1( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + OptimismPortalInteropCalls::proveWithdrawalTransaction_1, + ) + } + proveWithdrawalTransaction_1 + }, + { + fn disputeGameFinalityDelaySeconds( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + OptimismPortalInteropCalls::disputeGameFinalityDelaySeconds, + ) + } + disputeGameFinalityDelaySeconds + }, + { + fn upgrade( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismPortalInteropCalls::upgrade) + } + upgrade + }, + { + fn l2Sender( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismPortalInteropCalls::l2Sender) + } + l2Sender + }, + { + fn finalizedWithdrawals( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismPortalInteropCalls::finalizedWithdrawals) + } + finalizedWithdrawals + }, + { + fn minimumGasLimit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismPortalInteropCalls::minimumGasLimit) + } + minimumGasLimit + }, + { + fn proofSubmitters( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismPortalInteropCalls::proofSubmitters) + } + proofSubmitters + }, + { + fn ethLockbox( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismPortalInteropCalls::ethLockbox) + } + ethLockbox + }, + { + fn provenWithdrawals( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismPortalInteropCalls::provenWithdrawals) + } + provenWithdrawals + }, + { + fn migrateLiquidity( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismPortalInteropCalls::migrateLiquidity) + } + migrateLiquidity + }, + { + fn proofMaturityDelaySeconds( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismPortalInteropCalls::proofMaturityDelaySeconds) + } + proofMaturityDelaySeconds + }, + { + fn initialize( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismPortalInteropCalls::initialize) + } + initialize + }, + { + fn params( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismPortalInteropCalls::params) + } + params + }, + { + fn superRootsActive( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismPortalInteropCalls::superRootsActive) + } + superRootsActive + }, + { + fn proxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismPortalInteropCalls::proxyAdminOwner) + } + proxyAdminOwner + }, + { + fn depositTransaction( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismPortalInteropCalls::depositTransaction) + } + depositTransaction + }, + { + fn disputeGameFactory( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismPortalInteropCalls::disputeGameFactory) + } + disputeGameFactory + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::anchorStateRegistry(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::checkWithdrawal(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::depositTransaction(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::disputeGameBlacklist(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::disputeGameFactory(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::disputeGameFinalityDelaySeconds(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::donateETH(inner) => { + ::abi_encoded_size(inner) + } + Self::ethLockbox(inner) => { + ::abi_encoded_size(inner) + } + Self::finalizeWithdrawalTransaction(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::finalizeWithdrawalTransactionExternalProof(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::finalizedWithdrawals(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::guardian(inner) => { + ::abi_encoded_size(inner) + } + Self::initVersion(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::initialize(inner) => { + ::abi_encoded_size(inner) + } + Self::l2Sender(inner) => { + ::abi_encoded_size(inner) + } + Self::migrateLiquidity(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::migrateToSuperRoots(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::minimumGasLimit(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::numProofSubmitters(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::params(inner) => { + ::abi_encoded_size(inner) + } + Self::paused(inner) => { + ::abi_encoded_size(inner) + } + Self::proofMaturityDelaySeconds(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::proofSubmitters(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::proveWithdrawalTransaction_0(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::proveWithdrawalTransaction_1(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::provenWithdrawals(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::proxyAdmin(inner) => { + ::abi_encoded_size(inner) + } + Self::proxyAdminOwner(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::respectedGameType(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::respectedGameTypeUpdatedAt(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::superRootsActive(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::superchainConfig(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::systemConfig(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::upgrade(inner) => { + ::abi_encoded_size(inner) + } + Self::version(inner) => { + ::abi_encoded_size(inner) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::anchorStateRegistry(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::checkWithdrawal(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::depositTransaction(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::disputeGameBlacklist(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::disputeGameFactory(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::disputeGameFinalityDelaySeconds(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::donateETH(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ethLockbox(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::finalizeWithdrawalTransaction(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::finalizeWithdrawalTransactionExternalProof(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::finalizedWithdrawals(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::guardian(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::initVersion(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::initialize(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::l2Sender(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::migrateLiquidity(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::migrateToSuperRoots(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::minimumGasLimit(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::numProofSubmitters(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::params(inner) => { + ::abi_encode_raw(inner, out) + } + Self::paused(inner) => { + ::abi_encode_raw(inner, out) + } + Self::proofMaturityDelaySeconds(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::proofSubmitters(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::proveWithdrawalTransaction_0(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::proveWithdrawalTransaction_1(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::provenWithdrawals(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::proxyAdmin(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::proxyAdminOwner(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::respectedGameType(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::respectedGameTypeUpdatedAt(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::superRootsActive(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::superchainConfig(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::systemConfig(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::upgrade(inner) => { + ::abi_encode_raw(inner, out) + } + Self::version(inner) => { + ::abi_encode_raw(inner, out) + } + } + } + } + ///Container for all the [`OptimismPortalInterop`](self) custom errors. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum OptimismPortalInteropErrors { + #[allow(missing_docs)] + ContentLengthMismatch(ContentLengthMismatch), + #[allow(missing_docs)] + EmptyItem(EmptyItem), + #[allow(missing_docs)] + Encoding_EmptySuperRoot(Encoding_EmptySuperRoot), + #[allow(missing_docs)] + Encoding_InvalidSuperRootVersion(Encoding_InvalidSuperRootVersion), + #[allow(missing_docs)] + InvalidDataRemainder(InvalidDataRemainder), + #[allow(missing_docs)] + InvalidHeader(InvalidHeader), + #[allow(missing_docs)] + OptimismPortal_AlreadyFinalized(OptimismPortal_AlreadyFinalized), + #[allow(missing_docs)] + OptimismPortal_BadTarget(OptimismPortal_BadTarget), + #[allow(missing_docs)] + OptimismPortal_CallPaused(OptimismPortal_CallPaused), + #[allow(missing_docs)] + OptimismPortal_CalldataTooLarge(OptimismPortal_CalldataTooLarge), + #[allow(missing_docs)] + OptimismPortal_GasEstimation(OptimismPortal_GasEstimation), + #[allow(missing_docs)] + OptimismPortal_GasLimitTooLow(OptimismPortal_GasLimitTooLow), + #[allow(missing_docs)] + OptimismPortal_ImproperDisputeGame(OptimismPortal_ImproperDisputeGame), + #[allow(missing_docs)] + OptimismPortal_InvalidDisputeGame(OptimismPortal_InvalidDisputeGame), + #[allow(missing_docs)] + OptimismPortal_InvalidMerkleProof(OptimismPortal_InvalidMerkleProof), + #[allow(missing_docs)] + OptimismPortal_InvalidOutputRootChainId(OptimismPortal_InvalidOutputRootChainId), + #[allow(missing_docs)] + OptimismPortal_InvalidOutputRootIndex(OptimismPortal_InvalidOutputRootIndex), + #[allow(missing_docs)] + OptimismPortal_InvalidOutputRootProof(OptimismPortal_InvalidOutputRootProof), + #[allow(missing_docs)] + OptimismPortal_InvalidProofTimestamp(OptimismPortal_InvalidProofTimestamp), + #[allow(missing_docs)] + OptimismPortal_InvalidRootClaim(OptimismPortal_InvalidRootClaim), + #[allow(missing_docs)] + OptimismPortal_InvalidSuperRootProof(OptimismPortal_InvalidSuperRootProof), + #[allow(missing_docs)] + OptimismPortal_MigratingToSameRegistry(OptimismPortal_MigratingToSameRegistry), + #[allow(missing_docs)] + OptimismPortal_NoReentrancy(OptimismPortal_NoReentrancy), + #[allow(missing_docs)] + OptimismPortal_ProofNotOldEnough(OptimismPortal_ProofNotOldEnough), + #[allow(missing_docs)] + OptimismPortal_Unproven(OptimismPortal_Unproven), + #[allow(missing_docs)] + OptimismPortal_WrongProofMethod(OptimismPortal_WrongProofMethod), + #[allow(missing_docs)] + OutOfGas(OutOfGas), + #[allow(missing_docs)] + ProxyAdminOwnedBase_NotProxyAdmin(ProxyAdminOwnedBase_NotProxyAdmin), + #[allow(missing_docs)] + ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner( + ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner, + ), + #[allow(missing_docs)] + ProxyAdminOwnedBase_NotProxyAdminOwner(ProxyAdminOwnedBase_NotProxyAdminOwner), + #[allow(missing_docs)] + ProxyAdminOwnedBase_NotResolvedDelegateProxy( + ProxyAdminOwnedBase_NotResolvedDelegateProxy, + ), + #[allow(missing_docs)] + ProxyAdminOwnedBase_NotSharedProxyAdminOwner( + ProxyAdminOwnedBase_NotSharedProxyAdminOwner, + ), + #[allow(missing_docs)] + ProxyAdminOwnedBase_ProxyAdminNotFound(ProxyAdminOwnedBase_ProxyAdminNotFound), + #[allow(missing_docs)] + ReinitializableBase_ZeroInitVersion(ReinitializableBase_ZeroInitVersion), + #[allow(missing_docs)] + UnexpectedList(UnexpectedList), + #[allow(missing_docs)] + UnexpectedString(UnexpectedString), + } + impl OptimismPortalInteropErrors { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [7u8, 92u8, 67u8, 20u8], + [31u8, 249u8, 178u8, 228u8], + [43u8, 26u8, 154u8, 102u8], + [46u8, 87u8, 239u8, 58u8], + [50u8, 220u8, 40u8, 92u8], + [51u8, 33u8, 68u8, 219u8], + [51u8, 42u8, 87u8, 248u8], + [66u8, 97u8, 73u8, 175u8], + [75u8, 156u8, 106u8, 190u8], + [84u8, 228u8, 51u8, 205u8], + [90u8, 163u8, 186u8, 201u8], + [90u8, 180u8, 88u8, 251u8], + [92u8, 85u8, 55u8, 184u8], + [94u8, 116u8, 181u8, 66u8], + [102u8, 201u8, 68u8, 133u8], + [112u8, 200u8, 189u8, 189u8], + [115u8, 10u8, 16u8, 116u8], + [119u8, 235u8, 239u8, 77u8], + [120u8, 93u8, 249u8, 17u8], + [124u8, 194u8, 243u8, 27u8], + [127u8, 18u8, 198u8, 75u8], + [145u8, 3u8, 231u8, 205u8], + [155u8, 1u8, 175u8, 237u8], + [171u8, 88u8, 16u8, 54u8], + [180u8, 202u8, 164u8, 229u8], + [185u8, 195u8, 194u8, 239u8], + [186u8, 187u8, 1u8, 221u8], + [192u8, 107u8, 82u8, 56u8], + [196u8, 5u8, 10u8, 38u8], + [197u8, 222u8, 251u8, 173u8], + [204u8, 166u8, 175u8, 218u8], + [217u8, 188u8, 1u8, 190u8], + [223u8, 234u8, 174u8, 184u8], + [226u8, 153u8, 39u8, 237u8], + [232u8, 24u8, 220u8, 195u8], + [243u8, 149u8, 36u8, 14u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(ProxyAdminOwnedBase_NotSharedProxyAdminOwner), + ::core::stringify!(UnexpectedList), + ::core::stringify!(OptimismPortal_InvalidSuperRootProof), + ::core::stringify!(OptimismPortal_InvalidMerkleProof), + ::core::stringify!(OptimismPortal_InvalidOutputRootIndex), + ::core::stringify!(ProxyAdminOwnedBase_ProxyAdminNotFound), + ::core::stringify!(OptimismPortal_InvalidRootClaim), + ::core::stringify!(OptimismPortal_InvalidOutputRootProof), + ::core::stringify!(UnexpectedString), + ::core::stringify!(ProxyAdminOwnedBase_NotResolvedDelegateProxy), + ::core::stringify!(OptimismPortal_CalldataTooLarge), + ::core::stringify!(EmptyItem), + ::core::stringify!(InvalidDataRemainder), + ::core::stringify!(OptimismPortal_WrongProofMethod), + ::core::stringify!(ContentLengthMismatch), + ::core::stringify!(OptimismPortal_GasLimitTooLow), + ::core::stringify!(OptimismPortal_AlreadyFinalized), + ::core::stringify!(OutOfGas), + ::core::stringify!(OptimismPortal_MigratingToSameRegistry), + ::core::stringify!(OptimismPortal_InvalidOutputRootChainId), + ::core::stringify!(ProxyAdminOwnedBase_NotProxyAdminOwner), + ::core::stringify!(Encoding_EmptySuperRoot), + ::core::stringify!(ReinitializableBase_ZeroInitVersion), + ::core::stringify!(OptimismPortal_GasEstimation), + ::core::stringify!(OptimismPortal_InvalidProofTimestamp), + ::core::stringify!(OptimismPortal_CallPaused), + ::core::stringify!(InvalidHeader), + ::core::stringify!(Encoding_InvalidSuperRootVersion), + ::core::stringify!(ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner), + ::core::stringify!(OptimismPortal_BadTarget), + ::core::stringify!(OptimismPortal_Unproven), + ::core::stringify!(OptimismPortal_ProofNotOldEnough), + ::core::stringify!(OptimismPortal_NoReentrancy), + ::core::stringify!(OptimismPortal_InvalidDisputeGame), + ::core::stringify!(ProxyAdminOwnedBase_NotProxyAdmin), + ::core::stringify!(OptimismPortal_ImproperDisputeGame), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for OptimismPortalInteropErrors { + const NAME: &'static str = "OptimismPortalInteropErrors"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 36usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::ContentLengthMismatch(_) => { + ::SELECTOR + } + Self::EmptyItem(_) => ::SELECTOR, + Self::Encoding_EmptySuperRoot(_) => { + ::SELECTOR + } + Self::Encoding_InvalidSuperRootVersion(_) => { + ::SELECTOR + } + Self::InvalidDataRemainder(_) => { + ::SELECTOR + } + Self::InvalidHeader(_) => { + ::SELECTOR + } + Self::OptimismPortal_AlreadyFinalized(_) => { + ::SELECTOR + } + Self::OptimismPortal_BadTarget(_) => { + ::SELECTOR + } + Self::OptimismPortal_CallPaused(_) => { + ::SELECTOR + } + Self::OptimismPortal_CalldataTooLarge(_) => { + ::SELECTOR + } + Self::OptimismPortal_GasEstimation(_) => { + ::SELECTOR + } + Self::OptimismPortal_GasLimitTooLow(_) => { + ::SELECTOR + } + Self::OptimismPortal_ImproperDisputeGame(_) => { + ::SELECTOR + } + Self::OptimismPortal_InvalidDisputeGame(_) => { + ::SELECTOR + } + Self::OptimismPortal_InvalidMerkleProof(_) => { + ::SELECTOR + } + Self::OptimismPortal_InvalidOutputRootChainId(_) => { + ::SELECTOR + } + Self::OptimismPortal_InvalidOutputRootIndex(_) => { + ::SELECTOR + } + Self::OptimismPortal_InvalidOutputRootProof(_) => { + ::SELECTOR + } + Self::OptimismPortal_InvalidProofTimestamp(_) => { + ::SELECTOR + } + Self::OptimismPortal_InvalidRootClaim(_) => { + ::SELECTOR + } + Self::OptimismPortal_InvalidSuperRootProof(_) => { + ::SELECTOR + } + Self::OptimismPortal_MigratingToSameRegistry(_) => { + ::SELECTOR + } + Self::OptimismPortal_NoReentrancy(_) => { + ::SELECTOR + } + Self::OptimismPortal_ProofNotOldEnough(_) => { + ::SELECTOR + } + Self::OptimismPortal_Unproven(_) => { + ::SELECTOR + } + Self::OptimismPortal_WrongProofMethod(_) => { + ::SELECTOR + } + Self::OutOfGas(_) => ::SELECTOR, + Self::ProxyAdminOwnedBase_NotProxyAdmin(_) => { + ::SELECTOR + } + Self::ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner(_) => { + ::SELECTOR + } + Self::ProxyAdminOwnedBase_NotProxyAdminOwner(_) => { + ::SELECTOR + } + Self::ProxyAdminOwnedBase_NotResolvedDelegateProxy(_) => { + ::SELECTOR + } + Self::ProxyAdminOwnedBase_NotSharedProxyAdminOwner(_) => { + ::SELECTOR + } + Self::ProxyAdminOwnedBase_ProxyAdminNotFound(_) => { + ::SELECTOR + } + Self::ReinitializableBase_ZeroInitVersion(_) => { + ::SELECTOR + } + Self::UnexpectedList(_) => { + ::SELECTOR + } + Self::UnexpectedString(_) => { + ::SELECTOR + } + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn ProxyAdminOwnedBase_NotSharedProxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + OptimismPortalInteropErrors::ProxyAdminOwnedBase_NotSharedProxyAdminOwner, + ) + } + ProxyAdminOwnedBase_NotSharedProxyAdminOwner + }, + { + fn UnexpectedList( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OptimismPortalInteropErrors::UnexpectedList) + } + UnexpectedList + }, + { + fn OptimismPortal_InvalidSuperRootProof( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + OptimismPortalInteropErrors::OptimismPortal_InvalidSuperRootProof, + ) + } + OptimismPortal_InvalidSuperRootProof + }, + { + fn OptimismPortal_InvalidMerkleProof( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + OptimismPortalInteropErrors::OptimismPortal_InvalidMerkleProof, + ) + } + OptimismPortal_InvalidMerkleProof + }, + { + fn OptimismPortal_InvalidOutputRootIndex( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + OptimismPortalInteropErrors::OptimismPortal_InvalidOutputRootIndex, + ) + } + OptimismPortal_InvalidOutputRootIndex + }, + { + fn ProxyAdminOwnedBase_ProxyAdminNotFound( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + OptimismPortalInteropErrors::ProxyAdminOwnedBase_ProxyAdminNotFound, + ) + } + ProxyAdminOwnedBase_ProxyAdminNotFound + }, + { + fn OptimismPortal_InvalidRootClaim( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + OptimismPortalInteropErrors::OptimismPortal_InvalidRootClaim, + ) + } + OptimismPortal_InvalidRootClaim + }, + { + fn OptimismPortal_InvalidOutputRootProof( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + OptimismPortalInteropErrors::OptimismPortal_InvalidOutputRootProof, + ) + } + OptimismPortal_InvalidOutputRootProof + }, + { + fn UnexpectedString( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OptimismPortalInteropErrors::UnexpectedString) + } + UnexpectedString + }, + { + fn ProxyAdminOwnedBase_NotResolvedDelegateProxy( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + OptimismPortalInteropErrors::ProxyAdminOwnedBase_NotResolvedDelegateProxy, + ) + } + ProxyAdminOwnedBase_NotResolvedDelegateProxy + }, + { + fn OptimismPortal_CalldataTooLarge( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + OptimismPortalInteropErrors::OptimismPortal_CalldataTooLarge, + ) + } + OptimismPortal_CalldataTooLarge + }, + { + fn EmptyItem( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(OptimismPortalInteropErrors::EmptyItem) + } + EmptyItem + }, + { + fn InvalidDataRemainder( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OptimismPortalInteropErrors::InvalidDataRemainder) + } + InvalidDataRemainder + }, + { + fn OptimismPortal_WrongProofMethod( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + OptimismPortalInteropErrors::OptimismPortal_WrongProofMethod, + ) + } + OptimismPortal_WrongProofMethod + }, + { + fn ContentLengthMismatch( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OptimismPortalInteropErrors::ContentLengthMismatch) + } + ContentLengthMismatch + }, + { + fn OptimismPortal_GasLimitTooLow( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + OptimismPortalInteropErrors::OptimismPortal_GasLimitTooLow, + ) + } + OptimismPortal_GasLimitTooLow + }, + { + fn OptimismPortal_AlreadyFinalized( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + OptimismPortalInteropErrors::OptimismPortal_AlreadyFinalized, + ) + } + OptimismPortal_AlreadyFinalized + }, + { + fn OutOfGas( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(OptimismPortalInteropErrors::OutOfGas) + } + OutOfGas + }, + { + fn OptimismPortal_MigratingToSameRegistry( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + OptimismPortalInteropErrors::OptimismPortal_MigratingToSameRegistry, + ) + } + OptimismPortal_MigratingToSameRegistry + }, + { + fn OptimismPortal_InvalidOutputRootChainId( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + OptimismPortalInteropErrors::OptimismPortal_InvalidOutputRootChainId, + ) + } + OptimismPortal_InvalidOutputRootChainId + }, + { + fn ProxyAdminOwnedBase_NotProxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + OptimismPortalInteropErrors::ProxyAdminOwnedBase_NotProxyAdminOwner, + ) + } + ProxyAdminOwnedBase_NotProxyAdminOwner + }, + { + fn Encoding_EmptySuperRoot( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OptimismPortalInteropErrors::Encoding_EmptySuperRoot) + } + Encoding_EmptySuperRoot + }, + { + fn ReinitializableBase_ZeroInitVersion( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + OptimismPortalInteropErrors::ReinitializableBase_ZeroInitVersion, + ) + } + ReinitializableBase_ZeroInitVersion + }, + { + fn OptimismPortal_GasEstimation( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + OptimismPortalInteropErrors::OptimismPortal_GasEstimation, + ) + } + OptimismPortal_GasEstimation + }, + { + fn OptimismPortal_InvalidProofTimestamp( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + OptimismPortalInteropErrors::OptimismPortal_InvalidProofTimestamp, + ) + } + OptimismPortal_InvalidProofTimestamp + }, + { + fn OptimismPortal_CallPaused( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OptimismPortalInteropErrors::OptimismPortal_CallPaused) + } + OptimismPortal_CallPaused + }, + { + fn InvalidHeader( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OptimismPortalInteropErrors::InvalidHeader) + } + InvalidHeader + }, + { + fn Encoding_InvalidSuperRootVersion( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + OptimismPortalInteropErrors::Encoding_InvalidSuperRootVersion, + ) + } + Encoding_InvalidSuperRootVersion + }, + { + fn ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + OptimismPortalInteropErrors::ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner, + ) + } + ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner + }, + { + fn OptimismPortal_BadTarget( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OptimismPortalInteropErrors::OptimismPortal_BadTarget) + } + OptimismPortal_BadTarget + }, + { + fn OptimismPortal_Unproven( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OptimismPortalInteropErrors::OptimismPortal_Unproven) + } + OptimismPortal_Unproven + }, + { + fn OptimismPortal_ProofNotOldEnough( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + OptimismPortalInteropErrors::OptimismPortal_ProofNotOldEnough, + ) + } + OptimismPortal_ProofNotOldEnough + }, + { + fn OptimismPortal_NoReentrancy( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + OptimismPortalInteropErrors::OptimismPortal_NoReentrancy, + ) + } + OptimismPortal_NoReentrancy + }, + { + fn OptimismPortal_InvalidDisputeGame( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + OptimismPortalInteropErrors::OptimismPortal_InvalidDisputeGame, + ) + } + OptimismPortal_InvalidDisputeGame + }, + { + fn ProxyAdminOwnedBase_NotProxyAdmin( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + OptimismPortalInteropErrors::ProxyAdminOwnedBase_NotProxyAdmin, + ) + } + ProxyAdminOwnedBase_NotProxyAdmin + }, + { + fn OptimismPortal_ImproperDisputeGame( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + OptimismPortalInteropErrors::OptimismPortal_ImproperDisputeGame, + ) + } + OptimismPortal_ImproperDisputeGame + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn ProxyAdminOwnedBase_NotSharedProxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + OptimismPortalInteropErrors::ProxyAdminOwnedBase_NotSharedProxyAdminOwner, + ) + } + ProxyAdminOwnedBase_NotSharedProxyAdminOwner + }, + { + fn UnexpectedList( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismPortalInteropErrors::UnexpectedList) + } + UnexpectedList + }, + { + fn OptimismPortal_InvalidSuperRootProof( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + OptimismPortalInteropErrors::OptimismPortal_InvalidSuperRootProof, + ) + } + OptimismPortal_InvalidSuperRootProof + }, + { + fn OptimismPortal_InvalidMerkleProof( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + OptimismPortalInteropErrors::OptimismPortal_InvalidMerkleProof, + ) + } + OptimismPortal_InvalidMerkleProof + }, + { + fn OptimismPortal_InvalidOutputRootIndex( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + OptimismPortalInteropErrors::OptimismPortal_InvalidOutputRootIndex, + ) + } + OptimismPortal_InvalidOutputRootIndex + }, + { + fn ProxyAdminOwnedBase_ProxyAdminNotFound( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + OptimismPortalInteropErrors::ProxyAdminOwnedBase_ProxyAdminNotFound, + ) + } + ProxyAdminOwnedBase_ProxyAdminNotFound + }, + { + fn OptimismPortal_InvalidRootClaim( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + OptimismPortalInteropErrors::OptimismPortal_InvalidRootClaim, + ) + } + OptimismPortal_InvalidRootClaim + }, + { + fn OptimismPortal_InvalidOutputRootProof( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + OptimismPortalInteropErrors::OptimismPortal_InvalidOutputRootProof, + ) + } + OptimismPortal_InvalidOutputRootProof + }, + { + fn UnexpectedString( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismPortalInteropErrors::UnexpectedString) + } + UnexpectedString + }, + { + fn ProxyAdminOwnedBase_NotResolvedDelegateProxy( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + OptimismPortalInteropErrors::ProxyAdminOwnedBase_NotResolvedDelegateProxy, + ) + } + ProxyAdminOwnedBase_NotResolvedDelegateProxy + }, + { + fn OptimismPortal_CalldataTooLarge( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + OptimismPortalInteropErrors::OptimismPortal_CalldataTooLarge, + ) + } + OptimismPortal_CalldataTooLarge + }, + { + fn EmptyItem( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismPortalInteropErrors::EmptyItem) + } + EmptyItem + }, + { + fn InvalidDataRemainder( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismPortalInteropErrors::InvalidDataRemainder) + } + InvalidDataRemainder + }, + { + fn OptimismPortal_WrongProofMethod( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + OptimismPortalInteropErrors::OptimismPortal_WrongProofMethod, + ) + } + OptimismPortal_WrongProofMethod + }, + { + fn ContentLengthMismatch( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismPortalInteropErrors::ContentLengthMismatch) + } + ContentLengthMismatch + }, + { + fn OptimismPortal_GasLimitTooLow( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + OptimismPortalInteropErrors::OptimismPortal_GasLimitTooLow, + ) + } + OptimismPortal_GasLimitTooLow + }, + { + fn OptimismPortal_AlreadyFinalized( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + OptimismPortalInteropErrors::OptimismPortal_AlreadyFinalized, + ) + } + OptimismPortal_AlreadyFinalized + }, + { + fn OutOfGas( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismPortalInteropErrors::OutOfGas) + } + OutOfGas + }, + { + fn OptimismPortal_MigratingToSameRegistry( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + OptimismPortalInteropErrors::OptimismPortal_MigratingToSameRegistry, + ) + } + OptimismPortal_MigratingToSameRegistry + }, + { + fn OptimismPortal_InvalidOutputRootChainId( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + OptimismPortalInteropErrors::OptimismPortal_InvalidOutputRootChainId, + ) + } + OptimismPortal_InvalidOutputRootChainId + }, + { + fn ProxyAdminOwnedBase_NotProxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + OptimismPortalInteropErrors::ProxyAdminOwnedBase_NotProxyAdminOwner, + ) + } + ProxyAdminOwnedBase_NotProxyAdminOwner + }, + { + fn Encoding_EmptySuperRoot( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismPortalInteropErrors::Encoding_EmptySuperRoot) + } + Encoding_EmptySuperRoot + }, + { + fn ReinitializableBase_ZeroInitVersion( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + OptimismPortalInteropErrors::ReinitializableBase_ZeroInitVersion, + ) + } + ReinitializableBase_ZeroInitVersion + }, + { + fn OptimismPortal_GasEstimation( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + OptimismPortalInteropErrors::OptimismPortal_GasEstimation, + ) + } + OptimismPortal_GasEstimation + }, + { + fn OptimismPortal_InvalidProofTimestamp( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + OptimismPortalInteropErrors::OptimismPortal_InvalidProofTimestamp, + ) + } + OptimismPortal_InvalidProofTimestamp + }, + { + fn OptimismPortal_CallPaused( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismPortalInteropErrors::OptimismPortal_CallPaused) + } + OptimismPortal_CallPaused + }, + { + fn InvalidHeader( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismPortalInteropErrors::InvalidHeader) + } + InvalidHeader + }, + { + fn Encoding_InvalidSuperRootVersion( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + OptimismPortalInteropErrors::Encoding_InvalidSuperRootVersion, + ) + } + Encoding_InvalidSuperRootVersion + }, + { + fn ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + OptimismPortalInteropErrors::ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner, + ) + } + ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner + }, + { + fn OptimismPortal_BadTarget( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismPortalInteropErrors::OptimismPortal_BadTarget) + } + OptimismPortal_BadTarget + }, + { + fn OptimismPortal_Unproven( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismPortalInteropErrors::OptimismPortal_Unproven) + } + OptimismPortal_Unproven + }, + { + fn OptimismPortal_ProofNotOldEnough( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + OptimismPortalInteropErrors::OptimismPortal_ProofNotOldEnough, + ) + } + OptimismPortal_ProofNotOldEnough + }, + { + fn OptimismPortal_NoReentrancy( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + OptimismPortalInteropErrors::OptimismPortal_NoReentrancy, + ) + } + OptimismPortal_NoReentrancy + }, + { + fn OptimismPortal_InvalidDisputeGame( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + OptimismPortalInteropErrors::OptimismPortal_InvalidDisputeGame, + ) + } + OptimismPortal_InvalidDisputeGame + }, + { + fn ProxyAdminOwnedBase_NotProxyAdmin( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + OptimismPortalInteropErrors::ProxyAdminOwnedBase_NotProxyAdmin, + ) + } + ProxyAdminOwnedBase_NotProxyAdmin + }, + { + fn OptimismPortal_ImproperDisputeGame( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + OptimismPortalInteropErrors::OptimismPortal_ImproperDisputeGame, + ) + } + OptimismPortal_ImproperDisputeGame + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::ContentLengthMismatch(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::EmptyItem(inner) => { + ::abi_encoded_size(inner) + } + Self::Encoding_EmptySuperRoot(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::Encoding_InvalidSuperRootVersion(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::InvalidDataRemainder(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::InvalidHeader(inner) => { + ::abi_encoded_size(inner) + } + Self::OptimismPortal_AlreadyFinalized(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::OptimismPortal_BadTarget(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::OptimismPortal_CallPaused(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::OptimismPortal_CalldataTooLarge(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::OptimismPortal_GasEstimation(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::OptimismPortal_GasLimitTooLow(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::OptimismPortal_ImproperDisputeGame(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::OptimismPortal_InvalidDisputeGame(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::OptimismPortal_InvalidMerkleProof(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::OptimismPortal_InvalidOutputRootChainId(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::OptimismPortal_InvalidOutputRootIndex(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::OptimismPortal_InvalidOutputRootProof(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::OptimismPortal_InvalidProofTimestamp(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::OptimismPortal_InvalidRootClaim(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::OptimismPortal_InvalidSuperRootProof(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::OptimismPortal_MigratingToSameRegistry(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::OptimismPortal_NoReentrancy(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::OptimismPortal_ProofNotOldEnough(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::OptimismPortal_Unproven(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::OptimismPortal_WrongProofMethod(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::OutOfGas(inner) => { + ::abi_encoded_size(inner) + } + Self::ProxyAdminOwnedBase_NotProxyAdmin(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ProxyAdminOwnedBase_NotProxyAdminOwner(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ProxyAdminOwnedBase_NotResolvedDelegateProxy(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ProxyAdminOwnedBase_NotSharedProxyAdminOwner(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ProxyAdminOwnedBase_ProxyAdminNotFound(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ReinitializableBase_ZeroInitVersion(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::UnexpectedList(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::UnexpectedString(inner) => { + ::abi_encoded_size( + inner, + ) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::ContentLengthMismatch(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::EmptyItem(inner) => { + ::abi_encode_raw(inner, out) + } + Self::Encoding_EmptySuperRoot(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::Encoding_InvalidSuperRootVersion(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidDataRemainder(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidHeader(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::OptimismPortal_AlreadyFinalized(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::OptimismPortal_BadTarget(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::OptimismPortal_CallPaused(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::OptimismPortal_CalldataTooLarge(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::OptimismPortal_GasEstimation(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::OptimismPortal_GasLimitTooLow(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::OptimismPortal_ImproperDisputeGame(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::OptimismPortal_InvalidDisputeGame(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::OptimismPortal_InvalidMerkleProof(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::OptimismPortal_InvalidOutputRootChainId(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::OptimismPortal_InvalidOutputRootIndex(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::OptimismPortal_InvalidOutputRootProof(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::OptimismPortal_InvalidProofTimestamp(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::OptimismPortal_InvalidRootClaim(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::OptimismPortal_InvalidSuperRootProof(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::OptimismPortal_MigratingToSameRegistry(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::OptimismPortal_NoReentrancy(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::OptimismPortal_ProofNotOldEnough(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::OptimismPortal_Unproven(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::OptimismPortal_WrongProofMethod(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::OutOfGas(inner) => { + ::abi_encode_raw(inner, out) + } + Self::ProxyAdminOwnedBase_NotProxyAdmin(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ProxyAdminOwnedBase_NotProxyAdminOwner(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ProxyAdminOwnedBase_NotResolvedDelegateProxy(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ProxyAdminOwnedBase_NotSharedProxyAdminOwner(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ProxyAdminOwnedBase_ProxyAdminNotFound(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ReinitializableBase_ZeroInitVersion(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::UnexpectedList(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::UnexpectedString(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + } + } + } + ///Container for all the [`OptimismPortalInterop`](self) events. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum OptimismPortalInteropEvents { + #[allow(missing_docs)] + ETHMigrated(ETHMigrated), + #[allow(missing_docs)] + Initialized(Initialized), + #[allow(missing_docs)] + PortalMigrated(PortalMigrated), + #[allow(missing_docs)] + TransactionDeposited(TransactionDeposited), + #[allow(missing_docs)] + WithdrawalFinalized(WithdrawalFinalized), + #[allow(missing_docs)] + WithdrawalProven(WithdrawalProven), + #[allow(missing_docs)] + WithdrawalProvenExtension1(WithdrawalProvenExtension1), + } + impl OptimismPortalInteropEvents { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 32usize]] = &[ + [ + 103u8, 166u8, 32u8, 140u8, 252u8, 192u8, 128u8, 29u8, 80u8, 246u8, 203u8, + 231u8, 100u8, 115u8, 63u8, 79u8, 221u8, 246u8, 106u8, 192u8, 176u8, 68u8, + 66u8, 6u8, 26u8, 138u8, 140u8, 12u8, 182u8, 182u8, 63u8, 98u8, + ], + [ + 121u8, 143u8, 159u8, 19u8, 105u8, 95u8, 143u8, 4u8, 90u8, 165u8, 248u8, + 14u8, 216u8, 239u8, 235u8, 182u8, 149u8, 243u8, 199u8, 254u8, 101u8, + 218u8, 56u8, 25u8, 105u8, 242u8, 242u8, 139u8, 243u8, 198u8, 11u8, 151u8, + ], + [ + 127u8, 38u8, 184u8, 63u8, 249u8, 110u8, 31u8, 43u8, 106u8, 104u8, 47u8, + 19u8, 56u8, 82u8, 246u8, 121u8, 138u8, 9u8, 196u8, 101u8, 218u8, 149u8, + 146u8, 20u8, 96u8, 206u8, 251u8, 56u8, 71u8, 64u8, 36u8, 152u8, + ], + [ + 158u8, 83u8, 104u8, 71u8, 26u8, 88u8, 216u8, 25u8, 135u8, 229u8, 220u8, + 125u8, 99u8, 116u8, 221u8, 94u8, 213u8, 231u8, 86u8, 204u8, 149u8, 167u8, + 159u8, 247u8, 38u8, 144u8, 52u8, 35u8, 188u8, 224u8, 6u8, 13u8, + ], + [ + 179u8, 129u8, 53u8, 104u8, 217u8, 153u8, 31u8, 201u8, 81u8, 150u8, 31u8, + 203u8, 76u8, 120u8, 72u8, 147u8, 87u8, 66u8, 64u8, 162u8, 137u8, 37u8, + 96u8, 77u8, 9u8, 252u8, 87u8, 124u8, 85u8, 187u8, 124u8, 50u8, + ], + [ + 216u8, 147u8, 246u8, 48u8, 198u8, 134u8, 127u8, 164u8, 54u8, 137u8, + 218u8, 154u8, 233u8, 73u8, 235u8, 240u8, 76u8, 172u8, 36u8, 170u8, 211u8, + 180u8, 92u8, 117u8, 157u8, 68u8, 46u8, 211u8, 195u8, 46u8, 58u8, 55u8, + ], + [ + 219u8, 92u8, 118u8, 82u8, 133u8, 122u8, 161u8, 99u8, 218u8, 173u8, 214u8, + 112u8, 225u8, 22u8, 98u8, 143u8, 180u8, 46u8, 134u8, 157u8, 138u8, 196u8, + 37u8, 30u8, 248u8, 151u8, 29u8, 158u8, 87u8, 39u8, 223u8, 27u8, + ], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(WithdrawalProven), + ::core::stringify!(WithdrawalProvenExtension1), + ::core::stringify!(Initialized), + ::core::stringify!(PortalMigrated), + ::core::stringify!(TransactionDeposited), + ::core::stringify!(ETHMigrated), + ::core::stringify!(WithdrawalFinalized), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolEventInterface for OptimismPortalInteropEvents { + const NAME: &'static str = "OptimismPortalInteropEvents"; + const COUNT: usize = 7usize; + fn decode_raw_log( + topics: &[alloy_sol_types::Word], + data: &[u8], + ) -> alloy_sol_types::Result { + match topics.first().copied() { + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::ETHMigrated) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::Initialized) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::PortalMigrated) + } + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::TransactionDeposited) + } + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::WithdrawalFinalized) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::WithdrawalProven) + } + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::WithdrawalProvenExtension1) + } + _ => { + alloy_sol_types::private::Err(alloy_sol_types::Error::InvalidLog { + name: ::NAME, + log: alloy_sol_types::private::Box::new( + alloy_sol_types::private::LogData::new_unchecked( + topics.to_vec(), + data.to_vec().into(), + ), + ), + }) + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for OptimismPortalInteropEvents { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + match self { + Self::ETHMigrated(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::Initialized(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::PortalMigrated(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::TransactionDeposited(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::WithdrawalFinalized(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::WithdrawalProven(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::WithdrawalProvenExtension1(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + } + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + match self { + Self::ETHMigrated(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::Initialized(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::PortalMigrated(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::TransactionDeposited(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::WithdrawalFinalized(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::WithdrawalProven(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::WithdrawalProvenExtension1(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`OptimismPortalInterop`](self) contract instance. + +See the [wrapper's documentation](`OptimismPortalInteropInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> OptimismPortalInteropInstance { + OptimismPortalInteropInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + _proofMaturityDelaySeconds: alloy::sol_types::private::primitives::aliases::U256, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + OptimismPortalInteropInstance::< + P, + N, + >::deploy(__provider, _proofMaturityDelaySeconds) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + _proofMaturityDelaySeconds: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::RawCallBuilder { + OptimismPortalInteropInstance::< + P, + N, + >::deploy_builder(__provider, _proofMaturityDelaySeconds) + } + /**A [`OptimismPortalInterop`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`OptimismPortalInterop`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct OptimismPortalInteropInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for OptimismPortalInteropInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("OptimismPortalInteropInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > OptimismPortalInteropInstance { + /**Creates a new wrapper around an on-chain [`OptimismPortalInterop`](self) contract instance. + +See the [wrapper's documentation](`OptimismPortalInteropInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + _proofMaturityDelaySeconds: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder( + __provider, + _proofMaturityDelaySeconds, + ); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder( + __provider: P, + _proofMaturityDelaySeconds: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + [ + &BYTECODE[..], + &alloy_sol_types::SolConstructor::abi_encode( + &constructorCall { + _proofMaturityDelaySeconds, + }, + )[..], + ] + .concat() + .into(), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl OptimismPortalInteropInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> OptimismPortalInteropInstance { + OptimismPortalInteropInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > OptimismPortalInteropInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`anchorStateRegistry`] function. + pub fn anchorStateRegistry( + &self, + ) -> alloy_contract::SolCallBuilder<&P, anchorStateRegistryCall, N> { + self.call_builder(&anchorStateRegistryCall) + } + ///Creates a new call builder for the [`checkWithdrawal`] function. + pub fn checkWithdrawal( + &self, + _withdrawalHash: alloy::sol_types::private::FixedBytes<32>, + _proofSubmitter: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, checkWithdrawalCall, N> { + self.call_builder( + &checkWithdrawalCall { + _withdrawalHash, + _proofSubmitter, + }, + ) + } + ///Creates a new call builder for the [`depositTransaction`] function. + pub fn depositTransaction( + &self, + _to: alloy::sol_types::private::Address, + _value: alloy::sol_types::private::primitives::aliases::U256, + _gasLimit: u64, + _isCreation: bool, + _data: alloy::sol_types::private::Bytes, + ) -> alloy_contract::SolCallBuilder<&P, depositTransactionCall, N> { + self.call_builder( + &depositTransactionCall { + _to, + _value, + _gasLimit, + _isCreation, + _data, + }, + ) + } + ///Creates a new call builder for the [`disputeGameBlacklist`] function. + pub fn disputeGameBlacklist( + &self, + _disputeGame: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, disputeGameBlacklistCall, N> { + self.call_builder( + &disputeGameBlacklistCall { + _disputeGame, + }, + ) + } + ///Creates a new call builder for the [`disputeGameFactory`] function. + pub fn disputeGameFactory( + &self, + ) -> alloy_contract::SolCallBuilder<&P, disputeGameFactoryCall, N> { + self.call_builder(&disputeGameFactoryCall) + } + ///Creates a new call builder for the [`disputeGameFinalityDelaySeconds`] function. + pub fn disputeGameFinalityDelaySeconds( + &self, + ) -> alloy_contract::SolCallBuilder<&P, disputeGameFinalityDelaySecondsCall, N> { + self.call_builder(&disputeGameFinalityDelaySecondsCall) + } + ///Creates a new call builder for the [`donateETH`] function. + pub fn donateETH(&self) -> alloy_contract::SolCallBuilder<&P, donateETHCall, N> { + self.call_builder(&donateETHCall) + } + ///Creates a new call builder for the [`ethLockbox`] function. + pub fn ethLockbox( + &self, + ) -> alloy_contract::SolCallBuilder<&P, ethLockboxCall, N> { + self.call_builder(ðLockboxCall) + } + ///Creates a new call builder for the [`finalizeWithdrawalTransaction`] function. + pub fn finalizeWithdrawalTransaction( + &self, + _tx: ::RustType, + ) -> alloy_contract::SolCallBuilder<&P, finalizeWithdrawalTransactionCall, N> { + self.call_builder( + &finalizeWithdrawalTransactionCall { + _tx, + }, + ) + } + ///Creates a new call builder for the [`finalizeWithdrawalTransactionExternalProof`] function. + pub fn finalizeWithdrawalTransactionExternalProof( + &self, + _tx: ::RustType, + _proofSubmitter: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder< + &P, + finalizeWithdrawalTransactionExternalProofCall, + N, + > { + self.call_builder( + &finalizeWithdrawalTransactionExternalProofCall { + _tx, + _proofSubmitter, + }, + ) + } + ///Creates a new call builder for the [`finalizedWithdrawals`] function. + pub fn finalizedWithdrawals( + &self, + _0: alloy::sol_types::private::FixedBytes<32>, + ) -> alloy_contract::SolCallBuilder<&P, finalizedWithdrawalsCall, N> { + self.call_builder(&finalizedWithdrawalsCall(_0)) + } + ///Creates a new call builder for the [`guardian`] function. + pub fn guardian(&self) -> alloy_contract::SolCallBuilder<&P, guardianCall, N> { + self.call_builder(&guardianCall) + } + ///Creates a new call builder for the [`initVersion`] function. + pub fn initVersion( + &self, + ) -> alloy_contract::SolCallBuilder<&P, initVersionCall, N> { + self.call_builder(&initVersionCall) + } + ///Creates a new call builder for the [`initialize`] function. + pub fn initialize( + &self, + _systemConfig: alloy::sol_types::private::Address, + _anchorStateRegistry: alloy::sol_types::private::Address, + _ethLockbox: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, initializeCall, N> { + self.call_builder( + &initializeCall { + _systemConfig, + _anchorStateRegistry, + _ethLockbox, + }, + ) + } + ///Creates a new call builder for the [`l2Sender`] function. + pub fn l2Sender(&self) -> alloy_contract::SolCallBuilder<&P, l2SenderCall, N> { + self.call_builder(&l2SenderCall) + } + ///Creates a new call builder for the [`migrateLiquidity`] function. + pub fn migrateLiquidity( + &self, + ) -> alloy_contract::SolCallBuilder<&P, migrateLiquidityCall, N> { + self.call_builder(&migrateLiquidityCall) + } + ///Creates a new call builder for the [`migrateToSuperRoots`] function. + pub fn migrateToSuperRoots( + &self, + _newLockbox: alloy::sol_types::private::Address, + _newAnchorStateRegistry: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, migrateToSuperRootsCall, N> { + self.call_builder( + &migrateToSuperRootsCall { + _newLockbox, + _newAnchorStateRegistry, + }, + ) + } + ///Creates a new call builder for the [`minimumGasLimit`] function. + pub fn minimumGasLimit( + &self, + _byteCount: u64, + ) -> alloy_contract::SolCallBuilder<&P, minimumGasLimitCall, N> { + self.call_builder(&minimumGasLimitCall { _byteCount }) + } + ///Creates a new call builder for the [`numProofSubmitters`] function. + pub fn numProofSubmitters( + &self, + _withdrawalHash: alloy::sol_types::private::FixedBytes<32>, + ) -> alloy_contract::SolCallBuilder<&P, numProofSubmittersCall, N> { + self.call_builder( + &numProofSubmittersCall { + _withdrawalHash, + }, + ) + } + ///Creates a new call builder for the [`params`] function. + pub fn params(&self) -> alloy_contract::SolCallBuilder<&P, paramsCall, N> { + self.call_builder(¶msCall) + } + ///Creates a new call builder for the [`paused`] function. + pub fn paused(&self) -> alloy_contract::SolCallBuilder<&P, pausedCall, N> { + self.call_builder(&pausedCall) + } + ///Creates a new call builder for the [`proofMaturityDelaySeconds`] function. + pub fn proofMaturityDelaySeconds( + &self, + ) -> alloy_contract::SolCallBuilder<&P, proofMaturityDelaySecondsCall, N> { + self.call_builder(&proofMaturityDelaySecondsCall) + } + ///Creates a new call builder for the [`proofSubmitters`] function. + pub fn proofSubmitters( + &self, + _0: alloy::sol_types::private::FixedBytes<32>, + _1: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, proofSubmittersCall, N> { + self.call_builder(&proofSubmittersCall { _0, _1 }) + } + ///Creates a new call builder for the [`proveWithdrawalTransaction_0`] function. + pub fn proveWithdrawalTransaction_0( + &self, + _tx: ::RustType, + _disputeGameIndex: alloy::sol_types::private::primitives::aliases::U256, + _outputRootProof: ::RustType, + _withdrawalProof: alloy::sol_types::private::Vec< + alloy::sol_types::private::Bytes, + >, + ) -> alloy_contract::SolCallBuilder<&P, proveWithdrawalTransaction_0Call, N> { + self.call_builder( + &proveWithdrawalTransaction_0Call { + _tx, + _disputeGameIndex, + _outputRootProof, + _withdrawalProof, + }, + ) + } + ///Creates a new call builder for the [`proveWithdrawalTransaction_1`] function. + pub fn proveWithdrawalTransaction_1( + &self, + _tx: ::RustType, + _disputeGameProxy: alloy::sol_types::private::Address, + _outputRootIndex: alloy::sol_types::private::primitives::aliases::U256, + _superRootProof: ::RustType, + _outputRootProof: ::RustType, + _withdrawalProof: alloy::sol_types::private::Vec< + alloy::sol_types::private::Bytes, + >, + ) -> alloy_contract::SolCallBuilder<&P, proveWithdrawalTransaction_1Call, N> { + self.call_builder( + &proveWithdrawalTransaction_1Call { + _tx, + _disputeGameProxy, + _outputRootIndex, + _superRootProof, + _outputRootProof, + _withdrawalProof, + }, + ) + } + ///Creates a new call builder for the [`provenWithdrawals`] function. + pub fn provenWithdrawals( + &self, + _0: alloy::sol_types::private::FixedBytes<32>, + _1: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, provenWithdrawalsCall, N> { + self.call_builder(&provenWithdrawalsCall { _0, _1 }) + } + ///Creates a new call builder for the [`proxyAdmin`] function. + pub fn proxyAdmin( + &self, + ) -> alloy_contract::SolCallBuilder<&P, proxyAdminCall, N> { + self.call_builder(&proxyAdminCall) + } + ///Creates a new call builder for the [`proxyAdminOwner`] function. + pub fn proxyAdminOwner( + &self, + ) -> alloy_contract::SolCallBuilder<&P, proxyAdminOwnerCall, N> { + self.call_builder(&proxyAdminOwnerCall) + } + ///Creates a new call builder for the [`respectedGameType`] function. + pub fn respectedGameType( + &self, + ) -> alloy_contract::SolCallBuilder<&P, respectedGameTypeCall, N> { + self.call_builder(&respectedGameTypeCall) + } + ///Creates a new call builder for the [`respectedGameTypeUpdatedAt`] function. + pub fn respectedGameTypeUpdatedAt( + &self, + ) -> alloy_contract::SolCallBuilder<&P, respectedGameTypeUpdatedAtCall, N> { + self.call_builder(&respectedGameTypeUpdatedAtCall) + } + ///Creates a new call builder for the [`superRootsActive`] function. + pub fn superRootsActive( + &self, + ) -> alloy_contract::SolCallBuilder<&P, superRootsActiveCall, N> { + self.call_builder(&superRootsActiveCall) + } + ///Creates a new call builder for the [`superchainConfig`] function. + pub fn superchainConfig( + &self, + ) -> alloy_contract::SolCallBuilder<&P, superchainConfigCall, N> { + self.call_builder(&superchainConfigCall) + } + ///Creates a new call builder for the [`systemConfig`] function. + pub fn systemConfig( + &self, + ) -> alloy_contract::SolCallBuilder<&P, systemConfigCall, N> { + self.call_builder(&systemConfigCall) + } + ///Creates a new call builder for the [`upgrade`] function. + pub fn upgrade( + &self, + _anchorStateRegistry: alloy::sol_types::private::Address, + _ethLockbox: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, upgradeCall, N> { + self.call_builder( + &upgradeCall { + _anchorStateRegistry, + _ethLockbox, + }, + ) + } + ///Creates a new call builder for the [`version`] function. + pub fn version(&self) -> alloy_contract::SolCallBuilder<&P, versionCall, N> { + self.call_builder(&versionCall) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > OptimismPortalInteropInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + ///Creates a new event filter for the [`ETHMigrated`] event. + pub fn ETHMigrated_filter(&self) -> alloy_contract::Event<&P, ETHMigrated, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`Initialized`] event. + pub fn Initialized_filter(&self) -> alloy_contract::Event<&P, Initialized, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`PortalMigrated`] event. + pub fn PortalMigrated_filter( + &self, + ) -> alloy_contract::Event<&P, PortalMigrated, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`TransactionDeposited`] event. + pub fn TransactionDeposited_filter( + &self, + ) -> alloy_contract::Event<&P, TransactionDeposited, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`WithdrawalFinalized`] event. + pub fn WithdrawalFinalized_filter( + &self, + ) -> alloy_contract::Event<&P, WithdrawalFinalized, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`WithdrawalProven`] event. + pub fn WithdrawalProven_filter( + &self, + ) -> alloy_contract::Event<&P, WithdrawalProven, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`WithdrawalProvenExtension1`] event. + pub fn WithdrawalProvenExtension1_filter( + &self, + ) -> alloy_contract::Event<&P, WithdrawalProvenExtension1, N> { + self.event_filter::() + } + } +} diff --git a/bindings/rust/src/optimism_superchain_erc20.rs b/bindings/rust/src/optimism_superchain_erc20.rs new file mode 100644 index 000000000..186694a04 --- /dev/null +++ b/bindings/rust/src/optimism_superchain_erc20.rs @@ -0,0 +1,7721 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface OptimismSuperchainERC20 { + error AllowanceOverflow(); + error AllowanceUnderflow(); + error InsufficientAllowance(); + error InsufficientBalance(); + error InvalidInitialization(); + error InvalidPermit(); + error NotInitializing(); + error Permit2AllowanceIsFixedAtInfinity(); + error PermitExpired(); + error TotalSupplyOverflow(); + error Unauthorized(); + error ZeroAddress(); + + event Approval(address indexed owner, address indexed spender, uint256 amount); + event Burn(address indexed from, uint256 amount); + event CrosschainBurn(address indexed from, uint256 amount, address indexed sender); + event CrosschainMint(address indexed to, uint256 amount, address indexed sender); + event Initialized(uint64 version); + event Mint(address indexed to, uint256 amount); + event Transfer(address indexed from, address indexed to, uint256 amount); + + constructor(); + + function DOMAIN_SEPARATOR() external view returns (bytes32 result); + function allowance(address owner, address spender) external view returns (uint256 result); + function approve(address spender, uint256 amount) external returns (bool); + function balanceOf(address owner) external view returns (uint256 result); + function burn(address _from, uint256 _amount) external; + function crosschainBurn(address _from, uint256 _amount) external; + function crosschainMint(address _to, uint256 _amount) external; + function decimals() external view returns (uint8); + function initialize(address _remoteToken, string memory _name, string memory _symbol, uint8 _decimals) external; + function mint(address _to, uint256 _amount) external; + function name() external view returns (string memory); + function nonces(address owner) external view returns (uint256 result); + function permit(address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) external; + function remoteToken() external view returns (address); + function supportsInterface(bytes4 _interfaceId) external view returns (bool); + function symbol() external view returns (string memory); + function totalSupply() external view returns (uint256 result); + function transfer(address to, uint256 amount) external returns (bool); + function transferFrom(address from, address to, uint256 amount) external returns (bool); + function version() external view returns (string memory); +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "constructor", + "inputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "DOMAIN_SEPARATOR", + "inputs": [], + "outputs": [ + { + "name": "result", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "allowance", + "inputs": [ + { + "name": "owner", + "type": "address", + "internalType": "address" + }, + { + "name": "spender", + "type": "address", + "internalType": "address" + } + ], + "outputs": [ + { + "name": "result", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "approve", + "inputs": [ + { + "name": "spender", + "type": "address", + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "balanceOf", + "inputs": [ + { + "name": "owner", + "type": "address", + "internalType": "address" + } + ], + "outputs": [ + { + "name": "result", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "burn", + "inputs": [ + { + "name": "_from", + "type": "address", + "internalType": "address" + }, + { + "name": "_amount", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "crosschainBurn", + "inputs": [ + { + "name": "_from", + "type": "address", + "internalType": "address" + }, + { + "name": "_amount", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "crosschainMint", + "inputs": [ + { + "name": "_to", + "type": "address", + "internalType": "address" + }, + { + "name": "_amount", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "decimals", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint8", + "internalType": "uint8" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "initialize", + "inputs": [ + { + "name": "_remoteToken", + "type": "address", + "internalType": "address" + }, + { + "name": "_name", + "type": "string", + "internalType": "string" + }, + { + "name": "_symbol", + "type": "string", + "internalType": "string" + }, + { + "name": "_decimals", + "type": "uint8", + "internalType": "uint8" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "mint", + "inputs": [ + { + "name": "_to", + "type": "address", + "internalType": "address" + }, + { + "name": "_amount", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "name", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "nonces", + "inputs": [ + { + "name": "owner", + "type": "address", + "internalType": "address" + } + ], + "outputs": [ + { + "name": "result", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "permit", + "inputs": [ + { + "name": "owner", + "type": "address", + "internalType": "address" + }, + { + "name": "spender", + "type": "address", + "internalType": "address" + }, + { + "name": "value", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "deadline", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "v", + "type": "uint8", + "internalType": "uint8" + }, + { + "name": "r", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "s", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "remoteToken", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "supportsInterface", + "inputs": [ + { + "name": "_interfaceId", + "type": "bytes4", + "internalType": "bytes4" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "symbol", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "totalSupply", + "inputs": [], + "outputs": [ + { + "name": "result", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "transfer", + "inputs": [ + { + "name": "to", + "type": "address", + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "transferFrom", + "inputs": [ + { + "name": "from", + "type": "address", + "internalType": "address" + }, + { + "name": "to", + "type": "address", + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "version", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "view" + }, + { + "type": "event", + "name": "Approval", + "inputs": [ + { + "name": "owner", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "spender", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "Burn", + "inputs": [ + { + "name": "from", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "CrosschainBurn", + "inputs": [ + { + "name": "from", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + }, + { + "name": "sender", + "type": "address", + "indexed": true, + "internalType": "address" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "CrosschainMint", + "inputs": [ + { + "name": "to", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + }, + { + "name": "sender", + "type": "address", + "indexed": true, + "internalType": "address" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "Initialized", + "inputs": [ + { + "name": "version", + "type": "uint64", + "indexed": false, + "internalType": "uint64" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "Mint", + "inputs": [ + { + "name": "to", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "Transfer", + "inputs": [ + { + "name": "from", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "to", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "error", + "name": "AllowanceOverflow", + "inputs": [] + }, + { + "type": "error", + "name": "AllowanceUnderflow", + "inputs": [] + }, + { + "type": "error", + "name": "InsufficientAllowance", + "inputs": [] + }, + { + "type": "error", + "name": "InsufficientBalance", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidInitialization", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidPermit", + "inputs": [] + }, + { + "type": "error", + "name": "NotInitializing", + "inputs": [] + }, + { + "type": "error", + "name": "Permit2AllowanceIsFixedAtInfinity", + "inputs": [] + }, + { + "type": "error", + "name": "PermitExpired", + "inputs": [] + }, + { + "type": "error", + "name": "TotalSupplyOverflow", + "inputs": [] + }, + { + "type": "error", + "name": "Unauthorized", + "inputs": [] + }, + { + "type": "error", + "name": "ZeroAddress", + "inputs": [] + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod OptimismSuperchainERC20 { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x6080604052348015600e575f80fd5b5060156019565b60c9565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff161560685760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b039081161460c65780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b6115ba806100d65f395ff3fe608060405234801561000f575f80fd5b5060043610610163575f3560e01c806354fd4d50116100c7578063a9059cbb1161007d578063d6c0b2c411610063578063d6c0b2c414610322578063dd62ed3e14610369578063f6d2ee861461037c575f80fd5b8063a9059cbb146102fc578063d505accf1461030f575f80fd5b80637ecebe00116100ad5780637ecebe00146102bc57806395d89b41146102e15780639dc29fac146102e9575f80fd5b806354fd4d501461025b57806370a0823114610297575f80fd5b806323b872dd1161011c578063313ce56711610102578063313ce5671461020c5780633644e5151461024057806340c10f1914610248575f80fd5b806323b872dd146101e65780632b8c49e3146101f9575f80fd5b8063095ea7b31161014c578063095ea7b3146101a457806318160ddd146101b757806318bf5077146101d1575f80fd5b806301ffc9a71461016757806306fdde031461018f575b5f80fd5b61017a6101753660046110c0565b61038f565b60405190151581526020015b60405180910390f35b6101976103ea565b6040516101869190611106565b61017a6101b2366004611181565b61049c565b6805345cdf77eb68f44c545b604051908152602001610186565b6101e46101df366004611181565b610528565b005b61017a6101f43660046111a9565b6105d1565b6101e4610207366004611181565b6106a0565b7f07f04e84143df95a6373fcf376312ae41da81a193a3089073a54f47a74d8fb035460405160ff9091168152602001610186565b6101c3610741565b6101e4610256366004611181565b6107bd565b6101976040518060400160405280600581526020017f312e302e3100000000000000000000000000000000000000000000000000000081525081565b6101c36102a53660046111e2565b6387a211a2600c9081525f91909152602090205490565b6101c36102ca3660046111e2565b6338377508600c9081525f91909152602090205490565b6101976108b5565b6101e46102f7366004611181565b6108e6565b61017a61030a366004611181565b6109d2565b6101e461031d36600461120b565b610a49565b7f07f04e84143df95a6373fcf376312ae41da81a193a3089073a54f47a74d8fb005460405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610186565b6101c3610377366004611270565b610c1b565b6101e461038a366004611375565b610c9b565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167fe0ee87f30000000000000000000000000000000000000000000000000000000014806103e457506103e482610edb565b92915050565b60607f07f04e84143df95a6373fcf376312ae41da81a193a3089073a54f47a74d8fb00600101805461041b906113f5565b80601f0160208091040260200160405190810160405280929190818152602001828054610447906113f5565b80156104925780601f1061046957610100808354040283529160200191610492565b820191905f5260205f20905b81548152906001019060200180831161047557829003601f168201915b5050505050905090565b5f73ffffffffffffffffffffffffffffffffffffffff83166e22d473030f116ddee9f6b43ac78ba318821915176104da57633f68539a5f526004601cfd5b82602052637f5e9f20600c52335f52816034600c2055815f52602c5160601c337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560205fa350600192915050565b3373420000000000000000000000000000000000002814610575576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61057f8282610fbe565b604051818152339073ffffffffffffffffffffffffffffffffffffffff8416907fde22baff038e3a3e08407cbdf617deed74e869a7ba517df611e33131c6e6ea04906020015b60405180910390a35050565b5f8360601b6e22d473030f116ddee9f6b43ac78ba333146106265733602052637f5e9f208117600c526034600c208054801915610623578085111561061d576313be252b5f526004601cfd5b84810382555b50505b6387a211a28117600c526020600c2080548085111561064c5763f4d678b85f526004601cfd5b84810382555050835f526020600c208381540181555082602052600c5160601c8160601c7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a3505060019392505050565b33734200000000000000000000000000000000000028146106ed576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6106f7828261103f565b604051818152339073ffffffffffffffffffffffffffffffffffffffff8416907fb90795a66650155983e242cac3e1ac1a4dc26f8ed2987f3ce416a34e00111fd4906020016105c5565b5f8061074b6103ea565b805190602001209050604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f815260208101929092527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc69082015246606082015230608082015260a09020919050565b337342000000000000000000000000000000000000101461080a576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8216610857576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6108618282610fbe565b8173ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885826040516108a991815260200190565b60405180910390a25050565b60607f07f04e84143df95a6373fcf376312ae41da81a193a3089073a54f47a74d8fb00600201805461041b906113f5565b3373420000000000000000000000000000000000001014610933576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8216610980576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61098a828261103f565b8173ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5826040516108a991815260200190565b5f6387a211a2600c52335f526020600c208054808411156109fa5763f4d678b85f526004601cfd5b83810382555050825f526020600c208281540181555081602052600c5160601c337fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a350600192915050565b73ffffffffffffffffffffffffffffffffffffffff86166e22d473030f116ddee9f6b43ac78ba31885191517610a8657633f68539a5f526004601cfd5b5f610a8f6103ea565b8051906020012090507fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc642861015610ace57631a15a3cc5f526004601cfd5b6040518960601b60601c99508860601b60601c985065383775081901600e52895f526020600c2080547f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835284602084015283604084015246606084015230608084015260a08320602e527f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c983528b60208401528a60408401528960608401528060808401528860a084015260c08320604e526042602c205f528760ff16602052866040528560605260208060805f60015afa8c3d5114610bb65763ddafbaef5f526004601cfd5b019055777f5e9f20000000000000000000000000000000000000000089176040526034602c20889055888a7f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925602060608501a360405250505f60605250505050505050565b5f7fffffffffffffffffffffffffffffffffffdd2b8cfcf0ee922116094bc538745d73ffffffffffffffffffffffffffffffffffffffff831601610c8057507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6103e4565b50602052637f5e9f20600c9081525f91909152603490205490565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff165f81158015610ce55750825b90505f8267ffffffffffffffff166001148015610d015750303b155b905081158015610d0f575080155b15610d46576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001660011785558315610da75784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b7f07f04e84143df95a6373fcf376312ae41da81a193a3089073a54f47a74d8fb0080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8b161781557f07f04e84143df95a6373fcf376312ae41da81a193a3089073a54f47a74d8fb01610e318a82611491565b5060028101610e408982611491565b5060030180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660ff88161790558315610ed05784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f33331994000000000000000000000000000000000000000000000000000000001480610f6d57507fffffffff0000000000000000000000000000000000000000000000000000000082167f36372b0700000000000000000000000000000000000000000000000000000000145b806103e457507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a7000000000000000000000000000000000000000000000000000000001492915050565b6805345cdf77eb68f44c5481810181811015610fe15763e5cfe9575f526004601cfd5b806805345cdf77eb68f44c5550506387a211a2600c52815f526020600c208181540181555080602052600c5160601c5f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a35050565b505050565b6387a211a2600c52815f526020600c208054808311156110665763f4d678b85f526004601cfd5b82900390556805345cdf77eb68f44c805482900390555f81815273ffffffffffffffffffffffffffffffffffffffff83167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602083a35050565b5f602082840312156110d0575f80fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146110ff575f80fd5b9392505050565b602081525f82518060208401528060208501604085015e5f6040828501015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011684010191505092915050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461117c575f80fd5b919050565b5f8060408385031215611192575f80fd5b61119b83611159565b946020939093013593505050565b5f805f606084860312156111bb575f80fd5b6111c484611159565b92506111d260208501611159565b9150604084013590509250925092565b5f602082840312156111f2575f80fd5b6110ff82611159565b803560ff8116811461117c575f80fd5b5f805f805f805f60e0888a031215611221575f80fd5b61122a88611159565b965061123860208901611159565b95506040880135945060608801359350611254608089016111fb565b925060a0880135915060c0880135905092959891949750929550565b5f8060408385031215611281575f80fd5b61128a83611159565b915061129860208401611159565b90509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f82601f8301126112dd575f80fd5b813567ffffffffffffffff808211156112f8576112f86112a1565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190828211818310171561133e5761133e6112a1565b81604052838152866020858801011115611356575f80fd5b836020870160208301375f602085830101528094505050505092915050565b5f805f8060808587031215611388575f80fd5b61139185611159565b9350602085013567ffffffffffffffff808211156113ad575f80fd5b6113b9888389016112ce565b945060408701359150808211156113ce575f80fd5b506113db878288016112ce565b9250506113ea606086016111fb565b905092959194509250565b600181811c9082168061140957607f821691505b602082108103611440577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b50919050565b601f82111561103a57805f5260205f20601f840160051c8101602085101561146b5750805b601f840160051c820191505b8181101561148a575f8155600101611477565b5050505050565b815167ffffffffffffffff8111156114ab576114ab6112a1565b6114bf816114b984546113f5565b84611446565b602080601f831160018114611511575f84156114db5750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b1785556115a5565b5f858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b8281101561155d5788860151825594840194600190910190840161153e565b508582101561159957878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b505060018460011b0185555b50505050505056fea164736f6c6343000819000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R4\x80\x15`\x0EW_\x80\xFD[P`\x15`\x19V[`\xC9V[\x7F\xF0\xC5~\x16\x84\r\xF0@\xF1P\x88\xDC/\x81\xFE9\x1C9#\xBE\xC7>#\xA9f.\xFC\x9C\"\x9Cj\0\x80Th\x01\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16\x15`hW`@Qc\xF9.\xE8\xA9`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[\x80T`\x01`\x01`@\x1B\x03\x90\x81\x16\x14`\xC6W\x80T`\x01`\x01`@\x1B\x03\x19\x16`\x01`\x01`@\x1B\x03\x90\x81\x17\x82U`@Q\x90\x81R\x7F\xC7\xF5\x05\xB2\xF3q\xAE!u\xEEI\x13\xF4I\x9E\x1F&3\xA7\xB5\x93c!\xEE\xD1\xCD\xAE\xB6\x11Q\x81\xD2\x90` \x01`@Q\x80\x91\x03\x90\xA1[PV[a\x15\xBA\x80a\0\xD6_9_\xF3\xFE`\x80`@R4\x80\x15a\0\x0FW_\x80\xFD[P`\x046\x10a\x01cW_5`\xE0\x1C\x80cT\xFDMP\x11a\0\xC7W\x80c\xA9\x05\x9C\xBB\x11a\0}W\x80c\xD6\xC0\xB2\xC4\x11a\0cW\x80c\xD6\xC0\xB2\xC4\x14a\x03\"W\x80c\xDDb\xED>\x14a\x03iW\x80c\xF6\xD2\xEE\x86\x14a\x03|W_\x80\xFD[\x80c\xA9\x05\x9C\xBB\x14a\x02\xFCW\x80c\xD5\x05\xAC\xCF\x14a\x03\x0FW_\x80\xFD[\x80c~\xCE\xBE\0\x11a\0\xADW\x80c~\xCE\xBE\0\x14a\x02\xBCW\x80c\x95\xD8\x9BA\x14a\x02\xE1W\x80c\x9D\xC2\x9F\xAC\x14a\x02\xE9W_\x80\xFD[\x80cT\xFDMP\x14a\x02[W\x80cp\xA0\x821\x14a\x02\x97W_\x80\xFD[\x80c#\xB8r\xDD\x11a\x01\x1CW\x80c1<\xE5g\x11a\x01\x02W\x80c1<\xE5g\x14a\x02\x0CW\x80c6D\xE5\x15\x14a\x02@W\x80c@\xC1\x0F\x19\x14a\x02HW_\x80\xFD[\x80c#\xB8r\xDD\x14a\x01\xE6W\x80c+\x8CI\xE3\x14a\x01\xF9W_\x80\xFD[\x80c\t^\xA7\xB3\x11a\x01LW\x80c\t^\xA7\xB3\x14a\x01\xA4W\x80c\x18\x16\r\xDD\x14a\x01\xB7W\x80c\x18\xBFPw\x14a\x01\xD1W_\x80\xFD[\x80c\x01\xFF\xC9\xA7\x14a\x01gW\x80c\x06\xFD\xDE\x03\x14a\x01\x8FW[_\x80\xFD[a\x01za\x01u6`\x04a\x10\xC0V[a\x03\x8FV[`@Q\x90\x15\x15\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[a\x01\x97a\x03\xEAV[`@Qa\x01\x86\x91\x90a\x11\x06V[a\x01za\x01\xB26`\x04a\x11\x81V[a\x04\x9CV[h\x054\\\xDFw\xEBh\xF4LT[`@Q\x90\x81R` \x01a\x01\x86V[a\x01\xE4a\x01\xDF6`\x04a\x11\x81V[a\x05(V[\0[a\x01za\x01\xF46`\x04a\x11\xA9V[a\x05\xD1V[a\x01\xE4a\x02\x076`\x04a\x11\x81V[a\x06\xA0V[\x7F\x07\xF0N\x84\x14=\xF9Zcs\xFC\xF3v1*\xE4\x1D\xA8\x1A\x19:0\x89\x07:T\xF4zt\xD8\xFB\x03T`@Q`\xFF\x90\x91\x16\x81R` \x01a\x01\x86V[a\x01\xC3a\x07AV[a\x01\xE4a\x02V6`\x04a\x11\x81V[a\x07\xBDV[a\x01\x97`@Q\x80`@\x01`@R\x80`\x05\x81R` \x01\x7F1.0.1\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\x81RP\x81V[a\x01\xC3a\x02\xA56`\x04a\x11\xE2V[c\x87\xA2\x11\xA2`\x0C\x90\x81R_\x91\x90\x91R` \x90 T\x90V[a\x01\xC3a\x02\xCA6`\x04a\x11\xE2V[c87u\x08`\x0C\x90\x81R_\x91\x90\x91R` \x90 T\x90V[a\x01\x97a\x08\xB5V[a\x01\xE4a\x02\xF76`\x04a\x11\x81V[a\x08\xE6V[a\x01za\x03\n6`\x04a\x11\x81V[a\t\xD2V[a\x01\xE4a\x03\x1D6`\x04a\x12\x0BV[a\nIV[\x7F\x07\xF0N\x84\x14=\xF9Zcs\xFC\xF3v1*\xE4\x1D\xA8\x1A\x19:0\x89\x07:T\xF4zt\xD8\xFB\0T`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01a\x01\x86V[a\x01\xC3a\x03w6`\x04a\x12pV[a\x0C\x1BV[a\x01\xE4a\x03\x8A6`\x04a\x13uV[a\x0C\x9BV[_\x7F\xFF\xFF\xFF\xFF\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\x82\x16\x7F\xE0\xEE\x87\xF3\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\x14\x80a\x03\xE4WPa\x03\xE4\x82a\x0E\xDBV[\x92\x91PPV[``\x7F\x07\xF0N\x84\x14=\xF9Zcs\xFC\xF3v1*\xE4\x1D\xA8\x1A\x19:0\x89\x07:T\xF4zt\xD8\xFB\0`\x01\x01\x80Ta\x04\x1B\x90a\x13\xF5V[\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x92\x91\x90\x81\x81R` \x01\x82\x80Ta\x04G\x90a\x13\xF5V[\x80\x15a\x04\x92W\x80`\x1F\x10a\x04iWa\x01\0\x80\x83T\x04\x02\x83R\x91` \x01\x91a\x04\x92V[\x82\x01\x91\x90_R` _ \x90[\x81T\x81R\x90`\x01\x01\x90` \x01\x80\x83\x11a\x04uW\x82\x90\x03`\x1F\x16\x82\x01\x91[PPPPP\x90P\x90V[_s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x16n\"\xD4s\x03\x0F\x11m\xDE\xE9\xF6\xB4:\xC7\x8B\xA3\x18\x82\x19\x15\x17a\x04\xDAWc?hS\x9A_R`\x04`\x1C\xFD[\x82` Rc\x7F^\x9F `\x0CR3_R\x81`4`\x0C U\x81_R`,Q``\x1C3\x7F\x8C[\xE1\xE5\xEB\xEC}[\xD1OqB}\x1E\x84\xF3\xDD\x03\x14\xC0\xF7\xB2)\x1E[ \n\xC8\xC7\xC3\xB9%` _\xA3P`\x01\x92\x91PPV[3sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0(\x14a\x05uW`@Q\x7F\x82\xB4)\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x05\x7F\x82\x82a\x0F\xBEV[`@Q\x81\x81R3\x90s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x16\x90\x7F\xDE\"\xBA\xFF\x03\x8E:>\x08@|\xBD\xF6\x17\xDE\xEDt\xE8i\xA7\xBAQ}\xF6\x11\xE311\xC6\xE6\xEA\x04\x90` \x01[`@Q\x80\x91\x03\x90\xA3PPV[_\x83``\x1Bn\"\xD4s\x03\x0F\x11m\xDE\xE9\xF6\xB4:\xC7\x8B\xA33\x14a\x06&W3` Rc\x7F^\x9F \x81\x17`\x0CR`4`\x0C \x80T\x80\x19\x15a\x06#W\x80\x85\x11\x15a\x06\x1DWc\x13\xBE%+_R`\x04`\x1C\xFD[\x84\x81\x03\x82U[PP[c\x87\xA2\x11\xA2\x81\x17`\x0CR` `\x0C \x80T\x80\x85\x11\x15a\x06LWc\xF4\xD6x\xB8_R`\x04`\x1C\xFD[\x84\x81\x03\x82UPP\x83_R` `\x0C \x83\x81T\x01\x81UP\x82` R`\x0CQ``\x1C\x81``\x1C\x7F\xDD\xF2R\xAD\x1B\xE2\xC8\x9Bi\xC2\xB0h\xFC7\x8D\xAA\x95+\xA7\xF1c\xC4\xA1\x16(\xF5ZM\xF5#\xB3\xEF` \x80\xA3PP`\x01\x93\x92PPPV[3sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0(\x14a\x06\xEDW`@Q\x7F\x82\xB4)\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x06\xF7\x82\x82a\x10?V[`@Q\x81\x81R3\x90s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x16\x90\x7F\xB9\x07\x95\xA6fP\x15Y\x83\xE2B\xCA\xC3\xE1\xAC\x1AM\xC2o\x8E\xD2\x98\x7F<\xE4\x16\xA3N\0\x11\x1F\xD4\x90` \x01a\x05\xC5V[_\x80a\x07Ka\x03\xEAV[\x80Q\x90` \x01 \x90P`@\x80Q\x7F\x8Bs\xC3\xC6\x9B\xB8\xFE=Q.\xCCL\xF7Y\xCCy#\x9F{\x17\x9B\x0F\xFA\xCA\xA9\xA7]R+9@\x0F\x81R` \x81\x01\x92\x90\x92R\x7F\xC8\x9E\xFD\xAAT\xC0\xF2\x0Cz\xDFa(\x82\xDF\tP\xF5\xA9Qc~\x03\x07\xCD\xCBLg/)\x8B\x8B\xC6\x90\x82\x01RF``\x82\x01R0`\x80\x82\x01R`\xA0\x90 \x91\x90PV[3sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x10\x14a\x08\nW`@Q\x7F\x82\xB4)\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16a\x08WW`@Q\x7F\xD9.#=\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\x01`@Q\x80\x91\x03\x90\xFD[a\x08a\x82\x82a\x0F\xBEV[\x81s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\x0Fg\x98\xA5`y:T\xC3\xBC\xFE\x86\xA9<\xDE\x1Es\x08}\x94L\x0E\xA2\x05D\x13}A!9h\x85\x82`@Qa\x08\xA9\x91\x81R` \x01\x90V[`@Q\x80\x91\x03\x90\xA2PPV[``\x7F\x07\xF0N\x84\x14=\xF9Zcs\xFC\xF3v1*\xE4\x1D\xA8\x1A\x19:0\x89\x07:T\xF4zt\xD8\xFB\0`\x02\x01\x80Ta\x04\x1B\x90a\x13\xF5V[3sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x10\x14a\t3W`@Q\x7F\x82\xB4)\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16a\t\x80W`@Q\x7F\xD9.#=\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\x01`@Q\x80\x91\x03\x90\xFD[a\t\x8A\x82\x82a\x10?V[\x81s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xCC\x16\xF5\xDB\xB4\x872\x80\x81\\\x1E\xE0\x9D\xBD\x06sl\xFF\xCC\x18D\x12\xCFzq\xA0\xFD\xB7]9|\xA5\x82`@Qa\x08\xA9\x91\x81R` \x01\x90V[_c\x87\xA2\x11\xA2`\x0CR3_R` `\x0C \x80T\x80\x84\x11\x15a\t\xFAWc\xF4\xD6x\xB8_R`\x04`\x1C\xFD[\x83\x81\x03\x82UPP\x82_R` `\x0C \x82\x81T\x01\x81UP\x81` R`\x0CQ``\x1C3\x7F\xDD\xF2R\xAD\x1B\xE2\xC8\x9Bi\xC2\xB0h\xFC7\x8D\xAA\x95+\xA7\xF1c\xC4\xA1\x16(\xF5ZM\xF5#\xB3\xEF` \x80\xA3P`\x01\x92\x91PPV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x86\x16n\"\xD4s\x03\x0F\x11m\xDE\xE9\xF6\xB4:\xC7\x8B\xA3\x18\x85\x19\x15\x17a\n\x86Wc?hS\x9A_R`\x04`\x1C\xFD[_a\n\x8Fa\x03\xEAV[\x80Q\x90` \x01 \x90P\x7F\xC8\x9E\xFD\xAAT\xC0\xF2\x0Cz\xDFa(\x82\xDF\tP\xF5\xA9Qc~\x03\x07\xCD\xCBLg/)\x8B\x8B\xC6B\x86\x10\x15a\n\xCEWc\x1A\x15\xA3\xCC_R`\x04`\x1C\xFD[`@Q\x89``\x1B``\x1C\x99P\x88``\x1B``\x1C\x98Pe87u\x08\x19\x01`\x0ER\x89_R` `\x0C \x80T\x7F\x8Bs\xC3\xC6\x9B\xB8\xFE=Q.\xCCL\xF7Y\xCCy#\x9F{\x17\x9B\x0F\xFA\xCA\xA9\xA7]R+9@\x0F\x83R\x84` \x84\x01R\x83`@\x84\x01RF``\x84\x01R0`\x80\x84\x01R`\xA0\x83 `.R\x7Fnq\xED\xAE\x12\xB1\xB9\x7FM\x1F`7\x0F\xEF\x10\x10_\xA2\xFA\xAE\x01&\x11J\x16\x9Cd\x84]a&\xC9\x83R\x8B` \x84\x01R\x8A`@\x84\x01R\x89``\x84\x01R\x80`\x80\x84\x01R\x88`\xA0\x84\x01R`\xC0\x83 `NR`B`, _R\x87`\xFF\x16` R\x86`@R\x85``R` \x80`\x80_`\x01Z\xFA\x8C=Q\x14a\x0B\xB6Wc\xDD\xAF\xBA\xEF_R`\x04`\x1C\xFD[\x01\x90Uw\x7F^\x9F \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x89\x17`@R`4`, \x88\x90U\x88\x8A\x7F\x8C[\xE1\xE5\xEB\xEC}[\xD1OqB}\x1E\x84\xF3\xDD\x03\x14\xC0\xF7\xB2)\x1E[ \n\xC8\xC7\xC3\xB9%` ``\x85\x01\xA3`@RPP_``RPPPPPPPV[_\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xDD+\x8C\xFC\xF0\xEE\x92!\x16\tK\xC58t]s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x16\x01a\x0C\x80WP\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFFa\x03\xE4V[P` Rc\x7F^\x9F `\x0C\x90\x81R_\x91\x90\x91R`4\x90 T\x90V[\x7F\xF0\xC5~\x16\x84\r\xF0@\xF1P\x88\xDC/\x81\xFE9\x1C9#\xBE\xC7>#\xA9f.\xFC\x9C\"\x9Cj\0\x80Th\x01\0\0\0\0\0\0\0\0\x81\x04`\xFF\x16\x15\x90g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16_\x81\x15\x80\x15a\x0C\xE5WP\x82[\x90P_\x82g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\x01\x14\x80\x15a\r\x01WP0;\x15[\x90P\x81\x15\x80\x15a\r\x0FWP\x80\x15[\x15a\rFW`@Q\x7F\xF9.\xE8\xA9\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\x01`@Q\x80\x91\x03\x90\xFD[\x84T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\x16`\x01\x17\x85U\x83\x15a\r\xA7W\x84T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16h\x01\0\0\0\0\0\0\0\0\x17\x85U[\x7F\x07\xF0N\x84\x14=\xF9Zcs\xFC\xF3v1*\xE4\x1D\xA8\x1A\x19:0\x89\x07:T\xF4zt\xD8\xFB\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x8B\x16\x17\x81U\x7F\x07\xF0N\x84\x14=\xF9Zcs\xFC\xF3v1*\xE4\x1D\xA8\x1A\x19:0\x89\x07:T\xF4zt\xD8\xFB\x01a\x0E1\x8A\x82a\x14\x91V[P`\x02\x81\x01a\x0E@\x89\x82a\x14\x91V[P`\x03\x01\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x16`\xFF\x88\x16\x17\x90U\x83\x15a\x0E\xD0W\x84T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x85U`@Q`\x01\x81R\x7F\xC7\xF5\x05\xB2\xF3q\xAE!u\xEEI\x13\xF4I\x9E\x1F&3\xA7\xB5\x93c!\xEE\xD1\xCD\xAE\xB6\x11Q\x81\xD2\x90` \x01`@Q\x80\x91\x03\x90\xA1[PPPPPPPPPV[_\x7F\xFF\xFF\xFF\xFF\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\x82\x16\x7F33\x19\x94\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\x14\x80a\x0FmWP\x7F\xFF\xFF\xFF\xFF\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\x82\x16\x7F67+\x07\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\x14[\x80a\x03\xE4WP\x7F\xFF\xFF\xFF\xFF\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\x82\x16\x7F\x01\xFF\xC9\xA7\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\x14\x92\x91PPV[h\x054\\\xDFw\xEBh\xF4LT\x81\x81\x01\x81\x81\x10\x15a\x0F\xE1Wc\xE5\xCF\xE9W_R`\x04`\x1C\xFD[\x80h\x054\\\xDFw\xEBh\xF4LUPPc\x87\xA2\x11\xA2`\x0CR\x81_R` `\x0C \x81\x81T\x01\x81UP\x80` R`\x0CQ``\x1C_\x7F\xDD\xF2R\xAD\x1B\xE2\xC8\x9Bi\xC2\xB0h\xFC7\x8D\xAA\x95+\xA7\xF1c\xC4\xA1\x16(\xF5ZM\xF5#\xB3\xEF` \x80\xA3PPV[PPPV[c\x87\xA2\x11\xA2`\x0CR\x81_R` `\x0C \x80T\x80\x83\x11\x15a\x10fWc\xF4\xD6x\xB8_R`\x04`\x1C\xFD[\x82\x90\x03\x90Uh\x054\\\xDFw\xEBh\xF4L\x80T\x82\x90\x03\x90U_\x81\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x16\x7F\xDD\xF2R\xAD\x1B\xE2\xC8\x9Bi\xC2\xB0h\xFC7\x8D\xAA\x95+\xA7\xF1c\xC4\xA1\x16(\xF5ZM\xF5#\xB3\xEF` \x83\xA3PPV[_` \x82\x84\x03\x12\x15a\x10\xD0W_\x80\xFD[\x815\x7F\xFF\xFF\xFF\xFF\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\x81\x16\x81\x14a\x10\xFFW_\x80\xFD[\x93\x92PPPV[` \x81R_\x82Q\x80` \x84\x01R\x80` \x85\x01`@\x85\x01^_`@\x82\x85\x01\x01R`@\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0`\x1F\x83\x01\x16\x84\x01\x01\x91PP\x92\x91PPV[\x805s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x11|W_\x80\xFD[\x91\x90PV[_\x80`@\x83\x85\x03\x12\x15a\x11\x92W_\x80\xFD[a\x11\x9B\x83a\x11YV[\x94` \x93\x90\x93\x015\x93PPPV[_\x80_``\x84\x86\x03\x12\x15a\x11\xBBW_\x80\xFD[a\x11\xC4\x84a\x11YV[\x92Pa\x11\xD2` \x85\x01a\x11YV[\x91P`@\x84\x015\x90P\x92P\x92P\x92V[_` \x82\x84\x03\x12\x15a\x11\xF2W_\x80\xFD[a\x10\xFF\x82a\x11YV[\x805`\xFF\x81\x16\x81\x14a\x11|W_\x80\xFD[_\x80_\x80_\x80_`\xE0\x88\x8A\x03\x12\x15a\x12!W_\x80\xFD[a\x12*\x88a\x11YV[\x96Pa\x128` \x89\x01a\x11YV[\x95P`@\x88\x015\x94P``\x88\x015\x93Pa\x12T`\x80\x89\x01a\x11\xFBV[\x92P`\xA0\x88\x015\x91P`\xC0\x88\x015\x90P\x92\x95\x98\x91\x94\x97P\x92\x95PV[_\x80`@\x83\x85\x03\x12\x15a\x12\x81W_\x80\xFD[a\x12\x8A\x83a\x11YV[\x91Pa\x12\x98` \x84\x01a\x11YV[\x90P\x92P\x92\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_R`A`\x04R`$_\xFD[_\x82`\x1F\x83\x01\x12a\x12\xDDW_\x80\xFD[\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x12\xF8Wa\x12\xF8a\x12\xA1V[`@Q`\x1F\x83\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x90\x81\x16`?\x01\x16\x81\x01\x90\x82\x82\x11\x81\x83\x10\x17\x15a\x13>Wa\x13>a\x12\xA1V[\x81`@R\x83\x81R\x86` \x85\x88\x01\x01\x11\x15a\x13VW_\x80\xFD[\x83` \x87\x01` \x83\x017_` \x85\x83\x01\x01R\x80\x94PPPPP\x92\x91PPV[_\x80_\x80`\x80\x85\x87\x03\x12\x15a\x13\x88W_\x80\xFD[a\x13\x91\x85a\x11YV[\x93P` \x85\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x13\xADW_\x80\xFD[a\x13\xB9\x88\x83\x89\x01a\x12\xCEV[\x94P`@\x87\x015\x91P\x80\x82\x11\x15a\x13\xCEW_\x80\xFD[Pa\x13\xDB\x87\x82\x88\x01a\x12\xCEV[\x92PPa\x13\xEA``\x86\x01a\x11\xFBV[\x90P\x92\x95\x91\x94P\x92PV[`\x01\x81\x81\x1C\x90\x82\x16\x80a\x14\tW`\x7F\x82\x16\x91P[` \x82\x10\x81\x03a\x14@W\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_R`\"`\x04R`$_\xFD[P\x91\x90PV[`\x1F\x82\x11\x15a\x10:W\x80_R` _ `\x1F\x84\x01`\x05\x1C\x81\x01` \x85\x10\x15a\x14kWP\x80[`\x1F\x84\x01`\x05\x1C\x82\x01\x91P[\x81\x81\x10\x15a\x14\x8AW_\x81U`\x01\x01a\x14wV[PPPPPV[\x81Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x14\xABWa\x14\xABa\x12\xA1V[a\x14\xBF\x81a\x14\xB9\x84Ta\x13\xF5V[\x84a\x14FV[` \x80`\x1F\x83\x11`\x01\x81\x14a\x15\x11W_\x84\x15a\x14\xDBWP\x85\x83\x01Q[\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF`\x03\x86\x90\x1B\x1C\x19\x16`\x01\x85\x90\x1B\x17\x85Ua\x15\xA5V[_\x85\x81R` \x81 \x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x86\x16\x91[\x82\x81\x10\x15a\x15]W\x88\x86\x01Q\x82U\x94\x84\x01\x94`\x01\x90\x91\x01\x90\x84\x01a\x15>V[P\x85\x82\x10\x15a\x15\x99W\x87\x85\x01Q\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF`\x03\x88\x90\x1B`\xF8\x16\x1C\x19\x16\x81U[PP`\x01\x84`\x01\x1B\x01\x85U[PPPPPPV\xFE\xA1dsolcC\0\x08\x19\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x608060405234801561000f575f80fd5b5060043610610163575f3560e01c806354fd4d50116100c7578063a9059cbb1161007d578063d6c0b2c411610063578063d6c0b2c414610322578063dd62ed3e14610369578063f6d2ee861461037c575f80fd5b8063a9059cbb146102fc578063d505accf1461030f575f80fd5b80637ecebe00116100ad5780637ecebe00146102bc57806395d89b41146102e15780639dc29fac146102e9575f80fd5b806354fd4d501461025b57806370a0823114610297575f80fd5b806323b872dd1161011c578063313ce56711610102578063313ce5671461020c5780633644e5151461024057806340c10f1914610248575f80fd5b806323b872dd146101e65780632b8c49e3146101f9575f80fd5b8063095ea7b31161014c578063095ea7b3146101a457806318160ddd146101b757806318bf5077146101d1575f80fd5b806301ffc9a71461016757806306fdde031461018f575b5f80fd5b61017a6101753660046110c0565b61038f565b60405190151581526020015b60405180910390f35b6101976103ea565b6040516101869190611106565b61017a6101b2366004611181565b61049c565b6805345cdf77eb68f44c545b604051908152602001610186565b6101e46101df366004611181565b610528565b005b61017a6101f43660046111a9565b6105d1565b6101e4610207366004611181565b6106a0565b7f07f04e84143df95a6373fcf376312ae41da81a193a3089073a54f47a74d8fb035460405160ff9091168152602001610186565b6101c3610741565b6101e4610256366004611181565b6107bd565b6101976040518060400160405280600581526020017f312e302e3100000000000000000000000000000000000000000000000000000081525081565b6101c36102a53660046111e2565b6387a211a2600c9081525f91909152602090205490565b6101c36102ca3660046111e2565b6338377508600c9081525f91909152602090205490565b6101976108b5565b6101e46102f7366004611181565b6108e6565b61017a61030a366004611181565b6109d2565b6101e461031d36600461120b565b610a49565b7f07f04e84143df95a6373fcf376312ae41da81a193a3089073a54f47a74d8fb005460405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610186565b6101c3610377366004611270565b610c1b565b6101e461038a366004611375565b610c9b565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167fe0ee87f30000000000000000000000000000000000000000000000000000000014806103e457506103e482610edb565b92915050565b60607f07f04e84143df95a6373fcf376312ae41da81a193a3089073a54f47a74d8fb00600101805461041b906113f5565b80601f0160208091040260200160405190810160405280929190818152602001828054610447906113f5565b80156104925780601f1061046957610100808354040283529160200191610492565b820191905f5260205f20905b81548152906001019060200180831161047557829003601f168201915b5050505050905090565b5f73ffffffffffffffffffffffffffffffffffffffff83166e22d473030f116ddee9f6b43ac78ba318821915176104da57633f68539a5f526004601cfd5b82602052637f5e9f20600c52335f52816034600c2055815f52602c5160601c337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560205fa350600192915050565b3373420000000000000000000000000000000000002814610575576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61057f8282610fbe565b604051818152339073ffffffffffffffffffffffffffffffffffffffff8416907fde22baff038e3a3e08407cbdf617deed74e869a7ba517df611e33131c6e6ea04906020015b60405180910390a35050565b5f8360601b6e22d473030f116ddee9f6b43ac78ba333146106265733602052637f5e9f208117600c526034600c208054801915610623578085111561061d576313be252b5f526004601cfd5b84810382555b50505b6387a211a28117600c526020600c2080548085111561064c5763f4d678b85f526004601cfd5b84810382555050835f526020600c208381540181555082602052600c5160601c8160601c7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a3505060019392505050565b33734200000000000000000000000000000000000028146106ed576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6106f7828261103f565b604051818152339073ffffffffffffffffffffffffffffffffffffffff8416907fb90795a66650155983e242cac3e1ac1a4dc26f8ed2987f3ce416a34e00111fd4906020016105c5565b5f8061074b6103ea565b805190602001209050604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f815260208101929092527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc69082015246606082015230608082015260a09020919050565b337342000000000000000000000000000000000000101461080a576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8216610857576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6108618282610fbe565b8173ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885826040516108a991815260200190565b60405180910390a25050565b60607f07f04e84143df95a6373fcf376312ae41da81a193a3089073a54f47a74d8fb00600201805461041b906113f5565b3373420000000000000000000000000000000000001014610933576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8216610980576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61098a828261103f565b8173ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5826040516108a991815260200190565b5f6387a211a2600c52335f526020600c208054808411156109fa5763f4d678b85f526004601cfd5b83810382555050825f526020600c208281540181555081602052600c5160601c337fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a350600192915050565b73ffffffffffffffffffffffffffffffffffffffff86166e22d473030f116ddee9f6b43ac78ba31885191517610a8657633f68539a5f526004601cfd5b5f610a8f6103ea565b8051906020012090507fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc642861015610ace57631a15a3cc5f526004601cfd5b6040518960601b60601c99508860601b60601c985065383775081901600e52895f526020600c2080547f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835284602084015283604084015246606084015230608084015260a08320602e527f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c983528b60208401528a60408401528960608401528060808401528860a084015260c08320604e526042602c205f528760ff16602052866040528560605260208060805f60015afa8c3d5114610bb65763ddafbaef5f526004601cfd5b019055777f5e9f20000000000000000000000000000000000000000089176040526034602c20889055888a7f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925602060608501a360405250505f60605250505050505050565b5f7fffffffffffffffffffffffffffffffffffdd2b8cfcf0ee922116094bc538745d73ffffffffffffffffffffffffffffffffffffffff831601610c8057507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6103e4565b50602052637f5e9f20600c9081525f91909152603490205490565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff165f81158015610ce55750825b90505f8267ffffffffffffffff166001148015610d015750303b155b905081158015610d0f575080155b15610d46576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001660011785558315610da75784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b7f07f04e84143df95a6373fcf376312ae41da81a193a3089073a54f47a74d8fb0080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8b161781557f07f04e84143df95a6373fcf376312ae41da81a193a3089073a54f47a74d8fb01610e318a82611491565b5060028101610e408982611491565b5060030180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660ff88161790558315610ed05784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f33331994000000000000000000000000000000000000000000000000000000001480610f6d57507fffffffff0000000000000000000000000000000000000000000000000000000082167f36372b0700000000000000000000000000000000000000000000000000000000145b806103e457507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a7000000000000000000000000000000000000000000000000000000001492915050565b6805345cdf77eb68f44c5481810181811015610fe15763e5cfe9575f526004601cfd5b806805345cdf77eb68f44c5550506387a211a2600c52815f526020600c208181540181555080602052600c5160601c5f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a35050565b505050565b6387a211a2600c52815f526020600c208054808311156110665763f4d678b85f526004601cfd5b82900390556805345cdf77eb68f44c805482900390555f81815273ffffffffffffffffffffffffffffffffffffffff83167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602083a35050565b5f602082840312156110d0575f80fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146110ff575f80fd5b9392505050565b602081525f82518060208401528060208501604085015e5f6040828501015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011684010191505092915050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461117c575f80fd5b919050565b5f8060408385031215611192575f80fd5b61119b83611159565b946020939093013593505050565b5f805f606084860312156111bb575f80fd5b6111c484611159565b92506111d260208501611159565b9150604084013590509250925092565b5f602082840312156111f2575f80fd5b6110ff82611159565b803560ff8116811461117c575f80fd5b5f805f805f805f60e0888a031215611221575f80fd5b61122a88611159565b965061123860208901611159565b95506040880135945060608801359350611254608089016111fb565b925060a0880135915060c0880135905092959891949750929550565b5f8060408385031215611281575f80fd5b61128a83611159565b915061129860208401611159565b90509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f82601f8301126112dd575f80fd5b813567ffffffffffffffff808211156112f8576112f86112a1565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190828211818310171561133e5761133e6112a1565b81604052838152866020858801011115611356575f80fd5b836020870160208301375f602085830101528094505050505092915050565b5f805f8060808587031215611388575f80fd5b61139185611159565b9350602085013567ffffffffffffffff808211156113ad575f80fd5b6113b9888389016112ce565b945060408701359150808211156113ce575f80fd5b506113db878288016112ce565b9250506113ea606086016111fb565b905092959194509250565b600181811c9082168061140957607f821691505b602082108103611440577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b50919050565b601f82111561103a57805f5260205f20601f840160051c8101602085101561146b5750805b601f840160051c820191505b8181101561148a575f8155600101611477565b5050505050565b815167ffffffffffffffff8111156114ab576114ab6112a1565b6114bf816114b984546113f5565b84611446565b602080601f831160018114611511575f84156114db5750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b1785556115a5565b5f858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b8281101561155d5788860151825594840194600190910190840161153e565b508582101561159957878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b505060018460011b0185555b50505050505056fea164736f6c6343000819000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R4\x80\x15a\0\x0FW_\x80\xFD[P`\x046\x10a\x01cW_5`\xE0\x1C\x80cT\xFDMP\x11a\0\xC7W\x80c\xA9\x05\x9C\xBB\x11a\0}W\x80c\xD6\xC0\xB2\xC4\x11a\0cW\x80c\xD6\xC0\xB2\xC4\x14a\x03\"W\x80c\xDDb\xED>\x14a\x03iW\x80c\xF6\xD2\xEE\x86\x14a\x03|W_\x80\xFD[\x80c\xA9\x05\x9C\xBB\x14a\x02\xFCW\x80c\xD5\x05\xAC\xCF\x14a\x03\x0FW_\x80\xFD[\x80c~\xCE\xBE\0\x11a\0\xADW\x80c~\xCE\xBE\0\x14a\x02\xBCW\x80c\x95\xD8\x9BA\x14a\x02\xE1W\x80c\x9D\xC2\x9F\xAC\x14a\x02\xE9W_\x80\xFD[\x80cT\xFDMP\x14a\x02[W\x80cp\xA0\x821\x14a\x02\x97W_\x80\xFD[\x80c#\xB8r\xDD\x11a\x01\x1CW\x80c1<\xE5g\x11a\x01\x02W\x80c1<\xE5g\x14a\x02\x0CW\x80c6D\xE5\x15\x14a\x02@W\x80c@\xC1\x0F\x19\x14a\x02HW_\x80\xFD[\x80c#\xB8r\xDD\x14a\x01\xE6W\x80c+\x8CI\xE3\x14a\x01\xF9W_\x80\xFD[\x80c\t^\xA7\xB3\x11a\x01LW\x80c\t^\xA7\xB3\x14a\x01\xA4W\x80c\x18\x16\r\xDD\x14a\x01\xB7W\x80c\x18\xBFPw\x14a\x01\xD1W_\x80\xFD[\x80c\x01\xFF\xC9\xA7\x14a\x01gW\x80c\x06\xFD\xDE\x03\x14a\x01\x8FW[_\x80\xFD[a\x01za\x01u6`\x04a\x10\xC0V[a\x03\x8FV[`@Q\x90\x15\x15\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[a\x01\x97a\x03\xEAV[`@Qa\x01\x86\x91\x90a\x11\x06V[a\x01za\x01\xB26`\x04a\x11\x81V[a\x04\x9CV[h\x054\\\xDFw\xEBh\xF4LT[`@Q\x90\x81R` \x01a\x01\x86V[a\x01\xE4a\x01\xDF6`\x04a\x11\x81V[a\x05(V[\0[a\x01za\x01\xF46`\x04a\x11\xA9V[a\x05\xD1V[a\x01\xE4a\x02\x076`\x04a\x11\x81V[a\x06\xA0V[\x7F\x07\xF0N\x84\x14=\xF9Zcs\xFC\xF3v1*\xE4\x1D\xA8\x1A\x19:0\x89\x07:T\xF4zt\xD8\xFB\x03T`@Q`\xFF\x90\x91\x16\x81R` \x01a\x01\x86V[a\x01\xC3a\x07AV[a\x01\xE4a\x02V6`\x04a\x11\x81V[a\x07\xBDV[a\x01\x97`@Q\x80`@\x01`@R\x80`\x05\x81R` \x01\x7F1.0.1\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\x81RP\x81V[a\x01\xC3a\x02\xA56`\x04a\x11\xE2V[c\x87\xA2\x11\xA2`\x0C\x90\x81R_\x91\x90\x91R` \x90 T\x90V[a\x01\xC3a\x02\xCA6`\x04a\x11\xE2V[c87u\x08`\x0C\x90\x81R_\x91\x90\x91R` \x90 T\x90V[a\x01\x97a\x08\xB5V[a\x01\xE4a\x02\xF76`\x04a\x11\x81V[a\x08\xE6V[a\x01za\x03\n6`\x04a\x11\x81V[a\t\xD2V[a\x01\xE4a\x03\x1D6`\x04a\x12\x0BV[a\nIV[\x7F\x07\xF0N\x84\x14=\xF9Zcs\xFC\xF3v1*\xE4\x1D\xA8\x1A\x19:0\x89\x07:T\xF4zt\xD8\xFB\0T`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01a\x01\x86V[a\x01\xC3a\x03w6`\x04a\x12pV[a\x0C\x1BV[a\x01\xE4a\x03\x8A6`\x04a\x13uV[a\x0C\x9BV[_\x7F\xFF\xFF\xFF\xFF\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\x82\x16\x7F\xE0\xEE\x87\xF3\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\x14\x80a\x03\xE4WPa\x03\xE4\x82a\x0E\xDBV[\x92\x91PPV[``\x7F\x07\xF0N\x84\x14=\xF9Zcs\xFC\xF3v1*\xE4\x1D\xA8\x1A\x19:0\x89\x07:T\xF4zt\xD8\xFB\0`\x01\x01\x80Ta\x04\x1B\x90a\x13\xF5V[\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x92\x91\x90\x81\x81R` \x01\x82\x80Ta\x04G\x90a\x13\xF5V[\x80\x15a\x04\x92W\x80`\x1F\x10a\x04iWa\x01\0\x80\x83T\x04\x02\x83R\x91` \x01\x91a\x04\x92V[\x82\x01\x91\x90_R` _ \x90[\x81T\x81R\x90`\x01\x01\x90` \x01\x80\x83\x11a\x04uW\x82\x90\x03`\x1F\x16\x82\x01\x91[PPPPP\x90P\x90V[_s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x16n\"\xD4s\x03\x0F\x11m\xDE\xE9\xF6\xB4:\xC7\x8B\xA3\x18\x82\x19\x15\x17a\x04\xDAWc?hS\x9A_R`\x04`\x1C\xFD[\x82` Rc\x7F^\x9F `\x0CR3_R\x81`4`\x0C U\x81_R`,Q``\x1C3\x7F\x8C[\xE1\xE5\xEB\xEC}[\xD1OqB}\x1E\x84\xF3\xDD\x03\x14\xC0\xF7\xB2)\x1E[ \n\xC8\xC7\xC3\xB9%` _\xA3P`\x01\x92\x91PPV[3sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0(\x14a\x05uW`@Q\x7F\x82\xB4)\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x05\x7F\x82\x82a\x0F\xBEV[`@Q\x81\x81R3\x90s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x16\x90\x7F\xDE\"\xBA\xFF\x03\x8E:>\x08@|\xBD\xF6\x17\xDE\xEDt\xE8i\xA7\xBAQ}\xF6\x11\xE311\xC6\xE6\xEA\x04\x90` \x01[`@Q\x80\x91\x03\x90\xA3PPV[_\x83``\x1Bn\"\xD4s\x03\x0F\x11m\xDE\xE9\xF6\xB4:\xC7\x8B\xA33\x14a\x06&W3` Rc\x7F^\x9F \x81\x17`\x0CR`4`\x0C \x80T\x80\x19\x15a\x06#W\x80\x85\x11\x15a\x06\x1DWc\x13\xBE%+_R`\x04`\x1C\xFD[\x84\x81\x03\x82U[PP[c\x87\xA2\x11\xA2\x81\x17`\x0CR` `\x0C \x80T\x80\x85\x11\x15a\x06LWc\xF4\xD6x\xB8_R`\x04`\x1C\xFD[\x84\x81\x03\x82UPP\x83_R` `\x0C \x83\x81T\x01\x81UP\x82` R`\x0CQ``\x1C\x81``\x1C\x7F\xDD\xF2R\xAD\x1B\xE2\xC8\x9Bi\xC2\xB0h\xFC7\x8D\xAA\x95+\xA7\xF1c\xC4\xA1\x16(\xF5ZM\xF5#\xB3\xEF` \x80\xA3PP`\x01\x93\x92PPPV[3sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0(\x14a\x06\xEDW`@Q\x7F\x82\xB4)\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x06\xF7\x82\x82a\x10?V[`@Q\x81\x81R3\x90s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x16\x90\x7F\xB9\x07\x95\xA6fP\x15Y\x83\xE2B\xCA\xC3\xE1\xAC\x1AM\xC2o\x8E\xD2\x98\x7F<\xE4\x16\xA3N\0\x11\x1F\xD4\x90` \x01a\x05\xC5V[_\x80a\x07Ka\x03\xEAV[\x80Q\x90` \x01 \x90P`@\x80Q\x7F\x8Bs\xC3\xC6\x9B\xB8\xFE=Q.\xCCL\xF7Y\xCCy#\x9F{\x17\x9B\x0F\xFA\xCA\xA9\xA7]R+9@\x0F\x81R` \x81\x01\x92\x90\x92R\x7F\xC8\x9E\xFD\xAAT\xC0\xF2\x0Cz\xDFa(\x82\xDF\tP\xF5\xA9Qc~\x03\x07\xCD\xCBLg/)\x8B\x8B\xC6\x90\x82\x01RF``\x82\x01R0`\x80\x82\x01R`\xA0\x90 \x91\x90PV[3sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x10\x14a\x08\nW`@Q\x7F\x82\xB4)\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16a\x08WW`@Q\x7F\xD9.#=\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\x01`@Q\x80\x91\x03\x90\xFD[a\x08a\x82\x82a\x0F\xBEV[\x81s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\x0Fg\x98\xA5`y:T\xC3\xBC\xFE\x86\xA9<\xDE\x1Es\x08}\x94L\x0E\xA2\x05D\x13}A!9h\x85\x82`@Qa\x08\xA9\x91\x81R` \x01\x90V[`@Q\x80\x91\x03\x90\xA2PPV[``\x7F\x07\xF0N\x84\x14=\xF9Zcs\xFC\xF3v1*\xE4\x1D\xA8\x1A\x19:0\x89\x07:T\xF4zt\xD8\xFB\0`\x02\x01\x80Ta\x04\x1B\x90a\x13\xF5V[3sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x10\x14a\t3W`@Q\x7F\x82\xB4)\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16a\t\x80W`@Q\x7F\xD9.#=\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\x01`@Q\x80\x91\x03\x90\xFD[a\t\x8A\x82\x82a\x10?V[\x81s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xCC\x16\xF5\xDB\xB4\x872\x80\x81\\\x1E\xE0\x9D\xBD\x06sl\xFF\xCC\x18D\x12\xCFzq\xA0\xFD\xB7]9|\xA5\x82`@Qa\x08\xA9\x91\x81R` \x01\x90V[_c\x87\xA2\x11\xA2`\x0CR3_R` `\x0C \x80T\x80\x84\x11\x15a\t\xFAWc\xF4\xD6x\xB8_R`\x04`\x1C\xFD[\x83\x81\x03\x82UPP\x82_R` `\x0C \x82\x81T\x01\x81UP\x81` R`\x0CQ``\x1C3\x7F\xDD\xF2R\xAD\x1B\xE2\xC8\x9Bi\xC2\xB0h\xFC7\x8D\xAA\x95+\xA7\xF1c\xC4\xA1\x16(\xF5ZM\xF5#\xB3\xEF` \x80\xA3P`\x01\x92\x91PPV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x86\x16n\"\xD4s\x03\x0F\x11m\xDE\xE9\xF6\xB4:\xC7\x8B\xA3\x18\x85\x19\x15\x17a\n\x86Wc?hS\x9A_R`\x04`\x1C\xFD[_a\n\x8Fa\x03\xEAV[\x80Q\x90` \x01 \x90P\x7F\xC8\x9E\xFD\xAAT\xC0\xF2\x0Cz\xDFa(\x82\xDF\tP\xF5\xA9Qc~\x03\x07\xCD\xCBLg/)\x8B\x8B\xC6B\x86\x10\x15a\n\xCEWc\x1A\x15\xA3\xCC_R`\x04`\x1C\xFD[`@Q\x89``\x1B``\x1C\x99P\x88``\x1B``\x1C\x98Pe87u\x08\x19\x01`\x0ER\x89_R` `\x0C \x80T\x7F\x8Bs\xC3\xC6\x9B\xB8\xFE=Q.\xCCL\xF7Y\xCCy#\x9F{\x17\x9B\x0F\xFA\xCA\xA9\xA7]R+9@\x0F\x83R\x84` \x84\x01R\x83`@\x84\x01RF``\x84\x01R0`\x80\x84\x01R`\xA0\x83 `.R\x7Fnq\xED\xAE\x12\xB1\xB9\x7FM\x1F`7\x0F\xEF\x10\x10_\xA2\xFA\xAE\x01&\x11J\x16\x9Cd\x84]a&\xC9\x83R\x8B` \x84\x01R\x8A`@\x84\x01R\x89``\x84\x01R\x80`\x80\x84\x01R\x88`\xA0\x84\x01R`\xC0\x83 `NR`B`, _R\x87`\xFF\x16` R\x86`@R\x85``R` \x80`\x80_`\x01Z\xFA\x8C=Q\x14a\x0B\xB6Wc\xDD\xAF\xBA\xEF_R`\x04`\x1C\xFD[\x01\x90Uw\x7F^\x9F \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x89\x17`@R`4`, \x88\x90U\x88\x8A\x7F\x8C[\xE1\xE5\xEB\xEC}[\xD1OqB}\x1E\x84\xF3\xDD\x03\x14\xC0\xF7\xB2)\x1E[ \n\xC8\xC7\xC3\xB9%` ``\x85\x01\xA3`@RPP_``RPPPPPPPV[_\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xDD+\x8C\xFC\xF0\xEE\x92!\x16\tK\xC58t]s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x16\x01a\x0C\x80WP\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFFa\x03\xE4V[P` Rc\x7F^\x9F `\x0C\x90\x81R_\x91\x90\x91R`4\x90 T\x90V[\x7F\xF0\xC5~\x16\x84\r\xF0@\xF1P\x88\xDC/\x81\xFE9\x1C9#\xBE\xC7>#\xA9f.\xFC\x9C\"\x9Cj\0\x80Th\x01\0\0\0\0\0\0\0\0\x81\x04`\xFF\x16\x15\x90g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16_\x81\x15\x80\x15a\x0C\xE5WP\x82[\x90P_\x82g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\x01\x14\x80\x15a\r\x01WP0;\x15[\x90P\x81\x15\x80\x15a\r\x0FWP\x80\x15[\x15a\rFW`@Q\x7F\xF9.\xE8\xA9\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\x01`@Q\x80\x91\x03\x90\xFD[\x84T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\x16`\x01\x17\x85U\x83\x15a\r\xA7W\x84T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16h\x01\0\0\0\0\0\0\0\0\x17\x85U[\x7F\x07\xF0N\x84\x14=\xF9Zcs\xFC\xF3v1*\xE4\x1D\xA8\x1A\x19:0\x89\x07:T\xF4zt\xD8\xFB\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x8B\x16\x17\x81U\x7F\x07\xF0N\x84\x14=\xF9Zcs\xFC\xF3v1*\xE4\x1D\xA8\x1A\x19:0\x89\x07:T\xF4zt\xD8\xFB\x01a\x0E1\x8A\x82a\x14\x91V[P`\x02\x81\x01a\x0E@\x89\x82a\x14\x91V[P`\x03\x01\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x16`\xFF\x88\x16\x17\x90U\x83\x15a\x0E\xD0W\x84T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x85U`@Q`\x01\x81R\x7F\xC7\xF5\x05\xB2\xF3q\xAE!u\xEEI\x13\xF4I\x9E\x1F&3\xA7\xB5\x93c!\xEE\xD1\xCD\xAE\xB6\x11Q\x81\xD2\x90` \x01`@Q\x80\x91\x03\x90\xA1[PPPPPPPPPV[_\x7F\xFF\xFF\xFF\xFF\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\x82\x16\x7F33\x19\x94\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\x14\x80a\x0FmWP\x7F\xFF\xFF\xFF\xFF\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\x82\x16\x7F67+\x07\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\x14[\x80a\x03\xE4WP\x7F\xFF\xFF\xFF\xFF\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\x82\x16\x7F\x01\xFF\xC9\xA7\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\x14\x92\x91PPV[h\x054\\\xDFw\xEBh\xF4LT\x81\x81\x01\x81\x81\x10\x15a\x0F\xE1Wc\xE5\xCF\xE9W_R`\x04`\x1C\xFD[\x80h\x054\\\xDFw\xEBh\xF4LUPPc\x87\xA2\x11\xA2`\x0CR\x81_R` `\x0C \x81\x81T\x01\x81UP\x80` R`\x0CQ``\x1C_\x7F\xDD\xF2R\xAD\x1B\xE2\xC8\x9Bi\xC2\xB0h\xFC7\x8D\xAA\x95+\xA7\xF1c\xC4\xA1\x16(\xF5ZM\xF5#\xB3\xEF` \x80\xA3PPV[PPPV[c\x87\xA2\x11\xA2`\x0CR\x81_R` `\x0C \x80T\x80\x83\x11\x15a\x10fWc\xF4\xD6x\xB8_R`\x04`\x1C\xFD[\x82\x90\x03\x90Uh\x054\\\xDFw\xEBh\xF4L\x80T\x82\x90\x03\x90U_\x81\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x16\x7F\xDD\xF2R\xAD\x1B\xE2\xC8\x9Bi\xC2\xB0h\xFC7\x8D\xAA\x95+\xA7\xF1c\xC4\xA1\x16(\xF5ZM\xF5#\xB3\xEF` \x83\xA3PPV[_` \x82\x84\x03\x12\x15a\x10\xD0W_\x80\xFD[\x815\x7F\xFF\xFF\xFF\xFF\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\x81\x16\x81\x14a\x10\xFFW_\x80\xFD[\x93\x92PPPV[` \x81R_\x82Q\x80` \x84\x01R\x80` \x85\x01`@\x85\x01^_`@\x82\x85\x01\x01R`@\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0`\x1F\x83\x01\x16\x84\x01\x01\x91PP\x92\x91PPV[\x805s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x11|W_\x80\xFD[\x91\x90PV[_\x80`@\x83\x85\x03\x12\x15a\x11\x92W_\x80\xFD[a\x11\x9B\x83a\x11YV[\x94` \x93\x90\x93\x015\x93PPPV[_\x80_``\x84\x86\x03\x12\x15a\x11\xBBW_\x80\xFD[a\x11\xC4\x84a\x11YV[\x92Pa\x11\xD2` \x85\x01a\x11YV[\x91P`@\x84\x015\x90P\x92P\x92P\x92V[_` \x82\x84\x03\x12\x15a\x11\xF2W_\x80\xFD[a\x10\xFF\x82a\x11YV[\x805`\xFF\x81\x16\x81\x14a\x11|W_\x80\xFD[_\x80_\x80_\x80_`\xE0\x88\x8A\x03\x12\x15a\x12!W_\x80\xFD[a\x12*\x88a\x11YV[\x96Pa\x128` \x89\x01a\x11YV[\x95P`@\x88\x015\x94P``\x88\x015\x93Pa\x12T`\x80\x89\x01a\x11\xFBV[\x92P`\xA0\x88\x015\x91P`\xC0\x88\x015\x90P\x92\x95\x98\x91\x94\x97P\x92\x95PV[_\x80`@\x83\x85\x03\x12\x15a\x12\x81W_\x80\xFD[a\x12\x8A\x83a\x11YV[\x91Pa\x12\x98` \x84\x01a\x11YV[\x90P\x92P\x92\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_R`A`\x04R`$_\xFD[_\x82`\x1F\x83\x01\x12a\x12\xDDW_\x80\xFD[\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x12\xF8Wa\x12\xF8a\x12\xA1V[`@Q`\x1F\x83\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x90\x81\x16`?\x01\x16\x81\x01\x90\x82\x82\x11\x81\x83\x10\x17\x15a\x13>Wa\x13>a\x12\xA1V[\x81`@R\x83\x81R\x86` \x85\x88\x01\x01\x11\x15a\x13VW_\x80\xFD[\x83` \x87\x01` \x83\x017_` \x85\x83\x01\x01R\x80\x94PPPPP\x92\x91PPV[_\x80_\x80`\x80\x85\x87\x03\x12\x15a\x13\x88W_\x80\xFD[a\x13\x91\x85a\x11YV[\x93P` \x85\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x13\xADW_\x80\xFD[a\x13\xB9\x88\x83\x89\x01a\x12\xCEV[\x94P`@\x87\x015\x91P\x80\x82\x11\x15a\x13\xCEW_\x80\xFD[Pa\x13\xDB\x87\x82\x88\x01a\x12\xCEV[\x92PPa\x13\xEA``\x86\x01a\x11\xFBV[\x90P\x92\x95\x91\x94P\x92PV[`\x01\x81\x81\x1C\x90\x82\x16\x80a\x14\tW`\x7F\x82\x16\x91P[` \x82\x10\x81\x03a\x14@W\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_R`\"`\x04R`$_\xFD[P\x91\x90PV[`\x1F\x82\x11\x15a\x10:W\x80_R` _ `\x1F\x84\x01`\x05\x1C\x81\x01` \x85\x10\x15a\x14kWP\x80[`\x1F\x84\x01`\x05\x1C\x82\x01\x91P[\x81\x81\x10\x15a\x14\x8AW_\x81U`\x01\x01a\x14wV[PPPPPV[\x81Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x14\xABWa\x14\xABa\x12\xA1V[a\x14\xBF\x81a\x14\xB9\x84Ta\x13\xF5V[\x84a\x14FV[` \x80`\x1F\x83\x11`\x01\x81\x14a\x15\x11W_\x84\x15a\x14\xDBWP\x85\x83\x01Q[\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF`\x03\x86\x90\x1B\x1C\x19\x16`\x01\x85\x90\x1B\x17\x85Ua\x15\xA5V[_\x85\x81R` \x81 \x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x86\x16\x91[\x82\x81\x10\x15a\x15]W\x88\x86\x01Q\x82U\x94\x84\x01\x94`\x01\x90\x91\x01\x90\x84\x01a\x15>V[P\x85\x82\x10\x15a\x15\x99W\x87\x85\x01Q\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF`\x03\x88\x90\x1B`\xF8\x16\x1C\x19\x16\x81U[PP`\x01\x84`\x01\x1B\x01\x85U[PPPPPPV\xFE\xA1dsolcC\0\x08\x19\0\n", + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `AllowanceOverflow()` and selector `0xf9067066`. +```solidity +error AllowanceOverflow(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct AllowanceOverflow; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: AllowanceOverflow) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for AllowanceOverflow { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for AllowanceOverflow { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "AllowanceOverflow()"; + const SELECTOR: [u8; 4] = [249u8, 6u8, 112u8, 102u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `AllowanceUnderflow()` and selector `0x8301ab38`. +```solidity +error AllowanceUnderflow(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct AllowanceUnderflow; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: AllowanceUnderflow) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for AllowanceUnderflow { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for AllowanceUnderflow { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "AllowanceUnderflow()"; + const SELECTOR: [u8; 4] = [131u8, 1u8, 171u8, 56u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InsufficientAllowance()` and selector `0x13be252b`. +```solidity +error InsufficientAllowance(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InsufficientAllowance; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InsufficientAllowance) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InsufficientAllowance { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InsufficientAllowance { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InsufficientAllowance()"; + const SELECTOR: [u8; 4] = [19u8, 190u8, 37u8, 43u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InsufficientBalance()` and selector `0xf4d678b8`. +```solidity +error InsufficientBalance(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InsufficientBalance; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InsufficientBalance) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InsufficientBalance { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InsufficientBalance { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InsufficientBalance()"; + const SELECTOR: [u8; 4] = [244u8, 214u8, 120u8, 184u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidInitialization()` and selector `0xf92ee8a9`. +```solidity +error InvalidInitialization(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidInitialization; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InvalidInitialization) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InvalidInitialization { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidInitialization { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidInitialization()"; + const SELECTOR: [u8; 4] = [249u8, 46u8, 232u8, 169u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidPermit()` and selector `0xddafbaef`. +```solidity +error InvalidPermit(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidPermit; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InvalidPermit) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InvalidPermit { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidPermit { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidPermit()"; + const SELECTOR: [u8; 4] = [221u8, 175u8, 186u8, 239u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `NotInitializing()` and selector `0xd7e6bcf8`. +```solidity +error NotInitializing(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct NotInitializing; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: NotInitializing) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for NotInitializing { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for NotInitializing { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "NotInitializing()"; + const SELECTOR: [u8; 4] = [215u8, 230u8, 188u8, 248u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `Permit2AllowanceIsFixedAtInfinity()` and selector `0x3f68539a`. +```solidity +error Permit2AllowanceIsFixedAtInfinity(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct Permit2AllowanceIsFixedAtInfinity; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: Permit2AllowanceIsFixedAtInfinity) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for Permit2AllowanceIsFixedAtInfinity { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for Permit2AllowanceIsFixedAtInfinity { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "Permit2AllowanceIsFixedAtInfinity()"; + const SELECTOR: [u8; 4] = [63u8, 104u8, 83u8, 154u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `PermitExpired()` and selector `0x1a15a3cc`. +```solidity +error PermitExpired(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct PermitExpired; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: PermitExpired) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for PermitExpired { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for PermitExpired { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "PermitExpired()"; + const SELECTOR: [u8; 4] = [26u8, 21u8, 163u8, 204u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `TotalSupplyOverflow()` and selector `0xe5cfe957`. +```solidity +error TotalSupplyOverflow(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct TotalSupplyOverflow; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: TotalSupplyOverflow) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for TotalSupplyOverflow { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for TotalSupplyOverflow { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "TotalSupplyOverflow()"; + const SELECTOR: [u8; 4] = [229u8, 207u8, 233u8, 87u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `Unauthorized()` and selector `0x82b42900`. +```solidity +error Unauthorized(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct Unauthorized; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: Unauthorized) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for Unauthorized { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for Unauthorized { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "Unauthorized()"; + const SELECTOR: [u8; 4] = [130u8, 180u8, 41u8, 0u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ZeroAddress()` and selector `0xd92e233d`. +```solidity +error ZeroAddress(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ZeroAddress; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ZeroAddress) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ZeroAddress { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ZeroAddress { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ZeroAddress()"; + const SELECTOR: [u8; 4] = [217u8, 46u8, 35u8, 61u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `Approval(address,address,uint256)` and selector `0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925`. +```solidity +event Approval(address indexed owner, address indexed spender, uint256 amount); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct Approval { + #[allow(missing_docs)] + pub owner: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub spender: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub amount: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for Approval { + type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "Approval(address,address,uint256)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 140u8, 91u8, 225u8, 229u8, 235u8, 236u8, 125u8, 91u8, 209u8, 79u8, 113u8, + 66u8, 125u8, 30u8, 132u8, 243u8, 221u8, 3u8, 20u8, 192u8, 247u8, 178u8, + 41u8, 30u8, 91u8, 32u8, 10u8, 200u8, 199u8, 195u8, 185u8, 37u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + owner: topics.1, + spender: topics.2, + amount: data.0, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.amount), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.owner.clone(), self.spender.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.owner, + ); + out[2usize] = ::encode_topic( + &self.spender, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for Approval { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&Approval> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &Approval) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `Burn(address,uint256)` and selector `0xcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5`. +```solidity +event Burn(address indexed from, uint256 amount); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct Burn { + #[allow(missing_docs)] + pub from: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub amount: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for Burn { + type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "Burn(address,uint256)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 204u8, 22u8, 245u8, 219u8, 180u8, 135u8, 50u8, 128u8, 129u8, 92u8, 30u8, + 224u8, 157u8, 189u8, 6u8, 115u8, 108u8, 255u8, 204u8, 24u8, 68u8, 18u8, + 207u8, 122u8, 113u8, 160u8, 253u8, 183u8, 93u8, 57u8, 124u8, 165u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + from: topics.1, + amount: data.0, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.amount), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.from.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.from, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for Burn { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&Burn> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &Burn) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `CrosschainBurn(address,uint256,address)` and selector `0xb90795a66650155983e242cac3e1ac1a4dc26f8ed2987f3ce416a34e00111fd4`. +```solidity +event CrosschainBurn(address indexed from, uint256 amount, address indexed sender); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct CrosschainBurn { + #[allow(missing_docs)] + pub from: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub amount: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub sender: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for CrosschainBurn { + type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "CrosschainBurn(address,uint256,address)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 185u8, 7u8, 149u8, 166u8, 102u8, 80u8, 21u8, 89u8, 131u8, 226u8, 66u8, + 202u8, 195u8, 225u8, 172u8, 26u8, 77u8, 194u8, 111u8, 142u8, 210u8, + 152u8, 127u8, 60u8, 228u8, 22u8, 163u8, 78u8, 0u8, 17u8, 31u8, 212u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + from: topics.1, + amount: data.0, + sender: topics.2, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.amount), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.from.clone(), self.sender.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.from, + ); + out[2usize] = ::encode_topic( + &self.sender, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for CrosschainBurn { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&CrosschainBurn> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &CrosschainBurn) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `CrosschainMint(address,uint256,address)` and selector `0xde22baff038e3a3e08407cbdf617deed74e869a7ba517df611e33131c6e6ea04`. +```solidity +event CrosschainMint(address indexed to, uint256 amount, address indexed sender); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct CrosschainMint { + #[allow(missing_docs)] + pub to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub amount: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub sender: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for CrosschainMint { + type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "CrosschainMint(address,uint256,address)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 222u8, 34u8, 186u8, 255u8, 3u8, 142u8, 58u8, 62u8, 8u8, 64u8, 124u8, + 189u8, 246u8, 23u8, 222u8, 237u8, 116u8, 232u8, 105u8, 167u8, 186u8, + 81u8, 125u8, 246u8, 17u8, 227u8, 49u8, 49u8, 198u8, 230u8, 234u8, 4u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + to: topics.1, + amount: data.0, + sender: topics.2, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.amount), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.to.clone(), self.sender.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.to, + ); + out[2usize] = ::encode_topic( + &self.sender, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for CrosschainMint { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&CrosschainMint> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &CrosschainMint) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `Initialized(uint64)` and selector `0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2`. +```solidity +event Initialized(uint64 version); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct Initialized { + #[allow(missing_docs)] + pub version: u64, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for Initialized { + type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,); + const SIGNATURE: &'static str = "Initialized(uint64)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 199u8, 245u8, 5u8, 178u8, 243u8, 113u8, 174u8, 33u8, 117u8, 238u8, 73u8, + 19u8, 244u8, 73u8, 158u8, 31u8, 38u8, 51u8, 167u8, 181u8, 147u8, 99u8, + 33u8, 238u8, 209u8, 205u8, 174u8, 182u8, 17u8, 81u8, 129u8, 210u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { version: data.0 } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.version), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(),) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for Initialized { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&Initialized> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &Initialized) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `Mint(address,uint256)` and selector `0x0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885`. +```solidity +event Mint(address indexed to, uint256 amount); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct Mint { + #[allow(missing_docs)] + pub to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub amount: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for Mint { + type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "Mint(address,uint256)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 15u8, 103u8, 152u8, 165u8, 96u8, 121u8, 58u8, 84u8, 195u8, 188u8, 254u8, + 134u8, 169u8, 60u8, 222u8, 30u8, 115u8, 8u8, 125u8, 148u8, 76u8, 14u8, + 162u8, 5u8, 68u8, 19u8, 125u8, 65u8, 33u8, 57u8, 104u8, 133u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + to: topics.1, + amount: data.0, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.amount), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.to.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.to, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for Mint { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&Mint> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &Mint) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `Transfer(address,address,uint256)` and selector `0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef`. +```solidity +event Transfer(address indexed from, address indexed to, uint256 amount); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct Transfer { + #[allow(missing_docs)] + pub from: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub amount: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for Transfer { + type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "Transfer(address,address,uint256)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 221u8, 242u8, 82u8, 173u8, 27u8, 226u8, 200u8, 155u8, 105u8, 194u8, + 176u8, 104u8, 252u8, 55u8, 141u8, 170u8, 149u8, 43u8, 167u8, 241u8, 99u8, + 196u8, 161u8, 22u8, 40u8, 245u8, 90u8, 77u8, 245u8, 35u8, 179u8, 239u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + from: topics.1, + to: topics.2, + amount: data.0, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.amount), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.from.clone(), self.to.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.from, + ); + out[2usize] = ::encode_topic( + &self.to, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for Transfer { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&Transfer> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &Transfer) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + /**Constructor`. +```solidity +constructor(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct constructorCall {} + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: constructorCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for constructorCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolConstructor for constructorCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `DOMAIN_SEPARATOR()` and selector `0x3644e515`. +```solidity +function DOMAIN_SEPARATOR() external view returns (bytes32 result); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct DOMAIN_SEPARATORCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`DOMAIN_SEPARATOR()`](DOMAIN_SEPARATORCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct DOMAIN_SEPARATORReturn { + #[allow(missing_docs)] + pub result: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: DOMAIN_SEPARATORCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for DOMAIN_SEPARATORCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: DOMAIN_SEPARATORReturn) -> Self { + (value.result,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for DOMAIN_SEPARATORReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { result: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for DOMAIN_SEPARATORCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::FixedBytes<32>; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "DOMAIN_SEPARATOR()"; + const SELECTOR: [u8; 4] = [54u8, 68u8, 229u8, 21u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: DOMAIN_SEPARATORReturn = r.into(); + r.result + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: DOMAIN_SEPARATORReturn = r.into(); + r.result + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `allowance(address,address)` and selector `0xdd62ed3e`. +```solidity +function allowance(address owner, address spender) external view returns (uint256 result); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct allowanceCall { + #[allow(missing_docs)] + pub owner: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub spender: alloy::sol_types::private::Address, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`allowance(address,address)`](allowanceCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct allowanceReturn { + #[allow(missing_docs)] + pub result: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: allowanceCall) -> Self { + (value.owner, value.spender) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for allowanceCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + owner: tuple.0, + spender: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: allowanceReturn) -> Self { + (value.result,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for allowanceReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { result: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for allowanceCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "allowance(address,address)"; + const SELECTOR: [u8; 4] = [221u8, 98u8, 237u8, 62u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.owner, + ), + ::tokenize( + &self.spender, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: allowanceReturn = r.into(); + r.result + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: allowanceReturn = r.into(); + r.result + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `approve(address,uint256)` and selector `0x095ea7b3`. +```solidity +function approve(address spender, uint256 amount) external returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct approveCall { + #[allow(missing_docs)] + pub spender: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub amount: alloy::sol_types::private::primitives::aliases::U256, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`approve(address,uint256)`](approveCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct approveReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: approveCall) -> Self { + (value.spender, value.amount) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for approveCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + spender: tuple.0, + amount: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: approveReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for approveReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for approveCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "approve(address,uint256)"; + const SELECTOR: [u8; 4] = [9u8, 94u8, 167u8, 179u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.spender, + ), + as alloy_sol_types::SolType>::tokenize(&self.amount), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: approveReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: approveReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `balanceOf(address)` and selector `0x70a08231`. +```solidity +function balanceOf(address owner) external view returns (uint256 result); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct balanceOfCall { + #[allow(missing_docs)] + pub owner: alloy::sol_types::private::Address, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`balanceOf(address)`](balanceOfCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct balanceOfReturn { + #[allow(missing_docs)] + pub result: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: balanceOfCall) -> Self { + (value.owner,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for balanceOfCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { owner: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: balanceOfReturn) -> Self { + (value.result,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for balanceOfReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { result: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for balanceOfCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "balanceOf(address)"; + const SELECTOR: [u8; 4] = [112u8, 160u8, 130u8, 49u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.owner, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: balanceOfReturn = r.into(); + r.result + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: balanceOfReturn = r.into(); + r.result + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `burn(address,uint256)` and selector `0x9dc29fac`. +```solidity +function burn(address _from, uint256 _amount) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct burnCall { + #[allow(missing_docs)] + pub _from: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _amount: alloy::sol_types::private::primitives::aliases::U256, + } + ///Container type for the return parameters of the [`burn(address,uint256)`](burnCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct burnReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: burnCall) -> Self { + (value._from, value._amount) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for burnCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _from: tuple.0, + _amount: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: burnReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for burnReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl burnReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for burnCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = burnReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "burn(address,uint256)"; + const SELECTOR: [u8; 4] = [157u8, 194u8, 159u8, 172u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._from, + ), + as alloy_sol_types::SolType>::tokenize(&self._amount), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + burnReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `crosschainBurn(address,uint256)` and selector `0x2b8c49e3`. +```solidity +function crosschainBurn(address _from, uint256 _amount) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct crosschainBurnCall { + #[allow(missing_docs)] + pub _from: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _amount: alloy::sol_types::private::primitives::aliases::U256, + } + ///Container type for the return parameters of the [`crosschainBurn(address,uint256)`](crosschainBurnCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct crosschainBurnReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: crosschainBurnCall) -> Self { + (value._from, value._amount) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for crosschainBurnCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _from: tuple.0, + _amount: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: crosschainBurnReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for crosschainBurnReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl crosschainBurnReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for crosschainBurnCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = crosschainBurnReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "crosschainBurn(address,uint256)"; + const SELECTOR: [u8; 4] = [43u8, 140u8, 73u8, 227u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._from, + ), + as alloy_sol_types::SolType>::tokenize(&self._amount), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + crosschainBurnReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `crosschainMint(address,uint256)` and selector `0x18bf5077`. +```solidity +function crosschainMint(address _to, uint256 _amount) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct crosschainMintCall { + #[allow(missing_docs)] + pub _to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _amount: alloy::sol_types::private::primitives::aliases::U256, + } + ///Container type for the return parameters of the [`crosschainMint(address,uint256)`](crosschainMintCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct crosschainMintReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: crosschainMintCall) -> Self { + (value._to, value._amount) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for crosschainMintCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _to: tuple.0, + _amount: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: crosschainMintReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for crosschainMintReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl crosschainMintReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for crosschainMintCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = crosschainMintReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "crosschainMint(address,uint256)"; + const SELECTOR: [u8; 4] = [24u8, 191u8, 80u8, 119u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._to, + ), + as alloy_sol_types::SolType>::tokenize(&self._amount), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + crosschainMintReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `decimals()` and selector `0x313ce567`. +```solidity +function decimals() external view returns (uint8); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct decimalsCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`decimals()`](decimalsCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct decimalsReturn { + #[allow(missing_docs)] + pub _0: u8, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: decimalsCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for decimalsCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<8>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u8,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: decimalsReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for decimalsReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for decimalsCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u8; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<8>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "decimals()"; + const SELECTOR: [u8; 4] = [49u8, 60u8, 229u8, 103u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: decimalsReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: decimalsReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `initialize(address,string,string,uint8)` and selector `0xf6d2ee86`. +```solidity +function initialize(address _remoteToken, string memory _name, string memory _symbol, uint8 _decimals) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct initializeCall { + #[allow(missing_docs)] + pub _remoteToken: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _name: alloy::sol_types::private::String, + #[allow(missing_docs)] + pub _symbol: alloy::sol_types::private::String, + #[allow(missing_docs)] + pub _decimals: u8, + } + ///Container type for the return parameters of the [`initialize(address,string,string,uint8)`](initializeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct initializeReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::String, + alloy::sol_types::sol_data::String, + alloy::sol_types::sol_data::Uint<8>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::String, + alloy::sol_types::private::String, + u8, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: initializeCall) -> Self { + (value._remoteToken, value._name, value._symbol, value._decimals) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for initializeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _remoteToken: tuple.0, + _name: tuple.1, + _symbol: tuple.2, + _decimals: tuple.3, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: initializeReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for initializeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl initializeReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for initializeCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::String, + alloy::sol_types::sol_data::String, + alloy::sol_types::sol_data::Uint<8>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = initializeReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "initialize(address,string,string,uint8)"; + const SELECTOR: [u8; 4] = [246u8, 210u8, 238u8, 134u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._remoteToken, + ), + ::tokenize( + &self._name, + ), + ::tokenize( + &self._symbol, + ), + as alloy_sol_types::SolType>::tokenize(&self._decimals), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + initializeReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `mint(address,uint256)` and selector `0x40c10f19`. +```solidity +function mint(address _to, uint256 _amount) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct mintCall { + #[allow(missing_docs)] + pub _to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _amount: alloy::sol_types::private::primitives::aliases::U256, + } + ///Container type for the return parameters of the [`mint(address,uint256)`](mintCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct mintReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: mintCall) -> Self { + (value._to, value._amount) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for mintCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _to: tuple.0, + _amount: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: mintReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for mintReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl mintReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for mintCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = mintReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "mint(address,uint256)"; + const SELECTOR: [u8; 4] = [64u8, 193u8, 15u8, 25u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._to, + ), + as alloy_sol_types::SolType>::tokenize(&self._amount), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + mintReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `name()` and selector `0x06fdde03`. +```solidity +function name() external view returns (string memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct nameCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`name()`](nameCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct nameReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: nameCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for nameCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: nameReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for nameReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for nameCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::String; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "name()"; + const SELECTOR: [u8; 4] = [6u8, 253u8, 222u8, 3u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: nameReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: nameReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `nonces(address)` and selector `0x7ecebe00`. +```solidity +function nonces(address owner) external view returns (uint256 result); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct noncesCall { + #[allow(missing_docs)] + pub owner: alloy::sol_types::private::Address, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`nonces(address)`](noncesCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct noncesReturn { + #[allow(missing_docs)] + pub result: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: noncesCall) -> Self { + (value.owner,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for noncesCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { owner: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: noncesReturn) -> Self { + (value.result,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for noncesReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { result: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for noncesCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "nonces(address)"; + const SELECTOR: [u8; 4] = [126u8, 206u8, 190u8, 0u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.owner, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: noncesReturn = r.into(); + r.result + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: noncesReturn = r.into(); + r.result + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `permit(address,address,uint256,uint256,uint8,bytes32,bytes32)` and selector `0xd505accf`. +```solidity +function permit(address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct permitCall { + #[allow(missing_docs)] + pub owner: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub spender: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub value: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub deadline: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub v: u8, + #[allow(missing_docs)] + pub r: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub s: alloy::sol_types::private::FixedBytes<32>, + } + ///Container type for the return parameters of the [`permit(address,address,uint256,uint256,uint8,bytes32,bytes32)`](permitCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct permitReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<8>, + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::primitives::aliases::U256, + u8, + alloy::sol_types::private::FixedBytes<32>, + alloy::sol_types::private::FixedBytes<32>, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: permitCall) -> Self { + ( + value.owner, + value.spender, + value.value, + value.deadline, + value.v, + value.r, + value.s, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for permitCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + owner: tuple.0, + spender: tuple.1, + value: tuple.2, + deadline: tuple.3, + v: tuple.4, + r: tuple.5, + s: tuple.6, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: permitReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for permitReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl permitReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for permitCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<8>, + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = permitReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "permit(address,address,uint256,uint256,uint8,bytes32,bytes32)"; + const SELECTOR: [u8; 4] = [213u8, 5u8, 172u8, 207u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.owner, + ), + ::tokenize( + &self.spender, + ), + as alloy_sol_types::SolType>::tokenize(&self.value), + as alloy_sol_types::SolType>::tokenize(&self.deadline), + as alloy_sol_types::SolType>::tokenize(&self.v), + as alloy_sol_types::SolType>::tokenize(&self.r), + as alloy_sol_types::SolType>::tokenize(&self.s), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + permitReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `remoteToken()` and selector `0xd6c0b2c4`. +```solidity +function remoteToken() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct remoteTokenCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`remoteToken()`](remoteTokenCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct remoteTokenReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: remoteTokenCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for remoteTokenCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: remoteTokenReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for remoteTokenReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for remoteTokenCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "remoteToken()"; + const SELECTOR: [u8; 4] = [214u8, 192u8, 178u8, 196u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: remoteTokenReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: remoteTokenReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `supportsInterface(bytes4)` and selector `0x01ffc9a7`. +```solidity +function supportsInterface(bytes4 _interfaceId) external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct supportsInterfaceCall { + #[allow(missing_docs)] + pub _interfaceId: alloy::sol_types::private::FixedBytes<4>, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`supportsInterface(bytes4)`](supportsInterfaceCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct supportsInterfaceReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<4>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<4>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: supportsInterfaceCall) -> Self { + (value._interfaceId,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for supportsInterfaceCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _interfaceId: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: supportsInterfaceReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for supportsInterfaceReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for supportsInterfaceCall { + type Parameters<'a> = (alloy::sol_types::sol_data::FixedBytes<4>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "supportsInterface(bytes4)"; + const SELECTOR: [u8; 4] = [1u8, 255u8, 201u8, 167u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._interfaceId), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: supportsInterfaceReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: supportsInterfaceReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `symbol()` and selector `0x95d89b41`. +```solidity +function symbol() external view returns (string memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct symbolCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`symbol()`](symbolCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct symbolReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: symbolCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for symbolCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: symbolReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for symbolReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for symbolCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::String; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "symbol()"; + const SELECTOR: [u8; 4] = [149u8, 216u8, 155u8, 65u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: symbolReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: symbolReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `totalSupply()` and selector `0x18160ddd`. +```solidity +function totalSupply() external view returns (uint256 result); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct totalSupplyCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`totalSupply()`](totalSupplyCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct totalSupplyReturn { + #[allow(missing_docs)] + pub result: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: totalSupplyCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for totalSupplyCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: totalSupplyReturn) -> Self { + (value.result,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for totalSupplyReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { result: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for totalSupplyCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "totalSupply()"; + const SELECTOR: [u8; 4] = [24u8, 22u8, 13u8, 221u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: totalSupplyReturn = r.into(); + r.result + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: totalSupplyReturn = r.into(); + r.result + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `transfer(address,uint256)` and selector `0xa9059cbb`. +```solidity +function transfer(address to, uint256 amount) external returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct transferCall { + #[allow(missing_docs)] + pub to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub amount: alloy::sol_types::private::primitives::aliases::U256, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`transfer(address,uint256)`](transferCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct transferReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: transferCall) -> Self { + (value.to, value.amount) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for transferCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + to: tuple.0, + amount: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: transferReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for transferReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for transferCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "transfer(address,uint256)"; + const SELECTOR: [u8; 4] = [169u8, 5u8, 156u8, 187u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.to, + ), + as alloy_sol_types::SolType>::tokenize(&self.amount), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: transferReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: transferReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd`. +```solidity +function transferFrom(address from, address to, uint256 amount) external returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct transferFromCall { + #[allow(missing_docs)] + pub from: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub amount: alloy::sol_types::private::primitives::aliases::U256, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`transferFrom(address,address,uint256)`](transferFromCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct transferFromReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: transferFromCall) -> Self { + (value.from, value.to, value.amount) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for transferFromCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + from: tuple.0, + to: tuple.1, + amount: tuple.2, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: transferFromReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for transferFromReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for transferFromCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "transferFrom(address,address,uint256)"; + const SELECTOR: [u8; 4] = [35u8, 184u8, 114u8, 221u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.from, + ), + ::tokenize( + &self.to, + ), + as alloy_sol_types::SolType>::tokenize(&self.amount), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: transferFromReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: transferFromReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `version()` and selector `0x54fd4d50`. +```solidity +function version() external view returns (string memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`version()`](versionCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for versionCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::String; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "version()"; + const SELECTOR: [u8; 4] = [84u8, 253u8, 77u8, 80u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + } + }; + ///Container for all the [`OptimismSuperchainERC20`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum OptimismSuperchainERC20Calls { + #[allow(missing_docs)] + DOMAIN_SEPARATOR(DOMAIN_SEPARATORCall), + #[allow(missing_docs)] + allowance(allowanceCall), + #[allow(missing_docs)] + approve(approveCall), + #[allow(missing_docs)] + balanceOf(balanceOfCall), + #[allow(missing_docs)] + burn(burnCall), + #[allow(missing_docs)] + crosschainBurn(crosschainBurnCall), + #[allow(missing_docs)] + crosschainMint(crosschainMintCall), + #[allow(missing_docs)] + decimals(decimalsCall), + #[allow(missing_docs)] + initialize(initializeCall), + #[allow(missing_docs)] + mint(mintCall), + #[allow(missing_docs)] + name(nameCall), + #[allow(missing_docs)] + nonces(noncesCall), + #[allow(missing_docs)] + permit(permitCall), + #[allow(missing_docs)] + remoteToken(remoteTokenCall), + #[allow(missing_docs)] + supportsInterface(supportsInterfaceCall), + #[allow(missing_docs)] + symbol(symbolCall), + #[allow(missing_docs)] + totalSupply(totalSupplyCall), + #[allow(missing_docs)] + transfer(transferCall), + #[allow(missing_docs)] + transferFrom(transferFromCall), + #[allow(missing_docs)] + version(versionCall), + } + impl OptimismSuperchainERC20Calls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [1u8, 255u8, 201u8, 167u8], + [6u8, 253u8, 222u8, 3u8], + [9u8, 94u8, 167u8, 179u8], + [24u8, 22u8, 13u8, 221u8], + [24u8, 191u8, 80u8, 119u8], + [35u8, 184u8, 114u8, 221u8], + [43u8, 140u8, 73u8, 227u8], + [49u8, 60u8, 229u8, 103u8], + [54u8, 68u8, 229u8, 21u8], + [64u8, 193u8, 15u8, 25u8], + [84u8, 253u8, 77u8, 80u8], + [112u8, 160u8, 130u8, 49u8], + [126u8, 206u8, 190u8, 0u8], + [149u8, 216u8, 155u8, 65u8], + [157u8, 194u8, 159u8, 172u8], + [169u8, 5u8, 156u8, 187u8], + [213u8, 5u8, 172u8, 207u8], + [214u8, 192u8, 178u8, 196u8], + [221u8, 98u8, 237u8, 62u8], + [246u8, 210u8, 238u8, 134u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(supportsInterface), + ::core::stringify!(name), + ::core::stringify!(approve), + ::core::stringify!(totalSupply), + ::core::stringify!(crosschainMint), + ::core::stringify!(transferFrom), + ::core::stringify!(crosschainBurn), + ::core::stringify!(decimals), + ::core::stringify!(DOMAIN_SEPARATOR), + ::core::stringify!(mint), + ::core::stringify!(version), + ::core::stringify!(balanceOf), + ::core::stringify!(nonces), + ::core::stringify!(symbol), + ::core::stringify!(burn), + ::core::stringify!(transfer), + ::core::stringify!(permit), + ::core::stringify!(remoteToken), + ::core::stringify!(allowance), + ::core::stringify!(initialize), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for OptimismSuperchainERC20Calls { + const NAME: &'static str = "OptimismSuperchainERC20Calls"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 20usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::DOMAIN_SEPARATOR(_) => { + ::SELECTOR + } + Self::allowance(_) => { + ::SELECTOR + } + Self::approve(_) => ::SELECTOR, + Self::balanceOf(_) => { + ::SELECTOR + } + Self::burn(_) => ::SELECTOR, + Self::crosschainBurn(_) => { + ::SELECTOR + } + Self::crosschainMint(_) => { + ::SELECTOR + } + Self::decimals(_) => ::SELECTOR, + Self::initialize(_) => { + ::SELECTOR + } + Self::mint(_) => ::SELECTOR, + Self::name(_) => ::SELECTOR, + Self::nonces(_) => ::SELECTOR, + Self::permit(_) => ::SELECTOR, + Self::remoteToken(_) => { + ::SELECTOR + } + Self::supportsInterface(_) => { + ::SELECTOR + } + Self::symbol(_) => ::SELECTOR, + Self::totalSupply(_) => { + ::SELECTOR + } + Self::transfer(_) => ::SELECTOR, + Self::transferFrom(_) => { + ::SELECTOR + } + Self::version(_) => ::SELECTOR, + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn supportsInterface( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OptimismSuperchainERC20Calls::supportsInterface) + } + supportsInterface + }, + { + fn name( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(OptimismSuperchainERC20Calls::name) + } + name + }, + { + fn approve( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(OptimismSuperchainERC20Calls::approve) + } + approve + }, + { + fn totalSupply( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OptimismSuperchainERC20Calls::totalSupply) + } + totalSupply + }, + { + fn crosschainMint( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OptimismSuperchainERC20Calls::crosschainMint) + } + crosschainMint + }, + { + fn transferFrom( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OptimismSuperchainERC20Calls::transferFrom) + } + transferFrom + }, + { + fn crosschainBurn( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OptimismSuperchainERC20Calls::crosschainBurn) + } + crosschainBurn + }, + { + fn decimals( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(OptimismSuperchainERC20Calls::decimals) + } + decimals + }, + { + fn DOMAIN_SEPARATOR( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OptimismSuperchainERC20Calls::DOMAIN_SEPARATOR) + } + DOMAIN_SEPARATOR + }, + { + fn mint( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(OptimismSuperchainERC20Calls::mint) + } + mint + }, + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(OptimismSuperchainERC20Calls::version) + } + version + }, + { + fn balanceOf( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(OptimismSuperchainERC20Calls::balanceOf) + } + balanceOf + }, + { + fn nonces( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(OptimismSuperchainERC20Calls::nonces) + } + nonces + }, + { + fn symbol( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(OptimismSuperchainERC20Calls::symbol) + } + symbol + }, + { + fn burn( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(OptimismSuperchainERC20Calls::burn) + } + burn + }, + { + fn transfer( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(OptimismSuperchainERC20Calls::transfer) + } + transfer + }, + { + fn permit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(OptimismSuperchainERC20Calls::permit) + } + permit + }, + { + fn remoteToken( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OptimismSuperchainERC20Calls::remoteToken) + } + remoteToken + }, + { + fn allowance( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(OptimismSuperchainERC20Calls::allowance) + } + allowance + }, + { + fn initialize( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OptimismSuperchainERC20Calls::initialize) + } + initialize + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn supportsInterface( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismSuperchainERC20Calls::supportsInterface) + } + supportsInterface + }, + { + fn name( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismSuperchainERC20Calls::name) + } + name + }, + { + fn approve( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismSuperchainERC20Calls::approve) + } + approve + }, + { + fn totalSupply( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismSuperchainERC20Calls::totalSupply) + } + totalSupply + }, + { + fn crosschainMint( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismSuperchainERC20Calls::crosschainMint) + } + crosschainMint + }, + { + fn transferFrom( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismSuperchainERC20Calls::transferFrom) + } + transferFrom + }, + { + fn crosschainBurn( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismSuperchainERC20Calls::crosschainBurn) + } + crosschainBurn + }, + { + fn decimals( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismSuperchainERC20Calls::decimals) + } + decimals + }, + { + fn DOMAIN_SEPARATOR( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismSuperchainERC20Calls::DOMAIN_SEPARATOR) + } + DOMAIN_SEPARATOR + }, + { + fn mint( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismSuperchainERC20Calls::mint) + } + mint + }, + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismSuperchainERC20Calls::version) + } + version + }, + { + fn balanceOf( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismSuperchainERC20Calls::balanceOf) + } + balanceOf + }, + { + fn nonces( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismSuperchainERC20Calls::nonces) + } + nonces + }, + { + fn symbol( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismSuperchainERC20Calls::symbol) + } + symbol + }, + { + fn burn( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismSuperchainERC20Calls::burn) + } + burn + }, + { + fn transfer( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismSuperchainERC20Calls::transfer) + } + transfer + }, + { + fn permit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismSuperchainERC20Calls::permit) + } + permit + }, + { + fn remoteToken( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismSuperchainERC20Calls::remoteToken) + } + remoteToken + }, + { + fn allowance( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismSuperchainERC20Calls::allowance) + } + allowance + }, + { + fn initialize( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismSuperchainERC20Calls::initialize) + } + initialize + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::DOMAIN_SEPARATOR(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::allowance(inner) => { + ::abi_encoded_size(inner) + } + Self::approve(inner) => { + ::abi_encoded_size(inner) + } + Self::balanceOf(inner) => { + ::abi_encoded_size(inner) + } + Self::burn(inner) => { + ::abi_encoded_size(inner) + } + Self::crosschainBurn(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::crosschainMint(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::decimals(inner) => { + ::abi_encoded_size(inner) + } + Self::initialize(inner) => { + ::abi_encoded_size(inner) + } + Self::mint(inner) => { + ::abi_encoded_size(inner) + } + Self::name(inner) => { + ::abi_encoded_size(inner) + } + Self::nonces(inner) => { + ::abi_encoded_size(inner) + } + Self::permit(inner) => { + ::abi_encoded_size(inner) + } + Self::remoteToken(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::supportsInterface(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::symbol(inner) => { + ::abi_encoded_size(inner) + } + Self::totalSupply(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::transfer(inner) => { + ::abi_encoded_size(inner) + } + Self::transferFrom(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::version(inner) => { + ::abi_encoded_size(inner) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::DOMAIN_SEPARATOR(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::allowance(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::approve(inner) => { + ::abi_encode_raw(inner, out) + } + Self::balanceOf(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::burn(inner) => { + ::abi_encode_raw(inner, out) + } + Self::crosschainBurn(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::crosschainMint(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::decimals(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::initialize(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::mint(inner) => { + ::abi_encode_raw(inner, out) + } + Self::name(inner) => { + ::abi_encode_raw(inner, out) + } + Self::nonces(inner) => { + ::abi_encode_raw(inner, out) + } + Self::permit(inner) => { + ::abi_encode_raw(inner, out) + } + Self::remoteToken(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::supportsInterface(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::symbol(inner) => { + ::abi_encode_raw(inner, out) + } + Self::totalSupply(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::transfer(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::transferFrom(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::version(inner) => { + ::abi_encode_raw(inner, out) + } + } + } + } + ///Container for all the [`OptimismSuperchainERC20`](self) custom errors. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum OptimismSuperchainERC20Errors { + #[allow(missing_docs)] + AllowanceOverflow(AllowanceOverflow), + #[allow(missing_docs)] + AllowanceUnderflow(AllowanceUnderflow), + #[allow(missing_docs)] + InsufficientAllowance(InsufficientAllowance), + #[allow(missing_docs)] + InsufficientBalance(InsufficientBalance), + #[allow(missing_docs)] + InvalidInitialization(InvalidInitialization), + #[allow(missing_docs)] + InvalidPermit(InvalidPermit), + #[allow(missing_docs)] + NotInitializing(NotInitializing), + #[allow(missing_docs)] + Permit2AllowanceIsFixedAtInfinity(Permit2AllowanceIsFixedAtInfinity), + #[allow(missing_docs)] + PermitExpired(PermitExpired), + #[allow(missing_docs)] + TotalSupplyOverflow(TotalSupplyOverflow), + #[allow(missing_docs)] + Unauthorized(Unauthorized), + #[allow(missing_docs)] + ZeroAddress(ZeroAddress), + } + impl OptimismSuperchainERC20Errors { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [19u8, 190u8, 37u8, 43u8], + [26u8, 21u8, 163u8, 204u8], + [63u8, 104u8, 83u8, 154u8], + [130u8, 180u8, 41u8, 0u8], + [131u8, 1u8, 171u8, 56u8], + [215u8, 230u8, 188u8, 248u8], + [217u8, 46u8, 35u8, 61u8], + [221u8, 175u8, 186u8, 239u8], + [229u8, 207u8, 233u8, 87u8], + [244u8, 214u8, 120u8, 184u8], + [249u8, 6u8, 112u8, 102u8], + [249u8, 46u8, 232u8, 169u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(InsufficientAllowance), + ::core::stringify!(PermitExpired), + ::core::stringify!(Permit2AllowanceIsFixedAtInfinity), + ::core::stringify!(Unauthorized), + ::core::stringify!(AllowanceUnderflow), + ::core::stringify!(NotInitializing), + ::core::stringify!(ZeroAddress), + ::core::stringify!(InvalidPermit), + ::core::stringify!(TotalSupplyOverflow), + ::core::stringify!(InsufficientBalance), + ::core::stringify!(AllowanceOverflow), + ::core::stringify!(InvalidInitialization), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for OptimismSuperchainERC20Errors { + const NAME: &'static str = "OptimismSuperchainERC20Errors"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 12usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::AllowanceOverflow(_) => { + ::SELECTOR + } + Self::AllowanceUnderflow(_) => { + ::SELECTOR + } + Self::InsufficientAllowance(_) => { + ::SELECTOR + } + Self::InsufficientBalance(_) => { + ::SELECTOR + } + Self::InvalidInitialization(_) => { + ::SELECTOR + } + Self::InvalidPermit(_) => { + ::SELECTOR + } + Self::NotInitializing(_) => { + ::SELECTOR + } + Self::Permit2AllowanceIsFixedAtInfinity(_) => { + ::SELECTOR + } + Self::PermitExpired(_) => { + ::SELECTOR + } + Self::TotalSupplyOverflow(_) => { + ::SELECTOR + } + Self::Unauthorized(_) => { + ::SELECTOR + } + Self::ZeroAddress(_) => { + ::SELECTOR + } + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn InsufficientAllowance( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OptimismSuperchainERC20Errors::InsufficientAllowance) + } + InsufficientAllowance + }, + { + fn PermitExpired( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OptimismSuperchainERC20Errors::PermitExpired) + } + PermitExpired + }, + { + fn Permit2AllowanceIsFixedAtInfinity( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + OptimismSuperchainERC20Errors::Permit2AllowanceIsFixedAtInfinity, + ) + } + Permit2AllowanceIsFixedAtInfinity + }, + { + fn Unauthorized( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(OptimismSuperchainERC20Errors::Unauthorized) + } + Unauthorized + }, + { + fn AllowanceUnderflow( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OptimismSuperchainERC20Errors::AllowanceUnderflow) + } + AllowanceUnderflow + }, + { + fn NotInitializing( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OptimismSuperchainERC20Errors::NotInitializing) + } + NotInitializing + }, + { + fn ZeroAddress( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(OptimismSuperchainERC20Errors::ZeroAddress) + } + ZeroAddress + }, + { + fn InvalidPermit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OptimismSuperchainERC20Errors::InvalidPermit) + } + InvalidPermit + }, + { + fn TotalSupplyOverflow( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OptimismSuperchainERC20Errors::TotalSupplyOverflow) + } + TotalSupplyOverflow + }, + { + fn InsufficientBalance( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OptimismSuperchainERC20Errors::InsufficientBalance) + } + InsufficientBalance + }, + { + fn AllowanceOverflow( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OptimismSuperchainERC20Errors::AllowanceOverflow) + } + AllowanceOverflow + }, + { + fn InvalidInitialization( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OptimismSuperchainERC20Errors::InvalidInitialization) + } + InvalidInitialization + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn InsufficientAllowance( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismSuperchainERC20Errors::InsufficientAllowance) + } + InsufficientAllowance + }, + { + fn PermitExpired( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismSuperchainERC20Errors::PermitExpired) + } + PermitExpired + }, + { + fn Permit2AllowanceIsFixedAtInfinity( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + OptimismSuperchainERC20Errors::Permit2AllowanceIsFixedAtInfinity, + ) + } + Permit2AllowanceIsFixedAtInfinity + }, + { + fn Unauthorized( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismSuperchainERC20Errors::Unauthorized) + } + Unauthorized + }, + { + fn AllowanceUnderflow( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismSuperchainERC20Errors::AllowanceUnderflow) + } + AllowanceUnderflow + }, + { + fn NotInitializing( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismSuperchainERC20Errors::NotInitializing) + } + NotInitializing + }, + { + fn ZeroAddress( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismSuperchainERC20Errors::ZeroAddress) + } + ZeroAddress + }, + { + fn InvalidPermit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismSuperchainERC20Errors::InvalidPermit) + } + InvalidPermit + }, + { + fn TotalSupplyOverflow( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismSuperchainERC20Errors::TotalSupplyOverflow) + } + TotalSupplyOverflow + }, + { + fn InsufficientBalance( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismSuperchainERC20Errors::InsufficientBalance) + } + InsufficientBalance + }, + { + fn AllowanceOverflow( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismSuperchainERC20Errors::AllowanceOverflow) + } + AllowanceOverflow + }, + { + fn InvalidInitialization( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismSuperchainERC20Errors::InvalidInitialization) + } + InvalidInitialization + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::AllowanceOverflow(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::AllowanceUnderflow(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::InsufficientAllowance(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::InsufficientBalance(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::InvalidInitialization(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::InvalidPermit(inner) => { + ::abi_encoded_size(inner) + } + Self::NotInitializing(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::Permit2AllowanceIsFixedAtInfinity(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::PermitExpired(inner) => { + ::abi_encoded_size(inner) + } + Self::TotalSupplyOverflow(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::Unauthorized(inner) => { + ::abi_encoded_size(inner) + } + Self::ZeroAddress(inner) => { + ::abi_encoded_size(inner) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::AllowanceOverflow(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::AllowanceUnderflow(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InsufficientAllowance(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InsufficientBalance(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidInitialization(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidPermit(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::NotInitializing(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::Permit2AllowanceIsFixedAtInfinity(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::PermitExpired(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::TotalSupplyOverflow(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::Unauthorized(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ZeroAddress(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + } + } + } + ///Container for all the [`OptimismSuperchainERC20`](self) events. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum OptimismSuperchainERC20Events { + #[allow(missing_docs)] + Approval(Approval), + #[allow(missing_docs)] + Burn(Burn), + #[allow(missing_docs)] + CrosschainBurn(CrosschainBurn), + #[allow(missing_docs)] + CrosschainMint(CrosschainMint), + #[allow(missing_docs)] + Initialized(Initialized), + #[allow(missing_docs)] + Mint(Mint), + #[allow(missing_docs)] + Transfer(Transfer), + } + impl OptimismSuperchainERC20Events { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 32usize]] = &[ + [ + 15u8, 103u8, 152u8, 165u8, 96u8, 121u8, 58u8, 84u8, 195u8, 188u8, 254u8, + 134u8, 169u8, 60u8, 222u8, 30u8, 115u8, 8u8, 125u8, 148u8, 76u8, 14u8, + 162u8, 5u8, 68u8, 19u8, 125u8, 65u8, 33u8, 57u8, 104u8, 133u8, + ], + [ + 140u8, 91u8, 225u8, 229u8, 235u8, 236u8, 125u8, 91u8, 209u8, 79u8, 113u8, + 66u8, 125u8, 30u8, 132u8, 243u8, 221u8, 3u8, 20u8, 192u8, 247u8, 178u8, + 41u8, 30u8, 91u8, 32u8, 10u8, 200u8, 199u8, 195u8, 185u8, 37u8, + ], + [ + 185u8, 7u8, 149u8, 166u8, 102u8, 80u8, 21u8, 89u8, 131u8, 226u8, 66u8, + 202u8, 195u8, 225u8, 172u8, 26u8, 77u8, 194u8, 111u8, 142u8, 210u8, + 152u8, 127u8, 60u8, 228u8, 22u8, 163u8, 78u8, 0u8, 17u8, 31u8, 212u8, + ], + [ + 199u8, 245u8, 5u8, 178u8, 243u8, 113u8, 174u8, 33u8, 117u8, 238u8, 73u8, + 19u8, 244u8, 73u8, 158u8, 31u8, 38u8, 51u8, 167u8, 181u8, 147u8, 99u8, + 33u8, 238u8, 209u8, 205u8, 174u8, 182u8, 17u8, 81u8, 129u8, 210u8, + ], + [ + 204u8, 22u8, 245u8, 219u8, 180u8, 135u8, 50u8, 128u8, 129u8, 92u8, 30u8, + 224u8, 157u8, 189u8, 6u8, 115u8, 108u8, 255u8, 204u8, 24u8, 68u8, 18u8, + 207u8, 122u8, 113u8, 160u8, 253u8, 183u8, 93u8, 57u8, 124u8, 165u8, + ], + [ + 221u8, 242u8, 82u8, 173u8, 27u8, 226u8, 200u8, 155u8, 105u8, 194u8, + 176u8, 104u8, 252u8, 55u8, 141u8, 170u8, 149u8, 43u8, 167u8, 241u8, 99u8, + 196u8, 161u8, 22u8, 40u8, 245u8, 90u8, 77u8, 245u8, 35u8, 179u8, 239u8, + ], + [ + 222u8, 34u8, 186u8, 255u8, 3u8, 142u8, 58u8, 62u8, 8u8, 64u8, 124u8, + 189u8, 246u8, 23u8, 222u8, 237u8, 116u8, 232u8, 105u8, 167u8, 186u8, + 81u8, 125u8, 246u8, 17u8, 227u8, 49u8, 49u8, 198u8, 230u8, 234u8, 4u8, + ], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(Mint), + ::core::stringify!(Approval), + ::core::stringify!(CrosschainBurn), + ::core::stringify!(Initialized), + ::core::stringify!(Burn), + ::core::stringify!(Transfer), + ::core::stringify!(CrosschainMint), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolEventInterface for OptimismSuperchainERC20Events { + const NAME: &'static str = "OptimismSuperchainERC20Events"; + const COUNT: usize = 7usize; + fn decode_raw_log( + topics: &[alloy_sol_types::Word], + data: &[u8], + ) -> alloy_sol_types::Result { + match topics.first().copied() { + Some(::SIGNATURE_HASH) => { + ::decode_raw_log(topics, data) + .map(Self::Approval) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log(topics, data) + .map(Self::Burn) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::CrosschainBurn) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::CrosschainMint) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::Initialized) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log(topics, data) + .map(Self::Mint) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log(topics, data) + .map(Self::Transfer) + } + _ => { + alloy_sol_types::private::Err(alloy_sol_types::Error::InvalidLog { + name: ::NAME, + log: alloy_sol_types::private::Box::new( + alloy_sol_types::private::LogData::new_unchecked( + topics.to_vec(), + data.to_vec().into(), + ), + ), + }) + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for OptimismSuperchainERC20Events { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + match self { + Self::Approval(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::Burn(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::CrosschainBurn(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::CrosschainMint(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::Initialized(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::Mint(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::Transfer(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + } + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + match self { + Self::Approval(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::Burn(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::CrosschainBurn(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::CrosschainMint(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::Initialized(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::Mint(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::Transfer(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`OptimismSuperchainERC20`](self) contract instance. + +See the [wrapper's documentation](`OptimismSuperchainERC20Instance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> OptimismSuperchainERC20Instance { + OptimismSuperchainERC20Instance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + OptimismSuperchainERC20Instance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + OptimismSuperchainERC20Instance::::deploy_builder(__provider) + } + /**A [`OptimismSuperchainERC20`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`OptimismSuperchainERC20`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct OptimismSuperchainERC20Instance< + P, + N = alloy_contract::private::Ethereum, + > { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for OptimismSuperchainERC20Instance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("OptimismSuperchainERC20Instance") + .field(&self.address) + .finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > OptimismSuperchainERC20Instance { + /**Creates a new wrapper around an on-chain [`OptimismSuperchainERC20`](self) contract instance. + +See the [wrapper's documentation](`OptimismSuperchainERC20Instance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl OptimismSuperchainERC20Instance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> OptimismSuperchainERC20Instance { + OptimismSuperchainERC20Instance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > OptimismSuperchainERC20Instance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`DOMAIN_SEPARATOR`] function. + pub fn DOMAIN_SEPARATOR( + &self, + ) -> alloy_contract::SolCallBuilder<&P, DOMAIN_SEPARATORCall, N> { + self.call_builder(&DOMAIN_SEPARATORCall) + } + ///Creates a new call builder for the [`allowance`] function. + pub fn allowance( + &self, + owner: alloy::sol_types::private::Address, + spender: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, allowanceCall, N> { + self.call_builder(&allowanceCall { owner, spender }) + } + ///Creates a new call builder for the [`approve`] function. + pub fn approve( + &self, + spender: alloy::sol_types::private::Address, + amount: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, approveCall, N> { + self.call_builder(&approveCall { spender, amount }) + } + ///Creates a new call builder for the [`balanceOf`] function. + pub fn balanceOf( + &self, + owner: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, balanceOfCall, N> { + self.call_builder(&balanceOfCall { owner }) + } + ///Creates a new call builder for the [`burn`] function. + pub fn burn( + &self, + _from: alloy::sol_types::private::Address, + _amount: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, burnCall, N> { + self.call_builder(&burnCall { _from, _amount }) + } + ///Creates a new call builder for the [`crosschainBurn`] function. + pub fn crosschainBurn( + &self, + _from: alloy::sol_types::private::Address, + _amount: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, crosschainBurnCall, N> { + self.call_builder( + &crosschainBurnCall { + _from, + _amount, + }, + ) + } + ///Creates a new call builder for the [`crosschainMint`] function. + pub fn crosschainMint( + &self, + _to: alloy::sol_types::private::Address, + _amount: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, crosschainMintCall, N> { + self.call_builder(&crosschainMintCall { _to, _amount }) + } + ///Creates a new call builder for the [`decimals`] function. + pub fn decimals(&self) -> alloy_contract::SolCallBuilder<&P, decimalsCall, N> { + self.call_builder(&decimalsCall) + } + ///Creates a new call builder for the [`initialize`] function. + pub fn initialize( + &self, + _remoteToken: alloy::sol_types::private::Address, + _name: alloy::sol_types::private::String, + _symbol: alloy::sol_types::private::String, + _decimals: u8, + ) -> alloy_contract::SolCallBuilder<&P, initializeCall, N> { + self.call_builder( + &initializeCall { + _remoteToken, + _name, + _symbol, + _decimals, + }, + ) + } + ///Creates a new call builder for the [`mint`] function. + pub fn mint( + &self, + _to: alloy::sol_types::private::Address, + _amount: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, mintCall, N> { + self.call_builder(&mintCall { _to, _amount }) + } + ///Creates a new call builder for the [`name`] function. + pub fn name(&self) -> alloy_contract::SolCallBuilder<&P, nameCall, N> { + self.call_builder(&nameCall) + } + ///Creates a new call builder for the [`nonces`] function. + pub fn nonces( + &self, + owner: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, noncesCall, N> { + self.call_builder(&noncesCall { owner }) + } + ///Creates a new call builder for the [`permit`] function. + pub fn permit( + &self, + owner: alloy::sol_types::private::Address, + spender: alloy::sol_types::private::Address, + value: alloy::sol_types::private::primitives::aliases::U256, + deadline: alloy::sol_types::private::primitives::aliases::U256, + v: u8, + r: alloy::sol_types::private::FixedBytes<32>, + s: alloy::sol_types::private::FixedBytes<32>, + ) -> alloy_contract::SolCallBuilder<&P, permitCall, N> { + self.call_builder( + &permitCall { + owner, + spender, + value, + deadline, + v, + r, + s, + }, + ) + } + ///Creates a new call builder for the [`remoteToken`] function. + pub fn remoteToken( + &self, + ) -> alloy_contract::SolCallBuilder<&P, remoteTokenCall, N> { + self.call_builder(&remoteTokenCall) + } + ///Creates a new call builder for the [`supportsInterface`] function. + pub fn supportsInterface( + &self, + _interfaceId: alloy::sol_types::private::FixedBytes<4>, + ) -> alloy_contract::SolCallBuilder<&P, supportsInterfaceCall, N> { + self.call_builder( + &supportsInterfaceCall { + _interfaceId, + }, + ) + } + ///Creates a new call builder for the [`symbol`] function. + pub fn symbol(&self) -> alloy_contract::SolCallBuilder<&P, symbolCall, N> { + self.call_builder(&symbolCall) + } + ///Creates a new call builder for the [`totalSupply`] function. + pub fn totalSupply( + &self, + ) -> alloy_contract::SolCallBuilder<&P, totalSupplyCall, N> { + self.call_builder(&totalSupplyCall) + } + ///Creates a new call builder for the [`transfer`] function. + pub fn transfer( + &self, + to: alloy::sol_types::private::Address, + amount: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, transferCall, N> { + self.call_builder(&transferCall { to, amount }) + } + ///Creates a new call builder for the [`transferFrom`] function. + pub fn transferFrom( + &self, + from: alloy::sol_types::private::Address, + to: alloy::sol_types::private::Address, + amount: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, transferFromCall, N> { + self.call_builder( + &transferFromCall { + from, + to, + amount, + }, + ) + } + ///Creates a new call builder for the [`version`] function. + pub fn version(&self) -> alloy_contract::SolCallBuilder<&P, versionCall, N> { + self.call_builder(&versionCall) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > OptimismSuperchainERC20Instance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + ///Creates a new event filter for the [`Approval`] event. + pub fn Approval_filter(&self) -> alloy_contract::Event<&P, Approval, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`Burn`] event. + pub fn Burn_filter(&self) -> alloy_contract::Event<&P, Burn, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`CrosschainBurn`] event. + pub fn CrosschainBurn_filter( + &self, + ) -> alloy_contract::Event<&P, CrosschainBurn, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`CrosschainMint`] event. + pub fn CrosschainMint_filter( + &self, + ) -> alloy_contract::Event<&P, CrosschainMint, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`Initialized`] event. + pub fn Initialized_filter(&self) -> alloy_contract::Event<&P, Initialized, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`Mint`] event. + pub fn Mint_filter(&self) -> alloy_contract::Event<&P, Mint, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`Transfer`] event. + pub fn Transfer_filter(&self) -> alloy_contract::Event<&P, Transfer, N> { + self.event_filter::() + } + } +} diff --git a/bindings/rust/src/optimism_superchain_erc20_beacon.rs b/bindings/rust/src/optimism_superchain_erc20_beacon.rs new file mode 100644 index 000000000..4656693e3 --- /dev/null +++ b/bindings/rust/src/optimism_superchain_erc20_beacon.rs @@ -0,0 +1,738 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface OptimismSuperchainERC20Beacon { + function implementation() external pure returns (address); + function version() external view returns (string memory); +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "function", + "name": "implementation", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "version", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "view" + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod OptimismSuperchainERC20Beacon { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x608060405234801561001057600080fd5b5061012f806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c806354fd4d501461003b5780635c60da1b1461008d575b600080fd5b6100776040518060400160405280600581526020017f312e302e3100000000000000000000000000000000000000000000000000000081525081565b60405161008491906100af565b60405180910390f35b60405173b9415c6ca93bdc545d4c5177512fcc22efa38f288152602001610084565b600060208083528351808285015260005b818110156100dc578581018301518582016040015282016100c0565b818111156100ee576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01692909201604001939250505056fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[Pa\x01/\x80a\0 `\09`\0\xF3\xFE`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`\x046\x10a\x006W`\x005`\xE0\x1C\x80cT\xFDMP\x14a\0;W\x80c\\`\xDA\x1B\x14a\0\x8DW[`\0\x80\xFD[a\0w`@Q\x80`@\x01`@R\x80`\x05\x81R` \x01\x7F1.0.1\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\x81RP\x81V[`@Qa\0\x84\x91\x90a\0\xAFV[`@Q\x80\x91\x03\x90\xF3[`@Qs\xB9A\\l\xA9;\xDCT]LQwQ/\xCC\"\xEF\xA3\x8F(\x81R` \x01a\0\x84V[`\0` \x80\x83R\x83Q\x80\x82\x85\x01R`\0[\x81\x81\x10\x15a\0\xDCW\x85\x81\x01\x83\x01Q\x85\x82\x01`@\x01R\x82\x01a\0\xC0V[\x81\x81\x11\x15a\0\xEEW`\0`@\x83\x87\x01\x01R[P`\x1F\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x92\x90\x92\x01`@\x01\x93\x92PPPV\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x608060405234801561001057600080fd5b50600436106100365760003560e01c806354fd4d501461003b5780635c60da1b1461008d575b600080fd5b6100776040518060400160405280600581526020017f312e302e3100000000000000000000000000000000000000000000000000000081525081565b60405161008491906100af565b60405180910390f35b60405173b9415c6ca93bdc545d4c5177512fcc22efa38f288152602001610084565b600060208083528351808285015260005b818110156100dc578581018301518582016040015282016100c0565b818111156100ee576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01692909201604001939250505056fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`\x046\x10a\x006W`\x005`\xE0\x1C\x80cT\xFDMP\x14a\0;W\x80c\\`\xDA\x1B\x14a\0\x8DW[`\0\x80\xFD[a\0w`@Q\x80`@\x01`@R\x80`\x05\x81R` \x01\x7F1.0.1\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\x81RP\x81V[`@Qa\0\x84\x91\x90a\0\xAFV[`@Q\x80\x91\x03\x90\xF3[`@Qs\xB9A\\l\xA9;\xDCT]LQwQ/\xCC\"\xEF\xA3\x8F(\x81R` \x01a\0\x84V[`\0` \x80\x83R\x83Q\x80\x82\x85\x01R`\0[\x81\x81\x10\x15a\0\xDCW\x85\x81\x01\x83\x01Q\x85\x82\x01`@\x01R\x82\x01a\0\xC0V[\x81\x81\x11\x15a\0\xEEW`\0`@\x83\x87\x01\x01R[P`\x1F\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x92\x90\x92\x01`@\x01\x93\x92PPPV\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `implementation()` and selector `0x5c60da1b`. +```solidity +function implementation() external pure returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct implementationCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`implementation()`](implementationCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct implementationReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: implementationCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for implementationCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: implementationReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for implementationReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for implementationCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "implementation()"; + const SELECTOR: [u8; 4] = [92u8, 96u8, 218u8, 27u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: implementationReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: implementationReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `version()` and selector `0x54fd4d50`. +```solidity +function version() external view returns (string memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`version()`](versionCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for versionCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::String; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "version()"; + const SELECTOR: [u8; 4] = [84u8, 253u8, 77u8, 80u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + } + }; + ///Container for all the [`OptimismSuperchainERC20Beacon`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum OptimismSuperchainERC20BeaconCalls { + #[allow(missing_docs)] + implementation(implementationCall), + #[allow(missing_docs)] + version(versionCall), + } + impl OptimismSuperchainERC20BeaconCalls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [84u8, 253u8, 77u8, 80u8], + [92u8, 96u8, 218u8, 27u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(version), + ::core::stringify!(implementation), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for OptimismSuperchainERC20BeaconCalls { + const NAME: &'static str = "OptimismSuperchainERC20BeaconCalls"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 2usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::implementation(_) => { + ::SELECTOR + } + Self::version(_) => ::SELECTOR, + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(OptimismSuperchainERC20BeaconCalls::version) + } + version + }, + { + fn implementation( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OptimismSuperchainERC20BeaconCalls::implementation) + } + implementation + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismSuperchainERC20BeaconCalls::version) + } + version + }, + { + fn implementation( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismSuperchainERC20BeaconCalls::implementation) + } + implementation + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::implementation(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::version(inner) => { + ::abi_encoded_size(inner) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::implementation(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::version(inner) => { + ::abi_encode_raw(inner, out) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`OptimismSuperchainERC20Beacon`](self) contract instance. + +See the [wrapper's documentation](`OptimismSuperchainERC20BeaconInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> OptimismSuperchainERC20BeaconInstance { + OptimismSuperchainERC20BeaconInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + OptimismSuperchainERC20BeaconInstance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + OptimismSuperchainERC20BeaconInstance::::deploy_builder(__provider) + } + /**A [`OptimismSuperchainERC20Beacon`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`OptimismSuperchainERC20Beacon`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct OptimismSuperchainERC20BeaconInstance< + P, + N = alloy_contract::private::Ethereum, + > { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for OptimismSuperchainERC20BeaconInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("OptimismSuperchainERC20BeaconInstance") + .field(&self.address) + .finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > OptimismSuperchainERC20BeaconInstance { + /**Creates a new wrapper around an on-chain [`OptimismSuperchainERC20Beacon`](self) contract instance. + +See the [wrapper's documentation](`OptimismSuperchainERC20BeaconInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl OptimismSuperchainERC20BeaconInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider( + self, + ) -> OptimismSuperchainERC20BeaconInstance { + OptimismSuperchainERC20BeaconInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > OptimismSuperchainERC20BeaconInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`implementation`] function. + pub fn implementation( + &self, + ) -> alloy_contract::SolCallBuilder<&P, implementationCall, N> { + self.call_builder(&implementationCall) + } + ///Creates a new call builder for the [`version`] function. + pub fn version(&self) -> alloy_contract::SolCallBuilder<&P, versionCall, N> { + self.call_builder(&versionCall) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > OptimismSuperchainERC20BeaconInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + } +} diff --git a/bindings/rust/src/optimism_superchain_erc20_factory.rs b/bindings/rust/src/optimism_superchain_erc20_factory.rs new file mode 100644 index 000000000..274dd37ce --- /dev/null +++ b/bindings/rust/src/optimism_superchain_erc20_factory.rs @@ -0,0 +1,1284 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface OptimismSuperchainERC20Factory { + event OptimismSuperchainERC20Created(address indexed superchainToken, address indexed remoteToken, address deployer); + + function deploy(address _remoteToken, string memory _name, string memory _symbol, uint8 _decimals) external returns (address superchainERC20_); + function deployments(address _localToken) external view returns (address remoteToken_); + function version() external view returns (string memory); +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "function", + "name": "deploy", + "inputs": [ + { + "name": "_remoteToken", + "type": "address", + "internalType": "address" + }, + { + "name": "_name", + "type": "string", + "internalType": "string" + }, + { + "name": "_symbol", + "type": "string", + "internalType": "string" + }, + { + "name": "_decimals", + "type": "uint8", + "internalType": "uint8" + } + ], + "outputs": [ + { + "name": "superchainERC20_", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "deployments", + "inputs": [ + { + "name": "_localToken", + "type": "address", + "internalType": "address" + } + ], + "outputs": [ + { + "name": "remoteToken_", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "version", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "view" + }, + { + "type": "event", + "name": "OptimismSuperchainERC20Created", + "inputs": [ + { + "name": "superchainToken", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "remoteToken", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "deployer", + "type": "address", + "indexed": false, + "internalType": "address" + } + ], + "anonymous": false + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod OptimismSuperchainERC20Factory { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x6080604052348015600e575f80fd5b50610e8f8061001c5f395ff3fe608060405234801561000f575f80fd5b506004361061003f575f3560e01c8063316b37391461004357806354fd4d50146100a2578063ef26a315146100eb575b5f80fd5b610078610051366004610681565b5f6020819052908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b6100de6040518060400160405280600581526020017f312e302e3100000000000000000000000000000000000000000000000000000081525081565b60405161009991906106e6565b6100786100f93660046107cc565b5f80858585856040516024016101129493929190610853565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167ff6d2ee860000000000000000000000000000000000000000000000000000000017905290519192505f919061019c90820161064c565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe082820381018352601f9091011660408190526101f3907342000000000000000000000000000000000000279085906020016108a8565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529082905261022f92916020016108f5565b60405160208183030381529060405290505f878787876040516020016102589493929190610853565b60405160208183030381529060405280519060200120905061027b81835f610310565b73ffffffffffffffffffffffffffffffffffffffff8181165f818152602081815260409182902080547fffffffffffffffffffffffff000000000000000000000000000000000000000016948e1694851790559051338152939750919290917fc4dc49b8346732c19a032264daf2bebf08be752a393ea2a8519cd1953ef4d932910160405180910390a3505050949350505050565b5f806040518060400160405280601081526020017f67363d3d37363d34f03d5260086018f30000000000000000000000000000000081525090505f858251602084015ff5905073ffffffffffffffffffffffffffffffffffffffff81166103d8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f4445504c4f594d454e545f4641494c454400000000000000000000000000000060448201526064015b60405180910390fd5b6103e1866104e0565b92505f8173ffffffffffffffffffffffffffffffffffffffff16858760405161040a9190610909565b5f6040518083038185875af1925050503d805f8114610444576040519150601f19603f3d011682016040523d82523d5f602084013e610449565b606091505b50509050808015610470575073ffffffffffffffffffffffffffffffffffffffff84163b15155b6104d6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f494e495449414c495a4154494f4e5f4641494c4544000000000000000000000060448201526064016103cf565b5050509392505050565b604080518082018252601081527f67363d3d37363d34f03d5260086018f30000000000000000000000000000000060209182015290517fff00000000000000000000000000000000000000000000000000000000000000918101919091527fffffffffffffffffffffffffffffffffffffffff0000000000000000000000003060601b166021820152603581018290527f21c35dbe1b344a2488cf3321d6ce542f8e9f305544ff09e4993a62319a497c1f60558201525f9081906105bb906075015b6040516020818303038152906040528051906020012090565b6040517fd69400000000000000000000000000000000000000000000000000000000000060208201527fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606083901b1660228201527f01000000000000000000000000000000000000000000000000000000000000006036820152909150610645906037016105a2565b9392505050565b61056e8061091583390190565b803573ffffffffffffffffffffffffffffffffffffffff8116811461067c575f80fd5b919050565b5f60208284031215610691575f80fd5b61064582610659565b5f81518084528060208401602086015e5f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b602081525f610645602083018461069a565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f82601f830112610734575f80fd5b813567ffffffffffffffff8082111561074f5761074f6106f8565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908282118183101715610795576107956106f8565b816040528381528660208588010111156107ad575f80fd5b836020870160208301375f602085830101528094505050505092915050565b5f805f80608085870312156107df575f80fd5b6107e885610659565b9350602085013567ffffffffffffffff80821115610804575f80fd5b61081088838901610725565b94506040870135915080821115610825575f80fd5b5061083287828801610725565b925050606085013560ff81168114610848575f80fd5b939692955090935050565b73ffffffffffffffffffffffffffffffffffffffff85168152608060208201525f610881608083018661069a565b8281036040840152610893818661069a565b91505060ff8316606083015295945050505050565b73ffffffffffffffffffffffffffffffffffffffff83168152604060208201525f6108d6604083018461069a565b949350505050565b5f81518060208401855e5f93019283525090919050565b5f6108d661090383866108de565b846108de565b5f61064582846108de56fe60a060405260405161056e38038061056e83398101604081905261002291610354565b61002c828261003e565b506001600160a01b031660805261043f565b610047826100fb565b6040516001600160a01b038316907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e905f90a28051156100ef576100ea826001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100e49190610410565b82610209565b505050565b6100f761027c565b5050565b806001600160a01b03163b5f0361013557604051631933b43b60e21b81526001600160a01b03821660048201526024015b60405180910390fd5b807fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5080546001600160a01b0319166001600160a01b0392831617905560408051635c60da1b60e01b815290515f92841691635c60da1b9160048083019260209291908290030181865afa1580156101ae573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101d29190610410565b9050806001600160a01b03163b5f036100f757604051634c9c8ce360e01b81526001600160a01b038216600482015260240161012c565b60605f80846001600160a01b0316846040516102259190610429565b5f60405180830381855af49150503d805f811461025d576040519150601f19603f3d011682016040523d82523d5f602084013e610262565b606091505b50909250905061027385838361029d565b95945050505050565b341561029b5760405163b398979f60e01b815260040160405180910390fd5b565b6060826102b2576102ad826102fc565b6102f5565b81511580156102c957506001600160a01b0384163b155b156102f257604051639996b31560e01b81526001600160a01b038516600482015260240161012c565b50805b9392505050565b80511561030c5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b80516001600160a01b038116811461033b575f80fd5b919050565b634e487b7160e01b5f52604160045260245ffd5b5f8060408385031215610365575f80fd5b61036e83610325565b60208401519092506001600160401b038082111561038a575f80fd5b818501915085601f83011261039d575f80fd5b8151818111156103af576103af610340565b604051601f8201601f19908116603f011681019083821181831017156103d7576103d7610340565b816040528281528860208487010111156103ef575f80fd5b8260208601602083015e5f6020848301015280955050505050509250929050565b5f60208284031215610420575f80fd5b6102f582610325565b5f82518060208501845e5f920191825250919050565b6080516101186104565f395f602301526101185ff3fe608060405261000c61000e565b005b61001e610019610020565b6100b3565b565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561008a573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100ae91906100d1565b905090565b365f80375f80365f845af43d5f803e8080156100cd573d5ff35b3d5ffd5b5f602082840312156100e1575f80fd5b815173ffffffffffffffffffffffffffffffffffffffff81168114610104575f80fd5b939250505056fea164736f6c6343000819000aa164736f6c6343000819000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R4\x80\x15`\x0EW_\x80\xFD[Pa\x0E\x8F\x80a\0\x1C_9_\xF3\xFE`\x80`@R4\x80\x15a\0\x0FW_\x80\xFD[P`\x046\x10a\0?W_5`\xE0\x1C\x80c1k79\x14a\0CW\x80cT\xFDMP\x14a\0\xA2W\x80c\xEF&\xA3\x15\x14a\0\xEBW[_\x80\xFD[a\0xa\0Q6`\x04a\x06\x81V[_` \x81\x90R\x90\x81R`@\x90 Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[a\0\xDE`@Q\x80`@\x01`@R\x80`\x05\x81R` \x01\x7F1.0.1\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\x81RP\x81V[`@Qa\0\x99\x91\x90a\x06\xE6V[a\0xa\0\xF96`\x04a\x07\xCCV[_\x80\x85\x85\x85\x85`@Q`$\x01a\x01\x12\x94\x93\x92\x91\x90a\x08SV[`@\x80Q\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x81\x84\x03\x01\x81R\x91\x81R` \x80\x83\x01\x80Q{\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xF6\xD2\xEE\x86\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\x17\x90R\x90Q\x91\x92P_\x91\x90a\x01\x9C\x90\x82\x01a\x06LV[\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x82\x82\x03\x81\x01\x83R`\x1F\x90\x91\x01\x16`@\x81\x90Ra\x01\xF3\x90sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0'\x90\x85\x90` \x01a\x08\xA8V[`@\x80Q\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x81\x84\x03\x01\x81R\x90\x82\x90Ra\x02/\x92\x91` \x01a\x08\xF5V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x90P_\x87\x87\x87\x87`@Q` \x01a\x02X\x94\x93\x92\x91\x90a\x08SV[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 \x90Pa\x02{\x81\x83_a\x03\x10V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x81\x16_\x81\x81R` \x81\x81R`@\x91\x82\x90 \x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x94\x8E\x16\x94\x85\x17\x90U\x90Q3\x81R\x93\x97P\x91\x92\x90\x91\x7F\xC4\xDCI\xB84g2\xC1\x9A\x03\"d\xDA\xF2\xBE\xBF\x08\xBEu*9>\xA2\xA8Q\x9C\xD1\x95>\xF4\xD92\x91\x01`@Q\x80\x91\x03\x90\xA3PPP\x94\x93PPPPV[_\x80`@Q\x80`@\x01`@R\x80`\x10\x81R` \x01\x7Fg6==76=4\xF0=R`\x08`\x18\xF3\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RP\x90P_\x85\x82Q` \x84\x01_\xF5\x90Ps\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16a\x03\xD8W`@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\x82\x01R`\x11`$\x82\x01R\x7FDEPLOYMENT_FAILED\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`D\x82\x01R`d\x01[`@Q\x80\x91\x03\x90\xFD[a\x03\xE1\x86a\x04\xE0V[\x92P_\x81s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x85\x87`@Qa\x04\n\x91\x90a\t\tV[_`@Q\x80\x83\x03\x81\x85\x87Z\xF1\x92PPP=\x80_\x81\x14a\x04DW`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=_` \x84\x01>a\x04IV[``\x91P[PP\x90P\x80\x80\x15a\x04pWPs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x16;\x15\x15[a\x04\xD6W`@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\x82\x01R`\x15`$\x82\x01R\x7FINITIALIZATION_FAILED\0\0\0\0\0\0\0\0\0\0\0`D\x82\x01R`d\x01a\x03\xCFV[PPP\x93\x92PPPV[`@\x80Q\x80\x82\x01\x82R`\x10\x81R\x7Fg6==76=4\xF0=R`\x08`\x18\xF3\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0` \x91\x82\x01R\x90Q\x7F\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x91\x81\x01\x91\x90\x91R\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\x000``\x1B\x16`!\x82\x01R`5\x81\x01\x82\x90R\x7F!\xC3]\xBE\x1B4J$\x88\xCF3!\xD6\xCET/\x8E\x9F0UD\xFF\t\xE4\x99:b1\x9AI|\x1F`U\x82\x01R_\x90\x81\x90a\x05\xBB\x90`u\x01[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 \x90V[`@Q\x7F\xD6\x94\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0` \x82\x01R\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0``\x83\x90\x1B\x16`\"\x82\x01R\x7F\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`6\x82\x01R\x90\x91Pa\x06E\x90`7\x01a\x05\xA2V[\x93\x92PPPV[a\x05n\x80a\t\x15\x839\x01\x90V[\x805s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x06|W_\x80\xFD[\x91\x90PV[_` \x82\x84\x03\x12\x15a\x06\x91W_\x80\xFD[a\x06E\x82a\x06YV[_\x81Q\x80\x84R\x80` \x84\x01` \x86\x01^_` \x82\x86\x01\x01R` \x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0`\x1F\x83\x01\x16\x85\x01\x01\x91PP\x92\x91PPV[` \x81R_a\x06E` \x83\x01\x84a\x06\x9AV[\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_R`A`\x04R`$_\xFD[_\x82`\x1F\x83\x01\x12a\x074W_\x80\xFD[\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x07OWa\x07Oa\x06\xF8V[`@Q`\x1F\x83\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x90\x81\x16`?\x01\x16\x81\x01\x90\x82\x82\x11\x81\x83\x10\x17\x15a\x07\x95Wa\x07\x95a\x06\xF8V[\x81`@R\x83\x81R\x86` \x85\x88\x01\x01\x11\x15a\x07\xADW_\x80\xFD[\x83` \x87\x01` \x83\x017_` \x85\x83\x01\x01R\x80\x94PPPPP\x92\x91PPV[_\x80_\x80`\x80\x85\x87\x03\x12\x15a\x07\xDFW_\x80\xFD[a\x07\xE8\x85a\x06YV[\x93P` \x85\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x08\x04W_\x80\xFD[a\x08\x10\x88\x83\x89\x01a\x07%V[\x94P`@\x87\x015\x91P\x80\x82\x11\x15a\x08%W_\x80\xFD[Pa\x082\x87\x82\x88\x01a\x07%V[\x92PP``\x85\x015`\xFF\x81\x16\x81\x14a\x08HW_\x80\xFD[\x93\x96\x92\x95P\x90\x93PPV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x85\x16\x81R`\x80` \x82\x01R_a\x08\x81`\x80\x83\x01\x86a\x06\x9AV[\x82\x81\x03`@\x84\x01Ra\x08\x93\x81\x86a\x06\x9AV[\x91PP`\xFF\x83\x16``\x83\x01R\x95\x94PPPPPV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x16\x81R`@` \x82\x01R_a\x08\xD6`@\x83\x01\x84a\x06\x9AV[\x94\x93PPPPV[_\x81Q\x80` \x84\x01\x85^_\x93\x01\x92\x83RP\x90\x91\x90PV[_a\x08\xD6a\t\x03\x83\x86a\x08\xDEV[\x84a\x08\xDEV[_a\x06E\x82\x84a\x08\xDEV\xFE`\xA0`@R`@Qa\x05n8\x03\x80a\x05n\x839\x81\x01`@\x81\x90Ra\0\"\x91a\x03TV[a\0,\x82\x82a\0>V[P`\x01`\x01`\xA0\x1B\x03\x16`\x80Ra\x04?V[a\0G\x82a\0\xFBV[`@Q`\x01`\x01`\xA0\x1B\x03\x83\x16\x90\x7F\x1C\xF3\xB0:l\xF1\x9F\xA2\xBA\xBAM\xF1H\xE9\xDC\xAB\xED\xEA\x7F\x8A\\\x07\x84\x0E ~\\\x08\x9B\xE9]>\x90_\x90\xA2\x80Q\x15a\0\xEFWa\0\xEA\x82`\x01`\x01`\xA0\x1B\x03\x16c\\`\xDA\x1B`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\0\xC0W=_\x80>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\0\xE4\x91\x90a\x04\x10V[\x82a\x02\tV[PPPV[a\0\xF7a\x02|V[PPV[\x80`\x01`\x01`\xA0\x1B\x03\x16;_\x03a\x015W`@Qc\x193\xB4;`\xE2\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x82\x16`\x04\x82\x01R`$\x01[`@Q\x80\x91\x03\x90\xFD[\x80\x7F\xA3\xF0\xADt\xE5B:\xEB\xFD\x80\xD3\xEFCFW\x835\xA9\xA7*\xEA\xEEY\xFFl\xB3X+5\x13=P\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x92\x83\x16\x17\x90U`@\x80Qc\\`\xDA\x1B`\xE0\x1B\x81R\x90Q_\x92\x84\x16\x91c\\`\xDA\x1B\x91`\x04\x80\x83\x01\x92` \x92\x91\x90\x82\x90\x03\x01\x81\x86Z\xFA\x15\x80\x15a\x01\xAEW=_\x80>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x01\xD2\x91\x90a\x04\x10V[\x90P\x80`\x01`\x01`\xA0\x1B\x03\x16;_\x03a\0\xF7W`@QcL\x9C\x8C\xE3`\xE0\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x82\x16`\x04\x82\x01R`$\x01a\x01,V[``_\x80\x84`\x01`\x01`\xA0\x1B\x03\x16\x84`@Qa\x02%\x91\x90a\x04)V[_`@Q\x80\x83\x03\x81\x85Z\xF4\x91PP=\x80_\x81\x14a\x02]W`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=_` \x84\x01>a\x02bV[``\x91P[P\x90\x92P\x90Pa\x02s\x85\x83\x83a\x02\x9DV[\x95\x94PPPPPV[4\x15a\x02\x9BW`@Qc\xB3\x98\x97\x9F`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[V[``\x82a\x02\xB2Wa\x02\xAD\x82a\x02\xFCV[a\x02\xF5V[\x81Q\x15\x80\x15a\x02\xC9WP`\x01`\x01`\xA0\x1B\x03\x84\x16;\x15[\x15a\x02\xF2W`@Qc\x99\x96\xB3\x15`\xE0\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x85\x16`\x04\x82\x01R`$\x01a\x01,V[P\x80[\x93\x92PPPV[\x80Q\x15a\x03\x0CW\x80Q\x80\x82` \x01\xFD[`@Qc\n\x12\xF5!`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[\x80Q`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a\x03;W_\x80\xFD[\x91\x90PV[cNH{q`\xE0\x1B_R`A`\x04R`$_\xFD[_\x80`@\x83\x85\x03\x12\x15a\x03eW_\x80\xFD[a\x03n\x83a\x03%V[` \x84\x01Q\x90\x92P`\x01`\x01`@\x1B\x03\x80\x82\x11\x15a\x03\x8AW_\x80\xFD[\x81\x85\x01\x91P\x85`\x1F\x83\x01\x12a\x03\x9DW_\x80\xFD[\x81Q\x81\x81\x11\x15a\x03\xAFWa\x03\xAFa\x03@V[`@Q`\x1F\x82\x01`\x1F\x19\x90\x81\x16`?\x01\x16\x81\x01\x90\x83\x82\x11\x81\x83\x10\x17\x15a\x03\xD7Wa\x03\xD7a\x03@V[\x81`@R\x82\x81R\x88` \x84\x87\x01\x01\x11\x15a\x03\xEFW_\x80\xFD[\x82` \x86\x01` \x83\x01^_` \x84\x83\x01\x01R\x80\x95PPPPPP\x92P\x92\x90PV[_` \x82\x84\x03\x12\x15a\x04 W_\x80\xFD[a\x02\xF5\x82a\x03%V[_\x82Q\x80` \x85\x01\x84^_\x92\x01\x91\x82RP\x91\x90PV[`\x80Qa\x01\x18a\x04V_9_`#\x01Ra\x01\x18_\xF3\xFE`\x80`@Ra\0\x0Ca\0\x0EV[\0[a\0\x1Ea\0\x19a\0 V[a\0\xB3V[V[_\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\\`\xDA\x1B`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\0\x8AW=_\x80>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\0\xAE\x91\x90a\0\xD1V[\x90P\x90V[6_\x807_\x806_\x84Z\xF4=_\x80>\x80\x80\x15a\0\xCDW=_\xF3[=_\xFD[_` \x82\x84\x03\x12\x15a\0\xE1W_\x80\xFD[\x81Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x01\x04W_\x80\xFD[\x93\x92PPPV\xFE\xA1dsolcC\0\x08\x19\0\n\xA1dsolcC\0\x08\x19\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x608060405234801561000f575f80fd5b506004361061003f575f3560e01c8063316b37391461004357806354fd4d50146100a2578063ef26a315146100eb575b5f80fd5b610078610051366004610681565b5f6020819052908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b6100de6040518060400160405280600581526020017f312e302e3100000000000000000000000000000000000000000000000000000081525081565b60405161009991906106e6565b6100786100f93660046107cc565b5f80858585856040516024016101129493929190610853565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167ff6d2ee860000000000000000000000000000000000000000000000000000000017905290519192505f919061019c90820161064c565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe082820381018352601f9091011660408190526101f3907342000000000000000000000000000000000000279085906020016108a8565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529082905261022f92916020016108f5565b60405160208183030381529060405290505f878787876040516020016102589493929190610853565b60405160208183030381529060405280519060200120905061027b81835f610310565b73ffffffffffffffffffffffffffffffffffffffff8181165f818152602081815260409182902080547fffffffffffffffffffffffff000000000000000000000000000000000000000016948e1694851790559051338152939750919290917fc4dc49b8346732c19a032264daf2bebf08be752a393ea2a8519cd1953ef4d932910160405180910390a3505050949350505050565b5f806040518060400160405280601081526020017f67363d3d37363d34f03d5260086018f30000000000000000000000000000000081525090505f858251602084015ff5905073ffffffffffffffffffffffffffffffffffffffff81166103d8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f4445504c4f594d454e545f4641494c454400000000000000000000000000000060448201526064015b60405180910390fd5b6103e1866104e0565b92505f8173ffffffffffffffffffffffffffffffffffffffff16858760405161040a9190610909565b5f6040518083038185875af1925050503d805f8114610444576040519150601f19603f3d011682016040523d82523d5f602084013e610449565b606091505b50509050808015610470575073ffffffffffffffffffffffffffffffffffffffff84163b15155b6104d6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f494e495449414c495a4154494f4e5f4641494c4544000000000000000000000060448201526064016103cf565b5050509392505050565b604080518082018252601081527f67363d3d37363d34f03d5260086018f30000000000000000000000000000000060209182015290517fff00000000000000000000000000000000000000000000000000000000000000918101919091527fffffffffffffffffffffffffffffffffffffffff0000000000000000000000003060601b166021820152603581018290527f21c35dbe1b344a2488cf3321d6ce542f8e9f305544ff09e4993a62319a497c1f60558201525f9081906105bb906075015b6040516020818303038152906040528051906020012090565b6040517fd69400000000000000000000000000000000000000000000000000000000000060208201527fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606083901b1660228201527f01000000000000000000000000000000000000000000000000000000000000006036820152909150610645906037016105a2565b9392505050565b61056e8061091583390190565b803573ffffffffffffffffffffffffffffffffffffffff8116811461067c575f80fd5b919050565b5f60208284031215610691575f80fd5b61064582610659565b5f81518084528060208401602086015e5f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b602081525f610645602083018461069a565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f82601f830112610734575f80fd5b813567ffffffffffffffff8082111561074f5761074f6106f8565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908282118183101715610795576107956106f8565b816040528381528660208588010111156107ad575f80fd5b836020870160208301375f602085830101528094505050505092915050565b5f805f80608085870312156107df575f80fd5b6107e885610659565b9350602085013567ffffffffffffffff80821115610804575f80fd5b61081088838901610725565b94506040870135915080821115610825575f80fd5b5061083287828801610725565b925050606085013560ff81168114610848575f80fd5b939692955090935050565b73ffffffffffffffffffffffffffffffffffffffff85168152608060208201525f610881608083018661069a565b8281036040840152610893818661069a565b91505060ff8316606083015295945050505050565b73ffffffffffffffffffffffffffffffffffffffff83168152604060208201525f6108d6604083018461069a565b949350505050565b5f81518060208401855e5f93019283525090919050565b5f6108d661090383866108de565b846108de565b5f61064582846108de56fe60a060405260405161056e38038061056e83398101604081905261002291610354565b61002c828261003e565b506001600160a01b031660805261043f565b610047826100fb565b6040516001600160a01b038316907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e905f90a28051156100ef576100ea826001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100e49190610410565b82610209565b505050565b6100f761027c565b5050565b806001600160a01b03163b5f0361013557604051631933b43b60e21b81526001600160a01b03821660048201526024015b60405180910390fd5b807fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5080546001600160a01b0319166001600160a01b0392831617905560408051635c60da1b60e01b815290515f92841691635c60da1b9160048083019260209291908290030181865afa1580156101ae573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101d29190610410565b9050806001600160a01b03163b5f036100f757604051634c9c8ce360e01b81526001600160a01b038216600482015260240161012c565b60605f80846001600160a01b0316846040516102259190610429565b5f60405180830381855af49150503d805f811461025d576040519150601f19603f3d011682016040523d82523d5f602084013e610262565b606091505b50909250905061027385838361029d565b95945050505050565b341561029b5760405163b398979f60e01b815260040160405180910390fd5b565b6060826102b2576102ad826102fc565b6102f5565b81511580156102c957506001600160a01b0384163b155b156102f257604051639996b31560e01b81526001600160a01b038516600482015260240161012c565b50805b9392505050565b80511561030c5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b80516001600160a01b038116811461033b575f80fd5b919050565b634e487b7160e01b5f52604160045260245ffd5b5f8060408385031215610365575f80fd5b61036e83610325565b60208401519092506001600160401b038082111561038a575f80fd5b818501915085601f83011261039d575f80fd5b8151818111156103af576103af610340565b604051601f8201601f19908116603f011681019083821181831017156103d7576103d7610340565b816040528281528860208487010111156103ef575f80fd5b8260208601602083015e5f6020848301015280955050505050509250929050565b5f60208284031215610420575f80fd5b6102f582610325565b5f82518060208501845e5f920191825250919050565b6080516101186104565f395f602301526101185ff3fe608060405261000c61000e565b005b61001e610019610020565b6100b3565b565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561008a573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100ae91906100d1565b905090565b365f80375f80365f845af43d5f803e8080156100cd573d5ff35b3d5ffd5b5f602082840312156100e1575f80fd5b815173ffffffffffffffffffffffffffffffffffffffff81168114610104575f80fd5b939250505056fea164736f6c6343000819000aa164736f6c6343000819000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R4\x80\x15a\0\x0FW_\x80\xFD[P`\x046\x10a\0?W_5`\xE0\x1C\x80c1k79\x14a\0CW\x80cT\xFDMP\x14a\0\xA2W\x80c\xEF&\xA3\x15\x14a\0\xEBW[_\x80\xFD[a\0xa\0Q6`\x04a\x06\x81V[_` \x81\x90R\x90\x81R`@\x90 Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[a\0\xDE`@Q\x80`@\x01`@R\x80`\x05\x81R` \x01\x7F1.0.1\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\x81RP\x81V[`@Qa\0\x99\x91\x90a\x06\xE6V[a\0xa\0\xF96`\x04a\x07\xCCV[_\x80\x85\x85\x85\x85`@Q`$\x01a\x01\x12\x94\x93\x92\x91\x90a\x08SV[`@\x80Q\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x81\x84\x03\x01\x81R\x91\x81R` \x80\x83\x01\x80Q{\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xF6\xD2\xEE\x86\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\x17\x90R\x90Q\x91\x92P_\x91\x90a\x01\x9C\x90\x82\x01a\x06LV[\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x82\x82\x03\x81\x01\x83R`\x1F\x90\x91\x01\x16`@\x81\x90Ra\x01\xF3\x90sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0'\x90\x85\x90` \x01a\x08\xA8V[`@\x80Q\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x81\x84\x03\x01\x81R\x90\x82\x90Ra\x02/\x92\x91` \x01a\x08\xF5V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x90P_\x87\x87\x87\x87`@Q` \x01a\x02X\x94\x93\x92\x91\x90a\x08SV[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 \x90Pa\x02{\x81\x83_a\x03\x10V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x81\x16_\x81\x81R` \x81\x81R`@\x91\x82\x90 \x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x94\x8E\x16\x94\x85\x17\x90U\x90Q3\x81R\x93\x97P\x91\x92\x90\x91\x7F\xC4\xDCI\xB84g2\xC1\x9A\x03\"d\xDA\xF2\xBE\xBF\x08\xBEu*9>\xA2\xA8Q\x9C\xD1\x95>\xF4\xD92\x91\x01`@Q\x80\x91\x03\x90\xA3PPP\x94\x93PPPPV[_\x80`@Q\x80`@\x01`@R\x80`\x10\x81R` \x01\x7Fg6==76=4\xF0=R`\x08`\x18\xF3\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RP\x90P_\x85\x82Q` \x84\x01_\xF5\x90Ps\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16a\x03\xD8W`@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\x82\x01R`\x11`$\x82\x01R\x7FDEPLOYMENT_FAILED\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`D\x82\x01R`d\x01[`@Q\x80\x91\x03\x90\xFD[a\x03\xE1\x86a\x04\xE0V[\x92P_\x81s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x85\x87`@Qa\x04\n\x91\x90a\t\tV[_`@Q\x80\x83\x03\x81\x85\x87Z\xF1\x92PPP=\x80_\x81\x14a\x04DW`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=_` \x84\x01>a\x04IV[``\x91P[PP\x90P\x80\x80\x15a\x04pWPs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x16;\x15\x15[a\x04\xD6W`@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\x82\x01R`\x15`$\x82\x01R\x7FINITIALIZATION_FAILED\0\0\0\0\0\0\0\0\0\0\0`D\x82\x01R`d\x01a\x03\xCFV[PPP\x93\x92PPPV[`@\x80Q\x80\x82\x01\x82R`\x10\x81R\x7Fg6==76=4\xF0=R`\x08`\x18\xF3\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0` \x91\x82\x01R\x90Q\x7F\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x91\x81\x01\x91\x90\x91R\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\x000``\x1B\x16`!\x82\x01R`5\x81\x01\x82\x90R\x7F!\xC3]\xBE\x1B4J$\x88\xCF3!\xD6\xCET/\x8E\x9F0UD\xFF\t\xE4\x99:b1\x9AI|\x1F`U\x82\x01R_\x90\x81\x90a\x05\xBB\x90`u\x01[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 \x90V[`@Q\x7F\xD6\x94\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0` \x82\x01R\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0``\x83\x90\x1B\x16`\"\x82\x01R\x7F\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`6\x82\x01R\x90\x91Pa\x06E\x90`7\x01a\x05\xA2V[\x93\x92PPPV[a\x05n\x80a\t\x15\x839\x01\x90V[\x805s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x06|W_\x80\xFD[\x91\x90PV[_` \x82\x84\x03\x12\x15a\x06\x91W_\x80\xFD[a\x06E\x82a\x06YV[_\x81Q\x80\x84R\x80` \x84\x01` \x86\x01^_` \x82\x86\x01\x01R` \x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0`\x1F\x83\x01\x16\x85\x01\x01\x91PP\x92\x91PPV[` \x81R_a\x06E` \x83\x01\x84a\x06\x9AV[\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_R`A`\x04R`$_\xFD[_\x82`\x1F\x83\x01\x12a\x074W_\x80\xFD[\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x07OWa\x07Oa\x06\xF8V[`@Q`\x1F\x83\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x90\x81\x16`?\x01\x16\x81\x01\x90\x82\x82\x11\x81\x83\x10\x17\x15a\x07\x95Wa\x07\x95a\x06\xF8V[\x81`@R\x83\x81R\x86` \x85\x88\x01\x01\x11\x15a\x07\xADW_\x80\xFD[\x83` \x87\x01` \x83\x017_` \x85\x83\x01\x01R\x80\x94PPPPP\x92\x91PPV[_\x80_\x80`\x80\x85\x87\x03\x12\x15a\x07\xDFW_\x80\xFD[a\x07\xE8\x85a\x06YV[\x93P` \x85\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x08\x04W_\x80\xFD[a\x08\x10\x88\x83\x89\x01a\x07%V[\x94P`@\x87\x015\x91P\x80\x82\x11\x15a\x08%W_\x80\xFD[Pa\x082\x87\x82\x88\x01a\x07%V[\x92PP``\x85\x015`\xFF\x81\x16\x81\x14a\x08HW_\x80\xFD[\x93\x96\x92\x95P\x90\x93PPV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x85\x16\x81R`\x80` \x82\x01R_a\x08\x81`\x80\x83\x01\x86a\x06\x9AV[\x82\x81\x03`@\x84\x01Ra\x08\x93\x81\x86a\x06\x9AV[\x91PP`\xFF\x83\x16``\x83\x01R\x95\x94PPPPPV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x16\x81R`@` \x82\x01R_a\x08\xD6`@\x83\x01\x84a\x06\x9AV[\x94\x93PPPPV[_\x81Q\x80` \x84\x01\x85^_\x93\x01\x92\x83RP\x90\x91\x90PV[_a\x08\xD6a\t\x03\x83\x86a\x08\xDEV[\x84a\x08\xDEV[_a\x06E\x82\x84a\x08\xDEV\xFE`\xA0`@R`@Qa\x05n8\x03\x80a\x05n\x839\x81\x01`@\x81\x90Ra\0\"\x91a\x03TV[a\0,\x82\x82a\0>V[P`\x01`\x01`\xA0\x1B\x03\x16`\x80Ra\x04?V[a\0G\x82a\0\xFBV[`@Q`\x01`\x01`\xA0\x1B\x03\x83\x16\x90\x7F\x1C\xF3\xB0:l\xF1\x9F\xA2\xBA\xBAM\xF1H\xE9\xDC\xAB\xED\xEA\x7F\x8A\\\x07\x84\x0E ~\\\x08\x9B\xE9]>\x90_\x90\xA2\x80Q\x15a\0\xEFWa\0\xEA\x82`\x01`\x01`\xA0\x1B\x03\x16c\\`\xDA\x1B`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\0\xC0W=_\x80>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\0\xE4\x91\x90a\x04\x10V[\x82a\x02\tV[PPPV[a\0\xF7a\x02|V[PPV[\x80`\x01`\x01`\xA0\x1B\x03\x16;_\x03a\x015W`@Qc\x193\xB4;`\xE2\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x82\x16`\x04\x82\x01R`$\x01[`@Q\x80\x91\x03\x90\xFD[\x80\x7F\xA3\xF0\xADt\xE5B:\xEB\xFD\x80\xD3\xEFCFW\x835\xA9\xA7*\xEA\xEEY\xFFl\xB3X+5\x13=P\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x92\x83\x16\x17\x90U`@\x80Qc\\`\xDA\x1B`\xE0\x1B\x81R\x90Q_\x92\x84\x16\x91c\\`\xDA\x1B\x91`\x04\x80\x83\x01\x92` \x92\x91\x90\x82\x90\x03\x01\x81\x86Z\xFA\x15\x80\x15a\x01\xAEW=_\x80>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x01\xD2\x91\x90a\x04\x10V[\x90P\x80`\x01`\x01`\xA0\x1B\x03\x16;_\x03a\0\xF7W`@QcL\x9C\x8C\xE3`\xE0\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x82\x16`\x04\x82\x01R`$\x01a\x01,V[``_\x80\x84`\x01`\x01`\xA0\x1B\x03\x16\x84`@Qa\x02%\x91\x90a\x04)V[_`@Q\x80\x83\x03\x81\x85Z\xF4\x91PP=\x80_\x81\x14a\x02]W`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=_` \x84\x01>a\x02bV[``\x91P[P\x90\x92P\x90Pa\x02s\x85\x83\x83a\x02\x9DV[\x95\x94PPPPPV[4\x15a\x02\x9BW`@Qc\xB3\x98\x97\x9F`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[V[``\x82a\x02\xB2Wa\x02\xAD\x82a\x02\xFCV[a\x02\xF5V[\x81Q\x15\x80\x15a\x02\xC9WP`\x01`\x01`\xA0\x1B\x03\x84\x16;\x15[\x15a\x02\xF2W`@Qc\x99\x96\xB3\x15`\xE0\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x85\x16`\x04\x82\x01R`$\x01a\x01,V[P\x80[\x93\x92PPPV[\x80Q\x15a\x03\x0CW\x80Q\x80\x82` \x01\xFD[`@Qc\n\x12\xF5!`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[\x80Q`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a\x03;W_\x80\xFD[\x91\x90PV[cNH{q`\xE0\x1B_R`A`\x04R`$_\xFD[_\x80`@\x83\x85\x03\x12\x15a\x03eW_\x80\xFD[a\x03n\x83a\x03%V[` \x84\x01Q\x90\x92P`\x01`\x01`@\x1B\x03\x80\x82\x11\x15a\x03\x8AW_\x80\xFD[\x81\x85\x01\x91P\x85`\x1F\x83\x01\x12a\x03\x9DW_\x80\xFD[\x81Q\x81\x81\x11\x15a\x03\xAFWa\x03\xAFa\x03@V[`@Q`\x1F\x82\x01`\x1F\x19\x90\x81\x16`?\x01\x16\x81\x01\x90\x83\x82\x11\x81\x83\x10\x17\x15a\x03\xD7Wa\x03\xD7a\x03@V[\x81`@R\x82\x81R\x88` \x84\x87\x01\x01\x11\x15a\x03\xEFW_\x80\xFD[\x82` \x86\x01` \x83\x01^_` \x84\x83\x01\x01R\x80\x95PPPPPP\x92P\x92\x90PV[_` \x82\x84\x03\x12\x15a\x04 W_\x80\xFD[a\x02\xF5\x82a\x03%V[_\x82Q\x80` \x85\x01\x84^_\x92\x01\x91\x82RP\x91\x90PV[`\x80Qa\x01\x18a\x04V_9_`#\x01Ra\x01\x18_\xF3\xFE`\x80`@Ra\0\x0Ca\0\x0EV[\0[a\0\x1Ea\0\x19a\0 V[a\0\xB3V[V[_\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\\`\xDA\x1B`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\0\x8AW=_\x80>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\0\xAE\x91\x90a\0\xD1V[\x90P\x90V[6_\x807_\x806_\x84Z\xF4=_\x80>\x80\x80\x15a\0\xCDW=_\xF3[=_\xFD[_` \x82\x84\x03\x12\x15a\0\xE1W_\x80\xFD[\x81Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x01\x04W_\x80\xFD[\x93\x92PPPV\xFE\xA1dsolcC\0\x08\x19\0\n\xA1dsolcC\0\x08\x19\0\n", + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `OptimismSuperchainERC20Created(address,address,address)` and selector `0xc4dc49b8346732c19a032264daf2bebf08be752a393ea2a8519cd1953ef4d932`. +```solidity +event OptimismSuperchainERC20Created(address indexed superchainToken, address indexed remoteToken, address deployer); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct OptimismSuperchainERC20Created { + #[allow(missing_docs)] + pub superchainToken: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub remoteToken: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub deployer: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for OptimismSuperchainERC20Created { + type DataTuple<'a> = (alloy::sol_types::sol_data::Address,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "OptimismSuperchainERC20Created(address,address,address)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 196u8, 220u8, 73u8, 184u8, 52u8, 103u8, 50u8, 193u8, 154u8, 3u8, 34u8, + 100u8, 218u8, 242u8, 190u8, 191u8, 8u8, 190u8, 117u8, 42u8, 57u8, 62u8, + 162u8, 168u8, 81u8, 156u8, 209u8, 149u8, 62u8, 244u8, 217u8, 50u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + superchainToken: topics.1, + remoteToken: topics.2, + deployer: data.0, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + ::tokenize( + &self.deployer, + ), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + ( + Self::SIGNATURE_HASH.into(), + self.superchainToken.clone(), + self.remoteToken.clone(), + ) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.superchainToken, + ); + out[2usize] = ::encode_topic( + &self.remoteToken, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for OptimismSuperchainERC20Created { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&OptimismSuperchainERC20Created> + for alloy_sol_types::private::LogData { + #[inline] + fn from( + this: &OptimismSuperchainERC20Created, + ) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `deploy(address,string,string,uint8)` and selector `0xef26a315`. +```solidity +function deploy(address _remoteToken, string memory _name, string memory _symbol, uint8 _decimals) external returns (address superchainERC20_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct deployCall { + #[allow(missing_docs)] + pub _remoteToken: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _name: alloy::sol_types::private::String, + #[allow(missing_docs)] + pub _symbol: alloy::sol_types::private::String, + #[allow(missing_docs)] + pub _decimals: u8, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`deploy(address,string,string,uint8)`](deployCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct deployReturn { + #[allow(missing_docs)] + pub superchainERC20_: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::String, + alloy::sol_types::sol_data::String, + alloy::sol_types::sol_data::Uint<8>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::String, + alloy::sol_types::private::String, + u8, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: deployCall) -> Self { + (value._remoteToken, value._name, value._symbol, value._decimals) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for deployCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _remoteToken: tuple.0, + _name: tuple.1, + _symbol: tuple.2, + _decimals: tuple.3, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: deployReturn) -> Self { + (value.superchainERC20_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for deployReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { superchainERC20_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for deployCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::String, + alloy::sol_types::sol_data::String, + alloy::sol_types::sol_data::Uint<8>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "deploy(address,string,string,uint8)"; + const SELECTOR: [u8; 4] = [239u8, 38u8, 163u8, 21u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._remoteToken, + ), + ::tokenize( + &self._name, + ), + ::tokenize( + &self._symbol, + ), + as alloy_sol_types::SolType>::tokenize(&self._decimals), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: deployReturn = r.into(); + r.superchainERC20_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: deployReturn = r.into(); + r.superchainERC20_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `deployments(address)` and selector `0x316b3739`. +```solidity +function deployments(address _localToken) external view returns (address remoteToken_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct deploymentsCall { + #[allow(missing_docs)] + pub _localToken: alloy::sol_types::private::Address, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`deployments(address)`](deploymentsCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct deploymentsReturn { + #[allow(missing_docs)] + pub remoteToken_: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: deploymentsCall) -> Self { + (value._localToken,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for deploymentsCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _localToken: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: deploymentsReturn) -> Self { + (value.remoteToken_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for deploymentsReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { remoteToken_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for deploymentsCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "deployments(address)"; + const SELECTOR: [u8; 4] = [49u8, 107u8, 55u8, 57u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._localToken, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: deploymentsReturn = r.into(); + r.remoteToken_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: deploymentsReturn = r.into(); + r.remoteToken_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `version()` and selector `0x54fd4d50`. +```solidity +function version() external view returns (string memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`version()`](versionCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for versionCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::String; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "version()"; + const SELECTOR: [u8; 4] = [84u8, 253u8, 77u8, 80u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + } + }; + ///Container for all the [`OptimismSuperchainERC20Factory`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum OptimismSuperchainERC20FactoryCalls { + #[allow(missing_docs)] + deploy(deployCall), + #[allow(missing_docs)] + deployments(deploymentsCall), + #[allow(missing_docs)] + version(versionCall), + } + impl OptimismSuperchainERC20FactoryCalls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [49u8, 107u8, 55u8, 57u8], + [84u8, 253u8, 77u8, 80u8], + [239u8, 38u8, 163u8, 21u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(deployments), + ::core::stringify!(version), + ::core::stringify!(deploy), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for OptimismSuperchainERC20FactoryCalls { + const NAME: &'static str = "OptimismSuperchainERC20FactoryCalls"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 3usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::deploy(_) => ::SELECTOR, + Self::deployments(_) => { + ::SELECTOR + } + Self::version(_) => ::SELECTOR, + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn deployments( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(OptimismSuperchainERC20FactoryCalls::deployments) + } + deployments + }, + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(OptimismSuperchainERC20FactoryCalls::version) + } + version + }, + { + fn deploy( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(OptimismSuperchainERC20FactoryCalls::deploy) + } + deploy + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn deployments( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismSuperchainERC20FactoryCalls::deployments) + } + deployments + }, + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismSuperchainERC20FactoryCalls::version) + } + version + }, + { + fn deploy( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(OptimismSuperchainERC20FactoryCalls::deploy) + } + deploy + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::deploy(inner) => { + ::abi_encoded_size(inner) + } + Self::deployments(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::version(inner) => { + ::abi_encoded_size(inner) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::deploy(inner) => { + ::abi_encode_raw(inner, out) + } + Self::deployments(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::version(inner) => { + ::abi_encode_raw(inner, out) + } + } + } + } + ///Container for all the [`OptimismSuperchainERC20Factory`](self) events. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum OptimismSuperchainERC20FactoryEvents { + #[allow(missing_docs)] + OptimismSuperchainERC20Created(OptimismSuperchainERC20Created), + } + impl OptimismSuperchainERC20FactoryEvents { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 32usize]] = &[ + [ + 196u8, 220u8, 73u8, 184u8, 52u8, 103u8, 50u8, 193u8, 154u8, 3u8, 34u8, + 100u8, 218u8, 242u8, 190u8, 191u8, 8u8, 190u8, 117u8, 42u8, 57u8, 62u8, + 162u8, 168u8, 81u8, 156u8, 209u8, 149u8, 62u8, 244u8, 217u8, 50u8, + ], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(OptimismSuperchainERC20Created), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolEventInterface for OptimismSuperchainERC20FactoryEvents { + const NAME: &'static str = "OptimismSuperchainERC20FactoryEvents"; + const COUNT: usize = 1usize; + fn decode_raw_log( + topics: &[alloy_sol_types::Word], + data: &[u8], + ) -> alloy_sol_types::Result { + match topics.first().copied() { + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::OptimismSuperchainERC20Created) + } + _ => { + alloy_sol_types::private::Err(alloy_sol_types::Error::InvalidLog { + name: ::NAME, + log: alloy_sol_types::private::Box::new( + alloy_sol_types::private::LogData::new_unchecked( + topics.to_vec(), + data.to_vec().into(), + ), + ), + }) + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for OptimismSuperchainERC20FactoryEvents { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + match self { + Self::OptimismSuperchainERC20Created(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + } + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + match self { + Self::OptimismSuperchainERC20Created(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`OptimismSuperchainERC20Factory`](self) contract instance. + +See the [wrapper's documentation](`OptimismSuperchainERC20FactoryInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> OptimismSuperchainERC20FactoryInstance { + OptimismSuperchainERC20FactoryInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + OptimismSuperchainERC20FactoryInstance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + OptimismSuperchainERC20FactoryInstance::::deploy_builder(__provider) + } + /**A [`OptimismSuperchainERC20Factory`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`OptimismSuperchainERC20Factory`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct OptimismSuperchainERC20FactoryInstance< + P, + N = alloy_contract::private::Ethereum, + > { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for OptimismSuperchainERC20FactoryInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("OptimismSuperchainERC20FactoryInstance") + .field(&self.address) + .finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > OptimismSuperchainERC20FactoryInstance { + /**Creates a new wrapper around an on-chain [`OptimismSuperchainERC20Factory`](self) contract instance. + +See the [wrapper's documentation](`OptimismSuperchainERC20FactoryInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl OptimismSuperchainERC20FactoryInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider( + self, + ) -> OptimismSuperchainERC20FactoryInstance { + OptimismSuperchainERC20FactoryInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > OptimismSuperchainERC20FactoryInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`deploy_call`] function. + pub fn deploy_call( + &self, + _remoteToken: alloy::sol_types::private::Address, + _name: alloy::sol_types::private::String, + _symbol: alloy::sol_types::private::String, + _decimals: u8, + ) -> alloy_contract::SolCallBuilder<&P, deployCall, N> { + self.call_builder( + &deployCall { + _remoteToken, + _name, + _symbol, + _decimals, + }, + ) + } + ///Creates a new call builder for the [`deployments`] function. + pub fn deployments( + &self, + _localToken: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, deploymentsCall, N> { + self.call_builder(&deploymentsCall { _localToken }) + } + ///Creates a new call builder for the [`version`] function. + pub fn version(&self) -> alloy_contract::SolCallBuilder<&P, versionCall, N> { + self.call_builder(&versionCall) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > OptimismSuperchainERC20FactoryInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + ///Creates a new event filter for the [`OptimismSuperchainERC20Created`] event. + pub fn OptimismSuperchainERC20Created_filter( + &self, + ) -> alloy_contract::Event<&P, OptimismSuperchainERC20Created, N> { + self.event_filter::() + } + } +} diff --git a/bindings/rust/src/permissioned_dispute_game.rs b/bindings/rust/src/permissioned_dispute_game.rs new file mode 100644 index 000000000..0dc2f72e7 --- /dev/null +++ b/bindings/rust/src/permissioned_dispute_game.rs @@ -0,0 +1,20187 @@ +///Module containing a contract's types and functions. +/** + +```solidity +library FaultDisputeGame { + struct GameConstructorParams { GameType gameType; Claim absolutePrestate; uint256 maxGameDepth; uint256 splitDepth; Duration clockExtension; Duration maxClockDuration; address vm; address weth; address anchorStateRegistry; uint256 l2ChainId; } +} +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod FaultDisputeGame { + use super::*; + use alloy::sol_types as alloy_sol_types; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + /**```solidity +struct GameConstructorParams { GameType gameType; Claim absolutePrestate; uint256 maxGameDepth; uint256 splitDepth; Duration clockExtension; Duration maxClockDuration; address vm; address weth; address anchorStateRegistry; uint256 l2ChainId; } +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct GameConstructorParams { + #[allow(missing_docs)] + pub gameType: ::RustType, + #[allow(missing_docs)] + pub absolutePrestate: ::RustType, + #[allow(missing_docs)] + pub maxGameDepth: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub splitDepth: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub clockExtension: ::RustType, + #[allow(missing_docs)] + pub maxClockDuration: ::RustType, + #[allow(missing_docs)] + pub vm: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub weth: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub anchorStateRegistry: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub l2ChainId: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + GameType, + Claim, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + Duration, + Duration, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ::RustType, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::primitives::aliases::U256, + ::RustType, + ::RustType, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: GameConstructorParams) -> Self { + ( + value.gameType, + value.absolutePrestate, + value.maxGameDepth, + value.splitDepth, + value.clockExtension, + value.maxClockDuration, + value.vm, + value.weth, + value.anchorStateRegistry, + value.l2ChainId, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for GameConstructorParams { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + gameType: tuple.0, + absolutePrestate: tuple.1, + maxGameDepth: tuple.2, + splitDepth: tuple.3, + clockExtension: tuple.4, + maxClockDuration: tuple.5, + vm: tuple.6, + weth: tuple.7, + anchorStateRegistry: tuple.8, + l2ChainId: tuple.9, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolValue for GameConstructorParams { + type SolType = Self; + } + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for GameConstructorParams { + #[inline] + fn stv_to_tokens(&self) -> ::Token<'_> { + ( + ::tokenize(&self.gameType), + ::tokenize( + &self.absolutePrestate, + ), + as alloy_sol_types::SolType>::tokenize(&self.maxGameDepth), + as alloy_sol_types::SolType>::tokenize(&self.splitDepth), + ::tokenize( + &self.clockExtension, + ), + ::tokenize( + &self.maxClockDuration, + ), + ::tokenize( + &self.vm, + ), + ::tokenize( + &self.weth, + ), + ::tokenize( + &self.anchorStateRegistry, + ), + as alloy_sol_types::SolType>::tokenize(&self.l2ChainId), + ) + } + #[inline] + fn stv_abi_encoded_size(&self) -> usize { + if let Some(size) = ::ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encoded_size(&tuple) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + ::eip712_hash_struct(self) + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + if let Some(size) = ::PACKED_ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for GameConstructorParams { + type RustType = Self; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = ::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + as alloy_sol_types::SolType>::valid_token(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + let tuple = as alloy_sol_types::SolType>::detokenize(token); + >>::from(tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolStruct for GameConstructorParams { + const NAME: &'static str = "GameConstructorParams"; + #[inline] + fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> { + alloy_sol_types::private::Cow::Borrowed( + "GameConstructorParams(GameType gameType,Claim absolutePrestate,uint256 maxGameDepth,uint256 splitDepth,Duration clockExtension,Duration maxClockDuration,address vm,address weth,address anchorStateRegistry,uint256 l2ChainId)", + ) + } + #[inline] + fn eip712_components() -> alloy_sol_types::private::Vec< + alloy_sol_types::private::Cow<'static, str>, + > { + let mut components = alloy_sol_types::private::Vec::with_capacity(4); + components + .push(::eip712_root_type()); + components + .extend( + ::eip712_components(), + ); + components + .push(::eip712_root_type()); + components + .extend(::eip712_components()); + components + .push(::eip712_root_type()); + components + .extend( + ::eip712_components(), + ); + components + .push(::eip712_root_type()); + components + .extend( + ::eip712_components(), + ); + components + } + #[inline] + fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec { + [ + ::eip712_data_word( + &self.gameType, + ) + .0, + ::eip712_data_word( + &self.absolutePrestate, + ) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.maxGameDepth) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.splitDepth) + .0, + ::eip712_data_word( + &self.clockExtension, + ) + .0, + ::eip712_data_word( + &self.maxClockDuration, + ) + .0, + ::eip712_data_word( + &self.vm, + ) + .0, + ::eip712_data_word( + &self.weth, + ) + .0, + ::eip712_data_word( + &self.anchorStateRegistry, + ) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.l2ChainId) + .0, + ] + .concat() + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for GameConstructorParams { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + 0usize + + ::topic_preimage_length( + &rust.gameType, + ) + + ::topic_preimage_length( + &rust.absolutePrestate, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.maxGameDepth, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.splitDepth, + ) + + ::topic_preimage_length( + &rust.clockExtension, + ) + + ::topic_preimage_length( + &rust.maxClockDuration, + ) + + ::topic_preimage_length( + &rust.vm, + ) + + ::topic_preimage_length( + &rust.weth, + ) + + ::topic_preimage_length( + &rust.anchorStateRegistry, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.l2ChainId, + ) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + out.reserve( + ::topic_preimage_length(rust), + ); + ::encode_topic_preimage( + &rust.gameType, + out, + ); + ::encode_topic_preimage( + &rust.absolutePrestate, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.maxGameDepth, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.splitDepth, + out, + ); + ::encode_topic_preimage( + &rust.clockExtension, + out, + ); + ::encode_topic_preimage( + &rust.maxClockDuration, + out, + ); + ::encode_topic_preimage( + &rust.vm, + out, + ); + ::encode_topic_preimage( + &rust.weth, + out, + ); + ::encode_topic_preimage( + &rust.anchorStateRegistry, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.l2ChainId, + out, + ); + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + let mut out = alloy_sol_types::private::Vec::new(); + ::encode_topic_preimage( + rust, + &mut out, + ); + alloy_sol_types::abi::token::WordToken( + alloy_sol_types::private::keccak256(out), + ) + } + } + }; + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`FaultDisputeGame`](self) contract instance. + +See the [wrapper's documentation](`FaultDisputeGameInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> FaultDisputeGameInstance { + FaultDisputeGameInstance::::new(address, __provider) + } + /**A [`FaultDisputeGame`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`FaultDisputeGame`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct FaultDisputeGameInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for FaultDisputeGameInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("FaultDisputeGameInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > FaultDisputeGameInstance { + /**Creates a new wrapper around an on-chain [`FaultDisputeGame`](self) contract instance. + +See the [wrapper's documentation](`FaultDisputeGameInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl FaultDisputeGameInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> FaultDisputeGameInstance { + FaultDisputeGameInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > FaultDisputeGameInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > FaultDisputeGameInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + } +} +///Module containing a contract's types and functions. +/** + +```solidity +library Types { + struct OutputRootProof { bytes32 version; bytes32 stateRoot; bytes32 messagePasserStorageRoot; bytes32 latestBlockhash; } +} +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod Types { + use super::*; + use alloy::sol_types as alloy_sol_types; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**```solidity +struct OutputRootProof { bytes32 version; bytes32 stateRoot; bytes32 messagePasserStorageRoot; bytes32 latestBlockhash; } +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct OutputRootProof { + #[allow(missing_docs)] + pub version: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub stateRoot: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub messagePasserStorageRoot: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub latestBlockhash: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::FixedBytes<32>, + alloy::sol_types::private::FixedBytes<32>, + alloy::sol_types::private::FixedBytes<32>, + alloy::sol_types::private::FixedBytes<32>, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: OutputRootProof) -> Self { + ( + value.version, + value.stateRoot, + value.messagePasserStorageRoot, + value.latestBlockhash, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for OutputRootProof { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + version: tuple.0, + stateRoot: tuple.1, + messagePasserStorageRoot: tuple.2, + latestBlockhash: tuple.3, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolValue for OutputRootProof { + type SolType = Self; + } + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for OutputRootProof { + #[inline] + fn stv_to_tokens(&self) -> ::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.version), + as alloy_sol_types::SolType>::tokenize(&self.stateRoot), + as alloy_sol_types::SolType>::tokenize( + &self.messagePasserStorageRoot, + ), + as alloy_sol_types::SolType>::tokenize(&self.latestBlockhash), + ) + } + #[inline] + fn stv_abi_encoded_size(&self) -> usize { + if let Some(size) = ::ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encoded_size(&tuple) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + ::eip712_hash_struct(self) + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + if let Some(size) = ::PACKED_ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for OutputRootProof { + type RustType = Self; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = ::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + as alloy_sol_types::SolType>::valid_token(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + let tuple = as alloy_sol_types::SolType>::detokenize(token); + >>::from(tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolStruct for OutputRootProof { + const NAME: &'static str = "OutputRootProof"; + #[inline] + fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> { + alloy_sol_types::private::Cow::Borrowed( + "OutputRootProof(bytes32 version,bytes32 stateRoot,bytes32 messagePasserStorageRoot,bytes32 latestBlockhash)", + ) + } + #[inline] + fn eip712_components() -> alloy_sol_types::private::Vec< + alloy_sol_types::private::Cow<'static, str>, + > { + alloy_sol_types::private::Vec::new() + } + #[inline] + fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> { + ::eip712_root_type() + } + #[inline] + fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec { + [ + as alloy_sol_types::SolType>::eip712_data_word(&self.version) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.stateRoot) + .0, + as alloy_sol_types::SolType>::eip712_data_word( + &self.messagePasserStorageRoot, + ) + .0, + as alloy_sol_types::SolType>::eip712_data_word( + &self.latestBlockhash, + ) + .0, + ] + .concat() + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for OutputRootProof { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + 0usize + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.version, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.stateRoot, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.messagePasserStorageRoot, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.latestBlockhash, + ) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + out.reserve( + ::topic_preimage_length(rust), + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.version, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.stateRoot, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.messagePasserStorageRoot, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.latestBlockhash, + out, + ); + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + let mut out = alloy_sol_types::private::Vec::new(); + ::encode_topic_preimage( + rust, + &mut out, + ); + alloy_sol_types::abi::token::WordToken( + alloy_sol_types::private::keccak256(out), + ) + } + } + }; + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`Types`](self) contract instance. + +See the [wrapper's documentation](`TypesInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(address: alloy_sol_types::private::Address, __provider: P) -> TypesInstance { + TypesInstance::::new(address, __provider) + } + /**A [`Types`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`Types`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct TypesInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for TypesInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("TypesInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > TypesInstance { + /**Creates a new wrapper around an on-chain [`Types`](self) contract instance. + +See the [wrapper's documentation](`TypesInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl TypesInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> TypesInstance { + TypesInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > TypesInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > TypesInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + } +} +/** + +Generated by the following Solidity interface... +```solidity +library FaultDisputeGame { + struct GameConstructorParams { + GameType gameType; + Claim absolutePrestate; + uint256 maxGameDepth; + uint256 splitDepth; + Duration clockExtension; + Duration maxClockDuration; + address vm; + address weth; + address anchorStateRegistry; + uint256 l2ChainId; + } +} + +library Types { + struct OutputRootProof { + bytes32 version; + bytes32 stateRoot; + bytes32 messagePasserStorageRoot; + bytes32 latestBlockhash; + } +} + +interface PermissionedDisputeGame { + type BondDistributionMode is uint8; + type GameStatus is uint8; + type Claim is bytes32; + type Clock is uint128; + type Duration is uint64; + type GameType is uint32; + type Hash is bytes32; + type Position is uint128; + type Timestamp is uint64; + + error AlreadyInitialized(); + error AnchorRootNotFound(); + error BadAuth(); + error BadExtraData(); + error BlockNumberMatches(); + error BondTransferFailed(); + error CannotDefendRootClaim(); + error ClaimAboveSplit(); + error ClaimAlreadyExists(); + error ClaimAlreadyResolved(); + error ClockNotExpired(); + error ClockTimeExceeded(); + error ContentLengthMismatch(); + error DuplicateStep(); + error EmptyItem(); + error GameDepthExceeded(); + error GameNotFinalized(); + error GameNotInProgress(); + error GameNotResolved(); + error GamePaused(); + error IncorrectBondAmount(); + error InvalidBondDistributionMode(); + error InvalidChallengePeriod(); + error InvalidClockExtension(); + error InvalidDataRemainder(); + error InvalidDisputedClaimIndex(); + error InvalidHeader(); + error InvalidHeaderRLP(); + error InvalidLocalIdent(); + error InvalidOutputRootProof(); + error InvalidParent(); + error InvalidPrestate(); + error InvalidSplitDepth(); + error L2BlockNumberChallenged(); + error MaxDepthTooLarge(); + error NoCreditToClaim(); + error OutOfOrderResolution(); + error ReservedGameType(); + error UnexpectedList(); + error UnexpectedRootClaim(Claim rootClaim); + error UnexpectedString(); + error ValidStep(); + + event GameClosed(BondDistributionMode bondDistributionMode); + event Move(uint256 indexed parentIndex, Claim indexed claim, address indexed claimant); + event Resolved(GameStatus indexed status); + + constructor(FaultDisputeGame.GameConstructorParams _params, address _proposer, address _challenger); + + function absolutePrestate() external view returns (Claim absolutePrestate_); + function addLocalData(uint256 _ident, uint256 _execLeafIdx, uint256 _partOffset) external; + function anchorStateRegistry() external view returns (address registry_); + function attack(Claim _disputed, uint256 _parentIndex, Claim _claim) external payable; + function bondDistributionMode() external view returns (BondDistributionMode); + function challengeRootL2Block(Types.OutputRootProof memory _outputRootProof, bytes memory _headerRLP) external; + function challenger() external view returns (address challenger_); + function claimCredit(address _recipient) external; + function claimData(uint256) external view returns (uint32 parentIndex, address counteredBy, address claimant, uint128 bond, Claim claim, Position position, Clock clock); + function claimDataLen() external view returns (uint256 len_); + function claims(Hash) external view returns (bool); + function clockExtension() external view returns (Duration clockExtension_); + function closeGame() external; + function createdAt() external view returns (Timestamp); + function credit(address _recipient) external view returns (uint256 credit_); + function defend(Claim _disputed, uint256 _parentIndex, Claim _claim) external payable; + function extraData() external pure returns (bytes memory extraData_); + function gameCreator() external pure returns (address creator_); + function gameData() external view returns (GameType gameType_, Claim rootClaim_, bytes memory extraData_); + function gameType() external view returns (GameType gameType_); + function getChallengerDuration(uint256 _claimIndex) external view returns (Duration duration_); + function getNumToResolve(uint256 _claimIndex) external view returns (uint256 numRemainingChildren_); + function getRequiredBond(Position _position) external view returns (uint256 requiredBond_); + function hasUnlockedCredit(address) external view returns (bool); + function initialize() external payable; + function l1Head() external pure returns (Hash l1Head_); + function l2BlockNumber() external pure returns (uint256 l2BlockNumber_); + function l2BlockNumberChallenged() external view returns (bool); + function l2BlockNumberChallenger() external view returns (address); + function l2ChainId() external view returns (uint256 l2ChainId_); + function l2SequenceNumber() external pure returns (uint256 l2SequenceNumber_); + function maxClockDuration() external view returns (Duration maxClockDuration_); + function maxGameDepth() external view returns (uint256 maxGameDepth_); + function move(Claim _disputed, uint256 _challengeIndex, Claim _claim, bool _isAttack) external payable; + function normalModeCredit(address) external view returns (uint256); + function proposer() external view returns (address proposer_); + function refundModeCredit(address) external view returns (uint256); + function resolutionCheckpoints(uint256) external view returns (bool initialCheckpointComplete, uint32 subgameIndex, Position leftmostPosition, address counteredBy); + function resolve() external returns (GameStatus status_); + function resolveClaim(uint256 _claimIndex, uint256 _numToResolve) external; + function resolvedAt() external view returns (Timestamp); + function resolvedSubgames(uint256) external view returns (bool); + function rootClaim() external pure returns (Claim rootClaim_); + function splitDepth() external view returns (uint256 splitDepth_); + function startingBlockNumber() external view returns (uint256 startingBlockNumber_); + function startingOutputRoot() external view returns (Hash root, uint256 l2SequenceNumber); + function startingRootHash() external view returns (Hash startingRootHash_); + function status() external view returns (GameStatus); + function step(uint256 _claimIndex, bool _isAttack, bytes memory _stateData, bytes memory _proof) external; + function subgames(uint256, uint256) external view returns (uint256); + function version() external pure returns (string memory); + function vm() external view returns (address vm_); + function wasRespectedGameTypeWhenCreated() external view returns (bool); + function weth() external view returns (address weth_); +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "constructor", + "inputs": [ + { + "name": "_params", + "type": "tuple", + "internalType": "struct FaultDisputeGame.GameConstructorParams", + "components": [ + { + "name": "gameType", + "type": "uint32", + "internalType": "GameType" + }, + { + "name": "absolutePrestate", + "type": "bytes32", + "internalType": "Claim" + }, + { + "name": "maxGameDepth", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "splitDepth", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "clockExtension", + "type": "uint64", + "internalType": "Duration" + }, + { + "name": "maxClockDuration", + "type": "uint64", + "internalType": "Duration" + }, + { + "name": "vm", + "type": "address", + "internalType": "contract IBigStepper" + }, + { + "name": "weth", + "type": "address", + "internalType": "contract IDelayedWETH" + }, + { + "name": "anchorStateRegistry", + "type": "address", + "internalType": "contract IAnchorStateRegistry" + }, + { + "name": "l2ChainId", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { + "name": "_proposer", + "type": "address", + "internalType": "address" + }, + { + "name": "_challenger", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "absolutePrestate", + "inputs": [], + "outputs": [ + { + "name": "absolutePrestate_", + "type": "bytes32", + "internalType": "Claim" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "addLocalData", + "inputs": [ + { + "name": "_ident", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_execLeafIdx", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_partOffset", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "anchorStateRegistry", + "inputs": [], + "outputs": [ + { + "name": "registry_", + "type": "address", + "internalType": "contract IAnchorStateRegistry" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "attack", + "inputs": [ + { + "name": "_disputed", + "type": "bytes32", + "internalType": "Claim" + }, + { + "name": "_parentIndex", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_claim", + "type": "bytes32", + "internalType": "Claim" + } + ], + "outputs": [], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "bondDistributionMode", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint8", + "internalType": "enum BondDistributionMode" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "challengeRootL2Block", + "inputs": [ + { + "name": "_outputRootProof", + "type": "tuple", + "internalType": "struct Types.OutputRootProof", + "components": [ + { + "name": "version", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "stateRoot", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "messagePasserStorageRoot", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "latestBlockhash", + "type": "bytes32", + "internalType": "bytes32" + } + ] + }, + { + "name": "_headerRLP", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "challenger", + "inputs": [], + "outputs": [ + { + "name": "challenger_", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "claimCredit", + "inputs": [ + { + "name": "_recipient", + "type": "address", + "internalType": "address" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "claimData", + "inputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "parentIndex", + "type": "uint32", + "internalType": "uint32" + }, + { + "name": "counteredBy", + "type": "address", + "internalType": "address" + }, + { + "name": "claimant", + "type": "address", + "internalType": "address" + }, + { + "name": "bond", + "type": "uint128", + "internalType": "uint128" + }, + { + "name": "claim", + "type": "bytes32", + "internalType": "Claim" + }, + { + "name": "position", + "type": "uint128", + "internalType": "Position" + }, + { + "name": "clock", + "type": "uint128", + "internalType": "Clock" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "claimDataLen", + "inputs": [], + "outputs": [ + { + "name": "len_", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "claims", + "inputs": [ + { + "name": "", + "type": "bytes32", + "internalType": "Hash" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "clockExtension", + "inputs": [], + "outputs": [ + { + "name": "clockExtension_", + "type": "uint64", + "internalType": "Duration" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "closeGame", + "inputs": [], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "createdAt", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint64", + "internalType": "Timestamp" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "credit", + "inputs": [ + { + "name": "_recipient", + "type": "address", + "internalType": "address" + } + ], + "outputs": [ + { + "name": "credit_", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "defend", + "inputs": [ + { + "name": "_disputed", + "type": "bytes32", + "internalType": "Claim" + }, + { + "name": "_parentIndex", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_claim", + "type": "bytes32", + "internalType": "Claim" + } + ], + "outputs": [], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "extraData", + "inputs": [], + "outputs": [ + { + "name": "extraData_", + "type": "bytes", + "internalType": "bytes" + } + ], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "gameCreator", + "inputs": [], + "outputs": [ + { + "name": "creator_", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "gameData", + "inputs": [], + "outputs": [ + { + "name": "gameType_", + "type": "uint32", + "internalType": "GameType" + }, + { + "name": "rootClaim_", + "type": "bytes32", + "internalType": "Claim" + }, + { + "name": "extraData_", + "type": "bytes", + "internalType": "bytes" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "gameType", + "inputs": [], + "outputs": [ + { + "name": "gameType_", + "type": "uint32", + "internalType": "GameType" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "getChallengerDuration", + "inputs": [ + { + "name": "_claimIndex", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "duration_", + "type": "uint64", + "internalType": "Duration" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "getNumToResolve", + "inputs": [ + { + "name": "_claimIndex", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "numRemainingChildren_", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "getRequiredBond", + "inputs": [ + { + "name": "_position", + "type": "uint128", + "internalType": "Position" + } + ], + "outputs": [ + { + "name": "requiredBond_", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "hasUnlockedCredit", + "inputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "initialize", + "inputs": [], + "outputs": [], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "l1Head", + "inputs": [], + "outputs": [ + { + "name": "l1Head_", + "type": "bytes32", + "internalType": "Hash" + } + ], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "l2BlockNumber", + "inputs": [], + "outputs": [ + { + "name": "l2BlockNumber_", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "l2BlockNumberChallenged", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "l2BlockNumberChallenger", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "l2ChainId", + "inputs": [], + "outputs": [ + { + "name": "l2ChainId_", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "l2SequenceNumber", + "inputs": [], + "outputs": [ + { + "name": "l2SequenceNumber_", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "maxClockDuration", + "inputs": [], + "outputs": [ + { + "name": "maxClockDuration_", + "type": "uint64", + "internalType": "Duration" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "maxGameDepth", + "inputs": [], + "outputs": [ + { + "name": "maxGameDepth_", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "move", + "inputs": [ + { + "name": "_disputed", + "type": "bytes32", + "internalType": "Claim" + }, + { + "name": "_challengeIndex", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_claim", + "type": "bytes32", + "internalType": "Claim" + }, + { + "name": "_isAttack", + "type": "bool", + "internalType": "bool" + } + ], + "outputs": [], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "normalModeCredit", + "inputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "proposer", + "inputs": [], + "outputs": [ + { + "name": "proposer_", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "refundModeCredit", + "inputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "resolutionCheckpoints", + "inputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "initialCheckpointComplete", + "type": "bool", + "internalType": "bool" + }, + { + "name": "subgameIndex", + "type": "uint32", + "internalType": "uint32" + }, + { + "name": "leftmostPosition", + "type": "uint128", + "internalType": "Position" + }, + { + "name": "counteredBy", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "resolve", + "inputs": [], + "outputs": [ + { + "name": "status_", + "type": "uint8", + "internalType": "enum GameStatus" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "resolveClaim", + "inputs": [ + { + "name": "_claimIndex", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_numToResolve", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "resolvedAt", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint64", + "internalType": "Timestamp" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "resolvedSubgames", + "inputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "rootClaim", + "inputs": [], + "outputs": [ + { + "name": "rootClaim_", + "type": "bytes32", + "internalType": "Claim" + } + ], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "splitDepth", + "inputs": [], + "outputs": [ + { + "name": "splitDepth_", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "startingBlockNumber", + "inputs": [], + "outputs": [ + { + "name": "startingBlockNumber_", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "startingOutputRoot", + "inputs": [], + "outputs": [ + { + "name": "root", + "type": "bytes32", + "internalType": "Hash" + }, + { + "name": "l2SequenceNumber", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "startingRootHash", + "inputs": [], + "outputs": [ + { + "name": "startingRootHash_", + "type": "bytes32", + "internalType": "Hash" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "status", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint8", + "internalType": "enum GameStatus" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "step", + "inputs": [ + { + "name": "_claimIndex", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_isAttack", + "type": "bool", + "internalType": "bool" + }, + { + "name": "_stateData", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "_proof", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "subgames", + "inputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "version", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "vm", + "inputs": [], + "outputs": [ + { + "name": "vm_", + "type": "address", + "internalType": "contract IBigStepper" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "wasRespectedGameTypeWhenCreated", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "weth", + "inputs": [], + "outputs": [ + { + "name": "weth_", + "type": "address", + "internalType": "contract IDelayedWETH" + } + ], + "stateMutability": "view" + }, + { + "type": "event", + "name": "GameClosed", + "inputs": [ + { + "name": "bondDistributionMode", + "type": "uint8", + "indexed": false, + "internalType": "enum BondDistributionMode" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "Move", + "inputs": [ + { + "name": "parentIndex", + "type": "uint256", + "indexed": true, + "internalType": "uint256" + }, + { + "name": "claim", + "type": "bytes32", + "indexed": true, + "internalType": "Claim" + }, + { + "name": "claimant", + "type": "address", + "indexed": true, + "internalType": "address" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "Resolved", + "inputs": [ + { + "name": "status", + "type": "uint8", + "indexed": true, + "internalType": "enum GameStatus" + } + ], + "anonymous": false + }, + { + "type": "error", + "name": "AlreadyInitialized", + "inputs": [] + }, + { + "type": "error", + "name": "AnchorRootNotFound", + "inputs": [] + }, + { + "type": "error", + "name": "BadAuth", + "inputs": [] + }, + { + "type": "error", + "name": "BadExtraData", + "inputs": [] + }, + { + "type": "error", + "name": "BlockNumberMatches", + "inputs": [] + }, + { + "type": "error", + "name": "BondTransferFailed", + "inputs": [] + }, + { + "type": "error", + "name": "CannotDefendRootClaim", + "inputs": [] + }, + { + "type": "error", + "name": "ClaimAboveSplit", + "inputs": [] + }, + { + "type": "error", + "name": "ClaimAlreadyExists", + "inputs": [] + }, + { + "type": "error", + "name": "ClaimAlreadyResolved", + "inputs": [] + }, + { + "type": "error", + "name": "ClockNotExpired", + "inputs": [] + }, + { + "type": "error", + "name": "ClockTimeExceeded", + "inputs": [] + }, + { + "type": "error", + "name": "ContentLengthMismatch", + "inputs": [] + }, + { + "type": "error", + "name": "DuplicateStep", + "inputs": [] + }, + { + "type": "error", + "name": "EmptyItem", + "inputs": [] + }, + { + "type": "error", + "name": "GameDepthExceeded", + "inputs": [] + }, + { + "type": "error", + "name": "GameNotFinalized", + "inputs": [] + }, + { + "type": "error", + "name": "GameNotInProgress", + "inputs": [] + }, + { + "type": "error", + "name": "GameNotResolved", + "inputs": [] + }, + { + "type": "error", + "name": "GamePaused", + "inputs": [] + }, + { + "type": "error", + "name": "IncorrectBondAmount", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidBondDistributionMode", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidChallengePeriod", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidClockExtension", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidDataRemainder", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidDisputedClaimIndex", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidHeader", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidHeaderRLP", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidLocalIdent", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidOutputRootProof", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidParent", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidPrestate", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidSplitDepth", + "inputs": [] + }, + { + "type": "error", + "name": "L2BlockNumberChallenged", + "inputs": [] + }, + { + "type": "error", + "name": "MaxDepthTooLarge", + "inputs": [] + }, + { + "type": "error", + "name": "NoCreditToClaim", + "inputs": [] + }, + { + "type": "error", + "name": "OutOfOrderResolution", + "inputs": [] + }, + { + "type": "error", + "name": "ReservedGameType", + "inputs": [] + }, + { + "type": "error", + "name": "UnexpectedList", + "inputs": [] + }, + { + "type": "error", + "name": "UnexpectedRootClaim", + "inputs": [ + { + "name": "rootClaim", + "type": "bytes32", + "internalType": "Claim" + } + ] + }, + { + "type": "error", + "name": "UnexpectedString", + "inputs": [] + }, + { + "type": "error", + "name": "ValidStep", + "inputs": [] + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod PermissionedDisputeGame { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x6102006040523480156200001257600080fd5b50604051620065483803806200654883398101604081905262000035916200053c565b82620000446001607e6200064b565b60ff16816040015111156200006c57604051633beff19960e11b815260040160405180910390fd5b60001981606001511480620000965750604081015160608201516200009390600162000671565b10155b15620000b55760405163e62ccf3960e01b815260040160405180910390fd5b600281606001511015620000dc5760405163e62ccf3960e01b815260040160405180910390fd5b6001600160401b0380168160c001516001600160a01b0316637dc0d1d06040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000129573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200014f91906200068c565b6001600160a01b031663f3f480d96040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200018d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001b39190620006ac565b1115620001d35760405163b4e1243360e01b815260040160405180910390fd5b6000620001f882608001516001600160401b03166200048e60201b62000cec1760201c565b6200020e906001600160401b03166002620006c6565b905060008260c001516001600160a01b0316637dc0d1d06040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000255573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200027b91906200068c565b6001600160a01b031663f3f480d96040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002b9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002df9190620006ac565b6200030284608001516001600160401b03166200048e60201b62000cec1760201c565b6001600160401b031662000317919062000671565b905060006200033283836200049160201b6200283e1760201c565b90506001600160401b038111156200035d5760405163235dfb2b60e21b815260040160405180910390fd5b620003808460a001516001600160401b03166200048e60201b62000cec1760201c565b6001600160401b0316816001600160401b03161115620003b35760405163235dfb2b60e21b815260040160405180910390fd5b63ffffffff8016620003da856000015163ffffffff166200048e60201b62000cec1760201c565b63ffffffff1603620003ff5760405163073ed16760e31b815260040160405180910390fd5b5050815163ffffffff1661012090815260208301516080908152604084015160a0908152606085015160c0908152918501516001600160401b039081166101a052908501511660e0908152908401516001600160a01b03908116610100908152918501518116610140529084015181166101605292015161018052509182166101c052166101e05250620006e8565b90565b600081831015620004a35781620004a5565b825b9392505050565b60405161014081016001600160401b0381118282101715620004de57634e487b7160e01b600052604160045260246000fd5b60405290565b805163ffffffff81168114620004f957600080fd5b919050565b80516001600160401b0381168114620004f957600080fd5b6001600160a01b03811681146200052c57600080fd5b50565b8051620004f98162000516565b60008060008385036101808112156200055457600080fd5b610140808212156200056557600080fd5b6200056f620004ac565b91506200057c86620004e4565b8252602086015160208301526040860151604083015260608601516060830152620005aa60808701620004fe565b6080830152620005bd60a08701620004fe565b60a0830152620005d060c087016200052f565b60c0830152620005e360e087016200052f565b60e0830152610100620005f88188016200052f565b8184015250610120808701518184015250819450620006198187016200052f565b935050506200062c61016085016200052f565b90509250925092565b634e487b7160e01b600052601160045260246000fd5b600060ff821660ff84168082101562000668576200066862000635565b90039392505050565b6000821982111562000687576200068762000635565b500190565b6000602082840312156200069f57600080fd5b8151620004a58162000516565b600060208284031215620006bf57600080fd5b5051919050565b6000816000190483118215151615620006e357620006e362000635565b500290565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c0516101e051615c85620008c36000396000818161061c01528181611a4a01526123b001526000818161090d01528181611a1801528181611eeb015261237e015260008181610778015281816130ed01528181613158015261318b015260008181610ac5015261277c0152600081816106ee01528181611b4801528181611c8c01528181611d6601528181611df5015281816135fa0152613aad0152600081816105a90152818161182601528181611922015281816134f401526139b4015260008181610948015281816127fe0152613a840152600081816105460152818161247e01528181613006015261431b015260008181610b1801528181610f7f0152818161207c015281816120be01528181612f76015281816131bb015261321a015260008181610b4b0152818161262201528181612dbf01528181612ee50152818161312901528181614192015281816145bf0152818161469e0152818161475101528181614f7f0152615170015260008181610bf20152818161216a015281816121f001528181612e8801528181612fda015281816140aa01526141b301526000818161083a01526142360152615c856000f3fe6080604052600436106103555760003560e01c806370872aa5116101bb578063c0d8bb74116100f7578063dabd396d11610095578063f8f43ff61161006f578063f8f43ff614610b9f578063fa24f74314610bbf578063fa315aa914610be3578063fe2bbeb214610c1657600080fd5b8063dabd396d14610b09578063ec5e630814610b3c578063eff0f59214610b6f57600080fd5b8063cf09e0d0116100d1578063cf09e0d014610a75578063d5d44d8014610a96578063d6ae3cd514610ab6578063d8cc1a3c14610ae957600080fd5b8063c0d8bb74146109b4578063c395e1ca146109e1578063c6f0308c14610a0157600080fd5b80638d450a9511610164578063a8e4fb901161013e578063a8e4fb90146108fe578063bbdc02db14610931578063bcef3b5514610972578063bd8da9561461099457600080fd5b80638d450a951461082b57806399735e3214610809578063a445ece61461085e57600080fd5b80638129fc1c116101955780638129fc1c146107ec5780638980e0cc146107f45780638b85902b1461080957600080fd5b806370872aa5146107af578063786b844b146107c45780637b0f0adc146107d957600080fd5b80633e3ac912116102955780635a5fa2d91161023357806360e274641161020d57806360e27464146107275780636361506d146107475780636b6716c0146107695780636f0344091461079c57600080fd5b80635a5fa2d9146106bf5780635c0cba33146106df578063609d33341461071257600080fd5b8063529d6a8c1161026f578063529d6a8c146105e0578063534db0e21461060d57806354fd4d501461064057806357da950e1461068f57600080fd5b80633e3ac9121461056a5780633fc8cef31461059a578063472777c6146105cd57600080fd5b806325fc2ace1161030257806330dbe570116102dc57806330dbe570146104c3578063378dd48c146104fb57806337b1b229146105155780633a7684631461053757600080fd5b806325fc2ace1461046f5780632810e1d61461048e5780632ad69aeb146104a357600080fd5b8063200d2ed211610333578063200d2ed2146103e7578063222abf4514610415578063250e69bd1461045557600080fd5b8063019351301461035a57806303c2924d1461037c57806319effeb41461039c575b600080fd5b34801561036657600080fd5b5061037a6103753660046154f5565b610c46565b005b34801561038857600080fd5b5061037a610397366004615550565b610f05565b3480156103a857600080fd5b506000546103c99068010000000000000000900467ffffffffffffffff1681565b60405167ffffffffffffffff90911681526020015b60405180910390f35b3480156103f357600080fd5b5060005461040890600160801b900460ff1681565b6040516103de91906155a9565b34801561042157600080fd5b506104456104303660046155d1565b600c6020526000908152604090205460ff1681565b60405190151581526020016103de565b34801561046157600080fd5b50600a546104459060ff1681565b34801561047b57600080fd5b506008545b6040519081526020016103de565b34801561049a57600080fd5b5061040861148d565b3480156104af57600080fd5b506104806104be366004615550565b611665565b3480156104cf57600080fd5b506001546104e3906001600160a01b031681565b6040516001600160a01b0390911681526020016103de565b34801561050757600080fd5b50600d546104089060ff1681565b34801561052157600080fd5b503660011981013560f01c90033560601c6104e3565b34801561054357600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006104e3565b34801561057657600080fd5b50600054610445907201000000000000000000000000000000000000900460ff1681565b3480156105a657600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006104e3565b61037a6105db3660046155ee565b61169b565b3480156105ec57600080fd5b506104806105fb3660046155d1565b60036020526000908152604090205481565b34801561061957600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006104e3565b34801561064c57600080fd5b5060408051808201909152600581527f312e382e3000000000000000000000000000000000000000000000000000000060208201525b6040516103de9190615685565b34801561069b57600080fd5b506008546009546106aa919082565b604080519283526020830191909152016103de565b3480156106cb57600080fd5b506104806106da366004615698565b6116ad565b3480156106eb57600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006104e3565b34801561071e57600080fd5b506106826116e7565b34801561073357600080fd5b5061037a6107423660046155d1565b6116f5565b34801561075357600080fd5b503660011981013560f01c900360340135610480565b34801561077557600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006103c9565b61037a6107aa3660046156bf565b611a0d565b3480156107bb57600080fd5b50600954610480565b3480156107d057600080fd5b5061037a611ab4565b61037a6107e73660046155ee565b611ed3565b61037a611ee0565b34801561080057600080fd5b50600254610480565b34801561081557600080fd5b503660011981013560f01c900360540135610480565b34801561083757600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610480565b34801561086a57600080fd5b506108c0610879366004615698565b6007602052600090815260409020805460019091015460ff821691610100810463ffffffff1691650100000000009091046001600160801b0316906001600160a01b031684565b60408051941515855263ffffffff90931660208501526001600160801b03909116918301919091526001600160a01b031660608201526080016103de565b34801561090a57600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006104e3565b34801561093d57600080fd5b5060405163ffffffff7f00000000000000000000000000000000000000000000000000000000000000001681526020016103de565b34801561097e57600080fd5b503660011981013560f01c900360140135610480565b3480156109a057600080fd5b506103c96109af366004615698565b611f4c565b3480156109c057600080fd5b506104806109cf3660046155d1565b600b6020526000908152604090205481565b3480156109ed57600080fd5b506104806109fc366004615700565b6120e6565b348015610a0d57600080fd5b50610a21610a1c366004615698565b6122a7565b6040805163ffffffff90981688526001600160a01b03968716602089015295909416948601949094526001600160801b039182166060860152608085015291821660a08401521660c082015260e0016103de565b348015610a8157600080fd5b506000546103c99067ffffffffffffffff1681565b348015610aa257600080fd5b50610480610ab13660046155d1565b61231b565b348015610ac257600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610480565b348015610af557600080fd5b5061037a610b04366004615729565b612373565b348015610b1557600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006103c9565b348015610b4857600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610480565b348015610b7b57600080fd5b50610445610b8a366004615698565b60046020526000908152604090205460ff1681565b348015610bab57600080fd5b5061037a610bba3660046155ee565b612416565b348015610bcb57600080fd5b50610bd46127fc565b6040516103de939291906157b5565b348015610bef57600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610480565b348015610c2257600080fd5b50610445610c31366004615698565b60066020526000908152604090205460ff1681565b60008054600160801b900460ff166002811115610c6557610c65615572565b14610c835760405163067fe19560e41b815260040160405180910390fd5b6000547201000000000000000000000000000000000000900460ff1615610cd6576040517f0ea2e75200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610cef3660011981013560f01c90036014013590565b90565b610d06610d01368690038601866157f0565b612859565b14610d3d576040517f9cc00b5b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b82606001358282604051610d52929190615864565b604051809103902014610d91576040517fd81d583b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000610dda610dd584848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506128b592505050565b612922565b90506000610e0182600881518110610df457610df4615874565b6020026020010151612ad8565b9050602081511115610e3f576040517fd81d583b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b602081810151825190910360031b1c3660011981013560f01c9003605401358103610e96576040517fb8ed883000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050600180547fffffffffffffffffffffffff000000000000000000000000000000000000000016331790555050600080547fffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffff1672010000000000000000000000000000000000001790555050565b60008054600160801b900460ff166002811115610f2457610f24615572565b14610f425760405163067fe19560e41b815260040160405180910390fd5b600060028381548110610f5757610f57615874565b906000526020600020906005020190506000610f7284611f4c565b905067ffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000081169082161015610fdb576040517ff2440b5300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008481526006602052604090205460ff1615611024576040517ff1a9458100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600084815260056020526040902080548015801561104157508515155b156110a457835464010000000090046001600160a01b0316600081156110675781611076565b60018601546001600160a01b03165b90506110828187612b8c565b505050600094855250506006602052505060409020805460ff19166001179055565b6000868152600760209081526040918290208251608081018452815460ff81161515808352610100820463ffffffff16948301949094526501000000000090046001600160801b031693810193909352600101546001600160a01b03166060830152611128576001600160801b036040820152600181526000869003611128578195505b600086826020015163ffffffff1661114091906158a0565b905060008382116111515781611153565b835b602084015190915063ffffffff165b8181101561127357600086828154811061117e5761117e615874565b6000918252602080832090910154808352600690915260409091205490915060ff166111d6576040517f9a07664600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600282815481106111eb576111eb615874565b60009182526020909120600590910201805490915064010000000090046001600160a01b03161580156112325750600481015460408701516001600160801b039182169116115b1561125e5760018101546001600160a01b0316606087015260048101546001600160801b031660408701525b5050808061126b906158b8565b915050611162565b5063ffffffff818116602085810191825260008c81526007909152604090819020865181549351928801517fffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000009094169015157fffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000ff161761010092909416918202939093177fffffffffffffffffffffff00000000000000000000000000000000ffffffffff16650100000000006001600160801b03909316929092029190911782556060850151600190920180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039093169290921790915584900361148257606083015160008a8152600660205260409020805460ff19166001179055891580156113bf57506000547201000000000000000000000000000000000000900460ff165b1561141a576001546001600160a01b03166113da818a612b8c565b88546001600160a01b03909116640100000000027fffffffffffffffff0000000000000000000000000000000000000000ffffffff909116178855611480565b6114476001600160a01b038216156114325781611441565b60018901546001600160a01b03165b89612b8c565b87547fffffffffffffffff0000000000000000000000000000000000000000ffffffff166401000000006001600160a01b038316021788555b505b505050505050505050565b600080600054600160801b900460ff1660028111156114ae576114ae615572565b146114cc5760405163067fe19560e41b815260040160405180910390fd5b6000805260066020527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f85460ff16611530576040517f9a07664600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006001600160a01b0316600260008154811061154f5761154f615874565b600091825260209091206005909102015464010000000090046001600160a01b03161461157d576001611580565b60025b6000805467ffffffffffffffff421668010000000000000000027fffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff82168117835592935083927fffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffff000000000000000000ffffffffffffffff90911617600160801b83600281111561162457611624615572565b02179055600281111561163957611639615572565b6040517f5e186f09b9c93491f14e277eea7faa5de6a2d4bda75a79af7a3684fbfb42da6090600090a290565b6005602052816000526040600020818154811061168157600080fd5b90600052602060002001600091509150505481565b905090565b6116a88383836001611a0d565b505050565b600081815260076020908152604080832060059092528220805482546116de90610100900463ffffffff16826158d2565b95945050505050565b606061169660546020612bce565b6116fd611ab4565b60006002600d5460ff16600281111561171857611718615572565b0361173c57506001600160a01b0381166000908152600b60205260409020546117ab565b6001600d5460ff16600281111561175557611755615572565b0361177957506001600160a01b0381166000908152600360205260409020546117ab565b6040517f078a3df400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0382166000908152600c602052604090205460ff16611888576001600160a01b038281166000818152600c602052604090819020805460ff19166001179055517f7eee288d0000000000000000000000000000000000000000000000000000000081526004810191909152602481018390527f000000000000000000000000000000000000000000000000000000000000000090911690637eee288d90604401600060405180830381600087803b15801561186c57600080fd5b505af1158015611880573d6000803e3d6000fd5b505050505050565b806000036118c2576040517f17bfe5f700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038281166000818152600b60209081526040808320839055600390915280822091909155517ff3fef3a30000000000000000000000000000000000000000000000000000000081526004810191909152602481018390527f00000000000000000000000000000000000000000000000000000000000000009091169063f3fef3a390604401600060405180830381600087803b15801561196857600080fd5b505af115801561197c573d6000803e3d6000fd5b505050506000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146119cd576040519150601f19603f3d011682016040523d82523d6000602084013e6119d2565b606091505b50509050806116a8576040517f83e6cc6b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480611a6c5750336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016145b611aa2576040517fd386ef3e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611aae84848484612c02565b50505050565b6002600d5460ff166002811115611acd57611acd615572565b1480611aef57506001600d5460ff166002811115611aed57611aed615572565b145b15611af657565b6000600d5460ff166002811115611b0f57611b0f615572565b14611b46576040517f078a3df400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ba4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bc891906158e9565b15611bff576040517f379a7ed900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005468010000000000000000900467ffffffffffffffff1667ffffffffffffffff16600003611c5b576040517fc105260a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f0314d2b30000000000000000000000000000000000000000000000000000000081523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690630314d2b390602401602060405180830381865afa158015611cdb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cff91906158e9565b905080611d38576040517f4851bd9b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f17cf21a90000000000000000000000000000000000000000000000000000000081523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906317cf21a990602401600060405180830381600087803b158015611db257600080fd5b505af1925050508015611dc3575060015b506040517f496b9c160000000000000000000000000000000000000000000000000000000081523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063496b9c1690602401602060405180830381865afa158015611e44573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e6891906158e9565b90508015611e8257600d805460ff19166001179055611e90565b600d805460ff191660021790555b600d546040517f9908eaac0645df9d0704d06adc9e07337c951de2f06b5f2836151d48d5e4722f91611ec79160ff909116906155a9565b60405180910390a15050565b6116a88383836000611a0d565b326001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611f42576040517fd386ef3e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611f4a6135a3565b565b600080600054600160801b900460ff166002811115611f6d57611f6d615572565b14611f8b5760405163067fe19560e41b815260040160405180910390fd5b600060028381548110611fa057611fa0615874565b600091825260208220600590910201805490925063ffffffff9081161461200657815460028054909163ffffffff16908110611fde57611fde615874565b906000526020600020906005020160040160109054906101000a90046001600160801b031690505b600482015460009061203190600160801b900467ffffffffffffffff165b67ffffffffffffffff1690565b6120459067ffffffffffffffff16426158d2565b61205b612024846001600160801b031660401c90565b67ffffffffffffffff1661206f91906158a0565b905067ffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001667ffffffffffffffff168167ffffffffffffffff16116120bc57806116de565b7f000000000000000000000000000000000000000000000000000000000000000095945050505050565b600080612163836001600160801b03167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f6307c4acdd60e01b67ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff1690507f00000000000000000000000000000000000000000000000000000000000000008111156121c2576040517f56f57b2b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b642e90edd00062061a806311e1a30060006121dd838361591c565b9050670de0b6b3a76400006000612214827f0000000000000000000000000000000000000000000000000000000000000000615930565b9050600061223261222d670de0b6b3a764000086615930565b613b40565b905060006122408484613d92565b9050600061224e8383613de1565b9050600061225b82613e0f565b9050600061227a82612275670de0b6b3a76400008f615930565b613ff7565b905060006122888b83613de1565b9050612294818d615930565b9f9e505050505050505050505050505050565b600281815481106122b757600080fd5b60009182526020909120600590910201805460018201546002830154600384015460049094015463ffffffff841695506401000000009093046001600160a01b03908116949216926001600160801b03918216929180821691600160801b90041687565b60006002600d5460ff16600281111561233657612336615572565b0361235757506001600160a01b03166000908152600b602052604090205490565b506001600160a01b031660009081526003602052604090205490565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614806123d25750336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016145b612408576040517fd386ef3e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611880868686868686614028565b60008054600160801b900460ff16600281111561243557612435615572565b146124535760405163067fe19560e41b815260040160405180910390fd5b60008060008061246286614584565b93509350935093506000612478858585856148dd565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316637dc0d1d06040518163ffffffff1660e01b8152600401602060405180830381865afa1580156124da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124fe919061594f565b9050600189036125cb576001600160a01b0381166352f0f3ad8a8461252f3660011981013560f01c90036034013590565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e086901b16815260048101939093526024830191909152604482015260206064820152608481018a905260a4015b6020604051808303816000875af11580156125a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125c5919061596c565b50611482565b600289036125ea576001600160a01b0381166352f0f3ad8a848961252f565b60038903612609576001600160a01b0381166352f0f3ad8a848761252f565b6004890361273e5760006126466001600160801b0385167f000000000000000000000000000000000000000000000000000000000000000061497c565b60095461265391906158a0565b61265e9060016158a0565b90503660011981013560f01c900360540135811061268b573660011981013560f01c90036054013561268d565b805b90506001600160a01b0382166352f0f3ad8b8560405160e084901b7fffffffff000000000000000000000000000000000000000000000000000000001681526004810192909252602482015260c084901b604482015260086064820152608481018b905260a4016020604051808303816000875af1158015612713573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612737919061596c565b5050611482565b600589036127ca576040517f52f0f3ad000000000000000000000000000000000000000000000000000000008152600481018a9052602481018390527f000000000000000000000000000000000000000000000000000000000000000060c01b604482015260086064820152608481018890526001600160a01b038216906352f0f3ad9060a401612582565b6040517fff137e6500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000003660011981013560f01c90036014013560606128376116e7565b9050909192565b60008183101561284e5781612850565b825b90505b92915050565b60008160000151826020015183604001518460600151604051602001612898949392919093845260208401929092526040830152606082015260800190565b604051602081830303815290604052805190602001209050919050565b60408051808201909152600080825260208201528151600003612904576040517f5ab458fb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50604080518082019091528151815260209182019181019190915290565b6060600080600061293285614a11565b91945092509050600181600181111561294d5761294d615572565b14612984576040517f4b9c6abe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845161299083856158a0565b146129c7576040517f5c5537b800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604080516020808252610420820190925290816020015b60408051808201909152600080825260208201528152602001906001900390816129de5790505093506000835b8651811015612acc57600080612a516040518060400160405280858c60000151612a3591906158d2565b8152602001858c60200151612a4a91906158a0565b9052614a11565b509150915060405180604001604052808383612a6d91906158a0565b8152602001848b60200151612a8291906158a0565b815250888581518110612a9757612a97615874565b6020908102919091010152612aad6001856158a0565b9350612ab981836158a0565b612ac390846158a0565b92505050612a0b565b50845250919392505050565b60606000806000612ae885614a11565b919450925090506000816001811115612b0357612b03615572565b14612b3a576040517f1ff9b2e400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612b4482846158a0565b855114612b7d576040517f5c5537b800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6116de85602001518484614eaf565b60028101546001600160a01b038316600090815260036020526040812080546001600160801b0390931692909190612bc59084906158a0565b90915550505050565b6040518181523660011981013560f01c90038284820160208401378260208301016000815260208101604052505092915050565b60008054600160801b900460ff166002811115612c2157612c21615572565b14612c3f5760405163067fe19560e41b815260040160405180910390fd5b600060028481548110612c5457612c54615874565b60009182526020918290206040805160e0810182526005909302909101805463ffffffff811684526001600160a01b0364010000000090910481169484019490945260018101549093169082015260028201546001600160801b03908116606083015260038301546080830181905260049093015480821660a0840152600160801b90041660c082015291508514612d18576040517f3014033200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60a0810151600083156001600160801b0383161760011b90506000612dad826001600160801b03167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f6307c4acdd60e01b67ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff169050861580612de85750612de57f000000000000000000000000000000000000000000000000000000000000000060026158a0565b81145b8015612df2575084155b15612e29576040517fa42637bc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000547201000000000000000000000000000000000000900460ff168015612e4f575086155b15612e86576040517f0ea2e75200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f0000000000000000000000000000000000000000000000000000000000000000811115612ee0576040517f56f57b2b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612f0b7f000000000000000000000000000000000000000000000000000000000000000060016158a0565b8103612f1d57612f1d86888588614f44565b34612f27836120e6565b14612f5e576040517f8620aa1900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000612f6988611f4c565b905067ffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000811690821603612fd1576040517f3381d11400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000612ffe60017f00000000000000000000000000000000000000000000000000000000000000006158d2565b8303613122577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316637dc0d1d06040518163ffffffff1660e01b8152600401602060405180830381865afa158015613062573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613086919061594f565b6001600160a01b031663f3f480d96040518163ffffffff1660e01b8152600401602060405180830381865afa1580156130c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130e7919061596c565b61311b907f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff16615985565b90506131b5565b61314d60017f00000000000000000000000000000000000000000000000000000000000000006158d2565b83036131885761311b7f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff1660026159b1565b507f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff165b6131e9817f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff166159e1565b67ffffffffffffffff166132048367ffffffffffffffff1690565b67ffffffffffffffff16111561324b57613248817f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff166159e1565b91505b6000604083901b421760008a8152608087901b6001600160801b038d1617602052604081209192509060008181526004602052604090205490915060ff16156132c0576040517f80497e3b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60016004600083815260200190815260200160002060006101000a81548160ff02191690831515021790555060026040518060e001604052808d63ffffffff16815260200160006001600160a01b03168152602001336001600160a01b03168152602001346001600160801b031681526020018c8152602001886001600160801b03168152602001846001600160801b0316815250908060018154018082558091505060019003906000526020600020906005020160009091909190915060008201518160000160006101000a81548163ffffffff021916908363ffffffff16021790555060208201518160000160046101000a8154816001600160a01b0302191690836001600160a01b0316021790555060408201518160010160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060608201518160020160006101000a8154816001600160801b0302191690836001600160801b031602179055506080820151816003015560a08201518160040160006101000a8154816001600160801b0302191690836001600160801b0316021790555060c08201518160040160106101000a8154816001600160801b0302191690836001600160801b031602179055505050600560008c815260200190815260200160002060016002805490506134b791906158d2565b81546001810183556000928352602080842090910191909155338252600b90526040812080543492906134eb9084906158a0565b925050819055507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0346040518263ffffffff1660e01b81526004016000604051808303818588803b15801561354d57600080fd5b505af1158015613561573d6000803e3d6000fd5b50506040513393508d92508e91507f9b3245740ec3b155098a55be84957a4da13eaf7f14a8bc6f53126c0b9350f2be90600090a4505050505050505050505050565b60005471010000000000000000000000000000000000900460ff16156135f5576040517f0dc149f000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d83ef2676040518163ffffffff1660e01b81526004016040805180830381865afa158015613655573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136799190615a0a565b9092509050816136b5576040517f6a6bc3b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805180820190915282815260200181905260088290556009819055607a361461370c576040517f9824bdab00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b803660011981013560f01c9003605401351161376a576040517ff40239db0000000000000000000000000000000000000000000000000000000081523660011981013560f01c90036014013560048201526024015b60405180910390fd5b6040805160e08101825263ffffffff808252600060208084018281523660011981013560f01c90038035606090811c8789018181526001600160801b0334818116948b0194855260149095013560808b01908152600160a08c0181815242841660c08e019081526002805493840181558c529c517f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace600590930292830180549a5191909d167fffffffffffffffff000000000000000000000000000000000000000000000000909a16999099176401000000006001600160a01b039a8b160217909b5592517f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5acf840180547fffffffffffffffffffffffff000000000000000000000000000000000000000016919098161790965592517f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ad0820180547fffffffffffffffffffffffffffffffff000000000000000000000000000000001691851691909117905593517f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ad185015595519651968116600160801b9790911696909602959095177f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ad2909101558154710100000000000000000000000000000000007fffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff909116178255918152600b9091529182208054919290916139ab9084906158a0565b925050819055507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0346040518263ffffffff1660e01b81526004016000604051808303818588803b158015613a0d57600080fd5b505af1158015613a21573d6000803e3d6000fd5b5050600080547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000164267ffffffffffffffff161790555050604080517f3c9f397c00000000000000000000000000000000000000000000000000000000815290517f000000000000000000000000000000000000000000000000000000000000000063ffffffff1692507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031691633c9f397c9160048083019260209291908290030181865afa158015613b00573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b249190615a2e565b600a805460ff191663ffffffff92909216929092141790555050565b6001600160801b03811160071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b1760008213613b9657631615e6386000526004601cfd5b7ff8f9f9faf9fdfafbf9fdfcfdfafbfcfef9fafdfafcfcfbfefafafcfbffffffff6f8421084210842108cc6318c6db6d54be83831c1c601f161a1890811b609f90811c6c465772b2bbbb5f824b15207a3081018102606090811d6d0388eaa27412d5aca026815d636e018202811d6d0df99ac502031bf953eff472fdcc018202811d6d13cdffb29d51d99322bdff5f2211018202811d6d0a0f742023def783a307a986912e018202811d6d01920d8043ca89b5239253284e42018202811d6c0b7a86d7375468fac667a0a527016c29508e458543d8aa4df2abee7883018302821d6d0139601a2efabe717e604cbb4894018302821d6d02247f7a7b6594320649aa03aba1018302821d7fffffffffffffffffffffffffffffffffffffff73c0c716a594e00d54e3c4cbc9018302821d7ffffffffffffffffffffffffffffffffffffffdc7b88c420e53a9890533129f6f01830290911d7fffffffffffffffffffffffffffffffffffffff465fda27eb4d63ded474e5f832019091027ffffffffffffffff5f6af8f7b3396644f18e157960000000000000000000000000105711340daa0d5f769dba1915cef59f0815a5506029190037d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b302017d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b88642840160ae1d90565b60007812725dd1d243aba0e75fe645cc4873f9e65afe688c928e1f218311670de0b6b3a764000002158202613dcf57637c5f487d6000526004601cfd5b50670de0b6b3a7640000919091020490565b600081600019048311820215613dff5763bac65e5b6000526004601cfd5b50670de0b6b3a764000091020490565b60007ffffffffffffffffffffffffffffffffffffffffffffffffdc0d0570925a462d78213613e3d57919050565b680755bf798b4a1bf1e58212613e5b5763a37bfec96000526004601cfd5b6503782dace9d9604e83901b059150600060606bb17217f7d1cf79abc9e3b39884821b056b80000000000000000000000001901d6bb17217f7d1cf79abc9e3b39881029093037fffffffffffffffffffffffffffffffffffffffdbf3ccf1604d263450f02a550481018102606090811d6d0277594991cfc85f6e2461837cd9018202811d7fffffffffffffffffffffffffffffffffffffe5adedaa1cb095af9e4da10e363c018202811d6db1bbb201f443cf962f1a1d3db4a5018202811d7ffffffffffffffffffffffffffffffffffffd38dc772608b0ae56cce01296c0eb018202811d6e05180bb14799ab47a8a8cb2a527d57016d02d16720577bd19bf614176fe9ea6c10fe68e7fd37d0007b713f765084018402831d9081019084017ffffffffffffffffffffffffffffffffffffffe2c69812cf03b0763fd454a8f7e010290911d6e0587f503bb6ea29d25fcb7401964500190910279d835ebba824c98fb31b83b2ca45c000000000000000000000000010574029d9dc38563c32e5c2f6dc192ee70ef65f9978af30260c3939093039290921c92915050565b6000612850670de0b6b3a76400008361400f86613b40565b6140199190615a54565b6140239190615b10565b613e0f565b60008054600160801b900460ff16600281111561404757614047615572565b146140655760405163067fe19560e41b815260040160405180910390fd5b60006002878154811061407a5761407a615874565b6000918252602082206005919091020160048101549092506001600160801b0316908715821760011b90506140d07f000000000000000000000000000000000000000000000000000000000000000060016158a0565b61414a826001600160801b03167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f6307c4acdd60e01b67ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff1614614184576040517f5f53dd9800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000808915614260576141d77f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006158d2565b6001901b6141ed846001600160801b03166150d3565b6001600160801b03166142009190615b5a565b156142345761422b61421c60016001600160801b038716615b6e565b865463ffffffff166000615159565b60030154614256565b7f00000000000000000000000000000000000000000000000000000000000000005b9150849050614281565b6003850154915061427e61421c6001600160801b0386166001615b8e565b90505b600882901b60088a8a604051614298929190615864565b6040518091039020901b146142d9576040517f696550ff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006142e48c615222565b905060006142f3836003015490565b6040517fe14ced320000000000000000000000000000000000000000000000000000000081527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063e14ced3290614360908f908f908f908f908a90600401615bf9565b6020604051808303816000875af115801561437f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906143a3919061596c565b60048501549114915060009060029061442c906001600160801b03167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f6307c4acdd60e01b67ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b6144a6896001600160801b03167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f6307c4acdd60e01b67ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b6144b09190615c33565b6144ba9190615c56565b60ff1615905081151581036144fb576040517ffb4e40dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b875464010000000090046001600160a01b031615614545576040517f9071e6af00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505085547fffffffffffffffff0000000000000000000000000000000000000000ffffffff163364010000000002179095555050505050505050505050565b60008060008060008590506000600282815481106145a4576145a4615874565b600091825260209091206004600590920201908101549091507f000000000000000000000000000000000000000000000000000000000000000090614659906001600160801b03167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f6307c4acdd60e01b67ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff1611614693576040517fb34b5c2200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000815b60048301547f000000000000000000000000000000000000000000000000000000000000000090614738906001600160801b03167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f6307c4acdd60e01b67ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff1692508211156147ad57825463ffffffff166147777f000000000000000000000000000000000000000000000000000000000000000060016158a0565b8303614781578391505b6002818154811061479457614794615874565b9060005260206000209060050201935080945050614697565b600481810154908401546001600160801b0391821691166000816001600160801b03166147f26147e6856001600160801b031660011c90565b6001600160801b031690565b6001600160801b0316149050801561488b576000614818836001600160801b03166150d3565b6001600160801b0316111561486857600061484861484060016001600160801b038616615b6e565b896001615159565b6003810154600490910154909c506001600160801b03169a5061486e9050565b6008549a505b600386015460048701549099506001600160801b031697506148cf565b60006148a46148406001600160801b0385166001615b8e565b6003808901546004808b015492840154930154909e506001600160801b039182169d50919b50169850505b505050505050509193509193565b60006001600160801b038416156149385760408051602081018790526001600160801b038087169282019290925260608101859052908316608082015260a001604051602081830303815290604052805190602001206116de565b828260405160200161495d9291909182526001600160801b0316602082015260400190565b6040516020818303038152906040528051906020012095945050505050565b6000806149f0847e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f6307c4acdd60e01b67ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff1690508083036001841b600180831b0386831b17039250505092915050565b60008060008360000151600003614a54576040517f5ab458fb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6020840151805160001a607f8111614a79576000600160009450945094505050614ea8565b60b78111614b8f576000614a8e6080836158d2565b905080876000015111614acd576040517f66c9448500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001838101517fff00000000000000000000000000000000000000000000000000000000000000169082148015614b4557507f80000000000000000000000000000000000000000000000000000000000000007fff000000000000000000000000000000000000000000000000000000000000008216105b15614b7c576040517fbabb01dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5060019550935060009250614ea8915050565b60bf8111614ced576000614ba460b7836158d2565b905080876000015111614be3576040517f66c9448500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60018301517fff00000000000000000000000000000000000000000000000000000000000000166000819003614c45576040517fbabb01dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600184015160088302610100031c60378111614c8d576040517fbabb01dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b614c9781846158a0565b895111614cd0576040517f66c9448500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b614cdb8360016158a0565b9750955060009450614ea89350505050565b60f78111614d52576000614d0260c0836158d2565b905080876000015111614d41576040517f66c9448500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600195509350849250614ea8915050565b6000614d5f60f7836158d2565b905080876000015111614d9e576040517f66c9448500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60018301517fff00000000000000000000000000000000000000000000000000000000000000166000819003614e00576040517fbabb01dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600184015160088302610100031c60378111614e48576040517fbabb01dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b614e5281846158a0565b895111614e8b576040517f66c9448500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b614e968360016158a0565b9750955060019450614ea89350505050565b9193909250565b60608167ffffffffffffffff811115614eca57614eca6157da565b6040519080825280601f01601f191660200182016040528015614ef4576020820181803683370190505b5090508115614f3d576000614f0984866158a0565b90506020820160005b84811015614f2a578281015182820152602001614f12565b84811115614f39576000858301525b5050505b9392505050565b6000614f5a6001600160801b0384166001615b8e565b90506000614f6a82866001615159565b9050600086901a83806150345750614fa360027f0000000000000000000000000000000000000000000000000000000000000000615b5a565b6004830154600290615025906001600160801b03167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f6307c4acdd60e01b67ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b61502f9190615c56565b60ff16145b1561508c5760ff81166001148061504e575060ff81166002145b615087576040517ff40239db00000000000000000000000000000000000000000000000000000000815260048101889052602401613761565b6150ca565b60ff8116156150ca576040517ff40239db00000000000000000000000000000000000000000000000000000000815260048101889052602401613761565b50505050505050565b600080615147837e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f6307c4acdd60e01b67ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b600160ff919091161b90920392915050565b60008082615199576151946001600160801b0386167f0000000000000000000000000000000000000000000000000000000000000000615251565b6151ab565b6151ab856001600160801b0316615390565b9050600284815481106151c0576151c0615874565b906000526020600020906005020191505b60048201546001600160801b0382811691161461521a57815460028054909163ffffffff1690811061520557615205615874565b906000526020600020906005020191506151d1565b509392505050565b600080600080600061523386614584565b9350935093509350615247848484846148dd565b9695505050505050565b6000816152ce846001600160801b03167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f6307c4acdd60e01b67ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff16116152e45763b34b5c226000526004601cfd5b6152ed83615390565b90508161536a826001600160801b03167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f6307c4acdd60e01b67ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff1611612853576128506153808360016158a0565b6001600160801b0383169061541c565b6000811960018301168161540b827e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f6307c4acdd60e01b67ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff169390931c8015179392505050565b600080615490847e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f6307c4acdd60e01b67ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff169050808303600180821b0385821b179250505092915050565b60008083601f8401126154be57600080fd5b50813567ffffffffffffffff8111156154d657600080fd5b6020830191508360208285010111156154ee57600080fd5b9250929050565b600080600083850360a081121561550b57600080fd5b608081121561551957600080fd5b50839250608084013567ffffffffffffffff81111561553757600080fd5b615543868287016154ac565b9497909650939450505050565b6000806040838503121561556357600080fd5b50508035926020909101359150565b634e487b7160e01b600052602160045260246000fd5b600381106155a657634e487b7160e01b600052602160045260246000fd5b50565b602081016155b683615588565b91905290565b6001600160a01b03811681146155a657600080fd5b6000602082840312156155e357600080fd5b8135614f3d816155bc565b60008060006060848603121561560357600080fd5b505081359360208301359350604090920135919050565b6000815180845260005b8181101561564057602081850181015186830182015201615624565b81811115615652576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000612850602083018461561a565b6000602082840312156156aa57600080fd5b5035919050565b80151581146155a657600080fd5b600080600080608085870312156156d557600080fd5b84359350602085013592506040850135915060608501356156f5816156b1565b939692955090935050565b60006020828403121561571257600080fd5b81356001600160801b0381168114614f3d57600080fd5b6000806000806000806080878903121561574257600080fd5b863595506020870135615754816156b1565b9450604087013567ffffffffffffffff8082111561577157600080fd5b61577d8a838b016154ac565b9096509450606089013591508082111561579657600080fd5b506157a389828a016154ac565b979a9699509497509295939492505050565b63ffffffff841681528260208201526060604082015260006116de606083018461561a565b634e487b7160e01b600052604160045260246000fd5b60006080828403121561580257600080fd5b6040516080810181811067ffffffffffffffff8211171561583357634e487b7160e01b600052604160045260246000fd5b8060405250823581526020830135602082015260408301356040820152606083013560608201528091505092915050565b8183823760009101908152919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600082198211156158b3576158b361588a565b500190565b600060001982036158cb576158cb61588a565b5060010190565b6000828210156158e4576158e461588a565b500390565b6000602082840312156158fb57600080fd5b8151614f3d816156b1565b634e487b7160e01b600052601260045260246000fd5b60008261592b5761592b615906565b500490565b600081600019048311821515161561594a5761594a61588a565b500290565b60006020828403121561596157600080fd5b8151614f3d816155bc565b60006020828403121561597e57600080fd5b5051919050565b600067ffffffffffffffff8083168185168083038211156159a8576159a861588a565b01949350505050565b600067ffffffffffffffff808316818516818304811182151516156159d8576159d861588a565b02949350505050565b600067ffffffffffffffff83811690831681811015615a0257615a0261588a565b039392505050565b60008060408385031215615a1d57600080fd5b505080516020909101519092909150565b600060208284031215615a4057600080fd5b815163ffffffff81168114614f3d57600080fd5b60007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600084136000841385830485118282161615615a9557615a9561588a565b7f80000000000000000000000000000000000000000000000000000000000000006000871286820588128184161615615ad057615ad061588a565b60008712925087820587128484161615615aec57615aec61588a565b87850587128184161615615b0257615b0261588a565b505050929093029392505050565b600082615b1f57615b1f615906565b60001983147f800000000000000000000000000000000000000000000000000000000000000083141615615b5557615b5561588a565b500590565b600082615b6957615b69615906565b500690565b60006001600160801b0383811690831681811015615a0257615a0261588a565b60006001600160801b038083168185168083038211156159a8576159a861588a565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b606081526000615c0d606083018789615bb0565b8281036020840152615c20818688615bb0565b9150508260408301529695505050505050565b600060ff821660ff841680821015615c4d57615c4d61588a565b90039392505050565b600060ff831680615c6957615c69615906565b8060ff8416069150509291505056fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"a\x02\0`@R4\x80\x15b\0\0\x12W`\0\x80\xFD[P`@Qb\0eH8\x03\x80b\0eH\x839\x81\x01`@\x81\x90Rb\0\x005\x91b\0\x05=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90b\0\x01O\x91\x90b\0\x06\x8CV[`\x01`\x01`\xA0\x1B\x03\x16c\xF3\xF4\x80\xD9`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15b\0\x01\x8DW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90b\0\x01\xB3\x91\x90b\0\x06\xACV[\x11\x15b\0\x01\xD3W`@Qc\xB4\xE1$3`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0b\0\x01\xF8\x82`\x80\x01Q`\x01`\x01`@\x1B\x03\x16b\0\x04\x8E` \x1Bb\0\x0C\xEC\x17` \x1CV[b\0\x02\x0E\x90`\x01`\x01`@\x1B\x03\x16`\x02b\0\x06\xC6V[\x90P`\0\x82`\xC0\x01Q`\x01`\x01`\xA0\x1B\x03\x16c}\xC0\xD1\xD0`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15b\0\x02UW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90b\0\x02{\x91\x90b\0\x06\x8CV[`\x01`\x01`\xA0\x1B\x03\x16c\xF3\xF4\x80\xD9`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15b\0\x02\xB9W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90b\0\x02\xDF\x91\x90b\0\x06\xACV[b\0\x03\x02\x84`\x80\x01Q`\x01`\x01`@\x1B\x03\x16b\0\x04\x8E` \x1Bb\0\x0C\xEC\x17` \x1CV[`\x01`\x01`@\x1B\x03\x16b\0\x03\x17\x91\x90b\0\x06qV[\x90P`\0b\0\x032\x83\x83b\0\x04\x91` \x1Bb\0(>\x17` \x1CV[\x90P`\x01`\x01`@\x1B\x03\x81\x11\x15b\0\x03]W`@Qc#]\xFB+`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[b\0\x03\x80\x84`\xA0\x01Q`\x01`\x01`@\x1B\x03\x16b\0\x04\x8E` \x1Bb\0\x0C\xEC\x17` \x1CV[`\x01`\x01`@\x1B\x03\x16\x81`\x01`\x01`@\x1B\x03\x16\x11\x15b\0\x03\xB3W`@Qc#]\xFB+`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[c\xFF\xFF\xFF\xFF\x80\x16b\0\x03\xDA\x85`\0\x01Qc\xFF\xFF\xFF\xFF\x16b\0\x04\x8E` \x1Bb\0\x0C\xEC\x17` \x1CV[c\xFF\xFF\xFF\xFF\x16\x03b\0\x03\xFFW`@Qc\x07>\xD1g`\xE3\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[PP\x81Qc\xFF\xFF\xFF\xFF\x16a\x01 \x90\x81R` \x83\x01Q`\x80\x90\x81R`@\x84\x01Q`\xA0\x90\x81R``\x85\x01Q`\xC0\x90\x81R\x91\x85\x01Q`\x01`\x01`@\x1B\x03\x90\x81\x16a\x01\xA0R\x90\x85\x01Q\x16`\xE0\x90\x81R\x90\x84\x01Q`\x01`\x01`\xA0\x1B\x03\x90\x81\x16a\x01\0\x90\x81R\x91\x85\x01Q\x81\x16a\x01@R\x90\x84\x01Q\x81\x16a\x01`R\x92\x01Qa\x01\x80RP\x91\x82\x16a\x01\xC0R\x16a\x01\xE0RPb\0\x06\xE8V[\x90V[`\0\x81\x83\x10\x15b\0\x04\xA3W\x81b\0\x04\xA5V[\x82[\x93\x92PPPV[`@Qa\x01@\x81\x01`\x01`\x01`@\x1B\x03\x81\x11\x82\x82\x10\x17\x15b\0\x04\xDEWcNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[`@R\x90V[\x80Qc\xFF\xFF\xFF\xFF\x81\x16\x81\x14b\0\x04\xF9W`\0\x80\xFD[\x91\x90PV[\x80Q`\x01`\x01`@\x1B\x03\x81\x16\x81\x14b\0\x04\xF9W`\0\x80\xFD[`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14b\0\x05,W`\0\x80\xFD[PV[\x80Qb\0\x04\xF9\x81b\0\x05\x16V[`\0\x80`\0\x83\x85\x03a\x01\x80\x81\x12\x15b\0\x05TW`\0\x80\xFD[a\x01@\x80\x82\x12\x15b\0\x05eW`\0\x80\xFD[b\0\x05ob\0\x04\xACV[\x91Pb\0\x05|\x86b\0\x04\xE4V[\x82R` \x86\x01Q` \x83\x01R`@\x86\x01Q`@\x83\x01R``\x86\x01Q``\x83\x01Rb\0\x05\xAA`\x80\x87\x01b\0\x04\xFEV[`\x80\x83\x01Rb\0\x05\xBD`\xA0\x87\x01b\0\x04\xFEV[`\xA0\x83\x01Rb\0\x05\xD0`\xC0\x87\x01b\0\x05/V[`\xC0\x83\x01Rb\0\x05\xE3`\xE0\x87\x01b\0\x05/V[`\xE0\x83\x01Ra\x01\0b\0\x05\xF8\x81\x88\x01b\0\x05/V[\x81\x84\x01RPa\x01 \x80\x87\x01Q\x81\x84\x01RP\x81\x94Pb\0\x06\x19\x81\x87\x01b\0\x05/V[\x93PPPb\0\x06,a\x01`\x85\x01b\0\x05/V[\x90P\x92P\x92P\x92V[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[`\0`\xFF\x82\x16`\xFF\x84\x16\x80\x82\x10\x15b\0\x06hWb\0\x06hb\0\x065V[\x90\x03\x93\x92PPPV[`\0\x82\x19\x82\x11\x15b\0\x06\x87Wb\0\x06\x87b\0\x065V[P\x01\x90V[`\0` \x82\x84\x03\x12\x15b\0\x06\x9FW`\0\x80\xFD[\x81Qb\0\x04\xA5\x81b\0\x05\x16V[`\0` \x82\x84\x03\x12\x15b\0\x06\xBFW`\0\x80\xFD[PQ\x91\x90PV[`\0\x81`\0\x19\x04\x83\x11\x82\x15\x15\x16\x15b\0\x06\xE3Wb\0\x06\xE3b\0\x065V[P\x02\x90V[`\x80Q`\xA0Q`\xC0Q`\xE0Qa\x01\0Qa\x01 Qa\x01@Qa\x01`Qa\x01\x80Qa\x01\xA0Qa\x01\xC0Qa\x01\xE0Qa\\\x85b\0\x08\xC3`\09`\0\x81\x81a\x06\x1C\x01R\x81\x81a\x1AJ\x01Ra#\xB0\x01R`\0\x81\x81a\t\r\x01R\x81\x81a\x1A\x18\x01R\x81\x81a\x1E\xEB\x01Ra#~\x01R`\0\x81\x81a\x07x\x01R\x81\x81a0\xED\x01R\x81\x81a1X\x01Ra1\x8B\x01R`\0\x81\x81a\n\xC5\x01Ra'|\x01R`\0\x81\x81a\x06\xEE\x01R\x81\x81a\x1BH\x01R\x81\x81a\x1C\x8C\x01R\x81\x81a\x1Df\x01R\x81\x81a\x1D\xF5\x01R\x81\x81a5\xFA\x01Ra:\xAD\x01R`\0\x81\x81a\x05\xA9\x01R\x81\x81a\x18&\x01R\x81\x81a\x19\"\x01R\x81\x81a4\xF4\x01Ra9\xB4\x01R`\0\x81\x81a\tH\x01R\x81\x81a'\xFE\x01Ra:\x84\x01R`\0\x81\x81a\x05F\x01R\x81\x81a$~\x01R\x81\x81a0\x06\x01RaC\x1B\x01R`\0\x81\x81a\x0B\x18\x01R\x81\x81a\x0F\x7F\x01R\x81\x81a |\x01R\x81\x81a \xBE\x01R\x81\x81a/v\x01R\x81\x81a1\xBB\x01Ra2\x1A\x01R`\0\x81\x81a\x0BK\x01R\x81\x81a&\"\x01R\x81\x81a-\xBF\x01R\x81\x81a.\xE5\x01R\x81\x81a1)\x01R\x81\x81aA\x92\x01R\x81\x81aE\xBF\x01R\x81\x81aF\x9E\x01R\x81\x81aGQ\x01R\x81\x81aO\x7F\x01RaQp\x01R`\0\x81\x81a\x0B\xF2\x01R\x81\x81a!j\x01R\x81\x81a!\xF0\x01R\x81\x81a.\x88\x01R\x81\x81a/\xDA\x01R\x81\x81a@\xAA\x01RaA\xB3\x01R`\0\x81\x81a\x08:\x01RaB6\x01Ra\\\x85`\0\xF3\xFE`\x80`@R`\x046\x10a\x03UW`\x005`\xE0\x1C\x80cp\x87*\xA5\x11a\x01\xBBW\x80c\xC0\xD8\xBBt\x11a\0\xF7W\x80c\xDA\xBD9m\x11a\0\x95W\x80c\xF8\xF4?\xF6\x11a\0oW\x80c\xF8\xF4?\xF6\x14a\x0B\x9FW\x80c\xFA$\xF7C\x14a\x0B\xBFW\x80c\xFA1Z\xA9\x14a\x0B\xE3W\x80c\xFE+\xBE\xB2\x14a\x0C\x16W`\0\x80\xFD[\x80c\xDA\xBD9m\x14a\x0B\tW\x80c\xEC^c\x08\x14a\x0BW\x80c\xA8\xE4\xFB\x90\x14a\x08\xFEW\x80c\xBB\xDC\x02\xDB\x14a\t1W\x80c\xBC\xEF;U\x14a\trW\x80c\xBD\x8D\xA9V\x14a\t\x94W`\0\x80\xFD[\x80c\x8DE\n\x95\x14a\x08+W\x80c\x99s^2\x14a\x08\tW\x80c\xA4E\xEC\xE6\x14a\x08^W`\0\x80\xFD[\x80c\x81)\xFC\x1C\x11a\x01\x95W\x80c\x81)\xFC\x1C\x14a\x07\xECW\x80c\x89\x80\xE0\xCC\x14a\x07\xF4W\x80c\x8B\x85\x90+\x14a\x08\tW`\0\x80\xFD[\x80cp\x87*\xA5\x14a\x07\xAFW\x80cxk\x84K\x14a\x07\xC4W\x80c{\x0F\n\xDC\x14a\x07\xD9W`\0\x80\xFD[\x80c>:\xC9\x12\x11a\x02\x95W\x80cZ_\xA2\xD9\x11a\x023W\x80c`\xE2td\x11a\x02\rW\x80c`\xE2td\x14a\x07'W\x80ccaPm\x14a\x07GW\x80ckg\x16\xC0\x14a\x07iW\x80co\x03D\t\x14a\x07\x9CW`\0\x80\xFD[\x80cZ_\xA2\xD9\x14a\x06\xBFW\x80c\\\x0C\xBA3\x14a\x06\xDFW\x80c`\x9D34\x14a\x07\x12W`\0\x80\xFD[\x80cR\x9Dj\x8C\x11a\x02oW\x80cR\x9Dj\x8C\x14a\x05\xE0W\x80cSM\xB0\xE2\x14a\x06\rW\x80cT\xFDMP\x14a\x06@W\x80cW\xDA\x95\x0E\x14a\x06\x8FW`\0\x80\xFD[\x80c>:\xC9\x12\x14a\x05jW\x80c?\xC8\xCE\xF3\x14a\x05\x9AW\x80cG'w\xC6\x14a\x05\xCDW`\0\x80\xFD[\x80c%\xFC*\xCE\x11a\x03\x02W\x80c0\xDB\xE5p\x11a\x02\xDCW\x80c0\xDB\xE5p\x14a\x04\xC3W\x80c7\x8D\xD4\x8C\x14a\x04\xFBW\x80c7\xB1\xB2)\x14a\x05\x15W\x80c:v\x84c\x14a\x057W`\0\x80\xFD[\x80c%\xFC*\xCE\x14a\x04oW\x80c(\x10\xE1\xD6\x14a\x04\x8EW\x80c*\xD6\x9A\xEB\x14a\x04\xA3W`\0\x80\xFD[\x80c \r.\xD2\x11a\x033W\x80c \r.\xD2\x14a\x03\xE7W\x80c\"*\xBFE\x14a\x04\x15W\x80c%\x0Ei\xBD\x14a\x04UW`\0\x80\xFD[\x80c\x01\x93Q0\x14a\x03ZW\x80c\x03\xC2\x92M\x14a\x03|W\x80c\x19\xEF\xFE\xB4\x14a\x03\x9CW[`\0\x80\xFD[4\x80\x15a\x03fW`\0\x80\xFD[Pa\x03za\x03u6`\x04aT\xF5V[a\x0CFV[\0[4\x80\x15a\x03\x88W`\0\x80\xFD[Pa\x03za\x03\x976`\x04aUPV[a\x0F\x05V[4\x80\x15a\x03\xA8W`\0\x80\xFD[P`\0Ta\x03\xC9\x90h\x01\0\0\0\0\0\0\0\0\x90\x04g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[`@Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[4\x80\x15a\x03\xF3W`\0\x80\xFD[P`\0Ta\x04\x08\x90`\x01`\x80\x1B\x90\x04`\xFF\x16\x81V[`@Qa\x03\xDE\x91\x90aU\xA9V[4\x80\x15a\x04!W`\0\x80\xFD[Pa\x04Ea\x0406`\x04aU\xD1V[`\x0C` R`\0\x90\x81R`@\x90 T`\xFF\x16\x81V[`@Q\x90\x15\x15\x81R` \x01a\x03\xDEV[4\x80\x15a\x04aW`\0\x80\xFD[P`\nTa\x04E\x90`\xFF\x16\x81V[4\x80\x15a\x04{W`\0\x80\xFD[P`\x08T[`@Q\x90\x81R` \x01a\x03\xDEV[4\x80\x15a\x04\x9AW`\0\x80\xFD[Pa\x04\x08a\x14\x8DV[4\x80\x15a\x04\xAFW`\0\x80\xFD[Pa\x04\x80a\x04\xBE6`\x04aUPV[a\x16eV[4\x80\x15a\x04\xCFW`\0\x80\xFD[P`\x01Ta\x04\xE3\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x01a\x03\xDEV[4\x80\x15a\x05\x07W`\0\x80\xFD[P`\rTa\x04\x08\x90`\xFF\x16\x81V[4\x80\x15a\x05!W`\0\x80\xFD[P6`\x01\x19\x81\x015`\xF0\x1C\x90\x035``\x1Ca\x04\xE3V[4\x80\x15a\x05CW`\0\x80\xFD[P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x04\xE3V[4\x80\x15a\x05vW`\0\x80\xFD[P`\0Ta\x04E\x90r\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16\x81V[4\x80\x15a\x05\xA6W`\0\x80\xFD[P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x04\xE3V[a\x03za\x05\xDB6`\x04aU\xEEV[a\x16\x9BV[4\x80\x15a\x05\xECW`\0\x80\xFD[Pa\x04\x80a\x05\xFB6`\x04aU\xD1V[`\x03` R`\0\x90\x81R`@\x90 T\x81V[4\x80\x15a\x06\x19W`\0\x80\xFD[P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x04\xE3V[4\x80\x15a\x06LW`\0\x80\xFD[P`@\x80Q\x80\x82\x01\x90\x91R`\x05\x81R\x7F1.8.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` \x82\x01R[`@Qa\x03\xDE\x91\x90aV\x85V[4\x80\x15a\x06\x9BW`\0\x80\xFD[P`\x08T`\tTa\x06\xAA\x91\x90\x82V[`@\x80Q\x92\x83R` \x83\x01\x91\x90\x91R\x01a\x03\xDEV[4\x80\x15a\x06\xCBW`\0\x80\xFD[Pa\x04\x80a\x06\xDA6`\x04aV\x98V[a\x16\xADV[4\x80\x15a\x06\xEBW`\0\x80\xFD[P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x04\xE3V[4\x80\x15a\x07\x1EW`\0\x80\xFD[Pa\x06\x82a\x16\xE7V[4\x80\x15a\x073W`\0\x80\xFD[Pa\x03za\x07B6`\x04aU\xD1V[a\x16\xF5V[4\x80\x15a\x07SW`\0\x80\xFD[P6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`4\x015a\x04\x80V[4\x80\x15a\x07uW`\0\x80\xFD[P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x03\xC9V[a\x03za\x07\xAA6`\x04aV\xBFV[a\x1A\rV[4\x80\x15a\x07\xBBW`\0\x80\xFD[P`\tTa\x04\x80V[4\x80\x15a\x07\xD0W`\0\x80\xFD[Pa\x03za\x1A\xB4V[a\x03za\x07\xE76`\x04aU\xEEV[a\x1E\xD3V[a\x03za\x1E\xE0V[4\x80\x15a\x08\0W`\0\x80\xFD[P`\x02Ta\x04\x80V[4\x80\x15a\x08\x15W`\0\x80\xFD[P6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`T\x015a\x04\x80V[4\x80\x15a\x087W`\0\x80\xFD[P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x04\x80V[4\x80\x15a\x08jW`\0\x80\xFD[Pa\x08\xC0a\x08y6`\x04aV\x98V[`\x07` R`\0\x90\x81R`@\x90 \x80T`\x01\x90\x91\x01T`\xFF\x82\x16\x91a\x01\0\x81\x04c\xFF\xFF\xFF\xFF\x16\x91e\x01\0\0\0\0\0\x90\x91\x04`\x01`\x01`\x80\x1B\x03\x16\x90`\x01`\x01`\xA0\x1B\x03\x16\x84V[`@\x80Q\x94\x15\x15\x85Rc\xFF\xFF\xFF\xFF\x90\x93\x16` \x85\x01R`\x01`\x01`\x80\x1B\x03\x90\x91\x16\x91\x83\x01\x91\x90\x91R`\x01`\x01`\xA0\x1B\x03\x16``\x82\x01R`\x80\x01a\x03\xDEV[4\x80\x15a\t\nW`\0\x80\xFD[P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x04\xE3V[4\x80\x15a\t=W`\0\x80\xFD[P`@Qc\xFF\xFF\xFF\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x81R` \x01a\x03\xDEV[4\x80\x15a\t~W`\0\x80\xFD[P6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\x14\x015a\x04\x80V[4\x80\x15a\t\xA0W`\0\x80\xFD[Pa\x03\xC9a\t\xAF6`\x04aV\x98V[a\x1FLV[4\x80\x15a\t\xC0W`\0\x80\xFD[Pa\x04\x80a\t\xCF6`\x04aU\xD1V[`\x0B` R`\0\x90\x81R`@\x90 T\x81V[4\x80\x15a\t\xEDW`\0\x80\xFD[Pa\x04\x80a\t\xFC6`\x04aW\0V[a \xE6V[4\x80\x15a\n\rW`\0\x80\xFD[Pa\n!a\n\x1C6`\x04aV\x98V[a\"\xA7V[`@\x80Qc\xFF\xFF\xFF\xFF\x90\x98\x16\x88R`\x01`\x01`\xA0\x1B\x03\x96\x87\x16` \x89\x01R\x95\x90\x94\x16\x94\x86\x01\x94\x90\x94R`\x01`\x01`\x80\x1B\x03\x91\x82\x16``\x86\x01R`\x80\x85\x01R\x91\x82\x16`\xA0\x84\x01R\x16`\xC0\x82\x01R`\xE0\x01a\x03\xDEV[4\x80\x15a\n\x81W`\0\x80\xFD[P`\0Ta\x03\xC9\x90g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[4\x80\x15a\n\xA2W`\0\x80\xFD[Pa\x04\x80a\n\xB16`\x04aU\xD1V[a#\x1BV[4\x80\x15a\n\xC2W`\0\x80\xFD[P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x04\x80V[4\x80\x15a\n\xF5W`\0\x80\xFD[Pa\x03za\x0B\x046`\x04aW)V[a#sV[4\x80\x15a\x0B\x15W`\0\x80\xFD[P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x03\xC9V[4\x80\x15a\x0BHW`\0\x80\xFD[P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x04\x80V[4\x80\x15a\x0B{W`\0\x80\xFD[Pa\x04Ea\x0B\x8A6`\x04aV\x98V[`\x04` R`\0\x90\x81R`@\x90 T`\xFF\x16\x81V[4\x80\x15a\x0B\xABW`\0\x80\xFD[Pa\x03za\x0B\xBA6`\x04aU\xEEV[a$\x16V[4\x80\x15a\x0B\xCBW`\0\x80\xFD[Pa\x0B\xD4a'\xFCV[`@Qa\x03\xDE\x93\x92\x91\x90aW\xB5V[4\x80\x15a\x0B\xEFW`\0\x80\xFD[P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x04\x80V[4\x80\x15a\x0C\"W`\0\x80\xFD[Pa\x04Ea\x0C16`\x04aV\x98V[`\x06` R`\0\x90\x81R`@\x90 T`\xFF\x16\x81V[`\0\x80T`\x01`\x80\x1B\x90\x04`\xFF\x16`\x02\x81\x11\x15a\x0CeWa\x0CeaUrV[\x14a\x0C\x83W`@Qc\x06\x7F\xE1\x95`\xE4\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0Tr\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16\x15a\x0C\xD6W`@Q\x7F\x0E\xA2\xE7R\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\x01`@Q\x80\x91\x03\x90\xFD[a\x0C\xEF6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\x14\x015\x90V[\x90V[a\r\x06a\r\x016\x86\x90\x03\x86\x01\x86aW\xF0V[a(YV[\x14a\r=W`@Q\x7F\x9C\xC0\x0B[\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\x01`@Q\x80\x91\x03\x90\xFD[\x82``\x015\x82\x82`@Qa\rR\x92\x91\x90aXdV[`@Q\x80\x91\x03\x90 \x14a\r\x91W`@Q\x7F\xD8\x1DX;\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\x01`@Q\x80\x91\x03\x90\xFD[`\0a\r\xDAa\r\xD5\x84\x84\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RPa(\xB5\x92PPPV[a)\"V[\x90P`\0a\x0E\x01\x82`\x08\x81Q\x81\x10a\r\xF4Wa\r\xF4aXtV[` \x02` \x01\x01Qa*\xD8V[\x90P` \x81Q\x11\x15a\x0E?W`@Q\x7F\xD8\x1DX;\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\x01`@Q\x80\x91\x03\x90\xFD[` \x81\x81\x01Q\x82Q\x90\x91\x03`\x03\x1B\x1C6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`T\x015\x81\x03a\x0E\x96W`@Q\x7F\xB8\xED\x880\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\x01`@Q\x80\x91\x03\x90\xFD[PP`\x01\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x163\x17\x90UPP`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16r\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x17\x90UPPV[`\0\x80T`\x01`\x80\x1B\x90\x04`\xFF\x16`\x02\x81\x11\x15a\x0F$Wa\x0F$aUrV[\x14a\x0FBW`@Qc\x06\x7F\xE1\x95`\xE4\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0`\x02\x83\x81T\x81\x10a\x0FWWa\x0FWaXtV[\x90`\0R` `\0 \x90`\x05\x02\x01\x90P`\0a\x0Fr\x84a\x1FLV[\x90Pg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81\x16\x90\x82\x16\x10\x15a\x0F\xDBW`@Q\x7F\xF2D\x0BS\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\x01`@Q\x80\x91\x03\x90\xFD[`\0\x84\x81R`\x06` R`@\x90 T`\xFF\x16\x15a\x10$W`@Q\x7F\xF1\xA9E\x81\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\x01`@Q\x80\x91\x03\x90\xFD[`\0\x84\x81R`\x05` R`@\x90 \x80T\x80\x15\x80\x15a\x10AWP\x85\x15\x15[\x15a\x10\xA4W\x83Td\x01\0\0\0\0\x90\x04`\x01`\x01`\xA0\x1B\x03\x16`\0\x81\x15a\x10gW\x81a\x10vV[`\x01\x86\x01T`\x01`\x01`\xA0\x1B\x03\x16[\x90Pa\x10\x82\x81\x87a+\x8CV[PPP`\0\x94\x85RPP`\x06` RPP`@\x90 \x80T`\xFF\x19\x16`\x01\x17\x90UV[`\0\x86\x81R`\x07` \x90\x81R`@\x91\x82\x90 \x82Q`\x80\x81\x01\x84R\x81T`\xFF\x81\x16\x15\x15\x80\x83Ra\x01\0\x82\x04c\xFF\xFF\xFF\xFF\x16\x94\x83\x01\x94\x90\x94Re\x01\0\0\0\0\0\x90\x04`\x01`\x01`\x80\x1B\x03\x16\x93\x81\x01\x93\x90\x93R`\x01\x01T`\x01`\x01`\xA0\x1B\x03\x16``\x83\x01Ra\x11(W`\x01`\x01`\x80\x1B\x03`@\x82\x01R`\x01\x81R`\0\x86\x90\x03a\x11(W\x81\x95P[`\0\x86\x82` \x01Qc\xFF\xFF\xFF\xFF\x16a\x11@\x91\x90aX\xA0V[\x90P`\0\x83\x82\x11a\x11QW\x81a\x11SV[\x83[` \x84\x01Q\x90\x91Pc\xFF\xFF\xFF\xFF\x16[\x81\x81\x10\x15a\x12sW`\0\x86\x82\x81T\x81\x10a\x11~Wa\x11~aXtV[`\0\x91\x82R` \x80\x83 \x90\x91\x01T\x80\x83R`\x06\x90\x91R`@\x90\x91 T\x90\x91P`\xFF\x16a\x11\xD6W`@Q\x7F\x9A\x07fF\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\x01`@Q\x80\x91\x03\x90\xFD[`\0`\x02\x82\x81T\x81\x10a\x11\xEBWa\x11\xEBaXtV[`\0\x91\x82R` \x90\x91 `\x05\x90\x91\x02\x01\x80T\x90\x91Pd\x01\0\0\0\0\x90\x04`\x01`\x01`\xA0\x1B\x03\x16\x15\x80\x15a\x122WP`\x04\x81\x01T`@\x87\x01Q`\x01`\x01`\x80\x1B\x03\x91\x82\x16\x91\x16\x11[\x15a\x12^W`\x01\x81\x01T`\x01`\x01`\xA0\x1B\x03\x16``\x87\x01R`\x04\x81\x01T`\x01`\x01`\x80\x1B\x03\x16`@\x87\x01R[PP\x80\x80a\x12k\x90aX\xB8V[\x91PPa\x11bV[Pc\xFF\xFF\xFF\xFF\x81\x81\x16` \x85\x81\x01\x91\x82R`\0\x8C\x81R`\x07\x90\x91R`@\x90\x81\x90 \x86Q\x81T\x93Q\x92\x88\x01Q\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\x90\x94\x16\x90\x15\x15\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\xFF\x16\x17a\x01\0\x92\x90\x94\x16\x91\x82\x02\x93\x90\x93\x17\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xFF\xFF\xFF\xFF\xFF\x16e\x01\0\0\0\0\0`\x01`\x01`\x80\x1B\x03\x90\x93\x16\x92\x90\x92\x02\x91\x90\x91\x17\x82U``\x85\x01Q`\x01\x90\x92\x01\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16`\x01`\x01`\xA0\x1B\x03\x90\x93\x16\x92\x90\x92\x17\x90\x91U\x84\x90\x03a\x14\x82W``\x83\x01Q`\0\x8A\x81R`\x06` R`@\x90 \x80T`\xFF\x19\x16`\x01\x17\x90U\x89\x15\x80\x15a\x13\xBFWP`\0Tr\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16[\x15a\x14\x1AW`\x01T`\x01`\x01`\xA0\x1B\x03\x16a\x13\xDA\x81\x8Aa+\x8CV[\x88T`\x01`\x01`\xA0\x1B\x03\x90\x91\x16d\x01\0\0\0\0\x02\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xFF\xFF\xFF\xFF\x90\x91\x16\x17\x88Ua\x14\x80V[a\x14G`\x01`\x01`\xA0\x1B\x03\x82\x16\x15a\x142W\x81a\x14AV[`\x01\x89\x01T`\x01`\x01`\xA0\x1B\x03\x16[\x89a+\x8CV[\x87T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xFF\xFF\xFF\xFF\x16d\x01\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x83\x16\x02\x17\x88U[P[PPPPPPPPPV[`\0\x80`\0T`\x01`\x80\x1B\x90\x04`\xFF\x16`\x02\x81\x11\x15a\x14\xAEWa\x14\xAEaUrV[\x14a\x14\xCCW`@Qc\x06\x7F\xE1\x95`\xE4\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0\x80R`\x06` R\x7FT\xCD\xD3i\xE4\xE8\xA8Q^R\xCAr\xEC\x81l!\x01\x83\x1A\xD1\xF1\x8B\xF4A\x02\xED\x17\x14Y\xC9\xB4\xF8T`\xFF\x16a\x150W`@Q\x7F\x9A\x07fF\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\x01`@Q\x80\x91\x03\x90\xFD[`\0`\x01`\x01`\xA0\x1B\x03\x16`\x02`\0\x81T\x81\x10a\x15OWa\x15OaXtV[`\0\x91\x82R` \x90\x91 `\x05\x90\x91\x02\x01Td\x01\0\0\0\0\x90\x04`\x01`\x01`\xA0\x1B\x03\x16\x14a\x15}W`\x01a\x15\x80V[`\x02[`\0\x80Tg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFFB\x16h\x01\0\0\0\0\0\0\0\0\x02\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16\x81\x17\x83U\x92\x93P\x83\x92\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x17`\x01`\x80\x1B\x83`\x02\x81\x11\x15a\x16$Wa\x16$aUrV[\x02\x17\x90U`\x02\x81\x11\x15a\x169Wa\x169aUrV[`@Q\x7F^\x18o\t\xB9\xC94\x91\xF1N'~\xEA\x7F\xAA]\xE6\xA2\xD4\xBD\xA7Zy\xAFz6\x84\xFB\xFBB\xDA`\x90`\0\x90\xA2\x90V[`\x05` R\x81`\0R`@`\0 \x81\x81T\x81\x10a\x16\x81W`\0\x80\xFD[\x90`\0R` `\0 \x01`\0\x91P\x91PPT\x81V[\x90P\x90V[a\x16\xA8\x83\x83\x83`\x01a\x1A\rV[PPPV[`\0\x81\x81R`\x07` \x90\x81R`@\x80\x83 `\x05\x90\x92R\x82 \x80T\x82Ta\x16\xDE\x90a\x01\0\x90\x04c\xFF\xFF\xFF\xFF\x16\x82aX\xD2V[\x95\x94PPPPPV[``a\x16\x96`T` a+\xCEV[a\x16\xFDa\x1A\xB4V[`\0`\x02`\rT`\xFF\x16`\x02\x81\x11\x15a\x17\x18Wa\x17\x18aUrV[\x03a\x17=`\0\xFD[PPPPPPV[\x80`\0\x03a\x18\xC2W`@Q\x7F\x17\xBF\xE5\xF7\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xA0\x1B\x03\x82\x81\x16`\0\x81\x81R`\x0B` \x90\x81R`@\x80\x83 \x83\x90U`\x03\x90\x91R\x80\x82 \x91\x90\x91UQ\x7F\xF3\xFE\xF3\xA3\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\x81\x01\x91\x90\x91R`$\x81\x01\x83\x90R\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x91\x16\x90c\xF3\xFE\xF3\xA3\x90`D\x01`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a\x19hW`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x19|W=`\0\x80>=`\0\xFD[PPPP`\0\x82`\x01`\x01`\xA0\x1B\x03\x16\x82`@Q`\0`@Q\x80\x83\x03\x81\x85\x87Z\xF1\x92PPP=\x80`\0\x81\x14a\x19\xCDW`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=`\0` \x84\x01>a\x19\xD2V[``\x91P[PP\x90P\x80a\x16\xA8W`@Q\x7F\x83\xE6\xCCk\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\x01`@Q\x80\x91\x03\x90\xFD[3`\x01`\x01`\xA0\x1B\x03\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x14\x80a\x1AlWP3`\x01`\x01`\xA0\x1B\x03\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x14[a\x1A\xA2W`@Q\x7F\xD3\x86\xEF>\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\x01`@Q\x80\x91\x03\x90\xFD[a\x1A\xAE\x84\x84\x84\x84a,\x02V[PPPPV[`\x02`\rT`\xFF\x16`\x02\x81\x11\x15a\x1A\xCDWa\x1A\xCDaUrV[\x14\x80a\x1A\xEFWP`\x01`\rT`\xFF\x16`\x02\x81\x11\x15a\x1A\xEDWa\x1A\xEDaUrV[\x14[\x15a\x1A\xF6WV[`\0`\rT`\xFF\x16`\x02\x81\x11\x15a\x1B\x0FWa\x1B\x0FaUrV[\x14a\x1BFW`@Q\x7F\x07\x8A=\xF4\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\x01`@Q\x80\x91\x03\x90\xFD[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16c\\\x97Z\xBB`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x1B\xA4W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x1B\xC8\x91\x90aX\xE9V[\x15a\x1B\xFFW`@Q\x7F7\x9A~\xD9\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\x01`@Q\x80\x91\x03\x90\xFD[`\0Th\x01\0\0\0\0\0\0\0\0\x90\x04g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\0\x03a\x1C[W`@Q\x7F\xC1\x05&\n\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\x01`@Q\x80\x91\x03\x90\xFD[`@Q\x7F\x03\x14\xD2\xB3\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\x81R0`\x04\x82\x01R`\0\x90\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16\x90c\x03\x14\xD2\xB3\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x1C\xDBW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x1C\xFF\x91\x90aX\xE9V[\x90P\x80a\x1D8W`@Q\x7FHQ\xBD\x9B\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\x01`@Q\x80\x91\x03\x90\xFD[`@Q\x7F\x17\xCF!\xA9\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\x81R0`\x04\x82\x01R\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16\x90c\x17\xCF!\xA9\x90`$\x01`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a\x1D\xB2W`\0\x80\xFD[PZ\xF1\x92PPP\x80\x15a\x1D\xC3WP`\x01[P`@Q\x7FIk\x9C\x16\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\x81R0`\x04\x82\x01R`\0\x90\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16\x90cIk\x9C\x16\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x1EDW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x1Eh\x91\x90aX\xE9V[\x90P\x80\x15a\x1E\x82W`\r\x80T`\xFF\x19\x16`\x01\x17\x90Ua\x1E\x90V[`\r\x80T`\xFF\x19\x16`\x02\x17\x90U[`\rT`@Q\x7F\x99\x08\xEA\xAC\x06E\xDF\x9D\x07\x04\xD0j\xDC\x9E\x073|\x95\x1D\xE2\xF0k_(6\x15\x1DH\xD5\xE4r/\x91a\x1E\xC7\x91`\xFF\x90\x91\x16\x90aU\xA9V[`@Q\x80\x91\x03\x90\xA1PPV[a\x16\xA8\x83\x83\x83`\0a\x1A\rV[2`\x01`\x01`\xA0\x1B\x03\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x14a\x1FBW`@Q\x7F\xD3\x86\xEF>\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\x01`@Q\x80\x91\x03\x90\xFD[a\x1FJa5\xA3V[V[`\0\x80`\0T`\x01`\x80\x1B\x90\x04`\xFF\x16`\x02\x81\x11\x15a\x1FmWa\x1FmaUrV[\x14a\x1F\x8BW`@Qc\x06\x7F\xE1\x95`\xE4\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0`\x02\x83\x81T\x81\x10a\x1F\xA0Wa\x1F\xA0aXtV[`\0\x91\x82R` \x82 `\x05\x90\x91\x02\x01\x80T\x90\x92Pc\xFF\xFF\xFF\xFF\x90\x81\x16\x14a \x06W\x81T`\x02\x80T\x90\x91c\xFF\xFF\xFF\xFF\x16\x90\x81\x10a\x1F\xDEWa\x1F\xDEaXtV[\x90`\0R` `\0 \x90`\x05\x02\x01`\x04\x01`\x10\x90T\x90a\x01\0\n\x90\x04`\x01`\x01`\x80\x1B\x03\x16\x90P[`\x04\x82\x01T`\0\x90a 1\x90`\x01`\x80\x1B\x90\x04g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90V[a E\x90g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16BaX\xD2V[a [a $\x84`\x01`\x01`\x80\x1B\x03\x16`@\x1C\x90V[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a o\x91\x90aX\xA0V[\x90Pg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x11a \xBCW\x80a\x16\xDEV[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x95\x94PPPPPV[`\0\x80a!c\x83`\x01`\x01`\x80\x1B\x03\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1Fc\x07\xC4\xAC\xDD`\xE0\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\xFF\x16\x90P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81\x11\x15a!\xC2W`@Q\x7FV\xF5{+\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\x01`@Q\x80\x91\x03\x90\xFD[d.\x90\xED\xD0\0b\x06\x1A\x80c\x11\xE1\xA3\0`\0a!\xDD\x83\x83aY\x1CV[\x90Pg\r\xE0\xB6\xB3\xA7d\0\0`\0a\"\x14\x82\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0aY0V[\x90P`\0a\"2a\"-g\r\xE0\xB6\xB3\xA7d\0\0\x86aY0V[a;@V[\x90P`\0a\"@\x84\x84a=\x92V[\x90P`\0a\"N\x83\x83a=\xE1V[\x90P`\0a\"[\x82a>\x0FV[\x90P`\0a\"z\x82a\"ug\r\xE0\xB6\xB3\xA7d\0\0\x8FaY0V[a?\xF7V[\x90P`\0a\"\x88\x8B\x83a=\xE1V[\x90Pa\"\x94\x81\x8DaY0V[\x9F\x9EPPPPPPPPPPPPPPPV[`\x02\x81\x81T\x81\x10a\"\xB7W`\0\x80\xFD[`\0\x91\x82R` \x90\x91 `\x05\x90\x91\x02\x01\x80T`\x01\x82\x01T`\x02\x83\x01T`\x03\x84\x01T`\x04\x90\x94\x01Tc\xFF\xFF\xFF\xFF\x84\x16\x95Pd\x01\0\0\0\0\x90\x93\x04`\x01`\x01`\xA0\x1B\x03\x90\x81\x16\x94\x92\x16\x92`\x01`\x01`\x80\x1B\x03\x91\x82\x16\x92\x91\x80\x82\x16\x91`\x01`\x80\x1B\x90\x04\x16\x87V[`\0`\x02`\rT`\xFF\x16`\x02\x81\x11\x15a#6Wa#6aUrV[\x03a#WWP`\x01`\x01`\xA0\x1B\x03\x16`\0\x90\x81R`\x0B` R`@\x90 T\x90V[P`\x01`\x01`\xA0\x1B\x03\x16`\0\x90\x81R`\x03` R`@\x90 T\x90V[3`\x01`\x01`\xA0\x1B\x03\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x14\x80a#\xD2WP3`\x01`\x01`\xA0\x1B\x03\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x14[a$\x08W`@Q\x7F\xD3\x86\xEF>\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\x01`@Q\x80\x91\x03\x90\xFD[a\x18\x80\x86\x86\x86\x86\x86\x86a@(V[`\0\x80T`\x01`\x80\x1B\x90\x04`\xFF\x16`\x02\x81\x11\x15a$5Wa$5aUrV[\x14a$SW`@Qc\x06\x7F\xE1\x95`\xE4\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0\x80`\0\x80a$b\x86aE\x84V[\x93P\x93P\x93P\x93P`\0a$x\x85\x85\x85\x85aH\xDDV[\x90P`\0\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16c}\xC0\xD1\xD0`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a$\xDAW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a$\xFE\x91\x90aYOV[\x90P`\x01\x89\x03a%\xCBW`\x01`\x01`\xA0\x1B\x03\x81\x16cR\xF0\xF3\xAD\x8A\x84a%/6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`4\x015\x90V[`@Q\x7F\xFF\xFF\xFF\xFF\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`\xE0\x86\x90\x1B\x16\x81R`\x04\x81\x01\x93\x90\x93R`$\x83\x01\x91\x90\x91R`D\x82\x01R` `d\x82\x01R`\x84\x81\x01\x8A\x90R`\xA4\x01[` `@Q\x80\x83\x03\x81`\0\x87Z\xF1\x15\x80\x15a%\xA1W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a%\xC5\x91\x90aYlV[Pa\x14\x82V[`\x02\x89\x03a%\xEAW`\x01`\x01`\xA0\x1B\x03\x81\x16cR\xF0\xF3\xAD\x8A\x84\x89a%/V[`\x03\x89\x03a&\tW`\x01`\x01`\xA0\x1B\x03\x81\x16cR\xF0\xF3\xAD\x8A\x84\x87a%/V[`\x04\x89\x03a'>W`\0a&F`\x01`\x01`\x80\x1B\x03\x85\x16\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0aI|V[`\tTa&S\x91\x90aX\xA0V[a&^\x90`\x01aX\xA0V[\x90P6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`T\x015\x81\x10a&\x8BW6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`T\x015a&\x8DV[\x80[\x90P`\x01`\x01`\xA0\x1B\x03\x82\x16cR\xF0\xF3\xAD\x8B\x85`@Q`\xE0\x84\x90\x1B\x7F\xFF\xFF\xFF\xFF\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\x16\x81R`\x04\x81\x01\x92\x90\x92R`$\x82\x01R`\xC0\x84\x90\x1B`D\x82\x01R`\x08`d\x82\x01R`\x84\x81\x01\x8B\x90R`\xA4\x01` `@Q\x80\x83\x03\x81`\0\x87Z\xF1\x15\x80\x15a'\x13W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a'7\x91\x90aYlV[PPa\x14\x82V[`\x05\x89\x03a'\xCAW`@Q\x7FR\xF0\xF3\xAD\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\x81\x01\x8A\x90R`$\x81\x01\x83\x90R\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\xC0\x1B`D\x82\x01R`\x08`d\x82\x01R`\x84\x81\x01\x88\x90R`\x01`\x01`\xA0\x1B\x03\x82\x16\x90cR\xF0\xF3\xAD\x90`\xA4\x01a%\x82V[`@Q\x7F\xFF\x13~e\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\x01`@Q\x80\x91\x03\x90\xFD[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x006`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\x14\x015``a(7a\x16\xE7V[\x90P\x90\x91\x92V[`\0\x81\x83\x10\x15a(NW\x81a(PV[\x82[\x90P[\x92\x91PPV[`\0\x81`\0\x01Q\x82` \x01Q\x83`@\x01Q\x84``\x01Q`@Q` \x01a(\x98\x94\x93\x92\x91\x90\x93\x84R` \x84\x01\x92\x90\x92R`@\x83\x01R``\x82\x01R`\x80\x01\x90V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 \x90P\x91\x90PV[`@\x80Q\x80\x82\x01\x90\x91R`\0\x80\x82R` \x82\x01R\x81Q`\0\x03a)\x04W`@Q\x7FZ\xB4X\xFB\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\x01`@Q\x80\x91\x03\x90\xFD[P`@\x80Q\x80\x82\x01\x90\x91R\x81Q\x81R` \x91\x82\x01\x91\x81\x01\x91\x90\x91R\x90V[```\0\x80`\0a)2\x85aJ\x11V[\x91\x94P\x92P\x90P`\x01\x81`\x01\x81\x11\x15a)MWa)MaUrV[\x14a)\x84W`@Q\x7FK\x9Cj\xBE\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\x01`@Q\x80\x91\x03\x90\xFD[\x84Qa)\x90\x83\x85aX\xA0V[\x14a)\xC7W`@Q\x7F\\U7\xB8\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\x01`@Q\x80\x91\x03\x90\xFD[`@\x80Q` \x80\x82Ra\x04 \x82\x01\x90\x92R\x90\x81` \x01[`@\x80Q\x80\x82\x01\x90\x91R`\0\x80\x82R` \x82\x01R\x81R` \x01\x90`\x01\x90\x03\x90\x81a)\xDEW\x90PP\x93P`\0\x83[\x86Q\x81\x10\x15a*\xCCW`\0\x80a*Q`@Q\x80`@\x01`@R\x80\x85\x8C`\0\x01Qa*5\x91\x90aX\xD2V[\x81R` \x01\x85\x8C` \x01Qa*J\x91\x90aX\xA0V[\x90RaJ\x11V[P\x91P\x91P`@Q\x80`@\x01`@R\x80\x83\x83a*m\x91\x90aX\xA0V[\x81R` \x01\x84\x8B` \x01Qa*\x82\x91\x90aX\xA0V[\x81RP\x88\x85\x81Q\x81\x10a*\x97Wa*\x97aXtV[` \x90\x81\x02\x91\x90\x91\x01\x01Ra*\xAD`\x01\x85aX\xA0V[\x93Pa*\xB9\x81\x83aX\xA0V[a*\xC3\x90\x84aX\xA0V[\x92PPPa*\x0BV[P\x84RP\x91\x93\x92PPPV[```\0\x80`\0a*\xE8\x85aJ\x11V[\x91\x94P\x92P\x90P`\0\x81`\x01\x81\x11\x15a+\x03Wa+\x03aUrV[\x14a+:W`@Q\x7F\x1F\xF9\xB2\xE4\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\x01`@Q\x80\x91\x03\x90\xFD[a+D\x82\x84aX\xA0V[\x85Q\x14a+}W`@Q\x7F\\U7\xB8\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\x01`@Q\x80\x91\x03\x90\xFD[a\x16\xDE\x85` \x01Q\x84\x84aN\xAFV[`\x02\x81\x01T`\x01`\x01`\xA0\x1B\x03\x83\x16`\0\x90\x81R`\x03` R`@\x81 \x80T`\x01`\x01`\x80\x1B\x03\x90\x93\x16\x92\x90\x91\x90a+\xC5\x90\x84\x90aX\xA0V[\x90\x91UPPPPV[`@Q\x81\x81R6`\x01\x19\x81\x015`\xF0\x1C\x90\x03\x82\x84\x82\x01` \x84\x017\x82` \x83\x01\x01`\0\x81R` \x81\x01`@RPP\x92\x91PPV[`\0\x80T`\x01`\x80\x1B\x90\x04`\xFF\x16`\x02\x81\x11\x15a,!Wa,!aUrV[\x14a,?W`@Qc\x06\x7F\xE1\x95`\xE4\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0`\x02\x84\x81T\x81\x10a,TWa,TaXtV[`\0\x91\x82R` \x91\x82\x90 `@\x80Q`\xE0\x81\x01\x82R`\x05\x90\x93\x02\x90\x91\x01\x80Tc\xFF\xFF\xFF\xFF\x81\x16\x84R`\x01`\x01`\xA0\x1B\x03d\x01\0\0\0\0\x90\x91\x04\x81\x16\x94\x84\x01\x94\x90\x94R`\x01\x81\x01T\x90\x93\x16\x90\x82\x01R`\x02\x82\x01T`\x01`\x01`\x80\x1B\x03\x90\x81\x16``\x83\x01R`\x03\x83\x01T`\x80\x83\x01\x81\x90R`\x04\x90\x93\x01T\x80\x82\x16`\xA0\x84\x01R`\x01`\x80\x1B\x90\x04\x16`\xC0\x82\x01R\x91P\x85\x14a-\x18W`@Q\x7F0\x14\x032\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\x01`@Q\x80\x91\x03\x90\xFD[`\xA0\x81\x01Q`\0\x83\x15`\x01`\x01`\x80\x1B\x03\x83\x16\x17`\x01\x1B\x90P`\0a-\xAD\x82`\x01`\x01`\x80\x1B\x03\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1Fc\x07\xC4\xAC\xDD`\xE0\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\xFF\x16\x90P\x86\x15\x80a-\xE8WPa-\xE5\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x02aX\xA0V[\x81\x14[\x80\x15a-\xF2WP\x84\x15[\x15a.)W`@Q\x7F\xA4&7\xBC\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\x01`@Q\x80\x91\x03\x90\xFD[`\0Tr\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16\x80\x15a.OWP\x86\x15[\x15a.\x86W`@Q\x7F\x0E\xA2\xE7R\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\x01`@Q\x80\x91\x03\x90\xFD[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81\x11\x15a.\xE0W`@Q\x7FV\xF5{+\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\x01`@Q\x80\x91\x03\x90\xFD[a/\x0B\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01aX\xA0V[\x81\x03a/\x1DWa/\x1D\x86\x88\x85\x88aODV[4a/'\x83a \xE6V[\x14a/^W`@Q\x7F\x86 \xAA\x19\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\x01`@Q\x80\x91\x03\x90\xFD[`\0a/i\x88a\x1FLV[\x90Pg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81\x16\x90\x82\x16\x03a/\xD1W`@Q\x7F3\x81\xD1\x14\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\x01`@Q\x80\x91\x03\x90\xFD[`\0a/\xFE`\x01\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0aX\xD2V[\x83\x03a1\"W\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16c}\xC0\xD1\xD0`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a0bW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a0\x86\x91\x90aYOV[`\x01`\x01`\xA0\x1B\x03\x16c\xF3\xF4\x80\xD9`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a0\xC3W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a0\xE7\x91\x90aYlV[a1\x1B\x90\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16aY\x85V[\x90Pa1\xB5V[a1M`\x01\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0aX\xD2V[\x83\x03a1\x88Wa1\x1B\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\x02aY\xB1V[P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16[a1\xE9\x81\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16aY\xE1V[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a2\x04\x83g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90V[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x11\x15a2KWa2H\x81\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16aY\xE1V[\x91P[`\0`@\x83\x90\x1BB\x17`\0\x8A\x81R`\x80\x87\x90\x1B`\x01`\x01`\x80\x1B\x03\x8D\x16\x17` R`@\x81 \x91\x92P\x90`\0\x81\x81R`\x04` R`@\x90 T\x90\x91P`\xFF\x16\x15a2\xC0W`@Q\x7F\x80I~;\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x04`\0\x83\x81R` \x01\x90\x81R` \x01`\0 `\0a\x01\0\n\x81T\x81`\xFF\x02\x19\x16\x90\x83\x15\x15\x02\x17\x90UP`\x02`@Q\x80`\xE0\x01`@R\x80\x8Dc\xFF\xFF\xFF\xFF\x16\x81R` \x01`\0`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x013`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x014`\x01`\x01`\x80\x1B\x03\x16\x81R` \x01\x8C\x81R` \x01\x88`\x01`\x01`\x80\x1B\x03\x16\x81R` \x01\x84`\x01`\x01`\x80\x1B\x03\x16\x81RP\x90\x80`\x01\x81T\x01\x80\x82U\x80\x91PP`\x01\x90\x03\x90`\0R` `\0 \x90`\x05\x02\x01`\0\x90\x91\x90\x91\x90\x91P`\0\x82\x01Q\x81`\0\x01`\0a\x01\0\n\x81T\x81c\xFF\xFF\xFF\xFF\x02\x19\x16\x90\x83c\xFF\xFF\xFF\xFF\x16\x02\x17\x90UP` \x82\x01Q\x81`\0\x01`\x04a\x01\0\n\x81T\x81`\x01`\x01`\xA0\x1B\x03\x02\x19\x16\x90\x83`\x01`\x01`\xA0\x1B\x03\x16\x02\x17\x90UP`@\x82\x01Q\x81`\x01\x01`\0a\x01\0\n\x81T\x81`\x01`\x01`\xA0\x1B\x03\x02\x19\x16\x90\x83`\x01`\x01`\xA0\x1B\x03\x16\x02\x17\x90UP``\x82\x01Q\x81`\x02\x01`\0a\x01\0\n\x81T\x81`\x01`\x01`\x80\x1B\x03\x02\x19\x16\x90\x83`\x01`\x01`\x80\x1B\x03\x16\x02\x17\x90UP`\x80\x82\x01Q\x81`\x03\x01U`\xA0\x82\x01Q\x81`\x04\x01`\0a\x01\0\n\x81T\x81`\x01`\x01`\x80\x1B\x03\x02\x19\x16\x90\x83`\x01`\x01`\x80\x1B\x03\x16\x02\x17\x90UP`\xC0\x82\x01Q\x81`\x04\x01`\x10a\x01\0\n\x81T\x81`\x01`\x01`\x80\x1B\x03\x02\x19\x16\x90\x83`\x01`\x01`\x80\x1B\x03\x16\x02\x17\x90UPPP`\x05`\0\x8C\x81R` \x01\x90\x81R` \x01`\0 `\x01`\x02\x80T\x90Pa4\xB7\x91\x90aX\xD2V[\x81T`\x01\x81\x01\x83U`\0\x92\x83R` \x80\x84 \x90\x91\x01\x91\x90\x91U3\x82R`\x0B\x90R`@\x81 \x80T4\x92\x90a4\xEB\x90\x84\x90aX\xA0V[\x92PP\x81\x90UP\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16c\xD0\xE3\r\xB04`@Q\x82c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01`\0`@Q\x80\x83\x03\x81\x85\x88\x80;\x15\x80\x15a5MW`\0\x80\xFD[PZ\xF1\x15\x80\x15a5aW=`\0\x80>=`\0\xFD[PP`@Q3\x93P\x8D\x92P\x8E\x91P\x7F\x9B2Et\x0E\xC3\xB1U\t\x8AU\xBE\x84\x95zM\xA1>\xAF\x7F\x14\xA8\xBCoS\x12l\x0B\x93P\xF2\xBE\x90`\0\x90\xA4PPPPPPPPPPPPV[`\0Tq\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16\x15a5\xF5W`@Q\x7F\r\xC1I\xF0\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\x01`@Q\x80\x91\x03\x90\xFD[`\0\x80\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16c\xD8>\xF2g`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01`@\x80Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a6UW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a6y\x91\x90aZ\nV[\x90\x92P\x90P\x81a6\xB5W`@Q\x7Fjk\xC3\xB2\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\x01`@Q\x80\x91\x03\x90\xFD[`@\x80Q\x80\x82\x01\x90\x91R\x82\x81R` \x01\x81\x90R`\x08\x82\x90U`\t\x81\x90U`z6\x14a7\x0CW`@Q\x7F\x98$\xBD\xAB\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\x01`@Q\x80\x91\x03\x90\xFD[\x806`\x01\x19\x81\x015`\xF0\x1C\x90\x03`T\x015\x11a7jW`@Q\x7F\xF4\x029\xDB\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\x81R6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\x14\x015`\x04\x82\x01R`$\x01[`@Q\x80\x91\x03\x90\xFD[`@\x80Q`\xE0\x81\x01\x82Rc\xFF\xFF\xFF\xFF\x80\x82R`\0` \x80\x84\x01\x82\x81R6`\x01\x19\x81\x015`\xF0\x1C\x90\x03\x805``\x90\x81\x1C\x87\x89\x01\x81\x81R`\x01`\x01`\x80\x1B\x034\x81\x81\x16\x94\x8B\x01\x94\x85R`\x14\x90\x95\x015`\x80\x8B\x01\x90\x81R`\x01`\xA0\x8C\x01\x81\x81RB\x84\x16`\xC0\x8E\x01\x90\x81R`\x02\x80T\x93\x84\x01\x81U\x8CR\x9CQ\x7F@W\x87\xFA\x12\xA8#\xE0\xF2\xB7c\x1C\xC4\x1B;\xA8\x82\x8B3!\xCA\x81\x11\x11\xFAu\xCD:\xA3\xBBZ\xCE`\x05\x90\x93\x02\x92\x83\x01\x80T\x9AQ\x91\x90\x9D\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x9A\x16\x99\x90\x99\x17d\x01\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x9A\x8B\x16\x02\x17\x90\x9BU\x92Q\x7F@W\x87\xFA\x12\xA8#\xE0\xF2\xB7c\x1C\xC4\x1B;\xA8\x82\x8B3!\xCA\x81\x11\x11\xFAu\xCD:\xA3\xBBZ\xCF\x84\x01\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x91\x90\x98\x16\x17\x90\x96U\x92Q\x7F@W\x87\xFA\x12\xA8#\xE0\xF2\xB7c\x1C\xC4\x1B;\xA8\x82\x8B3!\xCA\x81\x11\x11\xFAu\xCD:\xA3\xBBZ\xD0\x82\x01\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x91\x85\x16\x91\x90\x91\x17\x90U\x93Q\x7F@W\x87\xFA\x12\xA8#\xE0\xF2\xB7c\x1C\xC4\x1B;\xA8\x82\x8B3!\xCA\x81\x11\x11\xFAu\xCD:\xA3\xBBZ\xD1\x85\x01U\x95Q\x96Q\x96\x81\x16`\x01`\x80\x1B\x97\x90\x91\x16\x96\x90\x96\x02\x95\x90\x95\x17\x7F@W\x87\xFA\x12\xA8#\xE0\xF2\xB7c\x1C\xC4\x1B;\xA8\x82\x8B3!\xCA\x81\x11\x11\xFAu\xCD:\xA3\xBBZ\xD2\x90\x91\x01U\x81Tq\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x17\x82U\x91\x81R`\x0B\x90\x91R\x91\x82 \x80T\x91\x92\x90\x91a9\xAB\x90\x84\x90aX\xA0V[\x92PP\x81\x90UP\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16c\xD0\xE3\r\xB04`@Q\x82c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01`\0`@Q\x80\x83\x03\x81\x85\x88\x80;\x15\x80\x15a:\rW`\0\x80\xFD[PZ\xF1\x15\x80\x15a:!W=`\0\x80>=`\0\xFD[PP`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\x16Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x17\x90UPP`@\x80Q\x7F<\x9F9|\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\x90Q\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0c\xFF\xFF\xFF\xFF\x16\x92P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16\x91c<\x9F9|\x91`\x04\x80\x83\x01\x92` \x92\x91\x90\x82\x90\x03\x01\x81\x86Z\xFA\x15\x80\x15a;\0W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a;$\x91\x90aZ.V[`\n\x80T`\xFF\x19\x16c\xFF\xFF\xFF\xFF\x92\x90\x92\x16\x92\x90\x92\x14\x17\x90UPPV[`\x01`\x01`\x80\x1B\x03\x81\x11`\x07\x1B\x81\x81\x1Cg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x10`\x06\x1B\x17\x81\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x81\x81\x1Ca\xFF\xFF\x10`\x04\x1B\x17\x81\x81\x1C`\xFF\x10`\x03\x1B\x17`\0\x82\x13a;\x96Wc\x16\x15\xE68`\0R`\x04`\x1C\xFD[\x7F\xF8\xF9\xF9\xFA\xF9\xFD\xFA\xFB\xF9\xFD\xFC\xFD\xFA\xFB\xFC\xFE\xF9\xFA\xFD\xFA\xFC\xFC\xFB\xFE\xFA\xFA\xFC\xFB\xFF\xFF\xFF\xFFo\x84!\x08B\x10\x84!\x08\xCCc\x18\xC6\xDBmT\xBE\x83\x83\x1C\x1C`\x1F\x16\x1A\x18\x90\x81\x1B`\x9F\x90\x81\x1ClFWr\xB2\xBB\xBB_\x82K\x15 z0\x81\x01\x81\x02``\x90\x81\x1Dm\x03\x88\xEA\xA2t\x12\xD5\xAC\xA0&\x81]cn\x01\x82\x02\x81\x1Dm\r\xF9\x9A\xC5\x02\x03\x1B\xF9S\xEF\xF4r\xFD\xCC\x01\x82\x02\x81\x1Dm\x13\xCD\xFF\xB2\x9DQ\xD9\x93\"\xBD\xFF_\"\x11\x01\x82\x02\x81\x1Dm\n\x0Ft #\xDE\xF7\x83\xA3\x07\xA9\x86\x91.\x01\x82\x02\x81\x1Dm\x01\x92\r\x80C\xCA\x89\xB5#\x92S(NB\x01\x82\x02\x81\x1Dl\x0Bz\x86\xD77Th\xFA\xC6g\xA0\xA5'\x01l)P\x8EE\x85C\xD8\xAAM\xF2\xAB\xEEx\x83\x01\x83\x02\x82\x1Dm\x019`\x1A.\xFA\xBEq~`L\xBBH\x94\x01\x83\x02\x82\x1Dm\x02$\x7Fz{e\x942\x06I\xAA\x03\xAB\xA1\x01\x83\x02\x82\x1D\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFFs\xC0\xC7\x16\xA5\x94\xE0\rT\xE3\xC4\xCB\xC9\x01\x83\x02\x82\x1D\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFD\xC7\xB8\x8CB\x0ES\xA9\x89\x053\x12\x9Fo\x01\x83\x02\x90\x91\x1D\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFFF_\xDA'\xEBMc\xDE\xD4t\xE5\xF82\x01\x90\x91\x02\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF5\xF6\xAF\x8F{3\x96dO\x18\xE1W\x96\0\0\0\0\0\0\0\0\0\0\0\0\x01\x05q\x13@\xDA\xA0\xD5\xF7i\xDB\xA1\x91\\\xEFY\xF0\x81ZU\x06\x02\x91\x90\x03}\x02g\xA3l\x0C\x95\xB3\x97Z\xB3\xEE[ :v\x14\xA3\xF7Ss\xF0G\xD8\x03\xAE{f\x87\xF2\xB3\x02\x01}W\x11^G\x01\x8Cqw\xEE\xBF|\xD3p\xA35j\x1Bxc\0\x8AZ\xE8\x02\x8Cr\xB8\x86B\x84\x01`\xAE\x1D\x90V[`\0x\x12r]\xD1\xD2C\xAB\xA0\xE7_\xE6E\xCCHs\xF9\xE6Z\xFEh\x8C\x92\x8E\x1F!\x83\x11g\r\xE0\xB6\xB3\xA7d\0\0\x02\x15\x82\x02a=\xCFWc|_H}`\0R`\x04`\x1C\xFD[Pg\r\xE0\xB6\xB3\xA7d\0\0\x91\x90\x91\x02\x04\x90V[`\0\x81`\0\x19\x04\x83\x11\x82\x02\x15a=\xFFWc\xBA\xC6^[`\0R`\x04`\x1C\xFD[Pg\r\xE0\xB6\xB3\xA7d\0\0\x91\x02\x04\x90V[`\0\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFD\xC0\xD0W\t%\xA4b\xD7\x82\x13a>=W\x91\x90PV[h\x07U\xBFy\x8BJ\x1B\xF1\xE5\x82\x12a>[Wc\xA3{\xFE\xC9`\0R`\x04`\x1C\xFD[e\x03x-\xAC\xE9\xD9`N\x83\x90\x1B\x05\x91P`\0``k\xB1r\x17\xF7\xD1\xCFy\xAB\xC9\xE3\xB3\x98\x84\x82\x1B\x05k\x80\0\0\0\0\0\0\0\0\0\0\0\x01\x90\x1Dk\xB1r\x17\xF7\xD1\xCFy\xAB\xC9\xE3\xB3\x98\x81\x02\x90\x93\x03\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xDB\xF3\xCC\xF1`M&4P\xF0*U\x04\x81\x01\x81\x02``\x90\x81\x1Dm\x02wYI\x91\xCF\xC8_n$a\x83|\xD9\x01\x82\x02\x81\x1D\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE5\xAD\xED\xAA\x1C\xB0\x95\xAF\x9EM\xA1\x0E6<\x01\x82\x02\x81\x1Dm\xB1\xBB\xB2\x01\xF4C\xCF\x96/\x1A\x1D=\xB4\xA5\x01\x82\x02\x81\x1D\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFD8\xDCw&\x08\xB0\xAEV\xCC\xE0\x12\x96\xC0\xEB\x01\x82\x02\x81\x1Dn\x05\x18\x0B\xB1G\x99\xABG\xA8\xA8\xCB*R}W\x01m\x02\xD1g W{\xD1\x9B\xF6\x14\x17o\xE9\xEAl\x10\xFEh\xE7\xFD7\xD0\0{q?vP\x84\x01\x84\x02\x83\x1D\x90\x81\x01\x90\x84\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE,i\x81,\xF0;\x07c\xFDEJ\x8F~\x01\x02\x90\x91\x1Dn\x05\x87\xF5\x03\xBBn\xA2\x9D%\xFC\xB7@\x19dP\x01\x90\x91\x02y\xD85\xEB\xBA\x82L\x98\xFB1\xB8;,\xA4\\\0\0\0\0\0\0\0\0\0\0\0\0\x01\x05t\x02\x9D\x9D\xC3\x85c\xC3.\\/m\xC1\x92\xEEp\xEFe\xF9\x97\x8A\xF3\x02`\xC3\x93\x90\x93\x03\x92\x90\x92\x1C\x92\x91PPV[`\0a(Pg\r\xE0\xB6\xB3\xA7d\0\0\x83a@\x0F\x86a;@V[a@\x19\x91\x90aZTV[a@#\x91\x90a[\x10V[a>\x0FV[`\0\x80T`\x01`\x80\x1B\x90\x04`\xFF\x16`\x02\x81\x11\x15a@GWa@GaUrV[\x14a@eW`@Qc\x06\x7F\xE1\x95`\xE4\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0`\x02\x87\x81T\x81\x10a@zWa@zaXtV[`\0\x91\x82R` \x82 `\x05\x91\x90\x91\x02\x01`\x04\x81\x01T\x90\x92P`\x01`\x01`\x80\x1B\x03\x16\x90\x87\x15\x82\x17`\x01\x1B\x90Pa@\xD0\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01aX\xA0V[aAJ\x82`\x01`\x01`\x80\x1B\x03\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1Fc\x07\xC4\xAC\xDD`\xE0\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\xFF\x16\x14aA\x84W`@Q\x7F_S\xDD\x98\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\x01`@Q\x80\x91\x03\x90\xFD[`\0\x80\x89\x15aB`WaA\xD7\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0aX\xD2V[`\x01\x90\x1BaA\xED\x84`\x01`\x01`\x80\x1B\x03\x16aP\xD3V[`\x01`\x01`\x80\x1B\x03\x16aB\0\x91\x90a[ZV[\x15aB4WaB+aB\x1C`\x01`\x01`\x01`\x80\x1B\x03\x87\x16a[nV[\x86Tc\xFF\xFF\xFF\xFF\x16`\0aQYV[`\x03\x01TaBVV[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0[\x91P\x84\x90PaB\x81V[`\x03\x85\x01T\x91PaB~aB\x1C`\x01`\x01`\x80\x1B\x03\x86\x16`\x01a[\x8EV[\x90P[`\x08\x82\x90\x1B`\x08\x8A\x8A`@QaB\x98\x92\x91\x90aXdV[`@Q\x80\x91\x03\x90 \x90\x1B\x14aB\xD9W`@Q\x7FieP\xFF\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\x01`@Q\x80\x91\x03\x90\xFD[`\0aB\xE4\x8CaR\"V[\x90P`\0aB\xF3\x83`\x03\x01T\x90V[`@Q\x7F\xE1L\xED2\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\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16\x90c\xE1L\xED2\x90aC`\x90\x8F\x90\x8F\x90\x8F\x90\x8F\x90\x8A\x90`\x04\x01a[\xF9V[` `@Q\x80\x83\x03\x81`\0\x87Z\xF1\x15\x80\x15aC\x7FW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90aC\xA3\x91\x90aYlV[`\x04\x85\x01T\x91\x14\x91P`\0\x90`\x02\x90aD,\x90`\x01`\x01`\x80\x1B\x03\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1Fc\x07\xC4\xAC\xDD`\xE0\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[aD\xA6\x89`\x01`\x01`\x80\x1B\x03\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1Fc\x07\xC4\xAC\xDD`\xE0\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[aD\xB0\x91\x90a\\3V[aD\xBA\x91\x90a\\VV[`\xFF\x16\x15\x90P\x81\x15\x15\x81\x03aD\xFBW`@Q\x7F\xFBN@\xDD\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\x01`@Q\x80\x91\x03\x90\xFD[\x87Td\x01\0\0\0\0\x90\x04`\x01`\x01`\xA0\x1B\x03\x16\x15aEEW`@Q\x7F\x90q\xE6\xAF\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\x01`@Q\x80\x91\x03\x90\xFD[PP\x85T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xFF\xFF\xFF\xFF\x163d\x01\0\0\0\0\x02\x17\x90\x95UPPPPPPPPPPPV[`\0\x80`\0\x80`\0\x85\x90P`\0`\x02\x82\x81T\x81\x10aE\xA4WaE\xA4aXtV[`\0\x91\x82R` \x90\x91 `\x04`\x05\x90\x92\x02\x01\x90\x81\x01T\x90\x91P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90aFY\x90`\x01`\x01`\x80\x1B\x03\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1Fc\x07\xC4\xAC\xDD`\xE0\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\xFF\x16\x11aF\x93W`@Q\x7F\xB3K\\\"\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\x01`@Q\x80\x91\x03\x90\xFD[`\0\x81[`\x04\x83\x01T\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90aG8\x90`\x01`\x01`\x80\x1B\x03\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1Fc\x07\xC4\xAC\xDD`\xE0\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\xFF\x16\x92P\x82\x11\x15aG\xADW\x82Tc\xFF\xFF\xFF\xFF\x16aGw\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01aX\xA0V[\x83\x03aG\x81W\x83\x91P[`\x02\x81\x81T\x81\x10aG\x94WaG\x94aXtV[\x90`\0R` `\0 \x90`\x05\x02\x01\x93P\x80\x94PPaF\x97V[`\x04\x81\x81\x01T\x90\x84\x01T`\x01`\x01`\x80\x1B\x03\x91\x82\x16\x91\x16`\0\x81`\x01`\x01`\x80\x1B\x03\x16aG\xF2aG\xE6\x85`\x01`\x01`\x80\x1B\x03\x16`\x01\x1C\x90V[`\x01`\x01`\x80\x1B\x03\x16\x90V[`\x01`\x01`\x80\x1B\x03\x16\x14\x90P\x80\x15aH\x8BW`\0aH\x18\x83`\x01`\x01`\x80\x1B\x03\x16aP\xD3V[`\x01`\x01`\x80\x1B\x03\x16\x11\x15aHhW`\0aHHaH@`\x01`\x01`\x01`\x80\x1B\x03\x86\x16a[nV[\x89`\x01aQYV[`\x03\x81\x01T`\x04\x90\x91\x01T\x90\x9CP`\x01`\x01`\x80\x1B\x03\x16\x9APaHn\x90PV[`\x08T\x9AP[`\x03\x86\x01T`\x04\x87\x01T\x90\x99P`\x01`\x01`\x80\x1B\x03\x16\x97PaH\xCFV[`\0aH\xA4aH@`\x01`\x01`\x80\x1B\x03\x85\x16`\x01a[\x8EV[`\x03\x80\x89\x01T`\x04\x80\x8B\x01T\x92\x84\x01T\x93\x01T\x90\x9EP`\x01`\x01`\x80\x1B\x03\x91\x82\x16\x9DP\x91\x9BP\x16\x98PP[PPPPPPP\x91\x93P\x91\x93V[`\0`\x01`\x01`\x80\x1B\x03\x84\x16\x15aI8W`@\x80Q` \x81\x01\x87\x90R`\x01`\x01`\x80\x1B\x03\x80\x87\x16\x92\x82\x01\x92\x90\x92R``\x81\x01\x85\x90R\x90\x83\x16`\x80\x82\x01R`\xA0\x01`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 a\x16\xDEV[\x82\x82`@Q` \x01aI]\x92\x91\x90\x91\x82R`\x01`\x01`\x80\x1B\x03\x16` \x82\x01R`@\x01\x90V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 \x95\x94PPPPPV[`\0\x80aI\xF0\x84~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1Fc\x07\xC4\xAC\xDD`\xE0\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\xFF\x16\x90P\x80\x83\x03`\x01\x84\x1B`\x01\x80\x83\x1B\x03\x86\x83\x1B\x17\x03\x92PPP\x92\x91PPV[`\0\x80`\0\x83`\0\x01Q`\0\x03aJTW`@Q\x7FZ\xB4X\xFB\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\x01`@Q\x80\x91\x03\x90\xFD[` \x84\x01Q\x80Q`\0\x1A`\x7F\x81\x11aJyW`\0`\x01`\0\x94P\x94P\x94PPPaN\xA8V[`\xB7\x81\x11aK\x8FW`\0aJ\x8E`\x80\x83aX\xD2V[\x90P\x80\x87`\0\x01Q\x11aJ\xCDW`@Q\x7Ff\xC9D\x85\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01\x83\x81\x01Q\x7F\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x90\x82\x14\x80\x15aKEWP\x7F\x80\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x7F\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x82\x16\x10[\x15aK|W`@Q\x7F\xBA\xBB\x01\xDD\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\x01`@Q\x80\x91\x03\x90\xFD[P`\x01\x95P\x93P`\0\x92PaN\xA8\x91PPV[`\xBF\x81\x11aL\xEDW`\0aK\xA4`\xB7\x83aX\xD2V[\x90P\x80\x87`\0\x01Q\x11aK\xE3W`@Q\x7Ff\xC9D\x85\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01\x83\x01Q\x7F\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16`\0\x81\x90\x03aLEW`@Q\x7F\xBA\xBB\x01\xDD\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01\x84\x01Q`\x08\x83\x02a\x01\0\x03\x1C`7\x81\x11aL\x8DW`@Q\x7F\xBA\xBB\x01\xDD\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\x01`@Q\x80\x91\x03\x90\xFD[aL\x97\x81\x84aX\xA0V[\x89Q\x11aL\xD0W`@Q\x7Ff\xC9D\x85\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\x01`@Q\x80\x91\x03\x90\xFD[aL\xDB\x83`\x01aX\xA0V[\x97P\x95P`\0\x94PaN\xA8\x93PPPPV[`\xF7\x81\x11aMRW`\0aM\x02`\xC0\x83aX\xD2V[\x90P\x80\x87`\0\x01Q\x11aMAW`@Q\x7Ff\xC9D\x85\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01\x95P\x93P\x84\x92PaN\xA8\x91PPV[`\0aM_`\xF7\x83aX\xD2V[\x90P\x80\x87`\0\x01Q\x11aM\x9EW`@Q\x7Ff\xC9D\x85\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01\x83\x01Q\x7F\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16`\0\x81\x90\x03aN\0W`@Q\x7F\xBA\xBB\x01\xDD\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01\x84\x01Q`\x08\x83\x02a\x01\0\x03\x1C`7\x81\x11aNHW`@Q\x7F\xBA\xBB\x01\xDD\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\x01`@Q\x80\x91\x03\x90\xFD[aNR\x81\x84aX\xA0V[\x89Q\x11aN\x8BW`@Q\x7Ff\xC9D\x85\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\x01`@Q\x80\x91\x03\x90\xFD[aN\x96\x83`\x01aX\xA0V[\x97P\x95P`\x01\x94PaN\xA8\x93PPPPV[\x91\x93\x90\x92PV[``\x81g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15aN\xCAWaN\xCAaW\xDAV[`@Q\x90\x80\x82R\x80`\x1F\x01`\x1F\x19\x16` \x01\x82\x01`@R\x80\x15aN\xF4W` \x82\x01\x81\x806\x837\x01\x90P[P\x90P\x81\x15aO=W`\0aO\t\x84\x86aX\xA0V[\x90P` \x82\x01`\0[\x84\x81\x10\x15aO*W\x82\x81\x01Q\x82\x82\x01R` \x01aO\x12V[\x84\x81\x11\x15aO9W`\0\x85\x83\x01R[PPP[\x93\x92PPPV[`\0aOZ`\x01`\x01`\x80\x1B\x03\x84\x16`\x01a[\x8EV[\x90P`\0aOj\x82\x86`\x01aQYV[\x90P`\0\x86\x90\x1A\x83\x80aP4WPaO\xA3`\x02\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a[ZV[`\x04\x83\x01T`\x02\x90aP%\x90`\x01`\x01`\x80\x1B\x03\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1Fc\x07\xC4\xAC\xDD`\xE0\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[aP/\x91\x90a\\VV[`\xFF\x16\x14[\x15aP\x8CW`\xFF\x81\x16`\x01\x14\x80aPNWP`\xFF\x81\x16`\x02\x14[aP\x87W`@Q\x7F\xF4\x029\xDB\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\x81\x01\x88\x90R`$\x01a7aV[aP\xCAV[`\xFF\x81\x16\x15aP\xCAW`@Q\x7F\xF4\x029\xDB\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\x81\x01\x88\x90R`$\x01a7aV[PPPPPPPV[`\0\x80aQG\x83~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1Fc\x07\xC4\xAC\xDD`\xE0\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\x01`\xFF\x91\x90\x91\x16\x1B\x90\x92\x03\x92\x91PPV[`\0\x80\x82aQ\x99WaQ\x94`\x01`\x01`\x80\x1B\x03\x86\x16\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0aRQV[aQ\xABV[aQ\xAB\x85`\x01`\x01`\x80\x1B\x03\x16aS\x90V[\x90P`\x02\x84\x81T\x81\x10aQ\xC0WaQ\xC0aXtV[\x90`\0R` `\0 \x90`\x05\x02\x01\x91P[`\x04\x82\x01T`\x01`\x01`\x80\x1B\x03\x82\x81\x16\x91\x16\x14aR\x1AW\x81T`\x02\x80T\x90\x91c\xFF\xFF\xFF\xFF\x16\x90\x81\x10aR\x05WaR\x05aXtV[\x90`\0R` `\0 \x90`\x05\x02\x01\x91PaQ\xD1V[P\x93\x92PPPV[`\0\x80`\0\x80`\0aR3\x86aE\x84V[\x93P\x93P\x93P\x93PaRG\x84\x84\x84\x84aH\xDDV[\x96\x95PPPPPPV[`\0\x81aR\xCE\x84`\x01`\x01`\x80\x1B\x03\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1Fc\x07\xC4\xAC\xDD`\xE0\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\xFF\x16\x11aR\xE4Wc\xB3K\\\"`\0R`\x04`\x1C\xFD[aR\xED\x83aS\x90V[\x90P\x81aSj\x82`\x01`\x01`\x80\x1B\x03\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1Fc\x07\xC4\xAC\xDD`\xE0\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\xFF\x16\x11a(SWa(PaS\x80\x83`\x01aX\xA0V[`\x01`\x01`\x80\x1B\x03\x83\x16\x90aT\x1CV[`\0\x81\x19`\x01\x83\x01\x16\x81aT\x0B\x82~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1Fc\x07\xC4\xAC\xDD`\xE0\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\xFF\x16\x93\x90\x93\x1C\x80\x15\x17\x93\x92PPPV[`\0\x80aT\x90\x84~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1Fc\x07\xC4\xAC\xDD`\xE0\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\xFF\x16\x90P\x80\x83\x03`\x01\x80\x82\x1B\x03\x85\x82\x1B\x17\x92PPP\x92\x91PPV[`\0\x80\x83`\x1F\x84\x01\x12aT\xBEW`\0\x80\xFD[P\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15aT\xD6W`\0\x80\xFD[` \x83\x01\x91P\x83` \x82\x85\x01\x01\x11\x15aT\xEEW`\0\x80\xFD[\x92P\x92\x90PV[`\0\x80`\0\x83\x85\x03`\xA0\x81\x12\x15aU\x0BW`\0\x80\xFD[`\x80\x81\x12\x15aU\x19W`\0\x80\xFD[P\x83\x92P`\x80\x84\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15aU7W`\0\x80\xFD[aUC\x86\x82\x87\x01aT\xACV[\x94\x97\x90\x96P\x93\x94PPPPV[`\0\x80`@\x83\x85\x03\x12\x15aUcW`\0\x80\xFD[PP\x805\x92` \x90\x91\x015\x91PV[cNH{q`\xE0\x1B`\0R`!`\x04R`$`\0\xFD[`\x03\x81\x10aU\xA6WcNH{q`\xE0\x1B`\0R`!`\x04R`$`\0\xFD[PV[` \x81\x01aU\xB6\x83aU\x88V[\x91\x90R\x90V[`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14aU\xA6W`\0\x80\xFD[`\0` \x82\x84\x03\x12\x15aU\xE3W`\0\x80\xFD[\x815aO=\x81aU\xBCV[`\0\x80`\0``\x84\x86\x03\x12\x15aV\x03W`\0\x80\xFD[PP\x815\x93` \x83\x015\x93P`@\x90\x92\x015\x91\x90PV[`\0\x81Q\x80\x84R`\0[\x81\x81\x10\x15aV@W` \x81\x85\x01\x81\x01Q\x86\x83\x01\x82\x01R\x01aV$V[\x81\x81\x11\x15aVRW`\0` \x83\x87\x01\x01R[P`\x1F\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x92\x90\x92\x01` \x01\x92\x91PPV[` \x81R`\0a(P` \x83\x01\x84aV\x1AV[`\0` \x82\x84\x03\x12\x15aV\xAAW`\0\x80\xFD[P5\x91\x90PV[\x80\x15\x15\x81\x14aU\xA6W`\0\x80\xFD[`\0\x80`\0\x80`\x80\x85\x87\x03\x12\x15aV\xD5W`\0\x80\xFD[\x845\x93P` \x85\x015\x92P`@\x85\x015\x91P``\x85\x015aV\xF5\x81aV\xB1V[\x93\x96\x92\x95P\x90\x93PPV[`\0` \x82\x84\x03\x12\x15aW\x12W`\0\x80\xFD[\x815`\x01`\x01`\x80\x1B\x03\x81\x16\x81\x14aO=W`\0\x80\xFD[`\0\x80`\0\x80`\0\x80`\x80\x87\x89\x03\x12\x15aWBW`\0\x80\xFD[\x865\x95P` \x87\x015aWT\x81aV\xB1V[\x94P`@\x87\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15aWqW`\0\x80\xFD[aW}\x8A\x83\x8B\x01aT\xACV[\x90\x96P\x94P``\x89\x015\x91P\x80\x82\x11\x15aW\x96W`\0\x80\xFD[PaW\xA3\x89\x82\x8A\x01aT\xACV[\x97\x9A\x96\x99P\x94\x97P\x92\x95\x93\x94\x92PPPV[c\xFF\xFF\xFF\xFF\x84\x16\x81R\x82` \x82\x01R```@\x82\x01R`\0a\x16\xDE``\x83\x01\x84aV\x1AV[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[`\0`\x80\x82\x84\x03\x12\x15aX\x02W`\0\x80\xFD[`@Q`\x80\x81\x01\x81\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17\x15aX3WcNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[\x80`@RP\x825\x81R` \x83\x015` \x82\x01R`@\x83\x015`@\x82\x01R``\x83\x015``\x82\x01R\x80\x91PP\x92\x91PPV[\x81\x83\x827`\0\x91\x01\x90\x81R\x91\x90PV[cNH{q`\xE0\x1B`\0R`2`\x04R`$`\0\xFD[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[`\0\x82\x19\x82\x11\x15aX\xB3WaX\xB3aX\x8AV[P\x01\x90V[`\0`\0\x19\x82\x03aX\xCBWaX\xCBaX\x8AV[P`\x01\x01\x90V[`\0\x82\x82\x10\x15aX\xE4WaX\xE4aX\x8AV[P\x03\x90V[`\0` \x82\x84\x03\x12\x15aX\xFBW`\0\x80\xFD[\x81QaO=\x81aV\xB1V[cNH{q`\xE0\x1B`\0R`\x12`\x04R`$`\0\xFD[`\0\x82aY+WaY+aY\x06V[P\x04\x90V[`\0\x81`\0\x19\x04\x83\x11\x82\x15\x15\x16\x15aYJWaYJaX\x8AV[P\x02\x90V[`\0` \x82\x84\x03\x12\x15aYaW`\0\x80\xFD[\x81QaO=\x81aU\xBCV[`\0` \x82\x84\x03\x12\x15aY~W`\0\x80\xFD[PQ\x91\x90PV[`\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x83\x16\x81\x85\x16\x80\x83\x03\x82\x11\x15aY\xA8WaY\xA8aX\x8AV[\x01\x94\x93PPPPV[`\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x83\x16\x81\x85\x16\x81\x83\x04\x81\x11\x82\x15\x15\x16\x15aY\xD8WaY\xD8aX\x8AV[\x02\x94\x93PPPPV[`\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x81\x16\x90\x83\x16\x81\x81\x10\x15aZ\x02WaZ\x02aX\x8AV[\x03\x93\x92PPPV[`\0\x80`@\x83\x85\x03\x12\x15aZ\x1DW`\0\x80\xFD[PP\x80Q` \x90\x91\x01Q\x90\x92\x90\x91PV[`\0` \x82\x84\x03\x12\x15aZ@W`\0\x80\xFD[\x81Qc\xFF\xFF\xFF\xFF\x81\x16\x81\x14aO=W`\0\x80\xFD[`\0\x7F\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF`\0\x84\x13`\0\x84\x13\x85\x83\x04\x85\x11\x82\x82\x16\x16\x15aZ\x95WaZ\x95aX\x8AV[\x7F\x80\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\0\x87\x12\x86\x82\x05\x88\x12\x81\x84\x16\x16\x15aZ\xD0WaZ\xD0aX\x8AV[`\0\x87\x12\x92P\x87\x82\x05\x87\x12\x84\x84\x16\x16\x15aZ\xECWaZ\xECaX\x8AV[\x87\x85\x05\x87\x12\x81\x84\x16\x16\x15a[\x02Wa[\x02aX\x8AV[PPP\x92\x90\x93\x02\x93\x92PPPV[`\0\x82a[\x1FWa[\x1FaY\x06V[`\0\x19\x83\x14\x7F\x80\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x83\x14\x16\x15a[UWa[UaX\x8AV[P\x05\x90V[`\0\x82a[iWa[iaY\x06V[P\x06\x90V[`\0`\x01`\x01`\x80\x1B\x03\x83\x81\x16\x90\x83\x16\x81\x81\x10\x15aZ\x02WaZ\x02aX\x8AV[`\0`\x01`\x01`\x80\x1B\x03\x80\x83\x16\x81\x85\x16\x80\x83\x03\x82\x11\x15aY\xA8WaY\xA8aX\x8AV[\x81\x83R\x81\x81` \x85\x017P`\0` \x82\x84\x01\x01R`\0` \x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0`\x1F\x84\x01\x16\x84\x01\x01\x90P\x92\x91PPV[``\x81R`\0a\\\r``\x83\x01\x87\x89a[\xB0V[\x82\x81\x03` \x84\x01Ra\\ \x81\x86\x88a[\xB0V[\x91PP\x82`@\x83\x01R\x96\x95PPPPPPV[`\0`\xFF\x82\x16`\xFF\x84\x16\x80\x82\x10\x15a\\MWa\\MaX\x8AV[\x90\x03\x93\x92PPPV[`\0`\xFF\x83\x16\x80a\\iWa\\iaY\x06V[\x80`\xFF\x84\x16\x06\x91PP\x92\x91PPV\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x6080604052600436106103555760003560e01c806370872aa5116101bb578063c0d8bb74116100f7578063dabd396d11610095578063f8f43ff61161006f578063f8f43ff614610b9f578063fa24f74314610bbf578063fa315aa914610be3578063fe2bbeb214610c1657600080fd5b8063dabd396d14610b09578063ec5e630814610b3c578063eff0f59214610b6f57600080fd5b8063cf09e0d0116100d1578063cf09e0d014610a75578063d5d44d8014610a96578063d6ae3cd514610ab6578063d8cc1a3c14610ae957600080fd5b8063c0d8bb74146109b4578063c395e1ca146109e1578063c6f0308c14610a0157600080fd5b80638d450a9511610164578063a8e4fb901161013e578063a8e4fb90146108fe578063bbdc02db14610931578063bcef3b5514610972578063bd8da9561461099457600080fd5b80638d450a951461082b57806399735e3214610809578063a445ece61461085e57600080fd5b80638129fc1c116101955780638129fc1c146107ec5780638980e0cc146107f45780638b85902b1461080957600080fd5b806370872aa5146107af578063786b844b146107c45780637b0f0adc146107d957600080fd5b80633e3ac912116102955780635a5fa2d91161023357806360e274641161020d57806360e27464146107275780636361506d146107475780636b6716c0146107695780636f0344091461079c57600080fd5b80635a5fa2d9146106bf5780635c0cba33146106df578063609d33341461071257600080fd5b8063529d6a8c1161026f578063529d6a8c146105e0578063534db0e21461060d57806354fd4d501461064057806357da950e1461068f57600080fd5b80633e3ac9121461056a5780633fc8cef31461059a578063472777c6146105cd57600080fd5b806325fc2ace1161030257806330dbe570116102dc57806330dbe570146104c3578063378dd48c146104fb57806337b1b229146105155780633a7684631461053757600080fd5b806325fc2ace1461046f5780632810e1d61461048e5780632ad69aeb146104a357600080fd5b8063200d2ed211610333578063200d2ed2146103e7578063222abf4514610415578063250e69bd1461045557600080fd5b8063019351301461035a57806303c2924d1461037c57806319effeb41461039c575b600080fd5b34801561036657600080fd5b5061037a6103753660046154f5565b610c46565b005b34801561038857600080fd5b5061037a610397366004615550565b610f05565b3480156103a857600080fd5b506000546103c99068010000000000000000900467ffffffffffffffff1681565b60405167ffffffffffffffff90911681526020015b60405180910390f35b3480156103f357600080fd5b5060005461040890600160801b900460ff1681565b6040516103de91906155a9565b34801561042157600080fd5b506104456104303660046155d1565b600c6020526000908152604090205460ff1681565b60405190151581526020016103de565b34801561046157600080fd5b50600a546104459060ff1681565b34801561047b57600080fd5b506008545b6040519081526020016103de565b34801561049a57600080fd5b5061040861148d565b3480156104af57600080fd5b506104806104be366004615550565b611665565b3480156104cf57600080fd5b506001546104e3906001600160a01b031681565b6040516001600160a01b0390911681526020016103de565b34801561050757600080fd5b50600d546104089060ff1681565b34801561052157600080fd5b503660011981013560f01c90033560601c6104e3565b34801561054357600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006104e3565b34801561057657600080fd5b50600054610445907201000000000000000000000000000000000000900460ff1681565b3480156105a657600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006104e3565b61037a6105db3660046155ee565b61169b565b3480156105ec57600080fd5b506104806105fb3660046155d1565b60036020526000908152604090205481565b34801561061957600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006104e3565b34801561064c57600080fd5b5060408051808201909152600581527f312e382e3000000000000000000000000000000000000000000000000000000060208201525b6040516103de9190615685565b34801561069b57600080fd5b506008546009546106aa919082565b604080519283526020830191909152016103de565b3480156106cb57600080fd5b506104806106da366004615698565b6116ad565b3480156106eb57600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006104e3565b34801561071e57600080fd5b506106826116e7565b34801561073357600080fd5b5061037a6107423660046155d1565b6116f5565b34801561075357600080fd5b503660011981013560f01c900360340135610480565b34801561077557600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006103c9565b61037a6107aa3660046156bf565b611a0d565b3480156107bb57600080fd5b50600954610480565b3480156107d057600080fd5b5061037a611ab4565b61037a6107e73660046155ee565b611ed3565b61037a611ee0565b34801561080057600080fd5b50600254610480565b34801561081557600080fd5b503660011981013560f01c900360540135610480565b34801561083757600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610480565b34801561086a57600080fd5b506108c0610879366004615698565b6007602052600090815260409020805460019091015460ff821691610100810463ffffffff1691650100000000009091046001600160801b0316906001600160a01b031684565b60408051941515855263ffffffff90931660208501526001600160801b03909116918301919091526001600160a01b031660608201526080016103de565b34801561090a57600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006104e3565b34801561093d57600080fd5b5060405163ffffffff7f00000000000000000000000000000000000000000000000000000000000000001681526020016103de565b34801561097e57600080fd5b503660011981013560f01c900360140135610480565b3480156109a057600080fd5b506103c96109af366004615698565b611f4c565b3480156109c057600080fd5b506104806109cf3660046155d1565b600b6020526000908152604090205481565b3480156109ed57600080fd5b506104806109fc366004615700565b6120e6565b348015610a0d57600080fd5b50610a21610a1c366004615698565b6122a7565b6040805163ffffffff90981688526001600160a01b03968716602089015295909416948601949094526001600160801b039182166060860152608085015291821660a08401521660c082015260e0016103de565b348015610a8157600080fd5b506000546103c99067ffffffffffffffff1681565b348015610aa257600080fd5b50610480610ab13660046155d1565b61231b565b348015610ac257600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610480565b348015610af557600080fd5b5061037a610b04366004615729565b612373565b348015610b1557600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006103c9565b348015610b4857600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610480565b348015610b7b57600080fd5b50610445610b8a366004615698565b60046020526000908152604090205460ff1681565b348015610bab57600080fd5b5061037a610bba3660046155ee565b612416565b348015610bcb57600080fd5b50610bd46127fc565b6040516103de939291906157b5565b348015610bef57600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610480565b348015610c2257600080fd5b50610445610c31366004615698565b60066020526000908152604090205460ff1681565b60008054600160801b900460ff166002811115610c6557610c65615572565b14610c835760405163067fe19560e41b815260040160405180910390fd5b6000547201000000000000000000000000000000000000900460ff1615610cd6576040517f0ea2e75200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610cef3660011981013560f01c90036014013590565b90565b610d06610d01368690038601866157f0565b612859565b14610d3d576040517f9cc00b5b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b82606001358282604051610d52929190615864565b604051809103902014610d91576040517fd81d583b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000610dda610dd584848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506128b592505050565b612922565b90506000610e0182600881518110610df457610df4615874565b6020026020010151612ad8565b9050602081511115610e3f576040517fd81d583b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b602081810151825190910360031b1c3660011981013560f01c9003605401358103610e96576040517fb8ed883000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050600180547fffffffffffffffffffffffff000000000000000000000000000000000000000016331790555050600080547fffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffff1672010000000000000000000000000000000000001790555050565b60008054600160801b900460ff166002811115610f2457610f24615572565b14610f425760405163067fe19560e41b815260040160405180910390fd5b600060028381548110610f5757610f57615874565b906000526020600020906005020190506000610f7284611f4c565b905067ffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000081169082161015610fdb576040517ff2440b5300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008481526006602052604090205460ff1615611024576040517ff1a9458100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600084815260056020526040902080548015801561104157508515155b156110a457835464010000000090046001600160a01b0316600081156110675781611076565b60018601546001600160a01b03165b90506110828187612b8c565b505050600094855250506006602052505060409020805460ff19166001179055565b6000868152600760209081526040918290208251608081018452815460ff81161515808352610100820463ffffffff16948301949094526501000000000090046001600160801b031693810193909352600101546001600160a01b03166060830152611128576001600160801b036040820152600181526000869003611128578195505b600086826020015163ffffffff1661114091906158a0565b905060008382116111515781611153565b835b602084015190915063ffffffff165b8181101561127357600086828154811061117e5761117e615874565b6000918252602080832090910154808352600690915260409091205490915060ff166111d6576040517f9a07664600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600282815481106111eb576111eb615874565b60009182526020909120600590910201805490915064010000000090046001600160a01b03161580156112325750600481015460408701516001600160801b039182169116115b1561125e5760018101546001600160a01b0316606087015260048101546001600160801b031660408701525b5050808061126b906158b8565b915050611162565b5063ffffffff818116602085810191825260008c81526007909152604090819020865181549351928801517fffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000009094169015157fffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000ff161761010092909416918202939093177fffffffffffffffffffffff00000000000000000000000000000000ffffffffff16650100000000006001600160801b03909316929092029190911782556060850151600190920180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039093169290921790915584900361148257606083015160008a8152600660205260409020805460ff19166001179055891580156113bf57506000547201000000000000000000000000000000000000900460ff165b1561141a576001546001600160a01b03166113da818a612b8c565b88546001600160a01b03909116640100000000027fffffffffffffffff0000000000000000000000000000000000000000ffffffff909116178855611480565b6114476001600160a01b038216156114325781611441565b60018901546001600160a01b03165b89612b8c565b87547fffffffffffffffff0000000000000000000000000000000000000000ffffffff166401000000006001600160a01b038316021788555b505b505050505050505050565b600080600054600160801b900460ff1660028111156114ae576114ae615572565b146114cc5760405163067fe19560e41b815260040160405180910390fd5b6000805260066020527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f85460ff16611530576040517f9a07664600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006001600160a01b0316600260008154811061154f5761154f615874565b600091825260209091206005909102015464010000000090046001600160a01b03161461157d576001611580565b60025b6000805467ffffffffffffffff421668010000000000000000027fffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff82168117835592935083927fffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffff000000000000000000ffffffffffffffff90911617600160801b83600281111561162457611624615572565b02179055600281111561163957611639615572565b6040517f5e186f09b9c93491f14e277eea7faa5de6a2d4bda75a79af7a3684fbfb42da6090600090a290565b6005602052816000526040600020818154811061168157600080fd5b90600052602060002001600091509150505481565b905090565b6116a88383836001611a0d565b505050565b600081815260076020908152604080832060059092528220805482546116de90610100900463ffffffff16826158d2565b95945050505050565b606061169660546020612bce565b6116fd611ab4565b60006002600d5460ff16600281111561171857611718615572565b0361173c57506001600160a01b0381166000908152600b60205260409020546117ab565b6001600d5460ff16600281111561175557611755615572565b0361177957506001600160a01b0381166000908152600360205260409020546117ab565b6040517f078a3df400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0382166000908152600c602052604090205460ff16611888576001600160a01b038281166000818152600c602052604090819020805460ff19166001179055517f7eee288d0000000000000000000000000000000000000000000000000000000081526004810191909152602481018390527f000000000000000000000000000000000000000000000000000000000000000090911690637eee288d90604401600060405180830381600087803b15801561186c57600080fd5b505af1158015611880573d6000803e3d6000fd5b505050505050565b806000036118c2576040517f17bfe5f700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038281166000818152600b60209081526040808320839055600390915280822091909155517ff3fef3a30000000000000000000000000000000000000000000000000000000081526004810191909152602481018390527f00000000000000000000000000000000000000000000000000000000000000009091169063f3fef3a390604401600060405180830381600087803b15801561196857600080fd5b505af115801561197c573d6000803e3d6000fd5b505050506000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146119cd576040519150601f19603f3d011682016040523d82523d6000602084013e6119d2565b606091505b50509050806116a8576040517f83e6cc6b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480611a6c5750336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016145b611aa2576040517fd386ef3e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611aae84848484612c02565b50505050565b6002600d5460ff166002811115611acd57611acd615572565b1480611aef57506001600d5460ff166002811115611aed57611aed615572565b145b15611af657565b6000600d5460ff166002811115611b0f57611b0f615572565b14611b46576040517f078a3df400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ba4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bc891906158e9565b15611bff576040517f379a7ed900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005468010000000000000000900467ffffffffffffffff1667ffffffffffffffff16600003611c5b576040517fc105260a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f0314d2b30000000000000000000000000000000000000000000000000000000081523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690630314d2b390602401602060405180830381865afa158015611cdb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cff91906158e9565b905080611d38576040517f4851bd9b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f17cf21a90000000000000000000000000000000000000000000000000000000081523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906317cf21a990602401600060405180830381600087803b158015611db257600080fd5b505af1925050508015611dc3575060015b506040517f496b9c160000000000000000000000000000000000000000000000000000000081523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063496b9c1690602401602060405180830381865afa158015611e44573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e6891906158e9565b90508015611e8257600d805460ff19166001179055611e90565b600d805460ff191660021790555b600d546040517f9908eaac0645df9d0704d06adc9e07337c951de2f06b5f2836151d48d5e4722f91611ec79160ff909116906155a9565b60405180910390a15050565b6116a88383836000611a0d565b326001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611f42576040517fd386ef3e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611f4a6135a3565b565b600080600054600160801b900460ff166002811115611f6d57611f6d615572565b14611f8b5760405163067fe19560e41b815260040160405180910390fd5b600060028381548110611fa057611fa0615874565b600091825260208220600590910201805490925063ffffffff9081161461200657815460028054909163ffffffff16908110611fde57611fde615874565b906000526020600020906005020160040160109054906101000a90046001600160801b031690505b600482015460009061203190600160801b900467ffffffffffffffff165b67ffffffffffffffff1690565b6120459067ffffffffffffffff16426158d2565b61205b612024846001600160801b031660401c90565b67ffffffffffffffff1661206f91906158a0565b905067ffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001667ffffffffffffffff168167ffffffffffffffff16116120bc57806116de565b7f000000000000000000000000000000000000000000000000000000000000000095945050505050565b600080612163836001600160801b03167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f6307c4acdd60e01b67ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff1690507f00000000000000000000000000000000000000000000000000000000000000008111156121c2576040517f56f57b2b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b642e90edd00062061a806311e1a30060006121dd838361591c565b9050670de0b6b3a76400006000612214827f0000000000000000000000000000000000000000000000000000000000000000615930565b9050600061223261222d670de0b6b3a764000086615930565b613b40565b905060006122408484613d92565b9050600061224e8383613de1565b9050600061225b82613e0f565b9050600061227a82612275670de0b6b3a76400008f615930565b613ff7565b905060006122888b83613de1565b9050612294818d615930565b9f9e505050505050505050505050505050565b600281815481106122b757600080fd5b60009182526020909120600590910201805460018201546002830154600384015460049094015463ffffffff841695506401000000009093046001600160a01b03908116949216926001600160801b03918216929180821691600160801b90041687565b60006002600d5460ff16600281111561233657612336615572565b0361235757506001600160a01b03166000908152600b602052604090205490565b506001600160a01b031660009081526003602052604090205490565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614806123d25750336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016145b612408576040517fd386ef3e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611880868686868686614028565b60008054600160801b900460ff16600281111561243557612435615572565b146124535760405163067fe19560e41b815260040160405180910390fd5b60008060008061246286614584565b93509350935093506000612478858585856148dd565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316637dc0d1d06040518163ffffffff1660e01b8152600401602060405180830381865afa1580156124da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124fe919061594f565b9050600189036125cb576001600160a01b0381166352f0f3ad8a8461252f3660011981013560f01c90036034013590565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e086901b16815260048101939093526024830191909152604482015260206064820152608481018a905260a4015b6020604051808303816000875af11580156125a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125c5919061596c565b50611482565b600289036125ea576001600160a01b0381166352f0f3ad8a848961252f565b60038903612609576001600160a01b0381166352f0f3ad8a848761252f565b6004890361273e5760006126466001600160801b0385167f000000000000000000000000000000000000000000000000000000000000000061497c565b60095461265391906158a0565b61265e9060016158a0565b90503660011981013560f01c900360540135811061268b573660011981013560f01c90036054013561268d565b805b90506001600160a01b0382166352f0f3ad8b8560405160e084901b7fffffffff000000000000000000000000000000000000000000000000000000001681526004810192909252602482015260c084901b604482015260086064820152608481018b905260a4016020604051808303816000875af1158015612713573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612737919061596c565b5050611482565b600589036127ca576040517f52f0f3ad000000000000000000000000000000000000000000000000000000008152600481018a9052602481018390527f000000000000000000000000000000000000000000000000000000000000000060c01b604482015260086064820152608481018890526001600160a01b038216906352f0f3ad9060a401612582565b6040517fff137e6500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000003660011981013560f01c90036014013560606128376116e7565b9050909192565b60008183101561284e5781612850565b825b90505b92915050565b60008160000151826020015183604001518460600151604051602001612898949392919093845260208401929092526040830152606082015260800190565b604051602081830303815290604052805190602001209050919050565b60408051808201909152600080825260208201528151600003612904576040517f5ab458fb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50604080518082019091528151815260209182019181019190915290565b6060600080600061293285614a11565b91945092509050600181600181111561294d5761294d615572565b14612984576040517f4b9c6abe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845161299083856158a0565b146129c7576040517f5c5537b800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604080516020808252610420820190925290816020015b60408051808201909152600080825260208201528152602001906001900390816129de5790505093506000835b8651811015612acc57600080612a516040518060400160405280858c60000151612a3591906158d2565b8152602001858c60200151612a4a91906158a0565b9052614a11565b509150915060405180604001604052808383612a6d91906158a0565b8152602001848b60200151612a8291906158a0565b815250888581518110612a9757612a97615874565b6020908102919091010152612aad6001856158a0565b9350612ab981836158a0565b612ac390846158a0565b92505050612a0b565b50845250919392505050565b60606000806000612ae885614a11565b919450925090506000816001811115612b0357612b03615572565b14612b3a576040517f1ff9b2e400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612b4482846158a0565b855114612b7d576040517f5c5537b800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6116de85602001518484614eaf565b60028101546001600160a01b038316600090815260036020526040812080546001600160801b0390931692909190612bc59084906158a0565b90915550505050565b6040518181523660011981013560f01c90038284820160208401378260208301016000815260208101604052505092915050565b60008054600160801b900460ff166002811115612c2157612c21615572565b14612c3f5760405163067fe19560e41b815260040160405180910390fd5b600060028481548110612c5457612c54615874565b60009182526020918290206040805160e0810182526005909302909101805463ffffffff811684526001600160a01b0364010000000090910481169484019490945260018101549093169082015260028201546001600160801b03908116606083015260038301546080830181905260049093015480821660a0840152600160801b90041660c082015291508514612d18576040517f3014033200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60a0810151600083156001600160801b0383161760011b90506000612dad826001600160801b03167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f6307c4acdd60e01b67ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff169050861580612de85750612de57f000000000000000000000000000000000000000000000000000000000000000060026158a0565b81145b8015612df2575084155b15612e29576040517fa42637bc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000547201000000000000000000000000000000000000900460ff168015612e4f575086155b15612e86576040517f0ea2e75200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f0000000000000000000000000000000000000000000000000000000000000000811115612ee0576040517f56f57b2b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612f0b7f000000000000000000000000000000000000000000000000000000000000000060016158a0565b8103612f1d57612f1d86888588614f44565b34612f27836120e6565b14612f5e576040517f8620aa1900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000612f6988611f4c565b905067ffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000811690821603612fd1576040517f3381d11400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000612ffe60017f00000000000000000000000000000000000000000000000000000000000000006158d2565b8303613122577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316637dc0d1d06040518163ffffffff1660e01b8152600401602060405180830381865afa158015613062573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613086919061594f565b6001600160a01b031663f3f480d96040518163ffffffff1660e01b8152600401602060405180830381865afa1580156130c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130e7919061596c565b61311b907f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff16615985565b90506131b5565b61314d60017f00000000000000000000000000000000000000000000000000000000000000006158d2565b83036131885761311b7f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff1660026159b1565b507f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff165b6131e9817f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff166159e1565b67ffffffffffffffff166132048367ffffffffffffffff1690565b67ffffffffffffffff16111561324b57613248817f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff166159e1565b91505b6000604083901b421760008a8152608087901b6001600160801b038d1617602052604081209192509060008181526004602052604090205490915060ff16156132c0576040517f80497e3b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60016004600083815260200190815260200160002060006101000a81548160ff02191690831515021790555060026040518060e001604052808d63ffffffff16815260200160006001600160a01b03168152602001336001600160a01b03168152602001346001600160801b031681526020018c8152602001886001600160801b03168152602001846001600160801b0316815250908060018154018082558091505060019003906000526020600020906005020160009091909190915060008201518160000160006101000a81548163ffffffff021916908363ffffffff16021790555060208201518160000160046101000a8154816001600160a01b0302191690836001600160a01b0316021790555060408201518160010160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060608201518160020160006101000a8154816001600160801b0302191690836001600160801b031602179055506080820151816003015560a08201518160040160006101000a8154816001600160801b0302191690836001600160801b0316021790555060c08201518160040160106101000a8154816001600160801b0302191690836001600160801b031602179055505050600560008c815260200190815260200160002060016002805490506134b791906158d2565b81546001810183556000928352602080842090910191909155338252600b90526040812080543492906134eb9084906158a0565b925050819055507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0346040518263ffffffff1660e01b81526004016000604051808303818588803b15801561354d57600080fd5b505af1158015613561573d6000803e3d6000fd5b50506040513393508d92508e91507f9b3245740ec3b155098a55be84957a4da13eaf7f14a8bc6f53126c0b9350f2be90600090a4505050505050505050505050565b60005471010000000000000000000000000000000000900460ff16156135f5576040517f0dc149f000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d83ef2676040518163ffffffff1660e01b81526004016040805180830381865afa158015613655573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136799190615a0a565b9092509050816136b5576040517f6a6bc3b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805180820190915282815260200181905260088290556009819055607a361461370c576040517f9824bdab00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b803660011981013560f01c9003605401351161376a576040517ff40239db0000000000000000000000000000000000000000000000000000000081523660011981013560f01c90036014013560048201526024015b60405180910390fd5b6040805160e08101825263ffffffff808252600060208084018281523660011981013560f01c90038035606090811c8789018181526001600160801b0334818116948b0194855260149095013560808b01908152600160a08c0181815242841660c08e019081526002805493840181558c529c517f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace600590930292830180549a5191909d167fffffffffffffffff000000000000000000000000000000000000000000000000909a16999099176401000000006001600160a01b039a8b160217909b5592517f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5acf840180547fffffffffffffffffffffffff000000000000000000000000000000000000000016919098161790965592517f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ad0820180547fffffffffffffffffffffffffffffffff000000000000000000000000000000001691851691909117905593517f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ad185015595519651968116600160801b9790911696909602959095177f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ad2909101558154710100000000000000000000000000000000007fffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff909116178255918152600b9091529182208054919290916139ab9084906158a0565b925050819055507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0346040518263ffffffff1660e01b81526004016000604051808303818588803b158015613a0d57600080fd5b505af1158015613a21573d6000803e3d6000fd5b5050600080547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000164267ffffffffffffffff161790555050604080517f3c9f397c00000000000000000000000000000000000000000000000000000000815290517f000000000000000000000000000000000000000000000000000000000000000063ffffffff1692507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031691633c9f397c9160048083019260209291908290030181865afa158015613b00573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b249190615a2e565b600a805460ff191663ffffffff92909216929092141790555050565b6001600160801b03811160071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b1760008213613b9657631615e6386000526004601cfd5b7ff8f9f9faf9fdfafbf9fdfcfdfafbfcfef9fafdfafcfcfbfefafafcfbffffffff6f8421084210842108cc6318c6db6d54be83831c1c601f161a1890811b609f90811c6c465772b2bbbb5f824b15207a3081018102606090811d6d0388eaa27412d5aca026815d636e018202811d6d0df99ac502031bf953eff472fdcc018202811d6d13cdffb29d51d99322bdff5f2211018202811d6d0a0f742023def783a307a986912e018202811d6d01920d8043ca89b5239253284e42018202811d6c0b7a86d7375468fac667a0a527016c29508e458543d8aa4df2abee7883018302821d6d0139601a2efabe717e604cbb4894018302821d6d02247f7a7b6594320649aa03aba1018302821d7fffffffffffffffffffffffffffffffffffffff73c0c716a594e00d54e3c4cbc9018302821d7ffffffffffffffffffffffffffffffffffffffdc7b88c420e53a9890533129f6f01830290911d7fffffffffffffffffffffffffffffffffffffff465fda27eb4d63ded474e5f832019091027ffffffffffffffff5f6af8f7b3396644f18e157960000000000000000000000000105711340daa0d5f769dba1915cef59f0815a5506029190037d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b302017d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b88642840160ae1d90565b60007812725dd1d243aba0e75fe645cc4873f9e65afe688c928e1f218311670de0b6b3a764000002158202613dcf57637c5f487d6000526004601cfd5b50670de0b6b3a7640000919091020490565b600081600019048311820215613dff5763bac65e5b6000526004601cfd5b50670de0b6b3a764000091020490565b60007ffffffffffffffffffffffffffffffffffffffffffffffffdc0d0570925a462d78213613e3d57919050565b680755bf798b4a1bf1e58212613e5b5763a37bfec96000526004601cfd5b6503782dace9d9604e83901b059150600060606bb17217f7d1cf79abc9e3b39884821b056b80000000000000000000000001901d6bb17217f7d1cf79abc9e3b39881029093037fffffffffffffffffffffffffffffffffffffffdbf3ccf1604d263450f02a550481018102606090811d6d0277594991cfc85f6e2461837cd9018202811d7fffffffffffffffffffffffffffffffffffffe5adedaa1cb095af9e4da10e363c018202811d6db1bbb201f443cf962f1a1d3db4a5018202811d7ffffffffffffffffffffffffffffffffffffd38dc772608b0ae56cce01296c0eb018202811d6e05180bb14799ab47a8a8cb2a527d57016d02d16720577bd19bf614176fe9ea6c10fe68e7fd37d0007b713f765084018402831d9081019084017ffffffffffffffffffffffffffffffffffffffe2c69812cf03b0763fd454a8f7e010290911d6e0587f503bb6ea29d25fcb7401964500190910279d835ebba824c98fb31b83b2ca45c000000000000000000000000010574029d9dc38563c32e5c2f6dc192ee70ef65f9978af30260c3939093039290921c92915050565b6000612850670de0b6b3a76400008361400f86613b40565b6140199190615a54565b6140239190615b10565b613e0f565b60008054600160801b900460ff16600281111561404757614047615572565b146140655760405163067fe19560e41b815260040160405180910390fd5b60006002878154811061407a5761407a615874565b6000918252602082206005919091020160048101549092506001600160801b0316908715821760011b90506140d07f000000000000000000000000000000000000000000000000000000000000000060016158a0565b61414a826001600160801b03167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f6307c4acdd60e01b67ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff1614614184576040517f5f53dd9800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000808915614260576141d77f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006158d2565b6001901b6141ed846001600160801b03166150d3565b6001600160801b03166142009190615b5a565b156142345761422b61421c60016001600160801b038716615b6e565b865463ffffffff166000615159565b60030154614256565b7f00000000000000000000000000000000000000000000000000000000000000005b9150849050614281565b6003850154915061427e61421c6001600160801b0386166001615b8e565b90505b600882901b60088a8a604051614298929190615864565b6040518091039020901b146142d9576040517f696550ff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006142e48c615222565b905060006142f3836003015490565b6040517fe14ced320000000000000000000000000000000000000000000000000000000081527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063e14ced3290614360908f908f908f908f908a90600401615bf9565b6020604051808303816000875af115801561437f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906143a3919061596c565b60048501549114915060009060029061442c906001600160801b03167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f6307c4acdd60e01b67ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b6144a6896001600160801b03167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f6307c4acdd60e01b67ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b6144b09190615c33565b6144ba9190615c56565b60ff1615905081151581036144fb576040517ffb4e40dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b875464010000000090046001600160a01b031615614545576040517f9071e6af00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505085547fffffffffffffffff0000000000000000000000000000000000000000ffffffff163364010000000002179095555050505050505050505050565b60008060008060008590506000600282815481106145a4576145a4615874565b600091825260209091206004600590920201908101549091507f000000000000000000000000000000000000000000000000000000000000000090614659906001600160801b03167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f6307c4acdd60e01b67ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff1611614693576040517fb34b5c2200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000815b60048301547f000000000000000000000000000000000000000000000000000000000000000090614738906001600160801b03167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f6307c4acdd60e01b67ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff1692508211156147ad57825463ffffffff166147777f000000000000000000000000000000000000000000000000000000000000000060016158a0565b8303614781578391505b6002818154811061479457614794615874565b9060005260206000209060050201935080945050614697565b600481810154908401546001600160801b0391821691166000816001600160801b03166147f26147e6856001600160801b031660011c90565b6001600160801b031690565b6001600160801b0316149050801561488b576000614818836001600160801b03166150d3565b6001600160801b0316111561486857600061484861484060016001600160801b038616615b6e565b896001615159565b6003810154600490910154909c506001600160801b03169a5061486e9050565b6008549a505b600386015460048701549099506001600160801b031697506148cf565b60006148a46148406001600160801b0385166001615b8e565b6003808901546004808b015492840154930154909e506001600160801b039182169d50919b50169850505b505050505050509193509193565b60006001600160801b038416156149385760408051602081018790526001600160801b038087169282019290925260608101859052908316608082015260a001604051602081830303815290604052805190602001206116de565b828260405160200161495d9291909182526001600160801b0316602082015260400190565b6040516020818303038152906040528051906020012095945050505050565b6000806149f0847e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f6307c4acdd60e01b67ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff1690508083036001841b600180831b0386831b17039250505092915050565b60008060008360000151600003614a54576040517f5ab458fb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6020840151805160001a607f8111614a79576000600160009450945094505050614ea8565b60b78111614b8f576000614a8e6080836158d2565b905080876000015111614acd576040517f66c9448500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001838101517fff00000000000000000000000000000000000000000000000000000000000000169082148015614b4557507f80000000000000000000000000000000000000000000000000000000000000007fff000000000000000000000000000000000000000000000000000000000000008216105b15614b7c576040517fbabb01dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5060019550935060009250614ea8915050565b60bf8111614ced576000614ba460b7836158d2565b905080876000015111614be3576040517f66c9448500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60018301517fff00000000000000000000000000000000000000000000000000000000000000166000819003614c45576040517fbabb01dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600184015160088302610100031c60378111614c8d576040517fbabb01dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b614c9781846158a0565b895111614cd0576040517f66c9448500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b614cdb8360016158a0565b9750955060009450614ea89350505050565b60f78111614d52576000614d0260c0836158d2565b905080876000015111614d41576040517f66c9448500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600195509350849250614ea8915050565b6000614d5f60f7836158d2565b905080876000015111614d9e576040517f66c9448500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60018301517fff00000000000000000000000000000000000000000000000000000000000000166000819003614e00576040517fbabb01dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600184015160088302610100031c60378111614e48576040517fbabb01dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b614e5281846158a0565b895111614e8b576040517f66c9448500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b614e968360016158a0565b9750955060019450614ea89350505050565b9193909250565b60608167ffffffffffffffff811115614eca57614eca6157da565b6040519080825280601f01601f191660200182016040528015614ef4576020820181803683370190505b5090508115614f3d576000614f0984866158a0565b90506020820160005b84811015614f2a578281015182820152602001614f12565b84811115614f39576000858301525b5050505b9392505050565b6000614f5a6001600160801b0384166001615b8e565b90506000614f6a82866001615159565b9050600086901a83806150345750614fa360027f0000000000000000000000000000000000000000000000000000000000000000615b5a565b6004830154600290615025906001600160801b03167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f6307c4acdd60e01b67ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b61502f9190615c56565b60ff16145b1561508c5760ff81166001148061504e575060ff81166002145b615087576040517ff40239db00000000000000000000000000000000000000000000000000000000815260048101889052602401613761565b6150ca565b60ff8116156150ca576040517ff40239db00000000000000000000000000000000000000000000000000000000815260048101889052602401613761565b50505050505050565b600080615147837e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f6307c4acdd60e01b67ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b600160ff919091161b90920392915050565b60008082615199576151946001600160801b0386167f0000000000000000000000000000000000000000000000000000000000000000615251565b6151ab565b6151ab856001600160801b0316615390565b9050600284815481106151c0576151c0615874565b906000526020600020906005020191505b60048201546001600160801b0382811691161461521a57815460028054909163ffffffff1690811061520557615205615874565b906000526020600020906005020191506151d1565b509392505050565b600080600080600061523386614584565b9350935093509350615247848484846148dd565b9695505050505050565b6000816152ce846001600160801b03167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f6307c4acdd60e01b67ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff16116152e45763b34b5c226000526004601cfd5b6152ed83615390565b90508161536a826001600160801b03167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f6307c4acdd60e01b67ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff1611612853576128506153808360016158a0565b6001600160801b0383169061541c565b6000811960018301168161540b827e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f6307c4acdd60e01b67ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff169390931c8015179392505050565b600080615490847e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f6307c4acdd60e01b67ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff169050808303600180821b0385821b179250505092915050565b60008083601f8401126154be57600080fd5b50813567ffffffffffffffff8111156154d657600080fd5b6020830191508360208285010111156154ee57600080fd5b9250929050565b600080600083850360a081121561550b57600080fd5b608081121561551957600080fd5b50839250608084013567ffffffffffffffff81111561553757600080fd5b615543868287016154ac565b9497909650939450505050565b6000806040838503121561556357600080fd5b50508035926020909101359150565b634e487b7160e01b600052602160045260246000fd5b600381106155a657634e487b7160e01b600052602160045260246000fd5b50565b602081016155b683615588565b91905290565b6001600160a01b03811681146155a657600080fd5b6000602082840312156155e357600080fd5b8135614f3d816155bc565b60008060006060848603121561560357600080fd5b505081359360208301359350604090920135919050565b6000815180845260005b8181101561564057602081850181015186830182015201615624565b81811115615652576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000612850602083018461561a565b6000602082840312156156aa57600080fd5b5035919050565b80151581146155a657600080fd5b600080600080608085870312156156d557600080fd5b84359350602085013592506040850135915060608501356156f5816156b1565b939692955090935050565b60006020828403121561571257600080fd5b81356001600160801b0381168114614f3d57600080fd5b6000806000806000806080878903121561574257600080fd5b863595506020870135615754816156b1565b9450604087013567ffffffffffffffff8082111561577157600080fd5b61577d8a838b016154ac565b9096509450606089013591508082111561579657600080fd5b506157a389828a016154ac565b979a9699509497509295939492505050565b63ffffffff841681528260208201526060604082015260006116de606083018461561a565b634e487b7160e01b600052604160045260246000fd5b60006080828403121561580257600080fd5b6040516080810181811067ffffffffffffffff8211171561583357634e487b7160e01b600052604160045260246000fd5b8060405250823581526020830135602082015260408301356040820152606083013560608201528091505092915050565b8183823760009101908152919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600082198211156158b3576158b361588a565b500190565b600060001982036158cb576158cb61588a565b5060010190565b6000828210156158e4576158e461588a565b500390565b6000602082840312156158fb57600080fd5b8151614f3d816156b1565b634e487b7160e01b600052601260045260246000fd5b60008261592b5761592b615906565b500490565b600081600019048311821515161561594a5761594a61588a565b500290565b60006020828403121561596157600080fd5b8151614f3d816155bc565b60006020828403121561597e57600080fd5b5051919050565b600067ffffffffffffffff8083168185168083038211156159a8576159a861588a565b01949350505050565b600067ffffffffffffffff808316818516818304811182151516156159d8576159d861588a565b02949350505050565b600067ffffffffffffffff83811690831681811015615a0257615a0261588a565b039392505050565b60008060408385031215615a1d57600080fd5b505080516020909101519092909150565b600060208284031215615a4057600080fd5b815163ffffffff81168114614f3d57600080fd5b60007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600084136000841385830485118282161615615a9557615a9561588a565b7f80000000000000000000000000000000000000000000000000000000000000006000871286820588128184161615615ad057615ad061588a565b60008712925087820587128484161615615aec57615aec61588a565b87850587128184161615615b0257615b0261588a565b505050929093029392505050565b600082615b1f57615b1f615906565b60001983147f800000000000000000000000000000000000000000000000000000000000000083141615615b5557615b5561588a565b500590565b600082615b6957615b69615906565b500690565b60006001600160801b0383811690831681811015615a0257615a0261588a565b60006001600160801b038083168185168083038211156159a8576159a861588a565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b606081526000615c0d606083018789615bb0565b8281036020840152615c20818688615bb0565b9150508260408301529695505050505050565b600060ff821660ff841680821015615c4d57615c4d61588a565b90039392505050565b600060ff831680615c6957615c69615906565b8060ff8416069150509291505056fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R`\x046\x10a\x03UW`\x005`\xE0\x1C\x80cp\x87*\xA5\x11a\x01\xBBW\x80c\xC0\xD8\xBBt\x11a\0\xF7W\x80c\xDA\xBD9m\x11a\0\x95W\x80c\xF8\xF4?\xF6\x11a\0oW\x80c\xF8\xF4?\xF6\x14a\x0B\x9FW\x80c\xFA$\xF7C\x14a\x0B\xBFW\x80c\xFA1Z\xA9\x14a\x0B\xE3W\x80c\xFE+\xBE\xB2\x14a\x0C\x16W`\0\x80\xFD[\x80c\xDA\xBD9m\x14a\x0B\tW\x80c\xEC^c\x08\x14a\x0BW\x80c\xA8\xE4\xFB\x90\x14a\x08\xFEW\x80c\xBB\xDC\x02\xDB\x14a\t1W\x80c\xBC\xEF;U\x14a\trW\x80c\xBD\x8D\xA9V\x14a\t\x94W`\0\x80\xFD[\x80c\x8DE\n\x95\x14a\x08+W\x80c\x99s^2\x14a\x08\tW\x80c\xA4E\xEC\xE6\x14a\x08^W`\0\x80\xFD[\x80c\x81)\xFC\x1C\x11a\x01\x95W\x80c\x81)\xFC\x1C\x14a\x07\xECW\x80c\x89\x80\xE0\xCC\x14a\x07\xF4W\x80c\x8B\x85\x90+\x14a\x08\tW`\0\x80\xFD[\x80cp\x87*\xA5\x14a\x07\xAFW\x80cxk\x84K\x14a\x07\xC4W\x80c{\x0F\n\xDC\x14a\x07\xD9W`\0\x80\xFD[\x80c>:\xC9\x12\x11a\x02\x95W\x80cZ_\xA2\xD9\x11a\x023W\x80c`\xE2td\x11a\x02\rW\x80c`\xE2td\x14a\x07'W\x80ccaPm\x14a\x07GW\x80ckg\x16\xC0\x14a\x07iW\x80co\x03D\t\x14a\x07\x9CW`\0\x80\xFD[\x80cZ_\xA2\xD9\x14a\x06\xBFW\x80c\\\x0C\xBA3\x14a\x06\xDFW\x80c`\x9D34\x14a\x07\x12W`\0\x80\xFD[\x80cR\x9Dj\x8C\x11a\x02oW\x80cR\x9Dj\x8C\x14a\x05\xE0W\x80cSM\xB0\xE2\x14a\x06\rW\x80cT\xFDMP\x14a\x06@W\x80cW\xDA\x95\x0E\x14a\x06\x8FW`\0\x80\xFD[\x80c>:\xC9\x12\x14a\x05jW\x80c?\xC8\xCE\xF3\x14a\x05\x9AW\x80cG'w\xC6\x14a\x05\xCDW`\0\x80\xFD[\x80c%\xFC*\xCE\x11a\x03\x02W\x80c0\xDB\xE5p\x11a\x02\xDCW\x80c0\xDB\xE5p\x14a\x04\xC3W\x80c7\x8D\xD4\x8C\x14a\x04\xFBW\x80c7\xB1\xB2)\x14a\x05\x15W\x80c:v\x84c\x14a\x057W`\0\x80\xFD[\x80c%\xFC*\xCE\x14a\x04oW\x80c(\x10\xE1\xD6\x14a\x04\x8EW\x80c*\xD6\x9A\xEB\x14a\x04\xA3W`\0\x80\xFD[\x80c \r.\xD2\x11a\x033W\x80c \r.\xD2\x14a\x03\xE7W\x80c\"*\xBFE\x14a\x04\x15W\x80c%\x0Ei\xBD\x14a\x04UW`\0\x80\xFD[\x80c\x01\x93Q0\x14a\x03ZW\x80c\x03\xC2\x92M\x14a\x03|W\x80c\x19\xEF\xFE\xB4\x14a\x03\x9CW[`\0\x80\xFD[4\x80\x15a\x03fW`\0\x80\xFD[Pa\x03za\x03u6`\x04aT\xF5V[a\x0CFV[\0[4\x80\x15a\x03\x88W`\0\x80\xFD[Pa\x03za\x03\x976`\x04aUPV[a\x0F\x05V[4\x80\x15a\x03\xA8W`\0\x80\xFD[P`\0Ta\x03\xC9\x90h\x01\0\0\0\0\0\0\0\0\x90\x04g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[`@Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[4\x80\x15a\x03\xF3W`\0\x80\xFD[P`\0Ta\x04\x08\x90`\x01`\x80\x1B\x90\x04`\xFF\x16\x81V[`@Qa\x03\xDE\x91\x90aU\xA9V[4\x80\x15a\x04!W`\0\x80\xFD[Pa\x04Ea\x0406`\x04aU\xD1V[`\x0C` R`\0\x90\x81R`@\x90 T`\xFF\x16\x81V[`@Q\x90\x15\x15\x81R` \x01a\x03\xDEV[4\x80\x15a\x04aW`\0\x80\xFD[P`\nTa\x04E\x90`\xFF\x16\x81V[4\x80\x15a\x04{W`\0\x80\xFD[P`\x08T[`@Q\x90\x81R` \x01a\x03\xDEV[4\x80\x15a\x04\x9AW`\0\x80\xFD[Pa\x04\x08a\x14\x8DV[4\x80\x15a\x04\xAFW`\0\x80\xFD[Pa\x04\x80a\x04\xBE6`\x04aUPV[a\x16eV[4\x80\x15a\x04\xCFW`\0\x80\xFD[P`\x01Ta\x04\xE3\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x01a\x03\xDEV[4\x80\x15a\x05\x07W`\0\x80\xFD[P`\rTa\x04\x08\x90`\xFF\x16\x81V[4\x80\x15a\x05!W`\0\x80\xFD[P6`\x01\x19\x81\x015`\xF0\x1C\x90\x035``\x1Ca\x04\xE3V[4\x80\x15a\x05CW`\0\x80\xFD[P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x04\xE3V[4\x80\x15a\x05vW`\0\x80\xFD[P`\0Ta\x04E\x90r\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16\x81V[4\x80\x15a\x05\xA6W`\0\x80\xFD[P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x04\xE3V[a\x03za\x05\xDB6`\x04aU\xEEV[a\x16\x9BV[4\x80\x15a\x05\xECW`\0\x80\xFD[Pa\x04\x80a\x05\xFB6`\x04aU\xD1V[`\x03` R`\0\x90\x81R`@\x90 T\x81V[4\x80\x15a\x06\x19W`\0\x80\xFD[P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x04\xE3V[4\x80\x15a\x06LW`\0\x80\xFD[P`@\x80Q\x80\x82\x01\x90\x91R`\x05\x81R\x7F1.8.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` \x82\x01R[`@Qa\x03\xDE\x91\x90aV\x85V[4\x80\x15a\x06\x9BW`\0\x80\xFD[P`\x08T`\tTa\x06\xAA\x91\x90\x82V[`@\x80Q\x92\x83R` \x83\x01\x91\x90\x91R\x01a\x03\xDEV[4\x80\x15a\x06\xCBW`\0\x80\xFD[Pa\x04\x80a\x06\xDA6`\x04aV\x98V[a\x16\xADV[4\x80\x15a\x06\xEBW`\0\x80\xFD[P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x04\xE3V[4\x80\x15a\x07\x1EW`\0\x80\xFD[Pa\x06\x82a\x16\xE7V[4\x80\x15a\x073W`\0\x80\xFD[Pa\x03za\x07B6`\x04aU\xD1V[a\x16\xF5V[4\x80\x15a\x07SW`\0\x80\xFD[P6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`4\x015a\x04\x80V[4\x80\x15a\x07uW`\0\x80\xFD[P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x03\xC9V[a\x03za\x07\xAA6`\x04aV\xBFV[a\x1A\rV[4\x80\x15a\x07\xBBW`\0\x80\xFD[P`\tTa\x04\x80V[4\x80\x15a\x07\xD0W`\0\x80\xFD[Pa\x03za\x1A\xB4V[a\x03za\x07\xE76`\x04aU\xEEV[a\x1E\xD3V[a\x03za\x1E\xE0V[4\x80\x15a\x08\0W`\0\x80\xFD[P`\x02Ta\x04\x80V[4\x80\x15a\x08\x15W`\0\x80\xFD[P6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`T\x015a\x04\x80V[4\x80\x15a\x087W`\0\x80\xFD[P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x04\x80V[4\x80\x15a\x08jW`\0\x80\xFD[Pa\x08\xC0a\x08y6`\x04aV\x98V[`\x07` R`\0\x90\x81R`@\x90 \x80T`\x01\x90\x91\x01T`\xFF\x82\x16\x91a\x01\0\x81\x04c\xFF\xFF\xFF\xFF\x16\x91e\x01\0\0\0\0\0\x90\x91\x04`\x01`\x01`\x80\x1B\x03\x16\x90`\x01`\x01`\xA0\x1B\x03\x16\x84V[`@\x80Q\x94\x15\x15\x85Rc\xFF\xFF\xFF\xFF\x90\x93\x16` \x85\x01R`\x01`\x01`\x80\x1B\x03\x90\x91\x16\x91\x83\x01\x91\x90\x91R`\x01`\x01`\xA0\x1B\x03\x16``\x82\x01R`\x80\x01a\x03\xDEV[4\x80\x15a\t\nW`\0\x80\xFD[P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x04\xE3V[4\x80\x15a\t=W`\0\x80\xFD[P`@Qc\xFF\xFF\xFF\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x81R` \x01a\x03\xDEV[4\x80\x15a\t~W`\0\x80\xFD[P6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\x14\x015a\x04\x80V[4\x80\x15a\t\xA0W`\0\x80\xFD[Pa\x03\xC9a\t\xAF6`\x04aV\x98V[a\x1FLV[4\x80\x15a\t\xC0W`\0\x80\xFD[Pa\x04\x80a\t\xCF6`\x04aU\xD1V[`\x0B` R`\0\x90\x81R`@\x90 T\x81V[4\x80\x15a\t\xEDW`\0\x80\xFD[Pa\x04\x80a\t\xFC6`\x04aW\0V[a \xE6V[4\x80\x15a\n\rW`\0\x80\xFD[Pa\n!a\n\x1C6`\x04aV\x98V[a\"\xA7V[`@\x80Qc\xFF\xFF\xFF\xFF\x90\x98\x16\x88R`\x01`\x01`\xA0\x1B\x03\x96\x87\x16` \x89\x01R\x95\x90\x94\x16\x94\x86\x01\x94\x90\x94R`\x01`\x01`\x80\x1B\x03\x91\x82\x16``\x86\x01R`\x80\x85\x01R\x91\x82\x16`\xA0\x84\x01R\x16`\xC0\x82\x01R`\xE0\x01a\x03\xDEV[4\x80\x15a\n\x81W`\0\x80\xFD[P`\0Ta\x03\xC9\x90g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[4\x80\x15a\n\xA2W`\0\x80\xFD[Pa\x04\x80a\n\xB16`\x04aU\xD1V[a#\x1BV[4\x80\x15a\n\xC2W`\0\x80\xFD[P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x04\x80V[4\x80\x15a\n\xF5W`\0\x80\xFD[Pa\x03za\x0B\x046`\x04aW)V[a#sV[4\x80\x15a\x0B\x15W`\0\x80\xFD[P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x03\xC9V[4\x80\x15a\x0BHW`\0\x80\xFD[P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x04\x80V[4\x80\x15a\x0B{W`\0\x80\xFD[Pa\x04Ea\x0B\x8A6`\x04aV\x98V[`\x04` R`\0\x90\x81R`@\x90 T`\xFF\x16\x81V[4\x80\x15a\x0B\xABW`\0\x80\xFD[Pa\x03za\x0B\xBA6`\x04aU\xEEV[a$\x16V[4\x80\x15a\x0B\xCBW`\0\x80\xFD[Pa\x0B\xD4a'\xFCV[`@Qa\x03\xDE\x93\x92\x91\x90aW\xB5V[4\x80\x15a\x0B\xEFW`\0\x80\xFD[P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x04\x80V[4\x80\x15a\x0C\"W`\0\x80\xFD[Pa\x04Ea\x0C16`\x04aV\x98V[`\x06` R`\0\x90\x81R`@\x90 T`\xFF\x16\x81V[`\0\x80T`\x01`\x80\x1B\x90\x04`\xFF\x16`\x02\x81\x11\x15a\x0CeWa\x0CeaUrV[\x14a\x0C\x83W`@Qc\x06\x7F\xE1\x95`\xE4\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0Tr\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16\x15a\x0C\xD6W`@Q\x7F\x0E\xA2\xE7R\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\x01`@Q\x80\x91\x03\x90\xFD[a\x0C\xEF6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\x14\x015\x90V[\x90V[a\r\x06a\r\x016\x86\x90\x03\x86\x01\x86aW\xF0V[a(YV[\x14a\r=W`@Q\x7F\x9C\xC0\x0B[\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\x01`@Q\x80\x91\x03\x90\xFD[\x82``\x015\x82\x82`@Qa\rR\x92\x91\x90aXdV[`@Q\x80\x91\x03\x90 \x14a\r\x91W`@Q\x7F\xD8\x1DX;\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\x01`@Q\x80\x91\x03\x90\xFD[`\0a\r\xDAa\r\xD5\x84\x84\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RPa(\xB5\x92PPPV[a)\"V[\x90P`\0a\x0E\x01\x82`\x08\x81Q\x81\x10a\r\xF4Wa\r\xF4aXtV[` \x02` \x01\x01Qa*\xD8V[\x90P` \x81Q\x11\x15a\x0E?W`@Q\x7F\xD8\x1DX;\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\x01`@Q\x80\x91\x03\x90\xFD[` \x81\x81\x01Q\x82Q\x90\x91\x03`\x03\x1B\x1C6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`T\x015\x81\x03a\x0E\x96W`@Q\x7F\xB8\xED\x880\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\x01`@Q\x80\x91\x03\x90\xFD[PP`\x01\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x163\x17\x90UPP`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16r\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x17\x90UPPV[`\0\x80T`\x01`\x80\x1B\x90\x04`\xFF\x16`\x02\x81\x11\x15a\x0F$Wa\x0F$aUrV[\x14a\x0FBW`@Qc\x06\x7F\xE1\x95`\xE4\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0`\x02\x83\x81T\x81\x10a\x0FWWa\x0FWaXtV[\x90`\0R` `\0 \x90`\x05\x02\x01\x90P`\0a\x0Fr\x84a\x1FLV[\x90Pg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81\x16\x90\x82\x16\x10\x15a\x0F\xDBW`@Q\x7F\xF2D\x0BS\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\x01`@Q\x80\x91\x03\x90\xFD[`\0\x84\x81R`\x06` R`@\x90 T`\xFF\x16\x15a\x10$W`@Q\x7F\xF1\xA9E\x81\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\x01`@Q\x80\x91\x03\x90\xFD[`\0\x84\x81R`\x05` R`@\x90 \x80T\x80\x15\x80\x15a\x10AWP\x85\x15\x15[\x15a\x10\xA4W\x83Td\x01\0\0\0\0\x90\x04`\x01`\x01`\xA0\x1B\x03\x16`\0\x81\x15a\x10gW\x81a\x10vV[`\x01\x86\x01T`\x01`\x01`\xA0\x1B\x03\x16[\x90Pa\x10\x82\x81\x87a+\x8CV[PPP`\0\x94\x85RPP`\x06` RPP`@\x90 \x80T`\xFF\x19\x16`\x01\x17\x90UV[`\0\x86\x81R`\x07` \x90\x81R`@\x91\x82\x90 \x82Q`\x80\x81\x01\x84R\x81T`\xFF\x81\x16\x15\x15\x80\x83Ra\x01\0\x82\x04c\xFF\xFF\xFF\xFF\x16\x94\x83\x01\x94\x90\x94Re\x01\0\0\0\0\0\x90\x04`\x01`\x01`\x80\x1B\x03\x16\x93\x81\x01\x93\x90\x93R`\x01\x01T`\x01`\x01`\xA0\x1B\x03\x16``\x83\x01Ra\x11(W`\x01`\x01`\x80\x1B\x03`@\x82\x01R`\x01\x81R`\0\x86\x90\x03a\x11(W\x81\x95P[`\0\x86\x82` \x01Qc\xFF\xFF\xFF\xFF\x16a\x11@\x91\x90aX\xA0V[\x90P`\0\x83\x82\x11a\x11QW\x81a\x11SV[\x83[` \x84\x01Q\x90\x91Pc\xFF\xFF\xFF\xFF\x16[\x81\x81\x10\x15a\x12sW`\0\x86\x82\x81T\x81\x10a\x11~Wa\x11~aXtV[`\0\x91\x82R` \x80\x83 \x90\x91\x01T\x80\x83R`\x06\x90\x91R`@\x90\x91 T\x90\x91P`\xFF\x16a\x11\xD6W`@Q\x7F\x9A\x07fF\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\x01`@Q\x80\x91\x03\x90\xFD[`\0`\x02\x82\x81T\x81\x10a\x11\xEBWa\x11\xEBaXtV[`\0\x91\x82R` \x90\x91 `\x05\x90\x91\x02\x01\x80T\x90\x91Pd\x01\0\0\0\0\x90\x04`\x01`\x01`\xA0\x1B\x03\x16\x15\x80\x15a\x122WP`\x04\x81\x01T`@\x87\x01Q`\x01`\x01`\x80\x1B\x03\x91\x82\x16\x91\x16\x11[\x15a\x12^W`\x01\x81\x01T`\x01`\x01`\xA0\x1B\x03\x16``\x87\x01R`\x04\x81\x01T`\x01`\x01`\x80\x1B\x03\x16`@\x87\x01R[PP\x80\x80a\x12k\x90aX\xB8V[\x91PPa\x11bV[Pc\xFF\xFF\xFF\xFF\x81\x81\x16` \x85\x81\x01\x91\x82R`\0\x8C\x81R`\x07\x90\x91R`@\x90\x81\x90 \x86Q\x81T\x93Q\x92\x88\x01Q\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\x90\x94\x16\x90\x15\x15\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\xFF\x16\x17a\x01\0\x92\x90\x94\x16\x91\x82\x02\x93\x90\x93\x17\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xFF\xFF\xFF\xFF\xFF\x16e\x01\0\0\0\0\0`\x01`\x01`\x80\x1B\x03\x90\x93\x16\x92\x90\x92\x02\x91\x90\x91\x17\x82U``\x85\x01Q`\x01\x90\x92\x01\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16`\x01`\x01`\xA0\x1B\x03\x90\x93\x16\x92\x90\x92\x17\x90\x91U\x84\x90\x03a\x14\x82W``\x83\x01Q`\0\x8A\x81R`\x06` R`@\x90 \x80T`\xFF\x19\x16`\x01\x17\x90U\x89\x15\x80\x15a\x13\xBFWP`\0Tr\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16[\x15a\x14\x1AW`\x01T`\x01`\x01`\xA0\x1B\x03\x16a\x13\xDA\x81\x8Aa+\x8CV[\x88T`\x01`\x01`\xA0\x1B\x03\x90\x91\x16d\x01\0\0\0\0\x02\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xFF\xFF\xFF\xFF\x90\x91\x16\x17\x88Ua\x14\x80V[a\x14G`\x01`\x01`\xA0\x1B\x03\x82\x16\x15a\x142W\x81a\x14AV[`\x01\x89\x01T`\x01`\x01`\xA0\x1B\x03\x16[\x89a+\x8CV[\x87T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xFF\xFF\xFF\xFF\x16d\x01\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x83\x16\x02\x17\x88U[P[PPPPPPPPPV[`\0\x80`\0T`\x01`\x80\x1B\x90\x04`\xFF\x16`\x02\x81\x11\x15a\x14\xAEWa\x14\xAEaUrV[\x14a\x14\xCCW`@Qc\x06\x7F\xE1\x95`\xE4\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0\x80R`\x06` R\x7FT\xCD\xD3i\xE4\xE8\xA8Q^R\xCAr\xEC\x81l!\x01\x83\x1A\xD1\xF1\x8B\xF4A\x02\xED\x17\x14Y\xC9\xB4\xF8T`\xFF\x16a\x150W`@Q\x7F\x9A\x07fF\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\x01`@Q\x80\x91\x03\x90\xFD[`\0`\x01`\x01`\xA0\x1B\x03\x16`\x02`\0\x81T\x81\x10a\x15OWa\x15OaXtV[`\0\x91\x82R` \x90\x91 `\x05\x90\x91\x02\x01Td\x01\0\0\0\0\x90\x04`\x01`\x01`\xA0\x1B\x03\x16\x14a\x15}W`\x01a\x15\x80V[`\x02[`\0\x80Tg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFFB\x16h\x01\0\0\0\0\0\0\0\0\x02\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16\x81\x17\x83U\x92\x93P\x83\x92\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x17`\x01`\x80\x1B\x83`\x02\x81\x11\x15a\x16$Wa\x16$aUrV[\x02\x17\x90U`\x02\x81\x11\x15a\x169Wa\x169aUrV[`@Q\x7F^\x18o\t\xB9\xC94\x91\xF1N'~\xEA\x7F\xAA]\xE6\xA2\xD4\xBD\xA7Zy\xAFz6\x84\xFB\xFBB\xDA`\x90`\0\x90\xA2\x90V[`\x05` R\x81`\0R`@`\0 \x81\x81T\x81\x10a\x16\x81W`\0\x80\xFD[\x90`\0R` `\0 \x01`\0\x91P\x91PPT\x81V[\x90P\x90V[a\x16\xA8\x83\x83\x83`\x01a\x1A\rV[PPPV[`\0\x81\x81R`\x07` \x90\x81R`@\x80\x83 `\x05\x90\x92R\x82 \x80T\x82Ta\x16\xDE\x90a\x01\0\x90\x04c\xFF\xFF\xFF\xFF\x16\x82aX\xD2V[\x95\x94PPPPPV[``a\x16\x96`T` a+\xCEV[a\x16\xFDa\x1A\xB4V[`\0`\x02`\rT`\xFF\x16`\x02\x81\x11\x15a\x17\x18Wa\x17\x18aUrV[\x03a\x17=`\0\xFD[PPPPPPV[\x80`\0\x03a\x18\xC2W`@Q\x7F\x17\xBF\xE5\xF7\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xA0\x1B\x03\x82\x81\x16`\0\x81\x81R`\x0B` \x90\x81R`@\x80\x83 \x83\x90U`\x03\x90\x91R\x80\x82 \x91\x90\x91UQ\x7F\xF3\xFE\xF3\xA3\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\x81\x01\x91\x90\x91R`$\x81\x01\x83\x90R\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x91\x16\x90c\xF3\xFE\xF3\xA3\x90`D\x01`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a\x19hW`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x19|W=`\0\x80>=`\0\xFD[PPPP`\0\x82`\x01`\x01`\xA0\x1B\x03\x16\x82`@Q`\0`@Q\x80\x83\x03\x81\x85\x87Z\xF1\x92PPP=\x80`\0\x81\x14a\x19\xCDW`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=`\0` \x84\x01>a\x19\xD2V[``\x91P[PP\x90P\x80a\x16\xA8W`@Q\x7F\x83\xE6\xCCk\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\x01`@Q\x80\x91\x03\x90\xFD[3`\x01`\x01`\xA0\x1B\x03\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x14\x80a\x1AlWP3`\x01`\x01`\xA0\x1B\x03\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x14[a\x1A\xA2W`@Q\x7F\xD3\x86\xEF>\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\x01`@Q\x80\x91\x03\x90\xFD[a\x1A\xAE\x84\x84\x84\x84a,\x02V[PPPPV[`\x02`\rT`\xFF\x16`\x02\x81\x11\x15a\x1A\xCDWa\x1A\xCDaUrV[\x14\x80a\x1A\xEFWP`\x01`\rT`\xFF\x16`\x02\x81\x11\x15a\x1A\xEDWa\x1A\xEDaUrV[\x14[\x15a\x1A\xF6WV[`\0`\rT`\xFF\x16`\x02\x81\x11\x15a\x1B\x0FWa\x1B\x0FaUrV[\x14a\x1BFW`@Q\x7F\x07\x8A=\xF4\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\x01`@Q\x80\x91\x03\x90\xFD[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16c\\\x97Z\xBB`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x1B\xA4W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x1B\xC8\x91\x90aX\xE9V[\x15a\x1B\xFFW`@Q\x7F7\x9A~\xD9\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\x01`@Q\x80\x91\x03\x90\xFD[`\0Th\x01\0\0\0\0\0\0\0\0\x90\x04g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\0\x03a\x1C[W`@Q\x7F\xC1\x05&\n\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\x01`@Q\x80\x91\x03\x90\xFD[`@Q\x7F\x03\x14\xD2\xB3\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\x81R0`\x04\x82\x01R`\0\x90\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16\x90c\x03\x14\xD2\xB3\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x1C\xDBW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x1C\xFF\x91\x90aX\xE9V[\x90P\x80a\x1D8W`@Q\x7FHQ\xBD\x9B\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\x01`@Q\x80\x91\x03\x90\xFD[`@Q\x7F\x17\xCF!\xA9\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\x81R0`\x04\x82\x01R\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16\x90c\x17\xCF!\xA9\x90`$\x01`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a\x1D\xB2W`\0\x80\xFD[PZ\xF1\x92PPP\x80\x15a\x1D\xC3WP`\x01[P`@Q\x7FIk\x9C\x16\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\x81R0`\x04\x82\x01R`\0\x90\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16\x90cIk\x9C\x16\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x1EDW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x1Eh\x91\x90aX\xE9V[\x90P\x80\x15a\x1E\x82W`\r\x80T`\xFF\x19\x16`\x01\x17\x90Ua\x1E\x90V[`\r\x80T`\xFF\x19\x16`\x02\x17\x90U[`\rT`@Q\x7F\x99\x08\xEA\xAC\x06E\xDF\x9D\x07\x04\xD0j\xDC\x9E\x073|\x95\x1D\xE2\xF0k_(6\x15\x1DH\xD5\xE4r/\x91a\x1E\xC7\x91`\xFF\x90\x91\x16\x90aU\xA9V[`@Q\x80\x91\x03\x90\xA1PPV[a\x16\xA8\x83\x83\x83`\0a\x1A\rV[2`\x01`\x01`\xA0\x1B\x03\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x14a\x1FBW`@Q\x7F\xD3\x86\xEF>\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\x01`@Q\x80\x91\x03\x90\xFD[a\x1FJa5\xA3V[V[`\0\x80`\0T`\x01`\x80\x1B\x90\x04`\xFF\x16`\x02\x81\x11\x15a\x1FmWa\x1FmaUrV[\x14a\x1F\x8BW`@Qc\x06\x7F\xE1\x95`\xE4\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0`\x02\x83\x81T\x81\x10a\x1F\xA0Wa\x1F\xA0aXtV[`\0\x91\x82R` \x82 `\x05\x90\x91\x02\x01\x80T\x90\x92Pc\xFF\xFF\xFF\xFF\x90\x81\x16\x14a \x06W\x81T`\x02\x80T\x90\x91c\xFF\xFF\xFF\xFF\x16\x90\x81\x10a\x1F\xDEWa\x1F\xDEaXtV[\x90`\0R` `\0 \x90`\x05\x02\x01`\x04\x01`\x10\x90T\x90a\x01\0\n\x90\x04`\x01`\x01`\x80\x1B\x03\x16\x90P[`\x04\x82\x01T`\0\x90a 1\x90`\x01`\x80\x1B\x90\x04g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90V[a E\x90g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16BaX\xD2V[a [a $\x84`\x01`\x01`\x80\x1B\x03\x16`@\x1C\x90V[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a o\x91\x90aX\xA0V[\x90Pg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x11a \xBCW\x80a\x16\xDEV[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x95\x94PPPPPV[`\0\x80a!c\x83`\x01`\x01`\x80\x1B\x03\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1Fc\x07\xC4\xAC\xDD`\xE0\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\xFF\x16\x90P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81\x11\x15a!\xC2W`@Q\x7FV\xF5{+\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\x01`@Q\x80\x91\x03\x90\xFD[d.\x90\xED\xD0\0b\x06\x1A\x80c\x11\xE1\xA3\0`\0a!\xDD\x83\x83aY\x1CV[\x90Pg\r\xE0\xB6\xB3\xA7d\0\0`\0a\"\x14\x82\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0aY0V[\x90P`\0a\"2a\"-g\r\xE0\xB6\xB3\xA7d\0\0\x86aY0V[a;@V[\x90P`\0a\"@\x84\x84a=\x92V[\x90P`\0a\"N\x83\x83a=\xE1V[\x90P`\0a\"[\x82a>\x0FV[\x90P`\0a\"z\x82a\"ug\r\xE0\xB6\xB3\xA7d\0\0\x8FaY0V[a?\xF7V[\x90P`\0a\"\x88\x8B\x83a=\xE1V[\x90Pa\"\x94\x81\x8DaY0V[\x9F\x9EPPPPPPPPPPPPPPPV[`\x02\x81\x81T\x81\x10a\"\xB7W`\0\x80\xFD[`\0\x91\x82R` \x90\x91 `\x05\x90\x91\x02\x01\x80T`\x01\x82\x01T`\x02\x83\x01T`\x03\x84\x01T`\x04\x90\x94\x01Tc\xFF\xFF\xFF\xFF\x84\x16\x95Pd\x01\0\0\0\0\x90\x93\x04`\x01`\x01`\xA0\x1B\x03\x90\x81\x16\x94\x92\x16\x92`\x01`\x01`\x80\x1B\x03\x91\x82\x16\x92\x91\x80\x82\x16\x91`\x01`\x80\x1B\x90\x04\x16\x87V[`\0`\x02`\rT`\xFF\x16`\x02\x81\x11\x15a#6Wa#6aUrV[\x03a#WWP`\x01`\x01`\xA0\x1B\x03\x16`\0\x90\x81R`\x0B` R`@\x90 T\x90V[P`\x01`\x01`\xA0\x1B\x03\x16`\0\x90\x81R`\x03` R`@\x90 T\x90V[3`\x01`\x01`\xA0\x1B\x03\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x14\x80a#\xD2WP3`\x01`\x01`\xA0\x1B\x03\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x14[a$\x08W`@Q\x7F\xD3\x86\xEF>\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\x01`@Q\x80\x91\x03\x90\xFD[a\x18\x80\x86\x86\x86\x86\x86\x86a@(V[`\0\x80T`\x01`\x80\x1B\x90\x04`\xFF\x16`\x02\x81\x11\x15a$5Wa$5aUrV[\x14a$SW`@Qc\x06\x7F\xE1\x95`\xE4\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0\x80`\0\x80a$b\x86aE\x84V[\x93P\x93P\x93P\x93P`\0a$x\x85\x85\x85\x85aH\xDDV[\x90P`\0\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16c}\xC0\xD1\xD0`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a$\xDAW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a$\xFE\x91\x90aYOV[\x90P`\x01\x89\x03a%\xCBW`\x01`\x01`\xA0\x1B\x03\x81\x16cR\xF0\xF3\xAD\x8A\x84a%/6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`4\x015\x90V[`@Q\x7F\xFF\xFF\xFF\xFF\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`\xE0\x86\x90\x1B\x16\x81R`\x04\x81\x01\x93\x90\x93R`$\x83\x01\x91\x90\x91R`D\x82\x01R` `d\x82\x01R`\x84\x81\x01\x8A\x90R`\xA4\x01[` `@Q\x80\x83\x03\x81`\0\x87Z\xF1\x15\x80\x15a%\xA1W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a%\xC5\x91\x90aYlV[Pa\x14\x82V[`\x02\x89\x03a%\xEAW`\x01`\x01`\xA0\x1B\x03\x81\x16cR\xF0\xF3\xAD\x8A\x84\x89a%/V[`\x03\x89\x03a&\tW`\x01`\x01`\xA0\x1B\x03\x81\x16cR\xF0\xF3\xAD\x8A\x84\x87a%/V[`\x04\x89\x03a'>W`\0a&F`\x01`\x01`\x80\x1B\x03\x85\x16\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0aI|V[`\tTa&S\x91\x90aX\xA0V[a&^\x90`\x01aX\xA0V[\x90P6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`T\x015\x81\x10a&\x8BW6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`T\x015a&\x8DV[\x80[\x90P`\x01`\x01`\xA0\x1B\x03\x82\x16cR\xF0\xF3\xAD\x8B\x85`@Q`\xE0\x84\x90\x1B\x7F\xFF\xFF\xFF\xFF\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\x16\x81R`\x04\x81\x01\x92\x90\x92R`$\x82\x01R`\xC0\x84\x90\x1B`D\x82\x01R`\x08`d\x82\x01R`\x84\x81\x01\x8B\x90R`\xA4\x01` `@Q\x80\x83\x03\x81`\0\x87Z\xF1\x15\x80\x15a'\x13W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a'7\x91\x90aYlV[PPa\x14\x82V[`\x05\x89\x03a'\xCAW`@Q\x7FR\xF0\xF3\xAD\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\x81\x01\x8A\x90R`$\x81\x01\x83\x90R\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\xC0\x1B`D\x82\x01R`\x08`d\x82\x01R`\x84\x81\x01\x88\x90R`\x01`\x01`\xA0\x1B\x03\x82\x16\x90cR\xF0\xF3\xAD\x90`\xA4\x01a%\x82V[`@Q\x7F\xFF\x13~e\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\x01`@Q\x80\x91\x03\x90\xFD[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x006`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\x14\x015``a(7a\x16\xE7V[\x90P\x90\x91\x92V[`\0\x81\x83\x10\x15a(NW\x81a(PV[\x82[\x90P[\x92\x91PPV[`\0\x81`\0\x01Q\x82` \x01Q\x83`@\x01Q\x84``\x01Q`@Q` \x01a(\x98\x94\x93\x92\x91\x90\x93\x84R` \x84\x01\x92\x90\x92R`@\x83\x01R``\x82\x01R`\x80\x01\x90V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 \x90P\x91\x90PV[`@\x80Q\x80\x82\x01\x90\x91R`\0\x80\x82R` \x82\x01R\x81Q`\0\x03a)\x04W`@Q\x7FZ\xB4X\xFB\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\x01`@Q\x80\x91\x03\x90\xFD[P`@\x80Q\x80\x82\x01\x90\x91R\x81Q\x81R` \x91\x82\x01\x91\x81\x01\x91\x90\x91R\x90V[```\0\x80`\0a)2\x85aJ\x11V[\x91\x94P\x92P\x90P`\x01\x81`\x01\x81\x11\x15a)MWa)MaUrV[\x14a)\x84W`@Q\x7FK\x9Cj\xBE\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\x01`@Q\x80\x91\x03\x90\xFD[\x84Qa)\x90\x83\x85aX\xA0V[\x14a)\xC7W`@Q\x7F\\U7\xB8\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\x01`@Q\x80\x91\x03\x90\xFD[`@\x80Q` \x80\x82Ra\x04 \x82\x01\x90\x92R\x90\x81` \x01[`@\x80Q\x80\x82\x01\x90\x91R`\0\x80\x82R` \x82\x01R\x81R` \x01\x90`\x01\x90\x03\x90\x81a)\xDEW\x90PP\x93P`\0\x83[\x86Q\x81\x10\x15a*\xCCW`\0\x80a*Q`@Q\x80`@\x01`@R\x80\x85\x8C`\0\x01Qa*5\x91\x90aX\xD2V[\x81R` \x01\x85\x8C` \x01Qa*J\x91\x90aX\xA0V[\x90RaJ\x11V[P\x91P\x91P`@Q\x80`@\x01`@R\x80\x83\x83a*m\x91\x90aX\xA0V[\x81R` \x01\x84\x8B` \x01Qa*\x82\x91\x90aX\xA0V[\x81RP\x88\x85\x81Q\x81\x10a*\x97Wa*\x97aXtV[` \x90\x81\x02\x91\x90\x91\x01\x01Ra*\xAD`\x01\x85aX\xA0V[\x93Pa*\xB9\x81\x83aX\xA0V[a*\xC3\x90\x84aX\xA0V[\x92PPPa*\x0BV[P\x84RP\x91\x93\x92PPPV[```\0\x80`\0a*\xE8\x85aJ\x11V[\x91\x94P\x92P\x90P`\0\x81`\x01\x81\x11\x15a+\x03Wa+\x03aUrV[\x14a+:W`@Q\x7F\x1F\xF9\xB2\xE4\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\x01`@Q\x80\x91\x03\x90\xFD[a+D\x82\x84aX\xA0V[\x85Q\x14a+}W`@Q\x7F\\U7\xB8\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\x01`@Q\x80\x91\x03\x90\xFD[a\x16\xDE\x85` \x01Q\x84\x84aN\xAFV[`\x02\x81\x01T`\x01`\x01`\xA0\x1B\x03\x83\x16`\0\x90\x81R`\x03` R`@\x81 \x80T`\x01`\x01`\x80\x1B\x03\x90\x93\x16\x92\x90\x91\x90a+\xC5\x90\x84\x90aX\xA0V[\x90\x91UPPPPV[`@Q\x81\x81R6`\x01\x19\x81\x015`\xF0\x1C\x90\x03\x82\x84\x82\x01` \x84\x017\x82` \x83\x01\x01`\0\x81R` \x81\x01`@RPP\x92\x91PPV[`\0\x80T`\x01`\x80\x1B\x90\x04`\xFF\x16`\x02\x81\x11\x15a,!Wa,!aUrV[\x14a,?W`@Qc\x06\x7F\xE1\x95`\xE4\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0`\x02\x84\x81T\x81\x10a,TWa,TaXtV[`\0\x91\x82R` \x91\x82\x90 `@\x80Q`\xE0\x81\x01\x82R`\x05\x90\x93\x02\x90\x91\x01\x80Tc\xFF\xFF\xFF\xFF\x81\x16\x84R`\x01`\x01`\xA0\x1B\x03d\x01\0\0\0\0\x90\x91\x04\x81\x16\x94\x84\x01\x94\x90\x94R`\x01\x81\x01T\x90\x93\x16\x90\x82\x01R`\x02\x82\x01T`\x01`\x01`\x80\x1B\x03\x90\x81\x16``\x83\x01R`\x03\x83\x01T`\x80\x83\x01\x81\x90R`\x04\x90\x93\x01T\x80\x82\x16`\xA0\x84\x01R`\x01`\x80\x1B\x90\x04\x16`\xC0\x82\x01R\x91P\x85\x14a-\x18W`@Q\x7F0\x14\x032\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\x01`@Q\x80\x91\x03\x90\xFD[`\xA0\x81\x01Q`\0\x83\x15`\x01`\x01`\x80\x1B\x03\x83\x16\x17`\x01\x1B\x90P`\0a-\xAD\x82`\x01`\x01`\x80\x1B\x03\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1Fc\x07\xC4\xAC\xDD`\xE0\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\xFF\x16\x90P\x86\x15\x80a-\xE8WPa-\xE5\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x02aX\xA0V[\x81\x14[\x80\x15a-\xF2WP\x84\x15[\x15a.)W`@Q\x7F\xA4&7\xBC\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\x01`@Q\x80\x91\x03\x90\xFD[`\0Tr\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16\x80\x15a.OWP\x86\x15[\x15a.\x86W`@Q\x7F\x0E\xA2\xE7R\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\x01`@Q\x80\x91\x03\x90\xFD[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81\x11\x15a.\xE0W`@Q\x7FV\xF5{+\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\x01`@Q\x80\x91\x03\x90\xFD[a/\x0B\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01aX\xA0V[\x81\x03a/\x1DWa/\x1D\x86\x88\x85\x88aODV[4a/'\x83a \xE6V[\x14a/^W`@Q\x7F\x86 \xAA\x19\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\x01`@Q\x80\x91\x03\x90\xFD[`\0a/i\x88a\x1FLV[\x90Pg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81\x16\x90\x82\x16\x03a/\xD1W`@Q\x7F3\x81\xD1\x14\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\x01`@Q\x80\x91\x03\x90\xFD[`\0a/\xFE`\x01\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0aX\xD2V[\x83\x03a1\"W\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16c}\xC0\xD1\xD0`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a0bW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a0\x86\x91\x90aYOV[`\x01`\x01`\xA0\x1B\x03\x16c\xF3\xF4\x80\xD9`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a0\xC3W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a0\xE7\x91\x90aYlV[a1\x1B\x90\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16aY\x85V[\x90Pa1\xB5V[a1M`\x01\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0aX\xD2V[\x83\x03a1\x88Wa1\x1B\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\x02aY\xB1V[P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16[a1\xE9\x81\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16aY\xE1V[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a2\x04\x83g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90V[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x11\x15a2KWa2H\x81\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16aY\xE1V[\x91P[`\0`@\x83\x90\x1BB\x17`\0\x8A\x81R`\x80\x87\x90\x1B`\x01`\x01`\x80\x1B\x03\x8D\x16\x17` R`@\x81 \x91\x92P\x90`\0\x81\x81R`\x04` R`@\x90 T\x90\x91P`\xFF\x16\x15a2\xC0W`@Q\x7F\x80I~;\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x04`\0\x83\x81R` \x01\x90\x81R` \x01`\0 `\0a\x01\0\n\x81T\x81`\xFF\x02\x19\x16\x90\x83\x15\x15\x02\x17\x90UP`\x02`@Q\x80`\xE0\x01`@R\x80\x8Dc\xFF\xFF\xFF\xFF\x16\x81R` \x01`\0`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x013`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x014`\x01`\x01`\x80\x1B\x03\x16\x81R` \x01\x8C\x81R` \x01\x88`\x01`\x01`\x80\x1B\x03\x16\x81R` \x01\x84`\x01`\x01`\x80\x1B\x03\x16\x81RP\x90\x80`\x01\x81T\x01\x80\x82U\x80\x91PP`\x01\x90\x03\x90`\0R` `\0 \x90`\x05\x02\x01`\0\x90\x91\x90\x91\x90\x91P`\0\x82\x01Q\x81`\0\x01`\0a\x01\0\n\x81T\x81c\xFF\xFF\xFF\xFF\x02\x19\x16\x90\x83c\xFF\xFF\xFF\xFF\x16\x02\x17\x90UP` \x82\x01Q\x81`\0\x01`\x04a\x01\0\n\x81T\x81`\x01`\x01`\xA0\x1B\x03\x02\x19\x16\x90\x83`\x01`\x01`\xA0\x1B\x03\x16\x02\x17\x90UP`@\x82\x01Q\x81`\x01\x01`\0a\x01\0\n\x81T\x81`\x01`\x01`\xA0\x1B\x03\x02\x19\x16\x90\x83`\x01`\x01`\xA0\x1B\x03\x16\x02\x17\x90UP``\x82\x01Q\x81`\x02\x01`\0a\x01\0\n\x81T\x81`\x01`\x01`\x80\x1B\x03\x02\x19\x16\x90\x83`\x01`\x01`\x80\x1B\x03\x16\x02\x17\x90UP`\x80\x82\x01Q\x81`\x03\x01U`\xA0\x82\x01Q\x81`\x04\x01`\0a\x01\0\n\x81T\x81`\x01`\x01`\x80\x1B\x03\x02\x19\x16\x90\x83`\x01`\x01`\x80\x1B\x03\x16\x02\x17\x90UP`\xC0\x82\x01Q\x81`\x04\x01`\x10a\x01\0\n\x81T\x81`\x01`\x01`\x80\x1B\x03\x02\x19\x16\x90\x83`\x01`\x01`\x80\x1B\x03\x16\x02\x17\x90UPPP`\x05`\0\x8C\x81R` \x01\x90\x81R` \x01`\0 `\x01`\x02\x80T\x90Pa4\xB7\x91\x90aX\xD2V[\x81T`\x01\x81\x01\x83U`\0\x92\x83R` \x80\x84 \x90\x91\x01\x91\x90\x91U3\x82R`\x0B\x90R`@\x81 \x80T4\x92\x90a4\xEB\x90\x84\x90aX\xA0V[\x92PP\x81\x90UP\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16c\xD0\xE3\r\xB04`@Q\x82c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01`\0`@Q\x80\x83\x03\x81\x85\x88\x80;\x15\x80\x15a5MW`\0\x80\xFD[PZ\xF1\x15\x80\x15a5aW=`\0\x80>=`\0\xFD[PP`@Q3\x93P\x8D\x92P\x8E\x91P\x7F\x9B2Et\x0E\xC3\xB1U\t\x8AU\xBE\x84\x95zM\xA1>\xAF\x7F\x14\xA8\xBCoS\x12l\x0B\x93P\xF2\xBE\x90`\0\x90\xA4PPPPPPPPPPPPV[`\0Tq\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16\x15a5\xF5W`@Q\x7F\r\xC1I\xF0\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\x01`@Q\x80\x91\x03\x90\xFD[`\0\x80\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16c\xD8>\xF2g`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01`@\x80Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a6UW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a6y\x91\x90aZ\nV[\x90\x92P\x90P\x81a6\xB5W`@Q\x7Fjk\xC3\xB2\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\x01`@Q\x80\x91\x03\x90\xFD[`@\x80Q\x80\x82\x01\x90\x91R\x82\x81R` \x01\x81\x90R`\x08\x82\x90U`\t\x81\x90U`z6\x14a7\x0CW`@Q\x7F\x98$\xBD\xAB\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\x01`@Q\x80\x91\x03\x90\xFD[\x806`\x01\x19\x81\x015`\xF0\x1C\x90\x03`T\x015\x11a7jW`@Q\x7F\xF4\x029\xDB\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\x81R6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\x14\x015`\x04\x82\x01R`$\x01[`@Q\x80\x91\x03\x90\xFD[`@\x80Q`\xE0\x81\x01\x82Rc\xFF\xFF\xFF\xFF\x80\x82R`\0` \x80\x84\x01\x82\x81R6`\x01\x19\x81\x015`\xF0\x1C\x90\x03\x805``\x90\x81\x1C\x87\x89\x01\x81\x81R`\x01`\x01`\x80\x1B\x034\x81\x81\x16\x94\x8B\x01\x94\x85R`\x14\x90\x95\x015`\x80\x8B\x01\x90\x81R`\x01`\xA0\x8C\x01\x81\x81RB\x84\x16`\xC0\x8E\x01\x90\x81R`\x02\x80T\x93\x84\x01\x81U\x8CR\x9CQ\x7F@W\x87\xFA\x12\xA8#\xE0\xF2\xB7c\x1C\xC4\x1B;\xA8\x82\x8B3!\xCA\x81\x11\x11\xFAu\xCD:\xA3\xBBZ\xCE`\x05\x90\x93\x02\x92\x83\x01\x80T\x9AQ\x91\x90\x9D\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x9A\x16\x99\x90\x99\x17d\x01\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x9A\x8B\x16\x02\x17\x90\x9BU\x92Q\x7F@W\x87\xFA\x12\xA8#\xE0\xF2\xB7c\x1C\xC4\x1B;\xA8\x82\x8B3!\xCA\x81\x11\x11\xFAu\xCD:\xA3\xBBZ\xCF\x84\x01\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x91\x90\x98\x16\x17\x90\x96U\x92Q\x7F@W\x87\xFA\x12\xA8#\xE0\xF2\xB7c\x1C\xC4\x1B;\xA8\x82\x8B3!\xCA\x81\x11\x11\xFAu\xCD:\xA3\xBBZ\xD0\x82\x01\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x91\x85\x16\x91\x90\x91\x17\x90U\x93Q\x7F@W\x87\xFA\x12\xA8#\xE0\xF2\xB7c\x1C\xC4\x1B;\xA8\x82\x8B3!\xCA\x81\x11\x11\xFAu\xCD:\xA3\xBBZ\xD1\x85\x01U\x95Q\x96Q\x96\x81\x16`\x01`\x80\x1B\x97\x90\x91\x16\x96\x90\x96\x02\x95\x90\x95\x17\x7F@W\x87\xFA\x12\xA8#\xE0\xF2\xB7c\x1C\xC4\x1B;\xA8\x82\x8B3!\xCA\x81\x11\x11\xFAu\xCD:\xA3\xBBZ\xD2\x90\x91\x01U\x81Tq\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x17\x82U\x91\x81R`\x0B\x90\x91R\x91\x82 \x80T\x91\x92\x90\x91a9\xAB\x90\x84\x90aX\xA0V[\x92PP\x81\x90UP\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16c\xD0\xE3\r\xB04`@Q\x82c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01`\0`@Q\x80\x83\x03\x81\x85\x88\x80;\x15\x80\x15a:\rW`\0\x80\xFD[PZ\xF1\x15\x80\x15a:!W=`\0\x80>=`\0\xFD[PP`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\x16Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x17\x90UPP`@\x80Q\x7F<\x9F9|\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\x90Q\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0c\xFF\xFF\xFF\xFF\x16\x92P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16\x91c<\x9F9|\x91`\x04\x80\x83\x01\x92` \x92\x91\x90\x82\x90\x03\x01\x81\x86Z\xFA\x15\x80\x15a;\0W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a;$\x91\x90aZ.V[`\n\x80T`\xFF\x19\x16c\xFF\xFF\xFF\xFF\x92\x90\x92\x16\x92\x90\x92\x14\x17\x90UPPV[`\x01`\x01`\x80\x1B\x03\x81\x11`\x07\x1B\x81\x81\x1Cg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x10`\x06\x1B\x17\x81\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x81\x81\x1Ca\xFF\xFF\x10`\x04\x1B\x17\x81\x81\x1C`\xFF\x10`\x03\x1B\x17`\0\x82\x13a;\x96Wc\x16\x15\xE68`\0R`\x04`\x1C\xFD[\x7F\xF8\xF9\xF9\xFA\xF9\xFD\xFA\xFB\xF9\xFD\xFC\xFD\xFA\xFB\xFC\xFE\xF9\xFA\xFD\xFA\xFC\xFC\xFB\xFE\xFA\xFA\xFC\xFB\xFF\xFF\xFF\xFFo\x84!\x08B\x10\x84!\x08\xCCc\x18\xC6\xDBmT\xBE\x83\x83\x1C\x1C`\x1F\x16\x1A\x18\x90\x81\x1B`\x9F\x90\x81\x1ClFWr\xB2\xBB\xBB_\x82K\x15 z0\x81\x01\x81\x02``\x90\x81\x1Dm\x03\x88\xEA\xA2t\x12\xD5\xAC\xA0&\x81]cn\x01\x82\x02\x81\x1Dm\r\xF9\x9A\xC5\x02\x03\x1B\xF9S\xEF\xF4r\xFD\xCC\x01\x82\x02\x81\x1Dm\x13\xCD\xFF\xB2\x9DQ\xD9\x93\"\xBD\xFF_\"\x11\x01\x82\x02\x81\x1Dm\n\x0Ft #\xDE\xF7\x83\xA3\x07\xA9\x86\x91.\x01\x82\x02\x81\x1Dm\x01\x92\r\x80C\xCA\x89\xB5#\x92S(NB\x01\x82\x02\x81\x1Dl\x0Bz\x86\xD77Th\xFA\xC6g\xA0\xA5'\x01l)P\x8EE\x85C\xD8\xAAM\xF2\xAB\xEEx\x83\x01\x83\x02\x82\x1Dm\x019`\x1A.\xFA\xBEq~`L\xBBH\x94\x01\x83\x02\x82\x1Dm\x02$\x7Fz{e\x942\x06I\xAA\x03\xAB\xA1\x01\x83\x02\x82\x1D\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFFs\xC0\xC7\x16\xA5\x94\xE0\rT\xE3\xC4\xCB\xC9\x01\x83\x02\x82\x1D\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFD\xC7\xB8\x8CB\x0ES\xA9\x89\x053\x12\x9Fo\x01\x83\x02\x90\x91\x1D\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFFF_\xDA'\xEBMc\xDE\xD4t\xE5\xF82\x01\x90\x91\x02\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF5\xF6\xAF\x8F{3\x96dO\x18\xE1W\x96\0\0\0\0\0\0\0\0\0\0\0\0\x01\x05q\x13@\xDA\xA0\xD5\xF7i\xDB\xA1\x91\\\xEFY\xF0\x81ZU\x06\x02\x91\x90\x03}\x02g\xA3l\x0C\x95\xB3\x97Z\xB3\xEE[ :v\x14\xA3\xF7Ss\xF0G\xD8\x03\xAE{f\x87\xF2\xB3\x02\x01}W\x11^G\x01\x8Cqw\xEE\xBF|\xD3p\xA35j\x1Bxc\0\x8AZ\xE8\x02\x8Cr\xB8\x86B\x84\x01`\xAE\x1D\x90V[`\0x\x12r]\xD1\xD2C\xAB\xA0\xE7_\xE6E\xCCHs\xF9\xE6Z\xFEh\x8C\x92\x8E\x1F!\x83\x11g\r\xE0\xB6\xB3\xA7d\0\0\x02\x15\x82\x02a=\xCFWc|_H}`\0R`\x04`\x1C\xFD[Pg\r\xE0\xB6\xB3\xA7d\0\0\x91\x90\x91\x02\x04\x90V[`\0\x81`\0\x19\x04\x83\x11\x82\x02\x15a=\xFFWc\xBA\xC6^[`\0R`\x04`\x1C\xFD[Pg\r\xE0\xB6\xB3\xA7d\0\0\x91\x02\x04\x90V[`\0\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFD\xC0\xD0W\t%\xA4b\xD7\x82\x13a>=W\x91\x90PV[h\x07U\xBFy\x8BJ\x1B\xF1\xE5\x82\x12a>[Wc\xA3{\xFE\xC9`\0R`\x04`\x1C\xFD[e\x03x-\xAC\xE9\xD9`N\x83\x90\x1B\x05\x91P`\0``k\xB1r\x17\xF7\xD1\xCFy\xAB\xC9\xE3\xB3\x98\x84\x82\x1B\x05k\x80\0\0\0\0\0\0\0\0\0\0\0\x01\x90\x1Dk\xB1r\x17\xF7\xD1\xCFy\xAB\xC9\xE3\xB3\x98\x81\x02\x90\x93\x03\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xDB\xF3\xCC\xF1`M&4P\xF0*U\x04\x81\x01\x81\x02``\x90\x81\x1Dm\x02wYI\x91\xCF\xC8_n$a\x83|\xD9\x01\x82\x02\x81\x1D\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE5\xAD\xED\xAA\x1C\xB0\x95\xAF\x9EM\xA1\x0E6<\x01\x82\x02\x81\x1Dm\xB1\xBB\xB2\x01\xF4C\xCF\x96/\x1A\x1D=\xB4\xA5\x01\x82\x02\x81\x1D\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFD8\xDCw&\x08\xB0\xAEV\xCC\xE0\x12\x96\xC0\xEB\x01\x82\x02\x81\x1Dn\x05\x18\x0B\xB1G\x99\xABG\xA8\xA8\xCB*R}W\x01m\x02\xD1g W{\xD1\x9B\xF6\x14\x17o\xE9\xEAl\x10\xFEh\xE7\xFD7\xD0\0{q?vP\x84\x01\x84\x02\x83\x1D\x90\x81\x01\x90\x84\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE,i\x81,\xF0;\x07c\xFDEJ\x8F~\x01\x02\x90\x91\x1Dn\x05\x87\xF5\x03\xBBn\xA2\x9D%\xFC\xB7@\x19dP\x01\x90\x91\x02y\xD85\xEB\xBA\x82L\x98\xFB1\xB8;,\xA4\\\0\0\0\0\0\0\0\0\0\0\0\0\x01\x05t\x02\x9D\x9D\xC3\x85c\xC3.\\/m\xC1\x92\xEEp\xEFe\xF9\x97\x8A\xF3\x02`\xC3\x93\x90\x93\x03\x92\x90\x92\x1C\x92\x91PPV[`\0a(Pg\r\xE0\xB6\xB3\xA7d\0\0\x83a@\x0F\x86a;@V[a@\x19\x91\x90aZTV[a@#\x91\x90a[\x10V[a>\x0FV[`\0\x80T`\x01`\x80\x1B\x90\x04`\xFF\x16`\x02\x81\x11\x15a@GWa@GaUrV[\x14a@eW`@Qc\x06\x7F\xE1\x95`\xE4\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0`\x02\x87\x81T\x81\x10a@zWa@zaXtV[`\0\x91\x82R` \x82 `\x05\x91\x90\x91\x02\x01`\x04\x81\x01T\x90\x92P`\x01`\x01`\x80\x1B\x03\x16\x90\x87\x15\x82\x17`\x01\x1B\x90Pa@\xD0\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01aX\xA0V[aAJ\x82`\x01`\x01`\x80\x1B\x03\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1Fc\x07\xC4\xAC\xDD`\xE0\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\xFF\x16\x14aA\x84W`@Q\x7F_S\xDD\x98\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\x01`@Q\x80\x91\x03\x90\xFD[`\0\x80\x89\x15aB`WaA\xD7\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0aX\xD2V[`\x01\x90\x1BaA\xED\x84`\x01`\x01`\x80\x1B\x03\x16aP\xD3V[`\x01`\x01`\x80\x1B\x03\x16aB\0\x91\x90a[ZV[\x15aB4WaB+aB\x1C`\x01`\x01`\x01`\x80\x1B\x03\x87\x16a[nV[\x86Tc\xFF\xFF\xFF\xFF\x16`\0aQYV[`\x03\x01TaBVV[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0[\x91P\x84\x90PaB\x81V[`\x03\x85\x01T\x91PaB~aB\x1C`\x01`\x01`\x80\x1B\x03\x86\x16`\x01a[\x8EV[\x90P[`\x08\x82\x90\x1B`\x08\x8A\x8A`@QaB\x98\x92\x91\x90aXdV[`@Q\x80\x91\x03\x90 \x90\x1B\x14aB\xD9W`@Q\x7FieP\xFF\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\x01`@Q\x80\x91\x03\x90\xFD[`\0aB\xE4\x8CaR\"V[\x90P`\0aB\xF3\x83`\x03\x01T\x90V[`@Q\x7F\xE1L\xED2\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\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16\x90c\xE1L\xED2\x90aC`\x90\x8F\x90\x8F\x90\x8F\x90\x8F\x90\x8A\x90`\x04\x01a[\xF9V[` `@Q\x80\x83\x03\x81`\0\x87Z\xF1\x15\x80\x15aC\x7FW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90aC\xA3\x91\x90aYlV[`\x04\x85\x01T\x91\x14\x91P`\0\x90`\x02\x90aD,\x90`\x01`\x01`\x80\x1B\x03\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1Fc\x07\xC4\xAC\xDD`\xE0\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[aD\xA6\x89`\x01`\x01`\x80\x1B\x03\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1Fc\x07\xC4\xAC\xDD`\xE0\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[aD\xB0\x91\x90a\\3V[aD\xBA\x91\x90a\\VV[`\xFF\x16\x15\x90P\x81\x15\x15\x81\x03aD\xFBW`@Q\x7F\xFBN@\xDD\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\x01`@Q\x80\x91\x03\x90\xFD[\x87Td\x01\0\0\0\0\x90\x04`\x01`\x01`\xA0\x1B\x03\x16\x15aEEW`@Q\x7F\x90q\xE6\xAF\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\x01`@Q\x80\x91\x03\x90\xFD[PP\x85T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xFF\xFF\xFF\xFF\x163d\x01\0\0\0\0\x02\x17\x90\x95UPPPPPPPPPPPV[`\0\x80`\0\x80`\0\x85\x90P`\0`\x02\x82\x81T\x81\x10aE\xA4WaE\xA4aXtV[`\0\x91\x82R` \x90\x91 `\x04`\x05\x90\x92\x02\x01\x90\x81\x01T\x90\x91P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90aFY\x90`\x01`\x01`\x80\x1B\x03\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1Fc\x07\xC4\xAC\xDD`\xE0\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\xFF\x16\x11aF\x93W`@Q\x7F\xB3K\\\"\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\x01`@Q\x80\x91\x03\x90\xFD[`\0\x81[`\x04\x83\x01T\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90aG8\x90`\x01`\x01`\x80\x1B\x03\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1Fc\x07\xC4\xAC\xDD`\xE0\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\xFF\x16\x92P\x82\x11\x15aG\xADW\x82Tc\xFF\xFF\xFF\xFF\x16aGw\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01aX\xA0V[\x83\x03aG\x81W\x83\x91P[`\x02\x81\x81T\x81\x10aG\x94WaG\x94aXtV[\x90`\0R` `\0 \x90`\x05\x02\x01\x93P\x80\x94PPaF\x97V[`\x04\x81\x81\x01T\x90\x84\x01T`\x01`\x01`\x80\x1B\x03\x91\x82\x16\x91\x16`\0\x81`\x01`\x01`\x80\x1B\x03\x16aG\xF2aG\xE6\x85`\x01`\x01`\x80\x1B\x03\x16`\x01\x1C\x90V[`\x01`\x01`\x80\x1B\x03\x16\x90V[`\x01`\x01`\x80\x1B\x03\x16\x14\x90P\x80\x15aH\x8BW`\0aH\x18\x83`\x01`\x01`\x80\x1B\x03\x16aP\xD3V[`\x01`\x01`\x80\x1B\x03\x16\x11\x15aHhW`\0aHHaH@`\x01`\x01`\x01`\x80\x1B\x03\x86\x16a[nV[\x89`\x01aQYV[`\x03\x81\x01T`\x04\x90\x91\x01T\x90\x9CP`\x01`\x01`\x80\x1B\x03\x16\x9APaHn\x90PV[`\x08T\x9AP[`\x03\x86\x01T`\x04\x87\x01T\x90\x99P`\x01`\x01`\x80\x1B\x03\x16\x97PaH\xCFV[`\0aH\xA4aH@`\x01`\x01`\x80\x1B\x03\x85\x16`\x01a[\x8EV[`\x03\x80\x89\x01T`\x04\x80\x8B\x01T\x92\x84\x01T\x93\x01T\x90\x9EP`\x01`\x01`\x80\x1B\x03\x91\x82\x16\x9DP\x91\x9BP\x16\x98PP[PPPPPPP\x91\x93P\x91\x93V[`\0`\x01`\x01`\x80\x1B\x03\x84\x16\x15aI8W`@\x80Q` \x81\x01\x87\x90R`\x01`\x01`\x80\x1B\x03\x80\x87\x16\x92\x82\x01\x92\x90\x92R``\x81\x01\x85\x90R\x90\x83\x16`\x80\x82\x01R`\xA0\x01`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 a\x16\xDEV[\x82\x82`@Q` \x01aI]\x92\x91\x90\x91\x82R`\x01`\x01`\x80\x1B\x03\x16` \x82\x01R`@\x01\x90V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 \x95\x94PPPPPV[`\0\x80aI\xF0\x84~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1Fc\x07\xC4\xAC\xDD`\xE0\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\xFF\x16\x90P\x80\x83\x03`\x01\x84\x1B`\x01\x80\x83\x1B\x03\x86\x83\x1B\x17\x03\x92PPP\x92\x91PPV[`\0\x80`\0\x83`\0\x01Q`\0\x03aJTW`@Q\x7FZ\xB4X\xFB\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\x01`@Q\x80\x91\x03\x90\xFD[` \x84\x01Q\x80Q`\0\x1A`\x7F\x81\x11aJyW`\0`\x01`\0\x94P\x94P\x94PPPaN\xA8V[`\xB7\x81\x11aK\x8FW`\0aJ\x8E`\x80\x83aX\xD2V[\x90P\x80\x87`\0\x01Q\x11aJ\xCDW`@Q\x7Ff\xC9D\x85\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01\x83\x81\x01Q\x7F\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x90\x82\x14\x80\x15aKEWP\x7F\x80\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x7F\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x82\x16\x10[\x15aK|W`@Q\x7F\xBA\xBB\x01\xDD\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\x01`@Q\x80\x91\x03\x90\xFD[P`\x01\x95P\x93P`\0\x92PaN\xA8\x91PPV[`\xBF\x81\x11aL\xEDW`\0aK\xA4`\xB7\x83aX\xD2V[\x90P\x80\x87`\0\x01Q\x11aK\xE3W`@Q\x7Ff\xC9D\x85\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01\x83\x01Q\x7F\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16`\0\x81\x90\x03aLEW`@Q\x7F\xBA\xBB\x01\xDD\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01\x84\x01Q`\x08\x83\x02a\x01\0\x03\x1C`7\x81\x11aL\x8DW`@Q\x7F\xBA\xBB\x01\xDD\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\x01`@Q\x80\x91\x03\x90\xFD[aL\x97\x81\x84aX\xA0V[\x89Q\x11aL\xD0W`@Q\x7Ff\xC9D\x85\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\x01`@Q\x80\x91\x03\x90\xFD[aL\xDB\x83`\x01aX\xA0V[\x97P\x95P`\0\x94PaN\xA8\x93PPPPV[`\xF7\x81\x11aMRW`\0aM\x02`\xC0\x83aX\xD2V[\x90P\x80\x87`\0\x01Q\x11aMAW`@Q\x7Ff\xC9D\x85\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01\x95P\x93P\x84\x92PaN\xA8\x91PPV[`\0aM_`\xF7\x83aX\xD2V[\x90P\x80\x87`\0\x01Q\x11aM\x9EW`@Q\x7Ff\xC9D\x85\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01\x83\x01Q\x7F\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16`\0\x81\x90\x03aN\0W`@Q\x7F\xBA\xBB\x01\xDD\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01\x84\x01Q`\x08\x83\x02a\x01\0\x03\x1C`7\x81\x11aNHW`@Q\x7F\xBA\xBB\x01\xDD\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\x01`@Q\x80\x91\x03\x90\xFD[aNR\x81\x84aX\xA0V[\x89Q\x11aN\x8BW`@Q\x7Ff\xC9D\x85\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\x01`@Q\x80\x91\x03\x90\xFD[aN\x96\x83`\x01aX\xA0V[\x97P\x95P`\x01\x94PaN\xA8\x93PPPPV[\x91\x93\x90\x92PV[``\x81g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15aN\xCAWaN\xCAaW\xDAV[`@Q\x90\x80\x82R\x80`\x1F\x01`\x1F\x19\x16` \x01\x82\x01`@R\x80\x15aN\xF4W` \x82\x01\x81\x806\x837\x01\x90P[P\x90P\x81\x15aO=W`\0aO\t\x84\x86aX\xA0V[\x90P` \x82\x01`\0[\x84\x81\x10\x15aO*W\x82\x81\x01Q\x82\x82\x01R` \x01aO\x12V[\x84\x81\x11\x15aO9W`\0\x85\x83\x01R[PPP[\x93\x92PPPV[`\0aOZ`\x01`\x01`\x80\x1B\x03\x84\x16`\x01a[\x8EV[\x90P`\0aOj\x82\x86`\x01aQYV[\x90P`\0\x86\x90\x1A\x83\x80aP4WPaO\xA3`\x02\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a[ZV[`\x04\x83\x01T`\x02\x90aP%\x90`\x01`\x01`\x80\x1B\x03\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1Fc\x07\xC4\xAC\xDD`\xE0\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[aP/\x91\x90a\\VV[`\xFF\x16\x14[\x15aP\x8CW`\xFF\x81\x16`\x01\x14\x80aPNWP`\xFF\x81\x16`\x02\x14[aP\x87W`@Q\x7F\xF4\x029\xDB\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\x81\x01\x88\x90R`$\x01a7aV[aP\xCAV[`\xFF\x81\x16\x15aP\xCAW`@Q\x7F\xF4\x029\xDB\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\x81\x01\x88\x90R`$\x01a7aV[PPPPPPPV[`\0\x80aQG\x83~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1Fc\x07\xC4\xAC\xDD`\xE0\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\x01`\xFF\x91\x90\x91\x16\x1B\x90\x92\x03\x92\x91PPV[`\0\x80\x82aQ\x99WaQ\x94`\x01`\x01`\x80\x1B\x03\x86\x16\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0aRQV[aQ\xABV[aQ\xAB\x85`\x01`\x01`\x80\x1B\x03\x16aS\x90V[\x90P`\x02\x84\x81T\x81\x10aQ\xC0WaQ\xC0aXtV[\x90`\0R` `\0 \x90`\x05\x02\x01\x91P[`\x04\x82\x01T`\x01`\x01`\x80\x1B\x03\x82\x81\x16\x91\x16\x14aR\x1AW\x81T`\x02\x80T\x90\x91c\xFF\xFF\xFF\xFF\x16\x90\x81\x10aR\x05WaR\x05aXtV[\x90`\0R` `\0 \x90`\x05\x02\x01\x91PaQ\xD1V[P\x93\x92PPPV[`\0\x80`\0\x80`\0aR3\x86aE\x84V[\x93P\x93P\x93P\x93PaRG\x84\x84\x84\x84aH\xDDV[\x96\x95PPPPPPV[`\0\x81aR\xCE\x84`\x01`\x01`\x80\x1B\x03\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1Fc\x07\xC4\xAC\xDD`\xE0\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\xFF\x16\x11aR\xE4Wc\xB3K\\\"`\0R`\x04`\x1C\xFD[aR\xED\x83aS\x90V[\x90P\x81aSj\x82`\x01`\x01`\x80\x1B\x03\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1Fc\x07\xC4\xAC\xDD`\xE0\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\xFF\x16\x11a(SWa(PaS\x80\x83`\x01aX\xA0V[`\x01`\x01`\x80\x1B\x03\x83\x16\x90aT\x1CV[`\0\x81\x19`\x01\x83\x01\x16\x81aT\x0B\x82~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1Fc\x07\xC4\xAC\xDD`\xE0\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\xFF\x16\x93\x90\x93\x1C\x80\x15\x17\x93\x92PPPV[`\0\x80aT\x90\x84~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1Fc\x07\xC4\xAC\xDD`\xE0\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\xFF\x16\x90P\x80\x83\x03`\x01\x80\x82\x1B\x03\x85\x82\x1B\x17\x92PPP\x92\x91PPV[`\0\x80\x83`\x1F\x84\x01\x12aT\xBEW`\0\x80\xFD[P\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15aT\xD6W`\0\x80\xFD[` \x83\x01\x91P\x83` \x82\x85\x01\x01\x11\x15aT\xEEW`\0\x80\xFD[\x92P\x92\x90PV[`\0\x80`\0\x83\x85\x03`\xA0\x81\x12\x15aU\x0BW`\0\x80\xFD[`\x80\x81\x12\x15aU\x19W`\0\x80\xFD[P\x83\x92P`\x80\x84\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15aU7W`\0\x80\xFD[aUC\x86\x82\x87\x01aT\xACV[\x94\x97\x90\x96P\x93\x94PPPPV[`\0\x80`@\x83\x85\x03\x12\x15aUcW`\0\x80\xFD[PP\x805\x92` \x90\x91\x015\x91PV[cNH{q`\xE0\x1B`\0R`!`\x04R`$`\0\xFD[`\x03\x81\x10aU\xA6WcNH{q`\xE0\x1B`\0R`!`\x04R`$`\0\xFD[PV[` \x81\x01aU\xB6\x83aU\x88V[\x91\x90R\x90V[`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14aU\xA6W`\0\x80\xFD[`\0` \x82\x84\x03\x12\x15aU\xE3W`\0\x80\xFD[\x815aO=\x81aU\xBCV[`\0\x80`\0``\x84\x86\x03\x12\x15aV\x03W`\0\x80\xFD[PP\x815\x93` \x83\x015\x93P`@\x90\x92\x015\x91\x90PV[`\0\x81Q\x80\x84R`\0[\x81\x81\x10\x15aV@W` \x81\x85\x01\x81\x01Q\x86\x83\x01\x82\x01R\x01aV$V[\x81\x81\x11\x15aVRW`\0` \x83\x87\x01\x01R[P`\x1F\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x92\x90\x92\x01` \x01\x92\x91PPV[` \x81R`\0a(P` \x83\x01\x84aV\x1AV[`\0` \x82\x84\x03\x12\x15aV\xAAW`\0\x80\xFD[P5\x91\x90PV[\x80\x15\x15\x81\x14aU\xA6W`\0\x80\xFD[`\0\x80`\0\x80`\x80\x85\x87\x03\x12\x15aV\xD5W`\0\x80\xFD[\x845\x93P` \x85\x015\x92P`@\x85\x015\x91P``\x85\x015aV\xF5\x81aV\xB1V[\x93\x96\x92\x95P\x90\x93PPV[`\0` \x82\x84\x03\x12\x15aW\x12W`\0\x80\xFD[\x815`\x01`\x01`\x80\x1B\x03\x81\x16\x81\x14aO=W`\0\x80\xFD[`\0\x80`\0\x80`\0\x80`\x80\x87\x89\x03\x12\x15aWBW`\0\x80\xFD[\x865\x95P` \x87\x015aWT\x81aV\xB1V[\x94P`@\x87\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15aWqW`\0\x80\xFD[aW}\x8A\x83\x8B\x01aT\xACV[\x90\x96P\x94P``\x89\x015\x91P\x80\x82\x11\x15aW\x96W`\0\x80\xFD[PaW\xA3\x89\x82\x8A\x01aT\xACV[\x97\x9A\x96\x99P\x94\x97P\x92\x95\x93\x94\x92PPPV[c\xFF\xFF\xFF\xFF\x84\x16\x81R\x82` \x82\x01R```@\x82\x01R`\0a\x16\xDE``\x83\x01\x84aV\x1AV[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[`\0`\x80\x82\x84\x03\x12\x15aX\x02W`\0\x80\xFD[`@Q`\x80\x81\x01\x81\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17\x15aX3WcNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[\x80`@RP\x825\x81R` \x83\x015` \x82\x01R`@\x83\x015`@\x82\x01R``\x83\x015``\x82\x01R\x80\x91PP\x92\x91PPV[\x81\x83\x827`\0\x91\x01\x90\x81R\x91\x90PV[cNH{q`\xE0\x1B`\0R`2`\x04R`$`\0\xFD[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[`\0\x82\x19\x82\x11\x15aX\xB3WaX\xB3aX\x8AV[P\x01\x90V[`\0`\0\x19\x82\x03aX\xCBWaX\xCBaX\x8AV[P`\x01\x01\x90V[`\0\x82\x82\x10\x15aX\xE4WaX\xE4aX\x8AV[P\x03\x90V[`\0` \x82\x84\x03\x12\x15aX\xFBW`\0\x80\xFD[\x81QaO=\x81aV\xB1V[cNH{q`\xE0\x1B`\0R`\x12`\x04R`$`\0\xFD[`\0\x82aY+WaY+aY\x06V[P\x04\x90V[`\0\x81`\0\x19\x04\x83\x11\x82\x15\x15\x16\x15aYJWaYJaX\x8AV[P\x02\x90V[`\0` \x82\x84\x03\x12\x15aYaW`\0\x80\xFD[\x81QaO=\x81aU\xBCV[`\0` \x82\x84\x03\x12\x15aY~W`\0\x80\xFD[PQ\x91\x90PV[`\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x83\x16\x81\x85\x16\x80\x83\x03\x82\x11\x15aY\xA8WaY\xA8aX\x8AV[\x01\x94\x93PPPPV[`\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x83\x16\x81\x85\x16\x81\x83\x04\x81\x11\x82\x15\x15\x16\x15aY\xD8WaY\xD8aX\x8AV[\x02\x94\x93PPPPV[`\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x81\x16\x90\x83\x16\x81\x81\x10\x15aZ\x02WaZ\x02aX\x8AV[\x03\x93\x92PPPV[`\0\x80`@\x83\x85\x03\x12\x15aZ\x1DW`\0\x80\xFD[PP\x80Q` \x90\x91\x01Q\x90\x92\x90\x91PV[`\0` \x82\x84\x03\x12\x15aZ@W`\0\x80\xFD[\x81Qc\xFF\xFF\xFF\xFF\x81\x16\x81\x14aO=W`\0\x80\xFD[`\0\x7F\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF`\0\x84\x13`\0\x84\x13\x85\x83\x04\x85\x11\x82\x82\x16\x16\x15aZ\x95WaZ\x95aX\x8AV[\x7F\x80\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\0\x87\x12\x86\x82\x05\x88\x12\x81\x84\x16\x16\x15aZ\xD0WaZ\xD0aX\x8AV[`\0\x87\x12\x92P\x87\x82\x05\x87\x12\x84\x84\x16\x16\x15aZ\xECWaZ\xECaX\x8AV[\x87\x85\x05\x87\x12\x81\x84\x16\x16\x15a[\x02Wa[\x02aX\x8AV[PPP\x92\x90\x93\x02\x93\x92PPPV[`\0\x82a[\x1FWa[\x1FaY\x06V[`\0\x19\x83\x14\x7F\x80\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x83\x14\x16\x15a[UWa[UaX\x8AV[P\x05\x90V[`\0\x82a[iWa[iaY\x06V[P\x06\x90V[`\0`\x01`\x01`\x80\x1B\x03\x83\x81\x16\x90\x83\x16\x81\x81\x10\x15aZ\x02WaZ\x02aX\x8AV[`\0`\x01`\x01`\x80\x1B\x03\x80\x83\x16\x81\x85\x16\x80\x83\x03\x82\x11\x15aY\xA8WaY\xA8aX\x8AV[\x81\x83R\x81\x81` \x85\x017P`\0` \x82\x84\x01\x01R`\0` \x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0`\x1F\x84\x01\x16\x84\x01\x01\x90P\x92\x91PPV[``\x81R`\0a\\\r``\x83\x01\x87\x89a[\xB0V[\x82\x81\x03` \x84\x01Ra\\ \x81\x86\x88a[\xB0V[\x91PP\x82`@\x83\x01R\x96\x95PPPPPPV[`\0`\xFF\x82\x16`\xFF\x84\x16\x80\x82\x10\x15a\\MWa\\MaX\x8AV[\x90\x03\x93\x92PPPV[`\0`\xFF\x83\x16\x80a\\iWa\\iaY\x06V[\x80`\xFF\x84\x16\x06\x91PP\x92\x91PPV\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct BondDistributionMode(u8); + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for u8 { + #[inline] + fn stv_to_tokens( + &self, + ) -> as alloy_sol_types::SolType>::Token<'_> { + alloy_sol_types::private::SolTypeValue::< + alloy::sol_types::sol_data::Uint<8>, + >::stv_to_tokens(self) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + as alloy_sol_types::SolType>::tokenize(self) + .0 + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::SolType>::abi_encode_packed_to(self, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + as alloy_sol_types::SolType>::abi_encoded_size(self) + } + } + impl BondDistributionMode { + /// The Solidity type name. + pub const NAME: &'static str = stringify!(@ name); + /// Convert from the underlying value type. + #[inline] + pub const fn from_underlying(value: u8) -> Self { + Self(value) + } + /// Return the underlying value. + #[inline] + pub const fn into_underlying(self) -> u8 { + self.0 + } + /// Return the single encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode(&self) -> alloy_sol_types::private::Vec { + ::abi_encode(&self.0) + } + /// Return the packed encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec { + ::abi_encode_packed(&self.0) + } + } + #[automatically_derived] + impl From for BondDistributionMode { + fn from(value: u8) -> Self { + Self::from_underlying(value) + } + } + #[automatically_derived] + impl From for u8 { + fn from(value: BondDistributionMode) -> Self { + value.into_underlying() + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for BondDistributionMode { + type RustType = u8; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = Self::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + Self::type_check(token).is_ok() + } + #[inline] + fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> { + as alloy_sol_types::SolType>::type_check(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + as alloy_sol_types::SolType>::detokenize(token) + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for BondDistributionMode { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + as alloy_sol_types::EventTopic>::topic_preimage_length(rust) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out) + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + as alloy_sol_types::EventTopic>::encode_topic(rust) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct GameStatus(u8); + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for u8 { + #[inline] + fn stv_to_tokens( + &self, + ) -> as alloy_sol_types::SolType>::Token<'_> { + alloy_sol_types::private::SolTypeValue::< + alloy::sol_types::sol_data::Uint<8>, + >::stv_to_tokens(self) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + as alloy_sol_types::SolType>::tokenize(self) + .0 + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::SolType>::abi_encode_packed_to(self, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + as alloy_sol_types::SolType>::abi_encoded_size(self) + } + } + impl GameStatus { + /// The Solidity type name. + pub const NAME: &'static str = stringify!(@ name); + /// Convert from the underlying value type. + #[inline] + pub const fn from_underlying(value: u8) -> Self { + Self(value) + } + /// Return the underlying value. + #[inline] + pub const fn into_underlying(self) -> u8 { + self.0 + } + /// Return the single encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode(&self) -> alloy_sol_types::private::Vec { + ::abi_encode(&self.0) + } + /// Return the packed encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec { + ::abi_encode_packed(&self.0) + } + } + #[automatically_derived] + impl From for GameStatus { + fn from(value: u8) -> Self { + Self::from_underlying(value) + } + } + #[automatically_derived] + impl From for u8 { + fn from(value: GameStatus) -> Self { + value.into_underlying() + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for GameStatus { + type RustType = u8; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = Self::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + Self::type_check(token).is_ok() + } + #[inline] + fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> { + as alloy_sol_types::SolType>::type_check(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + as alloy_sol_types::SolType>::detokenize(token) + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for GameStatus { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + as alloy_sol_types::EventTopic>::topic_preimage_length(rust) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out) + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + as alloy_sol_types::EventTopic>::encode_topic(rust) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct Claim(alloy::sol_types::private::FixedBytes<32>); + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue + for alloy::sol_types::private::FixedBytes<32> { + #[inline] + fn stv_to_tokens( + &self, + ) -> as alloy_sol_types::SolType>::Token<'_> { + alloy_sol_types::private::SolTypeValue::< + alloy::sol_types::sol_data::FixedBytes<32>, + >::stv_to_tokens(self) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + as alloy_sol_types::SolType>::tokenize(self) + .0 + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::SolType>::abi_encode_packed_to(self, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + as alloy_sol_types::SolType>::abi_encoded_size(self) + } + } + impl Claim { + /// The Solidity type name. + pub const NAME: &'static str = stringify!(@ name); + /// Convert from the underlying value type. + #[inline] + pub const fn from_underlying( + value: alloy::sol_types::private::FixedBytes<32>, + ) -> Self { + Self(value) + } + /// Return the underlying value. + #[inline] + pub const fn into_underlying( + self, + ) -> alloy::sol_types::private::FixedBytes<32> { + self.0 + } + /// Return the single encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode(&self) -> alloy_sol_types::private::Vec { + ::abi_encode(&self.0) + } + /// Return the packed encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec { + ::abi_encode_packed(&self.0) + } + } + #[automatically_derived] + impl From> for Claim { + fn from(value: alloy::sol_types::private::FixedBytes<32>) -> Self { + Self::from_underlying(value) + } + } + #[automatically_derived] + impl From for alloy::sol_types::private::FixedBytes<32> { + fn from(value: Claim) -> Self { + value.into_underlying() + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for Claim { + type RustType = alloy::sol_types::private::FixedBytes<32>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = Self::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + Self::type_check(token).is_ok() + } + #[inline] + fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> { + as alloy_sol_types::SolType>::type_check(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + as alloy_sol_types::SolType>::detokenize(token) + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for Claim { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + as alloy_sol_types::EventTopic>::topic_preimage_length(rust) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out) + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + as alloy_sol_types::EventTopic>::encode_topic(rust) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct Clock(u128); + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for u128 { + #[inline] + fn stv_to_tokens( + &self, + ) -> as alloy_sol_types::SolType>::Token<'_> { + alloy_sol_types::private::SolTypeValue::< + alloy::sol_types::sol_data::Uint<128>, + >::stv_to_tokens(self) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + as alloy_sol_types::SolType>::tokenize(self) + .0 + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::SolType>::abi_encode_packed_to(self, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + as alloy_sol_types::SolType>::abi_encoded_size(self) + } + } + impl Clock { + /// The Solidity type name. + pub const NAME: &'static str = stringify!(@ name); + /// Convert from the underlying value type. + #[inline] + pub const fn from_underlying(value: u128) -> Self { + Self(value) + } + /// Return the underlying value. + #[inline] + pub const fn into_underlying(self) -> u128 { + self.0 + } + /// Return the single encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode(&self) -> alloy_sol_types::private::Vec { + ::abi_encode(&self.0) + } + /// Return the packed encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec { + ::abi_encode_packed(&self.0) + } + } + #[automatically_derived] + impl From for Clock { + fn from(value: u128) -> Self { + Self::from_underlying(value) + } + } + #[automatically_derived] + impl From for u128 { + fn from(value: Clock) -> Self { + value.into_underlying() + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for Clock { + type RustType = u128; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = Self::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + Self::type_check(token).is_ok() + } + #[inline] + fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> { + as alloy_sol_types::SolType>::type_check(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + as alloy_sol_types::SolType>::detokenize(token) + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for Clock { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + as alloy_sol_types::EventTopic>::topic_preimage_length(rust) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out) + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + as alloy_sol_types::EventTopic>::encode_topic(rust) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct Duration(u64); + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for u64 { + #[inline] + fn stv_to_tokens( + &self, + ) -> as alloy_sol_types::SolType>::Token<'_> { + alloy_sol_types::private::SolTypeValue::< + alloy::sol_types::sol_data::Uint<64>, + >::stv_to_tokens(self) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + as alloy_sol_types::SolType>::tokenize(self) + .0 + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::SolType>::abi_encode_packed_to(self, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + as alloy_sol_types::SolType>::abi_encoded_size(self) + } + } + impl Duration { + /// The Solidity type name. + pub const NAME: &'static str = stringify!(@ name); + /// Convert from the underlying value type. + #[inline] + pub const fn from_underlying(value: u64) -> Self { + Self(value) + } + /// Return the underlying value. + #[inline] + pub const fn into_underlying(self) -> u64 { + self.0 + } + /// Return the single encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode(&self) -> alloy_sol_types::private::Vec { + ::abi_encode(&self.0) + } + /// Return the packed encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec { + ::abi_encode_packed(&self.0) + } + } + #[automatically_derived] + impl From for Duration { + fn from(value: u64) -> Self { + Self::from_underlying(value) + } + } + #[automatically_derived] + impl From for u64 { + fn from(value: Duration) -> Self { + value.into_underlying() + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for Duration { + type RustType = u64; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = Self::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + Self::type_check(token).is_ok() + } + #[inline] + fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> { + as alloy_sol_types::SolType>::type_check(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + as alloy_sol_types::SolType>::detokenize(token) + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for Duration { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + as alloy_sol_types::EventTopic>::topic_preimage_length(rust) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out) + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + as alloy_sol_types::EventTopic>::encode_topic(rust) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct GameType(u32); + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for u32 { + #[inline] + fn stv_to_tokens( + &self, + ) -> as alloy_sol_types::SolType>::Token<'_> { + alloy_sol_types::private::SolTypeValue::< + alloy::sol_types::sol_data::Uint<32>, + >::stv_to_tokens(self) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + as alloy_sol_types::SolType>::tokenize(self) + .0 + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::SolType>::abi_encode_packed_to(self, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + as alloy_sol_types::SolType>::abi_encoded_size(self) + } + } + impl GameType { + /// The Solidity type name. + pub const NAME: &'static str = stringify!(@ name); + /// Convert from the underlying value type. + #[inline] + pub const fn from_underlying(value: u32) -> Self { + Self(value) + } + /// Return the underlying value. + #[inline] + pub const fn into_underlying(self) -> u32 { + self.0 + } + /// Return the single encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode(&self) -> alloy_sol_types::private::Vec { + ::abi_encode(&self.0) + } + /// Return the packed encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec { + ::abi_encode_packed(&self.0) + } + } + #[automatically_derived] + impl From for GameType { + fn from(value: u32) -> Self { + Self::from_underlying(value) + } + } + #[automatically_derived] + impl From for u32 { + fn from(value: GameType) -> Self { + value.into_underlying() + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for GameType { + type RustType = u32; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = Self::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + Self::type_check(token).is_ok() + } + #[inline] + fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> { + as alloy_sol_types::SolType>::type_check(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + as alloy_sol_types::SolType>::detokenize(token) + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for GameType { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + as alloy_sol_types::EventTopic>::topic_preimage_length(rust) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out) + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + as alloy_sol_types::EventTopic>::encode_topic(rust) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct Hash(alloy::sol_types::private::FixedBytes<32>); + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue + for alloy::sol_types::private::FixedBytes<32> { + #[inline] + fn stv_to_tokens( + &self, + ) -> as alloy_sol_types::SolType>::Token<'_> { + alloy_sol_types::private::SolTypeValue::< + alloy::sol_types::sol_data::FixedBytes<32>, + >::stv_to_tokens(self) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + as alloy_sol_types::SolType>::tokenize(self) + .0 + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::SolType>::abi_encode_packed_to(self, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + as alloy_sol_types::SolType>::abi_encoded_size(self) + } + } + impl Hash { + /// The Solidity type name. + pub const NAME: &'static str = stringify!(@ name); + /// Convert from the underlying value type. + #[inline] + pub const fn from_underlying( + value: alloy::sol_types::private::FixedBytes<32>, + ) -> Self { + Self(value) + } + /// Return the underlying value. + #[inline] + pub const fn into_underlying( + self, + ) -> alloy::sol_types::private::FixedBytes<32> { + self.0 + } + /// Return the single encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode(&self) -> alloy_sol_types::private::Vec { + ::abi_encode(&self.0) + } + /// Return the packed encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec { + ::abi_encode_packed(&self.0) + } + } + #[automatically_derived] + impl From> for Hash { + fn from(value: alloy::sol_types::private::FixedBytes<32>) -> Self { + Self::from_underlying(value) + } + } + #[automatically_derived] + impl From for alloy::sol_types::private::FixedBytes<32> { + fn from(value: Hash) -> Self { + value.into_underlying() + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for Hash { + type RustType = alloy::sol_types::private::FixedBytes<32>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = Self::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + Self::type_check(token).is_ok() + } + #[inline] + fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> { + as alloy_sol_types::SolType>::type_check(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + as alloy_sol_types::SolType>::detokenize(token) + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for Hash { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + as alloy_sol_types::EventTopic>::topic_preimage_length(rust) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out) + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + as alloy_sol_types::EventTopic>::encode_topic(rust) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct Position(u128); + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for u128 { + #[inline] + fn stv_to_tokens( + &self, + ) -> as alloy_sol_types::SolType>::Token<'_> { + alloy_sol_types::private::SolTypeValue::< + alloy::sol_types::sol_data::Uint<128>, + >::stv_to_tokens(self) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + as alloy_sol_types::SolType>::tokenize(self) + .0 + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::SolType>::abi_encode_packed_to(self, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + as alloy_sol_types::SolType>::abi_encoded_size(self) + } + } + impl Position { + /// The Solidity type name. + pub const NAME: &'static str = stringify!(@ name); + /// Convert from the underlying value type. + #[inline] + pub const fn from_underlying(value: u128) -> Self { + Self(value) + } + /// Return the underlying value. + #[inline] + pub const fn into_underlying(self) -> u128 { + self.0 + } + /// Return the single encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode(&self) -> alloy_sol_types::private::Vec { + ::abi_encode(&self.0) + } + /// Return the packed encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec { + ::abi_encode_packed(&self.0) + } + } + #[automatically_derived] + impl From for Position { + fn from(value: u128) -> Self { + Self::from_underlying(value) + } + } + #[automatically_derived] + impl From for u128 { + fn from(value: Position) -> Self { + value.into_underlying() + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for Position { + type RustType = u128; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = Self::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + Self::type_check(token).is_ok() + } + #[inline] + fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> { + as alloy_sol_types::SolType>::type_check(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + as alloy_sol_types::SolType>::detokenize(token) + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for Position { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + as alloy_sol_types::EventTopic>::topic_preimage_length(rust) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out) + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + as alloy_sol_types::EventTopic>::encode_topic(rust) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct Timestamp(u64); + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for u64 { + #[inline] + fn stv_to_tokens( + &self, + ) -> as alloy_sol_types::SolType>::Token<'_> { + alloy_sol_types::private::SolTypeValue::< + alloy::sol_types::sol_data::Uint<64>, + >::stv_to_tokens(self) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + as alloy_sol_types::SolType>::tokenize(self) + .0 + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::SolType>::abi_encode_packed_to(self, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + as alloy_sol_types::SolType>::abi_encoded_size(self) + } + } + impl Timestamp { + /// The Solidity type name. + pub const NAME: &'static str = stringify!(@ name); + /// Convert from the underlying value type. + #[inline] + pub const fn from_underlying(value: u64) -> Self { + Self(value) + } + /// Return the underlying value. + #[inline] + pub const fn into_underlying(self) -> u64 { + self.0 + } + /// Return the single encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode(&self) -> alloy_sol_types::private::Vec { + ::abi_encode(&self.0) + } + /// Return the packed encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec { + ::abi_encode_packed(&self.0) + } + } + #[automatically_derived] + impl From for Timestamp { + fn from(value: u64) -> Self { + Self::from_underlying(value) + } + } + #[automatically_derived] + impl From for u64 { + fn from(value: Timestamp) -> Self { + value.into_underlying() + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for Timestamp { + type RustType = u64; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = Self::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + Self::type_check(token).is_ok() + } + #[inline] + fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> { + as alloy_sol_types::SolType>::type_check(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + as alloy_sol_types::SolType>::detokenize(token) + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for Timestamp { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + as alloy_sol_types::EventTopic>::topic_preimage_length(rust) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out) + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + as alloy_sol_types::EventTopic>::encode_topic(rust) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `AlreadyInitialized()` and selector `0x0dc149f0`. +```solidity +error AlreadyInitialized(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct AlreadyInitialized; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: AlreadyInitialized) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for AlreadyInitialized { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for AlreadyInitialized { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "AlreadyInitialized()"; + const SELECTOR: [u8; 4] = [13u8, 193u8, 73u8, 240u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `AnchorRootNotFound()` and selector `0x6a6bc3b2`. +```solidity +error AnchorRootNotFound(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct AnchorRootNotFound; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: AnchorRootNotFound) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for AnchorRootNotFound { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for AnchorRootNotFound { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "AnchorRootNotFound()"; + const SELECTOR: [u8; 4] = [106u8, 107u8, 195u8, 178u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `BadAuth()` and selector `0xd386ef3e`. +```solidity +error BadAuth(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct BadAuth; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: BadAuth) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for BadAuth { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for BadAuth { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "BadAuth()"; + const SELECTOR: [u8; 4] = [211u8, 134u8, 239u8, 62u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `BadExtraData()` and selector `0x9824bdab`. +```solidity +error BadExtraData(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct BadExtraData; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: BadExtraData) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for BadExtraData { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for BadExtraData { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "BadExtraData()"; + const SELECTOR: [u8; 4] = [152u8, 36u8, 189u8, 171u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `BlockNumberMatches()` and selector `0xb8ed8830`. +```solidity +error BlockNumberMatches(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct BlockNumberMatches; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: BlockNumberMatches) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for BlockNumberMatches { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for BlockNumberMatches { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "BlockNumberMatches()"; + const SELECTOR: [u8; 4] = [184u8, 237u8, 136u8, 48u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `BondTransferFailed()` and selector `0x83e6cc6b`. +```solidity +error BondTransferFailed(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct BondTransferFailed; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: BondTransferFailed) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for BondTransferFailed { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for BondTransferFailed { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "BondTransferFailed()"; + const SELECTOR: [u8; 4] = [131u8, 230u8, 204u8, 107u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `CannotDefendRootClaim()` and selector `0xa42637bc`. +```solidity +error CannotDefendRootClaim(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct CannotDefendRootClaim; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: CannotDefendRootClaim) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for CannotDefendRootClaim { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for CannotDefendRootClaim { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "CannotDefendRootClaim()"; + const SELECTOR: [u8; 4] = [164u8, 38u8, 55u8, 188u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ClaimAboveSplit()` and selector `0xb34b5c22`. +```solidity +error ClaimAboveSplit(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ClaimAboveSplit; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ClaimAboveSplit) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ClaimAboveSplit { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ClaimAboveSplit { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ClaimAboveSplit()"; + const SELECTOR: [u8; 4] = [179u8, 75u8, 92u8, 34u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ClaimAlreadyExists()` and selector `0x80497e3b`. +```solidity +error ClaimAlreadyExists(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ClaimAlreadyExists; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ClaimAlreadyExists) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ClaimAlreadyExists { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ClaimAlreadyExists { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ClaimAlreadyExists()"; + const SELECTOR: [u8; 4] = [128u8, 73u8, 126u8, 59u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ClaimAlreadyResolved()` and selector `0xf1a94581`. +```solidity +error ClaimAlreadyResolved(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ClaimAlreadyResolved; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ClaimAlreadyResolved) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ClaimAlreadyResolved { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ClaimAlreadyResolved { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ClaimAlreadyResolved()"; + const SELECTOR: [u8; 4] = [241u8, 169u8, 69u8, 129u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ClockNotExpired()` and selector `0xf2440b53`. +```solidity +error ClockNotExpired(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ClockNotExpired; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ClockNotExpired) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ClockNotExpired { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ClockNotExpired { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ClockNotExpired()"; + const SELECTOR: [u8; 4] = [242u8, 68u8, 11u8, 83u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ClockTimeExceeded()` and selector `0x3381d114`. +```solidity +error ClockTimeExceeded(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ClockTimeExceeded; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ClockTimeExceeded) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ClockTimeExceeded { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ClockTimeExceeded { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ClockTimeExceeded()"; + const SELECTOR: [u8; 4] = [51u8, 129u8, 209u8, 20u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ContentLengthMismatch()` and selector `0x66c94485`. +```solidity +error ContentLengthMismatch(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ContentLengthMismatch; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ContentLengthMismatch) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ContentLengthMismatch { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ContentLengthMismatch { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ContentLengthMismatch()"; + const SELECTOR: [u8; 4] = [102u8, 201u8, 68u8, 133u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `DuplicateStep()` and selector `0x9071e6af`. +```solidity +error DuplicateStep(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct DuplicateStep; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: DuplicateStep) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for DuplicateStep { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for DuplicateStep { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "DuplicateStep()"; + const SELECTOR: [u8; 4] = [144u8, 113u8, 230u8, 175u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `EmptyItem()` and selector `0x5ab458fb`. +```solidity +error EmptyItem(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct EmptyItem; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: EmptyItem) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for EmptyItem { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for EmptyItem { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "EmptyItem()"; + const SELECTOR: [u8; 4] = [90u8, 180u8, 88u8, 251u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `GameDepthExceeded()` and selector `0x56f57b2b`. +```solidity +error GameDepthExceeded(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct GameDepthExceeded; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: GameDepthExceeded) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for GameDepthExceeded { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for GameDepthExceeded { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "GameDepthExceeded()"; + const SELECTOR: [u8; 4] = [86u8, 245u8, 123u8, 43u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `GameNotFinalized()` and selector `0x4851bd9b`. +```solidity +error GameNotFinalized(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct GameNotFinalized; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: GameNotFinalized) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for GameNotFinalized { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for GameNotFinalized { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "GameNotFinalized()"; + const SELECTOR: [u8; 4] = [72u8, 81u8, 189u8, 155u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `GameNotInProgress()` and selector `0x67fe1950`. +```solidity +error GameNotInProgress(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct GameNotInProgress; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: GameNotInProgress) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for GameNotInProgress { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for GameNotInProgress { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "GameNotInProgress()"; + const SELECTOR: [u8; 4] = [103u8, 254u8, 25u8, 80u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `GameNotResolved()` and selector `0xc105260a`. +```solidity +error GameNotResolved(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct GameNotResolved; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: GameNotResolved) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for GameNotResolved { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for GameNotResolved { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "GameNotResolved()"; + const SELECTOR: [u8; 4] = [193u8, 5u8, 38u8, 10u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `GamePaused()` and selector `0x379a7ed9`. +```solidity +error GamePaused(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct GamePaused; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: GamePaused) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for GamePaused { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for GamePaused { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "GamePaused()"; + const SELECTOR: [u8; 4] = [55u8, 154u8, 126u8, 217u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `IncorrectBondAmount()` and selector `0x8620aa19`. +```solidity +error IncorrectBondAmount(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct IncorrectBondAmount; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: IncorrectBondAmount) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for IncorrectBondAmount { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for IncorrectBondAmount { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "IncorrectBondAmount()"; + const SELECTOR: [u8; 4] = [134u8, 32u8, 170u8, 25u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidBondDistributionMode()` and selector `0x078a3df4`. +```solidity +error InvalidBondDistributionMode(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidBondDistributionMode; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: InvalidBondDistributionMode) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for InvalidBondDistributionMode { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidBondDistributionMode { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidBondDistributionMode()"; + const SELECTOR: [u8; 4] = [7u8, 138u8, 61u8, 244u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidChallengePeriod()` and selector `0xb4e12433`. +```solidity +error InvalidChallengePeriod(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidChallengePeriod; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InvalidChallengePeriod) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InvalidChallengePeriod { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidChallengePeriod { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidChallengePeriod()"; + const SELECTOR: [u8; 4] = [180u8, 225u8, 36u8, 51u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidClockExtension()` and selector `0x8d77ecac`. +```solidity +error InvalidClockExtension(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidClockExtension; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InvalidClockExtension) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InvalidClockExtension { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidClockExtension { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidClockExtension()"; + const SELECTOR: [u8; 4] = [141u8, 119u8, 236u8, 172u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidDataRemainder()` and selector `0x5c5537b8`. +```solidity +error InvalidDataRemainder(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidDataRemainder; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InvalidDataRemainder) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InvalidDataRemainder { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidDataRemainder { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidDataRemainder()"; + const SELECTOR: [u8; 4] = [92u8, 85u8, 55u8, 184u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidDisputedClaimIndex()` and selector `0x30140332`. +```solidity +error InvalidDisputedClaimIndex(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidDisputedClaimIndex; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: InvalidDisputedClaimIndex) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for InvalidDisputedClaimIndex { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidDisputedClaimIndex { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidDisputedClaimIndex()"; + const SELECTOR: [u8; 4] = [48u8, 20u8, 3u8, 50u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidHeader()` and selector `0xbabb01dd`. +```solidity +error InvalidHeader(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidHeader; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InvalidHeader) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InvalidHeader { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidHeader { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidHeader()"; + const SELECTOR: [u8; 4] = [186u8, 187u8, 1u8, 221u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidHeaderRLP()` and selector `0xd81d583b`. +```solidity +error InvalidHeaderRLP(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidHeaderRLP; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InvalidHeaderRLP) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InvalidHeaderRLP { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidHeaderRLP { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidHeaderRLP()"; + const SELECTOR: [u8; 4] = [216u8, 29u8, 88u8, 59u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidLocalIdent()` and selector `0xff137e65`. +```solidity +error InvalidLocalIdent(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidLocalIdent; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InvalidLocalIdent) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InvalidLocalIdent { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidLocalIdent { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidLocalIdent()"; + const SELECTOR: [u8; 4] = [255u8, 19u8, 126u8, 101u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidOutputRootProof()` and selector `0x9cc00b5b`. +```solidity +error InvalidOutputRootProof(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidOutputRootProof; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InvalidOutputRootProof) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InvalidOutputRootProof { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidOutputRootProof { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidOutputRootProof()"; + const SELECTOR: [u8; 4] = [156u8, 192u8, 11u8, 91u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidParent()` and selector `0x5f53dd98`. +```solidity +error InvalidParent(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidParent; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InvalidParent) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InvalidParent { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidParent { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidParent()"; + const SELECTOR: [u8; 4] = [95u8, 83u8, 221u8, 152u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidPrestate()` and selector `0x696550ff`. +```solidity +error InvalidPrestate(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidPrestate; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InvalidPrestate) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InvalidPrestate { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidPrestate { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidPrestate()"; + const SELECTOR: [u8; 4] = [105u8, 101u8, 80u8, 255u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidSplitDepth()` and selector `0xe62ccf39`. +```solidity +error InvalidSplitDepth(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidSplitDepth; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InvalidSplitDepth) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InvalidSplitDepth { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidSplitDepth { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidSplitDepth()"; + const SELECTOR: [u8; 4] = [230u8, 44u8, 207u8, 57u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `L2BlockNumberChallenged()` and selector `0x0ea2e752`. +```solidity +error L2BlockNumberChallenged(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct L2BlockNumberChallenged; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: L2BlockNumberChallenged) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for L2BlockNumberChallenged { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for L2BlockNumberChallenged { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "L2BlockNumberChallenged()"; + const SELECTOR: [u8; 4] = [14u8, 162u8, 231u8, 82u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `MaxDepthTooLarge()` and selector `0x77dfe332`. +```solidity +error MaxDepthTooLarge(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct MaxDepthTooLarge; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: MaxDepthTooLarge) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for MaxDepthTooLarge { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for MaxDepthTooLarge { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "MaxDepthTooLarge()"; + const SELECTOR: [u8; 4] = [119u8, 223u8, 227u8, 50u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `NoCreditToClaim()` and selector `0x17bfe5f7`. +```solidity +error NoCreditToClaim(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct NoCreditToClaim; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: NoCreditToClaim) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for NoCreditToClaim { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for NoCreditToClaim { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "NoCreditToClaim()"; + const SELECTOR: [u8; 4] = [23u8, 191u8, 229u8, 247u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `OutOfOrderResolution()` and selector `0x9a076646`. +```solidity +error OutOfOrderResolution(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct OutOfOrderResolution; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: OutOfOrderResolution) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for OutOfOrderResolution { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for OutOfOrderResolution { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "OutOfOrderResolution()"; + const SELECTOR: [u8; 4] = [154u8, 7u8, 102u8, 70u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ReservedGameType()` and selector `0x39f68b38`. +```solidity +error ReservedGameType(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ReservedGameType; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ReservedGameType) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ReservedGameType { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ReservedGameType { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ReservedGameType()"; + const SELECTOR: [u8; 4] = [57u8, 246u8, 139u8, 56u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `UnexpectedList()` and selector `0x1ff9b2e4`. +```solidity +error UnexpectedList(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct UnexpectedList; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: UnexpectedList) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for UnexpectedList { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for UnexpectedList { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "UnexpectedList()"; + const SELECTOR: [u8; 4] = [31u8, 249u8, 178u8, 228u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `UnexpectedRootClaim(bytes32)` and selector `0xf40239db`. +```solidity +error UnexpectedRootClaim(Claim rootClaim); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct UnexpectedRootClaim { + #[allow(missing_docs)] + pub rootClaim: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Claim,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (::RustType,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: UnexpectedRootClaim) -> Self { + (value.rootClaim,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for UnexpectedRootClaim { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { rootClaim: tuple.0 } + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for UnexpectedRootClaim { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "UnexpectedRootClaim(bytes32)"; + const SELECTOR: [u8; 4] = [244u8, 2u8, 57u8, 219u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + (::tokenize(&self.rootClaim),) + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `UnexpectedString()` and selector `0x4b9c6abe`. +```solidity +error UnexpectedString(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct UnexpectedString; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: UnexpectedString) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for UnexpectedString { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for UnexpectedString { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "UnexpectedString()"; + const SELECTOR: [u8; 4] = [75u8, 156u8, 106u8, 190u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ValidStep()` and selector `0xfb4e40dd`. +```solidity +error ValidStep(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ValidStep; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ValidStep) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ValidStep { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ValidStep { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ValidStep()"; + const SELECTOR: [u8; 4] = [251u8, 78u8, 64u8, 221u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `GameClosed(uint8)` and selector `0x9908eaac0645df9d0704d06adc9e07337c951de2f06b5f2836151d48d5e4722f`. +```solidity +event GameClosed(BondDistributionMode bondDistributionMode); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct GameClosed { + #[allow(missing_docs)] + pub bondDistributionMode: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for GameClosed { + type DataTuple<'a> = (BondDistributionMode,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,); + const SIGNATURE: &'static str = "GameClosed(uint8)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 153u8, 8u8, 234u8, 172u8, 6u8, 69u8, 223u8, 157u8, 7u8, 4u8, 208u8, + 106u8, 220u8, 158u8, 7u8, 51u8, 124u8, 149u8, 29u8, 226u8, 240u8, 107u8, + 95u8, 40u8, 54u8, 21u8, 29u8, 72u8, 213u8, 228u8, 114u8, 47u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + bondDistributionMode: data.0, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + ::tokenize( + &self.bondDistributionMode, + ), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(),) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for GameClosed { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&GameClosed> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &GameClosed) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `Move(uint256,bytes32,address)` and selector `0x9b3245740ec3b155098a55be84957a4da13eaf7f14a8bc6f53126c0b9350f2be`. +```solidity +event Move(uint256 indexed parentIndex, Claim indexed claim, address indexed claimant); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct Move { + #[allow(missing_docs)] + pub parentIndex: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub claim: ::RustType, + #[allow(missing_docs)] + pub claimant: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for Move { + type DataTuple<'a> = (); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Uint<256>, + Claim, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "Move(uint256,bytes32,address)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 155u8, 50u8, 69u8, 116u8, 14u8, 195u8, 177u8, 85u8, 9u8, 138u8, 85u8, + 190u8, 132u8, 149u8, 122u8, 77u8, 161u8, 62u8, 175u8, 127u8, 20u8, 168u8, + 188u8, 111u8, 83u8, 18u8, 108u8, 11u8, 147u8, 80u8, 242u8, 190u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + parentIndex: topics.1, + claim: topics.2, + claimant: topics.3, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + () + } + #[inline] + fn topics(&self) -> ::RustType { + ( + Self::SIGNATURE_HASH.into(), + self.parentIndex.clone(), + self.claim.clone(), + self.claimant.clone(), + ) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = as alloy_sol_types::EventTopic>::encode_topic(&self.parentIndex); + out[2usize] = ::encode_topic( + &self.claim, + ); + out[3usize] = ::encode_topic( + &self.claimant, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for Move { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&Move> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &Move) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `Resolved(uint8)` and selector `0x5e186f09b9c93491f14e277eea7faa5de6a2d4bda75a79af7a3684fbfb42da60`. +```solidity +event Resolved(GameStatus indexed status); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct Resolved { + #[allow(missing_docs)] + pub status: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for Resolved { + type DataTuple<'a> = (); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>, GameStatus); + const SIGNATURE: &'static str = "Resolved(uint8)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 94u8, 24u8, 111u8, 9u8, 185u8, 201u8, 52u8, 145u8, 241u8, 78u8, 39u8, + 126u8, 234u8, 127u8, 170u8, 93u8, 230u8, 162u8, 212u8, 189u8, 167u8, + 90u8, 121u8, 175u8, 122u8, 54u8, 132u8, 251u8, 251u8, 66u8, 218u8, 96u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { status: topics.1 } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + () + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.status.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.status, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for Resolved { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&Resolved> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &Resolved) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + /**Constructor`. +```solidity +constructor(FaultDisputeGame.GameConstructorParams _params, address _proposer, address _challenger); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct constructorCall { + #[allow(missing_docs)] + pub _params: ::RustType, + #[allow(missing_docs)] + pub _proposer: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _challenger: alloy::sol_types::private::Address, + } + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + FaultDisputeGame::GameConstructorParams, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: constructorCall) -> Self { + (value._params, value._proposer, value._challenger) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for constructorCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _params: tuple.0, + _proposer: tuple.1, + _challenger: tuple.2, + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolConstructor for constructorCall { + type Parameters<'a> = ( + FaultDisputeGame::GameConstructorParams, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._params, + ), + ::tokenize( + &self._proposer, + ), + ::tokenize( + &self._challenger, + ), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `absolutePrestate()` and selector `0x8d450a95`. +```solidity +function absolutePrestate() external view returns (Claim absolutePrestate_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct absolutePrestateCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`absolutePrestate()`](absolutePrestateCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct absolutePrestateReturn { + #[allow(missing_docs)] + pub absolutePrestate_: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: absolutePrestateCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for absolutePrestateCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Claim,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: absolutePrestateReturn) -> Self { + (value.absolutePrestate_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for absolutePrestateReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { absolutePrestate_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for absolutePrestateCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (Claim,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "absolutePrestate()"; + const SELECTOR: [u8; 4] = [141u8, 69u8, 10u8, 149u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: absolutePrestateReturn = r.into(); + r.absolutePrestate_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: absolutePrestateReturn = r.into(); + r.absolutePrestate_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `addLocalData(uint256,uint256,uint256)` and selector `0xf8f43ff6`. +```solidity +function addLocalData(uint256 _ident, uint256 _execLeafIdx, uint256 _partOffset) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct addLocalDataCall { + #[allow(missing_docs)] + pub _ident: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _execLeafIdx: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _partOffset: alloy::sol_types::private::primitives::aliases::U256, + } + ///Container type for the return parameters of the [`addLocalData(uint256,uint256,uint256)`](addLocalDataCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct addLocalDataReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: addLocalDataCall) -> Self { + (value._ident, value._execLeafIdx, value._partOffset) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for addLocalDataCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _ident: tuple.0, + _execLeafIdx: tuple.1, + _partOffset: tuple.2, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: addLocalDataReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for addLocalDataReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl addLocalDataReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for addLocalDataCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = addLocalDataReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "addLocalData(uint256,uint256,uint256)"; + const SELECTOR: [u8; 4] = [248u8, 244u8, 63u8, 246u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._ident), + as alloy_sol_types::SolType>::tokenize(&self._execLeafIdx), + as alloy_sol_types::SolType>::tokenize(&self._partOffset), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + addLocalDataReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `anchorStateRegistry()` and selector `0x5c0cba33`. +```solidity +function anchorStateRegistry() external view returns (address registry_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct anchorStateRegistryCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`anchorStateRegistry()`](anchorStateRegistryCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct anchorStateRegistryReturn { + #[allow(missing_docs)] + pub registry_: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: anchorStateRegistryCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for anchorStateRegistryCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: anchorStateRegistryReturn) -> Self { + (value.registry_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for anchorStateRegistryReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { registry_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for anchorStateRegistryCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "anchorStateRegistry()"; + const SELECTOR: [u8; 4] = [92u8, 12u8, 186u8, 51u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: anchorStateRegistryReturn = r.into(); + r.registry_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: anchorStateRegistryReturn = r.into(); + r.registry_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `attack(bytes32,uint256,bytes32)` and selector `0x472777c6`. +```solidity +function attack(Claim _disputed, uint256 _parentIndex, Claim _claim) external payable; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct attackCall { + #[allow(missing_docs)] + pub _disputed: ::RustType, + #[allow(missing_docs)] + pub _parentIndex: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _claim: ::RustType, + } + ///Container type for the return parameters of the [`attack(bytes32,uint256,bytes32)`](attackCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct attackReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + Claim, + alloy::sol_types::sol_data::Uint<256>, + Claim, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + alloy::sol_types::private::primitives::aliases::U256, + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: attackCall) -> Self { + (value._disputed, value._parentIndex, value._claim) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for attackCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _disputed: tuple.0, + _parentIndex: tuple.1, + _claim: tuple.2, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: attackReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for attackReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl attackReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for attackCall { + type Parameters<'a> = (Claim, alloy::sol_types::sol_data::Uint<256>, Claim); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = attackReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "attack(bytes32,uint256,bytes32)"; + const SELECTOR: [u8; 4] = [71u8, 39u8, 119u8, 198u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize(&self._disputed), + as alloy_sol_types::SolType>::tokenize(&self._parentIndex), + ::tokenize(&self._claim), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + attackReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `bondDistributionMode()` and selector `0x378dd48c`. +```solidity +function bondDistributionMode() external view returns (BondDistributionMode); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct bondDistributionModeCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`bondDistributionMode()`](bondDistributionModeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct bondDistributionModeReturn { + #[allow(missing_docs)] + pub _0: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: bondDistributionModeCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for bondDistributionModeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (BondDistributionMode,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: bondDistributionModeReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for bondDistributionModeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for bondDistributionModeCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (BondDistributionMode,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "bondDistributionMode()"; + const SELECTOR: [u8; 4] = [55u8, 141u8, 212u8, 140u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: bondDistributionModeReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: bondDistributionModeReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `challengeRootL2Block((bytes32,bytes32,bytes32,bytes32),bytes)` and selector `0x01935130`. +```solidity +function challengeRootL2Block(Types.OutputRootProof memory _outputRootProof, bytes memory _headerRLP) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct challengeRootL2BlockCall { + #[allow(missing_docs)] + pub _outputRootProof: ::RustType, + #[allow(missing_docs)] + pub _headerRLP: alloy::sol_types::private::Bytes, + } + ///Container type for the return parameters of the [`challengeRootL2Block((bytes32,bytes32,bytes32,bytes32),bytes)`](challengeRootL2BlockCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct challengeRootL2BlockReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + Types::OutputRootProof, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + alloy::sol_types::private::Bytes, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: challengeRootL2BlockCall) -> Self { + (value._outputRootProof, value._headerRLP) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for challengeRootL2BlockCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _outputRootProof: tuple.0, + _headerRLP: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: challengeRootL2BlockReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for challengeRootL2BlockReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl challengeRootL2BlockReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken< + '_, + > { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for challengeRootL2BlockCall { + type Parameters<'a> = ( + Types::OutputRootProof, + alloy::sol_types::sol_data::Bytes, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = challengeRootL2BlockReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "challengeRootL2Block((bytes32,bytes32,bytes32,bytes32),bytes)"; + const SELECTOR: [u8; 4] = [1u8, 147u8, 81u8, 48u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._outputRootProof, + ), + ::tokenize( + &self._headerRLP, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + challengeRootL2BlockReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `challenger()` and selector `0x534db0e2`. +```solidity +function challenger() external view returns (address challenger_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct challengerCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`challenger()`](challengerCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct challengerReturn { + #[allow(missing_docs)] + pub challenger_: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: challengerCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for challengerCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: challengerReturn) -> Self { + (value.challenger_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for challengerReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { challenger_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for challengerCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "challenger()"; + const SELECTOR: [u8; 4] = [83u8, 77u8, 176u8, 226u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: challengerReturn = r.into(); + r.challenger_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: challengerReturn = r.into(); + r.challenger_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `claimCredit(address)` and selector `0x60e27464`. +```solidity +function claimCredit(address _recipient) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct claimCreditCall { + #[allow(missing_docs)] + pub _recipient: alloy::sol_types::private::Address, + } + ///Container type for the return parameters of the [`claimCredit(address)`](claimCreditCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct claimCreditReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: claimCreditCall) -> Self { + (value._recipient,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for claimCreditCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _recipient: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: claimCreditReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for claimCreditReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl claimCreditReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for claimCreditCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = claimCreditReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "claimCredit(address)"; + const SELECTOR: [u8; 4] = [96u8, 226u8, 116u8, 100u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._recipient, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + claimCreditReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `claimData(uint256)` and selector `0xc6f0308c`. +```solidity +function claimData(uint256) external view returns (uint32 parentIndex, address counteredBy, address claimant, uint128 bond, Claim claim, Position position, Clock clock); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct claimDataCall(pub alloy::sol_types::private::primitives::aliases::U256); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`claimData(uint256)`](claimDataCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct claimDataReturn { + #[allow(missing_docs)] + pub parentIndex: u32, + #[allow(missing_docs)] + pub counteredBy: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub claimant: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub bond: u128, + #[allow(missing_docs)] + pub claim: ::RustType, + #[allow(missing_docs)] + pub position: ::RustType, + #[allow(missing_docs)] + pub clock: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: claimDataCall) -> Self { + (value.0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for claimDataCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self(tuple.0) + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Uint<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<128>, + Claim, + Position, + Clock, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + u32, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + u128, + ::RustType, + ::RustType, + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: claimDataReturn) -> Self { + ( + value.parentIndex, + value.counteredBy, + value.claimant, + value.bond, + value.claim, + value.position, + value.clock, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for claimDataReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + parentIndex: tuple.0, + counteredBy: tuple.1, + claimant: tuple.2, + bond: tuple.3, + claim: tuple.4, + position: tuple.5, + clock: tuple.6, + } + } + } + } + impl claimDataReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.parentIndex), + ::tokenize( + &self.counteredBy, + ), + ::tokenize( + &self.claimant, + ), + as alloy_sol_types::SolType>::tokenize(&self.bond), + ::tokenize(&self.claim), + ::tokenize(&self.position), + ::tokenize(&self.clock), + ) + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for claimDataCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = claimDataReturn; + type ReturnTuple<'a> = ( + alloy::sol_types::sol_data::Uint<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<128>, + Claim, + Position, + Clock, + ); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "claimData(uint256)"; + const SELECTOR: [u8; 4] = [198u8, 240u8, 48u8, 140u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.0), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + claimDataReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `claimDataLen()` and selector `0x8980e0cc`. +```solidity +function claimDataLen() external view returns (uint256 len_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct claimDataLenCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`claimDataLen()`](claimDataLenCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct claimDataLenReturn { + #[allow(missing_docs)] + pub len_: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: claimDataLenCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for claimDataLenCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: claimDataLenReturn) -> Self { + (value.len_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for claimDataLenReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { len_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for claimDataLenCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "claimDataLen()"; + const SELECTOR: [u8; 4] = [137u8, 128u8, 224u8, 204u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: claimDataLenReturn = r.into(); + r.len_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: claimDataLenReturn = r.into(); + r.len_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `claims(bytes32)` and selector `0xeff0f592`. +```solidity +function claims(Hash) external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct claimsCall(pub ::RustType); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`claims(bytes32)`](claimsCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct claimsReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Hash,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: claimsCall) -> Self { + (value.0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for claimsCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self(tuple.0) + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: claimsReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for claimsReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for claimsCall { + type Parameters<'a> = (Hash,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "claims(bytes32)"; + const SELECTOR: [u8; 4] = [239u8, 240u8, 245u8, 146u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + (::tokenize(&self.0),) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: claimsReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: claimsReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `clockExtension()` and selector `0x6b6716c0`. +```solidity +function clockExtension() external view returns (Duration clockExtension_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct clockExtensionCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`clockExtension()`](clockExtensionCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct clockExtensionReturn { + #[allow(missing_docs)] + pub clockExtension_: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: clockExtensionCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for clockExtensionCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Duration,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: clockExtensionReturn) -> Self { + (value.clockExtension_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for clockExtensionReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { clockExtension_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for clockExtensionCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (Duration,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "clockExtension()"; + const SELECTOR: [u8; 4] = [107u8, 103u8, 22u8, 192u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: clockExtensionReturn = r.into(); + r.clockExtension_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: clockExtensionReturn = r.into(); + r.clockExtension_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `closeGame()` and selector `0x786b844b`. +```solidity +function closeGame() external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct closeGameCall; + ///Container type for the return parameters of the [`closeGame()`](closeGameCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct closeGameReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: closeGameCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for closeGameCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: closeGameReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for closeGameReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl closeGameReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for closeGameCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = closeGameReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "closeGame()"; + const SELECTOR: [u8; 4] = [120u8, 107u8, 132u8, 75u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + closeGameReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `createdAt()` and selector `0xcf09e0d0`. +```solidity +function createdAt() external view returns (Timestamp); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct createdAtCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`createdAt()`](createdAtCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct createdAtReturn { + #[allow(missing_docs)] + pub _0: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: createdAtCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for createdAtCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Timestamp,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: createdAtReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for createdAtReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for createdAtCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (Timestamp,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "createdAt()"; + const SELECTOR: [u8; 4] = [207u8, 9u8, 224u8, 208u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: createdAtReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: createdAtReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `credit(address)` and selector `0xd5d44d80`. +```solidity +function credit(address _recipient) external view returns (uint256 credit_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct creditCall { + #[allow(missing_docs)] + pub _recipient: alloy::sol_types::private::Address, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`credit(address)`](creditCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct creditReturn { + #[allow(missing_docs)] + pub credit_: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: creditCall) -> Self { + (value._recipient,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for creditCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _recipient: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: creditReturn) -> Self { + (value.credit_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for creditReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { credit_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for creditCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "credit(address)"; + const SELECTOR: [u8; 4] = [213u8, 212u8, 77u8, 128u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._recipient, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: creditReturn = r.into(); + r.credit_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: creditReturn = r.into(); + r.credit_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `defend(bytes32,uint256,bytes32)` and selector `0x7b0f0adc`. +```solidity +function defend(Claim _disputed, uint256 _parentIndex, Claim _claim) external payable; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct defendCall { + #[allow(missing_docs)] + pub _disputed: ::RustType, + #[allow(missing_docs)] + pub _parentIndex: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _claim: ::RustType, + } + ///Container type for the return parameters of the [`defend(bytes32,uint256,bytes32)`](defendCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct defendReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + Claim, + alloy::sol_types::sol_data::Uint<256>, + Claim, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + alloy::sol_types::private::primitives::aliases::U256, + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: defendCall) -> Self { + (value._disputed, value._parentIndex, value._claim) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for defendCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _disputed: tuple.0, + _parentIndex: tuple.1, + _claim: tuple.2, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: defendReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for defendReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl defendReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for defendCall { + type Parameters<'a> = (Claim, alloy::sol_types::sol_data::Uint<256>, Claim); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = defendReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "defend(bytes32,uint256,bytes32)"; + const SELECTOR: [u8; 4] = [123u8, 15u8, 10u8, 220u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize(&self._disputed), + as alloy_sol_types::SolType>::tokenize(&self._parentIndex), + ::tokenize(&self._claim), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + defendReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `extraData()` and selector `0x609d3334`. +```solidity +function extraData() external pure returns (bytes memory extraData_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct extraDataCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`extraData()`](extraDataCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct extraDataReturn { + #[allow(missing_docs)] + pub extraData_: alloy::sol_types::private::Bytes, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: extraDataCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for extraDataCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bytes,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Bytes,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: extraDataReturn) -> Self { + (value.extraData_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for extraDataReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { extraData_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for extraDataCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Bytes; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bytes,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "extraData()"; + const SELECTOR: [u8; 4] = [96u8, 157u8, 51u8, 52u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: extraDataReturn = r.into(); + r.extraData_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: extraDataReturn = r.into(); + r.extraData_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `gameCreator()` and selector `0x37b1b229`. +```solidity +function gameCreator() external pure returns (address creator_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct gameCreatorCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`gameCreator()`](gameCreatorCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct gameCreatorReturn { + #[allow(missing_docs)] + pub creator_: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: gameCreatorCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for gameCreatorCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: gameCreatorReturn) -> Self { + (value.creator_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for gameCreatorReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { creator_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for gameCreatorCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "gameCreator()"; + const SELECTOR: [u8; 4] = [55u8, 177u8, 178u8, 41u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: gameCreatorReturn = r.into(); + r.creator_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: gameCreatorReturn = r.into(); + r.creator_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `gameData()` and selector `0xfa24f743`. +```solidity +function gameData() external view returns (GameType gameType_, Claim rootClaim_, bytes memory extraData_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct gameDataCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`gameData()`](gameDataCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct gameDataReturn { + #[allow(missing_docs)] + pub gameType_: ::RustType, + #[allow(missing_docs)] + pub rootClaim_: ::RustType, + #[allow(missing_docs)] + pub extraData_: alloy::sol_types::private::Bytes, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: gameDataCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for gameDataCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + GameType, + Claim, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ::RustType, + alloy::sol_types::private::Bytes, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: gameDataReturn) -> Self { + (value.gameType_, value.rootClaim_, value.extraData_) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for gameDataReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + gameType_: tuple.0, + rootClaim_: tuple.1, + extraData_: tuple.2, + } + } + } + } + impl gameDataReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + ( + ::tokenize(&self.gameType_), + ::tokenize(&self.rootClaim_), + ::tokenize( + &self.extraData_, + ), + ) + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for gameDataCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = gameDataReturn; + type ReturnTuple<'a> = (GameType, Claim, alloy::sol_types::sol_data::Bytes); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "gameData()"; + const SELECTOR: [u8; 4] = [250u8, 36u8, 247u8, 67u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + gameDataReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `gameType()` and selector `0xbbdc02db`. +```solidity +function gameType() external view returns (GameType gameType_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct gameTypeCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`gameType()`](gameTypeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct gameTypeReturn { + #[allow(missing_docs)] + pub gameType_: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: gameTypeCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for gameTypeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (GameType,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: gameTypeReturn) -> Self { + (value.gameType_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for gameTypeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { gameType_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for gameTypeCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (GameType,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "gameType()"; + const SELECTOR: [u8; 4] = [187u8, 220u8, 2u8, 219u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: gameTypeReturn = r.into(); + r.gameType_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: gameTypeReturn = r.into(); + r.gameType_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `getChallengerDuration(uint256)` and selector `0xbd8da956`. +```solidity +function getChallengerDuration(uint256 _claimIndex) external view returns (Duration duration_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getChallengerDurationCall { + #[allow(missing_docs)] + pub _claimIndex: alloy::sol_types::private::primitives::aliases::U256, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`getChallengerDuration(uint256)`](getChallengerDurationCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getChallengerDurationReturn { + #[allow(missing_docs)] + pub duration_: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: getChallengerDurationCall) -> Self { + (value._claimIndex,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for getChallengerDurationCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _claimIndex: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Duration,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: getChallengerDurationReturn) -> Self { + (value.duration_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for getChallengerDurationReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { duration_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for getChallengerDurationCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (Duration,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "getChallengerDuration(uint256)"; + const SELECTOR: [u8; 4] = [189u8, 141u8, 169u8, 86u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._claimIndex), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: getChallengerDurationReturn = r.into(); + r.duration_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: getChallengerDurationReturn = r.into(); + r.duration_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `getNumToResolve(uint256)` and selector `0x5a5fa2d9`. +```solidity +function getNumToResolve(uint256 _claimIndex) external view returns (uint256 numRemainingChildren_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getNumToResolveCall { + #[allow(missing_docs)] + pub _claimIndex: alloy::sol_types::private::primitives::aliases::U256, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`getNumToResolve(uint256)`](getNumToResolveCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getNumToResolveReturn { + #[allow(missing_docs)] + pub numRemainingChildren_: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: getNumToResolveCall) -> Self { + (value._claimIndex,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for getNumToResolveCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _claimIndex: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: getNumToResolveReturn) -> Self { + (value.numRemainingChildren_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for getNumToResolveReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + numRemainingChildren_: tuple.0, + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for getNumToResolveCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "getNumToResolve(uint256)"; + const SELECTOR: [u8; 4] = [90u8, 95u8, 162u8, 217u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._claimIndex), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: getNumToResolveReturn = r.into(); + r.numRemainingChildren_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: getNumToResolveReturn = r.into(); + r.numRemainingChildren_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `getRequiredBond(uint128)` and selector `0xc395e1ca`. +```solidity +function getRequiredBond(Position _position) external view returns (uint256 requiredBond_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getRequiredBondCall { + #[allow(missing_docs)] + pub _position: ::RustType, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`getRequiredBond(uint128)`](getRequiredBondCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getRequiredBondReturn { + #[allow(missing_docs)] + pub requiredBond_: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Position,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: getRequiredBondCall) -> Self { + (value._position,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for getRequiredBondCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _position: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: getRequiredBondReturn) -> Self { + (value.requiredBond_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for getRequiredBondReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { requiredBond_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for getRequiredBondCall { + type Parameters<'a> = (Position,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "getRequiredBond(uint128)"; + const SELECTOR: [u8; 4] = [195u8, 149u8, 225u8, 202u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + (::tokenize(&self._position),) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: getRequiredBondReturn = r.into(); + r.requiredBond_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: getRequiredBondReturn = r.into(); + r.requiredBond_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `hasUnlockedCredit(address)` and selector `0x222abf45`. +```solidity +function hasUnlockedCredit(address) external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct hasUnlockedCreditCall(pub alloy::sol_types::private::Address); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`hasUnlockedCredit(address)`](hasUnlockedCreditCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct hasUnlockedCreditReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: hasUnlockedCreditCall) -> Self { + (value.0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for hasUnlockedCreditCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self(tuple.0) + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: hasUnlockedCreditReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for hasUnlockedCreditReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for hasUnlockedCreditCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "hasUnlockedCredit(address)"; + const SELECTOR: [u8; 4] = [34u8, 42u8, 191u8, 69u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.0, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: hasUnlockedCreditReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: hasUnlockedCreditReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `initialize()` and selector `0x8129fc1c`. +```solidity +function initialize() external payable; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct initializeCall; + ///Container type for the return parameters of the [`initialize()`](initializeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct initializeReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: initializeCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for initializeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: initializeReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for initializeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl initializeReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for initializeCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = initializeReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "initialize()"; + const SELECTOR: [u8; 4] = [129u8, 41u8, 252u8, 28u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + initializeReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `l1Head()` and selector `0x6361506d`. +```solidity +function l1Head() external pure returns (Hash l1Head_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct l1HeadCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`l1Head()`](l1HeadCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct l1HeadReturn { + #[allow(missing_docs)] + pub l1Head_: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: l1HeadCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for l1HeadCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Hash,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: l1HeadReturn) -> Self { + (value.l1Head_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for l1HeadReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { l1Head_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for l1HeadCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (Hash,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "l1Head()"; + const SELECTOR: [u8; 4] = [99u8, 97u8, 80u8, 109u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: l1HeadReturn = r.into(); + r.l1Head_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: l1HeadReturn = r.into(); + r.l1Head_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `l2BlockNumber()` and selector `0x8b85902b`. +```solidity +function l2BlockNumber() external pure returns (uint256 l2BlockNumber_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct l2BlockNumberCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`l2BlockNumber()`](l2BlockNumberCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct l2BlockNumberReturn { + #[allow(missing_docs)] + pub l2BlockNumber_: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: l2BlockNumberCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for l2BlockNumberCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: l2BlockNumberReturn) -> Self { + (value.l2BlockNumber_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for l2BlockNumberReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { l2BlockNumber_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for l2BlockNumberCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "l2BlockNumber()"; + const SELECTOR: [u8; 4] = [139u8, 133u8, 144u8, 43u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: l2BlockNumberReturn = r.into(); + r.l2BlockNumber_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: l2BlockNumberReturn = r.into(); + r.l2BlockNumber_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `l2BlockNumberChallenged()` and selector `0x3e3ac912`. +```solidity +function l2BlockNumberChallenged() external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct l2BlockNumberChallengedCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`l2BlockNumberChallenged()`](l2BlockNumberChallengedCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct l2BlockNumberChallengedReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: l2BlockNumberChallengedCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for l2BlockNumberChallengedCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: l2BlockNumberChallengedReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for l2BlockNumberChallengedReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for l2BlockNumberChallengedCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "l2BlockNumberChallenged()"; + const SELECTOR: [u8; 4] = [62u8, 58u8, 201u8, 18u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: l2BlockNumberChallengedReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: l2BlockNumberChallengedReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `l2BlockNumberChallenger()` and selector `0x30dbe570`. +```solidity +function l2BlockNumberChallenger() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct l2BlockNumberChallengerCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`l2BlockNumberChallenger()`](l2BlockNumberChallengerCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct l2BlockNumberChallengerReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: l2BlockNumberChallengerCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for l2BlockNumberChallengerCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: l2BlockNumberChallengerReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for l2BlockNumberChallengerReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for l2BlockNumberChallengerCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "l2BlockNumberChallenger()"; + const SELECTOR: [u8; 4] = [48u8, 219u8, 229u8, 112u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: l2BlockNumberChallengerReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: l2BlockNumberChallengerReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `l2ChainId()` and selector `0xd6ae3cd5`. +```solidity +function l2ChainId() external view returns (uint256 l2ChainId_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct l2ChainIdCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`l2ChainId()`](l2ChainIdCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct l2ChainIdReturn { + #[allow(missing_docs)] + pub l2ChainId_: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: l2ChainIdCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for l2ChainIdCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: l2ChainIdReturn) -> Self { + (value.l2ChainId_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for l2ChainIdReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { l2ChainId_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for l2ChainIdCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "l2ChainId()"; + const SELECTOR: [u8; 4] = [214u8, 174u8, 60u8, 213u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: l2ChainIdReturn = r.into(); + r.l2ChainId_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: l2ChainIdReturn = r.into(); + r.l2ChainId_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `l2SequenceNumber()` and selector `0x99735e32`. +```solidity +function l2SequenceNumber() external pure returns (uint256 l2SequenceNumber_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct l2SequenceNumberCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`l2SequenceNumber()`](l2SequenceNumberCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct l2SequenceNumberReturn { + #[allow(missing_docs)] + pub l2SequenceNumber_: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: l2SequenceNumberCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for l2SequenceNumberCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: l2SequenceNumberReturn) -> Self { + (value.l2SequenceNumber_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for l2SequenceNumberReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { l2SequenceNumber_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for l2SequenceNumberCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "l2SequenceNumber()"; + const SELECTOR: [u8; 4] = [153u8, 115u8, 94u8, 50u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: l2SequenceNumberReturn = r.into(); + r.l2SequenceNumber_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: l2SequenceNumberReturn = r.into(); + r.l2SequenceNumber_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `maxClockDuration()` and selector `0xdabd396d`. +```solidity +function maxClockDuration() external view returns (Duration maxClockDuration_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct maxClockDurationCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`maxClockDuration()`](maxClockDurationCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct maxClockDurationReturn { + #[allow(missing_docs)] + pub maxClockDuration_: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: maxClockDurationCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for maxClockDurationCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Duration,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: maxClockDurationReturn) -> Self { + (value.maxClockDuration_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for maxClockDurationReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { maxClockDuration_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for maxClockDurationCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (Duration,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "maxClockDuration()"; + const SELECTOR: [u8; 4] = [218u8, 189u8, 57u8, 109u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: maxClockDurationReturn = r.into(); + r.maxClockDuration_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: maxClockDurationReturn = r.into(); + r.maxClockDuration_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `maxGameDepth()` and selector `0xfa315aa9`. +```solidity +function maxGameDepth() external view returns (uint256 maxGameDepth_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct maxGameDepthCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`maxGameDepth()`](maxGameDepthCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct maxGameDepthReturn { + #[allow(missing_docs)] + pub maxGameDepth_: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: maxGameDepthCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for maxGameDepthCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: maxGameDepthReturn) -> Self { + (value.maxGameDepth_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for maxGameDepthReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { maxGameDepth_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for maxGameDepthCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "maxGameDepth()"; + const SELECTOR: [u8; 4] = [250u8, 49u8, 90u8, 169u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: maxGameDepthReturn = r.into(); + r.maxGameDepth_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: maxGameDepthReturn = r.into(); + r.maxGameDepth_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `move(bytes32,uint256,bytes32,bool)` and selector `0x6f034409`. +```solidity +function r#move(Claim _disputed, uint256 _challengeIndex, Claim _claim, bool _isAttack) external payable; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct moveCall { + #[allow(missing_docs)] + pub _disputed: ::RustType, + #[allow(missing_docs)] + pub _challengeIndex: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _claim: ::RustType, + #[allow(missing_docs)] + pub _isAttack: bool, + } + ///Container type for the return parameters of the [`move(bytes32,uint256,bytes32,bool)`](moveCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct moveReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + Claim, + alloy::sol_types::sol_data::Uint<256>, + Claim, + alloy::sol_types::sol_data::Bool, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + alloy::sol_types::private::primitives::aliases::U256, + ::RustType, + bool, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: moveCall) -> Self { + ( + value._disputed, + value._challengeIndex, + value._claim, + value._isAttack, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for moveCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _disputed: tuple.0, + _challengeIndex: tuple.1, + _claim: tuple.2, + _isAttack: tuple.3, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: moveReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for moveReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl moveReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for moveCall { + type Parameters<'a> = ( + Claim, + alloy::sol_types::sol_data::Uint<256>, + Claim, + alloy::sol_types::sol_data::Bool, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = moveReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "move(bytes32,uint256,bytes32,bool)"; + const SELECTOR: [u8; 4] = [111u8, 3u8, 68u8, 9u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize(&self._disputed), + as alloy_sol_types::SolType>::tokenize(&self._challengeIndex), + ::tokenize(&self._claim), + ::tokenize( + &self._isAttack, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + moveReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `normalModeCredit(address)` and selector `0x529d6a8c`. +```solidity +function normalModeCredit(address) external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct normalModeCreditCall(pub alloy::sol_types::private::Address); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`normalModeCredit(address)`](normalModeCreditCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct normalModeCreditReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: normalModeCreditCall) -> Self { + (value.0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for normalModeCreditCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self(tuple.0) + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: normalModeCreditReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for normalModeCreditReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for normalModeCreditCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "normalModeCredit(address)"; + const SELECTOR: [u8; 4] = [82u8, 157u8, 106u8, 140u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.0, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: normalModeCreditReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: normalModeCreditReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `proposer()` and selector `0xa8e4fb90`. +```solidity +function proposer() external view returns (address proposer_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct proposerCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`proposer()`](proposerCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct proposerReturn { + #[allow(missing_docs)] + pub proposer_: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: proposerCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for proposerCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: proposerReturn) -> Self { + (value.proposer_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for proposerReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { proposer_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for proposerCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "proposer()"; + const SELECTOR: [u8; 4] = [168u8, 228u8, 251u8, 144u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: proposerReturn = r.into(); + r.proposer_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: proposerReturn = r.into(); + r.proposer_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `refundModeCredit(address)` and selector `0xc0d8bb74`. +```solidity +function refundModeCredit(address) external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct refundModeCreditCall(pub alloy::sol_types::private::Address); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`refundModeCredit(address)`](refundModeCreditCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct refundModeCreditReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: refundModeCreditCall) -> Self { + (value.0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for refundModeCreditCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self(tuple.0) + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: refundModeCreditReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for refundModeCreditReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for refundModeCreditCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "refundModeCredit(address)"; + const SELECTOR: [u8; 4] = [192u8, 216u8, 187u8, 116u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.0, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: refundModeCreditReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: refundModeCreditReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `resolutionCheckpoints(uint256)` and selector `0xa445ece6`. +```solidity +function resolutionCheckpoints(uint256) external view returns (bool initialCheckpointComplete, uint32 subgameIndex, Position leftmostPosition, address counteredBy); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct resolutionCheckpointsCall( + pub alloy::sol_types::private::primitives::aliases::U256, + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`resolutionCheckpoints(uint256)`](resolutionCheckpointsCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct resolutionCheckpointsReturn { + #[allow(missing_docs)] + pub initialCheckpointComplete: bool, + #[allow(missing_docs)] + pub subgameIndex: u32, + #[allow(missing_docs)] + pub leftmostPosition: ::RustType, + #[allow(missing_docs)] + pub counteredBy: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: resolutionCheckpointsCall) -> Self { + (value.0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for resolutionCheckpointsCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self(tuple.0) + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Bool, + alloy::sol_types::sol_data::Uint<32>, + Position, + alloy::sol_types::sol_data::Address, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + bool, + u32, + ::RustType, + alloy::sol_types::private::Address, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: resolutionCheckpointsReturn) -> Self { + ( + value.initialCheckpointComplete, + value.subgameIndex, + value.leftmostPosition, + value.counteredBy, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for resolutionCheckpointsReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + initialCheckpointComplete: tuple.0, + subgameIndex: tuple.1, + leftmostPosition: tuple.2, + counteredBy: tuple.3, + } + } + } + } + impl resolutionCheckpointsReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken< + '_, + > { + ( + ::tokenize( + &self.initialCheckpointComplete, + ), + as alloy_sol_types::SolType>::tokenize(&self.subgameIndex), + ::tokenize( + &self.leftmostPosition, + ), + ::tokenize( + &self.counteredBy, + ), + ) + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for resolutionCheckpointsCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = resolutionCheckpointsReturn; + type ReturnTuple<'a> = ( + alloy::sol_types::sol_data::Bool, + alloy::sol_types::sol_data::Uint<32>, + Position, + alloy::sol_types::sol_data::Address, + ); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "resolutionCheckpoints(uint256)"; + const SELECTOR: [u8; 4] = [164u8, 69u8, 236u8, 230u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.0), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + resolutionCheckpointsReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `resolve()` and selector `0x2810e1d6`. +```solidity +function resolve() external returns (GameStatus status_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct resolveCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`resolve()`](resolveCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct resolveReturn { + #[allow(missing_docs)] + pub status_: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: resolveCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for resolveCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (GameStatus,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: resolveReturn) -> Self { + (value.status_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for resolveReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { status_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for resolveCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (GameStatus,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "resolve()"; + const SELECTOR: [u8; 4] = [40u8, 16u8, 225u8, 214u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: resolveReturn = r.into(); + r.status_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: resolveReturn = r.into(); + r.status_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `resolveClaim(uint256,uint256)` and selector `0x03c2924d`. +```solidity +function resolveClaim(uint256 _claimIndex, uint256 _numToResolve) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct resolveClaimCall { + #[allow(missing_docs)] + pub _claimIndex: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _numToResolve: alloy::sol_types::private::primitives::aliases::U256, + } + ///Container type for the return parameters of the [`resolveClaim(uint256,uint256)`](resolveClaimCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct resolveClaimReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: resolveClaimCall) -> Self { + (value._claimIndex, value._numToResolve) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for resolveClaimCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _claimIndex: tuple.0, + _numToResolve: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: resolveClaimReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for resolveClaimReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl resolveClaimReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for resolveClaimCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = resolveClaimReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "resolveClaim(uint256,uint256)"; + const SELECTOR: [u8; 4] = [3u8, 194u8, 146u8, 77u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._claimIndex), + as alloy_sol_types::SolType>::tokenize(&self._numToResolve), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + resolveClaimReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `resolvedAt()` and selector `0x19effeb4`. +```solidity +function resolvedAt() external view returns (Timestamp); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct resolvedAtCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`resolvedAt()`](resolvedAtCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct resolvedAtReturn { + #[allow(missing_docs)] + pub _0: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: resolvedAtCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for resolvedAtCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Timestamp,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: resolvedAtReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for resolvedAtReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for resolvedAtCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (Timestamp,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "resolvedAt()"; + const SELECTOR: [u8; 4] = [25u8, 239u8, 254u8, 180u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: resolvedAtReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: resolvedAtReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `resolvedSubgames(uint256)` and selector `0xfe2bbeb2`. +```solidity +function resolvedSubgames(uint256) external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct resolvedSubgamesCall( + pub alloy::sol_types::private::primitives::aliases::U256, + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`resolvedSubgames(uint256)`](resolvedSubgamesCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct resolvedSubgamesReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: resolvedSubgamesCall) -> Self { + (value.0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for resolvedSubgamesCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self(tuple.0) + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: resolvedSubgamesReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for resolvedSubgamesReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for resolvedSubgamesCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "resolvedSubgames(uint256)"; + const SELECTOR: [u8; 4] = [254u8, 43u8, 190u8, 178u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.0), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: resolvedSubgamesReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: resolvedSubgamesReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `rootClaim()` and selector `0xbcef3b55`. +```solidity +function rootClaim() external pure returns (Claim rootClaim_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct rootClaimCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`rootClaim()`](rootClaimCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct rootClaimReturn { + #[allow(missing_docs)] + pub rootClaim_: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: rootClaimCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for rootClaimCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Claim,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: rootClaimReturn) -> Self { + (value.rootClaim_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for rootClaimReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { rootClaim_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for rootClaimCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (Claim,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "rootClaim()"; + const SELECTOR: [u8; 4] = [188u8, 239u8, 59u8, 85u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: rootClaimReturn = r.into(); + r.rootClaim_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: rootClaimReturn = r.into(); + r.rootClaim_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `splitDepth()` and selector `0xec5e6308`. +```solidity +function splitDepth() external view returns (uint256 splitDepth_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct splitDepthCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`splitDepth()`](splitDepthCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct splitDepthReturn { + #[allow(missing_docs)] + pub splitDepth_: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: splitDepthCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for splitDepthCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: splitDepthReturn) -> Self { + (value.splitDepth_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for splitDepthReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { splitDepth_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for splitDepthCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "splitDepth()"; + const SELECTOR: [u8; 4] = [236u8, 94u8, 99u8, 8u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: splitDepthReturn = r.into(); + r.splitDepth_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: splitDepthReturn = r.into(); + r.splitDepth_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `startingBlockNumber()` and selector `0x70872aa5`. +```solidity +function startingBlockNumber() external view returns (uint256 startingBlockNumber_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct startingBlockNumberCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`startingBlockNumber()`](startingBlockNumberCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct startingBlockNumberReturn { + #[allow(missing_docs)] + pub startingBlockNumber_: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: startingBlockNumberCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for startingBlockNumberCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: startingBlockNumberReturn) -> Self { + (value.startingBlockNumber_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for startingBlockNumberReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + startingBlockNumber_: tuple.0, + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for startingBlockNumberCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "startingBlockNumber()"; + const SELECTOR: [u8; 4] = [112u8, 135u8, 42u8, 165u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: startingBlockNumberReturn = r.into(); + r.startingBlockNumber_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: startingBlockNumberReturn = r.into(); + r.startingBlockNumber_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `startingOutputRoot()` and selector `0x57da950e`. +```solidity +function startingOutputRoot() external view returns (Hash root, uint256 l2SequenceNumber); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct startingOutputRootCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`startingOutputRoot()`](startingOutputRootCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct startingOutputRootReturn { + #[allow(missing_docs)] + pub root: ::RustType, + #[allow(missing_docs)] + pub l2SequenceNumber: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: startingOutputRootCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for startingOutputRootCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Hash, alloy::sol_types::sol_data::Uint<256>); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: startingOutputRootReturn) -> Self { + (value.root, value.l2SequenceNumber) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for startingOutputRootReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + root: tuple.0, + l2SequenceNumber: tuple.1, + } + } + } + } + impl startingOutputRootReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + ( + ::tokenize(&self.root), + as alloy_sol_types::SolType>::tokenize(&self.l2SequenceNumber), + ) + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for startingOutputRootCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = startingOutputRootReturn; + type ReturnTuple<'a> = (Hash, alloy::sol_types::sol_data::Uint<256>); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "startingOutputRoot()"; + const SELECTOR: [u8; 4] = [87u8, 218u8, 149u8, 14u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + startingOutputRootReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `startingRootHash()` and selector `0x25fc2ace`. +```solidity +function startingRootHash() external view returns (Hash startingRootHash_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct startingRootHashCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`startingRootHash()`](startingRootHashCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct startingRootHashReturn { + #[allow(missing_docs)] + pub startingRootHash_: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: startingRootHashCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for startingRootHashCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Hash,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: startingRootHashReturn) -> Self { + (value.startingRootHash_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for startingRootHashReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { startingRootHash_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for startingRootHashCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (Hash,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "startingRootHash()"; + const SELECTOR: [u8; 4] = [37u8, 252u8, 42u8, 206u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: startingRootHashReturn = r.into(); + r.startingRootHash_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: startingRootHashReturn = r.into(); + r.startingRootHash_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `status()` and selector `0x200d2ed2`. +```solidity +function status() external view returns (GameStatus); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct statusCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`status()`](statusCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct statusReturn { + #[allow(missing_docs)] + pub _0: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: statusCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for statusCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (GameStatus,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: statusReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for statusReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for statusCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (GameStatus,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "status()"; + const SELECTOR: [u8; 4] = [32u8, 13u8, 46u8, 210u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: statusReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: statusReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `step(uint256,bool,bytes,bytes)` and selector `0xd8cc1a3c`. +```solidity +function step(uint256 _claimIndex, bool _isAttack, bytes memory _stateData, bytes memory _proof) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct stepCall { + #[allow(missing_docs)] + pub _claimIndex: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _isAttack: bool, + #[allow(missing_docs)] + pub _stateData: alloy::sol_types::private::Bytes, + #[allow(missing_docs)] + pub _proof: alloy::sol_types::private::Bytes, + } + ///Container type for the return parameters of the [`step(uint256,bool,bytes,bytes)`](stepCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct stepReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Bool, + alloy::sol_types::sol_data::Bytes, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + bool, + alloy::sol_types::private::Bytes, + alloy::sol_types::private::Bytes, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: stepCall) -> Self { + (value._claimIndex, value._isAttack, value._stateData, value._proof) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for stepCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _claimIndex: tuple.0, + _isAttack: tuple.1, + _stateData: tuple.2, + _proof: tuple.3, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: stepReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for stepReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl stepReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for stepCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Bool, + alloy::sol_types::sol_data::Bytes, + alloy::sol_types::sol_data::Bytes, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = stepReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "step(uint256,bool,bytes,bytes)"; + const SELECTOR: [u8; 4] = [216u8, 204u8, 26u8, 60u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._claimIndex), + ::tokenize( + &self._isAttack, + ), + ::tokenize( + &self._stateData, + ), + ::tokenize( + &self._proof, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + stepReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `subgames(uint256,uint256)` and selector `0x2ad69aeb`. +```solidity +function subgames(uint256, uint256) external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct subgamesCall { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _1: alloy::sol_types::private::primitives::aliases::U256, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`subgames(uint256,uint256)`](subgamesCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct subgamesReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: subgamesCall) -> Self { + (value._0, value._1) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for subgamesCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0, _1: tuple.1 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: subgamesReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for subgamesReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for subgamesCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "subgames(uint256,uint256)"; + const SELECTOR: [u8; 4] = [42u8, 214u8, 154u8, 235u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._0), + as alloy_sol_types::SolType>::tokenize(&self._1), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: subgamesReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: subgamesReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `version()` and selector `0x54fd4d50`. +```solidity +function version() external pure returns (string memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`version()`](versionCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for versionCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::String; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "version()"; + const SELECTOR: [u8; 4] = [84u8, 253u8, 77u8, 80u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `vm()` and selector `0x3a768463`. +```solidity +function vm() external view returns (address vm_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct vmCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`vm()`](vmCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct vmReturn { + #[allow(missing_docs)] + pub vm_: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: vmCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for vmCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: vmReturn) -> Self { + (value.vm_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for vmReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { vm_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for vmCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "vm()"; + const SELECTOR: [u8; 4] = [58u8, 118u8, 132u8, 99u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: vmReturn = r.into(); + r.vm_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: vmReturn = r.into(); + r.vm_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `wasRespectedGameTypeWhenCreated()` and selector `0x250e69bd`. +```solidity +function wasRespectedGameTypeWhenCreated() external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct wasRespectedGameTypeWhenCreatedCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`wasRespectedGameTypeWhenCreated()`](wasRespectedGameTypeWhenCreatedCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct wasRespectedGameTypeWhenCreatedReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: wasRespectedGameTypeWhenCreatedCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for wasRespectedGameTypeWhenCreatedCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: wasRespectedGameTypeWhenCreatedReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for wasRespectedGameTypeWhenCreatedReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for wasRespectedGameTypeWhenCreatedCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "wasRespectedGameTypeWhenCreated()"; + const SELECTOR: [u8; 4] = [37u8, 14u8, 105u8, 189u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: wasRespectedGameTypeWhenCreatedReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: wasRespectedGameTypeWhenCreatedReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `weth()` and selector `0x3fc8cef3`. +```solidity +function weth() external view returns (address weth_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct wethCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`weth()`](wethCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct wethReturn { + #[allow(missing_docs)] + pub weth_: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: wethCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for wethCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: wethReturn) -> Self { + (value.weth_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for wethReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { weth_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for wethCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "weth()"; + const SELECTOR: [u8; 4] = [63u8, 200u8, 206u8, 243u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: wethReturn = r.into(); + r.weth_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: wethReturn = r.into(); + r.weth_ + }) + } + } + }; + ///Container for all the [`PermissionedDisputeGame`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum PermissionedDisputeGameCalls { + #[allow(missing_docs)] + absolutePrestate(absolutePrestateCall), + #[allow(missing_docs)] + addLocalData(addLocalDataCall), + #[allow(missing_docs)] + anchorStateRegistry(anchorStateRegistryCall), + #[allow(missing_docs)] + attack(attackCall), + #[allow(missing_docs)] + bondDistributionMode(bondDistributionModeCall), + #[allow(missing_docs)] + challengeRootL2Block(challengeRootL2BlockCall), + #[allow(missing_docs)] + challenger(challengerCall), + #[allow(missing_docs)] + claimCredit(claimCreditCall), + #[allow(missing_docs)] + claimData(claimDataCall), + #[allow(missing_docs)] + claimDataLen(claimDataLenCall), + #[allow(missing_docs)] + claims(claimsCall), + #[allow(missing_docs)] + clockExtension(clockExtensionCall), + #[allow(missing_docs)] + closeGame(closeGameCall), + #[allow(missing_docs)] + createdAt(createdAtCall), + #[allow(missing_docs)] + credit(creditCall), + #[allow(missing_docs)] + defend(defendCall), + #[allow(missing_docs)] + extraData(extraDataCall), + #[allow(missing_docs)] + gameCreator(gameCreatorCall), + #[allow(missing_docs)] + gameData(gameDataCall), + #[allow(missing_docs)] + gameType(gameTypeCall), + #[allow(missing_docs)] + getChallengerDuration(getChallengerDurationCall), + #[allow(missing_docs)] + getNumToResolve(getNumToResolveCall), + #[allow(missing_docs)] + getRequiredBond(getRequiredBondCall), + #[allow(missing_docs)] + hasUnlockedCredit(hasUnlockedCreditCall), + #[allow(missing_docs)] + initialize(initializeCall), + #[allow(missing_docs)] + l1Head(l1HeadCall), + #[allow(missing_docs)] + l2BlockNumber(l2BlockNumberCall), + #[allow(missing_docs)] + l2BlockNumberChallenged(l2BlockNumberChallengedCall), + #[allow(missing_docs)] + l2BlockNumberChallenger(l2BlockNumberChallengerCall), + #[allow(missing_docs)] + l2ChainId(l2ChainIdCall), + #[allow(missing_docs)] + l2SequenceNumber(l2SequenceNumberCall), + #[allow(missing_docs)] + maxClockDuration(maxClockDurationCall), + #[allow(missing_docs)] + maxGameDepth(maxGameDepthCall), + #[allow(missing_docs)] + r#move(moveCall), + #[allow(missing_docs)] + normalModeCredit(normalModeCreditCall), + #[allow(missing_docs)] + proposer(proposerCall), + #[allow(missing_docs)] + refundModeCredit(refundModeCreditCall), + #[allow(missing_docs)] + resolutionCheckpoints(resolutionCheckpointsCall), + #[allow(missing_docs)] + resolve(resolveCall), + #[allow(missing_docs)] + resolveClaim(resolveClaimCall), + #[allow(missing_docs)] + resolvedAt(resolvedAtCall), + #[allow(missing_docs)] + resolvedSubgames(resolvedSubgamesCall), + #[allow(missing_docs)] + rootClaim(rootClaimCall), + #[allow(missing_docs)] + splitDepth(splitDepthCall), + #[allow(missing_docs)] + startingBlockNumber(startingBlockNumberCall), + #[allow(missing_docs)] + startingOutputRoot(startingOutputRootCall), + #[allow(missing_docs)] + startingRootHash(startingRootHashCall), + #[allow(missing_docs)] + status(statusCall), + #[allow(missing_docs)] + step(stepCall), + #[allow(missing_docs)] + subgames(subgamesCall), + #[allow(missing_docs)] + version(versionCall), + #[allow(missing_docs)] + vm(vmCall), + #[allow(missing_docs)] + wasRespectedGameTypeWhenCreated(wasRespectedGameTypeWhenCreatedCall), + #[allow(missing_docs)] + weth(wethCall), + } + impl PermissionedDisputeGameCalls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [1u8, 147u8, 81u8, 48u8], + [3u8, 194u8, 146u8, 77u8], + [25u8, 239u8, 254u8, 180u8], + [32u8, 13u8, 46u8, 210u8], + [34u8, 42u8, 191u8, 69u8], + [37u8, 14u8, 105u8, 189u8], + [37u8, 252u8, 42u8, 206u8], + [40u8, 16u8, 225u8, 214u8], + [42u8, 214u8, 154u8, 235u8], + [48u8, 219u8, 229u8, 112u8], + [55u8, 141u8, 212u8, 140u8], + [55u8, 177u8, 178u8, 41u8], + [58u8, 118u8, 132u8, 99u8], + [62u8, 58u8, 201u8, 18u8], + [63u8, 200u8, 206u8, 243u8], + [71u8, 39u8, 119u8, 198u8], + [82u8, 157u8, 106u8, 140u8], + [83u8, 77u8, 176u8, 226u8], + [84u8, 253u8, 77u8, 80u8], + [87u8, 218u8, 149u8, 14u8], + [90u8, 95u8, 162u8, 217u8], + [92u8, 12u8, 186u8, 51u8], + [96u8, 157u8, 51u8, 52u8], + [96u8, 226u8, 116u8, 100u8], + [99u8, 97u8, 80u8, 109u8], + [107u8, 103u8, 22u8, 192u8], + [111u8, 3u8, 68u8, 9u8], + [112u8, 135u8, 42u8, 165u8], + [120u8, 107u8, 132u8, 75u8], + [123u8, 15u8, 10u8, 220u8], + [129u8, 41u8, 252u8, 28u8], + [137u8, 128u8, 224u8, 204u8], + [139u8, 133u8, 144u8, 43u8], + [141u8, 69u8, 10u8, 149u8], + [153u8, 115u8, 94u8, 50u8], + [164u8, 69u8, 236u8, 230u8], + [168u8, 228u8, 251u8, 144u8], + [187u8, 220u8, 2u8, 219u8], + [188u8, 239u8, 59u8, 85u8], + [189u8, 141u8, 169u8, 86u8], + [192u8, 216u8, 187u8, 116u8], + [195u8, 149u8, 225u8, 202u8], + [198u8, 240u8, 48u8, 140u8], + [207u8, 9u8, 224u8, 208u8], + [213u8, 212u8, 77u8, 128u8], + [214u8, 174u8, 60u8, 213u8], + [216u8, 204u8, 26u8, 60u8], + [218u8, 189u8, 57u8, 109u8], + [236u8, 94u8, 99u8, 8u8], + [239u8, 240u8, 245u8, 146u8], + [248u8, 244u8, 63u8, 246u8], + [250u8, 36u8, 247u8, 67u8], + [250u8, 49u8, 90u8, 169u8], + [254u8, 43u8, 190u8, 178u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(challengeRootL2Block), + ::core::stringify!(resolveClaim), + ::core::stringify!(resolvedAt), + ::core::stringify!(status), + ::core::stringify!(hasUnlockedCredit), + ::core::stringify!(wasRespectedGameTypeWhenCreated), + ::core::stringify!(startingRootHash), + ::core::stringify!(resolve), + ::core::stringify!(subgames), + ::core::stringify!(l2BlockNumberChallenger), + ::core::stringify!(bondDistributionMode), + ::core::stringify!(gameCreator), + ::core::stringify!(vm), + ::core::stringify!(l2BlockNumberChallenged), + ::core::stringify!(weth), + ::core::stringify!(attack), + ::core::stringify!(normalModeCredit), + ::core::stringify!(challenger), + ::core::stringify!(version), + ::core::stringify!(startingOutputRoot), + ::core::stringify!(getNumToResolve), + ::core::stringify!(anchorStateRegistry), + ::core::stringify!(extraData), + ::core::stringify!(claimCredit), + ::core::stringify!(l1Head), + ::core::stringify!(clockExtension), + ::core::stringify!(r#move), + ::core::stringify!(startingBlockNumber), + ::core::stringify!(closeGame), + ::core::stringify!(defend), + ::core::stringify!(initialize), + ::core::stringify!(claimDataLen), + ::core::stringify!(l2BlockNumber), + ::core::stringify!(absolutePrestate), + ::core::stringify!(l2SequenceNumber), + ::core::stringify!(resolutionCheckpoints), + ::core::stringify!(proposer), + ::core::stringify!(gameType), + ::core::stringify!(rootClaim), + ::core::stringify!(getChallengerDuration), + ::core::stringify!(refundModeCredit), + ::core::stringify!(getRequiredBond), + ::core::stringify!(claimData), + ::core::stringify!(createdAt), + ::core::stringify!(credit), + ::core::stringify!(l2ChainId), + ::core::stringify!(step), + ::core::stringify!(maxClockDuration), + ::core::stringify!(splitDepth), + ::core::stringify!(claims), + ::core::stringify!(addLocalData), + ::core::stringify!(gameData), + ::core::stringify!(maxGameDepth), + ::core::stringify!(resolvedSubgames), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for PermissionedDisputeGameCalls { + const NAME: &'static str = "PermissionedDisputeGameCalls"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 54usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::absolutePrestate(_) => { + ::SELECTOR + } + Self::addLocalData(_) => { + ::SELECTOR + } + Self::anchorStateRegistry(_) => { + ::SELECTOR + } + Self::attack(_) => ::SELECTOR, + Self::bondDistributionMode(_) => { + ::SELECTOR + } + Self::challengeRootL2Block(_) => { + ::SELECTOR + } + Self::challenger(_) => { + ::SELECTOR + } + Self::claimCredit(_) => { + ::SELECTOR + } + Self::claimData(_) => { + ::SELECTOR + } + Self::claimDataLen(_) => { + ::SELECTOR + } + Self::claims(_) => ::SELECTOR, + Self::clockExtension(_) => { + ::SELECTOR + } + Self::closeGame(_) => { + ::SELECTOR + } + Self::createdAt(_) => { + ::SELECTOR + } + Self::credit(_) => ::SELECTOR, + Self::defend(_) => ::SELECTOR, + Self::extraData(_) => { + ::SELECTOR + } + Self::gameCreator(_) => { + ::SELECTOR + } + Self::gameData(_) => ::SELECTOR, + Self::gameType(_) => ::SELECTOR, + Self::getChallengerDuration(_) => { + ::SELECTOR + } + Self::getNumToResolve(_) => { + ::SELECTOR + } + Self::getRequiredBond(_) => { + ::SELECTOR + } + Self::hasUnlockedCredit(_) => { + ::SELECTOR + } + Self::initialize(_) => { + ::SELECTOR + } + Self::l1Head(_) => ::SELECTOR, + Self::l2BlockNumber(_) => { + ::SELECTOR + } + Self::l2BlockNumberChallenged(_) => { + ::SELECTOR + } + Self::l2BlockNumberChallenger(_) => { + ::SELECTOR + } + Self::l2ChainId(_) => { + ::SELECTOR + } + Self::l2SequenceNumber(_) => { + ::SELECTOR + } + Self::maxClockDuration(_) => { + ::SELECTOR + } + Self::maxGameDepth(_) => { + ::SELECTOR + } + Self::r#move(_) => ::SELECTOR, + Self::normalModeCredit(_) => { + ::SELECTOR + } + Self::proposer(_) => ::SELECTOR, + Self::refundModeCredit(_) => { + ::SELECTOR + } + Self::resolutionCheckpoints(_) => { + ::SELECTOR + } + Self::resolve(_) => ::SELECTOR, + Self::resolveClaim(_) => { + ::SELECTOR + } + Self::resolvedAt(_) => { + ::SELECTOR + } + Self::resolvedSubgames(_) => { + ::SELECTOR + } + Self::rootClaim(_) => { + ::SELECTOR + } + Self::splitDepth(_) => { + ::SELECTOR + } + Self::startingBlockNumber(_) => { + ::SELECTOR + } + Self::startingOutputRoot(_) => { + ::SELECTOR + } + Self::startingRootHash(_) => { + ::SELECTOR + } + Self::status(_) => ::SELECTOR, + Self::step(_) => ::SELECTOR, + Self::subgames(_) => ::SELECTOR, + Self::version(_) => ::SELECTOR, + Self::vm(_) => ::SELECTOR, + Self::wasRespectedGameTypeWhenCreated(_) => { + ::SELECTOR + } + Self::weth(_) => ::SELECTOR, + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn challengeRootL2Block( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameCalls::challengeRootL2Block) + } + challengeRootL2Block + }, + { + fn resolveClaim( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameCalls::resolveClaim) + } + resolveClaim + }, + { + fn resolvedAt( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameCalls::resolvedAt) + } + resolvedAt + }, + { + fn status( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(PermissionedDisputeGameCalls::status) + } + status + }, + { + fn hasUnlockedCredit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameCalls::hasUnlockedCredit) + } + hasUnlockedCredit + }, + { + fn wasRespectedGameTypeWhenCreated( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + PermissionedDisputeGameCalls::wasRespectedGameTypeWhenCreated, + ) + } + wasRespectedGameTypeWhenCreated + }, + { + fn startingRootHash( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameCalls::startingRootHash) + } + startingRootHash + }, + { + fn resolve( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(PermissionedDisputeGameCalls::resolve) + } + resolve + }, + { + fn subgames( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(PermissionedDisputeGameCalls::subgames) + } + subgames + }, + { + fn l2BlockNumberChallenger( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameCalls::l2BlockNumberChallenger) + } + l2BlockNumberChallenger + }, + { + fn bondDistributionMode( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameCalls::bondDistributionMode) + } + bondDistributionMode + }, + { + fn gameCreator( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameCalls::gameCreator) + } + gameCreator + }, + { + fn vm( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(PermissionedDisputeGameCalls::vm) + } + vm + }, + { + fn l2BlockNumberChallenged( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameCalls::l2BlockNumberChallenged) + } + l2BlockNumberChallenged + }, + { + fn weth( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(PermissionedDisputeGameCalls::weth) + } + weth + }, + { + fn attack( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(PermissionedDisputeGameCalls::attack) + } + attack + }, + { + fn normalModeCredit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameCalls::normalModeCredit) + } + normalModeCredit + }, + { + fn challenger( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameCalls::challenger) + } + challenger + }, + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(PermissionedDisputeGameCalls::version) + } + version + }, + { + fn startingOutputRoot( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameCalls::startingOutputRoot) + } + startingOutputRoot + }, + { + fn getNumToResolve( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameCalls::getNumToResolve) + } + getNumToResolve + }, + { + fn anchorStateRegistry( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameCalls::anchorStateRegistry) + } + anchorStateRegistry + }, + { + fn extraData( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(PermissionedDisputeGameCalls::extraData) + } + extraData + }, + { + fn claimCredit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameCalls::claimCredit) + } + claimCredit + }, + { + fn l1Head( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(PermissionedDisputeGameCalls::l1Head) + } + l1Head + }, + { + fn clockExtension( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameCalls::clockExtension) + } + clockExtension + }, + { + fn r#move( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(PermissionedDisputeGameCalls::r#move) + } + r#move + }, + { + fn startingBlockNumber( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameCalls::startingBlockNumber) + } + startingBlockNumber + }, + { + fn closeGame( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(PermissionedDisputeGameCalls::closeGame) + } + closeGame + }, + { + fn defend( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(PermissionedDisputeGameCalls::defend) + } + defend + }, + { + fn initialize( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameCalls::initialize) + } + initialize + }, + { + fn claimDataLen( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameCalls::claimDataLen) + } + claimDataLen + }, + { + fn l2BlockNumber( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameCalls::l2BlockNumber) + } + l2BlockNumber + }, + { + fn absolutePrestate( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameCalls::absolutePrestate) + } + absolutePrestate + }, + { + fn l2SequenceNumber( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameCalls::l2SequenceNumber) + } + l2SequenceNumber + }, + { + fn resolutionCheckpoints( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameCalls::resolutionCheckpoints) + } + resolutionCheckpoints + }, + { + fn proposer( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(PermissionedDisputeGameCalls::proposer) + } + proposer + }, + { + fn gameType( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(PermissionedDisputeGameCalls::gameType) + } + gameType + }, + { + fn rootClaim( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(PermissionedDisputeGameCalls::rootClaim) + } + rootClaim + }, + { + fn getChallengerDuration( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameCalls::getChallengerDuration) + } + getChallengerDuration + }, + { + fn refundModeCredit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameCalls::refundModeCredit) + } + refundModeCredit + }, + { + fn getRequiredBond( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameCalls::getRequiredBond) + } + getRequiredBond + }, + { + fn claimData( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(PermissionedDisputeGameCalls::claimData) + } + claimData + }, + { + fn createdAt( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(PermissionedDisputeGameCalls::createdAt) + } + createdAt + }, + { + fn credit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(PermissionedDisputeGameCalls::credit) + } + credit + }, + { + fn l2ChainId( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(PermissionedDisputeGameCalls::l2ChainId) + } + l2ChainId + }, + { + fn step( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(PermissionedDisputeGameCalls::step) + } + step + }, + { + fn maxClockDuration( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameCalls::maxClockDuration) + } + maxClockDuration + }, + { + fn splitDepth( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameCalls::splitDepth) + } + splitDepth + }, + { + fn claims( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(PermissionedDisputeGameCalls::claims) + } + claims + }, + { + fn addLocalData( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameCalls::addLocalData) + } + addLocalData + }, + { + fn gameData( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(PermissionedDisputeGameCalls::gameData) + } + gameData + }, + { + fn maxGameDepth( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameCalls::maxGameDepth) + } + maxGameDepth + }, + { + fn resolvedSubgames( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameCalls::resolvedSubgames) + } + resolvedSubgames + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn challengeRootL2Block( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameCalls::challengeRootL2Block) + } + challengeRootL2Block + }, + { + fn resolveClaim( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameCalls::resolveClaim) + } + resolveClaim + }, + { + fn resolvedAt( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameCalls::resolvedAt) + } + resolvedAt + }, + { + fn status( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameCalls::status) + } + status + }, + { + fn hasUnlockedCredit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameCalls::hasUnlockedCredit) + } + hasUnlockedCredit + }, + { + fn wasRespectedGameTypeWhenCreated( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + PermissionedDisputeGameCalls::wasRespectedGameTypeWhenCreated, + ) + } + wasRespectedGameTypeWhenCreated + }, + { + fn startingRootHash( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameCalls::startingRootHash) + } + startingRootHash + }, + { + fn resolve( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameCalls::resolve) + } + resolve + }, + { + fn subgames( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameCalls::subgames) + } + subgames + }, + { + fn l2BlockNumberChallenger( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameCalls::l2BlockNumberChallenger) + } + l2BlockNumberChallenger + }, + { + fn bondDistributionMode( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameCalls::bondDistributionMode) + } + bondDistributionMode + }, + { + fn gameCreator( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameCalls::gameCreator) + } + gameCreator + }, + { + fn vm( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameCalls::vm) + } + vm + }, + { + fn l2BlockNumberChallenged( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameCalls::l2BlockNumberChallenged) + } + l2BlockNumberChallenged + }, + { + fn weth( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameCalls::weth) + } + weth + }, + { + fn attack( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameCalls::attack) + } + attack + }, + { + fn normalModeCredit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameCalls::normalModeCredit) + } + normalModeCredit + }, + { + fn challenger( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameCalls::challenger) + } + challenger + }, + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameCalls::version) + } + version + }, + { + fn startingOutputRoot( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameCalls::startingOutputRoot) + } + startingOutputRoot + }, + { + fn getNumToResolve( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameCalls::getNumToResolve) + } + getNumToResolve + }, + { + fn anchorStateRegistry( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameCalls::anchorStateRegistry) + } + anchorStateRegistry + }, + { + fn extraData( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameCalls::extraData) + } + extraData + }, + { + fn claimCredit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameCalls::claimCredit) + } + claimCredit + }, + { + fn l1Head( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameCalls::l1Head) + } + l1Head + }, + { + fn clockExtension( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameCalls::clockExtension) + } + clockExtension + }, + { + fn r#move( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameCalls::r#move) + } + r#move + }, + { + fn startingBlockNumber( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameCalls::startingBlockNumber) + } + startingBlockNumber + }, + { + fn closeGame( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameCalls::closeGame) + } + closeGame + }, + { + fn defend( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameCalls::defend) + } + defend + }, + { + fn initialize( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameCalls::initialize) + } + initialize + }, + { + fn claimDataLen( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameCalls::claimDataLen) + } + claimDataLen + }, + { + fn l2BlockNumber( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameCalls::l2BlockNumber) + } + l2BlockNumber + }, + { + fn absolutePrestate( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameCalls::absolutePrestate) + } + absolutePrestate + }, + { + fn l2SequenceNumber( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameCalls::l2SequenceNumber) + } + l2SequenceNumber + }, + { + fn resolutionCheckpoints( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameCalls::resolutionCheckpoints) + } + resolutionCheckpoints + }, + { + fn proposer( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameCalls::proposer) + } + proposer + }, + { + fn gameType( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameCalls::gameType) + } + gameType + }, + { + fn rootClaim( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameCalls::rootClaim) + } + rootClaim + }, + { + fn getChallengerDuration( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameCalls::getChallengerDuration) + } + getChallengerDuration + }, + { + fn refundModeCredit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameCalls::refundModeCredit) + } + refundModeCredit + }, + { + fn getRequiredBond( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameCalls::getRequiredBond) + } + getRequiredBond + }, + { + fn claimData( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameCalls::claimData) + } + claimData + }, + { + fn createdAt( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameCalls::createdAt) + } + createdAt + }, + { + fn credit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameCalls::credit) + } + credit + }, + { + fn l2ChainId( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameCalls::l2ChainId) + } + l2ChainId + }, + { + fn step( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameCalls::step) + } + step + }, + { + fn maxClockDuration( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameCalls::maxClockDuration) + } + maxClockDuration + }, + { + fn splitDepth( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameCalls::splitDepth) + } + splitDepth + }, + { + fn claims( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameCalls::claims) + } + claims + }, + { + fn addLocalData( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameCalls::addLocalData) + } + addLocalData + }, + { + fn gameData( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameCalls::gameData) + } + gameData + }, + { + fn maxGameDepth( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameCalls::maxGameDepth) + } + maxGameDepth + }, + { + fn resolvedSubgames( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameCalls::resolvedSubgames) + } + resolvedSubgames + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::absolutePrestate(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::addLocalData(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::anchorStateRegistry(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::attack(inner) => { + ::abi_encoded_size(inner) + } + Self::bondDistributionMode(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::challengeRootL2Block(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::challenger(inner) => { + ::abi_encoded_size(inner) + } + Self::claimCredit(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::claimData(inner) => { + ::abi_encoded_size(inner) + } + Self::claimDataLen(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::claims(inner) => { + ::abi_encoded_size(inner) + } + Self::clockExtension(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::closeGame(inner) => { + ::abi_encoded_size(inner) + } + Self::createdAt(inner) => { + ::abi_encoded_size(inner) + } + Self::credit(inner) => { + ::abi_encoded_size(inner) + } + Self::defend(inner) => { + ::abi_encoded_size(inner) + } + Self::extraData(inner) => { + ::abi_encoded_size(inner) + } + Self::gameCreator(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::gameData(inner) => { + ::abi_encoded_size(inner) + } + Self::gameType(inner) => { + ::abi_encoded_size(inner) + } + Self::getChallengerDuration(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::getNumToResolve(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::getRequiredBond(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::hasUnlockedCredit(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::initialize(inner) => { + ::abi_encoded_size(inner) + } + Self::l1Head(inner) => { + ::abi_encoded_size(inner) + } + Self::l2BlockNumber(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::l2BlockNumberChallenged(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::l2BlockNumberChallenger(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::l2ChainId(inner) => { + ::abi_encoded_size(inner) + } + Self::l2SequenceNumber(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::maxClockDuration(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::maxGameDepth(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::r#move(inner) => { + ::abi_encoded_size(inner) + } + Self::normalModeCredit(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::proposer(inner) => { + ::abi_encoded_size(inner) + } + Self::refundModeCredit(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::resolutionCheckpoints(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::resolve(inner) => { + ::abi_encoded_size(inner) + } + Self::resolveClaim(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::resolvedAt(inner) => { + ::abi_encoded_size(inner) + } + Self::resolvedSubgames(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::rootClaim(inner) => { + ::abi_encoded_size(inner) + } + Self::splitDepth(inner) => { + ::abi_encoded_size(inner) + } + Self::startingBlockNumber(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::startingOutputRoot(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::startingRootHash(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::status(inner) => { + ::abi_encoded_size(inner) + } + Self::step(inner) => { + ::abi_encoded_size(inner) + } + Self::subgames(inner) => { + ::abi_encoded_size(inner) + } + Self::version(inner) => { + ::abi_encoded_size(inner) + } + Self::vm(inner) => { + ::abi_encoded_size(inner) + } + Self::wasRespectedGameTypeWhenCreated(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::weth(inner) => { + ::abi_encoded_size(inner) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::absolutePrestate(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::addLocalData(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::anchorStateRegistry(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::attack(inner) => { + ::abi_encode_raw(inner, out) + } + Self::bondDistributionMode(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::challengeRootL2Block(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::challenger(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::claimCredit(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::claimData(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::claimDataLen(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::claims(inner) => { + ::abi_encode_raw(inner, out) + } + Self::clockExtension(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::closeGame(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::createdAt(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::credit(inner) => { + ::abi_encode_raw(inner, out) + } + Self::defend(inner) => { + ::abi_encode_raw(inner, out) + } + Self::extraData(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::gameCreator(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::gameData(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::gameType(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::getChallengerDuration(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::getNumToResolve(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::getRequiredBond(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::hasUnlockedCredit(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::initialize(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::l1Head(inner) => { + ::abi_encode_raw(inner, out) + } + Self::l2BlockNumber(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::l2BlockNumberChallenged(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::l2BlockNumberChallenger(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::l2ChainId(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::l2SequenceNumber(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::maxClockDuration(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::maxGameDepth(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::r#move(inner) => { + ::abi_encode_raw(inner, out) + } + Self::normalModeCredit(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::proposer(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::refundModeCredit(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::resolutionCheckpoints(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::resolve(inner) => { + ::abi_encode_raw(inner, out) + } + Self::resolveClaim(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::resolvedAt(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::resolvedSubgames(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::rootClaim(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::splitDepth(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::startingBlockNumber(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::startingOutputRoot(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::startingRootHash(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::status(inner) => { + ::abi_encode_raw(inner, out) + } + Self::step(inner) => { + ::abi_encode_raw(inner, out) + } + Self::subgames(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::version(inner) => { + ::abi_encode_raw(inner, out) + } + Self::vm(inner) => { + ::abi_encode_raw(inner, out) + } + Self::wasRespectedGameTypeWhenCreated(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::weth(inner) => { + ::abi_encode_raw(inner, out) + } + } + } + } + ///Container for all the [`PermissionedDisputeGame`](self) custom errors. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum PermissionedDisputeGameErrors { + #[allow(missing_docs)] + AlreadyInitialized(AlreadyInitialized), + #[allow(missing_docs)] + AnchorRootNotFound(AnchorRootNotFound), + #[allow(missing_docs)] + BadAuth(BadAuth), + #[allow(missing_docs)] + BadExtraData(BadExtraData), + #[allow(missing_docs)] + BlockNumberMatches(BlockNumberMatches), + #[allow(missing_docs)] + BondTransferFailed(BondTransferFailed), + #[allow(missing_docs)] + CannotDefendRootClaim(CannotDefendRootClaim), + #[allow(missing_docs)] + ClaimAboveSplit(ClaimAboveSplit), + #[allow(missing_docs)] + ClaimAlreadyExists(ClaimAlreadyExists), + #[allow(missing_docs)] + ClaimAlreadyResolved(ClaimAlreadyResolved), + #[allow(missing_docs)] + ClockNotExpired(ClockNotExpired), + #[allow(missing_docs)] + ClockTimeExceeded(ClockTimeExceeded), + #[allow(missing_docs)] + ContentLengthMismatch(ContentLengthMismatch), + #[allow(missing_docs)] + DuplicateStep(DuplicateStep), + #[allow(missing_docs)] + EmptyItem(EmptyItem), + #[allow(missing_docs)] + GameDepthExceeded(GameDepthExceeded), + #[allow(missing_docs)] + GameNotFinalized(GameNotFinalized), + #[allow(missing_docs)] + GameNotInProgress(GameNotInProgress), + #[allow(missing_docs)] + GameNotResolved(GameNotResolved), + #[allow(missing_docs)] + GamePaused(GamePaused), + #[allow(missing_docs)] + IncorrectBondAmount(IncorrectBondAmount), + #[allow(missing_docs)] + InvalidBondDistributionMode(InvalidBondDistributionMode), + #[allow(missing_docs)] + InvalidChallengePeriod(InvalidChallengePeriod), + #[allow(missing_docs)] + InvalidClockExtension(InvalidClockExtension), + #[allow(missing_docs)] + InvalidDataRemainder(InvalidDataRemainder), + #[allow(missing_docs)] + InvalidDisputedClaimIndex(InvalidDisputedClaimIndex), + #[allow(missing_docs)] + InvalidHeader(InvalidHeader), + #[allow(missing_docs)] + InvalidHeaderRLP(InvalidHeaderRLP), + #[allow(missing_docs)] + InvalidLocalIdent(InvalidLocalIdent), + #[allow(missing_docs)] + InvalidOutputRootProof(InvalidOutputRootProof), + #[allow(missing_docs)] + InvalidParent(InvalidParent), + #[allow(missing_docs)] + InvalidPrestate(InvalidPrestate), + #[allow(missing_docs)] + InvalidSplitDepth(InvalidSplitDepth), + #[allow(missing_docs)] + L2BlockNumberChallenged(L2BlockNumberChallenged), + #[allow(missing_docs)] + MaxDepthTooLarge(MaxDepthTooLarge), + #[allow(missing_docs)] + NoCreditToClaim(NoCreditToClaim), + #[allow(missing_docs)] + OutOfOrderResolution(OutOfOrderResolution), + #[allow(missing_docs)] + ReservedGameType(ReservedGameType), + #[allow(missing_docs)] + UnexpectedList(UnexpectedList), + #[allow(missing_docs)] + UnexpectedRootClaim(UnexpectedRootClaim), + #[allow(missing_docs)] + UnexpectedString(UnexpectedString), + #[allow(missing_docs)] + ValidStep(ValidStep), + } + impl PermissionedDisputeGameErrors { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [7u8, 138u8, 61u8, 244u8], + [13u8, 193u8, 73u8, 240u8], + [14u8, 162u8, 231u8, 82u8], + [23u8, 191u8, 229u8, 247u8], + [31u8, 249u8, 178u8, 228u8], + [48u8, 20u8, 3u8, 50u8], + [51u8, 129u8, 209u8, 20u8], + [55u8, 154u8, 126u8, 217u8], + [57u8, 246u8, 139u8, 56u8], + [72u8, 81u8, 189u8, 155u8], + [75u8, 156u8, 106u8, 190u8], + [86u8, 245u8, 123u8, 43u8], + [90u8, 180u8, 88u8, 251u8], + [92u8, 85u8, 55u8, 184u8], + [95u8, 83u8, 221u8, 152u8], + [102u8, 201u8, 68u8, 133u8], + [103u8, 254u8, 25u8, 80u8], + [105u8, 101u8, 80u8, 255u8], + [106u8, 107u8, 195u8, 178u8], + [119u8, 223u8, 227u8, 50u8], + [128u8, 73u8, 126u8, 59u8], + [131u8, 230u8, 204u8, 107u8], + [134u8, 32u8, 170u8, 25u8], + [141u8, 119u8, 236u8, 172u8], + [144u8, 113u8, 230u8, 175u8], + [152u8, 36u8, 189u8, 171u8], + [154u8, 7u8, 102u8, 70u8], + [156u8, 192u8, 11u8, 91u8], + [164u8, 38u8, 55u8, 188u8], + [179u8, 75u8, 92u8, 34u8], + [180u8, 225u8, 36u8, 51u8], + [184u8, 237u8, 136u8, 48u8], + [186u8, 187u8, 1u8, 221u8], + [193u8, 5u8, 38u8, 10u8], + [211u8, 134u8, 239u8, 62u8], + [216u8, 29u8, 88u8, 59u8], + [230u8, 44u8, 207u8, 57u8], + [241u8, 169u8, 69u8, 129u8], + [242u8, 68u8, 11u8, 83u8], + [244u8, 2u8, 57u8, 219u8], + [251u8, 78u8, 64u8, 221u8], + [255u8, 19u8, 126u8, 101u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(InvalidBondDistributionMode), + ::core::stringify!(AlreadyInitialized), + ::core::stringify!(L2BlockNumberChallenged), + ::core::stringify!(NoCreditToClaim), + ::core::stringify!(UnexpectedList), + ::core::stringify!(InvalidDisputedClaimIndex), + ::core::stringify!(ClockTimeExceeded), + ::core::stringify!(GamePaused), + ::core::stringify!(ReservedGameType), + ::core::stringify!(GameNotFinalized), + ::core::stringify!(UnexpectedString), + ::core::stringify!(GameDepthExceeded), + ::core::stringify!(EmptyItem), + ::core::stringify!(InvalidDataRemainder), + ::core::stringify!(InvalidParent), + ::core::stringify!(ContentLengthMismatch), + ::core::stringify!(GameNotInProgress), + ::core::stringify!(InvalidPrestate), + ::core::stringify!(AnchorRootNotFound), + ::core::stringify!(MaxDepthTooLarge), + ::core::stringify!(ClaimAlreadyExists), + ::core::stringify!(BondTransferFailed), + ::core::stringify!(IncorrectBondAmount), + ::core::stringify!(InvalidClockExtension), + ::core::stringify!(DuplicateStep), + ::core::stringify!(BadExtraData), + ::core::stringify!(OutOfOrderResolution), + ::core::stringify!(InvalidOutputRootProof), + ::core::stringify!(CannotDefendRootClaim), + ::core::stringify!(ClaimAboveSplit), + ::core::stringify!(InvalidChallengePeriod), + ::core::stringify!(BlockNumberMatches), + ::core::stringify!(InvalidHeader), + ::core::stringify!(GameNotResolved), + ::core::stringify!(BadAuth), + ::core::stringify!(InvalidHeaderRLP), + ::core::stringify!(InvalidSplitDepth), + ::core::stringify!(ClaimAlreadyResolved), + ::core::stringify!(ClockNotExpired), + ::core::stringify!(UnexpectedRootClaim), + ::core::stringify!(ValidStep), + ::core::stringify!(InvalidLocalIdent), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for PermissionedDisputeGameErrors { + const NAME: &'static str = "PermissionedDisputeGameErrors"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 42usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::AlreadyInitialized(_) => { + ::SELECTOR + } + Self::AnchorRootNotFound(_) => { + ::SELECTOR + } + Self::BadAuth(_) => ::SELECTOR, + Self::BadExtraData(_) => { + ::SELECTOR + } + Self::BlockNumberMatches(_) => { + ::SELECTOR + } + Self::BondTransferFailed(_) => { + ::SELECTOR + } + Self::CannotDefendRootClaim(_) => { + ::SELECTOR + } + Self::ClaimAboveSplit(_) => { + ::SELECTOR + } + Self::ClaimAlreadyExists(_) => { + ::SELECTOR + } + Self::ClaimAlreadyResolved(_) => { + ::SELECTOR + } + Self::ClockNotExpired(_) => { + ::SELECTOR + } + Self::ClockTimeExceeded(_) => { + ::SELECTOR + } + Self::ContentLengthMismatch(_) => { + ::SELECTOR + } + Self::DuplicateStep(_) => { + ::SELECTOR + } + Self::EmptyItem(_) => ::SELECTOR, + Self::GameDepthExceeded(_) => { + ::SELECTOR + } + Self::GameNotFinalized(_) => { + ::SELECTOR + } + Self::GameNotInProgress(_) => { + ::SELECTOR + } + Self::GameNotResolved(_) => { + ::SELECTOR + } + Self::GamePaused(_) => { + ::SELECTOR + } + Self::IncorrectBondAmount(_) => { + ::SELECTOR + } + Self::InvalidBondDistributionMode(_) => { + ::SELECTOR + } + Self::InvalidChallengePeriod(_) => { + ::SELECTOR + } + Self::InvalidClockExtension(_) => { + ::SELECTOR + } + Self::InvalidDataRemainder(_) => { + ::SELECTOR + } + Self::InvalidDisputedClaimIndex(_) => { + ::SELECTOR + } + Self::InvalidHeader(_) => { + ::SELECTOR + } + Self::InvalidHeaderRLP(_) => { + ::SELECTOR + } + Self::InvalidLocalIdent(_) => { + ::SELECTOR + } + Self::InvalidOutputRootProof(_) => { + ::SELECTOR + } + Self::InvalidParent(_) => { + ::SELECTOR + } + Self::InvalidPrestate(_) => { + ::SELECTOR + } + Self::InvalidSplitDepth(_) => { + ::SELECTOR + } + Self::L2BlockNumberChallenged(_) => { + ::SELECTOR + } + Self::MaxDepthTooLarge(_) => { + ::SELECTOR + } + Self::NoCreditToClaim(_) => { + ::SELECTOR + } + Self::OutOfOrderResolution(_) => { + ::SELECTOR + } + Self::ReservedGameType(_) => { + ::SELECTOR + } + Self::UnexpectedList(_) => { + ::SELECTOR + } + Self::UnexpectedRootClaim(_) => { + ::SELECTOR + } + Self::UnexpectedString(_) => { + ::SELECTOR + } + Self::ValidStep(_) => ::SELECTOR, + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn InvalidBondDistributionMode( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + PermissionedDisputeGameErrors::InvalidBondDistributionMode, + ) + } + InvalidBondDistributionMode + }, + { + fn AlreadyInitialized( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameErrors::AlreadyInitialized) + } + AlreadyInitialized + }, + { + fn L2BlockNumberChallenged( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameErrors::L2BlockNumberChallenged) + } + L2BlockNumberChallenged + }, + { + fn NoCreditToClaim( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameErrors::NoCreditToClaim) + } + NoCreditToClaim + }, + { + fn UnexpectedList( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameErrors::UnexpectedList) + } + UnexpectedList + }, + { + fn InvalidDisputedClaimIndex( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + PermissionedDisputeGameErrors::InvalidDisputedClaimIndex, + ) + } + InvalidDisputedClaimIndex + }, + { + fn ClockTimeExceeded( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameErrors::ClockTimeExceeded) + } + ClockTimeExceeded + }, + { + fn GamePaused( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(PermissionedDisputeGameErrors::GamePaused) + } + GamePaused + }, + { + fn ReservedGameType( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameErrors::ReservedGameType) + } + ReservedGameType + }, + { + fn GameNotFinalized( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameErrors::GameNotFinalized) + } + GameNotFinalized + }, + { + fn UnexpectedString( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameErrors::UnexpectedString) + } + UnexpectedString + }, + { + fn GameDepthExceeded( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameErrors::GameDepthExceeded) + } + GameDepthExceeded + }, + { + fn EmptyItem( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(PermissionedDisputeGameErrors::EmptyItem) + } + EmptyItem + }, + { + fn InvalidDataRemainder( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameErrors::InvalidDataRemainder) + } + InvalidDataRemainder + }, + { + fn InvalidParent( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameErrors::InvalidParent) + } + InvalidParent + }, + { + fn ContentLengthMismatch( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameErrors::ContentLengthMismatch) + } + ContentLengthMismatch + }, + { + fn GameNotInProgress( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameErrors::GameNotInProgress) + } + GameNotInProgress + }, + { + fn InvalidPrestate( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameErrors::InvalidPrestate) + } + InvalidPrestate + }, + { + fn AnchorRootNotFound( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameErrors::AnchorRootNotFound) + } + AnchorRootNotFound + }, + { + fn MaxDepthTooLarge( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameErrors::MaxDepthTooLarge) + } + MaxDepthTooLarge + }, + { + fn ClaimAlreadyExists( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameErrors::ClaimAlreadyExists) + } + ClaimAlreadyExists + }, + { + fn BondTransferFailed( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameErrors::BondTransferFailed) + } + BondTransferFailed + }, + { + fn IncorrectBondAmount( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameErrors::IncorrectBondAmount) + } + IncorrectBondAmount + }, + { + fn InvalidClockExtension( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameErrors::InvalidClockExtension) + } + InvalidClockExtension + }, + { + fn DuplicateStep( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameErrors::DuplicateStep) + } + DuplicateStep + }, + { + fn BadExtraData( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(PermissionedDisputeGameErrors::BadExtraData) + } + BadExtraData + }, + { + fn OutOfOrderResolution( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameErrors::OutOfOrderResolution) + } + OutOfOrderResolution + }, + { + fn InvalidOutputRootProof( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameErrors::InvalidOutputRootProof) + } + InvalidOutputRootProof + }, + { + fn CannotDefendRootClaim( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameErrors::CannotDefendRootClaim) + } + CannotDefendRootClaim + }, + { + fn ClaimAboveSplit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameErrors::ClaimAboveSplit) + } + ClaimAboveSplit + }, + { + fn InvalidChallengePeriod( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameErrors::InvalidChallengePeriod) + } + InvalidChallengePeriod + }, + { + fn BlockNumberMatches( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameErrors::BlockNumberMatches) + } + BlockNumberMatches + }, + { + fn InvalidHeader( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameErrors::InvalidHeader) + } + InvalidHeader + }, + { + fn GameNotResolved( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameErrors::GameNotResolved) + } + GameNotResolved + }, + { + fn BadAuth( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(PermissionedDisputeGameErrors::BadAuth) + } + BadAuth + }, + { + fn InvalidHeaderRLP( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameErrors::InvalidHeaderRLP) + } + InvalidHeaderRLP + }, + { + fn InvalidSplitDepth( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameErrors::InvalidSplitDepth) + } + InvalidSplitDepth + }, + { + fn ClaimAlreadyResolved( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameErrors::ClaimAlreadyResolved) + } + ClaimAlreadyResolved + }, + { + fn ClockNotExpired( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameErrors::ClockNotExpired) + } + ClockNotExpired + }, + { + fn UnexpectedRootClaim( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameErrors::UnexpectedRootClaim) + } + UnexpectedRootClaim + }, + { + fn ValidStep( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(PermissionedDisputeGameErrors::ValidStep) + } + ValidStep + }, + { + fn InvalidLocalIdent( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameErrors::InvalidLocalIdent) + } + InvalidLocalIdent + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn InvalidBondDistributionMode( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + PermissionedDisputeGameErrors::InvalidBondDistributionMode, + ) + } + InvalidBondDistributionMode + }, + { + fn AlreadyInitialized( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameErrors::AlreadyInitialized) + } + AlreadyInitialized + }, + { + fn L2BlockNumberChallenged( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameErrors::L2BlockNumberChallenged) + } + L2BlockNumberChallenged + }, + { + fn NoCreditToClaim( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameErrors::NoCreditToClaim) + } + NoCreditToClaim + }, + { + fn UnexpectedList( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameErrors::UnexpectedList) + } + UnexpectedList + }, + { + fn InvalidDisputedClaimIndex( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + PermissionedDisputeGameErrors::InvalidDisputedClaimIndex, + ) + } + InvalidDisputedClaimIndex + }, + { + fn ClockTimeExceeded( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameErrors::ClockTimeExceeded) + } + ClockTimeExceeded + }, + { + fn GamePaused( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameErrors::GamePaused) + } + GamePaused + }, + { + fn ReservedGameType( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameErrors::ReservedGameType) + } + ReservedGameType + }, + { + fn GameNotFinalized( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameErrors::GameNotFinalized) + } + GameNotFinalized + }, + { + fn UnexpectedString( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameErrors::UnexpectedString) + } + UnexpectedString + }, + { + fn GameDepthExceeded( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameErrors::GameDepthExceeded) + } + GameDepthExceeded + }, + { + fn EmptyItem( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameErrors::EmptyItem) + } + EmptyItem + }, + { + fn InvalidDataRemainder( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameErrors::InvalidDataRemainder) + } + InvalidDataRemainder + }, + { + fn InvalidParent( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameErrors::InvalidParent) + } + InvalidParent + }, + { + fn ContentLengthMismatch( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameErrors::ContentLengthMismatch) + } + ContentLengthMismatch + }, + { + fn GameNotInProgress( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameErrors::GameNotInProgress) + } + GameNotInProgress + }, + { + fn InvalidPrestate( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameErrors::InvalidPrestate) + } + InvalidPrestate + }, + { + fn AnchorRootNotFound( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameErrors::AnchorRootNotFound) + } + AnchorRootNotFound + }, + { + fn MaxDepthTooLarge( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameErrors::MaxDepthTooLarge) + } + MaxDepthTooLarge + }, + { + fn ClaimAlreadyExists( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameErrors::ClaimAlreadyExists) + } + ClaimAlreadyExists + }, + { + fn BondTransferFailed( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameErrors::BondTransferFailed) + } + BondTransferFailed + }, + { + fn IncorrectBondAmount( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameErrors::IncorrectBondAmount) + } + IncorrectBondAmount + }, + { + fn InvalidClockExtension( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameErrors::InvalidClockExtension) + } + InvalidClockExtension + }, + { + fn DuplicateStep( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameErrors::DuplicateStep) + } + DuplicateStep + }, + { + fn BadExtraData( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameErrors::BadExtraData) + } + BadExtraData + }, + { + fn OutOfOrderResolution( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameErrors::OutOfOrderResolution) + } + OutOfOrderResolution + }, + { + fn InvalidOutputRootProof( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameErrors::InvalidOutputRootProof) + } + InvalidOutputRootProof + }, + { + fn CannotDefendRootClaim( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameErrors::CannotDefendRootClaim) + } + CannotDefendRootClaim + }, + { + fn ClaimAboveSplit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameErrors::ClaimAboveSplit) + } + ClaimAboveSplit + }, + { + fn InvalidChallengePeriod( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameErrors::InvalidChallengePeriod) + } + InvalidChallengePeriod + }, + { + fn BlockNumberMatches( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameErrors::BlockNumberMatches) + } + BlockNumberMatches + }, + { + fn InvalidHeader( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameErrors::InvalidHeader) + } + InvalidHeader + }, + { + fn GameNotResolved( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameErrors::GameNotResolved) + } + GameNotResolved + }, + { + fn BadAuth( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameErrors::BadAuth) + } + BadAuth + }, + { + fn InvalidHeaderRLP( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameErrors::InvalidHeaderRLP) + } + InvalidHeaderRLP + }, + { + fn InvalidSplitDepth( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameErrors::InvalidSplitDepth) + } + InvalidSplitDepth + }, + { + fn ClaimAlreadyResolved( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameErrors::ClaimAlreadyResolved) + } + ClaimAlreadyResolved + }, + { + fn ClockNotExpired( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameErrors::ClockNotExpired) + } + ClockNotExpired + }, + { + fn UnexpectedRootClaim( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameErrors::UnexpectedRootClaim) + } + UnexpectedRootClaim + }, + { + fn ValidStep( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameErrors::ValidStep) + } + ValidStep + }, + { + fn InvalidLocalIdent( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameErrors::InvalidLocalIdent) + } + InvalidLocalIdent + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::AlreadyInitialized(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::AnchorRootNotFound(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::BadAuth(inner) => { + ::abi_encoded_size(inner) + } + Self::BadExtraData(inner) => { + ::abi_encoded_size(inner) + } + Self::BlockNumberMatches(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::BondTransferFailed(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::CannotDefendRootClaim(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ClaimAboveSplit(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ClaimAlreadyExists(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ClaimAlreadyResolved(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ClockNotExpired(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ClockTimeExceeded(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ContentLengthMismatch(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::DuplicateStep(inner) => { + ::abi_encoded_size(inner) + } + Self::EmptyItem(inner) => { + ::abi_encoded_size(inner) + } + Self::GameDepthExceeded(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::GameNotFinalized(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::GameNotInProgress(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::GameNotResolved(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::GamePaused(inner) => { + ::abi_encoded_size(inner) + } + Self::IncorrectBondAmount(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::InvalidBondDistributionMode(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::InvalidChallengePeriod(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::InvalidClockExtension(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::InvalidDataRemainder(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::InvalidDisputedClaimIndex(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::InvalidHeader(inner) => { + ::abi_encoded_size(inner) + } + Self::InvalidHeaderRLP(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::InvalidLocalIdent(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::InvalidOutputRootProof(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::InvalidParent(inner) => { + ::abi_encoded_size(inner) + } + Self::InvalidPrestate(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::InvalidSplitDepth(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::L2BlockNumberChallenged(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::MaxDepthTooLarge(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::NoCreditToClaim(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::OutOfOrderResolution(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ReservedGameType(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::UnexpectedList(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::UnexpectedRootClaim(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::UnexpectedString(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ValidStep(inner) => { + ::abi_encoded_size(inner) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::AlreadyInitialized(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::AnchorRootNotFound(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::BadAuth(inner) => { + ::abi_encode_raw(inner, out) + } + Self::BadExtraData(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::BlockNumberMatches(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::BondTransferFailed(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::CannotDefendRootClaim(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ClaimAboveSplit(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ClaimAlreadyExists(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ClaimAlreadyResolved(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ClockNotExpired(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ClockTimeExceeded(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ContentLengthMismatch(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::DuplicateStep(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::EmptyItem(inner) => { + ::abi_encode_raw(inner, out) + } + Self::GameDepthExceeded(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::GameNotFinalized(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::GameNotInProgress(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::GameNotResolved(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::GamePaused(inner) => { + ::abi_encode_raw(inner, out) + } + Self::IncorrectBondAmount(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidBondDistributionMode(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidChallengePeriod(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidClockExtension(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidDataRemainder(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidDisputedClaimIndex(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidHeader(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidHeaderRLP(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidLocalIdent(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidOutputRootProof(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidParent(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidPrestate(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidSplitDepth(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::L2BlockNumberChallenged(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::MaxDepthTooLarge(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::NoCreditToClaim(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::OutOfOrderResolution(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ReservedGameType(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::UnexpectedList(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::UnexpectedRootClaim(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::UnexpectedString(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ValidStep(inner) => { + ::abi_encode_raw(inner, out) + } + } + } + } + ///Container for all the [`PermissionedDisputeGame`](self) events. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum PermissionedDisputeGameEvents { + #[allow(missing_docs)] + GameClosed(GameClosed), + #[allow(missing_docs)] + Move(Move), + #[allow(missing_docs)] + Resolved(Resolved), + } + impl PermissionedDisputeGameEvents { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 32usize]] = &[ + [ + 94u8, 24u8, 111u8, 9u8, 185u8, 201u8, 52u8, 145u8, 241u8, 78u8, 39u8, + 126u8, 234u8, 127u8, 170u8, 93u8, 230u8, 162u8, 212u8, 189u8, 167u8, + 90u8, 121u8, 175u8, 122u8, 54u8, 132u8, 251u8, 251u8, 66u8, 218u8, 96u8, + ], + [ + 153u8, 8u8, 234u8, 172u8, 6u8, 69u8, 223u8, 157u8, 7u8, 4u8, 208u8, + 106u8, 220u8, 158u8, 7u8, 51u8, 124u8, 149u8, 29u8, 226u8, 240u8, 107u8, + 95u8, 40u8, 54u8, 21u8, 29u8, 72u8, 213u8, 228u8, 114u8, 47u8, + ], + [ + 155u8, 50u8, 69u8, 116u8, 14u8, 195u8, 177u8, 85u8, 9u8, 138u8, 85u8, + 190u8, 132u8, 149u8, 122u8, 77u8, 161u8, 62u8, 175u8, 127u8, 20u8, 168u8, + 188u8, 111u8, 83u8, 18u8, 108u8, 11u8, 147u8, 80u8, 242u8, 190u8, + ], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(Resolved), + ::core::stringify!(GameClosed), + ::core::stringify!(Move), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolEventInterface for PermissionedDisputeGameEvents { + const NAME: &'static str = "PermissionedDisputeGameEvents"; + const COUNT: usize = 3usize; + fn decode_raw_log( + topics: &[alloy_sol_types::Word], + data: &[u8], + ) -> alloy_sol_types::Result { + match topics.first().copied() { + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::GameClosed) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log(topics, data) + .map(Self::Move) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log(topics, data) + .map(Self::Resolved) + } + _ => { + alloy_sol_types::private::Err(alloy_sol_types::Error::InvalidLog { + name: ::NAME, + log: alloy_sol_types::private::Box::new( + alloy_sol_types::private::LogData::new_unchecked( + topics.to_vec(), + data.to_vec().into(), + ), + ), + }) + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for PermissionedDisputeGameEvents { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + match self { + Self::GameClosed(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::Move(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::Resolved(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + } + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + match self { + Self::GameClosed(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::Move(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::Resolved(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`PermissionedDisputeGame`](self) contract instance. + +See the [wrapper's documentation](`PermissionedDisputeGameInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> PermissionedDisputeGameInstance { + PermissionedDisputeGameInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + _params: ::RustType, + _proposer: alloy::sol_types::private::Address, + _challenger: alloy::sol_types::private::Address, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + PermissionedDisputeGameInstance::< + P, + N, + >::deploy(__provider, _params, _proposer, _challenger) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + _params: ::RustType, + _proposer: alloy::sol_types::private::Address, + _challenger: alloy::sol_types::private::Address, + ) -> alloy_contract::RawCallBuilder { + PermissionedDisputeGameInstance::< + P, + N, + >::deploy_builder(__provider, _params, _proposer, _challenger) + } + /**A [`PermissionedDisputeGame`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`PermissionedDisputeGame`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct PermissionedDisputeGameInstance< + P, + N = alloy_contract::private::Ethereum, + > { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for PermissionedDisputeGameInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("PermissionedDisputeGameInstance") + .field(&self.address) + .finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > PermissionedDisputeGameInstance { + /**Creates a new wrapper around an on-chain [`PermissionedDisputeGame`](self) contract instance. + +See the [wrapper's documentation](`PermissionedDisputeGameInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + _params: ::RustType, + _proposer: alloy::sol_types::private::Address, + _challenger: alloy::sol_types::private::Address, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder( + __provider, + _params, + _proposer, + _challenger, + ); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder( + __provider: P, + _params: ::RustType, + _proposer: alloy::sol_types::private::Address, + _challenger: alloy::sol_types::private::Address, + ) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + [ + &BYTECODE[..], + &alloy_sol_types::SolConstructor::abi_encode( + &constructorCall { + _params, + _proposer, + _challenger, + }, + )[..], + ] + .concat() + .into(), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl PermissionedDisputeGameInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> PermissionedDisputeGameInstance { + PermissionedDisputeGameInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > PermissionedDisputeGameInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`absolutePrestate`] function. + pub fn absolutePrestate( + &self, + ) -> alloy_contract::SolCallBuilder<&P, absolutePrestateCall, N> { + self.call_builder(&absolutePrestateCall) + } + ///Creates a new call builder for the [`addLocalData`] function. + pub fn addLocalData( + &self, + _ident: alloy::sol_types::private::primitives::aliases::U256, + _execLeafIdx: alloy::sol_types::private::primitives::aliases::U256, + _partOffset: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, addLocalDataCall, N> { + self.call_builder( + &addLocalDataCall { + _ident, + _execLeafIdx, + _partOffset, + }, + ) + } + ///Creates a new call builder for the [`anchorStateRegistry`] function. + pub fn anchorStateRegistry( + &self, + ) -> alloy_contract::SolCallBuilder<&P, anchorStateRegistryCall, N> { + self.call_builder(&anchorStateRegistryCall) + } + ///Creates a new call builder for the [`attack`] function. + pub fn attack( + &self, + _disputed: ::RustType, + _parentIndex: alloy::sol_types::private::primitives::aliases::U256, + _claim: ::RustType, + ) -> alloy_contract::SolCallBuilder<&P, attackCall, N> { + self.call_builder( + &attackCall { + _disputed, + _parentIndex, + _claim, + }, + ) + } + ///Creates a new call builder for the [`bondDistributionMode`] function. + pub fn bondDistributionMode( + &self, + ) -> alloy_contract::SolCallBuilder<&P, bondDistributionModeCall, N> { + self.call_builder(&bondDistributionModeCall) + } + ///Creates a new call builder for the [`challengeRootL2Block`] function. + pub fn challengeRootL2Block( + &self, + _outputRootProof: ::RustType, + _headerRLP: alloy::sol_types::private::Bytes, + ) -> alloy_contract::SolCallBuilder<&P, challengeRootL2BlockCall, N> { + self.call_builder( + &challengeRootL2BlockCall { + _outputRootProof, + _headerRLP, + }, + ) + } + ///Creates a new call builder for the [`challenger`] function. + pub fn challenger( + &self, + ) -> alloy_contract::SolCallBuilder<&P, challengerCall, N> { + self.call_builder(&challengerCall) + } + ///Creates a new call builder for the [`claimCredit`] function. + pub fn claimCredit( + &self, + _recipient: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, claimCreditCall, N> { + self.call_builder(&claimCreditCall { _recipient }) + } + ///Creates a new call builder for the [`claimData`] function. + pub fn claimData( + &self, + _0: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, claimDataCall, N> { + self.call_builder(&claimDataCall(_0)) + } + ///Creates a new call builder for the [`claimDataLen`] function. + pub fn claimDataLen( + &self, + ) -> alloy_contract::SolCallBuilder<&P, claimDataLenCall, N> { + self.call_builder(&claimDataLenCall) + } + ///Creates a new call builder for the [`claims`] function. + pub fn claims( + &self, + _0: ::RustType, + ) -> alloy_contract::SolCallBuilder<&P, claimsCall, N> { + self.call_builder(&claimsCall(_0)) + } + ///Creates a new call builder for the [`clockExtension`] function. + pub fn clockExtension( + &self, + ) -> alloy_contract::SolCallBuilder<&P, clockExtensionCall, N> { + self.call_builder(&clockExtensionCall) + } + ///Creates a new call builder for the [`closeGame`] function. + pub fn closeGame(&self) -> alloy_contract::SolCallBuilder<&P, closeGameCall, N> { + self.call_builder(&closeGameCall) + } + ///Creates a new call builder for the [`createdAt`] function. + pub fn createdAt(&self) -> alloy_contract::SolCallBuilder<&P, createdAtCall, N> { + self.call_builder(&createdAtCall) + } + ///Creates a new call builder for the [`credit`] function. + pub fn credit( + &self, + _recipient: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, creditCall, N> { + self.call_builder(&creditCall { _recipient }) + } + ///Creates a new call builder for the [`defend`] function. + pub fn defend( + &self, + _disputed: ::RustType, + _parentIndex: alloy::sol_types::private::primitives::aliases::U256, + _claim: ::RustType, + ) -> alloy_contract::SolCallBuilder<&P, defendCall, N> { + self.call_builder( + &defendCall { + _disputed, + _parentIndex, + _claim, + }, + ) + } + ///Creates a new call builder for the [`extraData`] function. + pub fn extraData(&self) -> alloy_contract::SolCallBuilder<&P, extraDataCall, N> { + self.call_builder(&extraDataCall) + } + ///Creates a new call builder for the [`gameCreator`] function. + pub fn gameCreator( + &self, + ) -> alloy_contract::SolCallBuilder<&P, gameCreatorCall, N> { + self.call_builder(&gameCreatorCall) + } + ///Creates a new call builder for the [`gameData`] function. + pub fn gameData(&self) -> alloy_contract::SolCallBuilder<&P, gameDataCall, N> { + self.call_builder(&gameDataCall) + } + ///Creates a new call builder for the [`gameType`] function. + pub fn gameType(&self) -> alloy_contract::SolCallBuilder<&P, gameTypeCall, N> { + self.call_builder(&gameTypeCall) + } + ///Creates a new call builder for the [`getChallengerDuration`] function. + pub fn getChallengerDuration( + &self, + _claimIndex: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, getChallengerDurationCall, N> { + self.call_builder( + &getChallengerDurationCall { + _claimIndex, + }, + ) + } + ///Creates a new call builder for the [`getNumToResolve`] function. + pub fn getNumToResolve( + &self, + _claimIndex: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, getNumToResolveCall, N> { + self.call_builder(&getNumToResolveCall { _claimIndex }) + } + ///Creates a new call builder for the [`getRequiredBond`] function. + pub fn getRequiredBond( + &self, + _position: ::RustType, + ) -> alloy_contract::SolCallBuilder<&P, getRequiredBondCall, N> { + self.call_builder(&getRequiredBondCall { _position }) + } + ///Creates a new call builder for the [`hasUnlockedCredit`] function. + pub fn hasUnlockedCredit( + &self, + _0: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, hasUnlockedCreditCall, N> { + self.call_builder(&hasUnlockedCreditCall(_0)) + } + ///Creates a new call builder for the [`initialize`] function. + pub fn initialize( + &self, + ) -> alloy_contract::SolCallBuilder<&P, initializeCall, N> { + self.call_builder(&initializeCall) + } + ///Creates a new call builder for the [`l1Head`] function. + pub fn l1Head(&self) -> alloy_contract::SolCallBuilder<&P, l1HeadCall, N> { + self.call_builder(&l1HeadCall) + } + ///Creates a new call builder for the [`l2BlockNumber`] function. + pub fn l2BlockNumber( + &self, + ) -> alloy_contract::SolCallBuilder<&P, l2BlockNumberCall, N> { + self.call_builder(&l2BlockNumberCall) + } + ///Creates a new call builder for the [`l2BlockNumberChallenged`] function. + pub fn l2BlockNumberChallenged( + &self, + ) -> alloy_contract::SolCallBuilder<&P, l2BlockNumberChallengedCall, N> { + self.call_builder(&l2BlockNumberChallengedCall) + } + ///Creates a new call builder for the [`l2BlockNumberChallenger`] function. + pub fn l2BlockNumberChallenger( + &self, + ) -> alloy_contract::SolCallBuilder<&P, l2BlockNumberChallengerCall, N> { + self.call_builder(&l2BlockNumberChallengerCall) + } + ///Creates a new call builder for the [`l2ChainId`] function. + pub fn l2ChainId(&self) -> alloy_contract::SolCallBuilder<&P, l2ChainIdCall, N> { + self.call_builder(&l2ChainIdCall) + } + ///Creates a new call builder for the [`l2SequenceNumber`] function. + pub fn l2SequenceNumber( + &self, + ) -> alloy_contract::SolCallBuilder<&P, l2SequenceNumberCall, N> { + self.call_builder(&l2SequenceNumberCall) + } + ///Creates a new call builder for the [`maxClockDuration`] function. + pub fn maxClockDuration( + &self, + ) -> alloy_contract::SolCallBuilder<&P, maxClockDurationCall, N> { + self.call_builder(&maxClockDurationCall) + } + ///Creates a new call builder for the [`maxGameDepth`] function. + pub fn maxGameDepth( + &self, + ) -> alloy_contract::SolCallBuilder<&P, maxGameDepthCall, N> { + self.call_builder(&maxGameDepthCall) + } + ///Creates a new call builder for the [`r#move`] function. + pub fn r#move( + &self, + _disputed: ::RustType, + _challengeIndex: alloy::sol_types::private::primitives::aliases::U256, + _claim: ::RustType, + _isAttack: bool, + ) -> alloy_contract::SolCallBuilder<&P, moveCall, N> { + self.call_builder( + &moveCall { + _disputed, + _challengeIndex, + _claim, + _isAttack, + }, + ) + } + ///Creates a new call builder for the [`normalModeCredit`] function. + pub fn normalModeCredit( + &self, + _0: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, normalModeCreditCall, N> { + self.call_builder(&normalModeCreditCall(_0)) + } + ///Creates a new call builder for the [`proposer`] function. + pub fn proposer(&self) -> alloy_contract::SolCallBuilder<&P, proposerCall, N> { + self.call_builder(&proposerCall) + } + ///Creates a new call builder for the [`refundModeCredit`] function. + pub fn refundModeCredit( + &self, + _0: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, refundModeCreditCall, N> { + self.call_builder(&refundModeCreditCall(_0)) + } + ///Creates a new call builder for the [`resolutionCheckpoints`] function. + pub fn resolutionCheckpoints( + &self, + _0: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, resolutionCheckpointsCall, N> { + self.call_builder(&resolutionCheckpointsCall(_0)) + } + ///Creates a new call builder for the [`resolve`] function. + pub fn resolve(&self) -> alloy_contract::SolCallBuilder<&P, resolveCall, N> { + self.call_builder(&resolveCall) + } + ///Creates a new call builder for the [`resolveClaim`] function. + pub fn resolveClaim( + &self, + _claimIndex: alloy::sol_types::private::primitives::aliases::U256, + _numToResolve: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, resolveClaimCall, N> { + self.call_builder( + &resolveClaimCall { + _claimIndex, + _numToResolve, + }, + ) + } + ///Creates a new call builder for the [`resolvedAt`] function. + pub fn resolvedAt( + &self, + ) -> alloy_contract::SolCallBuilder<&P, resolvedAtCall, N> { + self.call_builder(&resolvedAtCall) + } + ///Creates a new call builder for the [`resolvedSubgames`] function. + pub fn resolvedSubgames( + &self, + _0: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, resolvedSubgamesCall, N> { + self.call_builder(&resolvedSubgamesCall(_0)) + } + ///Creates a new call builder for the [`rootClaim`] function. + pub fn rootClaim(&self) -> alloy_contract::SolCallBuilder<&P, rootClaimCall, N> { + self.call_builder(&rootClaimCall) + } + ///Creates a new call builder for the [`splitDepth`] function. + pub fn splitDepth( + &self, + ) -> alloy_contract::SolCallBuilder<&P, splitDepthCall, N> { + self.call_builder(&splitDepthCall) + } + ///Creates a new call builder for the [`startingBlockNumber`] function. + pub fn startingBlockNumber( + &self, + ) -> alloy_contract::SolCallBuilder<&P, startingBlockNumberCall, N> { + self.call_builder(&startingBlockNumberCall) + } + ///Creates a new call builder for the [`startingOutputRoot`] function. + pub fn startingOutputRoot( + &self, + ) -> alloy_contract::SolCallBuilder<&P, startingOutputRootCall, N> { + self.call_builder(&startingOutputRootCall) + } + ///Creates a new call builder for the [`startingRootHash`] function. + pub fn startingRootHash( + &self, + ) -> alloy_contract::SolCallBuilder<&P, startingRootHashCall, N> { + self.call_builder(&startingRootHashCall) + } + ///Creates a new call builder for the [`status`] function. + pub fn status(&self) -> alloy_contract::SolCallBuilder<&P, statusCall, N> { + self.call_builder(&statusCall) + } + ///Creates a new call builder for the [`step`] function. + pub fn step( + &self, + _claimIndex: alloy::sol_types::private::primitives::aliases::U256, + _isAttack: bool, + _stateData: alloy::sol_types::private::Bytes, + _proof: alloy::sol_types::private::Bytes, + ) -> alloy_contract::SolCallBuilder<&P, stepCall, N> { + self.call_builder( + &stepCall { + _claimIndex, + _isAttack, + _stateData, + _proof, + }, + ) + } + ///Creates a new call builder for the [`subgames`] function. + pub fn subgames( + &self, + _0: alloy::sol_types::private::primitives::aliases::U256, + _1: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, subgamesCall, N> { + self.call_builder(&subgamesCall { _0, _1 }) + } + ///Creates a new call builder for the [`version`] function. + pub fn version(&self) -> alloy_contract::SolCallBuilder<&P, versionCall, N> { + self.call_builder(&versionCall) + } + ///Creates a new call builder for the [`vm`] function. + pub fn vm(&self) -> alloy_contract::SolCallBuilder<&P, vmCall, N> { + self.call_builder(&vmCall) + } + ///Creates a new call builder for the [`wasRespectedGameTypeWhenCreated`] function. + pub fn wasRespectedGameTypeWhenCreated( + &self, + ) -> alloy_contract::SolCallBuilder<&P, wasRespectedGameTypeWhenCreatedCall, N> { + self.call_builder(&wasRespectedGameTypeWhenCreatedCall) + } + ///Creates a new call builder for the [`weth`] function. + pub fn weth(&self) -> alloy_contract::SolCallBuilder<&P, wethCall, N> { + self.call_builder(&wethCall) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > PermissionedDisputeGameInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + ///Creates a new event filter for the [`GameClosed`] event. + pub fn GameClosed_filter(&self) -> alloy_contract::Event<&P, GameClosed, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`Move`] event. + pub fn Move_filter(&self) -> alloy_contract::Event<&P, Move, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`Resolved`] event. + pub fn Resolved_filter(&self) -> alloy_contract::Event<&P, Resolved, N> { + self.event_filter::() + } + } +} diff --git a/bindings/rust/src/permissioned_dispute_game_v2.rs b/bindings/rust/src/permissioned_dispute_game_v2.rs new file mode 100644 index 000000000..81b783913 --- /dev/null +++ b/bindings/rust/src/permissioned_dispute_game_v2.rs @@ -0,0 +1,19845 @@ +///Module containing a contract's types and functions. +/** + +```solidity +library FaultDisputeGameV2 { + struct GameConstructorParams { uint256 maxGameDepth; uint256 splitDepth; Duration clockExtension; Duration maxClockDuration; } +} +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod FaultDisputeGameV2 { + use super::*; + use alloy::sol_types as alloy_sol_types; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + /**```solidity +struct GameConstructorParams { uint256 maxGameDepth; uint256 splitDepth; Duration clockExtension; Duration maxClockDuration; } +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct GameConstructorParams { + #[allow(missing_docs)] + pub maxGameDepth: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub splitDepth: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub clockExtension: ::RustType, + #[allow(missing_docs)] + pub maxClockDuration: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + Duration, + Duration, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::primitives::aliases::U256, + ::RustType, + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: GameConstructorParams) -> Self { + ( + value.maxGameDepth, + value.splitDepth, + value.clockExtension, + value.maxClockDuration, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for GameConstructorParams { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + maxGameDepth: tuple.0, + splitDepth: tuple.1, + clockExtension: tuple.2, + maxClockDuration: tuple.3, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolValue for GameConstructorParams { + type SolType = Self; + } + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for GameConstructorParams { + #[inline] + fn stv_to_tokens(&self) -> ::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.maxGameDepth), + as alloy_sol_types::SolType>::tokenize(&self.splitDepth), + ::tokenize( + &self.clockExtension, + ), + ::tokenize( + &self.maxClockDuration, + ), + ) + } + #[inline] + fn stv_abi_encoded_size(&self) -> usize { + if let Some(size) = ::ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encoded_size(&tuple) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + ::eip712_hash_struct(self) + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + if let Some(size) = ::PACKED_ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for GameConstructorParams { + type RustType = Self; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = ::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + as alloy_sol_types::SolType>::valid_token(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + let tuple = as alloy_sol_types::SolType>::detokenize(token); + >>::from(tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolStruct for GameConstructorParams { + const NAME: &'static str = "GameConstructorParams"; + #[inline] + fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> { + alloy_sol_types::private::Cow::Borrowed( + "GameConstructorParams(uint256 maxGameDepth,uint256 splitDepth,Duration clockExtension,Duration maxClockDuration)", + ) + } + #[inline] + fn eip712_components() -> alloy_sol_types::private::Vec< + alloy_sol_types::private::Cow<'static, str>, + > { + let mut components = alloy_sol_types::private::Vec::with_capacity(2); + components + .push(::eip712_root_type()); + components + .extend( + ::eip712_components(), + ); + components + .push(::eip712_root_type()); + components + .extend( + ::eip712_components(), + ); + components + } + #[inline] + fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec { + [ + as alloy_sol_types::SolType>::eip712_data_word(&self.maxGameDepth) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.splitDepth) + .0, + ::eip712_data_word( + &self.clockExtension, + ) + .0, + ::eip712_data_word( + &self.maxClockDuration, + ) + .0, + ] + .concat() + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for GameConstructorParams { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + 0usize + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.maxGameDepth, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.splitDepth, + ) + + ::topic_preimage_length( + &rust.clockExtension, + ) + + ::topic_preimage_length( + &rust.maxClockDuration, + ) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + out.reserve( + ::topic_preimage_length(rust), + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.maxGameDepth, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.splitDepth, + out, + ); + ::encode_topic_preimage( + &rust.clockExtension, + out, + ); + ::encode_topic_preimage( + &rust.maxClockDuration, + out, + ); + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + let mut out = alloy_sol_types::private::Vec::new(); + ::encode_topic_preimage( + rust, + &mut out, + ); + alloy_sol_types::abi::token::WordToken( + alloy_sol_types::private::keccak256(out), + ) + } + } + }; + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`FaultDisputeGameV2`](self) contract instance. + +See the [wrapper's documentation](`FaultDisputeGameV2Instance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> FaultDisputeGameV2Instance { + FaultDisputeGameV2Instance::::new(address, __provider) + } + /**A [`FaultDisputeGameV2`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`FaultDisputeGameV2`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct FaultDisputeGameV2Instance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for FaultDisputeGameV2Instance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("FaultDisputeGameV2Instance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > FaultDisputeGameV2Instance { + /**Creates a new wrapper around an on-chain [`FaultDisputeGameV2`](self) contract instance. + +See the [wrapper's documentation](`FaultDisputeGameV2Instance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl FaultDisputeGameV2Instance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> FaultDisputeGameV2Instance { + FaultDisputeGameV2Instance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > FaultDisputeGameV2Instance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > FaultDisputeGameV2Instance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + } +} +///Module containing a contract's types and functions. +/** + +```solidity +library Types { + struct OutputRootProof { bytes32 version; bytes32 stateRoot; bytes32 messagePasserStorageRoot; bytes32 latestBlockhash; } +} +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod Types { + use super::*; + use alloy::sol_types as alloy_sol_types; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**```solidity +struct OutputRootProof { bytes32 version; bytes32 stateRoot; bytes32 messagePasserStorageRoot; bytes32 latestBlockhash; } +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct OutputRootProof { + #[allow(missing_docs)] + pub version: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub stateRoot: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub messagePasserStorageRoot: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub latestBlockhash: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::FixedBytes<32>, + alloy::sol_types::private::FixedBytes<32>, + alloy::sol_types::private::FixedBytes<32>, + alloy::sol_types::private::FixedBytes<32>, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: OutputRootProof) -> Self { + ( + value.version, + value.stateRoot, + value.messagePasserStorageRoot, + value.latestBlockhash, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for OutputRootProof { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + version: tuple.0, + stateRoot: tuple.1, + messagePasserStorageRoot: tuple.2, + latestBlockhash: tuple.3, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolValue for OutputRootProof { + type SolType = Self; + } + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for OutputRootProof { + #[inline] + fn stv_to_tokens(&self) -> ::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.version), + as alloy_sol_types::SolType>::tokenize(&self.stateRoot), + as alloy_sol_types::SolType>::tokenize( + &self.messagePasserStorageRoot, + ), + as alloy_sol_types::SolType>::tokenize(&self.latestBlockhash), + ) + } + #[inline] + fn stv_abi_encoded_size(&self) -> usize { + if let Some(size) = ::ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encoded_size(&tuple) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + ::eip712_hash_struct(self) + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + if let Some(size) = ::PACKED_ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for OutputRootProof { + type RustType = Self; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = ::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + as alloy_sol_types::SolType>::valid_token(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + let tuple = as alloy_sol_types::SolType>::detokenize(token); + >>::from(tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolStruct for OutputRootProof { + const NAME: &'static str = "OutputRootProof"; + #[inline] + fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> { + alloy_sol_types::private::Cow::Borrowed( + "OutputRootProof(bytes32 version,bytes32 stateRoot,bytes32 messagePasserStorageRoot,bytes32 latestBlockhash)", + ) + } + #[inline] + fn eip712_components() -> alloy_sol_types::private::Vec< + alloy_sol_types::private::Cow<'static, str>, + > { + alloy_sol_types::private::Vec::new() + } + #[inline] + fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> { + ::eip712_root_type() + } + #[inline] + fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec { + [ + as alloy_sol_types::SolType>::eip712_data_word(&self.version) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.stateRoot) + .0, + as alloy_sol_types::SolType>::eip712_data_word( + &self.messagePasserStorageRoot, + ) + .0, + as alloy_sol_types::SolType>::eip712_data_word( + &self.latestBlockhash, + ) + .0, + ] + .concat() + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for OutputRootProof { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + 0usize + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.version, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.stateRoot, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.messagePasserStorageRoot, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.latestBlockhash, + ) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + out.reserve( + ::topic_preimage_length(rust), + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.version, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.stateRoot, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.messagePasserStorageRoot, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.latestBlockhash, + out, + ); + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + let mut out = alloy_sol_types::private::Vec::new(); + ::encode_topic_preimage( + rust, + &mut out, + ); + alloy_sol_types::abi::token::WordToken( + alloy_sol_types::private::keccak256(out), + ) + } + } + }; + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`Types`](self) contract instance. + +See the [wrapper's documentation](`TypesInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(address: alloy_sol_types::private::Address, __provider: P) -> TypesInstance { + TypesInstance::::new(address, __provider) + } + /**A [`Types`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`Types`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct TypesInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for TypesInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("TypesInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > TypesInstance { + /**Creates a new wrapper around an on-chain [`Types`](self) contract instance. + +See the [wrapper's documentation](`TypesInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl TypesInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> TypesInstance { + TypesInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > TypesInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > TypesInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + } +} +/** + +Generated by the following Solidity interface... +```solidity +library FaultDisputeGameV2 { + struct GameConstructorParams { + uint256 maxGameDepth; + uint256 splitDepth; + Duration clockExtension; + Duration maxClockDuration; + } +} + +library Types { + struct OutputRootProof { + bytes32 version; + bytes32 stateRoot; + bytes32 messagePasserStorageRoot; + bytes32 latestBlockhash; + } +} + +interface PermissionedDisputeGameV2 { + type BondDistributionMode is uint8; + type GameStatus is uint8; + type Claim is bytes32; + type Clock is uint128; + type Duration is uint64; + type GameType is uint32; + type Hash is bytes32; + type Position is uint128; + type Timestamp is uint64; + + error AlreadyInitialized(); + error AnchorRootNotFound(); + error BadAuth(); + error BadExtraData(); + error BlockNumberMatches(); + error BondTransferFailed(); + error CannotDefendRootClaim(); + error ClaimAboveSplit(); + error ClaimAlreadyExists(); + error ClaimAlreadyResolved(); + error ClockNotExpired(); + error ClockTimeExceeded(); + error ContentLengthMismatch(); + error DuplicateStep(); + error EmptyItem(); + error GameDepthExceeded(); + error GameNotFinalized(); + error GameNotInProgress(); + error GameNotResolved(); + error GamePaused(); + error IncorrectBondAmount(); + error InvalidBondDistributionMode(); + error InvalidChallengePeriod(); + error InvalidClockExtension(); + error InvalidDataRemainder(); + error InvalidDisputedClaimIndex(); + error InvalidHeader(); + error InvalidHeaderRLP(); + error InvalidLocalIdent(); + error InvalidOutputRootProof(); + error InvalidParent(); + error InvalidPrestate(); + error InvalidSplitDepth(); + error L2BlockNumberChallenged(); + error MaxDepthTooLarge(); + error NoCreditToClaim(); + error OutOfOrderResolution(); + error UnexpectedList(); + error UnexpectedRootClaim(Claim rootClaim); + error UnexpectedString(); + error ValidStep(); + + event GameClosed(BondDistributionMode bondDistributionMode); + event Move(uint256 indexed parentIndex, Claim indexed claim, address indexed claimant); + event Resolved(GameStatus indexed status); + + constructor(FaultDisputeGameV2.GameConstructorParams _params); + + function absolutePrestate() external pure returns (Claim absolutePrestate_); + function addLocalData(uint256 _ident, uint256 _execLeafIdx, uint256 _partOffset) external; + function anchorStateRegistry() external pure returns (address registry_); + function attack(Claim _disputed, uint256 _parentIndex, Claim _claim) external payable; + function bondDistributionMode() external view returns (BondDistributionMode); + function challengeRootL2Block(Types.OutputRootProof memory _outputRootProof, bytes memory _headerRLP) external; + function challenger() external pure returns (address challenger_); + function claimCredit(address _recipient) external; + function claimData(uint256) external view returns (uint32 parentIndex, address counteredBy, address claimant, uint128 bond, Claim claim, Position position, Clock clock); + function claimDataLen() external view returns (uint256 len_); + function claims(Hash) external view returns (bool); + function clockExtension() external view returns (Duration clockExtension_); + function closeGame() external; + function createdAt() external view returns (Timestamp); + function credit(address _recipient) external view returns (uint256 credit_); + function defend(Claim _disputed, uint256 _parentIndex, Claim _claim) external payable; + function extraData() external pure returns (bytes memory extraData_); + function gameCreator() external pure returns (address creator_); + function gameData() external pure returns (GameType gameType_, Claim rootClaim_, bytes memory extraData_); + function gameType() external pure returns (GameType gameType_); + function getChallengerDuration(uint256 _claimIndex) external view returns (Duration duration_); + function getNumToResolve(uint256 _claimIndex) external view returns (uint256 numRemainingChildren_); + function getRequiredBond(Position _position) external view returns (uint256 requiredBond_); + function hasUnlockedCredit(address) external view returns (bool); + function initialize() external payable; + function l1Head() external pure returns (Hash l1Head_); + function l2BlockNumber() external pure returns (uint256 l2BlockNumber_); + function l2BlockNumberChallenged() external view returns (bool); + function l2BlockNumberChallenger() external view returns (address); + function l2ChainId() external pure returns (uint256 l2ChainId_); + function l2SequenceNumber() external pure returns (uint256 l2SequenceNumber_); + function maxClockDuration() external view returns (Duration maxClockDuration_); + function maxGameDepth() external view returns (uint256 maxGameDepth_); + function move(Claim _disputed, uint256 _challengeIndex, Claim _claim, bool _isAttack) external payable; + function normalModeCredit(address) external view returns (uint256); + function proposer() external pure returns (address proposer_); + function refundModeCredit(address) external view returns (uint256); + function resolutionCheckpoints(uint256) external view returns (bool initialCheckpointComplete, uint32 subgameIndex, Position leftmostPosition, address counteredBy); + function resolve() external returns (GameStatus status_); + function resolveClaim(uint256 _claimIndex, uint256 _numToResolve) external; + function resolvedAt() external view returns (Timestamp); + function resolvedSubgames(uint256) external view returns (bool); + function rootClaim() external pure returns (Claim rootClaim_); + function splitDepth() external view returns (uint256 splitDepth_); + function startingBlockNumber() external view returns (uint256 startingBlockNumber_); + function startingOutputRoot() external view returns (Hash root, uint256 l2SequenceNumber); + function startingRootHash() external view returns (Hash startingRootHash_); + function status() external view returns (GameStatus); + function step(uint256 _claimIndex, bool _isAttack, bytes memory _stateData, bytes memory _proof) external; + function subgames(uint256, uint256) external view returns (uint256); + function version() external pure returns (string memory); + function vm() external pure returns (address vm_); + function wasRespectedGameTypeWhenCreated() external view returns (bool); + function weth() external pure returns (address weth_); +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "constructor", + "inputs": [ + { + "name": "_params", + "type": "tuple", + "internalType": "struct FaultDisputeGameV2.GameConstructorParams", + "components": [ + { + "name": "maxGameDepth", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "splitDepth", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "clockExtension", + "type": "uint64", + "internalType": "Duration" + }, + { + "name": "maxClockDuration", + "type": "uint64", + "internalType": "Duration" + } + ] + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "absolutePrestate", + "inputs": [], + "outputs": [ + { + "name": "absolutePrestate_", + "type": "bytes32", + "internalType": "Claim" + } + ], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "addLocalData", + "inputs": [ + { + "name": "_ident", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_execLeafIdx", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_partOffset", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "anchorStateRegistry", + "inputs": [], + "outputs": [ + { + "name": "registry_", + "type": "address", + "internalType": "contract IAnchorStateRegistry" + } + ], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "attack", + "inputs": [ + { + "name": "_disputed", + "type": "bytes32", + "internalType": "Claim" + }, + { + "name": "_parentIndex", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_claim", + "type": "bytes32", + "internalType": "Claim" + } + ], + "outputs": [], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "bondDistributionMode", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint8", + "internalType": "enum BondDistributionMode" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "challengeRootL2Block", + "inputs": [ + { + "name": "_outputRootProof", + "type": "tuple", + "internalType": "struct Types.OutputRootProof", + "components": [ + { + "name": "version", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "stateRoot", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "messagePasserStorageRoot", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "latestBlockhash", + "type": "bytes32", + "internalType": "bytes32" + } + ] + }, + { + "name": "_headerRLP", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "challenger", + "inputs": [], + "outputs": [ + { + "name": "challenger_", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "claimCredit", + "inputs": [ + { + "name": "_recipient", + "type": "address", + "internalType": "address" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "claimData", + "inputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "parentIndex", + "type": "uint32", + "internalType": "uint32" + }, + { + "name": "counteredBy", + "type": "address", + "internalType": "address" + }, + { + "name": "claimant", + "type": "address", + "internalType": "address" + }, + { + "name": "bond", + "type": "uint128", + "internalType": "uint128" + }, + { + "name": "claim", + "type": "bytes32", + "internalType": "Claim" + }, + { + "name": "position", + "type": "uint128", + "internalType": "Position" + }, + { + "name": "clock", + "type": "uint128", + "internalType": "Clock" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "claimDataLen", + "inputs": [], + "outputs": [ + { + "name": "len_", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "claims", + "inputs": [ + { + "name": "", + "type": "bytes32", + "internalType": "Hash" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "clockExtension", + "inputs": [], + "outputs": [ + { + "name": "clockExtension_", + "type": "uint64", + "internalType": "Duration" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "closeGame", + "inputs": [], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "createdAt", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint64", + "internalType": "Timestamp" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "credit", + "inputs": [ + { + "name": "_recipient", + "type": "address", + "internalType": "address" + } + ], + "outputs": [ + { + "name": "credit_", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "defend", + "inputs": [ + { + "name": "_disputed", + "type": "bytes32", + "internalType": "Claim" + }, + { + "name": "_parentIndex", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_claim", + "type": "bytes32", + "internalType": "Claim" + } + ], + "outputs": [], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "extraData", + "inputs": [], + "outputs": [ + { + "name": "extraData_", + "type": "bytes", + "internalType": "bytes" + } + ], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "gameCreator", + "inputs": [], + "outputs": [ + { + "name": "creator_", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "gameData", + "inputs": [], + "outputs": [ + { + "name": "gameType_", + "type": "uint32", + "internalType": "GameType" + }, + { + "name": "rootClaim_", + "type": "bytes32", + "internalType": "Claim" + }, + { + "name": "extraData_", + "type": "bytes", + "internalType": "bytes" + } + ], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "gameType", + "inputs": [], + "outputs": [ + { + "name": "gameType_", + "type": "uint32", + "internalType": "GameType" + } + ], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "getChallengerDuration", + "inputs": [ + { + "name": "_claimIndex", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "duration_", + "type": "uint64", + "internalType": "Duration" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "getNumToResolve", + "inputs": [ + { + "name": "_claimIndex", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "numRemainingChildren_", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "getRequiredBond", + "inputs": [ + { + "name": "_position", + "type": "uint128", + "internalType": "Position" + } + ], + "outputs": [ + { + "name": "requiredBond_", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "hasUnlockedCredit", + "inputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "initialize", + "inputs": [], + "outputs": [], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "l1Head", + "inputs": [], + "outputs": [ + { + "name": "l1Head_", + "type": "bytes32", + "internalType": "Hash" + } + ], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "l2BlockNumber", + "inputs": [], + "outputs": [ + { + "name": "l2BlockNumber_", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "l2BlockNumberChallenged", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "l2BlockNumberChallenger", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "l2ChainId", + "inputs": [], + "outputs": [ + { + "name": "l2ChainId_", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "l2SequenceNumber", + "inputs": [], + "outputs": [ + { + "name": "l2SequenceNumber_", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "maxClockDuration", + "inputs": [], + "outputs": [ + { + "name": "maxClockDuration_", + "type": "uint64", + "internalType": "Duration" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "maxGameDepth", + "inputs": [], + "outputs": [ + { + "name": "maxGameDepth_", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "move", + "inputs": [ + { + "name": "_disputed", + "type": "bytes32", + "internalType": "Claim" + }, + { + "name": "_challengeIndex", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_claim", + "type": "bytes32", + "internalType": "Claim" + }, + { + "name": "_isAttack", + "type": "bool", + "internalType": "bool" + } + ], + "outputs": [], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "normalModeCredit", + "inputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "proposer", + "inputs": [], + "outputs": [ + { + "name": "proposer_", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "refundModeCredit", + "inputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "resolutionCheckpoints", + "inputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "initialCheckpointComplete", + "type": "bool", + "internalType": "bool" + }, + { + "name": "subgameIndex", + "type": "uint32", + "internalType": "uint32" + }, + { + "name": "leftmostPosition", + "type": "uint128", + "internalType": "Position" + }, + { + "name": "counteredBy", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "resolve", + "inputs": [], + "outputs": [ + { + "name": "status_", + "type": "uint8", + "internalType": "enum GameStatus" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "resolveClaim", + "inputs": [ + { + "name": "_claimIndex", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_numToResolve", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "resolvedAt", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint64", + "internalType": "Timestamp" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "resolvedSubgames", + "inputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "rootClaim", + "inputs": [], + "outputs": [ + { + "name": "rootClaim_", + "type": "bytes32", + "internalType": "Claim" + } + ], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "splitDepth", + "inputs": [], + "outputs": [ + { + "name": "splitDepth_", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "startingBlockNumber", + "inputs": [], + "outputs": [ + { + "name": "startingBlockNumber_", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "startingOutputRoot", + "inputs": [], + "outputs": [ + { + "name": "root", + "type": "bytes32", + "internalType": "Hash" + }, + { + "name": "l2SequenceNumber", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "startingRootHash", + "inputs": [], + "outputs": [ + { + "name": "startingRootHash_", + "type": "bytes32", + "internalType": "Hash" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "status", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint8", + "internalType": "enum GameStatus" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "step", + "inputs": [ + { + "name": "_claimIndex", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_isAttack", + "type": "bool", + "internalType": "bool" + }, + { + "name": "_stateData", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "_proof", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "subgames", + "inputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "version", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "vm", + "inputs": [], + "outputs": [ + { + "name": "vm_", + "type": "address", + "internalType": "contract IBigStepper" + } + ], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "wasRespectedGameTypeWhenCreated", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "weth", + "inputs": [], + "outputs": [ + { + "name": "weth_", + "type": "address", + "internalType": "contract IDelayedWETH" + } + ], + "stateMutability": "pure" + }, + { + "type": "event", + "name": "GameClosed", + "inputs": [ + { + "name": "bondDistributionMode", + "type": "uint8", + "indexed": false, + "internalType": "enum BondDistributionMode" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "Move", + "inputs": [ + { + "name": "parentIndex", + "type": "uint256", + "indexed": true, + "internalType": "uint256" + }, + { + "name": "claim", + "type": "bytes32", + "indexed": true, + "internalType": "Claim" + }, + { + "name": "claimant", + "type": "address", + "indexed": true, + "internalType": "address" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "Resolved", + "inputs": [ + { + "name": "status", + "type": "uint8", + "indexed": true, + "internalType": "enum GameStatus" + } + ], + "anonymous": false + }, + { + "type": "error", + "name": "AlreadyInitialized", + "inputs": [] + }, + { + "type": "error", + "name": "AnchorRootNotFound", + "inputs": [] + }, + { + "type": "error", + "name": "BadAuth", + "inputs": [] + }, + { + "type": "error", + "name": "BadExtraData", + "inputs": [] + }, + { + "type": "error", + "name": "BlockNumberMatches", + "inputs": [] + }, + { + "type": "error", + "name": "BondTransferFailed", + "inputs": [] + }, + { + "type": "error", + "name": "CannotDefendRootClaim", + "inputs": [] + }, + { + "type": "error", + "name": "ClaimAboveSplit", + "inputs": [] + }, + { + "type": "error", + "name": "ClaimAlreadyExists", + "inputs": [] + }, + { + "type": "error", + "name": "ClaimAlreadyResolved", + "inputs": [] + }, + { + "type": "error", + "name": "ClockNotExpired", + "inputs": [] + }, + { + "type": "error", + "name": "ClockTimeExceeded", + "inputs": [] + }, + { + "type": "error", + "name": "ContentLengthMismatch", + "inputs": [] + }, + { + "type": "error", + "name": "DuplicateStep", + "inputs": [] + }, + { + "type": "error", + "name": "EmptyItem", + "inputs": [] + }, + { + "type": "error", + "name": "GameDepthExceeded", + "inputs": [] + }, + { + "type": "error", + "name": "GameNotFinalized", + "inputs": [] + }, + { + "type": "error", + "name": "GameNotInProgress", + "inputs": [] + }, + { + "type": "error", + "name": "GameNotResolved", + "inputs": [] + }, + { + "type": "error", + "name": "GamePaused", + "inputs": [] + }, + { + "type": "error", + "name": "IncorrectBondAmount", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidBondDistributionMode", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidChallengePeriod", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidClockExtension", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidDataRemainder", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidDisputedClaimIndex", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidHeader", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidHeaderRLP", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidLocalIdent", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidOutputRootProof", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidParent", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidPrestate", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidSplitDepth", + "inputs": [] + }, + { + "type": "error", + "name": "L2BlockNumberChallenged", + "inputs": [] + }, + { + "type": "error", + "name": "MaxDepthTooLarge", + "inputs": [] + }, + { + "type": "error", + "name": "NoCreditToClaim", + "inputs": [] + }, + { + "type": "error", + "name": "OutOfOrderResolution", + "inputs": [] + }, + { + "type": "error", + "name": "UnexpectedList", + "inputs": [] + }, + { + "type": "error", + "name": "UnexpectedRootClaim", + "inputs": [ + { + "name": "rootClaim", + "type": "bytes32", + "internalType": "Claim" + } + ] + }, + { + "type": "error", + "name": "UnexpectedString", + "inputs": [] + }, + { + "type": "error", + "name": "ValidStep", + "inputs": [] + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod PermissionedDisputeGameV2 { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x6101006040523480156200001257600080fd5b5060405162006208380380620062088339810160408190526200003591620001e7565b80620000446001607e62000281565b60ff16816000015111156200006c57604051633beff19960e11b815260040160405180910390fd5b600019816020015114806200009357508051602082015162000090906001620002a7565b10155b15620000b25760405163e62ccf3960e01b815260040160405180910390fd5b600281602001511015620000d95760405163e62ccf3960e01b815260040160405180910390fd5b6000620000fe82604001516001600160401b0316620001c760201b62000c601760201c565b62000114906001600160401b03166002620002c2565b90506001600160401b038111156200013f5760405163235dfb2b60e21b815260040160405180910390fd5b6200016282606001516001600160401b0316620001c760201b62000c601760201c565b6001600160401b0316816001600160401b03161115620001955760405163235dfb2b60e21b815260040160405180910390fd5b508051608052602081015160a05260408101516001600160401b0390811660e0526060909101511660c05250620002e4565b90565b80516001600160401b0381168114620001e257600080fd5b919050565b600060808284031215620001fa57600080fd5b604051608081016001600160401b03811182821017156200022b57634e487b7160e01b600052604160045260246000fd5b806040525082518152602083015160208201526200024c60408401620001ca565b60408201526200025f60608401620001ca565b60608201529392505050565b634e487b7160e01b600052601160045260246000fd5b600060ff821660ff8416808210156200029e576200029e6200026b565b90039392505050565b60008219821115620002bd57620002bd6200026b565b500190565b6000816000190483118215151615620002df57620002df6200026b565b500290565b60805160a05160c05160e051615e26620003e26000396000818161073001528181612f9f0152818161300a0152818161303d015281816137210152613839015260008181610a8c01528181610ef301528181611fb501528181611ff701528181612e360152818161306d015281816130cc01526138d6015260008181610abf0152818161252601528181612c7f01528181612da501528181612fdb015281816143210152818161472601528181614805015281816148b8015281816150e60152615303015260008181610b66015281816120a30152818161212901528181612d4801528181612e9a0152818161423901526143420152615e266000f3fe6080604052600436106103555760003560e01c806370872aa5116101bb578063c0d8bb74116100f7578063dabd396d11610095578063f8f43ff61161006f578063f8f43ff614610b13578063fa24f74314610b33578063fa315aa914610b57578063fe2bbeb214610b8a57600080fd5b8063dabd396d14610a7d578063ec5e630814610ab0578063eff0f59214610ae357600080fd5b8063cf09e0d0116100d1578063cf09e0d0146109fa578063d5d44d8014610a1b578063d6ae3cd514610a3b578063d8cc1a3c14610a5d57600080fd5b8063c0d8bb7414610939578063c395e1ca14610966578063c6f0308c1461098657600080fd5b80638d450a9511610164578063a8e4fb901161013e578063a8e4fb90146108a5578063bbdc02db146108ca578063bcef3b55146108f7578063bd8da9561461091957600080fd5b80638d450a95146107e357806399735e32146107c1578063a445ece61461080557600080fd5b80638129fc1c116101955780638129fc1c146107a45780638980e0cc146107ac5780638b85902b146107c157600080fd5b806370872aa514610767578063786b844b1461077c5780637b0f0adc1461079157600080fd5b80633e3ac912116102955780635a5fa2d91161023357806360e274641161020d57806360e27464146106df5780636361506d146106ff5780636b6716c0146107215780636f0344091461075457600080fd5b80635a5fa2d9146106855780635c0cba33146106a5578063609d3334146106ca57600080fd5b8063529d6a8c1161026f578063529d6a8c146105c4578063534db0e2146105f157806354fd4d501461060657806357da950e1461065557600080fd5b80633e3ac9121461055c5780633fc8cef31461058c578063472777c6146105b157600080fd5b806325fc2ace1161030257806330dbe570116102dc57806330dbe570146104c3578063378dd48c146104fb57806337b1b229146105155780633a7684631461053757600080fd5b806325fc2ace1461046f5780632810e1d61461048e5780632ad69aeb146104a357600080fd5b8063200d2ed211610333578063200d2ed2146103e7578063222abf4514610415578063250e69bd1461045557600080fd5b8063019351301461035a57806303c2924d1461037c57806319effeb41461039c575b600080fd5b34801561036657600080fd5b5061037a610375366004615696565b610bba565b005b34801561038857600080fd5b5061037a6103973660046156f1565b610e79565b3480156103a857600080fd5b506000546103c99068010000000000000000900467ffffffffffffffff1681565b60405167ffffffffffffffff90911681526020015b60405180910390f35b3480156103f357600080fd5b5060005461040890600160801b900460ff1681565b6040516103de919061574a565b34801561042157600080fd5b50610445610430366004615772565b600c6020526000908152604090205460ff1681565b60405190151581526020016103de565b34801561046157600080fd5b50600a546104459060ff1681565b34801561047b57600080fd5b506008545b6040519081526020016103de565b34801561049a57600080fd5b50610408611401565b3480156104af57600080fd5b506104806104be3660046156f1565b6115d9565b3480156104cf57600080fd5b506001546104e3906001600160a01b031681565b6040516001600160a01b0390911681526020016103de565b34801561050757600080fd5b50600d546104089060ff1681565b34801561052157600080fd5b503660011981013560f01c90033560601c6104e3565b34801561054357600080fd5b503660011981013560f01c90036098013560601c6104e3565b34801561056857600080fd5b50600054610445907201000000000000000000000000000000000000900460ff1681565b34801561059857600080fd5b503660011981013560f01c900360c0013560601c6104e3565b61037a6105bf36600461578f565b61160f565b3480156105d057600080fd5b506104806105df366004615772565b60036020526000908152604090205481565b3480156105fd57600080fd5b506104e3611621565b34801561061257600080fd5b5060408051808201909152600581527f322e322e3000000000000000000000000000000000000000000000000000000060208201525b6040516103de9190615826565b34801561066157600080fd5b50600854600954610670919082565b604080519283526020830191909152016103de565b34801561069157600080fd5b506104806106a0366004615839565b611646565b3480156106b157600080fd5b503660011981013560f01c900360ac013560601c6104e3565b3480156106d657600080fd5b50610648611680565b3480156106eb57600080fd5b5061037a6106fa366004615772565b61168e565b34801561070b57600080fd5b503660011981013560f01c900360340135610480565b34801561072d57600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006103c9565b61037a610762366004615860565b61199f565b34801561077357600080fd5b50600954610480565b34801561078857600080fd5b5061037a611a1f565b61037a61079f36600461578f565b611e0d565b61037a611e1a565b3480156107b857600080fd5b50600254610480565b3480156107cd57600080fd5b503660011981013560f01c900360580135610480565b3480156107ef57600080fd5b503660011981013560f01c900360780135610480565b34801561081157600080fd5b50610867610820366004615839565b6007602052600090815260409020805460019091015460ff821691610100810463ffffffff1691650100000000009091046001600160801b0316906001600160a01b031684565b60408051941515855263ffffffff90931660208501526001600160801b03909116918301919091526001600160a01b031660608201526080016103de565b3480156108b157600080fd5b503660011981013560f01c900360f4013560601c6104e3565b3480156108d657600080fd5b506040513660011981013560f01c90036054013560e01c81526020016103de565b34801561090357600080fd5b503660011981013560f01c900360140135610480565b34801561092557600080fd5b506103c9610934366004615839565b611e85565b34801561094557600080fd5b50610480610954366004615772565b600b6020526000908152604090205481565b34801561097257600080fd5b506104806109813660046158a1565b61201f565b34801561099257600080fd5b506109a66109a1366004615839565b6121e0565b6040805163ffffffff90981688526001600160a01b03968716602089015295909416948601949094526001600160801b039182166060860152608085015291821660a08401521660c082015260e0016103de565b348015610a0657600080fd5b506000546103c99067ffffffffffffffff1681565b348015610a2757600080fd5b50610480610a36366004615772565b612254565b348015610a4757600080fd5b503660011981013560f01c900360d40135610480565b348015610a6957600080fd5b5061037a610a783660046158ca565b6122ac565b348015610a8957600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006103c9565b348015610abc57600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610480565b348015610aef57600080fd5b50610445610afe366004615839565b60046020526000908152604090205460ff1681565b348015610b1f57600080fd5b5061037a610b2e36600461578f565b612328565b348015610b3f57600080fd5b50610b486126ef565b6040516103de93929190615956565b348015610b6357600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610480565b348015610b9657600080fd5b50610445610ba5366004615839565b60066020526000908152604090205460ff1681565b60008054600160801b900460ff166002811115610bd957610bd9615713565b14610bf75760405163067fe19560e41b815260040160405180910390fd5b6000547201000000000000000000000000000000000000900460ff1615610c4a576040517f0ea2e75200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610c633660011981013560f01c90036014013590565b90565b610c7a610c7536869003860186615991565b612719565b14610cb1576040517f9cc00b5b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b82606001358282604051610cc6929190615a05565b604051809103902014610d05576040517fd81d583b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000610d4e610d4984848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061277592505050565b6127e2565b90506000610d7582600881518110610d6857610d68615a15565b6020026020010151612998565b9050602081511115610db3576040517fd81d583b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b602081810151825190910360031b1c3660011981013560f01c9003605801358103610e0a576040517fb8ed883000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050600180547fffffffffffffffffffffffff000000000000000000000000000000000000000016331790555050600080547fffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffff1672010000000000000000000000000000000000001790555050565b60008054600160801b900460ff166002811115610e9857610e98615713565b14610eb65760405163067fe19560e41b815260040160405180910390fd5b600060028381548110610ecb57610ecb615a15565b906000526020600020906005020190506000610ee684611e85565b905067ffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000081169082161015610f4f576040517ff2440b5300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008481526006602052604090205460ff1615610f98576040517ff1a9458100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000848152600560205260409020805480158015610fb557508515155b1561101857835464010000000090046001600160a01b031660008115610fdb5781610fea565b60018601546001600160a01b03165b9050610ff68187612a4c565b505050600094855250506006602052505060409020805460ff19166001179055565b6000868152600760209081526040918290208251608081018452815460ff81161515808352610100820463ffffffff16948301949094526501000000000090046001600160801b031693810193909352600101546001600160a01b0316606083015261109c576001600160801b03604082015260018152600086900361109c578195505b600086826020015163ffffffff166110b49190615a41565b905060008382116110c557816110c7565b835b602084015190915063ffffffff165b818110156111e75760008682815481106110f2576110f2615a15565b6000918252602080832090910154808352600690915260409091205490915060ff1661114a576040517f9a07664600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006002828154811061115f5761115f615a15565b60009182526020909120600590910201805490915064010000000090046001600160a01b03161580156111a65750600481015460408701516001600160801b039182169116115b156111d25760018101546001600160a01b0316606087015260048101546001600160801b031660408701525b505080806111df90615a59565b9150506110d6565b5063ffffffff818116602085810191825260008c81526007909152604090819020865181549351928801517fffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000009094169015157fffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000ff161761010092909416918202939093177fffffffffffffffffffffff00000000000000000000000000000000ffffffffff16650100000000006001600160801b03909316929092029190911782556060850151600190920180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03909316929092179091558490036113f657606083015160008a8152600660205260409020805460ff191660011790558915801561133357506000547201000000000000000000000000000000000000900460ff165b1561138e576001546001600160a01b031661134e818a612a4c565b88546001600160a01b03909116640100000000027fffffffffffffffff0000000000000000000000000000000000000000ffffffff9091161788556113f4565b6113bb6001600160a01b038216156113a657816113b5565b60018901546001600160a01b03165b89612a4c565b87547fffffffffffffffff0000000000000000000000000000000000000000ffffffff166401000000006001600160a01b038316021788555b505b505050505050505050565b600080600054600160801b900460ff16600281111561142257611422615713565b146114405760405163067fe19560e41b815260040160405180910390fd5b6000805260066020527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f85460ff166114a4576040517f9a07664600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006001600160a01b031660026000815481106114c3576114c3615a15565b600091825260209091206005909102015464010000000090046001600160a01b0316146114f15760016114f4565b60025b6000805467ffffffffffffffff421668010000000000000000027fffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff82168117835592935083927fffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffff000000000000000000ffffffffffffffff90911617600160801b83600281111561159857611598615713565b0217905560028111156115ad576115ad615713565b6040517f5e186f09b9c93491f14e277eea7faa5de6a2d4bda75a79af7a3684fbfb42da6090600090a290565b600560205281600052604060002081815481106115f557600080fd5b90600052602060002001600091509150505481565b905090565b61161c838383600161199f565b505050565b600061160a61163260f46014615a41565b3660011981013560f01c9003013560601c90565b6000818152600760209081526040808320600590925282208054825461167790610100900463ffffffff1682615a73565b95945050505050565b606061160a60586020612a8e565b611696611a1f565b60006002600d5460ff1660028111156116b1576116b1615713565b036116d557506001600160a01b0381166000908152600b6020526040902054611744565b6001600d5460ff1660028111156116ee576116ee615713565b0361171257506001600160a01b038116600090815260036020526040902054611744565b6040517f078a3df400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0382166000908152600c602052604090205460ff16611822576001600160a01b0382166000908152600c60205260409020805460ff191660011790556117a160c0600119369081013560f01c9003013560601c90565b6040517f7eee288d0000000000000000000000000000000000000000000000000000000081526001600160a01b038481166004830152602482018490529190911690637eee288d90604401600060405180830381600087803b15801561180657600080fd5b505af115801561181a573d6000803e3d6000fd5b505050505050565b8060000361185c576040517f17bfe5f700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0382166000908152600b6020908152604080832083905560039091528120553660011981013560f01c900360c0013560601c6040517ff3fef3a30000000000000000000000000000000000000000000000000000000081526001600160a01b03848116600483015260248201849052919091169063f3fef3a390604401600060405180830381600087803b1580156118fa57600080fd5b505af115801561190e573d6000803e3d6000fd5b505050506000826001600160a01b03168260405160006040518083038185875af1925050503d806000811461195f576040519150601f19603f3d011682016040523d82523d6000602084013e611964565b606091505b505090508061161c576040517f83e6cc6b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3660011981013560f01c900360f4013560601c3314806119d757506119c2611621565b6001600160a01b0316336001600160a01b0316145b611a0d576040517fd386ef3e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611a1984848484612ac2565b50505050565b6002600d5460ff166002811115611a3857611a38615713565b1480611a5a57506001600d5460ff166002811115611a5857611a58615713565b145b15611a6157565b6000600d5460ff166002811115611a7a57611a7a615713565b14611ab1576040517f078a3df400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3660011981013560f01c900360ac013560601c6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b01573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b259190615a8a565b15611b5c576040517f379a7ed900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005468010000000000000000900467ffffffffffffffff1667ffffffffffffffff16600003611bb8576040517fc105260a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60003660011981013560f01c900360ac013560601c6040517f0314d2b30000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b039190911690630314d2b390602401602060405180830381865afa158015611c2c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c509190615a8a565b905080611c89576040517f4851bd9b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3660011981013560f01c900360ac013560601c6040517f17cf21a90000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b0391909116906317cf21a990602401600060405180830381600087803b158015611cf857600080fd5b505af1925050508015611d09575060015b5060003660011981013560f01c900360ac013560601c6040517f496b9c160000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b03919091169063496b9c1690602401602060405180830381865afa158015611d7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611da29190615a8a565b90508015611dbc57600d805460ff19166001179055611dca565b600d805460ff191660021790555b600d546040517f9908eaac0645df9d0704d06adc9e07337c951de2f06b5f2836151d48d5e4722f91611e019160ff9091169061574a565b60405180910390a15050565b61161c838383600061199f565b611e22613445565b3660011981013560f01c900360f4013560601c3214611e6d576040517fd386ef3e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b3660011981013560f01c90036054013560e01c90565b600080600054600160801b900460ff166002811115611ea657611ea6615713565b14611ec45760405163067fe19560e41b815260040160405180910390fd5b600060028381548110611ed957611ed9615a15565b600091825260208220600590910201805490925063ffffffff90811614611f3f57815460028054909163ffffffff16908110611f1757611f17615a15565b906000526020600020906005020160040160109054906101000a90046001600160801b031690505b6004820154600090611f6a90600160801b900467ffffffffffffffff165b67ffffffffffffffff1690565b611f7e9067ffffffffffffffff1642615a73565b611f94611f5d846001600160801b031660401c90565b67ffffffffffffffff16611fa89190615a41565b905067ffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001667ffffffffffffffff168167ffffffffffffffff1611611ff55780611677565b7f000000000000000000000000000000000000000000000000000000000000000095945050505050565b60008061209c836001600160801b03167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f6307c4acdd60e01b67ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff1690507f00000000000000000000000000000000000000000000000000000000000000008111156120fb576040517f56f57b2b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b642e90edd00062061a806311e1a30060006121168383615abd565b9050670de0b6b3a7640000600061214d827f0000000000000000000000000000000000000000000000000000000000000000615ad1565b9050600061216b612166670de0b6b3a764000086615ad1565b613cc6565b905060006121798484613f18565b905060006121878383613f67565b9050600061219482613f95565b905060006121b3826121ae670de0b6b3a76400008f615ad1565b61417d565b905060006121c18b83613f67565b90506121cd818d615ad1565b9f9e505050505050505050505050505050565b600281815481106121f057600080fd5b60009182526020909120600590910201805460018201546002830154600384015460049094015463ffffffff841695506401000000009093046001600160a01b03908116949216926001600160801b03918216929180821691600160801b90041687565b60006002600d5460ff16600281111561226f5761226f615713565b0361229057506001600160a01b03166000908152600b602052604090205490565b506001600160a01b031660009081526003602052604090205490565b3660011981013560f01c900360f4013560601c3314806122e457506122cf611621565b6001600160a01b0316336001600160a01b0316145b61231a576040517fd386ef3e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61181a8686868686866141b7565b60008054600160801b900460ff16600281111561234757612347615713565b146123655760405163067fe19560e41b815260040160405180910390fd5b600080600080612374866146eb565b9350935093509350600061238a85858585614a44565b905060003660011981013560f01c90036098013560601c6001600160a01b0316637dc0d1d06040518163ffffffff1660e01b8152600401602060405180830381865afa1580156123de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124029190615af0565b9050600189036124cf576001600160a01b0381166352f0f3ad8a846124333660011981013560f01c90036034013590565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e086901b16815260048101939093526024830191909152604482015260206064820152608481018a905260a4015b6020604051808303816000875af11580156124a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124c99190615b0d565b506113f6565b600289036124ee576001600160a01b0381166352f0f3ad8a8489612433565b6003890361250d576001600160a01b0381166352f0f3ad8a8487612433565b6004890361264257600061254a6001600160801b0385167f0000000000000000000000000000000000000000000000000000000000000000614ae3565b6009546125579190615a41565b612562906001615a41565b90503660011981013560f01c900360580135811061258f573660011981013560f01c900360580135612591565b805b90506001600160a01b0382166352f0f3ad8b8560405160e084901b7fffffffff000000000000000000000000000000000000000000000000000000001681526004810192909252602482015260c084901b604482015260086064820152608481018b905260a4016020604051808303816000875af1158015612617573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061263b9190615b0d565b50506113f6565b600589036126bd576040517f52f0f3ad000000000000000000000000000000000000000000000000000000008152600481018a9052602481018390523660011981013560f01c900360d4013560c01b604482015260086064820152608481018890526001600160a01b038216906352f0f3ad9060a401612486565b6040517fff137e6500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3660011981013560f01c9003605481013560e01c90601401356060612712611680565b9050909192565b60008160000151826020015183604001518460600151604051602001612758949392919093845260208401929092526040830152606082015260800190565b604051602081830303815290604052805190602001209050919050565b604080518082019091526000808252602082015281516000036127c4576040517f5ab458fb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50604080518082019091528151815260209182019181019190915290565b606060008060006127f285614b78565b91945092509050600181600181111561280d5761280d615713565b14612844576040517f4b9c6abe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84516128508385615a41565b14612887576040517f5c5537b800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604080516020808252610420820190925290816020015b604080518082019091526000808252602082015281526020019060019003908161289e5790505093506000835b865181101561298c576000806129116040518060400160405280858c600001516128f59190615a73565b8152602001858c6020015161290a9190615a41565b9052614b78565b50915091506040518060400160405280838361292d9190615a41565b8152602001848b602001516129429190615a41565b81525088858151811061295757612957615a15565b602090810291909101015261296d600185615a41565b93506129798183615a41565b6129839084615a41565b925050506128cb565b50845250919392505050565b606060008060006129a885614b78565b9194509250905060008160018111156129c3576129c3615713565b146129fa576040517f1ff9b2e400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612a048284615a41565b855114612a3d576040517f5c5537b800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61167785602001518484615016565b60028101546001600160a01b038316600090815260036020526040812080546001600160801b0390931692909190612a85908490615a41565b90915550505050565b6040518181523660011981013560f01c90038284820160208401378260208301016000815260208101604052505092915050565b60008054600160801b900460ff166002811115612ae157612ae1615713565b14612aff5760405163067fe19560e41b815260040160405180910390fd5b600060028481548110612b1457612b14615a15565b60009182526020918290206040805160e0810182526005909302909101805463ffffffff811684526001600160a01b0364010000000090910481169484019490945260018101549093169082015260028201546001600160801b03908116606083015260038301546080830181905260049093015480821660a0840152600160801b90041660c082015291508514612bd8576040517f3014033200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60a0810151600083156001600160801b0383161760011b90506000612c6d826001600160801b03167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f6307c4acdd60e01b67ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff169050861580612ca85750612ca57f00000000000000000000000000000000000000000000000000000000000000006002615a41565b81145b8015612cb2575084155b15612ce9576040517fa42637bc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000547201000000000000000000000000000000000000900460ff168015612d0f575086155b15612d46576040517f0ea2e75200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f0000000000000000000000000000000000000000000000000000000000000000811115612da0576040517f56f57b2b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612dcb7f00000000000000000000000000000000000000000000000000000000000000006001615a41565b8103612ddd57612ddd868885886150ab565b34612de78361201f565b14612e1e576040517f8620aa1900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000612e2988611e85565b905067ffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000811690821603612e91576040517f3381d11400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000612ebe60017f0000000000000000000000000000000000000000000000000000000000000000615a73565b8303612fd4573660011981013560f01c90036098013560601c6001600160a01b0316637dc0d1d06040518163ffffffff1660e01b8152600401602060405180830381865afa158015612f14573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f389190615af0565b6001600160a01b031663f3f480d96040518163ffffffff1660e01b8152600401602060405180830381865afa158015612f75573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f999190615b0d565b612fcd907f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff16615b26565b9050613067565b612fff60017f0000000000000000000000000000000000000000000000000000000000000000615a73565b830361303a57612fcd7f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff166002615b52565b507f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff165b61309b817f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff16615b82565b67ffffffffffffffff166130b68367ffffffffffffffff1690565b67ffffffffffffffff1611156130fd576130fa817f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff16615b82565b91505b6000604083901b421760008a8152608087901b6001600160801b038d1617602052604081209192509060008181526004602052604090205490915060ff1615613172576040517f80497e3b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60016004600083815260200190815260200160002060006101000a81548160ff02191690831515021790555060026040518060e001604052808d63ffffffff16815260200160006001600160a01b03168152602001336001600160a01b03168152602001346001600160801b031681526020018c8152602001886001600160801b03168152602001846001600160801b0316815250908060018154018082558091505060019003906000526020600020906005020160009091909190915060008201518160000160006101000a81548163ffffffff021916908363ffffffff16021790555060208201518160000160046101000a8154816001600160a01b0302191690836001600160a01b0316021790555060408201518160010160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060608201518160020160006101000a8154816001600160801b0302191690836001600160801b031602179055506080820151816003015560a08201518160040160006101000a8154816001600160801b0302191690836001600160801b0316021790555060c08201518160040160106101000a8154816001600160801b0302191690836001600160801b031602179055505050600560008c815260200190815260200160002060016002805490506133699190615a73565b81546001810183556000928352602080842090910191909155338252600b905260408120805434929061339d908490615a41565b90915550503660011981013560f01c900360c0013560601c6001600160a01b031663d0e30db0346040518263ffffffff1660e01b81526004016000604051808303818588803b1580156133ef57600080fd5b505af1158015613403573d6000803e3d6000fd5b50506040513393508d92508e91507f9b3245740ec3b155098a55be84957a4da13eaf7f14a8bc6f53126c0b9350f2be90600090a4505050505050505050505050565b60005471010000000000000000000000000000000000900460ff1615613497576040517f0dc149f000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61349f61523a565b36146134d7576040517f9824bdab00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000803660011981013560f01c900360ac013560601c6001600160a01b031663d83ef2676040518163ffffffff1660e01b81526004016040805180830381865afa158015613529573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061354d9190615bab565b909250905081613589576040517f6a6bc3b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805180820190915282815260200181905260088290556009819055803660011981013560f01c90036058013511613604576040517ff40239db0000000000000000000000000000000000000000000000000000000081523660011981013560f01c90036014013560048201526024015b60405180910390fd5b67ffffffffffffffff3660011981013560f01c90036098013560601c6001600160a01b0316637dc0d1d06040518163ffffffff1660e01b8152600401602060405180830381865afa15801561365d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136819190615af0565b6001600160a01b031663f3f480d96040518163ffffffff1660e01b8152600401602060405180830381865afa1580156136be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136e29190615b0d565b111561371a576040517fb4e1243300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006137517f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff166002615ad1565b905060003660011981013560f01c90036098013560601c6001600160a01b0316637dc0d1d06040518163ffffffff1660e01b8152600401602060405180830381865afa1580156137a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137c99190615af0565b6001600160a01b031663f3f480d96040518163ffffffff1660e01b8152600401602060405180830381865afa158015613806573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061382a9190615b0d565b67ffffffffffffffff166138657f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff1690565b67ffffffffffffffff166138799190615a41565b90506000613887838361524f565b905067ffffffffffffffff8111156138cb576040517f8d77ecac00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b67ffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001667ffffffffffffffff168167ffffffffffffffff161115613943576040517f8d77ecac00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805160e08101825263ffffffff808252600060208084018281523660011981013560f01c90038035606090811c8789018181526001600160801b0334818116948b0194855260149095013560808b01908152600160a08c0181815242841660c08e019081526002805493840181558c529c517f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace600590930292830180549a5191909d167fffffffffffffffff000000000000000000000000000000000000000000000000909a16999099176401000000006001600160a01b039a8b160217909b5592517f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5acf840180547fffffffffffffffffffffffff000000000000000000000000000000000000000016919098161790965592517f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ad0820180547fffffffffffffffffffffffffffffffff000000000000000000000000000000001691851691909117905593517f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ad185015595519651968116600160801b9790911696909602959095177f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ad2909101558154710100000000000000000000000000000000007fffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff909116178255918152600b909152918220805491929091613b84908490615a41565b90915550503660011981013560f01c900360c0013560601c6001600160a01b031663d0e30db0346040518263ffffffff1660e01b81526004016000604051808303818588803b158015613bd657600080fd5b505af1158015613bea573d6000803e3d6000fd5b5050600080547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000164267ffffffffffffffff1617905550613c2d9150611e6f9050565b63ffffffff163660011981013560f01c900360ac013560601c6001600160a01b0316633c9f397c6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613c83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ca79190615bcf565b600a805460ff191663ffffffff92909216929092141790555050505050565b6001600160801b03811160071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b1760008213613d1c57631615e6386000526004601cfd5b7ff8f9f9faf9fdfafbf9fdfcfdfafbfcfef9fafdfafcfcfbfefafafcfbffffffff6f8421084210842108cc6318c6db6d54be83831c1c601f161a1890811b609f90811c6c465772b2bbbb5f824b15207a3081018102606090811d6d0388eaa27412d5aca026815d636e018202811d6d0df99ac502031bf953eff472fdcc018202811d6d13cdffb29d51d99322bdff5f2211018202811d6d0a0f742023def783a307a986912e018202811d6d01920d8043ca89b5239253284e42018202811d6c0b7a86d7375468fac667a0a527016c29508e458543d8aa4df2abee7883018302821d6d0139601a2efabe717e604cbb4894018302821d6d02247f7a7b6594320649aa03aba1018302821d7fffffffffffffffffffffffffffffffffffffff73c0c716a594e00d54e3c4cbc9018302821d7ffffffffffffffffffffffffffffffffffffffdc7b88c420e53a9890533129f6f01830290911d7fffffffffffffffffffffffffffffffffffffff465fda27eb4d63ded474e5f832019091027ffffffffffffffff5f6af8f7b3396644f18e157960000000000000000000000000105711340daa0d5f769dba1915cef59f0815a5506029190037d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b302017d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b88642840160ae1d90565b60007812725dd1d243aba0e75fe645cc4873f9e65afe688c928e1f218311670de0b6b3a764000002158202613f5557637c5f487d6000526004601cfd5b50670de0b6b3a7640000919091020490565b600081600019048311820215613f855763bac65e5b6000526004601cfd5b50670de0b6b3a764000091020490565b60007ffffffffffffffffffffffffffffffffffffffffffffffffdc0d0570925a462d78213613fc357919050565b680755bf798b4a1bf1e58212613fe15763a37bfec96000526004601cfd5b6503782dace9d9604e83901b059150600060606bb17217f7d1cf79abc9e3b39884821b056b80000000000000000000000001901d6bb17217f7d1cf79abc9e3b39881029093037fffffffffffffffffffffffffffffffffffffffdbf3ccf1604d263450f02a550481018102606090811d6d0277594991cfc85f6e2461837cd9018202811d7fffffffffffffffffffffffffffffffffffffe5adedaa1cb095af9e4da10e363c018202811d6db1bbb201f443cf962f1a1d3db4a5018202811d7ffffffffffffffffffffffffffffffffffffd38dc772608b0ae56cce01296c0eb018202811d6e05180bb14799ab47a8a8cb2a527d57016d02d16720577bd19bf614176fe9ea6c10fe68e7fd37d0007b713f765084018402831d9081019084017ffffffffffffffffffffffffffffffffffffffe2c69812cf03b0763fd454a8f7e010290911d6e0587f503bb6ea29d25fcb7401964500190910279d835ebba824c98fb31b83b2ca45c000000000000000000000000010574029d9dc38563c32e5c2f6dc192ee70ef65f9978af30260c3939093039290921c92915050565b60006141ae670de0b6b3a76400008361419586613cc6565b61419f9190615bf5565b6141a99190615cb1565b613f95565b90505b92915050565b60008054600160801b900460ff1660028111156141d6576141d6615713565b146141f45760405163067fe19560e41b815260040160405180910390fd5b60006002878154811061420957614209615a15565b6000918252602082206005919091020160048101549092506001600160801b0316908715821760011b905061425f7f00000000000000000000000000000000000000000000000000000000000000006001615a41565b6142d9826001600160801b03167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f6307c4acdd60e01b67ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff1614614313576040517f5f53dd9800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008089156143de576143667f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000615a73565b6001901b61437c846001600160801b0316615266565b6001600160801b031661438f9190615cfb565b156143c3576143ba6143ab60016001600160801b038716615d0f565b865463ffffffff1660006152ec565b600301546143d4565b3660011981013560f01c9003607801355b91508490506143ff565b600385015491506143fc6143ab6001600160801b0386166001615d2f565b90505b600882901b60088a8a604051614416929190615a05565b6040518091039020901b14614457576040517f696550ff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006144628c6153b5565b90506000614471836003015490565b6040517fe14ced320000000000000000000000000000000000000000000000000000000081523660011981013560f01c90036098013560601c9063e14ced32906144c7908f908f908f908f908a90600401615d9a565b6020604051808303816000875af11580156144e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061450a9190615b0d565b600485015491149150600090600290614593906001600160801b03167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f6307c4acdd60e01b67ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b61460d896001600160801b03167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f6307c4acdd60e01b67ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b6146179190615dd4565b6146219190615df7565b60ff161590508115158103614662576040517ffb4e40dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b875464010000000090046001600160a01b0316156146ac576040517f9071e6af00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505085547fffffffffffffffff0000000000000000000000000000000000000000ffffffff163364010000000002179095555050505050505050505050565b600080600080600085905060006002828154811061470b5761470b615a15565b600091825260209091206004600590920201908101549091507f0000000000000000000000000000000000000000000000000000000000000000906147c0906001600160801b03167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f6307c4acdd60e01b67ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff16116147fa576040517fb34b5c2200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000815b60048301547f00000000000000000000000000000000000000000000000000000000000000009061489f906001600160801b03167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f6307c4acdd60e01b67ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff16925082111561491457825463ffffffff166148de7f00000000000000000000000000000000000000000000000000000000000000006001615a41565b83036148e8578391505b600281815481106148fb576148fb615a15565b90600052602060002090600502019350809450506147fe565b600481810154908401546001600160801b0391821691166000816001600160801b031661495961494d856001600160801b031660011c90565b6001600160801b031690565b6001600160801b031614905080156149f257600061497f836001600160801b0316615266565b6001600160801b031611156149cf5760006149af6149a760016001600160801b038616615d0f565b8960016152ec565b6003810154600490910154909c506001600160801b03169a506149d59050565b6008549a505b600386015460048701549099506001600160801b03169750614a36565b6000614a0b6149a76001600160801b0385166001615d2f565b6003808901546004808b015492840154930154909e506001600160801b039182169d50919b50169850505b505050505050509193509193565b60006001600160801b03841615614a9f5760408051602081018790526001600160801b038087169282019290925260608101859052908316608082015260a00160405160208183030381529060405280519060200120611677565b8282604051602001614ac49291909182526001600160801b0316602082015260400190565b6040516020818303038152906040528051906020012095945050505050565b600080614b57847e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f6307c4acdd60e01b67ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff1690508083036001841b600180831b0386831b17039250505092915050565b60008060008360000151600003614bbb576040517f5ab458fb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6020840151805160001a607f8111614be057600060016000945094509450505061500f565b60b78111614cf6576000614bf5608083615a73565b905080876000015111614c34576040517f66c9448500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001838101517fff00000000000000000000000000000000000000000000000000000000000000169082148015614cac57507f80000000000000000000000000000000000000000000000000000000000000007fff000000000000000000000000000000000000000000000000000000000000008216105b15614ce3576040517fbabb01dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b506001955093506000925061500f915050565b60bf8111614e54576000614d0b60b783615a73565b905080876000015111614d4a576040517f66c9448500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60018301517fff00000000000000000000000000000000000000000000000000000000000000166000819003614dac576040517fbabb01dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600184015160088302610100031c60378111614df4576040517fbabb01dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b614dfe8184615a41565b895111614e37576040517f66c9448500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b614e42836001615a41565b975095506000945061500f9350505050565b60f78111614eb9576000614e6960c083615a73565b905080876000015111614ea8576040517f66c9448500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60019550935084925061500f915050565b6000614ec660f783615a73565b905080876000015111614f05576040517f66c9448500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60018301517fff00000000000000000000000000000000000000000000000000000000000000166000819003614f67576040517fbabb01dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600184015160088302610100031c60378111614faf576040517fbabb01dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b614fb98184615a41565b895111614ff2576040517f66c9448500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b614ffd836001615a41565b975095506001945061500f9350505050565b9193909250565b60608167ffffffffffffffff8111156150315761503161597b565b6040519080825280601f01601f19166020018201604052801561505b576020820181803683370190505b50905081156150a45760006150708486615a41565b90506020820160005b84811015615091578281015182820152602001615079565b848111156150a0576000858301525b5050505b9392505050565b60006150c16001600160801b0384166001615d2f565b905060006150d1828660016152ec565b9050600086901a838061519b575061510a60027f0000000000000000000000000000000000000000000000000000000000000000615cfb565b600483015460029061518c906001600160801b03167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f6307c4acdd60e01b67ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b6151969190615df7565b60ff16145b156151f35760ff8116600114806151b5575060ff81166002145b6151ee576040517ff40239db000000000000000000000000000000000000000000000000000000008152600481018890526024016135fb565b615231565b60ff811615615231576040517ff40239db000000000000000000000000000000000000000000000000000000008152600481018890526024016135fb565b50505050505050565b60006152446153e4565b61160a906006615a41565b60008183101561525f57816141ae565b5090919050565b6000806152da837e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f6307c4acdd60e01b67ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b600160ff919091161b90920392915050565b6000808261532c576153276001600160801b0386167f00000000000000000000000000000000000000000000000000000000000000006153f2565b61533e565b61533e856001600160801b0316615531565b90506002848154811061535357615353615a15565b906000526020600020906005020191505b60048201546001600160801b038281169116146153ad57815460028054909163ffffffff1690811061539857615398615a15565b90600052602060002090600502019150615364565b509392505050565b60008060008060006153c6866146eb565b93509350935093506153da84848484614a44565b9695505050505050565b600061160a60f46028615a41565b60008161546f846001600160801b03167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f6307c4acdd60e01b67ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff16116154855763b34b5c226000526004601cfd5b61548e83615531565b90508161550b826001600160801b03167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f6307c4acdd60e01b67ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff16116141b1576141ae615521836001615a41565b6001600160801b038316906155bd565b600081196001830116816155ac827e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f6307c4acdd60e01b67ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff169390931c8015179392505050565b600080615631847e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f6307c4acdd60e01b67ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff169050808303600180821b0385821b179250505092915050565b60008083601f84011261565f57600080fd5b50813567ffffffffffffffff81111561567757600080fd5b60208301915083602082850101111561568f57600080fd5b9250929050565b600080600083850360a08112156156ac57600080fd5b60808112156156ba57600080fd5b50839250608084013567ffffffffffffffff8111156156d857600080fd5b6156e48682870161564d565b9497909650939450505050565b6000806040838503121561570457600080fd5b50508035926020909101359150565b634e487b7160e01b600052602160045260246000fd5b6003811061574757634e487b7160e01b600052602160045260246000fd5b50565b6020810161575783615729565b91905290565b6001600160a01b038116811461574757600080fd5b60006020828403121561578457600080fd5b81356150a48161575d565b6000806000606084860312156157a457600080fd5b505081359360208301359350604090920135919050565b6000815180845260005b818110156157e1576020818501810151868301820152016157c5565b818111156157f3576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006141ae60208301846157bb565b60006020828403121561584b57600080fd5b5035919050565b801515811461574757600080fd5b6000806000806080858703121561587657600080fd5b843593506020850135925060408501359150606085013561589681615852565b939692955090935050565b6000602082840312156158b357600080fd5b81356001600160801b03811681146150a457600080fd5b600080600080600080608087890312156158e357600080fd5b8635955060208701356158f581615852565b9450604087013567ffffffffffffffff8082111561591257600080fd5b61591e8a838b0161564d565b9096509450606089013591508082111561593757600080fd5b5061594489828a0161564d565b979a9699509497509295939492505050565b63ffffffff8416815282602082015260606040820152600061167760608301846157bb565b634e487b7160e01b600052604160045260246000fd5b6000608082840312156159a357600080fd5b6040516080810181811067ffffffffffffffff821117156159d457634e487b7160e01b600052604160045260246000fd5b8060405250823581526020830135602082015260408301356040820152606083013560608201528091505092915050565b8183823760009101908152919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60008219821115615a5457615a54615a2b565b500190565b60006000198203615a6c57615a6c615a2b565b5060010190565b600082821015615a8557615a85615a2b565b500390565b600060208284031215615a9c57600080fd5b81516150a481615852565b634e487b7160e01b600052601260045260246000fd5b600082615acc57615acc615aa7565b500490565b6000816000190483118215151615615aeb57615aeb615a2b565b500290565b600060208284031215615b0257600080fd5b81516150a48161575d565b600060208284031215615b1f57600080fd5b5051919050565b600067ffffffffffffffff808316818516808303821115615b4957615b49615a2b565b01949350505050565b600067ffffffffffffffff80831681851681830481118215151615615b7957615b79615a2b565b02949350505050565b600067ffffffffffffffff83811690831681811015615ba357615ba3615a2b565b039392505050565b60008060408385031215615bbe57600080fd5b505080516020909101519092909150565b600060208284031215615be157600080fd5b815163ffffffff811681146150a457600080fd5b60007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600084136000841385830485118282161615615c3657615c36615a2b565b7f80000000000000000000000000000000000000000000000000000000000000006000871286820588128184161615615c7157615c71615a2b565b60008712925087820587128484161615615c8d57615c8d615a2b565b87850587128184161615615ca357615ca3615a2b565b505050929093029392505050565b600082615cc057615cc0615aa7565b60001983147f800000000000000000000000000000000000000000000000000000000000000083141615615cf657615cf6615a2b565b500590565b600082615d0a57615d0a615aa7565b500690565b60006001600160801b0383811690831681811015615ba357615ba3615a2b565b60006001600160801b03808316818516808303821115615b4957615b49615a2b565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b606081526000615dae606083018789615d51565b8281036020840152615dc1818688615d51565b9150508260408301529695505050505050565b600060ff821660ff841680821015615dee57615dee615a2b565b90039392505050565b600060ff831680615e0a57615e0a615aa7565b8060ff8416069150509291505056fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"a\x01\0`@R4\x80\x15b\0\0\x12W`\0\x80\xFD[P`@Qb\0b\x088\x03\x80b\0b\x08\x839\x81\x01`@\x81\x90Rb\0\x005\x91b\0\x01\xE7V[\x80b\0\0D`\x01`~b\0\x02\x81V[`\xFF\x16\x81`\0\x01Q\x11\x15b\0\0lW`@Qc;\xEF\xF1\x99`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0\x19\x81` \x01Q\x14\x80b\0\0\x93WP\x80Q` \x82\x01Qb\0\0\x90\x90`\x01b\0\x02\xA7V[\x10\x15[\x15b\0\0\xB2W`@Qc\xE6,\xCF9`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x02\x81` \x01Q\x10\x15b\0\0\xD9W`@Qc\xE6,\xCF9`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0b\0\0\xFE\x82`@\x01Q`\x01`\x01`@\x1B\x03\x16b\0\x01\xC7` \x1Bb\0\x0C`\x17` \x1CV[b\0\x01\x14\x90`\x01`\x01`@\x1B\x03\x16`\x02b\0\x02\xC2V[\x90P`\x01`\x01`@\x1B\x03\x81\x11\x15b\0\x01?W`@Qc#]\xFB+`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[b\0\x01b\x82``\x01Q`\x01`\x01`@\x1B\x03\x16b\0\x01\xC7` \x1Bb\0\x0C`\x17` \x1CV[`\x01`\x01`@\x1B\x03\x16\x81`\x01`\x01`@\x1B\x03\x16\x11\x15b\0\x01\x95W`@Qc#]\xFB+`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[P\x80Q`\x80R` \x81\x01Q`\xA0R`@\x81\x01Q`\x01`\x01`@\x1B\x03\x90\x81\x16`\xE0R``\x90\x91\x01Q\x16`\xC0RPb\0\x02\xE4V[\x90V[\x80Q`\x01`\x01`@\x1B\x03\x81\x16\x81\x14b\0\x01\xE2W`\0\x80\xFD[\x91\x90PV[`\0`\x80\x82\x84\x03\x12\x15b\0\x01\xFAW`\0\x80\xFD[`@Q`\x80\x81\x01`\x01`\x01`@\x1B\x03\x81\x11\x82\x82\x10\x17\x15b\0\x02+WcNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[\x80`@RP\x82Q\x81R` \x83\x01Q` \x82\x01Rb\0\x02L`@\x84\x01b\0\x01\xCAV[`@\x82\x01Rb\0\x02_``\x84\x01b\0\x01\xCAV[``\x82\x01R\x93\x92PPPV[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[`\0`\xFF\x82\x16`\xFF\x84\x16\x80\x82\x10\x15b\0\x02\x9EWb\0\x02\x9Eb\0\x02kV[\x90\x03\x93\x92PPPV[`\0\x82\x19\x82\x11\x15b\0\x02\xBDWb\0\x02\xBDb\0\x02kV[P\x01\x90V[`\0\x81`\0\x19\x04\x83\x11\x82\x15\x15\x16\x15b\0\x02\xDFWb\0\x02\xDFb\0\x02kV[P\x02\x90V[`\x80Q`\xA0Q`\xC0Q`\xE0Qa^&b\0\x03\xE2`\09`\0\x81\x81a\x070\x01R\x81\x81a/\x9F\x01R\x81\x81a0\n\x01R\x81\x81a0=\x01R\x81\x81a7!\x01Ra89\x01R`\0\x81\x81a\n\x8C\x01R\x81\x81a\x0E\xF3\x01R\x81\x81a\x1F\xB5\x01R\x81\x81a\x1F\xF7\x01R\x81\x81a.6\x01R\x81\x81a0m\x01R\x81\x81a0\xCC\x01Ra8\xD6\x01R`\0\x81\x81a\n\xBF\x01R\x81\x81a%&\x01R\x81\x81a,\x7F\x01R\x81\x81a-\xA5\x01R\x81\x81a/\xDB\x01R\x81\x81aC!\x01R\x81\x81aG&\x01R\x81\x81aH\x05\x01R\x81\x81aH\xB8\x01R\x81\x81aP\xE6\x01RaS\x03\x01R`\0\x81\x81a\x0Bf\x01R\x81\x81a \xA3\x01R\x81\x81a!)\x01R\x81\x81a-H\x01R\x81\x81a.\x9A\x01R\x81\x81aB9\x01RaCB\x01Ra^&`\0\xF3\xFE`\x80`@R`\x046\x10a\x03UW`\x005`\xE0\x1C\x80cp\x87*\xA5\x11a\x01\xBBW\x80c\xC0\xD8\xBBt\x11a\0\xF7W\x80c\xDA\xBD9m\x11a\0\x95W\x80c\xF8\xF4?\xF6\x11a\0oW\x80c\xF8\xF4?\xF6\x14a\x0B\x13W\x80c\xFA$\xF7C\x14a\x0B3W\x80c\xFA1Z\xA9\x14a\x0BWW\x80c\xFE+\xBE\xB2\x14a\x0B\x8AW`\0\x80\xFD[\x80c\xDA\xBD9m\x14a\n}W\x80c\xEC^c\x08\x14a\n\xB0W\x80c\xEF\xF0\xF5\x92\x14a\n\xE3W`\0\x80\xFD[\x80c\xCF\t\xE0\xD0\x11a\0\xD1W\x80c\xCF\t\xE0\xD0\x14a\t\xFAW\x80c\xD5\xD4M\x80\x14a\n\x1BW\x80c\xD6\xAE<\xD5\x14a\n;W\x80c\xD8\xCC\x1A<\x14a\n]W`\0\x80\xFD[\x80c\xC0\xD8\xBBt\x14a\t9W\x80c\xC3\x95\xE1\xCA\x14a\tfW\x80c\xC6\xF00\x8C\x14a\t\x86W`\0\x80\xFD[\x80c\x8DE\n\x95\x11a\x01dW\x80c\xA8\xE4\xFB\x90\x11a\x01>W\x80c\xA8\xE4\xFB\x90\x14a\x08\xA5W\x80c\xBB\xDC\x02\xDB\x14a\x08\xCAW\x80c\xBC\xEF;U\x14a\x08\xF7W\x80c\xBD\x8D\xA9V\x14a\t\x19W`\0\x80\xFD[\x80c\x8DE\n\x95\x14a\x07\xE3W\x80c\x99s^2\x14a\x07\xC1W\x80c\xA4E\xEC\xE6\x14a\x08\x05W`\0\x80\xFD[\x80c\x81)\xFC\x1C\x11a\x01\x95W\x80c\x81)\xFC\x1C\x14a\x07\xA4W\x80c\x89\x80\xE0\xCC\x14a\x07\xACW\x80c\x8B\x85\x90+\x14a\x07\xC1W`\0\x80\xFD[\x80cp\x87*\xA5\x14a\x07gW\x80cxk\x84K\x14a\x07|W\x80c{\x0F\n\xDC\x14a\x07\x91W`\0\x80\xFD[\x80c>:\xC9\x12\x11a\x02\x95W\x80cZ_\xA2\xD9\x11a\x023W\x80c`\xE2td\x11a\x02\rW\x80c`\xE2td\x14a\x06\xDFW\x80ccaPm\x14a\x06\xFFW\x80ckg\x16\xC0\x14a\x07!W\x80co\x03D\t\x14a\x07TW`\0\x80\xFD[\x80cZ_\xA2\xD9\x14a\x06\x85W\x80c\\\x0C\xBA3\x14a\x06\xA5W\x80c`\x9D34\x14a\x06\xCAW`\0\x80\xFD[\x80cR\x9Dj\x8C\x11a\x02oW\x80cR\x9Dj\x8C\x14a\x05\xC4W\x80cSM\xB0\xE2\x14a\x05\xF1W\x80cT\xFDMP\x14a\x06\x06W\x80cW\xDA\x95\x0E\x14a\x06UW`\0\x80\xFD[\x80c>:\xC9\x12\x14a\x05\\W\x80c?\xC8\xCE\xF3\x14a\x05\x8CW\x80cG'w\xC6\x14a\x05\xB1W`\0\x80\xFD[\x80c%\xFC*\xCE\x11a\x03\x02W\x80c0\xDB\xE5p\x11a\x02\xDCW\x80c0\xDB\xE5p\x14a\x04\xC3W\x80c7\x8D\xD4\x8C\x14a\x04\xFBW\x80c7\xB1\xB2)\x14a\x05\x15W\x80c:v\x84c\x14a\x057W`\0\x80\xFD[\x80c%\xFC*\xCE\x14a\x04oW\x80c(\x10\xE1\xD6\x14a\x04\x8EW\x80c*\xD6\x9A\xEB\x14a\x04\xA3W`\0\x80\xFD[\x80c \r.\xD2\x11a\x033W\x80c \r.\xD2\x14a\x03\xE7W\x80c\"*\xBFE\x14a\x04\x15W\x80c%\x0Ei\xBD\x14a\x04UW`\0\x80\xFD[\x80c\x01\x93Q0\x14a\x03ZW\x80c\x03\xC2\x92M\x14a\x03|W\x80c\x19\xEF\xFE\xB4\x14a\x03\x9CW[`\0\x80\xFD[4\x80\x15a\x03fW`\0\x80\xFD[Pa\x03za\x03u6`\x04aV\x96V[a\x0B\xBAV[\0[4\x80\x15a\x03\x88W`\0\x80\xFD[Pa\x03za\x03\x976`\x04aV\xF1V[a\x0EyV[4\x80\x15a\x03\xA8W`\0\x80\xFD[P`\0Ta\x03\xC9\x90h\x01\0\0\0\0\0\0\0\0\x90\x04g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[`@Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[4\x80\x15a\x03\xF3W`\0\x80\xFD[P`\0Ta\x04\x08\x90`\x01`\x80\x1B\x90\x04`\xFF\x16\x81V[`@Qa\x03\xDE\x91\x90aWJV[4\x80\x15a\x04!W`\0\x80\xFD[Pa\x04Ea\x0406`\x04aWrV[`\x0C` R`\0\x90\x81R`@\x90 T`\xFF\x16\x81V[`@Q\x90\x15\x15\x81R` \x01a\x03\xDEV[4\x80\x15a\x04aW`\0\x80\xFD[P`\nTa\x04E\x90`\xFF\x16\x81V[4\x80\x15a\x04{W`\0\x80\xFD[P`\x08T[`@Q\x90\x81R` \x01a\x03\xDEV[4\x80\x15a\x04\x9AW`\0\x80\xFD[Pa\x04\x08a\x14\x01V[4\x80\x15a\x04\xAFW`\0\x80\xFD[Pa\x04\x80a\x04\xBE6`\x04aV\xF1V[a\x15\xD9V[4\x80\x15a\x04\xCFW`\0\x80\xFD[P`\x01Ta\x04\xE3\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x01a\x03\xDEV[4\x80\x15a\x05\x07W`\0\x80\xFD[P`\rTa\x04\x08\x90`\xFF\x16\x81V[4\x80\x15a\x05!W`\0\x80\xFD[P6`\x01\x19\x81\x015`\xF0\x1C\x90\x035``\x1Ca\x04\xE3V[4\x80\x15a\x05CW`\0\x80\xFD[P6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\x98\x015``\x1Ca\x04\xE3V[4\x80\x15a\x05hW`\0\x80\xFD[P`\0Ta\x04E\x90r\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16\x81V[4\x80\x15a\x05\x98W`\0\x80\xFD[P6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\xC0\x015``\x1Ca\x04\xE3V[a\x03za\x05\xBF6`\x04aW\x8FV[a\x16\x0FV[4\x80\x15a\x05\xD0W`\0\x80\xFD[Pa\x04\x80a\x05\xDF6`\x04aWrV[`\x03` R`\0\x90\x81R`@\x90 T\x81V[4\x80\x15a\x05\xFDW`\0\x80\xFD[Pa\x04\xE3a\x16!V[4\x80\x15a\x06\x12W`\0\x80\xFD[P`@\x80Q\x80\x82\x01\x90\x91R`\x05\x81R\x7F2.2.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` \x82\x01R[`@Qa\x03\xDE\x91\x90aX&V[4\x80\x15a\x06aW`\0\x80\xFD[P`\x08T`\tTa\x06p\x91\x90\x82V[`@\x80Q\x92\x83R` \x83\x01\x91\x90\x91R\x01a\x03\xDEV[4\x80\x15a\x06\x91W`\0\x80\xFD[Pa\x04\x80a\x06\xA06`\x04aX9V[a\x16FV[4\x80\x15a\x06\xB1W`\0\x80\xFD[P6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\xAC\x015``\x1Ca\x04\xE3V[4\x80\x15a\x06\xD6W`\0\x80\xFD[Pa\x06Ha\x16\x80V[4\x80\x15a\x06\xEBW`\0\x80\xFD[Pa\x03za\x06\xFA6`\x04aWrV[a\x16\x8EV[4\x80\x15a\x07\x0BW`\0\x80\xFD[P6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`4\x015a\x04\x80V[4\x80\x15a\x07-W`\0\x80\xFD[P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x03\xC9V[a\x03za\x07b6`\x04aX`V[a\x19\x9FV[4\x80\x15a\x07sW`\0\x80\xFD[P`\tTa\x04\x80V[4\x80\x15a\x07\x88W`\0\x80\xFD[Pa\x03za\x1A\x1FV[a\x03za\x07\x9F6`\x04aW\x8FV[a\x1E\rV[a\x03za\x1E\x1AV[4\x80\x15a\x07\xB8W`\0\x80\xFD[P`\x02Ta\x04\x80V[4\x80\x15a\x07\xCDW`\0\x80\xFD[P6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`X\x015a\x04\x80V[4\x80\x15a\x07\xEFW`\0\x80\xFD[P6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`x\x015a\x04\x80V[4\x80\x15a\x08\x11W`\0\x80\xFD[Pa\x08ga\x08 6`\x04aX9V[`\x07` R`\0\x90\x81R`@\x90 \x80T`\x01\x90\x91\x01T`\xFF\x82\x16\x91a\x01\0\x81\x04c\xFF\xFF\xFF\xFF\x16\x91e\x01\0\0\0\0\0\x90\x91\x04`\x01`\x01`\x80\x1B\x03\x16\x90`\x01`\x01`\xA0\x1B\x03\x16\x84V[`@\x80Q\x94\x15\x15\x85Rc\xFF\xFF\xFF\xFF\x90\x93\x16` \x85\x01R`\x01`\x01`\x80\x1B\x03\x90\x91\x16\x91\x83\x01\x91\x90\x91R`\x01`\x01`\xA0\x1B\x03\x16``\x82\x01R`\x80\x01a\x03\xDEV[4\x80\x15a\x08\xB1W`\0\x80\xFD[P6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\xF4\x015``\x1Ca\x04\xE3V[4\x80\x15a\x08\xD6W`\0\x80\xFD[P`@Q6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`T\x015`\xE0\x1C\x81R` \x01a\x03\xDEV[4\x80\x15a\t\x03W`\0\x80\xFD[P6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\x14\x015a\x04\x80V[4\x80\x15a\t%W`\0\x80\xFD[Pa\x03\xC9a\t46`\x04aX9V[a\x1E\x85V[4\x80\x15a\tEW`\0\x80\xFD[Pa\x04\x80a\tT6`\x04aWrV[`\x0B` R`\0\x90\x81R`@\x90 T\x81V[4\x80\x15a\trW`\0\x80\xFD[Pa\x04\x80a\t\x816`\x04aX\xA1V[a \x1FV[4\x80\x15a\t\x92W`\0\x80\xFD[Pa\t\xA6a\t\xA16`\x04aX9V[a!\xE0V[`@\x80Qc\xFF\xFF\xFF\xFF\x90\x98\x16\x88R`\x01`\x01`\xA0\x1B\x03\x96\x87\x16` \x89\x01R\x95\x90\x94\x16\x94\x86\x01\x94\x90\x94R`\x01`\x01`\x80\x1B\x03\x91\x82\x16``\x86\x01R`\x80\x85\x01R\x91\x82\x16`\xA0\x84\x01R\x16`\xC0\x82\x01R`\xE0\x01a\x03\xDEV[4\x80\x15a\n\x06W`\0\x80\xFD[P`\0Ta\x03\xC9\x90g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[4\x80\x15a\n'W`\0\x80\xFD[Pa\x04\x80a\n66`\x04aWrV[a\"TV[4\x80\x15a\nGW`\0\x80\xFD[P6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\xD4\x015a\x04\x80V[4\x80\x15a\niW`\0\x80\xFD[Pa\x03za\nx6`\x04aX\xCAV[a\"\xACV[4\x80\x15a\n\x89W`\0\x80\xFD[P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x03\xC9V[4\x80\x15a\n\xBCW`\0\x80\xFD[P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x04\x80V[4\x80\x15a\n\xEFW`\0\x80\xFD[Pa\x04Ea\n\xFE6`\x04aX9V[`\x04` R`\0\x90\x81R`@\x90 T`\xFF\x16\x81V[4\x80\x15a\x0B\x1FW`\0\x80\xFD[Pa\x03za\x0B.6`\x04aW\x8FV[a#(V[4\x80\x15a\x0B?W`\0\x80\xFD[Pa\x0BHa&\xEFV[`@Qa\x03\xDE\x93\x92\x91\x90aYVV[4\x80\x15a\x0BcW`\0\x80\xFD[P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x04\x80V[4\x80\x15a\x0B\x96W`\0\x80\xFD[Pa\x04Ea\x0B\xA56`\x04aX9V[`\x06` R`\0\x90\x81R`@\x90 T`\xFF\x16\x81V[`\0\x80T`\x01`\x80\x1B\x90\x04`\xFF\x16`\x02\x81\x11\x15a\x0B\xD9Wa\x0B\xD9aW\x13V[\x14a\x0B\xF7W`@Qc\x06\x7F\xE1\x95`\xE4\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0Tr\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16\x15a\x0CJW`@Q\x7F\x0E\xA2\xE7R\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\x01`@Q\x80\x91\x03\x90\xFD[a\x0Cc6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\x14\x015\x90V[\x90V[a\x0Cza\x0Cu6\x86\x90\x03\x86\x01\x86aY\x91V[a'\x19V[\x14a\x0C\xB1W`@Q\x7F\x9C\xC0\x0B[\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\x01`@Q\x80\x91\x03\x90\xFD[\x82``\x015\x82\x82`@Qa\x0C\xC6\x92\x91\x90aZ\x05V[`@Q\x80\x91\x03\x90 \x14a\r\x05W`@Q\x7F\xD8\x1DX;\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\x01`@Q\x80\x91\x03\x90\xFD[`\0a\rNa\rI\x84\x84\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RPa'u\x92PPPV[a'\xE2V[\x90P`\0a\ru\x82`\x08\x81Q\x81\x10a\rhWa\rhaZ\x15V[` \x02` \x01\x01Qa)\x98V[\x90P` \x81Q\x11\x15a\r\xB3W`@Q\x7F\xD8\x1DX;\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\x01`@Q\x80\x91\x03\x90\xFD[` \x81\x81\x01Q\x82Q\x90\x91\x03`\x03\x1B\x1C6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`X\x015\x81\x03a\x0E\nW`@Q\x7F\xB8\xED\x880\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\x01`@Q\x80\x91\x03\x90\xFD[PP`\x01\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x163\x17\x90UPP`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16r\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x17\x90UPPV[`\0\x80T`\x01`\x80\x1B\x90\x04`\xFF\x16`\x02\x81\x11\x15a\x0E\x98Wa\x0E\x98aW\x13V[\x14a\x0E\xB6W`@Qc\x06\x7F\xE1\x95`\xE4\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0`\x02\x83\x81T\x81\x10a\x0E\xCBWa\x0E\xCBaZ\x15V[\x90`\0R` `\0 \x90`\x05\x02\x01\x90P`\0a\x0E\xE6\x84a\x1E\x85V[\x90Pg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81\x16\x90\x82\x16\x10\x15a\x0FOW`@Q\x7F\xF2D\x0BS\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\x01`@Q\x80\x91\x03\x90\xFD[`\0\x84\x81R`\x06` R`@\x90 T`\xFF\x16\x15a\x0F\x98W`@Q\x7F\xF1\xA9E\x81\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\x01`@Q\x80\x91\x03\x90\xFD[`\0\x84\x81R`\x05` R`@\x90 \x80T\x80\x15\x80\x15a\x0F\xB5WP\x85\x15\x15[\x15a\x10\x18W\x83Td\x01\0\0\0\0\x90\x04`\x01`\x01`\xA0\x1B\x03\x16`\0\x81\x15a\x0F\xDBW\x81a\x0F\xEAV[`\x01\x86\x01T`\x01`\x01`\xA0\x1B\x03\x16[\x90Pa\x0F\xF6\x81\x87a*LV[PPP`\0\x94\x85RPP`\x06` RPP`@\x90 \x80T`\xFF\x19\x16`\x01\x17\x90UV[`\0\x86\x81R`\x07` \x90\x81R`@\x91\x82\x90 \x82Q`\x80\x81\x01\x84R\x81T`\xFF\x81\x16\x15\x15\x80\x83Ra\x01\0\x82\x04c\xFF\xFF\xFF\xFF\x16\x94\x83\x01\x94\x90\x94Re\x01\0\0\0\0\0\x90\x04`\x01`\x01`\x80\x1B\x03\x16\x93\x81\x01\x93\x90\x93R`\x01\x01T`\x01`\x01`\xA0\x1B\x03\x16``\x83\x01Ra\x10\x9CW`\x01`\x01`\x80\x1B\x03`@\x82\x01R`\x01\x81R`\0\x86\x90\x03a\x10\x9CW\x81\x95P[`\0\x86\x82` \x01Qc\xFF\xFF\xFF\xFF\x16a\x10\xB4\x91\x90aZAV[\x90P`\0\x83\x82\x11a\x10\xC5W\x81a\x10\xC7V[\x83[` \x84\x01Q\x90\x91Pc\xFF\xFF\xFF\xFF\x16[\x81\x81\x10\x15a\x11\xE7W`\0\x86\x82\x81T\x81\x10a\x10\xF2Wa\x10\xF2aZ\x15V[`\0\x91\x82R` \x80\x83 \x90\x91\x01T\x80\x83R`\x06\x90\x91R`@\x90\x91 T\x90\x91P`\xFF\x16a\x11JW`@Q\x7F\x9A\x07fF\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\x01`@Q\x80\x91\x03\x90\xFD[`\0`\x02\x82\x81T\x81\x10a\x11_Wa\x11_aZ\x15V[`\0\x91\x82R` \x90\x91 `\x05\x90\x91\x02\x01\x80T\x90\x91Pd\x01\0\0\0\0\x90\x04`\x01`\x01`\xA0\x1B\x03\x16\x15\x80\x15a\x11\xA6WP`\x04\x81\x01T`@\x87\x01Q`\x01`\x01`\x80\x1B\x03\x91\x82\x16\x91\x16\x11[\x15a\x11\xD2W`\x01\x81\x01T`\x01`\x01`\xA0\x1B\x03\x16``\x87\x01R`\x04\x81\x01T`\x01`\x01`\x80\x1B\x03\x16`@\x87\x01R[PP\x80\x80a\x11\xDF\x90aZYV[\x91PPa\x10\xD6V[Pc\xFF\xFF\xFF\xFF\x81\x81\x16` \x85\x81\x01\x91\x82R`\0\x8C\x81R`\x07\x90\x91R`@\x90\x81\x90 \x86Q\x81T\x93Q\x92\x88\x01Q\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\x90\x94\x16\x90\x15\x15\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\xFF\x16\x17a\x01\0\x92\x90\x94\x16\x91\x82\x02\x93\x90\x93\x17\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xFF\xFF\xFF\xFF\xFF\x16e\x01\0\0\0\0\0`\x01`\x01`\x80\x1B\x03\x90\x93\x16\x92\x90\x92\x02\x91\x90\x91\x17\x82U``\x85\x01Q`\x01\x90\x92\x01\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16`\x01`\x01`\xA0\x1B\x03\x90\x93\x16\x92\x90\x92\x17\x90\x91U\x84\x90\x03a\x13\xF6W``\x83\x01Q`\0\x8A\x81R`\x06` R`@\x90 \x80T`\xFF\x19\x16`\x01\x17\x90U\x89\x15\x80\x15a\x133WP`\0Tr\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16[\x15a\x13\x8EW`\x01T`\x01`\x01`\xA0\x1B\x03\x16a\x13N\x81\x8Aa*LV[\x88T`\x01`\x01`\xA0\x1B\x03\x90\x91\x16d\x01\0\0\0\0\x02\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xFF\xFF\xFF\xFF\x90\x91\x16\x17\x88Ua\x13\xF4V[a\x13\xBB`\x01`\x01`\xA0\x1B\x03\x82\x16\x15a\x13\xA6W\x81a\x13\xB5V[`\x01\x89\x01T`\x01`\x01`\xA0\x1B\x03\x16[\x89a*LV[\x87T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xFF\xFF\xFF\xFF\x16d\x01\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x83\x16\x02\x17\x88U[P[PPPPPPPPPV[`\0\x80`\0T`\x01`\x80\x1B\x90\x04`\xFF\x16`\x02\x81\x11\x15a\x14\"Wa\x14\"aW\x13V[\x14a\x14@W`@Qc\x06\x7F\xE1\x95`\xE4\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0\x80R`\x06` R\x7FT\xCD\xD3i\xE4\xE8\xA8Q^R\xCAr\xEC\x81l!\x01\x83\x1A\xD1\xF1\x8B\xF4A\x02\xED\x17\x14Y\xC9\xB4\xF8T`\xFF\x16a\x14\xA4W`@Q\x7F\x9A\x07fF\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\x01`@Q\x80\x91\x03\x90\xFD[`\0`\x01`\x01`\xA0\x1B\x03\x16`\x02`\0\x81T\x81\x10a\x14\xC3Wa\x14\xC3aZ\x15V[`\0\x91\x82R` \x90\x91 `\x05\x90\x91\x02\x01Td\x01\0\0\0\0\x90\x04`\x01`\x01`\xA0\x1B\x03\x16\x14a\x14\xF1W`\x01a\x14\xF4V[`\x02[`\0\x80Tg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFFB\x16h\x01\0\0\0\0\0\0\0\0\x02\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16\x81\x17\x83U\x92\x93P\x83\x92\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x17`\x01`\x80\x1B\x83`\x02\x81\x11\x15a\x15\x98Wa\x15\x98aW\x13V[\x02\x17\x90U`\x02\x81\x11\x15a\x15\xADWa\x15\xADaW\x13V[`@Q\x7F^\x18o\t\xB9\xC94\x91\xF1N'~\xEA\x7F\xAA]\xE6\xA2\xD4\xBD\xA7Zy\xAFz6\x84\xFB\xFBB\xDA`\x90`\0\x90\xA2\x90V[`\x05` R\x81`\0R`@`\0 \x81\x81T\x81\x10a\x15\xF5W`\0\x80\xFD[\x90`\0R` `\0 \x01`\0\x91P\x91PPT\x81V[\x90P\x90V[a\x16\x1C\x83\x83\x83`\x01a\x19\x9FV[PPPV[`\0a\x16\na\x162`\xF4`\x14aZAV[6`\x01\x19\x81\x015`\xF0\x1C\x90\x03\x015``\x1C\x90V[`\0\x81\x81R`\x07` \x90\x81R`@\x80\x83 `\x05\x90\x92R\x82 \x80T\x82Ta\x16w\x90a\x01\0\x90\x04c\xFF\xFF\xFF\xFF\x16\x82aZsV[\x95\x94PPPPPV[``a\x16\n`X` a*\x8EV[a\x16\x96a\x1A\x1FV[`\0`\x02`\rT`\xFF\x16`\x02\x81\x11\x15a\x16\xB1Wa\x16\xB1aW\x13V[\x03a\x16\xD5WP`\x01`\x01`\xA0\x1B\x03\x81\x16`\0\x90\x81R`\x0B` R`@\x90 Ta\x17DV[`\x01`\rT`\xFF\x16`\x02\x81\x11\x15a\x16\xEEWa\x16\xEEaW\x13V[\x03a\x17\x12WP`\x01`\x01`\xA0\x1B\x03\x81\x16`\0\x90\x81R`\x03` R`@\x90 Ta\x17DV[`@Q\x7F\x07\x8A=\xF4\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xA0\x1B\x03\x82\x16`\0\x90\x81R`\x0C` R`@\x90 T`\xFF\x16a\x18\"W`\x01`\x01`\xA0\x1B\x03\x82\x16`\0\x90\x81R`\x0C` R`@\x90 \x80T`\xFF\x19\x16`\x01\x17\x90Ua\x17\xA1`\xC0`\x01\x196\x90\x81\x015`\xF0\x1C\x90\x03\x015``\x1C\x90V[`@Q\x7F~\xEE(\x8D\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`\x01`\x01`\xA0\x1B\x03\x84\x81\x16`\x04\x83\x01R`$\x82\x01\x84\x90R\x91\x90\x91\x16\x90c~\xEE(\x8D\x90`D\x01`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a\x18\x06W`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x18\x1AW=`\0\x80>=`\0\xFD[PPPPPPV[\x80`\0\x03a\x18\\W`@Q\x7F\x17\xBF\xE5\xF7\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xA0\x1B\x03\x82\x16`\0\x90\x81R`\x0B` \x90\x81R`@\x80\x83 \x83\x90U`\x03\x90\x91R\x81 U6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\xC0\x015``\x1C`@Q\x7F\xF3\xFE\xF3\xA3\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`\x01`\x01`\xA0\x1B\x03\x84\x81\x16`\x04\x83\x01R`$\x82\x01\x84\x90R\x91\x90\x91\x16\x90c\xF3\xFE\xF3\xA3\x90`D\x01`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a\x18\xFAW`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x19\x0EW=`\0\x80>=`\0\xFD[PPPP`\0\x82`\x01`\x01`\xA0\x1B\x03\x16\x82`@Q`\0`@Q\x80\x83\x03\x81\x85\x87Z\xF1\x92PPP=\x80`\0\x81\x14a\x19_W`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=`\0` \x84\x01>a\x19dV[``\x91P[PP\x90P\x80a\x16\x1CW`@Q\x7F\x83\xE6\xCCk\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\x01`@Q\x80\x91\x03\x90\xFD[6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\xF4\x015``\x1C3\x14\x80a\x19\xD7WPa\x19\xC2a\x16!V[`\x01`\x01`\xA0\x1B\x03\x163`\x01`\x01`\xA0\x1B\x03\x16\x14[a\x1A\rW`@Q\x7F\xD3\x86\xEF>\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\x01`@Q\x80\x91\x03\x90\xFD[a\x1A\x19\x84\x84\x84\x84a*\xC2V[PPPPV[`\x02`\rT`\xFF\x16`\x02\x81\x11\x15a\x1A8Wa\x1A8aW\x13V[\x14\x80a\x1AZWP`\x01`\rT`\xFF\x16`\x02\x81\x11\x15a\x1AXWa\x1AXaW\x13V[\x14[\x15a\x1AaWV[`\0`\rT`\xFF\x16`\x02\x81\x11\x15a\x1AzWa\x1AzaW\x13V[\x14a\x1A\xB1W`@Q\x7F\x07\x8A=\xF4\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\x01`@Q\x80\x91\x03\x90\xFD[6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\xAC\x015``\x1C`\x01`\x01`\xA0\x1B\x03\x16c\\\x97Z\xBB`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x1B\x01W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x1B%\x91\x90aZ\x8AV[\x15a\x1B\\W`@Q\x7F7\x9A~\xD9\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\x01`@Q\x80\x91\x03\x90\xFD[`\0Th\x01\0\0\0\0\0\0\0\0\x90\x04g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\0\x03a\x1B\xB8W`@Q\x7F\xC1\x05&\n\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\x01`@Q\x80\x91\x03\x90\xFD[`\x006`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\xAC\x015``\x1C`@Q\x7F\x03\x14\xD2\xB3\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\x81R0`\x04\x82\x01R`\x01`\x01`\xA0\x1B\x03\x91\x90\x91\x16\x90c\x03\x14\xD2\xB3\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x1C,W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x1CP\x91\x90aZ\x8AV[\x90P\x80a\x1C\x89W`@Q\x7FHQ\xBD\x9B\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\x01`@Q\x80\x91\x03\x90\xFD[6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\xAC\x015``\x1C`@Q\x7F\x17\xCF!\xA9\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\x81R0`\x04\x82\x01R`\x01`\x01`\xA0\x1B\x03\x91\x90\x91\x16\x90c\x17\xCF!\xA9\x90`$\x01`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a\x1C\xF8W`\0\x80\xFD[PZ\xF1\x92PPP\x80\x15a\x1D\tWP`\x01[P`\x006`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\xAC\x015``\x1C`@Q\x7FIk\x9C\x16\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\x81R0`\x04\x82\x01R`\x01`\x01`\xA0\x1B\x03\x91\x90\x91\x16\x90cIk\x9C\x16\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x1D~W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x1D\xA2\x91\x90aZ\x8AV[\x90P\x80\x15a\x1D\xBCW`\r\x80T`\xFF\x19\x16`\x01\x17\x90Ua\x1D\xCAV[`\r\x80T`\xFF\x19\x16`\x02\x17\x90U[`\rT`@Q\x7F\x99\x08\xEA\xAC\x06E\xDF\x9D\x07\x04\xD0j\xDC\x9E\x073|\x95\x1D\xE2\xF0k_(6\x15\x1DH\xD5\xE4r/\x91a\x1E\x01\x91`\xFF\x90\x91\x16\x90aWJV[`@Q\x80\x91\x03\x90\xA1PPV[a\x16\x1C\x83\x83\x83`\0a\x19\x9FV[a\x1E\"a4EV[6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\xF4\x015``\x1C2\x14a\x1EmW`@Q\x7F\xD3\x86\xEF>\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\x01`@Q\x80\x91\x03\x90\xFD[V[6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`T\x015`\xE0\x1C\x90V[`\0\x80`\0T`\x01`\x80\x1B\x90\x04`\xFF\x16`\x02\x81\x11\x15a\x1E\xA6Wa\x1E\xA6aW\x13V[\x14a\x1E\xC4W`@Qc\x06\x7F\xE1\x95`\xE4\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0`\x02\x83\x81T\x81\x10a\x1E\xD9Wa\x1E\xD9aZ\x15V[`\0\x91\x82R` \x82 `\x05\x90\x91\x02\x01\x80T\x90\x92Pc\xFF\xFF\xFF\xFF\x90\x81\x16\x14a\x1F?W\x81T`\x02\x80T\x90\x91c\xFF\xFF\xFF\xFF\x16\x90\x81\x10a\x1F\x17Wa\x1F\x17aZ\x15V[\x90`\0R` `\0 \x90`\x05\x02\x01`\x04\x01`\x10\x90T\x90a\x01\0\n\x90\x04`\x01`\x01`\x80\x1B\x03\x16\x90P[`\x04\x82\x01T`\0\x90a\x1Fj\x90`\x01`\x80\x1B\x90\x04g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90V[a\x1F~\x90g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16BaZsV[a\x1F\x94a\x1F]\x84`\x01`\x01`\x80\x1B\x03\x16`@\x1C\x90V[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a\x1F\xA8\x91\x90aZAV[\x90Pg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x11a\x1F\xF5W\x80a\x16wV[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x95\x94PPPPPV[`\0\x80a \x9C\x83`\x01`\x01`\x80\x1B\x03\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1Fc\x07\xC4\xAC\xDD`\xE0\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\xFF\x16\x90P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81\x11\x15a \xFBW`@Q\x7FV\xF5{+\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\x01`@Q\x80\x91\x03\x90\xFD[d.\x90\xED\xD0\0b\x06\x1A\x80c\x11\xE1\xA3\0`\0a!\x16\x83\x83aZ\xBDV[\x90Pg\r\xE0\xB6\xB3\xA7d\0\0`\0a!M\x82\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0aZ\xD1V[\x90P`\0a!ka!fg\r\xE0\xB6\xB3\xA7d\0\0\x86aZ\xD1V[a<\xC6V[\x90P`\0a!y\x84\x84a?\x18V[\x90P`\0a!\x87\x83\x83a?gV[\x90P`\0a!\x94\x82a?\x95V[\x90P`\0a!\xB3\x82a!\xAEg\r\xE0\xB6\xB3\xA7d\0\0\x8FaZ\xD1V[aA}V[\x90P`\0a!\xC1\x8B\x83a?gV[\x90Pa!\xCD\x81\x8DaZ\xD1V[\x9F\x9EPPPPPPPPPPPPPPPV[`\x02\x81\x81T\x81\x10a!\xF0W`\0\x80\xFD[`\0\x91\x82R` \x90\x91 `\x05\x90\x91\x02\x01\x80T`\x01\x82\x01T`\x02\x83\x01T`\x03\x84\x01T`\x04\x90\x94\x01Tc\xFF\xFF\xFF\xFF\x84\x16\x95Pd\x01\0\0\0\0\x90\x93\x04`\x01`\x01`\xA0\x1B\x03\x90\x81\x16\x94\x92\x16\x92`\x01`\x01`\x80\x1B\x03\x91\x82\x16\x92\x91\x80\x82\x16\x91`\x01`\x80\x1B\x90\x04\x16\x87V[`\0`\x02`\rT`\xFF\x16`\x02\x81\x11\x15a\"oWa\"oaW\x13V[\x03a\"\x90WP`\x01`\x01`\xA0\x1B\x03\x16`\0\x90\x81R`\x0B` R`@\x90 T\x90V[P`\x01`\x01`\xA0\x1B\x03\x16`\0\x90\x81R`\x03` R`@\x90 T\x90V[6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\xF4\x015``\x1C3\x14\x80a\"\xE4WPa\"\xCFa\x16!V[`\x01`\x01`\xA0\x1B\x03\x163`\x01`\x01`\xA0\x1B\x03\x16\x14[a#\x1AW`@Q\x7F\xD3\x86\xEF>\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\x01`@Q\x80\x91\x03\x90\xFD[a\x18\x1A\x86\x86\x86\x86\x86\x86aA\xB7V[`\0\x80T`\x01`\x80\x1B\x90\x04`\xFF\x16`\x02\x81\x11\x15a#GWa#GaW\x13V[\x14a#eW`@Qc\x06\x7F\xE1\x95`\xE4\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0\x80`\0\x80a#t\x86aF\xEBV[\x93P\x93P\x93P\x93P`\0a#\x8A\x85\x85\x85\x85aJDV[\x90P`\x006`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\x98\x015``\x1C`\x01`\x01`\xA0\x1B\x03\x16c}\xC0\xD1\xD0`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a#\xDEW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a$\x02\x91\x90aZ\xF0V[\x90P`\x01\x89\x03a$\xCFW`\x01`\x01`\xA0\x1B\x03\x81\x16cR\xF0\xF3\xAD\x8A\x84a$36`\x01\x19\x81\x015`\xF0\x1C\x90\x03`4\x015\x90V[`@Q\x7F\xFF\xFF\xFF\xFF\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`\xE0\x86\x90\x1B\x16\x81R`\x04\x81\x01\x93\x90\x93R`$\x83\x01\x91\x90\x91R`D\x82\x01R` `d\x82\x01R`\x84\x81\x01\x8A\x90R`\xA4\x01[` `@Q\x80\x83\x03\x81`\0\x87Z\xF1\x15\x80\x15a$\xA5W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a$\xC9\x91\x90a[\rV[Pa\x13\xF6V[`\x02\x89\x03a$\xEEW`\x01`\x01`\xA0\x1B\x03\x81\x16cR\xF0\xF3\xAD\x8A\x84\x89a$3V[`\x03\x89\x03a%\rW`\x01`\x01`\xA0\x1B\x03\x81\x16cR\xF0\xF3\xAD\x8A\x84\x87a$3V[`\x04\x89\x03a&BW`\0a%J`\x01`\x01`\x80\x1B\x03\x85\x16\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0aJ\xE3V[`\tTa%W\x91\x90aZAV[a%b\x90`\x01aZAV[\x90P6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`X\x015\x81\x10a%\x8FW6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`X\x015a%\x91V[\x80[\x90P`\x01`\x01`\xA0\x1B\x03\x82\x16cR\xF0\xF3\xAD\x8B\x85`@Q`\xE0\x84\x90\x1B\x7F\xFF\xFF\xFF\xFF\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\x16\x81R`\x04\x81\x01\x92\x90\x92R`$\x82\x01R`\xC0\x84\x90\x1B`D\x82\x01R`\x08`d\x82\x01R`\x84\x81\x01\x8B\x90R`\xA4\x01` `@Q\x80\x83\x03\x81`\0\x87Z\xF1\x15\x80\x15a&\x17W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a&;\x91\x90a[\rV[PPa\x13\xF6V[`\x05\x89\x03a&\xBDW`@Q\x7FR\xF0\xF3\xAD\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\x81\x01\x8A\x90R`$\x81\x01\x83\x90R6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\xD4\x015`\xC0\x1B`D\x82\x01R`\x08`d\x82\x01R`\x84\x81\x01\x88\x90R`\x01`\x01`\xA0\x1B\x03\x82\x16\x90cR\xF0\xF3\xAD\x90`\xA4\x01a$\x86V[`@Q\x7F\xFF\x13~e\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\x01`@Q\x80\x91\x03\x90\xFD[6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`T\x81\x015`\xE0\x1C\x90`\x14\x015``a'\x12a\x16\x80V[\x90P\x90\x91\x92V[`\0\x81`\0\x01Q\x82` \x01Q\x83`@\x01Q\x84``\x01Q`@Q` \x01a'X\x94\x93\x92\x91\x90\x93\x84R` \x84\x01\x92\x90\x92R`@\x83\x01R``\x82\x01R`\x80\x01\x90V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 \x90P\x91\x90PV[`@\x80Q\x80\x82\x01\x90\x91R`\0\x80\x82R` \x82\x01R\x81Q`\0\x03a'\xC4W`@Q\x7FZ\xB4X\xFB\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\x01`@Q\x80\x91\x03\x90\xFD[P`@\x80Q\x80\x82\x01\x90\x91R\x81Q\x81R` \x91\x82\x01\x91\x81\x01\x91\x90\x91R\x90V[```\0\x80`\0a'\xF2\x85aKxV[\x91\x94P\x92P\x90P`\x01\x81`\x01\x81\x11\x15a(\rWa(\raW\x13V[\x14a(DW`@Q\x7FK\x9Cj\xBE\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\x01`@Q\x80\x91\x03\x90\xFD[\x84Qa(P\x83\x85aZAV[\x14a(\x87W`@Q\x7F\\U7\xB8\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\x01`@Q\x80\x91\x03\x90\xFD[`@\x80Q` \x80\x82Ra\x04 \x82\x01\x90\x92R\x90\x81` \x01[`@\x80Q\x80\x82\x01\x90\x91R`\0\x80\x82R` \x82\x01R\x81R` \x01\x90`\x01\x90\x03\x90\x81a(\x9EW\x90PP\x93P`\0\x83[\x86Q\x81\x10\x15a)\x8CW`\0\x80a)\x11`@Q\x80`@\x01`@R\x80\x85\x8C`\0\x01Qa(\xF5\x91\x90aZsV[\x81R` \x01\x85\x8C` \x01Qa)\n\x91\x90aZAV[\x90RaKxV[P\x91P\x91P`@Q\x80`@\x01`@R\x80\x83\x83a)-\x91\x90aZAV[\x81R` \x01\x84\x8B` \x01Qa)B\x91\x90aZAV[\x81RP\x88\x85\x81Q\x81\x10a)WWa)WaZ\x15V[` \x90\x81\x02\x91\x90\x91\x01\x01Ra)m`\x01\x85aZAV[\x93Pa)y\x81\x83aZAV[a)\x83\x90\x84aZAV[\x92PPPa(\xCBV[P\x84RP\x91\x93\x92PPPV[```\0\x80`\0a)\xA8\x85aKxV[\x91\x94P\x92P\x90P`\0\x81`\x01\x81\x11\x15a)\xC3Wa)\xC3aW\x13V[\x14a)\xFAW`@Q\x7F\x1F\xF9\xB2\xE4\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\x01`@Q\x80\x91\x03\x90\xFD[a*\x04\x82\x84aZAV[\x85Q\x14a*=W`@Q\x7F\\U7\xB8\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\x01`@Q\x80\x91\x03\x90\xFD[a\x16w\x85` \x01Q\x84\x84aP\x16V[`\x02\x81\x01T`\x01`\x01`\xA0\x1B\x03\x83\x16`\0\x90\x81R`\x03` R`@\x81 \x80T`\x01`\x01`\x80\x1B\x03\x90\x93\x16\x92\x90\x91\x90a*\x85\x90\x84\x90aZAV[\x90\x91UPPPPV[`@Q\x81\x81R6`\x01\x19\x81\x015`\xF0\x1C\x90\x03\x82\x84\x82\x01` \x84\x017\x82` \x83\x01\x01`\0\x81R` \x81\x01`@RPP\x92\x91PPV[`\0\x80T`\x01`\x80\x1B\x90\x04`\xFF\x16`\x02\x81\x11\x15a*\xE1Wa*\xE1aW\x13V[\x14a*\xFFW`@Qc\x06\x7F\xE1\x95`\xE4\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0`\x02\x84\x81T\x81\x10a+\x14Wa+\x14aZ\x15V[`\0\x91\x82R` \x91\x82\x90 `@\x80Q`\xE0\x81\x01\x82R`\x05\x90\x93\x02\x90\x91\x01\x80Tc\xFF\xFF\xFF\xFF\x81\x16\x84R`\x01`\x01`\xA0\x1B\x03d\x01\0\0\0\0\x90\x91\x04\x81\x16\x94\x84\x01\x94\x90\x94R`\x01\x81\x01T\x90\x93\x16\x90\x82\x01R`\x02\x82\x01T`\x01`\x01`\x80\x1B\x03\x90\x81\x16``\x83\x01R`\x03\x83\x01T`\x80\x83\x01\x81\x90R`\x04\x90\x93\x01T\x80\x82\x16`\xA0\x84\x01R`\x01`\x80\x1B\x90\x04\x16`\xC0\x82\x01R\x91P\x85\x14a+\xD8W`@Q\x7F0\x14\x032\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\x01`@Q\x80\x91\x03\x90\xFD[`\xA0\x81\x01Q`\0\x83\x15`\x01`\x01`\x80\x1B\x03\x83\x16\x17`\x01\x1B\x90P`\0a,m\x82`\x01`\x01`\x80\x1B\x03\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1Fc\x07\xC4\xAC\xDD`\xE0\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\xFF\x16\x90P\x86\x15\x80a,\xA8WPa,\xA5\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x02aZAV[\x81\x14[\x80\x15a,\xB2WP\x84\x15[\x15a,\xE9W`@Q\x7F\xA4&7\xBC\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\x01`@Q\x80\x91\x03\x90\xFD[`\0Tr\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16\x80\x15a-\x0FWP\x86\x15[\x15a-FW`@Q\x7F\x0E\xA2\xE7R\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\x01`@Q\x80\x91\x03\x90\xFD[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81\x11\x15a-\xA0W`@Q\x7FV\xF5{+\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\x01`@Q\x80\x91\x03\x90\xFD[a-\xCB\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01aZAV[\x81\x03a-\xDDWa-\xDD\x86\x88\x85\x88aP\xABV[4a-\xE7\x83a \x1FV[\x14a.\x1EW`@Q\x7F\x86 \xAA\x19\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\x01`@Q\x80\x91\x03\x90\xFD[`\0a.)\x88a\x1E\x85V[\x90Pg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81\x16\x90\x82\x16\x03a.\x91W`@Q\x7F3\x81\xD1\x14\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\x01`@Q\x80\x91\x03\x90\xFD[`\0a.\xBE`\x01\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0aZsV[\x83\x03a/\xD4W6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\x98\x015``\x1C`\x01`\x01`\xA0\x1B\x03\x16c}\xC0\xD1\xD0`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a/\x14W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a/8\x91\x90aZ\xF0V[`\x01`\x01`\xA0\x1B\x03\x16c\xF3\xF4\x80\xD9`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a/uW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a/\x99\x91\x90a[\rV[a/\xCD\x90\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a[&V[\x90Pa0gV[a/\xFF`\x01\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0aZsV[\x83\x03a0:Wa/\xCD\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\x02a[RV[P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16[a0\x9B\x81\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a[\x82V[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a0\xB6\x83g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90V[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x11\x15a0\xFDWa0\xFA\x81\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a[\x82V[\x91P[`\0`@\x83\x90\x1BB\x17`\0\x8A\x81R`\x80\x87\x90\x1B`\x01`\x01`\x80\x1B\x03\x8D\x16\x17` R`@\x81 \x91\x92P\x90`\0\x81\x81R`\x04` R`@\x90 T\x90\x91P`\xFF\x16\x15a1rW`@Q\x7F\x80I~;\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x04`\0\x83\x81R` \x01\x90\x81R` \x01`\0 `\0a\x01\0\n\x81T\x81`\xFF\x02\x19\x16\x90\x83\x15\x15\x02\x17\x90UP`\x02`@Q\x80`\xE0\x01`@R\x80\x8Dc\xFF\xFF\xFF\xFF\x16\x81R` \x01`\0`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x013`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x014`\x01`\x01`\x80\x1B\x03\x16\x81R` \x01\x8C\x81R` \x01\x88`\x01`\x01`\x80\x1B\x03\x16\x81R` \x01\x84`\x01`\x01`\x80\x1B\x03\x16\x81RP\x90\x80`\x01\x81T\x01\x80\x82U\x80\x91PP`\x01\x90\x03\x90`\0R` `\0 \x90`\x05\x02\x01`\0\x90\x91\x90\x91\x90\x91P`\0\x82\x01Q\x81`\0\x01`\0a\x01\0\n\x81T\x81c\xFF\xFF\xFF\xFF\x02\x19\x16\x90\x83c\xFF\xFF\xFF\xFF\x16\x02\x17\x90UP` \x82\x01Q\x81`\0\x01`\x04a\x01\0\n\x81T\x81`\x01`\x01`\xA0\x1B\x03\x02\x19\x16\x90\x83`\x01`\x01`\xA0\x1B\x03\x16\x02\x17\x90UP`@\x82\x01Q\x81`\x01\x01`\0a\x01\0\n\x81T\x81`\x01`\x01`\xA0\x1B\x03\x02\x19\x16\x90\x83`\x01`\x01`\xA0\x1B\x03\x16\x02\x17\x90UP``\x82\x01Q\x81`\x02\x01`\0a\x01\0\n\x81T\x81`\x01`\x01`\x80\x1B\x03\x02\x19\x16\x90\x83`\x01`\x01`\x80\x1B\x03\x16\x02\x17\x90UP`\x80\x82\x01Q\x81`\x03\x01U`\xA0\x82\x01Q\x81`\x04\x01`\0a\x01\0\n\x81T\x81`\x01`\x01`\x80\x1B\x03\x02\x19\x16\x90\x83`\x01`\x01`\x80\x1B\x03\x16\x02\x17\x90UP`\xC0\x82\x01Q\x81`\x04\x01`\x10a\x01\0\n\x81T\x81`\x01`\x01`\x80\x1B\x03\x02\x19\x16\x90\x83`\x01`\x01`\x80\x1B\x03\x16\x02\x17\x90UPPP`\x05`\0\x8C\x81R` \x01\x90\x81R` \x01`\0 `\x01`\x02\x80T\x90Pa3i\x91\x90aZsV[\x81T`\x01\x81\x01\x83U`\0\x92\x83R` \x80\x84 \x90\x91\x01\x91\x90\x91U3\x82R`\x0B\x90R`@\x81 \x80T4\x92\x90a3\x9D\x90\x84\x90aZAV[\x90\x91UPP6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\xC0\x015``\x1C`\x01`\x01`\xA0\x1B\x03\x16c\xD0\xE3\r\xB04`@Q\x82c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01`\0`@Q\x80\x83\x03\x81\x85\x88\x80;\x15\x80\x15a3\xEFW`\0\x80\xFD[PZ\xF1\x15\x80\x15a4\x03W=`\0\x80>=`\0\xFD[PP`@Q3\x93P\x8D\x92P\x8E\x91P\x7F\x9B2Et\x0E\xC3\xB1U\t\x8AU\xBE\x84\x95zM\xA1>\xAF\x7F\x14\xA8\xBCoS\x12l\x0B\x93P\xF2\xBE\x90`\0\x90\xA4PPPPPPPPPPPPV[`\0Tq\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16\x15a4\x97W`@Q\x7F\r\xC1I\xF0\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\x01`@Q\x80\x91\x03\x90\xFD[a4\x9FaR:V[6\x14a4\xD7W`@Q\x7F\x98$\xBD\xAB\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\x01`@Q\x80\x91\x03\x90\xFD[`\0\x806`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\xAC\x015``\x1C`\x01`\x01`\xA0\x1B\x03\x16c\xD8>\xF2g`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01`@\x80Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a5)W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a5M\x91\x90a[\xABV[\x90\x92P\x90P\x81a5\x89W`@Q\x7Fjk\xC3\xB2\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\x01`@Q\x80\x91\x03\x90\xFD[`@\x80Q\x80\x82\x01\x90\x91R\x82\x81R` \x01\x81\x90R`\x08\x82\x90U`\t\x81\x90U\x806`\x01\x19\x81\x015`\xF0\x1C\x90\x03`X\x015\x11a6\x04W`@Q\x7F\xF4\x029\xDB\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\x81R6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\x14\x015`\x04\x82\x01R`$\x01[`@Q\x80\x91\x03\x90\xFD[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\x98\x015``\x1C`\x01`\x01`\xA0\x1B\x03\x16c}\xC0\xD1\xD0`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a6]W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a6\x81\x91\x90aZ\xF0V[`\x01`\x01`\xA0\x1B\x03\x16c\xF3\xF4\x80\xD9`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a6\xBEW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a6\xE2\x91\x90a[\rV[\x11\x15a7\x1AW`@Q\x7F\xB4\xE1$3\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\x01`@Q\x80\x91\x03\x90\xFD[`\0a7Q\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\x02aZ\xD1V[\x90P`\x006`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\x98\x015``\x1C`\x01`\x01`\xA0\x1B\x03\x16c}\xC0\xD1\xD0`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a7\xA5W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a7\xC9\x91\x90aZ\xF0V[`\x01`\x01`\xA0\x1B\x03\x16c\xF3\xF4\x80\xD9`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a8\x06W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a8*\x91\x90a[\rV[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a8e\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90V[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a8y\x91\x90aZAV[\x90P`\0a8\x87\x83\x83aROV[\x90Pg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a8\xCBW`@Q\x7F\x8Dw\xEC\xAC\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\x01`@Q\x80\x91\x03\x90\xFD[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x11\x15a9CW`@Q\x7F\x8Dw\xEC\xAC\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\x01`@Q\x80\x91\x03\x90\xFD[`@\x80Q`\xE0\x81\x01\x82Rc\xFF\xFF\xFF\xFF\x80\x82R`\0` \x80\x84\x01\x82\x81R6`\x01\x19\x81\x015`\xF0\x1C\x90\x03\x805``\x90\x81\x1C\x87\x89\x01\x81\x81R`\x01`\x01`\x80\x1B\x034\x81\x81\x16\x94\x8B\x01\x94\x85R`\x14\x90\x95\x015`\x80\x8B\x01\x90\x81R`\x01`\xA0\x8C\x01\x81\x81RB\x84\x16`\xC0\x8E\x01\x90\x81R`\x02\x80T\x93\x84\x01\x81U\x8CR\x9CQ\x7F@W\x87\xFA\x12\xA8#\xE0\xF2\xB7c\x1C\xC4\x1B;\xA8\x82\x8B3!\xCA\x81\x11\x11\xFAu\xCD:\xA3\xBBZ\xCE`\x05\x90\x93\x02\x92\x83\x01\x80T\x9AQ\x91\x90\x9D\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x9A\x16\x99\x90\x99\x17d\x01\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x9A\x8B\x16\x02\x17\x90\x9BU\x92Q\x7F@W\x87\xFA\x12\xA8#\xE0\xF2\xB7c\x1C\xC4\x1B;\xA8\x82\x8B3!\xCA\x81\x11\x11\xFAu\xCD:\xA3\xBBZ\xCF\x84\x01\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x91\x90\x98\x16\x17\x90\x96U\x92Q\x7F@W\x87\xFA\x12\xA8#\xE0\xF2\xB7c\x1C\xC4\x1B;\xA8\x82\x8B3!\xCA\x81\x11\x11\xFAu\xCD:\xA3\xBBZ\xD0\x82\x01\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x91\x85\x16\x91\x90\x91\x17\x90U\x93Q\x7F@W\x87\xFA\x12\xA8#\xE0\xF2\xB7c\x1C\xC4\x1B;\xA8\x82\x8B3!\xCA\x81\x11\x11\xFAu\xCD:\xA3\xBBZ\xD1\x85\x01U\x95Q\x96Q\x96\x81\x16`\x01`\x80\x1B\x97\x90\x91\x16\x96\x90\x96\x02\x95\x90\x95\x17\x7F@W\x87\xFA\x12\xA8#\xE0\xF2\xB7c\x1C\xC4\x1B;\xA8\x82\x8B3!\xCA\x81\x11\x11\xFAu\xCD:\xA3\xBBZ\xD2\x90\x91\x01U\x81Tq\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x17\x82U\x91\x81R`\x0B\x90\x91R\x91\x82 \x80T\x91\x92\x90\x91a;\x84\x90\x84\x90aZAV[\x90\x91UPP6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\xC0\x015``\x1C`\x01`\x01`\xA0\x1B\x03\x16c\xD0\xE3\r\xB04`@Q\x82c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01`\0`@Q\x80\x83\x03\x81\x85\x88\x80;\x15\x80\x15a;\xD6W`\0\x80\xFD[PZ\xF1\x15\x80\x15a;\xEAW=`\0\x80>=`\0\xFD[PP`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\x16Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x17\x90UPa<-\x91Pa\x1Eo\x90PV[c\xFF\xFF\xFF\xFF\x166`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\xAC\x015``\x1C`\x01`\x01`\xA0\x1B\x03\x16c<\x9F9|`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a<\x83W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a<\xA7\x91\x90a[\xCFV[`\n\x80T`\xFF\x19\x16c\xFF\xFF\xFF\xFF\x92\x90\x92\x16\x92\x90\x92\x14\x17\x90UPPPPPV[`\x01`\x01`\x80\x1B\x03\x81\x11`\x07\x1B\x81\x81\x1Cg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x10`\x06\x1B\x17\x81\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x81\x81\x1Ca\xFF\xFF\x10`\x04\x1B\x17\x81\x81\x1C`\xFF\x10`\x03\x1B\x17`\0\x82\x13a=\x1CWc\x16\x15\xE68`\0R`\x04`\x1C\xFD[\x7F\xF8\xF9\xF9\xFA\xF9\xFD\xFA\xFB\xF9\xFD\xFC\xFD\xFA\xFB\xFC\xFE\xF9\xFA\xFD\xFA\xFC\xFC\xFB\xFE\xFA\xFA\xFC\xFB\xFF\xFF\xFF\xFFo\x84!\x08B\x10\x84!\x08\xCCc\x18\xC6\xDBmT\xBE\x83\x83\x1C\x1C`\x1F\x16\x1A\x18\x90\x81\x1B`\x9F\x90\x81\x1ClFWr\xB2\xBB\xBB_\x82K\x15 z0\x81\x01\x81\x02``\x90\x81\x1Dm\x03\x88\xEA\xA2t\x12\xD5\xAC\xA0&\x81]cn\x01\x82\x02\x81\x1Dm\r\xF9\x9A\xC5\x02\x03\x1B\xF9S\xEF\xF4r\xFD\xCC\x01\x82\x02\x81\x1Dm\x13\xCD\xFF\xB2\x9DQ\xD9\x93\"\xBD\xFF_\"\x11\x01\x82\x02\x81\x1Dm\n\x0Ft #\xDE\xF7\x83\xA3\x07\xA9\x86\x91.\x01\x82\x02\x81\x1Dm\x01\x92\r\x80C\xCA\x89\xB5#\x92S(NB\x01\x82\x02\x81\x1Dl\x0Bz\x86\xD77Th\xFA\xC6g\xA0\xA5'\x01l)P\x8EE\x85C\xD8\xAAM\xF2\xAB\xEEx\x83\x01\x83\x02\x82\x1Dm\x019`\x1A.\xFA\xBEq~`L\xBBH\x94\x01\x83\x02\x82\x1Dm\x02$\x7Fz{e\x942\x06I\xAA\x03\xAB\xA1\x01\x83\x02\x82\x1D\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFFs\xC0\xC7\x16\xA5\x94\xE0\rT\xE3\xC4\xCB\xC9\x01\x83\x02\x82\x1D\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFD\xC7\xB8\x8CB\x0ES\xA9\x89\x053\x12\x9Fo\x01\x83\x02\x90\x91\x1D\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFFF_\xDA'\xEBMc\xDE\xD4t\xE5\xF82\x01\x90\x91\x02\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF5\xF6\xAF\x8F{3\x96dO\x18\xE1W\x96\0\0\0\0\0\0\0\0\0\0\0\0\x01\x05q\x13@\xDA\xA0\xD5\xF7i\xDB\xA1\x91\\\xEFY\xF0\x81ZU\x06\x02\x91\x90\x03}\x02g\xA3l\x0C\x95\xB3\x97Z\xB3\xEE[ :v\x14\xA3\xF7Ss\xF0G\xD8\x03\xAE{f\x87\xF2\xB3\x02\x01}W\x11^G\x01\x8Cqw\xEE\xBF|\xD3p\xA35j\x1Bxc\0\x8AZ\xE8\x02\x8Cr\xB8\x86B\x84\x01`\xAE\x1D\x90V[`\0x\x12r]\xD1\xD2C\xAB\xA0\xE7_\xE6E\xCCHs\xF9\xE6Z\xFEh\x8C\x92\x8E\x1F!\x83\x11g\r\xE0\xB6\xB3\xA7d\0\0\x02\x15\x82\x02a?UWc|_H}`\0R`\x04`\x1C\xFD[Pg\r\xE0\xB6\xB3\xA7d\0\0\x91\x90\x91\x02\x04\x90V[`\0\x81`\0\x19\x04\x83\x11\x82\x02\x15a?\x85Wc\xBA\xC6^[`\0R`\x04`\x1C\xFD[Pg\r\xE0\xB6\xB3\xA7d\0\0\x91\x02\x04\x90V[`\0\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFD\xC0\xD0W\t%\xA4b\xD7\x82\x13a?\xC3W\x91\x90PV[h\x07U\xBFy\x8BJ\x1B\xF1\xE5\x82\x12a?\xE1Wc\xA3{\xFE\xC9`\0R`\x04`\x1C\xFD[e\x03x-\xAC\xE9\xD9`N\x83\x90\x1B\x05\x91P`\0``k\xB1r\x17\xF7\xD1\xCFy\xAB\xC9\xE3\xB3\x98\x84\x82\x1B\x05k\x80\0\0\0\0\0\0\0\0\0\0\0\x01\x90\x1Dk\xB1r\x17\xF7\xD1\xCFy\xAB\xC9\xE3\xB3\x98\x81\x02\x90\x93\x03\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xDB\xF3\xCC\xF1`M&4P\xF0*U\x04\x81\x01\x81\x02``\x90\x81\x1Dm\x02wYI\x91\xCF\xC8_n$a\x83|\xD9\x01\x82\x02\x81\x1D\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE5\xAD\xED\xAA\x1C\xB0\x95\xAF\x9EM\xA1\x0E6<\x01\x82\x02\x81\x1Dm\xB1\xBB\xB2\x01\xF4C\xCF\x96/\x1A\x1D=\xB4\xA5\x01\x82\x02\x81\x1D\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFD8\xDCw&\x08\xB0\xAEV\xCC\xE0\x12\x96\xC0\xEB\x01\x82\x02\x81\x1Dn\x05\x18\x0B\xB1G\x99\xABG\xA8\xA8\xCB*R}W\x01m\x02\xD1g W{\xD1\x9B\xF6\x14\x17o\xE9\xEAl\x10\xFEh\xE7\xFD7\xD0\0{q?vP\x84\x01\x84\x02\x83\x1D\x90\x81\x01\x90\x84\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE,i\x81,\xF0;\x07c\xFDEJ\x8F~\x01\x02\x90\x91\x1Dn\x05\x87\xF5\x03\xBBn\xA2\x9D%\xFC\xB7@\x19dP\x01\x90\x91\x02y\xD85\xEB\xBA\x82L\x98\xFB1\xB8;,\xA4\\\0\0\0\0\0\0\0\0\0\0\0\0\x01\x05t\x02\x9D\x9D\xC3\x85c\xC3.\\/m\xC1\x92\xEEp\xEFe\xF9\x97\x8A\xF3\x02`\xC3\x93\x90\x93\x03\x92\x90\x92\x1C\x92\x91PPV[`\0aA\xAEg\r\xE0\xB6\xB3\xA7d\0\0\x83aA\x95\x86a<\xC6V[aA\x9F\x91\x90a[\xF5V[aA\xA9\x91\x90a\\\xB1V[a?\x95V[\x90P[\x92\x91PPV[`\0\x80T`\x01`\x80\x1B\x90\x04`\xFF\x16`\x02\x81\x11\x15aA\xD6WaA\xD6aW\x13V[\x14aA\xF4W`@Qc\x06\x7F\xE1\x95`\xE4\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0`\x02\x87\x81T\x81\x10aB\tWaB\taZ\x15V[`\0\x91\x82R` \x82 `\x05\x91\x90\x91\x02\x01`\x04\x81\x01T\x90\x92P`\x01`\x01`\x80\x1B\x03\x16\x90\x87\x15\x82\x17`\x01\x1B\x90PaB_\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01aZAV[aB\xD9\x82`\x01`\x01`\x80\x1B\x03\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1Fc\x07\xC4\xAC\xDD`\xE0\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\xFF\x16\x14aC\x13W`@Q\x7F_S\xDD\x98\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\x01`@Q\x80\x91\x03\x90\xFD[`\0\x80\x89\x15aC\xDEWaCf\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0aZsV[`\x01\x90\x1BaC|\x84`\x01`\x01`\x80\x1B\x03\x16aRfV[`\x01`\x01`\x80\x1B\x03\x16aC\x8F\x91\x90a\\\xFBV[\x15aC\xC3WaC\xBAaC\xAB`\x01`\x01`\x01`\x80\x1B\x03\x87\x16a]\x0FV[\x86Tc\xFF\xFF\xFF\xFF\x16`\0aR\xECV[`\x03\x01TaC\xD4V[6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`x\x015[\x91P\x84\x90PaC\xFFV[`\x03\x85\x01T\x91PaC\xFCaC\xAB`\x01`\x01`\x80\x1B\x03\x86\x16`\x01a]/V[\x90P[`\x08\x82\x90\x1B`\x08\x8A\x8A`@QaD\x16\x92\x91\x90aZ\x05V[`@Q\x80\x91\x03\x90 \x90\x1B\x14aDWW`@Q\x7FieP\xFF\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\x01`@Q\x80\x91\x03\x90\xFD[`\0aDb\x8CaS\xB5V[\x90P`\0aDq\x83`\x03\x01T\x90V[`@Q\x7F\xE1L\xED2\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\x81R6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\x98\x015``\x1C\x90c\xE1L\xED2\x90aD\xC7\x90\x8F\x90\x8F\x90\x8F\x90\x8F\x90\x8A\x90`\x04\x01a]\x9AV[` `@Q\x80\x83\x03\x81`\0\x87Z\xF1\x15\x80\x15aD\xE6W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90aE\n\x91\x90a[\rV[`\x04\x85\x01T\x91\x14\x91P`\0\x90`\x02\x90aE\x93\x90`\x01`\x01`\x80\x1B\x03\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1Fc\x07\xC4\xAC\xDD`\xE0\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[aF\r\x89`\x01`\x01`\x80\x1B\x03\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1Fc\x07\xC4\xAC\xDD`\xE0\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[aF\x17\x91\x90a]\xD4V[aF!\x91\x90a]\xF7V[`\xFF\x16\x15\x90P\x81\x15\x15\x81\x03aFbW`@Q\x7F\xFBN@\xDD\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\x01`@Q\x80\x91\x03\x90\xFD[\x87Td\x01\0\0\0\0\x90\x04`\x01`\x01`\xA0\x1B\x03\x16\x15aF\xACW`@Q\x7F\x90q\xE6\xAF\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\x01`@Q\x80\x91\x03\x90\xFD[PP\x85T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xFF\xFF\xFF\xFF\x163d\x01\0\0\0\0\x02\x17\x90\x95UPPPPPPPPPPPV[`\0\x80`\0\x80`\0\x85\x90P`\0`\x02\x82\x81T\x81\x10aG\x0BWaG\x0BaZ\x15V[`\0\x91\x82R` \x90\x91 `\x04`\x05\x90\x92\x02\x01\x90\x81\x01T\x90\x91P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90aG\xC0\x90`\x01`\x01`\x80\x1B\x03\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1Fc\x07\xC4\xAC\xDD`\xE0\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\xFF\x16\x11aG\xFAW`@Q\x7F\xB3K\\\"\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\x01`@Q\x80\x91\x03\x90\xFD[`\0\x81[`\x04\x83\x01T\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90aH\x9F\x90`\x01`\x01`\x80\x1B\x03\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1Fc\x07\xC4\xAC\xDD`\xE0\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\xFF\x16\x92P\x82\x11\x15aI\x14W\x82Tc\xFF\xFF\xFF\xFF\x16aH\xDE\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01aZAV[\x83\x03aH\xE8W\x83\x91P[`\x02\x81\x81T\x81\x10aH\xFBWaH\xFBaZ\x15V[\x90`\0R` `\0 \x90`\x05\x02\x01\x93P\x80\x94PPaG\xFEV[`\x04\x81\x81\x01T\x90\x84\x01T`\x01`\x01`\x80\x1B\x03\x91\x82\x16\x91\x16`\0\x81`\x01`\x01`\x80\x1B\x03\x16aIYaIM\x85`\x01`\x01`\x80\x1B\x03\x16`\x01\x1C\x90V[`\x01`\x01`\x80\x1B\x03\x16\x90V[`\x01`\x01`\x80\x1B\x03\x16\x14\x90P\x80\x15aI\xF2W`\0aI\x7F\x83`\x01`\x01`\x80\x1B\x03\x16aRfV[`\x01`\x01`\x80\x1B\x03\x16\x11\x15aI\xCFW`\0aI\xAFaI\xA7`\x01`\x01`\x01`\x80\x1B\x03\x86\x16a]\x0FV[\x89`\x01aR\xECV[`\x03\x81\x01T`\x04\x90\x91\x01T\x90\x9CP`\x01`\x01`\x80\x1B\x03\x16\x9APaI\xD5\x90PV[`\x08T\x9AP[`\x03\x86\x01T`\x04\x87\x01T\x90\x99P`\x01`\x01`\x80\x1B\x03\x16\x97PaJ6V[`\0aJ\x0BaI\xA7`\x01`\x01`\x80\x1B\x03\x85\x16`\x01a]/V[`\x03\x80\x89\x01T`\x04\x80\x8B\x01T\x92\x84\x01T\x93\x01T\x90\x9EP`\x01`\x01`\x80\x1B\x03\x91\x82\x16\x9DP\x91\x9BP\x16\x98PP[PPPPPPP\x91\x93P\x91\x93V[`\0`\x01`\x01`\x80\x1B\x03\x84\x16\x15aJ\x9FW`@\x80Q` \x81\x01\x87\x90R`\x01`\x01`\x80\x1B\x03\x80\x87\x16\x92\x82\x01\x92\x90\x92R``\x81\x01\x85\x90R\x90\x83\x16`\x80\x82\x01R`\xA0\x01`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 a\x16wV[\x82\x82`@Q` \x01aJ\xC4\x92\x91\x90\x91\x82R`\x01`\x01`\x80\x1B\x03\x16` \x82\x01R`@\x01\x90V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 \x95\x94PPPPPV[`\0\x80aKW\x84~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1Fc\x07\xC4\xAC\xDD`\xE0\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\xFF\x16\x90P\x80\x83\x03`\x01\x84\x1B`\x01\x80\x83\x1B\x03\x86\x83\x1B\x17\x03\x92PPP\x92\x91PPV[`\0\x80`\0\x83`\0\x01Q`\0\x03aK\xBBW`@Q\x7FZ\xB4X\xFB\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\x01`@Q\x80\x91\x03\x90\xFD[` \x84\x01Q\x80Q`\0\x1A`\x7F\x81\x11aK\xE0W`\0`\x01`\0\x94P\x94P\x94PPPaP\x0FV[`\xB7\x81\x11aL\xF6W`\0aK\xF5`\x80\x83aZsV[\x90P\x80\x87`\0\x01Q\x11aL4W`@Q\x7Ff\xC9D\x85\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01\x83\x81\x01Q\x7F\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x90\x82\x14\x80\x15aL\xACWP\x7F\x80\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x7F\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x82\x16\x10[\x15aL\xE3W`@Q\x7F\xBA\xBB\x01\xDD\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\x01`@Q\x80\x91\x03\x90\xFD[P`\x01\x95P\x93P`\0\x92PaP\x0F\x91PPV[`\xBF\x81\x11aNTW`\0aM\x0B`\xB7\x83aZsV[\x90P\x80\x87`\0\x01Q\x11aMJW`@Q\x7Ff\xC9D\x85\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01\x83\x01Q\x7F\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16`\0\x81\x90\x03aM\xACW`@Q\x7F\xBA\xBB\x01\xDD\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01\x84\x01Q`\x08\x83\x02a\x01\0\x03\x1C`7\x81\x11aM\xF4W`@Q\x7F\xBA\xBB\x01\xDD\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\x01`@Q\x80\x91\x03\x90\xFD[aM\xFE\x81\x84aZAV[\x89Q\x11aN7W`@Q\x7Ff\xC9D\x85\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\x01`@Q\x80\x91\x03\x90\xFD[aNB\x83`\x01aZAV[\x97P\x95P`\0\x94PaP\x0F\x93PPPPV[`\xF7\x81\x11aN\xB9W`\0aNi`\xC0\x83aZsV[\x90P\x80\x87`\0\x01Q\x11aN\xA8W`@Q\x7Ff\xC9D\x85\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01\x95P\x93P\x84\x92PaP\x0F\x91PPV[`\0aN\xC6`\xF7\x83aZsV[\x90P\x80\x87`\0\x01Q\x11aO\x05W`@Q\x7Ff\xC9D\x85\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01\x83\x01Q\x7F\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16`\0\x81\x90\x03aOgW`@Q\x7F\xBA\xBB\x01\xDD\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01\x84\x01Q`\x08\x83\x02a\x01\0\x03\x1C`7\x81\x11aO\xAFW`@Q\x7F\xBA\xBB\x01\xDD\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\x01`@Q\x80\x91\x03\x90\xFD[aO\xB9\x81\x84aZAV[\x89Q\x11aO\xF2W`@Q\x7Ff\xC9D\x85\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\x01`@Q\x80\x91\x03\x90\xFD[aO\xFD\x83`\x01aZAV[\x97P\x95P`\x01\x94PaP\x0F\x93PPPPV[\x91\x93\x90\x92PV[``\x81g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15aP1WaP1aY{V[`@Q\x90\x80\x82R\x80`\x1F\x01`\x1F\x19\x16` \x01\x82\x01`@R\x80\x15aP[W` \x82\x01\x81\x806\x837\x01\x90P[P\x90P\x81\x15aP\xA4W`\0aPp\x84\x86aZAV[\x90P` \x82\x01`\0[\x84\x81\x10\x15aP\x91W\x82\x81\x01Q\x82\x82\x01R` \x01aPyV[\x84\x81\x11\x15aP\xA0W`\0\x85\x83\x01R[PPP[\x93\x92PPPV[`\0aP\xC1`\x01`\x01`\x80\x1B\x03\x84\x16`\x01a]/V[\x90P`\0aP\xD1\x82\x86`\x01aR\xECV[\x90P`\0\x86\x90\x1A\x83\x80aQ\x9BWPaQ\n`\x02\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\\\xFBV[`\x04\x83\x01T`\x02\x90aQ\x8C\x90`\x01`\x01`\x80\x1B\x03\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1Fc\x07\xC4\xAC\xDD`\xE0\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[aQ\x96\x91\x90a]\xF7V[`\xFF\x16\x14[\x15aQ\xF3W`\xFF\x81\x16`\x01\x14\x80aQ\xB5WP`\xFF\x81\x16`\x02\x14[aQ\xEEW`@Q\x7F\xF4\x029\xDB\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\x81\x01\x88\x90R`$\x01a5\xFBV[aR1V[`\xFF\x81\x16\x15aR1W`@Q\x7F\xF4\x029\xDB\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\x81\x01\x88\x90R`$\x01a5\xFBV[PPPPPPPV[`\0aRDaS\xE4V[a\x16\n\x90`\x06aZAV[`\0\x81\x83\x10\x15aR_W\x81aA\xAEV[P\x90\x91\x90PV[`\0\x80aR\xDA\x83~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1Fc\x07\xC4\xAC\xDD`\xE0\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\x01`\xFF\x91\x90\x91\x16\x1B\x90\x92\x03\x92\x91PPV[`\0\x80\x82aS,WaS'`\x01`\x01`\x80\x1B\x03\x86\x16\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0aS\xF2V[aS>V[aS>\x85`\x01`\x01`\x80\x1B\x03\x16aU1V[\x90P`\x02\x84\x81T\x81\x10aSSWaSSaZ\x15V[\x90`\0R` `\0 \x90`\x05\x02\x01\x91P[`\x04\x82\x01T`\x01`\x01`\x80\x1B\x03\x82\x81\x16\x91\x16\x14aS\xADW\x81T`\x02\x80T\x90\x91c\xFF\xFF\xFF\xFF\x16\x90\x81\x10aS\x98WaS\x98aZ\x15V[\x90`\0R` `\0 \x90`\x05\x02\x01\x91PaSdV[P\x93\x92PPPV[`\0\x80`\0\x80`\0aS\xC6\x86aF\xEBV[\x93P\x93P\x93P\x93PaS\xDA\x84\x84\x84\x84aJDV[\x96\x95PPPPPPV[`\0a\x16\n`\xF4`(aZAV[`\0\x81aTo\x84`\x01`\x01`\x80\x1B\x03\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1Fc\x07\xC4\xAC\xDD`\xE0\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\xFF\x16\x11aT\x85Wc\xB3K\\\"`\0R`\x04`\x1C\xFD[aT\x8E\x83aU1V[\x90P\x81aU\x0B\x82`\x01`\x01`\x80\x1B\x03\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1Fc\x07\xC4\xAC\xDD`\xE0\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\xFF\x16\x11aA\xB1WaA\xAEaU!\x83`\x01aZAV[`\x01`\x01`\x80\x1B\x03\x83\x16\x90aU\xBDV[`\0\x81\x19`\x01\x83\x01\x16\x81aU\xAC\x82~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1Fc\x07\xC4\xAC\xDD`\xE0\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\xFF\x16\x93\x90\x93\x1C\x80\x15\x17\x93\x92PPPV[`\0\x80aV1\x84~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1Fc\x07\xC4\xAC\xDD`\xE0\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\xFF\x16\x90P\x80\x83\x03`\x01\x80\x82\x1B\x03\x85\x82\x1B\x17\x92PPP\x92\x91PPV[`\0\x80\x83`\x1F\x84\x01\x12aV_W`\0\x80\xFD[P\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15aVwW`\0\x80\xFD[` \x83\x01\x91P\x83` \x82\x85\x01\x01\x11\x15aV\x8FW`\0\x80\xFD[\x92P\x92\x90PV[`\0\x80`\0\x83\x85\x03`\xA0\x81\x12\x15aV\xACW`\0\x80\xFD[`\x80\x81\x12\x15aV\xBAW`\0\x80\xFD[P\x83\x92P`\x80\x84\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15aV\xD8W`\0\x80\xFD[aV\xE4\x86\x82\x87\x01aVMV[\x94\x97\x90\x96P\x93\x94PPPPV[`\0\x80`@\x83\x85\x03\x12\x15aW\x04W`\0\x80\xFD[PP\x805\x92` \x90\x91\x015\x91PV[cNH{q`\xE0\x1B`\0R`!`\x04R`$`\0\xFD[`\x03\x81\x10aWGWcNH{q`\xE0\x1B`\0R`!`\x04R`$`\0\xFD[PV[` \x81\x01aWW\x83aW)V[\x91\x90R\x90V[`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14aWGW`\0\x80\xFD[`\0` \x82\x84\x03\x12\x15aW\x84W`\0\x80\xFD[\x815aP\xA4\x81aW]V[`\0\x80`\0``\x84\x86\x03\x12\x15aW\xA4W`\0\x80\xFD[PP\x815\x93` \x83\x015\x93P`@\x90\x92\x015\x91\x90PV[`\0\x81Q\x80\x84R`\0[\x81\x81\x10\x15aW\xE1W` \x81\x85\x01\x81\x01Q\x86\x83\x01\x82\x01R\x01aW\xC5V[\x81\x81\x11\x15aW\xF3W`\0` \x83\x87\x01\x01R[P`\x1F\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x92\x90\x92\x01` \x01\x92\x91PPV[` \x81R`\0aA\xAE` \x83\x01\x84aW\xBBV[`\0` \x82\x84\x03\x12\x15aXKW`\0\x80\xFD[P5\x91\x90PV[\x80\x15\x15\x81\x14aWGW`\0\x80\xFD[`\0\x80`\0\x80`\x80\x85\x87\x03\x12\x15aXvW`\0\x80\xFD[\x845\x93P` \x85\x015\x92P`@\x85\x015\x91P``\x85\x015aX\x96\x81aXRV[\x93\x96\x92\x95P\x90\x93PPV[`\0` \x82\x84\x03\x12\x15aX\xB3W`\0\x80\xFD[\x815`\x01`\x01`\x80\x1B\x03\x81\x16\x81\x14aP\xA4W`\0\x80\xFD[`\0\x80`\0\x80`\0\x80`\x80\x87\x89\x03\x12\x15aX\xE3W`\0\x80\xFD[\x865\x95P` \x87\x015aX\xF5\x81aXRV[\x94P`@\x87\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15aY\x12W`\0\x80\xFD[aY\x1E\x8A\x83\x8B\x01aVMV[\x90\x96P\x94P``\x89\x015\x91P\x80\x82\x11\x15aY7W`\0\x80\xFD[PaYD\x89\x82\x8A\x01aVMV[\x97\x9A\x96\x99P\x94\x97P\x92\x95\x93\x94\x92PPPV[c\xFF\xFF\xFF\xFF\x84\x16\x81R\x82` \x82\x01R```@\x82\x01R`\0a\x16w``\x83\x01\x84aW\xBBV[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[`\0`\x80\x82\x84\x03\x12\x15aY\xA3W`\0\x80\xFD[`@Q`\x80\x81\x01\x81\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17\x15aY\xD4WcNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[\x80`@RP\x825\x81R` \x83\x015` \x82\x01R`@\x83\x015`@\x82\x01R``\x83\x015``\x82\x01R\x80\x91PP\x92\x91PPV[\x81\x83\x827`\0\x91\x01\x90\x81R\x91\x90PV[cNH{q`\xE0\x1B`\0R`2`\x04R`$`\0\xFD[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[`\0\x82\x19\x82\x11\x15aZTWaZTaZ+V[P\x01\x90V[`\0`\0\x19\x82\x03aZlWaZlaZ+V[P`\x01\x01\x90V[`\0\x82\x82\x10\x15aZ\x85WaZ\x85aZ+V[P\x03\x90V[`\0` \x82\x84\x03\x12\x15aZ\x9CW`\0\x80\xFD[\x81QaP\xA4\x81aXRV[cNH{q`\xE0\x1B`\0R`\x12`\x04R`$`\0\xFD[`\0\x82aZ\xCCWaZ\xCCaZ\xA7V[P\x04\x90V[`\0\x81`\0\x19\x04\x83\x11\x82\x15\x15\x16\x15aZ\xEBWaZ\xEBaZ+V[P\x02\x90V[`\0` \x82\x84\x03\x12\x15a[\x02W`\0\x80\xFD[\x81QaP\xA4\x81aW]V[`\0` \x82\x84\x03\x12\x15a[\x1FW`\0\x80\xFD[PQ\x91\x90PV[`\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x83\x16\x81\x85\x16\x80\x83\x03\x82\x11\x15a[IWa[IaZ+V[\x01\x94\x93PPPPV[`\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x83\x16\x81\x85\x16\x81\x83\x04\x81\x11\x82\x15\x15\x16\x15a[yWa[yaZ+V[\x02\x94\x93PPPPV[`\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x81\x16\x90\x83\x16\x81\x81\x10\x15a[\xA3Wa[\xA3aZ+V[\x03\x93\x92PPPV[`\0\x80`@\x83\x85\x03\x12\x15a[\xBEW`\0\x80\xFD[PP\x80Q` \x90\x91\x01Q\x90\x92\x90\x91PV[`\0` \x82\x84\x03\x12\x15a[\xE1W`\0\x80\xFD[\x81Qc\xFF\xFF\xFF\xFF\x81\x16\x81\x14aP\xA4W`\0\x80\xFD[`\0\x7F\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF`\0\x84\x13`\0\x84\x13\x85\x83\x04\x85\x11\x82\x82\x16\x16\x15a\\6Wa\\6aZ+V[\x7F\x80\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\0\x87\x12\x86\x82\x05\x88\x12\x81\x84\x16\x16\x15a\\qWa\\qaZ+V[`\0\x87\x12\x92P\x87\x82\x05\x87\x12\x84\x84\x16\x16\x15a\\\x8DWa\\\x8DaZ+V[\x87\x85\x05\x87\x12\x81\x84\x16\x16\x15a\\\xA3Wa\\\xA3aZ+V[PPP\x92\x90\x93\x02\x93\x92PPPV[`\0\x82a\\\xC0Wa\\\xC0aZ\xA7V[`\0\x19\x83\x14\x7F\x80\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x83\x14\x16\x15a\\\xF6Wa\\\xF6aZ+V[P\x05\x90V[`\0\x82a]\nWa]\naZ\xA7V[P\x06\x90V[`\0`\x01`\x01`\x80\x1B\x03\x83\x81\x16\x90\x83\x16\x81\x81\x10\x15a[\xA3Wa[\xA3aZ+V[`\0`\x01`\x01`\x80\x1B\x03\x80\x83\x16\x81\x85\x16\x80\x83\x03\x82\x11\x15a[IWa[IaZ+V[\x81\x83R\x81\x81` \x85\x017P`\0` \x82\x84\x01\x01R`\0` \x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0`\x1F\x84\x01\x16\x84\x01\x01\x90P\x92\x91PPV[``\x81R`\0a]\xAE``\x83\x01\x87\x89a]QV[\x82\x81\x03` \x84\x01Ra]\xC1\x81\x86\x88a]QV[\x91PP\x82`@\x83\x01R\x96\x95PPPPPPV[`\0`\xFF\x82\x16`\xFF\x84\x16\x80\x82\x10\x15a]\xEEWa]\xEEaZ+V[\x90\x03\x93\x92PPPV[`\0`\xFF\x83\x16\x80a^\nWa^\naZ\xA7V[\x80`\xFF\x84\x16\x06\x91PP\x92\x91PPV\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x6080604052600436106103555760003560e01c806370872aa5116101bb578063c0d8bb74116100f7578063dabd396d11610095578063f8f43ff61161006f578063f8f43ff614610b13578063fa24f74314610b33578063fa315aa914610b57578063fe2bbeb214610b8a57600080fd5b8063dabd396d14610a7d578063ec5e630814610ab0578063eff0f59214610ae357600080fd5b8063cf09e0d0116100d1578063cf09e0d0146109fa578063d5d44d8014610a1b578063d6ae3cd514610a3b578063d8cc1a3c14610a5d57600080fd5b8063c0d8bb7414610939578063c395e1ca14610966578063c6f0308c1461098657600080fd5b80638d450a9511610164578063a8e4fb901161013e578063a8e4fb90146108a5578063bbdc02db146108ca578063bcef3b55146108f7578063bd8da9561461091957600080fd5b80638d450a95146107e357806399735e32146107c1578063a445ece61461080557600080fd5b80638129fc1c116101955780638129fc1c146107a45780638980e0cc146107ac5780638b85902b146107c157600080fd5b806370872aa514610767578063786b844b1461077c5780637b0f0adc1461079157600080fd5b80633e3ac912116102955780635a5fa2d91161023357806360e274641161020d57806360e27464146106df5780636361506d146106ff5780636b6716c0146107215780636f0344091461075457600080fd5b80635a5fa2d9146106855780635c0cba33146106a5578063609d3334146106ca57600080fd5b8063529d6a8c1161026f578063529d6a8c146105c4578063534db0e2146105f157806354fd4d501461060657806357da950e1461065557600080fd5b80633e3ac9121461055c5780633fc8cef31461058c578063472777c6146105b157600080fd5b806325fc2ace1161030257806330dbe570116102dc57806330dbe570146104c3578063378dd48c146104fb57806337b1b229146105155780633a7684631461053757600080fd5b806325fc2ace1461046f5780632810e1d61461048e5780632ad69aeb146104a357600080fd5b8063200d2ed211610333578063200d2ed2146103e7578063222abf4514610415578063250e69bd1461045557600080fd5b8063019351301461035a57806303c2924d1461037c57806319effeb41461039c575b600080fd5b34801561036657600080fd5b5061037a610375366004615696565b610bba565b005b34801561038857600080fd5b5061037a6103973660046156f1565b610e79565b3480156103a857600080fd5b506000546103c99068010000000000000000900467ffffffffffffffff1681565b60405167ffffffffffffffff90911681526020015b60405180910390f35b3480156103f357600080fd5b5060005461040890600160801b900460ff1681565b6040516103de919061574a565b34801561042157600080fd5b50610445610430366004615772565b600c6020526000908152604090205460ff1681565b60405190151581526020016103de565b34801561046157600080fd5b50600a546104459060ff1681565b34801561047b57600080fd5b506008545b6040519081526020016103de565b34801561049a57600080fd5b50610408611401565b3480156104af57600080fd5b506104806104be3660046156f1565b6115d9565b3480156104cf57600080fd5b506001546104e3906001600160a01b031681565b6040516001600160a01b0390911681526020016103de565b34801561050757600080fd5b50600d546104089060ff1681565b34801561052157600080fd5b503660011981013560f01c90033560601c6104e3565b34801561054357600080fd5b503660011981013560f01c90036098013560601c6104e3565b34801561056857600080fd5b50600054610445907201000000000000000000000000000000000000900460ff1681565b34801561059857600080fd5b503660011981013560f01c900360c0013560601c6104e3565b61037a6105bf36600461578f565b61160f565b3480156105d057600080fd5b506104806105df366004615772565b60036020526000908152604090205481565b3480156105fd57600080fd5b506104e3611621565b34801561061257600080fd5b5060408051808201909152600581527f322e322e3000000000000000000000000000000000000000000000000000000060208201525b6040516103de9190615826565b34801561066157600080fd5b50600854600954610670919082565b604080519283526020830191909152016103de565b34801561069157600080fd5b506104806106a0366004615839565b611646565b3480156106b157600080fd5b503660011981013560f01c900360ac013560601c6104e3565b3480156106d657600080fd5b50610648611680565b3480156106eb57600080fd5b5061037a6106fa366004615772565b61168e565b34801561070b57600080fd5b503660011981013560f01c900360340135610480565b34801561072d57600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006103c9565b61037a610762366004615860565b61199f565b34801561077357600080fd5b50600954610480565b34801561078857600080fd5b5061037a611a1f565b61037a61079f36600461578f565b611e0d565b61037a611e1a565b3480156107b857600080fd5b50600254610480565b3480156107cd57600080fd5b503660011981013560f01c900360580135610480565b3480156107ef57600080fd5b503660011981013560f01c900360780135610480565b34801561081157600080fd5b50610867610820366004615839565b6007602052600090815260409020805460019091015460ff821691610100810463ffffffff1691650100000000009091046001600160801b0316906001600160a01b031684565b60408051941515855263ffffffff90931660208501526001600160801b03909116918301919091526001600160a01b031660608201526080016103de565b3480156108b157600080fd5b503660011981013560f01c900360f4013560601c6104e3565b3480156108d657600080fd5b506040513660011981013560f01c90036054013560e01c81526020016103de565b34801561090357600080fd5b503660011981013560f01c900360140135610480565b34801561092557600080fd5b506103c9610934366004615839565b611e85565b34801561094557600080fd5b50610480610954366004615772565b600b6020526000908152604090205481565b34801561097257600080fd5b506104806109813660046158a1565b61201f565b34801561099257600080fd5b506109a66109a1366004615839565b6121e0565b6040805163ffffffff90981688526001600160a01b03968716602089015295909416948601949094526001600160801b039182166060860152608085015291821660a08401521660c082015260e0016103de565b348015610a0657600080fd5b506000546103c99067ffffffffffffffff1681565b348015610a2757600080fd5b50610480610a36366004615772565b612254565b348015610a4757600080fd5b503660011981013560f01c900360d40135610480565b348015610a6957600080fd5b5061037a610a783660046158ca565b6122ac565b348015610a8957600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006103c9565b348015610abc57600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610480565b348015610aef57600080fd5b50610445610afe366004615839565b60046020526000908152604090205460ff1681565b348015610b1f57600080fd5b5061037a610b2e36600461578f565b612328565b348015610b3f57600080fd5b50610b486126ef565b6040516103de93929190615956565b348015610b6357600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610480565b348015610b9657600080fd5b50610445610ba5366004615839565b60066020526000908152604090205460ff1681565b60008054600160801b900460ff166002811115610bd957610bd9615713565b14610bf75760405163067fe19560e41b815260040160405180910390fd5b6000547201000000000000000000000000000000000000900460ff1615610c4a576040517f0ea2e75200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610c633660011981013560f01c90036014013590565b90565b610c7a610c7536869003860186615991565b612719565b14610cb1576040517f9cc00b5b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b82606001358282604051610cc6929190615a05565b604051809103902014610d05576040517fd81d583b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000610d4e610d4984848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061277592505050565b6127e2565b90506000610d7582600881518110610d6857610d68615a15565b6020026020010151612998565b9050602081511115610db3576040517fd81d583b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b602081810151825190910360031b1c3660011981013560f01c9003605801358103610e0a576040517fb8ed883000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050600180547fffffffffffffffffffffffff000000000000000000000000000000000000000016331790555050600080547fffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffff1672010000000000000000000000000000000000001790555050565b60008054600160801b900460ff166002811115610e9857610e98615713565b14610eb65760405163067fe19560e41b815260040160405180910390fd5b600060028381548110610ecb57610ecb615a15565b906000526020600020906005020190506000610ee684611e85565b905067ffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000081169082161015610f4f576040517ff2440b5300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008481526006602052604090205460ff1615610f98576040517ff1a9458100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000848152600560205260409020805480158015610fb557508515155b1561101857835464010000000090046001600160a01b031660008115610fdb5781610fea565b60018601546001600160a01b03165b9050610ff68187612a4c565b505050600094855250506006602052505060409020805460ff19166001179055565b6000868152600760209081526040918290208251608081018452815460ff81161515808352610100820463ffffffff16948301949094526501000000000090046001600160801b031693810193909352600101546001600160a01b0316606083015261109c576001600160801b03604082015260018152600086900361109c578195505b600086826020015163ffffffff166110b49190615a41565b905060008382116110c557816110c7565b835b602084015190915063ffffffff165b818110156111e75760008682815481106110f2576110f2615a15565b6000918252602080832090910154808352600690915260409091205490915060ff1661114a576040517f9a07664600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006002828154811061115f5761115f615a15565b60009182526020909120600590910201805490915064010000000090046001600160a01b03161580156111a65750600481015460408701516001600160801b039182169116115b156111d25760018101546001600160a01b0316606087015260048101546001600160801b031660408701525b505080806111df90615a59565b9150506110d6565b5063ffffffff818116602085810191825260008c81526007909152604090819020865181549351928801517fffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000009094169015157fffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000ff161761010092909416918202939093177fffffffffffffffffffffff00000000000000000000000000000000ffffffffff16650100000000006001600160801b03909316929092029190911782556060850151600190920180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03909316929092179091558490036113f657606083015160008a8152600660205260409020805460ff191660011790558915801561133357506000547201000000000000000000000000000000000000900460ff165b1561138e576001546001600160a01b031661134e818a612a4c565b88546001600160a01b03909116640100000000027fffffffffffffffff0000000000000000000000000000000000000000ffffffff9091161788556113f4565b6113bb6001600160a01b038216156113a657816113b5565b60018901546001600160a01b03165b89612a4c565b87547fffffffffffffffff0000000000000000000000000000000000000000ffffffff166401000000006001600160a01b038316021788555b505b505050505050505050565b600080600054600160801b900460ff16600281111561142257611422615713565b146114405760405163067fe19560e41b815260040160405180910390fd5b6000805260066020527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f85460ff166114a4576040517f9a07664600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006001600160a01b031660026000815481106114c3576114c3615a15565b600091825260209091206005909102015464010000000090046001600160a01b0316146114f15760016114f4565b60025b6000805467ffffffffffffffff421668010000000000000000027fffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff82168117835592935083927fffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffff000000000000000000ffffffffffffffff90911617600160801b83600281111561159857611598615713565b0217905560028111156115ad576115ad615713565b6040517f5e186f09b9c93491f14e277eea7faa5de6a2d4bda75a79af7a3684fbfb42da6090600090a290565b600560205281600052604060002081815481106115f557600080fd5b90600052602060002001600091509150505481565b905090565b61161c838383600161199f565b505050565b600061160a61163260f46014615a41565b3660011981013560f01c9003013560601c90565b6000818152600760209081526040808320600590925282208054825461167790610100900463ffffffff1682615a73565b95945050505050565b606061160a60586020612a8e565b611696611a1f565b60006002600d5460ff1660028111156116b1576116b1615713565b036116d557506001600160a01b0381166000908152600b6020526040902054611744565b6001600d5460ff1660028111156116ee576116ee615713565b0361171257506001600160a01b038116600090815260036020526040902054611744565b6040517f078a3df400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0382166000908152600c602052604090205460ff16611822576001600160a01b0382166000908152600c60205260409020805460ff191660011790556117a160c0600119369081013560f01c9003013560601c90565b6040517f7eee288d0000000000000000000000000000000000000000000000000000000081526001600160a01b038481166004830152602482018490529190911690637eee288d90604401600060405180830381600087803b15801561180657600080fd5b505af115801561181a573d6000803e3d6000fd5b505050505050565b8060000361185c576040517f17bfe5f700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0382166000908152600b6020908152604080832083905560039091528120553660011981013560f01c900360c0013560601c6040517ff3fef3a30000000000000000000000000000000000000000000000000000000081526001600160a01b03848116600483015260248201849052919091169063f3fef3a390604401600060405180830381600087803b1580156118fa57600080fd5b505af115801561190e573d6000803e3d6000fd5b505050506000826001600160a01b03168260405160006040518083038185875af1925050503d806000811461195f576040519150601f19603f3d011682016040523d82523d6000602084013e611964565b606091505b505090508061161c576040517f83e6cc6b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3660011981013560f01c900360f4013560601c3314806119d757506119c2611621565b6001600160a01b0316336001600160a01b0316145b611a0d576040517fd386ef3e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611a1984848484612ac2565b50505050565b6002600d5460ff166002811115611a3857611a38615713565b1480611a5a57506001600d5460ff166002811115611a5857611a58615713565b145b15611a6157565b6000600d5460ff166002811115611a7a57611a7a615713565b14611ab1576040517f078a3df400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3660011981013560f01c900360ac013560601c6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b01573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b259190615a8a565b15611b5c576040517f379a7ed900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005468010000000000000000900467ffffffffffffffff1667ffffffffffffffff16600003611bb8576040517fc105260a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60003660011981013560f01c900360ac013560601c6040517f0314d2b30000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b039190911690630314d2b390602401602060405180830381865afa158015611c2c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c509190615a8a565b905080611c89576040517f4851bd9b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3660011981013560f01c900360ac013560601c6040517f17cf21a90000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b0391909116906317cf21a990602401600060405180830381600087803b158015611cf857600080fd5b505af1925050508015611d09575060015b5060003660011981013560f01c900360ac013560601c6040517f496b9c160000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b03919091169063496b9c1690602401602060405180830381865afa158015611d7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611da29190615a8a565b90508015611dbc57600d805460ff19166001179055611dca565b600d805460ff191660021790555b600d546040517f9908eaac0645df9d0704d06adc9e07337c951de2f06b5f2836151d48d5e4722f91611e019160ff9091169061574a565b60405180910390a15050565b61161c838383600061199f565b611e22613445565b3660011981013560f01c900360f4013560601c3214611e6d576040517fd386ef3e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b3660011981013560f01c90036054013560e01c90565b600080600054600160801b900460ff166002811115611ea657611ea6615713565b14611ec45760405163067fe19560e41b815260040160405180910390fd5b600060028381548110611ed957611ed9615a15565b600091825260208220600590910201805490925063ffffffff90811614611f3f57815460028054909163ffffffff16908110611f1757611f17615a15565b906000526020600020906005020160040160109054906101000a90046001600160801b031690505b6004820154600090611f6a90600160801b900467ffffffffffffffff165b67ffffffffffffffff1690565b611f7e9067ffffffffffffffff1642615a73565b611f94611f5d846001600160801b031660401c90565b67ffffffffffffffff16611fa89190615a41565b905067ffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001667ffffffffffffffff168167ffffffffffffffff1611611ff55780611677565b7f000000000000000000000000000000000000000000000000000000000000000095945050505050565b60008061209c836001600160801b03167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f6307c4acdd60e01b67ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff1690507f00000000000000000000000000000000000000000000000000000000000000008111156120fb576040517f56f57b2b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b642e90edd00062061a806311e1a30060006121168383615abd565b9050670de0b6b3a7640000600061214d827f0000000000000000000000000000000000000000000000000000000000000000615ad1565b9050600061216b612166670de0b6b3a764000086615ad1565b613cc6565b905060006121798484613f18565b905060006121878383613f67565b9050600061219482613f95565b905060006121b3826121ae670de0b6b3a76400008f615ad1565b61417d565b905060006121c18b83613f67565b90506121cd818d615ad1565b9f9e505050505050505050505050505050565b600281815481106121f057600080fd5b60009182526020909120600590910201805460018201546002830154600384015460049094015463ffffffff841695506401000000009093046001600160a01b03908116949216926001600160801b03918216929180821691600160801b90041687565b60006002600d5460ff16600281111561226f5761226f615713565b0361229057506001600160a01b03166000908152600b602052604090205490565b506001600160a01b031660009081526003602052604090205490565b3660011981013560f01c900360f4013560601c3314806122e457506122cf611621565b6001600160a01b0316336001600160a01b0316145b61231a576040517fd386ef3e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61181a8686868686866141b7565b60008054600160801b900460ff16600281111561234757612347615713565b146123655760405163067fe19560e41b815260040160405180910390fd5b600080600080612374866146eb565b9350935093509350600061238a85858585614a44565b905060003660011981013560f01c90036098013560601c6001600160a01b0316637dc0d1d06040518163ffffffff1660e01b8152600401602060405180830381865afa1580156123de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124029190615af0565b9050600189036124cf576001600160a01b0381166352f0f3ad8a846124333660011981013560f01c90036034013590565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e086901b16815260048101939093526024830191909152604482015260206064820152608481018a905260a4015b6020604051808303816000875af11580156124a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124c99190615b0d565b506113f6565b600289036124ee576001600160a01b0381166352f0f3ad8a8489612433565b6003890361250d576001600160a01b0381166352f0f3ad8a8487612433565b6004890361264257600061254a6001600160801b0385167f0000000000000000000000000000000000000000000000000000000000000000614ae3565b6009546125579190615a41565b612562906001615a41565b90503660011981013560f01c900360580135811061258f573660011981013560f01c900360580135612591565b805b90506001600160a01b0382166352f0f3ad8b8560405160e084901b7fffffffff000000000000000000000000000000000000000000000000000000001681526004810192909252602482015260c084901b604482015260086064820152608481018b905260a4016020604051808303816000875af1158015612617573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061263b9190615b0d565b50506113f6565b600589036126bd576040517f52f0f3ad000000000000000000000000000000000000000000000000000000008152600481018a9052602481018390523660011981013560f01c900360d4013560c01b604482015260086064820152608481018890526001600160a01b038216906352f0f3ad9060a401612486565b6040517fff137e6500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3660011981013560f01c9003605481013560e01c90601401356060612712611680565b9050909192565b60008160000151826020015183604001518460600151604051602001612758949392919093845260208401929092526040830152606082015260800190565b604051602081830303815290604052805190602001209050919050565b604080518082019091526000808252602082015281516000036127c4576040517f5ab458fb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50604080518082019091528151815260209182019181019190915290565b606060008060006127f285614b78565b91945092509050600181600181111561280d5761280d615713565b14612844576040517f4b9c6abe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84516128508385615a41565b14612887576040517f5c5537b800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604080516020808252610420820190925290816020015b604080518082019091526000808252602082015281526020019060019003908161289e5790505093506000835b865181101561298c576000806129116040518060400160405280858c600001516128f59190615a73565b8152602001858c6020015161290a9190615a41565b9052614b78565b50915091506040518060400160405280838361292d9190615a41565b8152602001848b602001516129429190615a41565b81525088858151811061295757612957615a15565b602090810291909101015261296d600185615a41565b93506129798183615a41565b6129839084615a41565b925050506128cb565b50845250919392505050565b606060008060006129a885614b78565b9194509250905060008160018111156129c3576129c3615713565b146129fa576040517f1ff9b2e400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612a048284615a41565b855114612a3d576040517f5c5537b800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61167785602001518484615016565b60028101546001600160a01b038316600090815260036020526040812080546001600160801b0390931692909190612a85908490615a41565b90915550505050565b6040518181523660011981013560f01c90038284820160208401378260208301016000815260208101604052505092915050565b60008054600160801b900460ff166002811115612ae157612ae1615713565b14612aff5760405163067fe19560e41b815260040160405180910390fd5b600060028481548110612b1457612b14615a15565b60009182526020918290206040805160e0810182526005909302909101805463ffffffff811684526001600160a01b0364010000000090910481169484019490945260018101549093169082015260028201546001600160801b03908116606083015260038301546080830181905260049093015480821660a0840152600160801b90041660c082015291508514612bd8576040517f3014033200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60a0810151600083156001600160801b0383161760011b90506000612c6d826001600160801b03167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f6307c4acdd60e01b67ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff169050861580612ca85750612ca57f00000000000000000000000000000000000000000000000000000000000000006002615a41565b81145b8015612cb2575084155b15612ce9576040517fa42637bc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000547201000000000000000000000000000000000000900460ff168015612d0f575086155b15612d46576040517f0ea2e75200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f0000000000000000000000000000000000000000000000000000000000000000811115612da0576040517f56f57b2b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612dcb7f00000000000000000000000000000000000000000000000000000000000000006001615a41565b8103612ddd57612ddd868885886150ab565b34612de78361201f565b14612e1e576040517f8620aa1900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000612e2988611e85565b905067ffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000811690821603612e91576040517f3381d11400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000612ebe60017f0000000000000000000000000000000000000000000000000000000000000000615a73565b8303612fd4573660011981013560f01c90036098013560601c6001600160a01b0316637dc0d1d06040518163ffffffff1660e01b8152600401602060405180830381865afa158015612f14573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f389190615af0565b6001600160a01b031663f3f480d96040518163ffffffff1660e01b8152600401602060405180830381865afa158015612f75573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f999190615b0d565b612fcd907f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff16615b26565b9050613067565b612fff60017f0000000000000000000000000000000000000000000000000000000000000000615a73565b830361303a57612fcd7f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff166002615b52565b507f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff165b61309b817f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff16615b82565b67ffffffffffffffff166130b68367ffffffffffffffff1690565b67ffffffffffffffff1611156130fd576130fa817f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff16615b82565b91505b6000604083901b421760008a8152608087901b6001600160801b038d1617602052604081209192509060008181526004602052604090205490915060ff1615613172576040517f80497e3b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60016004600083815260200190815260200160002060006101000a81548160ff02191690831515021790555060026040518060e001604052808d63ffffffff16815260200160006001600160a01b03168152602001336001600160a01b03168152602001346001600160801b031681526020018c8152602001886001600160801b03168152602001846001600160801b0316815250908060018154018082558091505060019003906000526020600020906005020160009091909190915060008201518160000160006101000a81548163ffffffff021916908363ffffffff16021790555060208201518160000160046101000a8154816001600160a01b0302191690836001600160a01b0316021790555060408201518160010160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060608201518160020160006101000a8154816001600160801b0302191690836001600160801b031602179055506080820151816003015560a08201518160040160006101000a8154816001600160801b0302191690836001600160801b0316021790555060c08201518160040160106101000a8154816001600160801b0302191690836001600160801b031602179055505050600560008c815260200190815260200160002060016002805490506133699190615a73565b81546001810183556000928352602080842090910191909155338252600b905260408120805434929061339d908490615a41565b90915550503660011981013560f01c900360c0013560601c6001600160a01b031663d0e30db0346040518263ffffffff1660e01b81526004016000604051808303818588803b1580156133ef57600080fd5b505af1158015613403573d6000803e3d6000fd5b50506040513393508d92508e91507f9b3245740ec3b155098a55be84957a4da13eaf7f14a8bc6f53126c0b9350f2be90600090a4505050505050505050505050565b60005471010000000000000000000000000000000000900460ff1615613497576040517f0dc149f000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61349f61523a565b36146134d7576040517f9824bdab00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000803660011981013560f01c900360ac013560601c6001600160a01b031663d83ef2676040518163ffffffff1660e01b81526004016040805180830381865afa158015613529573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061354d9190615bab565b909250905081613589576040517f6a6bc3b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805180820190915282815260200181905260088290556009819055803660011981013560f01c90036058013511613604576040517ff40239db0000000000000000000000000000000000000000000000000000000081523660011981013560f01c90036014013560048201526024015b60405180910390fd5b67ffffffffffffffff3660011981013560f01c90036098013560601c6001600160a01b0316637dc0d1d06040518163ffffffff1660e01b8152600401602060405180830381865afa15801561365d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136819190615af0565b6001600160a01b031663f3f480d96040518163ffffffff1660e01b8152600401602060405180830381865afa1580156136be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136e29190615b0d565b111561371a576040517fb4e1243300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006137517f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff166002615ad1565b905060003660011981013560f01c90036098013560601c6001600160a01b0316637dc0d1d06040518163ffffffff1660e01b8152600401602060405180830381865afa1580156137a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137c99190615af0565b6001600160a01b031663f3f480d96040518163ffffffff1660e01b8152600401602060405180830381865afa158015613806573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061382a9190615b0d565b67ffffffffffffffff166138657f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff1690565b67ffffffffffffffff166138799190615a41565b90506000613887838361524f565b905067ffffffffffffffff8111156138cb576040517f8d77ecac00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b67ffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001667ffffffffffffffff168167ffffffffffffffff161115613943576040517f8d77ecac00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805160e08101825263ffffffff808252600060208084018281523660011981013560f01c90038035606090811c8789018181526001600160801b0334818116948b0194855260149095013560808b01908152600160a08c0181815242841660c08e019081526002805493840181558c529c517f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace600590930292830180549a5191909d167fffffffffffffffff000000000000000000000000000000000000000000000000909a16999099176401000000006001600160a01b039a8b160217909b5592517f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5acf840180547fffffffffffffffffffffffff000000000000000000000000000000000000000016919098161790965592517f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ad0820180547fffffffffffffffffffffffffffffffff000000000000000000000000000000001691851691909117905593517f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ad185015595519651968116600160801b9790911696909602959095177f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ad2909101558154710100000000000000000000000000000000007fffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff909116178255918152600b909152918220805491929091613b84908490615a41565b90915550503660011981013560f01c900360c0013560601c6001600160a01b031663d0e30db0346040518263ffffffff1660e01b81526004016000604051808303818588803b158015613bd657600080fd5b505af1158015613bea573d6000803e3d6000fd5b5050600080547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000164267ffffffffffffffff1617905550613c2d9150611e6f9050565b63ffffffff163660011981013560f01c900360ac013560601c6001600160a01b0316633c9f397c6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613c83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ca79190615bcf565b600a805460ff191663ffffffff92909216929092141790555050505050565b6001600160801b03811160071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b1760008213613d1c57631615e6386000526004601cfd5b7ff8f9f9faf9fdfafbf9fdfcfdfafbfcfef9fafdfafcfcfbfefafafcfbffffffff6f8421084210842108cc6318c6db6d54be83831c1c601f161a1890811b609f90811c6c465772b2bbbb5f824b15207a3081018102606090811d6d0388eaa27412d5aca026815d636e018202811d6d0df99ac502031bf953eff472fdcc018202811d6d13cdffb29d51d99322bdff5f2211018202811d6d0a0f742023def783a307a986912e018202811d6d01920d8043ca89b5239253284e42018202811d6c0b7a86d7375468fac667a0a527016c29508e458543d8aa4df2abee7883018302821d6d0139601a2efabe717e604cbb4894018302821d6d02247f7a7b6594320649aa03aba1018302821d7fffffffffffffffffffffffffffffffffffffff73c0c716a594e00d54e3c4cbc9018302821d7ffffffffffffffffffffffffffffffffffffffdc7b88c420e53a9890533129f6f01830290911d7fffffffffffffffffffffffffffffffffffffff465fda27eb4d63ded474e5f832019091027ffffffffffffffff5f6af8f7b3396644f18e157960000000000000000000000000105711340daa0d5f769dba1915cef59f0815a5506029190037d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b302017d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b88642840160ae1d90565b60007812725dd1d243aba0e75fe645cc4873f9e65afe688c928e1f218311670de0b6b3a764000002158202613f5557637c5f487d6000526004601cfd5b50670de0b6b3a7640000919091020490565b600081600019048311820215613f855763bac65e5b6000526004601cfd5b50670de0b6b3a764000091020490565b60007ffffffffffffffffffffffffffffffffffffffffffffffffdc0d0570925a462d78213613fc357919050565b680755bf798b4a1bf1e58212613fe15763a37bfec96000526004601cfd5b6503782dace9d9604e83901b059150600060606bb17217f7d1cf79abc9e3b39884821b056b80000000000000000000000001901d6bb17217f7d1cf79abc9e3b39881029093037fffffffffffffffffffffffffffffffffffffffdbf3ccf1604d263450f02a550481018102606090811d6d0277594991cfc85f6e2461837cd9018202811d7fffffffffffffffffffffffffffffffffffffe5adedaa1cb095af9e4da10e363c018202811d6db1bbb201f443cf962f1a1d3db4a5018202811d7ffffffffffffffffffffffffffffffffffffd38dc772608b0ae56cce01296c0eb018202811d6e05180bb14799ab47a8a8cb2a527d57016d02d16720577bd19bf614176fe9ea6c10fe68e7fd37d0007b713f765084018402831d9081019084017ffffffffffffffffffffffffffffffffffffffe2c69812cf03b0763fd454a8f7e010290911d6e0587f503bb6ea29d25fcb7401964500190910279d835ebba824c98fb31b83b2ca45c000000000000000000000000010574029d9dc38563c32e5c2f6dc192ee70ef65f9978af30260c3939093039290921c92915050565b60006141ae670de0b6b3a76400008361419586613cc6565b61419f9190615bf5565b6141a99190615cb1565b613f95565b90505b92915050565b60008054600160801b900460ff1660028111156141d6576141d6615713565b146141f45760405163067fe19560e41b815260040160405180910390fd5b60006002878154811061420957614209615a15565b6000918252602082206005919091020160048101549092506001600160801b0316908715821760011b905061425f7f00000000000000000000000000000000000000000000000000000000000000006001615a41565b6142d9826001600160801b03167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f6307c4acdd60e01b67ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff1614614313576040517f5f53dd9800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008089156143de576143667f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000615a73565b6001901b61437c846001600160801b0316615266565b6001600160801b031661438f9190615cfb565b156143c3576143ba6143ab60016001600160801b038716615d0f565b865463ffffffff1660006152ec565b600301546143d4565b3660011981013560f01c9003607801355b91508490506143ff565b600385015491506143fc6143ab6001600160801b0386166001615d2f565b90505b600882901b60088a8a604051614416929190615a05565b6040518091039020901b14614457576040517f696550ff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006144628c6153b5565b90506000614471836003015490565b6040517fe14ced320000000000000000000000000000000000000000000000000000000081523660011981013560f01c90036098013560601c9063e14ced32906144c7908f908f908f908f908a90600401615d9a565b6020604051808303816000875af11580156144e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061450a9190615b0d565b600485015491149150600090600290614593906001600160801b03167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f6307c4acdd60e01b67ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b61460d896001600160801b03167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f6307c4acdd60e01b67ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b6146179190615dd4565b6146219190615df7565b60ff161590508115158103614662576040517ffb4e40dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b875464010000000090046001600160a01b0316156146ac576040517f9071e6af00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505085547fffffffffffffffff0000000000000000000000000000000000000000ffffffff163364010000000002179095555050505050505050505050565b600080600080600085905060006002828154811061470b5761470b615a15565b600091825260209091206004600590920201908101549091507f0000000000000000000000000000000000000000000000000000000000000000906147c0906001600160801b03167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f6307c4acdd60e01b67ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff16116147fa576040517fb34b5c2200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000815b60048301547f00000000000000000000000000000000000000000000000000000000000000009061489f906001600160801b03167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f6307c4acdd60e01b67ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff16925082111561491457825463ffffffff166148de7f00000000000000000000000000000000000000000000000000000000000000006001615a41565b83036148e8578391505b600281815481106148fb576148fb615a15565b90600052602060002090600502019350809450506147fe565b600481810154908401546001600160801b0391821691166000816001600160801b031661495961494d856001600160801b031660011c90565b6001600160801b031690565b6001600160801b031614905080156149f257600061497f836001600160801b0316615266565b6001600160801b031611156149cf5760006149af6149a760016001600160801b038616615d0f565b8960016152ec565b6003810154600490910154909c506001600160801b03169a506149d59050565b6008549a505b600386015460048701549099506001600160801b03169750614a36565b6000614a0b6149a76001600160801b0385166001615d2f565b6003808901546004808b015492840154930154909e506001600160801b039182169d50919b50169850505b505050505050509193509193565b60006001600160801b03841615614a9f5760408051602081018790526001600160801b038087169282019290925260608101859052908316608082015260a00160405160208183030381529060405280519060200120611677565b8282604051602001614ac49291909182526001600160801b0316602082015260400190565b6040516020818303038152906040528051906020012095945050505050565b600080614b57847e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f6307c4acdd60e01b67ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff1690508083036001841b600180831b0386831b17039250505092915050565b60008060008360000151600003614bbb576040517f5ab458fb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6020840151805160001a607f8111614be057600060016000945094509450505061500f565b60b78111614cf6576000614bf5608083615a73565b905080876000015111614c34576040517f66c9448500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001838101517fff00000000000000000000000000000000000000000000000000000000000000169082148015614cac57507f80000000000000000000000000000000000000000000000000000000000000007fff000000000000000000000000000000000000000000000000000000000000008216105b15614ce3576040517fbabb01dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b506001955093506000925061500f915050565b60bf8111614e54576000614d0b60b783615a73565b905080876000015111614d4a576040517f66c9448500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60018301517fff00000000000000000000000000000000000000000000000000000000000000166000819003614dac576040517fbabb01dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600184015160088302610100031c60378111614df4576040517fbabb01dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b614dfe8184615a41565b895111614e37576040517f66c9448500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b614e42836001615a41565b975095506000945061500f9350505050565b60f78111614eb9576000614e6960c083615a73565b905080876000015111614ea8576040517f66c9448500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60019550935084925061500f915050565b6000614ec660f783615a73565b905080876000015111614f05576040517f66c9448500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60018301517fff00000000000000000000000000000000000000000000000000000000000000166000819003614f67576040517fbabb01dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600184015160088302610100031c60378111614faf576040517fbabb01dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b614fb98184615a41565b895111614ff2576040517f66c9448500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b614ffd836001615a41565b975095506001945061500f9350505050565b9193909250565b60608167ffffffffffffffff8111156150315761503161597b565b6040519080825280601f01601f19166020018201604052801561505b576020820181803683370190505b50905081156150a45760006150708486615a41565b90506020820160005b84811015615091578281015182820152602001615079565b848111156150a0576000858301525b5050505b9392505050565b60006150c16001600160801b0384166001615d2f565b905060006150d1828660016152ec565b9050600086901a838061519b575061510a60027f0000000000000000000000000000000000000000000000000000000000000000615cfb565b600483015460029061518c906001600160801b03167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f6307c4acdd60e01b67ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b6151969190615df7565b60ff16145b156151f35760ff8116600114806151b5575060ff81166002145b6151ee576040517ff40239db000000000000000000000000000000000000000000000000000000008152600481018890526024016135fb565b615231565b60ff811615615231576040517ff40239db000000000000000000000000000000000000000000000000000000008152600481018890526024016135fb565b50505050505050565b60006152446153e4565b61160a906006615a41565b60008183101561525f57816141ae565b5090919050565b6000806152da837e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f6307c4acdd60e01b67ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b600160ff919091161b90920392915050565b6000808261532c576153276001600160801b0386167f00000000000000000000000000000000000000000000000000000000000000006153f2565b61533e565b61533e856001600160801b0316615531565b90506002848154811061535357615353615a15565b906000526020600020906005020191505b60048201546001600160801b038281169116146153ad57815460028054909163ffffffff1690811061539857615398615a15565b90600052602060002090600502019150615364565b509392505050565b60008060008060006153c6866146eb565b93509350935093506153da84848484614a44565b9695505050505050565b600061160a60f46028615a41565b60008161546f846001600160801b03167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f6307c4acdd60e01b67ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff16116154855763b34b5c226000526004601cfd5b61548e83615531565b90508161550b826001600160801b03167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f6307c4acdd60e01b67ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff16116141b1576141ae615521836001615a41565b6001600160801b038316906155bd565b600081196001830116816155ac827e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f6307c4acdd60e01b67ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff169390931c8015179392505050565b600080615631847e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f6307c4acdd60e01b67ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff169050808303600180821b0385821b179250505092915050565b60008083601f84011261565f57600080fd5b50813567ffffffffffffffff81111561567757600080fd5b60208301915083602082850101111561568f57600080fd5b9250929050565b600080600083850360a08112156156ac57600080fd5b60808112156156ba57600080fd5b50839250608084013567ffffffffffffffff8111156156d857600080fd5b6156e48682870161564d565b9497909650939450505050565b6000806040838503121561570457600080fd5b50508035926020909101359150565b634e487b7160e01b600052602160045260246000fd5b6003811061574757634e487b7160e01b600052602160045260246000fd5b50565b6020810161575783615729565b91905290565b6001600160a01b038116811461574757600080fd5b60006020828403121561578457600080fd5b81356150a48161575d565b6000806000606084860312156157a457600080fd5b505081359360208301359350604090920135919050565b6000815180845260005b818110156157e1576020818501810151868301820152016157c5565b818111156157f3576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006141ae60208301846157bb565b60006020828403121561584b57600080fd5b5035919050565b801515811461574757600080fd5b6000806000806080858703121561587657600080fd5b843593506020850135925060408501359150606085013561589681615852565b939692955090935050565b6000602082840312156158b357600080fd5b81356001600160801b03811681146150a457600080fd5b600080600080600080608087890312156158e357600080fd5b8635955060208701356158f581615852565b9450604087013567ffffffffffffffff8082111561591257600080fd5b61591e8a838b0161564d565b9096509450606089013591508082111561593757600080fd5b5061594489828a0161564d565b979a9699509497509295939492505050565b63ffffffff8416815282602082015260606040820152600061167760608301846157bb565b634e487b7160e01b600052604160045260246000fd5b6000608082840312156159a357600080fd5b6040516080810181811067ffffffffffffffff821117156159d457634e487b7160e01b600052604160045260246000fd5b8060405250823581526020830135602082015260408301356040820152606083013560608201528091505092915050565b8183823760009101908152919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60008219821115615a5457615a54615a2b565b500190565b60006000198203615a6c57615a6c615a2b565b5060010190565b600082821015615a8557615a85615a2b565b500390565b600060208284031215615a9c57600080fd5b81516150a481615852565b634e487b7160e01b600052601260045260246000fd5b600082615acc57615acc615aa7565b500490565b6000816000190483118215151615615aeb57615aeb615a2b565b500290565b600060208284031215615b0257600080fd5b81516150a48161575d565b600060208284031215615b1f57600080fd5b5051919050565b600067ffffffffffffffff808316818516808303821115615b4957615b49615a2b565b01949350505050565b600067ffffffffffffffff80831681851681830481118215151615615b7957615b79615a2b565b02949350505050565b600067ffffffffffffffff83811690831681811015615ba357615ba3615a2b565b039392505050565b60008060408385031215615bbe57600080fd5b505080516020909101519092909150565b600060208284031215615be157600080fd5b815163ffffffff811681146150a457600080fd5b60007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600084136000841385830485118282161615615c3657615c36615a2b565b7f80000000000000000000000000000000000000000000000000000000000000006000871286820588128184161615615c7157615c71615a2b565b60008712925087820587128484161615615c8d57615c8d615a2b565b87850587128184161615615ca357615ca3615a2b565b505050929093029392505050565b600082615cc057615cc0615aa7565b60001983147f800000000000000000000000000000000000000000000000000000000000000083141615615cf657615cf6615a2b565b500590565b600082615d0a57615d0a615aa7565b500690565b60006001600160801b0383811690831681811015615ba357615ba3615a2b565b60006001600160801b03808316818516808303821115615b4957615b49615a2b565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b606081526000615dae606083018789615d51565b8281036020840152615dc1818688615d51565b9150508260408301529695505050505050565b600060ff821660ff841680821015615dee57615dee615a2b565b90039392505050565b600060ff831680615e0a57615e0a615aa7565b8060ff8416069150509291505056fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R`\x046\x10a\x03UW`\x005`\xE0\x1C\x80cp\x87*\xA5\x11a\x01\xBBW\x80c\xC0\xD8\xBBt\x11a\0\xF7W\x80c\xDA\xBD9m\x11a\0\x95W\x80c\xF8\xF4?\xF6\x11a\0oW\x80c\xF8\xF4?\xF6\x14a\x0B\x13W\x80c\xFA$\xF7C\x14a\x0B3W\x80c\xFA1Z\xA9\x14a\x0BWW\x80c\xFE+\xBE\xB2\x14a\x0B\x8AW`\0\x80\xFD[\x80c\xDA\xBD9m\x14a\n}W\x80c\xEC^c\x08\x14a\n\xB0W\x80c\xEF\xF0\xF5\x92\x14a\n\xE3W`\0\x80\xFD[\x80c\xCF\t\xE0\xD0\x11a\0\xD1W\x80c\xCF\t\xE0\xD0\x14a\t\xFAW\x80c\xD5\xD4M\x80\x14a\n\x1BW\x80c\xD6\xAE<\xD5\x14a\n;W\x80c\xD8\xCC\x1A<\x14a\n]W`\0\x80\xFD[\x80c\xC0\xD8\xBBt\x14a\t9W\x80c\xC3\x95\xE1\xCA\x14a\tfW\x80c\xC6\xF00\x8C\x14a\t\x86W`\0\x80\xFD[\x80c\x8DE\n\x95\x11a\x01dW\x80c\xA8\xE4\xFB\x90\x11a\x01>W\x80c\xA8\xE4\xFB\x90\x14a\x08\xA5W\x80c\xBB\xDC\x02\xDB\x14a\x08\xCAW\x80c\xBC\xEF;U\x14a\x08\xF7W\x80c\xBD\x8D\xA9V\x14a\t\x19W`\0\x80\xFD[\x80c\x8DE\n\x95\x14a\x07\xE3W\x80c\x99s^2\x14a\x07\xC1W\x80c\xA4E\xEC\xE6\x14a\x08\x05W`\0\x80\xFD[\x80c\x81)\xFC\x1C\x11a\x01\x95W\x80c\x81)\xFC\x1C\x14a\x07\xA4W\x80c\x89\x80\xE0\xCC\x14a\x07\xACW\x80c\x8B\x85\x90+\x14a\x07\xC1W`\0\x80\xFD[\x80cp\x87*\xA5\x14a\x07gW\x80cxk\x84K\x14a\x07|W\x80c{\x0F\n\xDC\x14a\x07\x91W`\0\x80\xFD[\x80c>:\xC9\x12\x11a\x02\x95W\x80cZ_\xA2\xD9\x11a\x023W\x80c`\xE2td\x11a\x02\rW\x80c`\xE2td\x14a\x06\xDFW\x80ccaPm\x14a\x06\xFFW\x80ckg\x16\xC0\x14a\x07!W\x80co\x03D\t\x14a\x07TW`\0\x80\xFD[\x80cZ_\xA2\xD9\x14a\x06\x85W\x80c\\\x0C\xBA3\x14a\x06\xA5W\x80c`\x9D34\x14a\x06\xCAW`\0\x80\xFD[\x80cR\x9Dj\x8C\x11a\x02oW\x80cR\x9Dj\x8C\x14a\x05\xC4W\x80cSM\xB0\xE2\x14a\x05\xF1W\x80cT\xFDMP\x14a\x06\x06W\x80cW\xDA\x95\x0E\x14a\x06UW`\0\x80\xFD[\x80c>:\xC9\x12\x14a\x05\\W\x80c?\xC8\xCE\xF3\x14a\x05\x8CW\x80cG'w\xC6\x14a\x05\xB1W`\0\x80\xFD[\x80c%\xFC*\xCE\x11a\x03\x02W\x80c0\xDB\xE5p\x11a\x02\xDCW\x80c0\xDB\xE5p\x14a\x04\xC3W\x80c7\x8D\xD4\x8C\x14a\x04\xFBW\x80c7\xB1\xB2)\x14a\x05\x15W\x80c:v\x84c\x14a\x057W`\0\x80\xFD[\x80c%\xFC*\xCE\x14a\x04oW\x80c(\x10\xE1\xD6\x14a\x04\x8EW\x80c*\xD6\x9A\xEB\x14a\x04\xA3W`\0\x80\xFD[\x80c \r.\xD2\x11a\x033W\x80c \r.\xD2\x14a\x03\xE7W\x80c\"*\xBFE\x14a\x04\x15W\x80c%\x0Ei\xBD\x14a\x04UW`\0\x80\xFD[\x80c\x01\x93Q0\x14a\x03ZW\x80c\x03\xC2\x92M\x14a\x03|W\x80c\x19\xEF\xFE\xB4\x14a\x03\x9CW[`\0\x80\xFD[4\x80\x15a\x03fW`\0\x80\xFD[Pa\x03za\x03u6`\x04aV\x96V[a\x0B\xBAV[\0[4\x80\x15a\x03\x88W`\0\x80\xFD[Pa\x03za\x03\x976`\x04aV\xF1V[a\x0EyV[4\x80\x15a\x03\xA8W`\0\x80\xFD[P`\0Ta\x03\xC9\x90h\x01\0\0\0\0\0\0\0\0\x90\x04g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[`@Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[4\x80\x15a\x03\xF3W`\0\x80\xFD[P`\0Ta\x04\x08\x90`\x01`\x80\x1B\x90\x04`\xFF\x16\x81V[`@Qa\x03\xDE\x91\x90aWJV[4\x80\x15a\x04!W`\0\x80\xFD[Pa\x04Ea\x0406`\x04aWrV[`\x0C` R`\0\x90\x81R`@\x90 T`\xFF\x16\x81V[`@Q\x90\x15\x15\x81R` \x01a\x03\xDEV[4\x80\x15a\x04aW`\0\x80\xFD[P`\nTa\x04E\x90`\xFF\x16\x81V[4\x80\x15a\x04{W`\0\x80\xFD[P`\x08T[`@Q\x90\x81R` \x01a\x03\xDEV[4\x80\x15a\x04\x9AW`\0\x80\xFD[Pa\x04\x08a\x14\x01V[4\x80\x15a\x04\xAFW`\0\x80\xFD[Pa\x04\x80a\x04\xBE6`\x04aV\xF1V[a\x15\xD9V[4\x80\x15a\x04\xCFW`\0\x80\xFD[P`\x01Ta\x04\xE3\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x01a\x03\xDEV[4\x80\x15a\x05\x07W`\0\x80\xFD[P`\rTa\x04\x08\x90`\xFF\x16\x81V[4\x80\x15a\x05!W`\0\x80\xFD[P6`\x01\x19\x81\x015`\xF0\x1C\x90\x035``\x1Ca\x04\xE3V[4\x80\x15a\x05CW`\0\x80\xFD[P6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\x98\x015``\x1Ca\x04\xE3V[4\x80\x15a\x05hW`\0\x80\xFD[P`\0Ta\x04E\x90r\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16\x81V[4\x80\x15a\x05\x98W`\0\x80\xFD[P6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\xC0\x015``\x1Ca\x04\xE3V[a\x03za\x05\xBF6`\x04aW\x8FV[a\x16\x0FV[4\x80\x15a\x05\xD0W`\0\x80\xFD[Pa\x04\x80a\x05\xDF6`\x04aWrV[`\x03` R`\0\x90\x81R`@\x90 T\x81V[4\x80\x15a\x05\xFDW`\0\x80\xFD[Pa\x04\xE3a\x16!V[4\x80\x15a\x06\x12W`\0\x80\xFD[P`@\x80Q\x80\x82\x01\x90\x91R`\x05\x81R\x7F2.2.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` \x82\x01R[`@Qa\x03\xDE\x91\x90aX&V[4\x80\x15a\x06aW`\0\x80\xFD[P`\x08T`\tTa\x06p\x91\x90\x82V[`@\x80Q\x92\x83R` \x83\x01\x91\x90\x91R\x01a\x03\xDEV[4\x80\x15a\x06\x91W`\0\x80\xFD[Pa\x04\x80a\x06\xA06`\x04aX9V[a\x16FV[4\x80\x15a\x06\xB1W`\0\x80\xFD[P6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\xAC\x015``\x1Ca\x04\xE3V[4\x80\x15a\x06\xD6W`\0\x80\xFD[Pa\x06Ha\x16\x80V[4\x80\x15a\x06\xEBW`\0\x80\xFD[Pa\x03za\x06\xFA6`\x04aWrV[a\x16\x8EV[4\x80\x15a\x07\x0BW`\0\x80\xFD[P6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`4\x015a\x04\x80V[4\x80\x15a\x07-W`\0\x80\xFD[P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x03\xC9V[a\x03za\x07b6`\x04aX`V[a\x19\x9FV[4\x80\x15a\x07sW`\0\x80\xFD[P`\tTa\x04\x80V[4\x80\x15a\x07\x88W`\0\x80\xFD[Pa\x03za\x1A\x1FV[a\x03za\x07\x9F6`\x04aW\x8FV[a\x1E\rV[a\x03za\x1E\x1AV[4\x80\x15a\x07\xB8W`\0\x80\xFD[P`\x02Ta\x04\x80V[4\x80\x15a\x07\xCDW`\0\x80\xFD[P6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`X\x015a\x04\x80V[4\x80\x15a\x07\xEFW`\0\x80\xFD[P6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`x\x015a\x04\x80V[4\x80\x15a\x08\x11W`\0\x80\xFD[Pa\x08ga\x08 6`\x04aX9V[`\x07` R`\0\x90\x81R`@\x90 \x80T`\x01\x90\x91\x01T`\xFF\x82\x16\x91a\x01\0\x81\x04c\xFF\xFF\xFF\xFF\x16\x91e\x01\0\0\0\0\0\x90\x91\x04`\x01`\x01`\x80\x1B\x03\x16\x90`\x01`\x01`\xA0\x1B\x03\x16\x84V[`@\x80Q\x94\x15\x15\x85Rc\xFF\xFF\xFF\xFF\x90\x93\x16` \x85\x01R`\x01`\x01`\x80\x1B\x03\x90\x91\x16\x91\x83\x01\x91\x90\x91R`\x01`\x01`\xA0\x1B\x03\x16``\x82\x01R`\x80\x01a\x03\xDEV[4\x80\x15a\x08\xB1W`\0\x80\xFD[P6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\xF4\x015``\x1Ca\x04\xE3V[4\x80\x15a\x08\xD6W`\0\x80\xFD[P`@Q6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`T\x015`\xE0\x1C\x81R` \x01a\x03\xDEV[4\x80\x15a\t\x03W`\0\x80\xFD[P6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\x14\x015a\x04\x80V[4\x80\x15a\t%W`\0\x80\xFD[Pa\x03\xC9a\t46`\x04aX9V[a\x1E\x85V[4\x80\x15a\tEW`\0\x80\xFD[Pa\x04\x80a\tT6`\x04aWrV[`\x0B` R`\0\x90\x81R`@\x90 T\x81V[4\x80\x15a\trW`\0\x80\xFD[Pa\x04\x80a\t\x816`\x04aX\xA1V[a \x1FV[4\x80\x15a\t\x92W`\0\x80\xFD[Pa\t\xA6a\t\xA16`\x04aX9V[a!\xE0V[`@\x80Qc\xFF\xFF\xFF\xFF\x90\x98\x16\x88R`\x01`\x01`\xA0\x1B\x03\x96\x87\x16` \x89\x01R\x95\x90\x94\x16\x94\x86\x01\x94\x90\x94R`\x01`\x01`\x80\x1B\x03\x91\x82\x16``\x86\x01R`\x80\x85\x01R\x91\x82\x16`\xA0\x84\x01R\x16`\xC0\x82\x01R`\xE0\x01a\x03\xDEV[4\x80\x15a\n\x06W`\0\x80\xFD[P`\0Ta\x03\xC9\x90g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[4\x80\x15a\n'W`\0\x80\xFD[Pa\x04\x80a\n66`\x04aWrV[a\"TV[4\x80\x15a\nGW`\0\x80\xFD[P6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\xD4\x015a\x04\x80V[4\x80\x15a\niW`\0\x80\xFD[Pa\x03za\nx6`\x04aX\xCAV[a\"\xACV[4\x80\x15a\n\x89W`\0\x80\xFD[P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x03\xC9V[4\x80\x15a\n\xBCW`\0\x80\xFD[P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x04\x80V[4\x80\x15a\n\xEFW`\0\x80\xFD[Pa\x04Ea\n\xFE6`\x04aX9V[`\x04` R`\0\x90\x81R`@\x90 T`\xFF\x16\x81V[4\x80\x15a\x0B\x1FW`\0\x80\xFD[Pa\x03za\x0B.6`\x04aW\x8FV[a#(V[4\x80\x15a\x0B?W`\0\x80\xFD[Pa\x0BHa&\xEFV[`@Qa\x03\xDE\x93\x92\x91\x90aYVV[4\x80\x15a\x0BcW`\0\x80\xFD[P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x04\x80V[4\x80\x15a\x0B\x96W`\0\x80\xFD[Pa\x04Ea\x0B\xA56`\x04aX9V[`\x06` R`\0\x90\x81R`@\x90 T`\xFF\x16\x81V[`\0\x80T`\x01`\x80\x1B\x90\x04`\xFF\x16`\x02\x81\x11\x15a\x0B\xD9Wa\x0B\xD9aW\x13V[\x14a\x0B\xF7W`@Qc\x06\x7F\xE1\x95`\xE4\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0Tr\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16\x15a\x0CJW`@Q\x7F\x0E\xA2\xE7R\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\x01`@Q\x80\x91\x03\x90\xFD[a\x0Cc6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\x14\x015\x90V[\x90V[a\x0Cza\x0Cu6\x86\x90\x03\x86\x01\x86aY\x91V[a'\x19V[\x14a\x0C\xB1W`@Q\x7F\x9C\xC0\x0B[\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\x01`@Q\x80\x91\x03\x90\xFD[\x82``\x015\x82\x82`@Qa\x0C\xC6\x92\x91\x90aZ\x05V[`@Q\x80\x91\x03\x90 \x14a\r\x05W`@Q\x7F\xD8\x1DX;\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\x01`@Q\x80\x91\x03\x90\xFD[`\0a\rNa\rI\x84\x84\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RPa'u\x92PPPV[a'\xE2V[\x90P`\0a\ru\x82`\x08\x81Q\x81\x10a\rhWa\rhaZ\x15V[` \x02` \x01\x01Qa)\x98V[\x90P` \x81Q\x11\x15a\r\xB3W`@Q\x7F\xD8\x1DX;\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\x01`@Q\x80\x91\x03\x90\xFD[` \x81\x81\x01Q\x82Q\x90\x91\x03`\x03\x1B\x1C6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`X\x015\x81\x03a\x0E\nW`@Q\x7F\xB8\xED\x880\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\x01`@Q\x80\x91\x03\x90\xFD[PP`\x01\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x163\x17\x90UPP`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16r\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x17\x90UPPV[`\0\x80T`\x01`\x80\x1B\x90\x04`\xFF\x16`\x02\x81\x11\x15a\x0E\x98Wa\x0E\x98aW\x13V[\x14a\x0E\xB6W`@Qc\x06\x7F\xE1\x95`\xE4\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0`\x02\x83\x81T\x81\x10a\x0E\xCBWa\x0E\xCBaZ\x15V[\x90`\0R` `\0 \x90`\x05\x02\x01\x90P`\0a\x0E\xE6\x84a\x1E\x85V[\x90Pg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81\x16\x90\x82\x16\x10\x15a\x0FOW`@Q\x7F\xF2D\x0BS\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\x01`@Q\x80\x91\x03\x90\xFD[`\0\x84\x81R`\x06` R`@\x90 T`\xFF\x16\x15a\x0F\x98W`@Q\x7F\xF1\xA9E\x81\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\x01`@Q\x80\x91\x03\x90\xFD[`\0\x84\x81R`\x05` R`@\x90 \x80T\x80\x15\x80\x15a\x0F\xB5WP\x85\x15\x15[\x15a\x10\x18W\x83Td\x01\0\0\0\0\x90\x04`\x01`\x01`\xA0\x1B\x03\x16`\0\x81\x15a\x0F\xDBW\x81a\x0F\xEAV[`\x01\x86\x01T`\x01`\x01`\xA0\x1B\x03\x16[\x90Pa\x0F\xF6\x81\x87a*LV[PPP`\0\x94\x85RPP`\x06` RPP`@\x90 \x80T`\xFF\x19\x16`\x01\x17\x90UV[`\0\x86\x81R`\x07` \x90\x81R`@\x91\x82\x90 \x82Q`\x80\x81\x01\x84R\x81T`\xFF\x81\x16\x15\x15\x80\x83Ra\x01\0\x82\x04c\xFF\xFF\xFF\xFF\x16\x94\x83\x01\x94\x90\x94Re\x01\0\0\0\0\0\x90\x04`\x01`\x01`\x80\x1B\x03\x16\x93\x81\x01\x93\x90\x93R`\x01\x01T`\x01`\x01`\xA0\x1B\x03\x16``\x83\x01Ra\x10\x9CW`\x01`\x01`\x80\x1B\x03`@\x82\x01R`\x01\x81R`\0\x86\x90\x03a\x10\x9CW\x81\x95P[`\0\x86\x82` \x01Qc\xFF\xFF\xFF\xFF\x16a\x10\xB4\x91\x90aZAV[\x90P`\0\x83\x82\x11a\x10\xC5W\x81a\x10\xC7V[\x83[` \x84\x01Q\x90\x91Pc\xFF\xFF\xFF\xFF\x16[\x81\x81\x10\x15a\x11\xE7W`\0\x86\x82\x81T\x81\x10a\x10\xF2Wa\x10\xF2aZ\x15V[`\0\x91\x82R` \x80\x83 \x90\x91\x01T\x80\x83R`\x06\x90\x91R`@\x90\x91 T\x90\x91P`\xFF\x16a\x11JW`@Q\x7F\x9A\x07fF\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\x01`@Q\x80\x91\x03\x90\xFD[`\0`\x02\x82\x81T\x81\x10a\x11_Wa\x11_aZ\x15V[`\0\x91\x82R` \x90\x91 `\x05\x90\x91\x02\x01\x80T\x90\x91Pd\x01\0\0\0\0\x90\x04`\x01`\x01`\xA0\x1B\x03\x16\x15\x80\x15a\x11\xA6WP`\x04\x81\x01T`@\x87\x01Q`\x01`\x01`\x80\x1B\x03\x91\x82\x16\x91\x16\x11[\x15a\x11\xD2W`\x01\x81\x01T`\x01`\x01`\xA0\x1B\x03\x16``\x87\x01R`\x04\x81\x01T`\x01`\x01`\x80\x1B\x03\x16`@\x87\x01R[PP\x80\x80a\x11\xDF\x90aZYV[\x91PPa\x10\xD6V[Pc\xFF\xFF\xFF\xFF\x81\x81\x16` \x85\x81\x01\x91\x82R`\0\x8C\x81R`\x07\x90\x91R`@\x90\x81\x90 \x86Q\x81T\x93Q\x92\x88\x01Q\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\x90\x94\x16\x90\x15\x15\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\xFF\x16\x17a\x01\0\x92\x90\x94\x16\x91\x82\x02\x93\x90\x93\x17\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xFF\xFF\xFF\xFF\xFF\x16e\x01\0\0\0\0\0`\x01`\x01`\x80\x1B\x03\x90\x93\x16\x92\x90\x92\x02\x91\x90\x91\x17\x82U``\x85\x01Q`\x01\x90\x92\x01\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16`\x01`\x01`\xA0\x1B\x03\x90\x93\x16\x92\x90\x92\x17\x90\x91U\x84\x90\x03a\x13\xF6W``\x83\x01Q`\0\x8A\x81R`\x06` R`@\x90 \x80T`\xFF\x19\x16`\x01\x17\x90U\x89\x15\x80\x15a\x133WP`\0Tr\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16[\x15a\x13\x8EW`\x01T`\x01`\x01`\xA0\x1B\x03\x16a\x13N\x81\x8Aa*LV[\x88T`\x01`\x01`\xA0\x1B\x03\x90\x91\x16d\x01\0\0\0\0\x02\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xFF\xFF\xFF\xFF\x90\x91\x16\x17\x88Ua\x13\xF4V[a\x13\xBB`\x01`\x01`\xA0\x1B\x03\x82\x16\x15a\x13\xA6W\x81a\x13\xB5V[`\x01\x89\x01T`\x01`\x01`\xA0\x1B\x03\x16[\x89a*LV[\x87T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xFF\xFF\xFF\xFF\x16d\x01\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x83\x16\x02\x17\x88U[P[PPPPPPPPPV[`\0\x80`\0T`\x01`\x80\x1B\x90\x04`\xFF\x16`\x02\x81\x11\x15a\x14\"Wa\x14\"aW\x13V[\x14a\x14@W`@Qc\x06\x7F\xE1\x95`\xE4\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0\x80R`\x06` R\x7FT\xCD\xD3i\xE4\xE8\xA8Q^R\xCAr\xEC\x81l!\x01\x83\x1A\xD1\xF1\x8B\xF4A\x02\xED\x17\x14Y\xC9\xB4\xF8T`\xFF\x16a\x14\xA4W`@Q\x7F\x9A\x07fF\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\x01`@Q\x80\x91\x03\x90\xFD[`\0`\x01`\x01`\xA0\x1B\x03\x16`\x02`\0\x81T\x81\x10a\x14\xC3Wa\x14\xC3aZ\x15V[`\0\x91\x82R` \x90\x91 `\x05\x90\x91\x02\x01Td\x01\0\0\0\0\x90\x04`\x01`\x01`\xA0\x1B\x03\x16\x14a\x14\xF1W`\x01a\x14\xF4V[`\x02[`\0\x80Tg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFFB\x16h\x01\0\0\0\0\0\0\0\0\x02\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16\x81\x17\x83U\x92\x93P\x83\x92\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x17`\x01`\x80\x1B\x83`\x02\x81\x11\x15a\x15\x98Wa\x15\x98aW\x13V[\x02\x17\x90U`\x02\x81\x11\x15a\x15\xADWa\x15\xADaW\x13V[`@Q\x7F^\x18o\t\xB9\xC94\x91\xF1N'~\xEA\x7F\xAA]\xE6\xA2\xD4\xBD\xA7Zy\xAFz6\x84\xFB\xFBB\xDA`\x90`\0\x90\xA2\x90V[`\x05` R\x81`\0R`@`\0 \x81\x81T\x81\x10a\x15\xF5W`\0\x80\xFD[\x90`\0R` `\0 \x01`\0\x91P\x91PPT\x81V[\x90P\x90V[a\x16\x1C\x83\x83\x83`\x01a\x19\x9FV[PPPV[`\0a\x16\na\x162`\xF4`\x14aZAV[6`\x01\x19\x81\x015`\xF0\x1C\x90\x03\x015``\x1C\x90V[`\0\x81\x81R`\x07` \x90\x81R`@\x80\x83 `\x05\x90\x92R\x82 \x80T\x82Ta\x16w\x90a\x01\0\x90\x04c\xFF\xFF\xFF\xFF\x16\x82aZsV[\x95\x94PPPPPV[``a\x16\n`X` a*\x8EV[a\x16\x96a\x1A\x1FV[`\0`\x02`\rT`\xFF\x16`\x02\x81\x11\x15a\x16\xB1Wa\x16\xB1aW\x13V[\x03a\x16\xD5WP`\x01`\x01`\xA0\x1B\x03\x81\x16`\0\x90\x81R`\x0B` R`@\x90 Ta\x17DV[`\x01`\rT`\xFF\x16`\x02\x81\x11\x15a\x16\xEEWa\x16\xEEaW\x13V[\x03a\x17\x12WP`\x01`\x01`\xA0\x1B\x03\x81\x16`\0\x90\x81R`\x03` R`@\x90 Ta\x17DV[`@Q\x7F\x07\x8A=\xF4\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xA0\x1B\x03\x82\x16`\0\x90\x81R`\x0C` R`@\x90 T`\xFF\x16a\x18\"W`\x01`\x01`\xA0\x1B\x03\x82\x16`\0\x90\x81R`\x0C` R`@\x90 \x80T`\xFF\x19\x16`\x01\x17\x90Ua\x17\xA1`\xC0`\x01\x196\x90\x81\x015`\xF0\x1C\x90\x03\x015``\x1C\x90V[`@Q\x7F~\xEE(\x8D\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`\x01`\x01`\xA0\x1B\x03\x84\x81\x16`\x04\x83\x01R`$\x82\x01\x84\x90R\x91\x90\x91\x16\x90c~\xEE(\x8D\x90`D\x01`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a\x18\x06W`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x18\x1AW=`\0\x80>=`\0\xFD[PPPPPPV[\x80`\0\x03a\x18\\W`@Q\x7F\x17\xBF\xE5\xF7\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xA0\x1B\x03\x82\x16`\0\x90\x81R`\x0B` \x90\x81R`@\x80\x83 \x83\x90U`\x03\x90\x91R\x81 U6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\xC0\x015``\x1C`@Q\x7F\xF3\xFE\xF3\xA3\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`\x01`\x01`\xA0\x1B\x03\x84\x81\x16`\x04\x83\x01R`$\x82\x01\x84\x90R\x91\x90\x91\x16\x90c\xF3\xFE\xF3\xA3\x90`D\x01`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a\x18\xFAW`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x19\x0EW=`\0\x80>=`\0\xFD[PPPP`\0\x82`\x01`\x01`\xA0\x1B\x03\x16\x82`@Q`\0`@Q\x80\x83\x03\x81\x85\x87Z\xF1\x92PPP=\x80`\0\x81\x14a\x19_W`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=`\0` \x84\x01>a\x19dV[``\x91P[PP\x90P\x80a\x16\x1CW`@Q\x7F\x83\xE6\xCCk\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\x01`@Q\x80\x91\x03\x90\xFD[6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\xF4\x015``\x1C3\x14\x80a\x19\xD7WPa\x19\xC2a\x16!V[`\x01`\x01`\xA0\x1B\x03\x163`\x01`\x01`\xA0\x1B\x03\x16\x14[a\x1A\rW`@Q\x7F\xD3\x86\xEF>\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\x01`@Q\x80\x91\x03\x90\xFD[a\x1A\x19\x84\x84\x84\x84a*\xC2V[PPPPV[`\x02`\rT`\xFF\x16`\x02\x81\x11\x15a\x1A8Wa\x1A8aW\x13V[\x14\x80a\x1AZWP`\x01`\rT`\xFF\x16`\x02\x81\x11\x15a\x1AXWa\x1AXaW\x13V[\x14[\x15a\x1AaWV[`\0`\rT`\xFF\x16`\x02\x81\x11\x15a\x1AzWa\x1AzaW\x13V[\x14a\x1A\xB1W`@Q\x7F\x07\x8A=\xF4\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\x01`@Q\x80\x91\x03\x90\xFD[6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\xAC\x015``\x1C`\x01`\x01`\xA0\x1B\x03\x16c\\\x97Z\xBB`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x1B\x01W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x1B%\x91\x90aZ\x8AV[\x15a\x1B\\W`@Q\x7F7\x9A~\xD9\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\x01`@Q\x80\x91\x03\x90\xFD[`\0Th\x01\0\0\0\0\0\0\0\0\x90\x04g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\0\x03a\x1B\xB8W`@Q\x7F\xC1\x05&\n\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\x01`@Q\x80\x91\x03\x90\xFD[`\x006`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\xAC\x015``\x1C`@Q\x7F\x03\x14\xD2\xB3\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\x81R0`\x04\x82\x01R`\x01`\x01`\xA0\x1B\x03\x91\x90\x91\x16\x90c\x03\x14\xD2\xB3\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x1C,W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x1CP\x91\x90aZ\x8AV[\x90P\x80a\x1C\x89W`@Q\x7FHQ\xBD\x9B\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\x01`@Q\x80\x91\x03\x90\xFD[6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\xAC\x015``\x1C`@Q\x7F\x17\xCF!\xA9\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\x81R0`\x04\x82\x01R`\x01`\x01`\xA0\x1B\x03\x91\x90\x91\x16\x90c\x17\xCF!\xA9\x90`$\x01`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a\x1C\xF8W`\0\x80\xFD[PZ\xF1\x92PPP\x80\x15a\x1D\tWP`\x01[P`\x006`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\xAC\x015``\x1C`@Q\x7FIk\x9C\x16\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\x81R0`\x04\x82\x01R`\x01`\x01`\xA0\x1B\x03\x91\x90\x91\x16\x90cIk\x9C\x16\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x1D~W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x1D\xA2\x91\x90aZ\x8AV[\x90P\x80\x15a\x1D\xBCW`\r\x80T`\xFF\x19\x16`\x01\x17\x90Ua\x1D\xCAV[`\r\x80T`\xFF\x19\x16`\x02\x17\x90U[`\rT`@Q\x7F\x99\x08\xEA\xAC\x06E\xDF\x9D\x07\x04\xD0j\xDC\x9E\x073|\x95\x1D\xE2\xF0k_(6\x15\x1DH\xD5\xE4r/\x91a\x1E\x01\x91`\xFF\x90\x91\x16\x90aWJV[`@Q\x80\x91\x03\x90\xA1PPV[a\x16\x1C\x83\x83\x83`\0a\x19\x9FV[a\x1E\"a4EV[6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\xF4\x015``\x1C2\x14a\x1EmW`@Q\x7F\xD3\x86\xEF>\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\x01`@Q\x80\x91\x03\x90\xFD[V[6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`T\x015`\xE0\x1C\x90V[`\0\x80`\0T`\x01`\x80\x1B\x90\x04`\xFF\x16`\x02\x81\x11\x15a\x1E\xA6Wa\x1E\xA6aW\x13V[\x14a\x1E\xC4W`@Qc\x06\x7F\xE1\x95`\xE4\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0`\x02\x83\x81T\x81\x10a\x1E\xD9Wa\x1E\xD9aZ\x15V[`\0\x91\x82R` \x82 `\x05\x90\x91\x02\x01\x80T\x90\x92Pc\xFF\xFF\xFF\xFF\x90\x81\x16\x14a\x1F?W\x81T`\x02\x80T\x90\x91c\xFF\xFF\xFF\xFF\x16\x90\x81\x10a\x1F\x17Wa\x1F\x17aZ\x15V[\x90`\0R` `\0 \x90`\x05\x02\x01`\x04\x01`\x10\x90T\x90a\x01\0\n\x90\x04`\x01`\x01`\x80\x1B\x03\x16\x90P[`\x04\x82\x01T`\0\x90a\x1Fj\x90`\x01`\x80\x1B\x90\x04g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90V[a\x1F~\x90g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16BaZsV[a\x1F\x94a\x1F]\x84`\x01`\x01`\x80\x1B\x03\x16`@\x1C\x90V[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a\x1F\xA8\x91\x90aZAV[\x90Pg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x11a\x1F\xF5W\x80a\x16wV[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x95\x94PPPPPV[`\0\x80a \x9C\x83`\x01`\x01`\x80\x1B\x03\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1Fc\x07\xC4\xAC\xDD`\xE0\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\xFF\x16\x90P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81\x11\x15a \xFBW`@Q\x7FV\xF5{+\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\x01`@Q\x80\x91\x03\x90\xFD[d.\x90\xED\xD0\0b\x06\x1A\x80c\x11\xE1\xA3\0`\0a!\x16\x83\x83aZ\xBDV[\x90Pg\r\xE0\xB6\xB3\xA7d\0\0`\0a!M\x82\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0aZ\xD1V[\x90P`\0a!ka!fg\r\xE0\xB6\xB3\xA7d\0\0\x86aZ\xD1V[a<\xC6V[\x90P`\0a!y\x84\x84a?\x18V[\x90P`\0a!\x87\x83\x83a?gV[\x90P`\0a!\x94\x82a?\x95V[\x90P`\0a!\xB3\x82a!\xAEg\r\xE0\xB6\xB3\xA7d\0\0\x8FaZ\xD1V[aA}V[\x90P`\0a!\xC1\x8B\x83a?gV[\x90Pa!\xCD\x81\x8DaZ\xD1V[\x9F\x9EPPPPPPPPPPPPPPPV[`\x02\x81\x81T\x81\x10a!\xF0W`\0\x80\xFD[`\0\x91\x82R` \x90\x91 `\x05\x90\x91\x02\x01\x80T`\x01\x82\x01T`\x02\x83\x01T`\x03\x84\x01T`\x04\x90\x94\x01Tc\xFF\xFF\xFF\xFF\x84\x16\x95Pd\x01\0\0\0\0\x90\x93\x04`\x01`\x01`\xA0\x1B\x03\x90\x81\x16\x94\x92\x16\x92`\x01`\x01`\x80\x1B\x03\x91\x82\x16\x92\x91\x80\x82\x16\x91`\x01`\x80\x1B\x90\x04\x16\x87V[`\0`\x02`\rT`\xFF\x16`\x02\x81\x11\x15a\"oWa\"oaW\x13V[\x03a\"\x90WP`\x01`\x01`\xA0\x1B\x03\x16`\0\x90\x81R`\x0B` R`@\x90 T\x90V[P`\x01`\x01`\xA0\x1B\x03\x16`\0\x90\x81R`\x03` R`@\x90 T\x90V[6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\xF4\x015``\x1C3\x14\x80a\"\xE4WPa\"\xCFa\x16!V[`\x01`\x01`\xA0\x1B\x03\x163`\x01`\x01`\xA0\x1B\x03\x16\x14[a#\x1AW`@Q\x7F\xD3\x86\xEF>\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\x01`@Q\x80\x91\x03\x90\xFD[a\x18\x1A\x86\x86\x86\x86\x86\x86aA\xB7V[`\0\x80T`\x01`\x80\x1B\x90\x04`\xFF\x16`\x02\x81\x11\x15a#GWa#GaW\x13V[\x14a#eW`@Qc\x06\x7F\xE1\x95`\xE4\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0\x80`\0\x80a#t\x86aF\xEBV[\x93P\x93P\x93P\x93P`\0a#\x8A\x85\x85\x85\x85aJDV[\x90P`\x006`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\x98\x015``\x1C`\x01`\x01`\xA0\x1B\x03\x16c}\xC0\xD1\xD0`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a#\xDEW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a$\x02\x91\x90aZ\xF0V[\x90P`\x01\x89\x03a$\xCFW`\x01`\x01`\xA0\x1B\x03\x81\x16cR\xF0\xF3\xAD\x8A\x84a$36`\x01\x19\x81\x015`\xF0\x1C\x90\x03`4\x015\x90V[`@Q\x7F\xFF\xFF\xFF\xFF\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`\xE0\x86\x90\x1B\x16\x81R`\x04\x81\x01\x93\x90\x93R`$\x83\x01\x91\x90\x91R`D\x82\x01R` `d\x82\x01R`\x84\x81\x01\x8A\x90R`\xA4\x01[` `@Q\x80\x83\x03\x81`\0\x87Z\xF1\x15\x80\x15a$\xA5W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a$\xC9\x91\x90a[\rV[Pa\x13\xF6V[`\x02\x89\x03a$\xEEW`\x01`\x01`\xA0\x1B\x03\x81\x16cR\xF0\xF3\xAD\x8A\x84\x89a$3V[`\x03\x89\x03a%\rW`\x01`\x01`\xA0\x1B\x03\x81\x16cR\xF0\xF3\xAD\x8A\x84\x87a$3V[`\x04\x89\x03a&BW`\0a%J`\x01`\x01`\x80\x1B\x03\x85\x16\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0aJ\xE3V[`\tTa%W\x91\x90aZAV[a%b\x90`\x01aZAV[\x90P6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`X\x015\x81\x10a%\x8FW6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`X\x015a%\x91V[\x80[\x90P`\x01`\x01`\xA0\x1B\x03\x82\x16cR\xF0\xF3\xAD\x8B\x85`@Q`\xE0\x84\x90\x1B\x7F\xFF\xFF\xFF\xFF\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\x16\x81R`\x04\x81\x01\x92\x90\x92R`$\x82\x01R`\xC0\x84\x90\x1B`D\x82\x01R`\x08`d\x82\x01R`\x84\x81\x01\x8B\x90R`\xA4\x01` `@Q\x80\x83\x03\x81`\0\x87Z\xF1\x15\x80\x15a&\x17W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a&;\x91\x90a[\rV[PPa\x13\xF6V[`\x05\x89\x03a&\xBDW`@Q\x7FR\xF0\xF3\xAD\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\x81\x01\x8A\x90R`$\x81\x01\x83\x90R6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\xD4\x015`\xC0\x1B`D\x82\x01R`\x08`d\x82\x01R`\x84\x81\x01\x88\x90R`\x01`\x01`\xA0\x1B\x03\x82\x16\x90cR\xF0\xF3\xAD\x90`\xA4\x01a$\x86V[`@Q\x7F\xFF\x13~e\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\x01`@Q\x80\x91\x03\x90\xFD[6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`T\x81\x015`\xE0\x1C\x90`\x14\x015``a'\x12a\x16\x80V[\x90P\x90\x91\x92V[`\0\x81`\0\x01Q\x82` \x01Q\x83`@\x01Q\x84``\x01Q`@Q` \x01a'X\x94\x93\x92\x91\x90\x93\x84R` \x84\x01\x92\x90\x92R`@\x83\x01R``\x82\x01R`\x80\x01\x90V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 \x90P\x91\x90PV[`@\x80Q\x80\x82\x01\x90\x91R`\0\x80\x82R` \x82\x01R\x81Q`\0\x03a'\xC4W`@Q\x7FZ\xB4X\xFB\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\x01`@Q\x80\x91\x03\x90\xFD[P`@\x80Q\x80\x82\x01\x90\x91R\x81Q\x81R` \x91\x82\x01\x91\x81\x01\x91\x90\x91R\x90V[```\0\x80`\0a'\xF2\x85aKxV[\x91\x94P\x92P\x90P`\x01\x81`\x01\x81\x11\x15a(\rWa(\raW\x13V[\x14a(DW`@Q\x7FK\x9Cj\xBE\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\x01`@Q\x80\x91\x03\x90\xFD[\x84Qa(P\x83\x85aZAV[\x14a(\x87W`@Q\x7F\\U7\xB8\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\x01`@Q\x80\x91\x03\x90\xFD[`@\x80Q` \x80\x82Ra\x04 \x82\x01\x90\x92R\x90\x81` \x01[`@\x80Q\x80\x82\x01\x90\x91R`\0\x80\x82R` \x82\x01R\x81R` \x01\x90`\x01\x90\x03\x90\x81a(\x9EW\x90PP\x93P`\0\x83[\x86Q\x81\x10\x15a)\x8CW`\0\x80a)\x11`@Q\x80`@\x01`@R\x80\x85\x8C`\0\x01Qa(\xF5\x91\x90aZsV[\x81R` \x01\x85\x8C` \x01Qa)\n\x91\x90aZAV[\x90RaKxV[P\x91P\x91P`@Q\x80`@\x01`@R\x80\x83\x83a)-\x91\x90aZAV[\x81R` \x01\x84\x8B` \x01Qa)B\x91\x90aZAV[\x81RP\x88\x85\x81Q\x81\x10a)WWa)WaZ\x15V[` \x90\x81\x02\x91\x90\x91\x01\x01Ra)m`\x01\x85aZAV[\x93Pa)y\x81\x83aZAV[a)\x83\x90\x84aZAV[\x92PPPa(\xCBV[P\x84RP\x91\x93\x92PPPV[```\0\x80`\0a)\xA8\x85aKxV[\x91\x94P\x92P\x90P`\0\x81`\x01\x81\x11\x15a)\xC3Wa)\xC3aW\x13V[\x14a)\xFAW`@Q\x7F\x1F\xF9\xB2\xE4\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\x01`@Q\x80\x91\x03\x90\xFD[a*\x04\x82\x84aZAV[\x85Q\x14a*=W`@Q\x7F\\U7\xB8\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\x01`@Q\x80\x91\x03\x90\xFD[a\x16w\x85` \x01Q\x84\x84aP\x16V[`\x02\x81\x01T`\x01`\x01`\xA0\x1B\x03\x83\x16`\0\x90\x81R`\x03` R`@\x81 \x80T`\x01`\x01`\x80\x1B\x03\x90\x93\x16\x92\x90\x91\x90a*\x85\x90\x84\x90aZAV[\x90\x91UPPPPV[`@Q\x81\x81R6`\x01\x19\x81\x015`\xF0\x1C\x90\x03\x82\x84\x82\x01` \x84\x017\x82` \x83\x01\x01`\0\x81R` \x81\x01`@RPP\x92\x91PPV[`\0\x80T`\x01`\x80\x1B\x90\x04`\xFF\x16`\x02\x81\x11\x15a*\xE1Wa*\xE1aW\x13V[\x14a*\xFFW`@Qc\x06\x7F\xE1\x95`\xE4\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0`\x02\x84\x81T\x81\x10a+\x14Wa+\x14aZ\x15V[`\0\x91\x82R` \x91\x82\x90 `@\x80Q`\xE0\x81\x01\x82R`\x05\x90\x93\x02\x90\x91\x01\x80Tc\xFF\xFF\xFF\xFF\x81\x16\x84R`\x01`\x01`\xA0\x1B\x03d\x01\0\0\0\0\x90\x91\x04\x81\x16\x94\x84\x01\x94\x90\x94R`\x01\x81\x01T\x90\x93\x16\x90\x82\x01R`\x02\x82\x01T`\x01`\x01`\x80\x1B\x03\x90\x81\x16``\x83\x01R`\x03\x83\x01T`\x80\x83\x01\x81\x90R`\x04\x90\x93\x01T\x80\x82\x16`\xA0\x84\x01R`\x01`\x80\x1B\x90\x04\x16`\xC0\x82\x01R\x91P\x85\x14a+\xD8W`@Q\x7F0\x14\x032\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\x01`@Q\x80\x91\x03\x90\xFD[`\xA0\x81\x01Q`\0\x83\x15`\x01`\x01`\x80\x1B\x03\x83\x16\x17`\x01\x1B\x90P`\0a,m\x82`\x01`\x01`\x80\x1B\x03\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1Fc\x07\xC4\xAC\xDD`\xE0\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\xFF\x16\x90P\x86\x15\x80a,\xA8WPa,\xA5\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x02aZAV[\x81\x14[\x80\x15a,\xB2WP\x84\x15[\x15a,\xE9W`@Q\x7F\xA4&7\xBC\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\x01`@Q\x80\x91\x03\x90\xFD[`\0Tr\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16\x80\x15a-\x0FWP\x86\x15[\x15a-FW`@Q\x7F\x0E\xA2\xE7R\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\x01`@Q\x80\x91\x03\x90\xFD[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81\x11\x15a-\xA0W`@Q\x7FV\xF5{+\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\x01`@Q\x80\x91\x03\x90\xFD[a-\xCB\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01aZAV[\x81\x03a-\xDDWa-\xDD\x86\x88\x85\x88aP\xABV[4a-\xE7\x83a \x1FV[\x14a.\x1EW`@Q\x7F\x86 \xAA\x19\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\x01`@Q\x80\x91\x03\x90\xFD[`\0a.)\x88a\x1E\x85V[\x90Pg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81\x16\x90\x82\x16\x03a.\x91W`@Q\x7F3\x81\xD1\x14\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\x01`@Q\x80\x91\x03\x90\xFD[`\0a.\xBE`\x01\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0aZsV[\x83\x03a/\xD4W6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\x98\x015``\x1C`\x01`\x01`\xA0\x1B\x03\x16c}\xC0\xD1\xD0`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a/\x14W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a/8\x91\x90aZ\xF0V[`\x01`\x01`\xA0\x1B\x03\x16c\xF3\xF4\x80\xD9`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a/uW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a/\x99\x91\x90a[\rV[a/\xCD\x90\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a[&V[\x90Pa0gV[a/\xFF`\x01\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0aZsV[\x83\x03a0:Wa/\xCD\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\x02a[RV[P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16[a0\x9B\x81\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a[\x82V[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a0\xB6\x83g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90V[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x11\x15a0\xFDWa0\xFA\x81\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a[\x82V[\x91P[`\0`@\x83\x90\x1BB\x17`\0\x8A\x81R`\x80\x87\x90\x1B`\x01`\x01`\x80\x1B\x03\x8D\x16\x17` R`@\x81 \x91\x92P\x90`\0\x81\x81R`\x04` R`@\x90 T\x90\x91P`\xFF\x16\x15a1rW`@Q\x7F\x80I~;\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x04`\0\x83\x81R` \x01\x90\x81R` \x01`\0 `\0a\x01\0\n\x81T\x81`\xFF\x02\x19\x16\x90\x83\x15\x15\x02\x17\x90UP`\x02`@Q\x80`\xE0\x01`@R\x80\x8Dc\xFF\xFF\xFF\xFF\x16\x81R` \x01`\0`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x013`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x014`\x01`\x01`\x80\x1B\x03\x16\x81R` \x01\x8C\x81R` \x01\x88`\x01`\x01`\x80\x1B\x03\x16\x81R` \x01\x84`\x01`\x01`\x80\x1B\x03\x16\x81RP\x90\x80`\x01\x81T\x01\x80\x82U\x80\x91PP`\x01\x90\x03\x90`\0R` `\0 \x90`\x05\x02\x01`\0\x90\x91\x90\x91\x90\x91P`\0\x82\x01Q\x81`\0\x01`\0a\x01\0\n\x81T\x81c\xFF\xFF\xFF\xFF\x02\x19\x16\x90\x83c\xFF\xFF\xFF\xFF\x16\x02\x17\x90UP` \x82\x01Q\x81`\0\x01`\x04a\x01\0\n\x81T\x81`\x01`\x01`\xA0\x1B\x03\x02\x19\x16\x90\x83`\x01`\x01`\xA0\x1B\x03\x16\x02\x17\x90UP`@\x82\x01Q\x81`\x01\x01`\0a\x01\0\n\x81T\x81`\x01`\x01`\xA0\x1B\x03\x02\x19\x16\x90\x83`\x01`\x01`\xA0\x1B\x03\x16\x02\x17\x90UP``\x82\x01Q\x81`\x02\x01`\0a\x01\0\n\x81T\x81`\x01`\x01`\x80\x1B\x03\x02\x19\x16\x90\x83`\x01`\x01`\x80\x1B\x03\x16\x02\x17\x90UP`\x80\x82\x01Q\x81`\x03\x01U`\xA0\x82\x01Q\x81`\x04\x01`\0a\x01\0\n\x81T\x81`\x01`\x01`\x80\x1B\x03\x02\x19\x16\x90\x83`\x01`\x01`\x80\x1B\x03\x16\x02\x17\x90UP`\xC0\x82\x01Q\x81`\x04\x01`\x10a\x01\0\n\x81T\x81`\x01`\x01`\x80\x1B\x03\x02\x19\x16\x90\x83`\x01`\x01`\x80\x1B\x03\x16\x02\x17\x90UPPP`\x05`\0\x8C\x81R` \x01\x90\x81R` \x01`\0 `\x01`\x02\x80T\x90Pa3i\x91\x90aZsV[\x81T`\x01\x81\x01\x83U`\0\x92\x83R` \x80\x84 \x90\x91\x01\x91\x90\x91U3\x82R`\x0B\x90R`@\x81 \x80T4\x92\x90a3\x9D\x90\x84\x90aZAV[\x90\x91UPP6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\xC0\x015``\x1C`\x01`\x01`\xA0\x1B\x03\x16c\xD0\xE3\r\xB04`@Q\x82c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01`\0`@Q\x80\x83\x03\x81\x85\x88\x80;\x15\x80\x15a3\xEFW`\0\x80\xFD[PZ\xF1\x15\x80\x15a4\x03W=`\0\x80>=`\0\xFD[PP`@Q3\x93P\x8D\x92P\x8E\x91P\x7F\x9B2Et\x0E\xC3\xB1U\t\x8AU\xBE\x84\x95zM\xA1>\xAF\x7F\x14\xA8\xBCoS\x12l\x0B\x93P\xF2\xBE\x90`\0\x90\xA4PPPPPPPPPPPPV[`\0Tq\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16\x15a4\x97W`@Q\x7F\r\xC1I\xF0\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\x01`@Q\x80\x91\x03\x90\xFD[a4\x9FaR:V[6\x14a4\xD7W`@Q\x7F\x98$\xBD\xAB\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\x01`@Q\x80\x91\x03\x90\xFD[`\0\x806`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\xAC\x015``\x1C`\x01`\x01`\xA0\x1B\x03\x16c\xD8>\xF2g`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01`@\x80Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a5)W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a5M\x91\x90a[\xABV[\x90\x92P\x90P\x81a5\x89W`@Q\x7Fjk\xC3\xB2\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\x01`@Q\x80\x91\x03\x90\xFD[`@\x80Q\x80\x82\x01\x90\x91R\x82\x81R` \x01\x81\x90R`\x08\x82\x90U`\t\x81\x90U\x806`\x01\x19\x81\x015`\xF0\x1C\x90\x03`X\x015\x11a6\x04W`@Q\x7F\xF4\x029\xDB\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\x81R6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\x14\x015`\x04\x82\x01R`$\x01[`@Q\x80\x91\x03\x90\xFD[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\x98\x015``\x1C`\x01`\x01`\xA0\x1B\x03\x16c}\xC0\xD1\xD0`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a6]W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a6\x81\x91\x90aZ\xF0V[`\x01`\x01`\xA0\x1B\x03\x16c\xF3\xF4\x80\xD9`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a6\xBEW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a6\xE2\x91\x90a[\rV[\x11\x15a7\x1AW`@Q\x7F\xB4\xE1$3\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\x01`@Q\x80\x91\x03\x90\xFD[`\0a7Q\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\x02aZ\xD1V[\x90P`\x006`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\x98\x015``\x1C`\x01`\x01`\xA0\x1B\x03\x16c}\xC0\xD1\xD0`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a7\xA5W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a7\xC9\x91\x90aZ\xF0V[`\x01`\x01`\xA0\x1B\x03\x16c\xF3\xF4\x80\xD9`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a8\x06W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a8*\x91\x90a[\rV[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a8e\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90V[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a8y\x91\x90aZAV[\x90P`\0a8\x87\x83\x83aROV[\x90Pg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a8\xCBW`@Q\x7F\x8Dw\xEC\xAC\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\x01`@Q\x80\x91\x03\x90\xFD[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x11\x15a9CW`@Q\x7F\x8Dw\xEC\xAC\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\x01`@Q\x80\x91\x03\x90\xFD[`@\x80Q`\xE0\x81\x01\x82Rc\xFF\xFF\xFF\xFF\x80\x82R`\0` \x80\x84\x01\x82\x81R6`\x01\x19\x81\x015`\xF0\x1C\x90\x03\x805``\x90\x81\x1C\x87\x89\x01\x81\x81R`\x01`\x01`\x80\x1B\x034\x81\x81\x16\x94\x8B\x01\x94\x85R`\x14\x90\x95\x015`\x80\x8B\x01\x90\x81R`\x01`\xA0\x8C\x01\x81\x81RB\x84\x16`\xC0\x8E\x01\x90\x81R`\x02\x80T\x93\x84\x01\x81U\x8CR\x9CQ\x7F@W\x87\xFA\x12\xA8#\xE0\xF2\xB7c\x1C\xC4\x1B;\xA8\x82\x8B3!\xCA\x81\x11\x11\xFAu\xCD:\xA3\xBBZ\xCE`\x05\x90\x93\x02\x92\x83\x01\x80T\x9AQ\x91\x90\x9D\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x9A\x16\x99\x90\x99\x17d\x01\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x9A\x8B\x16\x02\x17\x90\x9BU\x92Q\x7F@W\x87\xFA\x12\xA8#\xE0\xF2\xB7c\x1C\xC4\x1B;\xA8\x82\x8B3!\xCA\x81\x11\x11\xFAu\xCD:\xA3\xBBZ\xCF\x84\x01\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x91\x90\x98\x16\x17\x90\x96U\x92Q\x7F@W\x87\xFA\x12\xA8#\xE0\xF2\xB7c\x1C\xC4\x1B;\xA8\x82\x8B3!\xCA\x81\x11\x11\xFAu\xCD:\xA3\xBBZ\xD0\x82\x01\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x91\x85\x16\x91\x90\x91\x17\x90U\x93Q\x7F@W\x87\xFA\x12\xA8#\xE0\xF2\xB7c\x1C\xC4\x1B;\xA8\x82\x8B3!\xCA\x81\x11\x11\xFAu\xCD:\xA3\xBBZ\xD1\x85\x01U\x95Q\x96Q\x96\x81\x16`\x01`\x80\x1B\x97\x90\x91\x16\x96\x90\x96\x02\x95\x90\x95\x17\x7F@W\x87\xFA\x12\xA8#\xE0\xF2\xB7c\x1C\xC4\x1B;\xA8\x82\x8B3!\xCA\x81\x11\x11\xFAu\xCD:\xA3\xBBZ\xD2\x90\x91\x01U\x81Tq\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x17\x82U\x91\x81R`\x0B\x90\x91R\x91\x82 \x80T\x91\x92\x90\x91a;\x84\x90\x84\x90aZAV[\x90\x91UPP6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\xC0\x015``\x1C`\x01`\x01`\xA0\x1B\x03\x16c\xD0\xE3\r\xB04`@Q\x82c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01`\0`@Q\x80\x83\x03\x81\x85\x88\x80;\x15\x80\x15a;\xD6W`\0\x80\xFD[PZ\xF1\x15\x80\x15a;\xEAW=`\0\x80>=`\0\xFD[PP`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\x16Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x17\x90UPa<-\x91Pa\x1Eo\x90PV[c\xFF\xFF\xFF\xFF\x166`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\xAC\x015``\x1C`\x01`\x01`\xA0\x1B\x03\x16c<\x9F9|`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a<\x83W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a<\xA7\x91\x90a[\xCFV[`\n\x80T`\xFF\x19\x16c\xFF\xFF\xFF\xFF\x92\x90\x92\x16\x92\x90\x92\x14\x17\x90UPPPPPV[`\x01`\x01`\x80\x1B\x03\x81\x11`\x07\x1B\x81\x81\x1Cg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x10`\x06\x1B\x17\x81\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x81\x81\x1Ca\xFF\xFF\x10`\x04\x1B\x17\x81\x81\x1C`\xFF\x10`\x03\x1B\x17`\0\x82\x13a=\x1CWc\x16\x15\xE68`\0R`\x04`\x1C\xFD[\x7F\xF8\xF9\xF9\xFA\xF9\xFD\xFA\xFB\xF9\xFD\xFC\xFD\xFA\xFB\xFC\xFE\xF9\xFA\xFD\xFA\xFC\xFC\xFB\xFE\xFA\xFA\xFC\xFB\xFF\xFF\xFF\xFFo\x84!\x08B\x10\x84!\x08\xCCc\x18\xC6\xDBmT\xBE\x83\x83\x1C\x1C`\x1F\x16\x1A\x18\x90\x81\x1B`\x9F\x90\x81\x1ClFWr\xB2\xBB\xBB_\x82K\x15 z0\x81\x01\x81\x02``\x90\x81\x1Dm\x03\x88\xEA\xA2t\x12\xD5\xAC\xA0&\x81]cn\x01\x82\x02\x81\x1Dm\r\xF9\x9A\xC5\x02\x03\x1B\xF9S\xEF\xF4r\xFD\xCC\x01\x82\x02\x81\x1Dm\x13\xCD\xFF\xB2\x9DQ\xD9\x93\"\xBD\xFF_\"\x11\x01\x82\x02\x81\x1Dm\n\x0Ft #\xDE\xF7\x83\xA3\x07\xA9\x86\x91.\x01\x82\x02\x81\x1Dm\x01\x92\r\x80C\xCA\x89\xB5#\x92S(NB\x01\x82\x02\x81\x1Dl\x0Bz\x86\xD77Th\xFA\xC6g\xA0\xA5'\x01l)P\x8EE\x85C\xD8\xAAM\xF2\xAB\xEEx\x83\x01\x83\x02\x82\x1Dm\x019`\x1A.\xFA\xBEq~`L\xBBH\x94\x01\x83\x02\x82\x1Dm\x02$\x7Fz{e\x942\x06I\xAA\x03\xAB\xA1\x01\x83\x02\x82\x1D\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFFs\xC0\xC7\x16\xA5\x94\xE0\rT\xE3\xC4\xCB\xC9\x01\x83\x02\x82\x1D\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFD\xC7\xB8\x8CB\x0ES\xA9\x89\x053\x12\x9Fo\x01\x83\x02\x90\x91\x1D\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFFF_\xDA'\xEBMc\xDE\xD4t\xE5\xF82\x01\x90\x91\x02\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF5\xF6\xAF\x8F{3\x96dO\x18\xE1W\x96\0\0\0\0\0\0\0\0\0\0\0\0\x01\x05q\x13@\xDA\xA0\xD5\xF7i\xDB\xA1\x91\\\xEFY\xF0\x81ZU\x06\x02\x91\x90\x03}\x02g\xA3l\x0C\x95\xB3\x97Z\xB3\xEE[ :v\x14\xA3\xF7Ss\xF0G\xD8\x03\xAE{f\x87\xF2\xB3\x02\x01}W\x11^G\x01\x8Cqw\xEE\xBF|\xD3p\xA35j\x1Bxc\0\x8AZ\xE8\x02\x8Cr\xB8\x86B\x84\x01`\xAE\x1D\x90V[`\0x\x12r]\xD1\xD2C\xAB\xA0\xE7_\xE6E\xCCHs\xF9\xE6Z\xFEh\x8C\x92\x8E\x1F!\x83\x11g\r\xE0\xB6\xB3\xA7d\0\0\x02\x15\x82\x02a?UWc|_H}`\0R`\x04`\x1C\xFD[Pg\r\xE0\xB6\xB3\xA7d\0\0\x91\x90\x91\x02\x04\x90V[`\0\x81`\0\x19\x04\x83\x11\x82\x02\x15a?\x85Wc\xBA\xC6^[`\0R`\x04`\x1C\xFD[Pg\r\xE0\xB6\xB3\xA7d\0\0\x91\x02\x04\x90V[`\0\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFD\xC0\xD0W\t%\xA4b\xD7\x82\x13a?\xC3W\x91\x90PV[h\x07U\xBFy\x8BJ\x1B\xF1\xE5\x82\x12a?\xE1Wc\xA3{\xFE\xC9`\0R`\x04`\x1C\xFD[e\x03x-\xAC\xE9\xD9`N\x83\x90\x1B\x05\x91P`\0``k\xB1r\x17\xF7\xD1\xCFy\xAB\xC9\xE3\xB3\x98\x84\x82\x1B\x05k\x80\0\0\0\0\0\0\0\0\0\0\0\x01\x90\x1Dk\xB1r\x17\xF7\xD1\xCFy\xAB\xC9\xE3\xB3\x98\x81\x02\x90\x93\x03\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xDB\xF3\xCC\xF1`M&4P\xF0*U\x04\x81\x01\x81\x02``\x90\x81\x1Dm\x02wYI\x91\xCF\xC8_n$a\x83|\xD9\x01\x82\x02\x81\x1D\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE5\xAD\xED\xAA\x1C\xB0\x95\xAF\x9EM\xA1\x0E6<\x01\x82\x02\x81\x1Dm\xB1\xBB\xB2\x01\xF4C\xCF\x96/\x1A\x1D=\xB4\xA5\x01\x82\x02\x81\x1D\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFD8\xDCw&\x08\xB0\xAEV\xCC\xE0\x12\x96\xC0\xEB\x01\x82\x02\x81\x1Dn\x05\x18\x0B\xB1G\x99\xABG\xA8\xA8\xCB*R}W\x01m\x02\xD1g W{\xD1\x9B\xF6\x14\x17o\xE9\xEAl\x10\xFEh\xE7\xFD7\xD0\0{q?vP\x84\x01\x84\x02\x83\x1D\x90\x81\x01\x90\x84\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE,i\x81,\xF0;\x07c\xFDEJ\x8F~\x01\x02\x90\x91\x1Dn\x05\x87\xF5\x03\xBBn\xA2\x9D%\xFC\xB7@\x19dP\x01\x90\x91\x02y\xD85\xEB\xBA\x82L\x98\xFB1\xB8;,\xA4\\\0\0\0\0\0\0\0\0\0\0\0\0\x01\x05t\x02\x9D\x9D\xC3\x85c\xC3.\\/m\xC1\x92\xEEp\xEFe\xF9\x97\x8A\xF3\x02`\xC3\x93\x90\x93\x03\x92\x90\x92\x1C\x92\x91PPV[`\0aA\xAEg\r\xE0\xB6\xB3\xA7d\0\0\x83aA\x95\x86a<\xC6V[aA\x9F\x91\x90a[\xF5V[aA\xA9\x91\x90a\\\xB1V[a?\x95V[\x90P[\x92\x91PPV[`\0\x80T`\x01`\x80\x1B\x90\x04`\xFF\x16`\x02\x81\x11\x15aA\xD6WaA\xD6aW\x13V[\x14aA\xF4W`@Qc\x06\x7F\xE1\x95`\xE4\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0`\x02\x87\x81T\x81\x10aB\tWaB\taZ\x15V[`\0\x91\x82R` \x82 `\x05\x91\x90\x91\x02\x01`\x04\x81\x01T\x90\x92P`\x01`\x01`\x80\x1B\x03\x16\x90\x87\x15\x82\x17`\x01\x1B\x90PaB_\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01aZAV[aB\xD9\x82`\x01`\x01`\x80\x1B\x03\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1Fc\x07\xC4\xAC\xDD`\xE0\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\xFF\x16\x14aC\x13W`@Q\x7F_S\xDD\x98\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\x01`@Q\x80\x91\x03\x90\xFD[`\0\x80\x89\x15aC\xDEWaCf\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0aZsV[`\x01\x90\x1BaC|\x84`\x01`\x01`\x80\x1B\x03\x16aRfV[`\x01`\x01`\x80\x1B\x03\x16aC\x8F\x91\x90a\\\xFBV[\x15aC\xC3WaC\xBAaC\xAB`\x01`\x01`\x01`\x80\x1B\x03\x87\x16a]\x0FV[\x86Tc\xFF\xFF\xFF\xFF\x16`\0aR\xECV[`\x03\x01TaC\xD4V[6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`x\x015[\x91P\x84\x90PaC\xFFV[`\x03\x85\x01T\x91PaC\xFCaC\xAB`\x01`\x01`\x80\x1B\x03\x86\x16`\x01a]/V[\x90P[`\x08\x82\x90\x1B`\x08\x8A\x8A`@QaD\x16\x92\x91\x90aZ\x05V[`@Q\x80\x91\x03\x90 \x90\x1B\x14aDWW`@Q\x7FieP\xFF\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\x01`@Q\x80\x91\x03\x90\xFD[`\0aDb\x8CaS\xB5V[\x90P`\0aDq\x83`\x03\x01T\x90V[`@Q\x7F\xE1L\xED2\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\x81R6`\x01\x19\x81\x015`\xF0\x1C\x90\x03`\x98\x015``\x1C\x90c\xE1L\xED2\x90aD\xC7\x90\x8F\x90\x8F\x90\x8F\x90\x8F\x90\x8A\x90`\x04\x01a]\x9AV[` `@Q\x80\x83\x03\x81`\0\x87Z\xF1\x15\x80\x15aD\xE6W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90aE\n\x91\x90a[\rV[`\x04\x85\x01T\x91\x14\x91P`\0\x90`\x02\x90aE\x93\x90`\x01`\x01`\x80\x1B\x03\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1Fc\x07\xC4\xAC\xDD`\xE0\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[aF\r\x89`\x01`\x01`\x80\x1B\x03\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1Fc\x07\xC4\xAC\xDD`\xE0\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[aF\x17\x91\x90a]\xD4V[aF!\x91\x90a]\xF7V[`\xFF\x16\x15\x90P\x81\x15\x15\x81\x03aFbW`@Q\x7F\xFBN@\xDD\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\x01`@Q\x80\x91\x03\x90\xFD[\x87Td\x01\0\0\0\0\x90\x04`\x01`\x01`\xA0\x1B\x03\x16\x15aF\xACW`@Q\x7F\x90q\xE6\xAF\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\x01`@Q\x80\x91\x03\x90\xFD[PP\x85T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xFF\xFF\xFF\xFF\x163d\x01\0\0\0\0\x02\x17\x90\x95UPPPPPPPPPPPV[`\0\x80`\0\x80`\0\x85\x90P`\0`\x02\x82\x81T\x81\x10aG\x0BWaG\x0BaZ\x15V[`\0\x91\x82R` \x90\x91 `\x04`\x05\x90\x92\x02\x01\x90\x81\x01T\x90\x91P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90aG\xC0\x90`\x01`\x01`\x80\x1B\x03\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1Fc\x07\xC4\xAC\xDD`\xE0\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\xFF\x16\x11aG\xFAW`@Q\x7F\xB3K\\\"\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\x01`@Q\x80\x91\x03\x90\xFD[`\0\x81[`\x04\x83\x01T\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90aH\x9F\x90`\x01`\x01`\x80\x1B\x03\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1Fc\x07\xC4\xAC\xDD`\xE0\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\xFF\x16\x92P\x82\x11\x15aI\x14W\x82Tc\xFF\xFF\xFF\xFF\x16aH\xDE\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01aZAV[\x83\x03aH\xE8W\x83\x91P[`\x02\x81\x81T\x81\x10aH\xFBWaH\xFBaZ\x15V[\x90`\0R` `\0 \x90`\x05\x02\x01\x93P\x80\x94PPaG\xFEV[`\x04\x81\x81\x01T\x90\x84\x01T`\x01`\x01`\x80\x1B\x03\x91\x82\x16\x91\x16`\0\x81`\x01`\x01`\x80\x1B\x03\x16aIYaIM\x85`\x01`\x01`\x80\x1B\x03\x16`\x01\x1C\x90V[`\x01`\x01`\x80\x1B\x03\x16\x90V[`\x01`\x01`\x80\x1B\x03\x16\x14\x90P\x80\x15aI\xF2W`\0aI\x7F\x83`\x01`\x01`\x80\x1B\x03\x16aRfV[`\x01`\x01`\x80\x1B\x03\x16\x11\x15aI\xCFW`\0aI\xAFaI\xA7`\x01`\x01`\x01`\x80\x1B\x03\x86\x16a]\x0FV[\x89`\x01aR\xECV[`\x03\x81\x01T`\x04\x90\x91\x01T\x90\x9CP`\x01`\x01`\x80\x1B\x03\x16\x9APaI\xD5\x90PV[`\x08T\x9AP[`\x03\x86\x01T`\x04\x87\x01T\x90\x99P`\x01`\x01`\x80\x1B\x03\x16\x97PaJ6V[`\0aJ\x0BaI\xA7`\x01`\x01`\x80\x1B\x03\x85\x16`\x01a]/V[`\x03\x80\x89\x01T`\x04\x80\x8B\x01T\x92\x84\x01T\x93\x01T\x90\x9EP`\x01`\x01`\x80\x1B\x03\x91\x82\x16\x9DP\x91\x9BP\x16\x98PP[PPPPPPP\x91\x93P\x91\x93V[`\0`\x01`\x01`\x80\x1B\x03\x84\x16\x15aJ\x9FW`@\x80Q` \x81\x01\x87\x90R`\x01`\x01`\x80\x1B\x03\x80\x87\x16\x92\x82\x01\x92\x90\x92R``\x81\x01\x85\x90R\x90\x83\x16`\x80\x82\x01R`\xA0\x01`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 a\x16wV[\x82\x82`@Q` \x01aJ\xC4\x92\x91\x90\x91\x82R`\x01`\x01`\x80\x1B\x03\x16` \x82\x01R`@\x01\x90V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 \x95\x94PPPPPV[`\0\x80aKW\x84~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1Fc\x07\xC4\xAC\xDD`\xE0\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\xFF\x16\x90P\x80\x83\x03`\x01\x84\x1B`\x01\x80\x83\x1B\x03\x86\x83\x1B\x17\x03\x92PPP\x92\x91PPV[`\0\x80`\0\x83`\0\x01Q`\0\x03aK\xBBW`@Q\x7FZ\xB4X\xFB\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\x01`@Q\x80\x91\x03\x90\xFD[` \x84\x01Q\x80Q`\0\x1A`\x7F\x81\x11aK\xE0W`\0`\x01`\0\x94P\x94P\x94PPPaP\x0FV[`\xB7\x81\x11aL\xF6W`\0aK\xF5`\x80\x83aZsV[\x90P\x80\x87`\0\x01Q\x11aL4W`@Q\x7Ff\xC9D\x85\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01\x83\x81\x01Q\x7F\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x90\x82\x14\x80\x15aL\xACWP\x7F\x80\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x7F\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x82\x16\x10[\x15aL\xE3W`@Q\x7F\xBA\xBB\x01\xDD\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\x01`@Q\x80\x91\x03\x90\xFD[P`\x01\x95P\x93P`\0\x92PaP\x0F\x91PPV[`\xBF\x81\x11aNTW`\0aM\x0B`\xB7\x83aZsV[\x90P\x80\x87`\0\x01Q\x11aMJW`@Q\x7Ff\xC9D\x85\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01\x83\x01Q\x7F\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16`\0\x81\x90\x03aM\xACW`@Q\x7F\xBA\xBB\x01\xDD\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01\x84\x01Q`\x08\x83\x02a\x01\0\x03\x1C`7\x81\x11aM\xF4W`@Q\x7F\xBA\xBB\x01\xDD\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\x01`@Q\x80\x91\x03\x90\xFD[aM\xFE\x81\x84aZAV[\x89Q\x11aN7W`@Q\x7Ff\xC9D\x85\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\x01`@Q\x80\x91\x03\x90\xFD[aNB\x83`\x01aZAV[\x97P\x95P`\0\x94PaP\x0F\x93PPPPV[`\xF7\x81\x11aN\xB9W`\0aNi`\xC0\x83aZsV[\x90P\x80\x87`\0\x01Q\x11aN\xA8W`@Q\x7Ff\xC9D\x85\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01\x95P\x93P\x84\x92PaP\x0F\x91PPV[`\0aN\xC6`\xF7\x83aZsV[\x90P\x80\x87`\0\x01Q\x11aO\x05W`@Q\x7Ff\xC9D\x85\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01\x83\x01Q\x7F\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16`\0\x81\x90\x03aOgW`@Q\x7F\xBA\xBB\x01\xDD\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01\x84\x01Q`\x08\x83\x02a\x01\0\x03\x1C`7\x81\x11aO\xAFW`@Q\x7F\xBA\xBB\x01\xDD\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\x01`@Q\x80\x91\x03\x90\xFD[aO\xB9\x81\x84aZAV[\x89Q\x11aO\xF2W`@Q\x7Ff\xC9D\x85\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\x01`@Q\x80\x91\x03\x90\xFD[aO\xFD\x83`\x01aZAV[\x97P\x95P`\x01\x94PaP\x0F\x93PPPPV[\x91\x93\x90\x92PV[``\x81g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15aP1WaP1aY{V[`@Q\x90\x80\x82R\x80`\x1F\x01`\x1F\x19\x16` \x01\x82\x01`@R\x80\x15aP[W` \x82\x01\x81\x806\x837\x01\x90P[P\x90P\x81\x15aP\xA4W`\0aPp\x84\x86aZAV[\x90P` \x82\x01`\0[\x84\x81\x10\x15aP\x91W\x82\x81\x01Q\x82\x82\x01R` \x01aPyV[\x84\x81\x11\x15aP\xA0W`\0\x85\x83\x01R[PPP[\x93\x92PPPV[`\0aP\xC1`\x01`\x01`\x80\x1B\x03\x84\x16`\x01a]/V[\x90P`\0aP\xD1\x82\x86`\x01aR\xECV[\x90P`\0\x86\x90\x1A\x83\x80aQ\x9BWPaQ\n`\x02\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\\\xFBV[`\x04\x83\x01T`\x02\x90aQ\x8C\x90`\x01`\x01`\x80\x1B\x03\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1Fc\x07\xC4\xAC\xDD`\xE0\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[aQ\x96\x91\x90a]\xF7V[`\xFF\x16\x14[\x15aQ\xF3W`\xFF\x81\x16`\x01\x14\x80aQ\xB5WP`\xFF\x81\x16`\x02\x14[aQ\xEEW`@Q\x7F\xF4\x029\xDB\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\x81\x01\x88\x90R`$\x01a5\xFBV[aR1V[`\xFF\x81\x16\x15aR1W`@Q\x7F\xF4\x029\xDB\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\x81\x01\x88\x90R`$\x01a5\xFBV[PPPPPPPV[`\0aRDaS\xE4V[a\x16\n\x90`\x06aZAV[`\0\x81\x83\x10\x15aR_W\x81aA\xAEV[P\x90\x91\x90PV[`\0\x80aR\xDA\x83~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1Fc\x07\xC4\xAC\xDD`\xE0\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\x01`\xFF\x91\x90\x91\x16\x1B\x90\x92\x03\x92\x91PPV[`\0\x80\x82aS,WaS'`\x01`\x01`\x80\x1B\x03\x86\x16\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0aS\xF2V[aS>V[aS>\x85`\x01`\x01`\x80\x1B\x03\x16aU1V[\x90P`\x02\x84\x81T\x81\x10aSSWaSSaZ\x15V[\x90`\0R` `\0 \x90`\x05\x02\x01\x91P[`\x04\x82\x01T`\x01`\x01`\x80\x1B\x03\x82\x81\x16\x91\x16\x14aS\xADW\x81T`\x02\x80T\x90\x91c\xFF\xFF\xFF\xFF\x16\x90\x81\x10aS\x98WaS\x98aZ\x15V[\x90`\0R` `\0 \x90`\x05\x02\x01\x91PaSdV[P\x93\x92PPPV[`\0\x80`\0\x80`\0aS\xC6\x86aF\xEBV[\x93P\x93P\x93P\x93PaS\xDA\x84\x84\x84\x84aJDV[\x96\x95PPPPPPV[`\0a\x16\n`\xF4`(aZAV[`\0\x81aTo\x84`\x01`\x01`\x80\x1B\x03\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1Fc\x07\xC4\xAC\xDD`\xE0\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\xFF\x16\x11aT\x85Wc\xB3K\\\"`\0R`\x04`\x1C\xFD[aT\x8E\x83aU1V[\x90P\x81aU\x0B\x82`\x01`\x01`\x80\x1B\x03\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1Fc\x07\xC4\xAC\xDD`\xE0\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\xFF\x16\x11aA\xB1WaA\xAEaU!\x83`\x01aZAV[`\x01`\x01`\x80\x1B\x03\x83\x16\x90aU\xBDV[`\0\x81\x19`\x01\x83\x01\x16\x81aU\xAC\x82~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1Fc\x07\xC4\xAC\xDD`\xE0\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\xFF\x16\x93\x90\x93\x1C\x80\x15\x17\x93\x92PPPV[`\0\x80aV1\x84~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1Fc\x07\xC4\xAC\xDD`\xE0\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\xFF\x16\x90P\x80\x83\x03`\x01\x80\x82\x1B\x03\x85\x82\x1B\x17\x92PPP\x92\x91PPV[`\0\x80\x83`\x1F\x84\x01\x12aV_W`\0\x80\xFD[P\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15aVwW`\0\x80\xFD[` \x83\x01\x91P\x83` \x82\x85\x01\x01\x11\x15aV\x8FW`\0\x80\xFD[\x92P\x92\x90PV[`\0\x80`\0\x83\x85\x03`\xA0\x81\x12\x15aV\xACW`\0\x80\xFD[`\x80\x81\x12\x15aV\xBAW`\0\x80\xFD[P\x83\x92P`\x80\x84\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15aV\xD8W`\0\x80\xFD[aV\xE4\x86\x82\x87\x01aVMV[\x94\x97\x90\x96P\x93\x94PPPPV[`\0\x80`@\x83\x85\x03\x12\x15aW\x04W`\0\x80\xFD[PP\x805\x92` \x90\x91\x015\x91PV[cNH{q`\xE0\x1B`\0R`!`\x04R`$`\0\xFD[`\x03\x81\x10aWGWcNH{q`\xE0\x1B`\0R`!`\x04R`$`\0\xFD[PV[` \x81\x01aWW\x83aW)V[\x91\x90R\x90V[`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14aWGW`\0\x80\xFD[`\0` \x82\x84\x03\x12\x15aW\x84W`\0\x80\xFD[\x815aP\xA4\x81aW]V[`\0\x80`\0``\x84\x86\x03\x12\x15aW\xA4W`\0\x80\xFD[PP\x815\x93` \x83\x015\x93P`@\x90\x92\x015\x91\x90PV[`\0\x81Q\x80\x84R`\0[\x81\x81\x10\x15aW\xE1W` \x81\x85\x01\x81\x01Q\x86\x83\x01\x82\x01R\x01aW\xC5V[\x81\x81\x11\x15aW\xF3W`\0` \x83\x87\x01\x01R[P`\x1F\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x92\x90\x92\x01` \x01\x92\x91PPV[` \x81R`\0aA\xAE` \x83\x01\x84aW\xBBV[`\0` \x82\x84\x03\x12\x15aXKW`\0\x80\xFD[P5\x91\x90PV[\x80\x15\x15\x81\x14aWGW`\0\x80\xFD[`\0\x80`\0\x80`\x80\x85\x87\x03\x12\x15aXvW`\0\x80\xFD[\x845\x93P` \x85\x015\x92P`@\x85\x015\x91P``\x85\x015aX\x96\x81aXRV[\x93\x96\x92\x95P\x90\x93PPV[`\0` \x82\x84\x03\x12\x15aX\xB3W`\0\x80\xFD[\x815`\x01`\x01`\x80\x1B\x03\x81\x16\x81\x14aP\xA4W`\0\x80\xFD[`\0\x80`\0\x80`\0\x80`\x80\x87\x89\x03\x12\x15aX\xE3W`\0\x80\xFD[\x865\x95P` \x87\x015aX\xF5\x81aXRV[\x94P`@\x87\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15aY\x12W`\0\x80\xFD[aY\x1E\x8A\x83\x8B\x01aVMV[\x90\x96P\x94P``\x89\x015\x91P\x80\x82\x11\x15aY7W`\0\x80\xFD[PaYD\x89\x82\x8A\x01aVMV[\x97\x9A\x96\x99P\x94\x97P\x92\x95\x93\x94\x92PPPV[c\xFF\xFF\xFF\xFF\x84\x16\x81R\x82` \x82\x01R```@\x82\x01R`\0a\x16w``\x83\x01\x84aW\xBBV[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[`\0`\x80\x82\x84\x03\x12\x15aY\xA3W`\0\x80\xFD[`@Q`\x80\x81\x01\x81\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17\x15aY\xD4WcNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[\x80`@RP\x825\x81R` \x83\x015` \x82\x01R`@\x83\x015`@\x82\x01R``\x83\x015``\x82\x01R\x80\x91PP\x92\x91PPV[\x81\x83\x827`\0\x91\x01\x90\x81R\x91\x90PV[cNH{q`\xE0\x1B`\0R`2`\x04R`$`\0\xFD[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[`\0\x82\x19\x82\x11\x15aZTWaZTaZ+V[P\x01\x90V[`\0`\0\x19\x82\x03aZlWaZlaZ+V[P`\x01\x01\x90V[`\0\x82\x82\x10\x15aZ\x85WaZ\x85aZ+V[P\x03\x90V[`\0` \x82\x84\x03\x12\x15aZ\x9CW`\0\x80\xFD[\x81QaP\xA4\x81aXRV[cNH{q`\xE0\x1B`\0R`\x12`\x04R`$`\0\xFD[`\0\x82aZ\xCCWaZ\xCCaZ\xA7V[P\x04\x90V[`\0\x81`\0\x19\x04\x83\x11\x82\x15\x15\x16\x15aZ\xEBWaZ\xEBaZ+V[P\x02\x90V[`\0` \x82\x84\x03\x12\x15a[\x02W`\0\x80\xFD[\x81QaP\xA4\x81aW]V[`\0` \x82\x84\x03\x12\x15a[\x1FW`\0\x80\xFD[PQ\x91\x90PV[`\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x83\x16\x81\x85\x16\x80\x83\x03\x82\x11\x15a[IWa[IaZ+V[\x01\x94\x93PPPPV[`\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x83\x16\x81\x85\x16\x81\x83\x04\x81\x11\x82\x15\x15\x16\x15a[yWa[yaZ+V[\x02\x94\x93PPPPV[`\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x81\x16\x90\x83\x16\x81\x81\x10\x15a[\xA3Wa[\xA3aZ+V[\x03\x93\x92PPPV[`\0\x80`@\x83\x85\x03\x12\x15a[\xBEW`\0\x80\xFD[PP\x80Q` \x90\x91\x01Q\x90\x92\x90\x91PV[`\0` \x82\x84\x03\x12\x15a[\xE1W`\0\x80\xFD[\x81Qc\xFF\xFF\xFF\xFF\x81\x16\x81\x14aP\xA4W`\0\x80\xFD[`\0\x7F\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF`\0\x84\x13`\0\x84\x13\x85\x83\x04\x85\x11\x82\x82\x16\x16\x15a\\6Wa\\6aZ+V[\x7F\x80\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\0\x87\x12\x86\x82\x05\x88\x12\x81\x84\x16\x16\x15a\\qWa\\qaZ+V[`\0\x87\x12\x92P\x87\x82\x05\x87\x12\x84\x84\x16\x16\x15a\\\x8DWa\\\x8DaZ+V[\x87\x85\x05\x87\x12\x81\x84\x16\x16\x15a\\\xA3Wa\\\xA3aZ+V[PPP\x92\x90\x93\x02\x93\x92PPPV[`\0\x82a\\\xC0Wa\\\xC0aZ\xA7V[`\0\x19\x83\x14\x7F\x80\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x83\x14\x16\x15a\\\xF6Wa\\\xF6aZ+V[P\x05\x90V[`\0\x82a]\nWa]\naZ\xA7V[P\x06\x90V[`\0`\x01`\x01`\x80\x1B\x03\x83\x81\x16\x90\x83\x16\x81\x81\x10\x15a[\xA3Wa[\xA3aZ+V[`\0`\x01`\x01`\x80\x1B\x03\x80\x83\x16\x81\x85\x16\x80\x83\x03\x82\x11\x15a[IWa[IaZ+V[\x81\x83R\x81\x81` \x85\x017P`\0` \x82\x84\x01\x01R`\0` \x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0`\x1F\x84\x01\x16\x84\x01\x01\x90P\x92\x91PPV[``\x81R`\0a]\xAE``\x83\x01\x87\x89a]QV[\x82\x81\x03` \x84\x01Ra]\xC1\x81\x86\x88a]QV[\x91PP\x82`@\x83\x01R\x96\x95PPPPPPV[`\0`\xFF\x82\x16`\xFF\x84\x16\x80\x82\x10\x15a]\xEEWa]\xEEaZ+V[\x90\x03\x93\x92PPPV[`\0`\xFF\x83\x16\x80a^\nWa^\naZ\xA7V[\x80`\xFF\x84\x16\x06\x91PP\x92\x91PPV\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct BondDistributionMode(u8); + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for u8 { + #[inline] + fn stv_to_tokens( + &self, + ) -> as alloy_sol_types::SolType>::Token<'_> { + alloy_sol_types::private::SolTypeValue::< + alloy::sol_types::sol_data::Uint<8>, + >::stv_to_tokens(self) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + as alloy_sol_types::SolType>::tokenize(self) + .0 + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::SolType>::abi_encode_packed_to(self, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + as alloy_sol_types::SolType>::abi_encoded_size(self) + } + } + impl BondDistributionMode { + /// The Solidity type name. + pub const NAME: &'static str = stringify!(@ name); + /// Convert from the underlying value type. + #[inline] + pub const fn from_underlying(value: u8) -> Self { + Self(value) + } + /// Return the underlying value. + #[inline] + pub const fn into_underlying(self) -> u8 { + self.0 + } + /// Return the single encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode(&self) -> alloy_sol_types::private::Vec { + ::abi_encode(&self.0) + } + /// Return the packed encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec { + ::abi_encode_packed(&self.0) + } + } + #[automatically_derived] + impl From for BondDistributionMode { + fn from(value: u8) -> Self { + Self::from_underlying(value) + } + } + #[automatically_derived] + impl From for u8 { + fn from(value: BondDistributionMode) -> Self { + value.into_underlying() + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for BondDistributionMode { + type RustType = u8; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = Self::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + Self::type_check(token).is_ok() + } + #[inline] + fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> { + as alloy_sol_types::SolType>::type_check(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + as alloy_sol_types::SolType>::detokenize(token) + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for BondDistributionMode { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + as alloy_sol_types::EventTopic>::topic_preimage_length(rust) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out) + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + as alloy_sol_types::EventTopic>::encode_topic(rust) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct GameStatus(u8); + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for u8 { + #[inline] + fn stv_to_tokens( + &self, + ) -> as alloy_sol_types::SolType>::Token<'_> { + alloy_sol_types::private::SolTypeValue::< + alloy::sol_types::sol_data::Uint<8>, + >::stv_to_tokens(self) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + as alloy_sol_types::SolType>::tokenize(self) + .0 + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::SolType>::abi_encode_packed_to(self, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + as alloy_sol_types::SolType>::abi_encoded_size(self) + } + } + impl GameStatus { + /// The Solidity type name. + pub const NAME: &'static str = stringify!(@ name); + /// Convert from the underlying value type. + #[inline] + pub const fn from_underlying(value: u8) -> Self { + Self(value) + } + /// Return the underlying value. + #[inline] + pub const fn into_underlying(self) -> u8 { + self.0 + } + /// Return the single encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode(&self) -> alloy_sol_types::private::Vec { + ::abi_encode(&self.0) + } + /// Return the packed encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec { + ::abi_encode_packed(&self.0) + } + } + #[automatically_derived] + impl From for GameStatus { + fn from(value: u8) -> Self { + Self::from_underlying(value) + } + } + #[automatically_derived] + impl From for u8 { + fn from(value: GameStatus) -> Self { + value.into_underlying() + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for GameStatus { + type RustType = u8; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = Self::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + Self::type_check(token).is_ok() + } + #[inline] + fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> { + as alloy_sol_types::SolType>::type_check(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + as alloy_sol_types::SolType>::detokenize(token) + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for GameStatus { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + as alloy_sol_types::EventTopic>::topic_preimage_length(rust) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out) + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + as alloy_sol_types::EventTopic>::encode_topic(rust) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct Claim(alloy::sol_types::private::FixedBytes<32>); + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue + for alloy::sol_types::private::FixedBytes<32> { + #[inline] + fn stv_to_tokens( + &self, + ) -> as alloy_sol_types::SolType>::Token<'_> { + alloy_sol_types::private::SolTypeValue::< + alloy::sol_types::sol_data::FixedBytes<32>, + >::stv_to_tokens(self) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + as alloy_sol_types::SolType>::tokenize(self) + .0 + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::SolType>::abi_encode_packed_to(self, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + as alloy_sol_types::SolType>::abi_encoded_size(self) + } + } + impl Claim { + /// The Solidity type name. + pub const NAME: &'static str = stringify!(@ name); + /// Convert from the underlying value type. + #[inline] + pub const fn from_underlying( + value: alloy::sol_types::private::FixedBytes<32>, + ) -> Self { + Self(value) + } + /// Return the underlying value. + #[inline] + pub const fn into_underlying( + self, + ) -> alloy::sol_types::private::FixedBytes<32> { + self.0 + } + /// Return the single encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode(&self) -> alloy_sol_types::private::Vec { + ::abi_encode(&self.0) + } + /// Return the packed encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec { + ::abi_encode_packed(&self.0) + } + } + #[automatically_derived] + impl From> for Claim { + fn from(value: alloy::sol_types::private::FixedBytes<32>) -> Self { + Self::from_underlying(value) + } + } + #[automatically_derived] + impl From for alloy::sol_types::private::FixedBytes<32> { + fn from(value: Claim) -> Self { + value.into_underlying() + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for Claim { + type RustType = alloy::sol_types::private::FixedBytes<32>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = Self::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + Self::type_check(token).is_ok() + } + #[inline] + fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> { + as alloy_sol_types::SolType>::type_check(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + as alloy_sol_types::SolType>::detokenize(token) + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for Claim { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + as alloy_sol_types::EventTopic>::topic_preimage_length(rust) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out) + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + as alloy_sol_types::EventTopic>::encode_topic(rust) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct Clock(u128); + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for u128 { + #[inline] + fn stv_to_tokens( + &self, + ) -> as alloy_sol_types::SolType>::Token<'_> { + alloy_sol_types::private::SolTypeValue::< + alloy::sol_types::sol_data::Uint<128>, + >::stv_to_tokens(self) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + as alloy_sol_types::SolType>::tokenize(self) + .0 + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::SolType>::abi_encode_packed_to(self, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + as alloy_sol_types::SolType>::abi_encoded_size(self) + } + } + impl Clock { + /// The Solidity type name. + pub const NAME: &'static str = stringify!(@ name); + /// Convert from the underlying value type. + #[inline] + pub const fn from_underlying(value: u128) -> Self { + Self(value) + } + /// Return the underlying value. + #[inline] + pub const fn into_underlying(self) -> u128 { + self.0 + } + /// Return the single encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode(&self) -> alloy_sol_types::private::Vec { + ::abi_encode(&self.0) + } + /// Return the packed encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec { + ::abi_encode_packed(&self.0) + } + } + #[automatically_derived] + impl From for Clock { + fn from(value: u128) -> Self { + Self::from_underlying(value) + } + } + #[automatically_derived] + impl From for u128 { + fn from(value: Clock) -> Self { + value.into_underlying() + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for Clock { + type RustType = u128; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = Self::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + Self::type_check(token).is_ok() + } + #[inline] + fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> { + as alloy_sol_types::SolType>::type_check(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + as alloy_sol_types::SolType>::detokenize(token) + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for Clock { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + as alloy_sol_types::EventTopic>::topic_preimage_length(rust) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out) + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + as alloy_sol_types::EventTopic>::encode_topic(rust) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct Duration(u64); + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for u64 { + #[inline] + fn stv_to_tokens( + &self, + ) -> as alloy_sol_types::SolType>::Token<'_> { + alloy_sol_types::private::SolTypeValue::< + alloy::sol_types::sol_data::Uint<64>, + >::stv_to_tokens(self) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + as alloy_sol_types::SolType>::tokenize(self) + .0 + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::SolType>::abi_encode_packed_to(self, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + as alloy_sol_types::SolType>::abi_encoded_size(self) + } + } + impl Duration { + /// The Solidity type name. + pub const NAME: &'static str = stringify!(@ name); + /// Convert from the underlying value type. + #[inline] + pub const fn from_underlying(value: u64) -> Self { + Self(value) + } + /// Return the underlying value. + #[inline] + pub const fn into_underlying(self) -> u64 { + self.0 + } + /// Return the single encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode(&self) -> alloy_sol_types::private::Vec { + ::abi_encode(&self.0) + } + /// Return the packed encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec { + ::abi_encode_packed(&self.0) + } + } + #[automatically_derived] + impl From for Duration { + fn from(value: u64) -> Self { + Self::from_underlying(value) + } + } + #[automatically_derived] + impl From for u64 { + fn from(value: Duration) -> Self { + value.into_underlying() + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for Duration { + type RustType = u64; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = Self::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + Self::type_check(token).is_ok() + } + #[inline] + fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> { + as alloy_sol_types::SolType>::type_check(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + as alloy_sol_types::SolType>::detokenize(token) + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for Duration { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + as alloy_sol_types::EventTopic>::topic_preimage_length(rust) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out) + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + as alloy_sol_types::EventTopic>::encode_topic(rust) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct GameType(u32); + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for u32 { + #[inline] + fn stv_to_tokens( + &self, + ) -> as alloy_sol_types::SolType>::Token<'_> { + alloy_sol_types::private::SolTypeValue::< + alloy::sol_types::sol_data::Uint<32>, + >::stv_to_tokens(self) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + as alloy_sol_types::SolType>::tokenize(self) + .0 + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::SolType>::abi_encode_packed_to(self, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + as alloy_sol_types::SolType>::abi_encoded_size(self) + } + } + impl GameType { + /// The Solidity type name. + pub const NAME: &'static str = stringify!(@ name); + /// Convert from the underlying value type. + #[inline] + pub const fn from_underlying(value: u32) -> Self { + Self(value) + } + /// Return the underlying value. + #[inline] + pub const fn into_underlying(self) -> u32 { + self.0 + } + /// Return the single encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode(&self) -> alloy_sol_types::private::Vec { + ::abi_encode(&self.0) + } + /// Return the packed encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec { + ::abi_encode_packed(&self.0) + } + } + #[automatically_derived] + impl From for GameType { + fn from(value: u32) -> Self { + Self::from_underlying(value) + } + } + #[automatically_derived] + impl From for u32 { + fn from(value: GameType) -> Self { + value.into_underlying() + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for GameType { + type RustType = u32; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = Self::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + Self::type_check(token).is_ok() + } + #[inline] + fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> { + as alloy_sol_types::SolType>::type_check(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + as alloy_sol_types::SolType>::detokenize(token) + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for GameType { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + as alloy_sol_types::EventTopic>::topic_preimage_length(rust) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out) + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + as alloy_sol_types::EventTopic>::encode_topic(rust) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct Hash(alloy::sol_types::private::FixedBytes<32>); + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue + for alloy::sol_types::private::FixedBytes<32> { + #[inline] + fn stv_to_tokens( + &self, + ) -> as alloy_sol_types::SolType>::Token<'_> { + alloy_sol_types::private::SolTypeValue::< + alloy::sol_types::sol_data::FixedBytes<32>, + >::stv_to_tokens(self) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + as alloy_sol_types::SolType>::tokenize(self) + .0 + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::SolType>::abi_encode_packed_to(self, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + as alloy_sol_types::SolType>::abi_encoded_size(self) + } + } + impl Hash { + /// The Solidity type name. + pub const NAME: &'static str = stringify!(@ name); + /// Convert from the underlying value type. + #[inline] + pub const fn from_underlying( + value: alloy::sol_types::private::FixedBytes<32>, + ) -> Self { + Self(value) + } + /// Return the underlying value. + #[inline] + pub const fn into_underlying( + self, + ) -> alloy::sol_types::private::FixedBytes<32> { + self.0 + } + /// Return the single encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode(&self) -> alloy_sol_types::private::Vec { + ::abi_encode(&self.0) + } + /// Return the packed encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec { + ::abi_encode_packed(&self.0) + } + } + #[automatically_derived] + impl From> for Hash { + fn from(value: alloy::sol_types::private::FixedBytes<32>) -> Self { + Self::from_underlying(value) + } + } + #[automatically_derived] + impl From for alloy::sol_types::private::FixedBytes<32> { + fn from(value: Hash) -> Self { + value.into_underlying() + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for Hash { + type RustType = alloy::sol_types::private::FixedBytes<32>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = Self::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + Self::type_check(token).is_ok() + } + #[inline] + fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> { + as alloy_sol_types::SolType>::type_check(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + as alloy_sol_types::SolType>::detokenize(token) + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for Hash { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + as alloy_sol_types::EventTopic>::topic_preimage_length(rust) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out) + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + as alloy_sol_types::EventTopic>::encode_topic(rust) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct Position(u128); + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for u128 { + #[inline] + fn stv_to_tokens( + &self, + ) -> as alloy_sol_types::SolType>::Token<'_> { + alloy_sol_types::private::SolTypeValue::< + alloy::sol_types::sol_data::Uint<128>, + >::stv_to_tokens(self) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + as alloy_sol_types::SolType>::tokenize(self) + .0 + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::SolType>::abi_encode_packed_to(self, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + as alloy_sol_types::SolType>::abi_encoded_size(self) + } + } + impl Position { + /// The Solidity type name. + pub const NAME: &'static str = stringify!(@ name); + /// Convert from the underlying value type. + #[inline] + pub const fn from_underlying(value: u128) -> Self { + Self(value) + } + /// Return the underlying value. + #[inline] + pub const fn into_underlying(self) -> u128 { + self.0 + } + /// Return the single encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode(&self) -> alloy_sol_types::private::Vec { + ::abi_encode(&self.0) + } + /// Return the packed encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec { + ::abi_encode_packed(&self.0) + } + } + #[automatically_derived] + impl From for Position { + fn from(value: u128) -> Self { + Self::from_underlying(value) + } + } + #[automatically_derived] + impl From for u128 { + fn from(value: Position) -> Self { + value.into_underlying() + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for Position { + type RustType = u128; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = Self::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + Self::type_check(token).is_ok() + } + #[inline] + fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> { + as alloy_sol_types::SolType>::type_check(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + as alloy_sol_types::SolType>::detokenize(token) + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for Position { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + as alloy_sol_types::EventTopic>::topic_preimage_length(rust) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out) + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + as alloy_sol_types::EventTopic>::encode_topic(rust) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct Timestamp(u64); + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for u64 { + #[inline] + fn stv_to_tokens( + &self, + ) -> as alloy_sol_types::SolType>::Token<'_> { + alloy_sol_types::private::SolTypeValue::< + alloy::sol_types::sol_data::Uint<64>, + >::stv_to_tokens(self) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + as alloy_sol_types::SolType>::tokenize(self) + .0 + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::SolType>::abi_encode_packed_to(self, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + as alloy_sol_types::SolType>::abi_encoded_size(self) + } + } + impl Timestamp { + /// The Solidity type name. + pub const NAME: &'static str = stringify!(@ name); + /// Convert from the underlying value type. + #[inline] + pub const fn from_underlying(value: u64) -> Self { + Self(value) + } + /// Return the underlying value. + #[inline] + pub const fn into_underlying(self) -> u64 { + self.0 + } + /// Return the single encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode(&self) -> alloy_sol_types::private::Vec { + ::abi_encode(&self.0) + } + /// Return the packed encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec { + ::abi_encode_packed(&self.0) + } + } + #[automatically_derived] + impl From for Timestamp { + fn from(value: u64) -> Self { + Self::from_underlying(value) + } + } + #[automatically_derived] + impl From for u64 { + fn from(value: Timestamp) -> Self { + value.into_underlying() + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for Timestamp { + type RustType = u64; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = Self::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + Self::type_check(token).is_ok() + } + #[inline] + fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> { + as alloy_sol_types::SolType>::type_check(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + as alloy_sol_types::SolType>::detokenize(token) + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for Timestamp { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + as alloy_sol_types::EventTopic>::topic_preimage_length(rust) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out) + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + as alloy_sol_types::EventTopic>::encode_topic(rust) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `AlreadyInitialized()` and selector `0x0dc149f0`. +```solidity +error AlreadyInitialized(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct AlreadyInitialized; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: AlreadyInitialized) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for AlreadyInitialized { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for AlreadyInitialized { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "AlreadyInitialized()"; + const SELECTOR: [u8; 4] = [13u8, 193u8, 73u8, 240u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `AnchorRootNotFound()` and selector `0x6a6bc3b2`. +```solidity +error AnchorRootNotFound(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct AnchorRootNotFound; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: AnchorRootNotFound) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for AnchorRootNotFound { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for AnchorRootNotFound { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "AnchorRootNotFound()"; + const SELECTOR: [u8; 4] = [106u8, 107u8, 195u8, 178u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `BadAuth()` and selector `0xd386ef3e`. +```solidity +error BadAuth(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct BadAuth; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: BadAuth) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for BadAuth { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for BadAuth { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "BadAuth()"; + const SELECTOR: [u8; 4] = [211u8, 134u8, 239u8, 62u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `BadExtraData()` and selector `0x9824bdab`. +```solidity +error BadExtraData(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct BadExtraData; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: BadExtraData) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for BadExtraData { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for BadExtraData { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "BadExtraData()"; + const SELECTOR: [u8; 4] = [152u8, 36u8, 189u8, 171u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `BlockNumberMatches()` and selector `0xb8ed8830`. +```solidity +error BlockNumberMatches(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct BlockNumberMatches; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: BlockNumberMatches) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for BlockNumberMatches { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for BlockNumberMatches { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "BlockNumberMatches()"; + const SELECTOR: [u8; 4] = [184u8, 237u8, 136u8, 48u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `BondTransferFailed()` and selector `0x83e6cc6b`. +```solidity +error BondTransferFailed(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct BondTransferFailed; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: BondTransferFailed) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for BondTransferFailed { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for BondTransferFailed { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "BondTransferFailed()"; + const SELECTOR: [u8; 4] = [131u8, 230u8, 204u8, 107u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `CannotDefendRootClaim()` and selector `0xa42637bc`. +```solidity +error CannotDefendRootClaim(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct CannotDefendRootClaim; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: CannotDefendRootClaim) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for CannotDefendRootClaim { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for CannotDefendRootClaim { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "CannotDefendRootClaim()"; + const SELECTOR: [u8; 4] = [164u8, 38u8, 55u8, 188u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ClaimAboveSplit()` and selector `0xb34b5c22`. +```solidity +error ClaimAboveSplit(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ClaimAboveSplit; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ClaimAboveSplit) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ClaimAboveSplit { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ClaimAboveSplit { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ClaimAboveSplit()"; + const SELECTOR: [u8; 4] = [179u8, 75u8, 92u8, 34u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ClaimAlreadyExists()` and selector `0x80497e3b`. +```solidity +error ClaimAlreadyExists(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ClaimAlreadyExists; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ClaimAlreadyExists) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ClaimAlreadyExists { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ClaimAlreadyExists { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ClaimAlreadyExists()"; + const SELECTOR: [u8; 4] = [128u8, 73u8, 126u8, 59u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ClaimAlreadyResolved()` and selector `0xf1a94581`. +```solidity +error ClaimAlreadyResolved(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ClaimAlreadyResolved; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ClaimAlreadyResolved) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ClaimAlreadyResolved { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ClaimAlreadyResolved { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ClaimAlreadyResolved()"; + const SELECTOR: [u8; 4] = [241u8, 169u8, 69u8, 129u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ClockNotExpired()` and selector `0xf2440b53`. +```solidity +error ClockNotExpired(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ClockNotExpired; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ClockNotExpired) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ClockNotExpired { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ClockNotExpired { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ClockNotExpired()"; + const SELECTOR: [u8; 4] = [242u8, 68u8, 11u8, 83u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ClockTimeExceeded()` and selector `0x3381d114`. +```solidity +error ClockTimeExceeded(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ClockTimeExceeded; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ClockTimeExceeded) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ClockTimeExceeded { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ClockTimeExceeded { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ClockTimeExceeded()"; + const SELECTOR: [u8; 4] = [51u8, 129u8, 209u8, 20u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ContentLengthMismatch()` and selector `0x66c94485`. +```solidity +error ContentLengthMismatch(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ContentLengthMismatch; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ContentLengthMismatch) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ContentLengthMismatch { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ContentLengthMismatch { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ContentLengthMismatch()"; + const SELECTOR: [u8; 4] = [102u8, 201u8, 68u8, 133u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `DuplicateStep()` and selector `0x9071e6af`. +```solidity +error DuplicateStep(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct DuplicateStep; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: DuplicateStep) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for DuplicateStep { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for DuplicateStep { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "DuplicateStep()"; + const SELECTOR: [u8; 4] = [144u8, 113u8, 230u8, 175u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `EmptyItem()` and selector `0x5ab458fb`. +```solidity +error EmptyItem(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct EmptyItem; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: EmptyItem) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for EmptyItem { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for EmptyItem { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "EmptyItem()"; + const SELECTOR: [u8; 4] = [90u8, 180u8, 88u8, 251u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `GameDepthExceeded()` and selector `0x56f57b2b`. +```solidity +error GameDepthExceeded(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct GameDepthExceeded; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: GameDepthExceeded) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for GameDepthExceeded { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for GameDepthExceeded { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "GameDepthExceeded()"; + const SELECTOR: [u8; 4] = [86u8, 245u8, 123u8, 43u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `GameNotFinalized()` and selector `0x4851bd9b`. +```solidity +error GameNotFinalized(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct GameNotFinalized; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: GameNotFinalized) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for GameNotFinalized { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for GameNotFinalized { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "GameNotFinalized()"; + const SELECTOR: [u8; 4] = [72u8, 81u8, 189u8, 155u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `GameNotInProgress()` and selector `0x67fe1950`. +```solidity +error GameNotInProgress(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct GameNotInProgress; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: GameNotInProgress) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for GameNotInProgress { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for GameNotInProgress { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "GameNotInProgress()"; + const SELECTOR: [u8; 4] = [103u8, 254u8, 25u8, 80u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `GameNotResolved()` and selector `0xc105260a`. +```solidity +error GameNotResolved(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct GameNotResolved; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: GameNotResolved) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for GameNotResolved { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for GameNotResolved { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "GameNotResolved()"; + const SELECTOR: [u8; 4] = [193u8, 5u8, 38u8, 10u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `GamePaused()` and selector `0x379a7ed9`. +```solidity +error GamePaused(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct GamePaused; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: GamePaused) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for GamePaused { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for GamePaused { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "GamePaused()"; + const SELECTOR: [u8; 4] = [55u8, 154u8, 126u8, 217u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `IncorrectBondAmount()` and selector `0x8620aa19`. +```solidity +error IncorrectBondAmount(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct IncorrectBondAmount; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: IncorrectBondAmount) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for IncorrectBondAmount { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for IncorrectBondAmount { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "IncorrectBondAmount()"; + const SELECTOR: [u8; 4] = [134u8, 32u8, 170u8, 25u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidBondDistributionMode()` and selector `0x078a3df4`. +```solidity +error InvalidBondDistributionMode(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidBondDistributionMode; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: InvalidBondDistributionMode) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for InvalidBondDistributionMode { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidBondDistributionMode { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidBondDistributionMode()"; + const SELECTOR: [u8; 4] = [7u8, 138u8, 61u8, 244u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidChallengePeriod()` and selector `0xb4e12433`. +```solidity +error InvalidChallengePeriod(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidChallengePeriod; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InvalidChallengePeriod) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InvalidChallengePeriod { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidChallengePeriod { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidChallengePeriod()"; + const SELECTOR: [u8; 4] = [180u8, 225u8, 36u8, 51u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidClockExtension()` and selector `0x8d77ecac`. +```solidity +error InvalidClockExtension(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidClockExtension; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InvalidClockExtension) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InvalidClockExtension { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidClockExtension { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidClockExtension()"; + const SELECTOR: [u8; 4] = [141u8, 119u8, 236u8, 172u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidDataRemainder()` and selector `0x5c5537b8`. +```solidity +error InvalidDataRemainder(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidDataRemainder; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InvalidDataRemainder) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InvalidDataRemainder { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidDataRemainder { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidDataRemainder()"; + const SELECTOR: [u8; 4] = [92u8, 85u8, 55u8, 184u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidDisputedClaimIndex()` and selector `0x30140332`. +```solidity +error InvalidDisputedClaimIndex(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidDisputedClaimIndex; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: InvalidDisputedClaimIndex) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for InvalidDisputedClaimIndex { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidDisputedClaimIndex { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidDisputedClaimIndex()"; + const SELECTOR: [u8; 4] = [48u8, 20u8, 3u8, 50u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidHeader()` and selector `0xbabb01dd`. +```solidity +error InvalidHeader(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidHeader; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InvalidHeader) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InvalidHeader { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidHeader { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidHeader()"; + const SELECTOR: [u8; 4] = [186u8, 187u8, 1u8, 221u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidHeaderRLP()` and selector `0xd81d583b`. +```solidity +error InvalidHeaderRLP(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidHeaderRLP; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InvalidHeaderRLP) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InvalidHeaderRLP { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidHeaderRLP { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidHeaderRLP()"; + const SELECTOR: [u8; 4] = [216u8, 29u8, 88u8, 59u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidLocalIdent()` and selector `0xff137e65`. +```solidity +error InvalidLocalIdent(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidLocalIdent; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InvalidLocalIdent) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InvalidLocalIdent { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidLocalIdent { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidLocalIdent()"; + const SELECTOR: [u8; 4] = [255u8, 19u8, 126u8, 101u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidOutputRootProof()` and selector `0x9cc00b5b`. +```solidity +error InvalidOutputRootProof(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidOutputRootProof; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InvalidOutputRootProof) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InvalidOutputRootProof { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidOutputRootProof { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidOutputRootProof()"; + const SELECTOR: [u8; 4] = [156u8, 192u8, 11u8, 91u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidParent()` and selector `0x5f53dd98`. +```solidity +error InvalidParent(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidParent; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InvalidParent) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InvalidParent { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidParent { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidParent()"; + const SELECTOR: [u8; 4] = [95u8, 83u8, 221u8, 152u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidPrestate()` and selector `0x696550ff`. +```solidity +error InvalidPrestate(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidPrestate; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InvalidPrestate) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InvalidPrestate { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidPrestate { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidPrestate()"; + const SELECTOR: [u8; 4] = [105u8, 101u8, 80u8, 255u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidSplitDepth()` and selector `0xe62ccf39`. +```solidity +error InvalidSplitDepth(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidSplitDepth; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InvalidSplitDepth) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InvalidSplitDepth { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidSplitDepth { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidSplitDepth()"; + const SELECTOR: [u8; 4] = [230u8, 44u8, 207u8, 57u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `L2BlockNumberChallenged()` and selector `0x0ea2e752`. +```solidity +error L2BlockNumberChallenged(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct L2BlockNumberChallenged; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: L2BlockNumberChallenged) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for L2BlockNumberChallenged { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for L2BlockNumberChallenged { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "L2BlockNumberChallenged()"; + const SELECTOR: [u8; 4] = [14u8, 162u8, 231u8, 82u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `MaxDepthTooLarge()` and selector `0x77dfe332`. +```solidity +error MaxDepthTooLarge(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct MaxDepthTooLarge; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: MaxDepthTooLarge) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for MaxDepthTooLarge { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for MaxDepthTooLarge { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "MaxDepthTooLarge()"; + const SELECTOR: [u8; 4] = [119u8, 223u8, 227u8, 50u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `NoCreditToClaim()` and selector `0x17bfe5f7`. +```solidity +error NoCreditToClaim(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct NoCreditToClaim; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: NoCreditToClaim) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for NoCreditToClaim { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for NoCreditToClaim { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "NoCreditToClaim()"; + const SELECTOR: [u8; 4] = [23u8, 191u8, 229u8, 247u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `OutOfOrderResolution()` and selector `0x9a076646`. +```solidity +error OutOfOrderResolution(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct OutOfOrderResolution; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: OutOfOrderResolution) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for OutOfOrderResolution { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for OutOfOrderResolution { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "OutOfOrderResolution()"; + const SELECTOR: [u8; 4] = [154u8, 7u8, 102u8, 70u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `UnexpectedList()` and selector `0x1ff9b2e4`. +```solidity +error UnexpectedList(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct UnexpectedList; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: UnexpectedList) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for UnexpectedList { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for UnexpectedList { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "UnexpectedList()"; + const SELECTOR: [u8; 4] = [31u8, 249u8, 178u8, 228u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `UnexpectedRootClaim(bytes32)` and selector `0xf40239db`. +```solidity +error UnexpectedRootClaim(Claim rootClaim); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct UnexpectedRootClaim { + #[allow(missing_docs)] + pub rootClaim: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Claim,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (::RustType,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: UnexpectedRootClaim) -> Self { + (value.rootClaim,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for UnexpectedRootClaim { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { rootClaim: tuple.0 } + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for UnexpectedRootClaim { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "UnexpectedRootClaim(bytes32)"; + const SELECTOR: [u8; 4] = [244u8, 2u8, 57u8, 219u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + (::tokenize(&self.rootClaim),) + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `UnexpectedString()` and selector `0x4b9c6abe`. +```solidity +error UnexpectedString(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct UnexpectedString; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: UnexpectedString) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for UnexpectedString { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for UnexpectedString { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "UnexpectedString()"; + const SELECTOR: [u8; 4] = [75u8, 156u8, 106u8, 190u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ValidStep()` and selector `0xfb4e40dd`. +```solidity +error ValidStep(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ValidStep; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ValidStep) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ValidStep { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ValidStep { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ValidStep()"; + const SELECTOR: [u8; 4] = [251u8, 78u8, 64u8, 221u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `GameClosed(uint8)` and selector `0x9908eaac0645df9d0704d06adc9e07337c951de2f06b5f2836151d48d5e4722f`. +```solidity +event GameClosed(BondDistributionMode bondDistributionMode); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct GameClosed { + #[allow(missing_docs)] + pub bondDistributionMode: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for GameClosed { + type DataTuple<'a> = (BondDistributionMode,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,); + const SIGNATURE: &'static str = "GameClosed(uint8)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 153u8, 8u8, 234u8, 172u8, 6u8, 69u8, 223u8, 157u8, 7u8, 4u8, 208u8, + 106u8, 220u8, 158u8, 7u8, 51u8, 124u8, 149u8, 29u8, 226u8, 240u8, 107u8, + 95u8, 40u8, 54u8, 21u8, 29u8, 72u8, 213u8, 228u8, 114u8, 47u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + bondDistributionMode: data.0, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + ::tokenize( + &self.bondDistributionMode, + ), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(),) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for GameClosed { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&GameClosed> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &GameClosed) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `Move(uint256,bytes32,address)` and selector `0x9b3245740ec3b155098a55be84957a4da13eaf7f14a8bc6f53126c0b9350f2be`. +```solidity +event Move(uint256 indexed parentIndex, Claim indexed claim, address indexed claimant); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct Move { + #[allow(missing_docs)] + pub parentIndex: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub claim: ::RustType, + #[allow(missing_docs)] + pub claimant: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for Move { + type DataTuple<'a> = (); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Uint<256>, + Claim, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "Move(uint256,bytes32,address)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 155u8, 50u8, 69u8, 116u8, 14u8, 195u8, 177u8, 85u8, 9u8, 138u8, 85u8, + 190u8, 132u8, 149u8, 122u8, 77u8, 161u8, 62u8, 175u8, 127u8, 20u8, 168u8, + 188u8, 111u8, 83u8, 18u8, 108u8, 11u8, 147u8, 80u8, 242u8, 190u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + parentIndex: topics.1, + claim: topics.2, + claimant: topics.3, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + () + } + #[inline] + fn topics(&self) -> ::RustType { + ( + Self::SIGNATURE_HASH.into(), + self.parentIndex.clone(), + self.claim.clone(), + self.claimant.clone(), + ) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = as alloy_sol_types::EventTopic>::encode_topic(&self.parentIndex); + out[2usize] = ::encode_topic( + &self.claim, + ); + out[3usize] = ::encode_topic( + &self.claimant, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for Move { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&Move> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &Move) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `Resolved(uint8)` and selector `0x5e186f09b9c93491f14e277eea7faa5de6a2d4bda75a79af7a3684fbfb42da60`. +```solidity +event Resolved(GameStatus indexed status); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct Resolved { + #[allow(missing_docs)] + pub status: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for Resolved { + type DataTuple<'a> = (); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>, GameStatus); + const SIGNATURE: &'static str = "Resolved(uint8)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 94u8, 24u8, 111u8, 9u8, 185u8, 201u8, 52u8, 145u8, 241u8, 78u8, 39u8, + 126u8, 234u8, 127u8, 170u8, 93u8, 230u8, 162u8, 212u8, 189u8, 167u8, + 90u8, 121u8, 175u8, 122u8, 54u8, 132u8, 251u8, 251u8, 66u8, 218u8, 96u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { status: topics.1 } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + () + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.status.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.status, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for Resolved { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&Resolved> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &Resolved) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + /**Constructor`. +```solidity +constructor(FaultDisputeGameV2.GameConstructorParams _params); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct constructorCall { + #[allow(missing_docs)] + pub _params: ::RustType, + } + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (FaultDisputeGameV2::GameConstructorParams,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: constructorCall) -> Self { + (value._params,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for constructorCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _params: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolConstructor for constructorCall { + type Parameters<'a> = (FaultDisputeGameV2::GameConstructorParams,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._params, + ), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `absolutePrestate()` and selector `0x8d450a95`. +```solidity +function absolutePrestate() external pure returns (Claim absolutePrestate_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct absolutePrestateCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`absolutePrestate()`](absolutePrestateCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct absolutePrestateReturn { + #[allow(missing_docs)] + pub absolutePrestate_: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: absolutePrestateCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for absolutePrestateCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Claim,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: absolutePrestateReturn) -> Self { + (value.absolutePrestate_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for absolutePrestateReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { absolutePrestate_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for absolutePrestateCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (Claim,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "absolutePrestate()"; + const SELECTOR: [u8; 4] = [141u8, 69u8, 10u8, 149u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: absolutePrestateReturn = r.into(); + r.absolutePrestate_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: absolutePrestateReturn = r.into(); + r.absolutePrestate_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `addLocalData(uint256,uint256,uint256)` and selector `0xf8f43ff6`. +```solidity +function addLocalData(uint256 _ident, uint256 _execLeafIdx, uint256 _partOffset) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct addLocalDataCall { + #[allow(missing_docs)] + pub _ident: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _execLeafIdx: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _partOffset: alloy::sol_types::private::primitives::aliases::U256, + } + ///Container type for the return parameters of the [`addLocalData(uint256,uint256,uint256)`](addLocalDataCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct addLocalDataReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: addLocalDataCall) -> Self { + (value._ident, value._execLeafIdx, value._partOffset) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for addLocalDataCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _ident: tuple.0, + _execLeafIdx: tuple.1, + _partOffset: tuple.2, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: addLocalDataReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for addLocalDataReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl addLocalDataReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for addLocalDataCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = addLocalDataReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "addLocalData(uint256,uint256,uint256)"; + const SELECTOR: [u8; 4] = [248u8, 244u8, 63u8, 246u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._ident), + as alloy_sol_types::SolType>::tokenize(&self._execLeafIdx), + as alloy_sol_types::SolType>::tokenize(&self._partOffset), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + addLocalDataReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `anchorStateRegistry()` and selector `0x5c0cba33`. +```solidity +function anchorStateRegistry() external pure returns (address registry_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct anchorStateRegistryCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`anchorStateRegistry()`](anchorStateRegistryCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct anchorStateRegistryReturn { + #[allow(missing_docs)] + pub registry_: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: anchorStateRegistryCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for anchorStateRegistryCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: anchorStateRegistryReturn) -> Self { + (value.registry_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for anchorStateRegistryReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { registry_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for anchorStateRegistryCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "anchorStateRegistry()"; + const SELECTOR: [u8; 4] = [92u8, 12u8, 186u8, 51u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: anchorStateRegistryReturn = r.into(); + r.registry_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: anchorStateRegistryReturn = r.into(); + r.registry_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `attack(bytes32,uint256,bytes32)` and selector `0x472777c6`. +```solidity +function attack(Claim _disputed, uint256 _parentIndex, Claim _claim) external payable; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct attackCall { + #[allow(missing_docs)] + pub _disputed: ::RustType, + #[allow(missing_docs)] + pub _parentIndex: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _claim: ::RustType, + } + ///Container type for the return parameters of the [`attack(bytes32,uint256,bytes32)`](attackCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct attackReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + Claim, + alloy::sol_types::sol_data::Uint<256>, + Claim, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + alloy::sol_types::private::primitives::aliases::U256, + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: attackCall) -> Self { + (value._disputed, value._parentIndex, value._claim) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for attackCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _disputed: tuple.0, + _parentIndex: tuple.1, + _claim: tuple.2, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: attackReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for attackReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl attackReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for attackCall { + type Parameters<'a> = (Claim, alloy::sol_types::sol_data::Uint<256>, Claim); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = attackReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "attack(bytes32,uint256,bytes32)"; + const SELECTOR: [u8; 4] = [71u8, 39u8, 119u8, 198u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize(&self._disputed), + as alloy_sol_types::SolType>::tokenize(&self._parentIndex), + ::tokenize(&self._claim), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + attackReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `bondDistributionMode()` and selector `0x378dd48c`. +```solidity +function bondDistributionMode() external view returns (BondDistributionMode); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct bondDistributionModeCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`bondDistributionMode()`](bondDistributionModeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct bondDistributionModeReturn { + #[allow(missing_docs)] + pub _0: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: bondDistributionModeCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for bondDistributionModeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (BondDistributionMode,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: bondDistributionModeReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for bondDistributionModeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for bondDistributionModeCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (BondDistributionMode,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "bondDistributionMode()"; + const SELECTOR: [u8; 4] = [55u8, 141u8, 212u8, 140u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: bondDistributionModeReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: bondDistributionModeReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `challengeRootL2Block((bytes32,bytes32,bytes32,bytes32),bytes)` and selector `0x01935130`. +```solidity +function challengeRootL2Block(Types.OutputRootProof memory _outputRootProof, bytes memory _headerRLP) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct challengeRootL2BlockCall { + #[allow(missing_docs)] + pub _outputRootProof: ::RustType, + #[allow(missing_docs)] + pub _headerRLP: alloy::sol_types::private::Bytes, + } + ///Container type for the return parameters of the [`challengeRootL2Block((bytes32,bytes32,bytes32,bytes32),bytes)`](challengeRootL2BlockCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct challengeRootL2BlockReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + Types::OutputRootProof, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + alloy::sol_types::private::Bytes, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: challengeRootL2BlockCall) -> Self { + (value._outputRootProof, value._headerRLP) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for challengeRootL2BlockCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _outputRootProof: tuple.0, + _headerRLP: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: challengeRootL2BlockReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for challengeRootL2BlockReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl challengeRootL2BlockReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken< + '_, + > { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for challengeRootL2BlockCall { + type Parameters<'a> = ( + Types::OutputRootProof, + alloy::sol_types::sol_data::Bytes, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = challengeRootL2BlockReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "challengeRootL2Block((bytes32,bytes32,bytes32,bytes32),bytes)"; + const SELECTOR: [u8; 4] = [1u8, 147u8, 81u8, 48u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._outputRootProof, + ), + ::tokenize( + &self._headerRLP, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + challengeRootL2BlockReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `challenger()` and selector `0x534db0e2`. +```solidity +function challenger() external pure returns (address challenger_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct challengerCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`challenger()`](challengerCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct challengerReturn { + #[allow(missing_docs)] + pub challenger_: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: challengerCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for challengerCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: challengerReturn) -> Self { + (value.challenger_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for challengerReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { challenger_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for challengerCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "challenger()"; + const SELECTOR: [u8; 4] = [83u8, 77u8, 176u8, 226u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: challengerReturn = r.into(); + r.challenger_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: challengerReturn = r.into(); + r.challenger_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `claimCredit(address)` and selector `0x60e27464`. +```solidity +function claimCredit(address _recipient) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct claimCreditCall { + #[allow(missing_docs)] + pub _recipient: alloy::sol_types::private::Address, + } + ///Container type for the return parameters of the [`claimCredit(address)`](claimCreditCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct claimCreditReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: claimCreditCall) -> Self { + (value._recipient,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for claimCreditCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _recipient: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: claimCreditReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for claimCreditReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl claimCreditReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for claimCreditCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = claimCreditReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "claimCredit(address)"; + const SELECTOR: [u8; 4] = [96u8, 226u8, 116u8, 100u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._recipient, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + claimCreditReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `claimData(uint256)` and selector `0xc6f0308c`. +```solidity +function claimData(uint256) external view returns (uint32 parentIndex, address counteredBy, address claimant, uint128 bond, Claim claim, Position position, Clock clock); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct claimDataCall(pub alloy::sol_types::private::primitives::aliases::U256); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`claimData(uint256)`](claimDataCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct claimDataReturn { + #[allow(missing_docs)] + pub parentIndex: u32, + #[allow(missing_docs)] + pub counteredBy: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub claimant: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub bond: u128, + #[allow(missing_docs)] + pub claim: ::RustType, + #[allow(missing_docs)] + pub position: ::RustType, + #[allow(missing_docs)] + pub clock: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: claimDataCall) -> Self { + (value.0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for claimDataCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self(tuple.0) + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Uint<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<128>, + Claim, + Position, + Clock, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + u32, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + u128, + ::RustType, + ::RustType, + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: claimDataReturn) -> Self { + ( + value.parentIndex, + value.counteredBy, + value.claimant, + value.bond, + value.claim, + value.position, + value.clock, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for claimDataReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + parentIndex: tuple.0, + counteredBy: tuple.1, + claimant: tuple.2, + bond: tuple.3, + claim: tuple.4, + position: tuple.5, + clock: tuple.6, + } + } + } + } + impl claimDataReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.parentIndex), + ::tokenize( + &self.counteredBy, + ), + ::tokenize( + &self.claimant, + ), + as alloy_sol_types::SolType>::tokenize(&self.bond), + ::tokenize(&self.claim), + ::tokenize(&self.position), + ::tokenize(&self.clock), + ) + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for claimDataCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = claimDataReturn; + type ReturnTuple<'a> = ( + alloy::sol_types::sol_data::Uint<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<128>, + Claim, + Position, + Clock, + ); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "claimData(uint256)"; + const SELECTOR: [u8; 4] = [198u8, 240u8, 48u8, 140u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.0), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + claimDataReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `claimDataLen()` and selector `0x8980e0cc`. +```solidity +function claimDataLen() external view returns (uint256 len_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct claimDataLenCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`claimDataLen()`](claimDataLenCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct claimDataLenReturn { + #[allow(missing_docs)] + pub len_: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: claimDataLenCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for claimDataLenCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: claimDataLenReturn) -> Self { + (value.len_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for claimDataLenReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { len_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for claimDataLenCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "claimDataLen()"; + const SELECTOR: [u8; 4] = [137u8, 128u8, 224u8, 204u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: claimDataLenReturn = r.into(); + r.len_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: claimDataLenReturn = r.into(); + r.len_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `claims(bytes32)` and selector `0xeff0f592`. +```solidity +function claims(Hash) external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct claimsCall(pub ::RustType); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`claims(bytes32)`](claimsCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct claimsReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Hash,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: claimsCall) -> Self { + (value.0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for claimsCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self(tuple.0) + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: claimsReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for claimsReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for claimsCall { + type Parameters<'a> = (Hash,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "claims(bytes32)"; + const SELECTOR: [u8; 4] = [239u8, 240u8, 245u8, 146u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + (::tokenize(&self.0),) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: claimsReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: claimsReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `clockExtension()` and selector `0x6b6716c0`. +```solidity +function clockExtension() external view returns (Duration clockExtension_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct clockExtensionCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`clockExtension()`](clockExtensionCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct clockExtensionReturn { + #[allow(missing_docs)] + pub clockExtension_: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: clockExtensionCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for clockExtensionCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Duration,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: clockExtensionReturn) -> Self { + (value.clockExtension_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for clockExtensionReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { clockExtension_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for clockExtensionCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (Duration,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "clockExtension()"; + const SELECTOR: [u8; 4] = [107u8, 103u8, 22u8, 192u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: clockExtensionReturn = r.into(); + r.clockExtension_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: clockExtensionReturn = r.into(); + r.clockExtension_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `closeGame()` and selector `0x786b844b`. +```solidity +function closeGame() external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct closeGameCall; + ///Container type for the return parameters of the [`closeGame()`](closeGameCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct closeGameReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: closeGameCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for closeGameCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: closeGameReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for closeGameReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl closeGameReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for closeGameCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = closeGameReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "closeGame()"; + const SELECTOR: [u8; 4] = [120u8, 107u8, 132u8, 75u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + closeGameReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `createdAt()` and selector `0xcf09e0d0`. +```solidity +function createdAt() external view returns (Timestamp); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct createdAtCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`createdAt()`](createdAtCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct createdAtReturn { + #[allow(missing_docs)] + pub _0: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: createdAtCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for createdAtCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Timestamp,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: createdAtReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for createdAtReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for createdAtCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (Timestamp,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "createdAt()"; + const SELECTOR: [u8; 4] = [207u8, 9u8, 224u8, 208u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: createdAtReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: createdAtReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `credit(address)` and selector `0xd5d44d80`. +```solidity +function credit(address _recipient) external view returns (uint256 credit_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct creditCall { + #[allow(missing_docs)] + pub _recipient: alloy::sol_types::private::Address, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`credit(address)`](creditCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct creditReturn { + #[allow(missing_docs)] + pub credit_: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: creditCall) -> Self { + (value._recipient,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for creditCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _recipient: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: creditReturn) -> Self { + (value.credit_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for creditReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { credit_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for creditCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "credit(address)"; + const SELECTOR: [u8; 4] = [213u8, 212u8, 77u8, 128u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._recipient, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: creditReturn = r.into(); + r.credit_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: creditReturn = r.into(); + r.credit_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `defend(bytes32,uint256,bytes32)` and selector `0x7b0f0adc`. +```solidity +function defend(Claim _disputed, uint256 _parentIndex, Claim _claim) external payable; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct defendCall { + #[allow(missing_docs)] + pub _disputed: ::RustType, + #[allow(missing_docs)] + pub _parentIndex: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _claim: ::RustType, + } + ///Container type for the return parameters of the [`defend(bytes32,uint256,bytes32)`](defendCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct defendReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + Claim, + alloy::sol_types::sol_data::Uint<256>, + Claim, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + alloy::sol_types::private::primitives::aliases::U256, + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: defendCall) -> Self { + (value._disputed, value._parentIndex, value._claim) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for defendCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _disputed: tuple.0, + _parentIndex: tuple.1, + _claim: tuple.2, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: defendReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for defendReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl defendReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for defendCall { + type Parameters<'a> = (Claim, alloy::sol_types::sol_data::Uint<256>, Claim); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = defendReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "defend(bytes32,uint256,bytes32)"; + const SELECTOR: [u8; 4] = [123u8, 15u8, 10u8, 220u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize(&self._disputed), + as alloy_sol_types::SolType>::tokenize(&self._parentIndex), + ::tokenize(&self._claim), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + defendReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `extraData()` and selector `0x609d3334`. +```solidity +function extraData() external pure returns (bytes memory extraData_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct extraDataCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`extraData()`](extraDataCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct extraDataReturn { + #[allow(missing_docs)] + pub extraData_: alloy::sol_types::private::Bytes, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: extraDataCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for extraDataCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bytes,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Bytes,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: extraDataReturn) -> Self { + (value.extraData_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for extraDataReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { extraData_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for extraDataCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Bytes; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bytes,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "extraData()"; + const SELECTOR: [u8; 4] = [96u8, 157u8, 51u8, 52u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: extraDataReturn = r.into(); + r.extraData_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: extraDataReturn = r.into(); + r.extraData_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `gameCreator()` and selector `0x37b1b229`. +```solidity +function gameCreator() external pure returns (address creator_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct gameCreatorCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`gameCreator()`](gameCreatorCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct gameCreatorReturn { + #[allow(missing_docs)] + pub creator_: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: gameCreatorCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for gameCreatorCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: gameCreatorReturn) -> Self { + (value.creator_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for gameCreatorReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { creator_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for gameCreatorCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "gameCreator()"; + const SELECTOR: [u8; 4] = [55u8, 177u8, 178u8, 41u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: gameCreatorReturn = r.into(); + r.creator_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: gameCreatorReturn = r.into(); + r.creator_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `gameData()` and selector `0xfa24f743`. +```solidity +function gameData() external pure returns (GameType gameType_, Claim rootClaim_, bytes memory extraData_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct gameDataCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`gameData()`](gameDataCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct gameDataReturn { + #[allow(missing_docs)] + pub gameType_: ::RustType, + #[allow(missing_docs)] + pub rootClaim_: ::RustType, + #[allow(missing_docs)] + pub extraData_: alloy::sol_types::private::Bytes, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: gameDataCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for gameDataCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + GameType, + Claim, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ::RustType, + alloy::sol_types::private::Bytes, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: gameDataReturn) -> Self { + (value.gameType_, value.rootClaim_, value.extraData_) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for gameDataReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + gameType_: tuple.0, + rootClaim_: tuple.1, + extraData_: tuple.2, + } + } + } + } + impl gameDataReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + ( + ::tokenize(&self.gameType_), + ::tokenize(&self.rootClaim_), + ::tokenize( + &self.extraData_, + ), + ) + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for gameDataCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = gameDataReturn; + type ReturnTuple<'a> = (GameType, Claim, alloy::sol_types::sol_data::Bytes); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "gameData()"; + const SELECTOR: [u8; 4] = [250u8, 36u8, 247u8, 67u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + gameDataReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `gameType()` and selector `0xbbdc02db`. +```solidity +function gameType() external pure returns (GameType gameType_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct gameTypeCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`gameType()`](gameTypeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct gameTypeReturn { + #[allow(missing_docs)] + pub gameType_: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: gameTypeCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for gameTypeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (GameType,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: gameTypeReturn) -> Self { + (value.gameType_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for gameTypeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { gameType_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for gameTypeCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (GameType,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "gameType()"; + const SELECTOR: [u8; 4] = [187u8, 220u8, 2u8, 219u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: gameTypeReturn = r.into(); + r.gameType_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: gameTypeReturn = r.into(); + r.gameType_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `getChallengerDuration(uint256)` and selector `0xbd8da956`. +```solidity +function getChallengerDuration(uint256 _claimIndex) external view returns (Duration duration_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getChallengerDurationCall { + #[allow(missing_docs)] + pub _claimIndex: alloy::sol_types::private::primitives::aliases::U256, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`getChallengerDuration(uint256)`](getChallengerDurationCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getChallengerDurationReturn { + #[allow(missing_docs)] + pub duration_: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: getChallengerDurationCall) -> Self { + (value._claimIndex,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for getChallengerDurationCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _claimIndex: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Duration,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: getChallengerDurationReturn) -> Self { + (value.duration_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for getChallengerDurationReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { duration_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for getChallengerDurationCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (Duration,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "getChallengerDuration(uint256)"; + const SELECTOR: [u8; 4] = [189u8, 141u8, 169u8, 86u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._claimIndex), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: getChallengerDurationReturn = r.into(); + r.duration_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: getChallengerDurationReturn = r.into(); + r.duration_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `getNumToResolve(uint256)` and selector `0x5a5fa2d9`. +```solidity +function getNumToResolve(uint256 _claimIndex) external view returns (uint256 numRemainingChildren_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getNumToResolveCall { + #[allow(missing_docs)] + pub _claimIndex: alloy::sol_types::private::primitives::aliases::U256, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`getNumToResolve(uint256)`](getNumToResolveCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getNumToResolveReturn { + #[allow(missing_docs)] + pub numRemainingChildren_: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: getNumToResolveCall) -> Self { + (value._claimIndex,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for getNumToResolveCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _claimIndex: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: getNumToResolveReturn) -> Self { + (value.numRemainingChildren_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for getNumToResolveReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + numRemainingChildren_: tuple.0, + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for getNumToResolveCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "getNumToResolve(uint256)"; + const SELECTOR: [u8; 4] = [90u8, 95u8, 162u8, 217u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._claimIndex), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: getNumToResolveReturn = r.into(); + r.numRemainingChildren_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: getNumToResolveReturn = r.into(); + r.numRemainingChildren_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `getRequiredBond(uint128)` and selector `0xc395e1ca`. +```solidity +function getRequiredBond(Position _position) external view returns (uint256 requiredBond_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getRequiredBondCall { + #[allow(missing_docs)] + pub _position: ::RustType, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`getRequiredBond(uint128)`](getRequiredBondCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getRequiredBondReturn { + #[allow(missing_docs)] + pub requiredBond_: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Position,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: getRequiredBondCall) -> Self { + (value._position,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for getRequiredBondCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _position: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: getRequiredBondReturn) -> Self { + (value.requiredBond_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for getRequiredBondReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { requiredBond_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for getRequiredBondCall { + type Parameters<'a> = (Position,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "getRequiredBond(uint128)"; + const SELECTOR: [u8; 4] = [195u8, 149u8, 225u8, 202u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + (::tokenize(&self._position),) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: getRequiredBondReturn = r.into(); + r.requiredBond_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: getRequiredBondReturn = r.into(); + r.requiredBond_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `hasUnlockedCredit(address)` and selector `0x222abf45`. +```solidity +function hasUnlockedCredit(address) external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct hasUnlockedCreditCall(pub alloy::sol_types::private::Address); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`hasUnlockedCredit(address)`](hasUnlockedCreditCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct hasUnlockedCreditReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: hasUnlockedCreditCall) -> Self { + (value.0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for hasUnlockedCreditCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self(tuple.0) + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: hasUnlockedCreditReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for hasUnlockedCreditReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for hasUnlockedCreditCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "hasUnlockedCredit(address)"; + const SELECTOR: [u8; 4] = [34u8, 42u8, 191u8, 69u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.0, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: hasUnlockedCreditReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: hasUnlockedCreditReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `initialize()` and selector `0x8129fc1c`. +```solidity +function initialize() external payable; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct initializeCall; + ///Container type for the return parameters of the [`initialize()`](initializeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct initializeReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: initializeCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for initializeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: initializeReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for initializeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl initializeReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for initializeCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = initializeReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "initialize()"; + const SELECTOR: [u8; 4] = [129u8, 41u8, 252u8, 28u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + initializeReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `l1Head()` and selector `0x6361506d`. +```solidity +function l1Head() external pure returns (Hash l1Head_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct l1HeadCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`l1Head()`](l1HeadCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct l1HeadReturn { + #[allow(missing_docs)] + pub l1Head_: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: l1HeadCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for l1HeadCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Hash,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: l1HeadReturn) -> Self { + (value.l1Head_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for l1HeadReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { l1Head_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for l1HeadCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (Hash,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "l1Head()"; + const SELECTOR: [u8; 4] = [99u8, 97u8, 80u8, 109u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: l1HeadReturn = r.into(); + r.l1Head_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: l1HeadReturn = r.into(); + r.l1Head_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `l2BlockNumber()` and selector `0x8b85902b`. +```solidity +function l2BlockNumber() external pure returns (uint256 l2BlockNumber_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct l2BlockNumberCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`l2BlockNumber()`](l2BlockNumberCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct l2BlockNumberReturn { + #[allow(missing_docs)] + pub l2BlockNumber_: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: l2BlockNumberCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for l2BlockNumberCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: l2BlockNumberReturn) -> Self { + (value.l2BlockNumber_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for l2BlockNumberReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { l2BlockNumber_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for l2BlockNumberCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "l2BlockNumber()"; + const SELECTOR: [u8; 4] = [139u8, 133u8, 144u8, 43u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: l2BlockNumberReturn = r.into(); + r.l2BlockNumber_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: l2BlockNumberReturn = r.into(); + r.l2BlockNumber_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `l2BlockNumberChallenged()` and selector `0x3e3ac912`. +```solidity +function l2BlockNumberChallenged() external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct l2BlockNumberChallengedCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`l2BlockNumberChallenged()`](l2BlockNumberChallengedCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct l2BlockNumberChallengedReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: l2BlockNumberChallengedCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for l2BlockNumberChallengedCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: l2BlockNumberChallengedReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for l2BlockNumberChallengedReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for l2BlockNumberChallengedCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "l2BlockNumberChallenged()"; + const SELECTOR: [u8; 4] = [62u8, 58u8, 201u8, 18u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: l2BlockNumberChallengedReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: l2BlockNumberChallengedReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `l2BlockNumberChallenger()` and selector `0x30dbe570`. +```solidity +function l2BlockNumberChallenger() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct l2BlockNumberChallengerCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`l2BlockNumberChallenger()`](l2BlockNumberChallengerCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct l2BlockNumberChallengerReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: l2BlockNumberChallengerCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for l2BlockNumberChallengerCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: l2BlockNumberChallengerReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for l2BlockNumberChallengerReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for l2BlockNumberChallengerCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "l2BlockNumberChallenger()"; + const SELECTOR: [u8; 4] = [48u8, 219u8, 229u8, 112u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: l2BlockNumberChallengerReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: l2BlockNumberChallengerReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `l2ChainId()` and selector `0xd6ae3cd5`. +```solidity +function l2ChainId() external pure returns (uint256 l2ChainId_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct l2ChainIdCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`l2ChainId()`](l2ChainIdCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct l2ChainIdReturn { + #[allow(missing_docs)] + pub l2ChainId_: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: l2ChainIdCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for l2ChainIdCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: l2ChainIdReturn) -> Self { + (value.l2ChainId_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for l2ChainIdReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { l2ChainId_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for l2ChainIdCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "l2ChainId()"; + const SELECTOR: [u8; 4] = [214u8, 174u8, 60u8, 213u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: l2ChainIdReturn = r.into(); + r.l2ChainId_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: l2ChainIdReturn = r.into(); + r.l2ChainId_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `l2SequenceNumber()` and selector `0x99735e32`. +```solidity +function l2SequenceNumber() external pure returns (uint256 l2SequenceNumber_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct l2SequenceNumberCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`l2SequenceNumber()`](l2SequenceNumberCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct l2SequenceNumberReturn { + #[allow(missing_docs)] + pub l2SequenceNumber_: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: l2SequenceNumberCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for l2SequenceNumberCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: l2SequenceNumberReturn) -> Self { + (value.l2SequenceNumber_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for l2SequenceNumberReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { l2SequenceNumber_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for l2SequenceNumberCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "l2SequenceNumber()"; + const SELECTOR: [u8; 4] = [153u8, 115u8, 94u8, 50u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: l2SequenceNumberReturn = r.into(); + r.l2SequenceNumber_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: l2SequenceNumberReturn = r.into(); + r.l2SequenceNumber_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `maxClockDuration()` and selector `0xdabd396d`. +```solidity +function maxClockDuration() external view returns (Duration maxClockDuration_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct maxClockDurationCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`maxClockDuration()`](maxClockDurationCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct maxClockDurationReturn { + #[allow(missing_docs)] + pub maxClockDuration_: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: maxClockDurationCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for maxClockDurationCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Duration,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: maxClockDurationReturn) -> Self { + (value.maxClockDuration_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for maxClockDurationReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { maxClockDuration_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for maxClockDurationCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (Duration,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "maxClockDuration()"; + const SELECTOR: [u8; 4] = [218u8, 189u8, 57u8, 109u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: maxClockDurationReturn = r.into(); + r.maxClockDuration_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: maxClockDurationReturn = r.into(); + r.maxClockDuration_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `maxGameDepth()` and selector `0xfa315aa9`. +```solidity +function maxGameDepth() external view returns (uint256 maxGameDepth_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct maxGameDepthCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`maxGameDepth()`](maxGameDepthCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct maxGameDepthReturn { + #[allow(missing_docs)] + pub maxGameDepth_: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: maxGameDepthCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for maxGameDepthCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: maxGameDepthReturn) -> Self { + (value.maxGameDepth_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for maxGameDepthReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { maxGameDepth_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for maxGameDepthCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "maxGameDepth()"; + const SELECTOR: [u8; 4] = [250u8, 49u8, 90u8, 169u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: maxGameDepthReturn = r.into(); + r.maxGameDepth_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: maxGameDepthReturn = r.into(); + r.maxGameDepth_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `move(bytes32,uint256,bytes32,bool)` and selector `0x6f034409`. +```solidity +function r#move(Claim _disputed, uint256 _challengeIndex, Claim _claim, bool _isAttack) external payable; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct moveCall { + #[allow(missing_docs)] + pub _disputed: ::RustType, + #[allow(missing_docs)] + pub _challengeIndex: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _claim: ::RustType, + #[allow(missing_docs)] + pub _isAttack: bool, + } + ///Container type for the return parameters of the [`move(bytes32,uint256,bytes32,bool)`](moveCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct moveReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + Claim, + alloy::sol_types::sol_data::Uint<256>, + Claim, + alloy::sol_types::sol_data::Bool, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + alloy::sol_types::private::primitives::aliases::U256, + ::RustType, + bool, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: moveCall) -> Self { + ( + value._disputed, + value._challengeIndex, + value._claim, + value._isAttack, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for moveCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _disputed: tuple.0, + _challengeIndex: tuple.1, + _claim: tuple.2, + _isAttack: tuple.3, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: moveReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for moveReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl moveReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for moveCall { + type Parameters<'a> = ( + Claim, + alloy::sol_types::sol_data::Uint<256>, + Claim, + alloy::sol_types::sol_data::Bool, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = moveReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "move(bytes32,uint256,bytes32,bool)"; + const SELECTOR: [u8; 4] = [111u8, 3u8, 68u8, 9u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize(&self._disputed), + as alloy_sol_types::SolType>::tokenize(&self._challengeIndex), + ::tokenize(&self._claim), + ::tokenize( + &self._isAttack, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + moveReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `normalModeCredit(address)` and selector `0x529d6a8c`. +```solidity +function normalModeCredit(address) external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct normalModeCreditCall(pub alloy::sol_types::private::Address); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`normalModeCredit(address)`](normalModeCreditCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct normalModeCreditReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: normalModeCreditCall) -> Self { + (value.0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for normalModeCreditCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self(tuple.0) + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: normalModeCreditReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for normalModeCreditReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for normalModeCreditCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "normalModeCredit(address)"; + const SELECTOR: [u8; 4] = [82u8, 157u8, 106u8, 140u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.0, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: normalModeCreditReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: normalModeCreditReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `proposer()` and selector `0xa8e4fb90`. +```solidity +function proposer() external pure returns (address proposer_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct proposerCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`proposer()`](proposerCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct proposerReturn { + #[allow(missing_docs)] + pub proposer_: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: proposerCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for proposerCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: proposerReturn) -> Self { + (value.proposer_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for proposerReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { proposer_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for proposerCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "proposer()"; + const SELECTOR: [u8; 4] = [168u8, 228u8, 251u8, 144u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: proposerReturn = r.into(); + r.proposer_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: proposerReturn = r.into(); + r.proposer_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `refundModeCredit(address)` and selector `0xc0d8bb74`. +```solidity +function refundModeCredit(address) external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct refundModeCreditCall(pub alloy::sol_types::private::Address); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`refundModeCredit(address)`](refundModeCreditCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct refundModeCreditReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: refundModeCreditCall) -> Self { + (value.0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for refundModeCreditCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self(tuple.0) + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: refundModeCreditReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for refundModeCreditReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for refundModeCreditCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "refundModeCredit(address)"; + const SELECTOR: [u8; 4] = [192u8, 216u8, 187u8, 116u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.0, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: refundModeCreditReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: refundModeCreditReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `resolutionCheckpoints(uint256)` and selector `0xa445ece6`. +```solidity +function resolutionCheckpoints(uint256) external view returns (bool initialCheckpointComplete, uint32 subgameIndex, Position leftmostPosition, address counteredBy); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct resolutionCheckpointsCall( + pub alloy::sol_types::private::primitives::aliases::U256, + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`resolutionCheckpoints(uint256)`](resolutionCheckpointsCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct resolutionCheckpointsReturn { + #[allow(missing_docs)] + pub initialCheckpointComplete: bool, + #[allow(missing_docs)] + pub subgameIndex: u32, + #[allow(missing_docs)] + pub leftmostPosition: ::RustType, + #[allow(missing_docs)] + pub counteredBy: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: resolutionCheckpointsCall) -> Self { + (value.0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for resolutionCheckpointsCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self(tuple.0) + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Bool, + alloy::sol_types::sol_data::Uint<32>, + Position, + alloy::sol_types::sol_data::Address, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + bool, + u32, + ::RustType, + alloy::sol_types::private::Address, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: resolutionCheckpointsReturn) -> Self { + ( + value.initialCheckpointComplete, + value.subgameIndex, + value.leftmostPosition, + value.counteredBy, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for resolutionCheckpointsReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + initialCheckpointComplete: tuple.0, + subgameIndex: tuple.1, + leftmostPosition: tuple.2, + counteredBy: tuple.3, + } + } + } + } + impl resolutionCheckpointsReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken< + '_, + > { + ( + ::tokenize( + &self.initialCheckpointComplete, + ), + as alloy_sol_types::SolType>::tokenize(&self.subgameIndex), + ::tokenize( + &self.leftmostPosition, + ), + ::tokenize( + &self.counteredBy, + ), + ) + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for resolutionCheckpointsCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = resolutionCheckpointsReturn; + type ReturnTuple<'a> = ( + alloy::sol_types::sol_data::Bool, + alloy::sol_types::sol_data::Uint<32>, + Position, + alloy::sol_types::sol_data::Address, + ); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "resolutionCheckpoints(uint256)"; + const SELECTOR: [u8; 4] = [164u8, 69u8, 236u8, 230u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.0), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + resolutionCheckpointsReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `resolve()` and selector `0x2810e1d6`. +```solidity +function resolve() external returns (GameStatus status_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct resolveCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`resolve()`](resolveCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct resolveReturn { + #[allow(missing_docs)] + pub status_: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: resolveCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for resolveCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (GameStatus,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: resolveReturn) -> Self { + (value.status_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for resolveReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { status_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for resolveCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (GameStatus,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "resolve()"; + const SELECTOR: [u8; 4] = [40u8, 16u8, 225u8, 214u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: resolveReturn = r.into(); + r.status_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: resolveReturn = r.into(); + r.status_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `resolveClaim(uint256,uint256)` and selector `0x03c2924d`. +```solidity +function resolveClaim(uint256 _claimIndex, uint256 _numToResolve) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct resolveClaimCall { + #[allow(missing_docs)] + pub _claimIndex: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _numToResolve: alloy::sol_types::private::primitives::aliases::U256, + } + ///Container type for the return parameters of the [`resolveClaim(uint256,uint256)`](resolveClaimCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct resolveClaimReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: resolveClaimCall) -> Self { + (value._claimIndex, value._numToResolve) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for resolveClaimCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _claimIndex: tuple.0, + _numToResolve: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: resolveClaimReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for resolveClaimReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl resolveClaimReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for resolveClaimCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = resolveClaimReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "resolveClaim(uint256,uint256)"; + const SELECTOR: [u8; 4] = [3u8, 194u8, 146u8, 77u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._claimIndex), + as alloy_sol_types::SolType>::tokenize(&self._numToResolve), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + resolveClaimReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `resolvedAt()` and selector `0x19effeb4`. +```solidity +function resolvedAt() external view returns (Timestamp); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct resolvedAtCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`resolvedAt()`](resolvedAtCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct resolvedAtReturn { + #[allow(missing_docs)] + pub _0: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: resolvedAtCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for resolvedAtCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Timestamp,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: resolvedAtReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for resolvedAtReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for resolvedAtCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (Timestamp,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "resolvedAt()"; + const SELECTOR: [u8; 4] = [25u8, 239u8, 254u8, 180u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: resolvedAtReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: resolvedAtReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `resolvedSubgames(uint256)` and selector `0xfe2bbeb2`. +```solidity +function resolvedSubgames(uint256) external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct resolvedSubgamesCall( + pub alloy::sol_types::private::primitives::aliases::U256, + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`resolvedSubgames(uint256)`](resolvedSubgamesCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct resolvedSubgamesReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: resolvedSubgamesCall) -> Self { + (value.0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for resolvedSubgamesCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self(tuple.0) + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: resolvedSubgamesReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for resolvedSubgamesReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for resolvedSubgamesCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "resolvedSubgames(uint256)"; + const SELECTOR: [u8; 4] = [254u8, 43u8, 190u8, 178u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.0), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: resolvedSubgamesReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: resolvedSubgamesReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `rootClaim()` and selector `0xbcef3b55`. +```solidity +function rootClaim() external pure returns (Claim rootClaim_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct rootClaimCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`rootClaim()`](rootClaimCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct rootClaimReturn { + #[allow(missing_docs)] + pub rootClaim_: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: rootClaimCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for rootClaimCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Claim,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: rootClaimReturn) -> Self { + (value.rootClaim_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for rootClaimReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { rootClaim_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for rootClaimCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (Claim,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "rootClaim()"; + const SELECTOR: [u8; 4] = [188u8, 239u8, 59u8, 85u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: rootClaimReturn = r.into(); + r.rootClaim_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: rootClaimReturn = r.into(); + r.rootClaim_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `splitDepth()` and selector `0xec5e6308`. +```solidity +function splitDepth() external view returns (uint256 splitDepth_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct splitDepthCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`splitDepth()`](splitDepthCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct splitDepthReturn { + #[allow(missing_docs)] + pub splitDepth_: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: splitDepthCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for splitDepthCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: splitDepthReturn) -> Self { + (value.splitDepth_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for splitDepthReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { splitDepth_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for splitDepthCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "splitDepth()"; + const SELECTOR: [u8; 4] = [236u8, 94u8, 99u8, 8u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: splitDepthReturn = r.into(); + r.splitDepth_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: splitDepthReturn = r.into(); + r.splitDepth_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `startingBlockNumber()` and selector `0x70872aa5`. +```solidity +function startingBlockNumber() external view returns (uint256 startingBlockNumber_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct startingBlockNumberCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`startingBlockNumber()`](startingBlockNumberCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct startingBlockNumberReturn { + #[allow(missing_docs)] + pub startingBlockNumber_: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: startingBlockNumberCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for startingBlockNumberCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: startingBlockNumberReturn) -> Self { + (value.startingBlockNumber_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for startingBlockNumberReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + startingBlockNumber_: tuple.0, + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for startingBlockNumberCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "startingBlockNumber()"; + const SELECTOR: [u8; 4] = [112u8, 135u8, 42u8, 165u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: startingBlockNumberReturn = r.into(); + r.startingBlockNumber_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: startingBlockNumberReturn = r.into(); + r.startingBlockNumber_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `startingOutputRoot()` and selector `0x57da950e`. +```solidity +function startingOutputRoot() external view returns (Hash root, uint256 l2SequenceNumber); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct startingOutputRootCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`startingOutputRoot()`](startingOutputRootCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct startingOutputRootReturn { + #[allow(missing_docs)] + pub root: ::RustType, + #[allow(missing_docs)] + pub l2SequenceNumber: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: startingOutputRootCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for startingOutputRootCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Hash, alloy::sol_types::sol_data::Uint<256>); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: startingOutputRootReturn) -> Self { + (value.root, value.l2SequenceNumber) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for startingOutputRootReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + root: tuple.0, + l2SequenceNumber: tuple.1, + } + } + } + } + impl startingOutputRootReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + ( + ::tokenize(&self.root), + as alloy_sol_types::SolType>::tokenize(&self.l2SequenceNumber), + ) + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for startingOutputRootCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = startingOutputRootReturn; + type ReturnTuple<'a> = (Hash, alloy::sol_types::sol_data::Uint<256>); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "startingOutputRoot()"; + const SELECTOR: [u8; 4] = [87u8, 218u8, 149u8, 14u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + startingOutputRootReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `startingRootHash()` and selector `0x25fc2ace`. +```solidity +function startingRootHash() external view returns (Hash startingRootHash_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct startingRootHashCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`startingRootHash()`](startingRootHashCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct startingRootHashReturn { + #[allow(missing_docs)] + pub startingRootHash_: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: startingRootHashCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for startingRootHashCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Hash,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: startingRootHashReturn) -> Self { + (value.startingRootHash_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for startingRootHashReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { startingRootHash_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for startingRootHashCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (Hash,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "startingRootHash()"; + const SELECTOR: [u8; 4] = [37u8, 252u8, 42u8, 206u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: startingRootHashReturn = r.into(); + r.startingRootHash_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: startingRootHashReturn = r.into(); + r.startingRootHash_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `status()` and selector `0x200d2ed2`. +```solidity +function status() external view returns (GameStatus); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct statusCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`status()`](statusCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct statusReturn { + #[allow(missing_docs)] + pub _0: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: statusCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for statusCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (GameStatus,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: statusReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for statusReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for statusCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (GameStatus,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "status()"; + const SELECTOR: [u8; 4] = [32u8, 13u8, 46u8, 210u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: statusReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: statusReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `step(uint256,bool,bytes,bytes)` and selector `0xd8cc1a3c`. +```solidity +function step(uint256 _claimIndex, bool _isAttack, bytes memory _stateData, bytes memory _proof) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct stepCall { + #[allow(missing_docs)] + pub _claimIndex: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _isAttack: bool, + #[allow(missing_docs)] + pub _stateData: alloy::sol_types::private::Bytes, + #[allow(missing_docs)] + pub _proof: alloy::sol_types::private::Bytes, + } + ///Container type for the return parameters of the [`step(uint256,bool,bytes,bytes)`](stepCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct stepReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Bool, + alloy::sol_types::sol_data::Bytes, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + bool, + alloy::sol_types::private::Bytes, + alloy::sol_types::private::Bytes, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: stepCall) -> Self { + (value._claimIndex, value._isAttack, value._stateData, value._proof) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for stepCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _claimIndex: tuple.0, + _isAttack: tuple.1, + _stateData: tuple.2, + _proof: tuple.3, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: stepReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for stepReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl stepReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for stepCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Bool, + alloy::sol_types::sol_data::Bytes, + alloy::sol_types::sol_data::Bytes, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = stepReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "step(uint256,bool,bytes,bytes)"; + const SELECTOR: [u8; 4] = [216u8, 204u8, 26u8, 60u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._claimIndex), + ::tokenize( + &self._isAttack, + ), + ::tokenize( + &self._stateData, + ), + ::tokenize( + &self._proof, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + stepReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `subgames(uint256,uint256)` and selector `0x2ad69aeb`. +```solidity +function subgames(uint256, uint256) external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct subgamesCall { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _1: alloy::sol_types::private::primitives::aliases::U256, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`subgames(uint256,uint256)`](subgamesCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct subgamesReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: subgamesCall) -> Self { + (value._0, value._1) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for subgamesCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0, _1: tuple.1 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: subgamesReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for subgamesReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for subgamesCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "subgames(uint256,uint256)"; + const SELECTOR: [u8; 4] = [42u8, 214u8, 154u8, 235u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._0), + as alloy_sol_types::SolType>::tokenize(&self._1), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: subgamesReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: subgamesReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `version()` and selector `0x54fd4d50`. +```solidity +function version() external pure returns (string memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`version()`](versionCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for versionCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::String; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "version()"; + const SELECTOR: [u8; 4] = [84u8, 253u8, 77u8, 80u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `vm()` and selector `0x3a768463`. +```solidity +function vm() external pure returns (address vm_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct vmCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`vm()`](vmCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct vmReturn { + #[allow(missing_docs)] + pub vm_: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: vmCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for vmCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: vmReturn) -> Self { + (value.vm_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for vmReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { vm_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for vmCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "vm()"; + const SELECTOR: [u8; 4] = [58u8, 118u8, 132u8, 99u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: vmReturn = r.into(); + r.vm_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: vmReturn = r.into(); + r.vm_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `wasRespectedGameTypeWhenCreated()` and selector `0x250e69bd`. +```solidity +function wasRespectedGameTypeWhenCreated() external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct wasRespectedGameTypeWhenCreatedCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`wasRespectedGameTypeWhenCreated()`](wasRespectedGameTypeWhenCreatedCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct wasRespectedGameTypeWhenCreatedReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: wasRespectedGameTypeWhenCreatedCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for wasRespectedGameTypeWhenCreatedCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: wasRespectedGameTypeWhenCreatedReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for wasRespectedGameTypeWhenCreatedReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for wasRespectedGameTypeWhenCreatedCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "wasRespectedGameTypeWhenCreated()"; + const SELECTOR: [u8; 4] = [37u8, 14u8, 105u8, 189u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: wasRespectedGameTypeWhenCreatedReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: wasRespectedGameTypeWhenCreatedReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `weth()` and selector `0x3fc8cef3`. +```solidity +function weth() external pure returns (address weth_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct wethCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`weth()`](wethCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct wethReturn { + #[allow(missing_docs)] + pub weth_: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: wethCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for wethCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: wethReturn) -> Self { + (value.weth_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for wethReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { weth_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for wethCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "weth()"; + const SELECTOR: [u8; 4] = [63u8, 200u8, 206u8, 243u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: wethReturn = r.into(); + r.weth_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: wethReturn = r.into(); + r.weth_ + }) + } + } + }; + ///Container for all the [`PermissionedDisputeGameV2`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum PermissionedDisputeGameV2Calls { + #[allow(missing_docs)] + absolutePrestate(absolutePrestateCall), + #[allow(missing_docs)] + addLocalData(addLocalDataCall), + #[allow(missing_docs)] + anchorStateRegistry(anchorStateRegistryCall), + #[allow(missing_docs)] + attack(attackCall), + #[allow(missing_docs)] + bondDistributionMode(bondDistributionModeCall), + #[allow(missing_docs)] + challengeRootL2Block(challengeRootL2BlockCall), + #[allow(missing_docs)] + challenger(challengerCall), + #[allow(missing_docs)] + claimCredit(claimCreditCall), + #[allow(missing_docs)] + claimData(claimDataCall), + #[allow(missing_docs)] + claimDataLen(claimDataLenCall), + #[allow(missing_docs)] + claims(claimsCall), + #[allow(missing_docs)] + clockExtension(clockExtensionCall), + #[allow(missing_docs)] + closeGame(closeGameCall), + #[allow(missing_docs)] + createdAt(createdAtCall), + #[allow(missing_docs)] + credit(creditCall), + #[allow(missing_docs)] + defend(defendCall), + #[allow(missing_docs)] + extraData(extraDataCall), + #[allow(missing_docs)] + gameCreator(gameCreatorCall), + #[allow(missing_docs)] + gameData(gameDataCall), + #[allow(missing_docs)] + gameType(gameTypeCall), + #[allow(missing_docs)] + getChallengerDuration(getChallengerDurationCall), + #[allow(missing_docs)] + getNumToResolve(getNumToResolveCall), + #[allow(missing_docs)] + getRequiredBond(getRequiredBondCall), + #[allow(missing_docs)] + hasUnlockedCredit(hasUnlockedCreditCall), + #[allow(missing_docs)] + initialize(initializeCall), + #[allow(missing_docs)] + l1Head(l1HeadCall), + #[allow(missing_docs)] + l2BlockNumber(l2BlockNumberCall), + #[allow(missing_docs)] + l2BlockNumberChallenged(l2BlockNumberChallengedCall), + #[allow(missing_docs)] + l2BlockNumberChallenger(l2BlockNumberChallengerCall), + #[allow(missing_docs)] + l2ChainId(l2ChainIdCall), + #[allow(missing_docs)] + l2SequenceNumber(l2SequenceNumberCall), + #[allow(missing_docs)] + maxClockDuration(maxClockDurationCall), + #[allow(missing_docs)] + maxGameDepth(maxGameDepthCall), + #[allow(missing_docs)] + r#move(moveCall), + #[allow(missing_docs)] + normalModeCredit(normalModeCreditCall), + #[allow(missing_docs)] + proposer(proposerCall), + #[allow(missing_docs)] + refundModeCredit(refundModeCreditCall), + #[allow(missing_docs)] + resolutionCheckpoints(resolutionCheckpointsCall), + #[allow(missing_docs)] + resolve(resolveCall), + #[allow(missing_docs)] + resolveClaim(resolveClaimCall), + #[allow(missing_docs)] + resolvedAt(resolvedAtCall), + #[allow(missing_docs)] + resolvedSubgames(resolvedSubgamesCall), + #[allow(missing_docs)] + rootClaim(rootClaimCall), + #[allow(missing_docs)] + splitDepth(splitDepthCall), + #[allow(missing_docs)] + startingBlockNumber(startingBlockNumberCall), + #[allow(missing_docs)] + startingOutputRoot(startingOutputRootCall), + #[allow(missing_docs)] + startingRootHash(startingRootHashCall), + #[allow(missing_docs)] + status(statusCall), + #[allow(missing_docs)] + step(stepCall), + #[allow(missing_docs)] + subgames(subgamesCall), + #[allow(missing_docs)] + version(versionCall), + #[allow(missing_docs)] + vm(vmCall), + #[allow(missing_docs)] + wasRespectedGameTypeWhenCreated(wasRespectedGameTypeWhenCreatedCall), + #[allow(missing_docs)] + weth(wethCall), + } + impl PermissionedDisputeGameV2Calls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [1u8, 147u8, 81u8, 48u8], + [3u8, 194u8, 146u8, 77u8], + [25u8, 239u8, 254u8, 180u8], + [32u8, 13u8, 46u8, 210u8], + [34u8, 42u8, 191u8, 69u8], + [37u8, 14u8, 105u8, 189u8], + [37u8, 252u8, 42u8, 206u8], + [40u8, 16u8, 225u8, 214u8], + [42u8, 214u8, 154u8, 235u8], + [48u8, 219u8, 229u8, 112u8], + [55u8, 141u8, 212u8, 140u8], + [55u8, 177u8, 178u8, 41u8], + [58u8, 118u8, 132u8, 99u8], + [62u8, 58u8, 201u8, 18u8], + [63u8, 200u8, 206u8, 243u8], + [71u8, 39u8, 119u8, 198u8], + [82u8, 157u8, 106u8, 140u8], + [83u8, 77u8, 176u8, 226u8], + [84u8, 253u8, 77u8, 80u8], + [87u8, 218u8, 149u8, 14u8], + [90u8, 95u8, 162u8, 217u8], + [92u8, 12u8, 186u8, 51u8], + [96u8, 157u8, 51u8, 52u8], + [96u8, 226u8, 116u8, 100u8], + [99u8, 97u8, 80u8, 109u8], + [107u8, 103u8, 22u8, 192u8], + [111u8, 3u8, 68u8, 9u8], + [112u8, 135u8, 42u8, 165u8], + [120u8, 107u8, 132u8, 75u8], + [123u8, 15u8, 10u8, 220u8], + [129u8, 41u8, 252u8, 28u8], + [137u8, 128u8, 224u8, 204u8], + [139u8, 133u8, 144u8, 43u8], + [141u8, 69u8, 10u8, 149u8], + [153u8, 115u8, 94u8, 50u8], + [164u8, 69u8, 236u8, 230u8], + [168u8, 228u8, 251u8, 144u8], + [187u8, 220u8, 2u8, 219u8], + [188u8, 239u8, 59u8, 85u8], + [189u8, 141u8, 169u8, 86u8], + [192u8, 216u8, 187u8, 116u8], + [195u8, 149u8, 225u8, 202u8], + [198u8, 240u8, 48u8, 140u8], + [207u8, 9u8, 224u8, 208u8], + [213u8, 212u8, 77u8, 128u8], + [214u8, 174u8, 60u8, 213u8], + [216u8, 204u8, 26u8, 60u8], + [218u8, 189u8, 57u8, 109u8], + [236u8, 94u8, 99u8, 8u8], + [239u8, 240u8, 245u8, 146u8], + [248u8, 244u8, 63u8, 246u8], + [250u8, 36u8, 247u8, 67u8], + [250u8, 49u8, 90u8, 169u8], + [254u8, 43u8, 190u8, 178u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(challengeRootL2Block), + ::core::stringify!(resolveClaim), + ::core::stringify!(resolvedAt), + ::core::stringify!(status), + ::core::stringify!(hasUnlockedCredit), + ::core::stringify!(wasRespectedGameTypeWhenCreated), + ::core::stringify!(startingRootHash), + ::core::stringify!(resolve), + ::core::stringify!(subgames), + ::core::stringify!(l2BlockNumberChallenger), + ::core::stringify!(bondDistributionMode), + ::core::stringify!(gameCreator), + ::core::stringify!(vm), + ::core::stringify!(l2BlockNumberChallenged), + ::core::stringify!(weth), + ::core::stringify!(attack), + ::core::stringify!(normalModeCredit), + ::core::stringify!(challenger), + ::core::stringify!(version), + ::core::stringify!(startingOutputRoot), + ::core::stringify!(getNumToResolve), + ::core::stringify!(anchorStateRegistry), + ::core::stringify!(extraData), + ::core::stringify!(claimCredit), + ::core::stringify!(l1Head), + ::core::stringify!(clockExtension), + ::core::stringify!(r#move), + ::core::stringify!(startingBlockNumber), + ::core::stringify!(closeGame), + ::core::stringify!(defend), + ::core::stringify!(initialize), + ::core::stringify!(claimDataLen), + ::core::stringify!(l2BlockNumber), + ::core::stringify!(absolutePrestate), + ::core::stringify!(l2SequenceNumber), + ::core::stringify!(resolutionCheckpoints), + ::core::stringify!(proposer), + ::core::stringify!(gameType), + ::core::stringify!(rootClaim), + ::core::stringify!(getChallengerDuration), + ::core::stringify!(refundModeCredit), + ::core::stringify!(getRequiredBond), + ::core::stringify!(claimData), + ::core::stringify!(createdAt), + ::core::stringify!(credit), + ::core::stringify!(l2ChainId), + ::core::stringify!(step), + ::core::stringify!(maxClockDuration), + ::core::stringify!(splitDepth), + ::core::stringify!(claims), + ::core::stringify!(addLocalData), + ::core::stringify!(gameData), + ::core::stringify!(maxGameDepth), + ::core::stringify!(resolvedSubgames), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for PermissionedDisputeGameV2Calls { + const NAME: &'static str = "PermissionedDisputeGameV2Calls"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 54usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::absolutePrestate(_) => { + ::SELECTOR + } + Self::addLocalData(_) => { + ::SELECTOR + } + Self::anchorStateRegistry(_) => { + ::SELECTOR + } + Self::attack(_) => ::SELECTOR, + Self::bondDistributionMode(_) => { + ::SELECTOR + } + Self::challengeRootL2Block(_) => { + ::SELECTOR + } + Self::challenger(_) => { + ::SELECTOR + } + Self::claimCredit(_) => { + ::SELECTOR + } + Self::claimData(_) => { + ::SELECTOR + } + Self::claimDataLen(_) => { + ::SELECTOR + } + Self::claims(_) => ::SELECTOR, + Self::clockExtension(_) => { + ::SELECTOR + } + Self::closeGame(_) => { + ::SELECTOR + } + Self::createdAt(_) => { + ::SELECTOR + } + Self::credit(_) => ::SELECTOR, + Self::defend(_) => ::SELECTOR, + Self::extraData(_) => { + ::SELECTOR + } + Self::gameCreator(_) => { + ::SELECTOR + } + Self::gameData(_) => ::SELECTOR, + Self::gameType(_) => ::SELECTOR, + Self::getChallengerDuration(_) => { + ::SELECTOR + } + Self::getNumToResolve(_) => { + ::SELECTOR + } + Self::getRequiredBond(_) => { + ::SELECTOR + } + Self::hasUnlockedCredit(_) => { + ::SELECTOR + } + Self::initialize(_) => { + ::SELECTOR + } + Self::l1Head(_) => ::SELECTOR, + Self::l2BlockNumber(_) => { + ::SELECTOR + } + Self::l2BlockNumberChallenged(_) => { + ::SELECTOR + } + Self::l2BlockNumberChallenger(_) => { + ::SELECTOR + } + Self::l2ChainId(_) => { + ::SELECTOR + } + Self::l2SequenceNumber(_) => { + ::SELECTOR + } + Self::maxClockDuration(_) => { + ::SELECTOR + } + Self::maxGameDepth(_) => { + ::SELECTOR + } + Self::r#move(_) => ::SELECTOR, + Self::normalModeCredit(_) => { + ::SELECTOR + } + Self::proposer(_) => ::SELECTOR, + Self::refundModeCredit(_) => { + ::SELECTOR + } + Self::resolutionCheckpoints(_) => { + ::SELECTOR + } + Self::resolve(_) => ::SELECTOR, + Self::resolveClaim(_) => { + ::SELECTOR + } + Self::resolvedAt(_) => { + ::SELECTOR + } + Self::resolvedSubgames(_) => { + ::SELECTOR + } + Self::rootClaim(_) => { + ::SELECTOR + } + Self::splitDepth(_) => { + ::SELECTOR + } + Self::startingBlockNumber(_) => { + ::SELECTOR + } + Self::startingOutputRoot(_) => { + ::SELECTOR + } + Self::startingRootHash(_) => { + ::SELECTOR + } + Self::status(_) => ::SELECTOR, + Self::step(_) => ::SELECTOR, + Self::subgames(_) => ::SELECTOR, + Self::version(_) => ::SELECTOR, + Self::vm(_) => ::SELECTOR, + Self::wasRespectedGameTypeWhenCreated(_) => { + ::SELECTOR + } + Self::weth(_) => ::SELECTOR, + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn challengeRootL2Block( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameV2Calls::challengeRootL2Block) + } + challengeRootL2Block + }, + { + fn resolveClaim( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameV2Calls::resolveClaim) + } + resolveClaim + }, + { + fn resolvedAt( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameV2Calls::resolvedAt) + } + resolvedAt + }, + { + fn status( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(PermissionedDisputeGameV2Calls::status) + } + status + }, + { + fn hasUnlockedCredit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameV2Calls::hasUnlockedCredit) + } + hasUnlockedCredit + }, + { + fn wasRespectedGameTypeWhenCreated( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + PermissionedDisputeGameV2Calls::wasRespectedGameTypeWhenCreated, + ) + } + wasRespectedGameTypeWhenCreated + }, + { + fn startingRootHash( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameV2Calls::startingRootHash) + } + startingRootHash + }, + { + fn resolve( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(PermissionedDisputeGameV2Calls::resolve) + } + resolve + }, + { + fn subgames( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(PermissionedDisputeGameV2Calls::subgames) + } + subgames + }, + { + fn l2BlockNumberChallenger( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameV2Calls::l2BlockNumberChallenger) + } + l2BlockNumberChallenger + }, + { + fn bondDistributionMode( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameV2Calls::bondDistributionMode) + } + bondDistributionMode + }, + { + fn gameCreator( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameV2Calls::gameCreator) + } + gameCreator + }, + { + fn vm( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(PermissionedDisputeGameV2Calls::vm) + } + vm + }, + { + fn l2BlockNumberChallenged( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameV2Calls::l2BlockNumberChallenged) + } + l2BlockNumberChallenged + }, + { + fn weth( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(PermissionedDisputeGameV2Calls::weth) + } + weth + }, + { + fn attack( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(PermissionedDisputeGameV2Calls::attack) + } + attack + }, + { + fn normalModeCredit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameV2Calls::normalModeCredit) + } + normalModeCredit + }, + { + fn challenger( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameV2Calls::challenger) + } + challenger + }, + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(PermissionedDisputeGameV2Calls::version) + } + version + }, + { + fn startingOutputRoot( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameV2Calls::startingOutputRoot) + } + startingOutputRoot + }, + { + fn getNumToResolve( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameV2Calls::getNumToResolve) + } + getNumToResolve + }, + { + fn anchorStateRegistry( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameV2Calls::anchorStateRegistry) + } + anchorStateRegistry + }, + { + fn extraData( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(PermissionedDisputeGameV2Calls::extraData) + } + extraData + }, + { + fn claimCredit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameV2Calls::claimCredit) + } + claimCredit + }, + { + fn l1Head( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(PermissionedDisputeGameV2Calls::l1Head) + } + l1Head + }, + { + fn clockExtension( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameV2Calls::clockExtension) + } + clockExtension + }, + { + fn r#move( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(PermissionedDisputeGameV2Calls::r#move) + } + r#move + }, + { + fn startingBlockNumber( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameV2Calls::startingBlockNumber) + } + startingBlockNumber + }, + { + fn closeGame( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(PermissionedDisputeGameV2Calls::closeGame) + } + closeGame + }, + { + fn defend( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(PermissionedDisputeGameV2Calls::defend) + } + defend + }, + { + fn initialize( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameV2Calls::initialize) + } + initialize + }, + { + fn claimDataLen( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameV2Calls::claimDataLen) + } + claimDataLen + }, + { + fn l2BlockNumber( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameV2Calls::l2BlockNumber) + } + l2BlockNumber + }, + { + fn absolutePrestate( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameV2Calls::absolutePrestate) + } + absolutePrestate + }, + { + fn l2SequenceNumber( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameV2Calls::l2SequenceNumber) + } + l2SequenceNumber + }, + { + fn resolutionCheckpoints( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameV2Calls::resolutionCheckpoints) + } + resolutionCheckpoints + }, + { + fn proposer( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(PermissionedDisputeGameV2Calls::proposer) + } + proposer + }, + { + fn gameType( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(PermissionedDisputeGameV2Calls::gameType) + } + gameType + }, + { + fn rootClaim( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(PermissionedDisputeGameV2Calls::rootClaim) + } + rootClaim + }, + { + fn getChallengerDuration( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameV2Calls::getChallengerDuration) + } + getChallengerDuration + }, + { + fn refundModeCredit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameV2Calls::refundModeCredit) + } + refundModeCredit + }, + { + fn getRequiredBond( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameV2Calls::getRequiredBond) + } + getRequiredBond + }, + { + fn claimData( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(PermissionedDisputeGameV2Calls::claimData) + } + claimData + }, + { + fn createdAt( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(PermissionedDisputeGameV2Calls::createdAt) + } + createdAt + }, + { + fn credit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(PermissionedDisputeGameV2Calls::credit) + } + credit + }, + { + fn l2ChainId( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(PermissionedDisputeGameV2Calls::l2ChainId) + } + l2ChainId + }, + { + fn step( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(PermissionedDisputeGameV2Calls::step) + } + step + }, + { + fn maxClockDuration( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameV2Calls::maxClockDuration) + } + maxClockDuration + }, + { + fn splitDepth( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameV2Calls::splitDepth) + } + splitDepth + }, + { + fn claims( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(PermissionedDisputeGameV2Calls::claims) + } + claims + }, + { + fn addLocalData( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameV2Calls::addLocalData) + } + addLocalData + }, + { + fn gameData( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(PermissionedDisputeGameV2Calls::gameData) + } + gameData + }, + { + fn maxGameDepth( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameV2Calls::maxGameDepth) + } + maxGameDepth + }, + { + fn resolvedSubgames( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameV2Calls::resolvedSubgames) + } + resolvedSubgames + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn challengeRootL2Block( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameV2Calls::challengeRootL2Block) + } + challengeRootL2Block + }, + { + fn resolveClaim( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameV2Calls::resolveClaim) + } + resolveClaim + }, + { + fn resolvedAt( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameV2Calls::resolvedAt) + } + resolvedAt + }, + { + fn status( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameV2Calls::status) + } + status + }, + { + fn hasUnlockedCredit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameV2Calls::hasUnlockedCredit) + } + hasUnlockedCredit + }, + { + fn wasRespectedGameTypeWhenCreated( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + PermissionedDisputeGameV2Calls::wasRespectedGameTypeWhenCreated, + ) + } + wasRespectedGameTypeWhenCreated + }, + { + fn startingRootHash( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameV2Calls::startingRootHash) + } + startingRootHash + }, + { + fn resolve( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameV2Calls::resolve) + } + resolve + }, + { + fn subgames( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameV2Calls::subgames) + } + subgames + }, + { + fn l2BlockNumberChallenger( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameV2Calls::l2BlockNumberChallenger) + } + l2BlockNumberChallenger + }, + { + fn bondDistributionMode( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameV2Calls::bondDistributionMode) + } + bondDistributionMode + }, + { + fn gameCreator( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameV2Calls::gameCreator) + } + gameCreator + }, + { + fn vm( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameV2Calls::vm) + } + vm + }, + { + fn l2BlockNumberChallenged( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameV2Calls::l2BlockNumberChallenged) + } + l2BlockNumberChallenged + }, + { + fn weth( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameV2Calls::weth) + } + weth + }, + { + fn attack( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameV2Calls::attack) + } + attack + }, + { + fn normalModeCredit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameV2Calls::normalModeCredit) + } + normalModeCredit + }, + { + fn challenger( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameV2Calls::challenger) + } + challenger + }, + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameV2Calls::version) + } + version + }, + { + fn startingOutputRoot( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameV2Calls::startingOutputRoot) + } + startingOutputRoot + }, + { + fn getNumToResolve( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameV2Calls::getNumToResolve) + } + getNumToResolve + }, + { + fn anchorStateRegistry( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameV2Calls::anchorStateRegistry) + } + anchorStateRegistry + }, + { + fn extraData( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameV2Calls::extraData) + } + extraData + }, + { + fn claimCredit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameV2Calls::claimCredit) + } + claimCredit + }, + { + fn l1Head( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameV2Calls::l1Head) + } + l1Head + }, + { + fn clockExtension( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameV2Calls::clockExtension) + } + clockExtension + }, + { + fn r#move( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameV2Calls::r#move) + } + r#move + }, + { + fn startingBlockNumber( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameV2Calls::startingBlockNumber) + } + startingBlockNumber + }, + { + fn closeGame( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameV2Calls::closeGame) + } + closeGame + }, + { + fn defend( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameV2Calls::defend) + } + defend + }, + { + fn initialize( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameV2Calls::initialize) + } + initialize + }, + { + fn claimDataLen( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameV2Calls::claimDataLen) + } + claimDataLen + }, + { + fn l2BlockNumber( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameV2Calls::l2BlockNumber) + } + l2BlockNumber + }, + { + fn absolutePrestate( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameV2Calls::absolutePrestate) + } + absolutePrestate + }, + { + fn l2SequenceNumber( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameV2Calls::l2SequenceNumber) + } + l2SequenceNumber + }, + { + fn resolutionCheckpoints( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameV2Calls::resolutionCheckpoints) + } + resolutionCheckpoints + }, + { + fn proposer( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameV2Calls::proposer) + } + proposer + }, + { + fn gameType( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameV2Calls::gameType) + } + gameType + }, + { + fn rootClaim( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameV2Calls::rootClaim) + } + rootClaim + }, + { + fn getChallengerDuration( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameV2Calls::getChallengerDuration) + } + getChallengerDuration + }, + { + fn refundModeCredit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameV2Calls::refundModeCredit) + } + refundModeCredit + }, + { + fn getRequiredBond( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameV2Calls::getRequiredBond) + } + getRequiredBond + }, + { + fn claimData( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameV2Calls::claimData) + } + claimData + }, + { + fn createdAt( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameV2Calls::createdAt) + } + createdAt + }, + { + fn credit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameV2Calls::credit) + } + credit + }, + { + fn l2ChainId( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameV2Calls::l2ChainId) + } + l2ChainId + }, + { + fn step( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameV2Calls::step) + } + step + }, + { + fn maxClockDuration( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameV2Calls::maxClockDuration) + } + maxClockDuration + }, + { + fn splitDepth( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameV2Calls::splitDepth) + } + splitDepth + }, + { + fn claims( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameV2Calls::claims) + } + claims + }, + { + fn addLocalData( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameV2Calls::addLocalData) + } + addLocalData + }, + { + fn gameData( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameV2Calls::gameData) + } + gameData + }, + { + fn maxGameDepth( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameV2Calls::maxGameDepth) + } + maxGameDepth + }, + { + fn resolvedSubgames( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameV2Calls::resolvedSubgames) + } + resolvedSubgames + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::absolutePrestate(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::addLocalData(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::anchorStateRegistry(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::attack(inner) => { + ::abi_encoded_size(inner) + } + Self::bondDistributionMode(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::challengeRootL2Block(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::challenger(inner) => { + ::abi_encoded_size(inner) + } + Self::claimCredit(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::claimData(inner) => { + ::abi_encoded_size(inner) + } + Self::claimDataLen(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::claims(inner) => { + ::abi_encoded_size(inner) + } + Self::clockExtension(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::closeGame(inner) => { + ::abi_encoded_size(inner) + } + Self::createdAt(inner) => { + ::abi_encoded_size(inner) + } + Self::credit(inner) => { + ::abi_encoded_size(inner) + } + Self::defend(inner) => { + ::abi_encoded_size(inner) + } + Self::extraData(inner) => { + ::abi_encoded_size(inner) + } + Self::gameCreator(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::gameData(inner) => { + ::abi_encoded_size(inner) + } + Self::gameType(inner) => { + ::abi_encoded_size(inner) + } + Self::getChallengerDuration(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::getNumToResolve(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::getRequiredBond(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::hasUnlockedCredit(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::initialize(inner) => { + ::abi_encoded_size(inner) + } + Self::l1Head(inner) => { + ::abi_encoded_size(inner) + } + Self::l2BlockNumber(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::l2BlockNumberChallenged(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::l2BlockNumberChallenger(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::l2ChainId(inner) => { + ::abi_encoded_size(inner) + } + Self::l2SequenceNumber(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::maxClockDuration(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::maxGameDepth(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::r#move(inner) => { + ::abi_encoded_size(inner) + } + Self::normalModeCredit(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::proposer(inner) => { + ::abi_encoded_size(inner) + } + Self::refundModeCredit(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::resolutionCheckpoints(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::resolve(inner) => { + ::abi_encoded_size(inner) + } + Self::resolveClaim(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::resolvedAt(inner) => { + ::abi_encoded_size(inner) + } + Self::resolvedSubgames(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::rootClaim(inner) => { + ::abi_encoded_size(inner) + } + Self::splitDepth(inner) => { + ::abi_encoded_size(inner) + } + Self::startingBlockNumber(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::startingOutputRoot(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::startingRootHash(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::status(inner) => { + ::abi_encoded_size(inner) + } + Self::step(inner) => { + ::abi_encoded_size(inner) + } + Self::subgames(inner) => { + ::abi_encoded_size(inner) + } + Self::version(inner) => { + ::abi_encoded_size(inner) + } + Self::vm(inner) => { + ::abi_encoded_size(inner) + } + Self::wasRespectedGameTypeWhenCreated(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::weth(inner) => { + ::abi_encoded_size(inner) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::absolutePrestate(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::addLocalData(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::anchorStateRegistry(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::attack(inner) => { + ::abi_encode_raw(inner, out) + } + Self::bondDistributionMode(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::challengeRootL2Block(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::challenger(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::claimCredit(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::claimData(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::claimDataLen(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::claims(inner) => { + ::abi_encode_raw(inner, out) + } + Self::clockExtension(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::closeGame(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::createdAt(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::credit(inner) => { + ::abi_encode_raw(inner, out) + } + Self::defend(inner) => { + ::abi_encode_raw(inner, out) + } + Self::extraData(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::gameCreator(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::gameData(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::gameType(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::getChallengerDuration(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::getNumToResolve(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::getRequiredBond(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::hasUnlockedCredit(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::initialize(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::l1Head(inner) => { + ::abi_encode_raw(inner, out) + } + Self::l2BlockNumber(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::l2BlockNumberChallenged(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::l2BlockNumberChallenger(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::l2ChainId(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::l2SequenceNumber(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::maxClockDuration(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::maxGameDepth(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::r#move(inner) => { + ::abi_encode_raw(inner, out) + } + Self::normalModeCredit(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::proposer(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::refundModeCredit(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::resolutionCheckpoints(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::resolve(inner) => { + ::abi_encode_raw(inner, out) + } + Self::resolveClaim(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::resolvedAt(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::resolvedSubgames(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::rootClaim(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::splitDepth(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::startingBlockNumber(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::startingOutputRoot(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::startingRootHash(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::status(inner) => { + ::abi_encode_raw(inner, out) + } + Self::step(inner) => { + ::abi_encode_raw(inner, out) + } + Self::subgames(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::version(inner) => { + ::abi_encode_raw(inner, out) + } + Self::vm(inner) => { + ::abi_encode_raw(inner, out) + } + Self::wasRespectedGameTypeWhenCreated(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::weth(inner) => { + ::abi_encode_raw(inner, out) + } + } + } + } + ///Container for all the [`PermissionedDisputeGameV2`](self) custom errors. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum PermissionedDisputeGameV2Errors { + #[allow(missing_docs)] + AlreadyInitialized(AlreadyInitialized), + #[allow(missing_docs)] + AnchorRootNotFound(AnchorRootNotFound), + #[allow(missing_docs)] + BadAuth(BadAuth), + #[allow(missing_docs)] + BadExtraData(BadExtraData), + #[allow(missing_docs)] + BlockNumberMatches(BlockNumberMatches), + #[allow(missing_docs)] + BondTransferFailed(BondTransferFailed), + #[allow(missing_docs)] + CannotDefendRootClaim(CannotDefendRootClaim), + #[allow(missing_docs)] + ClaimAboveSplit(ClaimAboveSplit), + #[allow(missing_docs)] + ClaimAlreadyExists(ClaimAlreadyExists), + #[allow(missing_docs)] + ClaimAlreadyResolved(ClaimAlreadyResolved), + #[allow(missing_docs)] + ClockNotExpired(ClockNotExpired), + #[allow(missing_docs)] + ClockTimeExceeded(ClockTimeExceeded), + #[allow(missing_docs)] + ContentLengthMismatch(ContentLengthMismatch), + #[allow(missing_docs)] + DuplicateStep(DuplicateStep), + #[allow(missing_docs)] + EmptyItem(EmptyItem), + #[allow(missing_docs)] + GameDepthExceeded(GameDepthExceeded), + #[allow(missing_docs)] + GameNotFinalized(GameNotFinalized), + #[allow(missing_docs)] + GameNotInProgress(GameNotInProgress), + #[allow(missing_docs)] + GameNotResolved(GameNotResolved), + #[allow(missing_docs)] + GamePaused(GamePaused), + #[allow(missing_docs)] + IncorrectBondAmount(IncorrectBondAmount), + #[allow(missing_docs)] + InvalidBondDistributionMode(InvalidBondDistributionMode), + #[allow(missing_docs)] + InvalidChallengePeriod(InvalidChallengePeriod), + #[allow(missing_docs)] + InvalidClockExtension(InvalidClockExtension), + #[allow(missing_docs)] + InvalidDataRemainder(InvalidDataRemainder), + #[allow(missing_docs)] + InvalidDisputedClaimIndex(InvalidDisputedClaimIndex), + #[allow(missing_docs)] + InvalidHeader(InvalidHeader), + #[allow(missing_docs)] + InvalidHeaderRLP(InvalidHeaderRLP), + #[allow(missing_docs)] + InvalidLocalIdent(InvalidLocalIdent), + #[allow(missing_docs)] + InvalidOutputRootProof(InvalidOutputRootProof), + #[allow(missing_docs)] + InvalidParent(InvalidParent), + #[allow(missing_docs)] + InvalidPrestate(InvalidPrestate), + #[allow(missing_docs)] + InvalidSplitDepth(InvalidSplitDepth), + #[allow(missing_docs)] + L2BlockNumberChallenged(L2BlockNumberChallenged), + #[allow(missing_docs)] + MaxDepthTooLarge(MaxDepthTooLarge), + #[allow(missing_docs)] + NoCreditToClaim(NoCreditToClaim), + #[allow(missing_docs)] + OutOfOrderResolution(OutOfOrderResolution), + #[allow(missing_docs)] + UnexpectedList(UnexpectedList), + #[allow(missing_docs)] + UnexpectedRootClaim(UnexpectedRootClaim), + #[allow(missing_docs)] + UnexpectedString(UnexpectedString), + #[allow(missing_docs)] + ValidStep(ValidStep), + } + impl PermissionedDisputeGameV2Errors { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [7u8, 138u8, 61u8, 244u8], + [13u8, 193u8, 73u8, 240u8], + [14u8, 162u8, 231u8, 82u8], + [23u8, 191u8, 229u8, 247u8], + [31u8, 249u8, 178u8, 228u8], + [48u8, 20u8, 3u8, 50u8], + [51u8, 129u8, 209u8, 20u8], + [55u8, 154u8, 126u8, 217u8], + [72u8, 81u8, 189u8, 155u8], + [75u8, 156u8, 106u8, 190u8], + [86u8, 245u8, 123u8, 43u8], + [90u8, 180u8, 88u8, 251u8], + [92u8, 85u8, 55u8, 184u8], + [95u8, 83u8, 221u8, 152u8], + [102u8, 201u8, 68u8, 133u8], + [103u8, 254u8, 25u8, 80u8], + [105u8, 101u8, 80u8, 255u8], + [106u8, 107u8, 195u8, 178u8], + [119u8, 223u8, 227u8, 50u8], + [128u8, 73u8, 126u8, 59u8], + [131u8, 230u8, 204u8, 107u8], + [134u8, 32u8, 170u8, 25u8], + [141u8, 119u8, 236u8, 172u8], + [144u8, 113u8, 230u8, 175u8], + [152u8, 36u8, 189u8, 171u8], + [154u8, 7u8, 102u8, 70u8], + [156u8, 192u8, 11u8, 91u8], + [164u8, 38u8, 55u8, 188u8], + [179u8, 75u8, 92u8, 34u8], + [180u8, 225u8, 36u8, 51u8], + [184u8, 237u8, 136u8, 48u8], + [186u8, 187u8, 1u8, 221u8], + [193u8, 5u8, 38u8, 10u8], + [211u8, 134u8, 239u8, 62u8], + [216u8, 29u8, 88u8, 59u8], + [230u8, 44u8, 207u8, 57u8], + [241u8, 169u8, 69u8, 129u8], + [242u8, 68u8, 11u8, 83u8], + [244u8, 2u8, 57u8, 219u8], + [251u8, 78u8, 64u8, 221u8], + [255u8, 19u8, 126u8, 101u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(InvalidBondDistributionMode), + ::core::stringify!(AlreadyInitialized), + ::core::stringify!(L2BlockNumberChallenged), + ::core::stringify!(NoCreditToClaim), + ::core::stringify!(UnexpectedList), + ::core::stringify!(InvalidDisputedClaimIndex), + ::core::stringify!(ClockTimeExceeded), + ::core::stringify!(GamePaused), + ::core::stringify!(GameNotFinalized), + ::core::stringify!(UnexpectedString), + ::core::stringify!(GameDepthExceeded), + ::core::stringify!(EmptyItem), + ::core::stringify!(InvalidDataRemainder), + ::core::stringify!(InvalidParent), + ::core::stringify!(ContentLengthMismatch), + ::core::stringify!(GameNotInProgress), + ::core::stringify!(InvalidPrestate), + ::core::stringify!(AnchorRootNotFound), + ::core::stringify!(MaxDepthTooLarge), + ::core::stringify!(ClaimAlreadyExists), + ::core::stringify!(BondTransferFailed), + ::core::stringify!(IncorrectBondAmount), + ::core::stringify!(InvalidClockExtension), + ::core::stringify!(DuplicateStep), + ::core::stringify!(BadExtraData), + ::core::stringify!(OutOfOrderResolution), + ::core::stringify!(InvalidOutputRootProof), + ::core::stringify!(CannotDefendRootClaim), + ::core::stringify!(ClaimAboveSplit), + ::core::stringify!(InvalidChallengePeriod), + ::core::stringify!(BlockNumberMatches), + ::core::stringify!(InvalidHeader), + ::core::stringify!(GameNotResolved), + ::core::stringify!(BadAuth), + ::core::stringify!(InvalidHeaderRLP), + ::core::stringify!(InvalidSplitDepth), + ::core::stringify!(ClaimAlreadyResolved), + ::core::stringify!(ClockNotExpired), + ::core::stringify!(UnexpectedRootClaim), + ::core::stringify!(ValidStep), + ::core::stringify!(InvalidLocalIdent), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for PermissionedDisputeGameV2Errors { + const NAME: &'static str = "PermissionedDisputeGameV2Errors"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 41usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::AlreadyInitialized(_) => { + ::SELECTOR + } + Self::AnchorRootNotFound(_) => { + ::SELECTOR + } + Self::BadAuth(_) => ::SELECTOR, + Self::BadExtraData(_) => { + ::SELECTOR + } + Self::BlockNumberMatches(_) => { + ::SELECTOR + } + Self::BondTransferFailed(_) => { + ::SELECTOR + } + Self::CannotDefendRootClaim(_) => { + ::SELECTOR + } + Self::ClaimAboveSplit(_) => { + ::SELECTOR + } + Self::ClaimAlreadyExists(_) => { + ::SELECTOR + } + Self::ClaimAlreadyResolved(_) => { + ::SELECTOR + } + Self::ClockNotExpired(_) => { + ::SELECTOR + } + Self::ClockTimeExceeded(_) => { + ::SELECTOR + } + Self::ContentLengthMismatch(_) => { + ::SELECTOR + } + Self::DuplicateStep(_) => { + ::SELECTOR + } + Self::EmptyItem(_) => ::SELECTOR, + Self::GameDepthExceeded(_) => { + ::SELECTOR + } + Self::GameNotFinalized(_) => { + ::SELECTOR + } + Self::GameNotInProgress(_) => { + ::SELECTOR + } + Self::GameNotResolved(_) => { + ::SELECTOR + } + Self::GamePaused(_) => { + ::SELECTOR + } + Self::IncorrectBondAmount(_) => { + ::SELECTOR + } + Self::InvalidBondDistributionMode(_) => { + ::SELECTOR + } + Self::InvalidChallengePeriod(_) => { + ::SELECTOR + } + Self::InvalidClockExtension(_) => { + ::SELECTOR + } + Self::InvalidDataRemainder(_) => { + ::SELECTOR + } + Self::InvalidDisputedClaimIndex(_) => { + ::SELECTOR + } + Self::InvalidHeader(_) => { + ::SELECTOR + } + Self::InvalidHeaderRLP(_) => { + ::SELECTOR + } + Self::InvalidLocalIdent(_) => { + ::SELECTOR + } + Self::InvalidOutputRootProof(_) => { + ::SELECTOR + } + Self::InvalidParent(_) => { + ::SELECTOR + } + Self::InvalidPrestate(_) => { + ::SELECTOR + } + Self::InvalidSplitDepth(_) => { + ::SELECTOR + } + Self::L2BlockNumberChallenged(_) => { + ::SELECTOR + } + Self::MaxDepthTooLarge(_) => { + ::SELECTOR + } + Self::NoCreditToClaim(_) => { + ::SELECTOR + } + Self::OutOfOrderResolution(_) => { + ::SELECTOR + } + Self::UnexpectedList(_) => { + ::SELECTOR + } + Self::UnexpectedRootClaim(_) => { + ::SELECTOR + } + Self::UnexpectedString(_) => { + ::SELECTOR + } + Self::ValidStep(_) => ::SELECTOR, + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn InvalidBondDistributionMode( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + PermissionedDisputeGameV2Errors::InvalidBondDistributionMode, + ) + } + InvalidBondDistributionMode + }, + { + fn AlreadyInitialized( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameV2Errors::AlreadyInitialized) + } + AlreadyInitialized + }, + { + fn L2BlockNumberChallenged( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + PermissionedDisputeGameV2Errors::L2BlockNumberChallenged, + ) + } + L2BlockNumberChallenged + }, + { + fn NoCreditToClaim( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameV2Errors::NoCreditToClaim) + } + NoCreditToClaim + }, + { + fn UnexpectedList( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameV2Errors::UnexpectedList) + } + UnexpectedList + }, + { + fn InvalidDisputedClaimIndex( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + PermissionedDisputeGameV2Errors::InvalidDisputedClaimIndex, + ) + } + InvalidDisputedClaimIndex + }, + { + fn ClockTimeExceeded( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameV2Errors::ClockTimeExceeded) + } + ClockTimeExceeded + }, + { + fn GamePaused( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(PermissionedDisputeGameV2Errors::GamePaused) + } + GamePaused + }, + { + fn GameNotFinalized( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameV2Errors::GameNotFinalized) + } + GameNotFinalized + }, + { + fn UnexpectedString( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameV2Errors::UnexpectedString) + } + UnexpectedString + }, + { + fn GameDepthExceeded( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameV2Errors::GameDepthExceeded) + } + GameDepthExceeded + }, + { + fn EmptyItem( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(PermissionedDisputeGameV2Errors::EmptyItem) + } + EmptyItem + }, + { + fn InvalidDataRemainder( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameV2Errors::InvalidDataRemainder) + } + InvalidDataRemainder + }, + { + fn InvalidParent( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameV2Errors::InvalidParent) + } + InvalidParent + }, + { + fn ContentLengthMismatch( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameV2Errors::ContentLengthMismatch) + } + ContentLengthMismatch + }, + { + fn GameNotInProgress( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameV2Errors::GameNotInProgress) + } + GameNotInProgress + }, + { + fn InvalidPrestate( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameV2Errors::InvalidPrestate) + } + InvalidPrestate + }, + { + fn AnchorRootNotFound( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameV2Errors::AnchorRootNotFound) + } + AnchorRootNotFound + }, + { + fn MaxDepthTooLarge( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameV2Errors::MaxDepthTooLarge) + } + MaxDepthTooLarge + }, + { + fn ClaimAlreadyExists( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameV2Errors::ClaimAlreadyExists) + } + ClaimAlreadyExists + }, + { + fn BondTransferFailed( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameV2Errors::BondTransferFailed) + } + BondTransferFailed + }, + { + fn IncorrectBondAmount( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameV2Errors::IncorrectBondAmount) + } + IncorrectBondAmount + }, + { + fn InvalidClockExtension( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameV2Errors::InvalidClockExtension) + } + InvalidClockExtension + }, + { + fn DuplicateStep( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameV2Errors::DuplicateStep) + } + DuplicateStep + }, + { + fn BadExtraData( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(PermissionedDisputeGameV2Errors::BadExtraData) + } + BadExtraData + }, + { + fn OutOfOrderResolution( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameV2Errors::OutOfOrderResolution) + } + OutOfOrderResolution + }, + { + fn InvalidOutputRootProof( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameV2Errors::InvalidOutputRootProof) + } + InvalidOutputRootProof + }, + { + fn CannotDefendRootClaim( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameV2Errors::CannotDefendRootClaim) + } + CannotDefendRootClaim + }, + { + fn ClaimAboveSplit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameV2Errors::ClaimAboveSplit) + } + ClaimAboveSplit + }, + { + fn InvalidChallengePeriod( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameV2Errors::InvalidChallengePeriod) + } + InvalidChallengePeriod + }, + { + fn BlockNumberMatches( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameV2Errors::BlockNumberMatches) + } + BlockNumberMatches + }, + { + fn InvalidHeader( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameV2Errors::InvalidHeader) + } + InvalidHeader + }, + { + fn GameNotResolved( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameV2Errors::GameNotResolved) + } + GameNotResolved + }, + { + fn BadAuth( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(PermissionedDisputeGameV2Errors::BadAuth) + } + BadAuth + }, + { + fn InvalidHeaderRLP( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameV2Errors::InvalidHeaderRLP) + } + InvalidHeaderRLP + }, + { + fn InvalidSplitDepth( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameV2Errors::InvalidSplitDepth) + } + InvalidSplitDepth + }, + { + fn ClaimAlreadyResolved( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameV2Errors::ClaimAlreadyResolved) + } + ClaimAlreadyResolved + }, + { + fn ClockNotExpired( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameV2Errors::ClockNotExpired) + } + ClockNotExpired + }, + { + fn UnexpectedRootClaim( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameV2Errors::UnexpectedRootClaim) + } + UnexpectedRootClaim + }, + { + fn ValidStep( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(PermissionedDisputeGameV2Errors::ValidStep) + } + ValidStep + }, + { + fn InvalidLocalIdent( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PermissionedDisputeGameV2Errors::InvalidLocalIdent) + } + InvalidLocalIdent + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn InvalidBondDistributionMode( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + PermissionedDisputeGameV2Errors::InvalidBondDistributionMode, + ) + } + InvalidBondDistributionMode + }, + { + fn AlreadyInitialized( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameV2Errors::AlreadyInitialized) + } + AlreadyInitialized + }, + { + fn L2BlockNumberChallenged( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + PermissionedDisputeGameV2Errors::L2BlockNumberChallenged, + ) + } + L2BlockNumberChallenged + }, + { + fn NoCreditToClaim( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameV2Errors::NoCreditToClaim) + } + NoCreditToClaim + }, + { + fn UnexpectedList( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameV2Errors::UnexpectedList) + } + UnexpectedList + }, + { + fn InvalidDisputedClaimIndex( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + PermissionedDisputeGameV2Errors::InvalidDisputedClaimIndex, + ) + } + InvalidDisputedClaimIndex + }, + { + fn ClockTimeExceeded( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameV2Errors::ClockTimeExceeded) + } + ClockTimeExceeded + }, + { + fn GamePaused( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameV2Errors::GamePaused) + } + GamePaused + }, + { + fn GameNotFinalized( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameV2Errors::GameNotFinalized) + } + GameNotFinalized + }, + { + fn UnexpectedString( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameV2Errors::UnexpectedString) + } + UnexpectedString + }, + { + fn GameDepthExceeded( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameV2Errors::GameDepthExceeded) + } + GameDepthExceeded + }, + { + fn EmptyItem( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameV2Errors::EmptyItem) + } + EmptyItem + }, + { + fn InvalidDataRemainder( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameV2Errors::InvalidDataRemainder) + } + InvalidDataRemainder + }, + { + fn InvalidParent( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameV2Errors::InvalidParent) + } + InvalidParent + }, + { + fn ContentLengthMismatch( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameV2Errors::ContentLengthMismatch) + } + ContentLengthMismatch + }, + { + fn GameNotInProgress( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameV2Errors::GameNotInProgress) + } + GameNotInProgress + }, + { + fn InvalidPrestate( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameV2Errors::InvalidPrestate) + } + InvalidPrestate + }, + { + fn AnchorRootNotFound( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameV2Errors::AnchorRootNotFound) + } + AnchorRootNotFound + }, + { + fn MaxDepthTooLarge( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameV2Errors::MaxDepthTooLarge) + } + MaxDepthTooLarge + }, + { + fn ClaimAlreadyExists( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameV2Errors::ClaimAlreadyExists) + } + ClaimAlreadyExists + }, + { + fn BondTransferFailed( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameV2Errors::BondTransferFailed) + } + BondTransferFailed + }, + { + fn IncorrectBondAmount( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameV2Errors::IncorrectBondAmount) + } + IncorrectBondAmount + }, + { + fn InvalidClockExtension( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameV2Errors::InvalidClockExtension) + } + InvalidClockExtension + }, + { + fn DuplicateStep( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameV2Errors::DuplicateStep) + } + DuplicateStep + }, + { + fn BadExtraData( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameV2Errors::BadExtraData) + } + BadExtraData + }, + { + fn OutOfOrderResolution( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameV2Errors::OutOfOrderResolution) + } + OutOfOrderResolution + }, + { + fn InvalidOutputRootProof( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameV2Errors::InvalidOutputRootProof) + } + InvalidOutputRootProof + }, + { + fn CannotDefendRootClaim( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameV2Errors::CannotDefendRootClaim) + } + CannotDefendRootClaim + }, + { + fn ClaimAboveSplit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameV2Errors::ClaimAboveSplit) + } + ClaimAboveSplit + }, + { + fn InvalidChallengePeriod( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameV2Errors::InvalidChallengePeriod) + } + InvalidChallengePeriod + }, + { + fn BlockNumberMatches( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameV2Errors::BlockNumberMatches) + } + BlockNumberMatches + }, + { + fn InvalidHeader( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameV2Errors::InvalidHeader) + } + InvalidHeader + }, + { + fn GameNotResolved( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameV2Errors::GameNotResolved) + } + GameNotResolved + }, + { + fn BadAuth( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameV2Errors::BadAuth) + } + BadAuth + }, + { + fn InvalidHeaderRLP( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameV2Errors::InvalidHeaderRLP) + } + InvalidHeaderRLP + }, + { + fn InvalidSplitDepth( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameV2Errors::InvalidSplitDepth) + } + InvalidSplitDepth + }, + { + fn ClaimAlreadyResolved( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameV2Errors::ClaimAlreadyResolved) + } + ClaimAlreadyResolved + }, + { + fn ClockNotExpired( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameV2Errors::ClockNotExpired) + } + ClockNotExpired + }, + { + fn UnexpectedRootClaim( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameV2Errors::UnexpectedRootClaim) + } + UnexpectedRootClaim + }, + { + fn ValidStep( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameV2Errors::ValidStep) + } + ValidStep + }, + { + fn InvalidLocalIdent( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PermissionedDisputeGameV2Errors::InvalidLocalIdent) + } + InvalidLocalIdent + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::AlreadyInitialized(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::AnchorRootNotFound(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::BadAuth(inner) => { + ::abi_encoded_size(inner) + } + Self::BadExtraData(inner) => { + ::abi_encoded_size(inner) + } + Self::BlockNumberMatches(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::BondTransferFailed(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::CannotDefendRootClaim(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ClaimAboveSplit(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ClaimAlreadyExists(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ClaimAlreadyResolved(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ClockNotExpired(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ClockTimeExceeded(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ContentLengthMismatch(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::DuplicateStep(inner) => { + ::abi_encoded_size(inner) + } + Self::EmptyItem(inner) => { + ::abi_encoded_size(inner) + } + Self::GameDepthExceeded(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::GameNotFinalized(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::GameNotInProgress(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::GameNotResolved(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::GamePaused(inner) => { + ::abi_encoded_size(inner) + } + Self::IncorrectBondAmount(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::InvalidBondDistributionMode(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::InvalidChallengePeriod(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::InvalidClockExtension(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::InvalidDataRemainder(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::InvalidDisputedClaimIndex(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::InvalidHeader(inner) => { + ::abi_encoded_size(inner) + } + Self::InvalidHeaderRLP(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::InvalidLocalIdent(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::InvalidOutputRootProof(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::InvalidParent(inner) => { + ::abi_encoded_size(inner) + } + Self::InvalidPrestate(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::InvalidSplitDepth(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::L2BlockNumberChallenged(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::MaxDepthTooLarge(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::NoCreditToClaim(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::OutOfOrderResolution(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::UnexpectedList(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::UnexpectedRootClaim(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::UnexpectedString(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ValidStep(inner) => { + ::abi_encoded_size(inner) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::AlreadyInitialized(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::AnchorRootNotFound(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::BadAuth(inner) => { + ::abi_encode_raw(inner, out) + } + Self::BadExtraData(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::BlockNumberMatches(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::BondTransferFailed(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::CannotDefendRootClaim(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ClaimAboveSplit(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ClaimAlreadyExists(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ClaimAlreadyResolved(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ClockNotExpired(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ClockTimeExceeded(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ContentLengthMismatch(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::DuplicateStep(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::EmptyItem(inner) => { + ::abi_encode_raw(inner, out) + } + Self::GameDepthExceeded(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::GameNotFinalized(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::GameNotInProgress(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::GameNotResolved(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::GamePaused(inner) => { + ::abi_encode_raw(inner, out) + } + Self::IncorrectBondAmount(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidBondDistributionMode(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidChallengePeriod(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidClockExtension(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidDataRemainder(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidDisputedClaimIndex(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidHeader(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidHeaderRLP(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidLocalIdent(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidOutputRootProof(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidParent(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidPrestate(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidSplitDepth(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::L2BlockNumberChallenged(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::MaxDepthTooLarge(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::NoCreditToClaim(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::OutOfOrderResolution(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::UnexpectedList(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::UnexpectedRootClaim(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::UnexpectedString(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ValidStep(inner) => { + ::abi_encode_raw(inner, out) + } + } + } + } + ///Container for all the [`PermissionedDisputeGameV2`](self) events. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum PermissionedDisputeGameV2Events { + #[allow(missing_docs)] + GameClosed(GameClosed), + #[allow(missing_docs)] + Move(Move), + #[allow(missing_docs)] + Resolved(Resolved), + } + impl PermissionedDisputeGameV2Events { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 32usize]] = &[ + [ + 94u8, 24u8, 111u8, 9u8, 185u8, 201u8, 52u8, 145u8, 241u8, 78u8, 39u8, + 126u8, 234u8, 127u8, 170u8, 93u8, 230u8, 162u8, 212u8, 189u8, 167u8, + 90u8, 121u8, 175u8, 122u8, 54u8, 132u8, 251u8, 251u8, 66u8, 218u8, 96u8, + ], + [ + 153u8, 8u8, 234u8, 172u8, 6u8, 69u8, 223u8, 157u8, 7u8, 4u8, 208u8, + 106u8, 220u8, 158u8, 7u8, 51u8, 124u8, 149u8, 29u8, 226u8, 240u8, 107u8, + 95u8, 40u8, 54u8, 21u8, 29u8, 72u8, 213u8, 228u8, 114u8, 47u8, + ], + [ + 155u8, 50u8, 69u8, 116u8, 14u8, 195u8, 177u8, 85u8, 9u8, 138u8, 85u8, + 190u8, 132u8, 149u8, 122u8, 77u8, 161u8, 62u8, 175u8, 127u8, 20u8, 168u8, + 188u8, 111u8, 83u8, 18u8, 108u8, 11u8, 147u8, 80u8, 242u8, 190u8, + ], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(Resolved), + ::core::stringify!(GameClosed), + ::core::stringify!(Move), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolEventInterface for PermissionedDisputeGameV2Events { + const NAME: &'static str = "PermissionedDisputeGameV2Events"; + const COUNT: usize = 3usize; + fn decode_raw_log( + topics: &[alloy_sol_types::Word], + data: &[u8], + ) -> alloy_sol_types::Result { + match topics.first().copied() { + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::GameClosed) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log(topics, data) + .map(Self::Move) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log(topics, data) + .map(Self::Resolved) + } + _ => { + alloy_sol_types::private::Err(alloy_sol_types::Error::InvalidLog { + name: ::NAME, + log: alloy_sol_types::private::Box::new( + alloy_sol_types::private::LogData::new_unchecked( + topics.to_vec(), + data.to_vec().into(), + ), + ), + }) + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for PermissionedDisputeGameV2Events { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + match self { + Self::GameClosed(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::Move(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::Resolved(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + } + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + match self { + Self::GameClosed(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::Move(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::Resolved(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`PermissionedDisputeGameV2`](self) contract instance. + +See the [wrapper's documentation](`PermissionedDisputeGameV2Instance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> PermissionedDisputeGameV2Instance { + PermissionedDisputeGameV2Instance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + _params: ::RustType, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + PermissionedDisputeGameV2Instance::::deploy(__provider, _params) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + _params: ::RustType, + ) -> alloy_contract::RawCallBuilder { + PermissionedDisputeGameV2Instance::::deploy_builder(__provider, _params) + } + /**A [`PermissionedDisputeGameV2`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`PermissionedDisputeGameV2`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct PermissionedDisputeGameV2Instance< + P, + N = alloy_contract::private::Ethereum, + > { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for PermissionedDisputeGameV2Instance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("PermissionedDisputeGameV2Instance") + .field(&self.address) + .finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > PermissionedDisputeGameV2Instance { + /**Creates a new wrapper around an on-chain [`PermissionedDisputeGameV2`](self) contract instance. + +See the [wrapper's documentation](`PermissionedDisputeGameV2Instance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + _params: ::RustType, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider, _params); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder( + __provider: P, + _params: ::RustType, + ) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + [ + &BYTECODE[..], + &alloy_sol_types::SolConstructor::abi_encode( + &constructorCall { _params }, + )[..], + ] + .concat() + .into(), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl PermissionedDisputeGameV2Instance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> PermissionedDisputeGameV2Instance { + PermissionedDisputeGameV2Instance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > PermissionedDisputeGameV2Instance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`absolutePrestate`] function. + pub fn absolutePrestate( + &self, + ) -> alloy_contract::SolCallBuilder<&P, absolutePrestateCall, N> { + self.call_builder(&absolutePrestateCall) + } + ///Creates a new call builder for the [`addLocalData`] function. + pub fn addLocalData( + &self, + _ident: alloy::sol_types::private::primitives::aliases::U256, + _execLeafIdx: alloy::sol_types::private::primitives::aliases::U256, + _partOffset: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, addLocalDataCall, N> { + self.call_builder( + &addLocalDataCall { + _ident, + _execLeafIdx, + _partOffset, + }, + ) + } + ///Creates a new call builder for the [`anchorStateRegistry`] function. + pub fn anchorStateRegistry( + &self, + ) -> alloy_contract::SolCallBuilder<&P, anchorStateRegistryCall, N> { + self.call_builder(&anchorStateRegistryCall) + } + ///Creates a new call builder for the [`attack`] function. + pub fn attack( + &self, + _disputed: ::RustType, + _parentIndex: alloy::sol_types::private::primitives::aliases::U256, + _claim: ::RustType, + ) -> alloy_contract::SolCallBuilder<&P, attackCall, N> { + self.call_builder( + &attackCall { + _disputed, + _parentIndex, + _claim, + }, + ) + } + ///Creates a new call builder for the [`bondDistributionMode`] function. + pub fn bondDistributionMode( + &self, + ) -> alloy_contract::SolCallBuilder<&P, bondDistributionModeCall, N> { + self.call_builder(&bondDistributionModeCall) + } + ///Creates a new call builder for the [`challengeRootL2Block`] function. + pub fn challengeRootL2Block( + &self, + _outputRootProof: ::RustType, + _headerRLP: alloy::sol_types::private::Bytes, + ) -> alloy_contract::SolCallBuilder<&P, challengeRootL2BlockCall, N> { + self.call_builder( + &challengeRootL2BlockCall { + _outputRootProof, + _headerRLP, + }, + ) + } + ///Creates a new call builder for the [`challenger`] function. + pub fn challenger( + &self, + ) -> alloy_contract::SolCallBuilder<&P, challengerCall, N> { + self.call_builder(&challengerCall) + } + ///Creates a new call builder for the [`claimCredit`] function. + pub fn claimCredit( + &self, + _recipient: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, claimCreditCall, N> { + self.call_builder(&claimCreditCall { _recipient }) + } + ///Creates a new call builder for the [`claimData`] function. + pub fn claimData( + &self, + _0: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, claimDataCall, N> { + self.call_builder(&claimDataCall(_0)) + } + ///Creates a new call builder for the [`claimDataLen`] function. + pub fn claimDataLen( + &self, + ) -> alloy_contract::SolCallBuilder<&P, claimDataLenCall, N> { + self.call_builder(&claimDataLenCall) + } + ///Creates a new call builder for the [`claims`] function. + pub fn claims( + &self, + _0: ::RustType, + ) -> alloy_contract::SolCallBuilder<&P, claimsCall, N> { + self.call_builder(&claimsCall(_0)) + } + ///Creates a new call builder for the [`clockExtension`] function. + pub fn clockExtension( + &self, + ) -> alloy_contract::SolCallBuilder<&P, clockExtensionCall, N> { + self.call_builder(&clockExtensionCall) + } + ///Creates a new call builder for the [`closeGame`] function. + pub fn closeGame(&self) -> alloy_contract::SolCallBuilder<&P, closeGameCall, N> { + self.call_builder(&closeGameCall) + } + ///Creates a new call builder for the [`createdAt`] function. + pub fn createdAt(&self) -> alloy_contract::SolCallBuilder<&P, createdAtCall, N> { + self.call_builder(&createdAtCall) + } + ///Creates a new call builder for the [`credit`] function. + pub fn credit( + &self, + _recipient: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, creditCall, N> { + self.call_builder(&creditCall { _recipient }) + } + ///Creates a new call builder for the [`defend`] function. + pub fn defend( + &self, + _disputed: ::RustType, + _parentIndex: alloy::sol_types::private::primitives::aliases::U256, + _claim: ::RustType, + ) -> alloy_contract::SolCallBuilder<&P, defendCall, N> { + self.call_builder( + &defendCall { + _disputed, + _parentIndex, + _claim, + }, + ) + } + ///Creates a new call builder for the [`extraData`] function. + pub fn extraData(&self) -> alloy_contract::SolCallBuilder<&P, extraDataCall, N> { + self.call_builder(&extraDataCall) + } + ///Creates a new call builder for the [`gameCreator`] function. + pub fn gameCreator( + &self, + ) -> alloy_contract::SolCallBuilder<&P, gameCreatorCall, N> { + self.call_builder(&gameCreatorCall) + } + ///Creates a new call builder for the [`gameData`] function. + pub fn gameData(&self) -> alloy_contract::SolCallBuilder<&P, gameDataCall, N> { + self.call_builder(&gameDataCall) + } + ///Creates a new call builder for the [`gameType`] function. + pub fn gameType(&self) -> alloy_contract::SolCallBuilder<&P, gameTypeCall, N> { + self.call_builder(&gameTypeCall) + } + ///Creates a new call builder for the [`getChallengerDuration`] function. + pub fn getChallengerDuration( + &self, + _claimIndex: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, getChallengerDurationCall, N> { + self.call_builder( + &getChallengerDurationCall { + _claimIndex, + }, + ) + } + ///Creates a new call builder for the [`getNumToResolve`] function. + pub fn getNumToResolve( + &self, + _claimIndex: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, getNumToResolveCall, N> { + self.call_builder(&getNumToResolveCall { _claimIndex }) + } + ///Creates a new call builder for the [`getRequiredBond`] function. + pub fn getRequiredBond( + &self, + _position: ::RustType, + ) -> alloy_contract::SolCallBuilder<&P, getRequiredBondCall, N> { + self.call_builder(&getRequiredBondCall { _position }) + } + ///Creates a new call builder for the [`hasUnlockedCredit`] function. + pub fn hasUnlockedCredit( + &self, + _0: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, hasUnlockedCreditCall, N> { + self.call_builder(&hasUnlockedCreditCall(_0)) + } + ///Creates a new call builder for the [`initialize`] function. + pub fn initialize( + &self, + ) -> alloy_contract::SolCallBuilder<&P, initializeCall, N> { + self.call_builder(&initializeCall) + } + ///Creates a new call builder for the [`l1Head`] function. + pub fn l1Head(&self) -> alloy_contract::SolCallBuilder<&P, l1HeadCall, N> { + self.call_builder(&l1HeadCall) + } + ///Creates a new call builder for the [`l2BlockNumber`] function. + pub fn l2BlockNumber( + &self, + ) -> alloy_contract::SolCallBuilder<&P, l2BlockNumberCall, N> { + self.call_builder(&l2BlockNumberCall) + } + ///Creates a new call builder for the [`l2BlockNumberChallenged`] function. + pub fn l2BlockNumberChallenged( + &self, + ) -> alloy_contract::SolCallBuilder<&P, l2BlockNumberChallengedCall, N> { + self.call_builder(&l2BlockNumberChallengedCall) + } + ///Creates a new call builder for the [`l2BlockNumberChallenger`] function. + pub fn l2BlockNumberChallenger( + &self, + ) -> alloy_contract::SolCallBuilder<&P, l2BlockNumberChallengerCall, N> { + self.call_builder(&l2BlockNumberChallengerCall) + } + ///Creates a new call builder for the [`l2ChainId`] function. + pub fn l2ChainId(&self) -> alloy_contract::SolCallBuilder<&P, l2ChainIdCall, N> { + self.call_builder(&l2ChainIdCall) + } + ///Creates a new call builder for the [`l2SequenceNumber`] function. + pub fn l2SequenceNumber( + &self, + ) -> alloy_contract::SolCallBuilder<&P, l2SequenceNumberCall, N> { + self.call_builder(&l2SequenceNumberCall) + } + ///Creates a new call builder for the [`maxClockDuration`] function. + pub fn maxClockDuration( + &self, + ) -> alloy_contract::SolCallBuilder<&P, maxClockDurationCall, N> { + self.call_builder(&maxClockDurationCall) + } + ///Creates a new call builder for the [`maxGameDepth`] function. + pub fn maxGameDepth( + &self, + ) -> alloy_contract::SolCallBuilder<&P, maxGameDepthCall, N> { + self.call_builder(&maxGameDepthCall) + } + ///Creates a new call builder for the [`r#move`] function. + pub fn r#move( + &self, + _disputed: ::RustType, + _challengeIndex: alloy::sol_types::private::primitives::aliases::U256, + _claim: ::RustType, + _isAttack: bool, + ) -> alloy_contract::SolCallBuilder<&P, moveCall, N> { + self.call_builder( + &moveCall { + _disputed, + _challengeIndex, + _claim, + _isAttack, + }, + ) + } + ///Creates a new call builder for the [`normalModeCredit`] function. + pub fn normalModeCredit( + &self, + _0: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, normalModeCreditCall, N> { + self.call_builder(&normalModeCreditCall(_0)) + } + ///Creates a new call builder for the [`proposer`] function. + pub fn proposer(&self) -> alloy_contract::SolCallBuilder<&P, proposerCall, N> { + self.call_builder(&proposerCall) + } + ///Creates a new call builder for the [`refundModeCredit`] function. + pub fn refundModeCredit( + &self, + _0: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, refundModeCreditCall, N> { + self.call_builder(&refundModeCreditCall(_0)) + } + ///Creates a new call builder for the [`resolutionCheckpoints`] function. + pub fn resolutionCheckpoints( + &self, + _0: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, resolutionCheckpointsCall, N> { + self.call_builder(&resolutionCheckpointsCall(_0)) + } + ///Creates a new call builder for the [`resolve`] function. + pub fn resolve(&self) -> alloy_contract::SolCallBuilder<&P, resolveCall, N> { + self.call_builder(&resolveCall) + } + ///Creates a new call builder for the [`resolveClaim`] function. + pub fn resolveClaim( + &self, + _claimIndex: alloy::sol_types::private::primitives::aliases::U256, + _numToResolve: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, resolveClaimCall, N> { + self.call_builder( + &resolveClaimCall { + _claimIndex, + _numToResolve, + }, + ) + } + ///Creates a new call builder for the [`resolvedAt`] function. + pub fn resolvedAt( + &self, + ) -> alloy_contract::SolCallBuilder<&P, resolvedAtCall, N> { + self.call_builder(&resolvedAtCall) + } + ///Creates a new call builder for the [`resolvedSubgames`] function. + pub fn resolvedSubgames( + &self, + _0: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, resolvedSubgamesCall, N> { + self.call_builder(&resolvedSubgamesCall(_0)) + } + ///Creates a new call builder for the [`rootClaim`] function. + pub fn rootClaim(&self) -> alloy_contract::SolCallBuilder<&P, rootClaimCall, N> { + self.call_builder(&rootClaimCall) + } + ///Creates a new call builder for the [`splitDepth`] function. + pub fn splitDepth( + &self, + ) -> alloy_contract::SolCallBuilder<&P, splitDepthCall, N> { + self.call_builder(&splitDepthCall) + } + ///Creates a new call builder for the [`startingBlockNumber`] function. + pub fn startingBlockNumber( + &self, + ) -> alloy_contract::SolCallBuilder<&P, startingBlockNumberCall, N> { + self.call_builder(&startingBlockNumberCall) + } + ///Creates a new call builder for the [`startingOutputRoot`] function. + pub fn startingOutputRoot( + &self, + ) -> alloy_contract::SolCallBuilder<&P, startingOutputRootCall, N> { + self.call_builder(&startingOutputRootCall) + } + ///Creates a new call builder for the [`startingRootHash`] function. + pub fn startingRootHash( + &self, + ) -> alloy_contract::SolCallBuilder<&P, startingRootHashCall, N> { + self.call_builder(&startingRootHashCall) + } + ///Creates a new call builder for the [`status`] function. + pub fn status(&self) -> alloy_contract::SolCallBuilder<&P, statusCall, N> { + self.call_builder(&statusCall) + } + ///Creates a new call builder for the [`step`] function. + pub fn step( + &self, + _claimIndex: alloy::sol_types::private::primitives::aliases::U256, + _isAttack: bool, + _stateData: alloy::sol_types::private::Bytes, + _proof: alloy::sol_types::private::Bytes, + ) -> alloy_contract::SolCallBuilder<&P, stepCall, N> { + self.call_builder( + &stepCall { + _claimIndex, + _isAttack, + _stateData, + _proof, + }, + ) + } + ///Creates a new call builder for the [`subgames`] function. + pub fn subgames( + &self, + _0: alloy::sol_types::private::primitives::aliases::U256, + _1: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, subgamesCall, N> { + self.call_builder(&subgamesCall { _0, _1 }) + } + ///Creates a new call builder for the [`version`] function. + pub fn version(&self) -> alloy_contract::SolCallBuilder<&P, versionCall, N> { + self.call_builder(&versionCall) + } + ///Creates a new call builder for the [`vm`] function. + pub fn vm(&self) -> alloy_contract::SolCallBuilder<&P, vmCall, N> { + self.call_builder(&vmCall) + } + ///Creates a new call builder for the [`wasRespectedGameTypeWhenCreated`] function. + pub fn wasRespectedGameTypeWhenCreated( + &self, + ) -> alloy_contract::SolCallBuilder<&P, wasRespectedGameTypeWhenCreatedCall, N> { + self.call_builder(&wasRespectedGameTypeWhenCreatedCall) + } + ///Creates a new call builder for the [`weth`] function. + pub fn weth(&self) -> alloy_contract::SolCallBuilder<&P, wethCall, N> { + self.call_builder(&wethCall) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > PermissionedDisputeGameV2Instance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + ///Creates a new event filter for the [`GameClosed`] event. + pub fn GameClosed_filter(&self) -> alloy_contract::Event<&P, GameClosed, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`Move`] event. + pub fn Move_filter(&self) -> alloy_contract::Event<&P, Move, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`Resolved`] event. + pub fn Resolved_filter(&self) -> alloy_contract::Event<&P, Resolved, N> { + self.event_filter::() + } + } +} diff --git a/bindings/rust/src/predeploys.rs b/bindings/rust/src/predeploys.rs new file mode 100644 index 000000000..5d0e489bd --- /dev/null +++ b/bindings/rust/src/predeploys.rs @@ -0,0 +1,215 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface Predeploys {} +``` + +...which was generated by the following JSON ABI: +```json +[] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod Predeploys { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`-`7`\x0B\x82\x82\x829\x80Q`\0\x1A`s\x14`*WcNH{q`\xE0\x1B`\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`\0\x80\xFD\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + 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`\0\x80\xFD\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`Predeploys`](self) contract instance. + +See the [wrapper's documentation](`PredeploysInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> PredeploysInstance { + PredeploysInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + PredeploysInstance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + PredeploysInstance::::deploy_builder(__provider) + } + /**A [`Predeploys`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`Predeploys`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct PredeploysInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for PredeploysInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("PredeploysInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > PredeploysInstance { + /**Creates a new wrapper around an on-chain [`Predeploys`](self) contract instance. + +See the [wrapper's documentation](`PredeploysInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl PredeploysInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> PredeploysInstance { + PredeploysInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > PredeploysInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > PredeploysInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + } +} diff --git a/bindings/rust/src/preimage_key_lib.rs b/bindings/rust/src/preimage_key_lib.rs new file mode 100644 index 000000000..574cc72c3 --- /dev/null +++ b/bindings/rust/src/preimage_key_lib.rs @@ -0,0 +1,215 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface PreimageKeyLib {} +``` + +...which was generated by the following JSON ABI: +```json +[] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod PreimageKeyLib { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`-`7`\x0B\x82\x82\x829\x80Q`\0\x1A`s\x14`*WcNH{q`\xE0\x1B`\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`\0\x80\xFD\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + 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`\0\x80\xFD\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`PreimageKeyLib`](self) contract instance. + +See the [wrapper's documentation](`PreimageKeyLibInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> PreimageKeyLibInstance { + PreimageKeyLibInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + PreimageKeyLibInstance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + PreimageKeyLibInstance::::deploy_builder(__provider) + } + /**A [`PreimageKeyLib`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`PreimageKeyLib`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct PreimageKeyLibInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for PreimageKeyLibInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("PreimageKeyLibInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > PreimageKeyLibInstance { + /**Creates a new wrapper around an on-chain [`PreimageKeyLib`](self) contract instance. + +See the [wrapper's documentation](`PreimageKeyLibInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl PreimageKeyLibInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> PreimageKeyLibInstance { + PreimageKeyLibInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > PreimageKeyLibInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > PreimageKeyLibInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + } +} diff --git a/bindings/rust/src/preimage_oracle.rs b/bindings/rust/src/preimage_oracle.rs new file mode 100644 index 000000000..00c7078f8 --- /dev/null +++ b/bindings/rust/src/preimage_oracle.rs @@ -0,0 +1,11016 @@ +///Module containing a contract's types and functions. +/** + +```solidity +library LibKeccak { + struct StateMatrix { uint64[25] state; } +} +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod LibKeccak { + use super::*; + use alloy::sol_types as alloy_sol_types; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**```solidity +struct StateMatrix { uint64[25] state; } +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct StateMatrix { + #[allow(missing_docs)] + pub state: [u64; 25usize], + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::FixedArray< + alloy::sol_types::sol_data::Uint<64>, + 25usize, + >, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ([u64; 25usize],); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: StateMatrix) -> Self { + (value.state,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for StateMatrix { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { state: tuple.0 } + } + } + #[automatically_derived] + impl alloy_sol_types::SolValue for StateMatrix { + type SolType = Self; + } + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for StateMatrix { + #[inline] + fn stv_to_tokens(&self) -> ::Token<'_> { + ( + , + 25usize, + > as alloy_sol_types::SolType>::tokenize(&self.state), + ) + } + #[inline] + fn stv_abi_encoded_size(&self) -> usize { + if let Some(size) = ::ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encoded_size(&tuple) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + ::eip712_hash_struct(self) + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + if let Some(size) = ::PACKED_ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for StateMatrix { + type RustType = Self; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = ::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + as alloy_sol_types::SolType>::valid_token(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + let tuple = as alloy_sol_types::SolType>::detokenize(token); + >>::from(tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolStruct for StateMatrix { + const NAME: &'static str = "StateMatrix"; + #[inline] + fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> { + alloy_sol_types::private::Cow::Borrowed("StateMatrix(uint64[25] state)") + } + #[inline] + fn eip712_components() -> alloy_sol_types::private::Vec< + alloy_sol_types::private::Cow<'static, str>, + > { + alloy_sol_types::private::Vec::new() + } + #[inline] + fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> { + ::eip712_root_type() + } + #[inline] + fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec { + , + 25usize, + > as alloy_sol_types::SolType>::eip712_data_word(&self.state) + .0 + .to_vec() + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for StateMatrix { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + 0usize + + , + 25usize, + > as alloy_sol_types::EventTopic>::topic_preimage_length(&rust.state) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + out.reserve( + ::topic_preimage_length(rust), + ); + , + 25usize, + > as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.state, + out, + ); + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + let mut out = alloy_sol_types::private::Vec::new(); + ::encode_topic_preimage( + rust, + &mut out, + ); + alloy_sol_types::abi::token::WordToken( + alloy_sol_types::private::keccak256(out), + ) + } + } + }; + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`LibKeccak`](self) contract instance. + +See the [wrapper's documentation](`LibKeccakInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> LibKeccakInstance { + LibKeccakInstance::::new(address, __provider) + } + /**A [`LibKeccak`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`LibKeccak`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct LibKeccakInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for LibKeccakInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("LibKeccakInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > LibKeccakInstance { + /**Creates a new wrapper around an on-chain [`LibKeccak`](self) contract instance. + +See the [wrapper's documentation](`LibKeccakInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl LibKeccakInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> LibKeccakInstance { + LibKeccakInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > LibKeccakInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > LibKeccakInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + } +} +/** + +Generated by the following Solidity interface... +```solidity +library LibKeccak { + struct StateMatrix { + uint64[25] state; + } +} + +interface PreimageOracle { + type LPPMetaData is bytes32; + struct Leaf { + bytes input; + uint256 index; + bytes32 stateCommitment; + } + + error ActiveProposal(); + error AlreadyFinalized(); + error AlreadyInitialized(); + error BadProposal(); + error BondTransferFailed(); + error InsufficientBond(); + error InvalidInputSize(); + error InvalidPreimage(); + error InvalidProof(); + error NotEOA(); + error NotInitialized(); + error PartOffsetOOB(); + error PostStateMatches(); + error StatesNotContiguous(); + error TreeSizeOverflow(); + error WrongStartingBlock(); + + constructor(uint256 _minProposalSize, uint256 _challengePeriod); + + function KECCAK_TREE_DEPTH() external view returns (uint256); + function MAX_LEAF_COUNT() external view returns (uint256); + function MIN_BOND_SIZE() external view returns (uint256); + function PRECOMPILE_CALL_RESERVED_GAS() external view returns (uint256); + function addLeavesLPP(uint256 _uuid, uint256 _inputStartBlock, bytes memory _input, bytes32[] memory _stateCommitments, bool _finalize) external; + function challengeFirstLPP(address _claimant, uint256 _uuid, Leaf memory _postState, bytes32[] memory _postStateProof) external; + function challengeLPP(address _claimant, uint256 _uuid, LibKeccak.StateMatrix memory _stateMatrix, Leaf memory _preState, bytes32[] memory _preStateProof, Leaf memory _postState, bytes32[] memory _postStateProof) external; + function challengePeriod() external view returns (uint256 challengePeriod_); + function getTreeRootLPP(address _owner, uint256 _uuid) external view returns (bytes32 treeRoot_); + function initLPP(uint256 _uuid, uint32 _partOffset, uint32 _claimedSize) external payable; + function loadBlobPreimagePart(uint256 _z, uint256 _y, bytes memory _commitment, bytes memory _proof, uint256 _partOffset) external; + function loadKeccak256PreimagePart(uint256 _partOffset, bytes memory _preimage) external; + function loadLocalData(uint256 _ident, bytes32 _localContext, bytes32 _word, uint256 _size, uint256 _partOffset) external returns (bytes32 key_); + function loadPrecompilePreimagePart(uint256 _partOffset, address _precompile, uint64 _requiredGas, bytes memory _input) external; + function loadSha256PreimagePart(uint256 _partOffset, bytes memory _preimage) external; + function minProposalSize() external view returns (uint256 minProposalSize_); + function preimageLengths(bytes32) external view returns (uint256); + function preimagePartOk(bytes32, uint256) external view returns (bool); + function preimageParts(bytes32, uint256) external view returns (bytes32); + function proposalBlocks(address, uint256, uint256) external view returns (uint64); + function proposalBlocksLen(address _claimant, uint256 _uuid) external view returns (uint256 len_); + function proposalBonds(address, uint256) external view returns (uint256); + function proposalBranches(address, uint256, uint256) external view returns (bytes32); + function proposalCount() external view returns (uint256 count_); + function proposalMetadata(address, uint256) external view returns (LPPMetaData); + function proposalParts(address, uint256) external view returns (bytes32); + function proposals(uint256) external view returns (address claimant, uint256 uuid); + function readPreimage(bytes32 _key, uint256 _offset) external view returns (bytes32 dat_, uint256 datLen_); + function squeezeLPP(address _claimant, uint256 _uuid, LibKeccak.StateMatrix memory _stateMatrix, Leaf memory _preState, bytes32[] memory _preStateProof, Leaf memory _postState, bytes32[] memory _postStateProof) external; + function version() external view returns (string memory); + function zeroHashes(uint256) external view returns (bytes32); +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "constructor", + "inputs": [ + { + "name": "_minProposalSize", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_challengePeriod", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "KECCAK_TREE_DEPTH", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "MAX_LEAF_COUNT", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "MIN_BOND_SIZE", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "PRECOMPILE_CALL_RESERVED_GAS", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "addLeavesLPP", + "inputs": [ + { + "name": "_uuid", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_inputStartBlock", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_input", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "_stateCommitments", + "type": "bytes32[]", + "internalType": "bytes32[]" + }, + { + "name": "_finalize", + "type": "bool", + "internalType": "bool" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "challengeFirstLPP", + "inputs": [ + { + "name": "_claimant", + "type": "address", + "internalType": "address" + }, + { + "name": "_uuid", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_postState", + "type": "tuple", + "internalType": "struct PreimageOracle.Leaf", + "components": [ + { + "name": "input", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "index", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "stateCommitment", + "type": "bytes32", + "internalType": "bytes32" + } + ] + }, + { + "name": "_postStateProof", + "type": "bytes32[]", + "internalType": "bytes32[]" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "challengeLPP", + "inputs": [ + { + "name": "_claimant", + "type": "address", + "internalType": "address" + }, + { + "name": "_uuid", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_stateMatrix", + "type": "tuple", + "internalType": "struct LibKeccak.StateMatrix", + "components": [ + { + "name": "state", + "type": "uint64[25]", + "internalType": "uint64[25]" + } + ] + }, + { + "name": "_preState", + "type": "tuple", + "internalType": "struct PreimageOracle.Leaf", + "components": [ + { + "name": "input", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "index", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "stateCommitment", + "type": "bytes32", + "internalType": "bytes32" + } + ] + }, + { + "name": "_preStateProof", + "type": "bytes32[]", + "internalType": "bytes32[]" + }, + { + "name": "_postState", + "type": "tuple", + "internalType": "struct PreimageOracle.Leaf", + "components": [ + { + "name": "input", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "index", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "stateCommitment", + "type": "bytes32", + "internalType": "bytes32" + } + ] + }, + { + "name": "_postStateProof", + "type": "bytes32[]", + "internalType": "bytes32[]" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "challengePeriod", + "inputs": [], + "outputs": [ + { + "name": "challengePeriod_", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "getTreeRootLPP", + "inputs": [ + { + "name": "_owner", + "type": "address", + "internalType": "address" + }, + { + "name": "_uuid", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "treeRoot_", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "initLPP", + "inputs": [ + { + "name": "_uuid", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_partOffset", + "type": "uint32", + "internalType": "uint32" + }, + { + "name": "_claimedSize", + "type": "uint32", + "internalType": "uint32" + } + ], + "outputs": [], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "loadBlobPreimagePart", + "inputs": [ + { + "name": "_z", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_y", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_commitment", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "_proof", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "_partOffset", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "loadKeccak256PreimagePart", + "inputs": [ + { + "name": "_partOffset", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_preimage", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "loadLocalData", + "inputs": [ + { + "name": "_ident", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_localContext", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "_word", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "_size", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_partOffset", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "key_", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "loadPrecompilePreimagePart", + "inputs": [ + { + "name": "_partOffset", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_precompile", + "type": "address", + "internalType": "address" + }, + { + "name": "_requiredGas", + "type": "uint64", + "internalType": "uint64" + }, + { + "name": "_input", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "loadSha256PreimagePart", + "inputs": [ + { + "name": "_partOffset", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_preimage", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "minProposalSize", + "inputs": [], + "outputs": [ + { + "name": "minProposalSize_", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "preimageLengths", + "inputs": [ + { + "name": "", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "preimagePartOk", + "inputs": [ + { + "name": "", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "preimageParts", + "inputs": [ + { + "name": "", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "proposalBlocks", + "inputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + }, + { + "name": "", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "uint64", + "internalType": "uint64" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "proposalBlocksLen", + "inputs": [ + { + "name": "_claimant", + "type": "address", + "internalType": "address" + }, + { + "name": "_uuid", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "len_", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "proposalBonds", + "inputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + }, + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "proposalBranches", + "inputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + }, + { + "name": "", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "proposalCount", + "inputs": [], + "outputs": [ + { + "name": "count_", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "proposalMetadata", + "inputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + }, + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "bytes32", + "internalType": "LPPMetaData" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "proposalParts", + "inputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + }, + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "proposals", + "inputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "claimant", + "type": "address", + "internalType": "address" + }, + { + "name": "uuid", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "readPreimage", + "inputs": [ + { + "name": "_key", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "_offset", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "dat_", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "datLen_", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "squeezeLPP", + "inputs": [ + { + "name": "_claimant", + "type": "address", + "internalType": "address" + }, + { + "name": "_uuid", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_stateMatrix", + "type": "tuple", + "internalType": "struct LibKeccak.StateMatrix", + "components": [ + { + "name": "state", + "type": "uint64[25]", + "internalType": "uint64[25]" + } + ] + }, + { + "name": "_preState", + "type": "tuple", + "internalType": "struct PreimageOracle.Leaf", + "components": [ + { + "name": "input", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "index", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "stateCommitment", + "type": "bytes32", + "internalType": "bytes32" + } + ] + }, + { + "name": "_preStateProof", + "type": "bytes32[]", + "internalType": "bytes32[]" + }, + { + "name": "_postState", + "type": "tuple", + "internalType": "struct PreimageOracle.Leaf", + "components": [ + { + "name": "input", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "index", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "stateCommitment", + "type": "bytes32", + "internalType": "bytes32" + } + ] + }, + { + "name": "_postStateProof", + "type": "bytes32[]", + "internalType": "bytes32[]" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "version", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "zeroHashes", + "inputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "stateMutability": "view" + }, + { + "type": "error", + "name": "ActiveProposal", + "inputs": [] + }, + { + "type": "error", + "name": "AlreadyFinalized", + "inputs": [] + }, + { + "type": "error", + "name": "AlreadyInitialized", + "inputs": [] + }, + { + "type": "error", + "name": "BadProposal", + "inputs": [] + }, + { + "type": "error", + "name": "BondTransferFailed", + "inputs": [] + }, + { + "type": "error", + "name": "InsufficientBond", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidInputSize", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidPreimage", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidProof", + "inputs": [] + }, + { + "type": "error", + "name": "NotEOA", + "inputs": [] + }, + { + "type": "error", + "name": "NotInitialized", + "inputs": [] + }, + { + "type": "error", + "name": "PartOffsetOOB", + "inputs": [] + }, + { + "type": "error", + "name": "PostStateMatches", + "inputs": [] + }, + { + "type": "error", + "name": "StatesNotContiguous", + "inputs": [] + }, + { + "type": "error", + "name": "TreeSizeOverflow", + "inputs": [] + }, + { + "type": "error", + "name": "WrongStartingBlock", + "inputs": [] + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod PreimageOracle { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x60c06040523480156200001157600080fd5b50604051620039ec380380620039ec833981016040819052620000349162000162565b60a082905260808190526001600160401b03811115620000ad5760405162461bcd60e51b815260206004820152602a60248201527f507265696d6167654f7261636c653a206368616c6c656e676520706572696f6460448201526920746f6f206c6172676560b01b606482015260840160405180910390fd5b60005b620000be600160106200019d565b811015620001595760038160108110620000dc57620000dc620001b7565b015460038260108110620000f457620000f4620001b7565b01546040805160208101939093528201526060016040516020818303038152906040528051906020012060038260016200012f9190620001cd565b60108110620001425762000142620001b7565b0155806200015081620001e8565b915050620000b0565b50505062000204565b600080604083850312156200017657600080fd5b505080516020909101519092909150565b634e487b7160e01b600052601160045260246000fd5b600082821015620001b257620001b262000187565b500390565b634e487b7160e01b600052603260045260246000fd5b60008219821115620001e357620001e362000187565b500190565b600060018201620001fd57620001fd62000187565b5060010190565b60805160a0516137b462000238600039600081816105b00152611dea0152600081816106b001526114f301526137b46000f3fe6080604052600436106101d85760003560e01c80639d53a64811610102578063ddcd58de11610095578063ec5efcbc11610064578063ec5efcbc14610681578063f3f480d9146106a1578063faf37bc7146106d4578063fef2b4ed146106e757600080fd5b8063ddcd58de146105d4578063e03110e11461060c578063e159261114610641578063ea7139501461066157600080fd5b8063b5e7154c116100d1578063b5e7154c14610555578063d18534b51461056c578063da35c6641461058c578063dd24f9bf146105a157600080fd5b80639d53a6481461048e5780639d7e8769146104dd578063b2e67ba8146104fd578063b4801e611461053557600080fd5b806361238bde1161017a5780637ac54767116101495780637ac54767146103ca5780638542cf50146103ea578063882856ef146104355780638dc4be111461046e57600080fd5b806361238bde1461031e5780636551927b146103565780637051472e1461038e5780637917de1d146103aa57600080fd5b80633909af5c116101b65780633909af5c146102715780634d52b4c91461029357806352f0f3ad146102a857806354fd4d50146102c857600080fd5b8063013cf08b146101dd5780630359a5631461022e5780632055b36b1461025c575b600080fd5b3480156101e957600080fd5b506101fd6101f8366004612ca2565b610714565b6040805173ffffffffffffffffffffffffffffffffffffffff90931683526020830191909152015b60405180910390f35b34801561023a57600080fd5b5061024e610249366004612ce4565b610759565b604051908152602001610225565b34801561026857600080fd5b5061024e601081565b34801561027d57600080fd5b5061029161028c366004612eec565b610891565b005b34801561029f57600080fd5b5061024e610ae8565b3480156102b457600080fd5b5061024e6102c3366004612fd8565b610b03565b3480156102d457600080fd5b506103116040518060400160405280600581526020017f312e312e3400000000000000000000000000000000000000000000000000000081525081565b604051610225919061303f565b34801561032a57600080fd5b5061024e610339366004613090565b600160209081526000928352604080842090915290825290205481565b34801561036257600080fd5b5061024e610371366004612ce4565b601560209081526000928352604080842090915290825290205481565b34801561039a57600080fd5b5061024e6703782dace9d9000081565b3480156103b657600080fd5b506102916103c53660046130f4565b610bd9565b3480156103d657600080fd5b5061024e6103e5366004612ca2565b6110dc565b3480156103f657600080fd5b50610425610405366004613090565b600260209081526000928352604080842090915290825290205460ff1681565b6040519015158152602001610225565b34801561044157600080fd5b50610455610450366004613190565b6110f3565b60405167ffffffffffffffff9091168152602001610225565b34801561047a57600080fd5b506102916104893660046131c3565b61114d565b34801561049a57600080fd5b5061024e6104a9366004612ce4565b73ffffffffffffffffffffffffffffffffffffffff9091166000908152601860209081526040808320938352929052205490565b3480156104e957600080fd5b506102916104f836600461320f565b611248565b34801561050957600080fd5b5061024e610518366004612ce4565b601760209081526000928352604080842090915290825290205481565b34801561054157600080fd5b5061024e610550366004613190565b6113ff565b34801561056157600080fd5b5061024e620186a081565b34801561057857600080fd5b50610291610587366004612eec565b611431565b34801561059857600080fd5b5060135461024e565b3480156105ad57600080fd5b507f000000000000000000000000000000000000000000000000000000000000000061024e565b3480156105e057600080fd5b5061024e6105ef366004612ce4565b601660209081526000928352604080842090915290825290205481565b34801561061857600080fd5b5061062c610627366004613090565b611840565b60408051928352602083019190915201610225565b34801561064d57600080fd5b5061029161065c3660046131c3565b611931565b34801561066d57600080fd5b5061029161067c36600461329b565b611a39565b34801561068d57600080fd5b5061029161069c36600461330a565b611b98565b3480156106ad57600080fd5b507f000000000000000000000000000000000000000000000000000000000000000061024e565b6102916106e2366004613392565b611d1e565b3480156106f357600080fd5b5061024e610702366004612ca2565b60006020819052908152604090205481565b6013818154811061072457600080fd5b60009182526020909120600290910201805460019091015473ffffffffffffffffffffffffffffffffffffffff909116915082565b73ffffffffffffffffffffffffffffffffffffffff82166000908152601560209081526040808320848452909152812054819061079c9060601c63ffffffff1690565b63ffffffff16905060005b6010811015610889578160011660010361082f5773ffffffffffffffffffffffffffffffffffffffff85166000908152601460209081526040808320878452909152902081601081106107fc576107fc6133ce565b01546040805160208101929092528101849052606001604051602081830303815290604052805190602001209250610870565b8260038260108110610843576108436133ce565b01546040805160208101939093528201526060016040516020818303038152906040528051906020012092505b60019190911c90806108818161342c565b9150506107a7565b505092915050565b600061089d8a8a610759565b90506108c086868360208b01356108bb6108b68d613464565b611fea565b61202a565b80156108de57506108de83838360208801356108bb6108b68a613464565b610914576040517f09bde33900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b86604001358860405160200161092a9190613533565b6040516020818303038152906040528051906020012014610977576040517f1968a90200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b83602001358760200135600161098d9190613571565b146109c4576040517f9a3b119900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610a0c886109d28680613589565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061208b92505050565b610a15886121e6565b836040013588604051602001610a2b9190613533565b6040516020818303038152906040528051906020012003610a78576040517f9843145b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8a1660009081526015602090815260408083208c8452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000166001179055610adc8a8a33612800565b50505050505050505050565b6001610af660106002613710565b610b00919061371c565b81565b6000610b0f86866128c0565b9050610b1c836008613571565b82101580610b2a5750602083115b15610b61576040517ffe25498700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000602081815260c085901b82526008959095528251828252600286526040808320858452875280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660019081179091558484528752808320948352938652838220558181529384905292205592915050565b60608115610bf257610beb868661296d565b9050610c2c565b85858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293505050505b3360009081526014602090815260408083208b845290915280822081516102008101928390529160109082845b815481526020019060010190808311610c5957505050505090506000601560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008b81526020019081526020016000205490506000610cda8260601c63ffffffff1690565b63ffffffff169050333214610d1b576040517fba092d1600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610d2b8260801c63ffffffff1690565b63ffffffff16600003610d6a576040517f87138d5c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610d748260c01c90565b67ffffffffffffffff1615610db5576040517f475a253500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b898114610dee576040517f60f95d5a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610dfb89898d88866129e6565b83516020850160888204881415608883061715610e20576307b1daf16000526004601cfd5b60405160c8810160405260005b83811015610ed0578083018051835260208101516020840152604081015160408401526060810151606084015260808101516080840152508460888301526088810460051b8b013560a883015260c882206001860195508560005b610200811015610ec5576001821615610ea55782818b0152610ec5565b8981015160009081526020938452604090209260019290921c9101610e88565b505050608801610e2d565b50505050600160106002610ee49190613710565b610eee919061371c565b811115610f27576040517f6229572300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610f9c610f3a8360401c63ffffffff1690565b610f4a9063ffffffff168a613571565b60401b7fffffffffffffffffffffffffffffffffffffffff00000000ffffffffffffffff606084901b167fffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff8516171790565b915084156110295777ffffffffffffffffffffffffffffffffffffffffffffffff82164260c01b179150610fd68260801c63ffffffff1690565b63ffffffff16610fec8360401c63ffffffff1690565b63ffffffff1614611029576040517f7b1dafd100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3360009081526014602090815260408083208e8452909152902061104f90846010612c18565b503360008181526018602090815260408083208f8452825280832080546001810182559084528284206004820401805460039092166008026101000a67ffffffffffffffff818102199093164390931602919091179055838352601582528083208f8452909152812084905560609190911b81523690601437366014016000a05050505050505050505050565b600381601081106110ec57600080fd5b0154905081565b6018602052826000526040600020602052816000526040600020818154811061111b57600080fd5b906000526020600020906004918282040191900660080292509250509054906101000a900467ffffffffffffffff1681565b60443560008060088301861061116b5763fe2549876000526004601cfd5b60c083901b60805260888386823786600882030151915060206000858360025afa90508061119857600080fd5b50600080517effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f0400000000000000000000000000000000000000000000000000000000000000178082526002602090815260408084208a8552825280842080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660019081179091558385528252808420998452988152888320939093558152908190529490942055505050565b600080603087600037602060006030600060025afa806112705763f91129696000526004601cfd5b6000517effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f010000000000000000000000000000000000000000000000000000000000000017608081815260a08c905260c08b905260308a60e037603088609083013760008060c083600a5afa9250826112f2576309bde3396000526004601cfd5b602886106113085763fe2549876000526004601cfd5b6000602882015278200000000000000000000000000000000000000000000000008152600881018b905285810151935060308a8237603081019b909b52505060509098207effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f0500000000000000000000000000000000000000000000000000000000000000176000818152600260209081526040808320868452825280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600190811790915584845282528083209583529481528482209a909a559081528089529190912096909655505050505050565b6014602052826000526040600020602052816000526040600020816010811061142757600080fd5b0154925083915050565b73ffffffffffffffffffffffffffffffffffffffff891660009081526015602090815260408083208b845290915290205467ffffffffffffffff8116156114a4576040517fc334f06900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6114ae8160c01c90565b67ffffffffffffffff166000036114f1576040517f55d4cbf900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000061151c8260c01c90565b6115309067ffffffffffffffff164261371c565b11611567576040517f55d4cbf900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006115738b8b610759565b905061158c87878360208c01356108bb6108b68e613464565b80156115aa57506115aa84848360208901356108bb6108b68b613464565b6115e0576040517f09bde33900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8760400135896040516020016115f69190613533565b6040516020818303038152906040528051906020012014611643576040517f1968a90200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8460200135886020013560016116599190613571565b14158061168b575060016116738360601c63ffffffff1690565b61167d9190613733565b63ffffffff16856020013514155b156116c2576040517f9a3b119900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6116d0896109d28780613589565b6116d9896121e6565b60006116e48a612b39565b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f0200000000000000000000000000000000000000000000000000000000000000179050600061173b8460a01c63ffffffff1690565b67ffffffffffffffff169050600160026000848152602001908152602001600020600083815260200190815260200160002060006101000a81548160ff021916908315150217905550601760008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008d8152602001908152602001600020546001600084815260200190815260200160002060008381526020019081526020016000208190555061180d8460801c63ffffffff1690565b600083815260208190526040902063ffffffff9190911690556118318d8d81612800565b50505050505050505050505050565b6000828152600260209081526040808320848452909152812054819060ff166118c9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f7072652d696d616765206d757374206578697374000000000000000000000000604482015260640160405180910390fd5b50600083815260208181526040909120546118e5816008613571565b6118f0856020613571565b1061190e5783611901826008613571565b61190b919061371c565b91505b506000938452600160209081526040808620948652939052919092205492909150565b60443560008060088301861061194f5763fe2549876000526004601cfd5b60c083901b6080526088838682378087017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80151908490207effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f02000000000000000000000000000000000000000000000000000000000000001760008181526002602090815260408083208b8452825280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600190811790915584845282528083209a83529981528982209390935590815290819052959095209190915550505050565b60008060008060808860601b81528760c01b6014820152858782601c0137601c860181207effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f0600000000000000000000000000000000000000000000000000000000000000179350604088026260216001603f5a021015611ac35763dd629f866000526004601cfd5b6000808783601c018c5afa94503d6001019150600882018a10611aee5763fe2549876000526004601cfd5b60c082901b81526008018481533d6000600183013e89017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8015160008481526002602090815260408083208d8452825280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600190811790915587845282528083209c83529b81528b8220929092559384528390529790912096909655505050505050565b6000611ba48686610759565b9050611bbd83838360208801356108bb6108b68a613464565b611bf3576040517f09bde33900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b602084013515611c2f576040517f9a3b119900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611c37612c56565b611c45816109d28780613589565b611c4e816121e6565b846040013581604051602001611c649190613533565b6040516020818303038152906040528051906020012003611cb1576040517f9843145b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff87166000908152601560209081526040808320898452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000166001179055611d15878733612800565b50505050505050565b6703782dace9d90000341015611d60576040517fe92c469f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b333214611d99576040517fba092d1600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611da4816008613758565b63ffffffff168263ffffffff1610611de8576040517ffe25498700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000008163ffffffff161015611e48576040517f7b1dafd100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b336000908152601560209081526040808320868452909152902054611e738160801c63ffffffff1690565b63ffffffff1615611eb0576040517f0dc149f000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b608082901b7fffffffffffffffffffffffff00000000ffffffffffffffffffffffffffffffff60a085901b167fffffffffffffffff0000000000000000ffffffffffffffffffffffffffffffff83161717336000818152601560209081526040808320898452825280832094909455835180850185528381528082018981526013805460018101825590855291517f66de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a090600290930292830180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff909216919091179055517f66de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a0919091015591815260168252828120968152959052909320349055505050565b600081600001518260200151836040015160405160200161200d93929190613780565b604051602081830303815290604052805190602001209050919050565b60008160005b601081101561207e578060051b880135600186831c16600181146120635760008481526020839052604090209350612074565b600082815260208590526040902093505b5050600101612030565b5090931495945050505050565b608881511461209957600080fd5b602081016020830161211a565b8260031b8201518060001a8160011a60081b178160021a60101b8260031a60181b17178160041a60201b8260051a60281b178260061a60301b8360071a60381b1717179050612114816120ff868560059190911b015190565b1867ffffffffffffffff16600586901b840152565b50505050565b612126600083836120a6565b612132600183836120a6565b61213e600283836120a6565b61214a600383836120a6565b612156600483836120a6565b612162600583836120a6565b61216e600683836120a6565b61217a600783836120a6565b612186600883836120a6565b612192600983836120a6565b61219e600a83836120a6565b6121aa600b83836120a6565b6121b6600c83836120a6565b6121c2600d83836120a6565b6121ce600e83836120a6565b6121da600f83836120a6565b612114601083836120a6565b6040805178010000000000008082800000000000808a8000000080008000602082015279808b00000000800000018000000080008081800000000000800991810191909152788a00000000000000880000000080008009000000008000000a60608201527b8000808b800000000000008b8000000000008089800000000000800360808201527f80000000000080028000000000000080000000000000800a800000008000000a60a08201527f800000008000808180000000000080800000000080000001800000008000800860c082015260009060e001604051602081830303815290604052905060208201602082016126e0565b600583901b8101518518604085900381901c90851b1867ffffffffffffffff8116600584901b8301525b505050505050565b6102808101516101e082015161014083015160a0840151845118189118186102a082015161020083015161016084015160c0850151602086015118189118186102c083015161022084015161018085015160e0860151604087015118189118186102e08401516102408501516101a0860151610100870151606088015118189118186103008501516102608601516101c0870151610120880151608089015118189118188084603f1c6123cb8660011b67ffffffffffffffff1690565b18188584603f1c6123e68660011b67ffffffffffffffff1690565b18188584603f1c6124018660011b67ffffffffffffffff1690565b181895508483603f1c61241e8560011b67ffffffffffffffff1690565b181894508387603f1c61243b8960011b67ffffffffffffffff1690565b60208b01518b51861867ffffffffffffffff168c5291189190911897508118600181901b603f9190911c18935087925061247b81602c60066001876122dc565b61248b87601460096006876122dc565b61249b86603d60166009876122dc565b6124ab876027600e6016876122dc565b6124bb8260126014600e876122dc565b6124cb86603e60026014876122dc565b6124db86602b600c6002876122dc565b6124eb856019600d600c876122dc565b6124fb8760086013600d876122dc565b61250b85603860176013876122dc565b61251b826029600f6017876122dc565b61252b87601b6004600f876122dc565b61253b87600e60186004876122dc565b61254b81600260156018876122dc565b61255b85603760086015876122dc565b61256b81602d60106008876122dc565b61257b82602460056010876122dc565b61258b85601c60036005876122dc565b61259b85601560126003876122dc565b6125ab86600f60116012876122dc565b6125bb81600a600b6011876122dc565b506125cc8560066007600b866122dc565b6125dc816003600a6007866122dc565b5067ffffffffffffffff8216610140820152612306565b600582811b8201805160018501831b8401805160028701851b8601805160038901871b8801805160048b0190981b8901805167ffffffffffffffff861985168918811690995283198a16861889169096528819861683188816909352841986168818871690528419831684189095169052919391929190611d15565b61267a6000826125f3565b6126856005826125f3565b612690600a826125f3565b61269b600f826125f3565b6126a66014826125f3565b50565b6126b28161230e565b6126bb8161266f565b600383901b820151815160c09190911c9061211490821867ffffffffffffffff168352565b6126ec600082846126a9565b6126f8600182846126a9565b612704600282846126a9565b612710600382846126a9565b61271c600482846126a9565b612728600582846126a9565b612734600682846126a9565b612740600782846126a9565b61274c600882846126a9565b612758600982846126a9565b612764600a82846126a9565b612770600b82846126a9565b61277c600c82846126a9565b612788600d82846126a9565b612794600e82846126a9565b6127a0600f82846126a9565b6127ac601082846126a9565b6127b8601182846126a9565b6127c4601282846126a9565b6127d0601382846126a9565b6127dc601482846126a9565b6127e8601582846126a9565b6127f4601682846126a9565b612114601782846126a9565b73ffffffffffffffffffffffffffffffffffffffff83811660009081526016602090815260408083208684529091528082208054908390559051909284169083908381818185875af1925050503d8060008114612879576040519150601f19603f3d011682016040523d82523d6000602084013e61287e565b606091505b50509050806128b9576040517f83e6cc6b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050505050565b7f01000000000000000000000000000000000000000000000000000000000000007effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff831617612966818360408051600093845233602052918152606090922091527effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f01000000000000000000000000000000000000000000000000000000000000001790565b9392505050565b60606040519050816020820181810182868337608883068080156129b65760888290038501848101848103803687375060806001820353506001845160001a17845386526129cd565b608836843760018353608060878401536088850186525b5050505050601f19603f82510116810160405292915050565b60006129f88260a01c63ffffffff1690565b67ffffffffffffffff1690506000612a168360801c63ffffffff1690565b63ffffffff1690506000612a308460401c63ffffffff1690565b63ffffffff169050600883108015612a46575080155b15612a7a5760c082901b6000908152883560085283513382526017602090815260408084208a855290915290912055612b2f565b60088310158015612a98575080612a9260088561371c565b93508310155b8015612aac5750612aa98782613571565b83105b15612b2f576000612abd828561371c565b905087612acb826020613571565b10158015612ad7575085155b15612b0e576040517ffe25498700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3360009081526017602090815260408083208a845290915290209089013590555b5050505050505050565b6000612bbc565b66ff00ff00ff00ff8160081c1667ff00ff00ff00ff00612b6a8360081b67ffffffffffffffff1690565b1617905065ffff0000ffff8160101c1667ffff0000ffff0000612b978360101b67ffffffffffffffff1690565b1617905060008160201c612bb58360201b67ffffffffffffffff1690565b1792915050565b60808201516020830190612bd490612b40565b612b40565b6040820151612be290612b40565b60401b17612bfa612bcf60018460059190911b015190565b825160809190911b90612c0c90612b40565b60c01b17179392505050565b8260108101928215612c46579160200282015b82811115612c46578251825591602001919060010190612c2b565b50612c52929150612c6e565b5090565b6040518060200160405280612c69612c83565b905290565b5b80821115612c525760008155600101612c6f565b6040518061032001604052806019906020820280368337509192915050565b600060208284031215612cb457600080fd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff81168114612cdf57600080fd5b919050565b60008060408385031215612cf757600080fd5b612d0083612cbb565b946020939093013593505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051610320810167ffffffffffffffff81118282101715612d6157612d61612d0e565b60405290565b6040516060810167ffffffffffffffff81118282101715612d6157612d61612d0e565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715612dd157612dd1612d0e565b604052919050565b803567ffffffffffffffff81168114612cdf57600080fd5b6000610320808385031215612e0557600080fd5b604051602080820182811067ffffffffffffffff82111715612e2957612e29612d0e565b806040525081935085601f860112612e4057600080fd5b612e48612d3d565b928501928087851115612e5a57600080fd5b865b85811015612e7a57612e6d81612dd9565b8352918301918301612e5c565b509092525091949350505050565b600060608284031215612e9a57600080fd5b50919050565b60008083601f840112612eb257600080fd5b50813567ffffffffffffffff811115612eca57600080fd5b6020830191508360208260051b8501011115612ee557600080fd5b9250929050565b60008060008060008060008060006103e08a8c031215612f0b57600080fd5b612f148a612cbb565b985060208a01359750612f2a8b60408c01612df1565b96506103608a013567ffffffffffffffff80821115612f4857600080fd5b612f548d838e01612e88565b97506103808c0135915080821115612f6b57600080fd5b612f778d838e01612ea0565b90975095506103a08c0135915080821115612f9157600080fd5b612f9d8d838e01612e88565b94506103c08c0135915080821115612fb457600080fd5b50612fc18c828d01612ea0565b915080935050809150509295985092959850929598565b600080600080600060a08688031215612ff057600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b60005b8381101561302e578181015183820152602001613016565b838111156121145750506000910152565b602081526000825180602084015261305e816040850160208701613013565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b600080604083850312156130a357600080fd5b50508035926020909101359150565b60008083601f8401126130c457600080fd5b50813567ffffffffffffffff8111156130dc57600080fd5b602083019150836020828501011115612ee557600080fd5b600080600080600080600060a0888a03121561310f57600080fd5b8735965060208801359550604088013567ffffffffffffffff8082111561313557600080fd5b6131418b838c016130b2565b909750955060608a013591508082111561315a57600080fd5b506131678a828b01612ea0565b9094509250506080880135801515811461318057600080fd5b8091505092959891949750929550565b6000806000606084860312156131a557600080fd5b6131ae84612cbb565b95602085013595506040909401359392505050565b6000806000604084860312156131d857600080fd5b83359250602084013567ffffffffffffffff8111156131f657600080fd5b613202868287016130b2565b9497909650939450505050565b600080600080600080600060a0888a03121561322a57600080fd5b8735965060208801359550604088013567ffffffffffffffff8082111561325057600080fd5b61325c8b838c016130b2565b909750955060608a013591508082111561327557600080fd5b506132828a828b016130b2565b989b979a50959894979596608090950135949350505050565b6000806000806000608086880312156132b357600080fd5b853594506132c360208701612cbb565b93506132d160408701612dd9565b9250606086013567ffffffffffffffff8111156132ed57600080fd5b6132f9888289016130b2565b969995985093965092949392505050565b60008060008060006080868803121561332257600080fd5b61332b86612cbb565b945060208601359350604086013567ffffffffffffffff8082111561334f57600080fd5b61335b89838a01612e88565b9450606088013591508082111561337157600080fd5b506132f988828901612ea0565b803563ffffffff81168114612cdf57600080fd5b6000806000606084860312156133a757600080fd5b833592506133b76020850161337e565b91506133c56040850161337e565b90509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361345d5761345d6133fd565b5060010190565b60006060823603121561347657600080fd5b61347e612d67565b823567ffffffffffffffff8082111561349657600080fd5b9084019036601f8301126134a957600080fd5b81356020828211156134bd576134bd612d0e565b6134ed817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f85011601612d8a565b9250818352368183860101111561350357600080fd5b81818501828501376000918301810191909152908352848101359083015250604092830135928101929092525090565b81516103208201908260005b601981101561356857825167ffffffffffffffff1682526020928301929091019060010161353f565b50505092915050565b60008219821115613584576135846133fd565b500190565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18436030181126135be57600080fd5b83018035915067ffffffffffffffff8211156135d957600080fd5b602001915036819003821315612ee557600080fd5b600181815b8085111561364757817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0482111561362d5761362d6133fd565b8085161561363a57918102915b93841c93908002906135f3565b509250929050565b60008261365e5750600161370a565b8161366b5750600061370a565b8160018114613681576002811461368b576136a7565b600191505061370a565b60ff84111561369c5761369c6133fd565b50506001821b61370a565b5060208310610133831016604e8410600b84101617156136ca575081810a61370a565b6136d483836135ee565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821115613706576137066133fd565b0290505b92915050565b6000612966838361364f565b60008282101561372e5761372e6133fd565b500390565b600063ffffffff83811690831681811015613750576137506133fd565b039392505050565b600063ffffffff808316818516808303821115613777576137776133fd565b01949350505050565b60008451613792818460208901613013565b9190910192835250602082015260400191905056fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\xC0`@R4\x80\x15b\0\0\x11W`\0\x80\xFD[P`@Qb\09\xEC8\x03\x80b\09\xEC\x839\x81\x01`@\x81\x90Rb\0\x004\x91b\0\x01bV[`\xA0\x82\x90R`\x80\x81\x90R`\x01`\x01`@\x1B\x03\x81\x11\x15b\0\0\xADW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`*`$\x82\x01R\x7FPreimageOracle: challenge period`D\x82\x01Ri too large`\xB0\x1B`d\x82\x01R`\x84\x01`@Q\x80\x91\x03\x90\xFD[`\0[b\0\0\xBE`\x01`\x10b\0\x01\x9DV[\x81\x10\x15b\0\x01YW`\x03\x81`\x10\x81\x10b\0\0\xDCWb\0\0\xDCb\0\x01\xB7V[\x01T`\x03\x82`\x10\x81\x10b\0\0\xF4Wb\0\0\xF4b\0\x01\xB7V[\x01T`@\x80Q` \x81\x01\x93\x90\x93R\x82\x01R``\x01`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 `\x03\x82`\x01b\0\x01/\x91\x90b\0\x01\xCDV[`\x10\x81\x10b\0\x01BWb\0\x01Bb\0\x01\xB7V[\x01U\x80b\0\x01P\x81b\0\x01\xE8V[\x91PPb\0\0\xB0V[PPPb\0\x02\x04V[`\0\x80`@\x83\x85\x03\x12\x15b\0\x01vW`\0\x80\xFD[PP\x80Q` \x90\x91\x01Q\x90\x92\x90\x91PV[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[`\0\x82\x82\x10\x15b\0\x01\xB2Wb\0\x01\xB2b\0\x01\x87V[P\x03\x90V[cNH{q`\xE0\x1B`\0R`2`\x04R`$`\0\xFD[`\0\x82\x19\x82\x11\x15b\0\x01\xE3Wb\0\x01\xE3b\0\x01\x87V[P\x01\x90V[`\0`\x01\x82\x01b\0\x01\xFDWb\0\x01\xFDb\0\x01\x87V[P`\x01\x01\x90V[`\x80Q`\xA0Qa7\xB4b\0\x028`\09`\0\x81\x81a\x05\xB0\x01Ra\x1D\xEA\x01R`\0\x81\x81a\x06\xB0\x01Ra\x14\xF3\x01Ra7\xB4`\0\xF3\xFE`\x80`@R`\x046\x10a\x01\xD8W`\x005`\xE0\x1C\x80c\x9DS\xA6H\x11a\x01\x02W\x80c\xDD\xCDX\xDE\x11a\0\x95W\x80c\xEC^\xFC\xBC\x11a\0dW\x80c\xEC^\xFC\xBC\x14a\x06\x81W\x80c\xF3\xF4\x80\xD9\x14a\x06\xA1W\x80c\xFA\xF3{\xC7\x14a\x06\xD4W\x80c\xFE\xF2\xB4\xED\x14a\x06\xE7W`\0\x80\xFD[\x80c\xDD\xCDX\xDE\x14a\x05\xD4W\x80c\xE01\x10\xE1\x14a\x06\x0CW\x80c\xE1Y&\x11\x14a\x06AW\x80c\xEAq9P\x14a\x06aW`\0\x80\xFD[\x80c\xB5\xE7\x15L\x11a\0\xD1W\x80c\xB5\xE7\x15L\x14a\x05UW\x80c\xD1\x854\xB5\x14a\x05lW\x80c\xDA5\xC6d\x14a\x05\x8CW\x80c\xDD$\xF9\xBF\x14a\x05\xA1W`\0\x80\xFD[\x80c\x9DS\xA6H\x14a\x04\x8EW\x80c\x9D~\x87i\x14a\x04\xDDW\x80c\xB2\xE6{\xA8\x14a\x04\xFDW\x80c\xB4\x80\x1Ea\x14a\x055W`\0\x80\xFD[\x80ca#\x8B\xDE\x11a\x01zW\x80cz\xC5Gg\x11a\x01IW\x80cz\xC5Gg\x14a\x03\xCAW\x80c\x85B\xCFP\x14a\x03\xEAW\x80c\x88(V\xEF\x14a\x045W\x80c\x8D\xC4\xBE\x11\x14a\x04nW`\0\x80\xFD[\x80ca#\x8B\xDE\x14a\x03\x1EW\x80ceQ\x92{\x14a\x03VW\x80cpQG.\x14a\x03\x8EW\x80cy\x17\xDE\x1D\x14a\x03\xAAW`\0\x80\xFD[\x80c9\t\xAF\\\x11a\x01\xB6W\x80c9\t\xAF\\\x14a\x02qW\x80cMR\xB4\xC9\x14a\x02\x93W\x80cR\xF0\xF3\xAD\x14a\x02\xA8W\x80cT\xFDMP\x14a\x02\xC8W`\0\x80\xFD[\x80c\x01<\xF0\x8B\x14a\x01\xDDW\x80c\x03Y\xA5c\x14a\x02.W\x80c U\xB3k\x14a\x02\\W[`\0\x80\xFD[4\x80\x15a\x01\xE9W`\0\x80\xFD[Pa\x01\xFDa\x01\xF86`\x04a,\xA2V[a\x07\x14V[`@\x80Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x93\x16\x83R` \x83\x01\x91\x90\x91R\x01[`@Q\x80\x91\x03\x90\xF3[4\x80\x15a\x02:W`\0\x80\xFD[Pa\x02Na\x02I6`\x04a,\xE4V[a\x07YV[`@Q\x90\x81R` \x01a\x02%V[4\x80\x15a\x02hW`\0\x80\xFD[Pa\x02N`\x10\x81V[4\x80\x15a\x02}W`\0\x80\xFD[Pa\x02\x91a\x02\x8C6`\x04a.\xECV[a\x08\x91V[\0[4\x80\x15a\x02\x9FW`\0\x80\xFD[Pa\x02Na\n\xE8V[4\x80\x15a\x02\xB4W`\0\x80\xFD[Pa\x02Na\x02\xC36`\x04a/\xD8V[a\x0B\x03V[4\x80\x15a\x02\xD4W`\0\x80\xFD[Pa\x03\x11`@Q\x80`@\x01`@R\x80`\x05\x81R` \x01\x7F1.1.4\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\x81RP\x81V[`@Qa\x02%\x91\x90a0?V[4\x80\x15a\x03*W`\0\x80\xFD[Pa\x02Na\x0396`\x04a0\x90V[`\x01` \x90\x81R`\0\x92\x83R`@\x80\x84 \x90\x91R\x90\x82R\x90 T\x81V[4\x80\x15a\x03bW`\0\x80\xFD[Pa\x02Na\x03q6`\x04a,\xE4V[`\x15` \x90\x81R`\0\x92\x83R`@\x80\x84 \x90\x91R\x90\x82R\x90 T\x81V[4\x80\x15a\x03\x9AW`\0\x80\xFD[Pa\x02Ng\x03x-\xAC\xE9\xD9\0\0\x81V[4\x80\x15a\x03\xB6W`\0\x80\xFD[Pa\x02\x91a\x03\xC56`\x04a0\xF4V[a\x0B\xD9V[4\x80\x15a\x03\xD6W`\0\x80\xFD[Pa\x02Na\x03\xE56`\x04a,\xA2V[a\x10\xDCV[4\x80\x15a\x03\xF6W`\0\x80\xFD[Pa\x04%a\x04\x056`\x04a0\x90V[`\x02` \x90\x81R`\0\x92\x83R`@\x80\x84 \x90\x91R\x90\x82R\x90 T`\xFF\x16\x81V[`@Q\x90\x15\x15\x81R` \x01a\x02%V[4\x80\x15a\x04AW`\0\x80\xFD[Pa\x04Ua\x04P6`\x04a1\x90V[a\x10\xF3V[`@Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01a\x02%V[4\x80\x15a\x04zW`\0\x80\xFD[Pa\x02\x91a\x04\x896`\x04a1\xC3V[a\x11MV[4\x80\x15a\x04\x9AW`\0\x80\xFD[Pa\x02Na\x04\xA96`\x04a,\xE4V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16`\0\x90\x81R`\x18` \x90\x81R`@\x80\x83 \x93\x83R\x92\x90R T\x90V[4\x80\x15a\x04\xE9W`\0\x80\xFD[Pa\x02\x91a\x04\xF86`\x04a2\x0FV[a\x12HV[4\x80\x15a\x05\tW`\0\x80\xFD[Pa\x02Na\x05\x186`\x04a,\xE4V[`\x17` \x90\x81R`\0\x92\x83R`@\x80\x84 \x90\x91R\x90\x82R\x90 T\x81V[4\x80\x15a\x05AW`\0\x80\xFD[Pa\x02Na\x05P6`\x04a1\x90V[a\x13\xFFV[4\x80\x15a\x05aW`\0\x80\xFD[Pa\x02Nb\x01\x86\xA0\x81V[4\x80\x15a\x05xW`\0\x80\xFD[Pa\x02\x91a\x05\x876`\x04a.\xECV[a\x141V[4\x80\x15a\x05\x98W`\0\x80\xFD[P`\x13Ta\x02NV[4\x80\x15a\x05\xADW`\0\x80\xFD[P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x02NV[4\x80\x15a\x05\xE0W`\0\x80\xFD[Pa\x02Na\x05\xEF6`\x04a,\xE4V[`\x16` \x90\x81R`\0\x92\x83R`@\x80\x84 \x90\x91R\x90\x82R\x90 T\x81V[4\x80\x15a\x06\x18W`\0\x80\xFD[Pa\x06,a\x06'6`\x04a0\x90V[a\x18@V[`@\x80Q\x92\x83R` \x83\x01\x91\x90\x91R\x01a\x02%V[4\x80\x15a\x06MW`\0\x80\xFD[Pa\x02\x91a\x06\\6`\x04a1\xC3V[a\x191V[4\x80\x15a\x06mW`\0\x80\xFD[Pa\x02\x91a\x06|6`\x04a2\x9BV[a\x1A9V[4\x80\x15a\x06\x8DW`\0\x80\xFD[Pa\x02\x91a\x06\x9C6`\x04a3\nV[a\x1B\x98V[4\x80\x15a\x06\xADW`\0\x80\xFD[P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x02NV[a\x02\x91a\x06\xE26`\x04a3\x92V[a\x1D\x1EV[4\x80\x15a\x06\xF3W`\0\x80\xFD[Pa\x02Na\x07\x026`\x04a,\xA2V[`\0` \x81\x90R\x90\x81R`@\x90 T\x81V[`\x13\x81\x81T\x81\x10a\x07$W`\0\x80\xFD[`\0\x91\x82R` \x90\x91 `\x02\x90\x91\x02\x01\x80T`\x01\x90\x91\x01Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x91P\x82V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16`\0\x90\x81R`\x15` \x90\x81R`@\x80\x83 \x84\x84R\x90\x91R\x81 T\x81\x90a\x07\x9C\x90``\x1Cc\xFF\xFF\xFF\xFF\x16\x90V[c\xFF\xFF\xFF\xFF\x16\x90P`\0[`\x10\x81\x10\x15a\x08\x89W\x81`\x01\x16`\x01\x03a\x08/Ws\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x85\x16`\0\x90\x81R`\x14` \x90\x81R`@\x80\x83 \x87\x84R\x90\x91R\x90 \x81`\x10\x81\x10a\x07\xFCWa\x07\xFCa3\xCEV[\x01T`@\x80Q` \x81\x01\x92\x90\x92R\x81\x01\x84\x90R``\x01`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 \x92Pa\x08pV[\x82`\x03\x82`\x10\x81\x10a\x08CWa\x08Ca3\xCEV[\x01T`@\x80Q` \x81\x01\x93\x90\x93R\x82\x01R``\x01`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 \x92P[`\x01\x91\x90\x91\x1C\x90\x80a\x08\x81\x81a4,V[\x91PPa\x07\xA7V[PP\x92\x91PPV[`\0a\x08\x9D\x8A\x8Aa\x07YV[\x90Pa\x08\xC0\x86\x86\x83` \x8B\x015a\x08\xBBa\x08\xB6\x8Da4dV[a\x1F\xEAV[a *V[\x80\x15a\x08\xDEWPa\x08\xDE\x83\x83\x83` \x88\x015a\x08\xBBa\x08\xB6\x8Aa4dV[a\t\x14W`@Q\x7F\t\xBD\xE39\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\x01`@Q\x80\x91\x03\x90\xFD[\x86`@\x015\x88`@Q` \x01a\t*\x91\x90a53V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 \x14a\twW`@Q\x7F\x19h\xA9\x02\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\x01`@Q\x80\x91\x03\x90\xFD[\x83` \x015\x87` \x015`\x01a\t\x8D\x91\x90a5qV[\x14a\t\xC4W`@Q\x7F\x9A;\x11\x99\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\x01`@Q\x80\x91\x03\x90\xFD[a\n\x0C\x88a\t\xD2\x86\x80a5\x89V[\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RPa \x8B\x92PPPV[a\n\x15\x88a!\xE6V[\x83`@\x015\x88`@Q` \x01a\n+\x91\x90a53V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 \x03a\nxW`@Q\x7F\x98C\x14[\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\x01`@Q\x80\x91\x03\x90\xFD[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x8A\x16`\0\x90\x81R`\x15` \x90\x81R`@\x80\x83 \x8C\x84R\x90\x91R\x90 \x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\x16`\x01\x17\x90Ua\n\xDC\x8A\x8A3a(\0V[PPPPPPPPPPV[`\x01a\n\xF6`\x10`\x02a7\x10V[a\x0B\0\x91\x90a7\x1CV[\x81V[`\0a\x0B\x0F\x86\x86a(\xC0V[\x90Pa\x0B\x1C\x83`\x08a5qV[\x82\x10\x15\x80a\x0B*WP` \x83\x11[\x15a\x0BaW`@Q\x7F\xFE%I\x87\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\x01`@Q\x80\x91\x03\x90\xFD[`\0` \x81\x81R`\xC0\x85\x90\x1B\x82R`\x08\x95\x90\x95R\x82Q\x82\x82R`\x02\x86R`@\x80\x83 \x85\x84R\x87R\x80\x83 \x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x16`\x01\x90\x81\x17\x90\x91U\x84\x84R\x87R\x80\x83 \x94\x83R\x93\x86R\x83\x82 U\x81\x81R\x93\x84\x90R\x92 U\x92\x91PPV[``\x81\x15a\x0B\xF2Wa\x0B\xEB\x86\x86a)mV[\x90Pa\x0C,V[\x85\x85\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RP\x92\x93PPPP[3`\0\x90\x81R`\x14` \x90\x81R`@\x80\x83 \x8B\x84R\x90\x91R\x80\x82 \x81Qa\x02\0\x81\x01\x92\x83\x90R\x91`\x10\x90\x82\x84[\x81T\x81R` \x01\x90`\x01\x01\x90\x80\x83\x11a\x0CYWPPPPP\x90P`\0`\x15`\x003s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81R` \x01\x90\x81R` \x01`\0 `\0\x8B\x81R` \x01\x90\x81R` \x01`\0 T\x90P`\0a\x0C\xDA\x82``\x1Cc\xFF\xFF\xFF\xFF\x16\x90V[c\xFF\xFF\xFF\xFF\x16\x90P32\x14a\r\x1BW`@Q\x7F\xBA\t-\x16\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\x01`@Q\x80\x91\x03\x90\xFD[a\r+\x82`\x80\x1Cc\xFF\xFF\xFF\xFF\x16\x90V[c\xFF\xFF\xFF\xFF\x16`\0\x03a\rjW`@Q\x7F\x87\x13\x8D\\\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\x01`@Q\x80\x91\x03\x90\xFD[a\rt\x82`\xC0\x1C\x90V[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x15a\r\xB5W`@Q\x7FGZ%5\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\x01`@Q\x80\x91\x03\x90\xFD[\x89\x81\x14a\r\xEEW`@Q\x7F`\xF9]Z\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\x01`@Q\x80\x91\x03\x90\xFD[a\r\xFB\x89\x89\x8D\x88\x86a)\xE6V[\x83Q` \x85\x01`\x88\x82\x04\x88\x14\x15`\x88\x83\x06\x17\x15a\x0E Wc\x07\xB1\xDA\xF1`\0R`\x04`\x1C\xFD[`@Q`\xC8\x81\x01`@R`\0[\x83\x81\x10\x15a\x0E\xD0W\x80\x83\x01\x80Q\x83R` \x81\x01Q` \x84\x01R`@\x81\x01Q`@\x84\x01R``\x81\x01Q``\x84\x01R`\x80\x81\x01Q`\x80\x84\x01RP\x84`\x88\x83\x01R`\x88\x81\x04`\x05\x1B\x8B\x015`\xA8\x83\x01R`\xC8\x82 `\x01\x86\x01\x95P\x85`\0[a\x02\0\x81\x10\x15a\x0E\xC5W`\x01\x82\x16\x15a\x0E\xA5W\x82\x81\x8B\x01Ra\x0E\xC5V[\x89\x81\x01Q`\0\x90\x81R` \x93\x84R`@\x90 \x92`\x01\x92\x90\x92\x1C\x91\x01a\x0E\x88V[PPP`\x88\x01a\x0E-V[PPPP`\x01`\x10`\x02a\x0E\xE4\x91\x90a7\x10V[a\x0E\xEE\x91\x90a7\x1CV[\x81\x11\x15a\x0F'W`@Q\x7Fb)W#\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\x01`@Q\x80\x91\x03\x90\xFD[a\x0F\x9Ca\x0F:\x83`@\x1Cc\xFF\xFF\xFF\xFF\x16\x90V[a\x0FJ\x90c\xFF\xFF\xFF\xFF\x16\x8Aa5qV[`@\x1B\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF``\x84\x90\x1B\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x85\x16\x17\x17\x90V[\x91P\x84\x15a\x10)Ww\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16B`\xC0\x1B\x17\x91Pa\x0F\xD6\x82`\x80\x1Cc\xFF\xFF\xFF\xFF\x16\x90V[c\xFF\xFF\xFF\xFF\x16a\x0F\xEC\x83`@\x1Cc\xFF\xFF\xFF\xFF\x16\x90V[c\xFF\xFF\xFF\xFF\x16\x14a\x10)W`@Q\x7F{\x1D\xAF\xD1\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\x01`@Q\x80\x91\x03\x90\xFD[3`\0\x90\x81R`\x14` \x90\x81R`@\x80\x83 \x8E\x84R\x90\x91R\x90 a\x10O\x90\x84`\x10a,\x18V[P3`\0\x81\x81R`\x18` \x90\x81R`@\x80\x83 \x8F\x84R\x82R\x80\x83 \x80T`\x01\x81\x01\x82U\x90\x84R\x82\x84 `\x04\x82\x04\x01\x80T`\x03\x90\x92\x16`\x08\x02a\x01\0\ng\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x81\x02\x19\x90\x93\x16C\x90\x93\x16\x02\x91\x90\x91\x17\x90U\x83\x83R`\x15\x82R\x80\x83 \x8F\x84R\x90\x91R\x81 \x84\x90U``\x91\x90\x91\x1B\x81R6\x90`\x1476`\x14\x01`\0\xA0PPPPPPPPPPPV[`\x03\x81`\x10\x81\x10a\x10\xECW`\0\x80\xFD[\x01T\x90P\x81V[`\x18` R\x82`\0R`@`\0 ` R\x81`\0R`@`\0 \x81\x81T\x81\x10a\x11\x1BW`\0\x80\xFD[\x90`\0R` `\0 \x90`\x04\x91\x82\x82\x04\x01\x91\x90\x06`\x08\x02\x92P\x92PP\x90T\x90a\x01\0\n\x90\x04g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[`D5`\0\x80`\x08\x83\x01\x86\x10a\x11kWc\xFE%I\x87`\0R`\x04`\x1C\xFD[`\xC0\x83\x90\x1B`\x80R`\x88\x83\x86\x827\x86`\x08\x82\x03\x01Q\x91P` `\0\x85\x83`\x02Z\xFA\x90P\x80a\x11\x98W`\0\x80\xFD[P`\0\x80Q~\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\x04\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x17\x80\x82R`\x02` \x90\x81R`@\x80\x84 \x8A\x85R\x82R\x80\x84 \x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x16`\x01\x90\x81\x17\x90\x91U\x83\x85R\x82R\x80\x84 \x99\x84R\x98\x81R\x88\x83 \x93\x90\x93U\x81R\x90\x81\x90R\x94\x90\x94 UPPPV[`\0\x80`0\x87`\x007` `\0`0`\0`\x02Z\xFA\x80a\x12pWc\xF9\x11)i`\0R`\x04`\x1C\xFD[`\0Q~\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x17`\x80\x81\x81R`\xA0\x8C\x90R`\xC0\x8B\x90R`0\x8A`\xE07`0\x88`\x90\x83\x017`\0\x80`\xC0\x83`\nZ\xFA\x92P\x82a\x12\xF2Wc\t\xBD\xE39`\0R`\x04`\x1C\xFD[`(\x86\x10a\x13\x08Wc\xFE%I\x87`\0R`\x04`\x1C\xFD[`\0`(\x82\x01Rx \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`\x08\x81\x01\x8B\x90R\x85\x81\x01Q\x93P`0\x8A\x827`0\x81\x01\x9B\x90\x9BRPP`P\x90\x98 ~\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\x05\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x17`\0\x81\x81R`\x02` \x90\x81R`@\x80\x83 \x86\x84R\x82R\x80\x83 \x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x16`\x01\x90\x81\x17\x90\x91U\x84\x84R\x82R\x80\x83 \x95\x83R\x94\x81R\x84\x82 \x9A\x90\x9AU\x90\x81R\x80\x89R\x91\x90\x91 \x96\x90\x96UPPPPPPV[`\x14` R\x82`\0R`@`\0 ` R\x81`\0R`@`\0 \x81`\x10\x81\x10a\x14'W`\0\x80\xFD[\x01T\x92P\x83\x91PPV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x89\x16`\0\x90\x81R`\x15` \x90\x81R`@\x80\x83 \x8B\x84R\x90\x91R\x90 Tg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x15a\x14\xA4W`@Q\x7F\xC34\xF0i\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\x01`@Q\x80\x91\x03\x90\xFD[a\x14\xAE\x81`\xC0\x1C\x90V[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\0\x03a\x14\xF1W`@Q\x7FU\xD4\xCB\xF9\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\x01`@Q\x80\x91\x03\x90\xFD[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x15\x1C\x82`\xC0\x1C\x90V[a\x150\x90g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16Ba7\x1CV[\x11a\x15gW`@Q\x7FU\xD4\xCB\xF9\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\x01`@Q\x80\x91\x03\x90\xFD[`\0a\x15s\x8B\x8Ba\x07YV[\x90Pa\x15\x8C\x87\x87\x83` \x8C\x015a\x08\xBBa\x08\xB6\x8Ea4dV[\x80\x15a\x15\xAAWPa\x15\xAA\x84\x84\x83` \x89\x015a\x08\xBBa\x08\xB6\x8Ba4dV[a\x15\xE0W`@Q\x7F\t\xBD\xE39\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\x01`@Q\x80\x91\x03\x90\xFD[\x87`@\x015\x89`@Q` \x01a\x15\xF6\x91\x90a53V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 \x14a\x16CW`@Q\x7F\x19h\xA9\x02\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\x01`@Q\x80\x91\x03\x90\xFD[\x84` \x015\x88` \x015`\x01a\x16Y\x91\x90a5qV[\x14\x15\x80a\x16\x8BWP`\x01a\x16s\x83``\x1Cc\xFF\xFF\xFF\xFF\x16\x90V[a\x16}\x91\x90a73V[c\xFF\xFF\xFF\xFF\x16\x85` \x015\x14\x15[\x15a\x16\xC2W`@Q\x7F\x9A;\x11\x99\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\x01`@Q\x80\x91\x03\x90\xFD[a\x16\xD0\x89a\t\xD2\x87\x80a5\x89V[a\x16\xD9\x89a!\xE6V[`\0a\x16\xE4\x8Aa+9V[~\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\x02\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x17\x90P`\0a\x17;\x84`\xA0\x1Cc\xFF\xFF\xFF\xFF\x16\x90V[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90P`\x01`\x02`\0\x84\x81R` \x01\x90\x81R` \x01`\0 `\0\x83\x81R` \x01\x90\x81R` \x01`\0 `\0a\x01\0\n\x81T\x81`\xFF\x02\x19\x16\x90\x83\x15\x15\x02\x17\x90UP`\x17`\0\x8Es\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81R` \x01\x90\x81R` \x01`\0 `\0\x8D\x81R` \x01\x90\x81R` \x01`\0 T`\x01`\0\x84\x81R` \x01\x90\x81R` \x01`\0 `\0\x83\x81R` \x01\x90\x81R` \x01`\0 \x81\x90UPa\x18\r\x84`\x80\x1Cc\xFF\xFF\xFF\xFF\x16\x90V[`\0\x83\x81R` \x81\x90R`@\x90 c\xFF\xFF\xFF\xFF\x91\x90\x91\x16\x90Ua\x181\x8D\x8D\x81a(\0V[PPPPPPPPPPPPPV[`\0\x82\x81R`\x02` \x90\x81R`@\x80\x83 \x84\x84R\x90\x91R\x81 T\x81\x90`\xFF\x16a\x18\xC9W`@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\x82\x01R`\x14`$\x82\x01R\x7Fpre-image must exist\0\0\0\0\0\0\0\0\0\0\0\0`D\x82\x01R`d\x01`@Q\x80\x91\x03\x90\xFD[P`\0\x83\x81R` \x81\x81R`@\x90\x91 Ta\x18\xE5\x81`\x08a5qV[a\x18\xF0\x85` a5qV[\x10a\x19\x0EW\x83a\x19\x01\x82`\x08a5qV[a\x19\x0B\x91\x90a7\x1CV[\x91P[P`\0\x93\x84R`\x01` \x90\x81R`@\x80\x86 \x94\x86R\x93\x90R\x91\x90\x92 T\x92\x90\x91PV[`D5`\0\x80`\x08\x83\x01\x86\x10a\x19OWc\xFE%I\x87`\0R`\x04`\x1C\xFD[`\xC0\x83\x90\x1B`\x80R`\x88\x83\x86\x827\x80\x87\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF8\x01Q\x90\x84\x90 ~\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\x02\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x17`\0\x81\x81R`\x02` \x90\x81R`@\x80\x83 \x8B\x84R\x82R\x80\x83 \x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x16`\x01\x90\x81\x17\x90\x91U\x84\x84R\x82R\x80\x83 \x9A\x83R\x99\x81R\x89\x82 \x93\x90\x93U\x90\x81R\x90\x81\x90R\x95\x90\x95 \x91\x90\x91UPPPPV[`\0\x80`\0\x80`\x80\x88``\x1B\x81R\x87`\xC0\x1B`\x14\x82\x01R\x85\x87\x82`\x1C\x017`\x1C\x86\x01\x81 ~\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\x06\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x17\x93P`@\x88\x02b`!`\x01`?Z\x02\x10\x15a\x1A\xC3Wc\xDDb\x9F\x86`\0R`\x04`\x1C\xFD[`\0\x80\x87\x83`\x1C\x01\x8CZ\xFA\x94P=`\x01\x01\x91P`\x08\x82\x01\x8A\x10a\x1A\xEEWc\xFE%I\x87`\0R`\x04`\x1C\xFD[`\xC0\x82\x90\x1B\x81R`\x08\x01\x84\x81S=`\0`\x01\x83\x01>\x89\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF8\x01Q`\0\x84\x81R`\x02` \x90\x81R`@\x80\x83 \x8D\x84R\x82R\x80\x83 \x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x16`\x01\x90\x81\x17\x90\x91U\x87\x84R\x82R\x80\x83 \x9C\x83R\x9B\x81R\x8B\x82 \x92\x90\x92U\x93\x84R\x83\x90R\x97\x90\x91 \x96\x90\x96UPPPPPPV[`\0a\x1B\xA4\x86\x86a\x07YV[\x90Pa\x1B\xBD\x83\x83\x83` \x88\x015a\x08\xBBa\x08\xB6\x8Aa4dV[a\x1B\xF3W`@Q\x7F\t\xBD\xE39\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\x01`@Q\x80\x91\x03\x90\xFD[` \x84\x015\x15a\x1C/W`@Q\x7F\x9A;\x11\x99\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\x01`@Q\x80\x91\x03\x90\xFD[a\x1C7a,VV[a\x1CE\x81a\t\xD2\x87\x80a5\x89V[a\x1CN\x81a!\xE6V[\x84`@\x015\x81`@Q` \x01a\x1Cd\x91\x90a53V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 \x03a\x1C\xB1W`@Q\x7F\x98C\x14[\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\x01`@Q\x80\x91\x03\x90\xFD[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x16`\0\x90\x81R`\x15` \x90\x81R`@\x80\x83 \x89\x84R\x90\x91R\x90 \x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\x16`\x01\x17\x90Ua\x1D\x15\x87\x873a(\0V[PPPPPPPV[g\x03x-\xAC\xE9\xD9\0\x004\x10\x15a\x1D`W`@Q\x7F\xE9,F\x9F\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\x01`@Q\x80\x91\x03\x90\xFD[32\x14a\x1D\x99W`@Q\x7F\xBA\t-\x16\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\x01`@Q\x80\x91\x03\x90\xFD[a\x1D\xA4\x81`\x08a7XV[c\xFF\xFF\xFF\xFF\x16\x82c\xFF\xFF\xFF\xFF\x16\x10a\x1D\xE8W`@Q\x7F\xFE%I\x87\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\x01`@Q\x80\x91\x03\x90\xFD[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81c\xFF\xFF\xFF\xFF\x16\x10\x15a\x1EHW`@Q\x7F{\x1D\xAF\xD1\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\x01`@Q\x80\x91\x03\x90\xFD[3`\0\x90\x81R`\x15` \x90\x81R`@\x80\x83 \x86\x84R\x90\x91R\x90 Ta\x1Es\x81`\x80\x1Cc\xFF\xFF\xFF\xFF\x16\x90V[c\xFF\xFF\xFF\xFF\x16\x15a\x1E\xB0W`@Q\x7F\r\xC1I\xF0\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\x01`@Q\x80\x91\x03\x90\xFD[`\x80\x82\x90\x1B\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF`\xA0\x85\x90\x1B\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x16\x17\x173`\0\x81\x81R`\x15` \x90\x81R`@\x80\x83 \x89\x84R\x82R\x80\x83 \x94\x90\x94U\x83Q\x80\x85\x01\x85R\x83\x81R\x80\x82\x01\x89\x81R`\x13\x80T`\x01\x81\x01\x82U\x90\x85R\x91Q\x7Ff\xDE\x8F\xFD\xA7\x97\xE3\xDE\x9C\x05\xE8\xFCW\xB3\xBF\x0E\xC2\x8A\x93\r@\xB0\xD2\x85\xD9<\x06P\x1C\xF6\xA0\x90`\x02\x90\x93\x02\x92\x83\x01\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x92\x16\x91\x90\x91\x17\x90UQ\x7Ff\xDE\x8F\xFD\xA7\x97\xE3\xDE\x9C\x05\xE8\xFCW\xB3\xBF\x0E\xC2\x8A\x93\r@\xB0\xD2\x85\xD9<\x06P\x1C\xF6\xA0\x91\x90\x91\x01U\x91\x81R`\x16\x82R\x82\x81 \x96\x81R\x95\x90R\x90\x93 4\x90UPPPV[`\0\x81`\0\x01Q\x82` \x01Q\x83`@\x01Q`@Q` \x01a \r\x93\x92\x91\x90a7\x80V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 \x90P\x91\x90PV[`\0\x81`\0[`\x10\x81\x10\x15a ~W\x80`\x05\x1B\x88\x015`\x01\x86\x83\x1C\x16`\x01\x81\x14a cW`\0\x84\x81R` \x83\x90R`@\x90 \x93Pa tV[`\0\x82\x81R` \x85\x90R`@\x90 \x93P[PP`\x01\x01a 0V[P\x90\x93\x14\x95\x94PPPPPV[`\x88\x81Q\x14a \x99W`\0\x80\xFD[` \x81\x01` \x83\x01a!\x1AV[\x82`\x03\x1B\x82\x01Q\x80`\0\x1A\x81`\x01\x1A`\x08\x1B\x17\x81`\x02\x1A`\x10\x1B\x82`\x03\x1A`\x18\x1B\x17\x17\x81`\x04\x1A` \x1B\x82`\x05\x1A`(\x1B\x17\x82`\x06\x1A`0\x1B\x83`\x07\x1A`8\x1B\x17\x17\x17\x90Pa!\x14\x81a \xFF\x86\x85`\x05\x91\x90\x91\x1B\x01Q\x90V[\x18g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\x05\x86\x90\x1B\x84\x01RV[PPPPV[a!&`\0\x83\x83a \xA6V[a!2`\x01\x83\x83a \xA6V[a!>`\x02\x83\x83a \xA6V[a!J`\x03\x83\x83a \xA6V[a!V`\x04\x83\x83a \xA6V[a!b`\x05\x83\x83a \xA6V[a!n`\x06\x83\x83a \xA6V[a!z`\x07\x83\x83a \xA6V[a!\x86`\x08\x83\x83a \xA6V[a!\x92`\t\x83\x83a \xA6V[a!\x9E`\n\x83\x83a \xA6V[a!\xAA`\x0B\x83\x83a \xA6V[a!\xB6`\x0C\x83\x83a \xA6V[a!\xC2`\r\x83\x83a \xA6V[a!\xCE`\x0E\x83\x83a \xA6V[a!\xDA`\x0F\x83\x83a \xA6V[a!\x14`\x10\x83\x83a \xA6V[`@\x80Qx\x01\0\0\0\0\0\0\x80\x82\x80\0\0\0\0\0\x80\x8A\x80\0\0\0\x80\0\x80\0` \x82\x01Ry\x80\x8B\0\0\0\0\x80\0\0\x01\x80\0\0\0\x80\0\x80\x81\x80\0\0\0\0\0\x80\t\x91\x81\x01\x91\x90\x91Rx\x8A\0\0\0\0\0\0\0\x88\0\0\0\0\x80\0\x80\t\0\0\0\0\x80\0\0\n``\x82\x01R{\x80\0\x80\x8B\x80\0\0\0\0\0\0\x8B\x80\0\0\0\0\0\x80\x89\x80\0\0\0\0\0\x80\x03`\x80\x82\x01R\x7F\x80\0\0\0\0\0\x80\x02\x80\0\0\0\0\0\0\x80\0\0\0\0\0\0\x80\n\x80\0\0\0\x80\0\0\n`\xA0\x82\x01R\x7F\x80\0\0\0\x80\0\x80\x81\x80\0\0\0\0\0\x80\x80\0\0\0\0\x80\0\0\x01\x80\0\0\0\x80\0\x80\x08`\xC0\x82\x01R`\0\x90`\xE0\x01`@Q` \x81\x83\x03\x03\x81R\x90`@R\x90P` \x82\x01` \x82\x01a&\xE0V[`\x05\x83\x90\x1B\x81\x01Q\x85\x18`@\x85\x90\x03\x81\x90\x1C\x90\x85\x1B\x18g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16`\x05\x84\x90\x1B\x83\x01R[PPPPPPV[a\x02\x80\x81\x01Qa\x01\xE0\x82\x01Qa\x01@\x83\x01Q`\xA0\x84\x01Q\x84Q\x18\x18\x91\x18\x18a\x02\xA0\x82\x01Qa\x02\0\x83\x01Qa\x01`\x84\x01Q`\xC0\x85\x01Q` \x86\x01Q\x18\x18\x91\x18\x18a\x02\xC0\x83\x01Qa\x02 \x84\x01Qa\x01\x80\x85\x01Q`\xE0\x86\x01Q`@\x87\x01Q\x18\x18\x91\x18\x18a\x02\xE0\x84\x01Qa\x02@\x85\x01Qa\x01\xA0\x86\x01Qa\x01\0\x87\x01Q``\x88\x01Q\x18\x18\x91\x18\x18a\x03\0\x85\x01Qa\x02`\x86\x01Qa\x01\xC0\x87\x01Qa\x01 \x88\x01Q`\x80\x89\x01Q\x18\x18\x91\x18\x18\x80\x84`?\x1Ca#\xCB\x86`\x01\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90V[\x18\x18\x85\x84`?\x1Ca#\xE6\x86`\x01\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90V[\x18\x18\x85\x84`?\x1Ca$\x01\x86`\x01\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90V[\x18\x18\x95P\x84\x83`?\x1Ca$\x1E\x85`\x01\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90V[\x18\x18\x94P\x83\x87`?\x1Ca$;\x89`\x01\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90V[` \x8B\x01Q\x8BQ\x86\x18g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x8CR\x91\x18\x91\x90\x91\x18\x97P\x81\x18`\x01\x81\x90\x1B`?\x91\x90\x91\x1C\x18\x93P\x87\x92Pa${\x81`,`\x06`\x01\x87a\"\xDCV[a$\x8B\x87`\x14`\t`\x06\x87a\"\xDCV[a$\x9B\x86`=`\x16`\t\x87a\"\xDCV[a$\xAB\x87`'`\x0E`\x16\x87a\"\xDCV[a$\xBB\x82`\x12`\x14`\x0E\x87a\"\xDCV[a$\xCB\x86`>`\x02`\x14\x87a\"\xDCV[a$\xDB\x86`+`\x0C`\x02\x87a\"\xDCV[a$\xEB\x85`\x19`\r`\x0C\x87a\"\xDCV[a$\xFB\x87`\x08`\x13`\r\x87a\"\xDCV[a%\x0B\x85`8`\x17`\x13\x87a\"\xDCV[a%\x1B\x82`)`\x0F`\x17\x87a\"\xDCV[a%+\x87`\x1B`\x04`\x0F\x87a\"\xDCV[a%;\x87`\x0E`\x18`\x04\x87a\"\xDCV[a%K\x81`\x02`\x15`\x18\x87a\"\xDCV[a%[\x85`7`\x08`\x15\x87a\"\xDCV[a%k\x81`-`\x10`\x08\x87a\"\xDCV[a%{\x82`$`\x05`\x10\x87a\"\xDCV[a%\x8B\x85`\x1C`\x03`\x05\x87a\"\xDCV[a%\x9B\x85`\x15`\x12`\x03\x87a\"\xDCV[a%\xAB\x86`\x0F`\x11`\x12\x87a\"\xDCV[a%\xBB\x81`\n`\x0B`\x11\x87a\"\xDCV[Pa%\xCC\x85`\x06`\x07`\x0B\x86a\"\xDCV[a%\xDC\x81`\x03`\n`\x07\x86a\"\xDCV[Pg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16a\x01@\x82\x01Ra#\x06V[`\x05\x82\x81\x1B\x82\x01\x80Q`\x01\x85\x01\x83\x1B\x84\x01\x80Q`\x02\x87\x01\x85\x1B\x86\x01\x80Q`\x03\x89\x01\x87\x1B\x88\x01\x80Q`\x04\x8B\x01\x90\x98\x1B\x89\x01\x80Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x86\x19\x85\x16\x89\x18\x81\x16\x90\x99R\x83\x19\x8A\x16\x86\x18\x89\x16\x90\x96R\x88\x19\x86\x16\x83\x18\x88\x16\x90\x93R\x84\x19\x86\x16\x88\x18\x87\x16\x90R\x84\x19\x83\x16\x84\x18\x90\x95\x16\x90R\x91\x93\x91\x92\x91\x90a\x1D\x15V[a&z`\0\x82a%\xF3V[a&\x85`\x05\x82a%\xF3V[a&\x90`\n\x82a%\xF3V[a&\x9B`\x0F\x82a%\xF3V[a&\xA6`\x14\x82a%\xF3V[PV[a&\xB2\x81a#\x0EV[a&\xBB\x81a&oV[`\x03\x83\x90\x1B\x82\x01Q\x81Q`\xC0\x91\x90\x91\x1C\x90a!\x14\x90\x82\x18g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x83RV[a&\xEC`\0\x82\x84a&\xA9V[a&\xF8`\x01\x82\x84a&\xA9V[a'\x04`\x02\x82\x84a&\xA9V[a'\x10`\x03\x82\x84a&\xA9V[a'\x1C`\x04\x82\x84a&\xA9V[a'(`\x05\x82\x84a&\xA9V[a'4`\x06\x82\x84a&\xA9V[a'@`\x07\x82\x84a&\xA9V[a'L`\x08\x82\x84a&\xA9V[a'X`\t\x82\x84a&\xA9V[a'd`\n\x82\x84a&\xA9V[a'p`\x0B\x82\x84a&\xA9V[a'|`\x0C\x82\x84a&\xA9V[a'\x88`\r\x82\x84a&\xA9V[a'\x94`\x0E\x82\x84a&\xA9V[a'\xA0`\x0F\x82\x84a&\xA9V[a'\xAC`\x10\x82\x84a&\xA9V[a'\xB8`\x11\x82\x84a&\xA9V[a'\xC4`\x12\x82\x84a&\xA9V[a'\xD0`\x13\x82\x84a&\xA9V[a'\xDC`\x14\x82\x84a&\xA9V[a'\xE8`\x15\x82\x84a&\xA9V[a'\xF4`\x16\x82\x84a&\xA9V[a!\x14`\x17\x82\x84a&\xA9V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x81\x16`\0\x90\x81R`\x16` \x90\x81R`@\x80\x83 \x86\x84R\x90\x91R\x80\x82 \x80T\x90\x83\x90U\x90Q\x90\x92\x84\x16\x90\x83\x90\x83\x81\x81\x81\x85\x87Z\xF1\x92PPP=\x80`\0\x81\x14a(yW`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=`\0` \x84\x01>a(~V[``\x91P[PP\x90P\x80a(\xB9W`@Q\x7F\x83\xE6\xCCk\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\x01`@Q\x80\x91\x03\x90\xFD[PPPPPV[\x7F\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0~\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x16\x17a)f\x81\x83`@\x80Q`\0\x93\x84R3` R\x91\x81R``\x90\x92 \x91R~\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x17\x90V[\x93\x92PPPV[```@Q\x90P\x81` \x82\x01\x81\x81\x01\x82\x86\x837`\x88\x83\x06\x80\x80\x15a)\xB6W`\x88\x82\x90\x03\x85\x01\x84\x81\x01\x84\x81\x03\x806\x877P`\x80`\x01\x82\x03SP`\x01\x84Q`\0\x1A\x17\x84S\x86Ra)\xCDV[`\x886\x847`\x01\x83S`\x80`\x87\x84\x01S`\x88\x85\x01\x86R[PPPPP`\x1F\x19`?\x82Q\x01\x16\x81\x01`@R\x92\x91PPV[`\0a)\xF8\x82`\xA0\x1Cc\xFF\xFF\xFF\xFF\x16\x90V[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90P`\0a*\x16\x83`\x80\x1Cc\xFF\xFF\xFF\xFF\x16\x90V[c\xFF\xFF\xFF\xFF\x16\x90P`\0a*0\x84`@\x1Cc\xFF\xFF\xFF\xFF\x16\x90V[c\xFF\xFF\xFF\xFF\x16\x90P`\x08\x83\x10\x80\x15a*FWP\x80\x15[\x15a*zW`\xC0\x82\x90\x1B`\0\x90\x81R\x885`\x08R\x83Q3\x82R`\x17` \x90\x81R`@\x80\x84 \x8A\x85R\x90\x91R\x90\x91 Ua+/V[`\x08\x83\x10\x15\x80\x15a*\x98WP\x80a*\x92`\x08\x85a7\x1CV[\x93P\x83\x10\x15[\x80\x15a*\xACWPa*\xA9\x87\x82a5qV[\x83\x10[\x15a+/W`\0a*\xBD\x82\x85a7\x1CV[\x90P\x87a*\xCB\x82` a5qV[\x10\x15\x80\x15a*\xD7WP\x85\x15[\x15a+\x0EW`@Q\x7F\xFE%I\x87\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\x01`@Q\x80\x91\x03\x90\xFD[3`\0\x90\x81R`\x17` \x90\x81R`@\x80\x83 \x8A\x84R\x90\x91R\x90 \x90\x89\x015\x90U[PPPPPPPPV[`\0a+\xBCV[f\xFF\0\xFF\0\xFF\0\xFF\x81`\x08\x1C\x16g\xFF\0\xFF\0\xFF\0\xFF\0a+j\x83`\x08\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90V[\x16\x17\x90Pe\xFF\xFF\0\0\xFF\xFF\x81`\x10\x1C\x16g\xFF\xFF\0\0\xFF\xFF\0\0a+\x97\x83`\x10\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90V[\x16\x17\x90P`\0\x81` \x1Ca+\xB5\x83` \x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90V[\x17\x92\x91PPV[`\x80\x82\x01Q` \x83\x01\x90a+\xD4\x90a+@V[a+@V[`@\x82\x01Qa+\xE2\x90a+@V[`@\x1B\x17a+\xFAa+\xCF`\x01\x84`\x05\x91\x90\x91\x1B\x01Q\x90V[\x82Q`\x80\x91\x90\x91\x1B\x90a,\x0C\x90a+@V[`\xC0\x1B\x17\x17\x93\x92PPPV[\x82`\x10\x81\x01\x92\x82\x15a,FW\x91` \x02\x82\x01[\x82\x81\x11\x15a,FW\x82Q\x82U\x91` \x01\x91\x90`\x01\x01\x90a,+V[Pa,R\x92\x91Pa,nV[P\x90V[`@Q\x80` \x01`@R\x80a,ia,\x83V[\x90R\x90V[[\x80\x82\x11\x15a,RW`\0\x81U`\x01\x01a,oV[`@Q\x80a\x03 \x01`@R\x80`\x19\x90` \x82\x02\x806\x837P\x91\x92\x91PPV[`\0` \x82\x84\x03\x12\x15a,\xB4W`\0\x80\xFD[P5\x91\x90PV[\x805s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a,\xDFW`\0\x80\xFD[\x91\x90PV[`\0\x80`@\x83\x85\x03\x12\x15a,\xF7W`\0\x80\xFD[a-\0\x83a,\xBBV[\x94` \x93\x90\x93\x015\x93PPPV[\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[`@Qa\x03 \x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a-aWa-aa-\x0EV[`@R\x90V[`@Q``\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a-aWa-aa-\x0EV[`@Q`\x1F\x82\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a-\xD1Wa-\xD1a-\x0EV[`@R\x91\x90PV[\x805g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a,\xDFW`\0\x80\xFD[`\0a\x03 \x80\x83\x85\x03\x12\x15a.\x05W`\0\x80\xFD[`@Q` \x80\x82\x01\x82\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17\x15a.)Wa.)a-\x0EV[\x80`@RP\x81\x93P\x85`\x1F\x86\x01\x12a.@W`\0\x80\xFD[a.Ha-=V[\x92\x85\x01\x92\x80\x87\x85\x11\x15a.ZW`\0\x80\xFD[\x86[\x85\x81\x10\x15a.zWa.m\x81a-\xD9V[\x83R\x91\x83\x01\x91\x83\x01a.\\V[P\x90\x92RP\x91\x94\x93PPPPV[`\0``\x82\x84\x03\x12\x15a.\x9AW`\0\x80\xFD[P\x91\x90PV[`\0\x80\x83`\x1F\x84\x01\x12a.\xB2W`\0\x80\xFD[P\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a.\xCAW`\0\x80\xFD[` \x83\x01\x91P\x83` \x82`\x05\x1B\x85\x01\x01\x11\x15a.\xE5W`\0\x80\xFD[\x92P\x92\x90PV[`\0\x80`\0\x80`\0\x80`\0\x80`\0a\x03\xE0\x8A\x8C\x03\x12\x15a/\x0BW`\0\x80\xFD[a/\x14\x8Aa,\xBBV[\x98P` \x8A\x015\x97Pa/*\x8B`@\x8C\x01a-\xF1V[\x96Pa\x03`\x8A\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a/HW`\0\x80\xFD[a/T\x8D\x83\x8E\x01a.\x88V[\x97Pa\x03\x80\x8C\x015\x91P\x80\x82\x11\x15a/kW`\0\x80\xFD[a/w\x8D\x83\x8E\x01a.\xA0V[\x90\x97P\x95Pa\x03\xA0\x8C\x015\x91P\x80\x82\x11\x15a/\x91W`\0\x80\xFD[a/\x9D\x8D\x83\x8E\x01a.\x88V[\x94Pa\x03\xC0\x8C\x015\x91P\x80\x82\x11\x15a/\xB4W`\0\x80\xFD[Pa/\xC1\x8C\x82\x8D\x01a.\xA0V[\x91P\x80\x93PP\x80\x91PP\x92\x95\x98P\x92\x95\x98P\x92\x95\x98V[`\0\x80`\0\x80`\0`\xA0\x86\x88\x03\x12\x15a/\xF0W`\0\x80\xFD[PP\x835\x95` \x85\x015\x95P`@\x85\x015\x94``\x81\x015\x94P`\x80\x015\x92P\x90PV[`\0[\x83\x81\x10\x15a0.W\x81\x81\x01Q\x83\x82\x01R` \x01a0\x16V[\x83\x81\x11\x15a!\x14WPP`\0\x91\x01RV[` \x81R`\0\x82Q\x80` \x84\x01Ra0^\x81`@\x85\x01` \x87\x01a0\x13V[`\x1F\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x91\x90\x91\x01`@\x01\x92\x91PPV[`\0\x80`@\x83\x85\x03\x12\x15a0\xA3W`\0\x80\xFD[PP\x805\x92` \x90\x91\x015\x91PV[`\0\x80\x83`\x1F\x84\x01\x12a0\xC4W`\0\x80\xFD[P\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a0\xDCW`\0\x80\xFD[` \x83\x01\x91P\x83` \x82\x85\x01\x01\x11\x15a.\xE5W`\0\x80\xFD[`\0\x80`\0\x80`\0\x80`\0`\xA0\x88\x8A\x03\x12\x15a1\x0FW`\0\x80\xFD[\x875\x96P` \x88\x015\x95P`@\x88\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a15W`\0\x80\xFD[a1A\x8B\x83\x8C\x01a0\xB2V[\x90\x97P\x95P``\x8A\x015\x91P\x80\x82\x11\x15a1ZW`\0\x80\xFD[Pa1g\x8A\x82\x8B\x01a.\xA0V[\x90\x94P\x92PP`\x80\x88\x015\x80\x15\x15\x81\x14a1\x80W`\0\x80\xFD[\x80\x91PP\x92\x95\x98\x91\x94\x97P\x92\x95PV[`\0\x80`\0``\x84\x86\x03\x12\x15a1\xA5W`\0\x80\xFD[a1\xAE\x84a,\xBBV[\x95` \x85\x015\x95P`@\x90\x94\x015\x93\x92PPPV[`\0\x80`\0`@\x84\x86\x03\x12\x15a1\xD8W`\0\x80\xFD[\x835\x92P` \x84\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a1\xF6W`\0\x80\xFD[a2\x02\x86\x82\x87\x01a0\xB2V[\x94\x97\x90\x96P\x93\x94PPPPV[`\0\x80`\0\x80`\0\x80`\0`\xA0\x88\x8A\x03\x12\x15a2*W`\0\x80\xFD[\x875\x96P` \x88\x015\x95P`@\x88\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a2PW`\0\x80\xFD[a2\\\x8B\x83\x8C\x01a0\xB2V[\x90\x97P\x95P``\x8A\x015\x91P\x80\x82\x11\x15a2uW`\0\x80\xFD[Pa2\x82\x8A\x82\x8B\x01a0\xB2V[\x98\x9B\x97\x9AP\x95\x98\x94\x97\x95\x96`\x80\x90\x95\x015\x94\x93PPPPV[`\0\x80`\0\x80`\0`\x80\x86\x88\x03\x12\x15a2\xB3W`\0\x80\xFD[\x855\x94Pa2\xC3` \x87\x01a,\xBBV[\x93Pa2\xD1`@\x87\x01a-\xD9V[\x92P``\x86\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a2\xEDW`\0\x80\xFD[a2\xF9\x88\x82\x89\x01a0\xB2V[\x96\x99\x95\x98P\x93\x96P\x92\x94\x93\x92PPPV[`\0\x80`\0\x80`\0`\x80\x86\x88\x03\x12\x15a3\"W`\0\x80\xFD[a3+\x86a,\xBBV[\x94P` \x86\x015\x93P`@\x86\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a3OW`\0\x80\xFD[a3[\x89\x83\x8A\x01a.\x88V[\x94P``\x88\x015\x91P\x80\x82\x11\x15a3qW`\0\x80\xFD[Pa2\xF9\x88\x82\x89\x01a.\xA0V[\x805c\xFF\xFF\xFF\xFF\x81\x16\x81\x14a,\xDFW`\0\x80\xFD[`\0\x80`\0``\x84\x86\x03\x12\x15a3\xA7W`\0\x80\xFD[\x835\x92Pa3\xB7` \x85\x01a3~V[\x91Pa3\xC5`@\x85\x01a3~V[\x90P\x92P\x92P\x92V[\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`2`\x04R`$`\0\xFD[\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`\x11`\x04R`$`\0\xFD[`\0\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x03a4]Wa4]a3\xFDV[P`\x01\x01\x90V[`\0``\x826\x03\x12\x15a4vW`\0\x80\xFD[a4~a-gV[\x825g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a4\x96W`\0\x80\xFD[\x90\x84\x01\x906`\x1F\x83\x01\x12a4\xA9W`\0\x80\xFD[\x815` \x82\x82\x11\x15a4\xBDWa4\xBDa-\x0EV[a4\xED\x81\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0`\x1F\x85\x01\x16\x01a-\x8AV[\x92P\x81\x83R6\x81\x83\x86\x01\x01\x11\x15a5\x03W`\0\x80\xFD[\x81\x81\x85\x01\x82\x85\x017`\0\x91\x83\x01\x81\x01\x91\x90\x91R\x90\x83R\x84\x81\x015\x90\x83\x01RP`@\x92\x83\x015\x92\x81\x01\x92\x90\x92RP\x90V[\x81Qa\x03 \x82\x01\x90\x82`\0[`\x19\x81\x10\x15a5hW\x82Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x82R` \x92\x83\x01\x92\x90\x91\x01\x90`\x01\x01a5?V[PPP\x92\x91PPV[`\0\x82\x19\x82\x11\x15a5\x84Wa5\x84a3\xFDV[P\x01\x90V[`\0\x80\x835\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE1\x846\x03\x01\x81\x12a5\xBEW`\0\x80\xFD[\x83\x01\x805\x91Pg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x15a5\xD9W`\0\x80\xFD[` \x01\x91P6\x81\x90\x03\x82\x13\x15a.\xE5W`\0\x80\xFD[`\x01\x81\x81[\x80\x85\x11\x15a6GW\x81\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x04\x82\x11\x15a6-Wa6-a3\xFDV[\x80\x85\x16\x15a6:W\x91\x81\x02\x91[\x93\x84\x1C\x93\x90\x80\x02\x90a5\xF3V[P\x92P\x92\x90PV[`\0\x82a6^WP`\x01a7\nV[\x81a6kWP`\0a7\nV[\x81`\x01\x81\x14a6\x81W`\x02\x81\x14a6\x8BWa6\xA7V[`\x01\x91PPa7\nV[`\xFF\x84\x11\x15a6\x9CWa6\x9Ca3\xFDV[PP`\x01\x82\x1Ba7\nV[P` \x83\x10a\x013\x83\x10\x16`N\x84\x10`\x0B\x84\x10\x16\x17\x15a6\xCAWP\x81\x81\na7\nV[a6\xD4\x83\x83a5\xEEV[\x80\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x04\x82\x11\x15a7\x06Wa7\x06a3\xFDV[\x02\x90P[\x92\x91PPV[`\0a)f\x83\x83a6OV[`\0\x82\x82\x10\x15a7.Wa7.a3\xFDV[P\x03\x90V[`\0c\xFF\xFF\xFF\xFF\x83\x81\x16\x90\x83\x16\x81\x81\x10\x15a7PWa7Pa3\xFDV[\x03\x93\x92PPPV[`\0c\xFF\xFF\xFF\xFF\x80\x83\x16\x81\x85\x16\x80\x83\x03\x82\x11\x15a7wWa7wa3\xFDV[\x01\x94\x93PPPPV[`\0\x84Qa7\x92\x81\x84` \x89\x01a0\x13V[\x91\x90\x91\x01\x92\x83RP` \x82\x01R`@\x01\x91\x90PV\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x6080604052600436106101d85760003560e01c80639d53a64811610102578063ddcd58de11610095578063ec5efcbc11610064578063ec5efcbc14610681578063f3f480d9146106a1578063faf37bc7146106d4578063fef2b4ed146106e757600080fd5b8063ddcd58de146105d4578063e03110e11461060c578063e159261114610641578063ea7139501461066157600080fd5b8063b5e7154c116100d1578063b5e7154c14610555578063d18534b51461056c578063da35c6641461058c578063dd24f9bf146105a157600080fd5b80639d53a6481461048e5780639d7e8769146104dd578063b2e67ba8146104fd578063b4801e611461053557600080fd5b806361238bde1161017a5780637ac54767116101495780637ac54767146103ca5780638542cf50146103ea578063882856ef146104355780638dc4be111461046e57600080fd5b806361238bde1461031e5780636551927b146103565780637051472e1461038e5780637917de1d146103aa57600080fd5b80633909af5c116101b65780633909af5c146102715780634d52b4c91461029357806352f0f3ad146102a857806354fd4d50146102c857600080fd5b8063013cf08b146101dd5780630359a5631461022e5780632055b36b1461025c575b600080fd5b3480156101e957600080fd5b506101fd6101f8366004612ca2565b610714565b6040805173ffffffffffffffffffffffffffffffffffffffff90931683526020830191909152015b60405180910390f35b34801561023a57600080fd5b5061024e610249366004612ce4565b610759565b604051908152602001610225565b34801561026857600080fd5b5061024e601081565b34801561027d57600080fd5b5061029161028c366004612eec565b610891565b005b34801561029f57600080fd5b5061024e610ae8565b3480156102b457600080fd5b5061024e6102c3366004612fd8565b610b03565b3480156102d457600080fd5b506103116040518060400160405280600581526020017f312e312e3400000000000000000000000000000000000000000000000000000081525081565b604051610225919061303f565b34801561032a57600080fd5b5061024e610339366004613090565b600160209081526000928352604080842090915290825290205481565b34801561036257600080fd5b5061024e610371366004612ce4565b601560209081526000928352604080842090915290825290205481565b34801561039a57600080fd5b5061024e6703782dace9d9000081565b3480156103b657600080fd5b506102916103c53660046130f4565b610bd9565b3480156103d657600080fd5b5061024e6103e5366004612ca2565b6110dc565b3480156103f657600080fd5b50610425610405366004613090565b600260209081526000928352604080842090915290825290205460ff1681565b6040519015158152602001610225565b34801561044157600080fd5b50610455610450366004613190565b6110f3565b60405167ffffffffffffffff9091168152602001610225565b34801561047a57600080fd5b506102916104893660046131c3565b61114d565b34801561049a57600080fd5b5061024e6104a9366004612ce4565b73ffffffffffffffffffffffffffffffffffffffff9091166000908152601860209081526040808320938352929052205490565b3480156104e957600080fd5b506102916104f836600461320f565b611248565b34801561050957600080fd5b5061024e610518366004612ce4565b601760209081526000928352604080842090915290825290205481565b34801561054157600080fd5b5061024e610550366004613190565b6113ff565b34801561056157600080fd5b5061024e620186a081565b34801561057857600080fd5b50610291610587366004612eec565b611431565b34801561059857600080fd5b5060135461024e565b3480156105ad57600080fd5b507f000000000000000000000000000000000000000000000000000000000000000061024e565b3480156105e057600080fd5b5061024e6105ef366004612ce4565b601660209081526000928352604080842090915290825290205481565b34801561061857600080fd5b5061062c610627366004613090565b611840565b60408051928352602083019190915201610225565b34801561064d57600080fd5b5061029161065c3660046131c3565b611931565b34801561066d57600080fd5b5061029161067c36600461329b565b611a39565b34801561068d57600080fd5b5061029161069c36600461330a565b611b98565b3480156106ad57600080fd5b507f000000000000000000000000000000000000000000000000000000000000000061024e565b6102916106e2366004613392565b611d1e565b3480156106f357600080fd5b5061024e610702366004612ca2565b60006020819052908152604090205481565b6013818154811061072457600080fd5b60009182526020909120600290910201805460019091015473ffffffffffffffffffffffffffffffffffffffff909116915082565b73ffffffffffffffffffffffffffffffffffffffff82166000908152601560209081526040808320848452909152812054819061079c9060601c63ffffffff1690565b63ffffffff16905060005b6010811015610889578160011660010361082f5773ffffffffffffffffffffffffffffffffffffffff85166000908152601460209081526040808320878452909152902081601081106107fc576107fc6133ce565b01546040805160208101929092528101849052606001604051602081830303815290604052805190602001209250610870565b8260038260108110610843576108436133ce565b01546040805160208101939093528201526060016040516020818303038152906040528051906020012092505b60019190911c90806108818161342c565b9150506107a7565b505092915050565b600061089d8a8a610759565b90506108c086868360208b01356108bb6108b68d613464565b611fea565b61202a565b80156108de57506108de83838360208801356108bb6108b68a613464565b610914576040517f09bde33900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b86604001358860405160200161092a9190613533565b6040516020818303038152906040528051906020012014610977576040517f1968a90200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b83602001358760200135600161098d9190613571565b146109c4576040517f9a3b119900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610a0c886109d28680613589565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061208b92505050565b610a15886121e6565b836040013588604051602001610a2b9190613533565b6040516020818303038152906040528051906020012003610a78576040517f9843145b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8a1660009081526015602090815260408083208c8452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000166001179055610adc8a8a33612800565b50505050505050505050565b6001610af660106002613710565b610b00919061371c565b81565b6000610b0f86866128c0565b9050610b1c836008613571565b82101580610b2a5750602083115b15610b61576040517ffe25498700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000602081815260c085901b82526008959095528251828252600286526040808320858452875280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660019081179091558484528752808320948352938652838220558181529384905292205592915050565b60608115610bf257610beb868661296d565b9050610c2c565b85858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293505050505b3360009081526014602090815260408083208b845290915280822081516102008101928390529160109082845b815481526020019060010190808311610c5957505050505090506000601560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008b81526020019081526020016000205490506000610cda8260601c63ffffffff1690565b63ffffffff169050333214610d1b576040517fba092d1600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610d2b8260801c63ffffffff1690565b63ffffffff16600003610d6a576040517f87138d5c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610d748260c01c90565b67ffffffffffffffff1615610db5576040517f475a253500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b898114610dee576040517f60f95d5a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610dfb89898d88866129e6565b83516020850160888204881415608883061715610e20576307b1daf16000526004601cfd5b60405160c8810160405260005b83811015610ed0578083018051835260208101516020840152604081015160408401526060810151606084015260808101516080840152508460888301526088810460051b8b013560a883015260c882206001860195508560005b610200811015610ec5576001821615610ea55782818b0152610ec5565b8981015160009081526020938452604090209260019290921c9101610e88565b505050608801610e2d565b50505050600160106002610ee49190613710565b610eee919061371c565b811115610f27576040517f6229572300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610f9c610f3a8360401c63ffffffff1690565b610f4a9063ffffffff168a613571565b60401b7fffffffffffffffffffffffffffffffffffffffff00000000ffffffffffffffff606084901b167fffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff8516171790565b915084156110295777ffffffffffffffffffffffffffffffffffffffffffffffff82164260c01b179150610fd68260801c63ffffffff1690565b63ffffffff16610fec8360401c63ffffffff1690565b63ffffffff1614611029576040517f7b1dafd100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3360009081526014602090815260408083208e8452909152902061104f90846010612c18565b503360008181526018602090815260408083208f8452825280832080546001810182559084528284206004820401805460039092166008026101000a67ffffffffffffffff818102199093164390931602919091179055838352601582528083208f8452909152812084905560609190911b81523690601437366014016000a05050505050505050505050565b600381601081106110ec57600080fd5b0154905081565b6018602052826000526040600020602052816000526040600020818154811061111b57600080fd5b906000526020600020906004918282040191900660080292509250509054906101000a900467ffffffffffffffff1681565b60443560008060088301861061116b5763fe2549876000526004601cfd5b60c083901b60805260888386823786600882030151915060206000858360025afa90508061119857600080fd5b50600080517effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f0400000000000000000000000000000000000000000000000000000000000000178082526002602090815260408084208a8552825280842080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660019081179091558385528252808420998452988152888320939093558152908190529490942055505050565b600080603087600037602060006030600060025afa806112705763f91129696000526004601cfd5b6000517effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f010000000000000000000000000000000000000000000000000000000000000017608081815260a08c905260c08b905260308a60e037603088609083013760008060c083600a5afa9250826112f2576309bde3396000526004601cfd5b602886106113085763fe2549876000526004601cfd5b6000602882015278200000000000000000000000000000000000000000000000008152600881018b905285810151935060308a8237603081019b909b52505060509098207effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f0500000000000000000000000000000000000000000000000000000000000000176000818152600260209081526040808320868452825280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600190811790915584845282528083209583529481528482209a909a559081528089529190912096909655505050505050565b6014602052826000526040600020602052816000526040600020816010811061142757600080fd5b0154925083915050565b73ffffffffffffffffffffffffffffffffffffffff891660009081526015602090815260408083208b845290915290205467ffffffffffffffff8116156114a4576040517fc334f06900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6114ae8160c01c90565b67ffffffffffffffff166000036114f1576040517f55d4cbf900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000061151c8260c01c90565b6115309067ffffffffffffffff164261371c565b11611567576040517f55d4cbf900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006115738b8b610759565b905061158c87878360208c01356108bb6108b68e613464565b80156115aa57506115aa84848360208901356108bb6108b68b613464565b6115e0576040517f09bde33900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8760400135896040516020016115f69190613533565b6040516020818303038152906040528051906020012014611643576040517f1968a90200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8460200135886020013560016116599190613571565b14158061168b575060016116738360601c63ffffffff1690565b61167d9190613733565b63ffffffff16856020013514155b156116c2576040517f9a3b119900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6116d0896109d28780613589565b6116d9896121e6565b60006116e48a612b39565b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f0200000000000000000000000000000000000000000000000000000000000000179050600061173b8460a01c63ffffffff1690565b67ffffffffffffffff169050600160026000848152602001908152602001600020600083815260200190815260200160002060006101000a81548160ff021916908315150217905550601760008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008d8152602001908152602001600020546001600084815260200190815260200160002060008381526020019081526020016000208190555061180d8460801c63ffffffff1690565b600083815260208190526040902063ffffffff9190911690556118318d8d81612800565b50505050505050505050505050565b6000828152600260209081526040808320848452909152812054819060ff166118c9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f7072652d696d616765206d757374206578697374000000000000000000000000604482015260640160405180910390fd5b50600083815260208181526040909120546118e5816008613571565b6118f0856020613571565b1061190e5783611901826008613571565b61190b919061371c565b91505b506000938452600160209081526040808620948652939052919092205492909150565b60443560008060088301861061194f5763fe2549876000526004601cfd5b60c083901b6080526088838682378087017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80151908490207effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f02000000000000000000000000000000000000000000000000000000000000001760008181526002602090815260408083208b8452825280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600190811790915584845282528083209a83529981528982209390935590815290819052959095209190915550505050565b60008060008060808860601b81528760c01b6014820152858782601c0137601c860181207effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f0600000000000000000000000000000000000000000000000000000000000000179350604088026260216001603f5a021015611ac35763dd629f866000526004601cfd5b6000808783601c018c5afa94503d6001019150600882018a10611aee5763fe2549876000526004601cfd5b60c082901b81526008018481533d6000600183013e89017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8015160008481526002602090815260408083208d8452825280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600190811790915587845282528083209c83529b81528b8220929092559384528390529790912096909655505050505050565b6000611ba48686610759565b9050611bbd83838360208801356108bb6108b68a613464565b611bf3576040517f09bde33900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b602084013515611c2f576040517f9a3b119900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611c37612c56565b611c45816109d28780613589565b611c4e816121e6565b846040013581604051602001611c649190613533565b6040516020818303038152906040528051906020012003611cb1576040517f9843145b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff87166000908152601560209081526040808320898452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000166001179055611d15878733612800565b50505050505050565b6703782dace9d90000341015611d60576040517fe92c469f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b333214611d99576040517fba092d1600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611da4816008613758565b63ffffffff168263ffffffff1610611de8576040517ffe25498700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000008163ffffffff161015611e48576040517f7b1dafd100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b336000908152601560209081526040808320868452909152902054611e738160801c63ffffffff1690565b63ffffffff1615611eb0576040517f0dc149f000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b608082901b7fffffffffffffffffffffffff00000000ffffffffffffffffffffffffffffffff60a085901b167fffffffffffffffff0000000000000000ffffffffffffffffffffffffffffffff83161717336000818152601560209081526040808320898452825280832094909455835180850185528381528082018981526013805460018101825590855291517f66de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a090600290930292830180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff909216919091179055517f66de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a0919091015591815260168252828120968152959052909320349055505050565b600081600001518260200151836040015160405160200161200d93929190613780565b604051602081830303815290604052805190602001209050919050565b60008160005b601081101561207e578060051b880135600186831c16600181146120635760008481526020839052604090209350612074565b600082815260208590526040902093505b5050600101612030565b5090931495945050505050565b608881511461209957600080fd5b602081016020830161211a565b8260031b8201518060001a8160011a60081b178160021a60101b8260031a60181b17178160041a60201b8260051a60281b178260061a60301b8360071a60381b1717179050612114816120ff868560059190911b015190565b1867ffffffffffffffff16600586901b840152565b50505050565b612126600083836120a6565b612132600183836120a6565b61213e600283836120a6565b61214a600383836120a6565b612156600483836120a6565b612162600583836120a6565b61216e600683836120a6565b61217a600783836120a6565b612186600883836120a6565b612192600983836120a6565b61219e600a83836120a6565b6121aa600b83836120a6565b6121b6600c83836120a6565b6121c2600d83836120a6565b6121ce600e83836120a6565b6121da600f83836120a6565b612114601083836120a6565b6040805178010000000000008082800000000000808a8000000080008000602082015279808b00000000800000018000000080008081800000000000800991810191909152788a00000000000000880000000080008009000000008000000a60608201527b8000808b800000000000008b8000000000008089800000000000800360808201527f80000000000080028000000000000080000000000000800a800000008000000a60a08201527f800000008000808180000000000080800000000080000001800000008000800860c082015260009060e001604051602081830303815290604052905060208201602082016126e0565b600583901b8101518518604085900381901c90851b1867ffffffffffffffff8116600584901b8301525b505050505050565b6102808101516101e082015161014083015160a0840151845118189118186102a082015161020083015161016084015160c0850151602086015118189118186102c083015161022084015161018085015160e0860151604087015118189118186102e08401516102408501516101a0860151610100870151606088015118189118186103008501516102608601516101c0870151610120880151608089015118189118188084603f1c6123cb8660011b67ffffffffffffffff1690565b18188584603f1c6123e68660011b67ffffffffffffffff1690565b18188584603f1c6124018660011b67ffffffffffffffff1690565b181895508483603f1c61241e8560011b67ffffffffffffffff1690565b181894508387603f1c61243b8960011b67ffffffffffffffff1690565b60208b01518b51861867ffffffffffffffff168c5291189190911897508118600181901b603f9190911c18935087925061247b81602c60066001876122dc565b61248b87601460096006876122dc565b61249b86603d60166009876122dc565b6124ab876027600e6016876122dc565b6124bb8260126014600e876122dc565b6124cb86603e60026014876122dc565b6124db86602b600c6002876122dc565b6124eb856019600d600c876122dc565b6124fb8760086013600d876122dc565b61250b85603860176013876122dc565b61251b826029600f6017876122dc565b61252b87601b6004600f876122dc565b61253b87600e60186004876122dc565b61254b81600260156018876122dc565b61255b85603760086015876122dc565b61256b81602d60106008876122dc565b61257b82602460056010876122dc565b61258b85601c60036005876122dc565b61259b85601560126003876122dc565b6125ab86600f60116012876122dc565b6125bb81600a600b6011876122dc565b506125cc8560066007600b866122dc565b6125dc816003600a6007866122dc565b5067ffffffffffffffff8216610140820152612306565b600582811b8201805160018501831b8401805160028701851b8601805160038901871b8801805160048b0190981b8901805167ffffffffffffffff861985168918811690995283198a16861889169096528819861683188816909352841986168818871690528419831684189095169052919391929190611d15565b61267a6000826125f3565b6126856005826125f3565b612690600a826125f3565b61269b600f826125f3565b6126a66014826125f3565b50565b6126b28161230e565b6126bb8161266f565b600383901b820151815160c09190911c9061211490821867ffffffffffffffff168352565b6126ec600082846126a9565b6126f8600182846126a9565b612704600282846126a9565b612710600382846126a9565b61271c600482846126a9565b612728600582846126a9565b612734600682846126a9565b612740600782846126a9565b61274c600882846126a9565b612758600982846126a9565b612764600a82846126a9565b612770600b82846126a9565b61277c600c82846126a9565b612788600d82846126a9565b612794600e82846126a9565b6127a0600f82846126a9565b6127ac601082846126a9565b6127b8601182846126a9565b6127c4601282846126a9565b6127d0601382846126a9565b6127dc601482846126a9565b6127e8601582846126a9565b6127f4601682846126a9565b612114601782846126a9565b73ffffffffffffffffffffffffffffffffffffffff83811660009081526016602090815260408083208684529091528082208054908390559051909284169083908381818185875af1925050503d8060008114612879576040519150601f19603f3d011682016040523d82523d6000602084013e61287e565b606091505b50509050806128b9576040517f83e6cc6b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050505050565b7f01000000000000000000000000000000000000000000000000000000000000007effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff831617612966818360408051600093845233602052918152606090922091527effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f01000000000000000000000000000000000000000000000000000000000000001790565b9392505050565b60606040519050816020820181810182868337608883068080156129b65760888290038501848101848103803687375060806001820353506001845160001a17845386526129cd565b608836843760018353608060878401536088850186525b5050505050601f19603f82510116810160405292915050565b60006129f88260a01c63ffffffff1690565b67ffffffffffffffff1690506000612a168360801c63ffffffff1690565b63ffffffff1690506000612a308460401c63ffffffff1690565b63ffffffff169050600883108015612a46575080155b15612a7a5760c082901b6000908152883560085283513382526017602090815260408084208a855290915290912055612b2f565b60088310158015612a98575080612a9260088561371c565b93508310155b8015612aac5750612aa98782613571565b83105b15612b2f576000612abd828561371c565b905087612acb826020613571565b10158015612ad7575085155b15612b0e576040517ffe25498700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3360009081526017602090815260408083208a845290915290209089013590555b5050505050505050565b6000612bbc565b66ff00ff00ff00ff8160081c1667ff00ff00ff00ff00612b6a8360081b67ffffffffffffffff1690565b1617905065ffff0000ffff8160101c1667ffff0000ffff0000612b978360101b67ffffffffffffffff1690565b1617905060008160201c612bb58360201b67ffffffffffffffff1690565b1792915050565b60808201516020830190612bd490612b40565b612b40565b6040820151612be290612b40565b60401b17612bfa612bcf60018460059190911b015190565b825160809190911b90612c0c90612b40565b60c01b17179392505050565b8260108101928215612c46579160200282015b82811115612c46578251825591602001919060010190612c2b565b50612c52929150612c6e565b5090565b6040518060200160405280612c69612c83565b905290565b5b80821115612c525760008155600101612c6f565b6040518061032001604052806019906020820280368337509192915050565b600060208284031215612cb457600080fd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff81168114612cdf57600080fd5b919050565b60008060408385031215612cf757600080fd5b612d0083612cbb565b946020939093013593505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051610320810167ffffffffffffffff81118282101715612d6157612d61612d0e565b60405290565b6040516060810167ffffffffffffffff81118282101715612d6157612d61612d0e565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715612dd157612dd1612d0e565b604052919050565b803567ffffffffffffffff81168114612cdf57600080fd5b6000610320808385031215612e0557600080fd5b604051602080820182811067ffffffffffffffff82111715612e2957612e29612d0e565b806040525081935085601f860112612e4057600080fd5b612e48612d3d565b928501928087851115612e5a57600080fd5b865b85811015612e7a57612e6d81612dd9565b8352918301918301612e5c565b509092525091949350505050565b600060608284031215612e9a57600080fd5b50919050565b60008083601f840112612eb257600080fd5b50813567ffffffffffffffff811115612eca57600080fd5b6020830191508360208260051b8501011115612ee557600080fd5b9250929050565b60008060008060008060008060006103e08a8c031215612f0b57600080fd5b612f148a612cbb565b985060208a01359750612f2a8b60408c01612df1565b96506103608a013567ffffffffffffffff80821115612f4857600080fd5b612f548d838e01612e88565b97506103808c0135915080821115612f6b57600080fd5b612f778d838e01612ea0565b90975095506103a08c0135915080821115612f9157600080fd5b612f9d8d838e01612e88565b94506103c08c0135915080821115612fb457600080fd5b50612fc18c828d01612ea0565b915080935050809150509295985092959850929598565b600080600080600060a08688031215612ff057600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b60005b8381101561302e578181015183820152602001613016565b838111156121145750506000910152565b602081526000825180602084015261305e816040850160208701613013565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b600080604083850312156130a357600080fd5b50508035926020909101359150565b60008083601f8401126130c457600080fd5b50813567ffffffffffffffff8111156130dc57600080fd5b602083019150836020828501011115612ee557600080fd5b600080600080600080600060a0888a03121561310f57600080fd5b8735965060208801359550604088013567ffffffffffffffff8082111561313557600080fd5b6131418b838c016130b2565b909750955060608a013591508082111561315a57600080fd5b506131678a828b01612ea0565b9094509250506080880135801515811461318057600080fd5b8091505092959891949750929550565b6000806000606084860312156131a557600080fd5b6131ae84612cbb565b95602085013595506040909401359392505050565b6000806000604084860312156131d857600080fd5b83359250602084013567ffffffffffffffff8111156131f657600080fd5b613202868287016130b2565b9497909650939450505050565b600080600080600080600060a0888a03121561322a57600080fd5b8735965060208801359550604088013567ffffffffffffffff8082111561325057600080fd5b61325c8b838c016130b2565b909750955060608a013591508082111561327557600080fd5b506132828a828b016130b2565b989b979a50959894979596608090950135949350505050565b6000806000806000608086880312156132b357600080fd5b853594506132c360208701612cbb565b93506132d160408701612dd9565b9250606086013567ffffffffffffffff8111156132ed57600080fd5b6132f9888289016130b2565b969995985093965092949392505050565b60008060008060006080868803121561332257600080fd5b61332b86612cbb565b945060208601359350604086013567ffffffffffffffff8082111561334f57600080fd5b61335b89838a01612e88565b9450606088013591508082111561337157600080fd5b506132f988828901612ea0565b803563ffffffff81168114612cdf57600080fd5b6000806000606084860312156133a757600080fd5b833592506133b76020850161337e565b91506133c56040850161337e565b90509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361345d5761345d6133fd565b5060010190565b60006060823603121561347657600080fd5b61347e612d67565b823567ffffffffffffffff8082111561349657600080fd5b9084019036601f8301126134a957600080fd5b81356020828211156134bd576134bd612d0e565b6134ed817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f85011601612d8a565b9250818352368183860101111561350357600080fd5b81818501828501376000918301810191909152908352848101359083015250604092830135928101929092525090565b81516103208201908260005b601981101561356857825167ffffffffffffffff1682526020928301929091019060010161353f565b50505092915050565b60008219821115613584576135846133fd565b500190565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18436030181126135be57600080fd5b83018035915067ffffffffffffffff8211156135d957600080fd5b602001915036819003821315612ee557600080fd5b600181815b8085111561364757817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0482111561362d5761362d6133fd565b8085161561363a57918102915b93841c93908002906135f3565b509250929050565b60008261365e5750600161370a565b8161366b5750600061370a565b8160018114613681576002811461368b576136a7565b600191505061370a565b60ff84111561369c5761369c6133fd565b50506001821b61370a565b5060208310610133831016604e8410600b84101617156136ca575081810a61370a565b6136d483836135ee565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821115613706576137066133fd565b0290505b92915050565b6000612966838361364f565b60008282101561372e5761372e6133fd565b500390565b600063ffffffff83811690831681811015613750576137506133fd565b039392505050565b600063ffffffff808316818516808303821115613777576137776133fd565b01949350505050565b60008451613792818460208901613013565b9190910192835250602082015260400191905056fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R`\x046\x10a\x01\xD8W`\x005`\xE0\x1C\x80c\x9DS\xA6H\x11a\x01\x02W\x80c\xDD\xCDX\xDE\x11a\0\x95W\x80c\xEC^\xFC\xBC\x11a\0dW\x80c\xEC^\xFC\xBC\x14a\x06\x81W\x80c\xF3\xF4\x80\xD9\x14a\x06\xA1W\x80c\xFA\xF3{\xC7\x14a\x06\xD4W\x80c\xFE\xF2\xB4\xED\x14a\x06\xE7W`\0\x80\xFD[\x80c\xDD\xCDX\xDE\x14a\x05\xD4W\x80c\xE01\x10\xE1\x14a\x06\x0CW\x80c\xE1Y&\x11\x14a\x06AW\x80c\xEAq9P\x14a\x06aW`\0\x80\xFD[\x80c\xB5\xE7\x15L\x11a\0\xD1W\x80c\xB5\xE7\x15L\x14a\x05UW\x80c\xD1\x854\xB5\x14a\x05lW\x80c\xDA5\xC6d\x14a\x05\x8CW\x80c\xDD$\xF9\xBF\x14a\x05\xA1W`\0\x80\xFD[\x80c\x9DS\xA6H\x14a\x04\x8EW\x80c\x9D~\x87i\x14a\x04\xDDW\x80c\xB2\xE6{\xA8\x14a\x04\xFDW\x80c\xB4\x80\x1Ea\x14a\x055W`\0\x80\xFD[\x80ca#\x8B\xDE\x11a\x01zW\x80cz\xC5Gg\x11a\x01IW\x80cz\xC5Gg\x14a\x03\xCAW\x80c\x85B\xCFP\x14a\x03\xEAW\x80c\x88(V\xEF\x14a\x045W\x80c\x8D\xC4\xBE\x11\x14a\x04nW`\0\x80\xFD[\x80ca#\x8B\xDE\x14a\x03\x1EW\x80ceQ\x92{\x14a\x03VW\x80cpQG.\x14a\x03\x8EW\x80cy\x17\xDE\x1D\x14a\x03\xAAW`\0\x80\xFD[\x80c9\t\xAF\\\x11a\x01\xB6W\x80c9\t\xAF\\\x14a\x02qW\x80cMR\xB4\xC9\x14a\x02\x93W\x80cR\xF0\xF3\xAD\x14a\x02\xA8W\x80cT\xFDMP\x14a\x02\xC8W`\0\x80\xFD[\x80c\x01<\xF0\x8B\x14a\x01\xDDW\x80c\x03Y\xA5c\x14a\x02.W\x80c U\xB3k\x14a\x02\\W[`\0\x80\xFD[4\x80\x15a\x01\xE9W`\0\x80\xFD[Pa\x01\xFDa\x01\xF86`\x04a,\xA2V[a\x07\x14V[`@\x80Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x93\x16\x83R` \x83\x01\x91\x90\x91R\x01[`@Q\x80\x91\x03\x90\xF3[4\x80\x15a\x02:W`\0\x80\xFD[Pa\x02Na\x02I6`\x04a,\xE4V[a\x07YV[`@Q\x90\x81R` \x01a\x02%V[4\x80\x15a\x02hW`\0\x80\xFD[Pa\x02N`\x10\x81V[4\x80\x15a\x02}W`\0\x80\xFD[Pa\x02\x91a\x02\x8C6`\x04a.\xECV[a\x08\x91V[\0[4\x80\x15a\x02\x9FW`\0\x80\xFD[Pa\x02Na\n\xE8V[4\x80\x15a\x02\xB4W`\0\x80\xFD[Pa\x02Na\x02\xC36`\x04a/\xD8V[a\x0B\x03V[4\x80\x15a\x02\xD4W`\0\x80\xFD[Pa\x03\x11`@Q\x80`@\x01`@R\x80`\x05\x81R` \x01\x7F1.1.4\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\x81RP\x81V[`@Qa\x02%\x91\x90a0?V[4\x80\x15a\x03*W`\0\x80\xFD[Pa\x02Na\x0396`\x04a0\x90V[`\x01` \x90\x81R`\0\x92\x83R`@\x80\x84 \x90\x91R\x90\x82R\x90 T\x81V[4\x80\x15a\x03bW`\0\x80\xFD[Pa\x02Na\x03q6`\x04a,\xE4V[`\x15` \x90\x81R`\0\x92\x83R`@\x80\x84 \x90\x91R\x90\x82R\x90 T\x81V[4\x80\x15a\x03\x9AW`\0\x80\xFD[Pa\x02Ng\x03x-\xAC\xE9\xD9\0\0\x81V[4\x80\x15a\x03\xB6W`\0\x80\xFD[Pa\x02\x91a\x03\xC56`\x04a0\xF4V[a\x0B\xD9V[4\x80\x15a\x03\xD6W`\0\x80\xFD[Pa\x02Na\x03\xE56`\x04a,\xA2V[a\x10\xDCV[4\x80\x15a\x03\xF6W`\0\x80\xFD[Pa\x04%a\x04\x056`\x04a0\x90V[`\x02` \x90\x81R`\0\x92\x83R`@\x80\x84 \x90\x91R\x90\x82R\x90 T`\xFF\x16\x81V[`@Q\x90\x15\x15\x81R` \x01a\x02%V[4\x80\x15a\x04AW`\0\x80\xFD[Pa\x04Ua\x04P6`\x04a1\x90V[a\x10\xF3V[`@Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01a\x02%V[4\x80\x15a\x04zW`\0\x80\xFD[Pa\x02\x91a\x04\x896`\x04a1\xC3V[a\x11MV[4\x80\x15a\x04\x9AW`\0\x80\xFD[Pa\x02Na\x04\xA96`\x04a,\xE4V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16`\0\x90\x81R`\x18` \x90\x81R`@\x80\x83 \x93\x83R\x92\x90R T\x90V[4\x80\x15a\x04\xE9W`\0\x80\xFD[Pa\x02\x91a\x04\xF86`\x04a2\x0FV[a\x12HV[4\x80\x15a\x05\tW`\0\x80\xFD[Pa\x02Na\x05\x186`\x04a,\xE4V[`\x17` \x90\x81R`\0\x92\x83R`@\x80\x84 \x90\x91R\x90\x82R\x90 T\x81V[4\x80\x15a\x05AW`\0\x80\xFD[Pa\x02Na\x05P6`\x04a1\x90V[a\x13\xFFV[4\x80\x15a\x05aW`\0\x80\xFD[Pa\x02Nb\x01\x86\xA0\x81V[4\x80\x15a\x05xW`\0\x80\xFD[Pa\x02\x91a\x05\x876`\x04a.\xECV[a\x141V[4\x80\x15a\x05\x98W`\0\x80\xFD[P`\x13Ta\x02NV[4\x80\x15a\x05\xADW`\0\x80\xFD[P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x02NV[4\x80\x15a\x05\xE0W`\0\x80\xFD[Pa\x02Na\x05\xEF6`\x04a,\xE4V[`\x16` \x90\x81R`\0\x92\x83R`@\x80\x84 \x90\x91R\x90\x82R\x90 T\x81V[4\x80\x15a\x06\x18W`\0\x80\xFD[Pa\x06,a\x06'6`\x04a0\x90V[a\x18@V[`@\x80Q\x92\x83R` \x83\x01\x91\x90\x91R\x01a\x02%V[4\x80\x15a\x06MW`\0\x80\xFD[Pa\x02\x91a\x06\\6`\x04a1\xC3V[a\x191V[4\x80\x15a\x06mW`\0\x80\xFD[Pa\x02\x91a\x06|6`\x04a2\x9BV[a\x1A9V[4\x80\x15a\x06\x8DW`\0\x80\xFD[Pa\x02\x91a\x06\x9C6`\x04a3\nV[a\x1B\x98V[4\x80\x15a\x06\xADW`\0\x80\xFD[P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x02NV[a\x02\x91a\x06\xE26`\x04a3\x92V[a\x1D\x1EV[4\x80\x15a\x06\xF3W`\0\x80\xFD[Pa\x02Na\x07\x026`\x04a,\xA2V[`\0` \x81\x90R\x90\x81R`@\x90 T\x81V[`\x13\x81\x81T\x81\x10a\x07$W`\0\x80\xFD[`\0\x91\x82R` \x90\x91 `\x02\x90\x91\x02\x01\x80T`\x01\x90\x91\x01Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x91P\x82V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16`\0\x90\x81R`\x15` \x90\x81R`@\x80\x83 \x84\x84R\x90\x91R\x81 T\x81\x90a\x07\x9C\x90``\x1Cc\xFF\xFF\xFF\xFF\x16\x90V[c\xFF\xFF\xFF\xFF\x16\x90P`\0[`\x10\x81\x10\x15a\x08\x89W\x81`\x01\x16`\x01\x03a\x08/Ws\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x85\x16`\0\x90\x81R`\x14` \x90\x81R`@\x80\x83 \x87\x84R\x90\x91R\x90 \x81`\x10\x81\x10a\x07\xFCWa\x07\xFCa3\xCEV[\x01T`@\x80Q` \x81\x01\x92\x90\x92R\x81\x01\x84\x90R``\x01`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 \x92Pa\x08pV[\x82`\x03\x82`\x10\x81\x10a\x08CWa\x08Ca3\xCEV[\x01T`@\x80Q` \x81\x01\x93\x90\x93R\x82\x01R``\x01`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 \x92P[`\x01\x91\x90\x91\x1C\x90\x80a\x08\x81\x81a4,V[\x91PPa\x07\xA7V[PP\x92\x91PPV[`\0a\x08\x9D\x8A\x8Aa\x07YV[\x90Pa\x08\xC0\x86\x86\x83` \x8B\x015a\x08\xBBa\x08\xB6\x8Da4dV[a\x1F\xEAV[a *V[\x80\x15a\x08\xDEWPa\x08\xDE\x83\x83\x83` \x88\x015a\x08\xBBa\x08\xB6\x8Aa4dV[a\t\x14W`@Q\x7F\t\xBD\xE39\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\x01`@Q\x80\x91\x03\x90\xFD[\x86`@\x015\x88`@Q` \x01a\t*\x91\x90a53V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 \x14a\twW`@Q\x7F\x19h\xA9\x02\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\x01`@Q\x80\x91\x03\x90\xFD[\x83` \x015\x87` \x015`\x01a\t\x8D\x91\x90a5qV[\x14a\t\xC4W`@Q\x7F\x9A;\x11\x99\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\x01`@Q\x80\x91\x03\x90\xFD[a\n\x0C\x88a\t\xD2\x86\x80a5\x89V[\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RPa \x8B\x92PPPV[a\n\x15\x88a!\xE6V[\x83`@\x015\x88`@Q` \x01a\n+\x91\x90a53V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 \x03a\nxW`@Q\x7F\x98C\x14[\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\x01`@Q\x80\x91\x03\x90\xFD[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x8A\x16`\0\x90\x81R`\x15` \x90\x81R`@\x80\x83 \x8C\x84R\x90\x91R\x90 \x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\x16`\x01\x17\x90Ua\n\xDC\x8A\x8A3a(\0V[PPPPPPPPPPV[`\x01a\n\xF6`\x10`\x02a7\x10V[a\x0B\0\x91\x90a7\x1CV[\x81V[`\0a\x0B\x0F\x86\x86a(\xC0V[\x90Pa\x0B\x1C\x83`\x08a5qV[\x82\x10\x15\x80a\x0B*WP` \x83\x11[\x15a\x0BaW`@Q\x7F\xFE%I\x87\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\x01`@Q\x80\x91\x03\x90\xFD[`\0` \x81\x81R`\xC0\x85\x90\x1B\x82R`\x08\x95\x90\x95R\x82Q\x82\x82R`\x02\x86R`@\x80\x83 \x85\x84R\x87R\x80\x83 \x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x16`\x01\x90\x81\x17\x90\x91U\x84\x84R\x87R\x80\x83 \x94\x83R\x93\x86R\x83\x82 U\x81\x81R\x93\x84\x90R\x92 U\x92\x91PPV[``\x81\x15a\x0B\xF2Wa\x0B\xEB\x86\x86a)mV[\x90Pa\x0C,V[\x85\x85\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RP\x92\x93PPPP[3`\0\x90\x81R`\x14` \x90\x81R`@\x80\x83 \x8B\x84R\x90\x91R\x80\x82 \x81Qa\x02\0\x81\x01\x92\x83\x90R\x91`\x10\x90\x82\x84[\x81T\x81R` \x01\x90`\x01\x01\x90\x80\x83\x11a\x0CYWPPPPP\x90P`\0`\x15`\x003s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81R` \x01\x90\x81R` \x01`\0 `\0\x8B\x81R` \x01\x90\x81R` \x01`\0 T\x90P`\0a\x0C\xDA\x82``\x1Cc\xFF\xFF\xFF\xFF\x16\x90V[c\xFF\xFF\xFF\xFF\x16\x90P32\x14a\r\x1BW`@Q\x7F\xBA\t-\x16\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\x01`@Q\x80\x91\x03\x90\xFD[a\r+\x82`\x80\x1Cc\xFF\xFF\xFF\xFF\x16\x90V[c\xFF\xFF\xFF\xFF\x16`\0\x03a\rjW`@Q\x7F\x87\x13\x8D\\\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\x01`@Q\x80\x91\x03\x90\xFD[a\rt\x82`\xC0\x1C\x90V[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x15a\r\xB5W`@Q\x7FGZ%5\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\x01`@Q\x80\x91\x03\x90\xFD[\x89\x81\x14a\r\xEEW`@Q\x7F`\xF9]Z\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\x01`@Q\x80\x91\x03\x90\xFD[a\r\xFB\x89\x89\x8D\x88\x86a)\xE6V[\x83Q` \x85\x01`\x88\x82\x04\x88\x14\x15`\x88\x83\x06\x17\x15a\x0E Wc\x07\xB1\xDA\xF1`\0R`\x04`\x1C\xFD[`@Q`\xC8\x81\x01`@R`\0[\x83\x81\x10\x15a\x0E\xD0W\x80\x83\x01\x80Q\x83R` \x81\x01Q` \x84\x01R`@\x81\x01Q`@\x84\x01R``\x81\x01Q``\x84\x01R`\x80\x81\x01Q`\x80\x84\x01RP\x84`\x88\x83\x01R`\x88\x81\x04`\x05\x1B\x8B\x015`\xA8\x83\x01R`\xC8\x82 `\x01\x86\x01\x95P\x85`\0[a\x02\0\x81\x10\x15a\x0E\xC5W`\x01\x82\x16\x15a\x0E\xA5W\x82\x81\x8B\x01Ra\x0E\xC5V[\x89\x81\x01Q`\0\x90\x81R` \x93\x84R`@\x90 \x92`\x01\x92\x90\x92\x1C\x91\x01a\x0E\x88V[PPP`\x88\x01a\x0E-V[PPPP`\x01`\x10`\x02a\x0E\xE4\x91\x90a7\x10V[a\x0E\xEE\x91\x90a7\x1CV[\x81\x11\x15a\x0F'W`@Q\x7Fb)W#\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\x01`@Q\x80\x91\x03\x90\xFD[a\x0F\x9Ca\x0F:\x83`@\x1Cc\xFF\xFF\xFF\xFF\x16\x90V[a\x0FJ\x90c\xFF\xFF\xFF\xFF\x16\x8Aa5qV[`@\x1B\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF``\x84\x90\x1B\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x85\x16\x17\x17\x90V[\x91P\x84\x15a\x10)Ww\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16B`\xC0\x1B\x17\x91Pa\x0F\xD6\x82`\x80\x1Cc\xFF\xFF\xFF\xFF\x16\x90V[c\xFF\xFF\xFF\xFF\x16a\x0F\xEC\x83`@\x1Cc\xFF\xFF\xFF\xFF\x16\x90V[c\xFF\xFF\xFF\xFF\x16\x14a\x10)W`@Q\x7F{\x1D\xAF\xD1\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\x01`@Q\x80\x91\x03\x90\xFD[3`\0\x90\x81R`\x14` \x90\x81R`@\x80\x83 \x8E\x84R\x90\x91R\x90 a\x10O\x90\x84`\x10a,\x18V[P3`\0\x81\x81R`\x18` \x90\x81R`@\x80\x83 \x8F\x84R\x82R\x80\x83 \x80T`\x01\x81\x01\x82U\x90\x84R\x82\x84 `\x04\x82\x04\x01\x80T`\x03\x90\x92\x16`\x08\x02a\x01\0\ng\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x81\x02\x19\x90\x93\x16C\x90\x93\x16\x02\x91\x90\x91\x17\x90U\x83\x83R`\x15\x82R\x80\x83 \x8F\x84R\x90\x91R\x81 \x84\x90U``\x91\x90\x91\x1B\x81R6\x90`\x1476`\x14\x01`\0\xA0PPPPPPPPPPPV[`\x03\x81`\x10\x81\x10a\x10\xECW`\0\x80\xFD[\x01T\x90P\x81V[`\x18` R\x82`\0R`@`\0 ` R\x81`\0R`@`\0 \x81\x81T\x81\x10a\x11\x1BW`\0\x80\xFD[\x90`\0R` `\0 \x90`\x04\x91\x82\x82\x04\x01\x91\x90\x06`\x08\x02\x92P\x92PP\x90T\x90a\x01\0\n\x90\x04g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[`D5`\0\x80`\x08\x83\x01\x86\x10a\x11kWc\xFE%I\x87`\0R`\x04`\x1C\xFD[`\xC0\x83\x90\x1B`\x80R`\x88\x83\x86\x827\x86`\x08\x82\x03\x01Q\x91P` `\0\x85\x83`\x02Z\xFA\x90P\x80a\x11\x98W`\0\x80\xFD[P`\0\x80Q~\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\x04\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x17\x80\x82R`\x02` \x90\x81R`@\x80\x84 \x8A\x85R\x82R\x80\x84 \x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x16`\x01\x90\x81\x17\x90\x91U\x83\x85R\x82R\x80\x84 \x99\x84R\x98\x81R\x88\x83 \x93\x90\x93U\x81R\x90\x81\x90R\x94\x90\x94 UPPPV[`\0\x80`0\x87`\x007` `\0`0`\0`\x02Z\xFA\x80a\x12pWc\xF9\x11)i`\0R`\x04`\x1C\xFD[`\0Q~\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x17`\x80\x81\x81R`\xA0\x8C\x90R`\xC0\x8B\x90R`0\x8A`\xE07`0\x88`\x90\x83\x017`\0\x80`\xC0\x83`\nZ\xFA\x92P\x82a\x12\xF2Wc\t\xBD\xE39`\0R`\x04`\x1C\xFD[`(\x86\x10a\x13\x08Wc\xFE%I\x87`\0R`\x04`\x1C\xFD[`\0`(\x82\x01Rx \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`\x08\x81\x01\x8B\x90R\x85\x81\x01Q\x93P`0\x8A\x827`0\x81\x01\x9B\x90\x9BRPP`P\x90\x98 ~\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\x05\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x17`\0\x81\x81R`\x02` \x90\x81R`@\x80\x83 \x86\x84R\x82R\x80\x83 \x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x16`\x01\x90\x81\x17\x90\x91U\x84\x84R\x82R\x80\x83 \x95\x83R\x94\x81R\x84\x82 \x9A\x90\x9AU\x90\x81R\x80\x89R\x91\x90\x91 \x96\x90\x96UPPPPPPV[`\x14` R\x82`\0R`@`\0 ` R\x81`\0R`@`\0 \x81`\x10\x81\x10a\x14'W`\0\x80\xFD[\x01T\x92P\x83\x91PPV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x89\x16`\0\x90\x81R`\x15` \x90\x81R`@\x80\x83 \x8B\x84R\x90\x91R\x90 Tg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x15a\x14\xA4W`@Q\x7F\xC34\xF0i\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\x01`@Q\x80\x91\x03\x90\xFD[a\x14\xAE\x81`\xC0\x1C\x90V[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\0\x03a\x14\xF1W`@Q\x7FU\xD4\xCB\xF9\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\x01`@Q\x80\x91\x03\x90\xFD[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x15\x1C\x82`\xC0\x1C\x90V[a\x150\x90g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16Ba7\x1CV[\x11a\x15gW`@Q\x7FU\xD4\xCB\xF9\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\x01`@Q\x80\x91\x03\x90\xFD[`\0a\x15s\x8B\x8Ba\x07YV[\x90Pa\x15\x8C\x87\x87\x83` \x8C\x015a\x08\xBBa\x08\xB6\x8Ea4dV[\x80\x15a\x15\xAAWPa\x15\xAA\x84\x84\x83` \x89\x015a\x08\xBBa\x08\xB6\x8Ba4dV[a\x15\xE0W`@Q\x7F\t\xBD\xE39\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\x01`@Q\x80\x91\x03\x90\xFD[\x87`@\x015\x89`@Q` \x01a\x15\xF6\x91\x90a53V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 \x14a\x16CW`@Q\x7F\x19h\xA9\x02\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\x01`@Q\x80\x91\x03\x90\xFD[\x84` \x015\x88` \x015`\x01a\x16Y\x91\x90a5qV[\x14\x15\x80a\x16\x8BWP`\x01a\x16s\x83``\x1Cc\xFF\xFF\xFF\xFF\x16\x90V[a\x16}\x91\x90a73V[c\xFF\xFF\xFF\xFF\x16\x85` \x015\x14\x15[\x15a\x16\xC2W`@Q\x7F\x9A;\x11\x99\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\x01`@Q\x80\x91\x03\x90\xFD[a\x16\xD0\x89a\t\xD2\x87\x80a5\x89V[a\x16\xD9\x89a!\xE6V[`\0a\x16\xE4\x8Aa+9V[~\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\x02\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x17\x90P`\0a\x17;\x84`\xA0\x1Cc\xFF\xFF\xFF\xFF\x16\x90V[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90P`\x01`\x02`\0\x84\x81R` \x01\x90\x81R` \x01`\0 `\0\x83\x81R` \x01\x90\x81R` \x01`\0 `\0a\x01\0\n\x81T\x81`\xFF\x02\x19\x16\x90\x83\x15\x15\x02\x17\x90UP`\x17`\0\x8Es\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81R` \x01\x90\x81R` \x01`\0 `\0\x8D\x81R` \x01\x90\x81R` \x01`\0 T`\x01`\0\x84\x81R` \x01\x90\x81R` \x01`\0 `\0\x83\x81R` \x01\x90\x81R` \x01`\0 \x81\x90UPa\x18\r\x84`\x80\x1Cc\xFF\xFF\xFF\xFF\x16\x90V[`\0\x83\x81R` \x81\x90R`@\x90 c\xFF\xFF\xFF\xFF\x91\x90\x91\x16\x90Ua\x181\x8D\x8D\x81a(\0V[PPPPPPPPPPPPPV[`\0\x82\x81R`\x02` \x90\x81R`@\x80\x83 \x84\x84R\x90\x91R\x81 T\x81\x90`\xFF\x16a\x18\xC9W`@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\x82\x01R`\x14`$\x82\x01R\x7Fpre-image must exist\0\0\0\0\0\0\0\0\0\0\0\0`D\x82\x01R`d\x01`@Q\x80\x91\x03\x90\xFD[P`\0\x83\x81R` \x81\x81R`@\x90\x91 Ta\x18\xE5\x81`\x08a5qV[a\x18\xF0\x85` a5qV[\x10a\x19\x0EW\x83a\x19\x01\x82`\x08a5qV[a\x19\x0B\x91\x90a7\x1CV[\x91P[P`\0\x93\x84R`\x01` \x90\x81R`@\x80\x86 \x94\x86R\x93\x90R\x91\x90\x92 T\x92\x90\x91PV[`D5`\0\x80`\x08\x83\x01\x86\x10a\x19OWc\xFE%I\x87`\0R`\x04`\x1C\xFD[`\xC0\x83\x90\x1B`\x80R`\x88\x83\x86\x827\x80\x87\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF8\x01Q\x90\x84\x90 ~\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\x02\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x17`\0\x81\x81R`\x02` \x90\x81R`@\x80\x83 \x8B\x84R\x82R\x80\x83 \x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x16`\x01\x90\x81\x17\x90\x91U\x84\x84R\x82R\x80\x83 \x9A\x83R\x99\x81R\x89\x82 \x93\x90\x93U\x90\x81R\x90\x81\x90R\x95\x90\x95 \x91\x90\x91UPPPPV[`\0\x80`\0\x80`\x80\x88``\x1B\x81R\x87`\xC0\x1B`\x14\x82\x01R\x85\x87\x82`\x1C\x017`\x1C\x86\x01\x81 ~\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\x06\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x17\x93P`@\x88\x02b`!`\x01`?Z\x02\x10\x15a\x1A\xC3Wc\xDDb\x9F\x86`\0R`\x04`\x1C\xFD[`\0\x80\x87\x83`\x1C\x01\x8CZ\xFA\x94P=`\x01\x01\x91P`\x08\x82\x01\x8A\x10a\x1A\xEEWc\xFE%I\x87`\0R`\x04`\x1C\xFD[`\xC0\x82\x90\x1B\x81R`\x08\x01\x84\x81S=`\0`\x01\x83\x01>\x89\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF8\x01Q`\0\x84\x81R`\x02` \x90\x81R`@\x80\x83 \x8D\x84R\x82R\x80\x83 \x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x16`\x01\x90\x81\x17\x90\x91U\x87\x84R\x82R\x80\x83 \x9C\x83R\x9B\x81R\x8B\x82 \x92\x90\x92U\x93\x84R\x83\x90R\x97\x90\x91 \x96\x90\x96UPPPPPPV[`\0a\x1B\xA4\x86\x86a\x07YV[\x90Pa\x1B\xBD\x83\x83\x83` \x88\x015a\x08\xBBa\x08\xB6\x8Aa4dV[a\x1B\xF3W`@Q\x7F\t\xBD\xE39\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\x01`@Q\x80\x91\x03\x90\xFD[` \x84\x015\x15a\x1C/W`@Q\x7F\x9A;\x11\x99\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\x01`@Q\x80\x91\x03\x90\xFD[a\x1C7a,VV[a\x1CE\x81a\t\xD2\x87\x80a5\x89V[a\x1CN\x81a!\xE6V[\x84`@\x015\x81`@Q` \x01a\x1Cd\x91\x90a53V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 \x03a\x1C\xB1W`@Q\x7F\x98C\x14[\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\x01`@Q\x80\x91\x03\x90\xFD[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x16`\0\x90\x81R`\x15` \x90\x81R`@\x80\x83 \x89\x84R\x90\x91R\x90 \x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\x16`\x01\x17\x90Ua\x1D\x15\x87\x873a(\0V[PPPPPPPV[g\x03x-\xAC\xE9\xD9\0\x004\x10\x15a\x1D`W`@Q\x7F\xE9,F\x9F\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\x01`@Q\x80\x91\x03\x90\xFD[32\x14a\x1D\x99W`@Q\x7F\xBA\t-\x16\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\x01`@Q\x80\x91\x03\x90\xFD[a\x1D\xA4\x81`\x08a7XV[c\xFF\xFF\xFF\xFF\x16\x82c\xFF\xFF\xFF\xFF\x16\x10a\x1D\xE8W`@Q\x7F\xFE%I\x87\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\x01`@Q\x80\x91\x03\x90\xFD[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81c\xFF\xFF\xFF\xFF\x16\x10\x15a\x1EHW`@Q\x7F{\x1D\xAF\xD1\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\x01`@Q\x80\x91\x03\x90\xFD[3`\0\x90\x81R`\x15` \x90\x81R`@\x80\x83 \x86\x84R\x90\x91R\x90 Ta\x1Es\x81`\x80\x1Cc\xFF\xFF\xFF\xFF\x16\x90V[c\xFF\xFF\xFF\xFF\x16\x15a\x1E\xB0W`@Q\x7F\r\xC1I\xF0\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\x01`@Q\x80\x91\x03\x90\xFD[`\x80\x82\x90\x1B\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF`\xA0\x85\x90\x1B\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x16\x17\x173`\0\x81\x81R`\x15` \x90\x81R`@\x80\x83 \x89\x84R\x82R\x80\x83 \x94\x90\x94U\x83Q\x80\x85\x01\x85R\x83\x81R\x80\x82\x01\x89\x81R`\x13\x80T`\x01\x81\x01\x82U\x90\x85R\x91Q\x7Ff\xDE\x8F\xFD\xA7\x97\xE3\xDE\x9C\x05\xE8\xFCW\xB3\xBF\x0E\xC2\x8A\x93\r@\xB0\xD2\x85\xD9<\x06P\x1C\xF6\xA0\x90`\x02\x90\x93\x02\x92\x83\x01\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x92\x16\x91\x90\x91\x17\x90UQ\x7Ff\xDE\x8F\xFD\xA7\x97\xE3\xDE\x9C\x05\xE8\xFCW\xB3\xBF\x0E\xC2\x8A\x93\r@\xB0\xD2\x85\xD9<\x06P\x1C\xF6\xA0\x91\x90\x91\x01U\x91\x81R`\x16\x82R\x82\x81 \x96\x81R\x95\x90R\x90\x93 4\x90UPPPV[`\0\x81`\0\x01Q\x82` \x01Q\x83`@\x01Q`@Q` \x01a \r\x93\x92\x91\x90a7\x80V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 \x90P\x91\x90PV[`\0\x81`\0[`\x10\x81\x10\x15a ~W\x80`\x05\x1B\x88\x015`\x01\x86\x83\x1C\x16`\x01\x81\x14a cW`\0\x84\x81R` \x83\x90R`@\x90 \x93Pa tV[`\0\x82\x81R` \x85\x90R`@\x90 \x93P[PP`\x01\x01a 0V[P\x90\x93\x14\x95\x94PPPPPV[`\x88\x81Q\x14a \x99W`\0\x80\xFD[` \x81\x01` \x83\x01a!\x1AV[\x82`\x03\x1B\x82\x01Q\x80`\0\x1A\x81`\x01\x1A`\x08\x1B\x17\x81`\x02\x1A`\x10\x1B\x82`\x03\x1A`\x18\x1B\x17\x17\x81`\x04\x1A` \x1B\x82`\x05\x1A`(\x1B\x17\x82`\x06\x1A`0\x1B\x83`\x07\x1A`8\x1B\x17\x17\x17\x90Pa!\x14\x81a \xFF\x86\x85`\x05\x91\x90\x91\x1B\x01Q\x90V[\x18g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\x05\x86\x90\x1B\x84\x01RV[PPPPV[a!&`\0\x83\x83a \xA6V[a!2`\x01\x83\x83a \xA6V[a!>`\x02\x83\x83a \xA6V[a!J`\x03\x83\x83a \xA6V[a!V`\x04\x83\x83a \xA6V[a!b`\x05\x83\x83a \xA6V[a!n`\x06\x83\x83a \xA6V[a!z`\x07\x83\x83a \xA6V[a!\x86`\x08\x83\x83a \xA6V[a!\x92`\t\x83\x83a \xA6V[a!\x9E`\n\x83\x83a \xA6V[a!\xAA`\x0B\x83\x83a \xA6V[a!\xB6`\x0C\x83\x83a \xA6V[a!\xC2`\r\x83\x83a \xA6V[a!\xCE`\x0E\x83\x83a \xA6V[a!\xDA`\x0F\x83\x83a \xA6V[a!\x14`\x10\x83\x83a \xA6V[`@\x80Qx\x01\0\0\0\0\0\0\x80\x82\x80\0\0\0\0\0\x80\x8A\x80\0\0\0\x80\0\x80\0` \x82\x01Ry\x80\x8B\0\0\0\0\x80\0\0\x01\x80\0\0\0\x80\0\x80\x81\x80\0\0\0\0\0\x80\t\x91\x81\x01\x91\x90\x91Rx\x8A\0\0\0\0\0\0\0\x88\0\0\0\0\x80\0\x80\t\0\0\0\0\x80\0\0\n``\x82\x01R{\x80\0\x80\x8B\x80\0\0\0\0\0\0\x8B\x80\0\0\0\0\0\x80\x89\x80\0\0\0\0\0\x80\x03`\x80\x82\x01R\x7F\x80\0\0\0\0\0\x80\x02\x80\0\0\0\0\0\0\x80\0\0\0\0\0\0\x80\n\x80\0\0\0\x80\0\0\n`\xA0\x82\x01R\x7F\x80\0\0\0\x80\0\x80\x81\x80\0\0\0\0\0\x80\x80\0\0\0\0\x80\0\0\x01\x80\0\0\0\x80\0\x80\x08`\xC0\x82\x01R`\0\x90`\xE0\x01`@Q` \x81\x83\x03\x03\x81R\x90`@R\x90P` \x82\x01` \x82\x01a&\xE0V[`\x05\x83\x90\x1B\x81\x01Q\x85\x18`@\x85\x90\x03\x81\x90\x1C\x90\x85\x1B\x18g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16`\x05\x84\x90\x1B\x83\x01R[PPPPPPV[a\x02\x80\x81\x01Qa\x01\xE0\x82\x01Qa\x01@\x83\x01Q`\xA0\x84\x01Q\x84Q\x18\x18\x91\x18\x18a\x02\xA0\x82\x01Qa\x02\0\x83\x01Qa\x01`\x84\x01Q`\xC0\x85\x01Q` \x86\x01Q\x18\x18\x91\x18\x18a\x02\xC0\x83\x01Qa\x02 \x84\x01Qa\x01\x80\x85\x01Q`\xE0\x86\x01Q`@\x87\x01Q\x18\x18\x91\x18\x18a\x02\xE0\x84\x01Qa\x02@\x85\x01Qa\x01\xA0\x86\x01Qa\x01\0\x87\x01Q``\x88\x01Q\x18\x18\x91\x18\x18a\x03\0\x85\x01Qa\x02`\x86\x01Qa\x01\xC0\x87\x01Qa\x01 \x88\x01Q`\x80\x89\x01Q\x18\x18\x91\x18\x18\x80\x84`?\x1Ca#\xCB\x86`\x01\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90V[\x18\x18\x85\x84`?\x1Ca#\xE6\x86`\x01\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90V[\x18\x18\x85\x84`?\x1Ca$\x01\x86`\x01\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90V[\x18\x18\x95P\x84\x83`?\x1Ca$\x1E\x85`\x01\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90V[\x18\x18\x94P\x83\x87`?\x1Ca$;\x89`\x01\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90V[` \x8B\x01Q\x8BQ\x86\x18g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x8CR\x91\x18\x91\x90\x91\x18\x97P\x81\x18`\x01\x81\x90\x1B`?\x91\x90\x91\x1C\x18\x93P\x87\x92Pa${\x81`,`\x06`\x01\x87a\"\xDCV[a$\x8B\x87`\x14`\t`\x06\x87a\"\xDCV[a$\x9B\x86`=`\x16`\t\x87a\"\xDCV[a$\xAB\x87`'`\x0E`\x16\x87a\"\xDCV[a$\xBB\x82`\x12`\x14`\x0E\x87a\"\xDCV[a$\xCB\x86`>`\x02`\x14\x87a\"\xDCV[a$\xDB\x86`+`\x0C`\x02\x87a\"\xDCV[a$\xEB\x85`\x19`\r`\x0C\x87a\"\xDCV[a$\xFB\x87`\x08`\x13`\r\x87a\"\xDCV[a%\x0B\x85`8`\x17`\x13\x87a\"\xDCV[a%\x1B\x82`)`\x0F`\x17\x87a\"\xDCV[a%+\x87`\x1B`\x04`\x0F\x87a\"\xDCV[a%;\x87`\x0E`\x18`\x04\x87a\"\xDCV[a%K\x81`\x02`\x15`\x18\x87a\"\xDCV[a%[\x85`7`\x08`\x15\x87a\"\xDCV[a%k\x81`-`\x10`\x08\x87a\"\xDCV[a%{\x82`$`\x05`\x10\x87a\"\xDCV[a%\x8B\x85`\x1C`\x03`\x05\x87a\"\xDCV[a%\x9B\x85`\x15`\x12`\x03\x87a\"\xDCV[a%\xAB\x86`\x0F`\x11`\x12\x87a\"\xDCV[a%\xBB\x81`\n`\x0B`\x11\x87a\"\xDCV[Pa%\xCC\x85`\x06`\x07`\x0B\x86a\"\xDCV[a%\xDC\x81`\x03`\n`\x07\x86a\"\xDCV[Pg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16a\x01@\x82\x01Ra#\x06V[`\x05\x82\x81\x1B\x82\x01\x80Q`\x01\x85\x01\x83\x1B\x84\x01\x80Q`\x02\x87\x01\x85\x1B\x86\x01\x80Q`\x03\x89\x01\x87\x1B\x88\x01\x80Q`\x04\x8B\x01\x90\x98\x1B\x89\x01\x80Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x86\x19\x85\x16\x89\x18\x81\x16\x90\x99R\x83\x19\x8A\x16\x86\x18\x89\x16\x90\x96R\x88\x19\x86\x16\x83\x18\x88\x16\x90\x93R\x84\x19\x86\x16\x88\x18\x87\x16\x90R\x84\x19\x83\x16\x84\x18\x90\x95\x16\x90R\x91\x93\x91\x92\x91\x90a\x1D\x15V[a&z`\0\x82a%\xF3V[a&\x85`\x05\x82a%\xF3V[a&\x90`\n\x82a%\xF3V[a&\x9B`\x0F\x82a%\xF3V[a&\xA6`\x14\x82a%\xF3V[PV[a&\xB2\x81a#\x0EV[a&\xBB\x81a&oV[`\x03\x83\x90\x1B\x82\x01Q\x81Q`\xC0\x91\x90\x91\x1C\x90a!\x14\x90\x82\x18g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x83RV[a&\xEC`\0\x82\x84a&\xA9V[a&\xF8`\x01\x82\x84a&\xA9V[a'\x04`\x02\x82\x84a&\xA9V[a'\x10`\x03\x82\x84a&\xA9V[a'\x1C`\x04\x82\x84a&\xA9V[a'(`\x05\x82\x84a&\xA9V[a'4`\x06\x82\x84a&\xA9V[a'@`\x07\x82\x84a&\xA9V[a'L`\x08\x82\x84a&\xA9V[a'X`\t\x82\x84a&\xA9V[a'd`\n\x82\x84a&\xA9V[a'p`\x0B\x82\x84a&\xA9V[a'|`\x0C\x82\x84a&\xA9V[a'\x88`\r\x82\x84a&\xA9V[a'\x94`\x0E\x82\x84a&\xA9V[a'\xA0`\x0F\x82\x84a&\xA9V[a'\xAC`\x10\x82\x84a&\xA9V[a'\xB8`\x11\x82\x84a&\xA9V[a'\xC4`\x12\x82\x84a&\xA9V[a'\xD0`\x13\x82\x84a&\xA9V[a'\xDC`\x14\x82\x84a&\xA9V[a'\xE8`\x15\x82\x84a&\xA9V[a'\xF4`\x16\x82\x84a&\xA9V[a!\x14`\x17\x82\x84a&\xA9V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x81\x16`\0\x90\x81R`\x16` \x90\x81R`@\x80\x83 \x86\x84R\x90\x91R\x80\x82 \x80T\x90\x83\x90U\x90Q\x90\x92\x84\x16\x90\x83\x90\x83\x81\x81\x81\x85\x87Z\xF1\x92PPP=\x80`\0\x81\x14a(yW`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=`\0` \x84\x01>a(~V[``\x91P[PP\x90P\x80a(\xB9W`@Q\x7F\x83\xE6\xCCk\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\x01`@Q\x80\x91\x03\x90\xFD[PPPPPV[\x7F\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0~\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x16\x17a)f\x81\x83`@\x80Q`\0\x93\x84R3` R\x91\x81R``\x90\x92 \x91R~\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x17\x90V[\x93\x92PPPV[```@Q\x90P\x81` \x82\x01\x81\x81\x01\x82\x86\x837`\x88\x83\x06\x80\x80\x15a)\xB6W`\x88\x82\x90\x03\x85\x01\x84\x81\x01\x84\x81\x03\x806\x877P`\x80`\x01\x82\x03SP`\x01\x84Q`\0\x1A\x17\x84S\x86Ra)\xCDV[`\x886\x847`\x01\x83S`\x80`\x87\x84\x01S`\x88\x85\x01\x86R[PPPPP`\x1F\x19`?\x82Q\x01\x16\x81\x01`@R\x92\x91PPV[`\0a)\xF8\x82`\xA0\x1Cc\xFF\xFF\xFF\xFF\x16\x90V[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90P`\0a*\x16\x83`\x80\x1Cc\xFF\xFF\xFF\xFF\x16\x90V[c\xFF\xFF\xFF\xFF\x16\x90P`\0a*0\x84`@\x1Cc\xFF\xFF\xFF\xFF\x16\x90V[c\xFF\xFF\xFF\xFF\x16\x90P`\x08\x83\x10\x80\x15a*FWP\x80\x15[\x15a*zW`\xC0\x82\x90\x1B`\0\x90\x81R\x885`\x08R\x83Q3\x82R`\x17` \x90\x81R`@\x80\x84 \x8A\x85R\x90\x91R\x90\x91 Ua+/V[`\x08\x83\x10\x15\x80\x15a*\x98WP\x80a*\x92`\x08\x85a7\x1CV[\x93P\x83\x10\x15[\x80\x15a*\xACWPa*\xA9\x87\x82a5qV[\x83\x10[\x15a+/W`\0a*\xBD\x82\x85a7\x1CV[\x90P\x87a*\xCB\x82` a5qV[\x10\x15\x80\x15a*\xD7WP\x85\x15[\x15a+\x0EW`@Q\x7F\xFE%I\x87\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\x01`@Q\x80\x91\x03\x90\xFD[3`\0\x90\x81R`\x17` \x90\x81R`@\x80\x83 \x8A\x84R\x90\x91R\x90 \x90\x89\x015\x90U[PPPPPPPPV[`\0a+\xBCV[f\xFF\0\xFF\0\xFF\0\xFF\x81`\x08\x1C\x16g\xFF\0\xFF\0\xFF\0\xFF\0a+j\x83`\x08\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90V[\x16\x17\x90Pe\xFF\xFF\0\0\xFF\xFF\x81`\x10\x1C\x16g\xFF\xFF\0\0\xFF\xFF\0\0a+\x97\x83`\x10\x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90V[\x16\x17\x90P`\0\x81` \x1Ca+\xB5\x83` \x1Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90V[\x17\x92\x91PPV[`\x80\x82\x01Q` \x83\x01\x90a+\xD4\x90a+@V[a+@V[`@\x82\x01Qa+\xE2\x90a+@V[`@\x1B\x17a+\xFAa+\xCF`\x01\x84`\x05\x91\x90\x91\x1B\x01Q\x90V[\x82Q`\x80\x91\x90\x91\x1B\x90a,\x0C\x90a+@V[`\xC0\x1B\x17\x17\x93\x92PPPV[\x82`\x10\x81\x01\x92\x82\x15a,FW\x91` \x02\x82\x01[\x82\x81\x11\x15a,FW\x82Q\x82U\x91` \x01\x91\x90`\x01\x01\x90a,+V[Pa,R\x92\x91Pa,nV[P\x90V[`@Q\x80` \x01`@R\x80a,ia,\x83V[\x90R\x90V[[\x80\x82\x11\x15a,RW`\0\x81U`\x01\x01a,oV[`@Q\x80a\x03 \x01`@R\x80`\x19\x90` \x82\x02\x806\x837P\x91\x92\x91PPV[`\0` \x82\x84\x03\x12\x15a,\xB4W`\0\x80\xFD[P5\x91\x90PV[\x805s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a,\xDFW`\0\x80\xFD[\x91\x90PV[`\0\x80`@\x83\x85\x03\x12\x15a,\xF7W`\0\x80\xFD[a-\0\x83a,\xBBV[\x94` \x93\x90\x93\x015\x93PPPV[\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[`@Qa\x03 \x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a-aWa-aa-\x0EV[`@R\x90V[`@Q``\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a-aWa-aa-\x0EV[`@Q`\x1F\x82\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a-\xD1Wa-\xD1a-\x0EV[`@R\x91\x90PV[\x805g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a,\xDFW`\0\x80\xFD[`\0a\x03 \x80\x83\x85\x03\x12\x15a.\x05W`\0\x80\xFD[`@Q` \x80\x82\x01\x82\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17\x15a.)Wa.)a-\x0EV[\x80`@RP\x81\x93P\x85`\x1F\x86\x01\x12a.@W`\0\x80\xFD[a.Ha-=V[\x92\x85\x01\x92\x80\x87\x85\x11\x15a.ZW`\0\x80\xFD[\x86[\x85\x81\x10\x15a.zWa.m\x81a-\xD9V[\x83R\x91\x83\x01\x91\x83\x01a.\\V[P\x90\x92RP\x91\x94\x93PPPPV[`\0``\x82\x84\x03\x12\x15a.\x9AW`\0\x80\xFD[P\x91\x90PV[`\0\x80\x83`\x1F\x84\x01\x12a.\xB2W`\0\x80\xFD[P\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a.\xCAW`\0\x80\xFD[` \x83\x01\x91P\x83` \x82`\x05\x1B\x85\x01\x01\x11\x15a.\xE5W`\0\x80\xFD[\x92P\x92\x90PV[`\0\x80`\0\x80`\0\x80`\0\x80`\0a\x03\xE0\x8A\x8C\x03\x12\x15a/\x0BW`\0\x80\xFD[a/\x14\x8Aa,\xBBV[\x98P` \x8A\x015\x97Pa/*\x8B`@\x8C\x01a-\xF1V[\x96Pa\x03`\x8A\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a/HW`\0\x80\xFD[a/T\x8D\x83\x8E\x01a.\x88V[\x97Pa\x03\x80\x8C\x015\x91P\x80\x82\x11\x15a/kW`\0\x80\xFD[a/w\x8D\x83\x8E\x01a.\xA0V[\x90\x97P\x95Pa\x03\xA0\x8C\x015\x91P\x80\x82\x11\x15a/\x91W`\0\x80\xFD[a/\x9D\x8D\x83\x8E\x01a.\x88V[\x94Pa\x03\xC0\x8C\x015\x91P\x80\x82\x11\x15a/\xB4W`\0\x80\xFD[Pa/\xC1\x8C\x82\x8D\x01a.\xA0V[\x91P\x80\x93PP\x80\x91PP\x92\x95\x98P\x92\x95\x98P\x92\x95\x98V[`\0\x80`\0\x80`\0`\xA0\x86\x88\x03\x12\x15a/\xF0W`\0\x80\xFD[PP\x835\x95` \x85\x015\x95P`@\x85\x015\x94``\x81\x015\x94P`\x80\x015\x92P\x90PV[`\0[\x83\x81\x10\x15a0.W\x81\x81\x01Q\x83\x82\x01R` \x01a0\x16V[\x83\x81\x11\x15a!\x14WPP`\0\x91\x01RV[` \x81R`\0\x82Q\x80` \x84\x01Ra0^\x81`@\x85\x01` \x87\x01a0\x13V[`\x1F\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x91\x90\x91\x01`@\x01\x92\x91PPV[`\0\x80`@\x83\x85\x03\x12\x15a0\xA3W`\0\x80\xFD[PP\x805\x92` \x90\x91\x015\x91PV[`\0\x80\x83`\x1F\x84\x01\x12a0\xC4W`\0\x80\xFD[P\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a0\xDCW`\0\x80\xFD[` \x83\x01\x91P\x83` \x82\x85\x01\x01\x11\x15a.\xE5W`\0\x80\xFD[`\0\x80`\0\x80`\0\x80`\0`\xA0\x88\x8A\x03\x12\x15a1\x0FW`\0\x80\xFD[\x875\x96P` \x88\x015\x95P`@\x88\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a15W`\0\x80\xFD[a1A\x8B\x83\x8C\x01a0\xB2V[\x90\x97P\x95P``\x8A\x015\x91P\x80\x82\x11\x15a1ZW`\0\x80\xFD[Pa1g\x8A\x82\x8B\x01a.\xA0V[\x90\x94P\x92PP`\x80\x88\x015\x80\x15\x15\x81\x14a1\x80W`\0\x80\xFD[\x80\x91PP\x92\x95\x98\x91\x94\x97P\x92\x95PV[`\0\x80`\0``\x84\x86\x03\x12\x15a1\xA5W`\0\x80\xFD[a1\xAE\x84a,\xBBV[\x95` \x85\x015\x95P`@\x90\x94\x015\x93\x92PPPV[`\0\x80`\0`@\x84\x86\x03\x12\x15a1\xD8W`\0\x80\xFD[\x835\x92P` \x84\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a1\xF6W`\0\x80\xFD[a2\x02\x86\x82\x87\x01a0\xB2V[\x94\x97\x90\x96P\x93\x94PPPPV[`\0\x80`\0\x80`\0\x80`\0`\xA0\x88\x8A\x03\x12\x15a2*W`\0\x80\xFD[\x875\x96P` \x88\x015\x95P`@\x88\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a2PW`\0\x80\xFD[a2\\\x8B\x83\x8C\x01a0\xB2V[\x90\x97P\x95P``\x8A\x015\x91P\x80\x82\x11\x15a2uW`\0\x80\xFD[Pa2\x82\x8A\x82\x8B\x01a0\xB2V[\x98\x9B\x97\x9AP\x95\x98\x94\x97\x95\x96`\x80\x90\x95\x015\x94\x93PPPPV[`\0\x80`\0\x80`\0`\x80\x86\x88\x03\x12\x15a2\xB3W`\0\x80\xFD[\x855\x94Pa2\xC3` \x87\x01a,\xBBV[\x93Pa2\xD1`@\x87\x01a-\xD9V[\x92P``\x86\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a2\xEDW`\0\x80\xFD[a2\xF9\x88\x82\x89\x01a0\xB2V[\x96\x99\x95\x98P\x93\x96P\x92\x94\x93\x92PPPV[`\0\x80`\0\x80`\0`\x80\x86\x88\x03\x12\x15a3\"W`\0\x80\xFD[a3+\x86a,\xBBV[\x94P` \x86\x015\x93P`@\x86\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a3OW`\0\x80\xFD[a3[\x89\x83\x8A\x01a.\x88V[\x94P``\x88\x015\x91P\x80\x82\x11\x15a3qW`\0\x80\xFD[Pa2\xF9\x88\x82\x89\x01a.\xA0V[\x805c\xFF\xFF\xFF\xFF\x81\x16\x81\x14a,\xDFW`\0\x80\xFD[`\0\x80`\0``\x84\x86\x03\x12\x15a3\xA7W`\0\x80\xFD[\x835\x92Pa3\xB7` \x85\x01a3~V[\x91Pa3\xC5`@\x85\x01a3~V[\x90P\x92P\x92P\x92V[\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`2`\x04R`$`\0\xFD[\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`\x11`\x04R`$`\0\xFD[`\0\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x03a4]Wa4]a3\xFDV[P`\x01\x01\x90V[`\0``\x826\x03\x12\x15a4vW`\0\x80\xFD[a4~a-gV[\x825g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a4\x96W`\0\x80\xFD[\x90\x84\x01\x906`\x1F\x83\x01\x12a4\xA9W`\0\x80\xFD[\x815` \x82\x82\x11\x15a4\xBDWa4\xBDa-\x0EV[a4\xED\x81\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0`\x1F\x85\x01\x16\x01a-\x8AV[\x92P\x81\x83R6\x81\x83\x86\x01\x01\x11\x15a5\x03W`\0\x80\xFD[\x81\x81\x85\x01\x82\x85\x017`\0\x91\x83\x01\x81\x01\x91\x90\x91R\x90\x83R\x84\x81\x015\x90\x83\x01RP`@\x92\x83\x015\x92\x81\x01\x92\x90\x92RP\x90V[\x81Qa\x03 \x82\x01\x90\x82`\0[`\x19\x81\x10\x15a5hW\x82Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x82R` \x92\x83\x01\x92\x90\x91\x01\x90`\x01\x01a5?V[PPP\x92\x91PPV[`\0\x82\x19\x82\x11\x15a5\x84Wa5\x84a3\xFDV[P\x01\x90V[`\0\x80\x835\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE1\x846\x03\x01\x81\x12a5\xBEW`\0\x80\xFD[\x83\x01\x805\x91Pg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x15a5\xD9W`\0\x80\xFD[` \x01\x91P6\x81\x90\x03\x82\x13\x15a.\xE5W`\0\x80\xFD[`\x01\x81\x81[\x80\x85\x11\x15a6GW\x81\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x04\x82\x11\x15a6-Wa6-a3\xFDV[\x80\x85\x16\x15a6:W\x91\x81\x02\x91[\x93\x84\x1C\x93\x90\x80\x02\x90a5\xF3V[P\x92P\x92\x90PV[`\0\x82a6^WP`\x01a7\nV[\x81a6kWP`\0a7\nV[\x81`\x01\x81\x14a6\x81W`\x02\x81\x14a6\x8BWa6\xA7V[`\x01\x91PPa7\nV[`\xFF\x84\x11\x15a6\x9CWa6\x9Ca3\xFDV[PP`\x01\x82\x1Ba7\nV[P` \x83\x10a\x013\x83\x10\x16`N\x84\x10`\x0B\x84\x10\x16\x17\x15a6\xCAWP\x81\x81\na7\nV[a6\xD4\x83\x83a5\xEEV[\x80\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x04\x82\x11\x15a7\x06Wa7\x06a3\xFDV[\x02\x90P[\x92\x91PPV[`\0a)f\x83\x83a6OV[`\0\x82\x82\x10\x15a7.Wa7.a3\xFDV[P\x03\x90V[`\0c\xFF\xFF\xFF\xFF\x83\x81\x16\x90\x83\x16\x81\x81\x10\x15a7PWa7Pa3\xFDV[\x03\x93\x92PPPV[`\0c\xFF\xFF\xFF\xFF\x80\x83\x16\x81\x85\x16\x80\x83\x03\x82\x11\x15a7wWa7wa3\xFDV[\x01\x94\x93PPPPV[`\0\x84Qa7\x92\x81\x84` \x89\x01a0\x13V[\x91\x90\x91\x01\x92\x83RP` \x82\x01R`@\x01\x91\x90PV\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct LPPMetaData(alloy::sol_types::private::FixedBytes<32>); + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue + for alloy::sol_types::private::FixedBytes<32> { + #[inline] + fn stv_to_tokens( + &self, + ) -> as alloy_sol_types::SolType>::Token<'_> { + alloy_sol_types::private::SolTypeValue::< + alloy::sol_types::sol_data::FixedBytes<32>, + >::stv_to_tokens(self) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + as alloy_sol_types::SolType>::tokenize(self) + .0 + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::SolType>::abi_encode_packed_to(self, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + as alloy_sol_types::SolType>::abi_encoded_size(self) + } + } + impl LPPMetaData { + /// The Solidity type name. + pub const NAME: &'static str = stringify!(@ name); + /// Convert from the underlying value type. + #[inline] + pub const fn from_underlying( + value: alloy::sol_types::private::FixedBytes<32>, + ) -> Self { + Self(value) + } + /// Return the underlying value. + #[inline] + pub const fn into_underlying( + self, + ) -> alloy::sol_types::private::FixedBytes<32> { + self.0 + } + /// Return the single encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode(&self) -> alloy_sol_types::private::Vec { + ::abi_encode(&self.0) + } + /// Return the packed encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec { + ::abi_encode_packed(&self.0) + } + } + #[automatically_derived] + impl From> for LPPMetaData { + fn from(value: alloy::sol_types::private::FixedBytes<32>) -> Self { + Self::from_underlying(value) + } + } + #[automatically_derived] + impl From for alloy::sol_types::private::FixedBytes<32> { + fn from(value: LPPMetaData) -> Self { + value.into_underlying() + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for LPPMetaData { + type RustType = alloy::sol_types::private::FixedBytes<32>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = Self::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + Self::type_check(token).is_ok() + } + #[inline] + fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> { + as alloy_sol_types::SolType>::type_check(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + as alloy_sol_types::SolType>::detokenize(token) + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for LPPMetaData { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + as alloy_sol_types::EventTopic>::topic_preimage_length(rust) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out) + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + as alloy_sol_types::EventTopic>::encode_topic(rust) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**```solidity +struct Leaf { bytes input; uint256 index; bytes32 stateCommitment; } +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct Leaf { + #[allow(missing_docs)] + pub input: alloy::sol_types::private::Bytes, + #[allow(missing_docs)] + pub index: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub stateCommitment: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Bytes, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Bytes, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::FixedBytes<32>, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: Leaf) -> Self { + (value.input, value.index, value.stateCommitment) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for Leaf { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + input: tuple.0, + index: tuple.1, + stateCommitment: tuple.2, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolValue for Leaf { + type SolType = Self; + } + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for Leaf { + #[inline] + fn stv_to_tokens(&self) -> ::Token<'_> { + ( + ::tokenize( + &self.input, + ), + as alloy_sol_types::SolType>::tokenize(&self.index), + as alloy_sol_types::SolType>::tokenize(&self.stateCommitment), + ) + } + #[inline] + fn stv_abi_encoded_size(&self) -> usize { + if let Some(size) = ::ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encoded_size(&tuple) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + ::eip712_hash_struct(self) + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + if let Some(size) = ::PACKED_ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for Leaf { + type RustType = Self; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = ::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + as alloy_sol_types::SolType>::valid_token(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + let tuple = as alloy_sol_types::SolType>::detokenize(token); + >>::from(tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolStruct for Leaf { + const NAME: &'static str = "Leaf"; + #[inline] + fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> { + alloy_sol_types::private::Cow::Borrowed( + "Leaf(bytes input,uint256 index,bytes32 stateCommitment)", + ) + } + #[inline] + fn eip712_components() -> alloy_sol_types::private::Vec< + alloy_sol_types::private::Cow<'static, str>, + > { + alloy_sol_types::private::Vec::new() + } + #[inline] + fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> { + ::eip712_root_type() + } + #[inline] + fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec { + [ + ::eip712_data_word( + &self.input, + ) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.index) + .0, + as alloy_sol_types::SolType>::eip712_data_word( + &self.stateCommitment, + ) + .0, + ] + .concat() + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for Leaf { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + 0usize + + ::topic_preimage_length( + &rust.input, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length(&rust.index) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.stateCommitment, + ) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + out.reserve( + ::topic_preimage_length(rust), + ); + ::encode_topic_preimage( + &rust.input, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.index, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.stateCommitment, + out, + ); + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + let mut out = alloy_sol_types::private::Vec::new(); + ::encode_topic_preimage( + rust, + &mut out, + ); + alloy_sol_types::abi::token::WordToken( + alloy_sol_types::private::keccak256(out), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ActiveProposal()` and selector `0x55d4cbf9`. +```solidity +error ActiveProposal(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ActiveProposal; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ActiveProposal) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ActiveProposal { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ActiveProposal { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ActiveProposal()"; + const SELECTOR: [u8; 4] = [85u8, 212u8, 203u8, 249u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `AlreadyFinalized()` and selector `0x475a2535`. +```solidity +error AlreadyFinalized(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct AlreadyFinalized; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: AlreadyFinalized) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for AlreadyFinalized { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for AlreadyFinalized { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "AlreadyFinalized()"; + const SELECTOR: [u8; 4] = [71u8, 90u8, 37u8, 53u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `AlreadyInitialized()` and selector `0x0dc149f0`. +```solidity +error AlreadyInitialized(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct AlreadyInitialized; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: AlreadyInitialized) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for AlreadyInitialized { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for AlreadyInitialized { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "AlreadyInitialized()"; + const SELECTOR: [u8; 4] = [13u8, 193u8, 73u8, 240u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `BadProposal()` and selector `0xc334f069`. +```solidity +error BadProposal(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct BadProposal; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: BadProposal) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for BadProposal { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for BadProposal { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "BadProposal()"; + const SELECTOR: [u8; 4] = [195u8, 52u8, 240u8, 105u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `BondTransferFailed()` and selector `0x83e6cc6b`. +```solidity +error BondTransferFailed(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct BondTransferFailed; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: BondTransferFailed) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for BondTransferFailed { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for BondTransferFailed { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "BondTransferFailed()"; + const SELECTOR: [u8; 4] = [131u8, 230u8, 204u8, 107u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InsufficientBond()` and selector `0xe92c469f`. +```solidity +error InsufficientBond(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InsufficientBond; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InsufficientBond) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InsufficientBond { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InsufficientBond { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InsufficientBond()"; + const SELECTOR: [u8; 4] = [233u8, 44u8, 70u8, 159u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidInputSize()` and selector `0x7b1dafd1`. +```solidity +error InvalidInputSize(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidInputSize; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InvalidInputSize) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InvalidInputSize { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidInputSize { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidInputSize()"; + const SELECTOR: [u8; 4] = [123u8, 29u8, 175u8, 209u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidPreimage()` and selector `0x1968a902`. +```solidity +error InvalidPreimage(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidPreimage; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InvalidPreimage) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InvalidPreimage { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidPreimage { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidPreimage()"; + const SELECTOR: [u8; 4] = [25u8, 104u8, 169u8, 2u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidProof()` and selector `0x09bde339`. +```solidity +error InvalidProof(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidProof; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InvalidProof) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InvalidProof { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidProof { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidProof()"; + const SELECTOR: [u8; 4] = [9u8, 189u8, 227u8, 57u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `NotEOA()` and selector `0xba092d16`. +```solidity +error NotEOA(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct NotEOA; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: NotEOA) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for NotEOA { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for NotEOA { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "NotEOA()"; + const SELECTOR: [u8; 4] = [186u8, 9u8, 45u8, 22u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `NotInitialized()` and selector `0x87138d5c`. +```solidity +error NotInitialized(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct NotInitialized; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: NotInitialized) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for NotInitialized { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for NotInitialized { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "NotInitialized()"; + const SELECTOR: [u8; 4] = [135u8, 19u8, 141u8, 92u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `PartOffsetOOB()` and selector `0xfe254987`. +```solidity +error PartOffsetOOB(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct PartOffsetOOB; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: PartOffsetOOB) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for PartOffsetOOB { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for PartOffsetOOB { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "PartOffsetOOB()"; + const SELECTOR: [u8; 4] = [254u8, 37u8, 73u8, 135u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `PostStateMatches()` and selector `0x9843145b`. +```solidity +error PostStateMatches(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct PostStateMatches; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: PostStateMatches) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for PostStateMatches { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for PostStateMatches { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "PostStateMatches()"; + const SELECTOR: [u8; 4] = [152u8, 67u8, 20u8, 91u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `StatesNotContiguous()` and selector `0x9a3b1199`. +```solidity +error StatesNotContiguous(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct StatesNotContiguous; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: StatesNotContiguous) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for StatesNotContiguous { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for StatesNotContiguous { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "StatesNotContiguous()"; + const SELECTOR: [u8; 4] = [154u8, 59u8, 17u8, 153u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `TreeSizeOverflow()` and selector `0x62295723`. +```solidity +error TreeSizeOverflow(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct TreeSizeOverflow; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: TreeSizeOverflow) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for TreeSizeOverflow { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for TreeSizeOverflow { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "TreeSizeOverflow()"; + const SELECTOR: [u8; 4] = [98u8, 41u8, 87u8, 35u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `WrongStartingBlock()` and selector `0x60f95d5a`. +```solidity +error WrongStartingBlock(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct WrongStartingBlock; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: WrongStartingBlock) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for WrongStartingBlock { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for WrongStartingBlock { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "WrongStartingBlock()"; + const SELECTOR: [u8; 4] = [96u8, 249u8, 93u8, 90u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + /**Constructor`. +```solidity +constructor(uint256 _minProposalSize, uint256 _challengePeriod); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct constructorCall { + #[allow(missing_docs)] + pub _minProposalSize: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _challengePeriod: alloy::sol_types::private::primitives::aliases::U256, + } + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: constructorCall) -> Self { + (value._minProposalSize, value._challengePeriod) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for constructorCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _minProposalSize: tuple.0, + _challengePeriod: tuple.1, + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolConstructor for constructorCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._minProposalSize), + as alloy_sol_types::SolType>::tokenize(&self._challengePeriod), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `KECCAK_TREE_DEPTH()` and selector `0x2055b36b`. +```solidity +function KECCAK_TREE_DEPTH() external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct KECCAK_TREE_DEPTHCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`KECCAK_TREE_DEPTH()`](KECCAK_TREE_DEPTHCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct KECCAK_TREE_DEPTHReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: KECCAK_TREE_DEPTHCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for KECCAK_TREE_DEPTHCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: KECCAK_TREE_DEPTHReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for KECCAK_TREE_DEPTHReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for KECCAK_TREE_DEPTHCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "KECCAK_TREE_DEPTH()"; + const SELECTOR: [u8; 4] = [32u8, 85u8, 179u8, 107u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: KECCAK_TREE_DEPTHReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: KECCAK_TREE_DEPTHReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `MAX_LEAF_COUNT()` and selector `0x4d52b4c9`. +```solidity +function MAX_LEAF_COUNT() external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct MAX_LEAF_COUNTCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`MAX_LEAF_COUNT()`](MAX_LEAF_COUNTCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct MAX_LEAF_COUNTReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: MAX_LEAF_COUNTCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for MAX_LEAF_COUNTCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: MAX_LEAF_COUNTReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for MAX_LEAF_COUNTReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for MAX_LEAF_COUNTCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "MAX_LEAF_COUNT()"; + const SELECTOR: [u8; 4] = [77u8, 82u8, 180u8, 201u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: MAX_LEAF_COUNTReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: MAX_LEAF_COUNTReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `MIN_BOND_SIZE()` and selector `0x7051472e`. +```solidity +function MIN_BOND_SIZE() external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct MIN_BOND_SIZECall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`MIN_BOND_SIZE()`](MIN_BOND_SIZECall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct MIN_BOND_SIZEReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: MIN_BOND_SIZECall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for MIN_BOND_SIZECall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: MIN_BOND_SIZEReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for MIN_BOND_SIZEReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for MIN_BOND_SIZECall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "MIN_BOND_SIZE()"; + const SELECTOR: [u8; 4] = [112u8, 81u8, 71u8, 46u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: MIN_BOND_SIZEReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: MIN_BOND_SIZEReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `PRECOMPILE_CALL_RESERVED_GAS()` and selector `0xb5e7154c`. +```solidity +function PRECOMPILE_CALL_RESERVED_GAS() external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct PRECOMPILE_CALL_RESERVED_GASCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`PRECOMPILE_CALL_RESERVED_GAS()`](PRECOMPILE_CALL_RESERVED_GASCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct PRECOMPILE_CALL_RESERVED_GASReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: PRECOMPILE_CALL_RESERVED_GASCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for PRECOMPILE_CALL_RESERVED_GASCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: PRECOMPILE_CALL_RESERVED_GASReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for PRECOMPILE_CALL_RESERVED_GASReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for PRECOMPILE_CALL_RESERVED_GASCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "PRECOMPILE_CALL_RESERVED_GAS()"; + const SELECTOR: [u8; 4] = [181u8, 231u8, 21u8, 76u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: PRECOMPILE_CALL_RESERVED_GASReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: PRECOMPILE_CALL_RESERVED_GASReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `addLeavesLPP(uint256,uint256,bytes,bytes32[],bool)` and selector `0x7917de1d`. +```solidity +function addLeavesLPP(uint256 _uuid, uint256 _inputStartBlock, bytes memory _input, bytes32[] memory _stateCommitments, bool _finalize) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct addLeavesLPPCall { + #[allow(missing_docs)] + pub _uuid: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _inputStartBlock: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _input: alloy::sol_types::private::Bytes, + #[allow(missing_docs)] + pub _stateCommitments: alloy::sol_types::private::Vec< + alloy::sol_types::private::FixedBytes<32>, + >, + #[allow(missing_docs)] + pub _finalize: bool, + } + ///Container type for the return parameters of the [`addLeavesLPP(uint256,uint256,bytes,bytes32[],bool)`](addLeavesLPPCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct addLeavesLPPReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Bytes, + alloy::sol_types::sol_data::Array< + alloy::sol_types::sol_data::FixedBytes<32>, + >, + alloy::sol_types::sol_data::Bool, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::Bytes, + alloy::sol_types::private::Vec< + alloy::sol_types::private::FixedBytes<32>, + >, + bool, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: addLeavesLPPCall) -> Self { + ( + value._uuid, + value._inputStartBlock, + value._input, + value._stateCommitments, + value._finalize, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for addLeavesLPPCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _uuid: tuple.0, + _inputStartBlock: tuple.1, + _input: tuple.2, + _stateCommitments: tuple.3, + _finalize: tuple.4, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: addLeavesLPPReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for addLeavesLPPReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl addLeavesLPPReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for addLeavesLPPCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Bytes, + alloy::sol_types::sol_data::Array< + alloy::sol_types::sol_data::FixedBytes<32>, + >, + alloy::sol_types::sol_data::Bool, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = addLeavesLPPReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "addLeavesLPP(uint256,uint256,bytes,bytes32[],bool)"; + const SELECTOR: [u8; 4] = [121u8, 23u8, 222u8, 29u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._uuid), + as alloy_sol_types::SolType>::tokenize(&self._inputStartBlock), + ::tokenize( + &self._input, + ), + , + > as alloy_sol_types::SolType>::tokenize(&self._stateCommitments), + ::tokenize( + &self._finalize, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + addLeavesLPPReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `challengeFirstLPP(address,uint256,(bytes,uint256,bytes32),bytes32[])` and selector `0xec5efcbc`. +```solidity +function challengeFirstLPP(address _claimant, uint256 _uuid, Leaf memory _postState, bytes32[] memory _postStateProof) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct challengeFirstLPPCall { + #[allow(missing_docs)] + pub _claimant: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _uuid: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _postState: ::RustType, + #[allow(missing_docs)] + pub _postStateProof: alloy::sol_types::private::Vec< + alloy::sol_types::private::FixedBytes<32>, + >, + } + ///Container type for the return parameters of the [`challengeFirstLPP(address,uint256,(bytes,uint256,bytes32),bytes32[])`](challengeFirstLPPCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct challengeFirstLPPReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + Leaf, + alloy::sol_types::sol_data::Array< + alloy::sol_types::sol_data::FixedBytes<32>, + >, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + ::RustType, + alloy::sol_types::private::Vec>, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: challengeFirstLPPCall) -> Self { + ( + value._claimant, + value._uuid, + value._postState, + value._postStateProof, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for challengeFirstLPPCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _claimant: tuple.0, + _uuid: tuple.1, + _postState: tuple.2, + _postStateProof: tuple.3, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: challengeFirstLPPReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for challengeFirstLPPReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl challengeFirstLPPReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for challengeFirstLPPCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + Leaf, + alloy::sol_types::sol_data::Array< + alloy::sol_types::sol_data::FixedBytes<32>, + >, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = challengeFirstLPPReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "challengeFirstLPP(address,uint256,(bytes,uint256,bytes32),bytes32[])"; + const SELECTOR: [u8; 4] = [236u8, 94u8, 252u8, 188u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._claimant, + ), + as alloy_sol_types::SolType>::tokenize(&self._uuid), + ::tokenize(&self._postState), + , + > as alloy_sol_types::SolType>::tokenize(&self._postStateProof), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + challengeFirstLPPReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `challengeLPP(address,uint256,(uint64[25]),(bytes,uint256,bytes32),bytes32[],(bytes,uint256,bytes32),bytes32[])` and selector `0x3909af5c`. +```solidity +function challengeLPP(address _claimant, uint256 _uuid, LibKeccak.StateMatrix memory _stateMatrix, Leaf memory _preState, bytes32[] memory _preStateProof, Leaf memory _postState, bytes32[] memory _postStateProof) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct challengeLPPCall { + #[allow(missing_docs)] + pub _claimant: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _uuid: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _stateMatrix: ::RustType, + #[allow(missing_docs)] + pub _preState: ::RustType, + #[allow(missing_docs)] + pub _preStateProof: alloy::sol_types::private::Vec< + alloy::sol_types::private::FixedBytes<32>, + >, + #[allow(missing_docs)] + pub _postState: ::RustType, + #[allow(missing_docs)] + pub _postStateProof: alloy::sol_types::private::Vec< + alloy::sol_types::private::FixedBytes<32>, + >, + } + ///Container type for the return parameters of the [`challengeLPP(address,uint256,(uint64[25]),(bytes,uint256,bytes32),bytes32[],(bytes,uint256,bytes32),bytes32[])`](challengeLPPCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct challengeLPPReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + LibKeccak::StateMatrix, + Leaf, + alloy::sol_types::sol_data::Array< + alloy::sol_types::sol_data::FixedBytes<32>, + >, + Leaf, + alloy::sol_types::sol_data::Array< + alloy::sol_types::sol_data::FixedBytes<32>, + >, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + ::RustType, + ::RustType, + alloy::sol_types::private::Vec< + alloy::sol_types::private::FixedBytes<32>, + >, + ::RustType, + alloy::sol_types::private::Vec>, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: challengeLPPCall) -> Self { + ( + value._claimant, + value._uuid, + value._stateMatrix, + value._preState, + value._preStateProof, + value._postState, + value._postStateProof, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for challengeLPPCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _claimant: tuple.0, + _uuid: tuple.1, + _stateMatrix: tuple.2, + _preState: tuple.3, + _preStateProof: tuple.4, + _postState: tuple.5, + _postStateProof: tuple.6, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: challengeLPPReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for challengeLPPReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl challengeLPPReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for challengeLPPCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + LibKeccak::StateMatrix, + Leaf, + alloy::sol_types::sol_data::Array< + alloy::sol_types::sol_data::FixedBytes<32>, + >, + Leaf, + alloy::sol_types::sol_data::Array< + alloy::sol_types::sol_data::FixedBytes<32>, + >, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = challengeLPPReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "challengeLPP(address,uint256,(uint64[25]),(bytes,uint256,bytes32),bytes32[],(bytes,uint256,bytes32),bytes32[])"; + const SELECTOR: [u8; 4] = [57u8, 9u8, 175u8, 92u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._claimant, + ), + as alloy_sol_types::SolType>::tokenize(&self._uuid), + ::tokenize( + &self._stateMatrix, + ), + ::tokenize(&self._preState), + , + > as alloy_sol_types::SolType>::tokenize(&self._preStateProof), + ::tokenize(&self._postState), + , + > as alloy_sol_types::SolType>::tokenize(&self._postStateProof), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + challengeLPPReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `challengePeriod()` and selector `0xf3f480d9`. +```solidity +function challengePeriod() external view returns (uint256 challengePeriod_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct challengePeriodCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`challengePeriod()`](challengePeriodCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct challengePeriodReturn { + #[allow(missing_docs)] + pub challengePeriod_: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: challengePeriodCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for challengePeriodCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: challengePeriodReturn) -> Self { + (value.challengePeriod_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for challengePeriodReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { challengePeriod_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for challengePeriodCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "challengePeriod()"; + const SELECTOR: [u8; 4] = [243u8, 244u8, 128u8, 217u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: challengePeriodReturn = r.into(); + r.challengePeriod_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: challengePeriodReturn = r.into(); + r.challengePeriod_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `getTreeRootLPP(address,uint256)` and selector `0x0359a563`. +```solidity +function getTreeRootLPP(address _owner, uint256 _uuid) external view returns (bytes32 treeRoot_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getTreeRootLPPCall { + #[allow(missing_docs)] + pub _owner: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _uuid: alloy::sol_types::private::primitives::aliases::U256, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`getTreeRootLPP(address,uint256)`](getTreeRootLPPCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getTreeRootLPPReturn { + #[allow(missing_docs)] + pub treeRoot_: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: getTreeRootLPPCall) -> Self { + (value._owner, value._uuid) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for getTreeRootLPPCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _owner: tuple.0, + _uuid: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: getTreeRootLPPReturn) -> Self { + (value.treeRoot_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for getTreeRootLPPReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { treeRoot_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for getTreeRootLPPCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::FixedBytes<32>; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "getTreeRootLPP(address,uint256)"; + const SELECTOR: [u8; 4] = [3u8, 89u8, 165u8, 99u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._owner, + ), + as alloy_sol_types::SolType>::tokenize(&self._uuid), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: getTreeRootLPPReturn = r.into(); + r.treeRoot_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: getTreeRootLPPReturn = r.into(); + r.treeRoot_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `initLPP(uint256,uint32,uint32)` and selector `0xfaf37bc7`. +```solidity +function initLPP(uint256 _uuid, uint32 _partOffset, uint32 _claimedSize) external payable; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct initLPPCall { + #[allow(missing_docs)] + pub _uuid: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _partOffset: u32, + #[allow(missing_docs)] + pub _claimedSize: u32, + } + ///Container type for the return parameters of the [`initLPP(uint256,uint32,uint32)`](initLPPCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct initLPPReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<32>, + alloy::sol_types::sol_data::Uint<32>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + u32, + u32, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: initLPPCall) -> Self { + (value._uuid, value._partOffset, value._claimedSize) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for initLPPCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _uuid: tuple.0, + _partOffset: tuple.1, + _claimedSize: tuple.2, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: initLPPReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for initLPPReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl initLPPReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for initLPPCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<32>, + alloy::sol_types::sol_data::Uint<32>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = initLPPReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "initLPP(uint256,uint32,uint32)"; + const SELECTOR: [u8; 4] = [250u8, 243u8, 123u8, 199u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._uuid), + as alloy_sol_types::SolType>::tokenize(&self._partOffset), + as alloy_sol_types::SolType>::tokenize(&self._claimedSize), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + initLPPReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `loadBlobPreimagePart(uint256,uint256,bytes,bytes,uint256)` and selector `0x9d7e8769`. +```solidity +function loadBlobPreimagePart(uint256 _z, uint256 _y, bytes memory _commitment, bytes memory _proof, uint256 _partOffset) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct loadBlobPreimagePartCall { + #[allow(missing_docs)] + pub _z: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _y: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _commitment: alloy::sol_types::private::Bytes, + #[allow(missing_docs)] + pub _proof: alloy::sol_types::private::Bytes, + #[allow(missing_docs)] + pub _partOffset: alloy::sol_types::private::primitives::aliases::U256, + } + ///Container type for the return parameters of the [`loadBlobPreimagePart(uint256,uint256,bytes,bytes,uint256)`](loadBlobPreimagePartCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct loadBlobPreimagePartReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Bytes, + alloy::sol_types::sol_data::Bytes, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::Bytes, + alloy::sol_types::private::Bytes, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: loadBlobPreimagePartCall) -> Self { + ( + value._z, + value._y, + value._commitment, + value._proof, + value._partOffset, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for loadBlobPreimagePartCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _z: tuple.0, + _y: tuple.1, + _commitment: tuple.2, + _proof: tuple.3, + _partOffset: tuple.4, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: loadBlobPreimagePartReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for loadBlobPreimagePartReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl loadBlobPreimagePartReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken< + '_, + > { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for loadBlobPreimagePartCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Bytes, + alloy::sol_types::sol_data::Bytes, + alloy::sol_types::sol_data::Uint<256>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = loadBlobPreimagePartReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "loadBlobPreimagePart(uint256,uint256,bytes,bytes,uint256)"; + const SELECTOR: [u8; 4] = [157u8, 126u8, 135u8, 105u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._z), + as alloy_sol_types::SolType>::tokenize(&self._y), + ::tokenize( + &self._commitment, + ), + ::tokenize( + &self._proof, + ), + as alloy_sol_types::SolType>::tokenize(&self._partOffset), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + loadBlobPreimagePartReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `loadKeccak256PreimagePart(uint256,bytes)` and selector `0xe1592611`. +```solidity +function loadKeccak256PreimagePart(uint256 _partOffset, bytes memory _preimage) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct loadKeccak256PreimagePartCall { + #[allow(missing_docs)] + pub _partOffset: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _preimage: alloy::sol_types::private::Bytes, + } + ///Container type for the return parameters of the [`loadKeccak256PreimagePart(uint256,bytes)`](loadKeccak256PreimagePartCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct loadKeccak256PreimagePartReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::Bytes, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: loadKeccak256PreimagePartCall) -> Self { + (value._partOffset, value._preimage) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for loadKeccak256PreimagePartCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _partOffset: tuple.0, + _preimage: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: loadKeccak256PreimagePartReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for loadKeccak256PreimagePartReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl loadKeccak256PreimagePartReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken< + '_, + > { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for loadKeccak256PreimagePartCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Bytes, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = loadKeccak256PreimagePartReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "loadKeccak256PreimagePart(uint256,bytes)"; + const SELECTOR: [u8; 4] = [225u8, 89u8, 38u8, 17u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._partOffset), + ::tokenize( + &self._preimage, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + loadKeccak256PreimagePartReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `loadLocalData(uint256,bytes32,bytes32,uint256,uint256)` and selector `0x52f0f3ad`. +```solidity +function loadLocalData(uint256 _ident, bytes32 _localContext, bytes32 _word, uint256 _size, uint256 _partOffset) external returns (bytes32 key_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct loadLocalDataCall { + #[allow(missing_docs)] + pub _ident: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _localContext: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub _word: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub _size: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _partOffset: alloy::sol_types::private::primitives::aliases::U256, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`loadLocalData(uint256,bytes32,bytes32,uint256,uint256)`](loadLocalDataCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct loadLocalDataReturn { + #[allow(missing_docs)] + pub key_: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::FixedBytes<32>, + alloy::sol_types::private::FixedBytes<32>, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: loadLocalDataCall) -> Self { + ( + value._ident, + value._localContext, + value._word, + value._size, + value._partOffset, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for loadLocalDataCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _ident: tuple.0, + _localContext: tuple.1, + _word: tuple.2, + _size: tuple.3, + _partOffset: tuple.4, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: loadLocalDataReturn) -> Self { + (value.key_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for loadLocalDataReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { key_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for loadLocalDataCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::FixedBytes<32>; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "loadLocalData(uint256,bytes32,bytes32,uint256,uint256)"; + const SELECTOR: [u8; 4] = [82u8, 240u8, 243u8, 173u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._ident), + as alloy_sol_types::SolType>::tokenize(&self._localContext), + as alloy_sol_types::SolType>::tokenize(&self._word), + as alloy_sol_types::SolType>::tokenize(&self._size), + as alloy_sol_types::SolType>::tokenize(&self._partOffset), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: loadLocalDataReturn = r.into(); + r.key_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: loadLocalDataReturn = r.into(); + r.key_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `loadPrecompilePreimagePart(uint256,address,uint64,bytes)` and selector `0xea713950`. +```solidity +function loadPrecompilePreimagePart(uint256 _partOffset, address _precompile, uint64 _requiredGas, bytes memory _input) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct loadPrecompilePreimagePartCall { + #[allow(missing_docs)] + pub _partOffset: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _precompile: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _requiredGas: u64, + #[allow(missing_docs)] + pub _input: alloy::sol_types::private::Bytes, + } + ///Container type for the return parameters of the [`loadPrecompilePreimagePart(uint256,address,uint64,bytes)`](loadPrecompilePreimagePartCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct loadPrecompilePreimagePartReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<64>, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::Address, + u64, + alloy::sol_types::private::Bytes, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: loadPrecompilePreimagePartCall) -> Self { + ( + value._partOffset, + value._precompile, + value._requiredGas, + value._input, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for loadPrecompilePreimagePartCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _partOffset: tuple.0, + _precompile: tuple.1, + _requiredGas: tuple.2, + _input: tuple.3, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: loadPrecompilePreimagePartReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for loadPrecompilePreimagePartReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl loadPrecompilePreimagePartReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken< + '_, + > { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for loadPrecompilePreimagePartCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<64>, + alloy::sol_types::sol_data::Bytes, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = loadPrecompilePreimagePartReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "loadPrecompilePreimagePart(uint256,address,uint64,bytes)"; + const SELECTOR: [u8; 4] = [234u8, 113u8, 57u8, 80u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._partOffset), + ::tokenize( + &self._precompile, + ), + as alloy_sol_types::SolType>::tokenize(&self._requiredGas), + ::tokenize( + &self._input, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + loadPrecompilePreimagePartReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `loadSha256PreimagePart(uint256,bytes)` and selector `0x8dc4be11`. +```solidity +function loadSha256PreimagePart(uint256 _partOffset, bytes memory _preimage) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct loadSha256PreimagePartCall { + #[allow(missing_docs)] + pub _partOffset: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _preimage: alloy::sol_types::private::Bytes, + } + ///Container type for the return parameters of the [`loadSha256PreimagePart(uint256,bytes)`](loadSha256PreimagePartCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct loadSha256PreimagePartReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::Bytes, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: loadSha256PreimagePartCall) -> Self { + (value._partOffset, value._preimage) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for loadSha256PreimagePartCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _partOffset: tuple.0, + _preimage: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: loadSha256PreimagePartReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for loadSha256PreimagePartReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl loadSha256PreimagePartReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken< + '_, + > { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for loadSha256PreimagePartCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Bytes, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = loadSha256PreimagePartReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "loadSha256PreimagePart(uint256,bytes)"; + const SELECTOR: [u8; 4] = [141u8, 196u8, 190u8, 17u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._partOffset), + ::tokenize( + &self._preimage, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + loadSha256PreimagePartReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `minProposalSize()` and selector `0xdd24f9bf`. +```solidity +function minProposalSize() external view returns (uint256 minProposalSize_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct minProposalSizeCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`minProposalSize()`](minProposalSizeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct minProposalSizeReturn { + #[allow(missing_docs)] + pub minProposalSize_: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: minProposalSizeCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for minProposalSizeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: minProposalSizeReturn) -> Self { + (value.minProposalSize_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for minProposalSizeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { minProposalSize_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for minProposalSizeCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "minProposalSize()"; + const SELECTOR: [u8; 4] = [221u8, 36u8, 249u8, 191u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: minProposalSizeReturn = r.into(); + r.minProposalSize_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: minProposalSizeReturn = r.into(); + r.minProposalSize_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `preimageLengths(bytes32)` and selector `0xfef2b4ed`. +```solidity +function preimageLengths(bytes32) external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct preimageLengthsCall(pub alloy::sol_types::private::FixedBytes<32>); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`preimageLengths(bytes32)`](preimageLengthsCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct preimageLengthsReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: preimageLengthsCall) -> Self { + (value.0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for preimageLengthsCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self(tuple.0) + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: preimageLengthsReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for preimageLengthsReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for preimageLengthsCall { + type Parameters<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "preimageLengths(bytes32)"; + const SELECTOR: [u8; 4] = [254u8, 242u8, 180u8, 237u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.0), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: preimageLengthsReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: preimageLengthsReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `preimagePartOk(bytes32,uint256)` and selector `0x8542cf50`. +```solidity +function preimagePartOk(bytes32, uint256) external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct preimagePartOkCall { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub _1: alloy::sol_types::private::primitives::aliases::U256, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`preimagePartOk(bytes32,uint256)`](preimagePartOkCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct preimagePartOkReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::FixedBytes<32>, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: preimagePartOkCall) -> Self { + (value._0, value._1) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for preimagePartOkCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0, _1: tuple.1 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: preimagePartOkReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for preimagePartOkReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for preimagePartOkCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Uint<256>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "preimagePartOk(bytes32,uint256)"; + const SELECTOR: [u8; 4] = [133u8, 66u8, 207u8, 80u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._0), + as alloy_sol_types::SolType>::tokenize(&self._1), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: preimagePartOkReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: preimagePartOkReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `preimageParts(bytes32,uint256)` and selector `0x61238bde`. +```solidity +function preimageParts(bytes32, uint256) external view returns (bytes32); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct preimagePartsCall { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub _1: alloy::sol_types::private::primitives::aliases::U256, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`preimageParts(bytes32,uint256)`](preimagePartsCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct preimagePartsReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::FixedBytes<32>, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: preimagePartsCall) -> Self { + (value._0, value._1) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for preimagePartsCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0, _1: tuple.1 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: preimagePartsReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for preimagePartsReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for preimagePartsCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Uint<256>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::FixedBytes<32>; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "preimageParts(bytes32,uint256)"; + const SELECTOR: [u8; 4] = [97u8, 35u8, 139u8, 222u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._0), + as alloy_sol_types::SolType>::tokenize(&self._1), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: preimagePartsReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: preimagePartsReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `proposalBlocks(address,uint256,uint256)` and selector `0x882856ef`. +```solidity +function proposalBlocks(address, uint256, uint256) external view returns (uint64); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct proposalBlocksCall { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _1: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _2: alloy::sol_types::private::primitives::aliases::U256, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`proposalBlocks(address,uint256,uint256)`](proposalBlocksCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct proposalBlocksReturn { + #[allow(missing_docs)] + pub _0: u64, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: proposalBlocksCall) -> Self { + (value._0, value._1, value._2) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for proposalBlocksCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _0: tuple.0, + _1: tuple.1, + _2: tuple.2, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u64,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: proposalBlocksReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for proposalBlocksReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for proposalBlocksCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u64; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "proposalBlocks(address,uint256,uint256)"; + const SELECTOR: [u8; 4] = [136u8, 40u8, 86u8, 239u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._0, + ), + as alloy_sol_types::SolType>::tokenize(&self._1), + as alloy_sol_types::SolType>::tokenize(&self._2), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: proposalBlocksReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: proposalBlocksReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `proposalBlocksLen(address,uint256)` and selector `0x9d53a648`. +```solidity +function proposalBlocksLen(address _claimant, uint256 _uuid) external view returns (uint256 len_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct proposalBlocksLenCall { + #[allow(missing_docs)] + pub _claimant: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _uuid: alloy::sol_types::private::primitives::aliases::U256, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`proposalBlocksLen(address,uint256)`](proposalBlocksLenCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct proposalBlocksLenReturn { + #[allow(missing_docs)] + pub len_: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: proposalBlocksLenCall) -> Self { + (value._claimant, value._uuid) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for proposalBlocksLenCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _claimant: tuple.0, + _uuid: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: proposalBlocksLenReturn) -> Self { + (value.len_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for proposalBlocksLenReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { len_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for proposalBlocksLenCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "proposalBlocksLen(address,uint256)"; + const SELECTOR: [u8; 4] = [157u8, 83u8, 166u8, 72u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._claimant, + ), + as alloy_sol_types::SolType>::tokenize(&self._uuid), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: proposalBlocksLenReturn = r.into(); + r.len_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: proposalBlocksLenReturn = r.into(); + r.len_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `proposalBonds(address,uint256)` and selector `0xddcd58de`. +```solidity +function proposalBonds(address, uint256) external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct proposalBondsCall { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _1: alloy::sol_types::private::primitives::aliases::U256, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`proposalBonds(address,uint256)`](proposalBondsCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct proposalBondsReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: proposalBondsCall) -> Self { + (value._0, value._1) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for proposalBondsCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0, _1: tuple.1 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: proposalBondsReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for proposalBondsReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for proposalBondsCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "proposalBonds(address,uint256)"; + const SELECTOR: [u8; 4] = [221u8, 205u8, 88u8, 222u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._0, + ), + as alloy_sol_types::SolType>::tokenize(&self._1), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: proposalBondsReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: proposalBondsReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `proposalBranches(address,uint256,uint256)` and selector `0xb4801e61`. +```solidity +function proposalBranches(address, uint256, uint256) external view returns (bytes32); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct proposalBranchesCall { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _1: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _2: alloy::sol_types::private::primitives::aliases::U256, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`proposalBranches(address,uint256,uint256)`](proposalBranchesCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct proposalBranchesReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: proposalBranchesCall) -> Self { + (value._0, value._1, value._2) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for proposalBranchesCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _0: tuple.0, + _1: tuple.1, + _2: tuple.2, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: proposalBranchesReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for proposalBranchesReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for proposalBranchesCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::FixedBytes<32>; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "proposalBranches(address,uint256,uint256)"; + const SELECTOR: [u8; 4] = [180u8, 128u8, 30u8, 97u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._0, + ), + as alloy_sol_types::SolType>::tokenize(&self._1), + as alloy_sol_types::SolType>::tokenize(&self._2), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: proposalBranchesReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: proposalBranchesReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `proposalCount()` and selector `0xda35c664`. +```solidity +function proposalCount() external view returns (uint256 count_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct proposalCountCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`proposalCount()`](proposalCountCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct proposalCountReturn { + #[allow(missing_docs)] + pub count_: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: proposalCountCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for proposalCountCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: proposalCountReturn) -> Self { + (value.count_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for proposalCountReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { count_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for proposalCountCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "proposalCount()"; + const SELECTOR: [u8; 4] = [218u8, 53u8, 198u8, 100u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: proposalCountReturn = r.into(); + r.count_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: proposalCountReturn = r.into(); + r.count_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `proposalMetadata(address,uint256)` and selector `0x6551927b`. +```solidity +function proposalMetadata(address, uint256) external view returns (LPPMetaData); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct proposalMetadataCall { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _1: alloy::sol_types::private::primitives::aliases::U256, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`proposalMetadata(address,uint256)`](proposalMetadataCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct proposalMetadataReturn { + #[allow(missing_docs)] + pub _0: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: proposalMetadataCall) -> Self { + (value._0, value._1) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for proposalMetadataCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0, _1: tuple.1 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (LPPMetaData,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: proposalMetadataReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for proposalMetadataReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for proposalMetadataCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (LPPMetaData,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "proposalMetadata(address,uint256)"; + const SELECTOR: [u8; 4] = [101u8, 81u8, 146u8, 123u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._0, + ), + as alloy_sol_types::SolType>::tokenize(&self._1), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: proposalMetadataReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: proposalMetadataReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `proposalParts(address,uint256)` and selector `0xb2e67ba8`. +```solidity +function proposalParts(address, uint256) external view returns (bytes32); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct proposalPartsCall { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _1: alloy::sol_types::private::primitives::aliases::U256, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`proposalParts(address,uint256)`](proposalPartsCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct proposalPartsReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: proposalPartsCall) -> Self { + (value._0, value._1) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for proposalPartsCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0, _1: tuple.1 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: proposalPartsReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for proposalPartsReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for proposalPartsCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::FixedBytes<32>; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "proposalParts(address,uint256)"; + const SELECTOR: [u8; 4] = [178u8, 230u8, 123u8, 168u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._0, + ), + as alloy_sol_types::SolType>::tokenize(&self._1), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: proposalPartsReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: proposalPartsReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `proposals(uint256)` and selector `0x013cf08b`. +```solidity +function proposals(uint256) external view returns (address claimant, uint256 uuid); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct proposalsCall(pub alloy::sol_types::private::primitives::aliases::U256); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`proposals(uint256)`](proposalsCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct proposalsReturn { + #[allow(missing_docs)] + pub claimant: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub uuid: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: proposalsCall) -> Self { + (value.0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for proposalsCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self(tuple.0) + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: proposalsReturn) -> Self { + (value.claimant, value.uuid) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for proposalsReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + claimant: tuple.0, + uuid: tuple.1, + } + } + } + } + impl proposalsReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + ( + ::tokenize( + &self.claimant, + ), + as alloy_sol_types::SolType>::tokenize(&self.uuid), + ) + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for proposalsCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = proposalsReturn; + type ReturnTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "proposals(uint256)"; + const SELECTOR: [u8; 4] = [1u8, 60u8, 240u8, 139u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.0), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + proposalsReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `readPreimage(bytes32,uint256)` and selector `0xe03110e1`. +```solidity +function readPreimage(bytes32 _key, uint256 _offset) external view returns (bytes32 dat_, uint256 datLen_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct readPreimageCall { + #[allow(missing_docs)] + pub _key: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub _offset: alloy::sol_types::private::primitives::aliases::U256, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`readPreimage(bytes32,uint256)`](readPreimageCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct readPreimageReturn { + #[allow(missing_docs)] + pub dat_: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub datLen_: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::FixedBytes<32>, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: readPreimageCall) -> Self { + (value._key, value._offset) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for readPreimageCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _key: tuple.0, + _offset: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::FixedBytes<32>, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: readPreimageReturn) -> Self { + (value.dat_, value.datLen_) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for readPreimageReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + dat_: tuple.0, + datLen_: tuple.1, + } + } + } + } + impl readPreimageReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.dat_), + as alloy_sol_types::SolType>::tokenize(&self.datLen_), + ) + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for readPreimageCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Uint<256>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = readPreimageReturn; + type ReturnTuple<'a> = ( + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Uint<256>, + ); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "readPreimage(bytes32,uint256)"; + const SELECTOR: [u8; 4] = [224u8, 49u8, 16u8, 225u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._key), + as alloy_sol_types::SolType>::tokenize(&self._offset), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + readPreimageReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `squeezeLPP(address,uint256,(uint64[25]),(bytes,uint256,bytes32),bytes32[],(bytes,uint256,bytes32),bytes32[])` and selector `0xd18534b5`. +```solidity +function squeezeLPP(address _claimant, uint256 _uuid, LibKeccak.StateMatrix memory _stateMatrix, Leaf memory _preState, bytes32[] memory _preStateProof, Leaf memory _postState, bytes32[] memory _postStateProof) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct squeezeLPPCall { + #[allow(missing_docs)] + pub _claimant: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _uuid: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _stateMatrix: ::RustType, + #[allow(missing_docs)] + pub _preState: ::RustType, + #[allow(missing_docs)] + pub _preStateProof: alloy::sol_types::private::Vec< + alloy::sol_types::private::FixedBytes<32>, + >, + #[allow(missing_docs)] + pub _postState: ::RustType, + #[allow(missing_docs)] + pub _postStateProof: alloy::sol_types::private::Vec< + alloy::sol_types::private::FixedBytes<32>, + >, + } + ///Container type for the return parameters of the [`squeezeLPP(address,uint256,(uint64[25]),(bytes,uint256,bytes32),bytes32[],(bytes,uint256,bytes32),bytes32[])`](squeezeLPPCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct squeezeLPPReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + LibKeccak::StateMatrix, + Leaf, + alloy::sol_types::sol_data::Array< + alloy::sol_types::sol_data::FixedBytes<32>, + >, + Leaf, + alloy::sol_types::sol_data::Array< + alloy::sol_types::sol_data::FixedBytes<32>, + >, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + ::RustType, + ::RustType, + alloy::sol_types::private::Vec< + alloy::sol_types::private::FixedBytes<32>, + >, + ::RustType, + alloy::sol_types::private::Vec>, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: squeezeLPPCall) -> Self { + ( + value._claimant, + value._uuid, + value._stateMatrix, + value._preState, + value._preStateProof, + value._postState, + value._postStateProof, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for squeezeLPPCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _claimant: tuple.0, + _uuid: tuple.1, + _stateMatrix: tuple.2, + _preState: tuple.3, + _preStateProof: tuple.4, + _postState: tuple.5, + _postStateProof: tuple.6, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: squeezeLPPReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for squeezeLPPReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl squeezeLPPReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for squeezeLPPCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + LibKeccak::StateMatrix, + Leaf, + alloy::sol_types::sol_data::Array< + alloy::sol_types::sol_data::FixedBytes<32>, + >, + Leaf, + alloy::sol_types::sol_data::Array< + alloy::sol_types::sol_data::FixedBytes<32>, + >, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = squeezeLPPReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "squeezeLPP(address,uint256,(uint64[25]),(bytes,uint256,bytes32),bytes32[],(bytes,uint256,bytes32),bytes32[])"; + const SELECTOR: [u8; 4] = [209u8, 133u8, 52u8, 181u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._claimant, + ), + as alloy_sol_types::SolType>::tokenize(&self._uuid), + ::tokenize( + &self._stateMatrix, + ), + ::tokenize(&self._preState), + , + > as alloy_sol_types::SolType>::tokenize(&self._preStateProof), + ::tokenize(&self._postState), + , + > as alloy_sol_types::SolType>::tokenize(&self._postStateProof), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + squeezeLPPReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `version()` and selector `0x54fd4d50`. +```solidity +function version() external view returns (string memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`version()`](versionCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for versionCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::String; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "version()"; + const SELECTOR: [u8; 4] = [84u8, 253u8, 77u8, 80u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `zeroHashes(uint256)` and selector `0x7ac54767`. +```solidity +function zeroHashes(uint256) external view returns (bytes32); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct zeroHashesCall(pub alloy::sol_types::private::primitives::aliases::U256); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`zeroHashes(uint256)`](zeroHashesCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct zeroHashesReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: zeroHashesCall) -> Self { + (value.0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for zeroHashesCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self(tuple.0) + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: zeroHashesReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for zeroHashesReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for zeroHashesCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::FixedBytes<32>; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "zeroHashes(uint256)"; + const SELECTOR: [u8; 4] = [122u8, 197u8, 71u8, 103u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.0), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: zeroHashesReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: zeroHashesReturn = r.into(); + r._0 + }) + } + } + }; + ///Container for all the [`PreimageOracle`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum PreimageOracleCalls { + #[allow(missing_docs)] + KECCAK_TREE_DEPTH(KECCAK_TREE_DEPTHCall), + #[allow(missing_docs)] + MAX_LEAF_COUNT(MAX_LEAF_COUNTCall), + #[allow(missing_docs)] + MIN_BOND_SIZE(MIN_BOND_SIZECall), + #[allow(missing_docs)] + PRECOMPILE_CALL_RESERVED_GAS(PRECOMPILE_CALL_RESERVED_GASCall), + #[allow(missing_docs)] + addLeavesLPP(addLeavesLPPCall), + #[allow(missing_docs)] + challengeFirstLPP(challengeFirstLPPCall), + #[allow(missing_docs)] + challengeLPP(challengeLPPCall), + #[allow(missing_docs)] + challengePeriod(challengePeriodCall), + #[allow(missing_docs)] + getTreeRootLPP(getTreeRootLPPCall), + #[allow(missing_docs)] + initLPP(initLPPCall), + #[allow(missing_docs)] + loadBlobPreimagePart(loadBlobPreimagePartCall), + #[allow(missing_docs)] + loadKeccak256PreimagePart(loadKeccak256PreimagePartCall), + #[allow(missing_docs)] + loadLocalData(loadLocalDataCall), + #[allow(missing_docs)] + loadPrecompilePreimagePart(loadPrecompilePreimagePartCall), + #[allow(missing_docs)] + loadSha256PreimagePart(loadSha256PreimagePartCall), + #[allow(missing_docs)] + minProposalSize(minProposalSizeCall), + #[allow(missing_docs)] + preimageLengths(preimageLengthsCall), + #[allow(missing_docs)] + preimagePartOk(preimagePartOkCall), + #[allow(missing_docs)] + preimageParts(preimagePartsCall), + #[allow(missing_docs)] + proposalBlocks(proposalBlocksCall), + #[allow(missing_docs)] + proposalBlocksLen(proposalBlocksLenCall), + #[allow(missing_docs)] + proposalBonds(proposalBondsCall), + #[allow(missing_docs)] + proposalBranches(proposalBranchesCall), + #[allow(missing_docs)] + proposalCount(proposalCountCall), + #[allow(missing_docs)] + proposalMetadata(proposalMetadataCall), + #[allow(missing_docs)] + proposalParts(proposalPartsCall), + #[allow(missing_docs)] + proposals(proposalsCall), + #[allow(missing_docs)] + readPreimage(readPreimageCall), + #[allow(missing_docs)] + squeezeLPP(squeezeLPPCall), + #[allow(missing_docs)] + version(versionCall), + #[allow(missing_docs)] + zeroHashes(zeroHashesCall), + } + impl PreimageOracleCalls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [1u8, 60u8, 240u8, 139u8], + [3u8, 89u8, 165u8, 99u8], + [32u8, 85u8, 179u8, 107u8], + [57u8, 9u8, 175u8, 92u8], + [77u8, 82u8, 180u8, 201u8], + [82u8, 240u8, 243u8, 173u8], + [84u8, 253u8, 77u8, 80u8], + [97u8, 35u8, 139u8, 222u8], + [101u8, 81u8, 146u8, 123u8], + [112u8, 81u8, 71u8, 46u8], + [121u8, 23u8, 222u8, 29u8], + [122u8, 197u8, 71u8, 103u8], + [133u8, 66u8, 207u8, 80u8], + [136u8, 40u8, 86u8, 239u8], + [141u8, 196u8, 190u8, 17u8], + [157u8, 83u8, 166u8, 72u8], + [157u8, 126u8, 135u8, 105u8], + [178u8, 230u8, 123u8, 168u8], + [180u8, 128u8, 30u8, 97u8], + [181u8, 231u8, 21u8, 76u8], + [209u8, 133u8, 52u8, 181u8], + [218u8, 53u8, 198u8, 100u8], + [221u8, 36u8, 249u8, 191u8], + [221u8, 205u8, 88u8, 222u8], + [224u8, 49u8, 16u8, 225u8], + [225u8, 89u8, 38u8, 17u8], + [234u8, 113u8, 57u8, 80u8], + [236u8, 94u8, 252u8, 188u8], + [243u8, 244u8, 128u8, 217u8], + [250u8, 243u8, 123u8, 199u8], + [254u8, 242u8, 180u8, 237u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(proposals), + ::core::stringify!(getTreeRootLPP), + ::core::stringify!(KECCAK_TREE_DEPTH), + ::core::stringify!(challengeLPP), + ::core::stringify!(MAX_LEAF_COUNT), + ::core::stringify!(loadLocalData), + ::core::stringify!(version), + ::core::stringify!(preimageParts), + ::core::stringify!(proposalMetadata), + ::core::stringify!(MIN_BOND_SIZE), + ::core::stringify!(addLeavesLPP), + ::core::stringify!(zeroHashes), + ::core::stringify!(preimagePartOk), + ::core::stringify!(proposalBlocks), + ::core::stringify!(loadSha256PreimagePart), + ::core::stringify!(proposalBlocksLen), + ::core::stringify!(loadBlobPreimagePart), + ::core::stringify!(proposalParts), + ::core::stringify!(proposalBranches), + ::core::stringify!(PRECOMPILE_CALL_RESERVED_GAS), + ::core::stringify!(squeezeLPP), + ::core::stringify!(proposalCount), + ::core::stringify!(minProposalSize), + ::core::stringify!(proposalBonds), + ::core::stringify!(readPreimage), + ::core::stringify!(loadKeccak256PreimagePart), + ::core::stringify!(loadPrecompilePreimagePart), + ::core::stringify!(challengeFirstLPP), + ::core::stringify!(challengePeriod), + ::core::stringify!(initLPP), + ::core::stringify!(preimageLengths), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for PreimageOracleCalls { + const NAME: &'static str = "PreimageOracleCalls"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 31usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::KECCAK_TREE_DEPTH(_) => { + ::SELECTOR + } + Self::MAX_LEAF_COUNT(_) => { + ::SELECTOR + } + Self::MIN_BOND_SIZE(_) => { + ::SELECTOR + } + Self::PRECOMPILE_CALL_RESERVED_GAS(_) => { + ::SELECTOR + } + Self::addLeavesLPP(_) => { + ::SELECTOR + } + Self::challengeFirstLPP(_) => { + ::SELECTOR + } + Self::challengeLPP(_) => { + ::SELECTOR + } + Self::challengePeriod(_) => { + ::SELECTOR + } + Self::getTreeRootLPP(_) => { + ::SELECTOR + } + Self::initLPP(_) => ::SELECTOR, + Self::loadBlobPreimagePart(_) => { + ::SELECTOR + } + Self::loadKeccak256PreimagePart(_) => { + ::SELECTOR + } + Self::loadLocalData(_) => { + ::SELECTOR + } + Self::loadPrecompilePreimagePart(_) => { + ::SELECTOR + } + Self::loadSha256PreimagePart(_) => { + ::SELECTOR + } + Self::minProposalSize(_) => { + ::SELECTOR + } + Self::preimageLengths(_) => { + ::SELECTOR + } + Self::preimagePartOk(_) => { + ::SELECTOR + } + Self::preimageParts(_) => { + ::SELECTOR + } + Self::proposalBlocks(_) => { + ::SELECTOR + } + Self::proposalBlocksLen(_) => { + ::SELECTOR + } + Self::proposalBonds(_) => { + ::SELECTOR + } + Self::proposalBranches(_) => { + ::SELECTOR + } + Self::proposalCount(_) => { + ::SELECTOR + } + Self::proposalMetadata(_) => { + ::SELECTOR + } + Self::proposalParts(_) => { + ::SELECTOR + } + Self::proposals(_) => { + ::SELECTOR + } + Self::readPreimage(_) => { + ::SELECTOR + } + Self::squeezeLPP(_) => { + ::SELECTOR + } + Self::version(_) => ::SELECTOR, + Self::zeroHashes(_) => { + ::SELECTOR + } + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn proposals( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(PreimageOracleCalls::proposals) + } + proposals + }, + { + fn getTreeRootLPP( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PreimageOracleCalls::getTreeRootLPP) + } + getTreeRootLPP + }, + { + fn KECCAK_TREE_DEPTH( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PreimageOracleCalls::KECCAK_TREE_DEPTH) + } + KECCAK_TREE_DEPTH + }, + { + fn challengeLPP( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PreimageOracleCalls::challengeLPP) + } + challengeLPP + }, + { + fn MAX_LEAF_COUNT( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PreimageOracleCalls::MAX_LEAF_COUNT) + } + MAX_LEAF_COUNT + }, + { + fn loadLocalData( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PreimageOracleCalls::loadLocalData) + } + loadLocalData + }, + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(PreimageOracleCalls::version) + } + version + }, + { + fn preimageParts( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PreimageOracleCalls::preimageParts) + } + preimageParts + }, + { + fn proposalMetadata( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PreimageOracleCalls::proposalMetadata) + } + proposalMetadata + }, + { + fn MIN_BOND_SIZE( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PreimageOracleCalls::MIN_BOND_SIZE) + } + MIN_BOND_SIZE + }, + { + fn addLeavesLPP( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PreimageOracleCalls::addLeavesLPP) + } + addLeavesLPP + }, + { + fn zeroHashes( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PreimageOracleCalls::zeroHashes) + } + zeroHashes + }, + { + fn preimagePartOk( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PreimageOracleCalls::preimagePartOk) + } + preimagePartOk + }, + { + fn proposalBlocks( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PreimageOracleCalls::proposalBlocks) + } + proposalBlocks + }, + { + fn loadSha256PreimagePart( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PreimageOracleCalls::loadSha256PreimagePart) + } + loadSha256PreimagePart + }, + { + fn proposalBlocksLen( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PreimageOracleCalls::proposalBlocksLen) + } + proposalBlocksLen + }, + { + fn loadBlobPreimagePart( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PreimageOracleCalls::loadBlobPreimagePart) + } + loadBlobPreimagePart + }, + { + fn proposalParts( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PreimageOracleCalls::proposalParts) + } + proposalParts + }, + { + fn proposalBranches( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PreimageOracleCalls::proposalBranches) + } + proposalBranches + }, + { + fn PRECOMPILE_CALL_RESERVED_GAS( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PreimageOracleCalls::PRECOMPILE_CALL_RESERVED_GAS) + } + PRECOMPILE_CALL_RESERVED_GAS + }, + { + fn squeezeLPP( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PreimageOracleCalls::squeezeLPP) + } + squeezeLPP + }, + { + fn proposalCount( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PreimageOracleCalls::proposalCount) + } + proposalCount + }, + { + fn minProposalSize( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PreimageOracleCalls::minProposalSize) + } + minProposalSize + }, + { + fn proposalBonds( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PreimageOracleCalls::proposalBonds) + } + proposalBonds + }, + { + fn readPreimage( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PreimageOracleCalls::readPreimage) + } + readPreimage + }, + { + fn loadKeccak256PreimagePart( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PreimageOracleCalls::loadKeccak256PreimagePart) + } + loadKeccak256PreimagePart + }, + { + fn loadPrecompilePreimagePart( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PreimageOracleCalls::loadPrecompilePreimagePart) + } + loadPrecompilePreimagePart + }, + { + fn challengeFirstLPP( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PreimageOracleCalls::challengeFirstLPP) + } + challengeFirstLPP + }, + { + fn challengePeriod( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PreimageOracleCalls::challengePeriod) + } + challengePeriod + }, + { + fn initLPP( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(PreimageOracleCalls::initLPP) + } + initLPP + }, + { + fn preimageLengths( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PreimageOracleCalls::preimageLengths) + } + preimageLengths + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn proposals( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PreimageOracleCalls::proposals) + } + proposals + }, + { + fn getTreeRootLPP( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PreimageOracleCalls::getTreeRootLPP) + } + getTreeRootLPP + }, + { + fn KECCAK_TREE_DEPTH( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PreimageOracleCalls::KECCAK_TREE_DEPTH) + } + KECCAK_TREE_DEPTH + }, + { + fn challengeLPP( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PreimageOracleCalls::challengeLPP) + } + challengeLPP + }, + { + fn MAX_LEAF_COUNT( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PreimageOracleCalls::MAX_LEAF_COUNT) + } + MAX_LEAF_COUNT + }, + { + fn loadLocalData( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PreimageOracleCalls::loadLocalData) + } + loadLocalData + }, + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PreimageOracleCalls::version) + } + version + }, + { + fn preimageParts( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PreimageOracleCalls::preimageParts) + } + preimageParts + }, + { + fn proposalMetadata( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PreimageOracleCalls::proposalMetadata) + } + proposalMetadata + }, + { + fn MIN_BOND_SIZE( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PreimageOracleCalls::MIN_BOND_SIZE) + } + MIN_BOND_SIZE + }, + { + fn addLeavesLPP( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PreimageOracleCalls::addLeavesLPP) + } + addLeavesLPP + }, + { + fn zeroHashes( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PreimageOracleCalls::zeroHashes) + } + zeroHashes + }, + { + fn preimagePartOk( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PreimageOracleCalls::preimagePartOk) + } + preimagePartOk + }, + { + fn proposalBlocks( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PreimageOracleCalls::proposalBlocks) + } + proposalBlocks + }, + { + fn loadSha256PreimagePart( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PreimageOracleCalls::loadSha256PreimagePart) + } + loadSha256PreimagePart + }, + { + fn proposalBlocksLen( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PreimageOracleCalls::proposalBlocksLen) + } + proposalBlocksLen + }, + { + fn loadBlobPreimagePart( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PreimageOracleCalls::loadBlobPreimagePart) + } + loadBlobPreimagePart + }, + { + fn proposalParts( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PreimageOracleCalls::proposalParts) + } + proposalParts + }, + { + fn proposalBranches( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PreimageOracleCalls::proposalBranches) + } + proposalBranches + }, + { + fn PRECOMPILE_CALL_RESERVED_GAS( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PreimageOracleCalls::PRECOMPILE_CALL_RESERVED_GAS) + } + PRECOMPILE_CALL_RESERVED_GAS + }, + { + fn squeezeLPP( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PreimageOracleCalls::squeezeLPP) + } + squeezeLPP + }, + { + fn proposalCount( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PreimageOracleCalls::proposalCount) + } + proposalCount + }, + { + fn minProposalSize( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PreimageOracleCalls::minProposalSize) + } + minProposalSize + }, + { + fn proposalBonds( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PreimageOracleCalls::proposalBonds) + } + proposalBonds + }, + { + fn readPreimage( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PreimageOracleCalls::readPreimage) + } + readPreimage + }, + { + fn loadKeccak256PreimagePart( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PreimageOracleCalls::loadKeccak256PreimagePart) + } + loadKeccak256PreimagePart + }, + { + fn loadPrecompilePreimagePart( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PreimageOracleCalls::loadPrecompilePreimagePart) + } + loadPrecompilePreimagePart + }, + { + fn challengeFirstLPP( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PreimageOracleCalls::challengeFirstLPP) + } + challengeFirstLPP + }, + { + fn challengePeriod( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PreimageOracleCalls::challengePeriod) + } + challengePeriod + }, + { + fn initLPP( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PreimageOracleCalls::initLPP) + } + initLPP + }, + { + fn preimageLengths( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PreimageOracleCalls::preimageLengths) + } + preimageLengths + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::KECCAK_TREE_DEPTH(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::MAX_LEAF_COUNT(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::MIN_BOND_SIZE(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::PRECOMPILE_CALL_RESERVED_GAS(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::addLeavesLPP(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::challengeFirstLPP(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::challengeLPP(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::challengePeriod(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::getTreeRootLPP(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::initLPP(inner) => { + ::abi_encoded_size(inner) + } + Self::loadBlobPreimagePart(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::loadKeccak256PreimagePart(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::loadLocalData(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::loadPrecompilePreimagePart(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::loadSha256PreimagePart(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::minProposalSize(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::preimageLengths(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::preimagePartOk(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::preimageParts(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::proposalBlocks(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::proposalBlocksLen(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::proposalBonds(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::proposalBranches(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::proposalCount(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::proposalMetadata(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::proposalParts(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::proposals(inner) => { + ::abi_encoded_size(inner) + } + Self::readPreimage(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::squeezeLPP(inner) => { + ::abi_encoded_size(inner) + } + Self::version(inner) => { + ::abi_encoded_size(inner) + } + Self::zeroHashes(inner) => { + ::abi_encoded_size(inner) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::KECCAK_TREE_DEPTH(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::MAX_LEAF_COUNT(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::MIN_BOND_SIZE(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::PRECOMPILE_CALL_RESERVED_GAS(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::addLeavesLPP(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::challengeFirstLPP(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::challengeLPP(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::challengePeriod(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::getTreeRootLPP(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::initLPP(inner) => { + ::abi_encode_raw(inner, out) + } + Self::loadBlobPreimagePart(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::loadKeccak256PreimagePart(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::loadLocalData(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::loadPrecompilePreimagePart(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::loadSha256PreimagePart(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::minProposalSize(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::preimageLengths(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::preimagePartOk(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::preimageParts(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::proposalBlocks(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::proposalBlocksLen(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::proposalBonds(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::proposalBranches(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::proposalCount(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::proposalMetadata(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::proposalParts(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::proposals(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::readPreimage(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::squeezeLPP(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::version(inner) => { + ::abi_encode_raw(inner, out) + } + Self::zeroHashes(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + } + } + } + ///Container for all the [`PreimageOracle`](self) custom errors. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum PreimageOracleErrors { + #[allow(missing_docs)] + ActiveProposal(ActiveProposal), + #[allow(missing_docs)] + AlreadyFinalized(AlreadyFinalized), + #[allow(missing_docs)] + AlreadyInitialized(AlreadyInitialized), + #[allow(missing_docs)] + BadProposal(BadProposal), + #[allow(missing_docs)] + BondTransferFailed(BondTransferFailed), + #[allow(missing_docs)] + InsufficientBond(InsufficientBond), + #[allow(missing_docs)] + InvalidInputSize(InvalidInputSize), + #[allow(missing_docs)] + InvalidPreimage(InvalidPreimage), + #[allow(missing_docs)] + InvalidProof(InvalidProof), + #[allow(missing_docs)] + NotEOA(NotEOA), + #[allow(missing_docs)] + NotInitialized(NotInitialized), + #[allow(missing_docs)] + PartOffsetOOB(PartOffsetOOB), + #[allow(missing_docs)] + PostStateMatches(PostStateMatches), + #[allow(missing_docs)] + StatesNotContiguous(StatesNotContiguous), + #[allow(missing_docs)] + TreeSizeOverflow(TreeSizeOverflow), + #[allow(missing_docs)] + WrongStartingBlock(WrongStartingBlock), + } + impl PreimageOracleErrors { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [9u8, 189u8, 227u8, 57u8], + [13u8, 193u8, 73u8, 240u8], + [25u8, 104u8, 169u8, 2u8], + [71u8, 90u8, 37u8, 53u8], + [85u8, 212u8, 203u8, 249u8], + [96u8, 249u8, 93u8, 90u8], + [98u8, 41u8, 87u8, 35u8], + [123u8, 29u8, 175u8, 209u8], + [131u8, 230u8, 204u8, 107u8], + [135u8, 19u8, 141u8, 92u8], + [152u8, 67u8, 20u8, 91u8], + [154u8, 59u8, 17u8, 153u8], + [186u8, 9u8, 45u8, 22u8], + [195u8, 52u8, 240u8, 105u8], + [233u8, 44u8, 70u8, 159u8], + [254u8, 37u8, 73u8, 135u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(InvalidProof), + ::core::stringify!(AlreadyInitialized), + ::core::stringify!(InvalidPreimage), + ::core::stringify!(AlreadyFinalized), + ::core::stringify!(ActiveProposal), + ::core::stringify!(WrongStartingBlock), + ::core::stringify!(TreeSizeOverflow), + ::core::stringify!(InvalidInputSize), + ::core::stringify!(BondTransferFailed), + ::core::stringify!(NotInitialized), + ::core::stringify!(PostStateMatches), + ::core::stringify!(StatesNotContiguous), + ::core::stringify!(NotEOA), + ::core::stringify!(BadProposal), + ::core::stringify!(InsufficientBond), + ::core::stringify!(PartOffsetOOB), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for PreimageOracleErrors { + const NAME: &'static str = "PreimageOracleErrors"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 16usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::ActiveProposal(_) => { + ::SELECTOR + } + Self::AlreadyFinalized(_) => { + ::SELECTOR + } + Self::AlreadyInitialized(_) => { + ::SELECTOR + } + Self::BadProposal(_) => { + ::SELECTOR + } + Self::BondTransferFailed(_) => { + ::SELECTOR + } + Self::InsufficientBond(_) => { + ::SELECTOR + } + Self::InvalidInputSize(_) => { + ::SELECTOR + } + Self::InvalidPreimage(_) => { + ::SELECTOR + } + Self::InvalidProof(_) => { + ::SELECTOR + } + Self::NotEOA(_) => ::SELECTOR, + Self::NotInitialized(_) => { + ::SELECTOR + } + Self::PartOffsetOOB(_) => { + ::SELECTOR + } + Self::PostStateMatches(_) => { + ::SELECTOR + } + Self::StatesNotContiguous(_) => { + ::SELECTOR + } + Self::TreeSizeOverflow(_) => { + ::SELECTOR + } + Self::WrongStartingBlock(_) => { + ::SELECTOR + } + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn InvalidProof( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(PreimageOracleErrors::InvalidProof) + } + InvalidProof + }, + { + fn AlreadyInitialized( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PreimageOracleErrors::AlreadyInitialized) + } + AlreadyInitialized + }, + { + fn InvalidPreimage( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PreimageOracleErrors::InvalidPreimage) + } + InvalidPreimage + }, + { + fn AlreadyFinalized( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PreimageOracleErrors::AlreadyFinalized) + } + AlreadyFinalized + }, + { + fn ActiveProposal( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PreimageOracleErrors::ActiveProposal) + } + ActiveProposal + }, + { + fn WrongStartingBlock( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PreimageOracleErrors::WrongStartingBlock) + } + WrongStartingBlock + }, + { + fn TreeSizeOverflow( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PreimageOracleErrors::TreeSizeOverflow) + } + TreeSizeOverflow + }, + { + fn InvalidInputSize( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PreimageOracleErrors::InvalidInputSize) + } + InvalidInputSize + }, + { + fn BondTransferFailed( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PreimageOracleErrors::BondTransferFailed) + } + BondTransferFailed + }, + { + fn NotInitialized( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PreimageOracleErrors::NotInitialized) + } + NotInitialized + }, + { + fn PostStateMatches( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PreimageOracleErrors::PostStateMatches) + } + PostStateMatches + }, + { + fn StatesNotContiguous( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PreimageOracleErrors::StatesNotContiguous) + } + StatesNotContiguous + }, + { + fn NotEOA( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(PreimageOracleErrors::NotEOA) + } + NotEOA + }, + { + fn BadProposal( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(PreimageOracleErrors::BadProposal) + } + BadProposal + }, + { + fn InsufficientBond( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PreimageOracleErrors::InsufficientBond) + } + InsufficientBond + }, + { + fn PartOffsetOOB( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(PreimageOracleErrors::PartOffsetOOB) + } + PartOffsetOOB + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn InvalidProof( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PreimageOracleErrors::InvalidProof) + } + InvalidProof + }, + { + fn AlreadyInitialized( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PreimageOracleErrors::AlreadyInitialized) + } + AlreadyInitialized + }, + { + fn InvalidPreimage( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PreimageOracleErrors::InvalidPreimage) + } + InvalidPreimage + }, + { + fn AlreadyFinalized( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PreimageOracleErrors::AlreadyFinalized) + } + AlreadyFinalized + }, + { + fn ActiveProposal( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PreimageOracleErrors::ActiveProposal) + } + ActiveProposal + }, + { + fn WrongStartingBlock( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PreimageOracleErrors::WrongStartingBlock) + } + WrongStartingBlock + }, + { + fn TreeSizeOverflow( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PreimageOracleErrors::TreeSizeOverflow) + } + TreeSizeOverflow + }, + { + fn InvalidInputSize( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PreimageOracleErrors::InvalidInputSize) + } + InvalidInputSize + }, + { + fn BondTransferFailed( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PreimageOracleErrors::BondTransferFailed) + } + BondTransferFailed + }, + { + fn NotInitialized( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PreimageOracleErrors::NotInitialized) + } + NotInitialized + }, + { + fn PostStateMatches( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PreimageOracleErrors::PostStateMatches) + } + PostStateMatches + }, + { + fn StatesNotContiguous( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PreimageOracleErrors::StatesNotContiguous) + } + StatesNotContiguous + }, + { + fn NotEOA( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PreimageOracleErrors::NotEOA) + } + NotEOA + }, + { + fn BadProposal( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PreimageOracleErrors::BadProposal) + } + BadProposal + }, + { + fn InsufficientBond( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PreimageOracleErrors::InsufficientBond) + } + InsufficientBond + }, + { + fn PartOffsetOOB( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(PreimageOracleErrors::PartOffsetOOB) + } + PartOffsetOOB + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::ActiveProposal(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::AlreadyFinalized(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::AlreadyInitialized(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::BadProposal(inner) => { + ::abi_encoded_size(inner) + } + Self::BondTransferFailed(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::InsufficientBond(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::InvalidInputSize(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::InvalidPreimage(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::InvalidProof(inner) => { + ::abi_encoded_size(inner) + } + Self::NotEOA(inner) => { + ::abi_encoded_size(inner) + } + Self::NotInitialized(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::PartOffsetOOB(inner) => { + ::abi_encoded_size(inner) + } + Self::PostStateMatches(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::StatesNotContiguous(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::TreeSizeOverflow(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::WrongStartingBlock(inner) => { + ::abi_encoded_size( + inner, + ) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::ActiveProposal(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::AlreadyFinalized(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::AlreadyInitialized(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::BadProposal(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::BondTransferFailed(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InsufficientBond(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidInputSize(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidPreimage(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidProof(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::NotEOA(inner) => { + ::abi_encode_raw(inner, out) + } + Self::NotInitialized(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::PartOffsetOOB(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::PostStateMatches(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::StatesNotContiguous(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::TreeSizeOverflow(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::WrongStartingBlock(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`PreimageOracle`](self) contract instance. + +See the [wrapper's documentation](`PreimageOracleInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> PreimageOracleInstance { + PreimageOracleInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + _minProposalSize: alloy::sol_types::private::primitives::aliases::U256, + _challengePeriod: alloy::sol_types::private::primitives::aliases::U256, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + PreimageOracleInstance::< + P, + N, + >::deploy(__provider, _minProposalSize, _challengePeriod) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + _minProposalSize: alloy::sol_types::private::primitives::aliases::U256, + _challengePeriod: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::RawCallBuilder { + PreimageOracleInstance::< + P, + N, + >::deploy_builder(__provider, _minProposalSize, _challengePeriod) + } + /**A [`PreimageOracle`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`PreimageOracle`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct PreimageOracleInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for PreimageOracleInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("PreimageOracleInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > PreimageOracleInstance { + /**Creates a new wrapper around an on-chain [`PreimageOracle`](self) contract instance. + +See the [wrapper's documentation](`PreimageOracleInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + _minProposalSize: alloy::sol_types::private::primitives::aliases::U256, + _challengePeriod: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder( + __provider, + _minProposalSize, + _challengePeriod, + ); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder( + __provider: P, + _minProposalSize: alloy::sol_types::private::primitives::aliases::U256, + _challengePeriod: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + [ + &BYTECODE[..], + &alloy_sol_types::SolConstructor::abi_encode( + &constructorCall { + _minProposalSize, + _challengePeriod, + }, + )[..], + ] + .concat() + .into(), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl PreimageOracleInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> PreimageOracleInstance { + PreimageOracleInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > PreimageOracleInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`KECCAK_TREE_DEPTH`] function. + pub fn KECCAK_TREE_DEPTH( + &self, + ) -> alloy_contract::SolCallBuilder<&P, KECCAK_TREE_DEPTHCall, N> { + self.call_builder(&KECCAK_TREE_DEPTHCall) + } + ///Creates a new call builder for the [`MAX_LEAF_COUNT`] function. + pub fn MAX_LEAF_COUNT( + &self, + ) -> alloy_contract::SolCallBuilder<&P, MAX_LEAF_COUNTCall, N> { + self.call_builder(&MAX_LEAF_COUNTCall) + } + ///Creates a new call builder for the [`MIN_BOND_SIZE`] function. + pub fn MIN_BOND_SIZE( + &self, + ) -> alloy_contract::SolCallBuilder<&P, MIN_BOND_SIZECall, N> { + self.call_builder(&MIN_BOND_SIZECall) + } + ///Creates a new call builder for the [`PRECOMPILE_CALL_RESERVED_GAS`] function. + pub fn PRECOMPILE_CALL_RESERVED_GAS( + &self, + ) -> alloy_contract::SolCallBuilder<&P, PRECOMPILE_CALL_RESERVED_GASCall, N> { + self.call_builder(&PRECOMPILE_CALL_RESERVED_GASCall) + } + ///Creates a new call builder for the [`addLeavesLPP`] function. + pub fn addLeavesLPP( + &self, + _uuid: alloy::sol_types::private::primitives::aliases::U256, + _inputStartBlock: alloy::sol_types::private::primitives::aliases::U256, + _input: alloy::sol_types::private::Bytes, + _stateCommitments: alloy::sol_types::private::Vec< + alloy::sol_types::private::FixedBytes<32>, + >, + _finalize: bool, + ) -> alloy_contract::SolCallBuilder<&P, addLeavesLPPCall, N> { + self.call_builder( + &addLeavesLPPCall { + _uuid, + _inputStartBlock, + _input, + _stateCommitments, + _finalize, + }, + ) + } + ///Creates a new call builder for the [`challengeFirstLPP`] function. + pub fn challengeFirstLPP( + &self, + _claimant: alloy::sol_types::private::Address, + _uuid: alloy::sol_types::private::primitives::aliases::U256, + _postState: ::RustType, + _postStateProof: alloy::sol_types::private::Vec< + alloy::sol_types::private::FixedBytes<32>, + >, + ) -> alloy_contract::SolCallBuilder<&P, challengeFirstLPPCall, N> { + self.call_builder( + &challengeFirstLPPCall { + _claimant, + _uuid, + _postState, + _postStateProof, + }, + ) + } + ///Creates a new call builder for the [`challengeLPP`] function. + pub fn challengeLPP( + &self, + _claimant: alloy::sol_types::private::Address, + _uuid: alloy::sol_types::private::primitives::aliases::U256, + _stateMatrix: ::RustType, + _preState: ::RustType, + _preStateProof: alloy::sol_types::private::Vec< + alloy::sol_types::private::FixedBytes<32>, + >, + _postState: ::RustType, + _postStateProof: alloy::sol_types::private::Vec< + alloy::sol_types::private::FixedBytes<32>, + >, + ) -> alloy_contract::SolCallBuilder<&P, challengeLPPCall, N> { + self.call_builder( + &challengeLPPCall { + _claimant, + _uuid, + _stateMatrix, + _preState, + _preStateProof, + _postState, + _postStateProof, + }, + ) + } + ///Creates a new call builder for the [`challengePeriod`] function. + pub fn challengePeriod( + &self, + ) -> alloy_contract::SolCallBuilder<&P, challengePeriodCall, N> { + self.call_builder(&challengePeriodCall) + } + ///Creates a new call builder for the [`getTreeRootLPP`] function. + pub fn getTreeRootLPP( + &self, + _owner: alloy::sol_types::private::Address, + _uuid: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, getTreeRootLPPCall, N> { + self.call_builder( + &getTreeRootLPPCall { + _owner, + _uuid, + }, + ) + } + ///Creates a new call builder for the [`initLPP`] function. + pub fn initLPP( + &self, + _uuid: alloy::sol_types::private::primitives::aliases::U256, + _partOffset: u32, + _claimedSize: u32, + ) -> alloy_contract::SolCallBuilder<&P, initLPPCall, N> { + self.call_builder( + &initLPPCall { + _uuid, + _partOffset, + _claimedSize, + }, + ) + } + ///Creates a new call builder for the [`loadBlobPreimagePart`] function. + pub fn loadBlobPreimagePart( + &self, + _z: alloy::sol_types::private::primitives::aliases::U256, + _y: alloy::sol_types::private::primitives::aliases::U256, + _commitment: alloy::sol_types::private::Bytes, + _proof: alloy::sol_types::private::Bytes, + _partOffset: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, loadBlobPreimagePartCall, N> { + self.call_builder( + &loadBlobPreimagePartCall { + _z, + _y, + _commitment, + _proof, + _partOffset, + }, + ) + } + ///Creates a new call builder for the [`loadKeccak256PreimagePart`] function. + pub fn loadKeccak256PreimagePart( + &self, + _partOffset: alloy::sol_types::private::primitives::aliases::U256, + _preimage: alloy::sol_types::private::Bytes, + ) -> alloy_contract::SolCallBuilder<&P, loadKeccak256PreimagePartCall, N> { + self.call_builder( + &loadKeccak256PreimagePartCall { + _partOffset, + _preimage, + }, + ) + } + ///Creates a new call builder for the [`loadLocalData`] function. + pub fn loadLocalData( + &self, + _ident: alloy::sol_types::private::primitives::aliases::U256, + _localContext: alloy::sol_types::private::FixedBytes<32>, + _word: alloy::sol_types::private::FixedBytes<32>, + _size: alloy::sol_types::private::primitives::aliases::U256, + _partOffset: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, loadLocalDataCall, N> { + self.call_builder( + &loadLocalDataCall { + _ident, + _localContext, + _word, + _size, + _partOffset, + }, + ) + } + ///Creates a new call builder for the [`loadPrecompilePreimagePart`] function. + pub fn loadPrecompilePreimagePart( + &self, + _partOffset: alloy::sol_types::private::primitives::aliases::U256, + _precompile: alloy::sol_types::private::Address, + _requiredGas: u64, + _input: alloy::sol_types::private::Bytes, + ) -> alloy_contract::SolCallBuilder<&P, loadPrecompilePreimagePartCall, N> { + self.call_builder( + &loadPrecompilePreimagePartCall { + _partOffset, + _precompile, + _requiredGas, + _input, + }, + ) + } + ///Creates a new call builder for the [`loadSha256PreimagePart`] function. + pub fn loadSha256PreimagePart( + &self, + _partOffset: alloy::sol_types::private::primitives::aliases::U256, + _preimage: alloy::sol_types::private::Bytes, + ) -> alloy_contract::SolCallBuilder<&P, loadSha256PreimagePartCall, N> { + self.call_builder( + &loadSha256PreimagePartCall { + _partOffset, + _preimage, + }, + ) + } + ///Creates a new call builder for the [`minProposalSize`] function. + pub fn minProposalSize( + &self, + ) -> alloy_contract::SolCallBuilder<&P, minProposalSizeCall, N> { + self.call_builder(&minProposalSizeCall) + } + ///Creates a new call builder for the [`preimageLengths`] function. + pub fn preimageLengths( + &self, + _0: alloy::sol_types::private::FixedBytes<32>, + ) -> alloy_contract::SolCallBuilder<&P, preimageLengthsCall, N> { + self.call_builder(&preimageLengthsCall(_0)) + } + ///Creates a new call builder for the [`preimagePartOk`] function. + pub fn preimagePartOk( + &self, + _0: alloy::sol_types::private::FixedBytes<32>, + _1: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, preimagePartOkCall, N> { + self.call_builder(&preimagePartOkCall { _0, _1 }) + } + ///Creates a new call builder for the [`preimageParts`] function. + pub fn preimageParts( + &self, + _0: alloy::sol_types::private::FixedBytes<32>, + _1: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, preimagePartsCall, N> { + self.call_builder(&preimagePartsCall { _0, _1 }) + } + ///Creates a new call builder for the [`proposalBlocks`] function. + pub fn proposalBlocks( + &self, + _0: alloy::sol_types::private::Address, + _1: alloy::sol_types::private::primitives::aliases::U256, + _2: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, proposalBlocksCall, N> { + self.call_builder(&proposalBlocksCall { _0, _1, _2 }) + } + ///Creates a new call builder for the [`proposalBlocksLen`] function. + pub fn proposalBlocksLen( + &self, + _claimant: alloy::sol_types::private::Address, + _uuid: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, proposalBlocksLenCall, N> { + self.call_builder( + &proposalBlocksLenCall { + _claimant, + _uuid, + }, + ) + } + ///Creates a new call builder for the [`proposalBonds`] function. + pub fn proposalBonds( + &self, + _0: alloy::sol_types::private::Address, + _1: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, proposalBondsCall, N> { + self.call_builder(&proposalBondsCall { _0, _1 }) + } + ///Creates a new call builder for the [`proposalBranches`] function. + pub fn proposalBranches( + &self, + _0: alloy::sol_types::private::Address, + _1: alloy::sol_types::private::primitives::aliases::U256, + _2: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, proposalBranchesCall, N> { + self.call_builder(&proposalBranchesCall { _0, _1, _2 }) + } + ///Creates a new call builder for the [`proposalCount`] function. + pub fn proposalCount( + &self, + ) -> alloy_contract::SolCallBuilder<&P, proposalCountCall, N> { + self.call_builder(&proposalCountCall) + } + ///Creates a new call builder for the [`proposalMetadata`] function. + pub fn proposalMetadata( + &self, + _0: alloy::sol_types::private::Address, + _1: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, proposalMetadataCall, N> { + self.call_builder(&proposalMetadataCall { _0, _1 }) + } + ///Creates a new call builder for the [`proposalParts`] function. + pub fn proposalParts( + &self, + _0: alloy::sol_types::private::Address, + _1: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, proposalPartsCall, N> { + self.call_builder(&proposalPartsCall { _0, _1 }) + } + ///Creates a new call builder for the [`proposals`] function. + pub fn proposals( + &self, + _0: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, proposalsCall, N> { + self.call_builder(&proposalsCall(_0)) + } + ///Creates a new call builder for the [`readPreimage`] function. + pub fn readPreimage( + &self, + _key: alloy::sol_types::private::FixedBytes<32>, + _offset: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, readPreimageCall, N> { + self.call_builder(&readPreimageCall { _key, _offset }) + } + ///Creates a new call builder for the [`squeezeLPP`] function. + pub fn squeezeLPP( + &self, + _claimant: alloy::sol_types::private::Address, + _uuid: alloy::sol_types::private::primitives::aliases::U256, + _stateMatrix: ::RustType, + _preState: ::RustType, + _preStateProof: alloy::sol_types::private::Vec< + alloy::sol_types::private::FixedBytes<32>, + >, + _postState: ::RustType, + _postStateProof: alloy::sol_types::private::Vec< + alloy::sol_types::private::FixedBytes<32>, + >, + ) -> alloy_contract::SolCallBuilder<&P, squeezeLPPCall, N> { + self.call_builder( + &squeezeLPPCall { + _claimant, + _uuid, + _stateMatrix, + _preState, + _preStateProof, + _postState, + _postStateProof, + }, + ) + } + ///Creates a new call builder for the [`version`] function. + pub fn version(&self) -> alloy_contract::SolCallBuilder<&P, versionCall, N> { + self.call_builder(&versionCall) + } + ///Creates a new call builder for the [`zeroHashes`] function. + pub fn zeroHashes( + &self, + _0: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, zeroHashesCall, N> { + self.call_builder(&zeroHashesCall(_0)) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > PreimageOracleInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + } +} diff --git a/bindings/rust/src/preinstalls.rs b/bindings/rust/src/preinstalls.rs new file mode 100644 index 000000000..ee149ffbd --- /dev/null +++ b/bindings/rust/src/preinstalls.rs @@ -0,0 +1,215 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface Preinstalls {} +``` + +...which was generated by the following JSON ABI: +```json +[] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod Preinstalls { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`-`7`\x0B\x82\x82\x829\x80Q`\0\x1A`s\x14`*WcNH{q`\xE0\x1B`\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`\0\x80\xFD\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + 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`\0\x80\xFD\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`Preinstalls`](self) contract instance. + +See the [wrapper's documentation](`PreinstallsInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> PreinstallsInstance { + PreinstallsInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + PreinstallsInstance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + PreinstallsInstance::::deploy_builder(__provider) + } + /**A [`Preinstalls`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`Preinstalls`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct PreinstallsInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for PreinstallsInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("PreinstallsInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > PreinstallsInstance { + /**Creates a new wrapper around an on-chain [`Preinstalls`](self) contract instance. + +See the [wrapper's documentation](`PreinstallsInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl PreinstallsInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> PreinstallsInstance { + PreinstallsInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > PreinstallsInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > PreinstallsInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + } +} diff --git a/bindings/rust/src/protocol_versions.rs b/bindings/rust/src/protocol_versions.rs new file mode 100644 index 000000000..37d32fcae --- /dev/null +++ b/bindings/rust/src/protocol_versions.rs @@ -0,0 +1,3726 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface ProtocolVersions { + type UpdateType is uint8; + type ProtocolVersion is uint256; + + event ConfigUpdate(uint256 indexed version, UpdateType indexed updateType, bytes data); + event Initialized(uint8 version); + event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); + + constructor(); + + function RECOMMENDED_SLOT() external view returns (bytes32); + function REQUIRED_SLOT() external view returns (bytes32); + function VERSION() external view returns (uint256); + function initialize(address _owner, ProtocolVersion _required, ProtocolVersion _recommended) external; + function owner() external view returns (address); + function recommended() external view returns (ProtocolVersion out_); + function renounceOwnership() external; + function required() external view returns (ProtocolVersion out_); + function setRecommended(ProtocolVersion _recommended) external; + function setRequired(ProtocolVersion _required) external; + function transferOwnership(address newOwner) external; + function version() external view returns (string memory); +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "constructor", + "inputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "RECOMMENDED_SLOT", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "REQUIRED_SLOT", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "VERSION", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "initialize", + "inputs": [ + { + "name": "_owner", + "type": "address", + "internalType": "address" + }, + { + "name": "_required", + "type": "uint256", + "internalType": "ProtocolVersion" + }, + { + "name": "_recommended", + "type": "uint256", + "internalType": "ProtocolVersion" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "owner", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "recommended", + "inputs": [], + "outputs": [ + { + "name": "out_", + "type": "uint256", + "internalType": "ProtocolVersion" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "renounceOwnership", + "inputs": [], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "required", + "inputs": [], + "outputs": [ + { + "name": "out_", + "type": "uint256", + "internalType": "ProtocolVersion" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "setRecommended", + "inputs": [ + { + "name": "_recommended", + "type": "uint256", + "internalType": "ProtocolVersion" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "setRequired", + "inputs": [ + { + "name": "_required", + "type": "uint256", + "internalType": "ProtocolVersion" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "transferOwnership", + "inputs": [ + { + "name": "newOwner", + "type": "address", + "internalType": "address" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "version", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "view" + }, + { + "type": "event", + "name": "ConfigUpdate", + "inputs": [ + { + "name": "version", + "type": "uint256", + "indexed": true, + "internalType": "uint256" + }, + { + "name": "updateType", + "type": "uint8", + "indexed": true, + "internalType": "enum ProtocolVersions.UpdateType" + }, + { + "name": "data", + "type": "bytes", + "indexed": false, + "internalType": "bytes" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "Initialized", + "inputs": [ + { + "name": "version", + "type": "uint8", + "indexed": false, + "internalType": "uint8" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "OwnershipTransferred", + "inputs": [ + { + "name": "previousOwner", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "newOwner", + "type": "address", + "indexed": true, + "internalType": "address" + } + ], + "anonymous": false + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod ProtocolVersions { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x608060405234801561001057600080fd5b5061001961001e565b6100de565b600054610100900460ff161561008a5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811610156100dc576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6109a9806100ed6000396000f3fe608060405234801561001057600080fd5b50600436106100d45760003560e01c80638da5cb5b11610081578063f2fde38b1161005b578063f2fde38b146101b8578063f7d12760146101cb578063ffa1ad74146101d357600080fd5b80638da5cb5b14610180578063d798b1ac146101a8578063dc8452cd146101b057600080fd5b80635fd579af116100b25780635fd579af14610152578063715018a6146101655780637a1ac61e1461016d57600080fd5b80630457d6f2146100d9578063206a8300146100ee57806354fd4d5014610109575b600080fd5b6100ec6100e7366004610867565b6101db565b005b6100f66101ef565b6040519081526020015b60405180910390f35b6101456040518060400160405280600581526020017f312e312e3100000000000000000000000000000000000000000000000000000081525081565b60405161010091906108cd565b6100ec610160366004610867565b61021d565b6100ec61022e565b6100ec61017b366004610910565b610242565b60335460405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610100565b6100f66103f7565b6100f6610430565b6100ec6101c6366004610943565b610460565b6100f6610514565b6100f6600081565b6101e361053f565b6101ec816105c0565b50565b61021a60017f4aaefe95bd84fd3f32700cf3b7566bc944b73138e41958b5785826df2aecace161095e565b81565b61022561053f565b6101ec8161065a565b61023661053f565b61024060006106b6565b565b600054610100900460ff16158080156102625750600054600160ff909116105b8061027c5750303b15801561027c575060005460ff166001145b61030d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084015b60405180910390fd5b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561036b57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b61037361072d565b61037c84610460565b610385836105c0565b61038e8261065a565b80156103f157600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b600061042b61042760017fe314dfc40f0025322aacc0ba8ef420b62fb3b702cf01e0cdf3d829117ac2ff1b61095e565b5490565b905090565b600061042b61042760017f4aaefe95bd84fd3f32700cf3b7566bc944b73138e41958b5785826df2aecace161095e565b61046861053f565b73ffffffffffffffffffffffffffffffffffffffff811661050b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610304565b6101ec816106b6565b61021a60017fe314dfc40f0025322aacc0ba8ef420b62fb3b702cf01e0cdf3d829117ac2ff1b61095e565b60335473ffffffffffffffffffffffffffffffffffffffff163314610240576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610304565b6105f36105ee60017f4aaefe95bd84fd3f32700cf3b7566bc944b73138e41958b5785826df2aecace161095e565b829055565b60008160405160200161060891815260200190565b60408051601f19818403018152919052905060005b60007f1d2b0bda21d56b8bd12d4f94ebacffdfb35f5e226f84b461103bb8beab6353be8360405161064e91906108cd565b60405180910390a35050565b6106886105ee60017fe314dfc40f0025322aacc0ba8ef420b62fb3b702cf01e0cdf3d829117ac2ff1b61095e565b60008160405160200161069d91815260200190565b60408051601f198184030181529190529050600161061d565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff166107c4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610304565b610240600054610100900460ff1661085e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610304565b610240336106b6565b60006020828403121561087957600080fd5b5035919050565b6000815180845260005b818110156108a65760208185018101518683018201520161088a565b818111156108b8576000602083870101525b50601f01601f19169290920160200192915050565b6020815260006108e06020830184610880565b9392505050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461090b57600080fd5b919050565b60008060006060848603121561092557600080fd5b61092e846108e7565b95602085013595506040909401359392505050565b60006020828403121561095557600080fd5b6108e0826108e7565b600082821015610997577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b50039056fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[Pa\0\x19a\0\x1EV[a\0\xDEV[`\0Ta\x01\0\x90\x04`\xFF\x16\x15a\0\x8AW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`'`$\x82\x01R\x7FInitializable: contract is initi`D\x82\x01Rfalizing`\xC8\x1B`d\x82\x01R`\x84\x01`@Q\x80\x91\x03\x90\xFD[`\0T`\xFF\x90\x81\x16\x10\x15a\0\xDCW`\0\x80T`\xFF\x19\x16`\xFF\x90\x81\x17\x90\x91U`@Q\x90\x81R\x7F\x7F&\xB8?\xF9n\x1F+jh/\x138R\xF6y\x8A\t\xC4e\xDA\x95\x92\x14`\xCE\xFB8G@$\x98\x90` \x01`@Q\x80\x91\x03\x90\xA1[V[a\t\xA9\x80a\0\xED`\09`\0\xF3\xFE`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`\x046\x10a\0\xD4W`\x005`\xE0\x1C\x80c\x8D\xA5\xCB[\x11a\0\x81W\x80c\xF2\xFD\xE3\x8B\x11a\0[W\x80c\xF2\xFD\xE3\x8B\x14a\x01\xB8W\x80c\xF7\xD1'`\x14a\x01\xCBW\x80c\xFF\xA1\xADt\x14a\x01\xD3W`\0\x80\xFD[\x80c\x8D\xA5\xCB[\x14a\x01\x80W\x80c\xD7\x98\xB1\xAC\x14a\x01\xA8W\x80c\xDC\x84R\xCD\x14a\x01\xB0W`\0\x80\xFD[\x80c_\xD5y\xAF\x11a\0\xB2W\x80c_\xD5y\xAF\x14a\x01RW\x80cqP\x18\xA6\x14a\x01eW\x80cz\x1A\xC6\x1E\x14a\x01mW`\0\x80\xFD[\x80c\x04W\xD6\xF2\x14a\0\xD9W\x80c j\x83\0\x14a\0\xEEW\x80cT\xFDMP\x14a\x01\tW[`\0\x80\xFD[a\0\xECa\0\xE76`\x04a\x08gV[a\x01\xDBV[\0[a\0\xF6a\x01\xEFV[`@Q\x90\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[a\x01E`@Q\x80`@\x01`@R\x80`\x05\x81R` \x01\x7F1.1.1\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\x81RP\x81V[`@Qa\x01\0\x91\x90a\x08\xCDV[a\0\xECa\x01`6`\x04a\x08gV[a\x02\x1DV[a\0\xECa\x02.V[a\0\xECa\x01{6`\x04a\t\x10V[a\x02BV[`3T`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01a\x01\0V[a\0\xF6a\x03\xF7V[a\0\xF6a\x040V[a\0\xECa\x01\xC66`\x04a\tCV[a\x04`V[a\0\xF6a\x05\x14V[a\0\xF6`\0\x81V[a\x01\xE3a\x05?V[a\x01\xEC\x81a\x05\xC0V[PV[a\x02\x1A`\x01\x7FJ\xAE\xFE\x95\xBD\x84\xFD?2p\x0C\xF3\xB7Vk\xC9D\xB718\xE4\x19X\xB5xX&\xDF*\xEC\xAC\xE1a\t^V[\x81V[a\x02%a\x05?V[a\x01\xEC\x81a\x06ZV[a\x026a\x05?V[a\x02@`\0a\x06\xB6V[V[`\0Ta\x01\0\x90\x04`\xFF\x16\x15\x80\x80\x15a\x02bWP`\0T`\x01`\xFF\x90\x91\x16\x10[\x80a\x02|WP0;\x15\x80\x15a\x02|WP`\0T`\xFF\x16`\x01\x14[a\x03\rW`@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\x82\x01R`.`$\x82\x01R\x7FInitializable: contract is alrea`D\x82\x01R\x7Fdy initialized\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01[`@Q\x80\x91\x03\x90\xFD[`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x16`\x01\x17\x90U\x80\x15a\x03kW`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\x16a\x01\0\x17\x90U[a\x03sa\x07-V[a\x03|\x84a\x04`V[a\x03\x85\x83a\x05\xC0V[a\x03\x8E\x82a\x06ZV[\x80\x15a\x03\xF1W`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\x16\x90U`@Q`\x01\x81R\x7F\x7F&\xB8?\xF9n\x1F+jh/\x138R\xF6y\x8A\t\xC4e\xDA\x95\x92\x14`\xCE\xFB8G@$\x98\x90` \x01`@Q\x80\x91\x03\x90\xA1[PPPPV[`\0a\x04+a\x04'`\x01\x7F\xE3\x14\xDF\xC4\x0F\0%2*\xAC\xC0\xBA\x8E\xF4 \xB6/\xB3\xB7\x02\xCF\x01\xE0\xCD\xF3\xD8)\x11z\xC2\xFF\x1Ba\t^V[T\x90V[\x90P\x90V[`\0a\x04+a\x04'`\x01\x7FJ\xAE\xFE\x95\xBD\x84\xFD?2p\x0C\xF3\xB7Vk\xC9D\xB718\xE4\x19X\xB5xX&\xDF*\xEC\xAC\xE1a\t^V[a\x04ha\x05?V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16a\x05\x0BW`@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\x82\x01R`&`$\x82\x01R\x7FOwnable: new owner is the zero a`D\x82\x01R\x7Fddress\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`d\x82\x01R`\x84\x01a\x03\x04V[a\x01\xEC\x81a\x06\xB6V[a\x02\x1A`\x01\x7F\xE3\x14\xDF\xC4\x0F\0%2*\xAC\xC0\xBA\x8E\xF4 \xB6/\xB3\xB7\x02\xCF\x01\xE0\xCD\xF3\xD8)\x11z\xC2\xFF\x1Ba\t^V[`3Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x163\x14a\x02@W`@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\x82\x01\x81\x90R`$\x82\x01R\x7FOwnable: caller is not the owner`D\x82\x01R`d\x01a\x03\x04V[a\x05\xF3a\x05\xEE`\x01\x7FJ\xAE\xFE\x95\xBD\x84\xFD?2p\x0C\xF3\xB7Vk\xC9D\xB718\xE4\x19X\xB5xX&\xDF*\xEC\xAC\xE1a\t^V[\x82\x90UV[`\0\x81`@Q` \x01a\x06\x08\x91\x81R` \x01\x90V[`@\x80Q`\x1F\x19\x81\x84\x03\x01\x81R\x91\x90R\x90P`\0[`\0\x7F\x1D+\x0B\xDA!\xD5k\x8B\xD1-O\x94\xEB\xAC\xFF\xDF\xB3_^\"o\x84\xB4a\x10;\xB8\xBE\xABcS\xBE\x83`@Qa\x06N\x91\x90a\x08\xCDV[`@Q\x80\x91\x03\x90\xA3PPV[a\x06\x88a\x05\xEE`\x01\x7F\xE3\x14\xDF\xC4\x0F\0%2*\xAC\xC0\xBA\x8E\xF4 \xB6/\xB3\xB7\x02\xCF\x01\xE0\xCD\xF3\xD8)\x11z\xC2\xFF\x1Ba\t^V[`\0\x81`@Q` \x01a\x06\x9D\x91\x81R` \x01\x90V[`@\x80Q`\x1F\x19\x81\x84\x03\x01\x81R\x91\x90R\x90P`\x01a\x06\x1DV[`3\x80Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x81\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x83\x16\x81\x17\x90\x93U`@Q\x91\x16\x91\x90\x82\x90\x7F\x8B\xE0\x07\x9CS\x16Y\x14\x13D\xCD\x1F\xD0\xA4\xF2\x84\x19I\x7F\x97\"\xA3\xDA\xAF\xE3\xB4\x18okdW\xE0\x90`\0\x90\xA3PPV[`\0Ta\x01\0\x90\x04`\xFF\x16a\x07\xC4W`@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\x82\x01R`+`$\x82\x01R\x7FInitializable: contract is not i`D\x82\x01R\x7Fnitializing\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x03\x04V[a\x02@`\0Ta\x01\0\x90\x04`\xFF\x16a\x08^W`@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\x82\x01R`+`$\x82\x01R\x7FInitializable: contract is not i`D\x82\x01R\x7Fnitializing\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x03\x04V[a\x02@3a\x06\xB6V[`\0` \x82\x84\x03\x12\x15a\x08yW`\0\x80\xFD[P5\x91\x90PV[`\0\x81Q\x80\x84R`\0[\x81\x81\x10\x15a\x08\xA6W` \x81\x85\x01\x81\x01Q\x86\x83\x01\x82\x01R\x01a\x08\x8AV[\x81\x81\x11\x15a\x08\xB8W`\0` \x83\x87\x01\x01R[P`\x1F\x01`\x1F\x19\x16\x92\x90\x92\x01` \x01\x92\x91PPV[` \x81R`\0a\x08\xE0` \x83\x01\x84a\x08\x80V[\x93\x92PPPV[\x805s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\t\x0BW`\0\x80\xFD[\x91\x90PV[`\0\x80`\0``\x84\x86\x03\x12\x15a\t%W`\0\x80\xFD[a\t.\x84a\x08\xE7V[\x95` \x85\x015\x95P`@\x90\x94\x015\x93\x92PPPV[`\0` \x82\x84\x03\x12\x15a\tUW`\0\x80\xFD[a\x08\xE0\x82a\x08\xE7V[`\0\x82\x82\x10\x15a\t\x97W\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`\x11`\x04R`$`\0\xFD[P\x03\x90V\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x608060405234801561001057600080fd5b50600436106100d45760003560e01c80638da5cb5b11610081578063f2fde38b1161005b578063f2fde38b146101b8578063f7d12760146101cb578063ffa1ad74146101d357600080fd5b80638da5cb5b14610180578063d798b1ac146101a8578063dc8452cd146101b057600080fd5b80635fd579af116100b25780635fd579af14610152578063715018a6146101655780637a1ac61e1461016d57600080fd5b80630457d6f2146100d9578063206a8300146100ee57806354fd4d5014610109575b600080fd5b6100ec6100e7366004610867565b6101db565b005b6100f66101ef565b6040519081526020015b60405180910390f35b6101456040518060400160405280600581526020017f312e312e3100000000000000000000000000000000000000000000000000000081525081565b60405161010091906108cd565b6100ec610160366004610867565b61021d565b6100ec61022e565b6100ec61017b366004610910565b610242565b60335460405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610100565b6100f66103f7565b6100f6610430565b6100ec6101c6366004610943565b610460565b6100f6610514565b6100f6600081565b6101e361053f565b6101ec816105c0565b50565b61021a60017f4aaefe95bd84fd3f32700cf3b7566bc944b73138e41958b5785826df2aecace161095e565b81565b61022561053f565b6101ec8161065a565b61023661053f565b61024060006106b6565b565b600054610100900460ff16158080156102625750600054600160ff909116105b8061027c5750303b15801561027c575060005460ff166001145b61030d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084015b60405180910390fd5b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561036b57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b61037361072d565b61037c84610460565b610385836105c0565b61038e8261065a565b80156103f157600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b600061042b61042760017fe314dfc40f0025322aacc0ba8ef420b62fb3b702cf01e0cdf3d829117ac2ff1b61095e565b5490565b905090565b600061042b61042760017f4aaefe95bd84fd3f32700cf3b7566bc944b73138e41958b5785826df2aecace161095e565b61046861053f565b73ffffffffffffffffffffffffffffffffffffffff811661050b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610304565b6101ec816106b6565b61021a60017fe314dfc40f0025322aacc0ba8ef420b62fb3b702cf01e0cdf3d829117ac2ff1b61095e565b60335473ffffffffffffffffffffffffffffffffffffffff163314610240576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610304565b6105f36105ee60017f4aaefe95bd84fd3f32700cf3b7566bc944b73138e41958b5785826df2aecace161095e565b829055565b60008160405160200161060891815260200190565b60408051601f19818403018152919052905060005b60007f1d2b0bda21d56b8bd12d4f94ebacffdfb35f5e226f84b461103bb8beab6353be8360405161064e91906108cd565b60405180910390a35050565b6106886105ee60017fe314dfc40f0025322aacc0ba8ef420b62fb3b702cf01e0cdf3d829117ac2ff1b61095e565b60008160405160200161069d91815260200190565b60408051601f198184030181529190529050600161061d565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff166107c4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610304565b610240600054610100900460ff1661085e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610304565b610240336106b6565b60006020828403121561087957600080fd5b5035919050565b6000815180845260005b818110156108a65760208185018101518683018201520161088a565b818111156108b8576000602083870101525b50601f01601f19169290920160200192915050565b6020815260006108e06020830184610880565b9392505050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461090b57600080fd5b919050565b60008060006060848603121561092557600080fd5b61092e846108e7565b95602085013595506040909401359392505050565b60006020828403121561095557600080fd5b6108e0826108e7565b600082821015610997577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b50039056fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`\x046\x10a\0\xD4W`\x005`\xE0\x1C\x80c\x8D\xA5\xCB[\x11a\0\x81W\x80c\xF2\xFD\xE3\x8B\x11a\0[W\x80c\xF2\xFD\xE3\x8B\x14a\x01\xB8W\x80c\xF7\xD1'`\x14a\x01\xCBW\x80c\xFF\xA1\xADt\x14a\x01\xD3W`\0\x80\xFD[\x80c\x8D\xA5\xCB[\x14a\x01\x80W\x80c\xD7\x98\xB1\xAC\x14a\x01\xA8W\x80c\xDC\x84R\xCD\x14a\x01\xB0W`\0\x80\xFD[\x80c_\xD5y\xAF\x11a\0\xB2W\x80c_\xD5y\xAF\x14a\x01RW\x80cqP\x18\xA6\x14a\x01eW\x80cz\x1A\xC6\x1E\x14a\x01mW`\0\x80\xFD[\x80c\x04W\xD6\xF2\x14a\0\xD9W\x80c j\x83\0\x14a\0\xEEW\x80cT\xFDMP\x14a\x01\tW[`\0\x80\xFD[a\0\xECa\0\xE76`\x04a\x08gV[a\x01\xDBV[\0[a\0\xF6a\x01\xEFV[`@Q\x90\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[a\x01E`@Q\x80`@\x01`@R\x80`\x05\x81R` \x01\x7F1.1.1\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\x81RP\x81V[`@Qa\x01\0\x91\x90a\x08\xCDV[a\0\xECa\x01`6`\x04a\x08gV[a\x02\x1DV[a\0\xECa\x02.V[a\0\xECa\x01{6`\x04a\t\x10V[a\x02BV[`3T`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01a\x01\0V[a\0\xF6a\x03\xF7V[a\0\xF6a\x040V[a\0\xECa\x01\xC66`\x04a\tCV[a\x04`V[a\0\xF6a\x05\x14V[a\0\xF6`\0\x81V[a\x01\xE3a\x05?V[a\x01\xEC\x81a\x05\xC0V[PV[a\x02\x1A`\x01\x7FJ\xAE\xFE\x95\xBD\x84\xFD?2p\x0C\xF3\xB7Vk\xC9D\xB718\xE4\x19X\xB5xX&\xDF*\xEC\xAC\xE1a\t^V[\x81V[a\x02%a\x05?V[a\x01\xEC\x81a\x06ZV[a\x026a\x05?V[a\x02@`\0a\x06\xB6V[V[`\0Ta\x01\0\x90\x04`\xFF\x16\x15\x80\x80\x15a\x02bWP`\0T`\x01`\xFF\x90\x91\x16\x10[\x80a\x02|WP0;\x15\x80\x15a\x02|WP`\0T`\xFF\x16`\x01\x14[a\x03\rW`@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\x82\x01R`.`$\x82\x01R\x7FInitializable: contract is alrea`D\x82\x01R\x7Fdy initialized\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01[`@Q\x80\x91\x03\x90\xFD[`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x16`\x01\x17\x90U\x80\x15a\x03kW`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\x16a\x01\0\x17\x90U[a\x03sa\x07-V[a\x03|\x84a\x04`V[a\x03\x85\x83a\x05\xC0V[a\x03\x8E\x82a\x06ZV[\x80\x15a\x03\xF1W`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\x16\x90U`@Q`\x01\x81R\x7F\x7F&\xB8?\xF9n\x1F+jh/\x138R\xF6y\x8A\t\xC4e\xDA\x95\x92\x14`\xCE\xFB8G@$\x98\x90` \x01`@Q\x80\x91\x03\x90\xA1[PPPPV[`\0a\x04+a\x04'`\x01\x7F\xE3\x14\xDF\xC4\x0F\0%2*\xAC\xC0\xBA\x8E\xF4 \xB6/\xB3\xB7\x02\xCF\x01\xE0\xCD\xF3\xD8)\x11z\xC2\xFF\x1Ba\t^V[T\x90V[\x90P\x90V[`\0a\x04+a\x04'`\x01\x7FJ\xAE\xFE\x95\xBD\x84\xFD?2p\x0C\xF3\xB7Vk\xC9D\xB718\xE4\x19X\xB5xX&\xDF*\xEC\xAC\xE1a\t^V[a\x04ha\x05?V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16a\x05\x0BW`@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\x82\x01R`&`$\x82\x01R\x7FOwnable: new owner is the zero a`D\x82\x01R\x7Fddress\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`d\x82\x01R`\x84\x01a\x03\x04V[a\x01\xEC\x81a\x06\xB6V[a\x02\x1A`\x01\x7F\xE3\x14\xDF\xC4\x0F\0%2*\xAC\xC0\xBA\x8E\xF4 \xB6/\xB3\xB7\x02\xCF\x01\xE0\xCD\xF3\xD8)\x11z\xC2\xFF\x1Ba\t^V[`3Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x163\x14a\x02@W`@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\x82\x01\x81\x90R`$\x82\x01R\x7FOwnable: caller is not the owner`D\x82\x01R`d\x01a\x03\x04V[a\x05\xF3a\x05\xEE`\x01\x7FJ\xAE\xFE\x95\xBD\x84\xFD?2p\x0C\xF3\xB7Vk\xC9D\xB718\xE4\x19X\xB5xX&\xDF*\xEC\xAC\xE1a\t^V[\x82\x90UV[`\0\x81`@Q` \x01a\x06\x08\x91\x81R` \x01\x90V[`@\x80Q`\x1F\x19\x81\x84\x03\x01\x81R\x91\x90R\x90P`\0[`\0\x7F\x1D+\x0B\xDA!\xD5k\x8B\xD1-O\x94\xEB\xAC\xFF\xDF\xB3_^\"o\x84\xB4a\x10;\xB8\xBE\xABcS\xBE\x83`@Qa\x06N\x91\x90a\x08\xCDV[`@Q\x80\x91\x03\x90\xA3PPV[a\x06\x88a\x05\xEE`\x01\x7F\xE3\x14\xDF\xC4\x0F\0%2*\xAC\xC0\xBA\x8E\xF4 \xB6/\xB3\xB7\x02\xCF\x01\xE0\xCD\xF3\xD8)\x11z\xC2\xFF\x1Ba\t^V[`\0\x81`@Q` \x01a\x06\x9D\x91\x81R` \x01\x90V[`@\x80Q`\x1F\x19\x81\x84\x03\x01\x81R\x91\x90R\x90P`\x01a\x06\x1DV[`3\x80Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x81\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x83\x16\x81\x17\x90\x93U`@Q\x91\x16\x91\x90\x82\x90\x7F\x8B\xE0\x07\x9CS\x16Y\x14\x13D\xCD\x1F\xD0\xA4\xF2\x84\x19I\x7F\x97\"\xA3\xDA\xAF\xE3\xB4\x18okdW\xE0\x90`\0\x90\xA3PPV[`\0Ta\x01\0\x90\x04`\xFF\x16a\x07\xC4W`@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\x82\x01R`+`$\x82\x01R\x7FInitializable: contract is not i`D\x82\x01R\x7Fnitializing\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x03\x04V[a\x02@`\0Ta\x01\0\x90\x04`\xFF\x16a\x08^W`@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\x82\x01R`+`$\x82\x01R\x7FInitializable: contract is not i`D\x82\x01R\x7Fnitializing\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x03\x04V[a\x02@3a\x06\xB6V[`\0` \x82\x84\x03\x12\x15a\x08yW`\0\x80\xFD[P5\x91\x90PV[`\0\x81Q\x80\x84R`\0[\x81\x81\x10\x15a\x08\xA6W` \x81\x85\x01\x81\x01Q\x86\x83\x01\x82\x01R\x01a\x08\x8AV[\x81\x81\x11\x15a\x08\xB8W`\0` \x83\x87\x01\x01R[P`\x1F\x01`\x1F\x19\x16\x92\x90\x92\x01` \x01\x92\x91PPV[` \x81R`\0a\x08\xE0` \x83\x01\x84a\x08\x80V[\x93\x92PPPV[\x805s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\t\x0BW`\0\x80\xFD[\x91\x90PV[`\0\x80`\0``\x84\x86\x03\x12\x15a\t%W`\0\x80\xFD[a\t.\x84a\x08\xE7V[\x95` \x85\x015\x95P`@\x90\x94\x015\x93\x92PPPV[`\0` \x82\x84\x03\x12\x15a\tUW`\0\x80\xFD[a\x08\xE0\x82a\x08\xE7V[`\0\x82\x82\x10\x15a\t\x97W\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`\x11`\x04R`$`\0\xFD[P\x03\x90V\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct UpdateType(u8); + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for u8 { + #[inline] + fn stv_to_tokens( + &self, + ) -> as alloy_sol_types::SolType>::Token<'_> { + alloy_sol_types::private::SolTypeValue::< + alloy::sol_types::sol_data::Uint<8>, + >::stv_to_tokens(self) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + as alloy_sol_types::SolType>::tokenize(self) + .0 + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::SolType>::abi_encode_packed_to(self, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + as alloy_sol_types::SolType>::abi_encoded_size(self) + } + } + impl UpdateType { + /// The Solidity type name. + pub const NAME: &'static str = stringify!(@ name); + /// Convert from the underlying value type. + #[inline] + pub const fn from_underlying(value: u8) -> Self { + Self(value) + } + /// Return the underlying value. + #[inline] + pub const fn into_underlying(self) -> u8 { + self.0 + } + /// Return the single encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode(&self) -> alloy_sol_types::private::Vec { + ::abi_encode(&self.0) + } + /// Return the packed encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec { + ::abi_encode_packed(&self.0) + } + } + #[automatically_derived] + impl From for UpdateType { + fn from(value: u8) -> Self { + Self::from_underlying(value) + } + } + #[automatically_derived] + impl From for u8 { + fn from(value: UpdateType) -> Self { + value.into_underlying() + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for UpdateType { + type RustType = u8; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = Self::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + Self::type_check(token).is_ok() + } + #[inline] + fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> { + as alloy_sol_types::SolType>::type_check(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + as alloy_sol_types::SolType>::detokenize(token) + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for UpdateType { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + as alloy_sol_types::EventTopic>::topic_preimage_length(rust) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out) + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + as alloy_sol_types::EventTopic>::encode_topic(rust) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ProtocolVersion(alloy::sol_types::private::primitives::aliases::U256); + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue + for alloy::sol_types::private::primitives::aliases::U256 { + #[inline] + fn stv_to_tokens( + &self, + ) -> as alloy_sol_types::SolType>::Token<'_> { + alloy_sol_types::private::SolTypeValue::< + alloy::sol_types::sol_data::Uint<256>, + >::stv_to_tokens(self) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + as alloy_sol_types::SolType>::tokenize(self) + .0 + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::SolType>::abi_encode_packed_to(self, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + as alloy_sol_types::SolType>::abi_encoded_size(self) + } + } + impl ProtocolVersion { + /// The Solidity type name. + pub const NAME: &'static str = stringify!(@ name); + /// Convert from the underlying value type. + #[inline] + pub const fn from_underlying( + value: alloy::sol_types::private::primitives::aliases::U256, + ) -> Self { + Self(value) + } + /// Return the underlying value. + #[inline] + pub const fn into_underlying( + self, + ) -> alloy::sol_types::private::primitives::aliases::U256 { + self.0 + } + /// Return the single encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode(&self) -> alloy_sol_types::private::Vec { + ::abi_encode(&self.0) + } + /// Return the packed encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec { + ::abi_encode_packed(&self.0) + } + } + #[automatically_derived] + impl From + for ProtocolVersion { + fn from( + value: alloy::sol_types::private::primitives::aliases::U256, + ) -> Self { + Self::from_underlying(value) + } + } + #[automatically_derived] + impl From + for alloy::sol_types::private::primitives::aliases::U256 { + fn from(value: ProtocolVersion) -> Self { + value.into_underlying() + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for ProtocolVersion { + type RustType = alloy::sol_types::private::primitives::aliases::U256; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = Self::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + Self::type_check(token).is_ok() + } + #[inline] + fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> { + as alloy_sol_types::SolType>::type_check(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + as alloy_sol_types::SolType>::detokenize(token) + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for ProtocolVersion { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + as alloy_sol_types::EventTopic>::topic_preimage_length(rust) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out) + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + as alloy_sol_types::EventTopic>::encode_topic(rust) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `ConfigUpdate(uint256,uint8,bytes)` and selector `0x1d2b0bda21d56b8bd12d4f94ebacffdfb35f5e226f84b461103bb8beab6353be`. +```solidity +event ConfigUpdate(uint256 indexed version, UpdateType indexed updateType, bytes data); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct ConfigUpdate { + #[allow(missing_docs)] + pub version: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub updateType: ::RustType, + #[allow(missing_docs)] + pub data: alloy::sol_types::private::Bytes, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for ConfigUpdate { + type DataTuple<'a> = (alloy::sol_types::sol_data::Bytes,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Uint<256>, + UpdateType, + ); + const SIGNATURE: &'static str = "ConfigUpdate(uint256,uint8,bytes)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 29u8, 43u8, 11u8, 218u8, 33u8, 213u8, 107u8, 139u8, 209u8, 45u8, 79u8, + 148u8, 235u8, 172u8, 255u8, 223u8, 179u8, 95u8, 94u8, 34u8, 111u8, 132u8, + 180u8, 97u8, 16u8, 59u8, 184u8, 190u8, 171u8, 99u8, 83u8, 190u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + version: topics.1, + updateType: topics.2, + data: data.0, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + ::tokenize( + &self.data, + ), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + ( + Self::SIGNATURE_HASH.into(), + self.version.clone(), + self.updateType.clone(), + ) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = as alloy_sol_types::EventTopic>::encode_topic(&self.version); + out[2usize] = ::encode_topic( + &self.updateType, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for ConfigUpdate { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&ConfigUpdate> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &ConfigUpdate) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `Initialized(uint8)` and selector `0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498`. +```solidity +event Initialized(uint8 version); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct Initialized { + #[allow(missing_docs)] + pub version: u8, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for Initialized { + type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<8>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,); + const SIGNATURE: &'static str = "Initialized(uint8)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 127u8, 38u8, 184u8, 63u8, 249u8, 110u8, 31u8, 43u8, 106u8, 104u8, 47u8, + 19u8, 56u8, 82u8, 246u8, 121u8, 138u8, 9u8, 196u8, 101u8, 218u8, 149u8, + 146u8, 20u8, 96u8, 206u8, 251u8, 56u8, 71u8, 64u8, 36u8, 152u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { version: data.0 } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.version), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(),) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for Initialized { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&Initialized> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &Initialized) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `OwnershipTransferred(address,address)` and selector `0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0`. +```solidity +event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct OwnershipTransferred { + #[allow(missing_docs)] + pub previousOwner: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub newOwner: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for OwnershipTransferred { + type DataTuple<'a> = (); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "OwnershipTransferred(address,address)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 139u8, 224u8, 7u8, 156u8, 83u8, 22u8, 89u8, 20u8, 19u8, 68u8, 205u8, + 31u8, 208u8, 164u8, 242u8, 132u8, 25u8, 73u8, 127u8, 151u8, 34u8, 163u8, + 218u8, 175u8, 227u8, 180u8, 24u8, 111u8, 107u8, 100u8, 87u8, 224u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + previousOwner: topics.1, + newOwner: topics.2, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + () + } + #[inline] + fn topics(&self) -> ::RustType { + ( + Self::SIGNATURE_HASH.into(), + self.previousOwner.clone(), + self.newOwner.clone(), + ) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.previousOwner, + ); + out[2usize] = ::encode_topic( + &self.newOwner, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for OwnershipTransferred { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&OwnershipTransferred> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &OwnershipTransferred) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + /**Constructor`. +```solidity +constructor(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct constructorCall {} + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: constructorCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for constructorCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolConstructor for constructorCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `RECOMMENDED_SLOT()` and selector `0xf7d12760`. +```solidity +function RECOMMENDED_SLOT() external view returns (bytes32); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct RECOMMENDED_SLOTCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`RECOMMENDED_SLOT()`](RECOMMENDED_SLOTCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct RECOMMENDED_SLOTReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: RECOMMENDED_SLOTCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for RECOMMENDED_SLOTCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: RECOMMENDED_SLOTReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for RECOMMENDED_SLOTReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for RECOMMENDED_SLOTCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::FixedBytes<32>; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "RECOMMENDED_SLOT()"; + const SELECTOR: [u8; 4] = [247u8, 209u8, 39u8, 96u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: RECOMMENDED_SLOTReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: RECOMMENDED_SLOTReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `REQUIRED_SLOT()` and selector `0x206a8300`. +```solidity +function REQUIRED_SLOT() external view returns (bytes32); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct REQUIRED_SLOTCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`REQUIRED_SLOT()`](REQUIRED_SLOTCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct REQUIRED_SLOTReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: REQUIRED_SLOTCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for REQUIRED_SLOTCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: REQUIRED_SLOTReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for REQUIRED_SLOTReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for REQUIRED_SLOTCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::FixedBytes<32>; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "REQUIRED_SLOT()"; + const SELECTOR: [u8; 4] = [32u8, 106u8, 131u8, 0u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: REQUIRED_SLOTReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: REQUIRED_SLOTReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `VERSION()` and selector `0xffa1ad74`. +```solidity +function VERSION() external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct VERSIONCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`VERSION()`](VERSIONCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct VERSIONReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: VERSIONCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for VERSIONCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: VERSIONReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for VERSIONReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for VERSIONCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "VERSION()"; + const SELECTOR: [u8; 4] = [255u8, 161u8, 173u8, 116u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: VERSIONReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: VERSIONReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `initialize(address,uint256,uint256)` and selector `0x7a1ac61e`. +```solidity +function initialize(address _owner, ProtocolVersion _required, ProtocolVersion _recommended) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct initializeCall { + #[allow(missing_docs)] + pub _owner: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _required: ::RustType, + #[allow(missing_docs)] + pub _recommended: ::RustType, + } + ///Container type for the return parameters of the [`initialize(address,uint256,uint256)`](initializeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct initializeReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + ProtocolVersion, + ProtocolVersion, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + ::RustType, + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: initializeCall) -> Self { + (value._owner, value._required, value._recommended) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for initializeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _owner: tuple.0, + _required: tuple.1, + _recommended: tuple.2, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: initializeReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for initializeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl initializeReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for initializeCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + ProtocolVersion, + ProtocolVersion, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = initializeReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "initialize(address,uint256,uint256)"; + const SELECTOR: [u8; 4] = [122u8, 26u8, 198u8, 30u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._owner, + ), + ::tokenize( + &self._required, + ), + ::tokenize( + &self._recommended, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + initializeReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `owner()` and selector `0x8da5cb5b`. +```solidity +function owner() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ownerCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`owner()`](ownerCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ownerReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ownerCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ownerCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ownerReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ownerReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for ownerCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "owner()"; + const SELECTOR: [u8; 4] = [141u8, 165u8, 203u8, 91u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: ownerReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: ownerReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `recommended()` and selector `0xd798b1ac`. +```solidity +function recommended() external view returns (ProtocolVersion out_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct recommendedCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`recommended()`](recommendedCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct recommendedReturn { + #[allow(missing_docs)] + pub out_: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: recommendedCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for recommendedCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (ProtocolVersion,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: recommendedReturn) -> Self { + (value.out_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for recommendedReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { out_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for recommendedCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (ProtocolVersion,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "recommended()"; + const SELECTOR: [u8; 4] = [215u8, 152u8, 177u8, 172u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: recommendedReturn = r.into(); + r.out_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: recommendedReturn = r.into(); + r.out_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `renounceOwnership()` and selector `0x715018a6`. +```solidity +function renounceOwnership() external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct renounceOwnershipCall; + ///Container type for the return parameters of the [`renounceOwnership()`](renounceOwnershipCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct renounceOwnershipReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: renounceOwnershipCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for renounceOwnershipCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: renounceOwnershipReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for renounceOwnershipReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl renounceOwnershipReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for renounceOwnershipCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = renounceOwnershipReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "renounceOwnership()"; + const SELECTOR: [u8; 4] = [113u8, 80u8, 24u8, 166u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + renounceOwnershipReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `required()` and selector `0xdc8452cd`. +```solidity +function required() external view returns (ProtocolVersion out_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct requiredCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`required()`](requiredCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct requiredReturn { + #[allow(missing_docs)] + pub out_: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: requiredCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for requiredCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (ProtocolVersion,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: requiredReturn) -> Self { + (value.out_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for requiredReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { out_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for requiredCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (ProtocolVersion,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "required()"; + const SELECTOR: [u8; 4] = [220u8, 132u8, 82u8, 205u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: requiredReturn = r.into(); + r.out_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: requiredReturn = r.into(); + r.out_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `setRecommended(uint256)` and selector `0x5fd579af`. +```solidity +function setRecommended(ProtocolVersion _recommended) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setRecommendedCall { + #[allow(missing_docs)] + pub _recommended: ::RustType, + } + ///Container type for the return parameters of the [`setRecommended(uint256)`](setRecommendedCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setRecommendedReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (ProtocolVersion,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: setRecommendedCall) -> Self { + (value._recommended,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for setRecommendedCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _recommended: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: setRecommendedReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for setRecommendedReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl setRecommendedReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for setRecommendedCall { + type Parameters<'a> = (ProtocolVersion,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = setRecommendedReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "setRecommended(uint256)"; + const SELECTOR: [u8; 4] = [95u8, 213u8, 121u8, 175u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._recommended, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + setRecommendedReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `setRequired(uint256)` and selector `0x0457d6f2`. +```solidity +function setRequired(ProtocolVersion _required) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setRequiredCall { + #[allow(missing_docs)] + pub _required: ::RustType, + } + ///Container type for the return parameters of the [`setRequired(uint256)`](setRequiredCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setRequiredReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (ProtocolVersion,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: setRequiredCall) -> Self { + (value._required,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for setRequiredCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _required: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: setRequiredReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for setRequiredReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl setRequiredReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for setRequiredCall { + type Parameters<'a> = (ProtocolVersion,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = setRequiredReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "setRequired(uint256)"; + const SELECTOR: [u8; 4] = [4u8, 87u8, 214u8, 242u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._required, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + setRequiredReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `transferOwnership(address)` and selector `0xf2fde38b`. +```solidity +function transferOwnership(address newOwner) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct transferOwnershipCall { + #[allow(missing_docs)] + pub newOwner: alloy::sol_types::private::Address, + } + ///Container type for the return parameters of the [`transferOwnership(address)`](transferOwnershipCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct transferOwnershipReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: transferOwnershipCall) -> Self { + (value.newOwner,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for transferOwnershipCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { newOwner: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: transferOwnershipReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for transferOwnershipReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl transferOwnershipReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for transferOwnershipCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = transferOwnershipReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "transferOwnership(address)"; + const SELECTOR: [u8; 4] = [242u8, 253u8, 227u8, 139u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.newOwner, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + transferOwnershipReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `version()` and selector `0x54fd4d50`. +```solidity +function version() external view returns (string memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`version()`](versionCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for versionCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::String; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "version()"; + const SELECTOR: [u8; 4] = [84u8, 253u8, 77u8, 80u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + } + }; + ///Container for all the [`ProtocolVersions`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum ProtocolVersionsCalls { + #[allow(missing_docs)] + RECOMMENDED_SLOT(RECOMMENDED_SLOTCall), + #[allow(missing_docs)] + REQUIRED_SLOT(REQUIRED_SLOTCall), + #[allow(missing_docs)] + VERSION(VERSIONCall), + #[allow(missing_docs)] + initialize(initializeCall), + #[allow(missing_docs)] + owner(ownerCall), + #[allow(missing_docs)] + recommended(recommendedCall), + #[allow(missing_docs)] + renounceOwnership(renounceOwnershipCall), + #[allow(missing_docs)] + required(requiredCall), + #[allow(missing_docs)] + setRecommended(setRecommendedCall), + #[allow(missing_docs)] + setRequired(setRequiredCall), + #[allow(missing_docs)] + transferOwnership(transferOwnershipCall), + #[allow(missing_docs)] + version(versionCall), + } + impl ProtocolVersionsCalls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [4u8, 87u8, 214u8, 242u8], + [32u8, 106u8, 131u8, 0u8], + [84u8, 253u8, 77u8, 80u8], + [95u8, 213u8, 121u8, 175u8], + [113u8, 80u8, 24u8, 166u8], + [122u8, 26u8, 198u8, 30u8], + [141u8, 165u8, 203u8, 91u8], + [215u8, 152u8, 177u8, 172u8], + [220u8, 132u8, 82u8, 205u8], + [242u8, 253u8, 227u8, 139u8], + [247u8, 209u8, 39u8, 96u8], + [255u8, 161u8, 173u8, 116u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(setRequired), + ::core::stringify!(REQUIRED_SLOT), + ::core::stringify!(version), + ::core::stringify!(setRecommended), + ::core::stringify!(renounceOwnership), + ::core::stringify!(initialize), + ::core::stringify!(owner), + ::core::stringify!(recommended), + ::core::stringify!(required), + ::core::stringify!(transferOwnership), + ::core::stringify!(RECOMMENDED_SLOT), + ::core::stringify!(VERSION), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for ProtocolVersionsCalls { + const NAME: &'static str = "ProtocolVersionsCalls"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 12usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::RECOMMENDED_SLOT(_) => { + ::SELECTOR + } + Self::REQUIRED_SLOT(_) => { + ::SELECTOR + } + Self::VERSION(_) => ::SELECTOR, + Self::initialize(_) => { + ::SELECTOR + } + Self::owner(_) => ::SELECTOR, + Self::recommended(_) => { + ::SELECTOR + } + Self::renounceOwnership(_) => { + ::SELECTOR + } + Self::required(_) => ::SELECTOR, + Self::setRecommended(_) => { + ::SELECTOR + } + Self::setRequired(_) => { + ::SELECTOR + } + Self::transferOwnership(_) => { + ::SELECTOR + } + Self::version(_) => ::SELECTOR, + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn setRequired( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(ProtocolVersionsCalls::setRequired) + } + setRequired + }, + { + fn REQUIRED_SLOT( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(ProtocolVersionsCalls::REQUIRED_SLOT) + } + REQUIRED_SLOT + }, + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(ProtocolVersionsCalls::version) + } + version + }, + { + fn setRecommended( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(ProtocolVersionsCalls::setRecommended) + } + setRecommended + }, + { + fn renounceOwnership( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(ProtocolVersionsCalls::renounceOwnership) + } + renounceOwnership + }, + { + fn initialize( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(ProtocolVersionsCalls::initialize) + } + initialize + }, + { + fn owner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(ProtocolVersionsCalls::owner) + } + owner + }, + { + fn recommended( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(ProtocolVersionsCalls::recommended) + } + recommended + }, + { + fn required( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(ProtocolVersionsCalls::required) + } + required + }, + { + fn transferOwnership( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(ProtocolVersionsCalls::transferOwnership) + } + transferOwnership + }, + { + fn RECOMMENDED_SLOT( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(ProtocolVersionsCalls::RECOMMENDED_SLOT) + } + RECOMMENDED_SLOT + }, + { + fn VERSION( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(ProtocolVersionsCalls::VERSION) + } + VERSION + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn setRequired( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(ProtocolVersionsCalls::setRequired) + } + setRequired + }, + { + fn REQUIRED_SLOT( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(ProtocolVersionsCalls::REQUIRED_SLOT) + } + REQUIRED_SLOT + }, + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(ProtocolVersionsCalls::version) + } + version + }, + { + fn setRecommended( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(ProtocolVersionsCalls::setRecommended) + } + setRecommended + }, + { + fn renounceOwnership( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(ProtocolVersionsCalls::renounceOwnership) + } + renounceOwnership + }, + { + fn initialize( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(ProtocolVersionsCalls::initialize) + } + initialize + }, + { + fn owner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(ProtocolVersionsCalls::owner) + } + owner + }, + { + fn recommended( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(ProtocolVersionsCalls::recommended) + } + recommended + }, + { + fn required( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(ProtocolVersionsCalls::required) + } + required + }, + { + fn transferOwnership( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(ProtocolVersionsCalls::transferOwnership) + } + transferOwnership + }, + { + fn RECOMMENDED_SLOT( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(ProtocolVersionsCalls::RECOMMENDED_SLOT) + } + RECOMMENDED_SLOT + }, + { + fn VERSION( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(ProtocolVersionsCalls::VERSION) + } + VERSION + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::RECOMMENDED_SLOT(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::REQUIRED_SLOT(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::VERSION(inner) => { + ::abi_encoded_size(inner) + } + Self::initialize(inner) => { + ::abi_encoded_size(inner) + } + Self::owner(inner) => { + ::abi_encoded_size(inner) + } + Self::recommended(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::renounceOwnership(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::required(inner) => { + ::abi_encoded_size(inner) + } + Self::setRecommended(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::setRequired(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::transferOwnership(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::version(inner) => { + ::abi_encoded_size(inner) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::RECOMMENDED_SLOT(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::REQUIRED_SLOT(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::VERSION(inner) => { + ::abi_encode_raw(inner, out) + } + Self::initialize(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::owner(inner) => { + ::abi_encode_raw(inner, out) + } + Self::recommended(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::renounceOwnership(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::required(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::setRecommended(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::setRequired(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::transferOwnership(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::version(inner) => { + ::abi_encode_raw(inner, out) + } + } + } + } + ///Container for all the [`ProtocolVersions`](self) events. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum ProtocolVersionsEvents { + #[allow(missing_docs)] + ConfigUpdate(ConfigUpdate), + #[allow(missing_docs)] + Initialized(Initialized), + #[allow(missing_docs)] + OwnershipTransferred(OwnershipTransferred), + } + impl ProtocolVersionsEvents { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 32usize]] = &[ + [ + 29u8, 43u8, 11u8, 218u8, 33u8, 213u8, 107u8, 139u8, 209u8, 45u8, 79u8, + 148u8, 235u8, 172u8, 255u8, 223u8, 179u8, 95u8, 94u8, 34u8, 111u8, 132u8, + 180u8, 97u8, 16u8, 59u8, 184u8, 190u8, 171u8, 99u8, 83u8, 190u8, + ], + [ + 127u8, 38u8, 184u8, 63u8, 249u8, 110u8, 31u8, 43u8, 106u8, 104u8, 47u8, + 19u8, 56u8, 82u8, 246u8, 121u8, 138u8, 9u8, 196u8, 101u8, 218u8, 149u8, + 146u8, 20u8, 96u8, 206u8, 251u8, 56u8, 71u8, 64u8, 36u8, 152u8, + ], + [ + 139u8, 224u8, 7u8, 156u8, 83u8, 22u8, 89u8, 20u8, 19u8, 68u8, 205u8, + 31u8, 208u8, 164u8, 242u8, 132u8, 25u8, 73u8, 127u8, 151u8, 34u8, 163u8, + 218u8, 175u8, 227u8, 180u8, 24u8, 111u8, 107u8, 100u8, 87u8, 224u8, + ], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(ConfigUpdate), + ::core::stringify!(Initialized), + ::core::stringify!(OwnershipTransferred), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolEventInterface for ProtocolVersionsEvents { + const NAME: &'static str = "ProtocolVersionsEvents"; + const COUNT: usize = 3usize; + fn decode_raw_log( + topics: &[alloy_sol_types::Word], + data: &[u8], + ) -> alloy_sol_types::Result { + match topics.first().copied() { + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::ConfigUpdate) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::Initialized) + } + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::OwnershipTransferred) + } + _ => { + alloy_sol_types::private::Err(alloy_sol_types::Error::InvalidLog { + name: ::NAME, + log: alloy_sol_types::private::Box::new( + alloy_sol_types::private::LogData::new_unchecked( + topics.to_vec(), + data.to_vec().into(), + ), + ), + }) + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for ProtocolVersionsEvents { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + match self { + Self::ConfigUpdate(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::Initialized(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::OwnershipTransferred(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + } + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + match self { + Self::ConfigUpdate(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::Initialized(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::OwnershipTransferred(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`ProtocolVersions`](self) contract instance. + +See the [wrapper's documentation](`ProtocolVersionsInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> ProtocolVersionsInstance { + ProtocolVersionsInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + ProtocolVersionsInstance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + ProtocolVersionsInstance::::deploy_builder(__provider) + } + /**A [`ProtocolVersions`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`ProtocolVersions`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct ProtocolVersionsInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for ProtocolVersionsInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("ProtocolVersionsInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > ProtocolVersionsInstance { + /**Creates a new wrapper around an on-chain [`ProtocolVersions`](self) contract instance. + +See the [wrapper's documentation](`ProtocolVersionsInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl ProtocolVersionsInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> ProtocolVersionsInstance { + ProtocolVersionsInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > ProtocolVersionsInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`RECOMMENDED_SLOT`] function. + pub fn RECOMMENDED_SLOT( + &self, + ) -> alloy_contract::SolCallBuilder<&P, RECOMMENDED_SLOTCall, N> { + self.call_builder(&RECOMMENDED_SLOTCall) + } + ///Creates a new call builder for the [`REQUIRED_SLOT`] function. + pub fn REQUIRED_SLOT( + &self, + ) -> alloy_contract::SolCallBuilder<&P, REQUIRED_SLOTCall, N> { + self.call_builder(&REQUIRED_SLOTCall) + } + ///Creates a new call builder for the [`VERSION`] function. + pub fn VERSION(&self) -> alloy_contract::SolCallBuilder<&P, VERSIONCall, N> { + self.call_builder(&VERSIONCall) + } + ///Creates a new call builder for the [`initialize`] function. + pub fn initialize( + &self, + _owner: alloy::sol_types::private::Address, + _required: ::RustType, + _recommended: ::RustType, + ) -> alloy_contract::SolCallBuilder<&P, initializeCall, N> { + self.call_builder( + &initializeCall { + _owner, + _required, + _recommended, + }, + ) + } + ///Creates a new call builder for the [`owner`] function. + pub fn owner(&self) -> alloy_contract::SolCallBuilder<&P, ownerCall, N> { + self.call_builder(&ownerCall) + } + ///Creates a new call builder for the [`recommended`] function. + pub fn recommended( + &self, + ) -> alloy_contract::SolCallBuilder<&P, recommendedCall, N> { + self.call_builder(&recommendedCall) + } + ///Creates a new call builder for the [`renounceOwnership`] function. + pub fn renounceOwnership( + &self, + ) -> alloy_contract::SolCallBuilder<&P, renounceOwnershipCall, N> { + self.call_builder(&renounceOwnershipCall) + } + ///Creates a new call builder for the [`required`] function. + pub fn required(&self) -> alloy_contract::SolCallBuilder<&P, requiredCall, N> { + self.call_builder(&requiredCall) + } + ///Creates a new call builder for the [`setRecommended`] function. + pub fn setRecommended( + &self, + _recommended: ::RustType, + ) -> alloy_contract::SolCallBuilder<&P, setRecommendedCall, N> { + self.call_builder(&setRecommendedCall { _recommended }) + } + ///Creates a new call builder for the [`setRequired`] function. + pub fn setRequired( + &self, + _required: ::RustType, + ) -> alloy_contract::SolCallBuilder<&P, setRequiredCall, N> { + self.call_builder(&setRequiredCall { _required }) + } + ///Creates a new call builder for the [`transferOwnership`] function. + pub fn transferOwnership( + &self, + newOwner: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, transferOwnershipCall, N> { + self.call_builder(&transferOwnershipCall { newOwner }) + } + ///Creates a new call builder for the [`version`] function. + pub fn version(&self) -> alloy_contract::SolCallBuilder<&P, versionCall, N> { + self.call_builder(&versionCall) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > ProtocolVersionsInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + ///Creates a new event filter for the [`ConfigUpdate`] event. + pub fn ConfigUpdate_filter(&self) -> alloy_contract::Event<&P, ConfigUpdate, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`Initialized`] event. + pub fn Initialized_filter(&self) -> alloy_contract::Event<&P, Initialized, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`OwnershipTransferred`] event. + pub fn OwnershipTransferred_filter( + &self, + ) -> alloy_contract::Event<&P, OwnershipTransferred, N> { + self.event_filter::() + } + } +} diff --git a/bindings/rust/src/proxy.rs b/bindings/rust/src/proxy.rs new file mode 100644 index 000000000..eb74dedc3 --- /dev/null +++ b/bindings/rust/src/proxy.rs @@ -0,0 +1,225 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface Proxy { + fallback() external payable; + + receive() external payable; +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "fallback", + "stateMutability": "payable" + }, + { + "type": "receive", + "stateMutability": "payable" + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod Proxy { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"", + ); + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`Proxy`](self) contract instance. + +See the [wrapper's documentation](`ProxyInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(address: alloy_sol_types::private::Address, __provider: P) -> ProxyInstance { + ProxyInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + ProxyInstance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + ProxyInstance::::deploy_builder(__provider) + } + /**A [`Proxy`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`Proxy`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct ProxyInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for ProxyInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("ProxyInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > ProxyInstance { + /**Creates a new wrapper around an on-chain [`Proxy`](self) contract instance. + +See the [wrapper's documentation](`ProxyInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl ProxyInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> ProxyInstance { + ProxyInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > ProxyInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > ProxyInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + } +} diff --git a/bindings/rust/src/proxy_admin.rs b/bindings/rust/src/proxy_admin.rs new file mode 100644 index 000000000..bb6e8cbb1 --- /dev/null +++ b/bindings/rust/src/proxy_admin.rs @@ -0,0 +1,4522 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface ProxyAdmin { + type ProxyType is uint8; + + event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); + + constructor(address _owner); + + function addressManager() external view returns (address); + function changeProxyAdmin(address payable _proxy, address _newAdmin) external; + function getProxyAdmin(address payable _proxy) external view returns (address); + function getProxyImplementation(address _proxy) external view returns (address); + function implementationName(address) external view returns (string memory); + function isUpgrading() external view returns (bool); + function owner() external view returns (address); + function proxyType(address) external view returns (ProxyType); + function renounceOwnership() external; + function setAddress(string memory _name, address _address) external; + function setAddressManager(address _address) external; + function setImplementationName(address _address, string memory _name) external; + function setProxyType(address _address, ProxyType _type) external; + function setUpgrading(bool _upgrading) external; + function transferOwnership(address newOwner) external; + function upgrade(address payable _proxy, address _implementation) external; + function upgradeAndCall(address payable _proxy, address _implementation, bytes memory _data) external payable; +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "constructor", + "inputs": [ + { + "name": "_owner", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "addressManager", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract IAddressManager" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "changeProxyAdmin", + "inputs": [ + { + "name": "_proxy", + "type": "address", + "internalType": "address payable" + }, + { + "name": "_newAdmin", + "type": "address", + "internalType": "address" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "getProxyAdmin", + "inputs": [ + { + "name": "_proxy", + "type": "address", + "internalType": "address payable" + } + ], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "getProxyImplementation", + "inputs": [ + { + "name": "_proxy", + "type": "address", + "internalType": "address" + } + ], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "implementationName", + "inputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "outputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "isUpgrading", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "owner", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "proxyType", + "inputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "outputs": [ + { + "name": "", + "type": "uint8", + "internalType": "enum ProxyAdmin.ProxyType" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "renounceOwnership", + "inputs": [], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "setAddress", + "inputs": [ + { + "name": "_name", + "type": "string", + "internalType": "string" + }, + { + "name": "_address", + "type": "address", + "internalType": "address" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "setAddressManager", + "inputs": [ + { + "name": "_address", + "type": "address", + "internalType": "contract IAddressManager" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "setImplementationName", + "inputs": [ + { + "name": "_address", + "type": "address", + "internalType": "address" + }, + { + "name": "_name", + "type": "string", + "internalType": "string" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "setProxyType", + "inputs": [ + { + "name": "_address", + "type": "address", + "internalType": "address" + }, + { + "name": "_type", + "type": "uint8", + "internalType": "enum ProxyAdmin.ProxyType" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "setUpgrading", + "inputs": [ + { + "name": "_upgrading", + "type": "bool", + "internalType": "bool" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "transferOwnership", + "inputs": [ + { + "name": "newOwner", + "type": "address", + "internalType": "address" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "upgrade", + "inputs": [ + { + "name": "_proxy", + "type": "address", + "internalType": "address payable" + }, + { + "name": "_implementation", + "type": "address", + "internalType": "address" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "upgradeAndCall", + "inputs": [ + { + "name": "_proxy", + "type": "address", + "internalType": "address payable" + }, + { + "name": "_implementation", + "type": "address", + "internalType": "address" + }, + { + "name": "_data", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [], + "stateMutability": "payable" + }, + { + "type": "event", + "name": "OwnershipTransferred", + "inputs": [ + { + "name": "previousOwner", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "newOwner", + "type": "address", + "indexed": true, + "internalType": "address" + } + ], + "anonymous": false + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod ProxyAdmin { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x608060405234801561001057600080fd5b50604051620018053803806200180583398101604081905261003191610099565b61003a33610049565b61004381610049565b506100c9565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156100ab57600080fd5b81516001600160a01b03811681146100c257600080fd5b9392505050565b61172c80620000d96000396000f3fe60806040526004361061010e5760003560e01c8063860f7cda116100a557806399a88ec411610074578063b794726211610059578063b794726214610302578063f2fde38b1461033d578063f3b7dead1461035d57600080fd5b806399a88ec4146102c25780639b2ea4bd146102e257600080fd5b8063860f7cda146102515780638d52d4a0146102715780638da5cb5b146102915780639623609d146102af57600080fd5b80633ab76e9f116100e15780633ab76e9f146101bf5780636bd9f516146101df578063715018a61461021c5780637eff275e1461023157600080fd5b80630652b57a1461011357806307c8f7b014610135578063204e1c7a14610155578063238181ae14610192575b600080fd5b34801561011f57600080fd5b5061013361012e36600461103b565b61037d565b005b34801561014157600080fd5b50610133610150366004611058565b6103bf565b34801561016157600080fd5b5061017561017036600461103b565b610411565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561019e57600080fd5b506101b26101ad36600461103b565b610603565b60405161018991906110d2565b3480156101cb57600080fd5b50600354610175906001600160a01b031681565b3480156101eb57600080fd5b5061020f6101fa36600461103b565b60016020526000908152604090205460ff1681565b6040516101899190611114565b34801561022857600080fd5b5061013361069d565b34801561023d57600080fd5b5061013361024c366004611155565b6106b1565b34801561025d57600080fd5b5061013361026c366004611274565b610830565b34801561027d57600080fd5b5061013361028c3660046112c4565b61085a565b34801561029d57600080fd5b506000546001600160a01b0316610175565b6101336102bd3660046112f6565b6108c1565b3480156102ce57600080fd5b506101336102dd366004611155565b610a93565b3480156102ee57600080fd5b506101336102fd36600461136c565b610ce2565b34801561030e57600080fd5b5060035474010000000000000000000000000000000000000000900460ff166040519015158152602001610189565b34801561034957600080fd5b5061013361035836600461103b565b610d6b565b34801561036957600080fd5b5061017561037836600461103b565b610e15565b610385610f4a565b600380547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6103c7610f4a565b6003805491151574010000000000000000000000000000000000000000027fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff909216919091179055565b6001600160a01b03811660009081526001602052604081205460ff1681816002811115610440576104406110e5565b036104ae57826001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610483573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104a791906113b3565b9392505050565b60018160028111156104c2576104c26110e5565b0361050557826001600160a01b031663aaf10f426040518163ffffffff1660e01b8152600401602060405180830381865afa158015610483573d6000803e3d6000fd5b6002816002811115610519576105196110e5565b03610596576003546001600160a01b038481166000908152600260205260409081902090517fbf40fac1000000000000000000000000000000000000000000000000000000008152919092169163bf40fac191610579919060040161141d565b602060405180830381865afa158015610483573d6000803e3d6000fd5b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f50726f787941646d696e3a20756e6b6e6f776e2070726f78792074797065000060448201526064015b60405180910390fd5b50919050565b6002602052600090815260409020805461061c906113d0565b80601f0160208091040260200160405190810160405280929190818152602001828054610648906113d0565b80156106955780601f1061066a57610100808354040283529160200191610695565b820191906000526020600020905b81548152906001019060200180831161067857829003601f168201915b505050505081565b6106a5610f4a565b6106af6000610fbe565b565b6106b9610f4a565b6001600160a01b03821660009081526001602052604081205460ff16908160028111156106e8576106e86110e5565b03610767576040517f8f2839700000000000000000000000000000000000000000000000000000000081526001600160a01b038381166004830152841690638f283970906024015b600060405180830381600087803b15801561074a57600080fd5b505af115801561075e573d6000803e3d6000fd5b50505050505050565b600181600281111561077b5761077b6110e5565b036107c7576040517f13af40350000000000000000000000000000000000000000000000000000000081526001600160a01b0383811660048301528416906313af403590602401610730565b60028160028111156107db576107db6110e5565b03610596576003546040517ff2fde38b0000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301529091169063f2fde38b90602401610730565b505050565b610838610f4a565b6001600160a01b038216600090815260026020526040902061082b828261150c565b610862610f4a565b6001600160a01b0382166000908152600160208190526040909120805483927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00909116908360028111156108b8576108b86110e5565b02179055505050565b6108c9610f4a565b6001600160a01b03831660009081526001602052604081205460ff16908160028111156108f8576108f86110e5565b03610993576040517f4f1ef2860000000000000000000000000000000000000000000000000000000081526001600160a01b03851690634f1ef2869034906109469087908790600401611608565b60006040518083038185885af1158015610964573d6000803e3d6000fd5b50505050506040513d6000823e601f3d908101601f1916820160405261098d9190810190611632565b50610a8d565b61099d8484610a93565b6000846001600160a01b031634846040516109b891906116a9565b60006040518083038185875af1925050503d80600081146109f5576040519150601f19603f3d011682016040523d82523d6000602084013e6109fa565b606091505b5050905080610a8b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f50726f787941646d696e3a2063616c6c20746f2070726f78792061667465722060448201527f75706772616465206661696c656400000000000000000000000000000000000060648201526084016105f4565b505b50505050565b610a9b610f4a565b6001600160a01b03821660009081526001602052604081205460ff1690816002811115610aca57610aca6110e5565b03610b16576040517f3659cfe60000000000000000000000000000000000000000000000000000000081526001600160a01b038381166004830152841690633659cfe690602401610730565b6001816002811115610b2a57610b2a6110e5565b03610b9c576040517f9b0b0fda0000000000000000000000000000000000000000000000000000000081527f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60048201526001600160a01b038381166024830152841690639b0b0fda90604401610730565b6002816002811115610bb057610bb06110e5565b03610cda576001600160a01b03831660009081526002602052604081208054610bd8906113d0565b80601f0160208091040260200160405190810160405280929190818152602001828054610c04906113d0565b8015610c515780601f10610c2657610100808354040283529160200191610c51565b820191906000526020600020905b815481529060010190602001808311610c3457829003601f168201915b50506003546040517f9b2ea4bd0000000000000000000000000000000000000000000000000000000081529495506001600160a01b031693639b2ea4bd9350610ca2925085915087906004016116c5565b600060405180830381600087803b158015610cbc57600080fd5b505af1158015610cd0573d6000803e3d6000fd5b5050505050505050565b61082b6116f0565b610cea610f4a565b6003546040517f9b2ea4bd0000000000000000000000000000000000000000000000000000000081526001600160a01b0390911690639b2ea4bd90610d3590859085906004016116c5565b600060405180830381600087803b158015610d4f57600080fd5b505af1158015610d63573d6000803e3d6000fd5b505050505050565b610d73610f4a565b6001600160a01b038116610e09576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016105f4565b610e1281610fbe565b50565b6001600160a01b03811660009081526001602052604081205460ff1681816002811115610e4457610e446110e5565b03610e8757826001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381865afa158015610483573d6000803e3d6000fd5b6001816002811115610e9b57610e9b6110e5565b03610ede57826001600160a01b031663893d20e86040518163ffffffff1660e01b8152600401602060405180830381865afa158015610483573d6000803e3d6000fd5b6002816002811115610ef257610ef26110e5565b0361059657600360009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610483573d6000803e3d6000fd5b6000546001600160a01b031633146106af576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105f4565b600080546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0381168114610e1257600080fd5b60006020828403121561104d57600080fd5b81356104a781611026565b60006020828403121561106a57600080fd5b813580151581146104a757600080fd5b60005b8381101561109557818101518382015260200161107d565b83811115610a8d5750506000910152565b600081518084526110be81602086016020860161107a565b601f01601f19169290920160200192915050565b6020815260006104a760208301846110a6565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b602081016003831061114f577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b91905290565b6000806040838503121561116857600080fd5b823561117381611026565b9150602083013561118381611026565b809150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156111e6576111e661118e565b604052919050565b600067ffffffffffffffff8211156112085761120861118e565b50601f01601f191660200190565b6000611229611224846111ee565b6111bd565b905082815283838301111561123d57600080fd5b828260208301376000602084830101529392505050565b600082601f83011261126557600080fd5b6104a783833560208501611216565b6000806040838503121561128757600080fd5b823561129281611026565b9150602083013567ffffffffffffffff8111156112ae57600080fd5b6112ba85828601611254565b9150509250929050565b600080604083850312156112d757600080fd5b82356112e281611026565b915060208301356003811061118357600080fd5b60008060006060848603121561130b57600080fd5b833561131681611026565b9250602084013561132681611026565b9150604084013567ffffffffffffffff81111561134257600080fd5b8401601f8101861361135357600080fd5b61136286823560208401611216565b9150509250925092565b6000806040838503121561137f57600080fd5b823567ffffffffffffffff81111561139657600080fd5b6113a285828601611254565b925050602083013561118381611026565b6000602082840312156113c557600080fd5b81516104a781611026565b600181811c908216806113e457607f821691505b6020821081036105fd577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000602080835260008454611431816113d0565b80848701526040600180841660008114611452576001811461148a576114b8565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008516838a01528284151560051b8a010195506114b8565b896000528660002060005b858110156114b05781548b8201860152908301908801611495565b8a0184019650505b509398975050505050505050565b601f82111561082b57600081815260208120601f850160051c810160208610156114ed5750805b601f850160051c820191505b81811015610d63578281556001016114f9565b815167ffffffffffffffff8111156115265761152661118e565b61153a8161153484546113d0565b846114c6565b602080601f83116001811461158d57600084156115575750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555610d63565b600085815260208120601f198616915b828110156115bc5788860151825594840194600190910190840161159d565b50858210156115f857878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b6001600160a01b038316815260406020820152600061162a60408301846110a6565b949350505050565b60006020828403121561164457600080fd5b815167ffffffffffffffff81111561165b57600080fd5b8201601f8101841361166c57600080fd5b805161167a611224826111ee565b81815285602083850101111561168f57600080fd5b6116a082602083016020860161107a565b95945050505050565b600082516116bb81846020870161107a565b9190910192915050565b6040815260006116d860408301856110a6565b90506001600160a01b03831660208301529392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fdfea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`@Qb\0\x18\x058\x03\x80b\0\x18\x05\x839\x81\x01`@\x81\x90Ra\x001\x91a\0\x99V[a\0:3a\0IV[a\0C\x81a\0IV[Pa\0\xC9V[`\0\x80T`\x01`\x01`\xA0\x1B\x03\x83\x81\x16`\x01`\x01`\xA0\x1B\x03\x19\x83\x16\x81\x17\x84U`@Q\x91\x90\x92\x16\x92\x83\x91\x7F\x8B\xE0\x07\x9CS\x16Y\x14\x13D\xCD\x1F\xD0\xA4\xF2\x84\x19I\x7F\x97\"\xA3\xDA\xAF\xE3\xB4\x18okdW\xE0\x91\x90\xA3PPV[`\0` \x82\x84\x03\x12\x15a\0\xABW`\0\x80\xFD[\x81Q`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a\0\xC2W`\0\x80\xFD[\x93\x92PPPV[a\x17,\x80b\0\0\xD9`\09`\0\xF3\xFE`\x80`@R`\x046\x10a\x01\x0EW`\x005`\xE0\x1C\x80c\x86\x0F|\xDA\x11a\0\xA5W\x80c\x99\xA8\x8E\xC4\x11a\0tW\x80c\xB7\x94rb\x11a\0YW\x80c\xB7\x94rb\x14a\x03\x02W\x80c\xF2\xFD\xE3\x8B\x14a\x03=W\x80c\xF3\xB7\xDE\xAD\x14a\x03]W`\0\x80\xFD[\x80c\x99\xA8\x8E\xC4\x14a\x02\xC2W\x80c\x9B.\xA4\xBD\x14a\x02\xE2W`\0\x80\xFD[\x80c\x86\x0F|\xDA\x14a\x02QW\x80c\x8DR\xD4\xA0\x14a\x02qW\x80c\x8D\xA5\xCB[\x14a\x02\x91W\x80c\x96#`\x9D\x14a\x02\xAFW`\0\x80\xFD[\x80c:\xB7n\x9F\x11a\0\xE1W\x80c:\xB7n\x9F\x14a\x01\xBFW\x80ck\xD9\xF5\x16\x14a\x01\xDFW\x80cqP\x18\xA6\x14a\x02\x1CW\x80c~\xFF'^\x14a\x021W`\0\x80\xFD[\x80c\x06R\xB5z\x14a\x01\x13W\x80c\x07\xC8\xF7\xB0\x14a\x015W\x80c N\x1Cz\x14a\x01UW\x80c#\x81\x81\xAE\x14a\x01\x92W[`\0\x80\xFD[4\x80\x15a\x01\x1FW`\0\x80\xFD[Pa\x013a\x01.6`\x04a\x10;V[a\x03}V[\0[4\x80\x15a\x01AW`\0\x80\xFD[Pa\x013a\x01P6`\x04a\x10XV[a\x03\xBFV[4\x80\x15a\x01aW`\0\x80\xFD[Pa\x01ua\x01p6`\x04a\x10;V[a\x04\x11V[`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[4\x80\x15a\x01\x9EW`\0\x80\xFD[Pa\x01\xB2a\x01\xAD6`\x04a\x10;V[a\x06\x03V[`@Qa\x01\x89\x91\x90a\x10\xD2V[4\x80\x15a\x01\xCBW`\0\x80\xFD[P`\x03Ta\x01u\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[4\x80\x15a\x01\xEBW`\0\x80\xFD[Pa\x02\x0Fa\x01\xFA6`\x04a\x10;V[`\x01` R`\0\x90\x81R`@\x90 T`\xFF\x16\x81V[`@Qa\x01\x89\x91\x90a\x11\x14V[4\x80\x15a\x02(W`\0\x80\xFD[Pa\x013a\x06\x9DV[4\x80\x15a\x02=W`\0\x80\xFD[Pa\x013a\x02L6`\x04a\x11UV[a\x06\xB1V[4\x80\x15a\x02]W`\0\x80\xFD[Pa\x013a\x02l6`\x04a\x12tV[a\x080V[4\x80\x15a\x02}W`\0\x80\xFD[Pa\x013a\x02\x8C6`\x04a\x12\xC4V[a\x08ZV[4\x80\x15a\x02\x9DW`\0\x80\xFD[P`\0T`\x01`\x01`\xA0\x1B\x03\x16a\x01uV[a\x013a\x02\xBD6`\x04a\x12\xF6V[a\x08\xC1V[4\x80\x15a\x02\xCEW`\0\x80\xFD[Pa\x013a\x02\xDD6`\x04a\x11UV[a\n\x93V[4\x80\x15a\x02\xEEW`\0\x80\xFD[Pa\x013a\x02\xFD6`\x04a\x13lV[a\x0C\xE2V[4\x80\x15a\x03\x0EW`\0\x80\xFD[P`\x03Tt\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16`@Q\x90\x15\x15\x81R` \x01a\x01\x89V[4\x80\x15a\x03IW`\0\x80\xFD[Pa\x013a\x03X6`\x04a\x10;V[a\rkV[4\x80\x15a\x03iW`\0\x80\xFD[Pa\x01ua\x03x6`\x04a\x10;V[a\x0E\x15V[a\x03\x85a\x0FJV[`\x03\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16`\x01`\x01`\xA0\x1B\x03\x92\x90\x92\x16\x91\x90\x91\x17\x90UV[a\x03\xC7a\x0FJV[`\x03\x80T\x91\x15\x15t\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x02\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x92\x16\x91\x90\x91\x17\x90UV[`\x01`\x01`\xA0\x1B\x03\x81\x16`\0\x90\x81R`\x01` R`@\x81 T`\xFF\x16\x81\x81`\x02\x81\x11\x15a\x04@Wa\x04@a\x10\xE5V[\x03a\x04\xAEW\x82`\x01`\x01`\xA0\x1B\x03\x16c\\`\xDA\x1B`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x04\x83W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x04\xA7\x91\x90a\x13\xB3V[\x93\x92PPPV[`\x01\x81`\x02\x81\x11\x15a\x04\xC2Wa\x04\xC2a\x10\xE5V[\x03a\x05\x05W\x82`\x01`\x01`\xA0\x1B\x03\x16c\xAA\xF1\x0FB`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x04\x83W=`\0\x80>=`\0\xFD[`\x02\x81`\x02\x81\x11\x15a\x05\x19Wa\x05\x19a\x10\xE5V[\x03a\x05\x96W`\x03T`\x01`\x01`\xA0\x1B\x03\x84\x81\x16`\0\x90\x81R`\x02` R`@\x90\x81\x90 \x90Q\x7F\xBF@\xFA\xC1\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\x91\x90\x92\x16\x91c\xBF@\xFA\xC1\x91a\x05y\x91\x90`\x04\x01a\x14\x1DV[` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x04\x83W=`\0\x80>=`\0\xFD[`@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\x82\x01R`\x1E`$\x82\x01R\x7FProxyAdmin: unknown proxy type\0\0`D\x82\x01R`d\x01[`@Q\x80\x91\x03\x90\xFD[P\x91\x90PV[`\x02` R`\0\x90\x81R`@\x90 \x80Ta\x06\x1C\x90a\x13\xD0V[\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x92\x91\x90\x81\x81R` \x01\x82\x80Ta\x06H\x90a\x13\xD0V[\x80\x15a\x06\x95W\x80`\x1F\x10a\x06jWa\x01\0\x80\x83T\x04\x02\x83R\x91` \x01\x91a\x06\x95V[\x82\x01\x91\x90`\0R` `\0 \x90[\x81T\x81R\x90`\x01\x01\x90` \x01\x80\x83\x11a\x06xW\x82\x90\x03`\x1F\x16\x82\x01\x91[PPPPP\x81V[a\x06\xA5a\x0FJV[a\x06\xAF`\0a\x0F\xBEV[V[a\x06\xB9a\x0FJV[`\x01`\x01`\xA0\x1B\x03\x82\x16`\0\x90\x81R`\x01` R`@\x81 T`\xFF\x16\x90\x81`\x02\x81\x11\x15a\x06\xE8Wa\x06\xE8a\x10\xE5V[\x03a\x07gW`@Q\x7F\x8F(9p\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`\x01`\x01`\xA0\x1B\x03\x83\x81\x16`\x04\x83\x01R\x84\x16\x90c\x8F(9p\x90`$\x01[`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a\x07JW`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x07^W=`\0\x80>=`\0\xFD[PPPPPPPV[`\x01\x81`\x02\x81\x11\x15a\x07{Wa\x07{a\x10\xE5V[\x03a\x07\xC7W`@Q\x7F\x13\xAF@5\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`\x01`\x01`\xA0\x1B\x03\x83\x81\x16`\x04\x83\x01R\x84\x16\x90c\x13\xAF@5\x90`$\x01a\x070V[`\x02\x81`\x02\x81\x11\x15a\x07\xDBWa\x07\xDBa\x10\xE5V[\x03a\x05\x96W`\x03T`@Q\x7F\xF2\xFD\xE3\x8B\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`\x01`\x01`\xA0\x1B\x03\x84\x81\x16`\x04\x83\x01R\x90\x91\x16\x90c\xF2\xFD\xE3\x8B\x90`$\x01a\x070V[PPPV[a\x088a\x0FJV[`\x01`\x01`\xA0\x1B\x03\x82\x16`\0\x90\x81R`\x02` R`@\x90 a\x08+\x82\x82a\x15\x0CV[a\x08ba\x0FJV[`\x01`\x01`\xA0\x1B\x03\x82\x16`\0\x90\x81R`\x01` \x81\x90R`@\x90\x91 \x80T\x83\x92\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x90\x91\x16\x90\x83`\x02\x81\x11\x15a\x08\xB8Wa\x08\xB8a\x10\xE5V[\x02\x17\x90UPPPV[a\x08\xC9a\x0FJV[`\x01`\x01`\xA0\x1B\x03\x83\x16`\0\x90\x81R`\x01` R`@\x81 T`\xFF\x16\x90\x81`\x02\x81\x11\x15a\x08\xF8Wa\x08\xF8a\x10\xE5V[\x03a\t\x93W`@Q\x7FO\x1E\xF2\x86\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`\x01`\x01`\xA0\x1B\x03\x85\x16\x90cO\x1E\xF2\x86\x904\x90a\tF\x90\x87\x90\x87\x90`\x04\x01a\x16\x08V[`\0`@Q\x80\x83\x03\x81\x85\x88Z\xF1\x15\x80\x15a\tdW=`\0\x80>=`\0\xFD[PPPPP`@Q=`\0\x82>`\x1F=\x90\x81\x01`\x1F\x19\x16\x82\x01`@Ra\t\x8D\x91\x90\x81\x01\x90a\x162V[Pa\n\x8DV[a\t\x9D\x84\x84a\n\x93V[`\0\x84`\x01`\x01`\xA0\x1B\x03\x164\x84`@Qa\t\xB8\x91\x90a\x16\xA9V[`\0`@Q\x80\x83\x03\x81\x85\x87Z\xF1\x92PPP=\x80`\0\x81\x14a\t\xF5W`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=`\0` \x84\x01>a\t\xFAV[``\x91P[PP\x90P\x80a\n\x8BW`@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\x82\x01R`.`$\x82\x01R\x7FProxyAdmin: call to proxy after `D\x82\x01R\x7Fupgrade failed\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x05\xF4V[P[PPPPV[a\n\x9Ba\x0FJV[`\x01`\x01`\xA0\x1B\x03\x82\x16`\0\x90\x81R`\x01` R`@\x81 T`\xFF\x16\x90\x81`\x02\x81\x11\x15a\n\xCAWa\n\xCAa\x10\xE5V[\x03a\x0B\x16W`@Q\x7F6Y\xCF\xE6\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`\x01`\x01`\xA0\x1B\x03\x83\x81\x16`\x04\x83\x01R\x84\x16\x90c6Y\xCF\xE6\x90`$\x01a\x070V[`\x01\x81`\x02\x81\x11\x15a\x0B*Wa\x0B*a\x10\xE5V[\x03a\x0B\x9CW`@Q\x7F\x9B\x0B\x0F\xDA\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\x7F6\x08\x94\xA1;\xA1\xA3!\x06g\xC8(I-\xB9\x8D\xCA> v\xCC75\xA9 \xA3\xCAP]8+\xBC`\x04\x82\x01R`\x01`\x01`\xA0\x1B\x03\x83\x81\x16`$\x83\x01R\x84\x16\x90c\x9B\x0B\x0F\xDA\x90`D\x01a\x070V[`\x02\x81`\x02\x81\x11\x15a\x0B\xB0Wa\x0B\xB0a\x10\xE5V[\x03a\x0C\xDAW`\x01`\x01`\xA0\x1B\x03\x83\x16`\0\x90\x81R`\x02` R`@\x81 \x80Ta\x0B\xD8\x90a\x13\xD0V[\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x92\x91\x90\x81\x81R` \x01\x82\x80Ta\x0C\x04\x90a\x13\xD0V[\x80\x15a\x0CQW\x80`\x1F\x10a\x0C&Wa\x01\0\x80\x83T\x04\x02\x83R\x91` \x01\x91a\x0CQV[\x82\x01\x91\x90`\0R` `\0 \x90[\x81T\x81R\x90`\x01\x01\x90` \x01\x80\x83\x11a\x0C4W\x82\x90\x03`\x1F\x16\x82\x01\x91[PP`\x03T`@Q\x7F\x9B.\xA4\xBD\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\x94\x95P`\x01`\x01`\xA0\x1B\x03\x16\x93c\x9B.\xA4\xBD\x93Pa\x0C\xA2\x92P\x85\x91P\x87\x90`\x04\x01a\x16\xC5V[`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a\x0C\xBCW`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x0C\xD0W=`\0\x80>=`\0\xFD[PPPPPPPPV[a\x08+a\x16\xF0V[a\x0C\xEAa\x0FJV[`\x03T`@Q\x7F\x9B.\xA4\xBD\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`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x90c\x9B.\xA4\xBD\x90a\r5\x90\x85\x90\x85\x90`\x04\x01a\x16\xC5V[`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a\rOW`\0\x80\xFD[PZ\xF1\x15\x80\x15a\rcW=`\0\x80>=`\0\xFD[PPPPPPV[a\rsa\x0FJV[`\x01`\x01`\xA0\x1B\x03\x81\x16a\x0E\tW`@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\x82\x01R`&`$\x82\x01R\x7FOwnable: new owner is the zero a`D\x82\x01R\x7Fddress\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`d\x82\x01R`\x84\x01a\x05\xF4V[a\x0E\x12\x81a\x0F\xBEV[PV[`\x01`\x01`\xA0\x1B\x03\x81\x16`\0\x90\x81R`\x01` R`@\x81 T`\xFF\x16\x81\x81`\x02\x81\x11\x15a\x0EDWa\x0EDa\x10\xE5V[\x03a\x0E\x87W\x82`\x01`\x01`\xA0\x1B\x03\x16c\xF8Q\xA4@`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x04\x83W=`\0\x80>=`\0\xFD[`\x01\x81`\x02\x81\x11\x15a\x0E\x9BWa\x0E\x9Ba\x10\xE5V[\x03a\x0E\xDEW\x82`\x01`\x01`\xA0\x1B\x03\x16c\x89= \xE8`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x04\x83W=`\0\x80>=`\0\xFD[`\x02\x81`\x02\x81\x11\x15a\x0E\xF2Wa\x0E\xF2a\x10\xE5V[\x03a\x05\x96W`\x03`\0\x90T\x90a\x01\0\n\x90\x04`\x01`\x01`\xA0\x1B\x03\x16`\x01`\x01`\xA0\x1B\x03\x16c\x8D\xA5\xCB[`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x04\x83W=`\0\x80>=`\0\xFD[`\0T`\x01`\x01`\xA0\x1B\x03\x163\x14a\x06\xAFW`@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\x82\x01\x81\x90R`$\x82\x01R\x7FOwnable: caller is not the owner`D\x82\x01R`d\x01a\x05\xF4V[`\0\x80T`\x01`\x01`\xA0\x1B\x03\x83\x81\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x83\x16\x81\x17\x84U`@Q\x91\x90\x92\x16\x92\x83\x91\x7F\x8B\xE0\x07\x9CS\x16Y\x14\x13D\xCD\x1F\xD0\xA4\xF2\x84\x19I\x7F\x97\"\xA3\xDA\xAF\xE3\xB4\x18okdW\xE0\x91\x90\xA3PPV[`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a\x0E\x12W`\0\x80\xFD[`\0` \x82\x84\x03\x12\x15a\x10MW`\0\x80\xFD[\x815a\x04\xA7\x81a\x10&V[`\0` \x82\x84\x03\x12\x15a\x10jW`\0\x80\xFD[\x815\x80\x15\x15\x81\x14a\x04\xA7W`\0\x80\xFD[`\0[\x83\x81\x10\x15a\x10\x95W\x81\x81\x01Q\x83\x82\x01R` \x01a\x10}V[\x83\x81\x11\x15a\n\x8DWPP`\0\x91\x01RV[`\0\x81Q\x80\x84Ra\x10\xBE\x81` \x86\x01` \x86\x01a\x10zV[`\x1F\x01`\x1F\x19\x16\x92\x90\x92\x01` \x01\x92\x91PPV[` \x81R`\0a\x04\xA7` \x83\x01\x84a\x10\xA6V[\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`!`\x04R`$`\0\xFD[` \x81\x01`\x03\x83\x10a\x11OW\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`!`\x04R`$`\0\xFD[\x91\x90R\x90V[`\0\x80`@\x83\x85\x03\x12\x15a\x11hW`\0\x80\xFD[\x825a\x11s\x81a\x10&V[\x91P` \x83\x015a\x11\x83\x81a\x10&V[\x80\x91PP\x92P\x92\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[`@Q`\x1F\x82\x01`\x1F\x19\x16\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a\x11\xE6Wa\x11\xE6a\x11\x8EV[`@R\x91\x90PV[`\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x15a\x12\x08Wa\x12\x08a\x11\x8EV[P`\x1F\x01`\x1F\x19\x16` \x01\x90V[`\0a\x12)a\x12$\x84a\x11\xEEV[a\x11\xBDV[\x90P\x82\x81R\x83\x83\x83\x01\x11\x15a\x12=W`\0\x80\xFD[\x82\x82` \x83\x017`\0` \x84\x83\x01\x01R\x93\x92PPPV[`\0\x82`\x1F\x83\x01\x12a\x12eW`\0\x80\xFD[a\x04\xA7\x83\x835` \x85\x01a\x12\x16V[`\0\x80`@\x83\x85\x03\x12\x15a\x12\x87W`\0\x80\xFD[\x825a\x12\x92\x81a\x10&V[\x91P` \x83\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x12\xAEW`\0\x80\xFD[a\x12\xBA\x85\x82\x86\x01a\x12TV[\x91PP\x92P\x92\x90PV[`\0\x80`@\x83\x85\x03\x12\x15a\x12\xD7W`\0\x80\xFD[\x825a\x12\xE2\x81a\x10&V[\x91P` \x83\x015`\x03\x81\x10a\x11\x83W`\0\x80\xFD[`\0\x80`\0``\x84\x86\x03\x12\x15a\x13\x0BW`\0\x80\xFD[\x835a\x13\x16\x81a\x10&V[\x92P` \x84\x015a\x13&\x81a\x10&V[\x91P`@\x84\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x13BW`\0\x80\xFD[\x84\x01`\x1F\x81\x01\x86\x13a\x13SW`\0\x80\xFD[a\x13b\x86\x825` \x84\x01a\x12\x16V[\x91PP\x92P\x92P\x92V[`\0\x80`@\x83\x85\x03\x12\x15a\x13\x7FW`\0\x80\xFD[\x825g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x13\x96W`\0\x80\xFD[a\x13\xA2\x85\x82\x86\x01a\x12TV[\x92PP` \x83\x015a\x11\x83\x81a\x10&V[`\0` \x82\x84\x03\x12\x15a\x13\xC5W`\0\x80\xFD[\x81Qa\x04\xA7\x81a\x10&V[`\x01\x81\x81\x1C\x90\x82\x16\x80a\x13\xE4W`\x7F\x82\x16\x91P[` \x82\x10\x81\x03a\x05\xFDW\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`\"`\x04R`$`\0\xFD[`\0` \x80\x83R`\0\x84Ta\x141\x81a\x13\xD0V[\x80\x84\x87\x01R`@`\x01\x80\x84\x16`\0\x81\x14a\x14RW`\x01\x81\x14a\x14\x8AWa\x14\xB8V[\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x85\x16\x83\x8A\x01R\x82\x84\x15\x15`\x05\x1B\x8A\x01\x01\x95Pa\x14\xB8V[\x89`\0R\x86`\0 `\0[\x85\x81\x10\x15a\x14\xB0W\x81T\x8B\x82\x01\x86\x01R\x90\x83\x01\x90\x88\x01a\x14\x95V[\x8A\x01\x84\x01\x96PP[P\x93\x98\x97PPPPPPPPV[`\x1F\x82\x11\x15a\x08+W`\0\x81\x81R` \x81 `\x1F\x85\x01`\x05\x1C\x81\x01` \x86\x10\x15a\x14\xEDWP\x80[`\x1F\x85\x01`\x05\x1C\x82\x01\x91P[\x81\x81\x10\x15a\rcW\x82\x81U`\x01\x01a\x14\xF9V[\x81Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x15&Wa\x15&a\x11\x8EV[a\x15:\x81a\x154\x84Ta\x13\xD0V[\x84a\x14\xC6V[` \x80`\x1F\x83\x11`\x01\x81\x14a\x15\x8DW`\0\x84\x15a\x15WWP\x85\x83\x01Q[\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF`\x03\x86\x90\x1B\x1C\x19\x16`\x01\x85\x90\x1B\x17\x85Ua\rcV[`\0\x85\x81R` \x81 `\x1F\x19\x86\x16\x91[\x82\x81\x10\x15a\x15\xBCW\x88\x86\x01Q\x82U\x94\x84\x01\x94`\x01\x90\x91\x01\x90\x84\x01a\x15\x9DV[P\x85\x82\x10\x15a\x15\xF8W\x87\x85\x01Q\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF`\x03\x88\x90\x1B`\xF8\x16\x1C\x19\x16\x81U[PPPPP`\x01\x90\x81\x1B\x01\x90UPV[`\x01`\x01`\xA0\x1B\x03\x83\x16\x81R`@` \x82\x01R`\0a\x16*`@\x83\x01\x84a\x10\xA6V[\x94\x93PPPPV[`\0` \x82\x84\x03\x12\x15a\x16DW`\0\x80\xFD[\x81Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x16[W`\0\x80\xFD[\x82\x01`\x1F\x81\x01\x84\x13a\x16lW`\0\x80\xFD[\x80Qa\x16za\x12$\x82a\x11\xEEV[\x81\x81R\x85` \x83\x85\x01\x01\x11\x15a\x16\x8FW`\0\x80\xFD[a\x16\xA0\x82` \x83\x01` \x86\x01a\x10zV[\x95\x94PPPPPV[`\0\x82Qa\x16\xBB\x81\x84` \x87\x01a\x10zV[\x91\x90\x91\x01\x92\x91PPV[`@\x81R`\0a\x16\xD8`@\x83\x01\x85a\x10\xA6V[\x90P`\x01`\x01`\xA0\x1B\x03\x83\x16` \x83\x01R\x93\x92PPPV[\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`\x01`\x04R`$`\0\xFD\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x60806040526004361061010e5760003560e01c8063860f7cda116100a557806399a88ec411610074578063b794726211610059578063b794726214610302578063f2fde38b1461033d578063f3b7dead1461035d57600080fd5b806399a88ec4146102c25780639b2ea4bd146102e257600080fd5b8063860f7cda146102515780638d52d4a0146102715780638da5cb5b146102915780639623609d146102af57600080fd5b80633ab76e9f116100e15780633ab76e9f146101bf5780636bd9f516146101df578063715018a61461021c5780637eff275e1461023157600080fd5b80630652b57a1461011357806307c8f7b014610135578063204e1c7a14610155578063238181ae14610192575b600080fd5b34801561011f57600080fd5b5061013361012e36600461103b565b61037d565b005b34801561014157600080fd5b50610133610150366004611058565b6103bf565b34801561016157600080fd5b5061017561017036600461103b565b610411565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561019e57600080fd5b506101b26101ad36600461103b565b610603565b60405161018991906110d2565b3480156101cb57600080fd5b50600354610175906001600160a01b031681565b3480156101eb57600080fd5b5061020f6101fa36600461103b565b60016020526000908152604090205460ff1681565b6040516101899190611114565b34801561022857600080fd5b5061013361069d565b34801561023d57600080fd5b5061013361024c366004611155565b6106b1565b34801561025d57600080fd5b5061013361026c366004611274565b610830565b34801561027d57600080fd5b5061013361028c3660046112c4565b61085a565b34801561029d57600080fd5b506000546001600160a01b0316610175565b6101336102bd3660046112f6565b6108c1565b3480156102ce57600080fd5b506101336102dd366004611155565b610a93565b3480156102ee57600080fd5b506101336102fd36600461136c565b610ce2565b34801561030e57600080fd5b5060035474010000000000000000000000000000000000000000900460ff166040519015158152602001610189565b34801561034957600080fd5b5061013361035836600461103b565b610d6b565b34801561036957600080fd5b5061017561037836600461103b565b610e15565b610385610f4a565b600380547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6103c7610f4a565b6003805491151574010000000000000000000000000000000000000000027fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff909216919091179055565b6001600160a01b03811660009081526001602052604081205460ff1681816002811115610440576104406110e5565b036104ae57826001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610483573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104a791906113b3565b9392505050565b60018160028111156104c2576104c26110e5565b0361050557826001600160a01b031663aaf10f426040518163ffffffff1660e01b8152600401602060405180830381865afa158015610483573d6000803e3d6000fd5b6002816002811115610519576105196110e5565b03610596576003546001600160a01b038481166000908152600260205260409081902090517fbf40fac1000000000000000000000000000000000000000000000000000000008152919092169163bf40fac191610579919060040161141d565b602060405180830381865afa158015610483573d6000803e3d6000fd5b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f50726f787941646d696e3a20756e6b6e6f776e2070726f78792074797065000060448201526064015b60405180910390fd5b50919050565b6002602052600090815260409020805461061c906113d0565b80601f0160208091040260200160405190810160405280929190818152602001828054610648906113d0565b80156106955780601f1061066a57610100808354040283529160200191610695565b820191906000526020600020905b81548152906001019060200180831161067857829003601f168201915b505050505081565b6106a5610f4a565b6106af6000610fbe565b565b6106b9610f4a565b6001600160a01b03821660009081526001602052604081205460ff16908160028111156106e8576106e86110e5565b03610767576040517f8f2839700000000000000000000000000000000000000000000000000000000081526001600160a01b038381166004830152841690638f283970906024015b600060405180830381600087803b15801561074a57600080fd5b505af115801561075e573d6000803e3d6000fd5b50505050505050565b600181600281111561077b5761077b6110e5565b036107c7576040517f13af40350000000000000000000000000000000000000000000000000000000081526001600160a01b0383811660048301528416906313af403590602401610730565b60028160028111156107db576107db6110e5565b03610596576003546040517ff2fde38b0000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301529091169063f2fde38b90602401610730565b505050565b610838610f4a565b6001600160a01b038216600090815260026020526040902061082b828261150c565b610862610f4a565b6001600160a01b0382166000908152600160208190526040909120805483927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00909116908360028111156108b8576108b86110e5565b02179055505050565b6108c9610f4a565b6001600160a01b03831660009081526001602052604081205460ff16908160028111156108f8576108f86110e5565b03610993576040517f4f1ef2860000000000000000000000000000000000000000000000000000000081526001600160a01b03851690634f1ef2869034906109469087908790600401611608565b60006040518083038185885af1158015610964573d6000803e3d6000fd5b50505050506040513d6000823e601f3d908101601f1916820160405261098d9190810190611632565b50610a8d565b61099d8484610a93565b6000846001600160a01b031634846040516109b891906116a9565b60006040518083038185875af1925050503d80600081146109f5576040519150601f19603f3d011682016040523d82523d6000602084013e6109fa565b606091505b5050905080610a8b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f50726f787941646d696e3a2063616c6c20746f2070726f78792061667465722060448201527f75706772616465206661696c656400000000000000000000000000000000000060648201526084016105f4565b505b50505050565b610a9b610f4a565b6001600160a01b03821660009081526001602052604081205460ff1690816002811115610aca57610aca6110e5565b03610b16576040517f3659cfe60000000000000000000000000000000000000000000000000000000081526001600160a01b038381166004830152841690633659cfe690602401610730565b6001816002811115610b2a57610b2a6110e5565b03610b9c576040517f9b0b0fda0000000000000000000000000000000000000000000000000000000081527f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60048201526001600160a01b038381166024830152841690639b0b0fda90604401610730565b6002816002811115610bb057610bb06110e5565b03610cda576001600160a01b03831660009081526002602052604081208054610bd8906113d0565b80601f0160208091040260200160405190810160405280929190818152602001828054610c04906113d0565b8015610c515780601f10610c2657610100808354040283529160200191610c51565b820191906000526020600020905b815481529060010190602001808311610c3457829003601f168201915b50506003546040517f9b2ea4bd0000000000000000000000000000000000000000000000000000000081529495506001600160a01b031693639b2ea4bd9350610ca2925085915087906004016116c5565b600060405180830381600087803b158015610cbc57600080fd5b505af1158015610cd0573d6000803e3d6000fd5b5050505050505050565b61082b6116f0565b610cea610f4a565b6003546040517f9b2ea4bd0000000000000000000000000000000000000000000000000000000081526001600160a01b0390911690639b2ea4bd90610d3590859085906004016116c5565b600060405180830381600087803b158015610d4f57600080fd5b505af1158015610d63573d6000803e3d6000fd5b505050505050565b610d73610f4a565b6001600160a01b038116610e09576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016105f4565b610e1281610fbe565b50565b6001600160a01b03811660009081526001602052604081205460ff1681816002811115610e4457610e446110e5565b03610e8757826001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381865afa158015610483573d6000803e3d6000fd5b6001816002811115610e9b57610e9b6110e5565b03610ede57826001600160a01b031663893d20e86040518163ffffffff1660e01b8152600401602060405180830381865afa158015610483573d6000803e3d6000fd5b6002816002811115610ef257610ef26110e5565b0361059657600360009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610483573d6000803e3d6000fd5b6000546001600160a01b031633146106af576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105f4565b600080546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0381168114610e1257600080fd5b60006020828403121561104d57600080fd5b81356104a781611026565b60006020828403121561106a57600080fd5b813580151581146104a757600080fd5b60005b8381101561109557818101518382015260200161107d565b83811115610a8d5750506000910152565b600081518084526110be81602086016020860161107a565b601f01601f19169290920160200192915050565b6020815260006104a760208301846110a6565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b602081016003831061114f577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b91905290565b6000806040838503121561116857600080fd5b823561117381611026565b9150602083013561118381611026565b809150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156111e6576111e661118e565b604052919050565b600067ffffffffffffffff8211156112085761120861118e565b50601f01601f191660200190565b6000611229611224846111ee565b6111bd565b905082815283838301111561123d57600080fd5b828260208301376000602084830101529392505050565b600082601f83011261126557600080fd5b6104a783833560208501611216565b6000806040838503121561128757600080fd5b823561129281611026565b9150602083013567ffffffffffffffff8111156112ae57600080fd5b6112ba85828601611254565b9150509250929050565b600080604083850312156112d757600080fd5b82356112e281611026565b915060208301356003811061118357600080fd5b60008060006060848603121561130b57600080fd5b833561131681611026565b9250602084013561132681611026565b9150604084013567ffffffffffffffff81111561134257600080fd5b8401601f8101861361135357600080fd5b61136286823560208401611216565b9150509250925092565b6000806040838503121561137f57600080fd5b823567ffffffffffffffff81111561139657600080fd5b6113a285828601611254565b925050602083013561118381611026565b6000602082840312156113c557600080fd5b81516104a781611026565b600181811c908216806113e457607f821691505b6020821081036105fd577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000602080835260008454611431816113d0565b80848701526040600180841660008114611452576001811461148a576114b8565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008516838a01528284151560051b8a010195506114b8565b896000528660002060005b858110156114b05781548b8201860152908301908801611495565b8a0184019650505b509398975050505050505050565b601f82111561082b57600081815260208120601f850160051c810160208610156114ed5750805b601f850160051c820191505b81811015610d63578281556001016114f9565b815167ffffffffffffffff8111156115265761152661118e565b61153a8161153484546113d0565b846114c6565b602080601f83116001811461158d57600084156115575750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555610d63565b600085815260208120601f198616915b828110156115bc5788860151825594840194600190910190840161159d565b50858210156115f857878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b6001600160a01b038316815260406020820152600061162a60408301846110a6565b949350505050565b60006020828403121561164457600080fd5b815167ffffffffffffffff81111561165b57600080fd5b8201601f8101841361166c57600080fd5b805161167a611224826111ee565b81815285602083850101111561168f57600080fd5b6116a082602083016020860161107a565b95945050505050565b600082516116bb81846020870161107a565b9190910192915050565b6040815260006116d860408301856110a6565b90506001600160a01b03831660208301529392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fdfea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R`\x046\x10a\x01\x0EW`\x005`\xE0\x1C\x80c\x86\x0F|\xDA\x11a\0\xA5W\x80c\x99\xA8\x8E\xC4\x11a\0tW\x80c\xB7\x94rb\x11a\0YW\x80c\xB7\x94rb\x14a\x03\x02W\x80c\xF2\xFD\xE3\x8B\x14a\x03=W\x80c\xF3\xB7\xDE\xAD\x14a\x03]W`\0\x80\xFD[\x80c\x99\xA8\x8E\xC4\x14a\x02\xC2W\x80c\x9B.\xA4\xBD\x14a\x02\xE2W`\0\x80\xFD[\x80c\x86\x0F|\xDA\x14a\x02QW\x80c\x8DR\xD4\xA0\x14a\x02qW\x80c\x8D\xA5\xCB[\x14a\x02\x91W\x80c\x96#`\x9D\x14a\x02\xAFW`\0\x80\xFD[\x80c:\xB7n\x9F\x11a\0\xE1W\x80c:\xB7n\x9F\x14a\x01\xBFW\x80ck\xD9\xF5\x16\x14a\x01\xDFW\x80cqP\x18\xA6\x14a\x02\x1CW\x80c~\xFF'^\x14a\x021W`\0\x80\xFD[\x80c\x06R\xB5z\x14a\x01\x13W\x80c\x07\xC8\xF7\xB0\x14a\x015W\x80c N\x1Cz\x14a\x01UW\x80c#\x81\x81\xAE\x14a\x01\x92W[`\0\x80\xFD[4\x80\x15a\x01\x1FW`\0\x80\xFD[Pa\x013a\x01.6`\x04a\x10;V[a\x03}V[\0[4\x80\x15a\x01AW`\0\x80\xFD[Pa\x013a\x01P6`\x04a\x10XV[a\x03\xBFV[4\x80\x15a\x01aW`\0\x80\xFD[Pa\x01ua\x01p6`\x04a\x10;V[a\x04\x11V[`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[4\x80\x15a\x01\x9EW`\0\x80\xFD[Pa\x01\xB2a\x01\xAD6`\x04a\x10;V[a\x06\x03V[`@Qa\x01\x89\x91\x90a\x10\xD2V[4\x80\x15a\x01\xCBW`\0\x80\xFD[P`\x03Ta\x01u\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[4\x80\x15a\x01\xEBW`\0\x80\xFD[Pa\x02\x0Fa\x01\xFA6`\x04a\x10;V[`\x01` R`\0\x90\x81R`@\x90 T`\xFF\x16\x81V[`@Qa\x01\x89\x91\x90a\x11\x14V[4\x80\x15a\x02(W`\0\x80\xFD[Pa\x013a\x06\x9DV[4\x80\x15a\x02=W`\0\x80\xFD[Pa\x013a\x02L6`\x04a\x11UV[a\x06\xB1V[4\x80\x15a\x02]W`\0\x80\xFD[Pa\x013a\x02l6`\x04a\x12tV[a\x080V[4\x80\x15a\x02}W`\0\x80\xFD[Pa\x013a\x02\x8C6`\x04a\x12\xC4V[a\x08ZV[4\x80\x15a\x02\x9DW`\0\x80\xFD[P`\0T`\x01`\x01`\xA0\x1B\x03\x16a\x01uV[a\x013a\x02\xBD6`\x04a\x12\xF6V[a\x08\xC1V[4\x80\x15a\x02\xCEW`\0\x80\xFD[Pa\x013a\x02\xDD6`\x04a\x11UV[a\n\x93V[4\x80\x15a\x02\xEEW`\0\x80\xFD[Pa\x013a\x02\xFD6`\x04a\x13lV[a\x0C\xE2V[4\x80\x15a\x03\x0EW`\0\x80\xFD[P`\x03Tt\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16`@Q\x90\x15\x15\x81R` \x01a\x01\x89V[4\x80\x15a\x03IW`\0\x80\xFD[Pa\x013a\x03X6`\x04a\x10;V[a\rkV[4\x80\x15a\x03iW`\0\x80\xFD[Pa\x01ua\x03x6`\x04a\x10;V[a\x0E\x15V[a\x03\x85a\x0FJV[`\x03\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16`\x01`\x01`\xA0\x1B\x03\x92\x90\x92\x16\x91\x90\x91\x17\x90UV[a\x03\xC7a\x0FJV[`\x03\x80T\x91\x15\x15t\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x02\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x92\x16\x91\x90\x91\x17\x90UV[`\x01`\x01`\xA0\x1B\x03\x81\x16`\0\x90\x81R`\x01` R`@\x81 T`\xFF\x16\x81\x81`\x02\x81\x11\x15a\x04@Wa\x04@a\x10\xE5V[\x03a\x04\xAEW\x82`\x01`\x01`\xA0\x1B\x03\x16c\\`\xDA\x1B`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x04\x83W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x04\xA7\x91\x90a\x13\xB3V[\x93\x92PPPV[`\x01\x81`\x02\x81\x11\x15a\x04\xC2Wa\x04\xC2a\x10\xE5V[\x03a\x05\x05W\x82`\x01`\x01`\xA0\x1B\x03\x16c\xAA\xF1\x0FB`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x04\x83W=`\0\x80>=`\0\xFD[`\x02\x81`\x02\x81\x11\x15a\x05\x19Wa\x05\x19a\x10\xE5V[\x03a\x05\x96W`\x03T`\x01`\x01`\xA0\x1B\x03\x84\x81\x16`\0\x90\x81R`\x02` R`@\x90\x81\x90 \x90Q\x7F\xBF@\xFA\xC1\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\x91\x90\x92\x16\x91c\xBF@\xFA\xC1\x91a\x05y\x91\x90`\x04\x01a\x14\x1DV[` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x04\x83W=`\0\x80>=`\0\xFD[`@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\x82\x01R`\x1E`$\x82\x01R\x7FProxyAdmin: unknown proxy type\0\0`D\x82\x01R`d\x01[`@Q\x80\x91\x03\x90\xFD[P\x91\x90PV[`\x02` R`\0\x90\x81R`@\x90 \x80Ta\x06\x1C\x90a\x13\xD0V[\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x92\x91\x90\x81\x81R` \x01\x82\x80Ta\x06H\x90a\x13\xD0V[\x80\x15a\x06\x95W\x80`\x1F\x10a\x06jWa\x01\0\x80\x83T\x04\x02\x83R\x91` \x01\x91a\x06\x95V[\x82\x01\x91\x90`\0R` `\0 \x90[\x81T\x81R\x90`\x01\x01\x90` \x01\x80\x83\x11a\x06xW\x82\x90\x03`\x1F\x16\x82\x01\x91[PPPPP\x81V[a\x06\xA5a\x0FJV[a\x06\xAF`\0a\x0F\xBEV[V[a\x06\xB9a\x0FJV[`\x01`\x01`\xA0\x1B\x03\x82\x16`\0\x90\x81R`\x01` R`@\x81 T`\xFF\x16\x90\x81`\x02\x81\x11\x15a\x06\xE8Wa\x06\xE8a\x10\xE5V[\x03a\x07gW`@Q\x7F\x8F(9p\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`\x01`\x01`\xA0\x1B\x03\x83\x81\x16`\x04\x83\x01R\x84\x16\x90c\x8F(9p\x90`$\x01[`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a\x07JW`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x07^W=`\0\x80>=`\0\xFD[PPPPPPPV[`\x01\x81`\x02\x81\x11\x15a\x07{Wa\x07{a\x10\xE5V[\x03a\x07\xC7W`@Q\x7F\x13\xAF@5\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`\x01`\x01`\xA0\x1B\x03\x83\x81\x16`\x04\x83\x01R\x84\x16\x90c\x13\xAF@5\x90`$\x01a\x070V[`\x02\x81`\x02\x81\x11\x15a\x07\xDBWa\x07\xDBa\x10\xE5V[\x03a\x05\x96W`\x03T`@Q\x7F\xF2\xFD\xE3\x8B\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`\x01`\x01`\xA0\x1B\x03\x84\x81\x16`\x04\x83\x01R\x90\x91\x16\x90c\xF2\xFD\xE3\x8B\x90`$\x01a\x070V[PPPV[a\x088a\x0FJV[`\x01`\x01`\xA0\x1B\x03\x82\x16`\0\x90\x81R`\x02` R`@\x90 a\x08+\x82\x82a\x15\x0CV[a\x08ba\x0FJV[`\x01`\x01`\xA0\x1B\x03\x82\x16`\0\x90\x81R`\x01` \x81\x90R`@\x90\x91 \x80T\x83\x92\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x90\x91\x16\x90\x83`\x02\x81\x11\x15a\x08\xB8Wa\x08\xB8a\x10\xE5V[\x02\x17\x90UPPPV[a\x08\xC9a\x0FJV[`\x01`\x01`\xA0\x1B\x03\x83\x16`\0\x90\x81R`\x01` R`@\x81 T`\xFF\x16\x90\x81`\x02\x81\x11\x15a\x08\xF8Wa\x08\xF8a\x10\xE5V[\x03a\t\x93W`@Q\x7FO\x1E\xF2\x86\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`\x01`\x01`\xA0\x1B\x03\x85\x16\x90cO\x1E\xF2\x86\x904\x90a\tF\x90\x87\x90\x87\x90`\x04\x01a\x16\x08V[`\0`@Q\x80\x83\x03\x81\x85\x88Z\xF1\x15\x80\x15a\tdW=`\0\x80>=`\0\xFD[PPPPP`@Q=`\0\x82>`\x1F=\x90\x81\x01`\x1F\x19\x16\x82\x01`@Ra\t\x8D\x91\x90\x81\x01\x90a\x162V[Pa\n\x8DV[a\t\x9D\x84\x84a\n\x93V[`\0\x84`\x01`\x01`\xA0\x1B\x03\x164\x84`@Qa\t\xB8\x91\x90a\x16\xA9V[`\0`@Q\x80\x83\x03\x81\x85\x87Z\xF1\x92PPP=\x80`\0\x81\x14a\t\xF5W`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=`\0` \x84\x01>a\t\xFAV[``\x91P[PP\x90P\x80a\n\x8BW`@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\x82\x01R`.`$\x82\x01R\x7FProxyAdmin: call to proxy after `D\x82\x01R\x7Fupgrade failed\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x05\xF4V[P[PPPPV[a\n\x9Ba\x0FJV[`\x01`\x01`\xA0\x1B\x03\x82\x16`\0\x90\x81R`\x01` R`@\x81 T`\xFF\x16\x90\x81`\x02\x81\x11\x15a\n\xCAWa\n\xCAa\x10\xE5V[\x03a\x0B\x16W`@Q\x7F6Y\xCF\xE6\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`\x01`\x01`\xA0\x1B\x03\x83\x81\x16`\x04\x83\x01R\x84\x16\x90c6Y\xCF\xE6\x90`$\x01a\x070V[`\x01\x81`\x02\x81\x11\x15a\x0B*Wa\x0B*a\x10\xE5V[\x03a\x0B\x9CW`@Q\x7F\x9B\x0B\x0F\xDA\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\x7F6\x08\x94\xA1;\xA1\xA3!\x06g\xC8(I-\xB9\x8D\xCA> v\xCC75\xA9 \xA3\xCAP]8+\xBC`\x04\x82\x01R`\x01`\x01`\xA0\x1B\x03\x83\x81\x16`$\x83\x01R\x84\x16\x90c\x9B\x0B\x0F\xDA\x90`D\x01a\x070V[`\x02\x81`\x02\x81\x11\x15a\x0B\xB0Wa\x0B\xB0a\x10\xE5V[\x03a\x0C\xDAW`\x01`\x01`\xA0\x1B\x03\x83\x16`\0\x90\x81R`\x02` R`@\x81 \x80Ta\x0B\xD8\x90a\x13\xD0V[\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x92\x91\x90\x81\x81R` \x01\x82\x80Ta\x0C\x04\x90a\x13\xD0V[\x80\x15a\x0CQW\x80`\x1F\x10a\x0C&Wa\x01\0\x80\x83T\x04\x02\x83R\x91` \x01\x91a\x0CQV[\x82\x01\x91\x90`\0R` `\0 \x90[\x81T\x81R\x90`\x01\x01\x90` \x01\x80\x83\x11a\x0C4W\x82\x90\x03`\x1F\x16\x82\x01\x91[PP`\x03T`@Q\x7F\x9B.\xA4\xBD\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\x94\x95P`\x01`\x01`\xA0\x1B\x03\x16\x93c\x9B.\xA4\xBD\x93Pa\x0C\xA2\x92P\x85\x91P\x87\x90`\x04\x01a\x16\xC5V[`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a\x0C\xBCW`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x0C\xD0W=`\0\x80>=`\0\xFD[PPPPPPPPV[a\x08+a\x16\xF0V[a\x0C\xEAa\x0FJV[`\x03T`@Q\x7F\x9B.\xA4\xBD\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`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x90c\x9B.\xA4\xBD\x90a\r5\x90\x85\x90\x85\x90`\x04\x01a\x16\xC5V[`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a\rOW`\0\x80\xFD[PZ\xF1\x15\x80\x15a\rcW=`\0\x80>=`\0\xFD[PPPPPPV[a\rsa\x0FJV[`\x01`\x01`\xA0\x1B\x03\x81\x16a\x0E\tW`@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\x82\x01R`&`$\x82\x01R\x7FOwnable: new owner is the zero a`D\x82\x01R\x7Fddress\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`d\x82\x01R`\x84\x01a\x05\xF4V[a\x0E\x12\x81a\x0F\xBEV[PV[`\x01`\x01`\xA0\x1B\x03\x81\x16`\0\x90\x81R`\x01` R`@\x81 T`\xFF\x16\x81\x81`\x02\x81\x11\x15a\x0EDWa\x0EDa\x10\xE5V[\x03a\x0E\x87W\x82`\x01`\x01`\xA0\x1B\x03\x16c\xF8Q\xA4@`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x04\x83W=`\0\x80>=`\0\xFD[`\x01\x81`\x02\x81\x11\x15a\x0E\x9BWa\x0E\x9Ba\x10\xE5V[\x03a\x0E\xDEW\x82`\x01`\x01`\xA0\x1B\x03\x16c\x89= \xE8`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x04\x83W=`\0\x80>=`\0\xFD[`\x02\x81`\x02\x81\x11\x15a\x0E\xF2Wa\x0E\xF2a\x10\xE5V[\x03a\x05\x96W`\x03`\0\x90T\x90a\x01\0\n\x90\x04`\x01`\x01`\xA0\x1B\x03\x16`\x01`\x01`\xA0\x1B\x03\x16c\x8D\xA5\xCB[`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x04\x83W=`\0\x80>=`\0\xFD[`\0T`\x01`\x01`\xA0\x1B\x03\x163\x14a\x06\xAFW`@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\x82\x01\x81\x90R`$\x82\x01R\x7FOwnable: caller is not the owner`D\x82\x01R`d\x01a\x05\xF4V[`\0\x80T`\x01`\x01`\xA0\x1B\x03\x83\x81\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x83\x16\x81\x17\x84U`@Q\x91\x90\x92\x16\x92\x83\x91\x7F\x8B\xE0\x07\x9CS\x16Y\x14\x13D\xCD\x1F\xD0\xA4\xF2\x84\x19I\x7F\x97\"\xA3\xDA\xAF\xE3\xB4\x18okdW\xE0\x91\x90\xA3PPV[`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a\x0E\x12W`\0\x80\xFD[`\0` \x82\x84\x03\x12\x15a\x10MW`\0\x80\xFD[\x815a\x04\xA7\x81a\x10&V[`\0` \x82\x84\x03\x12\x15a\x10jW`\0\x80\xFD[\x815\x80\x15\x15\x81\x14a\x04\xA7W`\0\x80\xFD[`\0[\x83\x81\x10\x15a\x10\x95W\x81\x81\x01Q\x83\x82\x01R` \x01a\x10}V[\x83\x81\x11\x15a\n\x8DWPP`\0\x91\x01RV[`\0\x81Q\x80\x84Ra\x10\xBE\x81` \x86\x01` \x86\x01a\x10zV[`\x1F\x01`\x1F\x19\x16\x92\x90\x92\x01` \x01\x92\x91PPV[` \x81R`\0a\x04\xA7` \x83\x01\x84a\x10\xA6V[\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`!`\x04R`$`\0\xFD[` \x81\x01`\x03\x83\x10a\x11OW\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`!`\x04R`$`\0\xFD[\x91\x90R\x90V[`\0\x80`@\x83\x85\x03\x12\x15a\x11hW`\0\x80\xFD[\x825a\x11s\x81a\x10&V[\x91P` \x83\x015a\x11\x83\x81a\x10&V[\x80\x91PP\x92P\x92\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[`@Q`\x1F\x82\x01`\x1F\x19\x16\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a\x11\xE6Wa\x11\xE6a\x11\x8EV[`@R\x91\x90PV[`\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x15a\x12\x08Wa\x12\x08a\x11\x8EV[P`\x1F\x01`\x1F\x19\x16` \x01\x90V[`\0a\x12)a\x12$\x84a\x11\xEEV[a\x11\xBDV[\x90P\x82\x81R\x83\x83\x83\x01\x11\x15a\x12=W`\0\x80\xFD[\x82\x82` \x83\x017`\0` \x84\x83\x01\x01R\x93\x92PPPV[`\0\x82`\x1F\x83\x01\x12a\x12eW`\0\x80\xFD[a\x04\xA7\x83\x835` \x85\x01a\x12\x16V[`\0\x80`@\x83\x85\x03\x12\x15a\x12\x87W`\0\x80\xFD[\x825a\x12\x92\x81a\x10&V[\x91P` \x83\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x12\xAEW`\0\x80\xFD[a\x12\xBA\x85\x82\x86\x01a\x12TV[\x91PP\x92P\x92\x90PV[`\0\x80`@\x83\x85\x03\x12\x15a\x12\xD7W`\0\x80\xFD[\x825a\x12\xE2\x81a\x10&V[\x91P` \x83\x015`\x03\x81\x10a\x11\x83W`\0\x80\xFD[`\0\x80`\0``\x84\x86\x03\x12\x15a\x13\x0BW`\0\x80\xFD[\x835a\x13\x16\x81a\x10&V[\x92P` \x84\x015a\x13&\x81a\x10&V[\x91P`@\x84\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x13BW`\0\x80\xFD[\x84\x01`\x1F\x81\x01\x86\x13a\x13SW`\0\x80\xFD[a\x13b\x86\x825` \x84\x01a\x12\x16V[\x91PP\x92P\x92P\x92V[`\0\x80`@\x83\x85\x03\x12\x15a\x13\x7FW`\0\x80\xFD[\x825g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x13\x96W`\0\x80\xFD[a\x13\xA2\x85\x82\x86\x01a\x12TV[\x92PP` \x83\x015a\x11\x83\x81a\x10&V[`\0` \x82\x84\x03\x12\x15a\x13\xC5W`\0\x80\xFD[\x81Qa\x04\xA7\x81a\x10&V[`\x01\x81\x81\x1C\x90\x82\x16\x80a\x13\xE4W`\x7F\x82\x16\x91P[` \x82\x10\x81\x03a\x05\xFDW\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`\"`\x04R`$`\0\xFD[`\0` \x80\x83R`\0\x84Ta\x141\x81a\x13\xD0V[\x80\x84\x87\x01R`@`\x01\x80\x84\x16`\0\x81\x14a\x14RW`\x01\x81\x14a\x14\x8AWa\x14\xB8V[\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x85\x16\x83\x8A\x01R\x82\x84\x15\x15`\x05\x1B\x8A\x01\x01\x95Pa\x14\xB8V[\x89`\0R\x86`\0 `\0[\x85\x81\x10\x15a\x14\xB0W\x81T\x8B\x82\x01\x86\x01R\x90\x83\x01\x90\x88\x01a\x14\x95V[\x8A\x01\x84\x01\x96PP[P\x93\x98\x97PPPPPPPPV[`\x1F\x82\x11\x15a\x08+W`\0\x81\x81R` \x81 `\x1F\x85\x01`\x05\x1C\x81\x01` \x86\x10\x15a\x14\xEDWP\x80[`\x1F\x85\x01`\x05\x1C\x82\x01\x91P[\x81\x81\x10\x15a\rcW\x82\x81U`\x01\x01a\x14\xF9V[\x81Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x15&Wa\x15&a\x11\x8EV[a\x15:\x81a\x154\x84Ta\x13\xD0V[\x84a\x14\xC6V[` \x80`\x1F\x83\x11`\x01\x81\x14a\x15\x8DW`\0\x84\x15a\x15WWP\x85\x83\x01Q[\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF`\x03\x86\x90\x1B\x1C\x19\x16`\x01\x85\x90\x1B\x17\x85Ua\rcV[`\0\x85\x81R` \x81 `\x1F\x19\x86\x16\x91[\x82\x81\x10\x15a\x15\xBCW\x88\x86\x01Q\x82U\x94\x84\x01\x94`\x01\x90\x91\x01\x90\x84\x01a\x15\x9DV[P\x85\x82\x10\x15a\x15\xF8W\x87\x85\x01Q\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF`\x03\x88\x90\x1B`\xF8\x16\x1C\x19\x16\x81U[PPPPP`\x01\x90\x81\x1B\x01\x90UPV[`\x01`\x01`\xA0\x1B\x03\x83\x16\x81R`@` \x82\x01R`\0a\x16*`@\x83\x01\x84a\x10\xA6V[\x94\x93PPPPV[`\0` \x82\x84\x03\x12\x15a\x16DW`\0\x80\xFD[\x81Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x16[W`\0\x80\xFD[\x82\x01`\x1F\x81\x01\x84\x13a\x16lW`\0\x80\xFD[\x80Qa\x16za\x12$\x82a\x11\xEEV[\x81\x81R\x85` \x83\x85\x01\x01\x11\x15a\x16\x8FW`\0\x80\xFD[a\x16\xA0\x82` \x83\x01` \x86\x01a\x10zV[\x95\x94PPPPPV[`\0\x82Qa\x16\xBB\x81\x84` \x87\x01a\x10zV[\x91\x90\x91\x01\x92\x91PPV[`@\x81R`\0a\x16\xD8`@\x83\x01\x85a\x10\xA6V[\x90P`\x01`\x01`\xA0\x1B\x03\x83\x16` \x83\x01R\x93\x92PPPV[\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`\x01`\x04R`$`\0\xFD\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ProxyType(u8); + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for u8 { + #[inline] + fn stv_to_tokens( + &self, + ) -> as alloy_sol_types::SolType>::Token<'_> { + alloy_sol_types::private::SolTypeValue::< + alloy::sol_types::sol_data::Uint<8>, + >::stv_to_tokens(self) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + as alloy_sol_types::SolType>::tokenize(self) + .0 + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::SolType>::abi_encode_packed_to(self, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + as alloy_sol_types::SolType>::abi_encoded_size(self) + } + } + impl ProxyType { + /// The Solidity type name. + pub const NAME: &'static str = stringify!(@ name); + /// Convert from the underlying value type. + #[inline] + pub const fn from_underlying(value: u8) -> Self { + Self(value) + } + /// Return the underlying value. + #[inline] + pub const fn into_underlying(self) -> u8 { + self.0 + } + /// Return the single encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode(&self) -> alloy_sol_types::private::Vec { + ::abi_encode(&self.0) + } + /// Return the packed encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec { + ::abi_encode_packed(&self.0) + } + } + #[automatically_derived] + impl From for ProxyType { + fn from(value: u8) -> Self { + Self::from_underlying(value) + } + } + #[automatically_derived] + impl From for u8 { + fn from(value: ProxyType) -> Self { + value.into_underlying() + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for ProxyType { + type RustType = u8; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = Self::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + Self::type_check(token).is_ok() + } + #[inline] + fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> { + as alloy_sol_types::SolType>::type_check(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + as alloy_sol_types::SolType>::detokenize(token) + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for ProxyType { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + as alloy_sol_types::EventTopic>::topic_preimage_length(rust) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out) + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + as alloy_sol_types::EventTopic>::encode_topic(rust) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `OwnershipTransferred(address,address)` and selector `0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0`. +```solidity +event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct OwnershipTransferred { + #[allow(missing_docs)] + pub previousOwner: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub newOwner: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for OwnershipTransferred { + type DataTuple<'a> = (); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "OwnershipTransferred(address,address)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 139u8, 224u8, 7u8, 156u8, 83u8, 22u8, 89u8, 20u8, 19u8, 68u8, 205u8, + 31u8, 208u8, 164u8, 242u8, 132u8, 25u8, 73u8, 127u8, 151u8, 34u8, 163u8, + 218u8, 175u8, 227u8, 180u8, 24u8, 111u8, 107u8, 100u8, 87u8, 224u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + previousOwner: topics.1, + newOwner: topics.2, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + () + } + #[inline] + fn topics(&self) -> ::RustType { + ( + Self::SIGNATURE_HASH.into(), + self.previousOwner.clone(), + self.newOwner.clone(), + ) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.previousOwner, + ); + out[2usize] = ::encode_topic( + &self.newOwner, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for OwnershipTransferred { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&OwnershipTransferred> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &OwnershipTransferred) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + /**Constructor`. +```solidity +constructor(address _owner); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct constructorCall { + #[allow(missing_docs)] + pub _owner: alloy::sol_types::private::Address, + } + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: constructorCall) -> Self { + (value._owner,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for constructorCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _owner: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolConstructor for constructorCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._owner, + ), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `addressManager()` and selector `0x3ab76e9f`. +```solidity +function addressManager() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct addressManagerCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`addressManager()`](addressManagerCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct addressManagerReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: addressManagerCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for addressManagerCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: addressManagerReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for addressManagerReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for addressManagerCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "addressManager()"; + const SELECTOR: [u8; 4] = [58u8, 183u8, 110u8, 159u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: addressManagerReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: addressManagerReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `changeProxyAdmin(address,address)` and selector `0x7eff275e`. +```solidity +function changeProxyAdmin(address _proxy, address _newAdmin) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct changeProxyAdminCall { + #[allow(missing_docs)] + pub _proxy: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _newAdmin: alloy::sol_types::private::Address, + } + ///Container type for the return parameters of the [`changeProxyAdmin(address,address)`](changeProxyAdminCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct changeProxyAdminReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: changeProxyAdminCall) -> Self { + (value._proxy, value._newAdmin) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for changeProxyAdminCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _proxy: tuple.0, + _newAdmin: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: changeProxyAdminReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for changeProxyAdminReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl changeProxyAdminReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for changeProxyAdminCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = changeProxyAdminReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "changeProxyAdmin(address,address)"; + const SELECTOR: [u8; 4] = [126u8, 255u8, 39u8, 94u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._proxy, + ), + ::tokenize( + &self._newAdmin, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + changeProxyAdminReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `getProxyAdmin(address)` and selector `0xf3b7dead`. +```solidity +function getProxyAdmin(address _proxy) external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getProxyAdminCall { + #[allow(missing_docs)] + pub _proxy: alloy::sol_types::private::Address, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`getProxyAdmin(address)`](getProxyAdminCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getProxyAdminReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: getProxyAdminCall) -> Self { + (value._proxy,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for getProxyAdminCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _proxy: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: getProxyAdminReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for getProxyAdminReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for getProxyAdminCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "getProxyAdmin(address)"; + const SELECTOR: [u8; 4] = [243u8, 183u8, 222u8, 173u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._proxy, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: getProxyAdminReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: getProxyAdminReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `getProxyImplementation(address)` and selector `0x204e1c7a`. +```solidity +function getProxyImplementation(address _proxy) external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getProxyImplementationCall { + #[allow(missing_docs)] + pub _proxy: alloy::sol_types::private::Address, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`getProxyImplementation(address)`](getProxyImplementationCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getProxyImplementationReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: getProxyImplementationCall) -> Self { + (value._proxy,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for getProxyImplementationCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _proxy: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: getProxyImplementationReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for getProxyImplementationReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for getProxyImplementationCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "getProxyImplementation(address)"; + const SELECTOR: [u8; 4] = [32u8, 78u8, 28u8, 122u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._proxy, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: getProxyImplementationReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: getProxyImplementationReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `implementationName(address)` and selector `0x238181ae`. +```solidity +function implementationName(address) external view returns (string memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct implementationNameCall(pub alloy::sol_types::private::Address); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`implementationName(address)`](implementationNameCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct implementationNameReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: implementationNameCall) -> Self { + (value.0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for implementationNameCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self(tuple.0) + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: implementationNameReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for implementationNameReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for implementationNameCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::String; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "implementationName(address)"; + const SELECTOR: [u8; 4] = [35u8, 129u8, 129u8, 174u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.0, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: implementationNameReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: implementationNameReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `isUpgrading()` and selector `0xb7947262`. +```solidity +function isUpgrading() external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct isUpgradingCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`isUpgrading()`](isUpgradingCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct isUpgradingReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: isUpgradingCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for isUpgradingCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: isUpgradingReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for isUpgradingReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for isUpgradingCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "isUpgrading()"; + const SELECTOR: [u8; 4] = [183u8, 148u8, 114u8, 98u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: isUpgradingReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: isUpgradingReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `owner()` and selector `0x8da5cb5b`. +```solidity +function owner() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ownerCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`owner()`](ownerCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ownerReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ownerCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ownerCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ownerReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ownerReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for ownerCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "owner()"; + const SELECTOR: [u8; 4] = [141u8, 165u8, 203u8, 91u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: ownerReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: ownerReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `proxyType(address)` and selector `0x6bd9f516`. +```solidity +function proxyType(address) external view returns (ProxyType); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct proxyTypeCall(pub alloy::sol_types::private::Address); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`proxyType(address)`](proxyTypeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct proxyTypeReturn { + #[allow(missing_docs)] + pub _0: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: proxyTypeCall) -> Self { + (value.0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for proxyTypeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self(tuple.0) + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (ProxyType,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: proxyTypeReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for proxyTypeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for proxyTypeCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (ProxyType,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "proxyType(address)"; + const SELECTOR: [u8; 4] = [107u8, 217u8, 245u8, 22u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.0, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: proxyTypeReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: proxyTypeReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `renounceOwnership()` and selector `0x715018a6`. +```solidity +function renounceOwnership() external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct renounceOwnershipCall; + ///Container type for the return parameters of the [`renounceOwnership()`](renounceOwnershipCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct renounceOwnershipReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: renounceOwnershipCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for renounceOwnershipCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: renounceOwnershipReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for renounceOwnershipReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl renounceOwnershipReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for renounceOwnershipCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = renounceOwnershipReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "renounceOwnership()"; + const SELECTOR: [u8; 4] = [113u8, 80u8, 24u8, 166u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + renounceOwnershipReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `setAddress(string,address)` and selector `0x9b2ea4bd`. +```solidity +function setAddress(string memory _name, address _address) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setAddressCall { + #[allow(missing_docs)] + pub _name: alloy::sol_types::private::String, + #[allow(missing_docs)] + pub _address: alloy::sol_types::private::Address, + } + ///Container type for the return parameters of the [`setAddress(string,address)`](setAddressCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setAddressReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::String, + alloy::sol_types::sol_data::Address, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::String, + alloy::sol_types::private::Address, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: setAddressCall) -> Self { + (value._name, value._address) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for setAddressCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _name: tuple.0, + _address: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: setAddressReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for setAddressReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl setAddressReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for setAddressCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::String, + alloy::sol_types::sol_data::Address, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = setAddressReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "setAddress(string,address)"; + const SELECTOR: [u8; 4] = [155u8, 46u8, 164u8, 189u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._name, + ), + ::tokenize( + &self._address, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + setAddressReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `setAddressManager(address)` and selector `0x0652b57a`. +```solidity +function setAddressManager(address _address) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setAddressManagerCall { + #[allow(missing_docs)] + pub _address: alloy::sol_types::private::Address, + } + ///Container type for the return parameters of the [`setAddressManager(address)`](setAddressManagerCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setAddressManagerReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: setAddressManagerCall) -> Self { + (value._address,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for setAddressManagerCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _address: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: setAddressManagerReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for setAddressManagerReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl setAddressManagerReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for setAddressManagerCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = setAddressManagerReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "setAddressManager(address)"; + const SELECTOR: [u8; 4] = [6u8, 82u8, 181u8, 122u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._address, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + setAddressManagerReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `setImplementationName(address,string)` and selector `0x860f7cda`. +```solidity +function setImplementationName(address _address, string memory _name) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setImplementationNameCall { + #[allow(missing_docs)] + pub _address: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _name: alloy::sol_types::private::String, + } + ///Container type for the return parameters of the [`setImplementationName(address,string)`](setImplementationNameCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setImplementationNameReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::String, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::String, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: setImplementationNameCall) -> Self { + (value._address, value._name) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for setImplementationNameCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _address: tuple.0, + _name: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: setImplementationNameReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for setImplementationNameReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl setImplementationNameReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken< + '_, + > { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for setImplementationNameCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::String, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = setImplementationNameReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "setImplementationName(address,string)"; + const SELECTOR: [u8; 4] = [134u8, 15u8, 124u8, 218u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._address, + ), + ::tokenize( + &self._name, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + setImplementationNameReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `setProxyType(address,uint8)` and selector `0x8d52d4a0`. +```solidity +function setProxyType(address _address, ProxyType _type) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setProxyTypeCall { + #[allow(missing_docs)] + pub _address: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _type: ::RustType, + } + ///Container type for the return parameters of the [`setProxyType(address,uint8)`](setProxyTypeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setProxyTypeReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + ProxyType, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: setProxyTypeCall) -> Self { + (value._address, value._type) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for setProxyTypeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _address: tuple.0, + _type: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: setProxyTypeReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for setProxyTypeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl setProxyTypeReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for setProxyTypeCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address, ProxyType); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = setProxyTypeReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "setProxyType(address,uint8)"; + const SELECTOR: [u8; 4] = [141u8, 82u8, 212u8, 160u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._address, + ), + ::tokenize(&self._type), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + setProxyTypeReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `setUpgrading(bool)` and selector `0x07c8f7b0`. +```solidity +function setUpgrading(bool _upgrading) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setUpgradingCall { + #[allow(missing_docs)] + pub _upgrading: bool, + } + ///Container type for the return parameters of the [`setUpgrading(bool)`](setUpgradingCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setUpgradingReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: setUpgradingCall) -> Self { + (value._upgrading,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for setUpgradingCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _upgrading: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: setUpgradingReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for setUpgradingReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl setUpgradingReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for setUpgradingCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Bool,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = setUpgradingReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "setUpgrading(bool)"; + const SELECTOR: [u8; 4] = [7u8, 200u8, 247u8, 176u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._upgrading, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + setUpgradingReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `transferOwnership(address)` and selector `0xf2fde38b`. +```solidity +function transferOwnership(address newOwner) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct transferOwnershipCall { + #[allow(missing_docs)] + pub newOwner: alloy::sol_types::private::Address, + } + ///Container type for the return parameters of the [`transferOwnership(address)`](transferOwnershipCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct transferOwnershipReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: transferOwnershipCall) -> Self { + (value.newOwner,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for transferOwnershipCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { newOwner: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: transferOwnershipReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for transferOwnershipReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl transferOwnershipReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for transferOwnershipCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = transferOwnershipReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "transferOwnership(address)"; + const SELECTOR: [u8; 4] = [242u8, 253u8, 227u8, 139u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.newOwner, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + transferOwnershipReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `upgrade(address,address)` and selector `0x99a88ec4`. +```solidity +function upgrade(address _proxy, address _implementation) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct upgradeCall { + #[allow(missing_docs)] + pub _proxy: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _implementation: alloy::sol_types::private::Address, + } + ///Container type for the return parameters of the [`upgrade(address,address)`](upgradeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct upgradeReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: upgradeCall) -> Self { + (value._proxy, value._implementation) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for upgradeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _proxy: tuple.0, + _implementation: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: upgradeReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for upgradeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl upgradeReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for upgradeCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = upgradeReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "upgrade(address,address)"; + const SELECTOR: [u8; 4] = [153u8, 168u8, 142u8, 196u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._proxy, + ), + ::tokenize( + &self._implementation, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + upgradeReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `upgradeAndCall(address,address,bytes)` and selector `0x9623609d`. +```solidity +function upgradeAndCall(address _proxy, address _implementation, bytes memory _data) external payable; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct upgradeAndCallCall { + #[allow(missing_docs)] + pub _proxy: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _implementation: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _data: alloy::sol_types::private::Bytes, + } + ///Container type for the return parameters of the [`upgradeAndCall(address,address,bytes)`](upgradeAndCallCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct upgradeAndCallReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::Bytes, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: upgradeAndCallCall) -> Self { + (value._proxy, value._implementation, value._data) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for upgradeAndCallCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _proxy: tuple.0, + _implementation: tuple.1, + _data: tuple.2, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: upgradeAndCallReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for upgradeAndCallReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl upgradeAndCallReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for upgradeAndCallCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Bytes, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = upgradeAndCallReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "upgradeAndCall(address,address,bytes)"; + const SELECTOR: [u8; 4] = [150u8, 35u8, 96u8, 157u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._proxy, + ), + ::tokenize( + &self._implementation, + ), + ::tokenize( + &self._data, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + upgradeAndCallReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + ///Container for all the [`ProxyAdmin`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum ProxyAdminCalls { + #[allow(missing_docs)] + addressManager(addressManagerCall), + #[allow(missing_docs)] + changeProxyAdmin(changeProxyAdminCall), + #[allow(missing_docs)] + getProxyAdmin(getProxyAdminCall), + #[allow(missing_docs)] + getProxyImplementation(getProxyImplementationCall), + #[allow(missing_docs)] + implementationName(implementationNameCall), + #[allow(missing_docs)] + isUpgrading(isUpgradingCall), + #[allow(missing_docs)] + owner(ownerCall), + #[allow(missing_docs)] + proxyType(proxyTypeCall), + #[allow(missing_docs)] + renounceOwnership(renounceOwnershipCall), + #[allow(missing_docs)] + setAddress(setAddressCall), + #[allow(missing_docs)] + setAddressManager(setAddressManagerCall), + #[allow(missing_docs)] + setImplementationName(setImplementationNameCall), + #[allow(missing_docs)] + setProxyType(setProxyTypeCall), + #[allow(missing_docs)] + setUpgrading(setUpgradingCall), + #[allow(missing_docs)] + transferOwnership(transferOwnershipCall), + #[allow(missing_docs)] + upgrade(upgradeCall), + #[allow(missing_docs)] + upgradeAndCall(upgradeAndCallCall), + } + impl ProxyAdminCalls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [6u8, 82u8, 181u8, 122u8], + [7u8, 200u8, 247u8, 176u8], + [32u8, 78u8, 28u8, 122u8], + [35u8, 129u8, 129u8, 174u8], + [58u8, 183u8, 110u8, 159u8], + [107u8, 217u8, 245u8, 22u8], + [113u8, 80u8, 24u8, 166u8], + [126u8, 255u8, 39u8, 94u8], + [134u8, 15u8, 124u8, 218u8], + [141u8, 82u8, 212u8, 160u8], + [141u8, 165u8, 203u8, 91u8], + [150u8, 35u8, 96u8, 157u8], + [153u8, 168u8, 142u8, 196u8], + [155u8, 46u8, 164u8, 189u8], + [183u8, 148u8, 114u8, 98u8], + [242u8, 253u8, 227u8, 139u8], + [243u8, 183u8, 222u8, 173u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(setAddressManager), + ::core::stringify!(setUpgrading), + ::core::stringify!(getProxyImplementation), + ::core::stringify!(implementationName), + ::core::stringify!(addressManager), + ::core::stringify!(proxyType), + ::core::stringify!(renounceOwnership), + ::core::stringify!(changeProxyAdmin), + ::core::stringify!(setImplementationName), + ::core::stringify!(setProxyType), + ::core::stringify!(owner), + ::core::stringify!(upgradeAndCall), + ::core::stringify!(upgrade), + ::core::stringify!(setAddress), + ::core::stringify!(isUpgrading), + ::core::stringify!(transferOwnership), + ::core::stringify!(getProxyAdmin), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for ProxyAdminCalls { + const NAME: &'static str = "ProxyAdminCalls"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 17usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::addressManager(_) => { + ::SELECTOR + } + Self::changeProxyAdmin(_) => { + ::SELECTOR + } + Self::getProxyAdmin(_) => { + ::SELECTOR + } + Self::getProxyImplementation(_) => { + ::SELECTOR + } + Self::implementationName(_) => { + ::SELECTOR + } + Self::isUpgrading(_) => { + ::SELECTOR + } + Self::owner(_) => ::SELECTOR, + Self::proxyType(_) => { + ::SELECTOR + } + Self::renounceOwnership(_) => { + ::SELECTOR + } + Self::setAddress(_) => { + ::SELECTOR + } + Self::setAddressManager(_) => { + ::SELECTOR + } + Self::setImplementationName(_) => { + ::SELECTOR + } + Self::setProxyType(_) => { + ::SELECTOR + } + Self::setUpgrading(_) => { + ::SELECTOR + } + Self::transferOwnership(_) => { + ::SELECTOR + } + Self::upgrade(_) => ::SELECTOR, + Self::upgradeAndCall(_) => { + ::SELECTOR + } + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn setAddressManager( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(ProxyAdminCalls::setAddressManager) + } + setAddressManager + }, + { + fn setUpgrading( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(ProxyAdminCalls::setUpgrading) + } + setUpgrading + }, + { + fn getProxyImplementation( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(ProxyAdminCalls::getProxyImplementation) + } + getProxyImplementation + }, + { + fn implementationName( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(ProxyAdminCalls::implementationName) + } + implementationName + }, + { + fn addressManager( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(ProxyAdminCalls::addressManager) + } + addressManager + }, + { + fn proxyType( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(ProxyAdminCalls::proxyType) + } + proxyType + }, + { + fn renounceOwnership( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(ProxyAdminCalls::renounceOwnership) + } + renounceOwnership + }, + { + fn changeProxyAdmin( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(ProxyAdminCalls::changeProxyAdmin) + } + changeProxyAdmin + }, + { + fn setImplementationName( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(ProxyAdminCalls::setImplementationName) + } + setImplementationName + }, + { + fn setProxyType( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(ProxyAdminCalls::setProxyType) + } + setProxyType + }, + { + fn owner(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(ProxyAdminCalls::owner) + } + owner + }, + { + fn upgradeAndCall( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(ProxyAdminCalls::upgradeAndCall) + } + upgradeAndCall + }, + { + fn upgrade(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(ProxyAdminCalls::upgrade) + } + upgrade + }, + { + fn setAddress( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(ProxyAdminCalls::setAddress) + } + setAddress + }, + { + fn isUpgrading( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(ProxyAdminCalls::isUpgrading) + } + isUpgrading + }, + { + fn transferOwnership( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(ProxyAdminCalls::transferOwnership) + } + transferOwnership + }, + { + fn getProxyAdmin( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(ProxyAdminCalls::getProxyAdmin) + } + getProxyAdmin + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn setAddressManager( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(ProxyAdminCalls::setAddressManager) + } + setAddressManager + }, + { + fn setUpgrading( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(ProxyAdminCalls::setUpgrading) + } + setUpgrading + }, + { + fn getProxyImplementation( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(ProxyAdminCalls::getProxyImplementation) + } + getProxyImplementation + }, + { + fn implementationName( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(ProxyAdminCalls::implementationName) + } + implementationName + }, + { + fn addressManager( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(ProxyAdminCalls::addressManager) + } + addressManager + }, + { + fn proxyType( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(ProxyAdminCalls::proxyType) + } + proxyType + }, + { + fn renounceOwnership( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(ProxyAdminCalls::renounceOwnership) + } + renounceOwnership + }, + { + fn changeProxyAdmin( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(ProxyAdminCalls::changeProxyAdmin) + } + changeProxyAdmin + }, + { + fn setImplementationName( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(ProxyAdminCalls::setImplementationName) + } + setImplementationName + }, + { + fn setProxyType( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(ProxyAdminCalls::setProxyType) + } + setProxyType + }, + { + fn owner(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(ProxyAdminCalls::owner) + } + owner + }, + { + fn upgradeAndCall( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(ProxyAdminCalls::upgradeAndCall) + } + upgradeAndCall + }, + { + fn upgrade(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(ProxyAdminCalls::upgrade) + } + upgrade + }, + { + fn setAddress( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(ProxyAdminCalls::setAddress) + } + setAddress + }, + { + fn isUpgrading( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(ProxyAdminCalls::isUpgrading) + } + isUpgrading + }, + { + fn transferOwnership( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(ProxyAdminCalls::transferOwnership) + } + transferOwnership + }, + { + fn getProxyAdmin( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(ProxyAdminCalls::getProxyAdmin) + } + getProxyAdmin + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::addressManager(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::changeProxyAdmin(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::getProxyAdmin(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::getProxyImplementation(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::implementationName(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::isUpgrading(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::owner(inner) => { + ::abi_encoded_size(inner) + } + Self::proxyType(inner) => { + ::abi_encoded_size(inner) + } + Self::renounceOwnership(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::setAddress(inner) => { + ::abi_encoded_size(inner) + } + Self::setAddressManager(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::setImplementationName(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::setProxyType(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::setUpgrading(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::transferOwnership(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::upgrade(inner) => { + ::abi_encoded_size(inner) + } + Self::upgradeAndCall(inner) => { + ::abi_encoded_size( + inner, + ) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::addressManager(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::changeProxyAdmin(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::getProxyAdmin(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::getProxyImplementation(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::implementationName(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::isUpgrading(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::owner(inner) => { + ::abi_encode_raw(inner, out) + } + Self::proxyType(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::renounceOwnership(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::setAddress(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::setAddressManager(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::setImplementationName(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::setProxyType(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::setUpgrading(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::transferOwnership(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::upgrade(inner) => { + ::abi_encode_raw(inner, out) + } + Self::upgradeAndCall(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + } + } + } + ///Container for all the [`ProxyAdmin`](self) events. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum ProxyAdminEvents { + #[allow(missing_docs)] + OwnershipTransferred(OwnershipTransferred), + } + impl ProxyAdminEvents { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 32usize]] = &[ + [ + 139u8, 224u8, 7u8, 156u8, 83u8, 22u8, 89u8, 20u8, 19u8, 68u8, 205u8, + 31u8, 208u8, 164u8, 242u8, 132u8, 25u8, 73u8, 127u8, 151u8, 34u8, 163u8, + 218u8, 175u8, 227u8, 180u8, 24u8, 111u8, 107u8, 100u8, 87u8, 224u8, + ], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(OwnershipTransferred), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolEventInterface for ProxyAdminEvents { + const NAME: &'static str = "ProxyAdminEvents"; + const COUNT: usize = 1usize; + fn decode_raw_log( + topics: &[alloy_sol_types::Word], + data: &[u8], + ) -> alloy_sol_types::Result { + match topics.first().copied() { + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::OwnershipTransferred) + } + _ => { + alloy_sol_types::private::Err(alloy_sol_types::Error::InvalidLog { + name: ::NAME, + log: alloy_sol_types::private::Box::new( + alloy_sol_types::private::LogData::new_unchecked( + topics.to_vec(), + data.to_vec().into(), + ), + ), + }) + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for ProxyAdminEvents { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + match self { + Self::OwnershipTransferred(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + } + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + match self { + Self::OwnershipTransferred(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`ProxyAdmin`](self) contract instance. + +See the [wrapper's documentation](`ProxyAdminInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> ProxyAdminInstance { + ProxyAdminInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + _owner: alloy::sol_types::private::Address, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + ProxyAdminInstance::::deploy(__provider, _owner) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + _owner: alloy::sol_types::private::Address, + ) -> alloy_contract::RawCallBuilder { + ProxyAdminInstance::::deploy_builder(__provider, _owner) + } + /**A [`ProxyAdmin`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`ProxyAdmin`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct ProxyAdminInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for ProxyAdminInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("ProxyAdminInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > ProxyAdminInstance { + /**Creates a new wrapper around an on-chain [`ProxyAdmin`](self) contract instance. + +See the [wrapper's documentation](`ProxyAdminInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + _owner: alloy::sol_types::private::Address, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider, _owner); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder( + __provider: P, + _owner: alloy::sol_types::private::Address, + ) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + [ + &BYTECODE[..], + &alloy_sol_types::SolConstructor::abi_encode( + &constructorCall { _owner }, + )[..], + ] + .concat() + .into(), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl ProxyAdminInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> ProxyAdminInstance { + ProxyAdminInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > ProxyAdminInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`addressManager`] function. + pub fn addressManager( + &self, + ) -> alloy_contract::SolCallBuilder<&P, addressManagerCall, N> { + self.call_builder(&addressManagerCall) + } + ///Creates a new call builder for the [`changeProxyAdmin`] function. + pub fn changeProxyAdmin( + &self, + _proxy: alloy::sol_types::private::Address, + _newAdmin: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, changeProxyAdminCall, N> { + self.call_builder( + &changeProxyAdminCall { + _proxy, + _newAdmin, + }, + ) + } + ///Creates a new call builder for the [`getProxyAdmin`] function. + pub fn getProxyAdmin( + &self, + _proxy: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, getProxyAdminCall, N> { + self.call_builder(&getProxyAdminCall { _proxy }) + } + ///Creates a new call builder for the [`getProxyImplementation`] function. + pub fn getProxyImplementation( + &self, + _proxy: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, getProxyImplementationCall, N> { + self.call_builder( + &getProxyImplementationCall { + _proxy, + }, + ) + } + ///Creates a new call builder for the [`implementationName`] function. + pub fn implementationName( + &self, + _0: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, implementationNameCall, N> { + self.call_builder(&implementationNameCall(_0)) + } + ///Creates a new call builder for the [`isUpgrading`] function. + pub fn isUpgrading( + &self, + ) -> alloy_contract::SolCallBuilder<&P, isUpgradingCall, N> { + self.call_builder(&isUpgradingCall) + } + ///Creates a new call builder for the [`owner`] function. + pub fn owner(&self) -> alloy_contract::SolCallBuilder<&P, ownerCall, N> { + self.call_builder(&ownerCall) + } + ///Creates a new call builder for the [`proxyType`] function. + pub fn proxyType( + &self, + _0: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, proxyTypeCall, N> { + self.call_builder(&proxyTypeCall(_0)) + } + ///Creates a new call builder for the [`renounceOwnership`] function. + pub fn renounceOwnership( + &self, + ) -> alloy_contract::SolCallBuilder<&P, renounceOwnershipCall, N> { + self.call_builder(&renounceOwnershipCall) + } + ///Creates a new call builder for the [`setAddress`] function. + pub fn setAddress( + &self, + _name: alloy::sol_types::private::String, + _address: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, setAddressCall, N> { + self.call_builder(&setAddressCall { _name, _address }) + } + ///Creates a new call builder for the [`setAddressManager`] function. + pub fn setAddressManager( + &self, + _address: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, setAddressManagerCall, N> { + self.call_builder(&setAddressManagerCall { _address }) + } + ///Creates a new call builder for the [`setImplementationName`] function. + pub fn setImplementationName( + &self, + _address: alloy::sol_types::private::Address, + _name: alloy::sol_types::private::String, + ) -> alloy_contract::SolCallBuilder<&P, setImplementationNameCall, N> { + self.call_builder( + &setImplementationNameCall { + _address, + _name, + }, + ) + } + ///Creates a new call builder for the [`setProxyType`] function. + pub fn setProxyType( + &self, + _address: alloy::sol_types::private::Address, + _type: ::RustType, + ) -> alloy_contract::SolCallBuilder<&P, setProxyTypeCall, N> { + self.call_builder( + &setProxyTypeCall { + _address, + _type, + }, + ) + } + ///Creates a new call builder for the [`setUpgrading`] function. + pub fn setUpgrading( + &self, + _upgrading: bool, + ) -> alloy_contract::SolCallBuilder<&P, setUpgradingCall, N> { + self.call_builder(&setUpgradingCall { _upgrading }) + } + ///Creates a new call builder for the [`transferOwnership`] function. + pub fn transferOwnership( + &self, + newOwner: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, transferOwnershipCall, N> { + self.call_builder(&transferOwnershipCall { newOwner }) + } + ///Creates a new call builder for the [`upgrade`] function. + pub fn upgrade( + &self, + _proxy: alloy::sol_types::private::Address, + _implementation: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, upgradeCall, N> { + self.call_builder( + &upgradeCall { + _proxy, + _implementation, + }, + ) + } + ///Creates a new call builder for the [`upgradeAndCall`] function. + pub fn upgradeAndCall( + &self, + _proxy: alloy::sol_types::private::Address, + _implementation: alloy::sol_types::private::Address, + _data: alloy::sol_types::private::Bytes, + ) -> alloy_contract::SolCallBuilder<&P, upgradeAndCallCall, N> { + self.call_builder( + &upgradeAndCallCall { + _proxy, + _implementation, + _data, + }, + ) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > ProxyAdminInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + ///Creates a new event filter for the [`OwnershipTransferred`] event. + pub fn OwnershipTransferred_filter( + &self, + ) -> alloy_contract::Event<&P, OwnershipTransferred, N> { + self.event_filter::() + } + } +} diff --git a/bindings/rust/src/proxy_admin_owned_base.rs b/bindings/rust/src/proxy_admin_owned_base.rs new file mode 100644 index 000000000..9fd36444f --- /dev/null +++ b/bindings/rust/src/proxy_admin_owned_base.rs @@ -0,0 +1,1621 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface ProxyAdminOwnedBase { + error ProxyAdminOwnedBase_NotProxyAdmin(); + error ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner(); + error ProxyAdminOwnedBase_NotProxyAdminOwner(); + error ProxyAdminOwnedBase_NotResolvedDelegateProxy(); + error ProxyAdminOwnedBase_NotSharedProxyAdminOwner(); + error ProxyAdminOwnedBase_ProxyAdminNotFound(); + + function proxyAdmin() external view returns (address); + function proxyAdminOwner() external view returns (address); +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "function", + "name": "proxyAdmin", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract IProxyAdmin" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "proxyAdminOwner", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "error", + "name": "ProxyAdminOwnedBase_NotProxyAdmin", + "inputs": [] + }, + { + "type": "error", + "name": "ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner", + "inputs": [] + }, + { + "type": "error", + "name": "ProxyAdminOwnedBase_NotProxyAdminOwner", + "inputs": [] + }, + { + "type": "error", + "name": "ProxyAdminOwnedBase_NotResolvedDelegateProxy", + "inputs": [] + }, + { + "type": "error", + "name": "ProxyAdminOwnedBase_NotSharedProxyAdminOwner", + "inputs": [] + }, + { + "type": "error", + "name": "ProxyAdminOwnedBase_ProxyAdminNotFound", + "inputs": [] + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod ProxyAdminOwnedBase { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"", + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ProxyAdminOwnedBase_NotProxyAdmin()` and selector `0xe818dcc3`. +```solidity +error ProxyAdminOwnedBase_NotProxyAdmin(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ProxyAdminOwnedBase_NotProxyAdmin; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: ProxyAdminOwnedBase_NotProxyAdmin) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for ProxyAdminOwnedBase_NotProxyAdmin { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ProxyAdminOwnedBase_NotProxyAdmin { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ProxyAdminOwnedBase_NotProxyAdmin()"; + const SELECTOR: [u8; 4] = [232u8, 24u8, 220u8, 195u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner()` and selector `0xc4050a26`. +```solidity +error ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError + for ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner()"; + const SELECTOR: [u8; 4] = [196u8, 5u8, 10u8, 38u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ProxyAdminOwnedBase_NotProxyAdminOwner()` and selector `0x7f12c64b`. +```solidity +error ProxyAdminOwnedBase_NotProxyAdminOwner(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ProxyAdminOwnedBase_NotProxyAdminOwner; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: ProxyAdminOwnedBase_NotProxyAdminOwner) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for ProxyAdminOwnedBase_NotProxyAdminOwner { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ProxyAdminOwnedBase_NotProxyAdminOwner { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ProxyAdminOwnedBase_NotProxyAdminOwner()"; + const SELECTOR: [u8; 4] = [127u8, 18u8, 198u8, 75u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ProxyAdminOwnedBase_NotResolvedDelegateProxy()` and selector `0x54e433cd`. +```solidity +error ProxyAdminOwnedBase_NotResolvedDelegateProxy(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ProxyAdminOwnedBase_NotResolvedDelegateProxy; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: ProxyAdminOwnedBase_NotResolvedDelegateProxy) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for ProxyAdminOwnedBase_NotResolvedDelegateProxy { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ProxyAdminOwnedBase_NotResolvedDelegateProxy { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ProxyAdminOwnedBase_NotResolvedDelegateProxy()"; + const SELECTOR: [u8; 4] = [84u8, 228u8, 51u8, 205u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ProxyAdminOwnedBase_NotSharedProxyAdminOwner()` and selector `0x075c4314`. +```solidity +error ProxyAdminOwnedBase_NotSharedProxyAdminOwner(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ProxyAdminOwnedBase_NotSharedProxyAdminOwner; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: ProxyAdminOwnedBase_NotSharedProxyAdminOwner) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for ProxyAdminOwnedBase_NotSharedProxyAdminOwner { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ProxyAdminOwnedBase_NotSharedProxyAdminOwner { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ProxyAdminOwnedBase_NotSharedProxyAdminOwner()"; + const SELECTOR: [u8; 4] = [7u8, 92u8, 67u8, 20u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ProxyAdminOwnedBase_ProxyAdminNotFound()` and selector `0x332144db`. +```solidity +error ProxyAdminOwnedBase_ProxyAdminNotFound(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ProxyAdminOwnedBase_ProxyAdminNotFound; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: ProxyAdminOwnedBase_ProxyAdminNotFound) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for ProxyAdminOwnedBase_ProxyAdminNotFound { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ProxyAdminOwnedBase_ProxyAdminNotFound { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ProxyAdminOwnedBase_ProxyAdminNotFound()"; + const SELECTOR: [u8; 4] = [51u8, 33u8, 68u8, 219u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `proxyAdmin()` and selector `0x3e47158c`. +```solidity +function proxyAdmin() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct proxyAdminCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`proxyAdmin()`](proxyAdminCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct proxyAdminReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: proxyAdminCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for proxyAdminCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: proxyAdminReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for proxyAdminReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for proxyAdminCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "proxyAdmin()"; + const SELECTOR: [u8; 4] = [62u8, 71u8, 21u8, 140u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: proxyAdminReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: proxyAdminReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `proxyAdminOwner()` and selector `0xdad544e0`. +```solidity +function proxyAdminOwner() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct proxyAdminOwnerCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`proxyAdminOwner()`](proxyAdminOwnerCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct proxyAdminOwnerReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: proxyAdminOwnerCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for proxyAdminOwnerCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: proxyAdminOwnerReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for proxyAdminOwnerReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for proxyAdminOwnerCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "proxyAdminOwner()"; + const SELECTOR: [u8; 4] = [218u8, 213u8, 68u8, 224u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: proxyAdminOwnerReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: proxyAdminOwnerReturn = r.into(); + r._0 + }) + } + } + }; + ///Container for all the [`ProxyAdminOwnedBase`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum ProxyAdminOwnedBaseCalls { + #[allow(missing_docs)] + proxyAdmin(proxyAdminCall), + #[allow(missing_docs)] + proxyAdminOwner(proxyAdminOwnerCall), + } + impl ProxyAdminOwnedBaseCalls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [62u8, 71u8, 21u8, 140u8], + [218u8, 213u8, 68u8, 224u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(proxyAdmin), + ::core::stringify!(proxyAdminOwner), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for ProxyAdminOwnedBaseCalls { + const NAME: &'static str = "ProxyAdminOwnedBaseCalls"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 2usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::proxyAdmin(_) => { + ::SELECTOR + } + Self::proxyAdminOwner(_) => { + ::SELECTOR + } + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn proxyAdmin( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(ProxyAdminOwnedBaseCalls::proxyAdmin) + } + proxyAdmin + }, + { + fn proxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(ProxyAdminOwnedBaseCalls::proxyAdminOwner) + } + proxyAdminOwner + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn proxyAdmin( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(ProxyAdminOwnedBaseCalls::proxyAdmin) + } + proxyAdmin + }, + { + fn proxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(ProxyAdminOwnedBaseCalls::proxyAdminOwner) + } + proxyAdminOwner + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::proxyAdmin(inner) => { + ::abi_encoded_size(inner) + } + Self::proxyAdminOwner(inner) => { + ::abi_encoded_size( + inner, + ) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::proxyAdmin(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::proxyAdminOwner(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + } + } + } + ///Container for all the [`ProxyAdminOwnedBase`](self) custom errors. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum ProxyAdminOwnedBaseErrors { + #[allow(missing_docs)] + ProxyAdminOwnedBase_NotProxyAdmin(ProxyAdminOwnedBase_NotProxyAdmin), + #[allow(missing_docs)] + ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner( + ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner, + ), + #[allow(missing_docs)] + ProxyAdminOwnedBase_NotProxyAdminOwner(ProxyAdminOwnedBase_NotProxyAdminOwner), + #[allow(missing_docs)] + ProxyAdminOwnedBase_NotResolvedDelegateProxy( + ProxyAdminOwnedBase_NotResolvedDelegateProxy, + ), + #[allow(missing_docs)] + ProxyAdminOwnedBase_NotSharedProxyAdminOwner( + ProxyAdminOwnedBase_NotSharedProxyAdminOwner, + ), + #[allow(missing_docs)] + ProxyAdminOwnedBase_ProxyAdminNotFound(ProxyAdminOwnedBase_ProxyAdminNotFound), + } + impl ProxyAdminOwnedBaseErrors { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [7u8, 92u8, 67u8, 20u8], + [51u8, 33u8, 68u8, 219u8], + [84u8, 228u8, 51u8, 205u8], + [127u8, 18u8, 198u8, 75u8], + [196u8, 5u8, 10u8, 38u8], + [232u8, 24u8, 220u8, 195u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(ProxyAdminOwnedBase_NotSharedProxyAdminOwner), + ::core::stringify!(ProxyAdminOwnedBase_ProxyAdminNotFound), + ::core::stringify!(ProxyAdminOwnedBase_NotResolvedDelegateProxy), + ::core::stringify!(ProxyAdminOwnedBase_NotProxyAdminOwner), + ::core::stringify!(ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner), + ::core::stringify!(ProxyAdminOwnedBase_NotProxyAdmin), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for ProxyAdminOwnedBaseErrors { + const NAME: &'static str = "ProxyAdminOwnedBaseErrors"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 6usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::ProxyAdminOwnedBase_NotProxyAdmin(_) => { + ::SELECTOR + } + Self::ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner(_) => { + ::SELECTOR + } + Self::ProxyAdminOwnedBase_NotProxyAdminOwner(_) => { + ::SELECTOR + } + Self::ProxyAdminOwnedBase_NotResolvedDelegateProxy(_) => { + ::SELECTOR + } + Self::ProxyAdminOwnedBase_NotSharedProxyAdminOwner(_) => { + ::SELECTOR + } + Self::ProxyAdminOwnedBase_ProxyAdminNotFound(_) => { + ::SELECTOR + } + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn ProxyAdminOwnedBase_NotSharedProxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + ProxyAdminOwnedBaseErrors::ProxyAdminOwnedBase_NotSharedProxyAdminOwner, + ) + } + ProxyAdminOwnedBase_NotSharedProxyAdminOwner + }, + { + fn ProxyAdminOwnedBase_ProxyAdminNotFound( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + ProxyAdminOwnedBaseErrors::ProxyAdminOwnedBase_ProxyAdminNotFound, + ) + } + ProxyAdminOwnedBase_ProxyAdminNotFound + }, + { + fn ProxyAdminOwnedBase_NotResolvedDelegateProxy( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + ProxyAdminOwnedBaseErrors::ProxyAdminOwnedBase_NotResolvedDelegateProxy, + ) + } + ProxyAdminOwnedBase_NotResolvedDelegateProxy + }, + { + fn ProxyAdminOwnedBase_NotProxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + ProxyAdminOwnedBaseErrors::ProxyAdminOwnedBase_NotProxyAdminOwner, + ) + } + ProxyAdminOwnedBase_NotProxyAdminOwner + }, + { + fn ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + ProxyAdminOwnedBaseErrors::ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner, + ) + } + ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner + }, + { + fn ProxyAdminOwnedBase_NotProxyAdmin( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + ProxyAdminOwnedBaseErrors::ProxyAdminOwnedBase_NotProxyAdmin, + ) + } + ProxyAdminOwnedBase_NotProxyAdmin + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn ProxyAdminOwnedBase_NotSharedProxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + ProxyAdminOwnedBaseErrors::ProxyAdminOwnedBase_NotSharedProxyAdminOwner, + ) + } + ProxyAdminOwnedBase_NotSharedProxyAdminOwner + }, + { + fn ProxyAdminOwnedBase_ProxyAdminNotFound( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + ProxyAdminOwnedBaseErrors::ProxyAdminOwnedBase_ProxyAdminNotFound, + ) + } + ProxyAdminOwnedBase_ProxyAdminNotFound + }, + { + fn ProxyAdminOwnedBase_NotResolvedDelegateProxy( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + ProxyAdminOwnedBaseErrors::ProxyAdminOwnedBase_NotResolvedDelegateProxy, + ) + } + ProxyAdminOwnedBase_NotResolvedDelegateProxy + }, + { + fn ProxyAdminOwnedBase_NotProxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + ProxyAdminOwnedBaseErrors::ProxyAdminOwnedBase_NotProxyAdminOwner, + ) + } + ProxyAdminOwnedBase_NotProxyAdminOwner + }, + { + fn ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + ProxyAdminOwnedBaseErrors::ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner, + ) + } + ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner + }, + { + fn ProxyAdminOwnedBase_NotProxyAdmin( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + ProxyAdminOwnedBaseErrors::ProxyAdminOwnedBase_NotProxyAdmin, + ) + } + ProxyAdminOwnedBase_NotProxyAdmin + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::ProxyAdminOwnedBase_NotProxyAdmin(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ProxyAdminOwnedBase_NotProxyAdminOwner(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ProxyAdminOwnedBase_NotResolvedDelegateProxy(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ProxyAdminOwnedBase_NotSharedProxyAdminOwner(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ProxyAdminOwnedBase_ProxyAdminNotFound(inner) => { + ::abi_encoded_size( + inner, + ) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::ProxyAdminOwnedBase_NotProxyAdmin(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ProxyAdminOwnedBase_NotProxyAdminOwner(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ProxyAdminOwnedBase_NotResolvedDelegateProxy(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ProxyAdminOwnedBase_NotSharedProxyAdminOwner(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ProxyAdminOwnedBase_ProxyAdminNotFound(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`ProxyAdminOwnedBase`](self) contract instance. + +See the [wrapper's documentation](`ProxyAdminOwnedBaseInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> ProxyAdminOwnedBaseInstance { + ProxyAdminOwnedBaseInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + ProxyAdminOwnedBaseInstance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + ProxyAdminOwnedBaseInstance::::deploy_builder(__provider) + } + /**A [`ProxyAdminOwnedBase`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`ProxyAdminOwnedBase`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct ProxyAdminOwnedBaseInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for ProxyAdminOwnedBaseInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("ProxyAdminOwnedBaseInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > ProxyAdminOwnedBaseInstance { + /**Creates a new wrapper around an on-chain [`ProxyAdminOwnedBase`](self) contract instance. + +See the [wrapper's documentation](`ProxyAdminOwnedBaseInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl ProxyAdminOwnedBaseInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> ProxyAdminOwnedBaseInstance { + ProxyAdminOwnedBaseInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > ProxyAdminOwnedBaseInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`proxyAdmin`] function. + pub fn proxyAdmin( + &self, + ) -> alloy_contract::SolCallBuilder<&P, proxyAdminCall, N> { + self.call_builder(&proxyAdminCall) + } + ///Creates a new call builder for the [`proxyAdminOwner`] function. + pub fn proxyAdminOwner( + &self, + ) -> alloy_contract::SolCallBuilder<&P, proxyAdminOwnerCall, N> { + self.call_builder(&proxyAdminOwnerCall) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > ProxyAdminOwnedBaseInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + } +} diff --git a/bindings/rust/src/recovery.rs b/bindings/rust/src/recovery.rs new file mode 100644 index 000000000..fe8c2e970 --- /dev/null +++ b/bindings/rust/src/recovery.rs @@ -0,0 +1,2254 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface Recovery { + error Unauthorized(); + + event AdminChanged(address previousAdmin, address newAdmin); + event BeaconUpgraded(address indexed beacon); + event Upgraded(address indexed implementation); + + constructor(address owner); + + function OWNER() external view returns (address); + function proxiableUUID() external view returns (bytes32); + function upgradeTo(address newImplementation) external; + function upgradeToAndCall(address newImplementation, bytes memory data) external payable; + function withdrawETH(address[] memory targets, uint256[] memory amounts) external; +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "constructor", + "inputs": [ + { + "name": "owner", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "OWNER", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "proxiableUUID", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "upgradeTo", + "inputs": [ + { + "name": "newImplementation", + "type": "address", + "internalType": "address" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "upgradeToAndCall", + "inputs": [ + { + "name": "newImplementation", + "type": "address", + "internalType": "address" + }, + { + "name": "data", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "withdrawETH", + "inputs": [ + { + "name": "targets", + "type": "address[]", + "internalType": "address[]" + }, + { + "name": "amounts", + "type": "uint256[]", + "internalType": "uint256[]" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "event", + "name": "AdminChanged", + "inputs": [ + { + "name": "previousAdmin", + "type": "address", + "indexed": false, + "internalType": "address" + }, + { + "name": "newAdmin", + "type": "address", + "indexed": false, + "internalType": "address" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "BeaconUpgraded", + "inputs": [ + { + "name": "beacon", + "type": "address", + "indexed": true, + "internalType": "address" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "Upgraded", + "inputs": [ + { + "name": "implementation", + "type": "address", + "indexed": true, + "internalType": "address" + } + ], + "anonymous": false + }, + { + "type": "error", + "name": "Unauthorized", + "inputs": [] + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod Recovery { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x60c06040523060805234801561001457600080fd5b5060405161113f38038061113f83398101604081905261003391610044565b6001600160a01b031660a052610074565b60006020828403121561005657600080fd5b81516001600160a01b038116811461006d57600080fd5b9392505050565b60805160a05161107d6100c26000396000818160710152818161054d015261077a01526000818161014c0152818161020101528181610356015281816104060152610690015261107d6000f3fe60806040526004361061005a5760003560e01c80634f1ef286116100435780634f1ef286146100df578063501d976c146100f257806352d1902d1461011257600080fd5b8063117803e31461005f5780633659cfe6146100bd575b600080fd5b34801561006b57600080fd5b506100937f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b3480156100c957600080fd5b506100dd6100d8366004610d27565b610135565b005b6100dd6100ed366004610d71565b61033f565b3480156100fe57600080fd5b506100dd61010d366004610e9d565b610535565b34801561011e57600080fd5b50610127610676565b6040519081526020016100b4565b73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001630036101ff576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f64656c656761746563616c6c000000000000000000000000000000000000000060648201526084015b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166102747f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff1614610317576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f6163746976652070726f7879000000000000000000000000000000000000000060648201526084016101f6565b61032081610762565b6040805160008082526020820190925261033c918391906107d1565b50565b73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163003610404576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f64656c656761746563616c6c000000000000000000000000000000000000000060648201526084016101f6565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166104797f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff161461051c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f6163746976652070726f7879000000000000000000000000000000000000000060648201526084016101f6565b61052582610762565b610531828260016107d1565b5050565b3373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016146105a4576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005b8381101561066f5760008585838181106105c3576105c3610f09565b90506020020160208101906105d89190610d27565b73ffffffffffffffffffffffffffffffffffffffff1684848481811061060057610600610f09565b9050602002013560405160006040518083038185875af1925050503d8060008114610647576040519150601f19603f3d011682016040523d82523d6000602084013e61064c565b606091505b505090508061065b575061065d565b505b8061066781610f38565b9150506105a7565b5050505050565b60003073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000161461073d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060648201526084016101f6565b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90565b3373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000161461033c576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561080957610804836109d5565b505050565b8273ffffffffffffffffffffffffffffffffffffffff166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561088e575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820190925261088b91810190610f97565b60015b61091a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201527f6f6e206973206e6f74205555505300000000000000000000000000000000000060648201526084016101f6565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc81146109c9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f7860448201527f6961626c6555554944000000000000000000000000000000000000000000000060648201526084016101f6565b50610804838383610adf565b73ffffffffffffffffffffffffffffffffffffffff81163b610a79576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e74726163740000000000000000000000000000000000000060648201526084016101f6565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b610ae883610b0a565b600082511180610af55750805b1561080457610b048383610b57565b50505050565b610b13816109d5565b60405173ffffffffffffffffffffffffffffffffffffffff8216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6060610b7c838360405180606001604052806027815260200161104a60279139610b83565b9392505050565b606073ffffffffffffffffffffffffffffffffffffffff84163b610c29576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e7472616374000000000000000000000000000000000000000000000000000060648201526084016101f6565b6000808573ffffffffffffffffffffffffffffffffffffffff1685604051610c519190610fdc565b600060405180830381855af49150503d8060008114610c8c576040519150601f19603f3d011682016040523d82523d6000602084013e610c91565b606091505b5091509150610ca1828286610cab565b9695505050505050565b60608315610cba575081610b7c565b825115610cca5782518084602001fd5b816040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101f69190610ff8565b803573ffffffffffffffffffffffffffffffffffffffff81168114610d2257600080fd5b919050565b600060208284031215610d3957600080fd5b610b7c82610cfe565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008060408385031215610d8457600080fd5b610d8d83610cfe565b9150602083013567ffffffffffffffff80821115610daa57600080fd5b818501915085601f830112610dbe57600080fd5b813581811115610dd057610dd0610d42565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908382118183101715610e1657610e16610d42565b81604052828152886020848701011115610e2f57600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60008083601f840112610e6357600080fd5b50813567ffffffffffffffff811115610e7b57600080fd5b6020830191508360208260051b8501011115610e9657600080fd5b9250929050565b60008060008060408587031215610eb357600080fd5b843567ffffffffffffffff80821115610ecb57600080fd5b610ed788838901610e51565b90965094506020870135915080821115610ef057600080fd5b50610efd87828801610e51565b95989497509550505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610f90577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b5060010190565b600060208284031215610fa957600080fd5b5051919050565b60005b83811015610fcb578181015183820152602001610fb3565b83811115610b045750506000910152565b60008251610fee818460208701610fb0565b9190910192915050565b6020815260008251806020840152611017816040850160208701610fb0565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\xC0`@R0`\x80R4\x80\x15a\0\x14W`\0\x80\xFD[P`@Qa\x11?8\x03\x80a\x11?\x839\x81\x01`@\x81\x90Ra\x003\x91a\0DV[`\x01`\x01`\xA0\x1B\x03\x16`\xA0Ra\0tV[`\0` \x82\x84\x03\x12\x15a\0VW`\0\x80\xFD[\x81Q`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a\0mW`\0\x80\xFD[\x93\x92PPPV[`\x80Q`\xA0Qa\x10}a\0\xC2`\09`\0\x81\x81`q\x01R\x81\x81a\x05M\x01Ra\x07z\x01R`\0\x81\x81a\x01L\x01R\x81\x81a\x02\x01\x01R\x81\x81a\x03V\x01R\x81\x81a\x04\x06\x01Ra\x06\x90\x01Ra\x10}`\0\xF3\xFE`\x80`@R`\x046\x10a\0ZW`\x005`\xE0\x1C\x80cO\x1E\xF2\x86\x11a\0CW\x80cO\x1E\xF2\x86\x14a\0\xDFW\x80cP\x1D\x97l\x14a\0\xF2W\x80cR\xD1\x90-\x14a\x01\x12W`\0\x80\xFD[\x80c\x11x\x03\xE3\x14a\0_W\x80c6Y\xCF\xE6\x14a\0\xBDW[`\0\x80\xFD[4\x80\x15a\0kW`\0\x80\xFD[Pa\0\x93\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[4\x80\x15a\0\xC9W`\0\x80\xFD[Pa\0\xDDa\0\xD86`\x04a\r'V[a\x015V[\0[a\0\xDDa\0\xED6`\x04a\rqV[a\x03?V[4\x80\x15a\0\xFEW`\0\x80\xFD[Pa\0\xDDa\x01\r6`\x04a\x0E\x9DV[a\x055V[4\x80\x15a\x01\x1EW`\0\x80\xFD[Pa\x01'a\x06vV[`@Q\x90\x81R` \x01a\0\xB4V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x160\x03a\x01\xFFW`@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\x82\x01R`,`$\x82\x01R\x7FFunction must be called through `D\x82\x01R\x7Fdelegatecall\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01[`@Q\x80\x91\x03\x90\xFD[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a\x02t\x7F6\x08\x94\xA1;\xA1\xA3!\x06g\xC8(I-\xB9\x8D\xCA> v\xCC75\xA9 \xA3\xCAP]8+\xBCTs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14a\x03\x17W`@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\x82\x01R`,`$\x82\x01R\x7FFunction must be called through `D\x82\x01R\x7Factive proxy\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x01\xF6V[a\x03 \x81a\x07bV[`@\x80Q`\0\x80\x82R` \x82\x01\x90\x92Ra\x03<\x91\x83\x91\x90a\x07\xD1V[PV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x160\x03a\x04\x04W`@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\x82\x01R`,`$\x82\x01R\x7FFunction must be called through `D\x82\x01R\x7Fdelegatecall\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x01\xF6V[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a\x04y\x7F6\x08\x94\xA1;\xA1\xA3!\x06g\xC8(I-\xB9\x8D\xCA> v\xCC75\xA9 \xA3\xCAP]8+\xBCTs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14a\x05\x1CW`@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\x82\x01R`,`$\x82\x01R\x7FFunction must be called through `D\x82\x01R\x7Factive proxy\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x01\xF6V[a\x05%\x82a\x07bV[a\x051\x82\x82`\x01a\x07\xD1V[PPV[3s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x14a\x05\xA4W`@Q\x7F\x82\xB4)\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0[\x83\x81\x10\x15a\x06oW`\0\x85\x85\x83\x81\x81\x10a\x05\xC3Wa\x05\xC3a\x0F\tV[\x90P` \x02\x01` \x81\x01\x90a\x05\xD8\x91\x90a\r'V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x84\x84\x84\x81\x81\x10a\x06\0Wa\x06\0a\x0F\tV[\x90P` \x02\x015`@Q`\0`@Q\x80\x83\x03\x81\x85\x87Z\xF1\x92PPP=\x80`\0\x81\x14a\x06GW`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=`\0` \x84\x01>a\x06LV[``\x91P[PP\x90P\x80a\x06[WPa\x06]V[P[\x80a\x06g\x81a\x0F8V[\x91PPa\x05\xA7V[PPPPPV[`\x000s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x14a\x07=W`@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\x82\x01R`8`$\x82\x01R\x7FUUPSUpgradeable: must not be cal`D\x82\x01R\x7Fled through delegatecall\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x01\xF6V[P\x7F6\x08\x94\xA1;\xA1\xA3!\x06g\xC8(I-\xB9\x8D\xCA> v\xCC75\xA9 \xA3\xCAP]8+\xBC\x90V[3s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x14a\x03 v\xCC75\xA9 \xA3\xCAP]8+\xBC\x81\x14a\t\xC9W`@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\x82\x01R`)`$\x82\x01R\x7FERC1967Upgrade: unsupported prox`D\x82\x01R\x7FiableUUID\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x01\xF6V[Pa\x08\x04\x83\x83\x83a\n\xDFV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16;a\nyW`@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\x82\x01R`-`$\x82\x01R\x7FERC1967: new implementation is n`D\x82\x01R\x7Fot a contract\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x01\xF6V[\x7F6\x08\x94\xA1;\xA1\xA3!\x06g\xC8(I-\xB9\x8D\xCA> v\xCC75\xA9 \xA3\xCAP]8+\xBC\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x92\x90\x92\x16\x91\x90\x91\x17\x90UV[a\n\xE8\x83a\x0B\nV[`\0\x82Q\x11\x80a\n\xF5WP\x80[\x15a\x08\x04Wa\x0B\x04\x83\x83a\x0BWV[PPPPV[a\x0B\x13\x81a\t\xD5V[`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16\x90\x7F\xBC|\xD7Z \xEE'\xFD\x9A\xDE\xBA\xB3 A\xF7U!M\xBCk\xFF\xA9\x0C\xC0\"[9\xDA.\\-;\x90`\0\x90\xA2PV[``a\x0B|\x83\x83`@Q\x80``\x01`@R\x80`'\x81R` \x01a\x10J`'\x919a\x0B\x83V[\x93\x92PPPV[``s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x16;a\x0C)W`@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\x82\x01R`&`$\x82\x01R\x7FAddress: delegate call to non-co`D\x82\x01R\x7Fntract\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`d\x82\x01R`\x84\x01a\x01\xF6V[`\0\x80\x85s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x85`@Qa\x0CQ\x91\x90a\x0F\xDCV[`\0`@Q\x80\x83\x03\x81\x85Z\xF4\x91PP=\x80`\0\x81\x14a\x0C\x8CW`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=`\0` \x84\x01>a\x0C\x91V[``\x91P[P\x91P\x91Pa\x0C\xA1\x82\x82\x86a\x0C\xABV[\x96\x95PPPPPPV[``\x83\x15a\x0C\xBAWP\x81a\x0B|V[\x82Q\x15a\x0C\xCAW\x82Q\x80\x84` \x01\xFD[\x81`@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\x01\xF6\x91\x90a\x0F\xF8V[\x805s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\r\"W`\0\x80\xFD[\x91\x90PV[`\0` \x82\x84\x03\x12\x15a\r9W`\0\x80\xFD[a\x0B|\x82a\x0C\xFEV[\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[`\0\x80`@\x83\x85\x03\x12\x15a\r\x84W`\0\x80\xFD[a\r\x8D\x83a\x0C\xFEV[\x91P` \x83\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\r\xAAW`\0\x80\xFD[\x81\x85\x01\x91P\x85`\x1F\x83\x01\x12a\r\xBEW`\0\x80\xFD[\x815\x81\x81\x11\x15a\r\xD0Wa\r\xD0a\rBV[`@Q`\x1F\x82\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x90\x81\x16`?\x01\x16\x81\x01\x90\x83\x82\x11\x81\x83\x10\x17\x15a\x0E\x16Wa\x0E\x16a\rBV[\x81`@R\x82\x81R\x88` \x84\x87\x01\x01\x11\x15a\x0E/W`\0\x80\xFD[\x82` \x86\x01` \x83\x017`\0` \x84\x83\x01\x01R\x80\x95PPPPPP\x92P\x92\x90PV[`\0\x80\x83`\x1F\x84\x01\x12a\x0EcW`\0\x80\xFD[P\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x0E{W`\0\x80\xFD[` \x83\x01\x91P\x83` \x82`\x05\x1B\x85\x01\x01\x11\x15a\x0E\x96W`\0\x80\xFD[\x92P\x92\x90PV[`\0\x80`\0\x80`@\x85\x87\x03\x12\x15a\x0E\xB3W`\0\x80\xFD[\x845g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x0E\xCBW`\0\x80\xFD[a\x0E\xD7\x88\x83\x89\x01a\x0EQV[\x90\x96P\x94P` \x87\x015\x91P\x80\x82\x11\x15a\x0E\xF0W`\0\x80\xFD[Pa\x0E\xFD\x87\x82\x88\x01a\x0EQV[\x95\x98\x94\x97P\x95PPPPV[\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`2`\x04R`$`\0\xFD[`\0\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x03a\x0F\x90W\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`\x11`\x04R`$`\0\xFD[P`\x01\x01\x90V[`\0` \x82\x84\x03\x12\x15a\x0F\xA9W`\0\x80\xFD[PQ\x91\x90PV[`\0[\x83\x81\x10\x15a\x0F\xCBW\x81\x81\x01Q\x83\x82\x01R` \x01a\x0F\xB3V[\x83\x81\x11\x15a\x0B\x04WPP`\0\x91\x01RV[`\0\x82Qa\x0F\xEE\x81\x84` \x87\x01a\x0F\xB0V[\x91\x90\x91\x01\x92\x91PPV[` \x81R`\0\x82Q\x80` \x84\x01Ra\x10\x17\x81`@\x85\x01` \x87\x01a\x0F\xB0V[`\x1F\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x91\x90\x91\x01`@\x01\x92\x91PPV\xFEAddress: low-level delegate call failed\xA1dsolcC\0\x08\x0F\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x60806040526004361061005a5760003560e01c80634f1ef286116100435780634f1ef286146100df578063501d976c146100f257806352d1902d1461011257600080fd5b8063117803e31461005f5780633659cfe6146100bd575b600080fd5b34801561006b57600080fd5b506100937f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b3480156100c957600080fd5b506100dd6100d8366004610d27565b610135565b005b6100dd6100ed366004610d71565b61033f565b3480156100fe57600080fd5b506100dd61010d366004610e9d565b610535565b34801561011e57600080fd5b50610127610676565b6040519081526020016100b4565b73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001630036101ff576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f64656c656761746563616c6c000000000000000000000000000000000000000060648201526084015b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166102747f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff1614610317576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f6163746976652070726f7879000000000000000000000000000000000000000060648201526084016101f6565b61032081610762565b6040805160008082526020820190925261033c918391906107d1565b50565b73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163003610404576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f64656c656761746563616c6c000000000000000000000000000000000000000060648201526084016101f6565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166104797f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff161461051c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f6163746976652070726f7879000000000000000000000000000000000000000060648201526084016101f6565b61052582610762565b610531828260016107d1565b5050565b3373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016146105a4576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005b8381101561066f5760008585838181106105c3576105c3610f09565b90506020020160208101906105d89190610d27565b73ffffffffffffffffffffffffffffffffffffffff1684848481811061060057610600610f09565b9050602002013560405160006040518083038185875af1925050503d8060008114610647576040519150601f19603f3d011682016040523d82523d6000602084013e61064c565b606091505b505090508061065b575061065d565b505b8061066781610f38565b9150506105a7565b5050505050565b60003073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000161461073d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060648201526084016101f6565b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90565b3373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000161461033c576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561080957610804836109d5565b505050565b8273ffffffffffffffffffffffffffffffffffffffff166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561088e575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820190925261088b91810190610f97565b60015b61091a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201527f6f6e206973206e6f74205555505300000000000000000000000000000000000060648201526084016101f6565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc81146109c9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f7860448201527f6961626c6555554944000000000000000000000000000000000000000000000060648201526084016101f6565b50610804838383610adf565b73ffffffffffffffffffffffffffffffffffffffff81163b610a79576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e74726163740000000000000000000000000000000000000060648201526084016101f6565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b610ae883610b0a565b600082511180610af55750805b1561080457610b048383610b57565b50505050565b610b13816109d5565b60405173ffffffffffffffffffffffffffffffffffffffff8216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6060610b7c838360405180606001604052806027815260200161104a60279139610b83565b9392505050565b606073ffffffffffffffffffffffffffffffffffffffff84163b610c29576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e7472616374000000000000000000000000000000000000000000000000000060648201526084016101f6565b6000808573ffffffffffffffffffffffffffffffffffffffff1685604051610c519190610fdc565b600060405180830381855af49150503d8060008114610c8c576040519150601f19603f3d011682016040523d82523d6000602084013e610c91565b606091505b5091509150610ca1828286610cab565b9695505050505050565b60608315610cba575081610b7c565b825115610cca5782518084602001fd5b816040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101f69190610ff8565b803573ffffffffffffffffffffffffffffffffffffffff81168114610d2257600080fd5b919050565b600060208284031215610d3957600080fd5b610b7c82610cfe565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008060408385031215610d8457600080fd5b610d8d83610cfe565b9150602083013567ffffffffffffffff80821115610daa57600080fd5b818501915085601f830112610dbe57600080fd5b813581811115610dd057610dd0610d42565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908382118183101715610e1657610e16610d42565b81604052828152886020848701011115610e2f57600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60008083601f840112610e6357600080fd5b50813567ffffffffffffffff811115610e7b57600080fd5b6020830191508360208260051b8501011115610e9657600080fd5b9250929050565b60008060008060408587031215610eb357600080fd5b843567ffffffffffffffff80821115610ecb57600080fd5b610ed788838901610e51565b90965094506020870135915080821115610ef057600080fd5b50610efd87828801610e51565b95989497509550505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610f90577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b5060010190565b600060208284031215610fa957600080fd5b5051919050565b60005b83811015610fcb578181015183820152602001610fb3565b83811115610b045750506000910152565b60008251610fee818460208701610fb0565b9190910192915050565b6020815260008251806020840152611017816040850160208701610fb0565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R`\x046\x10a\0ZW`\x005`\xE0\x1C\x80cO\x1E\xF2\x86\x11a\0CW\x80cO\x1E\xF2\x86\x14a\0\xDFW\x80cP\x1D\x97l\x14a\0\xF2W\x80cR\xD1\x90-\x14a\x01\x12W`\0\x80\xFD[\x80c\x11x\x03\xE3\x14a\0_W\x80c6Y\xCF\xE6\x14a\0\xBDW[`\0\x80\xFD[4\x80\x15a\0kW`\0\x80\xFD[Pa\0\x93\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[4\x80\x15a\0\xC9W`\0\x80\xFD[Pa\0\xDDa\0\xD86`\x04a\r'V[a\x015V[\0[a\0\xDDa\0\xED6`\x04a\rqV[a\x03?V[4\x80\x15a\0\xFEW`\0\x80\xFD[Pa\0\xDDa\x01\r6`\x04a\x0E\x9DV[a\x055V[4\x80\x15a\x01\x1EW`\0\x80\xFD[Pa\x01'a\x06vV[`@Q\x90\x81R` \x01a\0\xB4V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x160\x03a\x01\xFFW`@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\x82\x01R`,`$\x82\x01R\x7FFunction must be called through `D\x82\x01R\x7Fdelegatecall\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01[`@Q\x80\x91\x03\x90\xFD[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a\x02t\x7F6\x08\x94\xA1;\xA1\xA3!\x06g\xC8(I-\xB9\x8D\xCA> v\xCC75\xA9 \xA3\xCAP]8+\xBCTs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14a\x03\x17W`@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\x82\x01R`,`$\x82\x01R\x7FFunction must be called through `D\x82\x01R\x7Factive proxy\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x01\xF6V[a\x03 \x81a\x07bV[`@\x80Q`\0\x80\x82R` \x82\x01\x90\x92Ra\x03<\x91\x83\x91\x90a\x07\xD1V[PV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x160\x03a\x04\x04W`@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\x82\x01R`,`$\x82\x01R\x7FFunction must be called through `D\x82\x01R\x7Fdelegatecall\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x01\xF6V[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a\x04y\x7F6\x08\x94\xA1;\xA1\xA3!\x06g\xC8(I-\xB9\x8D\xCA> v\xCC75\xA9 \xA3\xCAP]8+\xBCTs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14a\x05\x1CW`@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\x82\x01R`,`$\x82\x01R\x7FFunction must be called through `D\x82\x01R\x7Factive proxy\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x01\xF6V[a\x05%\x82a\x07bV[a\x051\x82\x82`\x01a\x07\xD1V[PPV[3s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x14a\x05\xA4W`@Q\x7F\x82\xB4)\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0[\x83\x81\x10\x15a\x06oW`\0\x85\x85\x83\x81\x81\x10a\x05\xC3Wa\x05\xC3a\x0F\tV[\x90P` \x02\x01` \x81\x01\x90a\x05\xD8\x91\x90a\r'V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x84\x84\x84\x81\x81\x10a\x06\0Wa\x06\0a\x0F\tV[\x90P` \x02\x015`@Q`\0`@Q\x80\x83\x03\x81\x85\x87Z\xF1\x92PPP=\x80`\0\x81\x14a\x06GW`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=`\0` \x84\x01>a\x06LV[``\x91P[PP\x90P\x80a\x06[WPa\x06]V[P[\x80a\x06g\x81a\x0F8V[\x91PPa\x05\xA7V[PPPPPV[`\x000s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x14a\x07=W`@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\x82\x01R`8`$\x82\x01R\x7FUUPSUpgradeable: must not be cal`D\x82\x01R\x7Fled through delegatecall\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x01\xF6V[P\x7F6\x08\x94\xA1;\xA1\xA3!\x06g\xC8(I-\xB9\x8D\xCA> v\xCC75\xA9 \xA3\xCAP]8+\xBC\x90V[3s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x14a\x03 v\xCC75\xA9 \xA3\xCAP]8+\xBC\x81\x14a\t\xC9W`@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\x82\x01R`)`$\x82\x01R\x7FERC1967Upgrade: unsupported prox`D\x82\x01R\x7FiableUUID\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x01\xF6V[Pa\x08\x04\x83\x83\x83a\n\xDFV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16;a\nyW`@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\x82\x01R`-`$\x82\x01R\x7FERC1967: new implementation is n`D\x82\x01R\x7Fot a contract\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x01\xF6V[\x7F6\x08\x94\xA1;\xA1\xA3!\x06g\xC8(I-\xB9\x8D\xCA> v\xCC75\xA9 \xA3\xCAP]8+\xBC\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x92\x90\x92\x16\x91\x90\x91\x17\x90UV[a\n\xE8\x83a\x0B\nV[`\0\x82Q\x11\x80a\n\xF5WP\x80[\x15a\x08\x04Wa\x0B\x04\x83\x83a\x0BWV[PPPPV[a\x0B\x13\x81a\t\xD5V[`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16\x90\x7F\xBC|\xD7Z \xEE'\xFD\x9A\xDE\xBA\xB3 A\xF7U!M\xBCk\xFF\xA9\x0C\xC0\"[9\xDA.\\-;\x90`\0\x90\xA2PV[``a\x0B|\x83\x83`@Q\x80``\x01`@R\x80`'\x81R` \x01a\x10J`'\x919a\x0B\x83V[\x93\x92PPPV[``s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x16;a\x0C)W`@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\x82\x01R`&`$\x82\x01R\x7FAddress: delegate call to non-co`D\x82\x01R\x7Fntract\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`d\x82\x01R`\x84\x01a\x01\xF6V[`\0\x80\x85s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x85`@Qa\x0CQ\x91\x90a\x0F\xDCV[`\0`@Q\x80\x83\x03\x81\x85Z\xF4\x91PP=\x80`\0\x81\x14a\x0C\x8CW`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=`\0` \x84\x01>a\x0C\x91V[``\x91P[P\x91P\x91Pa\x0C\xA1\x82\x82\x86a\x0C\xABV[\x96\x95PPPPPPV[``\x83\x15a\x0C\xBAWP\x81a\x0B|V[\x82Q\x15a\x0C\xCAW\x82Q\x80\x84` \x01\xFD[\x81`@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\x01\xF6\x91\x90a\x0F\xF8V[\x805s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\r\"W`\0\x80\xFD[\x91\x90PV[`\0` \x82\x84\x03\x12\x15a\r9W`\0\x80\xFD[a\x0B|\x82a\x0C\xFEV[\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[`\0\x80`@\x83\x85\x03\x12\x15a\r\x84W`\0\x80\xFD[a\r\x8D\x83a\x0C\xFEV[\x91P` \x83\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\r\xAAW`\0\x80\xFD[\x81\x85\x01\x91P\x85`\x1F\x83\x01\x12a\r\xBEW`\0\x80\xFD[\x815\x81\x81\x11\x15a\r\xD0Wa\r\xD0a\rBV[`@Q`\x1F\x82\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x90\x81\x16`?\x01\x16\x81\x01\x90\x83\x82\x11\x81\x83\x10\x17\x15a\x0E\x16Wa\x0E\x16a\rBV[\x81`@R\x82\x81R\x88` \x84\x87\x01\x01\x11\x15a\x0E/W`\0\x80\xFD[\x82` \x86\x01` \x83\x017`\0` \x84\x83\x01\x01R\x80\x95PPPPPP\x92P\x92\x90PV[`\0\x80\x83`\x1F\x84\x01\x12a\x0EcW`\0\x80\xFD[P\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x0E{W`\0\x80\xFD[` \x83\x01\x91P\x83` \x82`\x05\x1B\x85\x01\x01\x11\x15a\x0E\x96W`\0\x80\xFD[\x92P\x92\x90PV[`\0\x80`\0\x80`@\x85\x87\x03\x12\x15a\x0E\xB3W`\0\x80\xFD[\x845g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x0E\xCBW`\0\x80\xFD[a\x0E\xD7\x88\x83\x89\x01a\x0EQV[\x90\x96P\x94P` \x87\x015\x91P\x80\x82\x11\x15a\x0E\xF0W`\0\x80\xFD[Pa\x0E\xFD\x87\x82\x88\x01a\x0EQV[\x95\x98\x94\x97P\x95PPPPV[\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`2`\x04R`$`\0\xFD[`\0\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x03a\x0F\x90W\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`\x11`\x04R`$`\0\xFD[P`\x01\x01\x90V[`\0` \x82\x84\x03\x12\x15a\x0F\xA9W`\0\x80\xFD[PQ\x91\x90PV[`\0[\x83\x81\x10\x15a\x0F\xCBW\x81\x81\x01Q\x83\x82\x01R` \x01a\x0F\xB3V[\x83\x81\x11\x15a\x0B\x04WPP`\0\x91\x01RV[`\0\x82Qa\x0F\xEE\x81\x84` \x87\x01a\x0F\xB0V[\x91\x90\x91\x01\x92\x91PPV[` \x81R`\0\x82Q\x80` \x84\x01Ra\x10\x17\x81`@\x85\x01` \x87\x01a\x0F\xB0V[`\x1F\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x91\x90\x91\x01`@\x01\x92\x91PPV\xFEAddress: low-level delegate call failed\xA1dsolcC\0\x08\x0F\0\n", + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `Unauthorized()` and selector `0x82b42900`. +```solidity +error Unauthorized(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct Unauthorized; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: Unauthorized) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for Unauthorized { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for Unauthorized { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "Unauthorized()"; + const SELECTOR: [u8; 4] = [130u8, 180u8, 41u8, 0u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `AdminChanged(address,address)` and selector `0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f`. +```solidity +event AdminChanged(address previousAdmin, address newAdmin); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct AdminChanged { + #[allow(missing_docs)] + pub previousAdmin: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub newAdmin: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for AdminChanged { + type DataTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,); + const SIGNATURE: &'static str = "AdminChanged(address,address)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 126u8, 100u8, 77u8, 121u8, 66u8, 47u8, 23u8, 192u8, 30u8, 72u8, 148u8, + 181u8, 244u8, 245u8, 136u8, 211u8, 49u8, 235u8, 250u8, 40u8, 101u8, 61u8, + 66u8, 174u8, 131u8, 45u8, 197u8, 158u8, 56u8, 201u8, 121u8, 143u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + previousAdmin: data.0, + newAdmin: data.1, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + ::tokenize( + &self.previousAdmin, + ), + ::tokenize( + &self.newAdmin, + ), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(),) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for AdminChanged { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&AdminChanged> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &AdminChanged) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `BeaconUpgraded(address)` and selector `0x1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e`. +```solidity +event BeaconUpgraded(address indexed beacon); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct BeaconUpgraded { + #[allow(missing_docs)] + pub beacon: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for BeaconUpgraded { + type DataTuple<'a> = (); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "BeaconUpgraded(address)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 28u8, 243u8, 176u8, 58u8, 108u8, 241u8, 159u8, 162u8, 186u8, 186u8, 77u8, + 241u8, 72u8, 233u8, 220u8, 171u8, 237u8, 234u8, 127u8, 138u8, 92u8, 7u8, + 132u8, 14u8, 32u8, 126u8, 92u8, 8u8, 155u8, 233u8, 93u8, 62u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { beacon: topics.1 } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + () + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.beacon.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.beacon, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for BeaconUpgraded { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&BeaconUpgraded> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &BeaconUpgraded) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `Upgraded(address)` and selector `0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b`. +```solidity +event Upgraded(address indexed implementation); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct Upgraded { + #[allow(missing_docs)] + pub implementation: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for Upgraded { + type DataTuple<'a> = (); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "Upgraded(address)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 188u8, 124u8, 215u8, 90u8, 32u8, 238u8, 39u8, 253u8, 154u8, 222u8, 186u8, + 179u8, 32u8, 65u8, 247u8, 85u8, 33u8, 77u8, 188u8, 107u8, 255u8, 169u8, + 12u8, 192u8, 34u8, 91u8, 57u8, 218u8, 46u8, 92u8, 45u8, 59u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { implementation: topics.1 } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + () + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.implementation.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.implementation, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for Upgraded { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&Upgraded> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &Upgraded) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + /**Constructor`. +```solidity +constructor(address owner); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct constructorCall { + #[allow(missing_docs)] + pub owner: alloy::sol_types::private::Address, + } + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: constructorCall) -> Self { + (value.owner,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for constructorCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { owner: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolConstructor for constructorCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.owner, + ), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `OWNER()` and selector `0x117803e3`. +```solidity +function OWNER() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct OWNERCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`OWNER()`](OWNERCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct OWNERReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: OWNERCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for OWNERCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: OWNERReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for OWNERReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for OWNERCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "OWNER()"; + const SELECTOR: [u8; 4] = [17u8, 120u8, 3u8, 227u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: OWNERReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: OWNERReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `proxiableUUID()` and selector `0x52d1902d`. +```solidity +function proxiableUUID() external view returns (bytes32); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct proxiableUUIDCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`proxiableUUID()`](proxiableUUIDCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct proxiableUUIDReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: proxiableUUIDCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for proxiableUUIDCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: proxiableUUIDReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for proxiableUUIDReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for proxiableUUIDCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::FixedBytes<32>; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "proxiableUUID()"; + const SELECTOR: [u8; 4] = [82u8, 209u8, 144u8, 45u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: proxiableUUIDReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: proxiableUUIDReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `upgradeTo(address)` and selector `0x3659cfe6`. +```solidity +function upgradeTo(address newImplementation) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct upgradeToCall { + #[allow(missing_docs)] + pub newImplementation: alloy::sol_types::private::Address, + } + ///Container type for the return parameters of the [`upgradeTo(address)`](upgradeToCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct upgradeToReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: upgradeToCall) -> Self { + (value.newImplementation,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for upgradeToCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { newImplementation: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: upgradeToReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for upgradeToReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl upgradeToReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for upgradeToCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = upgradeToReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "upgradeTo(address)"; + const SELECTOR: [u8; 4] = [54u8, 89u8, 207u8, 230u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.newImplementation, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + upgradeToReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `upgradeToAndCall(address,bytes)` and selector `0x4f1ef286`. +```solidity +function upgradeToAndCall(address newImplementation, bytes memory data) external payable; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct upgradeToAndCallCall { + #[allow(missing_docs)] + pub newImplementation: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub data: alloy::sol_types::private::Bytes, + } + ///Container type for the return parameters of the [`upgradeToAndCall(address,bytes)`](upgradeToAndCallCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct upgradeToAndCallReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Bytes, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: upgradeToAndCallCall) -> Self { + (value.newImplementation, value.data) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for upgradeToAndCallCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + newImplementation: tuple.0, + data: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: upgradeToAndCallReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for upgradeToAndCallReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl upgradeToAndCallReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for upgradeToAndCallCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Bytes, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = upgradeToAndCallReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "upgradeToAndCall(address,bytes)"; + const SELECTOR: [u8; 4] = [79u8, 30u8, 242u8, 134u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.newImplementation, + ), + ::tokenize( + &self.data, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + upgradeToAndCallReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `withdrawETH(address[],uint256[])` and selector `0x501d976c`. +```solidity +function withdrawETH(address[] memory targets, uint256[] memory amounts) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct withdrawETHCall { + #[allow(missing_docs)] + pub targets: alloy::sol_types::private::Vec, + #[allow(missing_docs)] + pub amounts: alloy::sol_types::private::Vec< + alloy::sol_types::private::primitives::aliases::U256, + >, + } + ///Container type for the return parameters of the [`withdrawETH(address[],uint256[])`](withdrawETHCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct withdrawETHReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Array, + alloy::sol_types::sol_data::Array>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Vec, + alloy::sol_types::private::Vec< + alloy::sol_types::private::primitives::aliases::U256, + >, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: withdrawETHCall) -> Self { + (value.targets, value.amounts) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for withdrawETHCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + targets: tuple.0, + amounts: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: withdrawETHReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for withdrawETHReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl withdrawETHReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for withdrawETHCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Array, + alloy::sol_types::sol_data::Array>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = withdrawETHReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "withdrawETH(address[],uint256[])"; + const SELECTOR: [u8; 4] = [80u8, 29u8, 151u8, 108u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.targets), + , + > as alloy_sol_types::SolType>::tokenize(&self.amounts), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + withdrawETHReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + ///Container for all the [`Recovery`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum RecoveryCalls { + #[allow(missing_docs)] + OWNER(OWNERCall), + #[allow(missing_docs)] + proxiableUUID(proxiableUUIDCall), + #[allow(missing_docs)] + upgradeTo(upgradeToCall), + #[allow(missing_docs)] + upgradeToAndCall(upgradeToAndCallCall), + #[allow(missing_docs)] + withdrawETH(withdrawETHCall), + } + impl RecoveryCalls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [17u8, 120u8, 3u8, 227u8], + [54u8, 89u8, 207u8, 230u8], + [79u8, 30u8, 242u8, 134u8], + [80u8, 29u8, 151u8, 108u8], + [82u8, 209u8, 144u8, 45u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(OWNER), + ::core::stringify!(upgradeTo), + ::core::stringify!(upgradeToAndCall), + ::core::stringify!(withdrawETH), + ::core::stringify!(proxiableUUID), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for RecoveryCalls { + const NAME: &'static str = "RecoveryCalls"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 5usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::OWNER(_) => ::SELECTOR, + Self::proxiableUUID(_) => { + ::SELECTOR + } + Self::upgradeTo(_) => { + ::SELECTOR + } + Self::upgradeToAndCall(_) => { + ::SELECTOR + } + Self::withdrawETH(_) => { + ::SELECTOR + } + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn OWNER(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(RecoveryCalls::OWNER) + } + OWNER + }, + { + fn upgradeTo(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(RecoveryCalls::upgradeTo) + } + upgradeTo + }, + { + fn upgradeToAndCall( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(RecoveryCalls::upgradeToAndCall) + } + upgradeToAndCall + }, + { + fn withdrawETH( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(RecoveryCalls::withdrawETH) + } + withdrawETH + }, + { + fn proxiableUUID( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(RecoveryCalls::proxiableUUID) + } + proxiableUUID + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn OWNER(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(RecoveryCalls::OWNER) + } + OWNER + }, + { + fn upgradeTo(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(RecoveryCalls::upgradeTo) + } + upgradeTo + }, + { + fn upgradeToAndCall( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(RecoveryCalls::upgradeToAndCall) + } + upgradeToAndCall + }, + { + fn withdrawETH( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(RecoveryCalls::withdrawETH) + } + withdrawETH + }, + { + fn proxiableUUID( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(RecoveryCalls::proxiableUUID) + } + proxiableUUID + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::OWNER(inner) => { + ::abi_encoded_size(inner) + } + Self::proxiableUUID(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::upgradeTo(inner) => { + ::abi_encoded_size(inner) + } + Self::upgradeToAndCall(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::withdrawETH(inner) => { + ::abi_encoded_size( + inner, + ) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::OWNER(inner) => { + ::abi_encode_raw(inner, out) + } + Self::proxiableUUID(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::upgradeTo(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::upgradeToAndCall(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::withdrawETH(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + } + } + } + ///Container for all the [`Recovery`](self) custom errors. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum RecoveryErrors { + #[allow(missing_docs)] + Unauthorized(Unauthorized), + } + impl RecoveryErrors { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[[130u8, 180u8, 41u8, 0u8]]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(Unauthorized), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for RecoveryErrors { + const NAME: &'static str = "RecoveryErrors"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 1usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::Unauthorized(_) => { + ::SELECTOR + } + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn Unauthorized( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(RecoveryErrors::Unauthorized) + } + Unauthorized + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn Unauthorized( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(RecoveryErrors::Unauthorized) + } + Unauthorized + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::Unauthorized(inner) => { + ::abi_encoded_size(inner) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::Unauthorized(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + } + } + } + ///Container for all the [`Recovery`](self) events. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum RecoveryEvents { + #[allow(missing_docs)] + AdminChanged(AdminChanged), + #[allow(missing_docs)] + BeaconUpgraded(BeaconUpgraded), + #[allow(missing_docs)] + Upgraded(Upgraded), + } + impl RecoveryEvents { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 32usize]] = &[ + [ + 28u8, 243u8, 176u8, 58u8, 108u8, 241u8, 159u8, 162u8, 186u8, 186u8, 77u8, + 241u8, 72u8, 233u8, 220u8, 171u8, 237u8, 234u8, 127u8, 138u8, 92u8, 7u8, + 132u8, 14u8, 32u8, 126u8, 92u8, 8u8, 155u8, 233u8, 93u8, 62u8, + ], + [ + 126u8, 100u8, 77u8, 121u8, 66u8, 47u8, 23u8, 192u8, 30u8, 72u8, 148u8, + 181u8, 244u8, 245u8, 136u8, 211u8, 49u8, 235u8, 250u8, 40u8, 101u8, 61u8, + 66u8, 174u8, 131u8, 45u8, 197u8, 158u8, 56u8, 201u8, 121u8, 143u8, + ], + [ + 188u8, 124u8, 215u8, 90u8, 32u8, 238u8, 39u8, 253u8, 154u8, 222u8, 186u8, + 179u8, 32u8, 65u8, 247u8, 85u8, 33u8, 77u8, 188u8, 107u8, 255u8, 169u8, + 12u8, 192u8, 34u8, 91u8, 57u8, 218u8, 46u8, 92u8, 45u8, 59u8, + ], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(BeaconUpgraded), + ::core::stringify!(AdminChanged), + ::core::stringify!(Upgraded), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolEventInterface for RecoveryEvents { + const NAME: &'static str = "RecoveryEvents"; + const COUNT: usize = 3usize; + fn decode_raw_log( + topics: &[alloy_sol_types::Word], + data: &[u8], + ) -> alloy_sol_types::Result { + match topics.first().copied() { + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::AdminChanged) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::BeaconUpgraded) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log(topics, data) + .map(Self::Upgraded) + } + _ => { + alloy_sol_types::private::Err(alloy_sol_types::Error::InvalidLog { + name: ::NAME, + log: alloy_sol_types::private::Box::new( + alloy_sol_types::private::LogData::new_unchecked( + topics.to_vec(), + data.to_vec().into(), + ), + ), + }) + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for RecoveryEvents { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + match self { + Self::AdminChanged(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::BeaconUpgraded(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::Upgraded(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + } + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + match self { + Self::AdminChanged(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::BeaconUpgraded(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::Upgraded(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`Recovery`](self) contract instance. + +See the [wrapper's documentation](`RecoveryInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> RecoveryInstance { + RecoveryInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + owner: alloy::sol_types::private::Address, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + RecoveryInstance::::deploy(__provider, owner) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + owner: alloy::sol_types::private::Address, + ) -> alloy_contract::RawCallBuilder { + RecoveryInstance::::deploy_builder(__provider, owner) + } + /**A [`Recovery`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`Recovery`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct RecoveryInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for RecoveryInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("RecoveryInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > RecoveryInstance { + /**Creates a new wrapper around an on-chain [`Recovery`](self) contract instance. + +See the [wrapper's documentation](`RecoveryInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + owner: alloy::sol_types::private::Address, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider, owner); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder( + __provider: P, + owner: alloy::sol_types::private::Address, + ) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + [ + &BYTECODE[..], + &alloy_sol_types::SolConstructor::abi_encode( + &constructorCall { owner }, + )[..], + ] + .concat() + .into(), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl RecoveryInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> RecoveryInstance { + RecoveryInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > RecoveryInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`OWNER`] function. + pub fn OWNER(&self) -> alloy_contract::SolCallBuilder<&P, OWNERCall, N> { + self.call_builder(&OWNERCall) + } + ///Creates a new call builder for the [`proxiableUUID`] function. + pub fn proxiableUUID( + &self, + ) -> alloy_contract::SolCallBuilder<&P, proxiableUUIDCall, N> { + self.call_builder(&proxiableUUIDCall) + } + ///Creates a new call builder for the [`upgradeTo`] function. + pub fn upgradeTo( + &self, + newImplementation: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, upgradeToCall, N> { + self.call_builder(&upgradeToCall { newImplementation }) + } + ///Creates a new call builder for the [`upgradeToAndCall`] function. + pub fn upgradeToAndCall( + &self, + newImplementation: alloy::sol_types::private::Address, + data: alloy::sol_types::private::Bytes, + ) -> alloy_contract::SolCallBuilder<&P, upgradeToAndCallCall, N> { + self.call_builder( + &upgradeToAndCallCall { + newImplementation, + data, + }, + ) + } + ///Creates a new call builder for the [`withdrawETH`] function. + pub fn withdrawETH( + &self, + targets: alloy::sol_types::private::Vec, + amounts: alloy::sol_types::private::Vec< + alloy::sol_types::private::primitives::aliases::U256, + >, + ) -> alloy_contract::SolCallBuilder<&P, withdrawETHCall, N> { + self.call_builder( + &withdrawETHCall { + targets, + amounts, + }, + ) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > RecoveryInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + ///Creates a new event filter for the [`AdminChanged`] event. + pub fn AdminChanged_filter(&self) -> alloy_contract::Event<&P, AdminChanged, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`BeaconUpgraded`] event. + pub fn BeaconUpgraded_filter( + &self, + ) -> alloy_contract::Event<&P, BeaconUpgraded, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`Upgraded`] event. + pub fn Upgraded_filter(&self) -> alloy_contract::Event<&P, Upgraded, N> { + self.event_filter::() + } + } +} diff --git a/bindings/rust/src/reinitializable_base.rs b/bindings/rust/src/reinitializable_base.rs new file mode 100644 index 000000000..5668759d2 --- /dev/null +++ b/bindings/rust/src/reinitializable_base.rs @@ -0,0 +1,769 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface ReinitializableBase { + error ReinitializableBase_ZeroInitVersion(); + + function initVersion() external view returns (uint8); +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "function", + "name": "initVersion", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint8", + "internalType": "uint8" + } + ], + "stateMutability": "view" + }, + { + "type": "error", + "name": "ReinitializableBase_ZeroInitVersion", + "inputs": [] + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod ReinitializableBase { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"", + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ReinitializableBase_ZeroInitVersion()` and selector `0x9b01afed`. +```solidity +error ReinitializableBase_ZeroInitVersion(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ReinitializableBase_ZeroInitVersion; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: ReinitializableBase_ZeroInitVersion) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for ReinitializableBase_ZeroInitVersion { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ReinitializableBase_ZeroInitVersion { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ReinitializableBase_ZeroInitVersion()"; + const SELECTOR: [u8; 4] = [155u8, 1u8, 175u8, 237u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `initVersion()` and selector `0x38d38c97`. +```solidity +function initVersion() external view returns (uint8); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct initVersionCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`initVersion()`](initVersionCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct initVersionReturn { + #[allow(missing_docs)] + pub _0: u8, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: initVersionCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for initVersionCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<8>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u8,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: initVersionReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for initVersionReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for initVersionCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u8; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<8>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "initVersion()"; + const SELECTOR: [u8; 4] = [56u8, 211u8, 140u8, 151u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: initVersionReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: initVersionReturn = r.into(); + r._0 + }) + } + } + }; + ///Container for all the [`ReinitializableBase`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum ReinitializableBaseCalls { + #[allow(missing_docs)] + initVersion(initVersionCall), + } + impl ReinitializableBaseCalls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[[56u8, 211u8, 140u8, 151u8]]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(initVersion), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for ReinitializableBaseCalls { + const NAME: &'static str = "ReinitializableBaseCalls"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 1usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::initVersion(_) => { + ::SELECTOR + } + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn initVersion( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(ReinitializableBaseCalls::initVersion) + } + initVersion + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn initVersion( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(ReinitializableBaseCalls::initVersion) + } + initVersion + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::initVersion(inner) => { + ::abi_encoded_size( + inner, + ) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::initVersion(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + } + } + } + ///Container for all the [`ReinitializableBase`](self) custom errors. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum ReinitializableBaseErrors { + #[allow(missing_docs)] + ReinitializableBase_ZeroInitVersion(ReinitializableBase_ZeroInitVersion), + } + impl ReinitializableBaseErrors { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[[155u8, 1u8, 175u8, 237u8]]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(ReinitializableBase_ZeroInitVersion), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for ReinitializableBaseErrors { + const NAME: &'static str = "ReinitializableBaseErrors"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 1usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::ReinitializableBase_ZeroInitVersion(_) => { + ::SELECTOR + } + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn ReinitializableBase_ZeroInitVersion( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + ReinitializableBaseErrors::ReinitializableBase_ZeroInitVersion, + ) + } + ReinitializableBase_ZeroInitVersion + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn ReinitializableBase_ZeroInitVersion( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + ReinitializableBaseErrors::ReinitializableBase_ZeroInitVersion, + ) + } + ReinitializableBase_ZeroInitVersion + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::ReinitializableBase_ZeroInitVersion(inner) => { + ::abi_encoded_size( + inner, + ) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::ReinitializableBase_ZeroInitVersion(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`ReinitializableBase`](self) contract instance. + +See the [wrapper's documentation](`ReinitializableBaseInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> ReinitializableBaseInstance { + ReinitializableBaseInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + ReinitializableBaseInstance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + ReinitializableBaseInstance::::deploy_builder(__provider) + } + /**A [`ReinitializableBase`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`ReinitializableBase`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct ReinitializableBaseInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for ReinitializableBaseInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("ReinitializableBaseInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > ReinitializableBaseInstance { + /**Creates a new wrapper around an on-chain [`ReinitializableBase`](self) contract instance. + +See the [wrapper's documentation](`ReinitializableBaseInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl ReinitializableBaseInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> ReinitializableBaseInstance { + ReinitializableBaseInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > ReinitializableBaseInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`initVersion`] function. + pub fn initVersion( + &self, + ) -> alloy_contract::SolCallBuilder<&P, initVersionCall, N> { + self.call_builder(&initVersionCall) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > ReinitializableBaseInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + } +} diff --git a/bindings/rust/src/resolved_delegate_proxy.rs b/bindings/rust/src/resolved_delegate_proxy.rs new file mode 100644 index 000000000..711f3febc --- /dev/null +++ b/bindings/rust/src/resolved_delegate_proxy.rs @@ -0,0 +1,355 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface ResolvedDelegateProxy { + constructor(address _addressManager, string _implementationName); + + fallback() external payable; +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "constructor", + "inputs": [ + { + "name": "_addressManager", + "type": "address", + "internalType": "contract AddressManager" + }, + { + "name": "_implementationName", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "fallback", + "stateMutability": "payable" + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod ResolvedDelegateProxy { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x608060405234801561001057600080fd5b506040516105f03803806105f083398101604081905261002f91610088565b30600090815260016020908152604080832080546001600160a01b0319166001600160a01b03871617905590829052902061006a8282610203565b5050506102c2565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561009b57600080fd5b82516001600160a01b03811681146100b257600080fd5b602084810151919350906001600160401b03808211156100d157600080fd5b818601915086601f8301126100e557600080fd5b8151818111156100f7576100f7610072565b604051601f8201601f19908116603f0116810190838211818310171561011f5761011f610072565b81604052828152898684870101111561013757600080fd5b600093505b82841015610159578484018601518185018701529285019261013c565b8284111561016a5760008684830101525b8096505050505050509250929050565b600181811c9082168061018e57607f821691505b6020821081036101ae57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156101fe57600081815260208120601f850160051c810160208610156101db5750805b601f850160051c820191505b818110156101fa578281556001016101e7565b5050505b505050565b81516001600160401b0381111561021c5761021c610072565b6102308161022a845461017a565b846101b4565b602080601f831160018114610265576000841561024d5750858301515b600019600386901b1c1916600185901b1785556101fa565b600085815260208120601f198616915b8281101561029457888601518255948401946001909101908401610275565b50858210156102b25787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b61031f806102d16000396000f3fe608060408181523060009081526001602090815282822054908290529181207fbf40fac1000000000000000000000000000000000000000000000000000000009093529173ffffffffffffffffffffffffffffffffffffffff9091169063bf40fac19061006d9060846101e2565b602060405180830381865afa15801561008a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100ae91906102c5565b905073ffffffffffffffffffffffffffffffffffffffff8116610157576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603960248201527f5265736f6c76656444656c656761746550726f78793a2074617267657420616460448201527f6472657373206d75737420626520696e697469616c697a656400000000000000606482015260840160405180910390fd5b6000808273ffffffffffffffffffffffffffffffffffffffff16600036604051610182929190610302565b600060405180830381855af49150503d80600081146101bd576040519150601f19603f3d011682016040523d82523d6000602084013e6101c2565b606091505b5090925090508115156001036101da57805160208201f35b805160208201fd5b600060208083526000845481600182811c91508083168061020457607f831692505b858310810361023a577f4e487b710000000000000000000000000000000000000000000000000000000085526022600452602485fd5b878601838152602001818015610257576001811461028b576102b6565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008616825284151560051b820196506102b6565b60008b81526020902060005b868110156102b057815484820152908501908901610297565b83019750505b50949998505050505050505050565b6000602082840312156102d757600080fd5b815173ffffffffffffffffffffffffffffffffffffffff811681146102fb57600080fd5b9392505050565b818382376000910190815291905056fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`@Qa\x05\xF08\x03\x80a\x05\xF0\x839\x81\x01`@\x81\x90Ra\0/\x91a\0\x88V[0`\0\x90\x81R`\x01` \x90\x81R`@\x80\x83 \x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x87\x16\x17\x90U\x90\x82\x90R\x90 a\0j\x82\x82a\x02\x03V[PPPa\x02\xC2V[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[`\0\x80`@\x83\x85\x03\x12\x15a\0\x9BW`\0\x80\xFD[\x82Q`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a\0\xB2W`\0\x80\xFD[` \x84\x81\x01Q\x91\x93P\x90`\x01`\x01`@\x1B\x03\x80\x82\x11\x15a\0\xD1W`\0\x80\xFD[\x81\x86\x01\x91P\x86`\x1F\x83\x01\x12a\0\xE5W`\0\x80\xFD[\x81Q\x81\x81\x11\x15a\0\xF7Wa\0\xF7a\0rV[`@Q`\x1F\x82\x01`\x1F\x19\x90\x81\x16`?\x01\x16\x81\x01\x90\x83\x82\x11\x81\x83\x10\x17\x15a\x01\x1FWa\x01\x1Fa\0rV[\x81`@R\x82\x81R\x89\x86\x84\x87\x01\x01\x11\x15a\x017W`\0\x80\xFD[`\0\x93P[\x82\x84\x10\x15a\x01YW\x84\x84\x01\x86\x01Q\x81\x85\x01\x87\x01R\x92\x85\x01\x92a\x01=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\0\xAE\x91\x90a\x02\xC5V[\x90Ps\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16a\x01WW`@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\x82\x01R`9`$\x82\x01R\x7FResolvedDelegateProxy: target ad`D\x82\x01R\x7Fdress must be initialized\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01`@Q\x80\x91\x03\x90\xFD[`\0\x80\x82s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\x006`@Qa\x01\x82\x92\x91\x90a\x03\x02V[`\0`@Q\x80\x83\x03\x81\x85Z\xF4\x91PP=\x80`\0\x81\x14a\x01\xBDW`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=`\0` \x84\x01>a\x01\xC2V[``\x91P[P\x90\x92P\x90P\x81\x15\x15`\x01\x03a\x01\xDAW\x80Q` \x82\x01\xF3[\x80Q` \x82\x01\xFD[`\0` \x80\x83R`\0\x84T\x81`\x01\x82\x81\x1C\x91P\x80\x83\x16\x80a\x02\x04W`\x7F\x83\x16\x92P[\x85\x83\x10\x81\x03a\x02:W\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\x85R`\"`\x04R`$\x85\xFD[\x87\x86\x01\x83\x81R` \x01\x81\x80\x15a\x02WW`\x01\x81\x14a\x02\x8BWa\x02\xB6V[\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x86\x16\x82R\x84\x15\x15`\x05\x1B\x82\x01\x96Pa\x02\xB6V[`\0\x8B\x81R` \x90 `\0[\x86\x81\x10\x15a\x02\xB0W\x81T\x84\x82\x01R\x90\x85\x01\x90\x89\x01a\x02\x97V[\x83\x01\x97PP[P\x94\x99\x98PPPPPPPPPV[`\0` \x82\x84\x03\x12\x15a\x02\xD7W`\0\x80\xFD[\x81Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x02\xFBW`\0\x80\xFD[\x93\x92PPPV[\x81\x83\x827`\0\x91\x01\x90\x81R\x91\x90PV\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x608060408181523060009081526001602090815282822054908290529181207fbf40fac1000000000000000000000000000000000000000000000000000000009093529173ffffffffffffffffffffffffffffffffffffffff9091169063bf40fac19061006d9060846101e2565b602060405180830381865afa15801561008a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100ae91906102c5565b905073ffffffffffffffffffffffffffffffffffffffff8116610157576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603960248201527f5265736f6c76656444656c656761746550726f78793a2074617267657420616460448201527f6472657373206d75737420626520696e697469616c697a656400000000000000606482015260840160405180910390fd5b6000808273ffffffffffffffffffffffffffffffffffffffff16600036604051610182929190610302565b600060405180830381855af49150503d80600081146101bd576040519150601f19603f3d011682016040523d82523d6000602084013e6101c2565b606091505b5090925090508115156001036101da57805160208201f35b805160208201fd5b600060208083526000845481600182811c91508083168061020457607f831692505b858310810361023a577f4e487b710000000000000000000000000000000000000000000000000000000085526022600452602485fd5b878601838152602001818015610257576001811461028b576102b6565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008616825284151560051b820196506102b6565b60008b81526020902060005b868110156102b057815484820152908501908901610297565b83019750505b50949998505050505050505050565b6000602082840312156102d757600080fd5b815173ffffffffffffffffffffffffffffffffffffffff811681146102fb57600080fd5b9392505050565b818382376000910190815291905056fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@\x81\x81R0`\0\x90\x81R`\x01` \x90\x81R\x82\x82 T\x90\x82\x90R\x91\x81 \x7F\xBF@\xFA\xC1\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\x90\x93R\x91s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x90c\xBF@\xFA\xC1\x90a\0m\x90`\x84a\x01\xE2V[` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\0\x8AW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\0\xAE\x91\x90a\x02\xC5V[\x90Ps\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16a\x01WW`@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\x82\x01R`9`$\x82\x01R\x7FResolvedDelegateProxy: target ad`D\x82\x01R\x7Fdress must be initialized\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01`@Q\x80\x91\x03\x90\xFD[`\0\x80\x82s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\x006`@Qa\x01\x82\x92\x91\x90a\x03\x02V[`\0`@Q\x80\x83\x03\x81\x85Z\xF4\x91PP=\x80`\0\x81\x14a\x01\xBDW`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=`\0` \x84\x01>a\x01\xC2V[``\x91P[P\x90\x92P\x90P\x81\x15\x15`\x01\x03a\x01\xDAW\x80Q` \x82\x01\xF3[\x80Q` \x82\x01\xFD[`\0` \x80\x83R`\0\x84T\x81`\x01\x82\x81\x1C\x91P\x80\x83\x16\x80a\x02\x04W`\x7F\x83\x16\x92P[\x85\x83\x10\x81\x03a\x02:W\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\x85R`\"`\x04R`$\x85\xFD[\x87\x86\x01\x83\x81R` \x01\x81\x80\x15a\x02WW`\x01\x81\x14a\x02\x8BWa\x02\xB6V[\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x86\x16\x82R\x84\x15\x15`\x05\x1B\x82\x01\x96Pa\x02\xB6V[`\0\x8B\x81R` \x90 `\0[\x86\x81\x10\x15a\x02\xB0W\x81T\x84\x82\x01R\x90\x85\x01\x90\x89\x01a\x02\x97V[\x83\x01\x97PP[P\x94\x99\x98PPPPPPPPPV[`\0` \x82\x84\x03\x12\x15a\x02\xD7W`\0\x80\xFD[\x81Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x02\xFBW`\0\x80\xFD[\x93\x92PPPV[\x81\x83\x827`\0\x91\x01\x90\x81R\x91\x90PV\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + /**Constructor`. +```solidity +constructor(address _addressManager, string _implementationName); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct constructorCall { + #[allow(missing_docs)] + pub _addressManager: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _implementationName: alloy::sol_types::private::String, + } + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::String, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::String, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: constructorCall) -> Self { + (value._addressManager, value._implementationName) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for constructorCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _addressManager: tuple.0, + _implementationName: tuple.1, + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolConstructor for constructorCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::String, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._addressManager, + ), + ::tokenize( + &self._implementationName, + ), + ) + } + } + }; + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`ResolvedDelegateProxy`](self) contract instance. + +See the [wrapper's documentation](`ResolvedDelegateProxyInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> ResolvedDelegateProxyInstance { + ResolvedDelegateProxyInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + _addressManager: alloy::sol_types::private::Address, + _implementationName: alloy::sol_types::private::String, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + ResolvedDelegateProxyInstance::< + P, + N, + >::deploy(__provider, _addressManager, _implementationName) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + _addressManager: alloy::sol_types::private::Address, + _implementationName: alloy::sol_types::private::String, + ) -> alloy_contract::RawCallBuilder { + ResolvedDelegateProxyInstance::< + P, + N, + >::deploy_builder(__provider, _addressManager, _implementationName) + } + /**A [`ResolvedDelegateProxy`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`ResolvedDelegateProxy`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct ResolvedDelegateProxyInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for ResolvedDelegateProxyInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("ResolvedDelegateProxyInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > ResolvedDelegateProxyInstance { + /**Creates a new wrapper around an on-chain [`ResolvedDelegateProxy`](self) contract instance. + +See the [wrapper's documentation](`ResolvedDelegateProxyInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + _addressManager: alloy::sol_types::private::Address, + _implementationName: alloy::sol_types::private::String, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder( + __provider, + _addressManager, + _implementationName, + ); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder( + __provider: P, + _addressManager: alloy::sol_types::private::Address, + _implementationName: alloy::sol_types::private::String, + ) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + [ + &BYTECODE[..], + &alloy_sol_types::SolConstructor::abi_encode( + &constructorCall { + _addressManager, + _implementationName, + }, + )[..], + ] + .concat() + .into(), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl ResolvedDelegateProxyInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> ResolvedDelegateProxyInstance { + ResolvedDelegateProxyInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > ResolvedDelegateProxyInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > ResolvedDelegateProxyInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + } +} diff --git a/bindings/rust/src/resource_metering.rs b/bindings/rust/src/resource_metering.rs new file mode 100644 index 000000000..34093d2fa --- /dev/null +++ b/bindings/rust/src/resource_metering.rs @@ -0,0 +1,996 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface ResourceMetering { + error OutOfGas(); + + event Initialized(uint8 version); + + function params() external view returns (uint128 prevBaseFee, uint64 prevBoughtGas, uint64 prevBlockNum); +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "function", + "name": "params", + "inputs": [], + "outputs": [ + { + "name": "prevBaseFee", + "type": "uint128", + "internalType": "uint128" + }, + { + "name": "prevBoughtGas", + "type": "uint64", + "internalType": "uint64" + }, + { + "name": "prevBlockNum", + "type": "uint64", + "internalType": "uint64" + } + ], + "stateMutability": "view" + }, + { + "type": "event", + "name": "Initialized", + "inputs": [ + { + "name": "version", + "type": "uint8", + "indexed": false, + "internalType": "uint8" + } + ], + "anonymous": false + }, + { + "type": "error", + "name": "OutOfGas", + "inputs": [] + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod ResourceMetering { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"", + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `OutOfGas()` and selector `0x77ebef4d`. +```solidity +error OutOfGas(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct OutOfGas; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: OutOfGas) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for OutOfGas { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for OutOfGas { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "OutOfGas()"; + const SELECTOR: [u8; 4] = [119u8, 235u8, 239u8, 77u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `Initialized(uint8)` and selector `0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498`. +```solidity +event Initialized(uint8 version); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct Initialized { + #[allow(missing_docs)] + pub version: u8, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for Initialized { + type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<8>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,); + const SIGNATURE: &'static str = "Initialized(uint8)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 127u8, 38u8, 184u8, 63u8, 249u8, 110u8, 31u8, 43u8, 106u8, 104u8, 47u8, + 19u8, 56u8, 82u8, 246u8, 121u8, 138u8, 9u8, 196u8, 101u8, 218u8, 149u8, + 146u8, 20u8, 96u8, 206u8, 251u8, 56u8, 71u8, 64u8, 36u8, 152u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { version: data.0 } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.version), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(),) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for Initialized { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&Initialized> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &Initialized) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `params()` and selector `0xcff0ab96`. +```solidity +function params() external view returns (uint128 prevBaseFee, uint64 prevBoughtGas, uint64 prevBlockNum); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct paramsCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`params()`](paramsCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct paramsReturn { + #[allow(missing_docs)] + pub prevBaseFee: u128, + #[allow(missing_docs)] + pub prevBoughtGas: u64, + #[allow(missing_docs)] + pub prevBlockNum: u64, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: paramsCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for paramsCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Uint<128>, + alloy::sol_types::sol_data::Uint<64>, + alloy::sol_types::sol_data::Uint<64>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u128, u64, u64); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: paramsReturn) -> Self { + (value.prevBaseFee, value.prevBoughtGas, value.prevBlockNum) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for paramsReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + prevBaseFee: tuple.0, + prevBoughtGas: tuple.1, + prevBlockNum: tuple.2, + } + } + } + } + impl paramsReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.prevBaseFee), + as alloy_sol_types::SolType>::tokenize(&self.prevBoughtGas), + as alloy_sol_types::SolType>::tokenize(&self.prevBlockNum), + ) + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for paramsCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = paramsReturn; + type ReturnTuple<'a> = ( + alloy::sol_types::sol_data::Uint<128>, + alloy::sol_types::sol_data::Uint<64>, + alloy::sol_types::sol_data::Uint<64>, + ); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "params()"; + const SELECTOR: [u8; 4] = [207u8, 240u8, 171u8, 150u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + paramsReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + ///Container for all the [`ResourceMetering`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum ResourceMeteringCalls { + #[allow(missing_docs)] + params(paramsCall), + } + impl ResourceMeteringCalls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[[207u8, 240u8, 171u8, 150u8]]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[::core::stringify!(params)]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for ResourceMeteringCalls { + const NAME: &'static str = "ResourceMeteringCalls"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 1usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::params(_) => ::SELECTOR, + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn params( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(ResourceMeteringCalls::params) + } + params + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn params( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(ResourceMeteringCalls::params) + } + params + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::params(inner) => { + ::abi_encoded_size(inner) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::params(inner) => { + ::abi_encode_raw(inner, out) + } + } + } + } + ///Container for all the [`ResourceMetering`](self) custom errors. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum ResourceMeteringErrors { + #[allow(missing_docs)] + OutOfGas(OutOfGas), + } + impl ResourceMeteringErrors { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[[119u8, 235u8, 239u8, 77u8]]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(OutOfGas), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for ResourceMeteringErrors { + const NAME: &'static str = "ResourceMeteringErrors"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 1usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::OutOfGas(_) => ::SELECTOR, + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn OutOfGas( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(ResourceMeteringErrors::OutOfGas) + } + OutOfGas + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn OutOfGas( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(ResourceMeteringErrors::OutOfGas) + } + OutOfGas + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::OutOfGas(inner) => { + ::abi_encoded_size(inner) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::OutOfGas(inner) => { + ::abi_encode_raw(inner, out) + } + } + } + } + ///Container for all the [`ResourceMetering`](self) events. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum ResourceMeteringEvents { + #[allow(missing_docs)] + Initialized(Initialized), + } + impl ResourceMeteringEvents { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 32usize]] = &[ + [ + 127u8, 38u8, 184u8, 63u8, 249u8, 110u8, 31u8, 43u8, 106u8, 104u8, 47u8, + 19u8, 56u8, 82u8, 246u8, 121u8, 138u8, 9u8, 196u8, 101u8, 218u8, 149u8, + 146u8, 20u8, 96u8, 206u8, 251u8, 56u8, 71u8, 64u8, 36u8, 152u8, + ], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(Initialized), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolEventInterface for ResourceMeteringEvents { + const NAME: &'static str = "ResourceMeteringEvents"; + const COUNT: usize = 1usize; + fn decode_raw_log( + topics: &[alloy_sol_types::Word], + data: &[u8], + ) -> alloy_sol_types::Result { + match topics.first().copied() { + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::Initialized) + } + _ => { + alloy_sol_types::private::Err(alloy_sol_types::Error::InvalidLog { + name: ::NAME, + log: alloy_sol_types::private::Box::new( + alloy_sol_types::private::LogData::new_unchecked( + topics.to_vec(), + data.to_vec().into(), + ), + ), + }) + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for ResourceMeteringEvents { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + match self { + Self::Initialized(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + } + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + match self { + Self::Initialized(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`ResourceMetering`](self) contract instance. + +See the [wrapper's documentation](`ResourceMeteringInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> ResourceMeteringInstance { + ResourceMeteringInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + ResourceMeteringInstance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + ResourceMeteringInstance::::deploy_builder(__provider) + } + /**A [`ResourceMetering`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`ResourceMetering`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct ResourceMeteringInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for ResourceMeteringInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("ResourceMeteringInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > ResourceMeteringInstance { + /**Creates a new wrapper around an on-chain [`ResourceMetering`](self) contract instance. + +See the [wrapper's documentation](`ResourceMeteringInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl ResourceMeteringInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> ResourceMeteringInstance { + ResourceMeteringInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > ResourceMeteringInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`params`] function. + pub fn params(&self) -> alloy_contract::SolCallBuilder<&P, paramsCall, N> { + self.call_builder(¶msCall) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > ResourceMeteringInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + ///Creates a new event filter for the [`Initialized`] event. + pub fn Initialized_filter(&self) -> alloy_contract::Event<&P, Initialized, N> { + self.event_filter::() + } + } +} diff --git a/bindings/rust/src/riscv.rs b/bindings/rust/src/riscv.rs new file mode 100644 index 000000000..a10b0beda --- /dev/null +++ b/bindings/rust/src/riscv.rs @@ -0,0 +1,1050 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface RISCV { + constructor(address _oracle); + + function oracle() external view returns (address); + function step(bytes memory _stateData, bytes memory _proof, bytes32 _localContext) external returns (bytes32); + function version() external view returns (string memory); +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "constructor", + "inputs": [ + { + "name": "_oracle", + "type": "address", + "internalType": "contract IPreimageOracle" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "oracle", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract IPreimageOracle" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "step", + "inputs": [ + { + "name": "_stateData", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "_proof", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "_localContext", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "outputs": [ + { + "name": "", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "version", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "view" + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod RISCV { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x6080604052348015600e575f80fd5b506040516122b83803806122b8833981016040819052602b91604e565b5f80546001600160a01b0319166001600160a01b03929092169190911790556079565b5f60208284031215605d575f80fd5b81516001600160a01b03811681146072575f80fd5b9392505050565b612232806100865f395ff3fe608060405234801561000f575f80fd5b506004361061003f575f3560e01c806354fd4d50146100435780637dc0d1d014610095578063e14ced32146100d9575b5f80fd5b61007f6040518060400160405280600a81526020017f312e322e302d72632e310000000000000000000000000000000000000000000081525081565b60405161008c9190612126565b60405180910390f35b5f546100b49073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161008c565b6100ec6100e73660046121b7565b6100fa565b60405190815260200161008c565b5f610329565b805f5260205ffd5b5f67ffffffffffffffff61011a565b90565b909116919050565b5f61013c601f61013763ffffffff5b856102c0565b610158565b92915050565b5f600160405b1b905090565b5f6001603f610148565b5f6001831b8216801561017b5767ffffffffffffffff841c841b83179150610194565b61019167ffffffffffffffff85603f031c841690565b91505b5092915050565b5f6101a461014e565b821680156101d6577fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000831791506101da565b8291505b50919050565b5f6101f36101ec610142565b8484010690565b9392505050565b5f6101f3610206610142565b8484030690565b5f6101f3838302610108565b5f6101f3838304610108565b5f6101f36102328461019b565b61023b8461019b565b05610108565b5f8282066101f3565b5f6101f36102578461019b565b6102608461019b565b07610108565b5f61013c8219610108565b5f8282106101f3565b5f8282116101f3565b5f6101f36102908461019b565b6102998461019b565b1290565b5f6101f36102aa8461019b565b6102b38461019b565b1390565b5f8183146101f3565b5f8183166101f3565b5f8183176101f3565b5f8183186101f3565b5f6101f383831b610108565b5f82821c6101f3565b5f6101f36102fd8461019b565b831d610108565b60208110156101da5760ff83168260081b1791508260081c9250600181019050610304565b608060405114610337575f80fd5b60848614610343575f80fd5b61016a602087033514610354575f80fd5b6101a086018414610363575f80fd5b6102248414610370575f80fd5b610780610204350615610381575f80fd5b6101ea60405261016a86608037611311565b5f61039f601f8361027a565b156103b0576103b062bad4e9610100565b6103ca6103be60088461020d565b606a6101e0565b6101e0565b608081015160c01c6101f3565b806103e0575050565b6103ec601f5b8261027a565b156103fd576103fd62bad4e9610100565b61040b6103be60088361020d565b60808101805177ffffffffffffffffffffffffffffffffffffffffffffffff1660c085901b179052505050565b505050565b5f61044a60d15160f81c90565b6001811461045a57600391505090565b60d05160f81c8015610477576001811461047f5760029250505090565b5f9250505090565b60019250505090565b61016a6080a061016a60802061049c61043d565b60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff919091161790565b5f61013c600b6101378460146102e7565b6102e7565b5f61013c600b6101376104fb601f6104f68760076102e7565b6102c0565b6105156105098760196102e7565b60056102db565b6102db565b6102c9565b5f61013c600c61013761055561053b61053487601f6102e7565b600c6102db565b61051561054e60016104f68a60076102e7565b600b6102db565b61051561056b610509603f6104f68a60196102e7565b61051561057e600f6104f68b60086102e7565b60016102db565b5f61013c601361013784600c6102e7565b5f61013c60136101376105ca6105b76105b087601f6102e7565b60136102db565b61051561054e60ff6104f68a600c6102e7565b6105156105e76105e060016104f68a60146102e7565b600a6102db565b6105156103ff6104f68a60156102e7565b5f61013c607f5b836102c0565b5f61013c601f6104f68460076102e7565b5f61013c60076104f684600c6102e7565b5f61013c601f6104f684600f6102e7565b5f61013c601f6104f68460146102e7565b5f61013c8260196102e7565b5f61066b6020610666603c8561020d565b61020d565b905061013c6102245b826101e0565b5f610685601f6105ff565b156106975761069763bad10ad0610100565b6106a083610655565b80356106ae60205b836101e0565b91506106bb8460056102e7565b815f5b603b8110156107265784356106d46020876101e0565b95506106e560016104f686856102e7565b80156106f8576001811461070c5761071c565b5f848152602083905260409020935061071c565b5f82815260208590526040902093505b50506001016106be565b5060805193508381146107405761074063badf00d1610100565b509095945050505050565b610757601f5b826102c0565b156107695761076963bad10ad0610100565b61077283610655565b8261077d60206106a8565b915061078a8360056102e7565b5f5b603b8110156107f45783356107a26020866101e0565b94506107b360016104f685856102e7565b80156107c657600181146107da576107ea565b5f85815260208390526040902094506107ea565b5f82815260208690526040902094505b505060010161078c565b50506107ff81608052565b5050505050565b5f600883111561081d5761081d63bad512e0610100565b61082f6105ff601f610266565b610266565b61083c610117878361067a565b61084682856101fa565b5f610868610854601f610266565b6104f661086260018b6101fa565b896101e0565b61087a8861087585602082565b6101fa565b5f61088c61088884896102b7565b1590565b156108c85760ff8d036108a6576108a663bad22220610100565b6108b36101178e8561067a565b93505f91506108c58a61087587604082565b90505b889450899250856108dd6101178460036102db565b1c9550836108ef6101178360036102db565b1c935050505f5b8181101561097c5761091e61090b601f610266565b6104f6836108756001610875888b6101e0565b5f61092988836102b7565b6001811461093c57801561094c57610958565b600888901c9760ff169150610958565b600886901c9560ff1691505b5061097061096582610108565b6105158b60086102db565b985050506001016108f6565b5088156109a25761099360016108758360036102db565b945061099f8587610158565b95505b505050505095945050505050565b5f805f80846109bf87876101e0565b5f5b6040811015610a8557806109d6602082610271565b80600181146109ea5780156109fb57610a08565b8760081b97508960081b9950610a08565b8660081b96508860081b98505b50610a29610a168584610271565b6104f65f610a248987610271565b6102b7565b15610a7b5760ff8c610a48610117610a418e876101fa565b60036102db565b1c168160018114610a5e578015610a6d57610a78565b9781179760ff8b179a50610a78565b9681179660ff8a1799505b50505b50506001016109c1565b50505093509350935093565b6020821115610aa757610aa763bad512e1610100565b610ab4610751601f610266565b610ad5610ac1601f610266565b6104f6610acf6001876101fa565b856101e0565b610adf82846101fa565b610aea8686836109b0565b9350610af96101178b8861067a565b8319168117610b098b828961074b565b5050610b1584866102b7565b15610b265750505050505050505050565b60ff8a03610b3b57610b3b63bad22221610100565b610b486101178b8661067a565b9019169091179250610b63905087610b5d8490565b8361074b565b50505050505050565b6008821115610b8257610b8263bad512e8610100565b6107ff8585858585610a91565b5f610b9a601f6105ff565b610ba58160206101fa565b610baf818661027a565b15610bb8578094505b50610bd06101176001610bcb84876101fa565b61067a565b80610bdf6101178460036102db565b1b905080610bf4610117610a418860206101fa565b1c90508460031b9150610c0660a05190565b821b8117610c138160a052565b505050610c47610c205f90565b60c0805177ffffffffffffffffffffffffffffffffffffffffffffffff1682821b17905250565b5090919050565b5f80805460405163e03110e160e01b815284600482015285602482015260405f6044835f865af19150508015610c8d575f519250602051915050610c9b565b50610c9b63badf00d0610100565b9250929050565b5f610cac60a05190565b60c08051901c8160f81c60018103610d1957604080515f858152336020528983526060902091527effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f01000000000000000000000000000000000000000000000000000000000000001792505b50610d248183610c4e565b925082610d36575f93505050506101f3565b610d42601f5b866102c0565b610d4d8160206101fa565b610d57818961027a565b15610d60578097505b50610d6b848861027a565b15610d74578396505b85935086610d86610a418260206101fa565b6001901b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0119610dbb6101178460036102db565b93841c931c610dca82866101e0565b9450610df78560c0805177ffffffffffffffffffffffffffffffffffffffffffffffff1682821b17905250565b819650610e096001610bcb85896101fa565b848216911916179350610e299050600184610e2484886101fa565b61074b565b505050509392505050565b610e3e6011610393565b80605d8114610ec957605e8114610ec95760d68114610f595760de8114610f7a57603f811461106757604081146110e3576019811461113c576038811461124d57607181146112685760dc81146112995760a381146112a3576101058114611304576101a68114611304576065811461130457610ebd5f5b600a6103d7565b6104385f5b600b6103d7565b610ed3600a610393565b610f0a60ff821660d080517effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1660f883901b17905250565b5061043860d180517effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f0100000000000000000000000000000000000000000000000000000000000000179052565b610f656001601e6102db565b610f7081600a6103d7565b506104385f610ec2565b610f84600a610393565b610f8e600b610393565b610f98600d610393565b610fa2600e610393565b5f67ffffffffffffffff8214156020841615176001811461103657858061103057610fd0610fff5b876102c0565b8015610fee57610feb610fe5826110006101fa565b886101e0565b96505b5060da5160c01c80975061102e61100588836101e0565b60da805177ffffffffffffffffffffffffffffffffffffffffffffffff1660c083901b17905250565b505b50611046565b67ffffffffffffffff9550604d91505b5061105285600a6103d7565b61105d81600b6103d7565b5050505050505050565b611071600a610393565b61107b600b610393565b611085600c610393565b5f808480156110b457600381146110bd57600581146110c65767ffffffffffffffff5b9250604d5b91506110d7565b5f92505f6110ad565b8392505f6110ad565b6110d1898587610ca2565b92505f91505b5061105282600a6103d7565b6110ed600a610393565b6110f7600b610393565b611101600c610393565b5f8084600181146110bd57600281146110bd57600481146110bd57600681146111325767ffffffffffffffff6110a8565b6110d18486610b8f565b611146600a610393565b611150600b610393565b5f80826001811461117757600381146111d45767ffffffffffffffff925060169150611236565b8480156111c257600181146111c257600281146111c257600381146111c257600481146111c257600581146111c257600681146111ca5767ffffffffffffffff9350604d92506111ce565b5f93506111ce565b5f93505b50611236565b84801561121f57600181146112285760028114611228576003811461121f5760048114611228576005811461121f576006811461122f5767ffffffffffffffff9350604d9250611234565b5f5b9350611234565b6001611221565b600193505b505b5061124282600a6103d7565b610b6381600b6103d7565b61125e67ffffffffffffffff610eb6565b610438600d610ec2565b611272600b610393565b682a000000000000053961128d600260018360105b86610a91565b5050610ebd610eb65f90565b610ebd6001610eb6565b6112ad600a610393565b6112b7600b610393565b81600781146112d1576112cc620f0012610100565b6112fc565b6112ea6002600169040000000000000004006010611287565b6112f35f610eb6565b6112fc5f610ec2565b505050505050565b61043863f001ca11610100565b60d15160f81c1561132b57611324610488565b5f5260205ff35b61136861133f60016103c560d25160c01c90565b60d2805177ffffffffffffffffffffffffffffffffffffffffffffffff1660c083901b17905250565b60c85160c01c61137d60ff5f80600485610806565b611386816105f8565b61138f82610605565b61139883610616565b6113a184610627565b6113aa85610638565b6113b386610649565b856003811461144e576023811461150a5760638114611561576013811461168c57601b81146117c257603381146118cc57603b8114611afe5760378114611d1a5760178114611d4857606f8114611d645760678114611de05760738114611e3b57602f8114611ea057600f81146120fb57600781146120fb57602781146120fb57605381146121085761144963f001c0de610100565b612115565b8861145a6007876102b7565b1561146c5761146c630badc0de610100565b611475896104c7565b61148461088860045b896102c0565b611495600161051060035b8b6102c0565b61149e88610393565b6114ad610674600b5b86610158565b9350506114bf60026001848487610806565b925050506114cd81896103d7565b506115046114db60046106a8565b60c8805177ffffffffffffffffffffffffffffffffffffffffffffffff1660c083901b17905250565b50612115565b88611514896104dd565b61151f6001886102db565b61152886610393565b61153188610393565b61153e610674600b6114a7565b93505061155060026001838587610b6c565b5050506115046114db6106a8600490565b61156a84610393565b61157384610393565b5f8780156115a857600181146115b957600481146115cb57600581146115d557600681146115e757600781146115f157611606565b6115b283856102b7565b9150611606565b6115b260016104f661082a86886102b7565b6115b28385610283565b6115b260016104f661082a8688610283565b6115b28385610271565b61160360016104f661082a8688610271565b91505b5080801561162a576116178c61051a565b9350611623848e6101e0565b9c50611638565b61163560048e6101e0565b9c505b5050505061164d611647600390565b8a6102c0565b1561165f5761165f63bad10ad0610100565b6114498960c8805177ffffffffffffffffffffffffffffffffffffffffffffffff1660c083901b17905250565b61169584610393565b61169e896104c7565b5f8780156116f05760018114611701576002811461170f57600381146117195760048114611723576005811461172d57600681146117895760078114611793576116eb630badc0de610100565b6117a0565b6116fa83856101e0565b91506117a0565b6116fa84610510603f610d3c565b6116fa8385610283565b6116fa8385610271565b6116fa83856102d2565b6117388360066102e7565b8015611758576010811461176d57611753630badc0de610100565b611783565b611766856104d8603f610fca565b9250611783565b6117808561177b603f610fca565b6102f0565b92505b506117a0565b6116fa83856102c9565b61179d83856102c0565b91505b506117ab818a6103d7565b5050506114496114db6117bc600490565b8b6101e0565b6117cb84610393565b6117d4896104c7565b5f8780156117f9576001811461180b576005811461183a576116eb630badc0de610100565b6116fa61180684866101e0565b610122565b61181760205b846102c0565b1561182957611829630badc0de610100565b6116fa61180685610510601f610fca565b6118446020611811565b1561185657611856630badc0de610100565b611860601f611811565b61186b8460056102e7565b801561188b57602081146118ae57611886630badc0de610100565b6118bf565b6118a7601f5b6101376118a163ffffffff611647565b856102e7565b93506118bf565b6118bc61189183601f6101fa565b93505b5050506117ab818a6103d7565b6118d584610393565b6118de84610393565b5f84600181146119f357888015611934576001811461197957600281146119875760038114611991576004811461199b57600581146119a557600681146119df57600781146119e957611753630badc0de610100565b868015611955576020811461196657611950630badc0de610100565b611973565b61195f85876101e0565b9350611973565b61197085876101fa565b93505b50611783565b61176685610510603f610fca565b6117668486610283565b6117668486610271565b61176684866102d2565b8680156119c157602081146119d157611950630badc0de610100565b61195f866104d8603f5b886102c0565b6119708661177b603f6119cb565b61176684866102c9565b61178084866102c0565b888015611a445760018114611a555760028114611a735760038114611a7c5760048114611a865760058114611ab15760068114611ac25760078114611adc57611a3f630badc0de610100565b611af2565b611a4e848661020d565b9250611af2565b611a4e611a618561019b565b611a6a8761019b565b0260401c610108565b611a4e84611a61565b611a4e8486611a6a565b838015611a9e57611a978587610225565b9350611aab565b67ffffffffffffffff5b93505b50611af2565b838015611a9e57611a978587610219565b838015611ad357611a97858761024a565b85935050611af2565b838015611aed576118a78587610241565b859350505b50506117ab818a6103d7565b611b0784610393565b611b1863ffffffff6104f686610393565b5f8460018114611c1457888015611b465760018114611ba25760058114611bb357611753630badc0de610100565b868015611b625760208114611b8257611950630badc0de610100565b61195f611806611b7563ffffffff6119cb565b6103c563ffffffff611647565b611970611806611b9563ffffffff6119cb565b61087563ffffffff611647565b61176661180686610510601f6119cb565b611bbd601f610131565b878015611bde5760208114611bfb57611bd9630badc0de610100565b611c0c565b611bf4601f5b6101376118a163ffffffff61148f565b9450611c0c565b611c09611be483601f6101fa565b94505b5050506117a0565b888015611c485760048114611c685760058114611c8c5760068114611cb85760078114611ce557611a3f630badc0de610100565b611a4e611806611c5b63ffffffff610fca565b61066663ffffffff61147e565b838015611a9e57611a97611806611c7e87610122565b611c8789610122565b610225565b838015611a9e57611a97611806611ca663ffffffff6119cb565b611cb363ffffffff611647565b610219565b838015611cdc57611a97611806611cce87610122565b611cd789610122565b61024a565b611aa886610122565b838015611d11576118a7611806611cff63ffffffff6119cb565b611d0c63ffffffff611647565b610241565b6118bc86610122565b611d2388610585565b611d2e81600c6102db565b9050611d3a81886103d7565b506114496114db60046117bc565b611d5188610585565b611d2e6117bc601f61013784600c6102db565b611d6d88610596565b611d7760046117bc565b611d8181896103d7565b50611d956117bc60146101378460016102db565b9050611da16003610751565b15611db357611db363bad10ad0610100565b6115048160c8805177ffffffffffffffffffffffffffffffffffffffffffffffff1660c083901b17905250565b611de984610393565b611df2896104c7565b611dfe60045b8c6101e0565b611e08818a6103d7565b50611e2d611e1f600167ffffffffffffffff6102d2565b6104f6610acf600b85610158565b915050611da1610751600390565b848015611e5e57611e4c5f886103d7565b611e596114db6004611df8565b611504565b611e698960146102e7565b8015611e8357611e7e6114db60045b8d6101e0565b611e99565b611e8c8d610e34565b611e996114db6004611e78565b5050612115565b611eab6001866102db565b611eb560086103e6565b611ec0600483610271565b1715611ed257611ed262bada70610100565b611edb85610393565b611ee58282610241565b15611ef757611ef763bad10ad0610100565b611f028460026102e7565b8060028114612038576003811461208457611f1c87610393565b611f276004866102b7565b15611f3857611f3581610122565b90505b611f4760026001808888610806565b80848015611fa15760018114611fb25760048114611fba5760088114611fc457600c8114611fce5760108114611fd85760148114611fef5760188114611ff957601c811461200357611f9c630f001a70610100565b612016565b611fab84846101e0565b9250612016565b839250612016565b611fab84846102d2565b611fab84846102c9565b611fab84846102c0565b611fe28385610283565b15611f9c57839250612016565b611fe2838561029d565b611fe28385610271565b61200d838561027a565b15612016578392505b5061202660036001848a8a610b6c565b612030818e6103d7565b5050506120e9565b61204760026001808787610806565b612051818c6103d7565b5061207f8360e2805177ffffffffffffffffffffffffffffffffffffffffffffffff1660c083901b17905250565b6120e9565b600161209b61209560e25160c01c90565b856102b7565b156120bd576120a988610393565b6120b860026001838989610b6c565b505f90505b6120c7818c6103d7565b5060e2805177ffffffffffffffffffffffffffffffffffffffffffffffff1690525b505050506114496114db6117bc600490565b6114496114db60046117bc565b6121156114db60046117bc565b505050505050505050611324610488565b602081525f82518060208401528060208501604085015e5f6040828501015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011684010191505092915050565b5f8083601f840112612189575f80fd5b50813567ffffffffffffffff8111156121a0575f80fd5b602083019150836020828501011115610c9b575f80fd5b5f805f805f606086880312156121cb575f80fd5b853567ffffffffffffffff808211156121e2575f80fd5b6121ee89838a01612179565b90975095506020880135915080821115612206575f80fd5b5061221388828901612179565b9699959850966040013594935050505056fea164736f6c6343000819000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R4\x80\x15`\x0EW_\x80\xFD[P`@Qa\"\xB88\x03\x80a\"\xB8\x839\x81\x01`@\x81\x90R`+\x91`NV[_\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x92\x90\x92\x16\x91\x90\x91\x17\x90U`yV[_` \x82\x84\x03\x12\x15`]W_\x80\xFD[\x81Q`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14`rW_\x80\xFD[\x93\x92PPPV[a\"2\x80a\0\x86_9_\xF3\xFE`\x80`@R4\x80\x15a\0\x0FW_\x80\xFD[P`\x046\x10a\0?W_5`\xE0\x1C\x80cT\xFDMP\x14a\0CW\x80c}\xC0\xD1\xD0\x14a\0\x95W\x80c\xE1L\xED2\x14a\0\xD9W[_\x80\xFD[a\0\x7F`@Q\x80`@\x01`@R\x80`\n\x81R` \x01\x7F1.2.0-rc.1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RP\x81V[`@Qa\0\x8C\x91\x90a!&V[`@Q\x80\x91\x03\x90\xF3[_Ta\0\xB4\x90s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01a\0\x8CV[a\0\xECa\0\xE76`\x04a!\xB7V[a\0\xFAV[`@Q\x90\x81R` \x01a\0\x8CV[_a\x03)V[\x80_R` _\xFD[_g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFFa\x01\x1AV[\x90V[\x90\x91\x16\x91\x90PV[_a\x01<`\x1Fa\x017c\xFF\xFF\xFF\xFF[\x85a\x02\xC0V[a\x01XV[\x92\x91PPV[_`\x01`@[\x1B\x90P\x90V[_`\x01`?a\x01HV[_`\x01\x83\x1B\x82\x16\x80\x15a\x01{Wg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x1C\x84\x1B\x83\x17\x91Pa\x01\x94V[a\x01\x91g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x85`?\x03\x1C\x84\x16\x90V[\x91P[P\x92\x91PPV[_a\x01\xA4a\x01NV[\x82\x16\x80\x15a\x01\xD6W\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\x83\x17\x91Pa\x01\xDAV[\x82\x91P[P\x91\x90PV[_a\x01\xF3a\x01\xECa\x01BV[\x84\x84\x01\x06\x90V[\x93\x92PPPV[_a\x01\xF3a\x02\x06a\x01BV[\x84\x84\x03\x06\x90V[_a\x01\xF3\x83\x83\x02a\x01\x08V[_a\x01\xF3\x83\x83\x04a\x01\x08V[_a\x01\xF3a\x022\x84a\x01\x9BV[a\x02;\x84a\x01\x9BV[\x05a\x01\x08V[_\x82\x82\x06a\x01\xF3V[_a\x01\xF3a\x02W\x84a\x01\x9BV[a\x02`\x84a\x01\x9BV[\x07a\x01\x08V[_a\x01<\x82\x19a\x01\x08V[_\x82\x82\x10a\x01\xF3V[_\x82\x82\x11a\x01\xF3V[_a\x01\xF3a\x02\x90\x84a\x01\x9BV[a\x02\x99\x84a\x01\x9BV[\x12\x90V[_a\x01\xF3a\x02\xAA\x84a\x01\x9BV[a\x02\xB3\x84a\x01\x9BV[\x13\x90V[_\x81\x83\x14a\x01\xF3V[_\x81\x83\x16a\x01\xF3V[_\x81\x83\x17a\x01\xF3V[_\x81\x83\x18a\x01\xF3V[_a\x01\xF3\x83\x83\x1Ba\x01\x08V[_\x82\x82\x1Ca\x01\xF3V[_a\x01\xF3a\x02\xFD\x84a\x01\x9BV[\x83\x1Da\x01\x08V[` \x81\x10\x15a\x01\xDAW`\xFF\x83\x16\x82`\x08\x1B\x17\x91P\x82`\x08\x1C\x92P`\x01\x81\x01\x90Pa\x03\x04V[`\x80`@Q\x14a\x037W_\x80\xFD[`\x84\x86\x14a\x03CW_\x80\xFD[a\x01j` \x87\x035\x14a\x03TW_\x80\xFD[a\x01\xA0\x86\x01\x84\x14a\x03cW_\x80\xFD[a\x02$\x84\x14a\x03pW_\x80\xFD[a\x07\x80a\x02\x045\x06\x15a\x03\x81W_\x80\xFD[a\x01\xEA`@Ra\x01j\x86`\x807a\x13\x11V[_a\x03\x9F`\x1F\x83a\x02zV[\x15a\x03\xB0Wa\x03\xB0b\xBA\xD4\xE9a\x01\0V[a\x03\xCAa\x03\xBE`\x08\x84a\x02\rV[`ja\x01\xE0V[a\x01\xE0V[`\x80\x81\x01Q`\xC0\x1Ca\x01\xF3V[\x80a\x03\xE0WPPV[a\x03\xEC`\x1F[\x82a\x02zV[\x15a\x03\xFDWa\x03\xFDb\xBA\xD4\xE9a\x01\0V[a\x04\x0Ba\x03\xBE`\x08\x83a\x02\rV[`\x80\x81\x01\x80Qw\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\xC0\x85\x90\x1B\x17\x90RPPPV[PPPV[_a\x04J`\xD1Q`\xF8\x1C\x90V[`\x01\x81\x14a\x04ZW`\x03\x91PP\x90V[`\xD0Q`\xF8\x1C\x80\x15a\x04wW`\x01\x81\x14a\x04\x7FW`\x02\x92PPP\x90V[_\x92PPP\x90V[`\x01\x92PPP\x90V[a\x01j`\x80\xA0a\x01j`\x80 a\x04\x9Ca\x04=V[`\xF8\x1B~\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x91\x90\x91\x16\x17\x90V[_a\x01<`\x0Ba\x017\x84`\x14a\x02\xE7V[a\x02\xE7V[_a\x01<`\x0Ba\x017a\x04\xFB`\x1Fa\x04\xF6\x87`\x07a\x02\xE7V[a\x02\xC0V[a\x05\x15a\x05\t\x87`\x19a\x02\xE7V[`\x05a\x02\xDBV[a\x02\xDBV[a\x02\xC9V[_a\x01<`\x0Ca\x017a\x05Ua\x05;a\x054\x87`\x1Fa\x02\xE7V[`\x0Ca\x02\xDBV[a\x05\x15a\x05N`\x01a\x04\xF6\x8A`\x07a\x02\xE7V[`\x0Ba\x02\xDBV[a\x05\x15a\x05ka\x05\t`?a\x04\xF6\x8A`\x19a\x02\xE7V[a\x05\x15a\x05~`\x0Fa\x04\xF6\x8B`\x08a\x02\xE7V[`\x01a\x02\xDBV[_a\x01<`\x13a\x017\x84`\x0Ca\x02\xE7V[_a\x01<`\x13a\x017a\x05\xCAa\x05\xB7a\x05\xB0\x87`\x1Fa\x02\xE7V[`\x13a\x02\xDBV[a\x05\x15a\x05N`\xFFa\x04\xF6\x8A`\x0Ca\x02\xE7V[a\x05\x15a\x05\xE7a\x05\xE0`\x01a\x04\xF6\x8A`\x14a\x02\xE7V[`\na\x02\xDBV[a\x05\x15a\x03\xFFa\x04\xF6\x8A`\x15a\x02\xE7V[_a\x01<`\x7F[\x83a\x02\xC0V[_a\x01<`\x1Fa\x04\xF6\x84`\x07a\x02\xE7V[_a\x01<`\x07a\x04\xF6\x84`\x0Ca\x02\xE7V[_a\x01<`\x1Fa\x04\xF6\x84`\x0Fa\x02\xE7V[_a\x01<`\x1Fa\x04\xF6\x84`\x14a\x02\xE7V[_a\x01<\x82`\x19a\x02\xE7V[_a\x06k` a\x06f`<\x85a\x02\rV[a\x02\rV[\x90Pa\x01`\x11a\x03\x93V[\x80`]\x81\x14a\x0E\xC9W`^\x81\x14a\x0E\xC9W`\xD6\x81\x14a\x0FYW`\xDE\x81\x14a\x0FzW`?\x81\x14a\x10gW`@\x81\x14a\x10\xE3W`\x19\x81\x14a\x11a\x06t`\x0Ba\x14\xA7V[\x93PPa\x15P`\x02`\x01\x83\x85\x87a\x0BlV[PPPa\x15\x04a\x14\xDBa\x06\xA8`\x04\x90V[a\x15j\x84a\x03\x93V[a\x15s\x84a\x03\x93V[_\x87\x80\x15a\x15\xA8W`\x01\x81\x14a\x15\xB9W`\x04\x81\x14a\x15\xCBW`\x05\x81\x14a\x15\xD5W`\x06\x81\x14a\x15\xE7W`\x07\x81\x14a\x15\xF1Wa\x16\x06V[a\x15\xB2\x83\x85a\x02\xB7V[\x91Pa\x16\x06V[a\x15\xB2`\x01a\x04\xF6a\x08*\x86\x88a\x02\xB7V[a\x15\xB2\x83\x85a\x02\x83V[a\x15\xB2`\x01a\x04\xF6a\x08*\x86\x88a\x02\x83V[a\x15\xB2\x83\x85a\x02qV[a\x16\x03`\x01a\x04\xF6a\x08*\x86\x88a\x02qV[\x91P[P\x80\x80\x15a\x16*Wa\x16\x17\x8Ca\x05\x1AV[\x93Pa\x16#\x84\x8Ea\x01\xE0V[\x9CPa\x168V[a\x165`\x04\x8Ea\x01\xE0V[\x9CP[PPPPa\x16Ma\x16G`\x03\x90V[\x8Aa\x02\xC0V[\x15a\x16_Wa\x16_c\xBA\xD1\n\xD0a\x01\0V[a\x14I\x89`\xC8\x80Qw\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\xC0\x83\x90\x1B\x17\x90RPV[a\x16\x95\x84a\x03\x93V[a\x16\x9E\x89a\x04\xC7V[_\x87\x80\x15a\x16\xF0W`\x01\x81\x14a\x17\x01W`\x02\x81\x14a\x17\x0FW`\x03\x81\x14a\x17\x19W`\x04\x81\x14a\x17#W`\x05\x81\x14a\x17-W`\x06\x81\x14a\x17\x89W`\x07\x81\x14a\x17\x93Wa\x16\xEBc\x0B\xAD\xC0\xDEa\x01\0V[a\x17\xA0V[a\x16\xFA\x83\x85a\x01\xE0V[\x91Pa\x17\xA0V[a\x16\xFA\x84a\x05\x10`?a\r`\x11a\x03\x93V[\x80`]\x81\x14a\x0E\xC9W`^\x81\x14a\x0E\xC9W`\xD6\x81\x14a\x0FYW`\xDE\x81\x14a\x0FzW`?\x81\x14a\x10gW`@\x81\x14a\x10\xE3W`\x19\x81\x14a\x11a\x06t`\x0Ba\x14\xA7V[\x93PPa\x15P`\x02`\x01\x83\x85\x87a\x0BlV[PPPa\x15\x04a\x14\xDBa\x06\xA8`\x04\x90V[a\x15j\x84a\x03\x93V[a\x15s\x84a\x03\x93V[_\x87\x80\x15a\x15\xA8W`\x01\x81\x14a\x15\xB9W`\x04\x81\x14a\x15\xCBW`\x05\x81\x14a\x15\xD5W`\x06\x81\x14a\x15\xE7W`\x07\x81\x14a\x15\xF1Wa\x16\x06V[a\x15\xB2\x83\x85a\x02\xB7V[\x91Pa\x16\x06V[a\x15\xB2`\x01a\x04\xF6a\x08*\x86\x88a\x02\xB7V[a\x15\xB2\x83\x85a\x02\x83V[a\x15\xB2`\x01a\x04\xF6a\x08*\x86\x88a\x02\x83V[a\x15\xB2\x83\x85a\x02qV[a\x16\x03`\x01a\x04\xF6a\x08*\x86\x88a\x02qV[\x91P[P\x80\x80\x15a\x16*Wa\x16\x17\x8Ca\x05\x1AV[\x93Pa\x16#\x84\x8Ea\x01\xE0V[\x9CPa\x168V[a\x165`\x04\x8Ea\x01\xE0V[\x9CP[PPPPa\x16Ma\x16G`\x03\x90V[\x8Aa\x02\xC0V[\x15a\x16_Wa\x16_c\xBA\xD1\n\xD0a\x01\0V[a\x14I\x89`\xC8\x80Qw\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\xC0\x83\x90\x1B\x17\x90RPV[a\x16\x95\x84a\x03\x93V[a\x16\x9E\x89a\x04\xC7V[_\x87\x80\x15a\x16\xF0W`\x01\x81\x14a\x17\x01W`\x02\x81\x14a\x17\x0FW`\x03\x81\x14a\x17\x19W`\x04\x81\x14a\x17#W`\x05\x81\x14a\x17-W`\x06\x81\x14a\x17\x89W`\x07\x81\x14a\x17\x93Wa\x16\xEBc\x0B\xAD\xC0\xDEa\x01\0V[a\x17\xA0V[a\x16\xFA\x83\x85a\x01\xE0V[\x91Pa\x17\xA0V[a\x16\xFA\x84a\x05\x10`?a\r = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: constructorCall) -> Self { + (value._oracle,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for constructorCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _oracle: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolConstructor for constructorCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._oracle, + ), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `oracle()` and selector `0x7dc0d1d0`. +```solidity +function oracle() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct oracleCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`oracle()`](oracleCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct oracleReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: oracleCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for oracleCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: oracleReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for oracleReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for oracleCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "oracle()"; + const SELECTOR: [u8; 4] = [125u8, 192u8, 209u8, 208u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: oracleReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: oracleReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `step(bytes,bytes,bytes32)` and selector `0xe14ced32`. +```solidity +function step(bytes memory _stateData, bytes memory _proof, bytes32 _localContext) external returns (bytes32); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct stepCall { + #[allow(missing_docs)] + pub _stateData: alloy::sol_types::private::Bytes, + #[allow(missing_docs)] + pub _proof: alloy::sol_types::private::Bytes, + #[allow(missing_docs)] + pub _localContext: alloy::sol_types::private::FixedBytes<32>, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`step(bytes,bytes,bytes32)`](stepCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct stepReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Bytes, + alloy::sol_types::sol_data::Bytes, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Bytes, + alloy::sol_types::private::Bytes, + alloy::sol_types::private::FixedBytes<32>, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: stepCall) -> Self { + (value._stateData, value._proof, value._localContext) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for stepCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _stateData: tuple.0, + _proof: tuple.1, + _localContext: tuple.2, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: stepReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for stepReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for stepCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Bytes, + alloy::sol_types::sol_data::Bytes, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::FixedBytes<32>; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "step(bytes,bytes,bytes32)"; + const SELECTOR: [u8; 4] = [225u8, 76u8, 237u8, 50u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._stateData, + ), + ::tokenize( + &self._proof, + ), + as alloy_sol_types::SolType>::tokenize(&self._localContext), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: stepReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: stepReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `version()` and selector `0x54fd4d50`. +```solidity +function version() external view returns (string memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`version()`](versionCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for versionCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::String; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "version()"; + const SELECTOR: [u8; 4] = [84u8, 253u8, 77u8, 80u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + } + }; + ///Container for all the [`RISCV`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum RISCVCalls { + #[allow(missing_docs)] + oracle(oracleCall), + #[allow(missing_docs)] + step(stepCall), + #[allow(missing_docs)] + version(versionCall), + } + impl RISCVCalls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [84u8, 253u8, 77u8, 80u8], + [125u8, 192u8, 209u8, 208u8], + [225u8, 76u8, 237u8, 50u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(version), + ::core::stringify!(oracle), + ::core::stringify!(step), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for RISCVCalls { + const NAME: &'static str = "RISCVCalls"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 3usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::oracle(_) => ::SELECTOR, + Self::step(_) => ::SELECTOR, + Self::version(_) => ::SELECTOR, + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn(&[u8]) -> alloy_sol_types::Result] = &[ + { + fn version(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(RISCVCalls::version) + } + version + }, + { + fn oracle(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(RISCVCalls::oracle) + } + oracle + }, + { + fn step(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(RISCVCalls::step) + } + step + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn version(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(RISCVCalls::version) + } + version + }, + { + fn oracle(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(RISCVCalls::oracle) + } + oracle + }, + { + fn step(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(RISCVCalls::step) + } + step + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::oracle(inner) => { + ::abi_encoded_size(inner) + } + Self::step(inner) => { + ::abi_encoded_size(inner) + } + Self::version(inner) => { + ::abi_encoded_size(inner) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::oracle(inner) => { + ::abi_encode_raw(inner, out) + } + Self::step(inner) => { + ::abi_encode_raw(inner, out) + } + Self::version(inner) => { + ::abi_encode_raw(inner, out) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`RISCV`](self) contract instance. + +See the [wrapper's documentation](`RISCVInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(address: alloy_sol_types::private::Address, __provider: P) -> RISCVInstance { + RISCVInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + _oracle: alloy::sol_types::private::Address, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + RISCVInstance::::deploy(__provider, _oracle) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + _oracle: alloy::sol_types::private::Address, + ) -> alloy_contract::RawCallBuilder { + RISCVInstance::::deploy_builder(__provider, _oracle) + } + /**A [`RISCV`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`RISCV`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct RISCVInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for RISCVInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("RISCVInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > RISCVInstance { + /**Creates a new wrapper around an on-chain [`RISCV`](self) contract instance. + +See the [wrapper's documentation](`RISCVInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + _oracle: alloy::sol_types::private::Address, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider, _oracle); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder( + __provider: P, + _oracle: alloy::sol_types::private::Address, + ) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + [ + &BYTECODE[..], + &alloy_sol_types::SolConstructor::abi_encode( + &constructorCall { _oracle }, + )[..], + ] + .concat() + .into(), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl RISCVInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> RISCVInstance { + RISCVInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > RISCVInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`oracle`] function. + pub fn oracle(&self) -> alloy_contract::SolCallBuilder<&P, oracleCall, N> { + self.call_builder(&oracleCall) + } + ///Creates a new call builder for the [`step`] function. + pub fn step( + &self, + _stateData: alloy::sol_types::private::Bytes, + _proof: alloy::sol_types::private::Bytes, + _localContext: alloy::sol_types::private::FixedBytes<32>, + ) -> alloy_contract::SolCallBuilder<&P, stepCall, N> { + self.call_builder( + &stepCall { + _stateData, + _proof, + _localContext, + }, + ) + } + ///Creates a new call builder for the [`version`] function. + pub fn version(&self) -> alloy_contract::SolCallBuilder<&P, versionCall, N> { + self.call_builder(&versionCall) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > RISCVInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + } +} diff --git a/bindings/rust/src/rlp_errors.rs b/bindings/rust/src/rlp_errors.rs new file mode 100644 index 000000000..e2f2a17ef --- /dev/null +++ b/bindings/rust/src/rlp_errors.rs @@ -0,0 +1,215 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface RLPErrors {} +``` + +...which was generated by the following JSON ABI: +```json +[] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod RLPErrors { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"", + ); + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`RLPErrors`](self) contract instance. + +See the [wrapper's documentation](`RLPErrorsInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> RLPErrorsInstance { + RLPErrorsInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + RLPErrorsInstance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + RLPErrorsInstance::::deploy_builder(__provider) + } + /**A [`RLPErrors`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`RLPErrors`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct RLPErrorsInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for RLPErrorsInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("RLPErrorsInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > RLPErrorsInstance { + /**Creates a new wrapper around an on-chain [`RLPErrors`](self) contract instance. + +See the [wrapper's documentation](`RLPErrorsInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl RLPErrorsInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> RLPErrorsInstance { + RLPErrorsInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > RLPErrorsInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > RLPErrorsInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + } +} diff --git a/bindings/rust/src/rlp_reader.rs b/bindings/rust/src/rlp_reader.rs new file mode 100644 index 000000000..3deceb591 --- /dev/null +++ b/bindings/rust/src/rlp_reader.rs @@ -0,0 +1,215 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface RLPReader {} +``` + +...which was generated by the following JSON ABI: +```json +[] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod RLPReader { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`-`7`\x0B\x82\x82\x829\x80Q`\0\x1A`s\x14`*WcNH{q`\xE0\x1B`\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`\0\x80\xFD\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + 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`\0\x80\xFD\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`RLPReader`](self) contract instance. + +See the [wrapper's documentation](`RLPReaderInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> RLPReaderInstance { + RLPReaderInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + RLPReaderInstance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + RLPReaderInstance::::deploy_builder(__provider) + } + /**A [`RLPReader`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`RLPReader`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct RLPReaderInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for RLPReaderInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("RLPReaderInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > RLPReaderInstance { + /**Creates a new wrapper around an on-chain [`RLPReader`](self) contract instance. + +See the [wrapper's documentation](`RLPReaderInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl RLPReaderInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> RLPReaderInstance { + RLPReaderInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > RLPReaderInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > RLPReaderInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + } +} diff --git a/bindings/rust/src/rlp_writer.rs b/bindings/rust/src/rlp_writer.rs new file mode 100644 index 000000000..44fa8f18c --- /dev/null +++ b/bindings/rust/src/rlp_writer.rs @@ -0,0 +1,215 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface RLPWriter {} +``` + +...which was generated by the following JSON ABI: +```json +[] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod RLPWriter { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`-`7`\x0B\x82\x82\x829\x80Q`\0\x1A`s\x14`*WcNH{q`\xE0\x1B`\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`\0\x80\xFD\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + 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`\0\x80\xFD\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`RLPWriter`](self) contract instance. + +See the [wrapper's documentation](`RLPWriterInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> RLPWriterInstance { + RLPWriterInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + RLPWriterInstance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + RLPWriterInstance::::deploy_builder(__provider) + } + /**A [`RLPWriter`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`RLPWriter`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct RLPWriterInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for RLPWriterInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("RLPWriterInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > RLPWriterInstance { + /**Creates a new wrapper around an on-chain [`RLPWriter`](self) contract instance. + +See the [wrapper's documentation](`RLPWriterInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl RLPWriterInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> RLPWriterInstance { + RLPWriterInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > RLPWriterInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > RLPWriterInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + } +} diff --git a/bindings/rust/src/safe_call.rs b/bindings/rust/src/safe_call.rs new file mode 100644 index 000000000..0abff8588 --- /dev/null +++ b/bindings/rust/src/safe_call.rs @@ -0,0 +1,215 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface SafeCall {} +``` + +...which was generated by the following JSON ABI: +```json +[] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod SafeCall { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`-`7`\x0B\x82\x82\x829\x80Q`\0\x1A`s\x14`*WcNH{q`\xE0\x1B`\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`\0\x80\xFD\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + 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`\0\x80\xFD\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`SafeCall`](self) contract instance. + +See the [wrapper's documentation](`SafeCallInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> SafeCallInstance { + SafeCallInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + SafeCallInstance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + SafeCallInstance::::deploy_builder(__provider) + } + /**A [`SafeCall`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`SafeCall`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct SafeCallInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for SafeCallInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("SafeCallInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > SafeCallInstance { + /**Creates a new wrapper around an on-chain [`SafeCall`](self) contract instance. + +See the [wrapper's documentation](`SafeCallInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl SafeCallInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> SafeCallInstance { + SafeCallInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > SafeCallInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > SafeCallInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + } +} diff --git a/bindings/rust/src/safe_send.rs b/bindings/rust/src/safe_send.rs new file mode 100644 index 000000000..f19f16362 --- /dev/null +++ b/bindings/rust/src/safe_send.rs @@ -0,0 +1,310 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface SafeSend { + constructor(address payable _recipient) payable; +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "constructor", + "inputs": [ + { + "name": "_recipient", + "type": "address", + "internalType": "address payable" + } + ], + "stateMutability": "payable" + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod SafeSend { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x608060405260405160593803806059833981016040819052601e91602a565b806001600160a01b0316ff5b600060208284031215603b57600080fd5b81516001600160a01b0381168114605157600080fd5b939250505056fe + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R`@Q`Y8\x03\x80`Y\x839\x81\x01`@\x81\x90R`\x1E\x91`*V[\x80`\x01`\x01`\xA0\x1B\x03\x16\xFF[`\0` \x82\x84\x03\x12\x15`;W`\0\x80\xFD[\x81Q`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14`QW`\0\x80\xFD[\x93\x92PPPV\xFE", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x6080604052600080fdfea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R`\0\x80\xFD\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + /**Constructor`. +```solidity +constructor(address _recipient) payable; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct constructorCall { + #[allow(missing_docs)] + pub _recipient: alloy::sol_types::private::Address, + } + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: constructorCall) -> Self { + (value._recipient,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for constructorCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _recipient: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolConstructor for constructorCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._recipient, + ), + ) + } + } + }; + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`SafeSend`](self) contract instance. + +See the [wrapper's documentation](`SafeSendInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> SafeSendInstance { + SafeSendInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + _recipient: alloy::sol_types::private::Address, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + SafeSendInstance::::deploy(__provider, _recipient) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + _recipient: alloy::sol_types::private::Address, + ) -> alloy_contract::RawCallBuilder { + SafeSendInstance::::deploy_builder(__provider, _recipient) + } + /**A [`SafeSend`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`SafeSend`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct SafeSendInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for SafeSendInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("SafeSendInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > SafeSendInstance { + /**Creates a new wrapper around an on-chain [`SafeSend`](self) contract instance. + +See the [wrapper's documentation](`SafeSendInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + _recipient: alloy::sol_types::private::Address, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider, _recipient); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder( + __provider: P, + _recipient: alloy::sol_types::private::Address, + ) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + [ + &BYTECODE[..], + &alloy_sol_types::SolConstructor::abi_encode( + &constructorCall { _recipient }, + )[..], + ] + .concat() + .into(), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl SafeSendInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> SafeSendInstance { + SafeSendInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > SafeSendInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > SafeSendInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + } +} diff --git a/bindings/rust/src/safe_signers.rs b/bindings/rust/src/safe_signers.rs new file mode 100644 index 000000000..91e1c984b --- /dev/null +++ b/bindings/rust/src/safe_signers.rs @@ -0,0 +1,215 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface SafeSigners {} +``` + +...which was generated by the following JSON ABI: +```json +[] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod SafeSigners { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`-`7`\x0B\x82\x82\x829\x80Q`\0\x1A`s\x14`*WcNH{q`\xE0\x1B`\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`\0\x80\xFD\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + 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`\0\x80\xFD\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`SafeSigners`](self) contract instance. + +See the [wrapper's documentation](`SafeSignersInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> SafeSignersInstance { + SafeSignersInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + SafeSignersInstance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + SafeSignersInstance::::deploy_builder(__provider) + } + /**A [`SafeSigners`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`SafeSigners`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct SafeSignersInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for SafeSignersInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("SafeSignersInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > SafeSignersInstance { + /**Creates a new wrapper around an on-chain [`SafeSigners`](self) contract instance. + +See the [wrapper's documentation](`SafeSignersInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl SafeSignersInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> SafeSignersInstance { + SafeSignersInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > SafeSignersInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > SafeSignersInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + } +} diff --git a/bindings/rust/src/safer_safes.rs b/bindings/rust/src/safer_safes.rs new file mode 100644 index 000000000..0947dc861 --- /dev/null +++ b/bindings/rust/src/safer_safes.rs @@ -0,0 +1,12350 @@ +///Module containing a contract's types and functions. +/** + +```solidity +library Enum { + type Operation is uint8; +} +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod Enum { + use super::*; + use alloy::sol_types as alloy_sol_types; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct Operation(u8); + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for u8 { + #[inline] + fn stv_to_tokens( + &self, + ) -> as alloy_sol_types::SolType>::Token<'_> { + alloy_sol_types::private::SolTypeValue::< + alloy::sol_types::sol_data::Uint<8>, + >::stv_to_tokens(self) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + as alloy_sol_types::SolType>::tokenize(self) + .0 + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::SolType>::abi_encode_packed_to(self, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + as alloy_sol_types::SolType>::abi_encoded_size(self) + } + } + impl Operation { + /// The Solidity type name. + pub const NAME: &'static str = stringify!(@ name); + /// Convert from the underlying value type. + #[inline] + pub const fn from_underlying(value: u8) -> Self { + Self(value) + } + /// Return the underlying value. + #[inline] + pub const fn into_underlying(self) -> u8 { + self.0 + } + /// Return the single encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode(&self) -> alloy_sol_types::private::Vec { + ::abi_encode(&self.0) + } + /// Return the packed encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec { + ::abi_encode_packed(&self.0) + } + } + #[automatically_derived] + impl From for Operation { + fn from(value: u8) -> Self { + Self::from_underlying(value) + } + } + #[automatically_derived] + impl From for u8 { + fn from(value: Operation) -> Self { + value.into_underlying() + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for Operation { + type RustType = u8; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = Self::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + Self::type_check(token).is_ok() + } + #[inline] + fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> { + as alloy_sol_types::SolType>::type_check(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + as alloy_sol_types::SolType>::detokenize(token) + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for Operation { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + as alloy_sol_types::EventTopic>::topic_preimage_length(rust) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out) + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + as alloy_sol_types::EventTopic>::encode_topic(rust) + } + } + }; + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`Enum`](self) contract instance. + +See the [wrapper's documentation](`EnumInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(address: alloy_sol_types::private::Address, __provider: P) -> EnumInstance { + EnumInstance::::new(address, __provider) + } + /**A [`Enum`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`Enum`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct EnumInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for EnumInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("EnumInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > EnumInstance { + /**Creates a new wrapper around an on-chain [`Enum`](self) contract instance. + +See the [wrapper's documentation](`EnumInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl EnumInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> EnumInstance { + EnumInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > EnumInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > EnumInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + } +} +///Module containing a contract's types and functions. +/** + +```solidity +library LivenessModule2 { + struct ModuleConfig { uint256 livenessResponsePeriod; address fallbackOwner; } +} +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod LivenessModule2 { + use super::*; + use alloy::sol_types as alloy_sol_types; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**```solidity +struct ModuleConfig { uint256 livenessResponsePeriod; address fallbackOwner; } +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ModuleConfig { + #[allow(missing_docs)] + pub livenessResponsePeriod: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub fallbackOwner: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Address, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::Address, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ModuleConfig) -> Self { + (value.livenessResponsePeriod, value.fallbackOwner) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ModuleConfig { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + livenessResponsePeriod: tuple.0, + fallbackOwner: tuple.1, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolValue for ModuleConfig { + type SolType = Self; + } + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for ModuleConfig { + #[inline] + fn stv_to_tokens(&self) -> ::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize( + &self.livenessResponsePeriod, + ), + ::tokenize( + &self.fallbackOwner, + ), + ) + } + #[inline] + fn stv_abi_encoded_size(&self) -> usize { + if let Some(size) = ::ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encoded_size(&tuple) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + ::eip712_hash_struct(self) + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + if let Some(size) = ::PACKED_ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for ModuleConfig { + type RustType = Self; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = ::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + as alloy_sol_types::SolType>::valid_token(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + let tuple = as alloy_sol_types::SolType>::detokenize(token); + >>::from(tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolStruct for ModuleConfig { + const NAME: &'static str = "ModuleConfig"; + #[inline] + fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> { + alloy_sol_types::private::Cow::Borrowed( + "ModuleConfig(uint256 livenessResponsePeriod,address fallbackOwner)", + ) + } + #[inline] + fn eip712_components() -> alloy_sol_types::private::Vec< + alloy_sol_types::private::Cow<'static, str>, + > { + alloy_sol_types::private::Vec::new() + } + #[inline] + fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> { + ::eip712_root_type() + } + #[inline] + fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec { + [ + as alloy_sol_types::SolType>::eip712_data_word( + &self.livenessResponsePeriod, + ) + .0, + ::eip712_data_word( + &self.fallbackOwner, + ) + .0, + ] + .concat() + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for ModuleConfig { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + 0usize + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.livenessResponsePeriod, + ) + + ::topic_preimage_length( + &rust.fallbackOwner, + ) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + out.reserve( + ::topic_preimage_length(rust), + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.livenessResponsePeriod, + out, + ); + ::encode_topic_preimage( + &rust.fallbackOwner, + out, + ); + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + let mut out = alloy_sol_types::private::Vec::new(); + ::encode_topic_preimage( + rust, + &mut out, + ); + alloy_sol_types::abi::token::WordToken( + alloy_sol_types::private::keccak256(out), + ) + } + } + }; + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`LivenessModule2`](self) contract instance. + +See the [wrapper's documentation](`LivenessModule2Instance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> LivenessModule2Instance { + LivenessModule2Instance::::new(address, __provider) + } + /**A [`LivenessModule2`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`LivenessModule2`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct LivenessModule2Instance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for LivenessModule2Instance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("LivenessModule2Instance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > LivenessModule2Instance { + /**Creates a new wrapper around an on-chain [`LivenessModule2`](self) contract instance. + +See the [wrapper's documentation](`LivenessModule2Instance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl LivenessModule2Instance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> LivenessModule2Instance { + LivenessModule2Instance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > LivenessModule2Instance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > LivenessModule2Instance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + } +} +///Module containing a contract's types and functions. +/** + +```solidity +library TimelockGuard { + type TransactionState is uint8; + struct ExecTransactionParams { address to; uint256 value; bytes data; Enum.Operation operation; uint256 safeTxGas; uint256 baseGas; uint256 gasPrice; address gasToken; address refundReceiver; } + struct ScheduledTransaction { bytes32 txHash; uint256 executionTime; TransactionState state; ExecTransactionParams params; uint256 nonce; } +} +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod TimelockGuard { + use super::*; + use alloy::sol_types as alloy_sol_types; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct TransactionState(u8); + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for u8 { + #[inline] + fn stv_to_tokens( + &self, + ) -> as alloy_sol_types::SolType>::Token<'_> { + alloy_sol_types::private::SolTypeValue::< + alloy::sol_types::sol_data::Uint<8>, + >::stv_to_tokens(self) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + as alloy_sol_types::SolType>::tokenize(self) + .0 + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::SolType>::abi_encode_packed_to(self, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + as alloy_sol_types::SolType>::abi_encoded_size(self) + } + } + impl TransactionState { + /// The Solidity type name. + pub const NAME: &'static str = stringify!(@ name); + /// Convert from the underlying value type. + #[inline] + pub const fn from_underlying(value: u8) -> Self { + Self(value) + } + /// Return the underlying value. + #[inline] + pub const fn into_underlying(self) -> u8 { + self.0 + } + /// Return the single encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode(&self) -> alloy_sol_types::private::Vec { + ::abi_encode(&self.0) + } + /// Return the packed encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec { + ::abi_encode_packed(&self.0) + } + } + #[automatically_derived] + impl From for TransactionState { + fn from(value: u8) -> Self { + Self::from_underlying(value) + } + } + #[automatically_derived] + impl From for u8 { + fn from(value: TransactionState) -> Self { + value.into_underlying() + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for TransactionState { + type RustType = u8; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = Self::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + Self::type_check(token).is_ok() + } + #[inline] + fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> { + as alloy_sol_types::SolType>::type_check(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + as alloy_sol_types::SolType>::detokenize(token) + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for TransactionState { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + as alloy_sol_types::EventTopic>::topic_preimage_length(rust) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out) + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + as alloy_sol_types::EventTopic>::encode_topic(rust) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**```solidity +struct ExecTransactionParams { address to; uint256 value; bytes data; Enum.Operation operation; uint256 safeTxGas; uint256 baseGas; uint256 gasPrice; address gasToken; address refundReceiver; } +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ExecTransactionParams { + #[allow(missing_docs)] + pub to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub value: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub data: alloy::sol_types::private::Bytes, + #[allow(missing_docs)] + pub operation: ::RustType, + #[allow(missing_docs)] + pub safeTxGas: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub baseGas: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub gasPrice: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub gasToken: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub refundReceiver: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Bytes, + Enum::Operation, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::Bytes, + ::RustType, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ExecTransactionParams) -> Self { + ( + value.to, + value.value, + value.data, + value.operation, + value.safeTxGas, + value.baseGas, + value.gasPrice, + value.gasToken, + value.refundReceiver, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ExecTransactionParams { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + to: tuple.0, + value: tuple.1, + data: tuple.2, + operation: tuple.3, + safeTxGas: tuple.4, + baseGas: tuple.5, + gasPrice: tuple.6, + gasToken: tuple.7, + refundReceiver: tuple.8, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolValue for ExecTransactionParams { + type SolType = Self; + } + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for ExecTransactionParams { + #[inline] + fn stv_to_tokens(&self) -> ::Token<'_> { + ( + ::tokenize( + &self.to, + ), + as alloy_sol_types::SolType>::tokenize(&self.value), + ::tokenize( + &self.data, + ), + ::tokenize( + &self.operation, + ), + as alloy_sol_types::SolType>::tokenize(&self.safeTxGas), + as alloy_sol_types::SolType>::tokenize(&self.baseGas), + as alloy_sol_types::SolType>::tokenize(&self.gasPrice), + ::tokenize( + &self.gasToken, + ), + ::tokenize( + &self.refundReceiver, + ), + ) + } + #[inline] + fn stv_abi_encoded_size(&self) -> usize { + if let Some(size) = ::ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encoded_size(&tuple) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + ::eip712_hash_struct(self) + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + if let Some(size) = ::PACKED_ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for ExecTransactionParams { + type RustType = Self; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = ::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + as alloy_sol_types::SolType>::valid_token(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + let tuple = as alloy_sol_types::SolType>::detokenize(token); + >>::from(tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolStruct for ExecTransactionParams { + const NAME: &'static str = "ExecTransactionParams"; + #[inline] + fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> { + alloy_sol_types::private::Cow::Borrowed( + "ExecTransactionParams(address to,uint256 value,bytes data,uint8 operation,uint256 safeTxGas,uint256 baseGas,uint256 gasPrice,address gasToken,address refundReceiver)", + ) + } + #[inline] + fn eip712_components() -> alloy_sol_types::private::Vec< + alloy_sol_types::private::Cow<'static, str>, + > { + alloy_sol_types::private::Vec::new() + } + #[inline] + fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> { + ::eip712_root_type() + } + #[inline] + fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec { + [ + ::eip712_data_word( + &self.to, + ) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.value) + .0, + ::eip712_data_word( + &self.data, + ) + .0, + ::eip712_data_word( + &self.operation, + ) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.safeTxGas) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.baseGas) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.gasPrice) + .0, + ::eip712_data_word( + &self.gasToken, + ) + .0, + ::eip712_data_word( + &self.refundReceiver, + ) + .0, + ] + .concat() + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for ExecTransactionParams { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + 0usize + + ::topic_preimage_length( + &rust.to, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length(&rust.value) + + ::topic_preimage_length( + &rust.data, + ) + + ::topic_preimage_length( + &rust.operation, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.safeTxGas, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.baseGas, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.gasPrice, + ) + + ::topic_preimage_length( + &rust.gasToken, + ) + + ::topic_preimage_length( + &rust.refundReceiver, + ) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + out.reserve( + ::topic_preimage_length(rust), + ); + ::encode_topic_preimage( + &rust.to, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.value, + out, + ); + ::encode_topic_preimage( + &rust.data, + out, + ); + ::encode_topic_preimage( + &rust.operation, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.safeTxGas, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.baseGas, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.gasPrice, + out, + ); + ::encode_topic_preimage( + &rust.gasToken, + out, + ); + ::encode_topic_preimage( + &rust.refundReceiver, + out, + ); + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + let mut out = alloy_sol_types::private::Vec::new(); + ::encode_topic_preimage( + rust, + &mut out, + ); + alloy_sol_types::abi::token::WordToken( + alloy_sol_types::private::keccak256(out), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**```solidity +struct ScheduledTransaction { bytes32 txHash; uint256 executionTime; TransactionState state; ExecTransactionParams params; uint256 nonce; } +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ScheduledTransaction { + #[allow(missing_docs)] + pub txHash: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub executionTime: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub state: ::RustType, + #[allow(missing_docs)] + pub params: ::RustType, + #[allow(missing_docs)] + pub nonce: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Uint<256>, + TransactionState, + ExecTransactionParams, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::FixedBytes<32>, + alloy::sol_types::private::primitives::aliases::U256, + ::RustType, + ::RustType, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ScheduledTransaction) -> Self { + ( + value.txHash, + value.executionTime, + value.state, + value.params, + value.nonce, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ScheduledTransaction { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + txHash: tuple.0, + executionTime: tuple.1, + state: tuple.2, + params: tuple.3, + nonce: tuple.4, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolValue for ScheduledTransaction { + type SolType = Self; + } + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for ScheduledTransaction { + #[inline] + fn stv_to_tokens(&self) -> ::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.txHash), + as alloy_sol_types::SolType>::tokenize(&self.executionTime), + ::tokenize( + &self.state, + ), + ::tokenize( + &self.params, + ), + as alloy_sol_types::SolType>::tokenize(&self.nonce), + ) + } + #[inline] + fn stv_abi_encoded_size(&self) -> usize { + if let Some(size) = ::ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encoded_size(&tuple) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + ::eip712_hash_struct(self) + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + if let Some(size) = ::PACKED_ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for ScheduledTransaction { + type RustType = Self; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = ::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + as alloy_sol_types::SolType>::valid_token(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + let tuple = as alloy_sol_types::SolType>::detokenize(token); + >>::from(tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolStruct for ScheduledTransaction { + const NAME: &'static str = "ScheduledTransaction"; + #[inline] + fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> { + alloy_sol_types::private::Cow::Borrowed( + "ScheduledTransaction(bytes32 txHash,uint256 executionTime,uint8 state,ExecTransactionParams params,uint256 nonce)", + ) + } + #[inline] + fn eip712_components() -> alloy_sol_types::private::Vec< + alloy_sol_types::private::Cow<'static, str>, + > { + let mut components = alloy_sol_types::private::Vec::with_capacity(1); + components + .push( + ::eip712_root_type(), + ); + components + .extend( + ::eip712_components(), + ); + components + } + #[inline] + fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec { + [ + as alloy_sol_types::SolType>::eip712_data_word(&self.txHash) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.executionTime) + .0, + ::eip712_data_word( + &self.state, + ) + .0, + ::eip712_data_word( + &self.params, + ) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.nonce) + .0, + ] + .concat() + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for ScheduledTransaction { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + 0usize + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.txHash, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.executionTime, + ) + + ::topic_preimage_length( + &rust.state, + ) + + ::topic_preimage_length( + &rust.params, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length(&rust.nonce) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + out.reserve( + ::topic_preimage_length(rust), + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.txHash, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.executionTime, + out, + ); + ::encode_topic_preimage( + &rust.state, + out, + ); + ::encode_topic_preimage( + &rust.params, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.nonce, + out, + ); + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + let mut out = alloy_sol_types::private::Vec::new(); + ::encode_topic_preimage( + rust, + &mut out, + ); + alloy_sol_types::abi::token::WordToken( + alloy_sol_types::private::keccak256(out), + ) + } + } + }; + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`TimelockGuard`](self) contract instance. + +See the [wrapper's documentation](`TimelockGuardInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> TimelockGuardInstance { + TimelockGuardInstance::::new(address, __provider) + } + /**A [`TimelockGuard`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`TimelockGuard`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct TimelockGuardInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for TimelockGuardInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("TimelockGuardInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > TimelockGuardInstance { + /**Creates a new wrapper around an on-chain [`TimelockGuard`](self) contract instance. + +See the [wrapper's documentation](`TimelockGuardInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl TimelockGuardInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> TimelockGuardInstance { + TimelockGuardInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > TimelockGuardInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > TimelockGuardInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + } +} +/** + +Generated by the following Solidity interface... +```solidity +library Enum { + type Operation is uint8; +} + +library LivenessModule2 { + struct ModuleConfig { + uint256 livenessResponsePeriod; + address fallbackOwner; + } +} + +library TimelockGuard { + type TransactionState is uint8; + struct ExecTransactionParams { + address to; + uint256 value; + bytes data; + Enum.Operation operation; + uint256 safeTxGas; + uint256 baseGas; + uint256 gasPrice; + address gasToken; + address payable refundReceiver; + } + struct ScheduledTransaction { + bytes32 txHash; + uint256 executionTime; + TransactionState state; + ExecTransactionParams params; + uint256 nonce; + } +} + +interface SaferSafes { + error LivenessModule2_ChallengeAlreadyExists(); + error LivenessModule2_ChallengeDoesNotExist(); + error LivenessModule2_InvalidFallbackOwner(); + error LivenessModule2_InvalidResponsePeriod(); + error LivenessModule2_InvalidVersion(); + error LivenessModule2_ModuleNotConfigured(); + error LivenessModule2_ModuleNotEnabled(); + error LivenessModule2_ModuleStillEnabled(); + error LivenessModule2_OwnershipTransferFailed(); + error LivenessModule2_ResponsePeriodActive(); + error LivenessModule2_ResponsePeriodEnded(); + error LivenessModule2_UnauthorizedCaller(); + error SaferSafes_InsufficientLivenessResponsePeriod(); + error SemverComp_InvalidSemverParts(); + error TimelockGuard_GuardNotConfigured(); + error TimelockGuard_GuardNotEnabled(); + error TimelockGuard_GuardStillEnabled(); + error TimelockGuard_InvalidTimelockDelay(); + error TimelockGuard_InvalidVersion(); + error TimelockGuard_NotOwner(); + error TimelockGuard_TransactionAlreadyCancelled(); + error TimelockGuard_TransactionAlreadyExecuted(); + error TimelockGuard_TransactionAlreadyScheduled(); + error TimelockGuard_TransactionNotReady(); + error TimelockGuard_TransactionNotScheduled(); + + event CancellationThresholdUpdated(address indexed safe, uint256 oldThreshold, uint256 newThreshold); + event ChallengeCancelled(address indexed safe); + event ChallengeStarted(address indexed safe, uint256 challengeStartTime); + event ChallengeSucceeded(address indexed safe, address fallbackOwner); + event GuardConfigured(address indexed safe, uint256 timelockDelay); + event Message(string message); + event ModuleCleared(address indexed safe); + event ModuleConfigured(address indexed safe, uint256 livenessResponsePeriod, address fallbackOwner); + event TransactionCancelled(address indexed safe, bytes32 indexed txHash); + event TransactionExecuted(address indexed safe, bytes32 indexed txHash); + event TransactionScheduled(address indexed safe, bytes32 indexed txHash, uint256 executionTime); + + function cancelTransaction(address _safe, bytes32 _txHash, uint256 _nonce, bytes memory _signatures) external; + function cancellationThreshold(address _safe) external view returns (uint256); + function challenge(address _safe) external; + function challengeStartTime(address) external view returns (uint256); + function changeOwnershipToFallback(address _safe) external; + function checkAfterExecution(bytes32 _txHash, bool _success) external; + function checkTransaction(address _to, uint256 _value, bytes memory _data, Enum.Operation _operation, uint256 _safeTxGas, uint256 _baseGas, uint256 _gasPrice, address _gasToken, address payable _refundReceiver, bytes memory, address _msgSender) external; + function clearLivenessModule() external; + function clearTimelockGuard() external; + function configureLivenessModule(LivenessModule2.ModuleConfig memory _config) external; + function configureTimelockGuard(uint256 _timelockDelay) external; + function getChallengePeriodEnd(address _safe) external view returns (uint256); + function livenessSafeConfiguration(address _safe) external view returns (LivenessModule2.ModuleConfig memory); + function maxCancellationThreshold(address _safe) external view returns (uint256); + function pendingTransactions(address _safe) external view returns (TimelockGuard.ScheduledTransaction[] memory); + function respond() external; + function scheduleTransaction(address _safe, uint256 _nonce, TimelockGuard.ExecTransactionParams memory _params, bytes memory _signatures) external; + function scheduledTransaction(address _safe, bytes32 _txHash) external view returns (TimelockGuard.ScheduledTransaction memory); + function signCancellation(bytes32) external; + function supportsInterface(bytes4 interfaceId) external view returns (bool); + function timelockDelay(address _safe) external view returns (uint256); + function version() external view returns (string memory); +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "function", + "name": "cancelTransaction", + "inputs": [ + { + "name": "_safe", + "type": "address", + "internalType": "contract Safe" + }, + { + "name": "_txHash", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "_nonce", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_signatures", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "cancellationThreshold", + "inputs": [ + { + "name": "_safe", + "type": "address", + "internalType": "contract Safe" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "challenge", + "inputs": [ + { + "name": "_safe", + "type": "address", + "internalType": "contract Safe" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "challengeStartTime", + "inputs": [ + { + "name": "", + "type": "address", + "internalType": "contract Safe" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "changeOwnershipToFallback", + "inputs": [ + { + "name": "_safe", + "type": "address", + "internalType": "contract Safe" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "checkAfterExecution", + "inputs": [ + { + "name": "_txHash", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "_success", + "type": "bool", + "internalType": "bool" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "checkTransaction", + "inputs": [ + { + "name": "_to", + "type": "address", + "internalType": "address" + }, + { + "name": "_value", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_data", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "_operation", + "type": "uint8", + "internalType": "enum Enum.Operation" + }, + { + "name": "_safeTxGas", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_baseGas", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_gasPrice", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_gasToken", + "type": "address", + "internalType": "address" + }, + { + "name": "_refundReceiver", + "type": "address", + "internalType": "address payable" + }, + { + "name": "", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "_msgSender", + "type": "address", + "internalType": "address" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "clearLivenessModule", + "inputs": [], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "clearTimelockGuard", + "inputs": [], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "configureLivenessModule", + "inputs": [ + { + "name": "_config", + "type": "tuple", + "internalType": "struct LivenessModule2.ModuleConfig", + "components": [ + { + "name": "livenessResponsePeriod", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "fallbackOwner", + "type": "address", + "internalType": "address" + } + ] + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "configureTimelockGuard", + "inputs": [ + { + "name": "_timelockDelay", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "getChallengePeriodEnd", + "inputs": [ + { + "name": "_safe", + "type": "address", + "internalType": "contract Safe" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "livenessSafeConfiguration", + "inputs": [ + { + "name": "_safe", + "type": "address", + "internalType": "contract Safe" + } + ], + "outputs": [ + { + "name": "", + "type": "tuple", + "internalType": "struct LivenessModule2.ModuleConfig", + "components": [ + { + "name": "livenessResponsePeriod", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "fallbackOwner", + "type": "address", + "internalType": "address" + } + ] + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "maxCancellationThreshold", + "inputs": [ + { + "name": "_safe", + "type": "address", + "internalType": "contract Safe" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "pendingTransactions", + "inputs": [ + { + "name": "_safe", + "type": "address", + "internalType": "contract Safe" + } + ], + "outputs": [ + { + "name": "", + "type": "tuple[]", + "internalType": "struct TimelockGuard.ScheduledTransaction[]", + "components": [ + { + "name": "txHash", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "executionTime", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "state", + "type": "uint8", + "internalType": "enum TimelockGuard.TransactionState" + }, + { + "name": "params", + "type": "tuple", + "internalType": "struct TimelockGuard.ExecTransactionParams", + "components": [ + { + "name": "to", + "type": "address", + "internalType": "address" + }, + { + "name": "value", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "data", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "operation", + "type": "uint8", + "internalType": "enum Enum.Operation" + }, + { + "name": "safeTxGas", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "baseGas", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "gasPrice", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "gasToken", + "type": "address", + "internalType": "address" + }, + { + "name": "refundReceiver", + "type": "address", + "internalType": "address payable" + } + ] + }, + { + "name": "nonce", + "type": "uint256", + "internalType": "uint256" + } + ] + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "respond", + "inputs": [], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "scheduleTransaction", + "inputs": [ + { + "name": "_safe", + "type": "address", + "internalType": "contract Safe" + }, + { + "name": "_nonce", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_params", + "type": "tuple", + "internalType": "struct TimelockGuard.ExecTransactionParams", + "components": [ + { + "name": "to", + "type": "address", + "internalType": "address" + }, + { + "name": "value", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "data", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "operation", + "type": "uint8", + "internalType": "enum Enum.Operation" + }, + { + "name": "safeTxGas", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "baseGas", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "gasPrice", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "gasToken", + "type": "address", + "internalType": "address" + }, + { + "name": "refundReceiver", + "type": "address", + "internalType": "address payable" + } + ] + }, + { + "name": "_signatures", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "scheduledTransaction", + "inputs": [ + { + "name": "_safe", + "type": "address", + "internalType": "contract Safe" + }, + { + "name": "_txHash", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "outputs": [ + { + "name": "", + "type": "tuple", + "internalType": "struct TimelockGuard.ScheduledTransaction", + "components": [ + { + "name": "txHash", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "executionTime", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "state", + "type": "uint8", + "internalType": "enum TimelockGuard.TransactionState" + }, + { + "name": "params", + "type": "tuple", + "internalType": "struct TimelockGuard.ExecTransactionParams", + "components": [ + { + "name": "to", + "type": "address", + "internalType": "address" + }, + { + "name": "value", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "data", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "operation", + "type": "uint8", + "internalType": "enum Enum.Operation" + }, + { + "name": "safeTxGas", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "baseGas", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "gasPrice", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "gasToken", + "type": "address", + "internalType": "address" + }, + { + "name": "refundReceiver", + "type": "address", + "internalType": "address payable" + } + ] + }, + { + "name": "nonce", + "type": "uint256", + "internalType": "uint256" + } + ] + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "signCancellation", + "inputs": [ + { + "name": "", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "supportsInterface", + "inputs": [ + { + "name": "interfaceId", + "type": "bytes4", + "internalType": "bytes4" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "timelockDelay", + "inputs": [ + { + "name": "_safe", + "type": "address", + "internalType": "contract Safe" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "version", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "view" + }, + { + "type": "event", + "name": "CancellationThresholdUpdated", + "inputs": [ + { + "name": "safe", + "type": "address", + "indexed": true, + "internalType": "contract Safe" + }, + { + "name": "oldThreshold", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + }, + { + "name": "newThreshold", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "ChallengeCancelled", + "inputs": [ + { + "name": "safe", + "type": "address", + "indexed": true, + "internalType": "address" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "ChallengeStarted", + "inputs": [ + { + "name": "safe", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "challengeStartTime", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "ChallengeSucceeded", + "inputs": [ + { + "name": "safe", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "fallbackOwner", + "type": "address", + "indexed": false, + "internalType": "address" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "GuardConfigured", + "inputs": [ + { + "name": "safe", + "type": "address", + "indexed": true, + "internalType": "contract Safe" + }, + { + "name": "timelockDelay", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "Message", + "inputs": [ + { + "name": "message", + "type": "string", + "indexed": false, + "internalType": "string" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "ModuleCleared", + "inputs": [ + { + "name": "safe", + "type": "address", + "indexed": true, + "internalType": "address" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "ModuleConfigured", + "inputs": [ + { + "name": "safe", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "livenessResponsePeriod", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + }, + { + "name": "fallbackOwner", + "type": "address", + "indexed": false, + "internalType": "address" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "TransactionCancelled", + "inputs": [ + { + "name": "safe", + "type": "address", + "indexed": true, + "internalType": "contract Safe" + }, + { + "name": "txHash", + "type": "bytes32", + "indexed": true, + "internalType": "bytes32" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "TransactionExecuted", + "inputs": [ + { + "name": "safe", + "type": "address", + "indexed": true, + "internalType": "contract Safe" + }, + { + "name": "txHash", + "type": "bytes32", + "indexed": true, + "internalType": "bytes32" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "TransactionScheduled", + "inputs": [ + { + "name": "safe", + "type": "address", + "indexed": true, + "internalType": "contract Safe" + }, + { + "name": "txHash", + "type": "bytes32", + "indexed": true, + "internalType": "bytes32" + }, + { + "name": "executionTime", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "error", + "name": "LivenessModule2_ChallengeAlreadyExists", + "inputs": [] + }, + { + "type": "error", + "name": "LivenessModule2_ChallengeDoesNotExist", + "inputs": [] + }, + { + "type": "error", + "name": "LivenessModule2_InvalidFallbackOwner", + "inputs": [] + }, + { + "type": "error", + "name": "LivenessModule2_InvalidResponsePeriod", + "inputs": [] + }, + { + "type": "error", + "name": "LivenessModule2_InvalidVersion", + "inputs": [] + }, + { + "type": "error", + "name": "LivenessModule2_ModuleNotConfigured", + "inputs": [] + }, + { + "type": "error", + "name": "LivenessModule2_ModuleNotEnabled", + "inputs": [] + }, + { + "type": "error", + "name": "LivenessModule2_ModuleStillEnabled", + "inputs": [] + }, + { + "type": "error", + "name": "LivenessModule2_OwnershipTransferFailed", + "inputs": [] + }, + { + "type": "error", + "name": "LivenessModule2_ResponsePeriodActive", + "inputs": [] + }, + { + "type": "error", + "name": "LivenessModule2_ResponsePeriodEnded", + "inputs": [] + }, + { + "type": "error", + "name": "LivenessModule2_UnauthorizedCaller", + "inputs": [] + }, + { + "type": "error", + "name": "SaferSafes_InsufficientLivenessResponsePeriod", + "inputs": [] + }, + { + "type": "error", + "name": "SemverComp_InvalidSemverParts", + "inputs": [] + }, + { + "type": "error", + "name": "TimelockGuard_GuardNotConfigured", + "inputs": [] + }, + { + "type": "error", + "name": "TimelockGuard_GuardNotEnabled", + "inputs": [] + }, + { + "type": "error", + "name": "TimelockGuard_GuardStillEnabled", + "inputs": [] + }, + { + "type": "error", + "name": "TimelockGuard_InvalidTimelockDelay", + "inputs": [] + }, + { + "type": "error", + "name": "TimelockGuard_InvalidVersion", + "inputs": [] + }, + { + "type": "error", + "name": "TimelockGuard_NotOwner", + "inputs": [] + }, + { + "type": "error", + "name": "TimelockGuard_TransactionAlreadyCancelled", + "inputs": [] + }, + { + "type": "error", + "name": "TimelockGuard_TransactionAlreadyExecuted", + "inputs": [] + }, + { + "type": "error", + "name": "TimelockGuard_TransactionAlreadyScheduled", + "inputs": [] + }, + { + "type": "error", + "name": "TimelockGuard_TransactionNotReady", + "inputs": [] + }, + { + "type": "error", + "name": "TimelockGuard_TransactionNotScheduled", + "inputs": [] + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod SaferSafes { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x608060405234801561001057600080fd5b50614657806100206000396000f3fe608060405234801561001057600080fd5b50600436106101825760003560e01c806365cf50ec116100d8578063bceb8eda1161008c578063db16aab911610066578063db16aab91461040f578063e10ffc9214610417578063e647dee11461042a57600080fd5b8063bceb8eda146103c9578063c127fd39146103dc578063c9713656146103fc57600080fd5b806375f0bb52116100bd57806375f0bb5214610384578063932713681461039757806396de45a4146103a957600080fd5b806365cf50ec1461035e57806372fb97031461037157600080fd5b806312492d971161013a5780635698b16a116101145780635698b16a146102f85780635c3b45101461034e5780636092b3181461035657600080fd5b806312492d97146101fd57806347c032231461021d57806354fd4d50146102af57600080fd5b806306d8b7e21161016b57806306d8b7e2146101c4578063096e01f7146101d75780630e40beec146101ea57600080fd5b806301ffc9a71461018757806305ccf606146101af575b600080fd5b61019a610195366004613918565b610475565b60405190151581526020015b60405180910390f35b6101c26101bd366004613a34565b61050e565b005b6101c26101d2366004613a8a565b6107b5565b6101c26101e5366004613b3f565b61086b565b6101c26101f8366004613bb1565b610dc3565b61021061020b366004613cc1565b6113e3565b6040516101a69190613eca565b61027e61022b366004613edd565b6040805180820182526000808252602091820181905273ffffffffffffffffffffffffffffffffffffffff9384168152808252829020825180840190935280548352600101549092169181019190915290565b604080518251815260209283015173ffffffffffffffffffffffffffffffffffffffff1692810192909252016101a6565b6102eb6040518060400160405280600681526020017f312e31302e31000000000000000000000000000000000000000000000000000081525081565b6040516101a69190613efa565b610340610306366004613edd565b73ffffffffffffffffffffffffffffffffffffffff1660009081526002602090815260408083206003835281842054845290915290205490565b6040519081526020016101a6565b6101c2611614565b6101c261168e565b6101c261036c366004613a8a565b61173f565b6101c261037f366004613edd565b6118de565b6101c2610392366004613f0d565b611a11565b6101c26103a5366004614000565b5050565b6103406103b7366004613edd565b60016020526000908152604090205481565b6101c26103d7366004613edd565b611e69565b6103ef6103ea366004613edd565b6126a0565b6040516101a69190614030565b61034061040a366004613edd565b6129ac565b6101c2612a44565b610340610425366004613edd565b612ac0565b610340610438366004613edd565b73ffffffffffffffffffffffffffffffffffffffff1660009081526002602090815260408083206003835281842054845290915290206001015490565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fe6d7a83a00000000000000000000000000000000000000000000000000000000148061050857507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b8051339060000361054b576040517f74a7e96e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b602082015173ffffffffffffffffffffffffffffffffffffffff1615806105a157508073ffffffffffffffffffffffffffffffffffffffff16826020015173ffffffffffffffffffffffffffffffffffffffff16145b156105d8576040517f552dd1b700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6106a78173ffffffffffffffffffffffffffffffffffffffff1663ffa1ad746040518163ffffffff1660e01b8152600401600060405180830381865afa158015610626573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405261066c91908101906140e0565b6040518060400160405280600581526020017f312e342e31000000000000000000000000000000000000000000000000000000815250612b27565b6106dd576040517fda21aed900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6106e681612b77565b73ffffffffffffffffffffffffffffffffffffffff8181166000908152602081815260409091208451815590840151600190910180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169190921617905561074e81612c3e565b8151602083015160405133927f47e2ddae3ece2c77f60d8e9e5a89a50f1d1374a87fb11956d27a6b4986bba17e926107a49291825273ffffffffffffffffffffffffffffffffffffffff16602082015260400190565b60405180910390a26103a581612cbe565b7f51a7f65c6325882f237d4aeb43228179cfad48b868511d508e24b4437a8191376040516108609060208082526050908201527f546869732066756e6374696f6e206973206e6f74206d65616e7420746f20626560408201527f2063616c6c65642c2064696420796f75206d65616e20746f2063616c6c20636160608201527f6e63656c5472616e73616374696f6e3f00000000000000000000000000000000608082015260a00190565b60405180910390a150565b600273ffffffffffffffffffffffffffffffffffffffff851660009081526002602090815260408083206003835281842054845290915290206000858152600291820160205260409020015460ff1660038111156108cb576108cb613ced565b03610902576040517f3e8b838900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8416600090815260026020818152604080842060038084528286205486529083528185208886528401909252909220015460ff168181111561095b5761095b613ced565b03610992576040517f183ca43100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff841660009081526002602090815260408083206003835281842054845290915281206000858152600291820160205260409020015460ff1660038111156109f0576109f0613ced565b03610a27576040517f03c8597300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60003073ffffffffffffffffffffffffffffffffffffffff166306d8b7e285604051602401610a5891815260200190565b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050905060008573ffffffffffffffffffffffffffffffffffffffff1663e86637db306000856000806000806000808e6040518b63ffffffff1660e01b8152600401610aed9a99989796959493929190614129565b600060405180830381865afa158015610b0a573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052610b5091908101906140e0565b905060008673ffffffffffffffffffffffffffffffffffffffff1663d8d11f78306000866000806000806000808f6040518b63ffffffff1660e01b8152600401610ba39a99989796959493929190614129565b602060405180830381865afa158015610bc0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610be491906141a9565b90508673ffffffffffffffffffffffffffffffffffffffff166312fb68e0828487610c428c73ffffffffffffffffffffffffffffffffffffffff16600090815260026020908152604080832060038352818420548452909152902090565b600101546040518563ffffffff1660e01b8152600401610c6594939291906141c2565b60006040518083038186803b158015610c7d57600080fd5b505afa158015610c91573d6000803e3d6000fd5b505050506002610cd48873ffffffffffffffffffffffffffffffffffffffff16600090815260026020908152604080832060038352818420548452909152902090565b60008881526002918201602052604090200180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001836003811115610d1e57610d1e613ced565b0217905550610d6d86610d648973ffffffffffffffffffffffffffffffffffffffff16600090815260026020908152604080832060038352818420548452909152902090565b60030190612e08565b50610d7787612e1b565b604051869073ffffffffffffffffffffffffffffffffffffffff8916907fa42fd857b47d3d04f5b29f35cb05343f66b317633d2dc2910726bd4bca1a162590600090a350505050505050565b610dcc84612ee1565b610e02576040517f3f4b296600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8416600090815260026020908152604080832060038352818420548452909152902054600003610e73576040517f0832dd6900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008473ffffffffffffffffffffffffffffffffffffffff1663e86637db846000015185602001518660400151876060015188608001518960a001518a60c001518b60e001518c61010001518e6040518b63ffffffff1660e01b8152600401610ee59a99989796959493929190614129565b600060405180830381865afa158015610f02573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052610f4891908101906140e0565b905060008573ffffffffffffffffffffffffffffffffffffffff1663d8d11f78856000015186602001518760400151886060015189608001518a60a001518b60c001518c60e001518d61010001518f6040518b63ffffffff1660e01b8152600401610fbc9a99989796959493929190614129565b602060405180830381865afa158015610fd9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ffd91906141a9565b905061103c8673ffffffffffffffffffffffffffffffffffffffff16600090815260026020908152604080832060038352818420548452909152902090565b6000828152600291909101602052604090206001015415611089576040517f80394de600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f934f3a1100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff87169063934f3a11906110df908490869088906004016141ff565b60006040518083038186803b1580156110f757600080fd5b505afa15801561110b573d6000803e3d6000fd5b50505050600061114e8773ffffffffffffffffffffffffffffffffffffffff16600090815260026020908152604080832060038352818420548452909152902090565b546111599042614263565b6040805160a08101825284815260208082018481526001838501818152606085018c9052608085018d905273ffffffffffffffffffffffffffffffffffffffff8e166000908152600280865287822060038088528984205484529087528883208c84528201909652969020855181559251838301555194820180549697509395919493927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0090921691849081111561121357611213613ced565b0217905550606082015180516003830180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff90921691909117815560208201516004840155604082015160058401906112839082614316565b5060608201516003820180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600183818111156112c4576112c4613ced565b0217905550608082810151600483015560a0830151600583015560c0830151600683015560e08301516007830180547fffffffffffffffffffffffff000000000000000000000000000000000000000090811673ffffffffffffffffffffffffffffffffffffffff93841617909155610100909401516008909301805490941692811692909217909255920151600c909101558716600090815260026020908152604080832060038352818420548452909152902061138890839060030190612fef565b50818773ffffffffffffffffffffffffffffffffffffffff167f653f8f6fce2a503b2dfca34e95b3e4902254a11765d2658c0e5af1d64ab276cf836040516113d291815260200190565b60405180910390a350505050505050565b6113eb613844565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260026020818152604080842060038084528286205486529083528185208786528401835293819020815160a081018352815481526001820154938101939093529283015491939084019160ff169081111561146457611464613ced565b600381111561147557611475613ced565b815260200160038201604051806101200160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182015481526020016002820180546114fa9061427b565b80601f01602080910402602001604051908101604052809291908181526020018280546115269061427b565b80156115735780601f1061154857610100808354040283529160200191611573565b820191906000526020600020905b81548152906001019060200180831161155657829003601f168201915b5050509183525050600382015460209091019060ff16600181111561159a5761159a613ced565b60018111156115ab576115ab613ced565b815260048201546020808301919091526005830154604083015260068301546060830152600783015473ffffffffffffffffffffffffffffffffffffffff908116608084015260089093015490921660a090910152908252600c92909201549101529392505050565b3361161e81612ee1565b15611655576040517fa4d234cb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8116600090815260036020526040812080549161168683614430565b919050555050565b3361169881612ffb565b6116a18161305f565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260208190526040812090815560010180547fffffffffffffffffffffffff00000000000000000000000000000000000000001690556116fb81612c3e565b60405173ffffffffffffffffffffffffffffffffffffffff8216907f9c6ff02e684f8a81389ed942fea1147c16b8cc5fe79f2bfbc520d44e214aed4b90600090a250565b60003390506117928173ffffffffffffffffffffffffffffffffffffffff1663ffa1ad746040518163ffffffff1660e01b8152600401600060405180830381865afa158015610626573d6000803e3d6000fd5b6117c8576040517f9e2f7c4b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6117d181612ee1565b611807576040517f3f4b296600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81158061181757506301e1338082115b1561184e576040517fa0ce228b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8161188c8273ffffffffffffffffffffffffffffffffffffffff16600090815260026020908152604080832060038352818420548452909152902090565b5561189681613124565b8073ffffffffffffffffffffffffffffffffffffffff167fa48d13ee8fad9974fa901cfb88a02d39c5361efbab13bb9b3aa7caa3f6d6b786836040516107a491815260200190565b6118e781612ffb565b6118f081612b77565b73ffffffffffffffffffffffffffffffffffffffff818116600090815260208190526040902060010154163314611953576040517fa1f2082000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8116600090815260016020526040902054156119b0576040517f9cd9090400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8116600081815260016020908152604091829020429081905591519182527f3eb9241ca06793ab672590e858d0977206f824e7367806f94a90af391d275d33910160405180910390a250565b33600081815260026020908152604080832060038352818420548452909152902054600003611a405750611e5c565b6040517f2f54bf6e00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8381166004830152821690632f54bf6e90602401602060405180830381865afa158015611aac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ad09190614468565b611b06576040517f5874e94f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060018273ffffffffffffffffffffffffffffffffffffffff1663affed0e06040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b55573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b7991906141a9565b611b839190614485565b905060008273ffffffffffffffffffffffffffffffffffffffff1663d8d11f788f8f8f8f8f8f8f8f8f8c6040518b63ffffffff1660e01b8152600401611bd29a99989796959493929190614129565b602060405180830381865afa158015611bef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c1391906141a9565b90506000611c548473ffffffffffffffffffffffffffffffffffffffff16600090815260026020908152604080832060038352818420548452909152902090565b60008381526002918201602052604090209150600282015460ff166003811115611c8057611c80613ced565b03611cb7576040517f3e8b838900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6003600282015460ff166003811115611cd257611cd2613ced565b03611d09576040517f183ca43100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600282015460ff166003811115611d2457611d24613ced565b03611d5b576040517f03c8597300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b4281600101541115611d99576040517f503c42c400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611da284613124565b600281810180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600390811790915573ffffffffffffffffffffffffffffffffffffffff8616600090815260209283526040808220928452808220548252919092529020611e13908390610d64565b50604051829073ffffffffffffffffffffffffffffffffffffffff8616907fdd4b9b318b98162cb1e7b52752a3fd110d5b7966f3b50884c1cd3bd04058e5c790600090a3505050505b5050505050505050505050565b611e7281612ffb565b611e7b81612b77565b73ffffffffffffffffffffffffffffffffffffffff818116600090815260208190526040902060010154163314611ede576040517fa1f2082000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff811660009081526001602052604081205490819003611f3e576040517f09f9592000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611f4782612ac0565b421015611f80576040517f279e3d2400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000905560008273ffffffffffffffffffffffffffffffffffffffff1663a0e67e2b6040518163ffffffff1660e01b8152600401600060405180830381865afa158015612010573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052612056919081019061449c565b90505b600181511115612261578273ffffffffffffffffffffffffffffffffffffffff1663468721a78460006001856000815181106120975761209761454e565b602090810291909101015160405173ffffffffffffffffffffffffffffffffffffffff92831660248201529116604482015260016064820152608401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167ff8dc5dd900000000000000000000000000000000000000000000000000000000179052517fffffffff0000000000000000000000000000000000000000000000000000000060e086901b1681526121859392919060009060040161457d565b6020604051808303816000875af11580156121a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121c89190614468565b508273ffffffffffffffffffffffffffffffffffffffff1663a0e67e2b6040518163ffffffff1660e01b8152600401600060405180830381865afa158015612214573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405261225a919081019061449c565b9050612059565b8273ffffffffffffffffffffffffffffffffffffffff1663468721a78460006001856000815181106122955761229561454e565b60209081029190910181015173ffffffffffffffffffffffffffffffffffffffff8a811660009081529283905260409283902060010154925193811660248501529081166044840152166064820152608401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fe318b52b00000000000000000000000000000000000000000000000000000000179052517fffffffff0000000000000000000000000000000000000000000000000000000060e086901b1681526123999392919060009060040161457d565b6020604051808303816000875af11580156123b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123dc9190614468565b5060008373ffffffffffffffffffffffffffffffffffffffff1663a0e67e2b6040518163ffffffff1660e01b8152600401600060405180830381865afa15801561242a573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052612470919081019061449c565b9050805160011415806124dd575073ffffffffffffffffffffffffffffffffffffffff80851660009081526020819052604081206001015483519216918391906124bc576124bc61454e565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b15612514576040517fe330ac0500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60405160006024820181905273ffffffffffffffffffffffffffffffffffffffff86169163468721a7918791604401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fe19a9dd900000000000000000000000000000000000000000000000000000000179052517fffffffff0000000000000000000000000000000000000000000000000000000060e086901b1681526125f59392919060009060040161457d565b6020604051808303816000875af1158015612614573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126389190614468565b5073ffffffffffffffffffffffffffffffffffffffff8481166000818152602081815260409182902060010154915191909316815290917fdfdecb71eb0580c9263c867bc6de9dd6f859cc6a6ee33d47e505904f1d5601c9910160405180910390a250505050565b606060006126e18373ffffffffffffffffffffffffffffffffffffffff16600090815260026020908152604080832060038352818420548452909152902090565b905060006126f1826003016131a1565b90506000815167ffffffffffffffff81111561270f5761270f61395a565b60405190808252806020026020018201604052801561274857816020015b612735613844565b81526020019060019003908161272d5790505b50905060005b82518110156129a35783600201600084838151811061276f5761276f61454e565b602002602001015181526020019081526020016000206040518060a001604052908160008201548152602001600182015481526020016002820160009054906101000a900460ff1660038111156127c8576127c8613ced565b60038111156127d9576127d9613ced565b815260200160038201604051806101200160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820154815260200160028201805461285e9061427b565b80601f016020809104026020016040519081016040528092919081815260200182805461288a9061427b565b80156128d75780601f106128ac576101008083540402835291602001916128d7565b820191906000526020600020905b8154815290600101906020018083116128ba57829003601f168201915b5050509183525050600382015460209091019060ff1660018111156128fe576128fe613ced565b600181111561290f5761290f613ced565b815260048201546020808301919091526005830154604083015260068301546060830152600783015473ffffffffffffffffffffffffffffffffffffffff908116608084015260089093015490921660a090910152908252600c929092015491015282518390839081106129855761298561454e565b6020026020010181905250808061299b90614430565b91505061274e565b50949350505050565b6000806129b8836131ac565b905060008373ffffffffffffffffffffffffffffffffffffffff1663e75235b86040518163ffffffff1660e01b8152600401602060405180830381865afa158015612a07573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a2b91906141a9565b9050808210612a3a5780612a3c565b815b949350505050565b33612a4e81612ffb565b612a5781612b77565b73ffffffffffffffffffffffffffffffffffffffff811660009081526001602052604081205490819003612ab7576040517f09f9592000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6103a582612c3e565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260016020526040812054808203612af65750600092915050565b73ffffffffffffffffffffffffffffffffffffffff831660009081526020819052604090208054612a3c9083614263565b600080612b33846132c4565b90506000612b40846132c4565b80518351919250148015612b5b575080602001518260200151145b8015612b6e575080604001518260400151145b95945050505050565b6040517f2d9ad53d00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff821690632d9ad53d90602401602060405180830381865afa158015612be1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c059190614468565b612c3b576040517f9fdada3100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b73ffffffffffffffffffffffffffffffffffffffff81166000908152600160205260408120549003612c6d5750565b73ffffffffffffffffffffffffffffffffffffffff8116600081815260016020526040808220829055517fadfa6511c5a9b5ac1adc5e4e0ca637c465f24ab56c1bd255a083e0023e3b7c429190a250565b612cc781612ee1565b8015612d5c57506040517f2d9ad53d00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff821690632d9ad53d90602401602060405180830381865afa158015612d38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d5c9190614468565b612d635750565b73ffffffffffffffffffffffffffffffffffffffff81166000818152600260209081526040808320600383528184205484528252808320549383529082905281205490829003612db257505050565b80600003612dbf57505050565b612dca8260026145c1565b811015612e03576040517f47dca1ce00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b6000612e148383613490565b9392505050565b73ffffffffffffffffffffffffffffffffffffffff81166000908152600260209081526040808320600383528184205484529091529020612e5b826129ac565b816001015410156103a5576001810180549081906000612e7a83614430565b91905055508273ffffffffffffffffffffffffffffffffffffffff167f4eda179760b4e68650058376d4acef78e953221317450d29b4920e6d2836944c828460010154604051612ed4929190918252602082015260400190565b60405180910390a2505050565b6040517f5624b25b0000000000000000000000000000000000000000000000000000000081527f4a204f620c8c5ccdca3fd54d003badd85ba500436a431f0cbda4f558c93c34c8600482015260016024820152600090819073ffffffffffffffffffffffffffffffffffffffff841690635624b25b90604401600060405180830381865afa158015612f77573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052612fbd91908101906140e0565b806020019051810190612fd091906145fe565b73ffffffffffffffffffffffffffffffffffffffff1630149392505050565b6000612e14838361358a565b73ffffffffffffffffffffffffffffffffffffffff808216600090815260208190526040902060018101549091166103a5576040517fa0fe939b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f2d9ad53d00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff821690632d9ad53d90602401602060405180830381865afa1580156130c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130ed9190614468565b15612c3b576040517f70a3809400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff811660008181526002602090815260408083206003835281842054845282529182902060018082018054908290558451818152938401919091529093909290917f4eda179760b4e68650058376d4acef78e953221317450d29b4920e6d2836944c9101612ed4565b6060610508826135d9565b60008173ffffffffffffffffffffffffffffffffffffffff1663e75235b86040518163ffffffff1660e01b8152600401602060405180830381865afa1580156131f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061321d91906141a9565b8273ffffffffffffffffffffffffffffffffffffffff1663a0e67e2b6040518163ffffffff1660e01b8152600401600060405180830381865afa158015613268573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526132ae919081019061449c565b516132b99190614485565b610508906001614263565b6132e860405180606001604052806000815260200160008152602001600081525090565b6000613329836040518060400160405280600181526020017f2e00000000000000000000000000000000000000000000000000000000000000815250613635565b9050600381511015613367576040517f9eda858c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006133c28260028151811061337f5761337f61454e565b60200260200101516040518060400160405280600181526020017f2d00000000000000000000000000000000000000000000000000000000000000815250613635565b9050600061341f826000815181106133dc576133dc61454e565b60200260200101516040518060400160405280600181526020017f2b00000000000000000000000000000000000000000000000000000000000000815250613635565b9050604051806060016040528061344f856000815181106134425761344261454e565b60200260200101516136df565b815260200161346a856001815181106134425761344261454e565b8152602001613485836000815181106134425761344261454e565b905295945050505050565b600081815260018301602052604081205480156135795760006134b4600183614485565b85549091506000906134c890600190614485565b905081811461352d5760008660000182815481106134e8576134e861454e565b906000526020600020015490508087600001848154811061350b5761350b61454e565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061353e5761353e61461b565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610508565b6000915050610508565b5092915050565b60008181526001830160205260408120546135d157508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610508565b506000610508565b60608160000180548060200260200160405190810160405280929190818152602001828054801561362957602002820191906000526020600020905b815481526020019060010190808311613615575b50505050509050919050565b606060006136438484613757565b9050601f1960208201600183510160051b81018651838201526001845101845260005b8251606084528181146136ab5760405182820380825286601f8201165b8b8501810151838201528701806136835750600082820160200152603f018616810160405284525b8751602094909401930190508183106136665750505050809150825161358357602081019150600281510382525092915050565b80516000907f1999999999999999999999999999999999999999999999999999999999999999825b600181019050603060ff82870151160382851185600a028281019650600983118188108317171586029550505050828110613707575050806137515763101827966000526004601cfd5b50919050565b60608251825181811161383c57602085019450602084019350602060405101925084600182848801030160006020841061379057508286205b601f841660200360031b87515b8951818118831c6137f25783156137d05783878c20146137d05760018b019a50848b106137ca5750613801565b5061379d565b858b0389529986019960209098019786156137f257848b106137ca5750613801565b5060018a019950838a1061379d575b5050604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08189030160051c8152602090970190525050505b505092915050565b6040805160a0810182526000808252602082018190529091820190815260200161386c613879565b8152602001600081525090565b604051806101200160405280600073ffffffffffffffffffffffffffffffffffffffff1681526020016000815260200160608152602001600060018111156138c3576138c3613ced565b8152602001600081526020016000815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff1681525090565b60006020828403121561392a57600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114612e1457600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051610120810167ffffffffffffffff811182821017156139ad576139ad61395a565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff811182821017156139fa576139fa61395a565b604052919050565b73ffffffffffffffffffffffffffffffffffffffff81168114612c3b57600080fd5b8035613a2f81613a02565b919050565b600060408284031215613a4657600080fd5b6040516040810181811067ffffffffffffffff82111715613a6957613a6961395a565b604052823581526020830135613a7e81613a02565b60208201529392505050565b600060208284031215613a9c57600080fd5b5035919050565b600067ffffffffffffffff821115613abd57613abd61395a565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b600082601f830112613afa57600080fd5b8135613b0d613b0882613aa3565b6139b3565b818152846020838601011115613b2257600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060808587031215613b5557600080fd5b8435613b6081613a02565b93506020850135925060408501359150606085013567ffffffffffffffff811115613b8a57600080fd5b613b9687828801613ae9565b91505092959194509250565b803560028110613a2f57600080fd5b60008060008060808587031215613bc757600080fd5b8435613bd281613a02565b935060208501359250604085013567ffffffffffffffff80821115613bf657600080fd5b908601906101208289031215613c0b57600080fd5b613c13613989565b613c1c83613a24565b815260208301356020820152604083013582811115613c3a57600080fd5b613c468a828601613ae9565b604083015250613c5860608401613ba2565b60608201526080830135608082015260a083013560a082015260c083013560c0820152613c8760e08401613a24565b60e0820152610100613c9a818501613a24565b9082015293506060870135915080821115613cb457600080fd5b50613b9687828801613ae9565b60008060408385031215613cd457600080fd5b8235613cdf81613a02565b946020939093013593505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60005b83811015613d37578181015183820152602001613d1f565b83811115613d46576000848401525b50505050565b60008151808452613d64816020860160208601613d1c565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60028110613da657613da6613ced565b9052565b80518252602081015160208301526000604082015160048110613dcf57613dcf613ced565b80604085015250606082015160a06060850152613e0560a08501825173ffffffffffffffffffffffffffffffffffffffff169052565b602081015160c085015260408101516101208060e0870152613e2b6101c0870183613d4c565b91506060830151610100613e4181890183613d96565b60808501518389015260a085015161014089015260c085015161016089015260e08501519250613e8a61018089018473ffffffffffffffffffffffffffffffffffffffff169052565b939093015173ffffffffffffffffffffffffffffffffffffffff81166101a08801529250613eb59050565b60808401516080860152809250505092915050565b602081526000612e146020830184613daa565b600060208284031215613eef57600080fd5b8135612e1481613a02565b602081526000612e146020830184613d4c565b60008060008060008060008060008060006101608c8e031215613f2f57600080fd5b613f388c613a24565b9a5060208c0135995067ffffffffffffffff8060408e01351115613f5b57600080fd5b613f6b8e60408f01358f01613ae9565b9950613f7960608e01613ba2565b985060808d0135975060a08d0135965060c08d01359550613f9c60e08e01613a24565b9450613fab6101008e01613a24565b9350806101208e01351115613fbf57600080fd5b50613fd18d6101208e01358e01613ae9565b9150613fe06101408d01613a24565b90509295989b509295989b9093969950565b8015158114612c3b57600080fd5b6000806040838503121561401357600080fd5b82359150602083013561402581613ff2565b809150509250929050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b828110156140a3577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0888603018452614091858351613daa565b94509285019290850190600101614057565b5092979650505050505050565b60006140be613b0884613aa3565b90508281528383830111156140d257600080fd5b612e14836020830184613d1c565b6000602082840312156140f257600080fd5b815167ffffffffffffffff81111561410957600080fd5b8201601f8101841361411a57600080fd5b612a3c848251602084016140b0565b600061014073ffffffffffffffffffffffffffffffffffffffff808e1684528c60208501528160408501526141608285018d613d4c565b925061416f606085018c613d96565b60808401999099525060a082019690965260c081019490945291851660e08401529093166101008201526101200191909152949350505050565b6000602082840312156141bb57600080fd5b5051919050565b8481526080602082015260006141db6080830186613d4c565b82810360408401526141ed8186613d4c565b91505082606083015295945050505050565b8381526060602082015260006142186060830185613d4c565b828103604084015261422a8185613d4c565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000821982111561427657614276614234565b500190565b600181811c9082168061428f57607f821691505b602082108103613751577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b601f821115612e0357600081815260208120601f850160051c810160208610156142ef5750805b601f850160051c820191505b8181101561430e578281556001016142fb565b505050505050565b815167ffffffffffffffff8111156143305761433061395a565b6143448161433e845461427b565b846142c8565b602080601f83116001811461439757600084156143615750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b17855561430e565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b828110156143e4578886015182559484019460019091019084016143c5565b508582101561442057878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361446157614461614234565b5060010190565b60006020828403121561447a57600080fd5b8151612e1481613ff2565b60008282101561449757614497614234565b500390565b600060208083850312156144af57600080fd5b825167ffffffffffffffff808211156144c757600080fd5b818501915085601f8301126144db57600080fd5b8151818111156144ed576144ed61395a565b8060051b91506144fe8483016139b3565b818152918301840191848101908884111561451857600080fd5b938501935b83851015614542578451925061453283613a02565b828252938501939085019061451d565b98975050505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b73ffffffffffffffffffffffffffffffffffffffff851681528360208201526080604082015260006145b26080830185613d4c565b9050612b6e6060830184613d96565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156145f9576145f9614234565b500290565b60006020828403121561461057600080fd5b8151612e1481613a02565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[PaFW\x80a\0 `\09`\0\xF3\xFE`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`\x046\x10a\x01\x82W`\x005`\xE0\x1C\x80ce\xCFP\xEC\x11a\0\xD8W\x80c\xBC\xEB\x8E\xDA\x11a\0\x8CW\x80c\xDB\x16\xAA\xB9\x11a\0fW\x80c\xDB\x16\xAA\xB9\x14a\x04\x0FW\x80c\xE1\x0F\xFC\x92\x14a\x04\x17W\x80c\xE6G\xDE\xE1\x14a\x04*W`\0\x80\xFD[\x80c\xBC\xEB\x8E\xDA\x14a\x03\xC9W\x80c\xC1'\xFD9\x14a\x03\xDCW\x80c\xC9q6V\x14a\x03\xFCW`\0\x80\xFD[\x80cu\xF0\xBBR\x11a\0\xBDW\x80cu\xF0\xBBR\x14a\x03\x84W\x80c\x93'\x13h\x14a\x03\x97W\x80c\x96\xDEE\xA4\x14a\x03\xA9W`\0\x80\xFD[\x80ce\xCFP\xEC\x14a\x03^W\x80cr\xFB\x97\x03\x14a\x03qW`\0\x80\xFD[\x80c\x12I-\x97\x11a\x01:W\x80cV\x98\xB1j\x11a\x01\x14W\x80cV\x98\xB1j\x14a\x02\xF8W\x80c\\;E\x10\x14a\x03NW\x80c`\x92\xB3\x18\x14a\x03VW`\0\x80\xFD[\x80c\x12I-\x97\x14a\x01\xFDW\x80cG\xC02#\x14a\x02\x1DW\x80cT\xFDMP\x14a\x02\xAFW`\0\x80\xFD[\x80c\x06\xD8\xB7\xE2\x11a\x01kW\x80c\x06\xD8\xB7\xE2\x14a\x01\xC4W\x80c\tn\x01\xF7\x14a\x01\xD7W\x80c\x0E@\xBE\xEC\x14a\x01\xEAW`\0\x80\xFD[\x80c\x01\xFF\xC9\xA7\x14a\x01\x87W\x80c\x05\xCC\xF6\x06\x14a\x01\xAFW[`\0\x80\xFD[a\x01\x9Aa\x01\x956`\x04a9\x18V[a\x04uV[`@Q\x90\x15\x15\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[a\x01\xC2a\x01\xBD6`\x04a:4V[a\x05\x0EV[\0[a\x01\xC2a\x01\xD26`\x04a:\x8AV[a\x07\xB5V[a\x01\xC2a\x01\xE56`\x04a;?V[a\x08kV[a\x01\xC2a\x01\xF86`\x04a;\xB1V[a\r\xC3V[a\x02\x10a\x02\x0B6`\x04a<\xC1V[a\x13\xE3V[`@Qa\x01\xA6\x91\x90a>\xCAV[a\x02~a\x02+6`\x04a>\xDDV[`@\x80Q\x80\x82\x01\x82R`\0\x80\x82R` \x91\x82\x01\x81\x90Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x93\x84\x16\x81R\x80\x82R\x82\x90 \x82Q\x80\x84\x01\x90\x93R\x80T\x83R`\x01\x01T\x90\x92\x16\x91\x81\x01\x91\x90\x91R\x90V[`@\x80Q\x82Q\x81R` \x92\x83\x01Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x92\x81\x01\x92\x90\x92R\x01a\x01\xA6V[a\x02\xEB`@Q\x80`@\x01`@R\x80`\x06\x81R` \x01\x7F1.10.1\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\x81RP\x81V[`@Qa\x01\xA6\x91\x90a>\xFAV[a\x03@a\x03\x066`\x04a>\xDDV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\0\x90\x81R`\x02` \x90\x81R`@\x80\x83 `\x03\x83R\x81\x84 T\x84R\x90\x91R\x90 T\x90V[`@Q\x90\x81R` \x01a\x01\xA6V[a\x01\xC2a\x16\x14V[a\x01\xC2a\x16\x8EV[a\x01\xC2a\x03l6`\x04a:\x8AV[a\x17?V[a\x01\xC2a\x03\x7F6`\x04a>\xDDV[a\x18\xDEV[a\x01\xC2a\x03\x926`\x04a?\rV[a\x1A\x11V[a\x01\xC2a\x03\xA56`\x04a@\0V[PPV[a\x03@a\x03\xB76`\x04a>\xDDV[`\x01` R`\0\x90\x81R`@\x90 T\x81V[a\x01\xC2a\x03\xD76`\x04a>\xDDV[a\x1EiV[a\x03\xEFa\x03\xEA6`\x04a>\xDDV[a&\xA0V[`@Qa\x01\xA6\x91\x90a@0V[a\x03@a\x04\n6`\x04a>\xDDV[a)\xACV[a\x01\xC2a*DV[a\x03@a\x04%6`\x04a>\xDDV[a*\xC0V[a\x03@a\x0486`\x04a>\xDDV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\0\x90\x81R`\x02` \x90\x81R`@\x80\x83 `\x03\x83R\x81\x84 T\x84R\x90\x91R\x90 `\x01\x01T\x90V[`\0\x7F\xFF\xFF\xFF\xFF\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\x82\x16\x7F\xE6\xD7\xA8:\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\x14\x80a\x05\x08WP\x7F\xFF\xFF\xFF\xFF\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\x82\x16\x7F\x01\xFF\xC9\xA7\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\x14[\x92\x91PPV[\x80Q3\x90`\0\x03a\x05KW`@Q\x7Ft\xA7\xE9n\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\x01`@Q\x80\x91\x03\x90\xFD[` \x82\x01Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x15\x80a\x05\xA1WP\x80s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x82` \x01Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14[\x15a\x05\xD8W`@Q\x7FU-\xD1\xB7\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\x01`@Q\x80\x91\x03\x90\xFD[a\x06\xA7\x81s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xFF\xA1\xADt`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01`\0`@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x06&W=`\0\x80>=`\0\xFD[PPPP`@Q=`\0\x82>`\x1F=\x90\x81\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x82\x01`@Ra\x06l\x91\x90\x81\x01\x90a@\xE0V[`@Q\x80`@\x01`@R\x80`\x05\x81R` \x01\x7F1.4.1\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\x81RPa+'V[a\x06\xDDW`@Q\x7F\xDA!\xAE\xD9\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\x01`@Q\x80\x91\x03\x90\xFD[a\x06\xE6\x81a+wV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x81\x16`\0\x90\x81R` \x81\x81R`@\x90\x91 \x84Q\x81U\x90\x84\x01Q`\x01\x90\x91\x01\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x91\x90\x92\x16\x17\x90Ua\x07N\x81a,>V[\x81Q` \x83\x01Q`@Q3\x92\x7FG\xE2\xDD\xAE>\xCE,w\xF6\r\x8E\x9EZ\x89\xA5\x0F\x1D\x13t\xA8\x7F\xB1\x19V\xD2zkI\x86\xBB\xA1~\x92a\x07\xA4\x92\x91\x82Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16` \x82\x01R`@\x01\x90V[`@Q\x80\x91\x03\x90\xA2a\x03\xA5\x81a,\xBEV[\x7FQ\xA7\xF6\\c%\x88/#}J\xEBC\"\x81y\xCF\xADH\xB8hQ\x1DP\x8E$\xB4Cz\x81\x917`@Qa\x08`\x90` \x80\x82R`P\x90\x82\x01R\x7FThis function is not meant to be`@\x82\x01R\x7F called, did you mean to call ca``\x82\x01R\x7FncelTransaction?\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x80\x82\x01R`\xA0\x01\x90V[`@Q\x80\x91\x03\x90\xA1PV[`\x02s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x85\x16`\0\x90\x81R`\x02` \x90\x81R`@\x80\x83 `\x03\x83R\x81\x84 T\x84R\x90\x91R\x90 `\0\x85\x81R`\x02\x91\x82\x01` R`@\x90 \x01T`\xFF\x16`\x03\x81\x11\x15a\x08\xCBWa\x08\xCBa<\xEDV[\x03a\t\x02W`@Q\x7F>\x8B\x83\x89\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\x01`@Q\x80\x91\x03\x90\xFD[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x16`\0\x90\x81R`\x02` \x81\x81R`@\x80\x84 `\x03\x80\x84R\x82\x86 T\x86R\x90\x83R\x81\x85 \x88\x86R\x84\x01\x90\x92R\x90\x92 \x01T`\xFF\x16\x81\x81\x11\x15a\t[Wa\t[a<\xEDV[\x03a\t\x92W`@Q\x7F\x18<\xA41\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\x01`@Q\x80\x91\x03\x90\xFD[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x16`\0\x90\x81R`\x02` \x90\x81R`@\x80\x83 `\x03\x83R\x81\x84 T\x84R\x90\x91R\x81 `\0\x85\x81R`\x02\x91\x82\x01` R`@\x90 \x01T`\xFF\x16`\x03\x81\x11\x15a\t\xF0Wa\t\xF0a<\xEDV[\x03a\n'W`@Q\x7F\x03\xC8Ys\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\x01`@Q\x80\x91\x03\x90\xFD[`\x000s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\x06\xD8\xB7\xE2\x85`@Q`$\x01a\nX\x91\x81R` \x01\x90V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x91P`\xE0\x1B` \x82\x01\x80Q{\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x81\x83\x16\x17\x83RPPPP\x90P`\0\x85s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xE8f7\xDB0`\0\x85`\0\x80`\0\x80`\0\x80\x8E`@Q\x8Bc\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01a\n\xED\x9A\x99\x98\x97\x96\x95\x94\x93\x92\x91\x90aA)V[`\0`@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x0B\nW=`\0\x80>=`\0\xFD[PPPP`@Q=`\0\x82>`\x1F=\x90\x81\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x82\x01`@Ra\x0BP\x91\x90\x81\x01\x90a@\xE0V[\x90P`\0\x86s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xD8\xD1\x1Fx0`\0\x86`\0\x80`\0\x80`\0\x80\x8F`@Q\x8Bc\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01a\x0B\xA3\x9A\x99\x98\x97\x96\x95\x94\x93\x92\x91\x90aA)V[` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x0B\xC0W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x0B\xE4\x91\x90aA\xA9V[\x90P\x86s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\x12\xFBh\xE0\x82\x84\x87a\x0CB\x8Cs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\0\x90\x81R`\x02` \x90\x81R`@\x80\x83 `\x03\x83R\x81\x84 T\x84R\x90\x91R\x90 \x90V[`\x01\x01T`@Q\x85c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01a\x0Ce\x94\x93\x92\x91\x90aA\xC2V[`\0`@Q\x80\x83\x03\x81\x86\x80;\x15\x80\x15a\x0C}W`\0\x80\xFD[PZ\xFA\x15\x80\x15a\x0C\x91W=`\0\x80>=`\0\xFD[PPPP`\x02a\x0C\xD4\x88s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\0\x90\x81R`\x02` \x90\x81R`@\x80\x83 `\x03\x83R\x81\x84 T\x84R\x90\x91R\x90 \x90V[`\0\x88\x81R`\x02\x91\x82\x01` R`@\x90 \x01\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x16`\x01\x83`\x03\x81\x11\x15a\r\x1EWa\r\x1Ea<\xEDV[\x02\x17\x90UPa\rm\x86a\rd\x89s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\0\x90\x81R`\x02` \x90\x81R`@\x80\x83 `\x03\x83R\x81\x84 T\x84R\x90\x91R\x90 \x90V[`\x03\x01\x90a.\x08V[Pa\rw\x87a.\x1BV[`@Q\x86\x90s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x89\x16\x90\x7F\xA4/\xD8W\xB4}=\x04\xF5\xB2\x9F5\xCB\x054?f\xB3\x17c=-\xC2\x91\x07&\xBDK\xCA\x1A\x16%\x90`\0\x90\xA3PPPPPPPV[a\r\xCC\x84a.\xE1V[a\x0E\x02W`@Q\x7F?K)f\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\x01`@Q\x80\x91\x03\x90\xFD[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x16`\0\x90\x81R`\x02` \x90\x81R`@\x80\x83 `\x03\x83R\x81\x84 T\x84R\x90\x91R\x90 T`\0\x03a\x0EsW`@Q\x7F\x082\xDDi\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\x01`@Q\x80\x91\x03\x90\xFD[`\0\x84s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xE8f7\xDB\x84`\0\x01Q\x85` \x01Q\x86`@\x01Q\x87``\x01Q\x88`\x80\x01Q\x89`\xA0\x01Q\x8A`\xC0\x01Q\x8B`\xE0\x01Q\x8Ca\x01\0\x01Q\x8E`@Q\x8Bc\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01a\x0E\xE5\x9A\x99\x98\x97\x96\x95\x94\x93\x92\x91\x90aA)V[`\0`@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x0F\x02W=`\0\x80>=`\0\xFD[PPPP`@Q=`\0\x82>`\x1F=\x90\x81\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x82\x01`@Ra\x0FH\x91\x90\x81\x01\x90a@\xE0V[\x90P`\0\x85s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xD8\xD1\x1Fx\x85`\0\x01Q\x86` \x01Q\x87`@\x01Q\x88``\x01Q\x89`\x80\x01Q\x8A`\xA0\x01Q\x8B`\xC0\x01Q\x8C`\xE0\x01Q\x8Da\x01\0\x01Q\x8F`@Q\x8Bc\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01a\x0F\xBC\x9A\x99\x98\x97\x96\x95\x94\x93\x92\x91\x90aA)V[` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x0F\xD9W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x0F\xFD\x91\x90aA\xA9V[\x90Pa\x10<\x86s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\0\x90\x81R`\x02` \x90\x81R`@\x80\x83 `\x03\x83R\x81\x84 T\x84R\x90\x91R\x90 \x90V[`\0\x82\x81R`\x02\x91\x90\x91\x01` R`@\x90 `\x01\x01T\x15a\x10\x89W`@Q\x7F\x809M\xE6\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\x01`@Q\x80\x91\x03\x90\xFD[`@Q\x7F\x93O:\x11\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\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x16\x90c\x93O:\x11\x90a\x10\xDF\x90\x84\x90\x86\x90\x88\x90`\x04\x01aA\xFFV[`\0`@Q\x80\x83\x03\x81\x86\x80;\x15\x80\x15a\x10\xF7W`\0\x80\xFD[PZ\xFA\x15\x80\x15a\x11\x0BW=`\0\x80>=`\0\xFD[PPPP`\0a\x11N\x87s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\0\x90\x81R`\x02` \x90\x81R`@\x80\x83 `\x03\x83R\x81\x84 T\x84R\x90\x91R\x90 \x90V[Ta\x11Y\x90BaBcV[`@\x80Q`\xA0\x81\x01\x82R\x84\x81R` \x80\x82\x01\x84\x81R`\x01\x83\x85\x01\x81\x81R``\x85\x01\x8C\x90R`\x80\x85\x01\x8D\x90Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x8E\x16`\0\x90\x81R`\x02\x80\x86R\x87\x82 `\x03\x80\x88R\x89\x84 T\x84R\x90\x87R\x88\x83 \x8C\x84R\x82\x01\x90\x96R\x96\x90 \x85Q\x81U\x92Q\x83\x83\x01UQ\x94\x82\x01\x80T\x96\x97P\x93\x95\x91\x94\x93\x92\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x90\x92\x16\x91\x84\x90\x81\x11\x15a\x12\x13Wa\x12\x13a<\xEDV[\x02\x17\x90UP``\x82\x01Q\x80Q`\x03\x83\x01\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x92\x16\x91\x90\x91\x17\x81U` \x82\x01Q`\x04\x84\x01U`@\x82\x01Q`\x05\x84\x01\x90a\x12\x83\x90\x82aC\x16V[P``\x82\x01Q`\x03\x82\x01\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x16`\x01\x83\x81\x81\x11\x15a\x12\xC4Wa\x12\xC4a<\xEDV[\x02\x17\x90UP`\x80\x82\x81\x01Q`\x04\x83\x01U`\xA0\x83\x01Q`\x05\x83\x01U`\xC0\x83\x01Q`\x06\x83\x01U`\xE0\x83\x01Q`\x07\x83\x01\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x81\x16s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x93\x84\x16\x17\x90\x91Ua\x01\0\x90\x94\x01Q`\x08\x90\x93\x01\x80T\x90\x94\x16\x92\x81\x16\x92\x90\x92\x17\x90\x92U\x92\x01Q`\x0C\x90\x91\x01U\x87\x16`\0\x90\x81R`\x02` \x90\x81R`@\x80\x83 `\x03\x83R\x81\x84 T\x84R\x90\x91R\x90 a\x13\x88\x90\x83\x90`\x03\x01\x90a/\xEFV[P\x81\x87s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7Fe?\x8Fo\xCE*P;-\xFC\xA3N\x95\xB3\xE4\x90\"T\xA1\x17e\xD2e\x8C\x0EZ\xF1\xD6J\xB2v\xCF\x83`@Qa\x13\xD2\x91\x81R` \x01\x90V[`@Q\x80\x91\x03\x90\xA3PPPPPPPV[a\x13\xEBa8DV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x16`\0\x90\x81R`\x02` \x81\x81R`@\x80\x84 `\x03\x80\x84R\x82\x86 T\x86R\x90\x83R\x81\x85 \x87\x86R\x84\x01\x83R\x93\x81\x90 \x81Q`\xA0\x81\x01\x83R\x81T\x81R`\x01\x82\x01T\x93\x81\x01\x93\x90\x93R\x92\x83\x01T\x91\x93\x90\x84\x01\x91`\xFF\x16\x90\x81\x11\x15a\x14dWa\x14da<\xEDV[`\x03\x81\x11\x15a\x14uWa\x14ua<\xEDV[\x81R` \x01`\x03\x82\x01`@Q\x80a\x01 \x01`@R\x90\x81`\0\x82\x01`\0\x90T\x90a\x01\0\n\x90\x04s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81R` \x01`\x01\x82\x01T\x81R` \x01`\x02\x82\x01\x80Ta\x14\xFA\x90aB{V[\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x92\x91\x90\x81\x81R` \x01\x82\x80Ta\x15&\x90aB{V[\x80\x15a\x15sW\x80`\x1F\x10a\x15HWa\x01\0\x80\x83T\x04\x02\x83R\x91` \x01\x91a\x15sV[\x82\x01\x91\x90`\0R` `\0 \x90[\x81T\x81R\x90`\x01\x01\x90` \x01\x80\x83\x11a\x15VW\x82\x90\x03`\x1F\x16\x82\x01\x91[PPP\x91\x83RPP`\x03\x82\x01T` \x90\x91\x01\x90`\xFF\x16`\x01\x81\x11\x15a\x15\x9AWa\x15\x9Aa<\xEDV[`\x01\x81\x11\x15a\x15\xABWa\x15\xABa<\xEDV[\x81R`\x04\x82\x01T` \x80\x83\x01\x91\x90\x91R`\x05\x83\x01T`@\x83\x01R`\x06\x83\x01T``\x83\x01R`\x07\x83\x01Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x81\x16`\x80\x84\x01R`\x08\x90\x93\x01T\x90\x92\x16`\xA0\x90\x91\x01R\x90\x82R`\x0C\x92\x90\x92\x01T\x91\x01R\x93\x92PPPV[3a\x16\x1E\x81a.\xE1V[\x15a\x16UW`@Q\x7F\xA4\xD24\xCB\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\x01`@Q\x80\x91\x03\x90\xFD[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16`\0\x90\x81R`\x03` R`@\x81 \x80T\x91a\x16\x86\x83aD0V[\x91\x90PUPPV[3a\x16\x98\x81a/\xFBV[a\x16\xA1\x81a0_V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16`\0\x90\x81R` \x81\x90R`@\x81 \x90\x81U`\x01\x01\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x90Ua\x16\xFB\x81a,>V[`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16\x90\x7F\x9Co\xF0.hO\x8A\x818\x9E\xD9B\xFE\xA1\x14|\x16\xB8\xCC_\xE7\x9F+\xFB\xC5 \xD4N!J\xEDK\x90`\0\x90\xA2PV[`\x003\x90Pa\x17\x92\x81s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xFF\xA1\xADt`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01`\0`@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x06&W=`\0\x80>=`\0\xFD[a\x17\xC8W`@Q\x7F\x9E/|K\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\x01`@Q\x80\x91\x03\x90\xFD[a\x17\xD1\x81a.\xE1V[a\x18\x07W`@Q\x7F?K)f\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\x01`@Q\x80\x91\x03\x90\xFD[\x81\x15\x80a\x18\x17WPc\x01\xE13\x80\x82\x11[\x15a\x18NW`@Q\x7F\xA0\xCE\"\x8B\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\x01`@Q\x80\x91\x03\x90\xFD[\x81a\x18\x8C\x82s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\0\x90\x81R`\x02` \x90\x81R`@\x80\x83 `\x03\x83R\x81\x84 T\x84R\x90\x91R\x90 \x90V[Ua\x18\x96\x81a1$V[\x80s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xA4\x8D\x13\xEE\x8F\xAD\x99t\xFA\x90\x1C\xFB\x88\xA0-9\xC56\x1E\xFB\xAB\x13\xBB\x9B:\xA7\xCA\xA3\xF6\xD6\xB7\x86\x83`@Qa\x07\xA4\x91\x81R` \x01\x90V[a\x18\xE7\x81a/\xFBV[a\x18\xF0\x81a+wV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x81\x16`\0\x90\x81R` \x81\x90R`@\x90 `\x01\x01T\x163\x14a\x19SW`@Q\x7F\xA1\xF2\x08 \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\x01`@Q\x80\x91\x03\x90\xFD[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16`\0\x90\x81R`\x01` R`@\x90 T\x15a\x19\xB0W`@Q\x7F\x9C\xD9\t\x04\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\x01`@Q\x80\x91\x03\x90\xFD[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16`\0\x81\x81R`\x01` \x90\x81R`@\x91\x82\x90 B\x90\x81\x90U\x91Q\x91\x82R\x7F>\xB9$\x1C\xA0g\x93\xABg%\x90\xE8X\xD0\x97r\x06\xF8$\xE76x\x06\xF9J\x90\xAF9\x1D']3\x91\x01`@Q\x80\x91\x03\x90\xA2PV[3`\0\x81\x81R`\x02` \x90\x81R`@\x80\x83 `\x03\x83R\x81\x84 T\x84R\x90\x91R\x90 T`\0\x03a\x1A@WPa\x1E\\V[`@Q\x7F/T\xBFn\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\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x81\x16`\x04\x83\x01R\x82\x16\x90c/T\xBFn\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x1A\xACW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x1A\xD0\x91\x90aDhV[a\x1B\x06W`@Q\x7FXt\xE9O\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\x01`@Q\x80\x91\x03\x90\xFD[`\0`\x01\x82s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xAF\xFE\xD0\xE0`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x1BUW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x1By\x91\x90aA\xA9V[a\x1B\x83\x91\x90aD\x85V[\x90P`\0\x82s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xD8\xD1\x1Fx\x8F\x8F\x8F\x8F\x8F\x8F\x8F\x8F\x8F\x8C`@Q\x8Bc\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01a\x1B\xD2\x9A\x99\x98\x97\x96\x95\x94\x93\x92\x91\x90aA)V[` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x1B\xEFW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x1C\x13\x91\x90aA\xA9V[\x90P`\0a\x1CT\x84s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\0\x90\x81R`\x02` \x90\x81R`@\x80\x83 `\x03\x83R\x81\x84 T\x84R\x90\x91R\x90 \x90V[`\0\x83\x81R`\x02\x91\x82\x01` R`@\x90 \x91P`\x02\x82\x01T`\xFF\x16`\x03\x81\x11\x15a\x1C\x80Wa\x1C\x80a<\xEDV[\x03a\x1C\xB7W`@Q\x7F>\x8B\x83\x89\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\x01`@Q\x80\x91\x03\x90\xFD[`\x03`\x02\x82\x01T`\xFF\x16`\x03\x81\x11\x15a\x1C\xD2Wa\x1C\xD2a<\xEDV[\x03a\x1D\tW`@Q\x7F\x18<\xA41\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\x01`@Q\x80\x91\x03\x90\xFD[`\0`\x02\x82\x01T`\xFF\x16`\x03\x81\x11\x15a\x1D$Wa\x1D$a<\xEDV[\x03a\x1D[W`@Q\x7F\x03\xC8Ys\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\x01`@Q\x80\x91\x03\x90\xFD[B\x81`\x01\x01T\x11\x15a\x1D\x99W`@Q\x7FPW`@Q\x7F\t\xF9Y \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\x01`@Q\x80\x91\x03\x90\xFD[a\x1FG\x82a*\xC0V[B\x10\x15a\x1F\x80W`@Q\x7F'\x9E=$\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\0\x83s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81R` \x01\x90\x81R` \x01`\0 `\0\x90U`\0\x82s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xA0\xE6~+`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01`\0`@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a \x10W=`\0\x80>=`\0\xFD[PPPP`@Q=`\0\x82>`\x1F=\x90\x81\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x82\x01`@Ra V\x91\x90\x81\x01\x90aD\x9CV[\x90P[`\x01\x81Q\x11\x15a\"aW\x82s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16cF\x87!\xA7\x84`\0`\x01\x85`\0\x81Q\x81\x10a \x97Wa \x97aENV[` \x90\x81\x02\x91\x90\x91\x01\x01Q`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x92\x83\x16`$\x82\x01R\x91\x16`D\x82\x01R`\x01`d\x82\x01R`\x84\x01`@\x80Q\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x81\x84\x03\x01\x81R\x91\x81R` \x82\x01\x80Q{\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xF8\xDC]\xD9\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\x17\x90RQ\x7F\xFF\xFF\xFF\xFF\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`\xE0\x86\x90\x1B\x16\x81Ra!\x85\x93\x92\x91\x90`\0\x90`\x04\x01aE}V[` `@Q\x80\x83\x03\x81`\0\x87Z\xF1\x15\x80\x15a!\xA4W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a!\xC8\x91\x90aDhV[P\x82s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xA0\xE6~+`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01`\0`@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\"\x14W=`\0\x80>=`\0\xFD[PPPP`@Q=`\0\x82>`\x1F=\x90\x81\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x82\x01`@Ra\"Z\x91\x90\x81\x01\x90aD\x9CV[\x90Pa YV[\x82s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16cF\x87!\xA7\x84`\0`\x01\x85`\0\x81Q\x81\x10a\"\x95Wa\"\x95aENV[` \x90\x81\x02\x91\x90\x91\x01\x81\x01Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x8A\x81\x16`\0\x90\x81R\x92\x83\x90R`@\x92\x83\x90 `\x01\x01T\x92Q\x93\x81\x16`$\x85\x01R\x90\x81\x16`D\x84\x01R\x16`d\x82\x01R`\x84\x01`@\x80Q\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x81\x84\x03\x01\x81R\x91\x81R` \x82\x01\x80Q{\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xE3\x18\xB5+\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\x17\x90RQ\x7F\xFF\xFF\xFF\xFF\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`\xE0\x86\x90\x1B\x16\x81Ra#\x99\x93\x92\x91\x90`\0\x90`\x04\x01aE}V[` `@Q\x80\x83\x03\x81`\0\x87Z\xF1\x15\x80\x15a#\xB8W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a#\xDC\x91\x90aDhV[P`\0\x83s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xA0\xE6~+`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01`\0`@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a$*W=`\0\x80>=`\0\xFD[PPPP`@Q=`\0\x82>`\x1F=\x90\x81\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x82\x01`@Ra$p\x91\x90\x81\x01\x90aD\x9CV[\x90P\x80Q`\x01\x14\x15\x80a$\xDDWPs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x85\x16`\0\x90\x81R` \x81\x90R`@\x81 `\x01\x01T\x83Q\x92\x16\x91\x83\x91\x90a$\xBCWa$\xBCaENV[` \x02` \x01\x01Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14\x15[\x15a%\x14W`@Q\x7F\xE30\xAC\x05\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\x01`@Q\x80\x91\x03\x90\xFD[`@Q`\0`$\x82\x01\x81\x90Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x86\x16\x91cF\x87!\xA7\x91\x87\x91`D\x01`@\x80Q\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x81\x84\x03\x01\x81R\x91\x81R` \x82\x01\x80Q{\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xE1\x9A\x9D\xD9\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\x17\x90RQ\x7F\xFF\xFF\xFF\xFF\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`\xE0\x86\x90\x1B\x16\x81Ra%\xF5\x93\x92\x91\x90`\0\x90`\x04\x01aE}V[` `@Q\x80\x83\x03\x81`\0\x87Z\xF1\x15\x80\x15a&\x14W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a&8\x91\x90aDhV[Ps\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x81\x16`\0\x81\x81R` \x81\x81R`@\x91\x82\x90 `\x01\x01T\x91Q\x91\x90\x93\x16\x81R\x90\x91\x7F\xDF\xDE\xCBq\xEB\x05\x80\xC9&<\x86{\xC6\xDE\x9D\xD6\xF8Y\xCCjn\xE3=G\xE5\x05\x90O\x1DV\x01\xC9\x91\x01`@Q\x80\x91\x03\x90\xA2PPPPV[```\0a&\xE1\x83s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\0\x90\x81R`\x02` \x90\x81R`@\x80\x83 `\x03\x83R\x81\x84 T\x84R\x90\x91R\x90 \x90V[\x90P`\0a&\xF1\x82`\x03\x01a1\xA1V[\x90P`\0\x81Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a'\x0FWa'\x0Fa9ZV[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a'HW\x81` \x01[a'5a8DV[\x81R` \x01\x90`\x01\x90\x03\x90\x81a'-W\x90P[P\x90P`\0[\x82Q\x81\x10\x15a)\xA3W\x83`\x02\x01`\0\x84\x83\x81Q\x81\x10a'oWa'oaENV[` \x02` \x01\x01Q\x81R` \x01\x90\x81R` \x01`\0 `@Q\x80`\xA0\x01`@R\x90\x81`\0\x82\x01T\x81R` \x01`\x01\x82\x01T\x81R` \x01`\x02\x82\x01`\0\x90T\x90a\x01\0\n\x90\x04`\xFF\x16`\x03\x81\x11\x15a'\xC8Wa'\xC8a<\xEDV[`\x03\x81\x11\x15a'\xD9Wa'\xD9a<\xEDV[\x81R` \x01`\x03\x82\x01`@Q\x80a\x01 \x01`@R\x90\x81`\0\x82\x01`\0\x90T\x90a\x01\0\n\x90\x04s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81R` \x01`\x01\x82\x01T\x81R` \x01`\x02\x82\x01\x80Ta(^\x90aB{V[\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x92\x91\x90\x81\x81R` \x01\x82\x80Ta(\x8A\x90aB{V[\x80\x15a(\xD7W\x80`\x1F\x10a(\xACWa\x01\0\x80\x83T\x04\x02\x83R\x91` \x01\x91a(\xD7V[\x82\x01\x91\x90`\0R` `\0 \x90[\x81T\x81R\x90`\x01\x01\x90` \x01\x80\x83\x11a(\xBAW\x82\x90\x03`\x1F\x16\x82\x01\x91[PPP\x91\x83RPP`\x03\x82\x01T` \x90\x91\x01\x90`\xFF\x16`\x01\x81\x11\x15a(\xFEWa(\xFEa<\xEDV[`\x01\x81\x11\x15a)\x0FWa)\x0Fa<\xEDV[\x81R`\x04\x82\x01T` \x80\x83\x01\x91\x90\x91R`\x05\x83\x01T`@\x83\x01R`\x06\x83\x01T``\x83\x01R`\x07\x83\x01Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x81\x16`\x80\x84\x01R`\x08\x90\x93\x01T\x90\x92\x16`\xA0\x90\x91\x01R\x90\x82R`\x0C\x92\x90\x92\x01T\x91\x01R\x82Q\x83\x90\x83\x90\x81\x10a)\x85Wa)\x85aENV[` \x02` \x01\x01\x81\x90RP\x80\x80a)\x9B\x90aD0V[\x91PPa'NV[P\x94\x93PPPPV[`\0\x80a)\xB8\x83a1\xACV[\x90P`\0\x83s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xE7R5\xB8`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a*\x07W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a*+\x91\x90aA\xA9V[\x90P\x80\x82\x10a*:W\x80a*V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16`\0\x90\x81R`\x01` R`@\x81 T\x80\x82\x03a*\xF6WP`\0\x92\x91PPV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x16`\0\x90\x81R` \x81\x90R`@\x90 \x80Ta*<\x90\x83aBcV[`\0\x80a+3\x84a2\xC4V[\x90P`\0a+@\x84a2\xC4V[\x80Q\x83Q\x91\x92P\x14\x80\x15a+[WP\x80` \x01Q\x82` \x01Q\x14[\x80\x15a+nWP\x80`@\x01Q\x82`@\x01Q\x14[\x95\x94PPPPPV[`@Q\x7F-\x9A\xD5=\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\x81R0`\x04\x82\x01Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16\x90c-\x9A\xD5=\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a+\xE1W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a,\x05\x91\x90aDhV[a,;W`@Q\x7F\x9F\xDA\xDA1\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\x01`@Q\x80\x91\x03\x90\xFD[PV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16`\0\x90\x81R`\x01` R`@\x81 T\x90\x03a,mWPV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16`\0\x81\x81R`\x01` R`@\x80\x82 \x82\x90UQ\x7F\xAD\xFAe\x11\xC5\xA9\xB5\xAC\x1A\xDC^N\x0C\xA67\xC4e\xF2J\xB5l\x1B\xD2U\xA0\x83\xE0\x02>;|B\x91\x90\xA2PV[a,\xC7\x81a.\xE1V[\x80\x15a-\\WP`@Q\x7F-\x9A\xD5=\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\x81R0`\x04\x82\x01Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16\x90c-\x9A\xD5=\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a-8W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a-\\\x91\x90aDhV[a-cWPV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16`\0\x81\x81R`\x02` \x90\x81R`@\x80\x83 `\x03\x83R\x81\x84 T\x84R\x82R\x80\x83 T\x93\x83R\x90\x82\x90R\x81 T\x90\x82\x90\x03a-\xB2WPPPV[\x80`\0\x03a-\xBFWPPPV[a-\xCA\x82`\x02aE\xC1V[\x81\x10\x15a.\x03W`@Q\x7FG\xDC\xA1\xCE\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\x01`@Q\x80\x91\x03\x90\xFD[PPPV[`\0a.\x14\x83\x83a4\x90V[\x93\x92PPPV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16`\0\x90\x81R`\x02` \x90\x81R`@\x80\x83 `\x03\x83R\x81\x84 T\x84R\x90\x91R\x90 a.[\x82a)\xACV[\x81`\x01\x01T\x10\x15a\x03\xA5W`\x01\x81\x01\x80T\x90\x81\x90`\0a.z\x83aD0V[\x91\x90PUP\x82s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7FN\xDA\x17\x97`\xB4\xE6\x86P\x05\x83v\xD4\xAC\xEFx\xE9S\"\x13\x17E\r)\xB4\x92\x0Em(6\x94L\x82\x84`\x01\x01T`@Qa.\xD4\x92\x91\x90\x91\x82R` \x82\x01R`@\x01\x90V[`@Q\x80\x91\x03\x90\xA2PPPV[`@Q\x7FV$\xB2[\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\x7FJ Ob\x0C\x8C\\\xCD\xCA?\xD5M\0;\xAD\xD8[\xA5\0CjC\x1F\x0C\xBD\xA4\xF5X\xC9<4\xC8`\x04\x82\x01R`\x01`$\x82\x01R`\0\x90\x81\x90s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x16\x90cV$\xB2[\x90`D\x01`\0`@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a/wW=`\0\x80>=`\0\xFD[PPPP`@Q=`\0\x82>`\x1F=\x90\x81\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x82\x01`@Ra/\xBD\x91\x90\x81\x01\x90a@\xE0V[\x80` \x01\x90Q\x81\x01\x90a/\xD0\x91\x90aE\xFEV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x160\x14\x93\x92PPPV[`\0a.\x14\x83\x83a5\x8AV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x16`\0\x90\x81R` \x81\x90R`@\x90 `\x01\x81\x01T\x90\x91\x16a\x03\xA5W`@Q\x7F\xA0\xFE\x93\x9B\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\x01`@Q\x80\x91\x03\x90\xFD[`@Q\x7F-\x9A\xD5=\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\x81R0`\x04\x82\x01Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16\x90c-\x9A\xD5=\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a0\xC9W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a0\xED\x91\x90aDhV[\x15a,;W`@Q\x7Fp\xA3\x80\x94\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\x01`@Q\x80\x91\x03\x90\xFD[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16`\0\x81\x81R`\x02` \x90\x81R`@\x80\x83 `\x03\x83R\x81\x84 T\x84R\x82R\x91\x82\x90 `\x01\x80\x82\x01\x80T\x90\x82\x90U\x84Q\x81\x81R\x93\x84\x01\x91\x90\x91R\x90\x93\x90\x92\x90\x91\x7FN\xDA\x17\x97`\xB4\xE6\x86P\x05\x83v\xD4\xAC\xEFx\xE9S\"\x13\x17E\r)\xB4\x92\x0Em(6\x94L\x91\x01a.\xD4V[``a\x05\x08\x82a5\xD9V[`\0\x81s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xE7R5\xB8`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a1\xF9W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a2\x1D\x91\x90aA\xA9V[\x82s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xA0\xE6~+`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01`\0`@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a2hW=`\0\x80>=`\0\xFD[PPPP`@Q=`\0\x82>`\x1F=\x90\x81\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x82\x01`@Ra2\xAE\x91\x90\x81\x01\x90aD\x9CV[Qa2\xB9\x91\x90aD\x85V[a\x05\x08\x90`\x01aBcV[a2\xE8`@Q\x80``\x01`@R\x80`\0\x81R` \x01`\0\x81R` \x01`\0\x81RP\x90V[`\0a3)\x83`@Q\x80`@\x01`@R\x80`\x01\x81R` \x01\x7F.\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RPa65V[\x90P`\x03\x81Q\x10\x15a3gW`@Q\x7F\x9E\xDA\x85\x8C\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\x01`@Q\x80\x91\x03\x90\xFD[`\0a3\xC2\x82`\x02\x81Q\x81\x10a3\x7FWa3\x7FaENV[` \x02` \x01\x01Q`@Q\x80`@\x01`@R\x80`\x01\x81R` \x01\x7F-\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RPa65V[\x90P`\0a4\x1F\x82`\0\x81Q\x81\x10a3\xDCWa3\xDCaENV[` \x02` \x01\x01Q`@Q\x80`@\x01`@R\x80`\x01\x81R` \x01\x7F+\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RPa65V[\x90P`@Q\x80``\x01`@R\x80a4O\x85`\0\x81Q\x81\x10a4BWa4BaENV[` \x02` \x01\x01Qa6\xDFV[\x81R` \x01a4j\x85`\x01\x81Q\x81\x10a4BWa4BaENV[\x81R` \x01a4\x85\x83`\0\x81Q\x81\x10a4BWa4BaENV[\x90R\x95\x94PPPPPV[`\0\x81\x81R`\x01\x83\x01` R`@\x81 T\x80\x15a5yW`\0a4\xB4`\x01\x83aD\x85V[\x85T\x90\x91P`\0\x90a4\xC8\x90`\x01\x90aD\x85V[\x90P\x81\x81\x14a5-W`\0\x86`\0\x01\x82\x81T\x81\x10a4\xE8Wa4\xE8aENV[\x90`\0R` `\0 \x01T\x90P\x80\x87`\0\x01\x84\x81T\x81\x10a5\x0BWa5\x0BaENV[`\0\x91\x82R` \x80\x83 \x90\x91\x01\x92\x90\x92U\x91\x82R`\x01\x88\x01\x90R`@\x90 \x83\x90U[\x85T\x86\x90\x80a5>Wa5>aF\x1BV[`\x01\x90\x03\x81\x81\x90`\0R` `\0 \x01`\0\x90U\x90U\x85`\x01\x01`\0\x86\x81R` \x01\x90\x81R` \x01`\0 `\0\x90U`\x01\x93PPPPa\x05\x08V[`\0\x91PPa\x05\x08V[P\x92\x91PPV[`\0\x81\x81R`\x01\x83\x01` R`@\x81 Ta5\xD1WP\x81T`\x01\x81\x81\x01\x84U`\0\x84\x81R` \x80\x82 \x90\x93\x01\x84\x90U\x84T\x84\x82R\x82\x86\x01\x90\x93R`@\x90 \x91\x90\x91Ua\x05\x08V[P`\0a\x05\x08V[``\x81`\0\x01\x80T\x80` \x02` \x01`@Q\x90\x81\x01`@R\x80\x92\x91\x90\x81\x81R` \x01\x82\x80T\x80\x15a6)W` \x02\x82\x01\x91\x90`\0R` `\0 \x90[\x81T\x81R` \x01\x90`\x01\x01\x90\x80\x83\x11a6\x15W[PPPPP\x90P\x91\x90PV[```\0a6C\x84\x84a7WV[\x90P`\x1F\x19` \x82\x01`\x01\x83Q\x01`\x05\x1B\x81\x01\x86Q\x83\x82\x01R`\x01\x84Q\x01\x84R`\0[\x82Q``\x84R\x81\x81\x14a6\xABW`@Q\x82\x82\x03\x80\x82R\x86`\x1F\x82\x01\x16[\x8B\x85\x01\x81\x01Q\x83\x82\x01R\x87\x01\x80a6\x83WP`\0\x82\x82\x01` \x01R`?\x01\x86\x16\x81\x01`@R\x84R[\x87Q` \x94\x90\x94\x01\x93\x01\x90P\x81\x83\x10a6fWPPPP\x80\x91P\x82Qa5\x83W` \x81\x01\x91P`\x02\x81Q\x03\x82RP\x92\x91PPV[\x80Q`\0\x90\x7F\x19\x99\x99\x99\x99\x99\x99\x99\x99\x99\x99\x99\x99\x99\x99\x99\x99\x99\x99\x99\x99\x99\x99\x99\x99\x99\x99\x99\x99\x99\x99\x99\x82[`\x01\x81\x01\x90P`0`\xFF\x82\x87\x01Q\x16\x03\x82\x85\x11\x85`\n\x02\x82\x81\x01\x96P`\t\x83\x11\x81\x88\x10\x83\x17\x17\x15\x86\x02\x95PPPP\x82\x81\x10a7\x07WPP\x80a7QWc\x10\x18'\x96`\0R`\x04`\x1C\xFD[P\x91\x90PV[``\x82Q\x82Q\x81\x81\x11a8\x05`\xA0\x85\x01\x82Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90RV[` \x81\x01Q`\xC0\x85\x01R`@\x81\x01Qa\x01 \x80`\xE0\x87\x01Ra>+a\x01\xC0\x87\x01\x83a=LV[\x91P``\x83\x01Qa\x01\0a>A\x81\x89\x01\x83a=\x96V[`\x80\x85\x01Q\x83\x89\x01R`\xA0\x85\x01Qa\x01@\x89\x01R`\xC0\x85\x01Qa\x01`\x89\x01R`\xE0\x85\x01Q\x92Pa>\x8Aa\x01\x80\x89\x01\x84s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90RV[\x93\x90\x93\x01Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16a\x01\xA0\x88\x01R\x92Pa>\xB5\x90PV[`\x80\x84\x01Q`\x80\x86\x01R\x80\x92PPP\x92\x91PPV[` \x81R`\0a.\x14` \x83\x01\x84a=\xAAV[`\0` \x82\x84\x03\x12\x15a>\xEFW`\0\x80\xFD[\x815a.\x14\x81a:\x02V[` \x81R`\0a.\x14` \x83\x01\x84a=LV[`\0\x80`\0\x80`\0\x80`\0\x80`\0\x80`\0a\x01`\x8C\x8E\x03\x12\x15a?/W`\0\x80\xFD[a?8\x8Ca:$V[\x9AP` \x8C\x015\x99Pg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80`@\x8E\x015\x11\x15a?[W`\0\x80\xFD[a?k\x8E`@\x8F\x015\x8F\x01a:\xE9V[\x99Pa?y``\x8E\x01a;\xA2V[\x98P`\x80\x8D\x015\x97P`\xA0\x8D\x015\x96P`\xC0\x8D\x015\x95Pa?\x9C`\xE0\x8E\x01a:$V[\x94Pa?\xABa\x01\0\x8E\x01a:$V[\x93P\x80a\x01 \x8E\x015\x11\x15a?\xBFW`\0\x80\xFD[Pa?\xD1\x8Da\x01 \x8E\x015\x8E\x01a:\xE9V[\x91Pa?\xE0a\x01@\x8D\x01a:$V[\x90P\x92\x95\x98\x9BP\x92\x95\x98\x9B\x90\x93\x96\x99PV[\x80\x15\x15\x81\x14a,;W`\0\x80\xFD[`\0\x80`@\x83\x85\x03\x12\x15a@\x13W`\0\x80\xFD[\x825\x91P` \x83\x015a@%\x81a?\xF2V[\x80\x91PP\x92P\x92\x90PV[`\0` \x80\x83\x01\x81\x84R\x80\x85Q\x80\x83R`@\x86\x01\x91P`@\x81`\x05\x1B\x87\x01\x01\x92P\x83\x87\x01`\0[\x82\x81\x10\x15a@\xA3W\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xC0\x88\x86\x03\x01\x84Ra@\x91\x85\x83Qa=\xAAV[\x94P\x92\x85\x01\x92\x90\x85\x01\x90`\x01\x01a@WV[P\x92\x97\x96PPPPPPPV[`\0a@\xBEa;\x08\x84a:\xA3V[\x90P\x82\x81R\x83\x83\x83\x01\x11\x15a@\xD2W`\0\x80\xFD[a.\x14\x83` \x83\x01\x84a=\x1CV[`\0` \x82\x84\x03\x12\x15a@\xF2W`\0\x80\xFD[\x81Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15aA\tW`\0\x80\xFD[\x82\x01`\x1F\x81\x01\x84\x13aA\x1AW`\0\x80\xFD[a*<\x84\x82Q` \x84\x01a@\xB0V[`\0a\x01@s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x8E\x16\x84R\x8C` \x85\x01R\x81`@\x85\x01RaA`\x82\x85\x01\x8Da=LV[\x92PaAo``\x85\x01\x8Ca=\x96V[`\x80\x84\x01\x99\x90\x99RP`\xA0\x82\x01\x96\x90\x96R`\xC0\x81\x01\x94\x90\x94R\x91\x85\x16`\xE0\x84\x01R\x90\x93\x16a\x01\0\x82\x01Ra\x01 \x01\x91\x90\x91R\x94\x93PPPPV[`\0` \x82\x84\x03\x12\x15aA\xBBW`\0\x80\xFD[PQ\x91\x90PV[\x84\x81R`\x80` \x82\x01R`\0aA\xDB`\x80\x83\x01\x86a=LV[\x82\x81\x03`@\x84\x01RaA\xED\x81\x86a=LV[\x91PP\x82``\x83\x01R\x95\x94PPPPPV[\x83\x81R``` \x82\x01R`\0aB\x18``\x83\x01\x85a=LV[\x82\x81\x03`@\x84\x01RaB*\x81\x85a=LV[\x96\x95PPPPPPV[\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`\x11`\x04R`$`\0\xFD[`\0\x82\x19\x82\x11\x15aBvWaBvaB4V[P\x01\x90V[`\x01\x81\x81\x1C\x90\x82\x16\x80aB\x8FW`\x7F\x82\x16\x91P[` \x82\x10\x81\x03a7QW\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`\"`\x04R`$`\0\xFD[`\x1F\x82\x11\x15a.\x03W`\0\x81\x81R` \x81 `\x1F\x85\x01`\x05\x1C\x81\x01` \x86\x10\x15aB\xEFWP\x80[`\x1F\x85\x01`\x05\x1C\x82\x01\x91P[\x81\x81\x10\x15aC\x0EW\x82\x81U`\x01\x01aB\xFBV[PPPPPPV[\x81Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15aC0WaC0a9ZV[aCD\x81aC>\x84TaB{V[\x84aB\xC8V[` \x80`\x1F\x83\x11`\x01\x81\x14aC\x97W`\0\x84\x15aCaWP\x85\x83\x01Q[\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF`\x03\x86\x90\x1B\x1C\x19\x16`\x01\x85\x90\x1B\x17\x85UaC\x0EV[`\0\x85\x81R` \x81 \x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x86\x16\x91[\x82\x81\x10\x15aC\xE4W\x88\x86\x01Q\x82U\x94\x84\x01\x94`\x01\x90\x91\x01\x90\x84\x01aC\xC5V[P\x85\x82\x10\x15aD W\x87\x85\x01Q\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF`\x03\x88\x90\x1B`\xF8\x16\x1C\x19\x16\x81U[PPPPP`\x01\x90\x81\x1B\x01\x90UPV[`\0\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x03aDaWaDaaB4V[P`\x01\x01\x90V[`\0` \x82\x84\x03\x12\x15aDzW`\0\x80\xFD[\x81Qa.\x14\x81a?\xF2V[`\0\x82\x82\x10\x15aD\x97WaD\x97aB4V[P\x03\x90V[`\0` \x80\x83\x85\x03\x12\x15aD\xAFW`\0\x80\xFD[\x82Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15aD\xC7W`\0\x80\xFD[\x81\x85\x01\x91P\x85`\x1F\x83\x01\x12aD\xDBW`\0\x80\xFD[\x81Q\x81\x81\x11\x15aD\xEDWaD\xEDa9ZV[\x80`\x05\x1B\x91PaD\xFE\x84\x83\x01a9\xB3V[\x81\x81R\x91\x83\x01\x84\x01\x91\x84\x81\x01\x90\x88\x84\x11\x15aE\x18W`\0\x80\xFD[\x93\x85\x01\x93[\x83\x85\x10\x15aEBW\x84Q\x92PaE2\x83a:\x02V[\x82\x82R\x93\x85\x01\x93\x90\x85\x01\x90aE\x1DV[\x98\x97PPPPPPPPV[\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`2`\x04R`$`\0\xFD[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x85\x16\x81R\x83` \x82\x01R`\x80`@\x82\x01R`\0aE\xB2`\x80\x83\x01\x85a=LV[\x90Pa+n``\x83\x01\x84a=\x96V[`\0\x81\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x04\x83\x11\x82\x15\x15\x16\x15aE\xF9WaE\xF9aB4V[P\x02\x90V[`\0` \x82\x84\x03\x12\x15aF\x10W`\0\x80\xFD[\x81Qa.\x14\x81a:\x02V[\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`1`\x04R`$`\0\xFD\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x608060405234801561001057600080fd5b50600436106101825760003560e01c806365cf50ec116100d8578063bceb8eda1161008c578063db16aab911610066578063db16aab91461040f578063e10ffc9214610417578063e647dee11461042a57600080fd5b8063bceb8eda146103c9578063c127fd39146103dc578063c9713656146103fc57600080fd5b806375f0bb52116100bd57806375f0bb5214610384578063932713681461039757806396de45a4146103a957600080fd5b806365cf50ec1461035e57806372fb97031461037157600080fd5b806312492d971161013a5780635698b16a116101145780635698b16a146102f85780635c3b45101461034e5780636092b3181461035657600080fd5b806312492d97146101fd57806347c032231461021d57806354fd4d50146102af57600080fd5b806306d8b7e21161016b57806306d8b7e2146101c4578063096e01f7146101d75780630e40beec146101ea57600080fd5b806301ffc9a71461018757806305ccf606146101af575b600080fd5b61019a610195366004613918565b610475565b60405190151581526020015b60405180910390f35b6101c26101bd366004613a34565b61050e565b005b6101c26101d2366004613a8a565b6107b5565b6101c26101e5366004613b3f565b61086b565b6101c26101f8366004613bb1565b610dc3565b61021061020b366004613cc1565b6113e3565b6040516101a69190613eca565b61027e61022b366004613edd565b6040805180820182526000808252602091820181905273ffffffffffffffffffffffffffffffffffffffff9384168152808252829020825180840190935280548352600101549092169181019190915290565b604080518251815260209283015173ffffffffffffffffffffffffffffffffffffffff1692810192909252016101a6565b6102eb6040518060400160405280600681526020017f312e31302e31000000000000000000000000000000000000000000000000000081525081565b6040516101a69190613efa565b610340610306366004613edd565b73ffffffffffffffffffffffffffffffffffffffff1660009081526002602090815260408083206003835281842054845290915290205490565b6040519081526020016101a6565b6101c2611614565b6101c261168e565b6101c261036c366004613a8a565b61173f565b6101c261037f366004613edd565b6118de565b6101c2610392366004613f0d565b611a11565b6101c26103a5366004614000565b5050565b6103406103b7366004613edd565b60016020526000908152604090205481565b6101c26103d7366004613edd565b611e69565b6103ef6103ea366004613edd565b6126a0565b6040516101a69190614030565b61034061040a366004613edd565b6129ac565b6101c2612a44565b610340610425366004613edd565b612ac0565b610340610438366004613edd565b73ffffffffffffffffffffffffffffffffffffffff1660009081526002602090815260408083206003835281842054845290915290206001015490565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fe6d7a83a00000000000000000000000000000000000000000000000000000000148061050857507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b8051339060000361054b576040517f74a7e96e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b602082015173ffffffffffffffffffffffffffffffffffffffff1615806105a157508073ffffffffffffffffffffffffffffffffffffffff16826020015173ffffffffffffffffffffffffffffffffffffffff16145b156105d8576040517f552dd1b700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6106a78173ffffffffffffffffffffffffffffffffffffffff1663ffa1ad746040518163ffffffff1660e01b8152600401600060405180830381865afa158015610626573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405261066c91908101906140e0565b6040518060400160405280600581526020017f312e342e31000000000000000000000000000000000000000000000000000000815250612b27565b6106dd576040517fda21aed900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6106e681612b77565b73ffffffffffffffffffffffffffffffffffffffff8181166000908152602081815260409091208451815590840151600190910180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169190921617905561074e81612c3e565b8151602083015160405133927f47e2ddae3ece2c77f60d8e9e5a89a50f1d1374a87fb11956d27a6b4986bba17e926107a49291825273ffffffffffffffffffffffffffffffffffffffff16602082015260400190565b60405180910390a26103a581612cbe565b7f51a7f65c6325882f237d4aeb43228179cfad48b868511d508e24b4437a8191376040516108609060208082526050908201527f546869732066756e6374696f6e206973206e6f74206d65616e7420746f20626560408201527f2063616c6c65642c2064696420796f75206d65616e20746f2063616c6c20636160608201527f6e63656c5472616e73616374696f6e3f00000000000000000000000000000000608082015260a00190565b60405180910390a150565b600273ffffffffffffffffffffffffffffffffffffffff851660009081526002602090815260408083206003835281842054845290915290206000858152600291820160205260409020015460ff1660038111156108cb576108cb613ced565b03610902576040517f3e8b838900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8416600090815260026020818152604080842060038084528286205486529083528185208886528401909252909220015460ff168181111561095b5761095b613ced565b03610992576040517f183ca43100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff841660009081526002602090815260408083206003835281842054845290915281206000858152600291820160205260409020015460ff1660038111156109f0576109f0613ced565b03610a27576040517f03c8597300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60003073ffffffffffffffffffffffffffffffffffffffff166306d8b7e285604051602401610a5891815260200190565b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050905060008573ffffffffffffffffffffffffffffffffffffffff1663e86637db306000856000806000806000808e6040518b63ffffffff1660e01b8152600401610aed9a99989796959493929190614129565b600060405180830381865afa158015610b0a573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052610b5091908101906140e0565b905060008673ffffffffffffffffffffffffffffffffffffffff1663d8d11f78306000866000806000806000808f6040518b63ffffffff1660e01b8152600401610ba39a99989796959493929190614129565b602060405180830381865afa158015610bc0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610be491906141a9565b90508673ffffffffffffffffffffffffffffffffffffffff166312fb68e0828487610c428c73ffffffffffffffffffffffffffffffffffffffff16600090815260026020908152604080832060038352818420548452909152902090565b600101546040518563ffffffff1660e01b8152600401610c6594939291906141c2565b60006040518083038186803b158015610c7d57600080fd5b505afa158015610c91573d6000803e3d6000fd5b505050506002610cd48873ffffffffffffffffffffffffffffffffffffffff16600090815260026020908152604080832060038352818420548452909152902090565b60008881526002918201602052604090200180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001836003811115610d1e57610d1e613ced565b0217905550610d6d86610d648973ffffffffffffffffffffffffffffffffffffffff16600090815260026020908152604080832060038352818420548452909152902090565b60030190612e08565b50610d7787612e1b565b604051869073ffffffffffffffffffffffffffffffffffffffff8916907fa42fd857b47d3d04f5b29f35cb05343f66b317633d2dc2910726bd4bca1a162590600090a350505050505050565b610dcc84612ee1565b610e02576040517f3f4b296600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8416600090815260026020908152604080832060038352818420548452909152902054600003610e73576040517f0832dd6900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008473ffffffffffffffffffffffffffffffffffffffff1663e86637db846000015185602001518660400151876060015188608001518960a001518a60c001518b60e001518c61010001518e6040518b63ffffffff1660e01b8152600401610ee59a99989796959493929190614129565b600060405180830381865afa158015610f02573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052610f4891908101906140e0565b905060008573ffffffffffffffffffffffffffffffffffffffff1663d8d11f78856000015186602001518760400151886060015189608001518a60a001518b60c001518c60e001518d61010001518f6040518b63ffffffff1660e01b8152600401610fbc9a99989796959493929190614129565b602060405180830381865afa158015610fd9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ffd91906141a9565b905061103c8673ffffffffffffffffffffffffffffffffffffffff16600090815260026020908152604080832060038352818420548452909152902090565b6000828152600291909101602052604090206001015415611089576040517f80394de600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f934f3a1100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff87169063934f3a11906110df908490869088906004016141ff565b60006040518083038186803b1580156110f757600080fd5b505afa15801561110b573d6000803e3d6000fd5b50505050600061114e8773ffffffffffffffffffffffffffffffffffffffff16600090815260026020908152604080832060038352818420548452909152902090565b546111599042614263565b6040805160a08101825284815260208082018481526001838501818152606085018c9052608085018d905273ffffffffffffffffffffffffffffffffffffffff8e166000908152600280865287822060038088528984205484529087528883208c84528201909652969020855181559251838301555194820180549697509395919493927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0090921691849081111561121357611213613ced565b0217905550606082015180516003830180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff90921691909117815560208201516004840155604082015160058401906112839082614316565b5060608201516003820180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600183818111156112c4576112c4613ced565b0217905550608082810151600483015560a0830151600583015560c0830151600683015560e08301516007830180547fffffffffffffffffffffffff000000000000000000000000000000000000000090811673ffffffffffffffffffffffffffffffffffffffff93841617909155610100909401516008909301805490941692811692909217909255920151600c909101558716600090815260026020908152604080832060038352818420548452909152902061138890839060030190612fef565b50818773ffffffffffffffffffffffffffffffffffffffff167f653f8f6fce2a503b2dfca34e95b3e4902254a11765d2658c0e5af1d64ab276cf836040516113d291815260200190565b60405180910390a350505050505050565b6113eb613844565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260026020818152604080842060038084528286205486529083528185208786528401835293819020815160a081018352815481526001820154938101939093529283015491939084019160ff169081111561146457611464613ced565b600381111561147557611475613ced565b815260200160038201604051806101200160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182015481526020016002820180546114fa9061427b565b80601f01602080910402602001604051908101604052809291908181526020018280546115269061427b565b80156115735780601f1061154857610100808354040283529160200191611573565b820191906000526020600020905b81548152906001019060200180831161155657829003601f168201915b5050509183525050600382015460209091019060ff16600181111561159a5761159a613ced565b60018111156115ab576115ab613ced565b815260048201546020808301919091526005830154604083015260068301546060830152600783015473ffffffffffffffffffffffffffffffffffffffff908116608084015260089093015490921660a090910152908252600c92909201549101529392505050565b3361161e81612ee1565b15611655576040517fa4d234cb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8116600090815260036020526040812080549161168683614430565b919050555050565b3361169881612ffb565b6116a18161305f565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260208190526040812090815560010180547fffffffffffffffffffffffff00000000000000000000000000000000000000001690556116fb81612c3e565b60405173ffffffffffffffffffffffffffffffffffffffff8216907f9c6ff02e684f8a81389ed942fea1147c16b8cc5fe79f2bfbc520d44e214aed4b90600090a250565b60003390506117928173ffffffffffffffffffffffffffffffffffffffff1663ffa1ad746040518163ffffffff1660e01b8152600401600060405180830381865afa158015610626573d6000803e3d6000fd5b6117c8576040517f9e2f7c4b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6117d181612ee1565b611807576040517f3f4b296600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81158061181757506301e1338082115b1561184e576040517fa0ce228b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8161188c8273ffffffffffffffffffffffffffffffffffffffff16600090815260026020908152604080832060038352818420548452909152902090565b5561189681613124565b8073ffffffffffffffffffffffffffffffffffffffff167fa48d13ee8fad9974fa901cfb88a02d39c5361efbab13bb9b3aa7caa3f6d6b786836040516107a491815260200190565b6118e781612ffb565b6118f081612b77565b73ffffffffffffffffffffffffffffffffffffffff818116600090815260208190526040902060010154163314611953576040517fa1f2082000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8116600090815260016020526040902054156119b0576040517f9cd9090400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8116600081815260016020908152604091829020429081905591519182527f3eb9241ca06793ab672590e858d0977206f824e7367806f94a90af391d275d33910160405180910390a250565b33600081815260026020908152604080832060038352818420548452909152902054600003611a405750611e5c565b6040517f2f54bf6e00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8381166004830152821690632f54bf6e90602401602060405180830381865afa158015611aac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ad09190614468565b611b06576040517f5874e94f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060018273ffffffffffffffffffffffffffffffffffffffff1663affed0e06040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b55573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b7991906141a9565b611b839190614485565b905060008273ffffffffffffffffffffffffffffffffffffffff1663d8d11f788f8f8f8f8f8f8f8f8f8c6040518b63ffffffff1660e01b8152600401611bd29a99989796959493929190614129565b602060405180830381865afa158015611bef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c1391906141a9565b90506000611c548473ffffffffffffffffffffffffffffffffffffffff16600090815260026020908152604080832060038352818420548452909152902090565b60008381526002918201602052604090209150600282015460ff166003811115611c8057611c80613ced565b03611cb7576040517f3e8b838900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6003600282015460ff166003811115611cd257611cd2613ced565b03611d09576040517f183ca43100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600282015460ff166003811115611d2457611d24613ced565b03611d5b576040517f03c8597300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b4281600101541115611d99576040517f503c42c400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611da284613124565b600281810180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600390811790915573ffffffffffffffffffffffffffffffffffffffff8616600090815260209283526040808220928452808220548252919092529020611e13908390610d64565b50604051829073ffffffffffffffffffffffffffffffffffffffff8616907fdd4b9b318b98162cb1e7b52752a3fd110d5b7966f3b50884c1cd3bd04058e5c790600090a3505050505b5050505050505050505050565b611e7281612ffb565b611e7b81612b77565b73ffffffffffffffffffffffffffffffffffffffff818116600090815260208190526040902060010154163314611ede576040517fa1f2082000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff811660009081526001602052604081205490819003611f3e576040517f09f9592000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611f4782612ac0565b421015611f80576040517f279e3d2400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000905560008273ffffffffffffffffffffffffffffffffffffffff1663a0e67e2b6040518163ffffffff1660e01b8152600401600060405180830381865afa158015612010573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052612056919081019061449c565b90505b600181511115612261578273ffffffffffffffffffffffffffffffffffffffff1663468721a78460006001856000815181106120975761209761454e565b602090810291909101015160405173ffffffffffffffffffffffffffffffffffffffff92831660248201529116604482015260016064820152608401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167ff8dc5dd900000000000000000000000000000000000000000000000000000000179052517fffffffff0000000000000000000000000000000000000000000000000000000060e086901b1681526121859392919060009060040161457d565b6020604051808303816000875af11580156121a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121c89190614468565b508273ffffffffffffffffffffffffffffffffffffffff1663a0e67e2b6040518163ffffffff1660e01b8152600401600060405180830381865afa158015612214573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405261225a919081019061449c565b9050612059565b8273ffffffffffffffffffffffffffffffffffffffff1663468721a78460006001856000815181106122955761229561454e565b60209081029190910181015173ffffffffffffffffffffffffffffffffffffffff8a811660009081529283905260409283902060010154925193811660248501529081166044840152166064820152608401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fe318b52b00000000000000000000000000000000000000000000000000000000179052517fffffffff0000000000000000000000000000000000000000000000000000000060e086901b1681526123999392919060009060040161457d565b6020604051808303816000875af11580156123b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123dc9190614468565b5060008373ffffffffffffffffffffffffffffffffffffffff1663a0e67e2b6040518163ffffffff1660e01b8152600401600060405180830381865afa15801561242a573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052612470919081019061449c565b9050805160011415806124dd575073ffffffffffffffffffffffffffffffffffffffff80851660009081526020819052604081206001015483519216918391906124bc576124bc61454e565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b15612514576040517fe330ac0500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60405160006024820181905273ffffffffffffffffffffffffffffffffffffffff86169163468721a7918791604401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fe19a9dd900000000000000000000000000000000000000000000000000000000179052517fffffffff0000000000000000000000000000000000000000000000000000000060e086901b1681526125f59392919060009060040161457d565b6020604051808303816000875af1158015612614573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126389190614468565b5073ffffffffffffffffffffffffffffffffffffffff8481166000818152602081815260409182902060010154915191909316815290917fdfdecb71eb0580c9263c867bc6de9dd6f859cc6a6ee33d47e505904f1d5601c9910160405180910390a250505050565b606060006126e18373ffffffffffffffffffffffffffffffffffffffff16600090815260026020908152604080832060038352818420548452909152902090565b905060006126f1826003016131a1565b90506000815167ffffffffffffffff81111561270f5761270f61395a565b60405190808252806020026020018201604052801561274857816020015b612735613844565b81526020019060019003908161272d5790505b50905060005b82518110156129a35783600201600084838151811061276f5761276f61454e565b602002602001015181526020019081526020016000206040518060a001604052908160008201548152602001600182015481526020016002820160009054906101000a900460ff1660038111156127c8576127c8613ced565b60038111156127d9576127d9613ced565b815260200160038201604051806101200160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820154815260200160028201805461285e9061427b565b80601f016020809104026020016040519081016040528092919081815260200182805461288a9061427b565b80156128d75780601f106128ac576101008083540402835291602001916128d7565b820191906000526020600020905b8154815290600101906020018083116128ba57829003601f168201915b5050509183525050600382015460209091019060ff1660018111156128fe576128fe613ced565b600181111561290f5761290f613ced565b815260048201546020808301919091526005830154604083015260068301546060830152600783015473ffffffffffffffffffffffffffffffffffffffff908116608084015260089093015490921660a090910152908252600c929092015491015282518390839081106129855761298561454e565b6020026020010181905250808061299b90614430565b91505061274e565b50949350505050565b6000806129b8836131ac565b905060008373ffffffffffffffffffffffffffffffffffffffff1663e75235b86040518163ffffffff1660e01b8152600401602060405180830381865afa158015612a07573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a2b91906141a9565b9050808210612a3a5780612a3c565b815b949350505050565b33612a4e81612ffb565b612a5781612b77565b73ffffffffffffffffffffffffffffffffffffffff811660009081526001602052604081205490819003612ab7576040517f09f9592000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6103a582612c3e565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260016020526040812054808203612af65750600092915050565b73ffffffffffffffffffffffffffffffffffffffff831660009081526020819052604090208054612a3c9083614263565b600080612b33846132c4565b90506000612b40846132c4565b80518351919250148015612b5b575080602001518260200151145b8015612b6e575080604001518260400151145b95945050505050565b6040517f2d9ad53d00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff821690632d9ad53d90602401602060405180830381865afa158015612be1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c059190614468565b612c3b576040517f9fdada3100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b73ffffffffffffffffffffffffffffffffffffffff81166000908152600160205260408120549003612c6d5750565b73ffffffffffffffffffffffffffffffffffffffff8116600081815260016020526040808220829055517fadfa6511c5a9b5ac1adc5e4e0ca637c465f24ab56c1bd255a083e0023e3b7c429190a250565b612cc781612ee1565b8015612d5c57506040517f2d9ad53d00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff821690632d9ad53d90602401602060405180830381865afa158015612d38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d5c9190614468565b612d635750565b73ffffffffffffffffffffffffffffffffffffffff81166000818152600260209081526040808320600383528184205484528252808320549383529082905281205490829003612db257505050565b80600003612dbf57505050565b612dca8260026145c1565b811015612e03576040517f47dca1ce00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b6000612e148383613490565b9392505050565b73ffffffffffffffffffffffffffffffffffffffff81166000908152600260209081526040808320600383528184205484529091529020612e5b826129ac565b816001015410156103a5576001810180549081906000612e7a83614430565b91905055508273ffffffffffffffffffffffffffffffffffffffff167f4eda179760b4e68650058376d4acef78e953221317450d29b4920e6d2836944c828460010154604051612ed4929190918252602082015260400190565b60405180910390a2505050565b6040517f5624b25b0000000000000000000000000000000000000000000000000000000081527f4a204f620c8c5ccdca3fd54d003badd85ba500436a431f0cbda4f558c93c34c8600482015260016024820152600090819073ffffffffffffffffffffffffffffffffffffffff841690635624b25b90604401600060405180830381865afa158015612f77573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052612fbd91908101906140e0565b806020019051810190612fd091906145fe565b73ffffffffffffffffffffffffffffffffffffffff1630149392505050565b6000612e14838361358a565b73ffffffffffffffffffffffffffffffffffffffff808216600090815260208190526040902060018101549091166103a5576040517fa0fe939b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f2d9ad53d00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff821690632d9ad53d90602401602060405180830381865afa1580156130c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130ed9190614468565b15612c3b576040517f70a3809400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff811660008181526002602090815260408083206003835281842054845282529182902060018082018054908290558451818152938401919091529093909290917f4eda179760b4e68650058376d4acef78e953221317450d29b4920e6d2836944c9101612ed4565b6060610508826135d9565b60008173ffffffffffffffffffffffffffffffffffffffff1663e75235b86040518163ffffffff1660e01b8152600401602060405180830381865afa1580156131f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061321d91906141a9565b8273ffffffffffffffffffffffffffffffffffffffff1663a0e67e2b6040518163ffffffff1660e01b8152600401600060405180830381865afa158015613268573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526132ae919081019061449c565b516132b99190614485565b610508906001614263565b6132e860405180606001604052806000815260200160008152602001600081525090565b6000613329836040518060400160405280600181526020017f2e00000000000000000000000000000000000000000000000000000000000000815250613635565b9050600381511015613367576040517f9eda858c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006133c28260028151811061337f5761337f61454e565b60200260200101516040518060400160405280600181526020017f2d00000000000000000000000000000000000000000000000000000000000000815250613635565b9050600061341f826000815181106133dc576133dc61454e565b60200260200101516040518060400160405280600181526020017f2b00000000000000000000000000000000000000000000000000000000000000815250613635565b9050604051806060016040528061344f856000815181106134425761344261454e565b60200260200101516136df565b815260200161346a856001815181106134425761344261454e565b8152602001613485836000815181106134425761344261454e565b905295945050505050565b600081815260018301602052604081205480156135795760006134b4600183614485565b85549091506000906134c890600190614485565b905081811461352d5760008660000182815481106134e8576134e861454e565b906000526020600020015490508087600001848154811061350b5761350b61454e565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061353e5761353e61461b565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610508565b6000915050610508565b5092915050565b60008181526001830160205260408120546135d157508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610508565b506000610508565b60608160000180548060200260200160405190810160405280929190818152602001828054801561362957602002820191906000526020600020905b815481526020019060010190808311613615575b50505050509050919050565b606060006136438484613757565b9050601f1960208201600183510160051b81018651838201526001845101845260005b8251606084528181146136ab5760405182820380825286601f8201165b8b8501810151838201528701806136835750600082820160200152603f018616810160405284525b8751602094909401930190508183106136665750505050809150825161358357602081019150600281510382525092915050565b80516000907f1999999999999999999999999999999999999999999999999999999999999999825b600181019050603060ff82870151160382851185600a028281019650600983118188108317171586029550505050828110613707575050806137515763101827966000526004601cfd5b50919050565b60608251825181811161383c57602085019450602084019350602060405101925084600182848801030160006020841061379057508286205b601f841660200360031b87515b8951818118831c6137f25783156137d05783878c20146137d05760018b019a50848b106137ca5750613801565b5061379d565b858b0389529986019960209098019786156137f257848b106137ca5750613801565b5060018a019950838a1061379d575b5050604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08189030160051c8152602090970190525050505b505092915050565b6040805160a0810182526000808252602082018190529091820190815260200161386c613879565b8152602001600081525090565b604051806101200160405280600073ffffffffffffffffffffffffffffffffffffffff1681526020016000815260200160608152602001600060018111156138c3576138c3613ced565b8152602001600081526020016000815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff1681525090565b60006020828403121561392a57600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114612e1457600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051610120810167ffffffffffffffff811182821017156139ad576139ad61395a565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff811182821017156139fa576139fa61395a565b604052919050565b73ffffffffffffffffffffffffffffffffffffffff81168114612c3b57600080fd5b8035613a2f81613a02565b919050565b600060408284031215613a4657600080fd5b6040516040810181811067ffffffffffffffff82111715613a6957613a6961395a565b604052823581526020830135613a7e81613a02565b60208201529392505050565b600060208284031215613a9c57600080fd5b5035919050565b600067ffffffffffffffff821115613abd57613abd61395a565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b600082601f830112613afa57600080fd5b8135613b0d613b0882613aa3565b6139b3565b818152846020838601011115613b2257600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060808587031215613b5557600080fd5b8435613b6081613a02565b93506020850135925060408501359150606085013567ffffffffffffffff811115613b8a57600080fd5b613b9687828801613ae9565b91505092959194509250565b803560028110613a2f57600080fd5b60008060008060808587031215613bc757600080fd5b8435613bd281613a02565b935060208501359250604085013567ffffffffffffffff80821115613bf657600080fd5b908601906101208289031215613c0b57600080fd5b613c13613989565b613c1c83613a24565b815260208301356020820152604083013582811115613c3a57600080fd5b613c468a828601613ae9565b604083015250613c5860608401613ba2565b60608201526080830135608082015260a083013560a082015260c083013560c0820152613c8760e08401613a24565b60e0820152610100613c9a818501613a24565b9082015293506060870135915080821115613cb457600080fd5b50613b9687828801613ae9565b60008060408385031215613cd457600080fd5b8235613cdf81613a02565b946020939093013593505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60005b83811015613d37578181015183820152602001613d1f565b83811115613d46576000848401525b50505050565b60008151808452613d64816020860160208601613d1c565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60028110613da657613da6613ced565b9052565b80518252602081015160208301526000604082015160048110613dcf57613dcf613ced565b80604085015250606082015160a06060850152613e0560a08501825173ffffffffffffffffffffffffffffffffffffffff169052565b602081015160c085015260408101516101208060e0870152613e2b6101c0870183613d4c565b91506060830151610100613e4181890183613d96565b60808501518389015260a085015161014089015260c085015161016089015260e08501519250613e8a61018089018473ffffffffffffffffffffffffffffffffffffffff169052565b939093015173ffffffffffffffffffffffffffffffffffffffff81166101a08801529250613eb59050565b60808401516080860152809250505092915050565b602081526000612e146020830184613daa565b600060208284031215613eef57600080fd5b8135612e1481613a02565b602081526000612e146020830184613d4c565b60008060008060008060008060008060006101608c8e031215613f2f57600080fd5b613f388c613a24565b9a5060208c0135995067ffffffffffffffff8060408e01351115613f5b57600080fd5b613f6b8e60408f01358f01613ae9565b9950613f7960608e01613ba2565b985060808d0135975060a08d0135965060c08d01359550613f9c60e08e01613a24565b9450613fab6101008e01613a24565b9350806101208e01351115613fbf57600080fd5b50613fd18d6101208e01358e01613ae9565b9150613fe06101408d01613a24565b90509295989b509295989b9093969950565b8015158114612c3b57600080fd5b6000806040838503121561401357600080fd5b82359150602083013561402581613ff2565b809150509250929050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b828110156140a3577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0888603018452614091858351613daa565b94509285019290850190600101614057565b5092979650505050505050565b60006140be613b0884613aa3565b90508281528383830111156140d257600080fd5b612e14836020830184613d1c565b6000602082840312156140f257600080fd5b815167ffffffffffffffff81111561410957600080fd5b8201601f8101841361411a57600080fd5b612a3c848251602084016140b0565b600061014073ffffffffffffffffffffffffffffffffffffffff808e1684528c60208501528160408501526141608285018d613d4c565b925061416f606085018c613d96565b60808401999099525060a082019690965260c081019490945291851660e08401529093166101008201526101200191909152949350505050565b6000602082840312156141bb57600080fd5b5051919050565b8481526080602082015260006141db6080830186613d4c565b82810360408401526141ed8186613d4c565b91505082606083015295945050505050565b8381526060602082015260006142186060830185613d4c565b828103604084015261422a8185613d4c565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000821982111561427657614276614234565b500190565b600181811c9082168061428f57607f821691505b602082108103613751577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b601f821115612e0357600081815260208120601f850160051c810160208610156142ef5750805b601f850160051c820191505b8181101561430e578281556001016142fb565b505050505050565b815167ffffffffffffffff8111156143305761433061395a565b6143448161433e845461427b565b846142c8565b602080601f83116001811461439757600084156143615750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b17855561430e565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b828110156143e4578886015182559484019460019091019084016143c5565b508582101561442057878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361446157614461614234565b5060010190565b60006020828403121561447a57600080fd5b8151612e1481613ff2565b60008282101561449757614497614234565b500390565b600060208083850312156144af57600080fd5b825167ffffffffffffffff808211156144c757600080fd5b818501915085601f8301126144db57600080fd5b8151818111156144ed576144ed61395a565b8060051b91506144fe8483016139b3565b818152918301840191848101908884111561451857600080fd5b938501935b83851015614542578451925061453283613a02565b828252938501939085019061451d565b98975050505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b73ffffffffffffffffffffffffffffffffffffffff851681528360208201526080604082015260006145b26080830185613d4c565b9050612b6e6060830184613d96565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156145f9576145f9614234565b500290565b60006020828403121561461057600080fd5b8151612e1481613a02565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`\x046\x10a\x01\x82W`\x005`\xE0\x1C\x80ce\xCFP\xEC\x11a\0\xD8W\x80c\xBC\xEB\x8E\xDA\x11a\0\x8CW\x80c\xDB\x16\xAA\xB9\x11a\0fW\x80c\xDB\x16\xAA\xB9\x14a\x04\x0FW\x80c\xE1\x0F\xFC\x92\x14a\x04\x17W\x80c\xE6G\xDE\xE1\x14a\x04*W`\0\x80\xFD[\x80c\xBC\xEB\x8E\xDA\x14a\x03\xC9W\x80c\xC1'\xFD9\x14a\x03\xDCW\x80c\xC9q6V\x14a\x03\xFCW`\0\x80\xFD[\x80cu\xF0\xBBR\x11a\0\xBDW\x80cu\xF0\xBBR\x14a\x03\x84W\x80c\x93'\x13h\x14a\x03\x97W\x80c\x96\xDEE\xA4\x14a\x03\xA9W`\0\x80\xFD[\x80ce\xCFP\xEC\x14a\x03^W\x80cr\xFB\x97\x03\x14a\x03qW`\0\x80\xFD[\x80c\x12I-\x97\x11a\x01:W\x80cV\x98\xB1j\x11a\x01\x14W\x80cV\x98\xB1j\x14a\x02\xF8W\x80c\\;E\x10\x14a\x03NW\x80c`\x92\xB3\x18\x14a\x03VW`\0\x80\xFD[\x80c\x12I-\x97\x14a\x01\xFDW\x80cG\xC02#\x14a\x02\x1DW\x80cT\xFDMP\x14a\x02\xAFW`\0\x80\xFD[\x80c\x06\xD8\xB7\xE2\x11a\x01kW\x80c\x06\xD8\xB7\xE2\x14a\x01\xC4W\x80c\tn\x01\xF7\x14a\x01\xD7W\x80c\x0E@\xBE\xEC\x14a\x01\xEAW`\0\x80\xFD[\x80c\x01\xFF\xC9\xA7\x14a\x01\x87W\x80c\x05\xCC\xF6\x06\x14a\x01\xAFW[`\0\x80\xFD[a\x01\x9Aa\x01\x956`\x04a9\x18V[a\x04uV[`@Q\x90\x15\x15\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[a\x01\xC2a\x01\xBD6`\x04a:4V[a\x05\x0EV[\0[a\x01\xC2a\x01\xD26`\x04a:\x8AV[a\x07\xB5V[a\x01\xC2a\x01\xE56`\x04a;?V[a\x08kV[a\x01\xC2a\x01\xF86`\x04a;\xB1V[a\r\xC3V[a\x02\x10a\x02\x0B6`\x04a<\xC1V[a\x13\xE3V[`@Qa\x01\xA6\x91\x90a>\xCAV[a\x02~a\x02+6`\x04a>\xDDV[`@\x80Q\x80\x82\x01\x82R`\0\x80\x82R` \x91\x82\x01\x81\x90Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x93\x84\x16\x81R\x80\x82R\x82\x90 \x82Q\x80\x84\x01\x90\x93R\x80T\x83R`\x01\x01T\x90\x92\x16\x91\x81\x01\x91\x90\x91R\x90V[`@\x80Q\x82Q\x81R` \x92\x83\x01Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x92\x81\x01\x92\x90\x92R\x01a\x01\xA6V[a\x02\xEB`@Q\x80`@\x01`@R\x80`\x06\x81R` \x01\x7F1.10.1\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\x81RP\x81V[`@Qa\x01\xA6\x91\x90a>\xFAV[a\x03@a\x03\x066`\x04a>\xDDV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\0\x90\x81R`\x02` \x90\x81R`@\x80\x83 `\x03\x83R\x81\x84 T\x84R\x90\x91R\x90 T\x90V[`@Q\x90\x81R` \x01a\x01\xA6V[a\x01\xC2a\x16\x14V[a\x01\xC2a\x16\x8EV[a\x01\xC2a\x03l6`\x04a:\x8AV[a\x17?V[a\x01\xC2a\x03\x7F6`\x04a>\xDDV[a\x18\xDEV[a\x01\xC2a\x03\x926`\x04a?\rV[a\x1A\x11V[a\x01\xC2a\x03\xA56`\x04a@\0V[PPV[a\x03@a\x03\xB76`\x04a>\xDDV[`\x01` R`\0\x90\x81R`@\x90 T\x81V[a\x01\xC2a\x03\xD76`\x04a>\xDDV[a\x1EiV[a\x03\xEFa\x03\xEA6`\x04a>\xDDV[a&\xA0V[`@Qa\x01\xA6\x91\x90a@0V[a\x03@a\x04\n6`\x04a>\xDDV[a)\xACV[a\x01\xC2a*DV[a\x03@a\x04%6`\x04a>\xDDV[a*\xC0V[a\x03@a\x0486`\x04a>\xDDV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\0\x90\x81R`\x02` \x90\x81R`@\x80\x83 `\x03\x83R\x81\x84 T\x84R\x90\x91R\x90 `\x01\x01T\x90V[`\0\x7F\xFF\xFF\xFF\xFF\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\x82\x16\x7F\xE6\xD7\xA8:\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\x14\x80a\x05\x08WP\x7F\xFF\xFF\xFF\xFF\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\x82\x16\x7F\x01\xFF\xC9\xA7\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\x14[\x92\x91PPV[\x80Q3\x90`\0\x03a\x05KW`@Q\x7Ft\xA7\xE9n\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\x01`@Q\x80\x91\x03\x90\xFD[` \x82\x01Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x15\x80a\x05\xA1WP\x80s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x82` \x01Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14[\x15a\x05\xD8W`@Q\x7FU-\xD1\xB7\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\x01`@Q\x80\x91\x03\x90\xFD[a\x06\xA7\x81s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xFF\xA1\xADt`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01`\0`@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x06&W=`\0\x80>=`\0\xFD[PPPP`@Q=`\0\x82>`\x1F=\x90\x81\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x82\x01`@Ra\x06l\x91\x90\x81\x01\x90a@\xE0V[`@Q\x80`@\x01`@R\x80`\x05\x81R` \x01\x7F1.4.1\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\x81RPa+'V[a\x06\xDDW`@Q\x7F\xDA!\xAE\xD9\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\x01`@Q\x80\x91\x03\x90\xFD[a\x06\xE6\x81a+wV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x81\x16`\0\x90\x81R` \x81\x81R`@\x90\x91 \x84Q\x81U\x90\x84\x01Q`\x01\x90\x91\x01\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x91\x90\x92\x16\x17\x90Ua\x07N\x81a,>V[\x81Q` \x83\x01Q`@Q3\x92\x7FG\xE2\xDD\xAE>\xCE,w\xF6\r\x8E\x9EZ\x89\xA5\x0F\x1D\x13t\xA8\x7F\xB1\x19V\xD2zkI\x86\xBB\xA1~\x92a\x07\xA4\x92\x91\x82Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16` \x82\x01R`@\x01\x90V[`@Q\x80\x91\x03\x90\xA2a\x03\xA5\x81a,\xBEV[\x7FQ\xA7\xF6\\c%\x88/#}J\xEBC\"\x81y\xCF\xADH\xB8hQ\x1DP\x8E$\xB4Cz\x81\x917`@Qa\x08`\x90` \x80\x82R`P\x90\x82\x01R\x7FThis function is not meant to be`@\x82\x01R\x7F called, did you mean to call ca``\x82\x01R\x7FncelTransaction?\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x80\x82\x01R`\xA0\x01\x90V[`@Q\x80\x91\x03\x90\xA1PV[`\x02s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x85\x16`\0\x90\x81R`\x02` \x90\x81R`@\x80\x83 `\x03\x83R\x81\x84 T\x84R\x90\x91R\x90 `\0\x85\x81R`\x02\x91\x82\x01` R`@\x90 \x01T`\xFF\x16`\x03\x81\x11\x15a\x08\xCBWa\x08\xCBa<\xEDV[\x03a\t\x02W`@Q\x7F>\x8B\x83\x89\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\x01`@Q\x80\x91\x03\x90\xFD[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x16`\0\x90\x81R`\x02` \x81\x81R`@\x80\x84 `\x03\x80\x84R\x82\x86 T\x86R\x90\x83R\x81\x85 \x88\x86R\x84\x01\x90\x92R\x90\x92 \x01T`\xFF\x16\x81\x81\x11\x15a\t[Wa\t[a<\xEDV[\x03a\t\x92W`@Q\x7F\x18<\xA41\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\x01`@Q\x80\x91\x03\x90\xFD[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x16`\0\x90\x81R`\x02` \x90\x81R`@\x80\x83 `\x03\x83R\x81\x84 T\x84R\x90\x91R\x81 `\0\x85\x81R`\x02\x91\x82\x01` R`@\x90 \x01T`\xFF\x16`\x03\x81\x11\x15a\t\xF0Wa\t\xF0a<\xEDV[\x03a\n'W`@Q\x7F\x03\xC8Ys\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\x01`@Q\x80\x91\x03\x90\xFD[`\x000s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\x06\xD8\xB7\xE2\x85`@Q`$\x01a\nX\x91\x81R` \x01\x90V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x91P`\xE0\x1B` \x82\x01\x80Q{\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x81\x83\x16\x17\x83RPPPP\x90P`\0\x85s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xE8f7\xDB0`\0\x85`\0\x80`\0\x80`\0\x80\x8E`@Q\x8Bc\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01a\n\xED\x9A\x99\x98\x97\x96\x95\x94\x93\x92\x91\x90aA)V[`\0`@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x0B\nW=`\0\x80>=`\0\xFD[PPPP`@Q=`\0\x82>`\x1F=\x90\x81\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x82\x01`@Ra\x0BP\x91\x90\x81\x01\x90a@\xE0V[\x90P`\0\x86s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xD8\xD1\x1Fx0`\0\x86`\0\x80`\0\x80`\0\x80\x8F`@Q\x8Bc\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01a\x0B\xA3\x9A\x99\x98\x97\x96\x95\x94\x93\x92\x91\x90aA)V[` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x0B\xC0W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x0B\xE4\x91\x90aA\xA9V[\x90P\x86s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\x12\xFBh\xE0\x82\x84\x87a\x0CB\x8Cs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\0\x90\x81R`\x02` \x90\x81R`@\x80\x83 `\x03\x83R\x81\x84 T\x84R\x90\x91R\x90 \x90V[`\x01\x01T`@Q\x85c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01a\x0Ce\x94\x93\x92\x91\x90aA\xC2V[`\0`@Q\x80\x83\x03\x81\x86\x80;\x15\x80\x15a\x0C}W`\0\x80\xFD[PZ\xFA\x15\x80\x15a\x0C\x91W=`\0\x80>=`\0\xFD[PPPP`\x02a\x0C\xD4\x88s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\0\x90\x81R`\x02` \x90\x81R`@\x80\x83 `\x03\x83R\x81\x84 T\x84R\x90\x91R\x90 \x90V[`\0\x88\x81R`\x02\x91\x82\x01` R`@\x90 \x01\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x16`\x01\x83`\x03\x81\x11\x15a\r\x1EWa\r\x1Ea<\xEDV[\x02\x17\x90UPa\rm\x86a\rd\x89s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\0\x90\x81R`\x02` \x90\x81R`@\x80\x83 `\x03\x83R\x81\x84 T\x84R\x90\x91R\x90 \x90V[`\x03\x01\x90a.\x08V[Pa\rw\x87a.\x1BV[`@Q\x86\x90s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x89\x16\x90\x7F\xA4/\xD8W\xB4}=\x04\xF5\xB2\x9F5\xCB\x054?f\xB3\x17c=-\xC2\x91\x07&\xBDK\xCA\x1A\x16%\x90`\0\x90\xA3PPPPPPPV[a\r\xCC\x84a.\xE1V[a\x0E\x02W`@Q\x7F?K)f\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\x01`@Q\x80\x91\x03\x90\xFD[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x16`\0\x90\x81R`\x02` \x90\x81R`@\x80\x83 `\x03\x83R\x81\x84 T\x84R\x90\x91R\x90 T`\0\x03a\x0EsW`@Q\x7F\x082\xDDi\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\x01`@Q\x80\x91\x03\x90\xFD[`\0\x84s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xE8f7\xDB\x84`\0\x01Q\x85` \x01Q\x86`@\x01Q\x87``\x01Q\x88`\x80\x01Q\x89`\xA0\x01Q\x8A`\xC0\x01Q\x8B`\xE0\x01Q\x8Ca\x01\0\x01Q\x8E`@Q\x8Bc\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01a\x0E\xE5\x9A\x99\x98\x97\x96\x95\x94\x93\x92\x91\x90aA)V[`\0`@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x0F\x02W=`\0\x80>=`\0\xFD[PPPP`@Q=`\0\x82>`\x1F=\x90\x81\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x82\x01`@Ra\x0FH\x91\x90\x81\x01\x90a@\xE0V[\x90P`\0\x85s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xD8\xD1\x1Fx\x85`\0\x01Q\x86` \x01Q\x87`@\x01Q\x88``\x01Q\x89`\x80\x01Q\x8A`\xA0\x01Q\x8B`\xC0\x01Q\x8C`\xE0\x01Q\x8Da\x01\0\x01Q\x8F`@Q\x8Bc\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01a\x0F\xBC\x9A\x99\x98\x97\x96\x95\x94\x93\x92\x91\x90aA)V[` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x0F\xD9W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x0F\xFD\x91\x90aA\xA9V[\x90Pa\x10<\x86s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\0\x90\x81R`\x02` \x90\x81R`@\x80\x83 `\x03\x83R\x81\x84 T\x84R\x90\x91R\x90 \x90V[`\0\x82\x81R`\x02\x91\x90\x91\x01` R`@\x90 `\x01\x01T\x15a\x10\x89W`@Q\x7F\x809M\xE6\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\x01`@Q\x80\x91\x03\x90\xFD[`@Q\x7F\x93O:\x11\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\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x16\x90c\x93O:\x11\x90a\x10\xDF\x90\x84\x90\x86\x90\x88\x90`\x04\x01aA\xFFV[`\0`@Q\x80\x83\x03\x81\x86\x80;\x15\x80\x15a\x10\xF7W`\0\x80\xFD[PZ\xFA\x15\x80\x15a\x11\x0BW=`\0\x80>=`\0\xFD[PPPP`\0a\x11N\x87s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\0\x90\x81R`\x02` \x90\x81R`@\x80\x83 `\x03\x83R\x81\x84 T\x84R\x90\x91R\x90 \x90V[Ta\x11Y\x90BaBcV[`@\x80Q`\xA0\x81\x01\x82R\x84\x81R` \x80\x82\x01\x84\x81R`\x01\x83\x85\x01\x81\x81R``\x85\x01\x8C\x90R`\x80\x85\x01\x8D\x90Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x8E\x16`\0\x90\x81R`\x02\x80\x86R\x87\x82 `\x03\x80\x88R\x89\x84 T\x84R\x90\x87R\x88\x83 \x8C\x84R\x82\x01\x90\x96R\x96\x90 \x85Q\x81U\x92Q\x83\x83\x01UQ\x94\x82\x01\x80T\x96\x97P\x93\x95\x91\x94\x93\x92\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x90\x92\x16\x91\x84\x90\x81\x11\x15a\x12\x13Wa\x12\x13a<\xEDV[\x02\x17\x90UP``\x82\x01Q\x80Q`\x03\x83\x01\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x92\x16\x91\x90\x91\x17\x81U` \x82\x01Q`\x04\x84\x01U`@\x82\x01Q`\x05\x84\x01\x90a\x12\x83\x90\x82aC\x16V[P``\x82\x01Q`\x03\x82\x01\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x16`\x01\x83\x81\x81\x11\x15a\x12\xC4Wa\x12\xC4a<\xEDV[\x02\x17\x90UP`\x80\x82\x81\x01Q`\x04\x83\x01U`\xA0\x83\x01Q`\x05\x83\x01U`\xC0\x83\x01Q`\x06\x83\x01U`\xE0\x83\x01Q`\x07\x83\x01\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x81\x16s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x93\x84\x16\x17\x90\x91Ua\x01\0\x90\x94\x01Q`\x08\x90\x93\x01\x80T\x90\x94\x16\x92\x81\x16\x92\x90\x92\x17\x90\x92U\x92\x01Q`\x0C\x90\x91\x01U\x87\x16`\0\x90\x81R`\x02` \x90\x81R`@\x80\x83 `\x03\x83R\x81\x84 T\x84R\x90\x91R\x90 a\x13\x88\x90\x83\x90`\x03\x01\x90a/\xEFV[P\x81\x87s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7Fe?\x8Fo\xCE*P;-\xFC\xA3N\x95\xB3\xE4\x90\"T\xA1\x17e\xD2e\x8C\x0EZ\xF1\xD6J\xB2v\xCF\x83`@Qa\x13\xD2\x91\x81R` \x01\x90V[`@Q\x80\x91\x03\x90\xA3PPPPPPPV[a\x13\xEBa8DV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x16`\0\x90\x81R`\x02` \x81\x81R`@\x80\x84 `\x03\x80\x84R\x82\x86 T\x86R\x90\x83R\x81\x85 \x87\x86R\x84\x01\x83R\x93\x81\x90 \x81Q`\xA0\x81\x01\x83R\x81T\x81R`\x01\x82\x01T\x93\x81\x01\x93\x90\x93R\x92\x83\x01T\x91\x93\x90\x84\x01\x91`\xFF\x16\x90\x81\x11\x15a\x14dWa\x14da<\xEDV[`\x03\x81\x11\x15a\x14uWa\x14ua<\xEDV[\x81R` \x01`\x03\x82\x01`@Q\x80a\x01 \x01`@R\x90\x81`\0\x82\x01`\0\x90T\x90a\x01\0\n\x90\x04s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81R` \x01`\x01\x82\x01T\x81R` \x01`\x02\x82\x01\x80Ta\x14\xFA\x90aB{V[\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x92\x91\x90\x81\x81R` \x01\x82\x80Ta\x15&\x90aB{V[\x80\x15a\x15sW\x80`\x1F\x10a\x15HWa\x01\0\x80\x83T\x04\x02\x83R\x91` \x01\x91a\x15sV[\x82\x01\x91\x90`\0R` `\0 \x90[\x81T\x81R\x90`\x01\x01\x90` \x01\x80\x83\x11a\x15VW\x82\x90\x03`\x1F\x16\x82\x01\x91[PPP\x91\x83RPP`\x03\x82\x01T` \x90\x91\x01\x90`\xFF\x16`\x01\x81\x11\x15a\x15\x9AWa\x15\x9Aa<\xEDV[`\x01\x81\x11\x15a\x15\xABWa\x15\xABa<\xEDV[\x81R`\x04\x82\x01T` \x80\x83\x01\x91\x90\x91R`\x05\x83\x01T`@\x83\x01R`\x06\x83\x01T``\x83\x01R`\x07\x83\x01Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x81\x16`\x80\x84\x01R`\x08\x90\x93\x01T\x90\x92\x16`\xA0\x90\x91\x01R\x90\x82R`\x0C\x92\x90\x92\x01T\x91\x01R\x93\x92PPPV[3a\x16\x1E\x81a.\xE1V[\x15a\x16UW`@Q\x7F\xA4\xD24\xCB\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\x01`@Q\x80\x91\x03\x90\xFD[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16`\0\x90\x81R`\x03` R`@\x81 \x80T\x91a\x16\x86\x83aD0V[\x91\x90PUPPV[3a\x16\x98\x81a/\xFBV[a\x16\xA1\x81a0_V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16`\0\x90\x81R` \x81\x90R`@\x81 \x90\x81U`\x01\x01\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x90Ua\x16\xFB\x81a,>V[`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16\x90\x7F\x9Co\xF0.hO\x8A\x818\x9E\xD9B\xFE\xA1\x14|\x16\xB8\xCC_\xE7\x9F+\xFB\xC5 \xD4N!J\xEDK\x90`\0\x90\xA2PV[`\x003\x90Pa\x17\x92\x81s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xFF\xA1\xADt`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01`\0`@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x06&W=`\0\x80>=`\0\xFD[a\x17\xC8W`@Q\x7F\x9E/|K\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\x01`@Q\x80\x91\x03\x90\xFD[a\x17\xD1\x81a.\xE1V[a\x18\x07W`@Q\x7F?K)f\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\x01`@Q\x80\x91\x03\x90\xFD[\x81\x15\x80a\x18\x17WPc\x01\xE13\x80\x82\x11[\x15a\x18NW`@Q\x7F\xA0\xCE\"\x8B\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\x01`@Q\x80\x91\x03\x90\xFD[\x81a\x18\x8C\x82s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\0\x90\x81R`\x02` \x90\x81R`@\x80\x83 `\x03\x83R\x81\x84 T\x84R\x90\x91R\x90 \x90V[Ua\x18\x96\x81a1$V[\x80s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xA4\x8D\x13\xEE\x8F\xAD\x99t\xFA\x90\x1C\xFB\x88\xA0-9\xC56\x1E\xFB\xAB\x13\xBB\x9B:\xA7\xCA\xA3\xF6\xD6\xB7\x86\x83`@Qa\x07\xA4\x91\x81R` \x01\x90V[a\x18\xE7\x81a/\xFBV[a\x18\xF0\x81a+wV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x81\x16`\0\x90\x81R` \x81\x90R`@\x90 `\x01\x01T\x163\x14a\x19SW`@Q\x7F\xA1\xF2\x08 \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\x01`@Q\x80\x91\x03\x90\xFD[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16`\0\x90\x81R`\x01` R`@\x90 T\x15a\x19\xB0W`@Q\x7F\x9C\xD9\t\x04\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\x01`@Q\x80\x91\x03\x90\xFD[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16`\0\x81\x81R`\x01` \x90\x81R`@\x91\x82\x90 B\x90\x81\x90U\x91Q\x91\x82R\x7F>\xB9$\x1C\xA0g\x93\xABg%\x90\xE8X\xD0\x97r\x06\xF8$\xE76x\x06\xF9J\x90\xAF9\x1D']3\x91\x01`@Q\x80\x91\x03\x90\xA2PV[3`\0\x81\x81R`\x02` \x90\x81R`@\x80\x83 `\x03\x83R\x81\x84 T\x84R\x90\x91R\x90 T`\0\x03a\x1A@WPa\x1E\\V[`@Q\x7F/T\xBFn\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\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x81\x16`\x04\x83\x01R\x82\x16\x90c/T\xBFn\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x1A\xACW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x1A\xD0\x91\x90aDhV[a\x1B\x06W`@Q\x7FXt\xE9O\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\x01`@Q\x80\x91\x03\x90\xFD[`\0`\x01\x82s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xAF\xFE\xD0\xE0`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x1BUW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x1By\x91\x90aA\xA9V[a\x1B\x83\x91\x90aD\x85V[\x90P`\0\x82s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xD8\xD1\x1Fx\x8F\x8F\x8F\x8F\x8F\x8F\x8F\x8F\x8F\x8C`@Q\x8Bc\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01a\x1B\xD2\x9A\x99\x98\x97\x96\x95\x94\x93\x92\x91\x90aA)V[` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x1B\xEFW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x1C\x13\x91\x90aA\xA9V[\x90P`\0a\x1CT\x84s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\0\x90\x81R`\x02` \x90\x81R`@\x80\x83 `\x03\x83R\x81\x84 T\x84R\x90\x91R\x90 \x90V[`\0\x83\x81R`\x02\x91\x82\x01` R`@\x90 \x91P`\x02\x82\x01T`\xFF\x16`\x03\x81\x11\x15a\x1C\x80Wa\x1C\x80a<\xEDV[\x03a\x1C\xB7W`@Q\x7F>\x8B\x83\x89\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\x01`@Q\x80\x91\x03\x90\xFD[`\x03`\x02\x82\x01T`\xFF\x16`\x03\x81\x11\x15a\x1C\xD2Wa\x1C\xD2a<\xEDV[\x03a\x1D\tW`@Q\x7F\x18<\xA41\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\x01`@Q\x80\x91\x03\x90\xFD[`\0`\x02\x82\x01T`\xFF\x16`\x03\x81\x11\x15a\x1D$Wa\x1D$a<\xEDV[\x03a\x1D[W`@Q\x7F\x03\xC8Ys\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\x01`@Q\x80\x91\x03\x90\xFD[B\x81`\x01\x01T\x11\x15a\x1D\x99W`@Q\x7FPW`@Q\x7F\t\xF9Y \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\x01`@Q\x80\x91\x03\x90\xFD[a\x1FG\x82a*\xC0V[B\x10\x15a\x1F\x80W`@Q\x7F'\x9E=$\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\0\x83s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81R` \x01\x90\x81R` \x01`\0 `\0\x90U`\0\x82s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xA0\xE6~+`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01`\0`@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a \x10W=`\0\x80>=`\0\xFD[PPPP`@Q=`\0\x82>`\x1F=\x90\x81\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x82\x01`@Ra V\x91\x90\x81\x01\x90aD\x9CV[\x90P[`\x01\x81Q\x11\x15a\"aW\x82s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16cF\x87!\xA7\x84`\0`\x01\x85`\0\x81Q\x81\x10a \x97Wa \x97aENV[` \x90\x81\x02\x91\x90\x91\x01\x01Q`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x92\x83\x16`$\x82\x01R\x91\x16`D\x82\x01R`\x01`d\x82\x01R`\x84\x01`@\x80Q\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x81\x84\x03\x01\x81R\x91\x81R` \x82\x01\x80Q{\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xF8\xDC]\xD9\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\x17\x90RQ\x7F\xFF\xFF\xFF\xFF\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`\xE0\x86\x90\x1B\x16\x81Ra!\x85\x93\x92\x91\x90`\0\x90`\x04\x01aE}V[` `@Q\x80\x83\x03\x81`\0\x87Z\xF1\x15\x80\x15a!\xA4W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a!\xC8\x91\x90aDhV[P\x82s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xA0\xE6~+`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01`\0`@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\"\x14W=`\0\x80>=`\0\xFD[PPPP`@Q=`\0\x82>`\x1F=\x90\x81\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x82\x01`@Ra\"Z\x91\x90\x81\x01\x90aD\x9CV[\x90Pa YV[\x82s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16cF\x87!\xA7\x84`\0`\x01\x85`\0\x81Q\x81\x10a\"\x95Wa\"\x95aENV[` \x90\x81\x02\x91\x90\x91\x01\x81\x01Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x8A\x81\x16`\0\x90\x81R\x92\x83\x90R`@\x92\x83\x90 `\x01\x01T\x92Q\x93\x81\x16`$\x85\x01R\x90\x81\x16`D\x84\x01R\x16`d\x82\x01R`\x84\x01`@\x80Q\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x81\x84\x03\x01\x81R\x91\x81R` \x82\x01\x80Q{\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xE3\x18\xB5+\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\x17\x90RQ\x7F\xFF\xFF\xFF\xFF\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`\xE0\x86\x90\x1B\x16\x81Ra#\x99\x93\x92\x91\x90`\0\x90`\x04\x01aE}V[` `@Q\x80\x83\x03\x81`\0\x87Z\xF1\x15\x80\x15a#\xB8W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a#\xDC\x91\x90aDhV[P`\0\x83s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xA0\xE6~+`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01`\0`@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a$*W=`\0\x80>=`\0\xFD[PPPP`@Q=`\0\x82>`\x1F=\x90\x81\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x82\x01`@Ra$p\x91\x90\x81\x01\x90aD\x9CV[\x90P\x80Q`\x01\x14\x15\x80a$\xDDWPs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x85\x16`\0\x90\x81R` \x81\x90R`@\x81 `\x01\x01T\x83Q\x92\x16\x91\x83\x91\x90a$\xBCWa$\xBCaENV[` \x02` \x01\x01Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14\x15[\x15a%\x14W`@Q\x7F\xE30\xAC\x05\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\x01`@Q\x80\x91\x03\x90\xFD[`@Q`\0`$\x82\x01\x81\x90Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x86\x16\x91cF\x87!\xA7\x91\x87\x91`D\x01`@\x80Q\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x81\x84\x03\x01\x81R\x91\x81R` \x82\x01\x80Q{\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xE1\x9A\x9D\xD9\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\x17\x90RQ\x7F\xFF\xFF\xFF\xFF\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`\xE0\x86\x90\x1B\x16\x81Ra%\xF5\x93\x92\x91\x90`\0\x90`\x04\x01aE}V[` `@Q\x80\x83\x03\x81`\0\x87Z\xF1\x15\x80\x15a&\x14W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a&8\x91\x90aDhV[Ps\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x81\x16`\0\x81\x81R` \x81\x81R`@\x91\x82\x90 `\x01\x01T\x91Q\x91\x90\x93\x16\x81R\x90\x91\x7F\xDF\xDE\xCBq\xEB\x05\x80\xC9&<\x86{\xC6\xDE\x9D\xD6\xF8Y\xCCjn\xE3=G\xE5\x05\x90O\x1DV\x01\xC9\x91\x01`@Q\x80\x91\x03\x90\xA2PPPPV[```\0a&\xE1\x83s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\0\x90\x81R`\x02` \x90\x81R`@\x80\x83 `\x03\x83R\x81\x84 T\x84R\x90\x91R\x90 \x90V[\x90P`\0a&\xF1\x82`\x03\x01a1\xA1V[\x90P`\0\x81Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a'\x0FWa'\x0Fa9ZV[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a'HW\x81` \x01[a'5a8DV[\x81R` \x01\x90`\x01\x90\x03\x90\x81a'-W\x90P[P\x90P`\0[\x82Q\x81\x10\x15a)\xA3W\x83`\x02\x01`\0\x84\x83\x81Q\x81\x10a'oWa'oaENV[` \x02` \x01\x01Q\x81R` \x01\x90\x81R` \x01`\0 `@Q\x80`\xA0\x01`@R\x90\x81`\0\x82\x01T\x81R` \x01`\x01\x82\x01T\x81R` \x01`\x02\x82\x01`\0\x90T\x90a\x01\0\n\x90\x04`\xFF\x16`\x03\x81\x11\x15a'\xC8Wa'\xC8a<\xEDV[`\x03\x81\x11\x15a'\xD9Wa'\xD9a<\xEDV[\x81R` \x01`\x03\x82\x01`@Q\x80a\x01 \x01`@R\x90\x81`\0\x82\x01`\0\x90T\x90a\x01\0\n\x90\x04s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81R` \x01`\x01\x82\x01T\x81R` \x01`\x02\x82\x01\x80Ta(^\x90aB{V[\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x92\x91\x90\x81\x81R` \x01\x82\x80Ta(\x8A\x90aB{V[\x80\x15a(\xD7W\x80`\x1F\x10a(\xACWa\x01\0\x80\x83T\x04\x02\x83R\x91` \x01\x91a(\xD7V[\x82\x01\x91\x90`\0R` `\0 \x90[\x81T\x81R\x90`\x01\x01\x90` \x01\x80\x83\x11a(\xBAW\x82\x90\x03`\x1F\x16\x82\x01\x91[PPP\x91\x83RPP`\x03\x82\x01T` \x90\x91\x01\x90`\xFF\x16`\x01\x81\x11\x15a(\xFEWa(\xFEa<\xEDV[`\x01\x81\x11\x15a)\x0FWa)\x0Fa<\xEDV[\x81R`\x04\x82\x01T` \x80\x83\x01\x91\x90\x91R`\x05\x83\x01T`@\x83\x01R`\x06\x83\x01T``\x83\x01R`\x07\x83\x01Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x81\x16`\x80\x84\x01R`\x08\x90\x93\x01T\x90\x92\x16`\xA0\x90\x91\x01R\x90\x82R`\x0C\x92\x90\x92\x01T\x91\x01R\x82Q\x83\x90\x83\x90\x81\x10a)\x85Wa)\x85aENV[` \x02` \x01\x01\x81\x90RP\x80\x80a)\x9B\x90aD0V[\x91PPa'NV[P\x94\x93PPPPV[`\0\x80a)\xB8\x83a1\xACV[\x90P`\0\x83s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xE7R5\xB8`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a*\x07W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a*+\x91\x90aA\xA9V[\x90P\x80\x82\x10a*:W\x80a*V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16`\0\x90\x81R`\x01` R`@\x81 T\x80\x82\x03a*\xF6WP`\0\x92\x91PPV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x16`\0\x90\x81R` \x81\x90R`@\x90 \x80Ta*<\x90\x83aBcV[`\0\x80a+3\x84a2\xC4V[\x90P`\0a+@\x84a2\xC4V[\x80Q\x83Q\x91\x92P\x14\x80\x15a+[WP\x80` \x01Q\x82` \x01Q\x14[\x80\x15a+nWP\x80`@\x01Q\x82`@\x01Q\x14[\x95\x94PPPPPV[`@Q\x7F-\x9A\xD5=\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\x81R0`\x04\x82\x01Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16\x90c-\x9A\xD5=\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a+\xE1W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a,\x05\x91\x90aDhV[a,;W`@Q\x7F\x9F\xDA\xDA1\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\x01`@Q\x80\x91\x03\x90\xFD[PV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16`\0\x90\x81R`\x01` R`@\x81 T\x90\x03a,mWPV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16`\0\x81\x81R`\x01` R`@\x80\x82 \x82\x90UQ\x7F\xAD\xFAe\x11\xC5\xA9\xB5\xAC\x1A\xDC^N\x0C\xA67\xC4e\xF2J\xB5l\x1B\xD2U\xA0\x83\xE0\x02>;|B\x91\x90\xA2PV[a,\xC7\x81a.\xE1V[\x80\x15a-\\WP`@Q\x7F-\x9A\xD5=\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\x81R0`\x04\x82\x01Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16\x90c-\x9A\xD5=\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a-8W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a-\\\x91\x90aDhV[a-cWPV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16`\0\x81\x81R`\x02` \x90\x81R`@\x80\x83 `\x03\x83R\x81\x84 T\x84R\x82R\x80\x83 T\x93\x83R\x90\x82\x90R\x81 T\x90\x82\x90\x03a-\xB2WPPPV[\x80`\0\x03a-\xBFWPPPV[a-\xCA\x82`\x02aE\xC1V[\x81\x10\x15a.\x03W`@Q\x7FG\xDC\xA1\xCE\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\x01`@Q\x80\x91\x03\x90\xFD[PPPV[`\0a.\x14\x83\x83a4\x90V[\x93\x92PPPV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16`\0\x90\x81R`\x02` \x90\x81R`@\x80\x83 `\x03\x83R\x81\x84 T\x84R\x90\x91R\x90 a.[\x82a)\xACV[\x81`\x01\x01T\x10\x15a\x03\xA5W`\x01\x81\x01\x80T\x90\x81\x90`\0a.z\x83aD0V[\x91\x90PUP\x82s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7FN\xDA\x17\x97`\xB4\xE6\x86P\x05\x83v\xD4\xAC\xEFx\xE9S\"\x13\x17E\r)\xB4\x92\x0Em(6\x94L\x82\x84`\x01\x01T`@Qa.\xD4\x92\x91\x90\x91\x82R` \x82\x01R`@\x01\x90V[`@Q\x80\x91\x03\x90\xA2PPPV[`@Q\x7FV$\xB2[\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\x7FJ Ob\x0C\x8C\\\xCD\xCA?\xD5M\0;\xAD\xD8[\xA5\0CjC\x1F\x0C\xBD\xA4\xF5X\xC9<4\xC8`\x04\x82\x01R`\x01`$\x82\x01R`\0\x90\x81\x90s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x16\x90cV$\xB2[\x90`D\x01`\0`@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a/wW=`\0\x80>=`\0\xFD[PPPP`@Q=`\0\x82>`\x1F=\x90\x81\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x82\x01`@Ra/\xBD\x91\x90\x81\x01\x90a@\xE0V[\x80` \x01\x90Q\x81\x01\x90a/\xD0\x91\x90aE\xFEV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x160\x14\x93\x92PPPV[`\0a.\x14\x83\x83a5\x8AV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x16`\0\x90\x81R` \x81\x90R`@\x90 `\x01\x81\x01T\x90\x91\x16a\x03\xA5W`@Q\x7F\xA0\xFE\x93\x9B\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\x01`@Q\x80\x91\x03\x90\xFD[`@Q\x7F-\x9A\xD5=\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\x81R0`\x04\x82\x01Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16\x90c-\x9A\xD5=\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a0\xC9W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a0\xED\x91\x90aDhV[\x15a,;W`@Q\x7Fp\xA3\x80\x94\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\x01`@Q\x80\x91\x03\x90\xFD[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16`\0\x81\x81R`\x02` \x90\x81R`@\x80\x83 `\x03\x83R\x81\x84 T\x84R\x82R\x91\x82\x90 `\x01\x80\x82\x01\x80T\x90\x82\x90U\x84Q\x81\x81R\x93\x84\x01\x91\x90\x91R\x90\x93\x90\x92\x90\x91\x7FN\xDA\x17\x97`\xB4\xE6\x86P\x05\x83v\xD4\xAC\xEFx\xE9S\"\x13\x17E\r)\xB4\x92\x0Em(6\x94L\x91\x01a.\xD4V[``a\x05\x08\x82a5\xD9V[`\0\x81s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xE7R5\xB8`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a1\xF9W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a2\x1D\x91\x90aA\xA9V[\x82s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xA0\xE6~+`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01`\0`@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a2hW=`\0\x80>=`\0\xFD[PPPP`@Q=`\0\x82>`\x1F=\x90\x81\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x82\x01`@Ra2\xAE\x91\x90\x81\x01\x90aD\x9CV[Qa2\xB9\x91\x90aD\x85V[a\x05\x08\x90`\x01aBcV[a2\xE8`@Q\x80``\x01`@R\x80`\0\x81R` \x01`\0\x81R` \x01`\0\x81RP\x90V[`\0a3)\x83`@Q\x80`@\x01`@R\x80`\x01\x81R` \x01\x7F.\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RPa65V[\x90P`\x03\x81Q\x10\x15a3gW`@Q\x7F\x9E\xDA\x85\x8C\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\x01`@Q\x80\x91\x03\x90\xFD[`\0a3\xC2\x82`\x02\x81Q\x81\x10a3\x7FWa3\x7FaENV[` \x02` \x01\x01Q`@Q\x80`@\x01`@R\x80`\x01\x81R` \x01\x7F-\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RPa65V[\x90P`\0a4\x1F\x82`\0\x81Q\x81\x10a3\xDCWa3\xDCaENV[` \x02` \x01\x01Q`@Q\x80`@\x01`@R\x80`\x01\x81R` \x01\x7F+\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RPa65V[\x90P`@Q\x80``\x01`@R\x80a4O\x85`\0\x81Q\x81\x10a4BWa4BaENV[` \x02` \x01\x01Qa6\xDFV[\x81R` \x01a4j\x85`\x01\x81Q\x81\x10a4BWa4BaENV[\x81R` \x01a4\x85\x83`\0\x81Q\x81\x10a4BWa4BaENV[\x90R\x95\x94PPPPPV[`\0\x81\x81R`\x01\x83\x01` R`@\x81 T\x80\x15a5yW`\0a4\xB4`\x01\x83aD\x85V[\x85T\x90\x91P`\0\x90a4\xC8\x90`\x01\x90aD\x85V[\x90P\x81\x81\x14a5-W`\0\x86`\0\x01\x82\x81T\x81\x10a4\xE8Wa4\xE8aENV[\x90`\0R` `\0 \x01T\x90P\x80\x87`\0\x01\x84\x81T\x81\x10a5\x0BWa5\x0BaENV[`\0\x91\x82R` \x80\x83 \x90\x91\x01\x92\x90\x92U\x91\x82R`\x01\x88\x01\x90R`@\x90 \x83\x90U[\x85T\x86\x90\x80a5>Wa5>aF\x1BV[`\x01\x90\x03\x81\x81\x90`\0R` `\0 \x01`\0\x90U\x90U\x85`\x01\x01`\0\x86\x81R` \x01\x90\x81R` \x01`\0 `\0\x90U`\x01\x93PPPPa\x05\x08V[`\0\x91PPa\x05\x08V[P\x92\x91PPV[`\0\x81\x81R`\x01\x83\x01` R`@\x81 Ta5\xD1WP\x81T`\x01\x81\x81\x01\x84U`\0\x84\x81R` \x80\x82 \x90\x93\x01\x84\x90U\x84T\x84\x82R\x82\x86\x01\x90\x93R`@\x90 \x91\x90\x91Ua\x05\x08V[P`\0a\x05\x08V[``\x81`\0\x01\x80T\x80` \x02` \x01`@Q\x90\x81\x01`@R\x80\x92\x91\x90\x81\x81R` \x01\x82\x80T\x80\x15a6)W` \x02\x82\x01\x91\x90`\0R` `\0 \x90[\x81T\x81R` \x01\x90`\x01\x01\x90\x80\x83\x11a6\x15W[PPPPP\x90P\x91\x90PV[```\0a6C\x84\x84a7WV[\x90P`\x1F\x19` \x82\x01`\x01\x83Q\x01`\x05\x1B\x81\x01\x86Q\x83\x82\x01R`\x01\x84Q\x01\x84R`\0[\x82Q``\x84R\x81\x81\x14a6\xABW`@Q\x82\x82\x03\x80\x82R\x86`\x1F\x82\x01\x16[\x8B\x85\x01\x81\x01Q\x83\x82\x01R\x87\x01\x80a6\x83WP`\0\x82\x82\x01` \x01R`?\x01\x86\x16\x81\x01`@R\x84R[\x87Q` \x94\x90\x94\x01\x93\x01\x90P\x81\x83\x10a6fWPPPP\x80\x91P\x82Qa5\x83W` \x81\x01\x91P`\x02\x81Q\x03\x82RP\x92\x91PPV[\x80Q`\0\x90\x7F\x19\x99\x99\x99\x99\x99\x99\x99\x99\x99\x99\x99\x99\x99\x99\x99\x99\x99\x99\x99\x99\x99\x99\x99\x99\x99\x99\x99\x99\x99\x99\x99\x82[`\x01\x81\x01\x90P`0`\xFF\x82\x87\x01Q\x16\x03\x82\x85\x11\x85`\n\x02\x82\x81\x01\x96P`\t\x83\x11\x81\x88\x10\x83\x17\x17\x15\x86\x02\x95PPPP\x82\x81\x10a7\x07WPP\x80a7QWc\x10\x18'\x96`\0R`\x04`\x1C\xFD[P\x91\x90PV[``\x82Q\x82Q\x81\x81\x11a8\x05`\xA0\x85\x01\x82Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90RV[` \x81\x01Q`\xC0\x85\x01R`@\x81\x01Qa\x01 \x80`\xE0\x87\x01Ra>+a\x01\xC0\x87\x01\x83a=LV[\x91P``\x83\x01Qa\x01\0a>A\x81\x89\x01\x83a=\x96V[`\x80\x85\x01Q\x83\x89\x01R`\xA0\x85\x01Qa\x01@\x89\x01R`\xC0\x85\x01Qa\x01`\x89\x01R`\xE0\x85\x01Q\x92Pa>\x8Aa\x01\x80\x89\x01\x84s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90RV[\x93\x90\x93\x01Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16a\x01\xA0\x88\x01R\x92Pa>\xB5\x90PV[`\x80\x84\x01Q`\x80\x86\x01R\x80\x92PPP\x92\x91PPV[` \x81R`\0a.\x14` \x83\x01\x84a=\xAAV[`\0` \x82\x84\x03\x12\x15a>\xEFW`\0\x80\xFD[\x815a.\x14\x81a:\x02V[` \x81R`\0a.\x14` \x83\x01\x84a=LV[`\0\x80`\0\x80`\0\x80`\0\x80`\0\x80`\0a\x01`\x8C\x8E\x03\x12\x15a?/W`\0\x80\xFD[a?8\x8Ca:$V[\x9AP` \x8C\x015\x99Pg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80`@\x8E\x015\x11\x15a?[W`\0\x80\xFD[a?k\x8E`@\x8F\x015\x8F\x01a:\xE9V[\x99Pa?y``\x8E\x01a;\xA2V[\x98P`\x80\x8D\x015\x97P`\xA0\x8D\x015\x96P`\xC0\x8D\x015\x95Pa?\x9C`\xE0\x8E\x01a:$V[\x94Pa?\xABa\x01\0\x8E\x01a:$V[\x93P\x80a\x01 \x8E\x015\x11\x15a?\xBFW`\0\x80\xFD[Pa?\xD1\x8Da\x01 \x8E\x015\x8E\x01a:\xE9V[\x91Pa?\xE0a\x01@\x8D\x01a:$V[\x90P\x92\x95\x98\x9BP\x92\x95\x98\x9B\x90\x93\x96\x99PV[\x80\x15\x15\x81\x14a,;W`\0\x80\xFD[`\0\x80`@\x83\x85\x03\x12\x15a@\x13W`\0\x80\xFD[\x825\x91P` \x83\x015a@%\x81a?\xF2V[\x80\x91PP\x92P\x92\x90PV[`\0` \x80\x83\x01\x81\x84R\x80\x85Q\x80\x83R`@\x86\x01\x91P`@\x81`\x05\x1B\x87\x01\x01\x92P\x83\x87\x01`\0[\x82\x81\x10\x15a@\xA3W\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xC0\x88\x86\x03\x01\x84Ra@\x91\x85\x83Qa=\xAAV[\x94P\x92\x85\x01\x92\x90\x85\x01\x90`\x01\x01a@WV[P\x92\x97\x96PPPPPPPV[`\0a@\xBEa;\x08\x84a:\xA3V[\x90P\x82\x81R\x83\x83\x83\x01\x11\x15a@\xD2W`\0\x80\xFD[a.\x14\x83` \x83\x01\x84a=\x1CV[`\0` \x82\x84\x03\x12\x15a@\xF2W`\0\x80\xFD[\x81Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15aA\tW`\0\x80\xFD[\x82\x01`\x1F\x81\x01\x84\x13aA\x1AW`\0\x80\xFD[a*<\x84\x82Q` \x84\x01a@\xB0V[`\0a\x01@s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x8E\x16\x84R\x8C` \x85\x01R\x81`@\x85\x01RaA`\x82\x85\x01\x8Da=LV[\x92PaAo``\x85\x01\x8Ca=\x96V[`\x80\x84\x01\x99\x90\x99RP`\xA0\x82\x01\x96\x90\x96R`\xC0\x81\x01\x94\x90\x94R\x91\x85\x16`\xE0\x84\x01R\x90\x93\x16a\x01\0\x82\x01Ra\x01 \x01\x91\x90\x91R\x94\x93PPPPV[`\0` \x82\x84\x03\x12\x15aA\xBBW`\0\x80\xFD[PQ\x91\x90PV[\x84\x81R`\x80` \x82\x01R`\0aA\xDB`\x80\x83\x01\x86a=LV[\x82\x81\x03`@\x84\x01RaA\xED\x81\x86a=LV[\x91PP\x82``\x83\x01R\x95\x94PPPPPV[\x83\x81R``` \x82\x01R`\0aB\x18``\x83\x01\x85a=LV[\x82\x81\x03`@\x84\x01RaB*\x81\x85a=LV[\x96\x95PPPPPPV[\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`\x11`\x04R`$`\0\xFD[`\0\x82\x19\x82\x11\x15aBvWaBvaB4V[P\x01\x90V[`\x01\x81\x81\x1C\x90\x82\x16\x80aB\x8FW`\x7F\x82\x16\x91P[` \x82\x10\x81\x03a7QW\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`\"`\x04R`$`\0\xFD[`\x1F\x82\x11\x15a.\x03W`\0\x81\x81R` \x81 `\x1F\x85\x01`\x05\x1C\x81\x01` \x86\x10\x15aB\xEFWP\x80[`\x1F\x85\x01`\x05\x1C\x82\x01\x91P[\x81\x81\x10\x15aC\x0EW\x82\x81U`\x01\x01aB\xFBV[PPPPPPV[\x81Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15aC0WaC0a9ZV[aCD\x81aC>\x84TaB{V[\x84aB\xC8V[` \x80`\x1F\x83\x11`\x01\x81\x14aC\x97W`\0\x84\x15aCaWP\x85\x83\x01Q[\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF`\x03\x86\x90\x1B\x1C\x19\x16`\x01\x85\x90\x1B\x17\x85UaC\x0EV[`\0\x85\x81R` \x81 \x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x86\x16\x91[\x82\x81\x10\x15aC\xE4W\x88\x86\x01Q\x82U\x94\x84\x01\x94`\x01\x90\x91\x01\x90\x84\x01aC\xC5V[P\x85\x82\x10\x15aD W\x87\x85\x01Q\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF`\x03\x88\x90\x1B`\xF8\x16\x1C\x19\x16\x81U[PPPPP`\x01\x90\x81\x1B\x01\x90UPV[`\0\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x03aDaWaDaaB4V[P`\x01\x01\x90V[`\0` \x82\x84\x03\x12\x15aDzW`\0\x80\xFD[\x81Qa.\x14\x81a?\xF2V[`\0\x82\x82\x10\x15aD\x97WaD\x97aB4V[P\x03\x90V[`\0` \x80\x83\x85\x03\x12\x15aD\xAFW`\0\x80\xFD[\x82Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15aD\xC7W`\0\x80\xFD[\x81\x85\x01\x91P\x85`\x1F\x83\x01\x12aD\xDBW`\0\x80\xFD[\x81Q\x81\x81\x11\x15aD\xEDWaD\xEDa9ZV[\x80`\x05\x1B\x91PaD\xFE\x84\x83\x01a9\xB3V[\x81\x81R\x91\x83\x01\x84\x01\x91\x84\x81\x01\x90\x88\x84\x11\x15aE\x18W`\0\x80\xFD[\x93\x85\x01\x93[\x83\x85\x10\x15aEBW\x84Q\x92PaE2\x83a:\x02V[\x82\x82R\x93\x85\x01\x93\x90\x85\x01\x90aE\x1DV[\x98\x97PPPPPPPPV[\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`2`\x04R`$`\0\xFD[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x85\x16\x81R\x83` \x82\x01R`\x80`@\x82\x01R`\0aE\xB2`\x80\x83\x01\x85a=LV[\x90Pa+n``\x83\x01\x84a=\x96V[`\0\x81\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x04\x83\x11\x82\x15\x15\x16\x15aE\xF9WaE\xF9aB4V[P\x02\x90V[`\0` \x82\x84\x03\x12\x15aF\x10W`\0\x80\xFD[\x81Qa.\x14\x81a:\x02V[\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`1`\x04R`$`\0\xFD\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `LivenessModule2_ChallengeAlreadyExists()` and selector `0x9cd90904`. +```solidity +error LivenessModule2_ChallengeAlreadyExists(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct LivenessModule2_ChallengeAlreadyExists; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: LivenessModule2_ChallengeAlreadyExists) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for LivenessModule2_ChallengeAlreadyExists { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for LivenessModule2_ChallengeAlreadyExists { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "LivenessModule2_ChallengeAlreadyExists()"; + const SELECTOR: [u8; 4] = [156u8, 217u8, 9u8, 4u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `LivenessModule2_ChallengeDoesNotExist()` and selector `0x09f95920`. +```solidity +error LivenessModule2_ChallengeDoesNotExist(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct LivenessModule2_ChallengeDoesNotExist; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: LivenessModule2_ChallengeDoesNotExist) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for LivenessModule2_ChallengeDoesNotExist { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for LivenessModule2_ChallengeDoesNotExist { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "LivenessModule2_ChallengeDoesNotExist()"; + const SELECTOR: [u8; 4] = [9u8, 249u8, 89u8, 32u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `LivenessModule2_InvalidFallbackOwner()` and selector `0x552dd1b7`. +```solidity +error LivenessModule2_InvalidFallbackOwner(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct LivenessModule2_InvalidFallbackOwner; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: LivenessModule2_InvalidFallbackOwner) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for LivenessModule2_InvalidFallbackOwner { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for LivenessModule2_InvalidFallbackOwner { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "LivenessModule2_InvalidFallbackOwner()"; + const SELECTOR: [u8; 4] = [85u8, 45u8, 209u8, 183u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `LivenessModule2_InvalidResponsePeriod()` and selector `0x74a7e96e`. +```solidity +error LivenessModule2_InvalidResponsePeriod(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct LivenessModule2_InvalidResponsePeriod; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: LivenessModule2_InvalidResponsePeriod) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for LivenessModule2_InvalidResponsePeriod { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for LivenessModule2_InvalidResponsePeriod { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "LivenessModule2_InvalidResponsePeriod()"; + const SELECTOR: [u8; 4] = [116u8, 167u8, 233u8, 110u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `LivenessModule2_InvalidVersion()` and selector `0xda21aed9`. +```solidity +error LivenessModule2_InvalidVersion(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct LivenessModule2_InvalidVersion; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: LivenessModule2_InvalidVersion) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for LivenessModule2_InvalidVersion { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for LivenessModule2_InvalidVersion { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "LivenessModule2_InvalidVersion()"; + const SELECTOR: [u8; 4] = [218u8, 33u8, 174u8, 217u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `LivenessModule2_ModuleNotConfigured()` and selector `0xa0fe939b`. +```solidity +error LivenessModule2_ModuleNotConfigured(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct LivenessModule2_ModuleNotConfigured; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: LivenessModule2_ModuleNotConfigured) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for LivenessModule2_ModuleNotConfigured { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for LivenessModule2_ModuleNotConfigured { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "LivenessModule2_ModuleNotConfigured()"; + const SELECTOR: [u8; 4] = [160u8, 254u8, 147u8, 155u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `LivenessModule2_ModuleNotEnabled()` and selector `0x9fdada31`. +```solidity +error LivenessModule2_ModuleNotEnabled(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct LivenessModule2_ModuleNotEnabled; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: LivenessModule2_ModuleNotEnabled) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for LivenessModule2_ModuleNotEnabled { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for LivenessModule2_ModuleNotEnabled { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "LivenessModule2_ModuleNotEnabled()"; + const SELECTOR: [u8; 4] = [159u8, 218u8, 218u8, 49u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `LivenessModule2_ModuleStillEnabled()` and selector `0x70a38094`. +```solidity +error LivenessModule2_ModuleStillEnabled(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct LivenessModule2_ModuleStillEnabled; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: LivenessModule2_ModuleStillEnabled) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for LivenessModule2_ModuleStillEnabled { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for LivenessModule2_ModuleStillEnabled { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "LivenessModule2_ModuleStillEnabled()"; + const SELECTOR: [u8; 4] = [112u8, 163u8, 128u8, 148u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `LivenessModule2_OwnershipTransferFailed()` and selector `0xe330ac05`. +```solidity +error LivenessModule2_OwnershipTransferFailed(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct LivenessModule2_OwnershipTransferFailed; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: LivenessModule2_OwnershipTransferFailed) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for LivenessModule2_OwnershipTransferFailed { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for LivenessModule2_OwnershipTransferFailed { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "LivenessModule2_OwnershipTransferFailed()"; + const SELECTOR: [u8; 4] = [227u8, 48u8, 172u8, 5u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `LivenessModule2_ResponsePeriodActive()` and selector `0x279e3d24`. +```solidity +error LivenessModule2_ResponsePeriodActive(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct LivenessModule2_ResponsePeriodActive; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: LivenessModule2_ResponsePeriodActive) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for LivenessModule2_ResponsePeriodActive { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for LivenessModule2_ResponsePeriodActive { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "LivenessModule2_ResponsePeriodActive()"; + const SELECTOR: [u8; 4] = [39u8, 158u8, 61u8, 36u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `LivenessModule2_ResponsePeriodEnded()` and selector `0xeb911af0`. +```solidity +error LivenessModule2_ResponsePeriodEnded(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct LivenessModule2_ResponsePeriodEnded; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: LivenessModule2_ResponsePeriodEnded) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for LivenessModule2_ResponsePeriodEnded { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for LivenessModule2_ResponsePeriodEnded { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "LivenessModule2_ResponsePeriodEnded()"; + const SELECTOR: [u8; 4] = [235u8, 145u8, 26u8, 240u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `LivenessModule2_UnauthorizedCaller()` and selector `0xa1f20820`. +```solidity +error LivenessModule2_UnauthorizedCaller(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct LivenessModule2_UnauthorizedCaller; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: LivenessModule2_UnauthorizedCaller) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for LivenessModule2_UnauthorizedCaller { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for LivenessModule2_UnauthorizedCaller { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "LivenessModule2_UnauthorizedCaller()"; + const SELECTOR: [u8; 4] = [161u8, 242u8, 8u8, 32u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `SaferSafes_InsufficientLivenessResponsePeriod()` and selector `0x47dca1ce`. +```solidity +error SaferSafes_InsufficientLivenessResponsePeriod(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct SaferSafes_InsufficientLivenessResponsePeriod; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: SaferSafes_InsufficientLivenessResponsePeriod) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for SaferSafes_InsufficientLivenessResponsePeriod { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError + for SaferSafes_InsufficientLivenessResponsePeriod { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "SaferSafes_InsufficientLivenessResponsePeriod()"; + const SELECTOR: [u8; 4] = [71u8, 220u8, 161u8, 206u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `SemverComp_InvalidSemverParts()` and selector `0x9eda858c`. +```solidity +error SemverComp_InvalidSemverParts(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct SemverComp_InvalidSemverParts; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: SemverComp_InvalidSemverParts) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for SemverComp_InvalidSemverParts { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for SemverComp_InvalidSemverParts { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "SemverComp_InvalidSemverParts()"; + const SELECTOR: [u8; 4] = [158u8, 218u8, 133u8, 140u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `TimelockGuard_GuardNotConfigured()` and selector `0x0832dd69`. +```solidity +error TimelockGuard_GuardNotConfigured(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct TimelockGuard_GuardNotConfigured; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: TimelockGuard_GuardNotConfigured) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for TimelockGuard_GuardNotConfigured { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for TimelockGuard_GuardNotConfigured { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "TimelockGuard_GuardNotConfigured()"; + const SELECTOR: [u8; 4] = [8u8, 50u8, 221u8, 105u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `TimelockGuard_GuardNotEnabled()` and selector `0x3f4b2966`. +```solidity +error TimelockGuard_GuardNotEnabled(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct TimelockGuard_GuardNotEnabled; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: TimelockGuard_GuardNotEnabled) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for TimelockGuard_GuardNotEnabled { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for TimelockGuard_GuardNotEnabled { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "TimelockGuard_GuardNotEnabled()"; + const SELECTOR: [u8; 4] = [63u8, 75u8, 41u8, 102u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `TimelockGuard_GuardStillEnabled()` and selector `0xa4d234cb`. +```solidity +error TimelockGuard_GuardStillEnabled(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct TimelockGuard_GuardStillEnabled; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: TimelockGuard_GuardStillEnabled) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for TimelockGuard_GuardStillEnabled { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for TimelockGuard_GuardStillEnabled { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "TimelockGuard_GuardStillEnabled()"; + const SELECTOR: [u8; 4] = [164u8, 210u8, 52u8, 203u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `TimelockGuard_InvalidTimelockDelay()` and selector `0xa0ce228b`. +```solidity +error TimelockGuard_InvalidTimelockDelay(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct TimelockGuard_InvalidTimelockDelay; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: TimelockGuard_InvalidTimelockDelay) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for TimelockGuard_InvalidTimelockDelay { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for TimelockGuard_InvalidTimelockDelay { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "TimelockGuard_InvalidTimelockDelay()"; + const SELECTOR: [u8; 4] = [160u8, 206u8, 34u8, 139u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `TimelockGuard_InvalidVersion()` and selector `0x9e2f7c4b`. +```solidity +error TimelockGuard_InvalidVersion(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct TimelockGuard_InvalidVersion; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: TimelockGuard_InvalidVersion) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for TimelockGuard_InvalidVersion { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for TimelockGuard_InvalidVersion { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "TimelockGuard_InvalidVersion()"; + const SELECTOR: [u8; 4] = [158u8, 47u8, 124u8, 75u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `TimelockGuard_NotOwner()` and selector `0x5874e94f`. +```solidity +error TimelockGuard_NotOwner(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct TimelockGuard_NotOwner; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: TimelockGuard_NotOwner) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for TimelockGuard_NotOwner { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for TimelockGuard_NotOwner { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "TimelockGuard_NotOwner()"; + const SELECTOR: [u8; 4] = [88u8, 116u8, 233u8, 79u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `TimelockGuard_TransactionAlreadyCancelled()` and selector `0x3e8b8389`. +```solidity +error TimelockGuard_TransactionAlreadyCancelled(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct TimelockGuard_TransactionAlreadyCancelled; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: TimelockGuard_TransactionAlreadyCancelled) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for TimelockGuard_TransactionAlreadyCancelled { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for TimelockGuard_TransactionAlreadyCancelled { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "TimelockGuard_TransactionAlreadyCancelled()"; + const SELECTOR: [u8; 4] = [62u8, 139u8, 131u8, 137u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `TimelockGuard_TransactionAlreadyExecuted()` and selector `0x183ca431`. +```solidity +error TimelockGuard_TransactionAlreadyExecuted(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct TimelockGuard_TransactionAlreadyExecuted; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: TimelockGuard_TransactionAlreadyExecuted) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for TimelockGuard_TransactionAlreadyExecuted { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for TimelockGuard_TransactionAlreadyExecuted { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "TimelockGuard_TransactionAlreadyExecuted()"; + const SELECTOR: [u8; 4] = [24u8, 60u8, 164u8, 49u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `TimelockGuard_TransactionAlreadyScheduled()` and selector `0x80394de6`. +```solidity +error TimelockGuard_TransactionAlreadyScheduled(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct TimelockGuard_TransactionAlreadyScheduled; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: TimelockGuard_TransactionAlreadyScheduled) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for TimelockGuard_TransactionAlreadyScheduled { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for TimelockGuard_TransactionAlreadyScheduled { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "TimelockGuard_TransactionAlreadyScheduled()"; + const SELECTOR: [u8; 4] = [128u8, 57u8, 77u8, 230u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `TimelockGuard_TransactionNotReady()` and selector `0x503c42c4`. +```solidity +error TimelockGuard_TransactionNotReady(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct TimelockGuard_TransactionNotReady; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: TimelockGuard_TransactionNotReady) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for TimelockGuard_TransactionNotReady { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for TimelockGuard_TransactionNotReady { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "TimelockGuard_TransactionNotReady()"; + const SELECTOR: [u8; 4] = [80u8, 60u8, 66u8, 196u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `TimelockGuard_TransactionNotScheduled()` and selector `0x03c85973`. +```solidity +error TimelockGuard_TransactionNotScheduled(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct TimelockGuard_TransactionNotScheduled; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: TimelockGuard_TransactionNotScheduled) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for TimelockGuard_TransactionNotScheduled { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for TimelockGuard_TransactionNotScheduled { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "TimelockGuard_TransactionNotScheduled()"; + const SELECTOR: [u8; 4] = [3u8, 200u8, 89u8, 115u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `CancellationThresholdUpdated(address,uint256,uint256)` and selector `0x4eda179760b4e68650058376d4acef78e953221317450d29b4920e6d2836944c`. +```solidity +event CancellationThresholdUpdated(address indexed safe, uint256 oldThreshold, uint256 newThreshold); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct CancellationThresholdUpdated { + #[allow(missing_docs)] + pub safe: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub oldThreshold: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub newThreshold: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for CancellationThresholdUpdated { + type DataTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + ); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "CancellationThresholdUpdated(address,uint256,uint256)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 78u8, 218u8, 23u8, 151u8, 96u8, 180u8, 230u8, 134u8, 80u8, 5u8, 131u8, + 118u8, 212u8, 172u8, 239u8, 120u8, 233u8, 83u8, 34u8, 19u8, 23u8, 69u8, + 13u8, 41u8, 180u8, 146u8, 14u8, 109u8, 40u8, 54u8, 148u8, 76u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + safe: topics.1, + oldThreshold: data.0, + newThreshold: data.1, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.oldThreshold), + as alloy_sol_types::SolType>::tokenize(&self.newThreshold), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.safe.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.safe, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for CancellationThresholdUpdated { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&CancellationThresholdUpdated> for alloy_sol_types::private::LogData { + #[inline] + fn from( + this: &CancellationThresholdUpdated, + ) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `ChallengeCancelled(address)` and selector `0xadfa6511c5a9b5ac1adc5e4e0ca637c465f24ab56c1bd255a083e0023e3b7c42`. +```solidity +event ChallengeCancelled(address indexed safe); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct ChallengeCancelled { + #[allow(missing_docs)] + pub safe: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for ChallengeCancelled { + type DataTuple<'a> = (); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "ChallengeCancelled(address)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 173u8, 250u8, 101u8, 17u8, 197u8, 169u8, 181u8, 172u8, 26u8, 220u8, 94u8, + 78u8, 12u8, 166u8, 55u8, 196u8, 101u8, 242u8, 74u8, 181u8, 108u8, 27u8, + 210u8, 85u8, 160u8, 131u8, 224u8, 2u8, 62u8, 59u8, 124u8, 66u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { safe: topics.1 } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + () + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.safe.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.safe, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for ChallengeCancelled { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&ChallengeCancelled> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &ChallengeCancelled) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `ChallengeStarted(address,uint256)` and selector `0x3eb9241ca06793ab672590e858d0977206f824e7367806f94a90af391d275d33`. +```solidity +event ChallengeStarted(address indexed safe, uint256 challengeStartTime); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct ChallengeStarted { + #[allow(missing_docs)] + pub safe: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub challengeStartTime: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for ChallengeStarted { + type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "ChallengeStarted(address,uint256)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 62u8, 185u8, 36u8, 28u8, 160u8, 103u8, 147u8, 171u8, 103u8, 37u8, 144u8, + 232u8, 88u8, 208u8, 151u8, 114u8, 6u8, 248u8, 36u8, 231u8, 54u8, 120u8, + 6u8, 249u8, 74u8, 144u8, 175u8, 57u8, 29u8, 39u8, 93u8, 51u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + safe: topics.1, + challengeStartTime: data.0, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.challengeStartTime), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.safe.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.safe, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for ChallengeStarted { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&ChallengeStarted> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &ChallengeStarted) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `ChallengeSucceeded(address,address)` and selector `0xdfdecb71eb0580c9263c867bc6de9dd6f859cc6a6ee33d47e505904f1d5601c9`. +```solidity +event ChallengeSucceeded(address indexed safe, address fallbackOwner); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct ChallengeSucceeded { + #[allow(missing_docs)] + pub safe: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub fallbackOwner: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for ChallengeSucceeded { + type DataTuple<'a> = (alloy::sol_types::sol_data::Address,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "ChallengeSucceeded(address,address)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 223u8, 222u8, 203u8, 113u8, 235u8, 5u8, 128u8, 201u8, 38u8, 60u8, 134u8, + 123u8, 198u8, 222u8, 157u8, 214u8, 248u8, 89u8, 204u8, 106u8, 110u8, + 227u8, 61u8, 71u8, 229u8, 5u8, 144u8, 79u8, 29u8, 86u8, 1u8, 201u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + safe: topics.1, + fallbackOwner: data.0, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + ::tokenize( + &self.fallbackOwner, + ), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.safe.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.safe, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for ChallengeSucceeded { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&ChallengeSucceeded> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &ChallengeSucceeded) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `GuardConfigured(address,uint256)` and selector `0xa48d13ee8fad9974fa901cfb88a02d39c5361efbab13bb9b3aa7caa3f6d6b786`. +```solidity +event GuardConfigured(address indexed safe, uint256 timelockDelay); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct GuardConfigured { + #[allow(missing_docs)] + pub safe: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub timelockDelay: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for GuardConfigured { + type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "GuardConfigured(address,uint256)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 164u8, 141u8, 19u8, 238u8, 143u8, 173u8, 153u8, 116u8, 250u8, 144u8, + 28u8, 251u8, 136u8, 160u8, 45u8, 57u8, 197u8, 54u8, 30u8, 251u8, 171u8, + 19u8, 187u8, 155u8, 58u8, 167u8, 202u8, 163u8, 246u8, 214u8, 183u8, 134u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + safe: topics.1, + timelockDelay: data.0, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.timelockDelay), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.safe.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.safe, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for GuardConfigured { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&GuardConfigured> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &GuardConfigured) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `Message(string)` and selector `0x51a7f65c6325882f237d4aeb43228179cfad48b868511d508e24b4437a819137`. +```solidity +event Message(string message); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct Message { + #[allow(missing_docs)] + pub message: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for Message { + type DataTuple<'a> = (alloy::sol_types::sol_data::String,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,); + const SIGNATURE: &'static str = "Message(string)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 81u8, 167u8, 246u8, 92u8, 99u8, 37u8, 136u8, 47u8, 35u8, 125u8, 74u8, + 235u8, 67u8, 34u8, 129u8, 121u8, 207u8, 173u8, 72u8, 184u8, 104u8, 81u8, + 29u8, 80u8, 142u8, 36u8, 180u8, 67u8, 122u8, 129u8, 145u8, 55u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { message: data.0 } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + ::tokenize( + &self.message, + ), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(),) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for Message { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&Message> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &Message) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `ModuleCleared(address)` and selector `0x9c6ff02e684f8a81389ed942fea1147c16b8cc5fe79f2bfbc520d44e214aed4b`. +```solidity +event ModuleCleared(address indexed safe); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct ModuleCleared { + #[allow(missing_docs)] + pub safe: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for ModuleCleared { + type DataTuple<'a> = (); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "ModuleCleared(address)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 156u8, 111u8, 240u8, 46u8, 104u8, 79u8, 138u8, 129u8, 56u8, 158u8, 217u8, + 66u8, 254u8, 161u8, 20u8, 124u8, 22u8, 184u8, 204u8, 95u8, 231u8, 159u8, + 43u8, 251u8, 197u8, 32u8, 212u8, 78u8, 33u8, 74u8, 237u8, 75u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { safe: topics.1 } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + () + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.safe.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.safe, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for ModuleCleared { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&ModuleCleared> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &ModuleCleared) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `ModuleConfigured(address,uint256,address)` and selector `0x47e2ddae3ece2c77f60d8e9e5a89a50f1d1374a87fb11956d27a6b4986bba17e`. +```solidity +event ModuleConfigured(address indexed safe, uint256 livenessResponsePeriod, address fallbackOwner); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct ModuleConfigured { + #[allow(missing_docs)] + pub safe: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub livenessResponsePeriod: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub fallbackOwner: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for ModuleConfigured { + type DataTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Address, + ); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "ModuleConfigured(address,uint256,address)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 71u8, 226u8, 221u8, 174u8, 62u8, 206u8, 44u8, 119u8, 246u8, 13u8, 142u8, + 158u8, 90u8, 137u8, 165u8, 15u8, 29u8, 19u8, 116u8, 168u8, 127u8, 177u8, + 25u8, 86u8, 210u8, 122u8, 107u8, 73u8, 134u8, 187u8, 161u8, 126u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + safe: topics.1, + livenessResponsePeriod: data.0, + fallbackOwner: data.1, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize( + &self.livenessResponsePeriod, + ), + ::tokenize( + &self.fallbackOwner, + ), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.safe.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.safe, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for ModuleConfigured { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&ModuleConfigured> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &ModuleConfigured) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `TransactionCancelled(address,bytes32)` and selector `0xa42fd857b47d3d04f5b29f35cb05343f66b317633d2dc2910726bd4bca1a1625`. +```solidity +event TransactionCancelled(address indexed safe, bytes32 indexed txHash); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct TransactionCancelled { + #[allow(missing_docs)] + pub safe: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub txHash: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for TransactionCancelled { + type DataTuple<'a> = (); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + const SIGNATURE: &'static str = "TransactionCancelled(address,bytes32)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 164u8, 47u8, 216u8, 87u8, 180u8, 125u8, 61u8, 4u8, 245u8, 178u8, 159u8, + 53u8, 203u8, 5u8, 52u8, 63u8, 102u8, 179u8, 23u8, 99u8, 61u8, 45u8, + 194u8, 145u8, 7u8, 38u8, 189u8, 75u8, 202u8, 26u8, 22u8, 37u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + safe: topics.1, + txHash: topics.2, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + () + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.safe.clone(), self.txHash.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.safe, + ); + out[2usize] = as alloy_sol_types::EventTopic>::encode_topic(&self.txHash); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for TransactionCancelled { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&TransactionCancelled> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &TransactionCancelled) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `TransactionExecuted(address,bytes32)` and selector `0xdd4b9b318b98162cb1e7b52752a3fd110d5b7966f3b50884c1cd3bd04058e5c7`. +```solidity +event TransactionExecuted(address indexed safe, bytes32 indexed txHash); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct TransactionExecuted { + #[allow(missing_docs)] + pub safe: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub txHash: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for TransactionExecuted { + type DataTuple<'a> = (); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + const SIGNATURE: &'static str = "TransactionExecuted(address,bytes32)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 221u8, 75u8, 155u8, 49u8, 139u8, 152u8, 22u8, 44u8, 177u8, 231u8, 181u8, + 39u8, 82u8, 163u8, 253u8, 17u8, 13u8, 91u8, 121u8, 102u8, 243u8, 181u8, + 8u8, 132u8, 193u8, 205u8, 59u8, 208u8, 64u8, 88u8, 229u8, 199u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + safe: topics.1, + txHash: topics.2, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + () + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.safe.clone(), self.txHash.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.safe, + ); + out[2usize] = as alloy_sol_types::EventTopic>::encode_topic(&self.txHash); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for TransactionExecuted { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&TransactionExecuted> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &TransactionExecuted) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `TransactionScheduled(address,bytes32,uint256)` and selector `0x653f8f6fce2a503b2dfca34e95b3e4902254a11765d2658c0e5af1d64ab276cf`. +```solidity +event TransactionScheduled(address indexed safe, bytes32 indexed txHash, uint256 executionTime); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct TransactionScheduled { + #[allow(missing_docs)] + pub safe: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub txHash: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub executionTime: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for TransactionScheduled { + type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + const SIGNATURE: &'static str = "TransactionScheduled(address,bytes32,uint256)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 101u8, 63u8, 143u8, 111u8, 206u8, 42u8, 80u8, 59u8, 45u8, 252u8, 163u8, + 78u8, 149u8, 179u8, 228u8, 144u8, 34u8, 84u8, 161u8, 23u8, 101u8, 210u8, + 101u8, 140u8, 14u8, 90u8, 241u8, 214u8, 74u8, 178u8, 118u8, 207u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + safe: topics.1, + txHash: topics.2, + executionTime: data.0, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.executionTime), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.safe.clone(), self.txHash.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.safe, + ); + out[2usize] = as alloy_sol_types::EventTopic>::encode_topic(&self.txHash); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for TransactionScheduled { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&TransactionScheduled> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &TransactionScheduled) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `cancelTransaction(address,bytes32,uint256,bytes)` and selector `0x096e01f7`. +```solidity +function cancelTransaction(address _safe, bytes32 _txHash, uint256 _nonce, bytes memory _signatures) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct cancelTransactionCall { + #[allow(missing_docs)] + pub _safe: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _txHash: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub _nonce: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _signatures: alloy::sol_types::private::Bytes, + } + ///Container type for the return parameters of the [`cancelTransaction(address,bytes32,uint256,bytes)`](cancelTransactionCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct cancelTransactionReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::FixedBytes<32>, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::Bytes, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: cancelTransactionCall) -> Self { + (value._safe, value._txHash, value._nonce, value._signatures) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for cancelTransactionCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _safe: tuple.0, + _txHash: tuple.1, + _nonce: tuple.2, + _signatures: tuple.3, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: cancelTransactionReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for cancelTransactionReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl cancelTransactionReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for cancelTransactionCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Bytes, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = cancelTransactionReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "cancelTransaction(address,bytes32,uint256,bytes)"; + const SELECTOR: [u8; 4] = [9u8, 110u8, 1u8, 247u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._safe, + ), + as alloy_sol_types::SolType>::tokenize(&self._txHash), + as alloy_sol_types::SolType>::tokenize(&self._nonce), + ::tokenize( + &self._signatures, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + cancelTransactionReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `cancellationThreshold(address)` and selector `0xe647dee1`. +```solidity +function cancellationThreshold(address _safe) external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct cancellationThresholdCall { + #[allow(missing_docs)] + pub _safe: alloy::sol_types::private::Address, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`cancellationThreshold(address)`](cancellationThresholdCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct cancellationThresholdReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: cancellationThresholdCall) -> Self { + (value._safe,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for cancellationThresholdCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _safe: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: cancellationThresholdReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for cancellationThresholdReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for cancellationThresholdCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "cancellationThreshold(address)"; + const SELECTOR: [u8; 4] = [230u8, 71u8, 222u8, 225u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._safe, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: cancellationThresholdReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: cancellationThresholdReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `challenge(address)` and selector `0x72fb9703`. +```solidity +function challenge(address _safe) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct challengeCall { + #[allow(missing_docs)] + pub _safe: alloy::sol_types::private::Address, + } + ///Container type for the return parameters of the [`challenge(address)`](challengeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct challengeReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: challengeCall) -> Self { + (value._safe,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for challengeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _safe: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: challengeReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for challengeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl challengeReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for challengeCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = challengeReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "challenge(address)"; + const SELECTOR: [u8; 4] = [114u8, 251u8, 151u8, 3u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._safe, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + challengeReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `challengeStartTime(address)` and selector `0x96de45a4`. +```solidity +function challengeStartTime(address) external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct challengeStartTimeCall(pub alloy::sol_types::private::Address); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`challengeStartTime(address)`](challengeStartTimeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct challengeStartTimeReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: challengeStartTimeCall) -> Self { + (value.0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for challengeStartTimeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self(tuple.0) + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: challengeStartTimeReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for challengeStartTimeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for challengeStartTimeCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "challengeStartTime(address)"; + const SELECTOR: [u8; 4] = [150u8, 222u8, 69u8, 164u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.0, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: challengeStartTimeReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: challengeStartTimeReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `changeOwnershipToFallback(address)` and selector `0xbceb8eda`. +```solidity +function changeOwnershipToFallback(address _safe) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct changeOwnershipToFallbackCall { + #[allow(missing_docs)] + pub _safe: alloy::sol_types::private::Address, + } + ///Container type for the return parameters of the [`changeOwnershipToFallback(address)`](changeOwnershipToFallbackCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct changeOwnershipToFallbackReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: changeOwnershipToFallbackCall) -> Self { + (value._safe,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for changeOwnershipToFallbackCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _safe: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: changeOwnershipToFallbackReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for changeOwnershipToFallbackReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl changeOwnershipToFallbackReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken< + '_, + > { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for changeOwnershipToFallbackCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = changeOwnershipToFallbackReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "changeOwnershipToFallback(address)"; + const SELECTOR: [u8; 4] = [188u8, 235u8, 142u8, 218u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._safe, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + changeOwnershipToFallbackReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `checkAfterExecution(bytes32,bool)` and selector `0x93271368`. +```solidity +function checkAfterExecution(bytes32 _txHash, bool _success) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct checkAfterExecutionCall { + #[allow(missing_docs)] + pub _txHash: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub _success: bool, + } + ///Container type for the return parameters of the [`checkAfterExecution(bytes32,bool)`](checkAfterExecutionCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct checkAfterExecutionReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Bool, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::FixedBytes<32>, + bool, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: checkAfterExecutionCall) -> Self { + (value._txHash, value._success) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for checkAfterExecutionCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _txHash: tuple.0, + _success: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: checkAfterExecutionReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for checkAfterExecutionReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl checkAfterExecutionReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for checkAfterExecutionCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Bool, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = checkAfterExecutionReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "checkAfterExecution(bytes32,bool)"; + const SELECTOR: [u8; 4] = [147u8, 39u8, 19u8, 104u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._txHash), + ::tokenize( + &self._success, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + checkAfterExecutionReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `checkTransaction(address,uint256,bytes,uint8,uint256,uint256,uint256,address,address,bytes,address)` and selector `0x75f0bb52`. +```solidity +function checkTransaction(address _to, uint256 _value, bytes memory _data, Enum.Operation _operation, uint256 _safeTxGas, uint256 _baseGas, uint256 _gasPrice, address _gasToken, address _refundReceiver, bytes memory, address _msgSender) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct checkTransactionCall { + #[allow(missing_docs)] + pub _to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _value: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _data: alloy::sol_types::private::Bytes, + #[allow(missing_docs)] + pub _operation: ::RustType, + #[allow(missing_docs)] + pub _safeTxGas: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _baseGas: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _gasPrice: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _gasToken: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _refundReceiver: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _9: alloy::sol_types::private::Bytes, + #[allow(missing_docs)] + pub _msgSender: alloy::sol_types::private::Address, + } + ///Container type for the return parameters of the [`checkTransaction(address,uint256,bytes,uint8,uint256,uint256,uint256,address,address,bytes,address)`](checkTransactionCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct checkTransactionReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Bytes, + Enum::Operation, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Bytes, + alloy::sol_types::sol_data::Address, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::Bytes, + ::RustType, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::Bytes, + alloy::sol_types::private::Address, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: checkTransactionCall) -> Self { + ( + value._to, + value._value, + value._data, + value._operation, + value._safeTxGas, + value._baseGas, + value._gasPrice, + value._gasToken, + value._refundReceiver, + value._9, + value._msgSender, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for checkTransactionCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _to: tuple.0, + _value: tuple.1, + _data: tuple.2, + _operation: tuple.3, + _safeTxGas: tuple.4, + _baseGas: tuple.5, + _gasPrice: tuple.6, + _gasToken: tuple.7, + _refundReceiver: tuple.8, + _9: tuple.9, + _msgSender: tuple.10, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: checkTransactionReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for checkTransactionReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl checkTransactionReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for checkTransactionCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Bytes, + Enum::Operation, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Bytes, + alloy::sol_types::sol_data::Address, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = checkTransactionReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "checkTransaction(address,uint256,bytes,uint8,uint256,uint256,uint256,address,address,bytes,address)"; + const SELECTOR: [u8; 4] = [117u8, 240u8, 187u8, 82u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._to, + ), + as alloy_sol_types::SolType>::tokenize(&self._value), + ::tokenize( + &self._data, + ), + ::tokenize( + &self._operation, + ), + as alloy_sol_types::SolType>::tokenize(&self._safeTxGas), + as alloy_sol_types::SolType>::tokenize(&self._baseGas), + as alloy_sol_types::SolType>::tokenize(&self._gasPrice), + ::tokenize( + &self._gasToken, + ), + ::tokenize( + &self._refundReceiver, + ), + ::tokenize( + &self._9, + ), + ::tokenize( + &self._msgSender, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + checkTransactionReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `clearLivenessModule()` and selector `0x6092b318`. +```solidity +function clearLivenessModule() external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct clearLivenessModuleCall; + ///Container type for the return parameters of the [`clearLivenessModule()`](clearLivenessModuleCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct clearLivenessModuleReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: clearLivenessModuleCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for clearLivenessModuleCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: clearLivenessModuleReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for clearLivenessModuleReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl clearLivenessModuleReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for clearLivenessModuleCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = clearLivenessModuleReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "clearLivenessModule()"; + const SELECTOR: [u8; 4] = [96u8, 146u8, 179u8, 24u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + clearLivenessModuleReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `clearTimelockGuard()` and selector `0x5c3b4510`. +```solidity +function clearTimelockGuard() external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct clearTimelockGuardCall; + ///Container type for the return parameters of the [`clearTimelockGuard()`](clearTimelockGuardCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct clearTimelockGuardReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: clearTimelockGuardCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for clearTimelockGuardCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: clearTimelockGuardReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for clearTimelockGuardReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl clearTimelockGuardReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for clearTimelockGuardCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = clearTimelockGuardReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "clearTimelockGuard()"; + const SELECTOR: [u8; 4] = [92u8, 59u8, 69u8, 16u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + clearTimelockGuardReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `configureLivenessModule((uint256,address))` and selector `0x05ccf606`. +```solidity +function configureLivenessModule(LivenessModule2.ModuleConfig memory _config) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct configureLivenessModuleCall { + #[allow(missing_docs)] + pub _config: ::RustType, + } + ///Container type for the return parameters of the [`configureLivenessModule((uint256,address))`](configureLivenessModuleCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct configureLivenessModuleReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (LivenessModule2::ModuleConfig,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: configureLivenessModuleCall) -> Self { + (value._config,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for configureLivenessModuleCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _config: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: configureLivenessModuleReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for configureLivenessModuleReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl configureLivenessModuleReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken< + '_, + > { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for configureLivenessModuleCall { + type Parameters<'a> = (LivenessModule2::ModuleConfig,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = configureLivenessModuleReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "configureLivenessModule((uint256,address))"; + const SELECTOR: [u8; 4] = [5u8, 204u8, 246u8, 6u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._config, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + configureLivenessModuleReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `configureTimelockGuard(uint256)` and selector `0x65cf50ec`. +```solidity +function configureTimelockGuard(uint256 _timelockDelay) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct configureTimelockGuardCall { + #[allow(missing_docs)] + pub _timelockDelay: alloy::sol_types::private::primitives::aliases::U256, + } + ///Container type for the return parameters of the [`configureTimelockGuard(uint256)`](configureTimelockGuardCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct configureTimelockGuardReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: configureTimelockGuardCall) -> Self { + (value._timelockDelay,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for configureTimelockGuardCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _timelockDelay: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: configureTimelockGuardReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for configureTimelockGuardReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl configureTimelockGuardReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken< + '_, + > { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for configureTimelockGuardCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = configureTimelockGuardReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "configureTimelockGuard(uint256)"; + const SELECTOR: [u8; 4] = [101u8, 207u8, 80u8, 236u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._timelockDelay), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + configureTimelockGuardReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `getChallengePeriodEnd(address)` and selector `0xe10ffc92`. +```solidity +function getChallengePeriodEnd(address _safe) external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getChallengePeriodEndCall { + #[allow(missing_docs)] + pub _safe: alloy::sol_types::private::Address, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`getChallengePeriodEnd(address)`](getChallengePeriodEndCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getChallengePeriodEndReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: getChallengePeriodEndCall) -> Self { + (value._safe,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for getChallengePeriodEndCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _safe: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: getChallengePeriodEndReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for getChallengePeriodEndReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for getChallengePeriodEndCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "getChallengePeriodEnd(address)"; + const SELECTOR: [u8; 4] = [225u8, 15u8, 252u8, 146u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._safe, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: getChallengePeriodEndReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: getChallengePeriodEndReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `livenessSafeConfiguration(address)` and selector `0x47c03223`. +```solidity +function livenessSafeConfiguration(address _safe) external view returns (LivenessModule2.ModuleConfig memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct livenessSafeConfigurationCall { + #[allow(missing_docs)] + pub _safe: alloy::sol_types::private::Address, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`livenessSafeConfiguration(address)`](livenessSafeConfigurationCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct livenessSafeConfigurationReturn { + #[allow(missing_docs)] + pub _0: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: livenessSafeConfigurationCall) -> Self { + (value._safe,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for livenessSafeConfigurationCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _safe: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (LivenessModule2::ModuleConfig,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: livenessSafeConfigurationReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for livenessSafeConfigurationReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for livenessSafeConfigurationCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (LivenessModule2::ModuleConfig,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "livenessSafeConfiguration(address)"; + const SELECTOR: [u8; 4] = [71u8, 192u8, 50u8, 35u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._safe, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: livenessSafeConfigurationReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: livenessSafeConfigurationReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `maxCancellationThreshold(address)` and selector `0xc9713656`. +```solidity +function maxCancellationThreshold(address _safe) external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct maxCancellationThresholdCall { + #[allow(missing_docs)] + pub _safe: alloy::sol_types::private::Address, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`maxCancellationThreshold(address)`](maxCancellationThresholdCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct maxCancellationThresholdReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: maxCancellationThresholdCall) -> Self { + (value._safe,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for maxCancellationThresholdCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _safe: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: maxCancellationThresholdReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for maxCancellationThresholdReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for maxCancellationThresholdCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "maxCancellationThreshold(address)"; + const SELECTOR: [u8; 4] = [201u8, 113u8, 54u8, 86u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._safe, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: maxCancellationThresholdReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: maxCancellationThresholdReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `pendingTransactions(address)` and selector `0xc127fd39`. +```solidity +function pendingTransactions(address _safe) external view returns (TimelockGuard.ScheduledTransaction[] memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct pendingTransactionsCall { + #[allow(missing_docs)] + pub _safe: alloy::sol_types::private::Address, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + ///Container type for the return parameters of the [`pendingTransactions(address)`](pendingTransactionsCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct pendingTransactionsReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Vec< + ::RustType, + >, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: pendingTransactionsCall) -> Self { + (value._safe,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for pendingTransactionsCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _safe: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Array, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Vec< + ::RustType, + >, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: pendingTransactionsReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for pendingTransactionsReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for pendingTransactionsCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Vec< + ::RustType, + >; + type ReturnTuple<'a> = ( + alloy::sol_types::sol_data::Array, + ); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "pendingTransactions(address)"; + const SELECTOR: [u8; 4] = [193u8, 39u8, 253u8, 57u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._safe, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: pendingTransactionsReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: pendingTransactionsReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `respond()` and selector `0xdb16aab9`. +```solidity +function respond() external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct respondCall; + ///Container type for the return parameters of the [`respond()`](respondCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct respondReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: respondCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for respondCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: respondReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for respondReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl respondReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for respondCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = respondReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "respond()"; + const SELECTOR: [u8; 4] = [219u8, 22u8, 170u8, 185u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + respondReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `scheduleTransaction(address,uint256,(address,uint256,bytes,uint8,uint256,uint256,uint256,address,address),bytes)` and selector `0x0e40beec`. +```solidity +function scheduleTransaction(address _safe, uint256 _nonce, TimelockGuard.ExecTransactionParams memory _params, bytes memory _signatures) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct scheduleTransactionCall { + #[allow(missing_docs)] + pub _safe: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _nonce: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _params: ::RustType, + #[allow(missing_docs)] + pub _signatures: alloy::sol_types::private::Bytes, + } + ///Container type for the return parameters of the [`scheduleTransaction(address,uint256,(address,uint256,bytes,uint8,uint256,uint256,uint256,address,address),bytes)`](scheduleTransactionCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct scheduleTransactionReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + TimelockGuard::ExecTransactionParams, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + ::RustType, + alloy::sol_types::private::Bytes, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: scheduleTransactionCall) -> Self { + (value._safe, value._nonce, value._params, value._signatures) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for scheduleTransactionCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _safe: tuple.0, + _nonce: tuple.1, + _params: tuple.2, + _signatures: tuple.3, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: scheduleTransactionReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for scheduleTransactionReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl scheduleTransactionReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for scheduleTransactionCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + TimelockGuard::ExecTransactionParams, + alloy::sol_types::sol_data::Bytes, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = scheduleTransactionReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "scheduleTransaction(address,uint256,(address,uint256,bytes,uint8,uint256,uint256,uint256,address,address),bytes)"; + const SELECTOR: [u8; 4] = [14u8, 64u8, 190u8, 236u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._safe, + ), + as alloy_sol_types::SolType>::tokenize(&self._nonce), + ::tokenize( + &self._params, + ), + ::tokenize( + &self._signatures, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + scheduleTransactionReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `scheduledTransaction(address,bytes32)` and selector `0x12492d97`. +```solidity +function scheduledTransaction(address _safe, bytes32 _txHash) external view returns (TimelockGuard.ScheduledTransaction memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct scheduledTransactionCall { + #[allow(missing_docs)] + pub _safe: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _txHash: alloy::sol_types::private::FixedBytes<32>, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + ///Container type for the return parameters of the [`scheduledTransaction(address,bytes32)`](scheduledTransactionCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct scheduledTransactionReturn { + #[allow(missing_docs)] + pub _0: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::FixedBytes<32>, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: scheduledTransactionCall) -> Self { + (value._safe, value._txHash) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for scheduledTransactionCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _safe: tuple.0, + _txHash: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (TimelockGuard::ScheduledTransaction,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: scheduledTransactionReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for scheduledTransactionReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for scheduledTransactionCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (TimelockGuard::ScheduledTransaction,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "scheduledTransaction(address,bytes32)"; + const SELECTOR: [u8; 4] = [18u8, 73u8, 45u8, 151u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._safe, + ), + as alloy_sol_types::SolType>::tokenize(&self._txHash), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: scheduledTransactionReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: scheduledTransactionReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `signCancellation(bytes32)` and selector `0x06d8b7e2`. +```solidity +function signCancellation(bytes32) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct signCancellationCall(pub alloy::sol_types::private::FixedBytes<32>); + ///Container type for the return parameters of the [`signCancellation(bytes32)`](signCancellationCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct signCancellationReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: signCancellationCall) -> Self { + (value.0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for signCancellationCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self(tuple.0) + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: signCancellationReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for signCancellationReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl signCancellationReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for signCancellationCall { + type Parameters<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = signCancellationReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "signCancellation(bytes32)"; + const SELECTOR: [u8; 4] = [6u8, 216u8, 183u8, 226u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.0), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + signCancellationReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `supportsInterface(bytes4)` and selector `0x01ffc9a7`. +```solidity +function supportsInterface(bytes4 interfaceId) external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct supportsInterfaceCall { + #[allow(missing_docs)] + pub interfaceId: alloy::sol_types::private::FixedBytes<4>, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`supportsInterface(bytes4)`](supportsInterfaceCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct supportsInterfaceReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<4>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<4>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: supportsInterfaceCall) -> Self { + (value.interfaceId,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for supportsInterfaceCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { interfaceId: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: supportsInterfaceReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for supportsInterfaceReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for supportsInterfaceCall { + type Parameters<'a> = (alloy::sol_types::sol_data::FixedBytes<4>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "supportsInterface(bytes4)"; + const SELECTOR: [u8; 4] = [1u8, 255u8, 201u8, 167u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.interfaceId), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: supportsInterfaceReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: supportsInterfaceReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `timelockDelay(address)` and selector `0x5698b16a`. +```solidity +function timelockDelay(address _safe) external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct timelockDelayCall { + #[allow(missing_docs)] + pub _safe: alloy::sol_types::private::Address, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`timelockDelay(address)`](timelockDelayCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct timelockDelayReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: timelockDelayCall) -> Self { + (value._safe,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for timelockDelayCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _safe: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: timelockDelayReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for timelockDelayReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for timelockDelayCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "timelockDelay(address)"; + const SELECTOR: [u8; 4] = [86u8, 152u8, 177u8, 106u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._safe, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: timelockDelayReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: timelockDelayReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `version()` and selector `0x54fd4d50`. +```solidity +function version() external view returns (string memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`version()`](versionCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for versionCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::String; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "version()"; + const SELECTOR: [u8; 4] = [84u8, 253u8, 77u8, 80u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + } + }; + ///Container for all the [`SaferSafes`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum SaferSafesCalls { + #[allow(missing_docs)] + cancelTransaction(cancelTransactionCall), + #[allow(missing_docs)] + cancellationThreshold(cancellationThresholdCall), + #[allow(missing_docs)] + challenge(challengeCall), + #[allow(missing_docs)] + challengeStartTime(challengeStartTimeCall), + #[allow(missing_docs)] + changeOwnershipToFallback(changeOwnershipToFallbackCall), + #[allow(missing_docs)] + checkAfterExecution(checkAfterExecutionCall), + #[allow(missing_docs)] + checkTransaction(checkTransactionCall), + #[allow(missing_docs)] + clearLivenessModule(clearLivenessModuleCall), + #[allow(missing_docs)] + clearTimelockGuard(clearTimelockGuardCall), + #[allow(missing_docs)] + configureLivenessModule(configureLivenessModuleCall), + #[allow(missing_docs)] + configureTimelockGuard(configureTimelockGuardCall), + #[allow(missing_docs)] + getChallengePeriodEnd(getChallengePeriodEndCall), + #[allow(missing_docs)] + livenessSafeConfiguration(livenessSafeConfigurationCall), + #[allow(missing_docs)] + maxCancellationThreshold(maxCancellationThresholdCall), + #[allow(missing_docs)] + pendingTransactions(pendingTransactionsCall), + #[allow(missing_docs)] + respond(respondCall), + #[allow(missing_docs)] + scheduleTransaction(scheduleTransactionCall), + #[allow(missing_docs)] + scheduledTransaction(scheduledTransactionCall), + #[allow(missing_docs)] + signCancellation(signCancellationCall), + #[allow(missing_docs)] + supportsInterface(supportsInterfaceCall), + #[allow(missing_docs)] + timelockDelay(timelockDelayCall), + #[allow(missing_docs)] + version(versionCall), + } + impl SaferSafesCalls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [1u8, 255u8, 201u8, 167u8], + [5u8, 204u8, 246u8, 6u8], + [6u8, 216u8, 183u8, 226u8], + [9u8, 110u8, 1u8, 247u8], + [14u8, 64u8, 190u8, 236u8], + [18u8, 73u8, 45u8, 151u8], + [71u8, 192u8, 50u8, 35u8], + [84u8, 253u8, 77u8, 80u8], + [86u8, 152u8, 177u8, 106u8], + [92u8, 59u8, 69u8, 16u8], + [96u8, 146u8, 179u8, 24u8], + [101u8, 207u8, 80u8, 236u8], + [114u8, 251u8, 151u8, 3u8], + [117u8, 240u8, 187u8, 82u8], + [147u8, 39u8, 19u8, 104u8], + [150u8, 222u8, 69u8, 164u8], + [188u8, 235u8, 142u8, 218u8], + [193u8, 39u8, 253u8, 57u8], + [201u8, 113u8, 54u8, 86u8], + [219u8, 22u8, 170u8, 185u8], + [225u8, 15u8, 252u8, 146u8], + [230u8, 71u8, 222u8, 225u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(supportsInterface), + ::core::stringify!(configureLivenessModule), + ::core::stringify!(signCancellation), + ::core::stringify!(cancelTransaction), + ::core::stringify!(scheduleTransaction), + ::core::stringify!(scheduledTransaction), + ::core::stringify!(livenessSafeConfiguration), + ::core::stringify!(version), + ::core::stringify!(timelockDelay), + ::core::stringify!(clearTimelockGuard), + ::core::stringify!(clearLivenessModule), + ::core::stringify!(configureTimelockGuard), + ::core::stringify!(challenge), + ::core::stringify!(checkTransaction), + ::core::stringify!(checkAfterExecution), + ::core::stringify!(challengeStartTime), + ::core::stringify!(changeOwnershipToFallback), + ::core::stringify!(pendingTransactions), + ::core::stringify!(maxCancellationThreshold), + ::core::stringify!(respond), + ::core::stringify!(getChallengePeriodEnd), + ::core::stringify!(cancellationThreshold), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for SaferSafesCalls { + const NAME: &'static str = "SaferSafesCalls"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 22usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::cancelTransaction(_) => { + ::SELECTOR + } + Self::cancellationThreshold(_) => { + ::SELECTOR + } + Self::challenge(_) => { + ::SELECTOR + } + Self::challengeStartTime(_) => { + ::SELECTOR + } + Self::changeOwnershipToFallback(_) => { + ::SELECTOR + } + Self::checkAfterExecution(_) => { + ::SELECTOR + } + Self::checkTransaction(_) => { + ::SELECTOR + } + Self::clearLivenessModule(_) => { + ::SELECTOR + } + Self::clearTimelockGuard(_) => { + ::SELECTOR + } + Self::configureLivenessModule(_) => { + ::SELECTOR + } + Self::configureTimelockGuard(_) => { + ::SELECTOR + } + Self::getChallengePeriodEnd(_) => { + ::SELECTOR + } + Self::livenessSafeConfiguration(_) => { + ::SELECTOR + } + Self::maxCancellationThreshold(_) => { + ::SELECTOR + } + Self::pendingTransactions(_) => { + ::SELECTOR + } + Self::respond(_) => ::SELECTOR, + Self::scheduleTransaction(_) => { + ::SELECTOR + } + Self::scheduledTransaction(_) => { + ::SELECTOR + } + Self::signCancellation(_) => { + ::SELECTOR + } + Self::supportsInterface(_) => { + ::SELECTOR + } + Self::timelockDelay(_) => { + ::SELECTOR + } + Self::version(_) => ::SELECTOR, + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn supportsInterface( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SaferSafesCalls::supportsInterface) + } + supportsInterface + }, + { + fn configureLivenessModule( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SaferSafesCalls::configureLivenessModule) + } + configureLivenessModule + }, + { + fn signCancellation( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SaferSafesCalls::signCancellation) + } + signCancellation + }, + { + fn cancelTransaction( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SaferSafesCalls::cancelTransaction) + } + cancelTransaction + }, + { + fn scheduleTransaction( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SaferSafesCalls::scheduleTransaction) + } + scheduleTransaction + }, + { + fn scheduledTransaction( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SaferSafesCalls::scheduledTransaction) + } + scheduledTransaction + }, + { + fn livenessSafeConfiguration( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SaferSafesCalls::livenessSafeConfiguration) + } + livenessSafeConfiguration + }, + { + fn version(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(SaferSafesCalls::version) + } + version + }, + { + fn timelockDelay( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SaferSafesCalls::timelockDelay) + } + timelockDelay + }, + { + fn clearTimelockGuard( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SaferSafesCalls::clearTimelockGuard) + } + clearTimelockGuard + }, + { + fn clearLivenessModule( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SaferSafesCalls::clearLivenessModule) + } + clearLivenessModule + }, + { + fn configureTimelockGuard( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SaferSafesCalls::configureTimelockGuard) + } + configureTimelockGuard + }, + { + fn challenge( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(SaferSafesCalls::challenge) + } + challenge + }, + { + fn checkTransaction( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SaferSafesCalls::checkTransaction) + } + checkTransaction + }, + { + fn checkAfterExecution( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SaferSafesCalls::checkAfterExecution) + } + checkAfterExecution + }, + { + fn challengeStartTime( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SaferSafesCalls::challengeStartTime) + } + challengeStartTime + }, + { + fn changeOwnershipToFallback( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SaferSafesCalls::changeOwnershipToFallback) + } + changeOwnershipToFallback + }, + { + fn pendingTransactions( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SaferSafesCalls::pendingTransactions) + } + pendingTransactions + }, + { + fn maxCancellationThreshold( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SaferSafesCalls::maxCancellationThreshold) + } + maxCancellationThreshold + }, + { + fn respond(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(SaferSafesCalls::respond) + } + respond + }, + { + fn getChallengePeriodEnd( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SaferSafesCalls::getChallengePeriodEnd) + } + getChallengePeriodEnd + }, + { + fn cancellationThreshold( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SaferSafesCalls::cancellationThreshold) + } + cancellationThreshold + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn supportsInterface( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SaferSafesCalls::supportsInterface) + } + supportsInterface + }, + { + fn configureLivenessModule( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SaferSafesCalls::configureLivenessModule) + } + configureLivenessModule + }, + { + fn signCancellation( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SaferSafesCalls::signCancellation) + } + signCancellation + }, + { + fn cancelTransaction( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SaferSafesCalls::cancelTransaction) + } + cancelTransaction + }, + { + fn scheduleTransaction( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SaferSafesCalls::scheduleTransaction) + } + scheduleTransaction + }, + { + fn scheduledTransaction( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SaferSafesCalls::scheduledTransaction) + } + scheduledTransaction + }, + { + fn livenessSafeConfiguration( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SaferSafesCalls::livenessSafeConfiguration) + } + livenessSafeConfiguration + }, + { + fn version(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SaferSafesCalls::version) + } + version + }, + { + fn timelockDelay( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SaferSafesCalls::timelockDelay) + } + timelockDelay + }, + { + fn clearTimelockGuard( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SaferSafesCalls::clearTimelockGuard) + } + clearTimelockGuard + }, + { + fn clearLivenessModule( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SaferSafesCalls::clearLivenessModule) + } + clearLivenessModule + }, + { + fn configureTimelockGuard( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SaferSafesCalls::configureTimelockGuard) + } + configureTimelockGuard + }, + { + fn challenge( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SaferSafesCalls::challenge) + } + challenge + }, + { + fn checkTransaction( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SaferSafesCalls::checkTransaction) + } + checkTransaction + }, + { + fn checkAfterExecution( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SaferSafesCalls::checkAfterExecution) + } + checkAfterExecution + }, + { + fn challengeStartTime( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SaferSafesCalls::challengeStartTime) + } + challengeStartTime + }, + { + fn changeOwnershipToFallback( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SaferSafesCalls::changeOwnershipToFallback) + } + changeOwnershipToFallback + }, + { + fn pendingTransactions( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SaferSafesCalls::pendingTransactions) + } + pendingTransactions + }, + { + fn maxCancellationThreshold( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SaferSafesCalls::maxCancellationThreshold) + } + maxCancellationThreshold + }, + { + fn respond(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SaferSafesCalls::respond) + } + respond + }, + { + fn getChallengePeriodEnd( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SaferSafesCalls::getChallengePeriodEnd) + } + getChallengePeriodEnd + }, + { + fn cancellationThreshold( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SaferSafesCalls::cancellationThreshold) + } + cancellationThreshold + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::cancelTransaction(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::cancellationThreshold(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::challenge(inner) => { + ::abi_encoded_size(inner) + } + Self::challengeStartTime(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::changeOwnershipToFallback(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::checkAfterExecution(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::checkTransaction(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::clearLivenessModule(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::clearTimelockGuard(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::configureLivenessModule(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::configureTimelockGuard(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::getChallengePeriodEnd(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::livenessSafeConfiguration(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::maxCancellationThreshold(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::pendingTransactions(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::respond(inner) => { + ::abi_encoded_size(inner) + } + Self::scheduleTransaction(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::scheduledTransaction(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::signCancellation(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::supportsInterface(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::timelockDelay(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::version(inner) => { + ::abi_encoded_size(inner) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::cancelTransaction(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::cancellationThreshold(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::challenge(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::challengeStartTime(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::changeOwnershipToFallback(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::checkAfterExecution(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::checkTransaction(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::clearLivenessModule(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::clearTimelockGuard(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::configureLivenessModule(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::configureTimelockGuard(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::getChallengePeriodEnd(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::livenessSafeConfiguration(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::maxCancellationThreshold(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::pendingTransactions(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::respond(inner) => { + ::abi_encode_raw(inner, out) + } + Self::scheduleTransaction(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::scheduledTransaction(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::signCancellation(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::supportsInterface(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::timelockDelay(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::version(inner) => { + ::abi_encode_raw(inner, out) + } + } + } + } + ///Container for all the [`SaferSafes`](self) custom errors. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum SaferSafesErrors { + #[allow(missing_docs)] + LivenessModule2_ChallengeAlreadyExists(LivenessModule2_ChallengeAlreadyExists), + #[allow(missing_docs)] + LivenessModule2_ChallengeDoesNotExist(LivenessModule2_ChallengeDoesNotExist), + #[allow(missing_docs)] + LivenessModule2_InvalidFallbackOwner(LivenessModule2_InvalidFallbackOwner), + #[allow(missing_docs)] + LivenessModule2_InvalidResponsePeriod(LivenessModule2_InvalidResponsePeriod), + #[allow(missing_docs)] + LivenessModule2_InvalidVersion(LivenessModule2_InvalidVersion), + #[allow(missing_docs)] + LivenessModule2_ModuleNotConfigured(LivenessModule2_ModuleNotConfigured), + #[allow(missing_docs)] + LivenessModule2_ModuleNotEnabled(LivenessModule2_ModuleNotEnabled), + #[allow(missing_docs)] + LivenessModule2_ModuleStillEnabled(LivenessModule2_ModuleStillEnabled), + #[allow(missing_docs)] + LivenessModule2_OwnershipTransferFailed(LivenessModule2_OwnershipTransferFailed), + #[allow(missing_docs)] + LivenessModule2_ResponsePeriodActive(LivenessModule2_ResponsePeriodActive), + #[allow(missing_docs)] + LivenessModule2_ResponsePeriodEnded(LivenessModule2_ResponsePeriodEnded), + #[allow(missing_docs)] + LivenessModule2_UnauthorizedCaller(LivenessModule2_UnauthorizedCaller), + #[allow(missing_docs)] + SaferSafes_InsufficientLivenessResponsePeriod( + SaferSafes_InsufficientLivenessResponsePeriod, + ), + #[allow(missing_docs)] + SemverComp_InvalidSemverParts(SemverComp_InvalidSemverParts), + #[allow(missing_docs)] + TimelockGuard_GuardNotConfigured(TimelockGuard_GuardNotConfigured), + #[allow(missing_docs)] + TimelockGuard_GuardNotEnabled(TimelockGuard_GuardNotEnabled), + #[allow(missing_docs)] + TimelockGuard_GuardStillEnabled(TimelockGuard_GuardStillEnabled), + #[allow(missing_docs)] + TimelockGuard_InvalidTimelockDelay(TimelockGuard_InvalidTimelockDelay), + #[allow(missing_docs)] + TimelockGuard_InvalidVersion(TimelockGuard_InvalidVersion), + #[allow(missing_docs)] + TimelockGuard_NotOwner(TimelockGuard_NotOwner), + #[allow(missing_docs)] + TimelockGuard_TransactionAlreadyCancelled( + TimelockGuard_TransactionAlreadyCancelled, + ), + #[allow(missing_docs)] + TimelockGuard_TransactionAlreadyExecuted( + TimelockGuard_TransactionAlreadyExecuted, + ), + #[allow(missing_docs)] + TimelockGuard_TransactionAlreadyScheduled( + TimelockGuard_TransactionAlreadyScheduled, + ), + #[allow(missing_docs)] + TimelockGuard_TransactionNotReady(TimelockGuard_TransactionNotReady), + #[allow(missing_docs)] + TimelockGuard_TransactionNotScheduled(TimelockGuard_TransactionNotScheduled), + } + impl SaferSafesErrors { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [3u8, 200u8, 89u8, 115u8], + [8u8, 50u8, 221u8, 105u8], + [9u8, 249u8, 89u8, 32u8], + [24u8, 60u8, 164u8, 49u8], + [39u8, 158u8, 61u8, 36u8], + [62u8, 139u8, 131u8, 137u8], + [63u8, 75u8, 41u8, 102u8], + [71u8, 220u8, 161u8, 206u8], + [80u8, 60u8, 66u8, 196u8], + [85u8, 45u8, 209u8, 183u8], + [88u8, 116u8, 233u8, 79u8], + [112u8, 163u8, 128u8, 148u8], + [116u8, 167u8, 233u8, 110u8], + [128u8, 57u8, 77u8, 230u8], + [156u8, 217u8, 9u8, 4u8], + [158u8, 47u8, 124u8, 75u8], + [158u8, 218u8, 133u8, 140u8], + [159u8, 218u8, 218u8, 49u8], + [160u8, 206u8, 34u8, 139u8], + [160u8, 254u8, 147u8, 155u8], + [161u8, 242u8, 8u8, 32u8], + [164u8, 210u8, 52u8, 203u8], + [218u8, 33u8, 174u8, 217u8], + [227u8, 48u8, 172u8, 5u8], + [235u8, 145u8, 26u8, 240u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(TimelockGuard_TransactionNotScheduled), + ::core::stringify!(TimelockGuard_GuardNotConfigured), + ::core::stringify!(LivenessModule2_ChallengeDoesNotExist), + ::core::stringify!(TimelockGuard_TransactionAlreadyExecuted), + ::core::stringify!(LivenessModule2_ResponsePeriodActive), + ::core::stringify!(TimelockGuard_TransactionAlreadyCancelled), + ::core::stringify!(TimelockGuard_GuardNotEnabled), + ::core::stringify!(SaferSafes_InsufficientLivenessResponsePeriod), + ::core::stringify!(TimelockGuard_TransactionNotReady), + ::core::stringify!(LivenessModule2_InvalidFallbackOwner), + ::core::stringify!(TimelockGuard_NotOwner), + ::core::stringify!(LivenessModule2_ModuleStillEnabled), + ::core::stringify!(LivenessModule2_InvalidResponsePeriod), + ::core::stringify!(TimelockGuard_TransactionAlreadyScheduled), + ::core::stringify!(LivenessModule2_ChallengeAlreadyExists), + ::core::stringify!(TimelockGuard_InvalidVersion), + ::core::stringify!(SemverComp_InvalidSemverParts), + ::core::stringify!(LivenessModule2_ModuleNotEnabled), + ::core::stringify!(TimelockGuard_InvalidTimelockDelay), + ::core::stringify!(LivenessModule2_ModuleNotConfigured), + ::core::stringify!(LivenessModule2_UnauthorizedCaller), + ::core::stringify!(TimelockGuard_GuardStillEnabled), + ::core::stringify!(LivenessModule2_InvalidVersion), + ::core::stringify!(LivenessModule2_OwnershipTransferFailed), + ::core::stringify!(LivenessModule2_ResponsePeriodEnded), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for SaferSafesErrors { + const NAME: &'static str = "SaferSafesErrors"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 25usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::LivenessModule2_ChallengeAlreadyExists(_) => { + ::SELECTOR + } + Self::LivenessModule2_ChallengeDoesNotExist(_) => { + ::SELECTOR + } + Self::LivenessModule2_InvalidFallbackOwner(_) => { + ::SELECTOR + } + Self::LivenessModule2_InvalidResponsePeriod(_) => { + ::SELECTOR + } + Self::LivenessModule2_InvalidVersion(_) => { + ::SELECTOR + } + Self::LivenessModule2_ModuleNotConfigured(_) => { + ::SELECTOR + } + Self::LivenessModule2_ModuleNotEnabled(_) => { + ::SELECTOR + } + Self::LivenessModule2_ModuleStillEnabled(_) => { + ::SELECTOR + } + Self::LivenessModule2_OwnershipTransferFailed(_) => { + ::SELECTOR + } + Self::LivenessModule2_ResponsePeriodActive(_) => { + ::SELECTOR + } + Self::LivenessModule2_ResponsePeriodEnded(_) => { + ::SELECTOR + } + Self::LivenessModule2_UnauthorizedCaller(_) => { + ::SELECTOR + } + Self::SaferSafes_InsufficientLivenessResponsePeriod(_) => { + ::SELECTOR + } + Self::SemverComp_InvalidSemverParts(_) => { + ::SELECTOR + } + Self::TimelockGuard_GuardNotConfigured(_) => { + ::SELECTOR + } + Self::TimelockGuard_GuardNotEnabled(_) => { + ::SELECTOR + } + Self::TimelockGuard_GuardStillEnabled(_) => { + ::SELECTOR + } + Self::TimelockGuard_InvalidTimelockDelay(_) => { + ::SELECTOR + } + Self::TimelockGuard_InvalidVersion(_) => { + ::SELECTOR + } + Self::TimelockGuard_NotOwner(_) => { + ::SELECTOR + } + Self::TimelockGuard_TransactionAlreadyCancelled(_) => { + ::SELECTOR + } + Self::TimelockGuard_TransactionAlreadyExecuted(_) => { + ::SELECTOR + } + Self::TimelockGuard_TransactionAlreadyScheduled(_) => { + ::SELECTOR + } + Self::TimelockGuard_TransactionNotReady(_) => { + ::SELECTOR + } + Self::TimelockGuard_TransactionNotScheduled(_) => { + ::SELECTOR + } + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn TimelockGuard_TransactionNotScheduled( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SaferSafesErrors::TimelockGuard_TransactionNotScheduled) + } + TimelockGuard_TransactionNotScheduled + }, + { + fn TimelockGuard_GuardNotConfigured( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SaferSafesErrors::TimelockGuard_GuardNotConfigured) + } + TimelockGuard_GuardNotConfigured + }, + { + fn LivenessModule2_ChallengeDoesNotExist( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SaferSafesErrors::LivenessModule2_ChallengeDoesNotExist) + } + LivenessModule2_ChallengeDoesNotExist + }, + { + fn TimelockGuard_TransactionAlreadyExecuted( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + SaferSafesErrors::TimelockGuard_TransactionAlreadyExecuted, + ) + } + TimelockGuard_TransactionAlreadyExecuted + }, + { + fn LivenessModule2_ResponsePeriodActive( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SaferSafesErrors::LivenessModule2_ResponsePeriodActive) + } + LivenessModule2_ResponsePeriodActive + }, + { + fn TimelockGuard_TransactionAlreadyCancelled( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + SaferSafesErrors::TimelockGuard_TransactionAlreadyCancelled, + ) + } + TimelockGuard_TransactionAlreadyCancelled + }, + { + fn TimelockGuard_GuardNotEnabled( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SaferSafesErrors::TimelockGuard_GuardNotEnabled) + } + TimelockGuard_GuardNotEnabled + }, + { + fn SaferSafes_InsufficientLivenessResponsePeriod( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + SaferSafesErrors::SaferSafes_InsufficientLivenessResponsePeriod, + ) + } + SaferSafes_InsufficientLivenessResponsePeriod + }, + { + fn TimelockGuard_TransactionNotReady( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SaferSafesErrors::TimelockGuard_TransactionNotReady) + } + TimelockGuard_TransactionNotReady + }, + { + fn LivenessModule2_InvalidFallbackOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SaferSafesErrors::LivenessModule2_InvalidFallbackOwner) + } + LivenessModule2_InvalidFallbackOwner + }, + { + fn TimelockGuard_NotOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SaferSafesErrors::TimelockGuard_NotOwner) + } + TimelockGuard_NotOwner + }, + { + fn LivenessModule2_ModuleStillEnabled( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SaferSafesErrors::LivenessModule2_ModuleStillEnabled) + } + LivenessModule2_ModuleStillEnabled + }, + { + fn LivenessModule2_InvalidResponsePeriod( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SaferSafesErrors::LivenessModule2_InvalidResponsePeriod) + } + LivenessModule2_InvalidResponsePeriod + }, + { + fn TimelockGuard_TransactionAlreadyScheduled( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + SaferSafesErrors::TimelockGuard_TransactionAlreadyScheduled, + ) + } + TimelockGuard_TransactionAlreadyScheduled + }, + { + fn LivenessModule2_ChallengeAlreadyExists( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + SaferSafesErrors::LivenessModule2_ChallengeAlreadyExists, + ) + } + LivenessModule2_ChallengeAlreadyExists + }, + { + fn TimelockGuard_InvalidVersion( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SaferSafesErrors::TimelockGuard_InvalidVersion) + } + TimelockGuard_InvalidVersion + }, + { + fn SemverComp_InvalidSemverParts( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SaferSafesErrors::SemverComp_InvalidSemverParts) + } + SemverComp_InvalidSemverParts + }, + { + fn LivenessModule2_ModuleNotEnabled( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SaferSafesErrors::LivenessModule2_ModuleNotEnabled) + } + LivenessModule2_ModuleNotEnabled + }, + { + fn TimelockGuard_InvalidTimelockDelay( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SaferSafesErrors::TimelockGuard_InvalidTimelockDelay) + } + TimelockGuard_InvalidTimelockDelay + }, + { + fn LivenessModule2_ModuleNotConfigured( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SaferSafesErrors::LivenessModule2_ModuleNotConfigured) + } + LivenessModule2_ModuleNotConfigured + }, + { + fn LivenessModule2_UnauthorizedCaller( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SaferSafesErrors::LivenessModule2_UnauthorizedCaller) + } + LivenessModule2_UnauthorizedCaller + }, + { + fn TimelockGuard_GuardStillEnabled( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SaferSafesErrors::TimelockGuard_GuardStillEnabled) + } + TimelockGuard_GuardStillEnabled + }, + { + fn LivenessModule2_InvalidVersion( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SaferSafesErrors::LivenessModule2_InvalidVersion) + } + LivenessModule2_InvalidVersion + }, + { + fn LivenessModule2_OwnershipTransferFailed( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + SaferSafesErrors::LivenessModule2_OwnershipTransferFailed, + ) + } + LivenessModule2_OwnershipTransferFailed + }, + { + fn LivenessModule2_ResponsePeriodEnded( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SaferSafesErrors::LivenessModule2_ResponsePeriodEnded) + } + LivenessModule2_ResponsePeriodEnded + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn TimelockGuard_TransactionNotScheduled( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SaferSafesErrors::TimelockGuard_TransactionNotScheduled) + } + TimelockGuard_TransactionNotScheduled + }, + { + fn TimelockGuard_GuardNotConfigured( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SaferSafesErrors::TimelockGuard_GuardNotConfigured) + } + TimelockGuard_GuardNotConfigured + }, + { + fn LivenessModule2_ChallengeDoesNotExist( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SaferSafesErrors::LivenessModule2_ChallengeDoesNotExist) + } + LivenessModule2_ChallengeDoesNotExist + }, + { + fn TimelockGuard_TransactionAlreadyExecuted( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + SaferSafesErrors::TimelockGuard_TransactionAlreadyExecuted, + ) + } + TimelockGuard_TransactionAlreadyExecuted + }, + { + fn LivenessModule2_ResponsePeriodActive( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SaferSafesErrors::LivenessModule2_ResponsePeriodActive) + } + LivenessModule2_ResponsePeriodActive + }, + { + fn TimelockGuard_TransactionAlreadyCancelled( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + SaferSafesErrors::TimelockGuard_TransactionAlreadyCancelled, + ) + } + TimelockGuard_TransactionAlreadyCancelled + }, + { + fn TimelockGuard_GuardNotEnabled( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SaferSafesErrors::TimelockGuard_GuardNotEnabled) + } + TimelockGuard_GuardNotEnabled + }, + { + fn SaferSafes_InsufficientLivenessResponsePeriod( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + SaferSafesErrors::SaferSafes_InsufficientLivenessResponsePeriod, + ) + } + SaferSafes_InsufficientLivenessResponsePeriod + }, + { + fn TimelockGuard_TransactionNotReady( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SaferSafesErrors::TimelockGuard_TransactionNotReady) + } + TimelockGuard_TransactionNotReady + }, + { + fn LivenessModule2_InvalidFallbackOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SaferSafesErrors::LivenessModule2_InvalidFallbackOwner) + } + LivenessModule2_InvalidFallbackOwner + }, + { + fn TimelockGuard_NotOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SaferSafesErrors::TimelockGuard_NotOwner) + } + TimelockGuard_NotOwner + }, + { + fn LivenessModule2_ModuleStillEnabled( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SaferSafesErrors::LivenessModule2_ModuleStillEnabled) + } + LivenessModule2_ModuleStillEnabled + }, + { + fn LivenessModule2_InvalidResponsePeriod( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SaferSafesErrors::LivenessModule2_InvalidResponsePeriod) + } + LivenessModule2_InvalidResponsePeriod + }, + { + fn TimelockGuard_TransactionAlreadyScheduled( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + SaferSafesErrors::TimelockGuard_TransactionAlreadyScheduled, + ) + } + TimelockGuard_TransactionAlreadyScheduled + }, + { + fn LivenessModule2_ChallengeAlreadyExists( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + SaferSafesErrors::LivenessModule2_ChallengeAlreadyExists, + ) + } + LivenessModule2_ChallengeAlreadyExists + }, + { + fn TimelockGuard_InvalidVersion( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SaferSafesErrors::TimelockGuard_InvalidVersion) + } + TimelockGuard_InvalidVersion + }, + { + fn SemverComp_InvalidSemverParts( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SaferSafesErrors::SemverComp_InvalidSemverParts) + } + SemverComp_InvalidSemverParts + }, + { + fn LivenessModule2_ModuleNotEnabled( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SaferSafesErrors::LivenessModule2_ModuleNotEnabled) + } + LivenessModule2_ModuleNotEnabled + }, + { + fn TimelockGuard_InvalidTimelockDelay( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SaferSafesErrors::TimelockGuard_InvalidTimelockDelay) + } + TimelockGuard_InvalidTimelockDelay + }, + { + fn LivenessModule2_ModuleNotConfigured( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SaferSafesErrors::LivenessModule2_ModuleNotConfigured) + } + LivenessModule2_ModuleNotConfigured + }, + { + fn LivenessModule2_UnauthorizedCaller( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SaferSafesErrors::LivenessModule2_UnauthorizedCaller) + } + LivenessModule2_UnauthorizedCaller + }, + { + fn TimelockGuard_GuardStillEnabled( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SaferSafesErrors::TimelockGuard_GuardStillEnabled) + } + TimelockGuard_GuardStillEnabled + }, + { + fn LivenessModule2_InvalidVersion( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SaferSafesErrors::LivenessModule2_InvalidVersion) + } + LivenessModule2_InvalidVersion + }, + { + fn LivenessModule2_OwnershipTransferFailed( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + SaferSafesErrors::LivenessModule2_OwnershipTransferFailed, + ) + } + LivenessModule2_OwnershipTransferFailed + }, + { + fn LivenessModule2_ResponsePeriodEnded( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SaferSafesErrors::LivenessModule2_ResponsePeriodEnded) + } + LivenessModule2_ResponsePeriodEnded + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::LivenessModule2_ChallengeAlreadyExists(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::LivenessModule2_ChallengeDoesNotExist(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::LivenessModule2_InvalidFallbackOwner(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::LivenessModule2_InvalidResponsePeriod(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::LivenessModule2_InvalidVersion(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::LivenessModule2_ModuleNotConfigured(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::LivenessModule2_ModuleNotEnabled(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::LivenessModule2_ModuleStillEnabled(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::LivenessModule2_OwnershipTransferFailed(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::LivenessModule2_ResponsePeriodActive(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::LivenessModule2_ResponsePeriodEnded(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::LivenessModule2_UnauthorizedCaller(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::SaferSafes_InsufficientLivenessResponsePeriod(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::SemverComp_InvalidSemverParts(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::TimelockGuard_GuardNotConfigured(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::TimelockGuard_GuardNotEnabled(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::TimelockGuard_GuardStillEnabled(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::TimelockGuard_InvalidTimelockDelay(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::TimelockGuard_InvalidVersion(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::TimelockGuard_NotOwner(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::TimelockGuard_TransactionAlreadyCancelled(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::TimelockGuard_TransactionAlreadyExecuted(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::TimelockGuard_TransactionAlreadyScheduled(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::TimelockGuard_TransactionNotReady(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::TimelockGuard_TransactionNotScheduled(inner) => { + ::abi_encoded_size( + inner, + ) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::LivenessModule2_ChallengeAlreadyExists(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::LivenessModule2_ChallengeDoesNotExist(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::LivenessModule2_InvalidFallbackOwner(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::LivenessModule2_InvalidResponsePeriod(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::LivenessModule2_InvalidVersion(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::LivenessModule2_ModuleNotConfigured(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::LivenessModule2_ModuleNotEnabled(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::LivenessModule2_ModuleStillEnabled(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::LivenessModule2_OwnershipTransferFailed(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::LivenessModule2_ResponsePeriodActive(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::LivenessModule2_ResponsePeriodEnded(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::LivenessModule2_UnauthorizedCaller(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::SaferSafes_InsufficientLivenessResponsePeriod(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::SemverComp_InvalidSemverParts(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::TimelockGuard_GuardNotConfigured(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::TimelockGuard_GuardNotEnabled(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::TimelockGuard_GuardStillEnabled(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::TimelockGuard_InvalidTimelockDelay(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::TimelockGuard_InvalidVersion(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::TimelockGuard_NotOwner(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::TimelockGuard_TransactionAlreadyCancelled(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::TimelockGuard_TransactionAlreadyExecuted(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::TimelockGuard_TransactionAlreadyScheduled(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::TimelockGuard_TransactionNotReady(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::TimelockGuard_TransactionNotScheduled(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + } + } + } + ///Container for all the [`SaferSafes`](self) events. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum SaferSafesEvents { + #[allow(missing_docs)] + CancellationThresholdUpdated(CancellationThresholdUpdated), + #[allow(missing_docs)] + ChallengeCancelled(ChallengeCancelled), + #[allow(missing_docs)] + ChallengeStarted(ChallengeStarted), + #[allow(missing_docs)] + ChallengeSucceeded(ChallengeSucceeded), + #[allow(missing_docs)] + GuardConfigured(GuardConfigured), + #[allow(missing_docs)] + Message(Message), + #[allow(missing_docs)] + ModuleCleared(ModuleCleared), + #[allow(missing_docs)] + ModuleConfigured(ModuleConfigured), + #[allow(missing_docs)] + TransactionCancelled(TransactionCancelled), + #[allow(missing_docs)] + TransactionExecuted(TransactionExecuted), + #[allow(missing_docs)] + TransactionScheduled(TransactionScheduled), + } + impl SaferSafesEvents { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 32usize]] = &[ + [ + 62u8, 185u8, 36u8, 28u8, 160u8, 103u8, 147u8, 171u8, 103u8, 37u8, 144u8, + 232u8, 88u8, 208u8, 151u8, 114u8, 6u8, 248u8, 36u8, 231u8, 54u8, 120u8, + 6u8, 249u8, 74u8, 144u8, 175u8, 57u8, 29u8, 39u8, 93u8, 51u8, + ], + [ + 71u8, 226u8, 221u8, 174u8, 62u8, 206u8, 44u8, 119u8, 246u8, 13u8, 142u8, + 158u8, 90u8, 137u8, 165u8, 15u8, 29u8, 19u8, 116u8, 168u8, 127u8, 177u8, + 25u8, 86u8, 210u8, 122u8, 107u8, 73u8, 134u8, 187u8, 161u8, 126u8, + ], + [ + 78u8, 218u8, 23u8, 151u8, 96u8, 180u8, 230u8, 134u8, 80u8, 5u8, 131u8, + 118u8, 212u8, 172u8, 239u8, 120u8, 233u8, 83u8, 34u8, 19u8, 23u8, 69u8, + 13u8, 41u8, 180u8, 146u8, 14u8, 109u8, 40u8, 54u8, 148u8, 76u8, + ], + [ + 81u8, 167u8, 246u8, 92u8, 99u8, 37u8, 136u8, 47u8, 35u8, 125u8, 74u8, + 235u8, 67u8, 34u8, 129u8, 121u8, 207u8, 173u8, 72u8, 184u8, 104u8, 81u8, + 29u8, 80u8, 142u8, 36u8, 180u8, 67u8, 122u8, 129u8, 145u8, 55u8, + ], + [ + 101u8, 63u8, 143u8, 111u8, 206u8, 42u8, 80u8, 59u8, 45u8, 252u8, 163u8, + 78u8, 149u8, 179u8, 228u8, 144u8, 34u8, 84u8, 161u8, 23u8, 101u8, 210u8, + 101u8, 140u8, 14u8, 90u8, 241u8, 214u8, 74u8, 178u8, 118u8, 207u8, + ], + [ + 156u8, 111u8, 240u8, 46u8, 104u8, 79u8, 138u8, 129u8, 56u8, 158u8, 217u8, + 66u8, 254u8, 161u8, 20u8, 124u8, 22u8, 184u8, 204u8, 95u8, 231u8, 159u8, + 43u8, 251u8, 197u8, 32u8, 212u8, 78u8, 33u8, 74u8, 237u8, 75u8, + ], + [ + 164u8, 47u8, 216u8, 87u8, 180u8, 125u8, 61u8, 4u8, 245u8, 178u8, 159u8, + 53u8, 203u8, 5u8, 52u8, 63u8, 102u8, 179u8, 23u8, 99u8, 61u8, 45u8, + 194u8, 145u8, 7u8, 38u8, 189u8, 75u8, 202u8, 26u8, 22u8, 37u8, + ], + [ + 164u8, 141u8, 19u8, 238u8, 143u8, 173u8, 153u8, 116u8, 250u8, 144u8, + 28u8, 251u8, 136u8, 160u8, 45u8, 57u8, 197u8, 54u8, 30u8, 251u8, 171u8, + 19u8, 187u8, 155u8, 58u8, 167u8, 202u8, 163u8, 246u8, 214u8, 183u8, 134u8, + ], + [ + 173u8, 250u8, 101u8, 17u8, 197u8, 169u8, 181u8, 172u8, 26u8, 220u8, 94u8, + 78u8, 12u8, 166u8, 55u8, 196u8, 101u8, 242u8, 74u8, 181u8, 108u8, 27u8, + 210u8, 85u8, 160u8, 131u8, 224u8, 2u8, 62u8, 59u8, 124u8, 66u8, + ], + [ + 221u8, 75u8, 155u8, 49u8, 139u8, 152u8, 22u8, 44u8, 177u8, 231u8, 181u8, + 39u8, 82u8, 163u8, 253u8, 17u8, 13u8, 91u8, 121u8, 102u8, 243u8, 181u8, + 8u8, 132u8, 193u8, 205u8, 59u8, 208u8, 64u8, 88u8, 229u8, 199u8, + ], + [ + 223u8, 222u8, 203u8, 113u8, 235u8, 5u8, 128u8, 201u8, 38u8, 60u8, 134u8, + 123u8, 198u8, 222u8, 157u8, 214u8, 248u8, 89u8, 204u8, 106u8, 110u8, + 227u8, 61u8, 71u8, 229u8, 5u8, 144u8, 79u8, 29u8, 86u8, 1u8, 201u8, + ], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(ChallengeStarted), + ::core::stringify!(ModuleConfigured), + ::core::stringify!(CancellationThresholdUpdated), + ::core::stringify!(Message), + ::core::stringify!(TransactionScheduled), + ::core::stringify!(ModuleCleared), + ::core::stringify!(TransactionCancelled), + ::core::stringify!(GuardConfigured), + ::core::stringify!(ChallengeCancelled), + ::core::stringify!(TransactionExecuted), + ::core::stringify!(ChallengeSucceeded), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolEventInterface for SaferSafesEvents { + const NAME: &'static str = "SaferSafesEvents"; + const COUNT: usize = 11usize; + fn decode_raw_log( + topics: &[alloy_sol_types::Word], + data: &[u8], + ) -> alloy_sol_types::Result { + match topics.first().copied() { + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::CancellationThresholdUpdated) + } + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::ChallengeCancelled) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::ChallengeStarted) + } + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::ChallengeSucceeded) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::GuardConfigured) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log(topics, data) + .map(Self::Message) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::ModuleCleared) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::ModuleConfigured) + } + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::TransactionCancelled) + } + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::TransactionExecuted) + } + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::TransactionScheduled) + } + _ => { + alloy_sol_types::private::Err(alloy_sol_types::Error::InvalidLog { + name: ::NAME, + log: alloy_sol_types::private::Box::new( + alloy_sol_types::private::LogData::new_unchecked( + topics.to_vec(), + data.to_vec().into(), + ), + ), + }) + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for SaferSafesEvents { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + match self { + Self::CancellationThresholdUpdated(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::ChallengeCancelled(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::ChallengeStarted(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::ChallengeSucceeded(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::GuardConfigured(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::Message(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::ModuleCleared(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::ModuleConfigured(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::TransactionCancelled(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::TransactionExecuted(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::TransactionScheduled(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + } + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + match self { + Self::CancellationThresholdUpdated(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::ChallengeCancelled(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::ChallengeStarted(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::ChallengeSucceeded(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::GuardConfigured(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::Message(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::ModuleCleared(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::ModuleConfigured(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::TransactionCancelled(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::TransactionExecuted(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::TransactionScheduled(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`SaferSafes`](self) contract instance. + +See the [wrapper's documentation](`SaferSafesInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> SaferSafesInstance { + SaferSafesInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + SaferSafesInstance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + SaferSafesInstance::::deploy_builder(__provider) + } + /**A [`SaferSafes`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`SaferSafes`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct SaferSafesInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for SaferSafesInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("SaferSafesInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > SaferSafesInstance { + /**Creates a new wrapper around an on-chain [`SaferSafes`](self) contract instance. + +See the [wrapper's documentation](`SaferSafesInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl SaferSafesInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> SaferSafesInstance { + SaferSafesInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > SaferSafesInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`cancelTransaction`] function. + pub fn cancelTransaction( + &self, + _safe: alloy::sol_types::private::Address, + _txHash: alloy::sol_types::private::FixedBytes<32>, + _nonce: alloy::sol_types::private::primitives::aliases::U256, + _signatures: alloy::sol_types::private::Bytes, + ) -> alloy_contract::SolCallBuilder<&P, cancelTransactionCall, N> { + self.call_builder( + &cancelTransactionCall { + _safe, + _txHash, + _nonce, + _signatures, + }, + ) + } + ///Creates a new call builder for the [`cancellationThreshold`] function. + pub fn cancellationThreshold( + &self, + _safe: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, cancellationThresholdCall, N> { + self.call_builder(&cancellationThresholdCall { _safe }) + } + ///Creates a new call builder for the [`challenge`] function. + pub fn challenge( + &self, + _safe: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, challengeCall, N> { + self.call_builder(&challengeCall { _safe }) + } + ///Creates a new call builder for the [`challengeStartTime`] function. + pub fn challengeStartTime( + &self, + _0: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, challengeStartTimeCall, N> { + self.call_builder(&challengeStartTimeCall(_0)) + } + ///Creates a new call builder for the [`changeOwnershipToFallback`] function. + pub fn changeOwnershipToFallback( + &self, + _safe: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, changeOwnershipToFallbackCall, N> { + self.call_builder( + &changeOwnershipToFallbackCall { + _safe, + }, + ) + } + ///Creates a new call builder for the [`checkAfterExecution`] function. + pub fn checkAfterExecution( + &self, + _txHash: alloy::sol_types::private::FixedBytes<32>, + _success: bool, + ) -> alloy_contract::SolCallBuilder<&P, checkAfterExecutionCall, N> { + self.call_builder( + &checkAfterExecutionCall { + _txHash, + _success, + }, + ) + } + ///Creates a new call builder for the [`checkTransaction`] function. + pub fn checkTransaction( + &self, + _to: alloy::sol_types::private::Address, + _value: alloy::sol_types::private::primitives::aliases::U256, + _data: alloy::sol_types::private::Bytes, + _operation: ::RustType, + _safeTxGas: alloy::sol_types::private::primitives::aliases::U256, + _baseGas: alloy::sol_types::private::primitives::aliases::U256, + _gasPrice: alloy::sol_types::private::primitives::aliases::U256, + _gasToken: alloy::sol_types::private::Address, + _refundReceiver: alloy::sol_types::private::Address, + _9: alloy::sol_types::private::Bytes, + _msgSender: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, checkTransactionCall, N> { + self.call_builder( + &checkTransactionCall { + _to, + _value, + _data, + _operation, + _safeTxGas, + _baseGas, + _gasPrice, + _gasToken, + _refundReceiver, + _9, + _msgSender, + }, + ) + } + ///Creates a new call builder for the [`clearLivenessModule`] function. + pub fn clearLivenessModule( + &self, + ) -> alloy_contract::SolCallBuilder<&P, clearLivenessModuleCall, N> { + self.call_builder(&clearLivenessModuleCall) + } + ///Creates a new call builder for the [`clearTimelockGuard`] function. + pub fn clearTimelockGuard( + &self, + ) -> alloy_contract::SolCallBuilder<&P, clearTimelockGuardCall, N> { + self.call_builder(&clearTimelockGuardCall) + } + ///Creates a new call builder for the [`configureLivenessModule`] function. + pub fn configureLivenessModule( + &self, + _config: ::RustType, + ) -> alloy_contract::SolCallBuilder<&P, configureLivenessModuleCall, N> { + self.call_builder( + &configureLivenessModuleCall { + _config, + }, + ) + } + ///Creates a new call builder for the [`configureTimelockGuard`] function. + pub fn configureTimelockGuard( + &self, + _timelockDelay: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, configureTimelockGuardCall, N> { + self.call_builder( + &configureTimelockGuardCall { + _timelockDelay, + }, + ) + } + ///Creates a new call builder for the [`getChallengePeriodEnd`] function. + pub fn getChallengePeriodEnd( + &self, + _safe: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, getChallengePeriodEndCall, N> { + self.call_builder(&getChallengePeriodEndCall { _safe }) + } + ///Creates a new call builder for the [`livenessSafeConfiguration`] function. + pub fn livenessSafeConfiguration( + &self, + _safe: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, livenessSafeConfigurationCall, N> { + self.call_builder( + &livenessSafeConfigurationCall { + _safe, + }, + ) + } + ///Creates a new call builder for the [`maxCancellationThreshold`] function. + pub fn maxCancellationThreshold( + &self, + _safe: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, maxCancellationThresholdCall, N> { + self.call_builder( + &maxCancellationThresholdCall { + _safe, + }, + ) + } + ///Creates a new call builder for the [`pendingTransactions`] function. + pub fn pendingTransactions( + &self, + _safe: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, pendingTransactionsCall, N> { + self.call_builder(&pendingTransactionsCall { _safe }) + } + ///Creates a new call builder for the [`respond`] function. + pub fn respond(&self) -> alloy_contract::SolCallBuilder<&P, respondCall, N> { + self.call_builder(&respondCall) + } + ///Creates a new call builder for the [`scheduleTransaction`] function. + pub fn scheduleTransaction( + &self, + _safe: alloy::sol_types::private::Address, + _nonce: alloy::sol_types::private::primitives::aliases::U256, + _params: ::RustType, + _signatures: alloy::sol_types::private::Bytes, + ) -> alloy_contract::SolCallBuilder<&P, scheduleTransactionCall, N> { + self.call_builder( + &scheduleTransactionCall { + _safe, + _nonce, + _params, + _signatures, + }, + ) + } + ///Creates a new call builder for the [`scheduledTransaction`] function. + pub fn scheduledTransaction( + &self, + _safe: alloy::sol_types::private::Address, + _txHash: alloy::sol_types::private::FixedBytes<32>, + ) -> alloy_contract::SolCallBuilder<&P, scheduledTransactionCall, N> { + self.call_builder( + &scheduledTransactionCall { + _safe, + _txHash, + }, + ) + } + ///Creates a new call builder for the [`signCancellation`] function. + pub fn signCancellation( + &self, + _0: alloy::sol_types::private::FixedBytes<32>, + ) -> alloy_contract::SolCallBuilder<&P, signCancellationCall, N> { + self.call_builder(&signCancellationCall(_0)) + } + ///Creates a new call builder for the [`supportsInterface`] function. + pub fn supportsInterface( + &self, + interfaceId: alloy::sol_types::private::FixedBytes<4>, + ) -> alloy_contract::SolCallBuilder<&P, supportsInterfaceCall, N> { + self.call_builder( + &supportsInterfaceCall { + interfaceId, + }, + ) + } + ///Creates a new call builder for the [`timelockDelay`] function. + pub fn timelockDelay( + &self, + _safe: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, timelockDelayCall, N> { + self.call_builder(&timelockDelayCall { _safe }) + } + ///Creates a new call builder for the [`version`] function. + pub fn version(&self) -> alloy_contract::SolCallBuilder<&P, versionCall, N> { + self.call_builder(&versionCall) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > SaferSafesInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + ///Creates a new event filter for the [`CancellationThresholdUpdated`] event. + pub fn CancellationThresholdUpdated_filter( + &self, + ) -> alloy_contract::Event<&P, CancellationThresholdUpdated, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`ChallengeCancelled`] event. + pub fn ChallengeCancelled_filter( + &self, + ) -> alloy_contract::Event<&P, ChallengeCancelled, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`ChallengeStarted`] event. + pub fn ChallengeStarted_filter( + &self, + ) -> alloy_contract::Event<&P, ChallengeStarted, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`ChallengeSucceeded`] event. + pub fn ChallengeSucceeded_filter( + &self, + ) -> alloy_contract::Event<&P, ChallengeSucceeded, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`GuardConfigured`] event. + pub fn GuardConfigured_filter( + &self, + ) -> alloy_contract::Event<&P, GuardConfigured, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`Message`] event. + pub fn Message_filter(&self) -> alloy_contract::Event<&P, Message, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`ModuleCleared`] event. + pub fn ModuleCleared_filter( + &self, + ) -> alloy_contract::Event<&P, ModuleCleared, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`ModuleConfigured`] event. + pub fn ModuleConfigured_filter( + &self, + ) -> alloy_contract::Event<&P, ModuleConfigured, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`TransactionCancelled`] event. + pub fn TransactionCancelled_filter( + &self, + ) -> alloy_contract::Event<&P, TransactionCancelled, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`TransactionExecuted`] event. + pub fn TransactionExecuted_filter( + &self, + ) -> alloy_contract::Event<&P, TransactionExecuted, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`TransactionScheduled`] event. + pub fn TransactionScheduled_filter( + &self, + ) -> alloy_contract::Event<&P, TransactionScheduled, N> { + self.event_filter::() + } + } +} diff --git a/bindings/rust/src/schema_registry.rs b/bindings/rust/src/schema_registry.rs new file mode 100644 index 000000000..3693a0367 --- /dev/null +++ b/bindings/rust/src/schema_registry.rs @@ -0,0 +1,1781 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface SchemaRegistry { + struct SchemaRecord { + bytes32 uid; + address resolver; + bool revocable; + string schema; + } + + error AlreadyExists(); + + event Registered(bytes32 indexed uid, address indexed registerer, SchemaRecord schema); + + function getSchema(bytes32 uid) external view returns (SchemaRecord memory); + function register(string memory schema, address resolver, bool revocable) external returns (bytes32); + function version() external view returns (string memory); +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "function", + "name": "getSchema", + "inputs": [ + { + "name": "uid", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "outputs": [ + { + "name": "", + "type": "tuple", + "internalType": "struct SchemaRecord", + "components": [ + { + "name": "uid", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "resolver", + "type": "address", + "internalType": "contract ISchemaResolver" + }, + { + "name": "revocable", + "type": "bool", + "internalType": "bool" + }, + { + "name": "schema", + "type": "string", + "internalType": "string" + } + ] + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "register", + "inputs": [ + { + "name": "schema", + "type": "string", + "internalType": "string" + }, + { + "name": "resolver", + "type": "address", + "internalType": "contract ISchemaResolver" + }, + { + "name": "revocable", + "type": "bool", + "internalType": "bool" + } + ], + "outputs": [ + { + "name": "", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "version", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "view" + }, + { + "type": "event", + "name": "Registered", + "inputs": [ + { + "name": "uid", + "type": "bytes32", + "indexed": true, + "internalType": "bytes32" + }, + { + "name": "registerer", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "schema", + "type": "tuple", + "indexed": false, + "internalType": "struct SchemaRecord", + "components": [ + { + "name": "uid", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "resolver", + "type": "address", + "internalType": "contract ISchemaResolver" + }, + { + "name": "revocable", + "type": "bool", + "internalType": "bool" + }, + { + "name": "schema", + "type": "string", + "internalType": "string" + } + ] + } + ], + "anonymous": false + }, + { + "type": "error", + "name": "AlreadyExists", + "inputs": [] + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod SchemaRegistry { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x608060405234801561001057600080fd5b506107fe806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806354fd4d501461004657806360d7a27814610098578063a2ea7c6e146100b9575b600080fd5b6100826040518060400160405280600c81526020017f312e332e312d626574612e32000000000000000000000000000000000000000081525081565b60405161008f9190610473565b60405180910390f35b6100ab6100a636600461048d565b6100d9565b60405190815260200161008f565b6100cc6100c736600461053f565b61029d565b60405161008f9190610558565b60008060405180608001604052806000801b81526020018573ffffffffffffffffffffffffffffffffffffffff168152602001841515815260200187878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052509390945250929350915061015b9050826103c5565b600081815260208190526040902054909150156101a4576040517f23369fa600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80825260008181526020818152604091829020845181559084015160018201805493860151151574010000000000000000000000000000000000000000027fffffffffffffffffffffff00000000000000000000000000000000000000000090941673ffffffffffffffffffffffffffffffffffffffff9092169190911792909217909155606083015183919060028201906102409082610682565b509050503373ffffffffffffffffffffffffffffffffffffffff16817fd0b86852e21f9e5fa4bc3b0cff9757ffe243d50c4b43968a42202153d651ea5e8460405161028b9190610558565b60405180910390a39695505050505050565b604080516080810182526000808252602082018190529181019190915260608082015260008281526020818152604091829020825160808101845281548152600182015473ffffffffffffffffffffffffffffffffffffffff8116938201939093527401000000000000000000000000000000000000000090920460ff1615159282019290925260028201805491929160608401919061033c906105e0565b80601f0160208091040260200160405190810160405280929190818152602001828054610368906105e0565b80156103b55780601f1061038a576101008083540402835291602001916103b5565b820191906000526020600020905b81548152906001019060200180831161039857829003601f168201915b5050505050815250509050919050565b60008160600151826020015183604001516040516020016103e89392919061079c565b604051602081830303815290604052805190602001209050919050565b60005b83811015610420578181015183820152602001610408565b50506000910152565b60008151808452610441816020860160208601610405565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006104866020830184610429565b9392505050565b600080600080606085870312156104a357600080fd5b843567ffffffffffffffff808211156104bb57600080fd5b818701915087601f8301126104cf57600080fd5b8135818111156104de57600080fd5b8860208285010111156104f057600080fd5b6020928301965094505085013573ffffffffffffffffffffffffffffffffffffffff8116811461051f57600080fd5b91506040850135801515811461053457600080fd5b939692955090935050565b60006020828403121561055157600080fd5b5035919050565b602081528151602082015273ffffffffffffffffffffffffffffffffffffffff6020830151166040820152604082015115156060820152600060608301516080808401526105a960a0840182610429565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600181811c908216806105f457607f821691505b60208210810361062d577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b601f82111561067d57600081815260208120601f850160051c8101602086101561065a5750805b601f850160051c820191505b8181101561067957828155600101610666565b5050505b505050565b815167ffffffffffffffff81111561069c5761069c6105b1565b6106b0816106aa84546105e0565b84610633565b602080601f83116001811461070357600084156106cd5750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555610679565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b8281101561075057888601518255948401946001909101908401610731565b508582101561078c57878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b600084516107ae818460208901610405565b60609490941b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000169190930190815290151560f81b60148201526015019291505056fea164736f6c6343000813000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[Pa\x07\xFE\x80a\0 `\09`\0\xF3\xFE`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`\x046\x10a\0AW`\x005`\xE0\x1C\x80cT\xFDMP\x14a\0FW\x80c`\xD7\xA2x\x14a\0\x98W\x80c\xA2\xEA|n\x14a\0\xB9W[`\0\x80\xFD[a\0\x82`@Q\x80`@\x01`@R\x80`\x0C\x81R` \x01\x7F1.3.1-beta.2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RP\x81V[`@Qa\0\x8F\x91\x90a\x04sV[`@Q\x80\x91\x03\x90\xF3[a\0\xABa\0\xA66`\x04a\x04\x8DV[a\0\xD9V[`@Q\x90\x81R` \x01a\0\x8FV[a\0\xCCa\0\xC76`\x04a\x05?V[a\x02\x9DV[`@Qa\0\x8F\x91\x90a\x05XV[`\0\x80`@Q\x80`\x80\x01`@R\x80`\0\x80\x1B\x81R` \x01\x85s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81R` \x01\x84\x15\x15\x81R` \x01\x87\x87\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x82\x90RP\x93\x90\x94RP\x92\x93P\x91Pa\x01[\x90P\x82a\x03\xC5V[`\0\x81\x81R` \x81\x90R`@\x90 T\x90\x91P\x15a\x01\xA4W`@Q\x7F#6\x9F\xA6\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\x01`@Q\x80\x91\x03\x90\xFD[\x80\x82R`\0\x81\x81R` \x81\x81R`@\x91\x82\x90 \x84Q\x81U\x90\x84\x01Q`\x01\x82\x01\x80T\x93\x86\x01Q\x15\x15t\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x02\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x94\x16s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x92\x16\x91\x90\x91\x17\x92\x90\x92\x17\x90\x91U``\x83\x01Q\x83\x91\x90`\x02\x82\x01\x90a\x02@\x90\x82a\x06\x82V[P\x90PP3s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81\x7F\xD0\xB8hR\xE2\x1F\x9E_\xA4\xBC;\x0C\xFF\x97W\xFF\xE2C\xD5\x0CKC\x96\x8AB !S\xD6Q\xEA^\x84`@Qa\x02\x8B\x91\x90a\x05XV[`@Q\x80\x91\x03\x90\xA3\x96\x95PPPPPPV[`@\x80Q`\x80\x81\x01\x82R`\0\x80\x82R` \x82\x01\x81\x90R\x91\x81\x01\x91\x90\x91R``\x80\x82\x01R`\0\x82\x81R` \x81\x81R`@\x91\x82\x90 \x82Q`\x80\x81\x01\x84R\x81T\x81R`\x01\x82\x01Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x93\x82\x01\x93\x90\x93Rt\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x92\x04`\xFF\x16\x15\x15\x92\x82\x01\x92\x90\x92R`\x02\x82\x01\x80T\x91\x92\x91``\x84\x01\x91\x90a\x03<\x90a\x05\xE0V[\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x92\x91\x90\x81\x81R` \x01\x82\x80Ta\x03h\x90a\x05\xE0V[\x80\x15a\x03\xB5W\x80`\x1F\x10a\x03\x8AWa\x01\0\x80\x83T\x04\x02\x83R\x91` \x01\x91a\x03\xB5V[\x82\x01\x91\x90`\0R` `\0 \x90[\x81T\x81R\x90`\x01\x01\x90` \x01\x80\x83\x11a\x03\x98W\x82\x90\x03`\x1F\x16\x82\x01\x91[PPPPP\x81RPP\x90P\x91\x90PV[`\0\x81``\x01Q\x82` \x01Q\x83`@\x01Q`@Q` \x01a\x03\xE8\x93\x92\x91\x90a\x07\x9CV[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 \x90P\x91\x90PV[`\0[\x83\x81\x10\x15a\x04 W\x81\x81\x01Q\x83\x82\x01R` \x01a\x04\x08V[PP`\0\x91\x01RV[`\0\x81Q\x80\x84Ra\x04A\x81` \x86\x01` \x86\x01a\x04\x05V[`\x1F\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x92\x90\x92\x01` \x01\x92\x91PPV[` \x81R`\0a\x04\x86` \x83\x01\x84a\x04)V[\x93\x92PPPV[`\0\x80`\0\x80``\x85\x87\x03\x12\x15a\x04\xA3W`\0\x80\xFD[\x845g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x04\xBBW`\0\x80\xFD[\x81\x87\x01\x91P\x87`\x1F\x83\x01\x12a\x04\xCFW`\0\x80\xFD[\x815\x81\x81\x11\x15a\x04\xDEW`\0\x80\xFD[\x88` \x82\x85\x01\x01\x11\x15a\x04\xF0W`\0\x80\xFD[` \x92\x83\x01\x96P\x94PP\x85\x015s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x05\x1FW`\0\x80\xFD[\x91P`@\x85\x015\x80\x15\x15\x81\x14a\x054W`\0\x80\xFD[\x93\x96\x92\x95P\x90\x93PPV[`\0` \x82\x84\x03\x12\x15a\x05QW`\0\x80\xFD[P5\x91\x90PV[` \x81R\x81Q` \x82\x01Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF` \x83\x01Q\x16`@\x82\x01R`@\x82\x01Q\x15\x15``\x82\x01R`\0``\x83\x01Q`\x80\x80\x84\x01Ra\x05\xA9`\xA0\x84\x01\x82a\x04)V[\x94\x93PPPPV[\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[`\x01\x81\x81\x1C\x90\x82\x16\x80a\x05\xF4W`\x7F\x82\x16\x91P[` \x82\x10\x81\x03a\x06-W\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`\"`\x04R`$`\0\xFD[P\x91\x90PV[`\x1F\x82\x11\x15a\x06}W`\0\x81\x81R` \x81 `\x1F\x85\x01`\x05\x1C\x81\x01` \x86\x10\x15a\x06ZWP\x80[`\x1F\x85\x01`\x05\x1C\x82\x01\x91P[\x81\x81\x10\x15a\x06yW\x82\x81U`\x01\x01a\x06fV[PPP[PPPV[\x81Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x06\x9CWa\x06\x9Ca\x05\xB1V[a\x06\xB0\x81a\x06\xAA\x84Ta\x05\xE0V[\x84a\x063V[` \x80`\x1F\x83\x11`\x01\x81\x14a\x07\x03W`\0\x84\x15a\x06\xCDWP\x85\x83\x01Q[\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF`\x03\x86\x90\x1B\x1C\x19\x16`\x01\x85\x90\x1B\x17\x85Ua\x06yV[`\0\x85\x81R` \x81 \x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x86\x16\x91[\x82\x81\x10\x15a\x07PW\x88\x86\x01Q\x82U\x94\x84\x01\x94`\x01\x90\x91\x01\x90\x84\x01a\x071V[P\x85\x82\x10\x15a\x07\x8CW\x87\x85\x01Q\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF`\x03\x88\x90\x1B`\xF8\x16\x1C\x19\x16\x81U[PPPPP`\x01\x90\x81\x1B\x01\x90UPV[`\0\x84Qa\x07\xAE\x81\x84` \x89\x01a\x04\x05V[``\x94\x90\x94\x1B\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\x16\x91\x90\x93\x01\x90\x81R\x90\x15\x15`\xF8\x1B`\x14\x82\x01R`\x15\x01\x92\x91PPV\xFE\xA1dsolcC\0\x08\x13\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x608060405234801561001057600080fd5b50600436106100415760003560e01c806354fd4d501461004657806360d7a27814610098578063a2ea7c6e146100b9575b600080fd5b6100826040518060400160405280600c81526020017f312e332e312d626574612e32000000000000000000000000000000000000000081525081565b60405161008f9190610473565b60405180910390f35b6100ab6100a636600461048d565b6100d9565b60405190815260200161008f565b6100cc6100c736600461053f565b61029d565b60405161008f9190610558565b60008060405180608001604052806000801b81526020018573ffffffffffffffffffffffffffffffffffffffff168152602001841515815260200187878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052509390945250929350915061015b9050826103c5565b600081815260208190526040902054909150156101a4576040517f23369fa600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80825260008181526020818152604091829020845181559084015160018201805493860151151574010000000000000000000000000000000000000000027fffffffffffffffffffffff00000000000000000000000000000000000000000090941673ffffffffffffffffffffffffffffffffffffffff9092169190911792909217909155606083015183919060028201906102409082610682565b509050503373ffffffffffffffffffffffffffffffffffffffff16817fd0b86852e21f9e5fa4bc3b0cff9757ffe243d50c4b43968a42202153d651ea5e8460405161028b9190610558565b60405180910390a39695505050505050565b604080516080810182526000808252602082018190529181019190915260608082015260008281526020818152604091829020825160808101845281548152600182015473ffffffffffffffffffffffffffffffffffffffff8116938201939093527401000000000000000000000000000000000000000090920460ff1615159282019290925260028201805491929160608401919061033c906105e0565b80601f0160208091040260200160405190810160405280929190818152602001828054610368906105e0565b80156103b55780601f1061038a576101008083540402835291602001916103b5565b820191906000526020600020905b81548152906001019060200180831161039857829003601f168201915b5050505050815250509050919050565b60008160600151826020015183604001516040516020016103e89392919061079c565b604051602081830303815290604052805190602001209050919050565b60005b83811015610420578181015183820152602001610408565b50506000910152565b60008151808452610441816020860160208601610405565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006104866020830184610429565b9392505050565b600080600080606085870312156104a357600080fd5b843567ffffffffffffffff808211156104bb57600080fd5b818701915087601f8301126104cf57600080fd5b8135818111156104de57600080fd5b8860208285010111156104f057600080fd5b6020928301965094505085013573ffffffffffffffffffffffffffffffffffffffff8116811461051f57600080fd5b91506040850135801515811461053457600080fd5b939692955090935050565b60006020828403121561055157600080fd5b5035919050565b602081528151602082015273ffffffffffffffffffffffffffffffffffffffff6020830151166040820152604082015115156060820152600060608301516080808401526105a960a0840182610429565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600181811c908216806105f457607f821691505b60208210810361062d577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b601f82111561067d57600081815260208120601f850160051c8101602086101561065a5750805b601f850160051c820191505b8181101561067957828155600101610666565b5050505b505050565b815167ffffffffffffffff81111561069c5761069c6105b1565b6106b0816106aa84546105e0565b84610633565b602080601f83116001811461070357600084156106cd5750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555610679565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b8281101561075057888601518255948401946001909101908401610731565b508582101561078c57878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b600084516107ae818460208901610405565b60609490941b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000169190930190815290151560f81b60148201526015019291505056fea164736f6c6343000813000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`\x046\x10a\0AW`\x005`\xE0\x1C\x80cT\xFDMP\x14a\0FW\x80c`\xD7\xA2x\x14a\0\x98W\x80c\xA2\xEA|n\x14a\0\xB9W[`\0\x80\xFD[a\0\x82`@Q\x80`@\x01`@R\x80`\x0C\x81R` \x01\x7F1.3.1-beta.2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RP\x81V[`@Qa\0\x8F\x91\x90a\x04sV[`@Q\x80\x91\x03\x90\xF3[a\0\xABa\0\xA66`\x04a\x04\x8DV[a\0\xD9V[`@Q\x90\x81R` \x01a\0\x8FV[a\0\xCCa\0\xC76`\x04a\x05?V[a\x02\x9DV[`@Qa\0\x8F\x91\x90a\x05XV[`\0\x80`@Q\x80`\x80\x01`@R\x80`\0\x80\x1B\x81R` \x01\x85s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81R` \x01\x84\x15\x15\x81R` \x01\x87\x87\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x82\x90RP\x93\x90\x94RP\x92\x93P\x91Pa\x01[\x90P\x82a\x03\xC5V[`\0\x81\x81R` \x81\x90R`@\x90 T\x90\x91P\x15a\x01\xA4W`@Q\x7F#6\x9F\xA6\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\x01`@Q\x80\x91\x03\x90\xFD[\x80\x82R`\0\x81\x81R` \x81\x81R`@\x91\x82\x90 \x84Q\x81U\x90\x84\x01Q`\x01\x82\x01\x80T\x93\x86\x01Q\x15\x15t\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x02\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x94\x16s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x92\x16\x91\x90\x91\x17\x92\x90\x92\x17\x90\x91U``\x83\x01Q\x83\x91\x90`\x02\x82\x01\x90a\x02@\x90\x82a\x06\x82V[P\x90PP3s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81\x7F\xD0\xB8hR\xE2\x1F\x9E_\xA4\xBC;\x0C\xFF\x97W\xFF\xE2C\xD5\x0CKC\x96\x8AB !S\xD6Q\xEA^\x84`@Qa\x02\x8B\x91\x90a\x05XV[`@Q\x80\x91\x03\x90\xA3\x96\x95PPPPPPV[`@\x80Q`\x80\x81\x01\x82R`\0\x80\x82R` \x82\x01\x81\x90R\x91\x81\x01\x91\x90\x91R``\x80\x82\x01R`\0\x82\x81R` \x81\x81R`@\x91\x82\x90 \x82Q`\x80\x81\x01\x84R\x81T\x81R`\x01\x82\x01Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x93\x82\x01\x93\x90\x93Rt\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x92\x04`\xFF\x16\x15\x15\x92\x82\x01\x92\x90\x92R`\x02\x82\x01\x80T\x91\x92\x91``\x84\x01\x91\x90a\x03<\x90a\x05\xE0V[\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x92\x91\x90\x81\x81R` \x01\x82\x80Ta\x03h\x90a\x05\xE0V[\x80\x15a\x03\xB5W\x80`\x1F\x10a\x03\x8AWa\x01\0\x80\x83T\x04\x02\x83R\x91` \x01\x91a\x03\xB5V[\x82\x01\x91\x90`\0R` `\0 \x90[\x81T\x81R\x90`\x01\x01\x90` \x01\x80\x83\x11a\x03\x98W\x82\x90\x03`\x1F\x16\x82\x01\x91[PPPPP\x81RPP\x90P\x91\x90PV[`\0\x81``\x01Q\x82` \x01Q\x83`@\x01Q`@Q` \x01a\x03\xE8\x93\x92\x91\x90a\x07\x9CV[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 \x90P\x91\x90PV[`\0[\x83\x81\x10\x15a\x04 W\x81\x81\x01Q\x83\x82\x01R` \x01a\x04\x08V[PP`\0\x91\x01RV[`\0\x81Q\x80\x84Ra\x04A\x81` \x86\x01` \x86\x01a\x04\x05V[`\x1F\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x92\x90\x92\x01` \x01\x92\x91PPV[` \x81R`\0a\x04\x86` \x83\x01\x84a\x04)V[\x93\x92PPPV[`\0\x80`\0\x80``\x85\x87\x03\x12\x15a\x04\xA3W`\0\x80\xFD[\x845g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x04\xBBW`\0\x80\xFD[\x81\x87\x01\x91P\x87`\x1F\x83\x01\x12a\x04\xCFW`\0\x80\xFD[\x815\x81\x81\x11\x15a\x04\xDEW`\0\x80\xFD[\x88` \x82\x85\x01\x01\x11\x15a\x04\xF0W`\0\x80\xFD[` \x92\x83\x01\x96P\x94PP\x85\x015s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x05\x1FW`\0\x80\xFD[\x91P`@\x85\x015\x80\x15\x15\x81\x14a\x054W`\0\x80\xFD[\x93\x96\x92\x95P\x90\x93PPV[`\0` \x82\x84\x03\x12\x15a\x05QW`\0\x80\xFD[P5\x91\x90PV[` \x81R\x81Q` \x82\x01Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF` \x83\x01Q\x16`@\x82\x01R`@\x82\x01Q\x15\x15``\x82\x01R`\0``\x83\x01Q`\x80\x80\x84\x01Ra\x05\xA9`\xA0\x84\x01\x82a\x04)V[\x94\x93PPPPV[\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[`\x01\x81\x81\x1C\x90\x82\x16\x80a\x05\xF4W`\x7F\x82\x16\x91P[` \x82\x10\x81\x03a\x06-W\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`\"`\x04R`$`\0\xFD[P\x91\x90PV[`\x1F\x82\x11\x15a\x06}W`\0\x81\x81R` \x81 `\x1F\x85\x01`\x05\x1C\x81\x01` \x86\x10\x15a\x06ZWP\x80[`\x1F\x85\x01`\x05\x1C\x82\x01\x91P[\x81\x81\x10\x15a\x06yW\x82\x81U`\x01\x01a\x06fV[PPP[PPPV[\x81Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x06\x9CWa\x06\x9Ca\x05\xB1V[a\x06\xB0\x81a\x06\xAA\x84Ta\x05\xE0V[\x84a\x063V[` \x80`\x1F\x83\x11`\x01\x81\x14a\x07\x03W`\0\x84\x15a\x06\xCDWP\x85\x83\x01Q[\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF`\x03\x86\x90\x1B\x1C\x19\x16`\x01\x85\x90\x1B\x17\x85Ua\x06yV[`\0\x85\x81R` \x81 \x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x86\x16\x91[\x82\x81\x10\x15a\x07PW\x88\x86\x01Q\x82U\x94\x84\x01\x94`\x01\x90\x91\x01\x90\x84\x01a\x071V[P\x85\x82\x10\x15a\x07\x8CW\x87\x85\x01Q\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF`\x03\x88\x90\x1B`\xF8\x16\x1C\x19\x16\x81U[PPPPP`\x01\x90\x81\x1B\x01\x90UPV[`\0\x84Qa\x07\xAE\x81\x84` \x89\x01a\x04\x05V[``\x94\x90\x94\x1B\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\x16\x91\x90\x93\x01\x90\x81R\x90\x15\x15`\xF8\x1B`\x14\x82\x01R`\x15\x01\x92\x91PPV\xFE\xA1dsolcC\0\x08\x13\0\n", + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**```solidity +struct SchemaRecord { bytes32 uid; address resolver; bool revocable; string schema; } +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct SchemaRecord { + #[allow(missing_docs)] + pub uid: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub resolver: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub revocable: bool, + #[allow(missing_docs)] + pub schema: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Bool, + alloy::sol_types::sol_data::String, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::FixedBytes<32>, + alloy::sol_types::private::Address, + bool, + alloy::sol_types::private::String, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: SchemaRecord) -> Self { + (value.uid, value.resolver, value.revocable, value.schema) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for SchemaRecord { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + uid: tuple.0, + resolver: tuple.1, + revocable: tuple.2, + schema: tuple.3, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolValue for SchemaRecord { + type SolType = Self; + } + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for SchemaRecord { + #[inline] + fn stv_to_tokens(&self) -> ::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.uid), + ::tokenize( + &self.resolver, + ), + ::tokenize( + &self.revocable, + ), + ::tokenize( + &self.schema, + ), + ) + } + #[inline] + fn stv_abi_encoded_size(&self) -> usize { + if let Some(size) = ::ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encoded_size(&tuple) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + ::eip712_hash_struct(self) + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + if let Some(size) = ::PACKED_ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for SchemaRecord { + type RustType = Self; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = ::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + as alloy_sol_types::SolType>::valid_token(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + let tuple = as alloy_sol_types::SolType>::detokenize(token); + >>::from(tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolStruct for SchemaRecord { + const NAME: &'static str = "SchemaRecord"; + #[inline] + fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> { + alloy_sol_types::private::Cow::Borrowed( + "SchemaRecord(bytes32 uid,address resolver,bool revocable,string schema)", + ) + } + #[inline] + fn eip712_components() -> alloy_sol_types::private::Vec< + alloy_sol_types::private::Cow<'static, str>, + > { + alloy_sol_types::private::Vec::new() + } + #[inline] + fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> { + ::eip712_root_type() + } + #[inline] + fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec { + [ + as alloy_sol_types::SolType>::eip712_data_word(&self.uid) + .0, + ::eip712_data_word( + &self.resolver, + ) + .0, + ::eip712_data_word( + &self.revocable, + ) + .0, + ::eip712_data_word( + &self.schema, + ) + .0, + ] + .concat() + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for SchemaRecord { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + 0usize + + as alloy_sol_types::EventTopic>::topic_preimage_length(&rust.uid) + + ::topic_preimage_length( + &rust.resolver, + ) + + ::topic_preimage_length( + &rust.revocable, + ) + + ::topic_preimage_length( + &rust.schema, + ) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + out.reserve( + ::topic_preimage_length(rust), + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage(&rust.uid, out); + ::encode_topic_preimage( + &rust.resolver, + out, + ); + ::encode_topic_preimage( + &rust.revocable, + out, + ); + ::encode_topic_preimage( + &rust.schema, + out, + ); + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + let mut out = alloy_sol_types::private::Vec::new(); + ::encode_topic_preimage( + rust, + &mut out, + ); + alloy_sol_types::abi::token::WordToken( + alloy_sol_types::private::keccak256(out), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `AlreadyExists()` and selector `0x23369fa6`. +```solidity +error AlreadyExists(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct AlreadyExists; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: AlreadyExists) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for AlreadyExists { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for AlreadyExists { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "AlreadyExists()"; + const SELECTOR: [u8; 4] = [35u8, 54u8, 159u8, 166u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `Registered(bytes32,address,(bytes32,address,bool,string))` and selector `0xd0b86852e21f9e5fa4bc3b0cff9757ffe243d50c4b43968a42202153d651ea5e`. +```solidity +event Registered(bytes32 indexed uid, address indexed registerer, SchemaRecord schema); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct Registered { + #[allow(missing_docs)] + pub uid: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub registerer: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub schema: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for Registered { + type DataTuple<'a> = (SchemaRecord,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "Registered(bytes32,address,(bytes32,address,bool,string))"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 208u8, 184u8, 104u8, 82u8, 226u8, 31u8, 158u8, 95u8, 164u8, 188u8, 59u8, + 12u8, 255u8, 151u8, 87u8, 255u8, 226u8, 67u8, 213u8, 12u8, 75u8, 67u8, + 150u8, 138u8, 66u8, 32u8, 33u8, 83u8, 214u8, 81u8, 234u8, 94u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + uid: topics.1, + registerer: topics.2, + schema: data.0, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + (::tokenize(&self.schema),) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.uid.clone(), self.registerer.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = as alloy_sol_types::EventTopic>::encode_topic(&self.uid); + out[2usize] = ::encode_topic( + &self.registerer, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for Registered { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&Registered> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &Registered) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `getSchema(bytes32)` and selector `0xa2ea7c6e`. +```solidity +function getSchema(bytes32 uid) external view returns (SchemaRecord memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getSchemaCall { + #[allow(missing_docs)] + pub uid: alloy::sol_types::private::FixedBytes<32>, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`getSchema(bytes32)`](getSchemaCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getSchemaReturn { + #[allow(missing_docs)] + pub _0: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: getSchemaCall) -> Self { + (value.uid,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for getSchemaCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { uid: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (SchemaRecord,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: getSchemaReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for getSchemaReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for getSchemaCall { + type Parameters<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (SchemaRecord,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "getSchema(bytes32)"; + const SELECTOR: [u8; 4] = [162u8, 234u8, 124u8, 110u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.uid), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: getSchemaReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: getSchemaReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `register(string,address,bool)` and selector `0x60d7a278`. +```solidity +function register(string memory schema, address resolver, bool revocable) external returns (bytes32); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct registerCall { + #[allow(missing_docs)] + pub schema: alloy::sol_types::private::String, + #[allow(missing_docs)] + pub resolver: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub revocable: bool, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`register(string,address,bool)`](registerCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct registerReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::String, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Bool, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::String, + alloy::sol_types::private::Address, + bool, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: registerCall) -> Self { + (value.schema, value.resolver, value.revocable) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for registerCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + schema: tuple.0, + resolver: tuple.1, + revocable: tuple.2, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: registerReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for registerReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for registerCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::String, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Bool, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::FixedBytes<32>; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "register(string,address,bool)"; + const SELECTOR: [u8; 4] = [96u8, 215u8, 162u8, 120u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.schema, + ), + ::tokenize( + &self.resolver, + ), + ::tokenize( + &self.revocable, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: registerReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: registerReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `version()` and selector `0x54fd4d50`. +```solidity +function version() external view returns (string memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`version()`](versionCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for versionCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::String; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "version()"; + const SELECTOR: [u8; 4] = [84u8, 253u8, 77u8, 80u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + } + }; + ///Container for all the [`SchemaRegistry`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum SchemaRegistryCalls { + #[allow(missing_docs)] + getSchema(getSchemaCall), + #[allow(missing_docs)] + register(registerCall), + #[allow(missing_docs)] + version(versionCall), + } + impl SchemaRegistryCalls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [84u8, 253u8, 77u8, 80u8], + [96u8, 215u8, 162u8, 120u8], + [162u8, 234u8, 124u8, 110u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(version), + ::core::stringify!(register), + ::core::stringify!(getSchema), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for SchemaRegistryCalls { + const NAME: &'static str = "SchemaRegistryCalls"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 3usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::getSchema(_) => { + ::SELECTOR + } + Self::register(_) => ::SELECTOR, + Self::version(_) => ::SELECTOR, + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(SchemaRegistryCalls::version) + } + version + }, + { + fn register( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(SchemaRegistryCalls::register) + } + register + }, + { + fn getSchema( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(SchemaRegistryCalls::getSchema) + } + getSchema + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SchemaRegistryCalls::version) + } + version + }, + { + fn register( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SchemaRegistryCalls::register) + } + register + }, + { + fn getSchema( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SchemaRegistryCalls::getSchema) + } + getSchema + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::getSchema(inner) => { + ::abi_encoded_size(inner) + } + Self::register(inner) => { + ::abi_encoded_size(inner) + } + Self::version(inner) => { + ::abi_encoded_size(inner) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::getSchema(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::register(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::version(inner) => { + ::abi_encode_raw(inner, out) + } + } + } + } + ///Container for all the [`SchemaRegistry`](self) custom errors. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum SchemaRegistryErrors { + #[allow(missing_docs)] + AlreadyExists(AlreadyExists), + } + impl SchemaRegistryErrors { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[[35u8, 54u8, 159u8, 166u8]]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(AlreadyExists), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for SchemaRegistryErrors { + const NAME: &'static str = "SchemaRegistryErrors"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 1usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::AlreadyExists(_) => { + ::SELECTOR + } + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn AlreadyExists( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SchemaRegistryErrors::AlreadyExists) + } + AlreadyExists + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn AlreadyExists( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SchemaRegistryErrors::AlreadyExists) + } + AlreadyExists + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::AlreadyExists(inner) => { + ::abi_encoded_size(inner) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::AlreadyExists(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + } + } + } + ///Container for all the [`SchemaRegistry`](self) events. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum SchemaRegistryEvents { + #[allow(missing_docs)] + Registered(Registered), + } + impl SchemaRegistryEvents { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 32usize]] = &[ + [ + 208u8, 184u8, 104u8, 82u8, 226u8, 31u8, 158u8, 95u8, 164u8, 188u8, 59u8, + 12u8, 255u8, 151u8, 87u8, 255u8, 226u8, 67u8, 213u8, 12u8, 75u8, 67u8, + 150u8, 138u8, 66u8, 32u8, 33u8, 83u8, 214u8, 81u8, 234u8, 94u8, + ], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(Registered), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolEventInterface for SchemaRegistryEvents { + const NAME: &'static str = "SchemaRegistryEvents"; + const COUNT: usize = 1usize; + fn decode_raw_log( + topics: &[alloy_sol_types::Word], + data: &[u8], + ) -> alloy_sol_types::Result { + match topics.first().copied() { + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::Registered) + } + _ => { + alloy_sol_types::private::Err(alloy_sol_types::Error::InvalidLog { + name: ::NAME, + log: alloy_sol_types::private::Box::new( + alloy_sol_types::private::LogData::new_unchecked( + topics.to_vec(), + data.to_vec().into(), + ), + ), + }) + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for SchemaRegistryEvents { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + match self { + Self::Registered(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + } + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + match self { + Self::Registered(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`SchemaRegistry`](self) contract instance. + +See the [wrapper's documentation](`SchemaRegistryInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> SchemaRegistryInstance { + SchemaRegistryInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + SchemaRegistryInstance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + SchemaRegistryInstance::::deploy_builder(__provider) + } + /**A [`SchemaRegistry`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`SchemaRegistry`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct SchemaRegistryInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for SchemaRegistryInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("SchemaRegistryInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > SchemaRegistryInstance { + /**Creates a new wrapper around an on-chain [`SchemaRegistry`](self) contract instance. + +See the [wrapper's documentation](`SchemaRegistryInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl SchemaRegistryInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> SchemaRegistryInstance { + SchemaRegistryInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > SchemaRegistryInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`getSchema`] function. + pub fn getSchema( + &self, + uid: alloy::sol_types::private::FixedBytes<32>, + ) -> alloy_contract::SolCallBuilder<&P, getSchemaCall, N> { + self.call_builder(&getSchemaCall { uid }) + } + ///Creates a new call builder for the [`register`] function. + pub fn register( + &self, + schema: alloy::sol_types::private::String, + resolver: alloy::sol_types::private::Address, + revocable: bool, + ) -> alloy_contract::SolCallBuilder<&P, registerCall, N> { + self.call_builder( + ®isterCall { + schema, + resolver, + revocable, + }, + ) + } + ///Creates a new call builder for the [`version`] function. + pub fn version(&self) -> alloy_contract::SolCallBuilder<&P, versionCall, N> { + self.call_builder(&versionCall) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > SchemaRegistryInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + ///Creates a new event filter for the [`Registered`] event. + pub fn Registered_filter(&self) -> alloy_contract::Event<&P, Registered, N> { + self.event_filter::() + } + } +} diff --git a/bindings/rust/src/schema_resolver.rs b/bindings/rust/src/schema_resolver.rs new file mode 100644 index 000000000..4a4a102d0 --- /dev/null +++ b/bindings/rust/src/schema_resolver.rs @@ -0,0 +1,2795 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface SchemaResolver { + struct Attestation { + bytes32 uid; + bytes32 schema; + uint64 time; + uint64 expirationTime; + uint64 revocationTime; + bytes32 refUID; + address recipient; + address attester; + bool revocable; + bytes data; + } + + error AccessDenied(); + error InsufficientValue(); + error InvalidEAS(); + error InvalidLength(); + error NotPayable(); + + receive() external payable; + + function attest(Attestation memory attestation) external payable returns (bool); + function isPayable() external pure returns (bool); + function multiAttest(Attestation[] memory attestations, uint256[] memory values) external payable returns (bool); + function multiRevoke(Attestation[] memory attestations, uint256[] memory values) external payable returns (bool); + function revoke(Attestation memory attestation) external payable returns (bool); +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "receive", + "stateMutability": "payable" + }, + { + "type": "function", + "name": "attest", + "inputs": [ + { + "name": "attestation", + "type": "tuple", + "internalType": "struct Attestation", + "components": [ + { + "name": "uid", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "schema", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "time", + "type": "uint64", + "internalType": "uint64" + }, + { + "name": "expirationTime", + "type": "uint64", + "internalType": "uint64" + }, + { + "name": "revocationTime", + "type": "uint64", + "internalType": "uint64" + }, + { + "name": "refUID", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "recipient", + "type": "address", + "internalType": "address" + }, + { + "name": "attester", + "type": "address", + "internalType": "address" + }, + { + "name": "revocable", + "type": "bool", + "internalType": "bool" + }, + { + "name": "data", + "type": "bytes", + "internalType": "bytes" + } + ] + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "isPayable", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "multiAttest", + "inputs": [ + { + "name": "attestations", + "type": "tuple[]", + "internalType": "struct Attestation[]", + "components": [ + { + "name": "uid", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "schema", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "time", + "type": "uint64", + "internalType": "uint64" + }, + { + "name": "expirationTime", + "type": "uint64", + "internalType": "uint64" + }, + { + "name": "revocationTime", + "type": "uint64", + "internalType": "uint64" + }, + { + "name": "refUID", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "recipient", + "type": "address", + "internalType": "address" + }, + { + "name": "attester", + "type": "address", + "internalType": "address" + }, + { + "name": "revocable", + "type": "bool", + "internalType": "bool" + }, + { + "name": "data", + "type": "bytes", + "internalType": "bytes" + } + ] + }, + { + "name": "values", + "type": "uint256[]", + "internalType": "uint256[]" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "multiRevoke", + "inputs": [ + { + "name": "attestations", + "type": "tuple[]", + "internalType": "struct Attestation[]", + "components": [ + { + "name": "uid", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "schema", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "time", + "type": "uint64", + "internalType": "uint64" + }, + { + "name": "expirationTime", + "type": "uint64", + "internalType": "uint64" + }, + { + "name": "revocationTime", + "type": "uint64", + "internalType": "uint64" + }, + { + "name": "refUID", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "recipient", + "type": "address", + "internalType": "address" + }, + { + "name": "attester", + "type": "address", + "internalType": "address" + }, + { + "name": "revocable", + "type": "bool", + "internalType": "bool" + }, + { + "name": "data", + "type": "bytes", + "internalType": "bytes" + } + ] + }, + { + "name": "values", + "type": "uint256[]", + "internalType": "uint256[]" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "revoke", + "inputs": [ + { + "name": "attestation", + "type": "tuple", + "internalType": "struct Attestation", + "components": [ + { + "name": "uid", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "schema", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "time", + "type": "uint64", + "internalType": "uint64" + }, + { + "name": "expirationTime", + "type": "uint64", + "internalType": "uint64" + }, + { + "name": "revocationTime", + "type": "uint64", + "internalType": "uint64" + }, + { + "name": "refUID", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "recipient", + "type": "address", + "internalType": "address" + }, + { + "name": "attester", + "type": "address", + "internalType": "address" + }, + { + "name": "revocable", + "type": "bool", + "internalType": "bool" + }, + { + "name": "data", + "type": "bytes", + "internalType": "bytes" + } + ] + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "payable" + }, + { + "type": "error", + "name": "AccessDenied", + "inputs": [] + }, + { + "type": "error", + "name": "InsufficientValue", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidEAS", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidLength", + "inputs": [] + }, + { + "type": "error", + "name": "NotPayable", + "inputs": [] + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod SchemaResolver { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"", + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**```solidity +struct Attestation { bytes32 uid; bytes32 schema; uint64 time; uint64 expirationTime; uint64 revocationTime; bytes32 refUID; address recipient; address attester; bool revocable; bytes data; } +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct Attestation { + #[allow(missing_docs)] + pub uid: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub schema: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub time: u64, + #[allow(missing_docs)] + pub expirationTime: u64, + #[allow(missing_docs)] + pub revocationTime: u64, + #[allow(missing_docs)] + pub refUID: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub recipient: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub attester: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub revocable: bool, + #[allow(missing_docs)] + pub data: alloy::sol_types::private::Bytes, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Uint<64>, + alloy::sol_types::sol_data::Uint<64>, + alloy::sol_types::sol_data::Uint<64>, + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Bool, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::FixedBytes<32>, + alloy::sol_types::private::FixedBytes<32>, + u64, + u64, + u64, + alloy::sol_types::private::FixedBytes<32>, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + bool, + alloy::sol_types::private::Bytes, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: Attestation) -> Self { + ( + value.uid, + value.schema, + value.time, + value.expirationTime, + value.revocationTime, + value.refUID, + value.recipient, + value.attester, + value.revocable, + value.data, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for Attestation { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + uid: tuple.0, + schema: tuple.1, + time: tuple.2, + expirationTime: tuple.3, + revocationTime: tuple.4, + refUID: tuple.5, + recipient: tuple.6, + attester: tuple.7, + revocable: tuple.8, + data: tuple.9, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolValue for Attestation { + type SolType = Self; + } + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for Attestation { + #[inline] + fn stv_to_tokens(&self) -> ::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.uid), + as alloy_sol_types::SolType>::tokenize(&self.schema), + as alloy_sol_types::SolType>::tokenize(&self.time), + as alloy_sol_types::SolType>::tokenize(&self.expirationTime), + as alloy_sol_types::SolType>::tokenize(&self.revocationTime), + as alloy_sol_types::SolType>::tokenize(&self.refUID), + ::tokenize( + &self.recipient, + ), + ::tokenize( + &self.attester, + ), + ::tokenize( + &self.revocable, + ), + ::tokenize( + &self.data, + ), + ) + } + #[inline] + fn stv_abi_encoded_size(&self) -> usize { + if let Some(size) = ::ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encoded_size(&tuple) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + ::eip712_hash_struct(self) + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + if let Some(size) = ::PACKED_ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for Attestation { + type RustType = Self; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = ::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + as alloy_sol_types::SolType>::valid_token(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + let tuple = as alloy_sol_types::SolType>::detokenize(token); + >>::from(tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolStruct for Attestation { + const NAME: &'static str = "Attestation"; + #[inline] + fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> { + alloy_sol_types::private::Cow::Borrowed( + "Attestation(bytes32 uid,bytes32 schema,uint64 time,uint64 expirationTime,uint64 revocationTime,bytes32 refUID,address recipient,address attester,bool revocable,bytes data)", + ) + } + #[inline] + fn eip712_components() -> alloy_sol_types::private::Vec< + alloy_sol_types::private::Cow<'static, str>, + > { + alloy_sol_types::private::Vec::new() + } + #[inline] + fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> { + ::eip712_root_type() + } + #[inline] + fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec { + [ + as alloy_sol_types::SolType>::eip712_data_word(&self.uid) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.schema) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.time) + .0, + as alloy_sol_types::SolType>::eip712_data_word( + &self.expirationTime, + ) + .0, + as alloy_sol_types::SolType>::eip712_data_word( + &self.revocationTime, + ) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.refUID) + .0, + ::eip712_data_word( + &self.recipient, + ) + .0, + ::eip712_data_word( + &self.attester, + ) + .0, + ::eip712_data_word( + &self.revocable, + ) + .0, + ::eip712_data_word( + &self.data, + ) + .0, + ] + .concat() + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for Attestation { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + 0usize + + as alloy_sol_types::EventTopic>::topic_preimage_length(&rust.uid) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.schema, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length(&rust.time) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.expirationTime, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.revocationTime, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.refUID, + ) + + ::topic_preimage_length( + &rust.recipient, + ) + + ::topic_preimage_length( + &rust.attester, + ) + + ::topic_preimage_length( + &rust.revocable, + ) + + ::topic_preimage_length( + &rust.data, + ) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + out.reserve( + ::topic_preimage_length(rust), + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage(&rust.uid, out); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.schema, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.time, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.expirationTime, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.revocationTime, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.refUID, + out, + ); + ::encode_topic_preimage( + &rust.recipient, + out, + ); + ::encode_topic_preimage( + &rust.attester, + out, + ); + ::encode_topic_preimage( + &rust.revocable, + out, + ); + ::encode_topic_preimage( + &rust.data, + out, + ); + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + let mut out = alloy_sol_types::private::Vec::new(); + ::encode_topic_preimage( + rust, + &mut out, + ); + alloy_sol_types::abi::token::WordToken( + alloy_sol_types::private::keccak256(out), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `AccessDenied()` and selector `0x4ca88867`. +```solidity +error AccessDenied(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct AccessDenied; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: AccessDenied) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for AccessDenied { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for AccessDenied { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "AccessDenied()"; + const SELECTOR: [u8; 4] = [76u8, 168u8, 136u8, 103u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InsufficientValue()` and selector `0x11011294`. +```solidity +error InsufficientValue(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InsufficientValue; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InsufficientValue) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InsufficientValue { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InsufficientValue { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InsufficientValue()"; + const SELECTOR: [u8; 4] = [17u8, 1u8, 18u8, 148u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidEAS()` and selector `0x83780ffe`. +```solidity +error InvalidEAS(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidEAS; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InvalidEAS) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InvalidEAS { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidEAS { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidEAS()"; + const SELECTOR: [u8; 4] = [131u8, 120u8, 15u8, 254u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidLength()` and selector `0x947d5a84`. +```solidity +error InvalidLength(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidLength; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InvalidLength) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InvalidLength { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidLength { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidLength()"; + const SELECTOR: [u8; 4] = [148u8, 125u8, 90u8, 132u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `NotPayable()` and selector `0x1574f9f3`. +```solidity +error NotPayable(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct NotPayable; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: NotPayable) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for NotPayable { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for NotPayable { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "NotPayable()"; + const SELECTOR: [u8; 4] = [21u8, 116u8, 249u8, 243u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `attest((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes))` and selector `0xe60c3505`. +```solidity +function attest(Attestation memory attestation) external payable returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct attestCall { + #[allow(missing_docs)] + pub attestation: ::RustType, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`attest((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes))`](attestCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct attestReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Attestation,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: attestCall) -> Self { + (value.attestation,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for attestCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { attestation: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: attestReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for attestReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for attestCall { + type Parameters<'a> = (Attestation,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "attest((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes))"; + const SELECTOR: [u8; 4] = [230u8, 12u8, 53u8, 5u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + (::tokenize(&self.attestation),) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: attestReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: attestReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `isPayable()` and selector `0xce46e046`. +```solidity +function isPayable() external pure returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct isPayableCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`isPayable()`](isPayableCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct isPayableReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: isPayableCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for isPayableCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: isPayableReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for isPayableReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for isPayableCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "isPayable()"; + const SELECTOR: [u8; 4] = [206u8, 70u8, 224u8, 70u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: isPayableReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: isPayableReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `multiAttest((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes)[],uint256[])` and selector `0x91db0b7e`. +```solidity +function multiAttest(Attestation[] memory attestations, uint256[] memory values) external payable returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct multiAttestCall { + #[allow(missing_docs)] + pub attestations: alloy::sol_types::private::Vec< + ::RustType, + >, + #[allow(missing_docs)] + pub values: alloy::sol_types::private::Vec< + alloy::sol_types::private::primitives::aliases::U256, + >, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`multiAttest((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes)[],uint256[])`](multiAttestCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct multiAttestReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Array, + alloy::sol_types::sol_data::Array>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Vec< + ::RustType, + >, + alloy::sol_types::private::Vec< + alloy::sol_types::private::primitives::aliases::U256, + >, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: multiAttestCall) -> Self { + (value.attestations, value.values) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for multiAttestCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + attestations: tuple.0, + values: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: multiAttestReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for multiAttestReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for multiAttestCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Array, + alloy::sol_types::sol_data::Array>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "multiAttest((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes)[],uint256[])"; + const SELECTOR: [u8; 4] = [145u8, 219u8, 11u8, 126u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.attestations), + , + > as alloy_sol_types::SolType>::tokenize(&self.values), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: multiAttestReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: multiAttestReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `multiRevoke((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes)[],uint256[])` and selector `0x88e5b2d9`. +```solidity +function multiRevoke(Attestation[] memory attestations, uint256[] memory values) external payable returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct multiRevokeCall { + #[allow(missing_docs)] + pub attestations: alloy::sol_types::private::Vec< + ::RustType, + >, + #[allow(missing_docs)] + pub values: alloy::sol_types::private::Vec< + alloy::sol_types::private::primitives::aliases::U256, + >, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`multiRevoke((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes)[],uint256[])`](multiRevokeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct multiRevokeReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Array, + alloy::sol_types::sol_data::Array>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Vec< + ::RustType, + >, + alloy::sol_types::private::Vec< + alloy::sol_types::private::primitives::aliases::U256, + >, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: multiRevokeCall) -> Self { + (value.attestations, value.values) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for multiRevokeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + attestations: tuple.0, + values: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: multiRevokeReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for multiRevokeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for multiRevokeCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Array, + alloy::sol_types::sol_data::Array>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "multiRevoke((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes)[],uint256[])"; + const SELECTOR: [u8; 4] = [136u8, 229u8, 178u8, 217u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.attestations), + , + > as alloy_sol_types::SolType>::tokenize(&self.values), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: multiRevokeReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: multiRevokeReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `revoke((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes))` and selector `0xe49617e1`. +```solidity +function revoke(Attestation memory attestation) external payable returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct revokeCall { + #[allow(missing_docs)] + pub attestation: ::RustType, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`revoke((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes))`](revokeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct revokeReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Attestation,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: revokeCall) -> Self { + (value.attestation,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for revokeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { attestation: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: revokeReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for revokeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for revokeCall { + type Parameters<'a> = (Attestation,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "revoke((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes))"; + const SELECTOR: [u8; 4] = [228u8, 150u8, 23u8, 225u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + (::tokenize(&self.attestation),) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: revokeReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: revokeReturn = r.into(); + r._0 + }) + } + } + }; + ///Container for all the [`SchemaResolver`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum SchemaResolverCalls { + #[allow(missing_docs)] + attest(attestCall), + #[allow(missing_docs)] + isPayable(isPayableCall), + #[allow(missing_docs)] + multiAttest(multiAttestCall), + #[allow(missing_docs)] + multiRevoke(multiRevokeCall), + #[allow(missing_docs)] + revoke(revokeCall), + } + impl SchemaResolverCalls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [136u8, 229u8, 178u8, 217u8], + [145u8, 219u8, 11u8, 126u8], + [206u8, 70u8, 224u8, 70u8], + [228u8, 150u8, 23u8, 225u8], + [230u8, 12u8, 53u8, 5u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(multiRevoke), + ::core::stringify!(multiAttest), + ::core::stringify!(isPayable), + ::core::stringify!(revoke), + ::core::stringify!(attest), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for SchemaResolverCalls { + const NAME: &'static str = "SchemaResolverCalls"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 5usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::attest(_) => ::SELECTOR, + Self::isPayable(_) => { + ::SELECTOR + } + Self::multiAttest(_) => { + ::SELECTOR + } + Self::multiRevoke(_) => { + ::SELECTOR + } + Self::revoke(_) => ::SELECTOR, + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn multiRevoke( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SchemaResolverCalls::multiRevoke) + } + multiRevoke + }, + { + fn multiAttest( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SchemaResolverCalls::multiAttest) + } + multiAttest + }, + { + fn isPayable( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(SchemaResolverCalls::isPayable) + } + isPayable + }, + { + fn revoke( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(SchemaResolverCalls::revoke) + } + revoke + }, + { + fn attest( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(SchemaResolverCalls::attest) + } + attest + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn multiRevoke( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SchemaResolverCalls::multiRevoke) + } + multiRevoke + }, + { + fn multiAttest( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SchemaResolverCalls::multiAttest) + } + multiAttest + }, + { + fn isPayable( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SchemaResolverCalls::isPayable) + } + isPayable + }, + { + fn revoke( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SchemaResolverCalls::revoke) + } + revoke + }, + { + fn attest( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SchemaResolverCalls::attest) + } + attest + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::attest(inner) => { + ::abi_encoded_size(inner) + } + Self::isPayable(inner) => { + ::abi_encoded_size(inner) + } + Self::multiAttest(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::multiRevoke(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::revoke(inner) => { + ::abi_encoded_size(inner) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::attest(inner) => { + ::abi_encode_raw(inner, out) + } + Self::isPayable(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::multiAttest(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::multiRevoke(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::revoke(inner) => { + ::abi_encode_raw(inner, out) + } + } + } + } + ///Container for all the [`SchemaResolver`](self) custom errors. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum SchemaResolverErrors { + #[allow(missing_docs)] + AccessDenied(AccessDenied), + #[allow(missing_docs)] + InsufficientValue(InsufficientValue), + #[allow(missing_docs)] + InvalidEAS(InvalidEAS), + #[allow(missing_docs)] + InvalidLength(InvalidLength), + #[allow(missing_docs)] + NotPayable(NotPayable), + } + impl SchemaResolverErrors { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [17u8, 1u8, 18u8, 148u8], + [21u8, 116u8, 249u8, 243u8], + [76u8, 168u8, 136u8, 103u8], + [131u8, 120u8, 15u8, 254u8], + [148u8, 125u8, 90u8, 132u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(InsufficientValue), + ::core::stringify!(NotPayable), + ::core::stringify!(AccessDenied), + ::core::stringify!(InvalidEAS), + ::core::stringify!(InvalidLength), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for SchemaResolverErrors { + const NAME: &'static str = "SchemaResolverErrors"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 5usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::AccessDenied(_) => { + ::SELECTOR + } + Self::InsufficientValue(_) => { + ::SELECTOR + } + Self::InvalidEAS(_) => { + ::SELECTOR + } + Self::InvalidLength(_) => { + ::SELECTOR + } + Self::NotPayable(_) => { + ::SELECTOR + } + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn InsufficientValue( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SchemaResolverErrors::InsufficientValue) + } + InsufficientValue + }, + { + fn NotPayable( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(SchemaResolverErrors::NotPayable) + } + NotPayable + }, + { + fn AccessDenied( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(SchemaResolverErrors::AccessDenied) + } + AccessDenied + }, + { + fn InvalidEAS( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(SchemaResolverErrors::InvalidEAS) + } + InvalidEAS + }, + { + fn InvalidLength( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SchemaResolverErrors::InvalidLength) + } + InvalidLength + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn InsufficientValue( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SchemaResolverErrors::InsufficientValue) + } + InsufficientValue + }, + { + fn NotPayable( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SchemaResolverErrors::NotPayable) + } + NotPayable + }, + { + fn AccessDenied( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SchemaResolverErrors::AccessDenied) + } + AccessDenied + }, + { + fn InvalidEAS( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SchemaResolverErrors::InvalidEAS) + } + InvalidEAS + }, + { + fn InvalidLength( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SchemaResolverErrors::InvalidLength) + } + InvalidLength + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::AccessDenied(inner) => { + ::abi_encoded_size(inner) + } + Self::InsufficientValue(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::InvalidEAS(inner) => { + ::abi_encoded_size(inner) + } + Self::InvalidLength(inner) => { + ::abi_encoded_size(inner) + } + Self::NotPayable(inner) => { + ::abi_encoded_size(inner) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::AccessDenied(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InsufficientValue(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidEAS(inner) => { + ::abi_encode_raw(inner, out) + } + Self::InvalidLength(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::NotPayable(inner) => { + ::abi_encode_raw(inner, out) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`SchemaResolver`](self) contract instance. + +See the [wrapper's documentation](`SchemaResolverInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> SchemaResolverInstance { + SchemaResolverInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + SchemaResolverInstance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + SchemaResolverInstance::::deploy_builder(__provider) + } + /**A [`SchemaResolver`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`SchemaResolver`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct SchemaResolverInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for SchemaResolverInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("SchemaResolverInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > SchemaResolverInstance { + /**Creates a new wrapper around an on-chain [`SchemaResolver`](self) contract instance. + +See the [wrapper's documentation](`SchemaResolverInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl SchemaResolverInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> SchemaResolverInstance { + SchemaResolverInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > SchemaResolverInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`attest`] function. + pub fn attest( + &self, + attestation: ::RustType, + ) -> alloy_contract::SolCallBuilder<&P, attestCall, N> { + self.call_builder(&attestCall { attestation }) + } + ///Creates a new call builder for the [`isPayable`] function. + pub fn isPayable(&self) -> alloy_contract::SolCallBuilder<&P, isPayableCall, N> { + self.call_builder(&isPayableCall) + } + ///Creates a new call builder for the [`multiAttest`] function. + pub fn multiAttest( + &self, + attestations: alloy::sol_types::private::Vec< + ::RustType, + >, + values: alloy::sol_types::private::Vec< + alloy::sol_types::private::primitives::aliases::U256, + >, + ) -> alloy_contract::SolCallBuilder<&P, multiAttestCall, N> { + self.call_builder( + &multiAttestCall { + attestations, + values, + }, + ) + } + ///Creates a new call builder for the [`multiRevoke`] function. + pub fn multiRevoke( + &self, + attestations: alloy::sol_types::private::Vec< + ::RustType, + >, + values: alloy::sol_types::private::Vec< + alloy::sol_types::private::primitives::aliases::U256, + >, + ) -> alloy_contract::SolCallBuilder<&P, multiRevokeCall, N> { + self.call_builder( + &multiRevokeCall { + attestations, + values, + }, + ) + } + ///Creates a new call builder for the [`revoke`] function. + pub fn revoke( + &self, + attestation: ::RustType, + ) -> alloy_contract::SolCallBuilder<&P, revokeCall, N> { + self.call_builder(&revokeCall { attestation }) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > SchemaResolverInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + } +} diff --git a/bindings/rust/src/secure_merkle_trie.rs b/bindings/rust/src/secure_merkle_trie.rs new file mode 100644 index 000000000..8a379bfcc --- /dev/null +++ b/bindings/rust/src/secure_merkle_trie.rs @@ -0,0 +1,215 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface SecureMerkleTrie {} +``` + +...which was generated by the following JSON ABI: +```json +[] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod SecureMerkleTrie { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`-`7`\x0B\x82\x82\x829\x80Q`\0\x1A`s\x14`*WcNH{q`\xE0\x1B`\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`\0\x80\xFD\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + 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`\0\x80\xFD\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`SecureMerkleTrie`](self) contract instance. + +See the [wrapper's documentation](`SecureMerkleTrieInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> SecureMerkleTrieInstance { + SecureMerkleTrieInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + SecureMerkleTrieInstance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + SecureMerkleTrieInstance::::deploy_builder(__provider) + } + /**A [`SecureMerkleTrie`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`SecureMerkleTrie`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct SecureMerkleTrieInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for SecureMerkleTrieInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("SecureMerkleTrieInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > SecureMerkleTrieInstance { + /**Creates a new wrapper around an on-chain [`SecureMerkleTrie`](self) contract instance. + +See the [wrapper's documentation](`SecureMerkleTrieInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl SecureMerkleTrieInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> SecureMerkleTrieInstance { + SecureMerkleTrieInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > SecureMerkleTrieInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > SecureMerkleTrieInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + } +} diff --git a/bindings/rust/src/semver_comp.rs b/bindings/rust/src/semver_comp.rs new file mode 100644 index 000000000..30f6f2026 --- /dev/null +++ b/bindings/rust/src/semver_comp.rs @@ -0,0 +1,449 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface SemverComp { + error SemverComp_InvalidSemverParts(); +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "error", + "name": "SemverComp_InvalidSemverParts", + "inputs": [] + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod SemverComp { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`-`7`\x0B\x82\x82\x829\x80Q`\0\x1A`s\x14`*WcNH{q`\xE0\x1B`\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`\0\x80\xFD\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + 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`\0\x80\xFD\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `SemverComp_InvalidSemverParts()` and selector `0x9eda858c`. +```solidity +error SemverComp_InvalidSemverParts(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct SemverComp_InvalidSemverParts; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: SemverComp_InvalidSemverParts) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for SemverComp_InvalidSemverParts { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for SemverComp_InvalidSemverParts { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "SemverComp_InvalidSemverParts()"; + const SELECTOR: [u8; 4] = [158u8, 218u8, 133u8, 140u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + ///Container for all the [`SemverComp`](self) custom errors. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum SemverCompErrors { + #[allow(missing_docs)] + SemverComp_InvalidSemverParts(SemverComp_InvalidSemverParts), + } + impl SemverCompErrors { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[[158u8, 218u8, 133u8, 140u8]]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(SemverComp_InvalidSemverParts), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for SemverCompErrors { + const NAME: &'static str = "SemverCompErrors"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 1usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::SemverComp_InvalidSemverParts(_) => { + ::SELECTOR + } + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn SemverComp_InvalidSemverParts( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SemverCompErrors::SemverComp_InvalidSemverParts) + } + SemverComp_InvalidSemverParts + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn SemverComp_InvalidSemverParts( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SemverCompErrors::SemverComp_InvalidSemverParts) + } + SemverComp_InvalidSemverParts + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::SemverComp_InvalidSemverParts(inner) => { + ::abi_encoded_size( + inner, + ) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::SemverComp_InvalidSemverParts(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`SemverComp`](self) contract instance. + +See the [wrapper's documentation](`SemverCompInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> SemverCompInstance { + SemverCompInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + SemverCompInstance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + SemverCompInstance::::deploy_builder(__provider) + } + /**A [`SemverComp`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`SemverComp`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct SemverCompInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for SemverCompInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("SemverCompInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > SemverCompInstance { + /**Creates a new wrapper around an on-chain [`SemverComp`](self) contract instance. + +See the [wrapper's documentation](`SemverCompInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl SemverCompInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> SemverCompInstance { + SemverCompInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > SemverCompInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > SemverCompInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + } +} diff --git a/bindings/rust/src/sequencer_fee_vault.rs b/bindings/rust/src/sequencer_fee_vault.rs new file mode 100644 index 000000000..164739623 --- /dev/null +++ b/bindings/rust/src/sequencer_fee_vault.rs @@ -0,0 +1,5121 @@ +///Module containing a contract's types and functions. +/** + +```solidity +library Types { + type WithdrawalNetwork is uint8; +} +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod Types { + use super::*; + use alloy::sol_types as alloy_sol_types; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct WithdrawalNetwork(u8); + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for u8 { + #[inline] + fn stv_to_tokens( + &self, + ) -> as alloy_sol_types::SolType>::Token<'_> { + alloy_sol_types::private::SolTypeValue::< + alloy::sol_types::sol_data::Uint<8>, + >::stv_to_tokens(self) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + as alloy_sol_types::SolType>::tokenize(self) + .0 + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::SolType>::abi_encode_packed_to(self, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + as alloy_sol_types::SolType>::abi_encoded_size(self) + } + } + impl WithdrawalNetwork { + /// The Solidity type name. + pub const NAME: &'static str = stringify!(@ name); + /// Convert from the underlying value type. + #[inline] + pub const fn from_underlying(value: u8) -> Self { + Self(value) + } + /// Return the underlying value. + #[inline] + pub const fn into_underlying(self) -> u8 { + self.0 + } + /// Return the single encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode(&self) -> alloy_sol_types::private::Vec { + ::abi_encode(&self.0) + } + /// Return the packed encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec { + ::abi_encode_packed(&self.0) + } + } + #[automatically_derived] + impl From for WithdrawalNetwork { + fn from(value: u8) -> Self { + Self::from_underlying(value) + } + } + #[automatically_derived] + impl From for u8 { + fn from(value: WithdrawalNetwork) -> Self { + value.into_underlying() + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for WithdrawalNetwork { + type RustType = u8; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = Self::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + Self::type_check(token).is_ok() + } + #[inline] + fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> { + as alloy_sol_types::SolType>::type_check(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + as alloy_sol_types::SolType>::detokenize(token) + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for WithdrawalNetwork { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + as alloy_sol_types::EventTopic>::topic_preimage_length(rust) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out) + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + as alloy_sol_types::EventTopic>::encode_topic(rust) + } + } + }; + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`Types`](self) contract instance. + +See the [wrapper's documentation](`TypesInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(address: alloy_sol_types::private::Address, __provider: P) -> TypesInstance { + TypesInstance::::new(address, __provider) + } + /**A [`Types`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`Types`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct TypesInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for TypesInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("TypesInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > TypesInstance { + /**Creates a new wrapper around an on-chain [`Types`](self) contract instance. + +See the [wrapper's documentation](`TypesInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl TypesInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> TypesInstance { + TypesInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > TypesInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > TypesInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + } +} +/** + +Generated by the following Solidity interface... +```solidity +library Types { + type WithdrawalNetwork is uint8; +} + +interface SequencerFeeVault { + error FeeVault_OnlyProxyAdminOwner(); + error InvalidInitialization(); + error NotInitializing(); + + event Initialized(uint64 version); + event MinWithdrawalAmountUpdated(uint256 oldWithdrawalAmount, uint256 newWithdrawalAmount); + event RecipientUpdated(address oldRecipient, address newRecipient); + event Withdrawal(uint256 value, address to, address from); + event Withdrawal(uint256 value, address to, address from, Types.WithdrawalNetwork withdrawalNetwork); + event WithdrawalNetworkUpdated(Types.WithdrawalNetwork oldWithdrawalNetwork, Types.WithdrawalNetwork newWithdrawalNetwork); + + receive() external payable; + + function MIN_WITHDRAWAL_AMOUNT() external view returns (uint256); + function RECIPIENT() external view returns (address); + function WITHDRAWAL_NETWORK() external view returns (Types.WithdrawalNetwork); + function initialize(address _recipient, uint256 _minWithdrawalAmount, Types.WithdrawalNetwork _withdrawalNetwork) external; + function l1FeeWallet() external view returns (address); + function minWithdrawalAmount() external view returns (uint256); + function recipient() external view returns (address); + function setMinWithdrawalAmount(uint256 _newMinWithdrawalAmount) external; + function setRecipient(address _newRecipient) external; + function setWithdrawalNetwork(Types.WithdrawalNetwork _newWithdrawalNetwork) external; + function totalProcessed() external view returns (uint256); + function version() external view returns (string memory); + function withdraw() external returns (uint256 value_); + function withdrawalNetwork() external view returns (Types.WithdrawalNetwork); +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "receive", + "stateMutability": "payable" + }, + { + "type": "function", + "name": "MIN_WITHDRAWAL_AMOUNT", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "RECIPIENT", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "WITHDRAWAL_NETWORK", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint8", + "internalType": "enum Types.WithdrawalNetwork" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "initialize", + "inputs": [ + { + "name": "_recipient", + "type": "address", + "internalType": "address" + }, + { + "name": "_minWithdrawalAmount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_withdrawalNetwork", + "type": "uint8", + "internalType": "enum Types.WithdrawalNetwork" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "l1FeeWallet", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "minWithdrawalAmount", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "recipient", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "setMinWithdrawalAmount", + "inputs": [ + { + "name": "_newMinWithdrawalAmount", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "setRecipient", + "inputs": [ + { + "name": "_newRecipient", + "type": "address", + "internalType": "address" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "setWithdrawalNetwork", + "inputs": [ + { + "name": "_newWithdrawalNetwork", + "type": "uint8", + "internalType": "enum Types.WithdrawalNetwork" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "totalProcessed", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "version", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "withdraw", + "inputs": [], + "outputs": [ + { + "name": "value_", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "withdrawalNetwork", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint8", + "internalType": "enum Types.WithdrawalNetwork" + } + ], + "stateMutability": "view" + }, + { + "type": "event", + "name": "Initialized", + "inputs": [ + { + "name": "version", + "type": "uint64", + "indexed": false, + "internalType": "uint64" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "MinWithdrawalAmountUpdated", + "inputs": [ + { + "name": "oldWithdrawalAmount", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + }, + { + "name": "newWithdrawalAmount", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "RecipientUpdated", + "inputs": [ + { + "name": "oldRecipient", + "type": "address", + "indexed": false, + "internalType": "address" + }, + { + "name": "newRecipient", + "type": "address", + "indexed": false, + "internalType": "address" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "Withdrawal", + "inputs": [ + { + "name": "value", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + }, + { + "name": "to", + "type": "address", + "indexed": false, + "internalType": "address" + }, + { + "name": "from", + "type": "address", + "indexed": false, + "internalType": "address" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "Withdrawal", + "inputs": [ + { + "name": "value", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + }, + { + "name": "to", + "type": "address", + "indexed": false, + "internalType": "address" + }, + { + "name": "from", + "type": "address", + "indexed": false, + "internalType": "address" + }, + { + "name": "withdrawalNetwork", + "type": "uint8", + "indexed": false, + "internalType": "enum Types.WithdrawalNetwork" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "WithdrawalNetworkUpdated", + "inputs": [ + { + "name": "oldWithdrawalNetwork", + "type": "uint8", + "indexed": false, + "internalType": "enum Types.WithdrawalNetwork" + }, + { + "name": "newWithdrawalNetwork", + "type": "uint8", + "indexed": false, + "internalType": "enum Types.WithdrawalNetwork" + } + ], + "anonymous": false + }, + { + "type": "error", + "name": "FeeVault_OnlyProxyAdminOwner", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidInitialization", + "inputs": [] + }, + { + "type": "error", + "name": "NotInitializing", + "inputs": [] + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod SequencerFeeVault { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x6080604052348015600e575f80fd5b5060156019565b60c9565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff161560685760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b039081161460c65780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b610e98806100d65f395ff3fe6080604052600436106100dc575f3560e01c80638312f1491161007c578063b49dc74111610057578063b49dc741146102a0578063d0e12f90146102bf578063d3e5792b146102ee578063d4ff9218146100e7575f80fd5b80638312f1491461025857806384411d651461026d57806385b5b14d14610281575f80fd5b80633ccfd60b116100b75780633ccfd60b1461017757806354fd4d501461019957806366d003ac146101ee57806382356d8a1461021a575f80fd5b80630d9019e1146100e7578063307f2962146101375780633bbed4a014610158575f80fd5b366100e357005b5f80fd5b3480156100f2575f80fd5b5060025473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b348015610142575f80fd5b50610156610151366004610c65565b610302565b005b348015610163575f80fd5b50610156610172366004610ca2565b610485565b348015610182575f80fd5b5061018b6105e9565b60405190815260200161012e565b3480156101a4575f80fd5b506101e16040518060400160405280600581526020017f312e362e3000000000000000000000000000000000000000000000000000000081525081565b60405161012e9190610cbd565b3480156101f9575f80fd5b5060025461010d9073ffffffffffffffffffffffffffffffffffffffff1681565b348015610225575f80fd5b5060025461024b9074010000000000000000000000000000000000000000900460ff1681565b60405161012e9190610d76565b348015610263575f80fd5b5061018b60015481565b348015610278575f80fd5b5061018b5f5481565b34801561028c575f80fd5b5061015661029b366004610d8a565b6108f7565b3480156102ab575f80fd5b506101566102ba366004610da1565b610a1a565b3480156102ca575f80fd5b5060025474010000000000000000000000000000000000000000900460ff1661024b565b3480156102f9575f80fd5b5060015461018b565b73420000000000000000000000000000000000001873ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561035f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103839190610ddc565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146103e7576040517f7cd7e09f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600280547401000000000000000000000000000000000000000080820460ff1692849290917fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff9091169083600181111561044357610443610d10565b02179055507ff2ec44eb1c3b3acd547b76333eb2c4b27eee311860c57a9fdb04c95f62398fc88183604051610479929190610df7565b60405180910390a15050565b73420000000000000000000000000000000000001873ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104e2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105069190610ddc565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461056a576040517f7cd7e09f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff000000000000000000000000000000000000000083168117909355604080519190921680825260208201939093527f62e69886a5df0ba8ffcacbfc1388754e7abd9bde24b036354c561f1acd4e45939101610479565b5f6001544710156106a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f4665655661756c743a207769746864726177616c20616d6f756e74206d75737460448201527f2062652067726561746572207468616e206d696e696d756d207769746864726160648201527f77616c20616d6f756e7400000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b479050805f808282546106ba9190610e12565b90915550506002546040805183815273ffffffffffffffffffffffffffffffffffffffff909216602083018190523383830152905190917fc8a211cc64b6ed1b50595a9fcb1932b6d1e5a6e8ef15b60e5b1f988ea9086bba919081900360600190a16002546040517f38e04cbeb8c10f8f568618aa75be0f10b6729b8b4237743b4de20cbcde2839ee9161076f9185918591339174010000000000000000000000000000000000000000900460ff1690610e4a565b60405180910390a1600160025474010000000000000000000000000000000000000000900460ff1660018111156107a8576107a8610d10565b0361084c575f6107b88284610c2e565b905080610847576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f4665655661756c743a206661696c656420746f2073656e642045544820746f2060448201527f4c322066656520726563697069656e7400000000000000000000000000000000606482015260840161069e565b505090565b6040517fc2b3e5ac00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8216600482015262061a806024820152606060448201525f60648201527342000000000000000000000000000000000000169063c2b3e5ac9084906084015f604051808303818588803b1580156108dc575f80fd5b505af11580156108ee573d5f803e3d5ffd5b50505050505090565b73420000000000000000000000000000000000001873ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610954573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109789190610ddc565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146109dc576040517f7cd7e09f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600180549082905560408051828152602081018490527f895a067c78583e800418fabf3da26a9496aab2ff3429cebdf7fefa642b2e42039101610479565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff165f81158015610a645750825b90505f8267ffffffffffffffff166001148015610a805750303b155b905081158015610a8e575080155b15610ac5576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001660011785558315610b265784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b6002805473ffffffffffffffffffffffffffffffffffffffff8a167fffffffffffffffffffffffff000000000000000000000000000000000000000082168117835560018a81558993927fffffffffffffffffffffff000000000000000000000000000000000000000000169091179074010000000000000000000000000000000000000000908490811115610bbe57610bbe610d10565b02179055508315610c245784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050565b5f610c3a835a84610c41565b9392505050565b5f805f805f858888f1949350505050565b803560028110610c60575f80fd5b919050565b5f60208284031215610c75575f80fd5b610c3a82610c52565b73ffffffffffffffffffffffffffffffffffffffff81168114610c9f575f80fd5b50565b5f60208284031215610cb2575f80fd5b8135610c3a81610c7e565b602081525f82518060208401528060208501604085015e5f6040828501015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011684010191505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b60028110610d72577f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b9052565b60208101610d848284610d3d565b92915050565b5f60208284031215610d9a575f80fd5b5035919050565b5f805f60608486031215610db3575f80fd5b8335610dbe81610c7e565b925060208401359150610dd360408501610c52565b90509250925092565b5f60208284031215610dec575f80fd5b8151610c3a81610c7e565b60408101610e058285610d3d565b610c3a6020830184610d3d565b80820180821115610d84577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b84815273ffffffffffffffffffffffffffffffffffffffff84811660208301528316604082015260808101610e826060830184610d3d565b9594505050505056fea164736f6c6343000819000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R4\x80\x15`\x0EW_\x80\xFD[P`\x15`\x19V[`\xC9V[\x7F\xF0\xC5~\x16\x84\r\xF0@\xF1P\x88\xDC/\x81\xFE9\x1C9#\xBE\xC7>#\xA9f.\xFC\x9C\"\x9Cj\0\x80Th\x01\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16\x15`hW`@Qc\xF9.\xE8\xA9`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[\x80T`\x01`\x01`@\x1B\x03\x90\x81\x16\x14`\xC6W\x80T`\x01`\x01`@\x1B\x03\x19\x16`\x01`\x01`@\x1B\x03\x90\x81\x17\x82U`@Q\x90\x81R\x7F\xC7\xF5\x05\xB2\xF3q\xAE!u\xEEI\x13\xF4I\x9E\x1F&3\xA7\xB5\x93c!\xEE\xD1\xCD\xAE\xB6\x11Q\x81\xD2\x90` \x01`@Q\x80\x91\x03\x90\xA1[PV[a\x0E\x98\x80a\0\xD6_9_\xF3\xFE`\x80`@R`\x046\x10a\0\xDCW_5`\xE0\x1C\x80c\x83\x12\xF1I\x11a\0|W\x80c\xB4\x9D\xC7A\x11a\0WW\x80c\xB4\x9D\xC7A\x14a\x02\xA0W\x80c\xD0\xE1/\x90\x14a\x02\xBFW\x80c\xD3\xE5y+\x14a\x02\xEEW\x80c\xD4\xFF\x92\x18\x14a\0\xE7W_\x80\xFD[\x80c\x83\x12\xF1I\x14a\x02XW\x80c\x84A\x1De\x14a\x02mW\x80c\x85\xB5\xB1M\x14a\x02\x81W_\x80\xFD[\x80c<\xCF\xD6\x0B\x11a\0\xB7W\x80c<\xCF\xD6\x0B\x14a\x01wW\x80cT\xFDMP\x14a\x01\x99W\x80cf\xD0\x03\xAC\x14a\x01\xEEW\x80c\x825m\x8A\x14a\x02\x1AW_\x80\xFD[\x80c\r\x90\x19\xE1\x14a\0\xE7W\x80c0\x7F)b\x14a\x017W\x80c;\xBE\xD4\xA0\x14a\x01XW_\x80\xFD[6a\0\xE3W\0[_\x80\xFD[4\x80\x15a\0\xF2W_\x80\xFD[P`\x02Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16[`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[4\x80\x15a\x01BW_\x80\xFD[Pa\x01Va\x01Q6`\x04a\x0CeV[a\x03\x02V[\0[4\x80\x15a\x01cW_\x80\xFD[Pa\x01Va\x01r6`\x04a\x0C\xA2V[a\x04\x85V[4\x80\x15a\x01\x82W_\x80\xFD[Pa\x01\x8Ba\x05\xE9V[`@Q\x90\x81R` \x01a\x01.V[4\x80\x15a\x01\xA4W_\x80\xFD[Pa\x01\xE1`@Q\x80`@\x01`@R\x80`\x05\x81R` \x01\x7F1.6.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\x81RP\x81V[`@Qa\x01.\x91\x90a\x0C\xBDV[4\x80\x15a\x01\xF9W_\x80\xFD[P`\x02Ta\x01\r\x90s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[4\x80\x15a\x02%W_\x80\xFD[P`\x02Ta\x02K\x90t\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16\x81V[`@Qa\x01.\x91\x90a\rvV[4\x80\x15a\x02cW_\x80\xFD[Pa\x01\x8B`\x01T\x81V[4\x80\x15a\x02xW_\x80\xFD[Pa\x01\x8B_T\x81V[4\x80\x15a\x02\x8CW_\x80\xFD[Pa\x01Va\x02\x9B6`\x04a\r\x8AV[a\x08\xF7V[4\x80\x15a\x02\xABW_\x80\xFD[Pa\x01Va\x02\xBA6`\x04a\r\xA1V[a\n\x1AV[4\x80\x15a\x02\xCAW_\x80\xFD[P`\x02Tt\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16a\x02KV[4\x80\x15a\x02\xF9W_\x80\xFD[P`\x01Ta\x01\x8BV[sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x18s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\x8D\xA5\xCB[`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x03_W=_\x80>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x03\x83\x91\x90a\r\xDCV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x163s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14a\x03\xE7W`@Q\x7F|\xD7\xE0\x9F\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\x01`@Q\x80\x91\x03\x90\xFD[`\x02\x80Tt\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x80\x82\x04`\xFF\x16\x92\x84\x92\x90\x91\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x90\x83`\x01\x81\x11\x15a\x04CWa\x04Ca\r\x10V[\x02\x17\x90UP\x7F\xF2\xECD\xEB\x1C;:\xCDT{v3>\xB2\xC4\xB2~\xEE1\x18`\xC5z\x9F\xDB\x04\xC9_b9\x8F\xC8\x81\x83`@Qa\x04y\x92\x91\x90a\r\xF7V[`@Q\x80\x91\x03\x90\xA1PPV[sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x18s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\x8D\xA5\xCB[`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x04\xE2W=_\x80>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x05\x06\x91\x90a\r\xDCV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x163s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14a\x05jW`@Q\x7F|\xD7\xE0\x9F\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\x01`@Q\x80\x91\x03\x90\xFD[`\x02\x80Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x81\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x83\x16\x81\x17\x90\x93U`@\x80Q\x91\x90\x92\x16\x80\x82R` \x82\x01\x93\x90\x93R\x7Fb\xE6\x98\x86\xA5\xDF\x0B\xA8\xFF\xCA\xCB\xFC\x13\x88uNz\xBD\x9B\xDE$\xB065LV\x1F\x1A\xCDNE\x93\x91\x01a\x04yV[_`\x01TG\x10\x15a\x06\xA7W`@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\x82\x01R`J`$\x82\x01R\x7FFeeVault: withdrawal amount must`D\x82\x01R\x7F be greater than minimum withdra`d\x82\x01R\x7Fwal amount\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x84\x82\x01R`\xA4\x01[`@Q\x80\x91\x03\x90\xFD[G\x90P\x80_\x80\x82\x82Ta\x06\xBA\x91\x90a\x0E\x12V[\x90\x91UPP`\x02T`@\x80Q\x83\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x92\x16` \x83\x01\x81\x90R3\x83\x83\x01R\x90Q\x90\x91\x7F\xC8\xA2\x11\xCCd\xB6\xED\x1BPYZ\x9F\xCB\x192\xB6\xD1\xE5\xA6\xE8\xEF\x15\xB6\x0E[\x1F\x98\x8E\xA9\x08k\xBA\x91\x90\x81\x90\x03``\x01\x90\xA1`\x02T`@Q\x7F8\xE0L\xBE\xB8\xC1\x0F\x8FV\x86\x18\xAAu\xBE\x0F\x10\xB6r\x9B\x8BB7t;M\xE2\x0C\xBC\xDE(9\xEE\x91a\x07o\x91\x85\x91\x85\x913\x91t\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16\x90a\x0EJV[`@Q\x80\x91\x03\x90\xA1`\x01`\x02Tt\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16`\x01\x81\x11\x15a\x07\xA8Wa\x07\xA8a\r\x10V[\x03a\x08LW_a\x07\xB8\x82\x84a\x0C.V[\x90P\x80a\x08GW`@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\x82\x01R`0`$\x82\x01R\x7FFeeVault: failed to send ETH to `D\x82\x01R\x7FL2 fee recipient\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x06\x9EV[PP\x90V[`@Q\x7F\xC2\xB3\xE5\xAC\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\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16`\x04\x82\x01Rb\x06\x1A\x80`$\x82\x01R```D\x82\x01R_`d\x82\x01RsB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x90c\xC2\xB3\xE5\xAC\x90\x84\x90`\x84\x01_`@Q\x80\x83\x03\x81\x85\x88\x80;\x15\x80\x15a\x08\xDCW_\x80\xFD[PZ\xF1\x15\x80\x15a\x08\xEEW=_\x80>=_\xFD[PPPPPP\x90V[sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x18s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\x8D\xA5\xCB[`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\tTW=_\x80>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\tx\x91\x90a\r\xDCV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x163s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14a\t\xDCW`@Q\x7F|\xD7\xE0\x9F\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01\x80T\x90\x82\x90U`@\x80Q\x82\x81R` \x81\x01\x84\x90R\x7F\x89Z\x06|xX>\x80\x04\x18\xFA\xBF=\xA2j\x94\x96\xAA\xB2\xFF4)\xCE\xBD\xF7\xFE\xFAd+.B\x03\x91\x01a\x04yV[\x7F\xF0\xC5~\x16\x84\r\xF0@\xF1P\x88\xDC/\x81\xFE9\x1C9#\xBE\xC7>#\xA9f.\xFC\x9C\"\x9Cj\0\x80Th\x01\0\0\0\0\0\0\0\0\x81\x04`\xFF\x16\x15\x90g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16_\x81\x15\x80\x15a\ndWP\x82[\x90P_\x82g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\x01\x14\x80\x15a\n\x80WP0;\x15[\x90P\x81\x15\x80\x15a\n\x8EWP\x80\x15[\x15a\n\xC5W`@Q\x7F\xF9.\xE8\xA9\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\x01`@Q\x80\x91\x03\x90\xFD[\x84T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\x16`\x01\x17\x85U\x83\x15a\x0B&W\x84T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16h\x01\0\0\0\0\0\0\0\0\x17\x85U[`\x02\x80Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x8A\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x82\x16\x81\x17\x83U`\x01\x8A\x81U\x89\x93\x92\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x90\x91\x17\x90t\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x84\x90\x81\x11\x15a\x0B\xBEWa\x0B\xBEa\r\x10V[\x02\x17\x90UP\x83\x15a\x0C$W\x84T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x85U`@Q`\x01\x81R\x7F\xC7\xF5\x05\xB2\xF3q\xAE!u\xEEI\x13\xF4I\x9E\x1F&3\xA7\xB5\x93c!\xEE\xD1\xCD\xAE\xB6\x11Q\x81\xD2\x90` \x01`@Q\x80\x91\x03\x90\xA1[PPPPPPPPV[_a\x0C:\x83Z\x84a\x0CAV[\x93\x92PPPV[_\x80_\x80_\x85\x88\x88\xF1\x94\x93PPPPV[\x805`\x02\x81\x10a\x0C`W_\x80\xFD[\x91\x90PV[_` \x82\x84\x03\x12\x15a\x0CuW_\x80\xFD[a\x0C:\x82a\x0CRV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x0C\x9FW_\x80\xFD[PV[_` \x82\x84\x03\x12\x15a\x0C\xB2W_\x80\xFD[\x815a\x0C:\x81a\x0C~V[` \x81R_\x82Q\x80` \x84\x01R\x80` \x85\x01`@\x85\x01^_`@\x82\x85\x01\x01R`@\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0`\x1F\x83\x01\x16\x84\x01\x01\x91PP\x92\x91PPV[\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_R`!`\x04R`$_\xFD[`\x02\x81\x10a\rrW\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_R`!`\x04R`$_\xFD[\x90RV[` \x81\x01a\r\x84\x82\x84a\r=V[\x92\x91PPV[_` \x82\x84\x03\x12\x15a\r\x9AW_\x80\xFD[P5\x91\x90PV[_\x80_``\x84\x86\x03\x12\x15a\r\xB3W_\x80\xFD[\x835a\r\xBE\x81a\x0C~V[\x92P` \x84\x015\x91Pa\r\xD3`@\x85\x01a\x0CRV[\x90P\x92P\x92P\x92V[_` \x82\x84\x03\x12\x15a\r\xECW_\x80\xFD[\x81Qa\x0C:\x81a\x0C~V[`@\x81\x01a\x0E\x05\x82\x85a\r=V[a\x0C:` \x83\x01\x84a\r=V[\x80\x82\x01\x80\x82\x11\x15a\r\x84W\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_R`\x11`\x04R`$_\xFD[\x84\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x81\x16` \x83\x01R\x83\x16`@\x82\x01R`\x80\x81\x01a\x0E\x82``\x83\x01\x84a\r=V[\x95\x94PPPPPV\xFE\xA1dsolcC\0\x08\x19\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x6080604052600436106100dc575f3560e01c80638312f1491161007c578063b49dc74111610057578063b49dc741146102a0578063d0e12f90146102bf578063d3e5792b146102ee578063d4ff9218146100e7575f80fd5b80638312f1491461025857806384411d651461026d57806385b5b14d14610281575f80fd5b80633ccfd60b116100b75780633ccfd60b1461017757806354fd4d501461019957806366d003ac146101ee57806382356d8a1461021a575f80fd5b80630d9019e1146100e7578063307f2962146101375780633bbed4a014610158575f80fd5b366100e357005b5f80fd5b3480156100f2575f80fd5b5060025473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b348015610142575f80fd5b50610156610151366004610c65565b610302565b005b348015610163575f80fd5b50610156610172366004610ca2565b610485565b348015610182575f80fd5b5061018b6105e9565b60405190815260200161012e565b3480156101a4575f80fd5b506101e16040518060400160405280600581526020017f312e362e3000000000000000000000000000000000000000000000000000000081525081565b60405161012e9190610cbd565b3480156101f9575f80fd5b5060025461010d9073ffffffffffffffffffffffffffffffffffffffff1681565b348015610225575f80fd5b5060025461024b9074010000000000000000000000000000000000000000900460ff1681565b60405161012e9190610d76565b348015610263575f80fd5b5061018b60015481565b348015610278575f80fd5b5061018b5f5481565b34801561028c575f80fd5b5061015661029b366004610d8a565b6108f7565b3480156102ab575f80fd5b506101566102ba366004610da1565b610a1a565b3480156102ca575f80fd5b5060025474010000000000000000000000000000000000000000900460ff1661024b565b3480156102f9575f80fd5b5060015461018b565b73420000000000000000000000000000000000001873ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561035f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103839190610ddc565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146103e7576040517f7cd7e09f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600280547401000000000000000000000000000000000000000080820460ff1692849290917fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff9091169083600181111561044357610443610d10565b02179055507ff2ec44eb1c3b3acd547b76333eb2c4b27eee311860c57a9fdb04c95f62398fc88183604051610479929190610df7565b60405180910390a15050565b73420000000000000000000000000000000000001873ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104e2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105069190610ddc565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461056a576040517f7cd7e09f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff000000000000000000000000000000000000000083168117909355604080519190921680825260208201939093527f62e69886a5df0ba8ffcacbfc1388754e7abd9bde24b036354c561f1acd4e45939101610479565b5f6001544710156106a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f4665655661756c743a207769746864726177616c20616d6f756e74206d75737460448201527f2062652067726561746572207468616e206d696e696d756d207769746864726160648201527f77616c20616d6f756e7400000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b479050805f808282546106ba9190610e12565b90915550506002546040805183815273ffffffffffffffffffffffffffffffffffffffff909216602083018190523383830152905190917fc8a211cc64b6ed1b50595a9fcb1932b6d1e5a6e8ef15b60e5b1f988ea9086bba919081900360600190a16002546040517f38e04cbeb8c10f8f568618aa75be0f10b6729b8b4237743b4de20cbcde2839ee9161076f9185918591339174010000000000000000000000000000000000000000900460ff1690610e4a565b60405180910390a1600160025474010000000000000000000000000000000000000000900460ff1660018111156107a8576107a8610d10565b0361084c575f6107b88284610c2e565b905080610847576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f4665655661756c743a206661696c656420746f2073656e642045544820746f2060448201527f4c322066656520726563697069656e7400000000000000000000000000000000606482015260840161069e565b505090565b6040517fc2b3e5ac00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8216600482015262061a806024820152606060448201525f60648201527342000000000000000000000000000000000000169063c2b3e5ac9084906084015f604051808303818588803b1580156108dc575f80fd5b505af11580156108ee573d5f803e3d5ffd5b50505050505090565b73420000000000000000000000000000000000001873ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610954573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109789190610ddc565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146109dc576040517f7cd7e09f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600180549082905560408051828152602081018490527f895a067c78583e800418fabf3da26a9496aab2ff3429cebdf7fefa642b2e42039101610479565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff165f81158015610a645750825b90505f8267ffffffffffffffff166001148015610a805750303b155b905081158015610a8e575080155b15610ac5576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001660011785558315610b265784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b6002805473ffffffffffffffffffffffffffffffffffffffff8a167fffffffffffffffffffffffff000000000000000000000000000000000000000082168117835560018a81558993927fffffffffffffffffffffff000000000000000000000000000000000000000000169091179074010000000000000000000000000000000000000000908490811115610bbe57610bbe610d10565b02179055508315610c245784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050565b5f610c3a835a84610c41565b9392505050565b5f805f805f858888f1949350505050565b803560028110610c60575f80fd5b919050565b5f60208284031215610c75575f80fd5b610c3a82610c52565b73ffffffffffffffffffffffffffffffffffffffff81168114610c9f575f80fd5b50565b5f60208284031215610cb2575f80fd5b8135610c3a81610c7e565b602081525f82518060208401528060208501604085015e5f6040828501015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011684010191505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b60028110610d72577f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b9052565b60208101610d848284610d3d565b92915050565b5f60208284031215610d9a575f80fd5b5035919050565b5f805f60608486031215610db3575f80fd5b8335610dbe81610c7e565b925060208401359150610dd360408501610c52565b90509250925092565b5f60208284031215610dec575f80fd5b8151610c3a81610c7e565b60408101610e058285610d3d565b610c3a6020830184610d3d565b80820180821115610d84577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b84815273ffffffffffffffffffffffffffffffffffffffff84811660208301528316604082015260808101610e826060830184610d3d565b9594505050505056fea164736f6c6343000819000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R`\x046\x10a\0\xDCW_5`\xE0\x1C\x80c\x83\x12\xF1I\x11a\0|W\x80c\xB4\x9D\xC7A\x11a\0WW\x80c\xB4\x9D\xC7A\x14a\x02\xA0W\x80c\xD0\xE1/\x90\x14a\x02\xBFW\x80c\xD3\xE5y+\x14a\x02\xEEW\x80c\xD4\xFF\x92\x18\x14a\0\xE7W_\x80\xFD[\x80c\x83\x12\xF1I\x14a\x02XW\x80c\x84A\x1De\x14a\x02mW\x80c\x85\xB5\xB1M\x14a\x02\x81W_\x80\xFD[\x80c<\xCF\xD6\x0B\x11a\0\xB7W\x80c<\xCF\xD6\x0B\x14a\x01wW\x80cT\xFDMP\x14a\x01\x99W\x80cf\xD0\x03\xAC\x14a\x01\xEEW\x80c\x825m\x8A\x14a\x02\x1AW_\x80\xFD[\x80c\r\x90\x19\xE1\x14a\0\xE7W\x80c0\x7F)b\x14a\x017W\x80c;\xBE\xD4\xA0\x14a\x01XW_\x80\xFD[6a\0\xE3W\0[_\x80\xFD[4\x80\x15a\0\xF2W_\x80\xFD[P`\x02Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16[`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[4\x80\x15a\x01BW_\x80\xFD[Pa\x01Va\x01Q6`\x04a\x0CeV[a\x03\x02V[\0[4\x80\x15a\x01cW_\x80\xFD[Pa\x01Va\x01r6`\x04a\x0C\xA2V[a\x04\x85V[4\x80\x15a\x01\x82W_\x80\xFD[Pa\x01\x8Ba\x05\xE9V[`@Q\x90\x81R` \x01a\x01.V[4\x80\x15a\x01\xA4W_\x80\xFD[Pa\x01\xE1`@Q\x80`@\x01`@R\x80`\x05\x81R` \x01\x7F1.6.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\x81RP\x81V[`@Qa\x01.\x91\x90a\x0C\xBDV[4\x80\x15a\x01\xF9W_\x80\xFD[P`\x02Ta\x01\r\x90s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[4\x80\x15a\x02%W_\x80\xFD[P`\x02Ta\x02K\x90t\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16\x81V[`@Qa\x01.\x91\x90a\rvV[4\x80\x15a\x02cW_\x80\xFD[Pa\x01\x8B`\x01T\x81V[4\x80\x15a\x02xW_\x80\xFD[Pa\x01\x8B_T\x81V[4\x80\x15a\x02\x8CW_\x80\xFD[Pa\x01Va\x02\x9B6`\x04a\r\x8AV[a\x08\xF7V[4\x80\x15a\x02\xABW_\x80\xFD[Pa\x01Va\x02\xBA6`\x04a\r\xA1V[a\n\x1AV[4\x80\x15a\x02\xCAW_\x80\xFD[P`\x02Tt\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16a\x02KV[4\x80\x15a\x02\xF9W_\x80\xFD[P`\x01Ta\x01\x8BV[sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x18s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\x8D\xA5\xCB[`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x03_W=_\x80>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x03\x83\x91\x90a\r\xDCV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x163s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14a\x03\xE7W`@Q\x7F|\xD7\xE0\x9F\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\x01`@Q\x80\x91\x03\x90\xFD[`\x02\x80Tt\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x80\x82\x04`\xFF\x16\x92\x84\x92\x90\x91\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x90\x83`\x01\x81\x11\x15a\x04CWa\x04Ca\r\x10V[\x02\x17\x90UP\x7F\xF2\xECD\xEB\x1C;:\xCDT{v3>\xB2\xC4\xB2~\xEE1\x18`\xC5z\x9F\xDB\x04\xC9_b9\x8F\xC8\x81\x83`@Qa\x04y\x92\x91\x90a\r\xF7V[`@Q\x80\x91\x03\x90\xA1PPV[sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x18s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\x8D\xA5\xCB[`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x04\xE2W=_\x80>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x05\x06\x91\x90a\r\xDCV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x163s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14a\x05jW`@Q\x7F|\xD7\xE0\x9F\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\x01`@Q\x80\x91\x03\x90\xFD[`\x02\x80Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x81\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x83\x16\x81\x17\x90\x93U`@\x80Q\x91\x90\x92\x16\x80\x82R` \x82\x01\x93\x90\x93R\x7Fb\xE6\x98\x86\xA5\xDF\x0B\xA8\xFF\xCA\xCB\xFC\x13\x88uNz\xBD\x9B\xDE$\xB065LV\x1F\x1A\xCDNE\x93\x91\x01a\x04yV[_`\x01TG\x10\x15a\x06\xA7W`@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\x82\x01R`J`$\x82\x01R\x7FFeeVault: withdrawal amount must`D\x82\x01R\x7F be greater than minimum withdra`d\x82\x01R\x7Fwal amount\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x84\x82\x01R`\xA4\x01[`@Q\x80\x91\x03\x90\xFD[G\x90P\x80_\x80\x82\x82Ta\x06\xBA\x91\x90a\x0E\x12V[\x90\x91UPP`\x02T`@\x80Q\x83\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x92\x16` \x83\x01\x81\x90R3\x83\x83\x01R\x90Q\x90\x91\x7F\xC8\xA2\x11\xCCd\xB6\xED\x1BPYZ\x9F\xCB\x192\xB6\xD1\xE5\xA6\xE8\xEF\x15\xB6\x0E[\x1F\x98\x8E\xA9\x08k\xBA\x91\x90\x81\x90\x03``\x01\x90\xA1`\x02T`@Q\x7F8\xE0L\xBE\xB8\xC1\x0F\x8FV\x86\x18\xAAu\xBE\x0F\x10\xB6r\x9B\x8BB7t;M\xE2\x0C\xBC\xDE(9\xEE\x91a\x07o\x91\x85\x91\x85\x913\x91t\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16\x90a\x0EJV[`@Q\x80\x91\x03\x90\xA1`\x01`\x02Tt\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16`\x01\x81\x11\x15a\x07\xA8Wa\x07\xA8a\r\x10V[\x03a\x08LW_a\x07\xB8\x82\x84a\x0C.V[\x90P\x80a\x08GW`@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\x82\x01R`0`$\x82\x01R\x7FFeeVault: failed to send ETH to `D\x82\x01R\x7FL2 fee recipient\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x06\x9EV[PP\x90V[`@Q\x7F\xC2\xB3\xE5\xAC\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\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16`\x04\x82\x01Rb\x06\x1A\x80`$\x82\x01R```D\x82\x01R_`d\x82\x01RsB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x90c\xC2\xB3\xE5\xAC\x90\x84\x90`\x84\x01_`@Q\x80\x83\x03\x81\x85\x88\x80;\x15\x80\x15a\x08\xDCW_\x80\xFD[PZ\xF1\x15\x80\x15a\x08\xEEW=_\x80>=_\xFD[PPPPPP\x90V[sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x18s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\x8D\xA5\xCB[`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\tTW=_\x80>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\tx\x91\x90a\r\xDCV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x163s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14a\t\xDCW`@Q\x7F|\xD7\xE0\x9F\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01\x80T\x90\x82\x90U`@\x80Q\x82\x81R` \x81\x01\x84\x90R\x7F\x89Z\x06|xX>\x80\x04\x18\xFA\xBF=\xA2j\x94\x96\xAA\xB2\xFF4)\xCE\xBD\xF7\xFE\xFAd+.B\x03\x91\x01a\x04yV[\x7F\xF0\xC5~\x16\x84\r\xF0@\xF1P\x88\xDC/\x81\xFE9\x1C9#\xBE\xC7>#\xA9f.\xFC\x9C\"\x9Cj\0\x80Th\x01\0\0\0\0\0\0\0\0\x81\x04`\xFF\x16\x15\x90g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16_\x81\x15\x80\x15a\ndWP\x82[\x90P_\x82g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\x01\x14\x80\x15a\n\x80WP0;\x15[\x90P\x81\x15\x80\x15a\n\x8EWP\x80\x15[\x15a\n\xC5W`@Q\x7F\xF9.\xE8\xA9\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\x01`@Q\x80\x91\x03\x90\xFD[\x84T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\x16`\x01\x17\x85U\x83\x15a\x0B&W\x84T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16h\x01\0\0\0\0\0\0\0\0\x17\x85U[`\x02\x80Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x8A\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x82\x16\x81\x17\x83U`\x01\x8A\x81U\x89\x93\x92\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x90\x91\x17\x90t\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x84\x90\x81\x11\x15a\x0B\xBEWa\x0B\xBEa\r\x10V[\x02\x17\x90UP\x83\x15a\x0C$W\x84T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x85U`@Q`\x01\x81R\x7F\xC7\xF5\x05\xB2\xF3q\xAE!u\xEEI\x13\xF4I\x9E\x1F&3\xA7\xB5\x93c!\xEE\xD1\xCD\xAE\xB6\x11Q\x81\xD2\x90` \x01`@Q\x80\x91\x03\x90\xA1[PPPPPPPPV[_a\x0C:\x83Z\x84a\x0CAV[\x93\x92PPPV[_\x80_\x80_\x85\x88\x88\xF1\x94\x93PPPPV[\x805`\x02\x81\x10a\x0C`W_\x80\xFD[\x91\x90PV[_` \x82\x84\x03\x12\x15a\x0CuW_\x80\xFD[a\x0C:\x82a\x0CRV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x0C\x9FW_\x80\xFD[PV[_` \x82\x84\x03\x12\x15a\x0C\xB2W_\x80\xFD[\x815a\x0C:\x81a\x0C~V[` \x81R_\x82Q\x80` \x84\x01R\x80` \x85\x01`@\x85\x01^_`@\x82\x85\x01\x01R`@\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0`\x1F\x83\x01\x16\x84\x01\x01\x91PP\x92\x91PPV[\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_R`!`\x04R`$_\xFD[`\x02\x81\x10a\rrW\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_R`!`\x04R`$_\xFD[\x90RV[` \x81\x01a\r\x84\x82\x84a\r=V[\x92\x91PPV[_` \x82\x84\x03\x12\x15a\r\x9AW_\x80\xFD[P5\x91\x90PV[_\x80_``\x84\x86\x03\x12\x15a\r\xB3W_\x80\xFD[\x835a\r\xBE\x81a\x0C~V[\x92P` \x84\x015\x91Pa\r\xD3`@\x85\x01a\x0CRV[\x90P\x92P\x92P\x92V[_` \x82\x84\x03\x12\x15a\r\xECW_\x80\xFD[\x81Qa\x0C:\x81a\x0C~V[`@\x81\x01a\x0E\x05\x82\x85a\r=V[a\x0C:` \x83\x01\x84a\r=V[\x80\x82\x01\x80\x82\x11\x15a\r\x84W\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_R`\x11`\x04R`$_\xFD[\x84\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x81\x16` \x83\x01R\x83\x16`@\x82\x01R`\x80\x81\x01a\x0E\x82``\x83\x01\x84a\r=V[\x95\x94PPPPPV\xFE\xA1dsolcC\0\x08\x19\0\n", + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `FeeVault_OnlyProxyAdminOwner()` and selector `0x7cd7e09f`. +```solidity +error FeeVault_OnlyProxyAdminOwner(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct FeeVault_OnlyProxyAdminOwner; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: FeeVault_OnlyProxyAdminOwner) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for FeeVault_OnlyProxyAdminOwner { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for FeeVault_OnlyProxyAdminOwner { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "FeeVault_OnlyProxyAdminOwner()"; + const SELECTOR: [u8; 4] = [124u8, 215u8, 224u8, 159u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidInitialization()` and selector `0xf92ee8a9`. +```solidity +error InvalidInitialization(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidInitialization; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InvalidInitialization) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InvalidInitialization { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidInitialization { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidInitialization()"; + const SELECTOR: [u8; 4] = [249u8, 46u8, 232u8, 169u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `NotInitializing()` and selector `0xd7e6bcf8`. +```solidity +error NotInitializing(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct NotInitializing; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: NotInitializing) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for NotInitializing { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for NotInitializing { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "NotInitializing()"; + const SELECTOR: [u8; 4] = [215u8, 230u8, 188u8, 248u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `Initialized(uint64)` and selector `0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2`. +```solidity +event Initialized(uint64 version); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct Initialized { + #[allow(missing_docs)] + pub version: u64, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for Initialized { + type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,); + const SIGNATURE: &'static str = "Initialized(uint64)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 199u8, 245u8, 5u8, 178u8, 243u8, 113u8, 174u8, 33u8, 117u8, 238u8, 73u8, + 19u8, 244u8, 73u8, 158u8, 31u8, 38u8, 51u8, 167u8, 181u8, 147u8, 99u8, + 33u8, 238u8, 209u8, 205u8, 174u8, 182u8, 17u8, 81u8, 129u8, 210u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { version: data.0 } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.version), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(),) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for Initialized { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&Initialized> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &Initialized) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `MinWithdrawalAmountUpdated(uint256,uint256)` and selector `0x895a067c78583e800418fabf3da26a9496aab2ff3429cebdf7fefa642b2e4203`. +```solidity +event MinWithdrawalAmountUpdated(uint256 oldWithdrawalAmount, uint256 newWithdrawalAmount); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct MinWithdrawalAmountUpdated { + #[allow(missing_docs)] + pub oldWithdrawalAmount: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub newWithdrawalAmount: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for MinWithdrawalAmountUpdated { + type DataTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + ); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,); + const SIGNATURE: &'static str = "MinWithdrawalAmountUpdated(uint256,uint256)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 137u8, 90u8, 6u8, 124u8, 120u8, 88u8, 62u8, 128u8, 4u8, 24u8, 250u8, + 191u8, 61u8, 162u8, 106u8, 148u8, 150u8, 170u8, 178u8, 255u8, 52u8, 41u8, + 206u8, 189u8, 247u8, 254u8, 250u8, 100u8, 43u8, 46u8, 66u8, 3u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + oldWithdrawalAmount: data.0, + newWithdrawalAmount: data.1, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.oldWithdrawalAmount), + as alloy_sol_types::SolType>::tokenize(&self.newWithdrawalAmount), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(),) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for MinWithdrawalAmountUpdated { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&MinWithdrawalAmountUpdated> for alloy_sol_types::private::LogData { + #[inline] + fn from( + this: &MinWithdrawalAmountUpdated, + ) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `RecipientUpdated(address,address)` and selector `0x62e69886a5df0ba8ffcacbfc1388754e7abd9bde24b036354c561f1acd4e4593`. +```solidity +event RecipientUpdated(address oldRecipient, address newRecipient); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct RecipientUpdated { + #[allow(missing_docs)] + pub oldRecipient: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub newRecipient: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for RecipientUpdated { + type DataTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,); + const SIGNATURE: &'static str = "RecipientUpdated(address,address)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 98u8, 230u8, 152u8, 134u8, 165u8, 223u8, 11u8, 168u8, 255u8, 202u8, + 203u8, 252u8, 19u8, 136u8, 117u8, 78u8, 122u8, 189u8, 155u8, 222u8, 36u8, + 176u8, 54u8, 53u8, 76u8, 86u8, 31u8, 26u8, 205u8, 78u8, 69u8, 147u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + oldRecipient: data.0, + newRecipient: data.1, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + ::tokenize( + &self.oldRecipient, + ), + ::tokenize( + &self.newRecipient, + ), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(),) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for RecipientUpdated { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&RecipientUpdated> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &RecipientUpdated) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `Withdrawal(uint256,address,address)` and selector `0xc8a211cc64b6ed1b50595a9fcb1932b6d1e5a6e8ef15b60e5b1f988ea9086bba`. +```solidity +event Withdrawal(uint256 value, address to, address from); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct Withdrawal_0 { + #[allow(missing_docs)] + pub value: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub from: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for Withdrawal_0 { + type DataTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,); + const SIGNATURE: &'static str = "Withdrawal(uint256,address,address)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 200u8, 162u8, 17u8, 204u8, 100u8, 182u8, 237u8, 27u8, 80u8, 89u8, 90u8, + 159u8, 203u8, 25u8, 50u8, 182u8, 209u8, 229u8, 166u8, 232u8, 239u8, 21u8, + 182u8, 14u8, 91u8, 31u8, 152u8, 142u8, 169u8, 8u8, 107u8, 186u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + value: data.0, + to: data.1, + from: data.2, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.value), + ::tokenize( + &self.to, + ), + ::tokenize( + &self.from, + ), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(),) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for Withdrawal_0 { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&Withdrawal_0> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &Withdrawal_0) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `Withdrawal(uint256,address,address,uint8)` and selector `0x38e04cbeb8c10f8f568618aa75be0f10b6729b8b4237743b4de20cbcde2839ee`. +```solidity +event Withdrawal(uint256 value, address to, address from, Types.WithdrawalNetwork withdrawalNetwork); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct Withdrawal_1 { + #[allow(missing_docs)] + pub value: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub from: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub withdrawalNetwork: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for Withdrawal_1 { + type DataTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + Types::WithdrawalNetwork, + ); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,); + const SIGNATURE: &'static str = "Withdrawal(uint256,address,address,uint8)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 56u8, 224u8, 76u8, 190u8, 184u8, 193u8, 15u8, 143u8, 86u8, 134u8, 24u8, + 170u8, 117u8, 190u8, 15u8, 16u8, 182u8, 114u8, 155u8, 139u8, 66u8, 55u8, + 116u8, 59u8, 77u8, 226u8, 12u8, 188u8, 222u8, 40u8, 57u8, 238u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + value: data.0, + to: data.1, + from: data.2, + withdrawalNetwork: data.3, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.value), + ::tokenize( + &self.to, + ), + ::tokenize( + &self.from, + ), + ::tokenize( + &self.withdrawalNetwork, + ), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(),) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for Withdrawal_1 { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&Withdrawal_1> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &Withdrawal_1) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `WithdrawalNetworkUpdated(uint8,uint8)` and selector `0xf2ec44eb1c3b3acd547b76333eb2c4b27eee311860c57a9fdb04c95f62398fc8`. +```solidity +event WithdrawalNetworkUpdated(Types.WithdrawalNetwork oldWithdrawalNetwork, Types.WithdrawalNetwork newWithdrawalNetwork); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct WithdrawalNetworkUpdated { + #[allow(missing_docs)] + pub oldWithdrawalNetwork: ::RustType, + #[allow(missing_docs)] + pub newWithdrawalNetwork: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for WithdrawalNetworkUpdated { + type DataTuple<'a> = (Types::WithdrawalNetwork, Types::WithdrawalNetwork); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,); + const SIGNATURE: &'static str = "WithdrawalNetworkUpdated(uint8,uint8)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 242u8, 236u8, 68u8, 235u8, 28u8, 59u8, 58u8, 205u8, 84u8, 123u8, 118u8, + 51u8, 62u8, 178u8, 196u8, 178u8, 126u8, 238u8, 49u8, 24u8, 96u8, 197u8, + 122u8, 159u8, 219u8, 4u8, 201u8, 95u8, 98u8, 57u8, 143u8, 200u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + oldWithdrawalNetwork: data.0, + newWithdrawalNetwork: data.1, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + ::tokenize( + &self.oldWithdrawalNetwork, + ), + ::tokenize( + &self.newWithdrawalNetwork, + ), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(),) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for WithdrawalNetworkUpdated { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&WithdrawalNetworkUpdated> for alloy_sol_types::private::LogData { + #[inline] + fn from( + this: &WithdrawalNetworkUpdated, + ) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `MIN_WITHDRAWAL_AMOUNT()` and selector `0xd3e5792b`. +```solidity +function MIN_WITHDRAWAL_AMOUNT() external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct MIN_WITHDRAWAL_AMOUNTCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`MIN_WITHDRAWAL_AMOUNT()`](MIN_WITHDRAWAL_AMOUNTCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct MIN_WITHDRAWAL_AMOUNTReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: MIN_WITHDRAWAL_AMOUNTCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for MIN_WITHDRAWAL_AMOUNTCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: MIN_WITHDRAWAL_AMOUNTReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for MIN_WITHDRAWAL_AMOUNTReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for MIN_WITHDRAWAL_AMOUNTCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "MIN_WITHDRAWAL_AMOUNT()"; + const SELECTOR: [u8; 4] = [211u8, 229u8, 121u8, 43u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: MIN_WITHDRAWAL_AMOUNTReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: MIN_WITHDRAWAL_AMOUNTReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `RECIPIENT()` and selector `0x0d9019e1`. +```solidity +function RECIPIENT() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct RECIPIENTCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`RECIPIENT()`](RECIPIENTCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct RECIPIENTReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: RECIPIENTCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for RECIPIENTCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: RECIPIENTReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for RECIPIENTReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for RECIPIENTCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "RECIPIENT()"; + const SELECTOR: [u8; 4] = [13u8, 144u8, 25u8, 225u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: RECIPIENTReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: RECIPIENTReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `WITHDRAWAL_NETWORK()` and selector `0xd0e12f90`. +```solidity +function WITHDRAWAL_NETWORK() external view returns (Types.WithdrawalNetwork); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct WITHDRAWAL_NETWORKCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`WITHDRAWAL_NETWORK()`](WITHDRAWAL_NETWORKCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct WITHDRAWAL_NETWORKReturn { + #[allow(missing_docs)] + pub _0: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: WITHDRAWAL_NETWORKCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for WITHDRAWAL_NETWORKCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Types::WithdrawalNetwork,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: WITHDRAWAL_NETWORKReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for WITHDRAWAL_NETWORKReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for WITHDRAWAL_NETWORKCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (Types::WithdrawalNetwork,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "WITHDRAWAL_NETWORK()"; + const SELECTOR: [u8; 4] = [208u8, 225u8, 47u8, 144u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: WITHDRAWAL_NETWORKReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: WITHDRAWAL_NETWORKReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `initialize(address,uint256,uint8)` and selector `0xb49dc741`. +```solidity +function initialize(address _recipient, uint256 _minWithdrawalAmount, Types.WithdrawalNetwork _withdrawalNetwork) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct initializeCall { + #[allow(missing_docs)] + pub _recipient: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _minWithdrawalAmount: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _withdrawalNetwork: ::RustType, + } + ///Container type for the return parameters of the [`initialize(address,uint256,uint8)`](initializeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct initializeReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + Types::WithdrawalNetwork, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: initializeCall) -> Self { + ( + value._recipient, + value._minWithdrawalAmount, + value._withdrawalNetwork, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for initializeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _recipient: tuple.0, + _minWithdrawalAmount: tuple.1, + _withdrawalNetwork: tuple.2, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: initializeReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for initializeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl initializeReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for initializeCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + Types::WithdrawalNetwork, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = initializeReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "initialize(address,uint256,uint8)"; + const SELECTOR: [u8; 4] = [180u8, 157u8, 199u8, 65u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._recipient, + ), + as alloy_sol_types::SolType>::tokenize(&self._minWithdrawalAmount), + ::tokenize( + &self._withdrawalNetwork, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + initializeReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `l1FeeWallet()` and selector `0xd4ff9218`. +```solidity +function l1FeeWallet() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct l1FeeWalletCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`l1FeeWallet()`](l1FeeWalletCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct l1FeeWalletReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: l1FeeWalletCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for l1FeeWalletCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: l1FeeWalletReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for l1FeeWalletReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for l1FeeWalletCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "l1FeeWallet()"; + const SELECTOR: [u8; 4] = [212u8, 255u8, 146u8, 24u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: l1FeeWalletReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: l1FeeWalletReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `minWithdrawalAmount()` and selector `0x8312f149`. +```solidity +function minWithdrawalAmount() external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct minWithdrawalAmountCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`minWithdrawalAmount()`](minWithdrawalAmountCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct minWithdrawalAmountReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: minWithdrawalAmountCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for minWithdrawalAmountCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: minWithdrawalAmountReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for minWithdrawalAmountReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for minWithdrawalAmountCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "minWithdrawalAmount()"; + const SELECTOR: [u8; 4] = [131u8, 18u8, 241u8, 73u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: minWithdrawalAmountReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: minWithdrawalAmountReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `recipient()` and selector `0x66d003ac`. +```solidity +function recipient() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct recipientCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`recipient()`](recipientCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct recipientReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: recipientCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for recipientCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: recipientReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for recipientReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for recipientCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "recipient()"; + const SELECTOR: [u8; 4] = [102u8, 208u8, 3u8, 172u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: recipientReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: recipientReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `setMinWithdrawalAmount(uint256)` and selector `0x85b5b14d`. +```solidity +function setMinWithdrawalAmount(uint256 _newMinWithdrawalAmount) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setMinWithdrawalAmountCall { + #[allow(missing_docs)] + pub _newMinWithdrawalAmount: alloy::sol_types::private::primitives::aliases::U256, + } + ///Container type for the return parameters of the [`setMinWithdrawalAmount(uint256)`](setMinWithdrawalAmountCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setMinWithdrawalAmountReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: setMinWithdrawalAmountCall) -> Self { + (value._newMinWithdrawalAmount,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for setMinWithdrawalAmountCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _newMinWithdrawalAmount: tuple.0, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: setMinWithdrawalAmountReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for setMinWithdrawalAmountReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl setMinWithdrawalAmountReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken< + '_, + > { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for setMinWithdrawalAmountCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = setMinWithdrawalAmountReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "setMinWithdrawalAmount(uint256)"; + const SELECTOR: [u8; 4] = [133u8, 181u8, 177u8, 77u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize( + &self._newMinWithdrawalAmount, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + setMinWithdrawalAmountReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `setRecipient(address)` and selector `0x3bbed4a0`. +```solidity +function setRecipient(address _newRecipient) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setRecipientCall { + #[allow(missing_docs)] + pub _newRecipient: alloy::sol_types::private::Address, + } + ///Container type for the return parameters of the [`setRecipient(address)`](setRecipientCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setRecipientReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: setRecipientCall) -> Self { + (value._newRecipient,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for setRecipientCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _newRecipient: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: setRecipientReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for setRecipientReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl setRecipientReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for setRecipientCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = setRecipientReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "setRecipient(address)"; + const SELECTOR: [u8; 4] = [59u8, 190u8, 212u8, 160u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._newRecipient, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + setRecipientReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `setWithdrawalNetwork(uint8)` and selector `0x307f2962`. +```solidity +function setWithdrawalNetwork(Types.WithdrawalNetwork _newWithdrawalNetwork) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setWithdrawalNetworkCall { + #[allow(missing_docs)] + pub _newWithdrawalNetwork: ::RustType, + } + ///Container type for the return parameters of the [`setWithdrawalNetwork(uint8)`](setWithdrawalNetworkCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setWithdrawalNetworkReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Types::WithdrawalNetwork,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: setWithdrawalNetworkCall) -> Self { + (value._newWithdrawalNetwork,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for setWithdrawalNetworkCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _newWithdrawalNetwork: tuple.0, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: setWithdrawalNetworkReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for setWithdrawalNetworkReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl setWithdrawalNetworkReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken< + '_, + > { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for setWithdrawalNetworkCall { + type Parameters<'a> = (Types::WithdrawalNetwork,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = setWithdrawalNetworkReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "setWithdrawalNetwork(uint8)"; + const SELECTOR: [u8; 4] = [48u8, 127u8, 41u8, 98u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._newWithdrawalNetwork, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + setWithdrawalNetworkReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `totalProcessed()` and selector `0x84411d65`. +```solidity +function totalProcessed() external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct totalProcessedCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`totalProcessed()`](totalProcessedCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct totalProcessedReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: totalProcessedCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for totalProcessedCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: totalProcessedReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for totalProcessedReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for totalProcessedCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "totalProcessed()"; + const SELECTOR: [u8; 4] = [132u8, 65u8, 29u8, 101u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: totalProcessedReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: totalProcessedReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `version()` and selector `0x54fd4d50`. +```solidity +function version() external view returns (string memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`version()`](versionCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for versionCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::String; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "version()"; + const SELECTOR: [u8; 4] = [84u8, 253u8, 77u8, 80u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `withdraw()` and selector `0x3ccfd60b`. +```solidity +function withdraw() external returns (uint256 value_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct withdrawCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`withdraw()`](withdrawCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct withdrawReturn { + #[allow(missing_docs)] + pub value_: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: withdrawCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for withdrawCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: withdrawReturn) -> Self { + (value.value_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for withdrawReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { value_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for withdrawCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "withdraw()"; + const SELECTOR: [u8; 4] = [60u8, 207u8, 214u8, 11u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: withdrawReturn = r.into(); + r.value_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: withdrawReturn = r.into(); + r.value_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `withdrawalNetwork()` and selector `0x82356d8a`. +```solidity +function withdrawalNetwork() external view returns (Types.WithdrawalNetwork); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct withdrawalNetworkCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`withdrawalNetwork()`](withdrawalNetworkCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct withdrawalNetworkReturn { + #[allow(missing_docs)] + pub _0: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: withdrawalNetworkCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for withdrawalNetworkCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Types::WithdrawalNetwork,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: withdrawalNetworkReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for withdrawalNetworkReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for withdrawalNetworkCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (Types::WithdrawalNetwork,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "withdrawalNetwork()"; + const SELECTOR: [u8; 4] = [130u8, 53u8, 109u8, 138u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: withdrawalNetworkReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: withdrawalNetworkReturn = r.into(); + r._0 + }) + } + } + }; + ///Container for all the [`SequencerFeeVault`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum SequencerFeeVaultCalls { + #[allow(missing_docs)] + MIN_WITHDRAWAL_AMOUNT(MIN_WITHDRAWAL_AMOUNTCall), + #[allow(missing_docs)] + RECIPIENT(RECIPIENTCall), + #[allow(missing_docs)] + WITHDRAWAL_NETWORK(WITHDRAWAL_NETWORKCall), + #[allow(missing_docs)] + initialize(initializeCall), + #[allow(missing_docs)] + l1FeeWallet(l1FeeWalletCall), + #[allow(missing_docs)] + minWithdrawalAmount(minWithdrawalAmountCall), + #[allow(missing_docs)] + recipient(recipientCall), + #[allow(missing_docs)] + setMinWithdrawalAmount(setMinWithdrawalAmountCall), + #[allow(missing_docs)] + setRecipient(setRecipientCall), + #[allow(missing_docs)] + setWithdrawalNetwork(setWithdrawalNetworkCall), + #[allow(missing_docs)] + totalProcessed(totalProcessedCall), + #[allow(missing_docs)] + version(versionCall), + #[allow(missing_docs)] + withdraw(withdrawCall), + #[allow(missing_docs)] + withdrawalNetwork(withdrawalNetworkCall), + } + impl SequencerFeeVaultCalls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [13u8, 144u8, 25u8, 225u8], + [48u8, 127u8, 41u8, 98u8], + [59u8, 190u8, 212u8, 160u8], + [60u8, 207u8, 214u8, 11u8], + [84u8, 253u8, 77u8, 80u8], + [102u8, 208u8, 3u8, 172u8], + [130u8, 53u8, 109u8, 138u8], + [131u8, 18u8, 241u8, 73u8], + [132u8, 65u8, 29u8, 101u8], + [133u8, 181u8, 177u8, 77u8], + [180u8, 157u8, 199u8, 65u8], + [208u8, 225u8, 47u8, 144u8], + [211u8, 229u8, 121u8, 43u8], + [212u8, 255u8, 146u8, 24u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(RECIPIENT), + ::core::stringify!(setWithdrawalNetwork), + ::core::stringify!(setRecipient), + ::core::stringify!(withdraw), + ::core::stringify!(version), + ::core::stringify!(recipient), + ::core::stringify!(withdrawalNetwork), + ::core::stringify!(minWithdrawalAmount), + ::core::stringify!(totalProcessed), + ::core::stringify!(setMinWithdrawalAmount), + ::core::stringify!(initialize), + ::core::stringify!(WITHDRAWAL_NETWORK), + ::core::stringify!(MIN_WITHDRAWAL_AMOUNT), + ::core::stringify!(l1FeeWallet), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for SequencerFeeVaultCalls { + const NAME: &'static str = "SequencerFeeVaultCalls"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 14usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::MIN_WITHDRAWAL_AMOUNT(_) => { + ::SELECTOR + } + Self::RECIPIENT(_) => { + ::SELECTOR + } + Self::WITHDRAWAL_NETWORK(_) => { + ::SELECTOR + } + Self::initialize(_) => { + ::SELECTOR + } + Self::l1FeeWallet(_) => { + ::SELECTOR + } + Self::minWithdrawalAmount(_) => { + ::SELECTOR + } + Self::recipient(_) => { + ::SELECTOR + } + Self::setMinWithdrawalAmount(_) => { + ::SELECTOR + } + Self::setRecipient(_) => { + ::SELECTOR + } + Self::setWithdrawalNetwork(_) => { + ::SELECTOR + } + Self::totalProcessed(_) => { + ::SELECTOR + } + Self::version(_) => ::SELECTOR, + Self::withdraw(_) => ::SELECTOR, + Self::withdrawalNetwork(_) => { + ::SELECTOR + } + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn RECIPIENT( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(SequencerFeeVaultCalls::RECIPIENT) + } + RECIPIENT + }, + { + fn setWithdrawalNetwork( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SequencerFeeVaultCalls::setWithdrawalNetwork) + } + setWithdrawalNetwork + }, + { + fn setRecipient( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SequencerFeeVaultCalls::setRecipient) + } + setRecipient + }, + { + fn withdraw( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(SequencerFeeVaultCalls::withdraw) + } + withdraw + }, + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(SequencerFeeVaultCalls::version) + } + version + }, + { + fn recipient( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(SequencerFeeVaultCalls::recipient) + } + recipient + }, + { + fn withdrawalNetwork( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SequencerFeeVaultCalls::withdrawalNetwork) + } + withdrawalNetwork + }, + { + fn minWithdrawalAmount( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SequencerFeeVaultCalls::minWithdrawalAmount) + } + minWithdrawalAmount + }, + { + fn totalProcessed( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SequencerFeeVaultCalls::totalProcessed) + } + totalProcessed + }, + { + fn setMinWithdrawalAmount( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SequencerFeeVaultCalls::setMinWithdrawalAmount) + } + setMinWithdrawalAmount + }, + { + fn initialize( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SequencerFeeVaultCalls::initialize) + } + initialize + }, + { + fn WITHDRAWAL_NETWORK( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SequencerFeeVaultCalls::WITHDRAWAL_NETWORK) + } + WITHDRAWAL_NETWORK + }, + { + fn MIN_WITHDRAWAL_AMOUNT( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SequencerFeeVaultCalls::MIN_WITHDRAWAL_AMOUNT) + } + MIN_WITHDRAWAL_AMOUNT + }, + { + fn l1FeeWallet( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SequencerFeeVaultCalls::l1FeeWallet) + } + l1FeeWallet + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn RECIPIENT( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SequencerFeeVaultCalls::RECIPIENT) + } + RECIPIENT + }, + { + fn setWithdrawalNetwork( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SequencerFeeVaultCalls::setWithdrawalNetwork) + } + setWithdrawalNetwork + }, + { + fn setRecipient( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SequencerFeeVaultCalls::setRecipient) + } + setRecipient + }, + { + fn withdraw( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SequencerFeeVaultCalls::withdraw) + } + withdraw + }, + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SequencerFeeVaultCalls::version) + } + version + }, + { + fn recipient( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SequencerFeeVaultCalls::recipient) + } + recipient + }, + { + fn withdrawalNetwork( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SequencerFeeVaultCalls::withdrawalNetwork) + } + withdrawalNetwork + }, + { + fn minWithdrawalAmount( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SequencerFeeVaultCalls::minWithdrawalAmount) + } + minWithdrawalAmount + }, + { + fn totalProcessed( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SequencerFeeVaultCalls::totalProcessed) + } + totalProcessed + }, + { + fn setMinWithdrawalAmount( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SequencerFeeVaultCalls::setMinWithdrawalAmount) + } + setMinWithdrawalAmount + }, + { + fn initialize( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SequencerFeeVaultCalls::initialize) + } + initialize + }, + { + fn WITHDRAWAL_NETWORK( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SequencerFeeVaultCalls::WITHDRAWAL_NETWORK) + } + WITHDRAWAL_NETWORK + }, + { + fn MIN_WITHDRAWAL_AMOUNT( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SequencerFeeVaultCalls::MIN_WITHDRAWAL_AMOUNT) + } + MIN_WITHDRAWAL_AMOUNT + }, + { + fn l1FeeWallet( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SequencerFeeVaultCalls::l1FeeWallet) + } + l1FeeWallet + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::MIN_WITHDRAWAL_AMOUNT(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::RECIPIENT(inner) => { + ::abi_encoded_size(inner) + } + Self::WITHDRAWAL_NETWORK(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::initialize(inner) => { + ::abi_encoded_size(inner) + } + Self::l1FeeWallet(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::minWithdrawalAmount(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::recipient(inner) => { + ::abi_encoded_size(inner) + } + Self::setMinWithdrawalAmount(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::setRecipient(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::setWithdrawalNetwork(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::totalProcessed(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::version(inner) => { + ::abi_encoded_size(inner) + } + Self::withdraw(inner) => { + ::abi_encoded_size(inner) + } + Self::withdrawalNetwork(inner) => { + ::abi_encoded_size( + inner, + ) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::MIN_WITHDRAWAL_AMOUNT(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::RECIPIENT(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::WITHDRAWAL_NETWORK(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::initialize(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::l1FeeWallet(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::minWithdrawalAmount(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::recipient(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::setMinWithdrawalAmount(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::setRecipient(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::setWithdrawalNetwork(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::totalProcessed(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::version(inner) => { + ::abi_encode_raw(inner, out) + } + Self::withdraw(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::withdrawalNetwork(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + } + } + } + ///Container for all the [`SequencerFeeVault`](self) custom errors. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum SequencerFeeVaultErrors { + #[allow(missing_docs)] + FeeVault_OnlyProxyAdminOwner(FeeVault_OnlyProxyAdminOwner), + #[allow(missing_docs)] + InvalidInitialization(InvalidInitialization), + #[allow(missing_docs)] + NotInitializing(NotInitializing), + } + impl SequencerFeeVaultErrors { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [124u8, 215u8, 224u8, 159u8], + [215u8, 230u8, 188u8, 248u8], + [249u8, 46u8, 232u8, 169u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(FeeVault_OnlyProxyAdminOwner), + ::core::stringify!(NotInitializing), + ::core::stringify!(InvalidInitialization), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for SequencerFeeVaultErrors { + const NAME: &'static str = "SequencerFeeVaultErrors"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 3usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::FeeVault_OnlyProxyAdminOwner(_) => { + ::SELECTOR + } + Self::InvalidInitialization(_) => { + ::SELECTOR + } + Self::NotInitializing(_) => { + ::SELECTOR + } + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn FeeVault_OnlyProxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SequencerFeeVaultErrors::FeeVault_OnlyProxyAdminOwner) + } + FeeVault_OnlyProxyAdminOwner + }, + { + fn NotInitializing( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SequencerFeeVaultErrors::NotInitializing) + } + NotInitializing + }, + { + fn InvalidInitialization( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SequencerFeeVaultErrors::InvalidInitialization) + } + InvalidInitialization + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn FeeVault_OnlyProxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SequencerFeeVaultErrors::FeeVault_OnlyProxyAdminOwner) + } + FeeVault_OnlyProxyAdminOwner + }, + { + fn NotInitializing( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SequencerFeeVaultErrors::NotInitializing) + } + NotInitializing + }, + { + fn InvalidInitialization( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SequencerFeeVaultErrors::InvalidInitialization) + } + InvalidInitialization + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::FeeVault_OnlyProxyAdminOwner(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::InvalidInitialization(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::NotInitializing(inner) => { + ::abi_encoded_size( + inner, + ) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::FeeVault_OnlyProxyAdminOwner(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidInitialization(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::NotInitializing(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + } + } + } + ///Container for all the [`SequencerFeeVault`](self) events. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum SequencerFeeVaultEvents { + #[allow(missing_docs)] + Initialized(Initialized), + #[allow(missing_docs)] + MinWithdrawalAmountUpdated(MinWithdrawalAmountUpdated), + #[allow(missing_docs)] + RecipientUpdated(RecipientUpdated), + #[allow(missing_docs)] + Withdrawal_0(Withdrawal_0), + #[allow(missing_docs)] + Withdrawal_1(Withdrawal_1), + #[allow(missing_docs)] + WithdrawalNetworkUpdated(WithdrawalNetworkUpdated), + } + impl SequencerFeeVaultEvents { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 32usize]] = &[ + [ + 56u8, 224u8, 76u8, 190u8, 184u8, 193u8, 15u8, 143u8, 86u8, 134u8, 24u8, + 170u8, 117u8, 190u8, 15u8, 16u8, 182u8, 114u8, 155u8, 139u8, 66u8, 55u8, + 116u8, 59u8, 77u8, 226u8, 12u8, 188u8, 222u8, 40u8, 57u8, 238u8, + ], + [ + 98u8, 230u8, 152u8, 134u8, 165u8, 223u8, 11u8, 168u8, 255u8, 202u8, + 203u8, 252u8, 19u8, 136u8, 117u8, 78u8, 122u8, 189u8, 155u8, 222u8, 36u8, + 176u8, 54u8, 53u8, 76u8, 86u8, 31u8, 26u8, 205u8, 78u8, 69u8, 147u8, + ], + [ + 137u8, 90u8, 6u8, 124u8, 120u8, 88u8, 62u8, 128u8, 4u8, 24u8, 250u8, + 191u8, 61u8, 162u8, 106u8, 148u8, 150u8, 170u8, 178u8, 255u8, 52u8, 41u8, + 206u8, 189u8, 247u8, 254u8, 250u8, 100u8, 43u8, 46u8, 66u8, 3u8, + ], + [ + 199u8, 245u8, 5u8, 178u8, 243u8, 113u8, 174u8, 33u8, 117u8, 238u8, 73u8, + 19u8, 244u8, 73u8, 158u8, 31u8, 38u8, 51u8, 167u8, 181u8, 147u8, 99u8, + 33u8, 238u8, 209u8, 205u8, 174u8, 182u8, 17u8, 81u8, 129u8, 210u8, + ], + [ + 200u8, 162u8, 17u8, 204u8, 100u8, 182u8, 237u8, 27u8, 80u8, 89u8, 90u8, + 159u8, 203u8, 25u8, 50u8, 182u8, 209u8, 229u8, 166u8, 232u8, 239u8, 21u8, + 182u8, 14u8, 91u8, 31u8, 152u8, 142u8, 169u8, 8u8, 107u8, 186u8, + ], + [ + 242u8, 236u8, 68u8, 235u8, 28u8, 59u8, 58u8, 205u8, 84u8, 123u8, 118u8, + 51u8, 62u8, 178u8, 196u8, 178u8, 126u8, 238u8, 49u8, 24u8, 96u8, 197u8, + 122u8, 159u8, 219u8, 4u8, 201u8, 95u8, 98u8, 57u8, 143u8, 200u8, + ], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(Withdrawal_1), + ::core::stringify!(RecipientUpdated), + ::core::stringify!(MinWithdrawalAmountUpdated), + ::core::stringify!(Initialized), + ::core::stringify!(Withdrawal_0), + ::core::stringify!(WithdrawalNetworkUpdated), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolEventInterface for SequencerFeeVaultEvents { + const NAME: &'static str = "SequencerFeeVaultEvents"; + const COUNT: usize = 6usize; + fn decode_raw_log( + topics: &[alloy_sol_types::Word], + data: &[u8], + ) -> alloy_sol_types::Result { + match topics.first().copied() { + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::Initialized) + } + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::MinWithdrawalAmountUpdated) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::RecipientUpdated) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::Withdrawal_0) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::Withdrawal_1) + } + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::WithdrawalNetworkUpdated) + } + _ => { + alloy_sol_types::private::Err(alloy_sol_types::Error::InvalidLog { + name: ::NAME, + log: alloy_sol_types::private::Box::new( + alloy_sol_types::private::LogData::new_unchecked( + topics.to_vec(), + data.to_vec().into(), + ), + ), + }) + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for SequencerFeeVaultEvents { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + match self { + Self::Initialized(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::MinWithdrawalAmountUpdated(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::RecipientUpdated(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::Withdrawal_0(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::Withdrawal_1(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::WithdrawalNetworkUpdated(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + } + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + match self { + Self::Initialized(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::MinWithdrawalAmountUpdated(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::RecipientUpdated(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::Withdrawal_0(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::Withdrawal_1(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::WithdrawalNetworkUpdated(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`SequencerFeeVault`](self) contract instance. + +See the [wrapper's documentation](`SequencerFeeVaultInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> SequencerFeeVaultInstance { + SequencerFeeVaultInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + SequencerFeeVaultInstance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + SequencerFeeVaultInstance::::deploy_builder(__provider) + } + /**A [`SequencerFeeVault`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`SequencerFeeVault`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct SequencerFeeVaultInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for SequencerFeeVaultInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("SequencerFeeVaultInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > SequencerFeeVaultInstance { + /**Creates a new wrapper around an on-chain [`SequencerFeeVault`](self) contract instance. + +See the [wrapper's documentation](`SequencerFeeVaultInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl SequencerFeeVaultInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> SequencerFeeVaultInstance { + SequencerFeeVaultInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > SequencerFeeVaultInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`MIN_WITHDRAWAL_AMOUNT`] function. + pub fn MIN_WITHDRAWAL_AMOUNT( + &self, + ) -> alloy_contract::SolCallBuilder<&P, MIN_WITHDRAWAL_AMOUNTCall, N> { + self.call_builder(&MIN_WITHDRAWAL_AMOUNTCall) + } + ///Creates a new call builder for the [`RECIPIENT`] function. + pub fn RECIPIENT(&self) -> alloy_contract::SolCallBuilder<&P, RECIPIENTCall, N> { + self.call_builder(&RECIPIENTCall) + } + ///Creates a new call builder for the [`WITHDRAWAL_NETWORK`] function. + pub fn WITHDRAWAL_NETWORK( + &self, + ) -> alloy_contract::SolCallBuilder<&P, WITHDRAWAL_NETWORKCall, N> { + self.call_builder(&WITHDRAWAL_NETWORKCall) + } + ///Creates a new call builder for the [`initialize`] function. + pub fn initialize( + &self, + _recipient: alloy::sol_types::private::Address, + _minWithdrawalAmount: alloy::sol_types::private::primitives::aliases::U256, + _withdrawalNetwork: ::RustType, + ) -> alloy_contract::SolCallBuilder<&P, initializeCall, N> { + self.call_builder( + &initializeCall { + _recipient, + _minWithdrawalAmount, + _withdrawalNetwork, + }, + ) + } + ///Creates a new call builder for the [`l1FeeWallet`] function. + pub fn l1FeeWallet( + &self, + ) -> alloy_contract::SolCallBuilder<&P, l1FeeWalletCall, N> { + self.call_builder(&l1FeeWalletCall) + } + ///Creates a new call builder for the [`minWithdrawalAmount`] function. + pub fn minWithdrawalAmount( + &self, + ) -> alloy_contract::SolCallBuilder<&P, minWithdrawalAmountCall, N> { + self.call_builder(&minWithdrawalAmountCall) + } + ///Creates a new call builder for the [`recipient`] function. + pub fn recipient(&self) -> alloy_contract::SolCallBuilder<&P, recipientCall, N> { + self.call_builder(&recipientCall) + } + ///Creates a new call builder for the [`setMinWithdrawalAmount`] function. + pub fn setMinWithdrawalAmount( + &self, + _newMinWithdrawalAmount: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, setMinWithdrawalAmountCall, N> { + self.call_builder( + &setMinWithdrawalAmountCall { + _newMinWithdrawalAmount, + }, + ) + } + ///Creates a new call builder for the [`setRecipient`] function. + pub fn setRecipient( + &self, + _newRecipient: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, setRecipientCall, N> { + self.call_builder(&setRecipientCall { _newRecipient }) + } + ///Creates a new call builder for the [`setWithdrawalNetwork`] function. + pub fn setWithdrawalNetwork( + &self, + _newWithdrawalNetwork: ::RustType, + ) -> alloy_contract::SolCallBuilder<&P, setWithdrawalNetworkCall, N> { + self.call_builder( + &setWithdrawalNetworkCall { + _newWithdrawalNetwork, + }, + ) + } + ///Creates a new call builder for the [`totalProcessed`] function. + pub fn totalProcessed( + &self, + ) -> alloy_contract::SolCallBuilder<&P, totalProcessedCall, N> { + self.call_builder(&totalProcessedCall) + } + ///Creates a new call builder for the [`version`] function. + pub fn version(&self) -> alloy_contract::SolCallBuilder<&P, versionCall, N> { + self.call_builder(&versionCall) + } + ///Creates a new call builder for the [`withdraw`] function. + pub fn withdraw(&self) -> alloy_contract::SolCallBuilder<&P, withdrawCall, N> { + self.call_builder(&withdrawCall) + } + ///Creates a new call builder for the [`withdrawalNetwork`] function. + pub fn withdrawalNetwork( + &self, + ) -> alloy_contract::SolCallBuilder<&P, withdrawalNetworkCall, N> { + self.call_builder(&withdrawalNetworkCall) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > SequencerFeeVaultInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + ///Creates a new event filter for the [`Initialized`] event. + pub fn Initialized_filter(&self) -> alloy_contract::Event<&P, Initialized, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`MinWithdrawalAmountUpdated`] event. + pub fn MinWithdrawalAmountUpdated_filter( + &self, + ) -> alloy_contract::Event<&P, MinWithdrawalAmountUpdated, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`RecipientUpdated`] event. + pub fn RecipientUpdated_filter( + &self, + ) -> alloy_contract::Event<&P, RecipientUpdated, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`Withdrawal_0`] event. + pub fn Withdrawal_0_filter(&self) -> alloy_contract::Event<&P, Withdrawal_0, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`Withdrawal_1`] event. + pub fn Withdrawal_1_filter(&self) -> alloy_contract::Event<&P, Withdrawal_1, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`WithdrawalNetworkUpdated`] event. + pub fn WithdrawalNetworkUpdated_filter( + &self, + ) -> alloy_contract::Event<&P, WithdrawalNetworkUpdated, N> { + self.event_filter::() + } + } +} diff --git a/bindings/rust/src/smart_escrow.rs b/bindings/rust/src/smart_escrow.rs new file mode 100644 index 000000000..6bb831747 --- /dev/null +++ b/bindings/rust/src/smart_escrow.rs @@ -0,0 +1,13530 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface SmartEscrow { + error AccessControlBadConfirmation(); + error AccessControlEnforcedDefaultAdminDelay(uint48 schedule); + error AccessControlEnforcedDefaultAdminRules(); + error AccessControlInvalidDefaultAdmin(address defaultAdmin); + error AccessControlUnauthorizedAccount(address account, bytes32 neededRole); + error AddressIsZeroAddress(); + error CliffStartTimeAfterEndTime(uint256 cliffStartTimestamp, uint256 endTimestamp); + error CliffStartTimeInvalid(uint256 cliffStartTimestamp, uint256 startTime); + error ContractIsNotTerminated(); + error ContractIsTerminated(); + error SafeCastOverflowedUintDowncast(uint8 bits, uint256 value); + error StartTimeAfterEndTime(uint256 startTimestamp, uint256 endTimestamp); + error UnevenVestingPeriod(uint256 vestingPeriodSeconds, uint256 startTimestamp, uint256 endTimestamp); + error VestingEventTokensIsZero(); + error VestingPeriodExceedsContractDuration(uint256 vestingPeriodSeconds); + error VestingPeriodIsZeroSeconds(); + + event BenefactorUpdated(address indexed oldBenefactor, address indexed newBenefactor); + event BeneficiaryUpdated(address indexed oldBeneficiary, address indexed newBeneficiary); + event ContractResumed(); + event ContractTerminated(); + event DefaultAdminDelayChangeCanceled(); + event DefaultAdminDelayChangeScheduled(uint48 newDelay, uint48 effectSchedule); + event DefaultAdminTransferCanceled(); + event DefaultAdminTransferScheduled(address indexed newAdmin, uint48 acceptSchedule); + event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole); + event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender); + event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender); + event TokensReleased(address indexed beneficiary, uint256 amount); + event TokensWithdrawn(address indexed benefactor, uint256 amount); + + constructor(address benefactor_, address beneficiary_, address benefactorOwner, address beneficiaryOwner, address escrowOwner, uint256 start_, uint256 cliffStart_, uint256 end_, uint256 vestingPeriodSeconds_, uint256 initialTokens_, uint256 vestingEventTokens_); + + function BENEFACTOR_OWNER_ROLE() external view returns (bytes32); + function BENEFICIARY_OWNER_ROLE() external view returns (bytes32); + function DEFAULT_ADMIN_ROLE() external view returns (bytes32); + function OP_TOKEN() external view returns (address); + function TERMINATOR_ROLE() external view returns (bytes32); + function acceptDefaultAdminTransfer() external; + function beginDefaultAdminTransfer(address newAdmin) external; + function benefactor() external view returns (address); + function beneficiary() external view returns (address); + function cancelDefaultAdminTransfer() external; + function changeDefaultAdminDelay(uint48 newDelay) external; + function cliffStart() external view returns (uint256); + function contractTerminated() external view returns (bool); + function defaultAdmin() external view returns (address); + function defaultAdminDelay() external view returns (uint48); + function defaultAdminDelayIncreaseWait() external view returns (uint48); + function end() external view returns (uint256); + function getRoleAdmin(bytes32 role) external view returns (bytes32); + function grantRole(bytes32 role, address account) external; + function hasRole(bytes32 role, address account) external view returns (bool); + function initialTokens() external view returns (uint256); + function owner() external view returns (address); + function pendingDefaultAdmin() external view returns (address newAdmin, uint48 schedule); + function pendingDefaultAdminDelay() external view returns (uint48 newDelay, uint48 schedule); + function releasable() external view returns (uint256); + function release() external; + function released() external view returns (uint256); + function renounceRole(bytes32 role, address account) external; + function resume() external; + function revokeRole(bytes32 role, address account) external; + function rollbackDefaultAdminDelay() external; + function start() external view returns (uint256); + function supportsInterface(bytes4 interfaceId) external view returns (bool); + function terminate() external; + function updateBenefactor(address newBenefactor) external; + function updateBeneficiary(address newBeneficiary) external; + function vestedAmount(uint256 timestamp) external view returns (uint256); + function vestingEventTokens() external view returns (uint256); + function vestingPeriod() external view returns (uint256); + function withdrawUnvestedTokens() external; +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "constructor", + "inputs": [ + { + "name": "benefactor_", + "type": "address", + "internalType": "address" + }, + { + "name": "beneficiary_", + "type": "address", + "internalType": "address" + }, + { + "name": "benefactorOwner", + "type": "address", + "internalType": "address" + }, + { + "name": "beneficiaryOwner", + "type": "address", + "internalType": "address" + }, + { + "name": "escrowOwner", + "type": "address", + "internalType": "address" + }, + { + "name": "start_", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "cliffStart_", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "end_", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "vestingPeriodSeconds_", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "initialTokens_", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "vestingEventTokens_", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "BENEFACTOR_OWNER_ROLE", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "BENEFICIARY_OWNER_ROLE", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "DEFAULT_ADMIN_ROLE", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "OP_TOKEN", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract IERC20" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "TERMINATOR_ROLE", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "acceptDefaultAdminTransfer", + "inputs": [], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "beginDefaultAdminTransfer", + "inputs": [ + { + "name": "newAdmin", + "type": "address", + "internalType": "address" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "benefactor", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "beneficiary", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "cancelDefaultAdminTransfer", + "inputs": [], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "changeDefaultAdminDelay", + "inputs": [ + { + "name": "newDelay", + "type": "uint48", + "internalType": "uint48" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "cliffStart", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "contractTerminated", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "defaultAdmin", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "defaultAdminDelay", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint48", + "internalType": "uint48" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "defaultAdminDelayIncreaseWait", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint48", + "internalType": "uint48" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "end", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "getRoleAdmin", + "inputs": [ + { + "name": "role", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "outputs": [ + { + "name": "", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "grantRole", + "inputs": [ + { + "name": "role", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "account", + "type": "address", + "internalType": "address" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "hasRole", + "inputs": [ + { + "name": "role", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "account", + "type": "address", + "internalType": "address" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "initialTokens", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "owner", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "pendingDefaultAdmin", + "inputs": [], + "outputs": [ + { + "name": "newAdmin", + "type": "address", + "internalType": "address" + }, + { + "name": "schedule", + "type": "uint48", + "internalType": "uint48" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "pendingDefaultAdminDelay", + "inputs": [], + "outputs": [ + { + "name": "newDelay", + "type": "uint48", + "internalType": "uint48" + }, + { + "name": "schedule", + "type": "uint48", + "internalType": "uint48" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "releasable", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "release", + "inputs": [], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "released", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "renounceRole", + "inputs": [ + { + "name": "role", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "account", + "type": "address", + "internalType": "address" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "resume", + "inputs": [], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "revokeRole", + "inputs": [ + { + "name": "role", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "account", + "type": "address", + "internalType": "address" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "rollbackDefaultAdminDelay", + "inputs": [], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "start", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "supportsInterface", + "inputs": [ + { + "name": "interfaceId", + "type": "bytes4", + "internalType": "bytes4" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "terminate", + "inputs": [], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "updateBenefactor", + "inputs": [ + { + "name": "newBenefactor", + "type": "address", + "internalType": "address" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "updateBeneficiary", + "inputs": [ + { + "name": "newBeneficiary", + "type": "address", + "internalType": "address" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "vestedAmount", + "inputs": [ + { + "name": "timestamp", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "vestingEventTokens", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "vestingPeriod", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "withdrawUnvestedTokens", + "inputs": [], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "event", + "name": "BenefactorUpdated", + "inputs": [ + { + "name": "oldBenefactor", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "newBenefactor", + "type": "address", + "indexed": true, + "internalType": "address" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "BeneficiaryUpdated", + "inputs": [ + { + "name": "oldBeneficiary", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "newBeneficiary", + "type": "address", + "indexed": true, + "internalType": "address" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "ContractResumed", + "inputs": [], + "anonymous": false + }, + { + "type": "event", + "name": "ContractTerminated", + "inputs": [], + "anonymous": false + }, + { + "type": "event", + "name": "DefaultAdminDelayChangeCanceled", + "inputs": [], + "anonymous": false + }, + { + "type": "event", + "name": "DefaultAdminDelayChangeScheduled", + "inputs": [ + { + "name": "newDelay", + "type": "uint48", + "indexed": false, + "internalType": "uint48" + }, + { + "name": "effectSchedule", + "type": "uint48", + "indexed": false, + "internalType": "uint48" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "DefaultAdminTransferCanceled", + "inputs": [], + "anonymous": false + }, + { + "type": "event", + "name": "DefaultAdminTransferScheduled", + "inputs": [ + { + "name": "newAdmin", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "acceptSchedule", + "type": "uint48", + "indexed": false, + "internalType": "uint48" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "RoleAdminChanged", + "inputs": [ + { + "name": "role", + "type": "bytes32", + "indexed": true, + "internalType": "bytes32" + }, + { + "name": "previousAdminRole", + "type": "bytes32", + "indexed": true, + "internalType": "bytes32" + }, + { + "name": "newAdminRole", + "type": "bytes32", + "indexed": true, + "internalType": "bytes32" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "RoleGranted", + "inputs": [ + { + "name": "role", + "type": "bytes32", + "indexed": true, + "internalType": "bytes32" + }, + { + "name": "account", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "sender", + "type": "address", + "indexed": true, + "internalType": "address" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "RoleRevoked", + "inputs": [ + { + "name": "role", + "type": "bytes32", + "indexed": true, + "internalType": "bytes32" + }, + { + "name": "account", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "sender", + "type": "address", + "indexed": true, + "internalType": "address" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "TokensReleased", + "inputs": [ + { + "name": "beneficiary", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "TokensWithdrawn", + "inputs": [ + { + "name": "benefactor", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "error", + "name": "AccessControlBadConfirmation", + "inputs": [] + }, + { + "type": "error", + "name": "AccessControlEnforcedDefaultAdminDelay", + "inputs": [ + { + "name": "schedule", + "type": "uint48", + "internalType": "uint48" + } + ] + }, + { + "type": "error", + "name": "AccessControlEnforcedDefaultAdminRules", + "inputs": [] + }, + { + "type": "error", + "name": "AccessControlInvalidDefaultAdmin", + "inputs": [ + { + "name": "defaultAdmin", + "type": "address", + "internalType": "address" + } + ] + }, + { + "type": "error", + "name": "AccessControlUnauthorizedAccount", + "inputs": [ + { + "name": "account", + "type": "address", + "internalType": "address" + }, + { + "name": "neededRole", + "type": "bytes32", + "internalType": "bytes32" + } + ] + }, + { + "type": "error", + "name": "AddressIsZeroAddress", + "inputs": [] + }, + { + "type": "error", + "name": "CliffStartTimeAfterEndTime", + "inputs": [ + { + "name": "cliffStartTimestamp", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "endTimestamp", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { + "type": "error", + "name": "CliffStartTimeInvalid", + "inputs": [ + { + "name": "cliffStartTimestamp", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "startTime", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { + "type": "error", + "name": "ContractIsNotTerminated", + "inputs": [] + }, + { + "type": "error", + "name": "ContractIsTerminated", + "inputs": [] + }, + { + "type": "error", + "name": "SafeCastOverflowedUintDowncast", + "inputs": [ + { + "name": "bits", + "type": "uint8", + "internalType": "uint8" + }, + { + "name": "value", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { + "type": "error", + "name": "StartTimeAfterEndTime", + "inputs": [ + { + "name": "startTimestamp", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "endTimestamp", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { + "type": "error", + "name": "UnevenVestingPeriod", + "inputs": [ + { + "name": "vestingPeriodSeconds", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "startTimestamp", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "endTimestamp", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { + "type": "error", + "name": "VestingEventTokensIsZero", + "inputs": [] + }, + { + "type": "error", + "name": "VestingPeriodExceedsContractDuration", + "inputs": [ + { + "name": "vestingPeriodSeconds", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { + "type": "error", + "name": "VestingPeriodIsZeroSeconds", + "inputs": [] + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod SmartEscrow { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x610140604052348015610010575f80fd5b506040516123d43803806123d483398101604081905261002f91610434565b62069780876001600160a01b03811661006257604051636116401160e11b81525f60048201526024015b60405180910390fd5b600180546001600160d01b0316600160d01b65ffffffffffff85160217905561008b5f82610303565b5050506001600160a01b038b1615806100ab57506001600160a01b038a16155b806100bd57506001600160a01b038816155b806100cf57506001600160a01b038916155b156100ed5760405163ac0b3e2160e01b815260040160405180910390fd5b8386106101175760405163593d712f60e01b81526004810187905260248101859052604401610059565b8585101561014257604051635d617e9360e11b81526004810186905260248101879052604401610059565b83851061016c576040516383de581f60e01b81526004810186905260248101859052604401610059565b825f0361018c5760405163931ef49360e01b815260040160405180910390fd5b805f036101ac57604051630ea157a960e21b815260040160405180910390fd5b826101b787866104cf565b10156101d957604051630bfa645d60e21b815260048101849052602401610059565b826101e487866104cf565b6101ee91906104ee565b1561021d5760405163dd76dcd560e01b8152600481018490526024810187905260448101859052606401610059565b600380546001600160a01b03808e166001600160a01b03199283161790925560048054928d1692909116919091179055608086905260a085905260c084905260e08390526101008290526101208190526102977f4764e59f4e0dd9ec7df76c5cd0edc4bc07903bf235ab0e0030cc6b7e6e52f2748a610303565b506102af5f805160206123b48339815191528a610303565b506102da7fa5863d4faed73f441831bf2b55550cdbfecb5080dad2352ec834a2baf15aabdc89610303565b506102f25f805160206123b483398151915289610303565b50505050505050505050505061050d565b5f8261035f575f61031c6002546001600160a01b031690565b6001600160a01b03161461034357604051631fe1e13d60e11b815260040160405180910390fd5b600280546001600160a01b0319166001600160a01b0384161790555b6103698383610372565b90505b92915050565b5f828152602081815260408083206001600160a01b038516845290915281205460ff16610412575f838152602081815260408083206001600160a01b03861684529091529020805460ff191660011790556103ca3390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a450600161036c565b505f61036c565b80516001600160a01b038116811461042f575f80fd5b919050565b5f805f805f805f805f805f6101608c8e03121561044f575f80fd5b6104588c610419565b9a5061046660208d01610419565b995061047460408d01610419565b985061048260608d01610419565b975061049060808d01610419565b965060a08c0151955060c08c0151945060e08c015193506101008c015192506101208c015191506101408c015190509295989b509295989b9093969950565b8181038181111561036c57634e487b7160e01b5f52601160045260245ffd5b5f8261050857634e487b7160e01b5f52601260045260245ffd5b500690565b60805160a05160c05160e0516101005161012051611e3661057e5f395f818161049601526112f901525f8181610449015261137d01525f81816104e4015261131a01525f81816106bf015261123a01525f81816105fa015261120b01525f8181610621015261133e0152611e365ff3fe608060405234801561000f575f80fd5b50600436106102b7575f3560e01c80636efd06c111610171578063a217fddf116100d2578063cf6eefb711610088578063d602b9fd1161006e578063d602b9fd146106b2578063efbe1c1c146106ba578063fbccedae146106e1575f80fd5b8063cf6eefb714610653578063d547741f1461069f575f80fd5b8063be9a6555116100b8578063be9a65551461061c578063cc8463c814610643578063cefc14291461064b575f80fd5b8063a217fddf146105ee578063b297c551146105f5575f80fd5b80638a81694c1161012757806391d148541161010d57806391d148541461057b57806396132521146105be578063a1eda53c146105c7575f80fd5b80638a81694c146105535780638da5cb5b14610573575f80fd5b80637ca40101116101575780637ca401011461050657806384ef8ffc1461052d57806386d1a69f1461054b575f80fd5b80636efd06c1146104b85780637313ee5a146104df575f80fd5b80632806e3d61161021b57806350ad2555116101d1578063634e93da116101b7578063634e93da1461046b578063649a5ec71461047e578063677caf8114610491575f80fd5b806350ad25551461043157806350bfeadc14610444575f80fd5b80632f2ff15d116102015780632f2ff15d146103eb57806336568abe146103fe57806338af3eed14610411575f80fd5b80632806e3d6146103bc5780632a711752146103c4575f80fd5b80630c08bf88116102705780631bfce853116102565780631bfce85314610339578063224d7e591461035a578063248a9ca31461039a575f80fd5b80630c08bf88146103245780631a2c2a2b1461032c575f80fd5b8063046f7da2116102a0578063046f7da2146102ff5780630aa6220b146103095780630aaffd2a14610311575f80fd5b806301ffc9a7146102bb578063022d63fb146102e3575b5f80fd5b6102ce6102c9366004611c2b565b6106e9565b60405190151581526020015b60405180910390f35b620697805b60405165ffffffffffff90911681526020016102da565b610307610744565b005b6103076107dd565b61030761031f366004611c8d565b6107f2565b610307610904565b6006546102ce9060ff1681565b61034c610347366004611ca6565b61098c565b6040519081526020016102da565b61037573420000000000000000000000000000000000004281565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016102da565b61034c6103a8366004611ca6565b5f9081526020819052604090206001015490565b610307610996565b61034c7f34afc76594eb566b67bab69d3871c5ef776ca6cf718b281af9f9df77dbfdeb7281565b6103076103f9366004611cbd565b610b72565b61030761040c366004611cbd565b610bb3565b6004546103759073ffffffffffffffffffffffffffffffffffffffff1681565b61030761043f366004611c8d565b610cbd565b61034c7f000000000000000000000000000000000000000000000000000000000000000081565b610307610479366004611c8d565b610dce565b61030761048c366004611ce7565b610de1565b61034c7f000000000000000000000000000000000000000000000000000000000000000081565b61034c7fa5863d4faed73f441831bf2b55550cdbfecb5080dad2352ec834a2baf15aabdc81565b61034c7f000000000000000000000000000000000000000000000000000000000000000081565b61034c7f4764e59f4e0dd9ec7df76c5cd0edc4bc07903bf235ab0e0030cc6b7e6e52f27481565b60025473ffffffffffffffffffffffffffffffffffffffff16610375565b610307610df4565b6003546103759073ffffffffffffffffffffffffffffffffffffffff1681565b610375610f5a565b6102ce610589366004611cbd565b5f9182526020828152604080842073ffffffffffffffffffffffffffffffffffffffff93909316845291905290205460ff1690565b61034c60055481565b6105cf610f7f565b6040805165ffffffffffff9384168152929091166020830152016102da565b61034c5f81565b61034c7f000000000000000000000000000000000000000000000000000000000000000081565b61034c7f000000000000000000000000000000000000000000000000000000000000000081565b6102e8610ff9565b610307611096565b6001546040805173ffffffffffffffffffffffffffffffffffffffff831681527401000000000000000000000000000000000000000090920465ffffffffffff166020830152016102da565b6103076106ad366004611cbd565b6110f2565b610307611133565b61034c7f000000000000000000000000000000000000000000000000000000000000000081565b61034c611145565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f3149878600000000000000000000000000000000000000000000000000000000148061073e575061073e8261115c565b92915050565b5f61074e816111f2565b60065460ff1661078a576040517ff54eef5600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600680547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690556040517fab5f6dacf93a267a93a533de8a56370de8341bbd8102017307e7be375c3dda6a905f90a150565b5f6107e7816111f2565b6107ef6111fc565b50565b7fa5863d4faed73f441831bf2b55550cdbfecb5080dad2352ec834a2baf15aabdc61081c816111f2565b73ffffffffffffffffffffffffffffffffffffffff8216610869576040517fac0b3e2100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60045473ffffffffffffffffffffffffffffffffffffffff90811690831681146108ff57600480547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff85811691821790925560405190918316907fe72eaf6addaa195f3c83095031dd08f3a96808dcf047babed1fe4e4f69d6c622905f90a35b505050565b7f34afc76594eb566b67bab69d3871c5ef776ca6cf718b281af9f9df77dbfdeb7261092e816111f2565b610936610df4565b600680547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790556040517f6d0d90585834980bd0e5603341ff50b06349c11e0bf9241d03f6d065f12a262b905f90a150565b5f61073e82611208565b5f6109a0816111f2565b60065460ff166109dc576040517ff54eef5600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201525f90734200000000000000000000000000000000000042906370a0823190602401602060405180830381865afa158015610a44573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a689190611d0c565b90508015610b6e576003546040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091166004820152602481018290527342000000000000000000000000000000000000429063a9059cbb906044016020604051808303815f875af1158015610af8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b1c9190611d23565b5060035460405182815273ffffffffffffffffffffffffffffffffffffffff909116907f6352c5382c4a4578e712449ca65e83cdb392d045dfcf1cad9615189db2da244b906020015b60405180910390a25b5050565b81610ba9576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610b6e82826113a6565b81158015610bdb575060025473ffffffffffffffffffffffffffffffffffffffff8281169116145b15610cb35760015473ffffffffffffffffffffffffffffffffffffffff81169074010000000000000000000000000000000000000000900465ffffffffffff1681151580610c2f575065ffffffffffff8116155b80610c4257504265ffffffffffff821610155b15610c88576040517f19ca5ebb00000000000000000000000000000000000000000000000000000000815265ffffffffffff821660048201526024015b60405180910390fd5b5050600180547fffffffffffff000000000000ffffffffffffffffffffffffffffffffffffffff1690555b610b6e82826113d0565b7f4764e59f4e0dd9ec7df76c5cd0edc4bc07903bf235ab0e0030cc6b7e6e52f274610ce7816111f2565b73ffffffffffffffffffffffffffffffffffffffff8216610d34576040517fac0b3e2100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60035473ffffffffffffffffffffffffffffffffffffffff90811690831681146108ff57600380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff85811691821790925560405190918316907fd487b35f979307e581e6e2d4b6aa87dbddf2f124cef02b50e3792f4c31c76c7a905f90a3505050565b5f610dd8816111f2565b610b6e82611429565b5f610deb816111f2565b610b6e826114a1565b60065460ff1615610e31576040517f07c63c5a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f610e3a611145565b905080156107ef578060055f828254610e539190611d6f565b9091555050600480546040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90911691810191909152602481018290527342000000000000000000000000000000000000429063a9059cbb906044016020604051808303815f875af1158015610ee3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f079190611d23565b5060045460405182815273ffffffffffffffffffffffffffffffffffffffff909116907fc7798891864187665ac6dd119286e44ec13f014527aeeb2b8eb3fd413df931799060200160405180910390a250565b5f610f7a60025473ffffffffffffffffffffffffffffffffffffffff1690565b905090565b6002545f907a010000000000000000000000000000000000000000000000000000900465ffffffffffff168015158015610fc157504265ffffffffffff821610155b610fcc575f80610ff1565b60025474010000000000000000000000000000000000000000900465ffffffffffff16815b915091509091565b6002545f907a010000000000000000000000000000000000000000000000000000900465ffffffffffff16801515801561103a57504265ffffffffffff8216105b61106c576001547a010000000000000000000000000000000000000000000000000000900465ffffffffffff16611090565b60025474010000000000000000000000000000000000000000900465ffffffffffff165b91505090565b60015473ffffffffffffffffffffffffffffffffffffffff163381146110ea576040517fc22c8022000000000000000000000000000000000000000000000000000000008152336004820152602401610c7f565b6107ef611510565b81611129576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610b6e8282611601565b5f61113d816111f2565b6107ef611625565b5f6005546111524261098c565b610f7a9190611d82565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000148061073e57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff0000000000000000000000000000000000000000000000000000000083161461073e565b6107ef813361162f565b6112065f806116b4565b565b5f7f000000000000000000000000000000000000000000000000000000000000000082101561123857505f919050565b7f00000000000000000000000000000000000000000000000000000000000000008211156112f7576005546040517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152734200000000000000000000000000000000000042906370a0823190602401602060405180830381865afa1580156112c9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112ed9190611d0c565b61073e9190611d6f565b7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006113637f000000000000000000000000000000000000000000000000000000000000000085611d82565b61136d9190611d95565b6113779190611dcd565b61073e907f0000000000000000000000000000000000000000000000000000000000000000611d6f565b919050565b5f828152602081905260409020600101546113c0816111f2565b6113ca838361180d565b50505050565b73ffffffffffffffffffffffffffffffffffffffff8116331461141f576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6108ff82826118d2565b5f611432610ff9565b61143b42611933565b6114459190611de4565b90506114518282611982565b60405165ffffffffffff8216815273ffffffffffffffffffffffffffffffffffffffff8316907f3377dc44241e779dd06afab5b788a35ca5f3b778836e2990bdb26a2a4b2e5ed690602001610b65565b5f6114ab82611a1d565b6114b442611933565b6114be9190611de4565b90506114ca82826116b4565b6040805165ffffffffffff8085168252831660208201527ff1038c18cf84a56e432fdbfaf746924b7ea511dfe03a6506a0ceba4888788d9b910160405180910390a15050565b60015473ffffffffffffffffffffffffffffffffffffffff81169074010000000000000000000000000000000000000000900465ffffffffffff1680158061156057504265ffffffffffff821610155b156115a1576040517f19ca5ebb00000000000000000000000000000000000000000000000000000000815265ffffffffffff82166004820152602401610c7f565b6115c95f6115c460025473ffffffffffffffffffffffffffffffffffffffff1690565b6118d2565b506115d45f8361180d565b5050600180547fffffffffffff000000000000000000000000000000000000000000000000000016905550565b5f8281526020819052604090206001015461161b816111f2565b6113ca83836118d2565b6112065f80611982565b5f8281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16610b6e576040517fe2517d3f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8216600482015260248101839052604401610c7f565b6002547a010000000000000000000000000000000000000000000000000000900465ffffffffffff168015611788574265ffffffffffff8216101561175f576002546001805479ffffffffffffffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000090920465ffffffffffff167a01000000000000000000000000000000000000000000000000000002919091179055611788565b6040517f2b1fa2edafe6f7b9e97c1a9e0c3660e645beb2dcaa2d45bdbf9beaf5472e1ec5905f90a15b506002805473ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000065ffffffffffff9485160279ffffffffffffffffffffffffffffffffffffffffffffffffffff16177a0100000000000000000000000000000000000000000000000000009290931691909102919091179055565b5f826118c1575f61183360025473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff1614611880576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84161790555b6118cb8383611a64565b9392505050565b5f821580156118fb575060025473ffffffffffffffffffffffffffffffffffffffff8381169116145b1561192957600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001690555b6118cb8383611b5d565b5f65ffffffffffff82111561197e576040517f6dfcc6500000000000000000000000000000000000000000000000000000000081526030600482015260248101839052604401610c7f565b5090565b600180547401000000000000000000000000000000000000000065ffffffffffff84811682027fffffffffffff0000000000000000000000000000000000000000000000000000841673ffffffffffffffffffffffffffffffffffffffff8816171790935590041680156108ff576040517f8886ebfc4259abdbc16601dd8fb5678e54878f47b3c34836cfc51154a9605109905f90a1505050565b5f80611a27610ff9565b90508065ffffffffffff168365ffffffffffff1611611a4f57611a4a8382611e0a565b6118cb565b6118cb65ffffffffffff841662069780611c16565b5f8281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915281205460ff16611b56575f8381526020818152604080832073ffffffffffffffffffffffffffffffffffffffff86168452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055611af43390565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a450600161073e565b505f61073e565b5f8281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915281205460ff1615611b56575f8381526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8616808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a450600161073e565b5f818310611c2457816118cb565b5090919050565b5f60208284031215611c3b575f80fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146118cb575f80fd5b803573ffffffffffffffffffffffffffffffffffffffff811681146113a1575f80fd5b5f60208284031215611c9d575f80fd5b6118cb82611c6a565b5f60208284031215611cb6575f80fd5b5035919050565b5f8060408385031215611cce575f80fd5b82359150611cde60208401611c6a565b90509250929050565b5f60208284031215611cf7575f80fd5b813565ffffffffffff811681146118cb575f80fd5b5f60208284031215611d1c575f80fd5b5051919050565b5f60208284031215611d33575f80fd5b815180151581146118cb575f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8082018082111561073e5761073e611d42565b8181038181111561073e5761073e611d42565b5f82611dc8577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b808202811582820484141761073e5761073e611d42565b65ffffffffffff818116838216019080821115611e0357611e03611d42565b5092915050565b65ffffffffffff828116828216039080821115611e0357611e03611d4256fea164736f6c6343000819000a34afc76594eb566b67bab69d3871c5ef776ca6cf718b281af9f9df77dbfdeb72 + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"a\x01@`@R4\x80\x15a\0\x10W_\x80\xFD[P`@Qa#\xD48\x03\x80a#\xD4\x839\x81\x01`@\x81\x90Ra\0/\x91a\x044V[b\x06\x97\x80\x87`\x01`\x01`\xA0\x1B\x03\x81\x16a\0bW`@Qca\x16@\x11`\xE1\x1B\x81R_`\x04\x82\x01R`$\x01[`@Q\x80\x91\x03\x90\xFD[`\x01\x80T`\x01`\x01`\xD0\x1B\x03\x16`\x01`\xD0\x1Be\xFF\xFF\xFF\xFF\xFF\xFF\x85\x16\x02\x17\x90Ua\0\x8B_\x82a\x03\x03V[PPP`\x01`\x01`\xA0\x1B\x03\x8B\x16\x15\x80a\0\xABWP`\x01`\x01`\xA0\x1B\x03\x8A\x16\x15[\x80a\0\xBDWP`\x01`\x01`\xA0\x1B\x03\x88\x16\x15[\x80a\0\xCFWP`\x01`\x01`\xA0\x1B\x03\x89\x16\x15[\x15a\0\xEDW`@Qc\xAC\x0B>!`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[\x83\x86\x10a\x01\x17W`@QcY=q/`\xE0\x1B\x81R`\x04\x81\x01\x87\x90R`$\x81\x01\x85\x90R`D\x01a\0YV[\x85\x85\x10\x15a\x01BW`@Qc]a~\x93`\xE1\x1B\x81R`\x04\x81\x01\x86\x90R`$\x81\x01\x87\x90R`D\x01a\0YV[\x83\x85\x10a\x01lW`@Qc\x83\xDEX\x1F`\xE0\x1B\x81R`\x04\x81\x01\x86\x90R`$\x81\x01\x85\x90R`D\x01a\0YV[\x82_\x03a\x01\x8CW`@Qc\x93\x1E\xF4\x93`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[\x80_\x03a\x01\xACW`@Qc\x0E\xA1W\xA9`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[\x82a\x01\xB7\x87\x86a\x04\xCFV[\x10\x15a\x01\xD9W`@Qc\x0B\xFAd]`\xE2\x1B\x81R`\x04\x81\x01\x84\x90R`$\x01a\0YV[\x82a\x01\xE4\x87\x86a\x04\xCFV[a\x01\xEE\x91\x90a\x04\xEEV[\x15a\x02\x1DW`@Qc\xDDv\xDC\xD5`\xE0\x1B\x81R`\x04\x81\x01\x84\x90R`$\x81\x01\x87\x90R`D\x81\x01\x85\x90R`d\x01a\0YV[`\x03\x80T`\x01`\x01`\xA0\x1B\x03\x80\x8E\x16`\x01`\x01`\xA0\x1B\x03\x19\x92\x83\x16\x17\x90\x92U`\x04\x80T\x92\x8D\x16\x92\x90\x91\x16\x91\x90\x91\x17\x90U`\x80\x86\x90R`\xA0\x85\x90R`\xC0\x84\x90R`\xE0\x83\x90Ra\x01\0\x82\x90Ra\x01 \x81\x90Ra\x02\x97\x7FGd\xE5\x9FN\r\xD9\xEC}\xF7l\\\xD0\xED\xC4\xBC\x07\x90;\xF25\xAB\x0E\x000\xCCk~nR\xF2t\x8Aa\x03\x03V[Pa\x02\xAF_\x80Q` a#\xB4\x839\x81Q\x91R\x8Aa\x03\x03V[Pa\x02\xDA\x7F\xA5\x86=O\xAE\xD7?D\x181\xBF+UU\x0C\xDB\xFE\xCBP\x80\xDA\xD25.\xC84\xA2\xBA\xF1Z\xAB\xDC\x89a\x03\x03V[Pa\x02\xF2_\x80Q` a#\xB4\x839\x81Q\x91R\x89a\x03\x03V[PPPPPPPPPPPPa\x05\rV[_\x82a\x03_W_a\x03\x1C`\x02T`\x01`\x01`\xA0\x1B\x03\x16\x90V[`\x01`\x01`\xA0\x1B\x03\x16\x14a\x03CW`@Qc\x1F\xE1\xE1=`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x02\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x84\x16\x17\x90U[a\x03i\x83\x83a\x03rV[\x90P[\x92\x91PPV[_\x82\x81R` \x81\x81R`@\x80\x83 `\x01`\x01`\xA0\x1B\x03\x85\x16\x84R\x90\x91R\x81 T`\xFF\x16a\x04\x12W_\x83\x81R` \x81\x81R`@\x80\x83 `\x01`\x01`\xA0\x1B\x03\x86\x16\x84R\x90\x91R\x90 \x80T`\xFF\x19\x16`\x01\x17\x90Ua\x03\xCA3\x90V[`\x01`\x01`\xA0\x1B\x03\x16\x82`\x01`\x01`\xA0\x1B\x03\x16\x84\x7F/\x87\x88\x11~~\xFF\x1D\x82\xE9&\xECyI\x01\xD1|x\x02JP'\t@0E@\xA73eo\r`@Q`@Q\x80\x91\x03\x90\xA4P`\x01a\x03lV[P_a\x03lV[\x80Q`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a\x04/W_\x80\xFD[\x91\x90PV[_\x80_\x80_\x80_\x80_\x80_a\x01`\x8C\x8E\x03\x12\x15a\x04OW_\x80\xFD[a\x04X\x8Ca\x04\x19V[\x9APa\x04f` \x8D\x01a\x04\x19V[\x99Pa\x04t`@\x8D\x01a\x04\x19V[\x98Pa\x04\x82``\x8D\x01a\x04\x19V[\x97Pa\x04\x90`\x80\x8D\x01a\x04\x19V[\x96P`\xA0\x8C\x01Q\x95P`\xC0\x8C\x01Q\x94P`\xE0\x8C\x01Q\x93Pa\x01\0\x8C\x01Q\x92Pa\x01 \x8C\x01Q\x91Pa\x01@\x8C\x01Q\x90P\x92\x95\x98\x9BP\x92\x95\x98\x9B\x90\x93\x96\x99PV[\x81\x81\x03\x81\x81\x11\x15a\x03lWcNH{q`\xE0\x1B_R`\x11`\x04R`$_\xFD[_\x82a\x05\x08WcNH{q`\xE0\x1B_R`\x12`\x04R`$_\xFD[P\x06\x90V[`\x80Q`\xA0Q`\xC0Q`\xE0Qa\x01\0Qa\x01 Qa\x1E6a\x05~_9_\x81\x81a\x04\x96\x01Ra\x12\xF9\x01R_\x81\x81a\x04I\x01Ra\x13}\x01R_\x81\x81a\x04\xE4\x01Ra\x13\x1A\x01R_\x81\x81a\x06\xBF\x01Ra\x12:\x01R_\x81\x81a\x05\xFA\x01Ra\x12\x0B\x01R_\x81\x81a\x06!\x01Ra\x13>\x01Ra\x1E6_\xF3\xFE`\x80`@R4\x80\x15a\0\x0FW_\x80\xFD[P`\x046\x10a\x02\xB7W_5`\xE0\x1C\x80cn\xFD\x06\xC1\x11a\x01qW\x80c\xA2\x17\xFD\xDF\x11a\0\xD2W\x80c\xCFn\xEF\xB7\x11a\0\x88W\x80c\xD6\x02\xB9\xFD\x11a\0nW\x80c\xD6\x02\xB9\xFD\x14a\x06\xB2W\x80c\xEF\xBE\x1C\x1C\x14a\x06\xBAW\x80c\xFB\xCC\xED\xAE\x14a\x06\xE1W_\x80\xFD[\x80c\xCFn\xEF\xB7\x14a\x06SW\x80c\xD5Gt\x1F\x14a\x06\x9FW_\x80\xFD[\x80c\xBE\x9AeU\x11a\0\xB8W\x80c\xBE\x9AeU\x14a\x06\x1CW\x80c\xCC\x84c\xC8\x14a\x06CW\x80c\xCE\xFC\x14)\x14a\x06KW_\x80\xFD[\x80c\xA2\x17\xFD\xDF\x14a\x05\xEEW\x80c\xB2\x97\xC5Q\x14a\x05\xF5W_\x80\xFD[\x80c\x8A\x81iL\x11a\x01'W\x80c\x91\xD1HT\x11a\x01\rW\x80c\x91\xD1HT\x14a\x05{W\x80c\x96\x13%!\x14a\x05\xBEW\x80c\xA1\xED\xA5<\x14a\x05\xC7W_\x80\xFD[\x80c\x8A\x81iL\x14a\x05SW\x80c\x8D\xA5\xCB[\x14a\x05sW_\x80\xFD[\x80c|\xA4\x01\x01\x11a\x01WW\x80c|\xA4\x01\x01\x14a\x05\x06W\x80c\x84\xEF\x8F\xFC\x14a\x05-W\x80c\x86\xD1\xA6\x9F\x14a\x05KW_\x80\xFD[\x80cn\xFD\x06\xC1\x14a\x04\xB8W\x80cs\x13\xEEZ\x14a\x04\xDFW_\x80\xFD[\x80c(\x06\xE3\xD6\x11a\x02\x1BW\x80cP\xAD%U\x11a\x01\xD1W\x80ccN\x93\xDA\x11a\x01\xB7W\x80ccN\x93\xDA\x14a\x04kW\x80cd\x9A^\xC7\x14a\x04~W\x80cg|\xAF\x81\x14a\x04\x91W_\x80\xFD[\x80cP\xAD%U\x14a\x041W\x80cP\xBF\xEA\xDC\x14a\x04DW_\x80\xFD[\x80c//\xF1]\x11a\x02\x01W\x80c//\xF1]\x14a\x03\xEBW\x80c6V\x8A\xBE\x14a\x03\xFEW\x80c8\xAF>\xED\x14a\x04\x11W_\x80\xFD[\x80c(\x06\xE3\xD6\x14a\x03\xBCW\x80c*q\x17R\x14a\x03\xC4W_\x80\xFD[\x80c\x0C\x08\xBF\x88\x11a\x02pW\x80c\x1B\xFC\xE8S\x11a\x02VW\x80c\x1B\xFC\xE8S\x14a\x039W\x80c\"M~Y\x14a\x03ZW\x80c$\x8A\x9C\xA3\x14a\x03\x9AW_\x80\xFD[\x80c\x0C\x08\xBF\x88\x14a\x03$W\x80c\x1A,*+\x14a\x03,W_\x80\xFD[\x80c\x04o}\xA2\x11a\x02\xA0W\x80c\x04o}\xA2\x14a\x02\xFFW\x80c\n\xA6\"\x0B\x14a\x03\tW\x80c\n\xAF\xFD*\x14a\x03\x11W_\x80\xFD[\x80c\x01\xFF\xC9\xA7\x14a\x02\xBBW\x80c\x02-c\xFB\x14a\x02\xE3W[_\x80\xFD[a\x02\xCEa\x02\xC96`\x04a\x1C+V[a\x06\xE9V[`@Q\x90\x15\x15\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[b\x06\x97\x80[`@Qe\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01a\x02\xDAV[a\x03\x07a\x07DV[\0[a\x03\x07a\x07\xDDV[a\x03\x07a\x03\x1F6`\x04a\x1C\x8DV[a\x07\xF2V[a\x03\x07a\t\x04V[`\x06Ta\x02\xCE\x90`\xFF\x16\x81V[a\x03La\x03G6`\x04a\x1C\xA6V[a\t\x8CV[`@Q\x90\x81R` \x01a\x02\xDAV[a\x03usB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0B\x81V[`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01a\x02\xDAV[a\x03La\x03\xA86`\x04a\x1C\xA6V[_\x90\x81R` \x81\x90R`@\x90 `\x01\x01T\x90V[a\x03\x07a\t\x96V[a\x03L\x7F4\xAF\xC7e\x94\xEBVkg\xBA\xB6\x9D8q\xC5\xEFwl\xA6\xCFq\x8B(\x1A\xF9\xF9\xDFw\xDB\xFD\xEBr\x81V[a\x03\x07a\x03\xF96`\x04a\x1C\xBDV[a\x0BrV[a\x03\x07a\x04\x0C6`\x04a\x1C\xBDV[a\x0B\xB3V[`\x04Ta\x03u\x90s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[a\x03\x07a\x04?6`\x04a\x1C\x8DV[a\x0C\xBDV[a\x03L\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[a\x03\x07a\x04y6`\x04a\x1C\x8DV[a\r\xCEV[a\x03\x07a\x04\x8C6`\x04a\x1C\xE7V[a\r\xE1V[a\x03L\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[a\x03L\x7F\xA5\x86=O\xAE\xD7?D\x181\xBF+UU\x0C\xDB\xFE\xCBP\x80\xDA\xD25.\xC84\xA2\xBA\xF1Z\xAB\xDC\x81V[a\x03L\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[a\x03L\x7FGd\xE5\x9FN\r\xD9\xEC}\xF7l\\\xD0\xED\xC4\xBC\x07\x90;\xF25\xAB\x0E\x000\xCCk~nR\xF2t\x81V[`\x02Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a\x03uV[a\x03\x07a\r\xF4V[`\x03Ta\x03u\x90s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[a\x03ua\x0FZV[a\x02\xCEa\x05\x896`\x04a\x1C\xBDV[_\x91\x82R` \x82\x81R`@\x80\x84 s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x93\x90\x93\x16\x84R\x91\x90R\x90 T`\xFF\x16\x90V[a\x03L`\x05T\x81V[a\x05\xCFa\x0F\x7FV[`@\x80Qe\xFF\xFF\xFF\xFF\xFF\xFF\x93\x84\x16\x81R\x92\x90\x91\x16` \x83\x01R\x01a\x02\xDAV[a\x03L_\x81V[a\x03L\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[a\x03L\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[a\x02\xE8a\x0F\xF9V[a\x03\x07a\x10\x96V[`\x01T`@\x80Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x16\x81Rt\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x92\x04e\xFF\xFF\xFF\xFF\xFF\xFF\x16` \x83\x01R\x01a\x02\xDAV[a\x03\x07a\x06\xAD6`\x04a\x1C\xBDV[a\x10\xF2V[a\x03\x07a\x113V[a\x03L\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[a\x03La\x11EV[_\x7F\xFF\xFF\xFF\xFF\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\x82\x16\x7F1I\x87\x86\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\x14\x80a\x07>WPa\x07>\x82a\x11\\V[\x92\x91PPV[_a\x07N\x81a\x11\xF2V[`\x06T`\xFF\x16a\x07\x8AW`@Q\x7F\xF5N\xEFV\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\x01`@Q\x80\x91\x03\x90\xFD[`\x06\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x16\x90U`@Q\x7F\xAB_m\xAC\xF9:&z\x93\xA53\xDE\x8AV7\r\xE84\x1B\xBD\x81\x02\x01s\x07\xE7\xBE7\\=\xDAj\x90_\x90\xA1PV[_a\x07\xE7\x81a\x11\xF2V[a\x07\xEFa\x11\xFCV[PV[\x7F\xA5\x86=O\xAE\xD7?D\x181\xBF+UU\x0C\xDB\xFE\xCBP\x80\xDA\xD25.\xC84\xA2\xBA\xF1Z\xAB\xDCa\x08\x1C\x81a\x11\xF2V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16a\x08iW`@Q\x7F\xAC\x0B>!\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\x01`@Q\x80\x91\x03\x90\xFD[`\x04Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x81\x16\x90\x83\x16\x81\x14a\x08\xFFW`\x04\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x85\x81\x16\x91\x82\x17\x90\x92U`@Q\x90\x91\x83\x16\x90\x7F\xE7.\xAFj\xDD\xAA\x19_<\x83\tP1\xDD\x08\xF3\xA9h\x08\xDC\xF0G\xBA\xBE\xD1\xFENOi\xD6\xC6\"\x90_\x90\xA3[PPPV[\x7F4\xAF\xC7e\x94\xEBVkg\xBA\xB6\x9D8q\xC5\xEFwl\xA6\xCFq\x8B(\x1A\xF9\xF9\xDFw\xDB\xFD\xEBra\t.\x81a\x11\xF2V[a\t6a\r\xF4V[`\x06\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x16`\x01\x17\x90U`@Q\x7Fm\r\x90XX4\x98\x0B\xD0\xE5`3A\xFFP\xB0cI\xC1\x1E\x0B\xF9$\x1D\x03\xF6\xD0e\xF1*&+\x90_\x90\xA1PV[_a\x07>\x82a\x12\x08V[_a\t\xA0\x81a\x11\xF2V[`\x06T`\xFF\x16a\t\xDCW`@Q\x7F\xF5N\xEFV\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\x01`@Q\x80\x91\x03\x90\xFD[`@Q\x7Fp\xA0\x821\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\x81R0`\x04\x82\x01R_\x90sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0B\x90cp\xA0\x821\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\nDW=_\x80>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\nh\x91\x90a\x1D\x0CV[\x90P\x80\x15a\x0BnW`\x03T`@Q\x7F\xA9\x05\x9C\xBB\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\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16`\x04\x82\x01R`$\x81\x01\x82\x90RsB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0B\x90c\xA9\x05\x9C\xBB\x90`D\x01` `@Q\x80\x83\x03\x81_\x87Z\xF1\x15\x80\x15a\n\xF8W=_\x80>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x0B\x1C\x91\x90a\x1D#V[P`\x03T`@Q\x82\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x90\x7FcR\xC58,JEx\xE7\x12D\x9C\xA6^\x83\xCD\xB3\x92\xD0E\xDF\xCF\x1C\xAD\x96\x15\x18\x9D\xB2\xDA$K\x90` \x01[`@Q\x80\x91\x03\x90\xA2[PPV[\x81a\x0B\xA9W`@Q\x7F?\xC3\xC2z\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\x01`@Q\x80\x91\x03\x90\xFD[a\x0Bn\x82\x82a\x13\xA6V[\x81\x15\x80\x15a\x0B\xDBWP`\x02Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x81\x16\x91\x16\x14[\x15a\x0C\xB3W`\x01Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x90t\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04e\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81\x15\x15\x80a\x0C/WPe\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x15[\x80a\x0CBWPBe\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16\x10\x15[\x15a\x0C\x88W`@Q\x7F\x19\xCA^\xBB\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\x81Re\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16`\x04\x82\x01R`$\x01[`@Q\x80\x91\x03\x90\xFD[PP`\x01\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90U[a\x0Bn\x82\x82a\x13\xD0V[\x7FGd\xE5\x9FN\r\xD9\xEC}\xF7l\\\xD0\xED\xC4\xBC\x07\x90;\xF25\xAB\x0E\x000\xCCk~nR\xF2ta\x0C\xE7\x81a\x11\xF2V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16a\r4W`@Q\x7F\xAC\x0B>!\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\x01`@Q\x80\x91\x03\x90\xFD[`\x03Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x81\x16\x90\x83\x16\x81\x14a\x08\xFFW`\x03\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x85\x81\x16\x91\x82\x17\x90\x92U`@Q\x90\x91\x83\x16\x90\x7F\xD4\x87\xB3_\x97\x93\x07\xE5\x81\xE6\xE2\xD4\xB6\xAA\x87\xDB\xDD\xF2\xF1$\xCE\xF0+P\xE3y/L1\xC7lz\x90_\x90\xA3PPPV[_a\r\xD8\x81a\x11\xF2V[a\x0Bn\x82a\x14)V[_a\r\xEB\x81a\x11\xF2V[a\x0Bn\x82a\x14\xA1V[`\x06T`\xFF\x16\x15a\x0E1W`@Q\x7F\x07\xC6=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x0F\x07\x91\x90a\x1D#V[P`\x04T`@Q\x82\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x90\x7F\xC7y\x88\x91\x86A\x87fZ\xC6\xDD\x11\x92\x86\xE4N\xC1?\x01E'\xAE\xEB+\x8E\xB3\xFDA=\xF91y\x90` \x01`@Q\x80\x91\x03\x90\xA2PV[_a\x0Fz`\x02Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90V[\x90P\x90V[`\x02T_\x90z\x01\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\x90\x04e\xFF\xFF\xFF\xFF\xFF\xFF\x16\x80\x15\x15\x80\x15a\x0F\xC1WPBe\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16\x10\x15[a\x0F\xCCW_\x80a\x0F\xF1V[`\x02Tt\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04e\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81[\x91P\x91P\x90\x91V[`\x02T_\x90z\x01\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\x90\x04e\xFF\xFF\xFF\xFF\xFF\xFF\x16\x80\x15\x15\x80\x15a\x10:WPBe\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16\x10[a\x10lW`\x01Tz\x01\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\x90\x04e\xFF\xFF\xFF\xFF\xFF\xFF\x16a\x10\x90V[`\x02Tt\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04e\xFF\xFF\xFF\xFF\xFF\xFF\x16[\x91PP\x90V[`\x01Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x163\x81\x14a\x10\xEAW`@Q\x7F\xC2,\x80\"\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\x81R3`\x04\x82\x01R`$\x01a\x0C\x7FV[a\x07\xEFa\x15\x10V[\x81a\x11)W`@Q\x7F?\xC3\xC2z\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\x01`@Q\x80\x91\x03\x90\xFD[a\x0Bn\x82\x82a\x16\x01V[_a\x11=\x81a\x11\xF2V[a\x07\xEFa\x16%V[_`\x05Ta\x11RBa\t\x8CV[a\x0Fz\x91\x90a\x1D\x82V[_\x7F\xFF\xFF\xFF\xFF\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\x82\x16\x7Fye\xDB\x0B\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\x14\x80a\x07>WP\x7F\x01\xFF\xC9\xA7\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\x7F\xFF\xFF\xFF\xFF\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\x83\x16\x14a\x07>V[a\x07\xEF\x813a\x16/V[a\x12\x06_\x80a\x16\xB4V[V[_\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x82\x10\x15a\x128WP_\x91\x90PV[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x82\x11\x15a\x12\xF7W`\x05T`@Q\x7Fp\xA0\x821\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\x81R0`\x04\x82\x01RsB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0B\x90cp\xA0\x821\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x12\xC9W=_\x80>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x12\xED\x91\x90a\x1D\x0CV[a\x07>\x91\x90a\x1DoV[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x13c\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x85a\x1D\x82V[a\x13m\x91\x90a\x1D\x95V[a\x13w\x91\x90a\x1D\xCDV[a\x07>\x90\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x1DoV[\x91\x90PV[_\x82\x81R` \x81\x90R`@\x90 `\x01\x01Ta\x13\xC0\x81a\x11\xF2V[a\x13\xCA\x83\x83a\x18\rV[PPPPV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x163\x14a\x14\x1FW`@Q\x7Ff\x97\xB22\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\x01`@Q\x80\x91\x03\x90\xFD[a\x08\xFF\x82\x82a\x18\xD2V[_a\x142a\x0F\xF9V[a\x14;Ba\x193V[a\x14E\x91\x90a\x1D\xE4V[\x90Pa\x14Q\x82\x82a\x19\x82V[`@Qe\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x16\x90\x7F3w\xDCD$\x1Ew\x9D\xD0j\xFA\xB5\xB7\x88\xA3\\\xA5\xF3\xB7x\x83n)\x90\xBD\xB2j*K.^\xD6\x90` \x01a\x0BeV[_a\x14\xAB\x82a\x1A\x1DV[a\x14\xB4Ba\x193V[a\x14\xBE\x91\x90a\x1D\xE4V[\x90Pa\x14\xCA\x82\x82a\x16\xB4V[`@\x80Qe\xFF\xFF\xFF\xFF\xFF\xFF\x80\x85\x16\x82R\x83\x16` \x82\x01R\x7F\xF1\x03\x8C\x18\xCF\x84\xA5nC/\xDB\xFA\xF7F\x92K~\xA5\x11\xDF\xE0:e\x06\xA0\xCE\xBAH\x88x\x8D\x9B\x91\x01`@Q\x80\x91\x03\x90\xA1PPV[`\x01Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x90t\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04e\xFF\xFF\xFF\xFF\xFF\xFF\x16\x80\x15\x80a\x15`WPBe\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16\x10\x15[\x15a\x15\xA1W`@Q\x7F\x19\xCA^\xBB\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\x81Re\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16`\x04\x82\x01R`$\x01a\x0C\x7FV[a\x15\xC9_a\x15\xC4`\x02Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90V[a\x18\xD2V[Pa\x15\xD4_\x83a\x18\rV[PP`\x01\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\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\x16\x90UPV[_\x82\x81R` \x81\x90R`@\x90 `\x01\x01Ta\x16\x1B\x81a\x11\xF2V[a\x13\xCA\x83\x83a\x18\xD2V[a\x12\x06_\x80a\x19\x82V[_\x82\x81R` \x81\x81R`@\x80\x83 s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x85\x16\x84R\x90\x91R\x90 T`\xFF\x16a\x0BnW`@Q\x7F\xE2Q}?\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\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16`\x04\x82\x01R`$\x81\x01\x83\x90R`D\x01a\x0C\x7FV[`\x02Tz\x01\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\x90\x04e\xFF\xFF\xFF\xFF\xFF\xFF\x16\x80\x15a\x17\x88WBe\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16\x10\x15a\x17_W`\x02T`\x01\x80Ty\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16t\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x92\x04e\xFF\xFF\xFF\xFF\xFF\xFF\x16z\x01\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\x02\x91\x90\x91\x17\x90Ua\x17\x88V[`@Q\x7F+\x1F\xA2\xED\xAF\xE6\xF7\xB9\xE9|\x1A\x9E\x0C6`\xE6E\xBE\xB2\xDC\xAA-E\xBD\xBF\x9B\xEA\xF5G.\x1E\xC5\x90_\x90\xA1[P`\x02\x80Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16t\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0e\xFF\xFF\xFF\xFF\xFF\xFF\x94\x85\x16\x02y\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x17z\x01\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\x92\x90\x93\x16\x91\x90\x91\x02\x91\x90\x91\x17\x90UV[_\x82a\x18\xC1W_a\x183`\x02Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14a\x18\x80W`@Q\x7F?\xC3\xC2z\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\x01`@Q\x80\x91\x03\x90\xFD[`\x02\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x16\x17\x90U[a\x18\xCB\x83\x83a\x1AdV[\x93\x92PPPV[_\x82\x15\x80\x15a\x18\xFBWP`\x02Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x81\x16\x91\x16\x14[\x15a\x19)W`\x02\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x90U[a\x18\xCB\x83\x83a\x1B]V[_e\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x15a\x19~W`@Q\x7Fm\xFC\xC6P\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`0`\x04\x82\x01R`$\x81\x01\x83\x90R`D\x01a\x0C\x7FV[P\x90V[`\x01\x80Tt\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0e\xFF\xFF\xFF\xFF\xFF\xFF\x84\x81\x16\x82\x02\x7F\xFF\xFF\xFF\xFF\xFF\xFF\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\x84\x16s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x88\x16\x17\x17\x90\x93U\x90\x04\x16\x80\x15a\x08\xFFW`@Q\x7F\x88\x86\xEB\xFCBY\xAB\xDB\xC1f\x01\xDD\x8F\xB5g\x8ET\x87\x8FG\xB3\xC3H6\xCF\xC5\x11T\xA9`Q\t\x90_\x90\xA1PPPV[_\x80a\x1A'a\x0F\xF9V[\x90P\x80e\xFF\xFF\xFF\xFF\xFF\xFF\x16\x83e\xFF\xFF\xFF\xFF\xFF\xFF\x16\x11a\x1AOWa\x1AJ\x83\x82a\x1E\nV[a\x18\xCBV[a\x18\xCBe\xFF\xFF\xFF\xFF\xFF\xFF\x84\x16b\x06\x97\x80a\x1C\x16V[_\x82\x81R` \x81\x81R`@\x80\x83 s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x85\x16\x84R\x90\x91R\x81 T`\xFF\x16a\x1BVW_\x83\x81R` \x81\x81R`@\x80\x83 s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x86\x16\x84R\x90\x91R\x90 \x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x16`\x01\x17\x90Ua\x1A\xF43\x90V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x82s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x84\x7F/\x87\x88\x11~~\xFF\x1D\x82\xE9&\xECyI\x01\xD1|x\x02JP'\t@0E@\xA73eo\r`@Q`@Q\x80\x91\x03\x90\xA4P`\x01a\x07>V[P_a\x07>V[_\x82\x81R` \x81\x81R`@\x80\x83 s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x85\x16\x84R\x90\x91R\x81 T`\xFF\x16\x15a\x1BVW_\x83\x81R` \x81\x81R`@\x80\x83 s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x86\x16\x80\x85R\x92R\x80\x83 \x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x16\x90UQ3\x92\x86\x91\x7F\xF69\x1F\\2\xD9\xC6\x9D*G\xEAg\x0BD)t\xB595\xD1\xED\xC7\xFDd\xEB!\xE0G\xA89\x17\x1B\x91\x90\xA4P`\x01a\x07>V[_\x81\x83\x10a\x1C$W\x81a\x18\xCBV[P\x90\x91\x90PV[_` \x82\x84\x03\x12\x15a\x1C;W_\x80\xFD[\x815\x7F\xFF\xFF\xFF\xFF\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\x81\x16\x81\x14a\x18\xCBW_\x80\xFD[\x805s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x13\xA1W_\x80\xFD[_` \x82\x84\x03\x12\x15a\x1C\x9DW_\x80\xFD[a\x18\xCB\x82a\x1CjV[_` \x82\x84\x03\x12\x15a\x1C\xB6W_\x80\xFD[P5\x91\x90PV[_\x80`@\x83\x85\x03\x12\x15a\x1C\xCEW_\x80\xFD[\x825\x91Pa\x1C\xDE` \x84\x01a\x1CjV[\x90P\x92P\x92\x90PV[_` \x82\x84\x03\x12\x15a\x1C\xF7W_\x80\xFD[\x815e\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x18\xCBW_\x80\xFD[_` \x82\x84\x03\x12\x15a\x1D\x1CW_\x80\xFD[PQ\x91\x90PV[_` \x82\x84\x03\x12\x15a\x1D3W_\x80\xFD[\x81Q\x80\x15\x15\x81\x14a\x18\xCBW_\x80\xFD[\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_R`\x11`\x04R`$_\xFD[\x80\x82\x01\x80\x82\x11\x15a\x07>Wa\x07>a\x1DBV[\x81\x81\x03\x81\x81\x11\x15a\x07>Wa\x07>a\x1DBV[_\x82a\x1D\xC8W\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_R`\x12`\x04R`$_\xFD[P\x04\x90V[\x80\x82\x02\x81\x15\x82\x82\x04\x84\x14\x17a\x07>Wa\x07>a\x1DBV[e\xFF\xFF\xFF\xFF\xFF\xFF\x81\x81\x16\x83\x82\x16\x01\x90\x80\x82\x11\x15a\x1E\x03Wa\x1E\x03a\x1DBV[P\x92\x91PPV[e\xFF\xFF\xFF\xFF\xFF\xFF\x82\x81\x16\x82\x82\x16\x03\x90\x80\x82\x11\x15a\x1E\x03Wa\x1E\x03a\x1DBV\xFE\xA1dsolcC\0\x08\x19\0\n4\xAF\xC7e\x94\xEBVkg\xBA\xB6\x9D8q\xC5\xEFwl\xA6\xCFq\x8B(\x1A\xF9\xF9\xDFw\xDB\xFD\xEBr", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x608060405234801561000f575f80fd5b50600436106102b7575f3560e01c80636efd06c111610171578063a217fddf116100d2578063cf6eefb711610088578063d602b9fd1161006e578063d602b9fd146106b2578063efbe1c1c146106ba578063fbccedae146106e1575f80fd5b8063cf6eefb714610653578063d547741f1461069f575f80fd5b8063be9a6555116100b8578063be9a65551461061c578063cc8463c814610643578063cefc14291461064b575f80fd5b8063a217fddf146105ee578063b297c551146105f5575f80fd5b80638a81694c1161012757806391d148541161010d57806391d148541461057b57806396132521146105be578063a1eda53c146105c7575f80fd5b80638a81694c146105535780638da5cb5b14610573575f80fd5b80637ca40101116101575780637ca401011461050657806384ef8ffc1461052d57806386d1a69f1461054b575f80fd5b80636efd06c1146104b85780637313ee5a146104df575f80fd5b80632806e3d61161021b57806350ad2555116101d1578063634e93da116101b7578063634e93da1461046b578063649a5ec71461047e578063677caf8114610491575f80fd5b806350ad25551461043157806350bfeadc14610444575f80fd5b80632f2ff15d116102015780632f2ff15d146103eb57806336568abe146103fe57806338af3eed14610411575f80fd5b80632806e3d6146103bc5780632a711752146103c4575f80fd5b80630c08bf88116102705780631bfce853116102565780631bfce85314610339578063224d7e591461035a578063248a9ca31461039a575f80fd5b80630c08bf88146103245780631a2c2a2b1461032c575f80fd5b8063046f7da2116102a0578063046f7da2146102ff5780630aa6220b146103095780630aaffd2a14610311575f80fd5b806301ffc9a7146102bb578063022d63fb146102e3575b5f80fd5b6102ce6102c9366004611c2b565b6106e9565b60405190151581526020015b60405180910390f35b620697805b60405165ffffffffffff90911681526020016102da565b610307610744565b005b6103076107dd565b61030761031f366004611c8d565b6107f2565b610307610904565b6006546102ce9060ff1681565b61034c610347366004611ca6565b61098c565b6040519081526020016102da565b61037573420000000000000000000000000000000000004281565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016102da565b61034c6103a8366004611ca6565b5f9081526020819052604090206001015490565b610307610996565b61034c7f34afc76594eb566b67bab69d3871c5ef776ca6cf718b281af9f9df77dbfdeb7281565b6103076103f9366004611cbd565b610b72565b61030761040c366004611cbd565b610bb3565b6004546103759073ffffffffffffffffffffffffffffffffffffffff1681565b61030761043f366004611c8d565b610cbd565b61034c7f000000000000000000000000000000000000000000000000000000000000000081565b610307610479366004611c8d565b610dce565b61030761048c366004611ce7565b610de1565b61034c7f000000000000000000000000000000000000000000000000000000000000000081565b61034c7fa5863d4faed73f441831bf2b55550cdbfecb5080dad2352ec834a2baf15aabdc81565b61034c7f000000000000000000000000000000000000000000000000000000000000000081565b61034c7f4764e59f4e0dd9ec7df76c5cd0edc4bc07903bf235ab0e0030cc6b7e6e52f27481565b60025473ffffffffffffffffffffffffffffffffffffffff16610375565b610307610df4565b6003546103759073ffffffffffffffffffffffffffffffffffffffff1681565b610375610f5a565b6102ce610589366004611cbd565b5f9182526020828152604080842073ffffffffffffffffffffffffffffffffffffffff93909316845291905290205460ff1690565b61034c60055481565b6105cf610f7f565b6040805165ffffffffffff9384168152929091166020830152016102da565b61034c5f81565b61034c7f000000000000000000000000000000000000000000000000000000000000000081565b61034c7f000000000000000000000000000000000000000000000000000000000000000081565b6102e8610ff9565b610307611096565b6001546040805173ffffffffffffffffffffffffffffffffffffffff831681527401000000000000000000000000000000000000000090920465ffffffffffff166020830152016102da565b6103076106ad366004611cbd565b6110f2565b610307611133565b61034c7f000000000000000000000000000000000000000000000000000000000000000081565b61034c611145565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f3149878600000000000000000000000000000000000000000000000000000000148061073e575061073e8261115c565b92915050565b5f61074e816111f2565b60065460ff1661078a576040517ff54eef5600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600680547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690556040517fab5f6dacf93a267a93a533de8a56370de8341bbd8102017307e7be375c3dda6a905f90a150565b5f6107e7816111f2565b6107ef6111fc565b50565b7fa5863d4faed73f441831bf2b55550cdbfecb5080dad2352ec834a2baf15aabdc61081c816111f2565b73ffffffffffffffffffffffffffffffffffffffff8216610869576040517fac0b3e2100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60045473ffffffffffffffffffffffffffffffffffffffff90811690831681146108ff57600480547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff85811691821790925560405190918316907fe72eaf6addaa195f3c83095031dd08f3a96808dcf047babed1fe4e4f69d6c622905f90a35b505050565b7f34afc76594eb566b67bab69d3871c5ef776ca6cf718b281af9f9df77dbfdeb7261092e816111f2565b610936610df4565b600680547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790556040517f6d0d90585834980bd0e5603341ff50b06349c11e0bf9241d03f6d065f12a262b905f90a150565b5f61073e82611208565b5f6109a0816111f2565b60065460ff166109dc576040517ff54eef5600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201525f90734200000000000000000000000000000000000042906370a0823190602401602060405180830381865afa158015610a44573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a689190611d0c565b90508015610b6e576003546040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091166004820152602481018290527342000000000000000000000000000000000000429063a9059cbb906044016020604051808303815f875af1158015610af8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b1c9190611d23565b5060035460405182815273ffffffffffffffffffffffffffffffffffffffff909116907f6352c5382c4a4578e712449ca65e83cdb392d045dfcf1cad9615189db2da244b906020015b60405180910390a25b5050565b81610ba9576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610b6e82826113a6565b81158015610bdb575060025473ffffffffffffffffffffffffffffffffffffffff8281169116145b15610cb35760015473ffffffffffffffffffffffffffffffffffffffff81169074010000000000000000000000000000000000000000900465ffffffffffff1681151580610c2f575065ffffffffffff8116155b80610c4257504265ffffffffffff821610155b15610c88576040517f19ca5ebb00000000000000000000000000000000000000000000000000000000815265ffffffffffff821660048201526024015b60405180910390fd5b5050600180547fffffffffffff000000000000ffffffffffffffffffffffffffffffffffffffff1690555b610b6e82826113d0565b7f4764e59f4e0dd9ec7df76c5cd0edc4bc07903bf235ab0e0030cc6b7e6e52f274610ce7816111f2565b73ffffffffffffffffffffffffffffffffffffffff8216610d34576040517fac0b3e2100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60035473ffffffffffffffffffffffffffffffffffffffff90811690831681146108ff57600380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff85811691821790925560405190918316907fd487b35f979307e581e6e2d4b6aa87dbddf2f124cef02b50e3792f4c31c76c7a905f90a3505050565b5f610dd8816111f2565b610b6e82611429565b5f610deb816111f2565b610b6e826114a1565b60065460ff1615610e31576040517f07c63c5a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f610e3a611145565b905080156107ef578060055f828254610e539190611d6f565b9091555050600480546040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90911691810191909152602481018290527342000000000000000000000000000000000000429063a9059cbb906044016020604051808303815f875af1158015610ee3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f079190611d23565b5060045460405182815273ffffffffffffffffffffffffffffffffffffffff909116907fc7798891864187665ac6dd119286e44ec13f014527aeeb2b8eb3fd413df931799060200160405180910390a250565b5f610f7a60025473ffffffffffffffffffffffffffffffffffffffff1690565b905090565b6002545f907a010000000000000000000000000000000000000000000000000000900465ffffffffffff168015158015610fc157504265ffffffffffff821610155b610fcc575f80610ff1565b60025474010000000000000000000000000000000000000000900465ffffffffffff16815b915091509091565b6002545f907a010000000000000000000000000000000000000000000000000000900465ffffffffffff16801515801561103a57504265ffffffffffff8216105b61106c576001547a010000000000000000000000000000000000000000000000000000900465ffffffffffff16611090565b60025474010000000000000000000000000000000000000000900465ffffffffffff165b91505090565b60015473ffffffffffffffffffffffffffffffffffffffff163381146110ea576040517fc22c8022000000000000000000000000000000000000000000000000000000008152336004820152602401610c7f565b6107ef611510565b81611129576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610b6e8282611601565b5f61113d816111f2565b6107ef611625565b5f6005546111524261098c565b610f7a9190611d82565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000148061073e57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff0000000000000000000000000000000000000000000000000000000083161461073e565b6107ef813361162f565b6112065f806116b4565b565b5f7f000000000000000000000000000000000000000000000000000000000000000082101561123857505f919050565b7f00000000000000000000000000000000000000000000000000000000000000008211156112f7576005546040517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152734200000000000000000000000000000000000042906370a0823190602401602060405180830381865afa1580156112c9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112ed9190611d0c565b61073e9190611d6f565b7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006113637f000000000000000000000000000000000000000000000000000000000000000085611d82565b61136d9190611d95565b6113779190611dcd565b61073e907f0000000000000000000000000000000000000000000000000000000000000000611d6f565b919050565b5f828152602081905260409020600101546113c0816111f2565b6113ca838361180d565b50505050565b73ffffffffffffffffffffffffffffffffffffffff8116331461141f576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6108ff82826118d2565b5f611432610ff9565b61143b42611933565b6114459190611de4565b90506114518282611982565b60405165ffffffffffff8216815273ffffffffffffffffffffffffffffffffffffffff8316907f3377dc44241e779dd06afab5b788a35ca5f3b778836e2990bdb26a2a4b2e5ed690602001610b65565b5f6114ab82611a1d565b6114b442611933565b6114be9190611de4565b90506114ca82826116b4565b6040805165ffffffffffff8085168252831660208201527ff1038c18cf84a56e432fdbfaf746924b7ea511dfe03a6506a0ceba4888788d9b910160405180910390a15050565b60015473ffffffffffffffffffffffffffffffffffffffff81169074010000000000000000000000000000000000000000900465ffffffffffff1680158061156057504265ffffffffffff821610155b156115a1576040517f19ca5ebb00000000000000000000000000000000000000000000000000000000815265ffffffffffff82166004820152602401610c7f565b6115c95f6115c460025473ffffffffffffffffffffffffffffffffffffffff1690565b6118d2565b506115d45f8361180d565b5050600180547fffffffffffff000000000000000000000000000000000000000000000000000016905550565b5f8281526020819052604090206001015461161b816111f2565b6113ca83836118d2565b6112065f80611982565b5f8281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16610b6e576040517fe2517d3f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8216600482015260248101839052604401610c7f565b6002547a010000000000000000000000000000000000000000000000000000900465ffffffffffff168015611788574265ffffffffffff8216101561175f576002546001805479ffffffffffffffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000090920465ffffffffffff167a01000000000000000000000000000000000000000000000000000002919091179055611788565b6040517f2b1fa2edafe6f7b9e97c1a9e0c3660e645beb2dcaa2d45bdbf9beaf5472e1ec5905f90a15b506002805473ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000065ffffffffffff9485160279ffffffffffffffffffffffffffffffffffffffffffffffffffff16177a0100000000000000000000000000000000000000000000000000009290931691909102919091179055565b5f826118c1575f61183360025473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff1614611880576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84161790555b6118cb8383611a64565b9392505050565b5f821580156118fb575060025473ffffffffffffffffffffffffffffffffffffffff8381169116145b1561192957600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001690555b6118cb8383611b5d565b5f65ffffffffffff82111561197e576040517f6dfcc6500000000000000000000000000000000000000000000000000000000081526030600482015260248101839052604401610c7f565b5090565b600180547401000000000000000000000000000000000000000065ffffffffffff84811682027fffffffffffff0000000000000000000000000000000000000000000000000000841673ffffffffffffffffffffffffffffffffffffffff8816171790935590041680156108ff576040517f8886ebfc4259abdbc16601dd8fb5678e54878f47b3c34836cfc51154a9605109905f90a1505050565b5f80611a27610ff9565b90508065ffffffffffff168365ffffffffffff1611611a4f57611a4a8382611e0a565b6118cb565b6118cb65ffffffffffff841662069780611c16565b5f8281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915281205460ff16611b56575f8381526020818152604080832073ffffffffffffffffffffffffffffffffffffffff86168452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055611af43390565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a450600161073e565b505f61073e565b5f8281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915281205460ff1615611b56575f8381526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8616808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a450600161073e565b5f818310611c2457816118cb565b5090919050565b5f60208284031215611c3b575f80fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146118cb575f80fd5b803573ffffffffffffffffffffffffffffffffffffffff811681146113a1575f80fd5b5f60208284031215611c9d575f80fd5b6118cb82611c6a565b5f60208284031215611cb6575f80fd5b5035919050565b5f8060408385031215611cce575f80fd5b82359150611cde60208401611c6a565b90509250929050565b5f60208284031215611cf7575f80fd5b813565ffffffffffff811681146118cb575f80fd5b5f60208284031215611d1c575f80fd5b5051919050565b5f60208284031215611d33575f80fd5b815180151581146118cb575f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8082018082111561073e5761073e611d42565b8181038181111561073e5761073e611d42565b5f82611dc8577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b808202811582820484141761073e5761073e611d42565b65ffffffffffff818116838216019080821115611e0357611e03611d42565b5092915050565b65ffffffffffff828116828216039080821115611e0357611e03611d4256fea164736f6c6343000819000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R4\x80\x15a\0\x0FW_\x80\xFD[P`\x046\x10a\x02\xB7W_5`\xE0\x1C\x80cn\xFD\x06\xC1\x11a\x01qW\x80c\xA2\x17\xFD\xDF\x11a\0\xD2W\x80c\xCFn\xEF\xB7\x11a\0\x88W\x80c\xD6\x02\xB9\xFD\x11a\0nW\x80c\xD6\x02\xB9\xFD\x14a\x06\xB2W\x80c\xEF\xBE\x1C\x1C\x14a\x06\xBAW\x80c\xFB\xCC\xED\xAE\x14a\x06\xE1W_\x80\xFD[\x80c\xCFn\xEF\xB7\x14a\x06SW\x80c\xD5Gt\x1F\x14a\x06\x9FW_\x80\xFD[\x80c\xBE\x9AeU\x11a\0\xB8W\x80c\xBE\x9AeU\x14a\x06\x1CW\x80c\xCC\x84c\xC8\x14a\x06CW\x80c\xCE\xFC\x14)\x14a\x06KW_\x80\xFD[\x80c\xA2\x17\xFD\xDF\x14a\x05\xEEW\x80c\xB2\x97\xC5Q\x14a\x05\xF5W_\x80\xFD[\x80c\x8A\x81iL\x11a\x01'W\x80c\x91\xD1HT\x11a\x01\rW\x80c\x91\xD1HT\x14a\x05{W\x80c\x96\x13%!\x14a\x05\xBEW\x80c\xA1\xED\xA5<\x14a\x05\xC7W_\x80\xFD[\x80c\x8A\x81iL\x14a\x05SW\x80c\x8D\xA5\xCB[\x14a\x05sW_\x80\xFD[\x80c|\xA4\x01\x01\x11a\x01WW\x80c|\xA4\x01\x01\x14a\x05\x06W\x80c\x84\xEF\x8F\xFC\x14a\x05-W\x80c\x86\xD1\xA6\x9F\x14a\x05KW_\x80\xFD[\x80cn\xFD\x06\xC1\x14a\x04\xB8W\x80cs\x13\xEEZ\x14a\x04\xDFW_\x80\xFD[\x80c(\x06\xE3\xD6\x11a\x02\x1BW\x80cP\xAD%U\x11a\x01\xD1W\x80ccN\x93\xDA\x11a\x01\xB7W\x80ccN\x93\xDA\x14a\x04kW\x80cd\x9A^\xC7\x14a\x04~W\x80cg|\xAF\x81\x14a\x04\x91W_\x80\xFD[\x80cP\xAD%U\x14a\x041W\x80cP\xBF\xEA\xDC\x14a\x04DW_\x80\xFD[\x80c//\xF1]\x11a\x02\x01W\x80c//\xF1]\x14a\x03\xEBW\x80c6V\x8A\xBE\x14a\x03\xFEW\x80c8\xAF>\xED\x14a\x04\x11W_\x80\xFD[\x80c(\x06\xE3\xD6\x14a\x03\xBCW\x80c*q\x17R\x14a\x03\xC4W_\x80\xFD[\x80c\x0C\x08\xBF\x88\x11a\x02pW\x80c\x1B\xFC\xE8S\x11a\x02VW\x80c\x1B\xFC\xE8S\x14a\x039W\x80c\"M~Y\x14a\x03ZW\x80c$\x8A\x9C\xA3\x14a\x03\x9AW_\x80\xFD[\x80c\x0C\x08\xBF\x88\x14a\x03$W\x80c\x1A,*+\x14a\x03,W_\x80\xFD[\x80c\x04o}\xA2\x11a\x02\xA0W\x80c\x04o}\xA2\x14a\x02\xFFW\x80c\n\xA6\"\x0B\x14a\x03\tW\x80c\n\xAF\xFD*\x14a\x03\x11W_\x80\xFD[\x80c\x01\xFF\xC9\xA7\x14a\x02\xBBW\x80c\x02-c\xFB\x14a\x02\xE3W[_\x80\xFD[a\x02\xCEa\x02\xC96`\x04a\x1C+V[a\x06\xE9V[`@Q\x90\x15\x15\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[b\x06\x97\x80[`@Qe\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01a\x02\xDAV[a\x03\x07a\x07DV[\0[a\x03\x07a\x07\xDDV[a\x03\x07a\x03\x1F6`\x04a\x1C\x8DV[a\x07\xF2V[a\x03\x07a\t\x04V[`\x06Ta\x02\xCE\x90`\xFF\x16\x81V[a\x03La\x03G6`\x04a\x1C\xA6V[a\t\x8CV[`@Q\x90\x81R` \x01a\x02\xDAV[a\x03usB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0B\x81V[`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01a\x02\xDAV[a\x03La\x03\xA86`\x04a\x1C\xA6V[_\x90\x81R` \x81\x90R`@\x90 `\x01\x01T\x90V[a\x03\x07a\t\x96V[a\x03L\x7F4\xAF\xC7e\x94\xEBVkg\xBA\xB6\x9D8q\xC5\xEFwl\xA6\xCFq\x8B(\x1A\xF9\xF9\xDFw\xDB\xFD\xEBr\x81V[a\x03\x07a\x03\xF96`\x04a\x1C\xBDV[a\x0BrV[a\x03\x07a\x04\x0C6`\x04a\x1C\xBDV[a\x0B\xB3V[`\x04Ta\x03u\x90s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[a\x03\x07a\x04?6`\x04a\x1C\x8DV[a\x0C\xBDV[a\x03L\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[a\x03\x07a\x04y6`\x04a\x1C\x8DV[a\r\xCEV[a\x03\x07a\x04\x8C6`\x04a\x1C\xE7V[a\r\xE1V[a\x03L\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[a\x03L\x7F\xA5\x86=O\xAE\xD7?D\x181\xBF+UU\x0C\xDB\xFE\xCBP\x80\xDA\xD25.\xC84\xA2\xBA\xF1Z\xAB\xDC\x81V[a\x03L\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[a\x03L\x7FGd\xE5\x9FN\r\xD9\xEC}\xF7l\\\xD0\xED\xC4\xBC\x07\x90;\xF25\xAB\x0E\x000\xCCk~nR\xF2t\x81V[`\x02Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a\x03uV[a\x03\x07a\r\xF4V[`\x03Ta\x03u\x90s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[a\x03ua\x0FZV[a\x02\xCEa\x05\x896`\x04a\x1C\xBDV[_\x91\x82R` \x82\x81R`@\x80\x84 s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x93\x90\x93\x16\x84R\x91\x90R\x90 T`\xFF\x16\x90V[a\x03L`\x05T\x81V[a\x05\xCFa\x0F\x7FV[`@\x80Qe\xFF\xFF\xFF\xFF\xFF\xFF\x93\x84\x16\x81R\x92\x90\x91\x16` \x83\x01R\x01a\x02\xDAV[a\x03L_\x81V[a\x03L\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[a\x03L\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[a\x02\xE8a\x0F\xF9V[a\x03\x07a\x10\x96V[`\x01T`@\x80Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x16\x81Rt\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x92\x04e\xFF\xFF\xFF\xFF\xFF\xFF\x16` \x83\x01R\x01a\x02\xDAV[a\x03\x07a\x06\xAD6`\x04a\x1C\xBDV[a\x10\xF2V[a\x03\x07a\x113V[a\x03L\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[a\x03La\x11EV[_\x7F\xFF\xFF\xFF\xFF\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\x82\x16\x7F1I\x87\x86\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\x14\x80a\x07>WPa\x07>\x82a\x11\\V[\x92\x91PPV[_a\x07N\x81a\x11\xF2V[`\x06T`\xFF\x16a\x07\x8AW`@Q\x7F\xF5N\xEFV\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\x01`@Q\x80\x91\x03\x90\xFD[`\x06\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x16\x90U`@Q\x7F\xAB_m\xAC\xF9:&z\x93\xA53\xDE\x8AV7\r\xE84\x1B\xBD\x81\x02\x01s\x07\xE7\xBE7\\=\xDAj\x90_\x90\xA1PV[_a\x07\xE7\x81a\x11\xF2V[a\x07\xEFa\x11\xFCV[PV[\x7F\xA5\x86=O\xAE\xD7?D\x181\xBF+UU\x0C\xDB\xFE\xCBP\x80\xDA\xD25.\xC84\xA2\xBA\xF1Z\xAB\xDCa\x08\x1C\x81a\x11\xF2V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16a\x08iW`@Q\x7F\xAC\x0B>!\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\x01`@Q\x80\x91\x03\x90\xFD[`\x04Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x81\x16\x90\x83\x16\x81\x14a\x08\xFFW`\x04\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x85\x81\x16\x91\x82\x17\x90\x92U`@Q\x90\x91\x83\x16\x90\x7F\xE7.\xAFj\xDD\xAA\x19_<\x83\tP1\xDD\x08\xF3\xA9h\x08\xDC\xF0G\xBA\xBE\xD1\xFENOi\xD6\xC6\"\x90_\x90\xA3[PPPV[\x7F4\xAF\xC7e\x94\xEBVkg\xBA\xB6\x9D8q\xC5\xEFwl\xA6\xCFq\x8B(\x1A\xF9\xF9\xDFw\xDB\xFD\xEBra\t.\x81a\x11\xF2V[a\t6a\r\xF4V[`\x06\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x16`\x01\x17\x90U`@Q\x7Fm\r\x90XX4\x98\x0B\xD0\xE5`3A\xFFP\xB0cI\xC1\x1E\x0B\xF9$\x1D\x03\xF6\xD0e\xF1*&+\x90_\x90\xA1PV[_a\x07>\x82a\x12\x08V[_a\t\xA0\x81a\x11\xF2V[`\x06T`\xFF\x16a\t\xDCW`@Q\x7F\xF5N\xEFV\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\x01`@Q\x80\x91\x03\x90\xFD[`@Q\x7Fp\xA0\x821\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\x81R0`\x04\x82\x01R_\x90sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0B\x90cp\xA0\x821\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\nDW=_\x80>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\nh\x91\x90a\x1D\x0CV[\x90P\x80\x15a\x0BnW`\x03T`@Q\x7F\xA9\x05\x9C\xBB\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\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16`\x04\x82\x01R`$\x81\x01\x82\x90RsB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0B\x90c\xA9\x05\x9C\xBB\x90`D\x01` `@Q\x80\x83\x03\x81_\x87Z\xF1\x15\x80\x15a\n\xF8W=_\x80>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x0B\x1C\x91\x90a\x1D#V[P`\x03T`@Q\x82\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x90\x7FcR\xC58,JEx\xE7\x12D\x9C\xA6^\x83\xCD\xB3\x92\xD0E\xDF\xCF\x1C\xAD\x96\x15\x18\x9D\xB2\xDA$K\x90` \x01[`@Q\x80\x91\x03\x90\xA2[PPV[\x81a\x0B\xA9W`@Q\x7F?\xC3\xC2z\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\x01`@Q\x80\x91\x03\x90\xFD[a\x0Bn\x82\x82a\x13\xA6V[\x81\x15\x80\x15a\x0B\xDBWP`\x02Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x81\x16\x91\x16\x14[\x15a\x0C\xB3W`\x01Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x90t\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04e\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81\x15\x15\x80a\x0C/WPe\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x15[\x80a\x0CBWPBe\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16\x10\x15[\x15a\x0C\x88W`@Q\x7F\x19\xCA^\xBB\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\x81Re\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16`\x04\x82\x01R`$\x01[`@Q\x80\x91\x03\x90\xFD[PP`\x01\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90U[a\x0Bn\x82\x82a\x13\xD0V[\x7FGd\xE5\x9FN\r\xD9\xEC}\xF7l\\\xD0\xED\xC4\xBC\x07\x90;\xF25\xAB\x0E\x000\xCCk~nR\xF2ta\x0C\xE7\x81a\x11\xF2V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16a\r4W`@Q\x7F\xAC\x0B>!\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\x01`@Q\x80\x91\x03\x90\xFD[`\x03Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x81\x16\x90\x83\x16\x81\x14a\x08\xFFW`\x03\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x85\x81\x16\x91\x82\x17\x90\x92U`@Q\x90\x91\x83\x16\x90\x7F\xD4\x87\xB3_\x97\x93\x07\xE5\x81\xE6\xE2\xD4\xB6\xAA\x87\xDB\xDD\xF2\xF1$\xCE\xF0+P\xE3y/L1\xC7lz\x90_\x90\xA3PPPV[_a\r\xD8\x81a\x11\xF2V[a\x0Bn\x82a\x14)V[_a\r\xEB\x81a\x11\xF2V[a\x0Bn\x82a\x14\xA1V[`\x06T`\xFF\x16\x15a\x0E1W`@Q\x7F\x07\xC6=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x0F\x07\x91\x90a\x1D#V[P`\x04T`@Q\x82\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x90\x7F\xC7y\x88\x91\x86A\x87fZ\xC6\xDD\x11\x92\x86\xE4N\xC1?\x01E'\xAE\xEB+\x8E\xB3\xFDA=\xF91y\x90` \x01`@Q\x80\x91\x03\x90\xA2PV[_a\x0Fz`\x02Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90V[\x90P\x90V[`\x02T_\x90z\x01\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\x90\x04e\xFF\xFF\xFF\xFF\xFF\xFF\x16\x80\x15\x15\x80\x15a\x0F\xC1WPBe\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16\x10\x15[a\x0F\xCCW_\x80a\x0F\xF1V[`\x02Tt\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04e\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81[\x91P\x91P\x90\x91V[`\x02T_\x90z\x01\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\x90\x04e\xFF\xFF\xFF\xFF\xFF\xFF\x16\x80\x15\x15\x80\x15a\x10:WPBe\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16\x10[a\x10lW`\x01Tz\x01\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\x90\x04e\xFF\xFF\xFF\xFF\xFF\xFF\x16a\x10\x90V[`\x02Tt\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04e\xFF\xFF\xFF\xFF\xFF\xFF\x16[\x91PP\x90V[`\x01Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x163\x81\x14a\x10\xEAW`@Q\x7F\xC2,\x80\"\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\x81R3`\x04\x82\x01R`$\x01a\x0C\x7FV[a\x07\xEFa\x15\x10V[\x81a\x11)W`@Q\x7F?\xC3\xC2z\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\x01`@Q\x80\x91\x03\x90\xFD[a\x0Bn\x82\x82a\x16\x01V[_a\x11=\x81a\x11\xF2V[a\x07\xEFa\x16%V[_`\x05Ta\x11RBa\t\x8CV[a\x0Fz\x91\x90a\x1D\x82V[_\x7F\xFF\xFF\xFF\xFF\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\x82\x16\x7Fye\xDB\x0B\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\x14\x80a\x07>WP\x7F\x01\xFF\xC9\xA7\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\x7F\xFF\xFF\xFF\xFF\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\x83\x16\x14a\x07>V[a\x07\xEF\x813a\x16/V[a\x12\x06_\x80a\x16\xB4V[V[_\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x82\x10\x15a\x128WP_\x91\x90PV[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x82\x11\x15a\x12\xF7W`\x05T`@Q\x7Fp\xA0\x821\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\x81R0`\x04\x82\x01RsB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0B\x90cp\xA0\x821\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x12\xC9W=_\x80>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x12\xED\x91\x90a\x1D\x0CV[a\x07>\x91\x90a\x1DoV[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x13c\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x85a\x1D\x82V[a\x13m\x91\x90a\x1D\x95V[a\x13w\x91\x90a\x1D\xCDV[a\x07>\x90\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x1DoV[\x91\x90PV[_\x82\x81R` \x81\x90R`@\x90 `\x01\x01Ta\x13\xC0\x81a\x11\xF2V[a\x13\xCA\x83\x83a\x18\rV[PPPPV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x163\x14a\x14\x1FW`@Q\x7Ff\x97\xB22\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\x01`@Q\x80\x91\x03\x90\xFD[a\x08\xFF\x82\x82a\x18\xD2V[_a\x142a\x0F\xF9V[a\x14;Ba\x193V[a\x14E\x91\x90a\x1D\xE4V[\x90Pa\x14Q\x82\x82a\x19\x82V[`@Qe\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x16\x90\x7F3w\xDCD$\x1Ew\x9D\xD0j\xFA\xB5\xB7\x88\xA3\\\xA5\xF3\xB7x\x83n)\x90\xBD\xB2j*K.^\xD6\x90` \x01a\x0BeV[_a\x14\xAB\x82a\x1A\x1DV[a\x14\xB4Ba\x193V[a\x14\xBE\x91\x90a\x1D\xE4V[\x90Pa\x14\xCA\x82\x82a\x16\xB4V[`@\x80Qe\xFF\xFF\xFF\xFF\xFF\xFF\x80\x85\x16\x82R\x83\x16` \x82\x01R\x7F\xF1\x03\x8C\x18\xCF\x84\xA5nC/\xDB\xFA\xF7F\x92K~\xA5\x11\xDF\xE0:e\x06\xA0\xCE\xBAH\x88x\x8D\x9B\x91\x01`@Q\x80\x91\x03\x90\xA1PPV[`\x01Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x90t\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04e\xFF\xFF\xFF\xFF\xFF\xFF\x16\x80\x15\x80a\x15`WPBe\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16\x10\x15[\x15a\x15\xA1W`@Q\x7F\x19\xCA^\xBB\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\x81Re\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16`\x04\x82\x01R`$\x01a\x0C\x7FV[a\x15\xC9_a\x15\xC4`\x02Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90V[a\x18\xD2V[Pa\x15\xD4_\x83a\x18\rV[PP`\x01\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\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\x16\x90UPV[_\x82\x81R` \x81\x90R`@\x90 `\x01\x01Ta\x16\x1B\x81a\x11\xF2V[a\x13\xCA\x83\x83a\x18\xD2V[a\x12\x06_\x80a\x19\x82V[_\x82\x81R` \x81\x81R`@\x80\x83 s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x85\x16\x84R\x90\x91R\x90 T`\xFF\x16a\x0BnW`@Q\x7F\xE2Q}?\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\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16`\x04\x82\x01R`$\x81\x01\x83\x90R`D\x01a\x0C\x7FV[`\x02Tz\x01\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\x90\x04e\xFF\xFF\xFF\xFF\xFF\xFF\x16\x80\x15a\x17\x88WBe\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16\x10\x15a\x17_W`\x02T`\x01\x80Ty\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16t\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x92\x04e\xFF\xFF\xFF\xFF\xFF\xFF\x16z\x01\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\x02\x91\x90\x91\x17\x90Ua\x17\x88V[`@Q\x7F+\x1F\xA2\xED\xAF\xE6\xF7\xB9\xE9|\x1A\x9E\x0C6`\xE6E\xBE\xB2\xDC\xAA-E\xBD\xBF\x9B\xEA\xF5G.\x1E\xC5\x90_\x90\xA1[P`\x02\x80Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16t\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0e\xFF\xFF\xFF\xFF\xFF\xFF\x94\x85\x16\x02y\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x17z\x01\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\x92\x90\x93\x16\x91\x90\x91\x02\x91\x90\x91\x17\x90UV[_\x82a\x18\xC1W_a\x183`\x02Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14a\x18\x80W`@Q\x7F?\xC3\xC2z\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\x01`@Q\x80\x91\x03\x90\xFD[`\x02\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x16\x17\x90U[a\x18\xCB\x83\x83a\x1AdV[\x93\x92PPPV[_\x82\x15\x80\x15a\x18\xFBWP`\x02Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x81\x16\x91\x16\x14[\x15a\x19)W`\x02\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x90U[a\x18\xCB\x83\x83a\x1B]V[_e\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x15a\x19~W`@Q\x7Fm\xFC\xC6P\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`0`\x04\x82\x01R`$\x81\x01\x83\x90R`D\x01a\x0C\x7FV[P\x90V[`\x01\x80Tt\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0e\xFF\xFF\xFF\xFF\xFF\xFF\x84\x81\x16\x82\x02\x7F\xFF\xFF\xFF\xFF\xFF\xFF\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\x84\x16s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x88\x16\x17\x17\x90\x93U\x90\x04\x16\x80\x15a\x08\xFFW`@Q\x7F\x88\x86\xEB\xFCBY\xAB\xDB\xC1f\x01\xDD\x8F\xB5g\x8ET\x87\x8FG\xB3\xC3H6\xCF\xC5\x11T\xA9`Q\t\x90_\x90\xA1PPPV[_\x80a\x1A'a\x0F\xF9V[\x90P\x80e\xFF\xFF\xFF\xFF\xFF\xFF\x16\x83e\xFF\xFF\xFF\xFF\xFF\xFF\x16\x11a\x1AOWa\x1AJ\x83\x82a\x1E\nV[a\x18\xCBV[a\x18\xCBe\xFF\xFF\xFF\xFF\xFF\xFF\x84\x16b\x06\x97\x80a\x1C\x16V[_\x82\x81R` \x81\x81R`@\x80\x83 s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x85\x16\x84R\x90\x91R\x81 T`\xFF\x16a\x1BVW_\x83\x81R` \x81\x81R`@\x80\x83 s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x86\x16\x84R\x90\x91R\x90 \x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x16`\x01\x17\x90Ua\x1A\xF43\x90V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x82s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x84\x7F/\x87\x88\x11~~\xFF\x1D\x82\xE9&\xECyI\x01\xD1|x\x02JP'\t@0E@\xA73eo\r`@Q`@Q\x80\x91\x03\x90\xA4P`\x01a\x07>V[P_a\x07>V[_\x82\x81R` \x81\x81R`@\x80\x83 s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x85\x16\x84R\x90\x91R\x81 T`\xFF\x16\x15a\x1BVW_\x83\x81R` \x81\x81R`@\x80\x83 s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x86\x16\x80\x85R\x92R\x80\x83 \x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x16\x90UQ3\x92\x86\x91\x7F\xF69\x1F\\2\xD9\xC6\x9D*G\xEAg\x0BD)t\xB595\xD1\xED\xC7\xFDd\xEB!\xE0G\xA89\x17\x1B\x91\x90\xA4P`\x01a\x07>V[_\x81\x83\x10a\x1C$W\x81a\x18\xCBV[P\x90\x91\x90PV[_` \x82\x84\x03\x12\x15a\x1C;W_\x80\xFD[\x815\x7F\xFF\xFF\xFF\xFF\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\x81\x16\x81\x14a\x18\xCBW_\x80\xFD[\x805s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x13\xA1W_\x80\xFD[_` \x82\x84\x03\x12\x15a\x1C\x9DW_\x80\xFD[a\x18\xCB\x82a\x1CjV[_` \x82\x84\x03\x12\x15a\x1C\xB6W_\x80\xFD[P5\x91\x90PV[_\x80`@\x83\x85\x03\x12\x15a\x1C\xCEW_\x80\xFD[\x825\x91Pa\x1C\xDE` \x84\x01a\x1CjV[\x90P\x92P\x92\x90PV[_` \x82\x84\x03\x12\x15a\x1C\xF7W_\x80\xFD[\x815e\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x18\xCBW_\x80\xFD[_` \x82\x84\x03\x12\x15a\x1D\x1CW_\x80\xFD[PQ\x91\x90PV[_` \x82\x84\x03\x12\x15a\x1D3W_\x80\xFD[\x81Q\x80\x15\x15\x81\x14a\x18\xCBW_\x80\xFD[\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_R`\x11`\x04R`$_\xFD[\x80\x82\x01\x80\x82\x11\x15a\x07>Wa\x07>a\x1DBV[\x81\x81\x03\x81\x81\x11\x15a\x07>Wa\x07>a\x1DBV[_\x82a\x1D\xC8W\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_R`\x12`\x04R`$_\xFD[P\x04\x90V[\x80\x82\x02\x81\x15\x82\x82\x04\x84\x14\x17a\x07>Wa\x07>a\x1DBV[e\xFF\xFF\xFF\xFF\xFF\xFF\x81\x81\x16\x83\x82\x16\x01\x90\x80\x82\x11\x15a\x1E\x03Wa\x1E\x03a\x1DBV[P\x92\x91PPV[e\xFF\xFF\xFF\xFF\xFF\xFF\x82\x81\x16\x82\x82\x16\x03\x90\x80\x82\x11\x15a\x1E\x03Wa\x1E\x03a\x1DBV\xFE\xA1dsolcC\0\x08\x19\0\n", + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `AccessControlBadConfirmation()` and selector `0x6697b232`. +```solidity +error AccessControlBadConfirmation(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct AccessControlBadConfirmation; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: AccessControlBadConfirmation) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for AccessControlBadConfirmation { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for AccessControlBadConfirmation { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "AccessControlBadConfirmation()"; + const SELECTOR: [u8; 4] = [102u8, 151u8, 178u8, 50u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `AccessControlEnforcedDefaultAdminDelay(uint48)` and selector `0x19ca5ebb`. +```solidity +error AccessControlEnforcedDefaultAdminDelay(uint48 schedule); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct AccessControlEnforcedDefaultAdminDelay { + #[allow(missing_docs)] + pub schedule: alloy::sol_types::private::primitives::aliases::U48, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<48>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U48, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: AccessControlEnforcedDefaultAdminDelay) -> Self { + (value.schedule,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for AccessControlEnforcedDefaultAdminDelay { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { schedule: tuple.0 } + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for AccessControlEnforcedDefaultAdminDelay { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "AccessControlEnforcedDefaultAdminDelay(uint48)"; + const SELECTOR: [u8; 4] = [25u8, 202u8, 94u8, 187u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.schedule), + ) + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `AccessControlEnforcedDefaultAdminRules()` and selector `0x3fc3c27a`. +```solidity +error AccessControlEnforcedDefaultAdminRules(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct AccessControlEnforcedDefaultAdminRules; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: AccessControlEnforcedDefaultAdminRules) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for AccessControlEnforcedDefaultAdminRules { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for AccessControlEnforcedDefaultAdminRules { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "AccessControlEnforcedDefaultAdminRules()"; + const SELECTOR: [u8; 4] = [63u8, 195u8, 194u8, 122u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `AccessControlInvalidDefaultAdmin(address)` and selector `0xc22c8022`. +```solidity +error AccessControlInvalidDefaultAdmin(address defaultAdmin); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct AccessControlInvalidDefaultAdmin { + #[allow(missing_docs)] + pub defaultAdmin: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: AccessControlInvalidDefaultAdmin) -> Self { + (value.defaultAdmin,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for AccessControlInvalidDefaultAdmin { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { defaultAdmin: tuple.0 } + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for AccessControlInvalidDefaultAdmin { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "AccessControlInvalidDefaultAdmin(address)"; + const SELECTOR: [u8; 4] = [194u8, 44u8, 128u8, 34u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.defaultAdmin, + ), + ) + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `AccessControlUnauthorizedAccount(address,bytes32)` and selector `0xe2517d3f`. +```solidity +error AccessControlUnauthorizedAccount(address account, bytes32 neededRole); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct AccessControlUnauthorizedAccount { + #[allow(missing_docs)] + pub account: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub neededRole: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::FixedBytes<32>, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: AccessControlUnauthorizedAccount) -> Self { + (value.account, value.neededRole) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for AccessControlUnauthorizedAccount { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + account: tuple.0, + neededRole: tuple.1, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for AccessControlUnauthorizedAccount { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "AccessControlUnauthorizedAccount(address,bytes32)"; + const SELECTOR: [u8; 4] = [226u8, 81u8, 125u8, 63u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.account, + ), + as alloy_sol_types::SolType>::tokenize(&self.neededRole), + ) + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `AddressIsZeroAddress()` and selector `0xac0b3e21`. +```solidity +error AddressIsZeroAddress(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct AddressIsZeroAddress; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: AddressIsZeroAddress) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for AddressIsZeroAddress { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for AddressIsZeroAddress { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "AddressIsZeroAddress()"; + const SELECTOR: [u8; 4] = [172u8, 11u8, 62u8, 33u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `CliffStartTimeAfterEndTime(uint256,uint256)` and selector `0x83de581f`. +```solidity +error CliffStartTimeAfterEndTime(uint256 cliffStartTimestamp, uint256 endTimestamp); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct CliffStartTimeAfterEndTime { + #[allow(missing_docs)] + pub cliffStartTimestamp: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub endTimestamp: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: CliffStartTimeAfterEndTime) -> Self { + (value.cliffStartTimestamp, value.endTimestamp) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for CliffStartTimeAfterEndTime { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + cliffStartTimestamp: tuple.0, + endTimestamp: tuple.1, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for CliffStartTimeAfterEndTime { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "CliffStartTimeAfterEndTime(uint256,uint256)"; + const SELECTOR: [u8; 4] = [131u8, 222u8, 88u8, 31u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.cliffStartTimestamp), + as alloy_sol_types::SolType>::tokenize(&self.endTimestamp), + ) + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `CliffStartTimeInvalid(uint256,uint256)` and selector `0xbac2fd26`. +```solidity +error CliffStartTimeInvalid(uint256 cliffStartTimestamp, uint256 startTime); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct CliffStartTimeInvalid { + #[allow(missing_docs)] + pub cliffStartTimestamp: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub startTime: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: CliffStartTimeInvalid) -> Self { + (value.cliffStartTimestamp, value.startTime) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for CliffStartTimeInvalid { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + cliffStartTimestamp: tuple.0, + startTime: tuple.1, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for CliffStartTimeInvalid { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "CliffStartTimeInvalid(uint256,uint256)"; + const SELECTOR: [u8; 4] = [186u8, 194u8, 253u8, 38u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.cliffStartTimestamp), + as alloy_sol_types::SolType>::tokenize(&self.startTime), + ) + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ContractIsNotTerminated()` and selector `0xf54eef56`. +```solidity +error ContractIsNotTerminated(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ContractIsNotTerminated; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ContractIsNotTerminated) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ContractIsNotTerminated { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ContractIsNotTerminated { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ContractIsNotTerminated()"; + const SELECTOR: [u8; 4] = [245u8, 78u8, 239u8, 86u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ContractIsTerminated()` and selector `0x07c63c5a`. +```solidity +error ContractIsTerminated(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ContractIsTerminated; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ContractIsTerminated) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ContractIsTerminated { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ContractIsTerminated { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ContractIsTerminated()"; + const SELECTOR: [u8; 4] = [7u8, 198u8, 60u8, 90u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `SafeCastOverflowedUintDowncast(uint8,uint256)` and selector `0x6dfcc650`. +```solidity +error SafeCastOverflowedUintDowncast(uint8 bits, uint256 value); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct SafeCastOverflowedUintDowncast { + #[allow(missing_docs)] + pub bits: u8, + #[allow(missing_docs)] + pub value: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Uint<8>, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + u8, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: SafeCastOverflowedUintDowncast) -> Self { + (value.bits, value.value) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for SafeCastOverflowedUintDowncast { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + bits: tuple.0, + value: tuple.1, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for SafeCastOverflowedUintDowncast { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "SafeCastOverflowedUintDowncast(uint8,uint256)"; + const SELECTOR: [u8; 4] = [109u8, 252u8, 198u8, 80u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.bits), + as alloy_sol_types::SolType>::tokenize(&self.value), + ) + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `StartTimeAfterEndTime(uint256,uint256)` and selector `0x593d712f`. +```solidity +error StartTimeAfterEndTime(uint256 startTimestamp, uint256 endTimestamp); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct StartTimeAfterEndTime { + #[allow(missing_docs)] + pub startTimestamp: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub endTimestamp: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: StartTimeAfterEndTime) -> Self { + (value.startTimestamp, value.endTimestamp) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for StartTimeAfterEndTime { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + startTimestamp: tuple.0, + endTimestamp: tuple.1, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for StartTimeAfterEndTime { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "StartTimeAfterEndTime(uint256,uint256)"; + const SELECTOR: [u8; 4] = [89u8, 61u8, 113u8, 47u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.startTimestamp), + as alloy_sol_types::SolType>::tokenize(&self.endTimestamp), + ) + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `UnevenVestingPeriod(uint256,uint256,uint256)` and selector `0xdd76dcd5`. +```solidity +error UnevenVestingPeriod(uint256 vestingPeriodSeconds, uint256 startTimestamp, uint256 endTimestamp); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct UnevenVestingPeriod { + #[allow(missing_docs)] + pub vestingPeriodSeconds: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub startTimestamp: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub endTimestamp: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: UnevenVestingPeriod) -> Self { + (value.vestingPeriodSeconds, value.startTimestamp, value.endTimestamp) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for UnevenVestingPeriod { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + vestingPeriodSeconds: tuple.0, + startTimestamp: tuple.1, + endTimestamp: tuple.2, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for UnevenVestingPeriod { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "UnevenVestingPeriod(uint256,uint256,uint256)"; + const SELECTOR: [u8; 4] = [221u8, 118u8, 220u8, 213u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.vestingPeriodSeconds), + as alloy_sol_types::SolType>::tokenize(&self.startTimestamp), + as alloy_sol_types::SolType>::tokenize(&self.endTimestamp), + ) + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `VestingEventTokensIsZero()` and selector `0x3a855ea4`. +```solidity +error VestingEventTokensIsZero(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct VestingEventTokensIsZero; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: VestingEventTokensIsZero) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for VestingEventTokensIsZero { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for VestingEventTokensIsZero { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "VestingEventTokensIsZero()"; + const SELECTOR: [u8; 4] = [58u8, 133u8, 94u8, 164u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `VestingPeriodExceedsContractDuration(uint256)` and selector `0x2fe99174`. +```solidity +error VestingPeriodExceedsContractDuration(uint256 vestingPeriodSeconds); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct VestingPeriodExceedsContractDuration { + #[allow(missing_docs)] + pub vestingPeriodSeconds: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: VestingPeriodExceedsContractDuration) -> Self { + (value.vestingPeriodSeconds,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for VestingPeriodExceedsContractDuration { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + vestingPeriodSeconds: tuple.0, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for VestingPeriodExceedsContractDuration { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "VestingPeriodExceedsContractDuration(uint256)"; + const SELECTOR: [u8; 4] = [47u8, 233u8, 145u8, 116u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.vestingPeriodSeconds), + ) + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `VestingPeriodIsZeroSeconds()` and selector `0x931ef493`. +```solidity +error VestingPeriodIsZeroSeconds(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct VestingPeriodIsZeroSeconds; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: VestingPeriodIsZeroSeconds) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for VestingPeriodIsZeroSeconds { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for VestingPeriodIsZeroSeconds { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "VestingPeriodIsZeroSeconds()"; + const SELECTOR: [u8; 4] = [147u8, 30u8, 244u8, 147u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `BenefactorUpdated(address,address)` and selector `0xd487b35f979307e581e6e2d4b6aa87dbddf2f124cef02b50e3792f4c31c76c7a`. +```solidity +event BenefactorUpdated(address indexed oldBenefactor, address indexed newBenefactor); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct BenefactorUpdated { + #[allow(missing_docs)] + pub oldBenefactor: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub newBenefactor: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for BenefactorUpdated { + type DataTuple<'a> = (); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "BenefactorUpdated(address,address)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 212u8, 135u8, 179u8, 95u8, 151u8, 147u8, 7u8, 229u8, 129u8, 230u8, 226u8, + 212u8, 182u8, 170u8, 135u8, 219u8, 221u8, 242u8, 241u8, 36u8, 206u8, + 240u8, 43u8, 80u8, 227u8, 121u8, 47u8, 76u8, 49u8, 199u8, 108u8, 122u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + oldBenefactor: topics.1, + newBenefactor: topics.2, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + () + } + #[inline] + fn topics(&self) -> ::RustType { + ( + Self::SIGNATURE_HASH.into(), + self.oldBenefactor.clone(), + self.newBenefactor.clone(), + ) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.oldBenefactor, + ); + out[2usize] = ::encode_topic( + &self.newBenefactor, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for BenefactorUpdated { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&BenefactorUpdated> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &BenefactorUpdated) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `BeneficiaryUpdated(address,address)` and selector `0xe72eaf6addaa195f3c83095031dd08f3a96808dcf047babed1fe4e4f69d6c622`. +```solidity +event BeneficiaryUpdated(address indexed oldBeneficiary, address indexed newBeneficiary); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct BeneficiaryUpdated { + #[allow(missing_docs)] + pub oldBeneficiary: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub newBeneficiary: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for BeneficiaryUpdated { + type DataTuple<'a> = (); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "BeneficiaryUpdated(address,address)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 231u8, 46u8, 175u8, 106u8, 221u8, 170u8, 25u8, 95u8, 60u8, 131u8, 9u8, + 80u8, 49u8, 221u8, 8u8, 243u8, 169u8, 104u8, 8u8, 220u8, 240u8, 71u8, + 186u8, 190u8, 209u8, 254u8, 78u8, 79u8, 105u8, 214u8, 198u8, 34u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + oldBeneficiary: topics.1, + newBeneficiary: topics.2, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + () + } + #[inline] + fn topics(&self) -> ::RustType { + ( + Self::SIGNATURE_HASH.into(), + self.oldBeneficiary.clone(), + self.newBeneficiary.clone(), + ) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.oldBeneficiary, + ); + out[2usize] = ::encode_topic( + &self.newBeneficiary, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for BeneficiaryUpdated { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&BeneficiaryUpdated> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &BeneficiaryUpdated) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `ContractResumed()` and selector `0xab5f6dacf93a267a93a533de8a56370de8341bbd8102017307e7be375c3dda6a`. +```solidity +event ContractResumed(); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct ContractResumed; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for ContractResumed { + type DataTuple<'a> = (); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,); + const SIGNATURE: &'static str = "ContractResumed()"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 171u8, 95u8, 109u8, 172u8, 249u8, 58u8, 38u8, 122u8, 147u8, 165u8, 51u8, + 222u8, 138u8, 86u8, 55u8, 13u8, 232u8, 52u8, 27u8, 189u8, 129u8, 2u8, + 1u8, 115u8, 7u8, 231u8, 190u8, 55u8, 92u8, 61u8, 218u8, 106u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self {} + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + () + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(),) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for ContractResumed { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&ContractResumed> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &ContractResumed) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `ContractTerminated()` and selector `0x6d0d90585834980bd0e5603341ff50b06349c11e0bf9241d03f6d065f12a262b`. +```solidity +event ContractTerminated(); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct ContractTerminated; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for ContractTerminated { + type DataTuple<'a> = (); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,); + const SIGNATURE: &'static str = "ContractTerminated()"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 109u8, 13u8, 144u8, 88u8, 88u8, 52u8, 152u8, 11u8, 208u8, 229u8, 96u8, + 51u8, 65u8, 255u8, 80u8, 176u8, 99u8, 73u8, 193u8, 30u8, 11u8, 249u8, + 36u8, 29u8, 3u8, 246u8, 208u8, 101u8, 241u8, 42u8, 38u8, 43u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self {} + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + () + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(),) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for ContractTerminated { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&ContractTerminated> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &ContractTerminated) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `DefaultAdminDelayChangeCanceled()` and selector `0x2b1fa2edafe6f7b9e97c1a9e0c3660e645beb2dcaa2d45bdbf9beaf5472e1ec5`. +```solidity +event DefaultAdminDelayChangeCanceled(); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct DefaultAdminDelayChangeCanceled; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for DefaultAdminDelayChangeCanceled { + type DataTuple<'a> = (); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,); + const SIGNATURE: &'static str = "DefaultAdminDelayChangeCanceled()"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 43u8, 31u8, 162u8, 237u8, 175u8, 230u8, 247u8, 185u8, 233u8, 124u8, 26u8, + 158u8, 12u8, 54u8, 96u8, 230u8, 69u8, 190u8, 178u8, 220u8, 170u8, 45u8, + 69u8, 189u8, 191u8, 155u8, 234u8, 245u8, 71u8, 46u8, 30u8, 197u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self {} + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + () + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(),) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for DefaultAdminDelayChangeCanceled { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&DefaultAdminDelayChangeCanceled> + for alloy_sol_types::private::LogData { + #[inline] + fn from( + this: &DefaultAdminDelayChangeCanceled, + ) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `DefaultAdminDelayChangeScheduled(uint48,uint48)` and selector `0xf1038c18cf84a56e432fdbfaf746924b7ea511dfe03a6506a0ceba4888788d9b`. +```solidity +event DefaultAdminDelayChangeScheduled(uint48 newDelay, uint48 effectSchedule); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct DefaultAdminDelayChangeScheduled { + #[allow(missing_docs)] + pub newDelay: alloy::sol_types::private::primitives::aliases::U48, + #[allow(missing_docs)] + pub effectSchedule: alloy::sol_types::private::primitives::aliases::U48, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for DefaultAdminDelayChangeScheduled { + type DataTuple<'a> = ( + alloy::sol_types::sol_data::Uint<48>, + alloy::sol_types::sol_data::Uint<48>, + ); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,); + const SIGNATURE: &'static str = "DefaultAdminDelayChangeScheduled(uint48,uint48)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 241u8, 3u8, 140u8, 24u8, 207u8, 132u8, 165u8, 110u8, 67u8, 47u8, 219u8, + 250u8, 247u8, 70u8, 146u8, 75u8, 126u8, 165u8, 17u8, 223u8, 224u8, 58u8, + 101u8, 6u8, 160u8, 206u8, 186u8, 72u8, 136u8, 120u8, 141u8, 155u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + newDelay: data.0, + effectSchedule: data.1, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.newDelay), + as alloy_sol_types::SolType>::tokenize(&self.effectSchedule), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(),) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for DefaultAdminDelayChangeScheduled { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&DefaultAdminDelayChangeScheduled> + for alloy_sol_types::private::LogData { + #[inline] + fn from( + this: &DefaultAdminDelayChangeScheduled, + ) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `DefaultAdminTransferCanceled()` and selector `0x8886ebfc4259abdbc16601dd8fb5678e54878f47b3c34836cfc51154a9605109`. +```solidity +event DefaultAdminTransferCanceled(); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct DefaultAdminTransferCanceled; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for DefaultAdminTransferCanceled { + type DataTuple<'a> = (); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,); + const SIGNATURE: &'static str = "DefaultAdminTransferCanceled()"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 136u8, 134u8, 235u8, 252u8, 66u8, 89u8, 171u8, 219u8, 193u8, 102u8, 1u8, + 221u8, 143u8, 181u8, 103u8, 142u8, 84u8, 135u8, 143u8, 71u8, 179u8, + 195u8, 72u8, 54u8, 207u8, 197u8, 17u8, 84u8, 169u8, 96u8, 81u8, 9u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self {} + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + () + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(),) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for DefaultAdminTransferCanceled { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&DefaultAdminTransferCanceled> for alloy_sol_types::private::LogData { + #[inline] + fn from( + this: &DefaultAdminTransferCanceled, + ) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `DefaultAdminTransferScheduled(address,uint48)` and selector `0x3377dc44241e779dd06afab5b788a35ca5f3b778836e2990bdb26a2a4b2e5ed6`. +```solidity +event DefaultAdminTransferScheduled(address indexed newAdmin, uint48 acceptSchedule); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct DefaultAdminTransferScheduled { + #[allow(missing_docs)] + pub newAdmin: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub acceptSchedule: alloy::sol_types::private::primitives::aliases::U48, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for DefaultAdminTransferScheduled { + type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<48>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "DefaultAdminTransferScheduled(address,uint48)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 51u8, 119u8, 220u8, 68u8, 36u8, 30u8, 119u8, 157u8, 208u8, 106u8, 250u8, + 181u8, 183u8, 136u8, 163u8, 92u8, 165u8, 243u8, 183u8, 120u8, 131u8, + 110u8, 41u8, 144u8, 189u8, 178u8, 106u8, 42u8, 75u8, 46u8, 94u8, 214u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + newAdmin: topics.1, + acceptSchedule: data.0, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.acceptSchedule), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.newAdmin.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.newAdmin, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for DefaultAdminTransferScheduled { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&DefaultAdminTransferScheduled> for alloy_sol_types::private::LogData { + #[inline] + fn from( + this: &DefaultAdminTransferScheduled, + ) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `RoleAdminChanged(bytes32,bytes32,bytes32)` and selector `0xbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff`. +```solidity +event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct RoleAdminChanged { + #[allow(missing_docs)] + pub role: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub previousAdminRole: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub newAdminRole: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for RoleAdminChanged { + type DataTuple<'a> = (); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + const SIGNATURE: &'static str = "RoleAdminChanged(bytes32,bytes32,bytes32)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 189u8, 121u8, 184u8, 111u8, 254u8, 10u8, 184u8, 232u8, 119u8, 97u8, 81u8, + 81u8, 66u8, 23u8, 205u8, 124u8, 172u8, 213u8, 44u8, 144u8, 159u8, 102u8, + 71u8, 92u8, 58u8, 244u8, 78u8, 18u8, 159u8, 11u8, 0u8, 255u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + role: topics.1, + previousAdminRole: topics.2, + newAdminRole: topics.3, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + () + } + #[inline] + fn topics(&self) -> ::RustType { + ( + Self::SIGNATURE_HASH.into(), + self.role.clone(), + self.previousAdminRole.clone(), + self.newAdminRole.clone(), + ) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = as alloy_sol_types::EventTopic>::encode_topic(&self.role); + out[2usize] = as alloy_sol_types::EventTopic>::encode_topic(&self.previousAdminRole); + out[3usize] = as alloy_sol_types::EventTopic>::encode_topic(&self.newAdminRole); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for RoleAdminChanged { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&RoleAdminChanged> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &RoleAdminChanged) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `RoleGranted(bytes32,address,address)` and selector `0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d`. +```solidity +event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct RoleGranted { + #[allow(missing_docs)] + pub role: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub account: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub sender: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for RoleGranted { + type DataTuple<'a> = (); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "RoleGranted(bytes32,address,address)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 47u8, 135u8, 136u8, 17u8, 126u8, 126u8, 255u8, 29u8, 130u8, 233u8, 38u8, + 236u8, 121u8, 73u8, 1u8, 209u8, 124u8, 120u8, 2u8, 74u8, 80u8, 39u8, 9u8, + 64u8, 48u8, 69u8, 64u8, 167u8, 51u8, 101u8, 111u8, 13u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + role: topics.1, + account: topics.2, + sender: topics.3, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + () + } + #[inline] + fn topics(&self) -> ::RustType { + ( + Self::SIGNATURE_HASH.into(), + self.role.clone(), + self.account.clone(), + self.sender.clone(), + ) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = as alloy_sol_types::EventTopic>::encode_topic(&self.role); + out[2usize] = ::encode_topic( + &self.account, + ); + out[3usize] = ::encode_topic( + &self.sender, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for RoleGranted { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&RoleGranted> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &RoleGranted) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `RoleRevoked(bytes32,address,address)` and selector `0xf6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b`. +```solidity +event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct RoleRevoked { + #[allow(missing_docs)] + pub role: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub account: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub sender: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for RoleRevoked { + type DataTuple<'a> = (); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "RoleRevoked(bytes32,address,address)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 246u8, 57u8, 31u8, 92u8, 50u8, 217u8, 198u8, 157u8, 42u8, 71u8, 234u8, + 103u8, 11u8, 68u8, 41u8, 116u8, 181u8, 57u8, 53u8, 209u8, 237u8, 199u8, + 253u8, 100u8, 235u8, 33u8, 224u8, 71u8, 168u8, 57u8, 23u8, 27u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + role: topics.1, + account: topics.2, + sender: topics.3, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + () + } + #[inline] + fn topics(&self) -> ::RustType { + ( + Self::SIGNATURE_HASH.into(), + self.role.clone(), + self.account.clone(), + self.sender.clone(), + ) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = as alloy_sol_types::EventTopic>::encode_topic(&self.role); + out[2usize] = ::encode_topic( + &self.account, + ); + out[3usize] = ::encode_topic( + &self.sender, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for RoleRevoked { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&RoleRevoked> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &RoleRevoked) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `TokensReleased(address,uint256)` and selector `0xc7798891864187665ac6dd119286e44ec13f014527aeeb2b8eb3fd413df93179`. +```solidity +event TokensReleased(address indexed beneficiary, uint256 amount); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct TokensReleased { + #[allow(missing_docs)] + pub beneficiary: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub amount: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for TokensReleased { + type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "TokensReleased(address,uint256)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 199u8, 121u8, 136u8, 145u8, 134u8, 65u8, 135u8, 102u8, 90u8, 198u8, + 221u8, 17u8, 146u8, 134u8, 228u8, 78u8, 193u8, 63u8, 1u8, 69u8, 39u8, + 174u8, 235u8, 43u8, 142u8, 179u8, 253u8, 65u8, 61u8, 249u8, 49u8, 121u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + beneficiary: topics.1, + amount: data.0, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.amount), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.beneficiary.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.beneficiary, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for TokensReleased { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&TokensReleased> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &TokensReleased) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `TokensWithdrawn(address,uint256)` and selector `0x6352c5382c4a4578e712449ca65e83cdb392d045dfcf1cad9615189db2da244b`. +```solidity +event TokensWithdrawn(address indexed benefactor, uint256 amount); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct TokensWithdrawn { + #[allow(missing_docs)] + pub benefactor: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub amount: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for TokensWithdrawn { + type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "TokensWithdrawn(address,uint256)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 99u8, 82u8, 197u8, 56u8, 44u8, 74u8, 69u8, 120u8, 231u8, 18u8, 68u8, + 156u8, 166u8, 94u8, 131u8, 205u8, 179u8, 146u8, 208u8, 69u8, 223u8, + 207u8, 28u8, 173u8, 150u8, 21u8, 24u8, 157u8, 178u8, 218u8, 36u8, 75u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + benefactor: topics.1, + amount: data.0, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.amount), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.benefactor.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.benefactor, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for TokensWithdrawn { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&TokensWithdrawn> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &TokensWithdrawn) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + /**Constructor`. +```solidity +constructor(address benefactor_, address beneficiary_, address benefactorOwner, address beneficiaryOwner, address escrowOwner, uint256 start_, uint256 cliffStart_, uint256 end_, uint256 vestingPeriodSeconds_, uint256 initialTokens_, uint256 vestingEventTokens_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct constructorCall { + #[allow(missing_docs)] + pub benefactor_: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub beneficiary_: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub benefactorOwner: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub beneficiaryOwner: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub escrowOwner: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub start_: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub cliffStart_: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub end_: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub vestingPeriodSeconds_: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub initialTokens_: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub vestingEventTokens_: alloy::sol_types::private::primitives::aliases::U256, + } + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: constructorCall) -> Self { + ( + value.benefactor_, + value.beneficiary_, + value.benefactorOwner, + value.beneficiaryOwner, + value.escrowOwner, + value.start_, + value.cliffStart_, + value.end_, + value.vestingPeriodSeconds_, + value.initialTokens_, + value.vestingEventTokens_, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for constructorCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + benefactor_: tuple.0, + beneficiary_: tuple.1, + benefactorOwner: tuple.2, + beneficiaryOwner: tuple.3, + escrowOwner: tuple.4, + start_: tuple.5, + cliffStart_: tuple.6, + end_: tuple.7, + vestingPeriodSeconds_: tuple.8, + initialTokens_: tuple.9, + vestingEventTokens_: tuple.10, + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolConstructor for constructorCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.benefactor_, + ), + ::tokenize( + &self.beneficiary_, + ), + ::tokenize( + &self.benefactorOwner, + ), + ::tokenize( + &self.beneficiaryOwner, + ), + ::tokenize( + &self.escrowOwner, + ), + as alloy_sol_types::SolType>::tokenize(&self.start_), + as alloy_sol_types::SolType>::tokenize(&self.cliffStart_), + as alloy_sol_types::SolType>::tokenize(&self.end_), + as alloy_sol_types::SolType>::tokenize( + &self.vestingPeriodSeconds_, + ), + as alloy_sol_types::SolType>::tokenize(&self.initialTokens_), + as alloy_sol_types::SolType>::tokenize(&self.vestingEventTokens_), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `BENEFACTOR_OWNER_ROLE()` and selector `0x7ca40101`. +```solidity +function BENEFACTOR_OWNER_ROLE() external view returns (bytes32); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct BENEFACTOR_OWNER_ROLECall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`BENEFACTOR_OWNER_ROLE()`](BENEFACTOR_OWNER_ROLECall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct BENEFACTOR_OWNER_ROLEReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: BENEFACTOR_OWNER_ROLECall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for BENEFACTOR_OWNER_ROLECall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: BENEFACTOR_OWNER_ROLEReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for BENEFACTOR_OWNER_ROLEReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for BENEFACTOR_OWNER_ROLECall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::FixedBytes<32>; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "BENEFACTOR_OWNER_ROLE()"; + const SELECTOR: [u8; 4] = [124u8, 164u8, 1u8, 1u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: BENEFACTOR_OWNER_ROLEReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: BENEFACTOR_OWNER_ROLEReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `BENEFICIARY_OWNER_ROLE()` and selector `0x6efd06c1`. +```solidity +function BENEFICIARY_OWNER_ROLE() external view returns (bytes32); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct BENEFICIARY_OWNER_ROLECall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`BENEFICIARY_OWNER_ROLE()`](BENEFICIARY_OWNER_ROLECall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct BENEFICIARY_OWNER_ROLEReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: BENEFICIARY_OWNER_ROLECall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for BENEFICIARY_OWNER_ROLECall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: BENEFICIARY_OWNER_ROLEReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for BENEFICIARY_OWNER_ROLEReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for BENEFICIARY_OWNER_ROLECall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::FixedBytes<32>; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "BENEFICIARY_OWNER_ROLE()"; + const SELECTOR: [u8; 4] = [110u8, 253u8, 6u8, 193u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: BENEFICIARY_OWNER_ROLEReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: BENEFICIARY_OWNER_ROLEReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `DEFAULT_ADMIN_ROLE()` and selector `0xa217fddf`. +```solidity +function DEFAULT_ADMIN_ROLE() external view returns (bytes32); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct DEFAULT_ADMIN_ROLECall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`DEFAULT_ADMIN_ROLE()`](DEFAULT_ADMIN_ROLECall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct DEFAULT_ADMIN_ROLEReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: DEFAULT_ADMIN_ROLECall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for DEFAULT_ADMIN_ROLECall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: DEFAULT_ADMIN_ROLEReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for DEFAULT_ADMIN_ROLEReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for DEFAULT_ADMIN_ROLECall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::FixedBytes<32>; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "DEFAULT_ADMIN_ROLE()"; + const SELECTOR: [u8; 4] = [162u8, 23u8, 253u8, 223u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: DEFAULT_ADMIN_ROLEReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: DEFAULT_ADMIN_ROLEReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `OP_TOKEN()` and selector `0x224d7e59`. +```solidity +function OP_TOKEN() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct OP_TOKENCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`OP_TOKEN()`](OP_TOKENCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct OP_TOKENReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: OP_TOKENCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for OP_TOKENCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: OP_TOKENReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for OP_TOKENReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for OP_TOKENCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "OP_TOKEN()"; + const SELECTOR: [u8; 4] = [34u8, 77u8, 126u8, 89u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: OP_TOKENReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: OP_TOKENReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `TERMINATOR_ROLE()` and selector `0x2a711752`. +```solidity +function TERMINATOR_ROLE() external view returns (bytes32); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct TERMINATOR_ROLECall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`TERMINATOR_ROLE()`](TERMINATOR_ROLECall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct TERMINATOR_ROLEReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: TERMINATOR_ROLECall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for TERMINATOR_ROLECall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: TERMINATOR_ROLEReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for TERMINATOR_ROLEReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for TERMINATOR_ROLECall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::FixedBytes<32>; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "TERMINATOR_ROLE()"; + const SELECTOR: [u8; 4] = [42u8, 113u8, 23u8, 82u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: TERMINATOR_ROLEReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: TERMINATOR_ROLEReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `acceptDefaultAdminTransfer()` and selector `0xcefc1429`. +```solidity +function acceptDefaultAdminTransfer() external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct acceptDefaultAdminTransferCall; + ///Container type for the return parameters of the [`acceptDefaultAdminTransfer()`](acceptDefaultAdminTransferCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct acceptDefaultAdminTransferReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: acceptDefaultAdminTransferCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for acceptDefaultAdminTransferCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: acceptDefaultAdminTransferReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for acceptDefaultAdminTransferReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl acceptDefaultAdminTransferReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken< + '_, + > { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for acceptDefaultAdminTransferCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = acceptDefaultAdminTransferReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "acceptDefaultAdminTransfer()"; + const SELECTOR: [u8; 4] = [206u8, 252u8, 20u8, 41u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + acceptDefaultAdminTransferReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `beginDefaultAdminTransfer(address)` and selector `0x634e93da`. +```solidity +function beginDefaultAdminTransfer(address newAdmin) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct beginDefaultAdminTransferCall { + #[allow(missing_docs)] + pub newAdmin: alloy::sol_types::private::Address, + } + ///Container type for the return parameters of the [`beginDefaultAdminTransfer(address)`](beginDefaultAdminTransferCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct beginDefaultAdminTransferReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: beginDefaultAdminTransferCall) -> Self { + (value.newAdmin,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for beginDefaultAdminTransferCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { newAdmin: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: beginDefaultAdminTransferReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for beginDefaultAdminTransferReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl beginDefaultAdminTransferReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken< + '_, + > { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for beginDefaultAdminTransferCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = beginDefaultAdminTransferReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "beginDefaultAdminTransfer(address)"; + const SELECTOR: [u8; 4] = [99u8, 78u8, 147u8, 218u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.newAdmin, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + beginDefaultAdminTransferReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `benefactor()` and selector `0x8a81694c`. +```solidity +function benefactor() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct benefactorCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`benefactor()`](benefactorCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct benefactorReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: benefactorCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for benefactorCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: benefactorReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for benefactorReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for benefactorCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "benefactor()"; + const SELECTOR: [u8; 4] = [138u8, 129u8, 105u8, 76u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: benefactorReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: benefactorReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `beneficiary()` and selector `0x38af3eed`. +```solidity +function beneficiary() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct beneficiaryCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`beneficiary()`](beneficiaryCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct beneficiaryReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: beneficiaryCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for beneficiaryCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: beneficiaryReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for beneficiaryReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for beneficiaryCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "beneficiary()"; + const SELECTOR: [u8; 4] = [56u8, 175u8, 62u8, 237u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: beneficiaryReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: beneficiaryReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `cancelDefaultAdminTransfer()` and selector `0xd602b9fd`. +```solidity +function cancelDefaultAdminTransfer() external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct cancelDefaultAdminTransferCall; + ///Container type for the return parameters of the [`cancelDefaultAdminTransfer()`](cancelDefaultAdminTransferCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct cancelDefaultAdminTransferReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: cancelDefaultAdminTransferCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for cancelDefaultAdminTransferCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: cancelDefaultAdminTransferReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for cancelDefaultAdminTransferReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl cancelDefaultAdminTransferReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken< + '_, + > { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for cancelDefaultAdminTransferCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = cancelDefaultAdminTransferReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "cancelDefaultAdminTransfer()"; + const SELECTOR: [u8; 4] = [214u8, 2u8, 185u8, 253u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + cancelDefaultAdminTransferReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `changeDefaultAdminDelay(uint48)` and selector `0x649a5ec7`. +```solidity +function changeDefaultAdminDelay(uint48 newDelay) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct changeDefaultAdminDelayCall { + #[allow(missing_docs)] + pub newDelay: alloy::sol_types::private::primitives::aliases::U48, + } + ///Container type for the return parameters of the [`changeDefaultAdminDelay(uint48)`](changeDefaultAdminDelayCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct changeDefaultAdminDelayReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<48>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U48, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: changeDefaultAdminDelayCall) -> Self { + (value.newDelay,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for changeDefaultAdminDelayCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { newDelay: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: changeDefaultAdminDelayReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for changeDefaultAdminDelayReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl changeDefaultAdminDelayReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken< + '_, + > { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for changeDefaultAdminDelayCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Uint<48>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = changeDefaultAdminDelayReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "changeDefaultAdminDelay(uint48)"; + const SELECTOR: [u8; 4] = [100u8, 154u8, 94u8, 199u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.newDelay), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + changeDefaultAdminDelayReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `cliffStart()` and selector `0xb297c551`. +```solidity +function cliffStart() external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct cliffStartCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`cliffStart()`](cliffStartCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct cliffStartReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: cliffStartCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for cliffStartCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: cliffStartReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for cliffStartReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for cliffStartCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "cliffStart()"; + const SELECTOR: [u8; 4] = [178u8, 151u8, 197u8, 81u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: cliffStartReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: cliffStartReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `contractTerminated()` and selector `0x1a2c2a2b`. +```solidity +function contractTerminated() external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct contractTerminatedCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`contractTerminated()`](contractTerminatedCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct contractTerminatedReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: contractTerminatedCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for contractTerminatedCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: contractTerminatedReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for contractTerminatedReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for contractTerminatedCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "contractTerminated()"; + const SELECTOR: [u8; 4] = [26u8, 44u8, 42u8, 43u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: contractTerminatedReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: contractTerminatedReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `defaultAdmin()` and selector `0x84ef8ffc`. +```solidity +function defaultAdmin() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct defaultAdminCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`defaultAdmin()`](defaultAdminCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct defaultAdminReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: defaultAdminCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for defaultAdminCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: defaultAdminReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for defaultAdminReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for defaultAdminCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "defaultAdmin()"; + const SELECTOR: [u8; 4] = [132u8, 239u8, 143u8, 252u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: defaultAdminReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: defaultAdminReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `defaultAdminDelay()` and selector `0xcc8463c8`. +```solidity +function defaultAdminDelay() external view returns (uint48); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct defaultAdminDelayCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`defaultAdminDelay()`](defaultAdminDelayCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct defaultAdminDelayReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U48, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: defaultAdminDelayCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for defaultAdminDelayCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<48>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U48, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: defaultAdminDelayReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for defaultAdminDelayReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for defaultAdminDelayCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U48; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<48>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "defaultAdminDelay()"; + const SELECTOR: [u8; 4] = [204u8, 132u8, 99u8, 200u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: defaultAdminDelayReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: defaultAdminDelayReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `defaultAdminDelayIncreaseWait()` and selector `0x022d63fb`. +```solidity +function defaultAdminDelayIncreaseWait() external view returns (uint48); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct defaultAdminDelayIncreaseWaitCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`defaultAdminDelayIncreaseWait()`](defaultAdminDelayIncreaseWaitCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct defaultAdminDelayIncreaseWaitReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U48, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: defaultAdminDelayIncreaseWaitCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for defaultAdminDelayIncreaseWaitCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<48>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U48, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: defaultAdminDelayIncreaseWaitReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for defaultAdminDelayIncreaseWaitReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for defaultAdminDelayIncreaseWaitCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U48; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<48>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "defaultAdminDelayIncreaseWait()"; + const SELECTOR: [u8; 4] = [2u8, 45u8, 99u8, 251u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: defaultAdminDelayIncreaseWaitReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: defaultAdminDelayIncreaseWaitReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `end()` and selector `0xefbe1c1c`. +```solidity +function end() external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct endCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`end()`](endCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct endReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: endCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for endCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: endReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for endReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for endCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "end()"; + const SELECTOR: [u8; 4] = [239u8, 190u8, 28u8, 28u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: endReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: endReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `getRoleAdmin(bytes32)` and selector `0x248a9ca3`. +```solidity +function getRoleAdmin(bytes32 role) external view returns (bytes32); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getRoleAdminCall { + #[allow(missing_docs)] + pub role: alloy::sol_types::private::FixedBytes<32>, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`getRoleAdmin(bytes32)`](getRoleAdminCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getRoleAdminReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: getRoleAdminCall) -> Self { + (value.role,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for getRoleAdminCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { role: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: getRoleAdminReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for getRoleAdminReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for getRoleAdminCall { + type Parameters<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::FixedBytes<32>; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "getRoleAdmin(bytes32)"; + const SELECTOR: [u8; 4] = [36u8, 138u8, 156u8, 163u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.role), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: getRoleAdminReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: getRoleAdminReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `grantRole(bytes32,address)` and selector `0x2f2ff15d`. +```solidity +function grantRole(bytes32 role, address account) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct grantRoleCall { + #[allow(missing_docs)] + pub role: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub account: alloy::sol_types::private::Address, + } + ///Container type for the return parameters of the [`grantRole(bytes32,address)`](grantRoleCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct grantRoleReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::FixedBytes<32>, + alloy::sol_types::private::Address, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: grantRoleCall) -> Self { + (value.role, value.account) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for grantRoleCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + role: tuple.0, + account: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: grantRoleReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for grantRoleReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl grantRoleReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for grantRoleCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = grantRoleReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "grantRole(bytes32,address)"; + const SELECTOR: [u8; 4] = [47u8, 47u8, 241u8, 93u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.role), + ::tokenize( + &self.account, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + grantRoleReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `hasRole(bytes32,address)` and selector `0x91d14854`. +```solidity +function hasRole(bytes32 role, address account) external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct hasRoleCall { + #[allow(missing_docs)] + pub role: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub account: alloy::sol_types::private::Address, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`hasRole(bytes32,address)`](hasRoleCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct hasRoleReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::FixedBytes<32>, + alloy::sol_types::private::Address, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: hasRoleCall) -> Self { + (value.role, value.account) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for hasRoleCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + role: tuple.0, + account: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: hasRoleReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for hasRoleReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for hasRoleCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "hasRole(bytes32,address)"; + const SELECTOR: [u8; 4] = [145u8, 209u8, 72u8, 84u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.role), + ::tokenize( + &self.account, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: hasRoleReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: hasRoleReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `initialTokens()` and selector `0x50bfeadc`. +```solidity +function initialTokens() external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct initialTokensCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`initialTokens()`](initialTokensCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct initialTokensReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: initialTokensCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for initialTokensCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: initialTokensReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for initialTokensReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for initialTokensCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "initialTokens()"; + const SELECTOR: [u8; 4] = [80u8, 191u8, 234u8, 220u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: initialTokensReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: initialTokensReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `owner()` and selector `0x8da5cb5b`. +```solidity +function owner() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ownerCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`owner()`](ownerCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ownerReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ownerCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ownerCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ownerReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ownerReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for ownerCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "owner()"; + const SELECTOR: [u8; 4] = [141u8, 165u8, 203u8, 91u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: ownerReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: ownerReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `pendingDefaultAdmin()` and selector `0xcf6eefb7`. +```solidity +function pendingDefaultAdmin() external view returns (address newAdmin, uint48 schedule); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct pendingDefaultAdminCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`pendingDefaultAdmin()`](pendingDefaultAdminCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct pendingDefaultAdminReturn { + #[allow(missing_docs)] + pub newAdmin: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub schedule: alloy::sol_types::private::primitives::aliases::U48, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: pendingDefaultAdminCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for pendingDefaultAdminCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<48>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U48, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: pendingDefaultAdminReturn) -> Self { + (value.newAdmin, value.schedule) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for pendingDefaultAdminReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + newAdmin: tuple.0, + schedule: tuple.1, + } + } + } + } + impl pendingDefaultAdminReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + ( + ::tokenize( + &self.newAdmin, + ), + as alloy_sol_types::SolType>::tokenize(&self.schedule), + ) + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for pendingDefaultAdminCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = pendingDefaultAdminReturn; + type ReturnTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<48>, + ); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "pendingDefaultAdmin()"; + const SELECTOR: [u8; 4] = [207u8, 110u8, 239u8, 183u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + pendingDefaultAdminReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `pendingDefaultAdminDelay()` and selector `0xa1eda53c`. +```solidity +function pendingDefaultAdminDelay() external view returns (uint48 newDelay, uint48 schedule); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct pendingDefaultAdminDelayCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`pendingDefaultAdminDelay()`](pendingDefaultAdminDelayCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct pendingDefaultAdminDelayReturn { + #[allow(missing_docs)] + pub newDelay: alloy::sol_types::private::primitives::aliases::U48, + #[allow(missing_docs)] + pub schedule: alloy::sol_types::private::primitives::aliases::U48, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: pendingDefaultAdminDelayCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for pendingDefaultAdminDelayCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Uint<48>, + alloy::sol_types::sol_data::Uint<48>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U48, + alloy::sol_types::private::primitives::aliases::U48, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: pendingDefaultAdminDelayReturn) -> Self { + (value.newDelay, value.schedule) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for pendingDefaultAdminDelayReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + newDelay: tuple.0, + schedule: tuple.1, + } + } + } + } + impl pendingDefaultAdminDelayReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken< + '_, + > { + ( + as alloy_sol_types::SolType>::tokenize(&self.newDelay), + as alloy_sol_types::SolType>::tokenize(&self.schedule), + ) + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for pendingDefaultAdminDelayCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = pendingDefaultAdminDelayReturn; + type ReturnTuple<'a> = ( + alloy::sol_types::sol_data::Uint<48>, + alloy::sol_types::sol_data::Uint<48>, + ); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "pendingDefaultAdminDelay()"; + const SELECTOR: [u8; 4] = [161u8, 237u8, 165u8, 60u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + pendingDefaultAdminDelayReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `releasable()` and selector `0xfbccedae`. +```solidity +function releasable() external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct releasableCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`releasable()`](releasableCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct releasableReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: releasableCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for releasableCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: releasableReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for releasableReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for releasableCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "releasable()"; + const SELECTOR: [u8; 4] = [251u8, 204u8, 237u8, 174u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: releasableReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: releasableReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `release()` and selector `0x86d1a69f`. +```solidity +function release() external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct releaseCall; + ///Container type for the return parameters of the [`release()`](releaseCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct releaseReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: releaseCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for releaseCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: releaseReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for releaseReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl releaseReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for releaseCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = releaseReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "release()"; + const SELECTOR: [u8; 4] = [134u8, 209u8, 166u8, 159u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + releaseReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `released()` and selector `0x96132521`. +```solidity +function released() external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct releasedCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`released()`](releasedCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct releasedReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: releasedCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for releasedCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: releasedReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for releasedReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for releasedCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "released()"; + const SELECTOR: [u8; 4] = [150u8, 19u8, 37u8, 33u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: releasedReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: releasedReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `renounceRole(bytes32,address)` and selector `0x36568abe`. +```solidity +function renounceRole(bytes32 role, address account) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct renounceRoleCall { + #[allow(missing_docs)] + pub role: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub account: alloy::sol_types::private::Address, + } + ///Container type for the return parameters of the [`renounceRole(bytes32,address)`](renounceRoleCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct renounceRoleReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::FixedBytes<32>, + alloy::sol_types::private::Address, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: renounceRoleCall) -> Self { + (value.role, value.account) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for renounceRoleCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + role: tuple.0, + account: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: renounceRoleReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for renounceRoleReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl renounceRoleReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for renounceRoleCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = renounceRoleReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "renounceRole(bytes32,address)"; + const SELECTOR: [u8; 4] = [54u8, 86u8, 138u8, 190u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.role), + ::tokenize( + &self.account, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + renounceRoleReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `resume()` and selector `0x046f7da2`. +```solidity +function resume() external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct resumeCall; + ///Container type for the return parameters of the [`resume()`](resumeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct resumeReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: resumeCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for resumeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: resumeReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for resumeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl resumeReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for resumeCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = resumeReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "resume()"; + const SELECTOR: [u8; 4] = [4u8, 111u8, 125u8, 162u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + resumeReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `revokeRole(bytes32,address)` and selector `0xd547741f`. +```solidity +function revokeRole(bytes32 role, address account) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct revokeRoleCall { + #[allow(missing_docs)] + pub role: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub account: alloy::sol_types::private::Address, + } + ///Container type for the return parameters of the [`revokeRole(bytes32,address)`](revokeRoleCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct revokeRoleReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::FixedBytes<32>, + alloy::sol_types::private::Address, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: revokeRoleCall) -> Self { + (value.role, value.account) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for revokeRoleCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + role: tuple.0, + account: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: revokeRoleReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for revokeRoleReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl revokeRoleReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for revokeRoleCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = revokeRoleReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "revokeRole(bytes32,address)"; + const SELECTOR: [u8; 4] = [213u8, 71u8, 116u8, 31u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.role), + ::tokenize( + &self.account, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + revokeRoleReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `rollbackDefaultAdminDelay()` and selector `0x0aa6220b`. +```solidity +function rollbackDefaultAdminDelay() external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct rollbackDefaultAdminDelayCall; + ///Container type for the return parameters of the [`rollbackDefaultAdminDelay()`](rollbackDefaultAdminDelayCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct rollbackDefaultAdminDelayReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: rollbackDefaultAdminDelayCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for rollbackDefaultAdminDelayCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: rollbackDefaultAdminDelayReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for rollbackDefaultAdminDelayReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl rollbackDefaultAdminDelayReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken< + '_, + > { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for rollbackDefaultAdminDelayCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = rollbackDefaultAdminDelayReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "rollbackDefaultAdminDelay()"; + const SELECTOR: [u8; 4] = [10u8, 166u8, 34u8, 11u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + rollbackDefaultAdminDelayReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `start()` and selector `0xbe9a6555`. +```solidity +function start() external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct startCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`start()`](startCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct startReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: startCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for startCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: startReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for startReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for startCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "start()"; + const SELECTOR: [u8; 4] = [190u8, 154u8, 101u8, 85u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: startReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: startReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `supportsInterface(bytes4)` and selector `0x01ffc9a7`. +```solidity +function supportsInterface(bytes4 interfaceId) external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct supportsInterfaceCall { + #[allow(missing_docs)] + pub interfaceId: alloy::sol_types::private::FixedBytes<4>, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`supportsInterface(bytes4)`](supportsInterfaceCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct supportsInterfaceReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<4>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<4>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: supportsInterfaceCall) -> Self { + (value.interfaceId,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for supportsInterfaceCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { interfaceId: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: supportsInterfaceReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for supportsInterfaceReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for supportsInterfaceCall { + type Parameters<'a> = (alloy::sol_types::sol_data::FixedBytes<4>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "supportsInterface(bytes4)"; + const SELECTOR: [u8; 4] = [1u8, 255u8, 201u8, 167u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.interfaceId), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: supportsInterfaceReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: supportsInterfaceReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `terminate()` and selector `0x0c08bf88`. +```solidity +function terminate() external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct terminateCall; + ///Container type for the return parameters of the [`terminate()`](terminateCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct terminateReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: terminateCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for terminateCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: terminateReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for terminateReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl terminateReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for terminateCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = terminateReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "terminate()"; + const SELECTOR: [u8; 4] = [12u8, 8u8, 191u8, 136u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + terminateReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `updateBenefactor(address)` and selector `0x50ad2555`. +```solidity +function updateBenefactor(address newBenefactor) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct updateBenefactorCall { + #[allow(missing_docs)] + pub newBenefactor: alloy::sol_types::private::Address, + } + ///Container type for the return parameters of the [`updateBenefactor(address)`](updateBenefactorCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct updateBenefactorReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: updateBenefactorCall) -> Self { + (value.newBenefactor,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for updateBenefactorCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { newBenefactor: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: updateBenefactorReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for updateBenefactorReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl updateBenefactorReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for updateBenefactorCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = updateBenefactorReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "updateBenefactor(address)"; + const SELECTOR: [u8; 4] = [80u8, 173u8, 37u8, 85u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.newBenefactor, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + updateBenefactorReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `updateBeneficiary(address)` and selector `0x0aaffd2a`. +```solidity +function updateBeneficiary(address newBeneficiary) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct updateBeneficiaryCall { + #[allow(missing_docs)] + pub newBeneficiary: alloy::sol_types::private::Address, + } + ///Container type for the return parameters of the [`updateBeneficiary(address)`](updateBeneficiaryCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct updateBeneficiaryReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: updateBeneficiaryCall) -> Self { + (value.newBeneficiary,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for updateBeneficiaryCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { newBeneficiary: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: updateBeneficiaryReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for updateBeneficiaryReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl updateBeneficiaryReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for updateBeneficiaryCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = updateBeneficiaryReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "updateBeneficiary(address)"; + const SELECTOR: [u8; 4] = [10u8, 175u8, 253u8, 42u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.newBeneficiary, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + updateBeneficiaryReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `vestedAmount(uint256)` and selector `0x1bfce853`. +```solidity +function vestedAmount(uint256 timestamp) external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct vestedAmountCall { + #[allow(missing_docs)] + pub timestamp: alloy::sol_types::private::primitives::aliases::U256, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`vestedAmount(uint256)`](vestedAmountCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct vestedAmountReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: vestedAmountCall) -> Self { + (value.timestamp,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for vestedAmountCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { timestamp: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: vestedAmountReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for vestedAmountReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for vestedAmountCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "vestedAmount(uint256)"; + const SELECTOR: [u8; 4] = [27u8, 252u8, 232u8, 83u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.timestamp), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: vestedAmountReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: vestedAmountReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `vestingEventTokens()` and selector `0x677caf81`. +```solidity +function vestingEventTokens() external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct vestingEventTokensCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`vestingEventTokens()`](vestingEventTokensCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct vestingEventTokensReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: vestingEventTokensCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for vestingEventTokensCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: vestingEventTokensReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for vestingEventTokensReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for vestingEventTokensCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "vestingEventTokens()"; + const SELECTOR: [u8; 4] = [103u8, 124u8, 175u8, 129u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: vestingEventTokensReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: vestingEventTokensReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `vestingPeriod()` and selector `0x7313ee5a`. +```solidity +function vestingPeriod() external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct vestingPeriodCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`vestingPeriod()`](vestingPeriodCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct vestingPeriodReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: vestingPeriodCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for vestingPeriodCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: vestingPeriodReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for vestingPeriodReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for vestingPeriodCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "vestingPeriod()"; + const SELECTOR: [u8; 4] = [115u8, 19u8, 238u8, 90u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: vestingPeriodReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: vestingPeriodReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `withdrawUnvestedTokens()` and selector `0x2806e3d6`. +```solidity +function withdrawUnvestedTokens() external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct withdrawUnvestedTokensCall; + ///Container type for the return parameters of the [`withdrawUnvestedTokens()`](withdrawUnvestedTokensCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct withdrawUnvestedTokensReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: withdrawUnvestedTokensCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for withdrawUnvestedTokensCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: withdrawUnvestedTokensReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for withdrawUnvestedTokensReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl withdrawUnvestedTokensReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken< + '_, + > { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for withdrawUnvestedTokensCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = withdrawUnvestedTokensReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "withdrawUnvestedTokens()"; + const SELECTOR: [u8; 4] = [40u8, 6u8, 227u8, 214u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + withdrawUnvestedTokensReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + ///Container for all the [`SmartEscrow`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum SmartEscrowCalls { + #[allow(missing_docs)] + BENEFACTOR_OWNER_ROLE(BENEFACTOR_OWNER_ROLECall), + #[allow(missing_docs)] + BENEFICIARY_OWNER_ROLE(BENEFICIARY_OWNER_ROLECall), + #[allow(missing_docs)] + DEFAULT_ADMIN_ROLE(DEFAULT_ADMIN_ROLECall), + #[allow(missing_docs)] + OP_TOKEN(OP_TOKENCall), + #[allow(missing_docs)] + TERMINATOR_ROLE(TERMINATOR_ROLECall), + #[allow(missing_docs)] + acceptDefaultAdminTransfer(acceptDefaultAdminTransferCall), + #[allow(missing_docs)] + beginDefaultAdminTransfer(beginDefaultAdminTransferCall), + #[allow(missing_docs)] + benefactor(benefactorCall), + #[allow(missing_docs)] + beneficiary(beneficiaryCall), + #[allow(missing_docs)] + cancelDefaultAdminTransfer(cancelDefaultAdminTransferCall), + #[allow(missing_docs)] + changeDefaultAdminDelay(changeDefaultAdminDelayCall), + #[allow(missing_docs)] + cliffStart(cliffStartCall), + #[allow(missing_docs)] + contractTerminated(contractTerminatedCall), + #[allow(missing_docs)] + defaultAdmin(defaultAdminCall), + #[allow(missing_docs)] + defaultAdminDelay(defaultAdminDelayCall), + #[allow(missing_docs)] + defaultAdminDelayIncreaseWait(defaultAdminDelayIncreaseWaitCall), + #[allow(missing_docs)] + end(endCall), + #[allow(missing_docs)] + getRoleAdmin(getRoleAdminCall), + #[allow(missing_docs)] + grantRole(grantRoleCall), + #[allow(missing_docs)] + hasRole(hasRoleCall), + #[allow(missing_docs)] + initialTokens(initialTokensCall), + #[allow(missing_docs)] + owner(ownerCall), + #[allow(missing_docs)] + pendingDefaultAdmin(pendingDefaultAdminCall), + #[allow(missing_docs)] + pendingDefaultAdminDelay(pendingDefaultAdminDelayCall), + #[allow(missing_docs)] + releasable(releasableCall), + #[allow(missing_docs)] + release(releaseCall), + #[allow(missing_docs)] + released(releasedCall), + #[allow(missing_docs)] + renounceRole(renounceRoleCall), + #[allow(missing_docs)] + resume(resumeCall), + #[allow(missing_docs)] + revokeRole(revokeRoleCall), + #[allow(missing_docs)] + rollbackDefaultAdminDelay(rollbackDefaultAdminDelayCall), + #[allow(missing_docs)] + start(startCall), + #[allow(missing_docs)] + supportsInterface(supportsInterfaceCall), + #[allow(missing_docs)] + terminate(terminateCall), + #[allow(missing_docs)] + updateBenefactor(updateBenefactorCall), + #[allow(missing_docs)] + updateBeneficiary(updateBeneficiaryCall), + #[allow(missing_docs)] + vestedAmount(vestedAmountCall), + #[allow(missing_docs)] + vestingEventTokens(vestingEventTokensCall), + #[allow(missing_docs)] + vestingPeriod(vestingPeriodCall), + #[allow(missing_docs)] + withdrawUnvestedTokens(withdrawUnvestedTokensCall), + } + impl SmartEscrowCalls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [1u8, 255u8, 201u8, 167u8], + [2u8, 45u8, 99u8, 251u8], + [4u8, 111u8, 125u8, 162u8], + [10u8, 166u8, 34u8, 11u8], + [10u8, 175u8, 253u8, 42u8], + [12u8, 8u8, 191u8, 136u8], + [26u8, 44u8, 42u8, 43u8], + [27u8, 252u8, 232u8, 83u8], + [34u8, 77u8, 126u8, 89u8], + [36u8, 138u8, 156u8, 163u8], + [40u8, 6u8, 227u8, 214u8], + [42u8, 113u8, 23u8, 82u8], + [47u8, 47u8, 241u8, 93u8], + [54u8, 86u8, 138u8, 190u8], + [56u8, 175u8, 62u8, 237u8], + [80u8, 173u8, 37u8, 85u8], + [80u8, 191u8, 234u8, 220u8], + [99u8, 78u8, 147u8, 218u8], + [100u8, 154u8, 94u8, 199u8], + [103u8, 124u8, 175u8, 129u8], + [110u8, 253u8, 6u8, 193u8], + [115u8, 19u8, 238u8, 90u8], + [124u8, 164u8, 1u8, 1u8], + [132u8, 239u8, 143u8, 252u8], + [134u8, 209u8, 166u8, 159u8], + [138u8, 129u8, 105u8, 76u8], + [141u8, 165u8, 203u8, 91u8], + [145u8, 209u8, 72u8, 84u8], + [150u8, 19u8, 37u8, 33u8], + [161u8, 237u8, 165u8, 60u8], + [162u8, 23u8, 253u8, 223u8], + [178u8, 151u8, 197u8, 81u8], + [190u8, 154u8, 101u8, 85u8], + [204u8, 132u8, 99u8, 200u8], + [206u8, 252u8, 20u8, 41u8], + [207u8, 110u8, 239u8, 183u8], + [213u8, 71u8, 116u8, 31u8], + [214u8, 2u8, 185u8, 253u8], + [239u8, 190u8, 28u8, 28u8], + [251u8, 204u8, 237u8, 174u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(supportsInterface), + ::core::stringify!(defaultAdminDelayIncreaseWait), + ::core::stringify!(resume), + ::core::stringify!(rollbackDefaultAdminDelay), + ::core::stringify!(updateBeneficiary), + ::core::stringify!(terminate), + ::core::stringify!(contractTerminated), + ::core::stringify!(vestedAmount), + ::core::stringify!(OP_TOKEN), + ::core::stringify!(getRoleAdmin), + ::core::stringify!(withdrawUnvestedTokens), + ::core::stringify!(TERMINATOR_ROLE), + ::core::stringify!(grantRole), + ::core::stringify!(renounceRole), + ::core::stringify!(beneficiary), + ::core::stringify!(updateBenefactor), + ::core::stringify!(initialTokens), + ::core::stringify!(beginDefaultAdminTransfer), + ::core::stringify!(changeDefaultAdminDelay), + ::core::stringify!(vestingEventTokens), + ::core::stringify!(BENEFICIARY_OWNER_ROLE), + ::core::stringify!(vestingPeriod), + ::core::stringify!(BENEFACTOR_OWNER_ROLE), + ::core::stringify!(defaultAdmin), + ::core::stringify!(release), + ::core::stringify!(benefactor), + ::core::stringify!(owner), + ::core::stringify!(hasRole), + ::core::stringify!(released), + ::core::stringify!(pendingDefaultAdminDelay), + ::core::stringify!(DEFAULT_ADMIN_ROLE), + ::core::stringify!(cliffStart), + ::core::stringify!(start), + ::core::stringify!(defaultAdminDelay), + ::core::stringify!(acceptDefaultAdminTransfer), + ::core::stringify!(pendingDefaultAdmin), + ::core::stringify!(revokeRole), + ::core::stringify!(cancelDefaultAdminTransfer), + ::core::stringify!(end), + ::core::stringify!(releasable), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for SmartEscrowCalls { + const NAME: &'static str = "SmartEscrowCalls"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 40usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::BENEFACTOR_OWNER_ROLE(_) => { + ::SELECTOR + } + Self::BENEFICIARY_OWNER_ROLE(_) => { + ::SELECTOR + } + Self::DEFAULT_ADMIN_ROLE(_) => { + ::SELECTOR + } + Self::OP_TOKEN(_) => ::SELECTOR, + Self::TERMINATOR_ROLE(_) => { + ::SELECTOR + } + Self::acceptDefaultAdminTransfer(_) => { + ::SELECTOR + } + Self::beginDefaultAdminTransfer(_) => { + ::SELECTOR + } + Self::benefactor(_) => { + ::SELECTOR + } + Self::beneficiary(_) => { + ::SELECTOR + } + Self::cancelDefaultAdminTransfer(_) => { + ::SELECTOR + } + Self::changeDefaultAdminDelay(_) => { + ::SELECTOR + } + Self::cliffStart(_) => { + ::SELECTOR + } + Self::contractTerminated(_) => { + ::SELECTOR + } + Self::defaultAdmin(_) => { + ::SELECTOR + } + Self::defaultAdminDelay(_) => { + ::SELECTOR + } + Self::defaultAdminDelayIncreaseWait(_) => { + ::SELECTOR + } + Self::end(_) => ::SELECTOR, + Self::getRoleAdmin(_) => { + ::SELECTOR + } + Self::grantRole(_) => { + ::SELECTOR + } + Self::hasRole(_) => ::SELECTOR, + Self::initialTokens(_) => { + ::SELECTOR + } + Self::owner(_) => ::SELECTOR, + Self::pendingDefaultAdmin(_) => { + ::SELECTOR + } + Self::pendingDefaultAdminDelay(_) => { + ::SELECTOR + } + Self::releasable(_) => { + ::SELECTOR + } + Self::release(_) => ::SELECTOR, + Self::released(_) => ::SELECTOR, + Self::renounceRole(_) => { + ::SELECTOR + } + Self::resume(_) => ::SELECTOR, + Self::revokeRole(_) => { + ::SELECTOR + } + Self::rollbackDefaultAdminDelay(_) => { + ::SELECTOR + } + Self::start(_) => ::SELECTOR, + Self::supportsInterface(_) => { + ::SELECTOR + } + Self::terminate(_) => { + ::SELECTOR + } + Self::updateBenefactor(_) => { + ::SELECTOR + } + Self::updateBeneficiary(_) => { + ::SELECTOR + } + Self::vestedAmount(_) => { + ::SELECTOR + } + Self::vestingEventTokens(_) => { + ::SELECTOR + } + Self::vestingPeriod(_) => { + ::SELECTOR + } + Self::withdrawUnvestedTokens(_) => { + ::SELECTOR + } + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn supportsInterface( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SmartEscrowCalls::supportsInterface) + } + supportsInterface + }, + { + fn defaultAdminDelayIncreaseWait( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SmartEscrowCalls::defaultAdminDelayIncreaseWait) + } + defaultAdminDelayIncreaseWait + }, + { + fn resume(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(SmartEscrowCalls::resume) + } + resume + }, + { + fn rollbackDefaultAdminDelay( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SmartEscrowCalls::rollbackDefaultAdminDelay) + } + rollbackDefaultAdminDelay + }, + { + fn updateBeneficiary( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SmartEscrowCalls::updateBeneficiary) + } + updateBeneficiary + }, + { + fn terminate( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(SmartEscrowCalls::terminate) + } + terminate + }, + { + fn contractTerminated( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SmartEscrowCalls::contractTerminated) + } + contractTerminated + }, + { + fn vestedAmount( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SmartEscrowCalls::vestedAmount) + } + vestedAmount + }, + { + fn OP_TOKEN( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(SmartEscrowCalls::OP_TOKEN) + } + OP_TOKEN + }, + { + fn getRoleAdmin( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SmartEscrowCalls::getRoleAdmin) + } + getRoleAdmin + }, + { + fn withdrawUnvestedTokens( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SmartEscrowCalls::withdrawUnvestedTokens) + } + withdrawUnvestedTokens + }, + { + fn TERMINATOR_ROLE( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SmartEscrowCalls::TERMINATOR_ROLE) + } + TERMINATOR_ROLE + }, + { + fn grantRole( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(SmartEscrowCalls::grantRole) + } + grantRole + }, + { + fn renounceRole( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SmartEscrowCalls::renounceRole) + } + renounceRole + }, + { + fn beneficiary( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SmartEscrowCalls::beneficiary) + } + beneficiary + }, + { + fn updateBenefactor( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SmartEscrowCalls::updateBenefactor) + } + updateBenefactor + }, + { + fn initialTokens( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SmartEscrowCalls::initialTokens) + } + initialTokens + }, + { + fn beginDefaultAdminTransfer( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SmartEscrowCalls::beginDefaultAdminTransfer) + } + beginDefaultAdminTransfer + }, + { + fn changeDefaultAdminDelay( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SmartEscrowCalls::changeDefaultAdminDelay) + } + changeDefaultAdminDelay + }, + { + fn vestingEventTokens( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SmartEscrowCalls::vestingEventTokens) + } + vestingEventTokens + }, + { + fn BENEFICIARY_OWNER_ROLE( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SmartEscrowCalls::BENEFICIARY_OWNER_ROLE) + } + BENEFICIARY_OWNER_ROLE + }, + { + fn vestingPeriod( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SmartEscrowCalls::vestingPeriod) + } + vestingPeriod + }, + { + fn BENEFACTOR_OWNER_ROLE( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SmartEscrowCalls::BENEFACTOR_OWNER_ROLE) + } + BENEFACTOR_OWNER_ROLE + }, + { + fn defaultAdmin( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SmartEscrowCalls::defaultAdmin) + } + defaultAdmin + }, + { + fn release( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(SmartEscrowCalls::release) + } + release + }, + { + fn benefactor( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SmartEscrowCalls::benefactor) + } + benefactor + }, + { + fn owner(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(SmartEscrowCalls::owner) + } + owner + }, + { + fn hasRole( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(SmartEscrowCalls::hasRole) + } + hasRole + }, + { + fn released( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(SmartEscrowCalls::released) + } + released + }, + { + fn pendingDefaultAdminDelay( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SmartEscrowCalls::pendingDefaultAdminDelay) + } + pendingDefaultAdminDelay + }, + { + fn DEFAULT_ADMIN_ROLE( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SmartEscrowCalls::DEFAULT_ADMIN_ROLE) + } + DEFAULT_ADMIN_ROLE + }, + { + fn cliffStart( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SmartEscrowCalls::cliffStart) + } + cliffStart + }, + { + fn start(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(SmartEscrowCalls::start) + } + start + }, + { + fn defaultAdminDelay( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SmartEscrowCalls::defaultAdminDelay) + } + defaultAdminDelay + }, + { + fn acceptDefaultAdminTransfer( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SmartEscrowCalls::acceptDefaultAdminTransfer) + } + acceptDefaultAdminTransfer + }, + { + fn pendingDefaultAdmin( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SmartEscrowCalls::pendingDefaultAdmin) + } + pendingDefaultAdmin + }, + { + fn revokeRole( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SmartEscrowCalls::revokeRole) + } + revokeRole + }, + { + fn cancelDefaultAdminTransfer( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SmartEscrowCalls::cancelDefaultAdminTransfer) + } + cancelDefaultAdminTransfer + }, + { + fn end(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(SmartEscrowCalls::end) + } + end + }, + { + fn releasable( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SmartEscrowCalls::releasable) + } + releasable + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn supportsInterface( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SmartEscrowCalls::supportsInterface) + } + supportsInterface + }, + { + fn defaultAdminDelayIncreaseWait( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SmartEscrowCalls::defaultAdminDelayIncreaseWait) + } + defaultAdminDelayIncreaseWait + }, + { + fn resume(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SmartEscrowCalls::resume) + } + resume + }, + { + fn rollbackDefaultAdminDelay( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SmartEscrowCalls::rollbackDefaultAdminDelay) + } + rollbackDefaultAdminDelay + }, + { + fn updateBeneficiary( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SmartEscrowCalls::updateBeneficiary) + } + updateBeneficiary + }, + { + fn terminate( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SmartEscrowCalls::terminate) + } + terminate + }, + { + fn contractTerminated( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SmartEscrowCalls::contractTerminated) + } + contractTerminated + }, + { + fn vestedAmount( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SmartEscrowCalls::vestedAmount) + } + vestedAmount + }, + { + fn OP_TOKEN( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SmartEscrowCalls::OP_TOKEN) + } + OP_TOKEN + }, + { + fn getRoleAdmin( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SmartEscrowCalls::getRoleAdmin) + } + getRoleAdmin + }, + { + fn withdrawUnvestedTokens( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SmartEscrowCalls::withdrawUnvestedTokens) + } + withdrawUnvestedTokens + }, + { + fn TERMINATOR_ROLE( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SmartEscrowCalls::TERMINATOR_ROLE) + } + TERMINATOR_ROLE + }, + { + fn grantRole( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SmartEscrowCalls::grantRole) + } + grantRole + }, + { + fn renounceRole( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SmartEscrowCalls::renounceRole) + } + renounceRole + }, + { + fn beneficiary( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SmartEscrowCalls::beneficiary) + } + beneficiary + }, + { + fn updateBenefactor( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SmartEscrowCalls::updateBenefactor) + } + updateBenefactor + }, + { + fn initialTokens( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SmartEscrowCalls::initialTokens) + } + initialTokens + }, + { + fn beginDefaultAdminTransfer( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SmartEscrowCalls::beginDefaultAdminTransfer) + } + beginDefaultAdminTransfer + }, + { + fn changeDefaultAdminDelay( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SmartEscrowCalls::changeDefaultAdminDelay) + } + changeDefaultAdminDelay + }, + { + fn vestingEventTokens( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SmartEscrowCalls::vestingEventTokens) + } + vestingEventTokens + }, + { + fn BENEFICIARY_OWNER_ROLE( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SmartEscrowCalls::BENEFICIARY_OWNER_ROLE) + } + BENEFICIARY_OWNER_ROLE + }, + { + fn vestingPeriod( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SmartEscrowCalls::vestingPeriod) + } + vestingPeriod + }, + { + fn BENEFACTOR_OWNER_ROLE( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SmartEscrowCalls::BENEFACTOR_OWNER_ROLE) + } + BENEFACTOR_OWNER_ROLE + }, + { + fn defaultAdmin( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SmartEscrowCalls::defaultAdmin) + } + defaultAdmin + }, + { + fn release( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SmartEscrowCalls::release) + } + release + }, + { + fn benefactor( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SmartEscrowCalls::benefactor) + } + benefactor + }, + { + fn owner(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SmartEscrowCalls::owner) + } + owner + }, + { + fn hasRole( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SmartEscrowCalls::hasRole) + } + hasRole + }, + { + fn released( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SmartEscrowCalls::released) + } + released + }, + { + fn pendingDefaultAdminDelay( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SmartEscrowCalls::pendingDefaultAdminDelay) + } + pendingDefaultAdminDelay + }, + { + fn DEFAULT_ADMIN_ROLE( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SmartEscrowCalls::DEFAULT_ADMIN_ROLE) + } + DEFAULT_ADMIN_ROLE + }, + { + fn cliffStart( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SmartEscrowCalls::cliffStart) + } + cliffStart + }, + { + fn start(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SmartEscrowCalls::start) + } + start + }, + { + fn defaultAdminDelay( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SmartEscrowCalls::defaultAdminDelay) + } + defaultAdminDelay + }, + { + fn acceptDefaultAdminTransfer( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SmartEscrowCalls::acceptDefaultAdminTransfer) + } + acceptDefaultAdminTransfer + }, + { + fn pendingDefaultAdmin( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SmartEscrowCalls::pendingDefaultAdmin) + } + pendingDefaultAdmin + }, + { + fn revokeRole( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SmartEscrowCalls::revokeRole) + } + revokeRole + }, + { + fn cancelDefaultAdminTransfer( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SmartEscrowCalls::cancelDefaultAdminTransfer) + } + cancelDefaultAdminTransfer + }, + { + fn end(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SmartEscrowCalls::end) + } + end + }, + { + fn releasable( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SmartEscrowCalls::releasable) + } + releasable + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::BENEFACTOR_OWNER_ROLE(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::BENEFICIARY_OWNER_ROLE(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::DEFAULT_ADMIN_ROLE(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::OP_TOKEN(inner) => { + ::abi_encoded_size(inner) + } + Self::TERMINATOR_ROLE(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::acceptDefaultAdminTransfer(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::beginDefaultAdminTransfer(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::benefactor(inner) => { + ::abi_encoded_size(inner) + } + Self::beneficiary(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::cancelDefaultAdminTransfer(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::changeDefaultAdminDelay(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::cliffStart(inner) => { + ::abi_encoded_size(inner) + } + Self::contractTerminated(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::defaultAdmin(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::defaultAdminDelay(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::defaultAdminDelayIncreaseWait(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::end(inner) => { + ::abi_encoded_size(inner) + } + Self::getRoleAdmin(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::grantRole(inner) => { + ::abi_encoded_size(inner) + } + Self::hasRole(inner) => { + ::abi_encoded_size(inner) + } + Self::initialTokens(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::owner(inner) => { + ::abi_encoded_size(inner) + } + Self::pendingDefaultAdmin(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::pendingDefaultAdminDelay(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::releasable(inner) => { + ::abi_encoded_size(inner) + } + Self::release(inner) => { + ::abi_encoded_size(inner) + } + Self::released(inner) => { + ::abi_encoded_size(inner) + } + Self::renounceRole(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::resume(inner) => { + ::abi_encoded_size(inner) + } + Self::revokeRole(inner) => { + ::abi_encoded_size(inner) + } + Self::rollbackDefaultAdminDelay(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::start(inner) => { + ::abi_encoded_size(inner) + } + Self::supportsInterface(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::terminate(inner) => { + ::abi_encoded_size(inner) + } + Self::updateBenefactor(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::updateBeneficiary(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::vestedAmount(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::vestingEventTokens(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::vestingPeriod(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::withdrawUnvestedTokens(inner) => { + ::abi_encoded_size( + inner, + ) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::BENEFACTOR_OWNER_ROLE(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::BENEFICIARY_OWNER_ROLE(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::DEFAULT_ADMIN_ROLE(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::OP_TOKEN(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::TERMINATOR_ROLE(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::acceptDefaultAdminTransfer(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::beginDefaultAdminTransfer(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::benefactor(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::beneficiary(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::cancelDefaultAdminTransfer(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::changeDefaultAdminDelay(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::cliffStart(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::contractTerminated(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::defaultAdmin(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::defaultAdminDelay(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::defaultAdminDelayIncreaseWait(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::end(inner) => { + ::abi_encode_raw(inner, out) + } + Self::getRoleAdmin(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::grantRole(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::hasRole(inner) => { + ::abi_encode_raw(inner, out) + } + Self::initialTokens(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::owner(inner) => { + ::abi_encode_raw(inner, out) + } + Self::pendingDefaultAdmin(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::pendingDefaultAdminDelay(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::releasable(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::release(inner) => { + ::abi_encode_raw(inner, out) + } + Self::released(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::renounceRole(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::resume(inner) => { + ::abi_encode_raw(inner, out) + } + Self::revokeRole(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::rollbackDefaultAdminDelay(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::start(inner) => { + ::abi_encode_raw(inner, out) + } + Self::supportsInterface(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::terminate(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::updateBenefactor(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::updateBeneficiary(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::vestedAmount(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::vestingEventTokens(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::vestingPeriod(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::withdrawUnvestedTokens(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + } + } + } + ///Container for all the [`SmartEscrow`](self) custom errors. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum SmartEscrowErrors { + #[allow(missing_docs)] + AccessControlBadConfirmation(AccessControlBadConfirmation), + #[allow(missing_docs)] + AccessControlEnforcedDefaultAdminDelay(AccessControlEnforcedDefaultAdminDelay), + #[allow(missing_docs)] + AccessControlEnforcedDefaultAdminRules(AccessControlEnforcedDefaultAdminRules), + #[allow(missing_docs)] + AccessControlInvalidDefaultAdmin(AccessControlInvalidDefaultAdmin), + #[allow(missing_docs)] + AccessControlUnauthorizedAccount(AccessControlUnauthorizedAccount), + #[allow(missing_docs)] + AddressIsZeroAddress(AddressIsZeroAddress), + #[allow(missing_docs)] + CliffStartTimeAfterEndTime(CliffStartTimeAfterEndTime), + #[allow(missing_docs)] + CliffStartTimeInvalid(CliffStartTimeInvalid), + #[allow(missing_docs)] + ContractIsNotTerminated(ContractIsNotTerminated), + #[allow(missing_docs)] + ContractIsTerminated(ContractIsTerminated), + #[allow(missing_docs)] + SafeCastOverflowedUintDowncast(SafeCastOverflowedUintDowncast), + #[allow(missing_docs)] + StartTimeAfterEndTime(StartTimeAfterEndTime), + #[allow(missing_docs)] + UnevenVestingPeriod(UnevenVestingPeriod), + #[allow(missing_docs)] + VestingEventTokensIsZero(VestingEventTokensIsZero), + #[allow(missing_docs)] + VestingPeriodExceedsContractDuration(VestingPeriodExceedsContractDuration), + #[allow(missing_docs)] + VestingPeriodIsZeroSeconds(VestingPeriodIsZeroSeconds), + } + impl SmartEscrowErrors { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [7u8, 198u8, 60u8, 90u8], + [25u8, 202u8, 94u8, 187u8], + [47u8, 233u8, 145u8, 116u8], + [58u8, 133u8, 94u8, 164u8], + [63u8, 195u8, 194u8, 122u8], + [89u8, 61u8, 113u8, 47u8], + [102u8, 151u8, 178u8, 50u8], + [109u8, 252u8, 198u8, 80u8], + [131u8, 222u8, 88u8, 31u8], + [147u8, 30u8, 244u8, 147u8], + [172u8, 11u8, 62u8, 33u8], + [186u8, 194u8, 253u8, 38u8], + [194u8, 44u8, 128u8, 34u8], + [221u8, 118u8, 220u8, 213u8], + [226u8, 81u8, 125u8, 63u8], + [245u8, 78u8, 239u8, 86u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(ContractIsTerminated), + ::core::stringify!(AccessControlEnforcedDefaultAdminDelay), + ::core::stringify!(VestingPeriodExceedsContractDuration), + ::core::stringify!(VestingEventTokensIsZero), + ::core::stringify!(AccessControlEnforcedDefaultAdminRules), + ::core::stringify!(StartTimeAfterEndTime), + ::core::stringify!(AccessControlBadConfirmation), + ::core::stringify!(SafeCastOverflowedUintDowncast), + ::core::stringify!(CliffStartTimeAfterEndTime), + ::core::stringify!(VestingPeriodIsZeroSeconds), + ::core::stringify!(AddressIsZeroAddress), + ::core::stringify!(CliffStartTimeInvalid), + ::core::stringify!(AccessControlInvalidDefaultAdmin), + ::core::stringify!(UnevenVestingPeriod), + ::core::stringify!(AccessControlUnauthorizedAccount), + ::core::stringify!(ContractIsNotTerminated), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for SmartEscrowErrors { + const NAME: &'static str = "SmartEscrowErrors"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 16usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::AccessControlBadConfirmation(_) => { + ::SELECTOR + } + Self::AccessControlEnforcedDefaultAdminDelay(_) => { + ::SELECTOR + } + Self::AccessControlEnforcedDefaultAdminRules(_) => { + ::SELECTOR + } + Self::AccessControlInvalidDefaultAdmin(_) => { + ::SELECTOR + } + Self::AccessControlUnauthorizedAccount(_) => { + ::SELECTOR + } + Self::AddressIsZeroAddress(_) => { + ::SELECTOR + } + Self::CliffStartTimeAfterEndTime(_) => { + ::SELECTOR + } + Self::CliffStartTimeInvalid(_) => { + ::SELECTOR + } + Self::ContractIsNotTerminated(_) => { + ::SELECTOR + } + Self::ContractIsTerminated(_) => { + ::SELECTOR + } + Self::SafeCastOverflowedUintDowncast(_) => { + ::SELECTOR + } + Self::StartTimeAfterEndTime(_) => { + ::SELECTOR + } + Self::UnevenVestingPeriod(_) => { + ::SELECTOR + } + Self::VestingEventTokensIsZero(_) => { + ::SELECTOR + } + Self::VestingPeriodExceedsContractDuration(_) => { + ::SELECTOR + } + Self::VestingPeriodIsZeroSeconds(_) => { + ::SELECTOR + } + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn ContractIsTerminated( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SmartEscrowErrors::ContractIsTerminated) + } + ContractIsTerminated + }, + { + fn AccessControlEnforcedDefaultAdminDelay( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + SmartEscrowErrors::AccessControlEnforcedDefaultAdminDelay, + ) + } + AccessControlEnforcedDefaultAdminDelay + }, + { + fn VestingPeriodExceedsContractDuration( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SmartEscrowErrors::VestingPeriodExceedsContractDuration) + } + VestingPeriodExceedsContractDuration + }, + { + fn VestingEventTokensIsZero( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SmartEscrowErrors::VestingEventTokensIsZero) + } + VestingEventTokensIsZero + }, + { + fn AccessControlEnforcedDefaultAdminRules( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + SmartEscrowErrors::AccessControlEnforcedDefaultAdminRules, + ) + } + AccessControlEnforcedDefaultAdminRules + }, + { + fn StartTimeAfterEndTime( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SmartEscrowErrors::StartTimeAfterEndTime) + } + StartTimeAfterEndTime + }, + { + fn AccessControlBadConfirmation( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SmartEscrowErrors::AccessControlBadConfirmation) + } + AccessControlBadConfirmation + }, + { + fn SafeCastOverflowedUintDowncast( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SmartEscrowErrors::SafeCastOverflowedUintDowncast) + } + SafeCastOverflowedUintDowncast + }, + { + fn CliffStartTimeAfterEndTime( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SmartEscrowErrors::CliffStartTimeAfterEndTime) + } + CliffStartTimeAfterEndTime + }, + { + fn VestingPeriodIsZeroSeconds( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SmartEscrowErrors::VestingPeriodIsZeroSeconds) + } + VestingPeriodIsZeroSeconds + }, + { + fn AddressIsZeroAddress( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SmartEscrowErrors::AddressIsZeroAddress) + } + AddressIsZeroAddress + }, + { + fn CliffStartTimeInvalid( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SmartEscrowErrors::CliffStartTimeInvalid) + } + CliffStartTimeInvalid + }, + { + fn AccessControlInvalidDefaultAdmin( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SmartEscrowErrors::AccessControlInvalidDefaultAdmin) + } + AccessControlInvalidDefaultAdmin + }, + { + fn UnevenVestingPeriod( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SmartEscrowErrors::UnevenVestingPeriod) + } + UnevenVestingPeriod + }, + { + fn AccessControlUnauthorizedAccount( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SmartEscrowErrors::AccessControlUnauthorizedAccount) + } + AccessControlUnauthorizedAccount + }, + { + fn ContractIsNotTerminated( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SmartEscrowErrors::ContractIsNotTerminated) + } + ContractIsNotTerminated + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn ContractIsTerminated( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SmartEscrowErrors::ContractIsTerminated) + } + ContractIsTerminated + }, + { + fn AccessControlEnforcedDefaultAdminDelay( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + SmartEscrowErrors::AccessControlEnforcedDefaultAdminDelay, + ) + } + AccessControlEnforcedDefaultAdminDelay + }, + { + fn VestingPeriodExceedsContractDuration( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SmartEscrowErrors::VestingPeriodExceedsContractDuration) + } + VestingPeriodExceedsContractDuration + }, + { + fn VestingEventTokensIsZero( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SmartEscrowErrors::VestingEventTokensIsZero) + } + VestingEventTokensIsZero + }, + { + fn AccessControlEnforcedDefaultAdminRules( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + SmartEscrowErrors::AccessControlEnforcedDefaultAdminRules, + ) + } + AccessControlEnforcedDefaultAdminRules + }, + { + fn StartTimeAfterEndTime( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SmartEscrowErrors::StartTimeAfterEndTime) + } + StartTimeAfterEndTime + }, + { + fn AccessControlBadConfirmation( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SmartEscrowErrors::AccessControlBadConfirmation) + } + AccessControlBadConfirmation + }, + { + fn SafeCastOverflowedUintDowncast( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SmartEscrowErrors::SafeCastOverflowedUintDowncast) + } + SafeCastOverflowedUintDowncast + }, + { + fn CliffStartTimeAfterEndTime( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SmartEscrowErrors::CliffStartTimeAfterEndTime) + } + CliffStartTimeAfterEndTime + }, + { + fn VestingPeriodIsZeroSeconds( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SmartEscrowErrors::VestingPeriodIsZeroSeconds) + } + VestingPeriodIsZeroSeconds + }, + { + fn AddressIsZeroAddress( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SmartEscrowErrors::AddressIsZeroAddress) + } + AddressIsZeroAddress + }, + { + fn CliffStartTimeInvalid( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SmartEscrowErrors::CliffStartTimeInvalid) + } + CliffStartTimeInvalid + }, + { + fn AccessControlInvalidDefaultAdmin( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SmartEscrowErrors::AccessControlInvalidDefaultAdmin) + } + AccessControlInvalidDefaultAdmin + }, + { + fn UnevenVestingPeriod( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SmartEscrowErrors::UnevenVestingPeriod) + } + UnevenVestingPeriod + }, + { + fn AccessControlUnauthorizedAccount( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SmartEscrowErrors::AccessControlUnauthorizedAccount) + } + AccessControlUnauthorizedAccount + }, + { + fn ContractIsNotTerminated( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SmartEscrowErrors::ContractIsNotTerminated) + } + ContractIsNotTerminated + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::AccessControlBadConfirmation(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::AccessControlEnforcedDefaultAdminDelay(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::AccessControlEnforcedDefaultAdminRules(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::AccessControlInvalidDefaultAdmin(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::AccessControlUnauthorizedAccount(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::AddressIsZeroAddress(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::CliffStartTimeAfterEndTime(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::CliffStartTimeInvalid(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ContractIsNotTerminated(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ContractIsTerminated(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::SafeCastOverflowedUintDowncast(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::StartTimeAfterEndTime(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::UnevenVestingPeriod(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::VestingEventTokensIsZero(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::VestingPeriodExceedsContractDuration(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::VestingPeriodIsZeroSeconds(inner) => { + ::abi_encoded_size( + inner, + ) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::AccessControlBadConfirmation(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::AccessControlEnforcedDefaultAdminDelay(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::AccessControlEnforcedDefaultAdminRules(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::AccessControlInvalidDefaultAdmin(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::AccessControlUnauthorizedAccount(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::AddressIsZeroAddress(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::CliffStartTimeAfterEndTime(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::CliffStartTimeInvalid(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ContractIsNotTerminated(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ContractIsTerminated(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::SafeCastOverflowedUintDowncast(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::StartTimeAfterEndTime(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::UnevenVestingPeriod(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::VestingEventTokensIsZero(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::VestingPeriodExceedsContractDuration(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::VestingPeriodIsZeroSeconds(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + } + } + } + ///Container for all the [`SmartEscrow`](self) events. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum SmartEscrowEvents { + #[allow(missing_docs)] + BenefactorUpdated(BenefactorUpdated), + #[allow(missing_docs)] + BeneficiaryUpdated(BeneficiaryUpdated), + #[allow(missing_docs)] + ContractResumed(ContractResumed), + #[allow(missing_docs)] + ContractTerminated(ContractTerminated), + #[allow(missing_docs)] + DefaultAdminDelayChangeCanceled(DefaultAdminDelayChangeCanceled), + #[allow(missing_docs)] + DefaultAdminDelayChangeScheduled(DefaultAdminDelayChangeScheduled), + #[allow(missing_docs)] + DefaultAdminTransferCanceled(DefaultAdminTransferCanceled), + #[allow(missing_docs)] + DefaultAdminTransferScheduled(DefaultAdminTransferScheduled), + #[allow(missing_docs)] + RoleAdminChanged(RoleAdminChanged), + #[allow(missing_docs)] + RoleGranted(RoleGranted), + #[allow(missing_docs)] + RoleRevoked(RoleRevoked), + #[allow(missing_docs)] + TokensReleased(TokensReleased), + #[allow(missing_docs)] + TokensWithdrawn(TokensWithdrawn), + } + impl SmartEscrowEvents { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 32usize]] = &[ + [ + 43u8, 31u8, 162u8, 237u8, 175u8, 230u8, 247u8, 185u8, 233u8, 124u8, 26u8, + 158u8, 12u8, 54u8, 96u8, 230u8, 69u8, 190u8, 178u8, 220u8, 170u8, 45u8, + 69u8, 189u8, 191u8, 155u8, 234u8, 245u8, 71u8, 46u8, 30u8, 197u8, + ], + [ + 47u8, 135u8, 136u8, 17u8, 126u8, 126u8, 255u8, 29u8, 130u8, 233u8, 38u8, + 236u8, 121u8, 73u8, 1u8, 209u8, 124u8, 120u8, 2u8, 74u8, 80u8, 39u8, 9u8, + 64u8, 48u8, 69u8, 64u8, 167u8, 51u8, 101u8, 111u8, 13u8, + ], + [ + 51u8, 119u8, 220u8, 68u8, 36u8, 30u8, 119u8, 157u8, 208u8, 106u8, 250u8, + 181u8, 183u8, 136u8, 163u8, 92u8, 165u8, 243u8, 183u8, 120u8, 131u8, + 110u8, 41u8, 144u8, 189u8, 178u8, 106u8, 42u8, 75u8, 46u8, 94u8, 214u8, + ], + [ + 99u8, 82u8, 197u8, 56u8, 44u8, 74u8, 69u8, 120u8, 231u8, 18u8, 68u8, + 156u8, 166u8, 94u8, 131u8, 205u8, 179u8, 146u8, 208u8, 69u8, 223u8, + 207u8, 28u8, 173u8, 150u8, 21u8, 24u8, 157u8, 178u8, 218u8, 36u8, 75u8, + ], + [ + 109u8, 13u8, 144u8, 88u8, 88u8, 52u8, 152u8, 11u8, 208u8, 229u8, 96u8, + 51u8, 65u8, 255u8, 80u8, 176u8, 99u8, 73u8, 193u8, 30u8, 11u8, 249u8, + 36u8, 29u8, 3u8, 246u8, 208u8, 101u8, 241u8, 42u8, 38u8, 43u8, + ], + [ + 136u8, 134u8, 235u8, 252u8, 66u8, 89u8, 171u8, 219u8, 193u8, 102u8, 1u8, + 221u8, 143u8, 181u8, 103u8, 142u8, 84u8, 135u8, 143u8, 71u8, 179u8, + 195u8, 72u8, 54u8, 207u8, 197u8, 17u8, 84u8, 169u8, 96u8, 81u8, 9u8, + ], + [ + 171u8, 95u8, 109u8, 172u8, 249u8, 58u8, 38u8, 122u8, 147u8, 165u8, 51u8, + 222u8, 138u8, 86u8, 55u8, 13u8, 232u8, 52u8, 27u8, 189u8, 129u8, 2u8, + 1u8, 115u8, 7u8, 231u8, 190u8, 55u8, 92u8, 61u8, 218u8, 106u8, + ], + [ + 189u8, 121u8, 184u8, 111u8, 254u8, 10u8, 184u8, 232u8, 119u8, 97u8, 81u8, + 81u8, 66u8, 23u8, 205u8, 124u8, 172u8, 213u8, 44u8, 144u8, 159u8, 102u8, + 71u8, 92u8, 58u8, 244u8, 78u8, 18u8, 159u8, 11u8, 0u8, 255u8, + ], + [ + 199u8, 121u8, 136u8, 145u8, 134u8, 65u8, 135u8, 102u8, 90u8, 198u8, + 221u8, 17u8, 146u8, 134u8, 228u8, 78u8, 193u8, 63u8, 1u8, 69u8, 39u8, + 174u8, 235u8, 43u8, 142u8, 179u8, 253u8, 65u8, 61u8, 249u8, 49u8, 121u8, + ], + [ + 212u8, 135u8, 179u8, 95u8, 151u8, 147u8, 7u8, 229u8, 129u8, 230u8, 226u8, + 212u8, 182u8, 170u8, 135u8, 219u8, 221u8, 242u8, 241u8, 36u8, 206u8, + 240u8, 43u8, 80u8, 227u8, 121u8, 47u8, 76u8, 49u8, 199u8, 108u8, 122u8, + ], + [ + 231u8, 46u8, 175u8, 106u8, 221u8, 170u8, 25u8, 95u8, 60u8, 131u8, 9u8, + 80u8, 49u8, 221u8, 8u8, 243u8, 169u8, 104u8, 8u8, 220u8, 240u8, 71u8, + 186u8, 190u8, 209u8, 254u8, 78u8, 79u8, 105u8, 214u8, 198u8, 34u8, + ], + [ + 241u8, 3u8, 140u8, 24u8, 207u8, 132u8, 165u8, 110u8, 67u8, 47u8, 219u8, + 250u8, 247u8, 70u8, 146u8, 75u8, 126u8, 165u8, 17u8, 223u8, 224u8, 58u8, + 101u8, 6u8, 160u8, 206u8, 186u8, 72u8, 136u8, 120u8, 141u8, 155u8, + ], + [ + 246u8, 57u8, 31u8, 92u8, 50u8, 217u8, 198u8, 157u8, 42u8, 71u8, 234u8, + 103u8, 11u8, 68u8, 41u8, 116u8, 181u8, 57u8, 53u8, 209u8, 237u8, 199u8, + 253u8, 100u8, 235u8, 33u8, 224u8, 71u8, 168u8, 57u8, 23u8, 27u8, + ], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(DefaultAdminDelayChangeCanceled), + ::core::stringify!(RoleGranted), + ::core::stringify!(DefaultAdminTransferScheduled), + ::core::stringify!(TokensWithdrawn), + ::core::stringify!(ContractTerminated), + ::core::stringify!(DefaultAdminTransferCanceled), + ::core::stringify!(ContractResumed), + ::core::stringify!(RoleAdminChanged), + ::core::stringify!(TokensReleased), + ::core::stringify!(BenefactorUpdated), + ::core::stringify!(BeneficiaryUpdated), + ::core::stringify!(DefaultAdminDelayChangeScheduled), + ::core::stringify!(RoleRevoked), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolEventInterface for SmartEscrowEvents { + const NAME: &'static str = "SmartEscrowEvents"; + const COUNT: usize = 13usize; + fn decode_raw_log( + topics: &[alloy_sol_types::Word], + data: &[u8], + ) -> alloy_sol_types::Result { + match topics.first().copied() { + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::BenefactorUpdated) + } + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::BeneficiaryUpdated) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::ContractResumed) + } + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::ContractTerminated) + } + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::DefaultAdminDelayChangeCanceled) + } + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::DefaultAdminDelayChangeScheduled) + } + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::DefaultAdminTransferCanceled) + } + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::DefaultAdminTransferScheduled) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::RoleAdminChanged) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::RoleGranted) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::RoleRevoked) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::TokensReleased) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::TokensWithdrawn) + } + _ => { + alloy_sol_types::private::Err(alloy_sol_types::Error::InvalidLog { + name: ::NAME, + log: alloy_sol_types::private::Box::new( + alloy_sol_types::private::LogData::new_unchecked( + topics.to_vec(), + data.to_vec().into(), + ), + ), + }) + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for SmartEscrowEvents { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + match self { + Self::BenefactorUpdated(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::BeneficiaryUpdated(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::ContractResumed(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::ContractTerminated(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::DefaultAdminDelayChangeCanceled(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::DefaultAdminDelayChangeScheduled(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::DefaultAdminTransferCanceled(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::DefaultAdminTransferScheduled(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::RoleAdminChanged(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::RoleGranted(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::RoleRevoked(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::TokensReleased(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::TokensWithdrawn(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + } + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + match self { + Self::BenefactorUpdated(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::BeneficiaryUpdated(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::ContractResumed(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::ContractTerminated(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::DefaultAdminDelayChangeCanceled(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::DefaultAdminDelayChangeScheduled(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::DefaultAdminTransferCanceled(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::DefaultAdminTransferScheduled(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::RoleAdminChanged(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::RoleGranted(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::RoleRevoked(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::TokensReleased(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::TokensWithdrawn(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`SmartEscrow`](self) contract instance. + +See the [wrapper's documentation](`SmartEscrowInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> SmartEscrowInstance { + SmartEscrowInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + benefactor_: alloy::sol_types::private::Address, + beneficiary_: alloy::sol_types::private::Address, + benefactorOwner: alloy::sol_types::private::Address, + beneficiaryOwner: alloy::sol_types::private::Address, + escrowOwner: alloy::sol_types::private::Address, + start_: alloy::sol_types::private::primitives::aliases::U256, + cliffStart_: alloy::sol_types::private::primitives::aliases::U256, + end_: alloy::sol_types::private::primitives::aliases::U256, + vestingPeriodSeconds_: alloy::sol_types::private::primitives::aliases::U256, + initialTokens_: alloy::sol_types::private::primitives::aliases::U256, + vestingEventTokens_: alloy::sol_types::private::primitives::aliases::U256, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + SmartEscrowInstance::< + P, + N, + >::deploy( + __provider, + benefactor_, + beneficiary_, + benefactorOwner, + beneficiaryOwner, + escrowOwner, + start_, + cliffStart_, + end_, + vestingPeriodSeconds_, + initialTokens_, + vestingEventTokens_, + ) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + benefactor_: alloy::sol_types::private::Address, + beneficiary_: alloy::sol_types::private::Address, + benefactorOwner: alloy::sol_types::private::Address, + beneficiaryOwner: alloy::sol_types::private::Address, + escrowOwner: alloy::sol_types::private::Address, + start_: alloy::sol_types::private::primitives::aliases::U256, + cliffStart_: alloy::sol_types::private::primitives::aliases::U256, + end_: alloy::sol_types::private::primitives::aliases::U256, + vestingPeriodSeconds_: alloy::sol_types::private::primitives::aliases::U256, + initialTokens_: alloy::sol_types::private::primitives::aliases::U256, + vestingEventTokens_: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::RawCallBuilder { + SmartEscrowInstance::< + P, + N, + >::deploy_builder( + __provider, + benefactor_, + beneficiary_, + benefactorOwner, + beneficiaryOwner, + escrowOwner, + start_, + cliffStart_, + end_, + vestingPeriodSeconds_, + initialTokens_, + vestingEventTokens_, + ) + } + /**A [`SmartEscrow`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`SmartEscrow`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct SmartEscrowInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for SmartEscrowInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("SmartEscrowInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > SmartEscrowInstance { + /**Creates a new wrapper around an on-chain [`SmartEscrow`](self) contract instance. + +See the [wrapper's documentation](`SmartEscrowInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + benefactor_: alloy::sol_types::private::Address, + beneficiary_: alloy::sol_types::private::Address, + benefactorOwner: alloy::sol_types::private::Address, + beneficiaryOwner: alloy::sol_types::private::Address, + escrowOwner: alloy::sol_types::private::Address, + start_: alloy::sol_types::private::primitives::aliases::U256, + cliffStart_: alloy::sol_types::private::primitives::aliases::U256, + end_: alloy::sol_types::private::primitives::aliases::U256, + vestingPeriodSeconds_: alloy::sol_types::private::primitives::aliases::U256, + initialTokens_: alloy::sol_types::private::primitives::aliases::U256, + vestingEventTokens_: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder( + __provider, + benefactor_, + beneficiary_, + benefactorOwner, + beneficiaryOwner, + escrowOwner, + start_, + cliffStart_, + end_, + vestingPeriodSeconds_, + initialTokens_, + vestingEventTokens_, + ); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder( + __provider: P, + benefactor_: alloy::sol_types::private::Address, + beneficiary_: alloy::sol_types::private::Address, + benefactorOwner: alloy::sol_types::private::Address, + beneficiaryOwner: alloy::sol_types::private::Address, + escrowOwner: alloy::sol_types::private::Address, + start_: alloy::sol_types::private::primitives::aliases::U256, + cliffStart_: alloy::sol_types::private::primitives::aliases::U256, + end_: alloy::sol_types::private::primitives::aliases::U256, + vestingPeriodSeconds_: alloy::sol_types::private::primitives::aliases::U256, + initialTokens_: alloy::sol_types::private::primitives::aliases::U256, + vestingEventTokens_: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + [ + &BYTECODE[..], + &alloy_sol_types::SolConstructor::abi_encode( + &constructorCall { + benefactor_, + beneficiary_, + benefactorOwner, + beneficiaryOwner, + escrowOwner, + start_, + cliffStart_, + end_, + vestingPeriodSeconds_, + initialTokens_, + vestingEventTokens_, + }, + )[..], + ] + .concat() + .into(), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl SmartEscrowInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> SmartEscrowInstance { + SmartEscrowInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > SmartEscrowInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`BENEFACTOR_OWNER_ROLE`] function. + pub fn BENEFACTOR_OWNER_ROLE( + &self, + ) -> alloy_contract::SolCallBuilder<&P, BENEFACTOR_OWNER_ROLECall, N> { + self.call_builder(&BENEFACTOR_OWNER_ROLECall) + } + ///Creates a new call builder for the [`BENEFICIARY_OWNER_ROLE`] function. + pub fn BENEFICIARY_OWNER_ROLE( + &self, + ) -> alloy_contract::SolCallBuilder<&P, BENEFICIARY_OWNER_ROLECall, N> { + self.call_builder(&BENEFICIARY_OWNER_ROLECall) + } + ///Creates a new call builder for the [`DEFAULT_ADMIN_ROLE`] function. + pub fn DEFAULT_ADMIN_ROLE( + &self, + ) -> alloy_contract::SolCallBuilder<&P, DEFAULT_ADMIN_ROLECall, N> { + self.call_builder(&DEFAULT_ADMIN_ROLECall) + } + ///Creates a new call builder for the [`OP_TOKEN`] function. + pub fn OP_TOKEN(&self) -> alloy_contract::SolCallBuilder<&P, OP_TOKENCall, N> { + self.call_builder(&OP_TOKENCall) + } + ///Creates a new call builder for the [`TERMINATOR_ROLE`] function. + pub fn TERMINATOR_ROLE( + &self, + ) -> alloy_contract::SolCallBuilder<&P, TERMINATOR_ROLECall, N> { + self.call_builder(&TERMINATOR_ROLECall) + } + ///Creates a new call builder for the [`acceptDefaultAdminTransfer`] function. + pub fn acceptDefaultAdminTransfer( + &self, + ) -> alloy_contract::SolCallBuilder<&P, acceptDefaultAdminTransferCall, N> { + self.call_builder(&acceptDefaultAdminTransferCall) + } + ///Creates a new call builder for the [`beginDefaultAdminTransfer`] function. + pub fn beginDefaultAdminTransfer( + &self, + newAdmin: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, beginDefaultAdminTransferCall, N> { + self.call_builder( + &beginDefaultAdminTransferCall { + newAdmin, + }, + ) + } + ///Creates a new call builder for the [`benefactor`] function. + pub fn benefactor( + &self, + ) -> alloy_contract::SolCallBuilder<&P, benefactorCall, N> { + self.call_builder(&benefactorCall) + } + ///Creates a new call builder for the [`beneficiary`] function. + pub fn beneficiary( + &self, + ) -> alloy_contract::SolCallBuilder<&P, beneficiaryCall, N> { + self.call_builder(&beneficiaryCall) + } + ///Creates a new call builder for the [`cancelDefaultAdminTransfer`] function. + pub fn cancelDefaultAdminTransfer( + &self, + ) -> alloy_contract::SolCallBuilder<&P, cancelDefaultAdminTransferCall, N> { + self.call_builder(&cancelDefaultAdminTransferCall) + } + ///Creates a new call builder for the [`changeDefaultAdminDelay`] function. + pub fn changeDefaultAdminDelay( + &self, + newDelay: alloy::sol_types::private::primitives::aliases::U48, + ) -> alloy_contract::SolCallBuilder<&P, changeDefaultAdminDelayCall, N> { + self.call_builder( + &changeDefaultAdminDelayCall { + newDelay, + }, + ) + } + ///Creates a new call builder for the [`cliffStart`] function. + pub fn cliffStart( + &self, + ) -> alloy_contract::SolCallBuilder<&P, cliffStartCall, N> { + self.call_builder(&cliffStartCall) + } + ///Creates a new call builder for the [`contractTerminated`] function. + pub fn contractTerminated( + &self, + ) -> alloy_contract::SolCallBuilder<&P, contractTerminatedCall, N> { + self.call_builder(&contractTerminatedCall) + } + ///Creates a new call builder for the [`defaultAdmin`] function. + pub fn defaultAdmin( + &self, + ) -> alloy_contract::SolCallBuilder<&P, defaultAdminCall, N> { + self.call_builder(&defaultAdminCall) + } + ///Creates a new call builder for the [`defaultAdminDelay`] function. + pub fn defaultAdminDelay( + &self, + ) -> alloy_contract::SolCallBuilder<&P, defaultAdminDelayCall, N> { + self.call_builder(&defaultAdminDelayCall) + } + ///Creates a new call builder for the [`defaultAdminDelayIncreaseWait`] function. + pub fn defaultAdminDelayIncreaseWait( + &self, + ) -> alloy_contract::SolCallBuilder<&P, defaultAdminDelayIncreaseWaitCall, N> { + self.call_builder(&defaultAdminDelayIncreaseWaitCall) + } + ///Creates a new call builder for the [`end`] function. + pub fn end(&self) -> alloy_contract::SolCallBuilder<&P, endCall, N> { + self.call_builder(&endCall) + } + ///Creates a new call builder for the [`getRoleAdmin`] function. + pub fn getRoleAdmin( + &self, + role: alloy::sol_types::private::FixedBytes<32>, + ) -> alloy_contract::SolCallBuilder<&P, getRoleAdminCall, N> { + self.call_builder(&getRoleAdminCall { role }) + } + ///Creates a new call builder for the [`grantRole`] function. + pub fn grantRole( + &self, + role: alloy::sol_types::private::FixedBytes<32>, + account: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, grantRoleCall, N> { + self.call_builder(&grantRoleCall { role, account }) + } + ///Creates a new call builder for the [`hasRole`] function. + pub fn hasRole( + &self, + role: alloy::sol_types::private::FixedBytes<32>, + account: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, hasRoleCall, N> { + self.call_builder(&hasRoleCall { role, account }) + } + ///Creates a new call builder for the [`initialTokens`] function. + pub fn initialTokens( + &self, + ) -> alloy_contract::SolCallBuilder<&P, initialTokensCall, N> { + self.call_builder(&initialTokensCall) + } + ///Creates a new call builder for the [`owner`] function. + pub fn owner(&self) -> alloy_contract::SolCallBuilder<&P, ownerCall, N> { + self.call_builder(&ownerCall) + } + ///Creates a new call builder for the [`pendingDefaultAdmin`] function. + pub fn pendingDefaultAdmin( + &self, + ) -> alloy_contract::SolCallBuilder<&P, pendingDefaultAdminCall, N> { + self.call_builder(&pendingDefaultAdminCall) + } + ///Creates a new call builder for the [`pendingDefaultAdminDelay`] function. + pub fn pendingDefaultAdminDelay( + &self, + ) -> alloy_contract::SolCallBuilder<&P, pendingDefaultAdminDelayCall, N> { + self.call_builder(&pendingDefaultAdminDelayCall) + } + ///Creates a new call builder for the [`releasable`] function. + pub fn releasable( + &self, + ) -> alloy_contract::SolCallBuilder<&P, releasableCall, N> { + self.call_builder(&releasableCall) + } + ///Creates a new call builder for the [`release`] function. + pub fn release(&self) -> alloy_contract::SolCallBuilder<&P, releaseCall, N> { + self.call_builder(&releaseCall) + } + ///Creates a new call builder for the [`released`] function. + pub fn released(&self) -> alloy_contract::SolCallBuilder<&P, releasedCall, N> { + self.call_builder(&releasedCall) + } + ///Creates a new call builder for the [`renounceRole`] function. + pub fn renounceRole( + &self, + role: alloy::sol_types::private::FixedBytes<32>, + account: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, renounceRoleCall, N> { + self.call_builder(&renounceRoleCall { role, account }) + } + ///Creates a new call builder for the [`resume`] function. + pub fn resume(&self) -> alloy_contract::SolCallBuilder<&P, resumeCall, N> { + self.call_builder(&resumeCall) + } + ///Creates a new call builder for the [`revokeRole`] function. + pub fn revokeRole( + &self, + role: alloy::sol_types::private::FixedBytes<32>, + account: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, revokeRoleCall, N> { + self.call_builder(&revokeRoleCall { role, account }) + } + ///Creates a new call builder for the [`rollbackDefaultAdminDelay`] function. + pub fn rollbackDefaultAdminDelay( + &self, + ) -> alloy_contract::SolCallBuilder<&P, rollbackDefaultAdminDelayCall, N> { + self.call_builder(&rollbackDefaultAdminDelayCall) + } + ///Creates a new call builder for the [`start`] function. + pub fn start(&self) -> alloy_contract::SolCallBuilder<&P, startCall, N> { + self.call_builder(&startCall) + } + ///Creates a new call builder for the [`supportsInterface`] function. + pub fn supportsInterface( + &self, + interfaceId: alloy::sol_types::private::FixedBytes<4>, + ) -> alloy_contract::SolCallBuilder<&P, supportsInterfaceCall, N> { + self.call_builder( + &supportsInterfaceCall { + interfaceId, + }, + ) + } + ///Creates a new call builder for the [`terminate`] function. + pub fn terminate(&self) -> alloy_contract::SolCallBuilder<&P, terminateCall, N> { + self.call_builder(&terminateCall) + } + ///Creates a new call builder for the [`updateBenefactor`] function. + pub fn updateBenefactor( + &self, + newBenefactor: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, updateBenefactorCall, N> { + self.call_builder( + &updateBenefactorCall { + newBenefactor, + }, + ) + } + ///Creates a new call builder for the [`updateBeneficiary`] function. + pub fn updateBeneficiary( + &self, + newBeneficiary: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, updateBeneficiaryCall, N> { + self.call_builder( + &updateBeneficiaryCall { + newBeneficiary, + }, + ) + } + ///Creates a new call builder for the [`vestedAmount`] function. + pub fn vestedAmount( + &self, + timestamp: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, vestedAmountCall, N> { + self.call_builder(&vestedAmountCall { timestamp }) + } + ///Creates a new call builder for the [`vestingEventTokens`] function. + pub fn vestingEventTokens( + &self, + ) -> alloy_contract::SolCallBuilder<&P, vestingEventTokensCall, N> { + self.call_builder(&vestingEventTokensCall) + } + ///Creates a new call builder for the [`vestingPeriod`] function. + pub fn vestingPeriod( + &self, + ) -> alloy_contract::SolCallBuilder<&P, vestingPeriodCall, N> { + self.call_builder(&vestingPeriodCall) + } + ///Creates a new call builder for the [`withdrawUnvestedTokens`] function. + pub fn withdrawUnvestedTokens( + &self, + ) -> alloy_contract::SolCallBuilder<&P, withdrawUnvestedTokensCall, N> { + self.call_builder(&withdrawUnvestedTokensCall) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > SmartEscrowInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + ///Creates a new event filter for the [`BenefactorUpdated`] event. + pub fn BenefactorUpdated_filter( + &self, + ) -> alloy_contract::Event<&P, BenefactorUpdated, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`BeneficiaryUpdated`] event. + pub fn BeneficiaryUpdated_filter( + &self, + ) -> alloy_contract::Event<&P, BeneficiaryUpdated, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`ContractResumed`] event. + pub fn ContractResumed_filter( + &self, + ) -> alloy_contract::Event<&P, ContractResumed, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`ContractTerminated`] event. + pub fn ContractTerminated_filter( + &self, + ) -> alloy_contract::Event<&P, ContractTerminated, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`DefaultAdminDelayChangeCanceled`] event. + pub fn DefaultAdminDelayChangeCanceled_filter( + &self, + ) -> alloy_contract::Event<&P, DefaultAdminDelayChangeCanceled, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`DefaultAdminDelayChangeScheduled`] event. + pub fn DefaultAdminDelayChangeScheduled_filter( + &self, + ) -> alloy_contract::Event<&P, DefaultAdminDelayChangeScheduled, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`DefaultAdminTransferCanceled`] event. + pub fn DefaultAdminTransferCanceled_filter( + &self, + ) -> alloy_contract::Event<&P, DefaultAdminTransferCanceled, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`DefaultAdminTransferScheduled`] event. + pub fn DefaultAdminTransferScheduled_filter( + &self, + ) -> alloy_contract::Event<&P, DefaultAdminTransferScheduled, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`RoleAdminChanged`] event. + pub fn RoleAdminChanged_filter( + &self, + ) -> alloy_contract::Event<&P, RoleAdminChanged, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`RoleGranted`] event. + pub fn RoleGranted_filter(&self) -> alloy_contract::Event<&P, RoleGranted, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`RoleRevoked`] event. + pub fn RoleRevoked_filter(&self) -> alloy_contract::Event<&P, RoleRevoked, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`TokensReleased`] event. + pub fn TokensReleased_filter( + &self, + ) -> alloy_contract::Event<&P, TokensReleased, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`TokensWithdrawn`] event. + pub fn TokensWithdrawn_filter( + &self, + ) -> alloy_contract::Event<&P, TokensWithdrawn, N> { + self.event_filter::() + } + } +} diff --git a/bindings/rust/src/standard_bridge.rs b/bindings/rust/src/standard_bridge.rs new file mode 100644 index 000000000..730cc9964 --- /dev/null +++ b/bindings/rust/src/standard_bridge.rs @@ -0,0 +1,4286 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface StandardBridge { + event ERC20BridgeFinalized(address indexed localToken, address indexed remoteToken, address indexed from, address to, uint256 amount, bytes extraData); + event ERC20BridgeInitiated(address indexed localToken, address indexed remoteToken, address indexed from, address to, uint256 amount, bytes extraData); + event ETHBridgeFinalized(address indexed from, address indexed to, uint256 amount, bytes extraData); + event ETHBridgeInitiated(address indexed from, address indexed to, uint256 amount, bytes extraData); + event Initialized(uint8 version); + + receive() external payable; + + function MESSENGER() external view returns (address); + function OTHER_BRIDGE() external view returns (address); + function bridgeERC20(address _localToken, address _remoteToken, uint256 _amount, uint32 _minGasLimit, bytes memory _extraData) external; + function bridgeERC20To(address _localToken, address _remoteToken, address _to, uint256 _amount, uint32 _minGasLimit, bytes memory _extraData) external; + function bridgeETH(uint32 _minGasLimit, bytes memory _extraData) external payable; + function bridgeETHTo(address _to, uint32 _minGasLimit, bytes memory _extraData) external payable; + function deposits(address, address) external view returns (uint256); + function finalizeBridgeERC20(address _localToken, address _remoteToken, address _from, address _to, uint256 _amount, bytes memory _extraData) external; + function finalizeBridgeETH(address _from, address _to, uint256 _amount, bytes memory _extraData) external payable; + function messenger() external view returns (address); + function otherBridge() external view returns (address); + function paused() external view returns (bool); +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "receive", + "stateMutability": "payable" + }, + { + "type": "function", + "name": "MESSENGER", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract ICrossDomainMessenger" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "OTHER_BRIDGE", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract StandardBridge" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "bridgeERC20", + "inputs": [ + { + "name": "_localToken", + "type": "address", + "internalType": "address" + }, + { + "name": "_remoteToken", + "type": "address", + "internalType": "address" + }, + { + "name": "_amount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_minGasLimit", + "type": "uint32", + "internalType": "uint32" + }, + { + "name": "_extraData", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "bridgeERC20To", + "inputs": [ + { + "name": "_localToken", + "type": "address", + "internalType": "address" + }, + { + "name": "_remoteToken", + "type": "address", + "internalType": "address" + }, + { + "name": "_to", + "type": "address", + "internalType": "address" + }, + { + "name": "_amount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_minGasLimit", + "type": "uint32", + "internalType": "uint32" + }, + { + "name": "_extraData", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "bridgeETH", + "inputs": [ + { + "name": "_minGasLimit", + "type": "uint32", + "internalType": "uint32" + }, + { + "name": "_extraData", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "bridgeETHTo", + "inputs": [ + { + "name": "_to", + "type": "address", + "internalType": "address" + }, + { + "name": "_minGasLimit", + "type": "uint32", + "internalType": "uint32" + }, + { + "name": "_extraData", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "deposits", + "inputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + }, + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "finalizeBridgeERC20", + "inputs": [ + { + "name": "_localToken", + "type": "address", + "internalType": "address" + }, + { + "name": "_remoteToken", + "type": "address", + "internalType": "address" + }, + { + "name": "_from", + "type": "address", + "internalType": "address" + }, + { + "name": "_to", + "type": "address", + "internalType": "address" + }, + { + "name": "_amount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_extraData", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "finalizeBridgeETH", + "inputs": [ + { + "name": "_from", + "type": "address", + "internalType": "address" + }, + { + "name": "_to", + "type": "address", + "internalType": "address" + }, + { + "name": "_amount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_extraData", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "messenger", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract ICrossDomainMessenger" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "otherBridge", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract StandardBridge" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "paused", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "event", + "name": "ERC20BridgeFinalized", + "inputs": [ + { + "name": "localToken", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "remoteToken", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "from", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "to", + "type": "address", + "indexed": false, + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + }, + { + "name": "extraData", + "type": "bytes", + "indexed": false, + "internalType": "bytes" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "ERC20BridgeInitiated", + "inputs": [ + { + "name": "localToken", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "remoteToken", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "from", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "to", + "type": "address", + "indexed": false, + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + }, + { + "name": "extraData", + "type": "bytes", + "indexed": false, + "internalType": "bytes" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "ETHBridgeFinalized", + "inputs": [ + { + "name": "from", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "to", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + }, + { + "name": "extraData", + "type": "bytes", + "indexed": false, + "internalType": "bytes" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "ETHBridgeInitiated", + "inputs": [ + { + "name": "from", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "to", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + }, + { + "name": "extraData", + "type": "bytes", + "indexed": false, + "internalType": "bytes" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "Initialized", + "inputs": [ + { + "name": "version", + "type": "uint8", + "indexed": false, + "internalType": "uint8" + } + ], + "anonymous": false + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod StandardBridge { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"", + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `ERC20BridgeFinalized(address,address,address,address,uint256,bytes)` and selector `0xd59c65b35445225835c83f50b6ede06a7be047d22e357073e250d9af537518cd`. +```solidity +event ERC20BridgeFinalized(address indexed localToken, address indexed remoteToken, address indexed from, address to, uint256 amount, bytes extraData); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct ERC20BridgeFinalized { + #[allow(missing_docs)] + pub localToken: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub remoteToken: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub from: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub amount: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub extraData: alloy::sol_types::private::Bytes, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for ERC20BridgeFinalized { + type DataTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Bytes, + ); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "ERC20BridgeFinalized(address,address,address,address,uint256,bytes)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 213u8, 156u8, 101u8, 179u8, 84u8, 69u8, 34u8, 88u8, 53u8, 200u8, 63u8, + 80u8, 182u8, 237u8, 224u8, 106u8, 123u8, 224u8, 71u8, 210u8, 46u8, 53u8, + 112u8, 115u8, 226u8, 80u8, 217u8, 175u8, 83u8, 117u8, 24u8, 205u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + localToken: topics.1, + remoteToken: topics.2, + from: topics.3, + to: data.0, + amount: data.1, + extraData: data.2, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + ::tokenize( + &self.to, + ), + as alloy_sol_types::SolType>::tokenize(&self.amount), + ::tokenize( + &self.extraData, + ), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + ( + Self::SIGNATURE_HASH.into(), + self.localToken.clone(), + self.remoteToken.clone(), + self.from.clone(), + ) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.localToken, + ); + out[2usize] = ::encode_topic( + &self.remoteToken, + ); + out[3usize] = ::encode_topic( + &self.from, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for ERC20BridgeFinalized { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&ERC20BridgeFinalized> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &ERC20BridgeFinalized) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `ERC20BridgeInitiated(address,address,address,address,uint256,bytes)` and selector `0x7ff126db8024424bbfd9826e8ab82ff59136289ea440b04b39a0df1b03b9cabf`. +```solidity +event ERC20BridgeInitiated(address indexed localToken, address indexed remoteToken, address indexed from, address to, uint256 amount, bytes extraData); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct ERC20BridgeInitiated { + #[allow(missing_docs)] + pub localToken: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub remoteToken: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub from: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub amount: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub extraData: alloy::sol_types::private::Bytes, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for ERC20BridgeInitiated { + type DataTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Bytes, + ); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "ERC20BridgeInitiated(address,address,address,address,uint256,bytes)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 127u8, 241u8, 38u8, 219u8, 128u8, 36u8, 66u8, 75u8, 191u8, 217u8, 130u8, + 110u8, 138u8, 184u8, 47u8, 245u8, 145u8, 54u8, 40u8, 158u8, 164u8, 64u8, + 176u8, 75u8, 57u8, 160u8, 223u8, 27u8, 3u8, 185u8, 202u8, 191u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + localToken: topics.1, + remoteToken: topics.2, + from: topics.3, + to: data.0, + amount: data.1, + extraData: data.2, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + ::tokenize( + &self.to, + ), + as alloy_sol_types::SolType>::tokenize(&self.amount), + ::tokenize( + &self.extraData, + ), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + ( + Self::SIGNATURE_HASH.into(), + self.localToken.clone(), + self.remoteToken.clone(), + self.from.clone(), + ) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.localToken, + ); + out[2usize] = ::encode_topic( + &self.remoteToken, + ); + out[3usize] = ::encode_topic( + &self.from, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for ERC20BridgeInitiated { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&ERC20BridgeInitiated> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &ERC20BridgeInitiated) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `ETHBridgeFinalized(address,address,uint256,bytes)` and selector `0x31b2166ff604fc5672ea5df08a78081d2bc6d746cadce880747f3643d819e83d`. +```solidity +event ETHBridgeFinalized(address indexed from, address indexed to, uint256 amount, bytes extraData); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct ETHBridgeFinalized { + #[allow(missing_docs)] + pub from: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub amount: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub extraData: alloy::sol_types::private::Bytes, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for ETHBridgeFinalized { + type DataTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Bytes, + ); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "ETHBridgeFinalized(address,address,uint256,bytes)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 49u8, 178u8, 22u8, 111u8, 246u8, 4u8, 252u8, 86u8, 114u8, 234u8, 93u8, + 240u8, 138u8, 120u8, 8u8, 29u8, 43u8, 198u8, 215u8, 70u8, 202u8, 220u8, + 232u8, 128u8, 116u8, 127u8, 54u8, 67u8, 216u8, 25u8, 232u8, 61u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + from: topics.1, + to: topics.2, + amount: data.0, + extraData: data.1, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.amount), + ::tokenize( + &self.extraData, + ), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.from.clone(), self.to.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.from, + ); + out[2usize] = ::encode_topic( + &self.to, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for ETHBridgeFinalized { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<ÐBridgeFinalized> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: ÐBridgeFinalized) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `ETHBridgeInitiated(address,address,uint256,bytes)` and selector `0x2849b43074093a05396b6f2a937dee8565b15a48a7b3d4bffb732a5017380af5`. +```solidity +event ETHBridgeInitiated(address indexed from, address indexed to, uint256 amount, bytes extraData); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct ETHBridgeInitiated { + #[allow(missing_docs)] + pub from: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub amount: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub extraData: alloy::sol_types::private::Bytes, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for ETHBridgeInitiated { + type DataTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Bytes, + ); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "ETHBridgeInitiated(address,address,uint256,bytes)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 40u8, 73u8, 180u8, 48u8, 116u8, 9u8, 58u8, 5u8, 57u8, 107u8, 111u8, 42u8, + 147u8, 125u8, 238u8, 133u8, 101u8, 177u8, 90u8, 72u8, 167u8, 179u8, + 212u8, 191u8, 251u8, 115u8, 42u8, 80u8, 23u8, 56u8, 10u8, 245u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + from: topics.1, + to: topics.2, + amount: data.0, + extraData: data.1, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.amount), + ::tokenize( + &self.extraData, + ), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.from.clone(), self.to.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.from, + ); + out[2usize] = ::encode_topic( + &self.to, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for ETHBridgeInitiated { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<ÐBridgeInitiated> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: ÐBridgeInitiated) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `Initialized(uint8)` and selector `0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498`. +```solidity +event Initialized(uint8 version); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct Initialized { + #[allow(missing_docs)] + pub version: u8, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for Initialized { + type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<8>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,); + const SIGNATURE: &'static str = "Initialized(uint8)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 127u8, 38u8, 184u8, 63u8, 249u8, 110u8, 31u8, 43u8, 106u8, 104u8, 47u8, + 19u8, 56u8, 82u8, 246u8, 121u8, 138u8, 9u8, 196u8, 101u8, 218u8, 149u8, + 146u8, 20u8, 96u8, 206u8, 251u8, 56u8, 71u8, 64u8, 36u8, 152u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { version: data.0 } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.version), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(),) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for Initialized { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&Initialized> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &Initialized) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `MESSENGER()` and selector `0x927ede2d`. +```solidity +function MESSENGER() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct MESSENGERCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`MESSENGER()`](MESSENGERCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct MESSENGERReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: MESSENGERCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for MESSENGERCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: MESSENGERReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for MESSENGERReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for MESSENGERCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "MESSENGER()"; + const SELECTOR: [u8; 4] = [146u8, 126u8, 222u8, 45u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: MESSENGERReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: MESSENGERReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `OTHER_BRIDGE()` and selector `0x7f46ddb2`. +```solidity +function OTHER_BRIDGE() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct OTHER_BRIDGECall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`OTHER_BRIDGE()`](OTHER_BRIDGECall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct OTHER_BRIDGEReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: OTHER_BRIDGECall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for OTHER_BRIDGECall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: OTHER_BRIDGEReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for OTHER_BRIDGEReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for OTHER_BRIDGECall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "OTHER_BRIDGE()"; + const SELECTOR: [u8; 4] = [127u8, 70u8, 221u8, 178u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: OTHER_BRIDGEReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: OTHER_BRIDGEReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `bridgeERC20(address,address,uint256,uint32,bytes)` and selector `0x87087623`. +```solidity +function bridgeERC20(address _localToken, address _remoteToken, uint256 _amount, uint32 _minGasLimit, bytes memory _extraData) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct bridgeERC20Call { + #[allow(missing_docs)] + pub _localToken: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _remoteToken: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _amount: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _minGasLimit: u32, + #[allow(missing_docs)] + pub _extraData: alloy::sol_types::private::Bytes, + } + ///Container type for the return parameters of the [`bridgeERC20(address,address,uint256,uint32,bytes)`](bridgeERC20Call) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct bridgeERC20Return {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<32>, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + u32, + alloy::sol_types::private::Bytes, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: bridgeERC20Call) -> Self { + ( + value._localToken, + value._remoteToken, + value._amount, + value._minGasLimit, + value._extraData, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for bridgeERC20Call { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _localToken: tuple.0, + _remoteToken: tuple.1, + _amount: tuple.2, + _minGasLimit: tuple.3, + _extraData: tuple.4, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: bridgeERC20Return) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for bridgeERC20Return { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl bridgeERC20Return { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for bridgeERC20Call { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<32>, + alloy::sol_types::sol_data::Bytes, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bridgeERC20Return; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "bridgeERC20(address,address,uint256,uint32,bytes)"; + const SELECTOR: [u8; 4] = [135u8, 8u8, 118u8, 35u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._localToken, + ), + ::tokenize( + &self._remoteToken, + ), + as alloy_sol_types::SolType>::tokenize(&self._amount), + as alloy_sol_types::SolType>::tokenize(&self._minGasLimit), + ::tokenize( + &self._extraData, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + bridgeERC20Return::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `bridgeERC20To(address,address,address,uint256,uint32,bytes)` and selector `0x540abf73`. +```solidity +function bridgeERC20To(address _localToken, address _remoteToken, address _to, uint256 _amount, uint32 _minGasLimit, bytes memory _extraData) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct bridgeERC20ToCall { + #[allow(missing_docs)] + pub _localToken: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _remoteToken: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _amount: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _minGasLimit: u32, + #[allow(missing_docs)] + pub _extraData: alloy::sol_types::private::Bytes, + } + ///Container type for the return parameters of the [`bridgeERC20To(address,address,address,uint256,uint32,bytes)`](bridgeERC20ToCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct bridgeERC20ToReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<32>, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + u32, + alloy::sol_types::private::Bytes, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: bridgeERC20ToCall) -> Self { + ( + value._localToken, + value._remoteToken, + value._to, + value._amount, + value._minGasLimit, + value._extraData, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for bridgeERC20ToCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _localToken: tuple.0, + _remoteToken: tuple.1, + _to: tuple.2, + _amount: tuple.3, + _minGasLimit: tuple.4, + _extraData: tuple.5, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: bridgeERC20ToReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for bridgeERC20ToReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl bridgeERC20ToReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for bridgeERC20ToCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<32>, + alloy::sol_types::sol_data::Bytes, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bridgeERC20ToReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "bridgeERC20To(address,address,address,uint256,uint32,bytes)"; + const SELECTOR: [u8; 4] = [84u8, 10u8, 191u8, 115u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._localToken, + ), + ::tokenize( + &self._remoteToken, + ), + ::tokenize( + &self._to, + ), + as alloy_sol_types::SolType>::tokenize(&self._amount), + as alloy_sol_types::SolType>::tokenize(&self._minGasLimit), + ::tokenize( + &self._extraData, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + bridgeERC20ToReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `bridgeETH(uint32,bytes)` and selector `0x09fc8843`. +```solidity +function bridgeETH(uint32 _minGasLimit, bytes memory _extraData) external payable; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct bridgeETHCall { + #[allow(missing_docs)] + pub _minGasLimit: u32, + #[allow(missing_docs)] + pub _extraData: alloy::sol_types::private::Bytes, + } + ///Container type for the return parameters of the [`bridgeETH(uint32,bytes)`](bridgeETHCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct bridgeETHReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Uint<32>, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u32, alloy::sol_types::private::Bytes); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: bridgeETHCall) -> Self { + (value._minGasLimit, value._extraData) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for bridgeETHCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _minGasLimit: tuple.0, + _extraData: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: bridgeETHReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for bridgeETHReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl bridgeETHReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for bridgeETHCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Uint<32>, + alloy::sol_types::sol_data::Bytes, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bridgeETHReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "bridgeETH(uint32,bytes)"; + const SELECTOR: [u8; 4] = [9u8, 252u8, 136u8, 67u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._minGasLimit), + ::tokenize( + &self._extraData, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + bridgeETHReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `bridgeETHTo(address,uint32,bytes)` and selector `0xe11013dd`. +```solidity +function bridgeETHTo(address _to, uint32 _minGasLimit, bytes memory _extraData) external payable; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct bridgeETHToCall { + #[allow(missing_docs)] + pub _to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _minGasLimit: u32, + #[allow(missing_docs)] + pub _extraData: alloy::sol_types::private::Bytes, + } + ///Container type for the return parameters of the [`bridgeETHTo(address,uint32,bytes)`](bridgeETHToCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct bridgeETHToReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<32>, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + u32, + alloy::sol_types::private::Bytes, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: bridgeETHToCall) -> Self { + (value._to, value._minGasLimit, value._extraData) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for bridgeETHToCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _to: tuple.0, + _minGasLimit: tuple.1, + _extraData: tuple.2, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: bridgeETHToReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for bridgeETHToReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl bridgeETHToReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for bridgeETHToCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<32>, + alloy::sol_types::sol_data::Bytes, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bridgeETHToReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "bridgeETHTo(address,uint32,bytes)"; + const SELECTOR: [u8; 4] = [225u8, 16u8, 19u8, 221u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._to, + ), + as alloy_sol_types::SolType>::tokenize(&self._minGasLimit), + ::tokenize( + &self._extraData, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + bridgeETHToReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `deposits(address,address)` and selector `0x8f601f66`. +```solidity +function deposits(address, address) external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct depositsCall { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _1: alloy::sol_types::private::Address, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`deposits(address,address)`](depositsCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct depositsReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: depositsCall) -> Self { + (value._0, value._1) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for depositsCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0, _1: tuple.1 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: depositsReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for depositsReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for depositsCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "deposits(address,address)"; + const SELECTOR: [u8; 4] = [143u8, 96u8, 31u8, 102u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._0, + ), + ::tokenize( + &self._1, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: depositsReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: depositsReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `finalizeBridgeERC20(address,address,address,address,uint256,bytes)` and selector `0x0166a07a`. +```solidity +function finalizeBridgeERC20(address _localToken, address _remoteToken, address _from, address _to, uint256 _amount, bytes memory _extraData) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct finalizeBridgeERC20Call { + #[allow(missing_docs)] + pub _localToken: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _remoteToken: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _from: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _amount: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _extraData: alloy::sol_types::private::Bytes, + } + ///Container type for the return parameters of the [`finalizeBridgeERC20(address,address,address,address,uint256,bytes)`](finalizeBridgeERC20Call) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct finalizeBridgeERC20Return {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::Bytes, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: finalizeBridgeERC20Call) -> Self { + ( + value._localToken, + value._remoteToken, + value._from, + value._to, + value._amount, + value._extraData, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for finalizeBridgeERC20Call { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _localToken: tuple.0, + _remoteToken: tuple.1, + _from: tuple.2, + _to: tuple.3, + _amount: tuple.4, + _extraData: tuple.5, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: finalizeBridgeERC20Return) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for finalizeBridgeERC20Return { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl finalizeBridgeERC20Return { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for finalizeBridgeERC20Call { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Bytes, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = finalizeBridgeERC20Return; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "finalizeBridgeERC20(address,address,address,address,uint256,bytes)"; + const SELECTOR: [u8; 4] = [1u8, 102u8, 160u8, 122u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._localToken, + ), + ::tokenize( + &self._remoteToken, + ), + ::tokenize( + &self._from, + ), + ::tokenize( + &self._to, + ), + as alloy_sol_types::SolType>::tokenize(&self._amount), + ::tokenize( + &self._extraData, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + finalizeBridgeERC20Return::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `finalizeBridgeETH(address,address,uint256,bytes)` and selector `0x1635f5fd`. +```solidity +function finalizeBridgeETH(address _from, address _to, uint256 _amount, bytes memory _extraData) external payable; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct finalizeBridgeETHCall { + #[allow(missing_docs)] + pub _from: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _amount: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _extraData: alloy::sol_types::private::Bytes, + } + ///Container type for the return parameters of the [`finalizeBridgeETH(address,address,uint256,bytes)`](finalizeBridgeETHCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct finalizeBridgeETHReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::Bytes, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: finalizeBridgeETHCall) -> Self { + (value._from, value._to, value._amount, value._extraData) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for finalizeBridgeETHCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _from: tuple.0, + _to: tuple.1, + _amount: tuple.2, + _extraData: tuple.3, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: finalizeBridgeETHReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for finalizeBridgeETHReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl finalizeBridgeETHReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for finalizeBridgeETHCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Bytes, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = finalizeBridgeETHReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "finalizeBridgeETH(address,address,uint256,bytes)"; + const SELECTOR: [u8; 4] = [22u8, 53u8, 245u8, 253u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._from, + ), + ::tokenize( + &self._to, + ), + as alloy_sol_types::SolType>::tokenize(&self._amount), + ::tokenize( + &self._extraData, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + finalizeBridgeETHReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `messenger()` and selector `0x3cb747bf`. +```solidity +function messenger() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct messengerCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`messenger()`](messengerCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct messengerReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: messengerCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for messengerCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: messengerReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for messengerReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for messengerCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "messenger()"; + const SELECTOR: [u8; 4] = [60u8, 183u8, 71u8, 191u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: messengerReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: messengerReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `otherBridge()` and selector `0xc89701a2`. +```solidity +function otherBridge() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct otherBridgeCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`otherBridge()`](otherBridgeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct otherBridgeReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: otherBridgeCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for otherBridgeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: otherBridgeReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for otherBridgeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for otherBridgeCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "otherBridge()"; + const SELECTOR: [u8; 4] = [200u8, 151u8, 1u8, 162u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: otherBridgeReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: otherBridgeReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `paused()` and selector `0x5c975abb`. +```solidity +function paused() external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct pausedCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`paused()`](pausedCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct pausedReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: pausedCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for pausedCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: pausedReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for pausedReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for pausedCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "paused()"; + const SELECTOR: [u8; 4] = [92u8, 151u8, 90u8, 187u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: pausedReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: pausedReturn = r.into(); + r._0 + }) + } + } + }; + ///Container for all the [`StandardBridge`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum StandardBridgeCalls { + #[allow(missing_docs)] + MESSENGER(MESSENGERCall), + #[allow(missing_docs)] + OTHER_BRIDGE(OTHER_BRIDGECall), + #[allow(missing_docs)] + bridgeERC20(bridgeERC20Call), + #[allow(missing_docs)] + bridgeERC20To(bridgeERC20ToCall), + #[allow(missing_docs)] + bridgeETH(bridgeETHCall), + #[allow(missing_docs)] + bridgeETHTo(bridgeETHToCall), + #[allow(missing_docs)] + deposits(depositsCall), + #[allow(missing_docs)] + finalizeBridgeERC20(finalizeBridgeERC20Call), + #[allow(missing_docs)] + finalizeBridgeETH(finalizeBridgeETHCall), + #[allow(missing_docs)] + messenger(messengerCall), + #[allow(missing_docs)] + otherBridge(otherBridgeCall), + #[allow(missing_docs)] + paused(pausedCall), + } + impl StandardBridgeCalls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [1u8, 102u8, 160u8, 122u8], + [9u8, 252u8, 136u8, 67u8], + [22u8, 53u8, 245u8, 253u8], + [60u8, 183u8, 71u8, 191u8], + [84u8, 10u8, 191u8, 115u8], + [92u8, 151u8, 90u8, 187u8], + [127u8, 70u8, 221u8, 178u8], + [135u8, 8u8, 118u8, 35u8], + [143u8, 96u8, 31u8, 102u8], + [146u8, 126u8, 222u8, 45u8], + [200u8, 151u8, 1u8, 162u8], + [225u8, 16u8, 19u8, 221u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(finalizeBridgeERC20), + ::core::stringify!(bridgeETH), + ::core::stringify!(finalizeBridgeETH), + ::core::stringify!(messenger), + ::core::stringify!(bridgeERC20To), + ::core::stringify!(paused), + ::core::stringify!(OTHER_BRIDGE), + ::core::stringify!(bridgeERC20), + ::core::stringify!(deposits), + ::core::stringify!(MESSENGER), + ::core::stringify!(otherBridge), + ::core::stringify!(bridgeETHTo), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for StandardBridgeCalls { + const NAME: &'static str = "StandardBridgeCalls"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 12usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::MESSENGER(_) => { + ::SELECTOR + } + Self::OTHER_BRIDGE(_) => { + ::SELECTOR + } + Self::bridgeERC20(_) => { + ::SELECTOR + } + Self::bridgeERC20To(_) => { + ::SELECTOR + } + Self::bridgeETH(_) => { + ::SELECTOR + } + Self::bridgeETHTo(_) => { + ::SELECTOR + } + Self::deposits(_) => ::SELECTOR, + Self::finalizeBridgeERC20(_) => { + ::SELECTOR + } + Self::finalizeBridgeETH(_) => { + ::SELECTOR + } + Self::messenger(_) => { + ::SELECTOR + } + Self::otherBridge(_) => { + ::SELECTOR + } + Self::paused(_) => ::SELECTOR, + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn finalizeBridgeERC20( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(StandardBridgeCalls::finalizeBridgeERC20) + } + finalizeBridgeERC20 + }, + { + fn bridgeETH( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(StandardBridgeCalls::bridgeETH) + } + bridgeETH + }, + { + fn finalizeBridgeETH( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(StandardBridgeCalls::finalizeBridgeETH) + } + finalizeBridgeETH + }, + { + fn messenger( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(StandardBridgeCalls::messenger) + } + messenger + }, + { + fn bridgeERC20To( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(StandardBridgeCalls::bridgeERC20To) + } + bridgeERC20To + }, + { + fn paused( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(StandardBridgeCalls::paused) + } + paused + }, + { + fn OTHER_BRIDGE( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(StandardBridgeCalls::OTHER_BRIDGE) + } + OTHER_BRIDGE + }, + { + fn bridgeERC20( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(StandardBridgeCalls::bridgeERC20) + } + bridgeERC20 + }, + { + fn deposits( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(StandardBridgeCalls::deposits) + } + deposits + }, + { + fn MESSENGER( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(StandardBridgeCalls::MESSENGER) + } + MESSENGER + }, + { + fn otherBridge( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(StandardBridgeCalls::otherBridge) + } + otherBridge + }, + { + fn bridgeETHTo( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(StandardBridgeCalls::bridgeETHTo) + } + bridgeETHTo + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn finalizeBridgeERC20( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(StandardBridgeCalls::finalizeBridgeERC20) + } + finalizeBridgeERC20 + }, + { + fn bridgeETH( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(StandardBridgeCalls::bridgeETH) + } + bridgeETH + }, + { + fn finalizeBridgeETH( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(StandardBridgeCalls::finalizeBridgeETH) + } + finalizeBridgeETH + }, + { + fn messenger( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(StandardBridgeCalls::messenger) + } + messenger + }, + { + fn bridgeERC20To( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(StandardBridgeCalls::bridgeERC20To) + } + bridgeERC20To + }, + { + fn paused( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(StandardBridgeCalls::paused) + } + paused + }, + { + fn OTHER_BRIDGE( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(StandardBridgeCalls::OTHER_BRIDGE) + } + OTHER_BRIDGE + }, + { + fn bridgeERC20( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(StandardBridgeCalls::bridgeERC20) + } + bridgeERC20 + }, + { + fn deposits( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(StandardBridgeCalls::deposits) + } + deposits + }, + { + fn MESSENGER( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(StandardBridgeCalls::MESSENGER) + } + MESSENGER + }, + { + fn otherBridge( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(StandardBridgeCalls::otherBridge) + } + otherBridge + }, + { + fn bridgeETHTo( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(StandardBridgeCalls::bridgeETHTo) + } + bridgeETHTo + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::MESSENGER(inner) => { + ::abi_encoded_size(inner) + } + Self::OTHER_BRIDGE(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::bridgeERC20(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::bridgeERC20To(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::bridgeETH(inner) => { + ::abi_encoded_size(inner) + } + Self::bridgeETHTo(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::deposits(inner) => { + ::abi_encoded_size(inner) + } + Self::finalizeBridgeERC20(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::finalizeBridgeETH(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::messenger(inner) => { + ::abi_encoded_size(inner) + } + Self::otherBridge(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::paused(inner) => { + ::abi_encoded_size(inner) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::MESSENGER(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::OTHER_BRIDGE(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::bridgeERC20(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::bridgeERC20To(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::bridgeETH(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::bridgeETHTo(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::deposits(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::finalizeBridgeERC20(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::finalizeBridgeETH(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::messenger(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::otherBridge(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::paused(inner) => { + ::abi_encode_raw(inner, out) + } + } + } + } + ///Container for all the [`StandardBridge`](self) events. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum StandardBridgeEvents { + #[allow(missing_docs)] + ERC20BridgeFinalized(ERC20BridgeFinalized), + #[allow(missing_docs)] + ERC20BridgeInitiated(ERC20BridgeInitiated), + #[allow(missing_docs)] + ETHBridgeFinalized(ETHBridgeFinalized), + #[allow(missing_docs)] + ETHBridgeInitiated(ETHBridgeInitiated), + #[allow(missing_docs)] + Initialized(Initialized), + } + impl StandardBridgeEvents { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 32usize]] = &[ + [ + 40u8, 73u8, 180u8, 48u8, 116u8, 9u8, 58u8, 5u8, 57u8, 107u8, 111u8, 42u8, + 147u8, 125u8, 238u8, 133u8, 101u8, 177u8, 90u8, 72u8, 167u8, 179u8, + 212u8, 191u8, 251u8, 115u8, 42u8, 80u8, 23u8, 56u8, 10u8, 245u8, + ], + [ + 49u8, 178u8, 22u8, 111u8, 246u8, 4u8, 252u8, 86u8, 114u8, 234u8, 93u8, + 240u8, 138u8, 120u8, 8u8, 29u8, 43u8, 198u8, 215u8, 70u8, 202u8, 220u8, + 232u8, 128u8, 116u8, 127u8, 54u8, 67u8, 216u8, 25u8, 232u8, 61u8, + ], + [ + 127u8, 38u8, 184u8, 63u8, 249u8, 110u8, 31u8, 43u8, 106u8, 104u8, 47u8, + 19u8, 56u8, 82u8, 246u8, 121u8, 138u8, 9u8, 196u8, 101u8, 218u8, 149u8, + 146u8, 20u8, 96u8, 206u8, 251u8, 56u8, 71u8, 64u8, 36u8, 152u8, + ], + [ + 127u8, 241u8, 38u8, 219u8, 128u8, 36u8, 66u8, 75u8, 191u8, 217u8, 130u8, + 110u8, 138u8, 184u8, 47u8, 245u8, 145u8, 54u8, 40u8, 158u8, 164u8, 64u8, + 176u8, 75u8, 57u8, 160u8, 223u8, 27u8, 3u8, 185u8, 202u8, 191u8, + ], + [ + 213u8, 156u8, 101u8, 179u8, 84u8, 69u8, 34u8, 88u8, 53u8, 200u8, 63u8, + 80u8, 182u8, 237u8, 224u8, 106u8, 123u8, 224u8, 71u8, 210u8, 46u8, 53u8, + 112u8, 115u8, 226u8, 80u8, 217u8, 175u8, 83u8, 117u8, 24u8, 205u8, + ], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(ETHBridgeInitiated), + ::core::stringify!(ETHBridgeFinalized), + ::core::stringify!(Initialized), + ::core::stringify!(ERC20BridgeInitiated), + ::core::stringify!(ERC20BridgeFinalized), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolEventInterface for StandardBridgeEvents { + const NAME: &'static str = "StandardBridgeEvents"; + const COUNT: usize = 5usize; + fn decode_raw_log( + topics: &[alloy_sol_types::Word], + data: &[u8], + ) -> alloy_sol_types::Result { + match topics.first().copied() { + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::ERC20BridgeFinalized) + } + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::ERC20BridgeInitiated) + } + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::ETHBridgeFinalized) + } + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::ETHBridgeInitiated) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::Initialized) + } + _ => { + alloy_sol_types::private::Err(alloy_sol_types::Error::InvalidLog { + name: ::NAME, + log: alloy_sol_types::private::Box::new( + alloy_sol_types::private::LogData::new_unchecked( + topics.to_vec(), + data.to_vec().into(), + ), + ), + }) + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for StandardBridgeEvents { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + match self { + Self::ERC20BridgeFinalized(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::ERC20BridgeInitiated(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::ETHBridgeFinalized(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::ETHBridgeInitiated(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::Initialized(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + } + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + match self { + Self::ERC20BridgeFinalized(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::ERC20BridgeInitiated(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::ETHBridgeFinalized(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::ETHBridgeInitiated(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::Initialized(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`StandardBridge`](self) contract instance. + +See the [wrapper's documentation](`StandardBridgeInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> StandardBridgeInstance { + StandardBridgeInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + StandardBridgeInstance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + StandardBridgeInstance::::deploy_builder(__provider) + } + /**A [`StandardBridge`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`StandardBridge`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct StandardBridgeInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for StandardBridgeInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("StandardBridgeInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > StandardBridgeInstance { + /**Creates a new wrapper around an on-chain [`StandardBridge`](self) contract instance. + +See the [wrapper's documentation](`StandardBridgeInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl StandardBridgeInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> StandardBridgeInstance { + StandardBridgeInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > StandardBridgeInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`MESSENGER`] function. + pub fn MESSENGER(&self) -> alloy_contract::SolCallBuilder<&P, MESSENGERCall, N> { + self.call_builder(&MESSENGERCall) + } + ///Creates a new call builder for the [`OTHER_BRIDGE`] function. + pub fn OTHER_BRIDGE( + &self, + ) -> alloy_contract::SolCallBuilder<&P, OTHER_BRIDGECall, N> { + self.call_builder(&OTHER_BRIDGECall) + } + ///Creates a new call builder for the [`bridgeERC20`] function. + pub fn bridgeERC20( + &self, + _localToken: alloy::sol_types::private::Address, + _remoteToken: alloy::sol_types::private::Address, + _amount: alloy::sol_types::private::primitives::aliases::U256, + _minGasLimit: u32, + _extraData: alloy::sol_types::private::Bytes, + ) -> alloy_contract::SolCallBuilder<&P, bridgeERC20Call, N> { + self.call_builder( + &bridgeERC20Call { + _localToken, + _remoteToken, + _amount, + _minGasLimit, + _extraData, + }, + ) + } + ///Creates a new call builder for the [`bridgeERC20To`] function. + pub fn bridgeERC20To( + &self, + _localToken: alloy::sol_types::private::Address, + _remoteToken: alloy::sol_types::private::Address, + _to: alloy::sol_types::private::Address, + _amount: alloy::sol_types::private::primitives::aliases::U256, + _minGasLimit: u32, + _extraData: alloy::sol_types::private::Bytes, + ) -> alloy_contract::SolCallBuilder<&P, bridgeERC20ToCall, N> { + self.call_builder( + &bridgeERC20ToCall { + _localToken, + _remoteToken, + _to, + _amount, + _minGasLimit, + _extraData, + }, + ) + } + ///Creates a new call builder for the [`bridgeETH`] function. + pub fn bridgeETH( + &self, + _minGasLimit: u32, + _extraData: alloy::sol_types::private::Bytes, + ) -> alloy_contract::SolCallBuilder<&P, bridgeETHCall, N> { + self.call_builder( + &bridgeETHCall { + _minGasLimit, + _extraData, + }, + ) + } + ///Creates a new call builder for the [`bridgeETHTo`] function. + pub fn bridgeETHTo( + &self, + _to: alloy::sol_types::private::Address, + _minGasLimit: u32, + _extraData: alloy::sol_types::private::Bytes, + ) -> alloy_contract::SolCallBuilder<&P, bridgeETHToCall, N> { + self.call_builder( + &bridgeETHToCall { + _to, + _minGasLimit, + _extraData, + }, + ) + } + ///Creates a new call builder for the [`deposits`] function. + pub fn deposits( + &self, + _0: alloy::sol_types::private::Address, + _1: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, depositsCall, N> { + self.call_builder(&depositsCall { _0, _1 }) + } + ///Creates a new call builder for the [`finalizeBridgeERC20`] function. + pub fn finalizeBridgeERC20( + &self, + _localToken: alloy::sol_types::private::Address, + _remoteToken: alloy::sol_types::private::Address, + _from: alloy::sol_types::private::Address, + _to: alloy::sol_types::private::Address, + _amount: alloy::sol_types::private::primitives::aliases::U256, + _extraData: alloy::sol_types::private::Bytes, + ) -> alloy_contract::SolCallBuilder<&P, finalizeBridgeERC20Call, N> { + self.call_builder( + &finalizeBridgeERC20Call { + _localToken, + _remoteToken, + _from, + _to, + _amount, + _extraData, + }, + ) + } + ///Creates a new call builder for the [`finalizeBridgeETH`] function. + pub fn finalizeBridgeETH( + &self, + _from: alloy::sol_types::private::Address, + _to: alloy::sol_types::private::Address, + _amount: alloy::sol_types::private::primitives::aliases::U256, + _extraData: alloy::sol_types::private::Bytes, + ) -> alloy_contract::SolCallBuilder<&P, finalizeBridgeETHCall, N> { + self.call_builder( + &finalizeBridgeETHCall { + _from, + _to, + _amount, + _extraData, + }, + ) + } + ///Creates a new call builder for the [`messenger`] function. + pub fn messenger(&self) -> alloy_contract::SolCallBuilder<&P, messengerCall, N> { + self.call_builder(&messengerCall) + } + ///Creates a new call builder for the [`otherBridge`] function. + pub fn otherBridge( + &self, + ) -> alloy_contract::SolCallBuilder<&P, otherBridgeCall, N> { + self.call_builder(&otherBridgeCall) + } + ///Creates a new call builder for the [`paused`] function. + pub fn paused(&self) -> alloy_contract::SolCallBuilder<&P, pausedCall, N> { + self.call_builder(&pausedCall) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > StandardBridgeInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + ///Creates a new event filter for the [`ERC20BridgeFinalized`] event. + pub fn ERC20BridgeFinalized_filter( + &self, + ) -> alloy_contract::Event<&P, ERC20BridgeFinalized, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`ERC20BridgeInitiated`] event. + pub fn ERC20BridgeInitiated_filter( + &self, + ) -> alloy_contract::Event<&P, ERC20BridgeInitiated, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`ETHBridgeFinalized`] event. + pub fn ETHBridgeFinalized_filter( + &self, + ) -> alloy_contract::Event<&P, ETHBridgeFinalized, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`ETHBridgeInitiated`] event. + pub fn ETHBridgeInitiated_filter( + &self, + ) -> alloy_contract::Event<&P, ETHBridgeInitiated, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`Initialized`] event. + pub fn Initialized_filter(&self) -> alloy_contract::Event<&P, Initialized, N> { + self.event_filter::() + } + } +} diff --git a/bindings/rust/src/static_config.rs b/bindings/rust/src/static_config.rs new file mode 100644 index 000000000..75d297085 --- /dev/null +++ b/bindings/rust/src/static_config.rs @@ -0,0 +1,215 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface StaticConfig {} +``` + +...which was generated by the following JSON ABI: +```json +[] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod StaticConfig { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`-`7`\x0B\x82\x82\x829\x80Q`\0\x1A`s\x14`*WcNH{q`\xE0\x1B`\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`\0\x80\xFD\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + 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`\0\x80\xFD\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`StaticConfig`](self) contract instance. + +See the [wrapper's documentation](`StaticConfigInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> StaticConfigInstance { + StaticConfigInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + StaticConfigInstance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + StaticConfigInstance::::deploy_builder(__provider) + } + /**A [`StaticConfig`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`StaticConfig`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct StaticConfigInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for StaticConfigInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("StaticConfigInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > StaticConfigInstance { + /**Creates a new wrapper around an on-chain [`StaticConfig`](self) contract instance. + +See the [wrapper's documentation](`StaticConfigInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl StaticConfigInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> StaticConfigInstance { + StaticConfigInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > StaticConfigInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > StaticConfigInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + } +} diff --git a/bindings/rust/src/storage.rs b/bindings/rust/src/storage.rs new file mode 100644 index 000000000..ca84bbdad --- /dev/null +++ b/bindings/rust/src/storage.rs @@ -0,0 +1,215 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface Storage {} +``` + +...which was generated by the following JSON ABI: +```json +[] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod Storage { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`-`7`\x0B\x82\x82\x829\x80Q`\0\x1A`s\x14`*WcNH{q`\xE0\x1B`\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`\0\x80\xFD\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + 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`\0\x80\xFD\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`Storage`](self) contract instance. + +See the [wrapper's documentation](`StorageInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> StorageInstance { + StorageInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + StorageInstance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + StorageInstance::::deploy_builder(__provider) + } + /**A [`Storage`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`Storage`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct StorageInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for StorageInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("StorageInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > StorageInstance { + /**Creates a new wrapper around an on-chain [`Storage`](self) contract instance. + +See the [wrapper's documentation](`StorageInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl StorageInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> StorageInstance { + StorageInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > StorageInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > StorageInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + } +} diff --git a/bindings/rust/src/storage_setter.rs b/bindings/rust/src/storage_setter.rs new file mode 100644 index 000000000..d1925b20f --- /dev/null +++ b/bindings/rust/src/storage_setter.rs @@ -0,0 +1,2732 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface StorageSetter { + struct Slot { + bytes32 key; + bytes32 value; + } + + function getAddress(bytes32 _slot) external view returns (address addr_); + function getBool(bytes32 _slot) external view returns (bool value_); + function getBytes32(bytes32 _slot) external view returns (bytes32 value_); + function getUint(bytes32 _slot) external view returns (uint256 value_); + function setAddress(bytes32 _slot, address _address) external; + function setBool(bytes32 _slot, bool _value) external; + function setBytes32(Slot[] memory _slots) external; + function setBytes32(bytes32 _slot, bytes32 _value) external; + function setUint(bytes32 _slot, uint256 _value) external; + function version() external view returns (string memory); +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "function", + "name": "getAddress", + "inputs": [ + { + "name": "_slot", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "outputs": [ + { + "name": "addr_", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "getBool", + "inputs": [ + { + "name": "_slot", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "outputs": [ + { + "name": "value_", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "getBytes32", + "inputs": [ + { + "name": "_slot", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "outputs": [ + { + "name": "value_", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "getUint", + "inputs": [ + { + "name": "_slot", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "outputs": [ + { + "name": "value_", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "setAddress", + "inputs": [ + { + "name": "_slot", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "_address", + "type": "address", + "internalType": "address" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "setBool", + "inputs": [ + { + "name": "_slot", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "_value", + "type": "bool", + "internalType": "bool" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "setBytes32", + "inputs": [ + { + "name": "_slots", + "type": "tuple[]", + "internalType": "struct StorageSetter.Slot[]", + "components": [ + { + "name": "key", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "value", + "type": "bytes32", + "internalType": "bytes32" + } + ] + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "setBytes32", + "inputs": [ + { + "name": "_slot", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "_value", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "setUint", + "inputs": [ + { + "name": "_slot", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "_value", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "version", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "view" + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod StorageSetter { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x608060405234801561001057600080fd5b5061046a806100206000396000f3fe608060405234801561001057600080fd5b50600436106100be5760003560e01c8063a6ed563e11610076578063bd02d0f51161005b578063bd02d0f51461018e578063ca446dd9146101b8578063e2a4853a1461011557600080fd5b8063a6ed563e1461018e578063abfdcced146101aa57600080fd5b80634e91db08116100a75780634e91db081461011557806354fd4d50146101275780637ae1cfca1461017057600080fd5b80630528afe2146100c357806321f8a721146100d8575b600080fd5b6100d66100d1366004610239565b6101c6565b005b6100eb6100e63660046102ae565b610229565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b6100d66101233660046102c7565b9055565b6101636040518060400160405280600581526020017f312e322e3200000000000000000000000000000000000000000000000000000081525081565b60405161010c91906102e9565b61017e6100e63660046102ae565b604051901515815260200161010c565b61019c6100e63660046102ae565b60405190815260200161010c565b6100d661012336600461035c565b6100d6610123366004610391565b8060005b81811015610223576102118484838181106101e7576101e76103cf565b90506040020160000135858584818110610203576102036103cf565b905060400201602001359055565b8061021b816103fe565b9150506101ca565b50505050565b6000610233825490565b92915050565b6000806020838503121561024c57600080fd5b823567ffffffffffffffff8082111561026457600080fd5b818501915085601f83011261027857600080fd5b81358181111561028757600080fd5b8660208260061b850101111561029c57600080fd5b60209290920196919550909350505050565b6000602082840312156102c057600080fd5b5035919050565b600080604083850312156102da57600080fd5b50508035926020909101359150565b600060208083528351808285015260005b81811015610316578581018301518582016040015282016102fa565b81811115610328576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b6000806040838503121561036f57600080fd5b823591506020830135801515811461038657600080fd5b809150509250929050565b600080604083850312156103a457600080fd5b82359150602083013573ffffffffffffffffffffffffffffffffffffffff8116811461038657600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610456577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b506001019056fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[Pa\x04j\x80a\0 `\09`\0\xF3\xFE`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`\x046\x10a\0\xBEW`\x005`\xE0\x1C\x80c\xA6\xEDV>\x11a\0vW\x80c\xBD\x02\xD0\xF5\x11a\0[W\x80c\xBD\x02\xD0\xF5\x14a\x01\x8EW\x80c\xCADm\xD9\x14a\x01\xB8W\x80c\xE2\xA4\x85:\x14a\x01\x15W`\0\x80\xFD[\x80c\xA6\xEDV>\x14a\x01\x8EW\x80c\xAB\xFD\xCC\xED\x14a\x01\xAAW`\0\x80\xFD[\x80cN\x91\xDB\x08\x11a\0\xA7W\x80cN\x91\xDB\x08\x14a\x01\x15W\x80cT\xFDMP\x14a\x01'W\x80cz\xE1\xCF\xCA\x14a\x01pW`\0\x80\xFD[\x80c\x05(\xAF\xE2\x14a\0\xC3W\x80c!\xF8\xA7!\x14a\0\xD8W[`\0\x80\xFD[a\0\xD6a\0\xD16`\x04a\x029V[a\x01\xC6V[\0[a\0\xEBa\0\xE66`\x04a\x02\xAEV[a\x02)V[`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[a\0\xD6a\x01#6`\x04a\x02\xC7V[\x90UV[a\x01c`@Q\x80`@\x01`@R\x80`\x05\x81R` \x01\x7F1.2.2\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\x81RP\x81V[`@Qa\x01\x0C\x91\x90a\x02\xE9V[a\x01~a\0\xE66`\x04a\x02\xAEV[`@Q\x90\x15\x15\x81R` \x01a\x01\x0CV[a\x01\x9Ca\0\xE66`\x04a\x02\xAEV[`@Q\x90\x81R` \x01a\x01\x0CV[a\0\xD6a\x01#6`\x04a\x03\\V[a\0\xD6a\x01#6`\x04a\x03\x91V[\x80`\0[\x81\x81\x10\x15a\x02#Wa\x02\x11\x84\x84\x83\x81\x81\x10a\x01\xE7Wa\x01\xE7a\x03\xCFV[\x90P`@\x02\x01`\0\x015\x85\x85\x84\x81\x81\x10a\x02\x03Wa\x02\x03a\x03\xCFV[\x90P`@\x02\x01` \x015\x90UV[\x80a\x02\x1B\x81a\x03\xFEV[\x91PPa\x01\xCAV[PPPPV[`\0a\x023\x82T\x90V[\x92\x91PPV[`\0\x80` \x83\x85\x03\x12\x15a\x02LW`\0\x80\xFD[\x825g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x02dW`\0\x80\xFD[\x81\x85\x01\x91P\x85`\x1F\x83\x01\x12a\x02xW`\0\x80\xFD[\x815\x81\x81\x11\x15a\x02\x87W`\0\x80\xFD[\x86` \x82`\x06\x1B\x85\x01\x01\x11\x15a\x02\x9CW`\0\x80\xFD[` \x92\x90\x92\x01\x96\x91\x95P\x90\x93PPPPV[`\0` \x82\x84\x03\x12\x15a\x02\xC0W`\0\x80\xFD[P5\x91\x90PV[`\0\x80`@\x83\x85\x03\x12\x15a\x02\xDAW`\0\x80\xFD[PP\x805\x92` \x90\x91\x015\x91PV[`\0` \x80\x83R\x83Q\x80\x82\x85\x01R`\0[\x81\x81\x10\x15a\x03\x16W\x85\x81\x01\x83\x01Q\x85\x82\x01`@\x01R\x82\x01a\x02\xFAV[\x81\x81\x11\x15a\x03(W`\0`@\x83\x87\x01\x01R[P`\x1F\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x92\x90\x92\x01`@\x01\x93\x92PPPV[`\0\x80`@\x83\x85\x03\x12\x15a\x03oW`\0\x80\xFD[\x825\x91P` \x83\x015\x80\x15\x15\x81\x14a\x03\x86W`\0\x80\xFD[\x80\x91PP\x92P\x92\x90PV[`\0\x80`@\x83\x85\x03\x12\x15a\x03\xA4W`\0\x80\xFD[\x825\x91P` \x83\x015s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x03\x86W`\0\x80\xFD[\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`2`\x04R`$`\0\xFD[`\0\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x03a\x04VW\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`\x11`\x04R`$`\0\xFD[P`\x01\x01\x90V\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x608060405234801561001057600080fd5b50600436106100be5760003560e01c8063a6ed563e11610076578063bd02d0f51161005b578063bd02d0f51461018e578063ca446dd9146101b8578063e2a4853a1461011557600080fd5b8063a6ed563e1461018e578063abfdcced146101aa57600080fd5b80634e91db08116100a75780634e91db081461011557806354fd4d50146101275780637ae1cfca1461017057600080fd5b80630528afe2146100c357806321f8a721146100d8575b600080fd5b6100d66100d1366004610239565b6101c6565b005b6100eb6100e63660046102ae565b610229565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b6100d66101233660046102c7565b9055565b6101636040518060400160405280600581526020017f312e322e3200000000000000000000000000000000000000000000000000000081525081565b60405161010c91906102e9565b61017e6100e63660046102ae565b604051901515815260200161010c565b61019c6100e63660046102ae565b60405190815260200161010c565b6100d661012336600461035c565b6100d6610123366004610391565b8060005b81811015610223576102118484838181106101e7576101e76103cf565b90506040020160000135858584818110610203576102036103cf565b905060400201602001359055565b8061021b816103fe565b9150506101ca565b50505050565b6000610233825490565b92915050565b6000806020838503121561024c57600080fd5b823567ffffffffffffffff8082111561026457600080fd5b818501915085601f83011261027857600080fd5b81358181111561028757600080fd5b8660208260061b850101111561029c57600080fd5b60209290920196919550909350505050565b6000602082840312156102c057600080fd5b5035919050565b600080604083850312156102da57600080fd5b50508035926020909101359150565b600060208083528351808285015260005b81811015610316578581018301518582016040015282016102fa565b81811115610328576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b6000806040838503121561036f57600080fd5b823591506020830135801515811461038657600080fd5b809150509250929050565b600080604083850312156103a457600080fd5b82359150602083013573ffffffffffffffffffffffffffffffffffffffff8116811461038657600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610456577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b506001019056fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`\x046\x10a\0\xBEW`\x005`\xE0\x1C\x80c\xA6\xEDV>\x11a\0vW\x80c\xBD\x02\xD0\xF5\x11a\0[W\x80c\xBD\x02\xD0\xF5\x14a\x01\x8EW\x80c\xCADm\xD9\x14a\x01\xB8W\x80c\xE2\xA4\x85:\x14a\x01\x15W`\0\x80\xFD[\x80c\xA6\xEDV>\x14a\x01\x8EW\x80c\xAB\xFD\xCC\xED\x14a\x01\xAAW`\0\x80\xFD[\x80cN\x91\xDB\x08\x11a\0\xA7W\x80cN\x91\xDB\x08\x14a\x01\x15W\x80cT\xFDMP\x14a\x01'W\x80cz\xE1\xCF\xCA\x14a\x01pW`\0\x80\xFD[\x80c\x05(\xAF\xE2\x14a\0\xC3W\x80c!\xF8\xA7!\x14a\0\xD8W[`\0\x80\xFD[a\0\xD6a\0\xD16`\x04a\x029V[a\x01\xC6V[\0[a\0\xEBa\0\xE66`\x04a\x02\xAEV[a\x02)V[`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[a\0\xD6a\x01#6`\x04a\x02\xC7V[\x90UV[a\x01c`@Q\x80`@\x01`@R\x80`\x05\x81R` \x01\x7F1.2.2\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\x81RP\x81V[`@Qa\x01\x0C\x91\x90a\x02\xE9V[a\x01~a\0\xE66`\x04a\x02\xAEV[`@Q\x90\x15\x15\x81R` \x01a\x01\x0CV[a\x01\x9Ca\0\xE66`\x04a\x02\xAEV[`@Q\x90\x81R` \x01a\x01\x0CV[a\0\xD6a\x01#6`\x04a\x03\\V[a\0\xD6a\x01#6`\x04a\x03\x91V[\x80`\0[\x81\x81\x10\x15a\x02#Wa\x02\x11\x84\x84\x83\x81\x81\x10a\x01\xE7Wa\x01\xE7a\x03\xCFV[\x90P`@\x02\x01`\0\x015\x85\x85\x84\x81\x81\x10a\x02\x03Wa\x02\x03a\x03\xCFV[\x90P`@\x02\x01` \x015\x90UV[\x80a\x02\x1B\x81a\x03\xFEV[\x91PPa\x01\xCAV[PPPPV[`\0a\x023\x82T\x90V[\x92\x91PPV[`\0\x80` \x83\x85\x03\x12\x15a\x02LW`\0\x80\xFD[\x825g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x02dW`\0\x80\xFD[\x81\x85\x01\x91P\x85`\x1F\x83\x01\x12a\x02xW`\0\x80\xFD[\x815\x81\x81\x11\x15a\x02\x87W`\0\x80\xFD[\x86` \x82`\x06\x1B\x85\x01\x01\x11\x15a\x02\x9CW`\0\x80\xFD[` \x92\x90\x92\x01\x96\x91\x95P\x90\x93PPPPV[`\0` \x82\x84\x03\x12\x15a\x02\xC0W`\0\x80\xFD[P5\x91\x90PV[`\0\x80`@\x83\x85\x03\x12\x15a\x02\xDAW`\0\x80\xFD[PP\x805\x92` \x90\x91\x015\x91PV[`\0` \x80\x83R\x83Q\x80\x82\x85\x01R`\0[\x81\x81\x10\x15a\x03\x16W\x85\x81\x01\x83\x01Q\x85\x82\x01`@\x01R\x82\x01a\x02\xFAV[\x81\x81\x11\x15a\x03(W`\0`@\x83\x87\x01\x01R[P`\x1F\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x92\x90\x92\x01`@\x01\x93\x92PPPV[`\0\x80`@\x83\x85\x03\x12\x15a\x03oW`\0\x80\xFD[\x825\x91P` \x83\x015\x80\x15\x15\x81\x14a\x03\x86W`\0\x80\xFD[\x80\x91PP\x92P\x92\x90PV[`\0\x80`@\x83\x85\x03\x12\x15a\x03\xA4W`\0\x80\xFD[\x825\x91P` \x83\x015s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x03\x86W`\0\x80\xFD[\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`2`\x04R`$`\0\xFD[`\0\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x03a\x04VW\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`\x11`\x04R`$`\0\xFD[P`\x01\x01\x90V\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**```solidity +struct Slot { bytes32 key; bytes32 value; } +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct Slot { + #[allow(missing_docs)] + pub key: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub value: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::FixedBytes<32>, + alloy::sol_types::private::FixedBytes<32>, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: Slot) -> Self { + (value.key, value.value) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for Slot { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + key: tuple.0, + value: tuple.1, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolValue for Slot { + type SolType = Self; + } + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for Slot { + #[inline] + fn stv_to_tokens(&self) -> ::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.key), + as alloy_sol_types::SolType>::tokenize(&self.value), + ) + } + #[inline] + fn stv_abi_encoded_size(&self) -> usize { + if let Some(size) = ::ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encoded_size(&tuple) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + ::eip712_hash_struct(self) + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + if let Some(size) = ::PACKED_ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for Slot { + type RustType = Self; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = ::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + as alloy_sol_types::SolType>::valid_token(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + let tuple = as alloy_sol_types::SolType>::detokenize(token); + >>::from(tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolStruct for Slot { + const NAME: &'static str = "Slot"; + #[inline] + fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> { + alloy_sol_types::private::Cow::Borrowed( + "Slot(bytes32 key,bytes32 value)", + ) + } + #[inline] + fn eip712_components() -> alloy_sol_types::private::Vec< + alloy_sol_types::private::Cow<'static, str>, + > { + alloy_sol_types::private::Vec::new() + } + #[inline] + fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> { + ::eip712_root_type() + } + #[inline] + fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec { + [ + as alloy_sol_types::SolType>::eip712_data_word(&self.key) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.value) + .0, + ] + .concat() + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for Slot { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + 0usize + + as alloy_sol_types::EventTopic>::topic_preimage_length(&rust.key) + + as alloy_sol_types::EventTopic>::topic_preimage_length(&rust.value) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + out.reserve( + ::topic_preimage_length(rust), + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage(&rust.key, out); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.value, + out, + ); + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + let mut out = alloy_sol_types::private::Vec::new(); + ::encode_topic_preimage( + rust, + &mut out, + ); + alloy_sol_types::abi::token::WordToken( + alloy_sol_types::private::keccak256(out), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `getAddress(bytes32)` and selector `0x21f8a721`. +```solidity +function getAddress(bytes32 _slot) external view returns (address addr_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getAddressCall { + #[allow(missing_docs)] + pub _slot: alloy::sol_types::private::FixedBytes<32>, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`getAddress(bytes32)`](getAddressCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getAddressReturn { + #[allow(missing_docs)] + pub addr_: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: getAddressCall) -> Self { + (value._slot,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for getAddressCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _slot: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: getAddressReturn) -> Self { + (value.addr_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for getAddressReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { addr_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for getAddressCall { + type Parameters<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "getAddress(bytes32)"; + const SELECTOR: [u8; 4] = [33u8, 248u8, 167u8, 33u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._slot), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: getAddressReturn = r.into(); + r.addr_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: getAddressReturn = r.into(); + r.addr_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `getBool(bytes32)` and selector `0x7ae1cfca`. +```solidity +function getBool(bytes32 _slot) external view returns (bool value_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getBoolCall { + #[allow(missing_docs)] + pub _slot: alloy::sol_types::private::FixedBytes<32>, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`getBool(bytes32)`](getBoolCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getBoolReturn { + #[allow(missing_docs)] + pub value_: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: getBoolCall) -> Self { + (value._slot,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for getBoolCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _slot: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: getBoolReturn) -> Self { + (value.value_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for getBoolReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { value_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for getBoolCall { + type Parameters<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "getBool(bytes32)"; + const SELECTOR: [u8; 4] = [122u8, 225u8, 207u8, 202u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._slot), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: getBoolReturn = r.into(); + r.value_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: getBoolReturn = r.into(); + r.value_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `getBytes32(bytes32)` and selector `0xa6ed563e`. +```solidity +function getBytes32(bytes32 _slot) external view returns (bytes32 value_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getBytes32Call { + #[allow(missing_docs)] + pub _slot: alloy::sol_types::private::FixedBytes<32>, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`getBytes32(bytes32)`](getBytes32Call) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getBytes32Return { + #[allow(missing_docs)] + pub value_: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: getBytes32Call) -> Self { + (value._slot,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for getBytes32Call { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _slot: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: getBytes32Return) -> Self { + (value.value_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for getBytes32Return { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { value_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for getBytes32Call { + type Parameters<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::FixedBytes<32>; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "getBytes32(bytes32)"; + const SELECTOR: [u8; 4] = [166u8, 237u8, 86u8, 62u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._slot), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: getBytes32Return = r.into(); + r.value_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: getBytes32Return = r.into(); + r.value_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `getUint(bytes32)` and selector `0xbd02d0f5`. +```solidity +function getUint(bytes32 _slot) external view returns (uint256 value_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getUintCall { + #[allow(missing_docs)] + pub _slot: alloy::sol_types::private::FixedBytes<32>, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`getUint(bytes32)`](getUintCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getUintReturn { + #[allow(missing_docs)] + pub value_: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: getUintCall) -> Self { + (value._slot,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for getUintCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _slot: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: getUintReturn) -> Self { + (value.value_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for getUintReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { value_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for getUintCall { + type Parameters<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "getUint(bytes32)"; + const SELECTOR: [u8; 4] = [189u8, 2u8, 208u8, 245u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._slot), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: getUintReturn = r.into(); + r.value_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: getUintReturn = r.into(); + r.value_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `setAddress(bytes32,address)` and selector `0xca446dd9`. +```solidity +function setAddress(bytes32 _slot, address _address) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setAddressCall { + #[allow(missing_docs)] + pub _slot: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub _address: alloy::sol_types::private::Address, + } + ///Container type for the return parameters of the [`setAddress(bytes32,address)`](setAddressCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setAddressReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::FixedBytes<32>, + alloy::sol_types::private::Address, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: setAddressCall) -> Self { + (value._slot, value._address) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for setAddressCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _slot: tuple.0, + _address: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: setAddressReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for setAddressReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl setAddressReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for setAddressCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = setAddressReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "setAddress(bytes32,address)"; + const SELECTOR: [u8; 4] = [202u8, 68u8, 109u8, 217u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._slot), + ::tokenize( + &self._address, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + setAddressReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `setBool(bytes32,bool)` and selector `0xabfdcced`. +```solidity +function setBool(bytes32 _slot, bool _value) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setBoolCall { + #[allow(missing_docs)] + pub _slot: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub _value: bool, + } + ///Container type for the return parameters of the [`setBool(bytes32,bool)`](setBoolCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setBoolReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Bool, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::FixedBytes<32>, + bool, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: setBoolCall) -> Self { + (value._slot, value._value) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for setBoolCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _slot: tuple.0, + _value: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: setBoolReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for setBoolReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl setBoolReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for setBoolCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Bool, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = setBoolReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "setBool(bytes32,bool)"; + const SELECTOR: [u8; 4] = [171u8, 253u8, 204u8, 237u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._slot), + ::tokenize( + &self._value, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + setBoolReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `setBytes32((bytes32,bytes32)[])` and selector `0x0528afe2`. +```solidity +function setBytes32(Slot[] memory _slots) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setBytes32_0Call { + #[allow(missing_docs)] + pub _slots: alloy::sol_types::private::Vec< + ::RustType, + >, + } + ///Container type for the return parameters of the [`setBytes32((bytes32,bytes32)[])`](setBytes32_0Call) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setBytes32_0Return {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Array,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Vec< + ::RustType, + >, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: setBytes32_0Call) -> Self { + (value._slots,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for setBytes32_0Call { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _slots: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: setBytes32_0Return) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for setBytes32_0Return { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl setBytes32_0Return { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for setBytes32_0Call { + type Parameters<'a> = (alloy::sol_types::sol_data::Array,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = setBytes32_0Return; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "setBytes32((bytes32,bytes32)[])"; + const SELECTOR: [u8; 4] = [5u8, 40u8, 175u8, 226u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._slots), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + setBytes32_0Return::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `setBytes32(bytes32,bytes32)` and selector `0x4e91db08`. +```solidity +function setBytes32(bytes32 _slot, bytes32 _value) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setBytes32_1Call { + #[allow(missing_docs)] + pub _slot: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub _value: alloy::sol_types::private::FixedBytes<32>, + } + ///Container type for the return parameters of the [`setBytes32(bytes32,bytes32)`](setBytes32_1Call) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setBytes32_1Return {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::FixedBytes<32>, + alloy::sol_types::private::FixedBytes<32>, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: setBytes32_1Call) -> Self { + (value._slot, value._value) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for setBytes32_1Call { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _slot: tuple.0, + _value: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: setBytes32_1Return) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for setBytes32_1Return { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl setBytes32_1Return { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for setBytes32_1Call { + type Parameters<'a> = ( + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = setBytes32_1Return; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "setBytes32(bytes32,bytes32)"; + const SELECTOR: [u8; 4] = [78u8, 145u8, 219u8, 8u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._slot), + as alloy_sol_types::SolType>::tokenize(&self._value), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + setBytes32_1Return::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `setUint(bytes32,uint256)` and selector `0xe2a4853a`. +```solidity +function setUint(bytes32 _slot, uint256 _value) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setUintCall { + #[allow(missing_docs)] + pub _slot: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub _value: alloy::sol_types::private::primitives::aliases::U256, + } + ///Container type for the return parameters of the [`setUint(bytes32,uint256)`](setUintCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setUintReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::FixedBytes<32>, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: setUintCall) -> Self { + (value._slot, value._value) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for setUintCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _slot: tuple.0, + _value: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: setUintReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for setUintReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl setUintReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for setUintCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Uint<256>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = setUintReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "setUint(bytes32,uint256)"; + const SELECTOR: [u8; 4] = [226u8, 164u8, 133u8, 58u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._slot), + as alloy_sol_types::SolType>::tokenize(&self._value), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + setUintReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `version()` and selector `0x54fd4d50`. +```solidity +function version() external view returns (string memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`version()`](versionCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for versionCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::String; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "version()"; + const SELECTOR: [u8; 4] = [84u8, 253u8, 77u8, 80u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + } + }; + ///Container for all the [`StorageSetter`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum StorageSetterCalls { + #[allow(missing_docs)] + getAddress(getAddressCall), + #[allow(missing_docs)] + getBool(getBoolCall), + #[allow(missing_docs)] + getBytes32(getBytes32Call), + #[allow(missing_docs)] + getUint(getUintCall), + #[allow(missing_docs)] + setAddress(setAddressCall), + #[allow(missing_docs)] + setBool(setBoolCall), + #[allow(missing_docs)] + setBytes32_0(setBytes32_0Call), + #[allow(missing_docs)] + setBytes32_1(setBytes32_1Call), + #[allow(missing_docs)] + setUint(setUintCall), + #[allow(missing_docs)] + version(versionCall), + } + impl StorageSetterCalls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [5u8, 40u8, 175u8, 226u8], + [33u8, 248u8, 167u8, 33u8], + [78u8, 145u8, 219u8, 8u8], + [84u8, 253u8, 77u8, 80u8], + [122u8, 225u8, 207u8, 202u8], + [166u8, 237u8, 86u8, 62u8], + [171u8, 253u8, 204u8, 237u8], + [189u8, 2u8, 208u8, 245u8], + [202u8, 68u8, 109u8, 217u8], + [226u8, 164u8, 133u8, 58u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(setBytes32_0), + ::core::stringify!(getAddress), + ::core::stringify!(setBytes32_1), + ::core::stringify!(version), + ::core::stringify!(getBool), + ::core::stringify!(getBytes32), + ::core::stringify!(setBool), + ::core::stringify!(getUint), + ::core::stringify!(setAddress), + ::core::stringify!(setUint), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for StorageSetterCalls { + const NAME: &'static str = "StorageSetterCalls"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 10usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::getAddress(_) => { + ::SELECTOR + } + Self::getBool(_) => ::SELECTOR, + Self::getBytes32(_) => { + ::SELECTOR + } + Self::getUint(_) => ::SELECTOR, + Self::setAddress(_) => { + ::SELECTOR + } + Self::setBool(_) => ::SELECTOR, + Self::setBytes32_0(_) => { + ::SELECTOR + } + Self::setBytes32_1(_) => { + ::SELECTOR + } + Self::setUint(_) => ::SELECTOR, + Self::version(_) => ::SELECTOR, + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn setBytes32_0( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(StorageSetterCalls::setBytes32_0) + } + setBytes32_0 + }, + { + fn getAddress( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(StorageSetterCalls::getAddress) + } + getAddress + }, + { + fn setBytes32_1( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(StorageSetterCalls::setBytes32_1) + } + setBytes32_1 + }, + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(StorageSetterCalls::version) + } + version + }, + { + fn getBool( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(StorageSetterCalls::getBool) + } + getBool + }, + { + fn getBytes32( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(StorageSetterCalls::getBytes32) + } + getBytes32 + }, + { + fn setBool( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(StorageSetterCalls::setBool) + } + setBool + }, + { + fn getUint( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(StorageSetterCalls::getUint) + } + getUint + }, + { + fn setAddress( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(StorageSetterCalls::setAddress) + } + setAddress + }, + { + fn setUint( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(StorageSetterCalls::setUint) + } + setUint + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn setBytes32_0( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(StorageSetterCalls::setBytes32_0) + } + setBytes32_0 + }, + { + fn getAddress( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(StorageSetterCalls::getAddress) + } + getAddress + }, + { + fn setBytes32_1( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(StorageSetterCalls::setBytes32_1) + } + setBytes32_1 + }, + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(StorageSetterCalls::version) + } + version + }, + { + fn getBool( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(StorageSetterCalls::getBool) + } + getBool + }, + { + fn getBytes32( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(StorageSetterCalls::getBytes32) + } + getBytes32 + }, + { + fn setBool( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(StorageSetterCalls::setBool) + } + setBool + }, + { + fn getUint( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(StorageSetterCalls::getUint) + } + getUint + }, + { + fn setAddress( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(StorageSetterCalls::setAddress) + } + setAddress + }, + { + fn setUint( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(StorageSetterCalls::setUint) + } + setUint + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::getAddress(inner) => { + ::abi_encoded_size(inner) + } + Self::getBool(inner) => { + ::abi_encoded_size(inner) + } + Self::getBytes32(inner) => { + ::abi_encoded_size(inner) + } + Self::getUint(inner) => { + ::abi_encoded_size(inner) + } + Self::setAddress(inner) => { + ::abi_encoded_size(inner) + } + Self::setBool(inner) => { + ::abi_encoded_size(inner) + } + Self::setBytes32_0(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::setBytes32_1(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::setUint(inner) => { + ::abi_encoded_size(inner) + } + Self::version(inner) => { + ::abi_encoded_size(inner) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::getAddress(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::getBool(inner) => { + ::abi_encode_raw(inner, out) + } + Self::getBytes32(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::getUint(inner) => { + ::abi_encode_raw(inner, out) + } + Self::setAddress(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::setBool(inner) => { + ::abi_encode_raw(inner, out) + } + Self::setBytes32_0(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::setBytes32_1(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::setUint(inner) => { + ::abi_encode_raw(inner, out) + } + Self::version(inner) => { + ::abi_encode_raw(inner, out) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`StorageSetter`](self) contract instance. + +See the [wrapper's documentation](`StorageSetterInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> StorageSetterInstance { + StorageSetterInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + StorageSetterInstance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + StorageSetterInstance::::deploy_builder(__provider) + } + /**A [`StorageSetter`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`StorageSetter`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct StorageSetterInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for StorageSetterInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("StorageSetterInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > StorageSetterInstance { + /**Creates a new wrapper around an on-chain [`StorageSetter`](self) contract instance. + +See the [wrapper's documentation](`StorageSetterInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl StorageSetterInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> StorageSetterInstance { + StorageSetterInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > StorageSetterInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`getAddress`] function. + pub fn getAddress( + &self, + _slot: alloy::sol_types::private::FixedBytes<32>, + ) -> alloy_contract::SolCallBuilder<&P, getAddressCall, N> { + self.call_builder(&getAddressCall { _slot }) + } + ///Creates a new call builder for the [`getBool`] function. + pub fn getBool( + &self, + _slot: alloy::sol_types::private::FixedBytes<32>, + ) -> alloy_contract::SolCallBuilder<&P, getBoolCall, N> { + self.call_builder(&getBoolCall { _slot }) + } + ///Creates a new call builder for the [`getBytes32`] function. + pub fn getBytes32( + &self, + _slot: alloy::sol_types::private::FixedBytes<32>, + ) -> alloy_contract::SolCallBuilder<&P, getBytes32Call, N> { + self.call_builder(&getBytes32Call { _slot }) + } + ///Creates a new call builder for the [`getUint`] function. + pub fn getUint( + &self, + _slot: alloy::sol_types::private::FixedBytes<32>, + ) -> alloy_contract::SolCallBuilder<&P, getUintCall, N> { + self.call_builder(&getUintCall { _slot }) + } + ///Creates a new call builder for the [`setAddress`] function. + pub fn setAddress( + &self, + _slot: alloy::sol_types::private::FixedBytes<32>, + _address: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, setAddressCall, N> { + self.call_builder(&setAddressCall { _slot, _address }) + } + ///Creates a new call builder for the [`setBool`] function. + pub fn setBool( + &self, + _slot: alloy::sol_types::private::FixedBytes<32>, + _value: bool, + ) -> alloy_contract::SolCallBuilder<&P, setBoolCall, N> { + self.call_builder(&setBoolCall { _slot, _value }) + } + ///Creates a new call builder for the [`setBytes32_0`] function. + pub fn setBytes32_0( + &self, + _slots: alloy::sol_types::private::Vec< + ::RustType, + >, + ) -> alloy_contract::SolCallBuilder<&P, setBytes32_0Call, N> { + self.call_builder(&setBytes32_0Call { _slots }) + } + ///Creates a new call builder for the [`setBytes32_1`] function. + pub fn setBytes32_1( + &self, + _slot: alloy::sol_types::private::FixedBytes<32>, + _value: alloy::sol_types::private::FixedBytes<32>, + ) -> alloy_contract::SolCallBuilder<&P, setBytes32_1Call, N> { + self.call_builder(&setBytes32_1Call { _slot, _value }) + } + ///Creates a new call builder for the [`setUint`] function. + pub fn setUint( + &self, + _slot: alloy::sol_types::private::FixedBytes<32>, + _value: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, setUintCall, N> { + self.call_builder(&setUintCall { _slot, _value }) + } + ///Creates a new call builder for the [`version`] function. + pub fn version(&self) -> alloy_contract::SolCallBuilder<&P, versionCall, N> { + self.call_builder(&versionCall) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > StorageSetterInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + } +} diff --git a/bindings/rust/src/super_fault_dispute_game.rs b/bindings/rust/src/super_fault_dispute_game.rs new file mode 100644 index 000000000..8105d6ff3 --- /dev/null +++ b/bindings/rust/src/super_fault_dispute_game.rs @@ -0,0 +1,16693 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface SuperFaultDisputeGame { + type BondDistributionMode is uint8; + type GameStatus is uint8; + type Claim is bytes32; + type Clock is uint128; + type Duration is uint64; + type GameType is uint32; + type Hash is bytes32; + type Position is uint128; + type Timestamp is uint64; + struct GameConstructorParams { + uint256 maxGameDepth; + uint256 splitDepth; + Duration clockExtension; + Duration maxClockDuration; + } + + error AlreadyInitialized(); + error AnchorRootNotFound(); + error BadExtraData(); + error BondTransferFailed(); + error CannotDefendRootClaim(); + error ClaimAboveSplit(); + error ClaimAlreadyExists(); + error ClaimAlreadyResolved(); + error ClockNotExpired(); + error ClockTimeExceeded(); + error DuplicateStep(); + error GameDepthExceeded(); + error GameNotFinalized(); + error GameNotInProgress(); + error GameNotResolved(); + error GamePaused(); + error IncorrectBondAmount(); + error InvalidBondDistributionMode(); + error InvalidChallengePeriod(); + error InvalidClockExtension(); + error InvalidDisputedClaimIndex(); + error InvalidLocalIdent(); + error InvalidParent(); + error InvalidPrestate(); + error InvalidSplitDepth(); + error MaxDepthTooLarge(); + error NoChainIdNeeded(); + error NoCreditToClaim(); + error OutOfOrderResolution(); + error SuperFaultDisputeGameInvalidRootClaim(); + error UnexpectedRootClaim(Claim rootClaim); + error ValidStep(); + + event GameClosed(BondDistributionMode bondDistributionMode); + event Move(uint256 indexed parentIndex, Claim indexed claim, address indexed claimant); + event Resolved(GameStatus indexed status); + + constructor(GameConstructorParams _params); + + function absolutePrestate() external pure returns (Claim absolutePrestate_); + function addLocalData(uint256 _ident, uint256 _execLeafIdx, uint256 _partOffset) external; + function anchorStateRegistry() external pure returns (address registry_); + function attack(Claim _disputed, uint256 _parentIndex, Claim _claim) external payable; + function bondDistributionMode() external view returns (BondDistributionMode); + function claimCredit(address _recipient) external; + function claimData(uint256) external view returns (uint32 parentIndex, address counteredBy, address claimant, uint128 bond, Claim claim, Position position, Clock clock); + function claimDataLen() external view returns (uint256 len_); + function claims(Hash) external view returns (bool); + function clockExtension() external view returns (Duration clockExtension_); + function closeGame() external; + function createdAt() external view returns (Timestamp); + function credit(address _recipient) external view returns (uint256 credit_); + function defend(Claim _disputed, uint256 _parentIndex, Claim _claim) external payable; + function extraData() external pure returns (bytes memory extraData_); + function gameCreator() external pure returns (address creator_); + function gameData() external pure returns (GameType gameType_, Claim rootClaim_, bytes memory extraData_); + function gameType() external pure returns (GameType gameType_); + function getChallengerDuration(uint256 _claimIndex) external view returns (Duration duration_); + function getNumToResolve(uint256 _claimIndex) external view returns (uint256 numRemainingChildren_); + function getRequiredBond(Position _position) external view returns (uint256 requiredBond_); + function hasUnlockedCredit(address) external view returns (bool); + function initialize() external payable; + function l1Head() external pure returns (Hash l1Head_); + function l2SequenceNumber() external pure returns (uint256 l2SequenceNumber_); + function maxClockDuration() external view returns (Duration maxClockDuration_); + function maxGameDepth() external view returns (uint256 maxGameDepth_); + function move(Claim _disputed, uint256 _challengeIndex, Claim _claim, bool _isAttack) external payable; + function normalModeCredit(address) external view returns (uint256); + function refundModeCredit(address) external view returns (uint256); + function resolutionCheckpoints(uint256) external view returns (bool initialCheckpointComplete, uint32 subgameIndex, Position leftmostPosition, address counteredBy); + function resolve() external returns (GameStatus status_); + function resolveClaim(uint256 _claimIndex, uint256 _numToResolve) external; + function resolvedAt() external view returns (Timestamp); + function resolvedSubgames(uint256) external view returns (bool); + function rootClaim() external pure returns (Claim rootClaim_); + function splitDepth() external view returns (uint256 splitDepth_); + function startingProposal() external view returns (Hash root, uint256 l2SequenceNumber); + function startingRootHash() external view returns (Hash startingRootHash_); + function startingSequenceNumber() external view returns (uint256 startingSequenceNumber_); + function status() external view returns (GameStatus); + function step(uint256 _claimIndex, bool _isAttack, bytes memory _stateData, bytes memory _proof) external; + function subgames(uint256, uint256) external view returns (uint256); + function version() external pure returns (string memory); + function vm() external pure returns (address vm_); + function wasRespectedGameTypeWhenCreated() external view returns (bool); + function weth() external pure returns (address weth_); +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "constructor", + "inputs": [ + { + "name": "_params", + "type": "tuple", + "internalType": "struct SuperFaultDisputeGame.GameConstructorParams", + "components": [ + { + "name": "maxGameDepth", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "splitDepth", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "clockExtension", + "type": "uint64", + "internalType": "Duration" + }, + { + "name": "maxClockDuration", + "type": "uint64", + "internalType": "Duration" + } + ] + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "absolutePrestate", + "inputs": [], + "outputs": [ + { + "name": "absolutePrestate_", + "type": "bytes32", + "internalType": "Claim" + } + ], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "addLocalData", + "inputs": [ + { + "name": "_ident", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_execLeafIdx", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_partOffset", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "anchorStateRegistry", + "inputs": [], + "outputs": [ + { + "name": "registry_", + "type": "address", + "internalType": "contract IAnchorStateRegistry" + } + ], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "attack", + "inputs": [ + { + "name": "_disputed", + "type": "bytes32", + "internalType": "Claim" + }, + { + "name": "_parentIndex", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_claim", + "type": "bytes32", + "internalType": "Claim" + } + ], + "outputs": [], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "bondDistributionMode", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint8", + "internalType": "enum BondDistributionMode" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "claimCredit", + "inputs": [ + { + "name": "_recipient", + "type": "address", + "internalType": "address" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "claimData", + "inputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "parentIndex", + "type": "uint32", + "internalType": "uint32" + }, + { + "name": "counteredBy", + "type": "address", + "internalType": "address" + }, + { + "name": "claimant", + "type": "address", + "internalType": "address" + }, + { + "name": "bond", + "type": "uint128", + "internalType": "uint128" + }, + { + "name": "claim", + "type": "bytes32", + "internalType": "Claim" + }, + { + "name": "position", + "type": "uint128", + "internalType": "Position" + }, + { + "name": "clock", + "type": "uint128", + "internalType": "Clock" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "claimDataLen", + "inputs": [], + "outputs": [ + { + "name": "len_", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "claims", + "inputs": [ + { + "name": "", + "type": "bytes32", + "internalType": "Hash" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "clockExtension", + "inputs": [], + "outputs": [ + { + "name": "clockExtension_", + "type": "uint64", + "internalType": "Duration" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "closeGame", + "inputs": [], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "createdAt", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint64", + "internalType": "Timestamp" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "credit", + "inputs": [ + { + "name": "_recipient", + "type": "address", + "internalType": "address" + } + ], + "outputs": [ + { + "name": "credit_", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "defend", + "inputs": [ + { + "name": "_disputed", + "type": "bytes32", + "internalType": "Claim" + }, + { + "name": "_parentIndex", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_claim", + "type": "bytes32", + "internalType": "Claim" + } + ], + "outputs": [], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "extraData", + "inputs": [], + "outputs": [ + { + "name": "extraData_", + "type": "bytes", + "internalType": "bytes" + } + ], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "gameCreator", + "inputs": [], + "outputs": [ + { + "name": "creator_", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "gameData", + "inputs": [], + "outputs": [ + { + "name": "gameType_", + "type": "uint32", + "internalType": "GameType" + }, + { + "name": "rootClaim_", + "type": "bytes32", + "internalType": "Claim" + }, + { + "name": "extraData_", + "type": "bytes", + "internalType": "bytes" + } + ], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "gameType", + "inputs": [], + "outputs": [ + { + "name": "gameType_", + "type": "uint32", + "internalType": "GameType" + } + ], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "getChallengerDuration", + "inputs": [ + { + "name": "_claimIndex", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "duration_", + "type": "uint64", + "internalType": "Duration" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "getNumToResolve", + "inputs": [ + { + "name": "_claimIndex", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "numRemainingChildren_", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "getRequiredBond", + "inputs": [ + { + "name": "_position", + "type": "uint128", + "internalType": "Position" + } + ], + "outputs": [ + { + "name": "requiredBond_", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "hasUnlockedCredit", + "inputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "initialize", + "inputs": [], + "outputs": [], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "l1Head", + "inputs": [], + "outputs": [ + { + "name": "l1Head_", + "type": "bytes32", + "internalType": "Hash" + } + ], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "l2SequenceNumber", + "inputs": [], + "outputs": [ + { + "name": "l2SequenceNumber_", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "maxClockDuration", + "inputs": [], + "outputs": [ + { + "name": "maxClockDuration_", + "type": "uint64", + "internalType": "Duration" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "maxGameDepth", + "inputs": [], + "outputs": [ + { + "name": "maxGameDepth_", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "move", + "inputs": [ + { + "name": "_disputed", + "type": "bytes32", + "internalType": "Claim" + }, + { + "name": "_challengeIndex", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_claim", + "type": "bytes32", + "internalType": "Claim" + }, + { + "name": "_isAttack", + "type": "bool", + "internalType": "bool" + } + ], + "outputs": [], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "normalModeCredit", + "inputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "refundModeCredit", + "inputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "resolutionCheckpoints", + "inputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "initialCheckpointComplete", + "type": "bool", + "internalType": "bool" + }, + { + "name": "subgameIndex", + "type": "uint32", + "internalType": "uint32" + }, + { + "name": "leftmostPosition", + "type": "uint128", + "internalType": "Position" + }, + { + "name": "counteredBy", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "resolve", + "inputs": [], + "outputs": [ + { + "name": "status_", + "type": "uint8", + "internalType": "enum GameStatus" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "resolveClaim", + "inputs": [ + { + "name": "_claimIndex", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_numToResolve", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "resolvedAt", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint64", + "internalType": "Timestamp" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "resolvedSubgames", + "inputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "rootClaim", + "inputs": [], + "outputs": [ + { + "name": "rootClaim_", + "type": "bytes32", + "internalType": "Claim" + } + ], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "splitDepth", + "inputs": [], + "outputs": [ + { + "name": "splitDepth_", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "startingProposal", + "inputs": [], + "outputs": [ + { + "name": "root", + "type": "bytes32", + "internalType": "Hash" + }, + { + "name": "l2SequenceNumber", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "startingRootHash", + "inputs": [], + "outputs": [ + { + "name": "startingRootHash_", + "type": "bytes32", + "internalType": "Hash" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "startingSequenceNumber", + "inputs": [], + "outputs": [ + { + "name": "startingSequenceNumber_", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "status", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint8", + "internalType": "enum GameStatus" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "step", + "inputs": [ + { + "name": "_claimIndex", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_isAttack", + "type": "bool", + "internalType": "bool" + }, + { + "name": "_stateData", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "_proof", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "subgames", + "inputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "version", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "vm", + "inputs": [], + "outputs": [ + { + "name": "vm_", + "type": "address", + "internalType": "contract IBigStepper" + } + ], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "wasRespectedGameTypeWhenCreated", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "weth", + "inputs": [], + "outputs": [ + { + "name": "weth_", + "type": "address", + "internalType": "contract IDelayedWETH" + } + ], + "stateMutability": "pure" + }, + { + "type": "event", + "name": "GameClosed", + "inputs": [ + { + "name": "bondDistributionMode", + "type": "uint8", + "indexed": false, + "internalType": "enum BondDistributionMode" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "Move", + "inputs": [ + { + "name": "parentIndex", + "type": "uint256", + "indexed": true, + "internalType": "uint256" + }, + { + "name": "claim", + "type": "bytes32", + "indexed": true, + "internalType": "Claim" + }, + { + "name": "claimant", + "type": "address", + "indexed": true, + "internalType": "address" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "Resolved", + "inputs": [ + { + "name": "status", + "type": "uint8", + "indexed": true, + "internalType": "enum GameStatus" + } + ], + "anonymous": false + }, + { + "type": "error", + "name": "AlreadyInitialized", + "inputs": [] + }, + { + "type": "error", + "name": "AnchorRootNotFound", + "inputs": [] + }, + { + "type": "error", + "name": "BadExtraData", + "inputs": [] + }, + { + "type": "error", + "name": "BondTransferFailed", + "inputs": [] + }, + { + "type": "error", + "name": "CannotDefendRootClaim", + "inputs": [] + }, + { + "type": "error", + "name": "ClaimAboveSplit", + "inputs": [] + }, + { + "type": "error", + "name": "ClaimAlreadyExists", + "inputs": [] + }, + { + "type": "error", + "name": "ClaimAlreadyResolved", + "inputs": [] + }, + { + "type": "error", + "name": "ClockNotExpired", + "inputs": [] + }, + { + "type": "error", + "name": "ClockTimeExceeded", + "inputs": [] + }, + { + "type": "error", + "name": "DuplicateStep", + "inputs": [] + }, + { + "type": "error", + "name": "GameDepthExceeded", + "inputs": [] + }, + { + "type": "error", + "name": "GameNotFinalized", + "inputs": [] + }, + { + "type": "error", + "name": "GameNotInProgress", + "inputs": [] + }, + { + "type": "error", + "name": "GameNotResolved", + "inputs": [] + }, + { + "type": "error", + "name": "GamePaused", + "inputs": [] + }, + { + "type": "error", + "name": "IncorrectBondAmount", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidBondDistributionMode", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidChallengePeriod", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidClockExtension", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidDisputedClaimIndex", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidLocalIdent", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidParent", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidPrestate", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidSplitDepth", + "inputs": [] + }, + { + "type": "error", + "name": "MaxDepthTooLarge", + "inputs": [] + }, + { + "type": "error", + "name": "NoChainIdNeeded", + "inputs": [] + }, + { + "type": "error", + "name": "NoCreditToClaim", + "inputs": [] + }, + { + "type": "error", + "name": "OutOfOrderResolution", + "inputs": [] + }, + { + "type": "error", + "name": "SuperFaultDisputeGameInvalidRootClaim", + "inputs": [] + }, + { + "type": "error", + "name": "UnexpectedRootClaim", + "inputs": [ + { + "name": "rootClaim", + "type": "bytes32", + "internalType": "Claim" + } + ] + }, + { + "type": "error", + "name": "ValidStep", + "inputs": [] + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod SuperFaultDisputeGame { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x6101006040523480156200001257600080fd5b5060405162005e7838038062005e788339810160408190526200003591620001e5565b620000436001607e6200027f565b60ff16816000015111156200006b57604051633beff19960e11b815260040160405180910390fd5b60001981602001511480620000925750805160208201516200008f906001620002a5565b10155b15620000b15760405163e62ccf3960e01b815260040160405180910390fd5b600281602001511015620000d85760405163e62ccf3960e01b815260040160405180910390fd5b6000620000fd82604001516001600160401b0316620001c560201b620029e61760201c565b62000113906001600160401b03166002620002c0565b90506001600160401b038111156200013e5760405163235dfb2b60e21b815260040160405180910390fd5b6200016182606001516001600160401b0316620001c560201b620029e61760201c565b6001600160401b0316816001600160401b03161115620001945760405163235dfb2b60e21b815260040160405180910390fd5b508051608052602081015160a05260408101516001600160401b0390811660e0526060909101511660c052620002e2565b90565b80516001600160401b0381168114620001e057600080fd5b919050565b600060808284031215620001f857600080fd5b604051608081016001600160401b03811182821017156200022957634e487b7160e01b600052604160045260246000fd5b806040525082518152602083015160208201526200024a60408401620001c8565b60408201526200025d60608401620001c8565b60608201529392505050565b634e487b7160e01b600052601160045260246000fd5b600060ff821660ff8416808210156200029c576200029c62000269565b90039392505050565b60008219821115620002bb57620002bb62000269565b500190565b6000816000190483118215151615620002dd57620002dd62000269565b500290565b60805160a05160c05160e051615a9f620003d9600039600081816106ef01528181611dc701528181611e3201528181611e6501528181612b920152612cd9015260008181610ad901528181610ca701528181611c2601528181611e9501528181611ef401528181612d64015281816134b001526134f2015260008181610b0c01528181611acc01528181611b9501528181611e03015281816139c1015281816142c601528181614a1501528181614b4301528181614c440152614d19015260008181610bb301528181611b3801528181611c8a015281816135c001528181613646015281816138b701526139e20152615a9f6000f3fe6080604052600436106103085760003560e01c8063786b844b1161019a578063c395e1ca116100e1578063ec5e63081161008a578063fa24f74311610064578063fa24f74314610b80578063fa315aa914610ba4578063fe2bbeb214610bd757600080fd5b8063ec5e630814610afd578063eff0f59214610b30578063f8f43ff614610b6057600080fd5b8063d5d44d80116100bb578063d5d44d8014610a8a578063d8cc1a3c14610aaa578063dabd396d14610aca57600080fd5b8063c395e1ca146109bf578063c6f0308c146109df578063cf09e0d014610a6957600080fd5b806399735e3211610143578063bcef3b551161011d578063bcef3b5514610932578063bd8da95614610972578063c0d8bb741461099257600080fd5b806399735e32146107db578063a445ece61461081b578063bbdc02db146108e757600080fd5b80638980e0cc116101745780638980e0cc146107565780638d450a951461076b578063938d689a146107ab57600080fd5b8063786b844b146107265780637b0f0adc1461073b5780638129fc1c1461074e57600080fd5b80633fc8cef31161025e5780635c0cba33116102075780636361506d116101e15780636361506d146106a05780636b6716c0146106e05780636f0344091461071357600080fd5b80635c0cba3314610628578063609d33341461066b57806360e274641461068057600080fd5b806354fd4d501161023857806354fd4d50146105a457806359cebe09146105f35780635a5fa2d91461060857600080fd5b80633fc8cef314610521578063472777c614610564578063529d6a8c1461057757600080fd5b806325fc2ace116102c0578063378dd48c1161029a578063378dd48c1461046357806337b1b2291461047d5780633a768463146104de57600080fd5b806325fc2ace1461040f5780632810e1d61461042e5780632ad69aeb1461044357600080fd5b8063200d2ed2116102f1578063200d2ed21461037a578063222abf45146103b5578063250e69bd146103f557600080fd5b806303c2924d1461030d57806319effeb41461032f575b600080fd5b34801561031957600080fd5b5061032d6103283660046152a5565b610c07565b005b34801561033b57600080fd5b5060005461035c9068010000000000000000900467ffffffffffffffff1681565b60405167ffffffffffffffff90911681526020015b60405180910390f35b34801561038657600080fd5b506000546103a890700100000000000000000000000000000000900460ff1681565b6040516103719190615330565b3480156103c157600080fd5b506103e56103d0366004615365565b600b6020526000908152604090205460ff1681565b6040519015158152602001610371565b34801561040157600080fd5b506009546103e59060ff1681565b34801561041b57600080fd5b506007545b604051908152602001610371565b34801561043a57600080fd5b506103a8611213565b34801561044f57600080fd5b5061042061045e3660046152a5565b611438565b34801561046f57600080fd5b50600c546103a89060ff1681565b34801561048957600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90033560601c5b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610371565b3480156104ea57600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036098013560601c6104b9565b34801561052d57600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360c0013560601c6104b9565b61032d610572366004615389565b61146e565b34801561058357600080fd5b50610420610592366004615365565b60026020526000908152604090205481565b3480156105b057600080fd5b5060408051808201909152600581527f302e362e3000000000000000000000000000000000000000000000000000000060208201525b6040516103719190615420565b3480156105ff57600080fd5b50600854610420565b34801561061457600080fd5b50610420610623366004615433565b611480565b34801561063457600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360ac013560601c6104b9565b34801561067757600080fd5b506105e66114ba565b34801561068c57600080fd5b5061032d61069b366004615365565b6114c8565b3480156106ac57600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360340135610420565b3480156106ec57600080fd5b507f000000000000000000000000000000000000000000000000000000000000000061035c565b61032d61072136600461545a565b61189b565b34801561073257600080fd5b5061032d61233f565b61032d610749366004615389565b612815565b61032d612822565b34801561076257600080fd5b50600154610420565b34801561077757600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360780135610420565b3480156107b757600080fd5b506007546008546107c6919082565b60408051928352602083019190915201610371565b3480156107e757600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360580135610420565b34801561082757600080fd5b50610893610836366004615433565b6006602052600090815260409020805460019091015460ff821691610100810463ffffffff1691650100000000009091046fffffffffffffffffffffffffffffffff169073ffffffffffffffffffffffffffffffffffffffff1684565b60408051941515855263ffffffff90931660208501526fffffffffffffffffffffffffffffffff9091169183019190915273ffffffffffffffffffffffffffffffffffffffff166060820152608001610371565b3480156108f357600080fd5b50604051367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036054013560e01c8152602001610371565b34801561093e57600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360140135610420565b34801561097e57600080fd5b5061035c61098d366004615433565b61333b565b34801561099e57600080fd5b506104206109ad366004615365565b600a6020526000908152604090205481565b3480156109cb57600080fd5b506104206109da36600461549b565b61351a565b3480156109eb57600080fd5b506109ff6109fa366004615433565b6136fd565b6040805163ffffffff909816885273ffffffffffffffffffffffffffffffffffffffff968716602089015295909416948601949094526fffffffffffffffffffffffffffffffff9182166060860152608085015291821660a08401521660c082015260e001610371565b348015610a7557600080fd5b5060005461035c9067ffffffffffffffff1681565b348015610a9657600080fd5b50610420610aa5366004615365565b613794565b348015610ab657600080fd5b5061032d610ac5366004615516565b613806565b348015610ad657600080fd5b507f000000000000000000000000000000000000000000000000000000000000000061035c565b348015610b0957600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610420565b348015610b3c57600080fd5b506103e5610b4b366004615433565b60036020526000908152604090205460ff1681565b348015610b6c57600080fd5b5061032d610b7b366004615389565b613e3c565b348015610b8c57600080fd5b50610b9561418f565b604051610371939291906155a2565b348015610bb057600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610420565b348015610be357600080fd5b506103e5610bf2366004615433565b60056020526000908152604090205460ff1681565b60008054700100000000000000000000000000000000900460ff166002811115610c3357610c336152c7565b14610c6a576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060018381548110610c7f57610c7f6155c7565b906000526020600020906005020190506000610c9a8461333b565b905067ffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000081169082161015610d03576040517ff2440b5300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008481526005602052604090205460ff1615610d4c576040517ff1a9458100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000848152600460205260409020805480158015610d6957508515155b15610e04578354640100000000900473ffffffffffffffffffffffffffffffffffffffff1660008115610d9c5781610db8565b600186015473ffffffffffffffffffffffffffffffffffffffff165b9050610dc481876141d7565b50505060009485525050600560205250506040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055565b6000868152600660209081526040918290208251608081018452815460ff81161515808352610100820463ffffffff16948301949094526501000000000090046fffffffffffffffffffffffffffffffff16938101939093526001015473ffffffffffffffffffffffffffffffffffffffff166060830152610ea7576fffffffffffffffffffffffffffffffff6040820152600181526000869003610ea7578195505b600086826020015163ffffffff16610ebf9190615625565b90506000838211610ed05781610ed2565b835b602084015190915063ffffffff165b8181101561101e576000868281548110610efd57610efd6155c7565b6000918252602080832090910154808352600590915260409091205490915060ff16610f55576040517f9a07664600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060018281548110610f6a57610f6a6155c7565b600091825260209091206005909102018054909150640100000000900473ffffffffffffffffffffffffffffffffffffffff16158015610fc75750600481015460408701516fffffffffffffffffffffffffffffffff9182169116115b1561100957600181015473ffffffffffffffffffffffffffffffffffffffff16606087015260048101546fffffffffffffffffffffffffffffffff1660408701525b505080806110169061563d565b915050610ee1565b5063ffffffff818116602085810191825260008c81526006909152604090819020865181549351928801517fffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000009094169015157fffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000ff161761010092909416918202939093177fffffffffffffffffffffff00000000000000000000000000000000ffffffffff16650100000000006fffffffffffffffffffffffffffffffff909316929092029190911782556060850151600190920180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9093169290921790915584900361120857606083015160008a815260056020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790556111bf73ffffffffffffffffffffffffffffffffffffffff82161561119d57816111b9565b600189015473ffffffffffffffffffffffffffffffffffffffff165b896141d7565b875473ffffffffffffffffffffffffffffffffffffffff909116640100000000027fffffffffffffffff0000000000000000000000000000000000000000ffffffff9091161787555b505050505050505050565b600080600054700100000000000000000000000000000000900460ff166002811115611241576112416152c7565b14611278576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000805260056020527f05b8ccbb9d4d8fb16ea74ce3c29a41f1b461fbdaff4714a0d9a8eb05499746bc5460ff166112dc576040517f9a07664600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166001600081548110611308576113086155c7565b6000918252602090912060059091020154640100000000900473ffffffffffffffffffffffffffffffffffffffff1614611343576001611346565b60025b6000805467ffffffffffffffff421668010000000000000000027fffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff82168117835592935083927fffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffff000000000000000000ffffffffffffffff909116177001000000000000000000000000000000008360028111156113f7576113f76152c7565b02179055600281111561140c5761140c6152c7565b6040517f5e186f09b9c93491f14e277eea7faa5de6a2d4bda75a79af7a3684fbfb42da6090600090a290565b6004602052816000526040600020818154811061145457600080fd5b90600052602060002001600091509150505481565b905090565b61147b838383600161189b565b505050565b600081815260066020908152604080832060049092528220805482546114b190610100900463ffffffff1682615675565b95945050505050565b606061146960586020614230565b6114d061233f565b60006002600c5460ff1660028111156114eb576114eb6152c7565b0361151c575073ffffffffffffffffffffffffffffffffffffffff81166000908152600a6020526040902054611598565b6001600c5460ff166002811115611535576115356152c7565b03611566575073ffffffffffffffffffffffffffffffffffffffff8116600090815260026020526040902054611598565b6040517f078a3df400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff82166000908152600b602052604090205460ff166116d95773ffffffffffffffffffffffffffffffffffffffff82166000908152600b6020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905561164b60c07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe369081013560f01c9003013560601c90565b6040517f7eee288d00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8481166004830152602482018490529190911690637eee288d90604401600060405180830381600087803b1580156116bd57600080fd5b505af11580156116d1573d6000803e3d6000fd5b505050505050565b80600003611713576040517f17bfe5f700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff82166000908152600a602090815260408083208390556002909152812055367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360c0013560601c6040517ff3fef3a300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff848116600483015260248201849052919091169063f3fef3a390604401600060405180830381600087803b1580156117e957600080fd5b505af11580156117fd573d6000803e3d6000fd5b5050505060008273ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d806000811461185b576040519150601f19603f3d011682016040523d82523d6000602084013e611860565b606091505b505090508061147b576040517f83e6cc6b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008054700100000000000000000000000000000000900460ff1660028111156118c7576118c76152c7565b146118fe576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060018481548110611913576119136155c7565b60009182526020918290206040805160e0810182526005909302909101805463ffffffff8116845273ffffffffffffffffffffffffffffffffffffffff64010000000090910481169484019490945260018101549093169082015260028201546fffffffffffffffffffffffffffffffff908116606083015260038301546080830181905260049093015480821660a084015270010000000000000000000000000000000090041660c0820152915085146119fa576040517f3014033200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60a0810151600083156fffffffffffffffffffffffffffffffff83161760011b90506000611aba826fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff169050861580611af55750611af27f00000000000000000000000000000000000000000000000000000000000000006002615625565b81145b8015611aff575084155b15611b36576040517fa42637bc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f0000000000000000000000000000000000000000000000000000000000000000811115611b90576040517f56f57b2b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611bbb7f00000000000000000000000000000000000000000000000000000000000000006001615625565b8103611bcd57611bcd86888588614282565b34611bd78361351a565b14611c0e576040517f8620aa1900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000611c198861333b565b905067ffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000811690821603611c81576040517f3381d11400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000611cae60017f0000000000000000000000000000000000000000000000000000000000000000615675565b8303611dfc57367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036098013560601c73ffffffffffffffffffffffffffffffffffffffff16637dc0d1d06040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d2f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d53919061568c565b73ffffffffffffffffffffffffffffffffffffffff1663f3f480d96040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dc191906156a9565b611df5907f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff166156c2565b9050611e8f565b611e2760017f0000000000000000000000000000000000000000000000000000000000000000615675565b8303611e6257611df57f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff1660026156ee565b507f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff165b611ec3817f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff1661571e565b67ffffffffffffffff16611ede8367ffffffffffffffff1690565b67ffffffffffffffff161115611f2557611f22817f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff1661571e565b91505b6000604083901b421760008a8152608087901b6fffffffffffffffffffffffffffffffff8d1617602052604081209192509060008181526003602052604090205490915060ff1615611fa3576040517f80497e3b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60016003600083815260200190815260200160002060006101000a81548160ff02191690831515021790555060016040518060e001604052808d63ffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020013373ffffffffffffffffffffffffffffffffffffffff168152602001346fffffffffffffffffffffffffffffffff1681526020018c8152602001886fffffffffffffffffffffffffffffffff168152602001846fffffffffffffffffffffffffffffffff16815250908060018154018082558091505060019003906000526020600020906005020160009091909190915060008201518160000160006101000a81548163ffffffff021916908363ffffffff16021790555060208201518160000160046101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060608201518160020160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055506080820151816003015560a08201518160040160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555060c08201518160040160106101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055505050600460008c8152602001908152602001600020600180805490506122389190615675565b81546001810183556000928352602080842090910191909155338252600a905260408120805434929061226c908490615625565b9091555050367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360c0013560601c73ffffffffffffffffffffffffffffffffffffffff1663d0e30db0346040518263ffffffff1660e01b81526004016000604051808303818588803b1580156122e957600080fd5b505af11580156122fd573d6000803e3d6000fd5b50506040513393508d92508e91507f9b3245740ec3b155098a55be84957a4da13eaf7f14a8bc6f53126c0b9350f2be90600090a4505050505050505050505050565b367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360ac013560601c73ffffffffffffffffffffffffffffffffffffffff16635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156123ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123de9190615747565b15612415576040517f379a7ed900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600c5460ff16600281111561242e5761242e6152c7565b148061245057506001600c5460ff16600281111561244e5761244e6152c7565b145b1561245757565b6000600c5460ff166002811115612470576124706152c7565b146124a7576040517f078a3df400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005468010000000000000000900467ffffffffffffffff1667ffffffffffffffff16600003612503576040517fc105260a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360ac013560601c6040517f0314d2b300000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff9190911690630314d2b390602401602060405180830381865afa1580156125a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125c69190615747565b9050806125ff576040517f4851bd9b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360ac013560601c6040517f17cf21a900000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906317cf21a990602401600060405180830381600087803b15801561269957600080fd5b505af19250505080156126aa575060015b506000367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360ac013560601c6040517f496b9c1600000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff919091169063496b9c1690602401602060405180830381865afa15801561274a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061276e9190615747565b905080156127a657600c80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790556127d2565b600c80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660021790555b600c546040517f9908eaac0645df9d0704d06adc9e07337c951de2f06b5f2836151d48d5e4722f916128099160ff90911690615330565b60405180910390a15050565b61147b838383600061189b565b60005471010000000000000000000000000000000000900460ff1615612874576040517f0dc149f000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61287c61443c565b36146128b4576040517f9824bdab00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360ac013560601c73ffffffffffffffffffffffffffffffffffffffff1663d83ef2676040518163ffffffff1660e01b81526004016040805180830381865afa158015612931573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129559190615764565b909250905081612991576040517f6a6bc3b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fffd7db0f9d5cdeb49c4c9eba649d4dc6d852d64671e65488e57f58584992ac686129e9367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036014013590565b90565b03612a20576040517f2cfac08200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604080518082019091528281526020018190526007829055600881905567ffffffffffffffff367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036098013560601c73ffffffffffffffffffffffffffffffffffffffff16637dc0d1d06040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ac1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ae5919061568c565b73ffffffffffffffffffffffffffffffffffffffff1663f3f480d96040518163ffffffff1660e01b8152600401602060405180830381865afa158015612b2f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b5391906156a9565b1115612b8b576040517fb4e1243300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000612bc27f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff166002615788565b90506000367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036098013560601c73ffffffffffffffffffffffffffffffffffffffff16637dc0d1d06040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c41573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c65919061568c565b73ffffffffffffffffffffffffffffffffffffffff1663f3f480d96040518163ffffffff1660e01b8152600401602060405180830381865afa158015612caf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cd391906156a9565b612d07907f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff16615625565b90506000612d15838361444a565b905067ffffffffffffffff811115612d59576040517f8d77ecac00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b67ffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001667ffffffffffffffff168167ffffffffffffffff161115612dd1576040517f8d77ecac00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360d4013515612e36576040517f223db39400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b83367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036058013511612ed0576040517ff40239db000000000000000000000000000000000000000000000000000000008152367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036014013560048201526024015b60405180910390fd5b6040805160e08101825263ffffffff80825260006020808401828152367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90038035606090811c8789018181526fffffffffffffffffffffffffffffffff34818116948b0194855260149095013560808b01908152600160a08c0181815242841660c08e0190815282548084018455928c529c517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6600590930292830180549a5191909d167fffffffffffffffff000000000000000000000000000000000000000000000000909a169990991764010000000073ffffffffffffffffffffffffffffffffffffffff9a8b160217909b5592517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf7840180547fffffffffffffffffffffffff000000000000000000000000000000000000000016919098161790965592517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf8820180547fffffffffffffffffffffffffffffffff000000000000000000000000000000001691851691909117905593517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf9850155955196519681167001000000000000000000000000000000009790911696909602959095177fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cfa909101558154710100000000000000000000000000000000007fffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff909116178255918152600a909152918220805491929091613151908490615625565b9091555050367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360c0013560601c73ffffffffffffffffffffffffffffffffffffffff1663d0e30db0346040518263ffffffff1660e01b81526004016000604051808303818588803b1580156131ce57600080fd5b505af11580156131e2573d6000803e3d6000fd5b5050600080547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000164267ffffffffffffffff161790555061322591506133079050565b63ffffffff16367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360ac013560601c73ffffffffffffffffffffffffffffffffffffffff16633c9f397c6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156132a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132ca91906157c5565b600980547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001663ffffffff92909216929092141790555050505050565b367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036054013560e01c90565b600080600054700100000000000000000000000000000000900460ff166002811115613369576133696152c7565b146133a0576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600183815481106133b5576133b56155c7565b600091825260208220600590910201805490925063ffffffff9081161461342457815460018054909163ffffffff169081106133f3576133f36155c7565b906000526020600020906005020160040160109054906101000a90046fffffffffffffffffffffffffffffffff1690505b600482015460009061345c90700100000000000000000000000000000000900467ffffffffffffffff165b67ffffffffffffffff1690565b6134709067ffffffffffffffff1642615675565b61348f61344f846fffffffffffffffffffffffffffffffff1660401c90565b67ffffffffffffffff166134a39190615625565b905067ffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001667ffffffffffffffff168167ffffffffffffffff16116134f057806114b1565b7f000000000000000000000000000000000000000000000000000000000000000095945050505050565b6000806135b9836fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff1690507f0000000000000000000000000000000000000000000000000000000000000000811115613618576040517f56f57b2b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b642e90edd00062061a806311e1a3006000613633838361581a565b9050670de0b6b3a7640000600061366a827f0000000000000000000000000000000000000000000000000000000000000000615788565b90506000613688613683670de0b6b3a764000086615788565b614465565b9050600061369684846146c0565b905060006136a4838361470f565b905060006136b18261473d565b905060006136d0826136cb670de0b6b3a76400008f615788565b614925565b905060006136de8b8361470f565b90506136ea818d615788565b9f9e505050505050505050505050505050565b6001818154811061370d57600080fd5b60009182526020909120600590910201805460018201546002830154600384015460049094015463ffffffff8416955064010000000090930473ffffffffffffffffffffffffffffffffffffffff908116949216926fffffffffffffffffffffffffffffffff91821692918082169170010000000000000000000000000000000090041687565b60006002600c5460ff1660028111156137af576137af6152c7565b036137dd575073ffffffffffffffffffffffffffffffffffffffff166000908152600a602052604090205490565b5073ffffffffffffffffffffffffffffffffffffffff1660009081526002602052604090205490565b60008054700100000000000000000000000000000000900460ff166002811115613832576138326152c7565b14613869576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006001878154811061387e5761387e6155c7565b6000918252602082206005919091020160048101549092506fffffffffffffffffffffffffffffffff16908715821760011b90506138dd7f00000000000000000000000000000000000000000000000000000000000000006001615625565b613979826fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff16146139b3576040517f5f53dd9800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000808915613ab757613a067f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000615675565b6001901b613a25846fffffffffffffffffffffffffffffffff16614956565b6fffffffffffffffffffffffffffffffff16613a41919061582e565b15613a7e57613a75613a6660016fffffffffffffffffffffffffffffffff8716615842565b865463ffffffff1660006149f5565b60030154613aad565b367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c9003607801355b9150849050613ae1565b60038501549150613ade613a666fffffffffffffffffffffffffffffffff8616600161586b565b90505b600882901b60088a8a604051613af8929190615896565b6040518091039020901b14613b39576040517f696550ff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000613b448c614ad9565b90506000613b53836003015490565b6040517fe14ced32000000000000000000000000000000000000000000000000000000008152367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036098013560601c9063e14ced3290613bc7908f908f908f908f908a906004016158ef565b6020604051808303816000875af1158015613be6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c0a91906156a9565b600485015491149150600090600290613cb5906fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b613d51896fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b613d5b9190615929565b613d65919061594c565b60ff161590508115158103613da6576040517ffb4e40dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8754640100000000900473ffffffffffffffffffffffffffffffffffffffff1615613dfd576040517f9071e6af00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505085547fffffffffffffffff0000000000000000000000000000000000000000ffffffff163364010000000002179095555050505050505050505050565b60008054700100000000000000000000000000000000900460ff166002811115613e6857613e686152c7565b14613e9f576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080600080613eae86614b08565b93509350935093506000613ec485858585614f11565b90506000367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036098013560601c73ffffffffffffffffffffffffffffffffffffffff16637dc0d1d06040518163ffffffff1660e01b8152600401602060405180830381865afa158015613f43573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f67919061568c565b90506001890361405f5773ffffffffffffffffffffffffffffffffffffffff81166352f0f3ad8a84613fc3367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036034013590565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e086901b16815260048101939093526024830191909152604482015260206064820152608481018a905260a4015b6020604051808303816000875af1158015614035573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061405991906156a9565b50611208565b6002890361408b5773ffffffffffffffffffffffffffffffffffffffff81166352f0f3ad8a8489613fc3565b600389036140b75773ffffffffffffffffffffffffffffffffffffffff81166352f0f3ad8a8487613fc3565b6004890361415d576040517f52f0f3ad000000000000000000000000000000000000000000000000000000008152600481018a905260248101839052367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036058013560c01b6044820152600860648201526084810188905273ffffffffffffffffffffffffffffffffffffffff8216906352f0f3ad9060a401614016565b6040517fff137e6500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c9003605481013560e01c906014013560606141d06114ba565b9050909192565b60028082015473ffffffffffffffffffffffffffffffffffffffff841660009081526020929092526040822080546fffffffffffffffffffffffffffffffff909216929091614227908490615625565b90915550505050565b604051818152367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90038284820160208401378260208301016000815260208101604052505092915050565b60006142a16fffffffffffffffffffffffffffffffff8416600161586b565b905060006142b1828660016149f5565b9050600086901a838061439d57506142ea60027f000000000000000000000000000000000000000000000000000000000000000061582e565b600483015460029061438e906fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b614398919061594c565b60ff16145b156143f55760ff8116600114806143b7575060ff81166002145b6143f0576040517ff40239db00000000000000000000000000000000000000000000000000000000815260048101889052602401612ec7565b614433565b60ff811615614433576040517ff40239db00000000000000000000000000000000000000000000000000000000815260048101889052602401612ec7565b50505050505050565b600061146960f46006615625565b60008183101561445a578161445c565b825b90505b92915050565b6fffffffffffffffffffffffffffffffff811160071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b17600082136144c457631615e6386000526004601cfd5b7ff8f9f9faf9fdfafbf9fdfcfdfafbfcfef9fafdfafcfcfbfefafafcfbffffffff6f8421084210842108cc6318c6db6d54be83831c1c601f161a1890811b609f90811c6c465772b2bbbb5f824b15207a3081018102606090811d6d0388eaa27412d5aca026815d636e018202811d6d0df99ac502031bf953eff472fdcc018202811d6d13cdffb29d51d99322bdff5f2211018202811d6d0a0f742023def783a307a986912e018202811d6d01920d8043ca89b5239253284e42018202811d6c0b7a86d7375468fac667a0a527016c29508e458543d8aa4df2abee7883018302821d6d0139601a2efabe717e604cbb4894018302821d6d02247f7a7b6594320649aa03aba1018302821d7fffffffffffffffffffffffffffffffffffffff73c0c716a594e00d54e3c4cbc9018302821d7ffffffffffffffffffffffffffffffffffffffdc7b88c420e53a9890533129f6f01830290911d7fffffffffffffffffffffffffffffffffffffff465fda27eb4d63ded474e5f832019091027ffffffffffffffff5f6af8f7b3396644f18e157960000000000000000000000000105711340daa0d5f769dba1915cef59f0815a5506029190037d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b302017d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b88642840160ae1d90565b60007812725dd1d243aba0e75fe645cc4873f9e65afe688c928e1f218311670de0b6b3a7640000021582026146fd57637c5f487d6000526004601cfd5b50670de0b6b3a7640000919091020490565b60008160001904831182021561472d5763bac65e5b6000526004601cfd5b50670de0b6b3a764000091020490565b60007ffffffffffffffffffffffffffffffffffffffffffffffffdc0d0570925a462d7821361476b57919050565b680755bf798b4a1bf1e582126147895763a37bfec96000526004601cfd5b6503782dace9d9604e83901b059150600060606bb17217f7d1cf79abc9e3b39884821b056b80000000000000000000000001901d6bb17217f7d1cf79abc9e3b39881029093037fffffffffffffffffffffffffffffffffffffffdbf3ccf1604d263450f02a550481018102606090811d6d0277594991cfc85f6e2461837cd9018202811d7fffffffffffffffffffffffffffffffffffffe5adedaa1cb095af9e4da10e363c018202811d6db1bbb201f443cf962f1a1d3db4a5018202811d7ffffffffffffffffffffffffffffffffffffd38dc772608b0ae56cce01296c0eb018202811d6e05180bb14799ab47a8a8cb2a527d57016d02d16720577bd19bf614176fe9ea6c10fe68e7fd37d0007b713f765084018402831d9081019084017ffffffffffffffffffffffffffffffffffffffe2c69812cf03b0763fd454a8f7e010290911d6e0587f503bb6ea29d25fcb7401964500190910279d835ebba824c98fb31b83b2ca45c000000000000000000000000010574029d9dc38563c32e5c2f6dc192ee70ef65f9978af30260c3939093039290921c92915050565b600061445c670de0b6b3a76400008361493d86614465565b614947919061596e565b6149519190615a2a565b61473d565b6000806149e3837e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b600160ff919091161b90920392915050565b60008082614a3e57614a396fffffffffffffffffffffffffffffffff86167f0000000000000000000000000000000000000000000000000000000000000000614fcb565b614a59565b614a59856fffffffffffffffffffffffffffffffff16615157565b905060018481548110614a6e57614a6e6155c7565b906000526020600020906005020191505b60048201546fffffffffffffffffffffffffffffffff828116911614614ad157815460018054909163ffffffff16908110614abc57614abc6155c7565b90600052602060002090600502019150614a7f565b509392505050565b6000806000806000614aea86614b08565b9350935093509350614afe84848484614f11565b9695505050505050565b6000806000806000859050600060018281548110614b2857614b286155c7565b600091825260209091206004600590920201908101549091507f000000000000000000000000000000000000000000000000000000000000000090614bff906fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff1611614c39576040517fb34b5c2200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000815b60048301547f000000000000000000000000000000000000000000000000000000000000000090614d00906fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff169250821115614d7557825463ffffffff16614d3f7f00000000000000000000000000000000000000000000000000000000000000006001615625565b8303614d49578391505b60018181548110614d5c57614d5c6155c7565b9060005260206000209060050201935080945050614c3d565b600481810154908401546fffffffffffffffffffffffffffffffff91821691166000816fffffffffffffffffffffffffffffffff16614dde614dc9856fffffffffffffffffffffffffffffffff1660011c90565b6fffffffffffffffffffffffffffffffff1690565b6fffffffffffffffffffffffffffffffff161490508015614ead576000614e16836fffffffffffffffffffffffffffffffff16614956565b6fffffffffffffffffffffffffffffffff161115614e81576000614e58614e5060016fffffffffffffffffffffffffffffffff8616615842565b8960016149f5565b6003810154600490910154909c506fffffffffffffffffffffffffffffffff169a50614e879050565b6007549a505b600386015460048701549099506fffffffffffffffffffffffffffffffff169750614f03565b6000614ecf614e506fffffffffffffffffffffffffffffffff8516600161586b565b6003808901546004808b015492840154930154909e506fffffffffffffffffffffffffffffffff9182169d50919b50169850505b505050505050509193509193565b60006fffffffffffffffffffffffffffffffff841615614f7e5760408051602081018790526fffffffffffffffffffffffffffffffff8087169282019290925260608101859052908316608082015260a001604051602081830303815290604052805190602001206114b1565b8282604051602001614fac9291909182526fffffffffffffffffffffffffffffffff16602082015260400190565b6040516020818303038152906040528051906020012095945050505050565b60008161506a846fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff16116150805763b34b5c226000526004601cfd5b61508983615157565b905081615128826fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff161161445f5761445c61513e836001615625565b6fffffffffffffffffffffffffffffffff8316906151fc565b600081196001830116816151eb827e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff169390931c8015179392505050565b600080615289847e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff169050808303600180821b0385821b179250505092915050565b600080604083850312156152b857600080fd5b50508035926020909101359150565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6003811061532d577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b50565b6020810161533d836152f6565b91905290565b73ffffffffffffffffffffffffffffffffffffffff8116811461532d57600080fd5b60006020828403121561537757600080fd5b813561538281615343565b9392505050565b60008060006060848603121561539e57600080fd5b505081359360208301359350604090920135919050565b6000815180845260005b818110156153db576020818501810151868301820152016153bf565b818111156153ed576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60208152600061445c60208301846153b5565b60006020828403121561544557600080fd5b5035919050565b801515811461532d57600080fd5b6000806000806080858703121561547057600080fd5b84359350602085013592506040850135915060608501356154908161544c565b939692955090935050565b6000602082840312156154ad57600080fd5b81356fffffffffffffffffffffffffffffffff8116811461538257600080fd5b60008083601f8401126154df57600080fd5b50813567ffffffffffffffff8111156154f757600080fd5b60208301915083602082850101111561550f57600080fd5b9250929050565b6000806000806000806080878903121561552f57600080fd5b8635955060208701356155418161544c565b9450604087013567ffffffffffffffff8082111561555e57600080fd5b61556a8a838b016154cd565b9096509450606089013591508082111561558357600080fd5b5061559089828a016154cd565b979a9699509497509295939492505050565b63ffffffff841681528260208201526060604082015260006114b160608301846153b5565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008219821115615638576156386155f6565b500190565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361566e5761566e6155f6565b5060010190565b600082821015615687576156876155f6565b500390565b60006020828403121561569e57600080fd5b815161538281615343565b6000602082840312156156bb57600080fd5b5051919050565b600067ffffffffffffffff8083168185168083038211156156e5576156e56155f6565b01949350505050565b600067ffffffffffffffff80831681851681830481118215151615615715576157156155f6565b02949350505050565b600067ffffffffffffffff8381169083168181101561573f5761573f6155f6565b039392505050565b60006020828403121561575957600080fd5b81516153828161544c565b6000806040838503121561577757600080fd5b505080516020909101519092909150565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156157c0576157c06155f6565b500290565b6000602082840312156157d757600080fd5b815163ffffffff8116811461538257600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600082615829576158296157eb565b500490565b60008261583d5761583d6157eb565b500690565b60006fffffffffffffffffffffffffffffffff8381169083168181101561573f5761573f6155f6565b60006fffffffffffffffffffffffffffffffff8083168185168083038211156156e5576156e56155f6565b8183823760009101908152919050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b6060815260006159036060830187896158a6565b82810360208401526159168186886158a6565b9150508260408301529695505050505050565b600060ff821660ff841680821015615943576159436155f6565b90039392505050565b600060ff83168061595f5761595f6157eb565b8060ff84160691505092915050565b60007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6000841360008413858304851182821616156159af576159af6155f6565b7f800000000000000000000000000000000000000000000000000000000000000060008712868205881281841616156159ea576159ea6155f6565b60008712925087820587128484161615615a0657615a066155f6565b87850587128184161615615a1c57615a1c6155f6565b505050929093029392505050565b600082615a3957615a396157eb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83147f800000000000000000000000000000000000000000000000000000000000000083141615615a8d57615a8d6155f6565b50059056fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"a\x01\0`@R4\x80\x15b\0\0\x12W`\0\x80\xFD[P`@Qb\0^x8\x03\x80b\0^x\x839\x81\x01`@\x81\x90Rb\0\x005\x91b\0\x01\xE5V[b\0\0C`\x01`~b\0\x02\x7FV[`\xFF\x16\x81`\0\x01Q\x11\x15b\0\0kW`@Qc;\xEF\xF1\x99`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0\x19\x81` \x01Q\x14\x80b\0\0\x92WP\x80Q` \x82\x01Qb\0\0\x8F\x90`\x01b\0\x02\xA5V[\x10\x15[\x15b\0\0\xB1W`@Qc\xE6,\xCF9`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x02\x81` \x01Q\x10\x15b\0\0\xD8W`@Qc\xE6,\xCF9`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0b\0\0\xFD\x82`@\x01Q`\x01`\x01`@\x1B\x03\x16b\0\x01\xC5` \x1Bb\0)\xE6\x17` \x1CV[b\0\x01\x13\x90`\x01`\x01`@\x1B\x03\x16`\x02b\0\x02\xC0V[\x90P`\x01`\x01`@\x1B\x03\x81\x11\x15b\0\x01>W`@Qc#]\xFB+`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[b\0\x01a\x82``\x01Q`\x01`\x01`@\x1B\x03\x16b\0\x01\xC5` \x1Bb\0)\xE6\x17` \x1CV[`\x01`\x01`@\x1B\x03\x16\x81`\x01`\x01`@\x1B\x03\x16\x11\x15b\0\x01\x94W`@Qc#]\xFB+`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[P\x80Q`\x80R` \x81\x01Q`\xA0R`@\x81\x01Q`\x01`\x01`@\x1B\x03\x90\x81\x16`\xE0R``\x90\x91\x01Q\x16`\xC0Rb\0\x02\xE2V[\x90V[\x80Q`\x01`\x01`@\x1B\x03\x81\x16\x81\x14b\0\x01\xE0W`\0\x80\xFD[\x91\x90PV[`\0`\x80\x82\x84\x03\x12\x15b\0\x01\xF8W`\0\x80\xFD[`@Q`\x80\x81\x01`\x01`\x01`@\x1B\x03\x81\x11\x82\x82\x10\x17\x15b\0\x02)WcNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[\x80`@RP\x82Q\x81R` \x83\x01Q` \x82\x01Rb\0\x02J`@\x84\x01b\0\x01\xC8V[`@\x82\x01Rb\0\x02]``\x84\x01b\0\x01\xC8V[``\x82\x01R\x93\x92PPPV[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[`\0`\xFF\x82\x16`\xFF\x84\x16\x80\x82\x10\x15b\0\x02\x9CWb\0\x02\x9Cb\0\x02iV[\x90\x03\x93\x92PPPV[`\0\x82\x19\x82\x11\x15b\0\x02\xBBWb\0\x02\xBBb\0\x02iV[P\x01\x90V[`\0\x81`\0\x19\x04\x83\x11\x82\x15\x15\x16\x15b\0\x02\xDDWb\0\x02\xDDb\0\x02iV[P\x02\x90V[`\x80Q`\xA0Q`\xC0Q`\xE0QaZ\x9Fb\0\x03\xD9`\09`\0\x81\x81a\x06\xEF\x01R\x81\x81a\x1D\xC7\x01R\x81\x81a\x1E2\x01R\x81\x81a\x1Ee\x01R\x81\x81a+\x92\x01Ra,\xD9\x01R`\0\x81\x81a\n\xD9\x01R\x81\x81a\x0C\xA7\x01R\x81\x81a\x1C&\x01R\x81\x81a\x1E\x95\x01R\x81\x81a\x1E\xF4\x01R\x81\x81a-d\x01R\x81\x81a4\xB0\x01Ra4\xF2\x01R`\0\x81\x81a\x0B\x0C\x01R\x81\x81a\x1A\xCC\x01R\x81\x81a\x1B\x95\x01R\x81\x81a\x1E\x03\x01R\x81\x81a9\xC1\x01R\x81\x81aB\xC6\x01R\x81\x81aJ\x15\x01R\x81\x81aKC\x01R\x81\x81aLD\x01RaM\x19\x01R`\0\x81\x81a\x0B\xB3\x01R\x81\x81a\x1B8\x01R\x81\x81a\x1C\x8A\x01R\x81\x81a5\xC0\x01R\x81\x81a6F\x01R\x81\x81a8\xB7\x01Ra9\xE2\x01RaZ\x9F`\0\xF3\xFE`\x80`@R`\x046\x10a\x03\x08W`\x005`\xE0\x1C\x80cxk\x84K\x11a\x01\x9AW\x80c\xC3\x95\xE1\xCA\x11a\0\xE1W\x80c\xEC^c\x08\x11a\0\x8AW\x80c\xFA$\xF7C\x11a\0dW\x80c\xFA$\xF7C\x14a\x0B\x80W\x80c\xFA1Z\xA9\x14a\x0B\xA4W\x80c\xFE+\xBE\xB2\x14a\x0B\xD7W`\0\x80\xFD[\x80c\xEC^c\x08\x14a\n\xFDW\x80c\xEF\xF0\xF5\x92\x14a\x0B0W\x80c\xF8\xF4?\xF6\x14a\x0B`W`\0\x80\xFD[\x80c\xD5\xD4M\x80\x11a\0\xBBW\x80c\xD5\xD4M\x80\x14a\n\x8AW\x80c\xD8\xCC\x1A<\x14a\n\xAAW\x80c\xDA\xBD9m\x14a\n\xCAW`\0\x80\xFD[\x80c\xC3\x95\xE1\xCA\x14a\t\xBFW\x80c\xC6\xF00\x8C\x14a\t\xDFW\x80c\xCF\t\xE0\xD0\x14a\niW`\0\x80\xFD[\x80c\x99s^2\x11a\x01CW\x80c\xBC\xEF;U\x11a\x01\x1DW\x80c\xBC\xEF;U\x14a\t2W\x80c\xBD\x8D\xA9V\x14a\trW\x80c\xC0\xD8\xBBt\x14a\t\x92W`\0\x80\xFD[\x80c\x99s^2\x14a\x07\xDBW\x80c\xA4E\xEC\xE6\x14a\x08\x1BW\x80c\xBB\xDC\x02\xDB\x14a\x08\xE7W`\0\x80\xFD[\x80c\x89\x80\xE0\xCC\x11a\x01tW\x80c\x89\x80\xE0\xCC\x14a\x07VW\x80c\x8DE\n\x95\x14a\x07kW\x80c\x93\x8Dh\x9A\x14a\x07\xABW`\0\x80\xFD[\x80cxk\x84K\x14a\x07&W\x80c{\x0F\n\xDC\x14a\x07;W\x80c\x81)\xFC\x1C\x14a\x07NW`\0\x80\xFD[\x80c?\xC8\xCE\xF3\x11a\x02^W\x80c\\\x0C\xBA3\x11a\x02\x07W\x80ccaPm\x11a\x01\xE1W\x80ccaPm\x14a\x06\xA0W\x80ckg\x16\xC0\x14a\x06\xE0W\x80co\x03D\t\x14a\x07\x13W`\0\x80\xFD[\x80c\\\x0C\xBA3\x14a\x06(W\x80c`\x9D34\x14a\x06kW\x80c`\xE2td\x14a\x06\x80W`\0\x80\xFD[\x80cT\xFDMP\x11a\x028W\x80cT\xFDMP\x14a\x05\xA4W\x80cY\xCE\xBE\t\x14a\x05\xF3W\x80cZ_\xA2\xD9\x14a\x06\x08W`\0\x80\xFD[\x80c?\xC8\xCE\xF3\x14a\x05!W\x80cG'w\xC6\x14a\x05dW\x80cR\x9Dj\x8C\x14a\x05wW`\0\x80\xFD[\x80c%\xFC*\xCE\x11a\x02\xC0W\x80c7\x8D\xD4\x8C\x11a\x02\x9AW\x80c7\x8D\xD4\x8C\x14a\x04cW\x80c7\xB1\xB2)\x14a\x04}W\x80c:v\x84c\x14a\x04\xDEW`\0\x80\xFD[\x80c%\xFC*\xCE\x14a\x04\x0FW\x80c(\x10\xE1\xD6\x14a\x04.W\x80c*\xD6\x9A\xEB\x14a\x04CW`\0\x80\xFD[\x80c \r.\xD2\x11a\x02\xF1W\x80c \r.\xD2\x14a\x03zW\x80c\"*\xBFE\x14a\x03\xB5W\x80c%\x0Ei\xBD\x14a\x03\xF5W`\0\x80\xFD[\x80c\x03\xC2\x92M\x14a\x03\rW\x80c\x19\xEF\xFE\xB4\x14a\x03/W[`\0\x80\xFD[4\x80\x15a\x03\x19W`\0\x80\xFD[Pa\x03-a\x03(6`\x04aR\xA5V[a\x0C\x07V[\0[4\x80\x15a\x03;W`\0\x80\xFD[P`\0Ta\x03\\\x90h\x01\0\0\0\0\0\0\0\0\x90\x04g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[`@Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[4\x80\x15a\x03\x86W`\0\x80\xFD[P`\0Ta\x03\xA8\x90p\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16\x81V[`@Qa\x03q\x91\x90aS0V[4\x80\x15a\x03\xC1W`\0\x80\xFD[Pa\x03\xE5a\x03\xD06`\x04aSeV[`\x0B` R`\0\x90\x81R`@\x90 T`\xFF\x16\x81V[`@Q\x90\x15\x15\x81R` \x01a\x03qV[4\x80\x15a\x04\x01W`\0\x80\xFD[P`\tTa\x03\xE5\x90`\xFF\x16\x81V[4\x80\x15a\x04\x1BW`\0\x80\xFD[P`\x07T[`@Q\x90\x81R` \x01a\x03qV[4\x80\x15a\x04:W`\0\x80\xFD[Pa\x03\xA8a\x12\x13V[4\x80\x15a\x04OW`\0\x80\xFD[Pa\x04 a\x04^6`\x04aR\xA5V[a\x148V[4\x80\x15a\x04oW`\0\x80\xFD[P`\x0CTa\x03\xA8\x90`\xFF\x16\x81V[4\x80\x15a\x04\x89W`\0\x80\xFD[P6\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x035``\x1C[`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01a\x03qV[4\x80\x15a\x04\xEAW`\0\x80\xFD[P6\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`\x98\x015``\x1Ca\x04\xB9V[4\x80\x15a\x05-W`\0\x80\xFD[P6\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`\xC0\x015``\x1Ca\x04\xB9V[a\x03-a\x05r6`\x04aS\x89V[a\x14nV[4\x80\x15a\x05\x83W`\0\x80\xFD[Pa\x04 a\x05\x926`\x04aSeV[`\x02` R`\0\x90\x81R`@\x90 T\x81V[4\x80\x15a\x05\xB0W`\0\x80\xFD[P`@\x80Q\x80\x82\x01\x90\x91R`\x05\x81R\x7F0.6.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` \x82\x01R[`@Qa\x03q\x91\x90aT V[4\x80\x15a\x05\xFFW`\0\x80\xFD[P`\x08Ta\x04 V[4\x80\x15a\x06\x14W`\0\x80\xFD[Pa\x04 a\x06#6`\x04aT3V[a\x14\x80V[4\x80\x15a\x064W`\0\x80\xFD[P6\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`\xAC\x015``\x1Ca\x04\xB9V[4\x80\x15a\x06wW`\0\x80\xFD[Pa\x05\xE6a\x14\xBAV[4\x80\x15a\x06\x8CW`\0\x80\xFD[Pa\x03-a\x06\x9B6`\x04aSeV[a\x14\xC8V[4\x80\x15a\x06\xACW`\0\x80\xFD[P6\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`4\x015a\x04 V[4\x80\x15a\x06\xECW`\0\x80\xFD[P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x03\\V[a\x03-a\x07!6`\x04aTZV[a\x18\x9BV[4\x80\x15a\x072W`\0\x80\xFD[Pa\x03-a#?V[a\x03-a\x07I6`\x04aS\x89V[a(\x15V[a\x03-a(\"V[4\x80\x15a\x07bW`\0\x80\xFD[P`\x01Ta\x04 V[4\x80\x15a\x07wW`\0\x80\xFD[P6\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`x\x015a\x04 V[4\x80\x15a\x07\xB7W`\0\x80\xFD[P`\x07T`\x08Ta\x07\xC6\x91\x90\x82V[`@\x80Q\x92\x83R` \x83\x01\x91\x90\x91R\x01a\x03qV[4\x80\x15a\x07\xE7W`\0\x80\xFD[P6\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`X\x015a\x04 V[4\x80\x15a\x08'W`\0\x80\xFD[Pa\x08\x93a\x0866`\x04aT3V[`\x06` R`\0\x90\x81R`@\x90 \x80T`\x01\x90\x91\x01T`\xFF\x82\x16\x91a\x01\0\x81\x04c\xFF\xFF\xFF\xFF\x16\x91e\x01\0\0\0\0\0\x90\x91\x04o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x84V[`@\x80Q\x94\x15\x15\x85Rc\xFF\xFF\xFF\xFF\x90\x93\x16` \x85\x01Ro\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x91\x83\x01\x91\x90\x91Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16``\x82\x01R`\x80\x01a\x03qV[4\x80\x15a\x08\xF3W`\0\x80\xFD[P`@Q6\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`T\x015`\xE0\x1C\x81R` \x01a\x03qV[4\x80\x15a\t>W`\0\x80\xFD[P6\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`\x14\x015a\x04 V[4\x80\x15a\t~W`\0\x80\xFD[Pa\x03\\a\t\x8D6`\x04aT3V[a3;V[4\x80\x15a\t\x9EW`\0\x80\xFD[Pa\x04 a\t\xAD6`\x04aSeV[`\n` R`\0\x90\x81R`@\x90 T\x81V[4\x80\x15a\t\xCBW`\0\x80\xFD[Pa\x04 a\t\xDA6`\x04aT\x9BV[a5\x1AV[4\x80\x15a\t\xEBW`\0\x80\xFD[Pa\t\xFFa\t\xFA6`\x04aT3V[a6\xFDV[`@\x80Qc\xFF\xFF\xFF\xFF\x90\x98\x16\x88Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x96\x87\x16` \x89\x01R\x95\x90\x94\x16\x94\x86\x01\x94\x90\x94Ro\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x91\x82\x16``\x86\x01R`\x80\x85\x01R\x91\x82\x16`\xA0\x84\x01R\x16`\xC0\x82\x01R`\xE0\x01a\x03qV[4\x80\x15a\nuW`\0\x80\xFD[P`\0Ta\x03\\\x90g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[4\x80\x15a\n\x96W`\0\x80\xFD[Pa\x04 a\n\xA56`\x04aSeV[a7\x94V[4\x80\x15a\n\xB6W`\0\x80\xFD[Pa\x03-a\n\xC56`\x04aU\x16V[a8\x06V[4\x80\x15a\n\xD6W`\0\x80\xFD[P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x03\\V[4\x80\x15a\x0B\tW`\0\x80\xFD[P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x04 V[4\x80\x15a\x0B=`\0\xFD[PPPPPPV[\x80`\0\x03a\x17\x13W`@Q\x7F\x17\xBF\xE5\xF7\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\x01`@Q\x80\x91\x03\x90\xFD[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16`\0\x90\x81R`\n` \x90\x81R`@\x80\x83 \x83\x90U`\x02\x90\x91R\x81 U6\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`\xC0\x015``\x1C`@Q\x7F\xF3\xFE\xF3\xA3\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\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x81\x16`\x04\x83\x01R`$\x82\x01\x84\x90R\x91\x90\x91\x16\x90c\xF3\xFE\xF3\xA3\x90`D\x01`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a\x17\xE9W`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x17\xFDW=`\0\x80>=`\0\xFD[PPPP`\0\x82s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x82`@Q`\0`@Q\x80\x83\x03\x81\x85\x87Z\xF1\x92PPP=\x80`\0\x81\x14a\x18[W`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=`\0` \x84\x01>a\x18`V[``\x91P[PP\x90P\x80a\x14{W`@Q\x7F\x83\xE6\xCCk\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\x01`@Q\x80\x91\x03\x90\xFD[`\0\x80Tp\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16`\x02\x81\x11\x15a\x18\xC7Wa\x18\xC7aR\xC7V[\x14a\x18\xFEW`@Q\x7Fg\xFE\x19P\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\x01`@Q\x80\x91\x03\x90\xFD[`\0`\x01\x84\x81T\x81\x10a\x19\x13Wa\x19\x13aU\xC7V[`\0\x91\x82R` \x91\x82\x90 `@\x80Q`\xE0\x81\x01\x82R`\x05\x90\x93\x02\x90\x91\x01\x80Tc\xFF\xFF\xFF\xFF\x81\x16\x84Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFFd\x01\0\0\0\0\x90\x91\x04\x81\x16\x94\x84\x01\x94\x90\x94R`\x01\x81\x01T\x90\x93\x16\x90\x82\x01R`\x02\x82\x01To\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x81\x16``\x83\x01R`\x03\x83\x01T`\x80\x83\x01\x81\x90R`\x04\x90\x93\x01T\x80\x82\x16`\xA0\x84\x01Rp\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04\x16`\xC0\x82\x01R\x91P\x85\x14a\x19\xFAW`@Q\x7F0\x14\x032\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\x01`@Q\x80\x91\x03\x90\xFD[`\xA0\x81\x01Q`\0\x83\x15o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x16\x17`\x01\x1B\x90P`\0a\x1A\xBA\x82o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1F\x7F\x07\xC4\xAC\xDD\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\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\xFF\x16\x90P\x86\x15\x80a\x1A\xF5WPa\x1A\xF2\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x02aV%V[\x81\x14[\x80\x15a\x1A\xFFWP\x84\x15[\x15a\x1B6W`@Q\x7F\xA4&7\xBC\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\x01`@Q\x80\x91\x03\x90\xFD[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81\x11\x15a\x1B\x90W`@Q\x7FV\xF5{+\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\x01`@Q\x80\x91\x03\x90\xFD[a\x1B\xBB\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01aV%V[\x81\x03a\x1B\xCDWa\x1B\xCD\x86\x88\x85\x88aB\x82V[4a\x1B\xD7\x83a5\x1AV[\x14a\x1C\x0EW`@Q\x7F\x86 \xAA\x19\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\x01`@Q\x80\x91\x03\x90\xFD[`\0a\x1C\x19\x88a3;V[\x90Pg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81\x16\x90\x82\x16\x03a\x1C\x81W`@Q\x7F3\x81\xD1\x14\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\x01`@Q\x80\x91\x03\x90\xFD[`\0a\x1C\xAE`\x01\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0aVuV[\x83\x03a\x1D\xFCW6\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`\x98\x015``\x1Cs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c}\xC0\xD1\xD0`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x1D/W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x1DS\x91\x90aV\x8CV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xF3\xF4\x80\xD9`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x1D\x9DW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x1D\xC1\x91\x90aV\xA9V[a\x1D\xF5\x90\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16aV\xC2V[\x90Pa\x1E\x8FV[a\x1E'`\x01\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0aVuV[\x83\x03a\x1EbWa\x1D\xF5\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\x02aV\xEEV[P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16[a\x1E\xC3\x81\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16aW\x1EV[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a\x1E\xDE\x83g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90V[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x11\x15a\x1F%Wa\x1F\"\x81\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16aW\x1EV[\x91P[`\0`@\x83\x90\x1BB\x17`\0\x8A\x81R`\x80\x87\x90\x1Bo\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x8D\x16\x17` R`@\x81 \x91\x92P\x90`\0\x81\x81R`\x03` R`@\x90 T\x90\x91P`\xFF\x16\x15a\x1F\xA3W`@Q\x7F\x80I~;\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x03`\0\x83\x81R` \x01\x90\x81R` \x01`\0 `\0a\x01\0\n\x81T\x81`\xFF\x02\x19\x16\x90\x83\x15\x15\x02\x17\x90UP`\x01`@Q\x80`\xE0\x01`@R\x80\x8Dc\xFF\xFF\xFF\xFF\x16\x81R` \x01`\0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81R` \x013s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81R` \x014o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81R` \x01\x8C\x81R` \x01\x88o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81R` \x01\x84o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81RP\x90\x80`\x01\x81T\x01\x80\x82U\x80\x91PP`\x01\x90\x03\x90`\0R` `\0 \x90`\x05\x02\x01`\0\x90\x91\x90\x91\x90\x91P`\0\x82\x01Q\x81`\0\x01`\0a\x01\0\n\x81T\x81c\xFF\xFF\xFF\xFF\x02\x19\x16\x90\x83c\xFF\xFF\xFF\xFF\x16\x02\x17\x90UP` \x82\x01Q\x81`\0\x01`\x04a\x01\0\n\x81T\x81s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x02\x19\x16\x90\x83s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x02\x17\x90UP`@\x82\x01Q\x81`\x01\x01`\0a\x01\0\n\x81T\x81s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x02\x19\x16\x90\x83s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x02\x17\x90UP``\x82\x01Q\x81`\x02\x01`\0a\x01\0\n\x81T\x81o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x02\x19\x16\x90\x83o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x02\x17\x90UP`\x80\x82\x01Q\x81`\x03\x01U`\xA0\x82\x01Q\x81`\x04\x01`\0a\x01\0\n\x81T\x81o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x02\x19\x16\x90\x83o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x02\x17\x90UP`\xC0\x82\x01Q\x81`\x04\x01`\x10a\x01\0\n\x81T\x81o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x02\x19\x16\x90\x83o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x02\x17\x90UPPP`\x04`\0\x8C\x81R` \x01\x90\x81R` \x01`\0 `\x01\x80\x80T\x90Pa\"8\x91\x90aVuV[\x81T`\x01\x81\x01\x83U`\0\x92\x83R` \x80\x84 \x90\x91\x01\x91\x90\x91U3\x82R`\n\x90R`@\x81 \x80T4\x92\x90a\"l\x90\x84\x90aV%V[\x90\x91UPP6\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`\xC0\x015``\x1Cs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xD0\xE3\r\xB04`@Q\x82c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01`\0`@Q\x80\x83\x03\x81\x85\x88\x80;\x15\x80\x15a\"\xE9W`\0\x80\xFD[PZ\xF1\x15\x80\x15a\"\xFDW=`\0\x80>=`\0\xFD[PP`@Q3\x93P\x8D\x92P\x8E\x91P\x7F\x9B2Et\x0E\xC3\xB1U\t\x8AU\xBE\x84\x95zM\xA1>\xAF\x7F\x14\xA8\xBCoS\x12l\x0B\x93P\xF2\xBE\x90`\0\x90\xA4PPPPPPPPPPPPV[6\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`\xAC\x015``\x1Cs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\\\x97Z\xBB`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a#\xBAW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a#\xDE\x91\x90aWGV[\x15a$\x15W`@Q\x7F7\x9A~\xD9\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\x01`@Q\x80\x91\x03\x90\xFD[`\x02`\x0CT`\xFF\x16`\x02\x81\x11\x15a$.Wa$.aR\xC7V[\x14\x80a$PWP`\x01`\x0CT`\xFF\x16`\x02\x81\x11\x15a$NWa$NaR\xC7V[\x14[\x15a$WWV[`\0`\x0CT`\xFF\x16`\x02\x81\x11\x15a$pWa$paR\xC7V[\x14a$\xA7W`@Q\x7F\x07\x8A=\xF4\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\x01`@Q\x80\x91\x03\x90\xFD[`\0Th\x01\0\0\0\0\0\0\0\0\x90\x04g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\0\x03a%\x03W`@Q\x7F\xC1\x05&\n\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\x01`@Q\x80\x91\x03\x90\xFD[`\x006\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`\xAC\x015``\x1C`@Q\x7F\x03\x14\xD2\xB3\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\x81R0`\x04\x82\x01Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x91\x90\x91\x16\x90c\x03\x14\xD2\xB3\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a%\xA2W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a%\xC6\x91\x90aWGV[\x90P\x80a%\xFFW`@Q\x7FHQ\xBD\x9B\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\x01`@Q\x80\x91\x03\x90\xFD[6\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`\xAC\x015``\x1C`@Q\x7F\x17\xCF!\xA9\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\x81R0`\x04\x82\x01Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x91\x90\x91\x16\x90c\x17\xCF!\xA9\x90`$\x01`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a&\x99W`\0\x80\xFD[PZ\xF1\x92PPP\x80\x15a&\xAAWP`\x01[P`\x006\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`\xAC\x015``\x1C`@Q\x7FIk\x9C\x16\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\x81R0`\x04\x82\x01Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x91\x90\x91\x16\x90cIk\x9C\x16\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a'JW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a'n\x91\x90aWGV[\x90P\x80\x15a'\xA6W`\x0C\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x16`\x01\x17\x90Ua'\xD2V[`\x0C\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x16`\x02\x17\x90U[`\x0CT`@Q\x7F\x99\x08\xEA\xAC\x06E\xDF\x9D\x07\x04\xD0j\xDC\x9E\x073|\x95\x1D\xE2\xF0k_(6\x15\x1DH\xD5\xE4r/\x91a(\t\x91`\xFF\x90\x91\x16\x90aS0V[`@Q\x80\x91\x03\x90\xA1PPV[a\x14{\x83\x83\x83`\0a\x18\x9BV[`\0Tq\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16\x15a(tW`@Q\x7F\r\xC1I\xF0\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\x01`@Q\x80\x91\x03\x90\xFD[a(|aD\xF2g`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01`@\x80Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a)1W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a)U\x91\x90aWdV[\x90\x92P\x90P\x81a)\x91W`@Q\x7Fjk\xC3\xB2\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\x01`@Q\x80\x91\x03\x90\xFD[\x7F\xFF\xD7\xDB\x0F\x9D\\\xDE\xB4\x9CL\x9E\xBAd\x9DM\xC6\xD8R\xD6Fq\xE6T\x88\xE5\x7FXXI\x92\xACha)\xE96\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`\x14\x015\x90V[\x90V[\x03a* W`@Q\x7F,\xFA\xC0\x82\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\x01`@Q\x80\x91\x03\x90\xFD[`@\x80Q\x80\x82\x01\x90\x91R\x82\x81R` \x01\x81\x90R`\x07\x82\x90U`\x08\x81\x90Ug\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF6\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`\x98\x015``\x1Cs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c}\xC0\xD1\xD0`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a*\xC1W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a*\xE5\x91\x90aV\x8CV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xF3\xF4\x80\xD9`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a+/W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a+S\x91\x90aV\xA9V[\x11\x15a+\x8BW`@Q\x7F\xB4\xE1$3\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\x01`@Q\x80\x91\x03\x90\xFD[`\0a+\xC2\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\x02aW\x88V[\x90P`\x006\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`\x98\x015``\x1Cs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c}\xC0\xD1\xD0`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a,AW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a,e\x91\x90aV\x8CV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xF3\xF4\x80\xD9`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a,\xAFW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a,\xD3\x91\x90aV\xA9V[a-\x07\x90\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16aV%V[\x90P`\0a-\x15\x83\x83aDJV[\x90Pg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a-YW`@Q\x7F\x8Dw\xEC\xAC\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\x01`@Q\x80\x91\x03\x90\xFD[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x11\x15a-\xD1W`@Q\x7F\x8Dw\xEC\xAC\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\x01`@Q\x80\x91\x03\x90\xFD[6\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`\xD4\x015\x15a.6W`@Q\x7F\"=\xB3\x94\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\x01`@Q\x80\x91\x03\x90\xFD[\x836\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`X\x015\x11a.\xD0W`@Q\x7F\xF4\x029\xDB\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\x81R6\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`\x14\x015`\x04\x82\x01R`$\x01[`@Q\x80\x91\x03\x90\xFD[`@\x80Q`\xE0\x81\x01\x82Rc\xFF\xFF\xFF\xFF\x80\x82R`\0` \x80\x84\x01\x82\x81R6\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03\x805``\x90\x81\x1C\x87\x89\x01\x81\x81Ro\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF4\x81\x81\x16\x94\x8B\x01\x94\x85R`\x14\x90\x95\x015`\x80\x8B\x01\x90\x81R`\x01`\xA0\x8C\x01\x81\x81RB\x84\x16`\xC0\x8E\x01\x90\x81R\x82T\x80\x84\x01\x84U\x92\x8CR\x9CQ\x7F\xB1\x0E-Rv\x12\x07;&\xEE\xCD\xFDq~j2\x0C\xF4KJ\xFA\xC2\xB0s-\x9F\xCB\xE2\xB7\xFA\x0C\xF6`\x05\x90\x93\x02\x92\x83\x01\x80T\x9AQ\x91\x90\x9D\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x9A\x16\x99\x90\x99\x17d\x01\0\0\0\0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x9A\x8B\x16\x02\x17\x90\x9BU\x92Q\x7F\xB1\x0E-Rv\x12\x07;&\xEE\xCD\xFDq~j2\x0C\xF4KJ\xFA\xC2\xB0s-\x9F\xCB\xE2\xB7\xFA\x0C\xF7\x84\x01\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x91\x90\x98\x16\x17\x90\x96U\x92Q\x7F\xB1\x0E-Rv\x12\x07;&\xEE\xCD\xFDq~j2\x0C\xF4KJ\xFA\xC2\xB0s-\x9F\xCB\xE2\xB7\xFA\x0C\xF8\x82\x01\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x91\x85\x16\x91\x90\x91\x17\x90U\x93Q\x7F\xB1\x0E-Rv\x12\x07;&\xEE\xCD\xFDq~j2\x0C\xF4KJ\xFA\xC2\xB0s-\x9F\xCB\xE2\xB7\xFA\x0C\xF9\x85\x01U\x95Q\x96Q\x96\x81\x16p\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x97\x90\x91\x16\x96\x90\x96\x02\x95\x90\x95\x17\x7F\xB1\x0E-Rv\x12\x07;&\xEE\xCD\xFDq~j2\x0C\xF4KJ\xFA\xC2\xB0s-\x9F\xCB\xE2\xB7\xFA\x0C\xFA\x90\x91\x01U\x81Tq\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x17\x82U\x91\x81R`\n\x90\x91R\x91\x82 \x80T\x91\x92\x90\x91a1Q\x90\x84\x90aV%V[\x90\x91UPP6\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`\xC0\x015``\x1Cs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xD0\xE3\r\xB04`@Q\x82c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01`\0`@Q\x80\x83\x03\x81\x85\x88\x80;\x15\x80\x15a1\xCEW`\0\x80\xFD[PZ\xF1\x15\x80\x15a1\xE2W=`\0\x80>=`\0\xFD[PP`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\x16Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x17\x90UPa2%\x91Pa3\x07\x90PV[c\xFF\xFF\xFF\xFF\x166\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`\xAC\x015``\x1Cs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c<\x9F9|`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a2\xA6W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a2\xCA\x91\x90aW\xC5V[`\t\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x16c\xFF\xFF\xFF\xFF\x92\x90\x92\x16\x92\x90\x92\x14\x17\x90UPPPPPV[6\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`T\x015`\xE0\x1C\x90V[`\0\x80`\0Tp\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16`\x02\x81\x11\x15a3iWa3iaR\xC7V[\x14a3\xA0W`@Q\x7Fg\xFE\x19P\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\x01`@Q\x80\x91\x03\x90\xFD[`\0`\x01\x83\x81T\x81\x10a3\xB5Wa3\xB5aU\xC7V[`\0\x91\x82R` \x82 `\x05\x90\x91\x02\x01\x80T\x90\x92Pc\xFF\xFF\xFF\xFF\x90\x81\x16\x14a4$W\x81T`\x01\x80T\x90\x91c\xFF\xFF\xFF\xFF\x16\x90\x81\x10a3\xF3Wa3\xF3aU\xC7V[\x90`\0R` `\0 \x90`\x05\x02\x01`\x04\x01`\x10\x90T\x90a\x01\0\n\x90\x04o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90P[`\x04\x82\x01T`\0\x90a4\\\x90p\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90V[a4p\x90g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16BaVuV[a4\x8Fa4O\x84o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`@\x1C\x90V[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a4\xA3\x91\x90aV%V[\x90Pg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x11a4\xF0W\x80a\x14\xB1V[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x95\x94PPPPPV[`\0\x80a5\xB9\x83o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1F\x7F\x07\xC4\xAC\xDD\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\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\xFF\x16\x90P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81\x11\x15a6\x18W`@Q\x7FV\xF5{+\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\x01`@Q\x80\x91\x03\x90\xFD[d.\x90\xED\xD0\0b\x06\x1A\x80c\x11\xE1\xA3\0`\0a63\x83\x83aX\x1AV[\x90Pg\r\xE0\xB6\xB3\xA7d\0\0`\0a6j\x82\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0aW\x88V[\x90P`\0a6\x88a6\x83g\r\xE0\xB6\xB3\xA7d\0\0\x86aW\x88V[aDeV[\x90P`\0a6\x96\x84\x84aF\xC0V[\x90P`\0a6\xA4\x83\x83aG\x0FV[\x90P`\0a6\xB1\x82aG=V[\x90P`\0a6\xD0\x82a6\xCBg\r\xE0\xB6\xB3\xA7d\0\0\x8FaW\x88V[aI%V[\x90P`\0a6\xDE\x8B\x83aG\x0FV[\x90Pa6\xEA\x81\x8DaW\x88V[\x9F\x9EPPPPPPPPPPPPPPPV[`\x01\x81\x81T\x81\x10a7\rW`\0\x80\xFD[`\0\x91\x82R` \x90\x91 `\x05\x90\x91\x02\x01\x80T`\x01\x82\x01T`\x02\x83\x01T`\x03\x84\x01T`\x04\x90\x94\x01Tc\xFF\xFF\xFF\xFF\x84\x16\x95Pd\x01\0\0\0\0\x90\x93\x04s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x81\x16\x94\x92\x16\x92o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x91\x82\x16\x92\x91\x80\x82\x16\x91p\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04\x16\x87V[`\0`\x02`\x0CT`\xFF\x16`\x02\x81\x11\x15a7\xAFWa7\xAFaR\xC7V[\x03a7\xDDWPs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\0\x90\x81R`\n` R`@\x90 T\x90V[Ps\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\0\x90\x81R`\x02` R`@\x90 T\x90V[`\0\x80Tp\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16`\x02\x81\x11\x15a82Wa82aR\xC7V[\x14a8iW`@Q\x7Fg\xFE\x19P\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\x01`@Q\x80\x91\x03\x90\xFD[`\0`\x01\x87\x81T\x81\x10a8~Wa8~aU\xC7V[`\0\x91\x82R` \x82 `\x05\x91\x90\x91\x02\x01`\x04\x81\x01T\x90\x92Po\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90\x87\x15\x82\x17`\x01\x1B\x90Pa8\xDD\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01aV%V[a9y\x82o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1F\x7F\x07\xC4\xAC\xDD\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\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\xFF\x16\x14a9\xB3W`@Q\x7F_S\xDD\x98\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\x01`@Q\x80\x91\x03\x90\xFD[`\0\x80\x89\x15a:\xB7Wa:\x06\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0aVuV[`\x01\x90\x1Ba:%\x84o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16aIVV[o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a:A\x91\x90aX.V[\x15a:~Wa:ua:f`\x01o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x16aXBV[\x86Tc\xFF\xFF\xFF\xFF\x16`\0aI\xF5V[`\x03\x01Ta:\xADV[6\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`x\x015[\x91P\x84\x90Pa:\xE1V[`\x03\x85\x01T\x91Pa:\xDEa:fo\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x86\x16`\x01aXkV[\x90P[`\x08\x82\x90\x1B`\x08\x8A\x8A`@Qa:\xF8\x92\x91\x90aX\x96V[`@Q\x80\x91\x03\x90 \x90\x1B\x14a;9W`@Q\x7FieP\xFF\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\x01`@Q\x80\x91\x03\x90\xFD[`\0a;D\x8CaJ\xD9V[\x90P`\0a;S\x83`\x03\x01T\x90V[`@Q\x7F\xE1L\xED2\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\x81R6\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`\x98\x015``\x1C\x90c\xE1L\xED2\x90a;\xC7\x90\x8F\x90\x8F\x90\x8F\x90\x8F\x90\x8A\x90`\x04\x01aX\xEFV[` `@Q\x80\x83\x03\x81`\0\x87Z\xF1\x15\x80\x15a;\xE6W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a<\n\x91\x90aV\xA9V[`\x04\x85\x01T\x91\x14\x91P`\0\x90`\x02\x90a<\xB5\x90o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1F\x7F\x07\xC4\xAC\xDD\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\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[a=Q\x89o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1F\x7F\x07\xC4\xAC\xDD\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\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[a=[\x91\x90aY)V[a=e\x91\x90aYLV[`\xFF\x16\x15\x90P\x81\x15\x15\x81\x03a=\xA6W`@Q\x7F\xFBN@\xDD\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\x01`@Q\x80\x91\x03\x90\xFD[\x87Td\x01\0\0\0\0\x90\x04s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x15a=\xFDW`@Q\x7F\x90q\xE6\xAF\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\x01`@Q\x80\x91\x03\x90\xFD[PP\x85T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xFF\xFF\xFF\xFF\x163d\x01\0\0\0\0\x02\x17\x90\x95UPPPPPPPPPPPV[`\0\x80Tp\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16`\x02\x81\x11\x15a>hWa>haR\xC7V[\x14a>\x9FW`@Q\x7Fg\xFE\x19P\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\x01`@Q\x80\x91\x03\x90\xFD[`\0\x80`\0\x80a>\xAE\x86aK\x08V[\x93P\x93P\x93P\x93P`\0a>\xC4\x85\x85\x85\x85aO\x11V[\x90P`\x006\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`\x98\x015``\x1Cs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c}\xC0\xD1\xD0`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a?CW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a?g\x91\x90aV\x8CV[\x90P`\x01\x89\x03a@_Ws\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16cR\xF0\xF3\xAD\x8A\x84a?\xC36\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`4\x015\x90V[`@Q\x7F\xFF\xFF\xFF\xFF\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`\xE0\x86\x90\x1B\x16\x81R`\x04\x81\x01\x93\x90\x93R`$\x83\x01\x91\x90\x91R`D\x82\x01R` `d\x82\x01R`\x84\x81\x01\x8A\x90R`\xA4\x01[` `@Q\x80\x83\x03\x81`\0\x87Z\xF1\x15\x80\x15a@5W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a@Y\x91\x90aV\xA9V[Pa\x12\x08V[`\x02\x89\x03a@\x8BWs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16cR\xF0\xF3\xAD\x8A\x84\x89a?\xC3V[`\x03\x89\x03a@\xB7Ws\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16cR\xF0\xF3\xAD\x8A\x84\x87a?\xC3V[`\x04\x89\x03aA]W`@Q\x7FR\xF0\xF3\xAD\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\x81\x01\x8A\x90R`$\x81\x01\x83\x90R6\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`X\x015`\xC0\x1B`D\x82\x01R`\x08`d\x82\x01R`\x84\x81\x01\x88\x90Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16\x90cR\xF0\xF3\xAD\x90`\xA4\x01a@\x16V[`@Q\x7F\xFF\x13~e\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\x01`@Q\x80\x91\x03\x90\xFD[6\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`T\x81\x015`\xE0\x1C\x90`\x14\x015``aA\xD0a\x14\xBAV[\x90P\x90\x91\x92V[`\x02\x80\x82\x01Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x16`\0\x90\x81R` \x92\x90\x92R`@\x82 \x80To\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x92\x16\x92\x90\x91aB'\x90\x84\x90aV%V[\x90\x91UPPPPV[`@Q\x81\x81R6\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03\x82\x84\x82\x01` \x84\x017\x82` \x83\x01\x01`\0\x81R` \x81\x01`@RPP\x92\x91PPV[`\0aB\xA1o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x16`\x01aXkV[\x90P`\0aB\xB1\x82\x86`\x01aI\xF5V[\x90P`\0\x86\x90\x1A\x83\x80aC\x9DWPaB\xEA`\x02\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0aX.V[`\x04\x83\x01T`\x02\x90aC\x8E\x90o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1F\x7F\x07\xC4\xAC\xDD\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\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[aC\x98\x91\x90aYLV[`\xFF\x16\x14[\x15aC\xF5W`\xFF\x81\x16`\x01\x14\x80aC\xB7WP`\xFF\x81\x16`\x02\x14[aC\xF0W`@Q\x7F\xF4\x029\xDB\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\x81\x01\x88\x90R`$\x01a.\xC7V[aD3V[`\xFF\x81\x16\x15aD3W`@Q\x7F\xF4\x029\xDB\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\x81\x01\x88\x90R`$\x01a.\xC7V[PPPPPPPV[`\0a\x14i`\xF4`\x06aV%V[`\0\x81\x83\x10\x15aDZW\x81aD\\V[\x82[\x90P[\x92\x91PPV[o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11`\x07\x1B\x81\x81\x1Cg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x10`\x06\x1B\x17\x81\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x81\x81\x1Ca\xFF\xFF\x10`\x04\x1B\x17\x81\x81\x1C`\xFF\x10`\x03\x1B\x17`\0\x82\x13aD\xC4Wc\x16\x15\xE68`\0R`\x04`\x1C\xFD[\x7F\xF8\xF9\xF9\xFA\xF9\xFD\xFA\xFB\xF9\xFD\xFC\xFD\xFA\xFB\xFC\xFE\xF9\xFA\xFD\xFA\xFC\xFC\xFB\xFE\xFA\xFA\xFC\xFB\xFF\xFF\xFF\xFFo\x84!\x08B\x10\x84!\x08\xCCc\x18\xC6\xDBmT\xBE\x83\x83\x1C\x1C`\x1F\x16\x1A\x18\x90\x81\x1B`\x9F\x90\x81\x1ClFWr\xB2\xBB\xBB_\x82K\x15 z0\x81\x01\x81\x02``\x90\x81\x1Dm\x03\x88\xEA\xA2t\x12\xD5\xAC\xA0&\x81]cn\x01\x82\x02\x81\x1Dm\r\xF9\x9A\xC5\x02\x03\x1B\xF9S\xEF\xF4r\xFD\xCC\x01\x82\x02\x81\x1Dm\x13\xCD\xFF\xB2\x9DQ\xD9\x93\"\xBD\xFF_\"\x11\x01\x82\x02\x81\x1Dm\n\x0Ft #\xDE\xF7\x83\xA3\x07\xA9\x86\x91.\x01\x82\x02\x81\x1Dm\x01\x92\r\x80C\xCA\x89\xB5#\x92S(NB\x01\x82\x02\x81\x1Dl\x0Bz\x86\xD77Th\xFA\xC6g\xA0\xA5'\x01l)P\x8EE\x85C\xD8\xAAM\xF2\xAB\xEEx\x83\x01\x83\x02\x82\x1Dm\x019`\x1A.\xFA\xBEq~`L\xBBH\x94\x01\x83\x02\x82\x1Dm\x02$\x7Fz{e\x942\x06I\xAA\x03\xAB\xA1\x01\x83\x02\x82\x1D\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFFs\xC0\xC7\x16\xA5\x94\xE0\rT\xE3\xC4\xCB\xC9\x01\x83\x02\x82\x1D\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFD\xC7\xB8\x8CB\x0ES\xA9\x89\x053\x12\x9Fo\x01\x83\x02\x90\x91\x1D\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFFF_\xDA'\xEBMc\xDE\xD4t\xE5\xF82\x01\x90\x91\x02\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF5\xF6\xAF\x8F{3\x96dO\x18\xE1W\x96\0\0\0\0\0\0\0\0\0\0\0\0\x01\x05q\x13@\xDA\xA0\xD5\xF7i\xDB\xA1\x91\\\xEFY\xF0\x81ZU\x06\x02\x91\x90\x03}\x02g\xA3l\x0C\x95\xB3\x97Z\xB3\xEE[ :v\x14\xA3\xF7Ss\xF0G\xD8\x03\xAE{f\x87\xF2\xB3\x02\x01}W\x11^G\x01\x8Cqw\xEE\xBF|\xD3p\xA35j\x1Bxc\0\x8AZ\xE8\x02\x8Cr\xB8\x86B\x84\x01`\xAE\x1D\x90V[`\0x\x12r]\xD1\xD2C\xAB\xA0\xE7_\xE6E\xCCHs\xF9\xE6Z\xFEh\x8C\x92\x8E\x1F!\x83\x11g\r\xE0\xB6\xB3\xA7d\0\0\x02\x15\x82\x02aF\xFDWc|_H}`\0R`\x04`\x1C\xFD[Pg\r\xE0\xB6\xB3\xA7d\0\0\x91\x90\x91\x02\x04\x90V[`\0\x81`\0\x19\x04\x83\x11\x82\x02\x15aG-Wc\xBA\xC6^[`\0R`\x04`\x1C\xFD[Pg\r\xE0\xB6\xB3\xA7d\0\0\x91\x02\x04\x90V[`\0\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFD\xC0\xD0W\t%\xA4b\xD7\x82\x13aGkW\x91\x90PV[h\x07U\xBFy\x8BJ\x1B\xF1\xE5\x82\x12aG\x89Wc\xA3{\xFE\xC9`\0R`\x04`\x1C\xFD[e\x03x-\xAC\xE9\xD9`N\x83\x90\x1B\x05\x91P`\0``k\xB1r\x17\xF7\xD1\xCFy\xAB\xC9\xE3\xB3\x98\x84\x82\x1B\x05k\x80\0\0\0\0\0\0\0\0\0\0\0\x01\x90\x1Dk\xB1r\x17\xF7\xD1\xCFy\xAB\xC9\xE3\xB3\x98\x81\x02\x90\x93\x03\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xDB\xF3\xCC\xF1`M&4P\xF0*U\x04\x81\x01\x81\x02``\x90\x81\x1Dm\x02wYI\x91\xCF\xC8_n$a\x83|\xD9\x01\x82\x02\x81\x1D\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE5\xAD\xED\xAA\x1C\xB0\x95\xAF\x9EM\xA1\x0E6<\x01\x82\x02\x81\x1Dm\xB1\xBB\xB2\x01\xF4C\xCF\x96/\x1A\x1D=\xB4\xA5\x01\x82\x02\x81\x1D\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFD8\xDCw&\x08\xB0\xAEV\xCC\xE0\x12\x96\xC0\xEB\x01\x82\x02\x81\x1Dn\x05\x18\x0B\xB1G\x99\xABG\xA8\xA8\xCB*R}W\x01m\x02\xD1g W{\xD1\x9B\xF6\x14\x17o\xE9\xEAl\x10\xFEh\xE7\xFD7\xD0\0{q?vP\x84\x01\x84\x02\x83\x1D\x90\x81\x01\x90\x84\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE,i\x81,\xF0;\x07c\xFDEJ\x8F~\x01\x02\x90\x91\x1Dn\x05\x87\xF5\x03\xBBn\xA2\x9D%\xFC\xB7@\x19dP\x01\x90\x91\x02y\xD85\xEB\xBA\x82L\x98\xFB1\xB8;,\xA4\\\0\0\0\0\0\0\0\0\0\0\0\0\x01\x05t\x02\x9D\x9D\xC3\x85c\xC3.\\/m\xC1\x92\xEEp\xEFe\xF9\x97\x8A\xF3\x02`\xC3\x93\x90\x93\x03\x92\x90\x92\x1C\x92\x91PPV[`\0aD\\g\r\xE0\xB6\xB3\xA7d\0\0\x83aI=\x86aDeV[aIG\x91\x90aYnV[aIQ\x91\x90aZ*V[aG=V[`\0\x80aI\xE3\x83~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1F\x7F\x07\xC4\xAC\xDD\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\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\x01`\xFF\x91\x90\x91\x16\x1B\x90\x92\x03\x92\x91PPV[`\0\x80\x82aJ>WaJ9o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x86\x16\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0aO\xCBV[aJYV[aJY\x85o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16aQWV[\x90P`\x01\x84\x81T\x81\x10aJnWaJnaU\xC7V[\x90`\0R` `\0 \x90`\x05\x02\x01\x91P[`\x04\x82\x01To\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x81\x16\x91\x16\x14aJ\xD1W\x81T`\x01\x80T\x90\x91c\xFF\xFF\xFF\xFF\x16\x90\x81\x10aJ\xBCWaJ\xBCaU\xC7V[\x90`\0R` `\0 \x90`\x05\x02\x01\x91PaJ\x7FV[P\x93\x92PPPV[`\0\x80`\0\x80`\0aJ\xEA\x86aK\x08V[\x93P\x93P\x93P\x93PaJ\xFE\x84\x84\x84\x84aO\x11V[\x96\x95PPPPPPV[`\0\x80`\0\x80`\0\x85\x90P`\0`\x01\x82\x81T\x81\x10aK(WaK(aU\xC7V[`\0\x91\x82R` \x90\x91 `\x04`\x05\x90\x92\x02\x01\x90\x81\x01T\x90\x91P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90aK\xFF\x90o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1F\x7F\x07\xC4\xAC\xDD\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\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\xFF\x16\x11aL9W`@Q\x7F\xB3K\\\"\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\x01`@Q\x80\x91\x03\x90\xFD[`\0\x81[`\x04\x83\x01T\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90aM\0\x90o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1F\x7F\x07\xC4\xAC\xDD\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\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\xFF\x16\x92P\x82\x11\x15aMuW\x82Tc\xFF\xFF\xFF\xFF\x16aM?\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01aV%V[\x83\x03aMIW\x83\x91P[`\x01\x81\x81T\x81\x10aM\\WaM\\aU\xC7V[\x90`\0R` `\0 \x90`\x05\x02\x01\x93P\x80\x94PPaL=V[`\x04\x81\x81\x01T\x90\x84\x01To\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x91\x82\x16\x91\x16`\0\x81o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16aM\xDEaM\xC9\x85o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\x01\x1C\x90V[o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90V[o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14\x90P\x80\x15aN\xADW`\0aN\x16\x83o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16aIVV[o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x11\x15aN\x81W`\0aNXaNP`\x01o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x86\x16aXBV[\x89`\x01aI\xF5V[`\x03\x81\x01T`\x04\x90\x91\x01T\x90\x9CPo\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x9APaN\x87\x90PV[`\x07T\x9AP[`\x03\x86\x01T`\x04\x87\x01T\x90\x99Po\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x97PaO\x03V[`\0aN\xCFaNPo\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x85\x16`\x01aXkV[`\x03\x80\x89\x01T`\x04\x80\x8B\x01T\x92\x84\x01T\x93\x01T\x90\x9EPo\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x91\x82\x16\x9DP\x91\x9BP\x16\x98PP[PPPPPPP\x91\x93P\x91\x93V[`\0o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x16\x15aO~W`@\x80Q` \x81\x01\x87\x90Ro\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x87\x16\x92\x82\x01\x92\x90\x92R``\x81\x01\x85\x90R\x90\x83\x16`\x80\x82\x01R`\xA0\x01`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 a\x14\xB1V[\x82\x82`@Q` \x01aO\xAC\x92\x91\x90\x91\x82Ro\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16` \x82\x01R`@\x01\x90V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 \x95\x94PPPPPV[`\0\x81aPj\x84o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1F\x7F\x07\xC4\xAC\xDD\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\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\xFF\x16\x11aP\x80Wc\xB3K\\\"`\0R`\x04`\x1C\xFD[aP\x89\x83aQWV[\x90P\x81aQ(\x82o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1F\x7F\x07\xC4\xAC\xDD\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\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\xFF\x16\x11aD_WaD\\aQ>\x83`\x01aV%V[o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x16\x90aQ\xFCV[`\0\x81\x19`\x01\x83\x01\x16\x81aQ\xEB\x82~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1F\x7F\x07\xC4\xAC\xDD\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\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\xFF\x16\x93\x90\x93\x1C\x80\x15\x17\x93\x92PPPV[`\0\x80aR\x89\x84~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1F\x7F\x07\xC4\xAC\xDD\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\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\xFF\x16\x90P\x80\x83\x03`\x01\x80\x82\x1B\x03\x85\x82\x1B\x17\x92PPP\x92\x91PPV[`\0\x80`@\x83\x85\x03\x12\x15aR\xB8W`\0\x80\xFD[PP\x805\x92` \x90\x91\x015\x91PV[\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`!`\x04R`$`\0\xFD[`\x03\x81\x10aS-W\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`!`\x04R`$`\0\xFD[PV[` \x81\x01aS=\x83aR\xF6V[\x91\x90R\x90V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14aS-W`\0\x80\xFD[`\0` \x82\x84\x03\x12\x15aSwW`\0\x80\xFD[\x815aS\x82\x81aSCV[\x93\x92PPPV[`\0\x80`\0``\x84\x86\x03\x12\x15aS\x9EW`\0\x80\xFD[PP\x815\x93` \x83\x015\x93P`@\x90\x92\x015\x91\x90PV[`\0\x81Q\x80\x84R`\0[\x81\x81\x10\x15aS\xDBW` \x81\x85\x01\x81\x01Q\x86\x83\x01\x82\x01R\x01aS\xBFV[\x81\x81\x11\x15aS\xEDW`\0` \x83\x87\x01\x01R[P`\x1F\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x92\x90\x92\x01` \x01\x92\x91PPV[` \x81R`\0aD\\` \x83\x01\x84aS\xB5V[`\0` \x82\x84\x03\x12\x15aTEW`\0\x80\xFD[P5\x91\x90PV[\x80\x15\x15\x81\x14aS-W`\0\x80\xFD[`\0\x80`\0\x80`\x80\x85\x87\x03\x12\x15aTpW`\0\x80\xFD[\x845\x93P` \x85\x015\x92P`@\x85\x015\x91P``\x85\x015aT\x90\x81aTLV[\x93\x96\x92\x95P\x90\x93PPV[`\0` \x82\x84\x03\x12\x15aT\xADW`\0\x80\xFD[\x815o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14aS\x82W`\0\x80\xFD[`\0\x80\x83`\x1F\x84\x01\x12aT\xDFW`\0\x80\xFD[P\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15aT\xF7W`\0\x80\xFD[` \x83\x01\x91P\x83` \x82\x85\x01\x01\x11\x15aU\x0FW`\0\x80\xFD[\x92P\x92\x90PV[`\0\x80`\0\x80`\0\x80`\x80\x87\x89\x03\x12\x15aU/W`\0\x80\xFD[\x865\x95P` \x87\x015aUA\x81aTLV[\x94P`@\x87\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15aU^W`\0\x80\xFD[aUj\x8A\x83\x8B\x01aT\xCDV[\x90\x96P\x94P``\x89\x015\x91P\x80\x82\x11\x15aU\x83W`\0\x80\xFD[PaU\x90\x89\x82\x8A\x01aT\xCDV[\x97\x9A\x96\x99P\x94\x97P\x92\x95\x93\x94\x92PPPV[c\xFF\xFF\xFF\xFF\x84\x16\x81R\x82` \x82\x01R```@\x82\x01R`\0a\x14\xB1``\x83\x01\x84aS\xB5V[\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`2`\x04R`$`\0\xFD[\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`\x11`\x04R`$`\0\xFD[`\0\x82\x19\x82\x11\x15aV8WaV8aU\xF6V[P\x01\x90V[`\0\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x03aVnWaVnaU\xF6V[P`\x01\x01\x90V[`\0\x82\x82\x10\x15aV\x87WaV\x87aU\xF6V[P\x03\x90V[`\0` \x82\x84\x03\x12\x15aV\x9EW`\0\x80\xFD[\x81QaS\x82\x81aSCV[`\0` \x82\x84\x03\x12\x15aV\xBBW`\0\x80\xFD[PQ\x91\x90PV[`\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x83\x16\x81\x85\x16\x80\x83\x03\x82\x11\x15aV\xE5WaV\xE5aU\xF6V[\x01\x94\x93PPPPV[`\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x83\x16\x81\x85\x16\x81\x83\x04\x81\x11\x82\x15\x15\x16\x15aW\x15WaW\x15aU\xF6V[\x02\x94\x93PPPPV[`\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x81\x16\x90\x83\x16\x81\x81\x10\x15aW?WaW?aU\xF6V[\x03\x93\x92PPPV[`\0` \x82\x84\x03\x12\x15aWYW`\0\x80\xFD[\x81QaS\x82\x81aTLV[`\0\x80`@\x83\x85\x03\x12\x15aWwW`\0\x80\xFD[PP\x80Q` \x90\x91\x01Q\x90\x92\x90\x91PV[`\0\x81\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x04\x83\x11\x82\x15\x15\x16\x15aW\xC0WaW\xC0aU\xF6V[P\x02\x90V[`\0` \x82\x84\x03\x12\x15aW\xD7W`\0\x80\xFD[\x81Qc\xFF\xFF\xFF\xFF\x81\x16\x81\x14aS\x82W`\0\x80\xFD[\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`\x12`\x04R`$`\0\xFD[`\0\x82aX)WaX)aW\xEBV[P\x04\x90V[`\0\x82aX=WaX=aW\xEBV[P\x06\x90V[`\0o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x81\x16\x90\x83\x16\x81\x81\x10\x15aW?WaW?aU\xF6V[`\0o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x83\x16\x81\x85\x16\x80\x83\x03\x82\x11\x15aV\xE5WaV\xE5aU\xF6V[\x81\x83\x827`\0\x91\x01\x90\x81R\x91\x90PV[\x81\x83R\x81\x81` \x85\x017P`\0` \x82\x84\x01\x01R`\0` \x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0`\x1F\x84\x01\x16\x84\x01\x01\x90P\x92\x91PPV[``\x81R`\0aY\x03``\x83\x01\x87\x89aX\xA6V[\x82\x81\x03` \x84\x01RaY\x16\x81\x86\x88aX\xA6V[\x91PP\x82`@\x83\x01R\x96\x95PPPPPPV[`\0`\xFF\x82\x16`\xFF\x84\x16\x80\x82\x10\x15aYCWaYCaU\xF6V[\x90\x03\x93\x92PPPV[`\0`\xFF\x83\x16\x80aY_WaY_aW\xEBV[\x80`\xFF\x84\x16\x06\x91PP\x92\x91PPV[`\0\x7F\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF`\0\x84\x13`\0\x84\x13\x85\x83\x04\x85\x11\x82\x82\x16\x16\x15aY\xAFWaY\xAFaU\xF6V[\x7F\x80\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\0\x87\x12\x86\x82\x05\x88\x12\x81\x84\x16\x16\x15aY\xEAWaY\xEAaU\xF6V[`\0\x87\x12\x92P\x87\x82\x05\x87\x12\x84\x84\x16\x16\x15aZ\x06WaZ\x06aU\xF6V[\x87\x85\x05\x87\x12\x81\x84\x16\x16\x15aZ\x1CWaZ\x1CaU\xF6V[PPP\x92\x90\x93\x02\x93\x92PPPV[`\0\x82aZ9WaZ9aW\xEBV[\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x14\x7F\x80\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x83\x14\x16\x15aZ\x8DWaZ\x8DaU\xF6V[P\x05\x90V\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x6080604052600436106103085760003560e01c8063786b844b1161019a578063c395e1ca116100e1578063ec5e63081161008a578063fa24f74311610064578063fa24f74314610b80578063fa315aa914610ba4578063fe2bbeb214610bd757600080fd5b8063ec5e630814610afd578063eff0f59214610b30578063f8f43ff614610b6057600080fd5b8063d5d44d80116100bb578063d5d44d8014610a8a578063d8cc1a3c14610aaa578063dabd396d14610aca57600080fd5b8063c395e1ca146109bf578063c6f0308c146109df578063cf09e0d014610a6957600080fd5b806399735e3211610143578063bcef3b551161011d578063bcef3b5514610932578063bd8da95614610972578063c0d8bb741461099257600080fd5b806399735e32146107db578063a445ece61461081b578063bbdc02db146108e757600080fd5b80638980e0cc116101745780638980e0cc146107565780638d450a951461076b578063938d689a146107ab57600080fd5b8063786b844b146107265780637b0f0adc1461073b5780638129fc1c1461074e57600080fd5b80633fc8cef31161025e5780635c0cba33116102075780636361506d116101e15780636361506d146106a05780636b6716c0146106e05780636f0344091461071357600080fd5b80635c0cba3314610628578063609d33341461066b57806360e274641461068057600080fd5b806354fd4d501161023857806354fd4d50146105a457806359cebe09146105f35780635a5fa2d91461060857600080fd5b80633fc8cef314610521578063472777c614610564578063529d6a8c1461057757600080fd5b806325fc2ace116102c0578063378dd48c1161029a578063378dd48c1461046357806337b1b2291461047d5780633a768463146104de57600080fd5b806325fc2ace1461040f5780632810e1d61461042e5780632ad69aeb1461044357600080fd5b8063200d2ed2116102f1578063200d2ed21461037a578063222abf45146103b5578063250e69bd146103f557600080fd5b806303c2924d1461030d57806319effeb41461032f575b600080fd5b34801561031957600080fd5b5061032d6103283660046152a5565b610c07565b005b34801561033b57600080fd5b5060005461035c9068010000000000000000900467ffffffffffffffff1681565b60405167ffffffffffffffff90911681526020015b60405180910390f35b34801561038657600080fd5b506000546103a890700100000000000000000000000000000000900460ff1681565b6040516103719190615330565b3480156103c157600080fd5b506103e56103d0366004615365565b600b6020526000908152604090205460ff1681565b6040519015158152602001610371565b34801561040157600080fd5b506009546103e59060ff1681565b34801561041b57600080fd5b506007545b604051908152602001610371565b34801561043a57600080fd5b506103a8611213565b34801561044f57600080fd5b5061042061045e3660046152a5565b611438565b34801561046f57600080fd5b50600c546103a89060ff1681565b34801561048957600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90033560601c5b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610371565b3480156104ea57600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036098013560601c6104b9565b34801561052d57600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360c0013560601c6104b9565b61032d610572366004615389565b61146e565b34801561058357600080fd5b50610420610592366004615365565b60026020526000908152604090205481565b3480156105b057600080fd5b5060408051808201909152600581527f302e362e3000000000000000000000000000000000000000000000000000000060208201525b6040516103719190615420565b3480156105ff57600080fd5b50600854610420565b34801561061457600080fd5b50610420610623366004615433565b611480565b34801561063457600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360ac013560601c6104b9565b34801561067757600080fd5b506105e66114ba565b34801561068c57600080fd5b5061032d61069b366004615365565b6114c8565b3480156106ac57600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360340135610420565b3480156106ec57600080fd5b507f000000000000000000000000000000000000000000000000000000000000000061035c565b61032d61072136600461545a565b61189b565b34801561073257600080fd5b5061032d61233f565b61032d610749366004615389565b612815565b61032d612822565b34801561076257600080fd5b50600154610420565b34801561077757600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360780135610420565b3480156107b757600080fd5b506007546008546107c6919082565b60408051928352602083019190915201610371565b3480156107e757600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360580135610420565b34801561082757600080fd5b50610893610836366004615433565b6006602052600090815260409020805460019091015460ff821691610100810463ffffffff1691650100000000009091046fffffffffffffffffffffffffffffffff169073ffffffffffffffffffffffffffffffffffffffff1684565b60408051941515855263ffffffff90931660208501526fffffffffffffffffffffffffffffffff9091169183019190915273ffffffffffffffffffffffffffffffffffffffff166060820152608001610371565b3480156108f357600080fd5b50604051367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036054013560e01c8152602001610371565b34801561093e57600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360140135610420565b34801561097e57600080fd5b5061035c61098d366004615433565b61333b565b34801561099e57600080fd5b506104206109ad366004615365565b600a6020526000908152604090205481565b3480156109cb57600080fd5b506104206109da36600461549b565b61351a565b3480156109eb57600080fd5b506109ff6109fa366004615433565b6136fd565b6040805163ffffffff909816885273ffffffffffffffffffffffffffffffffffffffff968716602089015295909416948601949094526fffffffffffffffffffffffffffffffff9182166060860152608085015291821660a08401521660c082015260e001610371565b348015610a7557600080fd5b5060005461035c9067ffffffffffffffff1681565b348015610a9657600080fd5b50610420610aa5366004615365565b613794565b348015610ab657600080fd5b5061032d610ac5366004615516565b613806565b348015610ad657600080fd5b507f000000000000000000000000000000000000000000000000000000000000000061035c565b348015610b0957600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610420565b348015610b3c57600080fd5b506103e5610b4b366004615433565b60036020526000908152604090205460ff1681565b348015610b6c57600080fd5b5061032d610b7b366004615389565b613e3c565b348015610b8c57600080fd5b50610b9561418f565b604051610371939291906155a2565b348015610bb057600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610420565b348015610be357600080fd5b506103e5610bf2366004615433565b60056020526000908152604090205460ff1681565b60008054700100000000000000000000000000000000900460ff166002811115610c3357610c336152c7565b14610c6a576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060018381548110610c7f57610c7f6155c7565b906000526020600020906005020190506000610c9a8461333b565b905067ffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000081169082161015610d03576040517ff2440b5300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008481526005602052604090205460ff1615610d4c576040517ff1a9458100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000848152600460205260409020805480158015610d6957508515155b15610e04578354640100000000900473ffffffffffffffffffffffffffffffffffffffff1660008115610d9c5781610db8565b600186015473ffffffffffffffffffffffffffffffffffffffff165b9050610dc481876141d7565b50505060009485525050600560205250506040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055565b6000868152600660209081526040918290208251608081018452815460ff81161515808352610100820463ffffffff16948301949094526501000000000090046fffffffffffffffffffffffffffffffff16938101939093526001015473ffffffffffffffffffffffffffffffffffffffff166060830152610ea7576fffffffffffffffffffffffffffffffff6040820152600181526000869003610ea7578195505b600086826020015163ffffffff16610ebf9190615625565b90506000838211610ed05781610ed2565b835b602084015190915063ffffffff165b8181101561101e576000868281548110610efd57610efd6155c7565b6000918252602080832090910154808352600590915260409091205490915060ff16610f55576040517f9a07664600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060018281548110610f6a57610f6a6155c7565b600091825260209091206005909102018054909150640100000000900473ffffffffffffffffffffffffffffffffffffffff16158015610fc75750600481015460408701516fffffffffffffffffffffffffffffffff9182169116115b1561100957600181015473ffffffffffffffffffffffffffffffffffffffff16606087015260048101546fffffffffffffffffffffffffffffffff1660408701525b505080806110169061563d565b915050610ee1565b5063ffffffff818116602085810191825260008c81526006909152604090819020865181549351928801517fffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000009094169015157fffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000ff161761010092909416918202939093177fffffffffffffffffffffff00000000000000000000000000000000ffffffffff16650100000000006fffffffffffffffffffffffffffffffff909316929092029190911782556060850151600190920180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9093169290921790915584900361120857606083015160008a815260056020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790556111bf73ffffffffffffffffffffffffffffffffffffffff82161561119d57816111b9565b600189015473ffffffffffffffffffffffffffffffffffffffff165b896141d7565b875473ffffffffffffffffffffffffffffffffffffffff909116640100000000027fffffffffffffffff0000000000000000000000000000000000000000ffffffff9091161787555b505050505050505050565b600080600054700100000000000000000000000000000000900460ff166002811115611241576112416152c7565b14611278576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000805260056020527f05b8ccbb9d4d8fb16ea74ce3c29a41f1b461fbdaff4714a0d9a8eb05499746bc5460ff166112dc576040517f9a07664600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166001600081548110611308576113086155c7565b6000918252602090912060059091020154640100000000900473ffffffffffffffffffffffffffffffffffffffff1614611343576001611346565b60025b6000805467ffffffffffffffff421668010000000000000000027fffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff82168117835592935083927fffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffff000000000000000000ffffffffffffffff909116177001000000000000000000000000000000008360028111156113f7576113f76152c7565b02179055600281111561140c5761140c6152c7565b6040517f5e186f09b9c93491f14e277eea7faa5de6a2d4bda75a79af7a3684fbfb42da6090600090a290565b6004602052816000526040600020818154811061145457600080fd5b90600052602060002001600091509150505481565b905090565b61147b838383600161189b565b505050565b600081815260066020908152604080832060049092528220805482546114b190610100900463ffffffff1682615675565b95945050505050565b606061146960586020614230565b6114d061233f565b60006002600c5460ff1660028111156114eb576114eb6152c7565b0361151c575073ffffffffffffffffffffffffffffffffffffffff81166000908152600a6020526040902054611598565b6001600c5460ff166002811115611535576115356152c7565b03611566575073ffffffffffffffffffffffffffffffffffffffff8116600090815260026020526040902054611598565b6040517f078a3df400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff82166000908152600b602052604090205460ff166116d95773ffffffffffffffffffffffffffffffffffffffff82166000908152600b6020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905561164b60c07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe369081013560f01c9003013560601c90565b6040517f7eee288d00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8481166004830152602482018490529190911690637eee288d90604401600060405180830381600087803b1580156116bd57600080fd5b505af11580156116d1573d6000803e3d6000fd5b505050505050565b80600003611713576040517f17bfe5f700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff82166000908152600a602090815260408083208390556002909152812055367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360c0013560601c6040517ff3fef3a300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff848116600483015260248201849052919091169063f3fef3a390604401600060405180830381600087803b1580156117e957600080fd5b505af11580156117fd573d6000803e3d6000fd5b5050505060008273ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d806000811461185b576040519150601f19603f3d011682016040523d82523d6000602084013e611860565b606091505b505090508061147b576040517f83e6cc6b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008054700100000000000000000000000000000000900460ff1660028111156118c7576118c76152c7565b146118fe576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060018481548110611913576119136155c7565b60009182526020918290206040805160e0810182526005909302909101805463ffffffff8116845273ffffffffffffffffffffffffffffffffffffffff64010000000090910481169484019490945260018101549093169082015260028201546fffffffffffffffffffffffffffffffff908116606083015260038301546080830181905260049093015480821660a084015270010000000000000000000000000000000090041660c0820152915085146119fa576040517f3014033200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60a0810151600083156fffffffffffffffffffffffffffffffff83161760011b90506000611aba826fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff169050861580611af55750611af27f00000000000000000000000000000000000000000000000000000000000000006002615625565b81145b8015611aff575084155b15611b36576040517fa42637bc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f0000000000000000000000000000000000000000000000000000000000000000811115611b90576040517f56f57b2b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611bbb7f00000000000000000000000000000000000000000000000000000000000000006001615625565b8103611bcd57611bcd86888588614282565b34611bd78361351a565b14611c0e576040517f8620aa1900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000611c198861333b565b905067ffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000811690821603611c81576040517f3381d11400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000611cae60017f0000000000000000000000000000000000000000000000000000000000000000615675565b8303611dfc57367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036098013560601c73ffffffffffffffffffffffffffffffffffffffff16637dc0d1d06040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d2f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d53919061568c565b73ffffffffffffffffffffffffffffffffffffffff1663f3f480d96040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dc191906156a9565b611df5907f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff166156c2565b9050611e8f565b611e2760017f0000000000000000000000000000000000000000000000000000000000000000615675565b8303611e6257611df57f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff1660026156ee565b507f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff165b611ec3817f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff1661571e565b67ffffffffffffffff16611ede8367ffffffffffffffff1690565b67ffffffffffffffff161115611f2557611f22817f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff1661571e565b91505b6000604083901b421760008a8152608087901b6fffffffffffffffffffffffffffffffff8d1617602052604081209192509060008181526003602052604090205490915060ff1615611fa3576040517f80497e3b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60016003600083815260200190815260200160002060006101000a81548160ff02191690831515021790555060016040518060e001604052808d63ffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020013373ffffffffffffffffffffffffffffffffffffffff168152602001346fffffffffffffffffffffffffffffffff1681526020018c8152602001886fffffffffffffffffffffffffffffffff168152602001846fffffffffffffffffffffffffffffffff16815250908060018154018082558091505060019003906000526020600020906005020160009091909190915060008201518160000160006101000a81548163ffffffff021916908363ffffffff16021790555060208201518160000160046101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060608201518160020160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055506080820151816003015560a08201518160040160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555060c08201518160040160106101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055505050600460008c8152602001908152602001600020600180805490506122389190615675565b81546001810183556000928352602080842090910191909155338252600a905260408120805434929061226c908490615625565b9091555050367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360c0013560601c73ffffffffffffffffffffffffffffffffffffffff1663d0e30db0346040518263ffffffff1660e01b81526004016000604051808303818588803b1580156122e957600080fd5b505af11580156122fd573d6000803e3d6000fd5b50506040513393508d92508e91507f9b3245740ec3b155098a55be84957a4da13eaf7f14a8bc6f53126c0b9350f2be90600090a4505050505050505050505050565b367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360ac013560601c73ffffffffffffffffffffffffffffffffffffffff16635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156123ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123de9190615747565b15612415576040517f379a7ed900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600c5460ff16600281111561242e5761242e6152c7565b148061245057506001600c5460ff16600281111561244e5761244e6152c7565b145b1561245757565b6000600c5460ff166002811115612470576124706152c7565b146124a7576040517f078a3df400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005468010000000000000000900467ffffffffffffffff1667ffffffffffffffff16600003612503576040517fc105260a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360ac013560601c6040517f0314d2b300000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff9190911690630314d2b390602401602060405180830381865afa1580156125a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125c69190615747565b9050806125ff576040517f4851bd9b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360ac013560601c6040517f17cf21a900000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906317cf21a990602401600060405180830381600087803b15801561269957600080fd5b505af19250505080156126aa575060015b506000367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360ac013560601c6040517f496b9c1600000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff919091169063496b9c1690602401602060405180830381865afa15801561274a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061276e9190615747565b905080156127a657600c80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790556127d2565b600c80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660021790555b600c546040517f9908eaac0645df9d0704d06adc9e07337c951de2f06b5f2836151d48d5e4722f916128099160ff90911690615330565b60405180910390a15050565b61147b838383600061189b565b60005471010000000000000000000000000000000000900460ff1615612874576040517f0dc149f000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61287c61443c565b36146128b4576040517f9824bdab00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360ac013560601c73ffffffffffffffffffffffffffffffffffffffff1663d83ef2676040518163ffffffff1660e01b81526004016040805180830381865afa158015612931573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129559190615764565b909250905081612991576040517f6a6bc3b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fffd7db0f9d5cdeb49c4c9eba649d4dc6d852d64671e65488e57f58584992ac686129e9367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036014013590565b90565b03612a20576040517f2cfac08200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604080518082019091528281526020018190526007829055600881905567ffffffffffffffff367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036098013560601c73ffffffffffffffffffffffffffffffffffffffff16637dc0d1d06040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ac1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ae5919061568c565b73ffffffffffffffffffffffffffffffffffffffff1663f3f480d96040518163ffffffff1660e01b8152600401602060405180830381865afa158015612b2f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b5391906156a9565b1115612b8b576040517fb4e1243300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000612bc27f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff166002615788565b90506000367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036098013560601c73ffffffffffffffffffffffffffffffffffffffff16637dc0d1d06040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c41573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c65919061568c565b73ffffffffffffffffffffffffffffffffffffffff1663f3f480d96040518163ffffffff1660e01b8152600401602060405180830381865afa158015612caf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cd391906156a9565b612d07907f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff16615625565b90506000612d15838361444a565b905067ffffffffffffffff811115612d59576040517f8d77ecac00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b67ffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001667ffffffffffffffff168167ffffffffffffffff161115612dd1576040517f8d77ecac00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360d4013515612e36576040517f223db39400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b83367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036058013511612ed0576040517ff40239db000000000000000000000000000000000000000000000000000000008152367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036014013560048201526024015b60405180910390fd5b6040805160e08101825263ffffffff80825260006020808401828152367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90038035606090811c8789018181526fffffffffffffffffffffffffffffffff34818116948b0194855260149095013560808b01908152600160a08c0181815242841660c08e0190815282548084018455928c529c517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6600590930292830180549a5191909d167fffffffffffffffff000000000000000000000000000000000000000000000000909a169990991764010000000073ffffffffffffffffffffffffffffffffffffffff9a8b160217909b5592517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf7840180547fffffffffffffffffffffffff000000000000000000000000000000000000000016919098161790965592517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf8820180547fffffffffffffffffffffffffffffffff000000000000000000000000000000001691851691909117905593517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf9850155955196519681167001000000000000000000000000000000009790911696909602959095177fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cfa909101558154710100000000000000000000000000000000007fffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff909116178255918152600a909152918220805491929091613151908490615625565b9091555050367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360c0013560601c73ffffffffffffffffffffffffffffffffffffffff1663d0e30db0346040518263ffffffff1660e01b81526004016000604051808303818588803b1580156131ce57600080fd5b505af11580156131e2573d6000803e3d6000fd5b5050600080547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000164267ffffffffffffffff161790555061322591506133079050565b63ffffffff16367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360ac013560601c73ffffffffffffffffffffffffffffffffffffffff16633c9f397c6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156132a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132ca91906157c5565b600980547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001663ffffffff92909216929092141790555050505050565b367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036054013560e01c90565b600080600054700100000000000000000000000000000000900460ff166002811115613369576133696152c7565b146133a0576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600183815481106133b5576133b56155c7565b600091825260208220600590910201805490925063ffffffff9081161461342457815460018054909163ffffffff169081106133f3576133f36155c7565b906000526020600020906005020160040160109054906101000a90046fffffffffffffffffffffffffffffffff1690505b600482015460009061345c90700100000000000000000000000000000000900467ffffffffffffffff165b67ffffffffffffffff1690565b6134709067ffffffffffffffff1642615675565b61348f61344f846fffffffffffffffffffffffffffffffff1660401c90565b67ffffffffffffffff166134a39190615625565b905067ffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001667ffffffffffffffff168167ffffffffffffffff16116134f057806114b1565b7f000000000000000000000000000000000000000000000000000000000000000095945050505050565b6000806135b9836fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff1690507f0000000000000000000000000000000000000000000000000000000000000000811115613618576040517f56f57b2b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b642e90edd00062061a806311e1a3006000613633838361581a565b9050670de0b6b3a7640000600061366a827f0000000000000000000000000000000000000000000000000000000000000000615788565b90506000613688613683670de0b6b3a764000086615788565b614465565b9050600061369684846146c0565b905060006136a4838361470f565b905060006136b18261473d565b905060006136d0826136cb670de0b6b3a76400008f615788565b614925565b905060006136de8b8361470f565b90506136ea818d615788565b9f9e505050505050505050505050505050565b6001818154811061370d57600080fd5b60009182526020909120600590910201805460018201546002830154600384015460049094015463ffffffff8416955064010000000090930473ffffffffffffffffffffffffffffffffffffffff908116949216926fffffffffffffffffffffffffffffffff91821692918082169170010000000000000000000000000000000090041687565b60006002600c5460ff1660028111156137af576137af6152c7565b036137dd575073ffffffffffffffffffffffffffffffffffffffff166000908152600a602052604090205490565b5073ffffffffffffffffffffffffffffffffffffffff1660009081526002602052604090205490565b60008054700100000000000000000000000000000000900460ff166002811115613832576138326152c7565b14613869576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006001878154811061387e5761387e6155c7565b6000918252602082206005919091020160048101549092506fffffffffffffffffffffffffffffffff16908715821760011b90506138dd7f00000000000000000000000000000000000000000000000000000000000000006001615625565b613979826fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff16146139b3576040517f5f53dd9800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000808915613ab757613a067f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000615675565b6001901b613a25846fffffffffffffffffffffffffffffffff16614956565b6fffffffffffffffffffffffffffffffff16613a41919061582e565b15613a7e57613a75613a6660016fffffffffffffffffffffffffffffffff8716615842565b865463ffffffff1660006149f5565b60030154613aad565b367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c9003607801355b9150849050613ae1565b60038501549150613ade613a666fffffffffffffffffffffffffffffffff8616600161586b565b90505b600882901b60088a8a604051613af8929190615896565b6040518091039020901b14613b39576040517f696550ff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000613b448c614ad9565b90506000613b53836003015490565b6040517fe14ced32000000000000000000000000000000000000000000000000000000008152367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036098013560601c9063e14ced3290613bc7908f908f908f908f908a906004016158ef565b6020604051808303816000875af1158015613be6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c0a91906156a9565b600485015491149150600090600290613cb5906fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b613d51896fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b613d5b9190615929565b613d65919061594c565b60ff161590508115158103613da6576040517ffb4e40dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8754640100000000900473ffffffffffffffffffffffffffffffffffffffff1615613dfd576040517f9071e6af00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505085547fffffffffffffffff0000000000000000000000000000000000000000ffffffff163364010000000002179095555050505050505050505050565b60008054700100000000000000000000000000000000900460ff166002811115613e6857613e686152c7565b14613e9f576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080600080613eae86614b08565b93509350935093506000613ec485858585614f11565b90506000367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036098013560601c73ffffffffffffffffffffffffffffffffffffffff16637dc0d1d06040518163ffffffff1660e01b8152600401602060405180830381865afa158015613f43573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f67919061568c565b90506001890361405f5773ffffffffffffffffffffffffffffffffffffffff81166352f0f3ad8a84613fc3367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036034013590565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e086901b16815260048101939093526024830191909152604482015260206064820152608481018a905260a4015b6020604051808303816000875af1158015614035573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061405991906156a9565b50611208565b6002890361408b5773ffffffffffffffffffffffffffffffffffffffff81166352f0f3ad8a8489613fc3565b600389036140b75773ffffffffffffffffffffffffffffffffffffffff81166352f0f3ad8a8487613fc3565b6004890361415d576040517f52f0f3ad000000000000000000000000000000000000000000000000000000008152600481018a905260248101839052367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036058013560c01b6044820152600860648201526084810188905273ffffffffffffffffffffffffffffffffffffffff8216906352f0f3ad9060a401614016565b6040517fff137e6500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c9003605481013560e01c906014013560606141d06114ba565b9050909192565b60028082015473ffffffffffffffffffffffffffffffffffffffff841660009081526020929092526040822080546fffffffffffffffffffffffffffffffff909216929091614227908490615625565b90915550505050565b604051818152367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90038284820160208401378260208301016000815260208101604052505092915050565b60006142a16fffffffffffffffffffffffffffffffff8416600161586b565b905060006142b1828660016149f5565b9050600086901a838061439d57506142ea60027f000000000000000000000000000000000000000000000000000000000000000061582e565b600483015460029061438e906fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b614398919061594c565b60ff16145b156143f55760ff8116600114806143b7575060ff81166002145b6143f0576040517ff40239db00000000000000000000000000000000000000000000000000000000815260048101889052602401612ec7565b614433565b60ff811615614433576040517ff40239db00000000000000000000000000000000000000000000000000000000815260048101889052602401612ec7565b50505050505050565b600061146960f46006615625565b60008183101561445a578161445c565b825b90505b92915050565b6fffffffffffffffffffffffffffffffff811160071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b17600082136144c457631615e6386000526004601cfd5b7ff8f9f9faf9fdfafbf9fdfcfdfafbfcfef9fafdfafcfcfbfefafafcfbffffffff6f8421084210842108cc6318c6db6d54be83831c1c601f161a1890811b609f90811c6c465772b2bbbb5f824b15207a3081018102606090811d6d0388eaa27412d5aca026815d636e018202811d6d0df99ac502031bf953eff472fdcc018202811d6d13cdffb29d51d99322bdff5f2211018202811d6d0a0f742023def783a307a986912e018202811d6d01920d8043ca89b5239253284e42018202811d6c0b7a86d7375468fac667a0a527016c29508e458543d8aa4df2abee7883018302821d6d0139601a2efabe717e604cbb4894018302821d6d02247f7a7b6594320649aa03aba1018302821d7fffffffffffffffffffffffffffffffffffffff73c0c716a594e00d54e3c4cbc9018302821d7ffffffffffffffffffffffffffffffffffffffdc7b88c420e53a9890533129f6f01830290911d7fffffffffffffffffffffffffffffffffffffff465fda27eb4d63ded474e5f832019091027ffffffffffffffff5f6af8f7b3396644f18e157960000000000000000000000000105711340daa0d5f769dba1915cef59f0815a5506029190037d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b302017d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b88642840160ae1d90565b60007812725dd1d243aba0e75fe645cc4873f9e65afe688c928e1f218311670de0b6b3a7640000021582026146fd57637c5f487d6000526004601cfd5b50670de0b6b3a7640000919091020490565b60008160001904831182021561472d5763bac65e5b6000526004601cfd5b50670de0b6b3a764000091020490565b60007ffffffffffffffffffffffffffffffffffffffffffffffffdc0d0570925a462d7821361476b57919050565b680755bf798b4a1bf1e582126147895763a37bfec96000526004601cfd5b6503782dace9d9604e83901b059150600060606bb17217f7d1cf79abc9e3b39884821b056b80000000000000000000000001901d6bb17217f7d1cf79abc9e3b39881029093037fffffffffffffffffffffffffffffffffffffffdbf3ccf1604d263450f02a550481018102606090811d6d0277594991cfc85f6e2461837cd9018202811d7fffffffffffffffffffffffffffffffffffffe5adedaa1cb095af9e4da10e363c018202811d6db1bbb201f443cf962f1a1d3db4a5018202811d7ffffffffffffffffffffffffffffffffffffd38dc772608b0ae56cce01296c0eb018202811d6e05180bb14799ab47a8a8cb2a527d57016d02d16720577bd19bf614176fe9ea6c10fe68e7fd37d0007b713f765084018402831d9081019084017ffffffffffffffffffffffffffffffffffffffe2c69812cf03b0763fd454a8f7e010290911d6e0587f503bb6ea29d25fcb7401964500190910279d835ebba824c98fb31b83b2ca45c000000000000000000000000010574029d9dc38563c32e5c2f6dc192ee70ef65f9978af30260c3939093039290921c92915050565b600061445c670de0b6b3a76400008361493d86614465565b614947919061596e565b6149519190615a2a565b61473d565b6000806149e3837e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b600160ff919091161b90920392915050565b60008082614a3e57614a396fffffffffffffffffffffffffffffffff86167f0000000000000000000000000000000000000000000000000000000000000000614fcb565b614a59565b614a59856fffffffffffffffffffffffffffffffff16615157565b905060018481548110614a6e57614a6e6155c7565b906000526020600020906005020191505b60048201546fffffffffffffffffffffffffffffffff828116911614614ad157815460018054909163ffffffff16908110614abc57614abc6155c7565b90600052602060002090600502019150614a7f565b509392505050565b6000806000806000614aea86614b08565b9350935093509350614afe84848484614f11565b9695505050505050565b6000806000806000859050600060018281548110614b2857614b286155c7565b600091825260209091206004600590920201908101549091507f000000000000000000000000000000000000000000000000000000000000000090614bff906fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff1611614c39576040517fb34b5c2200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000815b60048301547f000000000000000000000000000000000000000000000000000000000000000090614d00906fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff169250821115614d7557825463ffffffff16614d3f7f00000000000000000000000000000000000000000000000000000000000000006001615625565b8303614d49578391505b60018181548110614d5c57614d5c6155c7565b9060005260206000209060050201935080945050614c3d565b600481810154908401546fffffffffffffffffffffffffffffffff91821691166000816fffffffffffffffffffffffffffffffff16614dde614dc9856fffffffffffffffffffffffffffffffff1660011c90565b6fffffffffffffffffffffffffffffffff1690565b6fffffffffffffffffffffffffffffffff161490508015614ead576000614e16836fffffffffffffffffffffffffffffffff16614956565b6fffffffffffffffffffffffffffffffff161115614e81576000614e58614e5060016fffffffffffffffffffffffffffffffff8616615842565b8960016149f5565b6003810154600490910154909c506fffffffffffffffffffffffffffffffff169a50614e879050565b6007549a505b600386015460048701549099506fffffffffffffffffffffffffffffffff169750614f03565b6000614ecf614e506fffffffffffffffffffffffffffffffff8516600161586b565b6003808901546004808b015492840154930154909e506fffffffffffffffffffffffffffffffff9182169d50919b50169850505b505050505050509193509193565b60006fffffffffffffffffffffffffffffffff841615614f7e5760408051602081018790526fffffffffffffffffffffffffffffffff8087169282019290925260608101859052908316608082015260a001604051602081830303815290604052805190602001206114b1565b8282604051602001614fac9291909182526fffffffffffffffffffffffffffffffff16602082015260400190565b6040516020818303038152906040528051906020012095945050505050565b60008161506a846fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff16116150805763b34b5c226000526004601cfd5b61508983615157565b905081615128826fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff161161445f5761445c61513e836001615625565b6fffffffffffffffffffffffffffffffff8316906151fc565b600081196001830116816151eb827e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff169390931c8015179392505050565b600080615289847e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff169050808303600180821b0385821b179250505092915050565b600080604083850312156152b857600080fd5b50508035926020909101359150565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6003811061532d577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b50565b6020810161533d836152f6565b91905290565b73ffffffffffffffffffffffffffffffffffffffff8116811461532d57600080fd5b60006020828403121561537757600080fd5b813561538281615343565b9392505050565b60008060006060848603121561539e57600080fd5b505081359360208301359350604090920135919050565b6000815180845260005b818110156153db576020818501810151868301820152016153bf565b818111156153ed576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60208152600061445c60208301846153b5565b60006020828403121561544557600080fd5b5035919050565b801515811461532d57600080fd5b6000806000806080858703121561547057600080fd5b84359350602085013592506040850135915060608501356154908161544c565b939692955090935050565b6000602082840312156154ad57600080fd5b81356fffffffffffffffffffffffffffffffff8116811461538257600080fd5b60008083601f8401126154df57600080fd5b50813567ffffffffffffffff8111156154f757600080fd5b60208301915083602082850101111561550f57600080fd5b9250929050565b6000806000806000806080878903121561552f57600080fd5b8635955060208701356155418161544c565b9450604087013567ffffffffffffffff8082111561555e57600080fd5b61556a8a838b016154cd565b9096509450606089013591508082111561558357600080fd5b5061559089828a016154cd565b979a9699509497509295939492505050565b63ffffffff841681528260208201526060604082015260006114b160608301846153b5565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008219821115615638576156386155f6565b500190565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361566e5761566e6155f6565b5060010190565b600082821015615687576156876155f6565b500390565b60006020828403121561569e57600080fd5b815161538281615343565b6000602082840312156156bb57600080fd5b5051919050565b600067ffffffffffffffff8083168185168083038211156156e5576156e56155f6565b01949350505050565b600067ffffffffffffffff80831681851681830481118215151615615715576157156155f6565b02949350505050565b600067ffffffffffffffff8381169083168181101561573f5761573f6155f6565b039392505050565b60006020828403121561575957600080fd5b81516153828161544c565b6000806040838503121561577757600080fd5b505080516020909101519092909150565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156157c0576157c06155f6565b500290565b6000602082840312156157d757600080fd5b815163ffffffff8116811461538257600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600082615829576158296157eb565b500490565b60008261583d5761583d6157eb565b500690565b60006fffffffffffffffffffffffffffffffff8381169083168181101561573f5761573f6155f6565b60006fffffffffffffffffffffffffffffffff8083168185168083038211156156e5576156e56155f6565b8183823760009101908152919050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b6060815260006159036060830187896158a6565b82810360208401526159168186886158a6565b9150508260408301529695505050505050565b600060ff821660ff841680821015615943576159436155f6565b90039392505050565b600060ff83168061595f5761595f6157eb565b8060ff84160691505092915050565b60007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6000841360008413858304851182821616156159af576159af6155f6565b7f800000000000000000000000000000000000000000000000000000000000000060008712868205881281841616156159ea576159ea6155f6565b60008712925087820587128484161615615a0657615a066155f6565b87850587128184161615615a1c57615a1c6155f6565b505050929093029392505050565b600082615a3957615a396157eb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83147f800000000000000000000000000000000000000000000000000000000000000083141615615a8d57615a8d6155f6565b50059056fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R`\x046\x10a\x03\x08W`\x005`\xE0\x1C\x80cxk\x84K\x11a\x01\x9AW\x80c\xC3\x95\xE1\xCA\x11a\0\xE1W\x80c\xEC^c\x08\x11a\0\x8AW\x80c\xFA$\xF7C\x11a\0dW\x80c\xFA$\xF7C\x14a\x0B\x80W\x80c\xFA1Z\xA9\x14a\x0B\xA4W\x80c\xFE+\xBE\xB2\x14a\x0B\xD7W`\0\x80\xFD[\x80c\xEC^c\x08\x14a\n\xFDW\x80c\xEF\xF0\xF5\x92\x14a\x0B0W\x80c\xF8\xF4?\xF6\x14a\x0B`W`\0\x80\xFD[\x80c\xD5\xD4M\x80\x11a\0\xBBW\x80c\xD5\xD4M\x80\x14a\n\x8AW\x80c\xD8\xCC\x1A<\x14a\n\xAAW\x80c\xDA\xBD9m\x14a\n\xCAW`\0\x80\xFD[\x80c\xC3\x95\xE1\xCA\x14a\t\xBFW\x80c\xC6\xF00\x8C\x14a\t\xDFW\x80c\xCF\t\xE0\xD0\x14a\niW`\0\x80\xFD[\x80c\x99s^2\x11a\x01CW\x80c\xBC\xEF;U\x11a\x01\x1DW\x80c\xBC\xEF;U\x14a\t2W\x80c\xBD\x8D\xA9V\x14a\trW\x80c\xC0\xD8\xBBt\x14a\t\x92W`\0\x80\xFD[\x80c\x99s^2\x14a\x07\xDBW\x80c\xA4E\xEC\xE6\x14a\x08\x1BW\x80c\xBB\xDC\x02\xDB\x14a\x08\xE7W`\0\x80\xFD[\x80c\x89\x80\xE0\xCC\x11a\x01tW\x80c\x89\x80\xE0\xCC\x14a\x07VW\x80c\x8DE\n\x95\x14a\x07kW\x80c\x93\x8Dh\x9A\x14a\x07\xABW`\0\x80\xFD[\x80cxk\x84K\x14a\x07&W\x80c{\x0F\n\xDC\x14a\x07;W\x80c\x81)\xFC\x1C\x14a\x07NW`\0\x80\xFD[\x80c?\xC8\xCE\xF3\x11a\x02^W\x80c\\\x0C\xBA3\x11a\x02\x07W\x80ccaPm\x11a\x01\xE1W\x80ccaPm\x14a\x06\xA0W\x80ckg\x16\xC0\x14a\x06\xE0W\x80co\x03D\t\x14a\x07\x13W`\0\x80\xFD[\x80c\\\x0C\xBA3\x14a\x06(W\x80c`\x9D34\x14a\x06kW\x80c`\xE2td\x14a\x06\x80W`\0\x80\xFD[\x80cT\xFDMP\x11a\x028W\x80cT\xFDMP\x14a\x05\xA4W\x80cY\xCE\xBE\t\x14a\x05\xF3W\x80cZ_\xA2\xD9\x14a\x06\x08W`\0\x80\xFD[\x80c?\xC8\xCE\xF3\x14a\x05!W\x80cG'w\xC6\x14a\x05dW\x80cR\x9Dj\x8C\x14a\x05wW`\0\x80\xFD[\x80c%\xFC*\xCE\x11a\x02\xC0W\x80c7\x8D\xD4\x8C\x11a\x02\x9AW\x80c7\x8D\xD4\x8C\x14a\x04cW\x80c7\xB1\xB2)\x14a\x04}W\x80c:v\x84c\x14a\x04\xDEW`\0\x80\xFD[\x80c%\xFC*\xCE\x14a\x04\x0FW\x80c(\x10\xE1\xD6\x14a\x04.W\x80c*\xD6\x9A\xEB\x14a\x04CW`\0\x80\xFD[\x80c \r.\xD2\x11a\x02\xF1W\x80c \r.\xD2\x14a\x03zW\x80c\"*\xBFE\x14a\x03\xB5W\x80c%\x0Ei\xBD\x14a\x03\xF5W`\0\x80\xFD[\x80c\x03\xC2\x92M\x14a\x03\rW\x80c\x19\xEF\xFE\xB4\x14a\x03/W[`\0\x80\xFD[4\x80\x15a\x03\x19W`\0\x80\xFD[Pa\x03-a\x03(6`\x04aR\xA5V[a\x0C\x07V[\0[4\x80\x15a\x03;W`\0\x80\xFD[P`\0Ta\x03\\\x90h\x01\0\0\0\0\0\0\0\0\x90\x04g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[`@Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[4\x80\x15a\x03\x86W`\0\x80\xFD[P`\0Ta\x03\xA8\x90p\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16\x81V[`@Qa\x03q\x91\x90aS0V[4\x80\x15a\x03\xC1W`\0\x80\xFD[Pa\x03\xE5a\x03\xD06`\x04aSeV[`\x0B` R`\0\x90\x81R`@\x90 T`\xFF\x16\x81V[`@Q\x90\x15\x15\x81R` \x01a\x03qV[4\x80\x15a\x04\x01W`\0\x80\xFD[P`\tTa\x03\xE5\x90`\xFF\x16\x81V[4\x80\x15a\x04\x1BW`\0\x80\xFD[P`\x07T[`@Q\x90\x81R` \x01a\x03qV[4\x80\x15a\x04:W`\0\x80\xFD[Pa\x03\xA8a\x12\x13V[4\x80\x15a\x04OW`\0\x80\xFD[Pa\x04 a\x04^6`\x04aR\xA5V[a\x148V[4\x80\x15a\x04oW`\0\x80\xFD[P`\x0CTa\x03\xA8\x90`\xFF\x16\x81V[4\x80\x15a\x04\x89W`\0\x80\xFD[P6\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x035``\x1C[`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01a\x03qV[4\x80\x15a\x04\xEAW`\0\x80\xFD[P6\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`\x98\x015``\x1Ca\x04\xB9V[4\x80\x15a\x05-W`\0\x80\xFD[P6\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`\xC0\x015``\x1Ca\x04\xB9V[a\x03-a\x05r6`\x04aS\x89V[a\x14nV[4\x80\x15a\x05\x83W`\0\x80\xFD[Pa\x04 a\x05\x926`\x04aSeV[`\x02` R`\0\x90\x81R`@\x90 T\x81V[4\x80\x15a\x05\xB0W`\0\x80\xFD[P`@\x80Q\x80\x82\x01\x90\x91R`\x05\x81R\x7F0.6.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` \x82\x01R[`@Qa\x03q\x91\x90aT V[4\x80\x15a\x05\xFFW`\0\x80\xFD[P`\x08Ta\x04 V[4\x80\x15a\x06\x14W`\0\x80\xFD[Pa\x04 a\x06#6`\x04aT3V[a\x14\x80V[4\x80\x15a\x064W`\0\x80\xFD[P6\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`\xAC\x015``\x1Ca\x04\xB9V[4\x80\x15a\x06wW`\0\x80\xFD[Pa\x05\xE6a\x14\xBAV[4\x80\x15a\x06\x8CW`\0\x80\xFD[Pa\x03-a\x06\x9B6`\x04aSeV[a\x14\xC8V[4\x80\x15a\x06\xACW`\0\x80\xFD[P6\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`4\x015a\x04 V[4\x80\x15a\x06\xECW`\0\x80\xFD[P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x03\\V[a\x03-a\x07!6`\x04aTZV[a\x18\x9BV[4\x80\x15a\x072W`\0\x80\xFD[Pa\x03-a#?V[a\x03-a\x07I6`\x04aS\x89V[a(\x15V[a\x03-a(\"V[4\x80\x15a\x07bW`\0\x80\xFD[P`\x01Ta\x04 V[4\x80\x15a\x07wW`\0\x80\xFD[P6\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`x\x015a\x04 V[4\x80\x15a\x07\xB7W`\0\x80\xFD[P`\x07T`\x08Ta\x07\xC6\x91\x90\x82V[`@\x80Q\x92\x83R` \x83\x01\x91\x90\x91R\x01a\x03qV[4\x80\x15a\x07\xE7W`\0\x80\xFD[P6\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`X\x015a\x04 V[4\x80\x15a\x08'W`\0\x80\xFD[Pa\x08\x93a\x0866`\x04aT3V[`\x06` R`\0\x90\x81R`@\x90 \x80T`\x01\x90\x91\x01T`\xFF\x82\x16\x91a\x01\0\x81\x04c\xFF\xFF\xFF\xFF\x16\x91e\x01\0\0\0\0\0\x90\x91\x04o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x84V[`@\x80Q\x94\x15\x15\x85Rc\xFF\xFF\xFF\xFF\x90\x93\x16` \x85\x01Ro\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x91\x83\x01\x91\x90\x91Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16``\x82\x01R`\x80\x01a\x03qV[4\x80\x15a\x08\xF3W`\0\x80\xFD[P`@Q6\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`T\x015`\xE0\x1C\x81R` \x01a\x03qV[4\x80\x15a\t>W`\0\x80\xFD[P6\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`\x14\x015a\x04 V[4\x80\x15a\t~W`\0\x80\xFD[Pa\x03\\a\t\x8D6`\x04aT3V[a3;V[4\x80\x15a\t\x9EW`\0\x80\xFD[Pa\x04 a\t\xAD6`\x04aSeV[`\n` R`\0\x90\x81R`@\x90 T\x81V[4\x80\x15a\t\xCBW`\0\x80\xFD[Pa\x04 a\t\xDA6`\x04aT\x9BV[a5\x1AV[4\x80\x15a\t\xEBW`\0\x80\xFD[Pa\t\xFFa\t\xFA6`\x04aT3V[a6\xFDV[`@\x80Qc\xFF\xFF\xFF\xFF\x90\x98\x16\x88Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x96\x87\x16` \x89\x01R\x95\x90\x94\x16\x94\x86\x01\x94\x90\x94Ro\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x91\x82\x16``\x86\x01R`\x80\x85\x01R\x91\x82\x16`\xA0\x84\x01R\x16`\xC0\x82\x01R`\xE0\x01a\x03qV[4\x80\x15a\nuW`\0\x80\xFD[P`\0Ta\x03\\\x90g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[4\x80\x15a\n\x96W`\0\x80\xFD[Pa\x04 a\n\xA56`\x04aSeV[a7\x94V[4\x80\x15a\n\xB6W`\0\x80\xFD[Pa\x03-a\n\xC56`\x04aU\x16V[a8\x06V[4\x80\x15a\n\xD6W`\0\x80\xFD[P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x03\\V[4\x80\x15a\x0B\tW`\0\x80\xFD[P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x04 V[4\x80\x15a\x0B=`\0\xFD[PPPPPPV[\x80`\0\x03a\x17\x13W`@Q\x7F\x17\xBF\xE5\xF7\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\x01`@Q\x80\x91\x03\x90\xFD[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16`\0\x90\x81R`\n` \x90\x81R`@\x80\x83 \x83\x90U`\x02\x90\x91R\x81 U6\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`\xC0\x015``\x1C`@Q\x7F\xF3\xFE\xF3\xA3\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\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x81\x16`\x04\x83\x01R`$\x82\x01\x84\x90R\x91\x90\x91\x16\x90c\xF3\xFE\xF3\xA3\x90`D\x01`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a\x17\xE9W`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x17\xFDW=`\0\x80>=`\0\xFD[PPPP`\0\x82s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x82`@Q`\0`@Q\x80\x83\x03\x81\x85\x87Z\xF1\x92PPP=\x80`\0\x81\x14a\x18[W`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=`\0` \x84\x01>a\x18`V[``\x91P[PP\x90P\x80a\x14{W`@Q\x7F\x83\xE6\xCCk\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\x01`@Q\x80\x91\x03\x90\xFD[`\0\x80Tp\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16`\x02\x81\x11\x15a\x18\xC7Wa\x18\xC7aR\xC7V[\x14a\x18\xFEW`@Q\x7Fg\xFE\x19P\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\x01`@Q\x80\x91\x03\x90\xFD[`\0`\x01\x84\x81T\x81\x10a\x19\x13Wa\x19\x13aU\xC7V[`\0\x91\x82R` \x91\x82\x90 `@\x80Q`\xE0\x81\x01\x82R`\x05\x90\x93\x02\x90\x91\x01\x80Tc\xFF\xFF\xFF\xFF\x81\x16\x84Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFFd\x01\0\0\0\0\x90\x91\x04\x81\x16\x94\x84\x01\x94\x90\x94R`\x01\x81\x01T\x90\x93\x16\x90\x82\x01R`\x02\x82\x01To\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x81\x16``\x83\x01R`\x03\x83\x01T`\x80\x83\x01\x81\x90R`\x04\x90\x93\x01T\x80\x82\x16`\xA0\x84\x01Rp\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04\x16`\xC0\x82\x01R\x91P\x85\x14a\x19\xFAW`@Q\x7F0\x14\x032\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\x01`@Q\x80\x91\x03\x90\xFD[`\xA0\x81\x01Q`\0\x83\x15o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x16\x17`\x01\x1B\x90P`\0a\x1A\xBA\x82o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1F\x7F\x07\xC4\xAC\xDD\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\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\xFF\x16\x90P\x86\x15\x80a\x1A\xF5WPa\x1A\xF2\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x02aV%V[\x81\x14[\x80\x15a\x1A\xFFWP\x84\x15[\x15a\x1B6W`@Q\x7F\xA4&7\xBC\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\x01`@Q\x80\x91\x03\x90\xFD[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81\x11\x15a\x1B\x90W`@Q\x7FV\xF5{+\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\x01`@Q\x80\x91\x03\x90\xFD[a\x1B\xBB\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01aV%V[\x81\x03a\x1B\xCDWa\x1B\xCD\x86\x88\x85\x88aB\x82V[4a\x1B\xD7\x83a5\x1AV[\x14a\x1C\x0EW`@Q\x7F\x86 \xAA\x19\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\x01`@Q\x80\x91\x03\x90\xFD[`\0a\x1C\x19\x88a3;V[\x90Pg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81\x16\x90\x82\x16\x03a\x1C\x81W`@Q\x7F3\x81\xD1\x14\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\x01`@Q\x80\x91\x03\x90\xFD[`\0a\x1C\xAE`\x01\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0aVuV[\x83\x03a\x1D\xFCW6\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`\x98\x015``\x1Cs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c}\xC0\xD1\xD0`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x1D/W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x1DS\x91\x90aV\x8CV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xF3\xF4\x80\xD9`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x1D\x9DW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x1D\xC1\x91\x90aV\xA9V[a\x1D\xF5\x90\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16aV\xC2V[\x90Pa\x1E\x8FV[a\x1E'`\x01\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0aVuV[\x83\x03a\x1EbWa\x1D\xF5\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\x02aV\xEEV[P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16[a\x1E\xC3\x81\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16aW\x1EV[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a\x1E\xDE\x83g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90V[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x11\x15a\x1F%Wa\x1F\"\x81\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16aW\x1EV[\x91P[`\0`@\x83\x90\x1BB\x17`\0\x8A\x81R`\x80\x87\x90\x1Bo\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x8D\x16\x17` R`@\x81 \x91\x92P\x90`\0\x81\x81R`\x03` R`@\x90 T\x90\x91P`\xFF\x16\x15a\x1F\xA3W`@Q\x7F\x80I~;\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x03`\0\x83\x81R` \x01\x90\x81R` \x01`\0 `\0a\x01\0\n\x81T\x81`\xFF\x02\x19\x16\x90\x83\x15\x15\x02\x17\x90UP`\x01`@Q\x80`\xE0\x01`@R\x80\x8Dc\xFF\xFF\xFF\xFF\x16\x81R` \x01`\0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81R` \x013s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81R` \x014o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81R` \x01\x8C\x81R` \x01\x88o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81R` \x01\x84o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81RP\x90\x80`\x01\x81T\x01\x80\x82U\x80\x91PP`\x01\x90\x03\x90`\0R` `\0 \x90`\x05\x02\x01`\0\x90\x91\x90\x91\x90\x91P`\0\x82\x01Q\x81`\0\x01`\0a\x01\0\n\x81T\x81c\xFF\xFF\xFF\xFF\x02\x19\x16\x90\x83c\xFF\xFF\xFF\xFF\x16\x02\x17\x90UP` \x82\x01Q\x81`\0\x01`\x04a\x01\0\n\x81T\x81s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x02\x19\x16\x90\x83s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x02\x17\x90UP`@\x82\x01Q\x81`\x01\x01`\0a\x01\0\n\x81T\x81s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x02\x19\x16\x90\x83s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x02\x17\x90UP``\x82\x01Q\x81`\x02\x01`\0a\x01\0\n\x81T\x81o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x02\x19\x16\x90\x83o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x02\x17\x90UP`\x80\x82\x01Q\x81`\x03\x01U`\xA0\x82\x01Q\x81`\x04\x01`\0a\x01\0\n\x81T\x81o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x02\x19\x16\x90\x83o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x02\x17\x90UP`\xC0\x82\x01Q\x81`\x04\x01`\x10a\x01\0\n\x81T\x81o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x02\x19\x16\x90\x83o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x02\x17\x90UPPP`\x04`\0\x8C\x81R` \x01\x90\x81R` \x01`\0 `\x01\x80\x80T\x90Pa\"8\x91\x90aVuV[\x81T`\x01\x81\x01\x83U`\0\x92\x83R` \x80\x84 \x90\x91\x01\x91\x90\x91U3\x82R`\n\x90R`@\x81 \x80T4\x92\x90a\"l\x90\x84\x90aV%V[\x90\x91UPP6\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`\xC0\x015``\x1Cs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xD0\xE3\r\xB04`@Q\x82c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01`\0`@Q\x80\x83\x03\x81\x85\x88\x80;\x15\x80\x15a\"\xE9W`\0\x80\xFD[PZ\xF1\x15\x80\x15a\"\xFDW=`\0\x80>=`\0\xFD[PP`@Q3\x93P\x8D\x92P\x8E\x91P\x7F\x9B2Et\x0E\xC3\xB1U\t\x8AU\xBE\x84\x95zM\xA1>\xAF\x7F\x14\xA8\xBCoS\x12l\x0B\x93P\xF2\xBE\x90`\0\x90\xA4PPPPPPPPPPPPV[6\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`\xAC\x015``\x1Cs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\\\x97Z\xBB`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a#\xBAW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a#\xDE\x91\x90aWGV[\x15a$\x15W`@Q\x7F7\x9A~\xD9\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\x01`@Q\x80\x91\x03\x90\xFD[`\x02`\x0CT`\xFF\x16`\x02\x81\x11\x15a$.Wa$.aR\xC7V[\x14\x80a$PWP`\x01`\x0CT`\xFF\x16`\x02\x81\x11\x15a$NWa$NaR\xC7V[\x14[\x15a$WWV[`\0`\x0CT`\xFF\x16`\x02\x81\x11\x15a$pWa$paR\xC7V[\x14a$\xA7W`@Q\x7F\x07\x8A=\xF4\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\x01`@Q\x80\x91\x03\x90\xFD[`\0Th\x01\0\0\0\0\0\0\0\0\x90\x04g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\0\x03a%\x03W`@Q\x7F\xC1\x05&\n\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\x01`@Q\x80\x91\x03\x90\xFD[`\x006\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`\xAC\x015``\x1C`@Q\x7F\x03\x14\xD2\xB3\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\x81R0`\x04\x82\x01Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x91\x90\x91\x16\x90c\x03\x14\xD2\xB3\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a%\xA2W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a%\xC6\x91\x90aWGV[\x90P\x80a%\xFFW`@Q\x7FHQ\xBD\x9B\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\x01`@Q\x80\x91\x03\x90\xFD[6\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`\xAC\x015``\x1C`@Q\x7F\x17\xCF!\xA9\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\x81R0`\x04\x82\x01Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x91\x90\x91\x16\x90c\x17\xCF!\xA9\x90`$\x01`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a&\x99W`\0\x80\xFD[PZ\xF1\x92PPP\x80\x15a&\xAAWP`\x01[P`\x006\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`\xAC\x015``\x1C`@Q\x7FIk\x9C\x16\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\x81R0`\x04\x82\x01Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x91\x90\x91\x16\x90cIk\x9C\x16\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a'JW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a'n\x91\x90aWGV[\x90P\x80\x15a'\xA6W`\x0C\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x16`\x01\x17\x90Ua'\xD2V[`\x0C\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x16`\x02\x17\x90U[`\x0CT`@Q\x7F\x99\x08\xEA\xAC\x06E\xDF\x9D\x07\x04\xD0j\xDC\x9E\x073|\x95\x1D\xE2\xF0k_(6\x15\x1DH\xD5\xE4r/\x91a(\t\x91`\xFF\x90\x91\x16\x90aS0V[`@Q\x80\x91\x03\x90\xA1PPV[a\x14{\x83\x83\x83`\0a\x18\x9BV[`\0Tq\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16\x15a(tW`@Q\x7F\r\xC1I\xF0\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\x01`@Q\x80\x91\x03\x90\xFD[a(|aD\xF2g`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01`@\x80Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a)1W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a)U\x91\x90aWdV[\x90\x92P\x90P\x81a)\x91W`@Q\x7Fjk\xC3\xB2\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\x01`@Q\x80\x91\x03\x90\xFD[\x7F\xFF\xD7\xDB\x0F\x9D\\\xDE\xB4\x9CL\x9E\xBAd\x9DM\xC6\xD8R\xD6Fq\xE6T\x88\xE5\x7FXXI\x92\xACha)\xE96\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`\x14\x015\x90V[\x90V[\x03a* W`@Q\x7F,\xFA\xC0\x82\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\x01`@Q\x80\x91\x03\x90\xFD[`@\x80Q\x80\x82\x01\x90\x91R\x82\x81R` \x01\x81\x90R`\x07\x82\x90U`\x08\x81\x90Ug\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF6\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`\x98\x015``\x1Cs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c}\xC0\xD1\xD0`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a*\xC1W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a*\xE5\x91\x90aV\x8CV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xF3\xF4\x80\xD9`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a+/W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a+S\x91\x90aV\xA9V[\x11\x15a+\x8BW`@Q\x7F\xB4\xE1$3\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\x01`@Q\x80\x91\x03\x90\xFD[`\0a+\xC2\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\x02aW\x88V[\x90P`\x006\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`\x98\x015``\x1Cs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c}\xC0\xD1\xD0`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a,AW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a,e\x91\x90aV\x8CV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xF3\xF4\x80\xD9`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a,\xAFW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a,\xD3\x91\x90aV\xA9V[a-\x07\x90\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16aV%V[\x90P`\0a-\x15\x83\x83aDJV[\x90Pg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a-YW`@Q\x7F\x8Dw\xEC\xAC\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\x01`@Q\x80\x91\x03\x90\xFD[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x11\x15a-\xD1W`@Q\x7F\x8Dw\xEC\xAC\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\x01`@Q\x80\x91\x03\x90\xFD[6\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`\xD4\x015\x15a.6W`@Q\x7F\"=\xB3\x94\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\x01`@Q\x80\x91\x03\x90\xFD[\x836\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`X\x015\x11a.\xD0W`@Q\x7F\xF4\x029\xDB\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\x81R6\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`\x14\x015`\x04\x82\x01R`$\x01[`@Q\x80\x91\x03\x90\xFD[`@\x80Q`\xE0\x81\x01\x82Rc\xFF\xFF\xFF\xFF\x80\x82R`\0` \x80\x84\x01\x82\x81R6\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03\x805``\x90\x81\x1C\x87\x89\x01\x81\x81Ro\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF4\x81\x81\x16\x94\x8B\x01\x94\x85R`\x14\x90\x95\x015`\x80\x8B\x01\x90\x81R`\x01`\xA0\x8C\x01\x81\x81RB\x84\x16`\xC0\x8E\x01\x90\x81R\x82T\x80\x84\x01\x84U\x92\x8CR\x9CQ\x7F\xB1\x0E-Rv\x12\x07;&\xEE\xCD\xFDq~j2\x0C\xF4KJ\xFA\xC2\xB0s-\x9F\xCB\xE2\xB7\xFA\x0C\xF6`\x05\x90\x93\x02\x92\x83\x01\x80T\x9AQ\x91\x90\x9D\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x9A\x16\x99\x90\x99\x17d\x01\0\0\0\0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x9A\x8B\x16\x02\x17\x90\x9BU\x92Q\x7F\xB1\x0E-Rv\x12\x07;&\xEE\xCD\xFDq~j2\x0C\xF4KJ\xFA\xC2\xB0s-\x9F\xCB\xE2\xB7\xFA\x0C\xF7\x84\x01\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x91\x90\x98\x16\x17\x90\x96U\x92Q\x7F\xB1\x0E-Rv\x12\x07;&\xEE\xCD\xFDq~j2\x0C\xF4KJ\xFA\xC2\xB0s-\x9F\xCB\xE2\xB7\xFA\x0C\xF8\x82\x01\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x91\x85\x16\x91\x90\x91\x17\x90U\x93Q\x7F\xB1\x0E-Rv\x12\x07;&\xEE\xCD\xFDq~j2\x0C\xF4KJ\xFA\xC2\xB0s-\x9F\xCB\xE2\xB7\xFA\x0C\xF9\x85\x01U\x95Q\x96Q\x96\x81\x16p\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x97\x90\x91\x16\x96\x90\x96\x02\x95\x90\x95\x17\x7F\xB1\x0E-Rv\x12\x07;&\xEE\xCD\xFDq~j2\x0C\xF4KJ\xFA\xC2\xB0s-\x9F\xCB\xE2\xB7\xFA\x0C\xFA\x90\x91\x01U\x81Tq\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x17\x82U\x91\x81R`\n\x90\x91R\x91\x82 \x80T\x91\x92\x90\x91a1Q\x90\x84\x90aV%V[\x90\x91UPP6\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`\xC0\x015``\x1Cs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xD0\xE3\r\xB04`@Q\x82c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01`\0`@Q\x80\x83\x03\x81\x85\x88\x80;\x15\x80\x15a1\xCEW`\0\x80\xFD[PZ\xF1\x15\x80\x15a1\xE2W=`\0\x80>=`\0\xFD[PP`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\x16Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x17\x90UPa2%\x91Pa3\x07\x90PV[c\xFF\xFF\xFF\xFF\x166\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`\xAC\x015``\x1Cs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c<\x9F9|`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a2\xA6W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a2\xCA\x91\x90aW\xC5V[`\t\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x16c\xFF\xFF\xFF\xFF\x92\x90\x92\x16\x92\x90\x92\x14\x17\x90UPPPPPV[6\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`T\x015`\xE0\x1C\x90V[`\0\x80`\0Tp\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16`\x02\x81\x11\x15a3iWa3iaR\xC7V[\x14a3\xA0W`@Q\x7Fg\xFE\x19P\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\x01`@Q\x80\x91\x03\x90\xFD[`\0`\x01\x83\x81T\x81\x10a3\xB5Wa3\xB5aU\xC7V[`\0\x91\x82R` \x82 `\x05\x90\x91\x02\x01\x80T\x90\x92Pc\xFF\xFF\xFF\xFF\x90\x81\x16\x14a4$W\x81T`\x01\x80T\x90\x91c\xFF\xFF\xFF\xFF\x16\x90\x81\x10a3\xF3Wa3\xF3aU\xC7V[\x90`\0R` `\0 \x90`\x05\x02\x01`\x04\x01`\x10\x90T\x90a\x01\0\n\x90\x04o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90P[`\x04\x82\x01T`\0\x90a4\\\x90p\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90V[a4p\x90g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16BaVuV[a4\x8Fa4O\x84o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`@\x1C\x90V[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a4\xA3\x91\x90aV%V[\x90Pg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x11a4\xF0W\x80a\x14\xB1V[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x95\x94PPPPPV[`\0\x80a5\xB9\x83o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1F\x7F\x07\xC4\xAC\xDD\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\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\xFF\x16\x90P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81\x11\x15a6\x18W`@Q\x7FV\xF5{+\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\x01`@Q\x80\x91\x03\x90\xFD[d.\x90\xED\xD0\0b\x06\x1A\x80c\x11\xE1\xA3\0`\0a63\x83\x83aX\x1AV[\x90Pg\r\xE0\xB6\xB3\xA7d\0\0`\0a6j\x82\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0aW\x88V[\x90P`\0a6\x88a6\x83g\r\xE0\xB6\xB3\xA7d\0\0\x86aW\x88V[aDeV[\x90P`\0a6\x96\x84\x84aF\xC0V[\x90P`\0a6\xA4\x83\x83aG\x0FV[\x90P`\0a6\xB1\x82aG=V[\x90P`\0a6\xD0\x82a6\xCBg\r\xE0\xB6\xB3\xA7d\0\0\x8FaW\x88V[aI%V[\x90P`\0a6\xDE\x8B\x83aG\x0FV[\x90Pa6\xEA\x81\x8DaW\x88V[\x9F\x9EPPPPPPPPPPPPPPPV[`\x01\x81\x81T\x81\x10a7\rW`\0\x80\xFD[`\0\x91\x82R` \x90\x91 `\x05\x90\x91\x02\x01\x80T`\x01\x82\x01T`\x02\x83\x01T`\x03\x84\x01T`\x04\x90\x94\x01Tc\xFF\xFF\xFF\xFF\x84\x16\x95Pd\x01\0\0\0\0\x90\x93\x04s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x81\x16\x94\x92\x16\x92o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x91\x82\x16\x92\x91\x80\x82\x16\x91p\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04\x16\x87V[`\0`\x02`\x0CT`\xFF\x16`\x02\x81\x11\x15a7\xAFWa7\xAFaR\xC7V[\x03a7\xDDWPs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\0\x90\x81R`\n` R`@\x90 T\x90V[Ps\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\0\x90\x81R`\x02` R`@\x90 T\x90V[`\0\x80Tp\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16`\x02\x81\x11\x15a82Wa82aR\xC7V[\x14a8iW`@Q\x7Fg\xFE\x19P\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\x01`@Q\x80\x91\x03\x90\xFD[`\0`\x01\x87\x81T\x81\x10a8~Wa8~aU\xC7V[`\0\x91\x82R` \x82 `\x05\x91\x90\x91\x02\x01`\x04\x81\x01T\x90\x92Po\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90\x87\x15\x82\x17`\x01\x1B\x90Pa8\xDD\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01aV%V[a9y\x82o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1F\x7F\x07\xC4\xAC\xDD\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\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\xFF\x16\x14a9\xB3W`@Q\x7F_S\xDD\x98\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\x01`@Q\x80\x91\x03\x90\xFD[`\0\x80\x89\x15a:\xB7Wa:\x06\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0aVuV[`\x01\x90\x1Ba:%\x84o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16aIVV[o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a:A\x91\x90aX.V[\x15a:~Wa:ua:f`\x01o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x16aXBV[\x86Tc\xFF\xFF\xFF\xFF\x16`\0aI\xF5V[`\x03\x01Ta:\xADV[6\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`x\x015[\x91P\x84\x90Pa:\xE1V[`\x03\x85\x01T\x91Pa:\xDEa:fo\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x86\x16`\x01aXkV[\x90P[`\x08\x82\x90\x1B`\x08\x8A\x8A`@Qa:\xF8\x92\x91\x90aX\x96V[`@Q\x80\x91\x03\x90 \x90\x1B\x14a;9W`@Q\x7FieP\xFF\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\x01`@Q\x80\x91\x03\x90\xFD[`\0a;D\x8CaJ\xD9V[\x90P`\0a;S\x83`\x03\x01T\x90V[`@Q\x7F\xE1L\xED2\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\x81R6\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`\x98\x015``\x1C\x90c\xE1L\xED2\x90a;\xC7\x90\x8F\x90\x8F\x90\x8F\x90\x8F\x90\x8A\x90`\x04\x01aX\xEFV[` `@Q\x80\x83\x03\x81`\0\x87Z\xF1\x15\x80\x15a;\xE6W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a<\n\x91\x90aV\xA9V[`\x04\x85\x01T\x91\x14\x91P`\0\x90`\x02\x90a<\xB5\x90o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1F\x7F\x07\xC4\xAC\xDD\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\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[a=Q\x89o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1F\x7F\x07\xC4\xAC\xDD\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\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[a=[\x91\x90aY)V[a=e\x91\x90aYLV[`\xFF\x16\x15\x90P\x81\x15\x15\x81\x03a=\xA6W`@Q\x7F\xFBN@\xDD\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\x01`@Q\x80\x91\x03\x90\xFD[\x87Td\x01\0\0\0\0\x90\x04s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x15a=\xFDW`@Q\x7F\x90q\xE6\xAF\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\x01`@Q\x80\x91\x03\x90\xFD[PP\x85T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xFF\xFF\xFF\xFF\x163d\x01\0\0\0\0\x02\x17\x90\x95UPPPPPPPPPPPV[`\0\x80Tp\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16`\x02\x81\x11\x15a>hWa>haR\xC7V[\x14a>\x9FW`@Q\x7Fg\xFE\x19P\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\x01`@Q\x80\x91\x03\x90\xFD[`\0\x80`\0\x80a>\xAE\x86aK\x08V[\x93P\x93P\x93P\x93P`\0a>\xC4\x85\x85\x85\x85aO\x11V[\x90P`\x006\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`\x98\x015``\x1Cs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c}\xC0\xD1\xD0`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a?CW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a?g\x91\x90aV\x8CV[\x90P`\x01\x89\x03a@_Ws\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16cR\xF0\xF3\xAD\x8A\x84a?\xC36\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`4\x015\x90V[`@Q\x7F\xFF\xFF\xFF\xFF\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`\xE0\x86\x90\x1B\x16\x81R`\x04\x81\x01\x93\x90\x93R`$\x83\x01\x91\x90\x91R`D\x82\x01R` `d\x82\x01R`\x84\x81\x01\x8A\x90R`\xA4\x01[` `@Q\x80\x83\x03\x81`\0\x87Z\xF1\x15\x80\x15a@5W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a@Y\x91\x90aV\xA9V[Pa\x12\x08V[`\x02\x89\x03a@\x8BWs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16cR\xF0\xF3\xAD\x8A\x84\x89a?\xC3V[`\x03\x89\x03a@\xB7Ws\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16cR\xF0\xF3\xAD\x8A\x84\x87a?\xC3V[`\x04\x89\x03aA]W`@Q\x7FR\xF0\xF3\xAD\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\x81\x01\x8A\x90R`$\x81\x01\x83\x90R6\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`X\x015`\xC0\x1B`D\x82\x01R`\x08`d\x82\x01R`\x84\x81\x01\x88\x90Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16\x90cR\xF0\xF3\xAD\x90`\xA4\x01a@\x16V[`@Q\x7F\xFF\x13~e\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\x01`@Q\x80\x91\x03\x90\xFD[6\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`T\x81\x015`\xE0\x1C\x90`\x14\x015``aA\xD0a\x14\xBAV[\x90P\x90\x91\x92V[`\x02\x80\x82\x01Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x16`\0\x90\x81R` \x92\x90\x92R`@\x82 \x80To\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x92\x16\x92\x90\x91aB'\x90\x84\x90aV%V[\x90\x91UPPPPV[`@Q\x81\x81R6\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03\x82\x84\x82\x01` \x84\x017\x82` \x83\x01\x01`\0\x81R` \x81\x01`@RPP\x92\x91PPV[`\0aB\xA1o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x16`\x01aXkV[\x90P`\0aB\xB1\x82\x86`\x01aI\xF5V[\x90P`\0\x86\x90\x1A\x83\x80aC\x9DWPaB\xEA`\x02\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0aX.V[`\x04\x83\x01T`\x02\x90aC\x8E\x90o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1F\x7F\x07\xC4\xAC\xDD\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\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[aC\x98\x91\x90aYLV[`\xFF\x16\x14[\x15aC\xF5W`\xFF\x81\x16`\x01\x14\x80aC\xB7WP`\xFF\x81\x16`\x02\x14[aC\xF0W`@Q\x7F\xF4\x029\xDB\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\x81\x01\x88\x90R`$\x01a.\xC7V[aD3V[`\xFF\x81\x16\x15aD3W`@Q\x7F\xF4\x029\xDB\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\x81\x01\x88\x90R`$\x01a.\xC7V[PPPPPPPV[`\0a\x14i`\xF4`\x06aV%V[`\0\x81\x83\x10\x15aDZW\x81aD\\V[\x82[\x90P[\x92\x91PPV[o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11`\x07\x1B\x81\x81\x1Cg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x10`\x06\x1B\x17\x81\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x81\x81\x1Ca\xFF\xFF\x10`\x04\x1B\x17\x81\x81\x1C`\xFF\x10`\x03\x1B\x17`\0\x82\x13aD\xC4Wc\x16\x15\xE68`\0R`\x04`\x1C\xFD[\x7F\xF8\xF9\xF9\xFA\xF9\xFD\xFA\xFB\xF9\xFD\xFC\xFD\xFA\xFB\xFC\xFE\xF9\xFA\xFD\xFA\xFC\xFC\xFB\xFE\xFA\xFA\xFC\xFB\xFF\xFF\xFF\xFFo\x84!\x08B\x10\x84!\x08\xCCc\x18\xC6\xDBmT\xBE\x83\x83\x1C\x1C`\x1F\x16\x1A\x18\x90\x81\x1B`\x9F\x90\x81\x1ClFWr\xB2\xBB\xBB_\x82K\x15 z0\x81\x01\x81\x02``\x90\x81\x1Dm\x03\x88\xEA\xA2t\x12\xD5\xAC\xA0&\x81]cn\x01\x82\x02\x81\x1Dm\r\xF9\x9A\xC5\x02\x03\x1B\xF9S\xEF\xF4r\xFD\xCC\x01\x82\x02\x81\x1Dm\x13\xCD\xFF\xB2\x9DQ\xD9\x93\"\xBD\xFF_\"\x11\x01\x82\x02\x81\x1Dm\n\x0Ft #\xDE\xF7\x83\xA3\x07\xA9\x86\x91.\x01\x82\x02\x81\x1Dm\x01\x92\r\x80C\xCA\x89\xB5#\x92S(NB\x01\x82\x02\x81\x1Dl\x0Bz\x86\xD77Th\xFA\xC6g\xA0\xA5'\x01l)P\x8EE\x85C\xD8\xAAM\xF2\xAB\xEEx\x83\x01\x83\x02\x82\x1Dm\x019`\x1A.\xFA\xBEq~`L\xBBH\x94\x01\x83\x02\x82\x1Dm\x02$\x7Fz{e\x942\x06I\xAA\x03\xAB\xA1\x01\x83\x02\x82\x1D\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFFs\xC0\xC7\x16\xA5\x94\xE0\rT\xE3\xC4\xCB\xC9\x01\x83\x02\x82\x1D\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFD\xC7\xB8\x8CB\x0ES\xA9\x89\x053\x12\x9Fo\x01\x83\x02\x90\x91\x1D\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFFF_\xDA'\xEBMc\xDE\xD4t\xE5\xF82\x01\x90\x91\x02\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF5\xF6\xAF\x8F{3\x96dO\x18\xE1W\x96\0\0\0\0\0\0\0\0\0\0\0\0\x01\x05q\x13@\xDA\xA0\xD5\xF7i\xDB\xA1\x91\\\xEFY\xF0\x81ZU\x06\x02\x91\x90\x03}\x02g\xA3l\x0C\x95\xB3\x97Z\xB3\xEE[ :v\x14\xA3\xF7Ss\xF0G\xD8\x03\xAE{f\x87\xF2\xB3\x02\x01}W\x11^G\x01\x8Cqw\xEE\xBF|\xD3p\xA35j\x1Bxc\0\x8AZ\xE8\x02\x8Cr\xB8\x86B\x84\x01`\xAE\x1D\x90V[`\0x\x12r]\xD1\xD2C\xAB\xA0\xE7_\xE6E\xCCHs\xF9\xE6Z\xFEh\x8C\x92\x8E\x1F!\x83\x11g\r\xE0\xB6\xB3\xA7d\0\0\x02\x15\x82\x02aF\xFDWc|_H}`\0R`\x04`\x1C\xFD[Pg\r\xE0\xB6\xB3\xA7d\0\0\x91\x90\x91\x02\x04\x90V[`\0\x81`\0\x19\x04\x83\x11\x82\x02\x15aG-Wc\xBA\xC6^[`\0R`\x04`\x1C\xFD[Pg\r\xE0\xB6\xB3\xA7d\0\0\x91\x02\x04\x90V[`\0\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFD\xC0\xD0W\t%\xA4b\xD7\x82\x13aGkW\x91\x90PV[h\x07U\xBFy\x8BJ\x1B\xF1\xE5\x82\x12aG\x89Wc\xA3{\xFE\xC9`\0R`\x04`\x1C\xFD[e\x03x-\xAC\xE9\xD9`N\x83\x90\x1B\x05\x91P`\0``k\xB1r\x17\xF7\xD1\xCFy\xAB\xC9\xE3\xB3\x98\x84\x82\x1B\x05k\x80\0\0\0\0\0\0\0\0\0\0\0\x01\x90\x1Dk\xB1r\x17\xF7\xD1\xCFy\xAB\xC9\xE3\xB3\x98\x81\x02\x90\x93\x03\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xDB\xF3\xCC\xF1`M&4P\xF0*U\x04\x81\x01\x81\x02``\x90\x81\x1Dm\x02wYI\x91\xCF\xC8_n$a\x83|\xD9\x01\x82\x02\x81\x1D\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE5\xAD\xED\xAA\x1C\xB0\x95\xAF\x9EM\xA1\x0E6<\x01\x82\x02\x81\x1Dm\xB1\xBB\xB2\x01\xF4C\xCF\x96/\x1A\x1D=\xB4\xA5\x01\x82\x02\x81\x1D\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFD8\xDCw&\x08\xB0\xAEV\xCC\xE0\x12\x96\xC0\xEB\x01\x82\x02\x81\x1Dn\x05\x18\x0B\xB1G\x99\xABG\xA8\xA8\xCB*R}W\x01m\x02\xD1g W{\xD1\x9B\xF6\x14\x17o\xE9\xEAl\x10\xFEh\xE7\xFD7\xD0\0{q?vP\x84\x01\x84\x02\x83\x1D\x90\x81\x01\x90\x84\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE,i\x81,\xF0;\x07c\xFDEJ\x8F~\x01\x02\x90\x91\x1Dn\x05\x87\xF5\x03\xBBn\xA2\x9D%\xFC\xB7@\x19dP\x01\x90\x91\x02y\xD85\xEB\xBA\x82L\x98\xFB1\xB8;,\xA4\\\0\0\0\0\0\0\0\0\0\0\0\0\x01\x05t\x02\x9D\x9D\xC3\x85c\xC3.\\/m\xC1\x92\xEEp\xEFe\xF9\x97\x8A\xF3\x02`\xC3\x93\x90\x93\x03\x92\x90\x92\x1C\x92\x91PPV[`\0aD\\g\r\xE0\xB6\xB3\xA7d\0\0\x83aI=\x86aDeV[aIG\x91\x90aYnV[aIQ\x91\x90aZ*V[aG=V[`\0\x80aI\xE3\x83~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1F\x7F\x07\xC4\xAC\xDD\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\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\x01`\xFF\x91\x90\x91\x16\x1B\x90\x92\x03\x92\x91PPV[`\0\x80\x82aJ>WaJ9o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x86\x16\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0aO\xCBV[aJYV[aJY\x85o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16aQWV[\x90P`\x01\x84\x81T\x81\x10aJnWaJnaU\xC7V[\x90`\0R` `\0 \x90`\x05\x02\x01\x91P[`\x04\x82\x01To\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x81\x16\x91\x16\x14aJ\xD1W\x81T`\x01\x80T\x90\x91c\xFF\xFF\xFF\xFF\x16\x90\x81\x10aJ\xBCWaJ\xBCaU\xC7V[\x90`\0R` `\0 \x90`\x05\x02\x01\x91PaJ\x7FV[P\x93\x92PPPV[`\0\x80`\0\x80`\0aJ\xEA\x86aK\x08V[\x93P\x93P\x93P\x93PaJ\xFE\x84\x84\x84\x84aO\x11V[\x96\x95PPPPPPV[`\0\x80`\0\x80`\0\x85\x90P`\0`\x01\x82\x81T\x81\x10aK(WaK(aU\xC7V[`\0\x91\x82R` \x90\x91 `\x04`\x05\x90\x92\x02\x01\x90\x81\x01T\x90\x91P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90aK\xFF\x90o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1F\x7F\x07\xC4\xAC\xDD\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\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\xFF\x16\x11aL9W`@Q\x7F\xB3K\\\"\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\x01`@Q\x80\x91\x03\x90\xFD[`\0\x81[`\x04\x83\x01T\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90aM\0\x90o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1F\x7F\x07\xC4\xAC\xDD\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\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\xFF\x16\x92P\x82\x11\x15aMuW\x82Tc\xFF\xFF\xFF\xFF\x16aM?\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01aV%V[\x83\x03aMIW\x83\x91P[`\x01\x81\x81T\x81\x10aM\\WaM\\aU\xC7V[\x90`\0R` `\0 \x90`\x05\x02\x01\x93P\x80\x94PPaL=V[`\x04\x81\x81\x01T\x90\x84\x01To\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x91\x82\x16\x91\x16`\0\x81o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16aM\xDEaM\xC9\x85o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\x01\x1C\x90V[o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90V[o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14\x90P\x80\x15aN\xADW`\0aN\x16\x83o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16aIVV[o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x11\x15aN\x81W`\0aNXaNP`\x01o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x86\x16aXBV[\x89`\x01aI\xF5V[`\x03\x81\x01T`\x04\x90\x91\x01T\x90\x9CPo\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x9APaN\x87\x90PV[`\x07T\x9AP[`\x03\x86\x01T`\x04\x87\x01T\x90\x99Po\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x97PaO\x03V[`\0aN\xCFaNPo\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x85\x16`\x01aXkV[`\x03\x80\x89\x01T`\x04\x80\x8B\x01T\x92\x84\x01T\x93\x01T\x90\x9EPo\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x91\x82\x16\x9DP\x91\x9BP\x16\x98PP[PPPPPPP\x91\x93P\x91\x93V[`\0o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x16\x15aO~W`@\x80Q` \x81\x01\x87\x90Ro\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x87\x16\x92\x82\x01\x92\x90\x92R``\x81\x01\x85\x90R\x90\x83\x16`\x80\x82\x01R`\xA0\x01`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 a\x14\xB1V[\x82\x82`@Q` \x01aO\xAC\x92\x91\x90\x91\x82Ro\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16` \x82\x01R`@\x01\x90V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 \x95\x94PPPPPV[`\0\x81aPj\x84o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1F\x7F\x07\xC4\xAC\xDD\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\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\xFF\x16\x11aP\x80Wc\xB3K\\\"`\0R`\x04`\x1C\xFD[aP\x89\x83aQWV[\x90P\x81aQ(\x82o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1F\x7F\x07\xC4\xAC\xDD\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\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\xFF\x16\x11aD_WaD\\aQ>\x83`\x01aV%V[o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x16\x90aQ\xFCV[`\0\x81\x19`\x01\x83\x01\x16\x81aQ\xEB\x82~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1F\x7F\x07\xC4\xAC\xDD\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\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\xFF\x16\x93\x90\x93\x1C\x80\x15\x17\x93\x92PPPV[`\0\x80aR\x89\x84~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1F\x7F\x07\xC4\xAC\xDD\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\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\xFF\x16\x90P\x80\x83\x03`\x01\x80\x82\x1B\x03\x85\x82\x1B\x17\x92PPP\x92\x91PPV[`\0\x80`@\x83\x85\x03\x12\x15aR\xB8W`\0\x80\xFD[PP\x805\x92` \x90\x91\x015\x91PV[\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`!`\x04R`$`\0\xFD[`\x03\x81\x10aS-W\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`!`\x04R`$`\0\xFD[PV[` \x81\x01aS=\x83aR\xF6V[\x91\x90R\x90V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14aS-W`\0\x80\xFD[`\0` \x82\x84\x03\x12\x15aSwW`\0\x80\xFD[\x815aS\x82\x81aSCV[\x93\x92PPPV[`\0\x80`\0``\x84\x86\x03\x12\x15aS\x9EW`\0\x80\xFD[PP\x815\x93` \x83\x015\x93P`@\x90\x92\x015\x91\x90PV[`\0\x81Q\x80\x84R`\0[\x81\x81\x10\x15aS\xDBW` \x81\x85\x01\x81\x01Q\x86\x83\x01\x82\x01R\x01aS\xBFV[\x81\x81\x11\x15aS\xEDW`\0` \x83\x87\x01\x01R[P`\x1F\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x92\x90\x92\x01` \x01\x92\x91PPV[` \x81R`\0aD\\` \x83\x01\x84aS\xB5V[`\0` \x82\x84\x03\x12\x15aTEW`\0\x80\xFD[P5\x91\x90PV[\x80\x15\x15\x81\x14aS-W`\0\x80\xFD[`\0\x80`\0\x80`\x80\x85\x87\x03\x12\x15aTpW`\0\x80\xFD[\x845\x93P` \x85\x015\x92P`@\x85\x015\x91P``\x85\x015aT\x90\x81aTLV[\x93\x96\x92\x95P\x90\x93PPV[`\0` \x82\x84\x03\x12\x15aT\xADW`\0\x80\xFD[\x815o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14aS\x82W`\0\x80\xFD[`\0\x80\x83`\x1F\x84\x01\x12aT\xDFW`\0\x80\xFD[P\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15aT\xF7W`\0\x80\xFD[` \x83\x01\x91P\x83` \x82\x85\x01\x01\x11\x15aU\x0FW`\0\x80\xFD[\x92P\x92\x90PV[`\0\x80`\0\x80`\0\x80`\x80\x87\x89\x03\x12\x15aU/W`\0\x80\xFD[\x865\x95P` \x87\x015aUA\x81aTLV[\x94P`@\x87\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15aU^W`\0\x80\xFD[aUj\x8A\x83\x8B\x01aT\xCDV[\x90\x96P\x94P``\x89\x015\x91P\x80\x82\x11\x15aU\x83W`\0\x80\xFD[PaU\x90\x89\x82\x8A\x01aT\xCDV[\x97\x9A\x96\x99P\x94\x97P\x92\x95\x93\x94\x92PPPV[c\xFF\xFF\xFF\xFF\x84\x16\x81R\x82` \x82\x01R```@\x82\x01R`\0a\x14\xB1``\x83\x01\x84aS\xB5V[\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`2`\x04R`$`\0\xFD[\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`\x11`\x04R`$`\0\xFD[`\0\x82\x19\x82\x11\x15aV8WaV8aU\xF6V[P\x01\x90V[`\0\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x03aVnWaVnaU\xF6V[P`\x01\x01\x90V[`\0\x82\x82\x10\x15aV\x87WaV\x87aU\xF6V[P\x03\x90V[`\0` \x82\x84\x03\x12\x15aV\x9EW`\0\x80\xFD[\x81QaS\x82\x81aSCV[`\0` \x82\x84\x03\x12\x15aV\xBBW`\0\x80\xFD[PQ\x91\x90PV[`\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x83\x16\x81\x85\x16\x80\x83\x03\x82\x11\x15aV\xE5WaV\xE5aU\xF6V[\x01\x94\x93PPPPV[`\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x83\x16\x81\x85\x16\x81\x83\x04\x81\x11\x82\x15\x15\x16\x15aW\x15WaW\x15aU\xF6V[\x02\x94\x93PPPPV[`\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x81\x16\x90\x83\x16\x81\x81\x10\x15aW?WaW?aU\xF6V[\x03\x93\x92PPPV[`\0` \x82\x84\x03\x12\x15aWYW`\0\x80\xFD[\x81QaS\x82\x81aTLV[`\0\x80`@\x83\x85\x03\x12\x15aWwW`\0\x80\xFD[PP\x80Q` \x90\x91\x01Q\x90\x92\x90\x91PV[`\0\x81\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x04\x83\x11\x82\x15\x15\x16\x15aW\xC0WaW\xC0aU\xF6V[P\x02\x90V[`\0` \x82\x84\x03\x12\x15aW\xD7W`\0\x80\xFD[\x81Qc\xFF\xFF\xFF\xFF\x81\x16\x81\x14aS\x82W`\0\x80\xFD[\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`\x12`\x04R`$`\0\xFD[`\0\x82aX)WaX)aW\xEBV[P\x04\x90V[`\0\x82aX=WaX=aW\xEBV[P\x06\x90V[`\0o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x81\x16\x90\x83\x16\x81\x81\x10\x15aW?WaW?aU\xF6V[`\0o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x83\x16\x81\x85\x16\x80\x83\x03\x82\x11\x15aV\xE5WaV\xE5aU\xF6V[\x81\x83\x827`\0\x91\x01\x90\x81R\x91\x90PV[\x81\x83R\x81\x81` \x85\x017P`\0` \x82\x84\x01\x01R`\0` \x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0`\x1F\x84\x01\x16\x84\x01\x01\x90P\x92\x91PPV[``\x81R`\0aY\x03``\x83\x01\x87\x89aX\xA6V[\x82\x81\x03` \x84\x01RaY\x16\x81\x86\x88aX\xA6V[\x91PP\x82`@\x83\x01R\x96\x95PPPPPPV[`\0`\xFF\x82\x16`\xFF\x84\x16\x80\x82\x10\x15aYCWaYCaU\xF6V[\x90\x03\x93\x92PPPV[`\0`\xFF\x83\x16\x80aY_WaY_aW\xEBV[\x80`\xFF\x84\x16\x06\x91PP\x92\x91PPV[`\0\x7F\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF`\0\x84\x13`\0\x84\x13\x85\x83\x04\x85\x11\x82\x82\x16\x16\x15aY\xAFWaY\xAFaU\xF6V[\x7F\x80\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\0\x87\x12\x86\x82\x05\x88\x12\x81\x84\x16\x16\x15aY\xEAWaY\xEAaU\xF6V[`\0\x87\x12\x92P\x87\x82\x05\x87\x12\x84\x84\x16\x16\x15aZ\x06WaZ\x06aU\xF6V[\x87\x85\x05\x87\x12\x81\x84\x16\x16\x15aZ\x1CWaZ\x1CaU\xF6V[PPP\x92\x90\x93\x02\x93\x92PPPV[`\0\x82aZ9WaZ9aW\xEBV[\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x14\x7F\x80\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x83\x14\x16\x15aZ\x8DWaZ\x8DaU\xF6V[P\x05\x90V\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct BondDistributionMode(u8); + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for u8 { + #[inline] + fn stv_to_tokens( + &self, + ) -> as alloy_sol_types::SolType>::Token<'_> { + alloy_sol_types::private::SolTypeValue::< + alloy::sol_types::sol_data::Uint<8>, + >::stv_to_tokens(self) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + as alloy_sol_types::SolType>::tokenize(self) + .0 + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::SolType>::abi_encode_packed_to(self, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + as alloy_sol_types::SolType>::abi_encoded_size(self) + } + } + impl BondDistributionMode { + /// The Solidity type name. + pub const NAME: &'static str = stringify!(@ name); + /// Convert from the underlying value type. + #[inline] + pub const fn from_underlying(value: u8) -> Self { + Self(value) + } + /// Return the underlying value. + #[inline] + pub const fn into_underlying(self) -> u8 { + self.0 + } + /// Return the single encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode(&self) -> alloy_sol_types::private::Vec { + ::abi_encode(&self.0) + } + /// Return the packed encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec { + ::abi_encode_packed(&self.0) + } + } + #[automatically_derived] + impl From for BondDistributionMode { + fn from(value: u8) -> Self { + Self::from_underlying(value) + } + } + #[automatically_derived] + impl From for u8 { + fn from(value: BondDistributionMode) -> Self { + value.into_underlying() + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for BondDistributionMode { + type RustType = u8; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = Self::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + Self::type_check(token).is_ok() + } + #[inline] + fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> { + as alloy_sol_types::SolType>::type_check(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + as alloy_sol_types::SolType>::detokenize(token) + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for BondDistributionMode { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + as alloy_sol_types::EventTopic>::topic_preimage_length(rust) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out) + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + as alloy_sol_types::EventTopic>::encode_topic(rust) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct GameStatus(u8); + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for u8 { + #[inline] + fn stv_to_tokens( + &self, + ) -> as alloy_sol_types::SolType>::Token<'_> { + alloy_sol_types::private::SolTypeValue::< + alloy::sol_types::sol_data::Uint<8>, + >::stv_to_tokens(self) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + as alloy_sol_types::SolType>::tokenize(self) + .0 + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::SolType>::abi_encode_packed_to(self, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + as alloy_sol_types::SolType>::abi_encoded_size(self) + } + } + impl GameStatus { + /// The Solidity type name. + pub const NAME: &'static str = stringify!(@ name); + /// Convert from the underlying value type. + #[inline] + pub const fn from_underlying(value: u8) -> Self { + Self(value) + } + /// Return the underlying value. + #[inline] + pub const fn into_underlying(self) -> u8 { + self.0 + } + /// Return the single encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode(&self) -> alloy_sol_types::private::Vec { + ::abi_encode(&self.0) + } + /// Return the packed encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec { + ::abi_encode_packed(&self.0) + } + } + #[automatically_derived] + impl From for GameStatus { + fn from(value: u8) -> Self { + Self::from_underlying(value) + } + } + #[automatically_derived] + impl From for u8 { + fn from(value: GameStatus) -> Self { + value.into_underlying() + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for GameStatus { + type RustType = u8; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = Self::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + Self::type_check(token).is_ok() + } + #[inline] + fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> { + as alloy_sol_types::SolType>::type_check(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + as alloy_sol_types::SolType>::detokenize(token) + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for GameStatus { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + as alloy_sol_types::EventTopic>::topic_preimage_length(rust) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out) + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + as alloy_sol_types::EventTopic>::encode_topic(rust) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct Claim(alloy::sol_types::private::FixedBytes<32>); + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue + for alloy::sol_types::private::FixedBytes<32> { + #[inline] + fn stv_to_tokens( + &self, + ) -> as alloy_sol_types::SolType>::Token<'_> { + alloy_sol_types::private::SolTypeValue::< + alloy::sol_types::sol_data::FixedBytes<32>, + >::stv_to_tokens(self) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + as alloy_sol_types::SolType>::tokenize(self) + .0 + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::SolType>::abi_encode_packed_to(self, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + as alloy_sol_types::SolType>::abi_encoded_size(self) + } + } + impl Claim { + /// The Solidity type name. + pub const NAME: &'static str = stringify!(@ name); + /// Convert from the underlying value type. + #[inline] + pub const fn from_underlying( + value: alloy::sol_types::private::FixedBytes<32>, + ) -> Self { + Self(value) + } + /// Return the underlying value. + #[inline] + pub const fn into_underlying( + self, + ) -> alloy::sol_types::private::FixedBytes<32> { + self.0 + } + /// Return the single encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode(&self) -> alloy_sol_types::private::Vec { + ::abi_encode(&self.0) + } + /// Return the packed encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec { + ::abi_encode_packed(&self.0) + } + } + #[automatically_derived] + impl From> for Claim { + fn from(value: alloy::sol_types::private::FixedBytes<32>) -> Self { + Self::from_underlying(value) + } + } + #[automatically_derived] + impl From for alloy::sol_types::private::FixedBytes<32> { + fn from(value: Claim) -> Self { + value.into_underlying() + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for Claim { + type RustType = alloy::sol_types::private::FixedBytes<32>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = Self::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + Self::type_check(token).is_ok() + } + #[inline] + fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> { + as alloy_sol_types::SolType>::type_check(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + as alloy_sol_types::SolType>::detokenize(token) + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for Claim { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + as alloy_sol_types::EventTopic>::topic_preimage_length(rust) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out) + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + as alloy_sol_types::EventTopic>::encode_topic(rust) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct Clock(u128); + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for u128 { + #[inline] + fn stv_to_tokens( + &self, + ) -> as alloy_sol_types::SolType>::Token<'_> { + alloy_sol_types::private::SolTypeValue::< + alloy::sol_types::sol_data::Uint<128>, + >::stv_to_tokens(self) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + as alloy_sol_types::SolType>::tokenize(self) + .0 + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::SolType>::abi_encode_packed_to(self, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + as alloy_sol_types::SolType>::abi_encoded_size(self) + } + } + impl Clock { + /// The Solidity type name. + pub const NAME: &'static str = stringify!(@ name); + /// Convert from the underlying value type. + #[inline] + pub const fn from_underlying(value: u128) -> Self { + Self(value) + } + /// Return the underlying value. + #[inline] + pub const fn into_underlying(self) -> u128 { + self.0 + } + /// Return the single encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode(&self) -> alloy_sol_types::private::Vec { + ::abi_encode(&self.0) + } + /// Return the packed encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec { + ::abi_encode_packed(&self.0) + } + } + #[automatically_derived] + impl From for Clock { + fn from(value: u128) -> Self { + Self::from_underlying(value) + } + } + #[automatically_derived] + impl From for u128 { + fn from(value: Clock) -> Self { + value.into_underlying() + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for Clock { + type RustType = u128; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = Self::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + Self::type_check(token).is_ok() + } + #[inline] + fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> { + as alloy_sol_types::SolType>::type_check(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + as alloy_sol_types::SolType>::detokenize(token) + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for Clock { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + as alloy_sol_types::EventTopic>::topic_preimage_length(rust) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out) + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + as alloy_sol_types::EventTopic>::encode_topic(rust) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct Duration(u64); + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for u64 { + #[inline] + fn stv_to_tokens( + &self, + ) -> as alloy_sol_types::SolType>::Token<'_> { + alloy_sol_types::private::SolTypeValue::< + alloy::sol_types::sol_data::Uint<64>, + >::stv_to_tokens(self) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + as alloy_sol_types::SolType>::tokenize(self) + .0 + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::SolType>::abi_encode_packed_to(self, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + as alloy_sol_types::SolType>::abi_encoded_size(self) + } + } + impl Duration { + /// The Solidity type name. + pub const NAME: &'static str = stringify!(@ name); + /// Convert from the underlying value type. + #[inline] + pub const fn from_underlying(value: u64) -> Self { + Self(value) + } + /// Return the underlying value. + #[inline] + pub const fn into_underlying(self) -> u64 { + self.0 + } + /// Return the single encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode(&self) -> alloy_sol_types::private::Vec { + ::abi_encode(&self.0) + } + /// Return the packed encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec { + ::abi_encode_packed(&self.0) + } + } + #[automatically_derived] + impl From for Duration { + fn from(value: u64) -> Self { + Self::from_underlying(value) + } + } + #[automatically_derived] + impl From for u64 { + fn from(value: Duration) -> Self { + value.into_underlying() + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for Duration { + type RustType = u64; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = Self::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + Self::type_check(token).is_ok() + } + #[inline] + fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> { + as alloy_sol_types::SolType>::type_check(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + as alloy_sol_types::SolType>::detokenize(token) + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for Duration { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + as alloy_sol_types::EventTopic>::topic_preimage_length(rust) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out) + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + as alloy_sol_types::EventTopic>::encode_topic(rust) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct GameType(u32); + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for u32 { + #[inline] + fn stv_to_tokens( + &self, + ) -> as alloy_sol_types::SolType>::Token<'_> { + alloy_sol_types::private::SolTypeValue::< + alloy::sol_types::sol_data::Uint<32>, + >::stv_to_tokens(self) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + as alloy_sol_types::SolType>::tokenize(self) + .0 + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::SolType>::abi_encode_packed_to(self, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + as alloy_sol_types::SolType>::abi_encoded_size(self) + } + } + impl GameType { + /// The Solidity type name. + pub const NAME: &'static str = stringify!(@ name); + /// Convert from the underlying value type. + #[inline] + pub const fn from_underlying(value: u32) -> Self { + Self(value) + } + /// Return the underlying value. + #[inline] + pub const fn into_underlying(self) -> u32 { + self.0 + } + /// Return the single encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode(&self) -> alloy_sol_types::private::Vec { + ::abi_encode(&self.0) + } + /// Return the packed encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec { + ::abi_encode_packed(&self.0) + } + } + #[automatically_derived] + impl From for GameType { + fn from(value: u32) -> Self { + Self::from_underlying(value) + } + } + #[automatically_derived] + impl From for u32 { + fn from(value: GameType) -> Self { + value.into_underlying() + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for GameType { + type RustType = u32; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = Self::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + Self::type_check(token).is_ok() + } + #[inline] + fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> { + as alloy_sol_types::SolType>::type_check(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + as alloy_sol_types::SolType>::detokenize(token) + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for GameType { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + as alloy_sol_types::EventTopic>::topic_preimage_length(rust) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out) + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + as alloy_sol_types::EventTopic>::encode_topic(rust) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct Hash(alloy::sol_types::private::FixedBytes<32>); + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue + for alloy::sol_types::private::FixedBytes<32> { + #[inline] + fn stv_to_tokens( + &self, + ) -> as alloy_sol_types::SolType>::Token<'_> { + alloy_sol_types::private::SolTypeValue::< + alloy::sol_types::sol_data::FixedBytes<32>, + >::stv_to_tokens(self) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + as alloy_sol_types::SolType>::tokenize(self) + .0 + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::SolType>::abi_encode_packed_to(self, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + as alloy_sol_types::SolType>::abi_encoded_size(self) + } + } + impl Hash { + /// The Solidity type name. + pub const NAME: &'static str = stringify!(@ name); + /// Convert from the underlying value type. + #[inline] + pub const fn from_underlying( + value: alloy::sol_types::private::FixedBytes<32>, + ) -> Self { + Self(value) + } + /// Return the underlying value. + #[inline] + pub const fn into_underlying( + self, + ) -> alloy::sol_types::private::FixedBytes<32> { + self.0 + } + /// Return the single encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode(&self) -> alloy_sol_types::private::Vec { + ::abi_encode(&self.0) + } + /// Return the packed encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec { + ::abi_encode_packed(&self.0) + } + } + #[automatically_derived] + impl From> for Hash { + fn from(value: alloy::sol_types::private::FixedBytes<32>) -> Self { + Self::from_underlying(value) + } + } + #[automatically_derived] + impl From for alloy::sol_types::private::FixedBytes<32> { + fn from(value: Hash) -> Self { + value.into_underlying() + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for Hash { + type RustType = alloy::sol_types::private::FixedBytes<32>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = Self::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + Self::type_check(token).is_ok() + } + #[inline] + fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> { + as alloy_sol_types::SolType>::type_check(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + as alloy_sol_types::SolType>::detokenize(token) + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for Hash { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + as alloy_sol_types::EventTopic>::topic_preimage_length(rust) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out) + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + as alloy_sol_types::EventTopic>::encode_topic(rust) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct Position(u128); + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for u128 { + #[inline] + fn stv_to_tokens( + &self, + ) -> as alloy_sol_types::SolType>::Token<'_> { + alloy_sol_types::private::SolTypeValue::< + alloy::sol_types::sol_data::Uint<128>, + >::stv_to_tokens(self) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + as alloy_sol_types::SolType>::tokenize(self) + .0 + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::SolType>::abi_encode_packed_to(self, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + as alloy_sol_types::SolType>::abi_encoded_size(self) + } + } + impl Position { + /// The Solidity type name. + pub const NAME: &'static str = stringify!(@ name); + /// Convert from the underlying value type. + #[inline] + pub const fn from_underlying(value: u128) -> Self { + Self(value) + } + /// Return the underlying value. + #[inline] + pub const fn into_underlying(self) -> u128 { + self.0 + } + /// Return the single encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode(&self) -> alloy_sol_types::private::Vec { + ::abi_encode(&self.0) + } + /// Return the packed encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec { + ::abi_encode_packed(&self.0) + } + } + #[automatically_derived] + impl From for Position { + fn from(value: u128) -> Self { + Self::from_underlying(value) + } + } + #[automatically_derived] + impl From for u128 { + fn from(value: Position) -> Self { + value.into_underlying() + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for Position { + type RustType = u128; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = Self::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + Self::type_check(token).is_ok() + } + #[inline] + fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> { + as alloy_sol_types::SolType>::type_check(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + as alloy_sol_types::SolType>::detokenize(token) + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for Position { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + as alloy_sol_types::EventTopic>::topic_preimage_length(rust) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out) + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + as alloy_sol_types::EventTopic>::encode_topic(rust) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct Timestamp(u64); + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for u64 { + #[inline] + fn stv_to_tokens( + &self, + ) -> as alloy_sol_types::SolType>::Token<'_> { + alloy_sol_types::private::SolTypeValue::< + alloy::sol_types::sol_data::Uint<64>, + >::stv_to_tokens(self) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + as alloy_sol_types::SolType>::tokenize(self) + .0 + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::SolType>::abi_encode_packed_to(self, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + as alloy_sol_types::SolType>::abi_encoded_size(self) + } + } + impl Timestamp { + /// The Solidity type name. + pub const NAME: &'static str = stringify!(@ name); + /// Convert from the underlying value type. + #[inline] + pub const fn from_underlying(value: u64) -> Self { + Self(value) + } + /// Return the underlying value. + #[inline] + pub const fn into_underlying(self) -> u64 { + self.0 + } + /// Return the single encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode(&self) -> alloy_sol_types::private::Vec { + ::abi_encode(&self.0) + } + /// Return the packed encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec { + ::abi_encode_packed(&self.0) + } + } + #[automatically_derived] + impl From for Timestamp { + fn from(value: u64) -> Self { + Self::from_underlying(value) + } + } + #[automatically_derived] + impl From for u64 { + fn from(value: Timestamp) -> Self { + value.into_underlying() + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for Timestamp { + type RustType = u64; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = Self::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + Self::type_check(token).is_ok() + } + #[inline] + fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> { + as alloy_sol_types::SolType>::type_check(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + as alloy_sol_types::SolType>::detokenize(token) + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for Timestamp { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + as alloy_sol_types::EventTopic>::topic_preimage_length(rust) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out) + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + as alloy_sol_types::EventTopic>::encode_topic(rust) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**```solidity +struct GameConstructorParams { uint256 maxGameDepth; uint256 splitDepth; Duration clockExtension; Duration maxClockDuration; } +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct GameConstructorParams { + #[allow(missing_docs)] + pub maxGameDepth: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub splitDepth: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub clockExtension: ::RustType, + #[allow(missing_docs)] + pub maxClockDuration: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + Duration, + Duration, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::primitives::aliases::U256, + ::RustType, + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: GameConstructorParams) -> Self { + ( + value.maxGameDepth, + value.splitDepth, + value.clockExtension, + value.maxClockDuration, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for GameConstructorParams { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + maxGameDepth: tuple.0, + splitDepth: tuple.1, + clockExtension: tuple.2, + maxClockDuration: tuple.3, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolValue for GameConstructorParams { + type SolType = Self; + } + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for GameConstructorParams { + #[inline] + fn stv_to_tokens(&self) -> ::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.maxGameDepth), + as alloy_sol_types::SolType>::tokenize(&self.splitDepth), + ::tokenize( + &self.clockExtension, + ), + ::tokenize( + &self.maxClockDuration, + ), + ) + } + #[inline] + fn stv_abi_encoded_size(&self) -> usize { + if let Some(size) = ::ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encoded_size(&tuple) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + ::eip712_hash_struct(self) + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + if let Some(size) = ::PACKED_ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for GameConstructorParams { + type RustType = Self; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = ::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + as alloy_sol_types::SolType>::valid_token(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + let tuple = as alloy_sol_types::SolType>::detokenize(token); + >>::from(tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolStruct for GameConstructorParams { + const NAME: &'static str = "GameConstructorParams"; + #[inline] + fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> { + alloy_sol_types::private::Cow::Borrowed( + "GameConstructorParams(uint256 maxGameDepth,uint256 splitDepth,uint64 clockExtension,uint64 maxClockDuration)", + ) + } + #[inline] + fn eip712_components() -> alloy_sol_types::private::Vec< + alloy_sol_types::private::Cow<'static, str>, + > { + alloy_sol_types::private::Vec::new() + } + #[inline] + fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> { + ::eip712_root_type() + } + #[inline] + fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec { + [ + as alloy_sol_types::SolType>::eip712_data_word(&self.maxGameDepth) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.splitDepth) + .0, + ::eip712_data_word( + &self.clockExtension, + ) + .0, + ::eip712_data_word( + &self.maxClockDuration, + ) + .0, + ] + .concat() + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for GameConstructorParams { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + 0usize + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.maxGameDepth, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.splitDepth, + ) + + ::topic_preimage_length( + &rust.clockExtension, + ) + + ::topic_preimage_length( + &rust.maxClockDuration, + ) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + out.reserve( + ::topic_preimage_length(rust), + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.maxGameDepth, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.splitDepth, + out, + ); + ::encode_topic_preimage( + &rust.clockExtension, + out, + ); + ::encode_topic_preimage( + &rust.maxClockDuration, + out, + ); + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + let mut out = alloy_sol_types::private::Vec::new(); + ::encode_topic_preimage( + rust, + &mut out, + ); + alloy_sol_types::abi::token::WordToken( + alloy_sol_types::private::keccak256(out), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `AlreadyInitialized()` and selector `0x0dc149f0`. +```solidity +error AlreadyInitialized(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct AlreadyInitialized; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: AlreadyInitialized) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for AlreadyInitialized { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for AlreadyInitialized { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "AlreadyInitialized()"; + const SELECTOR: [u8; 4] = [13u8, 193u8, 73u8, 240u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `AnchorRootNotFound()` and selector `0x6a6bc3b2`. +```solidity +error AnchorRootNotFound(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct AnchorRootNotFound; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: AnchorRootNotFound) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for AnchorRootNotFound { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for AnchorRootNotFound { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "AnchorRootNotFound()"; + const SELECTOR: [u8; 4] = [106u8, 107u8, 195u8, 178u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `BadExtraData()` and selector `0x9824bdab`. +```solidity +error BadExtraData(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct BadExtraData; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: BadExtraData) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for BadExtraData { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for BadExtraData { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "BadExtraData()"; + const SELECTOR: [u8; 4] = [152u8, 36u8, 189u8, 171u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `BondTransferFailed()` and selector `0x83e6cc6b`. +```solidity +error BondTransferFailed(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct BondTransferFailed; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: BondTransferFailed) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for BondTransferFailed { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for BondTransferFailed { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "BondTransferFailed()"; + const SELECTOR: [u8; 4] = [131u8, 230u8, 204u8, 107u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `CannotDefendRootClaim()` and selector `0xa42637bc`. +```solidity +error CannotDefendRootClaim(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct CannotDefendRootClaim; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: CannotDefendRootClaim) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for CannotDefendRootClaim { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for CannotDefendRootClaim { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "CannotDefendRootClaim()"; + const SELECTOR: [u8; 4] = [164u8, 38u8, 55u8, 188u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ClaimAboveSplit()` and selector `0xb34b5c22`. +```solidity +error ClaimAboveSplit(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ClaimAboveSplit; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ClaimAboveSplit) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ClaimAboveSplit { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ClaimAboveSplit { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ClaimAboveSplit()"; + const SELECTOR: [u8; 4] = [179u8, 75u8, 92u8, 34u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ClaimAlreadyExists()` and selector `0x80497e3b`. +```solidity +error ClaimAlreadyExists(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ClaimAlreadyExists; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ClaimAlreadyExists) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ClaimAlreadyExists { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ClaimAlreadyExists { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ClaimAlreadyExists()"; + const SELECTOR: [u8; 4] = [128u8, 73u8, 126u8, 59u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ClaimAlreadyResolved()` and selector `0xf1a94581`. +```solidity +error ClaimAlreadyResolved(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ClaimAlreadyResolved; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ClaimAlreadyResolved) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ClaimAlreadyResolved { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ClaimAlreadyResolved { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ClaimAlreadyResolved()"; + const SELECTOR: [u8; 4] = [241u8, 169u8, 69u8, 129u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ClockNotExpired()` and selector `0xf2440b53`. +```solidity +error ClockNotExpired(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ClockNotExpired; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ClockNotExpired) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ClockNotExpired { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ClockNotExpired { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ClockNotExpired()"; + const SELECTOR: [u8; 4] = [242u8, 68u8, 11u8, 83u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ClockTimeExceeded()` and selector `0x3381d114`. +```solidity +error ClockTimeExceeded(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ClockTimeExceeded; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ClockTimeExceeded) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ClockTimeExceeded { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ClockTimeExceeded { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ClockTimeExceeded()"; + const SELECTOR: [u8; 4] = [51u8, 129u8, 209u8, 20u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `DuplicateStep()` and selector `0x9071e6af`. +```solidity +error DuplicateStep(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct DuplicateStep; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: DuplicateStep) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for DuplicateStep { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for DuplicateStep { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "DuplicateStep()"; + const SELECTOR: [u8; 4] = [144u8, 113u8, 230u8, 175u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `GameDepthExceeded()` and selector `0x56f57b2b`. +```solidity +error GameDepthExceeded(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct GameDepthExceeded; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: GameDepthExceeded) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for GameDepthExceeded { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for GameDepthExceeded { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "GameDepthExceeded()"; + const SELECTOR: [u8; 4] = [86u8, 245u8, 123u8, 43u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `GameNotFinalized()` and selector `0x4851bd9b`. +```solidity +error GameNotFinalized(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct GameNotFinalized; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: GameNotFinalized) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for GameNotFinalized { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for GameNotFinalized { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "GameNotFinalized()"; + const SELECTOR: [u8; 4] = [72u8, 81u8, 189u8, 155u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `GameNotInProgress()` and selector `0x67fe1950`. +```solidity +error GameNotInProgress(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct GameNotInProgress; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: GameNotInProgress) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for GameNotInProgress { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for GameNotInProgress { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "GameNotInProgress()"; + const SELECTOR: [u8; 4] = [103u8, 254u8, 25u8, 80u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `GameNotResolved()` and selector `0xc105260a`. +```solidity +error GameNotResolved(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct GameNotResolved; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: GameNotResolved) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for GameNotResolved { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for GameNotResolved { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "GameNotResolved()"; + const SELECTOR: [u8; 4] = [193u8, 5u8, 38u8, 10u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `GamePaused()` and selector `0x379a7ed9`. +```solidity +error GamePaused(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct GamePaused; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: GamePaused) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for GamePaused { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for GamePaused { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "GamePaused()"; + const SELECTOR: [u8; 4] = [55u8, 154u8, 126u8, 217u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `IncorrectBondAmount()` and selector `0x8620aa19`. +```solidity +error IncorrectBondAmount(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct IncorrectBondAmount; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: IncorrectBondAmount) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for IncorrectBondAmount { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for IncorrectBondAmount { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "IncorrectBondAmount()"; + const SELECTOR: [u8; 4] = [134u8, 32u8, 170u8, 25u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidBondDistributionMode()` and selector `0x078a3df4`. +```solidity +error InvalidBondDistributionMode(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidBondDistributionMode; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: InvalidBondDistributionMode) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for InvalidBondDistributionMode { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidBondDistributionMode { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidBondDistributionMode()"; + const SELECTOR: [u8; 4] = [7u8, 138u8, 61u8, 244u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidChallengePeriod()` and selector `0xb4e12433`. +```solidity +error InvalidChallengePeriod(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidChallengePeriod; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InvalidChallengePeriod) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InvalidChallengePeriod { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidChallengePeriod { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidChallengePeriod()"; + const SELECTOR: [u8; 4] = [180u8, 225u8, 36u8, 51u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidClockExtension()` and selector `0x8d77ecac`. +```solidity +error InvalidClockExtension(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidClockExtension; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InvalidClockExtension) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InvalidClockExtension { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidClockExtension { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidClockExtension()"; + const SELECTOR: [u8; 4] = [141u8, 119u8, 236u8, 172u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidDisputedClaimIndex()` and selector `0x30140332`. +```solidity +error InvalidDisputedClaimIndex(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidDisputedClaimIndex; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: InvalidDisputedClaimIndex) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for InvalidDisputedClaimIndex { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidDisputedClaimIndex { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidDisputedClaimIndex()"; + const SELECTOR: [u8; 4] = [48u8, 20u8, 3u8, 50u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidLocalIdent()` and selector `0xff137e65`. +```solidity +error InvalidLocalIdent(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidLocalIdent; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InvalidLocalIdent) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InvalidLocalIdent { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidLocalIdent { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidLocalIdent()"; + const SELECTOR: [u8; 4] = [255u8, 19u8, 126u8, 101u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidParent()` and selector `0x5f53dd98`. +```solidity +error InvalidParent(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidParent; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InvalidParent) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InvalidParent { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidParent { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidParent()"; + const SELECTOR: [u8; 4] = [95u8, 83u8, 221u8, 152u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidPrestate()` and selector `0x696550ff`. +```solidity +error InvalidPrestate(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidPrestate; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InvalidPrestate) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InvalidPrestate { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidPrestate { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidPrestate()"; + const SELECTOR: [u8; 4] = [105u8, 101u8, 80u8, 255u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidSplitDepth()` and selector `0xe62ccf39`. +```solidity +error InvalidSplitDepth(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidSplitDepth; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InvalidSplitDepth) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InvalidSplitDepth { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidSplitDepth { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidSplitDepth()"; + const SELECTOR: [u8; 4] = [230u8, 44u8, 207u8, 57u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `MaxDepthTooLarge()` and selector `0x77dfe332`. +```solidity +error MaxDepthTooLarge(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct MaxDepthTooLarge; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: MaxDepthTooLarge) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for MaxDepthTooLarge { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for MaxDepthTooLarge { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "MaxDepthTooLarge()"; + const SELECTOR: [u8; 4] = [119u8, 223u8, 227u8, 50u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `NoChainIdNeeded()` and selector `0x223db394`. +```solidity +error NoChainIdNeeded(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct NoChainIdNeeded; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: NoChainIdNeeded) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for NoChainIdNeeded { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for NoChainIdNeeded { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "NoChainIdNeeded()"; + const SELECTOR: [u8; 4] = [34u8, 61u8, 179u8, 148u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `NoCreditToClaim()` and selector `0x17bfe5f7`. +```solidity +error NoCreditToClaim(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct NoCreditToClaim; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: NoCreditToClaim) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for NoCreditToClaim { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for NoCreditToClaim { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "NoCreditToClaim()"; + const SELECTOR: [u8; 4] = [23u8, 191u8, 229u8, 247u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `OutOfOrderResolution()` and selector `0x9a076646`. +```solidity +error OutOfOrderResolution(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct OutOfOrderResolution; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: OutOfOrderResolution) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for OutOfOrderResolution { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for OutOfOrderResolution { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "OutOfOrderResolution()"; + const SELECTOR: [u8; 4] = [154u8, 7u8, 102u8, 70u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `SuperFaultDisputeGameInvalidRootClaim()` and selector `0x2cfac082`. +```solidity +error SuperFaultDisputeGameInvalidRootClaim(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct SuperFaultDisputeGameInvalidRootClaim; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: SuperFaultDisputeGameInvalidRootClaim) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for SuperFaultDisputeGameInvalidRootClaim { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for SuperFaultDisputeGameInvalidRootClaim { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "SuperFaultDisputeGameInvalidRootClaim()"; + const SELECTOR: [u8; 4] = [44u8, 250u8, 192u8, 130u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `UnexpectedRootClaim(bytes32)` and selector `0xf40239db`. +```solidity +error UnexpectedRootClaim(Claim rootClaim); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct UnexpectedRootClaim { + #[allow(missing_docs)] + pub rootClaim: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Claim,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (::RustType,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: UnexpectedRootClaim) -> Self { + (value.rootClaim,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for UnexpectedRootClaim { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { rootClaim: tuple.0 } + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for UnexpectedRootClaim { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "UnexpectedRootClaim(bytes32)"; + const SELECTOR: [u8; 4] = [244u8, 2u8, 57u8, 219u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + (::tokenize(&self.rootClaim),) + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ValidStep()` and selector `0xfb4e40dd`. +```solidity +error ValidStep(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ValidStep; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ValidStep) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ValidStep { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ValidStep { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ValidStep()"; + const SELECTOR: [u8; 4] = [251u8, 78u8, 64u8, 221u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `GameClosed(uint8)` and selector `0x9908eaac0645df9d0704d06adc9e07337c951de2f06b5f2836151d48d5e4722f`. +```solidity +event GameClosed(BondDistributionMode bondDistributionMode); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct GameClosed { + #[allow(missing_docs)] + pub bondDistributionMode: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for GameClosed { + type DataTuple<'a> = (BondDistributionMode,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,); + const SIGNATURE: &'static str = "GameClosed(uint8)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 153u8, 8u8, 234u8, 172u8, 6u8, 69u8, 223u8, 157u8, 7u8, 4u8, 208u8, + 106u8, 220u8, 158u8, 7u8, 51u8, 124u8, 149u8, 29u8, 226u8, 240u8, 107u8, + 95u8, 40u8, 54u8, 21u8, 29u8, 72u8, 213u8, 228u8, 114u8, 47u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + bondDistributionMode: data.0, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + ::tokenize( + &self.bondDistributionMode, + ), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(),) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for GameClosed { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&GameClosed> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &GameClosed) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `Move(uint256,bytes32,address)` and selector `0x9b3245740ec3b155098a55be84957a4da13eaf7f14a8bc6f53126c0b9350f2be`. +```solidity +event Move(uint256 indexed parentIndex, Claim indexed claim, address indexed claimant); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct Move { + #[allow(missing_docs)] + pub parentIndex: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub claim: ::RustType, + #[allow(missing_docs)] + pub claimant: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for Move { + type DataTuple<'a> = (); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Uint<256>, + Claim, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "Move(uint256,bytes32,address)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 155u8, 50u8, 69u8, 116u8, 14u8, 195u8, 177u8, 85u8, 9u8, 138u8, 85u8, + 190u8, 132u8, 149u8, 122u8, 77u8, 161u8, 62u8, 175u8, 127u8, 20u8, 168u8, + 188u8, 111u8, 83u8, 18u8, 108u8, 11u8, 147u8, 80u8, 242u8, 190u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + parentIndex: topics.1, + claim: topics.2, + claimant: topics.3, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + () + } + #[inline] + fn topics(&self) -> ::RustType { + ( + Self::SIGNATURE_HASH.into(), + self.parentIndex.clone(), + self.claim.clone(), + self.claimant.clone(), + ) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = as alloy_sol_types::EventTopic>::encode_topic(&self.parentIndex); + out[2usize] = ::encode_topic( + &self.claim, + ); + out[3usize] = ::encode_topic( + &self.claimant, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for Move { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&Move> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &Move) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `Resolved(uint8)` and selector `0x5e186f09b9c93491f14e277eea7faa5de6a2d4bda75a79af7a3684fbfb42da60`. +```solidity +event Resolved(GameStatus indexed status); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct Resolved { + #[allow(missing_docs)] + pub status: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for Resolved { + type DataTuple<'a> = (); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>, GameStatus); + const SIGNATURE: &'static str = "Resolved(uint8)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 94u8, 24u8, 111u8, 9u8, 185u8, 201u8, 52u8, 145u8, 241u8, 78u8, 39u8, + 126u8, 234u8, 127u8, 170u8, 93u8, 230u8, 162u8, 212u8, 189u8, 167u8, + 90u8, 121u8, 175u8, 122u8, 54u8, 132u8, 251u8, 251u8, 66u8, 218u8, 96u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { status: topics.1 } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + () + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.status.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.status, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for Resolved { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&Resolved> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &Resolved) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + /**Constructor`. +```solidity +constructor(GameConstructorParams _params); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct constructorCall { + #[allow(missing_docs)] + pub _params: ::RustType, + } + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (GameConstructorParams,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: constructorCall) -> Self { + (value._params,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for constructorCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _params: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolConstructor for constructorCall { + type Parameters<'a> = (GameConstructorParams,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._params, + ), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `absolutePrestate()` and selector `0x8d450a95`. +```solidity +function absolutePrestate() external pure returns (Claim absolutePrestate_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct absolutePrestateCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`absolutePrestate()`](absolutePrestateCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct absolutePrestateReturn { + #[allow(missing_docs)] + pub absolutePrestate_: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: absolutePrestateCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for absolutePrestateCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Claim,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: absolutePrestateReturn) -> Self { + (value.absolutePrestate_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for absolutePrestateReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { absolutePrestate_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for absolutePrestateCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (Claim,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "absolutePrestate()"; + const SELECTOR: [u8; 4] = [141u8, 69u8, 10u8, 149u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: absolutePrestateReturn = r.into(); + r.absolutePrestate_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: absolutePrestateReturn = r.into(); + r.absolutePrestate_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `addLocalData(uint256,uint256,uint256)` and selector `0xf8f43ff6`. +```solidity +function addLocalData(uint256 _ident, uint256 _execLeafIdx, uint256 _partOffset) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct addLocalDataCall { + #[allow(missing_docs)] + pub _ident: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _execLeafIdx: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _partOffset: alloy::sol_types::private::primitives::aliases::U256, + } + ///Container type for the return parameters of the [`addLocalData(uint256,uint256,uint256)`](addLocalDataCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct addLocalDataReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: addLocalDataCall) -> Self { + (value._ident, value._execLeafIdx, value._partOffset) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for addLocalDataCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _ident: tuple.0, + _execLeafIdx: tuple.1, + _partOffset: tuple.2, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: addLocalDataReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for addLocalDataReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl addLocalDataReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for addLocalDataCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = addLocalDataReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "addLocalData(uint256,uint256,uint256)"; + const SELECTOR: [u8; 4] = [248u8, 244u8, 63u8, 246u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._ident), + as alloy_sol_types::SolType>::tokenize(&self._execLeafIdx), + as alloy_sol_types::SolType>::tokenize(&self._partOffset), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + addLocalDataReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `anchorStateRegistry()` and selector `0x5c0cba33`. +```solidity +function anchorStateRegistry() external pure returns (address registry_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct anchorStateRegistryCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`anchorStateRegistry()`](anchorStateRegistryCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct anchorStateRegistryReturn { + #[allow(missing_docs)] + pub registry_: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: anchorStateRegistryCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for anchorStateRegistryCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: anchorStateRegistryReturn) -> Self { + (value.registry_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for anchorStateRegistryReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { registry_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for anchorStateRegistryCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "anchorStateRegistry()"; + const SELECTOR: [u8; 4] = [92u8, 12u8, 186u8, 51u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: anchorStateRegistryReturn = r.into(); + r.registry_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: anchorStateRegistryReturn = r.into(); + r.registry_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `attack(bytes32,uint256,bytes32)` and selector `0x472777c6`. +```solidity +function attack(Claim _disputed, uint256 _parentIndex, Claim _claim) external payable; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct attackCall { + #[allow(missing_docs)] + pub _disputed: ::RustType, + #[allow(missing_docs)] + pub _parentIndex: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _claim: ::RustType, + } + ///Container type for the return parameters of the [`attack(bytes32,uint256,bytes32)`](attackCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct attackReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + Claim, + alloy::sol_types::sol_data::Uint<256>, + Claim, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + alloy::sol_types::private::primitives::aliases::U256, + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: attackCall) -> Self { + (value._disputed, value._parentIndex, value._claim) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for attackCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _disputed: tuple.0, + _parentIndex: tuple.1, + _claim: tuple.2, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: attackReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for attackReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl attackReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for attackCall { + type Parameters<'a> = (Claim, alloy::sol_types::sol_data::Uint<256>, Claim); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = attackReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "attack(bytes32,uint256,bytes32)"; + const SELECTOR: [u8; 4] = [71u8, 39u8, 119u8, 198u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize(&self._disputed), + as alloy_sol_types::SolType>::tokenize(&self._parentIndex), + ::tokenize(&self._claim), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + attackReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `bondDistributionMode()` and selector `0x378dd48c`. +```solidity +function bondDistributionMode() external view returns (BondDistributionMode); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct bondDistributionModeCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`bondDistributionMode()`](bondDistributionModeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct bondDistributionModeReturn { + #[allow(missing_docs)] + pub _0: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: bondDistributionModeCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for bondDistributionModeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (BondDistributionMode,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: bondDistributionModeReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for bondDistributionModeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for bondDistributionModeCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (BondDistributionMode,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "bondDistributionMode()"; + const SELECTOR: [u8; 4] = [55u8, 141u8, 212u8, 140u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: bondDistributionModeReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: bondDistributionModeReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `claimCredit(address)` and selector `0x60e27464`. +```solidity +function claimCredit(address _recipient) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct claimCreditCall { + #[allow(missing_docs)] + pub _recipient: alloy::sol_types::private::Address, + } + ///Container type for the return parameters of the [`claimCredit(address)`](claimCreditCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct claimCreditReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: claimCreditCall) -> Self { + (value._recipient,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for claimCreditCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _recipient: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: claimCreditReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for claimCreditReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl claimCreditReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for claimCreditCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = claimCreditReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "claimCredit(address)"; + const SELECTOR: [u8; 4] = [96u8, 226u8, 116u8, 100u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._recipient, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + claimCreditReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `claimData(uint256)` and selector `0xc6f0308c`. +```solidity +function claimData(uint256) external view returns (uint32 parentIndex, address counteredBy, address claimant, uint128 bond, Claim claim, Position position, Clock clock); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct claimDataCall(pub alloy::sol_types::private::primitives::aliases::U256); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`claimData(uint256)`](claimDataCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct claimDataReturn { + #[allow(missing_docs)] + pub parentIndex: u32, + #[allow(missing_docs)] + pub counteredBy: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub claimant: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub bond: u128, + #[allow(missing_docs)] + pub claim: ::RustType, + #[allow(missing_docs)] + pub position: ::RustType, + #[allow(missing_docs)] + pub clock: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: claimDataCall) -> Self { + (value.0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for claimDataCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self(tuple.0) + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Uint<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<128>, + Claim, + Position, + Clock, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + u32, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + u128, + ::RustType, + ::RustType, + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: claimDataReturn) -> Self { + ( + value.parentIndex, + value.counteredBy, + value.claimant, + value.bond, + value.claim, + value.position, + value.clock, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for claimDataReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + parentIndex: tuple.0, + counteredBy: tuple.1, + claimant: tuple.2, + bond: tuple.3, + claim: tuple.4, + position: tuple.5, + clock: tuple.6, + } + } + } + } + impl claimDataReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.parentIndex), + ::tokenize( + &self.counteredBy, + ), + ::tokenize( + &self.claimant, + ), + as alloy_sol_types::SolType>::tokenize(&self.bond), + ::tokenize(&self.claim), + ::tokenize(&self.position), + ::tokenize(&self.clock), + ) + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for claimDataCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = claimDataReturn; + type ReturnTuple<'a> = ( + alloy::sol_types::sol_data::Uint<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<128>, + Claim, + Position, + Clock, + ); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "claimData(uint256)"; + const SELECTOR: [u8; 4] = [198u8, 240u8, 48u8, 140u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.0), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + claimDataReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `claimDataLen()` and selector `0x8980e0cc`. +```solidity +function claimDataLen() external view returns (uint256 len_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct claimDataLenCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`claimDataLen()`](claimDataLenCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct claimDataLenReturn { + #[allow(missing_docs)] + pub len_: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: claimDataLenCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for claimDataLenCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: claimDataLenReturn) -> Self { + (value.len_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for claimDataLenReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { len_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for claimDataLenCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "claimDataLen()"; + const SELECTOR: [u8; 4] = [137u8, 128u8, 224u8, 204u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: claimDataLenReturn = r.into(); + r.len_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: claimDataLenReturn = r.into(); + r.len_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `claims(bytes32)` and selector `0xeff0f592`. +```solidity +function claims(Hash) external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct claimsCall(pub ::RustType); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`claims(bytes32)`](claimsCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct claimsReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Hash,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: claimsCall) -> Self { + (value.0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for claimsCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self(tuple.0) + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: claimsReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for claimsReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for claimsCall { + type Parameters<'a> = (Hash,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "claims(bytes32)"; + const SELECTOR: [u8; 4] = [239u8, 240u8, 245u8, 146u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + (::tokenize(&self.0),) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: claimsReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: claimsReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `clockExtension()` and selector `0x6b6716c0`. +```solidity +function clockExtension() external view returns (Duration clockExtension_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct clockExtensionCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`clockExtension()`](clockExtensionCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct clockExtensionReturn { + #[allow(missing_docs)] + pub clockExtension_: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: clockExtensionCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for clockExtensionCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Duration,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: clockExtensionReturn) -> Self { + (value.clockExtension_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for clockExtensionReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { clockExtension_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for clockExtensionCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (Duration,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "clockExtension()"; + const SELECTOR: [u8; 4] = [107u8, 103u8, 22u8, 192u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: clockExtensionReturn = r.into(); + r.clockExtension_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: clockExtensionReturn = r.into(); + r.clockExtension_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `closeGame()` and selector `0x786b844b`. +```solidity +function closeGame() external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct closeGameCall; + ///Container type for the return parameters of the [`closeGame()`](closeGameCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct closeGameReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: closeGameCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for closeGameCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: closeGameReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for closeGameReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl closeGameReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for closeGameCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = closeGameReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "closeGame()"; + const SELECTOR: [u8; 4] = [120u8, 107u8, 132u8, 75u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + closeGameReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `createdAt()` and selector `0xcf09e0d0`. +```solidity +function createdAt() external view returns (Timestamp); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct createdAtCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`createdAt()`](createdAtCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct createdAtReturn { + #[allow(missing_docs)] + pub _0: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: createdAtCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for createdAtCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Timestamp,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: createdAtReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for createdAtReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for createdAtCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (Timestamp,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "createdAt()"; + const SELECTOR: [u8; 4] = [207u8, 9u8, 224u8, 208u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: createdAtReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: createdAtReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `credit(address)` and selector `0xd5d44d80`. +```solidity +function credit(address _recipient) external view returns (uint256 credit_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct creditCall { + #[allow(missing_docs)] + pub _recipient: alloy::sol_types::private::Address, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`credit(address)`](creditCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct creditReturn { + #[allow(missing_docs)] + pub credit_: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: creditCall) -> Self { + (value._recipient,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for creditCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _recipient: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: creditReturn) -> Self { + (value.credit_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for creditReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { credit_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for creditCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "credit(address)"; + const SELECTOR: [u8; 4] = [213u8, 212u8, 77u8, 128u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._recipient, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: creditReturn = r.into(); + r.credit_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: creditReturn = r.into(); + r.credit_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `defend(bytes32,uint256,bytes32)` and selector `0x7b0f0adc`. +```solidity +function defend(Claim _disputed, uint256 _parentIndex, Claim _claim) external payable; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct defendCall { + #[allow(missing_docs)] + pub _disputed: ::RustType, + #[allow(missing_docs)] + pub _parentIndex: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _claim: ::RustType, + } + ///Container type for the return parameters of the [`defend(bytes32,uint256,bytes32)`](defendCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct defendReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + Claim, + alloy::sol_types::sol_data::Uint<256>, + Claim, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + alloy::sol_types::private::primitives::aliases::U256, + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: defendCall) -> Self { + (value._disputed, value._parentIndex, value._claim) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for defendCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _disputed: tuple.0, + _parentIndex: tuple.1, + _claim: tuple.2, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: defendReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for defendReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl defendReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for defendCall { + type Parameters<'a> = (Claim, alloy::sol_types::sol_data::Uint<256>, Claim); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = defendReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "defend(bytes32,uint256,bytes32)"; + const SELECTOR: [u8; 4] = [123u8, 15u8, 10u8, 220u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize(&self._disputed), + as alloy_sol_types::SolType>::tokenize(&self._parentIndex), + ::tokenize(&self._claim), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + defendReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `extraData()` and selector `0x609d3334`. +```solidity +function extraData() external pure returns (bytes memory extraData_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct extraDataCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`extraData()`](extraDataCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct extraDataReturn { + #[allow(missing_docs)] + pub extraData_: alloy::sol_types::private::Bytes, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: extraDataCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for extraDataCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bytes,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Bytes,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: extraDataReturn) -> Self { + (value.extraData_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for extraDataReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { extraData_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for extraDataCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Bytes; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bytes,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "extraData()"; + const SELECTOR: [u8; 4] = [96u8, 157u8, 51u8, 52u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: extraDataReturn = r.into(); + r.extraData_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: extraDataReturn = r.into(); + r.extraData_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `gameCreator()` and selector `0x37b1b229`. +```solidity +function gameCreator() external pure returns (address creator_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct gameCreatorCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`gameCreator()`](gameCreatorCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct gameCreatorReturn { + #[allow(missing_docs)] + pub creator_: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: gameCreatorCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for gameCreatorCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: gameCreatorReturn) -> Self { + (value.creator_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for gameCreatorReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { creator_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for gameCreatorCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "gameCreator()"; + const SELECTOR: [u8; 4] = [55u8, 177u8, 178u8, 41u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: gameCreatorReturn = r.into(); + r.creator_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: gameCreatorReturn = r.into(); + r.creator_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `gameData()` and selector `0xfa24f743`. +```solidity +function gameData() external pure returns (GameType gameType_, Claim rootClaim_, bytes memory extraData_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct gameDataCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`gameData()`](gameDataCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct gameDataReturn { + #[allow(missing_docs)] + pub gameType_: ::RustType, + #[allow(missing_docs)] + pub rootClaim_: ::RustType, + #[allow(missing_docs)] + pub extraData_: alloy::sol_types::private::Bytes, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: gameDataCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for gameDataCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + GameType, + Claim, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ::RustType, + alloy::sol_types::private::Bytes, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: gameDataReturn) -> Self { + (value.gameType_, value.rootClaim_, value.extraData_) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for gameDataReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + gameType_: tuple.0, + rootClaim_: tuple.1, + extraData_: tuple.2, + } + } + } + } + impl gameDataReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + ( + ::tokenize(&self.gameType_), + ::tokenize(&self.rootClaim_), + ::tokenize( + &self.extraData_, + ), + ) + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for gameDataCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = gameDataReturn; + type ReturnTuple<'a> = (GameType, Claim, alloy::sol_types::sol_data::Bytes); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "gameData()"; + const SELECTOR: [u8; 4] = [250u8, 36u8, 247u8, 67u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + gameDataReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `gameType()` and selector `0xbbdc02db`. +```solidity +function gameType() external pure returns (GameType gameType_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct gameTypeCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`gameType()`](gameTypeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct gameTypeReturn { + #[allow(missing_docs)] + pub gameType_: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: gameTypeCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for gameTypeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (GameType,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: gameTypeReturn) -> Self { + (value.gameType_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for gameTypeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { gameType_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for gameTypeCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (GameType,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "gameType()"; + const SELECTOR: [u8; 4] = [187u8, 220u8, 2u8, 219u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: gameTypeReturn = r.into(); + r.gameType_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: gameTypeReturn = r.into(); + r.gameType_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `getChallengerDuration(uint256)` and selector `0xbd8da956`. +```solidity +function getChallengerDuration(uint256 _claimIndex) external view returns (Duration duration_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getChallengerDurationCall { + #[allow(missing_docs)] + pub _claimIndex: alloy::sol_types::private::primitives::aliases::U256, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`getChallengerDuration(uint256)`](getChallengerDurationCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getChallengerDurationReturn { + #[allow(missing_docs)] + pub duration_: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: getChallengerDurationCall) -> Self { + (value._claimIndex,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for getChallengerDurationCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _claimIndex: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Duration,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: getChallengerDurationReturn) -> Self { + (value.duration_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for getChallengerDurationReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { duration_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for getChallengerDurationCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (Duration,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "getChallengerDuration(uint256)"; + const SELECTOR: [u8; 4] = [189u8, 141u8, 169u8, 86u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._claimIndex), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: getChallengerDurationReturn = r.into(); + r.duration_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: getChallengerDurationReturn = r.into(); + r.duration_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `getNumToResolve(uint256)` and selector `0x5a5fa2d9`. +```solidity +function getNumToResolve(uint256 _claimIndex) external view returns (uint256 numRemainingChildren_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getNumToResolveCall { + #[allow(missing_docs)] + pub _claimIndex: alloy::sol_types::private::primitives::aliases::U256, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`getNumToResolve(uint256)`](getNumToResolveCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getNumToResolveReturn { + #[allow(missing_docs)] + pub numRemainingChildren_: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: getNumToResolveCall) -> Self { + (value._claimIndex,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for getNumToResolveCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _claimIndex: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: getNumToResolveReturn) -> Self { + (value.numRemainingChildren_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for getNumToResolveReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + numRemainingChildren_: tuple.0, + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for getNumToResolveCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "getNumToResolve(uint256)"; + const SELECTOR: [u8; 4] = [90u8, 95u8, 162u8, 217u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._claimIndex), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: getNumToResolveReturn = r.into(); + r.numRemainingChildren_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: getNumToResolveReturn = r.into(); + r.numRemainingChildren_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `getRequiredBond(uint128)` and selector `0xc395e1ca`. +```solidity +function getRequiredBond(Position _position) external view returns (uint256 requiredBond_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getRequiredBondCall { + #[allow(missing_docs)] + pub _position: ::RustType, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`getRequiredBond(uint128)`](getRequiredBondCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getRequiredBondReturn { + #[allow(missing_docs)] + pub requiredBond_: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Position,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: getRequiredBondCall) -> Self { + (value._position,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for getRequiredBondCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _position: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: getRequiredBondReturn) -> Self { + (value.requiredBond_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for getRequiredBondReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { requiredBond_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for getRequiredBondCall { + type Parameters<'a> = (Position,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "getRequiredBond(uint128)"; + const SELECTOR: [u8; 4] = [195u8, 149u8, 225u8, 202u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + (::tokenize(&self._position),) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: getRequiredBondReturn = r.into(); + r.requiredBond_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: getRequiredBondReturn = r.into(); + r.requiredBond_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `hasUnlockedCredit(address)` and selector `0x222abf45`. +```solidity +function hasUnlockedCredit(address) external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct hasUnlockedCreditCall(pub alloy::sol_types::private::Address); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`hasUnlockedCredit(address)`](hasUnlockedCreditCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct hasUnlockedCreditReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: hasUnlockedCreditCall) -> Self { + (value.0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for hasUnlockedCreditCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self(tuple.0) + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: hasUnlockedCreditReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for hasUnlockedCreditReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for hasUnlockedCreditCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "hasUnlockedCredit(address)"; + const SELECTOR: [u8; 4] = [34u8, 42u8, 191u8, 69u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.0, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: hasUnlockedCreditReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: hasUnlockedCreditReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `initialize()` and selector `0x8129fc1c`. +```solidity +function initialize() external payable; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct initializeCall; + ///Container type for the return parameters of the [`initialize()`](initializeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct initializeReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: initializeCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for initializeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: initializeReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for initializeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl initializeReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for initializeCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = initializeReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "initialize()"; + const SELECTOR: [u8; 4] = [129u8, 41u8, 252u8, 28u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + initializeReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `l1Head()` and selector `0x6361506d`. +```solidity +function l1Head() external pure returns (Hash l1Head_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct l1HeadCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`l1Head()`](l1HeadCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct l1HeadReturn { + #[allow(missing_docs)] + pub l1Head_: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: l1HeadCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for l1HeadCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Hash,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: l1HeadReturn) -> Self { + (value.l1Head_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for l1HeadReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { l1Head_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for l1HeadCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (Hash,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "l1Head()"; + const SELECTOR: [u8; 4] = [99u8, 97u8, 80u8, 109u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: l1HeadReturn = r.into(); + r.l1Head_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: l1HeadReturn = r.into(); + r.l1Head_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `l2SequenceNumber()` and selector `0x99735e32`. +```solidity +function l2SequenceNumber() external pure returns (uint256 l2SequenceNumber_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct l2SequenceNumberCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`l2SequenceNumber()`](l2SequenceNumberCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct l2SequenceNumberReturn { + #[allow(missing_docs)] + pub l2SequenceNumber_: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: l2SequenceNumberCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for l2SequenceNumberCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: l2SequenceNumberReturn) -> Self { + (value.l2SequenceNumber_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for l2SequenceNumberReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { l2SequenceNumber_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for l2SequenceNumberCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "l2SequenceNumber()"; + const SELECTOR: [u8; 4] = [153u8, 115u8, 94u8, 50u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: l2SequenceNumberReturn = r.into(); + r.l2SequenceNumber_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: l2SequenceNumberReturn = r.into(); + r.l2SequenceNumber_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `maxClockDuration()` and selector `0xdabd396d`. +```solidity +function maxClockDuration() external view returns (Duration maxClockDuration_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct maxClockDurationCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`maxClockDuration()`](maxClockDurationCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct maxClockDurationReturn { + #[allow(missing_docs)] + pub maxClockDuration_: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: maxClockDurationCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for maxClockDurationCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Duration,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: maxClockDurationReturn) -> Self { + (value.maxClockDuration_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for maxClockDurationReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { maxClockDuration_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for maxClockDurationCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (Duration,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "maxClockDuration()"; + const SELECTOR: [u8; 4] = [218u8, 189u8, 57u8, 109u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: maxClockDurationReturn = r.into(); + r.maxClockDuration_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: maxClockDurationReturn = r.into(); + r.maxClockDuration_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `maxGameDepth()` and selector `0xfa315aa9`. +```solidity +function maxGameDepth() external view returns (uint256 maxGameDepth_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct maxGameDepthCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`maxGameDepth()`](maxGameDepthCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct maxGameDepthReturn { + #[allow(missing_docs)] + pub maxGameDepth_: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: maxGameDepthCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for maxGameDepthCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: maxGameDepthReturn) -> Self { + (value.maxGameDepth_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for maxGameDepthReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { maxGameDepth_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for maxGameDepthCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "maxGameDepth()"; + const SELECTOR: [u8; 4] = [250u8, 49u8, 90u8, 169u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: maxGameDepthReturn = r.into(); + r.maxGameDepth_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: maxGameDepthReturn = r.into(); + r.maxGameDepth_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `move(bytes32,uint256,bytes32,bool)` and selector `0x6f034409`. +```solidity +function r#move(Claim _disputed, uint256 _challengeIndex, Claim _claim, bool _isAttack) external payable; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct moveCall { + #[allow(missing_docs)] + pub _disputed: ::RustType, + #[allow(missing_docs)] + pub _challengeIndex: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _claim: ::RustType, + #[allow(missing_docs)] + pub _isAttack: bool, + } + ///Container type for the return parameters of the [`move(bytes32,uint256,bytes32,bool)`](moveCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct moveReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + Claim, + alloy::sol_types::sol_data::Uint<256>, + Claim, + alloy::sol_types::sol_data::Bool, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + alloy::sol_types::private::primitives::aliases::U256, + ::RustType, + bool, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: moveCall) -> Self { + ( + value._disputed, + value._challengeIndex, + value._claim, + value._isAttack, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for moveCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _disputed: tuple.0, + _challengeIndex: tuple.1, + _claim: tuple.2, + _isAttack: tuple.3, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: moveReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for moveReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl moveReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for moveCall { + type Parameters<'a> = ( + Claim, + alloy::sol_types::sol_data::Uint<256>, + Claim, + alloy::sol_types::sol_data::Bool, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = moveReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "move(bytes32,uint256,bytes32,bool)"; + const SELECTOR: [u8; 4] = [111u8, 3u8, 68u8, 9u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize(&self._disputed), + as alloy_sol_types::SolType>::tokenize(&self._challengeIndex), + ::tokenize(&self._claim), + ::tokenize( + &self._isAttack, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + moveReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `normalModeCredit(address)` and selector `0x529d6a8c`. +```solidity +function normalModeCredit(address) external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct normalModeCreditCall(pub alloy::sol_types::private::Address); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`normalModeCredit(address)`](normalModeCreditCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct normalModeCreditReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: normalModeCreditCall) -> Self { + (value.0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for normalModeCreditCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self(tuple.0) + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: normalModeCreditReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for normalModeCreditReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for normalModeCreditCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "normalModeCredit(address)"; + const SELECTOR: [u8; 4] = [82u8, 157u8, 106u8, 140u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.0, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: normalModeCreditReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: normalModeCreditReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `refundModeCredit(address)` and selector `0xc0d8bb74`. +```solidity +function refundModeCredit(address) external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct refundModeCreditCall(pub alloy::sol_types::private::Address); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`refundModeCredit(address)`](refundModeCreditCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct refundModeCreditReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: refundModeCreditCall) -> Self { + (value.0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for refundModeCreditCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self(tuple.0) + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: refundModeCreditReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for refundModeCreditReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for refundModeCreditCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "refundModeCredit(address)"; + const SELECTOR: [u8; 4] = [192u8, 216u8, 187u8, 116u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.0, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: refundModeCreditReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: refundModeCreditReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `resolutionCheckpoints(uint256)` and selector `0xa445ece6`. +```solidity +function resolutionCheckpoints(uint256) external view returns (bool initialCheckpointComplete, uint32 subgameIndex, Position leftmostPosition, address counteredBy); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct resolutionCheckpointsCall( + pub alloy::sol_types::private::primitives::aliases::U256, + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`resolutionCheckpoints(uint256)`](resolutionCheckpointsCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct resolutionCheckpointsReturn { + #[allow(missing_docs)] + pub initialCheckpointComplete: bool, + #[allow(missing_docs)] + pub subgameIndex: u32, + #[allow(missing_docs)] + pub leftmostPosition: ::RustType, + #[allow(missing_docs)] + pub counteredBy: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: resolutionCheckpointsCall) -> Self { + (value.0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for resolutionCheckpointsCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self(tuple.0) + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Bool, + alloy::sol_types::sol_data::Uint<32>, + Position, + alloy::sol_types::sol_data::Address, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + bool, + u32, + ::RustType, + alloy::sol_types::private::Address, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: resolutionCheckpointsReturn) -> Self { + ( + value.initialCheckpointComplete, + value.subgameIndex, + value.leftmostPosition, + value.counteredBy, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for resolutionCheckpointsReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + initialCheckpointComplete: tuple.0, + subgameIndex: tuple.1, + leftmostPosition: tuple.2, + counteredBy: tuple.3, + } + } + } + } + impl resolutionCheckpointsReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken< + '_, + > { + ( + ::tokenize( + &self.initialCheckpointComplete, + ), + as alloy_sol_types::SolType>::tokenize(&self.subgameIndex), + ::tokenize( + &self.leftmostPosition, + ), + ::tokenize( + &self.counteredBy, + ), + ) + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for resolutionCheckpointsCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = resolutionCheckpointsReturn; + type ReturnTuple<'a> = ( + alloy::sol_types::sol_data::Bool, + alloy::sol_types::sol_data::Uint<32>, + Position, + alloy::sol_types::sol_data::Address, + ); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "resolutionCheckpoints(uint256)"; + const SELECTOR: [u8; 4] = [164u8, 69u8, 236u8, 230u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.0), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + resolutionCheckpointsReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `resolve()` and selector `0x2810e1d6`. +```solidity +function resolve() external returns (GameStatus status_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct resolveCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`resolve()`](resolveCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct resolveReturn { + #[allow(missing_docs)] + pub status_: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: resolveCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for resolveCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (GameStatus,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: resolveReturn) -> Self { + (value.status_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for resolveReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { status_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for resolveCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (GameStatus,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "resolve()"; + const SELECTOR: [u8; 4] = [40u8, 16u8, 225u8, 214u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: resolveReturn = r.into(); + r.status_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: resolveReturn = r.into(); + r.status_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `resolveClaim(uint256,uint256)` and selector `0x03c2924d`. +```solidity +function resolveClaim(uint256 _claimIndex, uint256 _numToResolve) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct resolveClaimCall { + #[allow(missing_docs)] + pub _claimIndex: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _numToResolve: alloy::sol_types::private::primitives::aliases::U256, + } + ///Container type for the return parameters of the [`resolveClaim(uint256,uint256)`](resolveClaimCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct resolveClaimReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: resolveClaimCall) -> Self { + (value._claimIndex, value._numToResolve) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for resolveClaimCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _claimIndex: tuple.0, + _numToResolve: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: resolveClaimReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for resolveClaimReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl resolveClaimReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for resolveClaimCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = resolveClaimReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "resolveClaim(uint256,uint256)"; + const SELECTOR: [u8; 4] = [3u8, 194u8, 146u8, 77u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._claimIndex), + as alloy_sol_types::SolType>::tokenize(&self._numToResolve), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + resolveClaimReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `resolvedAt()` and selector `0x19effeb4`. +```solidity +function resolvedAt() external view returns (Timestamp); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct resolvedAtCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`resolvedAt()`](resolvedAtCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct resolvedAtReturn { + #[allow(missing_docs)] + pub _0: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: resolvedAtCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for resolvedAtCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Timestamp,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: resolvedAtReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for resolvedAtReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for resolvedAtCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (Timestamp,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "resolvedAt()"; + const SELECTOR: [u8; 4] = [25u8, 239u8, 254u8, 180u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: resolvedAtReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: resolvedAtReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `resolvedSubgames(uint256)` and selector `0xfe2bbeb2`. +```solidity +function resolvedSubgames(uint256) external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct resolvedSubgamesCall( + pub alloy::sol_types::private::primitives::aliases::U256, + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`resolvedSubgames(uint256)`](resolvedSubgamesCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct resolvedSubgamesReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: resolvedSubgamesCall) -> Self { + (value.0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for resolvedSubgamesCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self(tuple.0) + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: resolvedSubgamesReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for resolvedSubgamesReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for resolvedSubgamesCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "resolvedSubgames(uint256)"; + const SELECTOR: [u8; 4] = [254u8, 43u8, 190u8, 178u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.0), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: resolvedSubgamesReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: resolvedSubgamesReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `rootClaim()` and selector `0xbcef3b55`. +```solidity +function rootClaim() external pure returns (Claim rootClaim_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct rootClaimCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`rootClaim()`](rootClaimCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct rootClaimReturn { + #[allow(missing_docs)] + pub rootClaim_: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: rootClaimCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for rootClaimCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Claim,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: rootClaimReturn) -> Self { + (value.rootClaim_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for rootClaimReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { rootClaim_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for rootClaimCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (Claim,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "rootClaim()"; + const SELECTOR: [u8; 4] = [188u8, 239u8, 59u8, 85u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: rootClaimReturn = r.into(); + r.rootClaim_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: rootClaimReturn = r.into(); + r.rootClaim_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `splitDepth()` and selector `0xec5e6308`. +```solidity +function splitDepth() external view returns (uint256 splitDepth_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct splitDepthCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`splitDepth()`](splitDepthCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct splitDepthReturn { + #[allow(missing_docs)] + pub splitDepth_: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: splitDepthCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for splitDepthCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: splitDepthReturn) -> Self { + (value.splitDepth_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for splitDepthReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { splitDepth_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for splitDepthCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "splitDepth()"; + const SELECTOR: [u8; 4] = [236u8, 94u8, 99u8, 8u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: splitDepthReturn = r.into(); + r.splitDepth_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: splitDepthReturn = r.into(); + r.splitDepth_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `startingProposal()` and selector `0x938d689a`. +```solidity +function startingProposal() external view returns (Hash root, uint256 l2SequenceNumber); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct startingProposalCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`startingProposal()`](startingProposalCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct startingProposalReturn { + #[allow(missing_docs)] + pub root: ::RustType, + #[allow(missing_docs)] + pub l2SequenceNumber: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: startingProposalCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for startingProposalCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Hash, alloy::sol_types::sol_data::Uint<256>); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: startingProposalReturn) -> Self { + (value.root, value.l2SequenceNumber) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for startingProposalReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + root: tuple.0, + l2SequenceNumber: tuple.1, + } + } + } + } + impl startingProposalReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + ( + ::tokenize(&self.root), + as alloy_sol_types::SolType>::tokenize(&self.l2SequenceNumber), + ) + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for startingProposalCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = startingProposalReturn; + type ReturnTuple<'a> = (Hash, alloy::sol_types::sol_data::Uint<256>); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "startingProposal()"; + const SELECTOR: [u8; 4] = [147u8, 141u8, 104u8, 154u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + startingProposalReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `startingRootHash()` and selector `0x25fc2ace`. +```solidity +function startingRootHash() external view returns (Hash startingRootHash_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct startingRootHashCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`startingRootHash()`](startingRootHashCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct startingRootHashReturn { + #[allow(missing_docs)] + pub startingRootHash_: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: startingRootHashCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for startingRootHashCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Hash,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: startingRootHashReturn) -> Self { + (value.startingRootHash_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for startingRootHashReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { startingRootHash_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for startingRootHashCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (Hash,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "startingRootHash()"; + const SELECTOR: [u8; 4] = [37u8, 252u8, 42u8, 206u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: startingRootHashReturn = r.into(); + r.startingRootHash_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: startingRootHashReturn = r.into(); + r.startingRootHash_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `startingSequenceNumber()` and selector `0x59cebe09`. +```solidity +function startingSequenceNumber() external view returns (uint256 startingSequenceNumber_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct startingSequenceNumberCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`startingSequenceNumber()`](startingSequenceNumberCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct startingSequenceNumberReturn { + #[allow(missing_docs)] + pub startingSequenceNumber_: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: startingSequenceNumberCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for startingSequenceNumberCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: startingSequenceNumberReturn) -> Self { + (value.startingSequenceNumber_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for startingSequenceNumberReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + startingSequenceNumber_: tuple.0, + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for startingSequenceNumberCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "startingSequenceNumber()"; + const SELECTOR: [u8; 4] = [89u8, 206u8, 190u8, 9u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: startingSequenceNumberReturn = r.into(); + r.startingSequenceNumber_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: startingSequenceNumberReturn = r.into(); + r.startingSequenceNumber_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `status()` and selector `0x200d2ed2`. +```solidity +function status() external view returns (GameStatus); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct statusCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`status()`](statusCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct statusReturn { + #[allow(missing_docs)] + pub _0: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: statusCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for statusCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (GameStatus,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: statusReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for statusReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for statusCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (GameStatus,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "status()"; + const SELECTOR: [u8; 4] = [32u8, 13u8, 46u8, 210u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: statusReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: statusReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `step(uint256,bool,bytes,bytes)` and selector `0xd8cc1a3c`. +```solidity +function step(uint256 _claimIndex, bool _isAttack, bytes memory _stateData, bytes memory _proof) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct stepCall { + #[allow(missing_docs)] + pub _claimIndex: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _isAttack: bool, + #[allow(missing_docs)] + pub _stateData: alloy::sol_types::private::Bytes, + #[allow(missing_docs)] + pub _proof: alloy::sol_types::private::Bytes, + } + ///Container type for the return parameters of the [`step(uint256,bool,bytes,bytes)`](stepCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct stepReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Bool, + alloy::sol_types::sol_data::Bytes, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + bool, + alloy::sol_types::private::Bytes, + alloy::sol_types::private::Bytes, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: stepCall) -> Self { + (value._claimIndex, value._isAttack, value._stateData, value._proof) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for stepCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _claimIndex: tuple.0, + _isAttack: tuple.1, + _stateData: tuple.2, + _proof: tuple.3, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: stepReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for stepReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl stepReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for stepCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Bool, + alloy::sol_types::sol_data::Bytes, + alloy::sol_types::sol_data::Bytes, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = stepReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "step(uint256,bool,bytes,bytes)"; + const SELECTOR: [u8; 4] = [216u8, 204u8, 26u8, 60u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._claimIndex), + ::tokenize( + &self._isAttack, + ), + ::tokenize( + &self._stateData, + ), + ::tokenize( + &self._proof, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + stepReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `subgames(uint256,uint256)` and selector `0x2ad69aeb`. +```solidity +function subgames(uint256, uint256) external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct subgamesCall { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _1: alloy::sol_types::private::primitives::aliases::U256, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`subgames(uint256,uint256)`](subgamesCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct subgamesReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: subgamesCall) -> Self { + (value._0, value._1) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for subgamesCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0, _1: tuple.1 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: subgamesReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for subgamesReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for subgamesCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "subgames(uint256,uint256)"; + const SELECTOR: [u8; 4] = [42u8, 214u8, 154u8, 235u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._0), + as alloy_sol_types::SolType>::tokenize(&self._1), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: subgamesReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: subgamesReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `version()` and selector `0x54fd4d50`. +```solidity +function version() external pure returns (string memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`version()`](versionCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for versionCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::String; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "version()"; + const SELECTOR: [u8; 4] = [84u8, 253u8, 77u8, 80u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `vm()` and selector `0x3a768463`. +```solidity +function vm() external pure returns (address vm_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct vmCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`vm()`](vmCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct vmReturn { + #[allow(missing_docs)] + pub vm_: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: vmCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for vmCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: vmReturn) -> Self { + (value.vm_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for vmReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { vm_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for vmCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "vm()"; + const SELECTOR: [u8; 4] = [58u8, 118u8, 132u8, 99u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: vmReturn = r.into(); + r.vm_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: vmReturn = r.into(); + r.vm_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `wasRespectedGameTypeWhenCreated()` and selector `0x250e69bd`. +```solidity +function wasRespectedGameTypeWhenCreated() external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct wasRespectedGameTypeWhenCreatedCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`wasRespectedGameTypeWhenCreated()`](wasRespectedGameTypeWhenCreatedCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct wasRespectedGameTypeWhenCreatedReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: wasRespectedGameTypeWhenCreatedCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for wasRespectedGameTypeWhenCreatedCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: wasRespectedGameTypeWhenCreatedReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for wasRespectedGameTypeWhenCreatedReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for wasRespectedGameTypeWhenCreatedCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "wasRespectedGameTypeWhenCreated()"; + const SELECTOR: [u8; 4] = [37u8, 14u8, 105u8, 189u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: wasRespectedGameTypeWhenCreatedReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: wasRespectedGameTypeWhenCreatedReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `weth()` and selector `0x3fc8cef3`. +```solidity +function weth() external pure returns (address weth_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct wethCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`weth()`](wethCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct wethReturn { + #[allow(missing_docs)] + pub weth_: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: wethCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for wethCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: wethReturn) -> Self { + (value.weth_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for wethReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { weth_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for wethCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "weth()"; + const SELECTOR: [u8; 4] = [63u8, 200u8, 206u8, 243u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: wethReturn = r.into(); + r.weth_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: wethReturn = r.into(); + r.weth_ + }) + } + } + }; + ///Container for all the [`SuperFaultDisputeGame`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum SuperFaultDisputeGameCalls { + #[allow(missing_docs)] + absolutePrestate(absolutePrestateCall), + #[allow(missing_docs)] + addLocalData(addLocalDataCall), + #[allow(missing_docs)] + anchorStateRegistry(anchorStateRegistryCall), + #[allow(missing_docs)] + attack(attackCall), + #[allow(missing_docs)] + bondDistributionMode(bondDistributionModeCall), + #[allow(missing_docs)] + claimCredit(claimCreditCall), + #[allow(missing_docs)] + claimData(claimDataCall), + #[allow(missing_docs)] + claimDataLen(claimDataLenCall), + #[allow(missing_docs)] + claims(claimsCall), + #[allow(missing_docs)] + clockExtension(clockExtensionCall), + #[allow(missing_docs)] + closeGame(closeGameCall), + #[allow(missing_docs)] + createdAt(createdAtCall), + #[allow(missing_docs)] + credit(creditCall), + #[allow(missing_docs)] + defend(defendCall), + #[allow(missing_docs)] + extraData(extraDataCall), + #[allow(missing_docs)] + gameCreator(gameCreatorCall), + #[allow(missing_docs)] + gameData(gameDataCall), + #[allow(missing_docs)] + gameType(gameTypeCall), + #[allow(missing_docs)] + getChallengerDuration(getChallengerDurationCall), + #[allow(missing_docs)] + getNumToResolve(getNumToResolveCall), + #[allow(missing_docs)] + getRequiredBond(getRequiredBondCall), + #[allow(missing_docs)] + hasUnlockedCredit(hasUnlockedCreditCall), + #[allow(missing_docs)] + initialize(initializeCall), + #[allow(missing_docs)] + l1Head(l1HeadCall), + #[allow(missing_docs)] + l2SequenceNumber(l2SequenceNumberCall), + #[allow(missing_docs)] + maxClockDuration(maxClockDurationCall), + #[allow(missing_docs)] + maxGameDepth(maxGameDepthCall), + #[allow(missing_docs)] + r#move(moveCall), + #[allow(missing_docs)] + normalModeCredit(normalModeCreditCall), + #[allow(missing_docs)] + refundModeCredit(refundModeCreditCall), + #[allow(missing_docs)] + resolutionCheckpoints(resolutionCheckpointsCall), + #[allow(missing_docs)] + resolve(resolveCall), + #[allow(missing_docs)] + resolveClaim(resolveClaimCall), + #[allow(missing_docs)] + resolvedAt(resolvedAtCall), + #[allow(missing_docs)] + resolvedSubgames(resolvedSubgamesCall), + #[allow(missing_docs)] + rootClaim(rootClaimCall), + #[allow(missing_docs)] + splitDepth(splitDepthCall), + #[allow(missing_docs)] + startingProposal(startingProposalCall), + #[allow(missing_docs)] + startingRootHash(startingRootHashCall), + #[allow(missing_docs)] + startingSequenceNumber(startingSequenceNumberCall), + #[allow(missing_docs)] + status(statusCall), + #[allow(missing_docs)] + step(stepCall), + #[allow(missing_docs)] + subgames(subgamesCall), + #[allow(missing_docs)] + version(versionCall), + #[allow(missing_docs)] + vm(vmCall), + #[allow(missing_docs)] + wasRespectedGameTypeWhenCreated(wasRespectedGameTypeWhenCreatedCall), + #[allow(missing_docs)] + weth(wethCall), + } + impl SuperFaultDisputeGameCalls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [3u8, 194u8, 146u8, 77u8], + [25u8, 239u8, 254u8, 180u8], + [32u8, 13u8, 46u8, 210u8], + [34u8, 42u8, 191u8, 69u8], + [37u8, 14u8, 105u8, 189u8], + [37u8, 252u8, 42u8, 206u8], + [40u8, 16u8, 225u8, 214u8], + [42u8, 214u8, 154u8, 235u8], + [55u8, 141u8, 212u8, 140u8], + [55u8, 177u8, 178u8, 41u8], + [58u8, 118u8, 132u8, 99u8], + [63u8, 200u8, 206u8, 243u8], + [71u8, 39u8, 119u8, 198u8], + [82u8, 157u8, 106u8, 140u8], + [84u8, 253u8, 77u8, 80u8], + [89u8, 206u8, 190u8, 9u8], + [90u8, 95u8, 162u8, 217u8], + [92u8, 12u8, 186u8, 51u8], + [96u8, 157u8, 51u8, 52u8], + [96u8, 226u8, 116u8, 100u8], + [99u8, 97u8, 80u8, 109u8], + [107u8, 103u8, 22u8, 192u8], + [111u8, 3u8, 68u8, 9u8], + [120u8, 107u8, 132u8, 75u8], + [123u8, 15u8, 10u8, 220u8], + [129u8, 41u8, 252u8, 28u8], + [137u8, 128u8, 224u8, 204u8], + [141u8, 69u8, 10u8, 149u8], + [147u8, 141u8, 104u8, 154u8], + [153u8, 115u8, 94u8, 50u8], + [164u8, 69u8, 236u8, 230u8], + [187u8, 220u8, 2u8, 219u8], + [188u8, 239u8, 59u8, 85u8], + [189u8, 141u8, 169u8, 86u8], + [192u8, 216u8, 187u8, 116u8], + [195u8, 149u8, 225u8, 202u8], + [198u8, 240u8, 48u8, 140u8], + [207u8, 9u8, 224u8, 208u8], + [213u8, 212u8, 77u8, 128u8], + [216u8, 204u8, 26u8, 60u8], + [218u8, 189u8, 57u8, 109u8], + [236u8, 94u8, 99u8, 8u8], + [239u8, 240u8, 245u8, 146u8], + [248u8, 244u8, 63u8, 246u8], + [250u8, 36u8, 247u8, 67u8], + [250u8, 49u8, 90u8, 169u8], + [254u8, 43u8, 190u8, 178u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(resolveClaim), + ::core::stringify!(resolvedAt), + ::core::stringify!(status), + ::core::stringify!(hasUnlockedCredit), + ::core::stringify!(wasRespectedGameTypeWhenCreated), + ::core::stringify!(startingRootHash), + ::core::stringify!(resolve), + ::core::stringify!(subgames), + ::core::stringify!(bondDistributionMode), + ::core::stringify!(gameCreator), + ::core::stringify!(vm), + ::core::stringify!(weth), + ::core::stringify!(attack), + ::core::stringify!(normalModeCredit), + ::core::stringify!(version), + ::core::stringify!(startingSequenceNumber), + ::core::stringify!(getNumToResolve), + ::core::stringify!(anchorStateRegistry), + ::core::stringify!(extraData), + ::core::stringify!(claimCredit), + ::core::stringify!(l1Head), + ::core::stringify!(clockExtension), + ::core::stringify!(r#move), + ::core::stringify!(closeGame), + ::core::stringify!(defend), + ::core::stringify!(initialize), + ::core::stringify!(claimDataLen), + ::core::stringify!(absolutePrestate), + ::core::stringify!(startingProposal), + ::core::stringify!(l2SequenceNumber), + ::core::stringify!(resolutionCheckpoints), + ::core::stringify!(gameType), + ::core::stringify!(rootClaim), + ::core::stringify!(getChallengerDuration), + ::core::stringify!(refundModeCredit), + ::core::stringify!(getRequiredBond), + ::core::stringify!(claimData), + ::core::stringify!(createdAt), + ::core::stringify!(credit), + ::core::stringify!(step), + ::core::stringify!(maxClockDuration), + ::core::stringify!(splitDepth), + ::core::stringify!(claims), + ::core::stringify!(addLocalData), + ::core::stringify!(gameData), + ::core::stringify!(maxGameDepth), + ::core::stringify!(resolvedSubgames), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for SuperFaultDisputeGameCalls { + const NAME: &'static str = "SuperFaultDisputeGameCalls"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 47usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::absolutePrestate(_) => { + ::SELECTOR + } + Self::addLocalData(_) => { + ::SELECTOR + } + Self::anchorStateRegistry(_) => { + ::SELECTOR + } + Self::attack(_) => ::SELECTOR, + Self::bondDistributionMode(_) => { + ::SELECTOR + } + Self::claimCredit(_) => { + ::SELECTOR + } + Self::claimData(_) => { + ::SELECTOR + } + Self::claimDataLen(_) => { + ::SELECTOR + } + Self::claims(_) => ::SELECTOR, + Self::clockExtension(_) => { + ::SELECTOR + } + Self::closeGame(_) => { + ::SELECTOR + } + Self::createdAt(_) => { + ::SELECTOR + } + Self::credit(_) => ::SELECTOR, + Self::defend(_) => ::SELECTOR, + Self::extraData(_) => { + ::SELECTOR + } + Self::gameCreator(_) => { + ::SELECTOR + } + Self::gameData(_) => ::SELECTOR, + Self::gameType(_) => ::SELECTOR, + Self::getChallengerDuration(_) => { + ::SELECTOR + } + Self::getNumToResolve(_) => { + ::SELECTOR + } + Self::getRequiredBond(_) => { + ::SELECTOR + } + Self::hasUnlockedCredit(_) => { + ::SELECTOR + } + Self::initialize(_) => { + ::SELECTOR + } + Self::l1Head(_) => ::SELECTOR, + Self::l2SequenceNumber(_) => { + ::SELECTOR + } + Self::maxClockDuration(_) => { + ::SELECTOR + } + Self::maxGameDepth(_) => { + ::SELECTOR + } + Self::r#move(_) => ::SELECTOR, + Self::normalModeCredit(_) => { + ::SELECTOR + } + Self::refundModeCredit(_) => { + ::SELECTOR + } + Self::resolutionCheckpoints(_) => { + ::SELECTOR + } + Self::resolve(_) => ::SELECTOR, + Self::resolveClaim(_) => { + ::SELECTOR + } + Self::resolvedAt(_) => { + ::SELECTOR + } + Self::resolvedSubgames(_) => { + ::SELECTOR + } + Self::rootClaim(_) => { + ::SELECTOR + } + Self::splitDepth(_) => { + ::SELECTOR + } + Self::startingProposal(_) => { + ::SELECTOR + } + Self::startingRootHash(_) => { + ::SELECTOR + } + Self::startingSequenceNumber(_) => { + ::SELECTOR + } + Self::status(_) => ::SELECTOR, + Self::step(_) => ::SELECTOR, + Self::subgames(_) => ::SELECTOR, + Self::version(_) => ::SELECTOR, + Self::vm(_) => ::SELECTOR, + Self::wasRespectedGameTypeWhenCreated(_) => { + ::SELECTOR + } + Self::weth(_) => ::SELECTOR, + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn resolveClaim( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperFaultDisputeGameCalls::resolveClaim) + } + resolveClaim + }, + { + fn resolvedAt( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperFaultDisputeGameCalls::resolvedAt) + } + resolvedAt + }, + { + fn status( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(SuperFaultDisputeGameCalls::status) + } + status + }, + { + fn hasUnlockedCredit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperFaultDisputeGameCalls::hasUnlockedCredit) + } + hasUnlockedCredit + }, + { + fn wasRespectedGameTypeWhenCreated( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + SuperFaultDisputeGameCalls::wasRespectedGameTypeWhenCreated, + ) + } + wasRespectedGameTypeWhenCreated + }, + { + fn startingRootHash( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperFaultDisputeGameCalls::startingRootHash) + } + startingRootHash + }, + { + fn resolve( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(SuperFaultDisputeGameCalls::resolve) + } + resolve + }, + { + fn subgames( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(SuperFaultDisputeGameCalls::subgames) + } + subgames + }, + { + fn bondDistributionMode( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperFaultDisputeGameCalls::bondDistributionMode) + } + bondDistributionMode + }, + { + fn gameCreator( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperFaultDisputeGameCalls::gameCreator) + } + gameCreator + }, + { + fn vm( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(SuperFaultDisputeGameCalls::vm) + } + vm + }, + { + fn weth( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(SuperFaultDisputeGameCalls::weth) + } + weth + }, + { + fn attack( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(SuperFaultDisputeGameCalls::attack) + } + attack + }, + { + fn normalModeCredit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperFaultDisputeGameCalls::normalModeCredit) + } + normalModeCredit + }, + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(SuperFaultDisputeGameCalls::version) + } + version + }, + { + fn startingSequenceNumber( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperFaultDisputeGameCalls::startingSequenceNumber) + } + startingSequenceNumber + }, + { + fn getNumToResolve( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperFaultDisputeGameCalls::getNumToResolve) + } + getNumToResolve + }, + { + fn anchorStateRegistry( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperFaultDisputeGameCalls::anchorStateRegistry) + } + anchorStateRegistry + }, + { + fn extraData( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(SuperFaultDisputeGameCalls::extraData) + } + extraData + }, + { + fn claimCredit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperFaultDisputeGameCalls::claimCredit) + } + claimCredit + }, + { + fn l1Head( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(SuperFaultDisputeGameCalls::l1Head) + } + l1Head + }, + { + fn clockExtension( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperFaultDisputeGameCalls::clockExtension) + } + clockExtension + }, + { + fn r#move( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(SuperFaultDisputeGameCalls::r#move) + } + r#move + }, + { + fn closeGame( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(SuperFaultDisputeGameCalls::closeGame) + } + closeGame + }, + { + fn defend( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(SuperFaultDisputeGameCalls::defend) + } + defend + }, + { + fn initialize( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperFaultDisputeGameCalls::initialize) + } + initialize + }, + { + fn claimDataLen( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperFaultDisputeGameCalls::claimDataLen) + } + claimDataLen + }, + { + fn absolutePrestate( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperFaultDisputeGameCalls::absolutePrestate) + } + absolutePrestate + }, + { + fn startingProposal( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperFaultDisputeGameCalls::startingProposal) + } + startingProposal + }, + { + fn l2SequenceNumber( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperFaultDisputeGameCalls::l2SequenceNumber) + } + l2SequenceNumber + }, + { + fn resolutionCheckpoints( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperFaultDisputeGameCalls::resolutionCheckpoints) + } + resolutionCheckpoints + }, + { + fn gameType( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(SuperFaultDisputeGameCalls::gameType) + } + gameType + }, + { + fn rootClaim( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(SuperFaultDisputeGameCalls::rootClaim) + } + rootClaim + }, + { + fn getChallengerDuration( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperFaultDisputeGameCalls::getChallengerDuration) + } + getChallengerDuration + }, + { + fn refundModeCredit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperFaultDisputeGameCalls::refundModeCredit) + } + refundModeCredit + }, + { + fn getRequiredBond( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperFaultDisputeGameCalls::getRequiredBond) + } + getRequiredBond + }, + { + fn claimData( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(SuperFaultDisputeGameCalls::claimData) + } + claimData + }, + { + fn createdAt( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(SuperFaultDisputeGameCalls::createdAt) + } + createdAt + }, + { + fn credit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(SuperFaultDisputeGameCalls::credit) + } + credit + }, + { + fn step( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(SuperFaultDisputeGameCalls::step) + } + step + }, + { + fn maxClockDuration( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperFaultDisputeGameCalls::maxClockDuration) + } + maxClockDuration + }, + { + fn splitDepth( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperFaultDisputeGameCalls::splitDepth) + } + splitDepth + }, + { + fn claims( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(SuperFaultDisputeGameCalls::claims) + } + claims + }, + { + fn addLocalData( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperFaultDisputeGameCalls::addLocalData) + } + addLocalData + }, + { + fn gameData( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(SuperFaultDisputeGameCalls::gameData) + } + gameData + }, + { + fn maxGameDepth( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperFaultDisputeGameCalls::maxGameDepth) + } + maxGameDepth + }, + { + fn resolvedSubgames( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperFaultDisputeGameCalls::resolvedSubgames) + } + resolvedSubgames + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn resolveClaim( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperFaultDisputeGameCalls::resolveClaim) + } + resolveClaim + }, + { + fn resolvedAt( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperFaultDisputeGameCalls::resolvedAt) + } + resolvedAt + }, + { + fn status( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperFaultDisputeGameCalls::status) + } + status + }, + { + fn hasUnlockedCredit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperFaultDisputeGameCalls::hasUnlockedCredit) + } + hasUnlockedCredit + }, + { + fn wasRespectedGameTypeWhenCreated( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + SuperFaultDisputeGameCalls::wasRespectedGameTypeWhenCreated, + ) + } + wasRespectedGameTypeWhenCreated + }, + { + fn startingRootHash( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperFaultDisputeGameCalls::startingRootHash) + } + startingRootHash + }, + { + fn resolve( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperFaultDisputeGameCalls::resolve) + } + resolve + }, + { + fn subgames( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperFaultDisputeGameCalls::subgames) + } + subgames + }, + { + fn bondDistributionMode( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperFaultDisputeGameCalls::bondDistributionMode) + } + bondDistributionMode + }, + { + fn gameCreator( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperFaultDisputeGameCalls::gameCreator) + } + gameCreator + }, + { + fn vm( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperFaultDisputeGameCalls::vm) + } + vm + }, + { + fn weth( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperFaultDisputeGameCalls::weth) + } + weth + }, + { + fn attack( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperFaultDisputeGameCalls::attack) + } + attack + }, + { + fn normalModeCredit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperFaultDisputeGameCalls::normalModeCredit) + } + normalModeCredit + }, + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperFaultDisputeGameCalls::version) + } + version + }, + { + fn startingSequenceNumber( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperFaultDisputeGameCalls::startingSequenceNumber) + } + startingSequenceNumber + }, + { + fn getNumToResolve( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperFaultDisputeGameCalls::getNumToResolve) + } + getNumToResolve + }, + { + fn anchorStateRegistry( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperFaultDisputeGameCalls::anchorStateRegistry) + } + anchorStateRegistry + }, + { + fn extraData( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperFaultDisputeGameCalls::extraData) + } + extraData + }, + { + fn claimCredit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperFaultDisputeGameCalls::claimCredit) + } + claimCredit + }, + { + fn l1Head( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperFaultDisputeGameCalls::l1Head) + } + l1Head + }, + { + fn clockExtension( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperFaultDisputeGameCalls::clockExtension) + } + clockExtension + }, + { + fn r#move( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperFaultDisputeGameCalls::r#move) + } + r#move + }, + { + fn closeGame( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperFaultDisputeGameCalls::closeGame) + } + closeGame + }, + { + fn defend( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperFaultDisputeGameCalls::defend) + } + defend + }, + { + fn initialize( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperFaultDisputeGameCalls::initialize) + } + initialize + }, + { + fn claimDataLen( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperFaultDisputeGameCalls::claimDataLen) + } + claimDataLen + }, + { + fn absolutePrestate( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperFaultDisputeGameCalls::absolutePrestate) + } + absolutePrestate + }, + { + fn startingProposal( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperFaultDisputeGameCalls::startingProposal) + } + startingProposal + }, + { + fn l2SequenceNumber( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperFaultDisputeGameCalls::l2SequenceNumber) + } + l2SequenceNumber + }, + { + fn resolutionCheckpoints( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperFaultDisputeGameCalls::resolutionCheckpoints) + } + resolutionCheckpoints + }, + { + fn gameType( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperFaultDisputeGameCalls::gameType) + } + gameType + }, + { + fn rootClaim( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperFaultDisputeGameCalls::rootClaim) + } + rootClaim + }, + { + fn getChallengerDuration( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperFaultDisputeGameCalls::getChallengerDuration) + } + getChallengerDuration + }, + { + fn refundModeCredit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperFaultDisputeGameCalls::refundModeCredit) + } + refundModeCredit + }, + { + fn getRequiredBond( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperFaultDisputeGameCalls::getRequiredBond) + } + getRequiredBond + }, + { + fn claimData( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperFaultDisputeGameCalls::claimData) + } + claimData + }, + { + fn createdAt( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperFaultDisputeGameCalls::createdAt) + } + createdAt + }, + { + fn credit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperFaultDisputeGameCalls::credit) + } + credit + }, + { + fn step( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperFaultDisputeGameCalls::step) + } + step + }, + { + fn maxClockDuration( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperFaultDisputeGameCalls::maxClockDuration) + } + maxClockDuration + }, + { + fn splitDepth( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperFaultDisputeGameCalls::splitDepth) + } + splitDepth + }, + { + fn claims( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperFaultDisputeGameCalls::claims) + } + claims + }, + { + fn addLocalData( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperFaultDisputeGameCalls::addLocalData) + } + addLocalData + }, + { + fn gameData( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperFaultDisputeGameCalls::gameData) + } + gameData + }, + { + fn maxGameDepth( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperFaultDisputeGameCalls::maxGameDepth) + } + maxGameDepth + }, + { + fn resolvedSubgames( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperFaultDisputeGameCalls::resolvedSubgames) + } + resolvedSubgames + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::absolutePrestate(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::addLocalData(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::anchorStateRegistry(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::attack(inner) => { + ::abi_encoded_size(inner) + } + Self::bondDistributionMode(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::claimCredit(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::claimData(inner) => { + ::abi_encoded_size(inner) + } + Self::claimDataLen(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::claims(inner) => { + ::abi_encoded_size(inner) + } + Self::clockExtension(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::closeGame(inner) => { + ::abi_encoded_size(inner) + } + Self::createdAt(inner) => { + ::abi_encoded_size(inner) + } + Self::credit(inner) => { + ::abi_encoded_size(inner) + } + Self::defend(inner) => { + ::abi_encoded_size(inner) + } + Self::extraData(inner) => { + ::abi_encoded_size(inner) + } + Self::gameCreator(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::gameData(inner) => { + ::abi_encoded_size(inner) + } + Self::gameType(inner) => { + ::abi_encoded_size(inner) + } + Self::getChallengerDuration(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::getNumToResolve(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::getRequiredBond(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::hasUnlockedCredit(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::initialize(inner) => { + ::abi_encoded_size(inner) + } + Self::l1Head(inner) => { + ::abi_encoded_size(inner) + } + Self::l2SequenceNumber(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::maxClockDuration(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::maxGameDepth(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::r#move(inner) => { + ::abi_encoded_size(inner) + } + Self::normalModeCredit(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::refundModeCredit(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::resolutionCheckpoints(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::resolve(inner) => { + ::abi_encoded_size(inner) + } + Self::resolveClaim(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::resolvedAt(inner) => { + ::abi_encoded_size(inner) + } + Self::resolvedSubgames(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::rootClaim(inner) => { + ::abi_encoded_size(inner) + } + Self::splitDepth(inner) => { + ::abi_encoded_size(inner) + } + Self::startingProposal(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::startingRootHash(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::startingSequenceNumber(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::status(inner) => { + ::abi_encoded_size(inner) + } + Self::step(inner) => { + ::abi_encoded_size(inner) + } + Self::subgames(inner) => { + ::abi_encoded_size(inner) + } + Self::version(inner) => { + ::abi_encoded_size(inner) + } + Self::vm(inner) => { + ::abi_encoded_size(inner) + } + Self::wasRespectedGameTypeWhenCreated(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::weth(inner) => { + ::abi_encoded_size(inner) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::absolutePrestate(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::addLocalData(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::anchorStateRegistry(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::attack(inner) => { + ::abi_encode_raw(inner, out) + } + Self::bondDistributionMode(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::claimCredit(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::claimData(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::claimDataLen(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::claims(inner) => { + ::abi_encode_raw(inner, out) + } + Self::clockExtension(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::closeGame(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::createdAt(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::credit(inner) => { + ::abi_encode_raw(inner, out) + } + Self::defend(inner) => { + ::abi_encode_raw(inner, out) + } + Self::extraData(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::gameCreator(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::gameData(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::gameType(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::getChallengerDuration(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::getNumToResolve(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::getRequiredBond(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::hasUnlockedCredit(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::initialize(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::l1Head(inner) => { + ::abi_encode_raw(inner, out) + } + Self::l2SequenceNumber(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::maxClockDuration(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::maxGameDepth(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::r#move(inner) => { + ::abi_encode_raw(inner, out) + } + Self::normalModeCredit(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::refundModeCredit(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::resolutionCheckpoints(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::resolve(inner) => { + ::abi_encode_raw(inner, out) + } + Self::resolveClaim(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::resolvedAt(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::resolvedSubgames(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::rootClaim(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::splitDepth(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::startingProposal(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::startingRootHash(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::startingSequenceNumber(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::status(inner) => { + ::abi_encode_raw(inner, out) + } + Self::step(inner) => { + ::abi_encode_raw(inner, out) + } + Self::subgames(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::version(inner) => { + ::abi_encode_raw(inner, out) + } + Self::vm(inner) => { + ::abi_encode_raw(inner, out) + } + Self::wasRespectedGameTypeWhenCreated(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::weth(inner) => { + ::abi_encode_raw(inner, out) + } + } + } + } + ///Container for all the [`SuperFaultDisputeGame`](self) custom errors. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum SuperFaultDisputeGameErrors { + #[allow(missing_docs)] + AlreadyInitialized(AlreadyInitialized), + #[allow(missing_docs)] + AnchorRootNotFound(AnchorRootNotFound), + #[allow(missing_docs)] + BadExtraData(BadExtraData), + #[allow(missing_docs)] + BondTransferFailed(BondTransferFailed), + #[allow(missing_docs)] + CannotDefendRootClaim(CannotDefendRootClaim), + #[allow(missing_docs)] + ClaimAboveSplit(ClaimAboveSplit), + #[allow(missing_docs)] + ClaimAlreadyExists(ClaimAlreadyExists), + #[allow(missing_docs)] + ClaimAlreadyResolved(ClaimAlreadyResolved), + #[allow(missing_docs)] + ClockNotExpired(ClockNotExpired), + #[allow(missing_docs)] + ClockTimeExceeded(ClockTimeExceeded), + #[allow(missing_docs)] + DuplicateStep(DuplicateStep), + #[allow(missing_docs)] + GameDepthExceeded(GameDepthExceeded), + #[allow(missing_docs)] + GameNotFinalized(GameNotFinalized), + #[allow(missing_docs)] + GameNotInProgress(GameNotInProgress), + #[allow(missing_docs)] + GameNotResolved(GameNotResolved), + #[allow(missing_docs)] + GamePaused(GamePaused), + #[allow(missing_docs)] + IncorrectBondAmount(IncorrectBondAmount), + #[allow(missing_docs)] + InvalidBondDistributionMode(InvalidBondDistributionMode), + #[allow(missing_docs)] + InvalidChallengePeriod(InvalidChallengePeriod), + #[allow(missing_docs)] + InvalidClockExtension(InvalidClockExtension), + #[allow(missing_docs)] + InvalidDisputedClaimIndex(InvalidDisputedClaimIndex), + #[allow(missing_docs)] + InvalidLocalIdent(InvalidLocalIdent), + #[allow(missing_docs)] + InvalidParent(InvalidParent), + #[allow(missing_docs)] + InvalidPrestate(InvalidPrestate), + #[allow(missing_docs)] + InvalidSplitDepth(InvalidSplitDepth), + #[allow(missing_docs)] + MaxDepthTooLarge(MaxDepthTooLarge), + #[allow(missing_docs)] + NoChainIdNeeded(NoChainIdNeeded), + #[allow(missing_docs)] + NoCreditToClaim(NoCreditToClaim), + #[allow(missing_docs)] + OutOfOrderResolution(OutOfOrderResolution), + #[allow(missing_docs)] + SuperFaultDisputeGameInvalidRootClaim(SuperFaultDisputeGameInvalidRootClaim), + #[allow(missing_docs)] + UnexpectedRootClaim(UnexpectedRootClaim), + #[allow(missing_docs)] + ValidStep(ValidStep), + } + impl SuperFaultDisputeGameErrors { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [7u8, 138u8, 61u8, 244u8], + [13u8, 193u8, 73u8, 240u8], + [23u8, 191u8, 229u8, 247u8], + [34u8, 61u8, 179u8, 148u8], + [44u8, 250u8, 192u8, 130u8], + [48u8, 20u8, 3u8, 50u8], + [51u8, 129u8, 209u8, 20u8], + [55u8, 154u8, 126u8, 217u8], + [72u8, 81u8, 189u8, 155u8], + [86u8, 245u8, 123u8, 43u8], + [95u8, 83u8, 221u8, 152u8], + [103u8, 254u8, 25u8, 80u8], + [105u8, 101u8, 80u8, 255u8], + [106u8, 107u8, 195u8, 178u8], + [119u8, 223u8, 227u8, 50u8], + [128u8, 73u8, 126u8, 59u8], + [131u8, 230u8, 204u8, 107u8], + [134u8, 32u8, 170u8, 25u8], + [141u8, 119u8, 236u8, 172u8], + [144u8, 113u8, 230u8, 175u8], + [152u8, 36u8, 189u8, 171u8], + [154u8, 7u8, 102u8, 70u8], + [164u8, 38u8, 55u8, 188u8], + [179u8, 75u8, 92u8, 34u8], + [180u8, 225u8, 36u8, 51u8], + [193u8, 5u8, 38u8, 10u8], + [230u8, 44u8, 207u8, 57u8], + [241u8, 169u8, 69u8, 129u8], + [242u8, 68u8, 11u8, 83u8], + [244u8, 2u8, 57u8, 219u8], + [251u8, 78u8, 64u8, 221u8], + [255u8, 19u8, 126u8, 101u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(InvalidBondDistributionMode), + ::core::stringify!(AlreadyInitialized), + ::core::stringify!(NoCreditToClaim), + ::core::stringify!(NoChainIdNeeded), + ::core::stringify!(SuperFaultDisputeGameInvalidRootClaim), + ::core::stringify!(InvalidDisputedClaimIndex), + ::core::stringify!(ClockTimeExceeded), + ::core::stringify!(GamePaused), + ::core::stringify!(GameNotFinalized), + ::core::stringify!(GameDepthExceeded), + ::core::stringify!(InvalidParent), + ::core::stringify!(GameNotInProgress), + ::core::stringify!(InvalidPrestate), + ::core::stringify!(AnchorRootNotFound), + ::core::stringify!(MaxDepthTooLarge), + ::core::stringify!(ClaimAlreadyExists), + ::core::stringify!(BondTransferFailed), + ::core::stringify!(IncorrectBondAmount), + ::core::stringify!(InvalidClockExtension), + ::core::stringify!(DuplicateStep), + ::core::stringify!(BadExtraData), + ::core::stringify!(OutOfOrderResolution), + ::core::stringify!(CannotDefendRootClaim), + ::core::stringify!(ClaimAboveSplit), + ::core::stringify!(InvalidChallengePeriod), + ::core::stringify!(GameNotResolved), + ::core::stringify!(InvalidSplitDepth), + ::core::stringify!(ClaimAlreadyResolved), + ::core::stringify!(ClockNotExpired), + ::core::stringify!(UnexpectedRootClaim), + ::core::stringify!(ValidStep), + ::core::stringify!(InvalidLocalIdent), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for SuperFaultDisputeGameErrors { + const NAME: &'static str = "SuperFaultDisputeGameErrors"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 32usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::AlreadyInitialized(_) => { + ::SELECTOR + } + Self::AnchorRootNotFound(_) => { + ::SELECTOR + } + Self::BadExtraData(_) => { + ::SELECTOR + } + Self::BondTransferFailed(_) => { + ::SELECTOR + } + Self::CannotDefendRootClaim(_) => { + ::SELECTOR + } + Self::ClaimAboveSplit(_) => { + ::SELECTOR + } + Self::ClaimAlreadyExists(_) => { + ::SELECTOR + } + Self::ClaimAlreadyResolved(_) => { + ::SELECTOR + } + Self::ClockNotExpired(_) => { + ::SELECTOR + } + Self::ClockTimeExceeded(_) => { + ::SELECTOR + } + Self::DuplicateStep(_) => { + ::SELECTOR + } + Self::GameDepthExceeded(_) => { + ::SELECTOR + } + Self::GameNotFinalized(_) => { + ::SELECTOR + } + Self::GameNotInProgress(_) => { + ::SELECTOR + } + Self::GameNotResolved(_) => { + ::SELECTOR + } + Self::GamePaused(_) => { + ::SELECTOR + } + Self::IncorrectBondAmount(_) => { + ::SELECTOR + } + Self::InvalidBondDistributionMode(_) => { + ::SELECTOR + } + Self::InvalidChallengePeriod(_) => { + ::SELECTOR + } + Self::InvalidClockExtension(_) => { + ::SELECTOR + } + Self::InvalidDisputedClaimIndex(_) => { + ::SELECTOR + } + Self::InvalidLocalIdent(_) => { + ::SELECTOR + } + Self::InvalidParent(_) => { + ::SELECTOR + } + Self::InvalidPrestate(_) => { + ::SELECTOR + } + Self::InvalidSplitDepth(_) => { + ::SELECTOR + } + Self::MaxDepthTooLarge(_) => { + ::SELECTOR + } + Self::NoChainIdNeeded(_) => { + ::SELECTOR + } + Self::NoCreditToClaim(_) => { + ::SELECTOR + } + Self::OutOfOrderResolution(_) => { + ::SELECTOR + } + Self::SuperFaultDisputeGameInvalidRootClaim(_) => { + ::SELECTOR + } + Self::UnexpectedRootClaim(_) => { + ::SELECTOR + } + Self::ValidStep(_) => ::SELECTOR, + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn InvalidBondDistributionMode( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + SuperFaultDisputeGameErrors::InvalidBondDistributionMode, + ) + } + InvalidBondDistributionMode + }, + { + fn AlreadyInitialized( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperFaultDisputeGameErrors::AlreadyInitialized) + } + AlreadyInitialized + }, + { + fn NoCreditToClaim( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperFaultDisputeGameErrors::NoCreditToClaim) + } + NoCreditToClaim + }, + { + fn NoChainIdNeeded( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperFaultDisputeGameErrors::NoChainIdNeeded) + } + NoChainIdNeeded + }, + { + fn SuperFaultDisputeGameInvalidRootClaim( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + SuperFaultDisputeGameErrors::SuperFaultDisputeGameInvalidRootClaim, + ) + } + SuperFaultDisputeGameInvalidRootClaim + }, + { + fn InvalidDisputedClaimIndex( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperFaultDisputeGameErrors::InvalidDisputedClaimIndex) + } + InvalidDisputedClaimIndex + }, + { + fn ClockTimeExceeded( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperFaultDisputeGameErrors::ClockTimeExceeded) + } + ClockTimeExceeded + }, + { + fn GamePaused( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(SuperFaultDisputeGameErrors::GamePaused) + } + GamePaused + }, + { + fn GameNotFinalized( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperFaultDisputeGameErrors::GameNotFinalized) + } + GameNotFinalized + }, + { + fn GameDepthExceeded( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperFaultDisputeGameErrors::GameDepthExceeded) + } + GameDepthExceeded + }, + { + fn InvalidParent( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperFaultDisputeGameErrors::InvalidParent) + } + InvalidParent + }, + { + fn GameNotInProgress( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperFaultDisputeGameErrors::GameNotInProgress) + } + GameNotInProgress + }, + { + fn InvalidPrestate( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperFaultDisputeGameErrors::InvalidPrestate) + } + InvalidPrestate + }, + { + fn AnchorRootNotFound( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperFaultDisputeGameErrors::AnchorRootNotFound) + } + AnchorRootNotFound + }, + { + fn MaxDepthTooLarge( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperFaultDisputeGameErrors::MaxDepthTooLarge) + } + MaxDepthTooLarge + }, + { + fn ClaimAlreadyExists( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperFaultDisputeGameErrors::ClaimAlreadyExists) + } + ClaimAlreadyExists + }, + { + fn BondTransferFailed( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperFaultDisputeGameErrors::BondTransferFailed) + } + BondTransferFailed + }, + { + fn IncorrectBondAmount( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperFaultDisputeGameErrors::IncorrectBondAmount) + } + IncorrectBondAmount + }, + { + fn InvalidClockExtension( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperFaultDisputeGameErrors::InvalidClockExtension) + } + InvalidClockExtension + }, + { + fn DuplicateStep( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperFaultDisputeGameErrors::DuplicateStep) + } + DuplicateStep + }, + { + fn BadExtraData( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(SuperFaultDisputeGameErrors::BadExtraData) + } + BadExtraData + }, + { + fn OutOfOrderResolution( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperFaultDisputeGameErrors::OutOfOrderResolution) + } + OutOfOrderResolution + }, + { + fn CannotDefendRootClaim( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperFaultDisputeGameErrors::CannotDefendRootClaim) + } + CannotDefendRootClaim + }, + { + fn ClaimAboveSplit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperFaultDisputeGameErrors::ClaimAboveSplit) + } + ClaimAboveSplit + }, + { + fn InvalidChallengePeriod( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperFaultDisputeGameErrors::InvalidChallengePeriod) + } + InvalidChallengePeriod + }, + { + fn GameNotResolved( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperFaultDisputeGameErrors::GameNotResolved) + } + GameNotResolved + }, + { + fn InvalidSplitDepth( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperFaultDisputeGameErrors::InvalidSplitDepth) + } + InvalidSplitDepth + }, + { + fn ClaimAlreadyResolved( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperFaultDisputeGameErrors::ClaimAlreadyResolved) + } + ClaimAlreadyResolved + }, + { + fn ClockNotExpired( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperFaultDisputeGameErrors::ClockNotExpired) + } + ClockNotExpired + }, + { + fn UnexpectedRootClaim( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperFaultDisputeGameErrors::UnexpectedRootClaim) + } + UnexpectedRootClaim + }, + { + fn ValidStep( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(SuperFaultDisputeGameErrors::ValidStep) + } + ValidStep + }, + { + fn InvalidLocalIdent( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperFaultDisputeGameErrors::InvalidLocalIdent) + } + InvalidLocalIdent + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn InvalidBondDistributionMode( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + SuperFaultDisputeGameErrors::InvalidBondDistributionMode, + ) + } + InvalidBondDistributionMode + }, + { + fn AlreadyInitialized( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperFaultDisputeGameErrors::AlreadyInitialized) + } + AlreadyInitialized + }, + { + fn NoCreditToClaim( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperFaultDisputeGameErrors::NoCreditToClaim) + } + NoCreditToClaim + }, + { + fn NoChainIdNeeded( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperFaultDisputeGameErrors::NoChainIdNeeded) + } + NoChainIdNeeded + }, + { + fn SuperFaultDisputeGameInvalidRootClaim( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + SuperFaultDisputeGameErrors::SuperFaultDisputeGameInvalidRootClaim, + ) + } + SuperFaultDisputeGameInvalidRootClaim + }, + { + fn InvalidDisputedClaimIndex( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperFaultDisputeGameErrors::InvalidDisputedClaimIndex) + } + InvalidDisputedClaimIndex + }, + { + fn ClockTimeExceeded( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperFaultDisputeGameErrors::ClockTimeExceeded) + } + ClockTimeExceeded + }, + { + fn GamePaused( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperFaultDisputeGameErrors::GamePaused) + } + GamePaused + }, + { + fn GameNotFinalized( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperFaultDisputeGameErrors::GameNotFinalized) + } + GameNotFinalized + }, + { + fn GameDepthExceeded( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperFaultDisputeGameErrors::GameDepthExceeded) + } + GameDepthExceeded + }, + { + fn InvalidParent( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperFaultDisputeGameErrors::InvalidParent) + } + InvalidParent + }, + { + fn GameNotInProgress( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperFaultDisputeGameErrors::GameNotInProgress) + } + GameNotInProgress + }, + { + fn InvalidPrestate( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperFaultDisputeGameErrors::InvalidPrestate) + } + InvalidPrestate + }, + { + fn AnchorRootNotFound( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperFaultDisputeGameErrors::AnchorRootNotFound) + } + AnchorRootNotFound + }, + { + fn MaxDepthTooLarge( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperFaultDisputeGameErrors::MaxDepthTooLarge) + } + MaxDepthTooLarge + }, + { + fn ClaimAlreadyExists( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperFaultDisputeGameErrors::ClaimAlreadyExists) + } + ClaimAlreadyExists + }, + { + fn BondTransferFailed( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperFaultDisputeGameErrors::BondTransferFailed) + } + BondTransferFailed + }, + { + fn IncorrectBondAmount( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperFaultDisputeGameErrors::IncorrectBondAmount) + } + IncorrectBondAmount + }, + { + fn InvalidClockExtension( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperFaultDisputeGameErrors::InvalidClockExtension) + } + InvalidClockExtension + }, + { + fn DuplicateStep( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperFaultDisputeGameErrors::DuplicateStep) + } + DuplicateStep + }, + { + fn BadExtraData( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperFaultDisputeGameErrors::BadExtraData) + } + BadExtraData + }, + { + fn OutOfOrderResolution( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperFaultDisputeGameErrors::OutOfOrderResolution) + } + OutOfOrderResolution + }, + { + fn CannotDefendRootClaim( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperFaultDisputeGameErrors::CannotDefendRootClaim) + } + CannotDefendRootClaim + }, + { + fn ClaimAboveSplit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperFaultDisputeGameErrors::ClaimAboveSplit) + } + ClaimAboveSplit + }, + { + fn InvalidChallengePeriod( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperFaultDisputeGameErrors::InvalidChallengePeriod) + } + InvalidChallengePeriod + }, + { + fn GameNotResolved( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperFaultDisputeGameErrors::GameNotResolved) + } + GameNotResolved + }, + { + fn InvalidSplitDepth( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperFaultDisputeGameErrors::InvalidSplitDepth) + } + InvalidSplitDepth + }, + { + fn ClaimAlreadyResolved( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperFaultDisputeGameErrors::ClaimAlreadyResolved) + } + ClaimAlreadyResolved + }, + { + fn ClockNotExpired( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperFaultDisputeGameErrors::ClockNotExpired) + } + ClockNotExpired + }, + { + fn UnexpectedRootClaim( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperFaultDisputeGameErrors::UnexpectedRootClaim) + } + UnexpectedRootClaim + }, + { + fn ValidStep( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperFaultDisputeGameErrors::ValidStep) + } + ValidStep + }, + { + fn InvalidLocalIdent( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperFaultDisputeGameErrors::InvalidLocalIdent) + } + InvalidLocalIdent + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::AlreadyInitialized(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::AnchorRootNotFound(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::BadExtraData(inner) => { + ::abi_encoded_size(inner) + } + Self::BondTransferFailed(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::CannotDefendRootClaim(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ClaimAboveSplit(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ClaimAlreadyExists(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ClaimAlreadyResolved(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ClockNotExpired(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ClockTimeExceeded(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::DuplicateStep(inner) => { + ::abi_encoded_size(inner) + } + Self::GameDepthExceeded(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::GameNotFinalized(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::GameNotInProgress(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::GameNotResolved(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::GamePaused(inner) => { + ::abi_encoded_size(inner) + } + Self::IncorrectBondAmount(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::InvalidBondDistributionMode(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::InvalidChallengePeriod(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::InvalidClockExtension(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::InvalidDisputedClaimIndex(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::InvalidLocalIdent(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::InvalidParent(inner) => { + ::abi_encoded_size(inner) + } + Self::InvalidPrestate(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::InvalidSplitDepth(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::MaxDepthTooLarge(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::NoChainIdNeeded(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::NoCreditToClaim(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::OutOfOrderResolution(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::SuperFaultDisputeGameInvalidRootClaim(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::UnexpectedRootClaim(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ValidStep(inner) => { + ::abi_encoded_size(inner) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::AlreadyInitialized(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::AnchorRootNotFound(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::BadExtraData(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::BondTransferFailed(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::CannotDefendRootClaim(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ClaimAboveSplit(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ClaimAlreadyExists(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ClaimAlreadyResolved(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ClockNotExpired(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ClockTimeExceeded(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::DuplicateStep(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::GameDepthExceeded(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::GameNotFinalized(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::GameNotInProgress(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::GameNotResolved(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::GamePaused(inner) => { + ::abi_encode_raw(inner, out) + } + Self::IncorrectBondAmount(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidBondDistributionMode(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidChallengePeriod(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidClockExtension(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidDisputedClaimIndex(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidLocalIdent(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidParent(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidPrestate(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidSplitDepth(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::MaxDepthTooLarge(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::NoChainIdNeeded(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::NoCreditToClaim(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::OutOfOrderResolution(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::SuperFaultDisputeGameInvalidRootClaim(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::UnexpectedRootClaim(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ValidStep(inner) => { + ::abi_encode_raw(inner, out) + } + } + } + } + ///Container for all the [`SuperFaultDisputeGame`](self) events. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum SuperFaultDisputeGameEvents { + #[allow(missing_docs)] + GameClosed(GameClosed), + #[allow(missing_docs)] + Move(Move), + #[allow(missing_docs)] + Resolved(Resolved), + } + impl SuperFaultDisputeGameEvents { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 32usize]] = &[ + [ + 94u8, 24u8, 111u8, 9u8, 185u8, 201u8, 52u8, 145u8, 241u8, 78u8, 39u8, + 126u8, 234u8, 127u8, 170u8, 93u8, 230u8, 162u8, 212u8, 189u8, 167u8, + 90u8, 121u8, 175u8, 122u8, 54u8, 132u8, 251u8, 251u8, 66u8, 218u8, 96u8, + ], + [ + 153u8, 8u8, 234u8, 172u8, 6u8, 69u8, 223u8, 157u8, 7u8, 4u8, 208u8, + 106u8, 220u8, 158u8, 7u8, 51u8, 124u8, 149u8, 29u8, 226u8, 240u8, 107u8, + 95u8, 40u8, 54u8, 21u8, 29u8, 72u8, 213u8, 228u8, 114u8, 47u8, + ], + [ + 155u8, 50u8, 69u8, 116u8, 14u8, 195u8, 177u8, 85u8, 9u8, 138u8, 85u8, + 190u8, 132u8, 149u8, 122u8, 77u8, 161u8, 62u8, 175u8, 127u8, 20u8, 168u8, + 188u8, 111u8, 83u8, 18u8, 108u8, 11u8, 147u8, 80u8, 242u8, 190u8, + ], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(Resolved), + ::core::stringify!(GameClosed), + ::core::stringify!(Move), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolEventInterface for SuperFaultDisputeGameEvents { + const NAME: &'static str = "SuperFaultDisputeGameEvents"; + const COUNT: usize = 3usize; + fn decode_raw_log( + topics: &[alloy_sol_types::Word], + data: &[u8], + ) -> alloy_sol_types::Result { + match topics.first().copied() { + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::GameClosed) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log(topics, data) + .map(Self::Move) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log(topics, data) + .map(Self::Resolved) + } + _ => { + alloy_sol_types::private::Err(alloy_sol_types::Error::InvalidLog { + name: ::NAME, + log: alloy_sol_types::private::Box::new( + alloy_sol_types::private::LogData::new_unchecked( + topics.to_vec(), + data.to_vec().into(), + ), + ), + }) + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for SuperFaultDisputeGameEvents { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + match self { + Self::GameClosed(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::Move(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::Resolved(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + } + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + match self { + Self::GameClosed(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::Move(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::Resolved(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`SuperFaultDisputeGame`](self) contract instance. + +See the [wrapper's documentation](`SuperFaultDisputeGameInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> SuperFaultDisputeGameInstance { + SuperFaultDisputeGameInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + _params: ::RustType, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + SuperFaultDisputeGameInstance::::deploy(__provider, _params) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + _params: ::RustType, + ) -> alloy_contract::RawCallBuilder { + SuperFaultDisputeGameInstance::::deploy_builder(__provider, _params) + } + /**A [`SuperFaultDisputeGame`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`SuperFaultDisputeGame`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct SuperFaultDisputeGameInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for SuperFaultDisputeGameInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("SuperFaultDisputeGameInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > SuperFaultDisputeGameInstance { + /**Creates a new wrapper around an on-chain [`SuperFaultDisputeGame`](self) contract instance. + +See the [wrapper's documentation](`SuperFaultDisputeGameInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + _params: ::RustType, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider, _params); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder( + __provider: P, + _params: ::RustType, + ) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + [ + &BYTECODE[..], + &alloy_sol_types::SolConstructor::abi_encode( + &constructorCall { _params }, + )[..], + ] + .concat() + .into(), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl SuperFaultDisputeGameInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> SuperFaultDisputeGameInstance { + SuperFaultDisputeGameInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > SuperFaultDisputeGameInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`absolutePrestate`] function. + pub fn absolutePrestate( + &self, + ) -> alloy_contract::SolCallBuilder<&P, absolutePrestateCall, N> { + self.call_builder(&absolutePrestateCall) + } + ///Creates a new call builder for the [`addLocalData`] function. + pub fn addLocalData( + &self, + _ident: alloy::sol_types::private::primitives::aliases::U256, + _execLeafIdx: alloy::sol_types::private::primitives::aliases::U256, + _partOffset: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, addLocalDataCall, N> { + self.call_builder( + &addLocalDataCall { + _ident, + _execLeafIdx, + _partOffset, + }, + ) + } + ///Creates a new call builder for the [`anchorStateRegistry`] function. + pub fn anchorStateRegistry( + &self, + ) -> alloy_contract::SolCallBuilder<&P, anchorStateRegistryCall, N> { + self.call_builder(&anchorStateRegistryCall) + } + ///Creates a new call builder for the [`attack`] function. + pub fn attack( + &self, + _disputed: ::RustType, + _parentIndex: alloy::sol_types::private::primitives::aliases::U256, + _claim: ::RustType, + ) -> alloy_contract::SolCallBuilder<&P, attackCall, N> { + self.call_builder( + &attackCall { + _disputed, + _parentIndex, + _claim, + }, + ) + } + ///Creates a new call builder for the [`bondDistributionMode`] function. + pub fn bondDistributionMode( + &self, + ) -> alloy_contract::SolCallBuilder<&P, bondDistributionModeCall, N> { + self.call_builder(&bondDistributionModeCall) + } + ///Creates a new call builder for the [`claimCredit`] function. + pub fn claimCredit( + &self, + _recipient: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, claimCreditCall, N> { + self.call_builder(&claimCreditCall { _recipient }) + } + ///Creates a new call builder for the [`claimData`] function. + pub fn claimData( + &self, + _0: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, claimDataCall, N> { + self.call_builder(&claimDataCall(_0)) + } + ///Creates a new call builder for the [`claimDataLen`] function. + pub fn claimDataLen( + &self, + ) -> alloy_contract::SolCallBuilder<&P, claimDataLenCall, N> { + self.call_builder(&claimDataLenCall) + } + ///Creates a new call builder for the [`claims`] function. + pub fn claims( + &self, + _0: ::RustType, + ) -> alloy_contract::SolCallBuilder<&P, claimsCall, N> { + self.call_builder(&claimsCall(_0)) + } + ///Creates a new call builder for the [`clockExtension`] function. + pub fn clockExtension( + &self, + ) -> alloy_contract::SolCallBuilder<&P, clockExtensionCall, N> { + self.call_builder(&clockExtensionCall) + } + ///Creates a new call builder for the [`closeGame`] function. + pub fn closeGame(&self) -> alloy_contract::SolCallBuilder<&P, closeGameCall, N> { + self.call_builder(&closeGameCall) + } + ///Creates a new call builder for the [`createdAt`] function. + pub fn createdAt(&self) -> alloy_contract::SolCallBuilder<&P, createdAtCall, N> { + self.call_builder(&createdAtCall) + } + ///Creates a new call builder for the [`credit`] function. + pub fn credit( + &self, + _recipient: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, creditCall, N> { + self.call_builder(&creditCall { _recipient }) + } + ///Creates a new call builder for the [`defend`] function. + pub fn defend( + &self, + _disputed: ::RustType, + _parentIndex: alloy::sol_types::private::primitives::aliases::U256, + _claim: ::RustType, + ) -> alloy_contract::SolCallBuilder<&P, defendCall, N> { + self.call_builder( + &defendCall { + _disputed, + _parentIndex, + _claim, + }, + ) + } + ///Creates a new call builder for the [`extraData`] function. + pub fn extraData(&self) -> alloy_contract::SolCallBuilder<&P, extraDataCall, N> { + self.call_builder(&extraDataCall) + } + ///Creates a new call builder for the [`gameCreator`] function. + pub fn gameCreator( + &self, + ) -> alloy_contract::SolCallBuilder<&P, gameCreatorCall, N> { + self.call_builder(&gameCreatorCall) + } + ///Creates a new call builder for the [`gameData`] function. + pub fn gameData(&self) -> alloy_contract::SolCallBuilder<&P, gameDataCall, N> { + self.call_builder(&gameDataCall) + } + ///Creates a new call builder for the [`gameType`] function. + pub fn gameType(&self) -> alloy_contract::SolCallBuilder<&P, gameTypeCall, N> { + self.call_builder(&gameTypeCall) + } + ///Creates a new call builder for the [`getChallengerDuration`] function. + pub fn getChallengerDuration( + &self, + _claimIndex: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, getChallengerDurationCall, N> { + self.call_builder( + &getChallengerDurationCall { + _claimIndex, + }, + ) + } + ///Creates a new call builder for the [`getNumToResolve`] function. + pub fn getNumToResolve( + &self, + _claimIndex: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, getNumToResolveCall, N> { + self.call_builder(&getNumToResolveCall { _claimIndex }) + } + ///Creates a new call builder for the [`getRequiredBond`] function. + pub fn getRequiredBond( + &self, + _position: ::RustType, + ) -> alloy_contract::SolCallBuilder<&P, getRequiredBondCall, N> { + self.call_builder(&getRequiredBondCall { _position }) + } + ///Creates a new call builder for the [`hasUnlockedCredit`] function. + pub fn hasUnlockedCredit( + &self, + _0: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, hasUnlockedCreditCall, N> { + self.call_builder(&hasUnlockedCreditCall(_0)) + } + ///Creates a new call builder for the [`initialize`] function. + pub fn initialize( + &self, + ) -> alloy_contract::SolCallBuilder<&P, initializeCall, N> { + self.call_builder(&initializeCall) + } + ///Creates a new call builder for the [`l1Head`] function. + pub fn l1Head(&self) -> alloy_contract::SolCallBuilder<&P, l1HeadCall, N> { + self.call_builder(&l1HeadCall) + } + ///Creates a new call builder for the [`l2SequenceNumber`] function. + pub fn l2SequenceNumber( + &self, + ) -> alloy_contract::SolCallBuilder<&P, l2SequenceNumberCall, N> { + self.call_builder(&l2SequenceNumberCall) + } + ///Creates a new call builder for the [`maxClockDuration`] function. + pub fn maxClockDuration( + &self, + ) -> alloy_contract::SolCallBuilder<&P, maxClockDurationCall, N> { + self.call_builder(&maxClockDurationCall) + } + ///Creates a new call builder for the [`maxGameDepth`] function. + pub fn maxGameDepth( + &self, + ) -> alloy_contract::SolCallBuilder<&P, maxGameDepthCall, N> { + self.call_builder(&maxGameDepthCall) + } + ///Creates a new call builder for the [`r#move`] function. + pub fn r#move( + &self, + _disputed: ::RustType, + _challengeIndex: alloy::sol_types::private::primitives::aliases::U256, + _claim: ::RustType, + _isAttack: bool, + ) -> alloy_contract::SolCallBuilder<&P, moveCall, N> { + self.call_builder( + &moveCall { + _disputed, + _challengeIndex, + _claim, + _isAttack, + }, + ) + } + ///Creates a new call builder for the [`normalModeCredit`] function. + pub fn normalModeCredit( + &self, + _0: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, normalModeCreditCall, N> { + self.call_builder(&normalModeCreditCall(_0)) + } + ///Creates a new call builder for the [`refundModeCredit`] function. + pub fn refundModeCredit( + &self, + _0: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, refundModeCreditCall, N> { + self.call_builder(&refundModeCreditCall(_0)) + } + ///Creates a new call builder for the [`resolutionCheckpoints`] function. + pub fn resolutionCheckpoints( + &self, + _0: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, resolutionCheckpointsCall, N> { + self.call_builder(&resolutionCheckpointsCall(_0)) + } + ///Creates a new call builder for the [`resolve`] function. + pub fn resolve(&self) -> alloy_contract::SolCallBuilder<&P, resolveCall, N> { + self.call_builder(&resolveCall) + } + ///Creates a new call builder for the [`resolveClaim`] function. + pub fn resolveClaim( + &self, + _claimIndex: alloy::sol_types::private::primitives::aliases::U256, + _numToResolve: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, resolveClaimCall, N> { + self.call_builder( + &resolveClaimCall { + _claimIndex, + _numToResolve, + }, + ) + } + ///Creates a new call builder for the [`resolvedAt`] function. + pub fn resolvedAt( + &self, + ) -> alloy_contract::SolCallBuilder<&P, resolvedAtCall, N> { + self.call_builder(&resolvedAtCall) + } + ///Creates a new call builder for the [`resolvedSubgames`] function. + pub fn resolvedSubgames( + &self, + _0: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, resolvedSubgamesCall, N> { + self.call_builder(&resolvedSubgamesCall(_0)) + } + ///Creates a new call builder for the [`rootClaim`] function. + pub fn rootClaim(&self) -> alloy_contract::SolCallBuilder<&P, rootClaimCall, N> { + self.call_builder(&rootClaimCall) + } + ///Creates a new call builder for the [`splitDepth`] function. + pub fn splitDepth( + &self, + ) -> alloy_contract::SolCallBuilder<&P, splitDepthCall, N> { + self.call_builder(&splitDepthCall) + } + ///Creates a new call builder for the [`startingProposal`] function. + pub fn startingProposal( + &self, + ) -> alloy_contract::SolCallBuilder<&P, startingProposalCall, N> { + self.call_builder(&startingProposalCall) + } + ///Creates a new call builder for the [`startingRootHash`] function. + pub fn startingRootHash( + &self, + ) -> alloy_contract::SolCallBuilder<&P, startingRootHashCall, N> { + self.call_builder(&startingRootHashCall) + } + ///Creates a new call builder for the [`startingSequenceNumber`] function. + pub fn startingSequenceNumber( + &self, + ) -> alloy_contract::SolCallBuilder<&P, startingSequenceNumberCall, N> { + self.call_builder(&startingSequenceNumberCall) + } + ///Creates a new call builder for the [`status`] function. + pub fn status(&self) -> alloy_contract::SolCallBuilder<&P, statusCall, N> { + self.call_builder(&statusCall) + } + ///Creates a new call builder for the [`step`] function. + pub fn step( + &self, + _claimIndex: alloy::sol_types::private::primitives::aliases::U256, + _isAttack: bool, + _stateData: alloy::sol_types::private::Bytes, + _proof: alloy::sol_types::private::Bytes, + ) -> alloy_contract::SolCallBuilder<&P, stepCall, N> { + self.call_builder( + &stepCall { + _claimIndex, + _isAttack, + _stateData, + _proof, + }, + ) + } + ///Creates a new call builder for the [`subgames`] function. + pub fn subgames( + &self, + _0: alloy::sol_types::private::primitives::aliases::U256, + _1: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, subgamesCall, N> { + self.call_builder(&subgamesCall { _0, _1 }) + } + ///Creates a new call builder for the [`version`] function. + pub fn version(&self) -> alloy_contract::SolCallBuilder<&P, versionCall, N> { + self.call_builder(&versionCall) + } + ///Creates a new call builder for the [`vm`] function. + pub fn vm(&self) -> alloy_contract::SolCallBuilder<&P, vmCall, N> { + self.call_builder(&vmCall) + } + ///Creates a new call builder for the [`wasRespectedGameTypeWhenCreated`] function. + pub fn wasRespectedGameTypeWhenCreated( + &self, + ) -> alloy_contract::SolCallBuilder<&P, wasRespectedGameTypeWhenCreatedCall, N> { + self.call_builder(&wasRespectedGameTypeWhenCreatedCall) + } + ///Creates a new call builder for the [`weth`] function. + pub fn weth(&self) -> alloy_contract::SolCallBuilder<&P, wethCall, N> { + self.call_builder(&wethCall) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > SuperFaultDisputeGameInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + ///Creates a new event filter for the [`GameClosed`] event. + pub fn GameClosed_filter(&self) -> alloy_contract::Event<&P, GameClosed, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`Move`] event. + pub fn Move_filter(&self) -> alloy_contract::Event<&P, Move, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`Resolved`] event. + pub fn Resolved_filter(&self) -> alloy_contract::Event<&P, Resolved, N> { + self.event_filter::() + } + } +} diff --git a/bindings/rust/src/super_permissioned_dispute_game.rs b/bindings/rust/src/super_permissioned_dispute_game.rs new file mode 100644 index 000000000..70f0580f5 --- /dev/null +++ b/bindings/rust/src/super_permissioned_dispute_game.rs @@ -0,0 +1,17401 @@ +///Module containing a contract's types and functions. +/** + +```solidity +library SuperFaultDisputeGame { + struct GameConstructorParams { uint256 maxGameDepth; uint256 splitDepth; Duration clockExtension; Duration maxClockDuration; } +} +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod SuperFaultDisputeGame { + use super::*; + use alloy::sol_types as alloy_sol_types; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + /**```solidity +struct GameConstructorParams { uint256 maxGameDepth; uint256 splitDepth; Duration clockExtension; Duration maxClockDuration; } +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct GameConstructorParams { + #[allow(missing_docs)] + pub maxGameDepth: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub splitDepth: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub clockExtension: ::RustType, + #[allow(missing_docs)] + pub maxClockDuration: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + Duration, + Duration, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::primitives::aliases::U256, + ::RustType, + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: GameConstructorParams) -> Self { + ( + value.maxGameDepth, + value.splitDepth, + value.clockExtension, + value.maxClockDuration, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for GameConstructorParams { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + maxGameDepth: tuple.0, + splitDepth: tuple.1, + clockExtension: tuple.2, + maxClockDuration: tuple.3, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolValue for GameConstructorParams { + type SolType = Self; + } + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for GameConstructorParams { + #[inline] + fn stv_to_tokens(&self) -> ::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.maxGameDepth), + as alloy_sol_types::SolType>::tokenize(&self.splitDepth), + ::tokenize( + &self.clockExtension, + ), + ::tokenize( + &self.maxClockDuration, + ), + ) + } + #[inline] + fn stv_abi_encoded_size(&self) -> usize { + if let Some(size) = ::ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encoded_size(&tuple) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + ::eip712_hash_struct(self) + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + if let Some(size) = ::PACKED_ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for GameConstructorParams { + type RustType = Self; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = ::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + as alloy_sol_types::SolType>::valid_token(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + let tuple = as alloy_sol_types::SolType>::detokenize(token); + >>::from(tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolStruct for GameConstructorParams { + const NAME: &'static str = "GameConstructorParams"; + #[inline] + fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> { + alloy_sol_types::private::Cow::Borrowed( + "GameConstructorParams(uint256 maxGameDepth,uint256 splitDepth,Duration clockExtension,Duration maxClockDuration)", + ) + } + #[inline] + fn eip712_components() -> alloy_sol_types::private::Vec< + alloy_sol_types::private::Cow<'static, str>, + > { + let mut components = alloy_sol_types::private::Vec::with_capacity(2); + components + .push(::eip712_root_type()); + components + .extend( + ::eip712_components(), + ); + components + .push(::eip712_root_type()); + components + .extend( + ::eip712_components(), + ); + components + } + #[inline] + fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec { + [ + as alloy_sol_types::SolType>::eip712_data_word(&self.maxGameDepth) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.splitDepth) + .0, + ::eip712_data_word( + &self.clockExtension, + ) + .0, + ::eip712_data_word( + &self.maxClockDuration, + ) + .0, + ] + .concat() + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for GameConstructorParams { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + 0usize + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.maxGameDepth, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.splitDepth, + ) + + ::topic_preimage_length( + &rust.clockExtension, + ) + + ::topic_preimage_length( + &rust.maxClockDuration, + ) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + out.reserve( + ::topic_preimage_length(rust), + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.maxGameDepth, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.splitDepth, + out, + ); + ::encode_topic_preimage( + &rust.clockExtension, + out, + ); + ::encode_topic_preimage( + &rust.maxClockDuration, + out, + ); + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + let mut out = alloy_sol_types::private::Vec::new(); + ::encode_topic_preimage( + rust, + &mut out, + ); + alloy_sol_types::abi::token::WordToken( + alloy_sol_types::private::keccak256(out), + ) + } + } + }; + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`SuperFaultDisputeGame`](self) contract instance. + +See the [wrapper's documentation](`SuperFaultDisputeGameInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> SuperFaultDisputeGameInstance { + SuperFaultDisputeGameInstance::::new(address, __provider) + } + /**A [`SuperFaultDisputeGame`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`SuperFaultDisputeGame`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct SuperFaultDisputeGameInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for SuperFaultDisputeGameInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("SuperFaultDisputeGameInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > SuperFaultDisputeGameInstance { + /**Creates a new wrapper around an on-chain [`SuperFaultDisputeGame`](self) contract instance. + +See the [wrapper's documentation](`SuperFaultDisputeGameInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl SuperFaultDisputeGameInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> SuperFaultDisputeGameInstance { + SuperFaultDisputeGameInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > SuperFaultDisputeGameInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > SuperFaultDisputeGameInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + } +} +/** + +Generated by the following Solidity interface... +```solidity +library SuperFaultDisputeGame { + struct GameConstructorParams { + uint256 maxGameDepth; + uint256 splitDepth; + Duration clockExtension; + Duration maxClockDuration; + } +} + +interface SuperPermissionedDisputeGame { + type BondDistributionMode is uint8; + type GameStatus is uint8; + type Claim is bytes32; + type Clock is uint128; + type Duration is uint64; + type GameType is uint32; + type Hash is bytes32; + type Position is uint128; + type Timestamp is uint64; + + error AlreadyInitialized(); + error AnchorRootNotFound(); + error BadAuth(); + error BadExtraData(); + error BondTransferFailed(); + error CannotDefendRootClaim(); + error ClaimAboveSplit(); + error ClaimAlreadyExists(); + error ClaimAlreadyResolved(); + error ClockNotExpired(); + error ClockTimeExceeded(); + error DuplicateStep(); + error GameDepthExceeded(); + error GameNotFinalized(); + error GameNotInProgress(); + error GameNotResolved(); + error GamePaused(); + error IncorrectBondAmount(); + error InvalidBondDistributionMode(); + error InvalidChallengePeriod(); + error InvalidClockExtension(); + error InvalidDisputedClaimIndex(); + error InvalidLocalIdent(); + error InvalidParent(); + error InvalidPrestate(); + error InvalidSplitDepth(); + error MaxDepthTooLarge(); + error NoChainIdNeeded(); + error NoCreditToClaim(); + error OutOfOrderResolution(); + error SuperFaultDisputeGameInvalidRootClaim(); + error UnexpectedRootClaim(Claim rootClaim); + error ValidStep(); + + event GameClosed(BondDistributionMode bondDistributionMode); + event Move(uint256 indexed parentIndex, Claim indexed claim, address indexed claimant); + event Resolved(GameStatus indexed status); + + constructor(SuperFaultDisputeGame.GameConstructorParams _params); + + function absolutePrestate() external pure returns (Claim absolutePrestate_); + function addLocalData(uint256 _ident, uint256 _execLeafIdx, uint256 _partOffset) external; + function anchorStateRegistry() external pure returns (address registry_); + function attack(Claim _disputed, uint256 _parentIndex, Claim _claim) external payable; + function bondDistributionMode() external view returns (BondDistributionMode); + function challenger() external pure returns (address challenger_); + function claimCredit(address _recipient) external; + function claimData(uint256) external view returns (uint32 parentIndex, address counteredBy, address claimant, uint128 bond, Claim claim, Position position, Clock clock); + function claimDataLen() external view returns (uint256 len_); + function claims(Hash) external view returns (bool); + function clockExtension() external view returns (Duration clockExtension_); + function closeGame() external; + function createdAt() external view returns (Timestamp); + function credit(address _recipient) external view returns (uint256 credit_); + function defend(Claim _disputed, uint256 _parentIndex, Claim _claim) external payable; + function extraData() external pure returns (bytes memory extraData_); + function gameCreator() external pure returns (address creator_); + function gameData() external pure returns (GameType gameType_, Claim rootClaim_, bytes memory extraData_); + function gameType() external pure returns (GameType gameType_); + function getChallengerDuration(uint256 _claimIndex) external view returns (Duration duration_); + function getNumToResolve(uint256 _claimIndex) external view returns (uint256 numRemainingChildren_); + function getRequiredBond(Position _position) external view returns (uint256 requiredBond_); + function hasUnlockedCredit(address) external view returns (bool); + function initialize() external payable; + function l1Head() external pure returns (Hash l1Head_); + function l2SequenceNumber() external pure returns (uint256 l2SequenceNumber_); + function maxClockDuration() external view returns (Duration maxClockDuration_); + function maxGameDepth() external view returns (uint256 maxGameDepth_); + function move(Claim _disputed, uint256 _challengeIndex, Claim _claim, bool _isAttack) external payable; + function normalModeCredit(address) external view returns (uint256); + function proposer() external pure returns (address proposer_); + function refundModeCredit(address) external view returns (uint256); + function resolutionCheckpoints(uint256) external view returns (bool initialCheckpointComplete, uint32 subgameIndex, Position leftmostPosition, address counteredBy); + function resolve() external returns (GameStatus status_); + function resolveClaim(uint256 _claimIndex, uint256 _numToResolve) external; + function resolvedAt() external view returns (Timestamp); + function resolvedSubgames(uint256) external view returns (bool); + function rootClaim() external pure returns (Claim rootClaim_); + function splitDepth() external view returns (uint256 splitDepth_); + function startingProposal() external view returns (Hash root, uint256 l2SequenceNumber); + function startingRootHash() external view returns (Hash startingRootHash_); + function startingSequenceNumber() external view returns (uint256 startingSequenceNumber_); + function status() external view returns (GameStatus); + function step(uint256 _claimIndex, bool _isAttack, bytes memory _stateData, bytes memory _proof) external; + function subgames(uint256, uint256) external view returns (uint256); + function version() external pure returns (string memory); + function vm() external pure returns (address vm_); + function wasRespectedGameTypeWhenCreated() external view returns (bool); + function weth() external pure returns (address weth_); +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "constructor", + "inputs": [ + { + "name": "_params", + "type": "tuple", + "internalType": "struct SuperFaultDisputeGame.GameConstructorParams", + "components": [ + { + "name": "maxGameDepth", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "splitDepth", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "clockExtension", + "type": "uint64", + "internalType": "Duration" + }, + { + "name": "maxClockDuration", + "type": "uint64", + "internalType": "Duration" + } + ] + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "absolutePrestate", + "inputs": [], + "outputs": [ + { + "name": "absolutePrestate_", + "type": "bytes32", + "internalType": "Claim" + } + ], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "addLocalData", + "inputs": [ + { + "name": "_ident", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_execLeafIdx", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_partOffset", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "anchorStateRegistry", + "inputs": [], + "outputs": [ + { + "name": "registry_", + "type": "address", + "internalType": "contract IAnchorStateRegistry" + } + ], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "attack", + "inputs": [ + { + "name": "_disputed", + "type": "bytes32", + "internalType": "Claim" + }, + { + "name": "_parentIndex", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_claim", + "type": "bytes32", + "internalType": "Claim" + } + ], + "outputs": [], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "bondDistributionMode", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint8", + "internalType": "enum BondDistributionMode" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "challenger", + "inputs": [], + "outputs": [ + { + "name": "challenger_", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "claimCredit", + "inputs": [ + { + "name": "_recipient", + "type": "address", + "internalType": "address" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "claimData", + "inputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "parentIndex", + "type": "uint32", + "internalType": "uint32" + }, + { + "name": "counteredBy", + "type": "address", + "internalType": "address" + }, + { + "name": "claimant", + "type": "address", + "internalType": "address" + }, + { + "name": "bond", + "type": "uint128", + "internalType": "uint128" + }, + { + "name": "claim", + "type": "bytes32", + "internalType": "Claim" + }, + { + "name": "position", + "type": "uint128", + "internalType": "Position" + }, + { + "name": "clock", + "type": "uint128", + "internalType": "Clock" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "claimDataLen", + "inputs": [], + "outputs": [ + { + "name": "len_", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "claims", + "inputs": [ + { + "name": "", + "type": "bytes32", + "internalType": "Hash" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "clockExtension", + "inputs": [], + "outputs": [ + { + "name": "clockExtension_", + "type": "uint64", + "internalType": "Duration" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "closeGame", + "inputs": [], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "createdAt", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint64", + "internalType": "Timestamp" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "credit", + "inputs": [ + { + "name": "_recipient", + "type": "address", + "internalType": "address" + } + ], + "outputs": [ + { + "name": "credit_", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "defend", + "inputs": [ + { + "name": "_disputed", + "type": "bytes32", + "internalType": "Claim" + }, + { + "name": "_parentIndex", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_claim", + "type": "bytes32", + "internalType": "Claim" + } + ], + "outputs": [], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "extraData", + "inputs": [], + "outputs": [ + { + "name": "extraData_", + "type": "bytes", + "internalType": "bytes" + } + ], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "gameCreator", + "inputs": [], + "outputs": [ + { + "name": "creator_", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "gameData", + "inputs": [], + "outputs": [ + { + "name": "gameType_", + "type": "uint32", + "internalType": "GameType" + }, + { + "name": "rootClaim_", + "type": "bytes32", + "internalType": "Claim" + }, + { + "name": "extraData_", + "type": "bytes", + "internalType": "bytes" + } + ], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "gameType", + "inputs": [], + "outputs": [ + { + "name": "gameType_", + "type": "uint32", + "internalType": "GameType" + } + ], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "getChallengerDuration", + "inputs": [ + { + "name": "_claimIndex", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "duration_", + "type": "uint64", + "internalType": "Duration" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "getNumToResolve", + "inputs": [ + { + "name": "_claimIndex", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "numRemainingChildren_", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "getRequiredBond", + "inputs": [ + { + "name": "_position", + "type": "uint128", + "internalType": "Position" + } + ], + "outputs": [ + { + "name": "requiredBond_", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "hasUnlockedCredit", + "inputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "initialize", + "inputs": [], + "outputs": [], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "l1Head", + "inputs": [], + "outputs": [ + { + "name": "l1Head_", + "type": "bytes32", + "internalType": "Hash" + } + ], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "l2SequenceNumber", + "inputs": [], + "outputs": [ + { + "name": "l2SequenceNumber_", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "maxClockDuration", + "inputs": [], + "outputs": [ + { + "name": "maxClockDuration_", + "type": "uint64", + "internalType": "Duration" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "maxGameDepth", + "inputs": [], + "outputs": [ + { + "name": "maxGameDepth_", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "move", + "inputs": [ + { + "name": "_disputed", + "type": "bytes32", + "internalType": "Claim" + }, + { + "name": "_challengeIndex", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_claim", + "type": "bytes32", + "internalType": "Claim" + }, + { + "name": "_isAttack", + "type": "bool", + "internalType": "bool" + } + ], + "outputs": [], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "normalModeCredit", + "inputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "proposer", + "inputs": [], + "outputs": [ + { + "name": "proposer_", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "refundModeCredit", + "inputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "resolutionCheckpoints", + "inputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "initialCheckpointComplete", + "type": "bool", + "internalType": "bool" + }, + { + "name": "subgameIndex", + "type": "uint32", + "internalType": "uint32" + }, + { + "name": "leftmostPosition", + "type": "uint128", + "internalType": "Position" + }, + { + "name": "counteredBy", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "resolve", + "inputs": [], + "outputs": [ + { + "name": "status_", + "type": "uint8", + "internalType": "enum GameStatus" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "resolveClaim", + "inputs": [ + { + "name": "_claimIndex", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_numToResolve", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "resolvedAt", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint64", + "internalType": "Timestamp" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "resolvedSubgames", + "inputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "rootClaim", + "inputs": [], + "outputs": [ + { + "name": "rootClaim_", + "type": "bytes32", + "internalType": "Claim" + } + ], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "splitDepth", + "inputs": [], + "outputs": [ + { + "name": "splitDepth_", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "startingProposal", + "inputs": [], + "outputs": [ + { + "name": "root", + "type": "bytes32", + "internalType": "Hash" + }, + { + "name": "l2SequenceNumber", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "startingRootHash", + "inputs": [], + "outputs": [ + { + "name": "startingRootHash_", + "type": "bytes32", + "internalType": "Hash" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "startingSequenceNumber", + "inputs": [], + "outputs": [ + { + "name": "startingSequenceNumber_", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "status", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint8", + "internalType": "enum GameStatus" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "step", + "inputs": [ + { + "name": "_claimIndex", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_isAttack", + "type": "bool", + "internalType": "bool" + }, + { + "name": "_stateData", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "_proof", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "subgames", + "inputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "version", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "vm", + "inputs": [], + "outputs": [ + { + "name": "vm_", + "type": "address", + "internalType": "contract IBigStepper" + } + ], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "wasRespectedGameTypeWhenCreated", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "weth", + "inputs": [], + "outputs": [ + { + "name": "weth_", + "type": "address", + "internalType": "contract IDelayedWETH" + } + ], + "stateMutability": "pure" + }, + { + "type": "event", + "name": "GameClosed", + "inputs": [ + { + "name": "bondDistributionMode", + "type": "uint8", + "indexed": false, + "internalType": "enum BondDistributionMode" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "Move", + "inputs": [ + { + "name": "parentIndex", + "type": "uint256", + "indexed": true, + "internalType": "uint256" + }, + { + "name": "claim", + "type": "bytes32", + "indexed": true, + "internalType": "Claim" + }, + { + "name": "claimant", + "type": "address", + "indexed": true, + "internalType": "address" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "Resolved", + "inputs": [ + { + "name": "status", + "type": "uint8", + "indexed": true, + "internalType": "enum GameStatus" + } + ], + "anonymous": false + }, + { + "type": "error", + "name": "AlreadyInitialized", + "inputs": [] + }, + { + "type": "error", + "name": "AnchorRootNotFound", + "inputs": [] + }, + { + "type": "error", + "name": "BadAuth", + "inputs": [] + }, + { + "type": "error", + "name": "BadExtraData", + "inputs": [] + }, + { + "type": "error", + "name": "BondTransferFailed", + "inputs": [] + }, + { + "type": "error", + "name": "CannotDefendRootClaim", + "inputs": [] + }, + { + "type": "error", + "name": "ClaimAboveSplit", + "inputs": [] + }, + { + "type": "error", + "name": "ClaimAlreadyExists", + "inputs": [] + }, + { + "type": "error", + "name": "ClaimAlreadyResolved", + "inputs": [] + }, + { + "type": "error", + "name": "ClockNotExpired", + "inputs": [] + }, + { + "type": "error", + "name": "ClockTimeExceeded", + "inputs": [] + }, + { + "type": "error", + "name": "DuplicateStep", + "inputs": [] + }, + { + "type": "error", + "name": "GameDepthExceeded", + "inputs": [] + }, + { + "type": "error", + "name": "GameNotFinalized", + "inputs": [] + }, + { + "type": "error", + "name": "GameNotInProgress", + "inputs": [] + }, + { + "type": "error", + "name": "GameNotResolved", + "inputs": [] + }, + { + "type": "error", + "name": "GamePaused", + "inputs": [] + }, + { + "type": "error", + "name": "IncorrectBondAmount", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidBondDistributionMode", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidChallengePeriod", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidClockExtension", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidDisputedClaimIndex", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidLocalIdent", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidParent", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidPrestate", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidSplitDepth", + "inputs": [] + }, + { + "type": "error", + "name": "MaxDepthTooLarge", + "inputs": [] + }, + { + "type": "error", + "name": "NoChainIdNeeded", + "inputs": [] + }, + { + "type": "error", + "name": "NoCreditToClaim", + "inputs": [] + }, + { + "type": "error", + "name": "OutOfOrderResolution", + "inputs": [] + }, + { + "type": "error", + "name": "SuperFaultDisputeGameInvalidRootClaim", + "inputs": [] + }, + { + "type": "error", + "name": "UnexpectedRootClaim", + "inputs": [ + { + "name": "rootClaim", + "type": "bytes32", + "internalType": "Claim" + } + ] + }, + { + "type": "error", + "name": "ValidStep", + "inputs": [] + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod SuperPermissionedDisputeGame { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x6101006040523480156200001257600080fd5b5060405162006124380380620061248339810160408190526200003591620001e7565b80620000446001607e62000281565b60ff16816000015111156200006c57604051633beff19960e11b815260040160405180910390fd5b600019816020015114806200009357508051602082015162000090906001620002a7565b10155b15620000b25760405163e62ccf3960e01b815260040160405180910390fd5b600281602001511015620000d95760405163e62ccf3960e01b815260040160405180910390fd5b6000620000fe82604001516001600160401b0316620001c760201b620026941760201c565b62000114906001600160401b03166002620002c2565b90506001600160401b038111156200013f5760405163235dfb2b60e21b815260040160405180910390fd5b6200016282606001516001600160401b0316620001c760201b620026941760201c565b6001600160401b0316816001600160401b03161115620001955760405163235dfb2b60e21b815260040160405180910390fd5b508051608052602081015160a05260408101516001600160401b0390811660e0526060909101511660c05250620002e4565b90565b80516001600160401b0381168114620001e257600080fd5b919050565b600060808284031215620001fa57600080fd5b604051608081016001600160401b03811182821017156200022b57634e487b7160e01b600052604160045260246000fd5b806040525082518152602083015160208201526200024c60408401620001ca565b60408201526200025f60608401620001ca565b60608201529392505050565b634e487b7160e01b600052601160045260246000fd5b600060ff821660ff8416808210156200029e576200029e6200026b565b90039392505050565b60008219821115620002bd57620002bd6200026b565b500190565b6000816000190483118215151615620002df57620002df6200026b565b500290565b60805160a05160c05160e051615d49620003db6000396000818161071a01528181612e8201528181612eed01528181612f200152818161376701526138ae015260008181610b4701528181610d15015281816121030152818161214501528181612ce101528181612f5001528181612faf0152613939015260008181610b7a01528181612b8701528181612c5001528181612ebe0152818161459101528181614a4701528181614b4801528181614c1d01528181614f130152615174015260008181610c21015281816122130152818161229901528181612bf301528181612d450152818161448701526145b20152615d496000f3fe60806040526004361061031e5760003560e01c8063786b844b116101a5578063c0d8bb74116100ec578063dabd396d11610095578063f8f43ff61161006f578063f8f43ff614610bce578063fa24f74314610bee578063fa315aa914610c12578063fe2bbeb214610c4557600080fd5b8063dabd396d14610b38578063ec5e630814610b6b578063eff0f59214610b9e57600080fd5b8063cf09e0d0116100c6578063cf09e0d014610ad7578063d5d44d8014610af8578063d8cc1a3c14610b1857600080fd5b8063c0d8bb7414610a00578063c395e1ca14610a2d578063c6f0308c14610a4d57600080fd5b806399735e321161014e578063bbdc02db11610128578063bbdc02db14610955578063bcef3b55146109a0578063bd8da956146109e057600080fd5b806399735e3214610806578063a445ece614610846578063a8e4fb901461091257600080fd5b80638980e0cc1161017f5780638980e0cc146107815780638d450a9514610796578063938d689a146107d657600080fd5b8063786b844b146107515780637b0f0adc146107665780638129fc1c1461077957600080fd5b8063472777c6116102695780635c0cba33116102125780636361506d116101ec5780636361506d146106cb5780636b6716c01461070b5780636f0344091461073e57600080fd5b80635c0cba3314610653578063609d33341461069657806360e27464146106ab57600080fd5b806354fd4d501161024357806354fd4d50146105cf57806359cebe091461061e5780635a5fa2d91461063357600080fd5b8063472777c61461057a578063529d6a8c1461058d578063534db0e2146105ba57600080fd5b80632810e1d6116102cb57806337b1b229116102a557806337b1b229146104935780633a768463146104f45780633fc8cef31461053757600080fd5b80632810e1d6146104445780632ad69aeb14610459578063378dd48c1461047957600080fd5b8063222abf45116102fc578063222abf45146103cb578063250e69bd1461040b57806325fc2ace1461042557600080fd5b806303c2924d1461032357806319effeb414610345578063200d2ed214610390575b600080fd5b34801561032f57600080fd5b5061034361033e36600461554f565b610c75565b005b34801561035157600080fd5b506000546103729068010000000000000000900467ffffffffffffffff1681565b60405167ffffffffffffffff90911681526020015b60405180910390f35b34801561039c57600080fd5b506000546103be90700100000000000000000000000000000000900460ff1681565b60405161038791906155da565b3480156103d757600080fd5b506103fb6103e636600461560f565b600b6020526000908152604090205460ff1681565b6040519015158152602001610387565b34801561041757600080fd5b506009546103fb9060ff1681565b34801561043157600080fd5b506007545b604051908152602001610387565b34801561045057600080fd5b506103be611281565b34801561046557600080fd5b5061043661047436600461554f565b6114a6565b34801561048557600080fd5b50600c546103be9060ff1681565b34801561049f57600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90033560601c5b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610387565b34801561050057600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036098013560601c6104cf565b34801561054357600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360c0013560601c6104cf565b610343610588366004615633565b6114dc565b34801561059957600080fd5b506104366105a836600461560f565b60026020526000908152604090205481565b3480156105c657600080fd5b506104cf6114ee565b3480156105db57600080fd5b5060408051808201909152600581527f302e362e3000000000000000000000000000000000000000000000000000000060208201525b60405161038791906156ca565b34801561062a57600080fd5b50600854610436565b34801561063f57600080fd5b5061043661064e3660046156dd565b611531565b34801561065f57600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360ac013560601c6104cf565b3480156106a257600080fd5b5061061161156b565b3480156106b757600080fd5b506103436106c636600461560f565b611579565b3480156106d757600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360340135610436565b34801561071757600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610372565b61034361074c366004615704565b61194c565b34801561075d57600080fd5b50610343611a04565b610343610774366004615633565b611eda565b610343611ee7565b34801561078d57600080fd5b50600154610436565b3480156107a257600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360780135610436565b3480156107e257600080fd5b506007546008546107f1919082565b60408051928352602083019190915201610387565b34801561081257600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360580135610436565b34801561085257600080fd5b506108be6108613660046156dd565b6006602052600090815260409020805460019091015460ff821691610100810463ffffffff1691650100000000009091046fffffffffffffffffffffffffffffffff169073ffffffffffffffffffffffffffffffffffffffff1684565b60408051941515855263ffffffff90931660208501526fffffffffffffffffffffffffffffffff9091169183019190915273ffffffffffffffffffffffffffffffffffffffff166060820152608001610387565b34801561091e57600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360f4013560601c6104cf565b34801561096157600080fd5b50604051367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036054013560e01c8152602001610387565b3480156109ac57600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360140135610436565b3480156109ec57600080fd5b506103726109fb3660046156dd565b611f8e565b348015610a0c57600080fd5b50610436610a1b36600461560f565b600a6020526000908152604090205481565b348015610a3957600080fd5b50610436610a48366004615745565b61216d565b348015610a5957600080fd5b50610a6d610a683660046156dd565b612350565b6040805163ffffffff909816885273ffffffffffffffffffffffffffffffffffffffff968716602089015295909416948601949094526fffffffffffffffffffffffffffffffff9182166060860152608085015291821660a08401521660c082015260e001610387565b348015610ae357600080fd5b506000546103729067ffffffffffffffff1681565b348015610b0457600080fd5b50610436610b1336600461560f565b6123e7565b348015610b2457600080fd5b50610343610b333660046157c0565b612459565b348015610b4457600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610372565b348015610b7757600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610436565b348015610baa57600080fd5b506103fb610bb93660046156dd565b60036020526000908152604090205460ff1681565b348015610bda57600080fd5b50610343610be9366004615633565b61250d565b348015610bfa57600080fd5b50610c03612863565b6040516103879392919061584c565b348015610c1e57600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610436565b348015610c5157600080fd5b506103fb610c603660046156dd565b60056020526000908152604090205460ff1681565b60008054700100000000000000000000000000000000900460ff166002811115610ca157610ca1615571565b14610cd8576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060018381548110610ced57610ced615871565b906000526020600020906005020190506000610d0884611f8e565b905067ffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000081169082161015610d71576040517ff2440b5300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008481526005602052604090205460ff1615610dba576040517ff1a9458100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000848152600460205260409020805480158015610dd757508515155b15610e72578354640100000000900473ffffffffffffffffffffffffffffffffffffffff1660008115610e0a5781610e26565b600186015473ffffffffffffffffffffffffffffffffffffffff165b9050610e3281876128ab565b50505060009485525050600560205250506040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055565b6000868152600660209081526040918290208251608081018452815460ff81161515808352610100820463ffffffff16948301949094526501000000000090046fffffffffffffffffffffffffffffffff16938101939093526001015473ffffffffffffffffffffffffffffffffffffffff166060830152610f15576fffffffffffffffffffffffffffffffff6040820152600181526000869003610f15578195505b600086826020015163ffffffff16610f2d91906158cf565b90506000838211610f3e5781610f40565b835b602084015190915063ffffffff165b8181101561108c576000868281548110610f6b57610f6b615871565b6000918252602080832090910154808352600590915260409091205490915060ff16610fc3576040517f9a07664600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060018281548110610fd857610fd8615871565b600091825260209091206005909102018054909150640100000000900473ffffffffffffffffffffffffffffffffffffffff161580156110355750600481015460408701516fffffffffffffffffffffffffffffffff9182169116115b1561107757600181015473ffffffffffffffffffffffffffffffffffffffff16606087015260048101546fffffffffffffffffffffffffffffffff1660408701525b50508080611084906158e7565b915050610f4f565b5063ffffffff818116602085810191825260008c81526006909152604090819020865181549351928801517fffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000009094169015157fffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000ff161761010092909416918202939093177fffffffffffffffffffffff00000000000000000000000000000000ffffffffff16650100000000006fffffffffffffffffffffffffffffffff909316929092029190911782556060850151600190920180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9093169290921790915584900361127657606083015160008a815260056020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905561122d73ffffffffffffffffffffffffffffffffffffffff82161561120b5781611227565b600189015473ffffffffffffffffffffffffffffffffffffffff165b896128ab565b875473ffffffffffffffffffffffffffffffffffffffff909116640100000000027fffffffffffffffff0000000000000000000000000000000000000000ffffffff9091161787555b505050505050505050565b600080600054700100000000000000000000000000000000900460ff1660028111156112af576112af615571565b146112e6576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000805260056020527f05b8ccbb9d4d8fb16ea74ce3c29a41f1b461fbdaff4714a0d9a8eb05499746bc5460ff1661134a576040517f9a07664600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600160008154811061137657611376615871565b6000918252602090912060059091020154640100000000900473ffffffffffffffffffffffffffffffffffffffff16146113b15760016113b4565b60025b6000805467ffffffffffffffff421668010000000000000000027fffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff82168117835592935083927fffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffff000000000000000000ffffffffffffffff9091161770010000000000000000000000000000000083600281111561146557611465615571565b02179055600281111561147a5761147a615571565b6040517f5e186f09b9c93491f14e277eea7faa5de6a2d4bda75a79af7a3684fbfb42da6090600090a290565b600460205281600052604060002081815481106114c257600080fd5b90600052602060002001600091509150505481565b905090565b6114e9838383600161194c565b505050565b60006114d76114ff60f460146158cf565b367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c9003013560601c90565b6000818152600660209081526040808320600490925282208054825461156290610100900463ffffffff168261591f565b95945050505050565b60606114d760586020612904565b611581611a04565b60006002600c5460ff16600281111561159c5761159c615571565b036115cd575073ffffffffffffffffffffffffffffffffffffffff81166000908152600a6020526040902054611649565b6001600c5460ff1660028111156115e6576115e6615571565b03611617575073ffffffffffffffffffffffffffffffffffffffff8116600090815260026020526040902054611649565b6040517f078a3df400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff82166000908152600b602052604090205460ff1661178a5773ffffffffffffffffffffffffffffffffffffffff82166000908152600b6020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790556116fc60c07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe369081013560f01c9003013560601c90565b6040517f7eee288d00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8481166004830152602482018490529190911690637eee288d90604401600060405180830381600087803b15801561176e57600080fd5b505af1158015611782573d6000803e3d6000fd5b505050505050565b806000036117c4576040517f17bfe5f700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff82166000908152600a602090815260408083208390556002909152812055367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360c0013560601c6040517ff3fef3a300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff848116600483015260248201849052919091169063f3fef3a390604401600060405180830381600087803b15801561189a57600080fd5b505af11580156118ae573d6000803e3d6000fd5b5050505060008273ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d806000811461190c576040519150601f19603f3d011682016040523d82523d6000602084013e611911565b606091505b50509050806114e9576040517f83e6cc6b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360f4013560601c3314806119bc575061198d6114ee565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6119f2576040517fd386ef3e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6119fe84848484612956565b50505050565b367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360ac013560601c73ffffffffffffffffffffffffffffffffffffffff16635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a7f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aa39190615936565b15611ada576040517f379a7ed900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600c5460ff166002811115611af357611af3615571565b1480611b1557506001600c5460ff166002811115611b1357611b13615571565b145b15611b1c57565b6000600c5460ff166002811115611b3557611b35615571565b14611b6c576040517f078a3df400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005468010000000000000000900467ffffffffffffffff1667ffffffffffffffff16600003611bc8576040517fc105260a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360ac013560601c6040517f0314d2b300000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff9190911690630314d2b390602401602060405180830381865afa158015611c67573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c8b9190615936565b905080611cc4576040517f4851bd9b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360ac013560601c6040517f17cf21a900000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906317cf21a990602401600060405180830381600087803b158015611d5e57600080fd5b505af1925050508015611d6f575060015b506000367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360ac013560601c6040517f496b9c1600000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff919091169063496b9c1690602401602060405180830381865afa158015611e0f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e339190615936565b90508015611e6b57600c80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055611e97565b600c80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660021790555b600c546040517f9908eaac0645df9d0704d06adc9e07337c951de2f06b5f2836151d48d5e4722f91611ece9160ff909116906155da565b60405180910390a15050565b6114e9838383600061194c565b611eef6133fa565b367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360f4013560601c3214611f58576040517fd386ef3e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036054013560e01c90565b600080600054700100000000000000000000000000000000900460ff166002811115611fbc57611fbc615571565b14611ff3576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006001838154811061200857612008615871565b600091825260208220600590910201805490925063ffffffff9081161461207757815460018054909163ffffffff1690811061204657612046615871565b906000526020600020906005020160040160109054906101000a90046fffffffffffffffffffffffffffffffff1690505b60048201546000906120af90700100000000000000000000000000000000900467ffffffffffffffff165b67ffffffffffffffff1690565b6120c39067ffffffffffffffff164261591f565b6120e26120a2846fffffffffffffffffffffffffffffffff1660401c90565b67ffffffffffffffff166120f691906158cf565b905067ffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001667ffffffffffffffff168167ffffffffffffffff16116121435780611562565b7f000000000000000000000000000000000000000000000000000000000000000095945050505050565b60008061220c836fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff1690507f000000000000000000000000000000000000000000000000000000000000000081111561226b576040517f56f57b2b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b642e90edd00062061a806311e1a30060006122868383615982565b9050670de0b6b3a764000060006122bd827f0000000000000000000000000000000000000000000000000000000000000000615996565b905060006122db6122d6670de0b6b3a764000086615996565b613edc565b905060006122e98484614137565b905060006122f78383614186565b90506000612304826141b4565b905060006123238261231e670de0b6b3a76400008f615996565b61439c565b905060006123318b83614186565b905061233d818d615996565b9f9e505050505050505050505050505050565b6001818154811061236057600080fd5b60009182526020909120600590910201805460018201546002830154600384015460049094015463ffffffff8416955064010000000090930473ffffffffffffffffffffffffffffffffffffffff908116949216926fffffffffffffffffffffffffffffffff91821692918082169170010000000000000000000000000000000090041687565b60006002600c5460ff16600281111561240257612402615571565b03612430575073ffffffffffffffffffffffffffffffffffffffff166000908152600a602052604090205490565b5073ffffffffffffffffffffffffffffffffffffffff1660009081526002602052604090205490565b367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360f4013560601c3314806124c9575061249a6114ee565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6124ff576040517fd386ef3e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6117828686868686866143d6565b60008054700100000000000000000000000000000000900460ff16600281111561253957612539615571565b14612570576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008060008061257f86614a0c565b9350935093509350600061259585858585614e15565b90506000367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036098013560601c73ffffffffffffffffffffffffffffffffffffffff16637dc0d1d06040518163ffffffff1660e01b8152600401602060405180830381865afa158015612614573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061263891906159d3565b9050600189036127335773ffffffffffffffffffffffffffffffffffffffff81166352f0f3ad8a84612697367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036034013590565b90565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e086901b16815260048101939093526024830191909152604482015260206064820152608481018a905260a4015b6020604051808303816000875af1158015612709573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061272d91906159f0565b50611276565b6002890361275f5773ffffffffffffffffffffffffffffffffffffffff81166352f0f3ad8a8489612697565b6003890361278b5773ffffffffffffffffffffffffffffffffffffffff81166352f0f3ad8a8487612697565b60048903612831576040517f52f0f3ad000000000000000000000000000000000000000000000000000000008152600481018a905260248101839052367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036058013560c01b6044820152600860648201526084810188905273ffffffffffffffffffffffffffffffffffffffff8216906352f0f3ad9060a4016126ea565b6040517fff137e6500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c9003605481013560e01c906014013560606128a461156b565b9050909192565b60028082015473ffffffffffffffffffffffffffffffffffffffff841660009081526020929092526040822080546fffffffffffffffffffffffffffffffff9092169290916128fb9084906158cf565b90915550505050565b604051818152367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90038284820160208401378260208301016000815260208101604052505092915050565b60008054700100000000000000000000000000000000900460ff16600281111561298257612982615571565b146129b9576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600184815481106129ce576129ce615871565b60009182526020918290206040805160e0810182526005909302909101805463ffffffff8116845273ffffffffffffffffffffffffffffffffffffffff64010000000090910481169484019490945260018101549093169082015260028201546fffffffffffffffffffffffffffffffff908116606083015260038301546080830181905260049093015480821660a084015270010000000000000000000000000000000090041660c082015291508514612ab5576040517f3014033200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60a0810151600083156fffffffffffffffffffffffffffffffff83161760011b90506000612b75826fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff169050861580612bb05750612bad7f000000000000000000000000000000000000000000000000000000000000000060026158cf565b81145b8015612bba575084155b15612bf1576040517fa42637bc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f0000000000000000000000000000000000000000000000000000000000000000811115612c4b576040517f56f57b2b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612c767f000000000000000000000000000000000000000000000000000000000000000060016158cf565b8103612c8857612c8886888588614ecf565b34612c928361216d565b14612cc9576040517f8620aa1900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000612cd488611f8e565b905067ffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000811690821603612d3c576040517f3381d11400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000612d6960017f000000000000000000000000000000000000000000000000000000000000000061591f565b8303612eb757367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036098013560601c73ffffffffffffffffffffffffffffffffffffffff16637dc0d1d06040518163ffffffff1660e01b8152600401602060405180830381865afa158015612dea573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e0e91906159d3565b73ffffffffffffffffffffffffffffffffffffffff1663f3f480d96040518163ffffffff1660e01b8152600401602060405180830381865afa158015612e58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e7c91906159f0565b612eb0907f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff16615a09565b9050612f4a565b612ee260017f000000000000000000000000000000000000000000000000000000000000000061591f565b8303612f1d57612eb07f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff166002615a35565b507f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff165b612f7e817f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff16615a65565b67ffffffffffffffff16612f998367ffffffffffffffff1690565b67ffffffffffffffff161115612fe057612fdd817f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff16615a65565b91505b6000604083901b421760008a8152608087901b6fffffffffffffffffffffffffffffffff8d1617602052604081209192509060008181526003602052604090205490915060ff161561305e576040517f80497e3b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60016003600083815260200190815260200160002060006101000a81548160ff02191690831515021790555060016040518060e001604052808d63ffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020013373ffffffffffffffffffffffffffffffffffffffff168152602001346fffffffffffffffffffffffffffffffff1681526020018c8152602001886fffffffffffffffffffffffffffffffff168152602001846fffffffffffffffffffffffffffffffff16815250908060018154018082558091505060019003906000526020600020906005020160009091909190915060008201518160000160006101000a81548163ffffffff021916908363ffffffff16021790555060208201518160000160046101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060608201518160020160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055506080820151816003015560a08201518160040160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555060c08201518160040160106101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055505050600460008c8152602001908152602001600020600180805490506132f3919061591f565b81546001810183556000928352602080842090910191909155338252600a90526040812080543492906133279084906158cf565b9091555050367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360c0013560601c73ffffffffffffffffffffffffffffffffffffffff1663d0e30db0346040518263ffffffff1660e01b81526004016000604051808303818588803b1580156133a457600080fd5b505af11580156133b8573d6000803e3d6000fd5b50506040513393508d92508e91507f9b3245740ec3b155098a55be84957a4da13eaf7f14a8bc6f53126c0b9350f2be90600090a4505050505050505050505050565b60005471010000000000000000000000000000000000900460ff161561344c576040517f0dc149f000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b613454615089565b361461348c576040517f9824bdab00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360ac013560601c73ffffffffffffffffffffffffffffffffffffffff1663d83ef2676040518163ffffffff1660e01b81526004016040805180830381865afa158015613509573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061352d9190615a8e565b909250905081613569576040517f6a6bc3b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fffd7db0f9d5cdeb49c4c9eba649d4dc6d852d64671e65488e57f58584992ac686135be367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036014013590565b036135f5576040517f2cfac08200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604080518082019091528281526020018190526007829055600881905567ffffffffffffffff367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036098013560601c73ffffffffffffffffffffffffffffffffffffffff16637dc0d1d06040518163ffffffff1660e01b8152600401602060405180830381865afa158015613696573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136ba91906159d3565b73ffffffffffffffffffffffffffffffffffffffff1663f3f480d96040518163ffffffff1660e01b8152600401602060405180830381865afa158015613704573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061372891906159f0565b1115613760576040517fb4e1243300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006137977f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff166002615996565b90506000367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036098013560601c73ffffffffffffffffffffffffffffffffffffffff16637dc0d1d06040518163ffffffff1660e01b8152600401602060405180830381865afa158015613816573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061383a91906159d3565b73ffffffffffffffffffffffffffffffffffffffff1663f3f480d96040518163ffffffff1660e01b8152600401602060405180830381865afa158015613884573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138a891906159f0565b6138dc907f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff166158cf565b905060006138ea838361509e565b905067ffffffffffffffff81111561392e576040517f8d77ecac00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b67ffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001667ffffffffffffffff168167ffffffffffffffff1611156139a6576040517f8d77ecac00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360d4013515613a0b576040517f223db39400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b83367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036058013511613aa5576040517ff40239db000000000000000000000000000000000000000000000000000000008152367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036014013560048201526024015b60405180910390fd5b6040805160e08101825263ffffffff80825260006020808401828152367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90038035606090811c8789018181526fffffffffffffffffffffffffffffffff34818116948b0194855260149095013560808b01908152600160a08c0181815242841660c08e0190815282548084018455928c529c517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6600590930292830180549a5191909d167fffffffffffffffff000000000000000000000000000000000000000000000000909a169990991764010000000073ffffffffffffffffffffffffffffffffffffffff9a8b160217909b5592517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf7840180547fffffffffffffffffffffffff000000000000000000000000000000000000000016919098161790965592517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf8820180547fffffffffffffffffffffffffffffffff000000000000000000000000000000001691851691909117905593517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf9850155955196519681167001000000000000000000000000000000009790911696909602959095177fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cfa909101558154710100000000000000000000000000000000007fffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff909116178255918152600a909152918220805491929091613d269084906158cf565b9091555050367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360c0013560601c73ffffffffffffffffffffffffffffffffffffffff1663d0e30db0346040518263ffffffff1660e01b81526004016000604051808303818588803b158015613da357600080fd5b505af1158015613db7573d6000803e3d6000fd5b5050600080547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000164267ffffffffffffffff1617905550613dfa9150611f5a9050565b63ffffffff16367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360ac013560601c73ffffffffffffffffffffffffffffffffffffffff16633c9f397c6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613e7b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613e9f9190615ab2565b600980547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001663ffffffff92909216929092141790555050505050565b6fffffffffffffffffffffffffffffffff811160071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b1760008213613f3b57631615e6386000526004601cfd5b7ff8f9f9faf9fdfafbf9fdfcfdfafbfcfef9fafdfafcfcfbfefafafcfbffffffff6f8421084210842108cc6318c6db6d54be83831c1c601f161a1890811b609f90811c6c465772b2bbbb5f824b15207a3081018102606090811d6d0388eaa27412d5aca026815d636e018202811d6d0df99ac502031bf953eff472fdcc018202811d6d13cdffb29d51d99322bdff5f2211018202811d6d0a0f742023def783a307a986912e018202811d6d01920d8043ca89b5239253284e42018202811d6c0b7a86d7375468fac667a0a527016c29508e458543d8aa4df2abee7883018302821d6d0139601a2efabe717e604cbb4894018302821d6d02247f7a7b6594320649aa03aba1018302821d7fffffffffffffffffffffffffffffffffffffff73c0c716a594e00d54e3c4cbc9018302821d7ffffffffffffffffffffffffffffffffffffffdc7b88c420e53a9890533129f6f01830290911d7fffffffffffffffffffffffffffffffffffffff465fda27eb4d63ded474e5f832019091027ffffffffffffffff5f6af8f7b3396644f18e157960000000000000000000000000105711340daa0d5f769dba1915cef59f0815a5506029190037d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b302017d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b88642840160ae1d90565b60007812725dd1d243aba0e75fe645cc4873f9e65afe688c928e1f218311670de0b6b3a76400000215820261417457637c5f487d6000526004601cfd5b50670de0b6b3a7640000919091020490565b6000816000190483118202156141a45763bac65e5b6000526004601cfd5b50670de0b6b3a764000091020490565b60007ffffffffffffffffffffffffffffffffffffffffffffffffdc0d0570925a462d782136141e257919050565b680755bf798b4a1bf1e582126142005763a37bfec96000526004601cfd5b6503782dace9d9604e83901b059150600060606bb17217f7d1cf79abc9e3b39884821b056b80000000000000000000000001901d6bb17217f7d1cf79abc9e3b39881029093037fffffffffffffffffffffffffffffffffffffffdbf3ccf1604d263450f02a550481018102606090811d6d0277594991cfc85f6e2461837cd9018202811d7fffffffffffffffffffffffffffffffffffffe5adedaa1cb095af9e4da10e363c018202811d6db1bbb201f443cf962f1a1d3db4a5018202811d7ffffffffffffffffffffffffffffffffffffd38dc772608b0ae56cce01296c0eb018202811d6e05180bb14799ab47a8a8cb2a527d57016d02d16720577bd19bf614176fe9ea6c10fe68e7fd37d0007b713f765084018402831d9081019084017ffffffffffffffffffffffffffffffffffffffe2c69812cf03b0763fd454a8f7e010290911d6e0587f503bb6ea29d25fcb7401964500190910279d835ebba824c98fb31b83b2ca45c000000000000000000000000010574029d9dc38563c32e5c2f6dc192ee70ef65f9978af30260c3939093039290921c92915050565b60006143cd670de0b6b3a7640000836143b486613edc565b6143be9190615ad8565b6143c89190615b94565b6141b4565b90505b92915050565b60008054700100000000000000000000000000000000900460ff16600281111561440257614402615571565b14614439576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006001878154811061444e5761444e615871565b6000918252602082206005919091020160048101549092506fffffffffffffffffffffffffffffffff16908715821760011b90506144ad7f000000000000000000000000000000000000000000000000000000000000000060016158cf565b614549826fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff1614614583576040517f5f53dd9800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000808915614687576145d67f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000061591f565b6001901b6145f5846fffffffffffffffffffffffffffffffff166150b5565b6fffffffffffffffffffffffffffffffff166146119190615bfc565b1561464e5761464561463660016fffffffffffffffffffffffffffffffff8716615c10565b865463ffffffff166000615154565b6003015461467d565b367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c9003607801355b91508490506146b1565b600385015491506146ae6146366fffffffffffffffffffffffffffffffff86166001615c39565b90505b600882901b60088a8a6040516146c8929190615c64565b6040518091039020901b14614709576040517f696550ff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006147148c615238565b90506000614723836003015490565b6040517fe14ced32000000000000000000000000000000000000000000000000000000008152367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036098013560601c9063e14ced3290614797908f908f908f908f908a90600401615cbd565b6020604051808303816000875af11580156147b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906147da91906159f0565b600485015491149150600090600290614885906fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b614921896fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b61492b9190615cf7565b6149359190615d1a565b60ff161590508115158103614976576040517ffb4e40dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8754640100000000900473ffffffffffffffffffffffffffffffffffffffff16156149cd576040517f9071e6af00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505085547fffffffffffffffff0000000000000000000000000000000000000000ffffffff163364010000000002179095555050505050505050505050565b6000806000806000859050600060018281548110614a2c57614a2c615871565b600091825260209091206004600590920201908101549091507f000000000000000000000000000000000000000000000000000000000000000090614b03906fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff1611614b3d576040517fb34b5c2200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000815b60048301547f000000000000000000000000000000000000000000000000000000000000000090614c04906fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff169250821115614c7957825463ffffffff16614c437f000000000000000000000000000000000000000000000000000000000000000060016158cf565b8303614c4d578391505b60018181548110614c6057614c60615871565b9060005260206000209060050201935080945050614b41565b600481810154908401546fffffffffffffffffffffffffffffffff91821691166000816fffffffffffffffffffffffffffffffff16614ce2614ccd856fffffffffffffffffffffffffffffffff1660011c90565b6fffffffffffffffffffffffffffffffff1690565b6fffffffffffffffffffffffffffffffff161490508015614db1576000614d1a836fffffffffffffffffffffffffffffffff166150b5565b6fffffffffffffffffffffffffffffffff161115614d85576000614d5c614d5460016fffffffffffffffffffffffffffffffff8616615c10565b896001615154565b6003810154600490910154909c506fffffffffffffffffffffffffffffffff169a50614d8b9050565b6007549a505b600386015460048701549099506fffffffffffffffffffffffffffffffff169750614e07565b6000614dd3614d546fffffffffffffffffffffffffffffffff85166001615c39565b6003808901546004808b015492840154930154909e506fffffffffffffffffffffffffffffffff9182169d50919b50169850505b505050505050509193509193565b60006fffffffffffffffffffffffffffffffff841615614e825760408051602081018790526fffffffffffffffffffffffffffffffff8087169282019290925260608101859052908316608082015260a00160405160208183030381529060405280519060200120611562565b8282604051602001614eb09291909182526fffffffffffffffffffffffffffffffff16602082015260400190565b6040516020818303038152906040528051906020012095945050505050565b6000614eee6fffffffffffffffffffffffffffffffff84166001615c39565b90506000614efe82866001615154565b9050600086901a8380614fea5750614f3760027f0000000000000000000000000000000000000000000000000000000000000000615bfc565b6004830154600290614fdb906fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b614fe59190615d1a565b60ff16145b156150425760ff811660011480615004575060ff81166002145b61503d576040517ff40239db00000000000000000000000000000000000000000000000000000000815260048101889052602401613a9c565b615080565b60ff811615615080576040517ff40239db00000000000000000000000000000000000000000000000000000000815260048101889052602401613a9c565b50505050505050565b6000615093615267565b6114d79060066158cf565b6000818310156150ae57816143cd565b5090919050565b600080615142837e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b600160ff919091161b90920392915050565b6000808261519d576151986fffffffffffffffffffffffffffffffff86167f0000000000000000000000000000000000000000000000000000000000000000615275565b6151b8565b6151b8856fffffffffffffffffffffffffffffffff16615401565b9050600184815481106151cd576151cd615871565b906000526020600020906005020191505b60048201546fffffffffffffffffffffffffffffffff82811691161461523057815460018054909163ffffffff1690811061521b5761521b615871565b906000526020600020906005020191506151de565b509392505050565b600080600080600061524986614a0c565b935093509350935061525d84848484614e15565b9695505050505050565b60006114d760f460286158cf565b600081615314846fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff161161532a5763b34b5c226000526004601cfd5b61533383615401565b9050816153d2826fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff16116143d0576143cd6153e88360016158cf565b6fffffffffffffffffffffffffffffffff8316906154a6565b60008119600183011681615495827e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff169390931c8015179392505050565b600080615533847e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff169050808303600180821b0385821b179250505092915050565b6000806040838503121561556257600080fd5b50508035926020909101359150565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600381106155d7577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b50565b602081016155e7836155a0565b91905290565b73ffffffffffffffffffffffffffffffffffffffff811681146155d757600080fd5b60006020828403121561562157600080fd5b813561562c816155ed565b9392505050565b60008060006060848603121561564857600080fd5b505081359360208301359350604090920135919050565b6000815180845260005b8181101561568557602081850181015186830182015201615669565b81811115615697576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006143cd602083018461565f565b6000602082840312156156ef57600080fd5b5035919050565b80151581146155d757600080fd5b6000806000806080858703121561571a57600080fd5b843593506020850135925060408501359150606085013561573a816156f6565b939692955090935050565b60006020828403121561575757600080fd5b81356fffffffffffffffffffffffffffffffff8116811461562c57600080fd5b60008083601f84011261578957600080fd5b50813567ffffffffffffffff8111156157a157600080fd5b6020830191508360208285010111156157b957600080fd5b9250929050565b600080600080600080608087890312156157d957600080fd5b8635955060208701356157eb816156f6565b9450604087013567ffffffffffffffff8082111561580857600080fd5b6158148a838b01615777565b9096509450606089013591508082111561582d57600080fd5b5061583a89828a01615777565b979a9699509497509295939492505050565b63ffffffff84168152826020820152606060408201526000611562606083018461565f565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600082198211156158e2576158e26158a0565b500190565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203615918576159186158a0565b5060010190565b600082821015615931576159316158a0565b500390565b60006020828403121561594857600080fd5b815161562c816156f6565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60008261599157615991615953565b500490565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156159ce576159ce6158a0565b500290565b6000602082840312156159e557600080fd5b815161562c816155ed565b600060208284031215615a0257600080fd5b5051919050565b600067ffffffffffffffff808316818516808303821115615a2c57615a2c6158a0565b01949350505050565b600067ffffffffffffffff80831681851681830481118215151615615a5c57615a5c6158a0565b02949350505050565b600067ffffffffffffffff83811690831681811015615a8657615a866158a0565b039392505050565b60008060408385031215615aa157600080fd5b505080516020909101519092909150565b600060208284031215615ac457600080fd5b815163ffffffff8116811461562c57600080fd5b60007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600084136000841385830485118282161615615b1957615b196158a0565b7f80000000000000000000000000000000000000000000000000000000000000006000871286820588128184161615615b5457615b546158a0565b60008712925087820587128484161615615b7057615b706158a0565b87850587128184161615615b8657615b866158a0565b505050929093029392505050565b600082615ba357615ba3615953565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83147f800000000000000000000000000000000000000000000000000000000000000083141615615bf757615bf76158a0565b500590565b600082615c0b57615c0b615953565b500690565b60006fffffffffffffffffffffffffffffffff83811690831681811015615a8657615a866158a0565b60006fffffffffffffffffffffffffffffffff808316818516808303821115615a2c57615a2c6158a0565b8183823760009101908152919050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b606081526000615cd1606083018789615c74565b8281036020840152615ce4818688615c74565b9150508260408301529695505050505050565b600060ff821660ff841680821015615d1157615d116158a0565b90039392505050565b600060ff831680615d2d57615d2d615953565b8060ff8416069150509291505056fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"a\x01\0`@R4\x80\x15b\0\0\x12W`\0\x80\xFD[P`@Qb\0a$8\x03\x80b\0a$\x839\x81\x01`@\x81\x90Rb\0\x005\x91b\0\x01\xE7V[\x80b\0\0D`\x01`~b\0\x02\x81V[`\xFF\x16\x81`\0\x01Q\x11\x15b\0\0lW`@Qc;\xEF\xF1\x99`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0\x19\x81` \x01Q\x14\x80b\0\0\x93WP\x80Q` \x82\x01Qb\0\0\x90\x90`\x01b\0\x02\xA7V[\x10\x15[\x15b\0\0\xB2W`@Qc\xE6,\xCF9`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x02\x81` \x01Q\x10\x15b\0\0\xD9W`@Qc\xE6,\xCF9`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0b\0\0\xFE\x82`@\x01Q`\x01`\x01`@\x1B\x03\x16b\0\x01\xC7` \x1Bb\0&\x94\x17` \x1CV[b\0\x01\x14\x90`\x01`\x01`@\x1B\x03\x16`\x02b\0\x02\xC2V[\x90P`\x01`\x01`@\x1B\x03\x81\x11\x15b\0\x01?W`@Qc#]\xFB+`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[b\0\x01b\x82``\x01Q`\x01`\x01`@\x1B\x03\x16b\0\x01\xC7` \x1Bb\0&\x94\x17` \x1CV[`\x01`\x01`@\x1B\x03\x16\x81`\x01`\x01`@\x1B\x03\x16\x11\x15b\0\x01\x95W`@Qc#]\xFB+`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[P\x80Q`\x80R` \x81\x01Q`\xA0R`@\x81\x01Q`\x01`\x01`@\x1B\x03\x90\x81\x16`\xE0R``\x90\x91\x01Q\x16`\xC0RPb\0\x02\xE4V[\x90V[\x80Q`\x01`\x01`@\x1B\x03\x81\x16\x81\x14b\0\x01\xE2W`\0\x80\xFD[\x91\x90PV[`\0`\x80\x82\x84\x03\x12\x15b\0\x01\xFAW`\0\x80\xFD[`@Q`\x80\x81\x01`\x01`\x01`@\x1B\x03\x81\x11\x82\x82\x10\x17\x15b\0\x02+WcNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[\x80`@RP\x82Q\x81R` \x83\x01Q` \x82\x01Rb\0\x02L`@\x84\x01b\0\x01\xCAV[`@\x82\x01Rb\0\x02_``\x84\x01b\0\x01\xCAV[``\x82\x01R\x93\x92PPPV[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[`\0`\xFF\x82\x16`\xFF\x84\x16\x80\x82\x10\x15b\0\x02\x9EWb\0\x02\x9Eb\0\x02kV[\x90\x03\x93\x92PPPV[`\0\x82\x19\x82\x11\x15b\0\x02\xBDWb\0\x02\xBDb\0\x02kV[P\x01\x90V[`\0\x81`\0\x19\x04\x83\x11\x82\x15\x15\x16\x15b\0\x02\xDFWb\0\x02\xDFb\0\x02kV[P\x02\x90V[`\x80Q`\xA0Q`\xC0Q`\xE0Qa]Ib\0\x03\xDB`\09`\0\x81\x81a\x07\x1A\x01R\x81\x81a.\x82\x01R\x81\x81a.\xED\x01R\x81\x81a/ \x01R\x81\x81a7g\x01Ra8\xAE\x01R`\0\x81\x81a\x0BG\x01R\x81\x81a\r\x15\x01R\x81\x81a!\x03\x01R\x81\x81a!E\x01R\x81\x81a,\xE1\x01R\x81\x81a/P\x01R\x81\x81a/\xAF\x01Ra99\x01R`\0\x81\x81a\x0Bz\x01R\x81\x81a+\x87\x01R\x81\x81a,P\x01R\x81\x81a.\xBE\x01R\x81\x81aE\x91\x01R\x81\x81aJG\x01R\x81\x81aKH\x01R\x81\x81aL\x1D\x01R\x81\x81aO\x13\x01RaQt\x01R`\0\x81\x81a\x0C!\x01R\x81\x81a\"\x13\x01R\x81\x81a\"\x99\x01R\x81\x81a+\xF3\x01R\x81\x81a-E\x01R\x81\x81aD\x87\x01RaE\xB2\x01Ra]I`\0\xF3\xFE`\x80`@R`\x046\x10a\x03\x1EW`\x005`\xE0\x1C\x80cxk\x84K\x11a\x01\xA5W\x80c\xC0\xD8\xBBt\x11a\0\xECW\x80c\xDA\xBD9m\x11a\0\x95W\x80c\xF8\xF4?\xF6\x11a\0oW\x80c\xF8\xF4?\xF6\x14a\x0B\xCEW\x80c\xFA$\xF7C\x14a\x0B\xEEW\x80c\xFA1Z\xA9\x14a\x0C\x12W\x80c\xFE+\xBE\xB2\x14a\x0CEW`\0\x80\xFD[\x80c\xDA\xBD9m\x14a\x0B8W\x80c\xEC^c\x08\x14a\x0BkW\x80c\xEF\xF0\xF5\x92\x14a\x0B\x9EW`\0\x80\xFD[\x80c\xCF\t\xE0\xD0\x11a\0\xC6W\x80c\xCF\t\xE0\xD0\x14a\n\xD7W\x80c\xD5\xD4M\x80\x14a\n\xF8W\x80c\xD8\xCC\x1A<\x14a\x0B\x18W`\0\x80\xFD[\x80c\xC0\xD8\xBBt\x14a\n\0W\x80c\xC3\x95\xE1\xCA\x14a\n-W\x80c\xC6\xF00\x8C\x14a\nMW`\0\x80\xFD[\x80c\x99s^2\x11a\x01NW\x80c\xBB\xDC\x02\xDB\x11a\x01(W\x80c\xBB\xDC\x02\xDB\x14a\tUW\x80c\xBC\xEF;U\x14a\t\xA0W\x80c\xBD\x8D\xA9V\x14a\t\xE0W`\0\x80\xFD[\x80c\x99s^2\x14a\x08\x06W\x80c\xA4E\xEC\xE6\x14a\x08FW\x80c\xA8\xE4\xFB\x90\x14a\t\x12W`\0\x80\xFD[\x80c\x89\x80\xE0\xCC\x11a\x01\x7FW\x80c\x89\x80\xE0\xCC\x14a\x07\x81W\x80c\x8DE\n\x95\x14a\x07\x96W\x80c\x93\x8Dh\x9A\x14a\x07\xD6W`\0\x80\xFD[\x80cxk\x84K\x14a\x07QW\x80c{\x0F\n\xDC\x14a\x07fW\x80c\x81)\xFC\x1C\x14a\x07yW`\0\x80\xFD[\x80cG'w\xC6\x11a\x02iW\x80c\\\x0C\xBA3\x11a\x02\x12W\x80ccaPm\x11a\x01\xECW\x80ccaPm\x14a\x06\xCBW\x80ckg\x16\xC0\x14a\x07\x0BW\x80co\x03D\t\x14a\x07>W`\0\x80\xFD[\x80c\\\x0C\xBA3\x14a\x06SW\x80c`\x9D34\x14a\x06\x96W\x80c`\xE2td\x14a\x06\xABW`\0\x80\xFD[\x80cT\xFDMP\x11a\x02CW\x80cT\xFDMP\x14a\x05\xCFW\x80cY\xCE\xBE\t\x14a\x06\x1EW\x80cZ_\xA2\xD9\x14a\x063W`\0\x80\xFD[\x80cG'w\xC6\x14a\x05zW\x80cR\x9Dj\x8C\x14a\x05\x8DW\x80cSM\xB0\xE2\x14a\x05\xBAW`\0\x80\xFD[\x80c(\x10\xE1\xD6\x11a\x02\xCBW\x80c7\xB1\xB2)\x11a\x02\xA5W\x80c7\xB1\xB2)\x14a\x04\x93W\x80c:v\x84c\x14a\x04\xF4W\x80c?\xC8\xCE\xF3\x14a\x057W`\0\x80\xFD[\x80c(\x10\xE1\xD6\x14a\x04DW\x80c*\xD6\x9A\xEB\x14a\x04YW\x80c7\x8D\xD4\x8C\x14a\x04yW`\0\x80\xFD[\x80c\"*\xBFE\x11a\x02\xFCW\x80c\"*\xBFE\x14a\x03\xCBW\x80c%\x0Ei\xBD\x14a\x04\x0BW\x80c%\xFC*\xCE\x14a\x04%W`\0\x80\xFD[\x80c\x03\xC2\x92M\x14a\x03#W\x80c\x19\xEF\xFE\xB4\x14a\x03EW\x80c \r.\xD2\x14a\x03\x90W[`\0\x80\xFD[4\x80\x15a\x03/W`\0\x80\xFD[Pa\x03Ca\x03>6`\x04aUOV[a\x0CuV[\0[4\x80\x15a\x03QW`\0\x80\xFD[P`\0Ta\x03r\x90h\x01\0\0\0\0\0\0\0\0\x90\x04g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[`@Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[4\x80\x15a\x03\x9CW`\0\x80\xFD[P`\0Ta\x03\xBE\x90p\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16\x81V[`@Qa\x03\x87\x91\x90aU\xDAV[4\x80\x15a\x03\xD7W`\0\x80\xFD[Pa\x03\xFBa\x03\xE66`\x04aV\x0FV[`\x0B` R`\0\x90\x81R`@\x90 T`\xFF\x16\x81V[`@Q\x90\x15\x15\x81R` \x01a\x03\x87V[4\x80\x15a\x04\x17W`\0\x80\xFD[P`\tTa\x03\xFB\x90`\xFF\x16\x81V[4\x80\x15a\x041W`\0\x80\xFD[P`\x07T[`@Q\x90\x81R` \x01a\x03\x87V[4\x80\x15a\x04PW`\0\x80\xFD[Pa\x03\xBEa\x12\x81V[4\x80\x15a\x04eW`\0\x80\xFD[Pa\x046a\x04t6`\x04aUOV[a\x14\xA6V[4\x80\x15a\x04\x85W`\0\x80\xFD[P`\x0CTa\x03\xBE\x90`\xFF\x16\x81V[4\x80\x15a\x04\x9FW`\0\x80\xFD[P6\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x035``\x1C[`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01a\x03\x87V[4\x80\x15a\x05\0W`\0\x80\xFD[P6\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`\x98\x015``\x1Ca\x04\xCFV[4\x80\x15a\x05CW`\0\x80\xFD[P6\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`\xC0\x015``\x1Ca\x04\xCFV[a\x03Ca\x05\x886`\x04aV3V[a\x14\xDCV[4\x80\x15a\x05\x99W`\0\x80\xFD[Pa\x046a\x05\xA86`\x04aV\x0FV[`\x02` R`\0\x90\x81R`@\x90 T\x81V[4\x80\x15a\x05\xC6W`\0\x80\xFD[Pa\x04\xCFa\x14\xEEV[4\x80\x15a\x05\xDBW`\0\x80\xFD[P`@\x80Q\x80\x82\x01\x90\x91R`\x05\x81R\x7F0.6.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` \x82\x01R[`@Qa\x03\x87\x91\x90aV\xCAV[4\x80\x15a\x06*W`\0\x80\xFD[P`\x08Ta\x046V[4\x80\x15a\x06?W`\0\x80\xFD[Pa\x046a\x06N6`\x04aV\xDDV[a\x151V[4\x80\x15a\x06_W`\0\x80\xFD[P6\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`\xAC\x015``\x1Ca\x04\xCFV[4\x80\x15a\x06\xA2W`\0\x80\xFD[Pa\x06\x11a\x15kV[4\x80\x15a\x06\xB7W`\0\x80\xFD[Pa\x03Ca\x06\xC66`\x04aV\x0FV[a\x15yV[4\x80\x15a\x06\xD7W`\0\x80\xFD[P6\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`4\x015a\x046V[4\x80\x15a\x07\x17W`\0\x80\xFD[P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x03rV[a\x03Ca\x07L6`\x04aW\x04V[a\x19LV[4\x80\x15a\x07]W`\0\x80\xFD[Pa\x03Ca\x1A\x04V[a\x03Ca\x07t6`\x04aV3V[a\x1E\xDAV[a\x03Ca\x1E\xE7V[4\x80\x15a\x07\x8DW`\0\x80\xFD[P`\x01Ta\x046V[4\x80\x15a\x07\xA2W`\0\x80\xFD[P6\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`x\x015a\x046V[4\x80\x15a\x07\xE2W`\0\x80\xFD[P`\x07T`\x08Ta\x07\xF1\x91\x90\x82V[`@\x80Q\x92\x83R` \x83\x01\x91\x90\x91R\x01a\x03\x87V[4\x80\x15a\x08\x12W`\0\x80\xFD[P6\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`X\x015a\x046V[4\x80\x15a\x08RW`\0\x80\xFD[Pa\x08\xBEa\x08a6`\x04aV\xDDV[`\x06` R`\0\x90\x81R`@\x90 \x80T`\x01\x90\x91\x01T`\xFF\x82\x16\x91a\x01\0\x81\x04c\xFF\xFF\xFF\xFF\x16\x91e\x01\0\0\0\0\0\x90\x91\x04o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x84V[`@\x80Q\x94\x15\x15\x85Rc\xFF\xFF\xFF\xFF\x90\x93\x16` \x85\x01Ro\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x91\x83\x01\x91\x90\x91Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16``\x82\x01R`\x80\x01a\x03\x87V[4\x80\x15a\t\x1EW`\0\x80\xFD[P6\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`\xF4\x015``\x1Ca\x04\xCFV[4\x80\x15a\taW`\0\x80\xFD[P`@Q6\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`T\x015`\xE0\x1C\x81R` \x01a\x03\x87V[4\x80\x15a\t\xACW`\0\x80\xFD[P6\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`\x14\x015a\x046V[4\x80\x15a\t\xECW`\0\x80\xFD[Pa\x03ra\t\xFB6`\x04aV\xDDV[a\x1F\x8EV[4\x80\x15a\n\x0CW`\0\x80\xFD[Pa\x046a\n\x1B6`\x04aV\x0FV[`\n` R`\0\x90\x81R`@\x90 T\x81V[4\x80\x15a\n9W`\0\x80\xFD[Pa\x046a\nH6`\x04aWEV[a!mV[4\x80\x15a\nYW`\0\x80\xFD[Pa\nma\nh6`\x04aV\xDDV[a#PV[`@\x80Qc\xFF\xFF\xFF\xFF\x90\x98\x16\x88Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x96\x87\x16` \x89\x01R\x95\x90\x94\x16\x94\x86\x01\x94\x90\x94Ro\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x91\x82\x16``\x86\x01R`\x80\x85\x01R\x91\x82\x16`\xA0\x84\x01R\x16`\xC0\x82\x01R`\xE0\x01a\x03\x87V[4\x80\x15a\n\xE3W`\0\x80\xFD[P`\0Ta\x03r\x90g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[4\x80\x15a\x0B\x04W`\0\x80\xFD[Pa\x046a\x0B\x136`\x04aV\x0FV[a#\xE7V[4\x80\x15a\x0B$W`\0\x80\xFD[Pa\x03Ca\x0B36`\x04aW\xC0V[a$YV[4\x80\x15a\x0BDW`\0\x80\xFD[P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x03rV[4\x80\x15a\x0BwW`\0\x80\xFD[P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x046V[4\x80\x15a\x0B\xAAW`\0\x80\xFD[Pa\x03\xFBa\x0B\xB96`\x04aV\xDDV[`\x03` R`\0\x90\x81R`@\x90 T`\xFF\x16\x81V[4\x80\x15a\x0B\xDAW`\0\x80\xFD[Pa\x03Ca\x0B\xE96`\x04aV3V[a%\rV[4\x80\x15a\x0B\xFAW`\0\x80\xFD[Pa\x0C\x03a(cV[`@Qa\x03\x87\x93\x92\x91\x90aXLV[4\x80\x15a\x0C\x1EW`\0\x80\xFD[P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x046V[4\x80\x15a\x0CQW`\0\x80\xFD[Pa\x03\xFBa\x0C`6`\x04aV\xDDV[`\x05` R`\0\x90\x81R`@\x90 T`\xFF\x16\x81V[`\0\x80Tp\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16`\x02\x81\x11\x15a\x0C\xA1Wa\x0C\xA1aUqV[\x14a\x0C\xD8W`@Q\x7Fg\xFE\x19P\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\x01`@Q\x80\x91\x03\x90\xFD[`\0`\x01\x83\x81T\x81\x10a\x0C\xEDWa\x0C\xEDaXqV[\x90`\0R` `\0 \x90`\x05\x02\x01\x90P`\0a\r\x08\x84a\x1F\x8EV[\x90Pg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81\x16\x90\x82\x16\x10\x15a\rqW`@Q\x7F\xF2D\x0BS\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\x01`@Q\x80\x91\x03\x90\xFD[`\0\x84\x81R`\x05` R`@\x90 T`\xFF\x16\x15a\r\xBAW`@Q\x7F\xF1\xA9E\x81\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\x01`@Q\x80\x91\x03\x90\xFD[`\0\x84\x81R`\x04` R`@\x90 \x80T\x80\x15\x80\x15a\r\xD7WP\x85\x15\x15[\x15a\x0ErW\x83Td\x01\0\0\0\0\x90\x04s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\0\x81\x15a\x0E\nW\x81a\x0E&V[`\x01\x86\x01Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16[\x90Pa\x0E2\x81\x87a(\xABV[PPP`\0\x94\x85RPP`\x05` RPP`@\x90 \x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x16`\x01\x17\x90UV[`\0\x86\x81R`\x06` \x90\x81R`@\x91\x82\x90 \x82Q`\x80\x81\x01\x84R\x81T`\xFF\x81\x16\x15\x15\x80\x83Ra\x01\0\x82\x04c\xFF\xFF\xFF\xFF\x16\x94\x83\x01\x94\x90\x94Re\x01\0\0\0\0\0\x90\x04o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x93\x81\x01\x93\x90\x93R`\x01\x01Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16``\x83\x01Ra\x0F\x15Wo\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF`@\x82\x01R`\x01\x81R`\0\x86\x90\x03a\x0F\x15W\x81\x95P[`\0\x86\x82` \x01Qc\xFF\xFF\xFF\xFF\x16a\x0F-\x91\x90aX\xCFV[\x90P`\0\x83\x82\x11a\x0F>W\x81a\x0F@V[\x83[` \x84\x01Q\x90\x91Pc\xFF\xFF\xFF\xFF\x16[\x81\x81\x10\x15a\x10\x8CW`\0\x86\x82\x81T\x81\x10a\x0FkWa\x0FkaXqV[`\0\x91\x82R` \x80\x83 \x90\x91\x01T\x80\x83R`\x05\x90\x91R`@\x90\x91 T\x90\x91P`\xFF\x16a\x0F\xC3W`@Q\x7F\x9A\x07fF\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\x01`@Q\x80\x91\x03\x90\xFD[`\0`\x01\x82\x81T\x81\x10a\x0F\xD8Wa\x0F\xD8aXqV[`\0\x91\x82R` \x90\x91 `\x05\x90\x91\x02\x01\x80T\x90\x91Pd\x01\0\0\0\0\x90\x04s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x15\x80\x15a\x105WP`\x04\x81\x01T`@\x87\x01Qo\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x91\x82\x16\x91\x16\x11[\x15a\x10wW`\x01\x81\x01Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16``\x87\x01R`\x04\x81\x01To\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`@\x87\x01R[PP\x80\x80a\x10\x84\x90aX\xE7V[\x91PPa\x0FOV[Pc\xFF\xFF\xFF\xFF\x81\x81\x16` \x85\x81\x01\x91\x82R`\0\x8C\x81R`\x06\x90\x91R`@\x90\x81\x90 \x86Q\x81T\x93Q\x92\x88\x01Q\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\x90\x94\x16\x90\x15\x15\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\xFF\x16\x17a\x01\0\x92\x90\x94\x16\x91\x82\x02\x93\x90\x93\x17\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xFF\xFF\xFF\xFF\xFF\x16e\x01\0\0\0\0\0o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x93\x16\x92\x90\x92\x02\x91\x90\x91\x17\x82U``\x85\x01Q`\x01\x90\x92\x01\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x93\x16\x92\x90\x92\x17\x90\x91U\x84\x90\x03a\x12vW``\x83\x01Q`\0\x8A\x81R`\x05` R`@\x90 \x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x16`\x01\x17\x90Ua\x12-s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16\x15a\x12\x0BW\x81a\x12'V[`\x01\x89\x01Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16[\x89a(\xABV[\x87Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16d\x01\0\0\0\0\x02\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xFF\xFF\xFF\xFF\x90\x91\x16\x17\x87U[PPPPPPPPPV[`\0\x80`\0Tp\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16`\x02\x81\x11\x15a\x12\xAFWa\x12\xAFaUqV[\x14a\x12\xE6W`@Q\x7Fg\xFE\x19P\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\x01`@Q\x80\x91\x03\x90\xFD[`\0\x80R`\x05` R\x7F\x05\xB8\xCC\xBB\x9DM\x8F\xB1n\xA7L\xE3\xC2\x9AA\xF1\xB4a\xFB\xDA\xFFG\x14\xA0\xD9\xA8\xEB\x05I\x97F\xBCT`\xFF\x16a\x13JW`@Q\x7F\x9A\x07fF\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\x01`@Q\x80\x91\x03\x90\xFD[`\0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\x01`\0\x81T\x81\x10a\x13vWa\x13vaXqV[`\0\x91\x82R` \x90\x91 `\x05\x90\x91\x02\x01Td\x01\0\0\0\0\x90\x04s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14a\x13\xB1W`\x01a\x13\xB4V[`\x02[`\0\x80Tg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFFB\x16h\x01\0\0\0\0\0\0\0\0\x02\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16\x81\x17\x83U\x92\x93P\x83\x92\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x17p\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x83`\x02\x81\x11\x15a\x14eWa\x14eaUqV[\x02\x17\x90U`\x02\x81\x11\x15a\x14zWa\x14zaUqV[`@Q\x7F^\x18o\t\xB9\xC94\x91\xF1N'~\xEA\x7F\xAA]\xE6\xA2\xD4\xBD\xA7Zy\xAFz6\x84\xFB\xFBB\xDA`\x90`\0\x90\xA2\x90V[`\x04` R\x81`\0R`@`\0 \x81\x81T\x81\x10a\x14\xC2W`\0\x80\xFD[\x90`\0R` `\0 \x01`\0\x91P\x91PPT\x81V[\x90P\x90V[a\x14\xE9\x83\x83\x83`\x01a\x19LV[PPPV[`\0a\x14\xD7a\x14\xFF`\xF4`\x14aX\xCFV[6\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03\x015``\x1C\x90V[`\0\x81\x81R`\x06` \x90\x81R`@\x80\x83 `\x04\x90\x92R\x82 \x80T\x82Ta\x15b\x90a\x01\0\x90\x04c\xFF\xFF\xFF\xFF\x16\x82aY\x1FV[\x95\x94PPPPPV[``a\x14\xD7`X` a)\x04V[a\x15\x81a\x1A\x04V[`\0`\x02`\x0CT`\xFF\x16`\x02\x81\x11\x15a\x15\x9CWa\x15\x9CaUqV[\x03a\x15\xCDWPs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16`\0\x90\x81R`\n` R`@\x90 Ta\x16IV[`\x01`\x0CT`\xFF\x16`\x02\x81\x11\x15a\x15\xE6Wa\x15\xE6aUqV[\x03a\x16\x17WPs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16`\0\x90\x81R`\x02` R`@\x90 Ta\x16IV[`@Q\x7F\x07\x8A=\xF4\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\x01`@Q\x80\x91\x03\x90\xFD[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16`\0\x90\x81R`\x0B` R`@\x90 T`\xFF\x16a\x17\x8AWs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16`\0\x90\x81R`\x0B` R`@\x90 \x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x16`\x01\x17\x90Ua\x16\xFC`\xC0\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE6\x90\x81\x015`\xF0\x1C\x90\x03\x015``\x1C\x90V[`@Q\x7F~\xEE(\x8D\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\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x81\x16`\x04\x83\x01R`$\x82\x01\x84\x90R\x91\x90\x91\x16\x90c~\xEE(\x8D\x90`D\x01`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a\x17nW`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x17\x82W=`\0\x80>=`\0\xFD[PPPPPPV[\x80`\0\x03a\x17\xC4W`@Q\x7F\x17\xBF\xE5\xF7\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\x01`@Q\x80\x91\x03\x90\xFD[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16`\0\x90\x81R`\n` \x90\x81R`@\x80\x83 \x83\x90U`\x02\x90\x91R\x81 U6\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`\xC0\x015``\x1C`@Q\x7F\xF3\xFE\xF3\xA3\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\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x81\x16`\x04\x83\x01R`$\x82\x01\x84\x90R\x91\x90\x91\x16\x90c\xF3\xFE\xF3\xA3\x90`D\x01`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a\x18\x9AW`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x18\xAEW=`\0\x80>=`\0\xFD[PPPP`\0\x82s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x82`@Q`\0`@Q\x80\x83\x03\x81\x85\x87Z\xF1\x92PPP=\x80`\0\x81\x14a\x19\x0CW`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=`\0` \x84\x01>a\x19\x11V[``\x91P[PP\x90P\x80a\x14\xE9W`@Q\x7F\x83\xE6\xCCk\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\x01`@Q\x80\x91\x03\x90\xFD[6\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`\xF4\x015``\x1C3\x14\x80a\x19\xBCWPa\x19\x8Da\x14\xEEV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x163s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14[a\x19\xF2W`@Q\x7F\xD3\x86\xEF>\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\x01`@Q\x80\x91\x03\x90\xFD[a\x19\xFE\x84\x84\x84\x84a)VV[PPPPV[6\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`\xAC\x015``\x1Cs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\\\x97Z\xBB`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x1A\x7FW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x1A\xA3\x91\x90aY6V[\x15a\x1A\xDAW`@Q\x7F7\x9A~\xD9\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\x01`@Q\x80\x91\x03\x90\xFD[`\x02`\x0CT`\xFF\x16`\x02\x81\x11\x15a\x1A\xF3Wa\x1A\xF3aUqV[\x14\x80a\x1B\x15WP`\x01`\x0CT`\xFF\x16`\x02\x81\x11\x15a\x1B\x13Wa\x1B\x13aUqV[\x14[\x15a\x1B\x1CWV[`\0`\x0CT`\xFF\x16`\x02\x81\x11\x15a\x1B5Wa\x1B5aUqV[\x14a\x1BlW`@Q\x7F\x07\x8A=\xF4\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\x01`@Q\x80\x91\x03\x90\xFD[`\0Th\x01\0\0\0\0\0\0\0\0\x90\x04g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\0\x03a\x1B\xC8W`@Q\x7F\xC1\x05&\n\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\x01`@Q\x80\x91\x03\x90\xFD[`\x006\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`\xAC\x015``\x1C`@Q\x7F\x03\x14\xD2\xB3\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\x81R0`\x04\x82\x01Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x91\x90\x91\x16\x90c\x03\x14\xD2\xB3\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x1CgW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x1C\x8B\x91\x90aY6V[\x90P\x80a\x1C\xC4W`@Q\x7FHQ\xBD\x9B\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\x01`@Q\x80\x91\x03\x90\xFD[6\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`\xAC\x015``\x1C`@Q\x7F\x17\xCF!\xA9\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\x81R0`\x04\x82\x01Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x91\x90\x91\x16\x90c\x17\xCF!\xA9\x90`$\x01`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a\x1D^W`\0\x80\xFD[PZ\xF1\x92PPP\x80\x15a\x1DoWP`\x01[P`\x006\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`\xAC\x015``\x1C`@Q\x7FIk\x9C\x16\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\x81R0`\x04\x82\x01Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x91\x90\x91\x16\x90cIk\x9C\x16\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x1E\x0FW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x1E3\x91\x90aY6V[\x90P\x80\x15a\x1EkW`\x0C\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x16`\x01\x17\x90Ua\x1E\x97V[`\x0C\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x16`\x02\x17\x90U[`\x0CT`@Q\x7F\x99\x08\xEA\xAC\x06E\xDF\x9D\x07\x04\xD0j\xDC\x9E\x073|\x95\x1D\xE2\xF0k_(6\x15\x1DH\xD5\xE4r/\x91a\x1E\xCE\x91`\xFF\x90\x91\x16\x90aU\xDAV[`@Q\x80\x91\x03\x90\xA1PPV[a\x14\xE9\x83\x83\x83`\0a\x19LV[a\x1E\xEFa3\xFAV[6\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`\xF4\x015``\x1C2\x14a\x1FXW`@Q\x7F\xD3\x86\xEF>\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\x01`@Q\x80\x91\x03\x90\xFD[V[6\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`T\x015`\xE0\x1C\x90V[`\0\x80`\0Tp\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16`\x02\x81\x11\x15a\x1F\xBCWa\x1F\xBCaUqV[\x14a\x1F\xF3W`@Q\x7Fg\xFE\x19P\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\x01`@Q\x80\x91\x03\x90\xFD[`\0`\x01\x83\x81T\x81\x10a \x08Wa \x08aXqV[`\0\x91\x82R` \x82 `\x05\x90\x91\x02\x01\x80T\x90\x92Pc\xFF\xFF\xFF\xFF\x90\x81\x16\x14a wW\x81T`\x01\x80T\x90\x91c\xFF\xFF\xFF\xFF\x16\x90\x81\x10a FWa FaXqV[\x90`\0R` `\0 \x90`\x05\x02\x01`\x04\x01`\x10\x90T\x90a\x01\0\n\x90\x04o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90P[`\x04\x82\x01T`\0\x90a \xAF\x90p\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90V[a \xC3\x90g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16BaY\x1FV[a \xE2a \xA2\x84o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`@\x1C\x90V[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a \xF6\x91\x90aX\xCFV[\x90Pg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x11a!CW\x80a\x15bV[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x95\x94PPPPPV[`\0\x80a\"\x0C\x83o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1F\x7F\x07\xC4\xAC\xDD\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\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\xFF\x16\x90P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81\x11\x15a\"kW`@Q\x7FV\xF5{+\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\x01`@Q\x80\x91\x03\x90\xFD[d.\x90\xED\xD0\0b\x06\x1A\x80c\x11\xE1\xA3\0`\0a\"\x86\x83\x83aY\x82V[\x90Pg\r\xE0\xB6\xB3\xA7d\0\0`\0a\"\xBD\x82\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0aY\x96V[\x90P`\0a\"\xDBa\"\xD6g\r\xE0\xB6\xB3\xA7d\0\0\x86aY\x96V[a>\xDCV[\x90P`\0a\"\xE9\x84\x84aA7V[\x90P`\0a\"\xF7\x83\x83aA\x86V[\x90P`\0a#\x04\x82aA\xB4V[\x90P`\0a##\x82a#\x1Eg\r\xE0\xB6\xB3\xA7d\0\0\x8FaY\x96V[aC\x9CV[\x90P`\0a#1\x8B\x83aA\x86V[\x90Pa#=\x81\x8DaY\x96V[\x9F\x9EPPPPPPPPPPPPPPPV[`\x01\x81\x81T\x81\x10a#`W`\0\x80\xFD[`\0\x91\x82R` \x90\x91 `\x05\x90\x91\x02\x01\x80T`\x01\x82\x01T`\x02\x83\x01T`\x03\x84\x01T`\x04\x90\x94\x01Tc\xFF\xFF\xFF\xFF\x84\x16\x95Pd\x01\0\0\0\0\x90\x93\x04s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x81\x16\x94\x92\x16\x92o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x91\x82\x16\x92\x91\x80\x82\x16\x91p\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04\x16\x87V[`\0`\x02`\x0CT`\xFF\x16`\x02\x81\x11\x15a$\x02Wa$\x02aUqV[\x03a$0WPs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\0\x90\x81R`\n` R`@\x90 T\x90V[Ps\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\0\x90\x81R`\x02` R`@\x90 T\x90V[6\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`\xF4\x015``\x1C3\x14\x80a$\xC9WPa$\x9Aa\x14\xEEV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x163s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14[a$\xFFW`@Q\x7F\xD3\x86\xEF>\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\x01`@Q\x80\x91\x03\x90\xFD[a\x17\x82\x86\x86\x86\x86\x86\x86aC\xD6V[`\0\x80Tp\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16`\x02\x81\x11\x15a%9Wa%9aUqV[\x14a%pW`@Q\x7Fg\xFE\x19P\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\x01`@Q\x80\x91\x03\x90\xFD[`\0\x80`\0\x80a%\x7F\x86aJ\x0CV[\x93P\x93P\x93P\x93P`\0a%\x95\x85\x85\x85\x85aN\x15V[\x90P`\x006\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`\x98\x015``\x1Cs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c}\xC0\xD1\xD0`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a&\x14W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a&8\x91\x90aY\xD3V[\x90P`\x01\x89\x03a'3Ws\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16cR\xF0\xF3\xAD\x8A\x84a&\x976\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`4\x015\x90V[\x90V[`@Q\x7F\xFF\xFF\xFF\xFF\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`\xE0\x86\x90\x1B\x16\x81R`\x04\x81\x01\x93\x90\x93R`$\x83\x01\x91\x90\x91R`D\x82\x01R` `d\x82\x01R`\x84\x81\x01\x8A\x90R`\xA4\x01[` `@Q\x80\x83\x03\x81`\0\x87Z\xF1\x15\x80\x15a'\tW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a'-\x91\x90aY\xF0V[Pa\x12vV[`\x02\x89\x03a'_Ws\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16cR\xF0\xF3\xAD\x8A\x84\x89a&\x97V[`\x03\x89\x03a'\x8BWs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16cR\xF0\xF3\xAD\x8A\x84\x87a&\x97V[`\x04\x89\x03a(1W`@Q\x7FR\xF0\xF3\xAD\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\x81\x01\x8A\x90R`$\x81\x01\x83\x90R6\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`X\x015`\xC0\x1B`D\x82\x01R`\x08`d\x82\x01R`\x84\x81\x01\x88\x90Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16\x90cR\xF0\xF3\xAD\x90`\xA4\x01a&\xEAV[`@Q\x7F\xFF\x13~e\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\x01`@Q\x80\x91\x03\x90\xFD[6\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`T\x81\x015`\xE0\x1C\x90`\x14\x015``a(\xA4a\x15kV[\x90P\x90\x91\x92V[`\x02\x80\x82\x01Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x16`\0\x90\x81R` \x92\x90\x92R`@\x82 \x80To\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x92\x16\x92\x90\x91a(\xFB\x90\x84\x90aX\xCFV[\x90\x91UPPPPV[`@Q\x81\x81R6\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03\x82\x84\x82\x01` \x84\x017\x82` \x83\x01\x01`\0\x81R` \x81\x01`@RPP\x92\x91PPV[`\0\x80Tp\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16`\x02\x81\x11\x15a)\x82Wa)\x82aUqV[\x14a)\xB9W`@Q\x7Fg\xFE\x19P\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\x01`@Q\x80\x91\x03\x90\xFD[`\0`\x01\x84\x81T\x81\x10a)\xCEWa)\xCEaXqV[`\0\x91\x82R` \x91\x82\x90 `@\x80Q`\xE0\x81\x01\x82R`\x05\x90\x93\x02\x90\x91\x01\x80Tc\xFF\xFF\xFF\xFF\x81\x16\x84Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFFd\x01\0\0\0\0\x90\x91\x04\x81\x16\x94\x84\x01\x94\x90\x94R`\x01\x81\x01T\x90\x93\x16\x90\x82\x01R`\x02\x82\x01To\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x81\x16``\x83\x01R`\x03\x83\x01T`\x80\x83\x01\x81\x90R`\x04\x90\x93\x01T\x80\x82\x16`\xA0\x84\x01Rp\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04\x16`\xC0\x82\x01R\x91P\x85\x14a*\xB5W`@Q\x7F0\x14\x032\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\x01`@Q\x80\x91\x03\x90\xFD[`\xA0\x81\x01Q`\0\x83\x15o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x16\x17`\x01\x1B\x90P`\0a+u\x82o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1F\x7F\x07\xC4\xAC\xDD\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\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\xFF\x16\x90P\x86\x15\x80a+\xB0WPa+\xAD\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x02aX\xCFV[\x81\x14[\x80\x15a+\xBAWP\x84\x15[\x15a+\xF1W`@Q\x7F\xA4&7\xBC\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\x01`@Q\x80\x91\x03\x90\xFD[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81\x11\x15a,KW`@Q\x7FV\xF5{+\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\x01`@Q\x80\x91\x03\x90\xFD[a,v\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01aX\xCFV[\x81\x03a,\x88Wa,\x88\x86\x88\x85\x88aN\xCFV[4a,\x92\x83a!mV[\x14a,\xC9W`@Q\x7F\x86 \xAA\x19\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\x01`@Q\x80\x91\x03\x90\xFD[`\0a,\xD4\x88a\x1F\x8EV[\x90Pg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81\x16\x90\x82\x16\x03a-=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a.\x0E\x91\x90aY\xD3V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xF3\xF4\x80\xD9`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a.XW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a.|\x91\x90aY\xF0V[a.\xB0\x90\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16aZ\tV[\x90Pa/JV[a.\xE2`\x01\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0aY\x1FV[\x83\x03a/\x1DWa.\xB0\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\x02aZ5V[P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16[a/~\x81\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16aZeV[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a/\x99\x83g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90V[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x11\x15a/\xE0Wa/\xDD\x81\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16aZeV[\x91P[`\0`@\x83\x90\x1BB\x17`\0\x8A\x81R`\x80\x87\x90\x1Bo\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x8D\x16\x17` R`@\x81 \x91\x92P\x90`\0\x81\x81R`\x03` R`@\x90 T\x90\x91P`\xFF\x16\x15a0^W`@Q\x7F\x80I~;\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x03`\0\x83\x81R` \x01\x90\x81R` \x01`\0 `\0a\x01\0\n\x81T\x81`\xFF\x02\x19\x16\x90\x83\x15\x15\x02\x17\x90UP`\x01`@Q\x80`\xE0\x01`@R\x80\x8Dc\xFF\xFF\xFF\xFF\x16\x81R` \x01`\0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81R` \x013s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81R` \x014o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81R` \x01\x8C\x81R` \x01\x88o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81R` \x01\x84o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81RP\x90\x80`\x01\x81T\x01\x80\x82U\x80\x91PP`\x01\x90\x03\x90`\0R` `\0 \x90`\x05\x02\x01`\0\x90\x91\x90\x91\x90\x91P`\0\x82\x01Q\x81`\0\x01`\0a\x01\0\n\x81T\x81c\xFF\xFF\xFF\xFF\x02\x19\x16\x90\x83c\xFF\xFF\xFF\xFF\x16\x02\x17\x90UP` \x82\x01Q\x81`\0\x01`\x04a\x01\0\n\x81T\x81s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x02\x19\x16\x90\x83s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x02\x17\x90UP`@\x82\x01Q\x81`\x01\x01`\0a\x01\0\n\x81T\x81s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x02\x19\x16\x90\x83s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x02\x17\x90UP``\x82\x01Q\x81`\x02\x01`\0a\x01\0\n\x81T\x81o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x02\x19\x16\x90\x83o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x02\x17\x90UP`\x80\x82\x01Q\x81`\x03\x01U`\xA0\x82\x01Q\x81`\x04\x01`\0a\x01\0\n\x81T\x81o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x02\x19\x16\x90\x83o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x02\x17\x90UP`\xC0\x82\x01Q\x81`\x04\x01`\x10a\x01\0\n\x81T\x81o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x02\x19\x16\x90\x83o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x02\x17\x90UPPP`\x04`\0\x8C\x81R` \x01\x90\x81R` \x01`\0 `\x01\x80\x80T\x90Pa2\xF3\x91\x90aY\x1FV[\x81T`\x01\x81\x01\x83U`\0\x92\x83R` \x80\x84 \x90\x91\x01\x91\x90\x91U3\x82R`\n\x90R`@\x81 \x80T4\x92\x90a3'\x90\x84\x90aX\xCFV[\x90\x91UPP6\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`\xC0\x015``\x1Cs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xD0\xE3\r\xB04`@Q\x82c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01`\0`@Q\x80\x83\x03\x81\x85\x88\x80;\x15\x80\x15a3\xA4W`\0\x80\xFD[PZ\xF1\x15\x80\x15a3\xB8W=`\0\x80>=`\0\xFD[PP`@Q3\x93P\x8D\x92P\x8E\x91P\x7F\x9B2Et\x0E\xC3\xB1U\t\x8AU\xBE\x84\x95zM\xA1>\xAF\x7F\x14\xA8\xBCoS\x12l\x0B\x93P\xF2\xBE\x90`\0\x90\xA4PPPPPPPPPPPPV[`\0Tq\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16\x15a4LW`@Q\x7F\r\xC1I\xF0\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\x01`@Q\x80\x91\x03\x90\xFD[a4TaP\x89V[6\x14a4\x8CW`@Q\x7F\x98$\xBD\xAB\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\x01`@Q\x80\x91\x03\x90\xFD[`\0\x806\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`\xAC\x015``\x1Cs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xD8>\xF2g`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01`@\x80Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a5\tW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a5-\x91\x90aZ\x8EV[\x90\x92P\x90P\x81a5iW`@Q\x7Fjk\xC3\xB2\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\x01`@Q\x80\x91\x03\x90\xFD[\x7F\xFF\xD7\xDB\x0F\x9D\\\xDE\xB4\x9CL\x9E\xBAd\x9DM\xC6\xD8R\xD6Fq\xE6T\x88\xE5\x7FXXI\x92\xACha5\xBE6\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`\x14\x015\x90V[\x03a5\xF5W`@Q\x7F,\xFA\xC0\x82\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\x01`@Q\x80\x91\x03\x90\xFD[`@\x80Q\x80\x82\x01\x90\x91R\x82\x81R` \x01\x81\x90R`\x07\x82\x90U`\x08\x81\x90Ug\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF6\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`\x98\x015``\x1Cs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c}\xC0\xD1\xD0`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a6\x96W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a6\xBA\x91\x90aY\xD3V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xF3\xF4\x80\xD9`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a7\x04W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a7(\x91\x90aY\xF0V[\x11\x15a7`W`@Q\x7F\xB4\xE1$3\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\x01`@Q\x80\x91\x03\x90\xFD[`\0a7\x97\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\x02aY\x96V[\x90P`\x006\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`\x98\x015``\x1Cs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c}\xC0\xD1\xD0`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a8\x16W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a8:\x91\x90aY\xD3V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xF3\xF4\x80\xD9`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a8\x84W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a8\xA8\x91\x90aY\xF0V[a8\xDC\x90\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16aX\xCFV[\x90P`\0a8\xEA\x83\x83aP\x9EV[\x90Pg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a9.W`@Q\x7F\x8Dw\xEC\xAC\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\x01`@Q\x80\x91\x03\x90\xFD[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x11\x15a9\xA6W`@Q\x7F\x8Dw\xEC\xAC\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\x01`@Q\x80\x91\x03\x90\xFD[6\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`\xD4\x015\x15a:\x0BW`@Q\x7F\"=\xB3\x94\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\x01`@Q\x80\x91\x03\x90\xFD[\x836\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`X\x015\x11a:\xA5W`@Q\x7F\xF4\x029\xDB\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\x81R6\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`\x14\x015`\x04\x82\x01R`$\x01[`@Q\x80\x91\x03\x90\xFD[`@\x80Q`\xE0\x81\x01\x82Rc\xFF\xFF\xFF\xFF\x80\x82R`\0` \x80\x84\x01\x82\x81R6\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03\x805``\x90\x81\x1C\x87\x89\x01\x81\x81Ro\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF4\x81\x81\x16\x94\x8B\x01\x94\x85R`\x14\x90\x95\x015`\x80\x8B\x01\x90\x81R`\x01`\xA0\x8C\x01\x81\x81RB\x84\x16`\xC0\x8E\x01\x90\x81R\x82T\x80\x84\x01\x84U\x92\x8CR\x9CQ\x7F\xB1\x0E-Rv\x12\x07;&\xEE\xCD\xFDq~j2\x0C\xF4KJ\xFA\xC2\xB0s-\x9F\xCB\xE2\xB7\xFA\x0C\xF6`\x05\x90\x93\x02\x92\x83\x01\x80T\x9AQ\x91\x90\x9D\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x9A\x16\x99\x90\x99\x17d\x01\0\0\0\0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x9A\x8B\x16\x02\x17\x90\x9BU\x92Q\x7F\xB1\x0E-Rv\x12\x07;&\xEE\xCD\xFDq~j2\x0C\xF4KJ\xFA\xC2\xB0s-\x9F\xCB\xE2\xB7\xFA\x0C\xF7\x84\x01\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x91\x90\x98\x16\x17\x90\x96U\x92Q\x7F\xB1\x0E-Rv\x12\x07;&\xEE\xCD\xFDq~j2\x0C\xF4KJ\xFA\xC2\xB0s-\x9F\xCB\xE2\xB7\xFA\x0C\xF8\x82\x01\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x91\x85\x16\x91\x90\x91\x17\x90U\x93Q\x7F\xB1\x0E-Rv\x12\x07;&\xEE\xCD\xFDq~j2\x0C\xF4KJ\xFA\xC2\xB0s-\x9F\xCB\xE2\xB7\xFA\x0C\xF9\x85\x01U\x95Q\x96Q\x96\x81\x16p\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x97\x90\x91\x16\x96\x90\x96\x02\x95\x90\x95\x17\x7F\xB1\x0E-Rv\x12\x07;&\xEE\xCD\xFDq~j2\x0C\xF4KJ\xFA\xC2\xB0s-\x9F\xCB\xE2\xB7\xFA\x0C\xFA\x90\x91\x01U\x81Tq\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x17\x82U\x91\x81R`\n\x90\x91R\x91\x82 \x80T\x91\x92\x90\x91a=&\x90\x84\x90aX\xCFV[\x90\x91UPP6\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`\xC0\x015``\x1Cs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xD0\xE3\r\xB04`@Q\x82c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01`\0`@Q\x80\x83\x03\x81\x85\x88\x80;\x15\x80\x15a=\xA3W`\0\x80\xFD[PZ\xF1\x15\x80\x15a=\xB7W=`\0\x80>=`\0\xFD[PP`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\x16Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x17\x90UPa=\xFA\x91Pa\x1FZ\x90PV[c\xFF\xFF\xFF\xFF\x166\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`\xAC\x015``\x1Cs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c<\x9F9|`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a>{W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a>\x9F\x91\x90aZ\xB2V[`\t\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x16c\xFF\xFF\xFF\xFF\x92\x90\x92\x16\x92\x90\x92\x14\x17\x90UPPPPPV[o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11`\x07\x1B\x81\x81\x1Cg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x10`\x06\x1B\x17\x81\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x81\x81\x1Ca\xFF\xFF\x10`\x04\x1B\x17\x81\x81\x1C`\xFF\x10`\x03\x1B\x17`\0\x82\x13a?;Wc\x16\x15\xE68`\0R`\x04`\x1C\xFD[\x7F\xF8\xF9\xF9\xFA\xF9\xFD\xFA\xFB\xF9\xFD\xFC\xFD\xFA\xFB\xFC\xFE\xF9\xFA\xFD\xFA\xFC\xFC\xFB\xFE\xFA\xFA\xFC\xFB\xFF\xFF\xFF\xFFo\x84!\x08B\x10\x84!\x08\xCCc\x18\xC6\xDBmT\xBE\x83\x83\x1C\x1C`\x1F\x16\x1A\x18\x90\x81\x1B`\x9F\x90\x81\x1ClFWr\xB2\xBB\xBB_\x82K\x15 z0\x81\x01\x81\x02``\x90\x81\x1Dm\x03\x88\xEA\xA2t\x12\xD5\xAC\xA0&\x81]cn\x01\x82\x02\x81\x1Dm\r\xF9\x9A\xC5\x02\x03\x1B\xF9S\xEF\xF4r\xFD\xCC\x01\x82\x02\x81\x1Dm\x13\xCD\xFF\xB2\x9DQ\xD9\x93\"\xBD\xFF_\"\x11\x01\x82\x02\x81\x1Dm\n\x0Ft #\xDE\xF7\x83\xA3\x07\xA9\x86\x91.\x01\x82\x02\x81\x1Dm\x01\x92\r\x80C\xCA\x89\xB5#\x92S(NB\x01\x82\x02\x81\x1Dl\x0Bz\x86\xD77Th\xFA\xC6g\xA0\xA5'\x01l)P\x8EE\x85C\xD8\xAAM\xF2\xAB\xEEx\x83\x01\x83\x02\x82\x1Dm\x019`\x1A.\xFA\xBEq~`L\xBBH\x94\x01\x83\x02\x82\x1Dm\x02$\x7Fz{e\x942\x06I\xAA\x03\xAB\xA1\x01\x83\x02\x82\x1D\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFFs\xC0\xC7\x16\xA5\x94\xE0\rT\xE3\xC4\xCB\xC9\x01\x83\x02\x82\x1D\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFD\xC7\xB8\x8CB\x0ES\xA9\x89\x053\x12\x9Fo\x01\x83\x02\x90\x91\x1D\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFFF_\xDA'\xEBMc\xDE\xD4t\xE5\xF82\x01\x90\x91\x02\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF5\xF6\xAF\x8F{3\x96dO\x18\xE1W\x96\0\0\0\0\0\0\0\0\0\0\0\0\x01\x05q\x13@\xDA\xA0\xD5\xF7i\xDB\xA1\x91\\\xEFY\xF0\x81ZU\x06\x02\x91\x90\x03}\x02g\xA3l\x0C\x95\xB3\x97Z\xB3\xEE[ :v\x14\xA3\xF7Ss\xF0G\xD8\x03\xAE{f\x87\xF2\xB3\x02\x01}W\x11^G\x01\x8Cqw\xEE\xBF|\xD3p\xA35j\x1Bxc\0\x8AZ\xE8\x02\x8Cr\xB8\x86B\x84\x01`\xAE\x1D\x90V[`\0x\x12r]\xD1\xD2C\xAB\xA0\xE7_\xE6E\xCCHs\xF9\xE6Z\xFEh\x8C\x92\x8E\x1F!\x83\x11g\r\xE0\xB6\xB3\xA7d\0\0\x02\x15\x82\x02aAtWc|_H}`\0R`\x04`\x1C\xFD[Pg\r\xE0\xB6\xB3\xA7d\0\0\x91\x90\x91\x02\x04\x90V[`\0\x81`\0\x19\x04\x83\x11\x82\x02\x15aA\xA4Wc\xBA\xC6^[`\0R`\x04`\x1C\xFD[Pg\r\xE0\xB6\xB3\xA7d\0\0\x91\x02\x04\x90V[`\0\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFD\xC0\xD0W\t%\xA4b\xD7\x82\x13aA\xE2W\x91\x90PV[h\x07U\xBFy\x8BJ\x1B\xF1\xE5\x82\x12aB\0Wc\xA3{\xFE\xC9`\0R`\x04`\x1C\xFD[e\x03x-\xAC\xE9\xD9`N\x83\x90\x1B\x05\x91P`\0``k\xB1r\x17\xF7\xD1\xCFy\xAB\xC9\xE3\xB3\x98\x84\x82\x1B\x05k\x80\0\0\0\0\0\0\0\0\0\0\0\x01\x90\x1Dk\xB1r\x17\xF7\xD1\xCFy\xAB\xC9\xE3\xB3\x98\x81\x02\x90\x93\x03\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xDB\xF3\xCC\xF1`M&4P\xF0*U\x04\x81\x01\x81\x02``\x90\x81\x1Dm\x02wYI\x91\xCF\xC8_n$a\x83|\xD9\x01\x82\x02\x81\x1D\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE5\xAD\xED\xAA\x1C\xB0\x95\xAF\x9EM\xA1\x0E6<\x01\x82\x02\x81\x1Dm\xB1\xBB\xB2\x01\xF4C\xCF\x96/\x1A\x1D=\xB4\xA5\x01\x82\x02\x81\x1D\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFD8\xDCw&\x08\xB0\xAEV\xCC\xE0\x12\x96\xC0\xEB\x01\x82\x02\x81\x1Dn\x05\x18\x0B\xB1G\x99\xABG\xA8\xA8\xCB*R}W\x01m\x02\xD1g W{\xD1\x9B\xF6\x14\x17o\xE9\xEAl\x10\xFEh\xE7\xFD7\xD0\0{q?vP\x84\x01\x84\x02\x83\x1D\x90\x81\x01\x90\x84\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE,i\x81,\xF0;\x07c\xFDEJ\x8F~\x01\x02\x90\x91\x1Dn\x05\x87\xF5\x03\xBBn\xA2\x9D%\xFC\xB7@\x19dP\x01\x90\x91\x02y\xD85\xEB\xBA\x82L\x98\xFB1\xB8;,\xA4\\\0\0\0\0\0\0\0\0\0\0\0\0\x01\x05t\x02\x9D\x9D\xC3\x85c\xC3.\\/m\xC1\x92\xEEp\xEFe\xF9\x97\x8A\xF3\x02`\xC3\x93\x90\x93\x03\x92\x90\x92\x1C\x92\x91PPV[`\0aC\xCDg\r\xE0\xB6\xB3\xA7d\0\0\x83aC\xB4\x86a>\xDCV[aC\xBE\x91\x90aZ\xD8V[aC\xC8\x91\x90a[\x94V[aA\xB4V[\x90P[\x92\x91PPV[`\0\x80Tp\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16`\x02\x81\x11\x15aD\x02WaD\x02aUqV[\x14aD9W`@Q\x7Fg\xFE\x19P\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\x01`@Q\x80\x91\x03\x90\xFD[`\0`\x01\x87\x81T\x81\x10aDNWaDNaXqV[`\0\x91\x82R` \x82 `\x05\x91\x90\x91\x02\x01`\x04\x81\x01T\x90\x92Po\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90\x87\x15\x82\x17`\x01\x1B\x90PaD\xAD\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01aX\xCFV[aEI\x82o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1F\x7F\x07\xC4\xAC\xDD\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\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\xFF\x16\x14aE\x83W`@Q\x7F_S\xDD\x98\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\x01`@Q\x80\x91\x03\x90\xFD[`\0\x80\x89\x15aF\x87WaE\xD6\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0aY\x1FV[`\x01\x90\x1BaE\xF5\x84o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16aP\xB5V[o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16aF\x11\x91\x90a[\xFCV[\x15aFNWaFEaF6`\x01o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x16a\\\x10V[\x86Tc\xFF\xFF\xFF\xFF\x16`\0aQTV[`\x03\x01TaF}V[6\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`x\x015[\x91P\x84\x90PaF\xB1V[`\x03\x85\x01T\x91PaF\xAEaF6o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x86\x16`\x01a\\9V[\x90P[`\x08\x82\x90\x1B`\x08\x8A\x8A`@QaF\xC8\x92\x91\x90a\\dV[`@Q\x80\x91\x03\x90 \x90\x1B\x14aG\tW`@Q\x7FieP\xFF\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\x01`@Q\x80\x91\x03\x90\xFD[`\0aG\x14\x8CaR8V[\x90P`\0aG#\x83`\x03\x01T\x90V[`@Q\x7F\xE1L\xED2\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\x81R6\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`\x98\x015``\x1C\x90c\xE1L\xED2\x90aG\x97\x90\x8F\x90\x8F\x90\x8F\x90\x8F\x90\x8A\x90`\x04\x01a\\\xBDV[` `@Q\x80\x83\x03\x81`\0\x87Z\xF1\x15\x80\x15aG\xB6W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90aG\xDA\x91\x90aY\xF0V[`\x04\x85\x01T\x91\x14\x91P`\0\x90`\x02\x90aH\x85\x90o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1F\x7F\x07\xC4\xAC\xDD\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\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[aI!\x89o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1F\x7F\x07\xC4\xAC\xDD\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\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[aI+\x91\x90a\\\xF7V[aI5\x91\x90a]\x1AV[`\xFF\x16\x15\x90P\x81\x15\x15\x81\x03aIvW`@Q\x7F\xFBN@\xDD\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\x01`@Q\x80\x91\x03\x90\xFD[\x87Td\x01\0\0\0\0\x90\x04s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x15aI\xCDW`@Q\x7F\x90q\xE6\xAF\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\x01`@Q\x80\x91\x03\x90\xFD[PP\x85T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xFF\xFF\xFF\xFF\x163d\x01\0\0\0\0\x02\x17\x90\x95UPPPPPPPPPPPV[`\0\x80`\0\x80`\0\x85\x90P`\0`\x01\x82\x81T\x81\x10aJ,WaJ,aXqV[`\0\x91\x82R` \x90\x91 `\x04`\x05\x90\x92\x02\x01\x90\x81\x01T\x90\x91P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90aK\x03\x90o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1F\x7F\x07\xC4\xAC\xDD\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\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\xFF\x16\x11aK=W`@Q\x7F\xB3K\\\"\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\x01`@Q\x80\x91\x03\x90\xFD[`\0\x81[`\x04\x83\x01T\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90aL\x04\x90o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1F\x7F\x07\xC4\xAC\xDD\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\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\xFF\x16\x92P\x82\x11\x15aLyW\x82Tc\xFF\xFF\xFF\xFF\x16aLC\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01aX\xCFV[\x83\x03aLMW\x83\x91P[`\x01\x81\x81T\x81\x10aL`WaL`aXqV[\x90`\0R` `\0 \x90`\x05\x02\x01\x93P\x80\x94PPaKAV[`\x04\x81\x81\x01T\x90\x84\x01To\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x91\x82\x16\x91\x16`\0\x81o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16aL\xE2aL\xCD\x85o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\x01\x1C\x90V[o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90V[o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14\x90P\x80\x15aM\xB1W`\0aM\x1A\x83o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16aP\xB5V[o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x11\x15aM\x85W`\0aM\\aMT`\x01o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x86\x16a\\\x10V[\x89`\x01aQTV[`\x03\x81\x01T`\x04\x90\x91\x01T\x90\x9CPo\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x9APaM\x8B\x90PV[`\x07T\x9AP[`\x03\x86\x01T`\x04\x87\x01T\x90\x99Po\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x97PaN\x07V[`\0aM\xD3aMTo\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x85\x16`\x01a\\9V[`\x03\x80\x89\x01T`\x04\x80\x8B\x01T\x92\x84\x01T\x93\x01T\x90\x9EPo\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x91\x82\x16\x9DP\x91\x9BP\x16\x98PP[PPPPPPP\x91\x93P\x91\x93V[`\0o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x16\x15aN\x82W`@\x80Q` \x81\x01\x87\x90Ro\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x87\x16\x92\x82\x01\x92\x90\x92R``\x81\x01\x85\x90R\x90\x83\x16`\x80\x82\x01R`\xA0\x01`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 a\x15bV[\x82\x82`@Q` \x01aN\xB0\x92\x91\x90\x91\x82Ro\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16` \x82\x01R`@\x01\x90V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 \x95\x94PPPPPV[`\0aN\xEEo\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x16`\x01a\\9V[\x90P`\0aN\xFE\x82\x86`\x01aQTV[\x90P`\0\x86\x90\x1A\x83\x80aO\xEAWPaO7`\x02\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a[\xFCV[`\x04\x83\x01T`\x02\x90aO\xDB\x90o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1F\x7F\x07\xC4\xAC\xDD\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\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[aO\xE5\x91\x90a]\x1AV[`\xFF\x16\x14[\x15aPBW`\xFF\x81\x16`\x01\x14\x80aP\x04WP`\xFF\x81\x16`\x02\x14[aP=W`@Q\x7F\xF4\x029\xDB\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\x81\x01\x88\x90R`$\x01a:\x9CV[aP\x80V[`\xFF\x81\x16\x15aP\x80W`@Q\x7F\xF4\x029\xDB\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\x81\x01\x88\x90R`$\x01a:\x9CV[PPPPPPPV[`\0aP\x93aRgV[a\x14\xD7\x90`\x06aX\xCFV[`\0\x81\x83\x10\x15aP\xAEW\x81aC\xCDV[P\x90\x91\x90PV[`\0\x80aQB\x83~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1F\x7F\x07\xC4\xAC\xDD\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\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\x01`\xFF\x91\x90\x91\x16\x1B\x90\x92\x03\x92\x91PPV[`\0\x80\x82aQ\x9DWaQ\x98o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x86\x16\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0aRuV[aQ\xB8V[aQ\xB8\x85o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16aT\x01V[\x90P`\x01\x84\x81T\x81\x10aQ\xCDWaQ\xCDaXqV[\x90`\0R` `\0 \x90`\x05\x02\x01\x91P[`\x04\x82\x01To\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x81\x16\x91\x16\x14aR0W\x81T`\x01\x80T\x90\x91c\xFF\xFF\xFF\xFF\x16\x90\x81\x10aR\x1BWaR\x1BaXqV[\x90`\0R` `\0 \x90`\x05\x02\x01\x91PaQ\xDEV[P\x93\x92PPPV[`\0\x80`\0\x80`\0aRI\x86aJ\x0CV[\x93P\x93P\x93P\x93PaR]\x84\x84\x84\x84aN\x15V[\x96\x95PPPPPPV[`\0a\x14\xD7`\xF4`(aX\xCFV[`\0\x81aS\x14\x84o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1F\x7F\x07\xC4\xAC\xDD\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\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\xFF\x16\x11aS*Wc\xB3K\\\"`\0R`\x04`\x1C\xFD[aS3\x83aT\x01V[\x90P\x81aS\xD2\x82o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1F\x7F\x07\xC4\xAC\xDD\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\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\xFF\x16\x11aC\xD0WaC\xCDaS\xE8\x83`\x01aX\xCFV[o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x16\x90aT\xA6V[`\0\x81\x19`\x01\x83\x01\x16\x81aT\x95\x82~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1F\x7F\x07\xC4\xAC\xDD\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\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\xFF\x16\x93\x90\x93\x1C\x80\x15\x17\x93\x92PPPV[`\0\x80aU3\x84~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1F\x7F\x07\xC4\xAC\xDD\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\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\xFF\x16\x90P\x80\x83\x03`\x01\x80\x82\x1B\x03\x85\x82\x1B\x17\x92PPP\x92\x91PPV[`\0\x80`@\x83\x85\x03\x12\x15aUbW`\0\x80\xFD[PP\x805\x92` \x90\x91\x015\x91PV[\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`!`\x04R`$`\0\xFD[`\x03\x81\x10aU\xD7W\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`!`\x04R`$`\0\xFD[PV[` \x81\x01aU\xE7\x83aU\xA0V[\x91\x90R\x90V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14aU\xD7W`\0\x80\xFD[`\0` \x82\x84\x03\x12\x15aV!W`\0\x80\xFD[\x815aV,\x81aU\xEDV[\x93\x92PPPV[`\0\x80`\0``\x84\x86\x03\x12\x15aVHW`\0\x80\xFD[PP\x815\x93` \x83\x015\x93P`@\x90\x92\x015\x91\x90PV[`\0\x81Q\x80\x84R`\0[\x81\x81\x10\x15aV\x85W` \x81\x85\x01\x81\x01Q\x86\x83\x01\x82\x01R\x01aViV[\x81\x81\x11\x15aV\x97W`\0` \x83\x87\x01\x01R[P`\x1F\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x92\x90\x92\x01` \x01\x92\x91PPV[` \x81R`\0aC\xCD` \x83\x01\x84aV_V[`\0` \x82\x84\x03\x12\x15aV\xEFW`\0\x80\xFD[P5\x91\x90PV[\x80\x15\x15\x81\x14aU\xD7W`\0\x80\xFD[`\0\x80`\0\x80`\x80\x85\x87\x03\x12\x15aW\x1AW`\0\x80\xFD[\x845\x93P` \x85\x015\x92P`@\x85\x015\x91P``\x85\x015aW:\x81aV\xF6V[\x93\x96\x92\x95P\x90\x93PPV[`\0` \x82\x84\x03\x12\x15aWWW`\0\x80\xFD[\x815o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14aV,W`\0\x80\xFD[`\0\x80\x83`\x1F\x84\x01\x12aW\x89W`\0\x80\xFD[P\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15aW\xA1W`\0\x80\xFD[` \x83\x01\x91P\x83` \x82\x85\x01\x01\x11\x15aW\xB9W`\0\x80\xFD[\x92P\x92\x90PV[`\0\x80`\0\x80`\0\x80`\x80\x87\x89\x03\x12\x15aW\xD9W`\0\x80\xFD[\x865\x95P` \x87\x015aW\xEB\x81aV\xF6V[\x94P`@\x87\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15aX\x08W`\0\x80\xFD[aX\x14\x8A\x83\x8B\x01aWwV[\x90\x96P\x94P``\x89\x015\x91P\x80\x82\x11\x15aX-W`\0\x80\xFD[PaX:\x89\x82\x8A\x01aWwV[\x97\x9A\x96\x99P\x94\x97P\x92\x95\x93\x94\x92PPPV[c\xFF\xFF\xFF\xFF\x84\x16\x81R\x82` \x82\x01R```@\x82\x01R`\0a\x15b``\x83\x01\x84aV_V[\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`2`\x04R`$`\0\xFD[\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`\x11`\x04R`$`\0\xFD[`\0\x82\x19\x82\x11\x15aX\xE2WaX\xE2aX\xA0V[P\x01\x90V[`\0\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x03aY\x18WaY\x18aX\xA0V[P`\x01\x01\x90V[`\0\x82\x82\x10\x15aY1WaY1aX\xA0V[P\x03\x90V[`\0` \x82\x84\x03\x12\x15aYHW`\0\x80\xFD[\x81QaV,\x81aV\xF6V[\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`\x12`\x04R`$`\0\xFD[`\0\x82aY\x91WaY\x91aYSV[P\x04\x90V[`\0\x81\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x04\x83\x11\x82\x15\x15\x16\x15aY\xCEWaY\xCEaX\xA0V[P\x02\x90V[`\0` \x82\x84\x03\x12\x15aY\xE5W`\0\x80\xFD[\x81QaV,\x81aU\xEDV[`\0` \x82\x84\x03\x12\x15aZ\x02W`\0\x80\xFD[PQ\x91\x90PV[`\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x83\x16\x81\x85\x16\x80\x83\x03\x82\x11\x15aZ,WaZ,aX\xA0V[\x01\x94\x93PPPPV[`\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x83\x16\x81\x85\x16\x81\x83\x04\x81\x11\x82\x15\x15\x16\x15aZ\\WaZ\\aX\xA0V[\x02\x94\x93PPPPV[`\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x81\x16\x90\x83\x16\x81\x81\x10\x15aZ\x86WaZ\x86aX\xA0V[\x03\x93\x92PPPV[`\0\x80`@\x83\x85\x03\x12\x15aZ\xA1W`\0\x80\xFD[PP\x80Q` \x90\x91\x01Q\x90\x92\x90\x91PV[`\0` \x82\x84\x03\x12\x15aZ\xC4W`\0\x80\xFD[\x81Qc\xFF\xFF\xFF\xFF\x81\x16\x81\x14aV,W`\0\x80\xFD[`\0\x7F\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF`\0\x84\x13`\0\x84\x13\x85\x83\x04\x85\x11\x82\x82\x16\x16\x15a[\x19Wa[\x19aX\xA0V[\x7F\x80\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\0\x87\x12\x86\x82\x05\x88\x12\x81\x84\x16\x16\x15a[TWa[TaX\xA0V[`\0\x87\x12\x92P\x87\x82\x05\x87\x12\x84\x84\x16\x16\x15a[pWa[paX\xA0V[\x87\x85\x05\x87\x12\x81\x84\x16\x16\x15a[\x86Wa[\x86aX\xA0V[PPP\x92\x90\x93\x02\x93\x92PPPV[`\0\x82a[\xA3Wa[\xA3aYSV[\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x14\x7F\x80\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x83\x14\x16\x15a[\xF7Wa[\xF7aX\xA0V[P\x05\x90V[`\0\x82a\\\x0BWa\\\x0BaYSV[P\x06\x90V[`\0o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x81\x16\x90\x83\x16\x81\x81\x10\x15aZ\x86WaZ\x86aX\xA0V[`\0o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x83\x16\x81\x85\x16\x80\x83\x03\x82\x11\x15aZ,WaZ,aX\xA0V[\x81\x83\x827`\0\x91\x01\x90\x81R\x91\x90PV[\x81\x83R\x81\x81` \x85\x017P`\0` \x82\x84\x01\x01R`\0` \x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0`\x1F\x84\x01\x16\x84\x01\x01\x90P\x92\x91PPV[``\x81R`\0a\\\xD1``\x83\x01\x87\x89a\\tV[\x82\x81\x03` \x84\x01Ra\\\xE4\x81\x86\x88a\\tV[\x91PP\x82`@\x83\x01R\x96\x95PPPPPPV[`\0`\xFF\x82\x16`\xFF\x84\x16\x80\x82\x10\x15a]\x11Wa]\x11aX\xA0V[\x90\x03\x93\x92PPPV[`\0`\xFF\x83\x16\x80a]-Wa]-aYSV[\x80`\xFF\x84\x16\x06\x91PP\x92\x91PPV\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x60806040526004361061031e5760003560e01c8063786b844b116101a5578063c0d8bb74116100ec578063dabd396d11610095578063f8f43ff61161006f578063f8f43ff614610bce578063fa24f74314610bee578063fa315aa914610c12578063fe2bbeb214610c4557600080fd5b8063dabd396d14610b38578063ec5e630814610b6b578063eff0f59214610b9e57600080fd5b8063cf09e0d0116100c6578063cf09e0d014610ad7578063d5d44d8014610af8578063d8cc1a3c14610b1857600080fd5b8063c0d8bb7414610a00578063c395e1ca14610a2d578063c6f0308c14610a4d57600080fd5b806399735e321161014e578063bbdc02db11610128578063bbdc02db14610955578063bcef3b55146109a0578063bd8da956146109e057600080fd5b806399735e3214610806578063a445ece614610846578063a8e4fb901461091257600080fd5b80638980e0cc1161017f5780638980e0cc146107815780638d450a9514610796578063938d689a146107d657600080fd5b8063786b844b146107515780637b0f0adc146107665780638129fc1c1461077957600080fd5b8063472777c6116102695780635c0cba33116102125780636361506d116101ec5780636361506d146106cb5780636b6716c01461070b5780636f0344091461073e57600080fd5b80635c0cba3314610653578063609d33341461069657806360e27464146106ab57600080fd5b806354fd4d501161024357806354fd4d50146105cf57806359cebe091461061e5780635a5fa2d91461063357600080fd5b8063472777c61461057a578063529d6a8c1461058d578063534db0e2146105ba57600080fd5b80632810e1d6116102cb57806337b1b229116102a557806337b1b229146104935780633a768463146104f45780633fc8cef31461053757600080fd5b80632810e1d6146104445780632ad69aeb14610459578063378dd48c1461047957600080fd5b8063222abf45116102fc578063222abf45146103cb578063250e69bd1461040b57806325fc2ace1461042557600080fd5b806303c2924d1461032357806319effeb414610345578063200d2ed214610390575b600080fd5b34801561032f57600080fd5b5061034361033e36600461554f565b610c75565b005b34801561035157600080fd5b506000546103729068010000000000000000900467ffffffffffffffff1681565b60405167ffffffffffffffff90911681526020015b60405180910390f35b34801561039c57600080fd5b506000546103be90700100000000000000000000000000000000900460ff1681565b60405161038791906155da565b3480156103d757600080fd5b506103fb6103e636600461560f565b600b6020526000908152604090205460ff1681565b6040519015158152602001610387565b34801561041757600080fd5b506009546103fb9060ff1681565b34801561043157600080fd5b506007545b604051908152602001610387565b34801561045057600080fd5b506103be611281565b34801561046557600080fd5b5061043661047436600461554f565b6114a6565b34801561048557600080fd5b50600c546103be9060ff1681565b34801561049f57600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90033560601c5b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610387565b34801561050057600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036098013560601c6104cf565b34801561054357600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360c0013560601c6104cf565b610343610588366004615633565b6114dc565b34801561059957600080fd5b506104366105a836600461560f565b60026020526000908152604090205481565b3480156105c657600080fd5b506104cf6114ee565b3480156105db57600080fd5b5060408051808201909152600581527f302e362e3000000000000000000000000000000000000000000000000000000060208201525b60405161038791906156ca565b34801561062a57600080fd5b50600854610436565b34801561063f57600080fd5b5061043661064e3660046156dd565b611531565b34801561065f57600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360ac013560601c6104cf565b3480156106a257600080fd5b5061061161156b565b3480156106b757600080fd5b506103436106c636600461560f565b611579565b3480156106d757600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360340135610436565b34801561071757600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610372565b61034361074c366004615704565b61194c565b34801561075d57600080fd5b50610343611a04565b610343610774366004615633565b611eda565b610343611ee7565b34801561078d57600080fd5b50600154610436565b3480156107a257600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360780135610436565b3480156107e257600080fd5b506007546008546107f1919082565b60408051928352602083019190915201610387565b34801561081257600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360580135610436565b34801561085257600080fd5b506108be6108613660046156dd565b6006602052600090815260409020805460019091015460ff821691610100810463ffffffff1691650100000000009091046fffffffffffffffffffffffffffffffff169073ffffffffffffffffffffffffffffffffffffffff1684565b60408051941515855263ffffffff90931660208501526fffffffffffffffffffffffffffffffff9091169183019190915273ffffffffffffffffffffffffffffffffffffffff166060820152608001610387565b34801561091e57600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360f4013560601c6104cf565b34801561096157600080fd5b50604051367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036054013560e01c8152602001610387565b3480156109ac57600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360140135610436565b3480156109ec57600080fd5b506103726109fb3660046156dd565b611f8e565b348015610a0c57600080fd5b50610436610a1b36600461560f565b600a6020526000908152604090205481565b348015610a3957600080fd5b50610436610a48366004615745565b61216d565b348015610a5957600080fd5b50610a6d610a683660046156dd565b612350565b6040805163ffffffff909816885273ffffffffffffffffffffffffffffffffffffffff968716602089015295909416948601949094526fffffffffffffffffffffffffffffffff9182166060860152608085015291821660a08401521660c082015260e001610387565b348015610ae357600080fd5b506000546103729067ffffffffffffffff1681565b348015610b0457600080fd5b50610436610b1336600461560f565b6123e7565b348015610b2457600080fd5b50610343610b333660046157c0565b612459565b348015610b4457600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610372565b348015610b7757600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610436565b348015610baa57600080fd5b506103fb610bb93660046156dd565b60036020526000908152604090205460ff1681565b348015610bda57600080fd5b50610343610be9366004615633565b61250d565b348015610bfa57600080fd5b50610c03612863565b6040516103879392919061584c565b348015610c1e57600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610436565b348015610c5157600080fd5b506103fb610c603660046156dd565b60056020526000908152604090205460ff1681565b60008054700100000000000000000000000000000000900460ff166002811115610ca157610ca1615571565b14610cd8576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060018381548110610ced57610ced615871565b906000526020600020906005020190506000610d0884611f8e565b905067ffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000081169082161015610d71576040517ff2440b5300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008481526005602052604090205460ff1615610dba576040517ff1a9458100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000848152600460205260409020805480158015610dd757508515155b15610e72578354640100000000900473ffffffffffffffffffffffffffffffffffffffff1660008115610e0a5781610e26565b600186015473ffffffffffffffffffffffffffffffffffffffff165b9050610e3281876128ab565b50505060009485525050600560205250506040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055565b6000868152600660209081526040918290208251608081018452815460ff81161515808352610100820463ffffffff16948301949094526501000000000090046fffffffffffffffffffffffffffffffff16938101939093526001015473ffffffffffffffffffffffffffffffffffffffff166060830152610f15576fffffffffffffffffffffffffffffffff6040820152600181526000869003610f15578195505b600086826020015163ffffffff16610f2d91906158cf565b90506000838211610f3e5781610f40565b835b602084015190915063ffffffff165b8181101561108c576000868281548110610f6b57610f6b615871565b6000918252602080832090910154808352600590915260409091205490915060ff16610fc3576040517f9a07664600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060018281548110610fd857610fd8615871565b600091825260209091206005909102018054909150640100000000900473ffffffffffffffffffffffffffffffffffffffff161580156110355750600481015460408701516fffffffffffffffffffffffffffffffff9182169116115b1561107757600181015473ffffffffffffffffffffffffffffffffffffffff16606087015260048101546fffffffffffffffffffffffffffffffff1660408701525b50508080611084906158e7565b915050610f4f565b5063ffffffff818116602085810191825260008c81526006909152604090819020865181549351928801517fffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000009094169015157fffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000ff161761010092909416918202939093177fffffffffffffffffffffff00000000000000000000000000000000ffffffffff16650100000000006fffffffffffffffffffffffffffffffff909316929092029190911782556060850151600190920180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9093169290921790915584900361127657606083015160008a815260056020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905561122d73ffffffffffffffffffffffffffffffffffffffff82161561120b5781611227565b600189015473ffffffffffffffffffffffffffffffffffffffff165b896128ab565b875473ffffffffffffffffffffffffffffffffffffffff909116640100000000027fffffffffffffffff0000000000000000000000000000000000000000ffffffff9091161787555b505050505050505050565b600080600054700100000000000000000000000000000000900460ff1660028111156112af576112af615571565b146112e6576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000805260056020527f05b8ccbb9d4d8fb16ea74ce3c29a41f1b461fbdaff4714a0d9a8eb05499746bc5460ff1661134a576040517f9a07664600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600160008154811061137657611376615871565b6000918252602090912060059091020154640100000000900473ffffffffffffffffffffffffffffffffffffffff16146113b15760016113b4565b60025b6000805467ffffffffffffffff421668010000000000000000027fffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff82168117835592935083927fffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffff000000000000000000ffffffffffffffff9091161770010000000000000000000000000000000083600281111561146557611465615571565b02179055600281111561147a5761147a615571565b6040517f5e186f09b9c93491f14e277eea7faa5de6a2d4bda75a79af7a3684fbfb42da6090600090a290565b600460205281600052604060002081815481106114c257600080fd5b90600052602060002001600091509150505481565b905090565b6114e9838383600161194c565b505050565b60006114d76114ff60f460146158cf565b367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c9003013560601c90565b6000818152600660209081526040808320600490925282208054825461156290610100900463ffffffff168261591f565b95945050505050565b60606114d760586020612904565b611581611a04565b60006002600c5460ff16600281111561159c5761159c615571565b036115cd575073ffffffffffffffffffffffffffffffffffffffff81166000908152600a6020526040902054611649565b6001600c5460ff1660028111156115e6576115e6615571565b03611617575073ffffffffffffffffffffffffffffffffffffffff8116600090815260026020526040902054611649565b6040517f078a3df400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff82166000908152600b602052604090205460ff1661178a5773ffffffffffffffffffffffffffffffffffffffff82166000908152600b6020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790556116fc60c07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe369081013560f01c9003013560601c90565b6040517f7eee288d00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8481166004830152602482018490529190911690637eee288d90604401600060405180830381600087803b15801561176e57600080fd5b505af1158015611782573d6000803e3d6000fd5b505050505050565b806000036117c4576040517f17bfe5f700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff82166000908152600a602090815260408083208390556002909152812055367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360c0013560601c6040517ff3fef3a300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff848116600483015260248201849052919091169063f3fef3a390604401600060405180830381600087803b15801561189a57600080fd5b505af11580156118ae573d6000803e3d6000fd5b5050505060008273ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d806000811461190c576040519150601f19603f3d011682016040523d82523d6000602084013e611911565b606091505b50509050806114e9576040517f83e6cc6b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360f4013560601c3314806119bc575061198d6114ee565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6119f2576040517fd386ef3e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6119fe84848484612956565b50505050565b367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360ac013560601c73ffffffffffffffffffffffffffffffffffffffff16635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a7f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aa39190615936565b15611ada576040517f379a7ed900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600c5460ff166002811115611af357611af3615571565b1480611b1557506001600c5460ff166002811115611b1357611b13615571565b145b15611b1c57565b6000600c5460ff166002811115611b3557611b35615571565b14611b6c576040517f078a3df400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005468010000000000000000900467ffffffffffffffff1667ffffffffffffffff16600003611bc8576040517fc105260a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360ac013560601c6040517f0314d2b300000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff9190911690630314d2b390602401602060405180830381865afa158015611c67573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c8b9190615936565b905080611cc4576040517f4851bd9b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360ac013560601c6040517f17cf21a900000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906317cf21a990602401600060405180830381600087803b158015611d5e57600080fd5b505af1925050508015611d6f575060015b506000367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360ac013560601c6040517f496b9c1600000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff919091169063496b9c1690602401602060405180830381865afa158015611e0f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e339190615936565b90508015611e6b57600c80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055611e97565b600c80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660021790555b600c546040517f9908eaac0645df9d0704d06adc9e07337c951de2f06b5f2836151d48d5e4722f91611ece9160ff909116906155da565b60405180910390a15050565b6114e9838383600061194c565b611eef6133fa565b367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360f4013560601c3214611f58576040517fd386ef3e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036054013560e01c90565b600080600054700100000000000000000000000000000000900460ff166002811115611fbc57611fbc615571565b14611ff3576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006001838154811061200857612008615871565b600091825260208220600590910201805490925063ffffffff9081161461207757815460018054909163ffffffff1690811061204657612046615871565b906000526020600020906005020160040160109054906101000a90046fffffffffffffffffffffffffffffffff1690505b60048201546000906120af90700100000000000000000000000000000000900467ffffffffffffffff165b67ffffffffffffffff1690565b6120c39067ffffffffffffffff164261591f565b6120e26120a2846fffffffffffffffffffffffffffffffff1660401c90565b67ffffffffffffffff166120f691906158cf565b905067ffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001667ffffffffffffffff168167ffffffffffffffff16116121435780611562565b7f000000000000000000000000000000000000000000000000000000000000000095945050505050565b60008061220c836fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff1690507f000000000000000000000000000000000000000000000000000000000000000081111561226b576040517f56f57b2b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b642e90edd00062061a806311e1a30060006122868383615982565b9050670de0b6b3a764000060006122bd827f0000000000000000000000000000000000000000000000000000000000000000615996565b905060006122db6122d6670de0b6b3a764000086615996565b613edc565b905060006122e98484614137565b905060006122f78383614186565b90506000612304826141b4565b905060006123238261231e670de0b6b3a76400008f615996565b61439c565b905060006123318b83614186565b905061233d818d615996565b9f9e505050505050505050505050505050565b6001818154811061236057600080fd5b60009182526020909120600590910201805460018201546002830154600384015460049094015463ffffffff8416955064010000000090930473ffffffffffffffffffffffffffffffffffffffff908116949216926fffffffffffffffffffffffffffffffff91821692918082169170010000000000000000000000000000000090041687565b60006002600c5460ff16600281111561240257612402615571565b03612430575073ffffffffffffffffffffffffffffffffffffffff166000908152600a602052604090205490565b5073ffffffffffffffffffffffffffffffffffffffff1660009081526002602052604090205490565b367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360f4013560601c3314806124c9575061249a6114ee565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6124ff576040517fd386ef3e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6117828686868686866143d6565b60008054700100000000000000000000000000000000900460ff16600281111561253957612539615571565b14612570576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008060008061257f86614a0c565b9350935093509350600061259585858585614e15565b90506000367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036098013560601c73ffffffffffffffffffffffffffffffffffffffff16637dc0d1d06040518163ffffffff1660e01b8152600401602060405180830381865afa158015612614573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061263891906159d3565b9050600189036127335773ffffffffffffffffffffffffffffffffffffffff81166352f0f3ad8a84612697367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036034013590565b90565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e086901b16815260048101939093526024830191909152604482015260206064820152608481018a905260a4015b6020604051808303816000875af1158015612709573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061272d91906159f0565b50611276565b6002890361275f5773ffffffffffffffffffffffffffffffffffffffff81166352f0f3ad8a8489612697565b6003890361278b5773ffffffffffffffffffffffffffffffffffffffff81166352f0f3ad8a8487612697565b60048903612831576040517f52f0f3ad000000000000000000000000000000000000000000000000000000008152600481018a905260248101839052367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036058013560c01b6044820152600860648201526084810188905273ffffffffffffffffffffffffffffffffffffffff8216906352f0f3ad9060a4016126ea565b6040517fff137e6500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c9003605481013560e01c906014013560606128a461156b565b9050909192565b60028082015473ffffffffffffffffffffffffffffffffffffffff841660009081526020929092526040822080546fffffffffffffffffffffffffffffffff9092169290916128fb9084906158cf565b90915550505050565b604051818152367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90038284820160208401378260208301016000815260208101604052505092915050565b60008054700100000000000000000000000000000000900460ff16600281111561298257612982615571565b146129b9576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600184815481106129ce576129ce615871565b60009182526020918290206040805160e0810182526005909302909101805463ffffffff8116845273ffffffffffffffffffffffffffffffffffffffff64010000000090910481169484019490945260018101549093169082015260028201546fffffffffffffffffffffffffffffffff908116606083015260038301546080830181905260049093015480821660a084015270010000000000000000000000000000000090041660c082015291508514612ab5576040517f3014033200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60a0810151600083156fffffffffffffffffffffffffffffffff83161760011b90506000612b75826fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff169050861580612bb05750612bad7f000000000000000000000000000000000000000000000000000000000000000060026158cf565b81145b8015612bba575084155b15612bf1576040517fa42637bc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f0000000000000000000000000000000000000000000000000000000000000000811115612c4b576040517f56f57b2b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612c767f000000000000000000000000000000000000000000000000000000000000000060016158cf565b8103612c8857612c8886888588614ecf565b34612c928361216d565b14612cc9576040517f8620aa1900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000612cd488611f8e565b905067ffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000811690821603612d3c576040517f3381d11400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000612d6960017f000000000000000000000000000000000000000000000000000000000000000061591f565b8303612eb757367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036098013560601c73ffffffffffffffffffffffffffffffffffffffff16637dc0d1d06040518163ffffffff1660e01b8152600401602060405180830381865afa158015612dea573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e0e91906159d3565b73ffffffffffffffffffffffffffffffffffffffff1663f3f480d96040518163ffffffff1660e01b8152600401602060405180830381865afa158015612e58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e7c91906159f0565b612eb0907f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff16615a09565b9050612f4a565b612ee260017f000000000000000000000000000000000000000000000000000000000000000061591f565b8303612f1d57612eb07f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff166002615a35565b507f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff165b612f7e817f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff16615a65565b67ffffffffffffffff16612f998367ffffffffffffffff1690565b67ffffffffffffffff161115612fe057612fdd817f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff16615a65565b91505b6000604083901b421760008a8152608087901b6fffffffffffffffffffffffffffffffff8d1617602052604081209192509060008181526003602052604090205490915060ff161561305e576040517f80497e3b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60016003600083815260200190815260200160002060006101000a81548160ff02191690831515021790555060016040518060e001604052808d63ffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020013373ffffffffffffffffffffffffffffffffffffffff168152602001346fffffffffffffffffffffffffffffffff1681526020018c8152602001886fffffffffffffffffffffffffffffffff168152602001846fffffffffffffffffffffffffffffffff16815250908060018154018082558091505060019003906000526020600020906005020160009091909190915060008201518160000160006101000a81548163ffffffff021916908363ffffffff16021790555060208201518160000160046101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060608201518160020160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055506080820151816003015560a08201518160040160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555060c08201518160040160106101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055505050600460008c8152602001908152602001600020600180805490506132f3919061591f565b81546001810183556000928352602080842090910191909155338252600a90526040812080543492906133279084906158cf565b9091555050367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360c0013560601c73ffffffffffffffffffffffffffffffffffffffff1663d0e30db0346040518263ffffffff1660e01b81526004016000604051808303818588803b1580156133a457600080fd5b505af11580156133b8573d6000803e3d6000fd5b50506040513393508d92508e91507f9b3245740ec3b155098a55be84957a4da13eaf7f14a8bc6f53126c0b9350f2be90600090a4505050505050505050505050565b60005471010000000000000000000000000000000000900460ff161561344c576040517f0dc149f000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b613454615089565b361461348c576040517f9824bdab00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360ac013560601c73ffffffffffffffffffffffffffffffffffffffff1663d83ef2676040518163ffffffff1660e01b81526004016040805180830381865afa158015613509573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061352d9190615a8e565b909250905081613569576040517f6a6bc3b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fffd7db0f9d5cdeb49c4c9eba649d4dc6d852d64671e65488e57f58584992ac686135be367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036014013590565b036135f5576040517f2cfac08200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604080518082019091528281526020018190526007829055600881905567ffffffffffffffff367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036098013560601c73ffffffffffffffffffffffffffffffffffffffff16637dc0d1d06040518163ffffffff1660e01b8152600401602060405180830381865afa158015613696573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136ba91906159d3565b73ffffffffffffffffffffffffffffffffffffffff1663f3f480d96040518163ffffffff1660e01b8152600401602060405180830381865afa158015613704573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061372891906159f0565b1115613760576040517fb4e1243300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006137977f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff166002615996565b90506000367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036098013560601c73ffffffffffffffffffffffffffffffffffffffff16637dc0d1d06040518163ffffffff1660e01b8152600401602060405180830381865afa158015613816573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061383a91906159d3565b73ffffffffffffffffffffffffffffffffffffffff1663f3f480d96040518163ffffffff1660e01b8152600401602060405180830381865afa158015613884573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138a891906159f0565b6138dc907f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff166158cf565b905060006138ea838361509e565b905067ffffffffffffffff81111561392e576040517f8d77ecac00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b67ffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001667ffffffffffffffff168167ffffffffffffffff1611156139a6576040517f8d77ecac00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360d4013515613a0b576040517f223db39400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b83367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036058013511613aa5576040517ff40239db000000000000000000000000000000000000000000000000000000008152367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036014013560048201526024015b60405180910390fd5b6040805160e08101825263ffffffff80825260006020808401828152367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90038035606090811c8789018181526fffffffffffffffffffffffffffffffff34818116948b0194855260149095013560808b01908152600160a08c0181815242841660c08e0190815282548084018455928c529c517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6600590930292830180549a5191909d167fffffffffffffffff000000000000000000000000000000000000000000000000909a169990991764010000000073ffffffffffffffffffffffffffffffffffffffff9a8b160217909b5592517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf7840180547fffffffffffffffffffffffff000000000000000000000000000000000000000016919098161790965592517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf8820180547fffffffffffffffffffffffffffffffff000000000000000000000000000000001691851691909117905593517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf9850155955196519681167001000000000000000000000000000000009790911696909602959095177fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cfa909101558154710100000000000000000000000000000000007fffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff909116178255918152600a909152918220805491929091613d269084906158cf565b9091555050367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360c0013560601c73ffffffffffffffffffffffffffffffffffffffff1663d0e30db0346040518263ffffffff1660e01b81526004016000604051808303818588803b158015613da357600080fd5b505af1158015613db7573d6000803e3d6000fd5b5050600080547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000164267ffffffffffffffff1617905550613dfa9150611f5a9050565b63ffffffff16367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360ac013560601c73ffffffffffffffffffffffffffffffffffffffff16633c9f397c6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613e7b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613e9f9190615ab2565b600980547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001663ffffffff92909216929092141790555050505050565b6fffffffffffffffffffffffffffffffff811160071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b1760008213613f3b57631615e6386000526004601cfd5b7ff8f9f9faf9fdfafbf9fdfcfdfafbfcfef9fafdfafcfcfbfefafafcfbffffffff6f8421084210842108cc6318c6db6d54be83831c1c601f161a1890811b609f90811c6c465772b2bbbb5f824b15207a3081018102606090811d6d0388eaa27412d5aca026815d636e018202811d6d0df99ac502031bf953eff472fdcc018202811d6d13cdffb29d51d99322bdff5f2211018202811d6d0a0f742023def783a307a986912e018202811d6d01920d8043ca89b5239253284e42018202811d6c0b7a86d7375468fac667a0a527016c29508e458543d8aa4df2abee7883018302821d6d0139601a2efabe717e604cbb4894018302821d6d02247f7a7b6594320649aa03aba1018302821d7fffffffffffffffffffffffffffffffffffffff73c0c716a594e00d54e3c4cbc9018302821d7ffffffffffffffffffffffffffffffffffffffdc7b88c420e53a9890533129f6f01830290911d7fffffffffffffffffffffffffffffffffffffff465fda27eb4d63ded474e5f832019091027ffffffffffffffff5f6af8f7b3396644f18e157960000000000000000000000000105711340daa0d5f769dba1915cef59f0815a5506029190037d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b302017d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b88642840160ae1d90565b60007812725dd1d243aba0e75fe645cc4873f9e65afe688c928e1f218311670de0b6b3a76400000215820261417457637c5f487d6000526004601cfd5b50670de0b6b3a7640000919091020490565b6000816000190483118202156141a45763bac65e5b6000526004601cfd5b50670de0b6b3a764000091020490565b60007ffffffffffffffffffffffffffffffffffffffffffffffffdc0d0570925a462d782136141e257919050565b680755bf798b4a1bf1e582126142005763a37bfec96000526004601cfd5b6503782dace9d9604e83901b059150600060606bb17217f7d1cf79abc9e3b39884821b056b80000000000000000000000001901d6bb17217f7d1cf79abc9e3b39881029093037fffffffffffffffffffffffffffffffffffffffdbf3ccf1604d263450f02a550481018102606090811d6d0277594991cfc85f6e2461837cd9018202811d7fffffffffffffffffffffffffffffffffffffe5adedaa1cb095af9e4da10e363c018202811d6db1bbb201f443cf962f1a1d3db4a5018202811d7ffffffffffffffffffffffffffffffffffffd38dc772608b0ae56cce01296c0eb018202811d6e05180bb14799ab47a8a8cb2a527d57016d02d16720577bd19bf614176fe9ea6c10fe68e7fd37d0007b713f765084018402831d9081019084017ffffffffffffffffffffffffffffffffffffffe2c69812cf03b0763fd454a8f7e010290911d6e0587f503bb6ea29d25fcb7401964500190910279d835ebba824c98fb31b83b2ca45c000000000000000000000000010574029d9dc38563c32e5c2f6dc192ee70ef65f9978af30260c3939093039290921c92915050565b60006143cd670de0b6b3a7640000836143b486613edc565b6143be9190615ad8565b6143c89190615b94565b6141b4565b90505b92915050565b60008054700100000000000000000000000000000000900460ff16600281111561440257614402615571565b14614439576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006001878154811061444e5761444e615871565b6000918252602082206005919091020160048101549092506fffffffffffffffffffffffffffffffff16908715821760011b90506144ad7f000000000000000000000000000000000000000000000000000000000000000060016158cf565b614549826fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff1614614583576040517f5f53dd9800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000808915614687576145d67f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000061591f565b6001901b6145f5846fffffffffffffffffffffffffffffffff166150b5565b6fffffffffffffffffffffffffffffffff166146119190615bfc565b1561464e5761464561463660016fffffffffffffffffffffffffffffffff8716615c10565b865463ffffffff166000615154565b6003015461467d565b367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c9003607801355b91508490506146b1565b600385015491506146ae6146366fffffffffffffffffffffffffffffffff86166001615c39565b90505b600882901b60088a8a6040516146c8929190615c64565b6040518091039020901b14614709576040517f696550ff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006147148c615238565b90506000614723836003015490565b6040517fe14ced32000000000000000000000000000000000000000000000000000000008152367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036098013560601c9063e14ced3290614797908f908f908f908f908a90600401615cbd565b6020604051808303816000875af11580156147b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906147da91906159f0565b600485015491149150600090600290614885906fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b614921896fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b61492b9190615cf7565b6149359190615d1a565b60ff161590508115158103614976576040517ffb4e40dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8754640100000000900473ffffffffffffffffffffffffffffffffffffffff16156149cd576040517f9071e6af00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505085547fffffffffffffffff0000000000000000000000000000000000000000ffffffff163364010000000002179095555050505050505050505050565b6000806000806000859050600060018281548110614a2c57614a2c615871565b600091825260209091206004600590920201908101549091507f000000000000000000000000000000000000000000000000000000000000000090614b03906fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff1611614b3d576040517fb34b5c2200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000815b60048301547f000000000000000000000000000000000000000000000000000000000000000090614c04906fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff169250821115614c7957825463ffffffff16614c437f000000000000000000000000000000000000000000000000000000000000000060016158cf565b8303614c4d578391505b60018181548110614c6057614c60615871565b9060005260206000209060050201935080945050614b41565b600481810154908401546fffffffffffffffffffffffffffffffff91821691166000816fffffffffffffffffffffffffffffffff16614ce2614ccd856fffffffffffffffffffffffffffffffff1660011c90565b6fffffffffffffffffffffffffffffffff1690565b6fffffffffffffffffffffffffffffffff161490508015614db1576000614d1a836fffffffffffffffffffffffffffffffff166150b5565b6fffffffffffffffffffffffffffffffff161115614d85576000614d5c614d5460016fffffffffffffffffffffffffffffffff8616615c10565b896001615154565b6003810154600490910154909c506fffffffffffffffffffffffffffffffff169a50614d8b9050565b6007549a505b600386015460048701549099506fffffffffffffffffffffffffffffffff169750614e07565b6000614dd3614d546fffffffffffffffffffffffffffffffff85166001615c39565b6003808901546004808b015492840154930154909e506fffffffffffffffffffffffffffffffff9182169d50919b50169850505b505050505050509193509193565b60006fffffffffffffffffffffffffffffffff841615614e825760408051602081018790526fffffffffffffffffffffffffffffffff8087169282019290925260608101859052908316608082015260a00160405160208183030381529060405280519060200120611562565b8282604051602001614eb09291909182526fffffffffffffffffffffffffffffffff16602082015260400190565b6040516020818303038152906040528051906020012095945050505050565b6000614eee6fffffffffffffffffffffffffffffffff84166001615c39565b90506000614efe82866001615154565b9050600086901a8380614fea5750614f3760027f0000000000000000000000000000000000000000000000000000000000000000615bfc565b6004830154600290614fdb906fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b614fe59190615d1a565b60ff16145b156150425760ff811660011480615004575060ff81166002145b61503d576040517ff40239db00000000000000000000000000000000000000000000000000000000815260048101889052602401613a9c565b615080565b60ff811615615080576040517ff40239db00000000000000000000000000000000000000000000000000000000815260048101889052602401613a9c565b50505050505050565b6000615093615267565b6114d79060066158cf565b6000818310156150ae57816143cd565b5090919050565b600080615142837e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b600160ff919091161b90920392915050565b6000808261519d576151986fffffffffffffffffffffffffffffffff86167f0000000000000000000000000000000000000000000000000000000000000000615275565b6151b8565b6151b8856fffffffffffffffffffffffffffffffff16615401565b9050600184815481106151cd576151cd615871565b906000526020600020906005020191505b60048201546fffffffffffffffffffffffffffffffff82811691161461523057815460018054909163ffffffff1690811061521b5761521b615871565b906000526020600020906005020191506151de565b509392505050565b600080600080600061524986614a0c565b935093509350935061525d84848484614e15565b9695505050505050565b60006114d760f460286158cf565b600081615314846fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff161161532a5763b34b5c226000526004601cfd5b61533383615401565b9050816153d2826fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff16116143d0576143cd6153e88360016158cf565b6fffffffffffffffffffffffffffffffff8316906154a6565b60008119600183011681615495827e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff169390931c8015179392505050565b600080615533847e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff169050808303600180821b0385821b179250505092915050565b6000806040838503121561556257600080fd5b50508035926020909101359150565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600381106155d7577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b50565b602081016155e7836155a0565b91905290565b73ffffffffffffffffffffffffffffffffffffffff811681146155d757600080fd5b60006020828403121561562157600080fd5b813561562c816155ed565b9392505050565b60008060006060848603121561564857600080fd5b505081359360208301359350604090920135919050565b6000815180845260005b8181101561568557602081850181015186830182015201615669565b81811115615697576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006143cd602083018461565f565b6000602082840312156156ef57600080fd5b5035919050565b80151581146155d757600080fd5b6000806000806080858703121561571a57600080fd5b843593506020850135925060408501359150606085013561573a816156f6565b939692955090935050565b60006020828403121561575757600080fd5b81356fffffffffffffffffffffffffffffffff8116811461562c57600080fd5b60008083601f84011261578957600080fd5b50813567ffffffffffffffff8111156157a157600080fd5b6020830191508360208285010111156157b957600080fd5b9250929050565b600080600080600080608087890312156157d957600080fd5b8635955060208701356157eb816156f6565b9450604087013567ffffffffffffffff8082111561580857600080fd5b6158148a838b01615777565b9096509450606089013591508082111561582d57600080fd5b5061583a89828a01615777565b979a9699509497509295939492505050565b63ffffffff84168152826020820152606060408201526000611562606083018461565f565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600082198211156158e2576158e26158a0565b500190565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203615918576159186158a0565b5060010190565b600082821015615931576159316158a0565b500390565b60006020828403121561594857600080fd5b815161562c816156f6565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60008261599157615991615953565b500490565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156159ce576159ce6158a0565b500290565b6000602082840312156159e557600080fd5b815161562c816155ed565b600060208284031215615a0257600080fd5b5051919050565b600067ffffffffffffffff808316818516808303821115615a2c57615a2c6158a0565b01949350505050565b600067ffffffffffffffff80831681851681830481118215151615615a5c57615a5c6158a0565b02949350505050565b600067ffffffffffffffff83811690831681811015615a8657615a866158a0565b039392505050565b60008060408385031215615aa157600080fd5b505080516020909101519092909150565b600060208284031215615ac457600080fd5b815163ffffffff8116811461562c57600080fd5b60007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600084136000841385830485118282161615615b1957615b196158a0565b7f80000000000000000000000000000000000000000000000000000000000000006000871286820588128184161615615b5457615b546158a0565b60008712925087820587128484161615615b7057615b706158a0565b87850587128184161615615b8657615b866158a0565b505050929093029392505050565b600082615ba357615ba3615953565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83147f800000000000000000000000000000000000000000000000000000000000000083141615615bf757615bf76158a0565b500590565b600082615c0b57615c0b615953565b500690565b60006fffffffffffffffffffffffffffffffff83811690831681811015615a8657615a866158a0565b60006fffffffffffffffffffffffffffffffff808316818516808303821115615a2c57615a2c6158a0565b8183823760009101908152919050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b606081526000615cd1606083018789615c74565b8281036020840152615ce4818688615c74565b9150508260408301529695505050505050565b600060ff821660ff841680821015615d1157615d116158a0565b90039392505050565b600060ff831680615d2d57615d2d615953565b8060ff8416069150509291505056fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R`\x046\x10a\x03\x1EW`\x005`\xE0\x1C\x80cxk\x84K\x11a\x01\xA5W\x80c\xC0\xD8\xBBt\x11a\0\xECW\x80c\xDA\xBD9m\x11a\0\x95W\x80c\xF8\xF4?\xF6\x11a\0oW\x80c\xF8\xF4?\xF6\x14a\x0B\xCEW\x80c\xFA$\xF7C\x14a\x0B\xEEW\x80c\xFA1Z\xA9\x14a\x0C\x12W\x80c\xFE+\xBE\xB2\x14a\x0CEW`\0\x80\xFD[\x80c\xDA\xBD9m\x14a\x0B8W\x80c\xEC^c\x08\x14a\x0BkW\x80c\xEF\xF0\xF5\x92\x14a\x0B\x9EW`\0\x80\xFD[\x80c\xCF\t\xE0\xD0\x11a\0\xC6W\x80c\xCF\t\xE0\xD0\x14a\n\xD7W\x80c\xD5\xD4M\x80\x14a\n\xF8W\x80c\xD8\xCC\x1A<\x14a\x0B\x18W`\0\x80\xFD[\x80c\xC0\xD8\xBBt\x14a\n\0W\x80c\xC3\x95\xE1\xCA\x14a\n-W\x80c\xC6\xF00\x8C\x14a\nMW`\0\x80\xFD[\x80c\x99s^2\x11a\x01NW\x80c\xBB\xDC\x02\xDB\x11a\x01(W\x80c\xBB\xDC\x02\xDB\x14a\tUW\x80c\xBC\xEF;U\x14a\t\xA0W\x80c\xBD\x8D\xA9V\x14a\t\xE0W`\0\x80\xFD[\x80c\x99s^2\x14a\x08\x06W\x80c\xA4E\xEC\xE6\x14a\x08FW\x80c\xA8\xE4\xFB\x90\x14a\t\x12W`\0\x80\xFD[\x80c\x89\x80\xE0\xCC\x11a\x01\x7FW\x80c\x89\x80\xE0\xCC\x14a\x07\x81W\x80c\x8DE\n\x95\x14a\x07\x96W\x80c\x93\x8Dh\x9A\x14a\x07\xD6W`\0\x80\xFD[\x80cxk\x84K\x14a\x07QW\x80c{\x0F\n\xDC\x14a\x07fW\x80c\x81)\xFC\x1C\x14a\x07yW`\0\x80\xFD[\x80cG'w\xC6\x11a\x02iW\x80c\\\x0C\xBA3\x11a\x02\x12W\x80ccaPm\x11a\x01\xECW\x80ccaPm\x14a\x06\xCBW\x80ckg\x16\xC0\x14a\x07\x0BW\x80co\x03D\t\x14a\x07>W`\0\x80\xFD[\x80c\\\x0C\xBA3\x14a\x06SW\x80c`\x9D34\x14a\x06\x96W\x80c`\xE2td\x14a\x06\xABW`\0\x80\xFD[\x80cT\xFDMP\x11a\x02CW\x80cT\xFDMP\x14a\x05\xCFW\x80cY\xCE\xBE\t\x14a\x06\x1EW\x80cZ_\xA2\xD9\x14a\x063W`\0\x80\xFD[\x80cG'w\xC6\x14a\x05zW\x80cR\x9Dj\x8C\x14a\x05\x8DW\x80cSM\xB0\xE2\x14a\x05\xBAW`\0\x80\xFD[\x80c(\x10\xE1\xD6\x11a\x02\xCBW\x80c7\xB1\xB2)\x11a\x02\xA5W\x80c7\xB1\xB2)\x14a\x04\x93W\x80c:v\x84c\x14a\x04\xF4W\x80c?\xC8\xCE\xF3\x14a\x057W`\0\x80\xFD[\x80c(\x10\xE1\xD6\x14a\x04DW\x80c*\xD6\x9A\xEB\x14a\x04YW\x80c7\x8D\xD4\x8C\x14a\x04yW`\0\x80\xFD[\x80c\"*\xBFE\x11a\x02\xFCW\x80c\"*\xBFE\x14a\x03\xCBW\x80c%\x0Ei\xBD\x14a\x04\x0BW\x80c%\xFC*\xCE\x14a\x04%W`\0\x80\xFD[\x80c\x03\xC2\x92M\x14a\x03#W\x80c\x19\xEF\xFE\xB4\x14a\x03EW\x80c \r.\xD2\x14a\x03\x90W[`\0\x80\xFD[4\x80\x15a\x03/W`\0\x80\xFD[Pa\x03Ca\x03>6`\x04aUOV[a\x0CuV[\0[4\x80\x15a\x03QW`\0\x80\xFD[P`\0Ta\x03r\x90h\x01\0\0\0\0\0\0\0\0\x90\x04g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[`@Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[4\x80\x15a\x03\x9CW`\0\x80\xFD[P`\0Ta\x03\xBE\x90p\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16\x81V[`@Qa\x03\x87\x91\x90aU\xDAV[4\x80\x15a\x03\xD7W`\0\x80\xFD[Pa\x03\xFBa\x03\xE66`\x04aV\x0FV[`\x0B` R`\0\x90\x81R`@\x90 T`\xFF\x16\x81V[`@Q\x90\x15\x15\x81R` \x01a\x03\x87V[4\x80\x15a\x04\x17W`\0\x80\xFD[P`\tTa\x03\xFB\x90`\xFF\x16\x81V[4\x80\x15a\x041W`\0\x80\xFD[P`\x07T[`@Q\x90\x81R` \x01a\x03\x87V[4\x80\x15a\x04PW`\0\x80\xFD[Pa\x03\xBEa\x12\x81V[4\x80\x15a\x04eW`\0\x80\xFD[Pa\x046a\x04t6`\x04aUOV[a\x14\xA6V[4\x80\x15a\x04\x85W`\0\x80\xFD[P`\x0CTa\x03\xBE\x90`\xFF\x16\x81V[4\x80\x15a\x04\x9FW`\0\x80\xFD[P6\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x035``\x1C[`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01a\x03\x87V[4\x80\x15a\x05\0W`\0\x80\xFD[P6\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`\x98\x015``\x1Ca\x04\xCFV[4\x80\x15a\x05CW`\0\x80\xFD[P6\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`\xC0\x015``\x1Ca\x04\xCFV[a\x03Ca\x05\x886`\x04aV3V[a\x14\xDCV[4\x80\x15a\x05\x99W`\0\x80\xFD[Pa\x046a\x05\xA86`\x04aV\x0FV[`\x02` R`\0\x90\x81R`@\x90 T\x81V[4\x80\x15a\x05\xC6W`\0\x80\xFD[Pa\x04\xCFa\x14\xEEV[4\x80\x15a\x05\xDBW`\0\x80\xFD[P`@\x80Q\x80\x82\x01\x90\x91R`\x05\x81R\x7F0.6.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` \x82\x01R[`@Qa\x03\x87\x91\x90aV\xCAV[4\x80\x15a\x06*W`\0\x80\xFD[P`\x08Ta\x046V[4\x80\x15a\x06?W`\0\x80\xFD[Pa\x046a\x06N6`\x04aV\xDDV[a\x151V[4\x80\x15a\x06_W`\0\x80\xFD[P6\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`\xAC\x015``\x1Ca\x04\xCFV[4\x80\x15a\x06\xA2W`\0\x80\xFD[Pa\x06\x11a\x15kV[4\x80\x15a\x06\xB7W`\0\x80\xFD[Pa\x03Ca\x06\xC66`\x04aV\x0FV[a\x15yV[4\x80\x15a\x06\xD7W`\0\x80\xFD[P6\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`4\x015a\x046V[4\x80\x15a\x07\x17W`\0\x80\xFD[P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x03rV[a\x03Ca\x07L6`\x04aW\x04V[a\x19LV[4\x80\x15a\x07]W`\0\x80\xFD[Pa\x03Ca\x1A\x04V[a\x03Ca\x07t6`\x04aV3V[a\x1E\xDAV[a\x03Ca\x1E\xE7V[4\x80\x15a\x07\x8DW`\0\x80\xFD[P`\x01Ta\x046V[4\x80\x15a\x07\xA2W`\0\x80\xFD[P6\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`x\x015a\x046V[4\x80\x15a\x07\xE2W`\0\x80\xFD[P`\x07T`\x08Ta\x07\xF1\x91\x90\x82V[`@\x80Q\x92\x83R` \x83\x01\x91\x90\x91R\x01a\x03\x87V[4\x80\x15a\x08\x12W`\0\x80\xFD[P6\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`X\x015a\x046V[4\x80\x15a\x08RW`\0\x80\xFD[Pa\x08\xBEa\x08a6`\x04aV\xDDV[`\x06` R`\0\x90\x81R`@\x90 \x80T`\x01\x90\x91\x01T`\xFF\x82\x16\x91a\x01\0\x81\x04c\xFF\xFF\xFF\xFF\x16\x91e\x01\0\0\0\0\0\x90\x91\x04o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x84V[`@\x80Q\x94\x15\x15\x85Rc\xFF\xFF\xFF\xFF\x90\x93\x16` \x85\x01Ro\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x91\x83\x01\x91\x90\x91Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16``\x82\x01R`\x80\x01a\x03\x87V[4\x80\x15a\t\x1EW`\0\x80\xFD[P6\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`\xF4\x015``\x1Ca\x04\xCFV[4\x80\x15a\taW`\0\x80\xFD[P`@Q6\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`T\x015`\xE0\x1C\x81R` \x01a\x03\x87V[4\x80\x15a\t\xACW`\0\x80\xFD[P6\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`\x14\x015a\x046V[4\x80\x15a\t\xECW`\0\x80\xFD[Pa\x03ra\t\xFB6`\x04aV\xDDV[a\x1F\x8EV[4\x80\x15a\n\x0CW`\0\x80\xFD[Pa\x046a\n\x1B6`\x04aV\x0FV[`\n` R`\0\x90\x81R`@\x90 T\x81V[4\x80\x15a\n9W`\0\x80\xFD[Pa\x046a\nH6`\x04aWEV[a!mV[4\x80\x15a\nYW`\0\x80\xFD[Pa\nma\nh6`\x04aV\xDDV[a#PV[`@\x80Qc\xFF\xFF\xFF\xFF\x90\x98\x16\x88Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x96\x87\x16` \x89\x01R\x95\x90\x94\x16\x94\x86\x01\x94\x90\x94Ro\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x91\x82\x16``\x86\x01R`\x80\x85\x01R\x91\x82\x16`\xA0\x84\x01R\x16`\xC0\x82\x01R`\xE0\x01a\x03\x87V[4\x80\x15a\n\xE3W`\0\x80\xFD[P`\0Ta\x03r\x90g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[4\x80\x15a\x0B\x04W`\0\x80\xFD[Pa\x046a\x0B\x136`\x04aV\x0FV[a#\xE7V[4\x80\x15a\x0B$W`\0\x80\xFD[Pa\x03Ca\x0B36`\x04aW\xC0V[a$YV[4\x80\x15a\x0BDW`\0\x80\xFD[P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x03rV[4\x80\x15a\x0BwW`\0\x80\xFD[P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x046V[4\x80\x15a\x0B\xAAW`\0\x80\xFD[Pa\x03\xFBa\x0B\xB96`\x04aV\xDDV[`\x03` R`\0\x90\x81R`@\x90 T`\xFF\x16\x81V[4\x80\x15a\x0B\xDAW`\0\x80\xFD[Pa\x03Ca\x0B\xE96`\x04aV3V[a%\rV[4\x80\x15a\x0B\xFAW`\0\x80\xFD[Pa\x0C\x03a(cV[`@Qa\x03\x87\x93\x92\x91\x90aXLV[4\x80\x15a\x0C\x1EW`\0\x80\xFD[P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x046V[4\x80\x15a\x0CQW`\0\x80\xFD[Pa\x03\xFBa\x0C`6`\x04aV\xDDV[`\x05` R`\0\x90\x81R`@\x90 T`\xFF\x16\x81V[`\0\x80Tp\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16`\x02\x81\x11\x15a\x0C\xA1Wa\x0C\xA1aUqV[\x14a\x0C\xD8W`@Q\x7Fg\xFE\x19P\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\x01`@Q\x80\x91\x03\x90\xFD[`\0`\x01\x83\x81T\x81\x10a\x0C\xEDWa\x0C\xEDaXqV[\x90`\0R` `\0 \x90`\x05\x02\x01\x90P`\0a\r\x08\x84a\x1F\x8EV[\x90Pg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81\x16\x90\x82\x16\x10\x15a\rqW`@Q\x7F\xF2D\x0BS\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\x01`@Q\x80\x91\x03\x90\xFD[`\0\x84\x81R`\x05` R`@\x90 T`\xFF\x16\x15a\r\xBAW`@Q\x7F\xF1\xA9E\x81\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\x01`@Q\x80\x91\x03\x90\xFD[`\0\x84\x81R`\x04` R`@\x90 \x80T\x80\x15\x80\x15a\r\xD7WP\x85\x15\x15[\x15a\x0ErW\x83Td\x01\0\0\0\0\x90\x04s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\0\x81\x15a\x0E\nW\x81a\x0E&V[`\x01\x86\x01Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16[\x90Pa\x0E2\x81\x87a(\xABV[PPP`\0\x94\x85RPP`\x05` RPP`@\x90 \x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x16`\x01\x17\x90UV[`\0\x86\x81R`\x06` \x90\x81R`@\x91\x82\x90 \x82Q`\x80\x81\x01\x84R\x81T`\xFF\x81\x16\x15\x15\x80\x83Ra\x01\0\x82\x04c\xFF\xFF\xFF\xFF\x16\x94\x83\x01\x94\x90\x94Re\x01\0\0\0\0\0\x90\x04o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x93\x81\x01\x93\x90\x93R`\x01\x01Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16``\x83\x01Ra\x0F\x15Wo\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF`@\x82\x01R`\x01\x81R`\0\x86\x90\x03a\x0F\x15W\x81\x95P[`\0\x86\x82` \x01Qc\xFF\xFF\xFF\xFF\x16a\x0F-\x91\x90aX\xCFV[\x90P`\0\x83\x82\x11a\x0F>W\x81a\x0F@V[\x83[` \x84\x01Q\x90\x91Pc\xFF\xFF\xFF\xFF\x16[\x81\x81\x10\x15a\x10\x8CW`\0\x86\x82\x81T\x81\x10a\x0FkWa\x0FkaXqV[`\0\x91\x82R` \x80\x83 \x90\x91\x01T\x80\x83R`\x05\x90\x91R`@\x90\x91 T\x90\x91P`\xFF\x16a\x0F\xC3W`@Q\x7F\x9A\x07fF\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\x01`@Q\x80\x91\x03\x90\xFD[`\0`\x01\x82\x81T\x81\x10a\x0F\xD8Wa\x0F\xD8aXqV[`\0\x91\x82R` \x90\x91 `\x05\x90\x91\x02\x01\x80T\x90\x91Pd\x01\0\0\0\0\x90\x04s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x15\x80\x15a\x105WP`\x04\x81\x01T`@\x87\x01Qo\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x91\x82\x16\x91\x16\x11[\x15a\x10wW`\x01\x81\x01Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16``\x87\x01R`\x04\x81\x01To\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`@\x87\x01R[PP\x80\x80a\x10\x84\x90aX\xE7V[\x91PPa\x0FOV[Pc\xFF\xFF\xFF\xFF\x81\x81\x16` \x85\x81\x01\x91\x82R`\0\x8C\x81R`\x06\x90\x91R`@\x90\x81\x90 \x86Q\x81T\x93Q\x92\x88\x01Q\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\x90\x94\x16\x90\x15\x15\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\xFF\x16\x17a\x01\0\x92\x90\x94\x16\x91\x82\x02\x93\x90\x93\x17\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xFF\xFF\xFF\xFF\xFF\x16e\x01\0\0\0\0\0o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x93\x16\x92\x90\x92\x02\x91\x90\x91\x17\x82U``\x85\x01Q`\x01\x90\x92\x01\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x93\x16\x92\x90\x92\x17\x90\x91U\x84\x90\x03a\x12vW``\x83\x01Q`\0\x8A\x81R`\x05` R`@\x90 \x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x16`\x01\x17\x90Ua\x12-s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16\x15a\x12\x0BW\x81a\x12'V[`\x01\x89\x01Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16[\x89a(\xABV[\x87Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16d\x01\0\0\0\0\x02\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xFF\xFF\xFF\xFF\x90\x91\x16\x17\x87U[PPPPPPPPPV[`\0\x80`\0Tp\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16`\x02\x81\x11\x15a\x12\xAFWa\x12\xAFaUqV[\x14a\x12\xE6W`@Q\x7Fg\xFE\x19P\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\x01`@Q\x80\x91\x03\x90\xFD[`\0\x80R`\x05` R\x7F\x05\xB8\xCC\xBB\x9DM\x8F\xB1n\xA7L\xE3\xC2\x9AA\xF1\xB4a\xFB\xDA\xFFG\x14\xA0\xD9\xA8\xEB\x05I\x97F\xBCT`\xFF\x16a\x13JW`@Q\x7F\x9A\x07fF\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\x01`@Q\x80\x91\x03\x90\xFD[`\0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\x01`\0\x81T\x81\x10a\x13vWa\x13vaXqV[`\0\x91\x82R` \x90\x91 `\x05\x90\x91\x02\x01Td\x01\0\0\0\0\x90\x04s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14a\x13\xB1W`\x01a\x13\xB4V[`\x02[`\0\x80Tg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFFB\x16h\x01\0\0\0\0\0\0\0\0\x02\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16\x81\x17\x83U\x92\x93P\x83\x92\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x17p\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x83`\x02\x81\x11\x15a\x14eWa\x14eaUqV[\x02\x17\x90U`\x02\x81\x11\x15a\x14zWa\x14zaUqV[`@Q\x7F^\x18o\t\xB9\xC94\x91\xF1N'~\xEA\x7F\xAA]\xE6\xA2\xD4\xBD\xA7Zy\xAFz6\x84\xFB\xFBB\xDA`\x90`\0\x90\xA2\x90V[`\x04` R\x81`\0R`@`\0 \x81\x81T\x81\x10a\x14\xC2W`\0\x80\xFD[\x90`\0R` `\0 \x01`\0\x91P\x91PPT\x81V[\x90P\x90V[a\x14\xE9\x83\x83\x83`\x01a\x19LV[PPPV[`\0a\x14\xD7a\x14\xFF`\xF4`\x14aX\xCFV[6\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03\x015``\x1C\x90V[`\0\x81\x81R`\x06` \x90\x81R`@\x80\x83 `\x04\x90\x92R\x82 \x80T\x82Ta\x15b\x90a\x01\0\x90\x04c\xFF\xFF\xFF\xFF\x16\x82aY\x1FV[\x95\x94PPPPPV[``a\x14\xD7`X` a)\x04V[a\x15\x81a\x1A\x04V[`\0`\x02`\x0CT`\xFF\x16`\x02\x81\x11\x15a\x15\x9CWa\x15\x9CaUqV[\x03a\x15\xCDWPs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16`\0\x90\x81R`\n` R`@\x90 Ta\x16IV[`\x01`\x0CT`\xFF\x16`\x02\x81\x11\x15a\x15\xE6Wa\x15\xE6aUqV[\x03a\x16\x17WPs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16`\0\x90\x81R`\x02` R`@\x90 Ta\x16IV[`@Q\x7F\x07\x8A=\xF4\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\x01`@Q\x80\x91\x03\x90\xFD[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16`\0\x90\x81R`\x0B` R`@\x90 T`\xFF\x16a\x17\x8AWs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16`\0\x90\x81R`\x0B` R`@\x90 \x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x16`\x01\x17\x90Ua\x16\xFC`\xC0\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE6\x90\x81\x015`\xF0\x1C\x90\x03\x015``\x1C\x90V[`@Q\x7F~\xEE(\x8D\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\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x81\x16`\x04\x83\x01R`$\x82\x01\x84\x90R\x91\x90\x91\x16\x90c~\xEE(\x8D\x90`D\x01`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a\x17nW`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x17\x82W=`\0\x80>=`\0\xFD[PPPPPPV[\x80`\0\x03a\x17\xC4W`@Q\x7F\x17\xBF\xE5\xF7\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\x01`@Q\x80\x91\x03\x90\xFD[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16`\0\x90\x81R`\n` \x90\x81R`@\x80\x83 \x83\x90U`\x02\x90\x91R\x81 U6\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`\xC0\x015``\x1C`@Q\x7F\xF3\xFE\xF3\xA3\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\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x81\x16`\x04\x83\x01R`$\x82\x01\x84\x90R\x91\x90\x91\x16\x90c\xF3\xFE\xF3\xA3\x90`D\x01`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a\x18\x9AW`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x18\xAEW=`\0\x80>=`\0\xFD[PPPP`\0\x82s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x82`@Q`\0`@Q\x80\x83\x03\x81\x85\x87Z\xF1\x92PPP=\x80`\0\x81\x14a\x19\x0CW`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=`\0` \x84\x01>a\x19\x11V[``\x91P[PP\x90P\x80a\x14\xE9W`@Q\x7F\x83\xE6\xCCk\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\x01`@Q\x80\x91\x03\x90\xFD[6\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`\xF4\x015``\x1C3\x14\x80a\x19\xBCWPa\x19\x8Da\x14\xEEV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x163s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14[a\x19\xF2W`@Q\x7F\xD3\x86\xEF>\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\x01`@Q\x80\x91\x03\x90\xFD[a\x19\xFE\x84\x84\x84\x84a)VV[PPPPV[6\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`\xAC\x015``\x1Cs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\\\x97Z\xBB`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x1A\x7FW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x1A\xA3\x91\x90aY6V[\x15a\x1A\xDAW`@Q\x7F7\x9A~\xD9\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\x01`@Q\x80\x91\x03\x90\xFD[`\x02`\x0CT`\xFF\x16`\x02\x81\x11\x15a\x1A\xF3Wa\x1A\xF3aUqV[\x14\x80a\x1B\x15WP`\x01`\x0CT`\xFF\x16`\x02\x81\x11\x15a\x1B\x13Wa\x1B\x13aUqV[\x14[\x15a\x1B\x1CWV[`\0`\x0CT`\xFF\x16`\x02\x81\x11\x15a\x1B5Wa\x1B5aUqV[\x14a\x1BlW`@Q\x7F\x07\x8A=\xF4\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\x01`@Q\x80\x91\x03\x90\xFD[`\0Th\x01\0\0\0\0\0\0\0\0\x90\x04g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\0\x03a\x1B\xC8W`@Q\x7F\xC1\x05&\n\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\x01`@Q\x80\x91\x03\x90\xFD[`\x006\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`\xAC\x015``\x1C`@Q\x7F\x03\x14\xD2\xB3\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\x81R0`\x04\x82\x01Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x91\x90\x91\x16\x90c\x03\x14\xD2\xB3\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x1CgW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x1C\x8B\x91\x90aY6V[\x90P\x80a\x1C\xC4W`@Q\x7FHQ\xBD\x9B\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\x01`@Q\x80\x91\x03\x90\xFD[6\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`\xAC\x015``\x1C`@Q\x7F\x17\xCF!\xA9\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\x81R0`\x04\x82\x01Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x91\x90\x91\x16\x90c\x17\xCF!\xA9\x90`$\x01`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a\x1D^W`\0\x80\xFD[PZ\xF1\x92PPP\x80\x15a\x1DoWP`\x01[P`\x006\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`\xAC\x015``\x1C`@Q\x7FIk\x9C\x16\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\x81R0`\x04\x82\x01Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x91\x90\x91\x16\x90cIk\x9C\x16\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x1E\x0FW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x1E3\x91\x90aY6V[\x90P\x80\x15a\x1EkW`\x0C\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x16`\x01\x17\x90Ua\x1E\x97V[`\x0C\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x16`\x02\x17\x90U[`\x0CT`@Q\x7F\x99\x08\xEA\xAC\x06E\xDF\x9D\x07\x04\xD0j\xDC\x9E\x073|\x95\x1D\xE2\xF0k_(6\x15\x1DH\xD5\xE4r/\x91a\x1E\xCE\x91`\xFF\x90\x91\x16\x90aU\xDAV[`@Q\x80\x91\x03\x90\xA1PPV[a\x14\xE9\x83\x83\x83`\0a\x19LV[a\x1E\xEFa3\xFAV[6\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`\xF4\x015``\x1C2\x14a\x1FXW`@Q\x7F\xD3\x86\xEF>\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\x01`@Q\x80\x91\x03\x90\xFD[V[6\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`T\x015`\xE0\x1C\x90V[`\0\x80`\0Tp\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16`\x02\x81\x11\x15a\x1F\xBCWa\x1F\xBCaUqV[\x14a\x1F\xF3W`@Q\x7Fg\xFE\x19P\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\x01`@Q\x80\x91\x03\x90\xFD[`\0`\x01\x83\x81T\x81\x10a \x08Wa \x08aXqV[`\0\x91\x82R` \x82 `\x05\x90\x91\x02\x01\x80T\x90\x92Pc\xFF\xFF\xFF\xFF\x90\x81\x16\x14a wW\x81T`\x01\x80T\x90\x91c\xFF\xFF\xFF\xFF\x16\x90\x81\x10a FWa FaXqV[\x90`\0R` `\0 \x90`\x05\x02\x01`\x04\x01`\x10\x90T\x90a\x01\0\n\x90\x04o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90P[`\x04\x82\x01T`\0\x90a \xAF\x90p\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90V[a \xC3\x90g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16BaY\x1FV[a \xE2a \xA2\x84o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`@\x1C\x90V[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a \xF6\x91\x90aX\xCFV[\x90Pg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x11a!CW\x80a\x15bV[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x95\x94PPPPPV[`\0\x80a\"\x0C\x83o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1F\x7F\x07\xC4\xAC\xDD\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\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\xFF\x16\x90P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81\x11\x15a\"kW`@Q\x7FV\xF5{+\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\x01`@Q\x80\x91\x03\x90\xFD[d.\x90\xED\xD0\0b\x06\x1A\x80c\x11\xE1\xA3\0`\0a\"\x86\x83\x83aY\x82V[\x90Pg\r\xE0\xB6\xB3\xA7d\0\0`\0a\"\xBD\x82\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0aY\x96V[\x90P`\0a\"\xDBa\"\xD6g\r\xE0\xB6\xB3\xA7d\0\0\x86aY\x96V[a>\xDCV[\x90P`\0a\"\xE9\x84\x84aA7V[\x90P`\0a\"\xF7\x83\x83aA\x86V[\x90P`\0a#\x04\x82aA\xB4V[\x90P`\0a##\x82a#\x1Eg\r\xE0\xB6\xB3\xA7d\0\0\x8FaY\x96V[aC\x9CV[\x90P`\0a#1\x8B\x83aA\x86V[\x90Pa#=\x81\x8DaY\x96V[\x9F\x9EPPPPPPPPPPPPPPPV[`\x01\x81\x81T\x81\x10a#`W`\0\x80\xFD[`\0\x91\x82R` \x90\x91 `\x05\x90\x91\x02\x01\x80T`\x01\x82\x01T`\x02\x83\x01T`\x03\x84\x01T`\x04\x90\x94\x01Tc\xFF\xFF\xFF\xFF\x84\x16\x95Pd\x01\0\0\0\0\x90\x93\x04s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x81\x16\x94\x92\x16\x92o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x91\x82\x16\x92\x91\x80\x82\x16\x91p\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04\x16\x87V[`\0`\x02`\x0CT`\xFF\x16`\x02\x81\x11\x15a$\x02Wa$\x02aUqV[\x03a$0WPs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\0\x90\x81R`\n` R`@\x90 T\x90V[Ps\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\0\x90\x81R`\x02` R`@\x90 T\x90V[6\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`\xF4\x015``\x1C3\x14\x80a$\xC9WPa$\x9Aa\x14\xEEV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x163s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14[a$\xFFW`@Q\x7F\xD3\x86\xEF>\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\x01`@Q\x80\x91\x03\x90\xFD[a\x17\x82\x86\x86\x86\x86\x86\x86aC\xD6V[`\0\x80Tp\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16`\x02\x81\x11\x15a%9Wa%9aUqV[\x14a%pW`@Q\x7Fg\xFE\x19P\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\x01`@Q\x80\x91\x03\x90\xFD[`\0\x80`\0\x80a%\x7F\x86aJ\x0CV[\x93P\x93P\x93P\x93P`\0a%\x95\x85\x85\x85\x85aN\x15V[\x90P`\x006\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`\x98\x015``\x1Cs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c}\xC0\xD1\xD0`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a&\x14W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a&8\x91\x90aY\xD3V[\x90P`\x01\x89\x03a'3Ws\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16cR\xF0\xF3\xAD\x8A\x84a&\x976\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`4\x015\x90V[\x90V[`@Q\x7F\xFF\xFF\xFF\xFF\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`\xE0\x86\x90\x1B\x16\x81R`\x04\x81\x01\x93\x90\x93R`$\x83\x01\x91\x90\x91R`D\x82\x01R` `d\x82\x01R`\x84\x81\x01\x8A\x90R`\xA4\x01[` `@Q\x80\x83\x03\x81`\0\x87Z\xF1\x15\x80\x15a'\tW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a'-\x91\x90aY\xF0V[Pa\x12vV[`\x02\x89\x03a'_Ws\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16cR\xF0\xF3\xAD\x8A\x84\x89a&\x97V[`\x03\x89\x03a'\x8BWs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16cR\xF0\xF3\xAD\x8A\x84\x87a&\x97V[`\x04\x89\x03a(1W`@Q\x7FR\xF0\xF3\xAD\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\x81\x01\x8A\x90R`$\x81\x01\x83\x90R6\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`X\x015`\xC0\x1B`D\x82\x01R`\x08`d\x82\x01R`\x84\x81\x01\x88\x90Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16\x90cR\xF0\xF3\xAD\x90`\xA4\x01a&\xEAV[`@Q\x7F\xFF\x13~e\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\x01`@Q\x80\x91\x03\x90\xFD[6\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`T\x81\x015`\xE0\x1C\x90`\x14\x015``a(\xA4a\x15kV[\x90P\x90\x91\x92V[`\x02\x80\x82\x01Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x16`\0\x90\x81R` \x92\x90\x92R`@\x82 \x80To\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x92\x16\x92\x90\x91a(\xFB\x90\x84\x90aX\xCFV[\x90\x91UPPPPV[`@Q\x81\x81R6\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03\x82\x84\x82\x01` \x84\x017\x82` \x83\x01\x01`\0\x81R` \x81\x01`@RPP\x92\x91PPV[`\0\x80Tp\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16`\x02\x81\x11\x15a)\x82Wa)\x82aUqV[\x14a)\xB9W`@Q\x7Fg\xFE\x19P\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\x01`@Q\x80\x91\x03\x90\xFD[`\0`\x01\x84\x81T\x81\x10a)\xCEWa)\xCEaXqV[`\0\x91\x82R` \x91\x82\x90 `@\x80Q`\xE0\x81\x01\x82R`\x05\x90\x93\x02\x90\x91\x01\x80Tc\xFF\xFF\xFF\xFF\x81\x16\x84Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFFd\x01\0\0\0\0\x90\x91\x04\x81\x16\x94\x84\x01\x94\x90\x94R`\x01\x81\x01T\x90\x93\x16\x90\x82\x01R`\x02\x82\x01To\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x81\x16``\x83\x01R`\x03\x83\x01T`\x80\x83\x01\x81\x90R`\x04\x90\x93\x01T\x80\x82\x16`\xA0\x84\x01Rp\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04\x16`\xC0\x82\x01R\x91P\x85\x14a*\xB5W`@Q\x7F0\x14\x032\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\x01`@Q\x80\x91\x03\x90\xFD[`\xA0\x81\x01Q`\0\x83\x15o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x16\x17`\x01\x1B\x90P`\0a+u\x82o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1F\x7F\x07\xC4\xAC\xDD\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\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\xFF\x16\x90P\x86\x15\x80a+\xB0WPa+\xAD\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x02aX\xCFV[\x81\x14[\x80\x15a+\xBAWP\x84\x15[\x15a+\xF1W`@Q\x7F\xA4&7\xBC\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\x01`@Q\x80\x91\x03\x90\xFD[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81\x11\x15a,KW`@Q\x7FV\xF5{+\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\x01`@Q\x80\x91\x03\x90\xFD[a,v\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01aX\xCFV[\x81\x03a,\x88Wa,\x88\x86\x88\x85\x88aN\xCFV[4a,\x92\x83a!mV[\x14a,\xC9W`@Q\x7F\x86 \xAA\x19\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\x01`@Q\x80\x91\x03\x90\xFD[`\0a,\xD4\x88a\x1F\x8EV[\x90Pg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81\x16\x90\x82\x16\x03a-=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a.\x0E\x91\x90aY\xD3V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xF3\xF4\x80\xD9`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a.XW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a.|\x91\x90aY\xF0V[a.\xB0\x90\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16aZ\tV[\x90Pa/JV[a.\xE2`\x01\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0aY\x1FV[\x83\x03a/\x1DWa.\xB0\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\x02aZ5V[P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16[a/~\x81\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16aZeV[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a/\x99\x83g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90V[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x11\x15a/\xE0Wa/\xDD\x81\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16aZeV[\x91P[`\0`@\x83\x90\x1BB\x17`\0\x8A\x81R`\x80\x87\x90\x1Bo\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x8D\x16\x17` R`@\x81 \x91\x92P\x90`\0\x81\x81R`\x03` R`@\x90 T\x90\x91P`\xFF\x16\x15a0^W`@Q\x7F\x80I~;\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x03`\0\x83\x81R` \x01\x90\x81R` \x01`\0 `\0a\x01\0\n\x81T\x81`\xFF\x02\x19\x16\x90\x83\x15\x15\x02\x17\x90UP`\x01`@Q\x80`\xE0\x01`@R\x80\x8Dc\xFF\xFF\xFF\xFF\x16\x81R` \x01`\0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81R` \x013s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81R` \x014o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81R` \x01\x8C\x81R` \x01\x88o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81R` \x01\x84o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81RP\x90\x80`\x01\x81T\x01\x80\x82U\x80\x91PP`\x01\x90\x03\x90`\0R` `\0 \x90`\x05\x02\x01`\0\x90\x91\x90\x91\x90\x91P`\0\x82\x01Q\x81`\0\x01`\0a\x01\0\n\x81T\x81c\xFF\xFF\xFF\xFF\x02\x19\x16\x90\x83c\xFF\xFF\xFF\xFF\x16\x02\x17\x90UP` \x82\x01Q\x81`\0\x01`\x04a\x01\0\n\x81T\x81s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x02\x19\x16\x90\x83s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x02\x17\x90UP`@\x82\x01Q\x81`\x01\x01`\0a\x01\0\n\x81T\x81s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x02\x19\x16\x90\x83s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x02\x17\x90UP``\x82\x01Q\x81`\x02\x01`\0a\x01\0\n\x81T\x81o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x02\x19\x16\x90\x83o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x02\x17\x90UP`\x80\x82\x01Q\x81`\x03\x01U`\xA0\x82\x01Q\x81`\x04\x01`\0a\x01\0\n\x81T\x81o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x02\x19\x16\x90\x83o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x02\x17\x90UP`\xC0\x82\x01Q\x81`\x04\x01`\x10a\x01\0\n\x81T\x81o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x02\x19\x16\x90\x83o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x02\x17\x90UPPP`\x04`\0\x8C\x81R` \x01\x90\x81R` \x01`\0 `\x01\x80\x80T\x90Pa2\xF3\x91\x90aY\x1FV[\x81T`\x01\x81\x01\x83U`\0\x92\x83R` \x80\x84 \x90\x91\x01\x91\x90\x91U3\x82R`\n\x90R`@\x81 \x80T4\x92\x90a3'\x90\x84\x90aX\xCFV[\x90\x91UPP6\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`\xC0\x015``\x1Cs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xD0\xE3\r\xB04`@Q\x82c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01`\0`@Q\x80\x83\x03\x81\x85\x88\x80;\x15\x80\x15a3\xA4W`\0\x80\xFD[PZ\xF1\x15\x80\x15a3\xB8W=`\0\x80>=`\0\xFD[PP`@Q3\x93P\x8D\x92P\x8E\x91P\x7F\x9B2Et\x0E\xC3\xB1U\t\x8AU\xBE\x84\x95zM\xA1>\xAF\x7F\x14\xA8\xBCoS\x12l\x0B\x93P\xF2\xBE\x90`\0\x90\xA4PPPPPPPPPPPPV[`\0Tq\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16\x15a4LW`@Q\x7F\r\xC1I\xF0\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\x01`@Q\x80\x91\x03\x90\xFD[a4TaP\x89V[6\x14a4\x8CW`@Q\x7F\x98$\xBD\xAB\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\x01`@Q\x80\x91\x03\x90\xFD[`\0\x806\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`\xAC\x015``\x1Cs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xD8>\xF2g`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01`@\x80Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a5\tW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a5-\x91\x90aZ\x8EV[\x90\x92P\x90P\x81a5iW`@Q\x7Fjk\xC3\xB2\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\x01`@Q\x80\x91\x03\x90\xFD[\x7F\xFF\xD7\xDB\x0F\x9D\\\xDE\xB4\x9CL\x9E\xBAd\x9DM\xC6\xD8R\xD6Fq\xE6T\x88\xE5\x7FXXI\x92\xACha5\xBE6\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`\x14\x015\x90V[\x03a5\xF5W`@Q\x7F,\xFA\xC0\x82\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\x01`@Q\x80\x91\x03\x90\xFD[`@\x80Q\x80\x82\x01\x90\x91R\x82\x81R` \x01\x81\x90R`\x07\x82\x90U`\x08\x81\x90Ug\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF6\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`\x98\x015``\x1Cs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c}\xC0\xD1\xD0`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a6\x96W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a6\xBA\x91\x90aY\xD3V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xF3\xF4\x80\xD9`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a7\x04W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a7(\x91\x90aY\xF0V[\x11\x15a7`W`@Q\x7F\xB4\xE1$3\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\x01`@Q\x80\x91\x03\x90\xFD[`\0a7\x97\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\x02aY\x96V[\x90P`\x006\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`\x98\x015``\x1Cs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c}\xC0\xD1\xD0`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a8\x16W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a8:\x91\x90aY\xD3V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xF3\xF4\x80\xD9`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a8\x84W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a8\xA8\x91\x90aY\xF0V[a8\xDC\x90\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16aX\xCFV[\x90P`\0a8\xEA\x83\x83aP\x9EV[\x90Pg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a9.W`@Q\x7F\x8Dw\xEC\xAC\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\x01`@Q\x80\x91\x03\x90\xFD[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x11\x15a9\xA6W`@Q\x7F\x8Dw\xEC\xAC\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\x01`@Q\x80\x91\x03\x90\xFD[6\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`\xD4\x015\x15a:\x0BW`@Q\x7F\"=\xB3\x94\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\x01`@Q\x80\x91\x03\x90\xFD[\x836\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`X\x015\x11a:\xA5W`@Q\x7F\xF4\x029\xDB\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\x81R6\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`\x14\x015`\x04\x82\x01R`$\x01[`@Q\x80\x91\x03\x90\xFD[`@\x80Q`\xE0\x81\x01\x82Rc\xFF\xFF\xFF\xFF\x80\x82R`\0` \x80\x84\x01\x82\x81R6\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03\x805``\x90\x81\x1C\x87\x89\x01\x81\x81Ro\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF4\x81\x81\x16\x94\x8B\x01\x94\x85R`\x14\x90\x95\x015`\x80\x8B\x01\x90\x81R`\x01`\xA0\x8C\x01\x81\x81RB\x84\x16`\xC0\x8E\x01\x90\x81R\x82T\x80\x84\x01\x84U\x92\x8CR\x9CQ\x7F\xB1\x0E-Rv\x12\x07;&\xEE\xCD\xFDq~j2\x0C\xF4KJ\xFA\xC2\xB0s-\x9F\xCB\xE2\xB7\xFA\x0C\xF6`\x05\x90\x93\x02\x92\x83\x01\x80T\x9AQ\x91\x90\x9D\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x9A\x16\x99\x90\x99\x17d\x01\0\0\0\0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x9A\x8B\x16\x02\x17\x90\x9BU\x92Q\x7F\xB1\x0E-Rv\x12\x07;&\xEE\xCD\xFDq~j2\x0C\xF4KJ\xFA\xC2\xB0s-\x9F\xCB\xE2\xB7\xFA\x0C\xF7\x84\x01\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x91\x90\x98\x16\x17\x90\x96U\x92Q\x7F\xB1\x0E-Rv\x12\x07;&\xEE\xCD\xFDq~j2\x0C\xF4KJ\xFA\xC2\xB0s-\x9F\xCB\xE2\xB7\xFA\x0C\xF8\x82\x01\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x91\x85\x16\x91\x90\x91\x17\x90U\x93Q\x7F\xB1\x0E-Rv\x12\x07;&\xEE\xCD\xFDq~j2\x0C\xF4KJ\xFA\xC2\xB0s-\x9F\xCB\xE2\xB7\xFA\x0C\xF9\x85\x01U\x95Q\x96Q\x96\x81\x16p\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x97\x90\x91\x16\x96\x90\x96\x02\x95\x90\x95\x17\x7F\xB1\x0E-Rv\x12\x07;&\xEE\xCD\xFDq~j2\x0C\xF4KJ\xFA\xC2\xB0s-\x9F\xCB\xE2\xB7\xFA\x0C\xFA\x90\x91\x01U\x81Tq\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x17\x82U\x91\x81R`\n\x90\x91R\x91\x82 \x80T\x91\x92\x90\x91a=&\x90\x84\x90aX\xCFV[\x90\x91UPP6\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`\xC0\x015``\x1Cs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xD0\xE3\r\xB04`@Q\x82c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01`\0`@Q\x80\x83\x03\x81\x85\x88\x80;\x15\x80\x15a=\xA3W`\0\x80\xFD[PZ\xF1\x15\x80\x15a=\xB7W=`\0\x80>=`\0\xFD[PP`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\x16Bg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x17\x90UPa=\xFA\x91Pa\x1FZ\x90PV[c\xFF\xFF\xFF\xFF\x166\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`\xAC\x015``\x1Cs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c<\x9F9|`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a>{W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a>\x9F\x91\x90aZ\xB2V[`\t\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x16c\xFF\xFF\xFF\xFF\x92\x90\x92\x16\x92\x90\x92\x14\x17\x90UPPPPPV[o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11`\x07\x1B\x81\x81\x1Cg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x10`\x06\x1B\x17\x81\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x81\x81\x1Ca\xFF\xFF\x10`\x04\x1B\x17\x81\x81\x1C`\xFF\x10`\x03\x1B\x17`\0\x82\x13a?;Wc\x16\x15\xE68`\0R`\x04`\x1C\xFD[\x7F\xF8\xF9\xF9\xFA\xF9\xFD\xFA\xFB\xF9\xFD\xFC\xFD\xFA\xFB\xFC\xFE\xF9\xFA\xFD\xFA\xFC\xFC\xFB\xFE\xFA\xFA\xFC\xFB\xFF\xFF\xFF\xFFo\x84!\x08B\x10\x84!\x08\xCCc\x18\xC6\xDBmT\xBE\x83\x83\x1C\x1C`\x1F\x16\x1A\x18\x90\x81\x1B`\x9F\x90\x81\x1ClFWr\xB2\xBB\xBB_\x82K\x15 z0\x81\x01\x81\x02``\x90\x81\x1Dm\x03\x88\xEA\xA2t\x12\xD5\xAC\xA0&\x81]cn\x01\x82\x02\x81\x1Dm\r\xF9\x9A\xC5\x02\x03\x1B\xF9S\xEF\xF4r\xFD\xCC\x01\x82\x02\x81\x1Dm\x13\xCD\xFF\xB2\x9DQ\xD9\x93\"\xBD\xFF_\"\x11\x01\x82\x02\x81\x1Dm\n\x0Ft #\xDE\xF7\x83\xA3\x07\xA9\x86\x91.\x01\x82\x02\x81\x1Dm\x01\x92\r\x80C\xCA\x89\xB5#\x92S(NB\x01\x82\x02\x81\x1Dl\x0Bz\x86\xD77Th\xFA\xC6g\xA0\xA5'\x01l)P\x8EE\x85C\xD8\xAAM\xF2\xAB\xEEx\x83\x01\x83\x02\x82\x1Dm\x019`\x1A.\xFA\xBEq~`L\xBBH\x94\x01\x83\x02\x82\x1Dm\x02$\x7Fz{e\x942\x06I\xAA\x03\xAB\xA1\x01\x83\x02\x82\x1D\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFFs\xC0\xC7\x16\xA5\x94\xE0\rT\xE3\xC4\xCB\xC9\x01\x83\x02\x82\x1D\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFD\xC7\xB8\x8CB\x0ES\xA9\x89\x053\x12\x9Fo\x01\x83\x02\x90\x91\x1D\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFFF_\xDA'\xEBMc\xDE\xD4t\xE5\xF82\x01\x90\x91\x02\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF5\xF6\xAF\x8F{3\x96dO\x18\xE1W\x96\0\0\0\0\0\0\0\0\0\0\0\0\x01\x05q\x13@\xDA\xA0\xD5\xF7i\xDB\xA1\x91\\\xEFY\xF0\x81ZU\x06\x02\x91\x90\x03}\x02g\xA3l\x0C\x95\xB3\x97Z\xB3\xEE[ :v\x14\xA3\xF7Ss\xF0G\xD8\x03\xAE{f\x87\xF2\xB3\x02\x01}W\x11^G\x01\x8Cqw\xEE\xBF|\xD3p\xA35j\x1Bxc\0\x8AZ\xE8\x02\x8Cr\xB8\x86B\x84\x01`\xAE\x1D\x90V[`\0x\x12r]\xD1\xD2C\xAB\xA0\xE7_\xE6E\xCCHs\xF9\xE6Z\xFEh\x8C\x92\x8E\x1F!\x83\x11g\r\xE0\xB6\xB3\xA7d\0\0\x02\x15\x82\x02aAtWc|_H}`\0R`\x04`\x1C\xFD[Pg\r\xE0\xB6\xB3\xA7d\0\0\x91\x90\x91\x02\x04\x90V[`\0\x81`\0\x19\x04\x83\x11\x82\x02\x15aA\xA4Wc\xBA\xC6^[`\0R`\x04`\x1C\xFD[Pg\r\xE0\xB6\xB3\xA7d\0\0\x91\x02\x04\x90V[`\0\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFD\xC0\xD0W\t%\xA4b\xD7\x82\x13aA\xE2W\x91\x90PV[h\x07U\xBFy\x8BJ\x1B\xF1\xE5\x82\x12aB\0Wc\xA3{\xFE\xC9`\0R`\x04`\x1C\xFD[e\x03x-\xAC\xE9\xD9`N\x83\x90\x1B\x05\x91P`\0``k\xB1r\x17\xF7\xD1\xCFy\xAB\xC9\xE3\xB3\x98\x84\x82\x1B\x05k\x80\0\0\0\0\0\0\0\0\0\0\0\x01\x90\x1Dk\xB1r\x17\xF7\xD1\xCFy\xAB\xC9\xE3\xB3\x98\x81\x02\x90\x93\x03\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xDB\xF3\xCC\xF1`M&4P\xF0*U\x04\x81\x01\x81\x02``\x90\x81\x1Dm\x02wYI\x91\xCF\xC8_n$a\x83|\xD9\x01\x82\x02\x81\x1D\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE5\xAD\xED\xAA\x1C\xB0\x95\xAF\x9EM\xA1\x0E6<\x01\x82\x02\x81\x1Dm\xB1\xBB\xB2\x01\xF4C\xCF\x96/\x1A\x1D=\xB4\xA5\x01\x82\x02\x81\x1D\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFD8\xDCw&\x08\xB0\xAEV\xCC\xE0\x12\x96\xC0\xEB\x01\x82\x02\x81\x1Dn\x05\x18\x0B\xB1G\x99\xABG\xA8\xA8\xCB*R}W\x01m\x02\xD1g W{\xD1\x9B\xF6\x14\x17o\xE9\xEAl\x10\xFEh\xE7\xFD7\xD0\0{q?vP\x84\x01\x84\x02\x83\x1D\x90\x81\x01\x90\x84\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE,i\x81,\xF0;\x07c\xFDEJ\x8F~\x01\x02\x90\x91\x1Dn\x05\x87\xF5\x03\xBBn\xA2\x9D%\xFC\xB7@\x19dP\x01\x90\x91\x02y\xD85\xEB\xBA\x82L\x98\xFB1\xB8;,\xA4\\\0\0\0\0\0\0\0\0\0\0\0\0\x01\x05t\x02\x9D\x9D\xC3\x85c\xC3.\\/m\xC1\x92\xEEp\xEFe\xF9\x97\x8A\xF3\x02`\xC3\x93\x90\x93\x03\x92\x90\x92\x1C\x92\x91PPV[`\0aC\xCDg\r\xE0\xB6\xB3\xA7d\0\0\x83aC\xB4\x86a>\xDCV[aC\xBE\x91\x90aZ\xD8V[aC\xC8\x91\x90a[\x94V[aA\xB4V[\x90P[\x92\x91PPV[`\0\x80Tp\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16`\x02\x81\x11\x15aD\x02WaD\x02aUqV[\x14aD9W`@Q\x7Fg\xFE\x19P\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\x01`@Q\x80\x91\x03\x90\xFD[`\0`\x01\x87\x81T\x81\x10aDNWaDNaXqV[`\0\x91\x82R` \x82 `\x05\x91\x90\x91\x02\x01`\x04\x81\x01T\x90\x92Po\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90\x87\x15\x82\x17`\x01\x1B\x90PaD\xAD\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01aX\xCFV[aEI\x82o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1F\x7F\x07\xC4\xAC\xDD\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\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\xFF\x16\x14aE\x83W`@Q\x7F_S\xDD\x98\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\x01`@Q\x80\x91\x03\x90\xFD[`\0\x80\x89\x15aF\x87WaE\xD6\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0aY\x1FV[`\x01\x90\x1BaE\xF5\x84o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16aP\xB5V[o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16aF\x11\x91\x90a[\xFCV[\x15aFNWaFEaF6`\x01o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x16a\\\x10V[\x86Tc\xFF\xFF\xFF\xFF\x16`\0aQTV[`\x03\x01TaF}V[6\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`x\x015[\x91P\x84\x90PaF\xB1V[`\x03\x85\x01T\x91PaF\xAEaF6o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x86\x16`\x01a\\9V[\x90P[`\x08\x82\x90\x1B`\x08\x8A\x8A`@QaF\xC8\x92\x91\x90a\\dV[`@Q\x80\x91\x03\x90 \x90\x1B\x14aG\tW`@Q\x7FieP\xFF\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\x01`@Q\x80\x91\x03\x90\xFD[`\0aG\x14\x8CaR8V[\x90P`\0aG#\x83`\x03\x01T\x90V[`@Q\x7F\xE1L\xED2\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\x81R6\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE\x81\x015`\xF0\x1C\x90\x03`\x98\x015``\x1C\x90c\xE1L\xED2\x90aG\x97\x90\x8F\x90\x8F\x90\x8F\x90\x8F\x90\x8A\x90`\x04\x01a\\\xBDV[` `@Q\x80\x83\x03\x81`\0\x87Z\xF1\x15\x80\x15aG\xB6W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90aG\xDA\x91\x90aY\xF0V[`\x04\x85\x01T\x91\x14\x91P`\0\x90`\x02\x90aH\x85\x90o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1F\x7F\x07\xC4\xAC\xDD\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\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[aI!\x89o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1F\x7F\x07\xC4\xAC\xDD\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\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[aI+\x91\x90a\\\xF7V[aI5\x91\x90a]\x1AV[`\xFF\x16\x15\x90P\x81\x15\x15\x81\x03aIvW`@Q\x7F\xFBN@\xDD\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\x01`@Q\x80\x91\x03\x90\xFD[\x87Td\x01\0\0\0\0\x90\x04s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x15aI\xCDW`@Q\x7F\x90q\xE6\xAF\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\x01`@Q\x80\x91\x03\x90\xFD[PP\x85T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xFF\xFF\xFF\xFF\x163d\x01\0\0\0\0\x02\x17\x90\x95UPPPPPPPPPPPV[`\0\x80`\0\x80`\0\x85\x90P`\0`\x01\x82\x81T\x81\x10aJ,WaJ,aXqV[`\0\x91\x82R` \x90\x91 `\x04`\x05\x90\x92\x02\x01\x90\x81\x01T\x90\x91P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90aK\x03\x90o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1F\x7F\x07\xC4\xAC\xDD\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\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\xFF\x16\x11aK=W`@Q\x7F\xB3K\\\"\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\x01`@Q\x80\x91\x03\x90\xFD[`\0\x81[`\x04\x83\x01T\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90aL\x04\x90o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1F\x7F\x07\xC4\xAC\xDD\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\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\xFF\x16\x92P\x82\x11\x15aLyW\x82Tc\xFF\xFF\xFF\xFF\x16aLC\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01aX\xCFV[\x83\x03aLMW\x83\x91P[`\x01\x81\x81T\x81\x10aL`WaL`aXqV[\x90`\0R` `\0 \x90`\x05\x02\x01\x93P\x80\x94PPaKAV[`\x04\x81\x81\x01T\x90\x84\x01To\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x91\x82\x16\x91\x16`\0\x81o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16aL\xE2aL\xCD\x85o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\x01\x1C\x90V[o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90V[o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14\x90P\x80\x15aM\xB1W`\0aM\x1A\x83o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16aP\xB5V[o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x11\x15aM\x85W`\0aM\\aMT`\x01o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x86\x16a\\\x10V[\x89`\x01aQTV[`\x03\x81\x01T`\x04\x90\x91\x01T\x90\x9CPo\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x9APaM\x8B\x90PV[`\x07T\x9AP[`\x03\x86\x01T`\x04\x87\x01T\x90\x99Po\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x97PaN\x07V[`\0aM\xD3aMTo\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x85\x16`\x01a\\9V[`\x03\x80\x89\x01T`\x04\x80\x8B\x01T\x92\x84\x01T\x93\x01T\x90\x9EPo\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x91\x82\x16\x9DP\x91\x9BP\x16\x98PP[PPPPPPP\x91\x93P\x91\x93V[`\0o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x16\x15aN\x82W`@\x80Q` \x81\x01\x87\x90Ro\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x87\x16\x92\x82\x01\x92\x90\x92R``\x81\x01\x85\x90R\x90\x83\x16`\x80\x82\x01R`\xA0\x01`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 a\x15bV[\x82\x82`@Q` \x01aN\xB0\x92\x91\x90\x91\x82Ro\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16` \x82\x01R`@\x01\x90V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 \x95\x94PPPPPV[`\0aN\xEEo\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x16`\x01a\\9V[\x90P`\0aN\xFE\x82\x86`\x01aQTV[\x90P`\0\x86\x90\x1A\x83\x80aO\xEAWPaO7`\x02\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a[\xFCV[`\x04\x83\x01T`\x02\x90aO\xDB\x90o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1F\x7F\x07\xC4\xAC\xDD\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\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[aO\xE5\x91\x90a]\x1AV[`\xFF\x16\x14[\x15aPBW`\xFF\x81\x16`\x01\x14\x80aP\x04WP`\xFF\x81\x16`\x02\x14[aP=W`@Q\x7F\xF4\x029\xDB\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\x81\x01\x88\x90R`$\x01a:\x9CV[aP\x80V[`\xFF\x81\x16\x15aP\x80W`@Q\x7F\xF4\x029\xDB\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\x81\x01\x88\x90R`$\x01a:\x9CV[PPPPPPPV[`\0aP\x93aRgV[a\x14\xD7\x90`\x06aX\xCFV[`\0\x81\x83\x10\x15aP\xAEW\x81aC\xCDV[P\x90\x91\x90PV[`\0\x80aQB\x83~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1F\x7F\x07\xC4\xAC\xDD\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\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\x01`\xFF\x91\x90\x91\x16\x1B\x90\x92\x03\x92\x91PPV[`\0\x80\x82aQ\x9DWaQ\x98o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x86\x16\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0aRuV[aQ\xB8V[aQ\xB8\x85o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16aT\x01V[\x90P`\x01\x84\x81T\x81\x10aQ\xCDWaQ\xCDaXqV[\x90`\0R` `\0 \x90`\x05\x02\x01\x91P[`\x04\x82\x01To\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x81\x16\x91\x16\x14aR0W\x81T`\x01\x80T\x90\x91c\xFF\xFF\xFF\xFF\x16\x90\x81\x10aR\x1BWaR\x1BaXqV[\x90`\0R` `\0 \x90`\x05\x02\x01\x91PaQ\xDEV[P\x93\x92PPPV[`\0\x80`\0\x80`\0aRI\x86aJ\x0CV[\x93P\x93P\x93P\x93PaR]\x84\x84\x84\x84aN\x15V[\x96\x95PPPPPPV[`\0a\x14\xD7`\xF4`(aX\xCFV[`\0\x81aS\x14\x84o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1F\x7F\x07\xC4\xAC\xDD\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\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\xFF\x16\x11aS*Wc\xB3K\\\"`\0R`\x04`\x1C\xFD[aS3\x83aT\x01V[\x90P\x81aS\xD2\x82o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1F\x7F\x07\xC4\xAC\xDD\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\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\xFF\x16\x11aC\xD0WaC\xCDaS\xE8\x83`\x01aX\xCFV[o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x16\x90aT\xA6V[`\0\x81\x19`\x01\x83\x01\x16\x81aT\x95\x82~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1F\x7F\x07\xC4\xAC\xDD\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\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\xFF\x16\x93\x90\x93\x1C\x80\x15\x17\x93\x92PPPV[`\0\x80aU3\x84~\t\x01\n\r\x15\x02\x1D\x0B\x0E\x10\x12\x16\x19\x03\x1E\x08\x0C\x14\x1C\x0F\x11\x18\x07\x13\x1B\x17\x06\x1A\x05\x04\x1F\x7F\x07\xC4\xAC\xDD\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\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11`\x06\x1B\x83\x81\x1Cc\xFF\xFF\xFF\xFF\x10`\x05\x1B\x17\x92\x83\x1C`\x01\x81\x90\x1C\x17`\x02\x81\x90\x1C\x17`\x04\x81\x90\x1C\x17`\x08\x81\x90\x1C\x17`\x10\x81\x90\x1C\x17\x02`\xFB\x1C\x1A\x17\x90V[`\xFF\x16\x90P\x80\x83\x03`\x01\x80\x82\x1B\x03\x85\x82\x1B\x17\x92PPP\x92\x91PPV[`\0\x80`@\x83\x85\x03\x12\x15aUbW`\0\x80\xFD[PP\x805\x92` \x90\x91\x015\x91PV[\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`!`\x04R`$`\0\xFD[`\x03\x81\x10aU\xD7W\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`!`\x04R`$`\0\xFD[PV[` \x81\x01aU\xE7\x83aU\xA0V[\x91\x90R\x90V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14aU\xD7W`\0\x80\xFD[`\0` \x82\x84\x03\x12\x15aV!W`\0\x80\xFD[\x815aV,\x81aU\xEDV[\x93\x92PPPV[`\0\x80`\0``\x84\x86\x03\x12\x15aVHW`\0\x80\xFD[PP\x815\x93` \x83\x015\x93P`@\x90\x92\x015\x91\x90PV[`\0\x81Q\x80\x84R`\0[\x81\x81\x10\x15aV\x85W` \x81\x85\x01\x81\x01Q\x86\x83\x01\x82\x01R\x01aViV[\x81\x81\x11\x15aV\x97W`\0` \x83\x87\x01\x01R[P`\x1F\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x92\x90\x92\x01` \x01\x92\x91PPV[` \x81R`\0aC\xCD` \x83\x01\x84aV_V[`\0` \x82\x84\x03\x12\x15aV\xEFW`\0\x80\xFD[P5\x91\x90PV[\x80\x15\x15\x81\x14aU\xD7W`\0\x80\xFD[`\0\x80`\0\x80`\x80\x85\x87\x03\x12\x15aW\x1AW`\0\x80\xFD[\x845\x93P` \x85\x015\x92P`@\x85\x015\x91P``\x85\x015aW:\x81aV\xF6V[\x93\x96\x92\x95P\x90\x93PPV[`\0` \x82\x84\x03\x12\x15aWWW`\0\x80\xFD[\x815o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14aV,W`\0\x80\xFD[`\0\x80\x83`\x1F\x84\x01\x12aW\x89W`\0\x80\xFD[P\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15aW\xA1W`\0\x80\xFD[` \x83\x01\x91P\x83` \x82\x85\x01\x01\x11\x15aW\xB9W`\0\x80\xFD[\x92P\x92\x90PV[`\0\x80`\0\x80`\0\x80`\x80\x87\x89\x03\x12\x15aW\xD9W`\0\x80\xFD[\x865\x95P` \x87\x015aW\xEB\x81aV\xF6V[\x94P`@\x87\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15aX\x08W`\0\x80\xFD[aX\x14\x8A\x83\x8B\x01aWwV[\x90\x96P\x94P``\x89\x015\x91P\x80\x82\x11\x15aX-W`\0\x80\xFD[PaX:\x89\x82\x8A\x01aWwV[\x97\x9A\x96\x99P\x94\x97P\x92\x95\x93\x94\x92PPPV[c\xFF\xFF\xFF\xFF\x84\x16\x81R\x82` \x82\x01R```@\x82\x01R`\0a\x15b``\x83\x01\x84aV_V[\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`2`\x04R`$`\0\xFD[\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`\x11`\x04R`$`\0\xFD[`\0\x82\x19\x82\x11\x15aX\xE2WaX\xE2aX\xA0V[P\x01\x90V[`\0\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x03aY\x18WaY\x18aX\xA0V[P`\x01\x01\x90V[`\0\x82\x82\x10\x15aY1WaY1aX\xA0V[P\x03\x90V[`\0` \x82\x84\x03\x12\x15aYHW`\0\x80\xFD[\x81QaV,\x81aV\xF6V[\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`\x12`\x04R`$`\0\xFD[`\0\x82aY\x91WaY\x91aYSV[P\x04\x90V[`\0\x81\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x04\x83\x11\x82\x15\x15\x16\x15aY\xCEWaY\xCEaX\xA0V[P\x02\x90V[`\0` \x82\x84\x03\x12\x15aY\xE5W`\0\x80\xFD[\x81QaV,\x81aU\xEDV[`\0` \x82\x84\x03\x12\x15aZ\x02W`\0\x80\xFD[PQ\x91\x90PV[`\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x83\x16\x81\x85\x16\x80\x83\x03\x82\x11\x15aZ,WaZ,aX\xA0V[\x01\x94\x93PPPPV[`\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x83\x16\x81\x85\x16\x81\x83\x04\x81\x11\x82\x15\x15\x16\x15aZ\\WaZ\\aX\xA0V[\x02\x94\x93PPPPV[`\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x81\x16\x90\x83\x16\x81\x81\x10\x15aZ\x86WaZ\x86aX\xA0V[\x03\x93\x92PPPV[`\0\x80`@\x83\x85\x03\x12\x15aZ\xA1W`\0\x80\xFD[PP\x80Q` \x90\x91\x01Q\x90\x92\x90\x91PV[`\0` \x82\x84\x03\x12\x15aZ\xC4W`\0\x80\xFD[\x81Qc\xFF\xFF\xFF\xFF\x81\x16\x81\x14aV,W`\0\x80\xFD[`\0\x7F\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF`\0\x84\x13`\0\x84\x13\x85\x83\x04\x85\x11\x82\x82\x16\x16\x15a[\x19Wa[\x19aX\xA0V[\x7F\x80\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\0\x87\x12\x86\x82\x05\x88\x12\x81\x84\x16\x16\x15a[TWa[TaX\xA0V[`\0\x87\x12\x92P\x87\x82\x05\x87\x12\x84\x84\x16\x16\x15a[pWa[paX\xA0V[\x87\x85\x05\x87\x12\x81\x84\x16\x16\x15a[\x86Wa[\x86aX\xA0V[PPP\x92\x90\x93\x02\x93\x92PPPV[`\0\x82a[\xA3Wa[\xA3aYSV[\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x14\x7F\x80\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x83\x14\x16\x15a[\xF7Wa[\xF7aX\xA0V[P\x05\x90V[`\0\x82a\\\x0BWa\\\x0BaYSV[P\x06\x90V[`\0o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x81\x16\x90\x83\x16\x81\x81\x10\x15aZ\x86WaZ\x86aX\xA0V[`\0o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x83\x16\x81\x85\x16\x80\x83\x03\x82\x11\x15aZ,WaZ,aX\xA0V[\x81\x83\x827`\0\x91\x01\x90\x81R\x91\x90PV[\x81\x83R\x81\x81` \x85\x017P`\0` \x82\x84\x01\x01R`\0` \x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0`\x1F\x84\x01\x16\x84\x01\x01\x90P\x92\x91PPV[``\x81R`\0a\\\xD1``\x83\x01\x87\x89a\\tV[\x82\x81\x03` \x84\x01Ra\\\xE4\x81\x86\x88a\\tV[\x91PP\x82`@\x83\x01R\x96\x95PPPPPPV[`\0`\xFF\x82\x16`\xFF\x84\x16\x80\x82\x10\x15a]\x11Wa]\x11aX\xA0V[\x90\x03\x93\x92PPPV[`\0`\xFF\x83\x16\x80a]-Wa]-aYSV[\x80`\xFF\x84\x16\x06\x91PP\x92\x91PPV\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct BondDistributionMode(u8); + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for u8 { + #[inline] + fn stv_to_tokens( + &self, + ) -> as alloy_sol_types::SolType>::Token<'_> { + alloy_sol_types::private::SolTypeValue::< + alloy::sol_types::sol_data::Uint<8>, + >::stv_to_tokens(self) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + as alloy_sol_types::SolType>::tokenize(self) + .0 + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::SolType>::abi_encode_packed_to(self, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + as alloy_sol_types::SolType>::abi_encoded_size(self) + } + } + impl BondDistributionMode { + /// The Solidity type name. + pub const NAME: &'static str = stringify!(@ name); + /// Convert from the underlying value type. + #[inline] + pub const fn from_underlying(value: u8) -> Self { + Self(value) + } + /// Return the underlying value. + #[inline] + pub const fn into_underlying(self) -> u8 { + self.0 + } + /// Return the single encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode(&self) -> alloy_sol_types::private::Vec { + ::abi_encode(&self.0) + } + /// Return the packed encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec { + ::abi_encode_packed(&self.0) + } + } + #[automatically_derived] + impl From for BondDistributionMode { + fn from(value: u8) -> Self { + Self::from_underlying(value) + } + } + #[automatically_derived] + impl From for u8 { + fn from(value: BondDistributionMode) -> Self { + value.into_underlying() + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for BondDistributionMode { + type RustType = u8; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = Self::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + Self::type_check(token).is_ok() + } + #[inline] + fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> { + as alloy_sol_types::SolType>::type_check(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + as alloy_sol_types::SolType>::detokenize(token) + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for BondDistributionMode { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + as alloy_sol_types::EventTopic>::topic_preimage_length(rust) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out) + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + as alloy_sol_types::EventTopic>::encode_topic(rust) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct GameStatus(u8); + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for u8 { + #[inline] + fn stv_to_tokens( + &self, + ) -> as alloy_sol_types::SolType>::Token<'_> { + alloy_sol_types::private::SolTypeValue::< + alloy::sol_types::sol_data::Uint<8>, + >::stv_to_tokens(self) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + as alloy_sol_types::SolType>::tokenize(self) + .0 + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::SolType>::abi_encode_packed_to(self, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + as alloy_sol_types::SolType>::abi_encoded_size(self) + } + } + impl GameStatus { + /// The Solidity type name. + pub const NAME: &'static str = stringify!(@ name); + /// Convert from the underlying value type. + #[inline] + pub const fn from_underlying(value: u8) -> Self { + Self(value) + } + /// Return the underlying value. + #[inline] + pub const fn into_underlying(self) -> u8 { + self.0 + } + /// Return the single encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode(&self) -> alloy_sol_types::private::Vec { + ::abi_encode(&self.0) + } + /// Return the packed encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec { + ::abi_encode_packed(&self.0) + } + } + #[automatically_derived] + impl From for GameStatus { + fn from(value: u8) -> Self { + Self::from_underlying(value) + } + } + #[automatically_derived] + impl From for u8 { + fn from(value: GameStatus) -> Self { + value.into_underlying() + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for GameStatus { + type RustType = u8; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = Self::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + Self::type_check(token).is_ok() + } + #[inline] + fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> { + as alloy_sol_types::SolType>::type_check(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + as alloy_sol_types::SolType>::detokenize(token) + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for GameStatus { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + as alloy_sol_types::EventTopic>::topic_preimage_length(rust) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out) + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + as alloy_sol_types::EventTopic>::encode_topic(rust) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct Claim(alloy::sol_types::private::FixedBytes<32>); + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue + for alloy::sol_types::private::FixedBytes<32> { + #[inline] + fn stv_to_tokens( + &self, + ) -> as alloy_sol_types::SolType>::Token<'_> { + alloy_sol_types::private::SolTypeValue::< + alloy::sol_types::sol_data::FixedBytes<32>, + >::stv_to_tokens(self) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + as alloy_sol_types::SolType>::tokenize(self) + .0 + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::SolType>::abi_encode_packed_to(self, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + as alloy_sol_types::SolType>::abi_encoded_size(self) + } + } + impl Claim { + /// The Solidity type name. + pub const NAME: &'static str = stringify!(@ name); + /// Convert from the underlying value type. + #[inline] + pub const fn from_underlying( + value: alloy::sol_types::private::FixedBytes<32>, + ) -> Self { + Self(value) + } + /// Return the underlying value. + #[inline] + pub const fn into_underlying( + self, + ) -> alloy::sol_types::private::FixedBytes<32> { + self.0 + } + /// Return the single encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode(&self) -> alloy_sol_types::private::Vec { + ::abi_encode(&self.0) + } + /// Return the packed encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec { + ::abi_encode_packed(&self.0) + } + } + #[automatically_derived] + impl From> for Claim { + fn from(value: alloy::sol_types::private::FixedBytes<32>) -> Self { + Self::from_underlying(value) + } + } + #[automatically_derived] + impl From for alloy::sol_types::private::FixedBytes<32> { + fn from(value: Claim) -> Self { + value.into_underlying() + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for Claim { + type RustType = alloy::sol_types::private::FixedBytes<32>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = Self::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + Self::type_check(token).is_ok() + } + #[inline] + fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> { + as alloy_sol_types::SolType>::type_check(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + as alloy_sol_types::SolType>::detokenize(token) + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for Claim { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + as alloy_sol_types::EventTopic>::topic_preimage_length(rust) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out) + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + as alloy_sol_types::EventTopic>::encode_topic(rust) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct Clock(u128); + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for u128 { + #[inline] + fn stv_to_tokens( + &self, + ) -> as alloy_sol_types::SolType>::Token<'_> { + alloy_sol_types::private::SolTypeValue::< + alloy::sol_types::sol_data::Uint<128>, + >::stv_to_tokens(self) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + as alloy_sol_types::SolType>::tokenize(self) + .0 + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::SolType>::abi_encode_packed_to(self, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + as alloy_sol_types::SolType>::abi_encoded_size(self) + } + } + impl Clock { + /// The Solidity type name. + pub const NAME: &'static str = stringify!(@ name); + /// Convert from the underlying value type. + #[inline] + pub const fn from_underlying(value: u128) -> Self { + Self(value) + } + /// Return the underlying value. + #[inline] + pub const fn into_underlying(self) -> u128 { + self.0 + } + /// Return the single encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode(&self) -> alloy_sol_types::private::Vec { + ::abi_encode(&self.0) + } + /// Return the packed encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec { + ::abi_encode_packed(&self.0) + } + } + #[automatically_derived] + impl From for Clock { + fn from(value: u128) -> Self { + Self::from_underlying(value) + } + } + #[automatically_derived] + impl From for u128 { + fn from(value: Clock) -> Self { + value.into_underlying() + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for Clock { + type RustType = u128; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = Self::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + Self::type_check(token).is_ok() + } + #[inline] + fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> { + as alloy_sol_types::SolType>::type_check(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + as alloy_sol_types::SolType>::detokenize(token) + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for Clock { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + as alloy_sol_types::EventTopic>::topic_preimage_length(rust) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out) + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + as alloy_sol_types::EventTopic>::encode_topic(rust) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct Duration(u64); + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for u64 { + #[inline] + fn stv_to_tokens( + &self, + ) -> as alloy_sol_types::SolType>::Token<'_> { + alloy_sol_types::private::SolTypeValue::< + alloy::sol_types::sol_data::Uint<64>, + >::stv_to_tokens(self) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + as alloy_sol_types::SolType>::tokenize(self) + .0 + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::SolType>::abi_encode_packed_to(self, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + as alloy_sol_types::SolType>::abi_encoded_size(self) + } + } + impl Duration { + /// The Solidity type name. + pub const NAME: &'static str = stringify!(@ name); + /// Convert from the underlying value type. + #[inline] + pub const fn from_underlying(value: u64) -> Self { + Self(value) + } + /// Return the underlying value. + #[inline] + pub const fn into_underlying(self) -> u64 { + self.0 + } + /// Return the single encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode(&self) -> alloy_sol_types::private::Vec { + ::abi_encode(&self.0) + } + /// Return the packed encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec { + ::abi_encode_packed(&self.0) + } + } + #[automatically_derived] + impl From for Duration { + fn from(value: u64) -> Self { + Self::from_underlying(value) + } + } + #[automatically_derived] + impl From for u64 { + fn from(value: Duration) -> Self { + value.into_underlying() + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for Duration { + type RustType = u64; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = Self::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + Self::type_check(token).is_ok() + } + #[inline] + fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> { + as alloy_sol_types::SolType>::type_check(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + as alloy_sol_types::SolType>::detokenize(token) + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for Duration { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + as alloy_sol_types::EventTopic>::topic_preimage_length(rust) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out) + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + as alloy_sol_types::EventTopic>::encode_topic(rust) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct GameType(u32); + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for u32 { + #[inline] + fn stv_to_tokens( + &self, + ) -> as alloy_sol_types::SolType>::Token<'_> { + alloy_sol_types::private::SolTypeValue::< + alloy::sol_types::sol_data::Uint<32>, + >::stv_to_tokens(self) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + as alloy_sol_types::SolType>::tokenize(self) + .0 + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::SolType>::abi_encode_packed_to(self, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + as alloy_sol_types::SolType>::abi_encoded_size(self) + } + } + impl GameType { + /// The Solidity type name. + pub const NAME: &'static str = stringify!(@ name); + /// Convert from the underlying value type. + #[inline] + pub const fn from_underlying(value: u32) -> Self { + Self(value) + } + /// Return the underlying value. + #[inline] + pub const fn into_underlying(self) -> u32 { + self.0 + } + /// Return the single encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode(&self) -> alloy_sol_types::private::Vec { + ::abi_encode(&self.0) + } + /// Return the packed encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec { + ::abi_encode_packed(&self.0) + } + } + #[automatically_derived] + impl From for GameType { + fn from(value: u32) -> Self { + Self::from_underlying(value) + } + } + #[automatically_derived] + impl From for u32 { + fn from(value: GameType) -> Self { + value.into_underlying() + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for GameType { + type RustType = u32; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = Self::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + Self::type_check(token).is_ok() + } + #[inline] + fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> { + as alloy_sol_types::SolType>::type_check(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + as alloy_sol_types::SolType>::detokenize(token) + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for GameType { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + as alloy_sol_types::EventTopic>::topic_preimage_length(rust) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out) + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + as alloy_sol_types::EventTopic>::encode_topic(rust) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct Hash(alloy::sol_types::private::FixedBytes<32>); + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue + for alloy::sol_types::private::FixedBytes<32> { + #[inline] + fn stv_to_tokens( + &self, + ) -> as alloy_sol_types::SolType>::Token<'_> { + alloy_sol_types::private::SolTypeValue::< + alloy::sol_types::sol_data::FixedBytes<32>, + >::stv_to_tokens(self) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + as alloy_sol_types::SolType>::tokenize(self) + .0 + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::SolType>::abi_encode_packed_to(self, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + as alloy_sol_types::SolType>::abi_encoded_size(self) + } + } + impl Hash { + /// The Solidity type name. + pub const NAME: &'static str = stringify!(@ name); + /// Convert from the underlying value type. + #[inline] + pub const fn from_underlying( + value: alloy::sol_types::private::FixedBytes<32>, + ) -> Self { + Self(value) + } + /// Return the underlying value. + #[inline] + pub const fn into_underlying( + self, + ) -> alloy::sol_types::private::FixedBytes<32> { + self.0 + } + /// Return the single encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode(&self) -> alloy_sol_types::private::Vec { + ::abi_encode(&self.0) + } + /// Return the packed encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec { + ::abi_encode_packed(&self.0) + } + } + #[automatically_derived] + impl From> for Hash { + fn from(value: alloy::sol_types::private::FixedBytes<32>) -> Self { + Self::from_underlying(value) + } + } + #[automatically_derived] + impl From for alloy::sol_types::private::FixedBytes<32> { + fn from(value: Hash) -> Self { + value.into_underlying() + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for Hash { + type RustType = alloy::sol_types::private::FixedBytes<32>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = Self::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + Self::type_check(token).is_ok() + } + #[inline] + fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> { + as alloy_sol_types::SolType>::type_check(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + as alloy_sol_types::SolType>::detokenize(token) + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for Hash { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + as alloy_sol_types::EventTopic>::topic_preimage_length(rust) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out) + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + as alloy_sol_types::EventTopic>::encode_topic(rust) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct Position(u128); + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for u128 { + #[inline] + fn stv_to_tokens( + &self, + ) -> as alloy_sol_types::SolType>::Token<'_> { + alloy_sol_types::private::SolTypeValue::< + alloy::sol_types::sol_data::Uint<128>, + >::stv_to_tokens(self) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + as alloy_sol_types::SolType>::tokenize(self) + .0 + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::SolType>::abi_encode_packed_to(self, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + as alloy_sol_types::SolType>::abi_encoded_size(self) + } + } + impl Position { + /// The Solidity type name. + pub const NAME: &'static str = stringify!(@ name); + /// Convert from the underlying value type. + #[inline] + pub const fn from_underlying(value: u128) -> Self { + Self(value) + } + /// Return the underlying value. + #[inline] + pub const fn into_underlying(self) -> u128 { + self.0 + } + /// Return the single encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode(&self) -> alloy_sol_types::private::Vec { + ::abi_encode(&self.0) + } + /// Return the packed encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec { + ::abi_encode_packed(&self.0) + } + } + #[automatically_derived] + impl From for Position { + fn from(value: u128) -> Self { + Self::from_underlying(value) + } + } + #[automatically_derived] + impl From for u128 { + fn from(value: Position) -> Self { + value.into_underlying() + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for Position { + type RustType = u128; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = Self::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + Self::type_check(token).is_ok() + } + #[inline] + fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> { + as alloy_sol_types::SolType>::type_check(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + as alloy_sol_types::SolType>::detokenize(token) + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for Position { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + as alloy_sol_types::EventTopic>::topic_preimage_length(rust) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out) + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + as alloy_sol_types::EventTopic>::encode_topic(rust) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct Timestamp(u64); + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for u64 { + #[inline] + fn stv_to_tokens( + &self, + ) -> as alloy_sol_types::SolType>::Token<'_> { + alloy_sol_types::private::SolTypeValue::< + alloy::sol_types::sol_data::Uint<64>, + >::stv_to_tokens(self) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + as alloy_sol_types::SolType>::tokenize(self) + .0 + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::SolType>::abi_encode_packed_to(self, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + as alloy_sol_types::SolType>::abi_encoded_size(self) + } + } + impl Timestamp { + /// The Solidity type name. + pub const NAME: &'static str = stringify!(@ name); + /// Convert from the underlying value type. + #[inline] + pub const fn from_underlying(value: u64) -> Self { + Self(value) + } + /// Return the underlying value. + #[inline] + pub const fn into_underlying(self) -> u64 { + self.0 + } + /// Return the single encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode(&self) -> alloy_sol_types::private::Vec { + ::abi_encode(&self.0) + } + /// Return the packed encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec { + ::abi_encode_packed(&self.0) + } + } + #[automatically_derived] + impl From for Timestamp { + fn from(value: u64) -> Self { + Self::from_underlying(value) + } + } + #[automatically_derived] + impl From for u64 { + fn from(value: Timestamp) -> Self { + value.into_underlying() + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for Timestamp { + type RustType = u64; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = Self::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + Self::type_check(token).is_ok() + } + #[inline] + fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> { + as alloy_sol_types::SolType>::type_check(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + as alloy_sol_types::SolType>::detokenize(token) + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for Timestamp { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + as alloy_sol_types::EventTopic>::topic_preimage_length(rust) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out) + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + as alloy_sol_types::EventTopic>::encode_topic(rust) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `AlreadyInitialized()` and selector `0x0dc149f0`. +```solidity +error AlreadyInitialized(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct AlreadyInitialized; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: AlreadyInitialized) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for AlreadyInitialized { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for AlreadyInitialized { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "AlreadyInitialized()"; + const SELECTOR: [u8; 4] = [13u8, 193u8, 73u8, 240u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `AnchorRootNotFound()` and selector `0x6a6bc3b2`. +```solidity +error AnchorRootNotFound(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct AnchorRootNotFound; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: AnchorRootNotFound) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for AnchorRootNotFound { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for AnchorRootNotFound { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "AnchorRootNotFound()"; + const SELECTOR: [u8; 4] = [106u8, 107u8, 195u8, 178u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `BadAuth()` and selector `0xd386ef3e`. +```solidity +error BadAuth(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct BadAuth; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: BadAuth) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for BadAuth { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for BadAuth { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "BadAuth()"; + const SELECTOR: [u8; 4] = [211u8, 134u8, 239u8, 62u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `BadExtraData()` and selector `0x9824bdab`. +```solidity +error BadExtraData(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct BadExtraData; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: BadExtraData) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for BadExtraData { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for BadExtraData { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "BadExtraData()"; + const SELECTOR: [u8; 4] = [152u8, 36u8, 189u8, 171u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `BondTransferFailed()` and selector `0x83e6cc6b`. +```solidity +error BondTransferFailed(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct BondTransferFailed; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: BondTransferFailed) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for BondTransferFailed { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for BondTransferFailed { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "BondTransferFailed()"; + const SELECTOR: [u8; 4] = [131u8, 230u8, 204u8, 107u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `CannotDefendRootClaim()` and selector `0xa42637bc`. +```solidity +error CannotDefendRootClaim(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct CannotDefendRootClaim; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: CannotDefendRootClaim) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for CannotDefendRootClaim { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for CannotDefendRootClaim { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "CannotDefendRootClaim()"; + const SELECTOR: [u8; 4] = [164u8, 38u8, 55u8, 188u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ClaimAboveSplit()` and selector `0xb34b5c22`. +```solidity +error ClaimAboveSplit(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ClaimAboveSplit; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ClaimAboveSplit) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ClaimAboveSplit { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ClaimAboveSplit { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ClaimAboveSplit()"; + const SELECTOR: [u8; 4] = [179u8, 75u8, 92u8, 34u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ClaimAlreadyExists()` and selector `0x80497e3b`. +```solidity +error ClaimAlreadyExists(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ClaimAlreadyExists; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ClaimAlreadyExists) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ClaimAlreadyExists { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ClaimAlreadyExists { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ClaimAlreadyExists()"; + const SELECTOR: [u8; 4] = [128u8, 73u8, 126u8, 59u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ClaimAlreadyResolved()` and selector `0xf1a94581`. +```solidity +error ClaimAlreadyResolved(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ClaimAlreadyResolved; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ClaimAlreadyResolved) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ClaimAlreadyResolved { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ClaimAlreadyResolved { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ClaimAlreadyResolved()"; + const SELECTOR: [u8; 4] = [241u8, 169u8, 69u8, 129u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ClockNotExpired()` and selector `0xf2440b53`. +```solidity +error ClockNotExpired(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ClockNotExpired; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ClockNotExpired) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ClockNotExpired { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ClockNotExpired { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ClockNotExpired()"; + const SELECTOR: [u8; 4] = [242u8, 68u8, 11u8, 83u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ClockTimeExceeded()` and selector `0x3381d114`. +```solidity +error ClockTimeExceeded(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ClockTimeExceeded; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ClockTimeExceeded) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ClockTimeExceeded { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ClockTimeExceeded { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ClockTimeExceeded()"; + const SELECTOR: [u8; 4] = [51u8, 129u8, 209u8, 20u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `DuplicateStep()` and selector `0x9071e6af`. +```solidity +error DuplicateStep(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct DuplicateStep; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: DuplicateStep) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for DuplicateStep { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for DuplicateStep { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "DuplicateStep()"; + const SELECTOR: [u8; 4] = [144u8, 113u8, 230u8, 175u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `GameDepthExceeded()` and selector `0x56f57b2b`. +```solidity +error GameDepthExceeded(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct GameDepthExceeded; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: GameDepthExceeded) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for GameDepthExceeded { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for GameDepthExceeded { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "GameDepthExceeded()"; + const SELECTOR: [u8; 4] = [86u8, 245u8, 123u8, 43u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `GameNotFinalized()` and selector `0x4851bd9b`. +```solidity +error GameNotFinalized(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct GameNotFinalized; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: GameNotFinalized) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for GameNotFinalized { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for GameNotFinalized { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "GameNotFinalized()"; + const SELECTOR: [u8; 4] = [72u8, 81u8, 189u8, 155u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `GameNotInProgress()` and selector `0x67fe1950`. +```solidity +error GameNotInProgress(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct GameNotInProgress; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: GameNotInProgress) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for GameNotInProgress { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for GameNotInProgress { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "GameNotInProgress()"; + const SELECTOR: [u8; 4] = [103u8, 254u8, 25u8, 80u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `GameNotResolved()` and selector `0xc105260a`. +```solidity +error GameNotResolved(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct GameNotResolved; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: GameNotResolved) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for GameNotResolved { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for GameNotResolved { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "GameNotResolved()"; + const SELECTOR: [u8; 4] = [193u8, 5u8, 38u8, 10u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `GamePaused()` and selector `0x379a7ed9`. +```solidity +error GamePaused(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct GamePaused; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: GamePaused) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for GamePaused { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for GamePaused { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "GamePaused()"; + const SELECTOR: [u8; 4] = [55u8, 154u8, 126u8, 217u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `IncorrectBondAmount()` and selector `0x8620aa19`. +```solidity +error IncorrectBondAmount(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct IncorrectBondAmount; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: IncorrectBondAmount) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for IncorrectBondAmount { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for IncorrectBondAmount { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "IncorrectBondAmount()"; + const SELECTOR: [u8; 4] = [134u8, 32u8, 170u8, 25u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidBondDistributionMode()` and selector `0x078a3df4`. +```solidity +error InvalidBondDistributionMode(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidBondDistributionMode; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: InvalidBondDistributionMode) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for InvalidBondDistributionMode { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidBondDistributionMode { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidBondDistributionMode()"; + const SELECTOR: [u8; 4] = [7u8, 138u8, 61u8, 244u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidChallengePeriod()` and selector `0xb4e12433`. +```solidity +error InvalidChallengePeriod(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidChallengePeriod; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InvalidChallengePeriod) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InvalidChallengePeriod { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidChallengePeriod { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidChallengePeriod()"; + const SELECTOR: [u8; 4] = [180u8, 225u8, 36u8, 51u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidClockExtension()` and selector `0x8d77ecac`. +```solidity +error InvalidClockExtension(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidClockExtension; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InvalidClockExtension) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InvalidClockExtension { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidClockExtension { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidClockExtension()"; + const SELECTOR: [u8; 4] = [141u8, 119u8, 236u8, 172u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidDisputedClaimIndex()` and selector `0x30140332`. +```solidity +error InvalidDisputedClaimIndex(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidDisputedClaimIndex; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: InvalidDisputedClaimIndex) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for InvalidDisputedClaimIndex { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidDisputedClaimIndex { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidDisputedClaimIndex()"; + const SELECTOR: [u8; 4] = [48u8, 20u8, 3u8, 50u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidLocalIdent()` and selector `0xff137e65`. +```solidity +error InvalidLocalIdent(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidLocalIdent; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InvalidLocalIdent) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InvalidLocalIdent { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidLocalIdent { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidLocalIdent()"; + const SELECTOR: [u8; 4] = [255u8, 19u8, 126u8, 101u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidParent()` and selector `0x5f53dd98`. +```solidity +error InvalidParent(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidParent; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InvalidParent) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InvalidParent { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidParent { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidParent()"; + const SELECTOR: [u8; 4] = [95u8, 83u8, 221u8, 152u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidPrestate()` and selector `0x696550ff`. +```solidity +error InvalidPrestate(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidPrestate; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InvalidPrestate) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InvalidPrestate { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidPrestate { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidPrestate()"; + const SELECTOR: [u8; 4] = [105u8, 101u8, 80u8, 255u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidSplitDepth()` and selector `0xe62ccf39`. +```solidity +error InvalidSplitDepth(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidSplitDepth; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InvalidSplitDepth) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InvalidSplitDepth { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidSplitDepth { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidSplitDepth()"; + const SELECTOR: [u8; 4] = [230u8, 44u8, 207u8, 57u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `MaxDepthTooLarge()` and selector `0x77dfe332`. +```solidity +error MaxDepthTooLarge(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct MaxDepthTooLarge; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: MaxDepthTooLarge) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for MaxDepthTooLarge { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for MaxDepthTooLarge { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "MaxDepthTooLarge()"; + const SELECTOR: [u8; 4] = [119u8, 223u8, 227u8, 50u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `NoChainIdNeeded()` and selector `0x223db394`. +```solidity +error NoChainIdNeeded(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct NoChainIdNeeded; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: NoChainIdNeeded) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for NoChainIdNeeded { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for NoChainIdNeeded { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "NoChainIdNeeded()"; + const SELECTOR: [u8; 4] = [34u8, 61u8, 179u8, 148u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `NoCreditToClaim()` and selector `0x17bfe5f7`. +```solidity +error NoCreditToClaim(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct NoCreditToClaim; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: NoCreditToClaim) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for NoCreditToClaim { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for NoCreditToClaim { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "NoCreditToClaim()"; + const SELECTOR: [u8; 4] = [23u8, 191u8, 229u8, 247u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `OutOfOrderResolution()` and selector `0x9a076646`. +```solidity +error OutOfOrderResolution(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct OutOfOrderResolution; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: OutOfOrderResolution) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for OutOfOrderResolution { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for OutOfOrderResolution { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "OutOfOrderResolution()"; + const SELECTOR: [u8; 4] = [154u8, 7u8, 102u8, 70u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `SuperFaultDisputeGameInvalidRootClaim()` and selector `0x2cfac082`. +```solidity +error SuperFaultDisputeGameInvalidRootClaim(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct SuperFaultDisputeGameInvalidRootClaim; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: SuperFaultDisputeGameInvalidRootClaim) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for SuperFaultDisputeGameInvalidRootClaim { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for SuperFaultDisputeGameInvalidRootClaim { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "SuperFaultDisputeGameInvalidRootClaim()"; + const SELECTOR: [u8; 4] = [44u8, 250u8, 192u8, 130u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `UnexpectedRootClaim(bytes32)` and selector `0xf40239db`. +```solidity +error UnexpectedRootClaim(Claim rootClaim); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct UnexpectedRootClaim { + #[allow(missing_docs)] + pub rootClaim: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Claim,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (::RustType,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: UnexpectedRootClaim) -> Self { + (value.rootClaim,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for UnexpectedRootClaim { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { rootClaim: tuple.0 } + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for UnexpectedRootClaim { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "UnexpectedRootClaim(bytes32)"; + const SELECTOR: [u8; 4] = [244u8, 2u8, 57u8, 219u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + (::tokenize(&self.rootClaim),) + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ValidStep()` and selector `0xfb4e40dd`. +```solidity +error ValidStep(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ValidStep; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ValidStep) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ValidStep { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ValidStep { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ValidStep()"; + const SELECTOR: [u8; 4] = [251u8, 78u8, 64u8, 221u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `GameClosed(uint8)` and selector `0x9908eaac0645df9d0704d06adc9e07337c951de2f06b5f2836151d48d5e4722f`. +```solidity +event GameClosed(BondDistributionMode bondDistributionMode); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct GameClosed { + #[allow(missing_docs)] + pub bondDistributionMode: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for GameClosed { + type DataTuple<'a> = (BondDistributionMode,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,); + const SIGNATURE: &'static str = "GameClosed(uint8)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 153u8, 8u8, 234u8, 172u8, 6u8, 69u8, 223u8, 157u8, 7u8, 4u8, 208u8, + 106u8, 220u8, 158u8, 7u8, 51u8, 124u8, 149u8, 29u8, 226u8, 240u8, 107u8, + 95u8, 40u8, 54u8, 21u8, 29u8, 72u8, 213u8, 228u8, 114u8, 47u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + bondDistributionMode: data.0, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + ::tokenize( + &self.bondDistributionMode, + ), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(),) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for GameClosed { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&GameClosed> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &GameClosed) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `Move(uint256,bytes32,address)` and selector `0x9b3245740ec3b155098a55be84957a4da13eaf7f14a8bc6f53126c0b9350f2be`. +```solidity +event Move(uint256 indexed parentIndex, Claim indexed claim, address indexed claimant); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct Move { + #[allow(missing_docs)] + pub parentIndex: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub claim: ::RustType, + #[allow(missing_docs)] + pub claimant: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for Move { + type DataTuple<'a> = (); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Uint<256>, + Claim, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "Move(uint256,bytes32,address)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 155u8, 50u8, 69u8, 116u8, 14u8, 195u8, 177u8, 85u8, 9u8, 138u8, 85u8, + 190u8, 132u8, 149u8, 122u8, 77u8, 161u8, 62u8, 175u8, 127u8, 20u8, 168u8, + 188u8, 111u8, 83u8, 18u8, 108u8, 11u8, 147u8, 80u8, 242u8, 190u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + parentIndex: topics.1, + claim: topics.2, + claimant: topics.3, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + () + } + #[inline] + fn topics(&self) -> ::RustType { + ( + Self::SIGNATURE_HASH.into(), + self.parentIndex.clone(), + self.claim.clone(), + self.claimant.clone(), + ) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = as alloy_sol_types::EventTopic>::encode_topic(&self.parentIndex); + out[2usize] = ::encode_topic( + &self.claim, + ); + out[3usize] = ::encode_topic( + &self.claimant, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for Move { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&Move> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &Move) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `Resolved(uint8)` and selector `0x5e186f09b9c93491f14e277eea7faa5de6a2d4bda75a79af7a3684fbfb42da60`. +```solidity +event Resolved(GameStatus indexed status); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct Resolved { + #[allow(missing_docs)] + pub status: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for Resolved { + type DataTuple<'a> = (); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>, GameStatus); + const SIGNATURE: &'static str = "Resolved(uint8)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 94u8, 24u8, 111u8, 9u8, 185u8, 201u8, 52u8, 145u8, 241u8, 78u8, 39u8, + 126u8, 234u8, 127u8, 170u8, 93u8, 230u8, 162u8, 212u8, 189u8, 167u8, + 90u8, 121u8, 175u8, 122u8, 54u8, 132u8, 251u8, 251u8, 66u8, 218u8, 96u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { status: topics.1 } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + () + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.status.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.status, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for Resolved { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&Resolved> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &Resolved) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + /**Constructor`. +```solidity +constructor(SuperFaultDisputeGame.GameConstructorParams _params); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct constructorCall { + #[allow(missing_docs)] + pub _params: ::RustType, + } + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + SuperFaultDisputeGame::GameConstructorParams, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: constructorCall) -> Self { + (value._params,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for constructorCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _params: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolConstructor for constructorCall { + type Parameters<'a> = (SuperFaultDisputeGame::GameConstructorParams,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._params, + ), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `absolutePrestate()` and selector `0x8d450a95`. +```solidity +function absolutePrestate() external pure returns (Claim absolutePrestate_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct absolutePrestateCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`absolutePrestate()`](absolutePrestateCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct absolutePrestateReturn { + #[allow(missing_docs)] + pub absolutePrestate_: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: absolutePrestateCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for absolutePrestateCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Claim,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: absolutePrestateReturn) -> Self { + (value.absolutePrestate_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for absolutePrestateReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { absolutePrestate_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for absolutePrestateCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (Claim,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "absolutePrestate()"; + const SELECTOR: [u8; 4] = [141u8, 69u8, 10u8, 149u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: absolutePrestateReturn = r.into(); + r.absolutePrestate_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: absolutePrestateReturn = r.into(); + r.absolutePrestate_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `addLocalData(uint256,uint256,uint256)` and selector `0xf8f43ff6`. +```solidity +function addLocalData(uint256 _ident, uint256 _execLeafIdx, uint256 _partOffset) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct addLocalDataCall { + #[allow(missing_docs)] + pub _ident: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _execLeafIdx: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _partOffset: alloy::sol_types::private::primitives::aliases::U256, + } + ///Container type for the return parameters of the [`addLocalData(uint256,uint256,uint256)`](addLocalDataCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct addLocalDataReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: addLocalDataCall) -> Self { + (value._ident, value._execLeafIdx, value._partOffset) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for addLocalDataCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _ident: tuple.0, + _execLeafIdx: tuple.1, + _partOffset: tuple.2, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: addLocalDataReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for addLocalDataReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl addLocalDataReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for addLocalDataCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = addLocalDataReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "addLocalData(uint256,uint256,uint256)"; + const SELECTOR: [u8; 4] = [248u8, 244u8, 63u8, 246u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._ident), + as alloy_sol_types::SolType>::tokenize(&self._execLeafIdx), + as alloy_sol_types::SolType>::tokenize(&self._partOffset), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + addLocalDataReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `anchorStateRegistry()` and selector `0x5c0cba33`. +```solidity +function anchorStateRegistry() external pure returns (address registry_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct anchorStateRegistryCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`anchorStateRegistry()`](anchorStateRegistryCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct anchorStateRegistryReturn { + #[allow(missing_docs)] + pub registry_: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: anchorStateRegistryCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for anchorStateRegistryCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: anchorStateRegistryReturn) -> Self { + (value.registry_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for anchorStateRegistryReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { registry_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for anchorStateRegistryCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "anchorStateRegistry()"; + const SELECTOR: [u8; 4] = [92u8, 12u8, 186u8, 51u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: anchorStateRegistryReturn = r.into(); + r.registry_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: anchorStateRegistryReturn = r.into(); + r.registry_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `attack(bytes32,uint256,bytes32)` and selector `0x472777c6`. +```solidity +function attack(Claim _disputed, uint256 _parentIndex, Claim _claim) external payable; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct attackCall { + #[allow(missing_docs)] + pub _disputed: ::RustType, + #[allow(missing_docs)] + pub _parentIndex: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _claim: ::RustType, + } + ///Container type for the return parameters of the [`attack(bytes32,uint256,bytes32)`](attackCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct attackReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + Claim, + alloy::sol_types::sol_data::Uint<256>, + Claim, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + alloy::sol_types::private::primitives::aliases::U256, + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: attackCall) -> Self { + (value._disputed, value._parentIndex, value._claim) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for attackCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _disputed: tuple.0, + _parentIndex: tuple.1, + _claim: tuple.2, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: attackReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for attackReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl attackReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for attackCall { + type Parameters<'a> = (Claim, alloy::sol_types::sol_data::Uint<256>, Claim); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = attackReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "attack(bytes32,uint256,bytes32)"; + const SELECTOR: [u8; 4] = [71u8, 39u8, 119u8, 198u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize(&self._disputed), + as alloy_sol_types::SolType>::tokenize(&self._parentIndex), + ::tokenize(&self._claim), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + attackReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `bondDistributionMode()` and selector `0x378dd48c`. +```solidity +function bondDistributionMode() external view returns (BondDistributionMode); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct bondDistributionModeCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`bondDistributionMode()`](bondDistributionModeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct bondDistributionModeReturn { + #[allow(missing_docs)] + pub _0: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: bondDistributionModeCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for bondDistributionModeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (BondDistributionMode,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: bondDistributionModeReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for bondDistributionModeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for bondDistributionModeCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (BondDistributionMode,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "bondDistributionMode()"; + const SELECTOR: [u8; 4] = [55u8, 141u8, 212u8, 140u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: bondDistributionModeReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: bondDistributionModeReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `challenger()` and selector `0x534db0e2`. +```solidity +function challenger() external pure returns (address challenger_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct challengerCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`challenger()`](challengerCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct challengerReturn { + #[allow(missing_docs)] + pub challenger_: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: challengerCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for challengerCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: challengerReturn) -> Self { + (value.challenger_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for challengerReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { challenger_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for challengerCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "challenger()"; + const SELECTOR: [u8; 4] = [83u8, 77u8, 176u8, 226u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: challengerReturn = r.into(); + r.challenger_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: challengerReturn = r.into(); + r.challenger_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `claimCredit(address)` and selector `0x60e27464`. +```solidity +function claimCredit(address _recipient) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct claimCreditCall { + #[allow(missing_docs)] + pub _recipient: alloy::sol_types::private::Address, + } + ///Container type for the return parameters of the [`claimCredit(address)`](claimCreditCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct claimCreditReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: claimCreditCall) -> Self { + (value._recipient,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for claimCreditCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _recipient: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: claimCreditReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for claimCreditReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl claimCreditReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for claimCreditCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = claimCreditReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "claimCredit(address)"; + const SELECTOR: [u8; 4] = [96u8, 226u8, 116u8, 100u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._recipient, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + claimCreditReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `claimData(uint256)` and selector `0xc6f0308c`. +```solidity +function claimData(uint256) external view returns (uint32 parentIndex, address counteredBy, address claimant, uint128 bond, Claim claim, Position position, Clock clock); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct claimDataCall(pub alloy::sol_types::private::primitives::aliases::U256); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`claimData(uint256)`](claimDataCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct claimDataReturn { + #[allow(missing_docs)] + pub parentIndex: u32, + #[allow(missing_docs)] + pub counteredBy: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub claimant: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub bond: u128, + #[allow(missing_docs)] + pub claim: ::RustType, + #[allow(missing_docs)] + pub position: ::RustType, + #[allow(missing_docs)] + pub clock: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: claimDataCall) -> Self { + (value.0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for claimDataCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self(tuple.0) + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Uint<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<128>, + Claim, + Position, + Clock, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + u32, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + u128, + ::RustType, + ::RustType, + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: claimDataReturn) -> Self { + ( + value.parentIndex, + value.counteredBy, + value.claimant, + value.bond, + value.claim, + value.position, + value.clock, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for claimDataReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + parentIndex: tuple.0, + counteredBy: tuple.1, + claimant: tuple.2, + bond: tuple.3, + claim: tuple.4, + position: tuple.5, + clock: tuple.6, + } + } + } + } + impl claimDataReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.parentIndex), + ::tokenize( + &self.counteredBy, + ), + ::tokenize( + &self.claimant, + ), + as alloy_sol_types::SolType>::tokenize(&self.bond), + ::tokenize(&self.claim), + ::tokenize(&self.position), + ::tokenize(&self.clock), + ) + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for claimDataCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = claimDataReturn; + type ReturnTuple<'a> = ( + alloy::sol_types::sol_data::Uint<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<128>, + Claim, + Position, + Clock, + ); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "claimData(uint256)"; + const SELECTOR: [u8; 4] = [198u8, 240u8, 48u8, 140u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.0), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + claimDataReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `claimDataLen()` and selector `0x8980e0cc`. +```solidity +function claimDataLen() external view returns (uint256 len_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct claimDataLenCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`claimDataLen()`](claimDataLenCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct claimDataLenReturn { + #[allow(missing_docs)] + pub len_: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: claimDataLenCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for claimDataLenCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: claimDataLenReturn) -> Self { + (value.len_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for claimDataLenReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { len_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for claimDataLenCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "claimDataLen()"; + const SELECTOR: [u8; 4] = [137u8, 128u8, 224u8, 204u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: claimDataLenReturn = r.into(); + r.len_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: claimDataLenReturn = r.into(); + r.len_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `claims(bytes32)` and selector `0xeff0f592`. +```solidity +function claims(Hash) external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct claimsCall(pub ::RustType); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`claims(bytes32)`](claimsCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct claimsReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Hash,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: claimsCall) -> Self { + (value.0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for claimsCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self(tuple.0) + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: claimsReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for claimsReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for claimsCall { + type Parameters<'a> = (Hash,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "claims(bytes32)"; + const SELECTOR: [u8; 4] = [239u8, 240u8, 245u8, 146u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + (::tokenize(&self.0),) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: claimsReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: claimsReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `clockExtension()` and selector `0x6b6716c0`. +```solidity +function clockExtension() external view returns (Duration clockExtension_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct clockExtensionCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`clockExtension()`](clockExtensionCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct clockExtensionReturn { + #[allow(missing_docs)] + pub clockExtension_: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: clockExtensionCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for clockExtensionCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Duration,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: clockExtensionReturn) -> Self { + (value.clockExtension_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for clockExtensionReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { clockExtension_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for clockExtensionCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (Duration,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "clockExtension()"; + const SELECTOR: [u8; 4] = [107u8, 103u8, 22u8, 192u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: clockExtensionReturn = r.into(); + r.clockExtension_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: clockExtensionReturn = r.into(); + r.clockExtension_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `closeGame()` and selector `0x786b844b`. +```solidity +function closeGame() external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct closeGameCall; + ///Container type for the return parameters of the [`closeGame()`](closeGameCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct closeGameReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: closeGameCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for closeGameCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: closeGameReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for closeGameReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl closeGameReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for closeGameCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = closeGameReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "closeGame()"; + const SELECTOR: [u8; 4] = [120u8, 107u8, 132u8, 75u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + closeGameReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `createdAt()` and selector `0xcf09e0d0`. +```solidity +function createdAt() external view returns (Timestamp); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct createdAtCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`createdAt()`](createdAtCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct createdAtReturn { + #[allow(missing_docs)] + pub _0: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: createdAtCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for createdAtCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Timestamp,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: createdAtReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for createdAtReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for createdAtCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (Timestamp,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "createdAt()"; + const SELECTOR: [u8; 4] = [207u8, 9u8, 224u8, 208u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: createdAtReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: createdAtReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `credit(address)` and selector `0xd5d44d80`. +```solidity +function credit(address _recipient) external view returns (uint256 credit_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct creditCall { + #[allow(missing_docs)] + pub _recipient: alloy::sol_types::private::Address, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`credit(address)`](creditCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct creditReturn { + #[allow(missing_docs)] + pub credit_: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: creditCall) -> Self { + (value._recipient,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for creditCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _recipient: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: creditReturn) -> Self { + (value.credit_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for creditReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { credit_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for creditCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "credit(address)"; + const SELECTOR: [u8; 4] = [213u8, 212u8, 77u8, 128u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._recipient, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: creditReturn = r.into(); + r.credit_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: creditReturn = r.into(); + r.credit_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `defend(bytes32,uint256,bytes32)` and selector `0x7b0f0adc`. +```solidity +function defend(Claim _disputed, uint256 _parentIndex, Claim _claim) external payable; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct defendCall { + #[allow(missing_docs)] + pub _disputed: ::RustType, + #[allow(missing_docs)] + pub _parentIndex: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _claim: ::RustType, + } + ///Container type for the return parameters of the [`defend(bytes32,uint256,bytes32)`](defendCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct defendReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + Claim, + alloy::sol_types::sol_data::Uint<256>, + Claim, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + alloy::sol_types::private::primitives::aliases::U256, + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: defendCall) -> Self { + (value._disputed, value._parentIndex, value._claim) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for defendCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _disputed: tuple.0, + _parentIndex: tuple.1, + _claim: tuple.2, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: defendReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for defendReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl defendReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for defendCall { + type Parameters<'a> = (Claim, alloy::sol_types::sol_data::Uint<256>, Claim); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = defendReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "defend(bytes32,uint256,bytes32)"; + const SELECTOR: [u8; 4] = [123u8, 15u8, 10u8, 220u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize(&self._disputed), + as alloy_sol_types::SolType>::tokenize(&self._parentIndex), + ::tokenize(&self._claim), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + defendReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `extraData()` and selector `0x609d3334`. +```solidity +function extraData() external pure returns (bytes memory extraData_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct extraDataCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`extraData()`](extraDataCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct extraDataReturn { + #[allow(missing_docs)] + pub extraData_: alloy::sol_types::private::Bytes, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: extraDataCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for extraDataCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bytes,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Bytes,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: extraDataReturn) -> Self { + (value.extraData_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for extraDataReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { extraData_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for extraDataCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Bytes; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bytes,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "extraData()"; + const SELECTOR: [u8; 4] = [96u8, 157u8, 51u8, 52u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: extraDataReturn = r.into(); + r.extraData_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: extraDataReturn = r.into(); + r.extraData_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `gameCreator()` and selector `0x37b1b229`. +```solidity +function gameCreator() external pure returns (address creator_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct gameCreatorCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`gameCreator()`](gameCreatorCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct gameCreatorReturn { + #[allow(missing_docs)] + pub creator_: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: gameCreatorCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for gameCreatorCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: gameCreatorReturn) -> Self { + (value.creator_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for gameCreatorReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { creator_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for gameCreatorCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "gameCreator()"; + const SELECTOR: [u8; 4] = [55u8, 177u8, 178u8, 41u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: gameCreatorReturn = r.into(); + r.creator_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: gameCreatorReturn = r.into(); + r.creator_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `gameData()` and selector `0xfa24f743`. +```solidity +function gameData() external pure returns (GameType gameType_, Claim rootClaim_, bytes memory extraData_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct gameDataCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`gameData()`](gameDataCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct gameDataReturn { + #[allow(missing_docs)] + pub gameType_: ::RustType, + #[allow(missing_docs)] + pub rootClaim_: ::RustType, + #[allow(missing_docs)] + pub extraData_: alloy::sol_types::private::Bytes, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: gameDataCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for gameDataCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + GameType, + Claim, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ::RustType, + alloy::sol_types::private::Bytes, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: gameDataReturn) -> Self { + (value.gameType_, value.rootClaim_, value.extraData_) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for gameDataReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + gameType_: tuple.0, + rootClaim_: tuple.1, + extraData_: tuple.2, + } + } + } + } + impl gameDataReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + ( + ::tokenize(&self.gameType_), + ::tokenize(&self.rootClaim_), + ::tokenize( + &self.extraData_, + ), + ) + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for gameDataCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = gameDataReturn; + type ReturnTuple<'a> = (GameType, Claim, alloy::sol_types::sol_data::Bytes); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "gameData()"; + const SELECTOR: [u8; 4] = [250u8, 36u8, 247u8, 67u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + gameDataReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `gameType()` and selector `0xbbdc02db`. +```solidity +function gameType() external pure returns (GameType gameType_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct gameTypeCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`gameType()`](gameTypeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct gameTypeReturn { + #[allow(missing_docs)] + pub gameType_: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: gameTypeCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for gameTypeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (GameType,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: gameTypeReturn) -> Self { + (value.gameType_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for gameTypeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { gameType_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for gameTypeCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (GameType,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "gameType()"; + const SELECTOR: [u8; 4] = [187u8, 220u8, 2u8, 219u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: gameTypeReturn = r.into(); + r.gameType_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: gameTypeReturn = r.into(); + r.gameType_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `getChallengerDuration(uint256)` and selector `0xbd8da956`. +```solidity +function getChallengerDuration(uint256 _claimIndex) external view returns (Duration duration_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getChallengerDurationCall { + #[allow(missing_docs)] + pub _claimIndex: alloy::sol_types::private::primitives::aliases::U256, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`getChallengerDuration(uint256)`](getChallengerDurationCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getChallengerDurationReturn { + #[allow(missing_docs)] + pub duration_: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: getChallengerDurationCall) -> Self { + (value._claimIndex,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for getChallengerDurationCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _claimIndex: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Duration,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: getChallengerDurationReturn) -> Self { + (value.duration_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for getChallengerDurationReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { duration_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for getChallengerDurationCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (Duration,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "getChallengerDuration(uint256)"; + const SELECTOR: [u8; 4] = [189u8, 141u8, 169u8, 86u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._claimIndex), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: getChallengerDurationReturn = r.into(); + r.duration_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: getChallengerDurationReturn = r.into(); + r.duration_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `getNumToResolve(uint256)` and selector `0x5a5fa2d9`. +```solidity +function getNumToResolve(uint256 _claimIndex) external view returns (uint256 numRemainingChildren_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getNumToResolveCall { + #[allow(missing_docs)] + pub _claimIndex: alloy::sol_types::private::primitives::aliases::U256, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`getNumToResolve(uint256)`](getNumToResolveCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getNumToResolveReturn { + #[allow(missing_docs)] + pub numRemainingChildren_: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: getNumToResolveCall) -> Self { + (value._claimIndex,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for getNumToResolveCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _claimIndex: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: getNumToResolveReturn) -> Self { + (value.numRemainingChildren_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for getNumToResolveReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + numRemainingChildren_: tuple.0, + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for getNumToResolveCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "getNumToResolve(uint256)"; + const SELECTOR: [u8; 4] = [90u8, 95u8, 162u8, 217u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._claimIndex), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: getNumToResolveReturn = r.into(); + r.numRemainingChildren_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: getNumToResolveReturn = r.into(); + r.numRemainingChildren_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `getRequiredBond(uint128)` and selector `0xc395e1ca`. +```solidity +function getRequiredBond(Position _position) external view returns (uint256 requiredBond_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getRequiredBondCall { + #[allow(missing_docs)] + pub _position: ::RustType, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`getRequiredBond(uint128)`](getRequiredBondCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getRequiredBondReturn { + #[allow(missing_docs)] + pub requiredBond_: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Position,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: getRequiredBondCall) -> Self { + (value._position,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for getRequiredBondCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _position: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: getRequiredBondReturn) -> Self { + (value.requiredBond_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for getRequiredBondReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { requiredBond_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for getRequiredBondCall { + type Parameters<'a> = (Position,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "getRequiredBond(uint128)"; + const SELECTOR: [u8; 4] = [195u8, 149u8, 225u8, 202u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + (::tokenize(&self._position),) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: getRequiredBondReturn = r.into(); + r.requiredBond_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: getRequiredBondReturn = r.into(); + r.requiredBond_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `hasUnlockedCredit(address)` and selector `0x222abf45`. +```solidity +function hasUnlockedCredit(address) external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct hasUnlockedCreditCall(pub alloy::sol_types::private::Address); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`hasUnlockedCredit(address)`](hasUnlockedCreditCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct hasUnlockedCreditReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: hasUnlockedCreditCall) -> Self { + (value.0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for hasUnlockedCreditCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self(tuple.0) + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: hasUnlockedCreditReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for hasUnlockedCreditReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for hasUnlockedCreditCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "hasUnlockedCredit(address)"; + const SELECTOR: [u8; 4] = [34u8, 42u8, 191u8, 69u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.0, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: hasUnlockedCreditReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: hasUnlockedCreditReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `initialize()` and selector `0x8129fc1c`. +```solidity +function initialize() external payable; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct initializeCall; + ///Container type for the return parameters of the [`initialize()`](initializeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct initializeReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: initializeCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for initializeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: initializeReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for initializeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl initializeReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for initializeCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = initializeReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "initialize()"; + const SELECTOR: [u8; 4] = [129u8, 41u8, 252u8, 28u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + initializeReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `l1Head()` and selector `0x6361506d`. +```solidity +function l1Head() external pure returns (Hash l1Head_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct l1HeadCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`l1Head()`](l1HeadCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct l1HeadReturn { + #[allow(missing_docs)] + pub l1Head_: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: l1HeadCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for l1HeadCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Hash,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: l1HeadReturn) -> Self { + (value.l1Head_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for l1HeadReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { l1Head_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for l1HeadCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (Hash,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "l1Head()"; + const SELECTOR: [u8; 4] = [99u8, 97u8, 80u8, 109u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: l1HeadReturn = r.into(); + r.l1Head_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: l1HeadReturn = r.into(); + r.l1Head_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `l2SequenceNumber()` and selector `0x99735e32`. +```solidity +function l2SequenceNumber() external pure returns (uint256 l2SequenceNumber_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct l2SequenceNumberCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`l2SequenceNumber()`](l2SequenceNumberCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct l2SequenceNumberReturn { + #[allow(missing_docs)] + pub l2SequenceNumber_: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: l2SequenceNumberCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for l2SequenceNumberCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: l2SequenceNumberReturn) -> Self { + (value.l2SequenceNumber_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for l2SequenceNumberReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { l2SequenceNumber_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for l2SequenceNumberCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "l2SequenceNumber()"; + const SELECTOR: [u8; 4] = [153u8, 115u8, 94u8, 50u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: l2SequenceNumberReturn = r.into(); + r.l2SequenceNumber_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: l2SequenceNumberReturn = r.into(); + r.l2SequenceNumber_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `maxClockDuration()` and selector `0xdabd396d`. +```solidity +function maxClockDuration() external view returns (Duration maxClockDuration_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct maxClockDurationCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`maxClockDuration()`](maxClockDurationCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct maxClockDurationReturn { + #[allow(missing_docs)] + pub maxClockDuration_: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: maxClockDurationCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for maxClockDurationCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Duration,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: maxClockDurationReturn) -> Self { + (value.maxClockDuration_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for maxClockDurationReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { maxClockDuration_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for maxClockDurationCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (Duration,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "maxClockDuration()"; + const SELECTOR: [u8; 4] = [218u8, 189u8, 57u8, 109u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: maxClockDurationReturn = r.into(); + r.maxClockDuration_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: maxClockDurationReturn = r.into(); + r.maxClockDuration_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `maxGameDepth()` and selector `0xfa315aa9`. +```solidity +function maxGameDepth() external view returns (uint256 maxGameDepth_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct maxGameDepthCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`maxGameDepth()`](maxGameDepthCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct maxGameDepthReturn { + #[allow(missing_docs)] + pub maxGameDepth_: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: maxGameDepthCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for maxGameDepthCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: maxGameDepthReturn) -> Self { + (value.maxGameDepth_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for maxGameDepthReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { maxGameDepth_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for maxGameDepthCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "maxGameDepth()"; + const SELECTOR: [u8; 4] = [250u8, 49u8, 90u8, 169u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: maxGameDepthReturn = r.into(); + r.maxGameDepth_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: maxGameDepthReturn = r.into(); + r.maxGameDepth_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `move(bytes32,uint256,bytes32,bool)` and selector `0x6f034409`. +```solidity +function r#move(Claim _disputed, uint256 _challengeIndex, Claim _claim, bool _isAttack) external payable; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct moveCall { + #[allow(missing_docs)] + pub _disputed: ::RustType, + #[allow(missing_docs)] + pub _challengeIndex: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _claim: ::RustType, + #[allow(missing_docs)] + pub _isAttack: bool, + } + ///Container type for the return parameters of the [`move(bytes32,uint256,bytes32,bool)`](moveCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct moveReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + Claim, + alloy::sol_types::sol_data::Uint<256>, + Claim, + alloy::sol_types::sol_data::Bool, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + alloy::sol_types::private::primitives::aliases::U256, + ::RustType, + bool, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: moveCall) -> Self { + ( + value._disputed, + value._challengeIndex, + value._claim, + value._isAttack, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for moveCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _disputed: tuple.0, + _challengeIndex: tuple.1, + _claim: tuple.2, + _isAttack: tuple.3, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: moveReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for moveReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl moveReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for moveCall { + type Parameters<'a> = ( + Claim, + alloy::sol_types::sol_data::Uint<256>, + Claim, + alloy::sol_types::sol_data::Bool, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = moveReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "move(bytes32,uint256,bytes32,bool)"; + const SELECTOR: [u8; 4] = [111u8, 3u8, 68u8, 9u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize(&self._disputed), + as alloy_sol_types::SolType>::tokenize(&self._challengeIndex), + ::tokenize(&self._claim), + ::tokenize( + &self._isAttack, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + moveReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `normalModeCredit(address)` and selector `0x529d6a8c`. +```solidity +function normalModeCredit(address) external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct normalModeCreditCall(pub alloy::sol_types::private::Address); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`normalModeCredit(address)`](normalModeCreditCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct normalModeCreditReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: normalModeCreditCall) -> Self { + (value.0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for normalModeCreditCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self(tuple.0) + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: normalModeCreditReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for normalModeCreditReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for normalModeCreditCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "normalModeCredit(address)"; + const SELECTOR: [u8; 4] = [82u8, 157u8, 106u8, 140u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.0, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: normalModeCreditReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: normalModeCreditReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `proposer()` and selector `0xa8e4fb90`. +```solidity +function proposer() external pure returns (address proposer_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct proposerCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`proposer()`](proposerCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct proposerReturn { + #[allow(missing_docs)] + pub proposer_: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: proposerCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for proposerCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: proposerReturn) -> Self { + (value.proposer_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for proposerReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { proposer_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for proposerCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "proposer()"; + const SELECTOR: [u8; 4] = [168u8, 228u8, 251u8, 144u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: proposerReturn = r.into(); + r.proposer_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: proposerReturn = r.into(); + r.proposer_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `refundModeCredit(address)` and selector `0xc0d8bb74`. +```solidity +function refundModeCredit(address) external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct refundModeCreditCall(pub alloy::sol_types::private::Address); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`refundModeCredit(address)`](refundModeCreditCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct refundModeCreditReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: refundModeCreditCall) -> Self { + (value.0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for refundModeCreditCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self(tuple.0) + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: refundModeCreditReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for refundModeCreditReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for refundModeCreditCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "refundModeCredit(address)"; + const SELECTOR: [u8; 4] = [192u8, 216u8, 187u8, 116u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.0, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: refundModeCreditReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: refundModeCreditReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `resolutionCheckpoints(uint256)` and selector `0xa445ece6`. +```solidity +function resolutionCheckpoints(uint256) external view returns (bool initialCheckpointComplete, uint32 subgameIndex, Position leftmostPosition, address counteredBy); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct resolutionCheckpointsCall( + pub alloy::sol_types::private::primitives::aliases::U256, + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`resolutionCheckpoints(uint256)`](resolutionCheckpointsCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct resolutionCheckpointsReturn { + #[allow(missing_docs)] + pub initialCheckpointComplete: bool, + #[allow(missing_docs)] + pub subgameIndex: u32, + #[allow(missing_docs)] + pub leftmostPosition: ::RustType, + #[allow(missing_docs)] + pub counteredBy: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: resolutionCheckpointsCall) -> Self { + (value.0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for resolutionCheckpointsCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self(tuple.0) + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Bool, + alloy::sol_types::sol_data::Uint<32>, + Position, + alloy::sol_types::sol_data::Address, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + bool, + u32, + ::RustType, + alloy::sol_types::private::Address, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: resolutionCheckpointsReturn) -> Self { + ( + value.initialCheckpointComplete, + value.subgameIndex, + value.leftmostPosition, + value.counteredBy, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for resolutionCheckpointsReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + initialCheckpointComplete: tuple.0, + subgameIndex: tuple.1, + leftmostPosition: tuple.2, + counteredBy: tuple.3, + } + } + } + } + impl resolutionCheckpointsReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken< + '_, + > { + ( + ::tokenize( + &self.initialCheckpointComplete, + ), + as alloy_sol_types::SolType>::tokenize(&self.subgameIndex), + ::tokenize( + &self.leftmostPosition, + ), + ::tokenize( + &self.counteredBy, + ), + ) + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for resolutionCheckpointsCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = resolutionCheckpointsReturn; + type ReturnTuple<'a> = ( + alloy::sol_types::sol_data::Bool, + alloy::sol_types::sol_data::Uint<32>, + Position, + alloy::sol_types::sol_data::Address, + ); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "resolutionCheckpoints(uint256)"; + const SELECTOR: [u8; 4] = [164u8, 69u8, 236u8, 230u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.0), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + resolutionCheckpointsReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `resolve()` and selector `0x2810e1d6`. +```solidity +function resolve() external returns (GameStatus status_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct resolveCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`resolve()`](resolveCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct resolveReturn { + #[allow(missing_docs)] + pub status_: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: resolveCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for resolveCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (GameStatus,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: resolveReturn) -> Self { + (value.status_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for resolveReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { status_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for resolveCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (GameStatus,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "resolve()"; + const SELECTOR: [u8; 4] = [40u8, 16u8, 225u8, 214u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: resolveReturn = r.into(); + r.status_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: resolveReturn = r.into(); + r.status_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `resolveClaim(uint256,uint256)` and selector `0x03c2924d`. +```solidity +function resolveClaim(uint256 _claimIndex, uint256 _numToResolve) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct resolveClaimCall { + #[allow(missing_docs)] + pub _claimIndex: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _numToResolve: alloy::sol_types::private::primitives::aliases::U256, + } + ///Container type for the return parameters of the [`resolveClaim(uint256,uint256)`](resolveClaimCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct resolveClaimReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: resolveClaimCall) -> Self { + (value._claimIndex, value._numToResolve) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for resolveClaimCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _claimIndex: tuple.0, + _numToResolve: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: resolveClaimReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for resolveClaimReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl resolveClaimReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for resolveClaimCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = resolveClaimReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "resolveClaim(uint256,uint256)"; + const SELECTOR: [u8; 4] = [3u8, 194u8, 146u8, 77u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._claimIndex), + as alloy_sol_types::SolType>::tokenize(&self._numToResolve), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + resolveClaimReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `resolvedAt()` and selector `0x19effeb4`. +```solidity +function resolvedAt() external view returns (Timestamp); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct resolvedAtCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`resolvedAt()`](resolvedAtCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct resolvedAtReturn { + #[allow(missing_docs)] + pub _0: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: resolvedAtCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for resolvedAtCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Timestamp,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: resolvedAtReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for resolvedAtReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for resolvedAtCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (Timestamp,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "resolvedAt()"; + const SELECTOR: [u8; 4] = [25u8, 239u8, 254u8, 180u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: resolvedAtReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: resolvedAtReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `resolvedSubgames(uint256)` and selector `0xfe2bbeb2`. +```solidity +function resolvedSubgames(uint256) external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct resolvedSubgamesCall( + pub alloy::sol_types::private::primitives::aliases::U256, + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`resolvedSubgames(uint256)`](resolvedSubgamesCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct resolvedSubgamesReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: resolvedSubgamesCall) -> Self { + (value.0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for resolvedSubgamesCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self(tuple.0) + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: resolvedSubgamesReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for resolvedSubgamesReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for resolvedSubgamesCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "resolvedSubgames(uint256)"; + const SELECTOR: [u8; 4] = [254u8, 43u8, 190u8, 178u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.0), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: resolvedSubgamesReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: resolvedSubgamesReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `rootClaim()` and selector `0xbcef3b55`. +```solidity +function rootClaim() external pure returns (Claim rootClaim_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct rootClaimCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`rootClaim()`](rootClaimCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct rootClaimReturn { + #[allow(missing_docs)] + pub rootClaim_: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: rootClaimCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for rootClaimCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Claim,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: rootClaimReturn) -> Self { + (value.rootClaim_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for rootClaimReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { rootClaim_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for rootClaimCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (Claim,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "rootClaim()"; + const SELECTOR: [u8; 4] = [188u8, 239u8, 59u8, 85u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: rootClaimReturn = r.into(); + r.rootClaim_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: rootClaimReturn = r.into(); + r.rootClaim_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `splitDepth()` and selector `0xec5e6308`. +```solidity +function splitDepth() external view returns (uint256 splitDepth_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct splitDepthCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`splitDepth()`](splitDepthCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct splitDepthReturn { + #[allow(missing_docs)] + pub splitDepth_: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: splitDepthCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for splitDepthCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: splitDepthReturn) -> Self { + (value.splitDepth_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for splitDepthReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { splitDepth_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for splitDepthCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "splitDepth()"; + const SELECTOR: [u8; 4] = [236u8, 94u8, 99u8, 8u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: splitDepthReturn = r.into(); + r.splitDepth_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: splitDepthReturn = r.into(); + r.splitDepth_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `startingProposal()` and selector `0x938d689a`. +```solidity +function startingProposal() external view returns (Hash root, uint256 l2SequenceNumber); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct startingProposalCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`startingProposal()`](startingProposalCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct startingProposalReturn { + #[allow(missing_docs)] + pub root: ::RustType, + #[allow(missing_docs)] + pub l2SequenceNumber: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: startingProposalCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for startingProposalCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Hash, alloy::sol_types::sol_data::Uint<256>); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: startingProposalReturn) -> Self { + (value.root, value.l2SequenceNumber) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for startingProposalReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + root: tuple.0, + l2SequenceNumber: tuple.1, + } + } + } + } + impl startingProposalReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + ( + ::tokenize(&self.root), + as alloy_sol_types::SolType>::tokenize(&self.l2SequenceNumber), + ) + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for startingProposalCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = startingProposalReturn; + type ReturnTuple<'a> = (Hash, alloy::sol_types::sol_data::Uint<256>); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "startingProposal()"; + const SELECTOR: [u8; 4] = [147u8, 141u8, 104u8, 154u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + startingProposalReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `startingRootHash()` and selector `0x25fc2ace`. +```solidity +function startingRootHash() external view returns (Hash startingRootHash_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct startingRootHashCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`startingRootHash()`](startingRootHashCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct startingRootHashReturn { + #[allow(missing_docs)] + pub startingRootHash_: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: startingRootHashCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for startingRootHashCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Hash,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: startingRootHashReturn) -> Self { + (value.startingRootHash_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for startingRootHashReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { startingRootHash_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for startingRootHashCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (Hash,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "startingRootHash()"; + const SELECTOR: [u8; 4] = [37u8, 252u8, 42u8, 206u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: startingRootHashReturn = r.into(); + r.startingRootHash_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: startingRootHashReturn = r.into(); + r.startingRootHash_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `startingSequenceNumber()` and selector `0x59cebe09`. +```solidity +function startingSequenceNumber() external view returns (uint256 startingSequenceNumber_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct startingSequenceNumberCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`startingSequenceNumber()`](startingSequenceNumberCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct startingSequenceNumberReturn { + #[allow(missing_docs)] + pub startingSequenceNumber_: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: startingSequenceNumberCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for startingSequenceNumberCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: startingSequenceNumberReturn) -> Self { + (value.startingSequenceNumber_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for startingSequenceNumberReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + startingSequenceNumber_: tuple.0, + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for startingSequenceNumberCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "startingSequenceNumber()"; + const SELECTOR: [u8; 4] = [89u8, 206u8, 190u8, 9u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: startingSequenceNumberReturn = r.into(); + r.startingSequenceNumber_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: startingSequenceNumberReturn = r.into(); + r.startingSequenceNumber_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `status()` and selector `0x200d2ed2`. +```solidity +function status() external view returns (GameStatus); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct statusCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`status()`](statusCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct statusReturn { + #[allow(missing_docs)] + pub _0: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: statusCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for statusCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (GameStatus,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: statusReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for statusReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for statusCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (GameStatus,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "status()"; + const SELECTOR: [u8; 4] = [32u8, 13u8, 46u8, 210u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: statusReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: statusReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `step(uint256,bool,bytes,bytes)` and selector `0xd8cc1a3c`. +```solidity +function step(uint256 _claimIndex, bool _isAttack, bytes memory _stateData, bytes memory _proof) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct stepCall { + #[allow(missing_docs)] + pub _claimIndex: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _isAttack: bool, + #[allow(missing_docs)] + pub _stateData: alloy::sol_types::private::Bytes, + #[allow(missing_docs)] + pub _proof: alloy::sol_types::private::Bytes, + } + ///Container type for the return parameters of the [`step(uint256,bool,bytes,bytes)`](stepCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct stepReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Bool, + alloy::sol_types::sol_data::Bytes, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + bool, + alloy::sol_types::private::Bytes, + alloy::sol_types::private::Bytes, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: stepCall) -> Self { + (value._claimIndex, value._isAttack, value._stateData, value._proof) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for stepCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _claimIndex: tuple.0, + _isAttack: tuple.1, + _stateData: tuple.2, + _proof: tuple.3, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: stepReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for stepReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl stepReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for stepCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Bool, + alloy::sol_types::sol_data::Bytes, + alloy::sol_types::sol_data::Bytes, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = stepReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "step(uint256,bool,bytes,bytes)"; + const SELECTOR: [u8; 4] = [216u8, 204u8, 26u8, 60u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._claimIndex), + ::tokenize( + &self._isAttack, + ), + ::tokenize( + &self._stateData, + ), + ::tokenize( + &self._proof, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + stepReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `subgames(uint256,uint256)` and selector `0x2ad69aeb`. +```solidity +function subgames(uint256, uint256) external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct subgamesCall { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _1: alloy::sol_types::private::primitives::aliases::U256, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`subgames(uint256,uint256)`](subgamesCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct subgamesReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: subgamesCall) -> Self { + (value._0, value._1) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for subgamesCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0, _1: tuple.1 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: subgamesReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for subgamesReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for subgamesCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "subgames(uint256,uint256)"; + const SELECTOR: [u8; 4] = [42u8, 214u8, 154u8, 235u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._0), + as alloy_sol_types::SolType>::tokenize(&self._1), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: subgamesReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: subgamesReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `version()` and selector `0x54fd4d50`. +```solidity +function version() external pure returns (string memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`version()`](versionCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for versionCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::String; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "version()"; + const SELECTOR: [u8; 4] = [84u8, 253u8, 77u8, 80u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `vm()` and selector `0x3a768463`. +```solidity +function vm() external pure returns (address vm_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct vmCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`vm()`](vmCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct vmReturn { + #[allow(missing_docs)] + pub vm_: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: vmCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for vmCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: vmReturn) -> Self { + (value.vm_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for vmReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { vm_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for vmCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "vm()"; + const SELECTOR: [u8; 4] = [58u8, 118u8, 132u8, 99u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: vmReturn = r.into(); + r.vm_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: vmReturn = r.into(); + r.vm_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `wasRespectedGameTypeWhenCreated()` and selector `0x250e69bd`. +```solidity +function wasRespectedGameTypeWhenCreated() external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct wasRespectedGameTypeWhenCreatedCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`wasRespectedGameTypeWhenCreated()`](wasRespectedGameTypeWhenCreatedCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct wasRespectedGameTypeWhenCreatedReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: wasRespectedGameTypeWhenCreatedCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for wasRespectedGameTypeWhenCreatedCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: wasRespectedGameTypeWhenCreatedReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for wasRespectedGameTypeWhenCreatedReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for wasRespectedGameTypeWhenCreatedCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "wasRespectedGameTypeWhenCreated()"; + const SELECTOR: [u8; 4] = [37u8, 14u8, 105u8, 189u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: wasRespectedGameTypeWhenCreatedReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: wasRespectedGameTypeWhenCreatedReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `weth()` and selector `0x3fc8cef3`. +```solidity +function weth() external pure returns (address weth_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct wethCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`weth()`](wethCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct wethReturn { + #[allow(missing_docs)] + pub weth_: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: wethCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for wethCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: wethReturn) -> Self { + (value.weth_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for wethReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { weth_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for wethCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "weth()"; + const SELECTOR: [u8; 4] = [63u8, 200u8, 206u8, 243u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: wethReturn = r.into(); + r.weth_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: wethReturn = r.into(); + r.weth_ + }) + } + } + }; + ///Container for all the [`SuperPermissionedDisputeGame`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum SuperPermissionedDisputeGameCalls { + #[allow(missing_docs)] + absolutePrestate(absolutePrestateCall), + #[allow(missing_docs)] + addLocalData(addLocalDataCall), + #[allow(missing_docs)] + anchorStateRegistry(anchorStateRegistryCall), + #[allow(missing_docs)] + attack(attackCall), + #[allow(missing_docs)] + bondDistributionMode(bondDistributionModeCall), + #[allow(missing_docs)] + challenger(challengerCall), + #[allow(missing_docs)] + claimCredit(claimCreditCall), + #[allow(missing_docs)] + claimData(claimDataCall), + #[allow(missing_docs)] + claimDataLen(claimDataLenCall), + #[allow(missing_docs)] + claims(claimsCall), + #[allow(missing_docs)] + clockExtension(clockExtensionCall), + #[allow(missing_docs)] + closeGame(closeGameCall), + #[allow(missing_docs)] + createdAt(createdAtCall), + #[allow(missing_docs)] + credit(creditCall), + #[allow(missing_docs)] + defend(defendCall), + #[allow(missing_docs)] + extraData(extraDataCall), + #[allow(missing_docs)] + gameCreator(gameCreatorCall), + #[allow(missing_docs)] + gameData(gameDataCall), + #[allow(missing_docs)] + gameType(gameTypeCall), + #[allow(missing_docs)] + getChallengerDuration(getChallengerDurationCall), + #[allow(missing_docs)] + getNumToResolve(getNumToResolveCall), + #[allow(missing_docs)] + getRequiredBond(getRequiredBondCall), + #[allow(missing_docs)] + hasUnlockedCredit(hasUnlockedCreditCall), + #[allow(missing_docs)] + initialize(initializeCall), + #[allow(missing_docs)] + l1Head(l1HeadCall), + #[allow(missing_docs)] + l2SequenceNumber(l2SequenceNumberCall), + #[allow(missing_docs)] + maxClockDuration(maxClockDurationCall), + #[allow(missing_docs)] + maxGameDepth(maxGameDepthCall), + #[allow(missing_docs)] + r#move(moveCall), + #[allow(missing_docs)] + normalModeCredit(normalModeCreditCall), + #[allow(missing_docs)] + proposer(proposerCall), + #[allow(missing_docs)] + refundModeCredit(refundModeCreditCall), + #[allow(missing_docs)] + resolutionCheckpoints(resolutionCheckpointsCall), + #[allow(missing_docs)] + resolve(resolveCall), + #[allow(missing_docs)] + resolveClaim(resolveClaimCall), + #[allow(missing_docs)] + resolvedAt(resolvedAtCall), + #[allow(missing_docs)] + resolvedSubgames(resolvedSubgamesCall), + #[allow(missing_docs)] + rootClaim(rootClaimCall), + #[allow(missing_docs)] + splitDepth(splitDepthCall), + #[allow(missing_docs)] + startingProposal(startingProposalCall), + #[allow(missing_docs)] + startingRootHash(startingRootHashCall), + #[allow(missing_docs)] + startingSequenceNumber(startingSequenceNumberCall), + #[allow(missing_docs)] + status(statusCall), + #[allow(missing_docs)] + step(stepCall), + #[allow(missing_docs)] + subgames(subgamesCall), + #[allow(missing_docs)] + version(versionCall), + #[allow(missing_docs)] + vm(vmCall), + #[allow(missing_docs)] + wasRespectedGameTypeWhenCreated(wasRespectedGameTypeWhenCreatedCall), + #[allow(missing_docs)] + weth(wethCall), + } + impl SuperPermissionedDisputeGameCalls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [3u8, 194u8, 146u8, 77u8], + [25u8, 239u8, 254u8, 180u8], + [32u8, 13u8, 46u8, 210u8], + [34u8, 42u8, 191u8, 69u8], + [37u8, 14u8, 105u8, 189u8], + [37u8, 252u8, 42u8, 206u8], + [40u8, 16u8, 225u8, 214u8], + [42u8, 214u8, 154u8, 235u8], + [55u8, 141u8, 212u8, 140u8], + [55u8, 177u8, 178u8, 41u8], + [58u8, 118u8, 132u8, 99u8], + [63u8, 200u8, 206u8, 243u8], + [71u8, 39u8, 119u8, 198u8], + [82u8, 157u8, 106u8, 140u8], + [83u8, 77u8, 176u8, 226u8], + [84u8, 253u8, 77u8, 80u8], + [89u8, 206u8, 190u8, 9u8], + [90u8, 95u8, 162u8, 217u8], + [92u8, 12u8, 186u8, 51u8], + [96u8, 157u8, 51u8, 52u8], + [96u8, 226u8, 116u8, 100u8], + [99u8, 97u8, 80u8, 109u8], + [107u8, 103u8, 22u8, 192u8], + [111u8, 3u8, 68u8, 9u8], + [120u8, 107u8, 132u8, 75u8], + [123u8, 15u8, 10u8, 220u8], + [129u8, 41u8, 252u8, 28u8], + [137u8, 128u8, 224u8, 204u8], + [141u8, 69u8, 10u8, 149u8], + [147u8, 141u8, 104u8, 154u8], + [153u8, 115u8, 94u8, 50u8], + [164u8, 69u8, 236u8, 230u8], + [168u8, 228u8, 251u8, 144u8], + [187u8, 220u8, 2u8, 219u8], + [188u8, 239u8, 59u8, 85u8], + [189u8, 141u8, 169u8, 86u8], + [192u8, 216u8, 187u8, 116u8], + [195u8, 149u8, 225u8, 202u8], + [198u8, 240u8, 48u8, 140u8], + [207u8, 9u8, 224u8, 208u8], + [213u8, 212u8, 77u8, 128u8], + [216u8, 204u8, 26u8, 60u8], + [218u8, 189u8, 57u8, 109u8], + [236u8, 94u8, 99u8, 8u8], + [239u8, 240u8, 245u8, 146u8], + [248u8, 244u8, 63u8, 246u8], + [250u8, 36u8, 247u8, 67u8], + [250u8, 49u8, 90u8, 169u8], + [254u8, 43u8, 190u8, 178u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(resolveClaim), + ::core::stringify!(resolvedAt), + ::core::stringify!(status), + ::core::stringify!(hasUnlockedCredit), + ::core::stringify!(wasRespectedGameTypeWhenCreated), + ::core::stringify!(startingRootHash), + ::core::stringify!(resolve), + ::core::stringify!(subgames), + ::core::stringify!(bondDistributionMode), + ::core::stringify!(gameCreator), + ::core::stringify!(vm), + ::core::stringify!(weth), + ::core::stringify!(attack), + ::core::stringify!(normalModeCredit), + ::core::stringify!(challenger), + ::core::stringify!(version), + ::core::stringify!(startingSequenceNumber), + ::core::stringify!(getNumToResolve), + ::core::stringify!(anchorStateRegistry), + ::core::stringify!(extraData), + ::core::stringify!(claimCredit), + ::core::stringify!(l1Head), + ::core::stringify!(clockExtension), + ::core::stringify!(r#move), + ::core::stringify!(closeGame), + ::core::stringify!(defend), + ::core::stringify!(initialize), + ::core::stringify!(claimDataLen), + ::core::stringify!(absolutePrestate), + ::core::stringify!(startingProposal), + ::core::stringify!(l2SequenceNumber), + ::core::stringify!(resolutionCheckpoints), + ::core::stringify!(proposer), + ::core::stringify!(gameType), + ::core::stringify!(rootClaim), + ::core::stringify!(getChallengerDuration), + ::core::stringify!(refundModeCredit), + ::core::stringify!(getRequiredBond), + ::core::stringify!(claimData), + ::core::stringify!(createdAt), + ::core::stringify!(credit), + ::core::stringify!(step), + ::core::stringify!(maxClockDuration), + ::core::stringify!(splitDepth), + ::core::stringify!(claims), + ::core::stringify!(addLocalData), + ::core::stringify!(gameData), + ::core::stringify!(maxGameDepth), + ::core::stringify!(resolvedSubgames), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for SuperPermissionedDisputeGameCalls { + const NAME: &'static str = "SuperPermissionedDisputeGameCalls"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 49usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::absolutePrestate(_) => { + ::SELECTOR + } + Self::addLocalData(_) => { + ::SELECTOR + } + Self::anchorStateRegistry(_) => { + ::SELECTOR + } + Self::attack(_) => ::SELECTOR, + Self::bondDistributionMode(_) => { + ::SELECTOR + } + Self::challenger(_) => { + ::SELECTOR + } + Self::claimCredit(_) => { + ::SELECTOR + } + Self::claimData(_) => { + ::SELECTOR + } + Self::claimDataLen(_) => { + ::SELECTOR + } + Self::claims(_) => ::SELECTOR, + Self::clockExtension(_) => { + ::SELECTOR + } + Self::closeGame(_) => { + ::SELECTOR + } + Self::createdAt(_) => { + ::SELECTOR + } + Self::credit(_) => ::SELECTOR, + Self::defend(_) => ::SELECTOR, + Self::extraData(_) => { + ::SELECTOR + } + Self::gameCreator(_) => { + ::SELECTOR + } + Self::gameData(_) => ::SELECTOR, + Self::gameType(_) => ::SELECTOR, + Self::getChallengerDuration(_) => { + ::SELECTOR + } + Self::getNumToResolve(_) => { + ::SELECTOR + } + Self::getRequiredBond(_) => { + ::SELECTOR + } + Self::hasUnlockedCredit(_) => { + ::SELECTOR + } + Self::initialize(_) => { + ::SELECTOR + } + Self::l1Head(_) => ::SELECTOR, + Self::l2SequenceNumber(_) => { + ::SELECTOR + } + Self::maxClockDuration(_) => { + ::SELECTOR + } + Self::maxGameDepth(_) => { + ::SELECTOR + } + Self::r#move(_) => ::SELECTOR, + Self::normalModeCredit(_) => { + ::SELECTOR + } + Self::proposer(_) => ::SELECTOR, + Self::refundModeCredit(_) => { + ::SELECTOR + } + Self::resolutionCheckpoints(_) => { + ::SELECTOR + } + Self::resolve(_) => ::SELECTOR, + Self::resolveClaim(_) => { + ::SELECTOR + } + Self::resolvedAt(_) => { + ::SELECTOR + } + Self::resolvedSubgames(_) => { + ::SELECTOR + } + Self::rootClaim(_) => { + ::SELECTOR + } + Self::splitDepth(_) => { + ::SELECTOR + } + Self::startingProposal(_) => { + ::SELECTOR + } + Self::startingRootHash(_) => { + ::SELECTOR + } + Self::startingSequenceNumber(_) => { + ::SELECTOR + } + Self::status(_) => ::SELECTOR, + Self::step(_) => ::SELECTOR, + Self::subgames(_) => ::SELECTOR, + Self::version(_) => ::SELECTOR, + Self::vm(_) => ::SELECTOR, + Self::wasRespectedGameTypeWhenCreated(_) => { + ::SELECTOR + } + Self::weth(_) => ::SELECTOR, + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn resolveClaim( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperPermissionedDisputeGameCalls::resolveClaim) + } + resolveClaim + }, + { + fn resolvedAt( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperPermissionedDisputeGameCalls::resolvedAt) + } + resolvedAt + }, + { + fn status( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(SuperPermissionedDisputeGameCalls::status) + } + status + }, + { + fn hasUnlockedCredit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperPermissionedDisputeGameCalls::hasUnlockedCredit) + } + hasUnlockedCredit + }, + { + fn wasRespectedGameTypeWhenCreated( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + SuperPermissionedDisputeGameCalls::wasRespectedGameTypeWhenCreated, + ) + } + wasRespectedGameTypeWhenCreated + }, + { + fn startingRootHash( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperPermissionedDisputeGameCalls::startingRootHash) + } + startingRootHash + }, + { + fn resolve( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(SuperPermissionedDisputeGameCalls::resolve) + } + resolve + }, + { + fn subgames( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(SuperPermissionedDisputeGameCalls::subgames) + } + subgames + }, + { + fn bondDistributionMode( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperPermissionedDisputeGameCalls::bondDistributionMode) + } + bondDistributionMode + }, + { + fn gameCreator( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperPermissionedDisputeGameCalls::gameCreator) + } + gameCreator + }, + { + fn vm( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(SuperPermissionedDisputeGameCalls::vm) + } + vm + }, + { + fn weth( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(SuperPermissionedDisputeGameCalls::weth) + } + weth + }, + { + fn attack( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(SuperPermissionedDisputeGameCalls::attack) + } + attack + }, + { + fn normalModeCredit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperPermissionedDisputeGameCalls::normalModeCredit) + } + normalModeCredit + }, + { + fn challenger( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperPermissionedDisputeGameCalls::challenger) + } + challenger + }, + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(SuperPermissionedDisputeGameCalls::version) + } + version + }, + { + fn startingSequenceNumber( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + SuperPermissionedDisputeGameCalls::startingSequenceNumber, + ) + } + startingSequenceNumber + }, + { + fn getNumToResolve( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperPermissionedDisputeGameCalls::getNumToResolve) + } + getNumToResolve + }, + { + fn anchorStateRegistry( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperPermissionedDisputeGameCalls::anchorStateRegistry) + } + anchorStateRegistry + }, + { + fn extraData( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(SuperPermissionedDisputeGameCalls::extraData) + } + extraData + }, + { + fn claimCredit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperPermissionedDisputeGameCalls::claimCredit) + } + claimCredit + }, + { + fn l1Head( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(SuperPermissionedDisputeGameCalls::l1Head) + } + l1Head + }, + { + fn clockExtension( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperPermissionedDisputeGameCalls::clockExtension) + } + clockExtension + }, + { + fn r#move( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(SuperPermissionedDisputeGameCalls::r#move) + } + r#move + }, + { + fn closeGame( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(SuperPermissionedDisputeGameCalls::closeGame) + } + closeGame + }, + { + fn defend( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(SuperPermissionedDisputeGameCalls::defend) + } + defend + }, + { + fn initialize( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperPermissionedDisputeGameCalls::initialize) + } + initialize + }, + { + fn claimDataLen( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperPermissionedDisputeGameCalls::claimDataLen) + } + claimDataLen + }, + { + fn absolutePrestate( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperPermissionedDisputeGameCalls::absolutePrestate) + } + absolutePrestate + }, + { + fn startingProposal( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperPermissionedDisputeGameCalls::startingProposal) + } + startingProposal + }, + { + fn l2SequenceNumber( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperPermissionedDisputeGameCalls::l2SequenceNumber) + } + l2SequenceNumber + }, + { + fn resolutionCheckpoints( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + SuperPermissionedDisputeGameCalls::resolutionCheckpoints, + ) + } + resolutionCheckpoints + }, + { + fn proposer( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(SuperPermissionedDisputeGameCalls::proposer) + } + proposer + }, + { + fn gameType( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(SuperPermissionedDisputeGameCalls::gameType) + } + gameType + }, + { + fn rootClaim( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(SuperPermissionedDisputeGameCalls::rootClaim) + } + rootClaim + }, + { + fn getChallengerDuration( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + SuperPermissionedDisputeGameCalls::getChallengerDuration, + ) + } + getChallengerDuration + }, + { + fn refundModeCredit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperPermissionedDisputeGameCalls::refundModeCredit) + } + refundModeCredit + }, + { + fn getRequiredBond( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperPermissionedDisputeGameCalls::getRequiredBond) + } + getRequiredBond + }, + { + fn claimData( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(SuperPermissionedDisputeGameCalls::claimData) + } + claimData + }, + { + fn createdAt( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(SuperPermissionedDisputeGameCalls::createdAt) + } + createdAt + }, + { + fn credit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(SuperPermissionedDisputeGameCalls::credit) + } + credit + }, + { + fn step( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(SuperPermissionedDisputeGameCalls::step) + } + step + }, + { + fn maxClockDuration( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperPermissionedDisputeGameCalls::maxClockDuration) + } + maxClockDuration + }, + { + fn splitDepth( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperPermissionedDisputeGameCalls::splitDepth) + } + splitDepth + }, + { + fn claims( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(SuperPermissionedDisputeGameCalls::claims) + } + claims + }, + { + fn addLocalData( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperPermissionedDisputeGameCalls::addLocalData) + } + addLocalData + }, + { + fn gameData( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(SuperPermissionedDisputeGameCalls::gameData) + } + gameData + }, + { + fn maxGameDepth( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperPermissionedDisputeGameCalls::maxGameDepth) + } + maxGameDepth + }, + { + fn resolvedSubgames( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperPermissionedDisputeGameCalls::resolvedSubgames) + } + resolvedSubgames + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn resolveClaim( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperPermissionedDisputeGameCalls::resolveClaim) + } + resolveClaim + }, + { + fn resolvedAt( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperPermissionedDisputeGameCalls::resolvedAt) + } + resolvedAt + }, + { + fn status( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperPermissionedDisputeGameCalls::status) + } + status + }, + { + fn hasUnlockedCredit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperPermissionedDisputeGameCalls::hasUnlockedCredit) + } + hasUnlockedCredit + }, + { + fn wasRespectedGameTypeWhenCreated( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + SuperPermissionedDisputeGameCalls::wasRespectedGameTypeWhenCreated, + ) + } + wasRespectedGameTypeWhenCreated + }, + { + fn startingRootHash( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperPermissionedDisputeGameCalls::startingRootHash) + } + startingRootHash + }, + { + fn resolve( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperPermissionedDisputeGameCalls::resolve) + } + resolve + }, + { + fn subgames( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperPermissionedDisputeGameCalls::subgames) + } + subgames + }, + { + fn bondDistributionMode( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperPermissionedDisputeGameCalls::bondDistributionMode) + } + bondDistributionMode + }, + { + fn gameCreator( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperPermissionedDisputeGameCalls::gameCreator) + } + gameCreator + }, + { + fn vm( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperPermissionedDisputeGameCalls::vm) + } + vm + }, + { + fn weth( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperPermissionedDisputeGameCalls::weth) + } + weth + }, + { + fn attack( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperPermissionedDisputeGameCalls::attack) + } + attack + }, + { + fn normalModeCredit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperPermissionedDisputeGameCalls::normalModeCredit) + } + normalModeCredit + }, + { + fn challenger( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperPermissionedDisputeGameCalls::challenger) + } + challenger + }, + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperPermissionedDisputeGameCalls::version) + } + version + }, + { + fn startingSequenceNumber( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + SuperPermissionedDisputeGameCalls::startingSequenceNumber, + ) + } + startingSequenceNumber + }, + { + fn getNumToResolve( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperPermissionedDisputeGameCalls::getNumToResolve) + } + getNumToResolve + }, + { + fn anchorStateRegistry( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperPermissionedDisputeGameCalls::anchorStateRegistry) + } + anchorStateRegistry + }, + { + fn extraData( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperPermissionedDisputeGameCalls::extraData) + } + extraData + }, + { + fn claimCredit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperPermissionedDisputeGameCalls::claimCredit) + } + claimCredit + }, + { + fn l1Head( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperPermissionedDisputeGameCalls::l1Head) + } + l1Head + }, + { + fn clockExtension( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperPermissionedDisputeGameCalls::clockExtension) + } + clockExtension + }, + { + fn r#move( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperPermissionedDisputeGameCalls::r#move) + } + r#move + }, + { + fn closeGame( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperPermissionedDisputeGameCalls::closeGame) + } + closeGame + }, + { + fn defend( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperPermissionedDisputeGameCalls::defend) + } + defend + }, + { + fn initialize( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperPermissionedDisputeGameCalls::initialize) + } + initialize + }, + { + fn claimDataLen( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperPermissionedDisputeGameCalls::claimDataLen) + } + claimDataLen + }, + { + fn absolutePrestate( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperPermissionedDisputeGameCalls::absolutePrestate) + } + absolutePrestate + }, + { + fn startingProposal( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperPermissionedDisputeGameCalls::startingProposal) + } + startingProposal + }, + { + fn l2SequenceNumber( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperPermissionedDisputeGameCalls::l2SequenceNumber) + } + l2SequenceNumber + }, + { + fn resolutionCheckpoints( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + SuperPermissionedDisputeGameCalls::resolutionCheckpoints, + ) + } + resolutionCheckpoints + }, + { + fn proposer( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperPermissionedDisputeGameCalls::proposer) + } + proposer + }, + { + fn gameType( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperPermissionedDisputeGameCalls::gameType) + } + gameType + }, + { + fn rootClaim( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperPermissionedDisputeGameCalls::rootClaim) + } + rootClaim + }, + { + fn getChallengerDuration( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + SuperPermissionedDisputeGameCalls::getChallengerDuration, + ) + } + getChallengerDuration + }, + { + fn refundModeCredit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperPermissionedDisputeGameCalls::refundModeCredit) + } + refundModeCredit + }, + { + fn getRequiredBond( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperPermissionedDisputeGameCalls::getRequiredBond) + } + getRequiredBond + }, + { + fn claimData( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperPermissionedDisputeGameCalls::claimData) + } + claimData + }, + { + fn createdAt( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperPermissionedDisputeGameCalls::createdAt) + } + createdAt + }, + { + fn credit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperPermissionedDisputeGameCalls::credit) + } + credit + }, + { + fn step( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperPermissionedDisputeGameCalls::step) + } + step + }, + { + fn maxClockDuration( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperPermissionedDisputeGameCalls::maxClockDuration) + } + maxClockDuration + }, + { + fn splitDepth( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperPermissionedDisputeGameCalls::splitDepth) + } + splitDepth + }, + { + fn claims( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperPermissionedDisputeGameCalls::claims) + } + claims + }, + { + fn addLocalData( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperPermissionedDisputeGameCalls::addLocalData) + } + addLocalData + }, + { + fn gameData( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperPermissionedDisputeGameCalls::gameData) + } + gameData + }, + { + fn maxGameDepth( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperPermissionedDisputeGameCalls::maxGameDepth) + } + maxGameDepth + }, + { + fn resolvedSubgames( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperPermissionedDisputeGameCalls::resolvedSubgames) + } + resolvedSubgames + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::absolutePrestate(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::addLocalData(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::anchorStateRegistry(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::attack(inner) => { + ::abi_encoded_size(inner) + } + Self::bondDistributionMode(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::challenger(inner) => { + ::abi_encoded_size(inner) + } + Self::claimCredit(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::claimData(inner) => { + ::abi_encoded_size(inner) + } + Self::claimDataLen(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::claims(inner) => { + ::abi_encoded_size(inner) + } + Self::clockExtension(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::closeGame(inner) => { + ::abi_encoded_size(inner) + } + Self::createdAt(inner) => { + ::abi_encoded_size(inner) + } + Self::credit(inner) => { + ::abi_encoded_size(inner) + } + Self::defend(inner) => { + ::abi_encoded_size(inner) + } + Self::extraData(inner) => { + ::abi_encoded_size(inner) + } + Self::gameCreator(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::gameData(inner) => { + ::abi_encoded_size(inner) + } + Self::gameType(inner) => { + ::abi_encoded_size(inner) + } + Self::getChallengerDuration(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::getNumToResolve(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::getRequiredBond(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::hasUnlockedCredit(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::initialize(inner) => { + ::abi_encoded_size(inner) + } + Self::l1Head(inner) => { + ::abi_encoded_size(inner) + } + Self::l2SequenceNumber(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::maxClockDuration(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::maxGameDepth(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::r#move(inner) => { + ::abi_encoded_size(inner) + } + Self::normalModeCredit(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::proposer(inner) => { + ::abi_encoded_size(inner) + } + Self::refundModeCredit(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::resolutionCheckpoints(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::resolve(inner) => { + ::abi_encoded_size(inner) + } + Self::resolveClaim(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::resolvedAt(inner) => { + ::abi_encoded_size(inner) + } + Self::resolvedSubgames(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::rootClaim(inner) => { + ::abi_encoded_size(inner) + } + Self::splitDepth(inner) => { + ::abi_encoded_size(inner) + } + Self::startingProposal(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::startingRootHash(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::startingSequenceNumber(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::status(inner) => { + ::abi_encoded_size(inner) + } + Self::step(inner) => { + ::abi_encoded_size(inner) + } + Self::subgames(inner) => { + ::abi_encoded_size(inner) + } + Self::version(inner) => { + ::abi_encoded_size(inner) + } + Self::vm(inner) => { + ::abi_encoded_size(inner) + } + Self::wasRespectedGameTypeWhenCreated(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::weth(inner) => { + ::abi_encoded_size(inner) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::absolutePrestate(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::addLocalData(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::anchorStateRegistry(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::attack(inner) => { + ::abi_encode_raw(inner, out) + } + Self::bondDistributionMode(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::challenger(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::claimCredit(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::claimData(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::claimDataLen(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::claims(inner) => { + ::abi_encode_raw(inner, out) + } + Self::clockExtension(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::closeGame(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::createdAt(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::credit(inner) => { + ::abi_encode_raw(inner, out) + } + Self::defend(inner) => { + ::abi_encode_raw(inner, out) + } + Self::extraData(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::gameCreator(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::gameData(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::gameType(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::getChallengerDuration(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::getNumToResolve(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::getRequiredBond(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::hasUnlockedCredit(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::initialize(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::l1Head(inner) => { + ::abi_encode_raw(inner, out) + } + Self::l2SequenceNumber(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::maxClockDuration(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::maxGameDepth(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::r#move(inner) => { + ::abi_encode_raw(inner, out) + } + Self::normalModeCredit(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::proposer(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::refundModeCredit(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::resolutionCheckpoints(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::resolve(inner) => { + ::abi_encode_raw(inner, out) + } + Self::resolveClaim(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::resolvedAt(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::resolvedSubgames(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::rootClaim(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::splitDepth(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::startingProposal(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::startingRootHash(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::startingSequenceNumber(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::status(inner) => { + ::abi_encode_raw(inner, out) + } + Self::step(inner) => { + ::abi_encode_raw(inner, out) + } + Self::subgames(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::version(inner) => { + ::abi_encode_raw(inner, out) + } + Self::vm(inner) => { + ::abi_encode_raw(inner, out) + } + Self::wasRespectedGameTypeWhenCreated(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::weth(inner) => { + ::abi_encode_raw(inner, out) + } + } + } + } + ///Container for all the [`SuperPermissionedDisputeGame`](self) custom errors. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum SuperPermissionedDisputeGameErrors { + #[allow(missing_docs)] + AlreadyInitialized(AlreadyInitialized), + #[allow(missing_docs)] + AnchorRootNotFound(AnchorRootNotFound), + #[allow(missing_docs)] + BadAuth(BadAuth), + #[allow(missing_docs)] + BadExtraData(BadExtraData), + #[allow(missing_docs)] + BondTransferFailed(BondTransferFailed), + #[allow(missing_docs)] + CannotDefendRootClaim(CannotDefendRootClaim), + #[allow(missing_docs)] + ClaimAboveSplit(ClaimAboveSplit), + #[allow(missing_docs)] + ClaimAlreadyExists(ClaimAlreadyExists), + #[allow(missing_docs)] + ClaimAlreadyResolved(ClaimAlreadyResolved), + #[allow(missing_docs)] + ClockNotExpired(ClockNotExpired), + #[allow(missing_docs)] + ClockTimeExceeded(ClockTimeExceeded), + #[allow(missing_docs)] + DuplicateStep(DuplicateStep), + #[allow(missing_docs)] + GameDepthExceeded(GameDepthExceeded), + #[allow(missing_docs)] + GameNotFinalized(GameNotFinalized), + #[allow(missing_docs)] + GameNotInProgress(GameNotInProgress), + #[allow(missing_docs)] + GameNotResolved(GameNotResolved), + #[allow(missing_docs)] + GamePaused(GamePaused), + #[allow(missing_docs)] + IncorrectBondAmount(IncorrectBondAmount), + #[allow(missing_docs)] + InvalidBondDistributionMode(InvalidBondDistributionMode), + #[allow(missing_docs)] + InvalidChallengePeriod(InvalidChallengePeriod), + #[allow(missing_docs)] + InvalidClockExtension(InvalidClockExtension), + #[allow(missing_docs)] + InvalidDisputedClaimIndex(InvalidDisputedClaimIndex), + #[allow(missing_docs)] + InvalidLocalIdent(InvalidLocalIdent), + #[allow(missing_docs)] + InvalidParent(InvalidParent), + #[allow(missing_docs)] + InvalidPrestate(InvalidPrestate), + #[allow(missing_docs)] + InvalidSplitDepth(InvalidSplitDepth), + #[allow(missing_docs)] + MaxDepthTooLarge(MaxDepthTooLarge), + #[allow(missing_docs)] + NoChainIdNeeded(NoChainIdNeeded), + #[allow(missing_docs)] + NoCreditToClaim(NoCreditToClaim), + #[allow(missing_docs)] + OutOfOrderResolution(OutOfOrderResolution), + #[allow(missing_docs)] + SuperFaultDisputeGameInvalidRootClaim(SuperFaultDisputeGameInvalidRootClaim), + #[allow(missing_docs)] + UnexpectedRootClaim(UnexpectedRootClaim), + #[allow(missing_docs)] + ValidStep(ValidStep), + } + impl SuperPermissionedDisputeGameErrors { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [7u8, 138u8, 61u8, 244u8], + [13u8, 193u8, 73u8, 240u8], + [23u8, 191u8, 229u8, 247u8], + [34u8, 61u8, 179u8, 148u8], + [44u8, 250u8, 192u8, 130u8], + [48u8, 20u8, 3u8, 50u8], + [51u8, 129u8, 209u8, 20u8], + [55u8, 154u8, 126u8, 217u8], + [72u8, 81u8, 189u8, 155u8], + [86u8, 245u8, 123u8, 43u8], + [95u8, 83u8, 221u8, 152u8], + [103u8, 254u8, 25u8, 80u8], + [105u8, 101u8, 80u8, 255u8], + [106u8, 107u8, 195u8, 178u8], + [119u8, 223u8, 227u8, 50u8], + [128u8, 73u8, 126u8, 59u8], + [131u8, 230u8, 204u8, 107u8], + [134u8, 32u8, 170u8, 25u8], + [141u8, 119u8, 236u8, 172u8], + [144u8, 113u8, 230u8, 175u8], + [152u8, 36u8, 189u8, 171u8], + [154u8, 7u8, 102u8, 70u8], + [164u8, 38u8, 55u8, 188u8], + [179u8, 75u8, 92u8, 34u8], + [180u8, 225u8, 36u8, 51u8], + [193u8, 5u8, 38u8, 10u8], + [211u8, 134u8, 239u8, 62u8], + [230u8, 44u8, 207u8, 57u8], + [241u8, 169u8, 69u8, 129u8], + [242u8, 68u8, 11u8, 83u8], + [244u8, 2u8, 57u8, 219u8], + [251u8, 78u8, 64u8, 221u8], + [255u8, 19u8, 126u8, 101u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(InvalidBondDistributionMode), + ::core::stringify!(AlreadyInitialized), + ::core::stringify!(NoCreditToClaim), + ::core::stringify!(NoChainIdNeeded), + ::core::stringify!(SuperFaultDisputeGameInvalidRootClaim), + ::core::stringify!(InvalidDisputedClaimIndex), + ::core::stringify!(ClockTimeExceeded), + ::core::stringify!(GamePaused), + ::core::stringify!(GameNotFinalized), + ::core::stringify!(GameDepthExceeded), + ::core::stringify!(InvalidParent), + ::core::stringify!(GameNotInProgress), + ::core::stringify!(InvalidPrestate), + ::core::stringify!(AnchorRootNotFound), + ::core::stringify!(MaxDepthTooLarge), + ::core::stringify!(ClaimAlreadyExists), + ::core::stringify!(BondTransferFailed), + ::core::stringify!(IncorrectBondAmount), + ::core::stringify!(InvalidClockExtension), + ::core::stringify!(DuplicateStep), + ::core::stringify!(BadExtraData), + ::core::stringify!(OutOfOrderResolution), + ::core::stringify!(CannotDefendRootClaim), + ::core::stringify!(ClaimAboveSplit), + ::core::stringify!(InvalidChallengePeriod), + ::core::stringify!(GameNotResolved), + ::core::stringify!(BadAuth), + ::core::stringify!(InvalidSplitDepth), + ::core::stringify!(ClaimAlreadyResolved), + ::core::stringify!(ClockNotExpired), + ::core::stringify!(UnexpectedRootClaim), + ::core::stringify!(ValidStep), + ::core::stringify!(InvalidLocalIdent), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for SuperPermissionedDisputeGameErrors { + const NAME: &'static str = "SuperPermissionedDisputeGameErrors"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 33usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::AlreadyInitialized(_) => { + ::SELECTOR + } + Self::AnchorRootNotFound(_) => { + ::SELECTOR + } + Self::BadAuth(_) => ::SELECTOR, + Self::BadExtraData(_) => { + ::SELECTOR + } + Self::BondTransferFailed(_) => { + ::SELECTOR + } + Self::CannotDefendRootClaim(_) => { + ::SELECTOR + } + Self::ClaimAboveSplit(_) => { + ::SELECTOR + } + Self::ClaimAlreadyExists(_) => { + ::SELECTOR + } + Self::ClaimAlreadyResolved(_) => { + ::SELECTOR + } + Self::ClockNotExpired(_) => { + ::SELECTOR + } + Self::ClockTimeExceeded(_) => { + ::SELECTOR + } + Self::DuplicateStep(_) => { + ::SELECTOR + } + Self::GameDepthExceeded(_) => { + ::SELECTOR + } + Self::GameNotFinalized(_) => { + ::SELECTOR + } + Self::GameNotInProgress(_) => { + ::SELECTOR + } + Self::GameNotResolved(_) => { + ::SELECTOR + } + Self::GamePaused(_) => { + ::SELECTOR + } + Self::IncorrectBondAmount(_) => { + ::SELECTOR + } + Self::InvalidBondDistributionMode(_) => { + ::SELECTOR + } + Self::InvalidChallengePeriod(_) => { + ::SELECTOR + } + Self::InvalidClockExtension(_) => { + ::SELECTOR + } + Self::InvalidDisputedClaimIndex(_) => { + ::SELECTOR + } + Self::InvalidLocalIdent(_) => { + ::SELECTOR + } + Self::InvalidParent(_) => { + ::SELECTOR + } + Self::InvalidPrestate(_) => { + ::SELECTOR + } + Self::InvalidSplitDepth(_) => { + ::SELECTOR + } + Self::MaxDepthTooLarge(_) => { + ::SELECTOR + } + Self::NoChainIdNeeded(_) => { + ::SELECTOR + } + Self::NoCreditToClaim(_) => { + ::SELECTOR + } + Self::OutOfOrderResolution(_) => { + ::SELECTOR + } + Self::SuperFaultDisputeGameInvalidRootClaim(_) => { + ::SELECTOR + } + Self::UnexpectedRootClaim(_) => { + ::SELECTOR + } + Self::ValidStep(_) => ::SELECTOR, + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn InvalidBondDistributionMode( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + SuperPermissionedDisputeGameErrors::InvalidBondDistributionMode, + ) + } + InvalidBondDistributionMode + }, + { + fn AlreadyInitialized( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperPermissionedDisputeGameErrors::AlreadyInitialized) + } + AlreadyInitialized + }, + { + fn NoCreditToClaim( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperPermissionedDisputeGameErrors::NoCreditToClaim) + } + NoCreditToClaim + }, + { + fn NoChainIdNeeded( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperPermissionedDisputeGameErrors::NoChainIdNeeded) + } + NoChainIdNeeded + }, + { + fn SuperFaultDisputeGameInvalidRootClaim( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + SuperPermissionedDisputeGameErrors::SuperFaultDisputeGameInvalidRootClaim, + ) + } + SuperFaultDisputeGameInvalidRootClaim + }, + { + fn InvalidDisputedClaimIndex( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + SuperPermissionedDisputeGameErrors::InvalidDisputedClaimIndex, + ) + } + InvalidDisputedClaimIndex + }, + { + fn ClockTimeExceeded( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperPermissionedDisputeGameErrors::ClockTimeExceeded) + } + ClockTimeExceeded + }, + { + fn GamePaused( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(SuperPermissionedDisputeGameErrors::GamePaused) + } + GamePaused + }, + { + fn GameNotFinalized( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperPermissionedDisputeGameErrors::GameNotFinalized) + } + GameNotFinalized + }, + { + fn GameDepthExceeded( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperPermissionedDisputeGameErrors::GameDepthExceeded) + } + GameDepthExceeded + }, + { + fn InvalidParent( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperPermissionedDisputeGameErrors::InvalidParent) + } + InvalidParent + }, + { + fn GameNotInProgress( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperPermissionedDisputeGameErrors::GameNotInProgress) + } + GameNotInProgress + }, + { + fn InvalidPrestate( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperPermissionedDisputeGameErrors::InvalidPrestate) + } + InvalidPrestate + }, + { + fn AnchorRootNotFound( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperPermissionedDisputeGameErrors::AnchorRootNotFound) + } + AnchorRootNotFound + }, + { + fn MaxDepthTooLarge( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperPermissionedDisputeGameErrors::MaxDepthTooLarge) + } + MaxDepthTooLarge + }, + { + fn ClaimAlreadyExists( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperPermissionedDisputeGameErrors::ClaimAlreadyExists) + } + ClaimAlreadyExists + }, + { + fn BondTransferFailed( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperPermissionedDisputeGameErrors::BondTransferFailed) + } + BondTransferFailed + }, + { + fn IncorrectBondAmount( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperPermissionedDisputeGameErrors::IncorrectBondAmount) + } + IncorrectBondAmount + }, + { + fn InvalidClockExtension( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + SuperPermissionedDisputeGameErrors::InvalidClockExtension, + ) + } + InvalidClockExtension + }, + { + fn DuplicateStep( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperPermissionedDisputeGameErrors::DuplicateStep) + } + DuplicateStep + }, + { + fn BadExtraData( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(SuperPermissionedDisputeGameErrors::BadExtraData) + } + BadExtraData + }, + { + fn OutOfOrderResolution( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + SuperPermissionedDisputeGameErrors::OutOfOrderResolution, + ) + } + OutOfOrderResolution + }, + { + fn CannotDefendRootClaim( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + SuperPermissionedDisputeGameErrors::CannotDefendRootClaim, + ) + } + CannotDefendRootClaim + }, + { + fn ClaimAboveSplit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperPermissionedDisputeGameErrors::ClaimAboveSplit) + } + ClaimAboveSplit + }, + { + fn InvalidChallengePeriod( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + SuperPermissionedDisputeGameErrors::InvalidChallengePeriod, + ) + } + InvalidChallengePeriod + }, + { + fn GameNotResolved( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperPermissionedDisputeGameErrors::GameNotResolved) + } + GameNotResolved + }, + { + fn BadAuth( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(SuperPermissionedDisputeGameErrors::BadAuth) + } + BadAuth + }, + { + fn InvalidSplitDepth( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperPermissionedDisputeGameErrors::InvalidSplitDepth) + } + InvalidSplitDepth + }, + { + fn ClaimAlreadyResolved( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + SuperPermissionedDisputeGameErrors::ClaimAlreadyResolved, + ) + } + ClaimAlreadyResolved + }, + { + fn ClockNotExpired( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperPermissionedDisputeGameErrors::ClockNotExpired) + } + ClockNotExpired + }, + { + fn UnexpectedRootClaim( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperPermissionedDisputeGameErrors::UnexpectedRootClaim) + } + UnexpectedRootClaim + }, + { + fn ValidStep( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(SuperPermissionedDisputeGameErrors::ValidStep) + } + ValidStep + }, + { + fn InvalidLocalIdent( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperPermissionedDisputeGameErrors::InvalidLocalIdent) + } + InvalidLocalIdent + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn InvalidBondDistributionMode( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + SuperPermissionedDisputeGameErrors::InvalidBondDistributionMode, + ) + } + InvalidBondDistributionMode + }, + { + fn AlreadyInitialized( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperPermissionedDisputeGameErrors::AlreadyInitialized) + } + AlreadyInitialized + }, + { + fn NoCreditToClaim( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperPermissionedDisputeGameErrors::NoCreditToClaim) + } + NoCreditToClaim + }, + { + fn NoChainIdNeeded( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperPermissionedDisputeGameErrors::NoChainIdNeeded) + } + NoChainIdNeeded + }, + { + fn SuperFaultDisputeGameInvalidRootClaim( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + SuperPermissionedDisputeGameErrors::SuperFaultDisputeGameInvalidRootClaim, + ) + } + SuperFaultDisputeGameInvalidRootClaim + }, + { + fn InvalidDisputedClaimIndex( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + SuperPermissionedDisputeGameErrors::InvalidDisputedClaimIndex, + ) + } + InvalidDisputedClaimIndex + }, + { + fn ClockTimeExceeded( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperPermissionedDisputeGameErrors::ClockTimeExceeded) + } + ClockTimeExceeded + }, + { + fn GamePaused( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperPermissionedDisputeGameErrors::GamePaused) + } + GamePaused + }, + { + fn GameNotFinalized( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperPermissionedDisputeGameErrors::GameNotFinalized) + } + GameNotFinalized + }, + { + fn GameDepthExceeded( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperPermissionedDisputeGameErrors::GameDepthExceeded) + } + GameDepthExceeded + }, + { + fn InvalidParent( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperPermissionedDisputeGameErrors::InvalidParent) + } + InvalidParent + }, + { + fn GameNotInProgress( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperPermissionedDisputeGameErrors::GameNotInProgress) + } + GameNotInProgress + }, + { + fn InvalidPrestate( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperPermissionedDisputeGameErrors::InvalidPrestate) + } + InvalidPrestate + }, + { + fn AnchorRootNotFound( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperPermissionedDisputeGameErrors::AnchorRootNotFound) + } + AnchorRootNotFound + }, + { + fn MaxDepthTooLarge( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperPermissionedDisputeGameErrors::MaxDepthTooLarge) + } + MaxDepthTooLarge + }, + { + fn ClaimAlreadyExists( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperPermissionedDisputeGameErrors::ClaimAlreadyExists) + } + ClaimAlreadyExists + }, + { + fn BondTransferFailed( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperPermissionedDisputeGameErrors::BondTransferFailed) + } + BondTransferFailed + }, + { + fn IncorrectBondAmount( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperPermissionedDisputeGameErrors::IncorrectBondAmount) + } + IncorrectBondAmount + }, + { + fn InvalidClockExtension( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + SuperPermissionedDisputeGameErrors::InvalidClockExtension, + ) + } + InvalidClockExtension + }, + { + fn DuplicateStep( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperPermissionedDisputeGameErrors::DuplicateStep) + } + DuplicateStep + }, + { + fn BadExtraData( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperPermissionedDisputeGameErrors::BadExtraData) + } + BadExtraData + }, + { + fn OutOfOrderResolution( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + SuperPermissionedDisputeGameErrors::OutOfOrderResolution, + ) + } + OutOfOrderResolution + }, + { + fn CannotDefendRootClaim( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + SuperPermissionedDisputeGameErrors::CannotDefendRootClaim, + ) + } + CannotDefendRootClaim + }, + { + fn ClaimAboveSplit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperPermissionedDisputeGameErrors::ClaimAboveSplit) + } + ClaimAboveSplit + }, + { + fn InvalidChallengePeriod( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + SuperPermissionedDisputeGameErrors::InvalidChallengePeriod, + ) + } + InvalidChallengePeriod + }, + { + fn GameNotResolved( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperPermissionedDisputeGameErrors::GameNotResolved) + } + GameNotResolved + }, + { + fn BadAuth( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperPermissionedDisputeGameErrors::BadAuth) + } + BadAuth + }, + { + fn InvalidSplitDepth( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperPermissionedDisputeGameErrors::InvalidSplitDepth) + } + InvalidSplitDepth + }, + { + fn ClaimAlreadyResolved( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + SuperPermissionedDisputeGameErrors::ClaimAlreadyResolved, + ) + } + ClaimAlreadyResolved + }, + { + fn ClockNotExpired( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperPermissionedDisputeGameErrors::ClockNotExpired) + } + ClockNotExpired + }, + { + fn UnexpectedRootClaim( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperPermissionedDisputeGameErrors::UnexpectedRootClaim) + } + UnexpectedRootClaim + }, + { + fn ValidStep( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperPermissionedDisputeGameErrors::ValidStep) + } + ValidStep + }, + { + fn InvalidLocalIdent( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperPermissionedDisputeGameErrors::InvalidLocalIdent) + } + InvalidLocalIdent + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::AlreadyInitialized(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::AnchorRootNotFound(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::BadAuth(inner) => { + ::abi_encoded_size(inner) + } + Self::BadExtraData(inner) => { + ::abi_encoded_size(inner) + } + Self::BondTransferFailed(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::CannotDefendRootClaim(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ClaimAboveSplit(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ClaimAlreadyExists(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ClaimAlreadyResolved(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ClockNotExpired(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ClockTimeExceeded(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::DuplicateStep(inner) => { + ::abi_encoded_size(inner) + } + Self::GameDepthExceeded(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::GameNotFinalized(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::GameNotInProgress(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::GameNotResolved(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::GamePaused(inner) => { + ::abi_encoded_size(inner) + } + Self::IncorrectBondAmount(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::InvalidBondDistributionMode(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::InvalidChallengePeriod(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::InvalidClockExtension(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::InvalidDisputedClaimIndex(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::InvalidLocalIdent(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::InvalidParent(inner) => { + ::abi_encoded_size(inner) + } + Self::InvalidPrestate(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::InvalidSplitDepth(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::MaxDepthTooLarge(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::NoChainIdNeeded(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::NoCreditToClaim(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::OutOfOrderResolution(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::SuperFaultDisputeGameInvalidRootClaim(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::UnexpectedRootClaim(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ValidStep(inner) => { + ::abi_encoded_size(inner) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::AlreadyInitialized(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::AnchorRootNotFound(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::BadAuth(inner) => { + ::abi_encode_raw(inner, out) + } + Self::BadExtraData(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::BondTransferFailed(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::CannotDefendRootClaim(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ClaimAboveSplit(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ClaimAlreadyExists(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ClaimAlreadyResolved(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ClockNotExpired(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ClockTimeExceeded(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::DuplicateStep(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::GameDepthExceeded(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::GameNotFinalized(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::GameNotInProgress(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::GameNotResolved(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::GamePaused(inner) => { + ::abi_encode_raw(inner, out) + } + Self::IncorrectBondAmount(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidBondDistributionMode(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidChallengePeriod(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidClockExtension(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidDisputedClaimIndex(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidLocalIdent(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidParent(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidPrestate(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidSplitDepth(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::MaxDepthTooLarge(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::NoChainIdNeeded(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::NoCreditToClaim(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::OutOfOrderResolution(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::SuperFaultDisputeGameInvalidRootClaim(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::UnexpectedRootClaim(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ValidStep(inner) => { + ::abi_encode_raw(inner, out) + } + } + } + } + ///Container for all the [`SuperPermissionedDisputeGame`](self) events. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum SuperPermissionedDisputeGameEvents { + #[allow(missing_docs)] + GameClosed(GameClosed), + #[allow(missing_docs)] + Move(Move), + #[allow(missing_docs)] + Resolved(Resolved), + } + impl SuperPermissionedDisputeGameEvents { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 32usize]] = &[ + [ + 94u8, 24u8, 111u8, 9u8, 185u8, 201u8, 52u8, 145u8, 241u8, 78u8, 39u8, + 126u8, 234u8, 127u8, 170u8, 93u8, 230u8, 162u8, 212u8, 189u8, 167u8, + 90u8, 121u8, 175u8, 122u8, 54u8, 132u8, 251u8, 251u8, 66u8, 218u8, 96u8, + ], + [ + 153u8, 8u8, 234u8, 172u8, 6u8, 69u8, 223u8, 157u8, 7u8, 4u8, 208u8, + 106u8, 220u8, 158u8, 7u8, 51u8, 124u8, 149u8, 29u8, 226u8, 240u8, 107u8, + 95u8, 40u8, 54u8, 21u8, 29u8, 72u8, 213u8, 228u8, 114u8, 47u8, + ], + [ + 155u8, 50u8, 69u8, 116u8, 14u8, 195u8, 177u8, 85u8, 9u8, 138u8, 85u8, + 190u8, 132u8, 149u8, 122u8, 77u8, 161u8, 62u8, 175u8, 127u8, 20u8, 168u8, + 188u8, 111u8, 83u8, 18u8, 108u8, 11u8, 147u8, 80u8, 242u8, 190u8, + ], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(Resolved), + ::core::stringify!(GameClosed), + ::core::stringify!(Move), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolEventInterface for SuperPermissionedDisputeGameEvents { + const NAME: &'static str = "SuperPermissionedDisputeGameEvents"; + const COUNT: usize = 3usize; + fn decode_raw_log( + topics: &[alloy_sol_types::Word], + data: &[u8], + ) -> alloy_sol_types::Result { + match topics.first().copied() { + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::GameClosed) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log(topics, data) + .map(Self::Move) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log(topics, data) + .map(Self::Resolved) + } + _ => { + alloy_sol_types::private::Err(alloy_sol_types::Error::InvalidLog { + name: ::NAME, + log: alloy_sol_types::private::Box::new( + alloy_sol_types::private::LogData::new_unchecked( + topics.to_vec(), + data.to_vec().into(), + ), + ), + }) + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for SuperPermissionedDisputeGameEvents { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + match self { + Self::GameClosed(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::Move(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::Resolved(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + } + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + match self { + Self::GameClosed(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::Move(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::Resolved(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`SuperPermissionedDisputeGame`](self) contract instance. + +See the [wrapper's documentation](`SuperPermissionedDisputeGameInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> SuperPermissionedDisputeGameInstance { + SuperPermissionedDisputeGameInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + _params: ::RustType, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + SuperPermissionedDisputeGameInstance::::deploy(__provider, _params) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + _params: ::RustType, + ) -> alloy_contract::RawCallBuilder { + SuperPermissionedDisputeGameInstance::::deploy_builder(__provider, _params) + } + /**A [`SuperPermissionedDisputeGame`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`SuperPermissionedDisputeGame`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct SuperPermissionedDisputeGameInstance< + P, + N = alloy_contract::private::Ethereum, + > { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for SuperPermissionedDisputeGameInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("SuperPermissionedDisputeGameInstance") + .field(&self.address) + .finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > SuperPermissionedDisputeGameInstance { + /**Creates a new wrapper around an on-chain [`SuperPermissionedDisputeGame`](self) contract instance. + +See the [wrapper's documentation](`SuperPermissionedDisputeGameInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + _params: ::RustType, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider, _params); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder( + __provider: P, + _params: ::RustType, + ) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + [ + &BYTECODE[..], + &alloy_sol_types::SolConstructor::abi_encode( + &constructorCall { _params }, + )[..], + ] + .concat() + .into(), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl SuperPermissionedDisputeGameInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> SuperPermissionedDisputeGameInstance { + SuperPermissionedDisputeGameInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > SuperPermissionedDisputeGameInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`absolutePrestate`] function. + pub fn absolutePrestate( + &self, + ) -> alloy_contract::SolCallBuilder<&P, absolutePrestateCall, N> { + self.call_builder(&absolutePrestateCall) + } + ///Creates a new call builder for the [`addLocalData`] function. + pub fn addLocalData( + &self, + _ident: alloy::sol_types::private::primitives::aliases::U256, + _execLeafIdx: alloy::sol_types::private::primitives::aliases::U256, + _partOffset: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, addLocalDataCall, N> { + self.call_builder( + &addLocalDataCall { + _ident, + _execLeafIdx, + _partOffset, + }, + ) + } + ///Creates a new call builder for the [`anchorStateRegistry`] function. + pub fn anchorStateRegistry( + &self, + ) -> alloy_contract::SolCallBuilder<&P, anchorStateRegistryCall, N> { + self.call_builder(&anchorStateRegistryCall) + } + ///Creates a new call builder for the [`attack`] function. + pub fn attack( + &self, + _disputed: ::RustType, + _parentIndex: alloy::sol_types::private::primitives::aliases::U256, + _claim: ::RustType, + ) -> alloy_contract::SolCallBuilder<&P, attackCall, N> { + self.call_builder( + &attackCall { + _disputed, + _parentIndex, + _claim, + }, + ) + } + ///Creates a new call builder for the [`bondDistributionMode`] function. + pub fn bondDistributionMode( + &self, + ) -> alloy_contract::SolCallBuilder<&P, bondDistributionModeCall, N> { + self.call_builder(&bondDistributionModeCall) + } + ///Creates a new call builder for the [`challenger`] function. + pub fn challenger( + &self, + ) -> alloy_contract::SolCallBuilder<&P, challengerCall, N> { + self.call_builder(&challengerCall) + } + ///Creates a new call builder for the [`claimCredit`] function. + pub fn claimCredit( + &self, + _recipient: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, claimCreditCall, N> { + self.call_builder(&claimCreditCall { _recipient }) + } + ///Creates a new call builder for the [`claimData`] function. + pub fn claimData( + &self, + _0: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, claimDataCall, N> { + self.call_builder(&claimDataCall(_0)) + } + ///Creates a new call builder for the [`claimDataLen`] function. + pub fn claimDataLen( + &self, + ) -> alloy_contract::SolCallBuilder<&P, claimDataLenCall, N> { + self.call_builder(&claimDataLenCall) + } + ///Creates a new call builder for the [`claims`] function. + pub fn claims( + &self, + _0: ::RustType, + ) -> alloy_contract::SolCallBuilder<&P, claimsCall, N> { + self.call_builder(&claimsCall(_0)) + } + ///Creates a new call builder for the [`clockExtension`] function. + pub fn clockExtension( + &self, + ) -> alloy_contract::SolCallBuilder<&P, clockExtensionCall, N> { + self.call_builder(&clockExtensionCall) + } + ///Creates a new call builder for the [`closeGame`] function. + pub fn closeGame(&self) -> alloy_contract::SolCallBuilder<&P, closeGameCall, N> { + self.call_builder(&closeGameCall) + } + ///Creates a new call builder for the [`createdAt`] function. + pub fn createdAt(&self) -> alloy_contract::SolCallBuilder<&P, createdAtCall, N> { + self.call_builder(&createdAtCall) + } + ///Creates a new call builder for the [`credit`] function. + pub fn credit( + &self, + _recipient: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, creditCall, N> { + self.call_builder(&creditCall { _recipient }) + } + ///Creates a new call builder for the [`defend`] function. + pub fn defend( + &self, + _disputed: ::RustType, + _parentIndex: alloy::sol_types::private::primitives::aliases::U256, + _claim: ::RustType, + ) -> alloy_contract::SolCallBuilder<&P, defendCall, N> { + self.call_builder( + &defendCall { + _disputed, + _parentIndex, + _claim, + }, + ) + } + ///Creates a new call builder for the [`extraData`] function. + pub fn extraData(&self) -> alloy_contract::SolCallBuilder<&P, extraDataCall, N> { + self.call_builder(&extraDataCall) + } + ///Creates a new call builder for the [`gameCreator`] function. + pub fn gameCreator( + &self, + ) -> alloy_contract::SolCallBuilder<&P, gameCreatorCall, N> { + self.call_builder(&gameCreatorCall) + } + ///Creates a new call builder for the [`gameData`] function. + pub fn gameData(&self) -> alloy_contract::SolCallBuilder<&P, gameDataCall, N> { + self.call_builder(&gameDataCall) + } + ///Creates a new call builder for the [`gameType`] function. + pub fn gameType(&self) -> alloy_contract::SolCallBuilder<&P, gameTypeCall, N> { + self.call_builder(&gameTypeCall) + } + ///Creates a new call builder for the [`getChallengerDuration`] function. + pub fn getChallengerDuration( + &self, + _claimIndex: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, getChallengerDurationCall, N> { + self.call_builder( + &getChallengerDurationCall { + _claimIndex, + }, + ) + } + ///Creates a new call builder for the [`getNumToResolve`] function. + pub fn getNumToResolve( + &self, + _claimIndex: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, getNumToResolveCall, N> { + self.call_builder(&getNumToResolveCall { _claimIndex }) + } + ///Creates a new call builder for the [`getRequiredBond`] function. + pub fn getRequiredBond( + &self, + _position: ::RustType, + ) -> alloy_contract::SolCallBuilder<&P, getRequiredBondCall, N> { + self.call_builder(&getRequiredBondCall { _position }) + } + ///Creates a new call builder for the [`hasUnlockedCredit`] function. + pub fn hasUnlockedCredit( + &self, + _0: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, hasUnlockedCreditCall, N> { + self.call_builder(&hasUnlockedCreditCall(_0)) + } + ///Creates a new call builder for the [`initialize`] function. + pub fn initialize( + &self, + ) -> alloy_contract::SolCallBuilder<&P, initializeCall, N> { + self.call_builder(&initializeCall) + } + ///Creates a new call builder for the [`l1Head`] function. + pub fn l1Head(&self) -> alloy_contract::SolCallBuilder<&P, l1HeadCall, N> { + self.call_builder(&l1HeadCall) + } + ///Creates a new call builder for the [`l2SequenceNumber`] function. + pub fn l2SequenceNumber( + &self, + ) -> alloy_contract::SolCallBuilder<&P, l2SequenceNumberCall, N> { + self.call_builder(&l2SequenceNumberCall) + } + ///Creates a new call builder for the [`maxClockDuration`] function. + pub fn maxClockDuration( + &self, + ) -> alloy_contract::SolCallBuilder<&P, maxClockDurationCall, N> { + self.call_builder(&maxClockDurationCall) + } + ///Creates a new call builder for the [`maxGameDepth`] function. + pub fn maxGameDepth( + &self, + ) -> alloy_contract::SolCallBuilder<&P, maxGameDepthCall, N> { + self.call_builder(&maxGameDepthCall) + } + ///Creates a new call builder for the [`r#move`] function. + pub fn r#move( + &self, + _disputed: ::RustType, + _challengeIndex: alloy::sol_types::private::primitives::aliases::U256, + _claim: ::RustType, + _isAttack: bool, + ) -> alloy_contract::SolCallBuilder<&P, moveCall, N> { + self.call_builder( + &moveCall { + _disputed, + _challengeIndex, + _claim, + _isAttack, + }, + ) + } + ///Creates a new call builder for the [`normalModeCredit`] function. + pub fn normalModeCredit( + &self, + _0: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, normalModeCreditCall, N> { + self.call_builder(&normalModeCreditCall(_0)) + } + ///Creates a new call builder for the [`proposer`] function. + pub fn proposer(&self) -> alloy_contract::SolCallBuilder<&P, proposerCall, N> { + self.call_builder(&proposerCall) + } + ///Creates a new call builder for the [`refundModeCredit`] function. + pub fn refundModeCredit( + &self, + _0: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, refundModeCreditCall, N> { + self.call_builder(&refundModeCreditCall(_0)) + } + ///Creates a new call builder for the [`resolutionCheckpoints`] function. + pub fn resolutionCheckpoints( + &self, + _0: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, resolutionCheckpointsCall, N> { + self.call_builder(&resolutionCheckpointsCall(_0)) + } + ///Creates a new call builder for the [`resolve`] function. + pub fn resolve(&self) -> alloy_contract::SolCallBuilder<&P, resolveCall, N> { + self.call_builder(&resolveCall) + } + ///Creates a new call builder for the [`resolveClaim`] function. + pub fn resolveClaim( + &self, + _claimIndex: alloy::sol_types::private::primitives::aliases::U256, + _numToResolve: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, resolveClaimCall, N> { + self.call_builder( + &resolveClaimCall { + _claimIndex, + _numToResolve, + }, + ) + } + ///Creates a new call builder for the [`resolvedAt`] function. + pub fn resolvedAt( + &self, + ) -> alloy_contract::SolCallBuilder<&P, resolvedAtCall, N> { + self.call_builder(&resolvedAtCall) + } + ///Creates a new call builder for the [`resolvedSubgames`] function. + pub fn resolvedSubgames( + &self, + _0: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, resolvedSubgamesCall, N> { + self.call_builder(&resolvedSubgamesCall(_0)) + } + ///Creates a new call builder for the [`rootClaim`] function. + pub fn rootClaim(&self) -> alloy_contract::SolCallBuilder<&P, rootClaimCall, N> { + self.call_builder(&rootClaimCall) + } + ///Creates a new call builder for the [`splitDepth`] function. + pub fn splitDepth( + &self, + ) -> alloy_contract::SolCallBuilder<&P, splitDepthCall, N> { + self.call_builder(&splitDepthCall) + } + ///Creates a new call builder for the [`startingProposal`] function. + pub fn startingProposal( + &self, + ) -> alloy_contract::SolCallBuilder<&P, startingProposalCall, N> { + self.call_builder(&startingProposalCall) + } + ///Creates a new call builder for the [`startingRootHash`] function. + pub fn startingRootHash( + &self, + ) -> alloy_contract::SolCallBuilder<&P, startingRootHashCall, N> { + self.call_builder(&startingRootHashCall) + } + ///Creates a new call builder for the [`startingSequenceNumber`] function. + pub fn startingSequenceNumber( + &self, + ) -> alloy_contract::SolCallBuilder<&P, startingSequenceNumberCall, N> { + self.call_builder(&startingSequenceNumberCall) + } + ///Creates a new call builder for the [`status`] function. + pub fn status(&self) -> alloy_contract::SolCallBuilder<&P, statusCall, N> { + self.call_builder(&statusCall) + } + ///Creates a new call builder for the [`step`] function. + pub fn step( + &self, + _claimIndex: alloy::sol_types::private::primitives::aliases::U256, + _isAttack: bool, + _stateData: alloy::sol_types::private::Bytes, + _proof: alloy::sol_types::private::Bytes, + ) -> alloy_contract::SolCallBuilder<&P, stepCall, N> { + self.call_builder( + &stepCall { + _claimIndex, + _isAttack, + _stateData, + _proof, + }, + ) + } + ///Creates a new call builder for the [`subgames`] function. + pub fn subgames( + &self, + _0: alloy::sol_types::private::primitives::aliases::U256, + _1: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, subgamesCall, N> { + self.call_builder(&subgamesCall { _0, _1 }) + } + ///Creates a new call builder for the [`version`] function. + pub fn version(&self) -> alloy_contract::SolCallBuilder<&P, versionCall, N> { + self.call_builder(&versionCall) + } + ///Creates a new call builder for the [`vm`] function. + pub fn vm(&self) -> alloy_contract::SolCallBuilder<&P, vmCall, N> { + self.call_builder(&vmCall) + } + ///Creates a new call builder for the [`wasRespectedGameTypeWhenCreated`] function. + pub fn wasRespectedGameTypeWhenCreated( + &self, + ) -> alloy_contract::SolCallBuilder<&P, wasRespectedGameTypeWhenCreatedCall, N> { + self.call_builder(&wasRespectedGameTypeWhenCreatedCall) + } + ///Creates a new call builder for the [`weth`] function. + pub fn weth(&self) -> alloy_contract::SolCallBuilder<&P, wethCall, N> { + self.call_builder(&wethCall) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > SuperPermissionedDisputeGameInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + ///Creates a new event filter for the [`GameClosed`] event. + pub fn GameClosed_filter(&self) -> alloy_contract::Event<&P, GameClosed, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`Move`] event. + pub fn Move_filter(&self) -> alloy_contract::Event<&P, Move, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`Resolved`] event. + pub fn Resolved_filter(&self) -> alloy_contract::Event<&P, Resolved, N> { + self.event_filter::() + } + } +} diff --git a/bindings/rust/src/superchain_config.rs b/bindings/rust/src/superchain_config.rs new file mode 100644 index 000000000..ccf39478f --- /dev/null +++ b/bindings/rust/src/superchain_config.rs @@ -0,0 +1,5668 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface SuperchainConfig { + error ProxyAdminOwnedBase_NotProxyAdmin(); + error ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner(); + error ProxyAdminOwnedBase_NotProxyAdminOwner(); + error ProxyAdminOwnedBase_NotResolvedDelegateProxy(); + error ProxyAdminOwnedBase_NotSharedProxyAdminOwner(); + error ProxyAdminOwnedBase_ProxyAdminNotFound(); + error SuperchainConfig_AlreadyPaused(address identifier); + error SuperchainConfig_NotAlreadyPaused(address identifier); + error SuperchainConfig_OnlyGuardian(); + error SuperchainConfig_OnlyGuardianOrIncidentResponder(); + + event PauseExtended(address identifier); + event Paused(address identifier); + event Unpaused(address identifier); + + constructor(address _guardian, address _incidentResponder); + + function GUARDIAN() external view returns (address); + function INCIDENT_RESPONDER() external view returns (address); + function expiration(address _identifier) external view returns (uint256); + function extend(address _identifier) external; + function guardian() external view returns (address); + function incidentResponder() external view returns (address); + function pausable(address _identifier) external view returns (bool); + function pause(address _identifier) external; + function pauseExpiry() external pure returns (uint256); + function pauseTimestamps(address) external view returns (uint256); + function paused(address _identifier) external view returns (bool); + function paused() external view returns (bool); + function proxyAdmin() external view returns (address); + function proxyAdminOwner() external view returns (address); + function unpause(address _identifier) external; + function version() external view returns (string memory); +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "constructor", + "inputs": [ + { + "name": "_guardian", + "type": "address", + "internalType": "address" + }, + { + "name": "_incidentResponder", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "GUARDIAN", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "INCIDENT_RESPONDER", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "expiration", + "inputs": [ + { + "name": "_identifier", + "type": "address", + "internalType": "address" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "extend", + "inputs": [ + { + "name": "_identifier", + "type": "address", + "internalType": "address" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "guardian", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "incidentResponder", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "pausable", + "inputs": [ + { + "name": "_identifier", + "type": "address", + "internalType": "address" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "pause", + "inputs": [ + { + "name": "_identifier", + "type": "address", + "internalType": "address" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "pauseExpiry", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "pauseTimestamps", + "inputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "paused", + "inputs": [ + { + "name": "_identifier", + "type": "address", + "internalType": "address" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "paused", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "proxyAdmin", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract IProxyAdmin" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "proxyAdminOwner", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "unpause", + "inputs": [ + { + "name": "_identifier", + "type": "address", + "internalType": "address" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "version", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "view" + }, + { + "type": "event", + "name": "PauseExtended", + "inputs": [ + { + "name": "identifier", + "type": "address", + "indexed": false, + "internalType": "address" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "Paused", + "inputs": [ + { + "name": "identifier", + "type": "address", + "indexed": false, + "internalType": "address" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "Unpaused", + "inputs": [ + { + "name": "identifier", + "type": "address", + "indexed": false, + "internalType": "address" + } + ], + "anonymous": false + }, + { + "type": "error", + "name": "ProxyAdminOwnedBase_NotProxyAdmin", + "inputs": [] + }, + { + "type": "error", + "name": "ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner", + "inputs": [] + }, + { + "type": "error", + "name": "ProxyAdminOwnedBase_NotProxyAdminOwner", + "inputs": [] + }, + { + "type": "error", + "name": "ProxyAdminOwnedBase_NotResolvedDelegateProxy", + "inputs": [] + }, + { + "type": "error", + "name": "ProxyAdminOwnedBase_NotSharedProxyAdminOwner", + "inputs": [] + }, + { + "type": "error", + "name": "ProxyAdminOwnedBase_ProxyAdminNotFound", + "inputs": [] + }, + { + "type": "error", + "name": "SuperchainConfig_AlreadyPaused", + "inputs": [ + { + "name": "identifier", + "type": "address", + "internalType": "address" + } + ] + }, + { + "type": "error", + "name": "SuperchainConfig_NotAlreadyPaused", + "inputs": [ + { + "name": "identifier", + "type": "address", + "internalType": "address" + } + ] + }, + { + "type": "error", + "name": "SuperchainConfig_OnlyGuardian", + "inputs": [] + }, + { + "type": "error", + "name": "SuperchainConfig_OnlyGuardianOrIncidentResponder", + "inputs": [] + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod SuperchainConfig { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x60c060405234801561001057600080fd5b50604051610bab380380610bab83398101604081905261002f91610062565b6001600160a01b039182166080521660a052610095565b80516001600160a01b038116811461005d57600080fd5b919050565b6000806040838503121561007557600080fd5b61007e83610046565b915061008c60208401610046565b90509250929050565b60805160a051610ace6100dd600039600081816102ad015281816102d601526109110152600081816101d4015281816102630152818161085f01526108d00152610ace6000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c80635c975abb11610097578063a967905811610066578063a9679058146102ab578063b2bff544146102d1578063dad544e0146102f8578063f125af6b1461030057600080fd5b80635c975abb14610256578063724c184c1461025e57806376a67a5114610285578063820057151461029857600080fd5b80633e47158c116100d35780633e47158c146101a5578063452a9320146101d257806354fd4d50146101f857806357b001f91461024157600080fd5b806304dbe3fe146101055780630e3b6d1f1461012b5780632e48152c1461014b57806332dfadd91461016e575b600080fd5b610118610113366004610990565b610309565b6040519081526020015b60405180910390f35b610118610139366004610990565b60006020819052908152604090205481565b61015e610159366004610990565b610353565b6040519015158152602001610122565b61015e61017c366004610990565b73ffffffffffffffffffffffffffffffffffffffff166000908152602081905260409020541590565b6101ad61039f565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610122565b7f00000000000000000000000000000000000000000000000000000000000000006101ad565b6102346040518060400160405280600581526020017f322e352e3000000000000000000000000000000000000000000000000000000081525081565b60405161012291906109ad565b61025461024f366004610990565b6105aa565b005b61015e610610565b6101ad7f000000000000000000000000000000000000000000000000000000000000000081565b610254610293366004610990565b610621565b6102546102a6366004610990565b6106fa565b7f00000000000000000000000000000000000000000000000000000000000000006101ad565b6101ad7f000000000000000000000000000000000000000000000000000000000000000081565b6101ad6107cf565b62784ce0610118565b73ffffffffffffffffffffffffffffffffffffffff811660009081526020819052604081205480820361033f5750600092915050565b61034c62784ce082610a4f565b9392505050565b73ffffffffffffffffffffffffffffffffffffffff81166000908152602081905260408120548082036103895750600092915050565b61039662784ce082610a4f565b42109392505050565b6000806103ca7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b905073ffffffffffffffffffffffffffffffffffffffff8116156103ed57919050565b6040518060400160405280601a81526020017f4f564d5f4c3143726f7373446f6d61696e4d657373656e6765720000000000008152505160026104309190610a67565b604080513060208201526000918101919091527f4f564d5f4c3143726f7373446f6d61696e4d657373656e676572000000000000919091179061048b906060015b604051602081830303815290604052805190602001205490565b146104c2576040517f54e433cd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604080513060208201526001918101919091526000906104e490606001610471565b905073ffffffffffffffffffffffffffffffffffffffff811615610578578073ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561054d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105719190610aa4565b9250505090565b6040517f332144db00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6105b2610847565b73ffffffffffffffffffffffffffffffffffffffff81166000818152602081815260408083209290925590519182527f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa91015b60405180910390a150565b600061061c6000610353565b905090565b6106296108b8565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260208190526040902054156106a3576040517fb7d8689400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff821660048201526024015b60405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff81166000818152602081815260409182902042905590519182527f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2589101610605565b610702610847565b73ffffffffffffffffffffffffffffffffffffffff81166000908152602081905260408120549003610778576040517f335b869500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8216600482015260240161069a565b73ffffffffffffffffffffffffffffffffffffffff81166000818152602081815260409182902042905590519182527f1163213dbd11d2d966db59d270ddfc3c6fbe0540ffe8f0e7f38c5cac16d2f36b9101610605565b60006107d961039f565b73ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610823573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061061c9190610aa4565b3373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016146108b6576040517fafbe9bc600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b3373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000161480159061093457503373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614155b156108b6576040517fd8f0cd1400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8116811461098d57600080fd5b50565b6000602082840312156109a257600080fd5b813561034c8161096b565b600060208083528351808285015260005b818110156109da578581018301518582016040015282016109be565b818111156109ec576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008219821115610a6257610a62610a20565b500190565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615610a9f57610a9f610a20565b500290565b600060208284031215610ab657600080fd5b815161034c8161096b56fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\xC0`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`@Qa\x0B\xAB8\x03\x80a\x0B\xAB\x839\x81\x01`@\x81\x90Ra\0/\x91a\0bV[`\x01`\x01`\xA0\x1B\x03\x91\x82\x16`\x80R\x16`\xA0Ra\0\x95V[\x80Q`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a\0]W`\0\x80\xFD[\x91\x90PV[`\0\x80`@\x83\x85\x03\x12\x15a\0uW`\0\x80\xFD[a\0~\x83a\0FV[\x91Pa\0\x8C` \x84\x01a\0FV[\x90P\x92P\x92\x90PV[`\x80Q`\xA0Qa\n\xCEa\0\xDD`\09`\0\x81\x81a\x02\xAD\x01R\x81\x81a\x02\xD6\x01Ra\t\x11\x01R`\0\x81\x81a\x01\xD4\x01R\x81\x81a\x02c\x01R\x81\x81a\x08_\x01Ra\x08\xD0\x01Ra\n\xCE`\0\xF3\xFE`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`\x046\x10a\x01\0W`\x005`\xE0\x1C\x80c\\\x97Z\xBB\x11a\0\x97W\x80c\xA9g\x90X\x11a\0fW\x80c\xA9g\x90X\x14a\x02\xABW\x80c\xB2\xBF\xF5D\x14a\x02\xD1W\x80c\xDA\xD5D\xE0\x14a\x02\xF8W\x80c\xF1%\xAFk\x14a\x03\0W`\0\x80\xFD[\x80c\\\x97Z\xBB\x14a\x02VW\x80crL\x18L\x14a\x02^W\x80cv\xA6zQ\x14a\x02\x85W\x80c\x82\0W\x15\x14a\x02\x98W`\0\x80\xFD[\x80c>G\x15\x8C\x11a\0\xD3W\x80c>G\x15\x8C\x14a\x01\xA5W\x80cE*\x93 \x14a\x01\xD2W\x80cT\xFDMP\x14a\x01\xF8W\x80cW\xB0\x01\xF9\x14a\x02AW`\0\x80\xFD[\x80c\x04\xDB\xE3\xFE\x14a\x01\x05W\x80c\x0E;m\x1F\x14a\x01+W\x80c.H\x15,\x14a\x01KW\x80c2\xDF\xAD\xD9\x14a\x01nW[`\0\x80\xFD[a\x01\x18a\x01\x136`\x04a\t\x90V[a\x03\tV[`@Q\x90\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[a\x01\x18a\x0196`\x04a\t\x90V[`\0` \x81\x90R\x90\x81R`@\x90 T\x81V[a\x01^a\x01Y6`\x04a\t\x90V[a\x03SV[`@Q\x90\x15\x15\x81R` \x01a\x01\"V[a\x01^a\x01|6`\x04a\t\x90V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\0\x90\x81R` \x81\x90R`@\x90 T\x15\x90V[a\x01\xADa\x03\x9FV[`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01a\x01\"V[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x01\xADV[a\x024`@Q\x80`@\x01`@R\x80`\x05\x81R` \x01\x7F2.5.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\x81RP\x81V[`@Qa\x01\"\x91\x90a\t\xADV[a\x02Ta\x02O6`\x04a\t\x90V[a\x05\xAAV[\0[a\x01^a\x06\x10V[a\x01\xAD\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[a\x02Ta\x02\x936`\x04a\t\x90V[a\x06!V[a\x02Ta\x02\xA66`\x04a\t\x90V[a\x06\xFAV[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x01\xADV[a\x01\xAD\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[a\x01\xADa\x07\xCFV[bxL\xE0a\x01\x18V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16`\0\x90\x81R` \x81\x90R`@\x81 T\x80\x82\x03a\x03?WP`\0\x92\x91PPV[a\x03LbxL\xE0\x82a\nOV[\x93\x92PPPV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16`\0\x90\x81R` \x81\x90R`@\x81 T\x80\x82\x03a\x03\x89WP`\0\x92\x91PPV[a\x03\x96bxL\xE0\x82a\nOV[B\x10\x93\x92PPPV[`\0\x80a\x03\xCA\x7F\xB51'hJV\x8B1s\xAE\x13\xB9\xF8\xA6\x01n$>c\xB6\xE8\xEE\x11x\xD6\xA7\x17\x85\x0B]a\x03T\x90V[\x90Ps\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x15a\x03\xEDW\x91\x90PV[`@Q\x80`@\x01`@R\x80`\x1A\x81R` \x01\x7FOVM_L1CrossDomainMessenger\0\0\0\0\0\0\x81RPQ`\x02a\x040\x91\x90a\ngV[`@\x80Q0` \x82\x01R`\0\x91\x81\x01\x91\x90\x91R\x7FOVM_L1CrossDomainMessenger\0\0\0\0\0\0\x91\x90\x91\x17\x90a\x04\x8B\x90``\x01[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 T\x90V[\x14a\x04\xC2W`@Q\x7FT\xE43\xCD\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\x01`@Q\x80\x91\x03\x90\xFD[`@\x80Q0` \x82\x01R`\x01\x91\x81\x01\x91\x90\x91R`\0\x90a\x04\xE4\x90``\x01a\x04qV[\x90Ps\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x15a\x05xW\x80s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\x8D\xA5\xCB[`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x05MW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x05q\x91\x90a\n\xA4V[\x92PPP\x90V[`@Q\x7F3!D\xDB\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\x01`@Q\x80\x91\x03\x90\xFD[a\x05\xB2a\x08GV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16`\0\x81\x81R` \x81\x81R`@\x80\x83 \x92\x90\x92U\x90Q\x91\x82R\x7F]\xB9\xEE\nI[\xF2\xE6\xFF\x9C\x91\xA7\x83L\x1B\xA4\xFD\xD2D\xA5\xE8\xAANS{\xD3\x8A\xEA\xE4\xB0s\xAA\x91\x01[`@Q\x80\x91\x03\x90\xA1PV[`\0a\x06\x1C`\0a\x03SV[\x90P\x90V[a\x06)a\x08\xB8V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16`\0\x90\x81R` \x81\x90R`@\x90 T\x15a\x06\xA3W`@Q\x7F\xB7\xD8h\x94\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\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16`\x04\x82\x01R`$\x01[`@Q\x80\x91\x03\x90\xFD[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16`\0\x81\x81R` \x81\x81R`@\x91\x82\x90 B\x90U\x90Q\x91\x82R\x7Fb\xE7\x8C\xEA\x01\xBE\xE3 \xCDNB\x02p\xB5\xEAt\0\r\x11\xB0\xC9\xF7GT\xEB\xDB\xFCTK\x05\xA2X\x91\x01a\x06\x05V[a\x07\x02a\x08GV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16`\0\x90\x81R` \x81\x90R`@\x81 T\x90\x03a\x07xW`@Q\x7F3[\x86\x95\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\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16`\x04\x82\x01R`$\x01a\x06\x9AV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16`\0\x81\x81R` \x81\x81R`@\x91\x82\x90 B\x90U\x90Q\x91\x82R\x7F\x11c!=\xBD\x11\xD2\xD9f\xDBY\xD2p\xDD\xFC=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x06\x1C\x91\x90a\n\xA4V[3s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x14a\x08\xB6W`@Q\x7F\xAF\xBE\x9B\xC6\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\x01`@Q\x80\x91\x03\x90\xFD[V[3s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x14\x80\x15\x90a\t4WP3s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x14\x15[\x15a\x08\xB6W`@Q\x7F\xD8\xF0\xCD\x14\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\x01`@Q\x80\x91\x03\x90\xFD[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\t\x8DW`\0\x80\xFD[PV[`\0` \x82\x84\x03\x12\x15a\t\xA2W`\0\x80\xFD[\x815a\x03L\x81a\tkV[`\0` \x80\x83R\x83Q\x80\x82\x85\x01R`\0[\x81\x81\x10\x15a\t\xDAW\x85\x81\x01\x83\x01Q\x85\x82\x01`@\x01R\x82\x01a\t\xBEV[\x81\x81\x11\x15a\t\xECW`\0`@\x83\x87\x01\x01R[P`\x1F\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x92\x90\x92\x01`@\x01\x93\x92PPPV[\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`\x11`\x04R`$`\0\xFD[`\0\x82\x19\x82\x11\x15a\nbWa\nba\n V[P\x01\x90V[`\0\x81\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x04\x83\x11\x82\x15\x15\x16\x15a\n\x9FWa\n\x9Fa\n V[P\x02\x90V[`\0` \x82\x84\x03\x12\x15a\n\xB6W`\0\x80\xFD[\x81Qa\x03L\x81a\tkV\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x608060405234801561001057600080fd5b50600436106101005760003560e01c80635c975abb11610097578063a967905811610066578063a9679058146102ab578063b2bff544146102d1578063dad544e0146102f8578063f125af6b1461030057600080fd5b80635c975abb14610256578063724c184c1461025e57806376a67a5114610285578063820057151461029857600080fd5b80633e47158c116100d35780633e47158c146101a5578063452a9320146101d257806354fd4d50146101f857806357b001f91461024157600080fd5b806304dbe3fe146101055780630e3b6d1f1461012b5780632e48152c1461014b57806332dfadd91461016e575b600080fd5b610118610113366004610990565b610309565b6040519081526020015b60405180910390f35b610118610139366004610990565b60006020819052908152604090205481565b61015e610159366004610990565b610353565b6040519015158152602001610122565b61015e61017c366004610990565b73ffffffffffffffffffffffffffffffffffffffff166000908152602081905260409020541590565b6101ad61039f565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610122565b7f00000000000000000000000000000000000000000000000000000000000000006101ad565b6102346040518060400160405280600581526020017f322e352e3000000000000000000000000000000000000000000000000000000081525081565b60405161012291906109ad565b61025461024f366004610990565b6105aa565b005b61015e610610565b6101ad7f000000000000000000000000000000000000000000000000000000000000000081565b610254610293366004610990565b610621565b6102546102a6366004610990565b6106fa565b7f00000000000000000000000000000000000000000000000000000000000000006101ad565b6101ad7f000000000000000000000000000000000000000000000000000000000000000081565b6101ad6107cf565b62784ce0610118565b73ffffffffffffffffffffffffffffffffffffffff811660009081526020819052604081205480820361033f5750600092915050565b61034c62784ce082610a4f565b9392505050565b73ffffffffffffffffffffffffffffffffffffffff81166000908152602081905260408120548082036103895750600092915050565b61039662784ce082610a4f565b42109392505050565b6000806103ca7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b905073ffffffffffffffffffffffffffffffffffffffff8116156103ed57919050565b6040518060400160405280601a81526020017f4f564d5f4c3143726f7373446f6d61696e4d657373656e6765720000000000008152505160026104309190610a67565b604080513060208201526000918101919091527f4f564d5f4c3143726f7373446f6d61696e4d657373656e676572000000000000919091179061048b906060015b604051602081830303815290604052805190602001205490565b146104c2576040517f54e433cd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604080513060208201526001918101919091526000906104e490606001610471565b905073ffffffffffffffffffffffffffffffffffffffff811615610578578073ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561054d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105719190610aa4565b9250505090565b6040517f332144db00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6105b2610847565b73ffffffffffffffffffffffffffffffffffffffff81166000818152602081815260408083209290925590519182527f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa91015b60405180910390a150565b600061061c6000610353565b905090565b6106296108b8565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260208190526040902054156106a3576040517fb7d8689400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff821660048201526024015b60405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff81166000818152602081815260409182902042905590519182527f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2589101610605565b610702610847565b73ffffffffffffffffffffffffffffffffffffffff81166000908152602081905260408120549003610778576040517f335b869500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8216600482015260240161069a565b73ffffffffffffffffffffffffffffffffffffffff81166000818152602081815260409182902042905590519182527f1163213dbd11d2d966db59d270ddfc3c6fbe0540ffe8f0e7f38c5cac16d2f36b9101610605565b60006107d961039f565b73ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610823573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061061c9190610aa4565b3373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016146108b6576040517fafbe9bc600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b3373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000161480159061093457503373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614155b156108b6576040517fd8f0cd1400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8116811461098d57600080fd5b50565b6000602082840312156109a257600080fd5b813561034c8161096b565b600060208083528351808285015260005b818110156109da578581018301518582016040015282016109be565b818111156109ec576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008219821115610a6257610a62610a20565b500190565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615610a9f57610a9f610a20565b500290565b600060208284031215610ab657600080fd5b815161034c8161096b56fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`\x046\x10a\x01\0W`\x005`\xE0\x1C\x80c\\\x97Z\xBB\x11a\0\x97W\x80c\xA9g\x90X\x11a\0fW\x80c\xA9g\x90X\x14a\x02\xABW\x80c\xB2\xBF\xF5D\x14a\x02\xD1W\x80c\xDA\xD5D\xE0\x14a\x02\xF8W\x80c\xF1%\xAFk\x14a\x03\0W`\0\x80\xFD[\x80c\\\x97Z\xBB\x14a\x02VW\x80crL\x18L\x14a\x02^W\x80cv\xA6zQ\x14a\x02\x85W\x80c\x82\0W\x15\x14a\x02\x98W`\0\x80\xFD[\x80c>G\x15\x8C\x11a\0\xD3W\x80c>G\x15\x8C\x14a\x01\xA5W\x80cE*\x93 \x14a\x01\xD2W\x80cT\xFDMP\x14a\x01\xF8W\x80cW\xB0\x01\xF9\x14a\x02AW`\0\x80\xFD[\x80c\x04\xDB\xE3\xFE\x14a\x01\x05W\x80c\x0E;m\x1F\x14a\x01+W\x80c.H\x15,\x14a\x01KW\x80c2\xDF\xAD\xD9\x14a\x01nW[`\0\x80\xFD[a\x01\x18a\x01\x136`\x04a\t\x90V[a\x03\tV[`@Q\x90\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[a\x01\x18a\x0196`\x04a\t\x90V[`\0` \x81\x90R\x90\x81R`@\x90 T\x81V[a\x01^a\x01Y6`\x04a\t\x90V[a\x03SV[`@Q\x90\x15\x15\x81R` \x01a\x01\"V[a\x01^a\x01|6`\x04a\t\x90V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\0\x90\x81R` \x81\x90R`@\x90 T\x15\x90V[a\x01\xADa\x03\x9FV[`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01a\x01\"V[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x01\xADV[a\x024`@Q\x80`@\x01`@R\x80`\x05\x81R` \x01\x7F2.5.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\x81RP\x81V[`@Qa\x01\"\x91\x90a\t\xADV[a\x02Ta\x02O6`\x04a\t\x90V[a\x05\xAAV[\0[a\x01^a\x06\x10V[a\x01\xAD\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[a\x02Ta\x02\x936`\x04a\t\x90V[a\x06!V[a\x02Ta\x02\xA66`\x04a\t\x90V[a\x06\xFAV[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x01\xADV[a\x01\xAD\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[a\x01\xADa\x07\xCFV[bxL\xE0a\x01\x18V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16`\0\x90\x81R` \x81\x90R`@\x81 T\x80\x82\x03a\x03?WP`\0\x92\x91PPV[a\x03LbxL\xE0\x82a\nOV[\x93\x92PPPV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16`\0\x90\x81R` \x81\x90R`@\x81 T\x80\x82\x03a\x03\x89WP`\0\x92\x91PPV[a\x03\x96bxL\xE0\x82a\nOV[B\x10\x93\x92PPPV[`\0\x80a\x03\xCA\x7F\xB51'hJV\x8B1s\xAE\x13\xB9\xF8\xA6\x01n$>c\xB6\xE8\xEE\x11x\xD6\xA7\x17\x85\x0B]a\x03T\x90V[\x90Ps\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x15a\x03\xEDW\x91\x90PV[`@Q\x80`@\x01`@R\x80`\x1A\x81R` \x01\x7FOVM_L1CrossDomainMessenger\0\0\0\0\0\0\x81RPQ`\x02a\x040\x91\x90a\ngV[`@\x80Q0` \x82\x01R`\0\x91\x81\x01\x91\x90\x91R\x7FOVM_L1CrossDomainMessenger\0\0\0\0\0\0\x91\x90\x91\x17\x90a\x04\x8B\x90``\x01[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 T\x90V[\x14a\x04\xC2W`@Q\x7FT\xE43\xCD\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\x01`@Q\x80\x91\x03\x90\xFD[`@\x80Q0` \x82\x01R`\x01\x91\x81\x01\x91\x90\x91R`\0\x90a\x04\xE4\x90``\x01a\x04qV[\x90Ps\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x15a\x05xW\x80s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\x8D\xA5\xCB[`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x05MW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x05q\x91\x90a\n\xA4V[\x92PPP\x90V[`@Q\x7F3!D\xDB\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\x01`@Q\x80\x91\x03\x90\xFD[a\x05\xB2a\x08GV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16`\0\x81\x81R` \x81\x81R`@\x80\x83 \x92\x90\x92U\x90Q\x91\x82R\x7F]\xB9\xEE\nI[\xF2\xE6\xFF\x9C\x91\xA7\x83L\x1B\xA4\xFD\xD2D\xA5\xE8\xAANS{\xD3\x8A\xEA\xE4\xB0s\xAA\x91\x01[`@Q\x80\x91\x03\x90\xA1PV[`\0a\x06\x1C`\0a\x03SV[\x90P\x90V[a\x06)a\x08\xB8V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16`\0\x90\x81R` \x81\x90R`@\x90 T\x15a\x06\xA3W`@Q\x7F\xB7\xD8h\x94\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\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16`\x04\x82\x01R`$\x01[`@Q\x80\x91\x03\x90\xFD[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16`\0\x81\x81R` \x81\x81R`@\x91\x82\x90 B\x90U\x90Q\x91\x82R\x7Fb\xE7\x8C\xEA\x01\xBE\xE3 \xCDNB\x02p\xB5\xEAt\0\r\x11\xB0\xC9\xF7GT\xEB\xDB\xFCTK\x05\xA2X\x91\x01a\x06\x05V[a\x07\x02a\x08GV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16`\0\x90\x81R` \x81\x90R`@\x81 T\x90\x03a\x07xW`@Q\x7F3[\x86\x95\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\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16`\x04\x82\x01R`$\x01a\x06\x9AV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16`\0\x81\x81R` \x81\x81R`@\x91\x82\x90 B\x90U\x90Q\x91\x82R\x7F\x11c!=\xBD\x11\xD2\xD9f\xDBY\xD2p\xDD\xFC=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x06\x1C\x91\x90a\n\xA4V[3s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x14a\x08\xB6W`@Q\x7F\xAF\xBE\x9B\xC6\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\x01`@Q\x80\x91\x03\x90\xFD[V[3s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x14\x80\x15\x90a\t4WP3s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x14\x15[\x15a\x08\xB6W`@Q\x7F\xD8\xF0\xCD\x14\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\x01`@Q\x80\x91\x03\x90\xFD[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\t\x8DW`\0\x80\xFD[PV[`\0` \x82\x84\x03\x12\x15a\t\xA2W`\0\x80\xFD[\x815a\x03L\x81a\tkV[`\0` \x80\x83R\x83Q\x80\x82\x85\x01R`\0[\x81\x81\x10\x15a\t\xDAW\x85\x81\x01\x83\x01Q\x85\x82\x01`@\x01R\x82\x01a\t\xBEV[\x81\x81\x11\x15a\t\xECW`\0`@\x83\x87\x01\x01R[P`\x1F\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x92\x90\x92\x01`@\x01\x93\x92PPPV[\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`\x11`\x04R`$`\0\xFD[`\0\x82\x19\x82\x11\x15a\nbWa\nba\n V[P\x01\x90V[`\0\x81\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x04\x83\x11\x82\x15\x15\x16\x15a\n\x9FWa\n\x9Fa\n V[P\x02\x90V[`\0` \x82\x84\x03\x12\x15a\n\xB6W`\0\x80\xFD[\x81Qa\x03L\x81a\tkV\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ProxyAdminOwnedBase_NotProxyAdmin()` and selector `0xe818dcc3`. +```solidity +error ProxyAdminOwnedBase_NotProxyAdmin(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ProxyAdminOwnedBase_NotProxyAdmin; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: ProxyAdminOwnedBase_NotProxyAdmin) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for ProxyAdminOwnedBase_NotProxyAdmin { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ProxyAdminOwnedBase_NotProxyAdmin { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ProxyAdminOwnedBase_NotProxyAdmin()"; + const SELECTOR: [u8; 4] = [232u8, 24u8, 220u8, 195u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner()` and selector `0xc4050a26`. +```solidity +error ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError + for ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner()"; + const SELECTOR: [u8; 4] = [196u8, 5u8, 10u8, 38u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ProxyAdminOwnedBase_NotProxyAdminOwner()` and selector `0x7f12c64b`. +```solidity +error ProxyAdminOwnedBase_NotProxyAdminOwner(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ProxyAdminOwnedBase_NotProxyAdminOwner; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: ProxyAdminOwnedBase_NotProxyAdminOwner) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for ProxyAdminOwnedBase_NotProxyAdminOwner { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ProxyAdminOwnedBase_NotProxyAdminOwner { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ProxyAdminOwnedBase_NotProxyAdminOwner()"; + const SELECTOR: [u8; 4] = [127u8, 18u8, 198u8, 75u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ProxyAdminOwnedBase_NotResolvedDelegateProxy()` and selector `0x54e433cd`. +```solidity +error ProxyAdminOwnedBase_NotResolvedDelegateProxy(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ProxyAdminOwnedBase_NotResolvedDelegateProxy; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: ProxyAdminOwnedBase_NotResolvedDelegateProxy) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for ProxyAdminOwnedBase_NotResolvedDelegateProxy { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ProxyAdminOwnedBase_NotResolvedDelegateProxy { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ProxyAdminOwnedBase_NotResolvedDelegateProxy()"; + const SELECTOR: [u8; 4] = [84u8, 228u8, 51u8, 205u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ProxyAdminOwnedBase_NotSharedProxyAdminOwner()` and selector `0x075c4314`. +```solidity +error ProxyAdminOwnedBase_NotSharedProxyAdminOwner(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ProxyAdminOwnedBase_NotSharedProxyAdminOwner; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: ProxyAdminOwnedBase_NotSharedProxyAdminOwner) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for ProxyAdminOwnedBase_NotSharedProxyAdminOwner { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ProxyAdminOwnedBase_NotSharedProxyAdminOwner { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ProxyAdminOwnedBase_NotSharedProxyAdminOwner()"; + const SELECTOR: [u8; 4] = [7u8, 92u8, 67u8, 20u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ProxyAdminOwnedBase_ProxyAdminNotFound()` and selector `0x332144db`. +```solidity +error ProxyAdminOwnedBase_ProxyAdminNotFound(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ProxyAdminOwnedBase_ProxyAdminNotFound; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: ProxyAdminOwnedBase_ProxyAdminNotFound) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for ProxyAdminOwnedBase_ProxyAdminNotFound { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ProxyAdminOwnedBase_ProxyAdminNotFound { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ProxyAdminOwnedBase_ProxyAdminNotFound()"; + const SELECTOR: [u8; 4] = [51u8, 33u8, 68u8, 219u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `SuperchainConfig_AlreadyPaused(address)` and selector `0xb7d86894`. +```solidity +error SuperchainConfig_AlreadyPaused(address identifier); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct SuperchainConfig_AlreadyPaused { + #[allow(missing_docs)] + pub identifier: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: SuperchainConfig_AlreadyPaused) -> Self { + (value.identifier,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for SuperchainConfig_AlreadyPaused { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { identifier: tuple.0 } + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for SuperchainConfig_AlreadyPaused { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "SuperchainConfig_AlreadyPaused(address)"; + const SELECTOR: [u8; 4] = [183u8, 216u8, 104u8, 148u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.identifier, + ), + ) + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `SuperchainConfig_NotAlreadyPaused(address)` and selector `0x335b8695`. +```solidity +error SuperchainConfig_NotAlreadyPaused(address identifier); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct SuperchainConfig_NotAlreadyPaused { + #[allow(missing_docs)] + pub identifier: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: SuperchainConfig_NotAlreadyPaused) -> Self { + (value.identifier,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for SuperchainConfig_NotAlreadyPaused { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { identifier: tuple.0 } + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for SuperchainConfig_NotAlreadyPaused { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "SuperchainConfig_NotAlreadyPaused(address)"; + const SELECTOR: [u8; 4] = [51u8, 91u8, 134u8, 149u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.identifier, + ), + ) + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `SuperchainConfig_OnlyGuardian()` and selector `0xafbe9bc6`. +```solidity +error SuperchainConfig_OnlyGuardian(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct SuperchainConfig_OnlyGuardian; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: SuperchainConfig_OnlyGuardian) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for SuperchainConfig_OnlyGuardian { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for SuperchainConfig_OnlyGuardian { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "SuperchainConfig_OnlyGuardian()"; + const SELECTOR: [u8; 4] = [175u8, 190u8, 155u8, 198u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `SuperchainConfig_OnlyGuardianOrIncidentResponder()` and selector `0xd8f0cd14`. +```solidity +error SuperchainConfig_OnlyGuardianOrIncidentResponder(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct SuperchainConfig_OnlyGuardianOrIncidentResponder; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: SuperchainConfig_OnlyGuardianOrIncidentResponder) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for SuperchainConfig_OnlyGuardianOrIncidentResponder { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError + for SuperchainConfig_OnlyGuardianOrIncidentResponder { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "SuperchainConfig_OnlyGuardianOrIncidentResponder()"; + const SELECTOR: [u8; 4] = [216u8, 240u8, 205u8, 20u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `PauseExtended(address)` and selector `0x1163213dbd11d2d966db59d270ddfc3c6fbe0540ffe8f0e7f38c5cac16d2f36b`. +```solidity +event PauseExtended(address identifier); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct PauseExtended { + #[allow(missing_docs)] + pub identifier: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for PauseExtended { + type DataTuple<'a> = (alloy::sol_types::sol_data::Address,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,); + const SIGNATURE: &'static str = "PauseExtended(address)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 17u8, 99u8, 33u8, 61u8, 189u8, 17u8, 210u8, 217u8, 102u8, 219u8, 89u8, + 210u8, 112u8, 221u8, 252u8, 60u8, 111u8, 190u8, 5u8, 64u8, 255u8, 232u8, + 240u8, 231u8, 243u8, 140u8, 92u8, 172u8, 22u8, 210u8, 243u8, 107u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { identifier: data.0 } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + ::tokenize( + &self.identifier, + ), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(),) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for PauseExtended { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&PauseExtended> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &PauseExtended) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `Paused(address)` and selector `0x62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258`. +```solidity +event Paused(address identifier); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct Paused { + #[allow(missing_docs)] + pub identifier: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for Paused { + type DataTuple<'a> = (alloy::sol_types::sol_data::Address,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,); + const SIGNATURE: &'static str = "Paused(address)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 98u8, 231u8, 140u8, 234u8, 1u8, 190u8, 227u8, 32u8, 205u8, 78u8, 66u8, + 2u8, 112u8, 181u8, 234u8, 116u8, 0u8, 13u8, 17u8, 176u8, 201u8, 247u8, + 71u8, 84u8, 235u8, 219u8, 252u8, 84u8, 75u8, 5u8, 162u8, 88u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { identifier: data.0 } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + ::tokenize( + &self.identifier, + ), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(),) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for Paused { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&Paused> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &Paused) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `Unpaused(address)` and selector `0x5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa`. +```solidity +event Unpaused(address identifier); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct Unpaused { + #[allow(missing_docs)] + pub identifier: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for Unpaused { + type DataTuple<'a> = (alloy::sol_types::sol_data::Address,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,); + const SIGNATURE: &'static str = "Unpaused(address)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 93u8, 185u8, 238u8, 10u8, 73u8, 91u8, 242u8, 230u8, 255u8, 156u8, 145u8, + 167u8, 131u8, 76u8, 27u8, 164u8, 253u8, 210u8, 68u8, 165u8, 232u8, 170u8, + 78u8, 83u8, 123u8, 211u8, 138u8, 234u8, 228u8, 176u8, 115u8, 170u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { identifier: data.0 } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + ::tokenize( + &self.identifier, + ), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(),) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for Unpaused { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&Unpaused> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &Unpaused) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + /**Constructor`. +```solidity +constructor(address _guardian, address _incidentResponder); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct constructorCall { + #[allow(missing_docs)] + pub _guardian: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _incidentResponder: alloy::sol_types::private::Address, + } + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: constructorCall) -> Self { + (value._guardian, value._incidentResponder) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for constructorCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _guardian: tuple.0, + _incidentResponder: tuple.1, + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolConstructor for constructorCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._guardian, + ), + ::tokenize( + &self._incidentResponder, + ), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `GUARDIAN()` and selector `0x724c184c`. +```solidity +function GUARDIAN() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct GUARDIANCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`GUARDIAN()`](GUARDIANCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct GUARDIANReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: GUARDIANCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for GUARDIANCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: GUARDIANReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for GUARDIANReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for GUARDIANCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "GUARDIAN()"; + const SELECTOR: [u8; 4] = [114u8, 76u8, 24u8, 76u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: GUARDIANReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: GUARDIANReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `INCIDENT_RESPONDER()` and selector `0xb2bff544`. +```solidity +function INCIDENT_RESPONDER() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct INCIDENT_RESPONDERCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`INCIDENT_RESPONDER()`](INCIDENT_RESPONDERCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct INCIDENT_RESPONDERReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: INCIDENT_RESPONDERCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for INCIDENT_RESPONDERCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: INCIDENT_RESPONDERReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for INCIDENT_RESPONDERReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for INCIDENT_RESPONDERCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "INCIDENT_RESPONDER()"; + const SELECTOR: [u8; 4] = [178u8, 191u8, 245u8, 68u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: INCIDENT_RESPONDERReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: INCIDENT_RESPONDERReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `expiration(address)` and selector `0x04dbe3fe`. +```solidity +function expiration(address _identifier) external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct expirationCall { + #[allow(missing_docs)] + pub _identifier: alloy::sol_types::private::Address, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`expiration(address)`](expirationCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct expirationReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: expirationCall) -> Self { + (value._identifier,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for expirationCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _identifier: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: expirationReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for expirationReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for expirationCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "expiration(address)"; + const SELECTOR: [u8; 4] = [4u8, 219u8, 227u8, 254u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._identifier, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: expirationReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: expirationReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `extend(address)` and selector `0x82005715`. +```solidity +function extend(address _identifier) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct extendCall { + #[allow(missing_docs)] + pub _identifier: alloy::sol_types::private::Address, + } + ///Container type for the return parameters of the [`extend(address)`](extendCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct extendReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: extendCall) -> Self { + (value._identifier,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for extendCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _identifier: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: extendReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for extendReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl extendReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for extendCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = extendReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "extend(address)"; + const SELECTOR: [u8; 4] = [130u8, 0u8, 87u8, 21u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._identifier, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + extendReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `guardian()` and selector `0x452a9320`. +```solidity +function guardian() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct guardianCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`guardian()`](guardianCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct guardianReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: guardianCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for guardianCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: guardianReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for guardianReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for guardianCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "guardian()"; + const SELECTOR: [u8; 4] = [69u8, 42u8, 147u8, 32u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: guardianReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: guardianReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `incidentResponder()` and selector `0xa9679058`. +```solidity +function incidentResponder() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct incidentResponderCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`incidentResponder()`](incidentResponderCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct incidentResponderReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: incidentResponderCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for incidentResponderCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: incidentResponderReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for incidentResponderReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for incidentResponderCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "incidentResponder()"; + const SELECTOR: [u8; 4] = [169u8, 103u8, 144u8, 88u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: incidentResponderReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: incidentResponderReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `pausable(address)` and selector `0x32dfadd9`. +```solidity +function pausable(address _identifier) external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct pausableCall { + #[allow(missing_docs)] + pub _identifier: alloy::sol_types::private::Address, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`pausable(address)`](pausableCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct pausableReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: pausableCall) -> Self { + (value._identifier,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for pausableCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _identifier: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: pausableReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for pausableReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for pausableCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "pausable(address)"; + const SELECTOR: [u8; 4] = [50u8, 223u8, 173u8, 217u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._identifier, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: pausableReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: pausableReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `pause(address)` and selector `0x76a67a51`. +```solidity +function pause(address _identifier) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct pauseCall { + #[allow(missing_docs)] + pub _identifier: alloy::sol_types::private::Address, + } + ///Container type for the return parameters of the [`pause(address)`](pauseCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct pauseReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: pauseCall) -> Self { + (value._identifier,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for pauseCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _identifier: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: pauseReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for pauseReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl pauseReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for pauseCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = pauseReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "pause(address)"; + const SELECTOR: [u8; 4] = [118u8, 166u8, 122u8, 81u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._identifier, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + pauseReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `pauseExpiry()` and selector `0xf125af6b`. +```solidity +function pauseExpiry() external pure returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct pauseExpiryCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`pauseExpiry()`](pauseExpiryCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct pauseExpiryReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: pauseExpiryCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for pauseExpiryCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: pauseExpiryReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for pauseExpiryReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for pauseExpiryCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "pauseExpiry()"; + const SELECTOR: [u8; 4] = [241u8, 37u8, 175u8, 107u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: pauseExpiryReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: pauseExpiryReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `pauseTimestamps(address)` and selector `0x0e3b6d1f`. +```solidity +function pauseTimestamps(address) external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct pauseTimestampsCall(pub alloy::sol_types::private::Address); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`pauseTimestamps(address)`](pauseTimestampsCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct pauseTimestampsReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: pauseTimestampsCall) -> Self { + (value.0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for pauseTimestampsCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self(tuple.0) + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: pauseTimestampsReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for pauseTimestampsReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for pauseTimestampsCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "pauseTimestamps(address)"; + const SELECTOR: [u8; 4] = [14u8, 59u8, 109u8, 31u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.0, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: pauseTimestampsReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: pauseTimestampsReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `paused(address)` and selector `0x2e48152c`. +```solidity +function paused(address _identifier) external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct paused_0Call { + #[allow(missing_docs)] + pub _identifier: alloy::sol_types::private::Address, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`paused(address)`](paused_0Call) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct paused_0Return { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: paused_0Call) -> Self { + (value._identifier,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for paused_0Call { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _identifier: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: paused_0Return) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for paused_0Return { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for paused_0Call { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "paused(address)"; + const SELECTOR: [u8; 4] = [46u8, 72u8, 21u8, 44u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._identifier, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: paused_0Return = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: paused_0Return = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `paused()` and selector `0x5c975abb`. +```solidity +function paused() external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct paused_1Call; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`paused()`](paused_1Call) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct paused_1Return { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: paused_1Call) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for paused_1Call { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: paused_1Return) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for paused_1Return { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for paused_1Call { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "paused()"; + const SELECTOR: [u8; 4] = [92u8, 151u8, 90u8, 187u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: paused_1Return = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: paused_1Return = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `proxyAdmin()` and selector `0x3e47158c`. +```solidity +function proxyAdmin() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct proxyAdminCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`proxyAdmin()`](proxyAdminCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct proxyAdminReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: proxyAdminCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for proxyAdminCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: proxyAdminReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for proxyAdminReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for proxyAdminCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "proxyAdmin()"; + const SELECTOR: [u8; 4] = [62u8, 71u8, 21u8, 140u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: proxyAdminReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: proxyAdminReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `proxyAdminOwner()` and selector `0xdad544e0`. +```solidity +function proxyAdminOwner() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct proxyAdminOwnerCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`proxyAdminOwner()`](proxyAdminOwnerCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct proxyAdminOwnerReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: proxyAdminOwnerCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for proxyAdminOwnerCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: proxyAdminOwnerReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for proxyAdminOwnerReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for proxyAdminOwnerCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "proxyAdminOwner()"; + const SELECTOR: [u8; 4] = [218u8, 213u8, 68u8, 224u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: proxyAdminOwnerReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: proxyAdminOwnerReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `unpause(address)` and selector `0x57b001f9`. +```solidity +function unpause(address _identifier) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct unpauseCall { + #[allow(missing_docs)] + pub _identifier: alloy::sol_types::private::Address, + } + ///Container type for the return parameters of the [`unpause(address)`](unpauseCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct unpauseReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: unpauseCall) -> Self { + (value._identifier,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for unpauseCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _identifier: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: unpauseReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for unpauseReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl unpauseReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for unpauseCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = unpauseReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "unpause(address)"; + const SELECTOR: [u8; 4] = [87u8, 176u8, 1u8, 249u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._identifier, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + unpauseReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `version()` and selector `0x54fd4d50`. +```solidity +function version() external view returns (string memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`version()`](versionCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for versionCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::String; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "version()"; + const SELECTOR: [u8; 4] = [84u8, 253u8, 77u8, 80u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + } + }; + ///Container for all the [`SuperchainConfig`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum SuperchainConfigCalls { + #[allow(missing_docs)] + GUARDIAN(GUARDIANCall), + #[allow(missing_docs)] + INCIDENT_RESPONDER(INCIDENT_RESPONDERCall), + #[allow(missing_docs)] + expiration(expirationCall), + #[allow(missing_docs)] + extend(extendCall), + #[allow(missing_docs)] + guardian(guardianCall), + #[allow(missing_docs)] + incidentResponder(incidentResponderCall), + #[allow(missing_docs)] + pausable(pausableCall), + #[allow(missing_docs)] + pause(pauseCall), + #[allow(missing_docs)] + pauseExpiry(pauseExpiryCall), + #[allow(missing_docs)] + pauseTimestamps(pauseTimestampsCall), + #[allow(missing_docs)] + paused_0(paused_0Call), + #[allow(missing_docs)] + paused_1(paused_1Call), + #[allow(missing_docs)] + proxyAdmin(proxyAdminCall), + #[allow(missing_docs)] + proxyAdminOwner(proxyAdminOwnerCall), + #[allow(missing_docs)] + unpause(unpauseCall), + #[allow(missing_docs)] + version(versionCall), + } + impl SuperchainConfigCalls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [4u8, 219u8, 227u8, 254u8], + [14u8, 59u8, 109u8, 31u8], + [46u8, 72u8, 21u8, 44u8], + [50u8, 223u8, 173u8, 217u8], + [62u8, 71u8, 21u8, 140u8], + [69u8, 42u8, 147u8, 32u8], + [84u8, 253u8, 77u8, 80u8], + [87u8, 176u8, 1u8, 249u8], + [92u8, 151u8, 90u8, 187u8], + [114u8, 76u8, 24u8, 76u8], + [118u8, 166u8, 122u8, 81u8], + [130u8, 0u8, 87u8, 21u8], + [169u8, 103u8, 144u8, 88u8], + [178u8, 191u8, 245u8, 68u8], + [218u8, 213u8, 68u8, 224u8], + [241u8, 37u8, 175u8, 107u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(expiration), + ::core::stringify!(pauseTimestamps), + ::core::stringify!(paused_0), + ::core::stringify!(pausable), + ::core::stringify!(proxyAdmin), + ::core::stringify!(guardian), + ::core::stringify!(version), + ::core::stringify!(unpause), + ::core::stringify!(paused_1), + ::core::stringify!(GUARDIAN), + ::core::stringify!(pause), + ::core::stringify!(extend), + ::core::stringify!(incidentResponder), + ::core::stringify!(INCIDENT_RESPONDER), + ::core::stringify!(proxyAdminOwner), + ::core::stringify!(pauseExpiry), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for SuperchainConfigCalls { + const NAME: &'static str = "SuperchainConfigCalls"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 16usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::GUARDIAN(_) => ::SELECTOR, + Self::INCIDENT_RESPONDER(_) => { + ::SELECTOR + } + Self::expiration(_) => { + ::SELECTOR + } + Self::extend(_) => ::SELECTOR, + Self::guardian(_) => ::SELECTOR, + Self::incidentResponder(_) => { + ::SELECTOR + } + Self::pausable(_) => ::SELECTOR, + Self::pause(_) => ::SELECTOR, + Self::pauseExpiry(_) => { + ::SELECTOR + } + Self::pauseTimestamps(_) => { + ::SELECTOR + } + Self::paused_0(_) => ::SELECTOR, + Self::paused_1(_) => ::SELECTOR, + Self::proxyAdmin(_) => { + ::SELECTOR + } + Self::proxyAdminOwner(_) => { + ::SELECTOR + } + Self::unpause(_) => ::SELECTOR, + Self::version(_) => ::SELECTOR, + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn expiration( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperchainConfigCalls::expiration) + } + expiration + }, + { + fn pauseTimestamps( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperchainConfigCalls::pauseTimestamps) + } + pauseTimestamps + }, + { + fn paused_0( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(SuperchainConfigCalls::paused_0) + } + paused_0 + }, + { + fn pausable( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(SuperchainConfigCalls::pausable) + } + pausable + }, + { + fn proxyAdmin( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperchainConfigCalls::proxyAdmin) + } + proxyAdmin + }, + { + fn guardian( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(SuperchainConfigCalls::guardian) + } + guardian + }, + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(SuperchainConfigCalls::version) + } + version + }, + { + fn unpause( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(SuperchainConfigCalls::unpause) + } + unpause + }, + { + fn paused_1( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(SuperchainConfigCalls::paused_1) + } + paused_1 + }, + { + fn GUARDIAN( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(SuperchainConfigCalls::GUARDIAN) + } + GUARDIAN + }, + { + fn pause( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(SuperchainConfigCalls::pause) + } + pause + }, + { + fn extend( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(SuperchainConfigCalls::extend) + } + extend + }, + { + fn incidentResponder( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperchainConfigCalls::incidentResponder) + } + incidentResponder + }, + { + fn INCIDENT_RESPONDER( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperchainConfigCalls::INCIDENT_RESPONDER) + } + INCIDENT_RESPONDER + }, + { + fn proxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperchainConfigCalls::proxyAdminOwner) + } + proxyAdminOwner + }, + { + fn pauseExpiry( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperchainConfigCalls::pauseExpiry) + } + pauseExpiry + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn expiration( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperchainConfigCalls::expiration) + } + expiration + }, + { + fn pauseTimestamps( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperchainConfigCalls::pauseTimestamps) + } + pauseTimestamps + }, + { + fn paused_0( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperchainConfigCalls::paused_0) + } + paused_0 + }, + { + fn pausable( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperchainConfigCalls::pausable) + } + pausable + }, + { + fn proxyAdmin( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperchainConfigCalls::proxyAdmin) + } + proxyAdmin + }, + { + fn guardian( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperchainConfigCalls::guardian) + } + guardian + }, + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperchainConfigCalls::version) + } + version + }, + { + fn unpause( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperchainConfigCalls::unpause) + } + unpause + }, + { + fn paused_1( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperchainConfigCalls::paused_1) + } + paused_1 + }, + { + fn GUARDIAN( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperchainConfigCalls::GUARDIAN) + } + GUARDIAN + }, + { + fn pause( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperchainConfigCalls::pause) + } + pause + }, + { + fn extend( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperchainConfigCalls::extend) + } + extend + }, + { + fn incidentResponder( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperchainConfigCalls::incidentResponder) + } + incidentResponder + }, + { + fn INCIDENT_RESPONDER( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperchainConfigCalls::INCIDENT_RESPONDER) + } + INCIDENT_RESPONDER + }, + { + fn proxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperchainConfigCalls::proxyAdminOwner) + } + proxyAdminOwner + }, + { + fn pauseExpiry( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperchainConfigCalls::pauseExpiry) + } + pauseExpiry + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::GUARDIAN(inner) => { + ::abi_encoded_size(inner) + } + Self::INCIDENT_RESPONDER(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::expiration(inner) => { + ::abi_encoded_size(inner) + } + Self::extend(inner) => { + ::abi_encoded_size(inner) + } + Self::guardian(inner) => { + ::abi_encoded_size(inner) + } + Self::incidentResponder(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::pausable(inner) => { + ::abi_encoded_size(inner) + } + Self::pause(inner) => { + ::abi_encoded_size(inner) + } + Self::pauseExpiry(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::pauseTimestamps(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::paused_0(inner) => { + ::abi_encoded_size(inner) + } + Self::paused_1(inner) => { + ::abi_encoded_size(inner) + } + Self::proxyAdmin(inner) => { + ::abi_encoded_size(inner) + } + Self::proxyAdminOwner(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::unpause(inner) => { + ::abi_encoded_size(inner) + } + Self::version(inner) => { + ::abi_encoded_size(inner) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::GUARDIAN(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::INCIDENT_RESPONDER(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::expiration(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::extend(inner) => { + ::abi_encode_raw(inner, out) + } + Self::guardian(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::incidentResponder(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::pausable(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::pause(inner) => { + ::abi_encode_raw(inner, out) + } + Self::pauseExpiry(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::pauseTimestamps(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::paused_0(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::paused_1(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::proxyAdmin(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::proxyAdminOwner(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::unpause(inner) => { + ::abi_encode_raw(inner, out) + } + Self::version(inner) => { + ::abi_encode_raw(inner, out) + } + } + } + } + ///Container for all the [`SuperchainConfig`](self) custom errors. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum SuperchainConfigErrors { + #[allow(missing_docs)] + ProxyAdminOwnedBase_NotProxyAdmin(ProxyAdminOwnedBase_NotProxyAdmin), + #[allow(missing_docs)] + ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner( + ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner, + ), + #[allow(missing_docs)] + ProxyAdminOwnedBase_NotProxyAdminOwner(ProxyAdminOwnedBase_NotProxyAdminOwner), + #[allow(missing_docs)] + ProxyAdminOwnedBase_NotResolvedDelegateProxy( + ProxyAdminOwnedBase_NotResolvedDelegateProxy, + ), + #[allow(missing_docs)] + ProxyAdminOwnedBase_NotSharedProxyAdminOwner( + ProxyAdminOwnedBase_NotSharedProxyAdminOwner, + ), + #[allow(missing_docs)] + ProxyAdminOwnedBase_ProxyAdminNotFound(ProxyAdminOwnedBase_ProxyAdminNotFound), + #[allow(missing_docs)] + SuperchainConfig_AlreadyPaused(SuperchainConfig_AlreadyPaused), + #[allow(missing_docs)] + SuperchainConfig_NotAlreadyPaused(SuperchainConfig_NotAlreadyPaused), + #[allow(missing_docs)] + SuperchainConfig_OnlyGuardian(SuperchainConfig_OnlyGuardian), + #[allow(missing_docs)] + SuperchainConfig_OnlyGuardianOrIncidentResponder( + SuperchainConfig_OnlyGuardianOrIncidentResponder, + ), + } + impl SuperchainConfigErrors { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [7u8, 92u8, 67u8, 20u8], + [51u8, 33u8, 68u8, 219u8], + [51u8, 91u8, 134u8, 149u8], + [84u8, 228u8, 51u8, 205u8], + [127u8, 18u8, 198u8, 75u8], + [175u8, 190u8, 155u8, 198u8], + [183u8, 216u8, 104u8, 148u8], + [196u8, 5u8, 10u8, 38u8], + [216u8, 240u8, 205u8, 20u8], + [232u8, 24u8, 220u8, 195u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(ProxyAdminOwnedBase_NotSharedProxyAdminOwner), + ::core::stringify!(ProxyAdminOwnedBase_ProxyAdminNotFound), + ::core::stringify!(SuperchainConfig_NotAlreadyPaused), + ::core::stringify!(ProxyAdminOwnedBase_NotResolvedDelegateProxy), + ::core::stringify!(ProxyAdminOwnedBase_NotProxyAdminOwner), + ::core::stringify!(SuperchainConfig_OnlyGuardian), + ::core::stringify!(SuperchainConfig_AlreadyPaused), + ::core::stringify!(ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner), + ::core::stringify!(SuperchainConfig_OnlyGuardianOrIncidentResponder), + ::core::stringify!(ProxyAdminOwnedBase_NotProxyAdmin), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for SuperchainConfigErrors { + const NAME: &'static str = "SuperchainConfigErrors"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 10usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::ProxyAdminOwnedBase_NotProxyAdmin(_) => { + ::SELECTOR + } + Self::ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner(_) => { + ::SELECTOR + } + Self::ProxyAdminOwnedBase_NotProxyAdminOwner(_) => { + ::SELECTOR + } + Self::ProxyAdminOwnedBase_NotResolvedDelegateProxy(_) => { + ::SELECTOR + } + Self::ProxyAdminOwnedBase_NotSharedProxyAdminOwner(_) => { + ::SELECTOR + } + Self::ProxyAdminOwnedBase_ProxyAdminNotFound(_) => { + ::SELECTOR + } + Self::SuperchainConfig_AlreadyPaused(_) => { + ::SELECTOR + } + Self::SuperchainConfig_NotAlreadyPaused(_) => { + ::SELECTOR + } + Self::SuperchainConfig_OnlyGuardian(_) => { + ::SELECTOR + } + Self::SuperchainConfig_OnlyGuardianOrIncidentResponder(_) => { + ::SELECTOR + } + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn ProxyAdminOwnedBase_NotSharedProxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + SuperchainConfigErrors::ProxyAdminOwnedBase_NotSharedProxyAdminOwner, + ) + } + ProxyAdminOwnedBase_NotSharedProxyAdminOwner + }, + { + fn ProxyAdminOwnedBase_ProxyAdminNotFound( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + SuperchainConfigErrors::ProxyAdminOwnedBase_ProxyAdminNotFound, + ) + } + ProxyAdminOwnedBase_ProxyAdminNotFound + }, + { + fn SuperchainConfig_NotAlreadyPaused( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + SuperchainConfigErrors::SuperchainConfig_NotAlreadyPaused, + ) + } + SuperchainConfig_NotAlreadyPaused + }, + { + fn ProxyAdminOwnedBase_NotResolvedDelegateProxy( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + SuperchainConfigErrors::ProxyAdminOwnedBase_NotResolvedDelegateProxy, + ) + } + ProxyAdminOwnedBase_NotResolvedDelegateProxy + }, + { + fn ProxyAdminOwnedBase_NotProxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + SuperchainConfigErrors::ProxyAdminOwnedBase_NotProxyAdminOwner, + ) + } + ProxyAdminOwnedBase_NotProxyAdminOwner + }, + { + fn SuperchainConfig_OnlyGuardian( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperchainConfigErrors::SuperchainConfig_OnlyGuardian) + } + SuperchainConfig_OnlyGuardian + }, + { + fn SuperchainConfig_AlreadyPaused( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperchainConfigErrors::SuperchainConfig_AlreadyPaused) + } + SuperchainConfig_AlreadyPaused + }, + { + fn ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + SuperchainConfigErrors::ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner, + ) + } + ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner + }, + { + fn SuperchainConfig_OnlyGuardianOrIncidentResponder( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + SuperchainConfigErrors::SuperchainConfig_OnlyGuardianOrIncidentResponder, + ) + } + SuperchainConfig_OnlyGuardianOrIncidentResponder + }, + { + fn ProxyAdminOwnedBase_NotProxyAdmin( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + SuperchainConfigErrors::ProxyAdminOwnedBase_NotProxyAdmin, + ) + } + ProxyAdminOwnedBase_NotProxyAdmin + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn ProxyAdminOwnedBase_NotSharedProxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + SuperchainConfigErrors::ProxyAdminOwnedBase_NotSharedProxyAdminOwner, + ) + } + ProxyAdminOwnedBase_NotSharedProxyAdminOwner + }, + { + fn ProxyAdminOwnedBase_ProxyAdminNotFound( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + SuperchainConfigErrors::ProxyAdminOwnedBase_ProxyAdminNotFound, + ) + } + ProxyAdminOwnedBase_ProxyAdminNotFound + }, + { + fn SuperchainConfig_NotAlreadyPaused( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + SuperchainConfigErrors::SuperchainConfig_NotAlreadyPaused, + ) + } + SuperchainConfig_NotAlreadyPaused + }, + { + fn ProxyAdminOwnedBase_NotResolvedDelegateProxy( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + SuperchainConfigErrors::ProxyAdminOwnedBase_NotResolvedDelegateProxy, + ) + } + ProxyAdminOwnedBase_NotResolvedDelegateProxy + }, + { + fn ProxyAdminOwnedBase_NotProxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + SuperchainConfigErrors::ProxyAdminOwnedBase_NotProxyAdminOwner, + ) + } + ProxyAdminOwnedBase_NotProxyAdminOwner + }, + { + fn SuperchainConfig_OnlyGuardian( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperchainConfigErrors::SuperchainConfig_OnlyGuardian) + } + SuperchainConfig_OnlyGuardian + }, + { + fn SuperchainConfig_AlreadyPaused( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperchainConfigErrors::SuperchainConfig_AlreadyPaused) + } + SuperchainConfig_AlreadyPaused + }, + { + fn ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + SuperchainConfigErrors::ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner, + ) + } + ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner + }, + { + fn SuperchainConfig_OnlyGuardianOrIncidentResponder( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + SuperchainConfigErrors::SuperchainConfig_OnlyGuardianOrIncidentResponder, + ) + } + SuperchainConfig_OnlyGuardianOrIncidentResponder + }, + { + fn ProxyAdminOwnedBase_NotProxyAdmin( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + SuperchainConfigErrors::ProxyAdminOwnedBase_NotProxyAdmin, + ) + } + ProxyAdminOwnedBase_NotProxyAdmin + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::ProxyAdminOwnedBase_NotProxyAdmin(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ProxyAdminOwnedBase_NotProxyAdminOwner(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ProxyAdminOwnedBase_NotResolvedDelegateProxy(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ProxyAdminOwnedBase_NotSharedProxyAdminOwner(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ProxyAdminOwnedBase_ProxyAdminNotFound(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::SuperchainConfig_AlreadyPaused(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::SuperchainConfig_NotAlreadyPaused(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::SuperchainConfig_OnlyGuardian(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::SuperchainConfig_OnlyGuardianOrIncidentResponder(inner) => { + ::abi_encoded_size( + inner, + ) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::ProxyAdminOwnedBase_NotProxyAdmin(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ProxyAdminOwnedBase_NotProxyAdminOwner(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ProxyAdminOwnedBase_NotResolvedDelegateProxy(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ProxyAdminOwnedBase_NotSharedProxyAdminOwner(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ProxyAdminOwnedBase_ProxyAdminNotFound(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::SuperchainConfig_AlreadyPaused(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::SuperchainConfig_NotAlreadyPaused(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::SuperchainConfig_OnlyGuardian(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::SuperchainConfig_OnlyGuardianOrIncidentResponder(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + } + } + } + ///Container for all the [`SuperchainConfig`](self) events. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum SuperchainConfigEvents { + #[allow(missing_docs)] + PauseExtended(PauseExtended), + #[allow(missing_docs)] + Paused(Paused), + #[allow(missing_docs)] + Unpaused(Unpaused), + } + impl SuperchainConfigEvents { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 32usize]] = &[ + [ + 17u8, 99u8, 33u8, 61u8, 189u8, 17u8, 210u8, 217u8, 102u8, 219u8, 89u8, + 210u8, 112u8, 221u8, 252u8, 60u8, 111u8, 190u8, 5u8, 64u8, 255u8, 232u8, + 240u8, 231u8, 243u8, 140u8, 92u8, 172u8, 22u8, 210u8, 243u8, 107u8, + ], + [ + 93u8, 185u8, 238u8, 10u8, 73u8, 91u8, 242u8, 230u8, 255u8, 156u8, 145u8, + 167u8, 131u8, 76u8, 27u8, 164u8, 253u8, 210u8, 68u8, 165u8, 232u8, 170u8, + 78u8, 83u8, 123u8, 211u8, 138u8, 234u8, 228u8, 176u8, 115u8, 170u8, + ], + [ + 98u8, 231u8, 140u8, 234u8, 1u8, 190u8, 227u8, 32u8, 205u8, 78u8, 66u8, + 2u8, 112u8, 181u8, 234u8, 116u8, 0u8, 13u8, 17u8, 176u8, 201u8, 247u8, + 71u8, 84u8, 235u8, 219u8, 252u8, 84u8, 75u8, 5u8, 162u8, 88u8, + ], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(PauseExtended), + ::core::stringify!(Unpaused), + ::core::stringify!(Paused), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolEventInterface for SuperchainConfigEvents { + const NAME: &'static str = "SuperchainConfigEvents"; + const COUNT: usize = 3usize; + fn decode_raw_log( + topics: &[alloy_sol_types::Word], + data: &[u8], + ) -> alloy_sol_types::Result { + match topics.first().copied() { + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::PauseExtended) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log(topics, data) + .map(Self::Paused) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log(topics, data) + .map(Self::Unpaused) + } + _ => { + alloy_sol_types::private::Err(alloy_sol_types::Error::InvalidLog { + name: ::NAME, + log: alloy_sol_types::private::Box::new( + alloy_sol_types::private::LogData::new_unchecked( + topics.to_vec(), + data.to_vec().into(), + ), + ), + }) + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for SuperchainConfigEvents { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + match self { + Self::PauseExtended(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::Paused(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::Unpaused(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + } + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + match self { + Self::PauseExtended(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::Paused(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::Unpaused(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`SuperchainConfig`](self) contract instance. + +See the [wrapper's documentation](`SuperchainConfigInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> SuperchainConfigInstance { + SuperchainConfigInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + _guardian: alloy::sol_types::private::Address, + _incidentResponder: alloy::sol_types::private::Address, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + SuperchainConfigInstance::< + P, + N, + >::deploy(__provider, _guardian, _incidentResponder) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + _guardian: alloy::sol_types::private::Address, + _incidentResponder: alloy::sol_types::private::Address, + ) -> alloy_contract::RawCallBuilder { + SuperchainConfigInstance::< + P, + N, + >::deploy_builder(__provider, _guardian, _incidentResponder) + } + /**A [`SuperchainConfig`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`SuperchainConfig`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct SuperchainConfigInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for SuperchainConfigInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("SuperchainConfigInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > SuperchainConfigInstance { + /**Creates a new wrapper around an on-chain [`SuperchainConfig`](self) contract instance. + +See the [wrapper's documentation](`SuperchainConfigInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + _guardian: alloy::sol_types::private::Address, + _incidentResponder: alloy::sol_types::private::Address, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder( + __provider, + _guardian, + _incidentResponder, + ); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder( + __provider: P, + _guardian: alloy::sol_types::private::Address, + _incidentResponder: alloy::sol_types::private::Address, + ) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + [ + &BYTECODE[..], + &alloy_sol_types::SolConstructor::abi_encode( + &constructorCall { + _guardian, + _incidentResponder, + }, + )[..], + ] + .concat() + .into(), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl SuperchainConfigInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> SuperchainConfigInstance { + SuperchainConfigInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > SuperchainConfigInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`GUARDIAN`] function. + pub fn GUARDIAN(&self) -> alloy_contract::SolCallBuilder<&P, GUARDIANCall, N> { + self.call_builder(&GUARDIANCall) + } + ///Creates a new call builder for the [`INCIDENT_RESPONDER`] function. + pub fn INCIDENT_RESPONDER( + &self, + ) -> alloy_contract::SolCallBuilder<&P, INCIDENT_RESPONDERCall, N> { + self.call_builder(&INCIDENT_RESPONDERCall) + } + ///Creates a new call builder for the [`expiration`] function. + pub fn expiration( + &self, + _identifier: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, expirationCall, N> { + self.call_builder(&expirationCall { _identifier }) + } + ///Creates a new call builder for the [`extend`] function. + pub fn extend( + &self, + _identifier: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, extendCall, N> { + self.call_builder(&extendCall { _identifier }) + } + ///Creates a new call builder for the [`guardian`] function. + pub fn guardian(&self) -> alloy_contract::SolCallBuilder<&P, guardianCall, N> { + self.call_builder(&guardianCall) + } + ///Creates a new call builder for the [`incidentResponder`] function. + pub fn incidentResponder( + &self, + ) -> alloy_contract::SolCallBuilder<&P, incidentResponderCall, N> { + self.call_builder(&incidentResponderCall) + } + ///Creates a new call builder for the [`pausable`] function. + pub fn pausable( + &self, + _identifier: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, pausableCall, N> { + self.call_builder(&pausableCall { _identifier }) + } + ///Creates a new call builder for the [`pause`] function. + pub fn pause( + &self, + _identifier: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, pauseCall, N> { + self.call_builder(&pauseCall { _identifier }) + } + ///Creates a new call builder for the [`pauseExpiry`] function. + pub fn pauseExpiry( + &self, + ) -> alloy_contract::SolCallBuilder<&P, pauseExpiryCall, N> { + self.call_builder(&pauseExpiryCall) + } + ///Creates a new call builder for the [`pauseTimestamps`] function. + pub fn pauseTimestamps( + &self, + _0: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, pauseTimestampsCall, N> { + self.call_builder(&pauseTimestampsCall(_0)) + } + ///Creates a new call builder for the [`paused_0`] function. + pub fn paused_0( + &self, + _identifier: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, paused_0Call, N> { + self.call_builder(&paused_0Call { _identifier }) + } + ///Creates a new call builder for the [`paused_1`] function. + pub fn paused_1(&self) -> alloy_contract::SolCallBuilder<&P, paused_1Call, N> { + self.call_builder(&paused_1Call) + } + ///Creates a new call builder for the [`proxyAdmin`] function. + pub fn proxyAdmin( + &self, + ) -> alloy_contract::SolCallBuilder<&P, proxyAdminCall, N> { + self.call_builder(&proxyAdminCall) + } + ///Creates a new call builder for the [`proxyAdminOwner`] function. + pub fn proxyAdminOwner( + &self, + ) -> alloy_contract::SolCallBuilder<&P, proxyAdminOwnerCall, N> { + self.call_builder(&proxyAdminOwnerCall) + } + ///Creates a new call builder for the [`unpause`] function. + pub fn unpause( + &self, + _identifier: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, unpauseCall, N> { + self.call_builder(&unpauseCall { _identifier }) + } + ///Creates a new call builder for the [`version`] function. + pub fn version(&self) -> alloy_contract::SolCallBuilder<&P, versionCall, N> { + self.call_builder(&versionCall) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > SuperchainConfigInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + ///Creates a new event filter for the [`PauseExtended`] event. + pub fn PauseExtended_filter( + &self, + ) -> alloy_contract::Event<&P, PauseExtended, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`Paused`] event. + pub fn Paused_filter(&self) -> alloy_contract::Event<&P, Paused, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`Unpaused`] event. + pub fn Unpaused_filter(&self) -> alloy_contract::Event<&P, Unpaused, N> { + self.event_filter::() + } + } +} diff --git a/bindings/rust/src/superchain_erc20.rs b/bindings/rust/src/superchain_erc20.rs new file mode 100644 index 000000000..176455b69 --- /dev/null +++ b/bindings/rust/src/superchain_erc20.rs @@ -0,0 +1,5918 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface SuperchainERC20 { + error AllowanceOverflow(); + error AllowanceUnderflow(); + error InsufficientAllowance(); + error InsufficientBalance(); + error InvalidPermit(); + error Permit2AllowanceIsFixedAtInfinity(); + error PermitExpired(); + error TotalSupplyOverflow(); + error Unauthorized(); + + event Approval(address indexed owner, address indexed spender, uint256 amount); + event CrosschainBurn(address indexed from, uint256 amount, address indexed sender); + event CrosschainMint(address indexed to, uint256 amount, address indexed sender); + event Transfer(address indexed from, address indexed to, uint256 amount); + + function DOMAIN_SEPARATOR() external view returns (bytes32 result); + function allowance(address owner, address spender) external view returns (uint256 result); + function approve(address spender, uint256 amount) external returns (bool); + function balanceOf(address owner) external view returns (uint256 result); + function crosschainBurn(address _from, uint256 _amount) external; + function crosschainMint(address _to, uint256 _amount) external; + function decimals() external view returns (uint8); + function name() external view returns (string memory); + function nonces(address owner) external view returns (uint256 result); + function permit(address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) external; + function supportsInterface(bytes4 _interfaceId) external view returns (bool); + function symbol() external view returns (string memory); + function totalSupply() external view returns (uint256 result); + function transfer(address to, uint256 amount) external returns (bool); + function transferFrom(address from, address to, uint256 amount) external returns (bool); + function version() external view returns (string memory); +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "function", + "name": "DOMAIN_SEPARATOR", + "inputs": [], + "outputs": [ + { + "name": "result", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "allowance", + "inputs": [ + { + "name": "owner", + "type": "address", + "internalType": "address" + }, + { + "name": "spender", + "type": "address", + "internalType": "address" + } + ], + "outputs": [ + { + "name": "result", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "approve", + "inputs": [ + { + "name": "spender", + "type": "address", + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "balanceOf", + "inputs": [ + { + "name": "owner", + "type": "address", + "internalType": "address" + } + ], + "outputs": [ + { + "name": "result", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "crosschainBurn", + "inputs": [ + { + "name": "_from", + "type": "address", + "internalType": "address" + }, + { + "name": "_amount", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "crosschainMint", + "inputs": [ + { + "name": "_to", + "type": "address", + "internalType": "address" + }, + { + "name": "_amount", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "decimals", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint8", + "internalType": "uint8" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "name", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "nonces", + "inputs": [ + { + "name": "owner", + "type": "address", + "internalType": "address" + } + ], + "outputs": [ + { + "name": "result", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "permit", + "inputs": [ + { + "name": "owner", + "type": "address", + "internalType": "address" + }, + { + "name": "spender", + "type": "address", + "internalType": "address" + }, + { + "name": "value", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "deadline", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "v", + "type": "uint8", + "internalType": "uint8" + }, + { + "name": "r", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "s", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "supportsInterface", + "inputs": [ + { + "name": "_interfaceId", + "type": "bytes4", + "internalType": "bytes4" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "symbol", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "totalSupply", + "inputs": [], + "outputs": [ + { + "name": "result", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "transfer", + "inputs": [ + { + "name": "to", + "type": "address", + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "transferFrom", + "inputs": [ + { + "name": "from", + "type": "address", + "internalType": "address" + }, + { + "name": "to", + "type": "address", + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "version", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "view" + }, + { + "type": "event", + "name": "Approval", + "inputs": [ + { + "name": "owner", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "spender", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "CrosschainBurn", + "inputs": [ + { + "name": "from", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + }, + { + "name": "sender", + "type": "address", + "indexed": true, + "internalType": "address" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "CrosschainMint", + "inputs": [ + { + "name": "to", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + }, + { + "name": "sender", + "type": "address", + "indexed": true, + "internalType": "address" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "Transfer", + "inputs": [ + { + "name": "from", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "to", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "error", + "name": "AllowanceOverflow", + "inputs": [] + }, + { + "type": "error", + "name": "AllowanceUnderflow", + "inputs": [] + }, + { + "type": "error", + "name": "InsufficientAllowance", + "inputs": [] + }, + { + "type": "error", + "name": "InsufficientBalance", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidPermit", + "inputs": [] + }, + { + "type": "error", + "name": "Permit2AllowanceIsFixedAtInfinity", + "inputs": [] + }, + { + "type": "error", + "name": "PermitExpired", + "inputs": [] + }, + { + "type": "error", + "name": "TotalSupplyOverflow", + "inputs": [] + }, + { + "type": "error", + "name": "Unauthorized", + "inputs": [] + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod SuperchainERC20 { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"", + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `AllowanceOverflow()` and selector `0xf9067066`. +```solidity +error AllowanceOverflow(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct AllowanceOverflow; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: AllowanceOverflow) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for AllowanceOverflow { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for AllowanceOverflow { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "AllowanceOverflow()"; + const SELECTOR: [u8; 4] = [249u8, 6u8, 112u8, 102u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `AllowanceUnderflow()` and selector `0x8301ab38`. +```solidity +error AllowanceUnderflow(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct AllowanceUnderflow; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: AllowanceUnderflow) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for AllowanceUnderflow { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for AllowanceUnderflow { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "AllowanceUnderflow()"; + const SELECTOR: [u8; 4] = [131u8, 1u8, 171u8, 56u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InsufficientAllowance()` and selector `0x13be252b`. +```solidity +error InsufficientAllowance(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InsufficientAllowance; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InsufficientAllowance) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InsufficientAllowance { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InsufficientAllowance { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InsufficientAllowance()"; + const SELECTOR: [u8; 4] = [19u8, 190u8, 37u8, 43u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InsufficientBalance()` and selector `0xf4d678b8`. +```solidity +error InsufficientBalance(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InsufficientBalance; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InsufficientBalance) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InsufficientBalance { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InsufficientBalance { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InsufficientBalance()"; + const SELECTOR: [u8; 4] = [244u8, 214u8, 120u8, 184u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidPermit()` and selector `0xddafbaef`. +```solidity +error InvalidPermit(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidPermit; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InvalidPermit) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InvalidPermit { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidPermit { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidPermit()"; + const SELECTOR: [u8; 4] = [221u8, 175u8, 186u8, 239u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `Permit2AllowanceIsFixedAtInfinity()` and selector `0x3f68539a`. +```solidity +error Permit2AllowanceIsFixedAtInfinity(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct Permit2AllowanceIsFixedAtInfinity; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: Permit2AllowanceIsFixedAtInfinity) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for Permit2AllowanceIsFixedAtInfinity { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for Permit2AllowanceIsFixedAtInfinity { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "Permit2AllowanceIsFixedAtInfinity()"; + const SELECTOR: [u8; 4] = [63u8, 104u8, 83u8, 154u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `PermitExpired()` and selector `0x1a15a3cc`. +```solidity +error PermitExpired(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct PermitExpired; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: PermitExpired) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for PermitExpired { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for PermitExpired { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "PermitExpired()"; + const SELECTOR: [u8; 4] = [26u8, 21u8, 163u8, 204u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `TotalSupplyOverflow()` and selector `0xe5cfe957`. +```solidity +error TotalSupplyOverflow(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct TotalSupplyOverflow; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: TotalSupplyOverflow) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for TotalSupplyOverflow { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for TotalSupplyOverflow { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "TotalSupplyOverflow()"; + const SELECTOR: [u8; 4] = [229u8, 207u8, 233u8, 87u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `Unauthorized()` and selector `0x82b42900`. +```solidity +error Unauthorized(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct Unauthorized; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: Unauthorized) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for Unauthorized { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for Unauthorized { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "Unauthorized()"; + const SELECTOR: [u8; 4] = [130u8, 180u8, 41u8, 0u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `Approval(address,address,uint256)` and selector `0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925`. +```solidity +event Approval(address indexed owner, address indexed spender, uint256 amount); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct Approval { + #[allow(missing_docs)] + pub owner: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub spender: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub amount: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for Approval { + type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "Approval(address,address,uint256)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 140u8, 91u8, 225u8, 229u8, 235u8, 236u8, 125u8, 91u8, 209u8, 79u8, 113u8, + 66u8, 125u8, 30u8, 132u8, 243u8, 221u8, 3u8, 20u8, 192u8, 247u8, 178u8, + 41u8, 30u8, 91u8, 32u8, 10u8, 200u8, 199u8, 195u8, 185u8, 37u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + owner: topics.1, + spender: topics.2, + amount: data.0, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.amount), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.owner.clone(), self.spender.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.owner, + ); + out[2usize] = ::encode_topic( + &self.spender, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for Approval { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&Approval> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &Approval) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `CrosschainBurn(address,uint256,address)` and selector `0xb90795a66650155983e242cac3e1ac1a4dc26f8ed2987f3ce416a34e00111fd4`. +```solidity +event CrosschainBurn(address indexed from, uint256 amount, address indexed sender); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct CrosschainBurn { + #[allow(missing_docs)] + pub from: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub amount: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub sender: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for CrosschainBurn { + type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "CrosschainBurn(address,uint256,address)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 185u8, 7u8, 149u8, 166u8, 102u8, 80u8, 21u8, 89u8, 131u8, 226u8, 66u8, + 202u8, 195u8, 225u8, 172u8, 26u8, 77u8, 194u8, 111u8, 142u8, 210u8, + 152u8, 127u8, 60u8, 228u8, 22u8, 163u8, 78u8, 0u8, 17u8, 31u8, 212u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + from: topics.1, + amount: data.0, + sender: topics.2, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.amount), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.from.clone(), self.sender.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.from, + ); + out[2usize] = ::encode_topic( + &self.sender, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for CrosschainBurn { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&CrosschainBurn> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &CrosschainBurn) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `CrosschainMint(address,uint256,address)` and selector `0xde22baff038e3a3e08407cbdf617deed74e869a7ba517df611e33131c6e6ea04`. +```solidity +event CrosschainMint(address indexed to, uint256 amount, address indexed sender); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct CrosschainMint { + #[allow(missing_docs)] + pub to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub amount: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub sender: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for CrosschainMint { + type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "CrosschainMint(address,uint256,address)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 222u8, 34u8, 186u8, 255u8, 3u8, 142u8, 58u8, 62u8, 8u8, 64u8, 124u8, + 189u8, 246u8, 23u8, 222u8, 237u8, 116u8, 232u8, 105u8, 167u8, 186u8, + 81u8, 125u8, 246u8, 17u8, 227u8, 49u8, 49u8, 198u8, 230u8, 234u8, 4u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + to: topics.1, + amount: data.0, + sender: topics.2, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.amount), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.to.clone(), self.sender.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.to, + ); + out[2usize] = ::encode_topic( + &self.sender, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for CrosschainMint { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&CrosschainMint> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &CrosschainMint) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `Transfer(address,address,uint256)` and selector `0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef`. +```solidity +event Transfer(address indexed from, address indexed to, uint256 amount); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct Transfer { + #[allow(missing_docs)] + pub from: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub amount: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for Transfer { + type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "Transfer(address,address,uint256)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 221u8, 242u8, 82u8, 173u8, 27u8, 226u8, 200u8, 155u8, 105u8, 194u8, + 176u8, 104u8, 252u8, 55u8, 141u8, 170u8, 149u8, 43u8, 167u8, 241u8, 99u8, + 196u8, 161u8, 22u8, 40u8, 245u8, 90u8, 77u8, 245u8, 35u8, 179u8, 239u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + from: topics.1, + to: topics.2, + amount: data.0, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.amount), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.from.clone(), self.to.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.from, + ); + out[2usize] = ::encode_topic( + &self.to, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for Transfer { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&Transfer> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &Transfer) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `DOMAIN_SEPARATOR()` and selector `0x3644e515`. +```solidity +function DOMAIN_SEPARATOR() external view returns (bytes32 result); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct DOMAIN_SEPARATORCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`DOMAIN_SEPARATOR()`](DOMAIN_SEPARATORCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct DOMAIN_SEPARATORReturn { + #[allow(missing_docs)] + pub result: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: DOMAIN_SEPARATORCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for DOMAIN_SEPARATORCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: DOMAIN_SEPARATORReturn) -> Self { + (value.result,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for DOMAIN_SEPARATORReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { result: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for DOMAIN_SEPARATORCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::FixedBytes<32>; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "DOMAIN_SEPARATOR()"; + const SELECTOR: [u8; 4] = [54u8, 68u8, 229u8, 21u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: DOMAIN_SEPARATORReturn = r.into(); + r.result + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: DOMAIN_SEPARATORReturn = r.into(); + r.result + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `allowance(address,address)` and selector `0xdd62ed3e`. +```solidity +function allowance(address owner, address spender) external view returns (uint256 result); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct allowanceCall { + #[allow(missing_docs)] + pub owner: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub spender: alloy::sol_types::private::Address, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`allowance(address,address)`](allowanceCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct allowanceReturn { + #[allow(missing_docs)] + pub result: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: allowanceCall) -> Self { + (value.owner, value.spender) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for allowanceCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + owner: tuple.0, + spender: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: allowanceReturn) -> Self { + (value.result,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for allowanceReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { result: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for allowanceCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "allowance(address,address)"; + const SELECTOR: [u8; 4] = [221u8, 98u8, 237u8, 62u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.owner, + ), + ::tokenize( + &self.spender, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: allowanceReturn = r.into(); + r.result + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: allowanceReturn = r.into(); + r.result + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `approve(address,uint256)` and selector `0x095ea7b3`. +```solidity +function approve(address spender, uint256 amount) external returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct approveCall { + #[allow(missing_docs)] + pub spender: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub amount: alloy::sol_types::private::primitives::aliases::U256, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`approve(address,uint256)`](approveCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct approveReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: approveCall) -> Self { + (value.spender, value.amount) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for approveCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + spender: tuple.0, + amount: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: approveReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for approveReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for approveCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "approve(address,uint256)"; + const SELECTOR: [u8; 4] = [9u8, 94u8, 167u8, 179u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.spender, + ), + as alloy_sol_types::SolType>::tokenize(&self.amount), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: approveReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: approveReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `balanceOf(address)` and selector `0x70a08231`. +```solidity +function balanceOf(address owner) external view returns (uint256 result); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct balanceOfCall { + #[allow(missing_docs)] + pub owner: alloy::sol_types::private::Address, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`balanceOf(address)`](balanceOfCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct balanceOfReturn { + #[allow(missing_docs)] + pub result: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: balanceOfCall) -> Self { + (value.owner,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for balanceOfCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { owner: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: balanceOfReturn) -> Self { + (value.result,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for balanceOfReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { result: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for balanceOfCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "balanceOf(address)"; + const SELECTOR: [u8; 4] = [112u8, 160u8, 130u8, 49u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.owner, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: balanceOfReturn = r.into(); + r.result + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: balanceOfReturn = r.into(); + r.result + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `crosschainBurn(address,uint256)` and selector `0x2b8c49e3`. +```solidity +function crosschainBurn(address _from, uint256 _amount) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct crosschainBurnCall { + #[allow(missing_docs)] + pub _from: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _amount: alloy::sol_types::private::primitives::aliases::U256, + } + ///Container type for the return parameters of the [`crosschainBurn(address,uint256)`](crosschainBurnCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct crosschainBurnReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: crosschainBurnCall) -> Self { + (value._from, value._amount) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for crosschainBurnCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _from: tuple.0, + _amount: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: crosschainBurnReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for crosschainBurnReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl crosschainBurnReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for crosschainBurnCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = crosschainBurnReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "crosschainBurn(address,uint256)"; + const SELECTOR: [u8; 4] = [43u8, 140u8, 73u8, 227u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._from, + ), + as alloy_sol_types::SolType>::tokenize(&self._amount), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + crosschainBurnReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `crosschainMint(address,uint256)` and selector `0x18bf5077`. +```solidity +function crosschainMint(address _to, uint256 _amount) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct crosschainMintCall { + #[allow(missing_docs)] + pub _to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _amount: alloy::sol_types::private::primitives::aliases::U256, + } + ///Container type for the return parameters of the [`crosschainMint(address,uint256)`](crosschainMintCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct crosschainMintReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: crosschainMintCall) -> Self { + (value._to, value._amount) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for crosschainMintCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _to: tuple.0, + _amount: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: crosschainMintReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for crosschainMintReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl crosschainMintReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for crosschainMintCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = crosschainMintReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "crosschainMint(address,uint256)"; + const SELECTOR: [u8; 4] = [24u8, 191u8, 80u8, 119u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._to, + ), + as alloy_sol_types::SolType>::tokenize(&self._amount), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + crosschainMintReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `decimals()` and selector `0x313ce567`. +```solidity +function decimals() external view returns (uint8); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct decimalsCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`decimals()`](decimalsCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct decimalsReturn { + #[allow(missing_docs)] + pub _0: u8, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: decimalsCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for decimalsCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<8>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u8,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: decimalsReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for decimalsReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for decimalsCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u8; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<8>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "decimals()"; + const SELECTOR: [u8; 4] = [49u8, 60u8, 229u8, 103u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: decimalsReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: decimalsReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `name()` and selector `0x06fdde03`. +```solidity +function name() external view returns (string memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct nameCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`name()`](nameCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct nameReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: nameCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for nameCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: nameReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for nameReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for nameCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::String; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "name()"; + const SELECTOR: [u8; 4] = [6u8, 253u8, 222u8, 3u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: nameReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: nameReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `nonces(address)` and selector `0x7ecebe00`. +```solidity +function nonces(address owner) external view returns (uint256 result); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct noncesCall { + #[allow(missing_docs)] + pub owner: alloy::sol_types::private::Address, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`nonces(address)`](noncesCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct noncesReturn { + #[allow(missing_docs)] + pub result: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: noncesCall) -> Self { + (value.owner,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for noncesCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { owner: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: noncesReturn) -> Self { + (value.result,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for noncesReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { result: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for noncesCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "nonces(address)"; + const SELECTOR: [u8; 4] = [126u8, 206u8, 190u8, 0u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.owner, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: noncesReturn = r.into(); + r.result + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: noncesReturn = r.into(); + r.result + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `permit(address,address,uint256,uint256,uint8,bytes32,bytes32)` and selector `0xd505accf`. +```solidity +function permit(address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct permitCall { + #[allow(missing_docs)] + pub owner: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub spender: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub value: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub deadline: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub v: u8, + #[allow(missing_docs)] + pub r: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub s: alloy::sol_types::private::FixedBytes<32>, + } + ///Container type for the return parameters of the [`permit(address,address,uint256,uint256,uint8,bytes32,bytes32)`](permitCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct permitReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<8>, + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::primitives::aliases::U256, + u8, + alloy::sol_types::private::FixedBytes<32>, + alloy::sol_types::private::FixedBytes<32>, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: permitCall) -> Self { + ( + value.owner, + value.spender, + value.value, + value.deadline, + value.v, + value.r, + value.s, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for permitCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + owner: tuple.0, + spender: tuple.1, + value: tuple.2, + deadline: tuple.3, + v: tuple.4, + r: tuple.5, + s: tuple.6, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: permitReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for permitReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl permitReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for permitCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<8>, + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = permitReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "permit(address,address,uint256,uint256,uint8,bytes32,bytes32)"; + const SELECTOR: [u8; 4] = [213u8, 5u8, 172u8, 207u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.owner, + ), + ::tokenize( + &self.spender, + ), + as alloy_sol_types::SolType>::tokenize(&self.value), + as alloy_sol_types::SolType>::tokenize(&self.deadline), + as alloy_sol_types::SolType>::tokenize(&self.v), + as alloy_sol_types::SolType>::tokenize(&self.r), + as alloy_sol_types::SolType>::tokenize(&self.s), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + permitReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `supportsInterface(bytes4)` and selector `0x01ffc9a7`. +```solidity +function supportsInterface(bytes4 _interfaceId) external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct supportsInterfaceCall { + #[allow(missing_docs)] + pub _interfaceId: alloy::sol_types::private::FixedBytes<4>, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`supportsInterface(bytes4)`](supportsInterfaceCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct supportsInterfaceReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<4>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<4>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: supportsInterfaceCall) -> Self { + (value._interfaceId,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for supportsInterfaceCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _interfaceId: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: supportsInterfaceReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for supportsInterfaceReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for supportsInterfaceCall { + type Parameters<'a> = (alloy::sol_types::sol_data::FixedBytes<4>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "supportsInterface(bytes4)"; + const SELECTOR: [u8; 4] = [1u8, 255u8, 201u8, 167u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._interfaceId), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: supportsInterfaceReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: supportsInterfaceReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `symbol()` and selector `0x95d89b41`. +```solidity +function symbol() external view returns (string memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct symbolCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`symbol()`](symbolCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct symbolReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: symbolCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for symbolCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: symbolReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for symbolReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for symbolCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::String; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "symbol()"; + const SELECTOR: [u8; 4] = [149u8, 216u8, 155u8, 65u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: symbolReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: symbolReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `totalSupply()` and selector `0x18160ddd`. +```solidity +function totalSupply() external view returns (uint256 result); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct totalSupplyCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`totalSupply()`](totalSupplyCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct totalSupplyReturn { + #[allow(missing_docs)] + pub result: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: totalSupplyCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for totalSupplyCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: totalSupplyReturn) -> Self { + (value.result,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for totalSupplyReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { result: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for totalSupplyCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "totalSupply()"; + const SELECTOR: [u8; 4] = [24u8, 22u8, 13u8, 221u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: totalSupplyReturn = r.into(); + r.result + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: totalSupplyReturn = r.into(); + r.result + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `transfer(address,uint256)` and selector `0xa9059cbb`. +```solidity +function transfer(address to, uint256 amount) external returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct transferCall { + #[allow(missing_docs)] + pub to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub amount: alloy::sol_types::private::primitives::aliases::U256, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`transfer(address,uint256)`](transferCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct transferReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: transferCall) -> Self { + (value.to, value.amount) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for transferCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + to: tuple.0, + amount: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: transferReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for transferReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for transferCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "transfer(address,uint256)"; + const SELECTOR: [u8; 4] = [169u8, 5u8, 156u8, 187u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.to, + ), + as alloy_sol_types::SolType>::tokenize(&self.amount), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: transferReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: transferReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd`. +```solidity +function transferFrom(address from, address to, uint256 amount) external returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct transferFromCall { + #[allow(missing_docs)] + pub from: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub amount: alloy::sol_types::private::primitives::aliases::U256, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`transferFrom(address,address,uint256)`](transferFromCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct transferFromReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: transferFromCall) -> Self { + (value.from, value.to, value.amount) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for transferFromCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + from: tuple.0, + to: tuple.1, + amount: tuple.2, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: transferFromReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for transferFromReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for transferFromCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "transferFrom(address,address,uint256)"; + const SELECTOR: [u8; 4] = [35u8, 184u8, 114u8, 221u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.from, + ), + ::tokenize( + &self.to, + ), + as alloy_sol_types::SolType>::tokenize(&self.amount), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: transferFromReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: transferFromReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `version()` and selector `0x54fd4d50`. +```solidity +function version() external view returns (string memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`version()`](versionCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for versionCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::String; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "version()"; + const SELECTOR: [u8; 4] = [84u8, 253u8, 77u8, 80u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + } + }; + ///Container for all the [`SuperchainERC20`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum SuperchainERC20Calls { + #[allow(missing_docs)] + DOMAIN_SEPARATOR(DOMAIN_SEPARATORCall), + #[allow(missing_docs)] + allowance(allowanceCall), + #[allow(missing_docs)] + approve(approveCall), + #[allow(missing_docs)] + balanceOf(balanceOfCall), + #[allow(missing_docs)] + crosschainBurn(crosschainBurnCall), + #[allow(missing_docs)] + crosschainMint(crosschainMintCall), + #[allow(missing_docs)] + decimals(decimalsCall), + #[allow(missing_docs)] + name(nameCall), + #[allow(missing_docs)] + nonces(noncesCall), + #[allow(missing_docs)] + permit(permitCall), + #[allow(missing_docs)] + supportsInterface(supportsInterfaceCall), + #[allow(missing_docs)] + symbol(symbolCall), + #[allow(missing_docs)] + totalSupply(totalSupplyCall), + #[allow(missing_docs)] + transfer(transferCall), + #[allow(missing_docs)] + transferFrom(transferFromCall), + #[allow(missing_docs)] + version(versionCall), + } + impl SuperchainERC20Calls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [1u8, 255u8, 201u8, 167u8], + [6u8, 253u8, 222u8, 3u8], + [9u8, 94u8, 167u8, 179u8], + [24u8, 22u8, 13u8, 221u8], + [24u8, 191u8, 80u8, 119u8], + [35u8, 184u8, 114u8, 221u8], + [43u8, 140u8, 73u8, 227u8], + [49u8, 60u8, 229u8, 103u8], + [54u8, 68u8, 229u8, 21u8], + [84u8, 253u8, 77u8, 80u8], + [112u8, 160u8, 130u8, 49u8], + [126u8, 206u8, 190u8, 0u8], + [149u8, 216u8, 155u8, 65u8], + [169u8, 5u8, 156u8, 187u8], + [213u8, 5u8, 172u8, 207u8], + [221u8, 98u8, 237u8, 62u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(supportsInterface), + ::core::stringify!(name), + ::core::stringify!(approve), + ::core::stringify!(totalSupply), + ::core::stringify!(crosschainMint), + ::core::stringify!(transferFrom), + ::core::stringify!(crosschainBurn), + ::core::stringify!(decimals), + ::core::stringify!(DOMAIN_SEPARATOR), + ::core::stringify!(version), + ::core::stringify!(balanceOf), + ::core::stringify!(nonces), + ::core::stringify!(symbol), + ::core::stringify!(transfer), + ::core::stringify!(permit), + ::core::stringify!(allowance), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for SuperchainERC20Calls { + const NAME: &'static str = "SuperchainERC20Calls"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 16usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::DOMAIN_SEPARATOR(_) => { + ::SELECTOR + } + Self::allowance(_) => { + ::SELECTOR + } + Self::approve(_) => ::SELECTOR, + Self::balanceOf(_) => { + ::SELECTOR + } + Self::crosschainBurn(_) => { + ::SELECTOR + } + Self::crosschainMint(_) => { + ::SELECTOR + } + Self::decimals(_) => ::SELECTOR, + Self::name(_) => ::SELECTOR, + Self::nonces(_) => ::SELECTOR, + Self::permit(_) => ::SELECTOR, + Self::supportsInterface(_) => { + ::SELECTOR + } + Self::symbol(_) => ::SELECTOR, + Self::totalSupply(_) => { + ::SELECTOR + } + Self::transfer(_) => ::SELECTOR, + Self::transferFrom(_) => { + ::SELECTOR + } + Self::version(_) => ::SELECTOR, + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn supportsInterface( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperchainERC20Calls::supportsInterface) + } + supportsInterface + }, + { + fn name( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(SuperchainERC20Calls::name) + } + name + }, + { + fn approve( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(SuperchainERC20Calls::approve) + } + approve + }, + { + fn totalSupply( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperchainERC20Calls::totalSupply) + } + totalSupply + }, + { + fn crosschainMint( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperchainERC20Calls::crosschainMint) + } + crosschainMint + }, + { + fn transferFrom( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperchainERC20Calls::transferFrom) + } + transferFrom + }, + { + fn crosschainBurn( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperchainERC20Calls::crosschainBurn) + } + crosschainBurn + }, + { + fn decimals( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(SuperchainERC20Calls::decimals) + } + decimals + }, + { + fn DOMAIN_SEPARATOR( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperchainERC20Calls::DOMAIN_SEPARATOR) + } + DOMAIN_SEPARATOR + }, + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(SuperchainERC20Calls::version) + } + version + }, + { + fn balanceOf( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(SuperchainERC20Calls::balanceOf) + } + balanceOf + }, + { + fn nonces( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(SuperchainERC20Calls::nonces) + } + nonces + }, + { + fn symbol( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(SuperchainERC20Calls::symbol) + } + symbol + }, + { + fn transfer( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(SuperchainERC20Calls::transfer) + } + transfer + }, + { + fn permit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(SuperchainERC20Calls::permit) + } + permit + }, + { + fn allowance( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(SuperchainERC20Calls::allowance) + } + allowance + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn supportsInterface( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperchainERC20Calls::supportsInterface) + } + supportsInterface + }, + { + fn name( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperchainERC20Calls::name) + } + name + }, + { + fn approve( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperchainERC20Calls::approve) + } + approve + }, + { + fn totalSupply( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperchainERC20Calls::totalSupply) + } + totalSupply + }, + { + fn crosschainMint( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperchainERC20Calls::crosschainMint) + } + crosschainMint + }, + { + fn transferFrom( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperchainERC20Calls::transferFrom) + } + transferFrom + }, + { + fn crosschainBurn( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperchainERC20Calls::crosschainBurn) + } + crosschainBurn + }, + { + fn decimals( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperchainERC20Calls::decimals) + } + decimals + }, + { + fn DOMAIN_SEPARATOR( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperchainERC20Calls::DOMAIN_SEPARATOR) + } + DOMAIN_SEPARATOR + }, + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperchainERC20Calls::version) + } + version + }, + { + fn balanceOf( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperchainERC20Calls::balanceOf) + } + balanceOf + }, + { + fn nonces( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperchainERC20Calls::nonces) + } + nonces + }, + { + fn symbol( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperchainERC20Calls::symbol) + } + symbol + }, + { + fn transfer( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperchainERC20Calls::transfer) + } + transfer + }, + { + fn permit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperchainERC20Calls::permit) + } + permit + }, + { + fn allowance( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperchainERC20Calls::allowance) + } + allowance + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::DOMAIN_SEPARATOR(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::allowance(inner) => { + ::abi_encoded_size(inner) + } + Self::approve(inner) => { + ::abi_encoded_size(inner) + } + Self::balanceOf(inner) => { + ::abi_encoded_size(inner) + } + Self::crosschainBurn(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::crosschainMint(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::decimals(inner) => { + ::abi_encoded_size(inner) + } + Self::name(inner) => { + ::abi_encoded_size(inner) + } + Self::nonces(inner) => { + ::abi_encoded_size(inner) + } + Self::permit(inner) => { + ::abi_encoded_size(inner) + } + Self::supportsInterface(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::symbol(inner) => { + ::abi_encoded_size(inner) + } + Self::totalSupply(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::transfer(inner) => { + ::abi_encoded_size(inner) + } + Self::transferFrom(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::version(inner) => { + ::abi_encoded_size(inner) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::DOMAIN_SEPARATOR(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::allowance(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::approve(inner) => { + ::abi_encode_raw(inner, out) + } + Self::balanceOf(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::crosschainBurn(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::crosschainMint(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::decimals(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::name(inner) => { + ::abi_encode_raw(inner, out) + } + Self::nonces(inner) => { + ::abi_encode_raw(inner, out) + } + Self::permit(inner) => { + ::abi_encode_raw(inner, out) + } + Self::supportsInterface(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::symbol(inner) => { + ::abi_encode_raw(inner, out) + } + Self::totalSupply(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::transfer(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::transferFrom(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::version(inner) => { + ::abi_encode_raw(inner, out) + } + } + } + } + ///Container for all the [`SuperchainERC20`](self) custom errors. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum SuperchainERC20Errors { + #[allow(missing_docs)] + AllowanceOverflow(AllowanceOverflow), + #[allow(missing_docs)] + AllowanceUnderflow(AllowanceUnderflow), + #[allow(missing_docs)] + InsufficientAllowance(InsufficientAllowance), + #[allow(missing_docs)] + InsufficientBalance(InsufficientBalance), + #[allow(missing_docs)] + InvalidPermit(InvalidPermit), + #[allow(missing_docs)] + Permit2AllowanceIsFixedAtInfinity(Permit2AllowanceIsFixedAtInfinity), + #[allow(missing_docs)] + PermitExpired(PermitExpired), + #[allow(missing_docs)] + TotalSupplyOverflow(TotalSupplyOverflow), + #[allow(missing_docs)] + Unauthorized(Unauthorized), + } + impl SuperchainERC20Errors { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [19u8, 190u8, 37u8, 43u8], + [26u8, 21u8, 163u8, 204u8], + [63u8, 104u8, 83u8, 154u8], + [130u8, 180u8, 41u8, 0u8], + [131u8, 1u8, 171u8, 56u8], + [221u8, 175u8, 186u8, 239u8], + [229u8, 207u8, 233u8, 87u8], + [244u8, 214u8, 120u8, 184u8], + [249u8, 6u8, 112u8, 102u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(InsufficientAllowance), + ::core::stringify!(PermitExpired), + ::core::stringify!(Permit2AllowanceIsFixedAtInfinity), + ::core::stringify!(Unauthorized), + ::core::stringify!(AllowanceUnderflow), + ::core::stringify!(InvalidPermit), + ::core::stringify!(TotalSupplyOverflow), + ::core::stringify!(InsufficientBalance), + ::core::stringify!(AllowanceOverflow), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for SuperchainERC20Errors { + const NAME: &'static str = "SuperchainERC20Errors"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 9usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::AllowanceOverflow(_) => { + ::SELECTOR + } + Self::AllowanceUnderflow(_) => { + ::SELECTOR + } + Self::InsufficientAllowance(_) => { + ::SELECTOR + } + Self::InsufficientBalance(_) => { + ::SELECTOR + } + Self::InvalidPermit(_) => { + ::SELECTOR + } + Self::Permit2AllowanceIsFixedAtInfinity(_) => { + ::SELECTOR + } + Self::PermitExpired(_) => { + ::SELECTOR + } + Self::TotalSupplyOverflow(_) => { + ::SELECTOR + } + Self::Unauthorized(_) => { + ::SELECTOR + } + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn InsufficientAllowance( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperchainERC20Errors::InsufficientAllowance) + } + InsufficientAllowance + }, + { + fn PermitExpired( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperchainERC20Errors::PermitExpired) + } + PermitExpired + }, + { + fn Permit2AllowanceIsFixedAtInfinity( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + SuperchainERC20Errors::Permit2AllowanceIsFixedAtInfinity, + ) + } + Permit2AllowanceIsFixedAtInfinity + }, + { + fn Unauthorized( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(SuperchainERC20Errors::Unauthorized) + } + Unauthorized + }, + { + fn AllowanceUnderflow( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperchainERC20Errors::AllowanceUnderflow) + } + AllowanceUnderflow + }, + { + fn InvalidPermit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperchainERC20Errors::InvalidPermit) + } + InvalidPermit + }, + { + fn TotalSupplyOverflow( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperchainERC20Errors::TotalSupplyOverflow) + } + TotalSupplyOverflow + }, + { + fn InsufficientBalance( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperchainERC20Errors::InsufficientBalance) + } + InsufficientBalance + }, + { + fn AllowanceOverflow( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperchainERC20Errors::AllowanceOverflow) + } + AllowanceOverflow + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn InsufficientAllowance( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperchainERC20Errors::InsufficientAllowance) + } + InsufficientAllowance + }, + { + fn PermitExpired( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperchainERC20Errors::PermitExpired) + } + PermitExpired + }, + { + fn Permit2AllowanceIsFixedAtInfinity( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + SuperchainERC20Errors::Permit2AllowanceIsFixedAtInfinity, + ) + } + Permit2AllowanceIsFixedAtInfinity + }, + { + fn Unauthorized( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperchainERC20Errors::Unauthorized) + } + Unauthorized + }, + { + fn AllowanceUnderflow( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperchainERC20Errors::AllowanceUnderflow) + } + AllowanceUnderflow + }, + { + fn InvalidPermit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperchainERC20Errors::InvalidPermit) + } + InvalidPermit + }, + { + fn TotalSupplyOverflow( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperchainERC20Errors::TotalSupplyOverflow) + } + TotalSupplyOverflow + }, + { + fn InsufficientBalance( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperchainERC20Errors::InsufficientBalance) + } + InsufficientBalance + }, + { + fn AllowanceOverflow( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperchainERC20Errors::AllowanceOverflow) + } + AllowanceOverflow + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::AllowanceOverflow(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::AllowanceUnderflow(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::InsufficientAllowance(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::InsufficientBalance(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::InvalidPermit(inner) => { + ::abi_encoded_size(inner) + } + Self::Permit2AllowanceIsFixedAtInfinity(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::PermitExpired(inner) => { + ::abi_encoded_size(inner) + } + Self::TotalSupplyOverflow(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::Unauthorized(inner) => { + ::abi_encoded_size(inner) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::AllowanceOverflow(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::AllowanceUnderflow(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InsufficientAllowance(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InsufficientBalance(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidPermit(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::Permit2AllowanceIsFixedAtInfinity(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::PermitExpired(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::TotalSupplyOverflow(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::Unauthorized(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + } + } + } + ///Container for all the [`SuperchainERC20`](self) events. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum SuperchainERC20Events { + #[allow(missing_docs)] + Approval(Approval), + #[allow(missing_docs)] + CrosschainBurn(CrosschainBurn), + #[allow(missing_docs)] + CrosschainMint(CrosschainMint), + #[allow(missing_docs)] + Transfer(Transfer), + } + impl SuperchainERC20Events { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 32usize]] = &[ + [ + 140u8, 91u8, 225u8, 229u8, 235u8, 236u8, 125u8, 91u8, 209u8, 79u8, 113u8, + 66u8, 125u8, 30u8, 132u8, 243u8, 221u8, 3u8, 20u8, 192u8, 247u8, 178u8, + 41u8, 30u8, 91u8, 32u8, 10u8, 200u8, 199u8, 195u8, 185u8, 37u8, + ], + [ + 185u8, 7u8, 149u8, 166u8, 102u8, 80u8, 21u8, 89u8, 131u8, 226u8, 66u8, + 202u8, 195u8, 225u8, 172u8, 26u8, 77u8, 194u8, 111u8, 142u8, 210u8, + 152u8, 127u8, 60u8, 228u8, 22u8, 163u8, 78u8, 0u8, 17u8, 31u8, 212u8, + ], + [ + 221u8, 242u8, 82u8, 173u8, 27u8, 226u8, 200u8, 155u8, 105u8, 194u8, + 176u8, 104u8, 252u8, 55u8, 141u8, 170u8, 149u8, 43u8, 167u8, 241u8, 99u8, + 196u8, 161u8, 22u8, 40u8, 245u8, 90u8, 77u8, 245u8, 35u8, 179u8, 239u8, + ], + [ + 222u8, 34u8, 186u8, 255u8, 3u8, 142u8, 58u8, 62u8, 8u8, 64u8, 124u8, + 189u8, 246u8, 23u8, 222u8, 237u8, 116u8, 232u8, 105u8, 167u8, 186u8, + 81u8, 125u8, 246u8, 17u8, 227u8, 49u8, 49u8, 198u8, 230u8, 234u8, 4u8, + ], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(Approval), + ::core::stringify!(CrosschainBurn), + ::core::stringify!(Transfer), + ::core::stringify!(CrosschainMint), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolEventInterface for SuperchainERC20Events { + const NAME: &'static str = "SuperchainERC20Events"; + const COUNT: usize = 4usize; + fn decode_raw_log( + topics: &[alloy_sol_types::Word], + data: &[u8], + ) -> alloy_sol_types::Result { + match topics.first().copied() { + Some(::SIGNATURE_HASH) => { + ::decode_raw_log(topics, data) + .map(Self::Approval) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::CrosschainBurn) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::CrosschainMint) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log(topics, data) + .map(Self::Transfer) + } + _ => { + alloy_sol_types::private::Err(alloy_sol_types::Error::InvalidLog { + name: ::NAME, + log: alloy_sol_types::private::Box::new( + alloy_sol_types::private::LogData::new_unchecked( + topics.to_vec(), + data.to_vec().into(), + ), + ), + }) + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for SuperchainERC20Events { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + match self { + Self::Approval(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::CrosschainBurn(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::CrosschainMint(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::Transfer(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + } + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + match self { + Self::Approval(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::CrosschainBurn(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::CrosschainMint(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::Transfer(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`SuperchainERC20`](self) contract instance. + +See the [wrapper's documentation](`SuperchainERC20Instance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> SuperchainERC20Instance { + SuperchainERC20Instance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + SuperchainERC20Instance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + SuperchainERC20Instance::::deploy_builder(__provider) + } + /**A [`SuperchainERC20`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`SuperchainERC20`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct SuperchainERC20Instance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for SuperchainERC20Instance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("SuperchainERC20Instance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > SuperchainERC20Instance { + /**Creates a new wrapper around an on-chain [`SuperchainERC20`](self) contract instance. + +See the [wrapper's documentation](`SuperchainERC20Instance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl SuperchainERC20Instance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> SuperchainERC20Instance { + SuperchainERC20Instance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > SuperchainERC20Instance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`DOMAIN_SEPARATOR`] function. + pub fn DOMAIN_SEPARATOR( + &self, + ) -> alloy_contract::SolCallBuilder<&P, DOMAIN_SEPARATORCall, N> { + self.call_builder(&DOMAIN_SEPARATORCall) + } + ///Creates a new call builder for the [`allowance`] function. + pub fn allowance( + &self, + owner: alloy::sol_types::private::Address, + spender: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, allowanceCall, N> { + self.call_builder(&allowanceCall { owner, spender }) + } + ///Creates a new call builder for the [`approve`] function. + pub fn approve( + &self, + spender: alloy::sol_types::private::Address, + amount: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, approveCall, N> { + self.call_builder(&approveCall { spender, amount }) + } + ///Creates a new call builder for the [`balanceOf`] function. + pub fn balanceOf( + &self, + owner: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, balanceOfCall, N> { + self.call_builder(&balanceOfCall { owner }) + } + ///Creates a new call builder for the [`crosschainBurn`] function. + pub fn crosschainBurn( + &self, + _from: alloy::sol_types::private::Address, + _amount: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, crosschainBurnCall, N> { + self.call_builder( + &crosschainBurnCall { + _from, + _amount, + }, + ) + } + ///Creates a new call builder for the [`crosschainMint`] function. + pub fn crosschainMint( + &self, + _to: alloy::sol_types::private::Address, + _amount: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, crosschainMintCall, N> { + self.call_builder(&crosschainMintCall { _to, _amount }) + } + ///Creates a new call builder for the [`decimals`] function. + pub fn decimals(&self) -> alloy_contract::SolCallBuilder<&P, decimalsCall, N> { + self.call_builder(&decimalsCall) + } + ///Creates a new call builder for the [`name`] function. + pub fn name(&self) -> alloy_contract::SolCallBuilder<&P, nameCall, N> { + self.call_builder(&nameCall) + } + ///Creates a new call builder for the [`nonces`] function. + pub fn nonces( + &self, + owner: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, noncesCall, N> { + self.call_builder(&noncesCall { owner }) + } + ///Creates a new call builder for the [`permit`] function. + pub fn permit( + &self, + owner: alloy::sol_types::private::Address, + spender: alloy::sol_types::private::Address, + value: alloy::sol_types::private::primitives::aliases::U256, + deadline: alloy::sol_types::private::primitives::aliases::U256, + v: u8, + r: alloy::sol_types::private::FixedBytes<32>, + s: alloy::sol_types::private::FixedBytes<32>, + ) -> alloy_contract::SolCallBuilder<&P, permitCall, N> { + self.call_builder( + &permitCall { + owner, + spender, + value, + deadline, + v, + r, + s, + }, + ) + } + ///Creates a new call builder for the [`supportsInterface`] function. + pub fn supportsInterface( + &self, + _interfaceId: alloy::sol_types::private::FixedBytes<4>, + ) -> alloy_contract::SolCallBuilder<&P, supportsInterfaceCall, N> { + self.call_builder( + &supportsInterfaceCall { + _interfaceId, + }, + ) + } + ///Creates a new call builder for the [`symbol`] function. + pub fn symbol(&self) -> alloy_contract::SolCallBuilder<&P, symbolCall, N> { + self.call_builder(&symbolCall) + } + ///Creates a new call builder for the [`totalSupply`] function. + pub fn totalSupply( + &self, + ) -> alloy_contract::SolCallBuilder<&P, totalSupplyCall, N> { + self.call_builder(&totalSupplyCall) + } + ///Creates a new call builder for the [`transfer`] function. + pub fn transfer( + &self, + to: alloy::sol_types::private::Address, + amount: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, transferCall, N> { + self.call_builder(&transferCall { to, amount }) + } + ///Creates a new call builder for the [`transferFrom`] function. + pub fn transferFrom( + &self, + from: alloy::sol_types::private::Address, + to: alloy::sol_types::private::Address, + amount: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, transferFromCall, N> { + self.call_builder( + &transferFromCall { + from, + to, + amount, + }, + ) + } + ///Creates a new call builder for the [`version`] function. + pub fn version(&self) -> alloy_contract::SolCallBuilder<&P, versionCall, N> { + self.call_builder(&versionCall) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > SuperchainERC20Instance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + ///Creates a new event filter for the [`Approval`] event. + pub fn Approval_filter(&self) -> alloy_contract::Event<&P, Approval, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`CrosschainBurn`] event. + pub fn CrosschainBurn_filter( + &self, + ) -> alloy_contract::Event<&P, CrosschainBurn, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`CrosschainMint`] event. + pub fn CrosschainMint_filter( + &self, + ) -> alloy_contract::Event<&P, CrosschainMint, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`Transfer`] event. + pub fn Transfer_filter(&self) -> alloy_contract::Event<&P, Transfer, N> { + self.event_filter::() + } + } +} diff --git a/bindings/rust/src/superchain_eth_bridge.rs b/bindings/rust/src/superchain_eth_bridge.rs new file mode 100644 index 000000000..db449856f --- /dev/null +++ b/bindings/rust/src/superchain_eth_bridge.rs @@ -0,0 +1,1921 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface SuperchainETHBridge { + error InvalidCrossDomainSender(); + error Unauthorized(); + error ZeroAddress(); + + event RelayETH(address indexed from, address indexed to, uint256 amount, uint256 source); + event SendETH(address indexed from, address indexed to, uint256 amount, uint256 destination); + + function relayETH(address _from, address _to, uint256 _amount) external; + function sendETH(address _to, uint256 _chainId) external payable returns (bytes32 msgHash_); + function version() external view returns (string memory); +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "function", + "name": "relayETH", + "inputs": [ + { + "name": "_from", + "type": "address", + "internalType": "address" + }, + { + "name": "_to", + "type": "address", + "internalType": "address" + }, + { + "name": "_amount", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "sendETH", + "inputs": [ + { + "name": "_to", + "type": "address", + "internalType": "address" + }, + { + "name": "_chainId", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "msgHash_", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "version", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "view" + }, + { + "type": "event", + "name": "RelayETH", + "inputs": [ + { + "name": "from", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "to", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + }, + { + "name": "source", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "SendETH", + "inputs": [ + { + "name": "from", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "to", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + }, + { + "name": "destination", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "error", + "name": "InvalidCrossDomainSender", + "inputs": [] + }, + { + "type": "error", + "name": "Unauthorized", + "inputs": [] + }, + { + "type": "error", + "name": "ZeroAddress", + "inputs": [] + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod SuperchainETHBridge { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x608060405234801561001057600080fd5b5061078b806100206000396000f3fe6080604052600436106100345760003560e01c80634f0edcc91461003957806354fd4d501461005b57806364a197f3146100ba575b600080fd5b34801561004557600080fd5b506100596100543660046105ae565b6100db565b005b34801561006757600080fd5b506100a46040518060400160405280600581526020017f312e302e3100000000000000000000000000000000000000000000000000000081525081565b6040516100b1919061065a565b60405180910390f35b6100cd6100c8366004610674565b610340565b6040519081526020016100b1565b3373420000000000000000000000000000000000002314610128576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008073420000000000000000000000000000000000002373ffffffffffffffffffffffffffffffffffffffff16637936cbee6040518163ffffffff1660e01b81526004016040805180830381865afa158015610189573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101ad91906106a0565b909250905073ffffffffffffffffffffffffffffffffffffffff82163014610201576040517fbc22e2aa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517fa0712d68000000000000000000000000000000000000000000000000000000008152600481018490527342000000000000000000000000000000000000259063a0712d6890602401600060405180830381600087803b15801561026757600080fd5b505af115801561027b573d6000803e3d6000fd5b50505050828460405161028d9061057d565b73ffffffffffffffffffffffffffffffffffffffff90911681526020016040518091039082f09050801580156102c7573d6000803e3d6000fd5b50508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fe5479bb8ebad3b9ac81f55f424a6289cf0a54ff2641708f41dcb2b26f264d3598584604051610331929190918252602082015260400190565b60405180910390a35050505050565b600073ffffffffffffffffffffffffffffffffffffffff831661038f576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73420000000000000000000000000000000000002573ffffffffffffffffffffffffffffffffffffffff166344df8e70346040518263ffffffff1660e01b81526004016000604051808303818588803b1580156103eb57600080fd5b505af11580156103ff573d6000803e3d6000fd5b50506040805133602482015273ffffffffffffffffffffffffffffffffffffffff881660448201523460648083019190915282518083039091018152608490910182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f4f0edcc90000000000000000000000000000000000000000000000000000000017905290517f7056f41f0000000000000000000000000000000000000000000000000000000081527342000000000000000000000000000000000000239450637056f41f93506104de9250869130916004016106ce565b6020604051808303816000875af11580156104fd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610521919061070c565b604080513481526020810185905291925073ffffffffffffffffffffffffffffffffffffffff85169133917fed98a2ff78833375c368471a747cdf0633024dde3f870feb08a934ac5be83402910160405180910390a392915050565b60598061072683390190565b73ffffffffffffffffffffffffffffffffffffffff811681146105ab57600080fd5b50565b6000806000606084860312156105c357600080fd5b83356105ce81610589565b925060208401356105de81610589565b929592945050506040919091013590565b6000815180845260005b81811015610615576020818501810151868301820152016105f9565b81811115610627576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60208152600061066d60208301846105ef565b9392505050565b6000806040838503121561068757600080fd5b823561069281610589565b946020939093013593505050565b600080604083850312156106b357600080fd5b82516106be81610589565b6020939093015192949293505050565b83815273ffffffffffffffffffffffffffffffffffffffff8316602082015260606040820152600061070360608301846105ef565b95945050505050565b60006020828403121561071e57600080fd5b505191905056fe608060405260405160593803806059833981016040819052601e91602a565b806001600160a01b0316ff5b600060208284031215603b57600080fd5b81516001600160a01b0381168114605157600080fd5b939250505056fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[Pa\x07\x8B\x80a\0 `\09`\0\xF3\xFE`\x80`@R`\x046\x10a\x004W`\x005`\xE0\x1C\x80cO\x0E\xDC\xC9\x14a\09W\x80cT\xFDMP\x14a\0[W\x80cd\xA1\x97\xF3\x14a\0\xBAW[`\0\x80\xFD[4\x80\x15a\0EW`\0\x80\xFD[Pa\0Ya\0T6`\x04a\x05\xAEV[a\0\xDBV[\0[4\x80\x15a\0gW`\0\x80\xFD[Pa\0\xA4`@Q\x80`@\x01`@R\x80`\x05\x81R` \x01\x7F1.0.1\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\x81RP\x81V[`@Qa\0\xB1\x91\x90a\x06ZV[`@Q\x80\x91\x03\x90\xF3[a\0\xCDa\0\xC86`\x04a\x06tV[a\x03@V[`@Q\x90\x81R` \x01a\0\xB1V[3sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0#\x14a\x01(W`@Q\x7F\x82\xB4)\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0\x80sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0#s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16cy6\xCB\xEE`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01`@\x80Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x01\x89W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x01\xAD\x91\x90a\x06\xA0V[\x90\x92P\x90Ps\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x160\x14a\x02\x01W`@Q\x7F\xBC\"\xE2\xAA\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\x01`@Q\x80\x91\x03\x90\xFD[`@Q\x7F\xA0q-h\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\x81\x01\x84\x90RsB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0%\x90c\xA0q-h\x90`$\x01`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a\x02gW`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x02{W=`\0\x80>=`\0\xFD[PPPP\x82\x84`@Qa\x02\x8D\x90a\x05}V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01`@Q\x80\x91\x03\x90\x82\xF0\x90P\x80\x15\x80\x15a\x02\xC7W=`\0\x80>=`\0\xFD[PP\x83s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x85s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xE5G\x9B\xB8\xEB\xAD;\x9A\xC8\x1FU\xF4$\xA6(\x9C\xF0\xA5O\xF2d\x17\x08\xF4\x1D\xCB+&\xF2d\xD3Y\x85\x84`@Qa\x031\x92\x91\x90\x91\x82R` \x82\x01R`@\x01\x90V[`@Q\x80\x91\x03\x90\xA3PPPPPV[`\0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x16a\x03\x8FW`@Q\x7F\xD9.#=\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\x01`@Q\x80\x91\x03\x90\xFD[sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0%s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16cD\xDF\x8Ep4`@Q\x82c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01`\0`@Q\x80\x83\x03\x81\x85\x88\x80;\x15\x80\x15a\x03\xEBW`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x03\xFFW=`\0\x80>=`\0\xFD[PP`@\x80Q3`$\x82\x01Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x88\x16`D\x82\x01R4`d\x80\x83\x01\x91\x90\x91R\x82Q\x80\x83\x03\x90\x91\x01\x81R`\x84\x90\x91\x01\x82R` \x81\x01\x80Q{\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7FO\x0E\xDC\xC9\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\x17\x90R\x90Q\x7FpV\xF4\x1F\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\x81RsB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0#\x94PcpV\xF4\x1F\x93Pa\x04\xDE\x92P\x86\x910\x91`\x04\x01a\x06\xCEV[` `@Q\x80\x83\x03\x81`\0\x87Z\xF1\x15\x80\x15a\x04\xFDW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x05!\x91\x90a\x07\x0CV[`@\x80Q4\x81R` \x81\x01\x85\x90R\x91\x92Ps\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x85\x16\x913\x91\x7F\xED\x98\xA2\xFFx\x833u\xC3hG\x1At|\xDF\x063\x02M\xDE?\x87\x0F\xEB\x08\xA94\xAC[\xE84\x02\x91\x01`@Q\x80\x91\x03\x90\xA3\x92\x91PPV[`Y\x80a\x07&\x839\x01\x90V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x05\xABW`\0\x80\xFD[PV[`\0\x80`\0``\x84\x86\x03\x12\x15a\x05\xC3W`\0\x80\xFD[\x835a\x05\xCE\x81a\x05\x89V[\x92P` \x84\x015a\x05\xDE\x81a\x05\x89V[\x92\x95\x92\x94PPP`@\x91\x90\x91\x015\x90V[`\0\x81Q\x80\x84R`\0[\x81\x81\x10\x15a\x06\x15W` \x81\x85\x01\x81\x01Q\x86\x83\x01\x82\x01R\x01a\x05\xF9V[\x81\x81\x11\x15a\x06'W`\0` \x83\x87\x01\x01R[P`\x1F\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x92\x90\x92\x01` \x01\x92\x91PPV[` \x81R`\0a\x06m` \x83\x01\x84a\x05\xEFV[\x93\x92PPPV[`\0\x80`@\x83\x85\x03\x12\x15a\x06\x87W`\0\x80\xFD[\x825a\x06\x92\x81a\x05\x89V[\x94` \x93\x90\x93\x015\x93PPPV[`\0\x80`@\x83\x85\x03\x12\x15a\x06\xB3W`\0\x80\xFD[\x82Qa\x06\xBE\x81a\x05\x89V[` \x93\x90\x93\x01Q\x92\x94\x92\x93PPPV[\x83\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x16` \x82\x01R```@\x82\x01R`\0a\x07\x03``\x83\x01\x84a\x05\xEFV[\x95\x94PPPPPV[`\0` \x82\x84\x03\x12\x15a\x07\x1EW`\0\x80\xFD[PQ\x91\x90PV\xFE`\x80`@R`@Q`Y8\x03\x80`Y\x839\x81\x01`@\x81\x90R`\x1E\x91`*V[\x80`\x01`\x01`\xA0\x1B\x03\x16\xFF[`\0` \x82\x84\x03\x12\x15`;W`\0\x80\xFD[\x81Q`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14`QW`\0\x80\xFD[\x93\x92PPPV\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x6080604052600436106100345760003560e01c80634f0edcc91461003957806354fd4d501461005b57806364a197f3146100ba575b600080fd5b34801561004557600080fd5b506100596100543660046105ae565b6100db565b005b34801561006757600080fd5b506100a46040518060400160405280600581526020017f312e302e3100000000000000000000000000000000000000000000000000000081525081565b6040516100b1919061065a565b60405180910390f35b6100cd6100c8366004610674565b610340565b6040519081526020016100b1565b3373420000000000000000000000000000000000002314610128576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008073420000000000000000000000000000000000002373ffffffffffffffffffffffffffffffffffffffff16637936cbee6040518163ffffffff1660e01b81526004016040805180830381865afa158015610189573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101ad91906106a0565b909250905073ffffffffffffffffffffffffffffffffffffffff82163014610201576040517fbc22e2aa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517fa0712d68000000000000000000000000000000000000000000000000000000008152600481018490527342000000000000000000000000000000000000259063a0712d6890602401600060405180830381600087803b15801561026757600080fd5b505af115801561027b573d6000803e3d6000fd5b50505050828460405161028d9061057d565b73ffffffffffffffffffffffffffffffffffffffff90911681526020016040518091039082f09050801580156102c7573d6000803e3d6000fd5b50508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fe5479bb8ebad3b9ac81f55f424a6289cf0a54ff2641708f41dcb2b26f264d3598584604051610331929190918252602082015260400190565b60405180910390a35050505050565b600073ffffffffffffffffffffffffffffffffffffffff831661038f576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73420000000000000000000000000000000000002573ffffffffffffffffffffffffffffffffffffffff166344df8e70346040518263ffffffff1660e01b81526004016000604051808303818588803b1580156103eb57600080fd5b505af11580156103ff573d6000803e3d6000fd5b50506040805133602482015273ffffffffffffffffffffffffffffffffffffffff881660448201523460648083019190915282518083039091018152608490910182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f4f0edcc90000000000000000000000000000000000000000000000000000000017905290517f7056f41f0000000000000000000000000000000000000000000000000000000081527342000000000000000000000000000000000000239450637056f41f93506104de9250869130916004016106ce565b6020604051808303816000875af11580156104fd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610521919061070c565b604080513481526020810185905291925073ffffffffffffffffffffffffffffffffffffffff85169133917fed98a2ff78833375c368471a747cdf0633024dde3f870feb08a934ac5be83402910160405180910390a392915050565b60598061072683390190565b73ffffffffffffffffffffffffffffffffffffffff811681146105ab57600080fd5b50565b6000806000606084860312156105c357600080fd5b83356105ce81610589565b925060208401356105de81610589565b929592945050506040919091013590565b6000815180845260005b81811015610615576020818501810151868301820152016105f9565b81811115610627576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60208152600061066d60208301846105ef565b9392505050565b6000806040838503121561068757600080fd5b823561069281610589565b946020939093013593505050565b600080604083850312156106b357600080fd5b82516106be81610589565b6020939093015192949293505050565b83815273ffffffffffffffffffffffffffffffffffffffff8316602082015260606040820152600061070360608301846105ef565b95945050505050565b60006020828403121561071e57600080fd5b505191905056fe608060405260405160593803806059833981016040819052601e91602a565b806001600160a01b0316ff5b600060208284031215603b57600080fd5b81516001600160a01b0381168114605157600080fd5b939250505056fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R`\x046\x10a\x004W`\x005`\xE0\x1C\x80cO\x0E\xDC\xC9\x14a\09W\x80cT\xFDMP\x14a\0[W\x80cd\xA1\x97\xF3\x14a\0\xBAW[`\0\x80\xFD[4\x80\x15a\0EW`\0\x80\xFD[Pa\0Ya\0T6`\x04a\x05\xAEV[a\0\xDBV[\0[4\x80\x15a\0gW`\0\x80\xFD[Pa\0\xA4`@Q\x80`@\x01`@R\x80`\x05\x81R` \x01\x7F1.0.1\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\x81RP\x81V[`@Qa\0\xB1\x91\x90a\x06ZV[`@Q\x80\x91\x03\x90\xF3[a\0\xCDa\0\xC86`\x04a\x06tV[a\x03@V[`@Q\x90\x81R` \x01a\0\xB1V[3sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0#\x14a\x01(W`@Q\x7F\x82\xB4)\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0\x80sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0#s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16cy6\xCB\xEE`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01`@\x80Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x01\x89W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x01\xAD\x91\x90a\x06\xA0V[\x90\x92P\x90Ps\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x160\x14a\x02\x01W`@Q\x7F\xBC\"\xE2\xAA\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\x01`@Q\x80\x91\x03\x90\xFD[`@Q\x7F\xA0q-h\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\x81\x01\x84\x90RsB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0%\x90c\xA0q-h\x90`$\x01`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a\x02gW`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x02{W=`\0\x80>=`\0\xFD[PPPP\x82\x84`@Qa\x02\x8D\x90a\x05}V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01`@Q\x80\x91\x03\x90\x82\xF0\x90P\x80\x15\x80\x15a\x02\xC7W=`\0\x80>=`\0\xFD[PP\x83s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x85s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xE5G\x9B\xB8\xEB\xAD;\x9A\xC8\x1FU\xF4$\xA6(\x9C\xF0\xA5O\xF2d\x17\x08\xF4\x1D\xCB+&\xF2d\xD3Y\x85\x84`@Qa\x031\x92\x91\x90\x91\x82R` \x82\x01R`@\x01\x90V[`@Q\x80\x91\x03\x90\xA3PPPPPV[`\0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x16a\x03\x8FW`@Q\x7F\xD9.#=\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\x01`@Q\x80\x91\x03\x90\xFD[sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0%s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16cD\xDF\x8Ep4`@Q\x82c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01`\0`@Q\x80\x83\x03\x81\x85\x88\x80;\x15\x80\x15a\x03\xEBW`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x03\xFFW=`\0\x80>=`\0\xFD[PP`@\x80Q3`$\x82\x01Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x88\x16`D\x82\x01R4`d\x80\x83\x01\x91\x90\x91R\x82Q\x80\x83\x03\x90\x91\x01\x81R`\x84\x90\x91\x01\x82R` \x81\x01\x80Q{\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7FO\x0E\xDC\xC9\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\x17\x90R\x90Q\x7FpV\xF4\x1F\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\x81RsB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0#\x94PcpV\xF4\x1F\x93Pa\x04\xDE\x92P\x86\x910\x91`\x04\x01a\x06\xCEV[` `@Q\x80\x83\x03\x81`\0\x87Z\xF1\x15\x80\x15a\x04\xFDW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x05!\x91\x90a\x07\x0CV[`@\x80Q4\x81R` \x81\x01\x85\x90R\x91\x92Ps\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x85\x16\x913\x91\x7F\xED\x98\xA2\xFFx\x833u\xC3hG\x1At|\xDF\x063\x02M\xDE?\x87\x0F\xEB\x08\xA94\xAC[\xE84\x02\x91\x01`@Q\x80\x91\x03\x90\xA3\x92\x91PPV[`Y\x80a\x07&\x839\x01\x90V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x05\xABW`\0\x80\xFD[PV[`\0\x80`\0``\x84\x86\x03\x12\x15a\x05\xC3W`\0\x80\xFD[\x835a\x05\xCE\x81a\x05\x89V[\x92P` \x84\x015a\x05\xDE\x81a\x05\x89V[\x92\x95\x92\x94PPP`@\x91\x90\x91\x015\x90V[`\0\x81Q\x80\x84R`\0[\x81\x81\x10\x15a\x06\x15W` \x81\x85\x01\x81\x01Q\x86\x83\x01\x82\x01R\x01a\x05\xF9V[\x81\x81\x11\x15a\x06'W`\0` \x83\x87\x01\x01R[P`\x1F\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x92\x90\x92\x01` \x01\x92\x91PPV[` \x81R`\0a\x06m` \x83\x01\x84a\x05\xEFV[\x93\x92PPPV[`\0\x80`@\x83\x85\x03\x12\x15a\x06\x87W`\0\x80\xFD[\x825a\x06\x92\x81a\x05\x89V[\x94` \x93\x90\x93\x015\x93PPPV[`\0\x80`@\x83\x85\x03\x12\x15a\x06\xB3W`\0\x80\xFD[\x82Qa\x06\xBE\x81a\x05\x89V[` \x93\x90\x93\x01Q\x92\x94\x92\x93PPPV[\x83\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x16` \x82\x01R```@\x82\x01R`\0a\x07\x03``\x83\x01\x84a\x05\xEFV[\x95\x94PPPPPV[`\0` \x82\x84\x03\x12\x15a\x07\x1EW`\0\x80\xFD[PQ\x91\x90PV\xFE`\x80`@R`@Q`Y8\x03\x80`Y\x839\x81\x01`@\x81\x90R`\x1E\x91`*V[\x80`\x01`\x01`\xA0\x1B\x03\x16\xFF[`\0` \x82\x84\x03\x12\x15`;W`\0\x80\xFD[\x81Q`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14`QW`\0\x80\xFD[\x93\x92PPPV\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidCrossDomainSender()` and selector `0xbc22e2aa`. +```solidity +error InvalidCrossDomainSender(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidCrossDomainSender; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: InvalidCrossDomainSender) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for InvalidCrossDomainSender { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidCrossDomainSender { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidCrossDomainSender()"; + const SELECTOR: [u8; 4] = [188u8, 34u8, 226u8, 170u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `Unauthorized()` and selector `0x82b42900`. +```solidity +error Unauthorized(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct Unauthorized; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: Unauthorized) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for Unauthorized { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for Unauthorized { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "Unauthorized()"; + const SELECTOR: [u8; 4] = [130u8, 180u8, 41u8, 0u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ZeroAddress()` and selector `0xd92e233d`. +```solidity +error ZeroAddress(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ZeroAddress; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ZeroAddress) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ZeroAddress { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ZeroAddress { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ZeroAddress()"; + const SELECTOR: [u8; 4] = [217u8, 46u8, 35u8, 61u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `RelayETH(address,address,uint256,uint256)` and selector `0xe5479bb8ebad3b9ac81f55f424a6289cf0a54ff2641708f41dcb2b26f264d359`. +```solidity +event RelayETH(address indexed from, address indexed to, uint256 amount, uint256 source); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct RelayETH { + #[allow(missing_docs)] + pub from: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub amount: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub source: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for RelayETH { + type DataTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + ); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "RelayETH(address,address,uint256,uint256)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 229u8, 71u8, 155u8, 184u8, 235u8, 173u8, 59u8, 154u8, 200u8, 31u8, 85u8, + 244u8, 36u8, 166u8, 40u8, 156u8, 240u8, 165u8, 79u8, 242u8, 100u8, 23u8, + 8u8, 244u8, 29u8, 203u8, 43u8, 38u8, 242u8, 100u8, 211u8, 89u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + from: topics.1, + to: topics.2, + amount: data.0, + source: data.1, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.amount), + as alloy_sol_types::SolType>::tokenize(&self.source), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.from.clone(), self.to.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.from, + ); + out[2usize] = ::encode_topic( + &self.to, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for RelayETH { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&RelayETH> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &RelayETH) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `SendETH(address,address,uint256,uint256)` and selector `0xed98a2ff78833375c368471a747cdf0633024dde3f870feb08a934ac5be83402`. +```solidity +event SendETH(address indexed from, address indexed to, uint256 amount, uint256 destination); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct SendETH { + #[allow(missing_docs)] + pub from: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub amount: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub destination: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for SendETH { + type DataTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + ); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "SendETH(address,address,uint256,uint256)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 237u8, 152u8, 162u8, 255u8, 120u8, 131u8, 51u8, 117u8, 195u8, 104u8, + 71u8, 26u8, 116u8, 124u8, 223u8, 6u8, 51u8, 2u8, 77u8, 222u8, 63u8, + 135u8, 15u8, 235u8, 8u8, 169u8, 52u8, 172u8, 91u8, 232u8, 52u8, 2u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + from: topics.1, + to: topics.2, + amount: data.0, + destination: data.1, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.amount), + as alloy_sol_types::SolType>::tokenize(&self.destination), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.from.clone(), self.to.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.from, + ); + out[2usize] = ::encode_topic( + &self.to, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for SendETH { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&SendETH> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &SendETH) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `relayETH(address,address,uint256)` and selector `0x4f0edcc9`. +```solidity +function relayETH(address _from, address _to, uint256 _amount) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct relayETHCall { + #[allow(missing_docs)] + pub _from: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _amount: alloy::sol_types::private::primitives::aliases::U256, + } + ///Container type for the return parameters of the [`relayETH(address,address,uint256)`](relayETHCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct relayETHReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: relayETHCall) -> Self { + (value._from, value._to, value._amount) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for relayETHCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _from: tuple.0, + _to: tuple.1, + _amount: tuple.2, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: relayETHReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for relayETHReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl relayETHReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for relayETHCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = relayETHReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "relayETH(address,address,uint256)"; + const SELECTOR: [u8; 4] = [79u8, 14u8, 220u8, 201u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._from, + ), + ::tokenize( + &self._to, + ), + as alloy_sol_types::SolType>::tokenize(&self._amount), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + relayETHReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `sendETH(address,uint256)` and selector `0x64a197f3`. +```solidity +function sendETH(address _to, uint256 _chainId) external payable returns (bytes32 msgHash_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct sendETHCall { + #[allow(missing_docs)] + pub _to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _chainId: alloy::sol_types::private::primitives::aliases::U256, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`sendETH(address,uint256)`](sendETHCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct sendETHReturn { + #[allow(missing_docs)] + pub msgHash_: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: sendETHCall) -> Self { + (value._to, value._chainId) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for sendETHCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _to: tuple.0, + _chainId: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: sendETHReturn) -> Self { + (value.msgHash_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for sendETHReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { msgHash_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for sendETHCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::FixedBytes<32>; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "sendETH(address,uint256)"; + const SELECTOR: [u8; 4] = [100u8, 161u8, 151u8, 243u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._to, + ), + as alloy_sol_types::SolType>::tokenize(&self._chainId), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: sendETHReturn = r.into(); + r.msgHash_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: sendETHReturn = r.into(); + r.msgHash_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `version()` and selector `0x54fd4d50`. +```solidity +function version() external view returns (string memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`version()`](versionCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for versionCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::String; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "version()"; + const SELECTOR: [u8; 4] = [84u8, 253u8, 77u8, 80u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + } + }; + ///Container for all the [`SuperchainETHBridge`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum SuperchainETHBridgeCalls { + #[allow(missing_docs)] + relayETH(relayETHCall), + #[allow(missing_docs)] + sendETH(sendETHCall), + #[allow(missing_docs)] + version(versionCall), + } + impl SuperchainETHBridgeCalls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [79u8, 14u8, 220u8, 201u8], + [84u8, 253u8, 77u8, 80u8], + [100u8, 161u8, 151u8, 243u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(relayETH), + ::core::stringify!(version), + ::core::stringify!(sendETH), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for SuperchainETHBridgeCalls { + const NAME: &'static str = "SuperchainETHBridgeCalls"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 3usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::relayETH(_) => ::SELECTOR, + Self::sendETH(_) => ::SELECTOR, + Self::version(_) => ::SELECTOR, + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn relayETH( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(SuperchainETHBridgeCalls::relayETH) + } + relayETH + }, + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(SuperchainETHBridgeCalls::version) + } + version + }, + { + fn sendETH( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(SuperchainETHBridgeCalls::sendETH) + } + sendETH + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn relayETH( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperchainETHBridgeCalls::relayETH) + } + relayETH + }, + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperchainETHBridgeCalls::version) + } + version + }, + { + fn sendETH( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperchainETHBridgeCalls::sendETH) + } + sendETH + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::relayETH(inner) => { + ::abi_encoded_size(inner) + } + Self::sendETH(inner) => { + ::abi_encoded_size(inner) + } + Self::version(inner) => { + ::abi_encoded_size(inner) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::relayETH(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::sendETH(inner) => { + ::abi_encode_raw(inner, out) + } + Self::version(inner) => { + ::abi_encode_raw(inner, out) + } + } + } + } + ///Container for all the [`SuperchainETHBridge`](self) custom errors. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum SuperchainETHBridgeErrors { + #[allow(missing_docs)] + InvalidCrossDomainSender(InvalidCrossDomainSender), + #[allow(missing_docs)] + Unauthorized(Unauthorized), + #[allow(missing_docs)] + ZeroAddress(ZeroAddress), + } + impl SuperchainETHBridgeErrors { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [130u8, 180u8, 41u8, 0u8], + [188u8, 34u8, 226u8, 170u8], + [217u8, 46u8, 35u8, 61u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(Unauthorized), + ::core::stringify!(InvalidCrossDomainSender), + ::core::stringify!(ZeroAddress), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for SuperchainETHBridgeErrors { + const NAME: &'static str = "SuperchainETHBridgeErrors"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 3usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::InvalidCrossDomainSender(_) => { + ::SELECTOR + } + Self::Unauthorized(_) => { + ::SELECTOR + } + Self::ZeroAddress(_) => { + ::SELECTOR + } + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn Unauthorized( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(SuperchainETHBridgeErrors::Unauthorized) + } + Unauthorized + }, + { + fn InvalidCrossDomainSender( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperchainETHBridgeErrors::InvalidCrossDomainSender) + } + InvalidCrossDomainSender + }, + { + fn ZeroAddress( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(SuperchainETHBridgeErrors::ZeroAddress) + } + ZeroAddress + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn Unauthorized( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperchainETHBridgeErrors::Unauthorized) + } + Unauthorized + }, + { + fn InvalidCrossDomainSender( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperchainETHBridgeErrors::InvalidCrossDomainSender) + } + InvalidCrossDomainSender + }, + { + fn ZeroAddress( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperchainETHBridgeErrors::ZeroAddress) + } + ZeroAddress + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::InvalidCrossDomainSender(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::Unauthorized(inner) => { + ::abi_encoded_size(inner) + } + Self::ZeroAddress(inner) => { + ::abi_encoded_size(inner) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::InvalidCrossDomainSender(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::Unauthorized(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ZeroAddress(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + } + } + } + ///Container for all the [`SuperchainETHBridge`](self) events. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum SuperchainETHBridgeEvents { + #[allow(missing_docs)] + RelayETH(RelayETH), + #[allow(missing_docs)] + SendETH(SendETH), + } + impl SuperchainETHBridgeEvents { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 32usize]] = &[ + [ + 229u8, 71u8, 155u8, 184u8, 235u8, 173u8, 59u8, 154u8, 200u8, 31u8, 85u8, + 244u8, 36u8, 166u8, 40u8, 156u8, 240u8, 165u8, 79u8, 242u8, 100u8, 23u8, + 8u8, 244u8, 29u8, 203u8, 43u8, 38u8, 242u8, 100u8, 211u8, 89u8, + ], + [ + 237u8, 152u8, 162u8, 255u8, 120u8, 131u8, 51u8, 117u8, 195u8, 104u8, + 71u8, 26u8, 116u8, 124u8, 223u8, 6u8, 51u8, 2u8, 77u8, 222u8, 63u8, + 135u8, 15u8, 235u8, 8u8, 169u8, 52u8, 172u8, 91u8, 232u8, 52u8, 2u8, + ], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(RelayETH), + ::core::stringify!(SendETH), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolEventInterface for SuperchainETHBridgeEvents { + const NAME: &'static str = "SuperchainETHBridgeEvents"; + const COUNT: usize = 2usize; + fn decode_raw_log( + topics: &[alloy_sol_types::Word], + data: &[u8], + ) -> alloy_sol_types::Result { + match topics.first().copied() { + Some(::SIGNATURE_HASH) => { + ::decode_raw_log(topics, data) + .map(Self::RelayETH) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log(topics, data) + .map(Self::SendETH) + } + _ => { + alloy_sol_types::private::Err(alloy_sol_types::Error::InvalidLog { + name: ::NAME, + log: alloy_sol_types::private::Box::new( + alloy_sol_types::private::LogData::new_unchecked( + topics.to_vec(), + data.to_vec().into(), + ), + ), + }) + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for SuperchainETHBridgeEvents { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + match self { + Self::RelayETH(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::SendETH(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + } + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + match self { + Self::RelayETH(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::SendETH(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`SuperchainETHBridge`](self) contract instance. + +See the [wrapper's documentation](`SuperchainETHBridgeInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> SuperchainETHBridgeInstance { + SuperchainETHBridgeInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + SuperchainETHBridgeInstance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + SuperchainETHBridgeInstance::::deploy_builder(__provider) + } + /**A [`SuperchainETHBridge`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`SuperchainETHBridge`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct SuperchainETHBridgeInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for SuperchainETHBridgeInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("SuperchainETHBridgeInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > SuperchainETHBridgeInstance { + /**Creates a new wrapper around an on-chain [`SuperchainETHBridge`](self) contract instance. + +See the [wrapper's documentation](`SuperchainETHBridgeInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl SuperchainETHBridgeInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> SuperchainETHBridgeInstance { + SuperchainETHBridgeInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > SuperchainETHBridgeInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`relayETH`] function. + pub fn relayETH( + &self, + _from: alloy::sol_types::private::Address, + _to: alloy::sol_types::private::Address, + _amount: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, relayETHCall, N> { + self.call_builder( + &relayETHCall { + _from, + _to, + _amount, + }, + ) + } + ///Creates a new call builder for the [`sendETH`] function. + pub fn sendETH( + &self, + _to: alloy::sol_types::private::Address, + _chainId: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, sendETHCall, N> { + self.call_builder(&sendETHCall { _to, _chainId }) + } + ///Creates a new call builder for the [`version`] function. + pub fn version(&self) -> alloy_contract::SolCallBuilder<&P, versionCall, N> { + self.call_builder(&versionCall) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > SuperchainETHBridgeInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + ///Creates a new event filter for the [`RelayETH`] event. + pub fn RelayETH_filter(&self) -> alloy_contract::Event<&P, RelayETH, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`SendETH`] event. + pub fn SendETH_filter(&self) -> alloy_contract::Event<&P, SendETH, N> { + self.event_filter::() + } + } +} diff --git a/bindings/rust/src/superchain_rev_shares_calculator.rs b/bindings/rust/src/superchain_rev_shares_calculator.rs new file mode 100644 index 000000000..4b5564132 --- /dev/null +++ b/bindings/rust/src/superchain_rev_shares_calculator.rs @@ -0,0 +1,3616 @@ +///Module containing a contract's types and functions. +/** + +```solidity +library ISharesCalculator { + struct ShareInfo { address recipient; uint256 amount; } +} +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod ISharesCalculator { + use super::*; + use alloy::sol_types as alloy_sol_types; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**```solidity +struct ShareInfo { address recipient; uint256 amount; } +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ShareInfo { + #[allow(missing_docs)] + pub recipient: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub amount: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ShareInfo) -> Self { + (value.recipient, value.amount) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ShareInfo { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + recipient: tuple.0, + amount: tuple.1, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolValue for ShareInfo { + type SolType = Self; + } + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for ShareInfo { + #[inline] + fn stv_to_tokens(&self) -> ::Token<'_> { + ( + ::tokenize( + &self.recipient, + ), + as alloy_sol_types::SolType>::tokenize(&self.amount), + ) + } + #[inline] + fn stv_abi_encoded_size(&self) -> usize { + if let Some(size) = ::ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encoded_size(&tuple) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + ::eip712_hash_struct(self) + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + if let Some(size) = ::PACKED_ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for ShareInfo { + type RustType = Self; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = ::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + as alloy_sol_types::SolType>::valid_token(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + let tuple = as alloy_sol_types::SolType>::detokenize(token); + >>::from(tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolStruct for ShareInfo { + const NAME: &'static str = "ShareInfo"; + #[inline] + fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> { + alloy_sol_types::private::Cow::Borrowed( + "ShareInfo(address recipient,uint256 amount)", + ) + } + #[inline] + fn eip712_components() -> alloy_sol_types::private::Vec< + alloy_sol_types::private::Cow<'static, str>, + > { + alloy_sol_types::private::Vec::new() + } + #[inline] + fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> { + ::eip712_root_type() + } + #[inline] + fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec { + [ + ::eip712_data_word( + &self.recipient, + ) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.amount) + .0, + ] + .concat() + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for ShareInfo { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + 0usize + + ::topic_preimage_length( + &rust.recipient, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.amount, + ) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + out.reserve( + ::topic_preimage_length(rust), + ); + ::encode_topic_preimage( + &rust.recipient, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.amount, + out, + ); + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + let mut out = alloy_sol_types::private::Vec::new(); + ::encode_topic_preimage( + rust, + &mut out, + ); + alloy_sol_types::abi::token::WordToken( + alloy_sol_types::private::keccak256(out), + ) + } + } + }; + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`ISharesCalculator`](self) contract instance. + +See the [wrapper's documentation](`ISharesCalculatorInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> ISharesCalculatorInstance { + ISharesCalculatorInstance::::new(address, __provider) + } + /**A [`ISharesCalculator`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`ISharesCalculator`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct ISharesCalculatorInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for ISharesCalculatorInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("ISharesCalculatorInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > ISharesCalculatorInstance { + /**Creates a new wrapper around an on-chain [`ISharesCalculator`](self) contract instance. + +See the [wrapper's documentation](`ISharesCalculatorInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl ISharesCalculatorInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> ISharesCalculatorInstance { + ISharesCalculatorInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > ISharesCalculatorInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > ISharesCalculatorInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + } +} +/** + +Generated by the following Solidity interface... +```solidity +library ISharesCalculator { + struct ShareInfo { + address payable recipient; + uint256 amount; + } +} + +interface SuperchainRevSharesCalculator { + error SharesCalculator_OnlyProxyAdminOwner(); + error SharesCalculator_ZeroGrossShare(); + + event RemainderRecipientUpdated(address indexed oldRemainderRecipient, address indexed newRemainderRecipient); + event ShareRecipientUpdated(address indexed oldShareRecipient, address indexed newShareRecipient); + + constructor(address payable _shareRecipient, address payable _remainderRecipient); + + function BASIS_POINT_SCALE() external view returns (uint32); + function GROSS_SHARE_BPS() external view returns (uint32); + function NET_SHARE_BPS() external view returns (uint32); + function getRecipientsAndAmounts(uint256 _sequencerFeeRevenue, uint256 _baseFeeRevenue, uint256 _operatorFeeRevenue, uint256 _l1FeeRevenue) external view returns (ISharesCalculator.ShareInfo[] memory shareInfo_); + function remainderRecipient() external view returns (address payable); + function setRemainderRecipient(address payable _newRemainderRecipient) external; + function setShareRecipient(address payable _newShareRecipient) external; + function shareRecipient() external view returns (address payable); + function version() external view returns (string memory); +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "constructor", + "inputs": [ + { + "name": "_shareRecipient", + "type": "address", + "internalType": "address payable" + }, + { + "name": "_remainderRecipient", + "type": "address", + "internalType": "address payable" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "BASIS_POINT_SCALE", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint32", + "internalType": "uint32" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "GROSS_SHARE_BPS", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint32", + "internalType": "uint32" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "NET_SHARE_BPS", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint32", + "internalType": "uint32" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "getRecipientsAndAmounts", + "inputs": [ + { + "name": "_sequencerFeeRevenue", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_baseFeeRevenue", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_operatorFeeRevenue", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_l1FeeRevenue", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "shareInfo_", + "type": "tuple[]", + "internalType": "struct ISharesCalculator.ShareInfo[]", + "components": [ + { + "name": "recipient", + "type": "address", + "internalType": "address payable" + }, + { + "name": "amount", + "type": "uint256", + "internalType": "uint256" + } + ] + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "remainderRecipient", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address payable" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "setRemainderRecipient", + "inputs": [ + { + "name": "_newRemainderRecipient", + "type": "address", + "internalType": "address payable" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "setShareRecipient", + "inputs": [ + { + "name": "_newShareRecipient", + "type": "address", + "internalType": "address payable" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "shareRecipient", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address payable" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "version", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "view" + }, + { + "type": "event", + "name": "RemainderRecipientUpdated", + "inputs": [ + { + "name": "oldRemainderRecipient", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "newRemainderRecipient", + "type": "address", + "indexed": true, + "internalType": "address" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "ShareRecipientUpdated", + "inputs": [ + { + "name": "oldShareRecipient", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "newShareRecipient", + "type": "address", + "indexed": true, + "internalType": "address" + } + ], + "anonymous": false + }, + { + "type": "error", + "name": "SharesCalculator_OnlyProxyAdminOwner", + "inputs": [] + }, + { + "type": "error", + "name": "SharesCalculator_ZeroGrossShare", + "inputs": [] + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod SuperchainRevSharesCalculator { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x6080604052348015600e575f80fd5b50604051610955380380610955833981016040819052602b916074565b5f80546001600160a01b039384166001600160a01b0319918216179091556001805492909316911617905560a0565b80516001600160a01b0381168114606f575f80fd5b919050565b5f80604083850312156084575f80fd5b608b83605a565b9150609760208401605a565b90509250929050565b6108a8806100ad5f395ff3fe608060405234801561000f575f80fd5b506004361061009f575f3560e01c80635b201d83116100725780637b42d6c2116100585780637b42d6c21461019157806396d842be1461019a5780639c662fdd146101b9575f80fd5b80635b201d831461016b578063712d7bb814610189575f80fd5b806329f33ec8146100a35780634b012e9a146100ed57806354e7f42d1461010257806354fd4d5014610122575b5f80fd5b6001546100c39073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b6101006100fb3660046106a3565b6101cc565b005b6101156101103660046106c5565b610325565b6040516100e491906106f4565b61015e6040518060400160405280600581526020017f312e302e3000000000000000000000000000000000000000000000000000000081525081565b6040516100e49190610758565b61017461271081565b60405163ffffffff90911681526020016100e4565b61017460fa81565b6101746105dc81565b5f546100c39073ffffffffffffffffffffffffffffffffffffffff1681565b6101006101c73660046106a3565b610524565b73420000000000000000000000000000000000001873ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610229573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061024d91906107ab565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146102b1576040517f67102c4c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917fc7b7459ad1ab31862524bf0c4a5e6a8518c60f27607a5c483a58ea27e30c214c9190a35050565b6040805160028082526060828101909352816020015b604080518082019091525f808252602082015281526020019060019003908161033b575050604080518082019091525f805473ffffffffffffffffffffffffffffffffffffffff16825260208201819052825192935090918391906103a2576103a26107c6565b6020026020010181905250604051806040016040528060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020015f8152508160018151811061040c5761040c6107c6565b60209081029190910101525f82846104248789610820565b61042e9190610820565b6104389190610820565b90505f61271061044960fa84610839565b6104539190610850565b9050805f0361048e576040517f0174e42600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6104998584610888565b90505f6127106104ab6105dc84610839565b6104b59190610850565b90505f8184116104c557816104c7565b835b905080865f815181106104dc576104dc6107c6565b60209081029190910181015101526104f48186610888565b86600181518110610507576105076107c6565b602002602001015160200181815250505050505050949350505050565b73420000000000000000000000000000000000001873ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610581573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105a591906107ab565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610609576040517f67102c4c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f28c1e0a919cd3b91d6d516417dedc06a2bd7954ad8960315347250b1aee2a4f1905f90a35050565b73ffffffffffffffffffffffffffffffffffffffff811681146106a0575f80fd5b50565b5f602082840312156106b3575f80fd5b81356106be8161067f565b9392505050565b5f805f80608085870312156106d8575f80fd5b5050823594602084013594506040840135936060013592509050565b602080825282518282018190525f919060409081850190868401855b8281101561074b578151805173ffffffffffffffffffffffffffffffffffffffff168552860151868501529284019290850190600101610710565b5091979650505050505050565b602081525f82518060208401528060208501604085015e5f6040828501015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011684010191505092915050565b5f602082840312156107bb575f80fd5b81516106be8161067f565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b80820180821115610833576108336107f3565b92915050565b8082028115828204841417610833576108336107f3565b5f82610883577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b81810381811115610833576108336107f356fea164736f6c6343000819000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R4\x80\x15`\x0EW_\x80\xFD[P`@Qa\tU8\x03\x80a\tU\x839\x81\x01`@\x81\x90R`+\x91`tV[_\x80T`\x01`\x01`\xA0\x1B\x03\x93\x84\x16`\x01`\x01`\xA0\x1B\x03\x19\x91\x82\x16\x17\x90\x91U`\x01\x80T\x92\x90\x93\x16\x91\x16\x17\x90U`\xA0V[\x80Q`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14`oW_\x80\xFD[\x91\x90PV[_\x80`@\x83\x85\x03\x12\x15`\x84W_\x80\xFD[`\x8B\x83`ZV[\x91P`\x97` \x84\x01`ZV[\x90P\x92P\x92\x90PV[a\x08\xA8\x80a\0\xAD_9_\xF3\xFE`\x80`@R4\x80\x15a\0\x0FW_\x80\xFD[P`\x046\x10a\0\x9FW_5`\xE0\x1C\x80c[ \x1D\x83\x11a\0rW\x80c{B\xD6\xC2\x11a\0XW\x80c{B\xD6\xC2\x14a\x01\x91W\x80c\x96\xD8B\xBE\x14a\x01\x9AW\x80c\x9Cf/\xDD\x14a\x01\xB9W_\x80\xFD[\x80c[ \x1D\x83\x14a\x01kW\x80cq-{\xB8\x14a\x01\x89W_\x80\xFD[\x80c)\xF3>\xC8\x14a\0\xA3W\x80cK\x01.\x9A\x14a\0\xEDW\x80cT\xE7\xF4-\x14a\x01\x02W\x80cT\xFDMP\x14a\x01\"W[_\x80\xFD[`\x01Ta\0\xC3\x90s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[a\x01\0a\0\xFB6`\x04a\x06\xA3V[a\x01\xCCV[\0[a\x01\x15a\x01\x106`\x04a\x06\xC5V[a\x03%V[`@Qa\0\xE4\x91\x90a\x06\xF4V[a\x01^`@Q\x80`@\x01`@R\x80`\x05\x81R` \x01\x7F1.0.0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RP\x81V[`@Qa\0\xE4\x91\x90a\x07XV[a\x01ta'\x10\x81V[`@Qc\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01a\0\xE4V[a\x01t`\xFA\x81V[a\x01ta\x05\xDC\x81V[_Ta\0\xC3\x90s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[a\x01\0a\x01\xC76`\x04a\x06\xA3V[a\x05$V[sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x18s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\x8D\xA5\xCB[`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x02)W=_\x80>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x02M\x91\x90a\x07\xABV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x163s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14a\x02\xB1W`@Q\x7Fg\x10,L\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\x01`@Q\x80\x91\x03\x90\xFD[_\x80Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x81\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x83\x16\x81\x17\x84U`@Q\x91\x90\x92\x16\x92\x83\x91\x7F\xC7\xB7E\x9A\xD1\xAB1\x86%$\xBF\x0CJ^j\x85\x18\xC6\x0F'`z\\H:X\xEA'\xE3\x0C!L\x91\x90\xA3PPV[`@\x80Q`\x02\x80\x82R``\x82\x81\x01\x90\x93R\x81` \x01[`@\x80Q\x80\x82\x01\x90\x91R_\x80\x82R` \x82\x01R\x81R` \x01\x90`\x01\x90\x03\x90\x81a\x03;WPP`@\x80Q\x80\x82\x01\x90\x91R_\x80Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x82R` \x82\x01\x81\x90R\x82Q\x92\x93P\x90\x91\x83\x91\x90a\x03\xA2Wa\x03\xA2a\x07\xC6V[` \x02` \x01\x01\x81\x90RP`@Q\x80`@\x01`@R\x80`\x01_\x90T\x90a\x01\0\n\x90\x04s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81R` \x01_\x81RP\x81`\x01\x81Q\x81\x10a\x04\x0CWa\x04\x0Ca\x07\xC6V[` \x90\x81\x02\x91\x90\x91\x01\x01R_\x82\x84a\x04$\x87\x89a\x08 V[a\x04.\x91\x90a\x08 V[a\x048\x91\x90a\x08 V[\x90P_a'\x10a\x04I`\xFA\x84a\x089V[a\x04S\x91\x90a\x08PV[\x90P\x80_\x03a\x04\x8EW`@Q\x7F\x01t\xE4&\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\x01`@Q\x80\x91\x03\x90\xFD[_a\x04\x99\x85\x84a\x08\x88V[\x90P_a'\x10a\x04\xABa\x05\xDC\x84a\x089V[a\x04\xB5\x91\x90a\x08PV[\x90P_\x81\x84\x11a\x04\xC5W\x81a\x04\xC7V[\x83[\x90P\x80\x86_\x81Q\x81\x10a\x04\xDCWa\x04\xDCa\x07\xC6V[` \x90\x81\x02\x91\x90\x91\x01\x81\x01Q\x01Ra\x04\xF4\x81\x86a\x08\x88V[\x86`\x01\x81Q\x81\x10a\x05\x07Wa\x05\x07a\x07\xC6V[` \x02` \x01\x01Q` \x01\x81\x81RPPPPPPP\x94\x93PPPPV[sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x18s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\x8D\xA5\xCB[`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x05\x81W=_\x80>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x05\xA5\x91\x90a\x07\xABV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x163s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14a\x06\tW`@Q\x7Fg\x10,L\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01\x80Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x81\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x83\x16\x81\x17\x90\x93U`@Q\x91\x16\x91\x90\x82\x90\x7F(\xC1\xE0\xA9\x19\xCD;\x91\xD6\xD5\x16A}\xED\xC0j+\xD7\x95J\xD8\x96\x03\x154rP\xB1\xAE\xE2\xA4\xF1\x90_\x90\xA3PPV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x06\xA0W_\x80\xFD[PV[_` \x82\x84\x03\x12\x15a\x06\xB3W_\x80\xFD[\x815a\x06\xBE\x81a\x06\x7FV[\x93\x92PPPV[_\x80_\x80`\x80\x85\x87\x03\x12\x15a\x06\xD8W_\x80\xFD[PP\x825\x94` \x84\x015\x94P`@\x84\x015\x93``\x015\x92P\x90PV[` \x80\x82R\x82Q\x82\x82\x01\x81\x90R_\x91\x90`@\x90\x81\x85\x01\x90\x86\x84\x01\x85[\x82\x81\x10\x15a\x07KW\x81Q\x80Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x85R\x86\x01Q\x86\x85\x01R\x92\x84\x01\x92\x90\x85\x01\x90`\x01\x01a\x07\x10V[P\x91\x97\x96PPPPPPPV[` \x81R_\x82Q\x80` \x84\x01R\x80` \x85\x01`@\x85\x01^_`@\x82\x85\x01\x01R`@\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0`\x1F\x83\x01\x16\x84\x01\x01\x91PP\x92\x91PPV[_` \x82\x84\x03\x12\x15a\x07\xBBW_\x80\xFD[\x81Qa\x06\xBE\x81a\x06\x7FV[\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_R`2`\x04R`$_\xFD[\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_R`\x11`\x04R`$_\xFD[\x80\x82\x01\x80\x82\x11\x15a\x083Wa\x083a\x07\xF3V[\x92\x91PPV[\x80\x82\x02\x81\x15\x82\x82\x04\x84\x14\x17a\x083Wa\x083a\x07\xF3V[_\x82a\x08\x83W\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_R`\x12`\x04R`$_\xFD[P\x04\x90V[\x81\x81\x03\x81\x81\x11\x15a\x083Wa\x083a\x07\xF3V\xFE\xA1dsolcC\0\x08\x19\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x608060405234801561000f575f80fd5b506004361061009f575f3560e01c80635b201d83116100725780637b42d6c2116100585780637b42d6c21461019157806396d842be1461019a5780639c662fdd146101b9575f80fd5b80635b201d831461016b578063712d7bb814610189575f80fd5b806329f33ec8146100a35780634b012e9a146100ed57806354e7f42d1461010257806354fd4d5014610122575b5f80fd5b6001546100c39073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b6101006100fb3660046106a3565b6101cc565b005b6101156101103660046106c5565b610325565b6040516100e491906106f4565b61015e6040518060400160405280600581526020017f312e302e3000000000000000000000000000000000000000000000000000000081525081565b6040516100e49190610758565b61017461271081565b60405163ffffffff90911681526020016100e4565b61017460fa81565b6101746105dc81565b5f546100c39073ffffffffffffffffffffffffffffffffffffffff1681565b6101006101c73660046106a3565b610524565b73420000000000000000000000000000000000001873ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610229573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061024d91906107ab565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146102b1576040517f67102c4c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917fc7b7459ad1ab31862524bf0c4a5e6a8518c60f27607a5c483a58ea27e30c214c9190a35050565b6040805160028082526060828101909352816020015b604080518082019091525f808252602082015281526020019060019003908161033b575050604080518082019091525f805473ffffffffffffffffffffffffffffffffffffffff16825260208201819052825192935090918391906103a2576103a26107c6565b6020026020010181905250604051806040016040528060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020015f8152508160018151811061040c5761040c6107c6565b60209081029190910101525f82846104248789610820565b61042e9190610820565b6104389190610820565b90505f61271061044960fa84610839565b6104539190610850565b9050805f0361048e576040517f0174e42600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6104998584610888565b90505f6127106104ab6105dc84610839565b6104b59190610850565b90505f8184116104c557816104c7565b835b905080865f815181106104dc576104dc6107c6565b60209081029190910181015101526104f48186610888565b86600181518110610507576105076107c6565b602002602001015160200181815250505050505050949350505050565b73420000000000000000000000000000000000001873ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610581573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105a591906107ab565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610609576040517f67102c4c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f28c1e0a919cd3b91d6d516417dedc06a2bd7954ad8960315347250b1aee2a4f1905f90a35050565b73ffffffffffffffffffffffffffffffffffffffff811681146106a0575f80fd5b50565b5f602082840312156106b3575f80fd5b81356106be8161067f565b9392505050565b5f805f80608085870312156106d8575f80fd5b5050823594602084013594506040840135936060013592509050565b602080825282518282018190525f919060409081850190868401855b8281101561074b578151805173ffffffffffffffffffffffffffffffffffffffff168552860151868501529284019290850190600101610710565b5091979650505050505050565b602081525f82518060208401528060208501604085015e5f6040828501015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011684010191505092915050565b5f602082840312156107bb575f80fd5b81516106be8161067f565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b80820180821115610833576108336107f3565b92915050565b8082028115828204841417610833576108336107f3565b5f82610883577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b81810381811115610833576108336107f356fea164736f6c6343000819000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R4\x80\x15a\0\x0FW_\x80\xFD[P`\x046\x10a\0\x9FW_5`\xE0\x1C\x80c[ \x1D\x83\x11a\0rW\x80c{B\xD6\xC2\x11a\0XW\x80c{B\xD6\xC2\x14a\x01\x91W\x80c\x96\xD8B\xBE\x14a\x01\x9AW\x80c\x9Cf/\xDD\x14a\x01\xB9W_\x80\xFD[\x80c[ \x1D\x83\x14a\x01kW\x80cq-{\xB8\x14a\x01\x89W_\x80\xFD[\x80c)\xF3>\xC8\x14a\0\xA3W\x80cK\x01.\x9A\x14a\0\xEDW\x80cT\xE7\xF4-\x14a\x01\x02W\x80cT\xFDMP\x14a\x01\"W[_\x80\xFD[`\x01Ta\0\xC3\x90s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[a\x01\0a\0\xFB6`\x04a\x06\xA3V[a\x01\xCCV[\0[a\x01\x15a\x01\x106`\x04a\x06\xC5V[a\x03%V[`@Qa\0\xE4\x91\x90a\x06\xF4V[a\x01^`@Q\x80`@\x01`@R\x80`\x05\x81R` \x01\x7F1.0.0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81RP\x81V[`@Qa\0\xE4\x91\x90a\x07XV[a\x01ta'\x10\x81V[`@Qc\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01a\0\xE4V[a\x01t`\xFA\x81V[a\x01ta\x05\xDC\x81V[_Ta\0\xC3\x90s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[a\x01\0a\x01\xC76`\x04a\x06\xA3V[a\x05$V[sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x18s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\x8D\xA5\xCB[`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x02)W=_\x80>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x02M\x91\x90a\x07\xABV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x163s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14a\x02\xB1W`@Q\x7Fg\x10,L\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\x01`@Q\x80\x91\x03\x90\xFD[_\x80Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x81\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x83\x16\x81\x17\x84U`@Q\x91\x90\x92\x16\x92\x83\x91\x7F\xC7\xB7E\x9A\xD1\xAB1\x86%$\xBF\x0CJ^j\x85\x18\xC6\x0F'`z\\H:X\xEA'\xE3\x0C!L\x91\x90\xA3PPV[`@\x80Q`\x02\x80\x82R``\x82\x81\x01\x90\x93R\x81` \x01[`@\x80Q\x80\x82\x01\x90\x91R_\x80\x82R` \x82\x01R\x81R` \x01\x90`\x01\x90\x03\x90\x81a\x03;WPP`@\x80Q\x80\x82\x01\x90\x91R_\x80Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x82R` \x82\x01\x81\x90R\x82Q\x92\x93P\x90\x91\x83\x91\x90a\x03\xA2Wa\x03\xA2a\x07\xC6V[` \x02` \x01\x01\x81\x90RP`@Q\x80`@\x01`@R\x80`\x01_\x90T\x90a\x01\0\n\x90\x04s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81R` \x01_\x81RP\x81`\x01\x81Q\x81\x10a\x04\x0CWa\x04\x0Ca\x07\xC6V[` \x90\x81\x02\x91\x90\x91\x01\x01R_\x82\x84a\x04$\x87\x89a\x08 V[a\x04.\x91\x90a\x08 V[a\x048\x91\x90a\x08 V[\x90P_a'\x10a\x04I`\xFA\x84a\x089V[a\x04S\x91\x90a\x08PV[\x90P\x80_\x03a\x04\x8EW`@Q\x7F\x01t\xE4&\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\x01`@Q\x80\x91\x03\x90\xFD[_a\x04\x99\x85\x84a\x08\x88V[\x90P_a'\x10a\x04\xABa\x05\xDC\x84a\x089V[a\x04\xB5\x91\x90a\x08PV[\x90P_\x81\x84\x11a\x04\xC5W\x81a\x04\xC7V[\x83[\x90P\x80\x86_\x81Q\x81\x10a\x04\xDCWa\x04\xDCa\x07\xC6V[` \x90\x81\x02\x91\x90\x91\x01\x81\x01Q\x01Ra\x04\xF4\x81\x86a\x08\x88V[\x86`\x01\x81Q\x81\x10a\x05\x07Wa\x05\x07a\x07\xC6V[` \x02` \x01\x01Q` \x01\x81\x81RPPPPPPP\x94\x93PPPPV[sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x18s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\x8D\xA5\xCB[`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x05\x81W=_\x80>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x05\xA5\x91\x90a\x07\xABV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x163s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14a\x06\tW`@Q\x7Fg\x10,L\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\x01`@Q\x80\x91\x03\x90\xFD[`\x01\x80Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x81\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x83\x16\x81\x17\x90\x93U`@Q\x91\x16\x91\x90\x82\x90\x7F(\xC1\xE0\xA9\x19\xCD;\x91\xD6\xD5\x16A}\xED\xC0j+\xD7\x95J\xD8\x96\x03\x154rP\xB1\xAE\xE2\xA4\xF1\x90_\x90\xA3PPV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x06\xA0W_\x80\xFD[PV[_` \x82\x84\x03\x12\x15a\x06\xB3W_\x80\xFD[\x815a\x06\xBE\x81a\x06\x7FV[\x93\x92PPPV[_\x80_\x80`\x80\x85\x87\x03\x12\x15a\x06\xD8W_\x80\xFD[PP\x825\x94` \x84\x015\x94P`@\x84\x015\x93``\x015\x92P\x90PV[` \x80\x82R\x82Q\x82\x82\x01\x81\x90R_\x91\x90`@\x90\x81\x85\x01\x90\x86\x84\x01\x85[\x82\x81\x10\x15a\x07KW\x81Q\x80Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x85R\x86\x01Q\x86\x85\x01R\x92\x84\x01\x92\x90\x85\x01\x90`\x01\x01a\x07\x10V[P\x91\x97\x96PPPPPPPV[` \x81R_\x82Q\x80` \x84\x01R\x80` \x85\x01`@\x85\x01^_`@\x82\x85\x01\x01R`@\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0`\x1F\x83\x01\x16\x84\x01\x01\x91PP\x92\x91PPV[_` \x82\x84\x03\x12\x15a\x07\xBBW_\x80\xFD[\x81Qa\x06\xBE\x81a\x06\x7FV[\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_R`2`\x04R`$_\xFD[\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_R`\x11`\x04R`$_\xFD[\x80\x82\x01\x80\x82\x11\x15a\x083Wa\x083a\x07\xF3V[\x92\x91PPV[\x80\x82\x02\x81\x15\x82\x82\x04\x84\x14\x17a\x083Wa\x083a\x07\xF3V[_\x82a\x08\x83W\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_R`\x12`\x04R`$_\xFD[P\x04\x90V[\x81\x81\x03\x81\x81\x11\x15a\x083Wa\x083a\x07\xF3V\xFE\xA1dsolcC\0\x08\x19\0\n", + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `SharesCalculator_OnlyProxyAdminOwner()` and selector `0x67102c4c`. +```solidity +error SharesCalculator_OnlyProxyAdminOwner(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct SharesCalculator_OnlyProxyAdminOwner; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: SharesCalculator_OnlyProxyAdminOwner) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for SharesCalculator_OnlyProxyAdminOwner { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for SharesCalculator_OnlyProxyAdminOwner { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "SharesCalculator_OnlyProxyAdminOwner()"; + const SELECTOR: [u8; 4] = [103u8, 16u8, 44u8, 76u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `SharesCalculator_ZeroGrossShare()` and selector `0x0174e426`. +```solidity +error SharesCalculator_ZeroGrossShare(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct SharesCalculator_ZeroGrossShare; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: SharesCalculator_ZeroGrossShare) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for SharesCalculator_ZeroGrossShare { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for SharesCalculator_ZeroGrossShare { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "SharesCalculator_ZeroGrossShare()"; + const SELECTOR: [u8; 4] = [1u8, 116u8, 228u8, 38u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `RemainderRecipientUpdated(address,address)` and selector `0x28c1e0a919cd3b91d6d516417dedc06a2bd7954ad8960315347250b1aee2a4f1`. +```solidity +event RemainderRecipientUpdated(address indexed oldRemainderRecipient, address indexed newRemainderRecipient); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct RemainderRecipientUpdated { + #[allow(missing_docs)] + pub oldRemainderRecipient: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub newRemainderRecipient: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for RemainderRecipientUpdated { + type DataTuple<'a> = (); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "RemainderRecipientUpdated(address,address)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 40u8, 193u8, 224u8, 169u8, 25u8, 205u8, 59u8, 145u8, 214u8, 213u8, 22u8, + 65u8, 125u8, 237u8, 192u8, 106u8, 43u8, 215u8, 149u8, 74u8, 216u8, 150u8, + 3u8, 21u8, 52u8, 114u8, 80u8, 177u8, 174u8, 226u8, 164u8, 241u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + oldRemainderRecipient: topics.1, + newRemainderRecipient: topics.2, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + () + } + #[inline] + fn topics(&self) -> ::RustType { + ( + Self::SIGNATURE_HASH.into(), + self.oldRemainderRecipient.clone(), + self.newRemainderRecipient.clone(), + ) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.oldRemainderRecipient, + ); + out[2usize] = ::encode_topic( + &self.newRemainderRecipient, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for RemainderRecipientUpdated { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&RemainderRecipientUpdated> for alloy_sol_types::private::LogData { + #[inline] + fn from( + this: &RemainderRecipientUpdated, + ) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `ShareRecipientUpdated(address,address)` and selector `0xc7b7459ad1ab31862524bf0c4a5e6a8518c60f27607a5c483a58ea27e30c214c`. +```solidity +event ShareRecipientUpdated(address indexed oldShareRecipient, address indexed newShareRecipient); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct ShareRecipientUpdated { + #[allow(missing_docs)] + pub oldShareRecipient: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub newShareRecipient: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for ShareRecipientUpdated { + type DataTuple<'a> = (); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "ShareRecipientUpdated(address,address)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 199u8, 183u8, 69u8, 154u8, 209u8, 171u8, 49u8, 134u8, 37u8, 36u8, 191u8, + 12u8, 74u8, 94u8, 106u8, 133u8, 24u8, 198u8, 15u8, 39u8, 96u8, 122u8, + 92u8, 72u8, 58u8, 88u8, 234u8, 39u8, 227u8, 12u8, 33u8, 76u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + oldShareRecipient: topics.1, + newShareRecipient: topics.2, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + () + } + #[inline] + fn topics(&self) -> ::RustType { + ( + Self::SIGNATURE_HASH.into(), + self.oldShareRecipient.clone(), + self.newShareRecipient.clone(), + ) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.oldShareRecipient, + ); + out[2usize] = ::encode_topic( + &self.newShareRecipient, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for ShareRecipientUpdated { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&ShareRecipientUpdated> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &ShareRecipientUpdated) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + /**Constructor`. +```solidity +constructor(address _shareRecipient, address _remainderRecipient); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct constructorCall { + #[allow(missing_docs)] + pub _shareRecipient: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _remainderRecipient: alloy::sol_types::private::Address, + } + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: constructorCall) -> Self { + (value._shareRecipient, value._remainderRecipient) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for constructorCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _shareRecipient: tuple.0, + _remainderRecipient: tuple.1, + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolConstructor for constructorCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._shareRecipient, + ), + ::tokenize( + &self._remainderRecipient, + ), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `BASIS_POINT_SCALE()` and selector `0x5b201d83`. +```solidity +function BASIS_POINT_SCALE() external view returns (uint32); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct BASIS_POINT_SCALECall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`BASIS_POINT_SCALE()`](BASIS_POINT_SCALECall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct BASIS_POINT_SCALEReturn { + #[allow(missing_docs)] + pub _0: u32, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: BASIS_POINT_SCALECall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for BASIS_POINT_SCALECall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u32,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: BASIS_POINT_SCALEReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for BASIS_POINT_SCALEReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for BASIS_POINT_SCALECall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u32; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<32>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "BASIS_POINT_SCALE()"; + const SELECTOR: [u8; 4] = [91u8, 32u8, 29u8, 131u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: BASIS_POINT_SCALEReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: BASIS_POINT_SCALEReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `GROSS_SHARE_BPS()` and selector `0x712d7bb8`. +```solidity +function GROSS_SHARE_BPS() external view returns (uint32); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct GROSS_SHARE_BPSCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`GROSS_SHARE_BPS()`](GROSS_SHARE_BPSCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct GROSS_SHARE_BPSReturn { + #[allow(missing_docs)] + pub _0: u32, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: GROSS_SHARE_BPSCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for GROSS_SHARE_BPSCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u32,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: GROSS_SHARE_BPSReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for GROSS_SHARE_BPSReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for GROSS_SHARE_BPSCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u32; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<32>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "GROSS_SHARE_BPS()"; + const SELECTOR: [u8; 4] = [113u8, 45u8, 123u8, 184u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: GROSS_SHARE_BPSReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: GROSS_SHARE_BPSReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `NET_SHARE_BPS()` and selector `0x7b42d6c2`. +```solidity +function NET_SHARE_BPS() external view returns (uint32); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct NET_SHARE_BPSCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`NET_SHARE_BPS()`](NET_SHARE_BPSCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct NET_SHARE_BPSReturn { + #[allow(missing_docs)] + pub _0: u32, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: NET_SHARE_BPSCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for NET_SHARE_BPSCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u32,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: NET_SHARE_BPSReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for NET_SHARE_BPSReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for NET_SHARE_BPSCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u32; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<32>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "NET_SHARE_BPS()"; + const SELECTOR: [u8; 4] = [123u8, 66u8, 214u8, 194u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: NET_SHARE_BPSReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: NET_SHARE_BPSReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `getRecipientsAndAmounts(uint256,uint256,uint256,uint256)` and selector `0x54e7f42d`. +```solidity +function getRecipientsAndAmounts(uint256 _sequencerFeeRevenue, uint256 _baseFeeRevenue, uint256 _operatorFeeRevenue, uint256 _l1FeeRevenue) external view returns (ISharesCalculator.ShareInfo[] memory shareInfo_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getRecipientsAndAmountsCall { + #[allow(missing_docs)] + pub _sequencerFeeRevenue: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _baseFeeRevenue: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _operatorFeeRevenue: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _l1FeeRevenue: alloy::sol_types::private::primitives::aliases::U256, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`getRecipientsAndAmounts(uint256,uint256,uint256,uint256)`](getRecipientsAndAmountsCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getRecipientsAndAmountsReturn { + #[allow(missing_docs)] + pub shareInfo_: alloy::sol_types::private::Vec< + ::RustType, + >, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: getRecipientsAndAmountsCall) -> Self { + ( + value._sequencerFeeRevenue, + value._baseFeeRevenue, + value._operatorFeeRevenue, + value._l1FeeRevenue, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for getRecipientsAndAmountsCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _sequencerFeeRevenue: tuple.0, + _baseFeeRevenue: tuple.1, + _operatorFeeRevenue: tuple.2, + _l1FeeRevenue: tuple.3, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Array, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Vec< + ::RustType, + >, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: getRecipientsAndAmountsReturn) -> Self { + (value.shareInfo_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for getRecipientsAndAmountsReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { shareInfo_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for getRecipientsAndAmountsCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Vec< + ::RustType, + >; + type ReturnTuple<'a> = ( + alloy::sol_types::sol_data::Array, + ); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "getRecipientsAndAmounts(uint256,uint256,uint256,uint256)"; + const SELECTOR: [u8; 4] = [84u8, 231u8, 244u8, 45u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._sequencerFeeRevenue), + as alloy_sol_types::SolType>::tokenize(&self._baseFeeRevenue), + as alloy_sol_types::SolType>::tokenize(&self._operatorFeeRevenue), + as alloy_sol_types::SolType>::tokenize(&self._l1FeeRevenue), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: getRecipientsAndAmountsReturn = r.into(); + r.shareInfo_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: getRecipientsAndAmountsReturn = r.into(); + r.shareInfo_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `remainderRecipient()` and selector `0x29f33ec8`. +```solidity +function remainderRecipient() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct remainderRecipientCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`remainderRecipient()`](remainderRecipientCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct remainderRecipientReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: remainderRecipientCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for remainderRecipientCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: remainderRecipientReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for remainderRecipientReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for remainderRecipientCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "remainderRecipient()"; + const SELECTOR: [u8; 4] = [41u8, 243u8, 62u8, 200u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: remainderRecipientReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: remainderRecipientReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `setRemainderRecipient(address)` and selector `0x9c662fdd`. +```solidity +function setRemainderRecipient(address _newRemainderRecipient) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setRemainderRecipientCall { + #[allow(missing_docs)] + pub _newRemainderRecipient: alloy::sol_types::private::Address, + } + ///Container type for the return parameters of the [`setRemainderRecipient(address)`](setRemainderRecipientCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setRemainderRecipientReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: setRemainderRecipientCall) -> Self { + (value._newRemainderRecipient,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for setRemainderRecipientCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _newRemainderRecipient: tuple.0, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: setRemainderRecipientReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for setRemainderRecipientReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl setRemainderRecipientReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken< + '_, + > { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for setRemainderRecipientCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = setRemainderRecipientReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "setRemainderRecipient(address)"; + const SELECTOR: [u8; 4] = [156u8, 102u8, 47u8, 221u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._newRemainderRecipient, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + setRemainderRecipientReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `setShareRecipient(address)` and selector `0x4b012e9a`. +```solidity +function setShareRecipient(address _newShareRecipient) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setShareRecipientCall { + #[allow(missing_docs)] + pub _newShareRecipient: alloy::sol_types::private::Address, + } + ///Container type for the return parameters of the [`setShareRecipient(address)`](setShareRecipientCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setShareRecipientReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: setShareRecipientCall) -> Self { + (value._newShareRecipient,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for setShareRecipientCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _newShareRecipient: tuple.0, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: setShareRecipientReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for setShareRecipientReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl setShareRecipientReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for setShareRecipientCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = setShareRecipientReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "setShareRecipient(address)"; + const SELECTOR: [u8; 4] = [75u8, 1u8, 46u8, 154u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._newShareRecipient, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + setShareRecipientReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `shareRecipient()` and selector `0x96d842be`. +```solidity +function shareRecipient() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct shareRecipientCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`shareRecipient()`](shareRecipientCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct shareRecipientReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: shareRecipientCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for shareRecipientCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: shareRecipientReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for shareRecipientReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for shareRecipientCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "shareRecipient()"; + const SELECTOR: [u8; 4] = [150u8, 216u8, 66u8, 190u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: shareRecipientReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: shareRecipientReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `version()` and selector `0x54fd4d50`. +```solidity +function version() external view returns (string memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`version()`](versionCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for versionCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::String; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "version()"; + const SELECTOR: [u8; 4] = [84u8, 253u8, 77u8, 80u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + } + }; + ///Container for all the [`SuperchainRevSharesCalculator`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum SuperchainRevSharesCalculatorCalls { + #[allow(missing_docs)] + BASIS_POINT_SCALE(BASIS_POINT_SCALECall), + #[allow(missing_docs)] + GROSS_SHARE_BPS(GROSS_SHARE_BPSCall), + #[allow(missing_docs)] + NET_SHARE_BPS(NET_SHARE_BPSCall), + #[allow(missing_docs)] + getRecipientsAndAmounts(getRecipientsAndAmountsCall), + #[allow(missing_docs)] + remainderRecipient(remainderRecipientCall), + #[allow(missing_docs)] + setRemainderRecipient(setRemainderRecipientCall), + #[allow(missing_docs)] + setShareRecipient(setShareRecipientCall), + #[allow(missing_docs)] + shareRecipient(shareRecipientCall), + #[allow(missing_docs)] + version(versionCall), + } + impl SuperchainRevSharesCalculatorCalls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [41u8, 243u8, 62u8, 200u8], + [75u8, 1u8, 46u8, 154u8], + [84u8, 231u8, 244u8, 45u8], + [84u8, 253u8, 77u8, 80u8], + [91u8, 32u8, 29u8, 131u8], + [113u8, 45u8, 123u8, 184u8], + [123u8, 66u8, 214u8, 194u8], + [150u8, 216u8, 66u8, 190u8], + [156u8, 102u8, 47u8, 221u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(remainderRecipient), + ::core::stringify!(setShareRecipient), + ::core::stringify!(getRecipientsAndAmounts), + ::core::stringify!(version), + ::core::stringify!(BASIS_POINT_SCALE), + ::core::stringify!(GROSS_SHARE_BPS), + ::core::stringify!(NET_SHARE_BPS), + ::core::stringify!(shareRecipient), + ::core::stringify!(setRemainderRecipient), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for SuperchainRevSharesCalculatorCalls { + const NAME: &'static str = "SuperchainRevSharesCalculatorCalls"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 9usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::BASIS_POINT_SCALE(_) => { + ::SELECTOR + } + Self::GROSS_SHARE_BPS(_) => { + ::SELECTOR + } + Self::NET_SHARE_BPS(_) => { + ::SELECTOR + } + Self::getRecipientsAndAmounts(_) => { + ::SELECTOR + } + Self::remainderRecipient(_) => { + ::SELECTOR + } + Self::setRemainderRecipient(_) => { + ::SELECTOR + } + Self::setShareRecipient(_) => { + ::SELECTOR + } + Self::shareRecipient(_) => { + ::SELECTOR + } + Self::version(_) => ::SELECTOR, + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn remainderRecipient( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperchainRevSharesCalculatorCalls::remainderRecipient) + } + remainderRecipient + }, + { + fn setShareRecipient( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperchainRevSharesCalculatorCalls::setShareRecipient) + } + setShareRecipient + }, + { + fn getRecipientsAndAmounts( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + SuperchainRevSharesCalculatorCalls::getRecipientsAndAmounts, + ) + } + getRecipientsAndAmounts + }, + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(SuperchainRevSharesCalculatorCalls::version) + } + version + }, + { + fn BASIS_POINT_SCALE( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperchainRevSharesCalculatorCalls::BASIS_POINT_SCALE) + } + BASIS_POINT_SCALE + }, + { + fn GROSS_SHARE_BPS( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperchainRevSharesCalculatorCalls::GROSS_SHARE_BPS) + } + GROSS_SHARE_BPS + }, + { + fn NET_SHARE_BPS( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperchainRevSharesCalculatorCalls::NET_SHARE_BPS) + } + NET_SHARE_BPS + }, + { + fn shareRecipient( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperchainRevSharesCalculatorCalls::shareRecipient) + } + shareRecipient + }, + { + fn setRemainderRecipient( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + SuperchainRevSharesCalculatorCalls::setRemainderRecipient, + ) + } + setRemainderRecipient + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn remainderRecipient( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperchainRevSharesCalculatorCalls::remainderRecipient) + } + remainderRecipient + }, + { + fn setShareRecipient( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperchainRevSharesCalculatorCalls::setShareRecipient) + } + setShareRecipient + }, + { + fn getRecipientsAndAmounts( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + SuperchainRevSharesCalculatorCalls::getRecipientsAndAmounts, + ) + } + getRecipientsAndAmounts + }, + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperchainRevSharesCalculatorCalls::version) + } + version + }, + { + fn BASIS_POINT_SCALE( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperchainRevSharesCalculatorCalls::BASIS_POINT_SCALE) + } + BASIS_POINT_SCALE + }, + { + fn GROSS_SHARE_BPS( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperchainRevSharesCalculatorCalls::GROSS_SHARE_BPS) + } + GROSS_SHARE_BPS + }, + { + fn NET_SHARE_BPS( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperchainRevSharesCalculatorCalls::NET_SHARE_BPS) + } + NET_SHARE_BPS + }, + { + fn shareRecipient( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperchainRevSharesCalculatorCalls::shareRecipient) + } + shareRecipient + }, + { + fn setRemainderRecipient( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + SuperchainRevSharesCalculatorCalls::setRemainderRecipient, + ) + } + setRemainderRecipient + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::BASIS_POINT_SCALE(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::GROSS_SHARE_BPS(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::NET_SHARE_BPS(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::getRecipientsAndAmounts(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::remainderRecipient(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::setRemainderRecipient(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::setShareRecipient(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::shareRecipient(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::version(inner) => { + ::abi_encoded_size(inner) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::BASIS_POINT_SCALE(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::GROSS_SHARE_BPS(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::NET_SHARE_BPS(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::getRecipientsAndAmounts(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::remainderRecipient(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::setRemainderRecipient(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::setShareRecipient(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::shareRecipient(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::version(inner) => { + ::abi_encode_raw(inner, out) + } + } + } + } + ///Container for all the [`SuperchainRevSharesCalculator`](self) custom errors. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum SuperchainRevSharesCalculatorErrors { + #[allow(missing_docs)] + SharesCalculator_OnlyProxyAdminOwner(SharesCalculator_OnlyProxyAdminOwner), + #[allow(missing_docs)] + SharesCalculator_ZeroGrossShare(SharesCalculator_ZeroGrossShare), + } + impl SuperchainRevSharesCalculatorErrors { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [1u8, 116u8, 228u8, 38u8], + [103u8, 16u8, 44u8, 76u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(SharesCalculator_ZeroGrossShare), + ::core::stringify!(SharesCalculator_OnlyProxyAdminOwner), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for SuperchainRevSharesCalculatorErrors { + const NAME: &'static str = "SuperchainRevSharesCalculatorErrors"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 2usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::SharesCalculator_OnlyProxyAdminOwner(_) => { + ::SELECTOR + } + Self::SharesCalculator_ZeroGrossShare(_) => { + ::SELECTOR + } + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn SharesCalculator_ZeroGrossShare( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + SuperchainRevSharesCalculatorErrors::SharesCalculator_ZeroGrossShare, + ) + } + SharesCalculator_ZeroGrossShare + }, + { + fn SharesCalculator_OnlyProxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + SuperchainRevSharesCalculatorErrors::SharesCalculator_OnlyProxyAdminOwner, + ) + } + SharesCalculator_OnlyProxyAdminOwner + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn SharesCalculator_ZeroGrossShare( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + SuperchainRevSharesCalculatorErrors::SharesCalculator_ZeroGrossShare, + ) + } + SharesCalculator_ZeroGrossShare + }, + { + fn SharesCalculator_OnlyProxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + SuperchainRevSharesCalculatorErrors::SharesCalculator_OnlyProxyAdminOwner, + ) + } + SharesCalculator_OnlyProxyAdminOwner + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::SharesCalculator_OnlyProxyAdminOwner(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::SharesCalculator_ZeroGrossShare(inner) => { + ::abi_encoded_size( + inner, + ) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::SharesCalculator_OnlyProxyAdminOwner(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::SharesCalculator_ZeroGrossShare(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + } + } + } + ///Container for all the [`SuperchainRevSharesCalculator`](self) events. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum SuperchainRevSharesCalculatorEvents { + #[allow(missing_docs)] + RemainderRecipientUpdated(RemainderRecipientUpdated), + #[allow(missing_docs)] + ShareRecipientUpdated(ShareRecipientUpdated), + } + impl SuperchainRevSharesCalculatorEvents { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 32usize]] = &[ + [ + 40u8, 193u8, 224u8, 169u8, 25u8, 205u8, 59u8, 145u8, 214u8, 213u8, 22u8, + 65u8, 125u8, 237u8, 192u8, 106u8, 43u8, 215u8, 149u8, 74u8, 216u8, 150u8, + 3u8, 21u8, 52u8, 114u8, 80u8, 177u8, 174u8, 226u8, 164u8, 241u8, + ], + [ + 199u8, 183u8, 69u8, 154u8, 209u8, 171u8, 49u8, 134u8, 37u8, 36u8, 191u8, + 12u8, 74u8, 94u8, 106u8, 133u8, 24u8, 198u8, 15u8, 39u8, 96u8, 122u8, + 92u8, 72u8, 58u8, 88u8, 234u8, 39u8, 227u8, 12u8, 33u8, 76u8, + ], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(RemainderRecipientUpdated), + ::core::stringify!(ShareRecipientUpdated), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolEventInterface for SuperchainRevSharesCalculatorEvents { + const NAME: &'static str = "SuperchainRevSharesCalculatorEvents"; + const COUNT: usize = 2usize; + fn decode_raw_log( + topics: &[alloy_sol_types::Word], + data: &[u8], + ) -> alloy_sol_types::Result { + match topics.first().copied() { + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::RemainderRecipientUpdated) + } + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::ShareRecipientUpdated) + } + _ => { + alloy_sol_types::private::Err(alloy_sol_types::Error::InvalidLog { + name: ::NAME, + log: alloy_sol_types::private::Box::new( + alloy_sol_types::private::LogData::new_unchecked( + topics.to_vec(), + data.to_vec().into(), + ), + ), + }) + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for SuperchainRevSharesCalculatorEvents { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + match self { + Self::RemainderRecipientUpdated(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::ShareRecipientUpdated(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + } + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + match self { + Self::RemainderRecipientUpdated(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::ShareRecipientUpdated(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`SuperchainRevSharesCalculator`](self) contract instance. + +See the [wrapper's documentation](`SuperchainRevSharesCalculatorInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> SuperchainRevSharesCalculatorInstance { + SuperchainRevSharesCalculatorInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + _shareRecipient: alloy::sol_types::private::Address, + _remainderRecipient: alloy::sol_types::private::Address, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + SuperchainRevSharesCalculatorInstance::< + P, + N, + >::deploy(__provider, _shareRecipient, _remainderRecipient) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + _shareRecipient: alloy::sol_types::private::Address, + _remainderRecipient: alloy::sol_types::private::Address, + ) -> alloy_contract::RawCallBuilder { + SuperchainRevSharesCalculatorInstance::< + P, + N, + >::deploy_builder(__provider, _shareRecipient, _remainderRecipient) + } + /**A [`SuperchainRevSharesCalculator`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`SuperchainRevSharesCalculator`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct SuperchainRevSharesCalculatorInstance< + P, + N = alloy_contract::private::Ethereum, + > { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for SuperchainRevSharesCalculatorInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("SuperchainRevSharesCalculatorInstance") + .field(&self.address) + .finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > SuperchainRevSharesCalculatorInstance { + /**Creates a new wrapper around an on-chain [`SuperchainRevSharesCalculator`](self) contract instance. + +See the [wrapper's documentation](`SuperchainRevSharesCalculatorInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + _shareRecipient: alloy::sol_types::private::Address, + _remainderRecipient: alloy::sol_types::private::Address, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder( + __provider, + _shareRecipient, + _remainderRecipient, + ); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder( + __provider: P, + _shareRecipient: alloy::sol_types::private::Address, + _remainderRecipient: alloy::sol_types::private::Address, + ) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + [ + &BYTECODE[..], + &alloy_sol_types::SolConstructor::abi_encode( + &constructorCall { + _shareRecipient, + _remainderRecipient, + }, + )[..], + ] + .concat() + .into(), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl SuperchainRevSharesCalculatorInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider( + self, + ) -> SuperchainRevSharesCalculatorInstance { + SuperchainRevSharesCalculatorInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > SuperchainRevSharesCalculatorInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`BASIS_POINT_SCALE`] function. + pub fn BASIS_POINT_SCALE( + &self, + ) -> alloy_contract::SolCallBuilder<&P, BASIS_POINT_SCALECall, N> { + self.call_builder(&BASIS_POINT_SCALECall) + } + ///Creates a new call builder for the [`GROSS_SHARE_BPS`] function. + pub fn GROSS_SHARE_BPS( + &self, + ) -> alloy_contract::SolCallBuilder<&P, GROSS_SHARE_BPSCall, N> { + self.call_builder(&GROSS_SHARE_BPSCall) + } + ///Creates a new call builder for the [`NET_SHARE_BPS`] function. + pub fn NET_SHARE_BPS( + &self, + ) -> alloy_contract::SolCallBuilder<&P, NET_SHARE_BPSCall, N> { + self.call_builder(&NET_SHARE_BPSCall) + } + ///Creates a new call builder for the [`getRecipientsAndAmounts`] function. + pub fn getRecipientsAndAmounts( + &self, + _sequencerFeeRevenue: alloy::sol_types::private::primitives::aliases::U256, + _baseFeeRevenue: alloy::sol_types::private::primitives::aliases::U256, + _operatorFeeRevenue: alloy::sol_types::private::primitives::aliases::U256, + _l1FeeRevenue: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, getRecipientsAndAmountsCall, N> { + self.call_builder( + &getRecipientsAndAmountsCall { + _sequencerFeeRevenue, + _baseFeeRevenue, + _operatorFeeRevenue, + _l1FeeRevenue, + }, + ) + } + ///Creates a new call builder for the [`remainderRecipient`] function. + pub fn remainderRecipient( + &self, + ) -> alloy_contract::SolCallBuilder<&P, remainderRecipientCall, N> { + self.call_builder(&remainderRecipientCall) + } + ///Creates a new call builder for the [`setRemainderRecipient`] function. + pub fn setRemainderRecipient( + &self, + _newRemainderRecipient: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, setRemainderRecipientCall, N> { + self.call_builder( + &setRemainderRecipientCall { + _newRemainderRecipient, + }, + ) + } + ///Creates a new call builder for the [`setShareRecipient`] function. + pub fn setShareRecipient( + &self, + _newShareRecipient: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, setShareRecipientCall, N> { + self.call_builder( + &setShareRecipientCall { + _newShareRecipient, + }, + ) + } + ///Creates a new call builder for the [`shareRecipient`] function. + pub fn shareRecipient( + &self, + ) -> alloy_contract::SolCallBuilder<&P, shareRecipientCall, N> { + self.call_builder(&shareRecipientCall) + } + ///Creates a new call builder for the [`version`] function. + pub fn version(&self) -> alloy_contract::SolCallBuilder<&P, versionCall, N> { + self.call_builder(&versionCall) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > SuperchainRevSharesCalculatorInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + ///Creates a new event filter for the [`RemainderRecipientUpdated`] event. + pub fn RemainderRecipientUpdated_filter( + &self, + ) -> alloy_contract::Event<&P, RemainderRecipientUpdated, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`ShareRecipientUpdated`] event. + pub fn ShareRecipientUpdated_filter( + &self, + ) -> alloy_contract::Event<&P, ShareRecipientUpdated, N> { + self.event_filter::() + } + } +} diff --git a/bindings/rust/src/superchain_token_bridge.rs b/bindings/rust/src/superchain_token_bridge.rs new file mode 100644 index 000000000..be7ebb393 --- /dev/null +++ b/bindings/rust/src/superchain_token_bridge.rs @@ -0,0 +1,2146 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface SuperchainTokenBridge { + error InvalidCrossDomainSender(); + error InvalidERC7802(); + error Unauthorized(); + error ZeroAddress(); + + event RelayERC20(address indexed token, address indexed from, address indexed to, uint256 amount, uint256 source); + event SendERC20(address indexed token, address indexed from, address indexed to, uint256 amount, uint256 destination); + + function relayERC20(address _token, address _from, address _to, uint256 _amount) external; + function sendERC20(address _token, address _to, uint256 _amount, uint256 _chainId) external returns (bytes32 msgHash_); + function version() external view returns (string memory); +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "function", + "name": "relayERC20", + "inputs": [ + { + "name": "_token", + "type": "address", + "internalType": "address" + }, + { + "name": "_from", + "type": "address", + "internalType": "address" + }, + { + "name": "_to", + "type": "address", + "internalType": "address" + }, + { + "name": "_amount", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "sendERC20", + "inputs": [ + { + "name": "_token", + "type": "address", + "internalType": "address" + }, + { + "name": "_to", + "type": "address", + "internalType": "address" + }, + { + "name": "_amount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_chainId", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "msgHash_", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "version", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "view" + }, + { + "type": "event", + "name": "RelayERC20", + "inputs": [ + { + "name": "token", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "from", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "to", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + }, + { + "name": "source", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "SendERC20", + "inputs": [ + { + "name": "token", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "from", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "to", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + }, + { + "name": "destination", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "error", + "name": "InvalidCrossDomainSender", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidERC7802", + "inputs": [] + }, + { + "type": "error", + "name": "Unauthorized", + "inputs": [] + }, + { + "type": "error", + "name": "ZeroAddress", + "inputs": [] + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod SuperchainTokenBridge { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x6080604052348015600e575f80fd5b5061082d8061001c5f395ff3fe608060405234801561000f575f80fd5b506004361061003f575f3560e01c806354fd4d50146100435780637cfd6dbc14610095578063c1a433d8146100aa575b5f80fd5b61007f6040518060400160405280600581526020017f312e302e3100000000000000000000000000000000000000000000000000000081525081565b60405161008c91906106b3565b60405180910390f35b6100a86100a33660046106f0565b6100cb565b005b6100bd6100b836600461073e565b610300565b60405190815260200161008c565b3373420000000000000000000000000000000000002314610118576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8073420000000000000000000000000000000000002373ffffffffffffffffffffffffffffffffffffffff16637936cbee6040518163ffffffff1660e01b81526004016040805180830381865afa158015610176573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061019a9190610781565b909250905073ffffffffffffffffffffffffffffffffffffffff821630146101ee576040517fbc22e2aa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f18bf507700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8581166004830152602482018590528716906318bf5077906044015f604051808303815f87803b15801561025b575f80fd5b505af115801561026d573d5f803e3d5ffd5b505050508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167f434965d7426acf45a548f00783c067e9ad789c8c66444f0a5ad8941d5005be9386856040516102f0929190918252602082015260400190565b60405180910390a4505050505050565b5f73ffffffffffffffffffffffffffffffffffffffff841661034e576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f01ffc9a70000000000000000000000000000000000000000000000000000000081527f3333199400000000000000000000000000000000000000000000000000000000600482015273ffffffffffffffffffffffffffffffffffffffff8616906301ffc9a790602401602060405180830381865afa1580156103d6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103fa91906107ad565b610430576040517f0ed63dae00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f2b8c49e30000000000000000000000000000000000000000000000000000000081523360048201526024810184905273ffffffffffffffffffffffffffffffffffffffff861690632b8c49e3906044015f604051808303815f87803b15801561049b575f80fd5b505af11580156104ad573d5f803e3d5ffd5b50506040805173ffffffffffffffffffffffffffffffffffffffff89811660248301523360448301528816606482015260848082018890528251808303909101815260a490910182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f7cfd6dbc0000000000000000000000000000000000000000000000000000000017905290517f7056f41f0000000000000000000000000000000000000000000000000000000081529092507342000000000000000000000000000000000000239150637056f41f90610595908690309086906004016107cc565b6020604051808303815f875af11580156105b1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105d59190610809565b91508473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167f0247bfe63a1aaa59e073e20b172889babfda8d3273b5798e0e9ac4388e6dd11c8787604051610656929190918252602082015260400190565b60405180910390a450949350505050565b5f81518084528060208401602086015e5f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b602081525f6106c56020830184610667565b9392505050565b73ffffffffffffffffffffffffffffffffffffffff811681146106ed575f80fd5b50565b5f805f8060808587031215610703575f80fd5b843561070e816106cc565b9350602085013561071e816106cc565b9250604085013561072e816106cc565b9396929550929360600135925050565b5f805f8060808587031215610751575f80fd5b843561075c816106cc565b9350602085013561076c816106cc565b93969395505050506040820135916060013590565b5f8060408385031215610792575f80fd5b825161079d816106cc565b6020939093015192949293505050565b5f602082840312156107bd575f80fd5b815180151581146106c5575f80fd5b83815273ffffffffffffffffffffffffffffffffffffffff83166020820152606060408201525f6108006060830184610667565b95945050505050565b5f60208284031215610819575f80fd5b505191905056fea164736f6c6343000819000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R4\x80\x15`\x0EW_\x80\xFD[Pa\x08-\x80a\0\x1C_9_\xF3\xFE`\x80`@R4\x80\x15a\0\x0FW_\x80\xFD[P`\x046\x10a\0?W_5`\xE0\x1C\x80cT\xFDMP\x14a\0CW\x80c|\xFDm\xBC\x14a\0\x95W\x80c\xC1\xA43\xD8\x14a\0\xAAW[_\x80\xFD[a\0\x7F`@Q\x80`@\x01`@R\x80`\x05\x81R` \x01\x7F1.0.1\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\x81RP\x81V[`@Qa\0\x8C\x91\x90a\x06\xB3V[`@Q\x80\x91\x03\x90\xF3[a\0\xA8a\0\xA36`\x04a\x06\xF0V[a\0\xCBV[\0[a\0\xBDa\0\xB86`\x04a\x07>V[a\x03\0V[`@Q\x90\x81R` \x01a\0\x8CV[3sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0#\x14a\x01\x18W`@Q\x7F\x82\xB4)\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_\x80sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0#s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16cy6\xCB\xEE`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01`@\x80Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x01vW=_\x80>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x01\x9A\x91\x90a\x07\x81V[\x90\x92P\x90Ps\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x160\x14a\x01\xEEW`@Q\x7F\xBC\"\xE2\xAA\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\x01`@Q\x80\x91\x03\x90\xFD[`@Q\x7F\x18\xBFPw\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\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x85\x81\x16`\x04\x83\x01R`$\x82\x01\x85\x90R\x87\x16\x90c\x18\xBFPw\x90`D\x01_`@Q\x80\x83\x03\x81_\x87\x80;\x15\x80\x15a\x02[W_\x80\xFD[PZ\xF1\x15\x80\x15a\x02mW=_\x80>=_\xFD[PPPP\x83s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x85s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x87s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7FCIe\xD7Bj\xCFE\xA5H\xF0\x07\x83\xC0g\xE9\xADx\x9C\x8CfDO\nZ\xD8\x94\x1DP\x05\xBE\x93\x86\x85`@Qa\x02\xF0\x92\x91\x90\x91\x82R` \x82\x01R`@\x01\x90V[`@Q\x80\x91\x03\x90\xA4PPPPPPV[_s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x16a\x03NW`@Q\x7F\xD9.#=\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\x01`@Q\x80\x91\x03\x90\xFD[`@Q\x7F\x01\xFF\xC9\xA7\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\x7F33\x19\x94\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`\x04\x82\x01Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x86\x16\x90c\x01\xFF\xC9\xA7\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x03\xD6W=_\x80>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x03\xFA\x91\x90a\x07\xADV[a\x040W`@Q\x7F\x0E\xD6=\xAE\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\x01`@Q\x80\x91\x03\x90\xFD[`@Q\x7F+\x8CI\xE3\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\x81R3`\x04\x82\x01R`$\x81\x01\x84\x90Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x86\x16\x90c+\x8CI\xE3\x90`D\x01_`@Q\x80\x83\x03\x81_\x87\x80;\x15\x80\x15a\x04\x9BW_\x80\xFD[PZ\xF1\x15\x80\x15a\x04\xADW=_\x80>=_\xFD[PP`@\x80Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x89\x81\x16`$\x83\x01R3`D\x83\x01R\x88\x16`d\x82\x01R`\x84\x80\x82\x01\x88\x90R\x82Q\x80\x83\x03\x90\x91\x01\x81R`\xA4\x90\x91\x01\x82R` \x81\x01\x80Q{\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F|\xFDm\xBC\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\x17\x90R\x90Q\x7FpV\xF4\x1F\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\x90\x92PsB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0#\x91PcpV\xF4\x1F\x90a\x05\x95\x90\x86\x900\x90\x86\x90`\x04\x01a\x07\xCCV[` `@Q\x80\x83\x03\x81_\x87Z\xF1\x15\x80\x15a\x05\xB1W=_\x80>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x05\xD5\x91\x90a\x08\tV[\x91P\x84s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x163s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x87s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\x02G\xBF\xE6:\x1A\xAAY\xE0s\xE2\x0B\x17(\x89\xBA\xBF\xDA\x8D2s\xB5y\x8E\x0E\x9A\xC48\x8Em\xD1\x1C\x87\x87`@Qa\x06V\x92\x91\x90\x91\x82R` \x82\x01R`@\x01\x90V[`@Q\x80\x91\x03\x90\xA4P\x94\x93PPPPV[_\x81Q\x80\x84R\x80` \x84\x01` \x86\x01^_` \x82\x86\x01\x01R` \x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0`\x1F\x83\x01\x16\x85\x01\x01\x91PP\x92\x91PPV[` \x81R_a\x06\xC5` \x83\x01\x84a\x06gV[\x93\x92PPPV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x06\xEDW_\x80\xFD[PV[_\x80_\x80`\x80\x85\x87\x03\x12\x15a\x07\x03W_\x80\xFD[\x845a\x07\x0E\x81a\x06\xCCV[\x93P` \x85\x015a\x07\x1E\x81a\x06\xCCV[\x92P`@\x85\x015a\x07.\x81a\x06\xCCV[\x93\x96\x92\x95P\x92\x93``\x015\x92PPV[_\x80_\x80`\x80\x85\x87\x03\x12\x15a\x07QW_\x80\xFD[\x845a\x07\\\x81a\x06\xCCV[\x93P` \x85\x015a\x07l\x81a\x06\xCCV[\x93\x96\x93\x95PPPP`@\x82\x015\x91``\x015\x90V[_\x80`@\x83\x85\x03\x12\x15a\x07\x92W_\x80\xFD[\x82Qa\x07\x9D\x81a\x06\xCCV[` \x93\x90\x93\x01Q\x92\x94\x92\x93PPPV[_` \x82\x84\x03\x12\x15a\x07\xBDW_\x80\xFD[\x81Q\x80\x15\x15\x81\x14a\x06\xC5W_\x80\xFD[\x83\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x16` \x82\x01R```@\x82\x01R_a\x08\0``\x83\x01\x84a\x06gV[\x95\x94PPPPPV[_` \x82\x84\x03\x12\x15a\x08\x19W_\x80\xFD[PQ\x91\x90PV\xFE\xA1dsolcC\0\x08\x19\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x608060405234801561000f575f80fd5b506004361061003f575f3560e01c806354fd4d50146100435780637cfd6dbc14610095578063c1a433d8146100aa575b5f80fd5b61007f6040518060400160405280600581526020017f312e302e3100000000000000000000000000000000000000000000000000000081525081565b60405161008c91906106b3565b60405180910390f35b6100a86100a33660046106f0565b6100cb565b005b6100bd6100b836600461073e565b610300565b60405190815260200161008c565b3373420000000000000000000000000000000000002314610118576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8073420000000000000000000000000000000000002373ffffffffffffffffffffffffffffffffffffffff16637936cbee6040518163ffffffff1660e01b81526004016040805180830381865afa158015610176573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061019a9190610781565b909250905073ffffffffffffffffffffffffffffffffffffffff821630146101ee576040517fbc22e2aa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f18bf507700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8581166004830152602482018590528716906318bf5077906044015f604051808303815f87803b15801561025b575f80fd5b505af115801561026d573d5f803e3d5ffd5b505050508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167f434965d7426acf45a548f00783c067e9ad789c8c66444f0a5ad8941d5005be9386856040516102f0929190918252602082015260400190565b60405180910390a4505050505050565b5f73ffffffffffffffffffffffffffffffffffffffff841661034e576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f01ffc9a70000000000000000000000000000000000000000000000000000000081527f3333199400000000000000000000000000000000000000000000000000000000600482015273ffffffffffffffffffffffffffffffffffffffff8616906301ffc9a790602401602060405180830381865afa1580156103d6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103fa91906107ad565b610430576040517f0ed63dae00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f2b8c49e30000000000000000000000000000000000000000000000000000000081523360048201526024810184905273ffffffffffffffffffffffffffffffffffffffff861690632b8c49e3906044015f604051808303815f87803b15801561049b575f80fd5b505af11580156104ad573d5f803e3d5ffd5b50506040805173ffffffffffffffffffffffffffffffffffffffff89811660248301523360448301528816606482015260848082018890528251808303909101815260a490910182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f7cfd6dbc0000000000000000000000000000000000000000000000000000000017905290517f7056f41f0000000000000000000000000000000000000000000000000000000081529092507342000000000000000000000000000000000000239150637056f41f90610595908690309086906004016107cc565b6020604051808303815f875af11580156105b1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105d59190610809565b91508473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167f0247bfe63a1aaa59e073e20b172889babfda8d3273b5798e0e9ac4388e6dd11c8787604051610656929190918252602082015260400190565b60405180910390a450949350505050565b5f81518084528060208401602086015e5f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b602081525f6106c56020830184610667565b9392505050565b73ffffffffffffffffffffffffffffffffffffffff811681146106ed575f80fd5b50565b5f805f8060808587031215610703575f80fd5b843561070e816106cc565b9350602085013561071e816106cc565b9250604085013561072e816106cc565b9396929550929360600135925050565b5f805f8060808587031215610751575f80fd5b843561075c816106cc565b9350602085013561076c816106cc565b93969395505050506040820135916060013590565b5f8060408385031215610792575f80fd5b825161079d816106cc565b6020939093015192949293505050565b5f602082840312156107bd575f80fd5b815180151581146106c5575f80fd5b83815273ffffffffffffffffffffffffffffffffffffffff83166020820152606060408201525f6108006060830184610667565b95945050505050565b5f60208284031215610819575f80fd5b505191905056fea164736f6c6343000819000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R4\x80\x15a\0\x0FW_\x80\xFD[P`\x046\x10a\0?W_5`\xE0\x1C\x80cT\xFDMP\x14a\0CW\x80c|\xFDm\xBC\x14a\0\x95W\x80c\xC1\xA43\xD8\x14a\0\xAAW[_\x80\xFD[a\0\x7F`@Q\x80`@\x01`@R\x80`\x05\x81R` \x01\x7F1.0.1\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\x81RP\x81V[`@Qa\0\x8C\x91\x90a\x06\xB3V[`@Q\x80\x91\x03\x90\xF3[a\0\xA8a\0\xA36`\x04a\x06\xF0V[a\0\xCBV[\0[a\0\xBDa\0\xB86`\x04a\x07>V[a\x03\0V[`@Q\x90\x81R` \x01a\0\x8CV[3sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0#\x14a\x01\x18W`@Q\x7F\x82\xB4)\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_\x80sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0#s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16cy6\xCB\xEE`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01`@\x80Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x01vW=_\x80>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x01\x9A\x91\x90a\x07\x81V[\x90\x92P\x90Ps\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x160\x14a\x01\xEEW`@Q\x7F\xBC\"\xE2\xAA\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\x01`@Q\x80\x91\x03\x90\xFD[`@Q\x7F\x18\xBFPw\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\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x85\x81\x16`\x04\x83\x01R`$\x82\x01\x85\x90R\x87\x16\x90c\x18\xBFPw\x90`D\x01_`@Q\x80\x83\x03\x81_\x87\x80;\x15\x80\x15a\x02[W_\x80\xFD[PZ\xF1\x15\x80\x15a\x02mW=_\x80>=_\xFD[PPPP\x83s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x85s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x87s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7FCIe\xD7Bj\xCFE\xA5H\xF0\x07\x83\xC0g\xE9\xADx\x9C\x8CfDO\nZ\xD8\x94\x1DP\x05\xBE\x93\x86\x85`@Qa\x02\xF0\x92\x91\x90\x91\x82R` \x82\x01R`@\x01\x90V[`@Q\x80\x91\x03\x90\xA4PPPPPPV[_s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x16a\x03NW`@Q\x7F\xD9.#=\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\x01`@Q\x80\x91\x03\x90\xFD[`@Q\x7F\x01\xFF\xC9\xA7\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\x7F33\x19\x94\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`\x04\x82\x01Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x86\x16\x90c\x01\xFF\xC9\xA7\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x03\xD6W=_\x80>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x03\xFA\x91\x90a\x07\xADV[a\x040W`@Q\x7F\x0E\xD6=\xAE\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\x01`@Q\x80\x91\x03\x90\xFD[`@Q\x7F+\x8CI\xE3\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\x81R3`\x04\x82\x01R`$\x81\x01\x84\x90Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x86\x16\x90c+\x8CI\xE3\x90`D\x01_`@Q\x80\x83\x03\x81_\x87\x80;\x15\x80\x15a\x04\x9BW_\x80\xFD[PZ\xF1\x15\x80\x15a\x04\xADW=_\x80>=_\xFD[PP`@\x80Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x89\x81\x16`$\x83\x01R3`D\x83\x01R\x88\x16`d\x82\x01R`\x84\x80\x82\x01\x88\x90R\x82Q\x80\x83\x03\x90\x91\x01\x81R`\xA4\x90\x91\x01\x82R` \x81\x01\x80Q{\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F|\xFDm\xBC\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\x17\x90R\x90Q\x7FpV\xF4\x1F\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\x90\x92PsB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0#\x91PcpV\xF4\x1F\x90a\x05\x95\x90\x86\x900\x90\x86\x90`\x04\x01a\x07\xCCV[` `@Q\x80\x83\x03\x81_\x87Z\xF1\x15\x80\x15a\x05\xB1W=_\x80>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x05\xD5\x91\x90a\x08\tV[\x91P\x84s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x163s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x87s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\x02G\xBF\xE6:\x1A\xAAY\xE0s\xE2\x0B\x17(\x89\xBA\xBF\xDA\x8D2s\xB5y\x8E\x0E\x9A\xC48\x8Em\xD1\x1C\x87\x87`@Qa\x06V\x92\x91\x90\x91\x82R` \x82\x01R`@\x01\x90V[`@Q\x80\x91\x03\x90\xA4P\x94\x93PPPPV[_\x81Q\x80\x84R\x80` \x84\x01` \x86\x01^_` \x82\x86\x01\x01R` \x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0`\x1F\x83\x01\x16\x85\x01\x01\x91PP\x92\x91PPV[` \x81R_a\x06\xC5` \x83\x01\x84a\x06gV[\x93\x92PPPV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x06\xEDW_\x80\xFD[PV[_\x80_\x80`\x80\x85\x87\x03\x12\x15a\x07\x03W_\x80\xFD[\x845a\x07\x0E\x81a\x06\xCCV[\x93P` \x85\x015a\x07\x1E\x81a\x06\xCCV[\x92P`@\x85\x015a\x07.\x81a\x06\xCCV[\x93\x96\x92\x95P\x92\x93``\x015\x92PPV[_\x80_\x80`\x80\x85\x87\x03\x12\x15a\x07QW_\x80\xFD[\x845a\x07\\\x81a\x06\xCCV[\x93P` \x85\x015a\x07l\x81a\x06\xCCV[\x93\x96\x93\x95PPPP`@\x82\x015\x91``\x015\x90V[_\x80`@\x83\x85\x03\x12\x15a\x07\x92W_\x80\xFD[\x82Qa\x07\x9D\x81a\x06\xCCV[` \x93\x90\x93\x01Q\x92\x94\x92\x93PPPV[_` \x82\x84\x03\x12\x15a\x07\xBDW_\x80\xFD[\x81Q\x80\x15\x15\x81\x14a\x06\xC5W_\x80\xFD[\x83\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x16` \x82\x01R```@\x82\x01R_a\x08\0``\x83\x01\x84a\x06gV[\x95\x94PPPPPV[_` \x82\x84\x03\x12\x15a\x08\x19W_\x80\xFD[PQ\x91\x90PV\xFE\xA1dsolcC\0\x08\x19\0\n", + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidCrossDomainSender()` and selector `0xbc22e2aa`. +```solidity +error InvalidCrossDomainSender(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidCrossDomainSender; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: InvalidCrossDomainSender) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for InvalidCrossDomainSender { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidCrossDomainSender { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidCrossDomainSender()"; + const SELECTOR: [u8; 4] = [188u8, 34u8, 226u8, 170u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidERC7802()` and selector `0x0ed63dae`. +```solidity +error InvalidERC7802(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidERC7802; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InvalidERC7802) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InvalidERC7802 { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidERC7802 { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidERC7802()"; + const SELECTOR: [u8; 4] = [14u8, 214u8, 61u8, 174u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `Unauthorized()` and selector `0x82b42900`. +```solidity +error Unauthorized(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct Unauthorized; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: Unauthorized) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for Unauthorized { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for Unauthorized { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "Unauthorized()"; + const SELECTOR: [u8; 4] = [130u8, 180u8, 41u8, 0u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ZeroAddress()` and selector `0xd92e233d`. +```solidity +error ZeroAddress(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ZeroAddress; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ZeroAddress) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ZeroAddress { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ZeroAddress { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ZeroAddress()"; + const SELECTOR: [u8; 4] = [217u8, 46u8, 35u8, 61u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `RelayERC20(address,address,address,uint256,uint256)` and selector `0x434965d7426acf45a548f00783c067e9ad789c8c66444f0a5ad8941d5005be93`. +```solidity +event RelayERC20(address indexed token, address indexed from, address indexed to, uint256 amount, uint256 source); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct RelayERC20 { + #[allow(missing_docs)] + pub token: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub from: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub amount: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub source: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for RelayERC20 { + type DataTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + ); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "RelayERC20(address,address,address,uint256,uint256)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 67u8, 73u8, 101u8, 215u8, 66u8, 106u8, 207u8, 69u8, 165u8, 72u8, 240u8, + 7u8, 131u8, 192u8, 103u8, 233u8, 173u8, 120u8, 156u8, 140u8, 102u8, 68u8, + 79u8, 10u8, 90u8, 216u8, 148u8, 29u8, 80u8, 5u8, 190u8, 147u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + token: topics.1, + from: topics.2, + to: topics.3, + amount: data.0, + source: data.1, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.amount), + as alloy_sol_types::SolType>::tokenize(&self.source), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + ( + Self::SIGNATURE_HASH.into(), + self.token.clone(), + self.from.clone(), + self.to.clone(), + ) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.token, + ); + out[2usize] = ::encode_topic( + &self.from, + ); + out[3usize] = ::encode_topic( + &self.to, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for RelayERC20 { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&RelayERC20> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &RelayERC20) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `SendERC20(address,address,address,uint256,uint256)` and selector `0x0247bfe63a1aaa59e073e20b172889babfda8d3273b5798e0e9ac4388e6dd11c`. +```solidity +event SendERC20(address indexed token, address indexed from, address indexed to, uint256 amount, uint256 destination); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct SendERC20 { + #[allow(missing_docs)] + pub token: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub from: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub amount: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub destination: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for SendERC20 { + type DataTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + ); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "SendERC20(address,address,address,uint256,uint256)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 2u8, 71u8, 191u8, 230u8, 58u8, 26u8, 170u8, 89u8, 224u8, 115u8, 226u8, + 11u8, 23u8, 40u8, 137u8, 186u8, 191u8, 218u8, 141u8, 50u8, 115u8, 181u8, + 121u8, 142u8, 14u8, 154u8, 196u8, 56u8, 142u8, 109u8, 209u8, 28u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + token: topics.1, + from: topics.2, + to: topics.3, + amount: data.0, + destination: data.1, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.amount), + as alloy_sol_types::SolType>::tokenize(&self.destination), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + ( + Self::SIGNATURE_HASH.into(), + self.token.clone(), + self.from.clone(), + self.to.clone(), + ) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.token, + ); + out[2usize] = ::encode_topic( + &self.from, + ); + out[3usize] = ::encode_topic( + &self.to, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for SendERC20 { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&SendERC20> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &SendERC20) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `relayERC20(address,address,address,uint256)` and selector `0x7cfd6dbc`. +```solidity +function relayERC20(address _token, address _from, address _to, uint256 _amount) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct relayERC20Call { + #[allow(missing_docs)] + pub _token: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _from: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _amount: alloy::sol_types::private::primitives::aliases::U256, + } + ///Container type for the return parameters of the [`relayERC20(address,address,address,uint256)`](relayERC20Call) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct relayERC20Return {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: relayERC20Call) -> Self { + (value._token, value._from, value._to, value._amount) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for relayERC20Call { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _token: tuple.0, + _from: tuple.1, + _to: tuple.2, + _amount: tuple.3, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: relayERC20Return) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for relayERC20Return { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl relayERC20Return { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for relayERC20Call { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = relayERC20Return; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "relayERC20(address,address,address,uint256)"; + const SELECTOR: [u8; 4] = [124u8, 253u8, 109u8, 188u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._token, + ), + ::tokenize( + &self._from, + ), + ::tokenize( + &self._to, + ), + as alloy_sol_types::SolType>::tokenize(&self._amount), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + relayERC20Return::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `sendERC20(address,address,uint256,uint256)` and selector `0xc1a433d8`. +```solidity +function sendERC20(address _token, address _to, uint256 _amount, uint256 _chainId) external returns (bytes32 msgHash_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct sendERC20Call { + #[allow(missing_docs)] + pub _token: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _amount: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _chainId: alloy::sol_types::private::primitives::aliases::U256, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`sendERC20(address,address,uint256,uint256)`](sendERC20Call) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct sendERC20Return { + #[allow(missing_docs)] + pub msgHash_: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: sendERC20Call) -> Self { + (value._token, value._to, value._amount, value._chainId) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for sendERC20Call { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _token: tuple.0, + _to: tuple.1, + _amount: tuple.2, + _chainId: tuple.3, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: sendERC20Return) -> Self { + (value.msgHash_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for sendERC20Return { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { msgHash_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for sendERC20Call { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::FixedBytes<32>; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "sendERC20(address,address,uint256,uint256)"; + const SELECTOR: [u8; 4] = [193u8, 164u8, 51u8, 216u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._token, + ), + ::tokenize( + &self._to, + ), + as alloy_sol_types::SolType>::tokenize(&self._amount), + as alloy_sol_types::SolType>::tokenize(&self._chainId), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: sendERC20Return = r.into(); + r.msgHash_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: sendERC20Return = r.into(); + r.msgHash_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `version()` and selector `0x54fd4d50`. +```solidity +function version() external view returns (string memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`version()`](versionCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for versionCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::String; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "version()"; + const SELECTOR: [u8; 4] = [84u8, 253u8, 77u8, 80u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + } + }; + ///Container for all the [`SuperchainTokenBridge`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum SuperchainTokenBridgeCalls { + #[allow(missing_docs)] + relayERC20(relayERC20Call), + #[allow(missing_docs)] + sendERC20(sendERC20Call), + #[allow(missing_docs)] + version(versionCall), + } + impl SuperchainTokenBridgeCalls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [84u8, 253u8, 77u8, 80u8], + [124u8, 253u8, 109u8, 188u8], + [193u8, 164u8, 51u8, 216u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(version), + ::core::stringify!(relayERC20), + ::core::stringify!(sendERC20), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for SuperchainTokenBridgeCalls { + const NAME: &'static str = "SuperchainTokenBridgeCalls"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 3usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::relayERC20(_) => { + ::SELECTOR + } + Self::sendERC20(_) => { + ::SELECTOR + } + Self::version(_) => ::SELECTOR, + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(SuperchainTokenBridgeCalls::version) + } + version + }, + { + fn relayERC20( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperchainTokenBridgeCalls::relayERC20) + } + relayERC20 + }, + { + fn sendERC20( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(SuperchainTokenBridgeCalls::sendERC20) + } + sendERC20 + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperchainTokenBridgeCalls::version) + } + version + }, + { + fn relayERC20( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperchainTokenBridgeCalls::relayERC20) + } + relayERC20 + }, + { + fn sendERC20( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperchainTokenBridgeCalls::sendERC20) + } + sendERC20 + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::relayERC20(inner) => { + ::abi_encoded_size(inner) + } + Self::sendERC20(inner) => { + ::abi_encoded_size(inner) + } + Self::version(inner) => { + ::abi_encoded_size(inner) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::relayERC20(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::sendERC20(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::version(inner) => { + ::abi_encode_raw(inner, out) + } + } + } + } + ///Container for all the [`SuperchainTokenBridge`](self) custom errors. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum SuperchainTokenBridgeErrors { + #[allow(missing_docs)] + InvalidCrossDomainSender(InvalidCrossDomainSender), + #[allow(missing_docs)] + InvalidERC7802(InvalidERC7802), + #[allow(missing_docs)] + Unauthorized(Unauthorized), + #[allow(missing_docs)] + ZeroAddress(ZeroAddress), + } + impl SuperchainTokenBridgeErrors { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [14u8, 214u8, 61u8, 174u8], + [130u8, 180u8, 41u8, 0u8], + [188u8, 34u8, 226u8, 170u8], + [217u8, 46u8, 35u8, 61u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(InvalidERC7802), + ::core::stringify!(Unauthorized), + ::core::stringify!(InvalidCrossDomainSender), + ::core::stringify!(ZeroAddress), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for SuperchainTokenBridgeErrors { + const NAME: &'static str = "SuperchainTokenBridgeErrors"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 4usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::InvalidCrossDomainSender(_) => { + ::SELECTOR + } + Self::InvalidERC7802(_) => { + ::SELECTOR + } + Self::Unauthorized(_) => { + ::SELECTOR + } + Self::ZeroAddress(_) => { + ::SELECTOR + } + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn InvalidERC7802( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperchainTokenBridgeErrors::InvalidERC7802) + } + InvalidERC7802 + }, + { + fn Unauthorized( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(SuperchainTokenBridgeErrors::Unauthorized) + } + Unauthorized + }, + { + fn InvalidCrossDomainSender( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SuperchainTokenBridgeErrors::InvalidCrossDomainSender) + } + InvalidCrossDomainSender + }, + { + fn ZeroAddress( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(SuperchainTokenBridgeErrors::ZeroAddress) + } + ZeroAddress + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn InvalidERC7802( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperchainTokenBridgeErrors::InvalidERC7802) + } + InvalidERC7802 + }, + { + fn Unauthorized( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperchainTokenBridgeErrors::Unauthorized) + } + Unauthorized + }, + { + fn InvalidCrossDomainSender( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperchainTokenBridgeErrors::InvalidCrossDomainSender) + } + InvalidCrossDomainSender + }, + { + fn ZeroAddress( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SuperchainTokenBridgeErrors::ZeroAddress) + } + ZeroAddress + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::InvalidCrossDomainSender(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::InvalidERC7802(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::Unauthorized(inner) => { + ::abi_encoded_size(inner) + } + Self::ZeroAddress(inner) => { + ::abi_encoded_size(inner) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::InvalidCrossDomainSender(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidERC7802(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::Unauthorized(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ZeroAddress(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + } + } + } + ///Container for all the [`SuperchainTokenBridge`](self) events. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum SuperchainTokenBridgeEvents { + #[allow(missing_docs)] + RelayERC20(RelayERC20), + #[allow(missing_docs)] + SendERC20(SendERC20), + } + impl SuperchainTokenBridgeEvents { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 32usize]] = &[ + [ + 2u8, 71u8, 191u8, 230u8, 58u8, 26u8, 170u8, 89u8, 224u8, 115u8, 226u8, + 11u8, 23u8, 40u8, 137u8, 186u8, 191u8, 218u8, 141u8, 50u8, 115u8, 181u8, + 121u8, 142u8, 14u8, 154u8, 196u8, 56u8, 142u8, 109u8, 209u8, 28u8, + ], + [ + 67u8, 73u8, 101u8, 215u8, 66u8, 106u8, 207u8, 69u8, 165u8, 72u8, 240u8, + 7u8, 131u8, 192u8, 103u8, 233u8, 173u8, 120u8, 156u8, 140u8, 102u8, 68u8, + 79u8, 10u8, 90u8, 216u8, 148u8, 29u8, 80u8, 5u8, 190u8, 147u8, + ], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(SendERC20), + ::core::stringify!(RelayERC20), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolEventInterface for SuperchainTokenBridgeEvents { + const NAME: &'static str = "SuperchainTokenBridgeEvents"; + const COUNT: usize = 2usize; + fn decode_raw_log( + topics: &[alloy_sol_types::Word], + data: &[u8], + ) -> alloy_sol_types::Result { + match topics.first().copied() { + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::RelayERC20) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::SendERC20) + } + _ => { + alloy_sol_types::private::Err(alloy_sol_types::Error::InvalidLog { + name: ::NAME, + log: alloy_sol_types::private::Box::new( + alloy_sol_types::private::LogData::new_unchecked( + topics.to_vec(), + data.to_vec().into(), + ), + ), + }) + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for SuperchainTokenBridgeEvents { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + match self { + Self::RelayERC20(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::SendERC20(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + } + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + match self { + Self::RelayERC20(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::SendERC20(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`SuperchainTokenBridge`](self) contract instance. + +See the [wrapper's documentation](`SuperchainTokenBridgeInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> SuperchainTokenBridgeInstance { + SuperchainTokenBridgeInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + SuperchainTokenBridgeInstance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + SuperchainTokenBridgeInstance::::deploy_builder(__provider) + } + /**A [`SuperchainTokenBridge`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`SuperchainTokenBridge`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct SuperchainTokenBridgeInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for SuperchainTokenBridgeInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("SuperchainTokenBridgeInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > SuperchainTokenBridgeInstance { + /**Creates a new wrapper around an on-chain [`SuperchainTokenBridge`](self) contract instance. + +See the [wrapper's documentation](`SuperchainTokenBridgeInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl SuperchainTokenBridgeInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> SuperchainTokenBridgeInstance { + SuperchainTokenBridgeInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > SuperchainTokenBridgeInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`relayERC20`] function. + pub fn relayERC20( + &self, + _token: alloy::sol_types::private::Address, + _from: alloy::sol_types::private::Address, + _to: alloy::sol_types::private::Address, + _amount: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, relayERC20Call, N> { + self.call_builder( + &relayERC20Call { + _token, + _from, + _to, + _amount, + }, + ) + } + ///Creates a new call builder for the [`sendERC20`] function. + pub fn sendERC20( + &self, + _token: alloy::sol_types::private::Address, + _to: alloy::sol_types::private::Address, + _amount: alloy::sol_types::private::primitives::aliases::U256, + _chainId: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, sendERC20Call, N> { + self.call_builder( + &sendERC20Call { + _token, + _to, + _amount, + _chainId, + }, + ) + } + ///Creates a new call builder for the [`version`] function. + pub fn version(&self) -> alloy_contract::SolCallBuilder<&P, versionCall, N> { + self.call_builder(&versionCall) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > SuperchainTokenBridgeInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + ///Creates a new event filter for the [`RelayERC20`] event. + pub fn RelayERC20_filter(&self) -> alloy_contract::Event<&P, RelayERC20, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`SendERC20`] event. + pub fn SendERC20_filter(&self) -> alloy_contract::Event<&P, SendERC20, N> { + self.event_filter::() + } + } +} diff --git a/bindings/rust/src/system_config.rs b/bindings/rust/src/system_config.rs new file mode 100644 index 000000000..ede244182 --- /dev/null +++ b/bindings/rust/src/system_config.rs @@ -0,0 +1,16267 @@ +///Module containing a contract's types and functions. +/** + +```solidity +library IResourceMetering { + struct ResourceConfig { uint32 maxResourceLimit; uint8 elasticityMultiplier; uint8 baseFeeMaxChangeDenominator; uint32 minimumBaseFee; uint32 systemTxMaxGas; uint128 maximumBaseFee; } +} +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod IResourceMetering { + use super::*; + use alloy::sol_types as alloy_sol_types; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**```solidity +struct ResourceConfig { uint32 maxResourceLimit; uint8 elasticityMultiplier; uint8 baseFeeMaxChangeDenominator; uint32 minimumBaseFee; uint32 systemTxMaxGas; uint128 maximumBaseFee; } +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ResourceConfig { + #[allow(missing_docs)] + pub maxResourceLimit: u32, + #[allow(missing_docs)] + pub elasticityMultiplier: u8, + #[allow(missing_docs)] + pub baseFeeMaxChangeDenominator: u8, + #[allow(missing_docs)] + pub minimumBaseFee: u32, + #[allow(missing_docs)] + pub systemTxMaxGas: u32, + #[allow(missing_docs)] + pub maximumBaseFee: u128, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Uint<32>, + alloy::sol_types::sol_data::Uint<8>, + alloy::sol_types::sol_data::Uint<8>, + alloy::sol_types::sol_data::Uint<32>, + alloy::sol_types::sol_data::Uint<32>, + alloy::sol_types::sol_data::Uint<128>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u32, u8, u8, u32, u32, u128); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ResourceConfig) -> Self { + ( + value.maxResourceLimit, + value.elasticityMultiplier, + value.baseFeeMaxChangeDenominator, + value.minimumBaseFee, + value.systemTxMaxGas, + value.maximumBaseFee, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ResourceConfig { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + maxResourceLimit: tuple.0, + elasticityMultiplier: tuple.1, + baseFeeMaxChangeDenominator: tuple.2, + minimumBaseFee: tuple.3, + systemTxMaxGas: tuple.4, + maximumBaseFee: tuple.5, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolValue for ResourceConfig { + type SolType = Self; + } + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for ResourceConfig { + #[inline] + fn stv_to_tokens(&self) -> ::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.maxResourceLimit), + as alloy_sol_types::SolType>::tokenize(&self.elasticityMultiplier), + as alloy_sol_types::SolType>::tokenize( + &self.baseFeeMaxChangeDenominator, + ), + as alloy_sol_types::SolType>::tokenize(&self.minimumBaseFee), + as alloy_sol_types::SolType>::tokenize(&self.systemTxMaxGas), + as alloy_sol_types::SolType>::tokenize(&self.maximumBaseFee), + ) + } + #[inline] + fn stv_abi_encoded_size(&self) -> usize { + if let Some(size) = ::ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encoded_size(&tuple) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + ::eip712_hash_struct(self) + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + if let Some(size) = ::PACKED_ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for ResourceConfig { + type RustType = Self; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = ::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + as alloy_sol_types::SolType>::valid_token(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + let tuple = as alloy_sol_types::SolType>::detokenize(token); + >>::from(tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolStruct for ResourceConfig { + const NAME: &'static str = "ResourceConfig"; + #[inline] + fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> { + alloy_sol_types::private::Cow::Borrowed( + "ResourceConfig(uint32 maxResourceLimit,uint8 elasticityMultiplier,uint8 baseFeeMaxChangeDenominator,uint32 minimumBaseFee,uint32 systemTxMaxGas,uint128 maximumBaseFee)", + ) + } + #[inline] + fn eip712_components() -> alloy_sol_types::private::Vec< + alloy_sol_types::private::Cow<'static, str>, + > { + alloy_sol_types::private::Vec::new() + } + #[inline] + fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> { + ::eip712_root_type() + } + #[inline] + fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec { + [ + as alloy_sol_types::SolType>::eip712_data_word( + &self.maxResourceLimit, + ) + .0, + as alloy_sol_types::SolType>::eip712_data_word( + &self.elasticityMultiplier, + ) + .0, + as alloy_sol_types::SolType>::eip712_data_word( + &self.baseFeeMaxChangeDenominator, + ) + .0, + as alloy_sol_types::SolType>::eip712_data_word( + &self.minimumBaseFee, + ) + .0, + as alloy_sol_types::SolType>::eip712_data_word( + &self.systemTxMaxGas, + ) + .0, + as alloy_sol_types::SolType>::eip712_data_word( + &self.maximumBaseFee, + ) + .0, + ] + .concat() + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for ResourceConfig { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + 0usize + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.maxResourceLimit, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.elasticityMultiplier, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.baseFeeMaxChangeDenominator, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.minimumBaseFee, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.systemTxMaxGas, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.maximumBaseFee, + ) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + out.reserve( + ::topic_preimage_length(rust), + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.maxResourceLimit, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.elasticityMultiplier, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.baseFeeMaxChangeDenominator, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.minimumBaseFee, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.systemTxMaxGas, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.maximumBaseFee, + out, + ); + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + let mut out = alloy_sol_types::private::Vec::new(); + ::encode_topic_preimage( + rust, + &mut out, + ); + alloy_sol_types::abi::token::WordToken( + alloy_sol_types::private::keccak256(out), + ) + } + } + }; + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`IResourceMetering`](self) contract instance. + +See the [wrapper's documentation](`IResourceMeteringInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> IResourceMeteringInstance { + IResourceMeteringInstance::::new(address, __provider) + } + /**A [`IResourceMetering`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`IResourceMetering`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct IResourceMeteringInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for IResourceMeteringInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("IResourceMeteringInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > IResourceMeteringInstance { + /**Creates a new wrapper around an on-chain [`IResourceMetering`](self) contract instance. + +See the [wrapper's documentation](`IResourceMeteringInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl IResourceMeteringInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> IResourceMeteringInstance { + IResourceMeteringInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > IResourceMeteringInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > IResourceMeteringInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + } +} +/** + +Generated by the following Solidity interface... +```solidity +library IResourceMetering { + struct ResourceConfig { + uint32 maxResourceLimit; + uint8 elasticityMultiplier; + uint8 baseFeeMaxChangeDenominator; + uint32 minimumBaseFee; + uint32 systemTxMaxGas; + uint128 maximumBaseFee; + } +} + +interface SystemConfig { + type UpdateType is uint8; + struct Addresses { + address l1CrossDomainMessenger; + address l1ERC721Bridge; + address l1StandardBridge; + address optimismPortal; + address optimismMintableERC20Factory; + address delayedWETH; + } + + error ProxyAdminOwnedBase_NotProxyAdmin(); + error ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner(); + error ProxyAdminOwnedBase_NotProxyAdminOwner(); + error ProxyAdminOwnedBase_NotResolvedDelegateProxy(); + error ProxyAdminOwnedBase_NotSharedProxyAdminOwner(); + error ProxyAdminOwnedBase_ProxyAdminNotFound(); + error ReinitializableBase_ZeroInitVersion(); + error SystemConfig_InvalidFeatureState(); + + event ConfigUpdate(uint256 indexed version, UpdateType indexed updateType, bytes data); + event FeatureSet(bytes32 indexed feature, bool indexed enabled); + event Initialized(uint8 version); + event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); + + constructor(); + + function BATCH_INBOX_SLOT() external view returns (bytes32); + function DELAYED_WETH_SLOT() external view returns (bytes32); + function L1_CROSS_DOMAIN_MESSENGER_SLOT() external view returns (bytes32); + function L1_ERC_721_BRIDGE_SLOT() external view returns (bytes32); + function L1_STANDARD_BRIDGE_SLOT() external view returns (bytes32); + function OPTIMISM_MINTABLE_ERC20_FACTORY_SLOT() external view returns (bytes32); + function OPTIMISM_PORTAL_SLOT() external view returns (bytes32); + function START_BLOCK_SLOT() external view returns (bytes32); + function UNSAFE_BLOCK_SIGNER_SLOT() external view returns (bytes32); + function VERSION() external view returns (uint256); + function basefeeScalar() external view returns (uint32); + function batchInbox() external view returns (address addr_); + function batcherHash() external view returns (bytes32); + function blobbasefeeScalar() external view returns (uint32); + function daFootprintGasScalar() external view returns (uint16); + function delayedWETH() external view returns (address addr_); + function disputeGameFactory() external view returns (address addr_); + function eip1559Denominator() external view returns (uint32); + function eip1559Elasticity() external view returns (uint32); + function gasLimit() external view returns (uint64); + function getAddresses() external view returns (Addresses memory); + function guardian() external view returns (address); + function initVersion() external view returns (uint8); + function initialize(address _owner, uint32 _basefeeScalar, uint32 _blobbasefeeScalar, bytes32 _batcherHash, uint64 _gasLimit, address _unsafeBlockSigner, IResourceMetering.ResourceConfig memory _config, address _batchInbox, Addresses memory _addresses, uint256 _l2ChainId, address _superchainConfig) external; + function isCustomGasToken() external view returns (bool); + function isFeatureEnabled(bytes32) external view returns (bool); + function l1CrossDomainMessenger() external view returns (address addr_); + function l1ERC721Bridge() external view returns (address addr_); + function l1StandardBridge() external view returns (address addr_); + function l2ChainId() external view returns (uint256); + function maximumGasLimit() external pure returns (uint64); + function minBaseFee() external view returns (uint64); + function minimumGasLimit() external view returns (uint64); + function operatorFeeConstant() external view returns (uint64); + function operatorFeeScalar() external view returns (uint32); + function optimismMintableERC20Factory() external view returns (address addr_); + function optimismPortal() external view returns (address addr_); + function overhead() external view returns (uint256); + function owner() external view returns (address); + function paused() external view returns (bool); + function proxyAdmin() external view returns (address); + function proxyAdminOwner() external view returns (address); + function renounceOwnership() external; + function resourceConfig() external view returns (IResourceMetering.ResourceConfig memory); + function scalar() external view returns (uint256); + function setBatcherHash(address _batcher) external; + function setBatcherHash(bytes32 _batcherHash) external; + function setDAFootprintGasScalar(uint16 _daFootprintGasScalar) external; + function setEIP1559Params(uint32 _denominator, uint32 _elasticity) external; + function setFeature(bytes32 _feature, bool _enabled) external; + function setGasConfig(uint256 _overhead, uint256 _scalar) external; + function setGasConfigEcotone(uint32 _basefeeScalar, uint32 _blobbasefeeScalar) external; + function setGasLimit(uint64 _gasLimit) external; + function setMinBaseFee(uint64 _minBaseFee) external; + function setOperatorFeeScalars(uint32 _operatorFeeScalar, uint64 _operatorFeeConstant) external; + function setUnsafeBlockSigner(address _unsafeBlockSigner) external; + function startBlock() external view returns (uint256 startBlock_); + function superchainConfig() external view returns (address); + function transferOwnership(address newOwner) external; + function unsafeBlockSigner() external view returns (address addr_); + function version() external pure returns (string memory); +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "constructor", + "inputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "BATCH_INBOX_SLOT", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "DELAYED_WETH_SLOT", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "L1_CROSS_DOMAIN_MESSENGER_SLOT", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "L1_ERC_721_BRIDGE_SLOT", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "L1_STANDARD_BRIDGE_SLOT", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "OPTIMISM_MINTABLE_ERC20_FACTORY_SLOT", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "OPTIMISM_PORTAL_SLOT", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "START_BLOCK_SLOT", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "UNSAFE_BLOCK_SIGNER_SLOT", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "VERSION", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "basefeeScalar", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint32", + "internalType": "uint32" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "batchInbox", + "inputs": [], + "outputs": [ + { + "name": "addr_", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "batcherHash", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "blobbasefeeScalar", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint32", + "internalType": "uint32" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "daFootprintGasScalar", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint16", + "internalType": "uint16" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "delayedWETH", + "inputs": [], + "outputs": [ + { + "name": "addr_", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "disputeGameFactory", + "inputs": [], + "outputs": [ + { + "name": "addr_", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "eip1559Denominator", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint32", + "internalType": "uint32" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "eip1559Elasticity", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint32", + "internalType": "uint32" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "gasLimit", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint64", + "internalType": "uint64" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "getAddresses", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "tuple", + "internalType": "struct SystemConfig.Addresses", + "components": [ + { + "name": "l1CrossDomainMessenger", + "type": "address", + "internalType": "address" + }, + { + "name": "l1ERC721Bridge", + "type": "address", + "internalType": "address" + }, + { + "name": "l1StandardBridge", + "type": "address", + "internalType": "address" + }, + { + "name": "optimismPortal", + "type": "address", + "internalType": "address" + }, + { + "name": "optimismMintableERC20Factory", + "type": "address", + "internalType": "address" + }, + { + "name": "delayedWETH", + "type": "address", + "internalType": "address" + } + ] + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "guardian", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "initVersion", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint8", + "internalType": "uint8" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "initialize", + "inputs": [ + { + "name": "_owner", + "type": "address", + "internalType": "address" + }, + { + "name": "_basefeeScalar", + "type": "uint32", + "internalType": "uint32" + }, + { + "name": "_blobbasefeeScalar", + "type": "uint32", + "internalType": "uint32" + }, + { + "name": "_batcherHash", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "_gasLimit", + "type": "uint64", + "internalType": "uint64" + }, + { + "name": "_unsafeBlockSigner", + "type": "address", + "internalType": "address" + }, + { + "name": "_config", + "type": "tuple", + "internalType": "struct IResourceMetering.ResourceConfig", + "components": [ + { + "name": "maxResourceLimit", + "type": "uint32", + "internalType": "uint32" + }, + { + "name": "elasticityMultiplier", + "type": "uint8", + "internalType": "uint8" + }, + { + "name": "baseFeeMaxChangeDenominator", + "type": "uint8", + "internalType": "uint8" + }, + { + "name": "minimumBaseFee", + "type": "uint32", + "internalType": "uint32" + }, + { + "name": "systemTxMaxGas", + "type": "uint32", + "internalType": "uint32" + }, + { + "name": "maximumBaseFee", + "type": "uint128", + "internalType": "uint128" + } + ] + }, + { + "name": "_batchInbox", + "type": "address", + "internalType": "address" + }, + { + "name": "_addresses", + "type": "tuple", + "internalType": "struct SystemConfig.Addresses", + "components": [ + { + "name": "l1CrossDomainMessenger", + "type": "address", + "internalType": "address" + }, + { + "name": "l1ERC721Bridge", + "type": "address", + "internalType": "address" + }, + { + "name": "l1StandardBridge", + "type": "address", + "internalType": "address" + }, + { + "name": "optimismPortal", + "type": "address", + "internalType": "address" + }, + { + "name": "optimismMintableERC20Factory", + "type": "address", + "internalType": "address" + }, + { + "name": "delayedWETH", + "type": "address", + "internalType": "address" + } + ] + }, + { + "name": "_l2ChainId", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_superchainConfig", + "type": "address", + "internalType": "contract ISuperchainConfig" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "isCustomGasToken", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "isFeatureEnabled", + "inputs": [ + { + "name": "", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "l1CrossDomainMessenger", + "inputs": [], + "outputs": [ + { + "name": "addr_", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "l1ERC721Bridge", + "inputs": [], + "outputs": [ + { + "name": "addr_", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "l1StandardBridge", + "inputs": [], + "outputs": [ + { + "name": "addr_", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "l2ChainId", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "maximumGasLimit", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint64", + "internalType": "uint64" + } + ], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "minBaseFee", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint64", + "internalType": "uint64" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "minimumGasLimit", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint64", + "internalType": "uint64" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "operatorFeeConstant", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint64", + "internalType": "uint64" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "operatorFeeScalar", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint32", + "internalType": "uint32" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "optimismMintableERC20Factory", + "inputs": [], + "outputs": [ + { + "name": "addr_", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "optimismPortal", + "inputs": [], + "outputs": [ + { + "name": "addr_", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "overhead", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "owner", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "paused", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "proxyAdmin", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract IProxyAdmin" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "proxyAdminOwner", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "renounceOwnership", + "inputs": [], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "resourceConfig", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "tuple", + "internalType": "struct IResourceMetering.ResourceConfig", + "components": [ + { + "name": "maxResourceLimit", + "type": "uint32", + "internalType": "uint32" + }, + { + "name": "elasticityMultiplier", + "type": "uint8", + "internalType": "uint8" + }, + { + "name": "baseFeeMaxChangeDenominator", + "type": "uint8", + "internalType": "uint8" + }, + { + "name": "minimumBaseFee", + "type": "uint32", + "internalType": "uint32" + }, + { + "name": "systemTxMaxGas", + "type": "uint32", + "internalType": "uint32" + }, + { + "name": "maximumBaseFee", + "type": "uint128", + "internalType": "uint128" + } + ] + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "scalar", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "setBatcherHash", + "inputs": [ + { + "name": "_batcher", + "type": "address", + "internalType": "address" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "setBatcherHash", + "inputs": [ + { + "name": "_batcherHash", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "setDAFootprintGasScalar", + "inputs": [ + { + "name": "_daFootprintGasScalar", + "type": "uint16", + "internalType": "uint16" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "setEIP1559Params", + "inputs": [ + { + "name": "_denominator", + "type": "uint32", + "internalType": "uint32" + }, + { + "name": "_elasticity", + "type": "uint32", + "internalType": "uint32" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "setFeature", + "inputs": [ + { + "name": "_feature", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "_enabled", + "type": "bool", + "internalType": "bool" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "setGasConfig", + "inputs": [ + { + "name": "_overhead", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_scalar", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "setGasConfigEcotone", + "inputs": [ + { + "name": "_basefeeScalar", + "type": "uint32", + "internalType": "uint32" + }, + { + "name": "_blobbasefeeScalar", + "type": "uint32", + "internalType": "uint32" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "setGasLimit", + "inputs": [ + { + "name": "_gasLimit", + "type": "uint64", + "internalType": "uint64" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "setMinBaseFee", + "inputs": [ + { + "name": "_minBaseFee", + "type": "uint64", + "internalType": "uint64" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "setOperatorFeeScalars", + "inputs": [ + { + "name": "_operatorFeeScalar", + "type": "uint32", + "internalType": "uint32" + }, + { + "name": "_operatorFeeConstant", + "type": "uint64", + "internalType": "uint64" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "setUnsafeBlockSigner", + "inputs": [ + { + "name": "_unsafeBlockSigner", + "type": "address", + "internalType": "address" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "startBlock", + "inputs": [], + "outputs": [ + { + "name": "startBlock_", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "superchainConfig", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract ISuperchainConfig" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "transferOwnership", + "inputs": [ + { + "name": "newOwner", + "type": "address", + "internalType": "address" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "unsafeBlockSigner", + "inputs": [], + "outputs": [ + { + "name": "addr_", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "version", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "pure" + }, + { + "type": "event", + "name": "ConfigUpdate", + "inputs": [ + { + "name": "version", + "type": "uint256", + "indexed": true, + "internalType": "uint256" + }, + { + "name": "updateType", + "type": "uint8", + "indexed": true, + "internalType": "enum SystemConfig.UpdateType" + }, + { + "name": "data", + "type": "bytes", + "indexed": false, + "internalType": "bytes" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "FeatureSet", + "inputs": [ + { + "name": "feature", + "type": "bytes32", + "indexed": true, + "internalType": "bytes32" + }, + { + "name": "enabled", + "type": "bool", + "indexed": true, + "internalType": "bool" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "Initialized", + "inputs": [ + { + "name": "version", + "type": "uint8", + "indexed": false, + "internalType": "uint8" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "OwnershipTransferred", + "inputs": [ + { + "name": "previousOwner", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "newOwner", + "type": "address", + "indexed": true, + "internalType": "address" + } + ], + "anonymous": false + }, + { + "type": "error", + "name": "ProxyAdminOwnedBase_NotProxyAdmin", + "inputs": [] + }, + { + "type": "error", + "name": "ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner", + "inputs": [] + }, + { + "type": "error", + "name": "ProxyAdminOwnedBase_NotProxyAdminOwner", + "inputs": [] + }, + { + "type": "error", + "name": "ProxyAdminOwnedBase_NotResolvedDelegateProxy", + "inputs": [] + }, + { + "type": "error", + "name": "ProxyAdminOwnedBase_NotSharedProxyAdminOwner", + "inputs": [] + }, + { + "type": "error", + "name": "ProxyAdminOwnedBase_ProxyAdminNotFound", + "inputs": [] + }, + { + "type": "error", + "name": "ReinitializableBase_ZeroInitVersion", + "inputs": [] + }, + { + "type": "error", + "name": "SystemConfig_InvalidFeatureState", + "inputs": [] + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod SystemConfig { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x60a06040523480156200001157600080fd5b5060046080526200005f6200004860017fa11ee3ab75b40e88a0105e935d17cd36c8faee0138320d776c411291bdbbb1a062000135565b60001b6000196200006f60201b620019b81760201c565b6200006962000073565b6200015b565b9055565b600054610100900460ff1615620000e05760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101562000133576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6000828210156200015657634e487b7160e01b600052601160045260246000fd5b500390565b608051612d396200017e600039600081816105480152610af70152612d396000f3fe608060405234801561001057600080fd5b50600436106103af5760003560e01c80637e54b8ad116101f4578063d220a9e01161011a578063f2c4bc9e116100ad578063f8c68de01161007c578063f8c68de01461099e578063fd32aa0f146109a6578063fe3d5710146109ae578063ffa1ad74146109e757600080fd5b8063f2c4bc9e1461095b578063f2fde38b1461096e578063f45e65d814610981578063f68016b71461098a57600080fd5b8063e0e2016d116100e9578063e0e2016d14610922578063e81b2c6d1461092a578063ec70751714610933578063f2b4e6171461095357600080fd5b8063d220a9e0146108f9578063d6ae3cd514610909578063dac6e63a14610912578063dad544e01461091a57600080fd5b8063b40a817c11610192578063c4e8ddfa11610161578063c4e8ddfa14610792578063c9b26f611461079a578063c9ff2d16146107ad578063cc731b02146107c557600080fd5b8063b40a817c14610748578063bc49ce5f1461075b578063bfb14fb714610763578063c0fd4b411461077f57600080fd5b80639b7d7f0a116101ce5780639b7d7f0a146106a3578063a39fac12146106ab578063a62611a214610714578063a71198691461074057600080fd5b80637e54b8ad146106775780638da5cb5b1461067f578063935f029e1461069057600080fd5b806321d7fde5116102d95780634add321d116102775780635c975abb116102465780635c975abb1461064c5780635d73369c14610654578063715018a61461065c5780637616f0e81461066457600080fd5b80634add321d146105ad5780634d5d9a2a146105b55780634f16540b146105e657806354fd4d501461060d57600080fd5b80633e47158c116102b35780633e47158c14610572578063452a93201461057a57806347af267b1461058257806348cd4cb1146105a557600080fd5b806321d7fde51461051b57806335e80ab31461052e57806338d38c971461054157600080fd5b806316d3bc7f116103515780631fd19ee1116103205780631fd19ee11461049957806320f06fdc146104a157806321326849146104b4578063215b7a1c1461051357600080fd5b806316d3bc7f1461044757806318d139181461046b57806319f5cea81461047e5780631edd50981461048657600080fd5b80630a49cb031161038d5780630a49cb03146104045780630ae14b1b1461040c5780630c18c1621461042b578063155b6c6f1461043457600080fd5b806306c92657146103b4578063078f29cf146103cf5780630a2ca2a9146103ef575b600080fd5b6103bc6109ef565b6040519081526020015b60405180910390f35b6103d7610a1d565b6040516001600160a01b0390911681526020016103c6565b6104026103fd366004612742565b610a56565b005b6103d7610a73565b631dcd65005b60405167ffffffffffffffff90911681526020016103c6565b6103bc60655481565b610402610442366004612792565b610aa3565b606a54610412906c01000000000000000000000000900467ffffffffffffffff1681565b610402610479366004612742565b610ab9565b6103bc610aca565b6104026104943660046128fc565b610af5565b6103d7610e6a565b6104026104af366004612a6c565b610e94565b7f435553544f4d5f4741535f544f4b454e00000000000000000000000000000000600052606d6020527f3ec9a18bd22a834e2a13465cc2aa2a9aebb161ffdebf39cdb0028dbb1b5394b45460ff165b60405190151581526020016103c6565b6103d7610ea5565b610402610529366004612a90565b610ed5565b606c546103d7906001600160a01b031681565b60405160ff7f00000000000000000000000000000000000000000000000000000000000000001681526020016103c6565b6103d7610ee7565b6103d76110cb565b610503610590366004612aba565b606d6020526000908152604090205460ff1681565b6103bc611152565b610412611182565b606a546105d19068010000000000000000900463ffffffff1681565b60405163ffffffff90911681526020016103c6565b6103bc7f65a7ed542fb37fe237fdfbdd70b31598523fe5b32879e307bae27a0bd9581c0881565b604080518082018252600681527f332e31332e320000000000000000000000000000000000000000000000000000602082015290516103c69190612b20565b6105036111a8565b6103bc61138e565b6104026113b9565b610402610672366004612b33565b6113cd565b6103bc6113de565b6033546001600160a01b03166103d7565b61040261069e366004612b4e565b611409565b6103d761141b565b6106b361144b565b6040516103c69190600060c0820190506001600160a01b038084511683528060208501511660208401528060408501511660408401528060608501511660608401528060808501511660808401528060a08501511660a08401525092915050565b606c546104129074010000000000000000000000000000000000000000900467ffffffffffffffff1681565b6103d761150e565b610402610756366004612b33565b61153e565b6103bc61154f565b6068546105d19068010000000000000000900463ffffffff1681565b61040261078d366004612a90565b61157a565b6103d761158c565b6104026107a8366004612aba565b6115bc565b606a546105d190640100000000900463ffffffff1681565b6108896040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a0810191909152506040805160c08101825260695463ffffffff8082168352640100000000820460ff9081166020850152650100000000008304169383019390935266010000000000008104831660608301526a0100000000000000000000810490921660808201526e0100000000000000000000000000009091046fffffffffffffffffffffffffffffffff1660a082015290565b6040516103c69190600060c08201905063ffffffff80845116835260ff602085015116602084015260ff6040850151166040840152806060850151166060840152806080850151166080840152506fffffffffffffffffffffffffffffffff60a08401511660a083015292915050565b606a546105d19063ffffffff1681565b6103bc606b5481565b6103d76115cd565b6103d76115fd565b6103bc611644565b6103bc60675481565b6068546105d1906c01000000000000000000000000900463ffffffff1681565b6103d761166f565b610402610969366004612b7e565b6116de565b61040261097c366004612742565b6118d5565b6103bc60665481565b6068546104129067ffffffffffffffff1681565b6103bc611962565b6103bc61198d565b606a546109d49074010000000000000000000000000000000000000000900461ffff1681565b60405161ffff90911681526020016103c6565b6103bc600081565b610a1a60017fa04c5bb938ca6fc46d95553abf0a76345ce3e722a30bf4f74928b8e7d852320d612bdd565b81565b6000610a51610a4d60017f9904ba90dde5696cda05c9e0dab5cbaa0fea005ace4d11218a02ac668dad6377612bdd565b5490565b905090565b610a5e6119bc565b610a706001600160a01b038216611a16565b50565b6000610a51610a4d60017f4b6c74f9e688cb39801f2112c14a8c57232a3fc5202e1444126d4bce86eb19ad612bdd565b610aab6119bc565b610ab58282611a77565b5050565b610ac16119bc565b610a7081611b69565b610a1a60017f46adcbebc6be8ce551740c29c47c8798210f23f7f4086c41752944352568d5a8612bdd565b7f0000000000000000000000000000000000000000000000000000000000000000600054610100900460ff16158015610b35575060005460ff8083169116105b610bac5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084015b60405180910390fd5b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001660ff831617610100179055610be5611bc2565b610bed611c29565b610bf68c6118d5565b610bff89611a16565b610c098b8b611cae565b610c1288611d95565b610c3b7f65a7ed542fb37fe237fdfbdd70b31598523fe5b32879e307bae27a0bd9581c08889055565b610c6e610c6960017f71ac12829d66ee73d8d95bff50b3589745ce57edae70a3fb111a2342464dc598612bdd565b869055565b610ca2610c9c60017f383f291819e6d54073bc9a648251d97421076bdd101933c0c022219ce9580637612bdd565b85519055565b610cd9610cd060017f46adcbebc6be8ce551740c29c47c8798210f23f7f4086c41752944352568d5a8612bdd565b60208601519055565b610d10610d0760017f9904ba90dde5696cda05c9e0dab5cbaa0fea005ace4d11218a02ac668dad6377612bdd565b60408601519055565b610d47610d3e60017f4b6c74f9e688cb39801f2112c14a8c57232a3fc5202e1444126d4bce86eb19ad612bdd565b60608601519055565b610d7e610d7560017fa04c5bb938ca6fc46d95553abf0a76345ce3e722a30bf4f74928b8e7d852320d612bdd565b60808601519055565b610db5610dac60017f51547f31a231e1007dca33017faa3da20d959b95087c588a7768bfb922fd5900612bdd565b60a08601519055565b610dbd611eb7565b610dc686611f1f565b606b839055606c80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b038416179055600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050505050505050505050565b6000610a517f65a7ed542fb37fe237fdfbdd70b31598523fe5b32879e307bae27a0bd9581c085490565b610e9c6119bc565b610a7081612311565b6000610a51610a4d60017f51547f31a231e1007dca33017faa3da20d959b95087c588a7768bfb922fd5900612bdd565b610edd6119bc565b610ab58282611cae565b600080610f127fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b90506001600160a01b03811615610f2857919050565b6040518060400160405280601a81526020017f4f564d5f4c3143726f7373446f6d61696e4d657373656e676572000000000000815250516002610f6b9190612bf4565b604080513060208201526000918101919091527f4f564d5f4c3143726f7373446f6d61696e4d657373656e6765720000000000009190911790610fc6906060015b604051602081830303815290604052805190602001205490565b14610ffd576040517f54e433cd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805130602082015260019181019190915260009061101f90606001610fac565b90506001600160a01b0381161561109957806001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561106e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110929190612c31565b9250505090565b6040517f332144db00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b606c54604080517f452a932000000000000000000000000000000000000000000000000000000000815290516000926001600160a01b03169163452a93209160048083019260209291908290030181865afa15801561112e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a519190612c31565b6000610a51610a4d60017fa11ee3ab75b40e88a0105e935d17cd36c8faee0138320d776c411291bdbbb1a0612bdd565b606954600090610a519063ffffffff6a0100000000000000000000820481169116612c4e565b7f4554485f4c4f434b424f580000000000000000000000000000000000000000006000908152606d6020527f58e88e949bd180ff86d6c072735c3d8d5a05a543c16130176ec0bc0adf3fd80654819060ff1661120b57611206610a73565b611274565b611213610a73565b6001600160a01b031663b682c4446040518163ffffffff1660e01b8152600401602060405180830381865afa158015611250573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112749190612c31565b606c546040517f2e48152c000000000000000000000000000000000000000000000000000000008152600060048201529192506001600160a01b031690632e48152c90602401602060405180830381865afa1580156112d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112fb9190612c7a565b806113885750606c546040517f2e48152c0000000000000000000000000000000000000000000000000000000081526001600160a01b03838116600483015290911690632e48152c90602401602060405180830381865afa158015611364573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113889190612c7a565b91505090565b610a1a60017f383f291819e6d54073bc9a648251d97421076bdd101933c0c022219ce9580637612bdd565b6113c16119bc565b6113cb600061237e565b565b6113d56119bc565b610a70816123e8565b610a1a60017f51547f31a231e1007dca33017faa3da20d959b95087c588a7768bfb922fd5900612bdd565b6114116119bc565b610ab5828261245b565b6000610a51610a4d60017fa04c5bb938ca6fc46d95553abf0a76345ce3e722a30bf4f74928b8e7d852320d612bdd565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a08101919091526040518060c0016040528061149061150e565b6001600160a01b031681526020016114a661158c565b6001600160a01b031681526020016114bc610a1d565b6001600160a01b031681526020016114d2610a73565b6001600160a01b031681526020016114e861141b565b6001600160a01b031681526020016114fe610ea5565b6001600160a01b03169052919050565b6000610a51610a4d60017f383f291819e6d54073bc9a648251d97421076bdd101933c0c022219ce9580637612bdd565b6115466119bc565b610a7081611d95565b610a1a60017f71ac12829d66ee73d8d95bff50b3589745ce57edae70a3fb111a2342464dc598612bdd565b6115826119bc565b610ab58282612517565b6000610a51610a4d60017f46adcbebc6be8ce551740c29c47c8798210f23f7f4086c41752944352568d5a8612bdd565b6115c46119bc565b610a7081611a16565b6000610a51610a4d60017f71ac12829d66ee73d8d95bff50b3589745ce57edae70a3fb111a2342464dc598612bdd565b6000611607610ee7565b6001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561112e573d6000803e3d6000fd5b610a1a60017fa11ee3ab75b40e88a0105e935d17cd36c8faee0138320d776c411291bdbbb1a0612bdd565b60008061167a610a73565b9050806001600160a01b031663f2b4e6176040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113889190612c31565b6116e6611bc2565b6000828152606d602052604090205460ff16151581151503611734576040517ff5828b0400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f4554485f4c4f434b424f58000000000000000000000000000000000000000000820361186b576000828152606d602052604090205460ff168015611777575080155b80156117f557506000611788610a73565b6001600160a01b031663b682c4446040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117e99190612c31565b6001600160a01b031614155b1561182c576040517ff5828b0400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6118346111a8565b1561186b576040517ff5828b0400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000828152606d602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168415159081179091559051909184917fb876f6594132c89891d2fd198e925e999be741ec809abb58bfe9b966876cc06c9190a35050565b6118dd6119bc565b6001600160a01b0381166119595760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610ba3565b610a708161237e565b610a1a60017f9904ba90dde5696cda05c9e0dab5cbaa0fea005ace4d11218a02ac668dad6377612bdd565b610a1a60017f4b6c74f9e688cb39801f2112c14a8c57232a3fc5202e1444126d4bce86eb19ad612bdd565b9055565b6033546001600160a01b031633146113cb5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610ba3565b60678190556040805160208082018490528251808303909101815290820190915260005b60007f1d2b0bda21d56b8bd12d4f94ebacffdfb35f5e226f84b461103bb8beab6353be83604051611a6b9190612b20565b60405180910390a35050565b606a80547fffffffffffffffffffffffff000000000000000000000000ffffffffffffffff166801000000000000000063ffffffff8516027fffffffffffffffffffffffff0000000000000000ffffffffffffffffffffffff16176c0100000000000000000000000067ffffffffffffffff841690810291909117909155604080516bffffffff000000000000000085831b1690921760208301526000910160408051601f19818403018152919052905060055b60007f1d2b0bda21d56b8bd12d4f94ebacffdfb35f5e226f84b461103bb8beab6353be83604051611b5c9190612b20565b60405180910390a3505050565b611b927f65a7ed542fb37fe237fdfbdd70b31598523fe5b32879e307bae27a0bd9581c08829055565b604080516001600160a01b03831660208201526000910160408051601f1981840301815291905290506003611a3a565b33611bcb610ee7565b6001600160a01b031614158015611bf2575033611be66115fd565b6001600160a01b031614155b156113cb576040517fc4050a2600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600054610100900460ff16611ca65760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610ba3565b6113cb612697565b606880547fffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff166801000000000000000063ffffffff8581169182027fffffffffffffffffffffffffffffffff00000000ffffffffffffffffffffffff16929092176c0100000000000000000000000092851692909202919091179091557f0100000000000000000000000000000000000000000000000000000000000000602083811b67ffffffff000000001690921717606681905560655460408051938401919091528201526000906060015b60408051601f1981840301815291905290506001611b2b565b611d9d611182565b67ffffffffffffffff168167ffffffffffffffff161015611e005760405162461bcd60e51b815260206004820152601f60248201527f53797374656d436f6e6669673a20676173206c696d697420746f6f206c6f77006044820152606401610ba3565b631dcd650067ffffffffffffffff82161115611e5e5760405162461bcd60e51b815260206004820181905260248201527f53797374656d436f6e6669673a20676173206c696d697420746f6f20686967686044820152606401610ba3565b606880547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001667ffffffffffffffff83169081179091556040805160208082019390935281518082039093018352810190526002611a3a565b611ee5610a4d60017fa11ee3ab75b40e88a0105e935d17cd36c8faee0138320d776c411291bdbbb1a0612bdd565b6000036113cb576113cb611f1a60017fa11ee3ab75b40e88a0105e935d17cd36c8faee0138320d776c411291bdbbb1a0612bdd565b439055565b8060a001516fffffffffffffffffffffffffffffffff16816060015163ffffffff161115611fb55760405162461bcd60e51b815260206004820152603560248201527f53797374656d436f6e6669673a206d696e206261736520666565206d7573742060448201527f6265206c657373207468616e206d6178206261736500000000000000000000006064820152608401610ba3565b6001816040015160ff16116120325760405162461bcd60e51b815260206004820152602f60248201527f53797374656d436f6e6669673a2064656e6f6d696e61746f72206d757374206260448201527f65206c6172676572207468616e203100000000000000000000000000000000006064820152608401610ba3565b6068546080820151825167ffffffffffffffff909216916120539190612c97565b63ffffffff1611156120a75760405162461bcd60e51b815260206004820152601f60248201527f53797374656d436f6e6669673a20676173206c696d697420746f6f206c6f77006044820152606401610ba3565b6000816020015160ff16116121245760405162461bcd60e51b815260206004820152602f60248201527f53797374656d436f6e6669673a20656c6173746963697479206d756c7469706c60448201527f6965722063616e6e6f74206265203000000000000000000000000000000000006064820152608401610ba3565b8051602082015163ffffffff82169160ff90911690612144908290612cb6565b61214e9190612d00565b63ffffffff16146121c75760405162461bcd60e51b815260206004820152603760248201527f53797374656d436f6e6669673a20707265636973696f6e206c6f73732077697460448201527f6820746172676574207265736f75726365206c696d69740000000000000000006064820152608401610ba3565b805160698054602084015160408501516060860151608087015160a09097015163ffffffff9687167fffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000009095169490941764010000000060ff94851602177fffffffffffffffffffffffffffffffffffffffffffff0000000000ffffffffff166501000000000093909216929092027fffffffffffffffffffffffffffffffffffffffffffff00000000ffffffffffff1617660100000000000091851691909102177fffff0000000000000000000000000000000000000000ffffffffffffffffffff166a010000000000000000000093909416929092027fffff00000000000000000000000000000000ffffffffffffffffffffffffffff16929092176e0100000000000000000000000000006fffffffffffffffffffffffffffffffff90921691909102179055565b606a80547fffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000061ffff8416908102919091179091556040805160208082019390935281518082039093018352810190526007611a3a565b603380546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b606c80547fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000067ffffffffffffffff8416908102919091179091556040805160208082019390935281518082039093018352810190526006611a3a565b7fff000000000000000000000000000000000000000000000000000000000000008116156124f15760405162461bcd60e51b815260206004820152602160248201527f53797374656d436f6e6669673a207363616c61722065786365656473206d617860448201527f2e000000000000000000000000000000000000000000000000000000000000006064820152608401610ba3565b606582905560668190556040805160208101849052908101829052600090606001611d7c565b60018263ffffffff1610156125945760405162461bcd60e51b815260206004820152602660248201527f53797374656d436f6e6669673a2064656e6f6d696e61746f72206d757374206260448201527f65203e3d203100000000000000000000000000000000000000000000000000006064820152608401610ba3565b60018163ffffffff1610156126115760405162461bcd60e51b815260206004820152602560248201527f53797374656d436f6e6669673a20656c6173746963697479206d75737420626560448201527f203e3d20310000000000000000000000000000000000000000000000000000006064820152608401610ba3565b606a805463ffffffff83811664010000000081027fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000909316918616919091179190911790915560405160009161267e91602086811b67ffffffff0000000016909217910190815260200190565b60408051601f1981840301815291905290506004611b2b565b600054610100900460ff166127145760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610ba3565b6113cb3361237e565b6001600160a01b0381168114610a7057600080fd5b803561273d8161271d565b919050565b60006020828403121561275457600080fd5b813561275f8161271d565b9392505050565b803563ffffffff8116811461273d57600080fd5b803567ffffffffffffffff8116811461273d57600080fd5b600080604083850312156127a557600080fd5b6127ae83612766565b91506127bc6020840161277a565b90509250929050565b60405160c0810167ffffffffffffffff8111828210171561280f577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405290565b803560ff8116811461273d57600080fd5b600060c0828403121561283857600080fd5b60405160c0810181811067ffffffffffffffff82111715612882577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405290508082356128938161271d565b815260208301356128a38161271d565b602082015260408301356128b68161271d565b604082015260608301356128c98161271d565b606082015260808301356128dc8161271d565b608082015260a08301356128ef8161271d565b60a0919091015292915050565b60008060008060008060008060008060008b8d036102a081121561291f57600080fd5b8c3561292a8161271d565b9b5061293860208e01612766565b9a5061294660408e01612766565b995060608d0135985061295b60808e0161277a565b975060a08d013561296b8161271d565b965060c07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff408201121561299d57600080fd5b506129a66127c5565b6129b260c08e01612766565b81526129c060e08e01612815565b60208201526129d26101008e01612815565b60408201526129e46101208e01612766565b60608201526129f66101408e01612766565b60808201526101608d01356fffffffffffffffffffffffffffffffff81168114612a1f57600080fd5b60a08201529450612a336101808d01612732565b9350612a438d6101a08e01612826565b92506102608c01359150612a5a6102808d01612732565b90509295989b509295989b9093969950565b600060208284031215612a7e57600080fd5b813561ffff8116811461275f57600080fd5b60008060408385031215612aa357600080fd5b612aac83612766565b91506127bc60208401612766565b600060208284031215612acc57600080fd5b5035919050565b6000815180845260005b81811015612af957602081850181015186830182015201612add565b81811115612b0b576000602083870101525b50601f01601f19169290920160200192915050565b60208152600061275f6020830184612ad3565b600060208284031215612b4557600080fd5b61275f8261277a565b60008060408385031215612b6157600080fd5b50508035926020909101359150565b8015158114610a7057600080fd5b60008060408385031215612b9157600080fd5b823591506020830135612ba381612b70565b809150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600082821015612bef57612bef612bae565b500390565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612c2c57612c2c612bae565b500290565b600060208284031215612c4357600080fd5b815161275f8161271d565b600067ffffffffffffffff808316818516808303821115612c7157612c71612bae565b01949350505050565b600060208284031215612c8c57600080fd5b815161275f81612b70565b600063ffffffff808316818516808303821115612c7157612c71612bae565b600063ffffffff80841680612cf4577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b92169190910492915050565b600063ffffffff80831681851681830481118215151615612d2357612d23612bae565b0294935050505056fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\xA0`@R4\x80\x15b\0\0\x11W`\0\x80\xFD[P`\x04`\x80Rb\0\0_b\0\0H`\x01\x7F\xA1\x1E\xE3\xABu\xB4\x0E\x88\xA0\x10^\x93]\x17\xCD6\xC8\xFA\xEE\x0182\rwlA\x12\x91\xBD\xBB\xB1\xA0b\0\x015V[`\0\x1B`\0\x19b\0\0o` \x1Bb\0\x19\xB8\x17` \x1CV[b\0\0ib\0\0sV[b\0\x01[V[\x90UV[`\0Ta\x01\0\x90\x04`\xFF\x16\x15b\0\0\xE0W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`'`$\x82\x01R\x7FInitializable: contract is initi`D\x82\x01Rfalizing`\xC8\x1B`d\x82\x01R`\x84\x01`@Q\x80\x91\x03\x90\xFD[`\0T`\xFF\x90\x81\x16\x10\x15b\0\x013W`\0\x80T`\xFF\x19\x16`\xFF\x90\x81\x17\x90\x91U`@Q\x90\x81R\x7F\x7F&\xB8?\xF9n\x1F+jh/\x138R\xF6y\x8A\t\xC4e\xDA\x95\x92\x14`\xCE\xFB8G@$\x98\x90` \x01`@Q\x80\x91\x03\x90\xA1[V[`\0\x82\x82\x10\x15b\0\x01VWcNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[P\x03\x90V[`\x80Qa-9b\0\x01~`\09`\0\x81\x81a\x05H\x01Ra\n\xF7\x01Ra-9`\0\xF3\xFE`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`\x046\x10a\x03\xAFW`\x005`\xE0\x1C\x80c~T\xB8\xAD\x11a\x01\xF4W\x80c\xD2 \xA9\xE0\x11a\x01\x1AW\x80c\xF2\xC4\xBC\x9E\x11a\0\xADW\x80c\xF8\xC6\x8D\xE0\x11a\0|W\x80c\xF8\xC6\x8D\xE0\x14a\t\x9EW\x80c\xFD2\xAA\x0F\x14a\t\xA6W\x80c\xFE=W\x10\x14a\t\xAEW\x80c\xFF\xA1\xADt\x14a\t\xE7W`\0\x80\xFD[\x80c\xF2\xC4\xBC\x9E\x14a\t[W\x80c\xF2\xFD\xE3\x8B\x14a\tnW\x80c\xF4^e\xD8\x14a\t\x81W\x80c\xF6\x80\x16\xB7\x14a\t\x8AW`\0\x80\xFD[\x80c\xE0\xE2\x01m\x11a\0\xE9W\x80c\xE0\xE2\x01m\x14a\t\"W\x80c\xE8\x1B,m\x14a\t*W\x80c\xECpu\x17\x14a\t3W\x80c\xF2\xB4\xE6\x17\x14a\tSW`\0\x80\xFD[\x80c\xD2 \xA9\xE0\x14a\x08\xF9W\x80c\xD6\xAE<\xD5\x14a\t\tW\x80c\xDA\xC6\xE6:\x14a\t\x12W\x80c\xDA\xD5D\xE0\x14a\t\x1AW`\0\x80\xFD[\x80c\xB4\n\x81|\x11a\x01\x92W\x80c\xC4\xE8\xDD\xFA\x11a\x01aW\x80c\xC4\xE8\xDD\xFA\x14a\x07\x92W\x80c\xC9\xB2oa\x14a\x07\x9AW\x80c\xC9\xFF-\x16\x14a\x07\xADW\x80c\xCCs\x1B\x02\x14a\x07\xC5W`\0\x80\xFD[\x80c\xB4\n\x81|\x14a\x07HW\x80c\xBCI\xCE_\x14a\x07[W\x80c\xBF\xB1O\xB7\x14a\x07cW\x80c\xC0\xFDKA\x14a\x07\x7FW`\0\x80\xFD[\x80c\x9B}\x7F\n\x11a\x01\xCEW\x80c\x9B}\x7F\n\x14a\x06\xA3W\x80c\xA3\x9F\xAC\x12\x14a\x06\xABW\x80c\xA6&\x11\xA2\x14a\x07\x14W\x80c\xA7\x11\x98i\x14a\x07@W`\0\x80\xFD[\x80c~T\xB8\xAD\x14a\x06wW\x80c\x8D\xA5\xCB[\x14a\x06\x7FW\x80c\x93_\x02\x9E\x14a\x06\x90W`\0\x80\xFD[\x80c!\xD7\xFD\xE5\x11a\x02\xD9W\x80cJ\xDD2\x1D\x11a\x02wW\x80c\\\x97Z\xBB\x11a\x02FW\x80c\\\x97Z\xBB\x14a\x06LW\x80c]s6\x9C\x14a\x06TW\x80cqP\x18\xA6\x14a\x06\\W\x80cv\x16\xF0\xE8\x14a\x06dW`\0\x80\xFD[\x80cJ\xDD2\x1D\x14a\x05\xADW\x80cM]\x9A*\x14a\x05\xB5W\x80cO\x16T\x0B\x14a\x05\xE6W\x80cT\xFDMP\x14a\x06\rW`\0\x80\xFD[\x80c>G\x15\x8C\x11a\x02\xB3W\x80c>G\x15\x8C\x14a\x05rW\x80cE*\x93 \x14a\x05zW\x80cG\xAF&{\x14a\x05\x82W\x80cH\xCDL\xB1\x14a\x05\xA5W`\0\x80\xFD[\x80c!\xD7\xFD\xE5\x14a\x05\x1BW\x80c5\xE8\n\xB3\x14a\x05.W\x80c8\xD3\x8C\x97\x14a\x05AW`\0\x80\xFD[\x80c\x16\xD3\xBC\x7F\x11a\x03QW\x80c\x1F\xD1\x9E\xE1\x11a\x03 W\x80c\x1F\xD1\x9E\xE1\x14a\x04\x99W\x80c \xF0o\xDC\x14a\x04\xA1W\x80c!2hI\x14a\x04\xB4W\x80c![z\x1C\x14a\x05\x13W`\0\x80\xFD[\x80c\x16\xD3\xBC\x7F\x14a\x04GW\x80c\x18\xD19\x18\x14a\x04kW\x80c\x19\xF5\xCE\xA8\x14a\x04~W\x80c\x1E\xDDP\x98\x14a\x04\x86W`\0\x80\xFD[\x80c\nI\xCB\x03\x11a\x03\x8DW\x80c\nI\xCB\x03\x14a\x04\x04W\x80c\n\xE1K\x1B\x14a\x04\x0CW\x80c\x0C\x18\xC1b\x14a\x04+W\x80c\x15[lo\x14a\x044W`\0\x80\xFD[\x80c\x06\xC9&W\x14a\x03\xB4W\x80c\x07\x8F)\xCF\x14a\x03\xCFW\x80c\n,\xA2\xA9\x14a\x03\xEFW[`\0\x80\xFD[a\x03\xBCa\t\xEFV[`@Q\x90\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[a\x03\xD7a\n\x1DV[`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x01a\x03\xC6V[a\x04\x02a\x03\xFD6`\x04a'BV[a\nVV[\0[a\x03\xD7a\nsV[c\x1D\xCDe\0[`@Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01a\x03\xC6V[a\x03\xBC`eT\x81V[a\x04\x02a\x04B6`\x04a'\x92V[a\n\xA3V[`jTa\x04\x12\x90l\x01\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[a\x04\x02a\x04y6`\x04a'BV[a\n\xB9V[a\x03\xBCa\n\xCAV[a\x04\x02a\x04\x946`\x04a(\xFCV[a\n\xF5V[a\x03\xD7a\x0EjV[a\x04\x02a\x04\xAF6`\x04a*lV[a\x0E\x94V[\x7FCUSTOM_GAS_TOKEN\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\0R`m` R\x7F>\xC9\xA1\x8B\xD2*\x83N*\x13F\\\xC2\xAA*\x9A\xEB\xB1a\xFF\xDE\xBF9\xCD\xB0\x02\x8D\xBB\x1BS\x94\xB4T`\xFF\x16[`@Q\x90\x15\x15\x81R` \x01a\x03\xC6V[a\x03\xD7a\x0E\xA5V[a\x04\x02a\x05)6`\x04a*\x90V[a\x0E\xD5V[`lTa\x03\xD7\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[`@Q`\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x81R` \x01a\x03\xC6V[a\x03\xD7a\x0E\xE7V[a\x03\xD7a\x10\xCBV[a\x05\x03a\x05\x906`\x04a*\xBAV[`m` R`\0\x90\x81R`@\x90 T`\xFF\x16\x81V[a\x03\xBCa\x11RV[a\x04\x12a\x11\x82V[`jTa\x05\xD1\x90h\x01\0\0\0\0\0\0\0\0\x90\x04c\xFF\xFF\xFF\xFF\x16\x81V[`@Qc\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01a\x03\xC6V[a\x03\xBC\x7Fe\xA7\xEDT/\xB3\x7F\xE27\xFD\xFB\xDDp\xB3\x15\x98R?\xE5\xB3(y\xE3\x07\xBA\xE2z\x0B\xD9X\x1C\x08\x81V[`@\x80Q\x80\x82\x01\x82R`\x06\x81R\x7F3.13.2\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` \x82\x01R\x90Qa\x03\xC6\x91\x90a+ V[a\x05\x03a\x11\xA8V[a\x03\xBCa\x13\x8EV[a\x04\x02a\x13\xB9V[a\x04\x02a\x06r6`\x04a+3V[a\x13\xCDV[a\x03\xBCa\x13\xDEV[`3T`\x01`\x01`\xA0\x1B\x03\x16a\x03\xD7V[a\x04\x02a\x06\x9E6`\x04a+NV[a\x14\tV[a\x03\xD7a\x14\x1BV[a\x06\xB3a\x14KV[`@Qa\x03\xC6\x91\x90`\0`\xC0\x82\x01\x90P`\x01`\x01`\xA0\x1B\x03\x80\x84Q\x16\x83R\x80` \x85\x01Q\x16` \x84\x01R\x80`@\x85\x01Q\x16`@\x84\x01R\x80``\x85\x01Q\x16``\x84\x01R\x80`\x80\x85\x01Q\x16`\x80\x84\x01R\x80`\xA0\x85\x01Q\x16`\xA0\x84\x01RP\x92\x91PPV[`lTa\x04\x12\x90t\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[a\x03\xD7a\x15\x0EV[a\x04\x02a\x07V6`\x04a+3V[a\x15>V[a\x03\xBCa\x15OV[`hTa\x05\xD1\x90h\x01\0\0\0\0\0\0\0\0\x90\x04c\xFF\xFF\xFF\xFF\x16\x81V[a\x04\x02a\x07\x8D6`\x04a*\x90V[a\x15zV[a\x03\xD7a\x15\x8CV[a\x04\x02a\x07\xA86`\x04a*\xBAV[a\x15\xBCV[`jTa\x05\xD1\x90d\x01\0\0\0\0\x90\x04c\xFF\xFF\xFF\xFF\x16\x81V[a\x08\x89`@\x80Q`\xC0\x81\x01\x82R`\0\x80\x82R` \x82\x01\x81\x90R\x91\x81\x01\x82\x90R``\x81\x01\x82\x90R`\x80\x81\x01\x82\x90R`\xA0\x81\x01\x91\x90\x91RP`@\x80Q`\xC0\x81\x01\x82R`iTc\xFF\xFF\xFF\xFF\x80\x82\x16\x83Rd\x01\0\0\0\0\x82\x04`\xFF\x90\x81\x16` \x85\x01Re\x01\0\0\0\0\0\x83\x04\x16\x93\x83\x01\x93\x90\x93Rf\x01\0\0\0\0\0\0\x81\x04\x83\x16``\x83\x01Rj\x01\0\0\0\0\0\0\0\0\0\0\x81\x04\x90\x92\x16`\x80\x82\x01Rn\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x91\x04o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\xA0\x82\x01R\x90V[`@Qa\x03\xC6\x91\x90`\0`\xC0\x82\x01\x90Pc\xFF\xFF\xFF\xFF\x80\x84Q\x16\x83R`\xFF` \x85\x01Q\x16` \x84\x01R`\xFF`@\x85\x01Q\x16`@\x84\x01R\x80``\x85\x01Q\x16``\x84\x01R\x80`\x80\x85\x01Q\x16`\x80\x84\x01RPo\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF`\xA0\x84\x01Q\x16`\xA0\x83\x01R\x92\x91PPV[`jTa\x05\xD1\x90c\xFF\xFF\xFF\xFF\x16\x81V[a\x03\xBC`kT\x81V[a\x03\xD7a\x15\xCDV[a\x03\xD7a\x15\xFDV[a\x03\xBCa\x16DV[a\x03\xBC`gT\x81V[`hTa\x05\xD1\x90l\x01\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04c\xFF\xFF\xFF\xFF\x16\x81V[a\x03\xD7a\x16oV[a\x04\x02a\ti6`\x04a+~V[a\x16\xDEV[a\x04\x02a\t|6`\x04a'BV[a\x18\xD5V[a\x03\xBC`fT\x81V[`hTa\x04\x12\x90g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[a\x03\xBCa\x19bV[a\x03\xBCa\x19\x8DV[`jTa\t\xD4\x90t\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04a\xFF\xFF\x16\x81V[`@Qa\xFF\xFF\x90\x91\x16\x81R` \x01a\x03\xC6V[a\x03\xBC`\0\x81V[a\n\x1A`\x01\x7F\xA0L[\xB98\xCAo\xC4m\x95U:\xBF\nv4\\\xE3\xE7\"\xA3\x0B\xF4\xF7I(\xB8\xE7\xD8R2\ra+\xDDV[\x81V[`\0a\nQa\nM`\x01\x7F\x99\x04\xBA\x90\xDD\xE5il\xDA\x05\xC9\xE0\xDA\xB5\xCB\xAA\x0F\xEA\0Z\xCEM\x11!\x8A\x02\xACf\x8D\xADcwa+\xDDV[T\x90V[\x90P\x90V[a\n^a\x19\xBCV[a\np`\x01`\x01`\xA0\x1B\x03\x82\x16a\x1A\x16V[PV[`\0a\nQa\nM`\x01\x7FKlt\xF9\xE6\x88\xCB9\x80\x1F!\x12\xC1J\x8CW#*?\xC5 .\x14D\x12mK\xCE\x86\xEB\x19\xADa+\xDDV[a\n\xABa\x19\xBCV[a\n\xB5\x82\x82a\x1AwV[PPV[a\n\xC1a\x19\xBCV[a\np\x81a\x1BiV[a\n\x1A`\x01\x7FF\xAD\xCB\xEB\xC6\xBE\x8C\xE5Qt\x0C)\xC4|\x87\x98!\x0F#\xF7\xF4\x08lAu)D5%h\xD5\xA8a+\xDDV[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\0Ta\x01\0\x90\x04`\xFF\x16\x15\x80\x15a\x0B5WP`\0T`\xFF\x80\x83\x16\x91\x16\x10[a\x0B\xACW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`.`$\x82\x01R\x7FInitializable: contract is alrea`D\x82\x01R\x7Fdy initialized\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01[`@Q\x80\x91\x03\x90\xFD[`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\x16`\xFF\x83\x16\x17a\x01\0\x17\x90Ua\x0B\xE5a\x1B\xC2V[a\x0B\xEDa\x1C)V[a\x0B\xF6\x8Ca\x18\xD5V[a\x0B\xFF\x89a\x1A\x16V[a\x0C\t\x8B\x8Ba\x1C\xAEV[a\x0C\x12\x88a\x1D\x95V[a\x0C;\x7Fe\xA7\xEDT/\xB3\x7F\xE27\xFD\xFB\xDDp\xB3\x15\x98R?\xE5\xB3(y\xE3\x07\xBA\xE2z\x0B\xD9X\x1C\x08\x88\x90UV[a\x0Cna\x0Ci`\x01\x7Fq\xAC\x12\x82\x9Df\xEEs\xD8\xD9[\xFFP\xB3X\x97E\xCEW\xED\xAEp\xA3\xFB\x11\x1A#BFM\xC5\x98a+\xDDV[\x86\x90UV[a\x0C\xA2a\x0C\x9C`\x01\x7F8?)\x18\x19\xE6\xD5@s\xBC\x9Ad\x82Q\xD9t!\x07k\xDD\x10\x193\xC0\xC0\"!\x9C\xE9X\x067a+\xDDV[\x85Q\x90UV[a\x0C\xD9a\x0C\xD0`\x01\x7FF\xAD\xCB\xEB\xC6\xBE\x8C\xE5Qt\x0C)\xC4|\x87\x98!\x0F#\xF7\xF4\x08lAu)D5%h\xD5\xA8a+\xDDV[` \x86\x01Q\x90UV[a\r\x10a\r\x07`\x01\x7F\x99\x04\xBA\x90\xDD\xE5il\xDA\x05\xC9\xE0\xDA\xB5\xCB\xAA\x0F\xEA\0Z\xCEM\x11!\x8A\x02\xACf\x8D\xADcwa+\xDDV[`@\x86\x01Q\x90UV[a\rGa\r>`\x01\x7FKlt\xF9\xE6\x88\xCB9\x80\x1F!\x12\xC1J\x8CW#*?\xC5 .\x14D\x12mK\xCE\x86\xEB\x19\xADa+\xDDV[``\x86\x01Q\x90UV[a\r~a\ru`\x01\x7F\xA0L[\xB98\xCAo\xC4m\x95U:\xBF\nv4\\\xE3\xE7\"\xA3\x0B\xF4\xF7I(\xB8\xE7\xD8R2\ra+\xDDV[`\x80\x86\x01Q\x90UV[a\r\xB5a\r\xAC`\x01\x7FQT\x7F1\xA21\xE1\0}\xCA3\x01\x7F\xAA=\xA2\r\x95\x9B\x95\x08|X\x8Awh\xBF\xB9\"\xFDY\0a+\xDDV[`\xA0\x86\x01Q\x90UV[a\r\xBDa\x1E\xB7V[a\r\xC6\x86a\x1F\x1FV[`k\x83\x90U`l\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16`\x01`\x01`\xA0\x1B\x03\x84\x16\x17\x90U`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\x16\x90U`@Q`\xFF\x82\x16\x81R\x7F\x7F&\xB8?\xF9n\x1F+jh/\x138R\xF6y\x8A\t\xC4e\xDA\x95\x92\x14`\xCE\xFB8G@$\x98\x90` \x01`@Q\x80\x91\x03\x90\xA1PPPPPPPPPPPPV[`\0a\nQ\x7Fe\xA7\xEDT/\xB3\x7F\xE27\xFD\xFB\xDDp\xB3\x15\x98R?\xE5\xB3(y\xE3\x07\xBA\xE2z\x0B\xD9X\x1C\x08T\x90V[a\x0E\x9Ca\x19\xBCV[a\np\x81a#\x11V[`\0a\nQa\nM`\x01\x7FQT\x7F1\xA21\xE1\0}\xCA3\x01\x7F\xAA=\xA2\r\x95\x9B\x95\x08|X\x8Awh\xBF\xB9\"\xFDY\0a+\xDDV[a\x0E\xDDa\x19\xBCV[a\n\xB5\x82\x82a\x1C\xAEV[`\0\x80a\x0F\x12\x7F\xB51'hJV\x8B1s\xAE\x13\xB9\xF8\xA6\x01n$>c\xB6\xE8\xEE\x11x\xD6\xA7\x17\x85\x0B]a\x03T\x90V[\x90P`\x01`\x01`\xA0\x1B\x03\x81\x16\x15a\x0F(W\x91\x90PV[`@Q\x80`@\x01`@R\x80`\x1A\x81R` \x01\x7FOVM_L1CrossDomainMessenger\0\0\0\0\0\0\x81RPQ`\x02a\x0Fk\x91\x90a+\xF4V[`@\x80Q0` \x82\x01R`\0\x91\x81\x01\x91\x90\x91R\x7FOVM_L1CrossDomainMessenger\0\0\0\0\0\0\x91\x90\x91\x17\x90a\x0F\xC6\x90``\x01[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 T\x90V[\x14a\x0F\xFDW`@Q\x7FT\xE43\xCD\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\x01`@Q\x80\x91\x03\x90\xFD[`@\x80Q0` \x82\x01R`\x01\x91\x81\x01\x91\x90\x91R`\0\x90a\x10\x1F\x90``\x01a\x0F\xACV[\x90P`\x01`\x01`\xA0\x1B\x03\x81\x16\x15a\x10\x99W\x80`\x01`\x01`\xA0\x1B\x03\x16c\x8D\xA5\xCB[`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x10nW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x10\x92\x91\x90a,1V[\x92PPP\x90V[`@Q\x7F3!D\xDB\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\x01`@Q\x80\x91\x03\x90\xFD[`lT`@\x80Q\x7FE*\x93 \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\x90Q`\0\x92`\x01`\x01`\xA0\x1B\x03\x16\x91cE*\x93 \x91`\x04\x80\x83\x01\x92` \x92\x91\x90\x82\x90\x03\x01\x81\x86Z\xFA\x15\x80\x15a\x11.W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\nQ\x91\x90a,1V[`\0a\nQa\nM`\x01\x7F\xA1\x1E\xE3\xABu\xB4\x0E\x88\xA0\x10^\x93]\x17\xCD6\xC8\xFA\xEE\x0182\rwlA\x12\x91\xBD\xBB\xB1\xA0a+\xDDV[`iT`\0\x90a\nQ\x90c\xFF\xFF\xFF\xFFj\x01\0\0\0\0\0\0\0\0\0\0\x82\x04\x81\x16\x91\x16a,NV[\x7FETH_LOCKBOX\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\0\x90\x81R`m` R\x7FX\xE8\x8E\x94\x9B\xD1\x80\xFF\x86\xD6\xC0rs\\=\x8DZ\x05\xA5C\xC1a0\x17n\xC0\xBC\n\xDF?\xD8\x06T\x81\x90`\xFF\x16a\x12\x0BWa\x12\x06a\nsV[a\x12tV[a\x12\x13a\nsV[`\x01`\x01`\xA0\x1B\x03\x16c\xB6\x82\xC4D`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x12PW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x12t\x91\x90a,1V[`lT`@Q\x7F.H\x15,\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`\0`\x04\x82\x01R\x91\x92P`\x01`\x01`\xA0\x1B\x03\x16\x90c.H\x15,\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x12\xD7W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x12\xFB\x91\x90a,zV[\x80a\x13\x88WP`lT`@Q\x7F.H\x15,\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`\x01`\x01`\xA0\x1B\x03\x83\x81\x16`\x04\x83\x01R\x90\x91\x16\x90c.H\x15,\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x13dW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x13\x88\x91\x90a,zV[\x91PP\x90V[a\n\x1A`\x01\x7F8?)\x18\x19\xE6\xD5@s\xBC\x9Ad\x82Q\xD9t!\x07k\xDD\x10\x193\xC0\xC0\"!\x9C\xE9X\x067a+\xDDV[a\x13\xC1a\x19\xBCV[a\x13\xCB`\0a#~V[V[a\x13\xD5a\x19\xBCV[a\np\x81a#\xE8V[a\n\x1A`\x01\x7FQT\x7F1\xA21\xE1\0}\xCA3\x01\x7F\xAA=\xA2\r\x95\x9B\x95\x08|X\x8Awh\xBF\xB9\"\xFDY\0a+\xDDV[a\x14\x11a\x19\xBCV[a\n\xB5\x82\x82a$[V[`\0a\nQa\nM`\x01\x7F\xA0L[\xB98\xCAo\xC4m\x95U:\xBF\nv4\\\xE3\xE7\"\xA3\x0B\xF4\xF7I(\xB8\xE7\xD8R2\ra+\xDDV[`@\x80Q`\xC0\x81\x01\x82R`\0\x80\x82R` \x82\x01\x81\x90R\x91\x81\x01\x82\x90R``\x81\x01\x82\x90R`\x80\x81\x01\x82\x90R`\xA0\x81\x01\x91\x90\x91R`@Q\x80`\xC0\x01`@R\x80a\x14\x90a\x15\x0EV[`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x01a\x14\xA6a\x15\x8CV[`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x01a\x14\xBCa\n\x1DV[`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x01a\x14\xD2a\nsV[`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x01a\x14\xE8a\x14\x1BV[`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x01a\x14\xFEa\x0E\xA5V[`\x01`\x01`\xA0\x1B\x03\x16\x90R\x91\x90PV[`\0a\nQa\nM`\x01\x7F8?)\x18\x19\xE6\xD5@s\xBC\x9Ad\x82Q\xD9t!\x07k\xDD\x10\x193\xC0\xC0\"!\x9C\xE9X\x067a+\xDDV[a\x15Fa\x19\xBCV[a\np\x81a\x1D\x95V[a\n\x1A`\x01\x7Fq\xAC\x12\x82\x9Df\xEEs\xD8\xD9[\xFFP\xB3X\x97E\xCEW\xED\xAEp\xA3\xFB\x11\x1A#BFM\xC5\x98a+\xDDV[a\x15\x82a\x19\xBCV[a\n\xB5\x82\x82a%\x17V[`\0a\nQa\nM`\x01\x7FF\xAD\xCB\xEB\xC6\xBE\x8C\xE5Qt\x0C)\xC4|\x87\x98!\x0F#\xF7\xF4\x08lAu)D5%h\xD5\xA8a+\xDDV[a\x15\xC4a\x19\xBCV[a\np\x81a\x1A\x16V[`\0a\nQa\nM`\x01\x7Fq\xAC\x12\x82\x9Df\xEEs\xD8\xD9[\xFFP\xB3X\x97E\xCEW\xED\xAEp\xA3\xFB\x11\x1A#BFM\xC5\x98a+\xDDV[`\0a\x16\x07a\x0E\xE7V[`\x01`\x01`\xA0\x1B\x03\x16c\x8D\xA5\xCB[`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x11.W=`\0\x80>=`\0\xFD[a\n\x1A`\x01\x7F\xA1\x1E\xE3\xABu\xB4\x0E\x88\xA0\x10^\x93]\x17\xCD6\xC8\xFA\xEE\x0182\rwlA\x12\x91\xBD\xBB\xB1\xA0a+\xDDV[`\0\x80a\x16za\nsV[\x90P\x80`\x01`\x01`\xA0\x1B\x03\x16c\xF2\xB4\xE6\x17`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x16\xBAW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x13\x88\x91\x90a,1V[a\x16\xE6a\x1B\xC2V[`\0\x82\x81R`m` R`@\x90 T`\xFF\x16\x15\x15\x81\x15\x15\x03a\x174W`@Q\x7F\xF5\x82\x8B\x04\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\x01`@Q\x80\x91\x03\x90\xFD[\x7FETH_LOCKBOX\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x82\x03a\x18kW`\0\x82\x81R`m` R`@\x90 T`\xFF\x16\x80\x15a\x17wWP\x80\x15[\x80\x15a\x17\xF5WP`\0a\x17\x88a\nsV[`\x01`\x01`\xA0\x1B\x03\x16c\xB6\x82\xC4D`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x17\xC5W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x17\xE9\x91\x90a,1V[`\x01`\x01`\xA0\x1B\x03\x16\x14\x15[\x15a\x18,W`@Q\x7F\xF5\x82\x8B\x04\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\x01`@Q\x80\x91\x03\x90\xFD[a\x184a\x11\xA8V[\x15a\x18kW`@Q\x7F\xF5\x82\x8B\x04\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\x01`@Q\x80\x91\x03\x90\xFD[`\0\x82\x81R`m` R`@\x80\x82 \x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x16\x84\x15\x15\x90\x81\x17\x90\x91U\x90Q\x90\x91\x84\x91\x7F\xB8v\xF6YA2\xC8\x98\x91\xD2\xFD\x19\x8E\x92^\x99\x9B\xE7A\xEC\x80\x9A\xBBX\xBF\xE9\xB9f\x87l\xC0l\x91\x90\xA3PPV[a\x18\xDDa\x19\xBCV[`\x01`\x01`\xA0\x1B\x03\x81\x16a\x19YW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`&`$\x82\x01R\x7FOwnable: new owner is the zero a`D\x82\x01R\x7Fddress\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`d\x82\x01R`\x84\x01a\x0B\xA3V[a\np\x81a#~V[a\n\x1A`\x01\x7F\x99\x04\xBA\x90\xDD\xE5il\xDA\x05\xC9\xE0\xDA\xB5\xCB\xAA\x0F\xEA\0Z\xCEM\x11!\x8A\x02\xACf\x8D\xADcwa+\xDDV[a\n\x1A`\x01\x7FKlt\xF9\xE6\x88\xCB9\x80\x1F!\x12\xC1J\x8CW#*?\xC5 .\x14D\x12mK\xCE\x86\xEB\x19\xADa+\xDDV[\x90UV[`3T`\x01`\x01`\xA0\x1B\x03\x163\x14a\x13\xCBW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01\x81\x90R`$\x82\x01R\x7FOwnable: caller is not the owner`D\x82\x01R`d\x01a\x0B\xA3V[`g\x81\x90U`@\x80Q` \x80\x82\x01\x84\x90R\x82Q\x80\x83\x03\x90\x91\x01\x81R\x90\x82\x01\x90\x91R`\0[`\0\x7F\x1D+\x0B\xDA!\xD5k\x8B\xD1-O\x94\xEB\xAC\xFF\xDF\xB3_^\"o\x84\xB4a\x10;\xB8\xBE\xABcS\xBE\x83`@Qa\x1Ak\x91\x90a+ V[`@Q\x80\x91\x03\x90\xA3PPV[`j\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16h\x01\0\0\0\0\0\0\0\0c\xFF\xFF\xFF\xFF\x85\x16\x02\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x17l\x01\0\0\0\0\0\0\0\0\0\0\0\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x16\x90\x81\x02\x91\x90\x91\x17\x90\x91U`@\x80Qk\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\x85\x83\x1B\x16\x90\x92\x17` \x83\x01R`\0\x91\x01`@\x80Q`\x1F\x19\x81\x84\x03\x01\x81R\x91\x90R\x90P`\x05[`\0\x7F\x1D+\x0B\xDA!\xD5k\x8B\xD1-O\x94\xEB\xAC\xFF\xDF\xB3_^\"o\x84\xB4a\x10;\xB8\xBE\xABcS\xBE\x83`@Qa\x1B\\\x91\x90a+ V[`@Q\x80\x91\x03\x90\xA3PPPV[a\x1B\x92\x7Fe\xA7\xEDT/\xB3\x7F\xE27\xFD\xFB\xDDp\xB3\x15\x98R?\xE5\xB3(y\xE3\x07\xBA\xE2z\x0B\xD9X\x1C\x08\x82\x90UV[`@\x80Q`\x01`\x01`\xA0\x1B\x03\x83\x16` \x82\x01R`\0\x91\x01`@\x80Q`\x1F\x19\x81\x84\x03\x01\x81R\x91\x90R\x90P`\x03a\x1A:V[3a\x1B\xCBa\x0E\xE7V[`\x01`\x01`\xA0\x1B\x03\x16\x14\x15\x80\x15a\x1B\xF2WP3a\x1B\xE6a\x15\xFDV[`\x01`\x01`\xA0\x1B\x03\x16\x14\x15[\x15a\x13\xCBW`@Q\x7F\xC4\x05\n&\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\x01`@Q\x80\x91\x03\x90\xFD[`\0Ta\x01\0\x90\x04`\xFF\x16a\x1C\xA6W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FInitializable: contract is not i`D\x82\x01R\x7Fnitializing\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x0B\xA3V[a\x13\xCBa&\x97V[`h\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16h\x01\0\0\0\0\0\0\0\0c\xFF\xFF\xFF\xFF\x85\x81\x16\x91\x82\x02\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x92\x90\x92\x17l\x01\0\0\0\0\0\0\0\0\0\0\0\0\x92\x85\x16\x92\x90\x92\x02\x91\x90\x91\x17\x90\x91U\x7F\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0` \x83\x81\x1Bg\xFF\xFF\xFF\xFF\0\0\0\0\x16\x90\x92\x17\x17`f\x81\x90U`eT`@\x80Q\x93\x84\x01\x91\x90\x91R\x82\x01R`\0\x90``\x01[`@\x80Q`\x1F\x19\x81\x84\x03\x01\x81R\x91\x90R\x90P`\x01a\x1B+V[a\x1D\x9Da\x11\x82V[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x10\x15a\x1E\0W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1F`$\x82\x01R\x7FSystemConfig: gas limit too low\0`D\x82\x01R`d\x01a\x0B\xA3V[c\x1D\xCDe\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16\x11\x15a\x1E^W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01\x81\x90R`$\x82\x01R\x7FSystemConfig: gas limit too high`D\x82\x01R`d\x01a\x0B\xA3V[`h\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\x16g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x16\x90\x81\x17\x90\x91U`@\x80Q` \x80\x82\x01\x93\x90\x93R\x81Q\x80\x82\x03\x90\x93\x01\x83R\x81\x01\x90R`\x02a\x1A:V[a\x1E\xE5a\nM`\x01\x7F\xA1\x1E\xE3\xABu\xB4\x0E\x88\xA0\x10^\x93]\x17\xCD6\xC8\xFA\xEE\x0182\rwlA\x12\x91\xBD\xBB\xB1\xA0a+\xDDV[`\0\x03a\x13\xCBWa\x13\xCBa\x1F\x1A`\x01\x7F\xA1\x1E\xE3\xABu\xB4\x0E\x88\xA0\x10^\x93]\x17\xCD6\xC8\xFA\xEE\x0182\rwlA\x12\x91\xBD\xBB\xB1\xA0a+\xDDV[C\x90UV[\x80`\xA0\x01Qo\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81``\x01Qc\xFF\xFF\xFF\xFF\x16\x11\x15a\x1F\xB5W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`5`$\x82\x01R\x7FSystemConfig: min base fee must `D\x82\x01R\x7Fbe less than max base\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x0B\xA3V[`\x01\x81`@\x01Q`\xFF\x16\x11a 2W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`/`$\x82\x01R\x7FSystemConfig: denominator must b`D\x82\x01R\x7Fe larger than 1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x0B\xA3V[`hT`\x80\x82\x01Q\x82Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x92\x16\x91a S\x91\x90a,\x97V[c\xFF\xFF\xFF\xFF\x16\x11\x15a \xA7W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1F`$\x82\x01R\x7FSystemConfig: gas limit too low\0`D\x82\x01R`d\x01a\x0B\xA3V[`\0\x81` \x01Q`\xFF\x16\x11a!$W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`/`$\x82\x01R\x7FSystemConfig: elasticity multipl`D\x82\x01R\x7Fier cannot be 0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x0B\xA3V[\x80Q` \x82\x01Qc\xFF\xFF\xFF\xFF\x82\x16\x91`\xFF\x90\x91\x16\x90a!D\x90\x82\x90a,\xB6V[a!N\x91\x90a-\0V[c\xFF\xFF\xFF\xFF\x16\x14a!\xC7W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`7`$\x82\x01R\x7FSystemConfig: precision loss wit`D\x82\x01R\x7Fh target resource limit\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x0B\xA3V[\x80Q`i\x80T` \x84\x01Q`@\x85\x01Q``\x86\x01Q`\x80\x87\x01Q`\xA0\x90\x97\x01Qc\xFF\xFF\xFF\xFF\x96\x87\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\x90\x95\x16\x94\x90\x94\x17d\x01\0\0\0\0`\xFF\x94\x85\x16\x02\x17\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\xFF\xFF\xFF\xFF\xFF\x16e\x01\0\0\0\0\0\x93\x90\x92\x16\x92\x90\x92\x02\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\xFF\xFF\xFF\xFF\xFF\xFF\x16\x17f\x01\0\0\0\0\0\0\x91\x85\x16\x91\x90\x91\x02\x17\x7F\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16j\x01\0\0\0\0\0\0\0\0\0\0\x93\x90\x94\x16\x92\x90\x92\x02\x7F\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x92\x90\x92\x17n\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x92\x16\x91\x90\x91\x02\x17\x90UV[`j\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16t\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\xFF\xFF\x84\x16\x90\x81\x02\x91\x90\x91\x17\x90\x91U`@\x80Q` \x80\x82\x01\x93\x90\x93R\x81Q\x80\x82\x03\x90\x93\x01\x83R\x81\x01\x90R`\x07a\x1A:V[`3\x80T`\x01`\x01`\xA0\x1B\x03\x83\x81\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x83\x16\x81\x17\x90\x93U`@Q\x91\x16\x91\x90\x82\x90\x7F\x8B\xE0\x07\x9CS\x16Y\x14\x13D\xCD\x1F\xD0\xA4\xF2\x84\x19I\x7F\x97\"\xA3\xDA\xAF\xE3\xB4\x18okdW\xE0\x90`\0\x90\xA3PPV[`l\x80T\x7F\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16t\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x16\x90\x81\x02\x91\x90\x91\x17\x90\x91U`@\x80Q` \x80\x82\x01\x93\x90\x93R\x81Q\x80\x82\x03\x90\x93\x01\x83R\x81\x01\x90R`\x06a\x1A:V[\x7F\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81\x16\x15a$\xF1W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`!`$\x82\x01R\x7FSystemConfig: scalar exceeds max`D\x82\x01R\x7F.\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x0B\xA3V[`e\x82\x90U`f\x81\x90U`@\x80Q` \x81\x01\x84\x90R\x90\x81\x01\x82\x90R`\0\x90``\x01a\x1D|V[`\x01\x82c\xFF\xFF\xFF\xFF\x16\x10\x15a%\x94W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`&`$\x82\x01R\x7FSystemConfig: denominator must b`D\x82\x01R\x7Fe >= 1\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`d\x82\x01R`\x84\x01a\x0B\xA3V[`\x01\x81c\xFF\xFF\xFF\xFF\x16\x10\x15a&\x11W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`%`$\x82\x01R\x7FSystemConfig: elasticity must be`D\x82\x01R\x7F >= 1\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`d\x82\x01R`\x84\x01a\x0B\xA3V[`j\x80Tc\xFF\xFF\xFF\xFF\x83\x81\x16d\x01\0\0\0\0\x81\x02\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\x90\x93\x16\x91\x86\x16\x91\x90\x91\x17\x91\x90\x91\x17\x90\x91U`@Q`\0\x91a&~\x91` \x86\x81\x1Bg\xFF\xFF\xFF\xFF\0\0\0\0\x16\x90\x92\x17\x91\x01\x90\x81R` \x01\x90V[`@\x80Q`\x1F\x19\x81\x84\x03\x01\x81R\x91\x90R\x90P`\x04a\x1B+V[`\0Ta\x01\0\x90\x04`\xFF\x16a'\x14W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FInitializable: contract is not i`D\x82\x01R\x7Fnitializing\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x0B\xA3V[a\x13\xCB3a#~V[`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a\npW`\0\x80\xFD[\x805a'=\x81a'\x1DV[\x91\x90PV[`\0` \x82\x84\x03\x12\x15a'TW`\0\x80\xFD[\x815a'_\x81a'\x1DV[\x93\x92PPPV[\x805c\xFF\xFF\xFF\xFF\x81\x16\x81\x14a'=W`\0\x80\xFD[\x805g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a'=W`\0\x80\xFD[`\0\x80`@\x83\x85\x03\x12\x15a'\xA5W`\0\x80\xFD[a'\xAE\x83a'fV[\x91Pa'\xBC` \x84\x01a'zV[\x90P\x92P\x92\x90PV[`@Q`\xC0\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a(\x0FW\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[`@R\x90V[\x805`\xFF\x81\x16\x81\x14a'=W`\0\x80\xFD[`\0`\xC0\x82\x84\x03\x12\x15a(8W`\0\x80\xFD[`@Q`\xC0\x81\x01\x81\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17\x15a(\x82W\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[`@R\x90P\x80\x825a(\x93\x81a'\x1DV[\x81R` \x83\x015a(\xA3\x81a'\x1DV[` \x82\x01R`@\x83\x015a(\xB6\x81a'\x1DV[`@\x82\x01R``\x83\x015a(\xC9\x81a'\x1DV[``\x82\x01R`\x80\x83\x015a(\xDC\x81a'\x1DV[`\x80\x82\x01R`\xA0\x83\x015a(\xEF\x81a'\x1DV[`\xA0\x91\x90\x91\x01R\x92\x91PPV[`\0\x80`\0\x80`\0\x80`\0\x80`\0\x80`\0\x8B\x8D\x03a\x02\xA0\x81\x12\x15a)\x1FW`\0\x80\xFD[\x8C5a)*\x81a'\x1DV[\x9BPa)8` \x8E\x01a'fV[\x9APa)F`@\x8E\x01a'fV[\x99P``\x8D\x015\x98Pa)[`\x80\x8E\x01a'zV[\x97P`\xA0\x8D\x015a)k\x81a'\x1DV[\x96P`\xC0\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF@\x82\x01\x12\x15a)\x9DW`\0\x80\xFD[Pa)\xA6a'\xC5V[a)\xB2`\xC0\x8E\x01a'fV[\x81Ra)\xC0`\xE0\x8E\x01a(\x15V[` \x82\x01Ra)\xD2a\x01\0\x8E\x01a(\x15V[`@\x82\x01Ra)\xE4a\x01 \x8E\x01a'fV[``\x82\x01Ra)\xF6a\x01@\x8E\x01a'fV[`\x80\x82\x01Ra\x01`\x8D\x015o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a*\x1FW`\0\x80\xFD[`\xA0\x82\x01R\x94Pa*3a\x01\x80\x8D\x01a'2V[\x93Pa*C\x8Da\x01\xA0\x8E\x01a(&V[\x92Pa\x02`\x8C\x015\x91Pa*Za\x02\x80\x8D\x01a'2V[\x90P\x92\x95\x98\x9BP\x92\x95\x98\x9B\x90\x93\x96\x99PV[`\0` \x82\x84\x03\x12\x15a*~W`\0\x80\xFD[\x815a\xFF\xFF\x81\x16\x81\x14a'_W`\0\x80\xFD[`\0\x80`@\x83\x85\x03\x12\x15a*\xA3W`\0\x80\xFD[a*\xAC\x83a'fV[\x91Pa'\xBC` \x84\x01a'fV[`\0` \x82\x84\x03\x12\x15a*\xCCW`\0\x80\xFD[P5\x91\x90PV[`\0\x81Q\x80\x84R`\0[\x81\x81\x10\x15a*\xF9W` \x81\x85\x01\x81\x01Q\x86\x83\x01\x82\x01R\x01a*\xDDV[\x81\x81\x11\x15a+\x0BW`\0` \x83\x87\x01\x01R[P`\x1F\x01`\x1F\x19\x16\x92\x90\x92\x01` \x01\x92\x91PPV[` \x81R`\0a'_` \x83\x01\x84a*\xD3V[`\0` \x82\x84\x03\x12\x15a+EW`\0\x80\xFD[a'_\x82a'zV[`\0\x80`@\x83\x85\x03\x12\x15a+aW`\0\x80\xFD[PP\x805\x92` \x90\x91\x015\x91PV[\x80\x15\x15\x81\x14a\npW`\0\x80\xFD[`\0\x80`@\x83\x85\x03\x12\x15a+\x91W`\0\x80\xFD[\x825\x91P` \x83\x015a+\xA3\x81a+pV[\x80\x91PP\x92P\x92\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`\x11`\x04R`$`\0\xFD[`\0\x82\x82\x10\x15a+\xEFWa+\xEFa+\xAEV[P\x03\x90V[`\0\x81\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x04\x83\x11\x82\x15\x15\x16\x15a,,Wa,,a+\xAEV[P\x02\x90V[`\0` \x82\x84\x03\x12\x15a,CW`\0\x80\xFD[\x81Qa'_\x81a'\x1DV[`\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x83\x16\x81\x85\x16\x80\x83\x03\x82\x11\x15a,qWa,qa+\xAEV[\x01\x94\x93PPPPV[`\0` \x82\x84\x03\x12\x15a,\x8CW`\0\x80\xFD[\x81Qa'_\x81a+pV[`\0c\xFF\xFF\xFF\xFF\x80\x83\x16\x81\x85\x16\x80\x83\x03\x82\x11\x15a,qWa,qa+\xAEV[`\0c\xFF\xFF\xFF\xFF\x80\x84\x16\x80a,\xF4W\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`\x12`\x04R`$`\0\xFD[\x92\x16\x91\x90\x91\x04\x92\x91PPV[`\0c\xFF\xFF\xFF\xFF\x80\x83\x16\x81\x85\x16\x81\x83\x04\x81\x11\x82\x15\x15\x16\x15a-#Wa-#a+\xAEV[\x02\x94\x93PPPPV\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x608060405234801561001057600080fd5b50600436106103af5760003560e01c80637e54b8ad116101f4578063d220a9e01161011a578063f2c4bc9e116100ad578063f8c68de01161007c578063f8c68de01461099e578063fd32aa0f146109a6578063fe3d5710146109ae578063ffa1ad74146109e757600080fd5b8063f2c4bc9e1461095b578063f2fde38b1461096e578063f45e65d814610981578063f68016b71461098a57600080fd5b8063e0e2016d116100e9578063e0e2016d14610922578063e81b2c6d1461092a578063ec70751714610933578063f2b4e6171461095357600080fd5b8063d220a9e0146108f9578063d6ae3cd514610909578063dac6e63a14610912578063dad544e01461091a57600080fd5b8063b40a817c11610192578063c4e8ddfa11610161578063c4e8ddfa14610792578063c9b26f611461079a578063c9ff2d16146107ad578063cc731b02146107c557600080fd5b8063b40a817c14610748578063bc49ce5f1461075b578063bfb14fb714610763578063c0fd4b411461077f57600080fd5b80639b7d7f0a116101ce5780639b7d7f0a146106a3578063a39fac12146106ab578063a62611a214610714578063a71198691461074057600080fd5b80637e54b8ad146106775780638da5cb5b1461067f578063935f029e1461069057600080fd5b806321d7fde5116102d95780634add321d116102775780635c975abb116102465780635c975abb1461064c5780635d73369c14610654578063715018a61461065c5780637616f0e81461066457600080fd5b80634add321d146105ad5780634d5d9a2a146105b55780634f16540b146105e657806354fd4d501461060d57600080fd5b80633e47158c116102b35780633e47158c14610572578063452a93201461057a57806347af267b1461058257806348cd4cb1146105a557600080fd5b806321d7fde51461051b57806335e80ab31461052e57806338d38c971461054157600080fd5b806316d3bc7f116103515780631fd19ee1116103205780631fd19ee11461049957806320f06fdc146104a157806321326849146104b4578063215b7a1c1461051357600080fd5b806316d3bc7f1461044757806318d139181461046b57806319f5cea81461047e5780631edd50981461048657600080fd5b80630a49cb031161038d5780630a49cb03146104045780630ae14b1b1461040c5780630c18c1621461042b578063155b6c6f1461043457600080fd5b806306c92657146103b4578063078f29cf146103cf5780630a2ca2a9146103ef575b600080fd5b6103bc6109ef565b6040519081526020015b60405180910390f35b6103d7610a1d565b6040516001600160a01b0390911681526020016103c6565b6104026103fd366004612742565b610a56565b005b6103d7610a73565b631dcd65005b60405167ffffffffffffffff90911681526020016103c6565b6103bc60655481565b610402610442366004612792565b610aa3565b606a54610412906c01000000000000000000000000900467ffffffffffffffff1681565b610402610479366004612742565b610ab9565b6103bc610aca565b6104026104943660046128fc565b610af5565b6103d7610e6a565b6104026104af366004612a6c565b610e94565b7f435553544f4d5f4741535f544f4b454e00000000000000000000000000000000600052606d6020527f3ec9a18bd22a834e2a13465cc2aa2a9aebb161ffdebf39cdb0028dbb1b5394b45460ff165b60405190151581526020016103c6565b6103d7610ea5565b610402610529366004612a90565b610ed5565b606c546103d7906001600160a01b031681565b60405160ff7f00000000000000000000000000000000000000000000000000000000000000001681526020016103c6565b6103d7610ee7565b6103d76110cb565b610503610590366004612aba565b606d6020526000908152604090205460ff1681565b6103bc611152565b610412611182565b606a546105d19068010000000000000000900463ffffffff1681565b60405163ffffffff90911681526020016103c6565b6103bc7f65a7ed542fb37fe237fdfbdd70b31598523fe5b32879e307bae27a0bd9581c0881565b604080518082018252600681527f332e31332e320000000000000000000000000000000000000000000000000000602082015290516103c69190612b20565b6105036111a8565b6103bc61138e565b6104026113b9565b610402610672366004612b33565b6113cd565b6103bc6113de565b6033546001600160a01b03166103d7565b61040261069e366004612b4e565b611409565b6103d761141b565b6106b361144b565b6040516103c69190600060c0820190506001600160a01b038084511683528060208501511660208401528060408501511660408401528060608501511660608401528060808501511660808401528060a08501511660a08401525092915050565b606c546104129074010000000000000000000000000000000000000000900467ffffffffffffffff1681565b6103d761150e565b610402610756366004612b33565b61153e565b6103bc61154f565b6068546105d19068010000000000000000900463ffffffff1681565b61040261078d366004612a90565b61157a565b6103d761158c565b6104026107a8366004612aba565b6115bc565b606a546105d190640100000000900463ffffffff1681565b6108896040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a0810191909152506040805160c08101825260695463ffffffff8082168352640100000000820460ff9081166020850152650100000000008304169383019390935266010000000000008104831660608301526a0100000000000000000000810490921660808201526e0100000000000000000000000000009091046fffffffffffffffffffffffffffffffff1660a082015290565b6040516103c69190600060c08201905063ffffffff80845116835260ff602085015116602084015260ff6040850151166040840152806060850151166060840152806080850151166080840152506fffffffffffffffffffffffffffffffff60a08401511660a083015292915050565b606a546105d19063ffffffff1681565b6103bc606b5481565b6103d76115cd565b6103d76115fd565b6103bc611644565b6103bc60675481565b6068546105d1906c01000000000000000000000000900463ffffffff1681565b6103d761166f565b610402610969366004612b7e565b6116de565b61040261097c366004612742565b6118d5565b6103bc60665481565b6068546104129067ffffffffffffffff1681565b6103bc611962565b6103bc61198d565b606a546109d49074010000000000000000000000000000000000000000900461ffff1681565b60405161ffff90911681526020016103c6565b6103bc600081565b610a1a60017fa04c5bb938ca6fc46d95553abf0a76345ce3e722a30bf4f74928b8e7d852320d612bdd565b81565b6000610a51610a4d60017f9904ba90dde5696cda05c9e0dab5cbaa0fea005ace4d11218a02ac668dad6377612bdd565b5490565b905090565b610a5e6119bc565b610a706001600160a01b038216611a16565b50565b6000610a51610a4d60017f4b6c74f9e688cb39801f2112c14a8c57232a3fc5202e1444126d4bce86eb19ad612bdd565b610aab6119bc565b610ab58282611a77565b5050565b610ac16119bc565b610a7081611b69565b610a1a60017f46adcbebc6be8ce551740c29c47c8798210f23f7f4086c41752944352568d5a8612bdd565b7f0000000000000000000000000000000000000000000000000000000000000000600054610100900460ff16158015610b35575060005460ff8083169116105b610bac5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084015b60405180910390fd5b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001660ff831617610100179055610be5611bc2565b610bed611c29565b610bf68c6118d5565b610bff89611a16565b610c098b8b611cae565b610c1288611d95565b610c3b7f65a7ed542fb37fe237fdfbdd70b31598523fe5b32879e307bae27a0bd9581c08889055565b610c6e610c6960017f71ac12829d66ee73d8d95bff50b3589745ce57edae70a3fb111a2342464dc598612bdd565b869055565b610ca2610c9c60017f383f291819e6d54073bc9a648251d97421076bdd101933c0c022219ce9580637612bdd565b85519055565b610cd9610cd060017f46adcbebc6be8ce551740c29c47c8798210f23f7f4086c41752944352568d5a8612bdd565b60208601519055565b610d10610d0760017f9904ba90dde5696cda05c9e0dab5cbaa0fea005ace4d11218a02ac668dad6377612bdd565b60408601519055565b610d47610d3e60017f4b6c74f9e688cb39801f2112c14a8c57232a3fc5202e1444126d4bce86eb19ad612bdd565b60608601519055565b610d7e610d7560017fa04c5bb938ca6fc46d95553abf0a76345ce3e722a30bf4f74928b8e7d852320d612bdd565b60808601519055565b610db5610dac60017f51547f31a231e1007dca33017faa3da20d959b95087c588a7768bfb922fd5900612bdd565b60a08601519055565b610dbd611eb7565b610dc686611f1f565b606b839055606c80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b038416179055600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050505050505050505050565b6000610a517f65a7ed542fb37fe237fdfbdd70b31598523fe5b32879e307bae27a0bd9581c085490565b610e9c6119bc565b610a7081612311565b6000610a51610a4d60017f51547f31a231e1007dca33017faa3da20d959b95087c588a7768bfb922fd5900612bdd565b610edd6119bc565b610ab58282611cae565b600080610f127fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b90506001600160a01b03811615610f2857919050565b6040518060400160405280601a81526020017f4f564d5f4c3143726f7373446f6d61696e4d657373656e676572000000000000815250516002610f6b9190612bf4565b604080513060208201526000918101919091527f4f564d5f4c3143726f7373446f6d61696e4d657373656e6765720000000000009190911790610fc6906060015b604051602081830303815290604052805190602001205490565b14610ffd576040517f54e433cd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805130602082015260019181019190915260009061101f90606001610fac565b90506001600160a01b0381161561109957806001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561106e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110929190612c31565b9250505090565b6040517f332144db00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b606c54604080517f452a932000000000000000000000000000000000000000000000000000000000815290516000926001600160a01b03169163452a93209160048083019260209291908290030181865afa15801561112e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a519190612c31565b6000610a51610a4d60017fa11ee3ab75b40e88a0105e935d17cd36c8faee0138320d776c411291bdbbb1a0612bdd565b606954600090610a519063ffffffff6a0100000000000000000000820481169116612c4e565b7f4554485f4c4f434b424f580000000000000000000000000000000000000000006000908152606d6020527f58e88e949bd180ff86d6c072735c3d8d5a05a543c16130176ec0bc0adf3fd80654819060ff1661120b57611206610a73565b611274565b611213610a73565b6001600160a01b031663b682c4446040518163ffffffff1660e01b8152600401602060405180830381865afa158015611250573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112749190612c31565b606c546040517f2e48152c000000000000000000000000000000000000000000000000000000008152600060048201529192506001600160a01b031690632e48152c90602401602060405180830381865afa1580156112d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112fb9190612c7a565b806113885750606c546040517f2e48152c0000000000000000000000000000000000000000000000000000000081526001600160a01b03838116600483015290911690632e48152c90602401602060405180830381865afa158015611364573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113889190612c7a565b91505090565b610a1a60017f383f291819e6d54073bc9a648251d97421076bdd101933c0c022219ce9580637612bdd565b6113c16119bc565b6113cb600061237e565b565b6113d56119bc565b610a70816123e8565b610a1a60017f51547f31a231e1007dca33017faa3da20d959b95087c588a7768bfb922fd5900612bdd565b6114116119bc565b610ab5828261245b565b6000610a51610a4d60017fa04c5bb938ca6fc46d95553abf0a76345ce3e722a30bf4f74928b8e7d852320d612bdd565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a08101919091526040518060c0016040528061149061150e565b6001600160a01b031681526020016114a661158c565b6001600160a01b031681526020016114bc610a1d565b6001600160a01b031681526020016114d2610a73565b6001600160a01b031681526020016114e861141b565b6001600160a01b031681526020016114fe610ea5565b6001600160a01b03169052919050565b6000610a51610a4d60017f383f291819e6d54073bc9a648251d97421076bdd101933c0c022219ce9580637612bdd565b6115466119bc565b610a7081611d95565b610a1a60017f71ac12829d66ee73d8d95bff50b3589745ce57edae70a3fb111a2342464dc598612bdd565b6115826119bc565b610ab58282612517565b6000610a51610a4d60017f46adcbebc6be8ce551740c29c47c8798210f23f7f4086c41752944352568d5a8612bdd565b6115c46119bc565b610a7081611a16565b6000610a51610a4d60017f71ac12829d66ee73d8d95bff50b3589745ce57edae70a3fb111a2342464dc598612bdd565b6000611607610ee7565b6001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561112e573d6000803e3d6000fd5b610a1a60017fa11ee3ab75b40e88a0105e935d17cd36c8faee0138320d776c411291bdbbb1a0612bdd565b60008061167a610a73565b9050806001600160a01b031663f2b4e6176040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113889190612c31565b6116e6611bc2565b6000828152606d602052604090205460ff16151581151503611734576040517ff5828b0400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f4554485f4c4f434b424f58000000000000000000000000000000000000000000820361186b576000828152606d602052604090205460ff168015611777575080155b80156117f557506000611788610a73565b6001600160a01b031663b682c4446040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117e99190612c31565b6001600160a01b031614155b1561182c576040517ff5828b0400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6118346111a8565b1561186b576040517ff5828b0400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000828152606d602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168415159081179091559051909184917fb876f6594132c89891d2fd198e925e999be741ec809abb58bfe9b966876cc06c9190a35050565b6118dd6119bc565b6001600160a01b0381166119595760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610ba3565b610a708161237e565b610a1a60017f9904ba90dde5696cda05c9e0dab5cbaa0fea005ace4d11218a02ac668dad6377612bdd565b610a1a60017f4b6c74f9e688cb39801f2112c14a8c57232a3fc5202e1444126d4bce86eb19ad612bdd565b9055565b6033546001600160a01b031633146113cb5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610ba3565b60678190556040805160208082018490528251808303909101815290820190915260005b60007f1d2b0bda21d56b8bd12d4f94ebacffdfb35f5e226f84b461103bb8beab6353be83604051611a6b9190612b20565b60405180910390a35050565b606a80547fffffffffffffffffffffffff000000000000000000000000ffffffffffffffff166801000000000000000063ffffffff8516027fffffffffffffffffffffffff0000000000000000ffffffffffffffffffffffff16176c0100000000000000000000000067ffffffffffffffff841690810291909117909155604080516bffffffff000000000000000085831b1690921760208301526000910160408051601f19818403018152919052905060055b60007f1d2b0bda21d56b8bd12d4f94ebacffdfb35f5e226f84b461103bb8beab6353be83604051611b5c9190612b20565b60405180910390a3505050565b611b927f65a7ed542fb37fe237fdfbdd70b31598523fe5b32879e307bae27a0bd9581c08829055565b604080516001600160a01b03831660208201526000910160408051601f1981840301815291905290506003611a3a565b33611bcb610ee7565b6001600160a01b031614158015611bf2575033611be66115fd565b6001600160a01b031614155b156113cb576040517fc4050a2600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600054610100900460ff16611ca65760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610ba3565b6113cb612697565b606880547fffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff166801000000000000000063ffffffff8581169182027fffffffffffffffffffffffffffffffff00000000ffffffffffffffffffffffff16929092176c0100000000000000000000000092851692909202919091179091557f0100000000000000000000000000000000000000000000000000000000000000602083811b67ffffffff000000001690921717606681905560655460408051938401919091528201526000906060015b60408051601f1981840301815291905290506001611b2b565b611d9d611182565b67ffffffffffffffff168167ffffffffffffffff161015611e005760405162461bcd60e51b815260206004820152601f60248201527f53797374656d436f6e6669673a20676173206c696d697420746f6f206c6f77006044820152606401610ba3565b631dcd650067ffffffffffffffff82161115611e5e5760405162461bcd60e51b815260206004820181905260248201527f53797374656d436f6e6669673a20676173206c696d697420746f6f20686967686044820152606401610ba3565b606880547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001667ffffffffffffffff83169081179091556040805160208082019390935281518082039093018352810190526002611a3a565b611ee5610a4d60017fa11ee3ab75b40e88a0105e935d17cd36c8faee0138320d776c411291bdbbb1a0612bdd565b6000036113cb576113cb611f1a60017fa11ee3ab75b40e88a0105e935d17cd36c8faee0138320d776c411291bdbbb1a0612bdd565b439055565b8060a001516fffffffffffffffffffffffffffffffff16816060015163ffffffff161115611fb55760405162461bcd60e51b815260206004820152603560248201527f53797374656d436f6e6669673a206d696e206261736520666565206d7573742060448201527f6265206c657373207468616e206d6178206261736500000000000000000000006064820152608401610ba3565b6001816040015160ff16116120325760405162461bcd60e51b815260206004820152602f60248201527f53797374656d436f6e6669673a2064656e6f6d696e61746f72206d757374206260448201527f65206c6172676572207468616e203100000000000000000000000000000000006064820152608401610ba3565b6068546080820151825167ffffffffffffffff909216916120539190612c97565b63ffffffff1611156120a75760405162461bcd60e51b815260206004820152601f60248201527f53797374656d436f6e6669673a20676173206c696d697420746f6f206c6f77006044820152606401610ba3565b6000816020015160ff16116121245760405162461bcd60e51b815260206004820152602f60248201527f53797374656d436f6e6669673a20656c6173746963697479206d756c7469706c60448201527f6965722063616e6e6f74206265203000000000000000000000000000000000006064820152608401610ba3565b8051602082015163ffffffff82169160ff90911690612144908290612cb6565b61214e9190612d00565b63ffffffff16146121c75760405162461bcd60e51b815260206004820152603760248201527f53797374656d436f6e6669673a20707265636973696f6e206c6f73732077697460448201527f6820746172676574207265736f75726365206c696d69740000000000000000006064820152608401610ba3565b805160698054602084015160408501516060860151608087015160a09097015163ffffffff9687167fffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000009095169490941764010000000060ff94851602177fffffffffffffffffffffffffffffffffffffffffffff0000000000ffffffffff166501000000000093909216929092027fffffffffffffffffffffffffffffffffffffffffffff00000000ffffffffffff1617660100000000000091851691909102177fffff0000000000000000000000000000000000000000ffffffffffffffffffff166a010000000000000000000093909416929092027fffff00000000000000000000000000000000ffffffffffffffffffffffffffff16929092176e0100000000000000000000000000006fffffffffffffffffffffffffffffffff90921691909102179055565b606a80547fffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000061ffff8416908102919091179091556040805160208082019390935281518082039093018352810190526007611a3a565b603380546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b606c80547fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000067ffffffffffffffff8416908102919091179091556040805160208082019390935281518082039093018352810190526006611a3a565b7fff000000000000000000000000000000000000000000000000000000000000008116156124f15760405162461bcd60e51b815260206004820152602160248201527f53797374656d436f6e6669673a207363616c61722065786365656473206d617860448201527f2e000000000000000000000000000000000000000000000000000000000000006064820152608401610ba3565b606582905560668190556040805160208101849052908101829052600090606001611d7c565b60018263ffffffff1610156125945760405162461bcd60e51b815260206004820152602660248201527f53797374656d436f6e6669673a2064656e6f6d696e61746f72206d757374206260448201527f65203e3d203100000000000000000000000000000000000000000000000000006064820152608401610ba3565b60018163ffffffff1610156126115760405162461bcd60e51b815260206004820152602560248201527f53797374656d436f6e6669673a20656c6173746963697479206d75737420626560448201527f203e3d20310000000000000000000000000000000000000000000000000000006064820152608401610ba3565b606a805463ffffffff83811664010000000081027fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000909316918616919091179190911790915560405160009161267e91602086811b67ffffffff0000000016909217910190815260200190565b60408051601f1981840301815291905290506004611b2b565b600054610100900460ff166127145760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610ba3565b6113cb3361237e565b6001600160a01b0381168114610a7057600080fd5b803561273d8161271d565b919050565b60006020828403121561275457600080fd5b813561275f8161271d565b9392505050565b803563ffffffff8116811461273d57600080fd5b803567ffffffffffffffff8116811461273d57600080fd5b600080604083850312156127a557600080fd5b6127ae83612766565b91506127bc6020840161277a565b90509250929050565b60405160c0810167ffffffffffffffff8111828210171561280f577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405290565b803560ff8116811461273d57600080fd5b600060c0828403121561283857600080fd5b60405160c0810181811067ffffffffffffffff82111715612882577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405290508082356128938161271d565b815260208301356128a38161271d565b602082015260408301356128b68161271d565b604082015260608301356128c98161271d565b606082015260808301356128dc8161271d565b608082015260a08301356128ef8161271d565b60a0919091015292915050565b60008060008060008060008060008060008b8d036102a081121561291f57600080fd5b8c3561292a8161271d565b9b5061293860208e01612766565b9a5061294660408e01612766565b995060608d0135985061295b60808e0161277a565b975060a08d013561296b8161271d565b965060c07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff408201121561299d57600080fd5b506129a66127c5565b6129b260c08e01612766565b81526129c060e08e01612815565b60208201526129d26101008e01612815565b60408201526129e46101208e01612766565b60608201526129f66101408e01612766565b60808201526101608d01356fffffffffffffffffffffffffffffffff81168114612a1f57600080fd5b60a08201529450612a336101808d01612732565b9350612a438d6101a08e01612826565b92506102608c01359150612a5a6102808d01612732565b90509295989b509295989b9093969950565b600060208284031215612a7e57600080fd5b813561ffff8116811461275f57600080fd5b60008060408385031215612aa357600080fd5b612aac83612766565b91506127bc60208401612766565b600060208284031215612acc57600080fd5b5035919050565b6000815180845260005b81811015612af957602081850181015186830182015201612add565b81811115612b0b576000602083870101525b50601f01601f19169290920160200192915050565b60208152600061275f6020830184612ad3565b600060208284031215612b4557600080fd5b61275f8261277a565b60008060408385031215612b6157600080fd5b50508035926020909101359150565b8015158114610a7057600080fd5b60008060408385031215612b9157600080fd5b823591506020830135612ba381612b70565b809150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600082821015612bef57612bef612bae565b500390565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612c2c57612c2c612bae565b500290565b600060208284031215612c4357600080fd5b815161275f8161271d565b600067ffffffffffffffff808316818516808303821115612c7157612c71612bae565b01949350505050565b600060208284031215612c8c57600080fd5b815161275f81612b70565b600063ffffffff808316818516808303821115612c7157612c71612bae565b600063ffffffff80841680612cf4577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b92169190910492915050565b600063ffffffff80831681851681830481118215151615612d2357612d23612bae565b0294935050505056fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`\x046\x10a\x03\xAFW`\x005`\xE0\x1C\x80c~T\xB8\xAD\x11a\x01\xF4W\x80c\xD2 \xA9\xE0\x11a\x01\x1AW\x80c\xF2\xC4\xBC\x9E\x11a\0\xADW\x80c\xF8\xC6\x8D\xE0\x11a\0|W\x80c\xF8\xC6\x8D\xE0\x14a\t\x9EW\x80c\xFD2\xAA\x0F\x14a\t\xA6W\x80c\xFE=W\x10\x14a\t\xAEW\x80c\xFF\xA1\xADt\x14a\t\xE7W`\0\x80\xFD[\x80c\xF2\xC4\xBC\x9E\x14a\t[W\x80c\xF2\xFD\xE3\x8B\x14a\tnW\x80c\xF4^e\xD8\x14a\t\x81W\x80c\xF6\x80\x16\xB7\x14a\t\x8AW`\0\x80\xFD[\x80c\xE0\xE2\x01m\x11a\0\xE9W\x80c\xE0\xE2\x01m\x14a\t\"W\x80c\xE8\x1B,m\x14a\t*W\x80c\xECpu\x17\x14a\t3W\x80c\xF2\xB4\xE6\x17\x14a\tSW`\0\x80\xFD[\x80c\xD2 \xA9\xE0\x14a\x08\xF9W\x80c\xD6\xAE<\xD5\x14a\t\tW\x80c\xDA\xC6\xE6:\x14a\t\x12W\x80c\xDA\xD5D\xE0\x14a\t\x1AW`\0\x80\xFD[\x80c\xB4\n\x81|\x11a\x01\x92W\x80c\xC4\xE8\xDD\xFA\x11a\x01aW\x80c\xC4\xE8\xDD\xFA\x14a\x07\x92W\x80c\xC9\xB2oa\x14a\x07\x9AW\x80c\xC9\xFF-\x16\x14a\x07\xADW\x80c\xCCs\x1B\x02\x14a\x07\xC5W`\0\x80\xFD[\x80c\xB4\n\x81|\x14a\x07HW\x80c\xBCI\xCE_\x14a\x07[W\x80c\xBF\xB1O\xB7\x14a\x07cW\x80c\xC0\xFDKA\x14a\x07\x7FW`\0\x80\xFD[\x80c\x9B}\x7F\n\x11a\x01\xCEW\x80c\x9B}\x7F\n\x14a\x06\xA3W\x80c\xA3\x9F\xAC\x12\x14a\x06\xABW\x80c\xA6&\x11\xA2\x14a\x07\x14W\x80c\xA7\x11\x98i\x14a\x07@W`\0\x80\xFD[\x80c~T\xB8\xAD\x14a\x06wW\x80c\x8D\xA5\xCB[\x14a\x06\x7FW\x80c\x93_\x02\x9E\x14a\x06\x90W`\0\x80\xFD[\x80c!\xD7\xFD\xE5\x11a\x02\xD9W\x80cJ\xDD2\x1D\x11a\x02wW\x80c\\\x97Z\xBB\x11a\x02FW\x80c\\\x97Z\xBB\x14a\x06LW\x80c]s6\x9C\x14a\x06TW\x80cqP\x18\xA6\x14a\x06\\W\x80cv\x16\xF0\xE8\x14a\x06dW`\0\x80\xFD[\x80cJ\xDD2\x1D\x14a\x05\xADW\x80cM]\x9A*\x14a\x05\xB5W\x80cO\x16T\x0B\x14a\x05\xE6W\x80cT\xFDMP\x14a\x06\rW`\0\x80\xFD[\x80c>G\x15\x8C\x11a\x02\xB3W\x80c>G\x15\x8C\x14a\x05rW\x80cE*\x93 \x14a\x05zW\x80cG\xAF&{\x14a\x05\x82W\x80cH\xCDL\xB1\x14a\x05\xA5W`\0\x80\xFD[\x80c!\xD7\xFD\xE5\x14a\x05\x1BW\x80c5\xE8\n\xB3\x14a\x05.W\x80c8\xD3\x8C\x97\x14a\x05AW`\0\x80\xFD[\x80c\x16\xD3\xBC\x7F\x11a\x03QW\x80c\x1F\xD1\x9E\xE1\x11a\x03 W\x80c\x1F\xD1\x9E\xE1\x14a\x04\x99W\x80c \xF0o\xDC\x14a\x04\xA1W\x80c!2hI\x14a\x04\xB4W\x80c![z\x1C\x14a\x05\x13W`\0\x80\xFD[\x80c\x16\xD3\xBC\x7F\x14a\x04GW\x80c\x18\xD19\x18\x14a\x04kW\x80c\x19\xF5\xCE\xA8\x14a\x04~W\x80c\x1E\xDDP\x98\x14a\x04\x86W`\0\x80\xFD[\x80c\nI\xCB\x03\x11a\x03\x8DW\x80c\nI\xCB\x03\x14a\x04\x04W\x80c\n\xE1K\x1B\x14a\x04\x0CW\x80c\x0C\x18\xC1b\x14a\x04+W\x80c\x15[lo\x14a\x044W`\0\x80\xFD[\x80c\x06\xC9&W\x14a\x03\xB4W\x80c\x07\x8F)\xCF\x14a\x03\xCFW\x80c\n,\xA2\xA9\x14a\x03\xEFW[`\0\x80\xFD[a\x03\xBCa\t\xEFV[`@Q\x90\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[a\x03\xD7a\n\x1DV[`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x01a\x03\xC6V[a\x04\x02a\x03\xFD6`\x04a'BV[a\nVV[\0[a\x03\xD7a\nsV[c\x1D\xCDe\0[`@Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01a\x03\xC6V[a\x03\xBC`eT\x81V[a\x04\x02a\x04B6`\x04a'\x92V[a\n\xA3V[`jTa\x04\x12\x90l\x01\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[a\x04\x02a\x04y6`\x04a'BV[a\n\xB9V[a\x03\xBCa\n\xCAV[a\x04\x02a\x04\x946`\x04a(\xFCV[a\n\xF5V[a\x03\xD7a\x0EjV[a\x04\x02a\x04\xAF6`\x04a*lV[a\x0E\x94V[\x7FCUSTOM_GAS_TOKEN\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\0R`m` R\x7F>\xC9\xA1\x8B\xD2*\x83N*\x13F\\\xC2\xAA*\x9A\xEB\xB1a\xFF\xDE\xBF9\xCD\xB0\x02\x8D\xBB\x1BS\x94\xB4T`\xFF\x16[`@Q\x90\x15\x15\x81R` \x01a\x03\xC6V[a\x03\xD7a\x0E\xA5V[a\x04\x02a\x05)6`\x04a*\x90V[a\x0E\xD5V[`lTa\x03\xD7\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[`@Q`\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x81R` \x01a\x03\xC6V[a\x03\xD7a\x0E\xE7V[a\x03\xD7a\x10\xCBV[a\x05\x03a\x05\x906`\x04a*\xBAV[`m` R`\0\x90\x81R`@\x90 T`\xFF\x16\x81V[a\x03\xBCa\x11RV[a\x04\x12a\x11\x82V[`jTa\x05\xD1\x90h\x01\0\0\0\0\0\0\0\0\x90\x04c\xFF\xFF\xFF\xFF\x16\x81V[`@Qc\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01a\x03\xC6V[a\x03\xBC\x7Fe\xA7\xEDT/\xB3\x7F\xE27\xFD\xFB\xDDp\xB3\x15\x98R?\xE5\xB3(y\xE3\x07\xBA\xE2z\x0B\xD9X\x1C\x08\x81V[`@\x80Q\x80\x82\x01\x82R`\x06\x81R\x7F3.13.2\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` \x82\x01R\x90Qa\x03\xC6\x91\x90a+ V[a\x05\x03a\x11\xA8V[a\x03\xBCa\x13\x8EV[a\x04\x02a\x13\xB9V[a\x04\x02a\x06r6`\x04a+3V[a\x13\xCDV[a\x03\xBCa\x13\xDEV[`3T`\x01`\x01`\xA0\x1B\x03\x16a\x03\xD7V[a\x04\x02a\x06\x9E6`\x04a+NV[a\x14\tV[a\x03\xD7a\x14\x1BV[a\x06\xB3a\x14KV[`@Qa\x03\xC6\x91\x90`\0`\xC0\x82\x01\x90P`\x01`\x01`\xA0\x1B\x03\x80\x84Q\x16\x83R\x80` \x85\x01Q\x16` \x84\x01R\x80`@\x85\x01Q\x16`@\x84\x01R\x80``\x85\x01Q\x16``\x84\x01R\x80`\x80\x85\x01Q\x16`\x80\x84\x01R\x80`\xA0\x85\x01Q\x16`\xA0\x84\x01RP\x92\x91PPV[`lTa\x04\x12\x90t\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[a\x03\xD7a\x15\x0EV[a\x04\x02a\x07V6`\x04a+3V[a\x15>V[a\x03\xBCa\x15OV[`hTa\x05\xD1\x90h\x01\0\0\0\0\0\0\0\0\x90\x04c\xFF\xFF\xFF\xFF\x16\x81V[a\x04\x02a\x07\x8D6`\x04a*\x90V[a\x15zV[a\x03\xD7a\x15\x8CV[a\x04\x02a\x07\xA86`\x04a*\xBAV[a\x15\xBCV[`jTa\x05\xD1\x90d\x01\0\0\0\0\x90\x04c\xFF\xFF\xFF\xFF\x16\x81V[a\x08\x89`@\x80Q`\xC0\x81\x01\x82R`\0\x80\x82R` \x82\x01\x81\x90R\x91\x81\x01\x82\x90R``\x81\x01\x82\x90R`\x80\x81\x01\x82\x90R`\xA0\x81\x01\x91\x90\x91RP`@\x80Q`\xC0\x81\x01\x82R`iTc\xFF\xFF\xFF\xFF\x80\x82\x16\x83Rd\x01\0\0\0\0\x82\x04`\xFF\x90\x81\x16` \x85\x01Re\x01\0\0\0\0\0\x83\x04\x16\x93\x83\x01\x93\x90\x93Rf\x01\0\0\0\0\0\0\x81\x04\x83\x16``\x83\x01Rj\x01\0\0\0\0\0\0\0\0\0\0\x81\x04\x90\x92\x16`\x80\x82\x01Rn\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x91\x04o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\xA0\x82\x01R\x90V[`@Qa\x03\xC6\x91\x90`\0`\xC0\x82\x01\x90Pc\xFF\xFF\xFF\xFF\x80\x84Q\x16\x83R`\xFF` \x85\x01Q\x16` \x84\x01R`\xFF`@\x85\x01Q\x16`@\x84\x01R\x80``\x85\x01Q\x16``\x84\x01R\x80`\x80\x85\x01Q\x16`\x80\x84\x01RPo\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF`\xA0\x84\x01Q\x16`\xA0\x83\x01R\x92\x91PPV[`jTa\x05\xD1\x90c\xFF\xFF\xFF\xFF\x16\x81V[a\x03\xBC`kT\x81V[a\x03\xD7a\x15\xCDV[a\x03\xD7a\x15\xFDV[a\x03\xBCa\x16DV[a\x03\xBC`gT\x81V[`hTa\x05\xD1\x90l\x01\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04c\xFF\xFF\xFF\xFF\x16\x81V[a\x03\xD7a\x16oV[a\x04\x02a\ti6`\x04a+~V[a\x16\xDEV[a\x04\x02a\t|6`\x04a'BV[a\x18\xD5V[a\x03\xBC`fT\x81V[`hTa\x04\x12\x90g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[a\x03\xBCa\x19bV[a\x03\xBCa\x19\x8DV[`jTa\t\xD4\x90t\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x04a\xFF\xFF\x16\x81V[`@Qa\xFF\xFF\x90\x91\x16\x81R` \x01a\x03\xC6V[a\x03\xBC`\0\x81V[a\n\x1A`\x01\x7F\xA0L[\xB98\xCAo\xC4m\x95U:\xBF\nv4\\\xE3\xE7\"\xA3\x0B\xF4\xF7I(\xB8\xE7\xD8R2\ra+\xDDV[\x81V[`\0a\nQa\nM`\x01\x7F\x99\x04\xBA\x90\xDD\xE5il\xDA\x05\xC9\xE0\xDA\xB5\xCB\xAA\x0F\xEA\0Z\xCEM\x11!\x8A\x02\xACf\x8D\xADcwa+\xDDV[T\x90V[\x90P\x90V[a\n^a\x19\xBCV[a\np`\x01`\x01`\xA0\x1B\x03\x82\x16a\x1A\x16V[PV[`\0a\nQa\nM`\x01\x7FKlt\xF9\xE6\x88\xCB9\x80\x1F!\x12\xC1J\x8CW#*?\xC5 .\x14D\x12mK\xCE\x86\xEB\x19\xADa+\xDDV[a\n\xABa\x19\xBCV[a\n\xB5\x82\x82a\x1AwV[PPV[a\n\xC1a\x19\xBCV[a\np\x81a\x1BiV[a\n\x1A`\x01\x7FF\xAD\xCB\xEB\xC6\xBE\x8C\xE5Qt\x0C)\xC4|\x87\x98!\x0F#\xF7\xF4\x08lAu)D5%h\xD5\xA8a+\xDDV[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\0Ta\x01\0\x90\x04`\xFF\x16\x15\x80\x15a\x0B5WP`\0T`\xFF\x80\x83\x16\x91\x16\x10[a\x0B\xACW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`.`$\x82\x01R\x7FInitializable: contract is alrea`D\x82\x01R\x7Fdy initialized\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01[`@Q\x80\x91\x03\x90\xFD[`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\x16`\xFF\x83\x16\x17a\x01\0\x17\x90Ua\x0B\xE5a\x1B\xC2V[a\x0B\xEDa\x1C)V[a\x0B\xF6\x8Ca\x18\xD5V[a\x0B\xFF\x89a\x1A\x16V[a\x0C\t\x8B\x8Ba\x1C\xAEV[a\x0C\x12\x88a\x1D\x95V[a\x0C;\x7Fe\xA7\xEDT/\xB3\x7F\xE27\xFD\xFB\xDDp\xB3\x15\x98R?\xE5\xB3(y\xE3\x07\xBA\xE2z\x0B\xD9X\x1C\x08\x88\x90UV[a\x0Cna\x0Ci`\x01\x7Fq\xAC\x12\x82\x9Df\xEEs\xD8\xD9[\xFFP\xB3X\x97E\xCEW\xED\xAEp\xA3\xFB\x11\x1A#BFM\xC5\x98a+\xDDV[\x86\x90UV[a\x0C\xA2a\x0C\x9C`\x01\x7F8?)\x18\x19\xE6\xD5@s\xBC\x9Ad\x82Q\xD9t!\x07k\xDD\x10\x193\xC0\xC0\"!\x9C\xE9X\x067a+\xDDV[\x85Q\x90UV[a\x0C\xD9a\x0C\xD0`\x01\x7FF\xAD\xCB\xEB\xC6\xBE\x8C\xE5Qt\x0C)\xC4|\x87\x98!\x0F#\xF7\xF4\x08lAu)D5%h\xD5\xA8a+\xDDV[` \x86\x01Q\x90UV[a\r\x10a\r\x07`\x01\x7F\x99\x04\xBA\x90\xDD\xE5il\xDA\x05\xC9\xE0\xDA\xB5\xCB\xAA\x0F\xEA\0Z\xCEM\x11!\x8A\x02\xACf\x8D\xADcwa+\xDDV[`@\x86\x01Q\x90UV[a\rGa\r>`\x01\x7FKlt\xF9\xE6\x88\xCB9\x80\x1F!\x12\xC1J\x8CW#*?\xC5 .\x14D\x12mK\xCE\x86\xEB\x19\xADa+\xDDV[``\x86\x01Q\x90UV[a\r~a\ru`\x01\x7F\xA0L[\xB98\xCAo\xC4m\x95U:\xBF\nv4\\\xE3\xE7\"\xA3\x0B\xF4\xF7I(\xB8\xE7\xD8R2\ra+\xDDV[`\x80\x86\x01Q\x90UV[a\r\xB5a\r\xAC`\x01\x7FQT\x7F1\xA21\xE1\0}\xCA3\x01\x7F\xAA=\xA2\r\x95\x9B\x95\x08|X\x8Awh\xBF\xB9\"\xFDY\0a+\xDDV[`\xA0\x86\x01Q\x90UV[a\r\xBDa\x1E\xB7V[a\r\xC6\x86a\x1F\x1FV[`k\x83\x90U`l\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16`\x01`\x01`\xA0\x1B\x03\x84\x16\x17\x90U`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\x16\x90U`@Q`\xFF\x82\x16\x81R\x7F\x7F&\xB8?\xF9n\x1F+jh/\x138R\xF6y\x8A\t\xC4e\xDA\x95\x92\x14`\xCE\xFB8G@$\x98\x90` \x01`@Q\x80\x91\x03\x90\xA1PPPPPPPPPPPPV[`\0a\nQ\x7Fe\xA7\xEDT/\xB3\x7F\xE27\xFD\xFB\xDDp\xB3\x15\x98R?\xE5\xB3(y\xE3\x07\xBA\xE2z\x0B\xD9X\x1C\x08T\x90V[a\x0E\x9Ca\x19\xBCV[a\np\x81a#\x11V[`\0a\nQa\nM`\x01\x7FQT\x7F1\xA21\xE1\0}\xCA3\x01\x7F\xAA=\xA2\r\x95\x9B\x95\x08|X\x8Awh\xBF\xB9\"\xFDY\0a+\xDDV[a\x0E\xDDa\x19\xBCV[a\n\xB5\x82\x82a\x1C\xAEV[`\0\x80a\x0F\x12\x7F\xB51'hJV\x8B1s\xAE\x13\xB9\xF8\xA6\x01n$>c\xB6\xE8\xEE\x11x\xD6\xA7\x17\x85\x0B]a\x03T\x90V[\x90P`\x01`\x01`\xA0\x1B\x03\x81\x16\x15a\x0F(W\x91\x90PV[`@Q\x80`@\x01`@R\x80`\x1A\x81R` \x01\x7FOVM_L1CrossDomainMessenger\0\0\0\0\0\0\x81RPQ`\x02a\x0Fk\x91\x90a+\xF4V[`@\x80Q0` \x82\x01R`\0\x91\x81\x01\x91\x90\x91R\x7FOVM_L1CrossDomainMessenger\0\0\0\0\0\0\x91\x90\x91\x17\x90a\x0F\xC6\x90``\x01[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 T\x90V[\x14a\x0F\xFDW`@Q\x7FT\xE43\xCD\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\x01`@Q\x80\x91\x03\x90\xFD[`@\x80Q0` \x82\x01R`\x01\x91\x81\x01\x91\x90\x91R`\0\x90a\x10\x1F\x90``\x01a\x0F\xACV[\x90P`\x01`\x01`\xA0\x1B\x03\x81\x16\x15a\x10\x99W\x80`\x01`\x01`\xA0\x1B\x03\x16c\x8D\xA5\xCB[`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x10nW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x10\x92\x91\x90a,1V[\x92PPP\x90V[`@Q\x7F3!D\xDB\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\x01`@Q\x80\x91\x03\x90\xFD[`lT`@\x80Q\x7FE*\x93 \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\x90Q`\0\x92`\x01`\x01`\xA0\x1B\x03\x16\x91cE*\x93 \x91`\x04\x80\x83\x01\x92` \x92\x91\x90\x82\x90\x03\x01\x81\x86Z\xFA\x15\x80\x15a\x11.W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\nQ\x91\x90a,1V[`\0a\nQa\nM`\x01\x7F\xA1\x1E\xE3\xABu\xB4\x0E\x88\xA0\x10^\x93]\x17\xCD6\xC8\xFA\xEE\x0182\rwlA\x12\x91\xBD\xBB\xB1\xA0a+\xDDV[`iT`\0\x90a\nQ\x90c\xFF\xFF\xFF\xFFj\x01\0\0\0\0\0\0\0\0\0\0\x82\x04\x81\x16\x91\x16a,NV[\x7FETH_LOCKBOX\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\0\x90\x81R`m` R\x7FX\xE8\x8E\x94\x9B\xD1\x80\xFF\x86\xD6\xC0rs\\=\x8DZ\x05\xA5C\xC1a0\x17n\xC0\xBC\n\xDF?\xD8\x06T\x81\x90`\xFF\x16a\x12\x0BWa\x12\x06a\nsV[a\x12tV[a\x12\x13a\nsV[`\x01`\x01`\xA0\x1B\x03\x16c\xB6\x82\xC4D`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x12PW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x12t\x91\x90a,1V[`lT`@Q\x7F.H\x15,\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`\0`\x04\x82\x01R\x91\x92P`\x01`\x01`\xA0\x1B\x03\x16\x90c.H\x15,\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x12\xD7W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x12\xFB\x91\x90a,zV[\x80a\x13\x88WP`lT`@Q\x7F.H\x15,\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`\x01`\x01`\xA0\x1B\x03\x83\x81\x16`\x04\x83\x01R\x90\x91\x16\x90c.H\x15,\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x13dW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x13\x88\x91\x90a,zV[\x91PP\x90V[a\n\x1A`\x01\x7F8?)\x18\x19\xE6\xD5@s\xBC\x9Ad\x82Q\xD9t!\x07k\xDD\x10\x193\xC0\xC0\"!\x9C\xE9X\x067a+\xDDV[a\x13\xC1a\x19\xBCV[a\x13\xCB`\0a#~V[V[a\x13\xD5a\x19\xBCV[a\np\x81a#\xE8V[a\n\x1A`\x01\x7FQT\x7F1\xA21\xE1\0}\xCA3\x01\x7F\xAA=\xA2\r\x95\x9B\x95\x08|X\x8Awh\xBF\xB9\"\xFDY\0a+\xDDV[a\x14\x11a\x19\xBCV[a\n\xB5\x82\x82a$[V[`\0a\nQa\nM`\x01\x7F\xA0L[\xB98\xCAo\xC4m\x95U:\xBF\nv4\\\xE3\xE7\"\xA3\x0B\xF4\xF7I(\xB8\xE7\xD8R2\ra+\xDDV[`@\x80Q`\xC0\x81\x01\x82R`\0\x80\x82R` \x82\x01\x81\x90R\x91\x81\x01\x82\x90R``\x81\x01\x82\x90R`\x80\x81\x01\x82\x90R`\xA0\x81\x01\x91\x90\x91R`@Q\x80`\xC0\x01`@R\x80a\x14\x90a\x15\x0EV[`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x01a\x14\xA6a\x15\x8CV[`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x01a\x14\xBCa\n\x1DV[`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x01a\x14\xD2a\nsV[`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x01a\x14\xE8a\x14\x1BV[`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x01a\x14\xFEa\x0E\xA5V[`\x01`\x01`\xA0\x1B\x03\x16\x90R\x91\x90PV[`\0a\nQa\nM`\x01\x7F8?)\x18\x19\xE6\xD5@s\xBC\x9Ad\x82Q\xD9t!\x07k\xDD\x10\x193\xC0\xC0\"!\x9C\xE9X\x067a+\xDDV[a\x15Fa\x19\xBCV[a\np\x81a\x1D\x95V[a\n\x1A`\x01\x7Fq\xAC\x12\x82\x9Df\xEEs\xD8\xD9[\xFFP\xB3X\x97E\xCEW\xED\xAEp\xA3\xFB\x11\x1A#BFM\xC5\x98a+\xDDV[a\x15\x82a\x19\xBCV[a\n\xB5\x82\x82a%\x17V[`\0a\nQa\nM`\x01\x7FF\xAD\xCB\xEB\xC6\xBE\x8C\xE5Qt\x0C)\xC4|\x87\x98!\x0F#\xF7\xF4\x08lAu)D5%h\xD5\xA8a+\xDDV[a\x15\xC4a\x19\xBCV[a\np\x81a\x1A\x16V[`\0a\nQa\nM`\x01\x7Fq\xAC\x12\x82\x9Df\xEEs\xD8\xD9[\xFFP\xB3X\x97E\xCEW\xED\xAEp\xA3\xFB\x11\x1A#BFM\xC5\x98a+\xDDV[`\0a\x16\x07a\x0E\xE7V[`\x01`\x01`\xA0\x1B\x03\x16c\x8D\xA5\xCB[`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x11.W=`\0\x80>=`\0\xFD[a\n\x1A`\x01\x7F\xA1\x1E\xE3\xABu\xB4\x0E\x88\xA0\x10^\x93]\x17\xCD6\xC8\xFA\xEE\x0182\rwlA\x12\x91\xBD\xBB\xB1\xA0a+\xDDV[`\0\x80a\x16za\nsV[\x90P\x80`\x01`\x01`\xA0\x1B\x03\x16c\xF2\xB4\xE6\x17`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x16\xBAW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x13\x88\x91\x90a,1V[a\x16\xE6a\x1B\xC2V[`\0\x82\x81R`m` R`@\x90 T`\xFF\x16\x15\x15\x81\x15\x15\x03a\x174W`@Q\x7F\xF5\x82\x8B\x04\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\x01`@Q\x80\x91\x03\x90\xFD[\x7FETH_LOCKBOX\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x82\x03a\x18kW`\0\x82\x81R`m` R`@\x90 T`\xFF\x16\x80\x15a\x17wWP\x80\x15[\x80\x15a\x17\xF5WP`\0a\x17\x88a\nsV[`\x01`\x01`\xA0\x1B\x03\x16c\xB6\x82\xC4D`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x17\xC5W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x17\xE9\x91\x90a,1V[`\x01`\x01`\xA0\x1B\x03\x16\x14\x15[\x15a\x18,W`@Q\x7F\xF5\x82\x8B\x04\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\x01`@Q\x80\x91\x03\x90\xFD[a\x184a\x11\xA8V[\x15a\x18kW`@Q\x7F\xF5\x82\x8B\x04\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\x01`@Q\x80\x91\x03\x90\xFD[`\0\x82\x81R`m` R`@\x80\x82 \x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x16\x84\x15\x15\x90\x81\x17\x90\x91U\x90Q\x90\x91\x84\x91\x7F\xB8v\xF6YA2\xC8\x98\x91\xD2\xFD\x19\x8E\x92^\x99\x9B\xE7A\xEC\x80\x9A\xBBX\xBF\xE9\xB9f\x87l\xC0l\x91\x90\xA3PPV[a\x18\xDDa\x19\xBCV[`\x01`\x01`\xA0\x1B\x03\x81\x16a\x19YW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`&`$\x82\x01R\x7FOwnable: new owner is the zero a`D\x82\x01R\x7Fddress\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`d\x82\x01R`\x84\x01a\x0B\xA3V[a\np\x81a#~V[a\n\x1A`\x01\x7F\x99\x04\xBA\x90\xDD\xE5il\xDA\x05\xC9\xE0\xDA\xB5\xCB\xAA\x0F\xEA\0Z\xCEM\x11!\x8A\x02\xACf\x8D\xADcwa+\xDDV[a\n\x1A`\x01\x7FKlt\xF9\xE6\x88\xCB9\x80\x1F!\x12\xC1J\x8CW#*?\xC5 .\x14D\x12mK\xCE\x86\xEB\x19\xADa+\xDDV[\x90UV[`3T`\x01`\x01`\xA0\x1B\x03\x163\x14a\x13\xCBW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01\x81\x90R`$\x82\x01R\x7FOwnable: caller is not the owner`D\x82\x01R`d\x01a\x0B\xA3V[`g\x81\x90U`@\x80Q` \x80\x82\x01\x84\x90R\x82Q\x80\x83\x03\x90\x91\x01\x81R\x90\x82\x01\x90\x91R`\0[`\0\x7F\x1D+\x0B\xDA!\xD5k\x8B\xD1-O\x94\xEB\xAC\xFF\xDF\xB3_^\"o\x84\xB4a\x10;\xB8\xBE\xABcS\xBE\x83`@Qa\x1Ak\x91\x90a+ V[`@Q\x80\x91\x03\x90\xA3PPV[`j\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16h\x01\0\0\0\0\0\0\0\0c\xFF\xFF\xFF\xFF\x85\x16\x02\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x17l\x01\0\0\0\0\0\0\0\0\0\0\0\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x16\x90\x81\x02\x91\x90\x91\x17\x90\x91U`@\x80Qk\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\x85\x83\x1B\x16\x90\x92\x17` \x83\x01R`\0\x91\x01`@\x80Q`\x1F\x19\x81\x84\x03\x01\x81R\x91\x90R\x90P`\x05[`\0\x7F\x1D+\x0B\xDA!\xD5k\x8B\xD1-O\x94\xEB\xAC\xFF\xDF\xB3_^\"o\x84\xB4a\x10;\xB8\xBE\xABcS\xBE\x83`@Qa\x1B\\\x91\x90a+ V[`@Q\x80\x91\x03\x90\xA3PPPV[a\x1B\x92\x7Fe\xA7\xEDT/\xB3\x7F\xE27\xFD\xFB\xDDp\xB3\x15\x98R?\xE5\xB3(y\xE3\x07\xBA\xE2z\x0B\xD9X\x1C\x08\x82\x90UV[`@\x80Q`\x01`\x01`\xA0\x1B\x03\x83\x16` \x82\x01R`\0\x91\x01`@\x80Q`\x1F\x19\x81\x84\x03\x01\x81R\x91\x90R\x90P`\x03a\x1A:V[3a\x1B\xCBa\x0E\xE7V[`\x01`\x01`\xA0\x1B\x03\x16\x14\x15\x80\x15a\x1B\xF2WP3a\x1B\xE6a\x15\xFDV[`\x01`\x01`\xA0\x1B\x03\x16\x14\x15[\x15a\x13\xCBW`@Q\x7F\xC4\x05\n&\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\x01`@Q\x80\x91\x03\x90\xFD[`\0Ta\x01\0\x90\x04`\xFF\x16a\x1C\xA6W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FInitializable: contract is not i`D\x82\x01R\x7Fnitializing\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x0B\xA3V[a\x13\xCBa&\x97V[`h\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16h\x01\0\0\0\0\0\0\0\0c\xFF\xFF\xFF\xFF\x85\x81\x16\x91\x82\x02\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x92\x90\x92\x17l\x01\0\0\0\0\0\0\0\0\0\0\0\0\x92\x85\x16\x92\x90\x92\x02\x91\x90\x91\x17\x90\x91U\x7F\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0` \x83\x81\x1Bg\xFF\xFF\xFF\xFF\0\0\0\0\x16\x90\x92\x17\x17`f\x81\x90U`eT`@\x80Q\x93\x84\x01\x91\x90\x91R\x82\x01R`\0\x90``\x01[`@\x80Q`\x1F\x19\x81\x84\x03\x01\x81R\x91\x90R\x90P`\x01a\x1B+V[a\x1D\x9Da\x11\x82V[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x10\x15a\x1E\0W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1F`$\x82\x01R\x7FSystemConfig: gas limit too low\0`D\x82\x01R`d\x01a\x0B\xA3V[c\x1D\xCDe\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16\x11\x15a\x1E^W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01\x81\x90R`$\x82\x01R\x7FSystemConfig: gas limit too high`D\x82\x01R`d\x01a\x0B\xA3V[`h\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\x16g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x16\x90\x81\x17\x90\x91U`@\x80Q` \x80\x82\x01\x93\x90\x93R\x81Q\x80\x82\x03\x90\x93\x01\x83R\x81\x01\x90R`\x02a\x1A:V[a\x1E\xE5a\nM`\x01\x7F\xA1\x1E\xE3\xABu\xB4\x0E\x88\xA0\x10^\x93]\x17\xCD6\xC8\xFA\xEE\x0182\rwlA\x12\x91\xBD\xBB\xB1\xA0a+\xDDV[`\0\x03a\x13\xCBWa\x13\xCBa\x1F\x1A`\x01\x7F\xA1\x1E\xE3\xABu\xB4\x0E\x88\xA0\x10^\x93]\x17\xCD6\xC8\xFA\xEE\x0182\rwlA\x12\x91\xBD\xBB\xB1\xA0a+\xDDV[C\x90UV[\x80`\xA0\x01Qo\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81``\x01Qc\xFF\xFF\xFF\xFF\x16\x11\x15a\x1F\xB5W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`5`$\x82\x01R\x7FSystemConfig: min base fee must `D\x82\x01R\x7Fbe less than max base\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x0B\xA3V[`\x01\x81`@\x01Q`\xFF\x16\x11a 2W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`/`$\x82\x01R\x7FSystemConfig: denominator must b`D\x82\x01R\x7Fe larger than 1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x0B\xA3V[`hT`\x80\x82\x01Q\x82Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x92\x16\x91a S\x91\x90a,\x97V[c\xFF\xFF\xFF\xFF\x16\x11\x15a \xA7W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1F`$\x82\x01R\x7FSystemConfig: gas limit too low\0`D\x82\x01R`d\x01a\x0B\xA3V[`\0\x81` \x01Q`\xFF\x16\x11a!$W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`/`$\x82\x01R\x7FSystemConfig: elasticity multipl`D\x82\x01R\x7Fier cannot be 0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x0B\xA3V[\x80Q` \x82\x01Qc\xFF\xFF\xFF\xFF\x82\x16\x91`\xFF\x90\x91\x16\x90a!D\x90\x82\x90a,\xB6V[a!N\x91\x90a-\0V[c\xFF\xFF\xFF\xFF\x16\x14a!\xC7W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`7`$\x82\x01R\x7FSystemConfig: precision loss wit`D\x82\x01R\x7Fh target resource limit\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x0B\xA3V[\x80Q`i\x80T` \x84\x01Q`@\x85\x01Q``\x86\x01Q`\x80\x87\x01Q`\xA0\x90\x97\x01Qc\xFF\xFF\xFF\xFF\x96\x87\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\x90\x95\x16\x94\x90\x94\x17d\x01\0\0\0\0`\xFF\x94\x85\x16\x02\x17\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\xFF\xFF\xFF\xFF\xFF\x16e\x01\0\0\0\0\0\x93\x90\x92\x16\x92\x90\x92\x02\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\xFF\xFF\xFF\xFF\xFF\xFF\x16\x17f\x01\0\0\0\0\0\0\x91\x85\x16\x91\x90\x91\x02\x17\x7F\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16j\x01\0\0\0\0\0\0\0\0\0\0\x93\x90\x94\x16\x92\x90\x92\x02\x7F\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x92\x90\x92\x17n\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x92\x16\x91\x90\x91\x02\x17\x90UV[`j\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16t\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\xFF\xFF\x84\x16\x90\x81\x02\x91\x90\x91\x17\x90\x91U`@\x80Q` \x80\x82\x01\x93\x90\x93R\x81Q\x80\x82\x03\x90\x93\x01\x83R\x81\x01\x90R`\x07a\x1A:V[`3\x80T`\x01`\x01`\xA0\x1B\x03\x83\x81\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x83\x16\x81\x17\x90\x93U`@Q\x91\x16\x91\x90\x82\x90\x7F\x8B\xE0\x07\x9CS\x16Y\x14\x13D\xCD\x1F\xD0\xA4\xF2\x84\x19I\x7F\x97\"\xA3\xDA\xAF\xE3\xB4\x18okdW\xE0\x90`\0\x90\xA3PPV[`l\x80T\x7F\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16t\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x16\x90\x81\x02\x91\x90\x91\x17\x90\x91U`@\x80Q` \x80\x82\x01\x93\x90\x93R\x81Q\x80\x82\x03\x90\x93\x01\x83R\x81\x01\x90R`\x06a\x1A:V[\x7F\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81\x16\x15a$\xF1W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`!`$\x82\x01R\x7FSystemConfig: scalar exceeds max`D\x82\x01R\x7F.\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x0B\xA3V[`e\x82\x90U`f\x81\x90U`@\x80Q` \x81\x01\x84\x90R\x90\x81\x01\x82\x90R`\0\x90``\x01a\x1D|V[`\x01\x82c\xFF\xFF\xFF\xFF\x16\x10\x15a%\x94W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`&`$\x82\x01R\x7FSystemConfig: denominator must b`D\x82\x01R\x7Fe >= 1\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`d\x82\x01R`\x84\x01a\x0B\xA3V[`\x01\x81c\xFF\xFF\xFF\xFF\x16\x10\x15a&\x11W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`%`$\x82\x01R\x7FSystemConfig: elasticity must be`D\x82\x01R\x7F >= 1\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`d\x82\x01R`\x84\x01a\x0B\xA3V[`j\x80Tc\xFF\xFF\xFF\xFF\x83\x81\x16d\x01\0\0\0\0\x81\x02\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\x90\x93\x16\x91\x86\x16\x91\x90\x91\x17\x91\x90\x91\x17\x90\x91U`@Q`\0\x91a&~\x91` \x86\x81\x1Bg\xFF\xFF\xFF\xFF\0\0\0\0\x16\x90\x92\x17\x91\x01\x90\x81R` \x01\x90V[`@\x80Q`\x1F\x19\x81\x84\x03\x01\x81R\x91\x90R\x90P`\x04a\x1B+V[`\0Ta\x01\0\x90\x04`\xFF\x16a'\x14W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FInitializable: contract is not i`D\x82\x01R\x7Fnitializing\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x0B\xA3V[a\x13\xCB3a#~V[`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a\npW`\0\x80\xFD[\x805a'=\x81a'\x1DV[\x91\x90PV[`\0` \x82\x84\x03\x12\x15a'TW`\0\x80\xFD[\x815a'_\x81a'\x1DV[\x93\x92PPPV[\x805c\xFF\xFF\xFF\xFF\x81\x16\x81\x14a'=W`\0\x80\xFD[\x805g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a'=W`\0\x80\xFD[`\0\x80`@\x83\x85\x03\x12\x15a'\xA5W`\0\x80\xFD[a'\xAE\x83a'fV[\x91Pa'\xBC` \x84\x01a'zV[\x90P\x92P\x92\x90PV[`@Q`\xC0\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a(\x0FW\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[`@R\x90V[\x805`\xFF\x81\x16\x81\x14a'=W`\0\x80\xFD[`\0`\xC0\x82\x84\x03\x12\x15a(8W`\0\x80\xFD[`@Q`\xC0\x81\x01\x81\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17\x15a(\x82W\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[`@R\x90P\x80\x825a(\x93\x81a'\x1DV[\x81R` \x83\x015a(\xA3\x81a'\x1DV[` \x82\x01R`@\x83\x015a(\xB6\x81a'\x1DV[`@\x82\x01R``\x83\x015a(\xC9\x81a'\x1DV[``\x82\x01R`\x80\x83\x015a(\xDC\x81a'\x1DV[`\x80\x82\x01R`\xA0\x83\x015a(\xEF\x81a'\x1DV[`\xA0\x91\x90\x91\x01R\x92\x91PPV[`\0\x80`\0\x80`\0\x80`\0\x80`\0\x80`\0\x8B\x8D\x03a\x02\xA0\x81\x12\x15a)\x1FW`\0\x80\xFD[\x8C5a)*\x81a'\x1DV[\x9BPa)8` \x8E\x01a'fV[\x9APa)F`@\x8E\x01a'fV[\x99P``\x8D\x015\x98Pa)[`\x80\x8E\x01a'zV[\x97P`\xA0\x8D\x015a)k\x81a'\x1DV[\x96P`\xC0\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF@\x82\x01\x12\x15a)\x9DW`\0\x80\xFD[Pa)\xA6a'\xC5V[a)\xB2`\xC0\x8E\x01a'fV[\x81Ra)\xC0`\xE0\x8E\x01a(\x15V[` \x82\x01Ra)\xD2a\x01\0\x8E\x01a(\x15V[`@\x82\x01Ra)\xE4a\x01 \x8E\x01a'fV[``\x82\x01Ra)\xF6a\x01@\x8E\x01a'fV[`\x80\x82\x01Ra\x01`\x8D\x015o\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a*\x1FW`\0\x80\xFD[`\xA0\x82\x01R\x94Pa*3a\x01\x80\x8D\x01a'2V[\x93Pa*C\x8Da\x01\xA0\x8E\x01a(&V[\x92Pa\x02`\x8C\x015\x91Pa*Za\x02\x80\x8D\x01a'2V[\x90P\x92\x95\x98\x9BP\x92\x95\x98\x9B\x90\x93\x96\x99PV[`\0` \x82\x84\x03\x12\x15a*~W`\0\x80\xFD[\x815a\xFF\xFF\x81\x16\x81\x14a'_W`\0\x80\xFD[`\0\x80`@\x83\x85\x03\x12\x15a*\xA3W`\0\x80\xFD[a*\xAC\x83a'fV[\x91Pa'\xBC` \x84\x01a'fV[`\0` \x82\x84\x03\x12\x15a*\xCCW`\0\x80\xFD[P5\x91\x90PV[`\0\x81Q\x80\x84R`\0[\x81\x81\x10\x15a*\xF9W` \x81\x85\x01\x81\x01Q\x86\x83\x01\x82\x01R\x01a*\xDDV[\x81\x81\x11\x15a+\x0BW`\0` \x83\x87\x01\x01R[P`\x1F\x01`\x1F\x19\x16\x92\x90\x92\x01` \x01\x92\x91PPV[` \x81R`\0a'_` \x83\x01\x84a*\xD3V[`\0` \x82\x84\x03\x12\x15a+EW`\0\x80\xFD[a'_\x82a'zV[`\0\x80`@\x83\x85\x03\x12\x15a+aW`\0\x80\xFD[PP\x805\x92` \x90\x91\x015\x91PV[\x80\x15\x15\x81\x14a\npW`\0\x80\xFD[`\0\x80`@\x83\x85\x03\x12\x15a+\x91W`\0\x80\xFD[\x825\x91P` \x83\x015a+\xA3\x81a+pV[\x80\x91PP\x92P\x92\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`\x11`\x04R`$`\0\xFD[`\0\x82\x82\x10\x15a+\xEFWa+\xEFa+\xAEV[P\x03\x90V[`\0\x81\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x04\x83\x11\x82\x15\x15\x16\x15a,,Wa,,a+\xAEV[P\x02\x90V[`\0` \x82\x84\x03\x12\x15a,CW`\0\x80\xFD[\x81Qa'_\x81a'\x1DV[`\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x83\x16\x81\x85\x16\x80\x83\x03\x82\x11\x15a,qWa,qa+\xAEV[\x01\x94\x93PPPPV[`\0` \x82\x84\x03\x12\x15a,\x8CW`\0\x80\xFD[\x81Qa'_\x81a+pV[`\0c\xFF\xFF\xFF\xFF\x80\x83\x16\x81\x85\x16\x80\x83\x03\x82\x11\x15a,qWa,qa+\xAEV[`\0c\xFF\xFF\xFF\xFF\x80\x84\x16\x80a,\xF4W\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`\x12`\x04R`$`\0\xFD[\x92\x16\x91\x90\x91\x04\x92\x91PPV[`\0c\xFF\xFF\xFF\xFF\x80\x83\x16\x81\x85\x16\x81\x83\x04\x81\x11\x82\x15\x15\x16\x15a-#Wa-#a+\xAEV[\x02\x94\x93PPPPV\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct UpdateType(u8); + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for u8 { + #[inline] + fn stv_to_tokens( + &self, + ) -> as alloy_sol_types::SolType>::Token<'_> { + alloy_sol_types::private::SolTypeValue::< + alloy::sol_types::sol_data::Uint<8>, + >::stv_to_tokens(self) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + as alloy_sol_types::SolType>::tokenize(self) + .0 + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::SolType>::abi_encode_packed_to(self, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + as alloy_sol_types::SolType>::abi_encoded_size(self) + } + } + impl UpdateType { + /// The Solidity type name. + pub const NAME: &'static str = stringify!(@ name); + /// Convert from the underlying value type. + #[inline] + pub const fn from_underlying(value: u8) -> Self { + Self(value) + } + /// Return the underlying value. + #[inline] + pub const fn into_underlying(self) -> u8 { + self.0 + } + /// Return the single encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode(&self) -> alloy_sol_types::private::Vec { + ::abi_encode(&self.0) + } + /// Return the packed encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec { + ::abi_encode_packed(&self.0) + } + } + #[automatically_derived] + impl From for UpdateType { + fn from(value: u8) -> Self { + Self::from_underlying(value) + } + } + #[automatically_derived] + impl From for u8 { + fn from(value: UpdateType) -> Self { + value.into_underlying() + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for UpdateType { + type RustType = u8; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = Self::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + Self::type_check(token).is_ok() + } + #[inline] + fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> { + as alloy_sol_types::SolType>::type_check(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + as alloy_sol_types::SolType>::detokenize(token) + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for UpdateType { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + as alloy_sol_types::EventTopic>::topic_preimage_length(rust) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out) + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + as alloy_sol_types::EventTopic>::encode_topic(rust) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**```solidity +struct Addresses { address l1CrossDomainMessenger; address l1ERC721Bridge; address l1StandardBridge; address optimismPortal; address optimismMintableERC20Factory; address delayedWETH; } +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct Addresses { + #[allow(missing_docs)] + pub l1CrossDomainMessenger: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub l1ERC721Bridge: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub l1StandardBridge: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub optimismPortal: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub optimismMintableERC20Factory: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub delayedWETH: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: Addresses) -> Self { + ( + value.l1CrossDomainMessenger, + value.l1ERC721Bridge, + value.l1StandardBridge, + value.optimismPortal, + value.optimismMintableERC20Factory, + value.delayedWETH, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for Addresses { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + l1CrossDomainMessenger: tuple.0, + l1ERC721Bridge: tuple.1, + l1StandardBridge: tuple.2, + optimismPortal: tuple.3, + optimismMintableERC20Factory: tuple.4, + delayedWETH: tuple.5, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolValue for Addresses { + type SolType = Self; + } + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for Addresses { + #[inline] + fn stv_to_tokens(&self) -> ::Token<'_> { + ( + ::tokenize( + &self.l1CrossDomainMessenger, + ), + ::tokenize( + &self.l1ERC721Bridge, + ), + ::tokenize( + &self.l1StandardBridge, + ), + ::tokenize( + &self.optimismPortal, + ), + ::tokenize( + &self.optimismMintableERC20Factory, + ), + ::tokenize( + &self.delayedWETH, + ), + ) + } + #[inline] + fn stv_abi_encoded_size(&self) -> usize { + if let Some(size) = ::ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encoded_size(&tuple) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + ::eip712_hash_struct(self) + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + if let Some(size) = ::PACKED_ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for Addresses { + type RustType = Self; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = ::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + as alloy_sol_types::SolType>::valid_token(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + let tuple = as alloy_sol_types::SolType>::detokenize(token); + >>::from(tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolStruct for Addresses { + const NAME: &'static str = "Addresses"; + #[inline] + fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> { + alloy_sol_types::private::Cow::Borrowed( + "Addresses(address l1CrossDomainMessenger,address l1ERC721Bridge,address l1StandardBridge,address optimismPortal,address optimismMintableERC20Factory,address delayedWETH)", + ) + } + #[inline] + fn eip712_components() -> alloy_sol_types::private::Vec< + alloy_sol_types::private::Cow<'static, str>, + > { + alloy_sol_types::private::Vec::new() + } + #[inline] + fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> { + ::eip712_root_type() + } + #[inline] + fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec { + [ + ::eip712_data_word( + &self.l1CrossDomainMessenger, + ) + .0, + ::eip712_data_word( + &self.l1ERC721Bridge, + ) + .0, + ::eip712_data_word( + &self.l1StandardBridge, + ) + .0, + ::eip712_data_word( + &self.optimismPortal, + ) + .0, + ::eip712_data_word( + &self.optimismMintableERC20Factory, + ) + .0, + ::eip712_data_word( + &self.delayedWETH, + ) + .0, + ] + .concat() + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for Addresses { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + 0usize + + ::topic_preimage_length( + &rust.l1CrossDomainMessenger, + ) + + ::topic_preimage_length( + &rust.l1ERC721Bridge, + ) + + ::topic_preimage_length( + &rust.l1StandardBridge, + ) + + ::topic_preimage_length( + &rust.optimismPortal, + ) + + ::topic_preimage_length( + &rust.optimismMintableERC20Factory, + ) + + ::topic_preimage_length( + &rust.delayedWETH, + ) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + out.reserve( + ::topic_preimage_length(rust), + ); + ::encode_topic_preimage( + &rust.l1CrossDomainMessenger, + out, + ); + ::encode_topic_preimage( + &rust.l1ERC721Bridge, + out, + ); + ::encode_topic_preimage( + &rust.l1StandardBridge, + out, + ); + ::encode_topic_preimage( + &rust.optimismPortal, + out, + ); + ::encode_topic_preimage( + &rust.optimismMintableERC20Factory, + out, + ); + ::encode_topic_preimage( + &rust.delayedWETH, + out, + ); + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + let mut out = alloy_sol_types::private::Vec::new(); + ::encode_topic_preimage( + rust, + &mut out, + ); + alloy_sol_types::abi::token::WordToken( + alloy_sol_types::private::keccak256(out), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ProxyAdminOwnedBase_NotProxyAdmin()` and selector `0xe818dcc3`. +```solidity +error ProxyAdminOwnedBase_NotProxyAdmin(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ProxyAdminOwnedBase_NotProxyAdmin; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: ProxyAdminOwnedBase_NotProxyAdmin) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for ProxyAdminOwnedBase_NotProxyAdmin { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ProxyAdminOwnedBase_NotProxyAdmin { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ProxyAdminOwnedBase_NotProxyAdmin()"; + const SELECTOR: [u8; 4] = [232u8, 24u8, 220u8, 195u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner()` and selector `0xc4050a26`. +```solidity +error ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError + for ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner()"; + const SELECTOR: [u8; 4] = [196u8, 5u8, 10u8, 38u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ProxyAdminOwnedBase_NotProxyAdminOwner()` and selector `0x7f12c64b`. +```solidity +error ProxyAdminOwnedBase_NotProxyAdminOwner(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ProxyAdminOwnedBase_NotProxyAdminOwner; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: ProxyAdminOwnedBase_NotProxyAdminOwner) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for ProxyAdminOwnedBase_NotProxyAdminOwner { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ProxyAdminOwnedBase_NotProxyAdminOwner { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ProxyAdminOwnedBase_NotProxyAdminOwner()"; + const SELECTOR: [u8; 4] = [127u8, 18u8, 198u8, 75u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ProxyAdminOwnedBase_NotResolvedDelegateProxy()` and selector `0x54e433cd`. +```solidity +error ProxyAdminOwnedBase_NotResolvedDelegateProxy(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ProxyAdminOwnedBase_NotResolvedDelegateProxy; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: ProxyAdminOwnedBase_NotResolvedDelegateProxy) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for ProxyAdminOwnedBase_NotResolvedDelegateProxy { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ProxyAdminOwnedBase_NotResolvedDelegateProxy { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ProxyAdminOwnedBase_NotResolvedDelegateProxy()"; + const SELECTOR: [u8; 4] = [84u8, 228u8, 51u8, 205u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ProxyAdminOwnedBase_NotSharedProxyAdminOwner()` and selector `0x075c4314`. +```solidity +error ProxyAdminOwnedBase_NotSharedProxyAdminOwner(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ProxyAdminOwnedBase_NotSharedProxyAdminOwner; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: ProxyAdminOwnedBase_NotSharedProxyAdminOwner) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for ProxyAdminOwnedBase_NotSharedProxyAdminOwner { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ProxyAdminOwnedBase_NotSharedProxyAdminOwner { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ProxyAdminOwnedBase_NotSharedProxyAdminOwner()"; + const SELECTOR: [u8; 4] = [7u8, 92u8, 67u8, 20u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ProxyAdminOwnedBase_ProxyAdminNotFound()` and selector `0x332144db`. +```solidity +error ProxyAdminOwnedBase_ProxyAdminNotFound(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ProxyAdminOwnedBase_ProxyAdminNotFound; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: ProxyAdminOwnedBase_ProxyAdminNotFound) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for ProxyAdminOwnedBase_ProxyAdminNotFound { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ProxyAdminOwnedBase_ProxyAdminNotFound { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ProxyAdminOwnedBase_ProxyAdminNotFound()"; + const SELECTOR: [u8; 4] = [51u8, 33u8, 68u8, 219u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ReinitializableBase_ZeroInitVersion()` and selector `0x9b01afed`. +```solidity +error ReinitializableBase_ZeroInitVersion(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ReinitializableBase_ZeroInitVersion; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: ReinitializableBase_ZeroInitVersion) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for ReinitializableBase_ZeroInitVersion { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ReinitializableBase_ZeroInitVersion { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ReinitializableBase_ZeroInitVersion()"; + const SELECTOR: [u8; 4] = [155u8, 1u8, 175u8, 237u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `SystemConfig_InvalidFeatureState()` and selector `0xf5828b04`. +```solidity +error SystemConfig_InvalidFeatureState(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct SystemConfig_InvalidFeatureState; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: SystemConfig_InvalidFeatureState) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for SystemConfig_InvalidFeatureState { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for SystemConfig_InvalidFeatureState { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "SystemConfig_InvalidFeatureState()"; + const SELECTOR: [u8; 4] = [245u8, 130u8, 139u8, 4u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `ConfigUpdate(uint256,uint8,bytes)` and selector `0x1d2b0bda21d56b8bd12d4f94ebacffdfb35f5e226f84b461103bb8beab6353be`. +```solidity +event ConfigUpdate(uint256 indexed version, UpdateType indexed updateType, bytes data); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct ConfigUpdate { + #[allow(missing_docs)] + pub version: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub updateType: ::RustType, + #[allow(missing_docs)] + pub data: alloy::sol_types::private::Bytes, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for ConfigUpdate { + type DataTuple<'a> = (alloy::sol_types::sol_data::Bytes,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Uint<256>, + UpdateType, + ); + const SIGNATURE: &'static str = "ConfigUpdate(uint256,uint8,bytes)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 29u8, 43u8, 11u8, 218u8, 33u8, 213u8, 107u8, 139u8, 209u8, 45u8, 79u8, + 148u8, 235u8, 172u8, 255u8, 223u8, 179u8, 95u8, 94u8, 34u8, 111u8, 132u8, + 180u8, 97u8, 16u8, 59u8, 184u8, 190u8, 171u8, 99u8, 83u8, 190u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + version: topics.1, + updateType: topics.2, + data: data.0, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + ::tokenize( + &self.data, + ), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + ( + Self::SIGNATURE_HASH.into(), + self.version.clone(), + self.updateType.clone(), + ) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = as alloy_sol_types::EventTopic>::encode_topic(&self.version); + out[2usize] = ::encode_topic( + &self.updateType, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for ConfigUpdate { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&ConfigUpdate> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &ConfigUpdate) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `FeatureSet(bytes32,bool)` and selector `0xb876f6594132c89891d2fd198e925e999be741ec809abb58bfe9b966876cc06c`. +```solidity +event FeatureSet(bytes32 indexed feature, bool indexed enabled); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct FeatureSet { + #[allow(missing_docs)] + pub feature: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub enabled: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for FeatureSet { + type DataTuple<'a> = (); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Bool, + ); + const SIGNATURE: &'static str = "FeatureSet(bytes32,bool)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 184u8, 118u8, 246u8, 89u8, 65u8, 50u8, 200u8, 152u8, 145u8, 210u8, 253u8, + 25u8, 142u8, 146u8, 94u8, 153u8, 155u8, 231u8, 65u8, 236u8, 128u8, 154u8, + 187u8, 88u8, 191u8, 233u8, 185u8, 102u8, 135u8, 108u8, 192u8, 108u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + feature: topics.1, + enabled: topics.2, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + () + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.feature.clone(), self.enabled.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = as alloy_sol_types::EventTopic>::encode_topic(&self.feature); + out[2usize] = ::encode_topic( + &self.enabled, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for FeatureSet { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&FeatureSet> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &FeatureSet) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `Initialized(uint8)` and selector `0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498`. +```solidity +event Initialized(uint8 version); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct Initialized { + #[allow(missing_docs)] + pub version: u8, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for Initialized { + type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<8>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,); + const SIGNATURE: &'static str = "Initialized(uint8)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 127u8, 38u8, 184u8, 63u8, 249u8, 110u8, 31u8, 43u8, 106u8, 104u8, 47u8, + 19u8, 56u8, 82u8, 246u8, 121u8, 138u8, 9u8, 196u8, 101u8, 218u8, 149u8, + 146u8, 20u8, 96u8, 206u8, 251u8, 56u8, 71u8, 64u8, 36u8, 152u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { version: data.0 } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.version), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(),) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for Initialized { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&Initialized> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &Initialized) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `OwnershipTransferred(address,address)` and selector `0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0`. +```solidity +event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct OwnershipTransferred { + #[allow(missing_docs)] + pub previousOwner: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub newOwner: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for OwnershipTransferred { + type DataTuple<'a> = (); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "OwnershipTransferred(address,address)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 139u8, 224u8, 7u8, 156u8, 83u8, 22u8, 89u8, 20u8, 19u8, 68u8, 205u8, + 31u8, 208u8, 164u8, 242u8, 132u8, 25u8, 73u8, 127u8, 151u8, 34u8, 163u8, + 218u8, 175u8, 227u8, 180u8, 24u8, 111u8, 107u8, 100u8, 87u8, 224u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + previousOwner: topics.1, + newOwner: topics.2, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + () + } + #[inline] + fn topics(&self) -> ::RustType { + ( + Self::SIGNATURE_HASH.into(), + self.previousOwner.clone(), + self.newOwner.clone(), + ) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.previousOwner, + ); + out[2usize] = ::encode_topic( + &self.newOwner, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for OwnershipTransferred { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&OwnershipTransferred> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &OwnershipTransferred) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + /**Constructor`. +```solidity +constructor(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct constructorCall {} + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: constructorCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for constructorCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolConstructor for constructorCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `BATCH_INBOX_SLOT()` and selector `0xbc49ce5f`. +```solidity +function BATCH_INBOX_SLOT() external view returns (bytes32); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct BATCH_INBOX_SLOTCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`BATCH_INBOX_SLOT()`](BATCH_INBOX_SLOTCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct BATCH_INBOX_SLOTReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: BATCH_INBOX_SLOTCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for BATCH_INBOX_SLOTCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: BATCH_INBOX_SLOTReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for BATCH_INBOX_SLOTReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for BATCH_INBOX_SLOTCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::FixedBytes<32>; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "BATCH_INBOX_SLOT()"; + const SELECTOR: [u8; 4] = [188u8, 73u8, 206u8, 95u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: BATCH_INBOX_SLOTReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: BATCH_INBOX_SLOTReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `DELAYED_WETH_SLOT()` and selector `0x7e54b8ad`. +```solidity +function DELAYED_WETH_SLOT() external view returns (bytes32); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct DELAYED_WETH_SLOTCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`DELAYED_WETH_SLOT()`](DELAYED_WETH_SLOTCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct DELAYED_WETH_SLOTReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: DELAYED_WETH_SLOTCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for DELAYED_WETH_SLOTCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: DELAYED_WETH_SLOTReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for DELAYED_WETH_SLOTReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for DELAYED_WETH_SLOTCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::FixedBytes<32>; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "DELAYED_WETH_SLOT()"; + const SELECTOR: [u8; 4] = [126u8, 84u8, 184u8, 173u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: DELAYED_WETH_SLOTReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: DELAYED_WETH_SLOTReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `L1_CROSS_DOMAIN_MESSENGER_SLOT()` and selector `0x5d73369c`. +```solidity +function L1_CROSS_DOMAIN_MESSENGER_SLOT() external view returns (bytes32); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct L1_CROSS_DOMAIN_MESSENGER_SLOTCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`L1_CROSS_DOMAIN_MESSENGER_SLOT()`](L1_CROSS_DOMAIN_MESSENGER_SLOTCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct L1_CROSS_DOMAIN_MESSENGER_SLOTReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: L1_CROSS_DOMAIN_MESSENGER_SLOTCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for L1_CROSS_DOMAIN_MESSENGER_SLOTCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: L1_CROSS_DOMAIN_MESSENGER_SLOTReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for L1_CROSS_DOMAIN_MESSENGER_SLOTReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for L1_CROSS_DOMAIN_MESSENGER_SLOTCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::FixedBytes<32>; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "L1_CROSS_DOMAIN_MESSENGER_SLOT()"; + const SELECTOR: [u8; 4] = [93u8, 115u8, 54u8, 156u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: L1_CROSS_DOMAIN_MESSENGER_SLOTReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: L1_CROSS_DOMAIN_MESSENGER_SLOTReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `L1_ERC_721_BRIDGE_SLOT()` and selector `0x19f5cea8`. +```solidity +function L1_ERC_721_BRIDGE_SLOT() external view returns (bytes32); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct L1_ERC_721_BRIDGE_SLOTCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`L1_ERC_721_BRIDGE_SLOT()`](L1_ERC_721_BRIDGE_SLOTCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct L1_ERC_721_BRIDGE_SLOTReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: L1_ERC_721_BRIDGE_SLOTCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for L1_ERC_721_BRIDGE_SLOTCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: L1_ERC_721_BRIDGE_SLOTReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for L1_ERC_721_BRIDGE_SLOTReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for L1_ERC_721_BRIDGE_SLOTCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::FixedBytes<32>; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "L1_ERC_721_BRIDGE_SLOT()"; + const SELECTOR: [u8; 4] = [25u8, 245u8, 206u8, 168u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: L1_ERC_721_BRIDGE_SLOTReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: L1_ERC_721_BRIDGE_SLOTReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `L1_STANDARD_BRIDGE_SLOT()` and selector `0xf8c68de0`. +```solidity +function L1_STANDARD_BRIDGE_SLOT() external view returns (bytes32); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct L1_STANDARD_BRIDGE_SLOTCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`L1_STANDARD_BRIDGE_SLOT()`](L1_STANDARD_BRIDGE_SLOTCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct L1_STANDARD_BRIDGE_SLOTReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: L1_STANDARD_BRIDGE_SLOTCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for L1_STANDARD_BRIDGE_SLOTCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: L1_STANDARD_BRIDGE_SLOTReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for L1_STANDARD_BRIDGE_SLOTReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for L1_STANDARD_BRIDGE_SLOTCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::FixedBytes<32>; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "L1_STANDARD_BRIDGE_SLOT()"; + const SELECTOR: [u8; 4] = [248u8, 198u8, 141u8, 224u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: L1_STANDARD_BRIDGE_SLOTReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: L1_STANDARD_BRIDGE_SLOTReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `OPTIMISM_MINTABLE_ERC20_FACTORY_SLOT()` and selector `0x06c92657`. +```solidity +function OPTIMISM_MINTABLE_ERC20_FACTORY_SLOT() external view returns (bytes32); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct OPTIMISM_MINTABLE_ERC20_FACTORY_SLOTCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`OPTIMISM_MINTABLE_ERC20_FACTORY_SLOT()`](OPTIMISM_MINTABLE_ERC20_FACTORY_SLOTCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct OPTIMISM_MINTABLE_ERC20_FACTORY_SLOTReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: OPTIMISM_MINTABLE_ERC20_FACTORY_SLOTCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for OPTIMISM_MINTABLE_ERC20_FACTORY_SLOTCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: OPTIMISM_MINTABLE_ERC20_FACTORY_SLOTReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for OPTIMISM_MINTABLE_ERC20_FACTORY_SLOTReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for OPTIMISM_MINTABLE_ERC20_FACTORY_SLOTCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::FixedBytes<32>; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "OPTIMISM_MINTABLE_ERC20_FACTORY_SLOT()"; + const SELECTOR: [u8; 4] = [6u8, 201u8, 38u8, 87u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: OPTIMISM_MINTABLE_ERC20_FACTORY_SLOTReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: OPTIMISM_MINTABLE_ERC20_FACTORY_SLOTReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `OPTIMISM_PORTAL_SLOT()` and selector `0xfd32aa0f`. +```solidity +function OPTIMISM_PORTAL_SLOT() external view returns (bytes32); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct OPTIMISM_PORTAL_SLOTCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`OPTIMISM_PORTAL_SLOT()`](OPTIMISM_PORTAL_SLOTCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct OPTIMISM_PORTAL_SLOTReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: OPTIMISM_PORTAL_SLOTCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for OPTIMISM_PORTAL_SLOTCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: OPTIMISM_PORTAL_SLOTReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for OPTIMISM_PORTAL_SLOTReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for OPTIMISM_PORTAL_SLOTCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::FixedBytes<32>; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "OPTIMISM_PORTAL_SLOT()"; + const SELECTOR: [u8; 4] = [253u8, 50u8, 170u8, 15u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: OPTIMISM_PORTAL_SLOTReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: OPTIMISM_PORTAL_SLOTReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `START_BLOCK_SLOT()` and selector `0xe0e2016d`. +```solidity +function START_BLOCK_SLOT() external view returns (bytes32); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct START_BLOCK_SLOTCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`START_BLOCK_SLOT()`](START_BLOCK_SLOTCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct START_BLOCK_SLOTReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: START_BLOCK_SLOTCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for START_BLOCK_SLOTCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: START_BLOCK_SLOTReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for START_BLOCK_SLOTReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for START_BLOCK_SLOTCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::FixedBytes<32>; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "START_BLOCK_SLOT()"; + const SELECTOR: [u8; 4] = [224u8, 226u8, 1u8, 109u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: START_BLOCK_SLOTReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: START_BLOCK_SLOTReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `UNSAFE_BLOCK_SIGNER_SLOT()` and selector `0x4f16540b`. +```solidity +function UNSAFE_BLOCK_SIGNER_SLOT() external view returns (bytes32); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct UNSAFE_BLOCK_SIGNER_SLOTCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`UNSAFE_BLOCK_SIGNER_SLOT()`](UNSAFE_BLOCK_SIGNER_SLOTCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct UNSAFE_BLOCK_SIGNER_SLOTReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: UNSAFE_BLOCK_SIGNER_SLOTCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for UNSAFE_BLOCK_SIGNER_SLOTCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: UNSAFE_BLOCK_SIGNER_SLOTReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for UNSAFE_BLOCK_SIGNER_SLOTReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for UNSAFE_BLOCK_SIGNER_SLOTCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::FixedBytes<32>; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "UNSAFE_BLOCK_SIGNER_SLOT()"; + const SELECTOR: [u8; 4] = [79u8, 22u8, 84u8, 11u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: UNSAFE_BLOCK_SIGNER_SLOTReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: UNSAFE_BLOCK_SIGNER_SLOTReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `VERSION()` and selector `0xffa1ad74`. +```solidity +function VERSION() external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct VERSIONCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`VERSION()`](VERSIONCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct VERSIONReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: VERSIONCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for VERSIONCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: VERSIONReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for VERSIONReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for VERSIONCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "VERSION()"; + const SELECTOR: [u8; 4] = [255u8, 161u8, 173u8, 116u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: VERSIONReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: VERSIONReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `basefeeScalar()` and selector `0xbfb14fb7`. +```solidity +function basefeeScalar() external view returns (uint32); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct basefeeScalarCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`basefeeScalar()`](basefeeScalarCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct basefeeScalarReturn { + #[allow(missing_docs)] + pub _0: u32, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: basefeeScalarCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for basefeeScalarCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u32,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: basefeeScalarReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for basefeeScalarReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for basefeeScalarCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u32; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<32>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "basefeeScalar()"; + const SELECTOR: [u8; 4] = [191u8, 177u8, 79u8, 183u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: basefeeScalarReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: basefeeScalarReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `batchInbox()` and selector `0xdac6e63a`. +```solidity +function batchInbox() external view returns (address addr_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct batchInboxCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`batchInbox()`](batchInboxCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct batchInboxReturn { + #[allow(missing_docs)] + pub addr_: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: batchInboxCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for batchInboxCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: batchInboxReturn) -> Self { + (value.addr_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for batchInboxReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { addr_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for batchInboxCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "batchInbox()"; + const SELECTOR: [u8; 4] = [218u8, 198u8, 230u8, 58u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: batchInboxReturn = r.into(); + r.addr_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: batchInboxReturn = r.into(); + r.addr_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `batcherHash()` and selector `0xe81b2c6d`. +```solidity +function batcherHash() external view returns (bytes32); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct batcherHashCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`batcherHash()`](batcherHashCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct batcherHashReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: batcherHashCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for batcherHashCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: batcherHashReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for batcherHashReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for batcherHashCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::FixedBytes<32>; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "batcherHash()"; + const SELECTOR: [u8; 4] = [232u8, 27u8, 44u8, 109u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: batcherHashReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: batcherHashReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `blobbasefeeScalar()` and selector `0xec707517`. +```solidity +function blobbasefeeScalar() external view returns (uint32); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct blobbasefeeScalarCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`blobbasefeeScalar()`](blobbasefeeScalarCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct blobbasefeeScalarReturn { + #[allow(missing_docs)] + pub _0: u32, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: blobbasefeeScalarCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for blobbasefeeScalarCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u32,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: blobbasefeeScalarReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for blobbasefeeScalarReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for blobbasefeeScalarCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u32; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<32>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "blobbasefeeScalar()"; + const SELECTOR: [u8; 4] = [236u8, 112u8, 117u8, 23u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: blobbasefeeScalarReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: blobbasefeeScalarReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `daFootprintGasScalar()` and selector `0xfe3d5710`. +```solidity +function daFootprintGasScalar() external view returns (uint16); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct daFootprintGasScalarCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`daFootprintGasScalar()`](daFootprintGasScalarCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct daFootprintGasScalarReturn { + #[allow(missing_docs)] + pub _0: u16, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: daFootprintGasScalarCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for daFootprintGasScalarCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<16>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u16,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: daFootprintGasScalarReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for daFootprintGasScalarReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for daFootprintGasScalarCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u16; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<16>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "daFootprintGasScalar()"; + const SELECTOR: [u8; 4] = [254u8, 61u8, 87u8, 16u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: daFootprintGasScalarReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: daFootprintGasScalarReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `delayedWETH()` and selector `0x215b7a1c`. +```solidity +function delayedWETH() external view returns (address addr_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct delayedWETHCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`delayedWETH()`](delayedWETHCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct delayedWETHReturn { + #[allow(missing_docs)] + pub addr_: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: delayedWETHCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for delayedWETHCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: delayedWETHReturn) -> Self { + (value.addr_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for delayedWETHReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { addr_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for delayedWETHCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "delayedWETH()"; + const SELECTOR: [u8; 4] = [33u8, 91u8, 122u8, 28u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: delayedWETHReturn = r.into(); + r.addr_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: delayedWETHReturn = r.into(); + r.addr_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `disputeGameFactory()` and selector `0xf2b4e617`. +```solidity +function disputeGameFactory() external view returns (address addr_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct disputeGameFactoryCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`disputeGameFactory()`](disputeGameFactoryCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct disputeGameFactoryReturn { + #[allow(missing_docs)] + pub addr_: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: disputeGameFactoryCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for disputeGameFactoryCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: disputeGameFactoryReturn) -> Self { + (value.addr_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for disputeGameFactoryReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { addr_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for disputeGameFactoryCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "disputeGameFactory()"; + const SELECTOR: [u8; 4] = [242u8, 180u8, 230u8, 23u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: disputeGameFactoryReturn = r.into(); + r.addr_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: disputeGameFactoryReturn = r.into(); + r.addr_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `eip1559Denominator()` and selector `0xd220a9e0`. +```solidity +function eip1559Denominator() external view returns (uint32); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct eip1559DenominatorCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`eip1559Denominator()`](eip1559DenominatorCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct eip1559DenominatorReturn { + #[allow(missing_docs)] + pub _0: u32, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: eip1559DenominatorCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for eip1559DenominatorCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u32,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: eip1559DenominatorReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for eip1559DenominatorReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for eip1559DenominatorCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u32; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<32>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "eip1559Denominator()"; + const SELECTOR: [u8; 4] = [210u8, 32u8, 169u8, 224u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: eip1559DenominatorReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: eip1559DenominatorReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `eip1559Elasticity()` and selector `0xc9ff2d16`. +```solidity +function eip1559Elasticity() external view returns (uint32); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct eip1559ElasticityCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`eip1559Elasticity()`](eip1559ElasticityCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct eip1559ElasticityReturn { + #[allow(missing_docs)] + pub _0: u32, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: eip1559ElasticityCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for eip1559ElasticityCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u32,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: eip1559ElasticityReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for eip1559ElasticityReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for eip1559ElasticityCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u32; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<32>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "eip1559Elasticity()"; + const SELECTOR: [u8; 4] = [201u8, 255u8, 45u8, 22u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: eip1559ElasticityReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: eip1559ElasticityReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `gasLimit()` and selector `0xf68016b7`. +```solidity +function gasLimit() external view returns (uint64); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct gasLimitCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`gasLimit()`](gasLimitCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct gasLimitReturn { + #[allow(missing_docs)] + pub _0: u64, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: gasLimitCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for gasLimitCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u64,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: gasLimitReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for gasLimitReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for gasLimitCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u64; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "gasLimit()"; + const SELECTOR: [u8; 4] = [246u8, 128u8, 22u8, 183u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: gasLimitReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: gasLimitReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `getAddresses()` and selector `0xa39fac12`. +```solidity +function getAddresses() external view returns (Addresses memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getAddressesCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`getAddresses()`](getAddressesCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getAddressesReturn { + #[allow(missing_docs)] + pub _0: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: getAddressesCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for getAddressesCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (Addresses,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: getAddressesReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for getAddressesReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for getAddressesCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (Addresses,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "getAddresses()"; + const SELECTOR: [u8; 4] = [163u8, 159u8, 172u8, 18u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: getAddressesReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: getAddressesReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `guardian()` and selector `0x452a9320`. +```solidity +function guardian() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct guardianCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`guardian()`](guardianCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct guardianReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: guardianCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for guardianCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: guardianReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for guardianReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for guardianCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "guardian()"; + const SELECTOR: [u8; 4] = [69u8, 42u8, 147u8, 32u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: guardianReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: guardianReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `initVersion()` and selector `0x38d38c97`. +```solidity +function initVersion() external view returns (uint8); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct initVersionCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`initVersion()`](initVersionCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct initVersionReturn { + #[allow(missing_docs)] + pub _0: u8, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: initVersionCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for initVersionCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<8>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u8,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: initVersionReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for initVersionReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for initVersionCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u8; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<8>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "initVersion()"; + const SELECTOR: [u8; 4] = [56u8, 211u8, 140u8, 151u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: initVersionReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: initVersionReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `initialize(address,uint32,uint32,bytes32,uint64,address,(uint32,uint8,uint8,uint32,uint32,uint128),address,(address,address,address,address,address,address),uint256,address)` and selector `0x1edd5098`. +```solidity +function initialize(address _owner, uint32 _basefeeScalar, uint32 _blobbasefeeScalar, bytes32 _batcherHash, uint64 _gasLimit, address _unsafeBlockSigner, IResourceMetering.ResourceConfig memory _config, address _batchInbox, Addresses memory _addresses, uint256 _l2ChainId, address _superchainConfig) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct initializeCall { + #[allow(missing_docs)] + pub _owner: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _basefeeScalar: u32, + #[allow(missing_docs)] + pub _blobbasefeeScalar: u32, + #[allow(missing_docs)] + pub _batcherHash: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub _gasLimit: u64, + #[allow(missing_docs)] + pub _unsafeBlockSigner: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _config: ::RustType, + #[allow(missing_docs)] + pub _batchInbox: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _addresses: ::RustType, + #[allow(missing_docs)] + pub _l2ChainId: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _superchainConfig: alloy::sol_types::private::Address, + } + ///Container type for the return parameters of the [`initialize(address,uint32,uint32,bytes32,uint64,address,(uint32,uint8,uint8,uint32,uint32,uint128),address,(address,address,address,address,address,address),uint256,address)`](initializeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct initializeReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<32>, + alloy::sol_types::sol_data::Uint<32>, + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Uint<64>, + alloy::sol_types::sol_data::Address, + IResourceMetering::ResourceConfig, + alloy::sol_types::sol_data::Address, + Addresses, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Address, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + u32, + u32, + alloy::sol_types::private::FixedBytes<32>, + u64, + alloy::sol_types::private::Address, + ::RustType, + alloy::sol_types::private::Address, + ::RustType, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::Address, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: initializeCall) -> Self { + ( + value._owner, + value._basefeeScalar, + value._blobbasefeeScalar, + value._batcherHash, + value._gasLimit, + value._unsafeBlockSigner, + value._config, + value._batchInbox, + value._addresses, + value._l2ChainId, + value._superchainConfig, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for initializeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _owner: tuple.0, + _basefeeScalar: tuple.1, + _blobbasefeeScalar: tuple.2, + _batcherHash: tuple.3, + _gasLimit: tuple.4, + _unsafeBlockSigner: tuple.5, + _config: tuple.6, + _batchInbox: tuple.7, + _addresses: tuple.8, + _l2ChainId: tuple.9, + _superchainConfig: tuple.10, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: initializeReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for initializeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl initializeReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for initializeCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<32>, + alloy::sol_types::sol_data::Uint<32>, + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Uint<64>, + alloy::sol_types::sol_data::Address, + IResourceMetering::ResourceConfig, + alloy::sol_types::sol_data::Address, + Addresses, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Address, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = initializeReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "initialize(address,uint32,uint32,bytes32,uint64,address,(uint32,uint8,uint8,uint32,uint32,uint128),address,(address,address,address,address,address,address),uint256,address)"; + const SELECTOR: [u8; 4] = [30u8, 221u8, 80u8, 152u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._owner, + ), + as alloy_sol_types::SolType>::tokenize(&self._basefeeScalar), + as alloy_sol_types::SolType>::tokenize(&self._blobbasefeeScalar), + as alloy_sol_types::SolType>::tokenize(&self._batcherHash), + as alloy_sol_types::SolType>::tokenize(&self._gasLimit), + ::tokenize( + &self._unsafeBlockSigner, + ), + ::tokenize( + &self._config, + ), + ::tokenize( + &self._batchInbox, + ), + ::tokenize(&self._addresses), + as alloy_sol_types::SolType>::tokenize(&self._l2ChainId), + ::tokenize( + &self._superchainConfig, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + initializeReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `isCustomGasToken()` and selector `0x21326849`. +```solidity +function isCustomGasToken() external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct isCustomGasTokenCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`isCustomGasToken()`](isCustomGasTokenCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct isCustomGasTokenReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: isCustomGasTokenCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for isCustomGasTokenCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: isCustomGasTokenReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for isCustomGasTokenReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for isCustomGasTokenCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "isCustomGasToken()"; + const SELECTOR: [u8; 4] = [33u8, 50u8, 104u8, 73u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: isCustomGasTokenReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: isCustomGasTokenReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `isFeatureEnabled(bytes32)` and selector `0x47af267b`. +```solidity +function isFeatureEnabled(bytes32) external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct isFeatureEnabledCall(pub alloy::sol_types::private::FixedBytes<32>); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`isFeatureEnabled(bytes32)`](isFeatureEnabledCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct isFeatureEnabledReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: isFeatureEnabledCall) -> Self { + (value.0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for isFeatureEnabledCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self(tuple.0) + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: isFeatureEnabledReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for isFeatureEnabledReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for isFeatureEnabledCall { + type Parameters<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "isFeatureEnabled(bytes32)"; + const SELECTOR: [u8; 4] = [71u8, 175u8, 38u8, 123u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.0), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: isFeatureEnabledReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: isFeatureEnabledReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `l1CrossDomainMessenger()` and selector `0xa7119869`. +```solidity +function l1CrossDomainMessenger() external view returns (address addr_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct l1CrossDomainMessengerCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`l1CrossDomainMessenger()`](l1CrossDomainMessengerCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct l1CrossDomainMessengerReturn { + #[allow(missing_docs)] + pub addr_: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: l1CrossDomainMessengerCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for l1CrossDomainMessengerCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: l1CrossDomainMessengerReturn) -> Self { + (value.addr_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for l1CrossDomainMessengerReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { addr_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for l1CrossDomainMessengerCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "l1CrossDomainMessenger()"; + const SELECTOR: [u8; 4] = [167u8, 17u8, 152u8, 105u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: l1CrossDomainMessengerReturn = r.into(); + r.addr_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: l1CrossDomainMessengerReturn = r.into(); + r.addr_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `l1ERC721Bridge()` and selector `0xc4e8ddfa`. +```solidity +function l1ERC721Bridge() external view returns (address addr_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct l1ERC721BridgeCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`l1ERC721Bridge()`](l1ERC721BridgeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct l1ERC721BridgeReturn { + #[allow(missing_docs)] + pub addr_: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: l1ERC721BridgeCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for l1ERC721BridgeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: l1ERC721BridgeReturn) -> Self { + (value.addr_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for l1ERC721BridgeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { addr_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for l1ERC721BridgeCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "l1ERC721Bridge()"; + const SELECTOR: [u8; 4] = [196u8, 232u8, 221u8, 250u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: l1ERC721BridgeReturn = r.into(); + r.addr_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: l1ERC721BridgeReturn = r.into(); + r.addr_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `l1StandardBridge()` and selector `0x078f29cf`. +```solidity +function l1StandardBridge() external view returns (address addr_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct l1StandardBridgeCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`l1StandardBridge()`](l1StandardBridgeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct l1StandardBridgeReturn { + #[allow(missing_docs)] + pub addr_: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: l1StandardBridgeCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for l1StandardBridgeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: l1StandardBridgeReturn) -> Self { + (value.addr_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for l1StandardBridgeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { addr_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for l1StandardBridgeCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "l1StandardBridge()"; + const SELECTOR: [u8; 4] = [7u8, 143u8, 41u8, 207u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: l1StandardBridgeReturn = r.into(); + r.addr_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: l1StandardBridgeReturn = r.into(); + r.addr_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `l2ChainId()` and selector `0xd6ae3cd5`. +```solidity +function l2ChainId() external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct l2ChainIdCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`l2ChainId()`](l2ChainIdCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct l2ChainIdReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: l2ChainIdCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for l2ChainIdCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: l2ChainIdReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for l2ChainIdReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for l2ChainIdCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "l2ChainId()"; + const SELECTOR: [u8; 4] = [214u8, 174u8, 60u8, 213u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: l2ChainIdReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: l2ChainIdReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `maximumGasLimit()` and selector `0x0ae14b1b`. +```solidity +function maximumGasLimit() external pure returns (uint64); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct maximumGasLimitCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`maximumGasLimit()`](maximumGasLimitCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct maximumGasLimitReturn { + #[allow(missing_docs)] + pub _0: u64, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: maximumGasLimitCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for maximumGasLimitCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u64,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: maximumGasLimitReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for maximumGasLimitReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for maximumGasLimitCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u64; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "maximumGasLimit()"; + const SELECTOR: [u8; 4] = [10u8, 225u8, 75u8, 27u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: maximumGasLimitReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: maximumGasLimitReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `minBaseFee()` and selector `0xa62611a2`. +```solidity +function minBaseFee() external view returns (uint64); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct minBaseFeeCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`minBaseFee()`](minBaseFeeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct minBaseFeeReturn { + #[allow(missing_docs)] + pub _0: u64, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: minBaseFeeCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for minBaseFeeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u64,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: minBaseFeeReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for minBaseFeeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for minBaseFeeCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u64; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "minBaseFee()"; + const SELECTOR: [u8; 4] = [166u8, 38u8, 17u8, 162u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: minBaseFeeReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: minBaseFeeReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `minimumGasLimit()` and selector `0x4add321d`. +```solidity +function minimumGasLimit() external view returns (uint64); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct minimumGasLimitCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`minimumGasLimit()`](minimumGasLimitCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct minimumGasLimitReturn { + #[allow(missing_docs)] + pub _0: u64, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: minimumGasLimitCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for minimumGasLimitCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u64,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: minimumGasLimitReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for minimumGasLimitReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for minimumGasLimitCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u64; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "minimumGasLimit()"; + const SELECTOR: [u8; 4] = [74u8, 221u8, 50u8, 29u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: minimumGasLimitReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: minimumGasLimitReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `operatorFeeConstant()` and selector `0x16d3bc7f`. +```solidity +function operatorFeeConstant() external view returns (uint64); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct operatorFeeConstantCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`operatorFeeConstant()`](operatorFeeConstantCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct operatorFeeConstantReturn { + #[allow(missing_docs)] + pub _0: u64, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: operatorFeeConstantCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for operatorFeeConstantCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u64,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: operatorFeeConstantReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for operatorFeeConstantReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for operatorFeeConstantCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u64; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "operatorFeeConstant()"; + const SELECTOR: [u8; 4] = [22u8, 211u8, 188u8, 127u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: operatorFeeConstantReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: operatorFeeConstantReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `operatorFeeScalar()` and selector `0x4d5d9a2a`. +```solidity +function operatorFeeScalar() external view returns (uint32); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct operatorFeeScalarCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`operatorFeeScalar()`](operatorFeeScalarCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct operatorFeeScalarReturn { + #[allow(missing_docs)] + pub _0: u32, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: operatorFeeScalarCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for operatorFeeScalarCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u32,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: operatorFeeScalarReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for operatorFeeScalarReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for operatorFeeScalarCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u32; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<32>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "operatorFeeScalar()"; + const SELECTOR: [u8; 4] = [77u8, 93u8, 154u8, 42u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: operatorFeeScalarReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: operatorFeeScalarReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `optimismMintableERC20Factory()` and selector `0x9b7d7f0a`. +```solidity +function optimismMintableERC20Factory() external view returns (address addr_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct optimismMintableERC20FactoryCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`optimismMintableERC20Factory()`](optimismMintableERC20FactoryCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct optimismMintableERC20FactoryReturn { + #[allow(missing_docs)] + pub addr_: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: optimismMintableERC20FactoryCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for optimismMintableERC20FactoryCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: optimismMintableERC20FactoryReturn) -> Self { + (value.addr_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for optimismMintableERC20FactoryReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { addr_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for optimismMintableERC20FactoryCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "optimismMintableERC20Factory()"; + const SELECTOR: [u8; 4] = [155u8, 125u8, 127u8, 10u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: optimismMintableERC20FactoryReturn = r.into(); + r.addr_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: optimismMintableERC20FactoryReturn = r.into(); + r.addr_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `optimismPortal()` and selector `0x0a49cb03`. +```solidity +function optimismPortal() external view returns (address addr_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct optimismPortalCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`optimismPortal()`](optimismPortalCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct optimismPortalReturn { + #[allow(missing_docs)] + pub addr_: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: optimismPortalCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for optimismPortalCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: optimismPortalReturn) -> Self { + (value.addr_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for optimismPortalReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { addr_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for optimismPortalCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "optimismPortal()"; + const SELECTOR: [u8; 4] = [10u8, 73u8, 203u8, 3u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: optimismPortalReturn = r.into(); + r.addr_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: optimismPortalReturn = r.into(); + r.addr_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `overhead()` and selector `0x0c18c162`. +```solidity +function overhead() external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct overheadCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`overhead()`](overheadCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct overheadReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: overheadCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for overheadCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: overheadReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for overheadReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for overheadCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "overhead()"; + const SELECTOR: [u8; 4] = [12u8, 24u8, 193u8, 98u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: overheadReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: overheadReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `owner()` and selector `0x8da5cb5b`. +```solidity +function owner() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ownerCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`owner()`](ownerCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ownerReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ownerCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ownerCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ownerReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ownerReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for ownerCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "owner()"; + const SELECTOR: [u8; 4] = [141u8, 165u8, 203u8, 91u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: ownerReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: ownerReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `paused()` and selector `0x5c975abb`. +```solidity +function paused() external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct pausedCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`paused()`](pausedCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct pausedReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: pausedCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for pausedCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: pausedReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for pausedReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for pausedCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "paused()"; + const SELECTOR: [u8; 4] = [92u8, 151u8, 90u8, 187u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: pausedReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: pausedReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `proxyAdmin()` and selector `0x3e47158c`. +```solidity +function proxyAdmin() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct proxyAdminCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`proxyAdmin()`](proxyAdminCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct proxyAdminReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: proxyAdminCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for proxyAdminCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: proxyAdminReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for proxyAdminReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for proxyAdminCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "proxyAdmin()"; + const SELECTOR: [u8; 4] = [62u8, 71u8, 21u8, 140u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: proxyAdminReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: proxyAdminReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `proxyAdminOwner()` and selector `0xdad544e0`. +```solidity +function proxyAdminOwner() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct proxyAdminOwnerCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`proxyAdminOwner()`](proxyAdminOwnerCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct proxyAdminOwnerReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: proxyAdminOwnerCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for proxyAdminOwnerCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: proxyAdminOwnerReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for proxyAdminOwnerReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for proxyAdminOwnerCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "proxyAdminOwner()"; + const SELECTOR: [u8; 4] = [218u8, 213u8, 68u8, 224u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: proxyAdminOwnerReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: proxyAdminOwnerReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `renounceOwnership()` and selector `0x715018a6`. +```solidity +function renounceOwnership() external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct renounceOwnershipCall; + ///Container type for the return parameters of the [`renounceOwnership()`](renounceOwnershipCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct renounceOwnershipReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: renounceOwnershipCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for renounceOwnershipCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: renounceOwnershipReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for renounceOwnershipReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl renounceOwnershipReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for renounceOwnershipCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = renounceOwnershipReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "renounceOwnership()"; + const SELECTOR: [u8; 4] = [113u8, 80u8, 24u8, 166u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + renounceOwnershipReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `resourceConfig()` and selector `0xcc731b02`. +```solidity +function resourceConfig() external view returns (IResourceMetering.ResourceConfig memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct resourceConfigCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`resourceConfig()`](resourceConfigCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct resourceConfigReturn { + #[allow(missing_docs)] + pub _0: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: resourceConfigCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for resourceConfigCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (IResourceMetering::ResourceConfig,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: resourceConfigReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for resourceConfigReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for resourceConfigCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (IResourceMetering::ResourceConfig,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "resourceConfig()"; + const SELECTOR: [u8; 4] = [204u8, 115u8, 27u8, 2u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: resourceConfigReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: resourceConfigReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `scalar()` and selector `0xf45e65d8`. +```solidity +function scalar() external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct scalarCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`scalar()`](scalarCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct scalarReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: scalarCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for scalarCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: scalarReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for scalarReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for scalarCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "scalar()"; + const SELECTOR: [u8; 4] = [244u8, 94u8, 101u8, 216u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: scalarReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: scalarReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `setBatcherHash(address)` and selector `0x0a2ca2a9`. +```solidity +function setBatcherHash(address _batcher) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setBatcherHash_0Call { + #[allow(missing_docs)] + pub _batcher: alloy::sol_types::private::Address, + } + ///Container type for the return parameters of the [`setBatcherHash(address)`](setBatcherHash_0Call) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setBatcherHash_0Return {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: setBatcherHash_0Call) -> Self { + (value._batcher,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for setBatcherHash_0Call { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _batcher: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: setBatcherHash_0Return) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for setBatcherHash_0Return { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl setBatcherHash_0Return { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for setBatcherHash_0Call { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = setBatcherHash_0Return; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "setBatcherHash(address)"; + const SELECTOR: [u8; 4] = [10u8, 44u8, 162u8, 169u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._batcher, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + setBatcherHash_0Return::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `setBatcherHash(bytes32)` and selector `0xc9b26f61`. +```solidity +function setBatcherHash(bytes32 _batcherHash) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setBatcherHash_1Call { + #[allow(missing_docs)] + pub _batcherHash: alloy::sol_types::private::FixedBytes<32>, + } + ///Container type for the return parameters of the [`setBatcherHash(bytes32)`](setBatcherHash_1Call) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setBatcherHash_1Return {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: setBatcherHash_1Call) -> Self { + (value._batcherHash,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for setBatcherHash_1Call { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _batcherHash: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: setBatcherHash_1Return) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for setBatcherHash_1Return { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl setBatcherHash_1Return { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for setBatcherHash_1Call { + type Parameters<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = setBatcherHash_1Return; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "setBatcherHash(bytes32)"; + const SELECTOR: [u8; 4] = [201u8, 178u8, 111u8, 97u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._batcherHash), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + setBatcherHash_1Return::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `setDAFootprintGasScalar(uint16)` and selector `0x20f06fdc`. +```solidity +function setDAFootprintGasScalar(uint16 _daFootprintGasScalar) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setDAFootprintGasScalarCall { + #[allow(missing_docs)] + pub _daFootprintGasScalar: u16, + } + ///Container type for the return parameters of the [`setDAFootprintGasScalar(uint16)`](setDAFootprintGasScalarCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setDAFootprintGasScalarReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<16>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u16,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: setDAFootprintGasScalarCall) -> Self { + (value._daFootprintGasScalar,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for setDAFootprintGasScalarCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _daFootprintGasScalar: tuple.0, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: setDAFootprintGasScalarReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for setDAFootprintGasScalarReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl setDAFootprintGasScalarReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken< + '_, + > { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for setDAFootprintGasScalarCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Uint<16>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = setDAFootprintGasScalarReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "setDAFootprintGasScalar(uint16)"; + const SELECTOR: [u8; 4] = [32u8, 240u8, 111u8, 220u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize( + &self._daFootprintGasScalar, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + setDAFootprintGasScalarReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `setEIP1559Params(uint32,uint32)` and selector `0xc0fd4b41`. +```solidity +function setEIP1559Params(uint32 _denominator, uint32 _elasticity) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setEIP1559ParamsCall { + #[allow(missing_docs)] + pub _denominator: u32, + #[allow(missing_docs)] + pub _elasticity: u32, + } + ///Container type for the return parameters of the [`setEIP1559Params(uint32,uint32)`](setEIP1559ParamsCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setEIP1559ParamsReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Uint<32>, + alloy::sol_types::sol_data::Uint<32>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u32, u32); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: setEIP1559ParamsCall) -> Self { + (value._denominator, value._elasticity) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for setEIP1559ParamsCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _denominator: tuple.0, + _elasticity: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: setEIP1559ParamsReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for setEIP1559ParamsReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl setEIP1559ParamsReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for setEIP1559ParamsCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Uint<32>, + alloy::sol_types::sol_data::Uint<32>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = setEIP1559ParamsReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "setEIP1559Params(uint32,uint32)"; + const SELECTOR: [u8; 4] = [192u8, 253u8, 75u8, 65u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._denominator), + as alloy_sol_types::SolType>::tokenize(&self._elasticity), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + setEIP1559ParamsReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `setFeature(bytes32,bool)` and selector `0xf2c4bc9e`. +```solidity +function setFeature(bytes32 _feature, bool _enabled) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setFeatureCall { + #[allow(missing_docs)] + pub _feature: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub _enabled: bool, + } + ///Container type for the return parameters of the [`setFeature(bytes32,bool)`](setFeatureCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setFeatureReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Bool, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::FixedBytes<32>, + bool, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: setFeatureCall) -> Self { + (value._feature, value._enabled) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for setFeatureCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _feature: tuple.0, + _enabled: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: setFeatureReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for setFeatureReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl setFeatureReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for setFeatureCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Bool, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = setFeatureReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "setFeature(bytes32,bool)"; + const SELECTOR: [u8; 4] = [242u8, 196u8, 188u8, 158u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._feature), + ::tokenize( + &self._enabled, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + setFeatureReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `setGasConfig(uint256,uint256)` and selector `0x935f029e`. +```solidity +function setGasConfig(uint256 _overhead, uint256 _scalar) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setGasConfigCall { + #[allow(missing_docs)] + pub _overhead: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _scalar: alloy::sol_types::private::primitives::aliases::U256, + } + ///Container type for the return parameters of the [`setGasConfig(uint256,uint256)`](setGasConfigCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setGasConfigReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: setGasConfigCall) -> Self { + (value._overhead, value._scalar) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for setGasConfigCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _overhead: tuple.0, + _scalar: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: setGasConfigReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for setGasConfigReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl setGasConfigReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for setGasConfigCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = setGasConfigReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "setGasConfig(uint256,uint256)"; + const SELECTOR: [u8; 4] = [147u8, 95u8, 2u8, 158u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._overhead), + as alloy_sol_types::SolType>::tokenize(&self._scalar), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + setGasConfigReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `setGasConfigEcotone(uint32,uint32)` and selector `0x21d7fde5`. +```solidity +function setGasConfigEcotone(uint32 _basefeeScalar, uint32 _blobbasefeeScalar) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setGasConfigEcotoneCall { + #[allow(missing_docs)] + pub _basefeeScalar: u32, + #[allow(missing_docs)] + pub _blobbasefeeScalar: u32, + } + ///Container type for the return parameters of the [`setGasConfigEcotone(uint32,uint32)`](setGasConfigEcotoneCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setGasConfigEcotoneReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Uint<32>, + alloy::sol_types::sol_data::Uint<32>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u32, u32); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: setGasConfigEcotoneCall) -> Self { + (value._basefeeScalar, value._blobbasefeeScalar) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for setGasConfigEcotoneCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _basefeeScalar: tuple.0, + _blobbasefeeScalar: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: setGasConfigEcotoneReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for setGasConfigEcotoneReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl setGasConfigEcotoneReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for setGasConfigEcotoneCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Uint<32>, + alloy::sol_types::sol_data::Uint<32>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = setGasConfigEcotoneReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "setGasConfigEcotone(uint32,uint32)"; + const SELECTOR: [u8; 4] = [33u8, 215u8, 253u8, 229u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._basefeeScalar), + as alloy_sol_types::SolType>::tokenize(&self._blobbasefeeScalar), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + setGasConfigEcotoneReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `setGasLimit(uint64)` and selector `0xb40a817c`. +```solidity +function setGasLimit(uint64 _gasLimit) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setGasLimitCall { + #[allow(missing_docs)] + pub _gasLimit: u64, + } + ///Container type for the return parameters of the [`setGasLimit(uint64)`](setGasLimitCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setGasLimitReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u64,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: setGasLimitCall) -> Self { + (value._gasLimit,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for setGasLimitCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _gasLimit: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: setGasLimitReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for setGasLimitReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl setGasLimitReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for setGasLimitCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Uint<64>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = setGasLimitReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "setGasLimit(uint64)"; + const SELECTOR: [u8; 4] = [180u8, 10u8, 129u8, 124u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._gasLimit), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + setGasLimitReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `setMinBaseFee(uint64)` and selector `0x7616f0e8`. +```solidity +function setMinBaseFee(uint64 _minBaseFee) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setMinBaseFeeCall { + #[allow(missing_docs)] + pub _minBaseFee: u64, + } + ///Container type for the return parameters of the [`setMinBaseFee(uint64)`](setMinBaseFeeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setMinBaseFeeReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u64,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: setMinBaseFeeCall) -> Self { + (value._minBaseFee,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for setMinBaseFeeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _minBaseFee: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: setMinBaseFeeReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for setMinBaseFeeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl setMinBaseFeeReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for setMinBaseFeeCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Uint<64>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = setMinBaseFeeReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "setMinBaseFee(uint64)"; + const SELECTOR: [u8; 4] = [118u8, 22u8, 240u8, 232u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._minBaseFee), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + setMinBaseFeeReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `setOperatorFeeScalars(uint32,uint64)` and selector `0x155b6c6f`. +```solidity +function setOperatorFeeScalars(uint32 _operatorFeeScalar, uint64 _operatorFeeConstant) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setOperatorFeeScalarsCall { + #[allow(missing_docs)] + pub _operatorFeeScalar: u32, + #[allow(missing_docs)] + pub _operatorFeeConstant: u64, + } + ///Container type for the return parameters of the [`setOperatorFeeScalars(uint32,uint64)`](setOperatorFeeScalarsCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setOperatorFeeScalarsReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Uint<32>, + alloy::sol_types::sol_data::Uint<64>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u32, u64); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: setOperatorFeeScalarsCall) -> Self { + (value._operatorFeeScalar, value._operatorFeeConstant) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for setOperatorFeeScalarsCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _operatorFeeScalar: tuple.0, + _operatorFeeConstant: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: setOperatorFeeScalarsReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for setOperatorFeeScalarsReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl setOperatorFeeScalarsReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken< + '_, + > { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for setOperatorFeeScalarsCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Uint<32>, + alloy::sol_types::sol_data::Uint<64>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = setOperatorFeeScalarsReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "setOperatorFeeScalars(uint32,uint64)"; + const SELECTOR: [u8; 4] = [21u8, 91u8, 108u8, 111u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._operatorFeeScalar), + as alloy_sol_types::SolType>::tokenize(&self._operatorFeeConstant), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + setOperatorFeeScalarsReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `setUnsafeBlockSigner(address)` and selector `0x18d13918`. +```solidity +function setUnsafeBlockSigner(address _unsafeBlockSigner) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setUnsafeBlockSignerCall { + #[allow(missing_docs)] + pub _unsafeBlockSigner: alloy::sol_types::private::Address, + } + ///Container type for the return parameters of the [`setUnsafeBlockSigner(address)`](setUnsafeBlockSignerCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setUnsafeBlockSignerReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: setUnsafeBlockSignerCall) -> Self { + (value._unsafeBlockSigner,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for setUnsafeBlockSignerCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _unsafeBlockSigner: tuple.0, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: setUnsafeBlockSignerReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for setUnsafeBlockSignerReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl setUnsafeBlockSignerReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken< + '_, + > { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for setUnsafeBlockSignerCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = setUnsafeBlockSignerReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "setUnsafeBlockSigner(address)"; + const SELECTOR: [u8; 4] = [24u8, 209u8, 57u8, 24u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._unsafeBlockSigner, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + setUnsafeBlockSignerReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `startBlock()` and selector `0x48cd4cb1`. +```solidity +function startBlock() external view returns (uint256 startBlock_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct startBlockCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`startBlock()`](startBlockCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct startBlockReturn { + #[allow(missing_docs)] + pub startBlock_: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: startBlockCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for startBlockCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: startBlockReturn) -> Self { + (value.startBlock_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for startBlockReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { startBlock_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for startBlockCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "startBlock()"; + const SELECTOR: [u8; 4] = [72u8, 205u8, 76u8, 177u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: startBlockReturn = r.into(); + r.startBlock_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: startBlockReturn = r.into(); + r.startBlock_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `superchainConfig()` and selector `0x35e80ab3`. +```solidity +function superchainConfig() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct superchainConfigCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`superchainConfig()`](superchainConfigCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct superchainConfigReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: superchainConfigCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for superchainConfigCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: superchainConfigReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for superchainConfigReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for superchainConfigCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "superchainConfig()"; + const SELECTOR: [u8; 4] = [53u8, 232u8, 10u8, 179u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: superchainConfigReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: superchainConfigReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `transferOwnership(address)` and selector `0xf2fde38b`. +```solidity +function transferOwnership(address newOwner) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct transferOwnershipCall { + #[allow(missing_docs)] + pub newOwner: alloy::sol_types::private::Address, + } + ///Container type for the return parameters of the [`transferOwnership(address)`](transferOwnershipCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct transferOwnershipReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: transferOwnershipCall) -> Self { + (value.newOwner,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for transferOwnershipCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { newOwner: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: transferOwnershipReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for transferOwnershipReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl transferOwnershipReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for transferOwnershipCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = transferOwnershipReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "transferOwnership(address)"; + const SELECTOR: [u8; 4] = [242u8, 253u8, 227u8, 139u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.newOwner, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + transferOwnershipReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `unsafeBlockSigner()` and selector `0x1fd19ee1`. +```solidity +function unsafeBlockSigner() external view returns (address addr_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct unsafeBlockSignerCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`unsafeBlockSigner()`](unsafeBlockSignerCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct unsafeBlockSignerReturn { + #[allow(missing_docs)] + pub addr_: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: unsafeBlockSignerCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for unsafeBlockSignerCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: unsafeBlockSignerReturn) -> Self { + (value.addr_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for unsafeBlockSignerReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { addr_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for unsafeBlockSignerCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "unsafeBlockSigner()"; + const SELECTOR: [u8; 4] = [31u8, 209u8, 158u8, 225u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: unsafeBlockSignerReturn = r.into(); + r.addr_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: unsafeBlockSignerReturn = r.into(); + r.addr_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `version()` and selector `0x54fd4d50`. +```solidity +function version() external pure returns (string memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`version()`](versionCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for versionCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::String; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "version()"; + const SELECTOR: [u8; 4] = [84u8, 253u8, 77u8, 80u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + } + }; + ///Container for all the [`SystemConfig`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum SystemConfigCalls { + #[allow(missing_docs)] + BATCH_INBOX_SLOT(BATCH_INBOX_SLOTCall), + #[allow(missing_docs)] + DELAYED_WETH_SLOT(DELAYED_WETH_SLOTCall), + #[allow(missing_docs)] + L1_CROSS_DOMAIN_MESSENGER_SLOT(L1_CROSS_DOMAIN_MESSENGER_SLOTCall), + #[allow(missing_docs)] + L1_ERC_721_BRIDGE_SLOT(L1_ERC_721_BRIDGE_SLOTCall), + #[allow(missing_docs)] + L1_STANDARD_BRIDGE_SLOT(L1_STANDARD_BRIDGE_SLOTCall), + #[allow(missing_docs)] + OPTIMISM_MINTABLE_ERC20_FACTORY_SLOT(OPTIMISM_MINTABLE_ERC20_FACTORY_SLOTCall), + #[allow(missing_docs)] + OPTIMISM_PORTAL_SLOT(OPTIMISM_PORTAL_SLOTCall), + #[allow(missing_docs)] + START_BLOCK_SLOT(START_BLOCK_SLOTCall), + #[allow(missing_docs)] + UNSAFE_BLOCK_SIGNER_SLOT(UNSAFE_BLOCK_SIGNER_SLOTCall), + #[allow(missing_docs)] + VERSION(VERSIONCall), + #[allow(missing_docs)] + basefeeScalar(basefeeScalarCall), + #[allow(missing_docs)] + batchInbox(batchInboxCall), + #[allow(missing_docs)] + batcherHash(batcherHashCall), + #[allow(missing_docs)] + blobbasefeeScalar(blobbasefeeScalarCall), + #[allow(missing_docs)] + daFootprintGasScalar(daFootprintGasScalarCall), + #[allow(missing_docs)] + delayedWETH(delayedWETHCall), + #[allow(missing_docs)] + disputeGameFactory(disputeGameFactoryCall), + #[allow(missing_docs)] + eip1559Denominator(eip1559DenominatorCall), + #[allow(missing_docs)] + eip1559Elasticity(eip1559ElasticityCall), + #[allow(missing_docs)] + gasLimit(gasLimitCall), + #[allow(missing_docs)] + getAddresses(getAddressesCall), + #[allow(missing_docs)] + guardian(guardianCall), + #[allow(missing_docs)] + initVersion(initVersionCall), + #[allow(missing_docs)] + initialize(initializeCall), + #[allow(missing_docs)] + isCustomGasToken(isCustomGasTokenCall), + #[allow(missing_docs)] + isFeatureEnabled(isFeatureEnabledCall), + #[allow(missing_docs)] + l1CrossDomainMessenger(l1CrossDomainMessengerCall), + #[allow(missing_docs)] + l1ERC721Bridge(l1ERC721BridgeCall), + #[allow(missing_docs)] + l1StandardBridge(l1StandardBridgeCall), + #[allow(missing_docs)] + l2ChainId(l2ChainIdCall), + #[allow(missing_docs)] + maximumGasLimit(maximumGasLimitCall), + #[allow(missing_docs)] + minBaseFee(minBaseFeeCall), + #[allow(missing_docs)] + minimumGasLimit(minimumGasLimitCall), + #[allow(missing_docs)] + operatorFeeConstant(operatorFeeConstantCall), + #[allow(missing_docs)] + operatorFeeScalar(operatorFeeScalarCall), + #[allow(missing_docs)] + optimismMintableERC20Factory(optimismMintableERC20FactoryCall), + #[allow(missing_docs)] + optimismPortal(optimismPortalCall), + #[allow(missing_docs)] + overhead(overheadCall), + #[allow(missing_docs)] + owner(ownerCall), + #[allow(missing_docs)] + paused(pausedCall), + #[allow(missing_docs)] + proxyAdmin(proxyAdminCall), + #[allow(missing_docs)] + proxyAdminOwner(proxyAdminOwnerCall), + #[allow(missing_docs)] + renounceOwnership(renounceOwnershipCall), + #[allow(missing_docs)] + resourceConfig(resourceConfigCall), + #[allow(missing_docs)] + scalar(scalarCall), + #[allow(missing_docs)] + setBatcherHash_0(setBatcherHash_0Call), + #[allow(missing_docs)] + setBatcherHash_1(setBatcherHash_1Call), + #[allow(missing_docs)] + setDAFootprintGasScalar(setDAFootprintGasScalarCall), + #[allow(missing_docs)] + setEIP1559Params(setEIP1559ParamsCall), + #[allow(missing_docs)] + setFeature(setFeatureCall), + #[allow(missing_docs)] + setGasConfig(setGasConfigCall), + #[allow(missing_docs)] + setGasConfigEcotone(setGasConfigEcotoneCall), + #[allow(missing_docs)] + setGasLimit(setGasLimitCall), + #[allow(missing_docs)] + setMinBaseFee(setMinBaseFeeCall), + #[allow(missing_docs)] + setOperatorFeeScalars(setOperatorFeeScalarsCall), + #[allow(missing_docs)] + setUnsafeBlockSigner(setUnsafeBlockSignerCall), + #[allow(missing_docs)] + startBlock(startBlockCall), + #[allow(missing_docs)] + superchainConfig(superchainConfigCall), + #[allow(missing_docs)] + transferOwnership(transferOwnershipCall), + #[allow(missing_docs)] + unsafeBlockSigner(unsafeBlockSignerCall), + #[allow(missing_docs)] + version(versionCall), + } + impl SystemConfigCalls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [6u8, 201u8, 38u8, 87u8], + [7u8, 143u8, 41u8, 207u8], + [10u8, 44u8, 162u8, 169u8], + [10u8, 73u8, 203u8, 3u8], + [10u8, 225u8, 75u8, 27u8], + [12u8, 24u8, 193u8, 98u8], + [21u8, 91u8, 108u8, 111u8], + [22u8, 211u8, 188u8, 127u8], + [24u8, 209u8, 57u8, 24u8], + [25u8, 245u8, 206u8, 168u8], + [30u8, 221u8, 80u8, 152u8], + [31u8, 209u8, 158u8, 225u8], + [32u8, 240u8, 111u8, 220u8], + [33u8, 50u8, 104u8, 73u8], + [33u8, 91u8, 122u8, 28u8], + [33u8, 215u8, 253u8, 229u8], + [53u8, 232u8, 10u8, 179u8], + [56u8, 211u8, 140u8, 151u8], + [62u8, 71u8, 21u8, 140u8], + [69u8, 42u8, 147u8, 32u8], + [71u8, 175u8, 38u8, 123u8], + [72u8, 205u8, 76u8, 177u8], + [74u8, 221u8, 50u8, 29u8], + [77u8, 93u8, 154u8, 42u8], + [79u8, 22u8, 84u8, 11u8], + [84u8, 253u8, 77u8, 80u8], + [92u8, 151u8, 90u8, 187u8], + [93u8, 115u8, 54u8, 156u8], + [113u8, 80u8, 24u8, 166u8], + [118u8, 22u8, 240u8, 232u8], + [126u8, 84u8, 184u8, 173u8], + [141u8, 165u8, 203u8, 91u8], + [147u8, 95u8, 2u8, 158u8], + [155u8, 125u8, 127u8, 10u8], + [163u8, 159u8, 172u8, 18u8], + [166u8, 38u8, 17u8, 162u8], + [167u8, 17u8, 152u8, 105u8], + [180u8, 10u8, 129u8, 124u8], + [188u8, 73u8, 206u8, 95u8], + [191u8, 177u8, 79u8, 183u8], + [192u8, 253u8, 75u8, 65u8], + [196u8, 232u8, 221u8, 250u8], + [201u8, 178u8, 111u8, 97u8], + [201u8, 255u8, 45u8, 22u8], + [204u8, 115u8, 27u8, 2u8], + [210u8, 32u8, 169u8, 224u8], + [214u8, 174u8, 60u8, 213u8], + [218u8, 198u8, 230u8, 58u8], + [218u8, 213u8, 68u8, 224u8], + [224u8, 226u8, 1u8, 109u8], + [232u8, 27u8, 44u8, 109u8], + [236u8, 112u8, 117u8, 23u8], + [242u8, 180u8, 230u8, 23u8], + [242u8, 196u8, 188u8, 158u8], + [242u8, 253u8, 227u8, 139u8], + [244u8, 94u8, 101u8, 216u8], + [246u8, 128u8, 22u8, 183u8], + [248u8, 198u8, 141u8, 224u8], + [253u8, 50u8, 170u8, 15u8], + [254u8, 61u8, 87u8, 16u8], + [255u8, 161u8, 173u8, 116u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(OPTIMISM_MINTABLE_ERC20_FACTORY_SLOT), + ::core::stringify!(l1StandardBridge), + ::core::stringify!(setBatcherHash_0), + ::core::stringify!(optimismPortal), + ::core::stringify!(maximumGasLimit), + ::core::stringify!(overhead), + ::core::stringify!(setOperatorFeeScalars), + ::core::stringify!(operatorFeeConstant), + ::core::stringify!(setUnsafeBlockSigner), + ::core::stringify!(L1_ERC_721_BRIDGE_SLOT), + ::core::stringify!(initialize), + ::core::stringify!(unsafeBlockSigner), + ::core::stringify!(setDAFootprintGasScalar), + ::core::stringify!(isCustomGasToken), + ::core::stringify!(delayedWETH), + ::core::stringify!(setGasConfigEcotone), + ::core::stringify!(superchainConfig), + ::core::stringify!(initVersion), + ::core::stringify!(proxyAdmin), + ::core::stringify!(guardian), + ::core::stringify!(isFeatureEnabled), + ::core::stringify!(startBlock), + ::core::stringify!(minimumGasLimit), + ::core::stringify!(operatorFeeScalar), + ::core::stringify!(UNSAFE_BLOCK_SIGNER_SLOT), + ::core::stringify!(version), + ::core::stringify!(paused), + ::core::stringify!(L1_CROSS_DOMAIN_MESSENGER_SLOT), + ::core::stringify!(renounceOwnership), + ::core::stringify!(setMinBaseFee), + ::core::stringify!(DELAYED_WETH_SLOT), + ::core::stringify!(owner), + ::core::stringify!(setGasConfig), + ::core::stringify!(optimismMintableERC20Factory), + ::core::stringify!(getAddresses), + ::core::stringify!(minBaseFee), + ::core::stringify!(l1CrossDomainMessenger), + ::core::stringify!(setGasLimit), + ::core::stringify!(BATCH_INBOX_SLOT), + ::core::stringify!(basefeeScalar), + ::core::stringify!(setEIP1559Params), + ::core::stringify!(l1ERC721Bridge), + ::core::stringify!(setBatcherHash_1), + ::core::stringify!(eip1559Elasticity), + ::core::stringify!(resourceConfig), + ::core::stringify!(eip1559Denominator), + ::core::stringify!(l2ChainId), + ::core::stringify!(batchInbox), + ::core::stringify!(proxyAdminOwner), + ::core::stringify!(START_BLOCK_SLOT), + ::core::stringify!(batcherHash), + ::core::stringify!(blobbasefeeScalar), + ::core::stringify!(disputeGameFactory), + ::core::stringify!(setFeature), + ::core::stringify!(transferOwnership), + ::core::stringify!(scalar), + ::core::stringify!(gasLimit), + ::core::stringify!(L1_STANDARD_BRIDGE_SLOT), + ::core::stringify!(OPTIMISM_PORTAL_SLOT), + ::core::stringify!(daFootprintGasScalar), + ::core::stringify!(VERSION), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for SystemConfigCalls { + const NAME: &'static str = "SystemConfigCalls"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 61usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::BATCH_INBOX_SLOT(_) => { + ::SELECTOR + } + Self::DELAYED_WETH_SLOT(_) => { + ::SELECTOR + } + Self::L1_CROSS_DOMAIN_MESSENGER_SLOT(_) => { + ::SELECTOR + } + Self::L1_ERC_721_BRIDGE_SLOT(_) => { + ::SELECTOR + } + Self::L1_STANDARD_BRIDGE_SLOT(_) => { + ::SELECTOR + } + Self::OPTIMISM_MINTABLE_ERC20_FACTORY_SLOT(_) => { + ::SELECTOR + } + Self::OPTIMISM_PORTAL_SLOT(_) => { + ::SELECTOR + } + Self::START_BLOCK_SLOT(_) => { + ::SELECTOR + } + Self::UNSAFE_BLOCK_SIGNER_SLOT(_) => { + ::SELECTOR + } + Self::VERSION(_) => ::SELECTOR, + Self::basefeeScalar(_) => { + ::SELECTOR + } + Self::batchInbox(_) => { + ::SELECTOR + } + Self::batcherHash(_) => { + ::SELECTOR + } + Self::blobbasefeeScalar(_) => { + ::SELECTOR + } + Self::daFootprintGasScalar(_) => { + ::SELECTOR + } + Self::delayedWETH(_) => { + ::SELECTOR + } + Self::disputeGameFactory(_) => { + ::SELECTOR + } + Self::eip1559Denominator(_) => { + ::SELECTOR + } + Self::eip1559Elasticity(_) => { + ::SELECTOR + } + Self::gasLimit(_) => ::SELECTOR, + Self::getAddresses(_) => { + ::SELECTOR + } + Self::guardian(_) => ::SELECTOR, + Self::initVersion(_) => { + ::SELECTOR + } + Self::initialize(_) => { + ::SELECTOR + } + Self::isCustomGasToken(_) => { + ::SELECTOR + } + Self::isFeatureEnabled(_) => { + ::SELECTOR + } + Self::l1CrossDomainMessenger(_) => { + ::SELECTOR + } + Self::l1ERC721Bridge(_) => { + ::SELECTOR + } + Self::l1StandardBridge(_) => { + ::SELECTOR + } + Self::l2ChainId(_) => { + ::SELECTOR + } + Self::maximumGasLimit(_) => { + ::SELECTOR + } + Self::minBaseFee(_) => { + ::SELECTOR + } + Self::minimumGasLimit(_) => { + ::SELECTOR + } + Self::operatorFeeConstant(_) => { + ::SELECTOR + } + Self::operatorFeeScalar(_) => { + ::SELECTOR + } + Self::optimismMintableERC20Factory(_) => { + ::SELECTOR + } + Self::optimismPortal(_) => { + ::SELECTOR + } + Self::overhead(_) => ::SELECTOR, + Self::owner(_) => ::SELECTOR, + Self::paused(_) => ::SELECTOR, + Self::proxyAdmin(_) => { + ::SELECTOR + } + Self::proxyAdminOwner(_) => { + ::SELECTOR + } + Self::renounceOwnership(_) => { + ::SELECTOR + } + Self::resourceConfig(_) => { + ::SELECTOR + } + Self::scalar(_) => ::SELECTOR, + Self::setBatcherHash_0(_) => { + ::SELECTOR + } + Self::setBatcherHash_1(_) => { + ::SELECTOR + } + Self::setDAFootprintGasScalar(_) => { + ::SELECTOR + } + Self::setEIP1559Params(_) => { + ::SELECTOR + } + Self::setFeature(_) => { + ::SELECTOR + } + Self::setGasConfig(_) => { + ::SELECTOR + } + Self::setGasConfigEcotone(_) => { + ::SELECTOR + } + Self::setGasLimit(_) => { + ::SELECTOR + } + Self::setMinBaseFee(_) => { + ::SELECTOR + } + Self::setOperatorFeeScalars(_) => { + ::SELECTOR + } + Self::setUnsafeBlockSigner(_) => { + ::SELECTOR + } + Self::startBlock(_) => { + ::SELECTOR + } + Self::superchainConfig(_) => { + ::SELECTOR + } + Self::transferOwnership(_) => { + ::SELECTOR + } + Self::unsafeBlockSigner(_) => { + ::SELECTOR + } + Self::version(_) => ::SELECTOR, + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn OPTIMISM_MINTABLE_ERC20_FACTORY_SLOT( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SystemConfigCalls::OPTIMISM_MINTABLE_ERC20_FACTORY_SLOT) + } + OPTIMISM_MINTABLE_ERC20_FACTORY_SLOT + }, + { + fn l1StandardBridge( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SystemConfigCalls::l1StandardBridge) + } + l1StandardBridge + }, + { + fn setBatcherHash_0( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SystemConfigCalls::setBatcherHash_0) + } + setBatcherHash_0 + }, + { + fn optimismPortal( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SystemConfigCalls::optimismPortal) + } + optimismPortal + }, + { + fn maximumGasLimit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SystemConfigCalls::maximumGasLimit) + } + maximumGasLimit + }, + { + fn overhead( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(SystemConfigCalls::overhead) + } + overhead + }, + { + fn setOperatorFeeScalars( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SystemConfigCalls::setOperatorFeeScalars) + } + setOperatorFeeScalars + }, + { + fn operatorFeeConstant( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SystemConfigCalls::operatorFeeConstant) + } + operatorFeeConstant + }, + { + fn setUnsafeBlockSigner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SystemConfigCalls::setUnsafeBlockSigner) + } + setUnsafeBlockSigner + }, + { + fn L1_ERC_721_BRIDGE_SLOT( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SystemConfigCalls::L1_ERC_721_BRIDGE_SLOT) + } + L1_ERC_721_BRIDGE_SLOT + }, + { + fn initialize( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SystemConfigCalls::initialize) + } + initialize + }, + { + fn unsafeBlockSigner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SystemConfigCalls::unsafeBlockSigner) + } + unsafeBlockSigner + }, + { + fn setDAFootprintGasScalar( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SystemConfigCalls::setDAFootprintGasScalar) + } + setDAFootprintGasScalar + }, + { + fn isCustomGasToken( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SystemConfigCalls::isCustomGasToken) + } + isCustomGasToken + }, + { + fn delayedWETH( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SystemConfigCalls::delayedWETH) + } + delayedWETH + }, + { + fn setGasConfigEcotone( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SystemConfigCalls::setGasConfigEcotone) + } + setGasConfigEcotone + }, + { + fn superchainConfig( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SystemConfigCalls::superchainConfig) + } + superchainConfig + }, + { + fn initVersion( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SystemConfigCalls::initVersion) + } + initVersion + }, + { + fn proxyAdmin( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SystemConfigCalls::proxyAdmin) + } + proxyAdmin + }, + { + fn guardian( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(SystemConfigCalls::guardian) + } + guardian + }, + { + fn isFeatureEnabled( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SystemConfigCalls::isFeatureEnabled) + } + isFeatureEnabled + }, + { + fn startBlock( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SystemConfigCalls::startBlock) + } + startBlock + }, + { + fn minimumGasLimit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SystemConfigCalls::minimumGasLimit) + } + minimumGasLimit + }, + { + fn operatorFeeScalar( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SystemConfigCalls::operatorFeeScalar) + } + operatorFeeScalar + }, + { + fn UNSAFE_BLOCK_SIGNER_SLOT( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SystemConfigCalls::UNSAFE_BLOCK_SIGNER_SLOT) + } + UNSAFE_BLOCK_SIGNER_SLOT + }, + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(SystemConfigCalls::version) + } + version + }, + { + fn paused( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(SystemConfigCalls::paused) + } + paused + }, + { + fn L1_CROSS_DOMAIN_MESSENGER_SLOT( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SystemConfigCalls::L1_CROSS_DOMAIN_MESSENGER_SLOT) + } + L1_CROSS_DOMAIN_MESSENGER_SLOT + }, + { + fn renounceOwnership( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SystemConfigCalls::renounceOwnership) + } + renounceOwnership + }, + { + fn setMinBaseFee( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SystemConfigCalls::setMinBaseFee) + } + setMinBaseFee + }, + { + fn DELAYED_WETH_SLOT( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SystemConfigCalls::DELAYED_WETH_SLOT) + } + DELAYED_WETH_SLOT + }, + { + fn owner(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(SystemConfigCalls::owner) + } + owner + }, + { + fn setGasConfig( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SystemConfigCalls::setGasConfig) + } + setGasConfig + }, + { + fn optimismMintableERC20Factory( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SystemConfigCalls::optimismMintableERC20Factory) + } + optimismMintableERC20Factory + }, + { + fn getAddresses( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SystemConfigCalls::getAddresses) + } + getAddresses + }, + { + fn minBaseFee( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SystemConfigCalls::minBaseFee) + } + minBaseFee + }, + { + fn l1CrossDomainMessenger( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SystemConfigCalls::l1CrossDomainMessenger) + } + l1CrossDomainMessenger + }, + { + fn setGasLimit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SystemConfigCalls::setGasLimit) + } + setGasLimit + }, + { + fn BATCH_INBOX_SLOT( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SystemConfigCalls::BATCH_INBOX_SLOT) + } + BATCH_INBOX_SLOT + }, + { + fn basefeeScalar( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SystemConfigCalls::basefeeScalar) + } + basefeeScalar + }, + { + fn setEIP1559Params( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SystemConfigCalls::setEIP1559Params) + } + setEIP1559Params + }, + { + fn l1ERC721Bridge( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SystemConfigCalls::l1ERC721Bridge) + } + l1ERC721Bridge + }, + { + fn setBatcherHash_1( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SystemConfigCalls::setBatcherHash_1) + } + setBatcherHash_1 + }, + { + fn eip1559Elasticity( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SystemConfigCalls::eip1559Elasticity) + } + eip1559Elasticity + }, + { + fn resourceConfig( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SystemConfigCalls::resourceConfig) + } + resourceConfig + }, + { + fn eip1559Denominator( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SystemConfigCalls::eip1559Denominator) + } + eip1559Denominator + }, + { + fn l2ChainId( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(SystemConfigCalls::l2ChainId) + } + l2ChainId + }, + { + fn batchInbox( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SystemConfigCalls::batchInbox) + } + batchInbox + }, + { + fn proxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SystemConfigCalls::proxyAdminOwner) + } + proxyAdminOwner + }, + { + fn START_BLOCK_SLOT( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SystemConfigCalls::START_BLOCK_SLOT) + } + START_BLOCK_SLOT + }, + { + fn batcherHash( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SystemConfigCalls::batcherHash) + } + batcherHash + }, + { + fn blobbasefeeScalar( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SystemConfigCalls::blobbasefeeScalar) + } + blobbasefeeScalar + }, + { + fn disputeGameFactory( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SystemConfigCalls::disputeGameFactory) + } + disputeGameFactory + }, + { + fn setFeature( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SystemConfigCalls::setFeature) + } + setFeature + }, + { + fn transferOwnership( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SystemConfigCalls::transferOwnership) + } + transferOwnership + }, + { + fn scalar( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(SystemConfigCalls::scalar) + } + scalar + }, + { + fn gasLimit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(SystemConfigCalls::gasLimit) + } + gasLimit + }, + { + fn L1_STANDARD_BRIDGE_SLOT( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SystemConfigCalls::L1_STANDARD_BRIDGE_SLOT) + } + L1_STANDARD_BRIDGE_SLOT + }, + { + fn OPTIMISM_PORTAL_SLOT( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SystemConfigCalls::OPTIMISM_PORTAL_SLOT) + } + OPTIMISM_PORTAL_SLOT + }, + { + fn daFootprintGasScalar( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SystemConfigCalls::daFootprintGasScalar) + } + daFootprintGasScalar + }, + { + fn VERSION( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(SystemConfigCalls::VERSION) + } + VERSION + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn OPTIMISM_MINTABLE_ERC20_FACTORY_SLOT( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SystemConfigCalls::OPTIMISM_MINTABLE_ERC20_FACTORY_SLOT) + } + OPTIMISM_MINTABLE_ERC20_FACTORY_SLOT + }, + { + fn l1StandardBridge( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SystemConfigCalls::l1StandardBridge) + } + l1StandardBridge + }, + { + fn setBatcherHash_0( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SystemConfigCalls::setBatcherHash_0) + } + setBatcherHash_0 + }, + { + fn optimismPortal( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SystemConfigCalls::optimismPortal) + } + optimismPortal + }, + { + fn maximumGasLimit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SystemConfigCalls::maximumGasLimit) + } + maximumGasLimit + }, + { + fn overhead( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SystemConfigCalls::overhead) + } + overhead + }, + { + fn setOperatorFeeScalars( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SystemConfigCalls::setOperatorFeeScalars) + } + setOperatorFeeScalars + }, + { + fn operatorFeeConstant( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SystemConfigCalls::operatorFeeConstant) + } + operatorFeeConstant + }, + { + fn setUnsafeBlockSigner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SystemConfigCalls::setUnsafeBlockSigner) + } + setUnsafeBlockSigner + }, + { + fn L1_ERC_721_BRIDGE_SLOT( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SystemConfigCalls::L1_ERC_721_BRIDGE_SLOT) + } + L1_ERC_721_BRIDGE_SLOT + }, + { + fn initialize( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SystemConfigCalls::initialize) + } + initialize + }, + { + fn unsafeBlockSigner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SystemConfigCalls::unsafeBlockSigner) + } + unsafeBlockSigner + }, + { + fn setDAFootprintGasScalar( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SystemConfigCalls::setDAFootprintGasScalar) + } + setDAFootprintGasScalar + }, + { + fn isCustomGasToken( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SystemConfigCalls::isCustomGasToken) + } + isCustomGasToken + }, + { + fn delayedWETH( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SystemConfigCalls::delayedWETH) + } + delayedWETH + }, + { + fn setGasConfigEcotone( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SystemConfigCalls::setGasConfigEcotone) + } + setGasConfigEcotone + }, + { + fn superchainConfig( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SystemConfigCalls::superchainConfig) + } + superchainConfig + }, + { + fn initVersion( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SystemConfigCalls::initVersion) + } + initVersion + }, + { + fn proxyAdmin( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SystemConfigCalls::proxyAdmin) + } + proxyAdmin + }, + { + fn guardian( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SystemConfigCalls::guardian) + } + guardian + }, + { + fn isFeatureEnabled( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SystemConfigCalls::isFeatureEnabled) + } + isFeatureEnabled + }, + { + fn startBlock( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SystemConfigCalls::startBlock) + } + startBlock + }, + { + fn minimumGasLimit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SystemConfigCalls::minimumGasLimit) + } + minimumGasLimit + }, + { + fn operatorFeeScalar( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SystemConfigCalls::operatorFeeScalar) + } + operatorFeeScalar + }, + { + fn UNSAFE_BLOCK_SIGNER_SLOT( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SystemConfigCalls::UNSAFE_BLOCK_SIGNER_SLOT) + } + UNSAFE_BLOCK_SIGNER_SLOT + }, + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SystemConfigCalls::version) + } + version + }, + { + fn paused( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SystemConfigCalls::paused) + } + paused + }, + { + fn L1_CROSS_DOMAIN_MESSENGER_SLOT( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SystemConfigCalls::L1_CROSS_DOMAIN_MESSENGER_SLOT) + } + L1_CROSS_DOMAIN_MESSENGER_SLOT + }, + { + fn renounceOwnership( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SystemConfigCalls::renounceOwnership) + } + renounceOwnership + }, + { + fn setMinBaseFee( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SystemConfigCalls::setMinBaseFee) + } + setMinBaseFee + }, + { + fn DELAYED_WETH_SLOT( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SystemConfigCalls::DELAYED_WETH_SLOT) + } + DELAYED_WETH_SLOT + }, + { + fn owner(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SystemConfigCalls::owner) + } + owner + }, + { + fn setGasConfig( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SystemConfigCalls::setGasConfig) + } + setGasConfig + }, + { + fn optimismMintableERC20Factory( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SystemConfigCalls::optimismMintableERC20Factory) + } + optimismMintableERC20Factory + }, + { + fn getAddresses( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SystemConfigCalls::getAddresses) + } + getAddresses + }, + { + fn minBaseFee( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SystemConfigCalls::minBaseFee) + } + minBaseFee + }, + { + fn l1CrossDomainMessenger( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SystemConfigCalls::l1CrossDomainMessenger) + } + l1CrossDomainMessenger + }, + { + fn setGasLimit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SystemConfigCalls::setGasLimit) + } + setGasLimit + }, + { + fn BATCH_INBOX_SLOT( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SystemConfigCalls::BATCH_INBOX_SLOT) + } + BATCH_INBOX_SLOT + }, + { + fn basefeeScalar( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SystemConfigCalls::basefeeScalar) + } + basefeeScalar + }, + { + fn setEIP1559Params( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SystemConfigCalls::setEIP1559Params) + } + setEIP1559Params + }, + { + fn l1ERC721Bridge( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SystemConfigCalls::l1ERC721Bridge) + } + l1ERC721Bridge + }, + { + fn setBatcherHash_1( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SystemConfigCalls::setBatcherHash_1) + } + setBatcherHash_1 + }, + { + fn eip1559Elasticity( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SystemConfigCalls::eip1559Elasticity) + } + eip1559Elasticity + }, + { + fn resourceConfig( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SystemConfigCalls::resourceConfig) + } + resourceConfig + }, + { + fn eip1559Denominator( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SystemConfigCalls::eip1559Denominator) + } + eip1559Denominator + }, + { + fn l2ChainId( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SystemConfigCalls::l2ChainId) + } + l2ChainId + }, + { + fn batchInbox( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SystemConfigCalls::batchInbox) + } + batchInbox + }, + { + fn proxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SystemConfigCalls::proxyAdminOwner) + } + proxyAdminOwner + }, + { + fn START_BLOCK_SLOT( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SystemConfigCalls::START_BLOCK_SLOT) + } + START_BLOCK_SLOT + }, + { + fn batcherHash( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SystemConfigCalls::batcherHash) + } + batcherHash + }, + { + fn blobbasefeeScalar( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SystemConfigCalls::blobbasefeeScalar) + } + blobbasefeeScalar + }, + { + fn disputeGameFactory( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SystemConfigCalls::disputeGameFactory) + } + disputeGameFactory + }, + { + fn setFeature( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SystemConfigCalls::setFeature) + } + setFeature + }, + { + fn transferOwnership( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SystemConfigCalls::transferOwnership) + } + transferOwnership + }, + { + fn scalar( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SystemConfigCalls::scalar) + } + scalar + }, + { + fn gasLimit( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SystemConfigCalls::gasLimit) + } + gasLimit + }, + { + fn L1_STANDARD_BRIDGE_SLOT( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SystemConfigCalls::L1_STANDARD_BRIDGE_SLOT) + } + L1_STANDARD_BRIDGE_SLOT + }, + { + fn OPTIMISM_PORTAL_SLOT( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SystemConfigCalls::OPTIMISM_PORTAL_SLOT) + } + OPTIMISM_PORTAL_SLOT + }, + { + fn daFootprintGasScalar( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SystemConfigCalls::daFootprintGasScalar) + } + daFootprintGasScalar + }, + { + fn VERSION( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SystemConfigCalls::VERSION) + } + VERSION + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::BATCH_INBOX_SLOT(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::DELAYED_WETH_SLOT(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::L1_CROSS_DOMAIN_MESSENGER_SLOT(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::L1_ERC_721_BRIDGE_SLOT(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::L1_STANDARD_BRIDGE_SLOT(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::OPTIMISM_MINTABLE_ERC20_FACTORY_SLOT(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::OPTIMISM_PORTAL_SLOT(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::START_BLOCK_SLOT(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::UNSAFE_BLOCK_SIGNER_SLOT(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::VERSION(inner) => { + ::abi_encoded_size(inner) + } + Self::basefeeScalar(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::batchInbox(inner) => { + ::abi_encoded_size(inner) + } + Self::batcherHash(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::blobbasefeeScalar(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::daFootprintGasScalar(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::delayedWETH(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::disputeGameFactory(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::eip1559Denominator(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::eip1559Elasticity(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::gasLimit(inner) => { + ::abi_encoded_size(inner) + } + Self::getAddresses(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::guardian(inner) => { + ::abi_encoded_size(inner) + } + Self::initVersion(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::initialize(inner) => { + ::abi_encoded_size(inner) + } + Self::isCustomGasToken(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::isFeatureEnabled(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::l1CrossDomainMessenger(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::l1ERC721Bridge(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::l1StandardBridge(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::l2ChainId(inner) => { + ::abi_encoded_size(inner) + } + Self::maximumGasLimit(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::minBaseFee(inner) => { + ::abi_encoded_size(inner) + } + Self::minimumGasLimit(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::operatorFeeConstant(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::operatorFeeScalar(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::optimismMintableERC20Factory(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::optimismPortal(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::overhead(inner) => { + ::abi_encoded_size(inner) + } + Self::owner(inner) => { + ::abi_encoded_size(inner) + } + Self::paused(inner) => { + ::abi_encoded_size(inner) + } + Self::proxyAdmin(inner) => { + ::abi_encoded_size(inner) + } + Self::proxyAdminOwner(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::renounceOwnership(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::resourceConfig(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::scalar(inner) => { + ::abi_encoded_size(inner) + } + Self::setBatcherHash_0(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::setBatcherHash_1(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::setDAFootprintGasScalar(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::setEIP1559Params(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::setFeature(inner) => { + ::abi_encoded_size(inner) + } + Self::setGasConfig(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::setGasConfigEcotone(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::setGasLimit(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::setMinBaseFee(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::setOperatorFeeScalars(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::setUnsafeBlockSigner(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::startBlock(inner) => { + ::abi_encoded_size(inner) + } + Self::superchainConfig(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::transferOwnership(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::unsafeBlockSigner(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::version(inner) => { + ::abi_encoded_size(inner) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::BATCH_INBOX_SLOT(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::DELAYED_WETH_SLOT(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::L1_CROSS_DOMAIN_MESSENGER_SLOT(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::L1_ERC_721_BRIDGE_SLOT(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::L1_STANDARD_BRIDGE_SLOT(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::OPTIMISM_MINTABLE_ERC20_FACTORY_SLOT(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::OPTIMISM_PORTAL_SLOT(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::START_BLOCK_SLOT(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::UNSAFE_BLOCK_SIGNER_SLOT(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::VERSION(inner) => { + ::abi_encode_raw(inner, out) + } + Self::basefeeScalar(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::batchInbox(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::batcherHash(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::blobbasefeeScalar(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::daFootprintGasScalar(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::delayedWETH(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::disputeGameFactory(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::eip1559Denominator(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::eip1559Elasticity(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::gasLimit(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::getAddresses(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::guardian(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::initVersion(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::initialize(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::isCustomGasToken(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::isFeatureEnabled(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::l1CrossDomainMessenger(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::l1ERC721Bridge(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::l1StandardBridge(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::l2ChainId(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::maximumGasLimit(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::minBaseFee(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::minimumGasLimit(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::operatorFeeConstant(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::operatorFeeScalar(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::optimismMintableERC20Factory(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::optimismPortal(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::overhead(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::owner(inner) => { + ::abi_encode_raw(inner, out) + } + Self::paused(inner) => { + ::abi_encode_raw(inner, out) + } + Self::proxyAdmin(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::proxyAdminOwner(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::renounceOwnership(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::resourceConfig(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::scalar(inner) => { + ::abi_encode_raw(inner, out) + } + Self::setBatcherHash_0(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::setBatcherHash_1(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::setDAFootprintGasScalar(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::setEIP1559Params(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::setFeature(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::setGasConfig(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::setGasConfigEcotone(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::setGasLimit(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::setMinBaseFee(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::setOperatorFeeScalars(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::setUnsafeBlockSigner(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::startBlock(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::superchainConfig(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::transferOwnership(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::unsafeBlockSigner(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::version(inner) => { + ::abi_encode_raw(inner, out) + } + } + } + } + ///Container for all the [`SystemConfig`](self) custom errors. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum SystemConfigErrors { + #[allow(missing_docs)] + ProxyAdminOwnedBase_NotProxyAdmin(ProxyAdminOwnedBase_NotProxyAdmin), + #[allow(missing_docs)] + ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner( + ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner, + ), + #[allow(missing_docs)] + ProxyAdminOwnedBase_NotProxyAdminOwner(ProxyAdminOwnedBase_NotProxyAdminOwner), + #[allow(missing_docs)] + ProxyAdminOwnedBase_NotResolvedDelegateProxy( + ProxyAdminOwnedBase_NotResolvedDelegateProxy, + ), + #[allow(missing_docs)] + ProxyAdminOwnedBase_NotSharedProxyAdminOwner( + ProxyAdminOwnedBase_NotSharedProxyAdminOwner, + ), + #[allow(missing_docs)] + ProxyAdminOwnedBase_ProxyAdminNotFound(ProxyAdminOwnedBase_ProxyAdminNotFound), + #[allow(missing_docs)] + ReinitializableBase_ZeroInitVersion(ReinitializableBase_ZeroInitVersion), + #[allow(missing_docs)] + SystemConfig_InvalidFeatureState(SystemConfig_InvalidFeatureState), + } + impl SystemConfigErrors { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [7u8, 92u8, 67u8, 20u8], + [51u8, 33u8, 68u8, 219u8], + [84u8, 228u8, 51u8, 205u8], + [127u8, 18u8, 198u8, 75u8], + [155u8, 1u8, 175u8, 237u8], + [196u8, 5u8, 10u8, 38u8], + [232u8, 24u8, 220u8, 195u8], + [245u8, 130u8, 139u8, 4u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(ProxyAdminOwnedBase_NotSharedProxyAdminOwner), + ::core::stringify!(ProxyAdminOwnedBase_ProxyAdminNotFound), + ::core::stringify!(ProxyAdminOwnedBase_NotResolvedDelegateProxy), + ::core::stringify!(ProxyAdminOwnedBase_NotProxyAdminOwner), + ::core::stringify!(ReinitializableBase_ZeroInitVersion), + ::core::stringify!(ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner), + ::core::stringify!(ProxyAdminOwnedBase_NotProxyAdmin), + ::core::stringify!(SystemConfig_InvalidFeatureState), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for SystemConfigErrors { + const NAME: &'static str = "SystemConfigErrors"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 8usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::ProxyAdminOwnedBase_NotProxyAdmin(_) => { + ::SELECTOR + } + Self::ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner(_) => { + ::SELECTOR + } + Self::ProxyAdminOwnedBase_NotProxyAdminOwner(_) => { + ::SELECTOR + } + Self::ProxyAdminOwnedBase_NotResolvedDelegateProxy(_) => { + ::SELECTOR + } + Self::ProxyAdminOwnedBase_NotSharedProxyAdminOwner(_) => { + ::SELECTOR + } + Self::ProxyAdminOwnedBase_ProxyAdminNotFound(_) => { + ::SELECTOR + } + Self::ReinitializableBase_ZeroInitVersion(_) => { + ::SELECTOR + } + Self::SystemConfig_InvalidFeatureState(_) => { + ::SELECTOR + } + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn ProxyAdminOwnedBase_NotSharedProxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + SystemConfigErrors::ProxyAdminOwnedBase_NotSharedProxyAdminOwner, + ) + } + ProxyAdminOwnedBase_NotSharedProxyAdminOwner + }, + { + fn ProxyAdminOwnedBase_ProxyAdminNotFound( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + SystemConfigErrors::ProxyAdminOwnedBase_ProxyAdminNotFound, + ) + } + ProxyAdminOwnedBase_ProxyAdminNotFound + }, + { + fn ProxyAdminOwnedBase_NotResolvedDelegateProxy( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + SystemConfigErrors::ProxyAdminOwnedBase_NotResolvedDelegateProxy, + ) + } + ProxyAdminOwnedBase_NotResolvedDelegateProxy + }, + { + fn ProxyAdminOwnedBase_NotProxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + SystemConfigErrors::ProxyAdminOwnedBase_NotProxyAdminOwner, + ) + } + ProxyAdminOwnedBase_NotProxyAdminOwner + }, + { + fn ReinitializableBase_ZeroInitVersion( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SystemConfigErrors::ReinitializableBase_ZeroInitVersion) + } + ReinitializableBase_ZeroInitVersion + }, + { + fn ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + SystemConfigErrors::ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner, + ) + } + ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner + }, + { + fn ProxyAdminOwnedBase_NotProxyAdmin( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SystemConfigErrors::ProxyAdminOwnedBase_NotProxyAdmin) + } + ProxyAdminOwnedBase_NotProxyAdmin + }, + { + fn SystemConfig_InvalidFeatureState( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(SystemConfigErrors::SystemConfig_InvalidFeatureState) + } + SystemConfig_InvalidFeatureState + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn ProxyAdminOwnedBase_NotSharedProxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + SystemConfigErrors::ProxyAdminOwnedBase_NotSharedProxyAdminOwner, + ) + } + ProxyAdminOwnedBase_NotSharedProxyAdminOwner + }, + { + fn ProxyAdminOwnedBase_ProxyAdminNotFound( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + SystemConfigErrors::ProxyAdminOwnedBase_ProxyAdminNotFound, + ) + } + ProxyAdminOwnedBase_ProxyAdminNotFound + }, + { + fn ProxyAdminOwnedBase_NotResolvedDelegateProxy( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + SystemConfigErrors::ProxyAdminOwnedBase_NotResolvedDelegateProxy, + ) + } + ProxyAdminOwnedBase_NotResolvedDelegateProxy + }, + { + fn ProxyAdminOwnedBase_NotProxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + SystemConfigErrors::ProxyAdminOwnedBase_NotProxyAdminOwner, + ) + } + ProxyAdminOwnedBase_NotProxyAdminOwner + }, + { + fn ReinitializableBase_ZeroInitVersion( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SystemConfigErrors::ReinitializableBase_ZeroInitVersion) + } + ReinitializableBase_ZeroInitVersion + }, + { + fn ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + SystemConfigErrors::ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner, + ) + } + ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner + }, + { + fn ProxyAdminOwnedBase_NotProxyAdmin( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SystemConfigErrors::ProxyAdminOwnedBase_NotProxyAdmin) + } + ProxyAdminOwnedBase_NotProxyAdmin + }, + { + fn SystemConfig_InvalidFeatureState( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(SystemConfigErrors::SystemConfig_InvalidFeatureState) + } + SystemConfig_InvalidFeatureState + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::ProxyAdminOwnedBase_NotProxyAdmin(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ProxyAdminOwnedBase_NotProxyAdminOwner(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ProxyAdminOwnedBase_NotResolvedDelegateProxy(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ProxyAdminOwnedBase_NotSharedProxyAdminOwner(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ProxyAdminOwnedBase_ProxyAdminNotFound(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::ReinitializableBase_ZeroInitVersion(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::SystemConfig_InvalidFeatureState(inner) => { + ::abi_encoded_size( + inner, + ) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::ProxyAdminOwnedBase_NotProxyAdmin(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ProxyAdminOwnedBase_NotProxyAdminOwner(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ProxyAdminOwnedBase_NotResolvedDelegateProxy(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ProxyAdminOwnedBase_NotSharedProxyAdminOwner(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ProxyAdminOwnedBase_ProxyAdminNotFound(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::ReinitializableBase_ZeroInitVersion(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::SystemConfig_InvalidFeatureState(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + } + } + } + ///Container for all the [`SystemConfig`](self) events. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum SystemConfigEvents { + #[allow(missing_docs)] + ConfigUpdate(ConfigUpdate), + #[allow(missing_docs)] + FeatureSet(FeatureSet), + #[allow(missing_docs)] + Initialized(Initialized), + #[allow(missing_docs)] + OwnershipTransferred(OwnershipTransferred), + } + impl SystemConfigEvents { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 32usize]] = &[ + [ + 29u8, 43u8, 11u8, 218u8, 33u8, 213u8, 107u8, 139u8, 209u8, 45u8, 79u8, + 148u8, 235u8, 172u8, 255u8, 223u8, 179u8, 95u8, 94u8, 34u8, 111u8, 132u8, + 180u8, 97u8, 16u8, 59u8, 184u8, 190u8, 171u8, 99u8, 83u8, 190u8, + ], + [ + 127u8, 38u8, 184u8, 63u8, 249u8, 110u8, 31u8, 43u8, 106u8, 104u8, 47u8, + 19u8, 56u8, 82u8, 246u8, 121u8, 138u8, 9u8, 196u8, 101u8, 218u8, 149u8, + 146u8, 20u8, 96u8, 206u8, 251u8, 56u8, 71u8, 64u8, 36u8, 152u8, + ], + [ + 139u8, 224u8, 7u8, 156u8, 83u8, 22u8, 89u8, 20u8, 19u8, 68u8, 205u8, + 31u8, 208u8, 164u8, 242u8, 132u8, 25u8, 73u8, 127u8, 151u8, 34u8, 163u8, + 218u8, 175u8, 227u8, 180u8, 24u8, 111u8, 107u8, 100u8, 87u8, 224u8, + ], + [ + 184u8, 118u8, 246u8, 89u8, 65u8, 50u8, 200u8, 152u8, 145u8, 210u8, 253u8, + 25u8, 142u8, 146u8, 94u8, 153u8, 155u8, 231u8, 65u8, 236u8, 128u8, 154u8, + 187u8, 88u8, 191u8, 233u8, 185u8, 102u8, 135u8, 108u8, 192u8, 108u8, + ], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(ConfigUpdate), + ::core::stringify!(Initialized), + ::core::stringify!(OwnershipTransferred), + ::core::stringify!(FeatureSet), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolEventInterface for SystemConfigEvents { + const NAME: &'static str = "SystemConfigEvents"; + const COUNT: usize = 4usize; + fn decode_raw_log( + topics: &[alloy_sol_types::Word], + data: &[u8], + ) -> alloy_sol_types::Result { + match topics.first().copied() { + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::ConfigUpdate) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::FeatureSet) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::Initialized) + } + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::OwnershipTransferred) + } + _ => { + alloy_sol_types::private::Err(alloy_sol_types::Error::InvalidLog { + name: ::NAME, + log: alloy_sol_types::private::Box::new( + alloy_sol_types::private::LogData::new_unchecked( + topics.to_vec(), + data.to_vec().into(), + ), + ), + }) + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for SystemConfigEvents { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + match self { + Self::ConfigUpdate(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::FeatureSet(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::Initialized(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::OwnershipTransferred(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + } + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + match self { + Self::ConfigUpdate(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::FeatureSet(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::Initialized(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::OwnershipTransferred(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`SystemConfig`](self) contract instance. + +See the [wrapper's documentation](`SystemConfigInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> SystemConfigInstance { + SystemConfigInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + SystemConfigInstance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + SystemConfigInstance::::deploy_builder(__provider) + } + /**A [`SystemConfig`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`SystemConfig`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct SystemConfigInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for SystemConfigInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("SystemConfigInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > SystemConfigInstance { + /**Creates a new wrapper around an on-chain [`SystemConfig`](self) contract instance. + +See the [wrapper's documentation](`SystemConfigInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl SystemConfigInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> SystemConfigInstance { + SystemConfigInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > SystemConfigInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`BATCH_INBOX_SLOT`] function. + pub fn BATCH_INBOX_SLOT( + &self, + ) -> alloy_contract::SolCallBuilder<&P, BATCH_INBOX_SLOTCall, N> { + self.call_builder(&BATCH_INBOX_SLOTCall) + } + ///Creates a new call builder for the [`DELAYED_WETH_SLOT`] function. + pub fn DELAYED_WETH_SLOT( + &self, + ) -> alloy_contract::SolCallBuilder<&P, DELAYED_WETH_SLOTCall, N> { + self.call_builder(&DELAYED_WETH_SLOTCall) + } + ///Creates a new call builder for the [`L1_CROSS_DOMAIN_MESSENGER_SLOT`] function. + pub fn L1_CROSS_DOMAIN_MESSENGER_SLOT( + &self, + ) -> alloy_contract::SolCallBuilder<&P, L1_CROSS_DOMAIN_MESSENGER_SLOTCall, N> { + self.call_builder(&L1_CROSS_DOMAIN_MESSENGER_SLOTCall) + } + ///Creates a new call builder for the [`L1_ERC_721_BRIDGE_SLOT`] function. + pub fn L1_ERC_721_BRIDGE_SLOT( + &self, + ) -> alloy_contract::SolCallBuilder<&P, L1_ERC_721_BRIDGE_SLOTCall, N> { + self.call_builder(&L1_ERC_721_BRIDGE_SLOTCall) + } + ///Creates a new call builder for the [`L1_STANDARD_BRIDGE_SLOT`] function. + pub fn L1_STANDARD_BRIDGE_SLOT( + &self, + ) -> alloy_contract::SolCallBuilder<&P, L1_STANDARD_BRIDGE_SLOTCall, N> { + self.call_builder(&L1_STANDARD_BRIDGE_SLOTCall) + } + ///Creates a new call builder for the [`OPTIMISM_MINTABLE_ERC20_FACTORY_SLOT`] function. + pub fn OPTIMISM_MINTABLE_ERC20_FACTORY_SLOT( + &self, + ) -> alloy_contract::SolCallBuilder< + &P, + OPTIMISM_MINTABLE_ERC20_FACTORY_SLOTCall, + N, + > { + self.call_builder(&OPTIMISM_MINTABLE_ERC20_FACTORY_SLOTCall) + } + ///Creates a new call builder for the [`OPTIMISM_PORTAL_SLOT`] function. + pub fn OPTIMISM_PORTAL_SLOT( + &self, + ) -> alloy_contract::SolCallBuilder<&P, OPTIMISM_PORTAL_SLOTCall, N> { + self.call_builder(&OPTIMISM_PORTAL_SLOTCall) + } + ///Creates a new call builder for the [`START_BLOCK_SLOT`] function. + pub fn START_BLOCK_SLOT( + &self, + ) -> alloy_contract::SolCallBuilder<&P, START_BLOCK_SLOTCall, N> { + self.call_builder(&START_BLOCK_SLOTCall) + } + ///Creates a new call builder for the [`UNSAFE_BLOCK_SIGNER_SLOT`] function. + pub fn UNSAFE_BLOCK_SIGNER_SLOT( + &self, + ) -> alloy_contract::SolCallBuilder<&P, UNSAFE_BLOCK_SIGNER_SLOTCall, N> { + self.call_builder(&UNSAFE_BLOCK_SIGNER_SLOTCall) + } + ///Creates a new call builder for the [`VERSION`] function. + pub fn VERSION(&self) -> alloy_contract::SolCallBuilder<&P, VERSIONCall, N> { + self.call_builder(&VERSIONCall) + } + ///Creates a new call builder for the [`basefeeScalar`] function. + pub fn basefeeScalar( + &self, + ) -> alloy_contract::SolCallBuilder<&P, basefeeScalarCall, N> { + self.call_builder(&basefeeScalarCall) + } + ///Creates a new call builder for the [`batchInbox`] function. + pub fn batchInbox( + &self, + ) -> alloy_contract::SolCallBuilder<&P, batchInboxCall, N> { + self.call_builder(&batchInboxCall) + } + ///Creates a new call builder for the [`batcherHash`] function. + pub fn batcherHash( + &self, + ) -> alloy_contract::SolCallBuilder<&P, batcherHashCall, N> { + self.call_builder(&batcherHashCall) + } + ///Creates a new call builder for the [`blobbasefeeScalar`] function. + pub fn blobbasefeeScalar( + &self, + ) -> alloy_contract::SolCallBuilder<&P, blobbasefeeScalarCall, N> { + self.call_builder(&blobbasefeeScalarCall) + } + ///Creates a new call builder for the [`daFootprintGasScalar`] function. + pub fn daFootprintGasScalar( + &self, + ) -> alloy_contract::SolCallBuilder<&P, daFootprintGasScalarCall, N> { + self.call_builder(&daFootprintGasScalarCall) + } + ///Creates a new call builder for the [`delayedWETH`] function. + pub fn delayedWETH( + &self, + ) -> alloy_contract::SolCallBuilder<&P, delayedWETHCall, N> { + self.call_builder(&delayedWETHCall) + } + ///Creates a new call builder for the [`disputeGameFactory`] function. + pub fn disputeGameFactory( + &self, + ) -> alloy_contract::SolCallBuilder<&P, disputeGameFactoryCall, N> { + self.call_builder(&disputeGameFactoryCall) + } + ///Creates a new call builder for the [`eip1559Denominator`] function. + pub fn eip1559Denominator( + &self, + ) -> alloy_contract::SolCallBuilder<&P, eip1559DenominatorCall, N> { + self.call_builder(&eip1559DenominatorCall) + } + ///Creates a new call builder for the [`eip1559Elasticity`] function. + pub fn eip1559Elasticity( + &self, + ) -> alloy_contract::SolCallBuilder<&P, eip1559ElasticityCall, N> { + self.call_builder(&eip1559ElasticityCall) + } + ///Creates a new call builder for the [`gasLimit`] function. + pub fn gasLimit(&self) -> alloy_contract::SolCallBuilder<&P, gasLimitCall, N> { + self.call_builder(&gasLimitCall) + } + ///Creates a new call builder for the [`getAddresses`] function. + pub fn getAddresses( + &self, + ) -> alloy_contract::SolCallBuilder<&P, getAddressesCall, N> { + self.call_builder(&getAddressesCall) + } + ///Creates a new call builder for the [`guardian`] function. + pub fn guardian(&self) -> alloy_contract::SolCallBuilder<&P, guardianCall, N> { + self.call_builder(&guardianCall) + } + ///Creates a new call builder for the [`initVersion`] function. + pub fn initVersion( + &self, + ) -> alloy_contract::SolCallBuilder<&P, initVersionCall, N> { + self.call_builder(&initVersionCall) + } + ///Creates a new call builder for the [`initialize`] function. + pub fn initialize( + &self, + _owner: alloy::sol_types::private::Address, + _basefeeScalar: u32, + _blobbasefeeScalar: u32, + _batcherHash: alloy::sol_types::private::FixedBytes<32>, + _gasLimit: u64, + _unsafeBlockSigner: alloy::sol_types::private::Address, + _config: ::RustType, + _batchInbox: alloy::sol_types::private::Address, + _addresses: ::RustType, + _l2ChainId: alloy::sol_types::private::primitives::aliases::U256, + _superchainConfig: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, initializeCall, N> { + self.call_builder( + &initializeCall { + _owner, + _basefeeScalar, + _blobbasefeeScalar, + _batcherHash, + _gasLimit, + _unsafeBlockSigner, + _config, + _batchInbox, + _addresses, + _l2ChainId, + _superchainConfig, + }, + ) + } + ///Creates a new call builder for the [`isCustomGasToken`] function. + pub fn isCustomGasToken( + &self, + ) -> alloy_contract::SolCallBuilder<&P, isCustomGasTokenCall, N> { + self.call_builder(&isCustomGasTokenCall) + } + ///Creates a new call builder for the [`isFeatureEnabled`] function. + pub fn isFeatureEnabled( + &self, + _0: alloy::sol_types::private::FixedBytes<32>, + ) -> alloy_contract::SolCallBuilder<&P, isFeatureEnabledCall, N> { + self.call_builder(&isFeatureEnabledCall(_0)) + } + ///Creates a new call builder for the [`l1CrossDomainMessenger`] function. + pub fn l1CrossDomainMessenger( + &self, + ) -> alloy_contract::SolCallBuilder<&P, l1CrossDomainMessengerCall, N> { + self.call_builder(&l1CrossDomainMessengerCall) + } + ///Creates a new call builder for the [`l1ERC721Bridge`] function. + pub fn l1ERC721Bridge( + &self, + ) -> alloy_contract::SolCallBuilder<&P, l1ERC721BridgeCall, N> { + self.call_builder(&l1ERC721BridgeCall) + } + ///Creates a new call builder for the [`l1StandardBridge`] function. + pub fn l1StandardBridge( + &self, + ) -> alloy_contract::SolCallBuilder<&P, l1StandardBridgeCall, N> { + self.call_builder(&l1StandardBridgeCall) + } + ///Creates a new call builder for the [`l2ChainId`] function. + pub fn l2ChainId(&self) -> alloy_contract::SolCallBuilder<&P, l2ChainIdCall, N> { + self.call_builder(&l2ChainIdCall) + } + ///Creates a new call builder for the [`maximumGasLimit`] function. + pub fn maximumGasLimit( + &self, + ) -> alloy_contract::SolCallBuilder<&P, maximumGasLimitCall, N> { + self.call_builder(&maximumGasLimitCall) + } + ///Creates a new call builder for the [`minBaseFee`] function. + pub fn minBaseFee( + &self, + ) -> alloy_contract::SolCallBuilder<&P, minBaseFeeCall, N> { + self.call_builder(&minBaseFeeCall) + } + ///Creates a new call builder for the [`minimumGasLimit`] function. + pub fn minimumGasLimit( + &self, + ) -> alloy_contract::SolCallBuilder<&P, minimumGasLimitCall, N> { + self.call_builder(&minimumGasLimitCall) + } + ///Creates a new call builder for the [`operatorFeeConstant`] function. + pub fn operatorFeeConstant( + &self, + ) -> alloy_contract::SolCallBuilder<&P, operatorFeeConstantCall, N> { + self.call_builder(&operatorFeeConstantCall) + } + ///Creates a new call builder for the [`operatorFeeScalar`] function. + pub fn operatorFeeScalar( + &self, + ) -> alloy_contract::SolCallBuilder<&P, operatorFeeScalarCall, N> { + self.call_builder(&operatorFeeScalarCall) + } + ///Creates a new call builder for the [`optimismMintableERC20Factory`] function. + pub fn optimismMintableERC20Factory( + &self, + ) -> alloy_contract::SolCallBuilder<&P, optimismMintableERC20FactoryCall, N> { + self.call_builder(&optimismMintableERC20FactoryCall) + } + ///Creates a new call builder for the [`optimismPortal`] function. + pub fn optimismPortal( + &self, + ) -> alloy_contract::SolCallBuilder<&P, optimismPortalCall, N> { + self.call_builder(&optimismPortalCall) + } + ///Creates a new call builder for the [`overhead`] function. + pub fn overhead(&self) -> alloy_contract::SolCallBuilder<&P, overheadCall, N> { + self.call_builder(&overheadCall) + } + ///Creates a new call builder for the [`owner`] function. + pub fn owner(&self) -> alloy_contract::SolCallBuilder<&P, ownerCall, N> { + self.call_builder(&ownerCall) + } + ///Creates a new call builder for the [`paused`] function. + pub fn paused(&self) -> alloy_contract::SolCallBuilder<&P, pausedCall, N> { + self.call_builder(&pausedCall) + } + ///Creates a new call builder for the [`proxyAdmin`] function. + pub fn proxyAdmin( + &self, + ) -> alloy_contract::SolCallBuilder<&P, proxyAdminCall, N> { + self.call_builder(&proxyAdminCall) + } + ///Creates a new call builder for the [`proxyAdminOwner`] function. + pub fn proxyAdminOwner( + &self, + ) -> alloy_contract::SolCallBuilder<&P, proxyAdminOwnerCall, N> { + self.call_builder(&proxyAdminOwnerCall) + } + ///Creates a new call builder for the [`renounceOwnership`] function. + pub fn renounceOwnership( + &self, + ) -> alloy_contract::SolCallBuilder<&P, renounceOwnershipCall, N> { + self.call_builder(&renounceOwnershipCall) + } + ///Creates a new call builder for the [`resourceConfig`] function. + pub fn resourceConfig( + &self, + ) -> alloy_contract::SolCallBuilder<&P, resourceConfigCall, N> { + self.call_builder(&resourceConfigCall) + } + ///Creates a new call builder for the [`scalar`] function. + pub fn scalar(&self) -> alloy_contract::SolCallBuilder<&P, scalarCall, N> { + self.call_builder(&scalarCall) + } + ///Creates a new call builder for the [`setBatcherHash_0`] function. + pub fn setBatcherHash_0( + &self, + _batcher: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, setBatcherHash_0Call, N> { + self.call_builder(&setBatcherHash_0Call { _batcher }) + } + ///Creates a new call builder for the [`setBatcherHash_1`] function. + pub fn setBatcherHash_1( + &self, + _batcherHash: alloy::sol_types::private::FixedBytes<32>, + ) -> alloy_contract::SolCallBuilder<&P, setBatcherHash_1Call, N> { + self.call_builder( + &setBatcherHash_1Call { + _batcherHash, + }, + ) + } + ///Creates a new call builder for the [`setDAFootprintGasScalar`] function. + pub fn setDAFootprintGasScalar( + &self, + _daFootprintGasScalar: u16, + ) -> alloy_contract::SolCallBuilder<&P, setDAFootprintGasScalarCall, N> { + self.call_builder( + &setDAFootprintGasScalarCall { + _daFootprintGasScalar, + }, + ) + } + ///Creates a new call builder for the [`setEIP1559Params`] function. + pub fn setEIP1559Params( + &self, + _denominator: u32, + _elasticity: u32, + ) -> alloy_contract::SolCallBuilder<&P, setEIP1559ParamsCall, N> { + self.call_builder( + &setEIP1559ParamsCall { + _denominator, + _elasticity, + }, + ) + } + ///Creates a new call builder for the [`setFeature`] function. + pub fn setFeature( + &self, + _feature: alloy::sol_types::private::FixedBytes<32>, + _enabled: bool, + ) -> alloy_contract::SolCallBuilder<&P, setFeatureCall, N> { + self.call_builder( + &setFeatureCall { + _feature, + _enabled, + }, + ) + } + ///Creates a new call builder for the [`setGasConfig`] function. + pub fn setGasConfig( + &self, + _overhead: alloy::sol_types::private::primitives::aliases::U256, + _scalar: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, setGasConfigCall, N> { + self.call_builder( + &setGasConfigCall { + _overhead, + _scalar, + }, + ) + } + ///Creates a new call builder for the [`setGasConfigEcotone`] function. + pub fn setGasConfigEcotone( + &self, + _basefeeScalar: u32, + _blobbasefeeScalar: u32, + ) -> alloy_contract::SolCallBuilder<&P, setGasConfigEcotoneCall, N> { + self.call_builder( + &setGasConfigEcotoneCall { + _basefeeScalar, + _blobbasefeeScalar, + }, + ) + } + ///Creates a new call builder for the [`setGasLimit`] function. + pub fn setGasLimit( + &self, + _gasLimit: u64, + ) -> alloy_contract::SolCallBuilder<&P, setGasLimitCall, N> { + self.call_builder(&setGasLimitCall { _gasLimit }) + } + ///Creates a new call builder for the [`setMinBaseFee`] function. + pub fn setMinBaseFee( + &self, + _minBaseFee: u64, + ) -> alloy_contract::SolCallBuilder<&P, setMinBaseFeeCall, N> { + self.call_builder(&setMinBaseFeeCall { _minBaseFee }) + } + ///Creates a new call builder for the [`setOperatorFeeScalars`] function. + pub fn setOperatorFeeScalars( + &self, + _operatorFeeScalar: u32, + _operatorFeeConstant: u64, + ) -> alloy_contract::SolCallBuilder<&P, setOperatorFeeScalarsCall, N> { + self.call_builder( + &setOperatorFeeScalarsCall { + _operatorFeeScalar, + _operatorFeeConstant, + }, + ) + } + ///Creates a new call builder for the [`setUnsafeBlockSigner`] function. + pub fn setUnsafeBlockSigner( + &self, + _unsafeBlockSigner: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, setUnsafeBlockSignerCall, N> { + self.call_builder( + &setUnsafeBlockSignerCall { + _unsafeBlockSigner, + }, + ) + } + ///Creates a new call builder for the [`startBlock`] function. + pub fn startBlock( + &self, + ) -> alloy_contract::SolCallBuilder<&P, startBlockCall, N> { + self.call_builder(&startBlockCall) + } + ///Creates a new call builder for the [`superchainConfig`] function. + pub fn superchainConfig( + &self, + ) -> alloy_contract::SolCallBuilder<&P, superchainConfigCall, N> { + self.call_builder(&superchainConfigCall) + } + ///Creates a new call builder for the [`transferOwnership`] function. + pub fn transferOwnership( + &self, + newOwner: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, transferOwnershipCall, N> { + self.call_builder(&transferOwnershipCall { newOwner }) + } + ///Creates a new call builder for the [`unsafeBlockSigner`] function. + pub fn unsafeBlockSigner( + &self, + ) -> alloy_contract::SolCallBuilder<&P, unsafeBlockSignerCall, N> { + self.call_builder(&unsafeBlockSignerCall) + } + ///Creates a new call builder for the [`version`] function. + pub fn version(&self) -> alloy_contract::SolCallBuilder<&P, versionCall, N> { + self.call_builder(&versionCall) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > SystemConfigInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + ///Creates a new event filter for the [`ConfigUpdate`] event. + pub fn ConfigUpdate_filter(&self) -> alloy_contract::Event<&P, ConfigUpdate, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`FeatureSet`] event. + pub fn FeatureSet_filter(&self) -> alloy_contract::Event<&P, FeatureSet, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`Initialized`] event. + pub fn Initialized_filter(&self) -> alloy_contract::Event<&P, Initialized, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`OwnershipTransferred`] event. + pub fn OwnershipTransferred_filter( + &self, + ) -> alloy_contract::Event<&P, OwnershipTransferred, N> { + self.event_filter::() + } + } +} diff --git a/bindings/rust/src/tee_prover_registry.rs b/bindings/rust/src/tee_prover_registry.rs new file mode 100644 index 000000000..494ff0d52 --- /dev/null +++ b/bindings/rust/src/tee_prover_registry.rs @@ -0,0 +1,6686 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface TEEProverRegistry { + error AttestationTooOld(); + error AttestationVerificationFailed(); + error InvalidPCR0(); + error InvalidPublicKey(); + error PCR0NotFound(); + + event Initialized(uint8 version); + event ManagementTransferred(address indexed previousManager, address indexed newManager); + event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); + event PCR0Deregistered(bytes32 indexed pcr0Hash); + event PCR0Registered(bytes32 indexed pcr0Hash); + event ProposerSet(address indexed proposer, bool isValid); + event SignerDeregistered(address indexed signer); + event SignerRegistered(address indexed signer, bytes32 indexed pcr0); + + constructor(address nitroVerifier); + + function MAX_AGE() external view returns (uint256); + function NITRO_VERIFIER() external view returns (address); + function deregisterPCR0(bytes memory pcr0) external; + function deregisterSigner(address signer) external; + function getRegisteredSigners() external view returns (address[] memory); + function initialize(address initialOwner, address initialManager) external; + function isValidProposer(address) external view returns (bool); + function isValidSigner(address signer) external view returns (bool); + function manager() external view returns (address); + function owner() external view returns (address); + function registerPCR0(bytes memory pcr0) external; + function registerSigner(bytes memory output, bytes memory proofBytes) external; + function renounceManagement() external; + function renounceOwnership() external; + function setProposer(address proposer, bool isValid) external; + function signerPCR0(address) external view returns (bytes32); + function transferManagement(address newManager) external; + function transferOwnership(address newOwner) external; + function validPCR0s(bytes32) external view returns (bool); + function version() external pure returns (string memory); +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "constructor", + "inputs": [ + { + "name": "nitroVerifier", + "type": "address", + "internalType": "contract INitroEnclaveVerifier" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "MAX_AGE", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "NITRO_VERIFIER", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract INitroEnclaveVerifier" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "deregisterPCR0", + "inputs": [ + { + "name": "pcr0", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "deregisterSigner", + "inputs": [ + { + "name": "signer", + "type": "address", + "internalType": "address" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "getRegisteredSigners", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address[]", + "internalType": "address[]" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "initialize", + "inputs": [ + { + "name": "initialOwner", + "type": "address", + "internalType": "address" + }, + { + "name": "initialManager", + "type": "address", + "internalType": "address" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "isValidProposer", + "inputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "isValidSigner", + "inputs": [ + { + "name": "signer", + "type": "address", + "internalType": "address" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "manager", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "owner", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "registerPCR0", + "inputs": [ + { + "name": "pcr0", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "registerSigner", + "inputs": [ + { + "name": "output", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "proofBytes", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "renounceManagement", + "inputs": [], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "renounceOwnership", + "inputs": [], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "setProposer", + "inputs": [ + { + "name": "proposer", + "type": "address", + "internalType": "address" + }, + { + "name": "isValid", + "type": "bool", + "internalType": "bool" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "signerPCR0", + "inputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "outputs": [ + { + "name": "", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "transferManagement", + "inputs": [ + { + "name": "newManager", + "type": "address", + "internalType": "address" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "transferOwnership", + "inputs": [ + { + "name": "newOwner", + "type": "address", + "internalType": "address" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "validPCR0s", + "inputs": [ + { + "name": "", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "version", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "pure" + }, + { + "type": "event", + "name": "Initialized", + "inputs": [ + { + "name": "version", + "type": "uint8", + "indexed": false, + "internalType": "uint8" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "ManagementTransferred", + "inputs": [ + { + "name": "previousManager", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "newManager", + "type": "address", + "indexed": true, + "internalType": "address" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "OwnershipTransferred", + "inputs": [ + { + "name": "previousOwner", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "newOwner", + "type": "address", + "indexed": true, + "internalType": "address" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "PCR0Deregistered", + "inputs": [ + { + "name": "pcr0Hash", + "type": "bytes32", + "indexed": true, + "internalType": "bytes32" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "PCR0Registered", + "inputs": [ + { + "name": "pcr0Hash", + "type": "bytes32", + "indexed": true, + "internalType": "bytes32" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "ProposerSet", + "inputs": [ + { + "name": "proposer", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "isValid", + "type": "bool", + "indexed": false, + "internalType": "bool" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "SignerDeregistered", + "inputs": [ + { + "name": "signer", + "type": "address", + "indexed": true, + "internalType": "address" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "SignerRegistered", + "inputs": [ + { + "name": "signer", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "pcr0", + "type": "bytes32", + "indexed": true, + "internalType": "bytes32" + } + ], + "anonymous": false + }, + { + "type": "error", + "name": "AttestationTooOld", + "inputs": [] + }, + { + "type": "error", + "name": "AttestationVerificationFailed", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidPCR0", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidPublicKey", + "inputs": [] + }, + { + "type": "error", + "name": "PCR0NotFound", + "inputs": [] + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod TEEProverRegistry { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x60a06040523480156200001157600080fd5b50604051620021693803806200216983398101604081905262000034916200051a565b6001600160a01b0381166080526200004f61dead8062000056565b506200054c565b600054610100900460ff1615808015620000775750600054600160ff909116105b80620000a757506200009430620001a060201b62000b211760201c565b158015620000a7575060005460ff166001145b620001105760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff19166001179055801562000134576000805461ff0019166101001790555b6200013e620001af565b620001498362000217565b62000154826200029d565b80156200019b576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b6001600160a01b03163b151590565b600054610100900460ff166200020b5760405162461bcd60e51b815260206004820152602b60248201526000805160206200214983398151915260448201526a6e697469616c697a696e6760a81b606482015260840162000107565b6200021562000322565b565b6200022162000394565b6001600160a01b0381166200028f5760405162461bcd60e51b815260206004820152602d60248201527f4f776e61626c654d616e616765643a206e6577206f776e65722069732074686560448201526c207a65726f206164647265737360981b606482015260840162000107565b6200029a81620003ef565b50565b620002a762000441565b6001600160a01b038116620003175760405162461bcd60e51b815260206004820152602f60248201527f4f776e61626c654d616e616765643a206e6577206d616e61676572206973207460448201526e6865207a65726f206164647265737360881b606482015260840162000107565b6200029a81620004c8565b600054610100900460ff166200037e5760405162461bcd60e51b815260206004820152602b60248201526000805160206200214983398151915260448201526a6e697469616c697a696e6760a81b606482015260840162000107565b6200038933620003ef565b6200021533620004c8565b6033546001600160a01b03163314620002155760405162461bcd60e51b8152602060048201526027602482015260008051602062002129833981519152604482015266329037bbb732b960c91b606482015260840162000107565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6033546001600160a01b03163314806200046557506034546001600160a01b031633145b620002155760405162461bcd60e51b815260206004820152603660248201526000805160206200212983398151915260448201527f65206f776e6572206f7220746865206d616e6167657200000000000000000000606482015260840162000107565b603480546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f80f15e9dbc60884fdb59fb8ed4fc48a9a689e028f055e893ed45ca5be67c5c8590600090a35050565b6000602082840312156200052d57600080fd5b81516001600160a01b03811681146200054557600080fd5b9392505050565b608051611bba6200056f600039600081816102e701526106fc0152611bba6000f3fe608060405234801561001057600080fd5b506004361061016c5760003560e01c80638da5cb5b116100cd578063d5f5058211610081578063e8533e2911610066578063e8533e2914610374578063e9ed9b6414610397578063f2fde38b146103aa57600080fd5b8063d5f5058214610329578063e4edf8521461036157600080fd5b8063ba58e82a116100b2578063ba58e82a146102cf578063c80d23f6146102e2578063cb1825e71461030957600080fd5b80638da5cb5b1461029c57806394b2822f146102ba57600080fd5b8063481c6a751161012457806350697a3f1161010957806350697a3f1461024257806354fd4d5014610255578063715018a61461029457600080fd5b8063481c6a75146101f0578063485cc9551461022f57600080fd5b80630dcaeaf2116101555780630dcaeaf21461018e578063295840d9146101aa5780632c68fa02146101dd57600080fd5b8063089208d8146101715780630ba24fe01461017b575b600080fd5b6101796103bd565b005b610179610189366004611366565b6103d1565b610197610e1081565b6040519081526020015b60405180910390f35b6101cd6101b8366004611388565b60656020526000908152604090205460ff1681565b60405190151581526020016101a1565b6101796101eb3660046113ea565b61044f565b60345473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101a1565b61017961023d36600461142c565b6104b8565b6101796102503660046113ea565b61062b565b604080518082018252600581527f302e322e30000000000000000000000000000000000000000000000000000000602082015290516101a1919061148f565b610179610691565b60335473ffffffffffffffffffffffffffffffffffffffff1661020a565b6102c26106a3565b6040516101a191906114c2565b6101796102dd36600461151c565b6106b4565b61020a7f000000000000000000000000000000000000000000000000000000000000000081565b610197610317366004611366565b60666020526000908152604090205481565b6101cd610337366004611366565b73ffffffffffffffffffffffffffffffffffffffff16600090815260666020526040902054151590565b61017961036f366004611366565b610976565b6101cd610382366004611366565b60676020526000908152604090205460ff1681565b6101796103a5366004611588565b610a13565b6101796103b8366004611366565b610a87565b6103c5610b3d565b6103cf6000610bec565b565b6103d9610b3d565b73ffffffffffffffffffffffffffffffffffffffff811660009081526066602052604081205561040a606882610c63565b5060405173ffffffffffffffffffffffffffffffffffffffff8216907fb64c2e472ebdc8f61a76438be3074f3e38569b2ebd8a9cc71dcc9b181defd78e90600090a250565b610457610dd1565b600082826040516104699291906115c4565b6040805191829003822060008181526065602052918220805460ff19166001179055925082917f69d3648e0ece7f39bd543bfef3c707409fd1254e63ac994bd2ef2ca2537632d99190a2505050565b600054610100900460ff16158080156104d85750600054600160ff909116105b806104f25750303b1580156104f2575060005460ff166001145b6105695760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084015b60405180910390fd5b6000805460ff1916600117905580156105a957600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6105b1610e5e565b6105ba83610a87565b6105c382610976565b801561062657600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b610633610dd1565b600082826040516106459291906115c4565b6040805191829003822060008181526065602052918220805460ff19169055925082917ffb4e0bf7dfa4b06d86587cdb16957cf9ff2d7026b41e2b0d8199ff5caa52ec4e9190a2505050565b610699610dd1565b6103cf6000610ee3565b60606106af6068610f5a565b905090565b6106bc610b3d565b6040517f6d114be300000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001690636d114be39061073a90889088906001908990899060040161162e565b6000604051808303816000875af1158015610759573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610781919081019061196b565b9050600081516003811115610798576107986115ff565b146107cf576040517f41baf0ee00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b42610e106103e8836040015167ffffffffffffffff166107ef9190611af3565b6107f99190611b2e565b11610830576040517f696bbf1f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061083f8260e0015161102f565b60008181526065602052604090205490915060ff1661088a576040517fa24fb87f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60c082015180516041146108ca576040517fa2d0fee800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01602182012073ffffffffffffffffffffffffffffffffffffffff8116600090815260666020526040902083905580610927606882611137565b50604051849073ffffffffffffffffffffffffffffffffffffffff8316907fcf848c482fcf6fe3067875f261b92c8f20a9756538ee17b8ef66ad0b7bae208c90600090a3505050505050505050565b61097e610b3d565b73ffffffffffffffffffffffffffffffffffffffff8116610a075760405162461bcd60e51b815260206004820152602f60248201527f4f776e61626c654d616e616765643a206e6577206d616e61676572206973207460448201527f6865207a65726f206164647265737300000000000000000000000000000000006064820152608401610560565b610a1081610bec565b50565b610a1b610dd1565b73ffffffffffffffffffffffffffffffffffffffff8216600081815260676020908152604091829020805460ff191685151590811790915591519182527ffc7858ed770f3bd9c19525fe1de2c94c7d048128ade2219d82b32d888a45a7d2910160405180910390a25050565b610a8f610dd1565b73ffffffffffffffffffffffffffffffffffffffff8116610b185760405162461bcd60e51b815260206004820152602d60248201527f4f776e61626c654d616e616765643a206e6577206f776e65722069732074686560448201527f207a65726f2061646472657373000000000000000000000000000000000000006064820152608401610560565b610a1081610ee3565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b60335473ffffffffffffffffffffffffffffffffffffffff16331480610b7a575060345473ffffffffffffffffffffffffffffffffffffffff1633145b6103cf5760405162461bcd60e51b815260206004820152603660248201527f4f776e61626c654d616e616765643a2063616c6c6572206973206e6f7420746860448201527f65206f776e6572206f7220746865206d616e61676572000000000000000000006064820152608401610560565b6034805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f80f15e9dbc60884fdb59fb8ed4fc48a9a689e028f055e893ed45ca5be67c5c8590600090a35050565b63978aab9260045260008281526024812073ffffffffffffffffffffffffffffffffffffffff92909216917fffffffffffffffffffffffffffffffffffffffffffffff04498025ad2b4047418301610cc35763f5a267f16000526004601cfd5b82610cd55768fbb67fda52d4bfb8bf92505b80546bffffffffffffffffffffffff811680610d585760019350848260601c03610d1357600183018054845560028401805490915560009055610dc8565b84600184015460601c03610d3557600283018054600185015560009055610dc8565b84600284015460601c03610d4f5760006002840155610dc8565b60009350610dc8565b82602052846000526040600020805480610d73575050610dc8565b60018360011c039250826001820314610dab578285015460601c8060601b600183038701556000848701558060005250806040600020555b5060018260011b17845460601c60601b1784556000815550600193505b50505092915050565b60335473ffffffffffffffffffffffffffffffffffffffff1633146103cf5760405162461bcd60e51b815260206004820152602760248201527f4f776e61626c654d616e616765643a2063616c6c6572206973206e6f7420746860448201527f65206f776e6572000000000000000000000000000000000000000000000000006064820152608401610560565b600054610100900460ff16610edb5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610560565b6103cf6112ae565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b63978aab926004526000818152602481206060915068fbb67fda52d4bfb8bf81548060a01b60a01c6040519450846020018260601c9250838314158302815281610fe9578215610fe457600191508185015460601c92508215610fe4578284141590920260208301525060028381015460601c918215610fe4576003915083831415830260408201525b611019565b600191821c915b82811015611017578581015460601c858114158102600583901b8401529350600101610ff0565b505b8186528160051b81016040525050505050919050565b6000805b82518110156111045782818151811061104e5761104e611b46565b60200260200101516000015167ffffffffffffffff166000036110f257600083828151811061107f5761107f611b46565b6020026020010151602001519050806000015181602001516040516020016110d39291909182527fffffffffffffffffffffffffffffffff0000000000000000000000000000000016602082015260300190565b6040516020818303038152906040528051906020012092505050919050565b806110fc81611b75565b915050611033565b506040517f85269c3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b63978aab9260045260008281526024812073ffffffffffffffffffffffffffffffffffffffff92909216917fffffffffffffffffffffffffffffffffffffffffffffff04498025ad2b40474183016111975763f5a267f16000526004601cfd5b826111a95768fbb67fda52d4bfb8bf92505b80546bffffffffffffffffffffffff81168260205280611271578160601c806111dc578560601b84556001945050610dc8565b8581036111e95750610dc8565b600184015460601c8061120a578660601b6001860155600195505050610dc8565b868103611218575050610dc8565b600285015460601c8061123a578760601b600287015560019650505050610dc8565b87810361124957505050610dc8565b6000928352604080842060019055918352818320600290558252902060039055506007908117905b84600052604060002080546112a4578160011c91508560601b828501558160010181558260020184556001945050610dc8565b5050505092915050565b600054610100900460ff1661132b5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610560565b61133433610ee3565b6103cf33610bec565b803573ffffffffffffffffffffffffffffffffffffffff8116811461136157600080fd5b919050565b60006020828403121561137857600080fd5b6113818261133d565b9392505050565b60006020828403121561139a57600080fd5b5035919050565b60008083601f8401126113b357600080fd5b50813567ffffffffffffffff8111156113cb57600080fd5b6020830191508360208285010111156113e357600080fd5b9250929050565b600080602083850312156113fd57600080fd5b823567ffffffffffffffff81111561141457600080fd5b611420858286016113a1565b90969095509350505050565b6000806040838503121561143f57600080fd5b6114488361133d565b91506114566020840161133d565b90509250929050565b60005b8381101561147a578181015183820152602001611462565b83811115611489576000848401525b50505050565b60208152600082518060208401526114ae81604085016020870161145f565b601f01601f19169190910160400192915050565b6020808252825182820181905260009190848201906040850190845b8181101561151057835173ffffffffffffffffffffffffffffffffffffffff16835292840192918401916001016114de565b50909695505050505050565b6000806000806040858703121561153257600080fd5b843567ffffffffffffffff8082111561154a57600080fd5b611556888389016113a1565b9096509450602087013591508082111561156f57600080fd5b5061157c878288016113a1565b95989497509550505050565b6000806040838503121561159b57600080fd5b6115a48361133d565b9150602083013580151581146115b957600080fd5b809150509250929050565b8183823760009101908152919050565b818352818160208501375060006020828401015260006020601f19601f840116840101905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6060815260006116426060830187896115d4565b60038610611679577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b85602084015282810360408401526116928185876115d4565b98975050505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040805190810167ffffffffffffffff811182821017156116f0576116f061169e565b60405290565b604051610120810167ffffffffffffffff811182821017156116f0576116f061169e565b604051601f8201601f1916810167ffffffffffffffff811182821017156117435761174361169e565b604052919050565b80516004811061136157600080fd5b805160ff8116811461136157600080fd5b805167ffffffffffffffff8116811461136157600080fd5b600067ffffffffffffffff82111561179d5761179d61169e565b5060051b60200190565b600082601f8301126117b857600080fd5b815160206117cd6117c883611783565b61171a565b82815260059290921b840181019181810190868411156117ec57600080fd5b8286015b8481101561180757805183529183019183016117f0565b509695505050505050565b600082601f83011261182357600080fd5b815167ffffffffffffffff81111561183d5761183d61169e565b6118506020601f19601f8401160161171a565b81815284602083860101111561186557600080fd5b61187682602083016020870161145f565b949350505050565b600082601f83011261188f57600080fd5b8151602061189f6117c883611783565b828152606092830285018201928282019190878511156118be57600080fd5b8387015b8581101561195e57808903828112156118db5760008081fd5b6118e36116cd565b6118ec8361176b565b8152604080601f19840112156119025760008081fd5b61190a6116cd565b848901518152908401519092507fffffffffffffffffffffffffffffffff00000000000000000000000000000000811681146119465760008081fd5b828801528087019190915284529284019281016118c2565b5090979650505050505050565b60006020828403121561197d57600080fd5b815167ffffffffffffffff8082111561199557600080fd5b9083019061012082860312156119aa57600080fd5b6119b26116f6565b6119bb8361174b565b81526119c96020840161175a565b60208201526119da6040840161176b565b60408201526060830151828111156119f157600080fd5b6119fd878286016117a7565b606083015250608083015182811115611a1557600080fd5b611a2187828601611812565b60808301525060a083015182811115611a3957600080fd5b611a4587828601611812565b60a08301525060c083015182811115611a5d57600080fd5b611a6987828601611812565b60c08301525060e083015182811115611a8157600080fd5b611a8d8782860161187e565b60e0830152506101008084015183811115611aa757600080fd5b611ab388828701611812565b918301919091525095945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600082611b29577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b60008219821115611b4157611b41611ac4565b500190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611ba657611ba6611ac4565b506001019056fea164736f6c634300080f000a4f776e61626c654d616e616765643a2063616c6c6572206973206e6f74207468496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069 + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\xA0`@R4\x80\x15b\0\0\x11W`\0\x80\xFD[P`@Qb\0!i8\x03\x80b\0!i\x839\x81\x01`@\x81\x90Rb\0\x004\x91b\0\x05\x1AV[`\x01`\x01`\xA0\x1B\x03\x81\x16`\x80Rb\0\0Oa\xDE\xAD\x80b\0\0VV[Pb\0\x05LV[`\0Ta\x01\0\x90\x04`\xFF\x16\x15\x80\x80\x15b\0\0wWP`\0T`\x01`\xFF\x90\x91\x16\x10[\x80b\0\0\xA7WPb\0\0\x940b\0\x01\xA0` \x1Bb\0\x0B!\x17` \x1CV[\x15\x80\x15b\0\0\xA7WP`\0T`\xFF\x16`\x01\x14[b\0\x01\x10W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`.`$\x82\x01R\x7FInitializable: contract is alrea`D\x82\x01Rm\x19\x1EH\x1A[\x9A]\x1AX[\x1A^\x99Y`\x92\x1B`d\x82\x01R`\x84\x01[`@Q\x80\x91\x03\x90\xFD[`\0\x80T`\xFF\x19\x16`\x01\x17\x90U\x80\x15b\0\x014W`\0\x80Ta\xFF\0\x19\x16a\x01\0\x17\x90U[b\0\x01>b\0\x01\xAFV[b\0\x01I\x83b\0\x02\x17V[b\0\x01T\x82b\0\x02\x9DV[\x80\x15b\0\x01\x9BW`\0\x80Ta\xFF\0\x19\x16\x90U`@Q`\x01\x81R\x7F\x7F&\xB8?\xF9n\x1F+jh/\x138R\xF6y\x8A\t\xC4e\xDA\x95\x92\x14`\xCE\xFB8G@$\x98\x90` \x01`@Q\x80\x91\x03\x90\xA1[PPPV[`\x01`\x01`\xA0\x1B\x03\x16;\x15\x15\x90V[`\0Ta\x01\0\x90\x04`\xFF\x16b\0\x02\x0BW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R`\0\x80Q` b\0!I\x839\x81Q\x91R`D\x82\x01Rjnitializing`\xA8\x1B`d\x82\x01R`\x84\x01b\0\x01\x07V[b\0\x02\x15b\0\x03\"V[V[b\0\x02!b\0\x03\x94V[`\x01`\x01`\xA0\x1B\x03\x81\x16b\0\x02\x8FW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`-`$\x82\x01R\x7FOwnableManaged: new owner is the`D\x82\x01Rl zero address`\x98\x1B`d\x82\x01R`\x84\x01b\0\x01\x07V[b\0\x02\x9A\x81b\0\x03\xEFV[PV[b\0\x02\xA7b\0\x04AV[`\x01`\x01`\xA0\x1B\x03\x81\x16b\0\x03\x17W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`/`$\x82\x01R\x7FOwnableManaged: new manager is t`D\x82\x01Rnhe zero address`\x88\x1B`d\x82\x01R`\x84\x01b\0\x01\x07V[b\0\x02\x9A\x81b\0\x04\xC8V[`\0Ta\x01\0\x90\x04`\xFF\x16b\0\x03~W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R`\0\x80Q` b\0!I\x839\x81Q\x91R`D\x82\x01Rjnitializing`\xA8\x1B`d\x82\x01R`\x84\x01b\0\x01\x07V[b\0\x03\x893b\0\x03\xEFV[b\0\x02\x153b\0\x04\xC8V[`3T`\x01`\x01`\xA0\x1B\x03\x163\x14b\0\x02\x15W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`'`$\x82\x01R`\0\x80Q` b\0!)\x839\x81Q\x91R`D\x82\x01Rf2\x907\xBB\xB72\xB9`\xC9\x1B`d\x82\x01R`\x84\x01b\0\x01\x07V[`3\x80T`\x01`\x01`\xA0\x1B\x03\x83\x81\x16`\x01`\x01`\xA0\x1B\x03\x19\x83\x16\x81\x17\x90\x93U`@Q\x91\x16\x91\x90\x82\x90\x7F\x8B\xE0\x07\x9CS\x16Y\x14\x13D\xCD\x1F\xD0\xA4\xF2\x84\x19I\x7F\x97\"\xA3\xDA\xAF\xE3\xB4\x18okdW\xE0\x90`\0\x90\xA3PPV[`3T`\x01`\x01`\xA0\x1B\x03\x163\x14\x80b\0\x04eWP`4T`\x01`\x01`\xA0\x1B\x03\x163\x14[b\0\x02\x15W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`6`$\x82\x01R`\0\x80Q` b\0!)\x839\x81Q\x91R`D\x82\x01R\x7Fe owner or the manager\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01b\0\x01\x07V[`4\x80T`\x01`\x01`\xA0\x1B\x03\x83\x81\x16`\x01`\x01`\xA0\x1B\x03\x19\x83\x16\x81\x17\x90\x93U`@Q\x91\x16\x91\x90\x82\x90\x7F\x80\xF1^\x9D\xBC`\x88O\xDBY\xFB\x8E\xD4\xFCH\xA9\xA6\x89\xE0(\xF0U\xE8\x93\xEDE\xCA[\xE6|\\\x85\x90`\0\x90\xA3PPV[`\0` \x82\x84\x03\x12\x15b\0\x05-W`\0\x80\xFD[\x81Q`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14b\0\x05EW`\0\x80\xFD[\x93\x92PPPV[`\x80Qa\x1B\xBAb\0\x05o`\09`\0\x81\x81a\x02\xE7\x01Ra\x06\xFC\x01Ra\x1B\xBA`\0\xF3\xFE`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`\x046\x10a\x01lW`\x005`\xE0\x1C\x80c\x8D\xA5\xCB[\x11a\0\xCDW\x80c\xD5\xF5\x05\x82\x11a\0\x81W\x80c\xE8S>)\x11a\0fW\x80c\xE8S>)\x14a\x03tW\x80c\xE9\xED\x9Bd\x14a\x03\x97W\x80c\xF2\xFD\xE3\x8B\x14a\x03\xAAW`\0\x80\xFD[\x80c\xD5\xF5\x05\x82\x14a\x03)W\x80c\xE4\xED\xF8R\x14a\x03aW`\0\x80\xFD[\x80c\xBAX\xE8*\x11a\0\xB2W\x80c\xBAX\xE8*\x14a\x02\xCFW\x80c\xC8\r#\xF6\x14a\x02\xE2W\x80c\xCB\x18%\xE7\x14a\x03\tW`\0\x80\xFD[\x80c\x8D\xA5\xCB[\x14a\x02\x9CW\x80c\x94\xB2\x82/\x14a\x02\xBAW`\0\x80\xFD[\x80cH\x1Cju\x11a\x01$W\x80cPiz?\x11a\x01\tW\x80cPiz?\x14a\x02BW\x80cT\xFDMP\x14a\x02UW\x80cqP\x18\xA6\x14a\x02\x94W`\0\x80\xFD[\x80cH\x1Cju\x14a\x01\xF0W\x80cH\\\xC9U\x14a\x02/W`\0\x80\xFD[\x80c\r\xCA\xEA\xF2\x11a\x01UW\x80c\r\xCA\xEA\xF2\x14a\x01\x8EW\x80c)X@\xD9\x14a\x01\xAAW\x80c,h\xFA\x02\x14a\x01\xDDW`\0\x80\xFD[\x80c\x08\x92\x08\xD8\x14a\x01qW\x80c\x0B\xA2O\xE0\x14a\x01{W[`\0\x80\xFD[a\x01ya\x03\xBDV[\0[a\x01ya\x01\x896`\x04a\x13fV[a\x03\xD1V[a\x01\x97a\x0E\x10\x81V[`@Q\x90\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[a\x01\xCDa\x01\xB86`\x04a\x13\x88V[`e` R`\0\x90\x81R`@\x90 T`\xFF\x16\x81V[`@Q\x90\x15\x15\x81R` \x01a\x01\xA1V[a\x01ya\x01\xEB6`\x04a\x13\xEAV[a\x04OV[`4Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16[`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01a\x01\xA1V[a\x01ya\x02=6`\x04a\x14,V[a\x04\xB8V[a\x01ya\x02P6`\x04a\x13\xEAV[a\x06+V[`@\x80Q\x80\x82\x01\x82R`\x05\x81R\x7F0.2.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` \x82\x01R\x90Qa\x01\xA1\x91\x90a\x14\x8FV[a\x01ya\x06\x91V[`3Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a\x02\nV[a\x02\xC2a\x06\xA3V[`@Qa\x01\xA1\x91\x90a\x14\xC2V[a\x01ya\x02\xDD6`\x04a\x15\x1CV[a\x06\xB4V[a\x02\n\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[a\x01\x97a\x03\x176`\x04a\x13fV[`f` R`\0\x90\x81R`@\x90 T\x81V[a\x01\xCDa\x0376`\x04a\x13fV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\0\x90\x81R`f` R`@\x90 T\x15\x15\x90V[a\x01ya\x03o6`\x04a\x13fV[a\tvV[a\x01\xCDa\x03\x826`\x04a\x13fV[`g` R`\0\x90\x81R`@\x90 T`\xFF\x16\x81V[a\x01ya\x03\xA56`\x04a\x15\x88V[a\n\x13V[a\x01ya\x03\xB86`\x04a\x13fV[a\n\x87V[a\x03\xC5a\x0B=V[a\x03\xCF`\0a\x0B\xECV[V[a\x03\xD9a\x0B=V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16`\0\x90\x81R`f` R`@\x81 Ua\x04\n`h\x82a\x0CcV[P`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16\x90\x7F\xB6L.G.\xBD\xC8\xF6\x1AvC\x8B\xE3\x07O>8V\x9B.\xBD\x8A\x9C\xC7\x1D\xCC\x9B\x18\x1D\xEF\xD7\x8E\x90`\0\x90\xA2PV[a\x04Wa\r\xD1V[`\0\x82\x82`@Qa\x04i\x92\x91\x90a\x15\xC4V[`@\x80Q\x91\x82\x90\x03\x82 `\0\x81\x81R`e` R\x91\x82 \x80T`\xFF\x19\x16`\x01\x17\x90U\x92P\x82\x91\x7Fi\xD3d\x8E\x0E\xCE\x7F9\xBDT;\xFE\xF3\xC7\x07@\x9F\xD1%Nc\xAC\x99K\xD2\xEF,\xA2Sv2\xD9\x91\x90\xA2PPPV[`\0Ta\x01\0\x90\x04`\xFF\x16\x15\x80\x80\x15a\x04\xD8WP`\0T`\x01`\xFF\x90\x91\x16\x10[\x80a\x04\xF2WP0;\x15\x80\x15a\x04\xF2WP`\0T`\xFF\x16`\x01\x14[a\x05iW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`.`$\x82\x01R\x7FInitializable: contract is alrea`D\x82\x01R\x7Fdy initialized\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01[`@Q\x80\x91\x03\x90\xFD[`\0\x80T`\xFF\x19\x16`\x01\x17\x90U\x80\x15a\x05\xA9W`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\x16a\x01\0\x17\x90U[a\x05\xB1a\x0E^V[a\x05\xBA\x83a\n\x87V[a\x05\xC3\x82a\tvV[\x80\x15a\x06&W`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\x16\x90U`@Q`\x01\x81R\x7F\x7F&\xB8?\xF9n\x1F+jh/\x138R\xF6y\x8A\t\xC4e\xDA\x95\x92\x14`\xCE\xFB8G@$\x98\x90` \x01`@Q\x80\x91\x03\x90\xA1[PPPV[a\x063a\r\xD1V[`\0\x82\x82`@Qa\x06E\x92\x91\x90a\x15\xC4V[`@\x80Q\x91\x82\x90\x03\x82 `\0\x81\x81R`e` R\x91\x82 \x80T`\xFF\x19\x16\x90U\x92P\x82\x91\x7F\xFBN\x0B\xF7\xDF\xA4\xB0m\x86X|\xDB\x16\x95|\xF9\xFF-p&\xB4\x1E+\r\x81\x99\xFF\\\xAAR\xECN\x91\x90\xA2PPPV[a\x06\x99a\r\xD1V[a\x03\xCF`\0a\x0E\xE3V[``a\x06\xAF`ha\x0FZV[\x90P\x90V[a\x06\xBCa\x0B=V[`@Q\x7Fm\x11K\xE3\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`\0\x90s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x90cm\x11K\xE3\x90a\x07:\x90\x88\x90\x88\x90`\x01\x90\x89\x90\x89\x90`\x04\x01a\x16.V[`\0`@Q\x80\x83\x03\x81`\0\x87Z\xF1\x15\x80\x15a\x07YW=`\0\x80>=`\0\xFD[PPPP`@Q=`\0\x82>`\x1F=\x90\x81\x01`\x1F\x19\x16\x82\x01`@Ra\x07\x81\x91\x90\x81\x01\x90a\x19kV[\x90P`\0\x81Q`\x03\x81\x11\x15a\x07\x98Wa\x07\x98a\x15\xFFV[\x14a\x07\xCFW`@Q\x7FA\xBA\xF0\xEE\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\x01`@Q\x80\x91\x03\x90\xFD[Ba\x0E\x10a\x03\xE8\x83`@\x01Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a\x07\xEF\x91\x90a\x1A\xF3V[a\x07\xF9\x91\x90a\x1B.V[\x11a\x080W`@Q\x7Fik\xBF\x1F\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\x01`@Q\x80\x91\x03\x90\xFD[`\0a\x08?\x82`\xE0\x01Qa\x10/V[`\0\x81\x81R`e` R`@\x90 T\x90\x91P`\xFF\x16a\x08\x8AW`@Q\x7F\xA2O\xB8\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\xC0\x82\x01Q\x80Q`A\x14a\x08\xCAW`@Q\x7F\xA2\xD0\xFE\xE8\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\x01`@Q\x80\x91\x03\x90\xFD[\x80Q\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x01`!\x82\x01 s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16`\0\x90\x81R`f` R`@\x90 \x83\x90U\x80a\t'`h\x82a\x117V[P`@Q\x84\x90s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x16\x90\x7F\xCF\x84\x8CH/\xCFo\xE3\x06xu\xF2a\xB9,\x8F \xA9ue8\xEE\x17\xB8\xEFf\xAD\x0B{\xAE \x8C\x90`\0\x90\xA3PPPPPPPPPV[a\t~a\x0B=V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16a\n\x07W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`/`$\x82\x01R\x7FOwnableManaged: new manager is t`D\x82\x01R\x7Fhe zero address\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x05`V[a\n\x10\x81a\x0B\xECV[PV[a\n\x1Ba\r\xD1V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16`\0\x81\x81R`g` \x90\x81R`@\x91\x82\x90 \x80T`\xFF\x19\x16\x85\x15\x15\x90\x81\x17\x90\x91U\x91Q\x91\x82R\x7F\xFCxX\xEDw\x0F;\xD9\xC1\x95%\xFE\x1D\xE2\xC9L}\x04\x81(\xAD\xE2!\x9D\x82\xB3-\x88\x8AE\xA7\xD2\x91\x01`@Q\x80\x91\x03\x90\xA2PPV[a\n\x8Fa\r\xD1V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16a\x0B\x18W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`-`$\x82\x01R\x7FOwnableManaged: new owner is the`D\x82\x01R\x7F zero address\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x05`V[a\n\x10\x81a\x0E\xE3V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16;\x15\x15\x90V[`3Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x163\x14\x80a\x0BzWP`4Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x163\x14[a\x03\xCFW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`6`$\x82\x01R\x7FOwnableManaged: caller is not th`D\x82\x01R\x7Fe owner or the manager\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x05`V[`4\x80Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x81\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x83\x16\x81\x17\x90\x93U`@Q\x91\x16\x91\x90\x82\x90\x7F\x80\xF1^\x9D\xBC`\x88O\xDBY\xFB\x8E\xD4\xFCH\xA9\xA6\x89\xE0(\xF0U\xE8\x93\xEDE\xCA[\xE6|\\\x85\x90`\0\x90\xA3PPV[c\x97\x8A\xAB\x92`\x04R`\0\x82\x81R`$\x81 s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x92\x90\x92\x16\x91\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x04I\x80%\xAD+@GA\x83\x01a\x0C\xC3Wc\xF5\xA2g\xF1`\0R`\x04`\x1C\xFD[\x82a\x0C\xD5Wh\xFB\xB6\x7F\xDAR\xD4\xBF\xB8\xBF\x92P[\x80Tk\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x80a\rXW`\x01\x93P\x84\x82``\x1C\x03a\r\x13W`\x01\x83\x01\x80T\x84U`\x02\x84\x01\x80T\x90\x91U`\0\x90Ua\r\xC8V[\x84`\x01\x84\x01T``\x1C\x03a\r5W`\x02\x83\x01\x80T`\x01\x85\x01U`\0\x90Ua\r\xC8V[\x84`\x02\x84\x01T``\x1C\x03a\rOW`\0`\x02\x84\x01Ua\r\xC8V[`\0\x93Pa\r\xC8V[\x82` R\x84`\0R`@`\0 \x80T\x80a\rsWPPa\r\xC8V[`\x01\x83`\x01\x1C\x03\x92P\x82`\x01\x82\x03\x14a\r\xABW\x82\x85\x01T``\x1C\x80``\x1B`\x01\x83\x03\x87\x01U`\0\x84\x87\x01U\x80`\0RP\x80`@`\0 U[P`\x01\x82`\x01\x1B\x17\x84T``\x1C``\x1B\x17\x84U`\0\x81UP`\x01\x93P[PPP\x92\x91PPV[`3Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x163\x14a\x03\xCFW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`'`$\x82\x01R\x7FOwnableManaged: caller is not th`D\x82\x01R\x7Fe owner\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`d\x82\x01R`\x84\x01a\x05`V[`\0Ta\x01\0\x90\x04`\xFF\x16a\x0E\xDBW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FInitializable: contract is not i`D\x82\x01R\x7Fnitializing\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x05`V[a\x03\xCFa\x12\xAEV[`3\x80Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x81\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x83\x16\x81\x17\x90\x93U`@Q\x91\x16\x91\x90\x82\x90\x7F\x8B\xE0\x07\x9CS\x16Y\x14\x13D\xCD\x1F\xD0\xA4\xF2\x84\x19I\x7F\x97\"\xA3\xDA\xAF\xE3\xB4\x18okdW\xE0\x90`\0\x90\xA3PPV[c\x97\x8A\xAB\x92`\x04R`\0\x81\x81R`$\x81 ``\x91Ph\xFB\xB6\x7F\xDAR\xD4\xBF\xB8\xBF\x81T\x80`\xA0\x1B`\xA0\x1C`@Q\x94P\x84` \x01\x82``\x1C\x92P\x83\x83\x14\x15\x83\x02\x81R\x81a\x0F\xE9W\x82\x15a\x0F\xE4W`\x01\x91P\x81\x85\x01T``\x1C\x92P\x82\x15a\x0F\xE4W\x82\x84\x14\x15\x90\x92\x02` \x83\x01RP`\x02\x83\x81\x01T``\x1C\x91\x82\x15a\x0F\xE4W`\x03\x91P\x83\x83\x14\x15\x83\x02`@\x82\x01R[a\x10\x19V[`\x01\x91\x82\x1C\x91[\x82\x81\x10\x15a\x10\x17W\x85\x81\x01T``\x1C\x85\x81\x14\x15\x81\x02`\x05\x83\x90\x1B\x84\x01R\x93P`\x01\x01a\x0F\xF0V[P[\x81\x86R\x81`\x05\x1B\x81\x01`@RPPPPP\x91\x90PV[`\0\x80[\x82Q\x81\x10\x15a\x11\x04W\x82\x81\x81Q\x81\x10a\x10NWa\x10Na\x1BFV[` \x02` \x01\x01Q`\0\x01Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\0\x03a\x10\xF2W`\0\x83\x82\x81Q\x81\x10a\x10\x7FWa\x10\x7Fa\x1BFV[` \x02` \x01\x01Q` \x01Q\x90P\x80`\0\x01Q\x81` \x01Q`@Q` \x01a\x10\xD3\x92\x91\x90\x91\x82R\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16` \x82\x01R`0\x01\x90V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 \x92PPP\x91\x90PV[\x80a\x10\xFC\x81a\x1BuV[\x91PPa\x103V[P`@Q\x7F\x85&\x9C=\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\x01`@Q\x80\x91\x03\x90\xFD[c\x97\x8A\xAB\x92`\x04R`\0\x82\x81R`$\x81 s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x92\x90\x92\x16\x91\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x04I\x80%\xAD+@GA\x83\x01a\x11\x97Wc\xF5\xA2g\xF1`\0R`\x04`\x1C\xFD[\x82a\x11\xA9Wh\xFB\xB6\x7F\xDAR\xD4\xBF\xB8\xBF\x92P[\x80Tk\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x82` R\x80a\x12qW\x81``\x1C\x80a\x11\xDCW\x85``\x1B\x84U`\x01\x94PPa\r\xC8V[\x85\x81\x03a\x11\xE9WPa\r\xC8V[`\x01\x84\x01T``\x1C\x80a\x12\nW\x86``\x1B`\x01\x86\x01U`\x01\x95PPPa\r\xC8V[\x86\x81\x03a\x12\x18WPPa\r\xC8V[`\x02\x85\x01T``\x1C\x80a\x12:W\x87``\x1B`\x02\x87\x01U`\x01\x96PPPPa\r\xC8V[\x87\x81\x03a\x12IWPPPa\r\xC8V[`\0\x92\x83R`@\x80\x84 `\x01\x90U\x91\x83R\x81\x83 `\x02\x90U\x82R\x90 `\x03\x90UP`\x07\x90\x81\x17\x90[\x84`\0R`@`\0 \x80Ta\x12\xA4W\x81`\x01\x1C\x91P\x85``\x1B\x82\x85\x01U\x81`\x01\x01\x81U\x82`\x02\x01\x84U`\x01\x94PPa\r\xC8V[PPPP\x92\x91PPV[`\0Ta\x01\0\x90\x04`\xFF\x16a\x13+W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FInitializable: contract is not i`D\x82\x01R\x7Fnitializing\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x05`V[a\x1343a\x0E\xE3V[a\x03\xCF3a\x0B\xECV[\x805s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x13aW`\0\x80\xFD[\x91\x90PV[`\0` \x82\x84\x03\x12\x15a\x13xW`\0\x80\xFD[a\x13\x81\x82a\x13=V[\x93\x92PPPV[`\0` \x82\x84\x03\x12\x15a\x13\x9AW`\0\x80\xFD[P5\x91\x90PV[`\0\x80\x83`\x1F\x84\x01\x12a\x13\xB3W`\0\x80\xFD[P\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x13\xCBW`\0\x80\xFD[` \x83\x01\x91P\x83` \x82\x85\x01\x01\x11\x15a\x13\xE3W`\0\x80\xFD[\x92P\x92\x90PV[`\0\x80` \x83\x85\x03\x12\x15a\x13\xFDW`\0\x80\xFD[\x825g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x14\x14W`\0\x80\xFD[a\x14 \x85\x82\x86\x01a\x13\xA1V[\x90\x96\x90\x95P\x93PPPPV[`\0\x80`@\x83\x85\x03\x12\x15a\x14?W`\0\x80\xFD[a\x14H\x83a\x13=V[\x91Pa\x14V` \x84\x01a\x13=V[\x90P\x92P\x92\x90PV[`\0[\x83\x81\x10\x15a\x14zW\x81\x81\x01Q\x83\x82\x01R` \x01a\x14bV[\x83\x81\x11\x15a\x14\x89W`\0\x84\x84\x01R[PPPPV[` \x81R`\0\x82Q\x80` \x84\x01Ra\x14\xAE\x81`@\x85\x01` \x87\x01a\x14_V[`\x1F\x01`\x1F\x19\x16\x91\x90\x91\x01`@\x01\x92\x91PPV[` \x80\x82R\x82Q\x82\x82\x01\x81\x90R`\0\x91\x90\x84\x82\x01\x90`@\x85\x01\x90\x84[\x81\x81\x10\x15a\x15\x10W\x83Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x83R\x92\x84\x01\x92\x91\x84\x01\x91`\x01\x01a\x14\xDEV[P\x90\x96\x95PPPPPPV[`\0\x80`\0\x80`@\x85\x87\x03\x12\x15a\x152W`\0\x80\xFD[\x845g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x15JW`\0\x80\xFD[a\x15V\x88\x83\x89\x01a\x13\xA1V[\x90\x96P\x94P` \x87\x015\x91P\x80\x82\x11\x15a\x15oW`\0\x80\xFD[Pa\x15|\x87\x82\x88\x01a\x13\xA1V[\x95\x98\x94\x97P\x95PPPPV[`\0\x80`@\x83\x85\x03\x12\x15a\x15\x9BW`\0\x80\xFD[a\x15\xA4\x83a\x13=V[\x91P` \x83\x015\x80\x15\x15\x81\x14a\x15\xB9W`\0\x80\xFD[\x80\x91PP\x92P\x92\x90PV[\x81\x83\x827`\0\x91\x01\x90\x81R\x91\x90PV[\x81\x83R\x81\x81` \x85\x017P`\0` \x82\x84\x01\x01R`\0` `\x1F\x19`\x1F\x84\x01\x16\x84\x01\x01\x90P\x92\x91PPV[\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`!`\x04R`$`\0\xFD[``\x81R`\0a\x16B``\x83\x01\x87\x89a\x15\xD4V[`\x03\x86\x10a\x16yW\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`!`\x04R`$`\0\xFD[\x85` \x84\x01R\x82\x81\x03`@\x84\x01Ra\x16\x92\x81\x85\x87a\x15\xD4V[\x98\x97PPPPPPPPV[\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[`@\x80Q\x90\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a\x16\xF0Wa\x16\xF0a\x16\x9EV[`@R\x90V[`@Qa\x01 \x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a\x16\xF0Wa\x16\xF0a\x16\x9EV[`@Q`\x1F\x82\x01`\x1F\x19\x16\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a\x17CWa\x17Ca\x16\x9EV[`@R\x91\x90PV[\x80Q`\x04\x81\x10a\x13aW`\0\x80\xFD[\x80Q`\xFF\x81\x16\x81\x14a\x13aW`\0\x80\xFD[\x80Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x13aW`\0\x80\xFD[`\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x15a\x17\x9DWa\x17\x9Da\x16\x9EV[P`\x05\x1B` \x01\x90V[`\0\x82`\x1F\x83\x01\x12a\x17\xB8W`\0\x80\xFD[\x81Q` a\x17\xCDa\x17\xC8\x83a\x17\x83V[a\x17\x1AV[\x82\x81R`\x05\x92\x90\x92\x1B\x84\x01\x81\x01\x91\x81\x81\x01\x90\x86\x84\x11\x15a\x17\xECW`\0\x80\xFD[\x82\x86\x01[\x84\x81\x10\x15a\x18\x07W\x80Q\x83R\x91\x83\x01\x91\x83\x01a\x17\xF0V[P\x96\x95PPPPPPV[`\0\x82`\x1F\x83\x01\x12a\x18#W`\0\x80\xFD[\x81Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x18=Wa\x18=a\x16\x9EV[a\x18P` `\x1F\x19`\x1F\x84\x01\x16\x01a\x17\x1AV[\x81\x81R\x84` \x83\x86\x01\x01\x11\x15a\x18eW`\0\x80\xFD[a\x18v\x82` \x83\x01` \x87\x01a\x14_V[\x94\x93PPPPV[`\0\x82`\x1F\x83\x01\x12a\x18\x8FW`\0\x80\xFD[\x81Q` a\x18\x9Fa\x17\xC8\x83a\x17\x83V[\x82\x81R``\x92\x83\x02\x85\x01\x82\x01\x92\x82\x82\x01\x91\x90\x87\x85\x11\x15a\x18\xBEW`\0\x80\xFD[\x83\x87\x01[\x85\x81\x10\x15a\x19^W\x80\x89\x03\x82\x81\x12\x15a\x18\xDBW`\0\x80\x81\xFD[a\x18\xE3a\x16\xCDV[a\x18\xEC\x83a\x17kV[\x81R`@\x80`\x1F\x19\x84\x01\x12\x15a\x19\x02W`\0\x80\x81\xFD[a\x19\na\x16\xCDV[\x84\x89\x01Q\x81R\x90\x84\x01Q\x90\x92P\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81\x16\x81\x14a\x19FW`\0\x80\x81\xFD[\x82\x88\x01R\x80\x87\x01\x91\x90\x91R\x84R\x92\x84\x01\x92\x81\x01a\x18\xC2V[P\x90\x97\x96PPPPPPPV[`\0` \x82\x84\x03\x12\x15a\x19}W`\0\x80\xFD[\x81Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x19\x95W`\0\x80\xFD[\x90\x83\x01\x90a\x01 \x82\x86\x03\x12\x15a\x19\xAAW`\0\x80\xFD[a\x19\xB2a\x16\xF6V[a\x19\xBB\x83a\x17KV[\x81Ra\x19\xC9` \x84\x01a\x17ZV[` \x82\x01Ra\x19\xDA`@\x84\x01a\x17kV[`@\x82\x01R``\x83\x01Q\x82\x81\x11\x15a\x19\xF1W`\0\x80\xFD[a\x19\xFD\x87\x82\x86\x01a\x17\xA7V[``\x83\x01RP`\x80\x83\x01Q\x82\x81\x11\x15a\x1A\x15W`\0\x80\xFD[a\x1A!\x87\x82\x86\x01a\x18\x12V[`\x80\x83\x01RP`\xA0\x83\x01Q\x82\x81\x11\x15a\x1A9W`\0\x80\xFD[a\x1AE\x87\x82\x86\x01a\x18\x12V[`\xA0\x83\x01RP`\xC0\x83\x01Q\x82\x81\x11\x15a\x1A]W`\0\x80\xFD[a\x1Ai\x87\x82\x86\x01a\x18\x12V[`\xC0\x83\x01RP`\xE0\x83\x01Q\x82\x81\x11\x15a\x1A\x81W`\0\x80\xFD[a\x1A\x8D\x87\x82\x86\x01a\x18~V[`\xE0\x83\x01RPa\x01\0\x80\x84\x01Q\x83\x81\x11\x15a\x1A\xA7W`\0\x80\xFD[a\x1A\xB3\x88\x82\x87\x01a\x18\x12V[\x91\x83\x01\x91\x90\x91RP\x95\x94PPPPPV[\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`\x11`\x04R`$`\0\xFD[`\0\x82a\x1B)W\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`\x12`\x04R`$`\0\xFD[P\x04\x90V[`\0\x82\x19\x82\x11\x15a\x1BAWa\x1BAa\x1A\xC4V[P\x01\x90V[\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`2`\x04R`$`\0\xFD[`\0\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x03a\x1B\xA6Wa\x1B\xA6a\x1A\xC4V[P`\x01\x01\x90V\xFE\xA1dsolcC\0\x08\x0F\0\nOwnableManaged: caller is not thInitializable: contract is not i", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x608060405234801561001057600080fd5b506004361061016c5760003560e01c80638da5cb5b116100cd578063d5f5058211610081578063e8533e2911610066578063e8533e2914610374578063e9ed9b6414610397578063f2fde38b146103aa57600080fd5b8063d5f5058214610329578063e4edf8521461036157600080fd5b8063ba58e82a116100b2578063ba58e82a146102cf578063c80d23f6146102e2578063cb1825e71461030957600080fd5b80638da5cb5b1461029c57806394b2822f146102ba57600080fd5b8063481c6a751161012457806350697a3f1161010957806350697a3f1461024257806354fd4d5014610255578063715018a61461029457600080fd5b8063481c6a75146101f0578063485cc9551461022f57600080fd5b80630dcaeaf2116101555780630dcaeaf21461018e578063295840d9146101aa5780632c68fa02146101dd57600080fd5b8063089208d8146101715780630ba24fe01461017b575b600080fd5b6101796103bd565b005b610179610189366004611366565b6103d1565b610197610e1081565b6040519081526020015b60405180910390f35b6101cd6101b8366004611388565b60656020526000908152604090205460ff1681565b60405190151581526020016101a1565b6101796101eb3660046113ea565b61044f565b60345473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101a1565b61017961023d36600461142c565b6104b8565b6101796102503660046113ea565b61062b565b604080518082018252600581527f302e322e30000000000000000000000000000000000000000000000000000000602082015290516101a1919061148f565b610179610691565b60335473ffffffffffffffffffffffffffffffffffffffff1661020a565b6102c26106a3565b6040516101a191906114c2565b6101796102dd36600461151c565b6106b4565b61020a7f000000000000000000000000000000000000000000000000000000000000000081565b610197610317366004611366565b60666020526000908152604090205481565b6101cd610337366004611366565b73ffffffffffffffffffffffffffffffffffffffff16600090815260666020526040902054151590565b61017961036f366004611366565b610976565b6101cd610382366004611366565b60676020526000908152604090205460ff1681565b6101796103a5366004611588565b610a13565b6101796103b8366004611366565b610a87565b6103c5610b3d565b6103cf6000610bec565b565b6103d9610b3d565b73ffffffffffffffffffffffffffffffffffffffff811660009081526066602052604081205561040a606882610c63565b5060405173ffffffffffffffffffffffffffffffffffffffff8216907fb64c2e472ebdc8f61a76438be3074f3e38569b2ebd8a9cc71dcc9b181defd78e90600090a250565b610457610dd1565b600082826040516104699291906115c4565b6040805191829003822060008181526065602052918220805460ff19166001179055925082917f69d3648e0ece7f39bd543bfef3c707409fd1254e63ac994bd2ef2ca2537632d99190a2505050565b600054610100900460ff16158080156104d85750600054600160ff909116105b806104f25750303b1580156104f2575060005460ff166001145b6105695760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084015b60405180910390fd5b6000805460ff1916600117905580156105a957600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6105b1610e5e565b6105ba83610a87565b6105c382610976565b801561062657600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b610633610dd1565b600082826040516106459291906115c4565b6040805191829003822060008181526065602052918220805460ff19169055925082917ffb4e0bf7dfa4b06d86587cdb16957cf9ff2d7026b41e2b0d8199ff5caa52ec4e9190a2505050565b610699610dd1565b6103cf6000610ee3565b60606106af6068610f5a565b905090565b6106bc610b3d565b6040517f6d114be300000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001690636d114be39061073a90889088906001908990899060040161162e565b6000604051808303816000875af1158015610759573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610781919081019061196b565b9050600081516003811115610798576107986115ff565b146107cf576040517f41baf0ee00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b42610e106103e8836040015167ffffffffffffffff166107ef9190611af3565b6107f99190611b2e565b11610830576040517f696bbf1f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061083f8260e0015161102f565b60008181526065602052604090205490915060ff1661088a576040517fa24fb87f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60c082015180516041146108ca576040517fa2d0fee800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01602182012073ffffffffffffffffffffffffffffffffffffffff8116600090815260666020526040902083905580610927606882611137565b50604051849073ffffffffffffffffffffffffffffffffffffffff8316907fcf848c482fcf6fe3067875f261b92c8f20a9756538ee17b8ef66ad0b7bae208c90600090a3505050505050505050565b61097e610b3d565b73ffffffffffffffffffffffffffffffffffffffff8116610a075760405162461bcd60e51b815260206004820152602f60248201527f4f776e61626c654d616e616765643a206e6577206d616e61676572206973207460448201527f6865207a65726f206164647265737300000000000000000000000000000000006064820152608401610560565b610a1081610bec565b50565b610a1b610dd1565b73ffffffffffffffffffffffffffffffffffffffff8216600081815260676020908152604091829020805460ff191685151590811790915591519182527ffc7858ed770f3bd9c19525fe1de2c94c7d048128ade2219d82b32d888a45a7d2910160405180910390a25050565b610a8f610dd1565b73ffffffffffffffffffffffffffffffffffffffff8116610b185760405162461bcd60e51b815260206004820152602d60248201527f4f776e61626c654d616e616765643a206e6577206f776e65722069732074686560448201527f207a65726f2061646472657373000000000000000000000000000000000000006064820152608401610560565b610a1081610ee3565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b60335473ffffffffffffffffffffffffffffffffffffffff16331480610b7a575060345473ffffffffffffffffffffffffffffffffffffffff1633145b6103cf5760405162461bcd60e51b815260206004820152603660248201527f4f776e61626c654d616e616765643a2063616c6c6572206973206e6f7420746860448201527f65206f776e6572206f7220746865206d616e61676572000000000000000000006064820152608401610560565b6034805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f80f15e9dbc60884fdb59fb8ed4fc48a9a689e028f055e893ed45ca5be67c5c8590600090a35050565b63978aab9260045260008281526024812073ffffffffffffffffffffffffffffffffffffffff92909216917fffffffffffffffffffffffffffffffffffffffffffffff04498025ad2b4047418301610cc35763f5a267f16000526004601cfd5b82610cd55768fbb67fda52d4bfb8bf92505b80546bffffffffffffffffffffffff811680610d585760019350848260601c03610d1357600183018054845560028401805490915560009055610dc8565b84600184015460601c03610d3557600283018054600185015560009055610dc8565b84600284015460601c03610d4f5760006002840155610dc8565b60009350610dc8565b82602052846000526040600020805480610d73575050610dc8565b60018360011c039250826001820314610dab578285015460601c8060601b600183038701556000848701558060005250806040600020555b5060018260011b17845460601c60601b1784556000815550600193505b50505092915050565b60335473ffffffffffffffffffffffffffffffffffffffff1633146103cf5760405162461bcd60e51b815260206004820152602760248201527f4f776e61626c654d616e616765643a2063616c6c6572206973206e6f7420746860448201527f65206f776e6572000000000000000000000000000000000000000000000000006064820152608401610560565b600054610100900460ff16610edb5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610560565b6103cf6112ae565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b63978aab926004526000818152602481206060915068fbb67fda52d4bfb8bf81548060a01b60a01c6040519450846020018260601c9250838314158302815281610fe9578215610fe457600191508185015460601c92508215610fe4578284141590920260208301525060028381015460601c918215610fe4576003915083831415830260408201525b611019565b600191821c915b82811015611017578581015460601c858114158102600583901b8401529350600101610ff0565b505b8186528160051b81016040525050505050919050565b6000805b82518110156111045782818151811061104e5761104e611b46565b60200260200101516000015167ffffffffffffffff166000036110f257600083828151811061107f5761107f611b46565b6020026020010151602001519050806000015181602001516040516020016110d39291909182527fffffffffffffffffffffffffffffffff0000000000000000000000000000000016602082015260300190565b6040516020818303038152906040528051906020012092505050919050565b806110fc81611b75565b915050611033565b506040517f85269c3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b63978aab9260045260008281526024812073ffffffffffffffffffffffffffffffffffffffff92909216917fffffffffffffffffffffffffffffffffffffffffffffff04498025ad2b40474183016111975763f5a267f16000526004601cfd5b826111a95768fbb67fda52d4bfb8bf92505b80546bffffffffffffffffffffffff81168260205280611271578160601c806111dc578560601b84556001945050610dc8565b8581036111e95750610dc8565b600184015460601c8061120a578660601b6001860155600195505050610dc8565b868103611218575050610dc8565b600285015460601c8061123a578760601b600287015560019650505050610dc8565b87810361124957505050610dc8565b6000928352604080842060019055918352818320600290558252902060039055506007908117905b84600052604060002080546112a4578160011c91508560601b828501558160010181558260020184556001945050610dc8565b5050505092915050565b600054610100900460ff1661132b5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610560565b61133433610ee3565b6103cf33610bec565b803573ffffffffffffffffffffffffffffffffffffffff8116811461136157600080fd5b919050565b60006020828403121561137857600080fd5b6113818261133d565b9392505050565b60006020828403121561139a57600080fd5b5035919050565b60008083601f8401126113b357600080fd5b50813567ffffffffffffffff8111156113cb57600080fd5b6020830191508360208285010111156113e357600080fd5b9250929050565b600080602083850312156113fd57600080fd5b823567ffffffffffffffff81111561141457600080fd5b611420858286016113a1565b90969095509350505050565b6000806040838503121561143f57600080fd5b6114488361133d565b91506114566020840161133d565b90509250929050565b60005b8381101561147a578181015183820152602001611462565b83811115611489576000848401525b50505050565b60208152600082518060208401526114ae81604085016020870161145f565b601f01601f19169190910160400192915050565b6020808252825182820181905260009190848201906040850190845b8181101561151057835173ffffffffffffffffffffffffffffffffffffffff16835292840192918401916001016114de565b50909695505050505050565b6000806000806040858703121561153257600080fd5b843567ffffffffffffffff8082111561154a57600080fd5b611556888389016113a1565b9096509450602087013591508082111561156f57600080fd5b5061157c878288016113a1565b95989497509550505050565b6000806040838503121561159b57600080fd5b6115a48361133d565b9150602083013580151581146115b957600080fd5b809150509250929050565b8183823760009101908152919050565b818352818160208501375060006020828401015260006020601f19601f840116840101905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6060815260006116426060830187896115d4565b60038610611679577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b85602084015282810360408401526116928185876115d4565b98975050505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040805190810167ffffffffffffffff811182821017156116f0576116f061169e565b60405290565b604051610120810167ffffffffffffffff811182821017156116f0576116f061169e565b604051601f8201601f1916810167ffffffffffffffff811182821017156117435761174361169e565b604052919050565b80516004811061136157600080fd5b805160ff8116811461136157600080fd5b805167ffffffffffffffff8116811461136157600080fd5b600067ffffffffffffffff82111561179d5761179d61169e565b5060051b60200190565b600082601f8301126117b857600080fd5b815160206117cd6117c883611783565b61171a565b82815260059290921b840181019181810190868411156117ec57600080fd5b8286015b8481101561180757805183529183019183016117f0565b509695505050505050565b600082601f83011261182357600080fd5b815167ffffffffffffffff81111561183d5761183d61169e565b6118506020601f19601f8401160161171a565b81815284602083860101111561186557600080fd5b61187682602083016020870161145f565b949350505050565b600082601f83011261188f57600080fd5b8151602061189f6117c883611783565b828152606092830285018201928282019190878511156118be57600080fd5b8387015b8581101561195e57808903828112156118db5760008081fd5b6118e36116cd565b6118ec8361176b565b8152604080601f19840112156119025760008081fd5b61190a6116cd565b848901518152908401519092507fffffffffffffffffffffffffffffffff00000000000000000000000000000000811681146119465760008081fd5b828801528087019190915284529284019281016118c2565b5090979650505050505050565b60006020828403121561197d57600080fd5b815167ffffffffffffffff8082111561199557600080fd5b9083019061012082860312156119aa57600080fd5b6119b26116f6565b6119bb8361174b565b81526119c96020840161175a565b60208201526119da6040840161176b565b60408201526060830151828111156119f157600080fd5b6119fd878286016117a7565b606083015250608083015182811115611a1557600080fd5b611a2187828601611812565b60808301525060a083015182811115611a3957600080fd5b611a4587828601611812565b60a08301525060c083015182811115611a5d57600080fd5b611a6987828601611812565b60c08301525060e083015182811115611a8157600080fd5b611a8d8782860161187e565b60e0830152506101008084015183811115611aa757600080fd5b611ab388828701611812565b918301919091525095945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600082611b29577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b60008219821115611b4157611b41611ac4565b500190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611ba657611ba6611ac4565b506001019056fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`\x046\x10a\x01lW`\x005`\xE0\x1C\x80c\x8D\xA5\xCB[\x11a\0\xCDW\x80c\xD5\xF5\x05\x82\x11a\0\x81W\x80c\xE8S>)\x11a\0fW\x80c\xE8S>)\x14a\x03tW\x80c\xE9\xED\x9Bd\x14a\x03\x97W\x80c\xF2\xFD\xE3\x8B\x14a\x03\xAAW`\0\x80\xFD[\x80c\xD5\xF5\x05\x82\x14a\x03)W\x80c\xE4\xED\xF8R\x14a\x03aW`\0\x80\xFD[\x80c\xBAX\xE8*\x11a\0\xB2W\x80c\xBAX\xE8*\x14a\x02\xCFW\x80c\xC8\r#\xF6\x14a\x02\xE2W\x80c\xCB\x18%\xE7\x14a\x03\tW`\0\x80\xFD[\x80c\x8D\xA5\xCB[\x14a\x02\x9CW\x80c\x94\xB2\x82/\x14a\x02\xBAW`\0\x80\xFD[\x80cH\x1Cju\x11a\x01$W\x80cPiz?\x11a\x01\tW\x80cPiz?\x14a\x02BW\x80cT\xFDMP\x14a\x02UW\x80cqP\x18\xA6\x14a\x02\x94W`\0\x80\xFD[\x80cH\x1Cju\x14a\x01\xF0W\x80cH\\\xC9U\x14a\x02/W`\0\x80\xFD[\x80c\r\xCA\xEA\xF2\x11a\x01UW\x80c\r\xCA\xEA\xF2\x14a\x01\x8EW\x80c)X@\xD9\x14a\x01\xAAW\x80c,h\xFA\x02\x14a\x01\xDDW`\0\x80\xFD[\x80c\x08\x92\x08\xD8\x14a\x01qW\x80c\x0B\xA2O\xE0\x14a\x01{W[`\0\x80\xFD[a\x01ya\x03\xBDV[\0[a\x01ya\x01\x896`\x04a\x13fV[a\x03\xD1V[a\x01\x97a\x0E\x10\x81V[`@Q\x90\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[a\x01\xCDa\x01\xB86`\x04a\x13\x88V[`e` R`\0\x90\x81R`@\x90 T`\xFF\x16\x81V[`@Q\x90\x15\x15\x81R` \x01a\x01\xA1V[a\x01ya\x01\xEB6`\x04a\x13\xEAV[a\x04OV[`4Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16[`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01a\x01\xA1V[a\x01ya\x02=6`\x04a\x14,V[a\x04\xB8V[a\x01ya\x02P6`\x04a\x13\xEAV[a\x06+V[`@\x80Q\x80\x82\x01\x82R`\x05\x81R\x7F0.2.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` \x82\x01R\x90Qa\x01\xA1\x91\x90a\x14\x8FV[a\x01ya\x06\x91V[`3Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a\x02\nV[a\x02\xC2a\x06\xA3V[`@Qa\x01\xA1\x91\x90a\x14\xC2V[a\x01ya\x02\xDD6`\x04a\x15\x1CV[a\x06\xB4V[a\x02\n\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[a\x01\x97a\x03\x176`\x04a\x13fV[`f` R`\0\x90\x81R`@\x90 T\x81V[a\x01\xCDa\x0376`\x04a\x13fV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\0\x90\x81R`f` R`@\x90 T\x15\x15\x90V[a\x01ya\x03o6`\x04a\x13fV[a\tvV[a\x01\xCDa\x03\x826`\x04a\x13fV[`g` R`\0\x90\x81R`@\x90 T`\xFF\x16\x81V[a\x01ya\x03\xA56`\x04a\x15\x88V[a\n\x13V[a\x01ya\x03\xB86`\x04a\x13fV[a\n\x87V[a\x03\xC5a\x0B=V[a\x03\xCF`\0a\x0B\xECV[V[a\x03\xD9a\x0B=V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16`\0\x90\x81R`f` R`@\x81 Ua\x04\n`h\x82a\x0CcV[P`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16\x90\x7F\xB6L.G.\xBD\xC8\xF6\x1AvC\x8B\xE3\x07O>8V\x9B.\xBD\x8A\x9C\xC7\x1D\xCC\x9B\x18\x1D\xEF\xD7\x8E\x90`\0\x90\xA2PV[a\x04Wa\r\xD1V[`\0\x82\x82`@Qa\x04i\x92\x91\x90a\x15\xC4V[`@\x80Q\x91\x82\x90\x03\x82 `\0\x81\x81R`e` R\x91\x82 \x80T`\xFF\x19\x16`\x01\x17\x90U\x92P\x82\x91\x7Fi\xD3d\x8E\x0E\xCE\x7F9\xBDT;\xFE\xF3\xC7\x07@\x9F\xD1%Nc\xAC\x99K\xD2\xEF,\xA2Sv2\xD9\x91\x90\xA2PPPV[`\0Ta\x01\0\x90\x04`\xFF\x16\x15\x80\x80\x15a\x04\xD8WP`\0T`\x01`\xFF\x90\x91\x16\x10[\x80a\x04\xF2WP0;\x15\x80\x15a\x04\xF2WP`\0T`\xFF\x16`\x01\x14[a\x05iW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`.`$\x82\x01R\x7FInitializable: contract is alrea`D\x82\x01R\x7Fdy initialized\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01[`@Q\x80\x91\x03\x90\xFD[`\0\x80T`\xFF\x19\x16`\x01\x17\x90U\x80\x15a\x05\xA9W`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\x16a\x01\0\x17\x90U[a\x05\xB1a\x0E^V[a\x05\xBA\x83a\n\x87V[a\x05\xC3\x82a\tvV[\x80\x15a\x06&W`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\xFF\x16\x90U`@Q`\x01\x81R\x7F\x7F&\xB8?\xF9n\x1F+jh/\x138R\xF6y\x8A\t\xC4e\xDA\x95\x92\x14`\xCE\xFB8G@$\x98\x90` \x01`@Q\x80\x91\x03\x90\xA1[PPPV[a\x063a\r\xD1V[`\0\x82\x82`@Qa\x06E\x92\x91\x90a\x15\xC4V[`@\x80Q\x91\x82\x90\x03\x82 `\0\x81\x81R`e` R\x91\x82 \x80T`\xFF\x19\x16\x90U\x92P\x82\x91\x7F\xFBN\x0B\xF7\xDF\xA4\xB0m\x86X|\xDB\x16\x95|\xF9\xFF-p&\xB4\x1E+\r\x81\x99\xFF\\\xAAR\xECN\x91\x90\xA2PPPV[a\x06\x99a\r\xD1V[a\x03\xCF`\0a\x0E\xE3V[``a\x06\xAF`ha\x0FZV[\x90P\x90V[a\x06\xBCa\x0B=V[`@Q\x7Fm\x11K\xE3\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`\0\x90s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x90cm\x11K\xE3\x90a\x07:\x90\x88\x90\x88\x90`\x01\x90\x89\x90\x89\x90`\x04\x01a\x16.V[`\0`@Q\x80\x83\x03\x81`\0\x87Z\xF1\x15\x80\x15a\x07YW=`\0\x80>=`\0\xFD[PPPP`@Q=`\0\x82>`\x1F=\x90\x81\x01`\x1F\x19\x16\x82\x01`@Ra\x07\x81\x91\x90\x81\x01\x90a\x19kV[\x90P`\0\x81Q`\x03\x81\x11\x15a\x07\x98Wa\x07\x98a\x15\xFFV[\x14a\x07\xCFW`@Q\x7FA\xBA\xF0\xEE\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\x01`@Q\x80\x91\x03\x90\xFD[Ba\x0E\x10a\x03\xE8\x83`@\x01Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a\x07\xEF\x91\x90a\x1A\xF3V[a\x07\xF9\x91\x90a\x1B.V[\x11a\x080W`@Q\x7Fik\xBF\x1F\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\x01`@Q\x80\x91\x03\x90\xFD[`\0a\x08?\x82`\xE0\x01Qa\x10/V[`\0\x81\x81R`e` R`@\x90 T\x90\x91P`\xFF\x16a\x08\x8AW`@Q\x7F\xA2O\xB8\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\xC0\x82\x01Q\x80Q`A\x14a\x08\xCAW`@Q\x7F\xA2\xD0\xFE\xE8\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\x01`@Q\x80\x91\x03\x90\xFD[\x80Q\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x01`!\x82\x01 s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16`\0\x90\x81R`f` R`@\x90 \x83\x90U\x80a\t'`h\x82a\x117V[P`@Q\x84\x90s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x16\x90\x7F\xCF\x84\x8CH/\xCFo\xE3\x06xu\xF2a\xB9,\x8F \xA9ue8\xEE\x17\xB8\xEFf\xAD\x0B{\xAE \x8C\x90`\0\x90\xA3PPPPPPPPPV[a\t~a\x0B=V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16a\n\x07W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`/`$\x82\x01R\x7FOwnableManaged: new manager is t`D\x82\x01R\x7Fhe zero address\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x05`V[a\n\x10\x81a\x0B\xECV[PV[a\n\x1Ba\r\xD1V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16`\0\x81\x81R`g` \x90\x81R`@\x91\x82\x90 \x80T`\xFF\x19\x16\x85\x15\x15\x90\x81\x17\x90\x91U\x91Q\x91\x82R\x7F\xFCxX\xEDw\x0F;\xD9\xC1\x95%\xFE\x1D\xE2\xC9L}\x04\x81(\xAD\xE2!\x9D\x82\xB3-\x88\x8AE\xA7\xD2\x91\x01`@Q\x80\x91\x03\x90\xA2PPV[a\n\x8Fa\r\xD1V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16a\x0B\x18W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`-`$\x82\x01R\x7FOwnableManaged: new owner is the`D\x82\x01R\x7F zero address\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x05`V[a\n\x10\x81a\x0E\xE3V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16;\x15\x15\x90V[`3Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x163\x14\x80a\x0BzWP`4Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x163\x14[a\x03\xCFW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`6`$\x82\x01R\x7FOwnableManaged: caller is not th`D\x82\x01R\x7Fe owner or the manager\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x05`V[`4\x80Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x81\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x83\x16\x81\x17\x90\x93U`@Q\x91\x16\x91\x90\x82\x90\x7F\x80\xF1^\x9D\xBC`\x88O\xDBY\xFB\x8E\xD4\xFCH\xA9\xA6\x89\xE0(\xF0U\xE8\x93\xEDE\xCA[\xE6|\\\x85\x90`\0\x90\xA3PPV[c\x97\x8A\xAB\x92`\x04R`\0\x82\x81R`$\x81 s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x92\x90\x92\x16\x91\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x04I\x80%\xAD+@GA\x83\x01a\x0C\xC3Wc\xF5\xA2g\xF1`\0R`\x04`\x1C\xFD[\x82a\x0C\xD5Wh\xFB\xB6\x7F\xDAR\xD4\xBF\xB8\xBF\x92P[\x80Tk\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x80a\rXW`\x01\x93P\x84\x82``\x1C\x03a\r\x13W`\x01\x83\x01\x80T\x84U`\x02\x84\x01\x80T\x90\x91U`\0\x90Ua\r\xC8V[\x84`\x01\x84\x01T``\x1C\x03a\r5W`\x02\x83\x01\x80T`\x01\x85\x01U`\0\x90Ua\r\xC8V[\x84`\x02\x84\x01T``\x1C\x03a\rOW`\0`\x02\x84\x01Ua\r\xC8V[`\0\x93Pa\r\xC8V[\x82` R\x84`\0R`@`\0 \x80T\x80a\rsWPPa\r\xC8V[`\x01\x83`\x01\x1C\x03\x92P\x82`\x01\x82\x03\x14a\r\xABW\x82\x85\x01T``\x1C\x80``\x1B`\x01\x83\x03\x87\x01U`\0\x84\x87\x01U\x80`\0RP\x80`@`\0 U[P`\x01\x82`\x01\x1B\x17\x84T``\x1C``\x1B\x17\x84U`\0\x81UP`\x01\x93P[PPP\x92\x91PPV[`3Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x163\x14a\x03\xCFW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`'`$\x82\x01R\x7FOwnableManaged: caller is not th`D\x82\x01R\x7Fe owner\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`d\x82\x01R`\x84\x01a\x05`V[`\0Ta\x01\0\x90\x04`\xFF\x16a\x0E\xDBW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FInitializable: contract is not i`D\x82\x01R\x7Fnitializing\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x05`V[a\x03\xCFa\x12\xAEV[`3\x80Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x81\x16\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x83\x16\x81\x17\x90\x93U`@Q\x91\x16\x91\x90\x82\x90\x7F\x8B\xE0\x07\x9CS\x16Y\x14\x13D\xCD\x1F\xD0\xA4\xF2\x84\x19I\x7F\x97\"\xA3\xDA\xAF\xE3\xB4\x18okdW\xE0\x90`\0\x90\xA3PPV[c\x97\x8A\xAB\x92`\x04R`\0\x81\x81R`$\x81 ``\x91Ph\xFB\xB6\x7F\xDAR\xD4\xBF\xB8\xBF\x81T\x80`\xA0\x1B`\xA0\x1C`@Q\x94P\x84` \x01\x82``\x1C\x92P\x83\x83\x14\x15\x83\x02\x81R\x81a\x0F\xE9W\x82\x15a\x0F\xE4W`\x01\x91P\x81\x85\x01T``\x1C\x92P\x82\x15a\x0F\xE4W\x82\x84\x14\x15\x90\x92\x02` \x83\x01RP`\x02\x83\x81\x01T``\x1C\x91\x82\x15a\x0F\xE4W`\x03\x91P\x83\x83\x14\x15\x83\x02`@\x82\x01R[a\x10\x19V[`\x01\x91\x82\x1C\x91[\x82\x81\x10\x15a\x10\x17W\x85\x81\x01T``\x1C\x85\x81\x14\x15\x81\x02`\x05\x83\x90\x1B\x84\x01R\x93P`\x01\x01a\x0F\xF0V[P[\x81\x86R\x81`\x05\x1B\x81\x01`@RPPPPP\x91\x90PV[`\0\x80[\x82Q\x81\x10\x15a\x11\x04W\x82\x81\x81Q\x81\x10a\x10NWa\x10Na\x1BFV[` \x02` \x01\x01Q`\0\x01Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\0\x03a\x10\xF2W`\0\x83\x82\x81Q\x81\x10a\x10\x7FWa\x10\x7Fa\x1BFV[` \x02` \x01\x01Q` \x01Q\x90P\x80`\0\x01Q\x81` \x01Q`@Q` \x01a\x10\xD3\x92\x91\x90\x91\x82R\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16` \x82\x01R`0\x01\x90V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 \x92PPP\x91\x90PV[\x80a\x10\xFC\x81a\x1BuV[\x91PPa\x103V[P`@Q\x7F\x85&\x9C=\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\x01`@Q\x80\x91\x03\x90\xFD[c\x97\x8A\xAB\x92`\x04R`\0\x82\x81R`$\x81 s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x92\x90\x92\x16\x91\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x04I\x80%\xAD+@GA\x83\x01a\x11\x97Wc\xF5\xA2g\xF1`\0R`\x04`\x1C\xFD[\x82a\x11\xA9Wh\xFB\xB6\x7F\xDAR\xD4\xBF\xB8\xBF\x92P[\x80Tk\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x82` R\x80a\x12qW\x81``\x1C\x80a\x11\xDCW\x85``\x1B\x84U`\x01\x94PPa\r\xC8V[\x85\x81\x03a\x11\xE9WPa\r\xC8V[`\x01\x84\x01T``\x1C\x80a\x12\nW\x86``\x1B`\x01\x86\x01U`\x01\x95PPPa\r\xC8V[\x86\x81\x03a\x12\x18WPPa\r\xC8V[`\x02\x85\x01T``\x1C\x80a\x12:W\x87``\x1B`\x02\x87\x01U`\x01\x96PPPPa\r\xC8V[\x87\x81\x03a\x12IWPPPa\r\xC8V[`\0\x92\x83R`@\x80\x84 `\x01\x90U\x91\x83R\x81\x83 `\x02\x90U\x82R\x90 `\x03\x90UP`\x07\x90\x81\x17\x90[\x84`\0R`@`\0 \x80Ta\x12\xA4W\x81`\x01\x1C\x91P\x85``\x1B\x82\x85\x01U\x81`\x01\x01\x81U\x82`\x02\x01\x84U`\x01\x94PPa\r\xC8V[PPPP\x92\x91PPV[`\0Ta\x01\0\x90\x04`\xFF\x16a\x13+W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FInitializable: contract is not i`D\x82\x01R\x7Fnitializing\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x05`V[a\x1343a\x0E\xE3V[a\x03\xCF3a\x0B\xECV[\x805s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x13aW`\0\x80\xFD[\x91\x90PV[`\0` \x82\x84\x03\x12\x15a\x13xW`\0\x80\xFD[a\x13\x81\x82a\x13=V[\x93\x92PPPV[`\0` \x82\x84\x03\x12\x15a\x13\x9AW`\0\x80\xFD[P5\x91\x90PV[`\0\x80\x83`\x1F\x84\x01\x12a\x13\xB3W`\0\x80\xFD[P\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x13\xCBW`\0\x80\xFD[` \x83\x01\x91P\x83` \x82\x85\x01\x01\x11\x15a\x13\xE3W`\0\x80\xFD[\x92P\x92\x90PV[`\0\x80` \x83\x85\x03\x12\x15a\x13\xFDW`\0\x80\xFD[\x825g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x14\x14W`\0\x80\xFD[a\x14 \x85\x82\x86\x01a\x13\xA1V[\x90\x96\x90\x95P\x93PPPPV[`\0\x80`@\x83\x85\x03\x12\x15a\x14?W`\0\x80\xFD[a\x14H\x83a\x13=V[\x91Pa\x14V` \x84\x01a\x13=V[\x90P\x92P\x92\x90PV[`\0[\x83\x81\x10\x15a\x14zW\x81\x81\x01Q\x83\x82\x01R` \x01a\x14bV[\x83\x81\x11\x15a\x14\x89W`\0\x84\x84\x01R[PPPPV[` \x81R`\0\x82Q\x80` \x84\x01Ra\x14\xAE\x81`@\x85\x01` \x87\x01a\x14_V[`\x1F\x01`\x1F\x19\x16\x91\x90\x91\x01`@\x01\x92\x91PPV[` \x80\x82R\x82Q\x82\x82\x01\x81\x90R`\0\x91\x90\x84\x82\x01\x90`@\x85\x01\x90\x84[\x81\x81\x10\x15a\x15\x10W\x83Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x83R\x92\x84\x01\x92\x91\x84\x01\x91`\x01\x01a\x14\xDEV[P\x90\x96\x95PPPPPPV[`\0\x80`\0\x80`@\x85\x87\x03\x12\x15a\x152W`\0\x80\xFD[\x845g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x15JW`\0\x80\xFD[a\x15V\x88\x83\x89\x01a\x13\xA1V[\x90\x96P\x94P` \x87\x015\x91P\x80\x82\x11\x15a\x15oW`\0\x80\xFD[Pa\x15|\x87\x82\x88\x01a\x13\xA1V[\x95\x98\x94\x97P\x95PPPPV[`\0\x80`@\x83\x85\x03\x12\x15a\x15\x9BW`\0\x80\xFD[a\x15\xA4\x83a\x13=V[\x91P` \x83\x015\x80\x15\x15\x81\x14a\x15\xB9W`\0\x80\xFD[\x80\x91PP\x92P\x92\x90PV[\x81\x83\x827`\0\x91\x01\x90\x81R\x91\x90PV[\x81\x83R\x81\x81` \x85\x017P`\0` \x82\x84\x01\x01R`\0` `\x1F\x19`\x1F\x84\x01\x16\x84\x01\x01\x90P\x92\x91PPV[\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`!`\x04R`$`\0\xFD[``\x81R`\0a\x16B``\x83\x01\x87\x89a\x15\xD4V[`\x03\x86\x10a\x16yW\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`!`\x04R`$`\0\xFD[\x85` \x84\x01R\x82\x81\x03`@\x84\x01Ra\x16\x92\x81\x85\x87a\x15\xD4V[\x98\x97PPPPPPPPV[\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[`@\x80Q\x90\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a\x16\xF0Wa\x16\xF0a\x16\x9EV[`@R\x90V[`@Qa\x01 \x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a\x16\xF0Wa\x16\xF0a\x16\x9EV[`@Q`\x1F\x82\x01`\x1F\x19\x16\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a\x17CWa\x17Ca\x16\x9EV[`@R\x91\x90PV[\x80Q`\x04\x81\x10a\x13aW`\0\x80\xFD[\x80Q`\xFF\x81\x16\x81\x14a\x13aW`\0\x80\xFD[\x80Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x13aW`\0\x80\xFD[`\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x15a\x17\x9DWa\x17\x9Da\x16\x9EV[P`\x05\x1B` \x01\x90V[`\0\x82`\x1F\x83\x01\x12a\x17\xB8W`\0\x80\xFD[\x81Q` a\x17\xCDa\x17\xC8\x83a\x17\x83V[a\x17\x1AV[\x82\x81R`\x05\x92\x90\x92\x1B\x84\x01\x81\x01\x91\x81\x81\x01\x90\x86\x84\x11\x15a\x17\xECW`\0\x80\xFD[\x82\x86\x01[\x84\x81\x10\x15a\x18\x07W\x80Q\x83R\x91\x83\x01\x91\x83\x01a\x17\xF0V[P\x96\x95PPPPPPV[`\0\x82`\x1F\x83\x01\x12a\x18#W`\0\x80\xFD[\x81Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x18=Wa\x18=a\x16\x9EV[a\x18P` `\x1F\x19`\x1F\x84\x01\x16\x01a\x17\x1AV[\x81\x81R\x84` \x83\x86\x01\x01\x11\x15a\x18eW`\0\x80\xFD[a\x18v\x82` \x83\x01` \x87\x01a\x14_V[\x94\x93PPPPV[`\0\x82`\x1F\x83\x01\x12a\x18\x8FW`\0\x80\xFD[\x81Q` a\x18\x9Fa\x17\xC8\x83a\x17\x83V[\x82\x81R``\x92\x83\x02\x85\x01\x82\x01\x92\x82\x82\x01\x91\x90\x87\x85\x11\x15a\x18\xBEW`\0\x80\xFD[\x83\x87\x01[\x85\x81\x10\x15a\x19^W\x80\x89\x03\x82\x81\x12\x15a\x18\xDBW`\0\x80\x81\xFD[a\x18\xE3a\x16\xCDV[a\x18\xEC\x83a\x17kV[\x81R`@\x80`\x1F\x19\x84\x01\x12\x15a\x19\x02W`\0\x80\x81\xFD[a\x19\na\x16\xCDV[\x84\x89\x01Q\x81R\x90\x84\x01Q\x90\x92P\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81\x16\x81\x14a\x19FW`\0\x80\x81\xFD[\x82\x88\x01R\x80\x87\x01\x91\x90\x91R\x84R\x92\x84\x01\x92\x81\x01a\x18\xC2V[P\x90\x97\x96PPPPPPPV[`\0` \x82\x84\x03\x12\x15a\x19}W`\0\x80\xFD[\x81Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x19\x95W`\0\x80\xFD[\x90\x83\x01\x90a\x01 \x82\x86\x03\x12\x15a\x19\xAAW`\0\x80\xFD[a\x19\xB2a\x16\xF6V[a\x19\xBB\x83a\x17KV[\x81Ra\x19\xC9` \x84\x01a\x17ZV[` \x82\x01Ra\x19\xDA`@\x84\x01a\x17kV[`@\x82\x01R``\x83\x01Q\x82\x81\x11\x15a\x19\xF1W`\0\x80\xFD[a\x19\xFD\x87\x82\x86\x01a\x17\xA7V[``\x83\x01RP`\x80\x83\x01Q\x82\x81\x11\x15a\x1A\x15W`\0\x80\xFD[a\x1A!\x87\x82\x86\x01a\x18\x12V[`\x80\x83\x01RP`\xA0\x83\x01Q\x82\x81\x11\x15a\x1A9W`\0\x80\xFD[a\x1AE\x87\x82\x86\x01a\x18\x12V[`\xA0\x83\x01RP`\xC0\x83\x01Q\x82\x81\x11\x15a\x1A]W`\0\x80\xFD[a\x1Ai\x87\x82\x86\x01a\x18\x12V[`\xC0\x83\x01RP`\xE0\x83\x01Q\x82\x81\x11\x15a\x1A\x81W`\0\x80\xFD[a\x1A\x8D\x87\x82\x86\x01a\x18~V[`\xE0\x83\x01RPa\x01\0\x80\x84\x01Q\x83\x81\x11\x15a\x1A\xA7W`\0\x80\xFD[a\x1A\xB3\x88\x82\x87\x01a\x18\x12V[\x91\x83\x01\x91\x90\x91RP\x95\x94PPPPPV[\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`\x11`\x04R`$`\0\xFD[`\0\x82a\x1B)W\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`\x12`\x04R`$`\0\xFD[P\x04\x90V[`\0\x82\x19\x82\x11\x15a\x1BAWa\x1BAa\x1A\xC4V[P\x01\x90V[\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`2`\x04R`$`\0\xFD[`\0\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x03a\x1B\xA6Wa\x1B\xA6a\x1A\xC4V[P`\x01\x01\x90V\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `AttestationTooOld()` and selector `0x696bbf1f`. +```solidity +error AttestationTooOld(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct AttestationTooOld; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: AttestationTooOld) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for AttestationTooOld { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for AttestationTooOld { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "AttestationTooOld()"; + const SELECTOR: [u8; 4] = [105u8, 107u8, 191u8, 31u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `AttestationVerificationFailed()` and selector `0x41baf0ee`. +```solidity +error AttestationVerificationFailed(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct AttestationVerificationFailed; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: AttestationVerificationFailed) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for AttestationVerificationFailed { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for AttestationVerificationFailed { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "AttestationVerificationFailed()"; + const SELECTOR: [u8; 4] = [65u8, 186u8, 240u8, 238u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidPCR0()` and selector `0xa24fb87f`. +```solidity +error InvalidPCR0(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidPCR0; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InvalidPCR0) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InvalidPCR0 { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidPCR0 { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidPCR0()"; + const SELECTOR: [u8; 4] = [162u8, 79u8, 184u8, 127u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidPublicKey()` and selector `0xa2d0fee8`. +```solidity +error InvalidPublicKey(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidPublicKey; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InvalidPublicKey) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InvalidPublicKey { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidPublicKey { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidPublicKey()"; + const SELECTOR: [u8; 4] = [162u8, 208u8, 254u8, 232u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `PCR0NotFound()` and selector `0x85269c3d`. +```solidity +error PCR0NotFound(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct PCR0NotFound; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: PCR0NotFound) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for PCR0NotFound { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for PCR0NotFound { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "PCR0NotFound()"; + const SELECTOR: [u8; 4] = [133u8, 38u8, 156u8, 61u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `Initialized(uint8)` and selector `0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498`. +```solidity +event Initialized(uint8 version); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct Initialized { + #[allow(missing_docs)] + pub version: u8, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for Initialized { + type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<8>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,); + const SIGNATURE: &'static str = "Initialized(uint8)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 127u8, 38u8, 184u8, 63u8, 249u8, 110u8, 31u8, 43u8, 106u8, 104u8, 47u8, + 19u8, 56u8, 82u8, 246u8, 121u8, 138u8, 9u8, 196u8, 101u8, 218u8, 149u8, + 146u8, 20u8, 96u8, 206u8, 251u8, 56u8, 71u8, 64u8, 36u8, 152u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { version: data.0 } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.version), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(),) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for Initialized { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&Initialized> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &Initialized) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `ManagementTransferred(address,address)` and selector `0x80f15e9dbc60884fdb59fb8ed4fc48a9a689e028f055e893ed45ca5be67c5c85`. +```solidity +event ManagementTransferred(address indexed previousManager, address indexed newManager); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct ManagementTransferred { + #[allow(missing_docs)] + pub previousManager: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub newManager: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for ManagementTransferred { + type DataTuple<'a> = (); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "ManagementTransferred(address,address)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 128u8, 241u8, 94u8, 157u8, 188u8, 96u8, 136u8, 79u8, 219u8, 89u8, 251u8, + 142u8, 212u8, 252u8, 72u8, 169u8, 166u8, 137u8, 224u8, 40u8, 240u8, 85u8, + 232u8, 147u8, 237u8, 69u8, 202u8, 91u8, 230u8, 124u8, 92u8, 133u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + previousManager: topics.1, + newManager: topics.2, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + () + } + #[inline] + fn topics(&self) -> ::RustType { + ( + Self::SIGNATURE_HASH.into(), + self.previousManager.clone(), + self.newManager.clone(), + ) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.previousManager, + ); + out[2usize] = ::encode_topic( + &self.newManager, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for ManagementTransferred { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&ManagementTransferred> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &ManagementTransferred) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `OwnershipTransferred(address,address)` and selector `0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0`. +```solidity +event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct OwnershipTransferred { + #[allow(missing_docs)] + pub previousOwner: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub newOwner: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for OwnershipTransferred { + type DataTuple<'a> = (); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "OwnershipTransferred(address,address)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 139u8, 224u8, 7u8, 156u8, 83u8, 22u8, 89u8, 20u8, 19u8, 68u8, 205u8, + 31u8, 208u8, 164u8, 242u8, 132u8, 25u8, 73u8, 127u8, 151u8, 34u8, 163u8, + 218u8, 175u8, 227u8, 180u8, 24u8, 111u8, 107u8, 100u8, 87u8, 224u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + previousOwner: topics.1, + newOwner: topics.2, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + () + } + #[inline] + fn topics(&self) -> ::RustType { + ( + Self::SIGNATURE_HASH.into(), + self.previousOwner.clone(), + self.newOwner.clone(), + ) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.previousOwner, + ); + out[2usize] = ::encode_topic( + &self.newOwner, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for OwnershipTransferred { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&OwnershipTransferred> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &OwnershipTransferred) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `PCR0Deregistered(bytes32)` and selector `0xfb4e0bf7dfa4b06d86587cdb16957cf9ff2d7026b41e2b0d8199ff5caa52ec4e`. +```solidity +event PCR0Deregistered(bytes32 indexed pcr0Hash); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct PCR0Deregistered { + #[allow(missing_docs)] + pub pcr0Hash: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for PCR0Deregistered { + type DataTuple<'a> = (); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + const SIGNATURE: &'static str = "PCR0Deregistered(bytes32)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 251u8, 78u8, 11u8, 247u8, 223u8, 164u8, 176u8, 109u8, 134u8, 88u8, 124u8, + 219u8, 22u8, 149u8, 124u8, 249u8, 255u8, 45u8, 112u8, 38u8, 180u8, 30u8, + 43u8, 13u8, 129u8, 153u8, 255u8, 92u8, 170u8, 82u8, 236u8, 78u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { pcr0Hash: topics.1 } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + () + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.pcr0Hash.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = as alloy_sol_types::EventTopic>::encode_topic(&self.pcr0Hash); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for PCR0Deregistered { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&PCR0Deregistered> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &PCR0Deregistered) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `PCR0Registered(bytes32)` and selector `0x69d3648e0ece7f39bd543bfef3c707409fd1254e63ac994bd2ef2ca2537632d9`. +```solidity +event PCR0Registered(bytes32 indexed pcr0Hash); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct PCR0Registered { + #[allow(missing_docs)] + pub pcr0Hash: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for PCR0Registered { + type DataTuple<'a> = (); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + const SIGNATURE: &'static str = "PCR0Registered(bytes32)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 105u8, 211u8, 100u8, 142u8, 14u8, 206u8, 127u8, 57u8, 189u8, 84u8, 59u8, + 254u8, 243u8, 199u8, 7u8, 64u8, 159u8, 209u8, 37u8, 78u8, 99u8, 172u8, + 153u8, 75u8, 210u8, 239u8, 44u8, 162u8, 83u8, 118u8, 50u8, 217u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { pcr0Hash: topics.1 } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + () + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.pcr0Hash.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = as alloy_sol_types::EventTopic>::encode_topic(&self.pcr0Hash); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for PCR0Registered { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&PCR0Registered> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &PCR0Registered) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `ProposerSet(address,bool)` and selector `0xfc7858ed770f3bd9c19525fe1de2c94c7d048128ade2219d82b32d888a45a7d2`. +```solidity +event ProposerSet(address indexed proposer, bool isValid); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct ProposerSet { + #[allow(missing_docs)] + pub proposer: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub isValid: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for ProposerSet { + type DataTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "ProposerSet(address,bool)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 252u8, 120u8, 88u8, 237u8, 119u8, 15u8, 59u8, 217u8, 193u8, 149u8, 37u8, + 254u8, 29u8, 226u8, 201u8, 76u8, 125u8, 4u8, 129u8, 40u8, 173u8, 226u8, + 33u8, 157u8, 130u8, 179u8, 45u8, 136u8, 138u8, 69u8, 167u8, 210u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + proposer: topics.1, + isValid: data.0, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + ::tokenize( + &self.isValid, + ), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.proposer.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.proposer, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for ProposerSet { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&ProposerSet> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &ProposerSet) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `SignerDeregistered(address)` and selector `0xb64c2e472ebdc8f61a76438be3074f3e38569b2ebd8a9cc71dcc9b181defd78e`. +```solidity +event SignerDeregistered(address indexed signer); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct SignerDeregistered { + #[allow(missing_docs)] + pub signer: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for SignerDeregistered { + type DataTuple<'a> = (); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "SignerDeregistered(address)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 182u8, 76u8, 46u8, 71u8, 46u8, 189u8, 200u8, 246u8, 26u8, 118u8, 67u8, + 139u8, 227u8, 7u8, 79u8, 62u8, 56u8, 86u8, 155u8, 46u8, 189u8, 138u8, + 156u8, 199u8, 29u8, 204u8, 155u8, 24u8, 29u8, 239u8, 215u8, 142u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { signer: topics.1 } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + () + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.signer.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.signer, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for SignerDeregistered { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&SignerDeregistered> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &SignerDeregistered) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `SignerRegistered(address,bytes32)` and selector `0xcf848c482fcf6fe3067875f261b92c8f20a9756538ee17b8ef66ad0b7bae208c`. +```solidity +event SignerRegistered(address indexed signer, bytes32 indexed pcr0); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct SignerRegistered { + #[allow(missing_docs)] + pub signer: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub pcr0: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for SignerRegistered { + type DataTuple<'a> = (); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + const SIGNATURE: &'static str = "SignerRegistered(address,bytes32)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 207u8, 132u8, 140u8, 72u8, 47u8, 207u8, 111u8, 227u8, 6u8, 120u8, 117u8, + 242u8, 97u8, 185u8, 44u8, 143u8, 32u8, 169u8, 117u8, 101u8, 56u8, 238u8, + 23u8, 184u8, 239u8, 102u8, 173u8, 11u8, 123u8, 174u8, 32u8, 140u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + signer: topics.1, + pcr0: topics.2, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + () + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.signer.clone(), self.pcr0.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.signer, + ); + out[2usize] = as alloy_sol_types::EventTopic>::encode_topic(&self.pcr0); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for SignerRegistered { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&SignerRegistered> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &SignerRegistered) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + /**Constructor`. +```solidity +constructor(address nitroVerifier); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct constructorCall { + #[allow(missing_docs)] + pub nitroVerifier: alloy::sol_types::private::Address, + } + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: constructorCall) -> Self { + (value.nitroVerifier,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for constructorCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { nitroVerifier: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolConstructor for constructorCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.nitroVerifier, + ), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `MAX_AGE()` and selector `0x0dcaeaf2`. +```solidity +function MAX_AGE() external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct MAX_AGECall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`MAX_AGE()`](MAX_AGECall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct MAX_AGEReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: MAX_AGECall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for MAX_AGECall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: MAX_AGEReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for MAX_AGEReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for MAX_AGECall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "MAX_AGE()"; + const SELECTOR: [u8; 4] = [13u8, 202u8, 234u8, 242u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: MAX_AGEReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: MAX_AGEReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `NITRO_VERIFIER()` and selector `0xc80d23f6`. +```solidity +function NITRO_VERIFIER() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct NITRO_VERIFIERCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`NITRO_VERIFIER()`](NITRO_VERIFIERCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct NITRO_VERIFIERReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: NITRO_VERIFIERCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for NITRO_VERIFIERCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: NITRO_VERIFIERReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for NITRO_VERIFIERReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for NITRO_VERIFIERCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "NITRO_VERIFIER()"; + const SELECTOR: [u8; 4] = [200u8, 13u8, 35u8, 246u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: NITRO_VERIFIERReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: NITRO_VERIFIERReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `deregisterPCR0(bytes)` and selector `0x50697a3f`. +```solidity +function deregisterPCR0(bytes memory pcr0) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct deregisterPCR0Call { + #[allow(missing_docs)] + pub pcr0: alloy::sol_types::private::Bytes, + } + ///Container type for the return parameters of the [`deregisterPCR0(bytes)`](deregisterPCR0Call) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct deregisterPCR0Return {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bytes,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Bytes,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: deregisterPCR0Call) -> Self { + (value.pcr0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for deregisterPCR0Call { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { pcr0: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: deregisterPCR0Return) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for deregisterPCR0Return { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl deregisterPCR0Return { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for deregisterPCR0Call { + type Parameters<'a> = (alloy::sol_types::sol_data::Bytes,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = deregisterPCR0Return; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "deregisterPCR0(bytes)"; + const SELECTOR: [u8; 4] = [80u8, 105u8, 122u8, 63u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.pcr0, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + deregisterPCR0Return::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `deregisterSigner(address)` and selector `0x0ba24fe0`. +```solidity +function deregisterSigner(address signer) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct deregisterSignerCall { + #[allow(missing_docs)] + pub signer: alloy::sol_types::private::Address, + } + ///Container type for the return parameters of the [`deregisterSigner(address)`](deregisterSignerCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct deregisterSignerReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: deregisterSignerCall) -> Self { + (value.signer,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for deregisterSignerCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { signer: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: deregisterSignerReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for deregisterSignerReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl deregisterSignerReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for deregisterSignerCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = deregisterSignerReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "deregisterSigner(address)"; + const SELECTOR: [u8; 4] = [11u8, 162u8, 79u8, 224u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.signer, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + deregisterSignerReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `getRegisteredSigners()` and selector `0x94b2822f`. +```solidity +function getRegisteredSigners() external view returns (address[] memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getRegisteredSignersCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`getRegisteredSigners()`](getRegisteredSignersCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct getRegisteredSignersReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Vec, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: getRegisteredSignersCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for getRegisteredSignersCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Array, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Vec, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: getRegisteredSignersReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for getRegisteredSignersReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for getRegisteredSignersCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Vec< + alloy::sol_types::private::Address, + >; + type ReturnTuple<'a> = ( + alloy::sol_types::sol_data::Array, + ); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "getRegisteredSigners()"; + const SELECTOR: [u8; 4] = [148u8, 178u8, 130u8, 47u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: getRegisteredSignersReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: getRegisteredSignersReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `initialize(address,address)` and selector `0x485cc955`. +```solidity +function initialize(address initialOwner, address initialManager) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct initializeCall { + #[allow(missing_docs)] + pub initialOwner: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub initialManager: alloy::sol_types::private::Address, + } + ///Container type for the return parameters of the [`initialize(address,address)`](initializeCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct initializeReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: initializeCall) -> Self { + (value.initialOwner, value.initialManager) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for initializeCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + initialOwner: tuple.0, + initialManager: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: initializeReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for initializeReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl initializeReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for initializeCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = initializeReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "initialize(address,address)"; + const SELECTOR: [u8; 4] = [72u8, 92u8, 201u8, 85u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.initialOwner, + ), + ::tokenize( + &self.initialManager, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + initializeReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `isValidProposer(address)` and selector `0xe8533e29`. +```solidity +function isValidProposer(address) external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct isValidProposerCall(pub alloy::sol_types::private::Address); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`isValidProposer(address)`](isValidProposerCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct isValidProposerReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: isValidProposerCall) -> Self { + (value.0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for isValidProposerCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self(tuple.0) + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: isValidProposerReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for isValidProposerReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for isValidProposerCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "isValidProposer(address)"; + const SELECTOR: [u8; 4] = [232u8, 83u8, 62u8, 41u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.0, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: isValidProposerReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: isValidProposerReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `isValidSigner(address)` and selector `0xd5f50582`. +```solidity +function isValidSigner(address signer) external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct isValidSignerCall { + #[allow(missing_docs)] + pub signer: alloy::sol_types::private::Address, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`isValidSigner(address)`](isValidSignerCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct isValidSignerReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: isValidSignerCall) -> Self { + (value.signer,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for isValidSignerCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { signer: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: isValidSignerReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for isValidSignerReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for isValidSignerCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "isValidSigner(address)"; + const SELECTOR: [u8; 4] = [213u8, 245u8, 5u8, 130u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.signer, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: isValidSignerReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: isValidSignerReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `manager()` and selector `0x481c6a75`. +```solidity +function manager() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct managerCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`manager()`](managerCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct managerReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: managerCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for managerCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: managerReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for managerReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for managerCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "manager()"; + const SELECTOR: [u8; 4] = [72u8, 28u8, 106u8, 117u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: managerReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: managerReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `owner()` and selector `0x8da5cb5b`. +```solidity +function owner() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ownerCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`owner()`](ownerCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ownerReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ownerCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ownerCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ownerReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ownerReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for ownerCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "owner()"; + const SELECTOR: [u8; 4] = [141u8, 165u8, 203u8, 91u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: ownerReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: ownerReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `registerPCR0(bytes)` and selector `0x2c68fa02`. +```solidity +function registerPCR0(bytes memory pcr0) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct registerPCR0Call { + #[allow(missing_docs)] + pub pcr0: alloy::sol_types::private::Bytes, + } + ///Container type for the return parameters of the [`registerPCR0(bytes)`](registerPCR0Call) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct registerPCR0Return {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bytes,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Bytes,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: registerPCR0Call) -> Self { + (value.pcr0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for registerPCR0Call { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { pcr0: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: registerPCR0Return) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for registerPCR0Return { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl registerPCR0Return { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for registerPCR0Call { + type Parameters<'a> = (alloy::sol_types::sol_data::Bytes,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = registerPCR0Return; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "registerPCR0(bytes)"; + const SELECTOR: [u8; 4] = [44u8, 104u8, 250u8, 2u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.pcr0, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + registerPCR0Return::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `registerSigner(bytes,bytes)` and selector `0xba58e82a`. +```solidity +function registerSigner(bytes memory output, bytes memory proofBytes) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct registerSignerCall { + #[allow(missing_docs)] + pub output: alloy::sol_types::private::Bytes, + #[allow(missing_docs)] + pub proofBytes: alloy::sol_types::private::Bytes, + } + ///Container type for the return parameters of the [`registerSigner(bytes,bytes)`](registerSignerCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct registerSignerReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Bytes, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Bytes, + alloy::sol_types::private::Bytes, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: registerSignerCall) -> Self { + (value.output, value.proofBytes) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for registerSignerCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + output: tuple.0, + proofBytes: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: registerSignerReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for registerSignerReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl registerSignerReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for registerSignerCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Bytes, + alloy::sol_types::sol_data::Bytes, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = registerSignerReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "registerSigner(bytes,bytes)"; + const SELECTOR: [u8; 4] = [186u8, 88u8, 232u8, 42u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.output, + ), + ::tokenize( + &self.proofBytes, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + registerSignerReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `renounceManagement()` and selector `0x089208d8`. +```solidity +function renounceManagement() external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct renounceManagementCall; + ///Container type for the return parameters of the [`renounceManagement()`](renounceManagementCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct renounceManagementReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: renounceManagementCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for renounceManagementCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: renounceManagementReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for renounceManagementReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl renounceManagementReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for renounceManagementCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = renounceManagementReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "renounceManagement()"; + const SELECTOR: [u8; 4] = [8u8, 146u8, 8u8, 216u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + renounceManagementReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `renounceOwnership()` and selector `0x715018a6`. +```solidity +function renounceOwnership() external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct renounceOwnershipCall; + ///Container type for the return parameters of the [`renounceOwnership()`](renounceOwnershipCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct renounceOwnershipReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: renounceOwnershipCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for renounceOwnershipCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: renounceOwnershipReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for renounceOwnershipReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl renounceOwnershipReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for renounceOwnershipCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = renounceOwnershipReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "renounceOwnership()"; + const SELECTOR: [u8; 4] = [113u8, 80u8, 24u8, 166u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + renounceOwnershipReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `setProposer(address,bool)` and selector `0xe9ed9b64`. +```solidity +function setProposer(address proposer, bool isValid) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setProposerCall { + #[allow(missing_docs)] + pub proposer: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub isValid: bool, + } + ///Container type for the return parameters of the [`setProposer(address,bool)`](setProposerCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setProposerReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Bool, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address, bool); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: setProposerCall) -> Self { + (value.proposer, value.isValid) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for setProposerCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + proposer: tuple.0, + isValid: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: setProposerReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for setProposerReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl setProposerReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for setProposerCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Bool, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = setProposerReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "setProposer(address,bool)"; + const SELECTOR: [u8; 4] = [233u8, 237u8, 155u8, 100u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.proposer, + ), + ::tokenize( + &self.isValid, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + setProposerReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `signerPCR0(address)` and selector `0xcb1825e7`. +```solidity +function signerPCR0(address) external view returns (bytes32); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct signerPCR0Call(pub alloy::sol_types::private::Address); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`signerPCR0(address)`](signerPCR0Call) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct signerPCR0Return { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: signerPCR0Call) -> Self { + (value.0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for signerPCR0Call { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self(tuple.0) + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: signerPCR0Return) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for signerPCR0Return { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for signerPCR0Call { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::FixedBytes<32>; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "signerPCR0(address)"; + const SELECTOR: [u8; 4] = [203u8, 24u8, 37u8, 231u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.0, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: signerPCR0Return = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: signerPCR0Return = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `transferManagement(address)` and selector `0xe4edf852`. +```solidity +function transferManagement(address newManager) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct transferManagementCall { + #[allow(missing_docs)] + pub newManager: alloy::sol_types::private::Address, + } + ///Container type for the return parameters of the [`transferManagement(address)`](transferManagementCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct transferManagementReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: transferManagementCall) -> Self { + (value.newManager,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for transferManagementCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { newManager: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: transferManagementReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for transferManagementReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl transferManagementReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for transferManagementCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = transferManagementReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "transferManagement(address)"; + const SELECTOR: [u8; 4] = [228u8, 237u8, 248u8, 82u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.newManager, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + transferManagementReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `transferOwnership(address)` and selector `0xf2fde38b`. +```solidity +function transferOwnership(address newOwner) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct transferOwnershipCall { + #[allow(missing_docs)] + pub newOwner: alloy::sol_types::private::Address, + } + ///Container type for the return parameters of the [`transferOwnership(address)`](transferOwnershipCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct transferOwnershipReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: transferOwnershipCall) -> Self { + (value.newOwner,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for transferOwnershipCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { newOwner: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: transferOwnershipReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for transferOwnershipReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl transferOwnershipReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for transferOwnershipCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = transferOwnershipReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "transferOwnership(address)"; + const SELECTOR: [u8; 4] = [242u8, 253u8, 227u8, 139u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.newOwner, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + transferOwnershipReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `validPCR0s(bytes32)` and selector `0x295840d9`. +```solidity +function validPCR0s(bytes32) external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct validPCR0sCall(pub alloy::sol_types::private::FixedBytes<32>); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`validPCR0s(bytes32)`](validPCR0sCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct validPCR0sReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: validPCR0sCall) -> Self { + (value.0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for validPCR0sCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self(tuple.0) + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: validPCR0sReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for validPCR0sReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for validPCR0sCall { + type Parameters<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "validPCR0s(bytes32)"; + const SELECTOR: [u8; 4] = [41u8, 88u8, 64u8, 217u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.0), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: validPCR0sReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: validPCR0sReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `version()` and selector `0x54fd4d50`. +```solidity +function version() external pure returns (string memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`version()`](versionCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for versionCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::String; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "version()"; + const SELECTOR: [u8; 4] = [84u8, 253u8, 77u8, 80u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + } + }; + ///Container for all the [`TEEProverRegistry`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum TEEProverRegistryCalls { + #[allow(missing_docs)] + MAX_AGE(MAX_AGECall), + #[allow(missing_docs)] + NITRO_VERIFIER(NITRO_VERIFIERCall), + #[allow(missing_docs)] + deregisterPCR0(deregisterPCR0Call), + #[allow(missing_docs)] + deregisterSigner(deregisterSignerCall), + #[allow(missing_docs)] + getRegisteredSigners(getRegisteredSignersCall), + #[allow(missing_docs)] + initialize(initializeCall), + #[allow(missing_docs)] + isValidProposer(isValidProposerCall), + #[allow(missing_docs)] + isValidSigner(isValidSignerCall), + #[allow(missing_docs)] + manager(managerCall), + #[allow(missing_docs)] + owner(ownerCall), + #[allow(missing_docs)] + registerPCR0(registerPCR0Call), + #[allow(missing_docs)] + registerSigner(registerSignerCall), + #[allow(missing_docs)] + renounceManagement(renounceManagementCall), + #[allow(missing_docs)] + renounceOwnership(renounceOwnershipCall), + #[allow(missing_docs)] + setProposer(setProposerCall), + #[allow(missing_docs)] + signerPCR0(signerPCR0Call), + #[allow(missing_docs)] + transferManagement(transferManagementCall), + #[allow(missing_docs)] + transferOwnership(transferOwnershipCall), + #[allow(missing_docs)] + validPCR0s(validPCR0sCall), + #[allow(missing_docs)] + version(versionCall), + } + impl TEEProverRegistryCalls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [8u8, 146u8, 8u8, 216u8], + [11u8, 162u8, 79u8, 224u8], + [13u8, 202u8, 234u8, 242u8], + [41u8, 88u8, 64u8, 217u8], + [44u8, 104u8, 250u8, 2u8], + [72u8, 28u8, 106u8, 117u8], + [72u8, 92u8, 201u8, 85u8], + [80u8, 105u8, 122u8, 63u8], + [84u8, 253u8, 77u8, 80u8], + [113u8, 80u8, 24u8, 166u8], + [141u8, 165u8, 203u8, 91u8], + [148u8, 178u8, 130u8, 47u8], + [186u8, 88u8, 232u8, 42u8], + [200u8, 13u8, 35u8, 246u8], + [203u8, 24u8, 37u8, 231u8], + [213u8, 245u8, 5u8, 130u8], + [228u8, 237u8, 248u8, 82u8], + [232u8, 83u8, 62u8, 41u8], + [233u8, 237u8, 155u8, 100u8], + [242u8, 253u8, 227u8, 139u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(renounceManagement), + ::core::stringify!(deregisterSigner), + ::core::stringify!(MAX_AGE), + ::core::stringify!(validPCR0s), + ::core::stringify!(registerPCR0), + ::core::stringify!(manager), + ::core::stringify!(initialize), + ::core::stringify!(deregisterPCR0), + ::core::stringify!(version), + ::core::stringify!(renounceOwnership), + ::core::stringify!(owner), + ::core::stringify!(getRegisteredSigners), + ::core::stringify!(registerSigner), + ::core::stringify!(NITRO_VERIFIER), + ::core::stringify!(signerPCR0), + ::core::stringify!(isValidSigner), + ::core::stringify!(transferManagement), + ::core::stringify!(isValidProposer), + ::core::stringify!(setProposer), + ::core::stringify!(transferOwnership), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for TEEProverRegistryCalls { + const NAME: &'static str = "TEEProverRegistryCalls"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 20usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::MAX_AGE(_) => ::SELECTOR, + Self::NITRO_VERIFIER(_) => { + ::SELECTOR + } + Self::deregisterPCR0(_) => { + ::SELECTOR + } + Self::deregisterSigner(_) => { + ::SELECTOR + } + Self::getRegisteredSigners(_) => { + ::SELECTOR + } + Self::initialize(_) => { + ::SELECTOR + } + Self::isValidProposer(_) => { + ::SELECTOR + } + Self::isValidSigner(_) => { + ::SELECTOR + } + Self::manager(_) => ::SELECTOR, + Self::owner(_) => ::SELECTOR, + Self::registerPCR0(_) => { + ::SELECTOR + } + Self::registerSigner(_) => { + ::SELECTOR + } + Self::renounceManagement(_) => { + ::SELECTOR + } + Self::renounceOwnership(_) => { + ::SELECTOR + } + Self::setProposer(_) => { + ::SELECTOR + } + Self::signerPCR0(_) => { + ::SELECTOR + } + Self::transferManagement(_) => { + ::SELECTOR + } + Self::transferOwnership(_) => { + ::SELECTOR + } + Self::validPCR0s(_) => { + ::SELECTOR + } + Self::version(_) => ::SELECTOR, + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn renounceManagement( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(TEEProverRegistryCalls::renounceManagement) + } + renounceManagement + }, + { + fn deregisterSigner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(TEEProverRegistryCalls::deregisterSigner) + } + deregisterSigner + }, + { + fn MAX_AGE( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(TEEProverRegistryCalls::MAX_AGE) + } + MAX_AGE + }, + { + fn validPCR0s( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(TEEProverRegistryCalls::validPCR0s) + } + validPCR0s + }, + { + fn registerPCR0( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(TEEProverRegistryCalls::registerPCR0) + } + registerPCR0 + }, + { + fn manager( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(TEEProverRegistryCalls::manager) + } + manager + }, + { + fn initialize( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(TEEProverRegistryCalls::initialize) + } + initialize + }, + { + fn deregisterPCR0( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(TEEProverRegistryCalls::deregisterPCR0) + } + deregisterPCR0 + }, + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(TEEProverRegistryCalls::version) + } + version + }, + { + fn renounceOwnership( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(TEEProverRegistryCalls::renounceOwnership) + } + renounceOwnership + }, + { + fn owner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(TEEProverRegistryCalls::owner) + } + owner + }, + { + fn getRegisteredSigners( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(TEEProverRegistryCalls::getRegisteredSigners) + } + getRegisteredSigners + }, + { + fn registerSigner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(TEEProverRegistryCalls::registerSigner) + } + registerSigner + }, + { + fn NITRO_VERIFIER( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(TEEProverRegistryCalls::NITRO_VERIFIER) + } + NITRO_VERIFIER + }, + { + fn signerPCR0( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(TEEProverRegistryCalls::signerPCR0) + } + signerPCR0 + }, + { + fn isValidSigner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(TEEProverRegistryCalls::isValidSigner) + } + isValidSigner + }, + { + fn transferManagement( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(TEEProverRegistryCalls::transferManagement) + } + transferManagement + }, + { + fn isValidProposer( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(TEEProverRegistryCalls::isValidProposer) + } + isValidProposer + }, + { + fn setProposer( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(TEEProverRegistryCalls::setProposer) + } + setProposer + }, + { + fn transferOwnership( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(TEEProverRegistryCalls::transferOwnership) + } + transferOwnership + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn renounceManagement( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(TEEProverRegistryCalls::renounceManagement) + } + renounceManagement + }, + { + fn deregisterSigner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(TEEProverRegistryCalls::deregisterSigner) + } + deregisterSigner + }, + { + fn MAX_AGE( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(TEEProverRegistryCalls::MAX_AGE) + } + MAX_AGE + }, + { + fn validPCR0s( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(TEEProverRegistryCalls::validPCR0s) + } + validPCR0s + }, + { + fn registerPCR0( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(TEEProverRegistryCalls::registerPCR0) + } + registerPCR0 + }, + { + fn manager( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(TEEProverRegistryCalls::manager) + } + manager + }, + { + fn initialize( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(TEEProverRegistryCalls::initialize) + } + initialize + }, + { + fn deregisterPCR0( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(TEEProverRegistryCalls::deregisterPCR0) + } + deregisterPCR0 + }, + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(TEEProverRegistryCalls::version) + } + version + }, + { + fn renounceOwnership( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(TEEProverRegistryCalls::renounceOwnership) + } + renounceOwnership + }, + { + fn owner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(TEEProverRegistryCalls::owner) + } + owner + }, + { + fn getRegisteredSigners( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(TEEProverRegistryCalls::getRegisteredSigners) + } + getRegisteredSigners + }, + { + fn registerSigner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(TEEProverRegistryCalls::registerSigner) + } + registerSigner + }, + { + fn NITRO_VERIFIER( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(TEEProverRegistryCalls::NITRO_VERIFIER) + } + NITRO_VERIFIER + }, + { + fn signerPCR0( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(TEEProverRegistryCalls::signerPCR0) + } + signerPCR0 + }, + { + fn isValidSigner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(TEEProverRegistryCalls::isValidSigner) + } + isValidSigner + }, + { + fn transferManagement( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(TEEProverRegistryCalls::transferManagement) + } + transferManagement + }, + { + fn isValidProposer( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(TEEProverRegistryCalls::isValidProposer) + } + isValidProposer + }, + { + fn setProposer( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(TEEProverRegistryCalls::setProposer) + } + setProposer + }, + { + fn transferOwnership( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(TEEProverRegistryCalls::transferOwnership) + } + transferOwnership + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::MAX_AGE(inner) => { + ::abi_encoded_size(inner) + } + Self::NITRO_VERIFIER(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::deregisterPCR0(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::deregisterSigner(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::getRegisteredSigners(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::initialize(inner) => { + ::abi_encoded_size(inner) + } + Self::isValidProposer(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::isValidSigner(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::manager(inner) => { + ::abi_encoded_size(inner) + } + Self::owner(inner) => { + ::abi_encoded_size(inner) + } + Self::registerPCR0(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::registerSigner(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::renounceManagement(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::renounceOwnership(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::setProposer(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::signerPCR0(inner) => { + ::abi_encoded_size(inner) + } + Self::transferManagement(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::transferOwnership(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::validPCR0s(inner) => { + ::abi_encoded_size(inner) + } + Self::version(inner) => { + ::abi_encoded_size(inner) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::MAX_AGE(inner) => { + ::abi_encode_raw(inner, out) + } + Self::NITRO_VERIFIER(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::deregisterPCR0(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::deregisterSigner(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::getRegisteredSigners(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::initialize(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::isValidProposer(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::isValidSigner(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::manager(inner) => { + ::abi_encode_raw(inner, out) + } + Self::owner(inner) => { + ::abi_encode_raw(inner, out) + } + Self::registerPCR0(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::registerSigner(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::renounceManagement(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::renounceOwnership(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::setProposer(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::signerPCR0(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::transferManagement(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::transferOwnership(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::validPCR0s(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::version(inner) => { + ::abi_encode_raw(inner, out) + } + } + } + } + ///Container for all the [`TEEProverRegistry`](self) custom errors. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum TEEProverRegistryErrors { + #[allow(missing_docs)] + AttestationTooOld(AttestationTooOld), + #[allow(missing_docs)] + AttestationVerificationFailed(AttestationVerificationFailed), + #[allow(missing_docs)] + InvalidPCR0(InvalidPCR0), + #[allow(missing_docs)] + InvalidPublicKey(InvalidPublicKey), + #[allow(missing_docs)] + PCR0NotFound(PCR0NotFound), + } + impl TEEProverRegistryErrors { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [65u8, 186u8, 240u8, 238u8], + [105u8, 107u8, 191u8, 31u8], + [133u8, 38u8, 156u8, 61u8], + [162u8, 79u8, 184u8, 127u8], + [162u8, 208u8, 254u8, 232u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(AttestationVerificationFailed), + ::core::stringify!(AttestationTooOld), + ::core::stringify!(PCR0NotFound), + ::core::stringify!(InvalidPCR0), + ::core::stringify!(InvalidPublicKey), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for TEEProverRegistryErrors { + const NAME: &'static str = "TEEProverRegistryErrors"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 5usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::AttestationTooOld(_) => { + ::SELECTOR + } + Self::AttestationVerificationFailed(_) => { + ::SELECTOR + } + Self::InvalidPCR0(_) => { + ::SELECTOR + } + Self::InvalidPublicKey(_) => { + ::SELECTOR + } + Self::PCR0NotFound(_) => { + ::SELECTOR + } + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn AttestationVerificationFailed( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(TEEProverRegistryErrors::AttestationVerificationFailed) + } + AttestationVerificationFailed + }, + { + fn AttestationTooOld( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(TEEProverRegistryErrors::AttestationTooOld) + } + AttestationTooOld + }, + { + fn PCR0NotFound( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(TEEProverRegistryErrors::PCR0NotFound) + } + PCR0NotFound + }, + { + fn InvalidPCR0( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(TEEProverRegistryErrors::InvalidPCR0) + } + InvalidPCR0 + }, + { + fn InvalidPublicKey( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(TEEProverRegistryErrors::InvalidPublicKey) + } + InvalidPublicKey + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn AttestationVerificationFailed( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(TEEProverRegistryErrors::AttestationVerificationFailed) + } + AttestationVerificationFailed + }, + { + fn AttestationTooOld( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(TEEProverRegistryErrors::AttestationTooOld) + } + AttestationTooOld + }, + { + fn PCR0NotFound( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(TEEProverRegistryErrors::PCR0NotFound) + } + PCR0NotFound + }, + { + fn InvalidPCR0( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(TEEProverRegistryErrors::InvalidPCR0) + } + InvalidPCR0 + }, + { + fn InvalidPublicKey( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(TEEProverRegistryErrors::InvalidPublicKey) + } + InvalidPublicKey + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::AttestationTooOld(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::AttestationVerificationFailed(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::InvalidPCR0(inner) => { + ::abi_encoded_size(inner) + } + Self::InvalidPublicKey(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::PCR0NotFound(inner) => { + ::abi_encoded_size(inner) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::AttestationTooOld(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::AttestationVerificationFailed(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidPCR0(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidPublicKey(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::PCR0NotFound(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + } + } + } + ///Container for all the [`TEEProverRegistry`](self) events. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum TEEProverRegistryEvents { + #[allow(missing_docs)] + Initialized(Initialized), + #[allow(missing_docs)] + ManagementTransferred(ManagementTransferred), + #[allow(missing_docs)] + OwnershipTransferred(OwnershipTransferred), + #[allow(missing_docs)] + PCR0Deregistered(PCR0Deregistered), + #[allow(missing_docs)] + PCR0Registered(PCR0Registered), + #[allow(missing_docs)] + ProposerSet(ProposerSet), + #[allow(missing_docs)] + SignerDeregistered(SignerDeregistered), + #[allow(missing_docs)] + SignerRegistered(SignerRegistered), + } + impl TEEProverRegistryEvents { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 32usize]] = &[ + [ + 105u8, 211u8, 100u8, 142u8, 14u8, 206u8, 127u8, 57u8, 189u8, 84u8, 59u8, + 254u8, 243u8, 199u8, 7u8, 64u8, 159u8, 209u8, 37u8, 78u8, 99u8, 172u8, + 153u8, 75u8, 210u8, 239u8, 44u8, 162u8, 83u8, 118u8, 50u8, 217u8, + ], + [ + 127u8, 38u8, 184u8, 63u8, 249u8, 110u8, 31u8, 43u8, 106u8, 104u8, 47u8, + 19u8, 56u8, 82u8, 246u8, 121u8, 138u8, 9u8, 196u8, 101u8, 218u8, 149u8, + 146u8, 20u8, 96u8, 206u8, 251u8, 56u8, 71u8, 64u8, 36u8, 152u8, + ], + [ + 128u8, 241u8, 94u8, 157u8, 188u8, 96u8, 136u8, 79u8, 219u8, 89u8, 251u8, + 142u8, 212u8, 252u8, 72u8, 169u8, 166u8, 137u8, 224u8, 40u8, 240u8, 85u8, + 232u8, 147u8, 237u8, 69u8, 202u8, 91u8, 230u8, 124u8, 92u8, 133u8, + ], + [ + 139u8, 224u8, 7u8, 156u8, 83u8, 22u8, 89u8, 20u8, 19u8, 68u8, 205u8, + 31u8, 208u8, 164u8, 242u8, 132u8, 25u8, 73u8, 127u8, 151u8, 34u8, 163u8, + 218u8, 175u8, 227u8, 180u8, 24u8, 111u8, 107u8, 100u8, 87u8, 224u8, + ], + [ + 182u8, 76u8, 46u8, 71u8, 46u8, 189u8, 200u8, 246u8, 26u8, 118u8, 67u8, + 139u8, 227u8, 7u8, 79u8, 62u8, 56u8, 86u8, 155u8, 46u8, 189u8, 138u8, + 156u8, 199u8, 29u8, 204u8, 155u8, 24u8, 29u8, 239u8, 215u8, 142u8, + ], + [ + 207u8, 132u8, 140u8, 72u8, 47u8, 207u8, 111u8, 227u8, 6u8, 120u8, 117u8, + 242u8, 97u8, 185u8, 44u8, 143u8, 32u8, 169u8, 117u8, 101u8, 56u8, 238u8, + 23u8, 184u8, 239u8, 102u8, 173u8, 11u8, 123u8, 174u8, 32u8, 140u8, + ], + [ + 251u8, 78u8, 11u8, 247u8, 223u8, 164u8, 176u8, 109u8, 134u8, 88u8, 124u8, + 219u8, 22u8, 149u8, 124u8, 249u8, 255u8, 45u8, 112u8, 38u8, 180u8, 30u8, + 43u8, 13u8, 129u8, 153u8, 255u8, 92u8, 170u8, 82u8, 236u8, 78u8, + ], + [ + 252u8, 120u8, 88u8, 237u8, 119u8, 15u8, 59u8, 217u8, 193u8, 149u8, 37u8, + 254u8, 29u8, 226u8, 201u8, 76u8, 125u8, 4u8, 129u8, 40u8, 173u8, 226u8, + 33u8, 157u8, 130u8, 179u8, 45u8, 136u8, 138u8, 69u8, 167u8, 210u8, + ], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(PCR0Registered), + ::core::stringify!(Initialized), + ::core::stringify!(ManagementTransferred), + ::core::stringify!(OwnershipTransferred), + ::core::stringify!(SignerDeregistered), + ::core::stringify!(SignerRegistered), + ::core::stringify!(PCR0Deregistered), + ::core::stringify!(ProposerSet), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolEventInterface for TEEProverRegistryEvents { + const NAME: &'static str = "TEEProverRegistryEvents"; + const COUNT: usize = 8usize; + fn decode_raw_log( + topics: &[alloy_sol_types::Word], + data: &[u8], + ) -> alloy_sol_types::Result { + match topics.first().copied() { + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::Initialized) + } + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::ManagementTransferred) + } + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::OwnershipTransferred) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::PCR0Deregistered) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::PCR0Registered) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::ProposerSet) + } + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::SignerDeregistered) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::SignerRegistered) + } + _ => { + alloy_sol_types::private::Err(alloy_sol_types::Error::InvalidLog { + name: ::NAME, + log: alloy_sol_types::private::Box::new( + alloy_sol_types::private::LogData::new_unchecked( + topics.to_vec(), + data.to_vec().into(), + ), + ), + }) + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for TEEProverRegistryEvents { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + match self { + Self::Initialized(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::ManagementTransferred(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::OwnershipTransferred(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::PCR0Deregistered(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::PCR0Registered(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::ProposerSet(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::SignerDeregistered(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::SignerRegistered(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + } + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + match self { + Self::Initialized(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::ManagementTransferred(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::OwnershipTransferred(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::PCR0Deregistered(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::PCR0Registered(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::ProposerSet(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::SignerDeregistered(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::SignerRegistered(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`TEEProverRegistry`](self) contract instance. + +See the [wrapper's documentation](`TEEProverRegistryInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> TEEProverRegistryInstance { + TEEProverRegistryInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + nitroVerifier: alloy::sol_types::private::Address, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + TEEProverRegistryInstance::::deploy(__provider, nitroVerifier) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + nitroVerifier: alloy::sol_types::private::Address, + ) -> alloy_contract::RawCallBuilder { + TEEProverRegistryInstance::::deploy_builder(__provider, nitroVerifier) + } + /**A [`TEEProverRegistry`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`TEEProverRegistry`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct TEEProverRegistryInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for TEEProverRegistryInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("TEEProverRegistryInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > TEEProverRegistryInstance { + /**Creates a new wrapper around an on-chain [`TEEProverRegistry`](self) contract instance. + +See the [wrapper's documentation](`TEEProverRegistryInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + nitroVerifier: alloy::sol_types::private::Address, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider, nitroVerifier); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder( + __provider: P, + nitroVerifier: alloy::sol_types::private::Address, + ) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + [ + &BYTECODE[..], + &alloy_sol_types::SolConstructor::abi_encode( + &constructorCall { nitroVerifier }, + )[..], + ] + .concat() + .into(), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl TEEProverRegistryInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> TEEProverRegistryInstance { + TEEProverRegistryInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > TEEProverRegistryInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`MAX_AGE`] function. + pub fn MAX_AGE(&self) -> alloy_contract::SolCallBuilder<&P, MAX_AGECall, N> { + self.call_builder(&MAX_AGECall) + } + ///Creates a new call builder for the [`NITRO_VERIFIER`] function. + pub fn NITRO_VERIFIER( + &self, + ) -> alloy_contract::SolCallBuilder<&P, NITRO_VERIFIERCall, N> { + self.call_builder(&NITRO_VERIFIERCall) + } + ///Creates a new call builder for the [`deregisterPCR0`] function. + pub fn deregisterPCR0( + &self, + pcr0: alloy::sol_types::private::Bytes, + ) -> alloy_contract::SolCallBuilder<&P, deregisterPCR0Call, N> { + self.call_builder(&deregisterPCR0Call { pcr0 }) + } + ///Creates a new call builder for the [`deregisterSigner`] function. + pub fn deregisterSigner( + &self, + signer: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, deregisterSignerCall, N> { + self.call_builder(&deregisterSignerCall { signer }) + } + ///Creates a new call builder for the [`getRegisteredSigners`] function. + pub fn getRegisteredSigners( + &self, + ) -> alloy_contract::SolCallBuilder<&P, getRegisteredSignersCall, N> { + self.call_builder(&getRegisteredSignersCall) + } + ///Creates a new call builder for the [`initialize`] function. + pub fn initialize( + &self, + initialOwner: alloy::sol_types::private::Address, + initialManager: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, initializeCall, N> { + self.call_builder( + &initializeCall { + initialOwner, + initialManager, + }, + ) + } + ///Creates a new call builder for the [`isValidProposer`] function. + pub fn isValidProposer( + &self, + _0: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, isValidProposerCall, N> { + self.call_builder(&isValidProposerCall(_0)) + } + ///Creates a new call builder for the [`isValidSigner`] function. + pub fn isValidSigner( + &self, + signer: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, isValidSignerCall, N> { + self.call_builder(&isValidSignerCall { signer }) + } + ///Creates a new call builder for the [`manager`] function. + pub fn manager(&self) -> alloy_contract::SolCallBuilder<&P, managerCall, N> { + self.call_builder(&managerCall) + } + ///Creates a new call builder for the [`owner`] function. + pub fn owner(&self) -> alloy_contract::SolCallBuilder<&P, ownerCall, N> { + self.call_builder(&ownerCall) + } + ///Creates a new call builder for the [`registerPCR0`] function. + pub fn registerPCR0( + &self, + pcr0: alloy::sol_types::private::Bytes, + ) -> alloy_contract::SolCallBuilder<&P, registerPCR0Call, N> { + self.call_builder(®isterPCR0Call { pcr0 }) + } + ///Creates a new call builder for the [`registerSigner`] function. + pub fn registerSigner( + &self, + output: alloy::sol_types::private::Bytes, + proofBytes: alloy::sol_types::private::Bytes, + ) -> alloy_contract::SolCallBuilder<&P, registerSignerCall, N> { + self.call_builder( + ®isterSignerCall { + output, + proofBytes, + }, + ) + } + ///Creates a new call builder for the [`renounceManagement`] function. + pub fn renounceManagement( + &self, + ) -> alloy_contract::SolCallBuilder<&P, renounceManagementCall, N> { + self.call_builder(&renounceManagementCall) + } + ///Creates a new call builder for the [`renounceOwnership`] function. + pub fn renounceOwnership( + &self, + ) -> alloy_contract::SolCallBuilder<&P, renounceOwnershipCall, N> { + self.call_builder(&renounceOwnershipCall) + } + ///Creates a new call builder for the [`setProposer`] function. + pub fn setProposer( + &self, + proposer: alloy::sol_types::private::Address, + isValid: bool, + ) -> alloy_contract::SolCallBuilder<&P, setProposerCall, N> { + self.call_builder( + &setProposerCall { + proposer, + isValid, + }, + ) + } + ///Creates a new call builder for the [`signerPCR0`] function. + pub fn signerPCR0( + &self, + _0: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, signerPCR0Call, N> { + self.call_builder(&signerPCR0Call(_0)) + } + ///Creates a new call builder for the [`transferManagement`] function. + pub fn transferManagement( + &self, + newManager: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, transferManagementCall, N> { + self.call_builder( + &transferManagementCall { + newManager, + }, + ) + } + ///Creates a new call builder for the [`transferOwnership`] function. + pub fn transferOwnership( + &self, + newOwner: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, transferOwnershipCall, N> { + self.call_builder(&transferOwnershipCall { newOwner }) + } + ///Creates a new call builder for the [`validPCR0s`] function. + pub fn validPCR0s( + &self, + _0: alloy::sol_types::private::FixedBytes<32>, + ) -> alloy_contract::SolCallBuilder<&P, validPCR0sCall, N> { + self.call_builder(&validPCR0sCall(_0)) + } + ///Creates a new call builder for the [`version`] function. + pub fn version(&self) -> alloy_contract::SolCallBuilder<&P, versionCall, N> { + self.call_builder(&versionCall) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > TEEProverRegistryInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + ///Creates a new event filter for the [`Initialized`] event. + pub fn Initialized_filter(&self) -> alloy_contract::Event<&P, Initialized, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`ManagementTransferred`] event. + pub fn ManagementTransferred_filter( + &self, + ) -> alloy_contract::Event<&P, ManagementTransferred, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`OwnershipTransferred`] event. + pub fn OwnershipTransferred_filter( + &self, + ) -> alloy_contract::Event<&P, OwnershipTransferred, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`PCR0Deregistered`] event. + pub fn PCR0Deregistered_filter( + &self, + ) -> alloy_contract::Event<&P, PCR0Deregistered, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`PCR0Registered`] event. + pub fn PCR0Registered_filter( + &self, + ) -> alloy_contract::Event<&P, PCR0Registered, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`ProposerSet`] event. + pub fn ProposerSet_filter(&self) -> alloy_contract::Event<&P, ProposerSet, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`SignerDeregistered`] event. + pub fn SignerDeregistered_filter( + &self, + ) -> alloy_contract::Event<&P, SignerDeregistered, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`SignerRegistered`] event. + pub fn SignerRegistered_filter( + &self, + ) -> alloy_contract::Event<&P, SignerRegistered, N> { + self.event_filter::() + } + } +} diff --git a/bindings/rust/src/tee_verifier.rs b/bindings/rust/src/tee_verifier.rs new file mode 100644 index 000000000..70890ca7f --- /dev/null +++ b/bindings/rust/src/tee_verifier.rs @@ -0,0 +1,2712 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface TEEVerifier { + error ImageIdMismatch(bytes32 signerPCR0, bytes32 claimedImageId); + error InvalidProofFormat(); + error InvalidProposer(address proposer); + error InvalidSignature(); + error InvalidSigner(address signer); + error NotProperGame(); + error Nullified(); + + constructor(address teeProverRegistry, address anchorStateRegistry); + + function ANCHOR_STATE_REGISTRY() external view returns (address); + function TEE_PROVER_REGISTRY() external view returns (address); + function nullified() external view returns (bool); + function nullify() external; + function verify(bytes memory proofBytes, bytes32 imageId, bytes32 journal) external view returns (bool); + function version() external pure returns (string memory); +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "constructor", + "inputs": [ + { + "name": "teeProverRegistry", + "type": "address", + "internalType": "contract TEEProverRegistry" + }, + { + "name": "anchorStateRegistry", + "type": "address", + "internalType": "contract IAnchorStateRegistry" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "ANCHOR_STATE_REGISTRY", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract IAnchorStateRegistry" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "TEE_PROVER_REGISTRY", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract TEEProverRegistry" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "nullified", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "nullify", + "inputs": [], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "verify", + "inputs": [ + { + "name": "proofBytes", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "imageId", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "journal", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "version", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "pure" + }, + { + "type": "error", + "name": "ImageIdMismatch", + "inputs": [ + { + "name": "signerPCR0", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "claimedImageId", + "type": "bytes32", + "internalType": "bytes32" + } + ] + }, + { + "type": "error", + "name": "InvalidProofFormat", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidProposer", + "inputs": [ + { + "name": "proposer", + "type": "address", + "internalType": "address" + } + ] + }, + { + "type": "error", + "name": "InvalidSignature", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidSigner", + "inputs": [ + { + "name": "signer", + "type": "address", + "internalType": "address" + } + ] + }, + { + "type": "error", + "name": "NotProperGame", + "inputs": [] + }, + { + "type": "error", + "name": "Nullified", + "inputs": [] + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod TEEVerifier { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x60c060405234801561001057600080fd5b50604051610ae3380380610ae383398101604081905261002f9161005e565b6001600160a01b039081166080521660a052610098565b6001600160a01b038116811461005b57600080fd5b50565b6000806040838503121561007157600080fd5b825161007c81610046565b602084015190925061008d81610046565b809150509250929050565b60805160a051610a0b6100d860003960008181607c015281816102eb01526103f101526000818161010c0152818161053101526105e60152610a0b6000f3fe608060405234801561001057600080fd5b50600436106100725760003560e01c8063ab750e7511610050578063ab750e751461012e578063ece20f3614610151578063f9df65eb1461015b57600080fd5b806318efb9c21461007757806354fd4d50146100c85780635e02132e14610107575b600080fd5b61009e7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b604080518082018252600581527f302e312e30000000000000000000000000000000000000000000000000000000602082015290516100bf9190610829565b61009e7f000000000000000000000000000000000000000000000000000000000000000081565b61014161013c36600461089c565b610168565b60405190151581526020016100bf565b610159610503565b005b6000546101419060ff1681565b6000805460ff16156101a6576040517fbcf3e86400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60558410156101e1576040517f5a1c353a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006101f0601482878961091b565b6101f991610945565b60601c905036600061020f60556014898b61091b565b915091506000806102568785858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506106cc92505050565b9092509050600081600481111561026f5761026f61098d565b146102a6576040517f8baa579f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517fe8533e2900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff86811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063e8533e2990602401602060405180830381865afa158015610332573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061035691906109bc565b6103a9576040517f77f1708f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff861660048201526024015b60405180910390fd5b6040517fcb1825e700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83811660048301526000917f00000000000000000000000000000000000000000000000000000000000000009091169063cb1825e790602401602060405180830381865afa15801561043a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061045e91906109e5565b9050806104af576040517fbf18af4300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841660048201526024016103a0565b8881146104f2576040517f415e3f9d00000000000000000000000000000000000000000000000000000000815260048101829052602481018a90526044016103a0565b5060019a9950505050505050505050565b6040517f496b9c160000000000000000000000000000000000000000000000000000000081523360048201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063496b9c1690602401602060405180830381865afa15801561058d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105b191906109bc565b158061066857506040517f04e50fed0000000000000000000000000000000000000000000000000000000081523360048201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906304e50fed90602401602060405180830381865afa158015610642573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061066691906109bc565b155b1561069f576040517f7c3e4fdb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055565b60008082516041036107025760208301516040840151606085015160001a6106f687828585610711565b9450945050505061070a565b506000905060025b9250929050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156107485750600090506003610820565b8460ff16601b1415801561076057508460ff16601c14155b156107715750600090506004610820565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156107c5573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff811661081957600060019250925050610820565b9150600090505b94509492505050565b600060208083528351808285015260005b818110156108565785810183015185820160400152820161083a565b81811115610868576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b600080600080606085870312156108b257600080fd5b843567ffffffffffffffff808211156108ca57600080fd5b818701915087601f8301126108de57600080fd5b8135818111156108ed57600080fd5b8860208285010111156108ff57600080fd5b6020928301999098509187013596604001359550909350505050565b6000808585111561092b57600080fd5b8386111561093857600080fd5b5050820193919092039150565b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000081358181169160148510156109855780818660140360031b1b83161692505b505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6000602082840312156109ce57600080fd5b815180151581146109de57600080fd5b9392505050565b6000602082840312156109f757600080fd5b505191905056fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\xC0`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`@Qa\n\xE38\x03\x80a\n\xE3\x839\x81\x01`@\x81\x90Ra\0/\x91a\0^V[`\x01`\x01`\xA0\x1B\x03\x90\x81\x16`\x80R\x16`\xA0Ra\0\x98V[`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a\0[W`\0\x80\xFD[PV[`\0\x80`@\x83\x85\x03\x12\x15a\0qW`\0\x80\xFD[\x82Qa\0|\x81a\0FV[` \x84\x01Q\x90\x92Pa\0\x8D\x81a\0FV[\x80\x91PP\x92P\x92\x90PV[`\x80Q`\xA0Qa\n\x0Ba\0\xD8`\09`\0\x81\x81`|\x01R\x81\x81a\x02\xEB\x01Ra\x03\xF1\x01R`\0\x81\x81a\x01\x0C\x01R\x81\x81a\x051\x01Ra\x05\xE6\x01Ra\n\x0B`\0\xF3\xFE`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`\x046\x10a\0rW`\x005`\xE0\x1C\x80c\xABu\x0Eu\x11a\0PW\x80c\xABu\x0Eu\x14a\x01.W\x80c\xEC\xE2\x0F6\x14a\x01QW\x80c\xF9\xDFe\xEB\x14a\x01[W`\0\x80\xFD[\x80c\x18\xEF\xB9\xC2\x14a\0wW\x80cT\xFDMP\x14a\0\xC8W\x80c^\x02\x13.\x14a\x01\x07W[`\0\x80\xFD[a\0\x9E\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[`@\x80Q\x80\x82\x01\x82R`\x05\x81R\x7F0.1.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` \x82\x01R\x90Qa\0\xBF\x91\x90a\x08)V[a\0\x9E\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[a\x01Aa\x01<6`\x04a\x08\x9CV[a\x01hV[`@Q\x90\x15\x15\x81R` \x01a\0\xBFV[a\x01Ya\x05\x03V[\0[`\0Ta\x01A\x90`\xFF\x16\x81V[`\0\x80T`\xFF\x16\x15a\x01\xA6W`@Q\x7F\xBC\xF3\xE8d\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\x01`@Q\x80\x91\x03\x90\xFD[`U\x84\x10\x15a\x01\xE1W`@Q\x7FZ\x1C5:\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\x01`@Q\x80\x91\x03\x90\xFD[`\0a\x01\xF0`\x14\x82\x87\x89a\t\x1BV[a\x01\xF9\x91a\tEV[``\x1C\x90P6`\0a\x02\x0F`U`\x14\x89\x8Ba\t\x1BV[\x91P\x91P`\0\x80a\x02V\x87\x85\x85\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RPa\x06\xCC\x92PPPV[\x90\x92P\x90P`\0\x81`\x04\x81\x11\x15a\x02oWa\x02oa\t\x8DV[\x14a\x02\xA6W`@Q\x7F\x8B\xAAW\x9F\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\x01`@Q\x80\x91\x03\x90\xFD[`@Q\x7F\xE8S>)\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\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x86\x81\x16`\x04\x83\x01R\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x90c\xE8S>)\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x032W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x03V\x91\x90a\t\xBCV[a\x03\xA9W`@Q\x7Fw\xF1p\x8F\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\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x86\x16`\x04\x82\x01R`$\x01[`@Q\x80\x91\x03\x90\xFD[`@Q\x7F\xCB\x18%\xE7\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\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x81\x16`\x04\x83\x01R`\0\x91\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x91\x16\x90c\xCB\x18%\xE7\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x04:W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x04^\x91\x90a\t\xE5V[\x90P\x80a\x04\xAFW`@Q\x7F\xBF\x18\xAFC\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\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x16`\x04\x82\x01R`$\x01a\x03\xA0V[\x88\x81\x14a\x04\xF2W`@Q\x7FA^?\x9D\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\x81\x01\x82\x90R`$\x81\x01\x8A\x90R`D\x01a\x03\xA0V[P`\x01\x9A\x99PPPPPPPPPPV[`@Q\x7FIk\x9C\x16\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\x81R3`\x04\x82\x01R\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90cIk\x9C\x16\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x05\x8DW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x05\xB1\x91\x90a\t\xBCV[\x15\x80a\x06hWP`@Q\x7F\x04\xE5\x0F\xED\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\x81R3`\x04\x82\x01R\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90c\x04\xE5\x0F\xED\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x06BW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x06f\x91\x90a\t\xBCV[\x15[\x15a\x06\x9FW`@Q\x7F|>O\xDB\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\x01`@Q\x80\x91\x03\x90\xFD[`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x16`\x01\x17\x90UV[`\0\x80\x82Q`A\x03a\x07\x02W` \x83\x01Q`@\x84\x01Q``\x85\x01Q`\0\x1Aa\x06\xF6\x87\x82\x85\x85a\x07\x11V[\x94P\x94PPPPa\x07\nV[P`\0\x90P`\x02[\x92P\x92\x90PV[`\0\x80\x7F\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF]WnsW\xA4P\x1D\xDF\xE9/Fh\x1B \xA0\x83\x11\x15a\x07HWP`\0\x90P`\x03a\x08 V[\x84`\xFF\x16`\x1B\x14\x15\x80\x15a\x07`WP\x84`\xFF\x16`\x1C\x14\x15[\x15a\x07qWP`\0\x90P`\x04a\x08 V[`@\x80Q`\0\x80\x82R` \x82\x01\x80\x84R\x89\x90R`\xFF\x88\x16\x92\x82\x01\x92\x90\x92R``\x81\x01\x86\x90R`\x80\x81\x01\x85\x90R`\x01\x90`\xA0\x01` `@Q` \x81\x03\x90\x80\x84\x03\x90\x85Z\xFA\x15\x80\x15a\x07\xC5W=`\0\x80>=`\0\xFD[PP`@Q\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x01Q\x91PPs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16a\x08\x19W`\0`\x01\x92P\x92PPa\x08 V[\x91P`\0\x90P[\x94P\x94\x92PPPV[`\0` \x80\x83R\x83Q\x80\x82\x85\x01R`\0[\x81\x81\x10\x15a\x08VW\x85\x81\x01\x83\x01Q\x85\x82\x01`@\x01R\x82\x01a\x08:V[\x81\x81\x11\x15a\x08hW`\0`@\x83\x87\x01\x01R[P`\x1F\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x92\x90\x92\x01`@\x01\x93\x92PPPV[`\0\x80`\0\x80``\x85\x87\x03\x12\x15a\x08\xB2W`\0\x80\xFD[\x845g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x08\xCAW`\0\x80\xFD[\x81\x87\x01\x91P\x87`\x1F\x83\x01\x12a\x08\xDEW`\0\x80\xFD[\x815\x81\x81\x11\x15a\x08\xEDW`\0\x80\xFD[\x88` \x82\x85\x01\x01\x11\x15a\x08\xFFW`\0\x80\xFD[` \x92\x83\x01\x99\x90\x98P\x91\x87\x015\x96`@\x015\x95P\x90\x93PPPPV[`\0\x80\x85\x85\x11\x15a\t+W`\0\x80\xFD[\x83\x86\x11\x15a\t8W`\0\x80\xFD[PP\x82\x01\x93\x91\x90\x92\x03\x91PV[\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\x815\x81\x81\x16\x91`\x14\x85\x10\x15a\t\x85W\x80\x81\x86`\x14\x03`\x03\x1B\x1B\x83\x16\x16\x92P[PP\x92\x91PPV[\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`!`\x04R`$`\0\xFD[`\0` \x82\x84\x03\x12\x15a\t\xCEW`\0\x80\xFD[\x81Q\x80\x15\x15\x81\x14a\t\xDEW`\0\x80\xFD[\x93\x92PPPV[`\0` \x82\x84\x03\x12\x15a\t\xF7W`\0\x80\xFD[PQ\x91\x90PV\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x608060405234801561001057600080fd5b50600436106100725760003560e01c8063ab750e7511610050578063ab750e751461012e578063ece20f3614610151578063f9df65eb1461015b57600080fd5b806318efb9c21461007757806354fd4d50146100c85780635e02132e14610107575b600080fd5b61009e7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b604080518082018252600581527f302e312e30000000000000000000000000000000000000000000000000000000602082015290516100bf9190610829565b61009e7f000000000000000000000000000000000000000000000000000000000000000081565b61014161013c36600461089c565b610168565b60405190151581526020016100bf565b610159610503565b005b6000546101419060ff1681565b6000805460ff16156101a6576040517fbcf3e86400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60558410156101e1576040517f5a1c353a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006101f0601482878961091b565b6101f991610945565b60601c905036600061020f60556014898b61091b565b915091506000806102568785858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506106cc92505050565b9092509050600081600481111561026f5761026f61098d565b146102a6576040517f8baa579f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517fe8533e2900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff86811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063e8533e2990602401602060405180830381865afa158015610332573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061035691906109bc565b6103a9576040517f77f1708f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff861660048201526024015b60405180910390fd5b6040517fcb1825e700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83811660048301526000917f00000000000000000000000000000000000000000000000000000000000000009091169063cb1825e790602401602060405180830381865afa15801561043a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061045e91906109e5565b9050806104af576040517fbf18af4300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841660048201526024016103a0565b8881146104f2576040517f415e3f9d00000000000000000000000000000000000000000000000000000000815260048101829052602481018a90526044016103a0565b5060019a9950505050505050505050565b6040517f496b9c160000000000000000000000000000000000000000000000000000000081523360048201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063496b9c1690602401602060405180830381865afa15801561058d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105b191906109bc565b158061066857506040517f04e50fed0000000000000000000000000000000000000000000000000000000081523360048201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906304e50fed90602401602060405180830381865afa158015610642573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061066691906109bc565b155b1561069f576040517f7c3e4fdb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055565b60008082516041036107025760208301516040840151606085015160001a6106f687828585610711565b9450945050505061070a565b506000905060025b9250929050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156107485750600090506003610820565b8460ff16601b1415801561076057508460ff16601c14155b156107715750600090506004610820565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156107c5573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff811661081957600060019250925050610820565b9150600090505b94509492505050565b600060208083528351808285015260005b818110156108565785810183015185820160400152820161083a565b81811115610868576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b600080600080606085870312156108b257600080fd5b843567ffffffffffffffff808211156108ca57600080fd5b818701915087601f8301126108de57600080fd5b8135818111156108ed57600080fd5b8860208285010111156108ff57600080fd5b6020928301999098509187013596604001359550909350505050565b6000808585111561092b57600080fd5b8386111561093857600080fd5b5050820193919092039150565b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000081358181169160148510156109855780818660140360031b1b83161692505b505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6000602082840312156109ce57600080fd5b815180151581146109de57600080fd5b9392505050565b6000602082840312156109f757600080fd5b505191905056fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`\x046\x10a\0rW`\x005`\xE0\x1C\x80c\xABu\x0Eu\x11a\0PW\x80c\xABu\x0Eu\x14a\x01.W\x80c\xEC\xE2\x0F6\x14a\x01QW\x80c\xF9\xDFe\xEB\x14a\x01[W`\0\x80\xFD[\x80c\x18\xEF\xB9\xC2\x14a\0wW\x80cT\xFDMP\x14a\0\xC8W\x80c^\x02\x13.\x14a\x01\x07W[`\0\x80\xFD[a\0\x9E\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[`@\x80Q\x80\x82\x01\x82R`\x05\x81R\x7F0.1.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` \x82\x01R\x90Qa\0\xBF\x91\x90a\x08)V[a\0\x9E\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[a\x01Aa\x01<6`\x04a\x08\x9CV[a\x01hV[`@Q\x90\x15\x15\x81R` \x01a\0\xBFV[a\x01Ya\x05\x03V[\0[`\0Ta\x01A\x90`\xFF\x16\x81V[`\0\x80T`\xFF\x16\x15a\x01\xA6W`@Q\x7F\xBC\xF3\xE8d\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\x01`@Q\x80\x91\x03\x90\xFD[`U\x84\x10\x15a\x01\xE1W`@Q\x7FZ\x1C5:\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\x01`@Q\x80\x91\x03\x90\xFD[`\0a\x01\xF0`\x14\x82\x87\x89a\t\x1BV[a\x01\xF9\x91a\tEV[``\x1C\x90P6`\0a\x02\x0F`U`\x14\x89\x8Ba\t\x1BV[\x91P\x91P`\0\x80a\x02V\x87\x85\x85\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RPa\x06\xCC\x92PPPV[\x90\x92P\x90P`\0\x81`\x04\x81\x11\x15a\x02oWa\x02oa\t\x8DV[\x14a\x02\xA6W`@Q\x7F\x8B\xAAW\x9F\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\x01`@Q\x80\x91\x03\x90\xFD[`@Q\x7F\xE8S>)\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\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x86\x81\x16`\x04\x83\x01R\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x90c\xE8S>)\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x032W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x03V\x91\x90a\t\xBCV[a\x03\xA9W`@Q\x7Fw\xF1p\x8F\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\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x86\x16`\x04\x82\x01R`$\x01[`@Q\x80\x91\x03\x90\xFD[`@Q\x7F\xCB\x18%\xE7\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\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x81\x16`\x04\x83\x01R`\0\x91\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x91\x16\x90c\xCB\x18%\xE7\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x04:W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x04^\x91\x90a\t\xE5V[\x90P\x80a\x04\xAFW`@Q\x7F\xBF\x18\xAFC\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\x81Rs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x16`\x04\x82\x01R`$\x01a\x03\xA0V[\x88\x81\x14a\x04\xF2W`@Q\x7FA^?\x9D\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\x81\x01\x82\x90R`$\x81\x01\x8A\x90R`D\x01a\x03\xA0V[P`\x01\x9A\x99PPPPPPPPPPV[`@Q\x7FIk\x9C\x16\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\x81R3`\x04\x82\x01R\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90cIk\x9C\x16\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x05\x8DW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x05\xB1\x91\x90a\t\xBCV[\x15\x80a\x06hWP`@Q\x7F\x04\xE5\x0F\xED\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\x81R3`\x04\x82\x01R\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90c\x04\xE5\x0F\xED\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x06BW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x06f\x91\x90a\t\xBCV[\x15[\x15a\x06\x9FW`@Q\x7F|>O\xDB\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\x01`@Q\x80\x91\x03\x90\xFD[`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x16`\x01\x17\x90UV[`\0\x80\x82Q`A\x03a\x07\x02W` \x83\x01Q`@\x84\x01Q``\x85\x01Q`\0\x1Aa\x06\xF6\x87\x82\x85\x85a\x07\x11V[\x94P\x94PPPPa\x07\nV[P`\0\x90P`\x02[\x92P\x92\x90PV[`\0\x80\x7F\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF]WnsW\xA4P\x1D\xDF\xE9/Fh\x1B \xA0\x83\x11\x15a\x07HWP`\0\x90P`\x03a\x08 V[\x84`\xFF\x16`\x1B\x14\x15\x80\x15a\x07`WP\x84`\xFF\x16`\x1C\x14\x15[\x15a\x07qWP`\0\x90P`\x04a\x08 V[`@\x80Q`\0\x80\x82R` \x82\x01\x80\x84R\x89\x90R`\xFF\x88\x16\x92\x82\x01\x92\x90\x92R``\x81\x01\x86\x90R`\x80\x81\x01\x85\x90R`\x01\x90`\xA0\x01` `@Q` \x81\x03\x90\x80\x84\x03\x90\x85Z\xFA\x15\x80\x15a\x07\xC5W=`\0\x80>=`\0\xFD[PP`@Q\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x01Q\x91PPs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16a\x08\x19W`\0`\x01\x92P\x92PPa\x08 V[\x91P`\0\x90P[\x94P\x94\x92PPPV[`\0` \x80\x83R\x83Q\x80\x82\x85\x01R`\0[\x81\x81\x10\x15a\x08VW\x85\x81\x01\x83\x01Q\x85\x82\x01`@\x01R\x82\x01a\x08:V[\x81\x81\x11\x15a\x08hW`\0`@\x83\x87\x01\x01R[P`\x1F\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x92\x90\x92\x01`@\x01\x93\x92PPPV[`\0\x80`\0\x80``\x85\x87\x03\x12\x15a\x08\xB2W`\0\x80\xFD[\x845g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x08\xCAW`\0\x80\xFD[\x81\x87\x01\x91P\x87`\x1F\x83\x01\x12a\x08\xDEW`\0\x80\xFD[\x815\x81\x81\x11\x15a\x08\xEDW`\0\x80\xFD[\x88` \x82\x85\x01\x01\x11\x15a\x08\xFFW`\0\x80\xFD[` \x92\x83\x01\x99\x90\x98P\x91\x87\x015\x96`@\x015\x95P\x90\x93PPPPV[`\0\x80\x85\x85\x11\x15a\t+W`\0\x80\xFD[\x83\x86\x11\x15a\t8W`\0\x80\xFD[PP\x82\x01\x93\x91\x90\x92\x03\x91PV[\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\x815\x81\x81\x16\x91`\x14\x85\x10\x15a\t\x85W\x80\x81\x86`\x14\x03`\x03\x1B\x1B\x83\x16\x16\x92P[PP\x92\x91PPV[\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`!`\x04R`$`\0\xFD[`\0` \x82\x84\x03\x12\x15a\t\xCEW`\0\x80\xFD[\x81Q\x80\x15\x15\x81\x14a\t\xDEW`\0\x80\xFD[\x93\x92PPPV[`\0` \x82\x84\x03\x12\x15a\t\xF7W`\0\x80\xFD[PQ\x91\x90PV\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `ImageIdMismatch(bytes32,bytes32)` and selector `0x415e3f9d`. +```solidity +error ImageIdMismatch(bytes32 signerPCR0, bytes32 claimedImageId); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ImageIdMismatch { + #[allow(missing_docs)] + pub signerPCR0: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub claimedImageId: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::FixedBytes<32>, + alloy::sol_types::private::FixedBytes<32>, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ImageIdMismatch) -> Self { + (value.signerPCR0, value.claimedImageId) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ImageIdMismatch { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + signerPCR0: tuple.0, + claimedImageId: tuple.1, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for ImageIdMismatch { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ImageIdMismatch(bytes32,bytes32)"; + const SELECTOR: [u8; 4] = [65u8, 94u8, 63u8, 157u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.signerPCR0), + as alloy_sol_types::SolType>::tokenize(&self.claimedImageId), + ) + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidProofFormat()` and selector `0x5a1c353a`. +```solidity +error InvalidProofFormat(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidProofFormat; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InvalidProofFormat) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InvalidProofFormat { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidProofFormat { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidProofFormat()"; + const SELECTOR: [u8; 4] = [90u8, 28u8, 53u8, 58u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidProposer(address)` and selector `0x77f1708f`. +```solidity +error InvalidProposer(address proposer); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidProposer { + #[allow(missing_docs)] + pub proposer: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InvalidProposer) -> Self { + (value.proposer,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InvalidProposer { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { proposer: tuple.0 } + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidProposer { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidProposer(address)"; + const SELECTOR: [u8; 4] = [119u8, 241u8, 112u8, 143u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.proposer, + ), + ) + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidSignature()` and selector `0x8baa579f`. +```solidity +error InvalidSignature(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidSignature; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InvalidSignature) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InvalidSignature { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidSignature { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidSignature()"; + const SELECTOR: [u8; 4] = [139u8, 170u8, 87u8, 159u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `InvalidSigner(address)` and selector `0xbf18af43`. +```solidity +error InvalidSigner(address signer); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct InvalidSigner { + #[allow(missing_docs)] + pub signer: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: InvalidSigner) -> Self { + (value.signer,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for InvalidSigner { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { signer: tuple.0 } + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for InvalidSigner { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "InvalidSigner(address)"; + const SELECTOR: [u8; 4] = [191u8, 24u8, 175u8, 67u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.signer, + ), + ) + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `NotProperGame()` and selector `0x7c3e4fdb`. +```solidity +error NotProperGame(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct NotProperGame; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: NotProperGame) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for NotProperGame { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for NotProperGame { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "NotProperGame()"; + const SELECTOR: [u8; 4] = [124u8, 62u8, 79u8, 219u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `Nullified()` and selector `0xbcf3e864`. +```solidity +error Nullified(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct Nullified; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: Nullified) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for Nullified { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for Nullified { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "Nullified()"; + const SELECTOR: [u8; 4] = [188u8, 243u8, 232u8, 100u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + /**Constructor`. +```solidity +constructor(address teeProverRegistry, address anchorStateRegistry); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct constructorCall { + #[allow(missing_docs)] + pub teeProverRegistry: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub anchorStateRegistry: alloy::sol_types::private::Address, + } + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: constructorCall) -> Self { + (value.teeProverRegistry, value.anchorStateRegistry) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for constructorCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + teeProverRegistry: tuple.0, + anchorStateRegistry: tuple.1, + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolConstructor for constructorCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.teeProverRegistry, + ), + ::tokenize( + &self.anchorStateRegistry, + ), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `ANCHOR_STATE_REGISTRY()` and selector `0x5e02132e`. +```solidity +function ANCHOR_STATE_REGISTRY() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ANCHOR_STATE_REGISTRYCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`ANCHOR_STATE_REGISTRY()`](ANCHOR_STATE_REGISTRYCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ANCHOR_STATE_REGISTRYReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: ANCHOR_STATE_REGISTRYCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for ANCHOR_STATE_REGISTRYCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: ANCHOR_STATE_REGISTRYReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for ANCHOR_STATE_REGISTRYReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for ANCHOR_STATE_REGISTRYCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ANCHOR_STATE_REGISTRY()"; + const SELECTOR: [u8; 4] = [94u8, 2u8, 19u8, 46u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: ANCHOR_STATE_REGISTRYReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: ANCHOR_STATE_REGISTRYReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `TEE_PROVER_REGISTRY()` and selector `0x18efb9c2`. +```solidity +function TEE_PROVER_REGISTRY() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct TEE_PROVER_REGISTRYCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`TEE_PROVER_REGISTRY()`](TEE_PROVER_REGISTRYCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct TEE_PROVER_REGISTRYReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: TEE_PROVER_REGISTRYCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for TEE_PROVER_REGISTRYCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: TEE_PROVER_REGISTRYReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for TEE_PROVER_REGISTRYReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for TEE_PROVER_REGISTRYCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "TEE_PROVER_REGISTRY()"; + const SELECTOR: [u8; 4] = [24u8, 239u8, 185u8, 194u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: TEE_PROVER_REGISTRYReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: TEE_PROVER_REGISTRYReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `nullified()` and selector `0xf9df65eb`. +```solidity +function nullified() external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct nullifiedCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`nullified()`](nullifiedCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct nullifiedReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: nullifiedCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for nullifiedCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: nullifiedReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for nullifiedReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for nullifiedCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "nullified()"; + const SELECTOR: [u8; 4] = [249u8, 223u8, 101u8, 235u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: nullifiedReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: nullifiedReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `nullify()` and selector `0xece20f36`. +```solidity +function nullify() external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct nullifyCall; + ///Container type for the return parameters of the [`nullify()`](nullifyCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct nullifyReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: nullifyCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for nullifyCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: nullifyReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for nullifyReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl nullifyReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for nullifyCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = nullifyReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "nullify()"; + const SELECTOR: [u8; 4] = [236u8, 226u8, 15u8, 54u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + nullifyReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `verify(bytes,bytes32,bytes32)` and selector `0xab750e75`. +```solidity +function verify(bytes memory proofBytes, bytes32 imageId, bytes32 journal) external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct verifyCall { + #[allow(missing_docs)] + pub proofBytes: alloy::sol_types::private::Bytes, + #[allow(missing_docs)] + pub imageId: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub journal: alloy::sol_types::private::FixedBytes<32>, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`verify(bytes,bytes32,bytes32)`](verifyCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct verifyReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Bytes, + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Bytes, + alloy::sol_types::private::FixedBytes<32>, + alloy::sol_types::private::FixedBytes<32>, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: verifyCall) -> Self { + (value.proofBytes, value.imageId, value.journal) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for verifyCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + proofBytes: tuple.0, + imageId: tuple.1, + journal: tuple.2, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: verifyReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for verifyReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for verifyCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Bytes, + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "verify(bytes,bytes32,bytes32)"; + const SELECTOR: [u8; 4] = [171u8, 117u8, 14u8, 117u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.proofBytes, + ), + as alloy_sol_types::SolType>::tokenize(&self.imageId), + as alloy_sol_types::SolType>::tokenize(&self.journal), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: verifyReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: verifyReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `version()` and selector `0x54fd4d50`. +```solidity +function version() external pure returns (string memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`version()`](versionCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for versionCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::String; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "version()"; + const SELECTOR: [u8; 4] = [84u8, 253u8, 77u8, 80u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + } + }; + ///Container for all the [`TEEVerifier`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum TEEVerifierCalls { + #[allow(missing_docs)] + ANCHOR_STATE_REGISTRY(ANCHOR_STATE_REGISTRYCall), + #[allow(missing_docs)] + TEE_PROVER_REGISTRY(TEE_PROVER_REGISTRYCall), + #[allow(missing_docs)] + nullified(nullifiedCall), + #[allow(missing_docs)] + nullify(nullifyCall), + #[allow(missing_docs)] + verify(verifyCall), + #[allow(missing_docs)] + version(versionCall), + } + impl TEEVerifierCalls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [24u8, 239u8, 185u8, 194u8], + [84u8, 253u8, 77u8, 80u8], + [94u8, 2u8, 19u8, 46u8], + [171u8, 117u8, 14u8, 117u8], + [236u8, 226u8, 15u8, 54u8], + [249u8, 223u8, 101u8, 235u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(TEE_PROVER_REGISTRY), + ::core::stringify!(version), + ::core::stringify!(ANCHOR_STATE_REGISTRY), + ::core::stringify!(verify), + ::core::stringify!(nullify), + ::core::stringify!(nullified), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for TEEVerifierCalls { + const NAME: &'static str = "TEEVerifierCalls"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 6usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::ANCHOR_STATE_REGISTRY(_) => { + ::SELECTOR + } + Self::TEE_PROVER_REGISTRY(_) => { + ::SELECTOR + } + Self::nullified(_) => { + ::SELECTOR + } + Self::nullify(_) => ::SELECTOR, + Self::verify(_) => ::SELECTOR, + Self::version(_) => ::SELECTOR, + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn TEE_PROVER_REGISTRY( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(TEEVerifierCalls::TEE_PROVER_REGISTRY) + } + TEE_PROVER_REGISTRY + }, + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(TEEVerifierCalls::version) + } + version + }, + { + fn ANCHOR_STATE_REGISTRY( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(TEEVerifierCalls::ANCHOR_STATE_REGISTRY) + } + ANCHOR_STATE_REGISTRY + }, + { + fn verify(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(TEEVerifierCalls::verify) + } + verify + }, + { + fn nullify( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(TEEVerifierCalls::nullify) + } + nullify + }, + { + fn nullified( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(TEEVerifierCalls::nullified) + } + nullified + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn TEE_PROVER_REGISTRY( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(TEEVerifierCalls::TEE_PROVER_REGISTRY) + } + TEE_PROVER_REGISTRY + }, + { + fn version( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(TEEVerifierCalls::version) + } + version + }, + { + fn ANCHOR_STATE_REGISTRY( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(TEEVerifierCalls::ANCHOR_STATE_REGISTRY) + } + ANCHOR_STATE_REGISTRY + }, + { + fn verify(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(TEEVerifierCalls::verify) + } + verify + }, + { + fn nullify( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(TEEVerifierCalls::nullify) + } + nullify + }, + { + fn nullified( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(TEEVerifierCalls::nullified) + } + nullified + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::ANCHOR_STATE_REGISTRY(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::TEE_PROVER_REGISTRY(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::nullified(inner) => { + ::abi_encoded_size(inner) + } + Self::nullify(inner) => { + ::abi_encoded_size(inner) + } + Self::verify(inner) => { + ::abi_encoded_size(inner) + } + Self::version(inner) => { + ::abi_encoded_size(inner) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::ANCHOR_STATE_REGISTRY(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::TEE_PROVER_REGISTRY(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::nullified(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::nullify(inner) => { + ::abi_encode_raw(inner, out) + } + Self::verify(inner) => { + ::abi_encode_raw(inner, out) + } + Self::version(inner) => { + ::abi_encode_raw(inner, out) + } + } + } + } + ///Container for all the [`TEEVerifier`](self) custom errors. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum TEEVerifierErrors { + #[allow(missing_docs)] + ImageIdMismatch(ImageIdMismatch), + #[allow(missing_docs)] + InvalidProofFormat(InvalidProofFormat), + #[allow(missing_docs)] + InvalidProposer(InvalidProposer), + #[allow(missing_docs)] + InvalidSignature(InvalidSignature), + #[allow(missing_docs)] + InvalidSigner(InvalidSigner), + #[allow(missing_docs)] + NotProperGame(NotProperGame), + #[allow(missing_docs)] + Nullified(Nullified), + } + impl TEEVerifierErrors { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [65u8, 94u8, 63u8, 157u8], + [90u8, 28u8, 53u8, 58u8], + [119u8, 241u8, 112u8, 143u8], + [124u8, 62u8, 79u8, 219u8], + [139u8, 170u8, 87u8, 159u8], + [188u8, 243u8, 232u8, 100u8], + [191u8, 24u8, 175u8, 67u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(ImageIdMismatch), + ::core::stringify!(InvalidProofFormat), + ::core::stringify!(InvalidProposer), + ::core::stringify!(NotProperGame), + ::core::stringify!(InvalidSignature), + ::core::stringify!(Nullified), + ::core::stringify!(InvalidSigner), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for TEEVerifierErrors { + const NAME: &'static str = "TEEVerifierErrors"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 7usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::ImageIdMismatch(_) => { + ::SELECTOR + } + Self::InvalidProofFormat(_) => { + ::SELECTOR + } + Self::InvalidProposer(_) => { + ::SELECTOR + } + Self::InvalidSignature(_) => { + ::SELECTOR + } + Self::InvalidSigner(_) => { + ::SELECTOR + } + Self::NotProperGame(_) => { + ::SELECTOR + } + Self::Nullified(_) => ::SELECTOR, + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn ImageIdMismatch( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(TEEVerifierErrors::ImageIdMismatch) + } + ImageIdMismatch + }, + { + fn InvalidProofFormat( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(TEEVerifierErrors::InvalidProofFormat) + } + InvalidProofFormat + }, + { + fn InvalidProposer( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(TEEVerifierErrors::InvalidProposer) + } + InvalidProposer + }, + { + fn NotProperGame( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(TEEVerifierErrors::NotProperGame) + } + NotProperGame + }, + { + fn InvalidSignature( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(TEEVerifierErrors::InvalidSignature) + } + InvalidSignature + }, + { + fn Nullified( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(TEEVerifierErrors::Nullified) + } + Nullified + }, + { + fn InvalidSigner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(TEEVerifierErrors::InvalidSigner) + } + InvalidSigner + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn ImageIdMismatch( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(TEEVerifierErrors::ImageIdMismatch) + } + ImageIdMismatch + }, + { + fn InvalidProofFormat( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(TEEVerifierErrors::InvalidProofFormat) + } + InvalidProofFormat + }, + { + fn InvalidProposer( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(TEEVerifierErrors::InvalidProposer) + } + InvalidProposer + }, + { + fn NotProperGame( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(TEEVerifierErrors::NotProperGame) + } + NotProperGame + }, + { + fn InvalidSignature( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(TEEVerifierErrors::InvalidSignature) + } + InvalidSignature + }, + { + fn Nullified( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(TEEVerifierErrors::Nullified) + } + Nullified + }, + { + fn InvalidSigner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(TEEVerifierErrors::InvalidSigner) + } + InvalidSigner + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::ImageIdMismatch(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::InvalidProofFormat(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::InvalidProposer(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::InvalidSignature(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::InvalidSigner(inner) => { + ::abi_encoded_size(inner) + } + Self::NotProperGame(inner) => { + ::abi_encoded_size(inner) + } + Self::Nullified(inner) => { + ::abi_encoded_size(inner) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::ImageIdMismatch(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidProofFormat(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidProposer(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidSignature(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::InvalidSigner(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::NotProperGame(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::Nullified(inner) => { + ::abi_encode_raw(inner, out) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`TEEVerifier`](self) contract instance. + +See the [wrapper's documentation](`TEEVerifierInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> TEEVerifierInstance { + TEEVerifierInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + teeProverRegistry: alloy::sol_types::private::Address, + anchorStateRegistry: alloy::sol_types::private::Address, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + TEEVerifierInstance::< + P, + N, + >::deploy(__provider, teeProverRegistry, anchorStateRegistry) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + teeProverRegistry: alloy::sol_types::private::Address, + anchorStateRegistry: alloy::sol_types::private::Address, + ) -> alloy_contract::RawCallBuilder { + TEEVerifierInstance::< + P, + N, + >::deploy_builder(__provider, teeProverRegistry, anchorStateRegistry) + } + /**A [`TEEVerifier`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`TEEVerifier`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct TEEVerifierInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for TEEVerifierInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("TEEVerifierInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > TEEVerifierInstance { + /**Creates a new wrapper around an on-chain [`TEEVerifier`](self) contract instance. + +See the [wrapper's documentation](`TEEVerifierInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + teeProverRegistry: alloy::sol_types::private::Address, + anchorStateRegistry: alloy::sol_types::private::Address, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder( + __provider, + teeProverRegistry, + anchorStateRegistry, + ); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder( + __provider: P, + teeProverRegistry: alloy::sol_types::private::Address, + anchorStateRegistry: alloy::sol_types::private::Address, + ) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + [ + &BYTECODE[..], + &alloy_sol_types::SolConstructor::abi_encode( + &constructorCall { + teeProverRegistry, + anchorStateRegistry, + }, + )[..], + ] + .concat() + .into(), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl TEEVerifierInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> TEEVerifierInstance { + TEEVerifierInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > TEEVerifierInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`ANCHOR_STATE_REGISTRY`] function. + pub fn ANCHOR_STATE_REGISTRY( + &self, + ) -> alloy_contract::SolCallBuilder<&P, ANCHOR_STATE_REGISTRYCall, N> { + self.call_builder(&ANCHOR_STATE_REGISTRYCall) + } + ///Creates a new call builder for the [`TEE_PROVER_REGISTRY`] function. + pub fn TEE_PROVER_REGISTRY( + &self, + ) -> alloy_contract::SolCallBuilder<&P, TEE_PROVER_REGISTRYCall, N> { + self.call_builder(&TEE_PROVER_REGISTRYCall) + } + ///Creates a new call builder for the [`nullified`] function. + pub fn nullified(&self) -> alloy_contract::SolCallBuilder<&P, nullifiedCall, N> { + self.call_builder(&nullifiedCall) + } + ///Creates a new call builder for the [`nullify`] function. + pub fn nullify(&self) -> alloy_contract::SolCallBuilder<&P, nullifyCall, N> { + self.call_builder(&nullifyCall) + } + ///Creates a new call builder for the [`verify`] function. + pub fn verify( + &self, + proofBytes: alloy::sol_types::private::Bytes, + imageId: alloy::sol_types::private::FixedBytes<32>, + journal: alloy::sol_types::private::FixedBytes<32>, + ) -> alloy_contract::SolCallBuilder<&P, verifyCall, N> { + self.call_builder( + &verifyCall { + proofBytes, + imageId, + journal, + }, + ) + } + ///Creates a new call builder for the [`version`] function. + pub fn version(&self) -> alloy_contract::SolCallBuilder<&P, versionCall, N> { + self.call_builder(&versionCall) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > TEEVerifierInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + } +} diff --git a/bindings/rust/src/timelock_guard.rs b/bindings/rust/src/timelock_guard.rs new file mode 100644 index 000000000..2a1ea5564 --- /dev/null +++ b/bindings/rust/src/timelock_guard.rs @@ -0,0 +1,7504 @@ +///Module containing a contract's types and functions. +/** + +```solidity +library Enum { + type Operation is uint8; +} +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod Enum { + use super::*; + use alloy::sol_types as alloy_sol_types; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct Operation(u8); + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for u8 { + #[inline] + fn stv_to_tokens( + &self, + ) -> as alloy_sol_types::SolType>::Token<'_> { + alloy_sol_types::private::SolTypeValue::< + alloy::sol_types::sol_data::Uint<8>, + >::stv_to_tokens(self) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + as alloy_sol_types::SolType>::tokenize(self) + .0 + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::SolType>::abi_encode_packed_to(self, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + as alloy_sol_types::SolType>::abi_encoded_size(self) + } + } + impl Operation { + /// The Solidity type name. + pub const NAME: &'static str = stringify!(@ name); + /// Convert from the underlying value type. + #[inline] + pub const fn from_underlying(value: u8) -> Self { + Self(value) + } + /// Return the underlying value. + #[inline] + pub const fn into_underlying(self) -> u8 { + self.0 + } + /// Return the single encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode(&self) -> alloy_sol_types::private::Vec { + ::abi_encode(&self.0) + } + /// Return the packed encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec { + ::abi_encode_packed(&self.0) + } + } + #[automatically_derived] + impl From for Operation { + fn from(value: u8) -> Self { + Self::from_underlying(value) + } + } + #[automatically_derived] + impl From for u8 { + fn from(value: Operation) -> Self { + value.into_underlying() + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for Operation { + type RustType = u8; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = Self::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + Self::type_check(token).is_ok() + } + #[inline] + fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> { + as alloy_sol_types::SolType>::type_check(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + as alloy_sol_types::SolType>::detokenize(token) + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for Operation { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + as alloy_sol_types::EventTopic>::topic_preimage_length(rust) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out) + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + as alloy_sol_types::EventTopic>::encode_topic(rust) + } + } + }; + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`Enum`](self) contract instance. + +See the [wrapper's documentation](`EnumInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(address: alloy_sol_types::private::Address, __provider: P) -> EnumInstance { + EnumInstance::::new(address, __provider) + } + /**A [`Enum`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`Enum`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct EnumInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for EnumInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("EnumInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > EnumInstance { + /**Creates a new wrapper around an on-chain [`Enum`](self) contract instance. + +See the [wrapper's documentation](`EnumInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl EnumInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> EnumInstance { + EnumInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > EnumInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > EnumInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + } +} +/** + +Generated by the following Solidity interface... +```solidity +library Enum { + type Operation is uint8; +} + +interface TimelockGuard { + type TransactionState is uint8; + struct ExecTransactionParams { + address to; + uint256 value; + bytes data; + Enum.Operation operation; + uint256 safeTxGas; + uint256 baseGas; + uint256 gasPrice; + address gasToken; + address payable refundReceiver; + } + struct ScheduledTransaction { + bytes32 txHash; + uint256 executionTime; + TransactionState state; + ExecTransactionParams params; + uint256 nonce; + } + + error SemverComp_InvalidSemverParts(); + error TimelockGuard_GuardNotConfigured(); + error TimelockGuard_GuardNotEnabled(); + error TimelockGuard_GuardStillEnabled(); + error TimelockGuard_InvalidTimelockDelay(); + error TimelockGuard_InvalidVersion(); + error TimelockGuard_NotOwner(); + error TimelockGuard_TransactionAlreadyCancelled(); + error TimelockGuard_TransactionAlreadyExecuted(); + error TimelockGuard_TransactionAlreadyScheduled(); + error TimelockGuard_TransactionNotReady(); + error TimelockGuard_TransactionNotScheduled(); + + event CancellationThresholdUpdated(address indexed safe, uint256 oldThreshold, uint256 newThreshold); + event GuardConfigured(address indexed safe, uint256 timelockDelay); + event Message(string message); + event TransactionCancelled(address indexed safe, bytes32 indexed txHash); + event TransactionExecuted(address indexed safe, bytes32 indexed txHash); + event TransactionScheduled(address indexed safe, bytes32 indexed txHash, uint256 executionTime); + + function cancelTransaction(address _safe, bytes32 _txHash, uint256 _nonce, bytes memory _signatures) external; + function cancellationThreshold(address _safe) external view returns (uint256); + function checkAfterExecution(bytes32 _txHash, bool _success) external; + function checkTransaction(address _to, uint256 _value, bytes memory _data, Enum.Operation _operation, uint256 _safeTxGas, uint256 _baseGas, uint256 _gasPrice, address _gasToken, address payable _refundReceiver, bytes memory, address _msgSender) external; + function clearTimelockGuard() external; + function configureTimelockGuard(uint256 _timelockDelay) external; + function maxCancellationThreshold(address _safe) external view returns (uint256); + function pendingTransactions(address _safe) external view returns (ScheduledTransaction[] memory); + function scheduleTransaction(address _safe, uint256 _nonce, ExecTransactionParams memory _params, bytes memory _signatures) external; + function scheduledTransaction(address _safe, bytes32 _txHash) external view returns (ScheduledTransaction memory); + function signCancellation(bytes32) external; + function supportsInterface(bytes4 interfaceId) external view returns (bool); + function timelockDelay(address _safe) external view returns (uint256); +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "function", + "name": "cancelTransaction", + "inputs": [ + { + "name": "_safe", + "type": "address", + "internalType": "contract Safe" + }, + { + "name": "_txHash", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "_nonce", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_signatures", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "cancellationThreshold", + "inputs": [ + { + "name": "_safe", + "type": "address", + "internalType": "contract Safe" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "checkAfterExecution", + "inputs": [ + { + "name": "_txHash", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "_success", + "type": "bool", + "internalType": "bool" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "checkTransaction", + "inputs": [ + { + "name": "_to", + "type": "address", + "internalType": "address" + }, + { + "name": "_value", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_data", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "_operation", + "type": "uint8", + "internalType": "enum Enum.Operation" + }, + { + "name": "_safeTxGas", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_baseGas", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_gasPrice", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_gasToken", + "type": "address", + "internalType": "address" + }, + { + "name": "_refundReceiver", + "type": "address", + "internalType": "address payable" + }, + { + "name": "", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "_msgSender", + "type": "address", + "internalType": "address" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "clearTimelockGuard", + "inputs": [], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "configureTimelockGuard", + "inputs": [ + { + "name": "_timelockDelay", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "maxCancellationThreshold", + "inputs": [ + { + "name": "_safe", + "type": "address", + "internalType": "contract Safe" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "pendingTransactions", + "inputs": [ + { + "name": "_safe", + "type": "address", + "internalType": "contract Safe" + } + ], + "outputs": [ + { + "name": "", + "type": "tuple[]", + "internalType": "struct TimelockGuard.ScheduledTransaction[]", + "components": [ + { + "name": "txHash", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "executionTime", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "state", + "type": "uint8", + "internalType": "enum TimelockGuard.TransactionState" + }, + { + "name": "params", + "type": "tuple", + "internalType": "struct TimelockGuard.ExecTransactionParams", + "components": [ + { + "name": "to", + "type": "address", + "internalType": "address" + }, + { + "name": "value", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "data", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "operation", + "type": "uint8", + "internalType": "enum Enum.Operation" + }, + { + "name": "safeTxGas", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "baseGas", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "gasPrice", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "gasToken", + "type": "address", + "internalType": "address" + }, + { + "name": "refundReceiver", + "type": "address", + "internalType": "address payable" + } + ] + }, + { + "name": "nonce", + "type": "uint256", + "internalType": "uint256" + } + ] + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "scheduleTransaction", + "inputs": [ + { + "name": "_safe", + "type": "address", + "internalType": "contract Safe" + }, + { + "name": "_nonce", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_params", + "type": "tuple", + "internalType": "struct TimelockGuard.ExecTransactionParams", + "components": [ + { + "name": "to", + "type": "address", + "internalType": "address" + }, + { + "name": "value", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "data", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "operation", + "type": "uint8", + "internalType": "enum Enum.Operation" + }, + { + "name": "safeTxGas", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "baseGas", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "gasPrice", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "gasToken", + "type": "address", + "internalType": "address" + }, + { + "name": "refundReceiver", + "type": "address", + "internalType": "address payable" + } + ] + }, + { + "name": "_signatures", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "scheduledTransaction", + "inputs": [ + { + "name": "_safe", + "type": "address", + "internalType": "contract Safe" + }, + { + "name": "_txHash", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "outputs": [ + { + "name": "", + "type": "tuple", + "internalType": "struct TimelockGuard.ScheduledTransaction", + "components": [ + { + "name": "txHash", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "executionTime", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "state", + "type": "uint8", + "internalType": "enum TimelockGuard.TransactionState" + }, + { + "name": "params", + "type": "tuple", + "internalType": "struct TimelockGuard.ExecTransactionParams", + "components": [ + { + "name": "to", + "type": "address", + "internalType": "address" + }, + { + "name": "value", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "data", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "operation", + "type": "uint8", + "internalType": "enum Enum.Operation" + }, + { + "name": "safeTxGas", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "baseGas", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "gasPrice", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "gasToken", + "type": "address", + "internalType": "address" + }, + { + "name": "refundReceiver", + "type": "address", + "internalType": "address payable" + } + ] + }, + { + "name": "nonce", + "type": "uint256", + "internalType": "uint256" + } + ] + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "signCancellation", + "inputs": [ + { + "name": "", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "supportsInterface", + "inputs": [ + { + "name": "interfaceId", + "type": "bytes4", + "internalType": "bytes4" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "timelockDelay", + "inputs": [ + { + "name": "_safe", + "type": "address", + "internalType": "contract Safe" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "event", + "name": "CancellationThresholdUpdated", + "inputs": [ + { + "name": "safe", + "type": "address", + "indexed": true, + "internalType": "contract Safe" + }, + { + "name": "oldThreshold", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + }, + { + "name": "newThreshold", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "GuardConfigured", + "inputs": [ + { + "name": "safe", + "type": "address", + "indexed": true, + "internalType": "contract Safe" + }, + { + "name": "timelockDelay", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "Message", + "inputs": [ + { + "name": "message", + "type": "string", + "indexed": false, + "internalType": "string" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "TransactionCancelled", + "inputs": [ + { + "name": "safe", + "type": "address", + "indexed": true, + "internalType": "contract Safe" + }, + { + "name": "txHash", + "type": "bytes32", + "indexed": true, + "internalType": "bytes32" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "TransactionExecuted", + "inputs": [ + { + "name": "safe", + "type": "address", + "indexed": true, + "internalType": "contract Safe" + }, + { + "name": "txHash", + "type": "bytes32", + "indexed": true, + "internalType": "bytes32" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "TransactionScheduled", + "inputs": [ + { + "name": "safe", + "type": "address", + "indexed": true, + "internalType": "contract Safe" + }, + { + "name": "txHash", + "type": "bytes32", + "indexed": true, + "internalType": "bytes32" + }, + { + "name": "executionTime", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "error", + "name": "SemverComp_InvalidSemverParts", + "inputs": [] + }, + { + "type": "error", + "name": "TimelockGuard_GuardNotConfigured", + "inputs": [] + }, + { + "type": "error", + "name": "TimelockGuard_GuardNotEnabled", + "inputs": [] + }, + { + "type": "error", + "name": "TimelockGuard_GuardStillEnabled", + "inputs": [] + }, + { + "type": "error", + "name": "TimelockGuard_InvalidTimelockDelay", + "inputs": [] + }, + { + "type": "error", + "name": "TimelockGuard_InvalidVersion", + "inputs": [] + }, + { + "type": "error", + "name": "TimelockGuard_NotOwner", + "inputs": [] + }, + { + "type": "error", + "name": "TimelockGuard_TransactionAlreadyCancelled", + "inputs": [] + }, + { + "type": "error", + "name": "TimelockGuard_TransactionAlreadyExecuted", + "inputs": [] + }, + { + "type": "error", + "name": "TimelockGuard_TransactionAlreadyScheduled", + "inputs": [] + }, + { + "type": "error", + "name": "TimelockGuard_TransactionNotReady", + "inputs": [] + }, + { + "type": "error", + "name": "TimelockGuard_TransactionNotScheduled", + "inputs": [] + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod TimelockGuard { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"", + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct TransactionState(u8); + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for u8 { + #[inline] + fn stv_to_tokens( + &self, + ) -> as alloy_sol_types::SolType>::Token<'_> { + alloy_sol_types::private::SolTypeValue::< + alloy::sol_types::sol_data::Uint<8>, + >::stv_to_tokens(self) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + as alloy_sol_types::SolType>::tokenize(self) + .0 + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::SolType>::abi_encode_packed_to(self, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + as alloy_sol_types::SolType>::abi_encoded_size(self) + } + } + impl TransactionState { + /// The Solidity type name. + pub const NAME: &'static str = stringify!(@ name); + /// Convert from the underlying value type. + #[inline] + pub const fn from_underlying(value: u8) -> Self { + Self(value) + } + /// Return the underlying value. + #[inline] + pub const fn into_underlying(self) -> u8 { + self.0 + } + /// Return the single encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode(&self) -> alloy_sol_types::private::Vec { + ::abi_encode(&self.0) + } + /// Return the packed encoding of this value, delegating to the + /// underlying type. + #[inline] + pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec { + ::abi_encode_packed(&self.0) + } + } + #[automatically_derived] + impl From for TransactionState { + fn from(value: u8) -> Self { + Self::from_underlying(value) + } + } + #[automatically_derived] + impl From for u8 { + fn from(value: TransactionState) -> Self { + value.into_underlying() + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for TransactionState { + type RustType = u8; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = Self::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + Self::type_check(token).is_ok() + } + #[inline] + fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> { + as alloy_sol_types::SolType>::type_check(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + as alloy_sol_types::SolType>::detokenize(token) + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for TransactionState { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + as alloy_sol_types::EventTopic>::topic_preimage_length(rust) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out) + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + as alloy_sol_types::EventTopic>::encode_topic(rust) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**```solidity +struct ExecTransactionParams { address to; uint256 value; bytes data; Enum.Operation operation; uint256 safeTxGas; uint256 baseGas; uint256 gasPrice; address gasToken; address refundReceiver; } +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ExecTransactionParams { + #[allow(missing_docs)] + pub to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub value: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub data: alloy::sol_types::private::Bytes, + #[allow(missing_docs)] + pub operation: ::RustType, + #[allow(missing_docs)] + pub safeTxGas: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub baseGas: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub gasPrice: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub gasToken: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub refundReceiver: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Bytes, + Enum::Operation, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::Bytes, + ::RustType, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ExecTransactionParams) -> Self { + ( + value.to, + value.value, + value.data, + value.operation, + value.safeTxGas, + value.baseGas, + value.gasPrice, + value.gasToken, + value.refundReceiver, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ExecTransactionParams { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + to: tuple.0, + value: tuple.1, + data: tuple.2, + operation: tuple.3, + safeTxGas: tuple.4, + baseGas: tuple.5, + gasPrice: tuple.6, + gasToken: tuple.7, + refundReceiver: tuple.8, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolValue for ExecTransactionParams { + type SolType = Self; + } + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for ExecTransactionParams { + #[inline] + fn stv_to_tokens(&self) -> ::Token<'_> { + ( + ::tokenize( + &self.to, + ), + as alloy_sol_types::SolType>::tokenize(&self.value), + ::tokenize( + &self.data, + ), + ::tokenize( + &self.operation, + ), + as alloy_sol_types::SolType>::tokenize(&self.safeTxGas), + as alloy_sol_types::SolType>::tokenize(&self.baseGas), + as alloy_sol_types::SolType>::tokenize(&self.gasPrice), + ::tokenize( + &self.gasToken, + ), + ::tokenize( + &self.refundReceiver, + ), + ) + } + #[inline] + fn stv_abi_encoded_size(&self) -> usize { + if let Some(size) = ::ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encoded_size(&tuple) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + ::eip712_hash_struct(self) + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + if let Some(size) = ::PACKED_ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for ExecTransactionParams { + type RustType = Self; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = ::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + as alloy_sol_types::SolType>::valid_token(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + let tuple = as alloy_sol_types::SolType>::detokenize(token); + >>::from(tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolStruct for ExecTransactionParams { + const NAME: &'static str = "ExecTransactionParams"; + #[inline] + fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> { + alloy_sol_types::private::Cow::Borrowed( + "ExecTransactionParams(address to,uint256 value,bytes data,uint8 operation,uint256 safeTxGas,uint256 baseGas,uint256 gasPrice,address gasToken,address refundReceiver)", + ) + } + #[inline] + fn eip712_components() -> alloy_sol_types::private::Vec< + alloy_sol_types::private::Cow<'static, str>, + > { + alloy_sol_types::private::Vec::new() + } + #[inline] + fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> { + ::eip712_root_type() + } + #[inline] + fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec { + [ + ::eip712_data_word( + &self.to, + ) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.value) + .0, + ::eip712_data_word( + &self.data, + ) + .0, + ::eip712_data_word( + &self.operation, + ) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.safeTxGas) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.baseGas) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.gasPrice) + .0, + ::eip712_data_word( + &self.gasToken, + ) + .0, + ::eip712_data_word( + &self.refundReceiver, + ) + .0, + ] + .concat() + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for ExecTransactionParams { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + 0usize + + ::topic_preimage_length( + &rust.to, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length(&rust.value) + + ::topic_preimage_length( + &rust.data, + ) + + ::topic_preimage_length( + &rust.operation, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.safeTxGas, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.baseGas, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.gasPrice, + ) + + ::topic_preimage_length( + &rust.gasToken, + ) + + ::topic_preimage_length( + &rust.refundReceiver, + ) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + out.reserve( + ::topic_preimage_length(rust), + ); + ::encode_topic_preimage( + &rust.to, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.value, + out, + ); + ::encode_topic_preimage( + &rust.data, + out, + ); + ::encode_topic_preimage( + &rust.operation, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.safeTxGas, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.baseGas, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.gasPrice, + out, + ); + ::encode_topic_preimage( + &rust.gasToken, + out, + ); + ::encode_topic_preimage( + &rust.refundReceiver, + out, + ); + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + let mut out = alloy_sol_types::private::Vec::new(); + ::encode_topic_preimage( + rust, + &mut out, + ); + alloy_sol_types::abi::token::WordToken( + alloy_sol_types::private::keccak256(out), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**```solidity +struct ScheduledTransaction { bytes32 txHash; uint256 executionTime; TransactionState state; ExecTransactionParams params; uint256 nonce; } +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ScheduledTransaction { + #[allow(missing_docs)] + pub txHash: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub executionTime: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub state: ::RustType, + #[allow(missing_docs)] + pub params: ::RustType, + #[allow(missing_docs)] + pub nonce: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Uint<256>, + TransactionState, + ExecTransactionParams, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::FixedBytes<32>, + alloy::sol_types::private::primitives::aliases::U256, + ::RustType, + ::RustType, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ScheduledTransaction) -> Self { + ( + value.txHash, + value.executionTime, + value.state, + value.params, + value.nonce, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ScheduledTransaction { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + txHash: tuple.0, + executionTime: tuple.1, + state: tuple.2, + params: tuple.3, + nonce: tuple.4, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolValue for ScheduledTransaction { + type SolType = Self; + } + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for ScheduledTransaction { + #[inline] + fn stv_to_tokens(&self) -> ::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.txHash), + as alloy_sol_types::SolType>::tokenize(&self.executionTime), + ::tokenize( + &self.state, + ), + ::tokenize( + &self.params, + ), + as alloy_sol_types::SolType>::tokenize(&self.nonce), + ) + } + #[inline] + fn stv_abi_encoded_size(&self) -> usize { + if let Some(size) = ::ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encoded_size(&tuple) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + ::eip712_hash_struct(self) + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + if let Some(size) = ::PACKED_ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for ScheduledTransaction { + type RustType = Self; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = ::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + as alloy_sol_types::SolType>::valid_token(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + let tuple = as alloy_sol_types::SolType>::detokenize(token); + >>::from(tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolStruct for ScheduledTransaction { + const NAME: &'static str = "ScheduledTransaction"; + #[inline] + fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> { + alloy_sol_types::private::Cow::Borrowed( + "ScheduledTransaction(bytes32 txHash,uint256 executionTime,uint8 state,ExecTransactionParams params,uint256 nonce)", + ) + } + #[inline] + fn eip712_components() -> alloy_sol_types::private::Vec< + alloy_sol_types::private::Cow<'static, str>, + > { + let mut components = alloy_sol_types::private::Vec::with_capacity(1); + components + .push( + ::eip712_root_type(), + ); + components + .extend( + ::eip712_components(), + ); + components + } + #[inline] + fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec { + [ + as alloy_sol_types::SolType>::eip712_data_word(&self.txHash) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.executionTime) + .0, + ::eip712_data_word( + &self.state, + ) + .0, + ::eip712_data_word( + &self.params, + ) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.nonce) + .0, + ] + .concat() + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for ScheduledTransaction { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + 0usize + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.txHash, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.executionTime, + ) + + ::topic_preimage_length( + &rust.state, + ) + + ::topic_preimage_length( + &rust.params, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length(&rust.nonce) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + out.reserve( + ::topic_preimage_length(rust), + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.txHash, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.executionTime, + out, + ); + ::encode_topic_preimage( + &rust.state, + out, + ); + ::encode_topic_preimage( + &rust.params, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.nonce, + out, + ); + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + let mut out = alloy_sol_types::private::Vec::new(); + ::encode_topic_preimage( + rust, + &mut out, + ); + alloy_sol_types::abi::token::WordToken( + alloy_sol_types::private::keccak256(out), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `SemverComp_InvalidSemverParts()` and selector `0x9eda858c`. +```solidity +error SemverComp_InvalidSemverParts(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct SemverComp_InvalidSemverParts; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: SemverComp_InvalidSemverParts) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for SemverComp_InvalidSemverParts { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for SemverComp_InvalidSemverParts { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "SemverComp_InvalidSemverParts()"; + const SELECTOR: [u8; 4] = [158u8, 218u8, 133u8, 140u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `TimelockGuard_GuardNotConfigured()` and selector `0x0832dd69`. +```solidity +error TimelockGuard_GuardNotConfigured(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct TimelockGuard_GuardNotConfigured; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: TimelockGuard_GuardNotConfigured) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for TimelockGuard_GuardNotConfigured { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for TimelockGuard_GuardNotConfigured { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "TimelockGuard_GuardNotConfigured()"; + const SELECTOR: [u8; 4] = [8u8, 50u8, 221u8, 105u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `TimelockGuard_GuardNotEnabled()` and selector `0x3f4b2966`. +```solidity +error TimelockGuard_GuardNotEnabled(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct TimelockGuard_GuardNotEnabled; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: TimelockGuard_GuardNotEnabled) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for TimelockGuard_GuardNotEnabled { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for TimelockGuard_GuardNotEnabled { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "TimelockGuard_GuardNotEnabled()"; + const SELECTOR: [u8; 4] = [63u8, 75u8, 41u8, 102u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `TimelockGuard_GuardStillEnabled()` and selector `0xa4d234cb`. +```solidity +error TimelockGuard_GuardStillEnabled(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct TimelockGuard_GuardStillEnabled; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: TimelockGuard_GuardStillEnabled) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for TimelockGuard_GuardStillEnabled { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for TimelockGuard_GuardStillEnabled { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "TimelockGuard_GuardStillEnabled()"; + const SELECTOR: [u8; 4] = [164u8, 210u8, 52u8, 203u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `TimelockGuard_InvalidTimelockDelay()` and selector `0xa0ce228b`. +```solidity +error TimelockGuard_InvalidTimelockDelay(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct TimelockGuard_InvalidTimelockDelay; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: TimelockGuard_InvalidTimelockDelay) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for TimelockGuard_InvalidTimelockDelay { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for TimelockGuard_InvalidTimelockDelay { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "TimelockGuard_InvalidTimelockDelay()"; + const SELECTOR: [u8; 4] = [160u8, 206u8, 34u8, 139u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `TimelockGuard_InvalidVersion()` and selector `0x9e2f7c4b`. +```solidity +error TimelockGuard_InvalidVersion(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct TimelockGuard_InvalidVersion; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: TimelockGuard_InvalidVersion) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for TimelockGuard_InvalidVersion { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for TimelockGuard_InvalidVersion { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "TimelockGuard_InvalidVersion()"; + const SELECTOR: [u8; 4] = [158u8, 47u8, 124u8, 75u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `TimelockGuard_NotOwner()` and selector `0x5874e94f`. +```solidity +error TimelockGuard_NotOwner(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct TimelockGuard_NotOwner; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: TimelockGuard_NotOwner) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for TimelockGuard_NotOwner { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for TimelockGuard_NotOwner { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "TimelockGuard_NotOwner()"; + const SELECTOR: [u8; 4] = [88u8, 116u8, 233u8, 79u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `TimelockGuard_TransactionAlreadyCancelled()` and selector `0x3e8b8389`. +```solidity +error TimelockGuard_TransactionAlreadyCancelled(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct TimelockGuard_TransactionAlreadyCancelled; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: TimelockGuard_TransactionAlreadyCancelled) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for TimelockGuard_TransactionAlreadyCancelled { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for TimelockGuard_TransactionAlreadyCancelled { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "TimelockGuard_TransactionAlreadyCancelled()"; + const SELECTOR: [u8; 4] = [62u8, 139u8, 131u8, 137u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `TimelockGuard_TransactionAlreadyExecuted()` and selector `0x183ca431`. +```solidity +error TimelockGuard_TransactionAlreadyExecuted(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct TimelockGuard_TransactionAlreadyExecuted; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: TimelockGuard_TransactionAlreadyExecuted) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for TimelockGuard_TransactionAlreadyExecuted { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for TimelockGuard_TransactionAlreadyExecuted { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "TimelockGuard_TransactionAlreadyExecuted()"; + const SELECTOR: [u8; 4] = [24u8, 60u8, 164u8, 49u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `TimelockGuard_TransactionAlreadyScheduled()` and selector `0x80394de6`. +```solidity +error TimelockGuard_TransactionAlreadyScheduled(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct TimelockGuard_TransactionAlreadyScheduled; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: TimelockGuard_TransactionAlreadyScheduled) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for TimelockGuard_TransactionAlreadyScheduled { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for TimelockGuard_TransactionAlreadyScheduled { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "TimelockGuard_TransactionAlreadyScheduled()"; + const SELECTOR: [u8; 4] = [128u8, 57u8, 77u8, 230u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `TimelockGuard_TransactionNotReady()` and selector `0x503c42c4`. +```solidity +error TimelockGuard_TransactionNotReady(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct TimelockGuard_TransactionNotReady; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: TimelockGuard_TransactionNotReady) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for TimelockGuard_TransactionNotReady { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for TimelockGuard_TransactionNotReady { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "TimelockGuard_TransactionNotReady()"; + const SELECTOR: [u8; 4] = [80u8, 60u8, 66u8, 196u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `TimelockGuard_TransactionNotScheduled()` and selector `0x03c85973`. +```solidity +error TimelockGuard_TransactionNotScheduled(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct TimelockGuard_TransactionNotScheduled; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: TimelockGuard_TransactionNotScheduled) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for TimelockGuard_TransactionNotScheduled { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for TimelockGuard_TransactionNotScheduled { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "TimelockGuard_TransactionNotScheduled()"; + const SELECTOR: [u8; 4] = [3u8, 200u8, 89u8, 115u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `CancellationThresholdUpdated(address,uint256,uint256)` and selector `0x4eda179760b4e68650058376d4acef78e953221317450d29b4920e6d2836944c`. +```solidity +event CancellationThresholdUpdated(address indexed safe, uint256 oldThreshold, uint256 newThreshold); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct CancellationThresholdUpdated { + #[allow(missing_docs)] + pub safe: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub oldThreshold: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub newThreshold: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for CancellationThresholdUpdated { + type DataTuple<'a> = ( + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + ); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "CancellationThresholdUpdated(address,uint256,uint256)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 78u8, 218u8, 23u8, 151u8, 96u8, 180u8, 230u8, 134u8, 80u8, 5u8, 131u8, + 118u8, 212u8, 172u8, 239u8, 120u8, 233u8, 83u8, 34u8, 19u8, 23u8, 69u8, + 13u8, 41u8, 180u8, 146u8, 14u8, 109u8, 40u8, 54u8, 148u8, 76u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + safe: topics.1, + oldThreshold: data.0, + newThreshold: data.1, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.oldThreshold), + as alloy_sol_types::SolType>::tokenize(&self.newThreshold), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.safe.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.safe, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for CancellationThresholdUpdated { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&CancellationThresholdUpdated> for alloy_sol_types::private::LogData { + #[inline] + fn from( + this: &CancellationThresholdUpdated, + ) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `GuardConfigured(address,uint256)` and selector `0xa48d13ee8fad9974fa901cfb88a02d39c5361efbab13bb9b3aa7caa3f6d6b786`. +```solidity +event GuardConfigured(address indexed safe, uint256 timelockDelay); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct GuardConfigured { + #[allow(missing_docs)] + pub safe: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub timelockDelay: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for GuardConfigured { + type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "GuardConfigured(address,uint256)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 164u8, 141u8, 19u8, 238u8, 143u8, 173u8, 153u8, 116u8, 250u8, 144u8, + 28u8, 251u8, 136u8, 160u8, 45u8, 57u8, 197u8, 54u8, 30u8, 251u8, 171u8, + 19u8, 187u8, 155u8, 58u8, 167u8, 202u8, 163u8, 246u8, 214u8, 183u8, 134u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + safe: topics.1, + timelockDelay: data.0, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.timelockDelay), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.safe.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.safe, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for GuardConfigured { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&GuardConfigured> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &GuardConfigured) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `Message(string)` and selector `0x51a7f65c6325882f237d4aeb43228179cfad48b868511d508e24b4437a819137`. +```solidity +event Message(string message); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct Message { + #[allow(missing_docs)] + pub message: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for Message { + type DataTuple<'a> = (alloy::sol_types::sol_data::String,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,); + const SIGNATURE: &'static str = "Message(string)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 81u8, 167u8, 246u8, 92u8, 99u8, 37u8, 136u8, 47u8, 35u8, 125u8, 74u8, + 235u8, 67u8, 34u8, 129u8, 121u8, 207u8, 173u8, 72u8, 184u8, 104u8, 81u8, + 29u8, 80u8, 142u8, 36u8, 180u8, 67u8, 122u8, 129u8, 145u8, 55u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { message: data.0 } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + ::tokenize( + &self.message, + ), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(),) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for Message { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&Message> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &Message) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `TransactionCancelled(address,bytes32)` and selector `0xa42fd857b47d3d04f5b29f35cb05343f66b317633d2dc2910726bd4bca1a1625`. +```solidity +event TransactionCancelled(address indexed safe, bytes32 indexed txHash); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct TransactionCancelled { + #[allow(missing_docs)] + pub safe: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub txHash: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for TransactionCancelled { + type DataTuple<'a> = (); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + const SIGNATURE: &'static str = "TransactionCancelled(address,bytes32)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 164u8, 47u8, 216u8, 87u8, 180u8, 125u8, 61u8, 4u8, 245u8, 178u8, 159u8, + 53u8, 203u8, 5u8, 52u8, 63u8, 102u8, 179u8, 23u8, 99u8, 61u8, 45u8, + 194u8, 145u8, 7u8, 38u8, 189u8, 75u8, 202u8, 26u8, 22u8, 37u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + safe: topics.1, + txHash: topics.2, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + () + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.safe.clone(), self.txHash.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.safe, + ); + out[2usize] = as alloy_sol_types::EventTopic>::encode_topic(&self.txHash); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for TransactionCancelled { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&TransactionCancelled> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &TransactionCancelled) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `TransactionExecuted(address,bytes32)` and selector `0xdd4b9b318b98162cb1e7b52752a3fd110d5b7966f3b50884c1cd3bd04058e5c7`. +```solidity +event TransactionExecuted(address indexed safe, bytes32 indexed txHash); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct TransactionExecuted { + #[allow(missing_docs)] + pub safe: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub txHash: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for TransactionExecuted { + type DataTuple<'a> = (); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + const SIGNATURE: &'static str = "TransactionExecuted(address,bytes32)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 221u8, 75u8, 155u8, 49u8, 139u8, 152u8, 22u8, 44u8, 177u8, 231u8, 181u8, + 39u8, 82u8, 163u8, 253u8, 17u8, 13u8, 91u8, 121u8, 102u8, 243u8, 181u8, + 8u8, 132u8, 193u8, 205u8, 59u8, 208u8, 64u8, 88u8, 229u8, 199u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + safe: topics.1, + txHash: topics.2, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + () + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.safe.clone(), self.txHash.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.safe, + ); + out[2usize] = as alloy_sol_types::EventTopic>::encode_topic(&self.txHash); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for TransactionExecuted { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&TransactionExecuted> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &TransactionExecuted) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `TransactionScheduled(address,bytes32,uint256)` and selector `0x653f8f6fce2a503b2dfca34e95b3e4902254a11765d2658c0e5af1d64ab276cf`. +```solidity +event TransactionScheduled(address indexed safe, bytes32 indexed txHash, uint256 executionTime); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct TransactionScheduled { + #[allow(missing_docs)] + pub safe: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub txHash: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub executionTime: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for TransactionScheduled { + type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + const SIGNATURE: &'static str = "TransactionScheduled(address,bytes32,uint256)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 101u8, 63u8, 143u8, 111u8, 206u8, 42u8, 80u8, 59u8, 45u8, 252u8, 163u8, + 78u8, 149u8, 179u8, 228u8, 144u8, 34u8, 84u8, 161u8, 23u8, 101u8, 210u8, + 101u8, 140u8, 14u8, 90u8, 241u8, 214u8, 74u8, 178u8, 118u8, 207u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + safe: topics.1, + txHash: topics.2, + executionTime: data.0, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.executionTime), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.safe.clone(), self.txHash.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.safe, + ); + out[2usize] = as alloy_sol_types::EventTopic>::encode_topic(&self.txHash); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for TransactionScheduled { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&TransactionScheduled> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &TransactionScheduled) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `cancelTransaction(address,bytes32,uint256,bytes)` and selector `0x096e01f7`. +```solidity +function cancelTransaction(address _safe, bytes32 _txHash, uint256 _nonce, bytes memory _signatures) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct cancelTransactionCall { + #[allow(missing_docs)] + pub _safe: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _txHash: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub _nonce: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _signatures: alloy::sol_types::private::Bytes, + } + ///Container type for the return parameters of the [`cancelTransaction(address,bytes32,uint256,bytes)`](cancelTransactionCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct cancelTransactionReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::FixedBytes<32>, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::Bytes, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: cancelTransactionCall) -> Self { + (value._safe, value._txHash, value._nonce, value._signatures) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for cancelTransactionCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _safe: tuple.0, + _txHash: tuple.1, + _nonce: tuple.2, + _signatures: tuple.3, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: cancelTransactionReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for cancelTransactionReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl cancelTransactionReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for cancelTransactionCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Bytes, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = cancelTransactionReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "cancelTransaction(address,bytes32,uint256,bytes)"; + const SELECTOR: [u8; 4] = [9u8, 110u8, 1u8, 247u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._safe, + ), + as alloy_sol_types::SolType>::tokenize(&self._txHash), + as alloy_sol_types::SolType>::tokenize(&self._nonce), + ::tokenize( + &self._signatures, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + cancelTransactionReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `cancellationThreshold(address)` and selector `0xe647dee1`. +```solidity +function cancellationThreshold(address _safe) external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct cancellationThresholdCall { + #[allow(missing_docs)] + pub _safe: alloy::sol_types::private::Address, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`cancellationThreshold(address)`](cancellationThresholdCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct cancellationThresholdReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: cancellationThresholdCall) -> Self { + (value._safe,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for cancellationThresholdCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _safe: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: cancellationThresholdReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for cancellationThresholdReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for cancellationThresholdCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "cancellationThreshold(address)"; + const SELECTOR: [u8; 4] = [230u8, 71u8, 222u8, 225u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._safe, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: cancellationThresholdReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: cancellationThresholdReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `checkAfterExecution(bytes32,bool)` and selector `0x93271368`. +```solidity +function checkAfterExecution(bytes32 _txHash, bool _success) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct checkAfterExecutionCall { + #[allow(missing_docs)] + pub _txHash: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub _success: bool, + } + ///Container type for the return parameters of the [`checkAfterExecution(bytes32,bool)`](checkAfterExecutionCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct checkAfterExecutionReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Bool, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::FixedBytes<32>, + bool, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: checkAfterExecutionCall) -> Self { + (value._txHash, value._success) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for checkAfterExecutionCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _txHash: tuple.0, + _success: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: checkAfterExecutionReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for checkAfterExecutionReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl checkAfterExecutionReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for checkAfterExecutionCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Bool, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = checkAfterExecutionReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "checkAfterExecution(bytes32,bool)"; + const SELECTOR: [u8; 4] = [147u8, 39u8, 19u8, 104u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._txHash), + ::tokenize( + &self._success, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + checkAfterExecutionReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `checkTransaction(address,uint256,bytes,uint8,uint256,uint256,uint256,address,address,bytes,address)` and selector `0x75f0bb52`. +```solidity +function checkTransaction(address _to, uint256 _value, bytes memory _data, Enum.Operation _operation, uint256 _safeTxGas, uint256 _baseGas, uint256 _gasPrice, address _gasToken, address _refundReceiver, bytes memory, address _msgSender) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct checkTransactionCall { + #[allow(missing_docs)] + pub _to: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _value: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _data: alloy::sol_types::private::Bytes, + #[allow(missing_docs)] + pub _operation: ::RustType, + #[allow(missing_docs)] + pub _safeTxGas: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _baseGas: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _gasPrice: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _gasToken: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _refundReceiver: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _9: alloy::sol_types::private::Bytes, + #[allow(missing_docs)] + pub _msgSender: alloy::sol_types::private::Address, + } + ///Container type for the return parameters of the [`checkTransaction(address,uint256,bytes,uint8,uint256,uint256,uint256,address,address,bytes,address)`](checkTransactionCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct checkTransactionReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Bytes, + Enum::Operation, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Bytes, + alloy::sol_types::sol_data::Address, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::Bytes, + ::RustType, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::Bytes, + alloy::sol_types::private::Address, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: checkTransactionCall) -> Self { + ( + value._to, + value._value, + value._data, + value._operation, + value._safeTxGas, + value._baseGas, + value._gasPrice, + value._gasToken, + value._refundReceiver, + value._9, + value._msgSender, + ) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for checkTransactionCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _to: tuple.0, + _value: tuple.1, + _data: tuple.2, + _operation: tuple.3, + _safeTxGas: tuple.4, + _baseGas: tuple.5, + _gasPrice: tuple.6, + _gasToken: tuple.7, + _refundReceiver: tuple.8, + _9: tuple.9, + _msgSender: tuple.10, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: checkTransactionReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for checkTransactionReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl checkTransactionReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for checkTransactionCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Bytes, + Enum::Operation, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Bytes, + alloy::sol_types::sol_data::Address, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = checkTransactionReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "checkTransaction(address,uint256,bytes,uint8,uint256,uint256,uint256,address,address,bytes,address)"; + const SELECTOR: [u8; 4] = [117u8, 240u8, 187u8, 82u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._to, + ), + as alloy_sol_types::SolType>::tokenize(&self._value), + ::tokenize( + &self._data, + ), + ::tokenize( + &self._operation, + ), + as alloy_sol_types::SolType>::tokenize(&self._safeTxGas), + as alloy_sol_types::SolType>::tokenize(&self._baseGas), + as alloy_sol_types::SolType>::tokenize(&self._gasPrice), + ::tokenize( + &self._gasToken, + ), + ::tokenize( + &self._refundReceiver, + ), + ::tokenize( + &self._9, + ), + ::tokenize( + &self._msgSender, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + checkTransactionReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `clearTimelockGuard()` and selector `0x5c3b4510`. +```solidity +function clearTimelockGuard() external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct clearTimelockGuardCall; + ///Container type for the return parameters of the [`clearTimelockGuard()`](clearTimelockGuardCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct clearTimelockGuardReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: clearTimelockGuardCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for clearTimelockGuardCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: clearTimelockGuardReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for clearTimelockGuardReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl clearTimelockGuardReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for clearTimelockGuardCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = clearTimelockGuardReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "clearTimelockGuard()"; + const SELECTOR: [u8; 4] = [92u8, 59u8, 69u8, 16u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + clearTimelockGuardReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `configureTimelockGuard(uint256)` and selector `0x65cf50ec`. +```solidity +function configureTimelockGuard(uint256 _timelockDelay) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct configureTimelockGuardCall { + #[allow(missing_docs)] + pub _timelockDelay: alloy::sol_types::private::primitives::aliases::U256, + } + ///Container type for the return parameters of the [`configureTimelockGuard(uint256)`](configureTimelockGuardCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct configureTimelockGuardReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: configureTimelockGuardCall) -> Self { + (value._timelockDelay,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for configureTimelockGuardCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _timelockDelay: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: configureTimelockGuardReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for configureTimelockGuardReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl configureTimelockGuardReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken< + '_, + > { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for configureTimelockGuardCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = configureTimelockGuardReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "configureTimelockGuard(uint256)"; + const SELECTOR: [u8; 4] = [101u8, 207u8, 80u8, 236u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._timelockDelay), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + configureTimelockGuardReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `maxCancellationThreshold(address)` and selector `0xc9713656`. +```solidity +function maxCancellationThreshold(address _safe) external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct maxCancellationThresholdCall { + #[allow(missing_docs)] + pub _safe: alloy::sol_types::private::Address, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`maxCancellationThreshold(address)`](maxCancellationThresholdCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct maxCancellationThresholdReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: maxCancellationThresholdCall) -> Self { + (value._safe,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for maxCancellationThresholdCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _safe: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: maxCancellationThresholdReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for maxCancellationThresholdReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for maxCancellationThresholdCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "maxCancellationThreshold(address)"; + const SELECTOR: [u8; 4] = [201u8, 113u8, 54u8, 86u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._safe, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: maxCancellationThresholdReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: maxCancellationThresholdReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `pendingTransactions(address)` and selector `0xc127fd39`. +```solidity +function pendingTransactions(address _safe) external view returns (ScheduledTransaction[] memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct pendingTransactionsCall { + #[allow(missing_docs)] + pub _safe: alloy::sol_types::private::Address, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`pendingTransactions(address)`](pendingTransactionsCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct pendingTransactionsReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Vec< + ::RustType, + >, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: pendingTransactionsCall) -> Self { + (value._safe,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for pendingTransactionsCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _safe: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Array, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Vec< + ::RustType, + >, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: pendingTransactionsReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for pendingTransactionsReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for pendingTransactionsCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Vec< + ::RustType, + >; + type ReturnTuple<'a> = ( + alloy::sol_types::sol_data::Array, + ); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "pendingTransactions(address)"; + const SELECTOR: [u8; 4] = [193u8, 39u8, 253u8, 57u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._safe, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: pendingTransactionsReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: pendingTransactionsReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `scheduleTransaction(address,uint256,(address,uint256,bytes,uint8,uint256,uint256,uint256,address,address),bytes)` and selector `0x0e40beec`. +```solidity +function scheduleTransaction(address _safe, uint256 _nonce, ExecTransactionParams memory _params, bytes memory _signatures) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct scheduleTransactionCall { + #[allow(missing_docs)] + pub _safe: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _nonce: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub _params: ::RustType, + #[allow(missing_docs)] + pub _signatures: alloy::sol_types::private::Bytes, + } + ///Container type for the return parameters of the [`scheduleTransaction(address,uint256,(address,uint256,bytes,uint8,uint256,uint256,uint256,address,address),bytes)`](scheduleTransactionCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct scheduleTransactionReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ExecTransactionParams, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + ::RustType, + alloy::sol_types::private::Bytes, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: scheduleTransactionCall) -> Self { + (value._safe, value._nonce, value._params, value._signatures) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for scheduleTransactionCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _safe: tuple.0, + _nonce: tuple.1, + _params: tuple.2, + _signatures: tuple.3, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: scheduleTransactionReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for scheduleTransactionReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl scheduleTransactionReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for scheduleTransactionCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ExecTransactionParams, + alloy::sol_types::sol_data::Bytes, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = scheduleTransactionReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "scheduleTransaction(address,uint256,(address,uint256,bytes,uint8,uint256,uint256,uint256,address,address),bytes)"; + const SELECTOR: [u8; 4] = [14u8, 64u8, 190u8, 236u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._safe, + ), + as alloy_sol_types::SolType>::tokenize(&self._nonce), + ::tokenize( + &self._params, + ), + ::tokenize( + &self._signatures, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + scheduleTransactionReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `scheduledTransaction(address,bytes32)` and selector `0x12492d97`. +```solidity +function scheduledTransaction(address _safe, bytes32 _txHash) external view returns (ScheduledTransaction memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct scheduledTransactionCall { + #[allow(missing_docs)] + pub _safe: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _txHash: alloy::sol_types::private::FixedBytes<32>, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`scheduledTransaction(address,bytes32)`](scheduledTransactionCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct scheduledTransactionReturn { + #[allow(missing_docs)] + pub _0: ::RustType, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::FixedBytes<32>, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: scheduledTransactionCall) -> Self { + (value._safe, value._txHash) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for scheduledTransactionCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _safe: tuple.0, + _txHash: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (ScheduledTransaction,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + ::RustType, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: scheduledTransactionReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for scheduledTransactionReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for scheduledTransactionCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = ::RustType; + type ReturnTuple<'a> = (ScheduledTransaction,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "scheduledTransaction(address,bytes32)"; + const SELECTOR: [u8; 4] = [18u8, 73u8, 45u8, 151u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._safe, + ), + as alloy_sol_types::SolType>::tokenize(&self._txHash), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + (::tokenize(ret),) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: scheduledTransactionReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: scheduledTransactionReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `signCancellation(bytes32)` and selector `0x06d8b7e2`. +```solidity +function signCancellation(bytes32) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct signCancellationCall(pub alloy::sol_types::private::FixedBytes<32>); + ///Container type for the return parameters of the [`signCancellation(bytes32)`](signCancellationCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct signCancellationReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: signCancellationCall) -> Self { + (value.0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for signCancellationCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self(tuple.0) + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: signCancellationReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for signCancellationReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl signCancellationReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for signCancellationCall { + type Parameters<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = signCancellationReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "signCancellation(bytes32)"; + const SELECTOR: [u8; 4] = [6u8, 216u8, 183u8, 226u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.0), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + signCancellationReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `supportsInterface(bytes4)` and selector `0x01ffc9a7`. +```solidity +function supportsInterface(bytes4 interfaceId) external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct supportsInterfaceCall { + #[allow(missing_docs)] + pub interfaceId: alloy::sol_types::private::FixedBytes<4>, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`supportsInterface(bytes4)`](supportsInterfaceCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct supportsInterfaceReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<4>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<4>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: supportsInterfaceCall) -> Self { + (value.interfaceId,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for supportsInterfaceCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { interfaceId: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: supportsInterfaceReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for supportsInterfaceReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for supportsInterfaceCall { + type Parameters<'a> = (alloy::sol_types::sol_data::FixedBytes<4>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "supportsInterface(bytes4)"; + const SELECTOR: [u8; 4] = [1u8, 255u8, 201u8, 167u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.interfaceId), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: supportsInterfaceReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: supportsInterfaceReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `timelockDelay(address)` and selector `0x5698b16a`. +```solidity +function timelockDelay(address _safe) external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct timelockDelayCall { + #[allow(missing_docs)] + pub _safe: alloy::sol_types::private::Address, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`timelockDelay(address)`](timelockDelayCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct timelockDelayReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: timelockDelayCall) -> Self { + (value._safe,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for timelockDelayCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _safe: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: timelockDelayReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for timelockDelayReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for timelockDelayCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "timelockDelay(address)"; + const SELECTOR: [u8; 4] = [86u8, 152u8, 177u8, 106u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._safe, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: timelockDelayReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: timelockDelayReturn = r.into(); + r._0 + }) + } + } + }; + ///Container for all the [`TimelockGuard`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum TimelockGuardCalls { + #[allow(missing_docs)] + cancelTransaction(cancelTransactionCall), + #[allow(missing_docs)] + cancellationThreshold(cancellationThresholdCall), + #[allow(missing_docs)] + checkAfterExecution(checkAfterExecutionCall), + #[allow(missing_docs)] + checkTransaction(checkTransactionCall), + #[allow(missing_docs)] + clearTimelockGuard(clearTimelockGuardCall), + #[allow(missing_docs)] + configureTimelockGuard(configureTimelockGuardCall), + #[allow(missing_docs)] + maxCancellationThreshold(maxCancellationThresholdCall), + #[allow(missing_docs)] + pendingTransactions(pendingTransactionsCall), + #[allow(missing_docs)] + scheduleTransaction(scheduleTransactionCall), + #[allow(missing_docs)] + scheduledTransaction(scheduledTransactionCall), + #[allow(missing_docs)] + signCancellation(signCancellationCall), + #[allow(missing_docs)] + supportsInterface(supportsInterfaceCall), + #[allow(missing_docs)] + timelockDelay(timelockDelayCall), + } + impl TimelockGuardCalls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [1u8, 255u8, 201u8, 167u8], + [6u8, 216u8, 183u8, 226u8], + [9u8, 110u8, 1u8, 247u8], + [14u8, 64u8, 190u8, 236u8], + [18u8, 73u8, 45u8, 151u8], + [86u8, 152u8, 177u8, 106u8], + [92u8, 59u8, 69u8, 16u8], + [101u8, 207u8, 80u8, 236u8], + [117u8, 240u8, 187u8, 82u8], + [147u8, 39u8, 19u8, 104u8], + [193u8, 39u8, 253u8, 57u8], + [201u8, 113u8, 54u8, 86u8], + [230u8, 71u8, 222u8, 225u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(supportsInterface), + ::core::stringify!(signCancellation), + ::core::stringify!(cancelTransaction), + ::core::stringify!(scheduleTransaction), + ::core::stringify!(scheduledTransaction), + ::core::stringify!(timelockDelay), + ::core::stringify!(clearTimelockGuard), + ::core::stringify!(configureTimelockGuard), + ::core::stringify!(checkTransaction), + ::core::stringify!(checkAfterExecution), + ::core::stringify!(pendingTransactions), + ::core::stringify!(maxCancellationThreshold), + ::core::stringify!(cancellationThreshold), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for TimelockGuardCalls { + const NAME: &'static str = "TimelockGuardCalls"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 13usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::cancelTransaction(_) => { + ::SELECTOR + } + Self::cancellationThreshold(_) => { + ::SELECTOR + } + Self::checkAfterExecution(_) => { + ::SELECTOR + } + Self::checkTransaction(_) => { + ::SELECTOR + } + Self::clearTimelockGuard(_) => { + ::SELECTOR + } + Self::configureTimelockGuard(_) => { + ::SELECTOR + } + Self::maxCancellationThreshold(_) => { + ::SELECTOR + } + Self::pendingTransactions(_) => { + ::SELECTOR + } + Self::scheduleTransaction(_) => { + ::SELECTOR + } + Self::scheduledTransaction(_) => { + ::SELECTOR + } + Self::signCancellation(_) => { + ::SELECTOR + } + Self::supportsInterface(_) => { + ::SELECTOR + } + Self::timelockDelay(_) => { + ::SELECTOR + } + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn supportsInterface( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(TimelockGuardCalls::supportsInterface) + } + supportsInterface + }, + { + fn signCancellation( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(TimelockGuardCalls::signCancellation) + } + signCancellation + }, + { + fn cancelTransaction( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(TimelockGuardCalls::cancelTransaction) + } + cancelTransaction + }, + { + fn scheduleTransaction( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(TimelockGuardCalls::scheduleTransaction) + } + scheduleTransaction + }, + { + fn scheduledTransaction( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(TimelockGuardCalls::scheduledTransaction) + } + scheduledTransaction + }, + { + fn timelockDelay( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(TimelockGuardCalls::timelockDelay) + } + timelockDelay + }, + { + fn clearTimelockGuard( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(TimelockGuardCalls::clearTimelockGuard) + } + clearTimelockGuard + }, + { + fn configureTimelockGuard( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(TimelockGuardCalls::configureTimelockGuard) + } + configureTimelockGuard + }, + { + fn checkTransaction( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(TimelockGuardCalls::checkTransaction) + } + checkTransaction + }, + { + fn checkAfterExecution( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(TimelockGuardCalls::checkAfterExecution) + } + checkAfterExecution + }, + { + fn pendingTransactions( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(TimelockGuardCalls::pendingTransactions) + } + pendingTransactions + }, + { + fn maxCancellationThreshold( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(TimelockGuardCalls::maxCancellationThreshold) + } + maxCancellationThreshold + }, + { + fn cancellationThreshold( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(TimelockGuardCalls::cancellationThreshold) + } + cancellationThreshold + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn supportsInterface( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(TimelockGuardCalls::supportsInterface) + } + supportsInterface + }, + { + fn signCancellation( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(TimelockGuardCalls::signCancellation) + } + signCancellation + }, + { + fn cancelTransaction( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(TimelockGuardCalls::cancelTransaction) + } + cancelTransaction + }, + { + fn scheduleTransaction( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(TimelockGuardCalls::scheduleTransaction) + } + scheduleTransaction + }, + { + fn scheduledTransaction( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(TimelockGuardCalls::scheduledTransaction) + } + scheduledTransaction + }, + { + fn timelockDelay( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(TimelockGuardCalls::timelockDelay) + } + timelockDelay + }, + { + fn clearTimelockGuard( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(TimelockGuardCalls::clearTimelockGuard) + } + clearTimelockGuard + }, + { + fn configureTimelockGuard( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(TimelockGuardCalls::configureTimelockGuard) + } + configureTimelockGuard + }, + { + fn checkTransaction( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(TimelockGuardCalls::checkTransaction) + } + checkTransaction + }, + { + fn checkAfterExecution( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(TimelockGuardCalls::checkAfterExecution) + } + checkAfterExecution + }, + { + fn pendingTransactions( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(TimelockGuardCalls::pendingTransactions) + } + pendingTransactions + }, + { + fn maxCancellationThreshold( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(TimelockGuardCalls::maxCancellationThreshold) + } + maxCancellationThreshold + }, + { + fn cancellationThreshold( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(TimelockGuardCalls::cancellationThreshold) + } + cancellationThreshold + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::cancelTransaction(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::cancellationThreshold(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::checkAfterExecution(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::checkTransaction(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::clearTimelockGuard(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::configureTimelockGuard(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::maxCancellationThreshold(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::pendingTransactions(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::scheduleTransaction(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::scheduledTransaction(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::signCancellation(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::supportsInterface(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::timelockDelay(inner) => { + ::abi_encoded_size( + inner, + ) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::cancelTransaction(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::cancellationThreshold(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::checkAfterExecution(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::checkTransaction(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::clearTimelockGuard(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::configureTimelockGuard(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::maxCancellationThreshold(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::pendingTransactions(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::scheduleTransaction(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::scheduledTransaction(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::signCancellation(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::supportsInterface(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::timelockDelay(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + } + } + } + ///Container for all the [`TimelockGuard`](self) custom errors. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum TimelockGuardErrors { + #[allow(missing_docs)] + SemverComp_InvalidSemverParts(SemverComp_InvalidSemverParts), + #[allow(missing_docs)] + TimelockGuard_GuardNotConfigured(TimelockGuard_GuardNotConfigured), + #[allow(missing_docs)] + TimelockGuard_GuardNotEnabled(TimelockGuard_GuardNotEnabled), + #[allow(missing_docs)] + TimelockGuard_GuardStillEnabled(TimelockGuard_GuardStillEnabled), + #[allow(missing_docs)] + TimelockGuard_InvalidTimelockDelay(TimelockGuard_InvalidTimelockDelay), + #[allow(missing_docs)] + TimelockGuard_InvalidVersion(TimelockGuard_InvalidVersion), + #[allow(missing_docs)] + TimelockGuard_NotOwner(TimelockGuard_NotOwner), + #[allow(missing_docs)] + TimelockGuard_TransactionAlreadyCancelled( + TimelockGuard_TransactionAlreadyCancelled, + ), + #[allow(missing_docs)] + TimelockGuard_TransactionAlreadyExecuted( + TimelockGuard_TransactionAlreadyExecuted, + ), + #[allow(missing_docs)] + TimelockGuard_TransactionAlreadyScheduled( + TimelockGuard_TransactionAlreadyScheduled, + ), + #[allow(missing_docs)] + TimelockGuard_TransactionNotReady(TimelockGuard_TransactionNotReady), + #[allow(missing_docs)] + TimelockGuard_TransactionNotScheduled(TimelockGuard_TransactionNotScheduled), + } + impl TimelockGuardErrors { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [3u8, 200u8, 89u8, 115u8], + [8u8, 50u8, 221u8, 105u8], + [24u8, 60u8, 164u8, 49u8], + [62u8, 139u8, 131u8, 137u8], + [63u8, 75u8, 41u8, 102u8], + [80u8, 60u8, 66u8, 196u8], + [88u8, 116u8, 233u8, 79u8], + [128u8, 57u8, 77u8, 230u8], + [158u8, 47u8, 124u8, 75u8], + [158u8, 218u8, 133u8, 140u8], + [160u8, 206u8, 34u8, 139u8], + [164u8, 210u8, 52u8, 203u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(TimelockGuard_TransactionNotScheduled), + ::core::stringify!(TimelockGuard_GuardNotConfigured), + ::core::stringify!(TimelockGuard_TransactionAlreadyExecuted), + ::core::stringify!(TimelockGuard_TransactionAlreadyCancelled), + ::core::stringify!(TimelockGuard_GuardNotEnabled), + ::core::stringify!(TimelockGuard_TransactionNotReady), + ::core::stringify!(TimelockGuard_NotOwner), + ::core::stringify!(TimelockGuard_TransactionAlreadyScheduled), + ::core::stringify!(TimelockGuard_InvalidVersion), + ::core::stringify!(SemverComp_InvalidSemverParts), + ::core::stringify!(TimelockGuard_InvalidTimelockDelay), + ::core::stringify!(TimelockGuard_GuardStillEnabled), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for TimelockGuardErrors { + const NAME: &'static str = "TimelockGuardErrors"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 12usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::SemverComp_InvalidSemverParts(_) => { + ::SELECTOR + } + Self::TimelockGuard_GuardNotConfigured(_) => { + ::SELECTOR + } + Self::TimelockGuard_GuardNotEnabled(_) => { + ::SELECTOR + } + Self::TimelockGuard_GuardStillEnabled(_) => { + ::SELECTOR + } + Self::TimelockGuard_InvalidTimelockDelay(_) => { + ::SELECTOR + } + Self::TimelockGuard_InvalidVersion(_) => { + ::SELECTOR + } + Self::TimelockGuard_NotOwner(_) => { + ::SELECTOR + } + Self::TimelockGuard_TransactionAlreadyCancelled(_) => { + ::SELECTOR + } + Self::TimelockGuard_TransactionAlreadyExecuted(_) => { + ::SELECTOR + } + Self::TimelockGuard_TransactionAlreadyScheduled(_) => { + ::SELECTOR + } + Self::TimelockGuard_TransactionNotReady(_) => { + ::SELECTOR + } + Self::TimelockGuard_TransactionNotScheduled(_) => { + ::SELECTOR + } + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn TimelockGuard_TransactionNotScheduled( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + TimelockGuardErrors::TimelockGuard_TransactionNotScheduled, + ) + } + TimelockGuard_TransactionNotScheduled + }, + { + fn TimelockGuard_GuardNotConfigured( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(TimelockGuardErrors::TimelockGuard_GuardNotConfigured) + } + TimelockGuard_GuardNotConfigured + }, + { + fn TimelockGuard_TransactionAlreadyExecuted( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + TimelockGuardErrors::TimelockGuard_TransactionAlreadyExecuted, + ) + } + TimelockGuard_TransactionAlreadyExecuted + }, + { + fn TimelockGuard_TransactionAlreadyCancelled( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + TimelockGuardErrors::TimelockGuard_TransactionAlreadyCancelled, + ) + } + TimelockGuard_TransactionAlreadyCancelled + }, + { + fn TimelockGuard_GuardNotEnabled( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(TimelockGuardErrors::TimelockGuard_GuardNotEnabled) + } + TimelockGuard_GuardNotEnabled + }, + { + fn TimelockGuard_TransactionNotReady( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(TimelockGuardErrors::TimelockGuard_TransactionNotReady) + } + TimelockGuard_TransactionNotReady + }, + { + fn TimelockGuard_NotOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(TimelockGuardErrors::TimelockGuard_NotOwner) + } + TimelockGuard_NotOwner + }, + { + fn TimelockGuard_TransactionAlreadyScheduled( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map( + TimelockGuardErrors::TimelockGuard_TransactionAlreadyScheduled, + ) + } + TimelockGuard_TransactionAlreadyScheduled + }, + { + fn TimelockGuard_InvalidVersion( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(TimelockGuardErrors::TimelockGuard_InvalidVersion) + } + TimelockGuard_InvalidVersion + }, + { + fn SemverComp_InvalidSemverParts( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(TimelockGuardErrors::SemverComp_InvalidSemverParts) + } + SemverComp_InvalidSemverParts + }, + { + fn TimelockGuard_InvalidTimelockDelay( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(TimelockGuardErrors::TimelockGuard_InvalidTimelockDelay) + } + TimelockGuard_InvalidTimelockDelay + }, + { + fn TimelockGuard_GuardStillEnabled( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(TimelockGuardErrors::TimelockGuard_GuardStillEnabled) + } + TimelockGuard_GuardStillEnabled + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn TimelockGuard_TransactionNotScheduled( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + TimelockGuardErrors::TimelockGuard_TransactionNotScheduled, + ) + } + TimelockGuard_TransactionNotScheduled + }, + { + fn TimelockGuard_GuardNotConfigured( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(TimelockGuardErrors::TimelockGuard_GuardNotConfigured) + } + TimelockGuard_GuardNotConfigured + }, + { + fn TimelockGuard_TransactionAlreadyExecuted( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + TimelockGuardErrors::TimelockGuard_TransactionAlreadyExecuted, + ) + } + TimelockGuard_TransactionAlreadyExecuted + }, + { + fn TimelockGuard_TransactionAlreadyCancelled( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + TimelockGuardErrors::TimelockGuard_TransactionAlreadyCancelled, + ) + } + TimelockGuard_TransactionAlreadyCancelled + }, + { + fn TimelockGuard_GuardNotEnabled( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(TimelockGuardErrors::TimelockGuard_GuardNotEnabled) + } + TimelockGuard_GuardNotEnabled + }, + { + fn TimelockGuard_TransactionNotReady( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(TimelockGuardErrors::TimelockGuard_TransactionNotReady) + } + TimelockGuard_TransactionNotReady + }, + { + fn TimelockGuard_NotOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(TimelockGuardErrors::TimelockGuard_NotOwner) + } + TimelockGuard_NotOwner + }, + { + fn TimelockGuard_TransactionAlreadyScheduled( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map( + TimelockGuardErrors::TimelockGuard_TransactionAlreadyScheduled, + ) + } + TimelockGuard_TransactionAlreadyScheduled + }, + { + fn TimelockGuard_InvalidVersion( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(TimelockGuardErrors::TimelockGuard_InvalidVersion) + } + TimelockGuard_InvalidVersion + }, + { + fn SemverComp_InvalidSemverParts( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(TimelockGuardErrors::SemverComp_InvalidSemverParts) + } + SemverComp_InvalidSemverParts + }, + { + fn TimelockGuard_InvalidTimelockDelay( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(TimelockGuardErrors::TimelockGuard_InvalidTimelockDelay) + } + TimelockGuard_InvalidTimelockDelay + }, + { + fn TimelockGuard_GuardStillEnabled( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(TimelockGuardErrors::TimelockGuard_GuardStillEnabled) + } + TimelockGuard_GuardStillEnabled + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::SemverComp_InvalidSemverParts(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::TimelockGuard_GuardNotConfigured(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::TimelockGuard_GuardNotEnabled(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::TimelockGuard_GuardStillEnabled(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::TimelockGuard_InvalidTimelockDelay(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::TimelockGuard_InvalidVersion(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::TimelockGuard_NotOwner(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::TimelockGuard_TransactionAlreadyCancelled(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::TimelockGuard_TransactionAlreadyExecuted(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::TimelockGuard_TransactionAlreadyScheduled(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::TimelockGuard_TransactionNotReady(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::TimelockGuard_TransactionNotScheduled(inner) => { + ::abi_encoded_size( + inner, + ) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::SemverComp_InvalidSemverParts(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::TimelockGuard_GuardNotConfigured(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::TimelockGuard_GuardNotEnabled(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::TimelockGuard_GuardStillEnabled(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::TimelockGuard_InvalidTimelockDelay(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::TimelockGuard_InvalidVersion(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::TimelockGuard_NotOwner(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::TimelockGuard_TransactionAlreadyCancelled(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::TimelockGuard_TransactionAlreadyExecuted(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::TimelockGuard_TransactionAlreadyScheduled(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::TimelockGuard_TransactionNotReady(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::TimelockGuard_TransactionNotScheduled(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + } + } + } + ///Container for all the [`TimelockGuard`](self) events. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum TimelockGuardEvents { + #[allow(missing_docs)] + CancellationThresholdUpdated(CancellationThresholdUpdated), + #[allow(missing_docs)] + GuardConfigured(GuardConfigured), + #[allow(missing_docs)] + Message(Message), + #[allow(missing_docs)] + TransactionCancelled(TransactionCancelled), + #[allow(missing_docs)] + TransactionExecuted(TransactionExecuted), + #[allow(missing_docs)] + TransactionScheduled(TransactionScheduled), + } + impl TimelockGuardEvents { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 32usize]] = &[ + [ + 78u8, 218u8, 23u8, 151u8, 96u8, 180u8, 230u8, 134u8, 80u8, 5u8, 131u8, + 118u8, 212u8, 172u8, 239u8, 120u8, 233u8, 83u8, 34u8, 19u8, 23u8, 69u8, + 13u8, 41u8, 180u8, 146u8, 14u8, 109u8, 40u8, 54u8, 148u8, 76u8, + ], + [ + 81u8, 167u8, 246u8, 92u8, 99u8, 37u8, 136u8, 47u8, 35u8, 125u8, 74u8, + 235u8, 67u8, 34u8, 129u8, 121u8, 207u8, 173u8, 72u8, 184u8, 104u8, 81u8, + 29u8, 80u8, 142u8, 36u8, 180u8, 67u8, 122u8, 129u8, 145u8, 55u8, + ], + [ + 101u8, 63u8, 143u8, 111u8, 206u8, 42u8, 80u8, 59u8, 45u8, 252u8, 163u8, + 78u8, 149u8, 179u8, 228u8, 144u8, 34u8, 84u8, 161u8, 23u8, 101u8, 210u8, + 101u8, 140u8, 14u8, 90u8, 241u8, 214u8, 74u8, 178u8, 118u8, 207u8, + ], + [ + 164u8, 47u8, 216u8, 87u8, 180u8, 125u8, 61u8, 4u8, 245u8, 178u8, 159u8, + 53u8, 203u8, 5u8, 52u8, 63u8, 102u8, 179u8, 23u8, 99u8, 61u8, 45u8, + 194u8, 145u8, 7u8, 38u8, 189u8, 75u8, 202u8, 26u8, 22u8, 37u8, + ], + [ + 164u8, 141u8, 19u8, 238u8, 143u8, 173u8, 153u8, 116u8, 250u8, 144u8, + 28u8, 251u8, 136u8, 160u8, 45u8, 57u8, 197u8, 54u8, 30u8, 251u8, 171u8, + 19u8, 187u8, 155u8, 58u8, 167u8, 202u8, 163u8, 246u8, 214u8, 183u8, 134u8, + ], + [ + 221u8, 75u8, 155u8, 49u8, 139u8, 152u8, 22u8, 44u8, 177u8, 231u8, 181u8, + 39u8, 82u8, 163u8, 253u8, 17u8, 13u8, 91u8, 121u8, 102u8, 243u8, 181u8, + 8u8, 132u8, 193u8, 205u8, 59u8, 208u8, 64u8, 88u8, 229u8, 199u8, + ], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(CancellationThresholdUpdated), + ::core::stringify!(Message), + ::core::stringify!(TransactionScheduled), + ::core::stringify!(TransactionCancelled), + ::core::stringify!(GuardConfigured), + ::core::stringify!(TransactionExecuted), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolEventInterface for TimelockGuardEvents { + const NAME: &'static str = "TimelockGuardEvents"; + const COUNT: usize = 6usize; + fn decode_raw_log( + topics: &[alloy_sol_types::Word], + data: &[u8], + ) -> alloy_sol_types::Result { + match topics.first().copied() { + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::CancellationThresholdUpdated) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::GuardConfigured) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log(topics, data) + .map(Self::Message) + } + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::TransactionCancelled) + } + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::TransactionExecuted) + } + Some( + ::SIGNATURE_HASH, + ) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::TransactionScheduled) + } + _ => { + alloy_sol_types::private::Err(alloy_sol_types::Error::InvalidLog { + name: ::NAME, + log: alloy_sol_types::private::Box::new( + alloy_sol_types::private::LogData::new_unchecked( + topics.to_vec(), + data.to_vec().into(), + ), + ), + }) + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for TimelockGuardEvents { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + match self { + Self::CancellationThresholdUpdated(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::GuardConfigured(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::Message(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::TransactionCancelled(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::TransactionExecuted(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::TransactionScheduled(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + } + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + match self { + Self::CancellationThresholdUpdated(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::GuardConfigured(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::Message(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::TransactionCancelled(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::TransactionExecuted(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::TransactionScheduled(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`TimelockGuard`](self) contract instance. + +See the [wrapper's documentation](`TimelockGuardInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> TimelockGuardInstance { + TimelockGuardInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + TimelockGuardInstance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + TimelockGuardInstance::::deploy_builder(__provider) + } + /**A [`TimelockGuard`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`TimelockGuard`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct TimelockGuardInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for TimelockGuardInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("TimelockGuardInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > TimelockGuardInstance { + /**Creates a new wrapper around an on-chain [`TimelockGuard`](self) contract instance. + +See the [wrapper's documentation](`TimelockGuardInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl TimelockGuardInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> TimelockGuardInstance { + TimelockGuardInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > TimelockGuardInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`cancelTransaction`] function. + pub fn cancelTransaction( + &self, + _safe: alloy::sol_types::private::Address, + _txHash: alloy::sol_types::private::FixedBytes<32>, + _nonce: alloy::sol_types::private::primitives::aliases::U256, + _signatures: alloy::sol_types::private::Bytes, + ) -> alloy_contract::SolCallBuilder<&P, cancelTransactionCall, N> { + self.call_builder( + &cancelTransactionCall { + _safe, + _txHash, + _nonce, + _signatures, + }, + ) + } + ///Creates a new call builder for the [`cancellationThreshold`] function. + pub fn cancellationThreshold( + &self, + _safe: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, cancellationThresholdCall, N> { + self.call_builder(&cancellationThresholdCall { _safe }) + } + ///Creates a new call builder for the [`checkAfterExecution`] function. + pub fn checkAfterExecution( + &self, + _txHash: alloy::sol_types::private::FixedBytes<32>, + _success: bool, + ) -> alloy_contract::SolCallBuilder<&P, checkAfterExecutionCall, N> { + self.call_builder( + &checkAfterExecutionCall { + _txHash, + _success, + }, + ) + } + ///Creates a new call builder for the [`checkTransaction`] function. + pub fn checkTransaction( + &self, + _to: alloy::sol_types::private::Address, + _value: alloy::sol_types::private::primitives::aliases::U256, + _data: alloy::sol_types::private::Bytes, + _operation: ::RustType, + _safeTxGas: alloy::sol_types::private::primitives::aliases::U256, + _baseGas: alloy::sol_types::private::primitives::aliases::U256, + _gasPrice: alloy::sol_types::private::primitives::aliases::U256, + _gasToken: alloy::sol_types::private::Address, + _refundReceiver: alloy::sol_types::private::Address, + _9: alloy::sol_types::private::Bytes, + _msgSender: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, checkTransactionCall, N> { + self.call_builder( + &checkTransactionCall { + _to, + _value, + _data, + _operation, + _safeTxGas, + _baseGas, + _gasPrice, + _gasToken, + _refundReceiver, + _9, + _msgSender, + }, + ) + } + ///Creates a new call builder for the [`clearTimelockGuard`] function. + pub fn clearTimelockGuard( + &self, + ) -> alloy_contract::SolCallBuilder<&P, clearTimelockGuardCall, N> { + self.call_builder(&clearTimelockGuardCall) + } + ///Creates a new call builder for the [`configureTimelockGuard`] function. + pub fn configureTimelockGuard( + &self, + _timelockDelay: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, configureTimelockGuardCall, N> { + self.call_builder( + &configureTimelockGuardCall { + _timelockDelay, + }, + ) + } + ///Creates a new call builder for the [`maxCancellationThreshold`] function. + pub fn maxCancellationThreshold( + &self, + _safe: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, maxCancellationThresholdCall, N> { + self.call_builder( + &maxCancellationThresholdCall { + _safe, + }, + ) + } + ///Creates a new call builder for the [`pendingTransactions`] function. + pub fn pendingTransactions( + &self, + _safe: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, pendingTransactionsCall, N> { + self.call_builder(&pendingTransactionsCall { _safe }) + } + ///Creates a new call builder for the [`scheduleTransaction`] function. + pub fn scheduleTransaction( + &self, + _safe: alloy::sol_types::private::Address, + _nonce: alloy::sol_types::private::primitives::aliases::U256, + _params: ::RustType, + _signatures: alloy::sol_types::private::Bytes, + ) -> alloy_contract::SolCallBuilder<&P, scheduleTransactionCall, N> { + self.call_builder( + &scheduleTransactionCall { + _safe, + _nonce, + _params, + _signatures, + }, + ) + } + ///Creates a new call builder for the [`scheduledTransaction`] function. + pub fn scheduledTransaction( + &self, + _safe: alloy::sol_types::private::Address, + _txHash: alloy::sol_types::private::FixedBytes<32>, + ) -> alloy_contract::SolCallBuilder<&P, scheduledTransactionCall, N> { + self.call_builder( + &scheduledTransactionCall { + _safe, + _txHash, + }, + ) + } + ///Creates a new call builder for the [`signCancellation`] function. + pub fn signCancellation( + &self, + _0: alloy::sol_types::private::FixedBytes<32>, + ) -> alloy_contract::SolCallBuilder<&P, signCancellationCall, N> { + self.call_builder(&signCancellationCall(_0)) + } + ///Creates a new call builder for the [`supportsInterface`] function. + pub fn supportsInterface( + &self, + interfaceId: alloy::sol_types::private::FixedBytes<4>, + ) -> alloy_contract::SolCallBuilder<&P, supportsInterfaceCall, N> { + self.call_builder( + &supportsInterfaceCall { + interfaceId, + }, + ) + } + ///Creates a new call builder for the [`timelockDelay`] function. + pub fn timelockDelay( + &self, + _safe: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, timelockDelayCall, N> { + self.call_builder(&timelockDelayCall { _safe }) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > TimelockGuardInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + ///Creates a new event filter for the [`CancellationThresholdUpdated`] event. + pub fn CancellationThresholdUpdated_filter( + &self, + ) -> alloy_contract::Event<&P, CancellationThresholdUpdated, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`GuardConfigured`] event. + pub fn GuardConfigured_filter( + &self, + ) -> alloy_contract::Event<&P, GuardConfigured, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`Message`] event. + pub fn Message_filter(&self) -> alloy_contract::Event<&P, Message, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`TransactionCancelled`] event. + pub fn TransactionCancelled_filter( + &self, + ) -> alloy_contract::Event<&P, TransactionCancelled, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`TransactionExecuted`] event. + pub fn TransactionExecuted_filter( + &self, + ) -> alloy_contract::Event<&P, TransactionExecuted, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`TransactionScheduled`] event. + pub fn TransactionScheduled_filter( + &self, + ) -> alloy_contract::Event<&P, TransactionScheduled, N> { + self.event_filter::() + } + } +} diff --git a/bindings/rust/src/transactor.rs b/bindings/rust/src/transactor.rs new file mode 100644 index 000000000..b2df9eb88 --- /dev/null +++ b/bindings/rust/src/transactor.rs @@ -0,0 +1,1580 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface Transactor { + event OwnerUpdated(address indexed user, address indexed newOwner); + + constructor(address _owner); + + function CALL(address _target, bytes memory _data, uint256 _value) external payable returns (bool success_, bytes memory data_); + function DELEGATECALL(address _target, bytes memory _data) external payable returns (bool success_, bytes memory data_); + function owner() external view returns (address); + function setOwner(address newOwner) external; +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "constructor", + "inputs": [ + { + "name": "_owner", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "CALL", + "inputs": [ + { + "name": "_target", + "type": "address", + "internalType": "address" + }, + { + "name": "_data", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "_value", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "success_", + "type": "bool", + "internalType": "bool" + }, + { + "name": "data_", + "type": "bytes", + "internalType": "bytes" + } + ], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "DELEGATECALL", + "inputs": [ + { + "name": "_target", + "type": "address", + "internalType": "address" + }, + { + "name": "_data", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [ + { + "name": "success_", + "type": "bool", + "internalType": "bool" + }, + { + "name": "data_", + "type": "bytes", + "internalType": "bytes" + } + ], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "owner", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "setOwner", + "inputs": [ + { + "name": "newOwner", + "type": "address", + "internalType": "address" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "event", + "name": "OwnerUpdated", + "inputs": [ + { + "name": "user", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "newOwner", + "type": "address", + "indexed": true, + "internalType": "address" + } + ], + "anonymous": false + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod Transactor { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x608060405234801561001057600080fd5b5060405161071538038061071583398101604081905261002f9161007e565b600080546001600160a01b0319166001600160a01b03831690811782556040518392907f8292fce18fa69edf4db7b94ea2e58241df0ae57f97e0a6c9b29067028bf92d76908290a350506100ae565b60006020828403121561009057600080fd5b81516001600160a01b03811681146100a757600080fd5b9392505050565b610658806100bd6000396000f3fe60806040526004361061003f5760003560e01c806313af4035146100445780636e2d44ae146100665780638da5cb5b14610090578063edee6239146100e2575b600080fd5b34801561005057600080fd5b5061006461005f366004610404565b6100f5565b005b610079610074366004610500565b6101eb565b604051610087929190610587565b60405180910390f35b34801561009c57600080fd5b506000546100bd9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610087565b6100796100f03660046105e1565b6102e5565b60005473ffffffffffffffffffffffffffffffffffffffff16331461017b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a4544000000000000000000000000000000000000000060448201526064015b60405180910390fd5b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081178255604051909133917f8292fce18fa69edf4db7b94ea2e58241df0ae57f97e0a6c9b29067028bf92d769190a350565b6000805460609073ffffffffffffffffffffffffffffffffffffffff163314610270576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a454400000000000000000000000000000000000000006044820152606401610172565b8473ffffffffffffffffffffffffffffffffffffffff168385604051610296919061062f565b60006040518083038185875af1925050503d80600081146102d3576040519150601f19603f3d011682016040523d82523d6000602084013e6102d8565b606091505b5090969095509350505050565b6000805460609073ffffffffffffffffffffffffffffffffffffffff16331461036a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a454400000000000000000000000000000000000000006044820152606401610172565b8373ffffffffffffffffffffffffffffffffffffffff168360405161038f919061062f565b600060405180830381855af49150503d80600081146103ca576040519150601f19603f3d011682016040523d82523d6000602084013e6103cf565b606091505b50909590945092505050565b803573ffffffffffffffffffffffffffffffffffffffff811681146103ff57600080fd5b919050565b60006020828403121561041657600080fd5b61041f826103db565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f83011261046657600080fd5b813567ffffffffffffffff8082111561048157610481610426565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019082821181831017156104c7576104c7610426565b816040528381528660208588010111156104e057600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008060006060848603121561051557600080fd5b61051e846103db565b9250602084013567ffffffffffffffff81111561053a57600080fd5b61054686828701610455565b925050604084013590509250925092565b60005b8381101561057257818101518382015260200161055a565b83811115610581576000848401525b50505050565b821515815260406020820152600082518060408401526105ae816060850160208701610557565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016060019392505050565b600080604083850312156105f457600080fd5b6105fd836103db565b9150602083013567ffffffffffffffff81111561061957600080fd5b61062585828601610455565b9150509250929050565b60008251610641818460208701610557565b919091019291505056fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`@Qa\x07\x158\x03\x80a\x07\x15\x839\x81\x01`@\x81\x90Ra\0/\x91a\0~V[`\0\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x83\x16\x90\x81\x17\x82U`@Q\x83\x92\x90\x7F\x82\x92\xFC\xE1\x8F\xA6\x9E\xDFM\xB7\xB9N\xA2\xE5\x82A\xDF\n\xE5\x7F\x97\xE0\xA6\xC9\xB2\x90g\x02\x8B\xF9-v\x90\x82\x90\xA3PPa\0\xAEV[`\0` \x82\x84\x03\x12\x15a\0\x90W`\0\x80\xFD[\x81Q`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a\0\xA7W`\0\x80\xFD[\x93\x92PPPV[a\x06X\x80a\0\xBD`\09`\0\xF3\xFE`\x80`@R`\x046\x10a\0?W`\x005`\xE0\x1C\x80c\x13\xAF@5\x14a\0DW\x80cn-D\xAE\x14a\0fW\x80c\x8D\xA5\xCB[\x14a\0\x90W\x80c\xED\xEEb9\x14a\0\xE2W[`\0\x80\xFD[4\x80\x15a\0PW`\0\x80\xFD[Pa\0da\0_6`\x04a\x04\x04V[a\0\xF5V[\0[a\0ya\0t6`\x04a\x05\0V[a\x01\xEBV[`@Qa\0\x87\x92\x91\x90a\x05\x87V[`@Q\x80\x91\x03\x90\xF3[4\x80\x15a\0\x9CW`\0\x80\xFD[P`\0Ta\0\xBD\x90s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01a\0\x87V[a\0ya\0\xF06`\x04a\x05\xE1V[a\x02\xE5V[`\0Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x163\x14a\x01{W`@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\x82\x01R`\x0C`$\x82\x01R\x7FUNAUTHORIZED\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`D\x82\x01R`d\x01[`@Q\x80\x91\x03\x90\xFD[`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x16\x90\x81\x17\x82U`@Q\x90\x913\x91\x7F\x82\x92\xFC\xE1\x8F\xA6\x9E\xDFM\xB7\xB9N\xA2\xE5\x82A\xDF\n\xE5\x7F\x97\xE0\xA6\xC9\xB2\x90g\x02\x8B\xF9-v\x91\x90\xA3PV[`\0\x80T``\x90s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x163\x14a\x02pW`@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\x82\x01R`\x0C`$\x82\x01R\x7FUNAUTHORIZED\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`D\x82\x01R`d\x01a\x01rV[\x84s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x83\x85`@Qa\x02\x96\x91\x90a\x06/V[`\0`@Q\x80\x83\x03\x81\x85\x87Z\xF1\x92PPP=\x80`\0\x81\x14a\x02\xD3W`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=`\0` \x84\x01>a\x02\xD8V[``\x91P[P\x90\x96\x90\x95P\x93PPPPV[`\0\x80T``\x90s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x163\x14a\x03jW`@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\x82\x01R`\x0C`$\x82\x01R\x7FUNAUTHORIZED\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`D\x82\x01R`d\x01a\x01rV[\x83s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x83`@Qa\x03\x8F\x91\x90a\x06/V[`\0`@Q\x80\x83\x03\x81\x85Z\xF4\x91PP=\x80`\0\x81\x14a\x03\xCAW`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=`\0` \x84\x01>a\x03\xCFV[``\x91P[P\x90\x95\x90\x94P\x92PPPV[\x805s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x03\xFFW`\0\x80\xFD[\x91\x90PV[`\0` \x82\x84\x03\x12\x15a\x04\x16W`\0\x80\xFD[a\x04\x1F\x82a\x03\xDBV[\x93\x92PPPV[\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[`\0\x82`\x1F\x83\x01\x12a\x04fW`\0\x80\xFD[\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x04\x81Wa\x04\x81a\x04&V[`@Q`\x1F\x83\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x90\x81\x16`?\x01\x16\x81\x01\x90\x82\x82\x11\x81\x83\x10\x17\x15a\x04\xC7Wa\x04\xC7a\x04&V[\x81`@R\x83\x81R\x86` \x85\x88\x01\x01\x11\x15a\x04\xE0W`\0\x80\xFD[\x83` \x87\x01` \x83\x017`\0` \x85\x83\x01\x01R\x80\x94PPPPP\x92\x91PPV[`\0\x80`\0``\x84\x86\x03\x12\x15a\x05\x15W`\0\x80\xFD[a\x05\x1E\x84a\x03\xDBV[\x92P` \x84\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x05:W`\0\x80\xFD[a\x05F\x86\x82\x87\x01a\x04UV[\x92PP`@\x84\x015\x90P\x92P\x92P\x92V[`\0[\x83\x81\x10\x15a\x05rW\x81\x81\x01Q\x83\x82\x01R` \x01a\x05ZV[\x83\x81\x11\x15a\x05\x81W`\0\x84\x84\x01R[PPPPV[\x82\x15\x15\x81R`@` \x82\x01R`\0\x82Q\x80`@\x84\x01Ra\x05\xAE\x81``\x85\x01` \x87\x01a\x05WV[`\x1F\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x91\x90\x91\x01``\x01\x93\x92PPPV[`\0\x80`@\x83\x85\x03\x12\x15a\x05\xF4W`\0\x80\xFD[a\x05\xFD\x83a\x03\xDBV[\x91P` \x83\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x06\x19W`\0\x80\xFD[a\x06%\x85\x82\x86\x01a\x04UV[\x91PP\x92P\x92\x90PV[`\0\x82Qa\x06A\x81\x84` \x87\x01a\x05WV[\x91\x90\x91\x01\x92\x91PPV\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x60806040526004361061003f5760003560e01c806313af4035146100445780636e2d44ae146100665780638da5cb5b14610090578063edee6239146100e2575b600080fd5b34801561005057600080fd5b5061006461005f366004610404565b6100f5565b005b610079610074366004610500565b6101eb565b604051610087929190610587565b60405180910390f35b34801561009c57600080fd5b506000546100bd9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610087565b6100796100f03660046105e1565b6102e5565b60005473ffffffffffffffffffffffffffffffffffffffff16331461017b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a4544000000000000000000000000000000000000000060448201526064015b60405180910390fd5b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081178255604051909133917f8292fce18fa69edf4db7b94ea2e58241df0ae57f97e0a6c9b29067028bf92d769190a350565b6000805460609073ffffffffffffffffffffffffffffffffffffffff163314610270576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a454400000000000000000000000000000000000000006044820152606401610172565b8473ffffffffffffffffffffffffffffffffffffffff168385604051610296919061062f565b60006040518083038185875af1925050503d80600081146102d3576040519150601f19603f3d011682016040523d82523d6000602084013e6102d8565b606091505b5090969095509350505050565b6000805460609073ffffffffffffffffffffffffffffffffffffffff16331461036a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a454400000000000000000000000000000000000000006044820152606401610172565b8373ffffffffffffffffffffffffffffffffffffffff168360405161038f919061062f565b600060405180830381855af49150503d80600081146103ca576040519150601f19603f3d011682016040523d82523d6000602084013e6103cf565b606091505b50909590945092505050565b803573ffffffffffffffffffffffffffffffffffffffff811681146103ff57600080fd5b919050565b60006020828403121561041657600080fd5b61041f826103db565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f83011261046657600080fd5b813567ffffffffffffffff8082111561048157610481610426565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019082821181831017156104c7576104c7610426565b816040528381528660208588010111156104e057600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008060006060848603121561051557600080fd5b61051e846103db565b9250602084013567ffffffffffffffff81111561053a57600080fd5b61054686828701610455565b925050604084013590509250925092565b60005b8381101561057257818101518382015260200161055a565b83811115610581576000848401525b50505050565b821515815260406020820152600082518060408401526105ae816060850160208701610557565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016060019392505050565b600080604083850312156105f457600080fd5b6105fd836103db565b9150602083013567ffffffffffffffff81111561061957600080fd5b61062585828601610455565b9150509250929050565b60008251610641818460208701610557565b919091019291505056fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R`\x046\x10a\0?W`\x005`\xE0\x1C\x80c\x13\xAF@5\x14a\0DW\x80cn-D\xAE\x14a\0fW\x80c\x8D\xA5\xCB[\x14a\0\x90W\x80c\xED\xEEb9\x14a\0\xE2W[`\0\x80\xFD[4\x80\x15a\0PW`\0\x80\xFD[Pa\0da\0_6`\x04a\x04\x04V[a\0\xF5V[\0[a\0ya\0t6`\x04a\x05\0V[a\x01\xEBV[`@Qa\0\x87\x92\x91\x90a\x05\x87V[`@Q\x80\x91\x03\x90\xF3[4\x80\x15a\0\x9CW`\0\x80\xFD[P`\0Ta\0\xBD\x90s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81V[`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01a\0\x87V[a\0ya\0\xF06`\x04a\x05\xE1V[a\x02\xE5V[`\0Ts\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x163\x14a\x01{W`@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\x82\x01R`\x0C`$\x82\x01R\x7FUNAUTHORIZED\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`D\x82\x01R`d\x01[`@Q\x80\x91\x03\x90\xFD[`\0\x80T\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x16\x90\x81\x17\x82U`@Q\x90\x913\x91\x7F\x82\x92\xFC\xE1\x8F\xA6\x9E\xDFM\xB7\xB9N\xA2\xE5\x82A\xDF\n\xE5\x7F\x97\xE0\xA6\xC9\xB2\x90g\x02\x8B\xF9-v\x91\x90\xA3PV[`\0\x80T``\x90s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x163\x14a\x02pW`@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\x82\x01R`\x0C`$\x82\x01R\x7FUNAUTHORIZED\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`D\x82\x01R`d\x01a\x01rV[\x84s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x83\x85`@Qa\x02\x96\x91\x90a\x06/V[`\0`@Q\x80\x83\x03\x81\x85\x87Z\xF1\x92PPP=\x80`\0\x81\x14a\x02\xD3W`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=`\0` \x84\x01>a\x02\xD8V[``\x91P[P\x90\x96\x90\x95P\x93PPPPV[`\0\x80T``\x90s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x163\x14a\x03jW`@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\x82\x01R`\x0C`$\x82\x01R\x7FUNAUTHORIZED\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`D\x82\x01R`d\x01a\x01rV[\x83s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x83`@Qa\x03\x8F\x91\x90a\x06/V[`\0`@Q\x80\x83\x03\x81\x85Z\xF4\x91PP=\x80`\0\x81\x14a\x03\xCAW`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=`\0` \x84\x01>a\x03\xCFV[``\x91P[P\x90\x95\x90\x94P\x92PPPV[\x805s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x03\xFFW`\0\x80\xFD[\x91\x90PV[`\0` \x82\x84\x03\x12\x15a\x04\x16W`\0\x80\xFD[a\x04\x1F\x82a\x03\xDBV[\x93\x92PPPV[\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[`\0\x82`\x1F\x83\x01\x12a\x04fW`\0\x80\xFD[\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x04\x81Wa\x04\x81a\x04&V[`@Q`\x1F\x83\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x90\x81\x16`?\x01\x16\x81\x01\x90\x82\x82\x11\x81\x83\x10\x17\x15a\x04\xC7Wa\x04\xC7a\x04&V[\x81`@R\x83\x81R\x86` \x85\x88\x01\x01\x11\x15a\x04\xE0W`\0\x80\xFD[\x83` \x87\x01` \x83\x017`\0` \x85\x83\x01\x01R\x80\x94PPPPP\x92\x91PPV[`\0\x80`\0``\x84\x86\x03\x12\x15a\x05\x15W`\0\x80\xFD[a\x05\x1E\x84a\x03\xDBV[\x92P` \x84\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x05:W`\0\x80\xFD[a\x05F\x86\x82\x87\x01a\x04UV[\x92PP`@\x84\x015\x90P\x92P\x92P\x92V[`\0[\x83\x81\x10\x15a\x05rW\x81\x81\x01Q\x83\x82\x01R` \x01a\x05ZV[\x83\x81\x11\x15a\x05\x81W`\0\x84\x84\x01R[PPPPV[\x82\x15\x15\x81R`@` \x82\x01R`\0\x82Q\x80`@\x84\x01Ra\x05\xAE\x81``\x85\x01` \x87\x01a\x05WV[`\x1F\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x91\x90\x91\x01``\x01\x93\x92PPPV[`\0\x80`@\x83\x85\x03\x12\x15a\x05\xF4W`\0\x80\xFD[a\x05\xFD\x83a\x03\xDBV[\x91P` \x83\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x06\x19W`\0\x80\xFD[a\x06%\x85\x82\x86\x01a\x04UV[\x91PP\x92P\x92\x90PV[`\0\x82Qa\x06A\x81\x84` \x87\x01a\x05WV[\x91\x90\x91\x01\x92\x91PPV\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `OwnerUpdated(address,address)` and selector `0x8292fce18fa69edf4db7b94ea2e58241df0ae57f97e0a6c9b29067028bf92d76`. +```solidity +event OwnerUpdated(address indexed user, address indexed newOwner); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct OwnerUpdated { + #[allow(missing_docs)] + pub user: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub newOwner: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for OwnerUpdated { + type DataTuple<'a> = (); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "OwnerUpdated(address,address)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 130u8, 146u8, 252u8, 225u8, 143u8, 166u8, 158u8, 223u8, 77u8, 183u8, + 185u8, 78u8, 162u8, 229u8, 130u8, 65u8, 223u8, 10u8, 229u8, 127u8, 151u8, + 224u8, 166u8, 201u8, 178u8, 144u8, 103u8, 2u8, 139u8, 249u8, 45u8, 118u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + user: topics.1, + newOwner: topics.2, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + () + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.user.clone(), self.newOwner.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.user, + ); + out[2usize] = ::encode_topic( + &self.newOwner, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for OwnerUpdated { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&OwnerUpdated> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &OwnerUpdated) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + /**Constructor`. +```solidity +constructor(address _owner); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct constructorCall { + #[allow(missing_docs)] + pub _owner: alloy::sol_types::private::Address, + } + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: constructorCall) -> Self { + (value._owner,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for constructorCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _owner: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolConstructor for constructorCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._owner, + ), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `CALL(address,bytes,uint256)` and selector `0x6e2d44ae`. +```solidity +function CALL(address _target, bytes memory _data, uint256 _value) external payable returns (bool success_, bytes memory data_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct CALLCall { + #[allow(missing_docs)] + pub _target: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _data: alloy::sol_types::private::Bytes, + #[allow(missing_docs)] + pub _value: alloy::sol_types::private::primitives::aliases::U256, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`CALL(address,bytes,uint256)`](CALLCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct CALLReturn { + #[allow(missing_docs)] + pub success_: bool, + #[allow(missing_docs)] + pub data_: alloy::sol_types::private::Bytes, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Bytes, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Bytes, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: CALLCall) -> Self { + (value._target, value._data, value._value) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for CALLCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _target: tuple.0, + _data: tuple.1, + _value: tuple.2, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Bool, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool, alloy::sol_types::private::Bytes); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: CALLReturn) -> Self { + (value.success_, value.data_) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for CALLReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + success_: tuple.0, + data_: tuple.1, + } + } + } + } + impl CALLReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + ( + ::tokenize( + &self.success_, + ), + ::tokenize( + &self.data_, + ), + ) + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for CALLCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Bytes, + alloy::sol_types::sol_data::Uint<256>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = CALLReturn; + type ReturnTuple<'a> = ( + alloy::sol_types::sol_data::Bool, + alloy::sol_types::sol_data::Bytes, + ); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "CALL(address,bytes,uint256)"; + const SELECTOR: [u8; 4] = [110u8, 45u8, 68u8, 174u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._target, + ), + ::tokenize( + &self._data, + ), + as alloy_sol_types::SolType>::tokenize(&self._value), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + CALLReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `DELEGATECALL(address,bytes)` and selector `0xedee6239`. +```solidity +function DELEGATECALL(address _target, bytes memory _data) external payable returns (bool success_, bytes memory data_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct DELEGATECALLCall { + #[allow(missing_docs)] + pub _target: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _data: alloy::sol_types::private::Bytes, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`DELEGATECALL(address,bytes)`](DELEGATECALLCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct DELEGATECALLReturn { + #[allow(missing_docs)] + pub success_: bool, + #[allow(missing_docs)] + pub data_: alloy::sol_types::private::Bytes, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Bytes, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: DELEGATECALLCall) -> Self { + (value._target, value._data) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for DELEGATECALLCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _target: tuple.0, + _data: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Bool, + alloy::sol_types::sol_data::Bytes, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool, alloy::sol_types::private::Bytes); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: DELEGATECALLReturn) -> Self { + (value.success_, value.data_) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for DELEGATECALLReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + success_: tuple.0, + data_: tuple.1, + } + } + } + } + impl DELEGATECALLReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + ( + ::tokenize( + &self.success_, + ), + ::tokenize( + &self.data_, + ), + ) + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for DELEGATECALLCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Bytes, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = DELEGATECALLReturn; + type ReturnTuple<'a> = ( + alloy::sol_types::sol_data::Bool, + alloy::sol_types::sol_data::Bytes, + ); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "DELEGATECALL(address,bytes)"; + const SELECTOR: [u8; 4] = [237u8, 238u8, 98u8, 57u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._target, + ), + ::tokenize( + &self._data, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + DELEGATECALLReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `owner()` and selector `0x8da5cb5b`. +```solidity +function owner() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ownerCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`owner()`](ownerCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ownerReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ownerCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ownerCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: ownerReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for ownerReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for ownerCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "owner()"; + const SELECTOR: [u8; 4] = [141u8, 165u8, 203u8, 91u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: ownerReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: ownerReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `setOwner(address)` and selector `0x13af4035`. +```solidity +function setOwner(address newOwner) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setOwnerCall { + #[allow(missing_docs)] + pub newOwner: alloy::sol_types::private::Address, + } + ///Container type for the return parameters of the [`setOwner(address)`](setOwnerCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct setOwnerReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: setOwnerCall) -> Self { + (value.newOwner,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for setOwnerCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { newOwner: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: setOwnerReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for setOwnerReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl setOwnerReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for setOwnerCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = setOwnerReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "setOwner(address)"; + const SELECTOR: [u8; 4] = [19u8, 175u8, 64u8, 53u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.newOwner, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + setOwnerReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + ///Container for all the [`Transactor`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum TransactorCalls { + #[allow(missing_docs)] + CALL(CALLCall), + #[allow(missing_docs)] + DELEGATECALL(DELEGATECALLCall), + #[allow(missing_docs)] + owner(ownerCall), + #[allow(missing_docs)] + setOwner(setOwnerCall), + } + impl TransactorCalls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [19u8, 175u8, 64u8, 53u8], + [110u8, 45u8, 68u8, 174u8], + [141u8, 165u8, 203u8, 91u8], + [237u8, 238u8, 98u8, 57u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(setOwner), + ::core::stringify!(CALL), + ::core::stringify!(owner), + ::core::stringify!(DELEGATECALL), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for TransactorCalls { + const NAME: &'static str = "TransactorCalls"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 4usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::CALL(_) => ::SELECTOR, + Self::DELEGATECALL(_) => { + ::SELECTOR + } + Self::owner(_) => ::SELECTOR, + Self::setOwner(_) => ::SELECTOR, + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn setOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(TransactorCalls::setOwner) + } + setOwner + }, + { + fn CALL(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(TransactorCalls::CALL) + } + CALL + }, + { + fn owner(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(TransactorCalls::owner) + } + owner + }, + { + fn DELEGATECALL( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(TransactorCalls::DELEGATECALL) + } + DELEGATECALL + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn setOwner( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(TransactorCalls::setOwner) + } + setOwner + }, + { + fn CALL(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(TransactorCalls::CALL) + } + CALL + }, + { + fn owner(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(TransactorCalls::owner) + } + owner + }, + { + fn DELEGATECALL( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(TransactorCalls::DELEGATECALL) + } + DELEGATECALL + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::CALL(inner) => { + ::abi_encoded_size(inner) + } + Self::DELEGATECALL(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::owner(inner) => { + ::abi_encoded_size(inner) + } + Self::setOwner(inner) => { + ::abi_encoded_size(inner) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::CALL(inner) => { + ::abi_encode_raw(inner, out) + } + Self::DELEGATECALL(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::owner(inner) => { + ::abi_encode_raw(inner, out) + } + Self::setOwner(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + } + } + } + ///Container for all the [`Transactor`](self) events. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum TransactorEvents { + #[allow(missing_docs)] + OwnerUpdated(OwnerUpdated), + } + impl TransactorEvents { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 32usize]] = &[ + [ + 130u8, 146u8, 252u8, 225u8, 143u8, 166u8, 158u8, 223u8, 77u8, 183u8, + 185u8, 78u8, 162u8, 229u8, 130u8, 65u8, 223u8, 10u8, 229u8, 127u8, 151u8, + 224u8, 166u8, 201u8, 178u8, 144u8, 103u8, 2u8, 139u8, 249u8, 45u8, 118u8, + ], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(OwnerUpdated), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolEventInterface for TransactorEvents { + const NAME: &'static str = "TransactorEvents"; + const COUNT: usize = 1usize; + fn decode_raw_log( + topics: &[alloy_sol_types::Word], + data: &[u8], + ) -> alloy_sol_types::Result { + match topics.first().copied() { + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::OwnerUpdated) + } + _ => { + alloy_sol_types::private::Err(alloy_sol_types::Error::InvalidLog { + name: ::NAME, + log: alloy_sol_types::private::Box::new( + alloy_sol_types::private::LogData::new_unchecked( + topics.to_vec(), + data.to_vec().into(), + ), + ), + }) + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for TransactorEvents { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + match self { + Self::OwnerUpdated(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + } + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + match self { + Self::OwnerUpdated(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`Transactor`](self) contract instance. + +See the [wrapper's documentation](`TransactorInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> TransactorInstance { + TransactorInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + _owner: alloy::sol_types::private::Address, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + TransactorInstance::::deploy(__provider, _owner) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + _owner: alloy::sol_types::private::Address, + ) -> alloy_contract::RawCallBuilder { + TransactorInstance::::deploy_builder(__provider, _owner) + } + /**A [`Transactor`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`Transactor`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct TransactorInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for TransactorInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("TransactorInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > TransactorInstance { + /**Creates a new wrapper around an on-chain [`Transactor`](self) contract instance. + +See the [wrapper's documentation](`TransactorInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + _owner: alloy::sol_types::private::Address, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider, _owner); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder( + __provider: P, + _owner: alloy::sol_types::private::Address, + ) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + [ + &BYTECODE[..], + &alloy_sol_types::SolConstructor::abi_encode( + &constructorCall { _owner }, + )[..], + ] + .concat() + .into(), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl TransactorInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> TransactorInstance { + TransactorInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > TransactorInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`CALL`] function. + pub fn CALL( + &self, + _target: alloy::sol_types::private::Address, + _data: alloy::sol_types::private::Bytes, + _value: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, CALLCall, N> { + self.call_builder(&CALLCall { _target, _data, _value }) + } + ///Creates a new call builder for the [`DELEGATECALL`] function. + pub fn DELEGATECALL( + &self, + _target: alloy::sol_types::private::Address, + _data: alloy::sol_types::private::Bytes, + ) -> alloy_contract::SolCallBuilder<&P, DELEGATECALLCall, N> { + self.call_builder(&DELEGATECALLCall { _target, _data }) + } + ///Creates a new call builder for the [`owner`] function. + pub fn owner(&self) -> alloy_contract::SolCallBuilder<&P, ownerCall, N> { + self.call_builder(&ownerCall) + } + ///Creates a new call builder for the [`setOwner`] function. + pub fn setOwner( + &self, + newOwner: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, setOwnerCall, N> { + self.call_builder(&setOwnerCall { newOwner }) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > TransactorInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + ///Creates a new event filter for the [`OwnerUpdated`] event. + pub fn OwnerUpdated_filter(&self) -> alloy_contract::Event<&P, OwnerUpdated, N> { + self.event_filter::() + } + } +} diff --git a/bindings/rust/src/transfer_onion.rs b/bindings/rust/src/transfer_onion.rs new file mode 100644 index 000000000..ba0fde7c9 --- /dev/null +++ b/bindings/rust/src/transfer_onion.rs @@ -0,0 +1,1528 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface TransferOnion { + struct Layer { + address recipient; + uint256 amount; + bytes32 shell; + } + + constructor(address _token, address _sender, bytes32 _shell); + + function SENDER() external view returns (address); + function TOKEN() external view returns (address); + function peel(Layer[] memory _layers) external; + function shell() external view returns (bytes32); +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "constructor", + "inputs": [ + { + "name": "_token", + "type": "address", + "internalType": "contract ERC20" + }, + { + "name": "_sender", + "type": "address", + "internalType": "address" + }, + { + "name": "_shell", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "SENDER", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "TOKEN", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract ERC20" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "peel", + "inputs": [ + { + "name": "_layers", + "type": "tuple[]", + "internalType": "struct TransferOnion.Layer[]", + "components": [ + { + "name": "recipient", + "type": "address", + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "shell", + "type": "bytes32", + "internalType": "bytes32" + } + ] + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "shell", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "stateMutability": "view" + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod TransferOnion { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x60c060405234801561001057600080fd5b50604051610a31380380610a3183398101604081905261002f91610069565b600160008190556001600160a01b039384166080529190921660a052556100ac565b6001600160a01b038116811461006657600080fd5b50565b60008060006060848603121561007e57600080fd5b835161008981610051565b602085015190935061009a81610051565b80925050604084015190509250925092565b60805160a0516109546100dd60003960008181606b01526102d601526000818160bc01526102b301526109546000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c806343913491146100515780636050f2f81461006657806382bfefc8146100b7578063f11d2ff4146100de575b600080fd5b61006461005f366004610766565b6100f5565b005b61008d7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b61008d7f000000000000000000000000000000000000000000000000000000000000000081565b6100e760015481565b6040519081526020016100ae565b600260005403610166576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064015b60405180910390fd5b60026000908155600154825190915b818110156103045760008482815181106101915761019161085d565b60200260200101519050838160000151826020015183604001516040516020016101e69392919073ffffffffffffffffffffffffffffffffffffffff9390931683526020830191909152604082015260600190565b6040516020818303038152906040528051906020012014610289576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f5472616e736665724f6e696f6e3a20776861742061726520796f7520646f696e60448201527f6720696e206d79207377616d703f000000000000000000000000000000000000606482015260840161015d565b6040810151815160208301519195506102fb9173ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016917f000000000000000000000000000000000000000000000000000000000000000091610311565b50600101610175565b5050600190815560005550565b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd000000000000000000000000000000000000000000000000000000001790526103a69085906103ac565b50505050565b600061040e826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166104bd9092919063ffffffff16565b8051909150156104b8578080602001905181019061042c919061088c565b6104b8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f74207375636365656400000000000000000000000000000000000000000000606482015260840161015d565b505050565b60606104cc84846000856104d6565b90505b9392505050565b606082471015610568576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c0000000000000000000000000000000000000000000000000000606482015260840161015d565b73ffffffffffffffffffffffffffffffffffffffff85163b6105e6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161015d565b6000808673ffffffffffffffffffffffffffffffffffffffff16858760405161060f91906108da565b60006040518083038185875af1925050503d806000811461064c576040519150601f19603f3d011682016040523d82523d6000602084013e610651565b606091505b509150915061066182828661066c565b979650505050505050565b6060831561067b5750816104cf565b82511561068b5782518084602001fd5b816040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161015d91906108f6565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040516060810167ffffffffffffffff81118282101715610711576107116106bf565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff8111828210171561075e5761075e6106bf565b604052919050565b6000602080838503121561077957600080fd5b823567ffffffffffffffff8082111561079157600080fd5b818501915085601f8301126107a557600080fd5b8135818111156107b7576107b76106bf565b6107c5848260051b01610717565b818152848101925060609182028401850191888311156107e457600080fd5b938501935b828510156108515780858a0312156108015760008081fd5b6108096106ee565b853573ffffffffffffffffffffffffffffffffffffffff8116811461082e5760008081fd5b8152858701358782015260408087013590820152845293840193928501926107e9565b50979650505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006020828403121561089e57600080fd5b815180151581146104cf57600080fd5b60005b838110156108c95781810151838201526020016108b1565b838111156103a65750506000910152565b600082516108ec8184602087016108ae565b9190910192915050565b60208152600082518060208401526109158160408501602087016108ae565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\xC0`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`@Qa\n18\x03\x80a\n1\x839\x81\x01`@\x81\x90Ra\0/\x91a\0iV[`\x01`\0\x81\x90U`\x01`\x01`\xA0\x1B\x03\x93\x84\x16`\x80R\x91\x90\x92\x16`\xA0RUa\0\xACV[`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a\0fW`\0\x80\xFD[PV[`\0\x80`\0``\x84\x86\x03\x12\x15a\0~W`\0\x80\xFD[\x83Qa\0\x89\x81a\0QV[` \x85\x01Q\x90\x93Pa\0\x9A\x81a\0QV[\x80\x92PP`@\x84\x01Q\x90P\x92P\x92P\x92V[`\x80Q`\xA0Qa\tTa\0\xDD`\09`\0\x81\x81`k\x01Ra\x02\xD6\x01R`\0\x81\x81`\xBC\x01Ra\x02\xB3\x01Ra\tT`\0\xF3\xFE`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`\x046\x10a\0LW`\x005`\xE0\x1C\x80cC\x914\x91\x14a\0QW\x80c`P\xF2\xF8\x14a\0fW\x80c\x82\xBF\xEF\xC8\x14a\0\xB7W\x80c\xF1\x1D/\xF4\x14a\0\xDEW[`\0\x80\xFD[a\0da\0_6`\x04a\x07fV[a\0\xF5V[\0[a\0\x8D\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[a\0\x8D\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[a\0\xE7`\x01T\x81V[`@Q\x90\x81R` \x01a\0\xAEV[`\x02`\0T\x03a\x01fW`@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\x82\x01R`\x1F`$\x82\x01R\x7FReentrancyGuard: reentrant call\0`D\x82\x01R`d\x01[`@Q\x80\x91\x03\x90\xFD[`\x02`\0\x90\x81U`\x01T\x82Q\x90\x91[\x81\x81\x10\x15a\x03\x04W`\0\x84\x82\x81Q\x81\x10a\x01\x91Wa\x01\x91a\x08]V[` \x02` \x01\x01Q\x90P\x83\x81`\0\x01Q\x82` \x01Q\x83`@\x01Q`@Q` \x01a\x01\xE6\x93\x92\x91\x90s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x93\x90\x93\x16\x83R` \x83\x01\x91\x90\x91R`@\x82\x01R``\x01\x90V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 \x14a\x02\x89W`@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\x82\x01R`.`$\x82\x01R\x7FTransferOnion: what are you doin`D\x82\x01R\x7Fg in my swamp?\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x01]V[`@\x81\x01Q\x81Q` \x83\x01Q\x91\x95Pa\x02\xFB\x91s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x91\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x91a\x03\x11V[P`\x01\x01a\x01uV[PP`\x01\x90\x81U`\0UPV[`@\x80Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x85\x81\x16`$\x83\x01R\x84\x16`D\x82\x01R`d\x80\x82\x01\x84\x90R\x82Q\x80\x83\x03\x90\x91\x01\x81R`\x84\x90\x91\x01\x90\x91R` \x81\x01\x80Q{\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F#\xB8r\xDD\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\x17\x90Ra\x03\xA6\x90\x85\x90a\x03\xACV[PPPPV[`\0a\x04\x0E\x82`@Q\x80`@\x01`@R\x80` \x81R` \x01\x7FSafeERC20: low-level call failed\x81RP\x85s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a\x04\xBD\x90\x92\x91\x90c\xFF\xFF\xFF\xFF\x16V[\x80Q\x90\x91P\x15a\x04\xB8W\x80\x80` \x01\x90Q\x81\x01\x90a\x04,\x91\x90a\x08\x8CV[a\x04\xB8W`@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\x82\x01R`*`$\x82\x01R\x7FSafeERC20: ERC20 operation did n`D\x82\x01R\x7Fot succeed\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x01]V[PPPV[``a\x04\xCC\x84\x84`\0\x85a\x04\xD6V[\x90P[\x93\x92PPPV[``\x82G\x10\x15a\x05hW`@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\x82\x01R`&`$\x82\x01R\x7FAddress: insufficient balance fo`D\x82\x01R\x7Fr call\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`d\x82\x01R`\x84\x01a\x01]V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x85\x16;a\x05\xE6W`@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\x82\x01R`\x1D`$\x82\x01R\x7FAddress: call to non-contract\0\0\0`D\x82\x01R`d\x01a\x01]V[`\0\x80\x86s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x85\x87`@Qa\x06\x0F\x91\x90a\x08\xDAV[`\0`@Q\x80\x83\x03\x81\x85\x87Z\xF1\x92PPP=\x80`\0\x81\x14a\x06LW`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=`\0` \x84\x01>a\x06QV[``\x91P[P\x91P\x91Pa\x06a\x82\x82\x86a\x06lV[\x97\x96PPPPPPPV[``\x83\x15a\x06{WP\x81a\x04\xCFV[\x82Q\x15a\x06\x8BW\x82Q\x80\x84` \x01\xFD[\x81`@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\x01]\x91\x90a\x08\xF6V[\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[`@Q``\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a\x07\x11Wa\x07\x11a\x06\xBFV[`@R\x90V[`@Q`\x1F\x82\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a\x07^Wa\x07^a\x06\xBFV[`@R\x91\x90PV[`\0` \x80\x83\x85\x03\x12\x15a\x07yW`\0\x80\xFD[\x825g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x07\x91W`\0\x80\xFD[\x81\x85\x01\x91P\x85`\x1F\x83\x01\x12a\x07\xA5W`\0\x80\xFD[\x815\x81\x81\x11\x15a\x07\xB7Wa\x07\xB7a\x06\xBFV[a\x07\xC5\x84\x82`\x05\x1B\x01a\x07\x17V[\x81\x81R\x84\x81\x01\x92P``\x91\x82\x02\x84\x01\x85\x01\x91\x88\x83\x11\x15a\x07\xE4W`\0\x80\xFD[\x93\x85\x01\x93[\x82\x85\x10\x15a\x08QW\x80\x85\x8A\x03\x12\x15a\x08\x01W`\0\x80\x81\xFD[a\x08\ta\x06\xEEV[\x855s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x08.W`\0\x80\x81\xFD[\x81R\x85\x87\x015\x87\x82\x01R`@\x80\x87\x015\x90\x82\x01R\x84R\x93\x84\x01\x93\x92\x85\x01\x92a\x07\xE9V[P\x97\x96PPPPPPPV[\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`2`\x04R`$`\0\xFD[`\0` \x82\x84\x03\x12\x15a\x08\x9EW`\0\x80\xFD[\x81Q\x80\x15\x15\x81\x14a\x04\xCFW`\0\x80\xFD[`\0[\x83\x81\x10\x15a\x08\xC9W\x81\x81\x01Q\x83\x82\x01R` \x01a\x08\xB1V[\x83\x81\x11\x15a\x03\xA6WPP`\0\x91\x01RV[`\0\x82Qa\x08\xEC\x81\x84` \x87\x01a\x08\xAEV[\x91\x90\x91\x01\x92\x91PPV[` \x81R`\0\x82Q\x80` \x84\x01Ra\t\x15\x81`@\x85\x01` \x87\x01a\x08\xAEV[`\x1F\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x91\x90\x91\x01`@\x01\x92\x91PPV\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x608060405234801561001057600080fd5b506004361061004c5760003560e01c806343913491146100515780636050f2f81461006657806382bfefc8146100b7578063f11d2ff4146100de575b600080fd5b61006461005f366004610766565b6100f5565b005b61008d7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b61008d7f000000000000000000000000000000000000000000000000000000000000000081565b6100e760015481565b6040519081526020016100ae565b600260005403610166576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064015b60405180910390fd5b60026000908155600154825190915b818110156103045760008482815181106101915761019161085d565b60200260200101519050838160000151826020015183604001516040516020016101e69392919073ffffffffffffffffffffffffffffffffffffffff9390931683526020830191909152604082015260600190565b6040516020818303038152906040528051906020012014610289576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f5472616e736665724f6e696f6e3a20776861742061726520796f7520646f696e60448201527f6720696e206d79207377616d703f000000000000000000000000000000000000606482015260840161015d565b6040810151815160208301519195506102fb9173ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016917f000000000000000000000000000000000000000000000000000000000000000091610311565b50600101610175565b5050600190815560005550565b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd000000000000000000000000000000000000000000000000000000001790526103a69085906103ac565b50505050565b600061040e826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166104bd9092919063ffffffff16565b8051909150156104b8578080602001905181019061042c919061088c565b6104b8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f74207375636365656400000000000000000000000000000000000000000000606482015260840161015d565b505050565b60606104cc84846000856104d6565b90505b9392505050565b606082471015610568576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c0000000000000000000000000000000000000000000000000000606482015260840161015d565b73ffffffffffffffffffffffffffffffffffffffff85163b6105e6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161015d565b6000808673ffffffffffffffffffffffffffffffffffffffff16858760405161060f91906108da565b60006040518083038185875af1925050503d806000811461064c576040519150601f19603f3d011682016040523d82523d6000602084013e610651565b606091505b509150915061066182828661066c565b979650505050505050565b6060831561067b5750816104cf565b82511561068b5782518084602001fd5b816040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161015d91906108f6565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040516060810167ffffffffffffffff81118282101715610711576107116106bf565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff8111828210171561075e5761075e6106bf565b604052919050565b6000602080838503121561077957600080fd5b823567ffffffffffffffff8082111561079157600080fd5b818501915085601f8301126107a557600080fd5b8135818111156107b7576107b76106bf565b6107c5848260051b01610717565b818152848101925060609182028401850191888311156107e457600080fd5b938501935b828510156108515780858a0312156108015760008081fd5b6108096106ee565b853573ffffffffffffffffffffffffffffffffffffffff8116811461082e5760008081fd5b8152858701358782015260408087013590820152845293840193928501926107e9565b50979650505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006020828403121561089e57600080fd5b815180151581146104cf57600080fd5b60005b838110156108c95781810151838201526020016108b1565b838111156103a65750506000910152565b600082516108ec8184602087016108ae565b9190910192915050565b60208152600082518060208401526109158160408501602087016108ae565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`\x046\x10a\0LW`\x005`\xE0\x1C\x80cC\x914\x91\x14a\0QW\x80c`P\xF2\xF8\x14a\0fW\x80c\x82\xBF\xEF\xC8\x14a\0\xB7W\x80c\xF1\x1D/\xF4\x14a\0\xDEW[`\0\x80\xFD[a\0da\0_6`\x04a\x07fV[a\0\xF5V[\0[a\0\x8D\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[`@Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[a\0\x8D\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[a\0\xE7`\x01T\x81V[`@Q\x90\x81R` \x01a\0\xAEV[`\x02`\0T\x03a\x01fW`@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\x82\x01R`\x1F`$\x82\x01R\x7FReentrancyGuard: reentrant call\0`D\x82\x01R`d\x01[`@Q\x80\x91\x03\x90\xFD[`\x02`\0\x90\x81U`\x01T\x82Q\x90\x91[\x81\x81\x10\x15a\x03\x04W`\0\x84\x82\x81Q\x81\x10a\x01\x91Wa\x01\x91a\x08]V[` \x02` \x01\x01Q\x90P\x83\x81`\0\x01Q\x82` \x01Q\x83`@\x01Q`@Q` \x01a\x01\xE6\x93\x92\x91\x90s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x93\x90\x93\x16\x83R` \x83\x01\x91\x90\x91R`@\x82\x01R``\x01\x90V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 \x14a\x02\x89W`@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\x82\x01R`.`$\x82\x01R\x7FTransferOnion: what are you doin`D\x82\x01R\x7Fg in my swamp?\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x01]V[`@\x81\x01Q\x81Q` \x83\x01Q\x91\x95Pa\x02\xFB\x91s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x91\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x91a\x03\x11V[P`\x01\x01a\x01uV[PP`\x01\x90\x81U`\0UPV[`@\x80Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x85\x81\x16`$\x83\x01R\x84\x16`D\x82\x01R`d\x80\x82\x01\x84\x90R\x82Q\x80\x83\x03\x90\x91\x01\x81R`\x84\x90\x91\x01\x90\x91R` \x81\x01\x80Q{\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F#\xB8r\xDD\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\x17\x90Ra\x03\xA6\x90\x85\x90a\x03\xACV[PPPPV[`\0a\x04\x0E\x82`@Q\x80`@\x01`@R\x80` \x81R` \x01\x7FSafeERC20: low-level call failed\x81RP\x85s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a\x04\xBD\x90\x92\x91\x90c\xFF\xFF\xFF\xFF\x16V[\x80Q\x90\x91P\x15a\x04\xB8W\x80\x80` \x01\x90Q\x81\x01\x90a\x04,\x91\x90a\x08\x8CV[a\x04\xB8W`@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\x82\x01R`*`$\x82\x01R\x7FSafeERC20: ERC20 operation did n`D\x82\x01R\x7Fot succeed\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x01]V[PPPV[``a\x04\xCC\x84\x84`\0\x85a\x04\xD6V[\x90P[\x93\x92PPPV[``\x82G\x10\x15a\x05hW`@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\x82\x01R`&`$\x82\x01R\x7FAddress: insufficient balance fo`D\x82\x01R\x7Fr call\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`d\x82\x01R`\x84\x01a\x01]V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x85\x16;a\x05\xE6W`@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\x82\x01R`\x1D`$\x82\x01R\x7FAddress: call to non-contract\0\0\0`D\x82\x01R`d\x01a\x01]V[`\0\x80\x86s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x85\x87`@Qa\x06\x0F\x91\x90a\x08\xDAV[`\0`@Q\x80\x83\x03\x81\x85\x87Z\xF1\x92PPP=\x80`\0\x81\x14a\x06LW`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=`\0` \x84\x01>a\x06QV[``\x91P[P\x91P\x91Pa\x06a\x82\x82\x86a\x06lV[\x97\x96PPPPPPPV[``\x83\x15a\x06{WP\x81a\x04\xCFV[\x82Q\x15a\x06\x8BW\x82Q\x80\x84` \x01\xFD[\x81`@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\x01]\x91\x90a\x08\xF6V[\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[`@Q``\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a\x07\x11Wa\x07\x11a\x06\xBFV[`@R\x90V[`@Q`\x1F\x82\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a\x07^Wa\x07^a\x06\xBFV[`@R\x91\x90PV[`\0` \x80\x83\x85\x03\x12\x15a\x07yW`\0\x80\xFD[\x825g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x07\x91W`\0\x80\xFD[\x81\x85\x01\x91P\x85`\x1F\x83\x01\x12a\x07\xA5W`\0\x80\xFD[\x815\x81\x81\x11\x15a\x07\xB7Wa\x07\xB7a\x06\xBFV[a\x07\xC5\x84\x82`\x05\x1B\x01a\x07\x17V[\x81\x81R\x84\x81\x01\x92P``\x91\x82\x02\x84\x01\x85\x01\x91\x88\x83\x11\x15a\x07\xE4W`\0\x80\xFD[\x93\x85\x01\x93[\x82\x85\x10\x15a\x08QW\x80\x85\x8A\x03\x12\x15a\x08\x01W`\0\x80\x81\xFD[a\x08\ta\x06\xEEV[\x855s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x08.W`\0\x80\x81\xFD[\x81R\x85\x87\x015\x87\x82\x01R`@\x80\x87\x015\x90\x82\x01R\x84R\x93\x84\x01\x93\x92\x85\x01\x92a\x07\xE9V[P\x97\x96PPPPPPPV[\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`2`\x04R`$`\0\xFD[`\0` \x82\x84\x03\x12\x15a\x08\x9EW`\0\x80\xFD[\x81Q\x80\x15\x15\x81\x14a\x04\xCFW`\0\x80\xFD[`\0[\x83\x81\x10\x15a\x08\xC9W\x81\x81\x01Q\x83\x82\x01R` \x01a\x08\xB1V[\x83\x81\x11\x15a\x03\xA6WPP`\0\x91\x01RV[`\0\x82Qa\x08\xEC\x81\x84` \x87\x01a\x08\xAEV[\x91\x90\x91\x01\x92\x91PPV[` \x81R`\0\x82Q\x80` \x84\x01Ra\t\x15\x81`@\x85\x01` \x87\x01a\x08\xAEV[`\x1F\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x91\x90\x91\x01`@\x01\x92\x91PPV\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**```solidity +struct Layer { address recipient; uint256 amount; bytes32 shell; } +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct Layer { + #[allow(missing_docs)] + pub recipient: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub amount: alloy::sol_types::private::primitives::aliases::U256, + #[allow(missing_docs)] + pub shell: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + alloy::sol_types::private::FixedBytes<32>, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: Layer) -> Self { + (value.recipient, value.amount, value.shell) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for Layer { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + recipient: tuple.0, + amount: tuple.1, + shell: tuple.2, + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolValue for Layer { + type SolType = Self; + } + #[automatically_derived] + impl alloy_sol_types::private::SolTypeValue for Layer { + #[inline] + fn stv_to_tokens(&self) -> ::Token<'_> { + ( + ::tokenize( + &self.recipient, + ), + as alloy_sol_types::SolType>::tokenize(&self.amount), + as alloy_sol_types::SolType>::tokenize(&self.shell), + ) + } + #[inline] + fn stv_abi_encoded_size(&self) -> usize { + if let Some(size) = ::ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encoded_size(&tuple) + } + #[inline] + fn stv_eip712_data_word(&self) -> alloy_sol_types::Word { + ::eip712_hash_struct(self) + } + #[inline] + fn stv_abi_encode_packed_to( + &self, + out: &mut alloy_sol_types::private::Vec, + ) { + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out) + } + #[inline] + fn stv_abi_packed_encoded_size(&self) -> usize { + if let Some(size) = ::PACKED_ENCODED_SIZE { + return size; + } + let tuple = as ::core::convert::From>::from(self.clone()); + as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolType for Layer { + type RustType = Self; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SOL_NAME: &'static str = ::NAME; + const ENCODED_SIZE: Option = as alloy_sol_types::SolType>::ENCODED_SIZE; + const PACKED_ENCODED_SIZE: Option = as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE; + #[inline] + fn valid_token(token: &Self::Token<'_>) -> bool { + as alloy_sol_types::SolType>::valid_token(token) + } + #[inline] + fn detokenize(token: Self::Token<'_>) -> Self::RustType { + let tuple = as alloy_sol_types::SolType>::detokenize(token); + >>::from(tuple) + } + } + #[automatically_derived] + impl alloy_sol_types::SolStruct for Layer { + const NAME: &'static str = "Layer"; + #[inline] + fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> { + alloy_sol_types::private::Cow::Borrowed( + "Layer(address recipient,uint256 amount,bytes32 shell)", + ) + } + #[inline] + fn eip712_components() -> alloy_sol_types::private::Vec< + alloy_sol_types::private::Cow<'static, str>, + > { + alloy_sol_types::private::Vec::new() + } + #[inline] + fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> { + ::eip712_root_type() + } + #[inline] + fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec { + [ + ::eip712_data_word( + &self.recipient, + ) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.amount) + .0, + as alloy_sol_types::SolType>::eip712_data_word(&self.shell) + .0, + ] + .concat() + } + } + #[automatically_derived] + impl alloy_sol_types::EventTopic for Layer { + #[inline] + fn topic_preimage_length(rust: &Self::RustType) -> usize { + 0usize + + ::topic_preimage_length( + &rust.recipient, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length( + &rust.amount, + ) + + as alloy_sol_types::EventTopic>::topic_preimage_length(&rust.shell) + } + #[inline] + fn encode_topic_preimage( + rust: &Self::RustType, + out: &mut alloy_sol_types::private::Vec, + ) { + out.reserve( + ::topic_preimage_length(rust), + ); + ::encode_topic_preimage( + &rust.recipient, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.amount, + out, + ); + as alloy_sol_types::EventTopic>::encode_topic_preimage( + &rust.shell, + out, + ); + } + #[inline] + fn encode_topic( + rust: &Self::RustType, + ) -> alloy_sol_types::abi::token::WordToken { + let mut out = alloy_sol_types::private::Vec::new(); + ::encode_topic_preimage( + rust, + &mut out, + ); + alloy_sol_types::abi::token::WordToken( + alloy_sol_types::private::keccak256(out), + ) + } + } + }; + /**Constructor`. +```solidity +constructor(address _token, address _sender, bytes32 _shell); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct constructorCall { + #[allow(missing_docs)] + pub _token: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _sender: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub _shell: alloy::sol_types::private::FixedBytes<32>, + } + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::FixedBytes<32>, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: constructorCall) -> Self { + (value._token, value._sender, value._shell) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for constructorCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + _token: tuple.0, + _sender: tuple.1, + _shell: tuple.2, + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolConstructor for constructorCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self._token, + ), + ::tokenize( + &self._sender, + ), + as alloy_sol_types::SolType>::tokenize(&self._shell), + ) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `SENDER()` and selector `0x6050f2f8`. +```solidity +function SENDER() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct SENDERCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`SENDER()`](SENDERCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct SENDERReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: SENDERCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for SENDERCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: SENDERReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for SENDERReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for SENDERCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "SENDER()"; + const SELECTOR: [u8; 4] = [96u8, 80u8, 242u8, 248u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: SENDERReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: SENDERReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `TOKEN()` and selector `0x82bfefc8`. +```solidity +function TOKEN() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct TOKENCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`TOKEN()`](TOKENCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct TOKENReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: TOKENCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for TOKENCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: TOKENReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for TOKENReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for TOKENCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "TOKEN()"; + const SELECTOR: [u8; 4] = [130u8, 191u8, 239u8, 200u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: TOKENReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: TOKENReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `peel((address,uint256,bytes32)[])` and selector `0x43913491`. +```solidity +function peel(Layer[] memory _layers) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct peelCall { + #[allow(missing_docs)] + pub _layers: alloy::sol_types::private::Vec< + ::RustType, + >, + } + ///Container type for the return parameters of the [`peel((address,uint256,bytes32)[])`](peelCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct peelReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Array,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Vec< + ::RustType, + >, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: peelCall) -> Self { + (value._layers,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for peelCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _layers: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: peelReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for peelReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl peelReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for peelCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Array,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = peelReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "peel((address,uint256,bytes32)[])"; + const SELECTOR: [u8; 4] = [67u8, 145u8, 52u8, 145u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self._layers), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + peelReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `shell()` and selector `0xf11d2ff4`. +```solidity +function shell() external view returns (bytes32); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct shellCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`shell()`](shellCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct shellReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: shellCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for shellCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: shellReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for shellReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for shellCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::FixedBytes<32>; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "shell()"; + const SELECTOR: [u8; 4] = [241u8, 29u8, 47u8, 244u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: shellReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: shellReturn = r.into(); + r._0 + }) + } + } + }; + ///Container for all the [`TransferOnion`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum TransferOnionCalls { + #[allow(missing_docs)] + SENDER(SENDERCall), + #[allow(missing_docs)] + TOKEN(TOKENCall), + #[allow(missing_docs)] + peel(peelCall), + #[allow(missing_docs)] + shell(shellCall), + } + impl TransferOnionCalls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [67u8, 145u8, 52u8, 145u8], + [96u8, 80u8, 242u8, 248u8], + [130u8, 191u8, 239u8, 200u8], + [241u8, 29u8, 47u8, 244u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(peel), + ::core::stringify!(SENDER), + ::core::stringify!(TOKEN), + ::core::stringify!(shell), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for TransferOnionCalls { + const NAME: &'static str = "TransferOnionCalls"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 4usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::SENDER(_) => ::SELECTOR, + Self::TOKEN(_) => ::SELECTOR, + Self::peel(_) => ::SELECTOR, + Self::shell(_) => ::SELECTOR, + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn peel(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(TransferOnionCalls::peel) + } + peel + }, + { + fn SENDER( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(TransferOnionCalls::SENDER) + } + SENDER + }, + { + fn TOKEN( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(TransferOnionCalls::TOKEN) + } + TOKEN + }, + { + fn shell( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(TransferOnionCalls::shell) + } + shell + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn peel(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(TransferOnionCalls::peel) + } + peel + }, + { + fn SENDER( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(TransferOnionCalls::SENDER) + } + SENDER + }, + { + fn TOKEN( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(TransferOnionCalls::TOKEN) + } + TOKEN + }, + { + fn shell( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(TransferOnionCalls::shell) + } + shell + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::SENDER(inner) => { + ::abi_encoded_size(inner) + } + Self::TOKEN(inner) => { + ::abi_encoded_size(inner) + } + Self::peel(inner) => { + ::abi_encoded_size(inner) + } + Self::shell(inner) => { + ::abi_encoded_size(inner) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::SENDER(inner) => { + ::abi_encode_raw(inner, out) + } + Self::TOKEN(inner) => { + ::abi_encode_raw(inner, out) + } + Self::peel(inner) => { + ::abi_encode_raw(inner, out) + } + Self::shell(inner) => { + ::abi_encode_raw(inner, out) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`TransferOnion`](self) contract instance. + +See the [wrapper's documentation](`TransferOnionInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> TransferOnionInstance { + TransferOnionInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + _token: alloy::sol_types::private::Address, + _sender: alloy::sol_types::private::Address, + _shell: alloy::sol_types::private::FixedBytes<32>, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + TransferOnionInstance::::deploy(__provider, _token, _sender, _shell) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + _token: alloy::sol_types::private::Address, + _sender: alloy::sol_types::private::Address, + _shell: alloy::sol_types::private::FixedBytes<32>, + ) -> alloy_contract::RawCallBuilder { + TransferOnionInstance::< + P, + N, + >::deploy_builder(__provider, _token, _sender, _shell) + } + /**A [`TransferOnion`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`TransferOnion`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct TransferOnionInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for TransferOnionInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("TransferOnionInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > TransferOnionInstance { + /**Creates a new wrapper around an on-chain [`TransferOnion`](self) contract instance. + +See the [wrapper's documentation](`TransferOnionInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + _token: alloy::sol_types::private::Address, + _sender: alloy::sol_types::private::Address, + _shell: alloy::sol_types::private::FixedBytes<32>, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider, _token, _sender, _shell); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder( + __provider: P, + _token: alloy::sol_types::private::Address, + _sender: alloy::sol_types::private::Address, + _shell: alloy::sol_types::private::FixedBytes<32>, + ) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + [ + &BYTECODE[..], + &alloy_sol_types::SolConstructor::abi_encode( + &constructorCall { + _token, + _sender, + _shell, + }, + )[..], + ] + .concat() + .into(), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl TransferOnionInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> TransferOnionInstance { + TransferOnionInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > TransferOnionInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`SENDER`] function. + pub fn SENDER(&self) -> alloy_contract::SolCallBuilder<&P, SENDERCall, N> { + self.call_builder(&SENDERCall) + } + ///Creates a new call builder for the [`TOKEN`] function. + pub fn TOKEN(&self) -> alloy_contract::SolCallBuilder<&P, TOKENCall, N> { + self.call_builder(&TOKENCall) + } + ///Creates a new call builder for the [`peel`] function. + pub fn peel( + &self, + _layers: alloy::sol_types::private::Vec< + ::RustType, + >, + ) -> alloy_contract::SolCallBuilder<&P, peelCall, N> { + self.call_builder(&peelCall { _layers }) + } + ///Creates a new call builder for the [`shell`] function. + pub fn shell(&self) -> alloy_contract::SolCallBuilder<&P, shellCall, N> { + self.call_builder(&shellCall) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > TransferOnionInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + } +} diff --git a/bindings/rust/src/transient_context.rs b/bindings/rust/src/transient_context.rs new file mode 100644 index 000000000..542105c4f --- /dev/null +++ b/bindings/rust/src/transient_context.rs @@ -0,0 +1,215 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface TransientContext {} +``` + +...which was generated by the following JSON ABI: +```json +[] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod TransientContext { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x602c6032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea164736f6c6343000819000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`,`2`\x0B\x82\x82\x829\x80Q_\x1A`s\x14`&WcNH{q`\xE0\x1B_R_`\x04R`$_\xFD[0_R`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_\x80\xFD\xFE\xA1dsolcC\0\x08\x19\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x730000000000000000000000000000000000000000301460806040525f80fdfea164736f6c6343000819000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + 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_\x80\xFD\xFE\xA1dsolcC\0\x08\x19\0\n", + ); + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`TransientContext`](self) contract instance. + +See the [wrapper's documentation](`TransientContextInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> TransientContextInstance { + TransientContextInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + TransientContextInstance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + TransientContextInstance::::deploy_builder(__provider) + } + /**A [`TransientContext`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`TransientContext`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct TransientContextInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for TransientContextInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("TransientContextInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > TransientContextInstance { + /**Creates a new wrapper around an on-chain [`TransientContext`](self) contract instance. + +See the [wrapper's documentation](`TransientContextInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl TransientContextInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> TransientContextInstance { + TransientContextInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > TransientContextInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > TransientContextInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + } +} diff --git a/bindings/rust/src/types.rs b/bindings/rust/src/types.rs new file mode 100644 index 000000000..714e9739a --- /dev/null +++ b/bindings/rust/src/types.rs @@ -0,0 +1,212 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface Types {} +``` + +...which was generated by the following JSON ABI: +```json +[] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod Types { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`-`7`\x0B\x82\x82\x829\x80Q`\0\x1A`s\x14`*WcNH{q`\xE0\x1B`\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`\0\x80\xFD\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + 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`\0\x80\xFD\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`Types`](self) contract instance. + +See the [wrapper's documentation](`TypesInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(address: alloy_sol_types::private::Address, __provider: P) -> TypesInstance { + TypesInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + TypesInstance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + TypesInstance::::deploy_builder(__provider) + } + /**A [`Types`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`Types`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct TypesInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for TypesInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("TypesInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > TypesInstance { + /**Creates a new wrapper around an on-chain [`Types`](self) contract instance. + +See the [wrapper's documentation](`TypesInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl TypesInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> TypesInstance { + TypesInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > TypesInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > TypesInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + } +} diff --git a/bindings/rust/src/verifier.rs b/bindings/rust/src/verifier.rs new file mode 100644 index 000000000..43cf266af --- /dev/null +++ b/bindings/rust/src/verifier.rs @@ -0,0 +1,1505 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface Verifier { + error NotProperGame(); + error Nullified(); + + function ANCHOR_STATE_REGISTRY() external view returns (address); + function nullified() external view returns (bool); + function nullify() external; + function verify(bytes memory proofBytes, bytes32 imageId, bytes32 journal) external view returns (bool); +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "function", + "name": "ANCHOR_STATE_REGISTRY", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract IAnchorStateRegistry" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "nullified", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "nullify", + "inputs": [], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "verify", + "inputs": [ + { + "name": "proofBytes", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "imageId", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "journal", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "error", + "name": "NotProperGame", + "inputs": [] + }, + { + "type": "error", + "name": "Nullified", + "inputs": [] + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod Verifier { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"", + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `NotProperGame()` and selector `0x7c3e4fdb`. +```solidity +error NotProperGame(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct NotProperGame; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: NotProperGame) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for NotProperGame { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for NotProperGame { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "NotProperGame()"; + const SELECTOR: [u8; 4] = [124u8, 62u8, 79u8, 219u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Custom error with signature `Nullified()` and selector `0xbcf3e864`. +```solidity +error Nullified(); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct Nullified; + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: Nullified) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for Nullified { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + #[automatically_derived] + impl alloy_sol_types::SolError for Nullified { + type Parameters<'a> = UnderlyingSolTuple<'a>; + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "Nullified()"; + const SELECTOR: [u8; 4] = [188u8, 243u8, 232u8, 100u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Self::new) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `ANCHOR_STATE_REGISTRY()` and selector `0x5e02132e`. +```solidity +function ANCHOR_STATE_REGISTRY() external view returns (address); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ANCHOR_STATE_REGISTRYCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`ANCHOR_STATE_REGISTRY()`](ANCHOR_STATE_REGISTRYCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct ANCHOR_STATE_REGISTRYReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::Address, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: ANCHOR_STATE_REGISTRYCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for ANCHOR_STATE_REGISTRYCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: ANCHOR_STATE_REGISTRYReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for ANCHOR_STATE_REGISTRYReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for ANCHOR_STATE_REGISTRYCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::Address; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "ANCHOR_STATE_REGISTRY()"; + const SELECTOR: [u8; 4] = [94u8, 2u8, 19u8, 46u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: ANCHOR_STATE_REGISTRYReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: ANCHOR_STATE_REGISTRYReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `nullified()` and selector `0xf9df65eb`. +```solidity +function nullified() external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct nullifiedCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`nullified()`](nullifiedCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct nullifiedReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: nullifiedCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for nullifiedCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: nullifiedReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for nullifiedReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for nullifiedCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "nullified()"; + const SELECTOR: [u8; 4] = [249u8, 223u8, 101u8, 235u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: nullifiedReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: nullifiedReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `nullify()` and selector `0xece20f36`. +```solidity +function nullify() external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct nullifyCall; + ///Container type for the return parameters of the [`nullify()`](nullifyCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct nullifyReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: nullifyCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for nullifyCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: nullifyReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for nullifyReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl nullifyReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for nullifyCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = nullifyReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "nullify()"; + const SELECTOR: [u8; 4] = [236u8, 226u8, 15u8, 54u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + nullifyReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `verify(bytes,bytes32,bytes32)` and selector `0xab750e75`. +```solidity +function verify(bytes memory proofBytes, bytes32 imageId, bytes32 journal) external view returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct verifyCall { + #[allow(missing_docs)] + pub proofBytes: alloy::sol_types::private::Bytes, + #[allow(missing_docs)] + pub imageId: alloy::sol_types::private::FixedBytes<32>, + #[allow(missing_docs)] + pub journal: alloy::sol_types::private::FixedBytes<32>, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`verify(bytes,bytes32,bytes32)`](verifyCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct verifyReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Bytes, + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Bytes, + alloy::sol_types::private::FixedBytes<32>, + alloy::sol_types::private::FixedBytes<32>, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: verifyCall) -> Self { + (value.proofBytes, value.imageId, value.journal) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for verifyCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + proofBytes: tuple.0, + imageId: tuple.1, + journal: tuple.2, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: verifyReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for verifyReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for verifyCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Bytes, + alloy::sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::FixedBytes<32>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "verify(bytes,bytes32,bytes32)"; + const SELECTOR: [u8; 4] = [171u8, 117u8, 14u8, 117u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.proofBytes, + ), + as alloy_sol_types::SolType>::tokenize(&self.imageId), + as alloy_sol_types::SolType>::tokenize(&self.journal), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: verifyReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: verifyReturn = r.into(); + r._0 + }) + } + } + }; + ///Container for all the [`Verifier`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum VerifierCalls { + #[allow(missing_docs)] + ANCHOR_STATE_REGISTRY(ANCHOR_STATE_REGISTRYCall), + #[allow(missing_docs)] + nullified(nullifiedCall), + #[allow(missing_docs)] + nullify(nullifyCall), + #[allow(missing_docs)] + verify(verifyCall), + } + impl VerifierCalls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [94u8, 2u8, 19u8, 46u8], + [171u8, 117u8, 14u8, 117u8], + [236u8, 226u8, 15u8, 54u8], + [249u8, 223u8, 101u8, 235u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(ANCHOR_STATE_REGISTRY), + ::core::stringify!(verify), + ::core::stringify!(nullify), + ::core::stringify!(nullified), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for VerifierCalls { + const NAME: &'static str = "VerifierCalls"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 4usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::ANCHOR_STATE_REGISTRY(_) => { + ::SELECTOR + } + Self::nullified(_) => { + ::SELECTOR + } + Self::nullify(_) => ::SELECTOR, + Self::verify(_) => ::SELECTOR, + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn ANCHOR_STATE_REGISTRY( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(VerifierCalls::ANCHOR_STATE_REGISTRY) + } + ANCHOR_STATE_REGISTRY + }, + { + fn verify(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(VerifierCalls::verify) + } + verify + }, + { + fn nullify(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(VerifierCalls::nullify) + } + nullify + }, + { + fn nullified(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(VerifierCalls::nullified) + } + nullified + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn ANCHOR_STATE_REGISTRY( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(VerifierCalls::ANCHOR_STATE_REGISTRY) + } + ANCHOR_STATE_REGISTRY + }, + { + fn verify(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(VerifierCalls::verify) + } + verify + }, + { + fn nullify(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(VerifierCalls::nullify) + } + nullify + }, + { + fn nullified(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(VerifierCalls::nullified) + } + nullified + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::ANCHOR_STATE_REGISTRY(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::nullified(inner) => { + ::abi_encoded_size(inner) + } + Self::nullify(inner) => { + ::abi_encoded_size(inner) + } + Self::verify(inner) => { + ::abi_encoded_size(inner) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::ANCHOR_STATE_REGISTRY(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::nullified(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::nullify(inner) => { + ::abi_encode_raw(inner, out) + } + Self::verify(inner) => { + ::abi_encode_raw(inner, out) + } + } + } + } + ///Container for all the [`Verifier`](self) custom errors. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum VerifierErrors { + #[allow(missing_docs)] + NotProperGame(NotProperGame), + #[allow(missing_docs)] + Nullified(Nullified), + } + impl VerifierErrors { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [124u8, 62u8, 79u8, 219u8], + [188u8, 243u8, 232u8, 100u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(NotProperGame), + ::core::stringify!(Nullified), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for VerifierErrors { + const NAME: &'static str = "VerifierErrors"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 2usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::NotProperGame(_) => { + ::SELECTOR + } + Self::Nullified(_) => ::SELECTOR, + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn NotProperGame( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(VerifierErrors::NotProperGame) + } + NotProperGame + }, + { + fn Nullified( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(VerifierErrors::Nullified) + } + Nullified + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn NotProperGame( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(VerifierErrors::NotProperGame) + } + NotProperGame + }, + { + fn Nullified( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(VerifierErrors::Nullified) + } + Nullified + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::NotProperGame(inner) => { + ::abi_encoded_size(inner) + } + Self::Nullified(inner) => { + ::abi_encoded_size(inner) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::NotProperGame(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::Nullified(inner) => { + ::abi_encode_raw(inner, out) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`Verifier`](self) contract instance. + +See the [wrapper's documentation](`VerifierInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> VerifierInstance { + VerifierInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + VerifierInstance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + VerifierInstance::::deploy_builder(__provider) + } + /**A [`Verifier`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`Verifier`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct VerifierInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for VerifierInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("VerifierInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > VerifierInstance { + /**Creates a new wrapper around an on-chain [`Verifier`](self) contract instance. + +See the [wrapper's documentation](`VerifierInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl VerifierInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> VerifierInstance { + VerifierInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > VerifierInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`ANCHOR_STATE_REGISTRY`] function. + pub fn ANCHOR_STATE_REGISTRY( + &self, + ) -> alloy_contract::SolCallBuilder<&P, ANCHOR_STATE_REGISTRYCall, N> { + self.call_builder(&ANCHOR_STATE_REGISTRYCall) + } + ///Creates a new call builder for the [`nullified`] function. + pub fn nullified(&self) -> alloy_contract::SolCallBuilder<&P, nullifiedCall, N> { + self.call_builder(&nullifiedCall) + } + ///Creates a new call builder for the [`nullify`] function. + pub fn nullify(&self) -> alloy_contract::SolCallBuilder<&P, nullifyCall, N> { + self.call_builder(&nullifyCall) + } + ///Creates a new call builder for the [`verify`] function. + pub fn verify( + &self, + proofBytes: alloy::sol_types::private::Bytes, + imageId: alloy::sol_types::private::FixedBytes<32>, + journal: alloy::sol_types::private::FixedBytes<32>, + ) -> alloy_contract::SolCallBuilder<&P, verifyCall, N> { + self.call_builder( + &verifyCall { + proofBytes, + imageId, + journal, + }, + ) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > VerifierInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + } +} diff --git a/bindings/rust/src/weth.rs b/bindings/rust/src/weth.rs new file mode 100644 index 000000000..a74306dbc --- /dev/null +++ b/bindings/rust/src/weth.rs @@ -0,0 +1,3579 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface WETH { + event Approval(address indexed src, address indexed guy, uint256 wad); + event Deposit(address indexed dst, uint256 wad); + event Transfer(address indexed src, address indexed dst, uint256 wad); + event Withdrawal(address indexed src, uint256 wad); + + fallback() external payable; + + receive() external payable; + + function allowance(address owner, address spender) external view returns (uint256); + function approve(address guy, uint256 wad) external returns (bool); + function balanceOf(address src) external view returns (uint256); + function decimals() external view returns (uint8); + function deposit() external payable; + function name() external pure returns (string memory name_); + function symbol() external pure returns (string memory symbol_); + function totalSupply() external view returns (uint256); + function transfer(address dst, uint256 wad) external returns (bool); + function transferFrom(address src, address dst, uint256 wad) external returns (bool); + function version() external view returns (string memory); + function withdraw(uint256 wad) external; +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "fallback", + "stateMutability": "payable" + }, + { + "type": "receive", + "stateMutability": "payable" + }, + { + "type": "function", + "name": "allowance", + "inputs": [ + { + "name": "owner", + "type": "address", + "internalType": "address" + }, + { + "name": "spender", + "type": "address", + "internalType": "address" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "approve", + "inputs": [ + { + "name": "guy", + "type": "address", + "internalType": "address" + }, + { + "name": "wad", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "balanceOf", + "inputs": [ + { + "name": "src", + "type": "address", + "internalType": "address" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "decimals", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint8", + "internalType": "uint8" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "deposit", + "inputs": [], + "outputs": [], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "name", + "inputs": [], + "outputs": [ + { + "name": "name_", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "symbol", + "inputs": [], + "outputs": [ + { + "name": "symbol_", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "totalSupply", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "transfer", + "inputs": [ + { + "name": "dst", + "type": "address", + "internalType": "address" + }, + { + "name": "wad", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "transferFrom", + "inputs": [ + { + "name": "src", + "type": "address", + "internalType": "address" + }, + { + "name": "dst", + "type": "address", + "internalType": "address" + }, + { + "name": "wad", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "version", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "withdraw", + "inputs": [ + { + "name": "wad", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "event", + "name": "Approval", + "inputs": [ + { + "name": "src", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "guy", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "wad", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "Deposit", + "inputs": [ + { + "name": "dst", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "wad", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "Transfer", + "inputs": [ + { + "name": "src", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "dst", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "wad", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "Withdrawal", + "inputs": [ + { + "name": "src", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "wad", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod WETH { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x608060405234801561001057600080fd5b50610b1e806100206000396000f3fe6080604052600436106100cb5760003560e01c806354fd4d5011610074578063a9059cbb1161004e578063a9059cbb14610262578063d0e30db0146100da578063dd62ed3e14610282576100da565b806354fd4d50146101c157806370a082311461020a57806395d89b411461024d576100da565b806323b872dd116100a557806323b872dd1461015a5780632e1a7d4d1461017a578063313ce5671461019a576100da565b806306fdde03146100e2578063095ea7b31461010d57806318160ddd1461013d576100da565b366100da576100d86102d5565b005b6100d86102d5565b3480156100ee57600080fd5b506100f7610330565b60405161010491906107e8565b60405180910390f35b34801561011957600080fd5b5061012d610128366004610862565b6103fb565b6040519015158152602001610104565b34801561014957600080fd5b50475b604051908152602001610104565b34801561016657600080fd5b5061012d61017536600461088c565b610474565b34801561018657600080fd5b506100d86101953660046108c8565b610647565b3480156101a657600080fd5b506101af601281565b60405160ff9091168152602001610104565b3480156101cd57600080fd5b506100f76040518060400160405280600581526020017f312e312e3100000000000000000000000000000000000000000000000000000081525081565b34801561021657600080fd5b5061014c6102253660046108e1565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b34801561025957600080fd5b506100f76106ed565b34801561026e57600080fd5b5061012d61027d366004610862565b6107a4565b34801561028e57600080fd5b5061014c61029d3660046108fc565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b33600090815260208190526040812080543492906102f490849061095e565b909155505060405134815233907fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c9060200160405180910390a2565b606073420000000000000000000000000000000000001573ffffffffffffffffffffffffffffffffffffffff1663d84447156040518163ffffffff1660e01b8152600401600060405180830381865afa158015610391573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526103d791908101906109a5565b6040516020016103e79190610a70565b604051602081830303815290604052905090565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906104639086815260200190565b60405180910390a350600192915050565b73ffffffffffffffffffffffffffffffffffffffff83166000908152602081905260408120548211156104a657600080fd5b73ffffffffffffffffffffffffffffffffffffffff8416600081815260016020908152604080832033808552925290912054911480159061050757507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114155b1561055f578281101561051957600080fd5b73ffffffffffffffffffffffffffffffffffffffff8516600090815260016020908152604080832033845290915281208054859290610559908490610ab5565b90915550505b73ffffffffffffffffffffffffffffffffffffffff851660009081526020819052604081208054859290610594908490610ab5565b909155505073ffffffffffffffffffffffffffffffffffffffff8416600090815260208190526040812080548592906105ce90849061095e565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161063491815260200190565b60405180910390a3506001949350505050565b3360009081526020819052604090205481111561066357600080fd5b3360009081526020819052604081208054839290610682908490610ab5565b9091555050604051339082156108fc029083906000818181858888f193505050501580156106b4573d6000803e3d6000fd5b5060405181815233907f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b659060200160405180910390a250565b606073420000000000000000000000000000000000001573ffffffffffffffffffffffffffffffffffffffff1663550fcdc96040518163ffffffff1660e01b8152600401600060405180830381865afa15801561074e573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405261079491908101906109a5565b6040516020016103e79190610acc565b60006107b1338484610474565b9392505050565b60005b838110156107d35781810151838201526020016107bb565b838111156107e2576000848401525b50505050565b60208152600082518060208401526108078160408501602087016107b8565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461085d57600080fd5b919050565b6000806040838503121561087557600080fd5b61087e83610839565b946020939093013593505050565b6000806000606084860312156108a157600080fd5b6108aa84610839565b92506108b860208501610839565b9150604084013590509250925092565b6000602082840312156108da57600080fd5b5035919050565b6000602082840312156108f357600080fd5b6107b182610839565b6000806040838503121561090f57600080fd5b61091883610839565b915061092660208401610839565b90509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600082198211156109715761097161092f565b500190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000602082840312156109b757600080fd5b815167ffffffffffffffff808211156109cf57600080fd5b818401915084601f8301126109e357600080fd5b8151818111156109f5576109f5610976565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908382118183101715610a3b57610a3b610976565b81604052828152876020848701011115610a5457600080fd5b610a658360208301602088016107b8565b979650505050505050565b7f5772617070656420000000000000000000000000000000000000000000000000815260008251610aa88160088501602087016107b8565b9190910160080192915050565b600082821015610ac757610ac761092f565b500390565b7f5700000000000000000000000000000000000000000000000000000000000000815260008251610b048160018501602087016107b8565b919091016001019291505056fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[Pa\x0B\x1E\x80a\0 `\09`\0\xF3\xFE`\x80`@R`\x046\x10a\0\xCBW`\x005`\xE0\x1C\x80cT\xFDMP\x11a\0tW\x80c\xA9\x05\x9C\xBB\x11a\0NW\x80c\xA9\x05\x9C\xBB\x14a\x02bW\x80c\xD0\xE3\r\xB0\x14a\0\xDAW\x80c\xDDb\xED>\x14a\x02\x82Wa\0\xDAV[\x80cT\xFDMP\x14a\x01\xC1W\x80cp\xA0\x821\x14a\x02\nW\x80c\x95\xD8\x9BA\x14a\x02MWa\0\xDAV[\x80c#\xB8r\xDD\x11a\0\xA5W\x80c#\xB8r\xDD\x14a\x01ZW\x80c.\x1A}M\x14a\x01zW\x80c1<\xE5g\x14a\x01\x9AWa\0\xDAV[\x80c\x06\xFD\xDE\x03\x14a\0\xE2W\x80c\t^\xA7\xB3\x14a\x01\rW\x80c\x18\x16\r\xDD\x14a\x01=Wa\0\xDAV[6a\0\xDAWa\0\xD8a\x02\xD5V[\0[a\0\xD8a\x02\xD5V[4\x80\x15a\0\xEEW`\0\x80\xFD[Pa\0\xF7a\x030V[`@Qa\x01\x04\x91\x90a\x07\xE8V[`@Q\x80\x91\x03\x90\xF3[4\x80\x15a\x01\x19W`\0\x80\xFD[Pa\x01-a\x01(6`\x04a\x08bV[a\x03\xFBV[`@Q\x90\x15\x15\x81R` \x01a\x01\x04V[4\x80\x15a\x01IW`\0\x80\xFD[PG[`@Q\x90\x81R` \x01a\x01\x04V[4\x80\x15a\x01fW`\0\x80\xFD[Pa\x01-a\x01u6`\x04a\x08\x8CV[a\x04tV[4\x80\x15a\x01\x86W`\0\x80\xFD[Pa\0\xD8a\x01\x956`\x04a\x08\xC8V[a\x06GV[4\x80\x15a\x01\xA6W`\0\x80\xFD[Pa\x01\xAF`\x12\x81V[`@Q`\xFF\x90\x91\x16\x81R` \x01a\x01\x04V[4\x80\x15a\x01\xCDW`\0\x80\xFD[Pa\0\xF7`@Q\x80`@\x01`@R\x80`\x05\x81R` \x01\x7F1.1.1\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\x81RP\x81V[4\x80\x15a\x02\x16W`\0\x80\xFD[Pa\x01La\x02%6`\x04a\x08\xE1V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\0\x90\x81R` \x81\x90R`@\x90 T\x90V[4\x80\x15a\x02YW`\0\x80\xFD[Pa\0\xF7a\x06\xEDV[4\x80\x15a\x02nW`\0\x80\xFD[Pa\x01-a\x02}6`\x04a\x08bV[a\x07\xA4V[4\x80\x15a\x02\x8EW`\0\x80\xFD[Pa\x01La\x02\x9D6`\x04a\x08\xFCV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x91\x82\x16`\0\x90\x81R`\x01` \x90\x81R`@\x80\x83 \x93\x90\x94\x16\x82R\x91\x90\x91R T\x90V[3`\0\x90\x81R` \x81\x90R`@\x81 \x80T4\x92\x90a\x02\xF4\x90\x84\x90a\t^V[\x90\x91UPP`@Q4\x81R3\x90\x7F\xE1\xFF\xFC\xC4\x92=\x04\xB5Y\xF4\xD2\x9A\x8B\xFCl\xDA\x04\xEB[\r=`\0\xFD[PPPP`@Q=`\0\x82>`\x1F=\x90\x81\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x82\x01`@Ra\x03\xD7\x91\x90\x81\x01\x90a\t\xA5V[`@Q` \x01a\x03\xE7\x91\x90a\npV[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x90P\x90V[3`\0\x81\x81R`\x01` \x90\x81R`@\x80\x83 s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x16\x80\x85R\x92R\x80\x83 \x85\x90UQ\x91\x92\x90\x91\x7F\x8C[\xE1\xE5\xEB\xEC}[\xD1OqB}\x1E\x84\xF3\xDD\x03\x14\xC0\xF7\xB2)\x1E[ \n\xC8\xC7\xC3\xB9%\x90a\x04c\x90\x86\x81R` \x01\x90V[`@Q\x80\x91\x03\x90\xA3P`\x01\x92\x91PPV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x16`\0\x90\x81R` \x81\x90R`@\x81 T\x82\x11\x15a\x04\xA6W`\0\x80\xFD[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x16`\0\x81\x81R`\x01` \x90\x81R`@\x80\x83 3\x80\x85R\x92R\x90\x91 T\x91\x14\x80\x15\x90a\x05\x07WP\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x14\x15[\x15a\x05_W\x82\x81\x10\x15a\x05\x19W`\0\x80\xFD[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x85\x16`\0\x90\x81R`\x01` \x90\x81R`@\x80\x83 3\x84R\x90\x91R\x81 \x80T\x85\x92\x90a\x05Y\x90\x84\x90a\n\xB5V[\x90\x91UPP[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x85\x16`\0\x90\x81R` \x81\x90R`@\x81 \x80T\x85\x92\x90a\x05\x94\x90\x84\x90a\n\xB5V[\x90\x91UPPs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x16`\0\x90\x81R` \x81\x90R`@\x81 \x80T\x85\x92\x90a\x05\xCE\x90\x84\x90a\t^V[\x92PP\x81\x90UP\x83s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x85s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xDD\xF2R\xAD\x1B\xE2\xC8\x9Bi\xC2\xB0h\xFC7\x8D\xAA\x95+\xA7\xF1c\xC4\xA1\x16(\xF5ZM\xF5#\xB3\xEF\x85`@Qa\x064\x91\x81R` \x01\x90V[`@Q\x80\x91\x03\x90\xA3P`\x01\x94\x93PPPPV[3`\0\x90\x81R` \x81\x90R`@\x90 T\x81\x11\x15a\x06cW`\0\x80\xFD[3`\0\x90\x81R` \x81\x90R`@\x81 \x80T\x83\x92\x90a\x06\x82\x90\x84\x90a\n\xB5V[\x90\x91UPP`@Q3\x90\x82\x15a\x08\xFC\x02\x90\x83\x90`\0\x81\x81\x81\x85\x88\x88\xF1\x93PPPP\x15\x80\x15a\x06\xB4W=`\0\x80>=`\0\xFD[P`@Q\x81\x81R3\x90\x7F\x7F\xCFS,\x15\xF0\xA6\xDB\x0B\xD6\xD0\xE08\xBE\xA7\x1D0\xD8\x08\xC7\xD9\x8C\xB3\xBFrh\xA9[\xF5\x08\x1Be\x90` \x01`@Q\x80\x91\x03\x90\xA2PV[``sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x15s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16cU\x0F\xCD\xC9`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01`\0`@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x07NW=`\0\x80>=`\0\xFD[PPPP`@Q=`\0\x82>`\x1F=\x90\x81\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x82\x01`@Ra\x07\x94\x91\x90\x81\x01\x90a\t\xA5V[`@Q` \x01a\x03\xE7\x91\x90a\n\xCCV[`\0a\x07\xB13\x84\x84a\x04tV[\x93\x92PPPV[`\0[\x83\x81\x10\x15a\x07\xD3W\x81\x81\x01Q\x83\x82\x01R` \x01a\x07\xBBV[\x83\x81\x11\x15a\x07\xE2W`\0\x84\x84\x01R[PPPPV[` \x81R`\0\x82Q\x80` \x84\x01Ra\x08\x07\x81`@\x85\x01` \x87\x01a\x07\xB8V[`\x1F\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x91\x90\x91\x01`@\x01\x92\x91PPV[\x805s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x08]W`\0\x80\xFD[\x91\x90PV[`\0\x80`@\x83\x85\x03\x12\x15a\x08uW`\0\x80\xFD[a\x08~\x83a\x089V[\x94` \x93\x90\x93\x015\x93PPPV[`\0\x80`\0``\x84\x86\x03\x12\x15a\x08\xA1W`\0\x80\xFD[a\x08\xAA\x84a\x089V[\x92Pa\x08\xB8` \x85\x01a\x089V[\x91P`@\x84\x015\x90P\x92P\x92P\x92V[`\0` \x82\x84\x03\x12\x15a\x08\xDAW`\0\x80\xFD[P5\x91\x90PV[`\0` \x82\x84\x03\x12\x15a\x08\xF3W`\0\x80\xFD[a\x07\xB1\x82a\x089V[`\0\x80`@\x83\x85\x03\x12\x15a\t\x0FW`\0\x80\xFD[a\t\x18\x83a\x089V[\x91Pa\t&` \x84\x01a\x089V[\x90P\x92P\x92\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`\x11`\x04R`$`\0\xFD[`\0\x82\x19\x82\x11\x15a\tqWa\tqa\t/V[P\x01\x90V[\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[`\0` \x82\x84\x03\x12\x15a\t\xB7W`\0\x80\xFD[\x81Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\t\xCFW`\0\x80\xFD[\x81\x84\x01\x91P\x84`\x1F\x83\x01\x12a\t\xE3W`\0\x80\xFD[\x81Q\x81\x81\x11\x15a\t\xF5Wa\t\xF5a\tvV[`@Q`\x1F\x82\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x90\x81\x16`?\x01\x16\x81\x01\x90\x83\x82\x11\x81\x83\x10\x17\x15a\n;Wa\n;a\tvV[\x81`@R\x82\x81R\x87` \x84\x87\x01\x01\x11\x15a\nTW`\0\x80\xFD[a\ne\x83` \x83\x01` \x88\x01a\x07\xB8V[\x97\x96PPPPPPPV[\x7FWrapped \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`\0\x82Qa\n\xA8\x81`\x08\x85\x01` \x87\x01a\x07\xB8V[\x91\x90\x91\x01`\x08\x01\x92\x91PPV[`\0\x82\x82\x10\x15a\n\xC7Wa\n\xC7a\t/V[P\x03\x90V[\x7FW\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81R`\0\x82Qa\x0B\x04\x81`\x01\x85\x01` \x87\x01a\x07\xB8V[\x91\x90\x91\x01`\x01\x01\x92\x91PPV\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x6080604052600436106100cb5760003560e01c806354fd4d5011610074578063a9059cbb1161004e578063a9059cbb14610262578063d0e30db0146100da578063dd62ed3e14610282576100da565b806354fd4d50146101c157806370a082311461020a57806395d89b411461024d576100da565b806323b872dd116100a557806323b872dd1461015a5780632e1a7d4d1461017a578063313ce5671461019a576100da565b806306fdde03146100e2578063095ea7b31461010d57806318160ddd1461013d576100da565b366100da576100d86102d5565b005b6100d86102d5565b3480156100ee57600080fd5b506100f7610330565b60405161010491906107e8565b60405180910390f35b34801561011957600080fd5b5061012d610128366004610862565b6103fb565b6040519015158152602001610104565b34801561014957600080fd5b50475b604051908152602001610104565b34801561016657600080fd5b5061012d61017536600461088c565b610474565b34801561018657600080fd5b506100d86101953660046108c8565b610647565b3480156101a657600080fd5b506101af601281565b60405160ff9091168152602001610104565b3480156101cd57600080fd5b506100f76040518060400160405280600581526020017f312e312e3100000000000000000000000000000000000000000000000000000081525081565b34801561021657600080fd5b5061014c6102253660046108e1565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b34801561025957600080fd5b506100f76106ed565b34801561026e57600080fd5b5061012d61027d366004610862565b6107a4565b34801561028e57600080fd5b5061014c61029d3660046108fc565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b33600090815260208190526040812080543492906102f490849061095e565b909155505060405134815233907fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c9060200160405180910390a2565b606073420000000000000000000000000000000000001573ffffffffffffffffffffffffffffffffffffffff1663d84447156040518163ffffffff1660e01b8152600401600060405180830381865afa158015610391573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526103d791908101906109a5565b6040516020016103e79190610a70565b604051602081830303815290604052905090565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906104639086815260200190565b60405180910390a350600192915050565b73ffffffffffffffffffffffffffffffffffffffff83166000908152602081905260408120548211156104a657600080fd5b73ffffffffffffffffffffffffffffffffffffffff8416600081815260016020908152604080832033808552925290912054911480159061050757507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114155b1561055f578281101561051957600080fd5b73ffffffffffffffffffffffffffffffffffffffff8516600090815260016020908152604080832033845290915281208054859290610559908490610ab5565b90915550505b73ffffffffffffffffffffffffffffffffffffffff851660009081526020819052604081208054859290610594908490610ab5565b909155505073ffffffffffffffffffffffffffffffffffffffff8416600090815260208190526040812080548592906105ce90849061095e565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161063491815260200190565b60405180910390a3506001949350505050565b3360009081526020819052604090205481111561066357600080fd5b3360009081526020819052604081208054839290610682908490610ab5565b9091555050604051339082156108fc029083906000818181858888f193505050501580156106b4573d6000803e3d6000fd5b5060405181815233907f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b659060200160405180910390a250565b606073420000000000000000000000000000000000001573ffffffffffffffffffffffffffffffffffffffff1663550fcdc96040518163ffffffff1660e01b8152600401600060405180830381865afa15801561074e573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405261079491908101906109a5565b6040516020016103e79190610acc565b60006107b1338484610474565b9392505050565b60005b838110156107d35781810151838201526020016107bb565b838111156107e2576000848401525b50505050565b60208152600082518060208401526108078160408501602087016107b8565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461085d57600080fd5b919050565b6000806040838503121561087557600080fd5b61087e83610839565b946020939093013593505050565b6000806000606084860312156108a157600080fd5b6108aa84610839565b92506108b860208501610839565b9150604084013590509250925092565b6000602082840312156108da57600080fd5b5035919050565b6000602082840312156108f357600080fd5b6107b182610839565b6000806040838503121561090f57600080fd5b61091883610839565b915061092660208401610839565b90509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600082198211156109715761097161092f565b500190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000602082840312156109b757600080fd5b815167ffffffffffffffff808211156109cf57600080fd5b818401915084601f8301126109e357600080fd5b8151818111156109f5576109f5610976565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908382118183101715610a3b57610a3b610976565b81604052828152876020848701011115610a5457600080fd5b610a658360208301602088016107b8565b979650505050505050565b7f5772617070656420000000000000000000000000000000000000000000000000815260008251610aa88160088501602087016107b8565b9190910160080192915050565b600082821015610ac757610ac761092f565b500390565b7f5700000000000000000000000000000000000000000000000000000000000000815260008251610b048160018501602087016107b8565b919091016001019291505056fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R`\x046\x10a\0\xCBW`\x005`\xE0\x1C\x80cT\xFDMP\x11a\0tW\x80c\xA9\x05\x9C\xBB\x11a\0NW\x80c\xA9\x05\x9C\xBB\x14a\x02bW\x80c\xD0\xE3\r\xB0\x14a\0\xDAW\x80c\xDDb\xED>\x14a\x02\x82Wa\0\xDAV[\x80cT\xFDMP\x14a\x01\xC1W\x80cp\xA0\x821\x14a\x02\nW\x80c\x95\xD8\x9BA\x14a\x02MWa\0\xDAV[\x80c#\xB8r\xDD\x11a\0\xA5W\x80c#\xB8r\xDD\x14a\x01ZW\x80c.\x1A}M\x14a\x01zW\x80c1<\xE5g\x14a\x01\x9AWa\0\xDAV[\x80c\x06\xFD\xDE\x03\x14a\0\xE2W\x80c\t^\xA7\xB3\x14a\x01\rW\x80c\x18\x16\r\xDD\x14a\x01=Wa\0\xDAV[6a\0\xDAWa\0\xD8a\x02\xD5V[\0[a\0\xD8a\x02\xD5V[4\x80\x15a\0\xEEW`\0\x80\xFD[Pa\0\xF7a\x030V[`@Qa\x01\x04\x91\x90a\x07\xE8V[`@Q\x80\x91\x03\x90\xF3[4\x80\x15a\x01\x19W`\0\x80\xFD[Pa\x01-a\x01(6`\x04a\x08bV[a\x03\xFBV[`@Q\x90\x15\x15\x81R` \x01a\x01\x04V[4\x80\x15a\x01IW`\0\x80\xFD[PG[`@Q\x90\x81R` \x01a\x01\x04V[4\x80\x15a\x01fW`\0\x80\xFD[Pa\x01-a\x01u6`\x04a\x08\x8CV[a\x04tV[4\x80\x15a\x01\x86W`\0\x80\xFD[Pa\0\xD8a\x01\x956`\x04a\x08\xC8V[a\x06GV[4\x80\x15a\x01\xA6W`\0\x80\xFD[Pa\x01\xAF`\x12\x81V[`@Q`\xFF\x90\x91\x16\x81R` \x01a\x01\x04V[4\x80\x15a\x01\xCDW`\0\x80\xFD[Pa\0\xF7`@Q\x80`@\x01`@R\x80`\x05\x81R` \x01\x7F1.1.1\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\x81RP\x81V[4\x80\x15a\x02\x16W`\0\x80\xFD[Pa\x01La\x02%6`\x04a\x08\xE1V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\0\x90\x81R` \x81\x90R`@\x90 T\x90V[4\x80\x15a\x02YW`\0\x80\xFD[Pa\0\xF7a\x06\xEDV[4\x80\x15a\x02nW`\0\x80\xFD[Pa\x01-a\x02}6`\x04a\x08bV[a\x07\xA4V[4\x80\x15a\x02\x8EW`\0\x80\xFD[Pa\x01La\x02\x9D6`\x04a\x08\xFCV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x91\x82\x16`\0\x90\x81R`\x01` \x90\x81R`@\x80\x83 \x93\x90\x94\x16\x82R\x91\x90\x91R T\x90V[3`\0\x90\x81R` \x81\x90R`@\x81 \x80T4\x92\x90a\x02\xF4\x90\x84\x90a\t^V[\x90\x91UPP`@Q4\x81R3\x90\x7F\xE1\xFF\xFC\xC4\x92=\x04\xB5Y\xF4\xD2\x9A\x8B\xFCl\xDA\x04\xEB[\r=`\0\xFD[PPPP`@Q=`\0\x82>`\x1F=\x90\x81\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x82\x01`@Ra\x03\xD7\x91\x90\x81\x01\x90a\t\xA5V[`@Q` \x01a\x03\xE7\x91\x90a\npV[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x90P\x90V[3`\0\x81\x81R`\x01` \x90\x81R`@\x80\x83 s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x87\x16\x80\x85R\x92R\x80\x83 \x85\x90UQ\x91\x92\x90\x91\x7F\x8C[\xE1\xE5\xEB\xEC}[\xD1OqB}\x1E\x84\xF3\xDD\x03\x14\xC0\xF7\xB2)\x1E[ \n\xC8\xC7\xC3\xB9%\x90a\x04c\x90\x86\x81R` \x01\x90V[`@Q\x80\x91\x03\x90\xA3P`\x01\x92\x91PPV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x16`\0\x90\x81R` \x81\x90R`@\x81 T\x82\x11\x15a\x04\xA6W`\0\x80\xFD[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x16`\0\x81\x81R`\x01` \x90\x81R`@\x80\x83 3\x80\x85R\x92R\x90\x91 T\x91\x14\x80\x15\x90a\x05\x07WP\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x14\x15[\x15a\x05_W\x82\x81\x10\x15a\x05\x19W`\0\x80\xFD[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x85\x16`\0\x90\x81R`\x01` \x90\x81R`@\x80\x83 3\x84R\x90\x91R\x81 \x80T\x85\x92\x90a\x05Y\x90\x84\x90a\n\xB5V[\x90\x91UPP[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x85\x16`\0\x90\x81R` \x81\x90R`@\x81 \x80T\x85\x92\x90a\x05\x94\x90\x84\x90a\n\xB5V[\x90\x91UPPs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x16`\0\x90\x81R` \x81\x90R`@\x81 \x80T\x85\x92\x90a\x05\xCE\x90\x84\x90a\t^V[\x92PP\x81\x90UP\x83s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x85s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x7F\xDD\xF2R\xAD\x1B\xE2\xC8\x9Bi\xC2\xB0h\xFC7\x8D\xAA\x95+\xA7\xF1c\xC4\xA1\x16(\xF5ZM\xF5#\xB3\xEF\x85`@Qa\x064\x91\x81R` \x01\x90V[`@Q\x80\x91\x03\x90\xA3P`\x01\x94\x93PPPPV[3`\0\x90\x81R` \x81\x90R`@\x90 T\x81\x11\x15a\x06cW`\0\x80\xFD[3`\0\x90\x81R` \x81\x90R`@\x81 \x80T\x83\x92\x90a\x06\x82\x90\x84\x90a\n\xB5V[\x90\x91UPP`@Q3\x90\x82\x15a\x08\xFC\x02\x90\x83\x90`\0\x81\x81\x81\x85\x88\x88\xF1\x93PPPP\x15\x80\x15a\x06\xB4W=`\0\x80>=`\0\xFD[P`@Q\x81\x81R3\x90\x7F\x7F\xCFS,\x15\xF0\xA6\xDB\x0B\xD6\xD0\xE08\xBE\xA7\x1D0\xD8\x08\xC7\xD9\x8C\xB3\xBFrh\xA9[\xF5\x08\x1Be\x90` \x01`@Q\x80\x91\x03\x90\xA2PV[``sB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x15s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16cU\x0F\xCD\xC9`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01`\0`@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x07NW=`\0\x80>=`\0\xFD[PPPP`@Q=`\0\x82>`\x1F=\x90\x81\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x82\x01`@Ra\x07\x94\x91\x90\x81\x01\x90a\t\xA5V[`@Q` \x01a\x03\xE7\x91\x90a\n\xCCV[`\0a\x07\xB13\x84\x84a\x04tV[\x93\x92PPPV[`\0[\x83\x81\x10\x15a\x07\xD3W\x81\x81\x01Q\x83\x82\x01R` \x01a\x07\xBBV[\x83\x81\x11\x15a\x07\xE2W`\0\x84\x84\x01R[PPPPV[` \x81R`\0\x82Q\x80` \x84\x01Ra\x08\x07\x81`@\x85\x01` \x87\x01a\x07\xB8V[`\x1F\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x91\x90\x91\x01`@\x01\x92\x91PPV[\x805s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x08]W`\0\x80\xFD[\x91\x90PV[`\0\x80`@\x83\x85\x03\x12\x15a\x08uW`\0\x80\xFD[a\x08~\x83a\x089V[\x94` \x93\x90\x93\x015\x93PPPV[`\0\x80`\0``\x84\x86\x03\x12\x15a\x08\xA1W`\0\x80\xFD[a\x08\xAA\x84a\x089V[\x92Pa\x08\xB8` \x85\x01a\x089V[\x91P`@\x84\x015\x90P\x92P\x92P\x92V[`\0` \x82\x84\x03\x12\x15a\x08\xDAW`\0\x80\xFD[P5\x91\x90PV[`\0` \x82\x84\x03\x12\x15a\x08\xF3W`\0\x80\xFD[a\x07\xB1\x82a\x089V[`\0\x80`@\x83\x85\x03\x12\x15a\t\x0FW`\0\x80\xFD[a\t\x18\x83a\x089V[\x91Pa\t&` \x84\x01a\x089V[\x90P\x92P\x92\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`\x11`\x04R`$`\0\xFD[`\0\x82\x19\x82\x11\x15a\tqWa\tqa\t/V[P\x01\x90V[\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[`\0` \x82\x84\x03\x12\x15a\t\xB7W`\0\x80\xFD[\x81Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\t\xCFW`\0\x80\xFD[\x81\x84\x01\x91P\x84`\x1F\x83\x01\x12a\t\xE3W`\0\x80\xFD[\x81Q\x81\x81\x11\x15a\t\xF5Wa\t\xF5a\tvV[`@Q`\x1F\x82\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x90\x81\x16`?\x01\x16\x81\x01\x90\x83\x82\x11\x81\x83\x10\x17\x15a\n;Wa\n;a\tvV[\x81`@R\x82\x81R\x87` \x84\x87\x01\x01\x11\x15a\nTW`\0\x80\xFD[a\ne\x83` \x83\x01` \x88\x01a\x07\xB8V[\x97\x96PPPPPPPV[\x7FWrapped \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`\0\x82Qa\n\xA8\x81`\x08\x85\x01` \x87\x01a\x07\xB8V[\x91\x90\x91\x01`\x08\x01\x92\x91PPV[`\0\x82\x82\x10\x15a\n\xC7Wa\n\xC7a\t/V[P\x03\x90V[\x7FW\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81R`\0\x82Qa\x0B\x04\x81`\x01\x85\x01` \x87\x01a\x07\xB8V[\x91\x90\x91\x01`\x01\x01\x92\x91PPV\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `Approval(address,address,uint256)` and selector `0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925`. +```solidity +event Approval(address indexed src, address indexed guy, uint256 wad); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct Approval { + #[allow(missing_docs)] + pub src: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub guy: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub wad: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for Approval { + type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "Approval(address,address,uint256)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 140u8, 91u8, 225u8, 229u8, 235u8, 236u8, 125u8, 91u8, 209u8, 79u8, 113u8, + 66u8, 125u8, 30u8, 132u8, 243u8, 221u8, 3u8, 20u8, 192u8, 247u8, 178u8, + 41u8, 30u8, 91u8, 32u8, 10u8, 200u8, 199u8, 195u8, 185u8, 37u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + src: topics.1, + guy: topics.2, + wad: data.0, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.wad), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.src.clone(), self.guy.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.src, + ); + out[2usize] = ::encode_topic( + &self.guy, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for Approval { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&Approval> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &Approval) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `Deposit(address,uint256)` and selector `0xe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c`. +```solidity +event Deposit(address indexed dst, uint256 wad); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct Deposit { + #[allow(missing_docs)] + pub dst: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub wad: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for Deposit { + type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "Deposit(address,uint256)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 225u8, 255u8, 252u8, 196u8, 146u8, 61u8, 4u8, 181u8, 89u8, 244u8, 210u8, + 154u8, 139u8, 252u8, 108u8, 218u8, 4u8, 235u8, 91u8, 13u8, 60u8, 70u8, + 7u8, 81u8, 194u8, 64u8, 44u8, 92u8, 92u8, 201u8, 16u8, 156u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { dst: topics.1, wad: data.0 } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.wad), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.dst.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.dst, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for Deposit { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&Deposit> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &Deposit) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `Transfer(address,address,uint256)` and selector `0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef`. +```solidity +event Transfer(address indexed src, address indexed dst, uint256 wad); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct Transfer { + #[allow(missing_docs)] + pub src: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub dst: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub wad: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for Transfer { + type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "Transfer(address,address,uint256)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 221u8, 242u8, 82u8, 173u8, 27u8, 226u8, 200u8, 155u8, 105u8, 194u8, + 176u8, 104u8, 252u8, 55u8, 141u8, 170u8, 149u8, 43u8, 167u8, 241u8, 99u8, + 196u8, 161u8, 22u8, 40u8, 245u8, 90u8, 77u8, 245u8, 35u8, 179u8, 239u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + src: topics.1, + dst: topics.2, + wad: data.0, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.wad), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.src.clone(), self.dst.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.src, + ); + out[2usize] = ::encode_topic( + &self.dst, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for Transfer { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&Transfer> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &Transfer) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `Withdrawal(address,uint256)` and selector `0x7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65`. +```solidity +event Withdrawal(address indexed src, uint256 wad); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct Withdrawal { + #[allow(missing_docs)] + pub src: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub wad: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for Withdrawal { + type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "Withdrawal(address,uint256)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 127u8, 207u8, 83u8, 44u8, 21u8, 240u8, 166u8, 219u8, 11u8, 214u8, 208u8, + 224u8, 56u8, 190u8, 167u8, 29u8, 48u8, 216u8, 8u8, 199u8, 217u8, 140u8, + 179u8, 191u8, 114u8, 104u8, 169u8, 91u8, 245u8, 8u8, 27u8, 101u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { src: topics.1, wad: data.0 } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.wad), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.src.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.src, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for Withdrawal { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&Withdrawal> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &Withdrawal) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `allowance(address,address)` and selector `0xdd62ed3e`. +```solidity +function allowance(address owner, address spender) external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct allowanceCall { + #[allow(missing_docs)] + pub owner: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub spender: alloy::sol_types::private::Address, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`allowance(address,address)`](allowanceCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct allowanceReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: allowanceCall) -> Self { + (value.owner, value.spender) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for allowanceCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + owner: tuple.0, + spender: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: allowanceReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for allowanceReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for allowanceCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "allowance(address,address)"; + const SELECTOR: [u8; 4] = [221u8, 98u8, 237u8, 62u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.owner, + ), + ::tokenize( + &self.spender, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: allowanceReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: allowanceReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `approve(address,uint256)` and selector `0x095ea7b3`. +```solidity +function approve(address guy, uint256 wad) external returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct approveCall { + #[allow(missing_docs)] + pub guy: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub wad: alloy::sol_types::private::primitives::aliases::U256, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`approve(address,uint256)`](approveCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct approveReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: approveCall) -> Self { + (value.guy, value.wad) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for approveCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { guy: tuple.0, wad: tuple.1 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: approveReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for approveReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for approveCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "approve(address,uint256)"; + const SELECTOR: [u8; 4] = [9u8, 94u8, 167u8, 179u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.guy, + ), + as alloy_sol_types::SolType>::tokenize(&self.wad), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: approveReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: approveReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `balanceOf(address)` and selector `0x70a08231`. +```solidity +function balanceOf(address src) external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct balanceOfCall { + #[allow(missing_docs)] + pub src: alloy::sol_types::private::Address, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`balanceOf(address)`](balanceOfCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct balanceOfReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: balanceOfCall) -> Self { + (value.src,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for balanceOfCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { src: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: balanceOfReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for balanceOfReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for balanceOfCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "balanceOf(address)"; + const SELECTOR: [u8; 4] = [112u8, 160u8, 130u8, 49u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.src, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: balanceOfReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: balanceOfReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `decimals()` and selector `0x313ce567`. +```solidity +function decimals() external view returns (uint8); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct decimalsCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`decimals()`](decimalsCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct decimalsReturn { + #[allow(missing_docs)] + pub _0: u8, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: decimalsCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for decimalsCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<8>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u8,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: decimalsReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for decimalsReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for decimalsCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u8; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<8>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "decimals()"; + const SELECTOR: [u8; 4] = [49u8, 60u8, 229u8, 103u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: decimalsReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: decimalsReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `deposit()` and selector `0xd0e30db0`. +```solidity +function deposit() external payable; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct depositCall; + ///Container type for the return parameters of the [`deposit()`](depositCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct depositReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: depositCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for depositCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: depositReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for depositReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl depositReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for depositCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = depositReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "deposit()"; + const SELECTOR: [u8; 4] = [208u8, 227u8, 13u8, 176u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + depositReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `name()` and selector `0x06fdde03`. +```solidity +function name() external pure returns (string memory name_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct nameCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`name()`](nameCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct nameReturn { + #[allow(missing_docs)] + pub name_: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: nameCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for nameCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: nameReturn) -> Self { + (value.name_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for nameReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { name_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for nameCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::String; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "name()"; + const SELECTOR: [u8; 4] = [6u8, 253u8, 222u8, 3u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: nameReturn = r.into(); + r.name_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: nameReturn = r.into(); + r.name_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `symbol()` and selector `0x95d89b41`. +```solidity +function symbol() external pure returns (string memory symbol_); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct symbolCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`symbol()`](symbolCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct symbolReturn { + #[allow(missing_docs)] + pub symbol_: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: symbolCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for symbolCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: symbolReturn) -> Self { + (value.symbol_,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for symbolReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { symbol_: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for symbolCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::String; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "symbol()"; + const SELECTOR: [u8; 4] = [149u8, 216u8, 155u8, 65u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: symbolReturn = r.into(); + r.symbol_ + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: symbolReturn = r.into(); + r.symbol_ + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `totalSupply()` and selector `0x18160ddd`. +```solidity +function totalSupply() external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct totalSupplyCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`totalSupply()`](totalSupplyCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct totalSupplyReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: totalSupplyCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for totalSupplyCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: totalSupplyReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for totalSupplyReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for totalSupplyCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "totalSupply()"; + const SELECTOR: [u8; 4] = [24u8, 22u8, 13u8, 221u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: totalSupplyReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: totalSupplyReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `transfer(address,uint256)` and selector `0xa9059cbb`. +```solidity +function transfer(address dst, uint256 wad) external returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct transferCall { + #[allow(missing_docs)] + pub dst: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub wad: alloy::sol_types::private::primitives::aliases::U256, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`transfer(address,uint256)`](transferCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct transferReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: transferCall) -> Self { + (value.dst, value.wad) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for transferCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { dst: tuple.0, wad: tuple.1 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: transferReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for transferReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for transferCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "transfer(address,uint256)"; + const SELECTOR: [u8; 4] = [169u8, 5u8, 156u8, 187u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.dst, + ), + as alloy_sol_types::SolType>::tokenize(&self.wad), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: transferReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: transferReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd`. +```solidity +function transferFrom(address src, address dst, uint256 wad) external returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct transferFromCall { + #[allow(missing_docs)] + pub src: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub dst: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub wad: alloy::sol_types::private::primitives::aliases::U256, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`transferFrom(address,address,uint256)`](transferFromCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct transferFromReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: transferFromCall) -> Self { + (value.src, value.dst, value.wad) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for transferFromCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + src: tuple.0, + dst: tuple.1, + wad: tuple.2, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: transferFromReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for transferFromReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for transferFromCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "transferFrom(address,address,uint256)"; + const SELECTOR: [u8; 4] = [35u8, 184u8, 114u8, 221u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.src, + ), + ::tokenize( + &self.dst, + ), + as alloy_sol_types::SolType>::tokenize(&self.wad), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: transferFromReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: transferFromReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `version()` and selector `0x54fd4d50`. +```solidity +function version() external view returns (string memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`version()`](versionCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct versionReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: versionReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for versionReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for versionCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::String; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "version()"; + const SELECTOR: [u8; 4] = [84u8, 253u8, 77u8, 80u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: versionReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `withdraw(uint256)` and selector `0x2e1a7d4d`. +```solidity +function withdraw(uint256 wad) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct withdrawCall { + #[allow(missing_docs)] + pub wad: alloy::sol_types::private::primitives::aliases::U256, + } + ///Container type for the return parameters of the [`withdraw(uint256)`](withdrawCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct withdrawReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: withdrawCall) -> Self { + (value.wad,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for withdrawCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { wad: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: withdrawReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for withdrawReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl withdrawReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for withdrawCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = withdrawReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "withdraw(uint256)"; + const SELECTOR: [u8; 4] = [46u8, 26u8, 125u8, 77u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.wad), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + withdrawReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + ///Container for all the [`WETH`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum WETHCalls { + #[allow(missing_docs)] + allowance(allowanceCall), + #[allow(missing_docs)] + approve(approveCall), + #[allow(missing_docs)] + balanceOf(balanceOfCall), + #[allow(missing_docs)] + decimals(decimalsCall), + #[allow(missing_docs)] + deposit(depositCall), + #[allow(missing_docs)] + name(nameCall), + #[allow(missing_docs)] + symbol(symbolCall), + #[allow(missing_docs)] + totalSupply(totalSupplyCall), + #[allow(missing_docs)] + transfer(transferCall), + #[allow(missing_docs)] + transferFrom(transferFromCall), + #[allow(missing_docs)] + version(versionCall), + #[allow(missing_docs)] + withdraw(withdrawCall), + } + impl WETHCalls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [6u8, 253u8, 222u8, 3u8], + [9u8, 94u8, 167u8, 179u8], + [24u8, 22u8, 13u8, 221u8], + [35u8, 184u8, 114u8, 221u8], + [46u8, 26u8, 125u8, 77u8], + [49u8, 60u8, 229u8, 103u8], + [84u8, 253u8, 77u8, 80u8], + [112u8, 160u8, 130u8, 49u8], + [149u8, 216u8, 155u8, 65u8], + [169u8, 5u8, 156u8, 187u8], + [208u8, 227u8, 13u8, 176u8], + [221u8, 98u8, 237u8, 62u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(name), + ::core::stringify!(approve), + ::core::stringify!(totalSupply), + ::core::stringify!(transferFrom), + ::core::stringify!(withdraw), + ::core::stringify!(decimals), + ::core::stringify!(version), + ::core::stringify!(balanceOf), + ::core::stringify!(symbol), + ::core::stringify!(transfer), + ::core::stringify!(deposit), + ::core::stringify!(allowance), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for WETHCalls { + const NAME: &'static str = "WETHCalls"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 12usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::allowance(_) => { + ::SELECTOR + } + Self::approve(_) => ::SELECTOR, + Self::balanceOf(_) => { + ::SELECTOR + } + Self::decimals(_) => ::SELECTOR, + Self::deposit(_) => ::SELECTOR, + Self::name(_) => ::SELECTOR, + Self::symbol(_) => ::SELECTOR, + Self::totalSupply(_) => { + ::SELECTOR + } + Self::transfer(_) => ::SELECTOR, + Self::transferFrom(_) => { + ::SELECTOR + } + Self::version(_) => ::SELECTOR, + Self::withdraw(_) => ::SELECTOR, + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn(&[u8]) -> alloy_sol_types::Result] = &[ + { + fn name(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(WETHCalls::name) + } + name + }, + { + fn approve(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(WETHCalls::approve) + } + approve + }, + { + fn totalSupply(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(WETHCalls::totalSupply) + } + totalSupply + }, + { + fn transferFrom(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(WETHCalls::transferFrom) + } + transferFrom + }, + { + fn withdraw(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(WETHCalls::withdraw) + } + withdraw + }, + { + fn decimals(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(WETHCalls::decimals) + } + decimals + }, + { + fn version(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(WETHCalls::version) + } + version + }, + { + fn balanceOf(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(WETHCalls::balanceOf) + } + balanceOf + }, + { + fn symbol(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(WETHCalls::symbol) + } + symbol + }, + { + fn transfer(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(WETHCalls::transfer) + } + transfer + }, + { + fn deposit(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(WETHCalls::deposit) + } + deposit + }, + { + fn allowance(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(WETHCalls::allowance) + } + allowance + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn name(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(WETHCalls::name) + } + name + }, + { + fn approve(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(WETHCalls::approve) + } + approve + }, + { + fn totalSupply(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(WETHCalls::totalSupply) + } + totalSupply + }, + { + fn transferFrom(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(WETHCalls::transferFrom) + } + transferFrom + }, + { + fn withdraw(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(WETHCalls::withdraw) + } + withdraw + }, + { + fn decimals(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(WETHCalls::decimals) + } + decimals + }, + { + fn version(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(WETHCalls::version) + } + version + }, + { + fn balanceOf(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(WETHCalls::balanceOf) + } + balanceOf + }, + { + fn symbol(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(WETHCalls::symbol) + } + symbol + }, + { + fn transfer(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(WETHCalls::transfer) + } + transfer + }, + { + fn deposit(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(WETHCalls::deposit) + } + deposit + }, + { + fn allowance(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(WETHCalls::allowance) + } + allowance + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::allowance(inner) => { + ::abi_encoded_size(inner) + } + Self::approve(inner) => { + ::abi_encoded_size(inner) + } + Self::balanceOf(inner) => { + ::abi_encoded_size(inner) + } + Self::decimals(inner) => { + ::abi_encoded_size(inner) + } + Self::deposit(inner) => { + ::abi_encoded_size(inner) + } + Self::name(inner) => { + ::abi_encoded_size(inner) + } + Self::symbol(inner) => { + ::abi_encoded_size(inner) + } + Self::totalSupply(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::transfer(inner) => { + ::abi_encoded_size(inner) + } + Self::transferFrom(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::version(inner) => { + ::abi_encoded_size(inner) + } + Self::withdraw(inner) => { + ::abi_encoded_size(inner) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::allowance(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::approve(inner) => { + ::abi_encode_raw(inner, out) + } + Self::balanceOf(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::decimals(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::deposit(inner) => { + ::abi_encode_raw(inner, out) + } + Self::name(inner) => { + ::abi_encode_raw(inner, out) + } + Self::symbol(inner) => { + ::abi_encode_raw(inner, out) + } + Self::totalSupply(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::transfer(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::transferFrom(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::version(inner) => { + ::abi_encode_raw(inner, out) + } + Self::withdraw(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + } + } + } + ///Container for all the [`WETH`](self) events. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum WETHEvents { + #[allow(missing_docs)] + Approval(Approval), + #[allow(missing_docs)] + Deposit(Deposit), + #[allow(missing_docs)] + Transfer(Transfer), + #[allow(missing_docs)] + Withdrawal(Withdrawal), + } + impl WETHEvents { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 32usize]] = &[ + [ + 127u8, 207u8, 83u8, 44u8, 21u8, 240u8, 166u8, 219u8, 11u8, 214u8, 208u8, + 224u8, 56u8, 190u8, 167u8, 29u8, 48u8, 216u8, 8u8, 199u8, 217u8, 140u8, + 179u8, 191u8, 114u8, 104u8, 169u8, 91u8, 245u8, 8u8, 27u8, 101u8, + ], + [ + 140u8, 91u8, 225u8, 229u8, 235u8, 236u8, 125u8, 91u8, 209u8, 79u8, 113u8, + 66u8, 125u8, 30u8, 132u8, 243u8, 221u8, 3u8, 20u8, 192u8, 247u8, 178u8, + 41u8, 30u8, 91u8, 32u8, 10u8, 200u8, 199u8, 195u8, 185u8, 37u8, + ], + [ + 221u8, 242u8, 82u8, 173u8, 27u8, 226u8, 200u8, 155u8, 105u8, 194u8, + 176u8, 104u8, 252u8, 55u8, 141u8, 170u8, 149u8, 43u8, 167u8, 241u8, 99u8, + 196u8, 161u8, 22u8, 40u8, 245u8, 90u8, 77u8, 245u8, 35u8, 179u8, 239u8, + ], + [ + 225u8, 255u8, 252u8, 196u8, 146u8, 61u8, 4u8, 181u8, 89u8, 244u8, 210u8, + 154u8, 139u8, 252u8, 108u8, 218u8, 4u8, 235u8, 91u8, 13u8, 60u8, 70u8, + 7u8, 81u8, 194u8, 64u8, 44u8, 92u8, 92u8, 201u8, 16u8, 156u8, + ], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(Withdrawal), + ::core::stringify!(Approval), + ::core::stringify!(Transfer), + ::core::stringify!(Deposit), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolEventInterface for WETHEvents { + const NAME: &'static str = "WETHEvents"; + const COUNT: usize = 4usize; + fn decode_raw_log( + topics: &[alloy_sol_types::Word], + data: &[u8], + ) -> alloy_sol_types::Result { + match topics.first().copied() { + Some(::SIGNATURE_HASH) => { + ::decode_raw_log(topics, data) + .map(Self::Approval) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log(topics, data) + .map(Self::Deposit) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log(topics, data) + .map(Self::Transfer) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::Withdrawal) + } + _ => { + alloy_sol_types::private::Err(alloy_sol_types::Error::InvalidLog { + name: ::NAME, + log: alloy_sol_types::private::Box::new( + alloy_sol_types::private::LogData::new_unchecked( + topics.to_vec(), + data.to_vec().into(), + ), + ), + }) + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for WETHEvents { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + match self { + Self::Approval(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::Deposit(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::Transfer(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::Withdrawal(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + } + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + match self { + Self::Approval(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::Deposit(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::Transfer(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::Withdrawal(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`WETH`](self) contract instance. + +See the [wrapper's documentation](`WETHInstance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(address: alloy_sol_types::private::Address, __provider: P) -> WETHInstance { + WETHInstance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + WETHInstance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + WETHInstance::::deploy_builder(__provider) + } + /**A [`WETH`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`WETH`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct WETHInstance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for WETHInstance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("WETHInstance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > WETHInstance { + /**Creates a new wrapper around an on-chain [`WETH`](self) contract instance. + +See the [wrapper's documentation](`WETHInstance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl WETHInstance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> WETHInstance { + WETHInstance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > WETHInstance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`allowance`] function. + pub fn allowance( + &self, + owner: alloy::sol_types::private::Address, + spender: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, allowanceCall, N> { + self.call_builder(&allowanceCall { owner, spender }) + } + ///Creates a new call builder for the [`approve`] function. + pub fn approve( + &self, + guy: alloy::sol_types::private::Address, + wad: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, approveCall, N> { + self.call_builder(&approveCall { guy, wad }) + } + ///Creates a new call builder for the [`balanceOf`] function. + pub fn balanceOf( + &self, + src: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, balanceOfCall, N> { + self.call_builder(&balanceOfCall { src }) + } + ///Creates a new call builder for the [`decimals`] function. + pub fn decimals(&self) -> alloy_contract::SolCallBuilder<&P, decimalsCall, N> { + self.call_builder(&decimalsCall) + } + ///Creates a new call builder for the [`deposit`] function. + pub fn deposit(&self) -> alloy_contract::SolCallBuilder<&P, depositCall, N> { + self.call_builder(&depositCall) + } + ///Creates a new call builder for the [`name`] function. + pub fn name(&self) -> alloy_contract::SolCallBuilder<&P, nameCall, N> { + self.call_builder(&nameCall) + } + ///Creates a new call builder for the [`symbol`] function. + pub fn symbol(&self) -> alloy_contract::SolCallBuilder<&P, symbolCall, N> { + self.call_builder(&symbolCall) + } + ///Creates a new call builder for the [`totalSupply`] function. + pub fn totalSupply( + &self, + ) -> alloy_contract::SolCallBuilder<&P, totalSupplyCall, N> { + self.call_builder(&totalSupplyCall) + } + ///Creates a new call builder for the [`transfer`] function. + pub fn transfer( + &self, + dst: alloy::sol_types::private::Address, + wad: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, transferCall, N> { + self.call_builder(&transferCall { dst, wad }) + } + ///Creates a new call builder for the [`transferFrom`] function. + pub fn transferFrom( + &self, + src: alloy::sol_types::private::Address, + dst: alloy::sol_types::private::Address, + wad: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, transferFromCall, N> { + self.call_builder(&transferFromCall { src, dst, wad }) + } + ///Creates a new call builder for the [`version`] function. + pub fn version(&self) -> alloy_contract::SolCallBuilder<&P, versionCall, N> { + self.call_builder(&versionCall) + } + ///Creates a new call builder for the [`withdraw`] function. + pub fn withdraw( + &self, + wad: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, withdrawCall, N> { + self.call_builder(&withdrawCall { wad }) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > WETHInstance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + ///Creates a new event filter for the [`Approval`] event. + pub fn Approval_filter(&self) -> alloy_contract::Event<&P, Approval, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`Deposit`] event. + pub fn Deposit_filter(&self) -> alloy_contract::Event<&P, Deposit, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`Transfer`] event. + pub fn Transfer_filter(&self) -> alloy_contract::Event<&P, Transfer, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`Withdrawal`] event. + pub fn Withdrawal_filter(&self) -> alloy_contract::Event<&P, Withdrawal, N> { + self.event_filter::() + } + } +} diff --git a/bindings/rust/src/weth98.rs b/bindings/rust/src/weth98.rs new file mode 100644 index 000000000..5147c31d2 --- /dev/null +++ b/bindings/rust/src/weth98.rs @@ -0,0 +1,3395 @@ +/** + +Generated by the following Solidity interface... +```solidity +interface WETH98 { + event Approval(address indexed src, address indexed guy, uint256 wad); + event Deposit(address indexed dst, uint256 wad); + event Transfer(address indexed src, address indexed dst, uint256 wad); + event Withdrawal(address indexed src, uint256 wad); + + fallback() external payable; + + receive() external payable; + + function allowance(address owner, address spender) external view returns (uint256); + function approve(address guy, uint256 wad) external returns (bool); + function balanceOf(address src) external view returns (uint256); + function decimals() external view returns (uint8); + function deposit() external payable; + function name() external view returns (string memory); + function symbol() external view returns (string memory); + function totalSupply() external view returns (uint256); + function transfer(address dst, uint256 wad) external returns (bool); + function transferFrom(address src, address dst, uint256 wad) external returns (bool); + function withdraw(uint256 wad) external; +} +``` + +...which was generated by the following JSON ABI: +```json +[ + { + "type": "fallback", + "stateMutability": "payable" + }, + { + "type": "receive", + "stateMutability": "payable" + }, + { + "type": "function", + "name": "allowance", + "inputs": [ + { + "name": "owner", + "type": "address", + "internalType": "address" + }, + { + "name": "spender", + "type": "address", + "internalType": "address" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "approve", + "inputs": [ + { + "name": "guy", + "type": "address", + "internalType": "address" + }, + { + "name": "wad", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "balanceOf", + "inputs": [ + { + "name": "src", + "type": "address", + "internalType": "address" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "decimals", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint8", + "internalType": "uint8" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "deposit", + "inputs": [], + "outputs": [], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "name", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "symbol", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "totalSupply", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "transfer", + "inputs": [ + { + "name": "dst", + "type": "address", + "internalType": "address" + }, + { + "name": "wad", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "transferFrom", + "inputs": [ + { + "name": "src", + "type": "address", + "internalType": "address" + }, + { + "name": "dst", + "type": "address", + "internalType": "address" + }, + { + "name": "wad", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "withdraw", + "inputs": [ + { + "name": "wad", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "event", + "name": "Approval", + "inputs": [ + { + "name": "src", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "guy", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "wad", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "Deposit", + "inputs": [ + { + "name": "dst", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "wad", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "Transfer", + "inputs": [ + { + "name": "src", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "dst", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "wad", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "Withdrawal", + "inputs": [ + { + "name": "src", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "wad", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + } +] +```*/ +#[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style, + clippy::empty_structs_with_brackets +)] +pub mod WETH98 { + use super::*; + use alloy::sol_types as alloy_sol_types; + /// The creation / init bytecode of the contract. + /// + /// ```text + ///0x608060405234801561001057600080fd5b50610814806100206000396000f3fe6080604052600436106100c05760003560e01c8063313ce56711610074578063a9059cbb1161004e578063a9059cbb1461026c578063d0e30db0146100cf578063dd62ed3e1461028c576100cf565b8063313ce567146101bc57806370a08231146101e357806395d89b4114610226576100cf565b806318160ddd116100a557806318160ddd1461015f57806323b872dd1461017c5780632e1a7d4d1461019c576100cf565b806306fdde03146100d7578063095ea7b31461012f576100cf565b366100cf576100cd6102df565b005b6100cd6102df565b3480156100e357600080fd5b5060408051808201909152600d81527f577261707065642045746865720000000000000000000000000000000000000060208201525b6040516101269190610640565b60405180910390f35b34801561013b57600080fd5b5061014f61014a3660046106dc565b61033a565b6040519015158152602001610126565b34801561016b57600080fd5b50475b604051908152602001610126565b34801561018857600080fd5b5061014f610197366004610706565b6103b3565b3480156101a857600080fd5b506100cd6101b7366004610742565b610586565b3480156101c857600080fd5b506101d1601281565b60405160ff9091168152602001610126565b3480156101ef57600080fd5b5061016e6101fe36600461075b565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b34801561023257600080fd5b5060408051808201909152600481527f57455448000000000000000000000000000000000000000000000000000000006020820152610119565b34801561027857600080fd5b5061014f6102873660046106dc565b61062c565b34801561029857600080fd5b5061016e6102a7366004610776565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b33600090815260208190526040812080543492906102fe9084906107d8565b909155505060405134815233907fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c9060200160405180910390a2565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906103a29086815260200190565b60405180910390a350600192915050565b73ffffffffffffffffffffffffffffffffffffffff83166000908152602081905260408120548211156103e557600080fd5b73ffffffffffffffffffffffffffffffffffffffff8416600081815260016020908152604080832033808552925290912054911480159061044657507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114155b1561049e578281101561045857600080fd5b73ffffffffffffffffffffffffffffffffffffffff85166000908152600160209081526040808320338452909152812080548592906104989084906107f0565b90915550505b73ffffffffffffffffffffffffffffffffffffffff8516600090815260208190526040812080548592906104d39084906107f0565b909155505073ffffffffffffffffffffffffffffffffffffffff84166000908152602081905260408120805485929061050d9084906107d8565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161057391815260200190565b60405180910390a3506001949350505050565b336000908152602081905260409020548111156105a257600080fd5b33600090815260208190526040812080548392906105c19084906107f0565b9091555050604051339082156108fc029083906000818181858888f193505050501580156105f3573d6000803e3d6000fd5b5060405181815233907f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b659060200160405180910390a250565b60006106393384846103b3565b9392505050565b600060208083528351808285015260005b8181101561066d57858101830151858201604001528201610651565b8181111561067f576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b803573ffffffffffffffffffffffffffffffffffffffff811681146106d757600080fd5b919050565b600080604083850312156106ef57600080fd5b6106f8836106b3565b946020939093013593505050565b60008060006060848603121561071b57600080fd5b610724846106b3565b9250610732602085016106b3565b9150604084013590509250925092565b60006020828403121561075457600080fd5b5035919050565b60006020828403121561076d57600080fd5b610639826106b3565b6000806040838503121561078957600080fd5b610792836106b3565b91506107a0602084016106b3565b90509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600082198211156107eb576107eb6107a9565b500190565b600082821015610802576108026107a9565b50039056fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[Pa\x08\x14\x80a\0 `\09`\0\xF3\xFE`\x80`@R`\x046\x10a\0\xC0W`\x005`\xE0\x1C\x80c1<\xE5g\x11a\0tW\x80c\xA9\x05\x9C\xBB\x11a\0NW\x80c\xA9\x05\x9C\xBB\x14a\x02lW\x80c\xD0\xE3\r\xB0\x14a\0\xCFW\x80c\xDDb\xED>\x14a\x02\x8CWa\0\xCFV[\x80c1<\xE5g\x14a\x01\xBCW\x80cp\xA0\x821\x14a\x01\xE3W\x80c\x95\xD8\x9BA\x14a\x02&Wa\0\xCFV[\x80c\x18\x16\r\xDD\x11a\0\xA5W\x80c\x18\x16\r\xDD\x14a\x01_W\x80c#\xB8r\xDD\x14a\x01|W\x80c.\x1A}M\x14a\x01\x9CWa\0\xCFV[\x80c\x06\xFD\xDE\x03\x14a\0\xD7W\x80c\t^\xA7\xB3\x14a\x01/Wa\0\xCFV[6a\0\xCFWa\0\xCDa\x02\xDFV[\0[a\0\xCDa\x02\xDFV[4\x80\x15a\0\xE3W`\0\x80\xFD[P`@\x80Q\x80\x82\x01\x90\x91R`\r\x81R\x7FWrapped Ether\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0` \x82\x01R[`@Qa\x01&\x91\x90a\x06@V[`@Q\x80\x91\x03\x90\xF3[4\x80\x15a\x01;W`\0\x80\xFD[Pa\x01Oa\x01J6`\x04a\x06\xDCV[a\x03:V[`@Q\x90\x15\x15\x81R` \x01a\x01&V[4\x80\x15a\x01kW`\0\x80\xFD[PG[`@Q\x90\x81R` \x01a\x01&V[4\x80\x15a\x01\x88W`\0\x80\xFD[Pa\x01Oa\x01\x976`\x04a\x07\x06V[a\x03\xB3V[4\x80\x15a\x01\xA8W`\0\x80\xFD[Pa\0\xCDa\x01\xB76`\x04a\x07BV[a\x05\x86V[4\x80\x15a\x01\xC8W`\0\x80\xFD[Pa\x01\xD1`\x12\x81V[`@Q`\xFF\x90\x91\x16\x81R` \x01a\x01&V[4\x80\x15a\x01\xEFW`\0\x80\xFD[Pa\x01na\x01\xFE6`\x04a\x07[V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\0\x90\x81R` \x81\x90R`@\x90 T\x90V[4\x80\x15a\x022W`\0\x80\xFD[P`@\x80Q\x80\x82\x01\x90\x91R`\x04\x81R\x7FWETH\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` \x82\x01Ra\x01\x19V[4\x80\x15a\x02xW`\0\x80\xFD[Pa\x01Oa\x02\x876`\x04a\x06\xDCV[a\x06,V[4\x80\x15a\x02\x98W`\0\x80\xFD[Pa\x01na\x02\xA76`\x04a\x07vV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x91\x82\x16`\0\x90\x81R`\x01` \x90\x81R`@\x80\x83 \x93\x90\x94\x16\x82R\x91\x90\x91R T\x90V[3`\0\x90\x81R` \x81\x90R`@\x81 \x80T4\x92\x90a\x02\xFE\x90\x84\x90a\x07\xD8V[\x90\x91UPP`@Q4\x81R3\x90\x7F\xE1\xFF\xFC\xC4\x92=\x04\xB5Y\xF4\xD2\x9A\x8B\xFCl\xDA\x04\xEB[\r=`\0\xFD[P`@Q\x81\x81R3\x90\x7F\x7F\xCFS,\x15\xF0\xA6\xDB\x0B\xD6\xD0\xE08\xBE\xA7\x1D0\xD8\x08\xC7\xD9\x8C\xB3\xBFrh\xA9[\xF5\x08\x1Be\x90` \x01`@Q\x80\x91\x03\x90\xA2PV[`\0a\x0693\x84\x84a\x03\xB3V[\x93\x92PPPV[`\0` \x80\x83R\x83Q\x80\x82\x85\x01R`\0[\x81\x81\x10\x15a\x06mW\x85\x81\x01\x83\x01Q\x85\x82\x01`@\x01R\x82\x01a\x06QV[\x81\x81\x11\x15a\x06\x7FW`\0`@\x83\x87\x01\x01R[P`\x1F\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x92\x90\x92\x01`@\x01\x93\x92PPPV[\x805s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x06\xD7W`\0\x80\xFD[\x91\x90PV[`\0\x80`@\x83\x85\x03\x12\x15a\x06\xEFW`\0\x80\xFD[a\x06\xF8\x83a\x06\xB3V[\x94` \x93\x90\x93\x015\x93PPPV[`\0\x80`\0``\x84\x86\x03\x12\x15a\x07\x1BW`\0\x80\xFD[a\x07$\x84a\x06\xB3V[\x92Pa\x072` \x85\x01a\x06\xB3V[\x91P`@\x84\x015\x90P\x92P\x92P\x92V[`\0` \x82\x84\x03\x12\x15a\x07TW`\0\x80\xFD[P5\x91\x90PV[`\0` \x82\x84\x03\x12\x15a\x07mW`\0\x80\xFD[a\x069\x82a\x06\xB3V[`\0\x80`@\x83\x85\x03\x12\x15a\x07\x89W`\0\x80\xFD[a\x07\x92\x83a\x06\xB3V[\x91Pa\x07\xA0` \x84\x01a\x06\xB3V[\x90P\x92P\x92\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`\x11`\x04R`$`\0\xFD[`\0\x82\x19\x82\x11\x15a\x07\xEBWa\x07\xEBa\x07\xA9V[P\x01\x90V[`\0\x82\x82\x10\x15a\x08\x02Wa\x08\x02a\x07\xA9V[P\x03\x90V\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + /// The runtime bytecode of the contract, as deployed on the network. + /// + /// ```text + ///0x6080604052600436106100c05760003560e01c8063313ce56711610074578063a9059cbb1161004e578063a9059cbb1461026c578063d0e30db0146100cf578063dd62ed3e1461028c576100cf565b8063313ce567146101bc57806370a08231146101e357806395d89b4114610226576100cf565b806318160ddd116100a557806318160ddd1461015f57806323b872dd1461017c5780632e1a7d4d1461019c576100cf565b806306fdde03146100d7578063095ea7b31461012f576100cf565b366100cf576100cd6102df565b005b6100cd6102df565b3480156100e357600080fd5b5060408051808201909152600d81527f577261707065642045746865720000000000000000000000000000000000000060208201525b6040516101269190610640565b60405180910390f35b34801561013b57600080fd5b5061014f61014a3660046106dc565b61033a565b6040519015158152602001610126565b34801561016b57600080fd5b50475b604051908152602001610126565b34801561018857600080fd5b5061014f610197366004610706565b6103b3565b3480156101a857600080fd5b506100cd6101b7366004610742565b610586565b3480156101c857600080fd5b506101d1601281565b60405160ff9091168152602001610126565b3480156101ef57600080fd5b5061016e6101fe36600461075b565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b34801561023257600080fd5b5060408051808201909152600481527f57455448000000000000000000000000000000000000000000000000000000006020820152610119565b34801561027857600080fd5b5061014f6102873660046106dc565b61062c565b34801561029857600080fd5b5061016e6102a7366004610776565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b33600090815260208190526040812080543492906102fe9084906107d8565b909155505060405134815233907fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c9060200160405180910390a2565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906103a29086815260200190565b60405180910390a350600192915050565b73ffffffffffffffffffffffffffffffffffffffff83166000908152602081905260408120548211156103e557600080fd5b73ffffffffffffffffffffffffffffffffffffffff8416600081815260016020908152604080832033808552925290912054911480159061044657507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114155b1561049e578281101561045857600080fd5b73ffffffffffffffffffffffffffffffffffffffff85166000908152600160209081526040808320338452909152812080548592906104989084906107f0565b90915550505b73ffffffffffffffffffffffffffffffffffffffff8516600090815260208190526040812080548592906104d39084906107f0565b909155505073ffffffffffffffffffffffffffffffffffffffff84166000908152602081905260408120805485929061050d9084906107d8565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161057391815260200190565b60405180910390a3506001949350505050565b336000908152602081905260409020548111156105a257600080fd5b33600090815260208190526040812080548392906105c19084906107f0565b9091555050604051339082156108fc029083906000818181858888f193505050501580156105f3573d6000803e3d6000fd5b5060405181815233907f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b659060200160405180910390a250565b60006106393384846103b3565b9392505050565b600060208083528351808285015260005b8181101561066d57858101830151858201604001528201610651565b8181111561067f576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b803573ffffffffffffffffffffffffffffffffffffffff811681146106d757600080fd5b919050565b600080604083850312156106ef57600080fd5b6106f8836106b3565b946020939093013593505050565b60008060006060848603121561071b57600080fd5b610724846106b3565b9250610732602085016106b3565b9150604084013590509250925092565b60006020828403121561075457600080fd5b5035919050565b60006020828403121561076d57600080fd5b610639826106b3565b6000806040838503121561078957600080fd5b610792836106b3565b91506107a0602084016106b3565b90509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600082198211156107eb576107eb6107a9565b500190565b600082821015610802576108026107a9565b50039056fea164736f6c634300080f000a + /// ``` + #[rustfmt::skip] + #[allow(clippy::all)] + pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( + b"`\x80`@R`\x046\x10a\0\xC0W`\x005`\xE0\x1C\x80c1<\xE5g\x11a\0tW\x80c\xA9\x05\x9C\xBB\x11a\0NW\x80c\xA9\x05\x9C\xBB\x14a\x02lW\x80c\xD0\xE3\r\xB0\x14a\0\xCFW\x80c\xDDb\xED>\x14a\x02\x8CWa\0\xCFV[\x80c1<\xE5g\x14a\x01\xBCW\x80cp\xA0\x821\x14a\x01\xE3W\x80c\x95\xD8\x9BA\x14a\x02&Wa\0\xCFV[\x80c\x18\x16\r\xDD\x11a\0\xA5W\x80c\x18\x16\r\xDD\x14a\x01_W\x80c#\xB8r\xDD\x14a\x01|W\x80c.\x1A}M\x14a\x01\x9CWa\0\xCFV[\x80c\x06\xFD\xDE\x03\x14a\0\xD7W\x80c\t^\xA7\xB3\x14a\x01/Wa\0\xCFV[6a\0\xCFWa\0\xCDa\x02\xDFV[\0[a\0\xCDa\x02\xDFV[4\x80\x15a\0\xE3W`\0\x80\xFD[P`@\x80Q\x80\x82\x01\x90\x91R`\r\x81R\x7FWrapped Ether\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0` \x82\x01R[`@Qa\x01&\x91\x90a\x06@V[`@Q\x80\x91\x03\x90\xF3[4\x80\x15a\x01;W`\0\x80\xFD[Pa\x01Oa\x01J6`\x04a\x06\xDCV[a\x03:V[`@Q\x90\x15\x15\x81R` \x01a\x01&V[4\x80\x15a\x01kW`\0\x80\xFD[PG[`@Q\x90\x81R` \x01a\x01&V[4\x80\x15a\x01\x88W`\0\x80\xFD[Pa\x01Oa\x01\x976`\x04a\x07\x06V[a\x03\xB3V[4\x80\x15a\x01\xA8W`\0\x80\xFD[Pa\0\xCDa\x01\xB76`\x04a\x07BV[a\x05\x86V[4\x80\x15a\x01\xC8W`\0\x80\xFD[Pa\x01\xD1`\x12\x81V[`@Q`\xFF\x90\x91\x16\x81R` \x01a\x01&V[4\x80\x15a\x01\xEFW`\0\x80\xFD[Pa\x01na\x01\xFE6`\x04a\x07[V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\0\x90\x81R` \x81\x90R`@\x90 T\x90V[4\x80\x15a\x022W`\0\x80\xFD[P`@\x80Q\x80\x82\x01\x90\x91R`\x04\x81R\x7FWETH\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` \x82\x01Ra\x01\x19V[4\x80\x15a\x02xW`\0\x80\xFD[Pa\x01Oa\x02\x876`\x04a\x06\xDCV[a\x06,V[4\x80\x15a\x02\x98W`\0\x80\xFD[Pa\x01na\x02\xA76`\x04a\x07vV[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x91\x82\x16`\0\x90\x81R`\x01` \x90\x81R`@\x80\x83 \x93\x90\x94\x16\x82R\x91\x90\x91R T\x90V[3`\0\x90\x81R` \x81\x90R`@\x81 \x80T4\x92\x90a\x02\xFE\x90\x84\x90a\x07\xD8V[\x90\x91UPP`@Q4\x81R3\x90\x7F\xE1\xFF\xFC\xC4\x92=\x04\xB5Y\xF4\xD2\x9A\x8B\xFCl\xDA\x04\xEB[\r=`\0\xFD[P`@Q\x81\x81R3\x90\x7F\x7F\xCFS,\x15\xF0\xA6\xDB\x0B\xD6\xD0\xE08\xBE\xA7\x1D0\xD8\x08\xC7\xD9\x8C\xB3\xBFrh\xA9[\xF5\x08\x1Be\x90` \x01`@Q\x80\x91\x03\x90\xA2PV[`\0a\x0693\x84\x84a\x03\xB3V[\x93\x92PPPV[`\0` \x80\x83R\x83Q\x80\x82\x85\x01R`\0[\x81\x81\x10\x15a\x06mW\x85\x81\x01\x83\x01Q\x85\x82\x01`@\x01R\x82\x01a\x06QV[\x81\x81\x11\x15a\x06\x7FW`\0`@\x83\x87\x01\x01R[P`\x1F\x01\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE0\x16\x92\x90\x92\x01`@\x01\x93\x92PPPV[\x805s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x06\xD7W`\0\x80\xFD[\x91\x90PV[`\0\x80`@\x83\x85\x03\x12\x15a\x06\xEFW`\0\x80\xFD[a\x06\xF8\x83a\x06\xB3V[\x94` \x93\x90\x93\x015\x93PPPV[`\0\x80`\0``\x84\x86\x03\x12\x15a\x07\x1BW`\0\x80\xFD[a\x07$\x84a\x06\xB3V[\x92Pa\x072` \x85\x01a\x06\xB3V[\x91P`@\x84\x015\x90P\x92P\x92P\x92V[`\0` \x82\x84\x03\x12\x15a\x07TW`\0\x80\xFD[P5\x91\x90PV[`\0` \x82\x84\x03\x12\x15a\x07mW`\0\x80\xFD[a\x069\x82a\x06\xB3V[`\0\x80`@\x83\x85\x03\x12\x15a\x07\x89W`\0\x80\xFD[a\x07\x92\x83a\x06\xB3V[\x91Pa\x07\xA0` \x84\x01a\x06\xB3V[\x90P\x92P\x92\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`\x11`\x04R`$`\0\xFD[`\0\x82\x19\x82\x11\x15a\x07\xEBWa\x07\xEBa\x07\xA9V[P\x01\x90V[`\0\x82\x82\x10\x15a\x08\x02Wa\x08\x02a\x07\xA9V[P\x03\x90V\xFE\xA1dsolcC\0\x08\x0F\0\n", + ); + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `Approval(address,address,uint256)` and selector `0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925`. +```solidity +event Approval(address indexed src, address indexed guy, uint256 wad); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct Approval { + #[allow(missing_docs)] + pub src: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub guy: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub wad: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for Approval { + type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "Approval(address,address,uint256)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 140u8, 91u8, 225u8, 229u8, 235u8, 236u8, 125u8, 91u8, 209u8, 79u8, 113u8, + 66u8, 125u8, 30u8, 132u8, 243u8, 221u8, 3u8, 20u8, 192u8, 247u8, 178u8, + 41u8, 30u8, 91u8, 32u8, 10u8, 200u8, 199u8, 195u8, 185u8, 37u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + src: topics.1, + guy: topics.2, + wad: data.0, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.wad), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.src.clone(), self.guy.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.src, + ); + out[2usize] = ::encode_topic( + &self.guy, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for Approval { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&Approval> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &Approval) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `Deposit(address,uint256)` and selector `0xe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c`. +```solidity +event Deposit(address indexed dst, uint256 wad); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct Deposit { + #[allow(missing_docs)] + pub dst: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub wad: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for Deposit { + type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "Deposit(address,uint256)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 225u8, 255u8, 252u8, 196u8, 146u8, 61u8, 4u8, 181u8, 89u8, 244u8, 210u8, + 154u8, 139u8, 252u8, 108u8, 218u8, 4u8, 235u8, 91u8, 13u8, 60u8, 70u8, + 7u8, 81u8, 194u8, 64u8, 44u8, 92u8, 92u8, 201u8, 16u8, 156u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { dst: topics.1, wad: data.0 } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.wad), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.dst.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.dst, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for Deposit { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&Deposit> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &Deposit) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `Transfer(address,address,uint256)` and selector `0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef`. +```solidity +event Transfer(address indexed src, address indexed dst, uint256 wad); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct Transfer { + #[allow(missing_docs)] + pub src: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub dst: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub wad: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for Transfer { + type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "Transfer(address,address,uint256)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 221u8, 242u8, 82u8, 173u8, 27u8, 226u8, 200u8, 155u8, 105u8, 194u8, + 176u8, 104u8, 252u8, 55u8, 141u8, 170u8, 149u8, 43u8, 167u8, 241u8, 99u8, + 196u8, 161u8, 22u8, 40u8, 245u8, 90u8, 77u8, 245u8, 35u8, 179u8, 239u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { + src: topics.1, + dst: topics.2, + wad: data.0, + } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.wad), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.src.clone(), self.dst.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.src, + ); + out[2usize] = ::encode_topic( + &self.dst, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for Transfer { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&Transfer> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &Transfer) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Event with signature `Withdrawal(address,uint256)` and selector `0x7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65`. +```solidity +event Withdrawal(address indexed src, uint256 wad); +```*/ + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + #[derive(Clone)] + pub struct Withdrawal { + #[allow(missing_docs)] + pub src: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub wad: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + #[automatically_derived] + impl alloy_sol_types::SolEvent for Withdrawal { + type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type DataToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + type TopicList = ( + alloy_sol_types::sol_data::FixedBytes<32>, + alloy::sol_types::sol_data::Address, + ); + const SIGNATURE: &'static str = "Withdrawal(address,uint256)"; + const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([ + 127u8, 207u8, 83u8, 44u8, 21u8, 240u8, 166u8, 219u8, 11u8, 214u8, 208u8, + 224u8, 56u8, 190u8, 167u8, 29u8, 48u8, 216u8, 8u8, 199u8, 217u8, 140u8, + 179u8, 191u8, 114u8, 104u8, 169u8, 91u8, 245u8, 8u8, 27u8, 101u8, + ]); + const ANONYMOUS: bool = false; + #[allow(unused_variables)] + #[inline] + fn new( + topics: ::RustType, + data: as alloy_sol_types::SolType>::RustType, + ) -> Self { + Self { src: topics.1, wad: data.0 } + } + #[inline] + fn check_signature( + topics: &::RustType, + ) -> alloy_sol_types::Result<()> { + if topics.0 != Self::SIGNATURE_HASH { + return Err( + alloy_sol_types::Error::invalid_event_signature_hash( + Self::SIGNATURE, + topics.0, + Self::SIGNATURE_HASH, + ), + ); + } + Ok(()) + } + #[inline] + fn tokenize_body(&self) -> Self::DataToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.wad), + ) + } + #[inline] + fn topics(&self) -> ::RustType { + (Self::SIGNATURE_HASH.into(), self.src.clone()) + } + #[inline] + fn encode_topics_raw( + &self, + out: &mut [alloy_sol_types::abi::token::WordToken], + ) -> alloy_sol_types::Result<()> { + if out.len() < ::COUNT { + return Err(alloy_sol_types::Error::Overrun); + } + out[0usize] = alloy_sol_types::abi::token::WordToken( + Self::SIGNATURE_HASH, + ); + out[1usize] = ::encode_topic( + &self.src, + ); + Ok(()) + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for Withdrawal { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + From::from(self) + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + From::from(&self) + } + } + #[automatically_derived] + impl From<&Withdrawal> for alloy_sol_types::private::LogData { + #[inline] + fn from(this: &Withdrawal) -> alloy_sol_types::private::LogData { + alloy_sol_types::SolEvent::encode_log_data(this) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `allowance(address,address)` and selector `0xdd62ed3e`. +```solidity +function allowance(address owner, address spender) external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct allowanceCall { + #[allow(missing_docs)] + pub owner: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub spender: alloy::sol_types::private::Address, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`allowance(address,address)`](allowanceCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct allowanceReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: allowanceCall) -> Self { + (value.owner, value.spender) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for allowanceCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + owner: tuple.0, + spender: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: allowanceReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for allowanceReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for allowanceCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "allowance(address,address)"; + const SELECTOR: [u8; 4] = [221u8, 98u8, 237u8, 62u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.owner, + ), + ::tokenize( + &self.spender, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: allowanceReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: allowanceReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `approve(address,uint256)` and selector `0x095ea7b3`. +```solidity +function approve(address guy, uint256 wad) external returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct approveCall { + #[allow(missing_docs)] + pub guy: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub wad: alloy::sol_types::private::primitives::aliases::U256, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`approve(address,uint256)`](approveCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct approveReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: approveCall) -> Self { + (value.guy, value.wad) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for approveCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { guy: tuple.0, wad: tuple.1 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: approveReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for approveReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for approveCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "approve(address,uint256)"; + const SELECTOR: [u8; 4] = [9u8, 94u8, 167u8, 179u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.guy, + ), + as alloy_sol_types::SolType>::tokenize(&self.wad), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: approveReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: approveReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `balanceOf(address)` and selector `0x70a08231`. +```solidity +function balanceOf(address src) external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct balanceOfCall { + #[allow(missing_docs)] + pub src: alloy::sol_types::private::Address, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`balanceOf(address)`](balanceOfCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct balanceOfReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: balanceOfCall) -> Self { + (value.src,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for balanceOfCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { src: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: balanceOfReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for balanceOfReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for balanceOfCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Address,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "balanceOf(address)"; + const SELECTOR: [u8; 4] = [112u8, 160u8, 130u8, 49u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.src, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: balanceOfReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: balanceOfReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `decimals()` and selector `0x313ce567`. +```solidity +function decimals() external view returns (uint8); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct decimalsCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`decimals()`](decimalsCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct decimalsReturn { + #[allow(missing_docs)] + pub _0: u8, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: decimalsCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for decimalsCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<8>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u8,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: decimalsReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for decimalsReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for decimalsCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = u8; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<8>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "decimals()"; + const SELECTOR: [u8; 4] = [49u8, 60u8, 229u8, 103u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: decimalsReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: decimalsReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `deposit()` and selector `0xd0e30db0`. +```solidity +function deposit() external payable; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct depositCall; + ///Container type for the return parameters of the [`deposit()`](depositCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct depositReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: depositCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for depositCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: depositReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for depositReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl depositReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for depositCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = depositReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "deposit()"; + const SELECTOR: [u8; 4] = [208u8, 227u8, 13u8, 176u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + depositReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `name()` and selector `0x06fdde03`. +```solidity +function name() external view returns (string memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct nameCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`name()`](nameCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct nameReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: nameCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for nameCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: nameReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for nameReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for nameCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::String; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "name()"; + const SELECTOR: [u8; 4] = [6u8, 253u8, 222u8, 3u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: nameReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: nameReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `symbol()` and selector `0x95d89b41`. +```solidity +function symbol() external view returns (string memory); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct symbolCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`symbol()`](symbolCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct symbolReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::String, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: symbolCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for symbolCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: symbolReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for symbolReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for symbolCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::String; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "symbol()"; + const SELECTOR: [u8; 4] = [149u8, 216u8, 155u8, 65u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: symbolReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: symbolReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `totalSupply()` and selector `0x18160ddd`. +```solidity +function totalSupply() external view returns (uint256); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct totalSupplyCall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`totalSupply()`](totalSupplyCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct totalSupplyReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::primitives::aliases::U256, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: totalSupplyCall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for totalSupplyCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: totalSupplyReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for totalSupplyReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for totalSupplyCall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::primitives::aliases::U256; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "totalSupply()"; + const SELECTOR: [u8; 4] = [24u8, 22u8, 13u8, 221u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: totalSupplyReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: totalSupplyReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `transfer(address,uint256)` and selector `0xa9059cbb`. +```solidity +function transfer(address dst, uint256 wad) external returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct transferCall { + #[allow(missing_docs)] + pub dst: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub wad: alloy::sol_types::private::primitives::aliases::U256, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`transfer(address,uint256)`](transferCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct transferReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: transferCall) -> Self { + (value.dst, value.wad) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for transferCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { dst: tuple.0, wad: tuple.1 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: transferReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for transferReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for transferCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "transfer(address,uint256)"; + const SELECTOR: [u8; 4] = [169u8, 5u8, 156u8, 187u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.dst, + ), + as alloy_sol_types::SolType>::tokenize(&self.wad), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: transferReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: transferReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd`. +```solidity +function transferFrom(address src, address dst, uint256 wad) external returns (bool); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct transferFromCall { + #[allow(missing_docs)] + pub src: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub dst: alloy::sol_types::private::Address, + #[allow(missing_docs)] + pub wad: alloy::sol_types::private::primitives::aliases::U256, + } + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`transferFrom(address,address,uint256)`](transferFromCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct transferFromReturn { + #[allow(missing_docs)] + pub _0: bool, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::Address, + alloy::sol_types::private::Address, + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: transferFromCall) -> Self { + (value.src, value.dst, value.wad) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for transferFromCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + src: tuple.0, + dst: tuple.1, + wad: tuple.2, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (bool,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: transferFromReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for transferFromReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for transferFromCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Address, + alloy::sol_types::sol_data::Uint<256>, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = bool; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "transferFrom(address,address,uint256)"; + const SELECTOR: [u8; 4] = [35u8, 184u8, 114u8, 221u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + ::tokenize( + &self.src, + ), + ::tokenize( + &self.dst, + ), + as alloy_sol_types::SolType>::tokenize(&self.wad), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + ::tokenize( + ret, + ), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: transferFromReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: transferFromReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `withdraw(uint256)` and selector `0x2e1a7d4d`. +```solidity +function withdraw(uint256 wad) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct withdrawCall { + #[allow(missing_docs)] + pub wad: alloy::sol_types::private::primitives::aliases::U256, + } + ///Container type for the return parameters of the [`withdraw(uint256)`](withdrawCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct withdrawReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = ( + alloy::sol_types::private::primitives::aliases::U256, + ); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: withdrawCall) -> Self { + (value.wad,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for withdrawCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { wad: tuple.0 } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: withdrawReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for withdrawReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl withdrawReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken<'_> { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for withdrawCall { + type Parameters<'a> = (alloy::sol_types::sol_data::Uint<256>,); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = withdrawReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "withdraw(uint256)"; + const SELECTOR: [u8; 4] = [46u8, 26u8, 125u8, 77u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.wad), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + withdrawReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; + ///Container for all the [`WETH98`](self) function calls. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive()] + pub enum WETH98Calls { + #[allow(missing_docs)] + allowance(allowanceCall), + #[allow(missing_docs)] + approve(approveCall), + #[allow(missing_docs)] + balanceOf(balanceOfCall), + #[allow(missing_docs)] + decimals(decimalsCall), + #[allow(missing_docs)] + deposit(depositCall), + #[allow(missing_docs)] + name(nameCall), + #[allow(missing_docs)] + symbol(symbolCall), + #[allow(missing_docs)] + totalSupply(totalSupplyCall), + #[allow(missing_docs)] + transfer(transferCall), + #[allow(missing_docs)] + transferFrom(transferFromCall), + #[allow(missing_docs)] + withdraw(withdrawCall), + } + impl WETH98Calls { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 4usize]] = &[ + [6u8, 253u8, 222u8, 3u8], + [9u8, 94u8, 167u8, 179u8], + [24u8, 22u8, 13u8, 221u8], + [35u8, 184u8, 114u8, 221u8], + [46u8, 26u8, 125u8, 77u8], + [49u8, 60u8, 229u8, 103u8], + [112u8, 160u8, 130u8, 49u8], + [149u8, 216u8, 155u8, 65u8], + [169u8, 5u8, 156u8, 187u8], + [208u8, 227u8, 13u8, 176u8], + [221u8, 98u8, 237u8, 62u8], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(name), + ::core::stringify!(approve), + ::core::stringify!(totalSupply), + ::core::stringify!(transferFrom), + ::core::stringify!(withdraw), + ::core::stringify!(decimals), + ::core::stringify!(balanceOf), + ::core::stringify!(symbol), + ::core::stringify!(transfer), + ::core::stringify!(deposit), + ::core::stringify!(allowance), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 4usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolInterface for WETH98Calls { + const NAME: &'static str = "WETH98Calls"; + const MIN_DATA_LENGTH: usize = 0usize; + const COUNT: usize = 11usize; + #[inline] + fn selector(&self) -> [u8; 4] { + match self { + Self::allowance(_) => { + ::SELECTOR + } + Self::approve(_) => ::SELECTOR, + Self::balanceOf(_) => { + ::SELECTOR + } + Self::decimals(_) => ::SELECTOR, + Self::deposit(_) => ::SELECTOR, + Self::name(_) => ::SELECTOR, + Self::symbol(_) => ::SELECTOR, + Self::totalSupply(_) => { + ::SELECTOR + } + Self::transfer(_) => ::SELECTOR, + Self::transferFrom(_) => { + ::SELECTOR + } + Self::withdraw(_) => ::SELECTOR, + } + } + #[inline] + fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> { + Self::SELECTORS.get(i).copied() + } + #[inline] + fn valid_selector(selector: [u8; 4]) -> bool { + Self::SELECTORS.binary_search(&selector).is_ok() + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_SHIMS: &[fn(&[u8]) -> alloy_sol_types::Result] = &[ + { + fn name(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(WETH98Calls::name) + } + name + }, + { + fn approve(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(WETH98Calls::approve) + } + approve + }, + { + fn totalSupply(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(WETH98Calls::totalSupply) + } + totalSupply + }, + { + fn transferFrom( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(WETH98Calls::transferFrom) + } + transferFrom + }, + { + fn withdraw(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(WETH98Calls::withdraw) + } + withdraw + }, + { + fn decimals(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(WETH98Calls::decimals) + } + decimals + }, + { + fn balanceOf(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(WETH98Calls::balanceOf) + } + balanceOf + }, + { + fn symbol(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(WETH98Calls::symbol) + } + symbol + }, + { + fn transfer(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(WETH98Calls::transfer) + } + transfer + }, + { + fn deposit(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(WETH98Calls::deposit) + } + deposit + }, + { + fn allowance(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw(data) + .map(WETH98Calls::allowance) + } + allowance + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_SHIMS[idx](data) + } + #[inline] + #[allow(non_snake_case)] + fn abi_decode_raw_validate( + selector: [u8; 4], + data: &[u8], + ) -> alloy_sol_types::Result { + static DECODE_VALIDATE_SHIMS: &[fn( + &[u8], + ) -> alloy_sol_types::Result] = &[ + { + fn name(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(WETH98Calls::name) + } + name + }, + { + fn approve(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(WETH98Calls::approve) + } + approve + }, + { + fn totalSupply(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(WETH98Calls::totalSupply) + } + totalSupply + }, + { + fn transferFrom( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(WETH98Calls::transferFrom) + } + transferFrom + }, + { + fn withdraw(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(WETH98Calls::withdraw) + } + withdraw + }, + { + fn decimals(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(WETH98Calls::decimals) + } + decimals + }, + { + fn balanceOf(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(WETH98Calls::balanceOf) + } + balanceOf + }, + { + fn symbol(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(WETH98Calls::symbol) + } + symbol + }, + { + fn transfer(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(WETH98Calls::transfer) + } + transfer + }, + { + fn deposit(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(WETH98Calls::deposit) + } + deposit + }, + { + fn allowance(data: &[u8]) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(WETH98Calls::allowance) + } + allowance + }, + ]; + let Ok(idx) = Self::SELECTORS.binary_search(&selector) else { + return Err( + alloy_sol_types::Error::unknown_selector( + ::NAME, + selector, + ), + ); + }; + DECODE_VALIDATE_SHIMS[idx](data) + } + #[inline] + fn abi_encoded_size(&self) -> usize { + match self { + Self::allowance(inner) => { + ::abi_encoded_size(inner) + } + Self::approve(inner) => { + ::abi_encoded_size(inner) + } + Self::balanceOf(inner) => { + ::abi_encoded_size(inner) + } + Self::decimals(inner) => { + ::abi_encoded_size(inner) + } + Self::deposit(inner) => { + ::abi_encoded_size(inner) + } + Self::name(inner) => { + ::abi_encoded_size(inner) + } + Self::symbol(inner) => { + ::abi_encoded_size(inner) + } + Self::totalSupply(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::transfer(inner) => { + ::abi_encoded_size(inner) + } + Self::transferFrom(inner) => { + ::abi_encoded_size( + inner, + ) + } + Self::withdraw(inner) => { + ::abi_encoded_size(inner) + } + } + } + #[inline] + fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec) { + match self { + Self::allowance(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::approve(inner) => { + ::abi_encode_raw(inner, out) + } + Self::balanceOf(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::decimals(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::deposit(inner) => { + ::abi_encode_raw(inner, out) + } + Self::name(inner) => { + ::abi_encode_raw(inner, out) + } + Self::symbol(inner) => { + ::abi_encode_raw(inner, out) + } + Self::totalSupply(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::transfer(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::transferFrom(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + Self::withdraw(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } + } + } + } + ///Container for all the [`WETH98`](self) events. + #[derive(Clone)] + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, Hash)] + pub enum WETH98Events { + #[allow(missing_docs)] + Approval(Approval), + #[allow(missing_docs)] + Deposit(Deposit), + #[allow(missing_docs)] + Transfer(Transfer), + #[allow(missing_docs)] + Withdrawal(Withdrawal), + } + impl WETH98Events { + /// All the selectors of this enum. + /// + /// Note that the selectors might not be in the same order as the variants. + /// No guarantees are made about the order of the selectors. + /// + /// Prefer using `SolInterface` methods instead. + pub const SELECTORS: &'static [[u8; 32usize]] = &[ + [ + 127u8, 207u8, 83u8, 44u8, 21u8, 240u8, 166u8, 219u8, 11u8, 214u8, 208u8, + 224u8, 56u8, 190u8, 167u8, 29u8, 48u8, 216u8, 8u8, 199u8, 217u8, 140u8, + 179u8, 191u8, 114u8, 104u8, 169u8, 91u8, 245u8, 8u8, 27u8, 101u8, + ], + [ + 140u8, 91u8, 225u8, 229u8, 235u8, 236u8, 125u8, 91u8, 209u8, 79u8, 113u8, + 66u8, 125u8, 30u8, 132u8, 243u8, 221u8, 3u8, 20u8, 192u8, 247u8, 178u8, + 41u8, 30u8, 91u8, 32u8, 10u8, 200u8, 199u8, 195u8, 185u8, 37u8, + ], + [ + 221u8, 242u8, 82u8, 173u8, 27u8, 226u8, 200u8, 155u8, 105u8, 194u8, + 176u8, 104u8, 252u8, 55u8, 141u8, 170u8, 149u8, 43u8, 167u8, 241u8, 99u8, + 196u8, 161u8, 22u8, 40u8, 245u8, 90u8, 77u8, 245u8, 35u8, 179u8, 239u8, + ], + [ + 225u8, 255u8, 252u8, 196u8, 146u8, 61u8, 4u8, 181u8, 89u8, 244u8, 210u8, + 154u8, 139u8, 252u8, 108u8, 218u8, 4u8, 235u8, 91u8, 13u8, 60u8, 70u8, + 7u8, 81u8, 194u8, 64u8, 44u8, 92u8, 92u8, 201u8, 16u8, 156u8, + ], + ]; + /// The names of the variants in the same order as `SELECTORS`. + pub const VARIANT_NAMES: &'static [&'static str] = &[ + ::core::stringify!(Withdrawal), + ::core::stringify!(Approval), + ::core::stringify!(Transfer), + ::core::stringify!(Deposit), + ]; + /// The signatures in the same order as `SELECTORS`. + pub const SIGNATURES: &'static [&'static str] = &[ + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ::SIGNATURE, + ]; + /// Returns the signature for the given selector, if known. + #[inline] + pub fn signature_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + match Self::SELECTORS.binary_search(&selector) { + ::core::result::Result::Ok(idx) => { + ::core::option::Option::Some(Self::SIGNATURES[idx]) + } + ::core::result::Result::Err(_) => ::core::option::Option::None, + } + } + /// Returns the enum variant name for the given selector, if known. + #[inline] + pub fn name_by_selector( + selector: [u8; 32usize], + ) -> ::core::option::Option<&'static str> { + let sig = Self::signature_by_selector(selector)?; + sig.split_once('(').map(|(name, _)| name) + } + } + #[automatically_derived] + impl alloy_sol_types::SolEventInterface for WETH98Events { + const NAME: &'static str = "WETH98Events"; + const COUNT: usize = 4usize; + fn decode_raw_log( + topics: &[alloy_sol_types::Word], + data: &[u8], + ) -> alloy_sol_types::Result { + match topics.first().copied() { + Some(::SIGNATURE_HASH) => { + ::decode_raw_log(topics, data) + .map(Self::Approval) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log(topics, data) + .map(Self::Deposit) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log(topics, data) + .map(Self::Transfer) + } + Some(::SIGNATURE_HASH) => { + ::decode_raw_log( + topics, + data, + ) + .map(Self::Withdrawal) + } + _ => { + alloy_sol_types::private::Err(alloy_sol_types::Error::InvalidLog { + name: ::NAME, + log: alloy_sol_types::private::Box::new( + alloy_sol_types::private::LogData::new_unchecked( + topics.to_vec(), + data.to_vec().into(), + ), + ), + }) + } + } + } + } + #[automatically_derived] + impl alloy_sol_types::private::IntoLogData for WETH98Events { + fn to_log_data(&self) -> alloy_sol_types::private::LogData { + match self { + Self::Approval(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::Deposit(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::Transfer(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + Self::Withdrawal(inner) => { + alloy_sol_types::private::IntoLogData::to_log_data(inner) + } + } + } + fn into_log_data(self) -> alloy_sol_types::private::LogData { + match self { + Self::Approval(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::Deposit(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::Transfer(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + Self::Withdrawal(inner) => { + alloy_sol_types::private::IntoLogData::into_log_data(inner) + } + } + } + } + use alloy::contract as alloy_contract; + /**Creates a new wrapper around an on-chain [`WETH98`](self) contract instance. + +See the [wrapper's documentation](`WETH98Instance`) for more details.*/ + #[inline] + pub const fn new< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> WETH98Instance { + WETH98Instance::::new(address, __provider) + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub fn deploy< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >( + __provider: P, + ) -> impl ::core::future::Future< + Output = alloy_contract::Result>, + > { + WETH98Instance::::deploy(__provider) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + >(__provider: P) -> alloy_contract::RawCallBuilder { + WETH98Instance::::deploy_builder(__provider) + } + /**A [`WETH98`](self) instance. + +Contains type-safe methods for interacting with an on-chain instance of the +[`WETH98`](self) contract located at a given `address`, using a given +provider `P`. + +If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!) +documentation on how to provide it), the `deploy` and `deploy_builder` methods can +be used to deploy a new instance of the contract. + +See the [module-level documentation](self) for all the available methods.*/ + #[derive(Clone)] + pub struct WETH98Instance { + address: alloy_sol_types::private::Address, + provider: P, + _network: ::core::marker::PhantomData, + } + #[automatically_derived] + impl ::core::fmt::Debug for WETH98Instance { + #[inline] + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple("WETH98Instance").field(&self.address).finish() + } + } + /// Instantiation and getters/setters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > WETH98Instance { + /**Creates a new wrapper around an on-chain [`WETH98`](self) contract instance. + +See the [wrapper's documentation](`WETH98Instance`) for more details.*/ + #[inline] + pub const fn new( + address: alloy_sol_types::private::Address, + __provider: P, + ) -> Self { + Self { + address, + provider: __provider, + _network: ::core::marker::PhantomData, + } + } + /**Deploys this contract using the given `provider` and constructor arguments, if any. + +Returns a new instance of the contract, if the deployment was successful. + +For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/ + #[inline] + pub async fn deploy( + __provider: P, + ) -> alloy_contract::Result> { + let call_builder = Self::deploy_builder(__provider); + let contract_address = call_builder.deploy().await?; + Ok(Self::new(contract_address, call_builder.provider)) + } + /**Creates a `RawCallBuilder` for deploying this contract using the given `provider` +and constructor arguments, if any. + +This is a simple wrapper around creating a `RawCallBuilder` with the data set to +the bytecode concatenated with the constructor's ABI-encoded arguments.*/ + #[inline] + pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder { + alloy_contract::RawCallBuilder::new_raw_deploy( + __provider, + ::core::clone::Clone::clone(&BYTECODE), + ) + } + /// Returns a reference to the address. + #[inline] + pub const fn address(&self) -> &alloy_sol_types::private::Address { + &self.address + } + /// Sets the address. + #[inline] + pub fn set_address(&mut self, address: alloy_sol_types::private::Address) { + self.address = address; + } + /// Sets the address and returns `self`. + pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self { + self.set_address(address); + self + } + /// Returns a reference to the provider. + #[inline] + pub const fn provider(&self) -> &P { + &self.provider + } + } + impl WETH98Instance<&P, N> { + /// Clones the provider and returns a new instance with the cloned provider. + #[inline] + pub fn with_cloned_provider(self) -> WETH98Instance { + WETH98Instance { + address: self.address, + provider: ::core::clone::Clone::clone(&self.provider), + _network: ::core::marker::PhantomData, + } + } + } + /// Function calls. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > WETH98Instance { + /// Creates a new call builder using this contract instance's provider and address. + /// + /// Note that the call can be any function call, not just those defined in this + /// contract. Prefer using the other methods for building type-safe contract calls. + pub fn call_builder( + &self, + call: &C, + ) -> alloy_contract::SolCallBuilder<&P, C, N> { + alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call) + } + ///Creates a new call builder for the [`allowance`] function. + pub fn allowance( + &self, + owner: alloy::sol_types::private::Address, + spender: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, allowanceCall, N> { + self.call_builder(&allowanceCall { owner, spender }) + } + ///Creates a new call builder for the [`approve`] function. + pub fn approve( + &self, + guy: alloy::sol_types::private::Address, + wad: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, approveCall, N> { + self.call_builder(&approveCall { guy, wad }) + } + ///Creates a new call builder for the [`balanceOf`] function. + pub fn balanceOf( + &self, + src: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, balanceOfCall, N> { + self.call_builder(&balanceOfCall { src }) + } + ///Creates a new call builder for the [`decimals`] function. + pub fn decimals(&self) -> alloy_contract::SolCallBuilder<&P, decimalsCall, N> { + self.call_builder(&decimalsCall) + } + ///Creates a new call builder for the [`deposit`] function. + pub fn deposit(&self) -> alloy_contract::SolCallBuilder<&P, depositCall, N> { + self.call_builder(&depositCall) + } + ///Creates a new call builder for the [`name`] function. + pub fn name(&self) -> alloy_contract::SolCallBuilder<&P, nameCall, N> { + self.call_builder(&nameCall) + } + ///Creates a new call builder for the [`symbol`] function. + pub fn symbol(&self) -> alloy_contract::SolCallBuilder<&P, symbolCall, N> { + self.call_builder(&symbolCall) + } + ///Creates a new call builder for the [`totalSupply`] function. + pub fn totalSupply( + &self, + ) -> alloy_contract::SolCallBuilder<&P, totalSupplyCall, N> { + self.call_builder(&totalSupplyCall) + } + ///Creates a new call builder for the [`transfer`] function. + pub fn transfer( + &self, + dst: alloy::sol_types::private::Address, + wad: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, transferCall, N> { + self.call_builder(&transferCall { dst, wad }) + } + ///Creates a new call builder for the [`transferFrom`] function. + pub fn transferFrom( + &self, + src: alloy::sol_types::private::Address, + dst: alloy::sol_types::private::Address, + wad: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, transferFromCall, N> { + self.call_builder(&transferFromCall { src, dst, wad }) + } + ///Creates a new call builder for the [`withdraw`] function. + pub fn withdraw( + &self, + wad: alloy::sol_types::private::primitives::aliases::U256, + ) -> alloy_contract::SolCallBuilder<&P, withdrawCall, N> { + self.call_builder(&withdrawCall { wad }) + } + } + /// Event filters. + impl< + P: alloy_contract::private::Provider, + N: alloy_contract::private::Network, + > WETH98Instance { + /// Creates a new event filter using this contract instance's provider and address. + /// + /// Note that the type can be any event, not just those defined in this contract. + /// Prefer using the other methods for building type-safe event filters. + pub fn event_filter( + &self, + ) -> alloy_contract::Event<&P, E, N> { + alloy_contract::Event::new_sol(&self.provider, &self.address) + } + ///Creates a new event filter for the [`Approval`] event. + pub fn Approval_filter(&self) -> alloy_contract::Event<&P, Approval, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`Deposit`] event. + pub fn Deposit_filter(&self) -> alloy_contract::Event<&P, Deposit, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`Transfer`] event. + pub fn Transfer_filter(&self) -> alloy_contract::Event<&P, Transfer, N> { + self.event_filter::() + } + ///Creates a new event filter for the [`Withdrawal`] event. + pub fn Withdrawal_filter(&self) -> alloy_contract::Event<&P, Withdrawal, N> { + self.event_filter::() + } + } +} diff --git a/justfile b/justfile index 45fd3ac79..2d3843417 100644 --- a/justfile +++ b/justfile @@ -222,6 +222,25 @@ snapshots-no-build: snapshots-abi-storage-no-build semver-lock-no-build snapshots: build-source snapshots-no-build + +######################################################## +# BINDINGS # +######################################################## + +# Regenerates the Rust bindings crate from all contracts under src/. +bindings-generate: build-source + #!/bin/bash + set -euo pipefail + # forge bind filters by contract name, so derive an exact-match regex from src/*.sol filenames. + select_regex="^($(git ls-files ':(glob)src/**/*.sol' | sed 's#^.*/##; s#\.sol$##' | sort -u | paste -sd'|' -))$" + forge bind \ + --bindings-path bindings/rust \ + --crate-name base-contracts-bindings \ + --select "$select_regex" \ + --skip-build \ + --overwrite + + ######################################################## # CHECKS # ######################################################## @@ -232,6 +251,21 @@ snapshots-check-no-build: snapshots-no-build # Checks if the snapshots are up to date. snapshots-check: build snapshots-check-no-build +# Checks that the committed Rust bindings are in sync with forge-artifacts. +bindings-check-no-build: + #!/bin/bash + set -euo pipefail + select_regex="^($(git ls-files ':(glob)src/**/*.sol' | sed 's#^.*/##; s#\.sol$##' | sort -u | paste -sd'|' -))$" + forge bind \ + --bindings-path bindings/rust \ + --crate-name base-contracts-bindings \ + --select "$select_regex" \ + --skip-build + +# Checks that the Rust bindings crate is in sync and compiles. +bindings-check: build-source bindings-check-no-build + cd bindings/rust && cargo check + # Checks interface correctness without building. interfaces-check-no-build: go run ./scripts/checks/interfaces @@ -338,7 +372,8 @@ check: validate-spacers-no-build \ reinitializer-check-no-build \ interfaces-check-no-build \ - lint-forge-tests-check-no-build + lint-forge-tests-check-no-build \ + bindings-check-no-build ######################################################## # DEV TOOLS # diff --git a/snapshots/abi/NitroEnclaveVerifier.json b/snapshots/abi/NitroEnclaveVerifier.json new file mode 100644 index 000000000..9f2b98569 --- /dev/null +++ b/snapshots/abi/NitroEnclaveVerifier.json @@ -0,0 +1,1263 @@ +[ + { + "inputs": [ + { + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "internalType": "uint64", + "name": "_maxTimeDiff", + "type": "uint64" + }, + { + "internalType": "bytes32[]", + "name": "_initializeTrustedCerts", + "type": "bytes32[]" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [ + { + "internalType": "enum ZkCoProcessorType", + "name": "_zkCoProcessor", + "type": "uint8" + }, + { + "internalType": "bytes4", + "name": "_selector", + "type": "bytes4" + }, + { + "internalType": "address", + "name": "_verifier", + "type": "address" + } + ], + "name": "addVerifyRoute", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes", + "name": "output", + "type": "bytes" + }, + { + "internalType": "enum ZkCoProcessorType", + "name": "zkCoprocessor", + "type": "uint8" + }, + { + "internalType": "bytes", + "name": "proofBytes", + "type": "bytes" + } + ], + "name": "batchVerify", + "outputs": [ + { + "components": [ + { + "internalType": "enum VerificationResult", + "name": "result", + "type": "uint8" + }, + { + "internalType": "uint8", + "name": "trustedCertsPrefixLen", + "type": "uint8" + }, + { + "internalType": "uint64", + "name": "timestamp", + "type": "uint64" + }, + { + "internalType": "bytes32[]", + "name": "certs", + "type": "bytes32[]" + }, + { + "internalType": "bytes", + "name": "userData", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "nonce", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "publicKey", + "type": "bytes" + }, + { + "components": [ + { + "internalType": "uint64", + "name": "index", + "type": "uint64" + }, + { + "components": [ + { + "internalType": "bytes32", + "name": "first", + "type": "bytes32" + }, + { + "internalType": "bytes16", + "name": "second", + "type": "bytes16" + } + ], + "internalType": "struct Bytes48", + "name": "value", + "type": "tuple" + } + ], + "internalType": "struct Pcr[]", + "name": "pcrs", + "type": "tuple[]" + }, + { + "internalType": "string", + "name": "moduleId", + "type": "string" + } + ], + "internalType": "struct VerifierJournal[]", + "name": "results", + "type": "tuple[]" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "cancelOwnershipHandover", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32[][]", + "name": "_report_certs", + "type": "bytes32[][]" + } + ], + "name": "checkTrustedIntermediateCerts", + "outputs": [ + { + "internalType": "uint8[]", + "name": "", + "type": "uint8[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "pendingOwner", + "type": "address" + } + ], + "name": "completeOwnershipHandover", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "enum ZkCoProcessorType", + "name": "_zkCoProcessor", + "type": "uint8" + }, + { + "internalType": "bytes4", + "name": "_selector", + "type": "bytes4" + } + ], + "name": "freezeVerifyRoute", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "enum ZkCoProcessorType", + "name": "_zkCoProcessor", + "type": "uint8" + } + ], + "name": "getAggregatorIds", + "outputs": [ + { + "internalType": "bytes32[]", + "name": "", + "type": "bytes32[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "enum ZkCoProcessorType", + "name": "_zkCoProcessor", + "type": "uint8" + } + ], + "name": "getVerifierIds", + "outputs": [ + { + "internalType": "bytes32[]", + "name": "", + "type": "bytes32[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "enum ZkCoProcessorType", + "name": "_zkCoProcessor", + "type": "uint8" + }, + { + "internalType": "bytes32", + "name": "_verifierId", + "type": "bytes32" + } + ], + "name": "getVerifierProofId", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "enum ZkCoProcessorType", + "name": "_zkCoProcessor", + "type": "uint8" + } + ], + "name": "getZkConfig", + "outputs": [ + { + "components": [ + { + "internalType": "bytes32", + "name": "verifierId", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "aggregatorId", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "zkVerifier", + "type": "address" + } + ], + "internalType": "struct ZkCoProcessorConfig", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "enum ZkCoProcessorType", + "name": "_zkCoProcessor", + "type": "uint8" + }, + { + "internalType": "bytes4", + "name": "_selector", + "type": "bytes4" + } + ], + "name": "getZkVerifier", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "enum ZkCoProcessorType", + "name": "_zkCoProcessor", + "type": "uint8" + }, + { + "internalType": "bytes32", + "name": "_aggregatorId", + "type": "bytes32" + } + ], + "name": "isAggregatorIdSupported", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "enum ZkCoProcessorType", + "name": "_zkCoProcessor", + "type": "uint8" + }, + { + "internalType": "bytes32", + "name": "_verifierId", + "type": "bytes32" + } + ], + "name": "isVerifierIdSupported", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "maxTimeDiff", + "outputs": [ + { + "internalType": "uint64", + "name": "", + "type": "uint64" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "result", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "pendingOwner", + "type": "address" + } + ], + "name": "ownershipHandoverExpiresAt", + "outputs": [ + { + "internalType": "uint256", + "name": "result", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "proofSubmitter", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "enum ZkCoProcessorType", + "name": "_zkCoProcessor", + "type": "uint8" + }, + { + "internalType": "bytes32", + "name": "_aggregatorId", + "type": "bytes32" + } + ], + "name": "removeAggregatorId", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "enum ZkCoProcessorType", + "name": "_zkCoProcessor", + "type": "uint8" + }, + { + "internalType": "bytes32", + "name": "_verifierId", + "type": "bytes32" + } + ], + "name": "removeVerifierId", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [], + "name": "requestOwnershipHandover", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "_certHash", + "type": "bytes32" + } + ], + "name": "revokeCert", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "rootCert", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint64", + "name": "_maxTimeDiff", + "type": "uint64" + } + ], + "name": "setMaxTimeDiff", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_proofSubmitter", + "type": "address" + } + ], + "name": "setProofSubmitter", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "_rootCert", + "type": "bytes32" + } + ], + "name": "setRootCert", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "enum ZkCoProcessorType", + "name": "_zkCoProcessor", + "type": "uint8" + }, + { + "components": [ + { + "internalType": "bytes32", + "name": "verifierId", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "aggregatorId", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "zkVerifier", + "type": "address" + } + ], + "internalType": "struct ZkCoProcessorConfig", + "name": "_config", + "type": "tuple" + }, + { + "internalType": "bytes32", + "name": "_verifierProofId", + "type": "bytes32" + } + ], + "name": "setZkConfiguration", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "trustedCertHash", + "type": "bytes32" + } + ], + "name": "trustedIntermediateCerts", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "enum ZkCoProcessorType", + "name": "_zkCoProcessor", + "type": "uint8" + }, + { + "internalType": "bytes32", + "name": "_newAggregatorId", + "type": "bytes32" + } + ], + "name": "updateAggregatorId", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "enum ZkCoProcessorType", + "name": "_zkCoProcessor", + "type": "uint8" + }, + { + "internalType": "bytes32", + "name": "_newVerifierId", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "_newVerifierProofId", + "type": "bytes32" + } + ], + "name": "updateVerifierId", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes", + "name": "output", + "type": "bytes" + }, + { + "internalType": "enum ZkCoProcessorType", + "name": "zkCoprocessor", + "type": "uint8" + }, + { + "internalType": "bytes", + "name": "proofBytes", + "type": "bytes" + } + ], + "name": "verify", + "outputs": [ + { + "components": [ + { + "internalType": "enum VerificationResult", + "name": "result", + "type": "uint8" + }, + { + "internalType": "uint8", + "name": "trustedCertsPrefixLen", + "type": "uint8" + }, + { + "internalType": "uint64", + "name": "timestamp", + "type": "uint64" + }, + { + "internalType": "bytes32[]", + "name": "certs", + "type": "bytes32[]" + }, + { + "internalType": "bytes", + "name": "userData", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "nonce", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "publicKey", + "type": "bytes" + }, + { + "components": [ + { + "internalType": "uint64", + "name": "index", + "type": "uint64" + }, + { + "components": [ + { + "internalType": "bytes32", + "name": "first", + "type": "bytes32" + }, + { + "internalType": "bytes16", + "name": "second", + "type": "bytes16" + } + ], + "internalType": "struct Bytes48", + "name": "value", + "type": "tuple" + } + ], + "internalType": "struct Pcr[]", + "name": "pcrs", + "type": "tuple[]" + }, + { + "internalType": "string", + "name": "moduleId", + "type": "string" + } + ], + "internalType": "struct VerifierJournal", + "name": "journal", + "type": "tuple" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "enum ZkCoProcessorType", + "name": "", + "type": "uint8" + } + ], + "name": "zkConfig", + "outputs": [ + { + "internalType": "bytes32", + "name": "verifierId", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "aggregatorId", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "zkVerifier", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "enum ZkCoProcessorType", + "name": "zkCoProcessor", + "type": "uint8" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "newId", + "type": "bytes32" + } + ], + "name": "AggregatorIdUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "enum VerificationResult", + "name": "result", + "type": "uint8" + }, + { + "indexed": false, + "internalType": "enum ZkCoProcessorType", + "name": "zkCoProcessor", + "type": "uint8" + }, + { + "indexed": false, + "internalType": "bytes", + "name": "output", + "type": "bytes" + } + ], + "name": "AttestationSubmitted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "verifierId", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "enum ZkCoProcessorType", + "name": "zkCoProcessor", + "type": "uint8" + }, + { + "indexed": false, + "internalType": "bytes", + "name": "encodedBatch", + "type": "bytes" + } + ], + "name": "BatchAttestationSubmitted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "certHash", + "type": "bytes32" + } + ], + "name": "CertRevoked", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint64", + "name": "newMaxTimeDiff", + "type": "uint64" + } + ], + "name": "MaxTimeDiffUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "pendingOwner", + "type": "address" + } + ], + "name": "OwnershipHandoverCanceled", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "pendingOwner", + "type": "address" + } + ], + "name": "OwnershipHandoverRequested", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "oldOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "enum ZkCoProcessorType", + "name": "zkCoProcessor", + "type": "uint8" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "programId", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "bool", + "name": "isAggregator", + "type": "bool" + } + ], + "name": "ProgramIdRemoved", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "newProofSubmitter", + "type": "address" + } + ], + "name": "ProofSubmitterChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "newRootCert", + "type": "bytes32" + } + ], + "name": "RootCertChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "enum ZkCoProcessorType", + "name": "zkCoProcessor", + "type": "uint8" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "newId", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "bytes32", + "name": "newProofId", + "type": "bytes32" + } + ], + "name": "VerifierIdUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "enum ZkCoProcessorType", + "name": "zkCoProcessor", + "type": "uint8" + }, + { + "components": [ + { + "internalType": "bytes32", + "name": "verifierId", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "aggregatorId", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "zkVerifier", + "type": "address" + } + ], + "indexed": false, + "internalType": "struct ZkCoProcessorConfig", + "name": "config", + "type": "tuple" + }, + { + "indexed": false, + "internalType": "bytes32", + "name": "verifierProofId", + "type": "bytes32" + } + ], + "name": "ZKConfigurationUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "enum ZkCoProcessorType", + "name": "zkCoProcessor", + "type": "uint8" + }, + { + "indexed": true, + "internalType": "bytes4", + "name": "selector", + "type": "bytes4" + }, + { + "indexed": false, + "internalType": "address", + "name": "verifier", + "type": "address" + } + ], + "name": "ZkRouteAdded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "enum ZkCoProcessorType", + "name": "zkCoProcessor", + "type": "uint8" + }, + { + "indexed": true, + "internalType": "bytes4", + "name": "selector", + "type": "bytes4" + } + ], + "name": "ZkRouteWasFrozen", + "type": "event" + }, + { + "inputs": [], + "name": "AlreadyInitialized", + "type": "error" + }, + { + "inputs": [], + "name": "CallerNotProofSubmitter", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "enum ZkCoProcessorType", + "name": "zkCoProcessor", + "type": "uint8" + }, + { + "internalType": "bytes32", + "name": "identifier", + "type": "bytes32" + } + ], + "name": "CannotRemoveLatestProgramId", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "certHash", + "type": "bytes32" + } + ], + "name": "CertificateNotFound", + "type": "error" + }, + { + "inputs": [], + "name": "NewOwnerIsZeroAddress", + "type": "error" + }, + { + "inputs": [], + "name": "NoHandoverRequest", + "type": "error" + }, + { + "inputs": [], + "name": "NotImplemented", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "enum ZkCoProcessorType", + "name": "zkCoProcessor", + "type": "uint8" + }, + { + "internalType": "bytes32", + "name": "identifier", + "type": "bytes32" + } + ], + "name": "ProgramIdAlreadyLatest", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "enum ZkCoProcessorType", + "name": "zkCoProcessor", + "type": "uint8" + }, + { + "internalType": "bytes32", + "name": "identifier", + "type": "bytes32" + } + ], + "name": "ProgramIdNotFound", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "expected", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "actual", + "type": "bytes32" + } + ], + "name": "RootCertMismatch", + "type": "error" + }, + { + "inputs": [], + "name": "Unauthorized", + "type": "error" + }, + { + "inputs": [], + "name": "Unknown_Zk_Coprocessor", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "expected", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "actual", + "type": "bytes32" + } + ], + "name": "VerifierVkMismatch", + "type": "error" + }, + { + "inputs": [], + "name": "ZeroMaxTimeDiff", + "type": "error" + }, + { + "inputs": [], + "name": "ZeroProgramId", + "type": "error" + }, + { + "inputs": [], + "name": "ZeroProofSubmitter", + "type": "error" + }, + { + "inputs": [], + "name": "ZeroVerifierAddress", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "enum ZkCoProcessorType", + "name": "zkCoProcessor", + "type": "uint8" + }, + { + "internalType": "bytes4", + "name": "selector", + "type": "bytes4" + } + ], + "name": "ZkRouteFrozen", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "enum ZkCoProcessorType", + "name": "zkCoProcessor", + "type": "uint8" + } + ], + "name": "ZkVerifierNotConfigured", + "type": "error" + } +] \ No newline at end of file diff --git a/snapshots/storageLayout/NitroEnclaveVerifier.json b/snapshots/storageLayout/NitroEnclaveVerifier.json new file mode 100644 index 000000000..0feab09c3 --- /dev/null +++ b/snapshots/storageLayout/NitroEnclaveVerifier.json @@ -0,0 +1,65 @@ +[ + { + "bytes": "20", + "label": "proofSubmitter", + "offset": 0, + "slot": "0", + "type": "address" + }, + { + "bytes": "32", + "label": "zkConfig", + "offset": 0, + "slot": "1", + "type": "mapping(enum ZkCoProcessorType => struct ZkCoProcessorConfig)" + }, + { + "bytes": "32", + "label": "trustedIntermediateCerts", + "offset": 0, + "slot": "2", + "type": "mapping(bytes32 => bool)" + }, + { + "bytes": "8", + "label": "maxTimeDiff", + "offset": 0, + "slot": "3", + "type": "uint64" + }, + { + "bytes": "32", + "label": "rootCert", + "offset": 0, + "slot": "4", + "type": "bytes32" + }, + { + "bytes": "32", + "label": "_verifierIdSet", + "offset": 0, + "slot": "5", + "type": "mapping(enum ZkCoProcessorType => struct EnumerableSet.Bytes32Set)" + }, + { + "bytes": "32", + "label": "_aggregatorIdSet", + "offset": 0, + "slot": "6", + "type": "mapping(enum ZkCoProcessorType => struct EnumerableSet.Bytes32Set)" + }, + { + "bytes": "32", + "label": "_zkVerifierRoutes", + "offset": 0, + "slot": "7", + "type": "mapping(enum ZkCoProcessorType => mapping(bytes4 => address))" + }, + { + "bytes": "32", + "label": "_verifierProofIds", + "offset": 0, + "slot": "8", + "type": "mapping(enum ZkCoProcessorType => mapping(bytes32 => bytes32))" + } +] \ No newline at end of file